<?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>238336</bug_id>
          
          <creation_ts>2022-03-24 10:51:22 -0700</creation_ts>
          <short_desc>Start preparing WebCore for making the String(const char*) constructor explicit</short_desc>
          <delta_ts>2022-04-01 19:56:49 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=238264</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=238408</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>238693</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>alecflett</cc>
    
    <cc>andresg_22</cc>
    
    <cc>apinheiro</cc>
    
    <cc>beidson</cc>
    
    <cc>benjamin</cc>
    
    <cc>calvaris</cc>
    
    <cc>cfleizach</cc>
    
    <cc>changseok</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>dino</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fmalita</cc>
    
    <cc>ggaren</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>hta</cc>
    
    <cc>japhet</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>jer.noble</cc>
    
    <cc>jfernandez</cc>
    
    <cc>joepeck</cc>
    
    <cc>jsbell</cc>
    
    <cc>keith_miller</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>macpherson</cc>
    
    <cc>mark.lam</cc>
    
    <cc>menard</cc>
    
    <cc>mifenton</cc>
    
    <cc>msaboff</cc>
    
    <cc>pangle</cc>
    
    <cc>pascoe</cc>
    
    <cc>pdr</cc>
    
    <cc>philipj</cc>
    
    <cc>rego</cc>
    
    <cc>saam</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>samuel_white</cc>
    
    <cc>schenney</cc>
    
    <cc>sergio</cc>
    
    <cc>svillar</cc>
    
    <cc>tommyw</cc>
    
    <cc>toyoshim</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>yutak</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1854750</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-03-24 10:51:22 -0700</bug_when>
    <thetext>Start preparing WebCore for making the String(const char*) constructor explicit.
Making this constructor explicit helps catch at compile time cases where the &quot;&quot;_s prefix is missing on String literals.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1854826</commentid>
    <comment_count>1</comment_count>
      <attachid>455670</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-03-24 13:16:46 -0700</bug_when>
    <thetext>Created attachment 455670
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1854828</commentid>
    <comment_count>2</comment_count>
      <attachid>455672</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-03-24 13:32:15 -0700</bug_when>
    <thetext>Created attachment 455672
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1854869</commentid>
    <comment_count>3</comment_count>
      <attachid>455688</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-03-24 14:51:44 -0700</bug_when>
    <thetext>Created attachment 455688
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1854872</commentid>
    <comment_count>4</comment_count>
      <attachid>455691</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-03-24 14:56:14 -0700</bug_when>
    <thetext>Created attachment 455691
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1854914</commentid>
    <comment_count>5</comment_count>
      <attachid>455700</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-03-24 16:14:34 -0700</bug_when>
    <thetext>Created attachment 455700
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1854967</commentid>
    <comment_count>6</comment_count>
      <attachid>455713</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-03-24 17:44:36 -0700</bug_when>
    <thetext>Created attachment 455713
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1854996</commentid>
    <comment_count>7</comment_count>
      <attachid>455719</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-03-24 19:48:58 -0700</bug_when>
    <thetext>Created attachment 455719
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1854999</commentid>
    <comment_count>8</comment_count>
      <attachid>455722</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-03-24 20:59:47 -0700</bug_when>
    <thetext>Created attachment 455722
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1855004</commentid>
    <comment_count>9</comment_count>
      <attachid>455723</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-03-24 21:58:44 -0700</bug_when>
    <thetext>Created attachment 455723
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1855008</commentid>
    <comment_count>10</comment_count>
      <attachid>455724</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-03-24 22:37:54 -0700</bug_when>
    <thetext>Created attachment 455724
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1855083</commentid>
    <comment_count>11</comment_count>
      <attachid>455757</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-03-25 07:23:10 -0700</bug_when>
    <thetext>Created attachment 455757
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1855142</commentid>
    <comment_count>12</comment_count>
      <attachid>455757</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2022-03-25 10:01:24 -0700</bug_when>
    <thetext>Comment on attachment 455757
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1855147</commentid>
    <comment_count>13</comment_count>
      <attachid>455757</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-03-25 10:13:20 -0700</bug_when>
    <thetext>Comment on attachment 455757
Patch

Clearing flags on attachment: 455757

Committed r291863 (248870@trunk): &lt;https://commits.webkit.org/248870@trunk&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1855148</commentid>
    <comment_count>14</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-03-25 10:13:28 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1855149</commentid>
    <comment_count>15</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-03-25 10:14:21 -0700</bug_when>
    <thetext>&lt;rdar://problem/90843719&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455670</attachid>
            <date>2022-03-24 13:16:46 -0700</date>
            <delta_ts>2022-03-24 13:44:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238336-20220324131645.patch</filename>
            <type>text/plain</type>
            <size>425782</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxODAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
YWE2NWE0N2JkOThlOGI5M2I1ZjQ1N2IzNjRmZDdjOWJhMTczNmI5Li5hMTQ4ZTZjZTU1MmQ4NDU3
ZWFmYjBmZmM1MzA4NjdjYzJjNTFkMjgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMiBAQAorMjAyMi0wMy0yNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFN0YXJ0IHByZXBhcmluZyBXZWJDb3JlIGZvciBtYWtpbmcgdGhlIFN0cmluZyhj
b25zdCBjaGFyKikgY29uc3RydWN0b3IgZXhwbGljaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODMzNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0YXJ0IHByZXBhcmluZyBXZWJDb3JlIGZvciBtYWtp
bmcgdGhlIFN0cmluZyhjb25zdCBjaGFyKikgY29uc3RydWN0b3IgZXhwbGljaXQuCisgICAgICAg
IE1ha2luZyB0aGlzIGNvbnN0cnVjdG9yIGV4cGxpY2l0IGhlbHBzIGNhdGNoIGF0IGNvbXBpbGUg
dGltZSBjYXNlcyB3aGVyZSB0aGUgIiJfcworICAgICAgICBwcmVmaXggaXMgbWlzc2luZyBvbiBT
dHJpbmcgbGl0ZXJhbHMuCisKKyAgICAgICAgKiBBUEkvSlNWYWx1ZS5tbToKKyAgICAgICAgKGNy
ZWF0ZVN0cnVjdEhhbmRsZXJNYXApOgorICAgICAgICAoaGFuZGVyRm9yU3RydWN0VGFnKToKKyAg
ICAgICAgKiBBUEkvSlNXcmFwcGVyTWFwLm1tOgorICAgICAgICAoYWxsb2NhdGVDb25zdHJ1Y3Rv
ckZvckN1c3RvbUNsYXNzKToKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckF1
ZGl0QWdlbnQuY3BwOgorICAgICAgICAoSW5zcGVjdG9yOjpJbnNwZWN0b3JBdWRpdEFnZW50Ojpy
dW4pOgorCiAyMDIyLTAzLTIzICBHZXphIExvcmUgIDxnbG9yZUBpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFtKU0NdIEZpeCByZW1vdGVGdW5jdGlvbkNhbGxHZW5lcmF0b3Igb24gTUlQUwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCA5
YmMzMGI4ZTZlY2QyZDdjMzliYzIyMDAxNTc1OWJjNDg1MjFjNzlkLi43NGRiNDdmODc3YmNkODMw
YzM2NzRkNTEyYmYxZjIzZmU5MDQ5ZTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIyLTAzLTI0
ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgU3RhcnQgcHJlcGFy
aW5nIFdlYkNvcmUgZm9yIG1ha2luZyB0aGUgU3RyaW5nKGNvbnN0IGNoYXIqKSBjb25zdHJ1Y3Rv
ciBleHBsaWNpdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjM4MzM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgU3RhcnQgcHJlcGFyaW5nIFdlYkNvcmUgZm9yIG1ha2luZyB0aGUgU3RyaW5nKGNvbnN0IGNo
YXIqKSBjb25zdHJ1Y3RvciBleHBsaWNpdC4KKyAgICAgICAgTWFraW5nIHRoaXMgY29uc3RydWN0
b3IgZXhwbGljaXQgaGVscHMgY2F0Y2ggYXQgY29tcGlsZSB0aW1lIGNhc2VzIHdoZXJlIHRoZSAi
Il9zCisgICAgICAgIHByZWZpeCBpcyBtaXNzaW5nIG9uIFN0cmluZyBsaXRlcmFscy4KKworICAg
ICAgICAqIHd0Zi90ZXh0L1RleHRTdHJlYW0uaDoKKyAgICAgICAgKFdURjo6VGV4dFN0cmVhbTo6
ZHVtcFByb3BlcnR5KToKKwogMjAyMi0wMy0yNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgogCiAgICAgICAgIFN0cmluZydzIGZpbmQoKSAvIHJldmVyc2VGaW5kKCkgLyByZXBsYWNl
KCkgc2hvdWxkIHRha2UgaW4gYSBTdHJpbmdWaWV3IGluc3RlYWQgb2YgYSBTdHJpbmcKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCAwNDVlMjI5ZDQyMGJjYmFlM2EzZTEyOWEyOTMwZDI2YjliZjc2ZWEzLi4yNmU2NWYw
OTA0MzVmNjBkYWQ0ZmY5MjIzZWY0ZDY0N2YyZjAzMjU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
NTExIEBACisyMDIyLTAzLTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAg
ICAgICAgU3RhcnQgcHJlcGFyaW5nIFdlYkNvcmUgZm9yIG1ha2luZyB0aGUgU3RyaW5nKGNvbnN0
IGNoYXIqKSBjb25zdHJ1Y3RvciBleHBsaWNpdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4MzM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgU3RhcnQgcHJlcGFyaW5nIFdlYkNvcmUgZm9yIG1ha2luZyB0
aGUgU3RyaW5nKGNvbnN0IGNoYXIqKSBjb25zdHJ1Y3RvciBleHBsaWNpdC4KKyAgICAgICAgTWFr
aW5nIHRoaXMgY29uc3RydWN0b3IgZXhwbGljaXQgaGVscHMgY2F0Y2ggYXQgY29tcGlsZSB0aW1l
IGNhc2VzIHdoZXJlIHRoZSAiIl9zCisgICAgICAgIHByZWZpeCBpcyBtaXNzaW5nIG9uIFN0cmlu
ZyBsaXRlcmFscy4KKworICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXktYW1zLXVpL0FwcGxlUGF5
QU1TVUlQYXltZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0QW5kVmFs
aWRhdGVBcHBsZVBheUFNU1VJUmVxdWVzdCk6CisgICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9B
cHBsZVBheUNvbnRhY3RGaWVsZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0QW5kVmFs
aWRhdGUpOgorICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlNZXJjaGFudENhcGFi
aWxpdHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydEFuZFZhbGlkYXRlKToKKyAgICAg
ICAgKiBNb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5UmVxdWVzdEJhc2UuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Y29udmVydEFuZFZhbGlkYXRlKToKKyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5
L0FwcGxlUGF5U2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheVNlc3Npb246
OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheVNlc3Npb246Om9wZW5QYXltZW50
U2V0dXApOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9uOjpiZWdpbik6CisgICAg
ICAgICogTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNldHVwLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkFwcGxlUGF5U2V0dXA6OmJlZ2luKToKKyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5L1Bh
eW1lbnRJbnN0YWxsbWVudENvbmZpZ3VyYXRpb24ubW06CisgICAgICAgIChXZWJDb3JlOjpQYXlt
ZW50SW5zdGFsbG1lbnRDb25maWd1cmF0aW9uOjpjcmVhdGUpOgorICAgICAgICAqIE1vZHVsZXMv
YXBwbGVwYXkvUGF5bWVudFJlcXVlc3RWYWxpZGF0b3IubW06CisgICAgICAgIChXZWJDb3JlOjpQ
YXltZW50UmVxdWVzdFZhbGlkYXRvcjo6dmFsaWRhdGVUb3RhbCk6CisgICAgICAgIChXZWJDb3Jl
Ojp2YWxpZGF0ZUNvdW50cnlDb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRlQ3VycmVu
Y3lDb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRlTWVyY2hhbnRDYXBhYmlsaXRpZXMp
OgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGVTdXBwb3J0ZWROZXR3b3Jrcyk6CisgICAgICAg
IChXZWJDb3JlOjp2YWxpZGF0ZVNoaXBwaW5nTWV0aG9kKToKKyAgICAgICAgKiBNb2R1bGVzL2Fw
cGxlcGF5L1BheW1lbnRTZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBheW1lbnRTZXNz
aW9uOjpjYW5DcmVhdGVTZXNzaW9uKToKKyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5L3BheW1l
bnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Y29udmVydEFuZFZhbGlkYXRlQXBwbGVQYXlSZXF1ZXN0KToKKyAgICAgICAgKiBNb2R1bGVzL2Fw
cGxpY2F0aW9ubWFuaWZlc3QvQXBwbGljYXRpb25NYW5pZmVzdFBhcnNlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpBcHBsaWNhdGlvbk1hbmlmZXN0UGFyc2VyOjpwYXJzZUljb25zKToKKyAgICAg
ICAgKFdlYkNvcmU6OkFwcGxpY2F0aW9uTWFuaWZlc3RQYXJzZXI6OnBhcnNlU2NvcGUpOgorICAg
ICAgICAqIE1vZHVsZXMvY2FjaGUvV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZUNhY2hlcy5jcHA6
CisgICAgICAgICogTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9Jbml0RGF0YVJlZ2lzdHJ5LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OnNhbml0aXplS2V5aWRzKToKKyAgICAgICAgKiBNb2R1bGVzL2Vu
dHJpZXNhcGkvRE9NRmlsZVN5c3RlbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpsaXN0RGlyZWN0
b3J5V2l0aE1ldGFkYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRlUGF0aElzRXhwZWN0
ZWRUeXBlKToKKyAgICAgICAgKiBNb2R1bGVzL2ZldGNoL0ZldGNoQm9keUNvbnN1bWVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkZldGNoQm9keUNvbnN1bWVyOjpwYWNrYWdlRm9ybURhdGEpOgor
ICAgICAgICAqIE1vZHVsZXMvZmV0Y2gvRmV0Y2hIZWFkZXJzLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmZpbGxIZWFkZXJNYXApOgorICAgICAgICAqIE1vZHVsZXMvZmV0Y2gvRmV0Y2hMb2FkZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hMb2FkZXI6OnN0YXJ0TG9hZGluZ0Jsb2JVUkwp
OgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRs
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Z2V0RmlsZSk6
CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Y3JlYXRlU3luY0FjY2Vz
c0hhbmRsZSk6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1I
YW5kbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZTo6aXNTYW1lRW50
cnkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZTo6bW92ZSk6Cisg
ICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VJZGVudGlmaWVyLmg6CisgICAg
ICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5RGF0YS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJREJLZXlEYXRhOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SURCS2V5RGF0
YTo6ZGVjb2RlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlSYW5nZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJREJLZXlSYW5nZTo6aW5jbHVkZXMpOgorICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJpYWxpemF0aW9uLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OnNlcmlhbGl6ZUlEQktleVBhdGgpOgorICAgICAgICAoV2ViQ29yZTo6ZGVzZXJpYWxp
emVJREJLZXlQYXRoKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2Vy
dmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVyOjpnZXRBbGxE
YXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpJ
REJTZXJ2ZXI6OmdldE9yaWdpbnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVy
OjpJREJTZXJ2ZXI6OmNsb3NlQW5kRGVsZXRlRGF0YWJhc2VzTW9kaWZpZWRTaW5jZSk6CisgICAg
ICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQlNlcnZlcjo6Y2xvc2VBbmREZWxldGVEYXRhYmFz
ZXNGb3JPcmlnaW5zKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6cmVtb3ZlQWxsRGF0
YWJhc2VzRm9yRnVsbE9yaWdpblBhdGgpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpJ
REJTZXJ2ZXI6OnJlbmFtZU9yaWdpbik6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OklE
QlNlcnZlcjo6dXBncmFkZUZpbGVzSWZOZWNlc3NhcnkpOgorICAgICAgICAoV2ViQ29yZTo6SURC
U2VydmVyOjpJREJTZXJ2ZXI6OnVwZ3JhZGVkRGF0YWJhc2VEaXJlY3RvcnkpOgorICAgICAgICAq
IE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlJREJCYWNraW5nU3RvcmUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpNZW1vcnlJREJCYWNraW5nU3RvcmU6OmJlZ2luVHJh
bnNhY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpNZW1vcnlJREJCYWNraW5n
U3RvcmU6OmFib3J0VHJhbnNhY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpN
ZW1vcnlJREJCYWNraW5nU3RvcmU6OmNvbW1pdFRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OklEQlNlcnZlcjo6TWVtb3J5SURCQmFja2luZ1N0b3JlOjpnZW5lcmF0ZUtleU51bWJlcik6
CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeU9iamVjdFN0b3JlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6TWVtb3J5T2JqZWN0U3RvcmU6OnVwZGF0
ZUluZGV4ZXNGb3JQdXRSZWNvcmQpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZl
ci9TUUxpdGVJREJCYWNraW5nU3RvcmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVy
Ojp2MVJlY29yZHNUYWJsZVNjaGVtYSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OnYx
UmVjb3Jkc1RhYmxlU2NoZW1hQWx0ZXJuYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZl
cjo6djJSZWNvcmRzVGFibGVTY2hlbWEpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjp2
MlJlY29yZHNUYWJsZVNjaGVtYUFsdGVybmF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2
ZXI6OnYxSW5kZXhSZWNvcmRzVGFibGVTY2hlbWEpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2Vy
dmVyOjp2MUluZGV4UmVjb3Jkc1RhYmxlU2NoZW1hQWx0ZXJuYXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OklEQlNlcnZlcjo6djJJbmRleFJlY29yZHNUYWJsZVNjaGVtYSk6CisgICAgICAgIChXZWJD
b3JlOjpJREJTZXJ2ZXI6OnYySW5kZXhSZWNvcmRzVGFibGVTY2hlbWFBbHRlcm5hdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpTUUxpdGVJREJCYWNraW5nU3RvcmU6OmVuY29kZURh
dGFiYXNlTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlNRTGl0ZUlEQkJhY2tp
bmdTdG9yZTo6ZnVsbERhdGFiYXNlUGF0aEZvckRpcmVjdG9yeSk6CisgICAgICAgIChXZWJDb3Jl
OjpJREJTZXJ2ZXI6OlNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6Z2V0T3JFc3RhYmxpc2hEYXRhYmFz
ZUluZm8pOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpTUUxpdGVJREJCYWNraW5nU3Rv
cmU6OnVwZGF0ZUFsbEluZGV4ZXNGb3JBZGRSZWNvcmQpOgorICAgICAgICAoV2ViQ29yZTo6SURC
U2VydmVyOjpTUUxpdGVJREJCYWNraW5nU3RvcmU6OnVuY2hlY2tlZEdldEtleUdlbmVyYXRvclZh
bHVlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6U1FMaXRlSURCQmFja2luZ1N0b3Jl
Ojp1bmNoZWNrZWRTZXRLZXlHZW5lcmF0b3JWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJT
ZXJ2ZXI6OlNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6Z2VuZXJhdGVLZXlOdW1iZXIpOgorICAgICAg
ICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpjcmVhdGVPYmplY3RT
dG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpk
ZWxldGVPYmplY3RTdG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlE
QkRhdGFiYXNlOjpyZW5hbWVPYmplY3RTdG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2
ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpjbGVhck9iamVjdFN0b3JlKToKKyAgICAgICAgKFdlYkNv
cmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OmNyZWF0ZUluZGV4KToKKyAgICAgICAg
KFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OmRlbGV0ZUluZGV4KToKKyAg
ICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OnJlbmFtZUluZGV4
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OnB1dE9y
QWRkKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OnB1
dE9yQWRkQWZ0ZXJTcGFjZUNoZWNrKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5p
cXVlSURCRGF0YWJhc2U6OmdldFJlY29yZCk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6
OlVuaXF1ZUlEQkRhdGFiYXNlOjpnZXRBbGxSZWNvcmRzKToKKyAgICAgICAgKFdlYkNvcmU6OklE
QlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OmdldENvdW50KToKKyAgICAgICAgKFdlYkNvcmU6
OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OmRlbGV0ZVJlY29yZCk6CisgICAgICAgIChX
ZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpvcGVuQ3Vyc29yKToKKyAgICAg
ICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6Oml0ZXJhdGVDdXJzb3Ip
OgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6Y29tbWl0
VHJhbnNhY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRh
YmFzZTo6YWJvcnRUcmFuc2FjdGlvbik6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2hh
cmVkL0lEQkluZGV4SW5mby5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJJbmRleEluZm86Omxv
Z2dpbmdTdHJpbmcgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFjb250cm9scy9NZWRp
YUNvbnRyb2xzSG9zdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xzSG9zdDo6
bGF5b3V0VHJhaXRzQ2xhc3NOYW1lIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhcmVj
b3JkZXIvTWVkaWFSZWNvcmRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVy
OjpjcmVhdGUpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6YWRkVlA5RnVsbFJhbmdlVmlkZW9GbGFnVG9Db250ZW50VHlw
ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNvdXJjZTo6aXNUeXBlU3VwcG9ydGVkKToKKyAg
ICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhVHJhY2tDb25zdHJhaW50cy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpzZXQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydFRvSW50ZXJu
YWxGb3JtKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0ljZUNhbmRpZGF0ZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSVENJY2VDYW5kaWRhdGU6OmNyZWF0ZSk6CisgICAgICAg
ICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSVENQZWVyQ29ubmVjdGlvbjo6c2V0TG9jYWxEZXNjcmlwdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpSVENQZWVyQ29ubmVjdGlvbjo6YWRkSWNlQ2FuZGlkYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OlJUQ1BlZXJDb25uZWN0aW9uOjppY2VTZXJ2ZXJzRnJvbUNvbmZpZ3VyYXRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6UlRDUGVlckNvbm5lY3Rpb246OmNlcnRpZmljYXRlc0Zyb21D
b25maWd1cmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1BlZXJDb25uZWN0aW9uOjppbml0
aWFsaXplQ29uZmlndXJhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpSVENQZWVyQ29ubmVjdGlv
bjo6c2V0Q29uZmlndXJhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpSVENQZWVyQ29ubmVjdGlv
bjo6Y2hhaW5PcGVyYXRpb24pOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRw
U0ZyYW1lVHJhbnNmb3JtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UlRDUnRwU0ZyYW1lVHJh
bnNmb3JtZXI6OnRyYW5zZm9ybSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3
ZWJydGMvTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkxpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZDo6ZG9DcmVhdGVBbnN3ZXIpOgorICAg
ICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1J0cFRyYW5zY2Vp
dmVyQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b1J0cENvZGVjQ2FwYWJpbGl0eSk6
CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDVXRpbHMu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9FeGNlcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
dG9SVENFcnJvcik6CisgICAgICAgICogTW9kdWxlcy9tb2RlbC1lbGVtZW50L3NjZW5la2l0L1Nj
ZW5lS2l0TW9kZWxMb2FkZXJVU0QubW06CisgICAgICAgIChXZWJDb3JlOjp3cml0ZVRvVGVtcG9y
YXJ5RmlsZSk6CisgICAgICAgICogTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVz
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjaGVja0FuZENhbm9uaWNhbGl6ZURldGFpbHMpOgor
ICAgICAgICAoV2ViQ29yZTo6UGF5bWVudFJlcXVlc3Q6OnNob3cpOgorICAgICAgICAqIE1vZHVs
ZXMvcGljdHVyZWlucGljdHVyZS9IVE1MVmlkZW9FbGVtZW50UGljdHVyZUluUGljdHVyZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50UGljdHVyZUluUGljdHVyZTo6cmVx
dWVzdFBpY3R1cmVJblBpY3R1cmUpOgorICAgICAgICAqIE1vZHVsZXMvcGx1Z2lucy9Zb3VUdWJl
UGx1Z2luUmVwbGFjZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WW91VHViZVBsdWdpblJl
cGxhY2VtZW50OjppbnN0YWxsUmVwbGFjZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6cHJvY2Vz
c0FuZENyZWF0ZVlvdVR1YmVVUkwpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbDo6dXBkYXRlRGF0YVNvdXJjZSk6CisgICAgICAg
IChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjpzb3VyY2VTdG9w
cGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUlt
cGw6OnNvdXJjZU11dGVkQ2hhbmdlZCk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvY29jb2Ev
V2ViU3BlZWNoUmVjb2duaXplclRhc2tNb2NrLm1tOgorICAgICAgICAoLVtXZWJTcGVlY2hSZWNv
Z25pemVyVGFza01vY2sgYXVkaW9TYW1wbGVzQXZhaWxhYmxlOl0pOgorICAgICAgICAqIE1vZHVs
ZXMvc3RvcmFnZS9TdG9yYWdlTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb25uZWN0
aW9uSW5mbyk6CisgICAgICAgICogTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja01hbmFnZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6V2ViTG9ja01hbmFnZXI6OnNpZ25hbFRvQWJvcnRUaGVSZXF1
ZXN0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTGlzdGVuZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6QXVkaW9MaXN0ZW5lcjo6QXVkaW9MaXN0ZW5lcik6CisgICAgICAgICog
TW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlv
UGFyYW06OnNldEF1dG9tYXRpb25SYXRlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvUGFyYW1UaW1lbGluZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1BhcmFtVGltZWxp
bmU6Omluc2VydEV2ZW50KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0JpcXVhZEZpbHRl
ck5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QmlxdWFkRmlsdGVyTm9kZTo6Z2V0RnJlcXVl
bmN5UmVzcG9uc2UpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQmlxdWFkUHJvY2Vzc29y
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJpcXVhZFByb2Nlc3Nvcjo6QmlxdWFkUHJvY2Vzc29y
KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0RlbGF5UHJvY2Vzc29yLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRlbGF5UHJvY2Vzc29yOjpEZWxheVByb2Nlc3Nvcik6CisgICAgICAgICog
TW9kdWxlcy93ZWJhdWRpby9XYXZlU2hhcGVyTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpX
YXZlU2hhcGVyTm9kZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OldhdmVTaGFwZXJOb2Rl
OjpzZXRDdXJ2ZUZvckJpbmRpbmdzKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL0F1dGhl
bnRpY2F0b3JDb29yZGluYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdXRoZW50aWNhdG9y
Q29vcmRpbmF0b3JJbnRlcm5hbDo6bmVlZHNBcHBJZFF1aXJrcyk6CisgICAgICAgICogTW9kdWxl
cy93ZWJhdXRobi9XZWJBdXRoZW50aWNhdGlvblV0aWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmJ1aWxkQXR0ZXN0YXRpb25NYXApOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vZmlkby9E
ZXZpY2VSZXNwb25zZUNvbnZlcnRlci5jcHA6CisgICAgICAgIChmaWRvOjpyZWFkQ1RBUE1ha2VD
cmVkZW50aWFsUmVzcG9uc2UpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vZmlkby9QaW4u
Y3BwOgorICAgICAgICAoZmlkbzo6cGluOjpLZXlBZ3JlZW1lbnRSZXNwb25zZTo6cGFyc2VGcm9t
Q09TRSk6CisgICAgICAgIChmaWRvOjpwaW46OlRva2VuUmVxdWVzdDo6dHJ5Q3JlYXRlKToKKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL2ZpZG8vVTJmUmVzcG9uc2VDb252ZXJ0ZXIuY3BwOgor
ICAgICAgICAoZmlkbzo6cmVhZFUyZlJlZ2lzdGVyUmVzcG9uc2UpOgorICAgICAgICAqIE1vZHVs
ZXMvd2ViZGF0YWJhc2UvQ2hhbmdlVmVyc2lvbldyYXBwZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q2hhbmdlVmVyc2lvbldyYXBwZXI6OnBlcmZvcm1QcmVmbGlnaHQpOgorICAgICAgICAqIE1v
ZHVsZXMvd2ViZGF0YWJhc2UvRE9NV2luZG93V2ViRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RE9NV2luZG93V2ViRGF0YWJhc2U6Om9wZW5EYXRhYmFzZSk6CisgICAgICAgICogTW9k
dWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFz
ZTo6RGF0YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2U6OnJ1blRyYW5zYWN0aW9u
KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlQXV0aG9yaXplci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZUF1dGhvcml6ZXI6OmFkZEFsbG93ZWRGdW5jdGlv
bnMpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6dHJhY2tlckRhdGFiYXNlUGF0aCBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZVRyYWNrZXI6Om9wZW5UcmFja2VyRGF0
YWJhc2UpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvU1FMU3RhdGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNRTFN0YXRlbWVudDo6ZXhlY3V0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpTUUxTdGF0ZW1lbnQ6OnNldERhdGFiYXNlRGVsZXRlZEVycm9yKToKKyAgICAgICAgKFdl
YkNvcmU6OlNRTFN0YXRlbWVudDo6c2V0VmVyc2lvbk1pc21hdGNoZWRFcnJvcik6CisgICAgICAg
IChXZWJDb3JlOjpTUUxTdGF0ZW1lbnQ6OnNldEZhaWx1cmVEdWVUb1F1b3RhKToKKyAgICAgICAg
KiBNb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNRTFRyYW5zYWN0aW9uOjpjYWxsRXJyb3JDYWxsYmFja0R1ZVRvSW50ZXJydXB0aW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OlNRTFRyYW5zYWN0aW9uOjpvcGVuVHJhbnNhY3Rpb25BbmRQcmVm
bGlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6U1FMVHJhbnNhY3Rpb246OmRlbGl2ZXJUcmFuc2Fj
dGlvbkNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlNRTFRyYW5zYWN0aW9uOjpkZWxpdmVy
U3RhdGVtZW50Q2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6U1FMVHJhbnNhY3Rpb246Omhh
bmRsZUN1cnJlbnRTdGF0ZW1lbnRFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpTUUxUcmFuc2Fj
dGlvbjo6cG9zdGZsaWdodEFuZENvbW1pdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRz
L1dlYlNvY2tldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXQ6OnN1YnByb3RvY29s
U2VwYXJhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldDo6Y2xvc2UpOgorICAgICAg
ICAoV2ViQ29yZTo6V2ViU29ja2V0OjpzdXNwZW5kKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNv
Y2tldHMvV2ViU29ja2V0Lmg6CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tl
dENoYW5uZWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6ZGlkT3Bl
blNvY2tldFN0cmVhbSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsOjpkaWRS
ZWNlaXZlU29ja2V0U3RyZWFtRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFu
bmVsOjpwcm9jZXNzRnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6
cHJvY2Vzc091dGdvaW5nRnJhbWVRdWV1ZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRz
L1dlYlNvY2tldERlZmxhdGVGcmFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0
RXh0ZW5zaW9uRGVmbGF0ZUZyYW1lOjpwcm9jZXNzUmVzcG9uc2UpOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViU29ja2V0RGVmbGF0ZUZyYW1lcjo6ZGVmbGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJTb2NrZXREZWZsYXRlRnJhbWVyOjppbmZsYXRlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNv
Y2tldHMvV2ViU29ja2V0RXh0ZW5zaW9uRGlzcGF0Y2hlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJTb2NrZXRFeHRlbnNpb25EaXNwYXRjaGVyOjpwcm9jZXNzSGVhZGVyVmFsdWUpOgorICAg
ICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRGcmFtZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJTb2NrZXRGcmFtZTo6cGFyc2VGcmFtZSk6CisgICAgICAgICogTW9kdWxlcy93
ZWJ4ci9XZWJYUldlYkdMTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlT3BhcXVl
RnJhbWVidWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJXZWJHTExheWVyOjpjcmVhdGUp
OgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQVhJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpBWEltYWdlOjppbWFnZU92ZXJsYXlFbGVtZW50cyk6CisgICAgICAgICogYWNjZXNzaWJpbGl0
eS9BWExvZ2dlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBWExvZ2dlcjo6QVhMb2dnZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6QVhMb2dnZXI6OmxvZyk6CisgICAgICAgIChXZWJDb3JlOjpvcGVy
YXRvcjw8KToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYTG9nZ2VyLmg6CisgICAgICAgICog
YWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFYT2Jq
ZWN0Q2FjaGU6OmlzTW9kYWxFbGVtZW50IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0
ZUZyb21SZW5kZXJlcik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpyZW1vdmUp
OgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6dGV4dENoYW5nZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6aGFuZGxlTWVudU9wZW5lZCk6CisgICAgICAgIChX
ZWJDb3JlOjpBWE9iamVjdENhY2hlOjpub3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1l
ckZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRp
b24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6aGFuZGxlTWVudUl0ZW1TZWxl
Y3RlZCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpzZWxlY3RlZFN0YXRlQ2hh
bmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hh
bmdlTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmhhbmRs
ZU1vZGFsQ2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBlcmZvcm1E
ZWZlcnJlZENhY2hlVXBkYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnVw
ZGF0ZUlzb2xhdGVkVHJlZSk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
Tm9kZU9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Tm9kZU9iamVj
dDo6ZGV0ZXJtaW5lQWNjZXNzaWJpbGl0eVJvbGUpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5
T2JqZWN0OjpyZWFkT25seVZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2li
aWxpdHlPYmplY3Q6OmF1dG9Db21wbGV0ZVZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmN1cnJlbnRWYWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjpyZXBsYWNlVGV4dEluUmFuZ2UpOgorICAgICAgICAo
V2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6Y29tcHV0ZWRSb2xlU3RyaW5nIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6Om5vZGVIYXNQcmVzZW50YXRpb25Sb2xlKToKKyAgICAgICAgKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnJlc29sdmVkRWRpdGluZ1N0eWxlcyBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Ojppc1JhZGlvQnV0dG9uSW5EaWZmZXJl
bnRBZGhvY0dyb3VwKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHk6OmZpbmRNYXRj
aGluZ09iamVjdHMpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVj
dEludGVyZmFjZS5oOgorICAgICAgICAoV2ViQ29yZTo6YWNjZXNzaWJpbGl0eVJvbGVUb1N0cmlu
Zyk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnJlbmRlck9i
amVjdElzT2JzZXJ2YWJsZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0OjpkZXRlcm1pbmVBY2Nlc3NpYmlsaXR5Um9sZSk6CisgICAgICAgIChXZWJD
b3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojp1cGRhdGVSb2xlQWZ0ZXJDaGlsZHJlbkNy
ZWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6Omxp
dmVSZWdpb25SZWxldmFudCBjb25zdCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5VGFibGVDZWxsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlUYWJs
ZUNlbGw6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkIGNvbnN0KToKKyAgICAgICAgKiBh
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUcmVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFj
Y2Vzc2liaWxpdHlUcmVlOjpub2RlSGFzVHJlZUl0ZW1DaGlsZCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpBY2Nlc3NpYmlsaXR5VHJlZTo6aXNUcmVlVmFsaWQgY29uc3QpOgorICAgICAgICAq
IGFjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6QVhJc29sYXRlZE9iamVjdDo6aW5pdGlhbGl6ZUF0dHJpYnV0ZURhdGEpOgor
ICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZE9iamVjdDo6Y2xhc3NMaXN0IGNvbnN0KToKKyAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkVHJlZTo6QVhJc29sYXRlZFRyZWUpOgorICAgICAg
ICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6On5BWElzb2xhdGVkVHJlZSk6CisgICAgICAgIChX
ZWJDb3JlOjpBWElzb2xhdGVkVHJlZTo6Y2xlYXIpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29s
YXRlZFRyZWU6OnRyZWVGb3JJRCk6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkVHJlZTo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjpyZW1vdmVUcmVlRm9y
UGFnZUlEKToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjpvYmplY3RzRm9ySURz
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjpnZW5lcmF0ZVN1YnRy
ZWUpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OmNvbGxlY3ROb2RlQ2hhbmdl
c0ZvclN1YnRyZWUpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OnVwZGF0ZU5v
ZGUpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OnVwZGF0ZU5vZGVQcm9wZXJ0
eSk6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkVHJlZTo6dXBkYXRlQ2hpbGRyZW4pOgor
ICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OmZvY3VzZWROb2RlKToKKyAgICAgICAg
KFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjpyb290Tm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpB
WElzb2xhdGVkVHJlZTo6c2V0Um9vdE5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRl
ZFRyZWU6OnNldEZvY3VzZWROb2RlSUQpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRy
ZWU6OnVwZGF0ZUxvYWRpbmdQcm9ncmVzcyk6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVk
VHJlZTo6cmVtb3ZlTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkVHJlZTo6cmVt
b3ZlU3VidHJlZUZyb21Ob2RlTWFwKToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVl
OjphcHBseVBlbmRpbmdDaGFuZ2VzKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9BY2Nl
c3NpYmlsaXR5T2JqZWN0TWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9i
amVjdDo6c3Vicm9sZVBsYXRmb3JtU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFj
Y2Vzc2liaWxpdHlPYmplY3Q6OnJvbGVQbGF0Zm9ybURlc2NyaXB0aW9uIGNvbnN0KToKKyAgICAg
ICAgKiBhbmltYXRpb24vQW5pbWF0aW9uRWZmZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFu
aW1hdGlvbkVmZmVjdDo6Z2V0VGltaW5nIGNvbnN0KToKKyAgICAgICAgKiBhbmltYXRpb24vRG9j
dW1lbnRUaW1lbGluZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFRpbWVsaW5lOjph
bmltYXRlKToKKyAgICAgICAgKiBhbmltYXRpb24vRWZmZWN0VGltaW5nLmg6CisgICAgICAgICog
YW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OktleWZyYW1l
RWZmZWN0OjpDU1NQcm9wZXJ0eUlEVG9JRExBdHRyaWJ1dGVOYW1lKToKKyAgICAgICAgKFdlYkNv
cmU6OktleWZyYW1lRWZmZWN0OjpnZXRLZXlmcmFtZXMpOgorICAgICAgICAqIGJpbmRpbmdzL2pz
L0dDQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHQ0NvbnRyb2xsZXI6OkdDQ29u
dHJvbGxlcik6CisgICAgICAgICogYmluZGluZ3MvanMvSlNDdXN0b21FbGVtZW50SW50ZXJmYWNl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTQ3VzdG9tRWxlbWVudEludGVyZmFjZTo6dXBncmFk
ZUVsZW1lbnQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NQ29udmVydE51bWJlcnMuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkNvbnZlcnRlcjxJRExGbG9hdD46OmNvbnZlcnQpOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTRXhlY1N0YXRlSW5zdHJ1bWVudGF0aW9uLmg6CisgICAgICAgIChX
ZWJDb3JlOjpKU0V4ZWNTdGF0ZTo6aW5zdHJ1bWVudEZ1bmN0aW9uKToKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENv
bnRyb2xsZXI6OmNhbGxJbldvcmxkKToKKyAgICAgICAgKiBicmlkZ2Uvb2JqYy9vYmpjX3J1bnRp
bWUubW06CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpPYmpjQXJyYXk6OnNldFZhbHVlQXQgY29u
c3QpOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6T2JqY0FycmF5Ojp2YWx1ZUF0IGNvbnN0KToK
KyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9hcnJheS5jcHA6CisgICAgICAgIChKU0M6OlJ1bnRp
bWVBcnJheTo6cHV0KToKKyAgICAgICAgKEpTQzo6UnVudGltZUFycmF5OjpwdXRCeUluZGV4KToK
KyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9vYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpCaW5k
aW5nczo6dGhyb3dSdW50aW1lT2JqZWN0SW52YWxpZEFjY2Vzc0Vycm9yKToKKyAgICAgICAgKiBj
b250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uQWN0aW9ucy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6TW9kaWZ5SGVhZGVyc0FjdGlvbjo6TW9kaWZ5SGVh
ZGVySW5mbzo6cGFyc2UpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OlJl
ZGlyZWN0QWN0aW9uOjpwYXJzZSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9u
czo6UmVkaXJlY3RBY3Rpb246OlVSTFRyYW5zZm9ybUFjdGlvbjo6cGFyc2UpOgorICAgICAgICAo
V2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OlJlZGlyZWN0QWN0aW9uOjpVUkxUcmFuc2Zvcm1B
Y3Rpb246OlF1ZXJ5VHJhbnNmb3JtOjpwYXJzZSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50
RXh0ZW5zaW9uczo6UmVkaXJlY3RBY3Rpb246OlVSTFRyYW5zZm9ybUFjdGlvbjo6UXVlcnlUcmFu
c2Zvcm06OlF1ZXJ5S2V5VmFsdWU6OnBhcnNlKToKKyAgICAgICAgKiBjb250ZW50ZXh0ZW5zaW9u
cy9Db250ZW50RXh0ZW5zaW9uQ29tcGlsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVu
dEV4dGVuc2lvbnM6OmNvbXBpbGVSdWxlTGlzdCk6CisgICAgICAgICogY29udGVudGV4dGVuc2lv
bnMvQ29udGVudEV4dGVuc2lvblBhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50
RXh0ZW5zaW9uczo6Z2V0RG9tYWluTGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0
ZW5zaW9uczo6bG9hZFRyaWdnZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lv
bnM6OmxvYWRBY3Rpb24pOgorICAgICAgICAqIGNvbnRlbnRleHRlbnNpb25zL1NlcmlhbGl6ZWRO
RkEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OlNlcmlhbGl6ZWRO
RkE6OnNlcmlhbGl6ZSk6CisgICAgICAgICogY29udGVudGV4dGVuc2lvbnMvVVJMRmlsdGVyUGFy
c2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpVUkxGaWx0ZXJQ
YXJzZXI6OnN0YXR1c1N0cmluZyk6CisgICAgICAgICogY29udGVudGV4dGVuc2lvbnMvVVJMRmls
dGVyUGFyc2VyLmg6CisgICAgICAgICogY3J5cHRvL1N1YnRsZUNyeXB0by5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTdWJ0bGVDcnlwdG86OmFkZEF1dGhlbnRpY2F0ZWRFbmNyeXB0aW9uV2Fybmlu
Z0lmTmVjZXNzYXJ5KToKKyAgICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0
aG1BRVNfQ0JDLmg6CisgICAgICAgICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGht
QUVTX0NGQi5oOgorICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFF
U19DVFIuaDoKKyAgICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNf
R0NNLmg6CisgICAgICAgICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0tX
Lmg6CisgICAgICAgICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtRUNESC5oOgor
ICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUVDRFNBLmg6CisgICAg
ICAgICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtSEtERi5oOgorICAgICAgICAq
IGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUhNQUMuaDoKKyAgICAgICAgKiBjcnlw
dG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1QQktERjIuaDoKKyAgICAgICAgKiBjcnlwdG8v
YWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FFU19QS0NTMV92MV81Lmg6CisgICAgICAgICog
Y3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzUuaDoKKyAg
ICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FfT0FFUC5oOgorICAg
ICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQV9QU1MuaDoKKyAgICAg
ICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEExLmg6CisgICAgICAgICog
Y3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMjI0Lmg6CisgICAgICAgICogY3J5
cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMjU2Lmg6CisgICAgICAgICogY3J5cHRv
L2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMzg0Lmg6CisgICAgICAgICogY3J5cHRvL2Fs
Z29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBNTEyLmg6CisgICAgICAgICogY3J5cHRvL2tleXMv
Q3J5cHRvS2V5QUVTLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0tleUFFUzo6ZXhwb3J0
SndrIGNvbnN0KToKKyAgICAgICAgKiBjcnlwdG8va2V5cy9DcnlwdG9LZXlFQy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDcnlwdG9LZXlFQzo6ZXhwb3J0SndrIGNvbnN0KToKKyAgICAgICAgKiBj
cnlwdG8va2V5cy9DcnlwdG9LZXlITUFDLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0tl
eUhNQUM6OmV4cG9ydEp3ayBjb25zdCk6CisgICAgICAgICogY3J5cHRvL2tleXMvQ3J5cHRvS2V5
UlNBLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0tleVJTQTo6ZXhwb3J0SndrIGNvbnN0
KToKKyAgICAgICAgKiBjc3MvQ1NTRm9udEZhY2VTcmNWYWx1ZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDU1NGb250RmFjZVNyY1ZhbHVlOjppc1N1cHBvcnRlZEZvcm1hdCBjb25zdCk6CisgICAg
ICAgICogY3NzL0NTU0dyaWRUZW1wbGF0ZUFyZWFzVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6c3RyaW5nRm9yUG9zaXRpb24pOgorICAgICAgICAqIGNzcy9DU1NQcmltaXRpdmVWYWx1ZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6dW5pdFR5cGVTdHJpbmcp
OgorICAgICAgICAqIGNzcy9DU1NTdWJncmlkVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTU3ViZ3JpZFZhbHVlOjpjdXN0b21DU1NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvRE9N
Q1NTTmFtZXNwYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnZhbHVlV2l0aG91dEltcG9ydGFu
dCk6CisgICAgICAgICogY3NzL0RPTUNTU1JlZ2lzdGVyQ3VzdG9tUHJvcGVydHkuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RE9NQ1NTUmVnaXN0ZXJDdXN0b21Qcm9wZXJ0eTo6cmVnaXN0ZXJQcm9w
ZXJ0eSk6CisgICAgICAgICogY3NzL0RlcHJlY2F0ZWRDU1NPTVZhbHVlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkRlcHJlY2F0ZWRDU1NPTVZhbHVlOjpjc3NUZXh0IGNvbnN0KToKKyAgICAgICAg
KiBjc3MvRm9udEZhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udEZhY2U6OnVuaWNvZGVS
YW5nZSBjb25zdCk6CisgICAgICAgICogY3NzL01lZGlhUXVlcnlFeHByZXNzaW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlFeHByZXNzaW9uOjpzZXJpYWxpemUgY29uc3QpOgor
ICAgICAgICAqIGNzcy9TdHlsZVByb3BlcnRpZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5
bGVQcm9wZXJ0aWVzOjpnZXRMYXllcmVkU2hvcnRoYW5kVmFsdWUgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6TXV0YWJsZVN0eWxlUHJvcGVydGllczo6c2V0Q3VzdG9tUHJvcGVydHkpOgorICAg
ICAgICAqIGNzcy9tYWtldmFsdWVzLnBsOgorICAgICAgICAqIGNzcy9wYXJzZXIvTWVkaWFRdWVy
eVBhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5UGFyc2VyOjpza2lwVW50
aWxDb21tYSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5UGFyc2VyOjpwYXJzZUludGVy
bmFsKToKKyAgICAgICAgKiBjc3MvcGFyc2VyL1NpemVzQXR0cmlidXRlUGFyc2VyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNpemVzQXR0cmlidXRlUGFyc2VyOjptZWRpYUNvbmRpdGlvbk1hdGNo
ZXMpOgorICAgICAgICAqIGNzcy90eXBlZG9tL0NTU051bWVyaWNGYWN0b3J5Lmg6CisgICAgICAg
ICogY3NzL3R5cGVkb20vQ1NTTnVtZXJpY1ZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNT
U051bWVyaWNWYWx1ZTo6bXVsdGlwbHlJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NO
dW1lcmljVmFsdWU6OnRvKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU051bWVyaWNWYWx1ZTo6cGFy
c2UpOgorICAgICAgICAqIGNzcy90eXBlZG9tL0NTU1N0eWxlVmFsdWVGYWN0b3J5LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlVmFsdWVGYWN0b3J5OjpyZWlmeVZhbHVlKToKKyAgICAg
ICAgKiBlZGl0aW5nL2NvY29hL0hUTUxDb252ZXJ0ZXIubW06CisgICAgICAgIChIVE1MQ29udmVy
dGVyQ2FjaGVzOjpwcm9wZXJ0eVZhbHVlRm9yTm9kZSk6CisgICAgICAgIChIVE1MQ29udmVydGVy
OjpfcHJvY2Vzc0VsZW1lbnQpOgorICAgICAgICAqIGVkaXRpbmcvY29jb2EvV2ViQ29udGVudFJl
YWRlckNvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6YXR0YWNobWVudEZvckRhdGEpOgorICAg
ICAgICAqIGxvYWRlci9jb2NvYS9CdW5kbGVSZXNvdXJjZUxvYWRlci5tbToKKyAgICAgICAgKFdl
YkNvcmU6OkJ1bmRsZVJlc291cmNlTG9hZGVyOjpsb2FkUmVzb3VyY2VGcm9tQnVuZGxlKToKKyAg
ICAgICAgKiBsb2FkZXIvbWFjL0xvYWRlck5TVVJMRXh0cmFzLm1tOgorICAgICAgICAoc3VnZ2Vz
dGVkRmlsZW5hbWVXaXRoTUlNRVR5cGUpOgorICAgICAgICAqIHBhZ2UvY29jb2EvUmVzb3VyY2VV
c2FnZU92ZXJsYXlDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6Okhpc3RvcmljUmVzb3VyY2VV
c2FnZURhdGE6Okhpc3RvcmljUmVzb3VyY2VVc2FnZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6
ZHJhd0NwdUhpc3RvcnkpOgorICAgICAgICAoV2ViQ29yZTo6ZHJhd0dDSGlzdG9yeSk6CisgICAg
ICAgIChXZWJDb3JlOjpkcmF3TWVtSGlzdG9yeSk6CisgICAgICAgICogcGFnZS9jb2NvYS9TZXR0
aW5nc0Jhc2VDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzQmFzZTo6aW5pdGlh
bGl6ZURlZmF1bHRGb250RmFtaWxpZXMpOgorICAgICAgICAqIHBhZ2UvbWFjL1BhZ2VNYWMubW06
CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpwbGF0Zm9ybUluaXRpYWxpemUpOgorICAgICAgICAq
IHBsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QVhBUklB
Q29udGVudEdyb3VwVGV4dCk6CisgICAgICAgICogcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5o
OgorICAgICAgICAqIHBsYXRmb3JtL1Bhc3RlYm9hcmQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9Q
YXN0ZWJvYXJkQ3VzdG9tRGF0YS5oOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL2NvY29hL01l
ZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lv
bk1hbmFnZXJDb2NvYTo6dXBkYXRlTm93UGxheWluZ0luZm8pOgorICAgICAgICAqIHBsYXRmb3Jt
L2NvY29hL0tleUV2ZW50Q29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjprZXlJZGVudGlmaWVy
Rm9yQ2hhckNvZGUpOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL1Bhc3RlYm9hcmRDb2NvYS5t
bToKKyAgICAgICAgKFdlYkNvcmU6OmltYWdlVHlwZVRvRmFrZUZpbGVuYW1lKToKKyAgICAgICAg
KFdlYkNvcmU6OlBhc3RlYm9hcmQ6OnJlYWQpOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL1Bh
c3RlYm9hcmRDdXN0b21EYXRhQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJk
Q3VzdG9tRGF0YTo6Y29jb2FUeXBlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb3Vy
Q0MuaDoKKyAgICAgICAgKFdURjo6TG9nQXJndW1lbnQ8V2ViQ29yZTo6Rm91ckNDPjo6dG9TdHJp
bmcpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dEdM
QU5HTEUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6dmFs
aWRhdGVEZXB0aFN0ZW5jaWwpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9DRE1Qcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6
Q0RNUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6cGFyc2VLZXlTeXN0ZW0pOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9D
RE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6
OkNETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDOjpzZXRTdG9yYWdlRGlyZWN0b3J5
KToKKyAgICAgICAgKFdlYkNvcmU6OkNETUluc3RhbmNlU2Vzc2lvbkZhaXJQbGF5U3RyZWFtaW5n
QVZGT2JqQzo6dXBkYXRlTGljZW5zZSk6CisgICAgICAgIChXZWJDb3JlOjpDRE1JbnN0YW5jZVNl
c3Npb25GYWlyUGxheVN0cmVhbWluZ0FWRk9iakM6OmRpZFByb3ZpZGVSZXF1ZXN0cyk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbk1lZGlh
U291cmNlQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkNETVNlc3Npb25NZWRpYVNvdXJj
ZUFWRk9iakM6OnN0b3JhZ2VQYXRoIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMu
bW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9i
akM6OnN0cmVhbVNlc3Npb24pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29y
ZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmRpZFByb3ZpZGVDb250ZW50S2V5UmVxdWVz
dEluaXRpYWxpemF0aW9uRGF0YUZvclRyYWNrSUQpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9E
YXRhRGV0ZWN0b3JIaWdobGlnaHQubW06CisgICAgICAgIChXZWJDb3JlOjpEYXRhRGV0ZWN0b3JI
aWdobGlnaHQ6OmZhZGVJbik6CisgICAgICAgIChXZWJDb3JlOjpEYXRhRGV0ZWN0b3JIaWdobGln
aHQ6OmZhZGVPdXQpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tOgor
ICAgICAgICAqIHBsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbToKKyAgICAg
ICAgKFdlYkNvcmU6OmtleUlkZW50aWZpZXJGb3JLZXlFdmVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpQbGF0Zm9ybUtleWJvYXJkRXZlbnRCdWlsZGVyOjpQbGF0Zm9ybUtleWJvYXJkRXZlbnRCdWls
ZGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvUGxhdGZvcm1QYXN0ZWJvYXJkTWFjLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1QYXN0ZWJvYXJkOjp0eXBlc1NhZmVGb3JET01Ub1Jl
YWRBbmRXcml0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVBhc3RlYm9hcmQ6
OndyaXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVBhc3RlYm9hcmRJdGVtKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tYWMvU3RyaW5nVXRpbGl0aWVzLm1tOgorICAgICAgICAoV2ViQ29yZTo6
d2lsZGNhcmRSZWdleFBhdHRlcm5TdHJpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9UaHJl
YWRDaGVjay5tbToKKyAgICAgICAgKFdlYkNvcmVSZXBvcnRUaHJlYWRWaW9sYXRpb24pOgorICAg
ICAgICAqIHBsYXRmb3JtL21hYy9Vc2VyQWdlbnRNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpz
dGFuZGFyZFVzZXJBZ2VudFdpdGhBcHBsaWNhdGlvbk5hbWUpOgorICAgICAgICAqIHBsYXRmb3Jt
L25ldHdvcmsvUmVzb3VyY2VFcnJvckJhc2UuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdv
cmsvUmVzb3VyY2VFcnJvckJhc2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NvY29h
L1JhbmdlUmVzcG9uc2VHZW5lcmF0b3IubW06CisgICAgICAgIChXZWJDb3JlOjpzeW50aGVzaXpl
ZFJlc3BvbnNlRm9yUmFuZ2UpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5t
bToKKyAgICAgICAgKFdlYkNvcmU6Omljb25Gb3JBdHRhY2htZW50KToKKyAgICAgICAgKiByZW5k
ZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
b3BlcmF0b3I8PCk6CisgICAgICAgICogc3ZnL1NWR0ZpbHRlckVsZW1lbnQuaDoKKyAgICAgICAg
KiBzdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmg6CisgICAgICAgICog
c3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdNYXJrZXJF
bGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR01hc2tFbGVtZW50Lmg6CisgICAgICAgICogc3Zn
L1NWR1BhdGhTZWdJbXBsLmg6CisgICAgICAgICogc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVu
dC5oOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5VHJhaXRzLmg6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxib29sPjo6dG9TdHJpbmcpOgorICAgICAg
ICAqIHRlc3RpbmcvTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5ncy5oOgorICAgICAgICAoV2ViQ29y
ZTo6TW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5nczo6dW5ibG9ja1VSTEhvc3QpOgorICAgICAgICAq
IHhtbC9YUGF0aFZhbHVlLmg6CisgICAgICAgIChXZWJDb3JlOjpYUGF0aDo6VmFsdWU6OlZhbHVl
KToKKyAgICAgICAgKiB4bWwvWFNMU3R5bGVTaGVldC5oOgorCiAyMDIyLTAzLTI0ICBDaHJpcyBE
dW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgU3RyaW5nJ3MgZmluZCgpIC8gcmV2
ZXJzZUZpbmQoKSAvIHJlcGxhY2UoKSBzaG91bGQgdGFrZSBpbiBhIFN0cmluZ1ZpZXcgaW5zdGVh
ZCBvZiBhIFN0cmluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkdQVS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViR1BVL0NoYW5nZUxvZwppbmRleCAzZWRmMDMyN2VhM2Q5MGZhNWI1NThkZDU4OWNmYWMy
YWE1MGViNDFlLi4xYmY2MmY5MDc5YjQxNzcxN2VhYjBkNDJiOTgxYTYwOGRmMWMzZWM2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViR1BVL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViR1BVL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDIyLTAzLTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBh
cHBsZS5jb20+CisKKyAgICAgICAgU3RhcnQgcHJlcGFyaW5nIFdlYkNvcmUgZm9yIG1ha2luZyB0
aGUgU3RyaW5nKGNvbnN0IGNoYXIqKSBjb25zdHJ1Y3RvciBleHBsaWNpdAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4MzM2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3RhcnQgcHJlcGFyaW5nIFdlYkNv
cmUgZm9yIG1ha2luZyB0aGUgU3RyaW5nKGNvbnN0IGNoYXIqKSBjb25zdHJ1Y3RvciBleHBsaWNp
dC4KKyAgICAgICAgTWFraW5nIHRoaXMgY29uc3RydWN0b3IgZXhwbGljaXQgaGVscHMgY2F0Y2gg
YXQgY29tcGlsZSB0aW1lIGNhc2VzIHdoZXJlIHRoZSAiIl9zCisgICAgICAgIHByZWZpeCBpcyBt
aXNzaW5nIG9uIFN0cmluZyBsaXRlcmFscy4KKworICAgICAgICAqIFdHU0wvUGFyc2VyLmNwcDoK
KyAgICAgICAgKFdHU0w6OlBhcnNlcjxMZXhlcj46OnBhcnNlR2xvYmFsRGVjbCk6CisgICAgICAg
IChXR1NMOjpQYXJzZXI8TGV4ZXI+OjpwYXJzZUF0dHJpYnV0ZSk6CisgICAgICAgIChXR1NMOjpQ
YXJzZXI8TGV4ZXI+OjpwYXJzZVR5cGVEZWNsKToKKyAgICAgICAgKFdHU0w6OlBhcnNlcjxMZXhl
cj46OnBhcnNlU3RvcmFnZUNsYXNzKToKKyAgICAgICAgKFdHU0w6OlBhcnNlcjxMZXhlcj46OnBh
cnNlQWNjZXNzTW9kZSk6CisgICAgICAgIChXR1NMOjpQYXJzZXI8TGV4ZXI+OjpwYXJzZVN0YXRl
bWVudCk6CisgICAgICAgIChXR1NMOjpQYXJzZXI8TGV4ZXI+OjpwYXJzZVByaW1hcnlFeHByZXNz
aW9uKToKKyAgICAgICAgKFdHU0w6OlBhcnNlcjxMZXhlcj46OnBhcnNlQ29yZUxIU0V4cHJlc3Np
b24pOgorICAgICAgICAqIFdHU0wvVG9rZW4uY3BwOgorICAgICAgICAoV0dTTDo6dG9TdHJpbmcp
OgorICAgICAgICAqIFdlYkdQVS9BZGFwdGVyLm1tOgorICAgICAgICAoV2ViR1BVOjpBZGFwdGVy
OjpyZXF1ZXN0RGV2aWNlKToKKyAgICAgICAgKiBXZWJHUFUvQnVmZmVyLm1tOgorICAgICAgICAo
V2ViR1BVOjpCdWZmZXI6Om1hcEFzeW5jKToKKyAgICAgICAgKFdlYkdQVTo6QnVmZmVyOjp1bm1h
cCk6CisgICAgICAgICogV2ViR1BVL0NvbW1hbmRFbmNvZGVyLm1tOgorICAgICAgICAoV2ViR1BV
OjpDb21tYW5kRW5jb2Rlcjo6Y29weUJ1ZmZlclRvQnVmZmVyKToKKyAgICAgICAgKFdlYkdQVTo6
Q29tbWFuZEVuY29kZXI6OmNsZWFyQnVmZmVyKToKKyAgICAgICAgKFdlYkdQVTo6Q29tbWFuZEVu
Y29kZXI6OmZpbmlzaCk6CisgICAgICAgICogV2ViR1BVL0NvbXB1dGVQaXBlbGluZS5tbToKKyAg
ICAgICAgKFdlYkdQVTo6Y3JlYXRlQ29uc3RhbnRWYWx1ZXMpOgorICAgICAgICAoV2ViR1BVOjpE
ZXZpY2U6OmNyZWF0ZUNvbXB1dGVQaXBlbGluZSk6CisgICAgICAgICogV2ViR1BVL1F1ZXVlLm1t
OgorICAgICAgICAoV2ViR1BVOjpRdWV1ZTo6c3VibWl0KToKKyAgICAgICAgKiBXZWJHUFUvU2Ft
cGxlci5tbToKKyAgICAgICAgKFdlYkdQVTo6RGV2aWNlOjpjcmVhdGVTYW1wbGVyKToKKyAgICAg
ICAgKiBXZWJHUFUvU2hhZGVyTW9kdWxlLm1tOgorICAgICAgICAoV2ViR1BVOjplYXJseUNvbXBp
bGVTaGFkZXJNb2R1bGUpOgorCiAyMDIyLTAzLTIzICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhm
aWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYkdQVV0gRml4IHRoZSBub24tbWFjT1MgYnVp
bGQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKaW5kZXggYjk0YzNhZmE3MjQzY2YxY2FkZTgxMDVhNjZkZmQzN2Y5ZDE2ODdkMy4u
NWMzZGY0NjFjN2M3YjYxZDY4ZDM4MTYyMjdjNDA1NzNlMWU0ZmI0MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOCBAQAorMjAyMi0wMy0yNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFN0YXJ0IHByZXBhcmluZyBXZWJDb3JlIGZvciBtYWtpbmcgdGhlIFN0cmluZyhj
b25zdCBjaGFyKikgY29uc3RydWN0b3IgZXhwbGljaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODMzNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0YXJ0IHByZXBhcmluZyBXZWJDb3JlIGZvciBtYWtp
bmcgdGhlIFN0cmluZyhjb25zdCBjaGFyKikgY29uc3RydWN0b3IgZXhwbGljaXQuCisgICAgICAg
IE1ha2luZyB0aGlzIGNvbnN0cnVjdG9yIGV4cGxpY2l0IGhlbHBzIGNhdGNoIGF0IGNvbXBpbGUg
dGltZSBjYXNlcyB3aGVyZSB0aGUgIiJfcworICAgICAgICBwcmVmaXggaXMgbWlzc2luZyBvbiBT
dHJpbmcgbGl0ZXJhbHMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwu
bW06CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZXRQcm9taXNlZERhdGFGb3JJbWFn
ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpyZXF1ZXN0RE9NUGFzdGVBY2Nlc3Mp
OgorCiAyMDIyLTAzLTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAg
ICAgU3RyaW5nJ3MgZmluZCgpIC8gcmV2ZXJzZUZpbmQoKSAvIHJlcGxhY2UoKSBzaG91bGQgdGFr
ZSBpbiBhIFN0cmluZ1ZpZXcgaW5zdGVhZCBvZiBhIFN0cmluZwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hh
bmdlTG9nCmluZGV4IGE0YzgxYjUyNDU3ZDk4NzVkMjgwZjc1MGQyNTczNWVlZTY3MGM2OGIuLjM4
MmQ0ZWMyYjM0YmQ2YzdjNjI0NDI3ZmU4ZjM0NTM3YTUwN2UxYzMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMi0wMy0yNCAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFN0YXJ0IHByZXBhcmluZyBXZWJDb3JlIGZvciBt
YWtpbmcgdGhlIFN0cmluZyhjb25zdCBjaGFyKikgY29uc3RydWN0b3IgZXhwbGljaXQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODMzNgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0YXJ0IHByZXBhcmlu
ZyBXZWJDb3JlIGZvciBtYWtpbmcgdGhlIFN0cmluZyhjb25zdCBjaGFyKikgY29uc3RydWN0b3Ig
ZXhwbGljaXQuCisgICAgICAgIE1ha2luZyB0aGlzIGNvbnN0cnVjdG9yIGV4cGxpY2l0IGhlbHBz
IGNhdGNoIGF0IGNvbXBpbGUgdGltZSBjYXNlcyB3aGVyZSB0aGUgIiJfcworICAgICAgICBwcmVm
aXggaXMgbWlzc2luZyBvbiBTdHJpbmcgbGl0ZXJhbHMuCisKKyAgICAgICAgKiBNaXNjL1dlYk5T
UGFzdGVib2FyZEV4dHJhcy5tbToKKyAgICAgICAgKC1bTlNQYXN0ZWJvYXJkIF93ZWJfZGVjbGFy
ZUFuZFdyaXRlRHJhZ0ltYWdlRm9yRWxlbWVudDpVUkw6dGl0bGU6YXJjaGl2ZTpzb3VyY2U6XSk6
CisKIDIwMjItMDMtMTggIEpvbmF0aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBwbGUuY29tPgogCiAg
ICAgICAgIFtpT1MgMTUuNF0gRml4IHVudXNlZCB2YXJpYWJsZXMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWYWx1ZS5tbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvSlNWYWx1ZS5tbQppbmRleCBkM2FkMDgwZTFkZGY0ZmU2ZWZiYTkxMzViYTI2ODc2Yzc3ZGNi
YzI2Li5mMTJhMmM0OTUzZjAwMzJkZmI0YjcyZjY4ZmY4MGZlZGRiNjkwMzU0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmFsdWUubW0KKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9KU1ZhbHVlLm1tCkBAIC0xMTc5LDcgKzExNzksNyBAQCBzdGF0aWMgU3Ry
dWN0SGFuZGxlcnMqIGNyZWF0ZVN0cnVjdEhhbmRsZXJNYXAoKQogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICAvLyBUcnkgdG8gZmluZCBhIG1hdGNoaW5nIHZhbHVlV2l0aDxGb28+OmNvbnRl
eHQ6IG1ldGhvZC4KICAgICAgICAgYXV0byB0eXBlID0gYWRvcHRTeXN0ZW08Y2hhcltdPihtZXRo
b2RfY29weVJldHVyblR5cGUobWV0aG9kKSk7Ci0gICAgICAgIFN0cnVjdEhhbmRsZXJzOjppdGVy
YXRvciBpdGVyID0gc3RydWN0SGFuZGxlcnMtPmZpbmQodHlwZS5nZXQoKSk7CisgICAgICAgIFN0
cnVjdEhhbmRsZXJzOjppdGVyYXRvciBpdGVyID0gc3RydWN0SGFuZGxlcnMtPmZpbmQoU3RyaW5n
IHsgdHlwZS5nZXQoKSB9KTsKICAgICAgICAgaWYgKGl0ZXIgPT0gc3RydWN0SGFuZGxlcnMtPmVu
ZCgpKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBTdHJ1Y3RUYWdIYW5kbGVyJiBoYW5k
bGVyID0gaXRlci0+dmFsdWU7CkBAIC0xMjE3LDcgKzEyMTcsNyBAQCBzdGF0aWMgU3RydWN0VGFn
SGFuZGxlciogaGFuZGVyRm9yU3RydWN0VGFnKGNvbnN0IGNoYXIqIGVuY29kZWRUeXBlKQogCiAg
ICAgc3RhdGljIFN0cnVjdEhhbmRsZXJzKiBzdHJ1Y3RIYW5kbGVycyA9IGNyZWF0ZVN0cnVjdEhh
bmRsZXJNYXAoKTsKIAotICAgIFN0cnVjdEhhbmRsZXJzOjppdGVyYXRvciBpdGVyID0gc3RydWN0
SGFuZGxlcnMtPmZpbmQoZW5jb2RlZFR5cGUpOworICAgIFN0cnVjdEhhbmRsZXJzOjppdGVyYXRv
ciBpdGVyID0gc3RydWN0SGFuZGxlcnMtPmZpbmQoU3RyaW5nIHsgZW5jb2RlZFR5cGUgfSk7CiAg
ICAgaWYgKGl0ZXIgPT0gc3RydWN0SGFuZGxlcnMtPmVuZCgpKQogICAgICAgICByZXR1cm4gMDsK
ICAgICByZXR1cm4gJml0ZXItPnZhbHVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS9KU1dyYXBwZXJNYXAubW0gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTV3Jh
cHBlck1hcC5tbQppbmRleCA5NmU0NDc4ODcwY2Q4MWE1ODk5N2QwMmRhNmZhNGZiYTM0NmFmMTk1
Li5mODIxZGY4ZTNlYmVkNTdmNTQwY2QyZjAxZDY0ZWM5NmRjZmE4NmNkIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTV3JhcHBlck1hcC5tbQorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL0pTV3JhcHBlck1hcC5tbQpAQCAtNDUxLDcgKzQ1MSw3IEBAIHN0YXRp
YyBKU0M6OkpTT2JqZWN0KiBhbGxvY2F0ZUNvbnN0cnVjdG9yRm9yQ3VzdG9tQ2xhc3MoSlNDb250
ZXh0ICpjb250ZXh0LCBjb25zCiAgICAgICAgIGZvckVhY2hNZXRob2RJbkNsYXNzKGN1cnJlbnRD
bGFzcywgXihNZXRob2QgbWV0aG9kKSB7CiAgICAgICAgICAgICBTRUwgc2VsZWN0b3IgPSBtZXRo
b2RfZ2V0TmFtZShtZXRob2QpOwogICAgICAgICAgICAgY29uc3QgY2hhciogbmFtZSA9IHNlbF9n
ZXROYW1lKHNlbGVjdG9yKTsKLSAgICAgICAgICAgIGF1dG8gaXRlciA9IGluaXRUYWJsZS5maW5k
KG5hbWUpOworICAgICAgICAgICAgYXV0byBpdGVyID0gaW5pdFRhYmxlLmZpbmQoU3RyaW5nIHsg
bmFtZSB9KTsKIAogICAgICAgICAgICAgaWYgKGl0ZXIgPT0gaW5pdFRhYmxlLmVuZCgpKQogICAg
ICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckF1ZGl0QWdlbnQuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQXVkaXRBZ2VudC5jcHAKaW5kZXggMzBh
Y2FmMzM0NTgwNTM3NGQ4MWRiYjBiMWM1ZDQ5ZmY3YWYwYTZlMS4uYzI4NzczNmQ3MWU3ZWI5ZTg4
NTU4ZmZjZDBiNzA0NTI1YmZmY2Y5NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQXVkaXRBZ2VudC5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQXVkaXRBZ2VudC5jcHAKQEAg
LTkyLDcgKzkyLDcgQEAgUHJvdG9jb2w6OkVycm9yU3RyaW5nT3I8c3RkOjp0dXBsZTxSZWY8UHJv
dG9jb2w6OlJ1bnRpbWU6OlJlbW90ZU9iamVjdD4sIHN0ZDo6b3AKICAgICBpZiAoaW5qZWN0ZWRT
Y3JpcHQuaGFzTm9WYWx1ZSgpKQogICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoZXJyb3JT
dHJpbmcpOwogCi0gICAgYXV0byBmdW5jdGlvblN0cmluZyA9IG1ha2VTdHJpbmcoIihmdW5jdGlv
bihXZWJJbnNwZWN0b3JBdWRpdCkgeyBcInVzZSBzdHJpY3RcIjsgcmV0dXJuIGV2YWwoYCgiLCBT
dHJpbmcgeyB0ZXN0IH0ucmVwbGFjZSgnYCcsICJcXGAiKSwgIilgKShXZWJJbnNwZWN0b3JBdWRp
dCk7IH0pIik7CisgICAgYXV0byBmdW5jdGlvblN0cmluZyA9IG1ha2VTdHJpbmcoIihmdW5jdGlv
bihXZWJJbnNwZWN0b3JBdWRpdCkgeyBcInVzZSBzdHJpY3RcIjsgcmV0dXJuIGV2YWwoYCgiLCBT
dHJpbmcgeyB0ZXN0IH0ucmVwbGFjZSgnYCcsICJcXGAiX3MpLCAiKWApKFdlYkluc3BlY3RvckF1
ZGl0KTsgfSkiKTsKIAogICAgIEluamVjdGVkU2NyaXB0OjpFeGVjdXRlT3B0aW9ucyBvcHRpb25z
OwogICAgIG9wdGlvbnMub2JqZWN0R3JvdXAgPSAiYXVkaXQiX3M7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L1RleHRTdHJlYW0uaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dFN0
cmVhbS5oCmluZGV4IGM4NWRhNjY0MWUxMzE3M2M5NzExNTdiYTRhOTgzYjQ0ZjU0NjViYTUuLmRm
NzEyZWQyMDVmNDc5Nzk3YmI2ZDlmNTA2N2Q2MTQzMTFjNjUwYTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvd3RmL3RleHQvVGV4dFN0cmVhbS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4
dFN0cmVhbS5oCkBAIC0xMDAsNiArMTAwLDE1IEBAIHB1YmxpYzoKICAgICAgICAgdHMuZW5kR3Jv
dXAoKTsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgIHZvaWQgZHVtcFBy
b3BlcnR5KGNvbnN0IGNoYXIqIG5hbWUsIGNvbnN0IFQmIHZhbHVlKQorICAgIHsKKyAgICAgICAg
VGV4dFN0cmVhbSYgdHMgPSAqdGhpczsKKyAgICAgICAgdHMuc3RhcnRHcm91cCgpOworICAgICAg
ICB0cyA8PCBuYW1lIDw8ICIgIiA8PCB2YWx1ZTsKKyAgICAgICAgdHMuZW5kR3JvdXAoKTsKKyAg
ICB9CisKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5nIHJlbGVhc2UoKTsKICAgICAKICAg
ICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBzdGFydEdyb3VwKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5LWFtcy11aS9BcHBsZVBheUFNU1VJUGF5bWVudEhh
bmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS1hbXMtdWkvQXBwbGVQ
YXlBTVNVSVBheW1lbnRIYW5kbGVyLmNwcAppbmRleCBmNGRhZjhkMThhZWM0OTk3NzVkNWMwM2Mw
OGVhYTA0MzI0MTE0M2ZiLi40YTMyMjVjZTljYTQwNmMwMGZlMTY4NDYwYTVkNmQwMzAwNDI4NTU5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5LWFtcy11aS9BcHBs
ZVBheUFNU1VJUGF5bWVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
YXBwbGVwYXktYW1zLXVpL0FwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxlci5jcHAKQEAgLTM5LDcg
KzM5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogc3RhdGljIEV4Y2VwdGlvbk9yPEFwcGxlUGF5
QU1TVUlSZXF1ZXN0PiBjb252ZXJ0QW5kVmFsaWRhdGVBcHBsZVBheUFNU1VJUmVxdWVzdChEb2N1
bWVudCYgZG9jdW1lbnQsIEpTQzo6SlNWYWx1ZSBkYXRhKQogewogICAgIGlmIChkYXRhLmlzRW1w
dHkoKSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIk1pc3NpbmcgcGF5
bWVudCBtZXRob2QgZGF0YS4iIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJy
b3IsICJNaXNzaW5nIHBheW1lbnQgbWV0aG9kIGRhdGEuIl9zIH07CiAKICAgICBhdXRvIHRocm93
U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKGRvY3VtZW50LnZtKCkpOwogICAgIGF1dG8gYXBw
bGVQYXlBTVNVSVJlcXVlc3QgPSBjb252ZXJ0RGljdGlvbmFyeTxBcHBsZVBheUFNU1VJUmVxdWVz
dD4oKmRvY3VtZW50Lmdsb2JhbE9iamVjdCgpLCBkYXRhKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlDb250YWN0RmllbGQuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUNvbnRhY3RGaWVsZC5jcHAKaW5kZXgg
ZGQzZGNiNGVjN2RkNGE2YWYzOTBiZWQ2YzFhN2YyYTE0MjMxMzUyNC4uMzcxYjllZDQyMzI4N2Q5
NzczNTU5YTVjZjhhNTFiNjc5N2VmM2FjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9hcHBsZXBheS9BcHBsZVBheUNvbnRhY3RGaWVsZC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUNvbnRhY3RGaWVsZC5jcHAKQEAgLTQ0LDcgKzQ0
LDcgQEAgRXhjZXB0aW9uT3I8QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OkNvbnRhY3RG
aWVsZHM+IGNvbnZlcnRBbmRWYWxpZGF0ZSh1bnMKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICBjYXNlIEFwcGxlUGF5Q29udGFjdEZpZWxkOjpQaG9uZXRpY05hbWU6CiAgICAgICAgICAgICBp
ZiAodmVyc2lvbiA8IDMpCi0gICAgICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVF
cnJvciwgIlwicGhvbmV0aWNOYW1lXCIgaXMgbm90IGEgdmFsaWQgY29udGFjdCBmaWVsZC4iIH07
CisgICAgICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIlwicGhvbmV0
aWNOYW1lXCIgaXMgbm90IGEgdmFsaWQgY29udGFjdCBmaWVsZC4iX3MgfTsKICAgICAgICAgICAg
IHJlc3VsdC5waG9uZXRpY05hbWUgPSB0cnVlOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IGNhc2UgQXBwbGVQYXlDb250YWN0RmllbGQ6OlBob25lOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheU1lcmNoYW50Q2FwYWJpbGl0eS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5TWVyY2hhbnRDYXBhYmlsaXR5
LmNwcAppbmRleCBhNjJhMmM3M2VhMzA2NTUxYmVlODVkYzk1NjE3YzExNjI1NjUzYmMyLi5mNjg0
YmM5YWM2MWQ0OTlhNTVjYTRlMTgxZjU3YjQ2OTE3MjU3OWExIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5TWVyY2hhbnRDYXBhYmlsaXR5LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5TWVyY2hhbnRDYXBh
YmlsaXR5LmNwcApAQCAtMzMsNyArMzMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBFeGNlcHRp
b25PcjxBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6TWVyY2hhbnRDYXBhYmlsaXRpZXM+
IGNvbnZlcnRBbmRWYWxpZGF0ZShjb25zdCBWZWN0b3I8QXBwbGVQYXlNZXJjaGFudENhcGFiaWxp
dHk+JiBtZXJjaGFudENhcGFiaWxpdGllcykKIHsKICAgICBpZiAobWVyY2hhbnRDYXBhYmlsaXRp
ZXMuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiQXQg
bGVhc3Qgb25lIG1lcmNoYW50IGNhcGFiaWxpdHkgbXVzdCBiZSBwcm92aWRlZC4iIH07CisgICAg
ICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJBdCBsZWFzdCBvbmUgbWVyY2hhbnQg
Y2FwYWJpbGl0eSBtdXN0IGJlIHByb3ZpZGVkLiJfcyB9OwogCiAgICAgQXBwbGVQYXlTZXNzaW9u
UGF5bWVudFJlcXVlc3Q6Ok1lcmNoYW50Q2FwYWJpbGl0aWVzIHJlc3VsdDsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVJlcXVlc3RCYXNlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlSZXF1ZXN0QmFzZS5j
cHAKaW5kZXggMjQ1ODZkNWRkNDc5YzkwOTNkNDlmOTYxMDExOTFjYWE4ZTg1MDk3ZS4uOGQzNjI3
YTZmNmEyN2ZiOGM4MmM5M2FkNTQ2ZDZhYWYwNjliZjEzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVJlcXVlc3RCYXNlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5UmVxdWVzdEJhc2UuY3BwCkBAIC03
Myw3ICs3Myw3IEBAIEV4Y2VwdGlvbk9yPEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0PiBj
b252ZXJ0QW5kVmFsaWRhdGUoRG9jdW1lbnQmIGRvY3VtZW50CiAgICAgcmVzdWx0LnNldE1lcmNo
YW50Q2FwYWJpbGl0aWVzKG1lcmNoYW50Q2FwYWJpbGl0aWVzLnJlbGVhc2VSZXR1cm5WYWx1ZSgp
KTsKIAogICAgIGlmIChyZXF1aXJlc1N1cHBvcnRlZE5ldHdvcmtzKHZlcnNpb24sIHJlcXVlc3Qp
ICYmIHJlcXVlc3Quc3VwcG9ydGVkTmV0d29ya3MuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4g
RXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiQXQgbGVhc3Qgb25lIHN1cHBvcnRlZCBuZXR3b3JrIG11
c3QgYmUgcHJvdmlkZWQuIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9y
LCAiQXQgbGVhc3Qgb25lIHN1cHBvcnRlZCBuZXR3b3JrIG11c3QgYmUgcHJvdmlkZWQuIl9zIH07
CiAKICAgICBhdXRvIHN1cHBvcnRlZE5ldHdvcmtzID0gY29udmVydEFuZFZhbGlkYXRlKGRvY3Vt
ZW50LCB2ZXJzaW9uLCByZXF1ZXN0LnN1cHBvcnRlZE5ldHdvcmtzLCBwYXltZW50Q29vcmRpbmF0
b3IpOwogICAgIGlmIChzdXBwb3J0ZWROZXR3b3Jrcy5oYXNFeGNlcHRpb24oKSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTZXNzaW9uLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTZXNzaW9uLmNwcAppbmRl
eCA2Y2JmY2YwNzk3NTAxYTk5NjI5ZmNjNjkzNmI2ZjA1MGYwY2ZjODlhLi41OWUzMDBiZWI3MDky
NmVmOTgzYWVjYmE2ZDRhZTViNmU3YjA2NWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNlc3Npb24uY3BwCkBAIC0zMTAsMTAgKzMxMCwxMCBA
QCBFeGNlcHRpb25PcjxSZWY8QXBwbGVQYXlTZXNzaW9uPj4gQXBwbGVQYXlTZXNzaW9uOjpjcmVh
dGUoRG9jdW1lbnQmIGRvY3VtZW50LCB1bgogICAgICAgICByZXR1cm4gY2FuQ2FsbC5yZWxlYXNl
RXhjZXB0aW9uKCk7CiAKICAgICBpZiAoIVVzZXJHZXN0dXJlSW5kaWNhdG9yOjpwcm9jZXNzaW5n
VXNlckdlc3R1cmUoKSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NF
cnJvciwgIk11c3QgY3JlYXRlIGEgbmV3IEFwcGxlUGF5U2Vzc2lvbiBmcm9tIGEgdXNlciBnZXN0
dXJlIGhhbmRsZXIuIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vz
c0Vycm9yLCAiTXVzdCBjcmVhdGUgYSBuZXcgQXBwbGVQYXlTZXNzaW9uIGZyb20gYSB1c2VyIGdl
c3R1cmUgaGFuZGxlci4iX3MgfTsKIAogICAgIGlmICghZG9jdW1lbnQucGFnZSgpKQotICAgICAg
ICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiRnJhbWUgaXMgZGV0YWNo
ZWQiIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJG
cmFtZSBpcyBkZXRhY2hlZCJfcyB9OwogCiAgICAgYXV0byBjb252ZXJ0ZWRQYXltZW50UmVxdWVz
dCA9IGNvbnZlcnRBbmRWYWxpZGF0ZShkb2N1bWVudCwgdmVyc2lvbiwgV1RGTW92ZShwYXltZW50
UmVxdWVzdCksIGRvY3VtZW50LnBhZ2UoKS0+cGF5bWVudENvb3JkaW5hdG9yKCkpOwogICAgIGlm
IChjb252ZXJ0ZWRQYXltZW50UmVxdWVzdC5oYXNFeGNlcHRpb24oKSkKQEAgLTQxMiw3ICs0MTIs
NyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBBcHBsZVBheVNlc3Npb246Om9wZW5QYXltZW50U2V0dXAo
RG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdAogICAgICAgICByZXR1cm4gY2FuQ2FsbC5yZWxl
YXNlRXhjZXB0aW9uKCk7CiAKICAgICBpZiAoIVVzZXJHZXN0dXJlSW5kaWNhdG9yOjpwcm9jZXNz
aW5nVXNlckdlc3R1cmUoKSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nl
c3NFcnJvciwgIk11c3QgY2FsbCBBcHBsZVBheVNlc3Npb24ub3BlblBheW1lbnRTZXR1cCBmcm9t
IGEgdXNlciBnZXN0dXJlIGhhbmRsZXIuIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
SW52YWxpZEFjY2Vzc0Vycm9yLCAiTXVzdCBjYWxsIEFwcGxlUGF5U2Vzc2lvbi5vcGVuUGF5bWVu
dFNldHVwIGZyb20gYSB1c2VyIGdlc3R1cmUgaGFuZGxlci4iX3MgfTsKIAogICAgIGF1dG8qIHBh
Z2UgPSBkb2N1bWVudC5wYWdlKCk7CiAgICAgaWYgKCFwYWdlKQpAQCAtNDMxLDEzICs0MzEsMTMg
QEAgRXhjZXB0aW9uT3I8dm9pZD4gQXBwbGVQYXlTZXNzaW9uOjpvcGVuUGF5bWVudFNldHVwKERv
Y3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3QKIEV4Y2VwdGlvbk9yPHZvaWQ+IEFwcGxlUGF5U2Vz
c2lvbjo6YmVnaW4oRG9jdW1lbnQmIGRvY3VtZW50KQogewogICAgIGlmICghY2FuQmVnaW4oKSkK
LSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwgIlBheW1lbnQg
c2Vzc2lvbiBpcyBhbHJlYWR5IGFjdGl2ZS4iIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBJbnZhbGlkQWNjZXNzRXJyb3IsICJQYXltZW50IHNlc3Npb24gaXMgYWxyZWFkeSBhY3RpdmUu
Il9zIH07CiAKICAgICBpZiAocGF5bWVudENvb3JkaW5hdG9yKCkuaGFzQWN0aXZlU2Vzc2lvbigp
KQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiUGFnZSBh
bHJlYWR5IGhhcyBhbiBhY3RpdmUgcGF5bWVudCBzZXNzaW9uLiIgfTsKKyAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwgIlBhZ2UgYWxyZWFkeSBoYXMgYW4gYWN0
aXZlIHBheW1lbnQgc2Vzc2lvbi4iX3MgfTsKIAogICAgIGlmICghcGF5bWVudENvb3JkaW5hdG9y
KCkuYmVnaW5QYXltZW50U2Vzc2lvbihkb2N1bWVudCwgKnRoaXMsIG1fcGF5bWVudFJlcXVlc3Qp
KQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiVGhlcmUg
aXMgYWxyZWFkeSBoYXMgYW4gYWN0aXZlIHBheW1lbnQgc2Vzc2lvbi4iIH07CisgICAgICAgIHJl
dHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJUaGVyZSBpcyBhbHJlYWR5IGhh
cyBhbiBhY3RpdmUgcGF5bWVudCBzZXNzaW9uLiJfcyB9OwogCiAgICAgbV9zdGF0ZSA9IFN0YXRl
OjpBY3RpdmU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkv
QXBwbGVQYXlTZXR1cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxl
UGF5U2V0dXAuY3BwCmluZGV4IGU4YjEzNjE2OTBiMjBlYWY3ZTFjNjE2YTc3MmE4ZjYxM2RlZmYz
NDguLjg5ZTRhNDU1ZjE4NWY4MTkwYzdlYzBkNzYxNzg0ZDU5NDZiYzYxNjMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTZXR1cC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNldHVwLmNwcApAQCAtOTEs
NyArOTEsNyBAQCB2b2lkIEFwcGxlUGF5U2V0dXA6OmJlZ2luKERvY3VtZW50JiBkb2N1bWVudCwg
VmVjdG9yPFJlZlB0cjxBcHBsZVBheVNldHVwRmVhdHVyZQogICAgIH0KIAogICAgIGlmICghVXNl
ckdlc3R1cmVJbmRpY2F0b3I6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpKSB7Ci0gICAgICAgIHBy
b21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwgIk11c3QgY2FsbCBB
cHBsZVBheVNldHVwLmJlZ2luIGZyb20gYSB1c2VyIGdlc3R1cmUgaGFuZGxlci4iIH0pOworICAg
ICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJNdXN0
IGNhbGwgQXBwbGVQYXlTZXR1cC5iZWdpbiBmcm9tIGEgdXNlciBnZXN0dXJlIGhhbmRsZXIuIl9z
IH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRJbnN0YWxsbWVudENvbmZpZ3VyYXRpb24ubW0gYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRJbnN0YWxsbWVudENvbmZpZ3Vy
YXRpb24ubW0KaW5kZXggNjRkMWRiYjIxMmU3MDJjMDJiMmI4MmNkMWU2OGU4MGU3NzNmMDg3MC4u
OTljNzRkNjg5MTY0OTA3MjI1MGRlYzQ5Yjk2ZDAwY2NhNmM2ZTE3ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50SW5zdGFsbG1lbnRDb25maWd1cmF0
aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvUGF5bWVudEluc3Rh
bGxtZW50Q29uZmlndXJhdGlvbi5tbQpAQCAtMjA3LDcgKzIwNyw3IEBAIEV4Y2VwdGlvbk9yPFBh
eW1lbnRJbnN0YWxsbWVudENvbmZpZ3VyYXRpb24+IFBheW1lbnRJbnN0YWxsbWVudENvbmZpZ3Vy
YXRpb246OmNyCiAgICAgICAgIE5TRGF0YSAqYXBwbGljYXRpb25NZXRhZGF0YSA9IFtjb25maWd1
cmF0aW9uLmFwcGxpY2F0aW9uTWV0YWRhdGEgZGF0YVVzaW5nRW5jb2Rpbmc6TlNVVEY4U3RyaW5n
RW5jb2RpbmddOwogICAgICAgICBhcHBsaWNhdGlvbk1ldGFkYXRhRGljdGlvbmFyeSA9IGR5bmFt
aWNfb2JqY19jYXN0PE5TRGljdGlvbmFyeT4oW05TSlNPTlNlcmlhbGl6YXRpb24gSlNPTk9iamVj
dFdpdGhEYXRhOmFwcGxpY2F0aW9uTWV0YWRhdGEgb3B0aW9uczowIGVycm9yOm5pbF0pOwogICAg
ICAgICBpZiAoIWFwcGxpY2F0aW9uTWV0YWRhdGFEaWN0aW9uYXJ5KQotICAgICAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgImFwcGxpY2F0aW9uTWV0YWRhdGEgbXVzdCBiZSBh
IEpTT04gb2JqZWN0IiB9OworICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJv
ciwgImFwcGxpY2F0aW9uTWV0YWRhdGEgbXVzdCBiZSBhIEpTT04gb2JqZWN0Il9zIH07CiAgICAg
fQogCiAgICAgcmV0dXJuIFBheW1lbnRJbnN0YWxsbWVudENvbmZpZ3VyYXRpb24oY29uZmlndXJh
dGlvbiwgYXBwbGljYXRpb25NZXRhZGF0YURpY3Rpb25hcnkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50UmVxdWVzdFZhbGlkYXRvci5tbSBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvUGF5bWVudFJlcXVlc3RWYWxpZGF0b3IubW0K
aW5kZXggZjEwYzU1ZDQ5NGExMWMzMGMwYTEwNWUxYmZiNjE0MzkwODY2OGM0MC4uYzUyZmQ5MmQw
OGQzZGM0ZTMzYWY3ZTBmZGJiZTNlMGM4ZThjZWNhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50UmVxdWVzdFZhbGlkYXRvci5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRSZXF1ZXN0VmFsaWRhdG9yLm1tCkBA
IC05NSwxOCArOTUsMTggQEAgRXhjZXB0aW9uT3I8dm9pZD4gUGF5bWVudFJlcXVlc3RWYWxpZGF0
b3I6OnZhbGlkYXRlKGNvbnN0IEFwcGxlUGF5U2Vzc2lvblBheW1lbnQKIEV4Y2VwdGlvbk9yPHZv
aWQ+IFBheW1lbnRSZXF1ZXN0VmFsaWRhdG9yOjp2YWxpZGF0ZVRvdGFsKGNvbnN0IEFwcGxlUGF5
TGluZUl0ZW0mIHRvdGFsKQogewogICAgIGlmICghdG90YWwubGFiZWwpCi0gICAgICAgIHJldHVy
biBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJNaXNzaW5nIHRvdGFsIGxhYmVsLiIgfTsKKyAgICAg
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIk1pc3NpbmcgdG90YWwgbGFiZWwuIl9z
IH07CiAKICAgICBpZiAoIXRvdGFsLmFtb3VudCkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7
IFR5cGVFcnJvciwgIk1pc3NpbmcgdG90YWwgYW1vdW50LiIgfTsKKyAgICAgICAgcmV0dXJuIEV4
Y2VwdGlvbiB7IFR5cGVFcnJvciwgIk1pc3NpbmcgdG90YWwgYW1vdW50LiJfcyB9OwogCiAgICAg
ZG91YmxlIGFtb3VudCA9IFtOU0RlY2ltYWxOdW1iZXIgZGVjaW1hbE51bWJlcldpdGhTdHJpbmc6
dG90YWwuYW1vdW50IGxvY2FsZTpAeyBOU0xvY2FsZURlY2ltYWxTZXBhcmF0b3IgOiBAIi4iIH1d
LmRvdWJsZVZhbHVlOwogCiAgICAgaWYgKGFtb3VudCA8IDApCi0gICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBUeXBlRXJyb3IsICJUb3RhbCBhbW91bnQgbXVzdCBub3QgYmUgbmVnYXRpdmUuIiB9
OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiVG90YWwgYW1vdW50IG11
c3Qgbm90IGJlIG5lZ2F0aXZlLiJfcyB9OwogCiAgICAgaWYgKGFtb3VudCA+IDEwMDAwMDAwMCkK
LSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIlRvdGFsIGFtb3VudCBpcyB0
b28gYmlnLiIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIlRvdGFs
IGFtb3VudCBpcyB0b28gYmlnLiJfcyB9OwogCiAgICAgcmV0dXJuIHsgfTsKIH0KQEAgLTExNCw3
ICsxMTQsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBQYXltZW50UmVxdWVzdFZhbGlkYXRvcjo6dmFs
aWRhdGVUb3RhbChjb25zdCBBcHBsZVBheUxpbmVJdGVtJgogc3RhdGljIEV4Y2VwdGlvbk9yPHZv
aWQ+IHZhbGlkYXRlQ291bnRyeUNvZGUoY29uc3QgU3RyaW5nJiBjb3VudHJ5Q29kZSkKIHsKICAg
ICBpZiAoIWNvdW50cnlDb2RlKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9y
LCAiTWlzc2luZyBjb3VudHJ5IGNvZGUuIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
VHlwZUVycm9yLCAiTWlzc2luZyBjb3VudHJ5IGNvZGUuIl9zIH07CiAKICAgICBmb3IgKGF1dG8g
KmNvdW50cnlDb2RlUHRyID0gdWxvY19nZXRJU09Db3VudHJpZXMoKTsgKmNvdW50cnlDb2RlUHRy
OyArK2NvdW50cnlDb2RlUHRyKSB7CiAgICAgICAgIGlmIChjb3VudHJ5Q29kZSA9PSAqY291bnRy
eUNvZGVQdHIpCkBAIC0xMjcsNyArMTI3LDcgQEAgc3RhdGljIEV4Y2VwdGlvbk9yPHZvaWQ+IHZh
bGlkYXRlQ291bnRyeUNvZGUoY29uc3QgU3RyaW5nJiBjb3VudHJ5Q29kZSkKIHN0YXRpYyBFeGNl
cHRpb25Pcjx2b2lkPiB2YWxpZGF0ZUN1cnJlbmN5Q29kZShjb25zdCBTdHJpbmcmIGN1cnJlbmN5
Q29kZSkKIHsKICAgICBpZiAoIWN1cnJlbmN5Q29kZSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlv
biB7IFR5cGVFcnJvciwgIk1pc3NpbmcgY3VycmVuY3kgY29kZS4iIH07CisgICAgICAgIHJldHVy
biBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJNaXNzaW5nIGN1cnJlbmN5IGNvZGUuIl9zIH07CiAK
ICAgICBVRXJyb3JDb2RlIGVycm9yQ29kZSA9IFVfWkVST19FUlJPUjsKICAgICBhdXRvIGN1cnJl
bmN5Q29kZXMgPSBzdGQ6OnVuaXF1ZV9wdHI8VUVudW1lcmF0aW9uLCBJQ1VEZWxldGVyPHVlbnVt
X2Nsb3NlPj4odWN1cnJfb3BlbklTT0N1cnJlbmNpZXMoVUNVUlJfQUxMLCAmZXJyb3JDb2RlKSk7
CkBAIC0xNDQsNyArMTQ0LDcgQEAgc3RhdGljIEV4Y2VwdGlvbk9yPHZvaWQ+IHZhbGlkYXRlQ3Vy
cmVuY3lDb2RlKGNvbnN0IFN0cmluZyYgY3VycmVuY3lDb2RlKQogc3RhdGljIEV4Y2VwdGlvbk9y
PHZvaWQ+IHZhbGlkYXRlTWVyY2hhbnRDYXBhYmlsaXRpZXMoY29uc3QgQXBwbGVQYXlTZXNzaW9u
UGF5bWVudFJlcXVlc3Q6Ok1lcmNoYW50Q2FwYWJpbGl0aWVzJiBtZXJjaGFudENhcGFiaWxpdGll
cykKIHsKICAgICBpZiAoIW1lcmNoYW50Q2FwYWJpbGl0aWVzLnN1cHBvcnRzM0RTICYmICFtZXJj
aGFudENhcGFiaWxpdGllcy5zdXBwb3J0c0VNViAmJiAhbWVyY2hhbnRDYXBhYmlsaXRpZXMuc3Vw
cG9ydHNDcmVkaXQgJiYgIW1lcmNoYW50Q2FwYWJpbGl0aWVzLnN1cHBvcnRzRGViaXQpCi0gICAg
ICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJNaXNzaW5nIG1lcmNoYW50IGNhcGFi
aWxpdGllcy4iIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJNaXNz
aW5nIG1lcmNoYW50IGNhcGFiaWxpdGllcy4iX3MgfTsKIAogICAgIHJldHVybiB7IH07CiB9CkBA
IC0xNTIsNyArMTUyLDcgQEAgc3RhdGljIEV4Y2VwdGlvbk9yPHZvaWQ+IHZhbGlkYXRlTWVyY2hh
bnRDYXBhYmlsaXRpZXMoY29uc3QgQXBwbGVQYXlTZXNzaW9uUGF5bWUKIHN0YXRpYyBFeGNlcHRp
b25Pcjx2b2lkPiB2YWxpZGF0ZVN1cHBvcnRlZE5ldHdvcmtzKGNvbnN0IFZlY3RvcjxTdHJpbmc+
JiBzdXBwb3J0ZWROZXR3b3JrcykKIHsKICAgICBpZiAoc3VwcG9ydGVkTmV0d29ya3MuaXNFbXB0
eSgpKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiTWlzc2luZyBzdXBw
b3J0ZWQgbmV0d29ya3MuIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9y
LCAiTWlzc2luZyBzdXBwb3J0ZWQgbmV0d29ya3MuIl9zIH07CiAKICAgICByZXR1cm4geyB9Owog
fQpAQCAtMTYxLDcgKzE2MSw3IEBAIHN0YXRpYyBFeGNlcHRpb25Pcjx2b2lkPiB2YWxpZGF0ZVNo
aXBwaW5nTWV0aG9kKGNvbnN0IEFwcGxlUGF5U2hpcHBpbmdNZXRob2QmIHNoCiB7CiAgICAgTlNE
ZWNpbWFsTnVtYmVyICphbW91bnQgPSBbTlNEZWNpbWFsTnVtYmVyIGRlY2ltYWxOdW1iZXJXaXRo
U3RyaW5nOnNoaXBwaW5nTWV0aG9kLmFtb3VudCBsb2NhbGU6QHsgTlNMb2NhbGVEZWNpbWFsU2Vw
YXJhdG9yIDogQCIuIiB9XTsKICAgICBpZiAoYW1vdW50LmludGVnZXJWYWx1ZSA8IDApCi0gICAg
ICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJTaGlwcGluZyBtZXRob2QgYW1vdW50
IG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHplcm8uIiB9OworICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiU2hpcHBpbmcgbWV0aG9kIGFtb3VudCBtdXN0IGJl
IGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB6ZXJvLiJfcyB9OwogCiAgICAgcmV0dXJuIHsgfTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvUGF5bWVudFNl
c3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50U2Vzc2lv
bi5jcHAKaW5kZXggOTRmOTQ1OWI5YjQ0OGE5ODQyZWIwZjQwMjNjNjQyYTA2OGU4M2M3MS4uMmU4
ZjY2ZWE4M2MxZDQ3MmRhMTg3YzA4MzZiNTgxNzZjYmFkOTFhMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50U2Vzc2lvbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50U2Vzc2lvbi5jcHAKQEAgLTUyLDI0ICs1
MiwyNCBAQCBFeGNlcHRpb25Pcjx2b2lkPiBQYXltZW50U2Vzc2lvbjo6Y2FuQ3JlYXRlU2Vzc2lv
bihEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBTZWN1cml0
eUVycm9yLCAiVGhpcmQtcGFydHkgaWZyYW1lcyBhcmUgbm90IGFsbG93ZWQgdG8gcmVxdWVzdCBw
YXltZW50cyB1bmxlc3MgZXhwbGljaXRseSBhbGxvd2VkIHZpYSBGZWF0dXJlLVBvbGljeSAocGF5
bWVudCkiX3MgfTsKIAogICAgIGlmICghZG9jdW1lbnQuZnJhbWUoKSkKLSAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwgIlRyeWluZyB0byBzdGFydCBhbiBBcHBs
ZSBQYXkgc2Vzc2lvbiBmcm9tIGFuIGluYWN0aXZlIGRvY3VtZW50LiIgfTsKKyAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwgIlRyeWluZyB0byBzdGFydCBhbiBB
cHBsZSBQYXkgc2Vzc2lvbiBmcm9tIGFuIGluYWN0aXZlIGRvY3VtZW50LiJfcyB9OwogCiAgICAg
aWYgKCFpc1NlY3VyZSgqZG9jdW1lbnQubG9hZGVyKCkpKQotICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiVHJ5aW5nIHRvIHN0YXJ0IGFuIEFwcGxlIFBheSBz
ZXNzaW9uIGZyb20gYW4gaW5zZWN1cmUgZG9jdW1lbnQuIiB9OworICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiVHJ5aW5nIHRvIHN0YXJ0IGFuIEFwcGxlIFBh
eSBzZXNzaW9uIGZyb20gYW4gaW5zZWN1cmUgZG9jdW1lbnQuIl9zIH07CiAKICAgICBhdXRvJiB0
b3BEb2N1bWVudCA9IGRvY3VtZW50LnRvcERvY3VtZW50KCk7CiAgICAgaWYgKCZkb2N1bWVudCAh
PSAmdG9wRG9jdW1lbnQpIHsKICAgICAgICAgYXV0byYgdG9wT3JpZ2luID0gdG9wRG9jdW1lbnQu
dG9wT3JpZ2luKCk7CiAKICAgICAgICAgaWYgKCFkb2N1bWVudC5zZWN1cml0eU9yaWdpbigpLmlz
U2FtZVNjaGVtZUhvc3RQb3J0KHRvcE9yaWdpbikpCi0gICAgICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiVHJ5aW5nIHRvIHN0YXJ0IGFuIEFwcGxlIFBheSBz
ZXNzaW9uIGZyb20gYSBkb2N1bWVudCB3aXRoIGFuIGRpZmZlcmVudCBzZWN1cml0eSBvcmlnaW4g
dGhhbiBpdHMgdG9wLWxldmVsIGZyYW1lLiIgfTsKKyAgICAgICAgICAgIHJldHVybiBFeGNlcHRp
b24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJUcnlpbmcgdG8gc3RhcnQgYW4gQXBwbGUgUGF5IHNl
c3Npb24gZnJvbSBhIGRvY3VtZW50IHdpdGggYW4gZGlmZmVyZW50IHNlY3VyaXR5IG9yaWdpbiB0
aGFuIGl0cyB0b3AtbGV2ZWwgZnJhbWUuIl9zIH07CiAKICAgICAgICAgZm9yIChhdXRvKiBhbmNl
c3RvckRvY3VtZW50ID0gZG9jdW1lbnQucGFyZW50RG9jdW1lbnQoKTsgYW5jZXN0b3JEb2N1bWVu
dCAhPSAmdG9wRG9jdW1lbnQ7IGFuY2VzdG9yRG9jdW1lbnQgPSBhbmNlc3RvckRvY3VtZW50LT5w
YXJlbnREb2N1bWVudCgpKSB7CiAgICAgICAgICAgICBpZiAoIWlzU2VjdXJlKCphbmNlc3RvckRv
Y3VtZW50LT5sb2FkZXIoKSkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElu
dmFsaWRBY2Nlc3NFcnJvciwgIlRyeWluZyB0byBzdGFydCBhbiBBcHBsZSBQYXkgc2Vzc2lvbiBm
cm9tIGEgZG9jdW1lbnQgd2l0aCBhbiBpbnNlY3VyZSBwYXJlbnQgZnJhbWUuIiB9OworICAgICAg
ICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJUcnlpbmcg
dG8gc3RhcnQgYW4gQXBwbGUgUGF5IHNlc3Npb24gZnJvbSBhIGRvY3VtZW50IHdpdGggYW4gaW5z
ZWN1cmUgcGFyZW50IGZyYW1lLiJfcyB9OwogCiAgICAgICAgICAgICBpZiAoIWFuY2VzdG9yRG9j
dW1lbnQtPnNlY3VyaXR5T3JpZ2luKCkuaXNTYW1lU2NoZW1lSG9zdFBvcnQodG9wT3JpZ2luKSkK
LSAgICAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAi
VHJ5aW5nIHRvIHN0YXJ0IGFuIEFwcGxlIFBheSBzZXNzaW9uIGZyb20gYSBkb2N1bWVudCB3aXRo
IGFuIGRpZmZlcmVudCBzZWN1cml0eSBvcmlnaW4gdGhhbiBpdHMgdG9wLWxldmVsIGZyYW1lLiIg
fTsKKyAgICAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9y
LCAiVHJ5aW5nIHRvIHN0YXJ0IGFuIEFwcGxlIFBheSBzZXNzaW9uIGZyb20gYSBkb2N1bWVudCB3
aXRoIGFuIGRpZmZlcmVudCBzZWN1cml0eSBvcmlnaW4gdGhhbiBpdHMgdG9wLWxldmVsIGZyYW1l
LiJfcyB9OwogICAgICAgICB9CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2FwcGxlcGF5L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVudEhhbmRsZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9wYXltZW50cmVxdWVzdC9BcHBsZVBh
eVBheW1lbnRIYW5kbGVyLmNwcAppbmRleCA3MDU1MWFlODY0NDg5YzllNjc3Y2Q5MjE1M2Y1ZDFl
MjI3YTQwMjU0Li5lYjU2YjkxZTVmZWRhYzY2YTc5ZDA0NmEzYmZlYzhkYjI5Mjc1ZDdlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L3BheW1lbnRyZXF1ZXN0L0Fw
cGxlUGF5UGF5bWVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBw
bGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQYXltZW50SGFuZGxlci5jcHAKQEAgLTg5LDcg
Kzg5LDcgQEAgc3RhdGljIGlubGluZSBQYXltZW50Q29vcmRpbmF0b3ImIHBheW1lbnRDb29yZGlu
YXRvcihEb2N1bWVudCYgZG9jdW1lbnQpCiBzdGF0aWMgRXhjZXB0aW9uT3I8QXBwbGVQYXlSZXF1
ZXN0PiBjb252ZXJ0QW5kVmFsaWRhdGVBcHBsZVBheVJlcXVlc3QoRG9jdW1lbnQmIGRvY3VtZW50
LCBKU0M6OkpTVmFsdWUgZGF0YSkKIHsKICAgICBpZiAoZGF0YS5pc0VtcHR5KCkpCi0gICAgICAg
IHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJNaXNzaW5nIHBheW1lbnQgbWV0aG9kIGRh
dGEuIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiTWlzc2luZyBw
YXltZW50IG1ldGhvZCBkYXRhLiJfcyB9OwogCiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRShkb2N1bWVudC52bSgpKTsKICAgICBhdXRvIGFwcGxlUGF5UmVxdWVzdCA9
IGNvbnZlcnREaWN0aW9uYXJ5PEFwcGxlUGF5UmVxdWVzdD4oKmRvY3VtZW50Lmdsb2JhbE9iamVj
dCgpLCBkYXRhKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGljYXRp
b25tYW5pZmVzdC9BcHBsaWNhdGlvbk1hbmlmZXN0UGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvYXBwbGljYXRpb25tYW5pZmVzdC9BcHBsaWNhdGlvbk1hbmlmZXN0UGFyc2VyLmNw
cAppbmRleCA2ZGZmZjQ3YjdlMmNiODliNTRmOTVlYzQ2MjdkM2Q3Y2U2OTBmOTBiLi5jNWQxMzAz
OGNmYzY3ZjQ1YTQ2ZTY4YzljYzQ1MjEwNzNkNzZhNTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2FwcGxpY2F0aW9ubWFuaWZlc3QvQXBwbGljYXRpb25NYW5pZmVzdFBhcnNl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsaWNhdGlvbm1hbmlmZXN0L0Fw
cGxpY2F0aW9uTWFuaWZlc3RQYXJzZXIuY3BwCkBAIC0yMzEsNyArMjMxLDcgQEAgVmVjdG9yPEFw
cGxpY2F0aW9uTWFuaWZlc3Q6Okljb24+IEFwcGxpY2F0aW9uTWFuaWZlc3RQYXJzZXI6OnBhcnNl
SWNvbnMoY29uc3QgSlMKICAgICAgICAgICAgICAgICBjdXJyZW50SWNvbi5wdXJwb3NlcyA9IHB1
cnBvc2VzOwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBwdXJwb3NlU3Ry
aW5nVmFsdWUgPSBwdXJwb3NlU3RyaW5nVmFsdWUuc3RyaXBXaGl0ZVNwYWNlKCkuY29udmVydFRv
QVNDSUlMb3dlcmNhc2UoKTsKLSAgICAgICAgICAgICAgICBWZWN0b3I8U3RyaW5nPiBrZXl3b3Jk
cyA9IHB1cnBvc2VTdHJpbmdWYWx1ZS5zcGxpdEFsbG93aW5nRW1wdHlFbnRyaWVzKCIgIik7Cisg
ICAgICAgICAgICAgICAgVmVjdG9yPFN0cmluZz4ga2V5d29yZHMgPSBwdXJwb3NlU3RyaW5nVmFs
dWUuc3BsaXRBbGxvd2luZ0VtcHR5RW50cmllcygiICJfcyk7CiAKICAgICAgICAgICAgICAgICBm
b3IgKGNvbnN0IGF1dG8mIGtleXdvcmQgOiBrZXl3b3JkcykgewogICAgICAgICAgICAgICAgICAg
ICBpZiAoa2V5d29yZCA9PSAibW9ub2Nocm9tZSIpCkBAIC0yODIsOSArMjgyLDkgQEAgc3RhdGlj
IGJvb2wgaXNJblNjb3BlKGNvbnN0IFVSTCYgc2NvcGVVUkwsIGNvbnN0IFVSTCYgdGFyZ2V0VVJM
KQogCiBVUkwgQXBwbGljYXRpb25NYW5pZmVzdFBhcnNlcjo6cGFyc2VTY29wZShjb25zdCBKU09O
OjpPYmplY3QmIG1hbmlmZXN0LCBjb25zdCBVUkwmIGRvY3VtZW50VVJMLCBjb25zdCBVUkwmIHN0
YXJ0VVJMKQogewotICAgIFVSTCBkZWZhdWx0U2NvcGUgeyBzdGFydFVSTCwgIi4vIiB9OworICAg
IFVSTCBkZWZhdWx0U2NvcGUgeyBzdGFydFVSTCwgIi4vIl9zIH07CiAKLSAgICBhdXRvIHZhbHVl
ID0gbWFuaWZlc3QuZ2V0VmFsdWUoInNjb3BlIik7CisgICAgYXV0byB2YWx1ZSA9IG1hbmlmZXN0
LmdldFZhbHVlKCJzY29wZSJfcyk7CiAgICAgaWYgKCF2YWx1ZSkKICAgICAgICAgcmV0dXJuIGRl
ZmF1bHRTY29wZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9X
aW5kb3dPcldvcmtlckdsb2JhbFNjb3BlQ2FjaGVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvY2FjaGUvV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZUNhY2hlcy5jcHAKaW5kZXggYTE3NDk1
ZDc2NTk2NTZmZTJkZDljY2EzZDM3MTEyMjFmZTQ4ZDEwNC4uZGZlMTg4ZmMwZWZmZGFjMmJlZjBl
OWFjZGU5NmMzZWY2MmI4NmE2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9j
YWNoZS9XaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlQ2FjaGVzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2NhY2hlL1dpbmRvd09yV29ya2VyR2xvYmFsU2NvcGVDYWNoZXMuY3BwCkBA
IC0xMjcsNyArMTI3LDcgQEAgRE9NQ2FjaGVTdG9yYWdlKiBXb3JrZXJHbG9iYWxTY29wZUNhY2hl
czo6Y2FjaGVzKCkgY29uc3QKIEV4Y2VwdGlvbk9yPERPTUNhY2hlU3RvcmFnZSo+IFdpbmRvd09y
V29ya2VyR2xvYmFsU2NvcGVDYWNoZXM6OmNhY2hlcyhTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBj
b250ZXh0LCBET01XaW5kb3cmIHdpbmRvdykKIHsKICAgICBpZiAoZG93bmNhc3Q8RG9jdW1lbnQ+
KGNvbnRleHQpLmlzU2FuZGJveGVkKFNhbmRib3hPcmlnaW4pKQotICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgU2VjdXJpdHlFcnJvciwgIkNhY2hlIHN0b3JhZ2UgaXMgZGlzYWJsZWQgYmVjYXVz
ZSB0aGUgY29udGV4dCBpcyBzYW5kYm94ZWQgYW5kIGxhY2tzIHRoZSAnYWxsb3ctc2FtZS1vcmln
aW4nIGZsYWciIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBTZWN1cml0eUVycm9yLCAi
Q2FjaGUgc3RvcmFnZSBpcyBkaXNhYmxlZCBiZWNhdXNlIHRoZSBjb250ZXh0IGlzIHNhbmRib3hl
ZCBhbmQgbGFja3MgdGhlICdhbGxvdy1zYW1lLW9yaWdpbicgZmxhZyJfcyB9OwogCiAgICAgaWYg
KCF3aW5kb3cuaXNDdXJyZW50bHlEaXNwbGF5ZWRJbkZyYW1lKCkpCiAgICAgICAgIHJldHVybiBu
dWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRp
YS9Jbml0RGF0YVJlZ2lzdHJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVk
bWVkaWEvSW5pdERhdGFSZWdpc3RyeS5jcHAKaW5kZXggNmY4ODhlMTc4NThkZGE2ZDk0NzFlYzFm
NmVmNWQwNjZkZjBlNDk5MC4uOGNkYmNhNzdhZjM4MzA3YjJiNGMwYTRkMjVhMWYwZTkxMWFiYjFk
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9Jbml0
RGF0YVJlZ2lzdHJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1l
ZGlhL0luaXREYXRhUmVnaXN0cnkuY3BwCkBAIC0xMDUsNyArMTA1LDcgQEAgc3RhdGljIFJlZlB0
cjxGcmFnbWVudGVkU2hhcmVkQnVmZmVyPiBzYW5pdGl6ZUtleWlkcyhjb25zdCBGcmFnbWVudGVk
U2hhcmVkQnVmZmUKICAgICBhdXRvIGtpZHNBcnJheSA9IEpTT046OkFycmF5OjpjcmVhdGUoKTsK
ICAgICBmb3IgKGF1dG8mIGJ1ZmZlciA6IGtleUlEQnVmZmVyLnZhbHVlKCkpCiAgICAgICAgIGtp
ZHNBcnJheS0+cHVzaFN0cmluZyhiYXNlNjRVUkxFbmNvZGVUb1N0cmluZyhidWZmZXItPm1ha2VD
b250aWd1b3VzKCktPmRhdGEoKSwgYnVmZmVyLT5zaXplKCkpKTsKLSAgICBvYmplY3QtPnNldEFy
cmF5KCJraWRzIiwgV1RGTW92ZShraWRzQXJyYXkpKTsKKyAgICBvYmplY3QtPnNldEFycmF5KCJr
aWRzIl9zLCBXVEZNb3ZlKGtpZHNBcnJheSkpOwogCiAgICAgQ1N0cmluZyBqc29uRGF0YSA9IG9i
amVjdC0+dG9KU09OU3RyaW5nKCkudXRmOCgpOwogICAgIHJldHVybiBTaGFyZWRCdWZmZXI6OmNy
ZWF0ZShqc29uRGF0YS5kYXRhKCksIGpzb25EYXRhLmxlbmd0aCgpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZW50cmllc2FwaS9ET01GaWxlU3lzdGVtLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZW50cmllc2FwaS9ET01GaWxlU3lzdGVtLmNwcAppbmRleCA5ZjQ4
MWRjNjI5YWE3N2E2MGRhNWM1ZWUwNDRhNzM2YmQ0NmQzZDIwLi45YWNhNjE4YjVkNmM3MmUyNDI0
NTk0YjlhMTlkZTFhNGUwNGY5YzhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2VudHJpZXNhcGkvRE9NRmlsZVN5c3RlbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9lbnRyaWVzYXBpL0RPTUZpbGVTeXN0ZW0uY3BwCkBAIC01OSw3ICs1OSw3IEBAIHN0YXRpYyBF
eGNlcHRpb25PcjxWZWN0b3I8TGlzdGVkQ2hpbGQ+PiBsaXN0RGlyZWN0b3J5V2l0aE1ldGFkYXRh
KGNvbnN0IFN0cmluZyYKIHsKICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKICAgICBpZiAo
RmlsZVN5c3RlbTo6ZmlsZVR5cGUoZnVsbFBhdGgpICE9IEZpbGVTeXN0ZW06OkZpbGVUeXBlOjpE
aXJlY3RvcnkpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RGb3VuZEVycm9yLCAiUGF0
aCBubyBsb25nZXIgZXhpc3RzIG9yIGlzIG5vIGxvbmdlciBhIGRpcmVjdG9yeSIgfTsKKyAgICAg
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdEZvdW5kRXJyb3IsICJQYXRoIG5vIGxvbmdlciBleGlz
dHMgb3IgaXMgbm8gbG9uZ2VyIGEgZGlyZWN0b3J5Il9zIH07CiAKICAgICBhdXRvIGNoaWxkTmFt
ZXMgPSBGaWxlU3lzdGVtOjpsaXN0RGlyZWN0b3J5KGZ1bGxQYXRoKTsKICAgICBWZWN0b3I8TGlz
dGVkQ2hpbGQ+IGxpc3RlZENoaWxkcmVuOwpAQCAtMTgzLDcgKzE4Myw3IEBAIHN0YXRpYyBFeGNl
cHRpb25PcjxTdHJpbmc+IHZhbGlkYXRlUGF0aElzRXhwZWN0ZWRUeXBlKGNvbnN0IFN0cmluZyYg
ZnVsbFBhdGgsIFN0CiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RGb3VuZEVycm9yLCAi
UGF0aCBkb2VzIG5vdCBleGlzdCJfcyB9OwogCiAgICAgaWYgKCpmaWxlVHlwZSAhPSBleHBlY3Rl
ZFR5cGUpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlTWlzbWF0Y2hFcnJvciwgIkVu
dHJ5IGF0IHBhdGggZG9lcyBub3QgaGF2ZSBleHBlY3RlZCB0eXBlIiB9OworICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgVHlwZU1pc21hdGNoRXJyb3IsICJFbnRyeSBhdCBwYXRoIGRvZXMgbm90
IGhhdmUgZXhwZWN0ZWQgdHlwZSJfcyB9OwogCiAgICAgcmV0dXJuIFdURk1vdmUodmlydHVhbFBh
dGgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJv
ZHlDb25zdW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keUNv
bnN1bWVyLmNwcAppbmRleCA5MzZhN2U0MzA1NmM0NTVlMjliMjU1MGZiNDAxMGJlZWVjM2IzNWVi
Li42ZjZkYzY3Y2MzNGI4ZDQwN2FiZjZkZTQ2NGM1MjljNzQyMzZkNWYyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keUNvbnN1bWVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keUNvbnN1bWVyLmNwcApAQCAtMTUw
LDEwICsxNTAsMTAgQEAgUmVmUHRyPERPTUZvcm1EYXRhPiBGZXRjaEJvZHlDb25zdW1lcjo6cGFj
a2FnZUZvcm1EYXRhKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGMKICAgICAgICAgICAgIGNvbnRl
bnREaXNwb3NpdGlvblBhcmFtZXRlcnNCZWdpbisrOwogCiAgICAgICAgIGF1dG8gcGFyYW1ldGVy
cyA9IHBhcnNlUGFyYW1ldGVycyhTdHJpbmdWaWV3KGhlYWRlcikuc3Vic3RyaW5nKGNvbnRlbnRE
aXNwb3NpdGlvblBhcmFtZXRlcnNCZWdpbiwgY29udGVudERpc3Bvc2l0aW9uRW5kIC0gY29udGVu
dERpc3Bvc2l0aW9uUGFyYW1ldGVyc0JlZ2luKSwgMCk7Ci0gICAgICAgIFN0cmluZyBuYW1lID0g
cGFyYW1ldGVycy5nZXQoIm5hbWUiKTsKKyAgICAgICAgU3RyaW5nIG5hbWUgPSBwYXJhbWV0ZXJz
LmdldCgibmFtZSJfcyk7CiAgICAgICAgIGlmICghbmFtZSkKICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICAgICAgU3RyaW5nIGZpbGVuYW1lID0gcGFyYW1ldGVycy5nZXQoImZpbGVuYW1l
Iik7CisgICAgICAgIFN0cmluZyBmaWxlbmFtZSA9IHBhcmFtZXRlcnMuZ2V0KCJmaWxlbmFtZSJf
cyk7CiAgICAgICAgIGlmICghZmlsZW5hbWUpCiAgICAgICAgICAgICBmb3JtLmFwcGVuZChuYW1l
LCBTdHJpbmc6OmZyb21VVEY4KGJvZHlCZWdpbiwgYm9keUxlbmd0aCkpOwogICAgICAgICBlbHNl
IHsKQEAgLTE3Niw3ICsxNzYsNyBAQCBSZWZQdHI8RE9NRm9ybURhdGE+IEZldGNoQm9keUNvbnN1
bWVyOjpwYWNrYWdlRm9ybURhdGEoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogYwogICAgICAgICBp
ZiAoIW1pbWVUeXBlKQogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAgICAg
aWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobWltZVR5cGUtPnR5cGUsICJtdWx0aXBhcnQiKSAm
JiBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG1pbWVUeXBlLT5zdWJ0eXBlLCAiZm9ybS1kYXRhIikp
IHsKLSAgICAgICAgICAgIGF1dG8gaXRlcmF0b3IgPSBtaW1lVHlwZS0+cGFyYW1ldGVycy5maW5k
KCJib3VuZGFyeSIpOworICAgICAgICAgICAgYXV0byBpdGVyYXRvciA9IG1pbWVUeXBlLT5wYXJh
bWV0ZXJzLmZpbmQoImJvdW5kYXJ5Il9zKTsKICAgICAgICAgICAgIGlmIChpdGVyYXRvciAhPSBt
aW1lVHlwZS0+cGFyYW1ldGVycy5lbmQoKSkKICAgICAgICAgICAgICAgICByZXR1cm4gaXRlcmF0
b3ItPnZhbHVlOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2ZldGNoL0ZldGNoSGVhZGVycy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0Zl
dGNoSGVhZGVycy5jcHAKaW5kZXggMDkwZjVjZjRkMGZmMTE1ZDg0YmY3MzNiN2E3YjE1YjM0ZjJl
M2E1Zi4uMjZhZjA4ZjFhZDVlMTRjYmQxYWVkNzRlZmRlYTNmMWFkMzhiZTYxNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEhlYWRlcnMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hIZWFkZXJzLmNwcApAQCAtMTAyLDcgKzEw
Miw3IEBAIHN0YXRpYyBFeGNlcHRpb25Pcjx2b2lkPiBmaWxsSGVhZGVyTWFwKEhUVFBIZWFkZXJN
YXAmIGhlYWRlcnMsIGNvbnN0IEZldGNoSGVhZGVyCiAgICAgICAgIGF1dG8mIHNlcXVlbmNlID0g
c3RkOjpnZXQ8VmVjdG9yPFZlY3RvcjxTdHJpbmc+Pj4oaGVhZGVyc0luaXQpOwogICAgICAgICBm
b3IgKGF1dG8mIGhlYWRlciA6IHNlcXVlbmNlKSB7CiAgICAgICAgICAgICBpZiAoaGVhZGVyLnNp
emUoKSAhPSAyKQotICAgICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3Is
ICJIZWFkZXIgc3ViLXNlcXVlbmNlIG11c3QgY29udGFpbiBleGFjdGx5IHR3byBpdGVtcyIgfTsK
KyAgICAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiSGVhZGVyIHN1
Yi1zZXF1ZW5jZSBtdXN0IGNvbnRhaW4gZXhhY3RseSB0d28gaXRlbXMiX3MgfTsKICAgICAgICAg
ICAgIGF1dG8gcmVzdWx0ID0gYXBwZW5kVG9IZWFkZXJNYXAoaGVhZGVyWzBdLCBoZWFkZXJbMV0s
IGhlYWRlcnMsIGd1YXJkKTsKICAgICAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkp
CiAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoTG9hZGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hMb2FkZXIuY3BwCmluZGV4IDdjZWEzMmE5
NThmMTRiZDhjODc4YmM1MWY0OWMxZDFhZGE2ZDZhMzcuLmY3NDMzOGU4ZDMyMjI3MGEzODBmMjQ5
YTY0MmU0ZWEwZjkyMjg2ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0
Y2gvRmV0Y2hMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0
Y2hMb2FkZXIuY3BwCkBAIC02OSw3ICs2OSw3IEBAIHZvaWQgRmV0Y2hMb2FkZXI6OnN0YXJ0TG9h
ZGluZ0Jsb2JVUkwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3QgVVJMCiAK
ICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChtX3VybEZvclJlYWRpbmcpOwogICAgIHJlcXVl
c3Quc2V0SW5pdGlhdG9ySWRlbnRpZmllcihjb250ZXh0LnJlc291cmNlUmVxdWVzdElkZW50aWZp
ZXIoKSk7Ci0gICAgcmVxdWVzdC5zZXRIVFRQTWV0aG9kKCJHRVQiKTsKKyAgICByZXF1ZXN0LnNl
dEhUVFBNZXRob2QoIkdFVCJfcyk7CiAKICAgICBUaHJlYWRhYmxlTG9hZGVyT3B0aW9ucyBvcHRp
b25zOwogICAgIG9wdGlvbnMuc2VuZExvYWRDYWxsYmFja3MgPSBTZW5kQ2FsbGJhY2tQb2xpY3k6
OlNlbmRDYWxsYmFja3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVz
eXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcAppbmRleCAwZTk1
ZmZkZWU0YWY4NTRlODdlMjUzYTljZGU4NjM0MmY1YTJlZGY4Li5hYTMyYTliYjIyZmI0YmJmOTNi
YWRkNjFkMTI4OGJiZjkwOGQzZDVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAK
QEAgLTU1LDcgKzU1LDcgQEAgRmlsZVN5c3RlbUZpbGVIYW5kbGU6OkZpbGVTeXN0ZW1GaWxlSGFu
ZGxlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFN0cmkKIHZvaWQgRmlsZVN5c3Rl
bUZpbGVIYW5kbGU6OmdldEZpbGUoRE9NUHJvbWlzZURlZmVycmVkPElETEludGVyZmFjZTxGaWxl
Pj4mJiBwcm9taXNlKQogewogICAgIGlmIChpc0Nsb3NlZCgpKQotICAgICAgICByZXR1cm4gcHJv
bWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJIYW5kbGUgaXMgY2xv
c2VkIiB9KTsKKyAgICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IEludmFs
aWRTdGF0ZUVycm9yLCAiSGFuZGxlIGlzIGNsb3NlZCJfcyB9KTsKIAogICAgIGNvbm5lY3Rpb24o
KS5nZXRGaWxlKGlkZW50aWZpZXIoKSwgW3Byb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9LCBw
cm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgewogICAgICAg
ICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQpAQCAtNzIsNyArNzIsNyBAQCB2b2lkIEZpbGVT
eXN0ZW1GaWxlSGFuZGxlOjpnZXRGaWxlKERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8
RmlsZT4+JiYgcHJvbQogdm9pZCBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Y3JlYXRlU3luY0FjY2Vz
c0hhbmRsZShET01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNlPEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlPj4mJiBwcm9taXNlKQogewogICAgIGlmIChpc0Nsb3NlZCgpKQotICAgICAgICBy
ZXR1cm4gcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJIYW5k
bGUgaXMgY2xvc2VkIiB9KTsKKyAgICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0KEV4Y2VwdGlv
biB7IEludmFsaWRTdGF0ZUVycm9yLCAiSGFuZGxlIGlzIGNsb3NlZCJfcyB9KTsKIAogICAgIGNv
bm5lY3Rpb24oKS5jcmVhdGVTeW5jQWNjZXNzSGFuZGxlKGlkZW50aWZpZXIoKSwgW3Byb3RlY3Rl
ZFRoaXMgPSBSZWYgeyAqdGhpcyB9LCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byBy
ZXN1bHQpIG11dGFibGUgewogICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0
ZW1IYW5kbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0Zp
bGVTeXN0ZW1IYW5kbGUuY3BwCmluZGV4IDBiOWY3ODhlNDkwM2ZhN2U3YWU0Mjg5N2EwMDJiOTZl
OGRmZTEzZDcuLjllMGNjODc0YjBjNzM0NDU3YzQ5YzRjMzg2ZGFjMmIzYmY0ZGU1OTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVt
SGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3Mv
RmlsZVN5c3RlbUhhbmRsZS5jcHAKQEAgLTYwLDcgKzYwLDcgQEAgdm9pZCBGaWxlU3lzdGVtSGFu
ZGxlOjpjbG9zZSgpCiB2b2lkIEZpbGVTeXN0ZW1IYW5kbGU6OmlzU2FtZUVudHJ5KEZpbGVTeXN0
ZW1IYW5kbGUmIGhhbmRsZSwgRE9NUHJvbWlzZURlZmVycmVkPElETEJvb2xlYW4+JiYgcHJvbWlz
ZSkgY29uc3QKIHsKICAgICBpZiAoaXNDbG9zZWQoKSkKLSAgICAgICAgcmV0dXJuIHByb21pc2Uu
cmVqZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiSGFuZGxlIGlzIGNsb3NlZCIg
fSk7CisgICAgICAgIHJldHVybiBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3Rh
dGVFcnJvciwgIkhhbmRsZSBpcyBjbG9zZWQiX3MgfSk7CiAKICAgICBpZiAobV9raW5kICE9IGhh
bmRsZS5raW5kKCkgfHwgbV9uYW1lICE9IGhhbmRsZS5uYW1lKCkpCiAgICAgICAgIHJldHVybiBw
cm9taXNlLnJlc29sdmUoZmFsc2UpOwpAQCAtNzMsNyArNzMsNyBAQCB2b2lkIEZpbGVTeXN0ZW1I
YW5kbGU6OmlzU2FtZUVudHJ5KEZpbGVTeXN0ZW1IYW5kbGUmIGhhbmRsZSwgRE9NUHJvbWlzZURl
ZmVycmVkPAogdm9pZCBGaWxlU3lzdGVtSGFuZGxlOjptb3ZlKEZpbGVTeXN0ZW1IYW5kbGUmIGRl
c3RpbmF0aW9uSGFuZGxlLCBjb25zdCBTdHJpbmcmIG5ld05hbWUsIERPTVByb21pc2VEZWZlcnJl
ZDx2b2lkPiYmIHByb21pc2UpCiB7CiAgICAgaWYgKGlzQ2xvc2VkKCkpCi0gICAgICAgIHJldHVy
biBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkhhbmRsZSBp
cyBjbG9zZWQiIH0pOworICAgICAgICByZXR1cm4gcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsg
SW52YWxpZFN0YXRlRXJyb3IsICJIYW5kbGUgaXMgY2xvc2VkIl9zIH0pOwogCiAgICAgaWYgKGRl
c3RpbmF0aW9uSGFuZGxlLmtpbmQoKSAhPSBLaW5kOjpEaXJlY3RvcnkpCiAgICAgICAgIHJldHVy
biBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBUeXBlTWlzbWF0Y2hFcnJvciB9KTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlSWRlbnRp
Zmllci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VJZGVu
dGlmaWVyLmgKaW5kZXggMjcxZGVkNGRlZThiODg4ZDMxZTRjNGMxMWUxZDFmYzg4OWRiYTZhYi4u
NDY1NzY4ZDhlNWU0ZmU0ZGZhYjE4OTNiNzljZTZhYzZkNzdlNTU2NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VJZGVudGlmaWVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VJZGVudGlmaWVy
LmgKQEAgLTcwLDcgKzcwLDcgQEAgcHVibGljOgogICAgIGNvbnN0IENsaWVudE9yaWdpbiYgb3Jp
Z2luKCkgY29uc3QgeyByZXR1cm4gbV9vcmlnaW47IH0KICAgICBib29sIGlzVHJhbnNpZW50KCkg
Y29uc3QgeyByZXR1cm4gbV9pc1RyYW5zaWVudDsgfQogCi0gICAgU3RyaW5nIGRhdGFiYXNlRGly
ZWN0b3J5UmVsYXRpdmVUb1Jvb3QoY29uc3QgU3RyaW5nJiByb290RGlyZWN0b3J5LCBjb25zdCBT
dHJpbmcmIHZlcnNpb25TdHJpbmc9InYxIikgY29uc3Q7CisgICAgU3RyaW5nIGRhdGFiYXNlRGly
ZWN0b3J5UmVsYXRpdmVUb1Jvb3QoY29uc3QgU3RyaW5nJiByb290RGlyZWN0b3J5LCBjb25zdCBT
dHJpbmcmIHZlcnNpb25TdHJpbmcgPSAidjEiX3MpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JU
IHN0YXRpYyBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlSZWxhdGl2ZVRvUm9vdChjb25zdCBDbGll
bnRPcmlnaW4mLCBjb25zdCBTdHJpbmcmIHJvb3REaXJlY3RvcnksIGNvbnN0IFN0cmluZyYgdmVy
c2lvblN0cmluZyk7CiAKICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShF
bmNvZGVyJikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJLZXlEYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QktleURhdGEuY3BwCmluZGV4IDJhMzdjNTI4ZWY1YmY5ZDk1NzczYTBiMTBmMDI1MjI5YmRlNWE0
MTguLjQ2MGYxNzRhMzgxYWI2YWJhNGNhMjk4MzE0NTI2OThiNWQ1MjkwZDAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleURhdGEuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleURhdGEuY3BwCkBAIC0xNDksMzUg
KzE0OSwzNSBAQCB2b2lkIElEQktleURhdGE6Omlzb2xhdGVkQ29weShjb25zdCBJREJLZXlEYXRh
JiBzb3VyY2UsIElEQktleURhdGEmIGRlc3RpbmF0aW9uKQogCiB2b2lkIElEQktleURhdGE6OmVu
Y29kZShLZXllZEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2Rlci5lbmNvZGVC
b29sKCJudWxsIiwgbV9pc051bGwpOworICAgIGVuY29kZXIuZW5jb2RlQm9vbCgibnVsbCJfcywg
bV9pc051bGwpOwogICAgIGlmIChtX2lzTnVsbCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgZW5j
b2Rlci5lbmNvZGVFbnVtKCJ0eXBlIiwgbV90eXBlKTsKKyAgICBlbmNvZGVyLmVuY29kZUVudW0o
InR5cGUiX3MsIG1fdHlwZSk7CiAKICAgICBzd2l0Y2ggKG1fdHlwZSkgewogICAgIGNhc2UgSW5k
ZXhlZERCOjpLZXlUeXBlOjpJbnZhbGlkOgogICAgICAgICByZXR1cm47CiAgICAgY2FzZSBJbmRl
eGVkREI6OktleVR5cGU6OkFycmF5OiB7CiAgICAgICAgIGF1dG8mIGFycmF5ID0gc3RkOjpnZXQ8
VmVjdG9yPElEQktleURhdGE+PihtX3ZhbHVlKTsKLSAgICAgICAgZW5jb2Rlci5lbmNvZGVPYmpl
Y3RzKCJhcnJheSIsIGFycmF5LmJlZ2luKCksIGFycmF5LmVuZCgpLCBbXShLZXllZEVuY29kZXIm
IGVuY29kZXIsIGNvbnN0IElEQktleURhdGEmIGtleSkgeworICAgICAgICBlbmNvZGVyLmVuY29k
ZU9iamVjdHMoImFycmF5Il9zLCBhcnJheS5iZWdpbigpLCBhcnJheS5lbmQoKSwgW10oS2V5ZWRF
bmNvZGVyJiBlbmNvZGVyLCBjb25zdCBJREJLZXlEYXRhJiBrZXkpIHsKICAgICAgICAgICAgIGtl
eS5lbmNvZGUoZW5jb2Rlcik7CiAgICAgICAgIH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQog
ICAgIGNhc2UgSW5kZXhlZERCOjpLZXlUeXBlOjpCaW5hcnk6IHsKICAgICAgICAgYXV0byogZGF0
YSA9IHN0ZDo6Z2V0PFRocmVhZFNhZmVEYXRhQnVmZmVyPihtX3ZhbHVlKS5kYXRhKCk7Ci0gICAg
ICAgIGVuY29kZXIuZW5jb2RlQm9vbCgiaGFzQmluYXJ5IiwgISFkYXRhKTsKKyAgICAgICAgZW5j
b2Rlci5lbmNvZGVCb29sKCJoYXNCaW5hcnkiX3MsICEhZGF0YSk7CiAgICAgICAgIGlmIChkYXRh
KQotICAgICAgICAgICAgZW5jb2Rlci5lbmNvZGVCeXRlcygiYmluYXJ5IiwgZGF0YS0+ZGF0YSgp
LCBkYXRhLT5zaXplKCkpOworICAgICAgICAgICAgZW5jb2Rlci5lbmNvZGVCeXRlcygiYmluYXJ5
Il9zLCBkYXRhLT5kYXRhKCksIGRhdGEtPnNpemUoKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAgICAgY2FzZSBJbmRleGVkREI6OktleVR5cGU6OlN0cmluZzoKLSAgICAgICAgZW5jb2Rlci5l
bmNvZGVTdHJpbmcoInN0cmluZyIsIHN0ZDo6Z2V0PFN0cmluZz4obV92YWx1ZSkpOworICAgICAg
ICBlbmNvZGVyLmVuY29kZVN0cmluZygic3RyaW5nIl9zLCBzdGQ6OmdldDxTdHJpbmc+KG1fdmFs
dWUpKTsKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgSW5kZXhlZERCOjpLZXlUeXBlOjpEYXRl
OgogICAgIGNhc2UgSW5kZXhlZERCOjpLZXlUeXBlOjpOdW1iZXI6Ci0gICAgICAgIGVuY29kZXIu
ZW5jb2RlRG91YmxlKCJudW1iZXIiLCBzdGQ6OmdldDxkb3VibGU+KG1fdmFsdWUpKTsKKyAgICAg
ICAgZW5jb2Rlci5lbmNvZGVEb3VibGUoIm51bWJlciJfcywgc3RkOjpnZXQ8ZG91YmxlPihtX3Zh
bHVlKSk7CiAgICAgICAgIHJldHVybjsKICAgICBjYXNlIEluZGV4ZWREQjo6S2V5VHlwZTo6TWF4
OgogICAgIGNhc2UgSW5kZXhlZERCOjpLZXlUeXBlOjpNaW46CkBAIC0xODksNyArMTg5LDcgQEAg
dm9pZCBJREJLZXlEYXRhOjplbmNvZGUoS2V5ZWRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogCiBi
b29sIElEQktleURhdGE6OmRlY29kZShLZXllZERlY29kZXImIGRlY29kZXIsIElEQktleURhdGEm
IHJlc3VsdCkKIHsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlQm9vbCgibnVsbCIsIHJlc3VsdC5t
X2lzTnVsbCkpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZUJvb2woIm51bGwiX3MsIHJlc3VsdC5t
X2lzTnVsbCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmIChyZXN1bHQubV9pc051
bGwpCkBAIC0yMDUsNyArMjA1LDcgQEAgYm9vbCBJREJLZXlEYXRhOjpkZWNvZGUoS2V5ZWREZWNv
ZGVyJiBkZWNvZGVyLCBJREJLZXlEYXRhJiByZXN1bHQpCiAgICAgICAgICAgICB8fCB2YWx1ZSA9
PSBJbmRleGVkREI6OktleVR5cGU6Ok51bWJlcgogICAgICAgICAgICAgfHwgdmFsdWUgPT0gSW5k
ZXhlZERCOjpLZXlUeXBlOjpNaW47CiAgICAgfTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlRW51
bSgidHlwZSIsIHJlc3VsdC5tX3R5cGUsIGVudW1GdW5jdGlvbikpCisgICAgaWYgKCFkZWNvZGVy
LmRlY29kZUVudW0oInR5cGUiX3MsIHJlc3VsdC5tX3R5cGUsIGVudW1GdW5jdGlvbikpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmIChyZXN1bHQubV90eXBlID09IEluZGV4ZWREQjo6
S2V5VHlwZTo6SW52YWxpZCkKQEAgLTIxOSwyNiArMjE5LDI2IEBAIGJvb2wgSURCS2V5RGF0YTo6
ZGVjb2RlKEtleWVkRGVjb2RlciYgZGVjb2RlciwgSURCS2V5RGF0YSYgcmVzdWx0KQogCiAgICAg
aWYgKHJlc3VsdC5tX3R5cGUgPT0gSW5kZXhlZERCOjpLZXlUeXBlOjpTdHJpbmcpIHsKICAgICAg
ICAgcmVzdWx0Lm1fdmFsdWUgPSBTdHJpbmcoKTsKLSAgICAgICAgcmV0dXJuIGRlY29kZXIuZGVj
b2RlU3RyaW5nKCJzdHJpbmciLCBzdGQ6OmdldDxTdHJpbmc+KHJlc3VsdC5tX3ZhbHVlKSk7Cisg
ICAgICAgIHJldHVybiBkZWNvZGVyLmRlY29kZVN0cmluZygic3RyaW5nIl9zLCBzdGQ6OmdldDxT
dHJpbmc+KHJlc3VsdC5tX3ZhbHVlKSk7CiAgICAgfQogCiAgICAgaWYgKHJlc3VsdC5tX3R5cGUg
PT0gSW5kZXhlZERCOjpLZXlUeXBlOjpOdW1iZXIgfHwgcmVzdWx0Lm1fdHlwZSA9PSBJbmRleGVk
REI6OktleVR5cGU6OkRhdGUpIHsKICAgICAgICAgcmVzdWx0Lm1fdmFsdWUgPSAwLjA7Ci0gICAg
ICAgIHJldHVybiBkZWNvZGVyLmRlY29kZURvdWJsZSgibnVtYmVyIiwgc3RkOjpnZXQ8ZG91Ymxl
PihyZXN1bHQubV92YWx1ZSkpOworICAgICAgICByZXR1cm4gZGVjb2Rlci5kZWNvZGVEb3VibGUo
Im51bWJlciJfcywgc3RkOjpnZXQ8ZG91YmxlPihyZXN1bHQubV92YWx1ZSkpOwogICAgIH0KIAog
ICAgIGlmIChyZXN1bHQubV90eXBlID09IEluZGV4ZWREQjo6S2V5VHlwZTo6QmluYXJ5KSB7CiAg
ICAgICAgIHJlc3VsdC5tX3ZhbHVlID0gVGhyZWFkU2FmZURhdGFCdWZmZXIoKTsKIAogICAgICAg
ICBib29sIGhhc0JpbmFyeURhdGE7Ci0gICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGVCb29sKCJo
YXNCaW5hcnkiLCBoYXNCaW5hcnlEYXRhKSkKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZUJv
b2woImhhc0JpbmFyeSJfcywgaGFzQmluYXJ5RGF0YSkpCiAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAKICAgICAgICAgaWYgKCFoYXNCaW5hcnlEYXRhKQogICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CiAKICAgICAgICAgVmVjdG9yPHVpbnQ4X3Q+IGJ5dGVzOwotICAgICAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlQnl0ZXMoImJpbmFyeSIsIGJ5dGVzKSkKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZUJ5dGVzKCJiaW5hcnkiX3MsIGJ5dGVzKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
IAogICAgICAgICByZXN1bHQubV92YWx1ZSA9IFRocmVhZFNhZmVEYXRhQnVmZmVyOjpjcmVhdGUo
V1RGTW92ZShieXRlcykpOwpAQCAtMjUyLDcgKzI1Miw3IEBAIGJvb2wgSURCS2V5RGF0YTo6ZGVj
b2RlKEtleWVkRGVjb2RlciYgZGVjb2RlciwgSURCS2V5RGF0YSYgcmVzdWx0KQogICAgIH07CiAg
ICAgCiAgICAgcmVzdWx0Lm1fdmFsdWUgPSBWZWN0b3I8SURCS2V5RGF0YT4oKTsKLSAgICByZXR1
cm4gZGVjb2Rlci5kZWNvZGVPYmplY3RzKCJhcnJheSIsIHN0ZDo6Z2V0PFZlY3RvcjxJREJLZXlE
YXRhPj4ocmVzdWx0Lm1fdmFsdWUpLCBhcnJheUZ1bmN0aW9uKTsKKyAgICByZXR1cm4gZGVjb2Rl
ci5kZWNvZGVPYmplY3RzKCJhcnJheSJfcywgc3RkOjpnZXQ8VmVjdG9yPElEQktleURhdGE+Pihy
ZXN1bHQubV92YWx1ZSksIGFycmF5RnVuY3Rpb24pOwogfQogCiBpbnQgSURCS2V5RGF0YTo6Y29t
cGFyZShjb25zdCBJREJLZXlEYXRhJiBvdGhlcikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleVJhbmdlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQktleVJhbmdlLmNwcAppbmRleCAxNGYzMDNhMDRjMjNhOGJm
NDdiZjA2NTlmOTI4NzkyNGY5NjEzYWZiLi5kZWY1MDQ4MTdhZDAzODIyNDc0ZGQyZjVkMTZkMzY5
MGJiOTdmNGE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJLZXlSYW5nZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
S2V5UmFuZ2UuY3BwCkBAIC0xMzcsNyArMTM3LDcgQEAgRXhjZXB0aW9uT3I8Ym9vbD4gSURCS2V5
UmFuZ2U6OmluY2x1ZGVzKEpTQzo6SlNHbG9iYWxPYmplY3QmIHN0YXRlLCBKU0M6OkpTVmFsdWUK
ICAgICBhdXRvIGtleSA9IHNjcmlwdFZhbHVlVG9JREJLZXkoc3RhdGUsIGtleVZhbHVlKTsKICAg
ICBFWENFUFRJT05fQVNTRVJUX1VOVVNFRChzY29wZSwgIXNjb3BlLmV4Y2VwdGlvbigpIHx8ICFr
ZXktPmlzVmFsaWQoKSk7CiAgICAgaWYgKCFrZXktPmlzVmFsaWQoKSkKLSAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IERhdGFFcnJvciwgIkZhaWxlZCB0byBleGVjdXRlICdpbmNsdWRlcycgb24g
J0lEQktleVJhbmdlJzogVGhlIHBhc3NlZC1pbiB2YWx1ZSBpcyBub3QgYSB2YWxpZCBJbmRleGVk
REIga2V5LiIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IERhdGFFcnJvciwgIkZhaWxl
ZCB0byBleGVjdXRlICdpbmNsdWRlcycgb24gJ0lEQktleVJhbmdlJzogVGhlIHBhc3NlZC1pbiB2
YWx1ZSBpcyBub3QgYSB2YWxpZCBJbmRleGVkREIga2V5LiJfcyB9OwogCiAgICAgaWYgKG1fbG93
ZXIpIHsKICAgICAgICAgaW50IGNvbXBhcmUgPSBtX2xvd2VyLT5jb21wYXJlKGtleS5nZXQoKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURC
U2VyaWFsaXphdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2
ZXIvSURCU2VyaWFsaXphdGlvbi5jcHAKaW5kZXggMmEyYzFmYzMyOTU4MDVkNTJmZDU2YWYzMGI0
NTVhZTJjY2NjNDg3Ny4uMzNkNGQ0MWM5Mjc3YmZmMjk3MTM3NTJjODkxZDJjOTA5MWFkMzVjYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNl
cmlhbGl6YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3Nl
cnZlci9JREJTZXJpYWxpemF0aW9uLmNwcApAQCAtNDUsMTcgKzQ1LDE3IEBAIFJlZlB0cjxTaGFy
ZWRCdWZmZXI+IHNlcmlhbGl6ZUlEQktleVBhdGgoY29uc3Qgc3RkOjpvcHRpb25hbDxJREJLZXlQ
YXRoPiYga2V5UGF0CiAKICAgICBpZiAoa2V5UGF0aCkgewogICAgICAgICBhdXRvIHZpc2l0b3Ig
PSBXVEY6Om1ha2VWaXNpdG9yKFsmXShjb25zdCBTdHJpbmcmIHN0cmluZykgewotICAgICAgICAg
ICAgZW5jb2Rlci0+ZW5jb2RlRW51bSgidHlwZSIsIEtleVBhdGhUeXBlOjpTdHJpbmcpOwotICAg
ICAgICAgICAgZW5jb2Rlci0+ZW5jb2RlU3RyaW5nKCJzdHJpbmciLCBzdHJpbmcpOworICAgICAg
ICAgICAgZW5jb2Rlci0+ZW5jb2RlRW51bSgidHlwZSJfcywgS2V5UGF0aFR5cGU6OlN0cmluZyk7
CisgICAgICAgICAgICBlbmNvZGVyLT5lbmNvZGVTdHJpbmcoInN0cmluZyJfcywgc3RyaW5nKTsK
ICAgICAgICAgfSwgWyZdKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiB2ZWN0b3IpIHsKLSAgICAgICAg
ICAgIGVuY29kZXItPmVuY29kZUVudW0oInR5cGUiLCBLZXlQYXRoVHlwZTo6QXJyYXkpOwotICAg
ICAgICAgICAgZW5jb2Rlci0+ZW5jb2RlT2JqZWN0cygiYXJyYXkiLCB2ZWN0b3IuYmVnaW4oKSwg
dmVjdG9yLmVuZCgpLCBbXShXZWJDb3JlOjpLZXllZEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFN0
cmluZyYgc3RyaW5nKSB7Ci0gICAgICAgICAgICAgICAgZW5jb2Rlci5lbmNvZGVTdHJpbmcoInN0
cmluZyIsIHN0cmluZyk7CisgICAgICAgICAgICBlbmNvZGVyLT5lbmNvZGVFbnVtKCJ0eXBlIl9z
LCBLZXlQYXRoVHlwZTo6QXJyYXkpOworICAgICAgICAgICAgZW5jb2Rlci0+ZW5jb2RlT2JqZWN0
cygiYXJyYXkiX3MsIHZlY3Rvci5iZWdpbigpLCB2ZWN0b3IuZW5kKCksIFtdKFdlYkNvcmU6Oktl
eWVkRW5jb2RlciYgZW5jb2RlciwgY29uc3QgU3RyaW5nJiBzdHJpbmcpIHsKKyAgICAgICAgICAg
ICAgICBlbmNvZGVyLmVuY29kZVN0cmluZygic3RyaW5nIl9zLCBzdHJpbmcpOwogICAgICAgICAg
ICAgfSk7CiAgICAgICAgIH0pOwogICAgICAgICBzdGQ6OnZpc2l0KHZpc2l0b3IsIGtleVBhdGgu
dmFsdWUoKSk7CiAgICAgfSBlbHNlCi0gICAgICAgIGVuY29kZXItPmVuY29kZUVudW0oInR5cGUi
LCBLZXlQYXRoVHlwZTo6TnVsbCk7CisgICAgICAgIGVuY29kZXItPmVuY29kZUVudW0oInR5cGUi
X3MsIEtleVBhdGhUeXBlOjpOdWxsKTsKIAogICAgIHJldHVybiBlbmNvZGVyLT5maW5pc2hFbmNv
ZGluZygpOwogfQpAQCAtNjgsNyArNjgsNyBAQCBib29sIGRlc2VyaWFsaXplSURCS2V5UGF0aChj
b25zdCB1aW50OF90KiBkYXRhLCBzaXplX3Qgc2l6ZSwgc3RkOjpvcHRpb25hbDxJREJLZQogICAg
IGF1dG8gZGVjb2RlciA9IEtleWVkRGVjb2Rlcjo6ZGVjb2RlcihkYXRhLCBzaXplKTsKIAogICAg
IEtleVBhdGhUeXBlIHR5cGU7Ci0gICAgYm9vbCBzdWNjZWVkZWQgPSBkZWNvZGVyLT5kZWNvZGVF
bnVtKCJ0eXBlIiwgdHlwZSwgW10oS2V5UGF0aFR5cGUgdmFsdWUpIHsKKyAgICBib29sIHN1Y2Nl
ZWRlZCA9IGRlY29kZXItPmRlY29kZUVudW0oInR5cGUiX3MsIHR5cGUsIFtdKEtleVBhdGhUeXBl
IHZhbHVlKSB7CiAgICAgICAgIHJldHVybiB2YWx1ZSA9PSBLZXlQYXRoVHlwZTo6TnVsbCB8fCB2
YWx1ZSA9PSBLZXlQYXRoVHlwZTo6U3RyaW5nIHx8IHZhbHVlID09IEtleVBhdGhUeXBlOjpBcnJh
eTsKICAgICB9KTsKICAgICBpZiAoIXN1Y2NlZWRlZCkKQEAgLTc5LDE1ICs3OSwxNSBAQCBib29s
IGRlc2VyaWFsaXplSURCS2V5UGF0aChjb25zdCB1aW50OF90KiBkYXRhLCBzaXplX3Qgc2l6ZSwg
c3RkOjpvcHRpb25hbDxJREJLZQogICAgICAgICBicmVhazsKICAgICBjYXNlIEtleVBhdGhUeXBl
OjpTdHJpbmc6IHsKICAgICAgICAgU3RyaW5nIHN0cmluZzsKLSAgICAgICAgaWYgKCFkZWNvZGVy
LT5kZWNvZGVTdHJpbmcoInN0cmluZyIsIHN0cmluZykpCisgICAgICAgIGlmICghZGVjb2Rlci0+
ZGVjb2RlU3RyaW5nKCJzdHJpbmciX3MsIHN0cmluZykpCiAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgICAgIHJlc3VsdCA9IElEQktleVBhdGgoV1RGTW92ZShzdHJpbmcpKTsKICAgICAg
ICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgS2V5UGF0aFR5cGU6OkFycmF5OiB7CiAgICAgICAg
IFZlY3RvcjxTdHJpbmc+IHZlY3RvcjsKLSAgICAgICAgc3VjY2VlZGVkID0gZGVjb2Rlci0+ZGVj
b2RlT2JqZWN0cygiYXJyYXkiLCB2ZWN0b3IsIFtdKEtleWVkRGVjb2RlciYgZGVjb2RlciwgU3Ry
aW5nJiByZXN1bHQpIHsKLSAgICAgICAgICAgIHJldHVybiBkZWNvZGVyLmRlY29kZVN0cmluZygi
c3RyaW5nIiwgcmVzdWx0KTsKKyAgICAgICAgc3VjY2VlZGVkID0gZGVjb2Rlci0+ZGVjb2RlT2Jq
ZWN0cygiYXJyYXkiX3MsIHZlY3RvciwgW10oS2V5ZWREZWNvZGVyJiBkZWNvZGVyLCBTdHJpbmcm
IHJlc3VsdCkgeworICAgICAgICAgICAgcmV0dXJuIGRlY29kZXIuZGVjb2RlU3RyaW5nKCJzdHJp
bmciX3MsIHJlc3VsdCk7CiAgICAgICAgIH0pOwogICAgICAgICBpZiAoIXN1Y2NlZWRlZCkKICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHAKaW5kZXggNzdkZjY2N2Q0MDk5ZDZmYjdk
ODVhMDU1YzIwMDRlNjdiMmFiNWIxZC4uNDg2MDE1ZjdiOTZjMjZiZTZiYWE0MmFhNWZiZDc4ODZm
MTQ4YjQ3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2Vy
dmVyL0lEQlNlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL0lEQlNlcnZlci5jcHAKQEAgLTUzMCwxMCArNTMwLDEwIEBAIHZvaWQgSURCU2VydmVy
OjpnZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMoSURCQ29ubmVjdGlvbklkZW50aWZpZXIg
c2VydmVyQ29uCiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKFdURk1vdmUoKm5hbWVBbmRWZXJz
aW9uKSk7CiAgICAgfQogCi0gICAgYXV0byBvbGREaXJlY3RvcnkgPSBJREJEYXRhYmFzZUlkZW50
aWZpZXI6OmRhdGFiYXNlRGlyZWN0b3J5UmVsYXRpdmVUb1Jvb3Qob3JpZ2luLCBtX2RhdGFiYXNl
RGlyZWN0b3J5UGF0aCwgInYwIik7CisgICAgYXV0byBvbGREaXJlY3RvcnkgPSBJREJEYXRhYmFz
ZUlkZW50aWZpZXI6OmRhdGFiYXNlRGlyZWN0b3J5UmVsYXRpdmVUb1Jvb3Qob3JpZ2luLCBtX2Rh
dGFiYXNlRGlyZWN0b3J5UGF0aCwgInYwIl9zKTsKICAgICBnZXREYXRhYmFzZU5hbWVBbmRWZXJz
aW9uRnJvbU9yaWdpbkRpcmVjdG9yeShvbGREaXJlY3RvcnksIHZpc2l0ZWREYXRhYmFzZVBhdGhz
LCByZXN1bHQpOwogCi0gICAgYXV0byBkaXJlY3RvcnkgPSBJREJEYXRhYmFzZUlkZW50aWZpZXI6
OmRhdGFiYXNlRGlyZWN0b3J5UmVsYXRpdmVUb1Jvb3Qob3JpZ2luLCBtX2RhdGFiYXNlRGlyZWN0
b3J5UGF0aCwgInYxIik7CisgICAgYXV0byBkaXJlY3RvcnkgPSBJREJEYXRhYmFzZUlkZW50aWZp
ZXI6OmRhdGFiYXNlRGlyZWN0b3J5UmVsYXRpdmVUb1Jvb3Qob3JpZ2luLCBtX2RhdGFiYXNlRGly
ZWN0b3J5UGF0aCwgInYxIl9zKTsKICAgICBnZXREYXRhYmFzZU5hbWVBbmRWZXJzaW9uRnJvbU9y
aWdpbkRpcmVjdG9yeShkaXJlY3RvcnksIHZpc2l0ZWREYXRhYmFzZVBhdGhzLCByZXN1bHQpOwog
CiAgICAgYXV0byBjb25uZWN0aW9uID0gbV9jb25uZWN0aW9uTWFwLmdldChzZXJ2ZXJDb25uZWN0
aW9uSWRlbnRpZmllcik7CkBAIC01NjYsOCArNTY2LDggQEAgSGFzaFNldDxTZWN1cml0eU9yaWdp
bkRhdGE+IElEQlNlcnZlcjo6Z2V0T3JpZ2lucygpIGNvbnN0CiAgICAgICAgIHJldHVybiB7IH07
CiAKICAgICBIYXNoU2V0PFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4gc2VjdXJpdHlPcmln
aW5zOwotICAgIGNvbGxlY3RPcmlnaW5zRm9yVmVyc2lvbihGaWxlU3lzdGVtOjpwYXRoQnlBcHBl
bmRpbmdDb21wb25lbnQobV9kYXRhYmFzZURpcmVjdG9yeVBhdGgsICJ2MCIpLCBzZWN1cml0eU9y
aWdpbnMpOwotICAgIGNvbGxlY3RPcmlnaW5zRm9yVmVyc2lvbihGaWxlU3lzdGVtOjpwYXRoQnlB
cHBlbmRpbmdDb21wb25lbnQobV9kYXRhYmFzZURpcmVjdG9yeVBhdGgsICJ2MSIpLCBzZWN1cml0
eU9yaWdpbnMpOworICAgIGNvbGxlY3RPcmlnaW5zRm9yVmVyc2lvbihGaWxlU3lzdGVtOjpwYXRo
QnlBcHBlbmRpbmdDb21wb25lbnQobV9kYXRhYmFzZURpcmVjdG9yeVBhdGgsICJ2MCJfcyksIHNl
Y3VyaXR5T3JpZ2lucyk7CisgICAgY29sbGVjdE9yaWdpbnNGb3JWZXJzaW9uKEZpbGVTeXN0ZW06
OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChtX2RhdGFiYXNlRGlyZWN0b3J5UGF0aCwgInYxIl9z
KSwgc2VjdXJpdHlPcmlnaW5zKTsKIAogICAgIHJldHVybiBzZWN1cml0eU9yaWdpbnM7CiB9CkBA
IC01ODgsOCArNTg4LDggQEAgdm9pZCBJREJTZXJ2ZXI6OmNsb3NlQW5kRGVsZXRlRGF0YWJhc2Vz
TW9kaWZpZWRTaW5jZShXYWxsVGltZSBtb2RpZmljYXRpb25UaW1lKQogICAgIG1fdW5pcXVlSURC
RGF0YWJhc2VNYXAuY2xlYXIoKTsKIAogICAgIGlmICghbV9kYXRhYmFzZURpcmVjdG9yeVBhdGgu
aXNFbXB0eSgpKSB7Ci0gICAgICAgIHJlbW92ZURhdGFiYXNlc01vZGlmaWVkU2luY2VGb3JWZXJz
aW9uKG1vZGlmaWNhdGlvblRpbWUsICJ2MCIpOwotICAgICAgICByZW1vdmVEYXRhYmFzZXNNb2Rp
ZmllZFNpbmNlRm9yVmVyc2lvbihtb2RpZmljYXRpb25UaW1lLCAidjEiKTsKKyAgICAgICAgcmVt
b3ZlRGF0YWJhc2VzTW9kaWZpZWRTaW5jZUZvclZlcnNpb24obW9kaWZpY2F0aW9uVGltZSwgInYw
Il9zKTsKKyAgICAgICAgcmVtb3ZlRGF0YWJhc2VzTW9kaWZpZWRTaW5jZUZvclZlcnNpb24obW9k
aWZpY2F0aW9uVGltZSwgInYxIl9zKTsKICAgICB9CiB9CiAKQEAgLTYyNCw4ICs2MjQsOCBAQCB2
b2lkIElEQlNlcnZlcjo6Y2xvc2VBbmREZWxldGVEYXRhYmFzZXNGb3JPcmlnaW5zKGNvbnN0IFZl
Y3RvcjxTZWN1cml0eU9yaWdpbkRhdAogICAgIH0pOwogCiAgICAgaWYgKCFtX2RhdGFiYXNlRGly
ZWN0b3J5UGF0aC5pc0VtcHR5KCkpIHsKLSAgICAgICAgcmVtb3ZlRGF0YWJhc2VzV2l0aE9yaWdp
bnNGb3JWZXJzaW9uKG9yaWdpbnMsICJ2MCIpOwotICAgICAgICByZW1vdmVEYXRhYmFzZXNXaXRo
T3JpZ2luc0ZvclZlcnNpb24ob3JpZ2lucywgInYxIik7CisgICAgICAgIHJlbW92ZURhdGFiYXNl
c1dpdGhPcmlnaW5zRm9yVmVyc2lvbihvcmlnaW5zLCAidjAiX3MpOworICAgICAgICByZW1vdmVE
YXRhYmFzZXNXaXRoT3JpZ2luc0ZvclZlcnNpb24ob3JpZ2lucywgInYxIl9zKTsKICAgICB9CiB9
CiAKQEAgLTYzNiw3ICs2MzYsNyBAQCBzdGF0aWMgdm9pZCByZW1vdmVBbGxEYXRhYmFzZXNGb3JG
dWxsT3JpZ2luUGF0aChjb25zdCBTdHJpbmcmIG9yaWdpblBhdGgsIFdhbGxUaQogCiAgICAgZm9y
IChhdXRvJiBkYXRhYmFzZU5hbWUgOiBkYXRhYmFzZU5hbWVzKSB7CiAgICAgICAgIGF1dG8gZGF0
YWJhc2VQYXRoID0gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KG9yaWdpblBh
dGgsIGRhdGFiYXNlTmFtZSk7Ci0gICAgICAgIFN0cmluZyBkYXRhYmFzZUZpbGUgPSBGaWxlU3lz
dGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoZGF0YWJhc2VQYXRoLCAiSW5kZXhlZERCLnNx
bGl0ZTMiKTsKKyAgICAgICAgU3RyaW5nIGRhdGFiYXNlRmlsZSA9IEZpbGVTeXN0ZW06OnBhdGhC
eUFwcGVuZGluZ0NvbXBvbmVudChkYXRhYmFzZVBhdGgsICJJbmRleGVkREIuc3FsaXRlMyJfcyk7
CiAgICAgICAgIGlmIChtb2RpZmllZFNpbmNlID4gLVdhbGxUaW1lOjppbmZpbml0eSgpICYmIEZp
bGVTeXN0ZW06OmZpbGVFeGlzdHMoZGF0YWJhc2VGaWxlKSkgewogICAgICAgICAgICAgYXV0byBt
b2RpZmljYXRpb25UaW1lID0gRmlsZVN5c3RlbTo6ZmlsZU1vZGlmaWNhdGlvblRpbWUoZGF0YWJh
c2VGaWxlKTsKICAgICAgICAgICAgIGlmICghbW9kaWZpY2F0aW9uVGltZSkKQEAgLTczMiw3ICs3
MzIsNyBAQCB2b2lkIElEQlNlcnZlcjo6cmVuYW1lT3JpZ2luKGNvbnN0IFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luRGF0YSYgb2xkT3JpZ2luLCBjb25zdAogICAgICAgICByZXR1cm4gZGF0YWJhc2VP
cmlnaW4udG9wT3JpZ2luID09IHRhcmdldE9yaWdpbjsKICAgICB9KTsKIAotICAgIGF1dG8gdmVy
c2lvblBhdGggPSBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQobV9kYXRhYmFz
ZURpcmVjdG9yeVBhdGgsICJ2MSIpOworICAgIGF1dG8gdmVyc2lvblBhdGggPSBGaWxlU3lzdGVt
OjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQobV9kYXRhYmFzZURpcmVjdG9yeVBhdGgsICJ2MSJf
cyk7CiAgICAgYXV0byBvbGRPcmlnaW5QYXRoID0gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5n
Q29tcG9uZW50KHZlcnNpb25QYXRoLCBvbGRPcmlnaW4uZGF0YWJhc2VJZGVudGlmaWVyKCkpOwog
ICAgIGF1dG8gbmV3T3JpZ2luUGF0aCA9IEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBv
bmVudCh2ZXJzaW9uUGF0aCwgbmV3T3JpZ2luLmRhdGFiYXNlSWRlbnRpZmllcigpKTsKICAgICBp
ZiAoRmlsZVN5c3RlbTo6ZmlsZUV4aXN0cyhvbGRPcmlnaW5QYXRoKSkKQEAgLTc2OCwxNiArNzY4
LDE2IEBAIHZvaWQgSURCU2VydmVyOjp1cGdyYWRlRmlsZXNJZk5lY2Vzc2FyeSgpCiAgICAgaWYg
KG1fZGF0YWJhc2VEaXJlY3RvcnlQYXRoLmlzRW1wdHkoKSB8fCAhRmlsZVN5c3RlbTo6ZmlsZUV4
aXN0cyhtX2RhdGFiYXNlRGlyZWN0b3J5UGF0aCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFN0
cmluZyBuZXdWZXJzaW9uRGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29t
cG9uZW50KG1fZGF0YWJhc2VEaXJlY3RvcnlQYXRoLCAidjEiKTsKKyAgICBTdHJpbmcgbmV3VmVy
c2lvbkRpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChtX2Rh
dGFiYXNlRGlyZWN0b3J5UGF0aCwgInYxIl9zKTsKICAgICBpZiAoIUZpbGVTeXN0ZW06OmZpbGVF
eGlzdHMobmV3VmVyc2lvbkRpcmVjdG9yeSkpCiAgICAgICAgIEZpbGVTeXN0ZW06Om1ha2VBbGxE
aXJlY3RvcmllcyhuZXdWZXJzaW9uRGlyZWN0b3J5KTsKIH0KIAogU3RyaW5nIElEQlNlcnZlcjo6
dXBncmFkZWREYXRhYmFzZURpcmVjdG9yeShjb25zdCBXZWJDb3JlOjpJREJEYXRhYmFzZUlkZW50
aWZpZXImIGlkZW50aWZpZXIpCiB7Ci0gICAgU3RyaW5nIG9sZE9yaWdpbkRpcmVjdG9yeSA9IGlk
ZW50aWZpZXIuZGF0YWJhc2VEaXJlY3RvcnlSZWxhdGl2ZVRvUm9vdChtX2RhdGFiYXNlRGlyZWN0
b3J5UGF0aCwgInYwIik7CisgICAgU3RyaW5nIG9sZE9yaWdpbkRpcmVjdG9yeSA9IGlkZW50aWZp
ZXIuZGF0YWJhc2VEaXJlY3RvcnlSZWxhdGl2ZVRvUm9vdChtX2RhdGFiYXNlRGlyZWN0b3J5UGF0
aCwgInYwIl9zKTsKICAgICBTdHJpbmcgb2xkRGF0YWJhc2VEaXJlY3RvcnkgPSBGaWxlU3lzdGVt
OjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQob2xkT3JpZ2luRGlyZWN0b3J5LCBTUUxpdGVJREJC
YWNraW5nU3RvcmU6OmVuY29kZURhdGFiYXNlTmFtZShpZGVudGlmaWVyLmRhdGFiYXNlTmFtZSgp
KSk7Ci0gICAgU3RyaW5nIG5ld09yaWdpbkRpcmVjdG9yeSA9IGlkZW50aWZpZXIuZGF0YWJhc2VE
aXJlY3RvcnlSZWxhdGl2ZVRvUm9vdChtX2RhdGFiYXNlRGlyZWN0b3J5UGF0aCwgInYxIik7Cisg
ICAgU3RyaW5nIG5ld09yaWdpbkRpcmVjdG9yeSA9IGlkZW50aWZpZXIuZGF0YWJhc2VEaXJlY3Rv
cnlSZWxhdGl2ZVRvUm9vdChtX2RhdGFiYXNlRGlyZWN0b3J5UGF0aCwgInYxIl9zKTsKICAgICBT
dHJpbmcgZmlsZU5hbWVIYXNoID0gU1FMaXRlRmlsZVN5c3RlbTo6Y29tcHV0ZUhhc2hGb3JGaWxl
TmFtZShpZGVudGlmaWVyLmRhdGFiYXNlTmFtZSgpKTsKICAgICBTdHJpbmcgbmV3RGF0YWJhc2VE
aXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQobmV3T3JpZ2lu
RGlyZWN0b3J5LCBmaWxlTmFtZUhhc2gpOwogICAgIEZpbGVTeXN0ZW06Om1ha2VBbGxEaXJlY3Rv
cmllcyhuZXdEYXRhYmFzZURpcmVjdG9yeSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5SURCQmFja2luZ1N0b3JlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlJREJCYWNraW5nU3RvcmUu
Y3BwCmluZGV4IGQ2MzM1MDMwOTkzMDU1YjliMTJiNzg0NTY1NWRhODMzNzJiMWE1NTAuLjFjMjdh
ZDYxNzlmMWJlYWQwZmYxYTZkZWNmYjlhZTJiNWU5NTNmOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlJREJCYWNraW5nU3RvcmUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlJREJC
YWNraW5nU3RvcmUuY3BwCkBAIC03OCw3ICs3OCw3IEBAIElEQkVycm9yIE1lbW9yeUlEQkJhY2tp
bmdTdG9yZTo6YmVnaW5UcmFuc2FjdGlvbihjb25zdCBJREJUcmFuc2FjdGlvbkluZm8mIGluZm8p
CiAgICAgTE9HKEluZGV4ZWREQiwgIk1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6YmVnaW5UcmFuc2Fj
dGlvbiIpOwogCiAgICAgaWYgKG1fdHJhbnNhY3Rpb25zLmNvbnRhaW5zKGluZm8uaWRlbnRpZmll
cigpKSkKLSAgICAgICAgcmV0dXJuIElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNr
aW5nIHN0b3JlIGFza2VkIHRvIGNyZWF0ZSB0cmFuc2FjdGlvbiBpdCBhbHJlYWR5IGhhcyBhIHJl
Y29yZCBvZiIgfTsKKyAgICAgICAgcmV0dXJuIElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3Is
ICJCYWNraW5nIHN0b3JlIGFza2VkIHRvIGNyZWF0ZSB0cmFuc2FjdGlvbiBpdCBhbHJlYWR5IGhh
cyBhIHJlY29yZCBvZiJfcyB9OwogCiAgICAgYXV0byB0cmFuc2FjdGlvbiA9IE1lbW9yeUJhY2tp
bmdTdG9yZVRyYW5zYWN0aW9uOjpjcmVhdGUoKnRoaXMsIGluZm8pOwogCkBAIC0xMDQsNyArMTA0
LDcgQEAgSURCRXJyb3IgTWVtb3J5SURCQmFja2luZ1N0b3JlOjphYm9ydFRyYW5zYWN0aW9uKGNv
bnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHIKIAogICAgIGF1dG8gdHJhbnNhY3Rpb24gPSBt
X3RyYW5zYWN0aW9ucy50YWtlKHRyYW5zYWN0aW9uSWRlbnRpZmllcik7CiAgICAgaWYgKCF0cmFu
c2FjdGlvbikKLSAgICAgICAgcmV0dXJuIElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJC
YWNraW5nIHN0b3JlIGFza2VkIHRvIGFib3J0IHRyYW5zYWN0aW9uIGl0IGRpZG4ndCBoYXZlIHJl
Y29yZCBvZiIgfTsKKyAgICAgICAgcmV0dXJuIElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3Is
ICJCYWNraW5nIHN0b3JlIGFza2VkIHRvIGFib3J0IHRyYW5zYWN0aW9uIGl0IGRpZG4ndCBoYXZl
IHJlY29yZCBvZiJfcyB9OwogCiAgICAgdHJhbnNhY3Rpb24tPmFib3J0KCk7CiAKQEAgLTExNyw3
ICsxMTcsNyBAQCBJREJFcnJvciBNZW1vcnlJREJCYWNraW5nU3RvcmU6OmNvbW1pdFRyYW5zYWN0
aW9uKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdAogCiAgICAgYXV0byB0cmFuc2FjdGlv
biA9IG1fdHJhbnNhY3Rpb25zLnRha2UodHJhbnNhY3Rpb25JZGVudGlmaWVyKTsKICAgICBpZiAo
IXRyYW5zYWN0aW9uKQotICAgICAgICByZXR1cm4gSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJv
ciwgIkJhY2tpbmcgc3RvcmUgYXNrZWQgdG8gY29tbWl0IHRyYW5zYWN0aW9uIGl0IGRpZG4ndCBo
YXZlIHJlY29yZCBvZiIgfTsKKyAgICAgICAgcmV0dXJuIElEQkVycm9yIHsgSW52YWxpZFN0YXRl
RXJyb3IsICJCYWNraW5nIHN0b3JlIGFza2VkIHRvIGNvbW1pdCB0cmFuc2FjdGlvbiBpdCBkaWRu
J3QgaGF2ZSByZWNvcmQgb2YiX3MgfTsKIAogICAgIHRyYW5zYWN0aW9uLT5jb21taXQoKTsKIApA
QCAtNDczLDcgKzQ3Myw3IEBAIElEQkVycm9yIE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6Z2VuZXJh
dGVLZXlOdW1iZXIoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0CiAKICAgICBrZXlOdW1i
ZXIgPSBvYmplY3RTdG9yZS0+Y3VycmVudEtleUdlbmVyYXRvclZhbHVlKCk7CiAgICAgaWYgKGtl
eU51bWJlciA+IG1heEdlbmVyYXRlZEtleVZhbHVlKQotICAgICAgICByZXR1cm4gSURCRXJyb3Ig
eyBDb25zdHJhaW50RXJyb3IsICJDYW5ub3QgZ2VuZXJhdGUgbmV3IGtleSB2YWx1ZSBvdmVyIDJe
NTMgZm9yIG9iamVjdCBzdG9yZSBvcGVyYXRpb24iIH07CisgICAgICAgIHJldHVybiBJREJFcnJv
ciB7IENvbnN0cmFpbnRFcnJvciwgIkNhbm5vdCBnZW5lcmF0ZSBuZXcga2V5IHZhbHVlIG92ZXIg
Ml41MyBmb3Igb2JqZWN0IHN0b3JlIG9wZXJhdGlvbiJfcyB9OwogCiAgICAgb2JqZWN0U3RvcmUt
PnNldEtleUdlbmVyYXRvclZhbHVlKGtleU51bWJlciArIDEpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5T2JqZWN0U3RvcmUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeU9iamVjdFN0
b3JlLmNwcAppbmRleCA3ZWY5ZDBhMzg3ZjcyN2Q4NWVjMGRlZWY2ZDNjYWUwZGVkMDE1OGNmLi44
OTIzMWI0YWUyNDk2OGU4OWIwZDc1ODExNTFmNTI4ZWUzZTJmYjRlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5T2JqZWN0U3RvcmUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlPYmpl
Y3RTdG9yZS5jcHAKQEAgLTMxMCw3ICszMTAsNyBAQCBJREJFcnJvciBNZW1vcnlPYmplY3RTdG9y
ZTo6dXBkYXRlSW5kZXhlc0ZvclB1dFJlY29yZChjb25zdCBJREJLZXlEYXRhJiBrZXksIGNvbgog
ICAgICAgICBhdXRvKiBpbmRleCA9IG1faW5kZXhlc0J5SWRlbnRpZmllci5nZXQoaW5kZXhJRCk7
CiAgICAgICAgIEFTU0VSVChpbmRleCk7CiAgICAgICAgIGlmICghaW5kZXgpIHsKLSAgICAgICAg
ICAgIGVycm9yID0gSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIk1pc3NpbmcgaW5kZXgg
bWV0YWRhdGEiIH07CisgICAgICAgICAgICBlcnJvciA9IElEQkVycm9yIHsgSW52YWxpZFN0YXRl
RXJyb3IsICJNaXNzaW5nIGluZGV4IG1ldGFkYXRhIl9zIH07CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuY3BwCmluZGV4IDJmYWYz
ZTk1ZDMxYzk4OWZjZTEyZTA1N2YwNmMyMmUyZmY3M2M0NmUuLmNiZDQ2Mjc5MDc4Nzc4MDJmMzhj
NmE0ZGZiNjZjMWEyMjMxZGIzY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuY3Bw
CkBAIC05OCwzNyArOTgsMzcgQEAgc3RhdGljIGludCBpZGJLZXlDb2xsYXRlKGludCBhTGVuZ3Ro
LCBjb25zdCB2b2lkKiBhQnVmZmVyLCBpbnQgYkxlbmd0aCwgY29uc3Qgdm8KICAgICByZXR1cm4g
YS5jb21wYXJlKGIpOwogfQogCi1zdGF0aWMgY29uc3QgU3RyaW5nIHYxUmVjb3Jkc1RhYmxlU2No
ZW1hKGNvbnN0IFN0cmluZyYgdGFibGVOYW1lKQorc3RhdGljIGNvbnN0IFN0cmluZyB2MVJlY29y
ZHNUYWJsZVNjaGVtYShBU0NJSUxpdGVyYWwgdGFibGVOYW1lKQogewogICAgIHJldHVybiBtYWtl
U3RyaW5nKCJDUkVBVEUgVEFCTEUgIiwgdGFibGVOYW1lLCAiIChvYmplY3RTdG9yZUlEIElOVEVH
RVIgTk9UIE5VTEwgT04gQ09ORkxJQ1QgRkFJTCwga2V5IFRFWFQgQ09MTEFURSBJREJLRVkgTk9U
IE5VTEwgT04gQ09ORkxJQ1QgRkFJTCBVTklRVUUgT04gQ09ORkxJQ1QgUkVQTEFDRSwgdmFsdWUg
Tk9UIE5VTEwgT04gQ09ORkxJQ1QgRkFJTCkiKTsKIH0KIAogc3RhdGljIGNvbnN0IFN0cmluZyYg
djFSZWNvcmRzVGFibGVTY2hlbWEoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJp
bmc+IHYxUmVjb3Jkc1RhYmxlU2NoZW1hU3RyaW5nKHYxUmVjb3Jkc1RhYmxlU2NoZW1hKCJSZWNv
cmRzIikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHYxUmVjb3Jkc1RhYmxl
U2NoZW1hU3RyaW5nKHYxUmVjb3Jkc1RhYmxlU2NoZW1hKCJSZWNvcmRzIl9zKSk7CiAgICAgcmV0
dXJuIHYxUmVjb3Jkc1RhYmxlU2NoZW1hU3RyaW5nOwogfQogCiBzdGF0aWMgY29uc3QgU3RyaW5n
JiB2MVJlY29yZHNUYWJsZVNjaGVtYUFsdGVybmF0ZSgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPFN0cmluZz4gdjFSZWNvcmRzVGFibGVTY2hlbWFTdHJpbmcodjFSZWNvcmRzVGFibGVT
Y2hlbWEoIlwiUmVjb3Jkc1wiIikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+
IHYxUmVjb3Jkc1RhYmxlU2NoZW1hU3RyaW5nKHYxUmVjb3Jkc1RhYmxlU2NoZW1hKCJcIlJlY29y
ZHNcIiJfcykpOwogICAgIHJldHVybiB2MVJlY29yZHNUYWJsZVNjaGVtYVN0cmluZzsKIH0KIAot
c3RhdGljIGNvbnN0IFN0cmluZyB2MlJlY29yZHNUYWJsZVNjaGVtYShjb25zdCBTdHJpbmcmIHRh
YmxlTmFtZSkKK3N0YXRpYyBjb25zdCBTdHJpbmcgdjJSZWNvcmRzVGFibGVTY2hlbWEoQVNDSUlM
aXRlcmFsIHRhYmxlTmFtZSkKIHsKICAgICByZXR1cm4gbWFrZVN0cmluZygiQ1JFQVRFIFRBQkxF
ICIsIHRhYmxlTmFtZSwgIiAob2JqZWN0U3RvcmVJRCBJTlRFR0VSIE5PVCBOVUxMIE9OIENPTkZM
SUNUIEZBSUwsIGtleSBURVhUIENPTExBVEUgSURCS0VZIE5PVCBOVUxMIE9OIENPTkZMSUNUIEZB
SUwsIHZhbHVlIE5PVCBOVUxMIE9OIENPTkZMSUNUIEZBSUwpIik7CiB9CiAKIHN0YXRpYyBjb25z
dCBTdHJpbmcmIHYyUmVjb3Jkc1RhYmxlU2NoZW1hKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8U3RyaW5nPiB2MlJlY29yZHNUYWJsZVNjaGVtYVN0cmluZyh2MlJlY29yZHNUYWJsZVNj
aGVtYSgiUmVjb3JkcyIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiB2MlJl
Y29yZHNUYWJsZVNjaGVtYVN0cmluZyh2MlJlY29yZHNUYWJsZVNjaGVtYSgiUmVjb3JkcyJfcykp
OwogICAgIHJldHVybiB2MlJlY29yZHNUYWJsZVNjaGVtYVN0cmluZzsKIH0KIAogc3RhdGljIGNv
bnN0IFN0cmluZyYgdjJSZWNvcmRzVGFibGVTY2hlbWFBbHRlcm5hdGUoKQogewotICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHYyUmVjb3Jkc1RhYmxlU2NoZW1hU3RyaW5nKHYyUmVj
b3Jkc1RhYmxlU2NoZW1hKCJcIlJlY29yZHNcIiIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8U3RyaW5nPiB2MlJlY29yZHNUYWJsZVNjaGVtYVN0cmluZyh2MlJlY29yZHNUYWJsZVNjaGVt
YSgiXCJSZWNvcmRzXCIiX3MpKTsKICAgICByZXR1cm4gdjJSZWNvcmRzVGFibGVTY2hlbWFTdHJp
bmc7CiB9CiAKQEAgLTE0NywzNyArMTQ3LDM3IEBAIHN0YXRpYyBBU0NJSUxpdGVyYWwgdjNSZWNv
cmRzVGFibGVTY2hlbWFUZW1wKCkKICAgICByZXR1cm4gVEFCTEVfU0NIRU1BX1BSRUZJWCAiX1Rl
bXBfUmVjb3JkcyIgVjNfUkVDT1JEU19UQUJMRV9TQ0hFTUFfU1VGRklYOwogfQogCi1zdGF0aWMg
Y29uc3QgU3RyaW5nIHYxSW5kZXhSZWNvcmRzVGFibGVTY2hlbWEoY29uc3QgU3RyaW5nJiB0YWJs
ZU5hbWUpCitzdGF0aWMgY29uc3QgU3RyaW5nIHYxSW5kZXhSZWNvcmRzVGFibGVTY2hlbWEoQVND
SUlMaXRlcmFsIHRhYmxlTmFtZSkKIHsKICAgICByZXR1cm4gbWFrZVN0cmluZygiQ1JFQVRFIFRB
QkxFICIsIHRhYmxlTmFtZSwgIiAoaW5kZXhJRCBJTlRFR0VSIE5PVCBOVUxMIE9OIENPTkZMSUNU
IEZBSUwsIG9iamVjdFN0b3JlSUQgSU5URUdFUiBOT1QgTlVMTCBPTiBDT05GTElDVCBGQUlMLCBr
ZXkgVEVYVCBDT0xMQVRFIElEQktFWSBOT1QgTlVMTCBPTiBDT05GTElDVCBGQUlMLCB2YWx1ZSBO
T1QgTlVMTCBPTiBDT05GTElDVCBGQUlMKSIpOwogfQogCiBzdGF0aWMgY29uc3QgU3RyaW5nJiB2
MUluZGV4UmVjb3Jkc1RhYmxlU2NoZW1hKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
U3RyaW5nPiB2MUluZGV4UmVjb3Jkc1RhYmxlU2NoZW1hU3RyaW5nKHYxSW5kZXhSZWNvcmRzVGFi
bGVTY2hlbWEoIkluZGV4UmVjb3JkcyIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3Ry
aW5nPiB2MUluZGV4UmVjb3Jkc1RhYmxlU2NoZW1hU3RyaW5nKHYxSW5kZXhSZWNvcmRzVGFibGVT
Y2hlbWEoIkluZGV4UmVjb3JkcyJfcykpOwogICAgIHJldHVybiB2MUluZGV4UmVjb3Jkc1RhYmxl
U2NoZW1hU3RyaW5nOwogfQogCiBzdGF0aWMgY29uc3QgU3RyaW5nJiB2MUluZGV4UmVjb3Jkc1Rh
YmxlU2NoZW1hQWx0ZXJuYXRlKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5n
PiB2MUluZGV4UmVjb3Jkc1RhYmxlU2NoZW1hU3RyaW5nKHYxSW5kZXhSZWNvcmRzVGFibGVTY2hl
bWEoIlwiSW5kZXhSZWNvcmRzXCIiKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmlu
Zz4gdjFJbmRleFJlY29yZHNUYWJsZVNjaGVtYVN0cmluZyh2MUluZGV4UmVjb3Jkc1RhYmxlU2No
ZW1hKCJcIkluZGV4UmVjb3Jkc1wiIl9zKSk7CiAgICAgcmV0dXJuIHYxSW5kZXhSZWNvcmRzVGFi
bGVTY2hlbWFTdHJpbmc7CiB9CiAKLXN0YXRpYyBjb25zdCBTdHJpbmcgdjJJbmRleFJlY29yZHNU
YWJsZVNjaGVtYShjb25zdCBTdHJpbmcmIHRhYmxlTmFtZSkKK3N0YXRpYyBjb25zdCBTdHJpbmcg
djJJbmRleFJlY29yZHNUYWJsZVNjaGVtYShBU0NJSUxpdGVyYWwgdGFibGVOYW1lKQogewogICAg
IHJldHVybiBtYWtlU3RyaW5nKCJDUkVBVEUgVEFCTEUgIiwgdGFibGVOYW1lLCAiIChpbmRleElE
IElOVEVHRVIgTk9UIE5VTEwgT04gQ09ORkxJQ1QgRkFJTCwgb2JqZWN0U3RvcmVJRCBJTlRFR0VS
IE5PVCBOVUxMIE9OIENPTkZMSUNUIEZBSUwsIGtleSBURVhUIENPTExBVEUgSURCS0VZIE5PVCBO
VUxMIE9OIENPTkZMSUNUIEZBSUwsIHZhbHVlIFRFWFQgQ09MTEFURSBJREJLRVkgTk9UIE5VTEwg
T04gQ09ORkxJQ1QgRkFJTCkiKTsKIH0KIAogc3RhdGljIGNvbnN0IFN0cmluZyYgdjJJbmRleFJl
Y29yZHNUYWJsZVNjaGVtYSgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4g
djJJbmRleFJlY29yZHNUYWJsZVNjaGVtYVN0cmluZyh2MkluZGV4UmVjb3Jkc1RhYmxlU2NoZW1h
KCJJbmRleFJlY29yZHMiKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gdjJJ
bmRleFJlY29yZHNUYWJsZVNjaGVtYVN0cmluZyh2MkluZGV4UmVjb3Jkc1RhYmxlU2NoZW1hKCJJ
bmRleFJlY29yZHMiX3MpKTsKICAgICByZXR1cm4gdjJJbmRleFJlY29yZHNUYWJsZVNjaGVtYVN0
cmluZzsKIH0KIAogc3RhdGljIGNvbnN0IFN0cmluZyYgdjJJbmRleFJlY29yZHNUYWJsZVNjaGVt
YUFsdGVybmF0ZSgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gdjJJbmRl
eFJlY29yZHNUYWJsZVNjaGVtYVN0cmluZyh2MkluZGV4UmVjb3Jkc1RhYmxlU2NoZW1hKCJcIklu
ZGV4UmVjb3Jkc1wiIikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHYySW5k
ZXhSZWNvcmRzVGFibGVTY2hlbWFTdHJpbmcodjJJbmRleFJlY29yZHNUYWJsZVNjaGVtYSgiXCJJ
bmRleFJlY29yZHNcIiJfcykpOwogICAgIHJldHVybiB2MkluZGV4UmVjb3Jkc1RhYmxlU2NoZW1h
U3RyaW5nOwogfQogCkBAIC05MTQsNyArOTE0LDcgQEAgU3RyaW5nIFNRTGl0ZUlEQkJhY2tpbmdT
dG9yZTo6ZW5jb2RlRGF0YWJhc2VOYW1lKGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lKQogewog
ICAgIEFTU0VSVCghZGF0YWJhc2VOYW1lLmlzRW1wdHkoKSk7CiAgICAgaWYgKGRhdGFiYXNlTmFt
ZS5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiAiJTAwIjsKKyAgICAgICAgcmV0dXJuICIlMDAi
X3M7CiAKICAgICBTdHJpbmcgZmlsZW5hbWUgPSBGaWxlU3lzdGVtOjplbmNvZGVGb3JGaWxlTmFt
ZShkYXRhYmFzZU5hbWUpOwogICAgIGZpbGVuYW1lLnJlcGxhY2VXaXRoTGl0ZXJhbCgnLicsICIl
MkUiKTsKQEAgLTkzNSw3ICs5MzUsNyBAQCBTdHJpbmcgU1FMaXRlSURCQmFja2luZ1N0b3JlOjpk
ZWNvZGVEYXRhYmFzZU5hbWUoY29uc3QgU3RyaW5nJiBlbmNvZGVkTmFtZSkKIAogU3RyaW5nIFNR
TGl0ZUlEQkJhY2tpbmdTdG9yZTo6ZnVsbERhdGFiYXNlUGF0aEZvckRpcmVjdG9yeShjb25zdCBT
dHJpbmcmIGZ1bGxEYXRhYmFzZURpcmVjdG9yeSkKIHsKLSAgICByZXR1cm4gRmlsZVN5c3RlbTo6
cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KGZ1bGxEYXRhYmFzZURpcmVjdG9yeSwgIkluZGV4ZWRE
Qi5zcWxpdGUzIik7CisgICAgcmV0dXJuIEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBv
bmVudChmdWxsRGF0YWJhc2VEaXJlY3RvcnksICJJbmRleGVkREIuc3FsaXRlMyJfcyk7CiB9CiAK
IFN0cmluZyBTUUxpdGVJREJCYWNraW5nU3RvcmU6OmZ1bGxEYXRhYmFzZVBhdGgoKSBjb25zdApA
QCAtOTk2LDcgKzk5Niw3IEBAIElEQkVycm9yIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6Z2V0T3JF
c3RhYmxpc2hEYXRhYmFzZUluZm8oSURCRGF0YWJhc2VJbmZvJiBpbmZvCiAgICAgbV9zcWxpdGVE
Qi0+ZGlzYWJsZVRocmVhZGluZ0NoZWNrcygpOwogICAgIG1fc3FsaXRlREItPmVuYWJsZUF1dG9t
YXRpY1dBTFRydW5jYXRpb24oKTsKIAotICAgIG1fc3FsaXRlREItPnNldENvbGxhdGlvbkZ1bmN0
aW9uKCJJREJLRVkiLCBbXShpbnQgYUxlbmd0aCwgY29uc3Qgdm9pZCogYSwgaW50IGJMZW5ndGgs
IGNvbnN0IHZvaWQqIGIpIHsKKyAgICBtX3NxbGl0ZURCLT5zZXRDb2xsYXRpb25GdW5jdGlvbigi
SURCS0VZIl9zLCBbXShpbnQgYUxlbmd0aCwgY29uc3Qgdm9pZCogYSwgaW50IGJMZW5ndGgsIGNv
bnN0IHZvaWQqIGIpIHsKICAgICAgICAgcmV0dXJuIGlkYktleUNvbGxhdGUoYUxlbmd0aCwgYSwg
Ykxlbmd0aCwgYik7CiAgICAgfSk7CiAKQEAgLTE5MDksNyArMTkwOSw3IEBAIElEQkVycm9yIFNR
TGl0ZUlEQkJhY2tpbmdTdG9yZTo6dXBkYXRlQWxsSW5kZXhlc0ZvckFkZFJlY29yZChjb25zdCBJ
REJPYmplY3RTdG9yCiAgICAgICAgIEFTU0VSVChpbmRleEl0ZXJhdG9yICE9IGluZGV4TWFwLmVu
ZCgpKTsKIAogICAgICAgICBpZiAoaW5kZXhJdGVyYXRvciA9PSBpbmRleE1hcC5lbmQoKSkgewot
ICAgICAgICAgICAgZXJyb3IgPSBJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiTWlzc2lu
ZyBpbmRleCBtZXRhZGF0YSIgfTsKKyAgICAgICAgICAgIGVycm9yID0gSURCRXJyb3IgeyBJbnZh
bGlkU3RhdGVFcnJvciwgIk1pc3NpbmcgaW5kZXggbWV0YWRhdGEiX3MgfTsKICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICB9CiAKQEAgLTI1NzMsNyArMjU3Myw3IEBAIElEQkVycm9yIFNRTGl0
ZUlEQkJhY2tpbmdTdG9yZTo6dW5jaGVja2VkR2V0S2V5R2VuZXJhdG9yVmFsdWUoaW50NjRfdCBv
YmplY3RTdG9yCiAKICAgICBpbnQ2NF90IHZhbHVlID0gc3FsLT5jb2x1bW5JbnQ2NCgwKTsKICAg
ICBpZiAodmFsdWUgPCAwKQotICAgICAgICByZXR1cm4gSURCRXJyb3IgeyBDb25zdHJhaW50RXJy
b3IsICJDdXJyZW50IGtleSBnZW5lcmF0b3IgdmFsdWUgZnJvbSBkYXRhYmFzZSBpcyBpbnZhbGlk
IiB9OworICAgICAgICByZXR1cm4gSURCRXJyb3IgeyBDb25zdHJhaW50RXJyb3IsICJDdXJyZW50
IGtleSBnZW5lcmF0b3IgdmFsdWUgZnJvbSBkYXRhYmFzZSBpcyBpbnZhbGlkIl9zIH07CiAKICAg
ICBvdXRWYWx1ZSA9IHZhbHVlOwogICAgIHJldHVybiBJREJFcnJvciB7IH07CkBAIC0yNTg3LDcg
KzI1ODcsNyBAQCBJREJFcnJvciBTUUxpdGVJREJCYWNraW5nU3RvcmU6OnVuY2hlY2tlZFNldEtl
eUdlbmVyYXRvclZhbHVlKGludDY0X3Qgb2JqZWN0U3RvcgogICAgICAgICB8fCBzcWwtPmJpbmRJ
bnQ2NCgyLCB2YWx1ZSkgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8IHNxbC0+c3RlcCgpICE9IFNR
TElURV9ET05FKSB7CiAgICAgICAgIExPR19FUlJPUigiQ291bGQgbm90IHVwZGF0ZSBrZXkgZ2Vu
ZXJhdG9yIHZhbHVlICglaSkgLSAlcyIsIG1fc3FsaXRlREItPmxhc3RFcnJvcigpLCBtX3NxbGl0
ZURCLT5sYXN0RXJyb3JNc2coKSk7Ci0gICAgICAgIHJldHVybiBJREJFcnJvciB7IENvbnN0cmFp
bnRFcnJvciwgIkVycm9yIHN0b3JpbmcgbmV3IGtleSBnZW5lcmF0b3IgdmFsdWUgaW4gZGF0YWJh
c2UiIH07CisgICAgICAgIHJldHVybiBJREJFcnJvciB7IENvbnN0cmFpbnRFcnJvciwgIkVycm9y
IHN0b3JpbmcgbmV3IGtleSBnZW5lcmF0b3IgdmFsdWUgaW4gZGF0YWJhc2UiX3MgfTsKICAgICB9
CiAKICAgICByZXR1cm4gSURCRXJyb3IgeyB9OwpAQCAtMjYxNSw3ICsyNjE1LDcgQEAgSURCRXJy
b3IgU1FMaXRlSURCQmFja2luZ1N0b3JlOjpnZW5lcmF0ZUtleU51bWJlcihjb25zdCBJREJSZXNv
dXJjZUlkZW50aWZpZXImIHQKICAgICAgICAgcmV0dXJuIGVycm9yOwogCiAgICAgaWYgKGN1cnJl
bnRWYWx1ZSArIDEgPiBtYXhHZW5lcmF0b3JWYWx1ZSkKLSAgICAgICAgcmV0dXJuIElEQkVycm9y
IHsgQ29uc3RyYWludEVycm9yLCAiQ2Fubm90IGdlbmVyYXRlIG5ldyBrZXkgdmFsdWUgb3ZlciAy
XjUzIGZvciBvYmplY3Qgc3RvcmUgb3BlcmF0aW9uIiB9OworICAgICAgICByZXR1cm4gSURCRXJy
b3IgeyBDb25zdHJhaW50RXJyb3IsICJDYW5ub3QgZ2VuZXJhdGUgbmV3IGtleSB2YWx1ZSBvdmVy
IDJeNTMgZm9yIG9iamVjdCBzdG9yZSBvcGVyYXRpb24iX3MgfTsKIAogICAgIGdlbmVyYXRlZEtl
eSA9IGN1cnJlbnRWYWx1ZSArIDE7CiAgICAgcmV0dXJuIHVuY2hlY2tlZFNldEtleUdlbmVyYXRv
clZhbHVlKG9iamVjdFN0b3JlSUQsIGdlbmVyYXRlZEtleSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNl
LmNwcAppbmRleCAyM2U2ZDNmNWM4YmM2Mzc2YzMwYzY1YzRmNjcyZWU2NGMzZmFmNmYxLi43NGFk
ZWVlM2UzMWFhYWQyZDNkOTVjMjg1NWQ1MDhiOGE1NzZkMGIzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRh
YmFzZS5jcHAKQEAgLTU4OSw3ICs1ODksNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpjcmVh
dGVPYmplY3RTdG9yZShVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uJiB0cmFuc2FjdAogICAg
ICAgICBhdXRvIHRhc2tTaXplID0gZGVmYXVsdFdyaXRlT3BlcmF0aW9uQ29zdCArIGVzdGltYXRl
U2l6ZShpbmZvKTsKICAgICAgICAgbV9tYW5hZ2VyLT5yZXF1ZXN0U3BhY2UobV9pZGVudGlmaWVy
Lm9yaWdpbigpLCB0YXNrU2l6ZSwgW3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0s
IHdlYWtUcmFuc2FjdGlvbiA9IFdlYWtQdHIgeyB0cmFuc2FjdGlvbiB9LCBpbmZvLCBjYWxsYmFj
ayA9IFdURk1vdmUoY2FsbGJhY2spXShib29sIGdyYW50ZWQpIG11dGFibGUgewogICAgICAgICAg
ICAgaWYgKCF3ZWFrVGhpcyB8fCAhd2Vha1RyYW5zYWN0aW9uKQotICAgICAgICAgICAgICAgIHJl
dHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJhc2Ugb3Ig
dHJhbnNhY3Rpb24gaXMgY2xvc2VkIiB9KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJh
Y2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkRhdGFiYXNlIG9yIHRyYW5zYWN0aW9u
IGlzIGNsb3NlZCJfcyB9KTsKICAgICAgICAgICAgIGNyZWF0ZU9iamVjdFN0b3JlKCp3ZWFrVHJh
bnNhY3Rpb24sIGluZm8sIFdURk1vdmUoY2FsbGJhY2spLCBncmFudGVkID8gU3BhY2VDaGVja1Jl
c3VsdDo6UGFzcyA6IFNwYWNlQ2hlY2tSZXN1bHQ6OkZhaWwpOwogICAgICAgICB9KTsKICAgICAg
ICAgcmV0dXJuOwpAQCAtNjAxLDcgKzYwMSw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmNy
ZWF0ZU9iamVjdFN0b3JlKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mIHRyYW5zYWN0CiAg
ICAgfQogCiAgICAgaWYgKCFtX2JhY2tpbmdTdG9yZSkKLSAgICAgICAgcmV0dXJuIGNhbGxiYWNr
KElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3JlIGhhcyBjbG9zZWQi
IH0pOworICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJv
ciwgIkJhY2tpbmcgc3RvcmUgaGFzIGNsb3NlZCJfcyB9KTsKIAogICAgIGF1dG8gZXJyb3IgPSBt
X2JhY2tpbmdTdG9yZS0+Y3JlYXRlT2JqZWN0U3RvcmUodHJhbnNhY3Rpb24uaW5mbygpLmlkZW50
aWZpZXIoKSwgaW5mbyk7CiAgICAgaWYgKGVycm9yLmlzTnVsbCgpKQpAQCAtNjIxLDcgKzYyMSw3
IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmRlbGV0ZU9iamVjdFN0b3JlKFVuaXF1ZUlEQkRh
dGFiYXNlVHJhbnNhY3Rpb24mIHRyYW5zYWN0CiAKICAgICAgICAgbV9tYW5hZ2VyLT5yZXF1ZXN0
U3BhY2UobV9pZGVudGlmaWVyLm9yaWdpbigpLCAwLCBbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRy
IHsgKnRoaXMgfSwgd2Vha1RyYW5zYWN0aW9uID0gV2Vha1B0ciB7IHRyYW5zYWN0aW9uIH0sIG9i
amVjdFN0b3JlTmFtZSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oYm9vbCBncmFudGVk
KSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlmICghd2Vha1RoaXMgfHwgIXdlYWtUcmFuc2FjdGlv
bikKLSAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3Rh
dGVFcnJvciwgIkRhdGFiYXNlIG9yIHRyYW5zYWN0aW9uIGlzIGNsb3NlZCIgfSk7CisgICAgICAg
ICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJE
YXRhYmFzZSBvciB0cmFuc2FjdGlvbiBpcyBjbG9zZWQiX3MgfSk7CiAKICAgICAgICAgICAgIGRl
bGV0ZU9iamVjdFN0b3JlKCp3ZWFrVHJhbnNhY3Rpb24sIG9iamVjdFN0b3JlTmFtZSwgV1RGTW92
ZShjYWxsYmFjayksIGdyYW50ZWQgPyBTcGFjZUNoZWNrUmVzdWx0OjpQYXNzIDogU3BhY2VDaGVj
a1Jlc3VsdDo6RmFpbCk7CiAgICAgICAgIH0pOwpAQCAtNjM2LDcgKzYzNiw3IEBAIHZvaWQgVW5p
cXVlSURCRGF0YWJhc2U6OmRlbGV0ZU9iamVjdFN0b3JlKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNh
Y3Rpb24mIHRyYW5zYWN0CiAgICAgfQogCiAgICAgaWYgKCFtX2JhY2tpbmdTdG9yZSkKLSAgICAg
ICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5n
IHN0b3JlIGlzIGNsb3NlZCIgfSk7CisgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7
IEludmFsaWRTdGF0ZUVycm9yLCAiQmFja2luZyBzdG9yZSBpcyBjbG9zZWQiX3MgfSk7CiAKICAg
ICBhdXRvIGVycm9yID0gbV9iYWNraW5nU3RvcmUtPmRlbGV0ZU9iamVjdFN0b3JlKHRyYW5zYWN0
aW9uLmluZm8oKS5pZGVudGlmaWVyKCksIGluZm8tPmlkZW50aWZpZXIoKSk7CiAgICAgaWYgKGVy
cm9yLmlzTnVsbCgpKQpAQCAtNjU3LDcgKzY1Nyw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6
OnJlbmFtZU9iamVjdFN0b3JlKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mIHRyYW5zYWN0
CiAgICAgICAgIGF1dG8gdGFza1NpemUgPSBkZWZhdWx0V3JpdGVPcGVyYXRpb25Db3N0ICsgbmV3
TmFtZS5zaXplSW5CeXRlcygpOwogICAgICAgICBtX21hbmFnZXItPnJlcXVlc3RTcGFjZShtX2lk
ZW50aWZpZXIub3JpZ2luKCksIHRhc2tTaXplLCBbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsg
KnRoaXMgfSwgd2Vha1RyYW5zYWN0aW9uID0gV2Vha1B0ciB7IHRyYW5zYWN0aW9uIH0sIG9iamVj
dFN0b3JlSWRlbnRpZmllciwgbmV3TmFtZSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0o
Ym9vbCBncmFudGVkKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlmICghd2Vha1RoaXMgfHwgIXdl
YWtUcmFuc2FjdGlvbikKLSAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3Ig
eyBJbnZhbGlkU3RhdGVFcnJvciwgIkRhdGFiYXNlIG9yIHRyYW5zYWN0aW9uIGlzIGNsb3NlZCIg
fSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0
YXRlRXJyb3IsICJEYXRhYmFzZSBvciB0cmFuc2FjdGlvbiBpcyBjbG9zZWQiX3MgfSk7CiAKICAg
ICAgICAgICAgIHJlbmFtZU9iamVjdFN0b3JlKCp3ZWFrVHJhbnNhY3Rpb24sIG9iamVjdFN0b3Jl
SWRlbnRpZmllciwgbmV3TmFtZSwgV1RGTW92ZShjYWxsYmFjayksIGdyYW50ZWQgPyBTcGFjZUNo
ZWNrUmVzdWx0OjpQYXNzIDogU3BhY2VDaGVja1Jlc3VsdDo6RmFpbCk7CiAgICAgICAgIH0pOwpA
QCAtNjc2LDcgKzY3Niw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OnJlbmFtZU9iamVjdFN0
b3JlKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mIHRyYW5zYWN0CiAgICAgfQogCiAgICAg
aWYgKCFtX2JhY2tpbmdTdG9yZSkKLSAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsg
SW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3JlIGlzIGNsb3NlZCIgfSk7CisgICAgICAg
IHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiQmFja2luZyBz
dG9yZSBpcyBjbG9zZWQiX3MgfSk7CiAKICAgICBhdXRvIGVycm9yID0gbV9iYWNraW5nU3RvcmUt
PnJlbmFtZU9iamVjdFN0b3JlKHRyYW5zYWN0aW9uLmluZm8oKS5pZGVudGlmaWVyKCksIG9iamVj
dFN0b3JlSWRlbnRpZmllciwgbmV3TmFtZSk7CiAgICAgaWYgKGVycm9yLmlzTnVsbCgpKQpAQCAt
Njk2LDcgKzY5Niw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmNsZWFyT2JqZWN0U3RvcmUo
VW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbiYgdHJhbnNhY3RpCiAKICAgICAgICAgbV9tYW5h
Z2VyLT5yZXF1ZXN0U3BhY2UobV9pZGVudGlmaWVyLm9yaWdpbigpLCAwLCBbdGhpcywgd2Vha1Ro
aXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgd2Vha1RyYW5zYWN0aW9uID0gV2Vha1B0ciB7IHRyYW5z
YWN0aW9uIH0sIG9iamVjdFN0b3JlSWRlbnRpZmllciwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxi
YWNrKV0oYm9vbCBncmFudGVkKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlmICghd2Vha1RoaXMg
fHwgIXdlYWtUcmFuc2FjdGlvbikKLSAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soSURC
RXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkRhdGFiYXNlIG9yIHRyYW5zYWN0aW9uIGlzIGNs
b3NlZCIgfSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52
YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBvciB0cmFuc2FjdGlvbiBpcyBjbG9zZWQiX3MgfSk7
CiAKICAgICAgICAgICAgIGNsZWFyT2JqZWN0U3RvcmUoKndlYWtUcmFuc2FjdGlvbiwgb2JqZWN0
U3RvcmVJZGVudGlmaWVyLCBXVEZNb3ZlKGNhbGxiYWNrKSwgZ3JhbnRlZCA/IFNwYWNlQ2hlY2tS
ZXN1bHQ6OlBhc3MgOiBTcGFjZUNoZWNrUmVzdWx0OjpGYWlsKTsKICAgICAgICAgfSk7CkBAIC03
MDUsNyArNzA1LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6Y2xlYXJPYmplY3RTdG9yZShV
bmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uJiB0cmFuc2FjdGkKIAogICAgIEFTU0VSVChzcGFj
ZUNoZWNrUmVzdWx0ID09IFNwYWNlQ2hlY2tSZXN1bHQ6OlBhc3MpOwogICAgIGlmICghbV9iYWNr
aW5nU3RvcmUpCi0gICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0
ZUVycm9yLCAiQmFja2luZyBzdG9yZSBpcyBjbG9zZWQiIH0pOworICAgICAgICByZXR1cm4gY2Fs
bGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xv
c2VkIl9zIH0pOwogCiAgICAgYXV0byBlcnJvciA9IG1fYmFja2luZ1N0b3JlLT5jbGVhck9iamVj
dFN0b3JlKHRyYW5zYWN0aW9uLmluZm8oKS5pZGVudGlmaWVyKCksIG9iamVjdFN0b3JlSWRlbnRp
Zmllcik7CiAgICAgY2FsbGJhY2soZXJyb3IpOwpAQCAtNzIzLDcgKzcyMyw3IEBAIHZvaWQgVW5p
cXVlSURCRGF0YWJhc2U6OmNyZWF0ZUluZGV4KFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24m
IHRyYW5zYWN0aW9uLCBjCiAgICAgICAgIGF1dG8gdGFza1NpemUgPSBkZWZhdWx0V3JpdGVPcGVy
YXRpb25Db3N0ICsgZXN0aW1hdGVTaXplKGluZm8pOwogICAgICAgICBtX21hbmFnZXItPnJlcXVl
c3RTcGFjZShtX2lkZW50aWZpZXIub3JpZ2luKCksIHRhc2tTaXplLCBbdGhpcywgd2Vha1RoaXMg
PSBXZWFrUHRyIHsgKnRoaXMgfSwgd2Vha1RyYW5zYWN0aW9uID0gV2Vha1B0ciB7IHRyYW5zYWN0
aW9uIH0sIGluZm8sIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKGJvb2wgZ3JhbnRlZCkg
bXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAoIXdlYWtUaGlzIHx8ICF3ZWFrVHJhbnNhY3Rpb24p
Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRl
RXJyb3IsICJEYXRhYmFzZSBvciB0cmFuc2FjdGlvbiBpcyBjbG9zZWQiIH0pOworICAgICAgICAg
ICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0
YWJhc2Ugb3IgdHJhbnNhY3Rpb24gaXMgY2xvc2VkIl9zIH0pOwogCiAgICAgICAgICAgICBjcmVh
dGVJbmRleCgqd2Vha1RyYW5zYWN0aW9uLCBpbmZvLCBXVEZNb3ZlKGNhbGxiYWNrKSwgZ3JhbnRl
ZCA/IFNwYWNlQ2hlY2tSZXN1bHQ6OlBhc3MgOiBTcGFjZUNoZWNrUmVzdWx0OjpGYWlsKTsKICAg
ICAgICAgfSk7CkBAIC03MzYsNyArNzM2LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6Y3Jl
YXRlSW5kZXgoVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24sIGMKICAg
ICB9CiAKICAgICBpZiAoIW1fYmFja2luZ1N0b3JlKQotICAgICAgICByZXR1cm4gY2FsbGJhY2so
SURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xvc2VkIiB9
KTsKKyAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3Is
ICJCYWNraW5nIHN0b3JlIGlzIGNsb3NlZCJfcyB9KTsKIAogICAgIGF1dG8gZXJyb3IgPSBtX2Jh
Y2tpbmdTdG9yZS0+Y3JlYXRlSW5kZXgodHJhbnNhY3Rpb24uaW5mbygpLmlkZW50aWZpZXIoKSwg
aW5mbyk7CiAgICAgaWYgKGVycm9yLmlzTnVsbCgpKSB7CkBAIC03NjEsNyArNzYxLDcgQEAgdm9p
ZCBVbmlxdWVJREJEYXRhYmFzZTo6ZGVsZXRlSW5kZXgoVW5pcXVlSURCRGF0YWJhc2VUcmFuc2Fj
dGlvbiYgdHJhbnNhY3Rpb24sIHUKIAogICAgICAgICBtX21hbmFnZXItPnJlcXVlc3RTcGFjZSht
X2lkZW50aWZpZXIub3JpZ2luKCksIDAsIFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhp
cyB9LCB3ZWFrVHJhbnNhY3Rpb24gPSBXZWFrUHRyIHsgdHJhbnNhY3Rpb24gfSwgb2JqZWN0U3Rv
cmVJZGVudGlmaWVyLCBpbmRleE5hbWUsIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKGJv
b2wgZ3JhbnRlZCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAoIXdlYWtUaGlzIHx8ICF3ZWFr
VHJhbnNhY3Rpb24pCi0gICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsg
SW52YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBvciB0cmFuc2FjdGlvbiBpcyBjbG9zZWQiIH0p
OworICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0
ZUVycm9yLCAiRGF0YWJhc2Ugb3IgdHJhbnNhY3Rpb24gaXMgY2xvc2VkIl9zIH0pOwogCiAgICAg
ICAgICAgICBkZWxldGVJbmRleCgqd2Vha1RyYW5zYWN0aW9uLCBvYmplY3RTdG9yZUlkZW50aWZp
ZXIsIGluZGV4TmFtZSwgV1RGTW92ZShjYWxsYmFjayksIGdyYW50ZWQgPyBTcGFjZUNoZWNrUmVz
dWx0OjpQYXNzIDogU3BhY2VDaGVja1Jlc3VsdDo6RmFpbCk7CiAgICAgICAgIH0pOwpAQCAtNzcw
LDcgKzc3MCw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmRlbGV0ZUluZGV4KFVuaXF1ZUlE
QkRhdGFiYXNlVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uLCB1CiAKICAgICBBU1NFUlQoc3BhY2VD
aGVja1Jlc3VsdCA9PSBTcGFjZUNoZWNrUmVzdWx0OjpQYXNzKTsKICAgICBpZiAoIW1fYmFja2lu
Z1N0b3JlKQotICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVF
cnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xvc2VkIiB9KTsKKyAgICAgICAgcmV0dXJuIGNhbGxi
YWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3JlIGlzIGNsb3Nl
ZCJfcyB9KTsKIAogICAgIGF1dG8qIG9iamVjdFN0b3JlSW5mbyA9IG1fZGF0YWJhc2VJbmZvLT5p
bmZvRm9yRXhpc3RpbmdPYmplY3RTdG9yZShvYmplY3RTdG9yZUlkZW50aWZpZXIpOwogICAgIGlm
ICghb2JqZWN0U3RvcmVJbmZvKSB7CkBAIC04MDQsNyArODA0LDcgQEAgdm9pZCBVbmlxdWVJREJE
YXRhYmFzZTo6cmVuYW1lSW5kZXgoVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbiYgdHJhbnNh
Y3Rpb24sIHUKICAgICAgICAgYXV0byB0YXNrU2l6ZSA9IGRlZmF1bHRXcml0ZU9wZXJhdGlvbkNv
c3QgKyBuZXdOYW1lLnNpemVJbkJ5dGVzKCk7CiAgICAgICAgIG1fbWFuYWdlci0+cmVxdWVzdFNw
YWNlKG1faWRlbnRpZmllci5vcmlnaW4oKSwgdGFza1NpemUsIFt0aGlzLCB3ZWFrVGhpcyA9IFdl
YWtQdHIgeyAqdGhpcyB9LCB3ZWFrVHJhbnNhY3Rpb24gPSBXZWFrUHRyIHsgdHJhbnNhY3Rpb24g
fSwgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBpbmRleElkZW50aWZpZXIsIG5ld05hbWUsIGNhbGxi
YWNrID0gV1RGTW92ZShjYWxsYmFjayldKGJvb2wgZ3JhbnRlZCkgbXV0YWJsZSB7CiAgICAgICAg
ICAgICBpZiAoIXdlYWtUaGlzIHx8ICF3ZWFrVHJhbnNhY3Rpb24pCi0gICAgICAgICAgICAgICAg
cmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBv
ciB0cmFuc2FjdGlvbiBpcyBjbG9zZWQiIH0pOworICAgICAgICAgICAgICAgIHJldHVybiBjYWxs
YmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJhc2Ugb3IgdHJhbnNhY3Rp
b24gaXMgY2xvc2VkIl9zIH0pOwogCiAgICAgICAgICAgICByZW5hbWVJbmRleCgqd2Vha1RyYW5z
YWN0aW9uLCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGluZGV4SWRlbnRpZmllciwgbmV3TmFtZSwg
V1RGTW92ZShjYWxsYmFjayksIGdyYW50ZWQgPyBTcGFjZUNoZWNrUmVzdWx0OjpQYXNzIDogU3Bh
Y2VDaGVja1Jlc3VsdDo6RmFpbCk7CiAgICAgICAgIH0pOwpAQCAtODE3LDcgKzgxNyw3IEBAIHZv
aWQgVW5pcXVlSURCRGF0YWJhc2U6OnJlbmFtZUluZGV4KFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNh
Y3Rpb24mIHRyYW5zYWN0aW9uLCB1CiAgICAgfQogCiAgICAgaWYgKCFtX2JhY2tpbmdTdG9yZSkK
LSAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJC
YWNraW5nIHN0b3JlIGlzIGNsb3NlZCIgfSk7CisgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJF
cnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiQmFja2luZyBzdG9yZSBpcyBjbG9zZWQiX3MgfSk7
CiAKICAgICBhdXRvKiBvYmplY3RTdG9yZUluZm8gPSBtX2RhdGFiYXNlSW5mby0+aW5mb0ZvckV4
aXN0aW5nT2JqZWN0U3RvcmUob2JqZWN0U3RvcmVJZGVudGlmaWVyKTsKICAgICBpZiAoIW9iamVj
dFN0b3JlSW5mbykgewpAQCAtODQ2LDcgKzg0Niw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6
OnB1dE9yQWRkKGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0YSwgY29uc3QgSURCS2V5
CiAgICAgQVNTRVJUKG1fZGF0YWJhc2VJbmZvKTsKIAogICAgIGlmICghbV9iYWNraW5nU3RvcmUp
Ci0gICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAi
QmFja2luZyBzdG9yZSBpcyBjbG9zZWQiIH0sIGtleURhdGEpOworICAgICAgICByZXR1cm4gY2Fs
bGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xv
c2VkIl9zIH0sIGtleURhdGEpOwogCiAgICAgYXV0byBvYmplY3RTdG9yZUlkZW50aWZpZXIgPSBy
ZXF1ZXN0RGF0YS5vYmplY3RTdG9yZUlkZW50aWZpZXIoKTsKICAgICBhdXRvKiBvYmplY3RTdG9y
ZUluZm8gPSBtX2JhY2tpbmdTdG9yZS0+aW5mb0Zvck9iamVjdFN0b3JlKG9iamVjdFN0b3JlSWRl
bnRpZmllcik7CkBAIC05MDEsNyArOTAxLDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6cHV0
T3JBZGQoY29uc3QgSURCUmVxdWVzdERhdGEmIHJlcXVlc3REYXRhLCBjb25zdCBJREJLZXkKICAg
ICBMT0coSW5kZXhlZERCLCAiVW5pcXVlSURCRGF0YWJhc2U6OnB1dE9yQWRkIHF1b3RhIGNoZWNr
IHdpdGggdGFzayBzaXplOiAlIiBQUkl1NjQgIiBrZXkgc2l6ZTogJSIgUFJJdTY0ICIgdmFsdWUg
c2l6ZTogJSIgUFJJdTY0ICIgaW5kZXggc2l6ZTogJSIgUFJJdTY0LCB0YXNrU2l6ZSwga2V5U2l6
ZSwgdmFsdWVTaXplLCBpbmRleFNpemUpOwogICAgIG1fbWFuYWdlci0+cmVxdWVzdFNwYWNlKG1f
aWRlbnRpZmllci5vcmlnaW4oKSwgdGFza1NpemUsIFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIg
eyAqdGhpcyB9LCByZXF1ZXN0RGF0YSwgdXNlZEtleSwgdmFsdWUsIG92ZXJ3cml0ZU1vZGUsIGNh
bGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayksIHVzZWRLZXlJc0dlbmVyYXRlZCwgaW5kZXhLZXlz
LCBvYmplY3RTdG9yZUluZm8gPSAqb2JqZWN0U3RvcmVJbmZvXShib29sIGdyYW50ZWQpIG11dGFi
bGUgewogICAgICAgICBpZiAoIXdlYWtUaGlzKQotICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNr
KElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBpcyBjbG9zZWQiIH0sIHVz
ZWRLZXkpOworICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0
YXRlRXJyb3IsICJEYXRhYmFzZSBpcyBjbG9zZWQiX3MgfSwgdXNlZEtleSk7CiAKICAgICAgICAg
cHV0T3JBZGRBZnRlclNwYWNlQ2hlY2socmVxdWVzdERhdGEsIHVzZWRLZXksIHZhbHVlLCBvdmVy
d3JpdGVNb2RlLCBXVEZNb3ZlKGNhbGxiYWNrKSwgdXNlZEtleUlzR2VuZXJhdGVkLCBpbmRleEtl
eXMsIG9iamVjdFN0b3JlSW5mbywgZ3JhbnRlZCA/IFNwYWNlQ2hlY2tSZXN1bHQ6OlBhc3MgOiBT
cGFjZUNoZWNrUmVzdWx0OjpGYWlsKTsKICAgICB9KTsKQEAgLTkxMyw3ICs5MTMsNyBAQCB2b2lk
IFVuaXF1ZUlEQkRhdGFiYXNlOjpwdXRPckFkZEFmdGVyU3BhY2VDaGVjayhjb25zdCBJREJSZXF1
ZXN0RGF0YSYgcmVxdWVzdERhdAogICAgIEFTU0VSVChtX2RhdGFiYXNlSW5mbyk7CiAKICAgICBp
ZiAoIW1fYmFja2luZ1N0b3JlKQotICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJ
bnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xvc2VkIiB9LCBrZXlEYXRhKTsK
KyAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJC
YWNraW5nIHN0b3JlIGlzIGNsb3NlZCJfcyB9LCBrZXlEYXRhKTsKIAogICAgIHVpbnQ2NF90IGtl
eU51bWJlciA9IGlzS2V5R2VuZXJhdGVkID8ga2V5RGF0YS5udW1iZXIoKSA6IDA7CiAgICAgYXV0
byBvYmplY3RTdG9yZUlkZW50aWZpZXIgPSBvYmplY3RTdG9yZUluZm8uaWRlbnRpZmllcigpOwpA
QCAtOTUzLDcgKzk1Myw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmdldFJlY29yZChjb25z
dCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdERhdGEsIGNvbnN0IElEQkdlCiAKICAgICAgICAgbV9t
YW5hZ2VyLT5yZXF1ZXN0U3BhY2UobV9pZGVudGlmaWVyLm9yaWdpbigpLCAwLCBbdGhpcywgd2Vh
a1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgcmVxdWVzdERhdGEsIGdldFJlY29yZERhdGEsIGNh
bGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKGJvb2wgZ3JhbnRlZCkgbXV0YWJsZSB7CiAgICAg
ICAgICAgICBpZiAoIXdlYWtUaGlzKQotICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhJ
REJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJhc2UgaXMgY2xvc2VkIiB9LCBJREJH
ZXRSZXN1bHQgeyB9KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3Ig
eyBJbnZhbGlkU3RhdGVFcnJvciwgIkRhdGFiYXNlIGlzIGNsb3NlZCJfcyB9LCBJREJHZXRSZXN1
bHQgeyB9KTsKIAogICAgICAgICAgICAgZ2V0UmVjb3JkKHJlcXVlc3REYXRhLCBnZXRSZWNvcmRE
YXRhLCBXVEZNb3ZlKGNhbGxiYWNrKSwgZ3JhbnRlZCA/IFNwYWNlQ2hlY2tSZXN1bHQ6OlBhc3Mg
OiBTcGFjZUNoZWNrUmVzdWx0OjpGYWlsKTsKICAgICAgICAgfSk7CkBAIC05NjIsNyArOTYyLDcg
QEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6Z2V0UmVjb3JkKGNvbnN0IElEQlJlcXVlc3REYXRh
JiByZXF1ZXN0RGF0YSwgY29uc3QgSURCR2UKIAogICAgIEFTU0VSVChzcGFjZUNoZWNrUmVzdWx0
ID09IFNwYWNlQ2hlY2tSZXN1bHQ6OlBhc3MpOwogICAgIGlmICghbV9iYWNraW5nU3RvcmUpCi0g
ICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiQmFj
a2luZyBzdG9yZSBpcyBjbG9zZWQiIH0sIElEQkdldFJlc3VsdCB7IH0pOworICAgICAgICByZXR1
cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUg
aXMgY2xvc2VkIl9zIH0sIElEQkdldFJlc3VsdCB7IH0pOwogCiAgICAgSURCR2V0UmVzdWx0IHJl
c3VsdDsKICAgICBJREJFcnJvciBlcnJvcjsKQEAgLTk4Niw3ICs5ODYsNyBAQCB2b2lkIFVuaXF1
ZUlEQkRhdGFiYXNlOjpnZXRBbGxSZWNvcmRzKGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0
RGF0YSwgY29uc3QgSQogCiAgICAgICAgIG1fbWFuYWdlci0+cmVxdWVzdFNwYWNlKG1faWRlbnRp
Zmllci5vcmlnaW4oKSwgMCwgW3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHJl
cXVlc3REYXRhLCBnZXRBbGxSZWNvcmRzRGF0YSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNr
KV0oYm9vbCBncmFudGVkKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlmICghd2Vha1RoaXMpCi0g
ICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJy
b3IsICJEYXRhYmFzZSBpcyBjbG9zZWQiIH0sIElEQkdldEFsbFJlc3VsdCB7IH0pOworICAgICAg
ICAgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAi
RGF0YWJhc2UgaXMgY2xvc2VkIl9zIH0sIElEQkdldEFsbFJlc3VsdCB7IH0pOwogCiAgICAgICAg
ICAgICBnZXRBbGxSZWNvcmRzKHJlcXVlc3REYXRhLCBnZXRBbGxSZWNvcmRzRGF0YSwgV1RGTW92
ZShjYWxsYmFjayksIGdyYW50ZWQgPyBTcGFjZUNoZWNrUmVzdWx0OjpQYXNzIDogU3BhY2VDaGVj
a1Jlc3VsdDo6RmFpbCk7CiAgICAgICAgIH0pOwpAQCAtOTk1LDcgKzk5NSw3IEBAIHZvaWQgVW5p
cXVlSURCRGF0YWJhc2U6OmdldEFsbFJlY29yZHMoY29uc3QgSURCUmVxdWVzdERhdGEmIHJlcXVl
c3REYXRhLCBjb25zdCBJCiAKICAgICBBU1NFUlQoc3BhY2VDaGVja1Jlc3VsdCA9PSBTcGFjZUNo
ZWNrUmVzdWx0OjpQYXNzKTsKICAgICBpZiAoIW1fYmFja2luZ1N0b3JlKQotICAgICAgICByZXR1
cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUg
aXMgY2xvc2VkIiB9LCBJREJHZXRBbGxSZXN1bHQgeyB9KTsKKyAgICAgICAgcmV0dXJuIGNhbGxi
YWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3JlIGlzIGNsb3Nl
ZCJfcyB9LCBJREJHZXRBbGxSZXN1bHQgeyB9KTsKIAogICAgIElEQkdldEFsbFJlc3VsdCByZXN1
bHQ7CiAgICAgYXV0byBlcnJvciA9IG1fYmFja2luZ1N0b3JlLT5nZXRBbGxSZWNvcmRzKHJlcXVl
c3REYXRhLnRyYW5zYWN0aW9uSWRlbnRpZmllcigpLCBnZXRBbGxSZWNvcmRzRGF0YSwgcmVzdWx0
KTsKQEAgLTEwMTQsNyArMTAxNCw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmdldENvdW50
KGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0YSwgY29uc3QgSURCS2V5CiAKICAgICAg
ICAgbV9tYW5hZ2VyLT5yZXF1ZXN0U3BhY2UobV9pZGVudGlmaWVyLm9yaWdpbigpLCAwLCBbdGhp
cywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgcmVxdWVzdERhdGEsIHJhbmdlLCBjYWxs
YmFjayA9IFdURk1vdmUoY2FsbGJhY2spXShib29sIGdyYW50ZWQpIG11dGFibGUgewogICAgICAg
ICAgICAgaWYgKCF3ZWFrVGhpcykKLSAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soSURC
RXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkRhdGFiYXNlIGlzIGNsb3NlZCIgfSwgMCk7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJy
b3IsICJEYXRhYmFzZSBpcyBjbG9zZWQiX3MgfSwgMCk7CiAKICAgICAgICAgICAgIGdldENvdW50
KHJlcXVlc3REYXRhLCByYW5nZSwgV1RGTW92ZShjYWxsYmFjayksIGdyYW50ZWQgPyBTcGFjZUNo
ZWNrUmVzdWx0OjpQYXNzIDogU3BhY2VDaGVja1Jlc3VsdDo6RmFpbCk7CiAgICAgICAgIH0pOwpA
QCAtMTAyMyw3ICsxMDIzLDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6Z2V0Q291bnQoY29u
c3QgSURCUmVxdWVzdERhdGEmIHJlcXVlc3REYXRhLCBjb25zdCBJREJLZXkKIAogICAgIEFTU0VS
VChzcGFjZUNoZWNrUmVzdWx0ID09IFNwYWNlQ2hlY2tSZXN1bHQ6OlBhc3MpOwogICAgIGlmICgh
bV9iYWNraW5nU3RvcmUpCi0gICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFs
aWRTdGF0ZUVycm9yLCAiQmFja2luZyBzdG9yZSBpcyBjbG9zZWQiIH0sIDApOworICAgICAgICBy
ZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3Rv
cmUgaXMgY2xvc2VkIl9zIH0sIDApOwogCiAgICAgdWludDY0X3QgY291bnQgPSAwOwogICAgIGF1
dG8gZXJyb3IgPSBtX2JhY2tpbmdTdG9yZS0+Z2V0Q291bnQocmVxdWVzdERhdGEudHJhbnNhY3Rp
b25JZGVudGlmaWVyKCksIHJlcXVlc3REYXRhLm9iamVjdFN0b3JlSWRlbnRpZmllcigpLCByZXF1
ZXN0RGF0YS5pbmRleElkZW50aWZpZXIoKSwgcmFuZ2UsIGNvdW50KTsKQEAgLTEwNDIsNyArMTA0
Miw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmRlbGV0ZVJlY29yZChjb25zdCBJREJSZXF1
ZXN0RGF0YSYgcmVxdWVzdERhdGEsIGNvbnN0IElECiAKICAgICAgICAgbV9tYW5hZ2VyLT5yZXF1
ZXN0U3BhY2UobV9pZGVudGlmaWVyLm9yaWdpbigpLCAwLCBbdGhpcywgd2Vha1RoaXMgPSBXZWFr
UHRyIHsgKnRoaXMgfSwgcmVxdWVzdERhdGEsIGtleVJhbmdlRGF0YSwgY2FsbGJhY2sgPSBXVEZN
b3ZlKGNhbGxiYWNrKV0oYm9vbCBncmFudGVkKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlmICgh
d2Vha1RoaXMpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52
YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBpcyBjbG9zZWQiIH0pOworICAgICAgICAgICAgICAg
IHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJhc2Ug
aXMgY2xvc2VkIl9zIH0pOwogCiAgICAgICAgICAgICBkZWxldGVSZWNvcmQocmVxdWVzdERhdGEs
IGtleVJhbmdlRGF0YSwgV1RGTW92ZShjYWxsYmFjayksIGdyYW50ZWQgPyBTcGFjZUNoZWNrUmVz
dWx0OjpQYXNzIDogU3BhY2VDaGVja1Jlc3VsdDo6RmFpbCk7CiAgICAgICAgIH0pOwpAQCAtMTA1
MSw3ICsxMDUxLDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6ZGVsZXRlUmVjb3JkKGNvbnN0
IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0YSwgY29uc3QgSUQKIAogICAgIEFTU0VSVChzcGFj
ZUNoZWNrUmVzdWx0ID09IFNwYWNlQ2hlY2tSZXN1bHQ6OlBhc3MpOwogICAgIGlmICghbV9iYWNr
aW5nU3RvcmUpCi0gICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0
ZUVycm9yLCAiQmFja2luZyBzdG9yZSBpcyBjbG9zZWQiIH0pOworICAgICAgICByZXR1cm4gY2Fs
bGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xv
c2VkIl9zIH0pOwogCiAgICAgYXV0byBlcnJvciA9IG1fYmFja2luZ1N0b3JlLT5kZWxldGVSYW5n
ZShyZXF1ZXN0RGF0YS50cmFuc2FjdGlvbklkZW50aWZpZXIoKSwgcmVxdWVzdERhdGEub2JqZWN0
U3RvcmVJZGVudGlmaWVyKCksIGtleVJhbmdlRGF0YSk7CiAKQEAgLTEwNjksNyArMTA2OSw3IEBA
IHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6Om9wZW5DdXJzb3IoY29uc3QgSURCUmVxdWVzdERhdGEm
IHJlcXVlc3REYXRhLCBjb25zdCBJREJDCiAKICAgICAgICAgbV9tYW5hZ2VyLT5yZXF1ZXN0U3Bh
Y2UobV9pZGVudGlmaWVyLm9yaWdpbigpLCAwLCBbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsg
KnRoaXMgfSwgcmVxdWVzdERhdGEsIGluZm8sIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayld
KGJvb2wgZ3JhbnRlZCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAoIXdlYWtUaGlzKQotICAg
ICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9y
LCAiRGF0YWJhc2Ugb3IgdHJhbnNhY3Rpb24gaXMgY2xvc2VkIiB9LCBJREJHZXRSZXN1bHQgeyB9
KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3Rh
dGVFcnJvciwgIkRhdGFiYXNlIG9yIHRyYW5zYWN0aW9uIGlzIGNsb3NlZCJfcyB9LCBJREJHZXRS
ZXN1bHQgeyB9KTsKIAogICAgICAgICAgICAgb3BlbkN1cnNvcihyZXF1ZXN0RGF0YSwgaW5mbywg
V1RGTW92ZShjYWxsYmFjayksIGdyYW50ZWQgPyBTcGFjZUNoZWNrUmVzdWx0OjpQYXNzIDogU3Bh
Y2VDaGVja1Jlc3VsdDo6RmFpbCk7CiAgICAgICAgIH0pOwpAQCAtMTA3OCw3ICsxMDc4LDcgQEAg
dm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6b3BlbkN1cnNvcihjb25zdCBJREJSZXF1ZXN0RGF0YSYg
cmVxdWVzdERhdGEsIGNvbnN0IElEQkMKIAogICAgIEFTU0VSVChzcGFjZUNoZWNrUmVzdWx0ID09
IFNwYWNlQ2hlY2tSZXN1bHQ6OlBhc3MpOwogICAgIGlmICghbV9iYWNraW5nU3RvcmUpCi0gICAg
ICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiQmFja2lu
ZyBzdG9yZSBpcyBjbG9zZWQiIH0sIElEQkdldFJlc3VsdCB7IH0pOworICAgICAgICByZXR1cm4g
Y2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgaXMg
Y2xvc2VkIl9zIH0sIElEQkdldFJlc3VsdCB7IH0pOwogCiAgICAgSURCR2V0UmVzdWx0IHJlc3Vs
dDsKICAgICBhdXRvIGVycm9yID0gbV9iYWNraW5nU3RvcmUtPm9wZW5DdXJzb3IocmVxdWVzdERh
dGEudHJhbnNhY3Rpb25JZGVudGlmaWVyKCksIGluZm8sIHJlc3VsdCk7CkBAIC0xMDk3LDcgKzEw
OTcsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjppdGVyYXRlQ3Vyc29yKGNvbnN0IElEQlJl
cXVlc3REYXRhJiByZXF1ZXN0RGF0YSwgY29uc3QgSQogCiAgICAgICAgIG1fbWFuYWdlci0+cmVx
dWVzdFNwYWNlKG1faWRlbnRpZmllci5vcmlnaW4oKSwgMCwgW3RoaXMsIHdlYWtUaGlzID0gV2Vh
a1B0ciB7ICp0aGlzIH0sIHJlcXVlc3REYXRhLCBkYXRhLCBjYWxsYmFjayA9IFdURk1vdmUoY2Fs
bGJhY2spXShib29sIGdyYW50ZWQpIG11dGFibGUgewogICAgICAgICAgICAgaWYgKCF3ZWFrVGhp
cykKLSAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3Rh
dGVFcnJvciwgIkRhdGFiYXNlIG9yIHRyYW5zYWN0aW9uIGlzIGNsb3NlZCIgfSwgSURCR2V0UmVz
dWx0IHsgfSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52
YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBvciB0cmFuc2FjdGlvbiBpcyBjbG9zZWQiX3MgfSwg
SURCR2V0UmVzdWx0IHsgfSk7CiAKICAgICAgICAgICAgIGl0ZXJhdGVDdXJzb3IocmVxdWVzdERh
dGEsIGRhdGEsIFdURk1vdmUoY2FsbGJhY2spLCBncmFudGVkID8gU3BhY2VDaGVja1Jlc3VsdDo6
UGFzcyA6IFNwYWNlQ2hlY2tSZXN1bHQ6OkZhaWwpOwogICAgICAgICB9KTsKQEAgLTExMDYsNyAr
MTEwNiw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6Oml0ZXJhdGVDdXJzb3IoY29uc3QgSURC
UmVxdWVzdERhdGEmIHJlcXVlc3REYXRhLCBjb25zdCBJCiAKICAgICBBU1NFUlQoc3BhY2VDaGVj
a1Jlc3VsdCA9PSBTcGFjZUNoZWNrUmVzdWx0OjpQYXNzKTsKICAgICBpZiAoIW1fYmFja2luZ1N0
b3JlKQotICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJv
ciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xvc2VkIiB9LCBJREJHZXRSZXN1bHQgeyB9KTsKKyAgICAg
ICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5n
IHN0b3JlIGlzIGNsb3NlZCJfcyB9LCBJREJHZXRSZXN1bHQgeyB9KTsKIAogICAgIElEQkdldFJl
c3VsdCByZXN1bHQ7CiAgICAgYXV0byB0cmFuc2FjdGlvbklkZW50aWZpZXIgPSByZXF1ZXN0RGF0
YS50cmFuc2FjdGlvbklkZW50aWZpZXIoKTsKQEAgLTExMjcsNyArMTEyNyw3IEBAIHZvaWQgVW5p
cXVlSURCRGF0YWJhc2U6OmNvbW1pdFRyYW5zYWN0aW9uKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNh
Y3Rpb24mIHRyYW5zYWN0CiAKICAgICAgICAgbV9tYW5hZ2VyLT5yZXF1ZXN0U3BhY2UobV9pZGVu
dGlmaWVyLm9yaWdpbigpLCAwLCBbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwg
d2Vha1RyYW5zYWN0aW9uID0gV2Vha1B0ciB7IHRyYW5zYWN0aW9uIH0sIGNhbGxiYWNrID0gV1RG
TW92ZShjYWxsYmFjayldKGJvb2wgZ3JhbnRlZCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAo
IXdlYWtUaGlzIHx8ICF3ZWFrVHJhbnNhY3Rpb24pCi0gICAgICAgICAgICAgICAgcmV0dXJuIGNh
bGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBvciB0cmFuc2Fj
dGlvbiBpcyBjbG9zZWQiIH0pOworICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJF
cnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJhc2Ugb3IgdHJhbnNhY3Rpb24gaXMgY2xv
c2VkIl9zIH0pOwogCiAgICAgICAgICAgICBjb21taXRUcmFuc2FjdGlvbigqd2Vha1RyYW5zYWN0
aW9uLCBXVEZNb3ZlKGNhbGxiYWNrKSwgZ3JhbnRlZCA/IFNwYWNlQ2hlY2tSZXN1bHQ6OlBhc3Mg
OiBTcGFjZUNoZWNrUmVzdWx0OjpGYWlsKTsKICAgICAgICAgfSk7CkBAIC0xMTM4LDcgKzExMzgs
NyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpjb21taXRUcmFuc2FjdGlvbihVbmlxdWVJREJE
YXRhYmFzZVRyYW5zYWN0aW9uJiB0cmFuc2FjdAogICAgIEFTU0VSVCh0cmFuc2FjdGlvbi5kYXRh
YmFzZUNvbm5lY3Rpb24oKS5kYXRhYmFzZSgpID09IHRoaXMpOwogCiAgICAgaWYgKCFtX2JhY2tp
bmdTdG9yZSkKLSAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRl
RXJyb3IsICJCYWNraW5nIHN0b3JlIGlzIGNsb3NlZCIgfSk7CisgICAgICAgIHJldHVybiBjYWxs
YmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiQmFja2luZyBzdG9yZSBpcyBjbG9z
ZWQiX3MgfSk7CiAKICAgICBhdXRvIHRha2VuVHJhbnNhY3Rpb24gPSBtX2luUHJvZ3Jlc3NUcmFu
c2FjdGlvbnMudGFrZSh0cmFuc2FjdGlvbi5pbmZvKCkuaWRlbnRpZmllcigpKTsKICAgICBpZiAo
IXRha2VuVHJhbnNhY3Rpb24pIHsKQEAgLTExNjYsNyArMTE2Niw3IEBAIHZvaWQgVW5pcXVlSURC
RGF0YWJhc2U6OmFib3J0VHJhbnNhY3Rpb24oVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbiYg
dHJhbnNhY3RpCiAKICAgICAgICAgbV9tYW5hZ2VyLT5yZXF1ZXN0U3BhY2UobV9pZGVudGlmaWVy
Lm9yaWdpbigpLCAwLCBbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgd2Vha1Ry
YW5zYWN0aW9uID0gV2Vha1B0ciB7IHRyYW5zYWN0aW9uIH0sIGNhbGxiYWNrID0gV1RGTW92ZShj
YWxsYmFjayldKGJvb2wgZ3JhbnRlZCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAoIXdlYWtU
aGlzIHx8ICF3ZWFrVHJhbnNhY3Rpb24pCi0gICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNr
KElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBvciB0cmFuc2FjdGlvbiBp
cyBjbG9zZWQiIH0pOworICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7
IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJhc2Ugb3IgdHJhbnNhY3Rpb24gaXMgY2xvc2VkIl9z
IH0pOwogCiAgICAgICAgICAgICBhYm9ydFRyYW5zYWN0aW9uKCp3ZWFrVHJhbnNhY3Rpb24sIFdU
Rk1vdmUoY2FsbGJhY2spLCBncmFudGVkID8gU3BhY2VDaGVja1Jlc3VsdDo6UGFzcyA6IFNwYWNl
Q2hlY2tSZXN1bHQ6OkZhaWwpOwogICAgICAgICB9KTsKQEAgLTEyMDIsNyArMTIwMiw3IEBAIHZv
aWQgVW5pcXVlSURCRGF0YWJhc2U6OmFib3J0VHJhbnNhY3Rpb24oVW5pcXVlSURCRGF0YWJhc2VU
cmFuc2FjdGlvbiYgdHJhbnNhY3RpCiAKICAgICBJREJFcnJvciBlcnJvcjsKICAgICBpZiAoIW1f
YmFja2luZ1N0b3JlKQotICAgICAgICBlcnJvciA9IElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJy
b3IsICJCYWNraW5nIHN0b3JlIGlzIGNsb3NlZCIgfTsKKyAgICAgICAgZXJyb3IgPSBJREJFcnJv
ciB7IEludmFsaWRTdGF0ZUVycm9yLCAiQmFja2luZyBzdG9yZSBpcyBjbG9zZWQiX3MgfTsKICAg
ICBlbHNlCiAgICAgICAgIGVycm9yID0gbV9iYWNraW5nU3RvcmUtPmFib3J0VHJhbnNhY3Rpb24o
dHJhbnNhY3Rpb25JZGVudGlmaWVyKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkluZGV4SW5mby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCSW5kZXhJbmZvLmNwcAppbmRleCBlNzFkMmViZjIx
YzRhZGZlZjI4YTJiZGFmYTFmZjg0YjNmN2YwMzk4Li43YWJhODMxZDcwMGVhOThmZWIyY2M5YWE0
NGM5NjJjNGI1OTQ0N2I5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9zaGFyZWQvSURCSW5kZXhJbmZvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9zaGFyZWQvSURCSW5kZXhJbmZvLmNwcApAQCAtNjEsNyArNjEsNyBAQCBTdHJp
bmcgSURCSW5kZXhJbmZvOjpsb2dnaW5nU3RyaW5nKGludCBpbmRlbnQpIGNvbnN0CiB7CiAgICAg
U3RyaW5nIGluZGVudFN0cmluZzsKICAgICBmb3IgKGludCBpID0gMDsgaSA8IGluZGVudDsgKytp
KQotICAgICAgICBpbmRlbnRTdHJpbmcuYXBwZW5kKCIgIik7CisgICAgICAgIGluZGVudFN0cmlu
Zy5hcHBlbmQoJyAnKTsKICAgICByZXR1cm4gbWFrZVN0cmluZyhpbmRlbnRTdHJpbmcsICJJbmRl
eDogIiwgbV9uYW1lLCAiICgiLCBtX2lkZW50aWZpZXIsICIpIGtleVBhdGg6ICIsIFdlYkNvcmU6
OmxvZ2dpbmdTdHJpbmcobV9rZXlQYXRoKSwgJ1xuJyk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuY3Bw
CmluZGV4IGI4MjVlYzgwMDUxNDgwMjhlMmIwN2IxOWRjNzgzOTJhNDNhOGNiYTUuLjMzMmY0NjI2
YmQzMmU4MzFhZDkwOGE0NmFjNGRjMTQ2ZTZlY2NhODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0LmNwcApA
QCAtMTE4LDE0ICsxMTgsMTQgQEAgTWVkaWFDb250cm9sc0hvc3Q6On5NZWRpYUNvbnRyb2xzSG9z
dCgpCiBTdHJpbmcgTWVkaWFDb250cm9sc0hvc3Q6OmxheW91dFRyYWl0c0NsYXNzTmFtZSgpIGNv
bnN0CiB7CiAjaWYgZGVmaW5lZChNRURJQV9DT05UUk9MU19IT1NUX0xBWU9VVF9UUkFJVFNfQ0xB
U1NfTkFNRV9PVkVSUklERSkKLSAgICByZXR1cm4gTUVESUFfQ09OVFJPTFNfSE9TVF9MQVlPVVRf
VFJBSVRTX0NMQVNTX05BTUVfT1ZFUlJJREU7CisgICAgcmV0dXJuIE1FRElBX0NPTlRST0xTX0hP
U1RfTEFZT1VUX1RSQUlUU19DTEFTU19OQU1FX09WRVJSSURFIiJfczsKICNlbHNlCiAjaWYgUExB
VEZPUk0oTUFDKSB8fCBQTEFURk9STShNQUNDQVRBTFlTVCkKLSAgICByZXR1cm4gIk1hY09TTGF5
b3V0VHJhaXRzIjsKKyAgICByZXR1cm4gIk1hY09TTGF5b3V0VHJhaXRzIl9zOwogI2VsaWYgUExB
VEZPUk0oSU9TKQotICAgIHJldHVybiAiSU9TTGF5b3V0VHJhaXRzIjsKKyAgICByZXR1cm4gIklP
U0xheW91dFRyYWl0cyJfczsKICNlbGlmIFBMQVRGT1JNKFdBVENIT1MpCi0gICAgcmV0dXJuICJX
YXRjaE9TTGF5b3V0VHJhaXRzIjsKKyAgICByZXR1cm4gIldhdGNoT1NMYXlvdXRUcmFpdHMiX3M7
CiAjZWxzZQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBudWxsU3RyaW5n
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVk
aWFSZWNvcmRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVk
aWFSZWNvcmRlci5jcHAKaW5kZXggYTkxZTY2OTAwMDQ4MzE2YTlhOTEzY2EwZDUxMjhlYWExNTFk
OWNjZS4uZmY5NDk5OWMyMDJhMzIwNTRjNjE2YmYzNjZjNjczYWViNDI3ZjY1MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVy
LmNwcApAQCAtNjYsNyArNjYsNyBAQCBFeGNlcHRpb25PcjxSZWY8TWVkaWFSZWNvcmRlcj4+IE1l
ZGlhUmVjb3JkZXI6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIFJlZjxNZQogICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKIAogICAgIGlmICghaXNUeXBl
U3VwcG9ydGVkKGRvY3VtZW50LCBvcHRpb25zLm1pbWVUeXBlKSkKLSAgICAgICAgcmV0dXJuIEV4
Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yLCAibWltZVR5cGUgaXMgbm90IHN1cHBvcnRlZCIg
fTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yLCAibWltZVR5
cGUgaXMgbm90IHN1cHBvcnRlZCJfcyB9OwogCiAgICAgYXV0byByZWNvcmRlciA9IGFkb3B0UmVm
KCpuZXcgTWVkaWFSZWNvcmRlcihkb2N1bWVudCwgV1RGTW92ZShzdHJlYW0pLCBXVEZNb3ZlKG9w
dGlvbnMpKSk7CiAgICAgcmVjb3JkZXItPnN1c3BlbmRJZk5lZWRlZCgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcAppbmRleCBhNTkw
MzdhNDA1ODYzMThmMjE2YTZlYTAxOWRiMjRhOWIwMzk3MjQ4Li44Y2I2ZDVjZmMzOGQ2ZWY4MGY3
ZTM5NDFmYjk1OGEzNGQ1MzVmY2M4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcApAQCAtNjUwLDcgKzY1MCw3IEBAIHN0YXRpYyBD
b250ZW50VHlwZSBhZGRWUDlGdWxsUmFuZ2VWaWRlb0ZsYWdUb0NvbnRlbnRUeXBlKGNvbnN0IENv
bnRlbnRUeXBlJiB0eXBlCiAgICAgICAgIGlmIChwb3NpdGlvbiA9PSBub3RGb3VuZCkKICAgICAg
ICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIHJhd1R5cGUuaW5zZXJ0KCIuMDAiLCBwb3NpdGlv
biArIGNvZGVjLmxlbmd0aCgpKTsKKyAgICAgICAgcmF3VHlwZS5pbnNlcnQoIi4wMCJfcywgcG9z
aXRpb24gKyBjb2RlYy5sZW5ndGgoKSk7CiAgICAgICAgIHJldHVybiBDb250ZW50VHlwZShyYXdU
eXBlKTsKICAgICB9CiAgICAgcmV0dXJuIHR5cGU7CkBAIC04OTUsNyArODk1LDcgQEAgYm9vbCBN
ZWRpYVNvdXJjZTo6aXNUeXBlU3VwcG9ydGVkKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRl
eHQsIGNvbnN0IFN0cmluZyYKICAgICBpZiAoY29udGV4dC5pc0RvY3VtZW50KCkgJiYgZG93bmNh
c3Q8RG9jdW1lbnQ+KGNvbnRleHQpLnF1aXJrcygpLm5lZWRzVlA5RnVsbFJhbmdlRmxhZ1F1aXJr
KCkpCiAgICAgICAgIGNvbnRlbnRUeXBlID0gYWRkVlA5RnVsbFJhbmdlVmlkZW9GbGFnVG9Db250
ZW50VHlwZShjb250ZW50VHlwZSk7CiAKLSAgICBTdHJpbmcgY29kZWNzID0gY29udGVudFR5cGUu
cGFyYW1ldGVyKCJjb2RlY3MiKTsKKyAgICBTdHJpbmcgY29kZWNzID0gY29udGVudFR5cGUucGFy
YW1ldGVyKCJjb2RlY3MiX3MpOwogCiAgICAgLy8gMi4gSWYgdHlwZSBkb2VzIG5vdCBjb250YWlu
IGEgdmFsaWQgTUlNRSB0eXBlIHN0cmluZywgdGhlbiByZXR1cm4gZmFsc2UuCiAgICAgaWYgKGNv
bnRlbnRUeXBlLmNvbnRhaW5lclR5cGUoKS5pc0VtcHR5KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhVHJhY2tDb25zdHJhaW50cy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhVHJhY2tDb25zdHJhaW50cy5j
cHAKaW5kZXggMzExMzg0N2RiNzU0ODQ3ZDYxNjJmYTJkNjFlNjczNGE2YTg4ODViMy4uMmY4ZDhi
ZDI3ZDczNTU0NmJhODRiNjE4MDhhNmNkYWIzZjMyOGUxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVRyYWNrQ29uc3RyYWludHMuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFUcmFja0NvbnN0cmFpbnRz
LmNwcApAQCAtMzMsNyArMzMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGVudW0gY2xhc3Mg
Q29uc3RyYWludFNldFR5cGUgeyBNYW5kYXRvcnksIEFkdmFuY2VkIH07CiAKLXN0YXRpYyB2b2lk
IHNldChNZWRpYVRyYWNrQ29uc3RyYWludFNldE1hcCYgbWFwLCBDb25zdHJhaW50U2V0VHlwZSBz
ZXRUeXBlLCBjb25zdCBjaGFyKiB0eXBlQXNTdHJpbmcsIE1lZGlhQ29uc3RyYWludFR5cGUgdHlw
ZSwgY29uc3QgQ29uc3RyYWluTG9uZyYgdmFsdWUpCitzdGF0aWMgdm9pZCBzZXQoTWVkaWFUcmFj
a0NvbnN0cmFpbnRTZXRNYXAmIG1hcCwgQ29uc3RyYWludFNldFR5cGUgc2V0VHlwZSwgQVNDSUlM
aXRlcmFsIHR5cGVBc1N0cmluZywgTWVkaWFDb25zdHJhaW50VHlwZSB0eXBlLCBjb25zdCBDb25z
dHJhaW5Mb25nJiB2YWx1ZSkKIHsKICAgICBJbnRDb25zdHJhaW50IGNvbnN0cmFpbnQodHlwZUFz
U3RyaW5nLCB0eXBlKTsKICAgICBXVEY6OnN3aXRjaE9uKHZhbHVlLApAQCAtNTcsNyArNTcsNyBA
QCBzdGF0aWMgdm9pZCBzZXQoTWVkaWFUcmFja0NvbnN0cmFpbnRTZXRNYXAmIG1hcCwgQ29uc3Ry
YWludFNldFR5cGUgc2V0VHlwZSwgY29ucwogICAgIG1hcC5zZXQodHlwZSwgV1RGTW92ZShjb25z
dHJhaW50KSk7CiB9CiAKLXN0YXRpYyB2b2lkIHNldChNZWRpYVRyYWNrQ29uc3RyYWludFNldE1h
cCYgbWFwLCBDb25zdHJhaW50U2V0VHlwZSBzZXRUeXBlLCBjb25zdCBjaGFyKiB0eXBlQXNTdHJp
bmcsIE1lZGlhQ29uc3RyYWludFR5cGUgdHlwZSwgY29uc3QgQ29uc3RyYWluRG91YmxlJiB2YWx1
ZSkKK3N0YXRpYyB2b2lkIHNldChNZWRpYVRyYWNrQ29uc3RyYWludFNldE1hcCYgbWFwLCBDb25z
dHJhaW50U2V0VHlwZSBzZXRUeXBlLCBBU0NJSUxpdGVyYWwgdHlwZUFzU3RyaW5nLCBNZWRpYUNv
bnN0cmFpbnRUeXBlIHR5cGUsIGNvbnN0IENvbnN0cmFpbkRvdWJsZSYgdmFsdWUpCiB7CiAgICAg
RG91YmxlQ29uc3RyYWludCBjb25zdHJhaW50KHR5cGVBc1N0cmluZywgdHlwZSk7CiAgICAgV1RG
Ojpzd2l0Y2hPbih2YWx1ZSwKQEAgLTgxLDcgKzgxLDcgQEAgc3RhdGljIHZvaWQgc2V0KE1lZGlh
VHJhY2tDb25zdHJhaW50U2V0TWFwJiBtYXAsIENvbnN0cmFpbnRTZXRUeXBlIHNldFR5cGUsIGNv
bnMKICAgICBtYXAuc2V0KHR5cGUsIFdURk1vdmUoY29uc3RyYWludCkpOwogfQogCi1zdGF0aWMg
dm9pZCBzZXQoTWVkaWFUcmFja0NvbnN0cmFpbnRTZXRNYXAmIG1hcCwgQ29uc3RyYWludFNldFR5
cGUgc2V0VHlwZSwgY29uc3QgY2hhciogdHlwZUFzU3RyaW5nLCBNZWRpYUNvbnN0cmFpbnRUeXBl
IHR5cGUsIGNvbnN0IENvbnN0cmFpbkJvb2xlYW4mIHZhbHVlKQorc3RhdGljIHZvaWQgc2V0KE1l
ZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwJiBtYXAsIENvbnN0cmFpbnRTZXRUeXBlIHNldFR5cGUs
IEFTQ0lJTGl0ZXJhbCB0eXBlQXNTdHJpbmcsIE1lZGlhQ29uc3RyYWludFR5cGUgdHlwZSwgY29u
c3QgQ29uc3RyYWluQm9vbGVhbiYgdmFsdWUpCiB7CiAgICAgQm9vbGVhbkNvbnN0cmFpbnQgY29u
c3RyYWludCh0eXBlQXNTdHJpbmcsIHR5cGUpOwogICAgIFdURjo6c3dpdGNoT24odmFsdWUsCkBA
IC0xMDEsNyArMTAxLDcgQEAgc3RhdGljIHZvaWQgc2V0KE1lZGlhVHJhY2tDb25zdHJhaW50U2V0
TWFwJiBtYXAsIENvbnN0cmFpbnRTZXRUeXBlIHNldFR5cGUsIGNvbnMKICAgICBtYXAuc2V0KHR5
cGUsIFdURk1vdmUoY29uc3RyYWludCkpOwogfQogCi1zdGF0aWMgdm9pZCBzZXQoTWVkaWFUcmFj
a0NvbnN0cmFpbnRTZXRNYXAmIG1hcCwgQ29uc3RyYWludFNldFR5cGUgc2V0VHlwZSwgY29uc3Qg
Y2hhciogdHlwZUFzU3RyaW5nLCBNZWRpYUNvbnN0cmFpbnRUeXBlIHR5cGUsIGNvbnN0IENvbnN0
cmFpbkRPTVN0cmluZyYgdmFsdWUpCitzdGF0aWMgdm9pZCBzZXQoTWVkaWFUcmFja0NvbnN0cmFp
bnRTZXRNYXAmIG1hcCwgQ29uc3RyYWludFNldFR5cGUgc2V0VHlwZSwgQVNDSUlMaXRlcmFsIHR5
cGVBc1N0cmluZywgTWVkaWFDb25zdHJhaW50VHlwZSB0eXBlLCBjb25zdCBDb25zdHJhaW5ET01T
dHJpbmcmIHZhbHVlKQogewogICAgIFN0cmluZ0NvbnN0cmFpbnQgY29uc3RyYWludCh0eXBlQXNT
dHJpbmcsIHR5cGUpOwogICAgIFdURjo6c3dpdGNoT24odmFsdWUsCkBAIC0xNDgsNyArMTQ4LDcg
QEAgc3RhdGljIHZvaWQgc2V0KE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwJiBtYXAsIENvbnN0
cmFpbnRTZXRUeXBlIHNldFR5cGUsIGNvbnMKICAgICBtYXAuc2V0KHR5cGUsIFdURk1vdmUoY29u
c3RyYWludCkpOwogfQogCi10ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdGF0aWMgaW5saW5lIHZvaWQg
c2V0KE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwJiBtYXAsIENvbnN0cmFpbnRTZXRUeXBlIHNl
dFR5cGUsIGNvbnN0IGNoYXIqIHR5cGVBc1N0cmluZywgTWVkaWFDb25zdHJhaW50VHlwZSB0eXBl
LCBjb25zdCBzdGQ6Om9wdGlvbmFsPFQ+JiB2YWx1ZSkKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0
YXRpYyBpbmxpbmUgdm9pZCBzZXQoTWVkaWFUcmFja0NvbnN0cmFpbnRTZXRNYXAmIG1hcCwgQ29u
c3RyYWludFNldFR5cGUgc2V0VHlwZSwgQVNDSUlMaXRlcmFsIHR5cGVBc1N0cmluZywgTWVkaWFD
b25zdHJhaW50VHlwZSB0eXBlLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFQ+JiB2YWx1ZSkKIHsKICAg
ICBpZiAoIXZhbHVlKQogICAgICAgICByZXR1cm47CkBAIC0xNTgsMjEgKzE1OCwyMSBAQCB0ZW1w
bGF0ZTx0eXBlbmFtZSBUPiBzdGF0aWMgaW5saW5lIHZvaWQgc2V0KE1lZGlhVHJhY2tDb25zdHJh
aW50U2V0TWFwJiBtYXAsIENvbgogc3RhdGljIE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwIGNv
bnZlcnRUb0ludGVybmFsRm9ybShDb25zdHJhaW50U2V0VHlwZSBzZXRUeXBlLCBjb25zdCBNZWRp
YVRyYWNrQ29uc3RyYWludFNldCYgY29uc3RyYWludFNldCkKIHsKICAgICBNZWRpYVRyYWNrQ29u
c3RyYWludFNldE1hcCByZXN1bHQ7Ci0gICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgIndpZHRoIiwg
TWVkaWFDb25zdHJhaW50VHlwZTo6V2lkdGgsIGNvbnN0cmFpbnRTZXQud2lkdGgpOwotICAgIHNl
dChyZXN1bHQsIHNldFR5cGUsICJoZWlnaHQiLCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpIZWlnaHQs
IGNvbnN0cmFpbnRTZXQuaGVpZ2h0KTsKLSAgICBzZXQocmVzdWx0LCBzZXRUeXBlLCAiYXNwZWN0
UmF0aW8iLCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpBc3BlY3RSYXRpbywgY29uc3RyYWludFNldC5h
c3BlY3RSYXRpbyk7Ci0gICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgImZyYW1lUmF0ZSIsIE1lZGlh
Q29uc3RyYWludFR5cGU6OkZyYW1lUmF0ZSwgY29uc3RyYWludFNldC5mcmFtZVJhdGUpOwotICAg
IHNldChyZXN1bHQsIHNldFR5cGUsICJmYWNpbmdNb2RlIiwgTWVkaWFDb25zdHJhaW50VHlwZTo6
RmFjaW5nTW9kZSwgY29uc3RyYWludFNldC5mYWNpbmdNb2RlKTsKLSAgICBzZXQocmVzdWx0LCBz
ZXRUeXBlLCAidm9sdW1lIiwgTWVkaWFDb25zdHJhaW50VHlwZTo6Vm9sdW1lLCBjb25zdHJhaW50
U2V0LnZvbHVtZSk7Ci0gICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgInNhbXBsZVJhdGUiLCBNZWRp
YUNvbnN0cmFpbnRUeXBlOjpTYW1wbGVSYXRlLCBjb25zdHJhaW50U2V0LnNhbXBsZVJhdGUpOwot
ICAgIHNldChyZXN1bHQsIHNldFR5cGUsICJzYW1wbGVTaXplIiwgTWVkaWFDb25zdHJhaW50VHlw
ZTo6U2FtcGxlU2l6ZSwgY29uc3RyYWludFNldC5zYW1wbGVTaXplKTsKLSAgICBzZXQocmVzdWx0
LCBzZXRUeXBlLCAiZWNob0NhbmNlbGxhdGlvbiIsIE1lZGlhQ29uc3RyYWludFR5cGU6OkVjaG9D
YW5jZWxsYXRpb24sIGNvbnN0cmFpbnRTZXQuZWNob0NhbmNlbGxhdGlvbik7CisgICAgc2V0KHJl
c3VsdCwgc2V0VHlwZSwgIndpZHRoIl9zLCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpXaWR0aCwgY29u
c3RyYWludFNldC53aWR0aCk7CisgICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgImhlaWdodCJfcywg
TWVkaWFDb25zdHJhaW50VHlwZTo6SGVpZ2h0LCBjb25zdHJhaW50U2V0LmhlaWdodCk7CisgICAg
c2V0KHJlc3VsdCwgc2V0VHlwZSwgImFzcGVjdFJhdGlvIl9zLCBNZWRpYUNvbnN0cmFpbnRUeXBl
OjpBc3BlY3RSYXRpbywgY29uc3RyYWludFNldC5hc3BlY3RSYXRpbyk7CisgICAgc2V0KHJlc3Vs
dCwgc2V0VHlwZSwgImZyYW1lUmF0ZSJfcywgTWVkaWFDb25zdHJhaW50VHlwZTo6RnJhbWVSYXRl
LCBjb25zdHJhaW50U2V0LmZyYW1lUmF0ZSk7CisgICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgImZh
Y2luZ01vZGUiX3MsIE1lZGlhQ29uc3RyYWludFR5cGU6OkZhY2luZ01vZGUsIGNvbnN0cmFpbnRT
ZXQuZmFjaW5nTW9kZSk7CisgICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgInZvbHVtZSJfcywgTWVk
aWFDb25zdHJhaW50VHlwZTo6Vm9sdW1lLCBjb25zdHJhaW50U2V0LnZvbHVtZSk7CisgICAgc2V0
KHJlc3VsdCwgc2V0VHlwZSwgInNhbXBsZVJhdGUiX3MsIE1lZGlhQ29uc3RyYWludFR5cGU6OlNh
bXBsZVJhdGUsIGNvbnN0cmFpbnRTZXQuc2FtcGxlUmF0ZSk7CisgICAgc2V0KHJlc3VsdCwgc2V0
VHlwZSwgInNhbXBsZVNpemUiX3MsIE1lZGlhQ29uc3RyYWludFR5cGU6OlNhbXBsZVNpemUsIGNv
bnN0cmFpbnRTZXQuc2FtcGxlU2l6ZSk7CisgICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgImVjaG9D
YW5jZWxsYXRpb24iX3MsIE1lZGlhQ29uc3RyYWludFR5cGU6OkVjaG9DYW5jZWxsYXRpb24sIGNv
bnN0cmFpbnRTZXQuZWNob0NhbmNlbGxhdGlvbik7CiAgICAgLy8gRklYTUU6IGFkZCBsYXRlbmN5
CiAgICAgLy8gRklYTUU6IGFkZCBjaGFubmVsQ291bnQKLSAgICBzZXQocmVzdWx0LCBzZXRUeXBl
LCAiZGV2aWNlSWQiLCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpEZXZpY2VJZCwgY29uc3RyYWludFNl
dC5kZXZpY2VJZCk7Ci0gICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgImdyb3VwSWQiLCBNZWRpYUNv
bnN0cmFpbnRUeXBlOjpHcm91cElkLCBjb25zdHJhaW50U2V0Lmdyb3VwSWQpOwotICAgIHNldChy
ZXN1bHQsIHNldFR5cGUsICJkaXNwbGF5U3VyZmFjZSIsIE1lZGlhQ29uc3RyYWludFR5cGU6OkRp
c3BsYXlTdXJmYWNlLCBjb25zdHJhaW50U2V0LmRpc3BsYXlTdXJmYWNlKTsKLSAgICBzZXQocmVz
dWx0LCBzZXRUeXBlLCAibG9naWNhbFN1cmZhY2UiLCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpMb2dp
Y2FsU3VyZmFjZSwgY29uc3RyYWludFNldC5sb2dpY2FsU3VyZmFjZSk7CisgICAgc2V0KHJlc3Vs
dCwgc2V0VHlwZSwgImRldmljZUlkIl9zLCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpEZXZpY2VJZCwg
Y29uc3RyYWludFNldC5kZXZpY2VJZCk7CisgICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgImdyb3Vw
SWQiX3MsIE1lZGlhQ29uc3RyYWludFR5cGU6Okdyb3VwSWQsIGNvbnN0cmFpbnRTZXQuZ3JvdXBJ
ZCk7CisgICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgImRpc3BsYXlTdXJmYWNlIl9zLCBNZWRpYUNv
bnN0cmFpbnRUeXBlOjpEaXNwbGF5U3VyZmFjZSwgY29uc3RyYWludFNldC5kaXNwbGF5U3VyZmFj
ZSk7CisgICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgImxvZ2ljYWxTdXJmYWNlIl9zLCBNZWRpYUNv
bnN0cmFpbnRUeXBlOjpMb2dpY2FsU3VyZmFjZSwgY29uc3RyYWludFNldC5sb2dpY2FsU3VyZmFj
ZSk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENJY2VDYW5kaWRhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENJY2VDYW5kaWRhdGUuY3BwCmluZGV4IDlmNzA2ZGY2ZGY2
NWU3Zjk1ODE1NzUxNDAyMjQ4ZTA4YzdhMjNmYTAuLmJiN2VmNzQxMjYxOWMwNTlkY2VjNzRkNjhl
ZTJkYmUwYzkzYWJjMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDSWNlQ2FuZGlkYXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ0ljZUNhbmRpZGF0ZS5jcHAKQEAgLTU0LDcgKzU0LDcgQEAgUlRDSWNlQ2Fu
ZGlkYXRlOjpSVENJY2VDYW5kaWRhdGUoY29uc3QgU3RyaW5nJiBjYW5kaWRhdGUsIGNvbnN0IFN0
cmluZyYgc2RwTWlkLAogRXhjZXB0aW9uT3I8UmVmPFJUQ0ljZUNhbmRpZGF0ZT4+IFJUQ0ljZUNh
bmRpZGF0ZTo6Y3JlYXRlKGNvbnN0IFJUQ0ljZUNhbmRpZGF0ZUluaXQmIGRpY3Rpb25hcnkpCiB7
CiAgICAgaWYgKGRpY3Rpb25hcnkuc2RwTWlkLmlzTnVsbCgpICYmICFkaWN0aW9uYXJ5LnNkcE1M
aW5lSW5kZXgpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJDYW5kaWRh
dGUgbXVzdCBub3QgaGF2ZSBib3RoIG51bGwgc2RwTWlkIGFuZCBzZHBNTGluZUluZGV4IiB9Owor
ICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiQ2FuZGlkYXRlIG11c3Qgbm90
IGhhdmUgYm90aCBudWxsIHNkcE1pZCBhbmQgc2RwTUxpbmVJbmRleCJfcyB9OwogCiAgICAgYXV0
byBmaWVsZHMgPSB2YWx1ZU9yRGVmYXVsdChwYXJzZUljZUNhbmRpZGF0ZVNEUChkaWN0aW9uYXJ5
LmNhbmRpZGF0ZSkpOwogICAgIGZpZWxkcy51c2VybmFtZUZyYWdtZW50ID0gZGljdGlvbmFyeS51
c2VybmFtZUZyYWdtZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcAppbmRleCA5MGRlNjM5OTM0ZWQ2MWM1YzBi
MTAxMmMwYWE1Mzk3ZGQwZDhiMzJhLi40MTU2NmE1NTVmNjJlZTUwOGUwZGQxYTFkZDcwODg0ZWY3
NTBmNWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1BlZXJDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcApAQCAtMjczLDcgKzI3Myw3IEBAIHZvaWQgUlRDUGVl
ckNvbm5lY3Rpb246OnNldExvY2FsRGVzY3JpcHRpb24oc3RkOjpvcHRpb25hbDxSVENMb2NhbFNl
c3Npb25EZXNjcmlwCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBBTFdBWVNfTE9HKExP
R0lERU5USUZJRVIsICJTZXR0aW5nIGxvY2FsIGRlc2NyaXB0aW9uIHRvOlxuIiwgbG9jYWxEZXNj
cmlwdGlvbiA/IGxvY2FsRGVzY3JpcHRpb24tPnNkcCA6ICInJyIpOworICAgIEFMV0FZU19MT0co
TE9HSURFTlRJRklFUiwgIlNldHRpbmcgbG9jYWwgZGVzY3JpcHRpb24gdG86XG4iLCBsb2NhbERl
c2NyaXB0aW9uID8gbG9jYWxEZXNjcmlwdGlvbi0+c2RwIDogIicnIl9zKTsKICAgICBjaGFpbk9w
ZXJhdGlvbihXVEZNb3ZlKHByb21pc2UpLCBbdGhpcywgbG9jYWxEZXNjcmlwdGlvbiA9IFdURk1v
dmUobG9jYWxEZXNjcmlwdGlvbildKGF1dG8mJiBwcm9taXNlKSBtdXRhYmxlIHsKICAgICAgICAg
YXV0byB0eXBlID0gdHlwZUZvclNldExvY2FsRGVzY3JpcHRpb24obG9jYWxEZXNjcmlwdGlvbiwg
bV9zaWduYWxpbmdTdGF0ZSk7CiAgICAgICAgIFN0cmluZyBzZHA7CkBAIC0zNDQsNyArMzQ0LDcg
QEAgdm9pZCBSVENQZWVyQ29ubmVjdGlvbjo6YWRkSWNlQ2FuZGlkYXRlKENhbmRpZGF0ZSYmIHJ0
Y0NhbmRpZGF0ZSwgUmVmPERlZmVycmVkUHIKICAgICAgICAgfSk7CiAgICAgfQogCi0gICAgQUxX
QVlTX0xPRyhMT0dJREVOVElGSUVSLCAiUmVjZWl2ZWQgaWNlIGNhbmRpZGF0ZTpcbiIsIGNhbmRp
ZGF0ZSA/IGNhbmRpZGF0ZS0+Y2FuZGlkYXRlKCkgOiAibnVsbCIpOworICAgIEFMV0FZU19MT0co
TE9HSURFTlRJRklFUiwgIlJlY2VpdmVkIGljZSBjYW5kaWRhdGU6XG4iLCBjYW5kaWRhdGUgPyBj
YW5kaWRhdGUtPmNhbmRpZGF0ZSgpIDogIm51bGwiX3MpOwogCiAgICAgaWYgKGV4Y2VwdGlvbikg
ewogICAgICAgICBwcm9taXNlLT5yZWplY3QoKmV4Y2VwdGlvbik7CkBAIC0zNzksMTMgKzM3OSwx
MyBAQCBzdGQ6Om9wdGlvbmFsPGJvb2w+IFJUQ1BlZXJDb25uZWN0aW9uOjpjYW5Ucmlja2xlSWNl
Q2FuZGlkYXRlcygpIGNvbnN0CiBFeGNlcHRpb25PcjxWZWN0b3I8TWVkaWFFbmRwb2ludENvbmZp
Z3VyYXRpb246OkljZVNlcnZlckluZm8+PiBSVENQZWVyQ29ubmVjdGlvbjo6aWNlU2VydmVyc0Zy
b21Db25maWd1cmF0aW9uKFJUQ0NvbmZpZ3VyYXRpb24mIG5ld0NvbmZpZ3VyYXRpb24sIGNvbnN0
IFJUQ0NvbmZpZ3VyYXRpb24qIGV4aXN0aW5nQ29uZmlndXJhdGlvbiwgYm9vbCBpc0xvY2FsRGVz
Y3JpcHRpb25TZXQpCiB7CiAgICAgaWYgKGV4aXN0aW5nQ29uZmlndXJhdGlvbiAmJiBuZXdDb25m
aWd1cmF0aW9uLmJ1bmRsZVBvbGljeSAhPSBleGlzdGluZ0NvbmZpZ3VyYXRpb24tPmJ1bmRsZVBv
bGljeSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRNb2RpZmljYXRpb25FcnJv
ciwgIkJ1bmRsZVBvbGljeSBkb2VzIG5vdCBtYXRjaCBleGlzdGluZyBwb2xpY3kiIH07CisgICAg
ICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3IsICJCdW5kbGVQ
b2xpY3kgZG9lcyBub3QgbWF0Y2ggZXhpc3RpbmcgcG9saWN5Il9zIH07CiAKICAgICBpZiAoZXhp
c3RpbmdDb25maWd1cmF0aW9uICYmIG5ld0NvbmZpZ3VyYXRpb24ucnRjcE11eFBvbGljeSAhPSBl
eGlzdGluZ0NvbmZpZ3VyYXRpb24tPnJ0Y3BNdXhQb2xpY3kpCi0gICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3IsICJSVENQTXV4UG9saWN5IGRvZXMgbm90
IG1hdGNoIGV4aXN0aW5nIHBvbGljeSIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElu
dmFsaWRNb2RpZmljYXRpb25FcnJvciwgIlJUQ1BNdXhQb2xpY3kgZG9lcyBub3QgbWF0Y2ggZXhp
c3RpbmcgcG9saWN5Il9zIH07CiAKICAgICBpZiAoZXhpc3RpbmdDb25maWd1cmF0aW9uICYmIG5l
d0NvbmZpZ3VyYXRpb24uaWNlQ2FuZGlkYXRlUG9vbFNpemUgIT0gZXhpc3RpbmdDb25maWd1cmF0
aW9uLT5pY2VDYW5kaWRhdGVQb29sU2l6ZSAmJiBpc0xvY2FsRGVzY3JpcHRpb25TZXQpCi0gICAg
ICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3IsICJJY2VUcmFu
c3BvcnRQb2xpY3kgcG9vbCBzaXplIGRvZXMgbm90IG1hdGNoIGV4aXN0aW5nIHBvb2wgc2l6ZSIg
fTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRNb2RpZmljYXRpb25FcnJvciwg
IkljZVRyYW5zcG9ydFBvbGljeSBwb29sIHNpemUgZG9lcyBub3QgbWF0Y2ggZXhpc3RpbmcgcG9v
bCBzaXplIl9zIH07CiAKICAgICBWZWN0b3I8TWVkaWFFbmRwb2ludENvbmZpZ3VyYXRpb246Oklj
ZVNlcnZlckluZm8+IHNlcnZlcnM7CiAgICAgaWYgKG5ld0NvbmZpZ3VyYXRpb24uaWNlU2VydmVy
cykgewpAQCAtNDE0LDE4ICs0MTQsMTggQEAgRXhjZXB0aW9uT3I8VmVjdG9yPE1lZGlhRW5kcG9p
bnRDb25maWd1cmF0aW9uOjpJY2VTZXJ2ZXJJbmZvPj4gUlRDUGVlckNvbm5lY3Rpb24KIAogICAg
ICAgICAgICAgZm9yIChhdXRvJiBzZXJ2ZXJVUkwgOiBzZXJ2ZXJVUkxzKSB7CiAgICAgICAgICAg
ICAgICAgaWYgKHNlcnZlclVSTC5pc051bGwoKSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIkJhZCBJQ0Ugc2VydmVyIFVSTCIgfTsKKyAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIkJhZCBJQ0Ugc2VydmVy
IFVSTCJfcyB9OwogICAgICAgICAgICAgICAgIGlmIChzZXJ2ZXJVUkwucHJvdG9jb2xJcygidHVy
biIpIHx8IHNlcnZlclVSTC5wcm90b2NvbElzKCJ0dXJucyIpKSB7CiAgICAgICAgICAgICAgICAg
ICAgIGlmIChzZXJ2ZXIuY3JlZGVudGlhbC5pc051bGwoKSB8fCBzZXJ2ZXIudXNlcm5hbWUuaXNO
dWxsKCkpCi0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxp
ZEFjY2Vzc0Vycm9yLCAiVFVSTi9UVVJOUyBzZXJ2ZXIgcmVxdWlyZXMgYm90aCB1c2VybmFtZSBh
bmQgY3JlZGVudGlhbCIgfTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBFeGNlcHRp
b24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJUVVJOL1RVUk5TIHNlcnZlciByZXF1aXJlcyBib3Ro
IHVzZXJuYW1lIGFuZCBjcmVkZW50aWFsIl9zIH07CiAgICAgICAgICAgICAgICAgICAgIC8vIGh0
dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM4NDg5I3NlY3Rpb24tMTQuMwogICAgICAgICAg
ICAgICAgICAgICBpZiAoc2VydmVyLmNyZWRlbnRpYWwubGVuZ3RoKCkgPiA2NCB8fCBzZXJ2ZXIu
dXNlcm5hbWUubGVuZ3RoKCkgPiA2NCkgewogICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Rl
eHByIHNpemVfdCBNYXhUdXJuVXNlcm5hbWVMZW5ndGggPSA1MDk7CiAgICAgICAgICAgICAgICAg
ICAgICAgICBpZiAoc2VydmVyLmNyZWRlbnRpYWwudXRmOCgpLmxlbmd0aCgpID4gTWF4VHVyblVz
ZXJuYW1lTGVuZ3RoIHx8IHNlcnZlci51c2VybmFtZS51dGY4KCkubGVuZ3RoKCkgPiBNYXhUdXJu
VXNlcm5hbWVMZW5ndGgpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEV4Y2Vw
dGlvbiB7IFR5cGVFcnJvciwgIlRVUk4vVFVSTlMgdXNlcm5hbWUgYW5kL29yIGNyZWRlbnRpYWwg
YXJlIHRvbyBsb25nIiB9OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBUeXBlRXJyb3IsICJUVVJOL1RVUk5TIHVzZXJuYW1lIGFuZC9vciBjcmVkZW50aWFs
IGFyZSB0b28gbG9uZyJfcyB9OwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICAgfSBlbHNlIGlmICghc2VydmVyVVJMLnByb3RvY29sSXMoInN0dW4iKSkKLSAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yLCAiSUNFIHNlcnZl
ciBwcm90b2NvbCBub3Qgc3VwcG9ydGVkIiB9OworICAgICAgICAgICAgICAgICAgICByZXR1cm4g
RXhjZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IsICJJQ0Ugc2VydmVyIHByb3RvY29sIG5vdCBz
dXBwb3J0ZWQiX3MgfTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGlmIChzZXJ2ZXJVUkxz
LnNpemUoKSkKICAgICAgICAgICAgICAgICBzZXJ2ZXJzLnVuY2hlY2tlZEFwcGVuZCh7IFdURk1v
dmUoc2VydmVyVVJMcyksIHNlcnZlci5jcmVkZW50aWFsLCBzZXJ2ZXIudXNlcm5hbWUgfSk7CkBA
IC00NDMsNyArNDQzLDcgQEAgRXhjZXB0aW9uT3I8VmVjdG9yPE1lZGlhRW5kcG9pbnRDb25maWd1
cmF0aW9uOjpDZXJ0aWZpY2F0ZVBFTT4+IFJUQ1BlZXJDb25uZWN0aW8KICAgICBjZXJ0aWZpY2F0
ZXMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShjb25maWd1cmF0aW9uLmNlcnRpZmljYXRlcy5zaXpl
KCkpOwogICAgIGZvciAoYXV0byYgY2VydGlmaWNhdGUgOiBjb25maWd1cmF0aW9uLmNlcnRpZmlj
YXRlcykgewogICAgICAgICBpZiAoIW9yaWdpbi5pc1NhbWVPcmlnaW5BcyhjZXJ0aWZpY2F0ZS0+
b3JpZ2luKCkpKQotICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NF
cnJvciwgIkNlcnRpZmljYXRlIGRvZXMgbm90IGhhdmUgYSB2YWxpZCBvcmlnaW4iIH07CisgICAg
ICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiQ2VydGlmaWNh
dGUgZG9lcyBub3QgaGF2ZSBhIHZhbGlkIG9yaWdpbiJfcyB9OwogCiAgICAgICAgIGlmIChjdXJy
ZW50TWlsbGlTZWNvbmRzID4gY2VydGlmaWNhdGUtPmV4cGlyZXMoKSkKICAgICAgICAgICAgIHJl
dHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJDZXJ0aWZpY2F0ZSBoYXMgZXhw
aXJlZCJfcyB9OwpAQCAtNDY2LDcgKzQ2Niw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFJUQ1BlZXJD
b25uZWN0aW9uOjppbml0aWFsaXplQ29uZmlndXJhdGlvbihSVENDb25maWd1cmF0aW9uJiYKICAg
ICAgICAgcmV0dXJuIGNlcnRpZmljYXRlcy5yZWxlYXNlRXhjZXB0aW9uKCk7CiAKICAgICBpZiAo
IW1fYmFja2VuZC0+c2V0Q29uZmlndXJhdGlvbih7IHNlcnZlcnMucmVsZWFzZVJldHVyblZhbHVl
KCksIGNvbmZpZ3VyYXRpb24uaWNlVHJhbnNwb3J0UG9saWN5LCBjb25maWd1cmF0aW9uLmJ1bmRs
ZVBvbGljeSwgY29uZmlndXJhdGlvbi5ydGNwTXV4UG9saWN5LCBjb25maWd1cmF0aW9uLmljZUNh
bmRpZGF0ZVBvb2xTaXplLCBjZXJ0aWZpY2F0ZXMucmVsZWFzZVJldHVyblZhbHVlKCkgfSkpCi0g
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJCYWQgQ29uZmln
dXJhdGlvbiBQYXJhbWV0ZXJzIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxp
ZEFjY2Vzc0Vycm9yLCAiQmFkIENvbmZpZ3VyYXRpb24gUGFyYW1ldGVycyJfcyB9OwogCiAgICAg
bV9jb25maWd1cmF0aW9uID0gV1RGTW92ZShjb25maWd1cmF0aW9uKTsKICAgICByZXR1cm4geyB9
OwpAQCAtNDg1LDE5ICs0ODUsMTkgQEAgRXhjZXB0aW9uT3I8dm9pZD4gUlRDUGVlckNvbm5lY3Rp
b246OnNldENvbmZpZ3VyYXRpb24oUlRDQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3UKIAogICAgIGlm
IChjb25maWd1cmF0aW9uLmNlcnRpZmljYXRlcy5zaXplKCkpIHsKICAgICAgICAgaWYgKGNvbmZp
Z3VyYXRpb24uY2VydGlmaWNhdGVzLnNpemUoKSAhPSBtX2NvbmZpZ3VyYXRpb24uY2VydGlmaWNh
dGVzLnNpemUoKSkKLSAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkTW9kaWZp
Y2F0aW9uRXJyb3IsICJDZXJ0aWZpY2F0ZXMgcGFyYW1ldGVycyBhcmUgZGlmZmVyZW50IiB9Owor
ICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRNb2RpZmljYXRpb25FcnJvciwg
IkNlcnRpZmljYXRlcyBwYXJhbWV0ZXJzIGFyZSBkaWZmZXJlbnQiX3MgfTsKIAogICAgICAgICBm
b3IgKGF1dG8mIGNlcnRpZmljYXRlIDogY29uZmlndXJhdGlvbi5jZXJ0aWZpY2F0ZXMpIHsKICAg
ICAgICAgICAgIGJvb2wgaXNUaGVyZSA9IG1fY29uZmlndXJhdGlvbi5jZXJ0aWZpY2F0ZXMuZmlu
ZElmKFsmY2VydGlmaWNhdGVdKGNvbnN0IGF1dG8mIGl0ZW0pIHsKICAgICAgICAgICAgICAgICBy
ZXR1cm4gaXRlbS5nZXQoKSA9PSBjZXJ0aWZpY2F0ZS5nZXQoKTsKICAgICAgICAgICAgIH0pICE9
IG5vdEZvdW5kOwogICAgICAgICAgICAgaWYgKCFpc1RoZXJlKQotICAgICAgICAgICAgICAgIHJl
dHVybiBFeGNlcHRpb24geyBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3IsICJBIGNlcnRpZmljYXRl
IGdpdmVuIGluIGNvbnN0cnVjdG9yIGlzIG5vdCBwcmVzZW50IiB9OworICAgICAgICAgICAgICAg
IHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3IsICJBIGNlcnRpZmlj
YXRlIGdpdmVuIGluIGNvbnN0cnVjdG9yIGlzIG5vdCBwcmVzZW50Il9zIH07CiAgICAgICAgIH0K
ICAgICB9CiAKICAgICBpZiAoIW1fYmFja2VuZC0+c2V0Q29uZmlndXJhdGlvbih7IHNlcnZlcnMu
cmVsZWFzZVJldHVyblZhbHVlKCksIGNvbmZpZ3VyYXRpb24uaWNlVHJhbnNwb3J0UG9saWN5LCBj
b25maWd1cmF0aW9uLmJ1bmRsZVBvbGljeSwgY29uZmlndXJhdGlvbi5ydGNwTXV4UG9saWN5LCBj
b25maWd1cmF0aW9uLmljZUNhbmRpZGF0ZVBvb2xTaXplLCB7IH0gfSkpCi0gICAgICAgIHJldHVy
biBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJCYWQgQ29uZmlndXJhdGlvbiBQYXJh
bWV0ZXJzIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9y
LCAiQmFkIENvbmZpZ3VyYXRpb24gUGFyYW1ldGVycyJfcyB9OwogCiAgICAgbV9jb25maWd1cmF0
aW9uID0gV1RGTW92ZShjb25maWd1cmF0aW9uKTsKICAgICByZXR1cm4geyB9OwpAQCAtOTE5LDcg
KzkxOSw3IEBAIGNvbnN0IFZlY3RvcjxSZWZQdHI8UlRDUnRwVHJhbnNjZWl2ZXI+PiYgUlRDUGVl
ckNvbm5lY3Rpb246OmdldFRyYW5zY2VpdmVycygpIGNvCiB2b2lkIFJUQ1BlZXJDb25uZWN0aW9u
OjpjaGFpbk9wZXJhdGlvbihSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UsIEZ1bmN0aW9u
PHZvaWQoUmVmPERlZmVycmVkUHJvbWlzZT4mJik+JiYgb3BlcmF0aW9uKQogewogICAgIGlmIChp
c0Nsb3NlZCgpKSB7Ci0gICAgICAgIHByb21pc2UtPnJlamVjdChJbnZhbGlkU3RhdGVFcnJvciwg
IlJUQ1BlZXJDb25uZWN0aW9uIGlzIGNsb3NlZCIpOworICAgICAgICBwcm9taXNlLT5yZWplY3Qo
SW52YWxpZFN0YXRlRXJyb3IsICJSVENQZWVyQ29ubmVjdGlvbiBpcyBjbG9zZWQiX3MpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCkBAIC05MjcsNyArOTI3LDcgQEAgdm9pZCBSVENQZWVyQ29u
bmVjdGlvbjo6Y2hhaW5PcGVyYXRpb24oUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlLCBG
dW5jdGlvbjwKICAgICAgICAgQVNTRVJUKG1faGFzUGVuZGluZ09wZXJhdGlvbik7CiAgICAgICAg
IGlmIChpc0Nsb3NlZCgpKSB7CiAgICAgICAgICAgICBmb3IgKGF1dG8mIG9wZXJhdGlvbiA6IHN0
ZDo6ZXhjaGFuZ2UobV9vcGVyYXRpb25zLCB7IH0pKQotICAgICAgICAgICAgICAgIG9wZXJhdGlv
bi5maXJzdC0+cmVqZWN0KEludmFsaWRTdGF0ZUVycm9yLCAiUlRDUGVlckNvbm5lY3Rpb24gaXMg
Y2xvc2VkIik7CisgICAgICAgICAgICAgICAgb3BlcmF0aW9uLmZpcnN0LT5yZWplY3QoSW52YWxp
ZFN0YXRlRXJyb3IsICJSVENQZWVyQ29ubmVjdGlvbiBpcyBjbG9zZWQiX3MpOwogICAgICAgICAg
ICAgbV9oYXNQZW5kaW5nT3BlcmF0aW9uID0gZmFsc2U7CiAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm1lci5jcHAKaW5kZXggY2IzZjdjZDliZjIxMjNl
OTFkMmRmN2E0NTFkMWM2ZTgxODllZDQ0ZC4uNGYyOWFiMTVlNmI1Njc3MTczMGFmOTQ0MmNlMGI0
MTQyNzBlMTZjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENSdHBTRnJhbWVUcmFuc2Zvcm1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm1lci5jcHAKQEAgLTM0Niw3ICszNDYs
NyBAQCBSVENSdHBTRnJhbWVUcmFuc2Zvcm1lcjo6VHJhbnNmb3JtUmVzdWx0IFJUQ1J0cFNGcmFt
ZVRyYW5zZm9ybWVyOjplbmNyeXB0RnJhbWUoUwogUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI6OlRy
YW5zZm9ybVJlc3VsdCBSVENSdHBTRnJhbWVUcmFuc2Zvcm1lcjo6dHJhbnNmb3JtKFNwYW48Y29u
c3QgdWludDhfdD4gZGF0YSkKIHsKICAgICBpZiAoIW1faGFzS2V5KQotICAgICAgICByZXR1cm4g
bWFrZVVuZXhwZWN0ZWQoRXJyb3JJbmZvcm1hdGlvbiB7IEVycm9yOjpLZXlJRCwgICJLZXkgaXMg
bm90IGluaXRpYWxpemVkIiwgMCB9KTsKKyAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKEVy
cm9ySW5mb3JtYXRpb24geyBFcnJvcjo6S2V5SUQsICAiS2V5IGlzIG5vdCBpbml0aWFsaXplZCJf
cywgMCB9KTsKIAogICAgIHJldHVybiBtX2lzRW5jcnlwdGluZyA/IGVuY3J5cHRGcmFtZShkYXRh
KSA6IGRlY3J5cHRGcmFtZShkYXRhKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2Vu
ZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJX
ZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwCmluZGV4IDEzMzMxYWNjMDQ0MGNkMDE3ODlj
NzMxNTgwZWI1NjkwNDFjMzgxY2QuLjMyM2MyODEzYzMyNGVmZWU2OThmNGMwZTRiOWZmZmNjNzlk
NGQ2YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGli
d2VicnRjL0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUGVlckNvbm5lY3Rp
b25CYWNrZW5kLmNwcApAQCAtMjYwLDcgKzI2MCw3IEBAIHZvaWQgTGliV2ViUlRDUGVlckNvbm5l
Y3Rpb25CYWNrZW5kOjpkb0NyZWF0ZU9mZmVyKFJUQ09mZmVyT3B0aW9ucyYmIG9wdGlvbnMpCiB2
b2lkIExpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZDo6ZG9DcmVhdGVBbnN3ZXIoUlRDQW5z
d2VyT3B0aW9ucyYmKQogewogICAgIGlmICghbV9pc1JlbW90ZURlc2NyaXB0aW9uU2V0KSB7Ci0g
ICAgICAgIGNyZWF0ZUFuc3dlckZhaWxlZChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwg
Ik5vIHJlbW90ZSBkZXNjcmlwdGlvbiBzZXQiIH0pOworICAgICAgICBjcmVhdGVBbnN3ZXJGYWls
ZWQoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJObyByZW1vdGUgZGVzY3JpcHRpb24g
c2V0Il9zIH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIG1fZW5kcG9pbnQtPmRvQ3Jl
YXRlQW5zd2VyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENSdHBUcmFuc2NlaXZlckJhY2tlbmQuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUnRwVHJhbnNj
ZWl2ZXJCYWNrZW5kLmNwcAppbmRleCBkMWY3M2FkN2Y0NzhmNjA0NzI1YjA2MDk5ZmRlNjkwYzcz
ZWQ1YjQ1Li40MTc2ZThkNmY3ODNhNTI1YTgwZjdhNjBlYWRjNjdmNmJmZDcwMTZjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJS
VENSdHBUcmFuc2NlaXZlckJhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1J0cFRyYW5zY2VpdmVyQmFja2VuZC5jcHAK
QEAgLTg5LDcgKzg5LDcgQEAgc3RhdGljIGlubGluZSBFeGNlcHRpb25Pcjx3ZWJydGM6OlJ0cENv
ZGVjQ2FwYWJpbGl0eT4gdG9SdHBDb2RlY0NhcGFiaWxpdHkoY29uc3QKICAgICBlbHNlIGlmIChj
b2RlYy5taW1lVHlwZS5zdGFydHNXaXRoKCJhdWRpby8iKSkKICAgICAgICAgcnRjQ29kZWMua2lu
ZCA9IGNyaWNrZXQ6Ok1FRElBX1RZUEVfQVVESU87CiAgICAgZWxzZQotICAgICAgICByZXR1cm4g
RXhjZXB0aW9uIHsgSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yLCAiUlRDUnRwQ29kZWNDYXBhYmls
aXR5IGJhZCBtaW1lVHlwZSIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRN
b2RpZmljYXRpb25FcnJvciwgIlJUQ1J0cENvZGVjQ2FwYWJpbGl0eSBiYWQgbWltZVR5cGUiX3Mg
fTsKIAogICAgIHJ0Y0NvZGVjLm5hbWUgPSBjb2RlYy5taW1lVHlwZS5zdWJzdHJpbmcoNikudXRm
OCgpLmRhdGEoKTsKICAgICBydGNDb2RlYy5jbG9ja19yYXRlID0gY29kZWMuY2xvY2tSYXRlOwpA
QCAtOTksNyArOTksNyBAQCBzdGF0aWMgaW5saW5lIEV4Y2VwdGlvbk9yPHdlYnJ0Yzo6UnRwQ29k
ZWNDYXBhYmlsaXR5PiB0b1J0cENvZGVjQ2FwYWJpbGl0eShjb25zdAogICAgIGZvciAoYXV0byBw
YXJhbWV0ZXIgOiBTdHJpbmdWaWV3KGNvZGVjLnNkcEZtdHBMaW5lKS5zcGxpdCgnOycpKSB7CiAg
ICAgICAgIGF1dG8gcG9zaXRpb24gPSBwYXJhbWV0ZXIuZmluZCgnPScpOwogICAgICAgICBpZiAo
cG9zaXRpb24gPT0gbm90Rm91bmQpCi0gICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52
YWxpZE1vZGlmaWNhdGlvbkVycm9yLCAiUlRDUnRwQ29kZWNDYXBhYmlsaXR5IHNkcEZtdExpbmUg
YmFkbHkgZm9ybWF0ZWQiIH07CisgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxp
ZE1vZGlmaWNhdGlvbkVycm9yLCAiUlRDUnRwQ29kZWNDYXBhYmlsaXR5IHNkcEZtdExpbmUgYmFk
bHkgZm9ybWF0ZWQiX3MgfTsKICAgICAgICAgcnRjQ29kZWMucGFyYW1ldGVycy5lbXBsYWNlKHBh
cmFtZXRlci5zdWJzdHJpbmcoMCwgcG9zaXRpb24pLnV0ZjgoKS5kYXRhKCksIHBhcmFtZXRlci5z
dWJzdHJpbmcocG9zaXRpb24gKyAxKS51dGY4KCkuZGF0YSgpKTsKICAgICB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJU
Q1V0aWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRj
L0xpYldlYlJUQ1V0aWxzLmNwcAppbmRleCA0NWU0ZDE3MzYzZmYxYjY0MDdlM2MwOTljMGZjN2Y0
MjgyZmE2OGIwLi45ZjE5NmYzNzhiYjc3NzY3M2NmNzEyMGNhYTRmYjQ2NDUwMWY0YTg1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJX
ZWJSVENVdGlscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9s
aWJ3ZWJydGMvTGliV2ViUlRDVXRpbHMuY3BwCkBAIC0zNjAsNyArMzYwLDcgQEAgRXhjZXB0aW9u
IHRvRXhjZXB0aW9uKGNvbnN0IHdlYnJ0Yzo6UlRDRXJyb3ImIGVycm9yKQogewogICAgIEFTU0VS
VCghZXJyb3Iub2soKSk7CiAKLSAgICByZXR1cm4gRXhjZXB0aW9uIHsgdG9FeGNlcHRpb25Db2Rl
KGVycm9yLnR5cGUoKSksIGVycm9yLm1lc3NhZ2UoKSB9OworICAgIHJldHVybiBFeGNlcHRpb24g
eyB0b0V4Y2VwdGlvbkNvZGUoZXJyb3IudHlwZSgpKSwgU3RyaW5nIHsgZXJyb3IubWVzc2FnZSgp
IH0gfTsKIH0KIAogc3RhdGljIGlubGluZSBSVENJY2VDb21wb25lbnQgdG9SVENJY2VDb21wb25l
bnQoaW50IGNvbXBvbmVudCkKQEAgLTQ1NSw3ICs0NTUsNyBAQCBSZWZQdHI8UlRDRXJyb3I+IHRv
UlRDRXJyb3IoY29uc3Qgd2VicnRjOjpSVENFcnJvciYgcnRjRXJyb3IpCiAgICAgYXV0byBkZXRh
aWwgPSB0b1JUQ0Vycm9yRGV0YWlsVHlwZShydGNFcnJvci5lcnJvcl9kZXRhaWwoKSk7CiAgICAg
aWYgKCFkZXRhaWwpCiAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgIHJldHVybiBSVENFcnJv
cjo6Y3JlYXRlKCpkZXRhaWwsIHJ0Y0Vycm9yLm1lc3NhZ2UoKSk7CisgICAgcmV0dXJuIFJUQ0Vy
cm9yOjpjcmVhdGUoKmRldGFpbCwgU3RyaW5nIHsgcnRjRXJyb3IubWVzc2FnZSgpIH0pOwogfQog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21vZGVsLWVsZW1lbnQvc2NlbmVraXQvU2NlbmVLaXRNb2RlbExvYWRlclVTRC5tbSBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9zY2VuZWtpdC9TY2VuZUtpdE1vZGVs
TG9hZGVyVVNELm1tCmluZGV4IDA5ZWM4ZjYwM2U5ZDAyMmIzNzhkZGEwZTQyN2ZlYzUyMWZkZDUy
ZDIuLmNhYjRiOGRlMjAyZTc3ZDcwMjgyYjU5NGExYmVmYmQ3NWIwNmNiMmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9zY2VuZWtpdC9TY2VuZUtpdE1v
ZGVsTG9hZGVyVVNELm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVu
dC9zY2VuZWtpdC9TY2VuZUtpdE1vZGVsTG9hZGVyVVNELm1tCkBAIC0xMDIsNyArMTAyLDcgQEAg
c3RhdGljIFJldGFpblB0cjxOU1VSTD4gd3JpdGVUb1RlbXBvcmFyeUZpbGUoV2ViQ29yZTo6TW9k
ZWwmIG1vZGVsU291cmNlKQogICAgIC8vIGluaXRpYWxpemVyIGJ1dCBjdXJyZW50bHkgdGhhdCBk
b2VzIG5vdCB3b3JrLgogCiAgICAgRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlIGZpbGVI
YW5kbGU7Ci0gICAgYXV0byBmaWxlUGF0aCA9IEZpbGVTeXN0ZW06Om9wZW5UZW1wb3JhcnlGaWxl
KCJNb2RlbEZpbGUiLCBmaWxlSGFuZGxlLCAiLnVzZHoiKTsKKyAgICBhdXRvIGZpbGVQYXRoID0g
RmlsZVN5c3RlbTo6b3BlblRlbXBvcmFyeUZpbGUoIk1vZGVsRmlsZSJfcywgZmlsZUhhbmRsZSwg
Ii51c2R6Il9zKTsKICAgICBBU1NFUlQoRmlsZVN5c3RlbTo6aXNIYW5kbGVWYWxpZChmaWxlSGFu
ZGxlKSk7CiAKICAgICBzaXplX3QgYnl0ZUNvdW50ID0gRmlsZVN5c3RlbTo6d3JpdGVUb0ZpbGUo
ZmlsZUhhbmRsZSwgbW9kZWxTb3VyY2UuZGF0YSgpLT5tYWtlQ29udGlndW91cygpLT5kYXRhKCks
IG1vZGVsU291cmNlLmRhdGEoKS0+c2l6ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5jcHAKaW5kZXggZGYyYjVj
MjY0ZjNhNWNlMmMxZTFjYjZiNzYzNDBhMDBmYTQwY2NlMC4uNDIyMzVlZWExYmZkMWNkMWI3MDcw
YjY5MDk0ODQyY2Y2ZTkzNTRiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9w
YXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5jcHAKQEAgLTIxNiw3ICsyMTYsNyBA
QCBzdGF0aWMgRXhjZXB0aW9uT3I8c3RkOjp0dXBsZTxTdHJpbmcsIFZlY3RvcjxTdHJpbmc+Pj4g
Y2hlY2tBbmRDYW5vbmljYWxpemVEZXRhaQogCiAgICAgICAgICAgICAgICAgYXV0byBhZGRSZXN1
bHQgPSBzZWVuU2hpcHBpbmdPcHRpb25JRHMuYWRkKHNoaXBwaW5nT3B0aW9uLmlkKTsKICAgICAg
ICAgICAgICAgICBpZiAoIWFkZFJlc3VsdC5pc05ld0VudHJ5KQotICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiU2hpcHBpbmcgb3B0aW9uIElEcyBtdXN0
IGJlIHVuaXF1ZS4iIH07CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBU
eXBlRXJyb3IsICJTaGlwcGluZyBvcHRpb24gSURzIG11c3QgYmUgdW5pcXVlLiJfcyB9OwogCiAj
aWYgRU5BQkxFKFBBWU1FTlRfUkVRVUVTVF9TRUxFQ1RFRF9TSElQUElOR19PUFRJT04pCiAgICAg
ICAgICAgICAgICAgaWYgKHNoaXBwaW5nT3B0aW9uLnNlbGVjdGVkKQpAQCAtMzc1LDcgKzM3NSw3
IEBAIHZvaWQgUGF5bWVudFJlcXVlc3Q6OnNob3coRG9jdW1lbnQmIGRvY3VtZW50LCBSZWZQdHI8
RE9NUHJvbWlzZT4mJiBkZXRhaWxzUHJvbWlzCiAKICAgICBhdXRvKiB3aW5kb3cgPSBkb2N1bWVu
dC5mcmFtZSgpLT53aW5kb3coKTsKICAgICBpZiAoIXdpbmRvdyB8fCAhd2luZG93LT5jb25zdW1l
VHJhbnNpZW50QWN0aXZhdGlvbigpKSB7Ci0gICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlv
biB7IFNlY3VyaXR5RXJyb3IsICJzaG93KCkgbXVzdCBiZSB0cmlnZ2VyZWQgYnkgdXNlciBhY3Rp
dmF0aW9uLiIgfSk7CisgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IFNlY3VyaXR5
RXJyb3IsICJzaG93KCkgbXVzdCBiZSB0cmlnZ2VyZWQgYnkgdXNlciBhY3RpdmF0aW9uLiJfcyB9
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9waWN0dXJlaW5waWN0dXJlL0hUTUxWaWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGljdHVyZWlucGljdHVyZS9IVE1MVmlkZW9F
bGVtZW50UGljdHVyZUluUGljdHVyZS5jcHAKaW5kZXggZjJmMDIzMTAyNzQ1YjlmZDIzZThlOTQy
ZDYwOWE3ZTliZTA2MTBkOC4uYmJlMmNiYzhiOWNiYWU0ZjJmYjBlYmRlOTRkNTk1YWY5ZDhmY2Ji
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9waWN0dXJlaW5waWN0dXJlL0hU
TUxWaWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3BpY3R1cmVpbnBpY3R1cmUvSFRNTFZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmUu
Y3BwCkBAIC04MSwyMyArODEsMjMgQEAgdm9pZCBIVE1MVmlkZW9FbGVtZW50UGljdHVyZUluUGlj
dHVyZTo6cHJvdmlkZVBpY3R1cmVJblBpY3R1cmVUbyhIVE1MVmlkZW9FbGVtZW4KIHZvaWQgSFRN
TFZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmU6OnJlcXVlc3RQaWN0dXJlSW5QaWN0dXJlKEhU
TUxWaWRlb0VsZW1lbnQmIHZpZGVvRWxlbWVudCwgUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9t
aXNlKQogewogICAgIGlmICghc3VwcG9ydHNQaWN0dXJlSW5QaWN0dXJlKCkpIHsKLSAgICAgICAg
cHJvbWlzZS0+cmVqZWN0KE5vdFN1cHBvcnRlZEVycm9yLCAiVGhlIFBpY3R1cmUtaW4tUGljdHVy
ZSBtb2RlIGlzIG5vdCBzdXBwb3J0ZWQuIik7CisgICAgICAgIHByb21pc2UtPnJlamVjdChOb3RT
dXBwb3J0ZWRFcnJvciwgIlRoZSBQaWN0dXJlLWluLVBpY3R1cmUgbW9kZSBpcyBub3Qgc3VwcG9y
dGVkLiJfcyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBpZiAodmlkZW9FbGVtZW50
LnJlYWR5U3RhdGUoKSA9PSBIVE1MTWVkaWFFbGVtZW50RW51bXM6OkhBVkVfTk9USElORykgewot
ICAgICAgICBwcm9taXNlLT5yZWplY3QoSW52YWxpZFN0YXRlRXJyb3IsICJUaGUgdmlkZW8gZWxl
bWVudCBpcyBub3QgcmVhZHkgdG8gZW50ZXIgdGhlIFBpY3R1cmUtaW4tUGljdHVyZSBtb2RlLiIp
OworICAgICAgICBwcm9taXNlLT5yZWplY3QoSW52YWxpZFN0YXRlRXJyb3IsICJUaGUgdmlkZW8g
ZWxlbWVudCBpcyBub3QgcmVhZHkgdG8gZW50ZXIgdGhlIFBpY3R1cmUtaW4tUGljdHVyZSBtb2Rl
LiJfcyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBpZiAoIXZpZGVvRWxlbWVudC52
aWRlb1RyYWNrcygpIHx8ICF2aWRlb0VsZW1lbnQudmlkZW9UcmFja3MoKS0+bGVuZ3RoKCkpIHsK
LSAgICAgICAgcHJvbWlzZS0+cmVqZWN0KEludmFsaWRTdGF0ZUVycm9yLCAiVGhlIHZpZGVvIGVs
ZW1lbnQgZG9lcyBub3QgaGF2ZSBhIHZpZGVvIHRyYWNrIG9yIGl0IGhhcyBub3QgZGV0ZWN0ZWQg
YSB2aWRlbyB0cmFjayB5ZXQuIik7CisgICAgICAgIHByb21pc2UtPnJlamVjdChJbnZhbGlkU3Rh
dGVFcnJvciwgIlRoZSB2aWRlbyBlbGVtZW50IGRvZXMgbm90IGhhdmUgYSB2aWRlbyB0cmFjayBv
ciBpdCBoYXMgbm90IGRldGVjdGVkIGEgdmlkZW8gdHJhY2sgeWV0LiJfcyk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKICAgICBib29sIHVzZXJBY3RpdmF0aW9uUmVxdWlyZWQgPSAhdmlkZW9F
bGVtZW50LmRvY3VtZW50KCkucGljdHVyZUluUGljdHVyZUVsZW1lbnQoKTsKICAgICBpZiAodXNl
ckFjdGl2YXRpb25SZXF1aXJlZCAmJiAhVXNlckdlc3R1cmVJbmRpY2F0b3I6OnByb2Nlc3NpbmdV
c2VyR2VzdHVyZSgpKSB7Ci0gICAgICAgIHByb21pc2UtPnJlamVjdChOb3RBbGxvd2VkRXJyb3Is
ICJUaGUgcmVxdWVzdCBpcyBub3QgdHJpZ2dlcmVkIGJ5IGEgdXNlciBhY3RpdmF0aW9uLiIpOwor
ICAgICAgICBwcm9taXNlLT5yZWplY3QoTm90QWxsb3dlZEVycm9yLCAiVGhlIHJlcXVlc3QgaXMg
bm90IHRyaWdnZXJlZCBieSBhIHVzZXIgYWN0aXZhdGlvbi4iX3MpOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCkBAIC0xMDgsNyArMTA4LDcgQEAgdm9pZCBIVE1MVmlkZW9FbGVtZW50UGljdHVy
ZUluUGljdHVyZTo6cmVxdWVzdFBpY3R1cmVJblBpY3R1cmUoSFRNTFZpZGVvRWxlbWVudCYKICAg
ICB9CiAKICAgICBpZiAodmlkZW9FbGVtZW50UGljdHVyZUluUGljdHVyZS0+bV9lbnRlclBpY3R1
cmVJblBpY3R1cmVQcm9taXNlIHx8IHZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmUtPm1fZXhp
dFBpY3R1cmVJblBpY3R1cmVQcm9taXNlKSB7Ci0gICAgICAgIHByb21pc2UtPnJlamVjdChOb3RB
bGxvd2VkRXJyb3IsICJUaGUgdmlkZW8gZWxlbWVudCBpcyBwcm9jZXNzaW5nIGEgUGljdHVyZS1p
bi1QaWN0dXJlIHJlcXVlc3QuIik7CisgICAgICAgIHByb21pc2UtPnJlamVjdChOb3RBbGxvd2Vk
RXJyb3IsICJUaGUgdmlkZW8gZWxlbWVudCBpcyBwcm9jZXNzaW5nIGEgUGljdHVyZS1pbi1QaWN0
dXJlIHJlcXVlc3QuIl9zKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMTE2LDcgKzEx
Niw3IEBAIHZvaWQgSFRNTFZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmU6OnJlcXVlc3RQaWN0
dXJlSW5QaWN0dXJlKEhUTUxWaWRlb0VsZW1lbnQmCiAgICAgICAgIHZpZGVvRWxlbWVudFBpY3R1
cmVJblBpY3R1cmUtPm1fZW50ZXJQaWN0dXJlSW5QaWN0dXJlUHJvbWlzZSA9IFdURk1vdmUocHJv
bWlzZSk7CiAgICAgICAgIHZpZGVvRWxlbWVudC53ZWJraXRTZXRQcmVzZW50YXRpb25Nb2RlKEhU
TUxWaWRlb0VsZW1lbnQ6OlZpZGVvUHJlc2VudGF0aW9uTW9kZTo6UGljdHVyZUluUGljdHVyZSk7
CiAgICAgfSBlbHNlCi0gICAgICAgIHByb21pc2UtPnJlamVjdChOb3RTdXBwb3J0ZWRFcnJvciwg
IlRoZSB2aWRlbyBlbGVtZW50IGRvZXMgbm90IHN1cHBvcnQgdGhlIFBpY3R1cmUtaW4tUGljdHVy
ZSBtb2RlLiIpOworICAgICAgICBwcm9taXNlLT5yZWplY3QoTm90U3VwcG9ydGVkRXJyb3IsICJU
aGUgdmlkZW8gZWxlbWVudCBkb2VzIG5vdCBzdXBwb3J0IHRoZSBQaWN0dXJlLWluLVBpY3R1cmUg
bW9kZS4iX3MpOwogfQogCiBib29sIEhUTUxWaWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJlOjph
dXRvUGljdHVyZUluUGljdHVyZShIVE1MVmlkZW9FbGVtZW50JiB2aWRlb0VsZW1lbnQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvWW91VHViZVBsdWdpblJlcGxh
Y2VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9Zb3VUdWJlUGx1Z2lu
UmVwbGFjZW1lbnQuY3BwCmluZGV4IDk3OWYyMjQ1OTA3MjBmODI5MzM1ZDYwYTNhOGQ4YWU1YzNi
NzIyNDMuLmRkMTZmODkzZjJkNjk1MmNjNWYwMDMwOGY5ZDBkOTlhYjhiMGU4YTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9Zb3VUdWJlUGx1Z2luUmVwbGFjZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9Zb3VUdWJlUGx1Z2lu
UmVwbGFjZW1lbnQuY3BwCkBAIC04NCwxNiArODQsMTYgQEAgYXV0byBZb3VUdWJlUGx1Z2luUmVw
bGFjZW1lbnQ6Omluc3RhbGxSZXBsYWNlbWVudChTaGFkb3dSb290JiByb290KSAtPiBJbnN0YWxs
UmUKICAgICByb290LmFwcGVuZENoaWxkKCptX2VtYmVkU2hhZG93RWxlbWVudCk7CiAKICAgICBh
dXRvIGlmcmFtZUVsZW1lbnQgPSBIVE1MSUZyYW1lRWxlbWVudDo6Y3JlYXRlKEhUTUxOYW1lczo6
aWZyYW1lVGFnLCBtX3BhcmVudEVsZW1lbnQtPmRvY3VtZW50KCkpOwotICAgIGlmIChtX2F0dHJp
YnV0ZXMuY29udGFpbnMoIndpZHRoIikpCisgICAgaWYgKG1fYXR0cmlidXRlcy5jb250YWlucygi
d2lkdGgiX3MpKQogICAgICAgICBpZnJhbWVFbGVtZW50LT5zZXRBdHRyaWJ1dGVXaXRob3V0U3lu
Y2hyb25pemF0aW9uKEhUTUxOYW1lczo6d2lkdGhBdHRyLCBBdG9tU3RyaW5nKCIxMDAlIiwgQXRv
bVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKIAotICAgIGNvbnN0IGF1dG8mIGhlaWdo
dFZhbHVlID0gbV9hdHRyaWJ1dGVzLmZpbmQoImhlaWdodCIpOworICAgIGNvbnN0IGF1dG8mIGhl
aWdodFZhbHVlID0gbV9hdHRyaWJ1dGVzLmZpbmQoImhlaWdodCJfcyk7CiAgICAgaWYgKGhlaWdo
dFZhbHVlICE9IG1fYXR0cmlidXRlcy5lbmQoKSkgewogICAgICAgICBpZnJhbWVFbGVtZW50LT5z
ZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjpzdHlsZUF0dHIsIEF0b21TdHJpbmcoIm1heC1oZWlnaHQ6
IDEwMCUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgICAgICBpZnJh
bWVFbGVtZW50LT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKEhUTUxOYW1lczo6
aGVpZ2h0QXR0ciwgaGVpZ2h0VmFsdWUtPnZhbHVlKTsKICAgICB9CiAKLSAgICBpZnJhbWVFbGVt
ZW50LT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKEhUTUxOYW1lczo6c3JjQXR0
ciwgeW91VHViZVVSTChtX2F0dHJpYnV0ZXMuZ2V0KCJzcmMiKSkpOworICAgIGlmcmFtZUVsZW1l
bnQtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oSFRNTE5hbWVzOjpzcmNBdHRy
LCB5b3VUdWJlVVJMKG1fYXR0cmlidXRlcy5nZXQoInNyYyJfcykpKTsKICAgICBpZnJhbWVFbGVt
ZW50LT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKEhUTUxOYW1lczo6ZnJhbWVi
b3JkZXJBdHRyLCBBdG9tU3RyaW5nKCIwIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpKTsKICAgICAKICAgICAvLyBEaXNhYmxlIGZyYW1lIGZsYXR0ZW5pbmcgZm9yIHRoaXMgaWZy
YW1lLgpAQCAtMjMxLDExICsyMzEsMTEgQEAgc3RhdGljIFVSTCBwcm9jZXNzQW5kQ3JlYXRlWW91
VHViZVVSTChjb25zdCBVUkwmIHVybCwgYm9vbCYgaXNZb3VUdWJlU2hvcnRlbmVkVVIKICAgICBp
ZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UocGF0aCwgIi93YXRjaCIpKSB7CiAgICAg
ICAgIGlmICghcXVlcnkuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBjb25zdCBhdXRvJiBxdWVy
eURpY3Rpb25hcnkgPSBxdWVyeUtleXNBbmRWYWx1ZXMocXVlcnkpOwotICAgICAgICAgICAgU3Ry
aW5nIHZpZGVvSUQgPSB2YWx1ZUZvcktleShxdWVyeURpY3Rpb25hcnksICJ2Iik7CisgICAgICAg
ICAgICBTdHJpbmcgdmlkZW9JRCA9IHZhbHVlRm9yS2V5KHF1ZXJ5RGljdGlvbmFyeSwgInYiX3Mp
OwogICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAoIXZpZGVvSUQuaXNFbXB0eSgpKSB7CiAg
ICAgICAgICAgICAgICAgY29uc3QgYXV0byYgZnJhZ21lbnREaWN0aW9uYXJ5ID0gcXVlcnlLZXlz
QW5kVmFsdWVzKHVybC5mcmFnbWVudElkZW50aWZpZXIoKSk7Ci0gICAgICAgICAgICAgICAgU3Ry
aW5nIHRpbWVJRCA9IHZhbHVlRm9yS2V5KGZyYWdtZW50RGljdGlvbmFyeSwgInQiKTsKKyAgICAg
ICAgICAgICAgICBTdHJpbmcgdGltZUlEID0gdmFsdWVGb3JLZXkoZnJhZ21lbnREaWN0aW9uYXJ5
LCAidCJfcyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVlvdVR1YmVVUkwodmlkZW9J
RCwgdGltZUlEKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtMjQ2LDEwICsyNDYsMTAg
QEAgc3RhdGljIFVSTCBwcm9jZXNzQW5kQ3JlYXRlWW91VHViZVVSTChjb25zdCBVUkwmIHVybCwg
Ym9vbCYgaXNZb3VUdWJlU2hvcnRlbmVkVVIKICAgICAgICAgICAgIAogICAgICAgICAgICAgaWYg
KCFxdWVyeS5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgICAgICBjb25zdCBhdXRvJiBxdWVyeURp
Y3Rpb25hcnkgPSBxdWVyeUtleXNBbmRWYWx1ZXMocXVlcnkpOwotICAgICAgICAgICAgICAgIFN0
cmluZyB2aWRlb0lEID0gdmFsdWVGb3JLZXkocXVlcnlEaWN0aW9uYXJ5LCAidiIpOworICAgICAg
ICAgICAgICAgIFN0cmluZyB2aWRlb0lEID0gdmFsdWVGb3JLZXkocXVlcnlEaWN0aW9uYXJ5LCAi
diJfcyk7CiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgaWYgKCF2aWRlb0lELmlz
RW1wdHkoKSkgewotICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdGltZUlEID0gdmFsdWVGb3JL
ZXkocXVlcnlEaWN0aW9uYXJ5LCAidCIpOworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdGlt
ZUlEID0gdmFsdWVGb3JLZXkocXVlcnlEaWN0aW9uYXJ5LCAidCJfcyk7CiAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBjcmVhdGVZb3VUdWJlVVJMKHZpZGVvSUQsIHRpbWVJRCk7CiAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJ
bXBsLmNwcAppbmRleCBjMjNhOGQ2N2NiNDgxMjMzZjdjYjRiNTE5YjEzNmIyMjE5MDZiZWJlLi42
MDc1M2ZlY2UzNWEyOWY4OGU5MjYyMGEyMGI4MDlhZmU5NmNjNzIxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJ
bXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvbkNhcHR1cmVTb3VyY2VJbXBsLmNwcApAQCAtOTIsNyArOTIsNyBAQCBib29sIFNwZWVjaFJl
Y29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6OnVwZGF0ZURhdGFTb3VyY2UoY29uc3QgQ0FBdWRp
b1N0cmVhbURlcwogICAgIGlmIChkYXRhU291cmNlLT5zZXRJbnB1dEZvcm1hdChhdWRpb0Rlc2Ny
aXB0aW9uKSkgewogICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCB3ZWFrVGhpcyA9IFdl
YWtQdHIgeyAqdGhpcyB9XSB7CiAgICAgICAgICAgICBpZiAod2Vha1RoaXMpCi0gICAgICAgICAg
ICAgICAgbV9zdGF0ZVVwZGF0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVh
dGVFcnJvcihtX2NsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCAiVW5hYmxlIHRvIHNldCBpbnB1
dCBmb3JtYXQiIH0pKTsKKyAgICAgICAgICAgICAgICBtX3N0YXRlVXBkYXRlQ2FsbGJhY2soU3Bl
ZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZUVycm9yKG1fY2xpZW50SWRlbnRpZmllciwgU3Bl
ZWNoUmVjb2duaXRpb25FcnJvciB7IFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpBdWRpb0Nh
cHR1cmUsICJVbmFibGUgdG8gc2V0IGlucHV0IGZvcm1hdCJfcyB9KSk7CiAgICAgICAgIH0pOwog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpAQCAtMTAwLDcgKzEwMCw3IEBAIGJvb2wgU3Bl
ZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbDo6dXBkYXRlRGF0YVNvdXJjZShjb25zdCBD
QUF1ZGlvU3RyZWFtRGVzCiAgICAgaWYgKGRhdGFTb3VyY2UtPnNldE91dHB1dEZvcm1hdChhdWRp
b0Rlc2NyaXB0aW9uKSkgewogICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCB3ZWFrVGhp
cyA9IFdlYWtQdHIgeyAqdGhpcyB9XSB7CiAgICAgICAgICAgICBpZiAod2Vha1RoaXMpCi0gICAg
ICAgICAgICAgICAgbV9zdGF0ZVVwZGF0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRl
OjpjcmVhdGVFcnJvcihtX2NsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uRXJyb3Ig
eyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCAiVW5hYmxlIHRvIHNl
dCBvdXRwdXQgZm9ybWF0IiB9KSk7CisgICAgICAgICAgICAgICAgbV9zdGF0ZVVwZGF0ZUNhbGxi
YWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihtX2NsaWVudElkZW50aWZp
ZXIsIFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6
QXVkaW9DYXB0dXJlLCAiVW5hYmxlIHRvIHNldCBvdXRwdXQgZm9ybWF0Il9zIH0pKTsKICAgICAg
ICAgfSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CkBAIC0xNTcsMTMgKzE1NywxMyBA
QCB2b2lkIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6OnNvdXJjZVN0b3BwZWQo
KQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgQVNTRVJUKG1fc291cmNlLT5j
YXB0dXJlRGlkRmFpbCgpKTsKLSAgICBtX3N0YXRlVXBkYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2du
aXRpb25VcGRhdGU6OmNyZWF0ZUVycm9yKG1fY2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2du
aXRpb25FcnJvciB7IFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpBdWRpb0NhcHR1cmUsICJT
b3VyY2UgaXMgc3RvcHBlZCIgfSkpOworICAgIG1fc3RhdGVVcGRhdGVDYWxsYmFjayhTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IobV9jbGllbnRJZGVudGlmaWVyLCBTcGVlY2hS
ZWNvZ25pdGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlvQ2FwdHVy
ZSwgIlNvdXJjZSBpcyBzdG9wcGVkIl9zIH0pKTsKIH0KIAogdm9pZCBTcGVlY2hSZWNvZ25pdGlv
bkNhcHR1cmVTb3VyY2VJbXBsOjpzb3VyY2VNdXRlZENoYW5nZWQoKQogewogICAgIEFTU0VSVChp
c01haW5UaHJlYWQoKSk7Ci0gICAgbV9zdGF0ZVVwZGF0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0
aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihtX2NsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0
aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCAiU291
cmNlIGlzIG11dGVkIiB9KSk7CisgICAgbV9zdGF0ZVVwZGF0ZUNhbGxiYWNrKFNwZWVjaFJlY29n
bml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihtX2NsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29n
bml0aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCAi
U291cmNlIGlzIG11dGVkIl9zIH0pKTsKIH0KIAogdm9pZCBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1
cmVTb3VyY2VJbXBsOjptdXRlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL2NvY29hL1dlYlNwZWVjaFJlY29nbml6ZXJUYXNrTW9jay5tbSBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL2NvY29hL1dlYlNwZWVjaFJlY29nbml6ZXJUYXNrTW9jay5tbQpp
bmRleCBjNzI3NTliNzY3YWE5NTg3ZDczN2VhNDAyOWEzMTY3ZjhjOTdmMmU4Li5lMWQ5YzY2NjUw
MDQwYWEzMWIxNmQyYmMyYzlhZGRjZDRjZjRkMGMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3NwZWVjaC9jb2NvYS9XZWJTcGVlY2hSZWNvZ25pemVyVGFza01vY2subW0KKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvY29jb2EvV2ViU3BlZWNoUmVjb2duaXpl
clRhc2tNb2NrLm1tCkBAIC02Myw3ICs2Myw3IEBAIC0gKHZvaWQpYXVkaW9TYW1wbGVzQXZhaWxh
YmxlOihDTVNhbXBsZUJ1ZmZlclJlZilzYW1wbGVCdWZmZXIKICAgICB9CiAKICAgICAvLyBGYWtl
IHNvbWUgcmVjb2duaXRpb24gcmVzdWx0cy4KLSAgICBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0
aXZlRGF0YSBhbHRlcm5hdGl2ZSB7ICJUZXN0IiwgMS4wIH07CisgICAgU3BlZWNoUmVjb2duaXRp
b25BbHRlcm5hdGl2ZURhdGEgYWx0ZXJuYXRpdmUgeyAiVGVzdCJfcywgMS4wIH07CiAgICAgX2Rl
bGVnYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZVJlc3VsdChfaWRl
bnRpZmllciwgeyBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEgeyB7IFdURk1vdmUoYWx0ZXJu
YXRpdmUpIH0sIHRydWUgfSB9KSk7CiAKICAgICBpZiAoIV9kb011bHRpcGxlUmVjb2duaXRpb25z
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdG9yYWdlL1N0b3JhZ2VNYW5h
Z2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RvcmFnZS9TdG9yYWdlTWFuYWdlci5j
cHAKaW5kZXggMTg4ZDMwYjYxOThiMTYxZTFiNDdhZTk3NjhlMGMxZTk1NzY2NTNhYi4uNjM2YjQ4
YzlmMDQ3OWJjNWFlMzE5NGVhMWU4OTA1Njk2NTcxN2E0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3N0b3JhZ2UvU3RvcmFnZU1hbmFnZXIuY3BwCkBAIC03Miw3ICs3Miw3IEBA
IHN0YXRpYyBFeGNlcHRpb25PcjxDb25uZWN0aW9uSW5mbz4gY29ubmVjdGlvbkluZm8oTmF2aWdh
dG9yQmFzZSogbmF2aWdhdG9yKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0
YXRlRXJyb3IsICJPcmlnaW4gaXMgaW52YWxpZCJfcyB9OwogCiAgICAgaWYgKCFvcmlnaW4tPmNh
bkFjY2Vzc1N0b3JhZ2VNYW5hZ2VyKCkpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBl
RXJyb3IsICJPcmlnaW4gc2hvdWxkIG5vdCBhY2Nlc3Mgc3RvcmFnZSIgfTsKKyAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIk9yaWdpbiBzaG91bGQgbm90IGFjY2VzcyBzdG9y
YWdlIl9zIH07CiAKICAgICBpZiAoaXM8RG9jdW1lbnQ+KGNvbnRleHQpKSB7CiAgICAgICAgIGlm
IChhdXRvKiBjb25uZWN0aW9uID0gZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpLT5zdG9yYWdl
Q29ubmVjdGlvbigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWItbG9j
a3MvV2ViTG9ja01hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWItbG9ja3Mv
V2ViTG9ja01hbmFnZXIuY3BwCmluZGV4IDIxOTk5MmY2YjViMTRjNWI2MDI3NTQ1NmFkZGIwODU3
Nzg2ZTEyNWYuLmExNjFiM2QyYzA1YzNmNDljOWIwYThmOWU2OTY2ZDQ1YmFhZGVmZWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNYW5hZ2VyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrTWFuYWdlci5j
cHAKQEAgLTMzOCw3ICszMzgsNyBAQCB2b2lkIFdlYkxvY2tNYW5hZ2VyOjpzaWduYWxUb0Fib3J0
VGhlUmVxdWVzdChXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmllcikKICAgICAgICAgaWYg
KHdhc0Fib3J0ZWQgJiYgd2Vha1RoaXMpCiAgICAgICAgICAgICB3ZWFrVGhpcy0+bV9wZW5kaW5n
UmVxdWVzdHMucmVtb3ZlKGxvY2tJZGVudGlmaWVyKTsKICAgICB9KTsKLSAgICBzZXR0bGVSZWxl
YXNlUHJvbWlzZShsb2NrSWRlbnRpZmllciwgRXhjZXB0aW9uIHsgQWJvcnRFcnJvciwgIkxvY2sg
cmVxdWVzdCB3YXMgYWJvcnRlZCB2aWEgQWJvcnRTaWduYWwiIH0pOworICAgIHNldHRsZVJlbGVh
c2VQcm9taXNlKGxvY2tJZGVudGlmaWVyLCBFeGNlcHRpb24geyBBYm9ydEVycm9yLCAiTG9jayBy
ZXF1ZXN0IHdhcyBhYm9ydGVkIHZpYSBBYm9ydFNpZ25hbCJfcyB9KTsKIH0KIAogdm9pZCBXZWJM
b2NrTWFuYWdlcjo6c2V0dGxlUmVsZWFzZVByb21pc2UoV2ViTG9ja0lkZW50aWZpZXIgbG9ja0lk
ZW50aWZpZXIsIEV4Y2VwdGlvbk9yPEpTQzo6SlNWYWx1ZT4mJiByZXN1bHQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTGlzdGVuZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0xpc3RlbmVyLmNwcAppbmRleCAwMjBl
NzZmNDM2NGU2ZGVmOGY4MTcyNGRiN2MyZmQ4YWU1NzAyMTc5Li43NmM3NmQ3NTQ0ZTcwYzlhY2Qz
YmRkZjk2ZjM0YzhhYzZiYTlmZGZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvTGlzdGVuZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9MaXN0ZW5lci5jcHAKQEAgLTQwLDE1ICs0MCwxNSBAQAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBBdWRpb0xpc3RlbmVyOjpBdWRpb0xpc3RlbmVyKEJhc2VBdWRpb0NvbnRl
eHQmIGNvbnRleHQpCi0gICAgOiBtX3Bvc2l0aW9uWChBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4
dCwgInBvc2l0aW9uWCIsIDAuMCwgLUZMVF9NQVgsIEZMVF9NQVgsIEF1dG9tYXRpb25SYXRlOjpB
UmF0ZSkpCi0gICAgLCBtX3Bvc2l0aW9uWShBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCwgInBv
c2l0aW9uWSIsIDAuMCwgLUZMVF9NQVgsIEZMVF9NQVgsIEF1dG9tYXRpb25SYXRlOjpBUmF0ZSkp
Ci0gICAgLCBtX3Bvc2l0aW9uWihBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCwgInBvc2l0aW9u
WiIsIDAuMCwgLUZMVF9NQVgsIEZMVF9NQVgsIEF1dG9tYXRpb25SYXRlOjpBUmF0ZSkpCi0gICAg
LCBtX2ZvcndhcmRYKEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0LCAiZm9yd2FyZFgiLCAwLjAs
IC1GTFRfTUFYLCBGTFRfTUFYLCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQotICAgICwgbV9mb3J3
YXJkWShBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCwgImZvcndhcmRZIiwgMC4wLCAtRkxUX01B
WCwgRkxUX01BWCwgQXV0b21hdGlvblJhdGU6OkFSYXRlKSkKLSAgICAsIG1fZm9yd2FyZFooQXVk
aW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJmb3J3YXJkWiIsIC0xLjAsIC1GTFRfTUFYLCBGTFRf
TUFYLCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQotICAgICwgbV91cFgoQXVkaW9QYXJhbTo6Y3Jl
YXRlKGNvbnRleHQsICJ1cFgiLCAwLjAsIC1GTFRfTUFYLCBGTFRfTUFYLCBBdXRvbWF0aW9uUmF0
ZTo6QVJhdGUpKQotICAgICwgbV91cFkoQXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJ1cFki
LCAxLjAsIC1GTFRfTUFYLCBGTFRfTUFYLCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQotICAgICwg
bV91cFooQXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJ1cFoiLCAwLjAsIC1GTFRfTUFYLCBG
TFRfTUFYLCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQorICAgIDogbV9wb3NpdGlvblgoQXVkaW9Q
YXJhbTo6Y3JlYXRlKGNvbnRleHQsICJwb3NpdGlvblgiX3MsIDAuMCwgLUZMVF9NQVgsIEZMVF9N
QVgsIEF1dG9tYXRpb25SYXRlOjpBUmF0ZSkpCisgICAgLCBtX3Bvc2l0aW9uWShBdWRpb1BhcmFt
OjpjcmVhdGUoY29udGV4dCwgInBvc2l0aW9uWSJfcywgMC4wLCAtRkxUX01BWCwgRkxUX01BWCwg
QXV0b21hdGlvblJhdGU6OkFSYXRlKSkKKyAgICAsIG1fcG9zaXRpb25aKEF1ZGlvUGFyYW06OmNy
ZWF0ZShjb250ZXh0LCAicG9zaXRpb25aIl9zLCAwLjAsIC1GTFRfTUFYLCBGTFRfTUFYLCBBdXRv
bWF0aW9uUmF0ZTo6QVJhdGUpKQorICAgICwgbV9mb3J3YXJkWChBdWRpb1BhcmFtOjpjcmVhdGUo
Y29udGV4dCwgImZvcndhcmRYIl9zLCAwLjAsIC1GTFRfTUFYLCBGTFRfTUFYLCBBdXRvbWF0aW9u
UmF0ZTo6QVJhdGUpKQorICAgICwgbV9mb3J3YXJkWShBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4
dCwgImZvcndhcmRZIl9zLCAwLjAsIC1GTFRfTUFYLCBGTFRfTUFYLCBBdXRvbWF0aW9uUmF0ZTo6
QVJhdGUpKQorICAgICwgbV9mb3J3YXJkWihBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCwgImZv
cndhcmRaIl9zLCAtMS4wLCAtRkxUX01BWCwgRkxUX01BWCwgQXV0b21hdGlvblJhdGU6OkFSYXRl
KSkKKyAgICAsIG1fdXBYKEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0LCAidXBYIl9zLCAwLjAs
IC1GTFRfTUFYLCBGTFRfTUFYLCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQorICAgICwgbV91cFko
QXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJ1cFkiX3MsIDEuMCwgLUZMVF9NQVgsIEZMVF9N
QVgsIEF1dG9tYXRpb25SYXRlOjpBUmF0ZSkpCisgICAgLCBtX3VwWihBdWRpb1BhcmFtOjpjcmVh
dGUoY29udGV4dCwgInVwWiJfcywgMC4wLCAtRkxUX01BWCwgRkxUX01BWCwgQXV0b21hdGlvblJh
dGU6OkFSYXRlKSkKICAgICAsIG1fcG9zaXRpb25YVmFsdWVzKEF1ZGlvVXRpbGl0aWVzOjpyZW5k
ZXJRdWFudHVtU2l6ZSkKICAgICAsIG1fcG9zaXRpb25ZVmFsdWVzKEF1ZGlvVXRpbGl0aWVzOjpy
ZW5kZXJRdWFudHVtU2l6ZSkKICAgICAsIG1fcG9zaXRpb25aVmFsdWVzKEF1ZGlvVXRpbGl0aWVz
OjpyZW5kZXJRdWFudHVtU2l6ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9QYXJhbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvUGFyYW0uY3BwCmluZGV4IGJlMTJiYjVhYTAyN2U1M2ExMzQ2ODQ3ZTZjOTkzYzIzZjlm
MDE4OTguLjBkNDZhM2Y5MDRjYzRkMDkzODhiNGZiMDEyMzNjYjYwOGVjN2Y2ZDIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtLmNwcApAQCAtMTA5LDcg
KzEwOSw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEF1ZGlvUGFyYW06OnNldFZhbHVlRm9yQmluZGlu
Z3MoZmxvYXQgdmFsdWUpCiBFeGNlcHRpb25Pcjx2b2lkPiBBdWRpb1BhcmFtOjpzZXRBdXRvbWF0
aW9uUmF0ZShBdXRvbWF0aW9uUmF0ZSBhdXRvbWF0aW9uUmF0ZSkKIHsKICAgICBpZiAobV9hdXRv
bWF0aW9uUmF0ZU1vZGUgPT0gQXV0b21hdGlvblJhdGVNb2RlOjpGaXhlZCkKLSAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiYXV0b21hdGlvblJhdGUgY2Fubm90
IGJlIGNoYW5nZWQgZm9yIHRoaXMgbm9kZSIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7
IEludmFsaWRTdGF0ZUVycm9yLCAiYXV0b21hdGlvblJhdGUgY2Fubm90IGJlIGNoYW5nZWQgZm9y
IHRoaXMgbm9kZSJfcyB9OwogCiAgICAgbV9hdXRvbWF0aW9uUmF0ZSA9IGF1dG9tYXRpb25SYXRl
OwogICAgIHJldHVybiB7IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvUGFyYW1UaW1lbGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvUGFyYW1UaW1lbGluZS5jcHAKaW5kZXggZTU5YWE3ZTZkODQyZmFlYmZkYzM4
YTA1OWVjOTVjODE5M2U1NDZhNi4uY2MzNGRjMzRlNTA3MWQ3NGJkNTJjMWRiNjg4YmM5ZjIxNDhl
NTNkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1Bh
cmFtVGltZWxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9QYXJhbVRpbWVsaW5lLmNwcApAQCAtMTcyLDcgKzE3Miw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+
IEF1ZGlvUGFyYW1UaW1lbGluZTo6aW5zZXJ0RXZlbnQoUGFyYW1FdmVudCYmIGV2ZW50KQogICAg
ICAgICAgICAgLy8gT3RoZXJ3aXNlLCBtYWtlIHN1cmUgdGhpcyBldmVudCBkb2Vzbid0IG92ZXJs
YXAgYW55IGV4aXN0aW5nIFNldFZhbHVlQ3VydmUgZXZlbnQuCiAgICAgICAgICAgICBhdXRvIHBh
cmVudEV2ZW50RW5kVGltZSA9IHBhcmFtRXZlbnQudGltZSgpICsgcGFyYW1FdmVudC5kdXJhdGlv
bigpOwogICAgICAgICAgICAgaWYgKGV2ZW50LnRpbWUoKSA+PSBwYXJhbUV2ZW50LnRpbWUoKSAm
JiBldmVudC50aW1lKCkgPCBwYXJlbnRFdmVudEVuZFRpbWUpCi0gICAgICAgICAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yLCAiRXZlbnRzIGFyZSBvdmVybGFwcGlu
ZyIgfTsKKyAgICAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJy
b3IsICJFdmVudHMgYXJlIG92ZXJsYXBwaW5nIl9zIH07CiAgICAgICAgIH0KIAogICAgICAgICBp
ZiAocGFyYW1FdmVudC50aW1lKCkgPiBpbnNlcnRUaW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CaXF1YWRGaWx0ZXJOb2RlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQmlxdWFkRmlsdGVyTm9kZS5jcHAKaW5kZXggMTQwZWQwYTI2
ZTU3NTUxNzAxNGFjMzNhNjQzMTU1ODkwOWMwMjcyYy4uNWQ3MzZjZmNiMjU1OTE4Zjg5NzVkN2Iz
YjFmNzhmYjBiMDM0NTE2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9CaXF1YWRGaWx0ZXJOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0JpcXVhZEZpbHRlck5vZGUuY3BwCkBAIC03NCw3ICs3NCw3IEBAIEV4Y2VwdGlvbk9y
PHZvaWQ+IEJpcXVhZEZpbHRlck5vZGU6OmdldEZyZXF1ZW5jeVJlc3BvbnNlKGNvbnN0IFJlZjxG
bG9hdDMyQXJyYXk+CiB7CiAgICAgdW5zaWduZWQgbGVuZ3RoID0gZnJlcXVlbmN5SHotPmxlbmd0
aCgpOwogICAgIGlmIChtYWdSZXNwb25zZS0+bGVuZ3RoKCkgIT0gbGVuZ3RoIHx8IHBoYXNlUmVz
cG9uc2UtPmxlbmd0aCgpICE9IGxlbmd0aCkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElu
dmFsaWRBY2Nlc3NFcnJvciwgIlRoZSBhcnJheXMgcGFzc2VkIGFzIGFyZ3VtZW50cyBtdXN0IGhh
dmUgdGhlIHNhbWUgbGVuZ3RoIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxp
ZEFjY2Vzc0Vycm9yLCAiVGhlIGFycmF5cyBwYXNzZWQgYXMgYXJndW1lbnRzIG11c3QgaGF2ZSB0
aGUgc2FtZSBsZW5ndGgiX3MgfTsKIAogICAgIGlmIChsZW5ndGgpCiAgICAgICAgIGJpcXVhZFBy
b2Nlc3NvcigpLT5nZXRGcmVxdWVuY3lSZXNwb25zZShsZW5ndGgsIGZyZXF1ZW5jeUh6LT5kYXRh
KCksIG1hZ1Jlc3BvbnNlLT5kYXRhKCksIHBoYXNlUmVzcG9uc2UtPmRhdGEoKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0JpcXVhZFByb2Nlc3Nvci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0JpcXVhZFByb2Nlc3Nvci5jcHAKaW5k
ZXggOWRmNjI5ZDdlYmZkZDZmYjc0MTVmM2ViNzc5NzI2YmJhYmNhOGYxYy4uZjlhNTQzNGU4ODA1
ZDdkZTQ5MThhNmZiZDg3NTRkMWE1ZWQyNzIxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9CaXF1YWRQcm9jZXNzb3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vQmlxdWFkUHJvY2Vzc29yLmNwcApAQCAtMzUsMTAgKzM1LDEwIEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAKIEJpcXVhZFByb2Nlc3Nvcjo6QmlxdWFkUHJvY2Vz
c29yKEJhc2VBdWRpb0NvbnRleHQmIGNvbnRleHQsIGZsb2F0IHNhbXBsZVJhdGUsIHNpemVfdCBu
dW1iZXJPZkNoYW5uZWxzLCBib29sIGF1dG9Jbml0aWFsaXplKQogICAgIDogQXVkaW9EU1BLZXJu
ZWxQcm9jZXNzb3Ioc2FtcGxlUmF0ZSwgbnVtYmVyT2ZDaGFubmVscykKLSAgICAsIG1fcGFyYW1l
dGVyMShBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCwgImZyZXF1ZW5jeSIsIDM1MC4wLCAwLjAs
IDAuNSAqIHNhbXBsZVJhdGUsIEF1dG9tYXRpb25SYXRlOjpBUmF0ZSkpCi0gICAgLCBtX3BhcmFt
ZXRlcjIoQXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJRIiwgMSwgLUZMVF9NQVgsIEZMVF9N
QVgsIEF1dG9tYXRpb25SYXRlOjpBUmF0ZSkpCi0gICAgLCBtX3BhcmFtZXRlcjMoQXVkaW9QYXJh
bTo6Y3JlYXRlKGNvbnRleHQsICJnYWluIiwgMC4wLCAtRkxUX01BWCwgNDAgKiBzdGQ6OmxvZzEw
KHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+OjptYXgoKSksIEF1dG9tYXRpb25SYXRlOjpBUmF0
ZSkpCi0gICAgLCBtX3BhcmFtZXRlcjQoQXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJkZXR1
bmUiLCAwLjAsIC0xNTM2MDAsIDE1MzYwMCwgQXV0b21hdGlvblJhdGU6OkFSYXRlKSkKKyAgICAs
IG1fcGFyYW1ldGVyMShBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCwgImZyZXF1ZW5jeSJfcywg
MzUwLjAsIDAuMCwgMC41ICogc2FtcGxlUmF0ZSwgQXV0b21hdGlvblJhdGU6OkFSYXRlKSkKKyAg
ICAsIG1fcGFyYW1ldGVyMihBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCwgIlEiX3MsIDEsIC1G
TFRfTUFYLCBGTFRfTUFYLCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQorICAgICwgbV9wYXJhbWV0
ZXIzKEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0LCAiZ2FpbiJfcywgMC4wLCAtRkxUX01BWCwg
NDAgKiBzdGQ6OmxvZzEwKHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+OjptYXgoKSksIEF1dG9t
YXRpb25SYXRlOjpBUmF0ZSkpCisgICAgLCBtX3BhcmFtZXRlcjQoQXVkaW9QYXJhbTo6Y3JlYXRl
KGNvbnRleHQsICJkZXR1bmUiX3MsIDAuMCwgLTE1MzYwMCwgMTUzNjAwLCBBdXRvbWF0aW9uUmF0
ZTo6QVJhdGUpKQogewogICAgIGlmIChhdXRvSW5pdGlhbGl6ZSkKICAgICAgICAgaW5pdGlhbGl6
ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9EZWxheVBy
b2Nlc3Nvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlbGF5UHJvY2Vz
c29yLmNwcAppbmRleCBhZWU0MGU5NGU2NWRlZTRiZjg0NDI1MTI5NGUzMTQzNzhhZDA0MmE1Li4x
ZjkwY2JjOWYxOTcwN2E5YmMxN2ExMTNiY2M0YjFkNThmOTQwNTA5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlbGF5UHJvY2Vzc29yLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlbGF5UHJvY2Vzc29yLmNwcApAQCAtMzQsNyAr
MzQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIERlbGF5UHJvY2Vzc29yOjpEZWxheVByb2Nl
c3NvcihCYXNlQXVkaW9Db250ZXh0JiBjb250ZXh0LCBmbG9hdCBzYW1wbGVSYXRlLCB1bnNpZ25l
ZCBudW1iZXJPZkNoYW5uZWxzLCBkb3VibGUgbWF4RGVsYXlUaW1lKQogICAgIDogQXVkaW9EU1BL
ZXJuZWxQcm9jZXNzb3Ioc2FtcGxlUmF0ZSwgbnVtYmVyT2ZDaGFubmVscykKLSAgICAsIG1fZGVs
YXlUaW1lKEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0LCAiZGVsYXlUaW1lIiwgMC4wLCAwLjAs
IG1heERlbGF5VGltZSwgQXV0b21hdGlvblJhdGU6OkFSYXRlKSkKKyAgICAsIG1fZGVsYXlUaW1l
KEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0LCAiZGVsYXlUaW1lIl9zLCAwLjAsIDAuMCwgbWF4
RGVsYXlUaW1lLCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQogewogCiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1dhdmVTaGFwZXJOb2RlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vV2F2ZVNoYXBlck5vZGUuY3BwCmluZGV4IGZjMTUy
ODI3YjNhMGNjMjdhOGQ0M2I1NDU0NGZmNGJjNWJjNDljOWIuLjY0MjljMzA1MTYxMmFmZWU4MmIz
ZmNiZDU4YjJmNjA3NDBmZjk0ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vV2F2ZVNoYXBlck5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vV2F2ZVNoYXBlck5vZGUuY3BwCkBAIC00Myw3ICs0Myw3IEBAIEV4Y2VwdGlvbk9y
PFJlZjxXYXZlU2hhcGVyTm9kZT4+IFdhdmVTaGFwZXJOb2RlOjpjcmVhdGUoQmFzZUF1ZGlvQ29u
dGV4dCYgY29udGV4CiAgICAgaWYgKG9wdGlvbnMuY3VydmUpIHsKICAgICAgICAgY3VydmUgPSBG
bG9hdDMyQXJyYXk6OnRyeUNyZWF0ZShvcHRpb25zLmN1cnZlLT5kYXRhKCksIG9wdGlvbnMuY3Vy
dmUtPnNpemUoKSk7CiAgICAgICAgIGlmICghY3VydmUpCi0gICAgICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJJbnZhbGlkIGN1cnZlIHBhcmFtZXRlciIgfTsK
KyAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkludmFs
aWQgY3VydmUgcGFyYW1ldGVyIl9zIH07CiAgICAgfQogCiAgICAgYXV0byBub2RlID0gYWRvcHRS
ZWYoKm5ldyBXYXZlU2hhcGVyTm9kZShjb250ZXh0KSk7CkBAIC03Niw3ICs3Niw3IEBAIEV4Y2Vw
dGlvbk9yPHZvaWQ+IFdhdmVTaGFwZXJOb2RlOjpzZXRDdXJ2ZUZvckJpbmRpbmdzKFJlZlB0cjxG
bG9hdDMyQXJyYXk+JiYgY3VyCiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsgCiAgICAgREVC
VUdfTE9HKExPR0lERU5USUZJRVIpOwogICAgIGlmIChjdXJ2ZSAmJiBjdXJ2ZS0+bGVuZ3RoKCkg
PCAyKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJMZW5n
dGggb2YgY3VydmUgYXJyYXkgY2Fubm90IGJlIGxlc3MgdGhhbiAyIiB9OworICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJMZW5ndGggb2YgY3VydmUgYXJyYXkg
Y2Fubm90IGJlIGxlc3MgdGhhbiAyIl9zIH07CiAKICAgICBpZiAoY3VydmUpIHsKICAgICAgICAg
Ly8gVGhlIHNwZWNpZmljYXRpb24gc3RhdGVzIHRoYXQgd2Ugc2hvdWxkIG1haW50YWluIGFuIGlu
dGVybmFsIGNvcHkgb2YgdGhlIGN1cnZlIHNvIHRoYXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRvckNvb3JkaW5hdG9yLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRvckNvb3JkaW5hdG9yLmNwcApp
bmRleCBiYzViZWRmNzM0MjlhMGI1MmVkYzBlZDFkNGU3NDVhOTM5OGZlZTk1Li5hNzdjZGFkNGQ1
Y2RiYjU0MzE0NjhkNTVkYTNlYzM5NjRjMWM2NzNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JDb29yZGluYXRvci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuY3Bw
CkBAIC01OCw3ICs1OCw3IEBAIHN0YXRpYyBib29sIG5lZWRzQXBwSWRRdWlya3MoY29uc3QgU3Ry
aW5nJiBob3N0LCBjb25zdCBTdHJpbmcmIGFwcElkKQogICAgIC8vIGV4aXN0aW5nIGRldmljZSBy
ZWdpc3RyYXRpb25zIHRoYXQgYXV0aGVudGljYXRlICdnb29nbGUuY29tJyBhZ2FpbnN0ICdnc3Rh
dGljLmNvbScuIEZpcmVmb3ggYW5kIG90aGVyIGJyb3dzZXJzCiAgICAgLy8gaGF2ZSBhZ3JlZWQg
dG8gZ3JhbnQgYW4gZXhjZXB0aW9uIHRvIHRoZSBBcHBJZCBydWxlcyBmb3IgYSBsaW1pdGVkIHRp
bWUgcGVyaW9kICg1IHllYXJzIGZyb20gSmFudWFyeSwgMjAxOCkgdG8KICAgICAvLyBhbGxvdyBl
eGlzdGluZyBHb29nbGUgdXNlcnMgdG8gc2VhbWxlc3NseSB0cmFuc2l0aW9uIHRvIHByb3BlciBX
ZWJBdXRoTiBiZWhhdmlvci4KLSAgICBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uo
aG9zdCwgImdvb2dsZS5jb20iKSB8fCBob3N0LmVuZHNXaXRoSWdub3JpbmdBU0NJSUNhc2UoIi5n
b29nbGUuY29tIikpCisgICAgaWYgKGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGhvc3Qs
ICJnb29nbGUuY29tIikgfHwgaG9zdC5lbmRzV2l0aElnbm9yaW5nQVNDSUlDYXNlKCIuZ29vZ2xl
LmNvbSJfcykpCiAgICAgICAgIHJldHVybiAoYXBwSWQgPT0gImh0dHBzOi8vd3d3LmdzdGF0aWMu
Y29tL3NlY3VyaXR5a2V5L29yaWdpbnMuanNvbiJfcykgfHwgKGFwcElkID09ICJodHRwczovL3d3
dy5nc3RhdGljLmNvbS9zZWN1cml0eWtleS9hL2dvb2dsZS5jb20vb3JpZ2lucy5qc29uIl9zKTsK
ICAgICByZXR1cm4gZmFsc2U7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1dGhuL1dlYkF1dGhlbnRpY2F0aW9uVXRpbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdXRobi9XZWJBdXRoZW50aWNhdGlvblV0aWxzLmNwcAppbmRleCBjMWZiZjA1NmNj
NmFiNWUxODI5ODgyMjQ2MzQ0MWI0YTg1ZWFiZDRjLi4zMzJlMmJlNzk1YTAxZjFlMDQ2NjJkYzQx
MTNiYWVhYzQ0MDcxZTc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
dGhuL1dlYkF1dGhlbnRpY2F0aW9uVXRpbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXV0aG4vV2ViQXV0aGVudGljYXRpb25VdGlscy5jcHAKQEAgLTEzOCw3ICsxMzgsNyBA
QCBjYm9yOjpDQk9SVmFsdWU6Ok1hcFZhbHVlIGJ1aWxkQXR0ZXN0YXRpb25NYXAoVmVjdG9yPHVp
bnQ4X3Q+JiYgYXV0aERhdGEsIFN0cmluZwogICAgICAgICBjb25zdCBzaXplX3QgYWFndWlkT2Zm
c2V0ID0gcnBJZEhhc2hMZW5ndGggKyBmbGFnc0xlbmd0aCArIHNpZ25Db3VudGVyTGVuZ3RoOwog
ICAgICAgICBpZiAoYXV0aERhdGEuc2l6ZSgpID49IGFhZ3VpZE9mZnNldCArIGFhZ3VpZExlbmd0
aCkKICAgICAgICAgICAgIG1lbXNldChhdXRoRGF0YS5kYXRhKCkgKyBhYWd1aWRPZmZzZXQsIDAs
IGFhZ3VpZExlbmd0aCk7Ci0gICAgICAgIGZvcm1hdCA9IG5vbmVBdHRlc3RhdGlvblZhbHVlOwor
ICAgICAgICBmb3JtYXQgPSBTdHJpbmcgeyBub25lQXR0ZXN0YXRpb25WYWx1ZSB9OwogICAgICAg
ICBzdGF0ZW1lbnRNYXAuY2xlYXIoKTsKICAgICB9CiAgICAgYXR0ZXN0YXRpb25PYmplY3RNYXBb
Y2Jvcjo6Q0JPUlZhbHVlKCJhdXRoRGF0YSIpXSA9IGNib3I6OkNCT1JWYWx1ZShXVEZNb3ZlKGF1
dGhEYXRhKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2Zp
ZG8vRGV2aWNlUmVzcG9uc2VDb252ZXJ0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdXRobi9maWRvL0RldmljZVJlc3BvbnNlQ29udmVydGVyLmNwcAppbmRleCBmMjFjNWVlN2Ey
NWY1ZTkyNzU0NDMxZDM1NGE4N2E4ZDIxYzU4M2M4Li41ZjUwNTI1Mjg0ZTllMWU0ZmNhYzJjMWRm
ZTgxZWU2MTFiNDU2ZjFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
dGhuL2ZpZG8vRGV2aWNlUmVzcG9uc2VDb252ZXJ0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXV0aG4vZmlkby9EZXZpY2VSZXNwb25zZUNvbnZlcnRlci5jcHAKQEAgLTEy
Niw3ICsxMjYsNyBAQCBSZWZQdHI8QXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2U+IHJl
YWRDVEFQTWFrZUNyZWRlbnRpYWxSZXNwb25zZShjb25zdCBWZQogICAgICAgICAvLyBUaGUgcmVh
c29uIHdoeSB3ZSBjYW4ndCBkaXJlY3RseSBwYXNzIGF1dGhlbnRpY2F0b3JEYXRhL2Zvcm1hdC9h
dHRTdG10IHRvIGJ1aWxkQXR0ZXN0YXRpb25PYmplY3QKICAgICAgICAgLy8gaXMgdGhhdCB0aGV5
IGFyZSBDQk9SVmFsdWUgaW5zdGVhZCBvZiB0aGUgcmF3IHR5cGUuCiAgICAgICAgIC8vIEFsc28s
IGZvcm1hdCBhbmQgYXR0U3RtdCBhcmUgb21pdHRlZCBhcyB0aGV5IGFyZSBub3QgdXNlZnVsIGlu
IG5vbmUgYXR0ZXN0YXRpb24uCi0gICAgICAgIGF0dGVzdGF0aW9uT2JqZWN0ID0gYnVpbGRBdHRl
c3RhdGlvbk9iamVjdChWZWN0b3I8dWludDhfdD4oYXV0aGVudGljYXRvckRhdGEuZ2V0Qnl0ZVN0
cmluZygpKSwgIiIsIHsgfSwgYXR0ZXN0YXRpb24pOworICAgICAgICBhdHRlc3RhdGlvbk9iamVj
dCA9IGJ1aWxkQXR0ZXN0YXRpb25PYmplY3QoVmVjdG9yPHVpbnQ4X3Q+KGF1dGhlbnRpY2F0b3JE
YXRhLmdldEJ5dGVTdHJpbmcoKSksICIiX3MsIHsgfSwgYXR0ZXN0YXRpb24pOwogICAgIH0gZWxz
ZSB7CiAgICAgICAgIENCT1I6Ok1hcFZhbHVlIGF0dGVzdGF0aW9uT2JqZWN0TWFwOwogICAgICAg
ICBhdHRlc3RhdGlvbk9iamVjdE1hcFtDQk9SKCJhdXRoRGF0YSIpXSA9IFdURk1vdmUoYXV0aGVu
dGljYXRvckRhdGEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRo
bi9maWRvL1Bpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vUGlu
LmNwcAppbmRleCA5ZmE2NzNmMTgyY2NjYjA0NjIxNzMzYWUzOGM1MjM2ZDM2MmI1Yzg4Li5iNDRm
OTBiMDE0MzQyN2QxNTI2N2Q3YzlmNjdmMGNmYjAyYzNmYjNkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vUGluLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vUGluLmNwcApAQCAtMTcxLDcgKzE3MSw3IEBAIHN0ZDo6
b3B0aW9uYWw8S2V5QWdyZWVtZW50UmVzcG9uc2U+IEtleUFncmVlbWVudFJlc3BvbnNlOjpwYXJz
ZUZyb21DT1NFKGNvbnN0IENCCiAKICAgICBjb25zdCBhdXRvJiB4ID0geEl0LT5zZWNvbmQuZ2V0
Qnl0ZVN0cmluZygpOwogICAgIGNvbnN0IGF1dG8mIHkgPSB5SXQtPnNlY29uZC5nZXRCeXRlU3Ry
aW5nKCk7Ci0gICAgYXV0byBwZWVyS2V5ID0gQ3J5cHRvS2V5RUM6OmltcG9ydFJhdyhDcnlwdG9B
bGdvcml0aG1JZGVudGlmaWVyOjpFQ0RILCAiUC0yNTYiLCBlbmNvZGVSYXdQdWJsaWNLZXkoeCwg
eSksIHRydWUsIENyeXB0b0tleVVzYWdlRGVyaXZlQml0cyk7CisgICAgYXV0byBwZWVyS2V5ID0g
Q3J5cHRvS2V5RUM6OmltcG9ydFJhdyhDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpFQ0RILCAi
UC0yNTYiX3MsIGVuY29kZVJhd1B1YmxpY0tleSh4LCB5KSwgdHJ1ZSwgQ3J5cHRvS2V5VXNhZ2VE
ZXJpdmVCaXRzKTsKICAgICBpZiAoIXBlZXJLZXkpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CiAKQEAgLTI0Nyw3ICsyNDcsNyBAQCBzdGQ6Om9wdGlvbmFsPFRva2VuUmVxdWVzdD4gVG9r
ZW5SZXF1ZXN0Ojp0cnlDcmVhdGUoY29uc3QgQ1N0cmluZyYgcGluLCBjb25zdCBDcgogICAgIC8v
IFRoZSBmb2xsb3dpbmcgaW1wbGVtZW50cyBTZWN0aW9uIDUuNS40IEdldHRpbmcgc2hhcmVkU2Vj
cmV0IGZyb20gQXV0aGVudGljYXRvci4KICAgICAvLyBodHRwczovL2ZpZG9hbGxpYW5jZS5vcmcv
c3BlY3MvZmlkby12Mi4wLXBzLTIwMTkwMTMwL2ZpZG8tY2xpZW50LXRvLWF1dGhlbnRpY2F0b3It
cHJvdG9jb2wtdjIuMC1wcy0yMDE5MDEzMC5odG1sI2dldHRpbmdTaGFyZWRTZWNyZXQKICAgICAv
LyAxLiBHZW5lcmF0ZSBhIFAyNTYga2V5IHBhaXIuCi0gICAgYXV0byBrZXlQYWlyUmVzdWx0ID0g
Q3J5cHRvS2V5RUM6OmdlbmVyYXRlUGFpcihDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpFQ0RI
LCAiUC0yNTYiLCB0cnVlLCBDcnlwdG9LZXlVc2FnZURlcml2ZUJpdHMpOworICAgIGF1dG8ga2V5
UGFpclJlc3VsdCA9IENyeXB0b0tleUVDOjpnZW5lcmF0ZVBhaXIoQ3J5cHRvQWxnb3JpdGhtSWRl
bnRpZmllcjo6RUNESCwgIlAtMjU2Il9zLCB0cnVlLCBDcnlwdG9LZXlVc2FnZURlcml2ZUJpdHMp
OwogICAgIEFTU0VSVCgha2V5UGFpclJlc3VsdC5oYXNFeGNlcHRpb24oKSk7CiAgICAgYXV0byBr
ZXlQYWlyID0ga2V5UGFpclJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL1UyZlJlc3BvbnNlQ29udmVy
dGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9VMmZSZXNwb25z
ZUNvbnZlcnRlci5jcHAKaW5kZXggM2YzNjZhYTI3MDY4NDk3NDVhY2EyODE3OWI1OTk2ZTY2NmVl
MjZlZC4uYTRmZGUxNWZmYmZkNTU1NzdiMjI5ZDg2NDljNjc2NDhjZTdlYjk2ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL1UyZlJlc3BvbnNlQ29udmVy
dGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vVTJmUmVz
cG9uc2VDb252ZXJ0ZXIuY3BwCkBAIC0xNTgsNyArMTU4LDcgQEAgUmVmUHRyPEF1dGhlbnRpY2F0
b3JBdHRlc3RhdGlvblJlc3BvbnNlPiByZWFkVTJmUmVnaXN0ZXJSZXNwb25zZShjb25zdCBTdHJp
bmcmIHIKICAgICBpZiAoZmlkb0F0dGVzdGF0aW9uU3RhdGVtZW50LmVtcHR5KCkpCiAgICAgICAg
IHJldHVybiBudWxscHRyOwogCi0gICAgYXV0byBhdHRlc3RhdGlvbk9iamVjdCA9IGJ1aWxkQXR0
ZXN0YXRpb25PYmplY3QoV1RGTW92ZShhdXRoRGF0YSksICJmaWRvLXUyZiIsIFdURk1vdmUoZmlk
b0F0dGVzdGF0aW9uU3RhdGVtZW50KSwgYXR0ZXN0YXRpb24pOworICAgIGF1dG8gYXR0ZXN0YXRp
b25PYmplY3QgPSBidWlsZEF0dGVzdGF0aW9uT2JqZWN0KFdURk1vdmUoYXV0aERhdGEpLCAiZmlk
by11MmYiX3MsIFdURk1vdmUoZmlkb0F0dGVzdGF0aW9uU3RhdGVtZW50KSwgYXR0ZXN0YXRpb24p
OwogCiAgICAgcmV0dXJuIEF1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlOjpjcmVhdGUo
Y3JlZGVudGlhbElkLCBhdHRlc3RhdGlvbk9iamVjdCwgYXR0YWNobWVudCk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0NoYW5nZVZlcnNpb25XcmFw
cGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvQ2hhbmdlVmVyc2lv
bldyYXBwZXIuY3BwCmluZGV4IDk0ZWY1MDk1NThiNmMyNjU5ZmRmYTNkNjg5YjRiMGQyODM3M2Q4
YTguLjM1YzBlMTZlM2UzNTEzMjMzYzIyZDhmM2FhNTY0NTIwM2Q5ODQ3NDcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvQ2hhbmdlVmVyc2lvbldyYXBwZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvQ2hhbmdlVmVyc2lv
bldyYXBwZXIuY3BwCkBAIC01Myw3ICs1Myw3IEBAIGJvb2wgQ2hhbmdlVmVyc2lvbldyYXBwZXI6
OnBlcmZvcm1QcmVmbGlnaHQoU1FMVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uKQogICAgIH0KIAog
ICAgIGlmIChhY3R1YWxWZXJzaW9uICE9IG1fb2xkVmVyc2lvbikgewotICAgICAgICBtX3NxbEVy
cm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6VkVSU0lPTl9FUlIsICJjdXJyZW50IHZl
cnNpb24gb2YgdGhlIGRhdGFiYXNlIGFuZCBgb2xkVmVyc2lvbmAgYXJndW1lbnQgZG8gbm90IG1h
dGNoIik7CisgICAgICAgIG1fc3FsRXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpW
RVJTSU9OX0VSUiwgImN1cnJlbnQgdmVyc2lvbiBvZiB0aGUgZGF0YWJhc2UgYW5kIGBvbGRWZXJz
aW9uYCBhcmd1bWVudCBkbyBub3QgbWF0Y2giX3MpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RP
TVdpbmRvd1dlYkRhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJh
c2UvRE9NV2luZG93V2ViRGF0YWJhc2UuY3BwCmluZGV4IDhhYzJhZDZhZjVlNGEzYmZmODRjMjY3
NmMwZTI0ZTZiYmMyZjNiNWMuLjU2YWMwZTQyMmRkNGRmOTM2ZTNjY2IwMGNlNWY0NWMzZDY1NTQx
NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRE9NV2lu
ZG93V2ViRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJh
c2UvRE9NV2luZG93V2ViRGF0YWJhc2UuY3BwCkBAIC00NSw3ICs0NSw3IEBAIEV4Y2VwdGlvbk9y
PFJlZlB0cjxEYXRhYmFzZT4+IERPTVdpbmRvd1dlYkRhdGFiYXNlOjpvcGVuRGF0YWJhc2UoRE9N
V2luZG93JiB3aW5kCiAgICAgYXV0byogZG9jdW1lbnQgPSB3aW5kb3cuZG9jdW1lbnQoKTsKICAg
ICBpZiAoIWRvY3VtZW50KQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgU2VjdXJpdHlFcnJv
ciB9OwotICAgIGRvY3VtZW50LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpTdG9y
YWdlLCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsICJXZWIgU1FMIGlzIGRlcHJlY2F0ZWQuIFBsZWFz
ZSB1c2UgSW5kZXhlZERCIGluc3RlYWQuIik7CisgICAgZG9jdW1lbnQtPmFkZENvbnNvbGVNZXNz
YWdlKE1lc3NhZ2VTb3VyY2U6OlN0b3JhZ2UsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgIldlYiBT
UUwgaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSBJbmRleGVkREIgaW5zdGVhZC4iX3MpOwogCiAg
ICAgYXV0byYgc2VjdXJpdHlPcmlnaW4gPSBkb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKTsKICAg
ICBpZiAoIXNlY3VyaXR5T3JpZ2luLmNhbkFjY2Vzc0RhdGFiYXNlKCZkb2N1bWVudC0+dG9wT3Jp
Z2luKCkpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9E
YXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNl
LmNwcAppbmRleCA3Y2ZiMWM0MTBlNjdkMGIwN2Y3ZTM0OTQ4MmRjMGVlOWY2YjExNmRmLi5jZDBj
NDE0ZmIzMTAwMjQxM2VhMmJmZGQwOTgzMDVkNTFiOWYxZmQyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmNwcApAQCAtMTk4LDcgKzE5OCw3IEBA
IERhdGFiYXNlOjpEYXRhYmFzZShEYXRhYmFzZUNvbnRleHQmIGNvbnRleHQsIGNvbnN0IFN0cmlu
ZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBlCiAgICAgLCBtX2Rpc3BsYXlOYW1lKGRpc3BsYXlOYW1l
Lmlzb2xhdGVkQ29weSgpKQogICAgICwgbV9lc3RpbWF0ZWRTaXplKGVzdGltYXRlZFNpemUpCiAg
ICAgLCBtX2ZpbGVuYW1lKERhdGFiYXNlTWFuYWdlcjo6c2luZ2xldG9uKCkuZnVsbFBhdGhGb3JE
YXRhYmFzZShtX2RvY3VtZW50LT5zZWN1cml0eU9yaWdpbigpLCBtX25hbWUpKQotICAgICwgbV9k
YXRhYmFzZUF1dGhvcml6ZXIoRGF0YWJhc2VBdXRob3JpemVyOjpjcmVhdGUodW5xdWFsaWZpZWRJ
bmZvVGFibGVOYW1lKSkKKyAgICAsIG1fZGF0YWJhc2VBdXRob3JpemVyKERhdGFiYXNlQXV0aG9y
aXplcjo6Y3JlYXRlKFN0cmluZyB7IHVucXVhbGlmaWVkSW5mb1RhYmxlTmFtZSB9KSkKIHsKICAg
ICB7CiAgICAgICAgIExvY2tlciBsb2NrZXIgeyBndWlkTG9jayB9OwpAQCAtNjg3LDcgKzY4Nyw3
IEBAIHZvaWQgRGF0YWJhc2U6OnJ1blRyYW5zYWN0aW9uKFJlZlB0cjxTUUxUcmFuc2FjdGlvbkNh
bGxiYWNrPiYmIGNhbGxiYWNrLCBSZWZQdHI8CiAgICAgaWYgKCFtX2lzVHJhbnNhY3Rpb25RdWV1
ZUVuYWJsZWQpIHsKICAgICAgICAgaWYgKGVycm9yQ2FsbGJhY2spIHsKICAgICAgICAgICAgIG1f
ZG9jdW1lbnQtPmV2ZW50TG9vcCgpLnF1ZXVlVGFzayhUYXNrU291cmNlOjpOZXR3b3JraW5nLCBb
ZXJyb3JDYWxsYmFjayA9IFJlZiB7ICplcnJvckNhbGxiYWNrIH1dKCkgewotICAgICAgICAgICAg
ICAgIGVycm9yQ2FsbGJhY2stPmhhbmRsZUV2ZW50KFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6
OlVOS05PV05fRVJSLCAiZGF0YWJhc2UgaGFzIGJlZW4gY2xvc2VkIikpOworICAgICAgICAgICAg
ICAgIGVycm9yQ2FsbGJhY2stPmhhbmRsZUV2ZW50KFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6
OlVOS05PV05fRVJSLCAiZGF0YWJhc2UgaGFzIGJlZW4gY2xvc2VkIl9zKSk7CiAgICAgICAgICAg
ICB9KTsKICAgICAgICAgfQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlQXV0aG9yaXplci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlQXV0aG9yaXplci5jcHAKaW5kZXgg
ZTJkYzcwNmY1ZDk2NWQyZDdhNWNiYTg3MjE2NmNmNTNhOTgwOGExZi4uZGNmOWViOTUyZGRkMDNi
NGIwZDdhZDg2YTZjY2Q1ZmI0M2UzZGNlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZUF1dGhvcml6ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VBdXRob3JpemVyLmNwcApAQCAtNjIsNjQg
KzYyLDY0IEBAIHZvaWQgRGF0YWJhc2VBdXRob3JpemVyOjphZGRBbGxvd2VkRnVuY3Rpb25zKCkK
IHsKICAgICAvLyBTUUxpdGUgZnVuY3Rpb25zIHVzZWQgdG8gaGVscCBpbXBsZW1lbnQgc29tZSBv
cGVyYXRpb25zCiAgICAgLy8gQUxURVIgVEFCTEUgaGVscGVycwotICAgIG1fYWxsb3dlZEZ1bmN0
aW9ucy5hZGQoInNxbGl0ZV9yZW5hbWVfdGFibGUiKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMu
YWRkKCJzcWxpdGVfcmVuYW1lX3RyaWdnZXIiKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRk
KCJzcWxpdGVfcmVuYW1lX3RhYmxlIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJz
cWxpdGVfcmVuYW1lX3RyaWdnZXIiX3MpOwogICAgIC8vIEdMT0IgaGVscGVycwotICAgIG1fYWxs
b3dlZEZ1bmN0aW9ucy5hZGQoImdsb2IiKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJn
bG9iIl9zKTsKIAogICAgIC8vIFNRTGl0ZSBjb3JlIGZ1bmN0aW9ucwotICAgIG1fYWxsb3dlZEZ1
bmN0aW9ucy5hZGQoImFicyIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoImNoYW5nZXMi
KTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJjb2FsZXNjZSIpOwotICAgIG1fYWxsb3dl
ZEZ1bmN0aW9ucy5hZGQoImdsb2IiKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJpZm51
bGwiKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJoZXgiKTsKLSAgICBtX2FsbG93ZWRG
dW5jdGlvbnMuYWRkKCJsYXN0X2luc2VydF9yb3dpZCIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9u
cy5hZGQoImxlbmd0aCIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoImxpa2UiKTsKLSAg
ICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJsb3dlciIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9u
cy5hZGQoImx0cmltIik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgibWF4Iik7Ci0gICAg
bV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgibWluIik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFk
ZCgibnVsbGlmIik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgicXVvdGUiKTsKLSAgICBt
X2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJyZXBsYWNlIik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25z
LmFkZCgicm91bmQiKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJydHJpbSIpOwotICAg
IG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInNvdW5kZXgiKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlv
bnMuYWRkKCJzcWxpdGVfc291cmNlX2lkIik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgi
c3FsaXRlX3ZlcnNpb24iKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJzdWJzdHIiKTsK
LSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJ0b3RhbF9jaGFuZ2VzIik7Ci0gICAgbV9hbGxv
d2VkRnVuY3Rpb25zLmFkZCgidHJpbSIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInR5
cGVvZiIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInVwcGVyIik7Ci0gICAgbV9hbGxv
d2VkRnVuY3Rpb25zLmFkZCgiemVyb2Jsb2IiKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRk
KCJhYnMiX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoImNoYW5nZXMiX3MpOworICAg
IG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoImNvYWxlc2NlIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5j
dGlvbnMuYWRkKCJnbG9iIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJpZm51bGwi
X3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoImhleCJfcyk7CisgICAgbV9hbGxvd2Vk
RnVuY3Rpb25zLmFkZCgibGFzdF9pbnNlcnRfcm93aWQiX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0
aW9ucy5hZGQoImxlbmd0aCJfcyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgibGlrZSJf
cyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgibG93ZXIiX3MpOworICAgIG1fYWxsb3dl
ZEZ1bmN0aW9ucy5hZGQoImx0cmltIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJt
YXgiX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoIm1pbiJfcyk7CisgICAgbV9hbGxv
d2VkRnVuY3Rpb25zLmFkZCgibnVsbGlmIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRk
KCJxdW90ZSJfcyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgicmVwbGFjZSJfcyk7Cisg
ICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgicm91bmQiX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0
aW9ucy5hZGQoInJ0cmltIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJzb3VuZGV4
Il9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJzcWxpdGVfc291cmNlX2lkIl9zKTsK
KyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJzcWxpdGVfdmVyc2lvbiJfcyk7CisgICAgbV9h
bGxvd2VkRnVuY3Rpb25zLmFkZCgic3Vic3RyIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMu
YWRkKCJ0b3RhbF9jaGFuZ2VzIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJ0cmlt
Il9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJ0eXBlb2YiX3MpOworICAgIG1fYWxs
b3dlZEZ1bmN0aW9ucy5hZGQoInVwcGVyIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRk
KCJ6ZXJvYmxvYiJfcyk7CiAKICAgICAvLyBTUUxpdGUgZGF0ZSBhbmQgdGltZSBmdW5jdGlvbnMK
LSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJkYXRlIik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rp
b25zLmFkZCgidGltZSIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoImRhdGV0aW1lIik7
Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgianVsaWFuZGF5Iik7Ci0gICAgbV9hbGxvd2Vk
RnVuY3Rpb25zLmFkZCgic3RyZnRpbWUiKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJk
YXRlIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJ0aW1lIl9zKTsKKyAgICBtX2Fs
bG93ZWRGdW5jdGlvbnMuYWRkKCJkYXRldGltZSJfcyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25z
LmFkZCgianVsaWFuZGF5Il9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJzdHJmdGlt
ZSJfcyk7CiAKICAgICAvLyBTUUxpdGUgYWdncmVnYXRlIGZ1bmN0aW9ucwogICAgIC8vIG1heCgp
IGFuZCBtaW4oKSBhcmUgYWxyZWFkeSBpbiB0aGUgbGlzdAotICAgIG1fYWxsb3dlZEZ1bmN0aW9u
cy5hZGQoImF2ZyIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoImNvdW50Iik7Ci0gICAg
bV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgiZ3JvdXBfY29uY2F0Iik7Ci0gICAgbV9hbGxvd2VkRnVu
Y3Rpb25zLmFkZCgic3VtIik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgidG90YWwiKTsK
KyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJhdmciX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0
aW9ucy5hZGQoImNvdW50Il9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJncm91cF9j
b25jYXQiX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInN1bSJfcyk7CisgICAgbV9h
bGxvd2VkRnVuY3Rpb25zLmFkZCgidG90YWwiX3MpOwogCiAgICAgLy8gU1FMaXRlIEZUUyBmdW5j
dGlvbnMKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJtYXRjaCIpOwotICAgIG1fYWxsb3dl
ZEZ1bmN0aW9ucy5hZGQoInNuaXBwZXQiKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJv
ZmZzZXRzIik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgib3B0aW1pemUiKTsKKyAgICBt
X2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJtYXRjaCJfcyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25z
LmFkZCgic25pcHBldCJfcyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgib2Zmc2V0cyJf
cyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgib3B0aW1pemUiX3MpOwogCiAgICAgLy8g
U1FMaXRlIElDVSBmdW5jdGlvbnMKICAgICAvLyBsaWtlKCksIGxvd2VyKCkgYW5kIHVwcGVyKCkg
YXJlIGFscmVhZHkgaW4gdGhlIGxpc3QKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJyZWdl
eHAiKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJyZWdleHAiX3MpOwogfQogCiBpbnQg
RGF0YWJhc2VBdXRob3JpemVyOjpjcmVhdGVUYWJsZShjb25zdCBTdHJpbmcmIHRhYmxlTmFtZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VU
cmFja2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VU
cmFja2VyLmNwcAppbmRleCA5ZWIzOTFjNmQwYmQ2ZDQ4NjA1MTBlZGFiNzI4OTMzOTk1MDZiYzcy
Li5hNGYwYzc0NDUyMzcxYTRkYmQ4ZGYwODYwNjllY2QxMGFiYTMyMjlmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuY3Bw
CkBAIC05MSw3ICs5MSw3IEBAIERhdGFiYXNlVHJhY2tlcjo6RGF0YWJhc2VUcmFja2VyKGNvbnN0
IFN0cmluZyYgZGF0YWJhc2VQYXRoKQogCiBTdHJpbmcgRGF0YWJhc2VUcmFja2VyOjp0cmFja2Vy
RGF0YWJhc2VQYXRoKCkgY29uc3QKIHsKLSAgICByZXR1cm4gU1FMaXRlRmlsZVN5c3RlbTo6YXBw
ZW5kRGF0YWJhc2VGaWxlTmFtZVRvUGF0aChtX2RhdGFiYXNlRGlyZWN0b3J5UGF0aC5pc29sYXRl
ZENvcHkoKSwgIkRhdGFiYXNlcy5kYiIpOworICAgIHJldHVybiBTUUxpdGVGaWxlU3lzdGVtOjph
cHBlbmREYXRhYmFzZUZpbGVOYW1lVG9QYXRoKG1fZGF0YWJhc2VEaXJlY3RvcnlQYXRoLmlzb2xh
dGVkQ29weSgpLCAiRGF0YWJhc2VzLmRiIl9zKTsKIH0KIAogdm9pZCBEYXRhYmFzZVRyYWNrZXI6
Om9wZW5UcmFja2VyRGF0YWJhc2UoVHJhY2tlckNyZWF0aW9uQWN0aW9uIGNyZWF0ZUFjdGlvbikK
QEAgLTExOCwxNCArMTE4LDE0IEBAIHZvaWQgRGF0YWJhc2VUcmFja2VyOjpvcGVuVHJhY2tlckRh
dGFiYXNlKFRyYWNrZXJDcmVhdGlvbkFjdGlvbiBjcmVhdGVBY3Rpb24pCiAgICAgfQogICAgIG1f
ZGF0YWJhc2UuZGlzYWJsZVRocmVhZGluZ0NoZWNrcygpOwogCi0gICAgaWYgKCFtX2RhdGFiYXNl
LnRhYmxlRXhpc3RzKCJPcmlnaW5zIikpIHsKKyAgICBpZiAoIW1fZGF0YWJhc2UudGFibGVFeGlz
dHMoIk9yaWdpbnMiX3MpKSB7CiAgICAgICAgIGlmICghbV9kYXRhYmFzZS5leGVjdXRlQ29tbWFu
ZCgiQ1JFQVRFIFRBQkxFIE9yaWdpbnMgKG9yaWdpbiBURVhUIFVOSVFVRSBPTiBDT05GTElDVCBS
RVBMQUNFLCBxdW90YSBJTlRFR0VSIE5PVCBOVUxMIE9OIENPTkZMSUNUIEZBSUwpOyJfcykpIHsK
ICAgICAgICAgICAgIC8vIEZJWE1FOiBhbmQgaGVyZQogICAgICAgICAgICAgTE9HX0VSUk9SKCJG
YWlsZWQgdG8gY3JlYXRlIE9yaWdpbnMgdGFibGUiKTsKICAgICAgICAgfQogICAgIH0KIAotICAg
IGlmICghbV9kYXRhYmFzZS50YWJsZUV4aXN0cygiRGF0YWJhc2VzIikpIHsKKyAgICBpZiAoIW1f
ZGF0YWJhc2UudGFibGVFeGlzdHMoIkRhdGFiYXNlcyJfcykpIHsKICAgICAgICAgaWYgKCFtX2Rh
dGFiYXNlLmV4ZWN1dGVDb21tYW5kKCJDUkVBVEUgVEFCTEUgRGF0YWJhc2VzIChndWlkIElOVEVH
RVIgUFJJTUFSWSBLRVkgQVVUT0lOQ1JFTUVOVCwgb3JpZ2luIFRFWFQsIG5hbWUgVEVYVCwgZGlz
cGxheU5hbWUgVEVYVCwgZXN0aW1hdGVkU2l6ZSBJTlRFR0VSLCBwYXRoIFRFWFQpOyJfcykpIHsK
ICAgICAgICAgICAgIC8vIEZJWE1FOiBhbmQgaGVyZQogICAgICAgICAgICAgTE9HX0VSUk9SKCJG
YWlsZWQgdG8gY3JlYXRlIERhdGFiYXNlcyB0YWJsZSIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxTdGF0ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxTdGF0ZW1lbnQuY3BwCmluZGV4IGI3ODA1ODJkYzk3
OTU5MjMzNDYzZjhmZDhhYzE5ZDAzOWFlYjg4MjAuLmQ5MWQwMzE0NTkxNWIyMWEzNTdlODVmMDVj
Y2JhNDBlNWRiZWExMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0
YWJhc2UvU1FMU3RhdGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRh
dGFiYXNlL1NRTFN0YXRlbWVudC5jcHAKQEAgLTEyNiw3ICsxMjYsNyBAQCBib29sIFNRTFN0YXRl
bWVudDo6ZXhlY3V0ZShEYXRhYmFzZSYgZGIpCiAgICAgLy8gSWYgdGhpcyBpcyB0aGUgY2FzZSwg
dGhleSBtaWdodCBiZSB0cnlpbmcgdG8gZG8gc29tZXRoaW5nIGZpc2h5IG9yIG1hbGljaW91cwog
ICAgIGlmIChzdGF0ZW1lbnQtPmJpbmRQYXJhbWV0ZXJDb3VudCgpICE9IG1fYXJndW1lbnRzLnNp
emUoKSkgewogICAgICAgICBMT0coU3RvcmFnZUFQSSwgIkJpbmQgcGFyYW1ldGVyIGNvdW50IGRv
ZXNuJ3QgbWF0Y2ggbnVtYmVyIG9mIHF1ZXN0aW9uIG1hcmtzIik7Ci0gICAgICAgIG1fZXJyb3Ig
PSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpTWU5UQVhfRVJSLCAibnVtYmVyIG9mICc/J3Mg
aW4gc3RhdGVtZW50IHN0cmluZyBkb2VzIG5vdCBtYXRjaCBhcmd1bWVudCBjb3VudCIpOworICAg
ICAgICBtX2Vycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6U1lOVEFYX0VSUiwgIm51
bWJlciBvZiAnPydzIGluIHN0YXRlbWVudCBzdHJpbmcgZG9lcyBub3QgbWF0Y2ggYXJndW1lbnQg
Y291bnQiX3MpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCkBAIC0yMzQsMTkgKzIz
NCwxOSBAQCBib29sIFNRTFN0YXRlbWVudDo6cGVyZm9ybUNhbGxiYWNrKFNRTFRyYW5zYWN0aW9u
JiB0cmFuc2FjdGlvbikKIHZvaWQgU1FMU3RhdGVtZW50OjpzZXREYXRhYmFzZURlbGV0ZWRFcnJv
cigpCiB7CiAgICAgQVNTRVJUKCFtX2Vycm9yICYmICFtX3Jlc3VsdFNldCk7Ci0gICAgbV9lcnJv
ciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OlVOS05PV05fRVJSLCAidW5hYmxlIHRvIGV4
ZWN1dGUgc3RhdGVtZW50LCBiZWNhdXNlIHRoZSB1c2VyIGRlbGV0ZWQgdGhlIGRhdGFiYXNlIik7
CisgICAgbV9lcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OlVOS05PV05fRVJSLCAi
dW5hYmxlIHRvIGV4ZWN1dGUgc3RhdGVtZW50LCBiZWNhdXNlIHRoZSB1c2VyIGRlbGV0ZWQgdGhl
IGRhdGFiYXNlIl9zKTsKIH0KIAogdm9pZCBTUUxTdGF0ZW1lbnQ6OnNldFZlcnNpb25NaXNtYXRj
aGVkRXJyb3IoKQogewogICAgIEFTU0VSVCghbV9lcnJvciAmJiAhbV9yZXN1bHRTZXQpOwotICAg
IG1fZXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpWRVJTSU9OX0VSUiwgImN1cnJl
bnQgdmVyc2lvbiBvZiB0aGUgZGF0YWJhc2UgYW5kIGBvbGRWZXJzaW9uYCBhcmd1bWVudCBkbyBu
b3QgbWF0Y2giKTsKKyAgICBtX2Vycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6VkVS
U0lPTl9FUlIsICJjdXJyZW50IHZlcnNpb24gb2YgdGhlIGRhdGFiYXNlIGFuZCBgb2xkVmVyc2lv
bmAgYXJndW1lbnQgZG8gbm90IG1hdGNoIl9zKTsKIH0KIAogdm9pZCBTUUxTdGF0ZW1lbnQ6OnNl
dEZhaWx1cmVEdWVUb1F1b3RhKCkKIHsKICAgICBBU1NFUlQoIW1fZXJyb3IgJiYgIW1fcmVzdWx0
U2V0KTsKLSAgICBtX2Vycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6UVVPVEFfRVJS
LCAidGhlcmUgd2FzIG5vdCBlbm91Z2ggcmVtYWluaW5nIHN0b3JhZ2Ugc3BhY2UsIG9yIHRoZSBz
dG9yYWdlIHF1b3RhIHdhcyByZWFjaGVkIGFuZCB0aGUgdXNlciBkZWNsaW5lZCB0byBhbGxvdyBt
b3JlIHNwYWNlIik7CisgICAgbV9lcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OlFV
T1RBX0VSUiwgInRoZXJlIHdhcyBub3QgZW5vdWdoIHJlbWFpbmluZyBzdG9yYWdlIHNwYWNlLCBv
ciB0aGUgc3RvcmFnZSBxdW90YSB3YXMgcmVhY2hlZCBhbmQgdGhlIHVzZXIgZGVjbGluZWQgdG8g
YWxsb3cgbW9yZSBzcGFjZSJfcyk7CiB9CiAKIHZvaWQgU1FMU3RhdGVtZW50OjpjbGVhckZhaWx1
cmVEdWVUb1F1b3RhKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0
YWJhc2UvU1FMVHJhbnNhY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRh
YmFzZS9TUUxUcmFuc2FjdGlvbi5jcHAKaW5kZXggNjgzMmFjYTkwZWQ2ZDllYjgxYWI5ZjM1NTk1
OTNiZjQ2NDMwZmQwZi4uZTlhZDc5ZjMyODJlODQ1OWRkN2QzM2VmZjAyYjZiNTc5ZjAyNmMwZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2Fj
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFu
c2FjdGlvbi5jcHAKQEAgLTEzNyw3ICsxMzcsNyBAQCB2b2lkIFNRTFRyYW5zYWN0aW9uOjpjYWxs
RXJyb3JDYWxsYmFja0R1ZVRvSW50ZXJydXB0aW9uKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAg
bV9kYXRhYmFzZS0+ZG9jdW1lbnQoKS5ldmVudExvb3AoKS5xdWV1ZVRhc2soVGFza1NvdXJjZTo6
TmV0d29ya2luZywgW2Vycm9yQ2FsbGJhY2sgPSBXVEZNb3ZlKGVycm9yQ2FsbGJhY2spXSgpIG11
dGFibGUgewotICAgICAgICBlcnJvckNhbGxiYWNrLT5oYW5kbGVFdmVudChTUUxFcnJvcjo6Y3Jl
YXRlKFNRTEVycm9yOjpEQVRBQkFTRV9FUlIsICJ0aGUgZGF0YWJhc2Ugd2FzIGNsb3NlZCIpKTsK
KyAgICAgICAgZXJyb3JDYWxsYmFjay0+aGFuZGxlRXZlbnQoU1FMRXJyb3I6OmNyZWF0ZShTUUxF
cnJvcjo6REFUQUJBU0VfRVJSLCAidGhlIGRhdGFiYXNlIHdhcyBjbG9zZWQiX3MpKTsKICAgICB9
KTsKIH0KIApAQCAtMjM2LDcgKzIzNiw3IEBAIHZvaWQgU1FMVHJhbnNhY3Rpb246Om9wZW5UcmFu
c2FjdGlvbkFuZFByZWZsaWdodCgpCiAKICAgICAvLyBJZiB0aGUgZGF0YWJhc2Ugd2FzIGRlbGV0
ZWQsIGp1bXAgdG8gdGhlIGVycm9yIGNhbGxiYWNrCiAgICAgaWYgKG1fZGF0YWJhc2UtPmRlbGV0
ZWQoKSkgewotICAgICAgICBtX3RyYW5zYWN0aW9uRXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNR
TEVycm9yOjpVTktOT1dOX0VSUiwgInVuYWJsZSB0byBvcGVuIGEgdHJhbnNhY3Rpb24sIGJlY2F1
c2UgdGhlIHVzZXIgZGVsZXRlZCB0aGUgZGF0YWJhc2UiKTsKKyAgICAgICAgbV90cmFuc2FjdGlv
bkVycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6VU5LTk9XTl9FUlIsICJ1bmFibGUg
dG8gb3BlbiBhIHRyYW5zYWN0aW9uLCBiZWNhdXNlIHRoZSB1c2VyIGRlbGV0ZWQgdGhlIGRhdGFi
YXNlIl9zKTsKIAogICAgICAgICBoYW5kbGVUcmFuc2FjdGlvbkVycm9yKCk7CiAgICAgICAgIHJl
dHVybjsKQEAgLTI5MCw3ICsyOTAsNyBAQCB2b2lkIFNRTFRyYW5zYWN0aW9uOjpvcGVuVHJhbnNh
Y3Rpb25BbmRQcmVmbGlnaHQoKQogICAgICAgICBtX2RhdGFiYXNlLT5lbmFibGVBdXRob3JpemVy
KCk7CiAgICAgICAgIG1fdHJhbnNhY3Rpb25FcnJvciA9IG1fd3JhcHBlci0+c3FsRXJyb3IoKTsK
ICAgICAgICAgaWYgKCFtX3RyYW5zYWN0aW9uRXJyb3IpCi0gICAgICAgICAgICBtX3RyYW5zYWN0
aW9uRXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpVTktOT1dOX0VSUiwgInVua25v
d24gZXJyb3Igb2NjdXJyZWQgZHVyaW5nIHRyYW5zYWN0aW9uIHByZWZsaWdodCIpOworICAgICAg
ICAgICAgbV90cmFuc2FjdGlvbkVycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6VU5L
Tk9XTl9FUlIsICJ1bmtub3duIGVycm9yIG9jY3VycmVkIGR1cmluZyB0cmFuc2FjdGlvbiBwcmVm
bGlnaHQiX3MpOwogCiAgICAgICAgIGhhbmRsZVRyYW5zYWN0aW9uRXJyb3IoKTsKICAgICAgICAg
cmV0dXJuOwpAQCAtMzk1LDcgKzM5NSw3IEBAIHZvaWQgU1FMVHJhbnNhY3Rpb246OmRlbGl2ZXJU
cmFuc2FjdGlvbkNhbGxiYWNrKCkKIAogICAgIC8vIFNwZWMgNC4zLjIgNTogSWYgdGhlIHRyYW5z
YWN0aW9uIGNhbGxiYWNrIHdhcyBudWxsIG9yIHJhaXNlZCBhbiBleGNlcHRpb24sIGp1bXAgdG8g
dGhlIGVycm9yIGNhbGxiYWNrCiAgICAgaWYgKHNob3VsZERlbGl2ZXJFcnJvckNhbGxiYWNrKSB7
Ci0gICAgICAgIG1fdHJhbnNhY3Rpb25FcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6
OlVOS05PV05fRVJSLCAidGhlIFNRTFRyYW5zYWN0aW9uQ2FsbGJhY2sgd2FzIG51bGwgb3IgdGhy
ZXcgYW4gZXhjZXB0aW9uIik7CisgICAgICAgIG1fdHJhbnNhY3Rpb25FcnJvciA9IFNRTEVycm9y
OjpjcmVhdGUoU1FMRXJyb3I6OlVOS05PV05fRVJSLCAidGhlIFNRTFRyYW5zYWN0aW9uQ2FsbGJh
Y2sgd2FzIG51bGwgb3IgdGhyZXcgYW4gZXhjZXB0aW9uIl9zKTsKICAgICAgICAgcmV0dXJuIGRl
bGl2ZXJUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2soKTsKICAgICB9CiAKQEAgLTQzMiw3ICs0MzIs
NyBAQCB2b2lkIFNRTFRyYW5zYWN0aW9uOjpkZWxpdmVyU3RhdGVtZW50Q2FsbGJhY2soKQogICAg
IG1fZXhlY3V0ZVNxbEFsbG93ZWQgPSBmYWxzZTsKIAogICAgIGlmIChyZXN1bHQpIHsKLSAgICAg
ICAgbV90cmFuc2FjdGlvbkVycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6VU5LTk9X
Tl9FUlIsICJ0aGUgc3RhdGVtZW50IGNhbGxiYWNrIHJhaXNlZCBhbiBleGNlcHRpb24gb3Igc3Rh
dGVtZW50IGVycm9yIGNhbGxiYWNrIGRpZCBub3QgcmV0dXJuIGZhbHNlIik7CisgICAgICAgIG1f
dHJhbnNhY3Rpb25FcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OlVOS05PV05fRVJS
LCAidGhlIHN0YXRlbWVudCBjYWxsYmFjayByYWlzZWQgYW4gZXhjZXB0aW9uIG9yIHN0YXRlbWVu
dCBlcnJvciBjYWxsYmFjayBkaWQgbm90IHJldHVybiBmYWxzZSJfcyk7CiAKICAgICAgICAgaWYg
KG1fZXJyb3JDYWxsYmFja1dyYXBwZXIuaGFzQ2FsbGJhY2soKSkKICAgICAgICAgICAgIHJldHVy
biBkZWxpdmVyVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrKCk7CkBAIC01NjgsNyArNTY4LDcgQEAg
dm9pZCBTUUxUcmFuc2FjdGlvbjo6aGFuZGxlQ3VycmVudFN0YXRlbWVudEVycm9yKCkKIAogICAg
IG1fdHJhbnNhY3Rpb25FcnJvciA9IG1fY3VycmVudFN0YXRlbWVudC0+c3FsRXJyb3IoKTsKICAg
ICBpZiAoIW1fdHJhbnNhY3Rpb25FcnJvcikKLSAgICAgICAgbV90cmFuc2FjdGlvbkVycm9yID0g
U1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6REFUQUJBU0VfRVJSLCAidGhlIHN0YXRlbWVudCBm
YWlsZWQgdG8gZXhlY3V0ZSIpOworICAgICAgICBtX3RyYW5zYWN0aW9uRXJyb3IgPSBTUUxFcnJv
cjo6Y3JlYXRlKFNRTEVycm9yOjpEQVRBQkFTRV9FUlIsICJ0aGUgc3RhdGVtZW50IGZhaWxlZCB0
byBleGVjdXRlIl9zKTsKIAogICAgIGhhbmRsZVRyYW5zYWN0aW9uRXJyb3IoKTsKIH0KQEAgLTU5
NCw3ICs1OTQsNyBAQCB2b2lkIFNRTFRyYW5zYWN0aW9uOjpwb3N0ZmxpZ2h0QW5kQ29tbWl0KCkK
ICAgICBpZiAobV93cmFwcGVyICYmICFtX3dyYXBwZXItPnBlcmZvcm1Qb3N0ZmxpZ2h0KCp0aGlz
KSkgewogICAgICAgICBtX3RyYW5zYWN0aW9uRXJyb3IgPSBtX3dyYXBwZXItPnNxbEVycm9yKCk7
CiAgICAgICAgIGlmICghbV90cmFuc2FjdGlvbkVycm9yKQotICAgICAgICAgICAgbV90cmFuc2Fj
dGlvbkVycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6VU5LTk9XTl9FUlIsICJ1bmtu
b3duIGVycm9yIG9jY3VycmVkIGR1cmluZyB0cmFuc2FjdGlvbiBwb3N0ZmxpZ2h0Iik7CisgICAg
ICAgICAgICBtX3RyYW5zYWN0aW9uRXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpV
TktOT1dOX0VSUiwgInVua25vd24gZXJyb3Igb2NjdXJyZWQgZHVyaW5nIHRyYW5zYWN0aW9uIHBv
c3RmbGlnaHQiX3MpOwogCiAgICAgICAgIGhhbmRsZVRyYW5zYWN0aW9uRXJyb3IoKTsKICAgICAg
ICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRz
L1dlYlNvY2tldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29j
a2V0LmNwcAppbmRleCBmOTczZTViZDNiOTBlM2E0Y2M3MzUyMTRkOWEzMTlhZGY5MjFlNGI2Li42
OWQyZTU0NzM1YTMwNjQ2Mzg0YzdlZmI3ZWE2NDk4N2VjMzQwMmNjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcApAQCAtMTM3LDkgKzEzNyw5
IEBAIHN0YXRpYyB1bnNpZ25lZCBzYXR1cmF0ZUFkZCh1bnNpZ25lZCBhLCB1bnNpZ25lZCBiKQog
ICAgIHJldHVybiBhICsgYjsKIH0KIAotY29uc3QgY2hhciogV2ViU29ja2V0OjpzdWJwcm90b2Nv
bFNlcGFyYXRvcigpCitBU0NJSUxpdGVyYWwgV2ViU29ja2V0OjpzdWJwcm90b2NvbFNlcGFyYXRv
cigpCiB7Ci0gICAgcmV0dXJuICIsICI7CisgICAgcmV0dXJuICIsICJfczsKIH0KIAogV2ViU29j
a2V0OjpXZWJTb2NrZXQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkKQEAgLTQzMCw3
ICs0MzAsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBXZWJTb2NrZXQ6OmNsb3NlKHN0ZDo6b3B0aW9u
YWw8dW5zaWduZWQgc2hvcnQ+IG9wdGlvbmFsQ29kZSwgYwogICAgICAgICByZXR1cm4geyB9Owog
ICAgIGlmIChtX3N0YXRlID09IENPTk5FQ1RJTkcpIHsKICAgICAgICAgbV9zdGF0ZSA9IENMT1NJ
Tkc7Ci0gICAgICAgIG1fY2hhbm5lbC0+ZmFpbCgiV2ViU29ja2V0IGlzIGNsb3NlZCBiZWZvcmUg
dGhlIGNvbm5lY3Rpb24gaXMgZXN0YWJsaXNoZWQuIik7CisgICAgICAgIG1fY2hhbm5lbC0+ZmFp
bCgiV2ViU29ja2V0IGlzIGNsb3NlZCBiZWZvcmUgdGhlIGNvbm5lY3Rpb24gaXMgZXN0YWJsaXNo
ZWQuIl9zKTsKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CiAgICAgbV9zdGF0ZSA9IENMT1NJ
Tkc7CkBAIC01MjAsNyArNTIwLDcgQEAgdm9pZCBXZWJTb2NrZXQ6OnN1c3BlbmQoUmVhc29uRm9y
U3VzcGVuc2lvbiByZWFzb24pCiAKICAgICBpZiAocmVhc29uID09IFJlYXNvbkZvclN1c3BlbnNp
b246OkJhY2tGb3J3YXJkQ2FjaGUpIHsKICAgICAgICAgLy8gVGhpcyB3aWxsIGNhdXNlIGRpZENs
b3NlKCkgdG8gYmUgY2FsbGVkLgotICAgICAgICBtX2NoYW5uZWwtPmZhaWwoIldlYlNvY2tldCBp
cyBjbG9zZWQgZHVlIHRvIHN1c3BlbnNpb24uIik7CisgICAgICAgIG1fY2hhbm5lbC0+ZmFpbCgi
V2ViU29ja2V0IGlzIGNsb3NlZCBkdWUgdG8gc3VzcGVuc2lvbi4iX3MpOwogICAgICAgICByZXR1
cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tl
dHMvV2ViU29ja2V0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29j
a2V0LmgKaW5kZXggZTY4NjNlNDZkYTA3ZDE4YjZkOTE1ZWIxNWMyNGNkZjIyZGI2YTZjYi4uZWZm
YzA2OGJiZjYyNjVlN2EzYjE1NWM5NGZmNDQ4ZTc2NmQxZTM2NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuaApAQCAtNTEsNyArNTEsNyBAQCBjbGFz
cyBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDsKIGNsYXNzIFdlYlNvY2tldCBmaW5hbCA6IHB1
YmxpYyBSZWZDb3VudGVkPFdlYlNvY2tldD4sIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVE
YXRhLCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwcml2YXRlIFdlYlNvY2tldENoYW5uZWxDbGll
bnQgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoV2ViU29ja2V0KTsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgY29uc3QgY2hhciogc3VicHJvdG9jb2xTZXBhcmF0b3IoKTsKKyAgICBzdGF0aWMg
QVNDSUlMaXRlcmFsIHN1YnByb3RvY29sU2VwYXJhdG9yKCk7CiAKICAgICBzdGF0aWMgRXhjZXB0
aW9uT3I8UmVmPFdlYlNvY2tldD4+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgY29u
c3QgU3RyaW5nJiB1cmwpOwogICAgIHN0YXRpYyBFeGNlcHRpb25PcjxSZWY8V2ViU29ja2V0Pj4g
Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3Qg
U3RyaW5nJiBwcm90b2NvbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAKaW5kZXggZGY1NjM1OWM2ZmRhMDUyMTAzZDk3
YjNkOGE1ZDEwODQ5MTk3NWY1Yi4uNjliOGUyYTc3NTRhODk3OGMxOTU0ODUxZmYyNmM5OTYxNTJm
NWRjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNv
Y2tldENoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9X
ZWJTb2NrZXRDaGFubmVsLmNwcApAQCAtMjg3LDcgKzI4Nyw3IEBAIHZvaWQgV2ViU29ja2V0Q2hh
bm5lbDo6ZGlkT3BlblNvY2tldFN0cmVhbShTb2NrZXRTdHJlYW1IYW5kbGUmIGhhbmRsZSkKICAg
ICAgICAgY29va2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHkgPSBDb29raWVKYXI6OmNvb2tpZVJl
cXVlc3RIZWFkZXJGaWVsZFByb3h5KCptX2RvY3VtZW50LCBtX2hhbmRzaGFrZS0+aHR0cFVSTEZv
ckF1dGhlbnRpY2F0aW9uQW5kQ29va2llcygpKTsKICAgICBoYW5kbGUuc2VuZEhhbmRzaGFrZShX
VEZNb3ZlKGhhbmRzaGFrZU1lc3NhZ2UpLCBXVEZNb3ZlKGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVs
ZFByb3h5KSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9XSAoYm9vbCBzdWNj
ZXNzLCBib29sIGRpZEFjY2Vzc1NlY3VyZUNvb2tpZXMpIHsKICAgICAgICAgaWYgKCFzdWNjZXNz
KQotICAgICAgICAgICAgZmFpbCgiRmFpbGVkIHRvIHNlbmQgV2ViU29ja2V0IGhhbmRzaGFrZS4i
KTsKKyAgICAgICAgICAgIGZhaWwoIkZhaWxlZCB0byBzZW5kIFdlYlNvY2tldCBoYW5kc2hha2Uu
Il9zKTsKIAogICAgICAgICBpZiAoZGlkQWNjZXNzU2VjdXJlQ29va2llcyAmJiBtX2RvY3VtZW50
KQogICAgICAgICAgICAgbV9kb2N1bWVudC0+c2V0U2VjdXJlQ29va2llc0FjY2Vzc2VkKCk7CkBA
IC0zNDAsNyArMzQwLDcgQEAgdm9pZCBXZWJTb2NrZXRDaGFubmVsOjpkaWRSZWNlaXZlU29ja2V0
U3RyZWFtRGF0YShTb2NrZXRTdHJlYW1IYW5kbGUmIGhhbmRsZSwgY28KICAgICAgICAgcmV0dXJu
OwogICAgIGlmICghYXBwZW5kVG9CdWZmZXIoZGF0YSwgbGVuZ3RoKSkgewogICAgICAgICBtX3No
b3VsZERpc2NhcmRSZWNlaXZlZERhdGEgPSB0cnVlOwotICAgICAgICBmYWlsKCJSYW4gb3V0IG9m
IG1lbW9yeSB3aGlsZSByZWNlaXZpbmcgV2ViU29ja2V0IGRhdGEuIik7CisgICAgICAgIGZhaWwo
IlJhbiBvdXQgb2YgbWVtb3J5IHdoaWxlIHJlY2VpdmluZyBXZWJTb2NrZXQgZGF0YS4iX3MpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogICAgIHdoaWxlICghbV9zdXNwZW5kZWQgJiYgbV9jbGll
bnQgJiYgIW1fYnVmZmVyLmlzRW1wdHkoKSkgewpAQCAtNTcxLDcgKzU3MSw3IEBAIGJvb2wgV2Vi
U29ja2V0Q2hhbm5lbDo6cHJvY2Vzc0ZyYW1lKCkKICAgICB9CiAKICAgICBpZiAoZnJhbWUubWFz
a2VkKSB7Ci0gICAgICAgIGZhaWwoIkEgc2VydmVyIG11c3Qgbm90IG1hc2sgYW55IGZyYW1lcyB0
aGF0IGl0IHNlbmRzIHRvIHRoZSBjbGllbnQuIik7CisgICAgICAgIGZhaWwoIkEgc2VydmVyIG11
c3Qgbm90IG1hc2sgYW55IGZyYW1lcyB0aGF0IGl0IHNlbmRzIHRvIHRoZSBjbGllbnQuIl9zKTsK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApAQCAtNTkxLDcgKzU5MSw3IEBAIGJvb2wg
V2ViU29ja2V0Q2hhbm5lbDo6cHJvY2Vzc0ZyYW1lKCkKICAgICAvLyBBIG5ldyBkYXRhIGZyYW1l
IGlzIHJlY2VpdmVkIGJlZm9yZSB0aGUgcHJldmlvdXMgY29udGludW91cyBmcmFtZSBmaW5pc2hl
cy4KICAgICAvLyBOb3RlIHRoYXQgY29udHJvbCBmcmFtZXMgYXJlIGFsbG93ZWQgdG8gY29tZSBp
biB0aGUgbWlkZGxlIG9mIGNvbnRpbnVvdXMgZnJhbWVzLgogICAgIGlmIChtX2hhc0NvbnRpbnVv
dXNGcmFtZSAmJiBmcmFtZS5vcENvZGUgIT0gV2ViU29ja2V0RnJhbWU6Ok9wQ29kZUNvbnRpbnVh
dGlvbiAmJiAhV2ViU29ja2V0RnJhbWU6OmlzQ29udHJvbE9wQ29kZShmcmFtZS5vcENvZGUpKSB7
Ci0gICAgICAgIGZhaWwoIlJlY2VpdmVkIG5ldyBkYXRhIGZyYW1lIGJ1dCBwcmV2aW91cyBjb250
aW51b3VzIGZyYW1lIGlzIHVuZmluaXNoZWQuIik7CisgICAgICAgIGZhaWwoIlJlY2VpdmVkIG5l
dyBkYXRhIGZyYW1lIGJ1dCBwcmV2aW91cyBjb250aW51b3VzIGZyYW1lIGlzIHVuZmluaXNoZWQu
Il9zKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApAQCAtNjAxLDcgKzYwMSw3IEBA
IGJvb2wgV2ViU29ja2V0Q2hhbm5lbDo6cHJvY2Vzc0ZyYW1lKCkKICAgICBjYXNlIFdlYlNvY2tl
dEZyYW1lOjpPcENvZGVDb250aW51YXRpb246CiAgICAgICAgIC8vIEFuIHVuZXhwZWN0ZWQgY29u
dGludWF0aW9uIGZyYW1lIGlzIHJlY2VpdmVkIHdpdGhvdXQgYW55IGxlYWRpbmcgZnJhbWUuCiAg
ICAgICAgIGlmICghbV9oYXNDb250aW51b3VzRnJhbWUpIHsKLSAgICAgICAgICAgIGZhaWwoIlJl
Y2VpdmVkIHVuZXhwZWN0ZWQgY29udGludWF0aW9uIGZyYW1lLiIpOworICAgICAgICAgICAgZmFp
bCgiUmVjZWl2ZWQgdW5leHBlY3RlZCBjb250aW51YXRpb24gZnJhbWUuIl9zKTsKICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogICAgICAgICBtX2NvbnRpbnVvdXNGcmFtZURh
dGEuYXBwZW5kKGZyYW1lLnBheWxvYWQsIGZyYW1lLnBheWxvYWRMZW5ndGgpOwpAQCAtNjIwLDcg
KzYyMCw3IEBAIGJvb2wgV2ViU29ja2V0Q2hhbm5lbDo6cHJvY2Vzc0ZyYW1lKCkKICAgICAgICAg
ICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSBlbXB0eVN0cmluZygp
OwogICAgICAgICAgICAgICAgIGlmIChtZXNzYWdlLmlzTnVsbCgpKQotICAgICAgICAgICAgICAg
ICAgICBmYWlsKCJDb3VsZCBub3QgZGVjb2RlIGEgdGV4dCBmcmFtZSBhcyBVVEYtOC4iKTsKKyAg
ICAgICAgICAgICAgICAgICAgZmFpbCgiQ291bGQgbm90IGRlY29kZSBhIHRleHQgZnJhbWUgYXMg
VVRGLTguIl9zKTsKICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgIG1f
Y2xpZW50LT5kaWRSZWNlaXZlTWVzc2FnZShXVEZNb3ZlKG1lc3NhZ2UpKTsKICAgICAgICAgICAg
IH0gZWxzZSBpZiAobV9jb250aW51b3VzRnJhbWVPcENvZGUgPT0gV2ViU29ja2V0RnJhbWU6Ok9w
Q29kZUJpbmFyeSkKQEAgLTYzNyw3ICs2MzcsNyBAQCBib29sIFdlYlNvY2tldENoYW5uZWw6OnBy
b2Nlc3NGcmFtZSgpCiAgICAgICAgICAgICAgICAgbWVzc2FnZSA9IGVtcHR5U3RyaW5nKCk7CiAg
ICAgICAgICAgICBza2lwQnVmZmVyKGZyYW1lRW5kIC0gbV9idWZmZXIuZGF0YSgpKTsKICAgICAg
ICAgICAgIGlmIChtZXNzYWdlLmlzTnVsbCgpKQotICAgICAgICAgICAgICAgIGZhaWwoIkNvdWxk
IG5vdCBkZWNvZGUgYSB0ZXh0IGZyYW1lIGFzIFVURi04LiIpOworICAgICAgICAgICAgICAgIGZh
aWwoIkNvdWxkIG5vdCBkZWNvZGUgYSB0ZXh0IGZyYW1lIGFzIFVURi04LiJfcyk7CiAgICAgICAg
ICAgICBlbHNlCiAgICAgICAgICAgICAgICAgbV9jbGllbnQtPmRpZFJlY2VpdmVNZXNzYWdlKFdU
Rk1vdmUobWVzc2FnZSkpOwogICAgICAgICB9IGVsc2UgewpAQCAtNjY5LDEzICs2NjksMTMgQEAg
Ym9vbCBXZWJTb2NrZXRDaGFubmVsOjpwcm9jZXNzRnJhbWUoKQogICAgICAgICAgICAgbV9jbG9z
ZUV2ZW50Q29kZSA9IENsb3NlRXZlbnRDb2RlTm9TdGF0dXNSY3ZkOwogICAgICAgICBlbHNlIGlm
IChmcmFtZS5wYXlsb2FkTGVuZ3RoID09IDEpIHsKICAgICAgICAgICAgIG1fY2xvc2VFdmVudENv
ZGUgPSBDbG9zZUV2ZW50Q29kZUFibm9ybWFsQ2xvc3VyZTsKLSAgICAgICAgICAgIGZhaWwoIlJl
Y2VpdmVkIGEgYnJva2VuIGNsb3NlIGZyYW1lIGNvbnRhaW5pbmcgYW4gaW52YWxpZCBzaXplIGJv
ZHkuIik7CisgICAgICAgICAgICBmYWlsKCJSZWNlaXZlZCBhIGJyb2tlbiBjbG9zZSBmcmFtZSBj
b250YWluaW5nIGFuIGludmFsaWQgc2l6ZSBib2R5LiJfcyk7CiAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBtX2Nsb3NlRXZlbnRDb2RlID0g
ZnJhbWUucGF5bG9hZFswXSA8PCA4IHwgZnJhbWUucGF5bG9hZFsxXTsKICAgICAgICAgICAgIGlm
IChtX2Nsb3NlRXZlbnRDb2RlID09IENsb3NlRXZlbnRDb2RlTm9TdGF0dXNSY3ZkIHx8IG1fY2xv
c2VFdmVudENvZGUgPT0gQ2xvc2VFdmVudENvZGVBYm5vcm1hbENsb3N1cmUgfHwgbV9jbG9zZUV2
ZW50Q29kZSA9PSBDbG9zZUV2ZW50Q29kZVRMU0hhbmRzaGFrZSkgewogICAgICAgICAgICAgICAg
IG1fY2xvc2VFdmVudENvZGUgPSBDbG9zZUV2ZW50Q29kZUFibm9ybWFsQ2xvc3VyZTsKLSAgICAg
ICAgICAgICAgICBmYWlsKCJSZWNlaXZlZCBhIGJyb2tlbiBjbG9zZSBmcmFtZSBjb250YWluaW5n
IGEgcmVzZXJ2ZWQgc3RhdHVzIGNvZGUuIik7CisgICAgICAgICAgICAgICAgZmFpbCgiUmVjZWl2
ZWQgYSBicm9rZW4gY2xvc2UgZnJhbWUgY29udGFpbmluZyBhIHJlc2VydmVkIHN0YXR1cyBjb2Rl
LiJfcyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgfQogICAg
ICAgICB9CkBAIC03NjEsNyArNzYxLDcgQEAgdm9pZCBXZWJTb2NrZXRDaGFubmVsOjpwcm9jZXNz
T3V0Z29pbmdGcmFtZVF1ZXVlKCkKICAgICAgICAgY2FzZSBRdWV1ZWRGcmFtZVR5cGVTdHJpbmc6
IHsKICAgICAgICAgICAgIHNlbmRGcmFtZShmcmFtZS0+b3BDb2RlLCBmcmFtZS0+c3RyaW5nRGF0
YS5kYXRhQXNVSW50OFB0cigpLCBmcmFtZS0+c3RyaW5nRGF0YS5sZW5ndGgoKSwgW3RoaXMsIHBy
b3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9XSAoYm9vbCBzdWNjZXNzKSB7CiAgICAgICAgICAg
ICAgICAgaWYgKCFzdWNjZXNzKQotICAgICAgICAgICAgICAgICAgICBmYWlsKCJGYWlsZWQgdG8g
c2VuZCBXZWJTb2NrZXQgZnJhbWUuIik7CisgICAgICAgICAgICAgICAgICAgIGZhaWwoIkZhaWxl
ZCB0byBzZW5kIFdlYlNvY2tldCBmcmFtZS4iX3MpOwogICAgICAgICAgICAgfSk7CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgfQpAQCAtNzY5LDcgKzc2OSw3IEBAIHZvaWQgV2ViU29ja2V0
Q2hhbm5lbDo6cHJvY2Vzc091dGdvaW5nRnJhbWVRdWV1ZSgpCiAgICAgICAgIGNhc2UgUXVldWVk
RnJhbWVUeXBlVmVjdG9yOgogICAgICAgICAgICAgc2VuZEZyYW1lKGZyYW1lLT5vcENvZGUsIGZy
YW1lLT52ZWN0b3JEYXRhLmRhdGEoKSwgZnJhbWUtPnZlY3RvckRhdGEuc2l6ZSgpLCBbdGhpcywg
cHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH1dIChib29sIHN1Y2Nlc3MpIHsKICAgICAgICAg
ICAgICAgICBpZiAoIXN1Y2Nlc3MpCi0gICAgICAgICAgICAgICAgICAgIGZhaWwoIkZhaWxlZCB0
byBzZW5kIFdlYlNvY2tldCBmcmFtZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgZmFpbCgiRmFp
bGVkIHRvIHNlbmQgV2ViU29ja2V0IGZyYW1lLiJfcyk7CiAgICAgICAgICAgICB9KTsKICAgICAg
ICAgICAgIGJyZWFrOwogCkBAIC03OTYsNyArNzk2LDcgQEAgdm9pZCBXZWJTb2NrZXRDaGFubmVs
Ojpwcm9jZXNzT3V0Z29pbmdGcmFtZVF1ZXVlKCkKICAgICAgICAgICAgICAgICBtX2Jsb2JMb2Fk
ZXJTdGF0dXMgPSBCbG9iTG9hZGVyTm90U3RhcnRlZDsKICAgICAgICAgICAgICAgICBzZW5kRnJh
bWUoZnJhbWUtPm9wQ29kZSwgc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCo+KHJlc3VsdC0+ZGF0
YSgpKSwgcmVzdWx0LT5ieXRlTGVuZ3RoKCksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsg
KnRoaXMgfV0gKGJvb2wgc3VjY2VzcykgewogICAgICAgICAgICAgICAgICAgICBpZiAoIXN1Y2Nl
c3MpCi0gICAgICAgICAgICAgICAgICAgICAgICBmYWlsKCJGYWlsZWQgdG8gc2VuZCBXZWJTb2Nr
ZXQgZnJhbWUuIik7CisgICAgICAgICAgICAgICAgICAgICAgICBmYWlsKCJGYWlsZWQgdG8gc2Vu
ZCBXZWJTb2NrZXQgZnJhbWUuIl9zKTsKICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXREZWZsYXRlRnJhbWVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXREZWZsYXRlRnJhbWVyLmNwcAppbmRleCAw
MWZkZmUwMjllNDZmY2U4NjJkNWU2MTZjZmM0OTVkNjljYzYxNDY1Li5hODdmZTVkN2FhZTVlODBk
Mzk3NTQ5OWM0YzU2YTZlMDE3ZGYxMWRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RGVmbGF0ZUZyYW1lci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldERlZmxhdGVGcmFtZXIuY3BwCkBAIC03
Niw3ICs3Niw3IEBAIGJvb2wgV2ViU29ja2V0RXh0ZW5zaW9uRGVmbGF0ZUZyYW1lOjpwcm9jZXNz
UmVzcG9uc2UoY29uc3QgSGFzaE1hcDxTdHJpbmcsIFN0cmluCiAKICAgICB1bnNpZ25lZCBleHBl
Y3RlZE51bVBhcmFtZXRlcnMgPSAwOwogICAgIGludCB3aW5kb3dCaXRzID0gMTU7Ci0gICAgYXV0
byBwYXJhbWV0ZXIgPSBzZXJ2ZXJQYXJhbWV0ZXJzLmZpbmQoIm1heF93aW5kb3dfYml0cyIpOwor
ICAgIGF1dG8gcGFyYW1ldGVyID0gc2VydmVyUGFyYW1ldGVycy5maW5kKCJtYXhfd2luZG93X2Jp
dHMiX3MpOwogICAgIGlmIChwYXJhbWV0ZXIgIT0gc2VydmVyUGFyYW1ldGVycy5lbmQoKSkgewog
ICAgICAgICB3aW5kb3dCaXRzID0gcGFyc2VJbnRlZ2VyQWxsb3dpbmdUcmFpbGluZ0p1bms8aW50
PihwYXJhbWV0ZXItPnZhbHVlKS52YWx1ZV9vcigwKTsKICAgICAgICAgaWYgKHdpbmRvd0JpdHMg
PCA4IHx8IHdpbmRvd0JpdHMgPiAxNSkgewpAQCAtODcsNyArODcsNyBAQCBib29sIFdlYlNvY2tl
dEV4dGVuc2lvbkRlZmxhdGVGcmFtZTo6cHJvY2Vzc1Jlc3BvbnNlKGNvbnN0IEhhc2hNYXA8U3Ry
aW5nLCBTdHJpbgogICAgIH0KIAogICAgIFdlYlNvY2tldERlZmxhdGVyOjpDb250ZXh0VGFrZU92
ZXJNb2RlIG1vZGUgPSBXZWJTb2NrZXREZWZsYXRlcjo6VGFrZU92ZXJDb250ZXh0OwotICAgIHBh
cmFtZXRlciA9IHNlcnZlclBhcmFtZXRlcnMuZmluZCgibm9fY29udGV4dF90YWtlb3ZlciIpOwor
ICAgIHBhcmFtZXRlciA9IHNlcnZlclBhcmFtZXRlcnMuZmluZCgibm9fY29udGV4dF90YWtlb3Zl
ciJfcyk7CiAgICAgaWYgKHBhcmFtZXRlciAhPSBzZXJ2ZXJQYXJhbWV0ZXJzLmVuZCgpKSB7CiAg
ICAgICAgIGlmICghcGFyYW1ldGVyLT52YWx1ZS5pc051bGwoKSkgewogICAgICAgICAgICAgbV9m
YWlsdXJlUmVhc29uID0gIlJlY2VpdmVkIGludmFsaWQgbm9fY29udGV4dF90YWtlb3ZlciBwYXJh
bWV0ZXIiX3M7CkBAIC0xNjEsNyArMTYxLDcgQEAgc3RkOjp1bmlxdWVfcHRyPERlZmxhdGVSZXN1
bHRIb2xkZXI+IFdlYlNvY2tldERlZmxhdGVGcmFtZXI6OmRlZmxhdGUoV2ViU29ja2V0RnIKICAg
ICBpZiAoIWVuYWJsZWQoKSB8fCAhV2ViU29ja2V0RnJhbWU6OmlzTm9uQ29udHJvbE9wQ29kZShm
cmFtZS5vcENvZGUpIHx8ICFmcmFtZS5wYXlsb2FkTGVuZ3RoKQogICAgICAgICByZXR1cm4gcmVz
dWx0OwogICAgIGlmICghbV9kZWZsYXRlci0+YWRkQnl0ZXMoZnJhbWUucGF5bG9hZCwgZnJhbWUu
cGF5bG9hZExlbmd0aCkgfHwgIW1fZGVmbGF0ZXItPmZpbmlzaCgpKSB7Ci0gICAgICAgIHJlc3Vs
dC0+ZmFpbCgiRmFpbGVkIHRvIGNvbXByZXNzIGZyYW1lIik7CisgICAgICAgIHJlc3VsdC0+ZmFp
bCgiRmFpbGVkIHRvIGNvbXByZXNzIGZyYW1lIl9zKTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsK
ICAgICB9CiAgICAgZnJhbWUuY29tcHJlc3MgPSB0cnVlOwpAQCAtMTgwLDE3ICsxODAsMTcgQEAg
c3RkOjp1bmlxdWVfcHRyPEluZmxhdGVSZXN1bHRIb2xkZXI+IFdlYlNvY2tldERlZmxhdGVGcmFt
ZXI6OmluZmxhdGUoV2ViU29ja2V0RnIKIHsKICAgICBhdXRvIHJlc3VsdCA9IG1ha2VVbmlxdWU8
SW5mbGF0ZVJlc3VsdEhvbGRlcj4oKnRoaXMpOwogICAgIGlmICghZW5hYmxlZCgpICYmIGZyYW1l
LmNvbXByZXNzKSB7Ci0gICAgICAgIHJlc3VsdC0+ZmFpbCgiQ29tcHJlc3NlZCBiaXQgbXVzdCBi
ZSAwIGlmIG5vIG5lZ290aWF0ZWQgZGVmbGF0ZS1mcmFtZSBleHRlbnNpb24iKTsKKyAgICAgICAg
cmVzdWx0LT5mYWlsKCJDb21wcmVzc2VkIGJpdCBtdXN0IGJlIDAgaWYgbm8gbmVnb3RpYXRlZCBk
ZWZsYXRlLWZyYW1lIGV4dGVuc2lvbiJfcyk7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAg
fQogICAgIGlmICghZnJhbWUuY29tcHJlc3MpCiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAg
aWYgKCFXZWJTb2NrZXRGcmFtZTo6aXNOb25Db250cm9sT3BDb2RlKGZyYW1lLm9wQ29kZSkpIHsK
LSAgICAgICAgcmVzdWx0LT5mYWlsKCJSZWNlaXZlZCB1bmV4cGVjdGVkIGNvbXByZXNzZWQgZnJh
bWUiKTsKKyAgICAgICAgcmVzdWx0LT5mYWlsKCJSZWNlaXZlZCB1bmV4cGVjdGVkIGNvbXByZXNz
ZWQgZnJhbWUiX3MpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KICAgICBpZiAoIW1f
aW5mbGF0ZXItPmFkZEJ5dGVzKGZyYW1lLnBheWxvYWQsIGZyYW1lLnBheWxvYWRMZW5ndGgpIHx8
ICFtX2luZmxhdGVyLT5maW5pc2goKSkgewotICAgICAgICByZXN1bHQtPmZhaWwoIkZhaWxlZCB0
byBkZWNvbXByZXNzIGZyYW1lIik7CisgICAgICAgIHJlc3VsdC0+ZmFpbCgiRmFpbGVkIHRvIGRl
Y29tcHJlc3MgZnJhbWUiX3MpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KICAgICBm
cmFtZS5jb21wcmVzcyA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJzb2NrZXRzL1dlYlNvY2tldEV4dGVuc2lvbkRpc3BhdGNoZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEV4dGVuc2lvbkRpc3BhdGNoZXIuY3Bw
CmluZGV4IDdhZjJjMzc5MWEwYWU4ZDZlZTllOTI5OTgzNTdlODYwYWZiYjc1ZGQuLmU1Y2YxMjUx
MWVmM2U1NjRmNjNiODVkOGNiMGJiMWVlNDBjNWRhM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRFeHRlbnNpb25EaXNwYXRjaGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RXh0ZW5zaW9u
RGlzcGF0Y2hlci5jcHAKQEAgLTkzLDcgKzkzLDcgQEAgYm9vbCBXZWJTb2NrZXRFeHRlbnNpb25E
aXNwYXRjaGVyOjpwcm9jZXNzSGVhZGVyVmFsdWUoY29uc3QgU3RyaW5nJiBoZWFkZXJWYWx1ZSkK
IAogICAgIC8vIElmIHdlIGRvbid0IHNlbmQgU2VjLVdlYlNvY2tldC1FeHRlbnNpb25zIGhlYWRl
ciwgdGhlIHNlcnZlciBzaG91bGQgbm90IHJldHVybiB0aGUgaGVhZGVyLgogICAgIGlmICghbV9w
cm9jZXNzb3JzLnNpemUoKSkgewotICAgICAgICBmYWlsKCJSZWNlaXZlZCB1bmV4cGVjdGVkIFNl
Yy1XZWJTb2NrZXQtRXh0ZW5zaW9ucyBoZWFkZXIiKTsKKyAgICAgICAgZmFpbCgiUmVjZWl2ZWQg
dW5leHBlY3RlZCBTZWMtV2ViU29ja2V0LUV4dGVuc2lvbnMgaGVhZGVyIl9zKTsKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgIH0KIApAQCAtMTAzLDcgKzEwMyw3IEBAIGJvb2wgV2ViU29ja2V0
RXh0ZW5zaW9uRGlzcGF0Y2hlcjo6cHJvY2Vzc0hlYWRlclZhbHVlKGNvbnN0IFN0cmluZyYgaGVh
ZGVyVmFsdWUpCiAgICAgICAgIFN0cmluZyBleHRlbnNpb25Ub2tlbjsKICAgICAgICAgSGFzaE1h
cDxTdHJpbmcsIFN0cmluZz4gZXh0ZW5zaW9uUGFyYW1ldGVyczsKICAgICAgICAgaWYgKCFwYXJz
ZXIucGFyc2VFeHRlbnNpb24oZXh0ZW5zaW9uVG9rZW4sIGV4dGVuc2lvblBhcmFtZXRlcnMpKSB7
Ci0gICAgICAgICAgICBmYWlsKCJTZWMtV2ViU29ja2V0LUV4dGVuc2lvbnMgaGVhZGVyIGlzIGlu
dmFsaWQiKTsKKyAgICAgICAgICAgIGZhaWwoIlNlYy1XZWJTb2NrZXQtRXh0ZW5zaW9ucyBoZWFk
ZXIgaXMgaW52YWxpZCJfcyk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tl
dEZyYW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRG
cmFtZS5jcHAKaW5kZXggZTM5ZTAxOWFlMDJkOTY3MjM4Zjk2NTcyZDUzZWUyM2MzNDU2ZjIzMy4u
YmExZTYyNTQ5MTdhZmY0ZmE3YjgyYzY4ODRmZWIyYWM5MDcwZDNhZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEZyYW1lLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RnJhbWUuY3BwCkBAIC04
MiwxMSArODIsMTEgQEAgV2ViU29ja2V0RnJhbWU6OlBhcnNlRnJhbWVSZXN1bHQgV2ViU29ja2V0
RnJhbWU6OnBhcnNlRnJhbWUodWludDhfdCogZGF0YSwgc2l6ZV8KICAgICAgICAgICAgIHBheWxv
YWRMZW5ndGg2NCB8PSBzdGF0aWNfY2FzdDx1aW50OF90PigqcCsrKTsKICAgICAgICAgfQogICAg
ICAgICBpZiAoZXh0ZW5kZWRQYXlsb2FkTGVuZ3RoU2l6ZSA9PSAyICYmIHBheWxvYWRMZW5ndGg2
NCA8PSBtYXhQYXlsb2FkTGVuZ3RoV2l0aG91dEV4dGVuZGVkTGVuZ3RoRmllbGQpIHsKLSAgICAg
ICAgICAgIGVycm9yU3RyaW5nID0gIlRoZSBtaW5pbWFsIG51bWJlciBvZiBieXRlcyBNVVNUIGJl
IHVzZWQgdG8gZW5jb2RlIHRoZSBsZW5ndGgiOworICAgICAgICAgICAgZXJyb3JTdHJpbmcgPSAi
VGhlIG1pbmltYWwgbnVtYmVyIG9mIGJ5dGVzIE1VU1QgYmUgdXNlZCB0byBlbmNvZGUgdGhlIGxl
bmd0aCJfczsKICAgICAgICAgICAgIHJldHVybiBGcmFtZUVycm9yOwogICAgICAgICB9CiAgICAg
ICAgIGlmIChleHRlbmRlZFBheWxvYWRMZW5ndGhTaXplID09IDggJiYgcGF5bG9hZExlbmd0aDY0
IDw9IDB4RkZGRikgewotICAgICAgICAgICAgZXJyb3JTdHJpbmcgPSAiVGhlIG1pbmltYWwgbnVt
YmVyIG9mIGJ5dGVzIE1VU1QgYmUgdXNlZCB0byBlbmNvZGUgdGhlIGxlbmd0aCI7CisgICAgICAg
ICAgICBlcnJvclN0cmluZyA9ICJUaGUgbWluaW1hbCBudW1iZXIgb2YgYnl0ZXMgTVVTVCBiZSB1
c2VkIHRvIGVuY29kZSB0aGUgbGVuZ3RoIl9zOwogICAgICAgICAgICAgcmV0dXJuIEZyYW1lRXJy
b3I7CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnhyL1dlYlhSV2ViR0xMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhy
L1dlYlhSV2ViR0xMYXllci5jcHAKaW5kZXggODI2ZGUxNmE3MDY5MWQ0MjBjNTk0NjdkYzRhNzFk
ZWRmYjBiNjVjNi4uZDc0MGZiYjg4M2QyNThhZDFlNWRiN2Y2YmJmZDE2NjViNDQ5Yjk4OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUldlYkdMTGF5ZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJXZWJHTExheWVyLmNwcApA
QCAtNjQsNyArNjQsNyBAQCBzdGF0aWMgRXhjZXB0aW9uT3I8c3RkOjp1bmlxdWVfcHRyPFdlYlhS
T3BhcXVlRnJhbWVidWZmZXI+PiBjcmVhdGVPcGFxdWVGcmFtZWJ1ZgogewogICAgIGF1dG8gZGV2
aWNlID0gc2Vzc2lvbi5kZXZpY2UoKTsKICAgICBpZiAoIWRldmljZSkKLSAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IE9wZXJhdGlvbkVycm9yLCAiQ2Fubm90IGNyZWF0ZSBhbiBYUldlYkdMTGF5
ZXIgd2l0aCBhbiBYUlNlc3Npb24gdGhhdCBoYXMgZW5kZWQuIiB9OworICAgICAgICByZXR1cm4g
RXhjZXB0aW9uIHsgT3BlcmF0aW9uRXJyb3IsICJDYW5ub3QgY3JlYXRlIGFuIFhSV2ViR0xMYXll
ciB3aXRoIGFuIFhSU2Vzc2lvbiB0aGF0IGhhcyBlbmRlZC4iX3MgfTsKIAogICAgIC8vIDkuMS4g
SW5pdGlhbGl6ZSBsYXllcuKAmXMgYW50aWFsaWFzIHRvIGxheWVySW5pdOKAmXMgYW50aWFsaWFz
IHZhbHVlLgogICAgIC8vIDkuMi4gTGV0IGZyYW1lYnVmZmVyU2l6ZSBiZSB0aGUgcmVjb21tZW5k
ZWQgV2ViR0wgZnJhbWVidWZmZXIgcmVzb2x1dGlvbiBtdWx0aXBsaWVkIGJ5IGxheWVySW5pdCdz
IGZyYW1lYnVmZmVyU2NhbGVGYWN0b3IuCkBAIC04Miw3ICs4Miw3IEBAIHN0YXRpYyBFeGNlcHRp
b25PcjxzdGQ6OnVuaXF1ZV9wdHI8V2ViWFJPcGFxdWVGcmFtZWJ1ZmZlcj4+IGNyZWF0ZU9wYXF1
ZUZyYW1lYnVmCiAgICAgLy8gOS41LiBJZiBsYXllcuKAmXMgcmVzb3VyY2VzIHdlcmUgdW5hYmxl
IHRvIGJlIGNyZWF0ZWQgZm9yIGFueSByZWFzb24sIHRocm93IGFuIE9wZXJhdGlvbkVycm9yIGFu
ZCBhYm9ydCB0aGVzZSBzdGVwcy4KICAgICBhdXRvIGxheWVySGFuZGxlID0gZGV2aWNlLT5jcmVh
dGVMYXllclByb2plY3Rpb24od2lkdGgsIGhlaWdodCwgaW5pdC5hbHBoYSk7CiAgICAgaWYgKCFs
YXllckhhbmRsZSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE9wZXJhdGlvbkVycm9yLCAi
VW5hYmxlIHRvIGFsbG9jYXRlIFhSV2ViR0xMYXllciBHUFUgcmVzb3VyY2VzLiJ9OworICAgICAg
ICByZXR1cm4gRXhjZXB0aW9uIHsgT3BlcmF0aW9uRXJyb3IsICJVbmFibGUgdG8gYWxsb2NhdGUg
WFJXZWJHTExheWVyIEdQVSByZXNvdXJjZXMuIl9zIH07CiAKICAgICBXZWJYUk9wYXF1ZUZyYW1l
YnVmZmVyOjpBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMgewogICAgICAgICAuYWxwaGEgPSBpbml0LmFs
cGhhLApAQCAtOTMsNyArOTMsNyBAQCBzdGF0aWMgRXhjZXB0aW9uT3I8c3RkOjp1bmlxdWVfcHRy
PFdlYlhST3BhcXVlRnJhbWVidWZmZXI+PiBjcmVhdGVPcGFxdWVGcmFtZWJ1ZgogCiAgICAgYXV0
byBmcmFtZWJ1ZmZlciA9IFdlYlhST3BhcXVlRnJhbWVidWZmZXI6OmNyZWF0ZSgqbGF5ZXJIYW5k
bGUsIGNvbnRleHQsIFdURk1vdmUoYXR0cmlidXRlcyksIHdpZHRoLCBoZWlnaHQpOwogICAgIGlm
ICghZnJhbWVidWZmZXIpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBPcGVyYXRpb25FcnJv
ciwgIlVuYWJsZSB0byBjcmVhdGUgYSBmcmFtZWJ1ZmZlci4iIH07CisgICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBPcGVyYXRpb25FcnJvciwgIlVuYWJsZSB0byBjcmVhdGUgYSBmcmFtZWJ1ZmZl
ci4iX3MgfTsKICAgICAKICAgICByZXR1cm4gZnJhbWVidWZmZXI7CiB9CkBAIC0xMDQsNyArMTA0
LDcgQEAgRXhjZXB0aW9uT3I8UmVmPFdlYlhSV2ViR0xMYXllcj4+IFdlYlhSV2ViR0xMYXllcjo6
Y3JlYXRlKFJlZjxXZWJYUlNlc3Npb24+JiYgc2UKICAgICAvLyAxLiBMZXQgbGF5ZXIgYmUgYSBu
ZXcgWFJXZWJHTExheWVyCiAgICAgLy8gMi4gSWYgc2Vzc2lvbuKAmXMgZW5kZWQgdmFsdWUgaXMg
dHJ1ZSwgdGhyb3cgYW4gSW52YWxpZFN0YXRlRXJyb3IgYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgog
ICAgIGlmIChzZXNzaW9uLT5lbmRlZCgpKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52
YWxpZFN0YXRlRXJyb3IsICJDYW5ub3QgY3JlYXRlIGFuIFhSV2ViR0xMYXllciB3aXRoIGFuIFhS
U2Vzc2lvbiB0aGF0IGhhcyBlbmRlZC4iIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJ
bnZhbGlkU3RhdGVFcnJvciwgIkNhbm5vdCBjcmVhdGUgYW4gWFJXZWJHTExheWVyIHdpdGggYW4g
WFJTZXNzaW9uIHRoYXQgaGFzIGVuZGVkLiJfcyB9OwogCiAgICAgLy8gMy4gSWYgY29udGV4dCBp
cyBsb3N0LCB0aHJvdyBhbiBJbnZhbGlkU3RhdGVFcnJvciBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMu
CiAgICAgLy8gNC4gSWYgc2Vzc2lvbiBpcyBhbiBpbW1lcnNpdmUgc2Vzc2lvbiBhbmQgY29udGV4
dOKAmXMgWFIgY29tcGF0aWJsZSBib29sZWFuIGlzIGZhbHNlLCB0aHJvdwpAQCAtMTEzLDExICsx
MTMsMTEgQEAgRXhjZXB0aW9uT3I8UmVmPFdlYlhSV2ViR0xMYXllcj4+IFdlYlhSV2ViR0xMYXll
cjo6Y3JlYXRlKFJlZjxXZWJYUlNlc3Npb24+JiYgc2UKICAgICAgICAgWyZdKGNvbnN0IFJlZlB0
cjxXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlPiYgYmFzZUNvbnRleHQpIC0+IEV4Y2VwdGlvbk9y
PFJlZjxXZWJYUldlYkdMTGF5ZXI+PgogICAgICAgICB7CiAgICAgICAgICAgICBpZiAoYmFzZUNv
bnRleHQtPmlzQ29udGV4dExvc3QoKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9u
IHsgSW52YWxpZFN0YXRlRXJyb3IsICJDYW5ub3QgY3JlYXRlIGFuIFhSV2ViR0xMYXllciB3aXRo
IGEgbG9zdCBXZWJHTCBjb250ZXh0LiIgfTsKKyAgICAgICAgICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJDYW5ub3QgY3JlYXRlIGFuIFhSV2ViR0xMYXllciB3
aXRoIGEgbG9zdCBXZWJHTCBjb250ZXh0LiJfcyB9OwogCiAgICAgICAgICAgICBhdXRvIG1vZGUg
PSBzZXNzaW9uLT5tb2RlKCk7CiAgICAgICAgICAgICBpZiAoKG1vZGUgPT0gWFJTZXNzaW9uTW9k
ZTo6SW1tZXJzaXZlQXIgfHwgbW9kZSA9PSBYUlNlc3Npb25Nb2RlOjpJbW1lcnNpdmVWcikgJiYg
IWJhc2VDb250ZXh0LT5pc1hSQ29tcGF0aWJsZSgpKQotICAgICAgICAgICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkNhbm5vdCBjcmVhdGUgYW4gWFJXZWJHTExh
eWVyIHdpdGggV2ViR0wgY29udGV4dCBub3QgbWFya2VkIGFzIFhSIGNvbXBhdGlibGUuIiB9Owor
ICAgICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkNh
bm5vdCBjcmVhdGUgYW4gWFJXZWJHTExheWVyIHdpdGggV2ViR0wgY29udGV4dCBub3QgbWFya2Vk
IGFzIFhSIGNvbXBhdGlibGUuIl9zIH07CiAKIAogICAgICAgICAgICAgLy8gNS4gSW5pdGlhbGl6
ZSBsYXllcuKAmXMgY29udGV4dCB0byBjb250ZXh0LiAoc2VlIGNvbnN0cnVjdG9yKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWEltYWdlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhJbWFnZS5jcHAKaW5kZXggNzVmZWE4YjE1MmIxNmU2OTVk
NjRlMjk5MmQ5MzgzYTg2Y2ZlMjJkYS4uMjYzYjc5NjkwYjk3MjkzNzAyNTc5Y2YwZDBlNzgyODBk
MmZmZjdiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWEltYWdl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYSW1hZ2UuY3BwCkBAIC01
Nyw3ICs1Nyw3IEBAIEFjY2Vzc2liaWxpdHlSb2xlIEFYSW1hZ2U6OnJvbGVWYWx1ZSgpIGNvbnN0
CiAKIHN0ZDo6b3B0aW9uYWw8QVhDb3JlT2JqZWN0OjpBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0
b3I+IEFYSW1hZ2U6OmltYWdlT3ZlcmxheUVsZW1lbnRzKCkKIHsKLSAgICBBWFRSQUNFKCJBWElt
YWdlOjppbWFnZU92ZXJsYXlFbGVtZW50cyIpOworICAgIEFYVFJBQ0UoIkFYSW1hZ2U6OmltYWdl
T3ZlcmxheUVsZW1lbnRzIl9zKTsKIAogICAgIGF1dG8mIGNoaWxkcmVuID0gdGhpcy0+Y2hpbGRy
ZW4oKTsKICAgICBpZiAoY2hpbGRyZW4uc2l6ZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BWExvZ2dlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FYTG9nZ2VyLmNwcAppbmRleCAwYjZjY2QzYjdlOTI4Y2U4NzgwYmRjN2YyMWIwOGU3M2U2
NDI5ZTMzLi45NDE0NjE4MmE1YWJkZGIyYzkwZTYxNjFiMGZkZmEwZjZjM2VlNTRkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYTG9nZ2VyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYTG9nZ2VyLmNwcApAQCAtNTUsNyArNTUsNyBAQCBz
dGF0aWMgYm9vbCBzaG91bGRMb2coKQogQVhMb2dnZXI6OkFYTG9nZ2VyKGNvbnN0IFN0cmluZyYg
bWV0aG9kTmFtZSkKICAgICA6IG1fbWV0aG9kTmFtZShtZXRob2ROYW1lKQogewotICAgIGlmIChh
dXRvKiBjaGFubmVsID0gZ2V0TG9nQ2hhbm5lbCgiQWNjZXNzaWJpbGl0eSIpKQorICAgIGlmIChh
dXRvKiBjaGFubmVsID0gZ2V0TG9nQ2hhbm5lbCgiQWNjZXNzaWJpbGl0eSJfcykpCiAgICAgICAg
IGNoYW5uZWwtPmxldmVsID0gV1RGTG9nTGV2ZWw6OkRlYnVnOwogCiAgICAgaWYgKHNob3VsZExv
ZygpKSB7CkBAIC03OCw2ICs3OCwxMiBAQCB2b2lkIEFYTG9nZ2VyOjpsb2coY29uc3QgU3RyaW5n
JiBtZXNzYWdlKQogICAgICAgICBMT0coQWNjZXNzaWJpbGl0eSwgIiVzIiwgbWVzc2FnZS51dGY4
KCkuZGF0YSgpKTsKIH0KIAordm9pZCBBWExvZ2dlcjo6bG9nKGNvbnN0IGNoYXIqIG1lc3NhZ2Up
Cit7CisgICAgaWYgKHNob3VsZExvZygpKQorICAgICAgICBMT0coQWNjZXNzaWJpbGl0eSwgIiVz
IiwgbWVzc2FnZSk7Cit9CisKIHZvaWQgQVhMb2dnZXI6OmxvZyhSZWZQdHI8QVhDb3JlT2JqZWN0
PiBvYmplY3QpCiB7CiAgICAgaWYgKHNob3VsZExvZygpKSB7CkBAIC0zMjgsMTUgKzMzNCwxNSBA
QCBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHN0cmVhbSwgQWNjZXNzaWJpbGl0
eVNlYXJjaEtleSBzZWFyY2hLZXkpCiBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0m
IHN0cmVhbSwgY29uc3QgQWNjZXNzaWJpbGl0eVNlYXJjaENyaXRlcmlhJiBjcml0ZXJpYSkKIHsK
ICAgICBUZXh0U3RyZWFtOjpHcm91cFNjb3BlIGdyb3VwU2NvcGUoc3RyZWFtKTsKLSAgICBhdXRv
IHN0cmVhbUNyaXRlcmlhT2JqZWN0ID0gWyZzdHJlYW1dIChTdHJpbmcgb2JqZWN0TGFiZWwsIGF1
dG8qIGF4T2JqZWN0KSB7CisgICAgYXV0byBzdHJlYW1Dcml0ZXJpYU9iamVjdCA9IFsmc3RyZWFt
XSAoQVNDSUlMaXRlcmFsIG9iamVjdExhYmVsLCBhdXRvKiBheE9iamVjdCkgewogICAgICAgICBz
dHJlYW0uc3RhcnRHcm91cCgpOwotICAgICAgICBzdHJlYW0gPDwgb2JqZWN0TGFiZWwgPDwgIiAi
IDw8IGF4T2JqZWN0IDw8ICIsIElEICIgPDwgKGF4T2JqZWN0ID8gYXhPYmplY3QtPm9iamVjdElE
KCkgOiBBWElEKCkpOworICAgICAgICBzdHJlYW0gPDwgb2JqZWN0TGFiZWwuY2hhcmFjdGVycygp
IDw8ICIgIiA8PCBheE9iamVjdCA8PCAiLCBJRCAiIDw8IChheE9iamVjdCA/IGF4T2JqZWN0LT5v
YmplY3RJRCgpIDogQVhJRCgpKTsKICAgICAgICAgc3RyZWFtLmVuZEdyb3VwKCk7CiAgICAgfTsK
IAogICAgIHN0cmVhbSA8PCAiU2VhcmNoQ3JpdGVyaWEgIiA8PCAmY3JpdGVyaWE7Ci0gICAgc3Ry
ZWFtQ3JpdGVyaWFPYmplY3QoImFuY2hvck9iamVjdCIsIGNyaXRlcmlhLmFuY2hvck9iamVjdCk7
Ci0gICAgc3RyZWFtQ3JpdGVyaWFPYmplY3QoInN0YXJ0T2JqZWN0IiwgY3JpdGVyaWEuc3RhcnRP
YmplY3QpOworICAgIHN0cmVhbUNyaXRlcmlhT2JqZWN0KCJhbmNob3JPYmplY3QiX3MsIGNyaXRl
cmlhLmFuY2hvck9iamVjdCk7CisgICAgc3RyZWFtQ3JpdGVyaWFPYmplY3QoInN0YXJ0T2JqZWN0
Il9zLCBjcml0ZXJpYS5zdGFydE9iamVjdCk7CiAgICAgc3RyZWFtLmR1bXBQcm9wZXJ0eSgic2Vh
cmNoRGlyZWN0aW9uIiwgY3JpdGVyaWEuc2VhcmNoRGlyZWN0aW9uKTsKIAogICAgIHN0cmVhbS5u
ZXh0TGluZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWExv
Z2dlci5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWExvZ2dlci5oCmluZGV4IGVh
ODkyZjJmOTY2YzU0ZGMwY2VjZTFkYTc5Mjg0ZTc5ODFhMGM5NTYuLmQxZmJhZmIxN2NiYmVjMzI0
YWUyMGI5ZjE2Y2MwMmY3MGNhMDVmMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQVhMb2dnZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FY
TG9nZ2VyLmgKQEAgLTQzLDYgKzQzLDcgQEAgcHVibGljOgogICAgIEFYTG9nZ2VyKGNvbnN0IFN0
cmluZyYgbWV0aG9kTmFtZSk7CiAgICAgfkFYTG9nZ2VyKCk7CiAgICAgc3RhdGljIHZvaWQgbG9n
KGNvbnN0IFN0cmluZyYpOworICAgIHN0YXRpYyB2b2lkIGxvZyhjb25zdCBjaGFyKik7CiAgICAg
c3RhdGljIHZvaWQgbG9nKFJlZlB0cjxBWENvcmVPYmplY3Q+KTsKICAgICBzdGF0aWMgdm9pZCBs
b2coY29uc3QgVmVjdG9yPFJlZlB0cjxBWENvcmVPYmplY3Q+PiYpOwogICAgIHN0YXRpYyB2b2lk
IGxvZyhjb25zdCBzdGQ6OnBhaXI8UmVmUHRyPEFYQ29yZU9iamVjdD4sIEFYT2JqZWN0Q2FjaGU6
OkFYTm90aWZpY2F0aW9uPiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BWE9iamVjdENhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhP
YmplY3RDYWNoZS5jcHAKaW5kZXggNzcyMmM2ZDBkMjk3OTk5ZTJjNTk5NmZjMmFkMDhlYjkyMGIw
MmM4YS4uNTNjYzA3ZjQwMDFmYWI3MjgyNGIyZDE5ZDFlZmYwNjYyOTdhOWFmNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCkBAIC0yNTIsNyAr
MjUyLDcgQEAgQVhPYmplY3RDYWNoZTo6fkFYT2JqZWN0Q2FjaGUoKQogCiBib29sIEFYT2JqZWN0
Q2FjaGU6OmlzTW9kYWxFbGVtZW50KEVsZW1lbnQmIGVsZW1lbnQpIGNvbnN0CiB7Ci0gICAgYm9v
bCBoYXNEaWFsb2dSb2xlID0gbm9kZUhhc1JvbGUoJmVsZW1lbnQsICJkaWFsb2ciKSB8fCBub2Rl
SGFzUm9sZSgmZWxlbWVudCwgImFsZXJ0ZGlhbG9nIik7CisgICAgYm9vbCBoYXNEaWFsb2dSb2xl
ID0gbm9kZUhhc1JvbGUoJmVsZW1lbnQsICJkaWFsb2ciX3MpIHx8IG5vZGVIYXNSb2xlKCZlbGVt
ZW50LCAiYWxlcnRkaWFsb2ciX3MpOwogICAgIGJvb2wgaXNBcmlhTW9kYWwgPSBlcXVhbExldHRl
cnNJZ25vcmluZ0FTQ0lJQ2FzZShlbGVtZW50LmF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRp
b24oYXJpYV9tb2RhbEF0dHIpLCAidHJ1ZSIpOwogCiAgICAgcmV0dXJuIChoYXNEaWFsb2dSb2xl
ICYmIGlzQXJpYU1vZGFsKSB8fCAoaXM8SFRNTERpYWxvZ0VsZW1lbnQ+KGVsZW1lbnQpICYmIGRv
d25jYXN0PEhUTUxEaWFsb2dFbGVtZW50PihlbGVtZW50KS5pc01vZGFsKCkpOwpAQCAtNTYwLDIy
ICs1NjAsMjIgQEAgc3RhdGljIFJlZjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiBjcmVhdGVGcm9tUmVu
ZGVyZXIoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKIAogICAgIC8vIElmIHRoZSBub2RlIGlzIGFy
aWEgcm9sZT0ibGlzdCIgb3IgdGhlIGFyaWEgcm9sZSBpcyBlbXB0eSBhbmQgaXRzIGEKICAgICAv
LyB1bC9vbC9kbCB0eXBlIChpdCBzaG91bGRuJ3QgYmUgYSBsaXN0IGlmIGFyaWEgc2F5cyBvdGhl
cndpc2UpLgotICAgIGlmIChub2RlICYmICgobm9kZUhhc1JvbGUobm9kZSwgImxpc3QiKSB8fCBu
b2RlSGFzUm9sZShub2RlLCAiZGlyZWN0b3J5IikpCisgICAgaWYgKG5vZGUgJiYgKChub2RlSGFz
Um9sZShub2RlLCAibGlzdCJfcykgfHwgbm9kZUhhc1JvbGUobm9kZSwgImRpcmVjdG9yeSJfcykp
CiAgICAgICAgICAgICAgICAgICAgICAgfHwgKG5vZGVIYXNSb2xlKG5vZGUsIG51bGxBdG9tKCkp
ICYmIChub2RlLT5oYXNUYWdOYW1lKHVsVGFnKSB8fCBub2RlLT5oYXNUYWdOYW1lKG9sVGFnKSB8
fCBub2RlLT5oYXNUYWdOYW1lKGRsVGFnKSkpKSkKICAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxp
dHlMaXN0OjpjcmVhdGUocmVuZGVyZXIpOwogCiAgICAgLy8gYXJpYSB0YWJsZXMKLSAgICBpZiAo
bm9kZUhhc1JvbGUobm9kZSwgImdyaWQiKSB8fCBub2RlSGFzUm9sZShub2RlLCAidHJlZWdyaWQi
KSB8fCBub2RlSGFzUm9sZShub2RlLCAidGFibGUiKSkKKyAgICBpZiAobm9kZUhhc1JvbGUobm9k
ZSwgImdyaWQiX3MpIHx8IG5vZGVIYXNSb2xlKG5vZGUsICJ0cmVlZ3JpZCJfcykgfHwgbm9kZUhh
c1JvbGUobm9kZSwgInRhYmxlIl9zKSkKICAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlBUklB
R3JpZDo6Y3JlYXRlKHJlbmRlcmVyKTsKLSAgICBpZiAobm9kZUhhc1JvbGUobm9kZSwgInJvdyIp
KQorICAgIGlmIChub2RlSGFzUm9sZShub2RlLCAicm93Il9zKSkKICAgICAgICAgcmV0dXJuIEFj
Y2Vzc2liaWxpdHlBUklBR3JpZFJvdzo6Y3JlYXRlKHJlbmRlcmVyKTsKLSAgICBpZiAobm9kZUhh
c1JvbGUobm9kZSwgImdyaWRjZWxsIikgfHwgbm9kZUhhc1JvbGUobm9kZSwgImNlbGwiKSB8fCBu
b2RlSGFzUm9sZShub2RlLCAiY29sdW1uaGVhZGVyIikgfHwgbm9kZUhhc1JvbGUobm9kZSwgInJv
d2hlYWRlciIpKQorICAgIGlmIChub2RlSGFzUm9sZShub2RlLCAiZ3JpZGNlbGwiX3MpIHx8IG5v
ZGVIYXNSb2xlKG5vZGUsICJjZWxsIl9zKSB8fCBub2RlSGFzUm9sZShub2RlLCAiY29sdW1uaGVh
ZGVyIl9zKSB8fCBub2RlSGFzUm9sZShub2RlLCAicm93aGVhZGVyIl9zKSkKICAgICAgICAgcmV0
dXJuIEFjY2Vzc2liaWxpdHlBUklBR3JpZENlbGw6OmNyZWF0ZShyZW5kZXJlcik7CiAKICAgICAv
LyBhcmlhIHRyZWUKLSAgICBpZiAobm9kZUhhc1JvbGUobm9kZSwgInRyZWUiKSkKKyAgICBpZiAo
bm9kZUhhc1JvbGUobm9kZSwgInRyZWUiX3MpKQogICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0
eVRyZWU6OmNyZWF0ZShyZW5kZXJlcik7Ci0gICAgaWYgKG5vZGVIYXNSb2xlKG5vZGUsICJ0cmVl
aXRlbSIpKQorICAgIGlmIChub2RlSGFzUm9sZShub2RlLCAidHJlZWl0ZW0iX3MpKQogICAgICAg
ICByZXR1cm4gQWNjZXNzaWJpbGl0eVRyZWVJdGVtOjpjcmVhdGUocmVuZGVyZXIpOwogCiAgICAg
aWYgKG5vZGUgJiYgaXM8SFRNTExhYmVsRWxlbWVudD4obm9kZSkgJiYgbm9kZUhhc1JvbGUobm9k
ZSwgbnVsbEF0b20oKSkpCkBAIC04NjUsNyArODY1LDcgQEAgQWNjZXNzaWJpbGl0eU9iamVjdCog
QVhPYmplY3RDYWNoZTo6Y3JlYXRlKEFjY2Vzc2liaWxpdHlSb2xlIHJvbGUpCiAKIHZvaWQgQVhP
YmplY3RDYWNoZTo6cmVtb3ZlKEFYSUQgYXhJRCkKIHsKLSAgICBBWFRSQUNFKCJBWE9iamVjdENh
Y2hlOjpyZW1vdmUiKTsKKyAgICBBWFRSQUNFKCJBWE9iamVjdENhY2hlOjpyZW1vdmUiX3MpOwog
ICAgIEFYTE9HKG1ha2VTdHJpbmcoIkFYSUQgIiwgYXhJRC5sb2dnaW5nU3RyaW5nKCkpKTsKIAog
ICAgIGlmICghYXhJRCkKQEAgLTk3Nyw3ICs5NzcsNyBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnRl
eHRDaGFuZ2VkKE5vZGUqIG5vZGUpCiAKIHZvaWQgQVhPYmplY3RDYWNoZTo6dGV4dENoYW5nZWQo
QWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0KQogewotICAgIEFYVFJBQ0UoIkFYT2JqZWN0Q2Fj
aGU6OnRleHRDaGFuZ2VkIik7CisgICAgQVhUUkFDRSgiQVhPYmplY3RDYWNoZTo6dGV4dENoYW5n
ZWQiX3MpOwogICAgIEFYTE9HKG9iamVjdCk7CiAKICAgICBpZiAoIW9iamVjdCkKQEAgLTEwODIs
NyArMTA4Miw3IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlQ2hpbGRyZW5DaGFuZ2VkKEFj
Y2Vzc2liaWxpdHlPYmplY3QmIG9iamVjdCkKIAogdm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVN
ZW51T3BlbmVkKE5vZGUqIG5vZGUpCiB7Ci0gICAgaWYgKCFub2RlIHx8ICFub2RlLT5yZW5kZXJl
cigpIHx8ICFub2RlSGFzUm9sZShub2RlLCAibWVudSIpKQorICAgIGlmICghbm9kZSB8fCAhbm9k
ZS0+cmVuZGVyZXIoKSB8fCAhbm9kZUhhc1JvbGUobm9kZSwgIm1lbnUiX3MpKQogICAgICAgICBy
ZXR1cm47CiAgICAgCiAgICAgcG9zdE5vdGlmaWNhdGlvbihnZXRPckNyZWF0ZShub2RlKSwgJmRv
Y3VtZW50KCksIEFYTWVudU9wZW5lZCk7CkBAIC0xMTM0LDcgKzExMzQsNyBAQCB2b2lkIEFYT2Jq
ZWN0Q2FjaGU6OmNoaWxkcmVuQ2hhbmdlZChBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3QpCiAK
IHZvaWQgQVhPYmplY3RDYWNoZTo6bm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQoKQogewotICAg
IEFYVFJBQ0UoIkFYT2JqZWN0Q2FjaGU6Om5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkIik7Cisg
ICAgQVhUUkFDRSgiQVhPYmplY3RDYWNoZTo6bm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQiX3Mp
OwogICAgIC8vIER1cmluZyBMYXlvdXRUZXN0cywgYWNjZXNzaWJpbGl0eSBtYXkgYmUgZGlzYWJs
ZWQgYmV0d2VlbiB0aGUgdGltZSB0aGUgbm90aWZpY2F0aW9ucyBhcmUgcXVldWVkIGFuZCB0aGUg
dGltZXIgZmlyZXMuCiAgICAgLy8gVGh1cyBjaGVjayBoZXJlIGFuZCByZXR1cm4gaWYgYWNjZXNz
aWJpbGl0eSBpcyBkaXNhYmxlZC4KICAgICBpZiAoIWFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCkBA
IC0xMTk1LDcgKzExOTUsNyBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBhc3N3b3JkTm90aWZpY2F0
aW9uUG9zdFRpbWVyRmlyZWQoKQogICAgIGF1dG8gbm90aWZpY2F0aW9ucyA9IHN0ZDo6ZXhjaGFu
Z2UobV9wYXNzd29yZE5vdGlmaWNhdGlvbnNUb1Bvc3QsIHsgfSk7CiAKICAgICBmb3IgKGF1dG8m
IG5vdGlmaWNhdGlvbiA6IG5vdGlmaWNhdGlvbnMpCi0gICAgICAgIHBvc3RUZXh0U3RhdGVDaGFu
Z2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihub3RpZmljYXRpb24uZ2V0KCksIEFYVGV4dEVkaXRUeXBl
SW5zZXJ0LCAiICIsIFZpc2libGVQb3NpdGlvbigpKTsKKyAgICAgICAgcG9zdFRleHRTdGF0ZUNo
YW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbi5nZXQoKSwgQVhUZXh0RWRpdFR5
cGVJbnNlcnQsICIgIl9zLCBWaXNpYmxlUG9zaXRpb24oKSk7CiAjZW5kaWYKIH0KIApAQCAtMTI0
Myw3ICsxMjQzLDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0aW9uKE5vZGUq
IG5vZGUsIEFYTm90aWZpY2F0aW9uIG5vdGlmaWNhdGlvbiwgUG8KIAogdm9pZCBBWE9iamVjdENh
Y2hlOjpwb3N0Tm90aWZpY2F0aW9uKEFYQ29yZU9iamVjdCogb2JqZWN0LCBEb2N1bWVudCogZG9j
dW1lbnQsIEFYTm90aWZpY2F0aW9uIG5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCBwb3N0VGFyZ2V0
KQogewotICAgIEFYVFJBQ0UoIkFYT2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24iKTsKKyAg
ICBBWFRSQUNFKCJBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0aW9uIl9zKTsKICAgICBBWExP
RyhzdGQ6Om1ha2VfcGFpcihvYmplY3QsIG5vdGlmaWNhdGlvbikpOwogICAgIEFTU0VSVChpc01h
aW5UaHJlYWQoKSk7CiAKQEAgLTEyNzMsNyArMTI3Myw3IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6
aGFuZGxlTWVudUl0ZW1TZWxlY3RlZChOb2RlKiBub2RlKQogICAgIGlmICghbm9kZSkKICAgICAg
ICAgcmV0dXJuOwogICAgIAotICAgIGlmICghbm9kZUhhc1JvbGUobm9kZSwgIm1lbnVpdGVtIikg
JiYgIW5vZGVIYXNSb2xlKG5vZGUsICJtZW51aXRlbXJhZGlvIikgJiYgIW5vZGVIYXNSb2xlKG5v
ZGUsICJtZW51aXRlbWNoZWNrYm94IikpCisgICAgaWYgKCFub2RlSGFzUm9sZShub2RlLCAibWVu
dWl0ZW0iX3MpICYmICFub2RlSGFzUm9sZShub2RlLCAibWVudWl0ZW1yYWRpbyJfcykgJiYgIW5v
ZGVIYXNSb2xlKG5vZGUsICJtZW51aXRlbWNoZWNrYm94Il9zKSkKICAgICAgICAgcmV0dXJuOwog
ICAgIAogICAgIGlmICghZG93bmNhc3Q8RWxlbWVudD4oKm5vZGUpLmZvY3VzZWQoKSAmJiAhZXF1
YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoZG93bmNhc3Q8RWxlbWVudD4oKm5vZGUpLmF0dHJp
YnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oYXJpYV9zZWxlY3RlZEF0dHIpLCAidHJ1ZSIpKQpA
QCAtMTM0Nyw4ICsxMzQ3LDggQEAgdm9pZCBBWE9iamVjdENhY2hlOjpzZWxlY3RlZFN0YXRlQ2hh
bmdlZChOb2RlKiBub2RlKQogewogICAgIC8vIEZvciBhIHRhYmxlIGNlbGwsIHBvc3QgQVhTZWxl
Y3RlZFN0YXRlQ2hhbmdlZCBvbiB0aGUgY2VsbCBpdHNlbGYuCiAgICAgLy8gRm9yIGFueSBvdGhl
ciBlbGVtZW50LCBwb3N0IEFYU2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQgb24gdGhlIHBhcmVudC4K
LSAgICBpZiAobm9kZUhhc1JvbGUobm9kZSwgImdyaWRjZWxsIikgfHwgbm9kZUhhc1JvbGUobm9k
ZSwgImNlbGwiKQotICAgICAgICB8fCBub2RlSGFzUm9sZShub2RlLCAiY29sdW1uaGVhZGVyIikg
fHwgbm9kZUhhc1JvbGUobm9kZSwgInJvd2hlYWRlciIpKQorICAgIGlmIChub2RlSGFzUm9sZShu
b2RlLCAiZ3JpZGNlbGwiX3MpIHx8IG5vZGVIYXNSb2xlKG5vZGUsICJjZWxsIl9zKQorICAgICAg
ICB8fCBub2RlSGFzUm9sZShub2RlLCAiY29sdW1uaGVhZGVyIl9zKSB8fCBub2RlSGFzUm9sZShu
b2RlLCAicm93aGVhZGVyIl9zKSkKICAgICAgICAgcG9zdE5vdGlmaWNhdGlvbihub2RlLCBBWFNl
bGVjdGVkU3RhdGVDaGFuZ2VkKTsKICAgICBlbHNlCiAgICAgICAgIHNlbGVjdGVkQ2hpbGRyZW5D
aGFuZ2VkKG5vZGUpOwpAQCAtMTU0Miw3ICsxNTQyLDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpw
b3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKGNvbnN0IFBvc2l0aW9uJiBwb3NpdGlvbiwg
Y28KIAogdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9u
KEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCwgY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQmIGludGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uKQogewotICAgIEFY
VFJBQ0UoIkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24iKTsK
KyAgICBBWFRSQUNFKCJBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0
aW9uIl9zKTsKICAgICBzdG9wQ2FjaGluZ0NvbXB1dGVkT2JqZWN0QXR0cmlidXRlcygpOwogCiAj
aWYgUExBVEZPUk0oQ09DT0EpIHx8IFVTRShBVFNQSSkKQEAgLTE1NzQsNyArMTU3NCw3IEBAIHZv
aWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihBY2Nlc3Np
YmlsaXR5T2JqZWN0KiBvYmplY3QsCiAKIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0
ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiBub2RlLCBBWFRleHRFZGl0VHlwZSB0eXBlLCBjb25z
dCBTdHJpbmcmIHRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCiB7Ci0gICAg
QVhUUkFDRSgiQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbiIp
OworICAgIEFYVFJBQ0UoIkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmlj
YXRpb24iX3MpOwogICAgIGlmICghbm9kZSB8fCB0eXBlID09IEFYVGV4dEVkaXRUeXBlVW5rbm93
bikKICAgICAgICAgcmV0dXJuOwogCkBAIC0xOTEyLDcgKzE5MTIsNyBAQCB2b2lkIEFYT2JqZWN0
Q2FjaGU6OmhhbmRsZUF0dHJpYnV0ZUNoYW5nZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFt
ZSwgRWxlbWVudAogCiB2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZU1vZGFsQ2hhbmdlKEVsZW1l
bnQmIGVsZW1lbnQpCiB7Ci0gICAgaWYgKCFpczxIVE1MRGlhbG9nRWxlbWVudD4oZWxlbWVudCkg
JiYgIW5vZGVIYXNSb2xlKCZlbGVtZW50LCAiZGlhbG9nIikgJiYgIW5vZGVIYXNSb2xlKCZlbGVt
ZW50LCAiYWxlcnRkaWFsb2ciKSkKKyAgICBpZiAoIWlzPEhUTUxEaWFsb2dFbGVtZW50PihlbGVt
ZW50KSAmJiAhbm9kZUhhc1JvbGUoJmVsZW1lbnQsICJkaWFsb2ciX3MpICYmICFub2RlSGFzUm9s
ZSgmZWxlbWVudCwgImFsZXJ0ZGlhbG9nIl9zKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgc3Rv
cENhY2hpbmdDb21wdXRlZE9iamVjdEF0dHJpYnV0ZXMoKTsKQEAgLTMyNzcsNyArMzI3Nyw3IEBA
IHZvaWQgQVhPYmplY3RDYWNoZTo6cHJvY2Vzc0RlZmVycmVkQ2hpbGRyZW5DaGFuZ2VkTGlzdCgp
CiAKIHZvaWQgQVhPYmplY3RDYWNoZTo6cGVyZm9ybURlZmVycmVkQ2FjaGVVcGRhdGUoKQogewot
ICAgIEFYVFJBQ0UoIkFYT2JqZWN0Q2FjaGU6OnBlcmZvcm1EZWZlcnJlZENhY2hlVXBkYXRlIik7
CisgICAgQVhUUkFDRSgiQVhPYmplY3RDYWNoZTo6cGVyZm9ybURlZmVycmVkQ2FjaGVVcGRhdGUi
X3MpOwogICAgIGlmIChtX3BlcmZvcm1pbmdEZWZlcnJlZENhY2hlVXBkYXRlKQogICAgICAgICBy
ZXR1cm47CiAgICAgU2V0Rm9yU2NvcGUgcGVyZm9ybWluZ0RlZmVycmVkQ2FjaGVVcGRhdGUobV9w
ZXJmb3JtaW5nRGVmZXJyZWRDYWNoZVVwZGF0ZSwgdHJ1ZSk7CkBAIC0zMzczLDcgKzMzNzMsNyBA
QCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnVwZGF0ZUlzb2xhdGVkVHJlZShBWENvcmVPYmplY3QmIG9i
amVjdCwgQVhOb3RpZmljYXRpb24gbm90aQogCiB2b2lkIEFYT2JqZWN0Q2FjaGU6OnVwZGF0ZUlz
b2xhdGVkVHJlZShjb25zdCBWZWN0b3I8c3RkOjpwYWlyPFJlZlB0cjxBWENvcmVPYmplY3Q+LCBB
WE5vdGlmaWNhdGlvbj4+JiBub3RpZmljYXRpb25zKQogewotICAgIEFYVFJBQ0UoIkFYT2JqZWN0
Q2FjaGU6OnVwZGF0ZUlzb2xhdGVkVHJlZSIpOworICAgIEFYVFJBQ0UoIkFYT2JqZWN0Q2FjaGU6
OnVwZGF0ZUlzb2xhdGVkVHJlZSJfcyk7CiAgICAgQVhMT0coKnRoaXMpOwogCiAgICAgaWYgKCFt
X3BhZ2VJRCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcAppbmRleCAxNDI5MTM3MmNmYzQ2YzFkZTIyZTgzOGNk
MjI1OWY3MDkzZmRhNDA4Li5iMmQ4YzQ5NzBmMmFkNmUzNDBlZGE1ZDczZjk0MWExMjg2NTZmMjNj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlO
b2RlT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlOb2RlT2JqZWN0LmNwcApAQCAtMjM3LDcgKzIzNyw3IEBAIERvY3VtZW50KiBBY2Nlc3Np
YmlsaXR5Tm9kZU9iamVjdDo6ZG9jdW1lbnQoKSBjb25zdAogCiBBY2Nlc3NpYmlsaXR5Um9sZSBB
Y2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6ZGV0ZXJtaW5lQWNjZXNzaWJpbGl0eVJvbGUoKQogewot
ICAgIEFYVFJBQ0UoIkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpkZXRlcm1pbmVBY2Nlc3NpYmls
aXR5Um9sZSIpOworICAgIEFYVFJBQ0UoIkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpkZXRlcm1p
bmVBY2Nlc3NpYmlsaXR5Um9sZSJfcyk7CiAgICAgaWYgKChtX2FyaWFSb2xlID0gZGV0ZXJtaW5l
QXJpYVJvbGVBdHRyaWJ1dGUoKSkgIT0gQWNjZXNzaWJpbGl0eVJvbGU6OlVua25vd24pCiAgICAg
ICAgIHJldHVybiBtX2FyaWFSb2xlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAppbmRleCAzNGYxNWYyNTY0NTYzZjljOTIz
MzU4MjFiZWFlZGZiMDk5NGI4YmFlLi5iZmJlNDJmM2Q4YzJkYzM3ZTllNzVmZDYzNjM2NDFmM2M5
NzkxZTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eU9iamVjdC5jcHAKQEAgLTE3MjksNyArMTcyOSw3IEBAIGJvb2wgQWNjZXNzaWJpbGl0
eU9iamVjdDo6c3VwcG9ydHNSZWFkT25seSgpIGNvbnN0CiBTdHJpbmcgQWNjZXNzaWJpbGl0eU9i
amVjdDo6cmVhZE9ubHlWYWx1ZSgpIGNvbnN0CiB7CiAgICAgaWYgKCFoYXNBdHRyaWJ1dGUoYXJp
YV9yZWFkb25seUF0dHIpKQotICAgICAgICByZXR1cm4gYXJpYVJvbGVBdHRyaWJ1dGUoKSAhPSBB
Y2Nlc3NpYmlsaXR5Um9sZTo6VW5rbm93biAmJiBzdXBwb3J0c1JlYWRPbmx5KCkgPyAiZmFsc2Ui
IDogU3RyaW5nKCk7CisgICAgICAgIHJldHVybiBhcmlhUm9sZUF0dHJpYnV0ZSgpICE9IEFjY2Vz
c2liaWxpdHlSb2xlOjpVbmtub3duICYmIHN1cHBvcnRzUmVhZE9ubHkoKSA/ICJmYWxzZSJfcyA6
IFN0cmluZygpOwogCiAgICAgcmV0dXJuIGdldEF0dHJpYnV0ZShhcmlhX3JlYWRvbmx5QXR0ciku
c3RyaW5nKCkuY29udmVydFRvQVNDSUlMb3dlcmNhc2UoKTsKIH0KQEAgLTE3NTcsNyArMTc1Nyw3
IEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5T2JqZWN0OjphdXRvQ29tcGxldGVWYWx1ZSgpIGNvbnN0
CiAgICAgICAgIHx8IGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGF1dG9Db21wbGV0ZSwg
ImJvdGgiKSkKICAgICAgICAgcmV0dXJuIGF1dG9Db21wbGV0ZTsKIAotICAgIHJldHVybiAibm9u
ZSI7CisgICAgcmV0dXJuICJub25lIl9zOwogfQogCiBib29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6
OmNvbnRlbnRFZGl0YWJsZUF0dHJpYnV0ZUlzRW5hYmxlZChFbGVtZW50KiBlbGVtZW50KQpAQCAt
MjIzMywyMCArMjIzMywyMCBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0eU9iamVjdDo6Y3VycmVudFZh
bHVlKCkgY29uc3QKIHsKICAgICBzd2l0Y2ggKGN1cnJlbnRTdGF0ZSgpKSB7CiAgICAgY2FzZSBB
Y2Nlc3NpYmlsaXR5Q3VycmVudFN0YXRlOjpGYWxzZToKLSAgICAgICAgcmV0dXJuICJmYWxzZSI7
CisgICAgICAgIHJldHVybiAiZmFsc2UiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Q3VycmVu
dFN0YXRlOjpQYWdlOgotICAgICAgICByZXR1cm4gInBhZ2UiOworICAgICAgICByZXR1cm4gInBh
Z2UiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Q3VycmVudFN0YXRlOjpTdGVwOgotICAgICAg
ICByZXR1cm4gInN0ZXAiOworICAgICAgICByZXR1cm4gInN0ZXAiX3M7CiAgICAgY2FzZSBBY2Nl
c3NpYmlsaXR5Q3VycmVudFN0YXRlOjpMb2NhdGlvbjoKLSAgICAgICAgcmV0dXJuICJsb2NhdGlv
biI7CisgICAgICAgIHJldHVybiAibG9jYXRpb24iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5
Q3VycmVudFN0YXRlOjpUaW1lOgotICAgICAgICByZXR1cm4gInRpbWUiOworICAgICAgICByZXR1
cm4gInRpbWUiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Q3VycmVudFN0YXRlOjpEYXRlOgot
ICAgICAgICByZXR1cm4gImRhdGUiOworICAgICAgICByZXR1cm4gImRhdGUiX3M7CiAgICAgZGVm
YXVsdDoKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlDdXJyZW50U3RhdGU6OlRydWU6Ci0gICAgICAg
IHJldHVybiAidHJ1ZSI7CisgICAgICAgIHJldHVybiAidHJ1ZSJfczsKICAgICB9CiB9CiAKQEAg
LTIzNTUsMTEgKzIzNTUsMTEgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpyZXBsYWNlVGV4
dEluUmFuZ2UoY29uc3QgU3RyaW5nJiByZXBsYWNlbWVudFN0cmluZywgY28KICAgICB9CiAgICAg
CiAgICAgaWYgKGlzPEhUTUxJbnB1dEVsZW1lbnQ+KGVsZW1lbnQpKSB7Ci0gICAgICAgIGRvd25j
YXN0PEhUTUxJbnB1dEVsZW1lbnQ+KGVsZW1lbnQpLnNldFJhbmdlVGV4dChyZXBsYWNlbWVudFN0
cmluZywgcmFuZ2Uuc3RhcnQsIHJhbmdlLmxlbmd0aCwgIiIpOworICAgICAgICBkb3duY2FzdDxI
VE1MSW5wdXRFbGVtZW50PihlbGVtZW50KS5zZXRSYW5nZVRleHQocmVwbGFjZW1lbnRTdHJpbmcs
IHJhbmdlLnN0YXJ0LCByYW5nZS5sZW5ndGgsIGVtcHR5U3RyaW5nKCkpOwogICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICB9CiAgICAgaWYgKGlzPEhUTUxUZXh0QXJlYUVsZW1lbnQ+KGVsZW1lbnQp
KSB7Ci0gICAgICAgIGRvd25jYXN0PEhUTUxUZXh0QXJlYUVsZW1lbnQ+KGVsZW1lbnQpLnNldFJh
bmdlVGV4dChyZXBsYWNlbWVudFN0cmluZywgcmFuZ2Uuc3RhcnQsIHJhbmdlLmxlbmd0aCwgIiIp
OworICAgICAgICBkb3duY2FzdDxIVE1MVGV4dEFyZWFFbGVtZW50PihlbGVtZW50KS5zZXRSYW5n
ZVRleHQocmVwbGFjZW1lbnRTdHJpbmcsIHJhbmdlLnN0YXJ0LCByYW5nZS5sZW5ndGgsIGVtcHR5
U3RyaW5nKCkpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKQEAgLTI1OTQsNyArMjU5
NCw3IEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojpjb21wdXRlZFJvbGVTdHJpbmcoKSBj
b25zdAogCiAgICAgLy8gV2UgZG8gbm90IGNvbXB1dGUgYSByb2xlIHN0cmluZyBmb3IgZ2VuZXJp
YyBibG9jayBlbGVtZW50cyB3aXRoIHVzZXItYWdlbnQgYXNzaWduZWQgcm9sZXMuCiAgICAgaWYg
KHJvbGUgPT0gQWNjZXNzaWJpbGl0eVJvbGU6Okdyb3VwIHx8IHJvbGUgPT0gQWNjZXNzaWJpbGl0
eVJvbGU6OlRleHRHcm91cCkKLSAgICAgICAgcmV0dXJuICIiOworICAgICAgICByZXR1cm4gZW1w
dHlTdHJpbmcoKTsKIAogICAgIC8vIFdlIGRvIGNvbXB1dGUgYSByb2xlIHN0cmluZyBmb3IgYmxv
Y2sgZWxlbWVudHMgd2l0aCBhdXRob3ItcHJvdmlkZWQgcm9sZXMuCiAgICAgaWYgKHJvbGUgPT0g
QWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uVGV4dEdyb3VwCkBAIC0yNzI1LDcgKzI3MjUs
NyBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0eU9iamVjdDo6cm9sZURlc2NyaXB0aW9uKCkgY29uc3QK
IAogYm9vbCBub2RlSGFzUHJlc2VudGF0aW9uUm9sZShOb2RlKiBub2RlKQogewotICAgIHJldHVy
biBub2RlSGFzUm9sZShub2RlLCAicHJlc2VudGF0aW9uIikgfHwgbm9kZUhhc1JvbGUobm9kZSwg
Im5vbmUiKTsKKyAgICByZXR1cm4gbm9kZUhhc1JvbGUobm9kZSwgInByZXNlbnRhdGlvbiJfcykg
fHwgbm9kZUhhc1JvbGUobm9kZSwgIm5vbmUiX3MpOwogfQogICAgIAogYm9vbCBBY2Nlc3NpYmls
aXR5T2JqZWN0OjpzdXBwb3J0c1ByZXNzQWN0aW9uKCkgY29uc3QKQEAgLTMyMTAsMTAgKzMyMTAs
MTAgQEAgSGFzaE1hcDxTdHJpbmcsIEFYRWRpdGluZ1N0eWxlVmFsdWVWYXJpYW50PiBBY2Nlc3Np
YmlsaXR5T2JqZWN0OjpyZXNvbHZlZEVkaXRpbmcKICAgICAgICAgcmV0dXJuIHsgfTsKIAogICAg
IEhhc2hNYXA8U3RyaW5nLCBBWEVkaXRpbmdTdHlsZVZhbHVlVmFyaWFudD4gc3R5bGVzOwotICAg
IHN0eWxlcy5hZGQoImJvbGQiLCBzZWxlY3Rpb25TdHlsZS0+aGFzU3R5bGUoQ1NTUHJvcGVydHlG
b250V2VpZ2h0LCAiYm9sZCIpKTsKLSAgICBzdHlsZXMuYWRkKCJpdGFsaWMiLCBzZWxlY3Rpb25T
dHlsZS0+aGFzU3R5bGUoQ1NTUHJvcGVydHlGb250U3R5bGUsICJpdGFsaWMiKSk7Ci0gICAgc3R5
bGVzLmFkZCgidW5kZXJsaW5lIiwgc2VsZWN0aW9uU3R5bGUtPmhhc1N0eWxlKENTU1Byb3BlcnR5
V2Via2l0VGV4dERlY29yYXRpb25zSW5FZmZlY3QsICJ1bmRlcmxpbmUiKSk7Ci0gICAgc3R5bGVz
LmFkZCgiZm9udHNpemUiLCBzZWxlY3Rpb25TdHlsZS0+bGVnYWN5Rm9udFNpemUoKmRvY3VtZW50
KSk7CisgICAgc3R5bGVzLmFkZCgiYm9sZCJfcywgc2VsZWN0aW9uU3R5bGUtPmhhc1N0eWxlKENT
U1Byb3BlcnR5Rm9udFdlaWdodCwgImJvbGQiX3MpKTsKKyAgICBzdHlsZXMuYWRkKCJpdGFsaWMi
X3MsIHNlbGVjdGlvblN0eWxlLT5oYXNTdHlsZShDU1NQcm9wZXJ0eUZvbnRTdHlsZSwgIml0YWxp
YyJfcykpOworICAgIHN0eWxlcy5hZGQoInVuZGVybGluZSJfcywgc2VsZWN0aW9uU3R5bGUtPmhh
c1N0eWxlKENTU1Byb3BlcnR5V2Via2l0VGV4dERlY29yYXRpb25zSW5FZmZlY3QsICJ1bmRlcmxp
bmUiX3MpKTsKKyAgICBzdHlsZXMuYWRkKCJmb250c2l6ZSJfcywgc2VsZWN0aW9uU3R5bGUtPmxl
Z2FjeUZvbnRTaXplKCpkb2N1bWVudCkpOwogICAgIHJldHVybiBzdHlsZXM7CiB9CiAKQEAgLTQw
ODgsNyArNDA4OCw3IEBAIHN0YXRpYyBib29sIGlzUmFkaW9CdXR0b25JbkRpZmZlcmVudEFkaG9j
R3JvdXAoUmVmUHRyPEFYQ29yZU9iamVjdD4gYXhPYmplY3QsIEFYCiAgICAgaWYgKCFyZWZlcmVu
Y2VPYmplY3QgfHwgIXJlZmVyZW5jZU9iamVjdC0+aXNSYWRpb0J1dHRvbigpKQogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKIAotICAgIHJldHVybiBheE9iamVjdC0+YXR0cmlidXRlVmFsdWUoIm5hbWUi
KSAhPSByZWZlcmVuY2VPYmplY3QtPmF0dHJpYnV0ZVZhbHVlKCJuYW1lIik7CisgICAgcmV0dXJu
IGF4T2JqZWN0LT5hdHRyaWJ1dGVWYWx1ZSgibmFtZSJfcykgIT0gcmVmZXJlbmNlT2JqZWN0LT5h
dHRyaWJ1dGVWYWx1ZSgibmFtZSJfcyk7CiB9CiAKIHN0YXRpYyBib29sIGlzQWNjZXNzaWJpbGl0
eU9iamVjdFNlYXJjaE1hdGNoQXRJbmRleChSZWZQdHI8QVhDb3JlT2JqZWN0PiBheE9iamVjdCwg
QWNjZXNzaWJpbGl0eVNlYXJjaENyaXRlcmlhIGNvbnN0JiBjcml0ZXJpYSwgc2l6ZV90IGluZGV4
KQpAQCAtNDI5NSw3ICs0Mjk1LDcgQEAgc3RhdGljIHZvaWQgYXBwZW5kQ2hpbGRyZW5Ub0FycmF5
KFJlZlB0cjxBWENvcmVPYmplY3Q+IG9iamVjdCwgYm9vbCBpc0ZvcndhcmQsIFIKIAogdm9pZCBm
aW5kTWF0Y2hpbmdPYmplY3RzKEFjY2Vzc2liaWxpdHlTZWFyY2hDcml0ZXJpYSBjb25zdCYgY3Jp
dGVyaWEsIEFYQ29yZU9iamVjdDo6QWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yJiByZXN1bHRz
KQogewotICAgIEFYVFJBQ0UoIkFjY2Vzc2liaWxpdHk6OmZpbmRNYXRjaGluZ09iamVjdHMiKTsK
KyAgICBBWFRSQUNFKCJBY2Nlc3NpYmlsaXR5OjpmaW5kTWF0Y2hpbmdPYmplY3RzIl9zKTsKICAg
ICBBWExPRyhjcml0ZXJpYSk7CiAKICAgICAvLyBUaGlzIHNlYXJjaCBhbGdvcml0aG0gb25seSBz
ZWFyY2hlcyB0aGUgZWxlbWVudHMgYmVmb3JlL2FmdGVyIHRoZSBzdGFydGluZyBvYmplY3QuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmpl
Y3RJbnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU9iamVjdEludGVyZmFjZS5oCmluZGV4IDQ2ZjYwMjgwMmE3NjIxYzA4NmY1MTQ1ZDBhNzBlY2U2
YmZiODI3Y2YuLmUwYmRkZDkzMWM0ZDI0MWVkNzc4MDQzZTliMjQxZjEyOWUzZmVkNzEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdElu
dGVyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU9iamVjdEludGVyZmFjZS5oCkBAIC0yNjQsMzEyICsyNjQsMzEyIEBAIEFMV0FZU19JTkxJTkUg
U3RyaW5nIGFjY2Vzc2liaWxpdHlSb2xlVG9TdHJpbmcoQWNjZXNzaWJpbGl0eVJvbGUgcm9sZSkK
IHsKICAgICBzd2l0Y2ggKHJvbGUpIHsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpBbm5v
dGF0aW9uOgotICAgICAgICByZXR1cm4gIkFubm90YXRpb24iOworICAgICAgICByZXR1cm4gIkFu
bm90YXRpb24iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb246Ci0g
ICAgICAgIHJldHVybiAiQXBwbGljYXRpb24iOworICAgICAgICByZXR1cm4gIkFwcGxpY2F0aW9u
Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uQWxlcnQ6Ci0gICAg
ICAgIHJldHVybiAiQXBwbGljYXRpb25BbGVydCI7CisgICAgICAgIHJldHVybiAiQXBwbGljYXRp
b25BbGVydCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvbkFsZXJ0
RGlhbG9nOgotICAgICAgICByZXR1cm4gIkFwcGxpY2F0aW9uQWxlcnREaWFsb2ciOworICAgICAg
ICByZXR1cm4gIkFwcGxpY2F0aW9uQWxlcnREaWFsb2ciX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmls
aXR5Um9sZTo6QXBwbGljYXRpb25EaWFsb2c6Ci0gICAgICAgIHJldHVybiAiQXBwbGljYXRpb25E
aWFsb2ciOworICAgICAgICByZXR1cm4gIkFwcGxpY2F0aW9uRGlhbG9nIl9zOwogICAgIGNhc2Ug
QWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uR3JvdXA6Ci0gICAgICAgIHJldHVybiAiQXBw
bGljYXRpb25Hcm91cCI7CisgICAgICAgIHJldHVybiAiQXBwbGljYXRpb25Hcm91cCJfczsKICAg
ICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvbkxvZzoKLSAgICAgICAgcmV0dXJu
ICJBcHBsaWNhdGlvbkxvZyI7CisgICAgICAgIHJldHVybiAiQXBwbGljYXRpb25Mb2ciX3M7CiAg
ICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb25NYXJxdWVlOgotICAgICAgICBy
ZXR1cm4gIkFwcGxpY2F0aW9uTWFycXVlZSI7CisgICAgICAgIHJldHVybiAiQXBwbGljYXRpb25N
YXJxdWVlIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uU3RhdHVz
OgotICAgICAgICByZXR1cm4gIkFwcGxpY2F0aW9uU3RhdHVzIjsKKyAgICAgICAgcmV0dXJuICJB
cHBsaWNhdGlvblN0YXR1cyJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNh
dGlvblRleHRHcm91cDoKLSAgICAgICAgcmV0dXJuICJBcHBsaWNhdGlvblRleHRHcm91cCI7Cisg
ICAgICAgIHJldHVybiAiQXBwbGljYXRpb25UZXh0R3JvdXAiX3M7CiAgICAgY2FzZSBBY2Nlc3Np
YmlsaXR5Um9sZTo6QXBwbGljYXRpb25UaW1lcjoKLSAgICAgICAgcmV0dXJuICJBcHBsaWNhdGlv
blRpbWVyIjsKKyAgICAgICAgcmV0dXJuICJBcHBsaWNhdGlvblRpbWVyIl9zOwogICAgIGNhc2Ug
QWNjZXNzaWJpbGl0eVJvbGU6OkF1ZGlvOgotICAgICAgICByZXR1cm4gIkF1ZGlvIjsKKyAgICAg
ICAgcmV0dXJuICJBdWRpbyJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpCbG9ja3F1
b3RlOgotICAgICAgICByZXR1cm4gIkJsb2NrcXVvdGUiOworICAgICAgICByZXR1cm4gIkJsb2Nr
cXVvdGUiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QnJvd3NlcjoKLSAgICAgICAg
cmV0dXJuICJCcm93c2VyIjsKKyAgICAgICAgcmV0dXJuICJCcm93c2VyIl9zOwogICAgIGNhc2Ug
QWNjZXNzaWJpbGl0eVJvbGU6OkJ1c3lJbmRpY2F0b3I6Ci0gICAgICAgIHJldHVybiAiQnVzeUlu
ZGljYXRvciI7CisgICAgICAgIHJldHVybiAiQnVzeUluZGljYXRvciJfczsKICAgICBjYXNlIEFj
Y2Vzc2liaWxpdHlSb2xlOjpCdXR0b246Ci0gICAgICAgIHJldHVybiAiQnV0dG9uIjsKKyAgICAg
ICAgcmV0dXJuICJCdXR0b24iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6Q2FudmFz
OgotICAgICAgICByZXR1cm4gIkNhbnZhcyI7CisgICAgICAgIHJldHVybiAiQ2FudmFzIl9zOwog
ICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkNhcHRpb246Ci0gICAgICAgIHJldHVybiAiQ2Fw
dGlvbiI7CisgICAgICAgIHJldHVybiAiQ2FwdGlvbiJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxp
dHlSb2xlOjpDZWxsOgotICAgICAgICByZXR1cm4gIkNlbGwiOworICAgICAgICByZXR1cm4gIkNl
bGwiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6Q2hlY2tCb3g6Ci0gICAgICAgIHJl
dHVybiAiQ2hlY2tCb3giOworICAgICAgICByZXR1cm4gIkNoZWNrQm94Il9zOwogICAgIGNhc2Ug
QWNjZXNzaWJpbGl0eVJvbGU6OkNvbG9yV2VsbDoKLSAgICAgICAgcmV0dXJuICJDb2xvcldlbGwi
OworICAgICAgICByZXR1cm4gIkNvbG9yV2VsbCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlS
b2xlOjpDb2x1bW46Ci0gICAgICAgIHJldHVybiAiQ29sdW1uIjsKKyAgICAgICAgcmV0dXJuICJD
b2x1bW4iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6Q29sdW1uSGVhZGVyOgotICAg
ICAgICByZXR1cm4gIkNvbHVtbkhlYWRlciI7CisgICAgICAgIHJldHVybiAiQ29sdW1uSGVhZGVy
Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkNvbWJvQm94OgotICAgICAgICByZXR1
cm4gIkNvbWJvQm94IjsKKyAgICAgICAgcmV0dXJuICJDb21ib0JveCJfczsKICAgICBjYXNlIEFj
Y2Vzc2liaWxpdHlSb2xlOjpEZWZpbml0aW9uOgotICAgICAgICByZXR1cm4gIkRlZmluaXRpb24i
OworICAgICAgICByZXR1cm4gIkRlZmluaXRpb24iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5
Um9sZTo6RGVsZXRpb246Ci0gICAgICAgIHJldHVybiAiRGVsZXRpb24iOworICAgICAgICByZXR1
cm4gIkRlbGV0aW9uIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRlc2NyaXB0aW9u
TGlzdDoKLSAgICAgICAgcmV0dXJuICJEZXNjcmlwdGlvbkxpc3QiOworICAgICAgICByZXR1cm4g
IkRlc2NyaXB0aW9uTGlzdCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpEZXNjcmlw
dGlvbkxpc3RUZXJtOgotICAgICAgICByZXR1cm4gIkRlc2NyaXB0aW9uTGlzdFRlcm0iOworICAg
ICAgICByZXR1cm4gIkRlc2NyaXB0aW9uTGlzdFRlcm0iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmls
aXR5Um9sZTo6RGVzY3JpcHRpb25MaXN0RGV0YWlsOgotICAgICAgICByZXR1cm4gIkRlc2NyaXB0
aW9uTGlzdERldGFpbCI7CisgICAgICAgIHJldHVybiAiRGVzY3JpcHRpb25MaXN0RGV0YWlsIl9z
OwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRldGFpbHM6Ci0gICAgICAgIHJldHVybiAi
RGV0YWlscyI7CisgICAgICAgIHJldHVybiAiRGV0YWlscyJfczsKICAgICBjYXNlIEFjY2Vzc2li
aWxpdHlSb2xlOjpEaXJlY3Rvcnk6Ci0gICAgICAgIHJldHVybiAiRGlyZWN0b3J5IjsKKyAgICAg
ICAgcmV0dXJuICJEaXJlY3RvcnkiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RGlz
Y2xvc3VyZVRyaWFuZ2xlOgotICAgICAgICByZXR1cm4gIkRpc2Nsb3N1cmVUcmlhbmdsZSI7Cisg
ICAgICAgIHJldHVybiAiRGlzY2xvc3VyZVRyaWFuZ2xlIl9zOwogICAgIGNhc2UgQWNjZXNzaWJp
bGl0eVJvbGU6OkRpdjoKLSAgICAgICAgcmV0dXJuICJEaXYiOworICAgICAgICByZXR1cm4gIkRp
diJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpEb2N1bWVudDoKLSAgICAgICAgcmV0
dXJuICJEb2N1bWVudCI7CisgICAgICAgIHJldHVybiAiRG9jdW1lbnQiX3M7CiAgICAgY2FzZSBB
Y2Nlc3NpYmlsaXR5Um9sZTo6RG9jdW1lbnRBcnRpY2xlOgotICAgICAgICByZXR1cm4gIkRvY3Vt
ZW50QXJ0aWNsZSI7CisgICAgICAgIHJldHVybiAiRG9jdW1lbnRBcnRpY2xlIl9zOwogICAgIGNh
c2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRvY3VtZW50TWF0aDoKLSAgICAgICAgcmV0dXJuICJEb2N1
bWVudE1hdGgiOworICAgICAgICByZXR1cm4gIkRvY3VtZW50TWF0aCJfczsKICAgICBjYXNlIEFj
Y2Vzc2liaWxpdHlSb2xlOjpEb2N1bWVudE5vdGU6Ci0gICAgICAgIHJldHVybiAiRG9jdW1lbnRO
b3RlIjsKKyAgICAgICAgcmV0dXJuICJEb2N1bWVudE5vdGUiX3M7CiAgICAgY2FzZSBBY2Nlc3Np
YmlsaXR5Um9sZTo6RHJhd2VyOgotICAgICAgICByZXR1cm4gIkRyYXdlciI7CisgICAgICAgIHJl
dHVybiAiRHJhd2VyIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkVkaXRhYmxlVGV4
dDoKLSAgICAgICAgcmV0dXJuICJFZGl0YWJsZVRleHQiOworICAgICAgICByZXR1cm4gIkVkaXRh
YmxlVGV4dCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpGZWVkOgotICAgICAgICBy
ZXR1cm4gIkZlZWQiOworICAgICAgICByZXR1cm4gIkZlZWQiX3M7CiAgICAgY2FzZSBBY2Nlc3Np
YmlsaXR5Um9sZTo6RmlndXJlOgotICAgICAgICByZXR1cm4gIkZpZ3VyZSI7CisgICAgICAgIHJl
dHVybiAiRmlndXJlIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkZvb3RlcjoKLSAg
ICAgICAgcmV0dXJuICJGb290ZXIiOworICAgICAgICByZXR1cm4gIkZvb3RlciJfczsKICAgICBj
YXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpGb290bm90ZToKLSAgICAgICAgcmV0dXJuICJGb290bm90
ZSI7CisgICAgICAgIHJldHVybiAiRm9vdG5vdGUiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5
Um9sZTo6Rm9ybToKLSAgICAgICAgcmV0dXJuICJGb3JtIjsKKyAgICAgICAgcmV0dXJuICJGb3Jt
Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkdyYXBoaWNzRG9jdW1lbnQ6Ci0gICAg
ICAgIHJldHVybiAiR3JhcGhpY3NEb2N1bWVudCI7CisgICAgICAgIHJldHVybiAiR3JhcGhpY3NE
b2N1bWVudCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpHcmFwaGljc09iamVjdDoK
LSAgICAgICAgcmV0dXJuICJHcmFwaGljc09iamVjdCI7CisgICAgICAgIHJldHVybiAiR3JhcGhp
Y3NPYmplY3QiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6R3JhcGhpY3NTeW1ib2w6
Ci0gICAgICAgIHJldHVybiAiR3JhcGhpY3NTeW1ib2wiOworICAgICAgICByZXR1cm4gIkdyYXBo
aWNzU3ltYm9sIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkdyaWQ6Ci0gICAgICAg
IHJldHVybiAiR3JpZCI7CisgICAgICAgIHJldHVybiAiR3JpZCJfczsKICAgICBjYXNlIEFjY2Vz
c2liaWxpdHlSb2xlOjpHcmlkQ2VsbDoKLSAgICAgICAgcmV0dXJuICJHcmlkQ2VsbCI7CisgICAg
ICAgIHJldHVybiAiR3JpZENlbGwiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6R3Jv
dXA6Ci0gICAgICAgIHJldHVybiAiR3JvdXAiOworICAgICAgICByZXR1cm4gIkdyb3VwIl9zOwog
ICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Okdyb3dBcmVhOgotICAgICAgICByZXR1cm4gIkdy
b3dBcmVhIjsKKyAgICAgICAgcmV0dXJuICJHcm93QXJlYSJfczsKICAgICBjYXNlIEFjY2Vzc2li
aWxpdHlSb2xlOjpIZWFkaW5nOgotICAgICAgICByZXR1cm4gIkhlYWRpbmciOworICAgICAgICBy
ZXR1cm4gIkhlYWRpbmciX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6SGVscFRhZzoK
LSAgICAgICAgcmV0dXJuICJIZWxwVGFnIjsKKyAgICAgICAgcmV0dXJuICJIZWxwVGFnIl9zOwog
ICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Okhvcml6b250YWxSdWxlOgotICAgICAgICByZXR1
cm4gIkhvcml6b250YWxSdWxlIjsKKyAgICAgICAgcmV0dXJuICJIb3Jpem9udGFsUnVsZSJfczsK
ICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpJZ25vcmVkOgotICAgICAgICByZXR1cm4gIkln
bm9yZWQiOworICAgICAgICByZXR1cm4gIklnbm9yZWQiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmls
aXR5Um9sZTo6SW5saW5lOgotICAgICAgICByZXR1cm4gIklubGluZSI7CisgICAgICAgIHJldHVy
biAiSW5saW5lIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkltYWdlOgotICAgICAg
ICByZXR1cm4gIkltYWdlIjsKKyAgICAgICAgcmV0dXJuICJJbWFnZSJfczsKICAgICBjYXNlIEFj
Y2Vzc2liaWxpdHlSb2xlOjpJbWFnZU1hcDoKLSAgICAgICAgcmV0dXJuICJJbWFnZU1hcCI7Cisg
ICAgICAgIHJldHVybiAiSW1hZ2VNYXAiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6
SW1hZ2VNYXBMaW5rOgotICAgICAgICByZXR1cm4gIkltYWdlTWFwTGluayI7CisgICAgICAgIHJl
dHVybiAiSW1hZ2VNYXBMaW5rIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkluY3Jl
bWVudG9yOgotICAgICAgICByZXR1cm4gIkluY3JlbWVudG9yIjsKKyAgICAgICAgcmV0dXJuICJJ
bmNyZW1lbnRvciJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpJbnNlcnRpb246Ci0g
ICAgICAgIHJldHVybiAiSW5zZXJ0aW9uIjsKKyAgICAgICAgcmV0dXJuICJJbnNlcnRpb24iX3M7
CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFiZWw6Ci0gICAgICAgIHJldHVybiAiTGFi
ZWwiOworICAgICAgICByZXR1cm4gIkxhYmVsIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJv
bGU6OkxhbmRtYXJrQmFubmVyOgotICAgICAgICByZXR1cm4gIkxhbmRtYXJrQmFubmVyIjsKKyAg
ICAgICAgcmV0dXJuICJMYW5kbWFya0Jhbm5lciJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlS
b2xlOjpMYW5kbWFya0NvbXBsZW1lbnRhcnk6Ci0gICAgICAgIHJldHVybiAiTGFuZG1hcmtDb21w
bGVtZW50YXJ5IjsKKyAgICAgICAgcmV0dXJuICJMYW5kbWFya0NvbXBsZW1lbnRhcnkiX3M7CiAg
ICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtDb250ZW50SW5mbzoKLSAgICAgICAg
cmV0dXJuICJMYW5kbWFya0NvbnRlbnRJbmZvIjsKKyAgICAgICAgcmV0dXJuICJMYW5kbWFya0Nv
bnRlbnRJbmZvIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJrRG9jUmVn
aW9uOgotICAgICAgICByZXR1cm4gIkxhbmRtYXJrRG9jUmVnaW9uIjsKKyAgICAgICAgcmV0dXJu
ICJMYW5kbWFya0RvY1JlZ2lvbiJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpMYW5k
bWFya01haW46Ci0gICAgICAgIHJldHVybiAiTGFuZG1hcmtNYWluIjsKKyAgICAgICAgcmV0dXJu
ICJMYW5kbWFya01haW4iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtO
YXZpZ2F0aW9uOgotICAgICAgICByZXR1cm4gIkxhbmRtYXJrTmF2aWdhdGlvbiI7CisgICAgICAg
IHJldHVybiAiTGFuZG1hcmtOYXZpZ2F0aW9uIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJv
bGU6OkxhbmRtYXJrUmVnaW9uOgotICAgICAgICByZXR1cm4gIkxhbmRtYXJrUmVnaW9uIjsKKyAg
ICAgICAgcmV0dXJuICJMYW5kbWFya1JlZ2lvbiJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlS
b2xlOjpMYW5kbWFya1NlYXJjaDoKLSAgICAgICAgcmV0dXJuICJMYW5kbWFya1NlYXJjaCI7Cisg
ICAgICAgIHJldHVybiAiTGFuZG1hcmtTZWFyY2giX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5
Um9sZTo6TGVnZW5kOgotICAgICAgICByZXR1cm4gIkxlZ2VuZCI7CisgICAgICAgIHJldHVybiAi
TGVnZW5kIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Okxpbms6Ci0gICAgICAgIHJl
dHVybiAiTGluayI7CisgICAgICAgIHJldHVybiAiTGluayJfczsKICAgICBjYXNlIEFjY2Vzc2li
aWxpdHlSb2xlOjpMaXN0OgotICAgICAgICByZXR1cm4gIkxpc3QiOworICAgICAgICByZXR1cm4g
Ikxpc3QiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGlzdEJveDoKLSAgICAgICAg
cmV0dXJuICJMaXN0Qm94IjsKKyAgICAgICAgcmV0dXJuICJMaXN0Qm94Il9zOwogICAgIGNhc2Ug
QWNjZXNzaWJpbGl0eVJvbGU6Okxpc3RCb3hPcHRpb246Ci0gICAgICAgIHJldHVybiAiTGlzdEJv
eE9wdGlvbiI7CisgICAgICAgIHJldHVybiAiTGlzdEJveE9wdGlvbiJfczsKICAgICBjYXNlIEFj
Y2Vzc2liaWxpdHlSb2xlOjpMaXN0SXRlbToKLSAgICAgICAgcmV0dXJuICJMaXN0SXRlbSI7Cisg
ICAgICAgIHJldHVybiAiTGlzdEl0ZW0iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6
TGlzdE1hcmtlcjoKLSAgICAgICAgcmV0dXJuICJMaXN0TWFya2VyIjsKKyAgICAgICAgcmV0dXJu
ICJMaXN0TWFya2VyIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Ok1hcms6Ci0gICAg
ICAgIHJldHVybiAiTWFyayI7CisgICAgICAgIHJldHVybiAiTWFyayJfczsKICAgICBjYXNlIEFj
Y2Vzc2liaWxpdHlSb2xlOjpNYXRoRWxlbWVudDoKLSAgICAgICAgcmV0dXJuICJNYXRoRWxlbWVu
dCI7CisgICAgICAgIHJldHVybiAiTWF0aEVsZW1lbnQiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmls
aXR5Um9sZTo6TWF0dGU6Ci0gICAgICAgIHJldHVybiAiTWF0dGUiOworICAgICAgICByZXR1cm4g
Ik1hdHRlIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Ok1lbnU6Ci0gICAgICAgIHJl
dHVybiAiTWVudSI7CisgICAgICAgIHJldHVybiAiTWVudSJfczsKICAgICBjYXNlIEFjY2Vzc2li
aWxpdHlSb2xlOjpNZW51QmFyOgotICAgICAgICByZXR1cm4gIk1lbnVCYXIiOworICAgICAgICBy
ZXR1cm4gIk1lbnVCYXIiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TWVudUJ1dHRv
bjoKLSAgICAgICAgcmV0dXJuICJNZW51QnV0dG9uIjsKKyAgICAgICAgcmV0dXJuICJNZW51QnV0
dG9uIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Ok1lbnVJdGVtOgotICAgICAgICBy
ZXR1cm4gIk1lbnVJdGVtIjsKKyAgICAgICAgcmV0dXJuICJNZW51SXRlbSJfczsKICAgICBjYXNl
IEFjY2Vzc2liaWxpdHlSb2xlOjpNZW51SXRlbUNoZWNrYm94OgotICAgICAgICByZXR1cm4gIk1l
bnVJdGVtQ2hlY2tib3giOworICAgICAgICByZXR1cm4gIk1lbnVJdGVtQ2hlY2tib3giX3M7CiAg
ICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TWVudUl0ZW1SYWRpbzoKLSAgICAgICAgcmV0dXJu
ICJNZW51SXRlbVJhZGlvIjsKKyAgICAgICAgcmV0dXJuICJNZW51SXRlbVJhZGlvIl9zOwogICAg
IGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Ok1lbnVMaXN0UG9wdXA6Ci0gICAgICAgIHJldHVybiAi
TWVudUxpc3RQb3B1cCI7CisgICAgICAgIHJldHVybiAiTWVudUxpc3RQb3B1cCJfczsKICAgICBj
YXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpNZW51TGlzdE9wdGlvbjoKLSAgICAgICAgcmV0dXJuICJN
ZW51TGlzdE9wdGlvbiI7CisgICAgICAgIHJldHVybiAiTWVudUxpc3RPcHRpb24iX3M7CiAgICAg
Y2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TWV0ZXI6Ci0gICAgICAgIHJldHVybiAiTWV0ZXIiOwor
ICAgICAgICByZXR1cm4gIk1ldGVyIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Ok1v
ZGVsOgotICAgICAgICByZXR1cm4gIk1vZGVsIjsKKyAgICAgICAgcmV0dXJuICJNb2RlbCJfczsK
ICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpPdXRsaW5lOgotICAgICAgICByZXR1cm4gIk91
dGxpbmUiOworICAgICAgICByZXR1cm4gIk91dGxpbmUiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmls
aXR5Um9sZTo6UGFyYWdyYXBoOgotICAgICAgICByZXR1cm4gIlBhcmFncmFwaCI7CisgICAgICAg
IHJldHVybiAiUGFyYWdyYXBoIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlBvcFVw
QnV0dG9uOgotICAgICAgICByZXR1cm4gIlBvcFVwQnV0dG9uIjsKKyAgICAgICAgcmV0dXJuICJQ
b3BVcEJ1dHRvbiJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpQcmU6Ci0gICAgICAg
IHJldHVybiAiUHJlIjsKKyAgICAgICAgcmV0dXJuICJQcmUiX3M7CiAgICAgY2FzZSBBY2Nlc3Np
YmlsaXR5Um9sZTo6UHJlc2VudGF0aW9uYWw6Ci0gICAgICAgIHJldHVybiAiUHJlc2VudGF0aW9u
YWwiOworICAgICAgICByZXR1cm4gIlByZXNlbnRhdGlvbmFsIl9zOwogICAgIGNhc2UgQWNjZXNz
aWJpbGl0eVJvbGU6OlByb2dyZXNzSW5kaWNhdG9yOgotICAgICAgICByZXR1cm4gIlByb2dyZXNz
SW5kaWNhdG9yIjsKKyAgICAgICAgcmV0dXJuICJQcm9ncmVzc0luZGljYXRvciJfczsKICAgICBj
YXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpSYWRpb0J1dHRvbjoKLSAgICAgICAgcmV0dXJuICJSYWRp
b0J1dHRvbiI7CisgICAgICAgIHJldHVybiAiUmFkaW9CdXR0b24iX3M7CiAgICAgY2FzZSBBY2Nl
c3NpYmlsaXR5Um9sZTo6UmFkaW9Hcm91cDoKLSAgICAgICAgcmV0dXJuICJSYWRpb0dyb3VwIjsK
KyAgICAgICAgcmV0dXJuICJSYWRpb0dyb3VwIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJv
bGU6OlJvd0hlYWRlcjoKLSAgICAgICAgcmV0dXJuICJSb3dIZWFkZXIiOworICAgICAgICByZXR1
cm4gIlJvd0hlYWRlciJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpSb3c6Ci0gICAg
ICAgIHJldHVybiAiUm93IjsKKyAgICAgICAgcmV0dXJuICJSb3ciX3M7CiAgICAgY2FzZSBBY2Nl
c3NpYmlsaXR5Um9sZTo6Um93R3JvdXA6Ci0gICAgICAgIHJldHVybiAiUm93R3JvdXAiOworICAg
ICAgICByZXR1cm4gIlJvd0dyb3VwIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlJ1
YnlCYXNlOgotICAgICAgICByZXR1cm4gIlJ1YnlCYXNlIjsKKyAgICAgICAgcmV0dXJuICJSdWJ5
QmFzZSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpSdWJ5QmxvY2s6Ci0gICAgICAg
IHJldHVybiAiUnVieUJsb2NrIjsKKyAgICAgICAgcmV0dXJuICJSdWJ5QmxvY2siX3M7CiAgICAg
Y2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6UnVieUlubGluZToKLSAgICAgICAgcmV0dXJuICJSdWJ5
SW5saW5lIjsKKyAgICAgICAgcmV0dXJuICJSdWJ5SW5saW5lIl9zOwogICAgIGNhc2UgQWNjZXNz
aWJpbGl0eVJvbGU6OlJ1YnlSdW46Ci0gICAgICAgIHJldHVybiAiUnVieVJ1biI7CisgICAgICAg
IHJldHVybiAiUnVieVJ1biJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpSdWJ5VGV4
dDoKLSAgICAgICAgcmV0dXJuICJSdWJ5VGV4dCI7CisgICAgICAgIHJldHVybiAiUnVieVRleHQi
X3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6UnVsZXI6Ci0gICAgICAgIHJldHVybiAi
UnVsZXIiOworICAgICAgICByZXR1cm4gIlJ1bGVyIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0
eVJvbGU6OlJ1bGVyTWFya2VyOgotICAgICAgICByZXR1cm4gIlJ1bGVyTWFya2VyIjsKKyAgICAg
ICAgcmV0dXJuICJSdWxlck1hcmtlciJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpT
Y3JvbGxBcmVhOgotICAgICAgICByZXR1cm4gIlNjcm9sbEFyZWEiOworICAgICAgICByZXR1cm4g
IlNjcm9sbEFyZWEiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6U2Nyb2xsQmFyOgot
ICAgICAgICByZXR1cm4gIlNjcm9sbEJhciI7CisgICAgICAgIHJldHVybiAiU2Nyb2xsQmFyIl9z
OwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlNlYXJjaEZpZWxkOgotICAgICAgICByZXR1
cm4gIlNlYXJjaEZpZWxkIjsKKyAgICAgICAgcmV0dXJuICJTZWFyY2hGaWVsZCJfczsKICAgICBj
YXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpTaGVldDoKLSAgICAgICAgcmV0dXJuICJTaGVldCI7Cisg
ICAgICAgIHJldHVybiAiU2hlZXQiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6U2xp
ZGVyOgotICAgICAgICByZXR1cm4gIlNsaWRlciI7CisgICAgICAgIHJldHVybiAiU2xpZGVyIl9z
OwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlNsaWRlclRodW1iOgotICAgICAgICByZXR1
cm4gIlNsaWRlclRodW1iIjsKKyAgICAgICAgcmV0dXJuICJTbGlkZXJUaHVtYiJfczsKICAgICBj
YXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpTcGluQnV0dG9uOgotICAgICAgICByZXR1cm4gIlNwaW5C
dXR0b24iOworICAgICAgICByZXR1cm4gIlNwaW5CdXR0b24iX3M7CiAgICAgY2FzZSBBY2Nlc3Np
YmlsaXR5Um9sZTo6U3BpbkJ1dHRvblBhcnQ6Ci0gICAgICAgIHJldHVybiAiU3BpbkJ1dHRvblBh
cnQiOworICAgICAgICByZXR1cm4gIlNwaW5CdXR0b25QYXJ0Il9zOwogICAgIGNhc2UgQWNjZXNz
aWJpbGl0eVJvbGU6OlNwbGl0R3JvdXA6Ci0gICAgICAgIHJldHVybiAiU3BsaXRHcm91cCI7Cisg
ICAgICAgIHJldHVybiAiU3BsaXRHcm91cCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xl
OjpTcGxpdHRlcjoKLSAgICAgICAgcmV0dXJuICJTcGxpdHRlciI7CisgICAgICAgIHJldHVybiAi
U3BsaXR0ZXIiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6U3RhdGljVGV4dDoKLSAg
ICAgICAgcmV0dXJuICJTdGF0aWNUZXh0IjsKKyAgICAgICAgcmV0dXJuICJTdGF0aWNUZXh0Il9z
OwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlN1YnNjcmlwdDoKLSAgICAgICAgcmV0dXJu
ICJTdWJzY3JpcHQiOworICAgICAgICByZXR1cm4gIlN1YnNjcmlwdCJfczsKICAgICBjYXNlIEFj
Y2Vzc2liaWxpdHlSb2xlOjpTdW1tYXJ5OgotICAgICAgICByZXR1cm4gIlN1bW1hcnkiOworICAg
ICAgICByZXR1cm4gIlN1bW1hcnkiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6U3Vw
ZXJzY3JpcHQ6Ci0gICAgICAgIHJldHVybiAiU3VwZXJzY3JpcHQiOworICAgICAgICByZXR1cm4g
IlN1cGVyc2NyaXB0Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlN3aXRjaDoKLSAg
ICAgICAgcmV0dXJuICJTd2l0Y2giOworICAgICAgICByZXR1cm4gIlN3aXRjaCJfczsKICAgICBj
YXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpTeXN0ZW1XaWRlOgotICAgICAgICByZXR1cm4gIlN5c3Rl
bVdpZGUiOworICAgICAgICByZXR1cm4gIlN5c3RlbVdpZGUiX3M7CiAgICAgY2FzZSBBY2Nlc3Np
YmlsaXR5Um9sZTo6U1ZHUm9vdDoKLSAgICAgICAgcmV0dXJuICJTVkdSb290IjsKKyAgICAgICAg
cmV0dXJuICJTVkdSb290Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlNWR1RleHQ6
Ci0gICAgICAgIHJldHVybiAiU1ZHVGV4dCI7CisgICAgICAgIHJldHVybiAiU1ZHVGV4dCJfczsK
ICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpTVkdUU3BhbjoKLSAgICAgICAgcmV0dXJuICJT
VkdUU3BhbiI7CisgICAgICAgIHJldHVybiAiU1ZHVFNwYW4iX3M7CiAgICAgY2FzZSBBY2Nlc3Np
YmlsaXR5Um9sZTo6U1ZHVGV4dFBhdGg6Ci0gICAgICAgIHJldHVybiAiU1ZHVGV4dFBhdGgiOwor
ICAgICAgICByZXR1cm4gIlNWR1RleHRQYXRoIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJv
bGU6OlRhYkdyb3VwOgotICAgICAgICByZXR1cm4gIlRhYkdyb3VwIjsKKyAgICAgICAgcmV0dXJu
ICJUYWJHcm91cCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpUYWJMaXN0OgotICAg
ICAgICByZXR1cm4gIlRhYkxpc3QiOworICAgICAgICByZXR1cm4gIlRhYkxpc3QiX3M7CiAgICAg
Y2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VGFiUGFuZWw6Ci0gICAgICAgIHJldHVybiAiVGFiUGFu
ZWwiOworICAgICAgICByZXR1cm4gIlRhYlBhbmVsIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0
eVJvbGU6OlRhYjoKLSAgICAgICAgcmV0dXJuICJUYWIiOworICAgICAgICByZXR1cm4gIlRhYiJf
czsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpUYWJsZToKLSAgICAgICAgcmV0dXJuICJU
YWJsZSI7CisgICAgICAgIHJldHVybiAiVGFibGUiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5
Um9sZTo6VGFibGVIZWFkZXJDb250YWluZXI6Ci0gICAgICAgIHJldHVybiAiVGFibGVIZWFkZXJD
b250YWluZXIiOworICAgICAgICByZXR1cm4gIlRhYmxlSGVhZGVyQ29udGFpbmVyIl9zOwogICAg
IGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlRlcm06Ci0gICAgICAgIHJldHVybiAiVGVybSI7Cisg
ICAgICAgIHJldHVybiAiVGVybSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpUZXh0
QXJlYToKLSAgICAgICAgcmV0dXJuICJUZXh0QXJlYSI7CisgICAgICAgIHJldHVybiAiVGV4dEFy
ZWEiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VGV4dEZpZWxkOgotICAgICAgICBy
ZXR1cm4gIlRleHRGaWVsZCI7CisgICAgICAgIHJldHVybiAiVGV4dEZpZWxkIl9zOwogICAgIGNh
c2UgQWNjZXNzaWJpbGl0eVJvbGU6OlRleHRHcm91cDoKLSAgICAgICAgcmV0dXJuICJUZXh0R3Jv
dXAiOworICAgICAgICByZXR1cm4gIlRleHRHcm91cCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxp
dHlSb2xlOjpUaW1lOgotICAgICAgICByZXR1cm4gIlRpbWUiOworICAgICAgICByZXR1cm4gIlRp
bWUiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VHJlZToKLSAgICAgICAgcmV0dXJu
ICJUcmVlIjsKKyAgICAgICAgcmV0dXJuICJUcmVlIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0
eVJvbGU6OlRyZWVHcmlkOgotICAgICAgICByZXR1cm4gIlRyZWVHcmlkIjsKKyAgICAgICAgcmV0
dXJuICJUcmVlR3JpZCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpUcmVlSXRlbToK
LSAgICAgICAgcmV0dXJuICJUcmVlSXRlbSI7CisgICAgICAgIHJldHVybiAiVHJlZUl0ZW0iX3M7
CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VG9nZ2xlQnV0dG9uOgotICAgICAgICByZXR1
cm4gIlRvZ2dsZUJ1dHRvbiI7CisgICAgICAgIHJldHVybiAiVG9nZ2xlQnV0dG9uIl9zOwogICAg
IGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlRvb2xiYXI6Ci0gICAgICAgIHJldHVybiAiVG9vbGJh
ciI7CisgICAgICAgIHJldHVybiAiVG9vbGJhciJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlS
b2xlOjpVbmtub3duOgotICAgICAgICByZXR1cm4gIlVua25vd24iOworICAgICAgICByZXR1cm4g
IlVua25vd24iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VXNlckludGVyZmFjZVRv
b2x0aXA6Ci0gICAgICAgIHJldHVybiAiVXNlckludGVyZmFjZVRvb2x0aXAiOworICAgICAgICBy
ZXR1cm4gIlVzZXJJbnRlcmZhY2VUb29sdGlwIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJv
bGU6OlZhbHVlSW5kaWNhdG9yOgotICAgICAgICByZXR1cm4gIlZhbHVlSW5kaWNhdG9yIjsKKyAg
ICAgICAgcmV0dXJuICJWYWx1ZUluZGljYXRvciJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlS
b2xlOjpWaWRlbzoKLSAgICAgICAgcmV0dXJuICJWaWRlbyI7CisgICAgICAgIHJldHVybiAiVmlk
ZW8iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6V2ViQXBwbGljYXRpb246Ci0gICAg
ICAgIHJldHVybiAiV2ViQXBwbGljYXRpb24iOworICAgICAgICByZXR1cm4gIldlYkFwcGxpY2F0
aW9uIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OldlYkFyZWE6Ci0gICAgICAgIHJl
dHVybiAiV2ViQXJlYSI7CisgICAgICAgIHJldHVybiAiV2ViQXJlYSJfczsKICAgICBjYXNlIEFj
Y2Vzc2liaWxpdHlSb2xlOjpXZWJDb3JlTGluazoKLSAgICAgICAgcmV0dXJuICJXZWJDb3JlTGlu
ayI7CisgICAgICAgIHJldHVybiAiV2ViQ29yZUxpbmsiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmls
aXR5Um9sZTo6V2luZG93OgotICAgICAgICByZXR1cm4gIldpbmRvdyI7CisgICAgICAgIHJldHVy
biAiV2luZG93Il9zOwogICAgIH0KICAgICBVTlJFQUNIQUJMRSgpOwotICAgIHJldHVybiAiIjsK
KyAgICByZXR1cm4gIiJfczsKIH0KIAogZW51bSBjbGFzcyBBY2Nlc3NpYmlsaXR5RGV0YWNobWVu
dFR5cGUgeyBDYWNoZURlc3Ryb3llZCwgRWxlbWVudERlc3Ryb3llZCwgRWxlbWVudENoYW5nZWQg
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3QuY3BwCmluZGV4IDQ0MjI5NTVhMzg2NWRiYzVkZDcyMzU0Y2JiZmJm
MjAyNzY3MTViMDYuLmE2ZDMxMDJjODgyYTYwOThmNDc5MmI3YmNkMDZiYTI2ZDQyODdkOGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5UmVuZGVyT2JqZWN0LmNwcApAQCAtMjc4NywxMSArMjc4NywxMSBAQCBib29sIEFjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3Q6OnJlbmRlck9iamVjdElzT2JzZXJ2YWJsZShSZW5kZXJPYmplY3Qm
IHJlbmRlcmVyKQogICAgIGlmICghbm9kZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIAot
ICAgIGlmIChub2RlSGFzUm9sZShub2RlLCAibGlzdGJveCIpIHx8IChpczxSZW5kZXJCb3hNb2Rl
bE9iamVjdD4ocmVuZGVyZXIpICYmIGRvd25jYXN0PFJlbmRlckJveE1vZGVsT2JqZWN0PihyZW5k
ZXJlcikuaXNMaXN0Qm94KCkpKQorICAgIGlmIChub2RlSGFzUm9sZShub2RlLCAibGlzdGJveCJf
cykgfHwgKGlzPFJlbmRlckJveE1vZGVsT2JqZWN0PihyZW5kZXJlcikgJiYgZG93bmNhc3Q8UmVu
ZGVyQm94TW9kZWxPYmplY3Q+KHJlbmRlcmVyKS5pc0xpc3RCb3goKSkpCiAgICAgICAgIHJldHVy
biB0cnVlOwogCiAgICAgLy8gVGV4dGJveGVzIHNob3VsZCBzZW5kIG91dCBub3RpZmljYXRpb25z
LgotICAgIGlmIChub2RlSGFzUm9sZShub2RlLCAidGV4dGJveCIpIHx8IChpczxFbGVtZW50Pigq
bm9kZSkgJiYgY29udGVudEVkaXRhYmxlQXR0cmlidXRlSXNFbmFibGVkKGRvd25jYXN0PEVsZW1l
bnQ+KG5vZGUpKSkpCisgICAgaWYgKG5vZGVIYXNSb2xlKG5vZGUsICJ0ZXh0Ym94Il9zKSB8fCAo
aXM8RWxlbWVudD4oKm5vZGUpICYmIGNvbnRlbnRFZGl0YWJsZUF0dHJpYnV0ZUlzRW5hYmxlZChk
b3duY2FzdDxFbGVtZW50Pihub2RlKSkpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAKICAg
ICByZXR1cm4gZmFsc2U7CkBAIC0yODQwLDcgKzI4NDAsNyBAQCBib29sIEFjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3Q6OnNob3VsZElnbm9yZUF0dHJpYnV0ZVJvbGUoKSBjb25zdAogCiBBY2Nlc3Np
YmlsaXR5Um9sZSBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpkZXRlcm1pbmVBY2Nlc3NpYmls
aXR5Um9sZSgpCiB7Ci0gICAgQVhUUkFDRSgiQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6ZGV0
ZXJtaW5lQWNjZXNzaWJpbGl0eVJvbGUiKTsKKyAgICBBWFRSQUNFKCJBY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0OjpkZXRlcm1pbmVBY2Nlc3NpYmlsaXR5Um9sZSJfcyk7CiAgICAgaWYgKCFtX3Jl
bmRlcmVyKQogICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVJvbGU6OlVua25vd247CiAKQEAg
LTMyODAsNyArMzI4MCw3IEBAIHZvaWQgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6YWRkTGlz
dEl0ZW1NYXJrZXIoKQogCiB2b2lkIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnVwZGF0ZVJv
bGVBZnRlckNoaWxkcmVuQ3JlYXRpb24oKQogewotICAgIEFYVFJBQ0UoIkFjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3Q6OnVwZGF0ZVJvbGVBZnRlckNoaWxkcmVuQ3JlYXRpb24iKTsKKyAgICBBWFRS
QUNFKCJBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojp1cGRhdGVSb2xlQWZ0ZXJDaGlsZHJlbkNy
ZWF0aW9uIl9zKTsKICAgICAvLyBJZiBhIG1lbnUgZG9lcyBub3QgaGF2ZSB2YWxpZCBtZW51aXRl
bSBjaGlsZHJlbiwgaXQgc2hvdWxkIG5vdCBiZSBleHBvc2VkIGFzIGEgbWVudS4KICAgICBhdXRv
IHJvbGUgPSByb2xlVmFsdWUoKTsKICAgICBpZiAocm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6
TWVudSkgewpAQCAtMzM2NCw3ICszMzY0LDcgQEAgY29uc3QgU3RyaW5nIEFjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3Q6OmxpdmVSZWdpb25SZWxldmFudCgpIGNvbnN0CiAKICAgICAvLyBEZWZhdWx0
IGFyaWEtcmVsZXZhbnQgPSAiYWRkaXRpb25zIHRleHQiLgogICAgIGlmIChyZWxldmFudC5pc0Vt
cHR5KCkpCi0gICAgICAgIHJldHVybiAiYWRkaXRpb25zIHRleHQiOworICAgICAgICByZXR1cm4g
ImFkZGl0aW9ucyB0ZXh0Il9zOwogICAgIAogICAgIHJldHVybiByZWxldmFudDsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlQ2Vs
bC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUNl
bGwuY3BwCmluZGV4IDI3Y2Y4NjlmNGQ1NzcxYzk4NGIyYmUzZjQ2MTI2Yjk4NzdiNjAwMTUuLjM0
YTdiYTdjY2RiNGU1M2FhNTU0NjE5ODBmMTU0ZDM4OGMyYWY0M2UgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlQ2VsbC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVDZWxsLmNwcApA
QCAtNjUsNyArNjUsNyBAQCBib29sIEFjY2Vzc2liaWxpdHlUYWJsZUNlbGw6OmNvbXB1dGVBY2Nl
c3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3QKICAgICAKICAgICAvLyBJZ25vcmUgYW5vbnltb3Vz
IHRhYmxlIGNlbGxzIGFzIGxvbmcgYXMgdGhleSdyZSBub3QgaW4gYSB0YWJsZSAoaWUuIHdoZW4g
ZGlzcGxheTp0YWJsZSBpcyB1c2VkKS4KICAgICBSZW5kZXJPYmplY3QqIHJlbmRlclRhYmxlID0g
aXM8UmVuZGVyVGFibGVDZWxsPihyZW5kZXJlcigpKSA/IGRvd25jYXN0PFJlbmRlclRhYmxlQ2Vs
bD4oKm1fcmVuZGVyZXIpLnRhYmxlKCkgOiBudWxscHRyOwotICAgIGJvb2wgaW5UYWJsZSA9IHJl
bmRlclRhYmxlICYmIHJlbmRlclRhYmxlLT5ub2RlKCkgJiYgKHJlbmRlclRhYmxlLT5ub2RlKCkt
Pmhhc1RhZ05hbWUodGFibGVUYWcpIHx8IG5vZGVIYXNSb2xlKHJlbmRlclRhYmxlLT5ub2RlKCks
ICJncmlkIikpOworICAgIGJvb2wgaW5UYWJsZSA9IHJlbmRlclRhYmxlICYmIHJlbmRlclRhYmxl
LT5ub2RlKCkgJiYgKHJlbmRlclRhYmxlLT5ub2RlKCktPmhhc1RhZ05hbWUodGFibGVUYWcpIHx8
IG5vZGVIYXNSb2xlKHJlbmRlclRhYmxlLT5ub2RlKCksICJncmlkIl9zKSk7CiAgICAgaWYgKCFu
b2RlKCkgJiYgIWluVGFibGUpCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRyZWUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VHJlZS5jcHAKaW5k
ZXggNTkwYzk2MTU5NjA2MGRiNmRiMTU1Mzg5OGViMTZmMzBiNDU0ZTY4ZC4uMWMwMGJjOTU0MjNl
Mjk2YWQ1MTI2Mzc3ZTQ4MWM3Y2U3OWRmYmQwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VHJlZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VHJlZS5jcHAKQEAgLTY4LDcgKzY4LDcgQEAgQWNj
ZXNzaWJpbGl0eVJvbGUgQWNjZXNzaWJpbGl0eVRyZWU6OmRldGVybWluZUFjY2Vzc2liaWxpdHlS
b2xlKCkKIGJvb2wgQWNjZXNzaWJpbGl0eVRyZWU6Om5vZGVIYXNUcmVlSXRlbUNoaWxkKE5vZGUm
IG5vZGUpIGNvbnN0CiB7CiAgICAgZm9yIChhdXRvKiBjaGlsZCA9IG5vZGUuZmlyc3RDaGlsZCgp
OyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkgewotICAgICAgICBpZiAobm9k
ZUhhc1JvbGUoY2hpbGQsICJ0cmVlaXRlbSIpKQorICAgICAgICBpZiAobm9kZUhhc1JvbGUoY2hp
bGQsICJ0cmVlaXRlbSJfcykpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAg
cmV0dXJuIGZhbHNlOwpAQCAtOTIsMTQgKzkyLDE0IEBAIGJvb2wgQWNjZXNzaWJpbGl0eVRyZWU6
OmlzVHJlZVZhbGlkKCkgY29uc3QKIAogICAgICAgICBpZiAoIWlzPEVsZW1lbnQ+KCpjaGlsZCkp
CiAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgaWYgKG5vZGVIYXNSb2xlKGNoaWxkLCAi
dHJlZWl0ZW0iKSkKKyAgICAgICAgaWYgKG5vZGVIYXNSb2xlKGNoaWxkLCAidHJlZWl0ZW0iX3Mp
KQogICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIGlmIChub2RlSGFzUm9sZShjaGlsZCwg
InByZXNlbnRhdGlvbiIpKSB7CisgICAgICAgIGlmIChub2RlSGFzUm9sZShjaGlsZCwgInByZXNl
bnRhdGlvbiJfcykpIHsKICAgICAgICAgICAgIGlmICghbm9kZUhhc1RyZWVJdGVtQ2hpbGQoKmNo
aWxkKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICBjb250aW51
ZTsKICAgICAgICAgfQotICAgICAgICBpZiAoIW5vZGVIYXNSb2xlKGNoaWxkLCAiZ3JvdXAiKSkK
KyAgICAgICAgaWYgKCFub2RlSGFzUm9sZShjaGlsZCwgImdyb3VwIl9zKSkKICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKIAogICAgICAgICBmb3IgKGF1dG8qIGdyb3VwQ2hpbGQgPSBjaGlsZC0+
Zmlyc3RDaGlsZCgpOyBncm91cENoaWxkOyBncm91cENoaWxkID0gZ3JvdXBDaGlsZC0+bmV4dFNp
YmxpbmcoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0
ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHAKaW5kZXggYTEzNGFlNzUyZmEyMDEy
ZTc4MGQ5OWZhMTA4YzNmNDg3OTZjMTExYy4uNWYwMjAxZjA3YjUzNTA1YjcwZGRlMzM5YTJjYjI5
NjU3Y2Y3ODQ1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29s
YXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHAKQEAgLTMwNSw3ICszMDUs
NyBAQCB2b2lkIEFYSXNvbGF0ZWRPYmplY3Q6OmluaXRpYWxpemVBdHRyaWJ1dGVEYXRhKEFYQ29y
ZU9iamVjdCYgY29yZU9iamVjdCwgYm9vbCBpcwogICAgICAgICBzZXRQcm9wZXJ0eShBWFByb3Bl
cnR5TmFtZTo6VGV4dExlbmd0aCwgb2JqZWN0LnRleHRMZW5ndGgoKSk7CiAKICAgICBpZiAob2Jq
ZWN0LmlzUmFkaW9CdXR0b24oKSkgewotICAgICAgICBpZiAoYXV0byBuYW1lQXR0cmlidXRlID0g
b2JqZWN0LmF0dHJpYnV0ZVZhbHVlKCJuYW1lIikpCisgICAgICAgIGlmIChhdXRvIG5hbWVBdHRy
aWJ1dGUgPSBvYmplY3QuYXR0cmlidXRlVmFsdWUoIm5hbWUiX3MpKQogICAgICAgICAgICAgc2V0
UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6Ok5hbWVBdHRyaWJ1dGUsIG5hbWVBdHRyaWJ1dGUtPmlz
b2xhdGVkQ29weSgpKTsKICAgICB9CiAKQEAgLTM2Miw3ICszNjIsNyBAQCB2b2lkIEFYSXNvbGF0
ZWRPYmplY3Q6OmluaXRpYWxpemVBdHRyaWJ1dGVEYXRhKEFYQ29yZU9iamVjdCYgY29yZU9iamVj
dCwgYm9vbCBpcwogICAgIFN0cmluZyBjb21iaW5lZENsYXNzTGlzdDsKICAgICBmb3IgKGF1dG8g
aXQgPSBjbGFzc0xpc3QuYmVnaW4oKSwgZW5kID0gY2xhc3NMaXN0LmVuZCgpOyBpdCAhPSBlbmQ7
ICsraXQpIHsKICAgICAgICAgY29tYmluZWRDbGFzc0xpc3QuYXBwZW5kKCppdCk7Ci0gICAgICAg
IGNvbWJpbmVkQ2xhc3NMaXN0LmFwcGVuZCgiICIpOworICAgICAgICBjb21iaW5lZENsYXNzTGlz
dC5hcHBlbmQoIiAiX3MpOwogICAgIH0KICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6
Q2xhc3NMaXN0LCBjb21iaW5lZENsYXNzTGlzdCk7CiAKQEAgLTYwMCw3ICs2MDAsNyBAQCB2b2lk
IEFYSXNvbGF0ZWRPYmplY3Q6OmFjY2Vzc2liaWxpdHlUZXh0KFZlY3RvcjxBY2Nlc3NpYmlsaXR5
VGV4dD4mIHRleHRzKSBjb25zdAogdm9pZCBBWElzb2xhdGVkT2JqZWN0OjpjbGFzc0xpc3QoVmVj
dG9yPFN0cmluZz4mIGxpc3QpIGNvbnN0CiB7CiAgICAgU3RyaW5nIGNsYXNzTGlzdCA9IHN0cmlu
Z0F0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1lOjpDbGFzc0xpc3QpOwotICAgIGxpc3QuYXBw
ZW5kVmVjdG9yKGNsYXNzTGlzdC5zcGxpdCgiICIpKTsKKyAgICBsaXN0LmFwcGVuZFZlY3Rvcihj
bGFzc0xpc3Quc3BsaXQoIiAiX3MpKTsKIH0KIAogUEFMOjpTZXNzaW9uSUQgQVhJc29sYXRlZE9i
amVjdDo6c2Vzc2lvbklEKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmNwcAppbmRleCA2N2Y1
YjFkZWZkOWM0NzhlZGViYjA3OTNjNjUwZTM4Y2YzOWEzYzRiLi4xY2U3ODUwMmQyZWM3NzIyN2Ni
ZjNkYjI3NTBjMDdhYmNlODM5Y2U3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuY3BwCkBAIC02Miwx
OCArNjIsMTggQEAgQVhJc29sYXRlZFRyZWU6OkFYSXNvbGF0ZWRUcmVlKEFYT2JqZWN0Q2FjaGUq
IGF4T2JqZWN0Q2FjaGUpCiAgICAgLCBtX2F4T2JqZWN0Q2FjaGUoYXhPYmplY3RDYWNoZSkKICAg
ICAsIG1fdXNlZE9uQVhUaHJlYWQoYXhPYmplY3RDYWNoZS0+dXNlZE9uQVhUaHJlYWQoKSkKIHsK
LSAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6QVhJc29sYXRlZFRyZWUiKTsKKyAgICBBWFRS
QUNFKCJBWElzb2xhdGVkVHJlZTo6QVhJc29sYXRlZFRyZWUiX3MpOwogICAgIEFTU0VSVChpc01h
aW5UaHJlYWQoKSk7CiB9CiAKIEFYSXNvbGF0ZWRUcmVlOjp+QVhJc29sYXRlZFRyZWUoKQogewot
ICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjp+QVhJc29sYXRlZFRyZWUiKTsKKyAgICBBWFRS
QUNFKCJBWElzb2xhdGVkVHJlZTo6fkFYSXNvbGF0ZWRUcmVlIl9zKTsKIH0KIAogdm9pZCBBWElz
b2xhdGVkVHJlZTo6Y2xlYXIoKQogewotICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjpjbGVh
ciIpOworICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjpjbGVhciJfcyk7CiAgICAgQVNTRVJU
KGlzTWFpblRocmVhZCgpKTsKICAgICBtX2F4T2JqZWN0Q2FjaGUgPSBudWxscHRyOwogICAgIG1f
bm9kZU1hcC5jbGVhcigpOwpAQCAtODUsMTQgKzg1LDE0IEBAIHZvaWQgQVhJc29sYXRlZFRyZWU6
OmNsZWFyKCkKIAogUmVmUHRyPEFYSXNvbGF0ZWRUcmVlPiBBWElzb2xhdGVkVHJlZTo6dHJlZUZv
cklEKEFYSXNvbGF0ZWRUcmVlSUQgdHJlZUlEKQogewotICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRU
cmVlOjp0cmVlRm9ySUQiKTsKKyAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6dHJlZUZvcklE
Il9zKTsKICAgICBMb2NrZXIgbG9ja2VyIHsgc19jYWNoZUxvY2sgfTsKICAgICByZXR1cm4gdHJl
ZUlEQ2FjaGUoKS5nZXQodHJlZUlEKTsKIH0KIAogUmVmPEFYSXNvbGF0ZWRUcmVlPiBBWElzb2xh
dGVkVHJlZTo6Y3JlYXRlKEFYT2JqZWN0Q2FjaGUqIGF4T2JqZWN0Q2FjaGUpCiB7Ci0gICAgQVhU
UkFDRSgiQVhJc29sYXRlZFRyZWU6OmNyZWF0ZSIpOworICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRU
cmVlOjpjcmVhdGUiX3MpOwogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgQVNTRVJU
KGF4T2JqZWN0Q2FjaGUgJiYgYXhPYmplY3RDYWNoZS0+cGFnZUlEKCkpOwogCkBAIC0xMjUsNyAr
MTI1LDcgQEAgUmVmPEFYSXNvbGF0ZWRUcmVlPiBBWElzb2xhdGVkVHJlZTo6Y3JlYXRlKEFYT2Jq
ZWN0Q2FjaGUqIGF4T2JqZWN0Q2FjaGUpCiAKIHZvaWQgQVhJc29sYXRlZFRyZWU6OnJlbW92ZVRy
ZWVGb3JQYWdlSUQoUGFnZUlkZW50aWZpZXIgcGFnZUlEKQogewotICAgIEFYVFJBQ0UoIkFYSXNv
bGF0ZWRUcmVlOjpyZW1vdmVUcmVlRm9yUGFnZUlEIik7CisgICAgQVhUUkFDRSgiQVhJc29sYXRl
ZFRyZWU6OnJlbW92ZVRyZWVGb3JQYWdlSUQiX3MpOwogICAgIEFTU0VSVChpc01haW5UaHJlYWQo
KSk7CiAgICAgTG9ja2VyIGxvY2tlciB7IHNfY2FjaGVMb2NrIH07CiAKQEAgLTE1Nyw3ICsxNTcs
NyBAQCBSZWZQdHI8QVhJc29sYXRlZE9iamVjdD4gQVhJc29sYXRlZFRyZWU6Om5vZGVGb3JJRChB
WElEIGF4SUQpIGNvbnN0CiAKIFZlY3RvcjxSZWZQdHI8QVhDb3JlT2JqZWN0Pj4gQVhJc29sYXRl
ZFRyZWU6Om9iamVjdHNGb3JJRHMoY29uc3QgVmVjdG9yPEFYSUQ+JiBheElEcykgY29uc3QKIHsK
LSAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6b2JqZWN0c0ZvcklEcyIpOworICAgIEFYVFJB
Q0UoIkFYSXNvbGF0ZWRUcmVlOjpvYmplY3RzRm9ySURzIl9zKTsKICAgICBWZWN0b3I8UmVmUHRy
PEFYQ29yZU9iamVjdD4+IHJlc3VsdDsKICAgICByZXN1bHQucmVzZXJ2ZUluaXRpYWxDYXBhY2l0
eShheElEcy5zaXplKCkpOwogICAgIGZvciAoYXV0byYgYXhJRCA6IGF4SURzKSB7CkBAIC0xNzgs
NyArMTc4LDcgQEAgVmVjdG9yPEFYSUQ+IEFYSXNvbGF0ZWRUcmVlOjppZHNGb3JPYmplY3RzKGNv
bnN0IFZlY3RvcjxSZWZQdHI8QVhDb3JlT2JqZWN0Pj4mIG8KIAogdm9pZCBBWElzb2xhdGVkVHJl
ZTo6Z2VuZXJhdGVTdWJ0cmVlKEFYQ29yZU9iamVjdCYgYXhPYmplY3QsIEFYQ29yZU9iamVjdCog
YXhQYXJlbnQsIGJvb2wgYXR0YWNoV3JhcHBlcikKIHsKLSAgICBBWFRSQUNFKCJBWElzb2xhdGVk
VHJlZTo6Z2VuZXJhdGVTdWJ0cmVlIik7CisgICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6Omdl
bmVyYXRlU3VidHJlZSJfcyk7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIAogICAgIGlm
ICghYXhPYmplY3Qub2JqZWN0SUQoKS5pc1ZhbGlkKCkpCkBAIC0yNzcsNyArMjc3LDcgQEAgdm9p
ZCBBWElzb2xhdGVkVHJlZTo6cXVldWVDaGFuZ2VzQW5kUmVtb3ZhbHMoY29uc3QgVmVjdG9yPE5v
ZGVDaGFuZ2U+JiBjaGFuZ2VzLAogCiB2b2lkIEFYSXNvbGF0ZWRUcmVlOjpjb2xsZWN0Tm9kZUNo
YW5nZXNGb3JTdWJ0cmVlKEFYQ29yZU9iamVjdCYgYXhPYmplY3QsIEFYSUQgcGFyZW50SUQsIGJv
b2wgYXR0YWNoV3JhcHBlciwgVmVjdG9yPE5vZGVDaGFuZ2U+JiBjaGFuZ2VzLCBIYXNoU2V0PEFY
SUQ+KiBpZHNCZWluZ0NoYW5nZWQpCiB7Ci0gICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OmNv
bGxlY3ROb2RlQ2hhbmdlc0ZvclN1YnRyZWUiKTsKKyAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJl
ZTo6Y29sbGVjdE5vZGVDaGFuZ2VzRm9yU3VidHJlZSJfcyk7CiAgICAgQVNTRVJUKGlzTWFpblRo
cmVhZCgpKTsKIAogICAgIGF1dG8gbm9kZUNoYW5nZSA9IG5vZGVDaGFuZ2VGb3JPYmplY3QoYXhP
YmplY3QsIHBhcmVudElELCBhdHRhY2hXcmFwcGVyKTsKQEAgLTI5NSw3ICsyOTUsNyBAQCB2b2lk
IEFYSXNvbGF0ZWRUcmVlOjpjb2xsZWN0Tm9kZUNoYW5nZXNGb3JTdWJ0cmVlKEFYQ29yZU9iamVj
dCYgYXhPYmplY3QsIEFYSUQgcAogCiB2b2lkIEFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVOb2RlKEFY
Q29yZU9iamVjdCYgYXhPYmplY3QpCiB7Ci0gICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OnVw
ZGF0ZU5vZGUiKTsKKyAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6dXBkYXRlTm9kZSJfcyk7
CiAgICAgQVhMT0coJmF4T2JqZWN0KTsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogCkBA
IC0zMTMsNyArMzEzLDcgQEAgdm9pZCBBWElzb2xhdGVkVHJlZTo6dXBkYXRlTm9kZShBWENvcmVP
YmplY3QmIGF4T2JqZWN0KQogCiB2b2lkIEFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVOb2RlUHJvcGVy
dHkoY29uc3QgQVhDb3JlT2JqZWN0JiBheE9iamVjdCwgQVhQcm9wZXJ0eU5hbWUgcHJvcGVydHkp
CiB7Ci0gICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OnVwZGF0ZU5vZGVQcm9wZXJ0eSIpOwor
ICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVOb2RlUHJvcGVydHkiX3MpOwogICAg
IEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKICAgICBBWFByb3BlcnR5TWFwIHByb3BlcnR5TWFw
OwpAQCAtMzQ4LDcgKzM0OCw3IEBAIHZvaWQgQVhJc29sYXRlZFRyZWU6OnVwZGF0ZU5vZGVQcm9w
ZXJ0eShjb25zdCBBWENvcmVPYmplY3QmIGF4T2JqZWN0LCBBWFByb3BlcnR5CiAKIHZvaWQgQVhJ
c29sYXRlZFRyZWU6OnVwZGF0ZUNoaWxkcmVuKEFYQ29yZU9iamVjdCYgYXhPYmplY3QpCiB7Ci0g
ICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OnVwZGF0ZUNoaWxkcmVuIik7CisgICAgQVhUUkFD
RSgiQVhJc29sYXRlZFRyZWU6OnVwZGF0ZUNoaWxkcmVuIl9zKTsKICAgICBBWExPRygiRm9yIEFY
T2JqZWN0OiIpOwogICAgIEFYTE9HKCZheE9iamVjdCk7CiAgICAgQVNTRVJUKGlzTWFpblRocmVh
ZCgpKTsKQEAgLTQyMiw3ICs0MjIsNyBAQCB2b2lkIEFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVDaGls
ZHJlbihBWENvcmVPYmplY3QmIGF4T2JqZWN0KQogCiBSZWZQdHI8QVhJc29sYXRlZE9iamVjdD4g
QVhJc29sYXRlZFRyZWU6OmZvY3VzZWROb2RlKCkKIHsKLSAgICBBWFRSQUNFKCJBWElzb2xhdGVk
VHJlZTo6Zm9jdXNlZE5vZGUiKTsKKyAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6Zm9jdXNl
ZE5vZGUiX3MpOwogICAgIFJFTEVBU0VfQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CiAgICAgLy8g
QXBwbHkgcGVuZGluZyBjaGFuZ2VzIGluIGNhc2UgZm9jdXMgaGFzIGNoYW5nZWQgYW5kIGhhc24n
dCBiZWVuIHVwZGF0ZWQuCiAgICAgYXBwbHlQZW5kaW5nQ2hhbmdlcygpOwpAQCAtNDM0LDE0ICs0
MzQsMTQgQEAgUmVmUHRyPEFYSXNvbGF0ZWRPYmplY3Q+IEFYSXNvbGF0ZWRUcmVlOjpmb2N1c2Vk
Tm9kZSgpCiAKIFJlZlB0cjxBWElzb2xhdGVkT2JqZWN0PiBBWElzb2xhdGVkVHJlZTo6cm9vdE5v
ZGUoKQogewotICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjpyb290Tm9kZSIpOworICAgIEFY
VFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjpyb290Tm9kZSJfcyk7CiAgICAgTG9ja2VyIGxvY2tlciB7
IG1fY2hhbmdlTG9nTG9jayB9OwogICAgIHJldHVybiBtX3Jvb3ROb2RlOwogfQogCiB2b2lkIEFY
SXNvbGF0ZWRUcmVlOjpzZXRSb290Tm9kZShBWElzb2xhdGVkT2JqZWN0KiByb290KQogewotICAg
IEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjpzZXRSb290Tm9kZSIpOworICAgIEFYVFJBQ0UoIkFY
SXNvbGF0ZWRUcmVlOjpzZXRSb290Tm9kZSJfcyk7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgp
KTsKICAgICBBU1NFUlQobV9jaGFuZ2VMb2dMb2NrLmlzTG9ja2VkKCkpOwogICAgIEFTU0VSVCgh
bV9yb290Tm9kZSk7CkBAIC00NTIsNyArNDUyLDcgQEAgdm9pZCBBWElzb2xhdGVkVHJlZTo6c2V0
Um9vdE5vZGUoQVhJc29sYXRlZE9iamVjdCogcm9vdCkKIAogdm9pZCBBWElzb2xhdGVkVHJlZTo6
c2V0Rm9jdXNlZE5vZGVJRChBWElEIGF4SUQpCiB7Ci0gICAgQVhUUkFDRSgiQVhJc29sYXRlZFRy
ZWU6OnNldEZvY3VzZWROb2RlSUQiKTsKKyAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6c2V0
Rm9jdXNlZE5vZGVJRCJfcyk7CiAgICAgQVhMT0cobWFrZVN0cmluZygiYXhJRCAiLCBheElELmxv
Z2dpbmdTdHJpbmcoKSkpOwogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKQEAgLTQ2Niw3
ICs0NjYsNyBAQCB2b2lkIEFYSXNvbGF0ZWRUcmVlOjpzZXRGb2N1c2VkTm9kZUlEKEFYSUQgYXhJ
RCkKIAogdm9pZCBBWElzb2xhdGVkVHJlZTo6dXBkYXRlTG9hZGluZ1Byb2dyZXNzKGRvdWJsZSBu
ZXdQcm9ncmVzc1ZhbHVlKQogewotICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVM
b2FkaW5nUHJvZ3Jlc3MiKTsKKyAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6dXBkYXRlTG9h
ZGluZ1Byb2dyZXNzIl9zKTsKICAgICBBWExPRyhtYWtlU3RyaW5nKCJVcGRhdGluZyBsb2FkaW5n
IHByb2dyZXNzIHRvICIsIG5ld1Byb2dyZXNzVmFsdWUsICIgZm9yIHRyZWVJRCAiLCB0cmVlSUQo
KSkpOwogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKQEAgLTQ3NSw3ICs0NzUsNyBAQCB2
b2lkIEFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVMb2FkaW5nUHJvZ3Jlc3MoZG91YmxlIG5ld1Byb2dy
ZXNzVmFsdWUpCiAKIHZvaWQgQVhJc29sYXRlZFRyZWU6OnJlbW92ZU5vZGUoY29uc3QgQVhDb3Jl
T2JqZWN0JiBheE9iamVjdCkKIHsKLSAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6cmVtb3Zl
Tm9kZSIpOworICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjpyZW1vdmVOb2RlIl9zKTsKICAg
ICBBWExPRyhtYWtlU3RyaW5nKCJvYmplY3RJRCAiLCBheE9iamVjdC5vYmplY3RJRCgpLmxvZ2dp
bmdTdHJpbmcoKSkpOwogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKQEAgLTQ4NSw3ICs0
ODUsNyBAQCB2b2lkIEFYSXNvbGF0ZWRUcmVlOjpyZW1vdmVOb2RlKGNvbnN0IEFYQ29yZU9iamVj
dCYgYXhPYmplY3QpCiAKIHZvaWQgQVhJc29sYXRlZFRyZWU6OnJlbW92ZVN1YnRyZWVGcm9tTm9k
ZU1hcChBWElEIG9iamVjdElELCBBWENvcmVPYmplY3QqIGF4UGFyZW50LCBjb25zdCBIYXNoU2V0
PEFYSUQ+JiBpZHNUb0tlZXApCiB7Ci0gICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OnJlbW92
ZVN1YnRyZWVGcm9tTm9kZU1hcCIpOworICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjpyZW1v
dmVTdWJ0cmVlRnJvbU5vZGVNYXAiX3MpOwogICAgIEFYTE9HKG1ha2VTdHJpbmcoIlJlbW92aW5n
IHN1YnRyZWUgZm9yIG9iamVjdElEICIsIG9iamVjdElELmxvZ2dpbmdTdHJpbmcoKSkpOwogICAg
IEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKQEAgLTUyMyw3ICs1MjMsNyBAQCB2b2lkIEFYSXNv
bGF0ZWRUcmVlOjpyZW1vdmVTdWJ0cmVlRnJvbU5vZGVNYXAoQVhJRCBvYmplY3RJRCwgQVhDb3Jl
T2JqZWN0KiBheFBhcgogCiB2b2lkIEFYSXNvbGF0ZWRUcmVlOjphcHBseVBlbmRpbmdDaGFuZ2Vz
KCkKIHsKLSAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6YXBwbHlQZW5kaW5nQ2hhbmdlcyIp
OworICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjphcHBseVBlbmRpbmdDaGFuZ2VzIl9zKTsK
IAogICAgIC8vIEluIGlzb2xhdGVkIHRyZWUgbW9kZSAyLCBvbmx5IGFwcGx5IHBlbmRpbmcgY2hh
bmdlcyBvbiB0aGUgQVggdGhyZWFkLgogICAgIEFTU0VSVChtX3VzZWRPbkFYVGhyZWFkID8gIWlz
TWFpblRocmVhZCgpIDogaXNNYWluVGhyZWFkKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9tYWMvQWNjZXNzaWJpbGl0eU9iamVjdE1hYy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FjY2Vzc2liaWxpdHlPYmplY3RNYWMubW0KaW5kZXgg
YTI4OTUzODc0YzgwNTUxMjdmODBiMmZjMzYyZDljZTgyMWU3MDFjNC4uZmM2ZTQwOGNmYzdhOTI1
M2ExZTg5NTA3ZTAwNTQ5NDAzOGM5ZmIzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9tYWMvQWNjZXNzaWJpbGl0eU9iamVjdE1hYy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0TWFjLm1tCkBAIC0yMjIs
MjAgKzIyMiwyMCBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0eU9iamVjdDo6c3Vicm9sZVBsYXRmb3Jt
U3RyaW5nKCkgY29uc3QKICAgICB9CiAKICAgICBpZiAoaXNNZXRlcigpKQotICAgICAgICByZXR1
cm4gIkFYTWV0ZXIiOworICAgICAgICByZXR1cm4gIkFYTWV0ZXIiX3M7CiAKICNpZiBFTkFCTEUo
TU9ERUxfRUxFTUVOVCkKICAgICBpZiAoaXNNb2RlbCgpKQotICAgICAgICByZXR1cm4gIkFYTW9k
ZWwiOworICAgICAgICByZXR1cm4gIkFYTW9kZWwiX3M7CiAjZW5kaWYKIAogICAgIEFjY2Vzc2li
aWxpdHlSb2xlIHJvbGUgPSByb2xlVmFsdWUoKTsKICAgICBpZiAocm9sZSA9PSBBY2Nlc3NpYmls
aXR5Um9sZTo6SG9yaXpvbnRhbFJ1bGUpCi0gICAgICAgIHJldHVybiAiQVhDb250ZW50U2VwYXJh
dG9yIjsKKyAgICAgICAgcmV0dXJuICJBWENvbnRlbnRTZXBhcmF0b3IiX3M7CiAgICAgaWYgKHJv
bGUgPT0gQWNjZXNzaWJpbGl0eVJvbGU6OlRvZ2dsZUJ1dHRvbikKICAgICAgICAgcmV0dXJuIE5T
QWNjZXNzaWJpbGl0eVRvZ2dsZVN1YnJvbGU7CiAgICAgaWYgKHJvbGUgPT0gQWNjZXNzaWJpbGl0
eVJvbGU6OkZvb3RlcikKLSAgICAgICAgcmV0dXJuICJBWEZvb3RlciI7CisgICAgICAgIHJldHVy
biAiQVhGb290ZXIiX3M7CiAgICAgaWYgKHJvbGUgPT0gQWNjZXNzaWJpbGl0eVJvbGU6OlNwaW5C
dXR0b25QYXJ0KSB7CiAgICAgICAgIGlmIChpc0luY3JlbWVudG9yKCkpCiAgICAgICAgICAgICBy
ZXR1cm4gTlNBY2Nlc3NpYmlsaXR5SW5jcmVtZW50QXJyb3dTdWJyb2xlOwpAQCAtMjQzLDc5ICsy
NDMsNzkgQEAgU3RyaW5nIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnN1YnJvbGVQbGF0Zm9ybVN0cmlu
ZygpIGNvbnN0CiAgICAgfQogCiAgICAgaWYgKGlzRmlsZVVwbG9hZEJ1dHRvbigpKQotICAgICAg
ICByZXR1cm4gIkFYRmlsZVVwbG9hZEJ1dHRvbiI7CisgICAgICAgIHJldHVybiAiQVhGaWxlVXBs
b2FkQnV0dG9uIl9zOwogCiAgICAgaWYgKGlzVHJlZUl0ZW0oKSkKICAgICAgICAgcmV0dXJuIE5T
QWNjZXNzaWJpbGl0eU91dGxpbmVSb3dTdWJyb2xlOwogCiAgICAgaWYgKGlzRmllbGRzZXQoKSkK
LSAgICAgICAgcmV0dXJuICJBWEZpZWxkc2V0IjsKKyAgICAgICAgcmV0dXJuICJBWEZpZWxkc2V0
Il9zOwogCiAgICAgaWYgKGlzTGlzdCgpKSB7CiAgICAgICAgIGlmIChpc1Vub3JkZXJlZExpc3Qo
KSB8fCBpc09yZGVyZWRMaXN0KCkpCi0gICAgICAgICAgICByZXR1cm4gIkFYQ29udGVudExpc3Qi
OworICAgICAgICAgICAgcmV0dXJuICJBWENvbnRlbnRMaXN0Il9zOwogICAgICAgICBpZiAoaXNE
ZXNjcmlwdGlvbkxpc3QoKSkKLSAgICAgICAgICAgIHJldHVybiAiQVhEZXNjcmlwdGlvbkxpc3Qi
OworICAgICAgICAgICAgcmV0dXJuICJBWERlc2NyaXB0aW9uTGlzdCJfczsKICAgICB9CiAKICAg
ICAvLyBBUklBIGNvbnRlbnQgc3Vicm9sZXMuCiAgICAgc3dpdGNoIChyb2xlKSB7CiAgICAgY2Fz
ZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtCYW5uZXI6Ci0gICAgICAgIHJldHVybiAiQVhM
YW5kbWFya0Jhbm5lciI7CisgICAgICAgIHJldHVybiAiQVhMYW5kbWFya0Jhbm5lciJfczsKICAg
ICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpMYW5kbWFya0NvbXBsZW1lbnRhcnk6Ci0gICAgICAg
IHJldHVybiAiQVhMYW5kbWFya0NvbXBsZW1lbnRhcnkiOworICAgICAgICByZXR1cm4gIkFYTGFu
ZG1hcmtDb21wbGVtZW50YXJ5Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRt
YXJrQ29udGVudEluZm86Ci0gICAgICAgIHJldHVybiAiQVhMYW5kbWFya0NvbnRlbnRJbmZvIjsK
KyAgICAgICAgcmV0dXJuICJBWExhbmRtYXJrQ29udGVudEluZm8iX3M7CiAgICAgY2FzZSBBY2Nl
c3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtNYWluOgotICAgICAgICByZXR1cm4gIkFYTGFuZG1hcmtN
YWluIjsKKyAgICAgICAgcmV0dXJuICJBWExhbmRtYXJrTWFpbiJfczsKICAgICBjYXNlIEFjY2Vz
c2liaWxpdHlSb2xlOjpMYW5kbWFya05hdmlnYXRpb246Ci0gICAgICAgIHJldHVybiAiQVhMYW5k
bWFya05hdmlnYXRpb24iOworICAgICAgICByZXR1cm4gIkFYTGFuZG1hcmtOYXZpZ2F0aW9uIl9z
OwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJrRG9jUmVnaW9uOgogICAgIGNh
c2UgQWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJrUmVnaW9uOgotICAgICAgICByZXR1cm4gIkFY
TGFuZG1hcmtSZWdpb24iOworICAgICAgICByZXR1cm4gIkFYTGFuZG1hcmtSZWdpb24iX3M7CiAg
ICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtTZWFyY2g6Ci0gICAgICAgIHJldHVy
biAiQVhMYW5kbWFya1NlYXJjaCI7CisgICAgICAgIHJldHVybiAiQVhMYW5kbWFya1NlYXJjaCJf
czsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvbkFsZXJ0OgotICAgICAg
ICByZXR1cm4gIkFYQXBwbGljYXRpb25BbGVydCI7CisgICAgICAgIHJldHVybiAiQVhBcHBsaWNh
dGlvbkFsZXJ0Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uQWxl
cnREaWFsb2c6Ci0gICAgICAgIHJldHVybiAiQVhBcHBsaWNhdGlvbkFsZXJ0RGlhbG9nIjsKKyAg
ICAgICAgcmV0dXJuICJBWEFwcGxpY2F0aW9uQWxlcnREaWFsb2ciX3M7CiAgICAgY2FzZSBBY2Nl
c3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb25EaWFsb2c6Ci0gICAgICAgIHJldHVybiAiQVhBcHBs
aWNhdGlvbkRpYWxvZyI7CisgICAgICAgIHJldHVybiAiQVhBcHBsaWNhdGlvbkRpYWxvZyJfczsK
ICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvbkdyb3VwOgogICAgIGNhc2Ug
QWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uVGV4dEdyb3VwOgogICAgIGNhc2UgQWNjZXNz
aWJpbGl0eVJvbGU6OkZlZWQ6CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6Rm9vdG5vdGU6
Ci0gICAgICAgIHJldHVybiAiQVhBcHBsaWNhdGlvbkdyb3VwIjsKKyAgICAgICAgcmV0dXJuICJB
WEFwcGxpY2F0aW9uR3JvdXAiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGlj
YXRpb25Mb2c6Ci0gICAgICAgIHJldHVybiAiQVhBcHBsaWNhdGlvbkxvZyI7CisgICAgICAgIHJl
dHVybiAiQVhBcHBsaWNhdGlvbkxvZyJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpB
cHBsaWNhdGlvbk1hcnF1ZWU6Ci0gICAgICAgIHJldHVybiAiQVhBcHBsaWNhdGlvbk1hcnF1ZWUi
OworICAgICAgICByZXR1cm4gIkFYQXBwbGljYXRpb25NYXJxdWVlIl9zOwogICAgIGNhc2UgQWNj
ZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uU3RhdHVzOgotICAgICAgICByZXR1cm4gIkFYQXBw
bGljYXRpb25TdGF0dXMiOworICAgICAgICByZXR1cm4gIkFYQXBwbGljYXRpb25TdGF0dXMiX3M7
CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb25UaW1lcjoKLSAgICAgICAg
cmV0dXJuICJBWEFwcGxpY2F0aW9uVGltZXIiOworICAgICAgICByZXR1cm4gIkFYQXBwbGljYXRp
b25UaW1lciJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpEb2N1bWVudDoKICAgICBj
YXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpHcmFwaGljc0RvY3VtZW50OgotICAgICAgICByZXR1cm4g
IkFYRG9jdW1lbnQiOworICAgICAgICByZXR1cm4gIkFYRG9jdW1lbnQiX3M7CiAgICAgY2FzZSBB
Y2Nlc3NpYmlsaXR5Um9sZTo6RG9jdW1lbnRBcnRpY2xlOgotICAgICAgICByZXR1cm4gIkFYRG9j
dW1lbnRBcnRpY2xlIjsKKyAgICAgICAgcmV0dXJuICJBWERvY3VtZW50QXJ0aWNsZSJfczsKICAg
ICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpEb2N1bWVudE1hdGg6Ci0gICAgICAgIHJldHVybiAi
QVhEb2N1bWVudE1hdGgiOworICAgICAgICByZXR1cm4gIkFYRG9jdW1lbnRNYXRoIl9zOwogICAg
IGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRvY3VtZW50Tm90ZToKLSAgICAgICAgcmV0dXJuICJB
WERvY3VtZW50Tm90ZSI7CisgICAgICAgIHJldHVybiAiQVhEb2N1bWVudE5vdGUiX3M7CiAgICAg
Y2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VXNlckludGVyZmFjZVRvb2x0aXA6Ci0gICAgICAgIHJl
dHVybiAiQVhVc2VySW50ZXJmYWNlVG9vbHRpcCI7CisgICAgICAgIHJldHVybiAiQVhVc2VySW50
ZXJmYWNlVG9vbHRpcCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpUYWJQYW5lbDoK
LSAgICAgICAgcmV0dXJuICJBWFRhYlBhbmVsIjsKKyAgICAgICAgcmV0dXJuICJBWFRhYlBhbmVs
Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRlZmluaXRpb246Ci0gICAgICAgIHJl
dHVybiAiQVhEZWZpbml0aW9uIjsKKyAgICAgICAgcmV0dXJuICJBWERlZmluaXRpb24iX3M7CiAg
ICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RGVzY3JpcHRpb25MaXN0VGVybToKICAgICBjYXNl
IEFjY2Vzc2liaWxpdHlSb2xlOjpUZXJtOgotICAgICAgICByZXR1cm4gIkFYVGVybSI7CisgICAg
ICAgIHJldHVybiAiQVhUZXJtIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRlc2Ny
aXB0aW9uTGlzdERldGFpbDoKLSAgICAgICAgcmV0dXJuICJBWERlc2NyaXB0aW9uIjsKKyAgICAg
ICAgcmV0dXJuICJBWERlc2NyaXB0aW9uIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6
OldlYkFwcGxpY2F0aW9uOgotICAgICAgICByZXR1cm4gIkFYV2ViQXBwbGljYXRpb24iOworICAg
ICAgICByZXR1cm4gIkFYV2ViQXBwbGljYXRpb24iX3M7CiAgICAgICAgIC8vIERlZmF1bHQgZG9l
c24ndCByZXR1cm4gYW55dGhpbmcsIHNvIHJvbGVzIGRlZmluZWQgYmVsb3cgY2FuIGJlIGNob3Nl
bi4KICAgICBkZWZhdWx0OgogICAgICAgICBicmVhazsKQEAgLTMyMyw1MSArMzIzLDUxIEBAIFN0
cmluZyBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzdWJyb2xlUGxhdGZvcm1TdHJpbmcoKSBjb25zdAog
CiAgICAgaWYgKHJvbGUgPT0gQWNjZXNzaWJpbGl0eVJvbGU6Ok1hdGhFbGVtZW50KSB7CiAgICAg
ICAgIGlmIChpc01hdGhGcmFjdGlvbigpKQotICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhGcmFj
dGlvbiI7CisgICAgICAgICAgICByZXR1cm4gIkFYTWF0aEZyYWN0aW9uIl9zOwogICAgICAgICBp
ZiAoaXNNYXRoRmVuY2VkKCkpCi0gICAgICAgICAgICByZXR1cm4gIkFYTWF0aEZlbmNlZCI7Cisg
ICAgICAgICAgICByZXR1cm4gIkFYTWF0aEZlbmNlZCJfczsKICAgICAgICAgaWYgKGlzTWF0aFN1
YnNjcmlwdFN1cGVyc2NyaXB0KCkpCi0gICAgICAgICAgICByZXR1cm4gIkFYTWF0aFN1YnNjcmlw
dFN1cGVyc2NyaXB0IjsKKyAgICAgICAgICAgIHJldHVybiAiQVhNYXRoU3Vic2NyaXB0U3VwZXJz
Y3JpcHQiX3M7CiAgICAgICAgIGlmIChpc01hdGhSb3coKSkKLSAgICAgICAgICAgIHJldHVybiAi
QVhNYXRoUm93IjsKKyAgICAgICAgICAgIHJldHVybiAiQVhNYXRoUm93Il9zOwogICAgICAgICBp
ZiAoaXNNYXRoVW5kZXJPdmVyKCkpCi0gICAgICAgICAgICByZXR1cm4gIkFYTWF0aFVuZGVyT3Zl
ciI7CisgICAgICAgICAgICByZXR1cm4gIkFYTWF0aFVuZGVyT3ZlciJfczsKICAgICAgICAgaWYg
KGlzTWF0aFNxdWFyZVJvb3QoKSkKLSAgICAgICAgICAgIHJldHVybiAiQVhNYXRoU3F1YXJlUm9v
dCI7CisgICAgICAgICAgICByZXR1cm4gIkFYTWF0aFNxdWFyZVJvb3QiX3M7CiAgICAgICAgIGlm
IChpc01hdGhSb290KCkpCi0gICAgICAgICAgICByZXR1cm4gIkFYTWF0aFJvb3QiOworICAgICAg
ICAgICAgcmV0dXJuICJBWE1hdGhSb290Il9zOwogICAgICAgICBpZiAoaXNNYXRoVGV4dCgpKQot
ICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhUZXh0IjsKKyAgICAgICAgICAgIHJldHVybiAiQVhN
YXRoVGV4dCJfczsKICAgICAgICAgaWYgKGlzTWF0aE51bWJlcigpKQotICAgICAgICAgICAgcmV0
dXJuICJBWE1hdGhOdW1iZXIiOworICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhOdW1iZXIiX3M7
CiAgICAgICAgIGlmIChpc01hdGhJZGVudGlmaWVyKCkpCi0gICAgICAgICAgICByZXR1cm4gIkFY
TWF0aElkZW50aWZpZXIiOworICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhJZGVudGlmaWVyIl9z
OwogICAgICAgICBpZiAoaXNNYXRoVGFibGUoKSkKLSAgICAgICAgICAgIHJldHVybiAiQVhNYXRo
VGFibGUiOworICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhUYWJsZSJfczsKICAgICAgICAgaWYg
KGlzTWF0aFRhYmxlUm93KCkpCi0gICAgICAgICAgICByZXR1cm4gIkFYTWF0aFRhYmxlUm93IjsK
KyAgICAgICAgICAgIHJldHVybiAiQVhNYXRoVGFibGVSb3ciX3M7CiAgICAgICAgIGlmIChpc01h
dGhUYWJsZUNlbGwoKSkKLSAgICAgICAgICAgIHJldHVybiAiQVhNYXRoVGFibGVDZWxsIjsKKyAg
ICAgICAgICAgIHJldHVybiAiQVhNYXRoVGFibGVDZWxsIl9zOwogICAgICAgICBpZiAoaXNNYXRo
RmVuY2VPcGVyYXRvcigpKQotICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhGZW5jZU9wZXJhdG9y
IjsKKyAgICAgICAgICAgIHJldHVybiAiQVhNYXRoRmVuY2VPcGVyYXRvciJfczsKICAgICAgICAg
aWYgKGlzTWF0aFNlcGFyYXRvck9wZXJhdG9yKCkpCi0gICAgICAgICAgICByZXR1cm4gIkFYTWF0
aFNlcGFyYXRvck9wZXJhdG9yIjsKKyAgICAgICAgICAgIHJldHVybiAiQVhNYXRoU2VwYXJhdG9y
T3BlcmF0b3IiX3M7CiAgICAgICAgIGlmIChpc01hdGhPcGVyYXRvcigpKQotICAgICAgICAgICAg
cmV0dXJuICJBWE1hdGhPcGVyYXRvciI7CisgICAgICAgICAgICByZXR1cm4gIkFYTWF0aE9wZXJh
dG9yIl9zOwogICAgICAgICBpZiAoaXNNYXRoTXVsdGlzY3JpcHQoKSkKLSAgICAgICAgICAgIHJl
dHVybiAiQVhNYXRoTXVsdGlzY3JpcHQiOworICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhNdWx0
aXNjcmlwdCJfczsKICAgICB9CiAKICAgICBpZiAocm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6
VmlkZW8pCi0gICAgICAgIHJldHVybiAiQVhWaWRlbyI7CisgICAgICAgIHJldHVybiAiQVhWaWRl
byJfczsKICAgICBpZiAocm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXVkaW8pCi0gICAgICAg
IHJldHVybiAiQVhBdWRpbyI7CisgICAgICAgIHJldHVybiAiQVhBdWRpbyJfczsKICAgICBpZiAo
cm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6RGV0YWlscykKLSAgICAgICAgcmV0dXJuICJBWERl
dGFpbHMiOworICAgICAgICByZXR1cm4gIkFYRGV0YWlscyJfczsKICAgICBpZiAocm9sZSA9PSBB
Y2Nlc3NpYmlsaXR5Um9sZTo6U3VtbWFyeSkKLSAgICAgICAgcmV0dXJuICJBWFN1bW1hcnkiOwor
ICAgICAgICByZXR1cm4gIkFYU3VtbWFyeSJfczsKICAgICBpZiAocm9sZSA9PSBBY2Nlc3NpYmls
aXR5Um9sZTo6VGltZSkKLSAgICAgICAgcmV0dXJuICJBWFRpbWVHcm91cCI7CisgICAgICAgIHJl
dHVybiAiQVhUaW1lR3JvdXAiX3M7CiAKICAgICBpZiAoaXNNZWRpYVRpbWVsaW5lKCkpCiAgICAg
ICAgIHJldHVybiBOU0FjY2Vzc2liaWxpdHlUaW1lbGluZVN1YnJvbGU7CkBAIC0zNzYsMjUgKzM3
NiwyNSBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0eU9iamVjdDo6c3Vicm9sZVBsYXRmb3JtU3RyaW5n
KCkgY29uc3QKICAgICAgICAgcmV0dXJuIE5TQWNjZXNzaWJpbGl0eVN3aXRjaFN1YnJvbGU7CiAK
ICAgICBpZiAocm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6SW5zZXJ0aW9uKQotICAgICAgICBy
ZXR1cm4gIkFYSW5zZXJ0U3R5bGVHcm91cCI7CisgICAgICAgIHJldHVybiAiQVhJbnNlcnRTdHls
ZUdyb3VwIl9zOwogICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpEZWxldGlvbikK
LSAgICAgICAgcmV0dXJuICJBWERlbGV0ZVN0eWxlR3JvdXAiOworICAgICAgICByZXR1cm4gIkFY
RGVsZXRlU3R5bGVHcm91cCJfczsKICAgICBpZiAocm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6
U3VwZXJzY3JpcHQpCi0gICAgICAgIHJldHVybiAiQVhTdXBlcnNjcmlwdFN0eWxlR3JvdXAiOwor
ICAgICAgICByZXR1cm4gIkFYU3VwZXJzY3JpcHRTdHlsZUdyb3VwIl9zOwogICAgIGlmIChyb2xl
ID09IEFjY2Vzc2liaWxpdHlSb2xlOjpTdWJzY3JpcHQpCi0gICAgICAgIHJldHVybiAiQVhTdWJz
Y3JpcHRTdHlsZUdyb3VwIjsKKyAgICAgICAgcmV0dXJuICJBWFN1YnNjcmlwdFN0eWxlR3JvdXAi
X3M7CiAKICAgICBzd2l0Y2ggKHJvbGUpIHsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpS
dWJ5QmFzZToKLSAgICAgICAgcmV0dXJuICJBWFJ1YnlCYXNlIjsKKyAgICAgICAgcmV0dXJuICJB
WFJ1YnlCYXNlIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlJ1YnlCbG9jazoKLSAg
ICAgICAgcmV0dXJuICJBWFJ1YnlCbG9jayI7CisgICAgICAgIHJldHVybiAiQVhSdWJ5QmxvY2si
X3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6UnVieUlubGluZToKLSAgICAgICAgcmV0
dXJuICJBWFJ1YnlJbmxpbmUiOworICAgICAgICByZXR1cm4gIkFYUnVieUlubGluZSJfczsKICAg
ICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpSdWJ5UnVuOgotICAgICAgICByZXR1cm4gIkFYUnVi
eVJ1biI7CisgICAgICAgIHJldHVybiAiQVhSdWJ5UnVuIl9zOwogICAgIGNhc2UgQWNjZXNzaWJp
bGl0eVJvbGU6OlJ1YnlUZXh0OgotICAgICAgICByZXR1cm4gIkFYUnVieVRleHQiOworICAgICAg
ICByZXR1cm4gIkFYUnVieVRleHQiX3M7CiAgICAgZGVmYXVsdDoKICAgICAgICAgYnJlYWs7CiAg
ICAgfQpAQCAtNDAzLDE3ICs0MDMsMTcgQEAgU3RyaW5nIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnN1
YnJvbGVQbGF0Zm9ybVN0cmluZygpIGNvbnN0CiAgICAgICAgIHVzaW5nIG5hbWVzcGFjZSBIVE1M
TmFtZXM7CiAgICAgICAgIGF1dG8gdGFnID0gdGFnTmFtZSgpOwogICAgICAgICBpZiAodGFnID09
IGtiZFRhZykKLSAgICAgICAgICAgIHJldHVybiBAIkFYS2V5Ym9hcmRJbnB1dFN0eWxlR3JvdXAi
OworICAgICAgICAgICAgcmV0dXJuICJBWEtleWJvYXJkSW5wdXRTdHlsZUdyb3VwIl9zOwogICAg
ICAgICBpZiAodGFnID09IGNvZGVUYWcpCi0gICAgICAgICAgICByZXR1cm4gQCJBWENvZGVTdHls
ZUdyb3VwIjsKKyAgICAgICAgICAgIHJldHVybiAiQVhDb2RlU3R5bGVHcm91cCJfczsKICAgICAg
ICAgaWYgKHRhZyA9PSBwcmVUYWcpCi0gICAgICAgICAgICByZXR1cm4gQCJBWFByZWZvcm1hdHRl
ZFN0eWxlR3JvdXAiOworICAgICAgICAgICAgcmV0dXJuICJBWFByZWZvcm1hdHRlZFN0eWxlR3Jv
dXAiX3M7CiAgICAgICAgIGlmICh0YWcgPT0gc2FtcFRhZykKLSAgICAgICAgICAgIHJldHVybiBA
IkFYU2FtcGxlU3R5bGVHcm91cCI7CisgICAgICAgICAgICByZXR1cm4gIkFYU2FtcGxlU3R5bGVH
cm91cCJfczsKICAgICAgICAgaWYgKHRhZyA9PSB2YXJUYWcpCi0gICAgICAgICAgICByZXR1cm4g
QCJBWFZhcmlhYmxlU3R5bGVHcm91cCI7CisgICAgICAgICAgICByZXR1cm4gIkFYVmFyaWFibGVT
dHlsZUdyb3VwIl9zOwogICAgICAgICBpZiAodGFnID09IGNpdGVUYWcpCi0gICAgICAgICAgICBy
ZXR1cm4gQCJBWENpdGVTdHlsZUdyb3VwIjsKKyAgICAgICAgICAgIHJldHVybiAiQVhDaXRlU3R5
bGVHcm91cCJfczsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVy
biBTdHJpbmcoKTsKICAgICB9CkBAIC00MzYsNyArNDM2LDcgQEAgU3RyaW5nIEFjY2Vzc2liaWxp
dHlPYmplY3Q6OnJvbGVQbGF0Zm9ybURlc2NyaXB0aW9uKCkgY29uc3QKIAogICAgICAgICBzd2l0
Y2ggKHJvbGUpIHsKICAgICAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXVkaW86Ci0gICAg
ICAgICAgICByZXR1cm4gbG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudFN0cmluZygiQXVkaW9F
bGVtZW50Iik7CisgICAgICAgICAgICByZXR1cm4gbG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVu
dFN0cmluZygiQXVkaW9FbGVtZW50Il9zKTsKICAgICAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9s
ZTo6RGVmaW5pdGlvbjoKICAgICAgICAgICAgIHJldHVybiBBWERlZmluaXRpb25UZXh0KCk7CiAg
ICAgICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRlc2NyaXB0aW9uTGlzdFRlcm06CkBAIC00
NTMsOSArNDUzLDkgQEAgU3RyaW5nIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnJvbGVQbGF0Zm9ybURl
c2NyaXB0aW9uKCkgY29uc3QKICAgICAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TWFyazoK
ICAgICAgICAgICAgIHJldHVybiBBWE1hcmtUZXh0KCk7CiAgICAgICAgIGNhc2UgQWNjZXNzaWJp
bGl0eVJvbGU6OlZpZGVvOgotICAgICAgICAgICAgcmV0dXJuIGxvY2FsaXplZE1lZGlhQ29udHJv
bEVsZW1lbnRTdHJpbmcoIlZpZGVvRWxlbWVudCIpOworICAgICAgICAgICAgcmV0dXJuIGxvY2Fs
aXplZE1lZGlhQ29udHJvbEVsZW1lbnRTdHJpbmcoIlZpZGVvRWxlbWVudCJfcyk7CiAgICAgICAg
IGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkdyYXBoaWNzRG9jdW1lbnQ6Ci0gICAgICAgICAgICBy
ZXR1cm4gQVhBUklBQ29udGVudEdyb3VwVGV4dChAIkFSSUFEb2N1bWVudCIpOworICAgICAgICAg
ICAgcmV0dXJuIEFYQVJJQUNvbnRlbnRHcm91cFRleHQoIkFSSUFEb2N1bWVudCIpOwogICAgICAg
ICBkZWZhdWx0OgogICAgICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogICAgICAgICB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQW5pbWF0aW9uRWZmZWN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9BbmltYXRpb25FZmZlY3QuY3BwCmluZGV4IDIzOWJkMDQ1
ZjgwYWVhOGRjZGYzMWM1ZTBjNDM4OGEwMmI1Mjk1NTIuLjQzMWZkZWExNTcyNjI3MmEyYjY4Zjk3
NGIyNmUwYWU2YTU1ZmMwYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9B
bmltYXRpb25FZmZlY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9BbmltYXRp
b25FZmZlY3QuY3BwCkBAIC02OSw3ICs2OSw3IEBAIEVmZmVjdFRpbWluZyBBbmltYXRpb25FZmZl
Y3Q6OmdldFRpbWluZygpIGNvbnN0CiAgICAgdGltaW5nLml0ZXJhdGlvblN0YXJ0ID0gbV9pdGVy
YXRpb25TdGFydDsKICAgICB0aW1pbmcuaXRlcmF0aW9ucyA9IG1faXRlcmF0aW9uczsKICAgICBp
ZiAobV9pdGVyYXRpb25EdXJhdGlvbiA9PSAwX3MpCi0gICAgICAgIHRpbWluZy5kdXJhdGlvbiA9
ICJhdXRvIjsKKyAgICAgICAgdGltaW5nLmR1cmF0aW9uID0gImF1dG8iX3M7CiAgICAgZWxzZQog
ICAgICAgICB0aW1pbmcuZHVyYXRpb24gPSBzZWNvbmRzVG9XZWJBbmltYXRpb25zQVBJVGltZSht
X2l0ZXJhdGlvbkR1cmF0aW9uKTsKICAgICB0aW1pbmcuZGlyZWN0aW9uID0gbV9kaXJlY3Rpb247
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRG9jdW1lbnRUaW1lbGluZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRG9jdW1lbnRUaW1lbGluZS5jcHAKaW5kZXgg
M2M5NTllOWNiZDRhODcxMjQ0ZWUyZjQ1YjBiNWFhMDZlMWM1ZmQ0NS4uYzg2ZjJhZDU1YzRiMTI4
ZWVjZWRiODAxMGY0YzQ3MTNiYWY0Njc2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5p
bWF0aW9uL0RvY3VtZW50VGltZWxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlv
bi9Eb2N1bWVudFRpbWVsaW5lLmNwcApAQCAtNDUyLDcgKzQ1Miw3IEBAIEV4Y2VwdGlvbk9yPFJl
ZjxXZWJBbmltYXRpb24+PiBEb2N1bWVudFRpbWVsaW5lOjphbmltYXRlKFJlZjxDdXN0b21FZmZl
Y3RDYWxsYmFjCiAgICAgaWYgKCFtX2RvY3VtZW50KQogICAgICAgICByZXR1cm4gRXhjZXB0aW9u
IHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKIAotICAgIFN0cmluZyBpZCA9ICIiOworICAgIFN0cmlu
ZyBpZCA9IGVtcHR5U3RyaW5nKCk7CiAgICAgc3RkOjp2YXJpYW50PEZyYW1lc1BlclNlY29uZCwg
QW5pbWF0aW9uRnJhbWVSYXRlUHJlc2V0PiBmcmFtZVJhdGUgPSBBbmltYXRpb25GcmFtZVJhdGVQ
cmVzZXQ6OkF1dG87CiAgICAgc3RkOjpvcHRpb25hbDxzdGQ6OnZhcmlhbnQ8ZG91YmxlLCBFZmZl
Y3RUaW1pbmc+PiBjdXN0b21FZmZlY3RPcHRpb25zOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hbmltYXRpb24vRWZmZWN0VGltaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24v
RWZmZWN0VGltaW5nLmgKaW5kZXggNGRkNWRjYzM3M2NjZDgzMzBkZWNhMzYxN2Q5OThlNjEzMzkz
MmU2MS4uMjEwNzNmYTQ3MzAzZjY0ZmQyYmEyNjE5YWU5MTg3ZjU4MTU5NTA2ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0VmZmVjdFRpbWluZy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2FuaW1hdGlvbi9FZmZlY3RUaW1pbmcuaApAQCAtMzMsMTIgKzMzLDEyIEBACiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIHN0cnVjdCBFZmZlY3RUaW1pbmcgewotICAgIHN0ZDo6dmFyaWFu
dDxkb3VibGUsIFN0cmluZz4gZHVyYXRpb24geyAiYXV0byIgfTsKKyAgICBzdGQ6OnZhcmlhbnQ8
ZG91YmxlLCBTdHJpbmc+IGR1cmF0aW9uIHsgImF1dG8iX3MgfTsKICAgICBkb3VibGUgZGVsYXkg
eyAwIH07CiAgICAgZG91YmxlIGVuZERlbGF5IHsgMCB9OwogICAgIGRvdWJsZSBpdGVyYXRpb25T
dGFydCB7IDAgfTsKICAgICBkb3VibGUgaXRlcmF0aW9ucyB7IDEgfTsKLSAgICBTdHJpbmcgZWFz
aW5nIHsgImxpbmVhciIgfTsKKyAgICBTdHJpbmcgZWFzaW5nIHsgImxpbmVhciJfcyB9OwogICAg
IEZpbGxNb2RlIGZpbGwgeyBGaWxsTW9kZTo6QXV0byB9OwogICAgIFBsYXliYWNrRGlyZWN0aW9u
IGRpcmVjdGlvbiB7IFBsYXliYWNrRGlyZWN0aW9uOjpOb3JtYWwgfTsKIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuY3BwIGIvU291cmNlL1dl
YkNvcmUvYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmNwcAppbmRleCA3MjM3Njg1MDNkMTBkYjQ5
NjdiMmY4YzYwZWI5MTQxODk3NjZiZjdkLi5kODQxMWM5M2U0NzcwMmY1NjdhZDYxNDAzNjZlY2U3
NjYzNWMwNDVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVF
ZmZlY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5j
cHAKQEAgLTgyLDExICs4MiwxMSBAQCBTdHJpbmcgS2V5ZnJhbWVFZmZlY3Q6OkNTU1Byb3BlcnR5
SURUb0lETEF0dHJpYnV0ZU5hbWUoQ1NTUHJvcGVydHlJRCBjc3NQcm9wZXJ0eQogCiAgICAgLy8g
Mi4gSWYgcHJvcGVydHkgcmVmZXJzIHRvIHRoZSBDU1MgZmxvYXQgcHJvcGVydHksIHJldHVybiB0
aGUgc3RyaW5nICJjc3NGbG9hdCIuCiAgICAgaWYgKGNzc1Byb3BlcnR5SWQgPT0gQ1NTUHJvcGVy
dHlGbG9hdCkKLSAgICAgICAgcmV0dXJuICJjc3NGbG9hdCI7CisgICAgICAgIHJldHVybiAiY3Nz
RmxvYXQiX3M7CiAKICAgICAvLyAzLiBJZiBwcm9wZXJ0eSByZWZlcnMgdG8gdGhlIENTUyBvZmZz
ZXQgcHJvcGVydHksIHJldHVybiB0aGUgc3RyaW5nICJjc3NPZmZzZXQiLgogICAgIGlmIChjc3NQ
cm9wZXJ0eUlkID09IENTU1Byb3BlcnR5T2Zmc2V0KQotICAgICAgICByZXR1cm4gImNzc09mZnNl
dCI7CisgICAgICAgIHJldHVybiAiY3NzT2Zmc2V0Il9zOwogCiAgICAgLy8gNC4gT3RoZXJ3aXNl
LCByZXR1cm4gdGhlIHJlc3VsdCBvZiBhcHBseWluZyB0aGUgQ1NTIHByb3BlcnR5IHRvIElETCBh
dHRyaWJ1dGUgYWxnb3JpdGhtIFtDU1NPTV0gdG8gcHJvcGVydHkuCiAgICAgcmV0dXJuIGdldEpT
UHJvcGVydHlOYW1lKGNzc1Byb3BlcnR5SWQpOwpAQCAtNjYwLDcgKzY2MCw3IEBAIGF1dG8gS2V5
ZnJhbWVFZmZlY3Q6OmdldEtleWZyYW1lcyhEb2N1bWVudCYgZG9jdW1lbnQpIC0+IFZlY3RvcjxD
b21wdXRlZEtleWZyYW1lCiAgICAgICAgIGNvbXB1dGVkS2V5ZnJhbWUub2Zmc2V0ID0ga2V5ZnJh
bWUua2V5KCk7CiAgICAgICAgIGNvbXB1dGVkS2V5ZnJhbWUuY29tcHV0ZWRPZmZzZXQgPSBrZXlm
cmFtZS5rZXkoKTsKICAgICAgICAgLy8gRm9yIENTUyB0cmFuc2l0aW9ucywgYWxsIGtleWZyYW1l
cyBzaG91bGQgcmV0dXJuICJsaW5lYXIiIHNpbmNlIHRoZSBlZmZlY3QncyBnbG9iYWwgdGltaW5n
IGZ1bmN0aW9uIGFwcGxpZXMuCi0gICAgICAgIGNvbXB1dGVkS2V5ZnJhbWUuZWFzaW5nID0gaXM8
Q1NTVHJhbnNpdGlvbj4oYW5pbWF0aW9uKCkpID8gImxpbmVhciIgOiB0aW1pbmdGdW5jdGlvbkZv
ckJsZW5kaW5nS2V5ZnJhbWUoa2V5ZnJhbWUpLT5jc3NUZXh0KCk7CisgICAgICAgIGNvbXB1dGVk
S2V5ZnJhbWUuZWFzaW5nID0gaXM8Q1NTVHJhbnNpdGlvbj4oYW5pbWF0aW9uKCkpID8gImxpbmVh
ciJfcyA6IHRpbWluZ0Z1bmN0aW9uRm9yQmxlbmRpbmdLZXlmcmFtZShrZXlmcmFtZSktPmNzc1Rl
eHQoKTsKIAogICAgICAgICBpZiAoZG9jdW1lbnQuc2V0dGluZ3MoKS53ZWJBbmltYXRpb25zQ29t
cG9zaXRlT3BlcmF0aW9uc0VuYWJsZWQoKSkgewogICAgICAgICAgICAgaWYgKGF1dG8gY29tcG9z
aXRlT3BlcmF0aW9uID0ga2V5ZnJhbWUuY29tcG9zaXRlT3BlcmF0aW9uKCkpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9HQ0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvR0NDb250cm9sbGVyLmNwcAppbmRleCA1ZjExZTBjNjM0ODc0MTQz
YWIzMTg1YTAxZGY5ZmIyZWUzNmYyNWFkLi41ZjkzNDkxNzU2ZjI3ZWMwNGQ0ZGVhOWQzODFiN2E2
NGM2Yzc5MjA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9HQ0NvbnRy
b2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0dDQ29udHJvbGxlci5j
cHAKQEAgLTU5LDcgKzU5LDcgQEAgR0NDb250cm9sbGVyOjpHQ0NvbnRyb2xsZXIoKQogewogICAg
IHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlRmxhZzsKICAgICBzdGQ6OmNhbGxfb25jZShvbmNl
RmxhZywgW10gewotICAgICAgICBQQUw6OnJlZ2lzdGVyTm90aWZ5Q2FsbGJhY2soImNvbS5hcHBs
ZS5XZWJLaXQuZHVtcEdDSGVhcCIsIFtdIHsKKyAgICAgICAgUEFMOjpyZWdpc3Rlck5vdGlmeUNh
bGxiYWNrKCJjb20uYXBwbGUuV2ViS2l0LmR1bXBHQ0hlYXAiX3MsIFtdIHsKICAgICAgICAgICAg
IEdDQ29udHJvbGxlcjo6c2luZ2xldG9uKCkuZHVtcEhlYXAoKTsKICAgICAgICAgfSk7CiAgICAg
fSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbUVsZW1l
bnRJbnRlcmZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21FbGVt
ZW50SW50ZXJmYWNlLmNwcAppbmRleCA0ZTFkMjRlZTk0MTc0YzlkZjc2ZDJiMmU1MDc5Yjc3ZGQw
ZTI2Zjk4Li5hOTFlMDJmMjNkNzUwMzBhOWI5YWJmODlhMzZmODRhYjE5YmE4OGIyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbUVsZW1lbnRJbnRlcmZhY2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tRWxlbWVudEludGVy
ZmFjZS5jcHAKQEAgLTIxMCw3ICsyMTAsNyBAQCB2b2lkIEpTQ3VzdG9tRWxlbWVudEludGVyZmFj
ZTo6dXBncmFkZUVsZW1lbnQoRWxlbWVudCYgZWxlbWVudCkKIAogICAgIGlmIChtX2lzU2hhZG93
RGlzYWJsZWQgJiYgZWxlbWVudC5zaGFkb3dSb290KCkpIHsKICAgICAgICAgZWxlbWVudC5jbGVh
clJlYWN0aW9uUXVldWVGcm9tRmFpbGVkQ3VzdG9tRWxlbWVudCgpOwotICAgICAgICByZXBvcnRF
eGNlcHRpb24obGV4aWNhbEdsb2JhbE9iamVjdCwgY3JlYXRlRE9NRXhjZXB0aW9uKGxleGljYWxH
bG9iYWxPYmplY3QsIE5vdFN1cHBvcnRlZEVycm9yLCAiRmFpbGVkIHRvIHVwZ3JhZGUgYW4gZWxl
bWVudCB3aXRoIHNoYWRvdyByb290OiB0aGUgY3VzdG9tIGVsZW1lbnQgZGVmaW5pdGlvbiBkaXNh
bGxvd3Mgc2hhZG93IHJvb3RzLiIpKTsKKyAgICAgICAgcmVwb3J0RXhjZXB0aW9uKGxleGljYWxH
bG9iYWxPYmplY3QsIGNyZWF0ZURPTUV4Y2VwdGlvbihsZXhpY2FsR2xvYmFsT2JqZWN0LCBOb3RT
dXBwb3J0ZWRFcnJvciwgIkZhaWxlZCB0byB1cGdyYWRlIGFuIGVsZW1lbnQgd2l0aCBzaGFkb3cg
cm9vdDogdGhlIGN1c3RvbSBlbGVtZW50IGRlZmluaXRpb24gZGlzYWxsb3dzIHNoYWRvdyByb290
cy4iX3MpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMjMxLDcgKzIzMSw3IEBAIHZv
aWQgSlNDdXN0b21FbGVtZW50SW50ZXJmYWNlOjp1cGdyYWRlRWxlbWVudChFbGVtZW50JiBlbGVt
ZW50KQogICAgIEVsZW1lbnQqIHdyYXBwZWRFbGVtZW50ID0gSlNFbGVtZW50Ojp0b1dyYXBwZWQo
dm0sIHJldHVybmVkRWxlbWVudCk7CiAgICAgaWYgKCF3cmFwcGVkRWxlbWVudCB8fCB3cmFwcGVk
RWxlbWVudCAhPSAmZWxlbWVudCkgewogICAgICAgICBlbGVtZW50LmNsZWFyUmVhY3Rpb25RdWV1
ZUZyb21GYWlsZWRDdXN0b21FbGVtZW50KCk7Ci0gICAgICAgIHJlcG9ydEV4Y2VwdGlvbihsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBjcmVhdGVET01FeGNlcHRpb24obGV4aWNhbEdsb2JhbE9iamVjdCwg
VHlwZUVycm9yLCAiQ3VzdG9tIGVsZW1lbnQgY29uc3RydWN0b3IgcmV0dXJuZWQgYSB3cm9uZyBl
bGVtZW50IikpOworICAgICAgICByZXBvcnRFeGNlcHRpb24obGV4aWNhbEdsb2JhbE9iamVjdCwg
Y3JlYXRlRE9NRXhjZXB0aW9uKGxleGljYWxHbG9iYWxPYmplY3QsIFR5cGVFcnJvciwgIkN1c3Rv
bSBlbGVtZW50IGNvbnN0cnVjdG9yIHJldHVybmVkIGEgd3JvbmcgZWxlbWVudCJfcykpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogICAgIGVsZW1lbnQuc2V0SXNEZWZpbmVkQ3VzdG9tRWxlbWVu
dCgqdGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNv
bnZlcnROdW1iZXJzLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnRO
dW1iZXJzLmgKaW5kZXggYjdiNjEzZGQ2YzM3ZWQxMTdiOTIyMDIwYWMxM2EzZDdjNTViYmNhZC4u
Mjk0MTNkOGQ5ODk2OTAxMGZhYTFjMzU0ZWEzYTg5YmFjNDAwYjA3MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Db252ZXJ0TnVtYmVycy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydE51bWJlcnMuaApAQCAtMjkzLDcgKzI5
Myw3IEBAIHRlbXBsYXRlPD4gc3RydWN0IENvbnZlcnRlcjxJRExGbG9hdD4gOiBEZWZhdWx0Q29u
dmVydGVyPElETEZsb2F0PiB7CiAgICAgICAgIGRvdWJsZSBudW1iZXIgPSB2YWx1ZS50b051bWJl
cigmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2Nv
cGUsIDAuMCk7CiAgICAgICAgIGlmIChVTkxJS0VMWShudW1iZXIgPCBzdGQ6Om51bWVyaWNfbGlt
aXRzPGZsb2F0Pjo6bG93ZXN0KCkgfHwgbnVtYmVyID4gc3RkOjpudW1lcmljX2xpbWl0czxmbG9h
dD46Om1heCgpKSkKLSAgICAgICAgICAgIHRocm93VHlwZUVycm9yKCZsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBzY29wZSwgIlRoZSBwcm92aWRlZCB2YWx1ZSBpcyBvdXRzaWRlIHRoZSByYW5nZSBvZiBh
IGZsb2F0Iik7CisgICAgICAgICAgICB0aHJvd1R5cGVFcnJvcigmbGV4aWNhbEdsb2JhbE9iamVj
dCwgc2NvcGUsICJUaGUgcHJvdmlkZWQgdmFsdWUgaXMgb3V0c2lkZSB0aGUgcmFuZ2Ugb2YgYSBm
bG9hdCJfcyk7CiAgICAgICAgIGlmIChVTkxJS0VMWSghc3RkOjppc2Zpbml0ZShudW1iZXIpKSkK
ICAgICAgICAgICAgIHRocm93Tm9uRmluaXRlVHlwZUVycm9yKGxleGljYWxHbG9iYWxPYmplY3Qs
IHNjb3BlKTsKICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGZsb2F0PihudW1iZXIpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFeGVjU3RhdGVJbnN0cnVtZW50
YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXhlY1N0YXRlSW5zdHJ1bWVu
dGF0aW9uLmgKaW5kZXggYzA0NGIwN2FiZmM3YjY5ZTMxOTEyODMzYjQ5NDQ2ODFiYzMyODA1My4u
MzEwMGZhYmYyZDg1NzEzNWM4YTUzZTk0NjdiZTIxYzc3ODllNjRjZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFeGVjU3RhdGVJbnN0cnVtZW50YXRpb24uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V4ZWNTdGF0ZUluc3RydW1lbnRhdGlvbi5o
CkBAIC00NSw3ICs0NSw3IEBAIGlubGluZSB2b2lkIEpTRXhlY1N0YXRlOjppbnN0cnVtZW50RnVu
Y3Rpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uCiAgICAgICAgIGxpbmVO
dW1iZXIgPSBjYWxsRGF0YS5qcy5mdW5jdGlvbkV4ZWN1dGFibGUtPmZpcnN0TGluZSgpOwogICAg
ICAgICBjb2x1bW5OdW1iZXIgPSBjYWxsRGF0YS5qcy5mdW5jdGlvbkV4ZWN1dGFibGUtPnN0YXJ0
Q29sdW1uKCk7CiAgICAgfSBlbHNlCi0gICAgICAgIHJlc291cmNlTmFtZSA9ICJ1bmRlZmluZWQi
OworICAgICAgICByZXNvdXJjZU5hbWUgPSAidW5kZWZpbmVkIl9zOwogICAgIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6d2lsbENhbGxGdW5jdGlvbihjb250ZXh0LCByZXNvdXJjZU5hbWUsIGxp
bmVOdW1iZXIsIGNvbHVtbk51bWJlcik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKaW5kZXggY2Q0YjNmMDc2ZGY3Mzk5MDU2ZjI3OGM2
NWU3MmQzMmQyNDc5ZDQ2MC4uNDg0ZDhjMmRmMzdiZWY3ZDE3ZGE0MWI3MDMyMjk0YjFkOWNmZmIx
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5j
cHAKQEAgLTYzMyw3ICs2MzMsNyBAQCBWYWx1ZU9yRXhjZXB0aW9uIFNjcmlwdENvbnRyb2xsZXI6
OmNhbGxJbldvcmxkKFJ1bkphdmFTY3JpcHRQYXJhbWV0ZXJzJiYgcGFyYW1ldAogICAgICAgICBh
dXRvIHNjb3BlID0gREVDTEFSRV9DQVRDSF9TQ09QRShnbG9iYWxPYmplY3Qudm0oKSk7CiAgICAg
ICAgIGF1dG8ganNBcmd1bWVudCA9IHNlcmlhbGl6ZWRBcmd1bWVudC0+ZGVzZXJpYWxpemUoZ2xv
YmFsT2JqZWN0LCAmZ2xvYmFsT2JqZWN0KTsKICAgICAgICAgaWYgKFVOTElLRUxZKHNjb3BlLmV4
Y2VwdGlvbigpKSkgewotICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gIlVuYWJsZSB0byBkZXNl
cmlhbGl6ZSBhcmd1bWVudCB0byBleGVjdXRlIGFzeW5jaHJvbm91cyBKYXZhU2NyaXB0IGZ1bmN0
aW9uIjsKKyAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9ICJVbmFibGUgdG8gZGVzZXJpYWxpemUg
YXJndW1lbnQgdG8gZXhlY3V0ZSBhc3luY2hyb25vdXMgSmF2YVNjcmlwdCBmdW5jdGlvbiJfczsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5tbSBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9v
YmpjL29iamNfcnVudGltZS5tbQppbmRleCAxNWNiNmEwOGU1YzM1YzE3MjJjZGQzN2NhMzhhYzVj
YTk0NGZhMTU5Li5hZTQyMjExNDFlZWNiODkxNTFjNjMxNjEwZTIyMjIyNGNjZmRkZmM2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLm1tCkBAIC0xNzYsNyArMTc2
LDcgQEAgYm9vbCBPYmpjQXJyYXk6OnNldFZhbHVlQXQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIHVuc2lnbmVkIGludCBpbmQKICAgICB9CiAKICAgICBpZiAoaW5kZXggPiBb
X2FycmF5IGNvdW50XSkgewotICAgICAgICB0aHJvd0V4Y2VwdGlvbihsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBzY29wZSwgY3JlYXRlUmFuZ2VFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCAiSW5kZXgg
ZXhjZWVkcyBhcnJheSBzaXplLiIpKTsKKyAgICAgICAgdGhyb3dFeGNlcHRpb24obGV4aWNhbEds
b2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZVJhbmdlRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwg
IkluZGV4IGV4Y2VlZHMgYXJyYXkgc2l6ZS4iX3MpKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIH0KICAgICAKQEAgLTE4OCw3ICsxODgsNyBAQCBib29sIE9iamNBcnJheTo6c2V0VmFsdWVB
dChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgdW5zaWduZWQgaW50IGluZAog
ICAgICAgICBbX2FycmF5IGluc2VydE9iamVjdDooX19icmlkZ2UgaWQpb1ZhbHVlLm9iamVjdFZh
bHVlIGF0SW5kZXg6aW5kZXhdOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9IEBjYXRjaChO
U0V4Y2VwdGlvbiogbG9jYWxFeGNlcHRpb24pIHsKLSAgICAgICAgdGhyb3dFeGNlcHRpb24obGV4
aWNhbEdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZUVycm9yKGxleGljYWxHbG9iYWxPYmplY3Qs
ICJPYmplY3RpdmUtQyBleGNlcHRpb24uIikpOworICAgICAgICB0aHJvd0V4Y2VwdGlvbihsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwg
Ik9iamVjdGl2ZS1DIGV4Y2VwdGlvbi4iX3MpKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IH0KIH0KQEAgLTE5OSwxMyArMTk5LDEzIEBAIEpTVmFsdWUgT2JqY0FycmF5Ojp2YWx1ZUF0KEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCB1bnNpZ25lZCBpbnQgaW5kCiAgICAg
YXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgaWYgKGluZGV4ID4g
W19hcnJheSBjb3VudF0pCi0gICAgICAgIHJldHVybiB0aHJvd0V4Y2VwdGlvbihsZXhpY2FsR2xv
YmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlUmFuZ2VFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCAi
SW5kZXggZXhjZWVkcyBhcnJheSBzaXplLiIpKTsKKyAgICAgICAgcmV0dXJuIHRocm93RXhjZXB0
aW9uKGxleGljYWxHbG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVSYW5nZUVycm9yKGxleGljYWxH
bG9iYWxPYmplY3QsICJJbmRleCBleGNlZWRzIGFycmF5IHNpemUuIl9zKSk7CiAgICAgQHRyeSB7
CiAgICAgICAgIGlkIG9iaiA9IFtfYXJyYXkgb2JqZWN0QXRJbmRleDppbmRleF07CiAgICAgICAg
IGlmIChvYmopCiAgICAgICAgICAgICByZXR1cm4gY29udmVydE9iamNWYWx1ZVRvVmFsdWUgKGxl
eGljYWxHbG9iYWxPYmplY3QsICZvYmosIE9iamNPYmplY3RUeXBlLCBtX3Jvb3RPYmplY3QuZ2V0
KCkpOwogICAgIH0gQGNhdGNoKE5TRXhjZXB0aW9uKiBsb2NhbEV4Y2VwdGlvbikgewotICAgICAg
ICByZXR1cm4gdGhyb3dFeGNlcHRpb24obGV4aWNhbEdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0
ZUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsICJPYmplY3RpdmUtQyBleGNlcHRpb24uIikpOwor
ICAgICAgICByZXR1cm4gdGhyb3dFeGNlcHRpb24obGV4aWNhbEdsb2JhbE9iamVjdCwgc2NvcGUs
IGNyZWF0ZUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsICJPYmplY3RpdmUtQyBleGNlcHRpb24u
Il9zKSk7CiAgICAgfQogICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwIGIvU291cmNlL1dlYkNvcmUv
YnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwCmluZGV4IGMwNWUzYTQwZTgwNTY2NWRjMGZkZWQwMmMz
MDUxOGVkOTYyODYwYzMuLmFmMzliYTExNDBkYTAzMDQzODg1YTNhODU1YTEzMzFlNGY1NjVhOWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5jcHAKQEAgLTEyNyw3ICsxMjcs
NyBAQCBib29sIFJ1bnRpbWVBcnJheTo6cHV0KEpTQ2VsbCogY2VsbCwgSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIFByb3BlcgogCiAgICAgUnVudGltZUFycmF5KiB0aGlzT2Jq
ZWN0ID0ganNDYXN0PFJ1bnRpbWVBcnJheSo+KGNlbGwpOwogICAgIGlmIChwcm9wZXJ0eU5hbWUg
PT0gdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoKSB7Ci0gICAgICAgIHRocm93RXhjZXB0aW9uKGxl
eGljYWxHbG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVSYW5nZUVycm9yKGxleGljYWxHbG9iYWxP
YmplY3QsICJSYW5nZSBlcnJvciIpKTsKKyAgICAgICAgdGhyb3dFeGNlcHRpb24obGV4aWNhbEds
b2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZVJhbmdlRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwg
IlJhbmdlIGVycm9yIl9zKSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAgICAgCkBA
IC0xNDQsNyArMTQ0LDcgQEAgYm9vbCBSdW50aW1lQXJyYXk6OnB1dEJ5SW5kZXgoSlNDZWxsKiBj
ZWxsLCBKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwKIAogICAgIFJ1bnRpbWVB
cnJheSogdGhpc09iamVjdCA9IGpzQ2FzdDxSdW50aW1lQXJyYXkqPihjZWxsKTsKICAgICBpZiAo
aW5kZXggPj0gdGhpc09iamVjdC0+Z2V0TGVuZ3RoKCkpIHsKLSAgICAgICAgdGhyb3dFeGNlcHRp
b24obGV4aWNhbEdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZVJhbmdlRXJyb3IobGV4aWNhbEds
b2JhbE9iamVjdCwgIlJhbmdlIGVycm9yIikpOworICAgICAgICB0aHJvd0V4Y2VwdGlvbihsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlUmFuZ2VFcnJvcihsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCAiUmFuZ2UgZXJyb3IiX3MpKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KICAg
ICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuY3BwCmluZGV4IGIyNGYyYWVm
MTk0YmFkMjViM2E2MWViODhlNzQxNDdkY2U5MzEwYzcuLjIwYmUxZWUyZmYyNTA0MmYzODgxNWVk
YTA2OGZkOWE0ODg5NTVlNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50
aW1lX29iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0
LmNwcApAQCAtMzEwLDcgKzMxMCw3IEBAIHZvaWQgUnVudGltZU9iamVjdDo6Z2V0T3duUHJvcGVy
dHlOYW1lcyhKU09iamVjdCogb2JqZWN0LCBKU0dsb2JhbE9iamVjdCogbGV4aWNhCiAKIEV4Y2Vw
dGlvbiogdGhyb3dSdW50aW1lT2JqZWN0SW52YWxpZEFjY2Vzc0Vycm9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBUaHJvd1Njb3BlJiBzY29wZSkKIHsKLSAgICByZXR1cm4g
dGhyb3dFeGNlcHRpb24obGV4aWNhbEdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZVJlZmVyZW5j
ZUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsICJUcnlpbmcgdG8gYWNjZXNzIG9iamVjdCBmcm9t
IGRlc3Ryb3llZCBwbHVnLWluLiIpKTsKKyAgICByZXR1cm4gdGhyb3dFeGNlcHRpb24obGV4aWNh
bEdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZVJlZmVyZW5jZUVycm9yKGxleGljYWxHbG9iYWxP
YmplY3QsICJUcnlpbmcgdG8gYWNjZXNzIG9iamVjdCBmcm9tIGRlc3Ryb3llZCBwbHVnLWluLiJf
cykpOwogfQogCiBKU0M6OkdDQ2xpZW50OjpJc29TdWJzcGFjZSogUnVudGltZU9iamVjdDo6c3Vi
c3BhY2VGb3JJbXBsKEpTQzo6Vk0mIHZtKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY29u
dGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkFjdGlvbnMuY3BwIGIvU291cmNlL1dlYkNv
cmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkFjdGlvbnMuY3BwCmluZGV4IDBj
YTYxYzEwMTRkMjQzNWU4NGFhMGRhZmUzMDIwZmZiMDc4ZTgzNzkuLjdiMjY1OWZjNjczZDUzNjA5
ZTVkMWI1ZTQ3ZmI2ODNhMTYzYWYwOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NvbnRl
bnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25BY3Rpb25zLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uQWN0aW9ucy5jcHAKQEAgLTIw
MSwxNSArMjAxLDE1IEBAIGF1dG8gTW9kaWZ5SGVhZGVyc0FjdGlvbjo6TW9kaWZ5SGVhZGVySW5m
bzo6cGFyc2UoY29uc3QgSlNPTjo6VmFsdWUmIGluZm9WYWx1ZSkKICAgICBpZiAoIW9iamVjdCkK
ICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNP
Tk1vZGlmeUhlYWRlcnNJbmZvTm90QURpY3Rpb25hcnkpOwogCi0gICAgU3RyaW5nIG9wZXJhdGlv
biA9IG9iamVjdC0+Z2V0U3RyaW5nKCJvcGVyYXRpb24iKTsKKyAgICBTdHJpbmcgb3BlcmF0aW9u
ID0gb2JqZWN0LT5nZXRTdHJpbmcoIm9wZXJhdGlvbiJfcyk7CiAgICAgaWYgKCFvcGVyYXRpb24p
CiAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpT
T05Nb2RpZnlIZWFkZXJzTWlzc2luZ09wZXJhdGlvbik7CiAKLSAgICBTdHJpbmcgaGVhZGVyID0g
b2JqZWN0LT5nZXRTdHJpbmcoImhlYWRlciIpOworICAgIFN0cmluZyBoZWFkZXIgPSBvYmplY3Qt
PmdldFN0cmluZygiaGVhZGVyIl9zKTsKICAgICBpZiAoIWhlYWRlcikKICAgICAgICAgcmV0dXJu
IG1ha2VVbmV4cGVjdGVkKENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTk1vZGlmeUhlYWRlcnNN
aXNzaW5nSGVhZGVyKTsKIAotICAgIFN0cmluZyB2YWx1ZSA9IG9iamVjdC0+Z2V0U3RyaW5nKCJ2
YWx1ZSIpOworICAgIFN0cmluZyB2YWx1ZSA9IG9iamVjdC0+Z2V0U3RyaW5nKCJ2YWx1ZSJfcyk7
CiAKICAgICBpZiAob3BlcmF0aW9uID09ICJzZXQiKSB7CiAgICAgICAgIGlmICghdmFsdWUpCkBA
IC0yODksMjcgKzI4OSwyNyBAQCBzaXplX3QgTW9kaWZ5SGVhZGVyc0FjdGlvbjo6TW9kaWZ5SGVh
ZGVySW5mbzo6c2VyaWFsaXplZExlbmd0aChTcGFuPGNvbnN0IHVpbnQ4XwogCiBFeHBlY3RlZDxS
ZWRpcmVjdEFjdGlvbiwgc3RkOjplcnJvcl9jb2RlPiBSZWRpcmVjdEFjdGlvbjo6cGFyc2UoY29u
c3QgSlNPTjo6T2JqZWN0JiByZWRpcmVjdE9iamVjdCwgY29uc3QgU3RyaW5nJiB1cmxGaWx0ZXIp
CiB7Ci0gICAgYXV0byByZWRpcmVjdCA9IHJlZGlyZWN0T2JqZWN0LmdldE9iamVjdCgicmVkaXJl
Y3QiKTsKKyAgICBhdXRvIHJlZGlyZWN0ID0gcmVkaXJlY3RPYmplY3QuZ2V0T2JqZWN0KCJyZWRp
cmVjdCJfcyk7CiAgICAgaWYgKCFyZWRpcmVjdCkKICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVj
dGVkKENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTlJlZGlyZWN0TWlzc2luZyk7CiAKLSAgICBp
ZiAoYXV0byBleHRlbnNpb25QYXRoID0gcmVkaXJlY3QtPmdldFN0cmluZygiZXh0ZW5zaW9uLXBh
dGgiKTsgISFleHRlbnNpb25QYXRoKSB7CisgICAgaWYgKGF1dG8gZXh0ZW5zaW9uUGF0aCA9IHJl
ZGlyZWN0LT5nZXRTdHJpbmcoImV4dGVuc2lvbi1wYXRoIl9zKTsgISFleHRlbnNpb25QYXRoKSB7
CiAgICAgICAgIGlmICghZXh0ZW5zaW9uUGF0aC5zdGFydHNXaXRoKCcvJykpCiAgICAgICAgICAg
ICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OUmVkaXJl
Y3RFeHRlbnNpb25QYXRoRG9lc05vdFN0YXJ0V2l0aFNsYXNoKTsKICAgICAgICAgcmV0dXJuIFJl
ZGlyZWN0QWN0aW9uIHsgRXh0ZW5zaW9uUGF0aEFjdGlvbiB7IFdURk1vdmUoZXh0ZW5zaW9uUGF0
aCkgfSB9OwogICAgIH0KIAotICAgIGlmIChhdXRvIHJlZ2V4U3Vic3RpdHV0aW9uID0gcmVkaXJl
Y3QtPmdldFN0cmluZygicmVnZXgtc3Vic3RpdHV0aW9uIik7ICEhcmVnZXhTdWJzdGl0dXRpb24p
CisgICAgaWYgKGF1dG8gcmVnZXhTdWJzdGl0dXRpb24gPSByZWRpcmVjdC0+Z2V0U3RyaW5nKCJy
ZWdleC1zdWJzdGl0dXRpb24iX3MpOyAhIXJlZ2V4U3Vic3RpdHV0aW9uKQogICAgICAgICByZXR1
cm4gUmVkaXJlY3RBY3Rpb24geyBSZWdleFN1YnN0aXR1dGlvbkFjdGlvbiB7IFdURk1vdmUocmVn
ZXhTdWJzdGl0dXRpb24pLCB1cmxGaWx0ZXIgfSB9OwogCi0gICAgaWYgKGF1dG8gdHJhbnNmb3Jt
ID0gcmVkaXJlY3QtPmdldE9iamVjdCgidHJhbnNmb3JtIikpIHsKKyAgICBpZiAoYXV0byB0cmFu
c2Zvcm0gPSByZWRpcmVjdC0+Z2V0T2JqZWN0KCJ0cmFuc2Zvcm0iX3MpKSB7CiAgICAgICAgIGF1
dG8gcGFyc2VkVHJhbnNmb3JtID0gVVJMVHJhbnNmb3JtQWN0aW9uOjpwYXJzZSgqdHJhbnNmb3Jt
KTsKICAgICAgICAgaWYgKCFwYXJzZWRUcmFuc2Zvcm0pCiAgICAgICAgICAgICByZXR1cm4gbWFr
ZVVuZXhwZWN0ZWQocGFyc2VkVHJhbnNmb3JtLmVycm9yKCkpOwogICAgICAgICByZXR1cm4gUmVk
aXJlY3RBY3Rpb24geyBXVEZNb3ZlKCpwYXJzZWRUcmFuc2Zvcm0pIH07CiAgICAgfQogCi0gICAg
aWYgKGF1dG8gdXJsU3RyaW5nID0gcmVkaXJlY3QtPmdldFN0cmluZygidXJsIik7ICEhdXJsU3Ry
aW5nKSB7CisgICAgaWYgKGF1dG8gdXJsU3RyaW5nID0gcmVkaXJlY3QtPmdldFN0cmluZygidXJs
Il9zKTsgISF1cmxTdHJpbmcpIHsKICAgICAgICAgVVJMIHVybCB7IHVybFN0cmluZyB9OwogICAg
ICAgICBpZiAoIXVybC5pc1ZhbGlkKCkpCiAgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0
ZWQoQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OUmVkaXJlY3RVUkxJbnZhbGlkKTsKQEAgLTQ4
MywxNSArNDgzLDE1IEBAIHZvaWQgUmVkaXJlY3RBY3Rpb246OlJlZ2V4U3Vic3RpdHV0aW9uQWN0
aW9uOjphcHBseVRvVVJMKFVSTCYgdXJsKSBjb25zdAogYXV0byBSZWRpcmVjdEFjdGlvbjo6VVJM
VHJhbnNmb3JtQWN0aW9uOjpwYXJzZShjb25zdCBKU09OOjpPYmplY3QmIHRyYW5zZm9ybSkgLT4g
RXhwZWN0ZWQ8VVJMVHJhbnNmb3JtQWN0aW9uLCBzdGQ6OmVycm9yX2NvZGU+CiB7CiAgICAgVVJM
VHJhbnNmb3JtQWN0aW9uIGFjdGlvbjsKLSAgICBpZiAoYXV0byBmcmFnbWVudCA9IHRyYW5zZm9y
bS5nZXRTdHJpbmcoImZyYWdtZW50Iik7ICEhZnJhZ21lbnQpIHsKKyAgICBpZiAoYXV0byBmcmFn
bWVudCA9IHRyYW5zZm9ybS5nZXRTdHJpbmcoImZyYWdtZW50Il9zKTsgISFmcmFnbWVudCkgewog
ICAgICAgICBpZiAoIWZyYWdtZW50LmlzRW1wdHkoKSAmJiAhZnJhZ21lbnQuc3RhcnRzV2l0aCgn
IycpKQogICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKENvbnRlbnRFeHRlbnNpb25F
cnJvcjo6SlNPTlJlZGlyZWN0SW52YWxpZEZyYWdtZW50KTsKICAgICAgICAgYWN0aW9uLmZyYWdt
ZW50ID0gV1RGTW92ZShmcmFnbWVudCk7CiAgICAgfQotICAgIGFjdGlvbi5ob3N0ID0gdHJhbnNm
b3JtLmdldFN0cmluZygiaG9zdCIpOwotICAgIGFjdGlvbi5wYXNzd29yZCA9IHRyYW5zZm9ybS5n
ZXRTdHJpbmcoInBhc3N3b3JkIik7Ci0gICAgYWN0aW9uLnBhdGggPSB0cmFuc2Zvcm0uZ2V0U3Ry
aW5nKCJwYXRoIik7Ci0gICAgYXV0byBwb3J0ID0gdHJhbnNmb3JtLmdldFN0cmluZygicG9ydCIp
OworICAgIGFjdGlvbi5ob3N0ID0gdHJhbnNmb3JtLmdldFN0cmluZygiaG9zdCJfcyk7CisgICAg
YWN0aW9uLnBhc3N3b3JkID0gdHJhbnNmb3JtLmdldFN0cmluZygicGFzc3dvcmQiX3MpOworICAg
IGFjdGlvbi5wYXRoID0gdHJhbnNmb3JtLmdldFN0cmluZygicGF0aCJfcyk7CisgICAgYXV0byBw
b3J0ID0gdHJhbnNmb3JtLmdldFN0cmluZygicG9ydCJfcyk7CiAgICAgaWYgKCEhcG9ydCkgewog
ICAgICAgICBpZiAocG9ydC5pc0VtcHR5KCkpCiAgICAgICAgICAgICBhY3Rpb24ucG9ydCA9IHsg
c3RkOjpvcHRpb25hbDx1aW50MTZfdD4geyB9IH07CkBAIC01MDMsNyArNTAzLDcgQEAgYXV0byBS
ZWRpcmVjdEFjdGlvbjo6VVJMVHJhbnNmb3JtQWN0aW9uOjpwYXJzZShjb25zdCBKU09OOjpPYmpl
Y3QmIHRyYW5zZm9ybSkgLT4KICAgICAgICAgfQogICAgIH0KIAotICAgIGlmIChhdXRvIHVuY2Fu
b25pY2FsaXplZFNjaGVtZSA9IHRyYW5zZm9ybS5nZXRTdHJpbmcoInNjaGVtZSIpOyAhIXVuY2Fu
b25pY2FsaXplZFNjaGVtZSkgeworICAgIGlmIChhdXRvIHVuY2Fub25pY2FsaXplZFNjaGVtZSA9
IHRyYW5zZm9ybS5nZXRTdHJpbmcoInNjaGVtZSJfcyk7ICEhdW5jYW5vbmljYWxpemVkU2NoZW1l
KSB7CiAgICAgICAgIGF1dG8gc2NoZW1lID0gV1RGOjpVUkxQYXJzZXI6Om1heWJlQ2Fub25pY2Fs
aXplU2NoZW1lKHVuY2Fub25pY2FsaXplZFNjaGVtZSk7CiAgICAgICAgIGlmICghc2NoZW1lKQog
ICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKENvbnRlbnRFeHRlbnNpb25FcnJvcjo6
SlNPTlJlZGlyZWN0VVJMU2NoZW1lSW52YWxpZCk7CkBAIC01MTEsMTQgKzUxMSwxNCBAQCBhdXRv
IFJlZGlyZWN0QWN0aW9uOjpVUkxUcmFuc2Zvcm1BY3Rpb246OnBhcnNlKGNvbnN0IEpTT046Ok9i
amVjdCYgdHJhbnNmb3JtKSAtPgogICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKENv
bnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTlJlZGlyZWN0VG9KYXZhU2NyaXB0VVJMKTsKICAgICAg
ICAgYWN0aW9uLnNjaGVtZSA9IFdURk1vdmUoKnNjaGVtZSk7CiAgICAgfQotICAgIGFjdGlvbi51
c2VybmFtZSA9IHRyYW5zZm9ybS5nZXRTdHJpbmcoInVzZXJuYW1lIik7Ci0gICAgaWYgKGF1dG8g
cXVlcnlUcmFuc2Zvcm0gPSB0cmFuc2Zvcm0uZ2V0T2JqZWN0KCJxdWVyeS10cmFuc2Zvcm0iKSkg
eworICAgIGFjdGlvbi51c2VybmFtZSA9IHRyYW5zZm9ybS5nZXRTdHJpbmcoInVzZXJuYW1lIl9z
KTsKKyAgICBpZiAoYXV0byBxdWVyeVRyYW5zZm9ybSA9IHRyYW5zZm9ybS5nZXRPYmplY3QoInF1
ZXJ5LXRyYW5zZm9ybSJfcykpIHsKICAgICAgICAgYXV0byBwYXJzZWRRdWVyeVRyYW5zZm9ybSA9
IFF1ZXJ5VHJhbnNmb3JtOjpwYXJzZSgqcXVlcnlUcmFuc2Zvcm0pOwogICAgICAgICBpZiAoIXBh
cnNlZFF1ZXJ5VHJhbnNmb3JtKQogICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKHBh
cnNlZFF1ZXJ5VHJhbnNmb3JtLmVycm9yKCkpOwogICAgICAgICBhY3Rpb24ucXVlcnlUcmFuc2Zv
cm0gPSAqcGFyc2VkUXVlcnlUcmFuc2Zvcm07CiAgICAgfSBlbHNlIHsKLSAgICAgICAgYXV0byBx
dWVyeSA9IHRyYW5zZm9ybS5nZXRTdHJpbmcoInF1ZXJ5Iik7CisgICAgICAgIGF1dG8gcXVlcnkg
PSB0cmFuc2Zvcm0uZ2V0U3RyaW5nKCJxdWVyeSJfcyk7CiAgICAgICAgIGlmICghcXVlcnkuaXNF
bXB0eSgpICYmICFxdWVyeS5zdGFydHNXaXRoKCc/JykpCiAgICAgICAgICAgICByZXR1cm4gbWFr
ZVVuZXhwZWN0ZWQoQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OUmVkaXJlY3RJbnZhbGlkUXVl
cnkpOwogICAgICAgICBhY3Rpb24ucXVlcnlUcmFuc2Zvcm0gPSBXVEZNb3ZlKHF1ZXJ5KTsKQEAg
LTY5OSw3ICs2OTksNyBAQCBhdXRvIFJlZGlyZWN0QWN0aW9uOjpVUkxUcmFuc2Zvcm1BY3Rpb246
OlF1ZXJ5VHJhbnNmb3JtOjpwYXJzZShjb25zdCBKU09OOjpPYmplYwogewogICAgIFF1ZXJ5VHJh
bnNmb3JtIHBhcnNlZFF1ZXJ5VHJhbnNmb3JtOwogCi0gICAgaWYgKGF1dG8gcmVtb3ZlUGFyYW1l
dGVyc1ZhbHVlID0gcXVlcnlUcmFuc2Zvcm0uZ2V0VmFsdWUoInJlbW92ZS1wYXJhbWV0ZXJzIikp
IHsKKyAgICBpZiAoYXV0byByZW1vdmVQYXJhbWV0ZXJzVmFsdWUgPSBxdWVyeVRyYW5zZm9ybS5n
ZXRWYWx1ZSgicmVtb3ZlLXBhcmFtZXRlcnMiX3MpKSB7CiAgICAgICAgIGF1dG8gcmVtb3ZlUGFy
YW1ldGVyc0FycmF5ID0gcmVtb3ZlUGFyYW1ldGVyc1ZhbHVlLT5hc0FycmF5KCk7CiAgICAgICAg
IGlmICghcmVtb3ZlUGFyYW1ldGVyc0FycmF5KQogICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4
cGVjdGVkKENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTlJlbW92ZVBhcmFtZXRlcnNOb3RTdHJp
bmdBcnJheSk7CkBAIC03MTMsNyArNzEzLDcgQEAgYXV0byBSZWRpcmVjdEFjdGlvbjo6VVJMVHJh
bnNmb3JtQWN0aW9uOjpRdWVyeVRyYW5zZm9ybTo6cGFyc2UoY29uc3QgSlNPTjo6T2JqZWMKICAg
ICAgICAgcGFyc2VkUXVlcnlUcmFuc2Zvcm0ucmVtb3ZlUGFyYW1zID0gV1RGTW92ZShyZW1vdmVQ
YXJhbWV0ZXJzVmVjdG9yKTsKICAgICB9CiAKLSAgICBpZiAoYXV0byBhZGRPclJlcGxhY2VQYXJh
bWV0ZXJzVmFsdWUgPSBxdWVyeVRyYW5zZm9ybS5nZXRWYWx1ZSgiYWRkLW9yLXJlcGxhY2UtcGFy
YW1ldGVycyIpKSB7CisgICAgaWYgKGF1dG8gYWRkT3JSZXBsYWNlUGFyYW1ldGVyc1ZhbHVlID0g
cXVlcnlUcmFuc2Zvcm0uZ2V0VmFsdWUoImFkZC1vci1yZXBsYWNlLXBhcmFtZXRlcnMiX3MpKSB7
CiAgICAgICAgIGF1dG8gYWRkT3JSZXBsYWNlUGFyYW1ldGVyc0FycmF5ID0gYWRkT3JSZXBsYWNl
UGFyYW1ldGVyc1ZhbHVlLT5hc0FycmF5KCk7CiAgICAgICAgIGlmICghYWRkT3JSZXBsYWNlUGFy
YW1ldGVyc0FycmF5KQogICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKENvbnRlbnRF
eHRlbnNpb25FcnJvcjo6SlNPTkFkZE9yUmVwbGFjZVBhcmFtZXRlcnNOb3RBcnJheSk7CkBAIC04
NTgsMTYgKzg1OCwxNiBAQCBhdXRvIFJlZGlyZWN0QWN0aW9uOjpVUkxUcmFuc2Zvcm1BY3Rpb246
OlF1ZXJ5VHJhbnNmb3JtOjpRdWVyeUtleVZhbHVlOjpwYXJzZShjbwogICAgIGlmICgha2V5VmFs
dWUpCiAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50RXh0ZW5zaW9uRXJyb3I6
OkpTT05BZGRPclJlcGxhY2VQYXJhbWV0ZXJzS2V5VmFsdWVOb3RBRGljdGlvbmFyeSk7CiAKLSAg
ICBTdHJpbmcga2V5ID0ga2V5VmFsdWUtPmdldFN0cmluZygia2V5Iik7CisgICAgU3RyaW5nIGtl
eSA9IGtleVZhbHVlLT5nZXRTdHJpbmcoImtleSJfcyk7CiAgICAgaWYgKCFrZXkpCiAgICAgICAg
IHJldHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05BZGRPclJl
cGxhY2VQYXJhbWV0ZXJzS2V5VmFsdWVNaXNzaW5nS2V5U3RyaW5nKTsKIAotICAgIFN0cmluZyB2
YWx1ZSA9IGtleVZhbHVlLT5nZXRTdHJpbmcoInZhbHVlIik7CisgICAgU3RyaW5nIHZhbHVlID0g
a2V5VmFsdWUtPmdldFN0cmluZygidmFsdWUiX3MpOwogICAgIGlmICghdmFsdWUpCiAgICAgICAg
IHJldHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05BZGRPclJl
cGxhY2VQYXJhbWV0ZXJzS2V5VmFsdWVNaXNzaW5nVmFsdWVTdHJpbmcpOwogCiAgICAgYm9vbCBy
ZXBsYWNlT25seSB7IGZhbHNlIH07Ci0gICAgaWYgKGF1dG8gYm9vbGVhbiA9IGtleVZhbHVlLT5n
ZXRCb29sZWFuKCJyZXBsYWNlLW9ubHkiKSkKKyAgICBpZiAoYXV0byBib29sZWFuID0ga2V5VmFs
dWUtPmdldEJvb2xlYW4oInJlcGxhY2Utb25seSJfcykpCiAgICAgICAgIHJlcGxhY2VPbmx5ID0g
KmJvb2xlYW47CiAKICAgICByZXR1cm4geyB7IFdURk1vdmUoa2V5KSwgcmVwbGFjZU9ubHksIFdU
Rk1vdmUodmFsdWUpIH0gfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRl
bnNpb25zL0NvbnRlbnRFeHRlbnNpb25Db21waWxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jb250
ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uQ29tcGlsZXIuY3BwCmluZGV4IGNmZWJmNWMz
MDc4YTk0MWQxOWM3OWEyOTJjNDcwYzllYmJmMjgyY2YuLmU4NzIxZDRhNzQ3OWVkNjgzMDE3ZjBh
NDg1ZTg0NmEzMjljOTBlMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRl
bnNpb25zL0NvbnRlbnRFeHRlbnNpb25Db21waWxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
Y29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkNvbXBpbGVyLmNwcApAQCAtMzE2LDcg
KzMxNiw3IEBAIHN0ZDo6ZXJyb3JfY29kZSBjb21waWxlUnVsZUxpc3QoQ29udGVudEV4dGVuc2lv
bkNvbXBpbGF0aW9uQ2xpZW50JiBjbGllbnQsIFN0cmluCiAgICAgICAgICAgICBzdGF0dXMgPSBV
UkxGaWx0ZXJQYXJzZXI6Ok9rOwogICAgICAgICB9CiAgICAgICAgIGlmIChzdGF0dXMgIT0gVVJM
RmlsdGVyUGFyc2VyOjpPaykgewotICAgICAgICAgICAgZGF0YUxvZ0YoIkVycm9yIHdoaWxlIHBh
cnNpbmcgJXM6ICVzXG4iLCB0cmlnZ2VyLnVybEZpbHRlci51dGY4KCkuZGF0YSgpLCBVUkxGaWx0
ZXJQYXJzZXI6OnN0YXR1c1N0cmluZyhzdGF0dXMpLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICAg
ICAgZGF0YUxvZ0YoIkVycm9yIHdoaWxlIHBhcnNpbmcgJXM6ICVzXG4iLCB0cmlnZ2VyLnVybEZp
bHRlci51dGY4KCkuZGF0YSgpLCBVUkxGaWx0ZXJQYXJzZXI6OnN0YXR1c1N0cmluZyhzdGF0dXMp
LmNoYXJhY3RlcnMoKSk7CiAgICAgICAgICAgICByZXR1cm4gQ29udGVudEV4dGVuc2lvbkVycm9y
OjpKU09OSW52YWxpZFJlZ2V4OwogICAgICAgICB9CiAKQEAgLTMzMyw3ICszMzMsNyBAQCBzdGQ6
OmVycm9yX2NvZGUgY29tcGlsZVJ1bGVMaXN0KENvbnRlbnRFeHRlbnNpb25Db21waWxhdGlvbkNs
aWVudCYgY2xpZW50LCBTdHJpbgogICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSBVUkxGaWx0
ZXJQYXJzZXI6Ok9rOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBpZiAoc3Rh
dHVzICE9IFVSTEZpbHRlclBhcnNlcjo6T2spIHsKLSAgICAgICAgICAgICAgICAgICAgZGF0YUxv
Z0YoIkVycm9yIHdoaWxlIHBhcnNpbmcgJXM6ICVzXG4iLCBjb25kaXRpb24udXRmOCgpLmRhdGEo
KSwgVVJMRmlsdGVyUGFyc2VyOjpzdGF0dXNTdHJpbmcoc3RhdHVzKS51dGY4KCkuZGF0YSgpKTsK
KyAgICAgICAgICAgICAgICAgICAgZGF0YUxvZ0YoIkVycm9yIHdoaWxlIHBhcnNpbmcgJXM6ICVz
XG4iLCBjb25kaXRpb24udXRmOCgpLmRhdGEoKSwgVVJMRmlsdGVyUGFyc2VyOjpzdGF0dXNTdHJp
bmcoc3RhdHVzKS5jaGFyYWN0ZXJzKCkpOwogICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ29u
dGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZFJlZ2V4OwogICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTM0NCw3ICszNDQsNyBAQCBzdGQ6OmVycm9yX2Nv
ZGUgY29tcGlsZVJ1bGVMaXN0KENvbnRlbnRFeHRlbnNpb25Db21waWxhdGlvbkNsaWVudCYgY2xp
ZW50LCBTdHJpbgogICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSBVUkxGaWx0ZXJQYXJzZXI6
Ok9rOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBpZiAoc3RhdHVzICE9IFVS
TEZpbHRlclBhcnNlcjo6T2spIHsKLSAgICAgICAgICAgICAgICAgICAgZGF0YUxvZ0YoIkVycm9y
IHdoaWxlIHBhcnNpbmcgJXM6ICVzXG4iLCBjb25kaXRpb24udXRmOCgpLmRhdGEoKSwgVVJMRmls
dGVyUGFyc2VyOjpzdGF0dXNTdHJpbmcoc3RhdHVzKS51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAg
ICAgICAgICAgICAgZGF0YUxvZ0YoIkVycm9yIHdoaWxlIHBhcnNpbmcgJXM6ICVzXG4iLCBjb25k
aXRpb24udXRmOCgpLmRhdGEoKSwgVVJMRmlsdGVyUGFyc2VyOjpzdGF0dXNTdHJpbmcoc3RhdHVz
KS5jaGFyYWN0ZXJzKCkpOwogICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ29udGVudEV4dGVu
c2lvbkVycm9yOjpKU09OSW52YWxpZFJlZ2V4OwogICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNp
b25zL0NvbnRlbnRFeHRlbnNpb25QYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4
dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvblBhcnNlci5jcHAKaW5kZXggNTEzZmQ5MzllNjZkYjVj
YTI1MTI5ZjU3NmI5ODJiNGY4Yzk4MjRlMS4uNzQ0MTY1ZjBiNTIwMTVjY2VmZDc3ZjY4N2NlNTNj
YzA1YzFiMTU2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMv
Q29udGVudEV4dGVuc2lvblBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4
dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvblBhcnNlci5jcHAKQEAgLTkzLDcgKzkzLDcgQEAgc3Rh
dGljIEV4cGVjdGVkPFZlY3RvcjxTdHJpbmc+LCBzdGQ6OmVycm9yX2NvZGU+IGdldERvbWFpbkxp
c3QoY29uc3QgSlNPTjo6QXJyYXkKICAgICAgICAgICAgIHsgJyQnLCAiXFwkIiB9CiAgICAgICAg
IH0gfTsKICAgICAgICAgZm9yIChhdXRvJiBwYWlyIDogZXNjYXBlVGFibGUpCi0gICAgICAgICAg
ICBkb21haW4gPSBkb21haW4ucmVwbGFjZShwYWlyLmZpcnN0LCBwYWlyLnNlY29uZCk7CisgICAg
ICAgICAgICBkb21haW4gPSBkb21haW4ucmVwbGFjZShwYWlyLmZpcnN0LCBTdHJpbmcgeyBwYWly
LnNlY29uZCB9KTsKIAogICAgICAgICBjb25zdCBjaGFyKiBwcm90b2NvbFJlZ2V4ID0gIlthLXpd
W2EteisuLV0qOlxcL1xcLyI7CiAgICAgICAgIGNvbnN0IGNoYXIqIGFsbG93U3ViZG9tYWluc1Jl
Z2V4ID0gIiguKlxcLikqIjsKQEAgLTExOSwyNyArMTE5LDI3IEBAIHN0YXRpYyBzdGQ6OmVycm9y
X2NvZGUgZ2V0VHlwZUZsYWdzKGNvbnN0IEpTT046OkFycmF5JiBhcnJheSwgUmVzb3VyY2VGbGFn
cyYgZmxhCiAgICAgCiBzdGF0aWMgRXhwZWN0ZWQ8VHJpZ2dlciwgc3RkOjplcnJvcl9jb2RlPiBs
b2FkVHJpZ2dlcihjb25zdCBKU09OOjpPYmplY3QmIHJ1bGVPYmplY3QpCiB7Ci0gICAgYXV0byB0
cmlnZ2VyT2JqZWN0ID0gcnVsZU9iamVjdC5nZXRPYmplY3QoInRyaWdnZXIiKTsKKyAgICBhdXRv
IHRyaWdnZXJPYmplY3QgPSBydWxlT2JqZWN0LmdldE9iamVjdCgidHJpZ2dlciJfcyk7CiAgICAg
aWYgKCF0cmlnZ2VyT2JqZWN0KQogICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoQ29udGVu
dEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZFRyaWdnZXIpOwogCi0gICAgU3RyaW5nIHVybEZp
bHRlciA9IHRyaWdnZXJPYmplY3QtPmdldFN0cmluZygidXJsLWZpbHRlciIpOworICAgIFN0cmlu
ZyB1cmxGaWx0ZXIgPSB0cmlnZ2VyT2JqZWN0LT5nZXRTdHJpbmcoInVybC1maWx0ZXIiX3MpOwog
ICAgIGlmICh1cmxGaWx0ZXIuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0
ZWQoQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZFVSTEZpbHRlckluVHJpZ2dlcik7
CiAKICAgICBUcmlnZ2VyIHRyaWdnZXI7CiAgICAgdHJpZ2dlci51cmxGaWx0ZXIgPSB1cmxGaWx0
ZXI7CiAKLSAgICBpZiAoc3RkOjpvcHRpb25hbDxib29sPiB1cmxGaWx0ZXJDYXNlU2Vuc2l0aXZl
VmFsdWUgPSB0cmlnZ2VyT2JqZWN0LT5nZXRCb29sZWFuKCJ1cmwtZmlsdGVyLWlzLWNhc2Utc2Vu
c2l0aXZlIikpCisgICAgaWYgKHN0ZDo6b3B0aW9uYWw8Ym9vbD4gdXJsRmlsdGVyQ2FzZVNlbnNp
dGl2ZVZhbHVlID0gdHJpZ2dlck9iamVjdC0+Z2V0Qm9vbGVhbigidXJsLWZpbHRlci1pcy1jYXNl
LXNlbnNpdGl2ZSJfcykpCiAgICAgICAgIHRyaWdnZXIudXJsRmlsdGVySXNDYXNlU2Vuc2l0aXZl
ID0gKnVybEZpbHRlckNhc2VTZW5zaXRpdmVWYWx1ZTsKIAotICAgIGlmIChzdGQ6Om9wdGlvbmFs
PGJvb2w+IHRvcFVSTEZpbHRlckNhc2VTZW5zaXRpdmVWYWx1ZSA9IHRyaWdnZXJPYmplY3QtPmdl
dEJvb2xlYW4oInRvcC11cmwtZmlsdGVyLWlzLWNhc2Utc2Vuc2l0aXZlIikpCisgICAgaWYgKHN0
ZDo6b3B0aW9uYWw8Ym9vbD4gdG9wVVJMRmlsdGVyQ2FzZVNlbnNpdGl2ZVZhbHVlID0gdHJpZ2dl
ck9iamVjdC0+Z2V0Qm9vbGVhbigidG9wLXVybC1maWx0ZXItaXMtY2FzZS1zZW5zaXRpdmUiX3Mp
KQogICAgICAgICB0cmlnZ2VyLnRvcFVSTEZpbHRlcklzQ2FzZVNlbnNpdGl2ZSA9ICp0b3BVUkxG
aWx0ZXJDYXNlU2Vuc2l0aXZlVmFsdWU7CiAKLSAgICBpZiAoc3RkOjpvcHRpb25hbDxib29sPiBm
cmFtZVVSTEZpbHRlckNhc2VTZW5zaXRpdmVWYWx1ZSA9IHRyaWdnZXJPYmplY3QtPmdldEJvb2xl
YW4oImZyYW1lLXVybC1maWx0ZXItaXMtY2FzZS1zZW5zaXRpdmUiKSkKKyAgICBpZiAoc3RkOjpv
cHRpb25hbDxib29sPiBmcmFtZVVSTEZpbHRlckNhc2VTZW5zaXRpdmVWYWx1ZSA9IHRyaWdnZXJP
YmplY3QtPmdldEJvb2xlYW4oImZyYW1lLXVybC1maWx0ZXItaXMtY2FzZS1zZW5zaXRpdmUiX3Mp
KQogICAgICAgICB0cmlnZ2VyLmZyYW1lVVJMRmlsdGVySXNDYXNlU2Vuc2l0aXZlID0gKmZyYW1l
VVJMRmlsdGVyQ2FzZVNlbnNpdGl2ZVZhbHVlOwogCi0gICAgaWYgKGF1dG8gcmVzb3VyY2VUeXBl
VmFsdWUgPSB0cmlnZ2VyT2JqZWN0LT5nZXRWYWx1ZSgicmVzb3VyY2UtdHlwZSIpKSB7CisgICAg
aWYgKGF1dG8gcmVzb3VyY2VUeXBlVmFsdWUgPSB0cmlnZ2VyT2JqZWN0LT5nZXRWYWx1ZSgicmVz
b3VyY2UtdHlwZSJfcykpIHsKICAgICAgICAgYXV0byByZXNvdXJjZVR5cGVBcnJheSA9IHJlc291
cmNlVHlwZVZhbHVlLT5hc0FycmF5KCk7CiAgICAgICAgIGlmICghcmVzb3VyY2VUeXBlQXJyYXkp
CiAgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoQ29udGVudEV4dGVuc2lvbkVycm9y
OjpKU09OSW52YWxpZFRyaWdnZXJGbGFnc0FycmF5KTsKQEAgLTE0Nyw3ICsxNDcsNyBAQCBzdGF0
aWMgRXhwZWN0ZWQ8VHJpZ2dlciwgc3RkOjplcnJvcl9jb2RlPiBsb2FkVHJpZ2dlcihjb25zdCBK
U09OOjpPYmplY3QmIHJ1bGVPYgogICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKGVy
cm9yKTsKICAgICB9CiAKLSAgICBpZiAoYXV0byBsb2FkVHlwZVZhbHVlID0gdHJpZ2dlck9iamVj
dC0+Z2V0VmFsdWUoImxvYWQtdHlwZSIpKSB7CisgICAgaWYgKGF1dG8gbG9hZFR5cGVWYWx1ZSA9
IHRyaWdnZXJPYmplY3QtPmdldFZhbHVlKCJsb2FkLXR5cGUiX3MpKSB7CiAgICAgICAgIGF1dG8g
bG9hZFR5cGVBcnJheSA9IGxvYWRUeXBlVmFsdWUtPmFzQXJyYXkoKTsKICAgICAgICAgaWYgKCFs
b2FkVHlwZUFycmF5KQogICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKENvbnRlbnRF
eHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWRUcmlnZ2VyRmxhZ3NBcnJheSk7CkBAIC0xNTUsNyAr
MTU1LDcgQEAgc3RhdGljIEV4cGVjdGVkPFRyaWdnZXIsIHN0ZDo6ZXJyb3JfY29kZT4gbG9hZFRy
aWdnZXIoY29uc3QgSlNPTjo6T2JqZWN0JiBydWxlT2IKICAgICAgICAgICAgIHJldHVybiBtYWtl
VW5leHBlY3RlZChlcnJvcik7CiAgICAgfQogCi0gICAgaWYgKGF1dG8gbG9hZENvbnRleHRWYWx1
ZSA9IHRyaWdnZXJPYmplY3QtPmdldFZhbHVlKCJsb2FkLWNvbnRleHQiKSkgeworICAgIGlmIChh
dXRvIGxvYWRDb250ZXh0VmFsdWUgPSB0cmlnZ2VyT2JqZWN0LT5nZXRWYWx1ZSgibG9hZC1jb250
ZXh0Il9zKSkgewogICAgICAgICBhdXRvIGxvYWRDb250ZXh0QXJyYXkgPSBsb2FkQ29udGV4dFZh
bHVlLT5hc0FycmF5KCk7CiAgICAgICAgIGlmICghbG9hZENvbnRleHRBcnJheSkKICAgICAgICAg
ICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZh
bGlkVHJpZ2dlckZsYWdzQXJyYXkpOwpAQCAtMjEyLDExICsyMTIsMTEgQEAgYm9vbCBpc1ZhbGlk
Q1NTU2VsZWN0b3IoY29uc3QgU3RyaW5nJiBzZWxlY3RvcikKIAogc3RhdGljIHN0ZDo6b3B0aW9u
YWw8RXhwZWN0ZWQ8QWN0aW9uLCBzdGQ6OmVycm9yX2NvZGU+PiBsb2FkQWN0aW9uKGNvbnN0IEpT
T046Ok9iamVjdCYgcnVsZU9iamVjdCwgY29uc3QgU3RyaW5nJiB1cmxGaWx0ZXIpCiB7Ci0gICAg
YXV0byBhY3Rpb25PYmplY3QgPSBydWxlT2JqZWN0LmdldE9iamVjdCgiYWN0aW9uIik7CisgICAg
YXV0byBhY3Rpb25PYmplY3QgPSBydWxlT2JqZWN0LmdldE9iamVjdCgiYWN0aW9uIl9zKTsKICAg
ICBpZiAoIWFjdGlvbk9iamVjdCkKICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKENvbnRl
bnRFeHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWRBY3Rpb24pOwogCi0gICAgU3RyaW5nIGFjdGlv
blR5cGUgPSBhY3Rpb25PYmplY3QtPmdldFN0cmluZygidHlwZSIpOworICAgIFN0cmluZyBhY3Rp
b25UeXBlID0gYWN0aW9uT2JqZWN0LT5nZXRTdHJpbmcoInR5cGUiX3MpOwogCiAgICAgaWYgKGFj
dGlvblR5cGUgPT0gImJsb2NrIikKICAgICAgICAgcmV0dXJuIEFjdGlvbiB7IEJsb2NrTG9hZEFj
dGlvbigpIH07CkBAIC0yMjUsNyArMjI1LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8RXhwZWN0
ZWQ8QWN0aW9uLCBzdGQ6OmVycm9yX2NvZGU+PiBsb2FkQWN0aW9uKGNvbnN0IEpTT046Ok8KICAg
ICBpZiAoYWN0aW9uVHlwZSA9PSAiYmxvY2stY29va2llcyIpCiAgICAgICAgIHJldHVybiBBY3Rp
b24geyBCbG9ja0Nvb2tpZXNBY3Rpb24oKSB9OwogICAgIGlmIChhY3Rpb25UeXBlID09ICJjc3Mt
ZGlzcGxheS1ub25lIikgewotICAgICAgICBTdHJpbmcgc2VsZWN0b3JTdHJpbmcgPSBhY3Rpb25P
YmplY3QtPmdldFN0cmluZygic2VsZWN0b3IiKTsKKyAgICAgICAgU3RyaW5nIHNlbGVjdG9yU3Ry
aW5nID0gYWN0aW9uT2JqZWN0LT5nZXRTdHJpbmcoInNlbGVjdG9yIl9zKTsKICAgICAgICAgaWYg
KCFzZWxlY3RvclN0cmluZykKICAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChDb250
ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkQ1NTRGlzcGxheU5vbmVBY3Rpb25UeXBlKTsK
ICAgICAgICAgaWYgKCFpc1ZhbGlkQ1NTU2VsZWN0b3Ioc2VsZWN0b3JTdHJpbmcpKQpAQCAtMjM1
LDcgKzIzNSw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEV4cGVjdGVkPEFjdGlvbiwgc3RkOjpl
cnJvcl9jb2RlPj4gbG9hZEFjdGlvbihjb25zdCBKU09OOjpPCiAgICAgaWYgKGFjdGlvblR5cGUg
PT0gIm1ha2UtaHR0cHMiKQogICAgICAgICByZXR1cm4gQWN0aW9uIHsgTWFrZUhUVFBTQWN0aW9u
KCkgfTsKICAgICBpZiAoYWN0aW9uVHlwZSA9PSAibm90aWZ5IikgewotICAgICAgICBTdHJpbmcg
bm90aWZpY2F0aW9uID0gYWN0aW9uT2JqZWN0LT5nZXRTdHJpbmcoIm5vdGlmaWNhdGlvbiIpOwor
ICAgICAgICBTdHJpbmcgbm90aWZpY2F0aW9uID0gYWN0aW9uT2JqZWN0LT5nZXRTdHJpbmcoIm5v
dGlmaWNhdGlvbiJfcyk7CiAgICAgICAgIGlmICghbm90aWZpY2F0aW9uKQogICAgICAgICAgICAg
cmV0dXJuIG1ha2VVbmV4cGVjdGVkKENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWRO
b3RpZmljYXRpb24pOwogICAgICAgICByZXR1cm4gQWN0aW9uIHsgTm90aWZ5QWN0aW9uIHsgeyBX
VEZNb3ZlKG5vdGlmaWNhdGlvbikgfSB9IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
b250ZW50ZXh0ZW5zaW9ucy9TZXJpYWxpemVkTkZBLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NvbnRl
bnRleHRlbnNpb25zL1NlcmlhbGl6ZWRORkEuY3BwCmluZGV4IDA0YzZkYTVhODQ4ZDA4OTFmMzNm
NGY4MzlkYTk1MmI4Yzc2NzlhMDkuLjA1MmI1OTdiY2ZiOTJhNzQzNzkzZjkxNWVkNjk2ZTdhMGU5
ZTQ4ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL1Nlcmlh
bGl6ZWRORkEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL1Nlcmlh
bGl6ZWRORkEuY3BwCkBAIC01Miw3ICs1Miw3IEBAIGJvb2wgd3JpdGVBbGxUb0ZpbGUoRmlsZVN5
c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlIGZpbGUsIGNvbnN0IFQmIGNvbnRhaW5lcikKIHN0ZDo6
b3B0aW9uYWw8U2VyaWFsaXplZE5GQT4gU2VyaWFsaXplZE5GQTo6c2VyaWFsaXplKE5GQSYmIG5m
YSkKIHsKICAgICBhdXRvIGZpbGUgPSBGaWxlU3lzdGVtOjppbnZhbGlkUGxhdGZvcm1GaWxlSGFu
ZGxlOwotICAgIGF1dG8gZmlsZW5hbWUgPSBGaWxlU3lzdGVtOjpvcGVuVGVtcG9yYXJ5RmlsZSgi
U2VyaWFsaXplZE5GQSIsIGZpbGUpOworICAgIGF1dG8gZmlsZW5hbWUgPSBGaWxlU3lzdGVtOjpv
cGVuVGVtcG9yYXJ5RmlsZSgiU2VyaWFsaXplZE5GQSJfcywgZmlsZSk7CiAgICAgaWYgKCFGaWxl
U3lzdGVtOjppc0hhbmRsZVZhbGlkKGZpbGUpKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9VUkxGaWx0
ZXJQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvVVJMRmlsdGVy
UGFyc2VyLmNwcAppbmRleCBkODcyOWQzOTBkOTA3MzBhMGViN2RiM2E4YzlmMTcxOGM4NmY3YTNh
Li40ZmYxMjI1ZmFhODIyODViMzFjZWQ1NzU5ZGI4OTc3NjkxODllNzRhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9VUkxGaWx0ZXJQYXJzZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL1VSTEZpbHRlclBhcnNlci5jcHAKQEAg
LTM2OSwzOSArMzY5LDM5IEBAIFVSTEZpbHRlclBhcnNlcjo6UGFyc2VTdGF0dXMgVVJMRmlsdGVy
UGFyc2VyOjphZGRQYXR0ZXJuKGNvbnN0IFN0cmluZyYgcGF0dGVybiwKICAgICByZXR1cm4gc3Rh
dHVzOwogfQogCi1TdHJpbmcgVVJMRmlsdGVyUGFyc2VyOjpzdGF0dXNTdHJpbmcoUGFyc2VTdGF0
dXMgc3RhdHVzKQorQVNDSUlMaXRlcmFsIFVSTEZpbHRlclBhcnNlcjo6c3RhdHVzU3RyaW5nKFBh
cnNlU3RhdHVzIHN0YXR1cykKIHsKICAgICBzd2l0Y2ggKHN0YXR1cykgewogICAgIGNhc2UgT2s6
Ci0gICAgICAgIHJldHVybiAiT2siOworICAgICAgICByZXR1cm4gIk9rIl9zOwogICAgIGNhc2Ug
TWF0Y2hlc0V2ZXJ5dGhpbmc6Ci0gICAgICAgIHJldHVybiAiTWF0Y2hlcyBldmVyeXRoaW5nLiI7
CisgICAgICAgIHJldHVybiAiTWF0Y2hlcyBldmVyeXRoaW5nLiJfczsKICAgICBjYXNlIE5vbkFT
Q0lJOgotICAgICAgICByZXR1cm4gIk9ubHkgQVNDSUkgY2hhcmFjdGVycyBhcmUgc3VwcG9ydGVk
IGluIHBhdHRlcm4uIjsKKyAgICAgICAgcmV0dXJuICJPbmx5IEFTQ0lJIGNoYXJhY3RlcnMgYXJl
IHN1cHBvcnRlZCBpbiBwYXR0ZXJuLiJfczsKICAgICBjYXNlIFVuc3VwcG9ydGVkQ2hhcmFjdGVy
Q2xhc3M6Ci0gICAgICAgIHJldHVybiAiQ2hhcmFjdGVyIGNsYXNzIGlzIG5vdCBzdXBwb3J0ZWQu
IjsKKyAgICAgICAgcmV0dXJuICJDaGFyYWN0ZXIgY2xhc3MgaXMgbm90IHN1cHBvcnRlZC4iX3M7
CiAgICAgY2FzZSBCYWNrUmVmZXJlbmNlOgotICAgICAgICByZXR1cm4gIlBhdHRlcm5zIGNhbm5v
dCBjb250YWluIGJhY2tyZWZlcmVuY2VzLiI7CisgICAgICAgIHJldHVybiAiUGF0dGVybnMgY2Fu
bm90IGNvbnRhaW4gYmFja3JlZmVyZW5jZXMuIl9zOwogICAgIGNhc2UgRm9yd2FyZFJlZmVyZW5j
ZToKLSAgICAgICAgcmV0dXJuICJQYXR0ZXJucyBjYW5ub3QgY29udGFpbiBmb3J3YXJkIHJlZmVy
ZW5jZXMuIjsKKyAgICAgICAgcmV0dXJuICJQYXR0ZXJucyBjYW5ub3QgY29udGFpbiBmb3J3YXJk
IHJlZmVyZW5jZXMuIl9zOwogICAgIGNhc2UgTWlzcGxhY2VkU3RhcnRPZkxpbmU6Ci0gICAgICAg
IHJldHVybiAiU3RhcnQgb2YgbGluZSBhc3NlcnRpb24gY2FuIG9ubHkgYXBwZWFyIGFzIHRoZSBm
aXJzdCB0ZXJtIGluIGEgZmlsdGVyLiI7CisgICAgICAgIHJldHVybiAiU3RhcnQgb2YgbGluZSBh
c3NlcnRpb24gY2FuIG9ubHkgYXBwZWFyIGFzIHRoZSBmaXJzdCB0ZXJtIGluIGEgZmlsdGVyLiJf
czsKICAgICBjYXNlIFdvcmRCb3VuZGFyeToKLSAgICAgICAgcmV0dXJuICJXb3JkIGJvdW5kYXJp
ZXMgYXNzZXJ0aW9ucyBhcmUgbm90IHN1cHBvcnRlZCB5ZXQuIjsKKyAgICAgICAgcmV0dXJuICJX
b3JkIGJvdW5kYXJpZXMgYXNzZXJ0aW9ucyBhcmUgbm90IHN1cHBvcnRlZCB5ZXQuIl9zOwogICAg
IGNhc2UgQXRvbUNoYXJhY3RlcjoKLSAgICAgICAgcmV0dXJuICJCdWlsdGlucyBjaGFyYWN0ZXIg
Y2xhc3MgYXRvbXMgYXJlIG5vdCBzdXBwb3J0ZWQgeWV0LiI7CisgICAgICAgIHJldHVybiAiQnVp
bHRpbnMgY2hhcmFjdGVyIGNsYXNzIGF0b21zIGFyZSBub3Qgc3VwcG9ydGVkIHlldC4iX3M7CiAg
ICAgY2FzZSBHcm91cDoKLSAgICAgICAgcmV0dXJuICJHcm91cHMgYXJlIG5vdCBzdXBwb3J0ZWQg
eWV0LiI7CisgICAgICAgIHJldHVybiAiR3JvdXBzIGFyZSBub3Qgc3VwcG9ydGVkIHlldC4iX3M7
CiAgICAgY2FzZSBEaXNqdW5jdGlvbjoKLSAgICAgICAgcmV0dXJuICJEaXNqdW5jdGlvbnMgYXJl
IG5vdCBzdXBwb3J0ZWQgeWV0LiI7CisgICAgICAgIHJldHVybiAiRGlzanVuY3Rpb25zIGFyZSBu
b3Qgc3VwcG9ydGVkIHlldC4iX3M7CiAgICAgY2FzZSBNaXNwbGFjZWRFbmRPZkxpbmU6Ci0gICAg
ICAgIHJldHVybiAiVGhlIGVuZCBvZiBsaW5lIGFzc2VydGlvbiBtdXN0IGJlIHRoZSBsYXN0IHRl
cm0gaW4gYW4gZXhwcmVzc2lvbi4iOworICAgICAgICByZXR1cm4gIlRoZSBlbmQgb2YgbGluZSBh
c3NlcnRpb24gbXVzdCBiZSB0aGUgbGFzdCB0ZXJtIGluIGFuIGV4cHJlc3Npb24uIl9zOwogICAg
IGNhc2UgRW1wdHlQYXR0ZXJuOgotICAgICAgICByZXR1cm4gIkVtcHR5IHBhdHRlcm4uIjsKKyAg
ICAgICAgcmV0dXJuICJFbXB0eSBwYXR0ZXJuLiJfczsKICAgICBjYXNlIFlhcnJFcnJvcjoKLSAg
ICAgICAgcmV0dXJuICJJbnRlcm5hbCBlcnJvciBpbiBZQVJSLiI7CisgICAgICAgIHJldHVybiAi
SW50ZXJuYWwgZXJyb3IgaW4gWUFSUi4iX3M7CiAgICAgY2FzZSBJbnZhbGlkUXVhbnRpZmllcjoK
LSAgICAgICAgcmV0dXJuICJBcmJpdHJhcnkgYXRvbSByZXBldGl0aW9ucyBhcmUgbm90IHN1cHBv
cnRlZC4iOworICAgICAgICByZXR1cm4gIkFyYml0cmFyeSBhdG9tIHJlcGV0aXRpb25zIGFyZSBu
b3Qgc3VwcG9ydGVkLiJfczsKICAgICB9CiAKICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hF
RCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvVVJMRmls
dGVyUGFyc2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9VUkxGaWx0ZXJQ
YXJzZXIuaAppbmRleCBiNWMxZjZkOWZkMmU3Yzk0Y2IyNTY1NzU2ODlkZjRiNzA3MDc5YTlkLi44
ODk4M2I1NWMzY2JlZDU5ZjRhNGEwMWFlZDI1YTQzMmM4MDI4YjQxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9VUkxGaWx0ZXJQYXJzZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9VUkxGaWx0ZXJQYXJzZXIuaApAQCAtNTQsNyAr
NTQsNyBAQCBwdWJsaWM6CiAgICAgICAgIFlhcnJFcnJvciwKICAgICAgICAgSW52YWxpZFF1YW50
aWZpZXIsCiAgICAgfTsKLSAgICBzdGF0aWMgU3RyaW5nIHN0YXR1c1N0cmluZyhQYXJzZVN0YXR1
cyk7CisgICAgc3RhdGljIEFTQ0lJTGl0ZXJhbCBzdGF0dXNTdHJpbmcoUGFyc2VTdGF0dXMpOwog
ICAgIGV4cGxpY2l0IFVSTEZpbHRlclBhcnNlcihDb21iaW5lZFVSTEZpbHRlcnMmKTsKICAgICB+
VVJMRmlsdGVyUGFyc2VyKCk7CiAgICAgUGFyc2VTdGF0dXMgYWRkUGF0dGVybihjb25zdCBTdHJp
bmcmIHBhdHRlcm4sIGJvb2wgcGF0dGVybklzQ2FzZVNlbnNpdGl2ZSwgdWludDY0X3QgcGF0dGVy
bklkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9TdWJ0bGVDcnlwdG8uY3Bw
IGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL1N1YnRsZUNyeXB0by5jcHAKaW5kZXggZWFhMzIxOGZj
ZjdiNzc4NTRmYjIzODVlNTAxYTk5OTQzNmZiZWI1OC4uOWQ2ZjQzMDM2NTk4MmQ2ZTk1MGU5YzFh
NmExZDZiMmMxYTdkMzk2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL1N1YnRs
ZUNyeXB0by5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL1N1YnRsZUNyeXB0by5jcHAK
QEAgLTUzNCw3ICs1MzQsNyBAQCB2b2lkIFN1YnRsZUNyeXB0bzo6YWRkQXV0aGVudGljYXRlZEVu
Y3J5cHRpb25XYXJuaW5nSWZOZWNlc3NhcnkoQ3J5cHRvQWxnb3JpdGhtSQogewogICAgIGlmIChh
bGdvcml0aG1JZGVudGlmaWVyID09IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkFFU19DQkMg
fHwgYWxnb3JpdGhtSWRlbnRpZmllciA9PSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpBRVNf
Q1RSKSB7CiAgICAgICAgIGlmICghc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5oYXNMb2dnZWRB
dXRoZW50aWNhdGVkRW5jcnlwdGlvbldhcm5pbmcoKSkgewotICAgICAgICAgICAgc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpLT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpTZWN1cml0
eSwgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCAiQUVTLUNCQyBhbmQgQUVTLUNUUiBkbyBub3QgcHJv
dmlkZSBhdXRoZW50aWNhdGlvbiBieSBkZWZhdWx0LCBhbmQgaW1wbGVtZW50aW5nIGl0IG1hbnVh
bGx5IGNhbiByZXN1bHQgaW4gbWlub3IsIGJ1dCBzZXJpb3VzIG1pc3Rha2VzLiBXZSByZWNvbW1l
bmRlZCB1c2luZyBhdXRoZW50aWNhdGVkIGVuY3J5cHRpb24gbGlrZSBBRVMtR0NNIHRvIHByb3Rl
Y3QgYWdhaW5zdCBjaG9zZW4tY2lwaGVydGV4dCBhdHRhY2tzLiIpOworICAgICAgICAgICAgc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpLT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpT
ZWN1cml0eSwgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCAiQUVTLUNCQyBhbmQgQUVTLUNUUiBkbyBu
b3QgcHJvdmlkZSBhdXRoZW50aWNhdGlvbiBieSBkZWZhdWx0LCBhbmQgaW1wbGVtZW50aW5nIGl0
IG1hbnVhbGx5IGNhbiByZXN1bHQgaW4gbWlub3IsIGJ1dCBzZXJpb3VzIG1pc3Rha2VzLiBXZSBy
ZWNvbW1lbmRlZCB1c2luZyBhdXRoZW50aWNhdGVkIGVuY3J5cHRpb24gbGlrZSBBRVMtR0NNIHRv
IHByb3RlY3QgYWdhaW5zdCBjaG9zZW4tY2lwaGVydGV4dCBhdHRhY2tzLiJfcyk7CiAgICAgICAg
ICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnNldEhhc0xvZ2dlZEF1dGhlbnRpY2F0ZWRF
bmNyeXB0aW9uV2FybmluZyh0cnVlKTsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DQkMuaCBi
L1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DQkMu
aAppbmRleCAyNzMyOTg1Yjc3ZmVkZmMzOTY3NGQ0NzQ5ZDg5NTUwYTBhMTcxYzI2Li5iNzQ0M2E3
MzM5ODQyMDg4ZjgzY2NjNmYzNWNhMjk3NzE2MDhjY2ZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfQ0JDLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQy5oCkBA
IC00MSw3ICs0MSw3IEBAIHB1YmxpYzoKICAgICAgICAgTm8KICAgICB9OwogCi0gICAgc3RhdGlj
IGNvbnN0ZXhwciBjb25zdCBjaGFyKiBzX25hbWUgPSAiQUVTLUNCQyI7CisgICAgc3RhdGljIGNv
bnN0ZXhwciBBU0NJSUxpdGVyYWwgc19uYW1lID0gIkFFUy1DQkMiX3M7CiAgICAgc3RhdGljIGNv
bnN0ZXhwciBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIHNfaWRlbnRpZmllciA9IENyeXB0b0Fs
Z29yaXRobUlkZW50aWZpZXI6OkFFU19DQkM7CiAgICAgc3RhdGljIFJlZjxDcnlwdG9BbGdvcml0
aG0+IGNyZWF0ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3Jp
dGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfQ0ZCLmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxn
b3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfQ0ZCLmgKaW5kZXggYzIyNzQxOTFmNjM1YjgzM2E0
OTFlODJjYjFkZTdkYTgxMDNjNmQ5YS4uNTA4YTIwMzM2NGFjYmFjZmMwZmZjODU3Mjc1Mjc5ZWY1
NDZjZmM4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5
cHRvQWxnb3JpdGhtQUVTX0NGQi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0
aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DRkIuaApAQCAtMzYsNyArMzYsNyBAQCBjbGFzcyBDcnlw
dG9LZXlBRVM7CiAKIGNsYXNzIENyeXB0b0FsZ29yaXRobUFFU19DRkIgZmluYWwgOiBwdWJsaWMg
Q3J5cHRvQWxnb3JpdGhtIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3RleHByIGNvbnN0IGNo
YXIqIHNfbmFtZSA9ICJBRVMtQ0ZCLTgiOworICAgIHN0YXRpYyBjb25zdGV4cHIgQVNDSUlMaXRl
cmFsIHNfbmFtZSA9ICJBRVMtQ0ZCLTgiX3M7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBDcnlwdG9B
bGdvcml0aG1JZGVudGlmaWVyIHNfaWRlbnRpZmllciA9IENyeXB0b0FsZ29yaXRobUlkZW50aWZp
ZXI6OkFFU19DRkI7CiAgICAgc3RhdGljIFJlZjxDcnlwdG9BbGdvcml0aG0+IGNyZWF0ZSgpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdv
cml0aG1BRVNfQ1RSLmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9B
bGdvcml0aG1BRVNfQ1RSLmgKaW5kZXggNzE4ZjZlMGUzMzg2ZTZmZTYyNTM5NWFmYmI3OWFkMzBj
NGZhNDE0YS4uOGJkMzkzMzlkYzM2MDBmNmM0ODZlYTYxMGMxYjgyNDZiOGMyMjcwMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVT
X0NUUi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29y
aXRobUFFU19DVFIuaApAQCAtNjQsNyArNjQsNyBAQCBwdWJsaWM6CiAgICAgICAgIGNvbnN0IHNp
emVfdCBtX2NvdW50ZXJMZW5ndGg7CiAgICAgfTsKIAotICAgIHN0YXRpYyBjb25zdGV4cHIgY29u
c3QgY2hhciogc19uYW1lID0gIkFFUy1DVFIiOworICAgIHN0YXRpYyBjb25zdGV4cHIgQVNDSUlM
aXRlcmFsIHNfbmFtZSA9ICJBRVMtQ1RSIl9zOwogICAgIHN0YXRpYyBjb25zdGV4cHIgQ3J5cHRv
QWxnb3JpdGhtSWRlbnRpZmllciBzX2lkZW50aWZpZXIgPSBDcnlwdG9BbGdvcml0aG1JZGVudGlm
aWVyOjpBRVNfQ1RSOwogICAgIHN0YXRpYyBSZWY8Q3J5cHRvQWxnb3JpdGhtPiBjcmVhdGUoKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxn
b3JpdGhtQUVTX0dDTS5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRv
QWxnb3JpdGhtQUVTX0dDTS5oCmluZGV4IGQwYWQxZjEzYzE3OGI1Y2M5YjE3NmViMzBlNmNlYzJh
MWJjYjQ2NTguLjUzMzEwZTExMTA3NWUxNjM0ZWYzZTA1N2I0YWRmNmExM2M2OTIzMWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFF
U19HQ00uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdv
cml0aG1BRVNfR0NNLmgKQEAgLTM2LDcgKzM2LDcgQEAgY2xhc3MgQ3J5cHRvS2V5QUVTOwogCiBj
bGFzcyBDcnlwdG9BbGdvcml0aG1BRVNfR0NNIGZpbmFsIDogcHVibGljIENyeXB0b0FsZ29yaXRo
bSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBjb25zdCBjaGFyKiBzX25hbWUgPSAi
QUVTLUdDTSI7CisgICAgc3RhdGljIGNvbnN0ZXhwciBBU0NJSUxpdGVyYWwgc19uYW1lID0gIkFF
Uy1HQ00iX3M7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVy
IHNfaWRlbnRpZmllciA9IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkFFU19HQ007CiAgICAg
c3RhdGljIFJlZjxDcnlwdG9BbGdvcml0aG0+IGNyZWF0ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfS1cuaCBiL1Nv
dXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19LVy5oCmlu
ZGV4IDU3ZTY5YzE1YzEyYzdlZTE4ZWI3NjUxOGRmZjg3YmY0YjU3MjRiOTkuLmEwOGRlYzNmMjZj
YmI1OTkxNTRhMjM1NjU5MGVmMGZkMTc3YzYzZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19LVy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19LVy5oCkBAIC0zNSw3
ICszNSw3IEBAIGNsYXNzIENyeXB0b0tleUFFUzsKIAogY2xhc3MgQ3J5cHRvQWxnb3JpdGhtQUVT
X0tXIGZpbmFsIDogcHVibGljIENyeXB0b0FsZ29yaXRobSB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IGNvbnN0ZXhwciBjb25zdCBjaGFyKiBzX25hbWUgPSAiQUVTLUtXIjsKKyAgICBzdGF0aWMgY29u
c3RleHByIEFTQ0lJTGl0ZXJhbCBzX25hbWUgPSAiQUVTLUtXIl9zOwogICAgIHN0YXRpYyBjb25z
dGV4cHIgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBzX2lkZW50aWZpZXIgPSBDcnlwdG9BbGdv
cml0aG1JZGVudGlmaWVyOjpBRVNfS1c7CiAgICAgc3RhdGljIFJlZjxDcnlwdG9BbGdvcml0aG0+
IGNyZWF0ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGht
cy9DcnlwdG9BbGdvcml0aG1FQ0RILmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGht
cy9DcnlwdG9BbGdvcml0aG1FQ0RILmgKaW5kZXggOTNhMTVhMmRhMzUxZGNlNzI3NDMzODE5N2Qy
NjYzMTA1ODVmN2JmNS4uMzJkNTU0NTZjOTcwODI1Y2NlNTUyZDdkZTA0M2E0Mjk1MGQwZTIzYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3Jp
dGhtRUNESC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0Fs
Z29yaXRobUVDREguaApAQCAtMzUsNyArMzUsNyBAQCBjbGFzcyBDcnlwdG9LZXlFQzsKIAogY2xh
c3MgQ3J5cHRvQWxnb3JpdGhtRUNESCBmaW5hbCA6IHB1YmxpYyBDcnlwdG9BbGdvcml0aG0gewog
cHVibGljOgotICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3QgY2hhciogc19uYW1lID0gIkVDREgi
OworICAgIHN0YXRpYyBjb25zdGV4cHIgQVNDSUlMaXRlcmFsIHNfbmFtZSA9ICJFQ0RIIl9zOwog
ICAgIHN0YXRpYyBjb25zdGV4cHIgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBzX2lkZW50aWZp
ZXIgPSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpFQ0RIOwogICAgIHN0YXRpYyBSZWY8Q3J5
cHRvQWxnb3JpdGhtPiBjcmVhdGUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5
cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtRUNEU0EuaCBiL1NvdXJjZS9XZWJDb3JlL2Ny
eXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUVDRFNBLmgKaW5kZXggM2E1OTFiZGZhZjIy
ODg1MGRlOGMwODJiZjI3N2ExOTAwNjM4OWU2Ni4uYjdjNzg4OWY4ZTAzMjEzNGMzZGUwM2I3YWFi
Zjc1YzUyZjgyYmQzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRo
bXMvQ3J5cHRvQWxnb3JpdGhtRUNEU0EuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxn
b3JpdGhtcy9DcnlwdG9BbGdvcml0aG1FQ0RTQS5oCkBAIC0zNiw3ICszNiw3IEBAIGNsYXNzIENy
eXB0b0tleUVDOwogCiBjbGFzcyBDcnlwdG9BbGdvcml0aG1FQ0RTQSBmaW5hbCA6IHB1YmxpYyBD
cnlwdG9BbGdvcml0aG0gewogcHVibGljOgotICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3QgY2hh
ciogc19uYW1lID0gIkVDRFNBIjsKKyAgICBzdGF0aWMgY29uc3RleHByIEFTQ0lJTGl0ZXJhbCBz
X25hbWUgPSAiRUNEU0EiX3M7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBDcnlwdG9BbGdvcml0aG1J
ZGVudGlmaWVyIHNfaWRlbnRpZmllciA9IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkVDRFNB
OwogICAgIHN0YXRpYyBSZWY8Q3J5cHRvQWxnb3JpdGhtPiBjcmVhdGUoKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtSEtERi5o
IGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtSEtERi5o
CmluZGV4IDFkZGNkOWQxYTE0NjMxNjAzMjFiMTE2YWU3NGQ5YTM2ZDljYjFkNmEuLjhmMzkzOWIx
OWI0ZWM5Mjg2NzgwNzNmMjc0NmE5NWIwZWYzYjM1YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUhLREYuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1IS0RGLmgKQEAgLTM2LDcg
KzM2LDcgQEAgY2xhc3MgQ3J5cHRvS2V5UmF3OwogCiBjbGFzcyBDcnlwdG9BbGdvcml0aG1IS0RG
IGZpbmFsIDogcHVibGljIENyeXB0b0FsZ29yaXRobSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNv
bnN0ZXhwciBjb25zdCBjaGFyKiBzX25hbWUgPSAiSEtERiI7CisgICAgc3RhdGljIGNvbnN0ZXhw
ciBBU0NJSUxpdGVyYWwgc19uYW1lID0gIkhLREYiX3M7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBD
cnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIHNfaWRlbnRpZmllciA9IENyeXB0b0FsZ29yaXRobUlk
ZW50aWZpZXI6OkhLREY7CiAgICAgc3RhdGljIFJlZjxDcnlwdG9BbGdvcml0aG0+IGNyZWF0ZSgp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9B
bGdvcml0aG1ITUFDLmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9B
bGdvcml0aG1ITUFDLmgKaW5kZXggZmE4ZjBhZGRjY2UxMjhmMjQ3MTUxNzNmYWZiZmE5MjczMjUy
NTBkMy4uOWYxMDg0Njk4YWI0M2Y3ZTVlZDk5YmJjYWQ4NWY4MTFhYWJiNWMyMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtSE1BQy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUhN
QUMuaApAQCAtMzUsNyArMzUsNyBAQCBjbGFzcyBDcnlwdG9LZXlITUFDOwogCiBjbGFzcyBDcnlw
dG9BbGdvcml0aG1ITUFDIGZpbmFsIDogcHVibGljIENyeXB0b0FsZ29yaXRobSB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBjb25zdCBjaGFyKiBzX25hbWUgPSAiSE1BQyI7CisgICAg
c3RhdGljIGNvbnN0ZXhwciBBU0NJSUxpdGVyYWwgc19uYW1lID0gIkhNQUMiX3M7CiAgICAgc3Rh
dGljIGNvbnN0ZXhwciBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIHNfaWRlbnRpZmllciA9IENy
eXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkhNQUM7CiAgICAgc3RhdGljIFJlZjxDcnlwdG9BbGdv
cml0aG0+IGNyZWF0ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxn
b3JpdGhtcy9DcnlwdG9BbGdvcml0aG1QQktERjIuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9h
bGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVBCS0RGMi5oCmluZGV4IGJkOTc0NWM3MDM1OGU3OGQ1
M2I0ODBjYzI2NmRjNDQ5Nzc4ZmI4NDIuLjM0MDY5ZTUxZmFhZTZhMjA3MjIyOTgyOGQxNmQ5YTMy
OWQ1YThiZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0Ny
eXB0b0FsZ29yaXRobVBCS0RGMi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0
aG1zL0NyeXB0b0FsZ29yaXRobVBCS0RGMi5oCkBAIC0zNiw3ICszNiw3IEBAIGNsYXNzIENyeXB0
b0tleVJhdzsKIAogY2xhc3MgQ3J5cHRvQWxnb3JpdGhtUEJLREYyIGZpbmFsIDogcHVibGljIENy
eXB0b0FsZ29yaXRobSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBjb25zdCBjaGFy
KiBzX25hbWUgPSAiUEJLREYyIjsKKyAgICBzdGF0aWMgY29uc3RleHByIEFTQ0lJTGl0ZXJhbCBz
X25hbWUgPSAiUEJLREYyIl9zOwogICAgIHN0YXRpYyBjb25zdGV4cHIgQ3J5cHRvQWxnb3JpdGht
SWRlbnRpZmllciBzX2lkZW50aWZpZXIgPSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpQQktE
RjI7CiAgICAgc3RhdGljIFJlZjxDcnlwdG9BbGdvcml0aG0+IGNyZWF0ZSgpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FF
U19QS0NTMV92MV81LmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9B
bGdvcml0aG1SU0FFU19QS0NTMV92MV81LmgKaW5kZXggOGI1MWI0MWU3YzBhNTdmNjY4ZjU4NDc5
ZmEyOWU2MzhlOWUxYWQwYi4uZDIxZTZjMWVlMjg2ZjdkYzYzODc1YTk4NGFiMjNlNzAwNGVlMTg4
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxn
b3JpdGhtUlNBRVNfUEtDUzFfdjFfNS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdv
cml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQUVTX1BLQ1MxX3YxXzUuaApAQCAtMzUsNyArMzUsNyBA
QCBjbGFzcyBDcnlwdG9LZXlSU0E7CiAKIGNsYXNzIENyeXB0b0FsZ29yaXRobVJTQUVTX1BLQ1Mx
X3YxXzUgZmluYWwgOiBwdWJsaWMgQ3J5cHRvQWxnb3JpdGhtIHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgY29uc3RleHByIGNvbnN0IGNoYXIqIHNfbmFtZSA9ICJSU0FFUy1QS0NTMS12MV81IjsKKyAg
ICBzdGF0aWMgY29uc3RleHByIEFTQ0lJTGl0ZXJhbCBzX25hbWUgPSAiUlNBRVMtUEtDUzEtdjFf
NSJfczsKICAgICBzdGF0aWMgY29uc3RleHByIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgc19p
ZGVudGlmaWVyID0gQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6UlNBRVNfUEtDUzFfdjFfNTsK
ICAgICBzdGF0aWMgUmVmPENyeXB0b0FsZ29yaXRobT4gY3JlYXRlKCk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQVNTQV9Q
S0NTMV92MV81LmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdv
cml0aG1SU0FTU0FfUEtDUzFfdjFfNS5oCmluZGV4IGQ5YjdiNDUwNzIzYWZjZGE5OTk5NWNiODgz
Y2RhMzljYWYzMjhkY2UuLmQxODVkM2E0YmRhMmRhMzdjZGIwZGYyOGY2OGEyNzNkZGU5OWI4NjAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29y
aXRobVJTQVNTQV9QS0NTMV92MV81LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29y
aXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzUuaApAQCAtMzUsNyArMzUsNyBA
QCBjbGFzcyBDcnlwdG9LZXlSU0E7CiAKIGNsYXNzIENyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NT
MV92MV81IGZpbmFsIDogcHVibGljIENyeXB0b0FsZ29yaXRobSB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIGNvbnN0ZXhwciBjb25zdCBjaGFyKiBzX25hbWUgPSAiUlNBU1NBLVBLQ1MxLXYxXzUiOwor
ICAgIHN0YXRpYyBjb25zdGV4cHIgQVNDSUlMaXRlcmFsIHNfbmFtZSA9ICJSU0FTU0EtUEtDUzEt
djFfNSJfczsKICAgICBzdGF0aWMgY29uc3RleHByIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIg
c19pZGVudGlmaWVyID0gQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6UlNBU1NBX1BLQ1MxX3Yx
XzU7CiAgICAgc3RhdGljIFJlZjxDcnlwdG9BbGdvcml0aG0+IGNyZWF0ZSgpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0Ff
T0FFUC5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGht
UlNBX09BRVAuaAppbmRleCAwOTZhZjNjYTIzMDc5NTlmMjQ1NGVlM2NmZDJiM2YwZTIyYjQ3M2Yy
Li5kYmE3ZWE5ZDVkNzIyZTQyN2EzYjBhYTRmOWRjZDMyZmY0NDU5ZjJiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FfT0FFUC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJT
QV9PQUVQLmgKQEAgLTM2LDcgKzM2LDcgQEAgY2xhc3MgQ3J5cHRvS2V5UlNBOwogCiBjbGFzcyBD
cnlwdG9BbGdvcml0aG1SU0FfT0FFUCBmaW5hbCA6IHB1YmxpYyBDcnlwdG9BbGdvcml0aG0gewog
cHVibGljOgotICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3QgY2hhciogc19uYW1lID0gIlJTQS1P
QUVQIjsKKyAgICBzdGF0aWMgY29uc3RleHByIEFTQ0lJTGl0ZXJhbCBzX25hbWUgPSAiUlNBLU9B
RVAiX3M7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIHNf
aWRlbnRpZmllciA9IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlJTQV9PQUVQOwogICAgIHN0
YXRpYyBSZWY8Q3J5cHRvQWxnb3JpdGhtPiBjcmVhdGUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBX1BTUy5oIGIvU291
cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBX1BTUy5oCmlu
ZGV4IDU4NzlhNTY3Y2NjYzdiMGExYzlhZDRkOTE3ODlkOWQwNTRiMDA5NzQuLmIxZjdmNzcyY2U0
MjI3OGQ0ZDk0ZDVjMGE3NmNhZTVlZGYwZTQwZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQV9QU1MuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FfUFNTLmgKQEAgLTM2
LDcgKzM2LDcgQEAgY2xhc3MgQ3J5cHRvS2V5UlNBOwogCiBjbGFzcyBDcnlwdG9BbGdvcml0aG1S
U0FfUFNTIGZpbmFsIDogcHVibGljIENyeXB0b0FsZ29yaXRobSB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIGNvbnN0ZXhwciBjb25zdCBjaGFyKiBzX25hbWUgPSAiUlNBLVBTUyI7CisgICAgc3RhdGlj
IGNvbnN0ZXhwciBBU0NJSUxpdGVyYWwgc19uYW1lID0gIlJTQS1QU1MiX3M7CiAgICAgc3RhdGlj
IGNvbnN0ZXhwciBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIHNfaWRlbnRpZmllciA9IENyeXB0
b0FsZ29yaXRobUlkZW50aWZpZXI6OlJTQV9QU1M7CiAgICAgc3RhdGljIFJlZjxDcnlwdG9BbGdv
cml0aG0+IGNyZWF0ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxn
b3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEExLmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxn
b3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEExLmgKaW5kZXggZDgwN2FiYjk3NGNiYWFjM2IwYTdi
YzdhZDg2NThmY2FmYjVhZDZhZS4uMWZkNzc1YTgxMzY0M2MxYjJmYWNjN2QzYzk0MDlkMzJmZTFj
ZTg1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRv
QWxnb3JpdGhtU0hBMS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0Ny
eXB0b0FsZ29yaXRobVNIQTEuaApAQCAtMzMsNyArMzMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIENyeXB0b0FsZ29yaXRobVNIQTEgZmluYWwgOiBwdWJsaWMgQ3J5cHRvQWxnb3Jp
dGhtIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3RleHByIGNvbnN0IGNoYXIqIHNfbmFtZSA9
ICJTSEEtMSI7CisgICAgc3RhdGljIGNvbnN0ZXhwciBBU0NJSUxpdGVyYWwgc19uYW1lID0gIlNI
QS0xIl9zOwogICAgIHN0YXRpYyBjb25zdGV4cHIgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBz
X2lkZW50aWZpZXIgPSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpTSEFfMTsKICAgICBzdGF0
aWMgUmVmPENyeXB0b0FsZ29yaXRobT4gY3JlYXRlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTIyNC5oIGIvU291cmNl
L1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMjI0LmgKaW5kZXgg
NzgwNGJhY2ZmMjU3MmQ4ZGM2NTExMDA0MDRmOTA1YmY5M2JmYzRjNi4uNDkzZTE2MmFiMzY1MmU2
NmMzNTA0YThkNzk1YzI4NjlkNGRkY2VjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5
cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMjI0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMjI0LmgKQEAgLTMzLDcgKzMz
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDcnlwdG9BbGdvcml0aG1TSEEyMjQg
ZmluYWwgOiBwdWJsaWMgQ3J5cHRvQWxnb3JpdGhtIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29u
c3RleHByIGNvbnN0IGNoYXIqIHNfbmFtZSA9ICJTSEEtMjI0IjsKKyAgICBzdGF0aWMgY29uc3Rl
eHByIEFTQ0lJTGl0ZXJhbCBzX25hbWUgPSAiU0hBLTIyNCJfczsKICAgICBzdGF0aWMgY29uc3Rl
eHByIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgc19pZGVudGlmaWVyID0gQ3J5cHRvQWxnb3Jp
dGhtSWRlbnRpZmllcjo6U0hBXzIyNDsKICAgICBzdGF0aWMgUmVmPENyeXB0b0FsZ29yaXRobT4g
Y3JlYXRlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1z
L0NyeXB0b0FsZ29yaXRobVNIQTI1Ni5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRo
bXMvQ3J5cHRvQWxnb3JpdGhtU0hBMjU2LmgKaW5kZXggY2UyNDA0Yzc0ZDU1YzhmMjc0NDA1ZTU2
ZjRkNThhN2ZmNjE2MTVmOS4uZjVhODU0M2M4MmM1NTQ4ZWU0MmIzYjkzMjcxMWU2ODU1ZWY4ZjBm
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxn
b3JpdGhtU0hBMjU2LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5
cHRvQWxnb3JpdGhtU0hBMjU2LmgKQEAgLTMzLDcgKzMzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBDcnlwdG9BbGdvcml0aG1TSEEyNTYgZmluYWwgOiBwdWJsaWMgQ3J5cHRvQWxn
b3JpdGhtIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3RleHByIGNvbnN0IGNoYXIqIHNfbmFt
ZSA9ICJTSEEtMjU2IjsKKyAgICBzdGF0aWMgY29uc3RleHByIEFTQ0lJTGl0ZXJhbCBzX25hbWUg
PSAiU0hBLTI1NiJfczsKICAgICBzdGF0aWMgY29uc3QgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmll
ciBzX2lkZW50aWZpZXIgPSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpTSEFfMjU2OwogICAg
IHN0YXRpYyBSZWY8Q3J5cHRvQWxnb3JpdGhtPiBjcmVhdGUoKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMzg0LmggYi9T
b3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEzODQuaApp
bmRleCA2Y2M1NzQ5MTMyNmEwMDhlNDI2ZjI2OTIxMzg5YWQ2ZjRjNGJmODQ5Li5lNWJmMjIzMmFj
ZjJkYTZhMTAwNmVhNTIwMTkzNDA4YjE4MDVmMmMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEzODQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEzODQuaApAQCAtMzMs
NyArMzMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENyeXB0b0FsZ29yaXRobVNI
QTM4NCBmaW5hbCA6IHB1YmxpYyBDcnlwdG9BbGdvcml0aG0gewogcHVibGljOgotICAgIHN0YXRp
YyBjb25zdGV4cHIgY29uc3QgY2hhciogc19uYW1lID0gIlNIQS0zODQiOworICAgIHN0YXRpYyBj
b25zdGV4cHIgQVNDSUlMaXRlcmFsIHNfbmFtZSA9ICJTSEEtMzg0Il9zOwogICAgIHN0YXRpYyBj
b25zdGV4cHIgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBzX2lkZW50aWZpZXIgPSBDcnlwdG9B
bGdvcml0aG1JZGVudGlmaWVyOjpTSEFfMzg0OwogICAgIHN0YXRpYyBSZWY8Q3J5cHRvQWxnb3Jp
dGhtPiBjcmVhdGUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29y
aXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBNTEyLmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxn
b3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEE1MTIuaAppbmRleCAwZDRhMGI5NmI2NDJhNGNkZmE3
YmY5OTBhOTdlZjczYjhiNzYxM2Y4Li4wNWY5OGZjNGE4NjY2ZGFmZGE2MDU5YTE0ZmU1ZTE3Mzdh
NGE3NDJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9Dcnlw
dG9BbGdvcml0aG1TSEE1MTIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGht
cy9DcnlwdG9BbGdvcml0aG1TSEE1MTIuaApAQCAtMzMsNyArMzMsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGNsYXNzIENyeXB0b0FsZ29yaXRobVNIQTUxMiBmaW5hbCA6IHB1YmxpYyBDcnlw
dG9BbGdvcml0aG0gewogcHVibGljOgotICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3QgY2hhciog
c19uYW1lID0gIlNIQS01MTIiOworICAgIHN0YXRpYyBjb25zdGV4cHIgQVNDSUlMaXRlcmFsIHNf
bmFtZSA9ICJTSEEtNTEyIl9zOwogICAgIHN0YXRpYyBjb25zdGV4cHIgQ3J5cHRvQWxnb3JpdGht
SWRlbnRpZmllciBzX2lkZW50aWZpZXIgPSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpTSEFf
NTEyOwogICAgIHN0YXRpYyBSZWY8Q3J5cHRvQWxnb3JpdGhtPiBjcmVhdGUoKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5QUVTLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleUFFUy5jcHAKaW5kZXggNDJmZTNhNGJlNTIx
ODE5OTczNGRlZGQwM2FiN2M5NzFmMzAxMWFkNC4uYzc2Yzg2M2Q1YWZjNWE0MTViMDY1NTg4NTBk
MzA3NTIwYzBjNjdjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5
cHRvS2V5QUVTLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlB
RVMuY3BwCkBAIC0xMDYsNyArMTA2LDcgQEAgUmVmUHRyPENyeXB0b0tleUFFUz4gQ3J5cHRvS2V5
QUVTOjppbXBvcnRKd2soQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBhbGdvcml0aG0KIEpzb25X
ZWJLZXkgQ3J5cHRvS2V5QUVTOjpleHBvcnRKd2soKSBjb25zdAogewogICAgIEpzb25XZWJLZXkg
cmVzdWx0OwotICAgIHJlc3VsdC5rdHkgPSAib2N0IjsKKyAgICByZXN1bHQua3R5ID0gIm9jdCJf
czsKICAgICByZXN1bHQuayA9IGJhc2U2NFVSTEVuY29kZVRvU3RyaW5nKG1fa2V5KTsKICAgICBy
ZXN1bHQua2V5X29wcyA9IHVzYWdlcygpOwogICAgIHJlc3VsdC5leHQgPSBleHRyYWN0YWJsZSgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5RUMuY3Bw
IGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5RUMuY3BwCmluZGV4IGQzNmQz
NDBmNzBhOGY0YTE3ZmY1ZjYxOWNlYjFkOWQ4NDVjYTJhMzMuLmZjZTgyYmVlOTFjYWI3NDI2MjA0
MDBkY2E3NzMwNWMxN2Y2ODUyMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9r
ZXlzL0NyeXB0b0tleUVDLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9Dcnlw
dG9LZXlFQy5jcHAKQEAgLTE0OCw3ICsxNDgsNyBAQCBFeGNlcHRpb25PcjxWZWN0b3I8dWludDhf
dD4+IENyeXB0b0tleUVDOjpleHBvcnRSYXcoKSBjb25zdAogRXhjZXB0aW9uT3I8SnNvbldlYktl
eT4gQ3J5cHRvS2V5RUM6OmV4cG9ydEp3aygpIGNvbnN0CiB7CiAgICAgSnNvbldlYktleSByZXN1
bHQ7Ci0gICAgcmVzdWx0Lmt0eSA9ICJFQyI7CisgICAgcmVzdWx0Lmt0eSA9ICJFQyJfczsKICAg
ICBzd2l0Y2ggKG1fY3VydmUpIHsKICAgICBjYXNlIE5hbWVkQ3VydmU6OlAyNTY6CiAgICAgICAg
IHJlc3VsdC5jcnYgPSBQMjU2OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tl
eXMvQ3J5cHRvS2V5SE1BQy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9L
ZXlITUFDLmNwcAppbmRleCA0MzRmMjQwNDU1ZGM4Y2UzNDFlMDA1NDAzYmYwNWNiOTAwMzdkMTQ5
Li4yNTQzZWQ1NDY1N2U3YWUzZjJmNzk5NmM3ODQ0M2RmYjA5YTcyN2EwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlITUFDLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlITUFDLmNwcApAQCAtMTIxLDcgKzEyMSw3IEBA
IFJlZlB0cjxDcnlwdG9LZXlITUFDPiBDcnlwdG9LZXlITUFDOjppbXBvcnRKd2soc2l6ZV90IGxl
bmd0aEJpdHMsIENyeXB0b0FsZ29yaXRoCiBKc29uV2ViS2V5IENyeXB0b0tleUhNQUM6OmV4cG9y
dEp3aygpIGNvbnN0CiB7CiAgICAgSnNvbldlYktleSByZXN1bHQ7Ci0gICAgcmVzdWx0Lmt0eSA9
ICJvY3QiOworICAgIHJlc3VsdC5rdHkgPSAib2N0Il9zOwogICAgIHJlc3VsdC5rID0gYmFzZTY0
VVJMRW5jb2RlVG9TdHJpbmcobV9rZXkpOwogICAgIHJlc3VsdC5rZXlfb3BzID0gdXNhZ2VzKCk7
CiAgICAgcmVzdWx0LmV4dCA9IGV4dHJhY3RhYmxlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlSU0EuY3BwIGIvU291cmNlL1dlYkNvcmUvY3J5cHRv
L2tleXMvQ3J5cHRvS2V5UlNBLmNwcAppbmRleCA2YmJmMTRmMjQ2MGIzZDFmNTA0ODhhZjM5Mjk3
MDlmNzQyMTZlZTI0Li4wNTgxZDY3MDcyY2I5MzY2ZDM3NzU0MjI2OGE0OGZmZGEwNjM5YTc3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlSU0EuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleVJTQS5jcHAKQEAgLTEzMyw3
ICsxMzMsNyBAQCBSZWZQdHI8Q3J5cHRvS2V5UlNBPiBDcnlwdG9LZXlSU0E6OmltcG9ydEp3ayhD
cnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGFsZ29yaXRobQogSnNvbldlYktleSBDcnlwdG9LZXlS
U0E6OmV4cG9ydEp3aygpIGNvbnN0CiB7CiAgICAgSnNvbldlYktleSByZXN1bHQ7Ci0gICAgcmVz
dWx0Lmt0eSA9ICJSU0EiOworICAgIHJlc3VsdC5rdHkgPSAiUlNBIl9zOwogICAgIHJlc3VsdC5r
ZXlfb3BzID0gdXNhZ2VzKCk7CiAgICAgcmVzdWx0LmV4dCA9IGV4dHJhY3RhYmxlKCk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNyY1ZhbHVlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNyY1ZhbHVlLmNwcAppbmRleCAzMDVjMzJlYTgw
Y2NlNTkwYjRiNjFkMDVkOWE1MGMyZjYyZTlkNmU2Li5lYjY4NjYzNTc1NWMzZTExOWQwYjhhZTY4
NWM1YjZlZDMyODA1ODk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZh
Y2VTcmNWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU3JjVmFs
dWUuY3BwCkBAIC01Niw3ICs1Niw3IEBAIGJvb2wgQ1NTRm9udEZhY2VTcmNWYWx1ZTo6aXNTdXBw
b3J0ZWRGb3JtYXQoKSBjb25zdAogICAgIC8vIHdlIHdpbGwgYWxzbyBjaGVjayB0byBzZWUgaWYg
dGhlIFVSTCBlbmRzIHdpdGggLmVvdC4gSWYgc28sIHdlJ2xsIGFzc3VtZSB0aGF0IHdlIHNob3Vs
ZG4ndCBsb2FkIGl0LgogICAgIGlmIChtX2Zvcm1hdC5pc0VtcHR5KCkpIHsKICAgICAgICAgLy8g
Q2hlY2sgZm9yIC5lb3QuCi0gICAgICAgIGlmICghcHJvdG9jb2xJcyhtX3Jlc291cmNlLCAiZGF0
YSIpICYmIG1fcmVzb3VyY2UuZW5kc1dpdGhJZ25vcmluZ0FTQ0lJQ2FzZSgiLmVvdCIpKQorICAg
ICAgICBpZiAoIXByb3RvY29sSXMobV9yZXNvdXJjZSwgImRhdGEiKSAmJiBtX3Jlc291cmNlLmVu
ZHNXaXRoSWdub3JpbmdBU0NJSUNhc2UoIi5lb3QiX3MpKQogICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTR3JpZFRlbXBsYXRlQXJlYXNWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTR3JpZFRlbXBsYXRlQXJlYXNWYWx1ZS5jcHAKaW5kZXggZTBiNzg2NTlhZGJkMDE0ODM5
ZTU3YzA2MjFkYzE2MTllZjgxMzEwOS4uZGZkNzI1MTNiY2RmNTQ2MTA5ZTY5MDJiNWJlOWI5Nzky
ZTZhMjc0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyaWRUZW1wbGF0ZUFy
ZWFzVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmlkVGVtcGxhdGVBcmVh
c1ZhbHVlLmNwcApAQCAtNjMsNyArNjMsNyBAQCBzdGF0aWMgU3RyaW5nIHN0cmluZ0ZvclBvc2l0
aW9uKGNvbnN0IE5hbWVkR3JpZEFyZWFNYXAmIGdyaWRBcmVhTWFwLCBzaXplX3Qgcm93LAogICAg
ICAgICAgICAgcmV0dXJuIGl0LmtleTsKICAgICB9CiAKLSAgICByZXR1cm4gIi4iOworICAgIHJl
dHVybiAiLiJfczsKIH0KIAogU3RyaW5nIENTU0dyaWRUZW1wbGF0ZUFyZWFzVmFsdWU6OmN1c3Rv
bUNTU1RleHQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1p
dGl2ZVZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHAK
aW5kZXggNzg5YzYzNDk3ZjIyMTA2NDliNDRhYTg4MmFlMDFiNjhlYmI4ZGEyOS4uOWZlNjRiNWJl
OTQ1NmE0NDhlY2Y1MDQ5N2E0MTM1Nzk0ZjhiZDliOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
UHJpbWl0aXZlVmFsdWUuY3BwCkBAIC0xMjMxLDY0ICsxMjMxLDY0IEBAIE5FVkVSX0lOTElORSBT
dHJpbmcgQ1NTUHJpbWl0aXZlVmFsdWU6OmZvcm1hdEludGVnZXJWYWx1ZShTdHJpbmdWaWV3IHN1
ZmZpeCkgY29uCiBTdHJpbmcgQ1NTUHJpbWl0aXZlVmFsdWU6OnVuaXRUeXBlU3RyaW5nKENTU1Vu
aXRUeXBlIHVuaXRUeXBlKQogewogICAgIHN3aXRjaCAodW5pdFR5cGUpIHsKLSAgICAgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX1BFUkNFTlRBR0U6IHJldHVybiAiJSI7Ci0gICAgICAgIGNhc2Ug
Q1NTVW5pdFR5cGU6OkNTU19FTVM6IHJldHVybiAiZW0iOwotICAgICAgICBjYXNlIENTU1VuaXRU
eXBlOjpDU1NfRVhTOiByZXR1cm4gImV4IjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NT
X1BYOiByZXR1cm4gInB4IjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0NNOiByZXR1
cm4gImNtIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX01NOiByZXR1cm4gIm1tIjsK
LSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0lOOiByZXR1cm4gImluIjsKLSAgICAgICAg
Y2FzZSBDU1NVbml0VHlwZTo6Q1NTX1BUOiByZXR1cm4gInB0IjsKLSAgICAgICAgY2FzZSBDU1NV
bml0VHlwZTo6Q1NTX1BDOiByZXR1cm4gInBjIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6
Q1NTX0RFRzogcmV0dXJuICJkZWciOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfUkFE
OiByZXR1cm4gInJhZCI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19HUkFEOiByZXR1
cm4gImdyYWQiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTVM6IHJldHVybiAibXMi
OwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfUzogcmV0dXJuICJzIjsKLSAgICAgICAg
Y2FzZSBDU1NVbml0VHlwZTo6Q1NTX0haOiByZXR1cm4gImh6IjsKLSAgICAgICAgY2FzZSBDU1NV
bml0VHlwZTo6Q1NTX0tIWjogcmV0dXJuICJraHoiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfVlc6IHJldHVybiAidnciOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVkg6
IHJldHVybiAidmgiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVk1JTjogcmV0dXJu
ICJ2bWluIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZNQVg6IHJldHVybiAidm1h
eCI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WQjogcmV0dXJuICJ2YiI7Ci0gICAg
ICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WSTogcmV0dXJuICJ2aSI7Ci0gICAgICAgIGNhc2Ug
Q1NTVW5pdFR5cGU6OkNTU19TVlc6IHJldHVybiAic3Z3IjsKLSAgICAgICAgY2FzZSBDU1NVbml0
VHlwZTo6Q1NTX1NWSDogcmV0dXJuICJzdmgiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpD
U1NfU1ZNSU46IHJldHVybiAic3ZtaW4iOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1Nf
U1ZNQVg6IHJldHVybiAic3ZtYXgiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZC
OiByZXR1cm4gInN2YiI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVkk6IHJldHVy
biAic3ZpIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWVzogcmV0dXJuICJsdnci
OwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZIOiByZXR1cm4gImx2aCI7Ci0gICAg
ICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVk1JTjogcmV0dXJuICJsdm1pbiI7Ci0gICAgICAg
IGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVk1BWDogcmV0dXJuICJsdm1heCI7Ci0gICAgICAgIGNh
c2UgQ1NTVW5pdFR5cGU6OkNTU19MVkI6IHJldHVybiAibHZiIjsKLSAgICAgICAgY2FzZSBDU1NV
bml0VHlwZTo6Q1NTX0xWSTogcmV0dXJuICJsdmkiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfRFZXOiByZXR1cm4gImR2dyI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19E
Vkg6IHJldHVybiAiZHZoIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWTUlOOiBy
ZXR1cm4gImR2bWluIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWTUFYOiByZXR1
cm4gImR2bWF4IjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWQjogcmV0dXJuICJk
dmIiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZJOiByZXR1cm4gImR2aSI7Ci0g
ICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EUFBYOiByZXR1cm4gImRwcHgiOwotICAgICAg
ICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfWDogcmV0dXJuICJ4IjsKLSAgICAgICAgY2FzZSBDU1NV
bml0VHlwZTo6Q1NTX0RQSTogcmV0dXJuICJkcGkiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfRFBDTTogcmV0dXJuICJkcGNtIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NT
X0ZSOiByZXR1cm4gImZyIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1E6IHJldHVy
biAicSI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MSFM6IHJldHVybiAibGgiOwot
ICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfUkxIUzogcmV0dXJuICJybGgiOwotICAgICAg
ICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVFVSTjogcmV0dXJuICJ0dXJuIjsKLSAgICAgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX1JFTVM6IHJldHVybiAicmVtIjsKLSAgICAgICAgY2FzZSBDU1NV
bml0VHlwZTo6Q1NTX0NIUzogcmV0dXJuICJjaCI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6
OkNTU19JQzogcmV0dXJuICJpYyI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19DUVc6
IHJldHVybiAiY3F3IjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0NRSDogcmV0dXJu
ICJjcWgiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfQ1FJOiByZXR1cm4gImNxaSI7
Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19DUUI6IHJldHVybiAiY3FiIjsKLSAgICAg
ICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0NRTUFYOiByZXR1cm4gImNxbWF4IjsKLSAgICAgICAg
Y2FzZSBDU1NVbml0VHlwZTo6Q1NTX0NRTUlOOiByZXR1cm4gImNxbWluIjsKKyAgICAgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX1BFUkNFTlRBR0U6IHJldHVybiAiJSJfczsKKyAgICAgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX0VNUzogcmV0dXJuICJlbSJfczsKKyAgICAgICAgY2FzZSBDU1NV
bml0VHlwZTo6Q1NTX0VYUzogcmV0dXJuICJleCJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlw
ZTo6Q1NTX1BYOiByZXR1cm4gInB4Il9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1Nf
Q006IHJldHVybiAiY20iX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19NTTogcmV0
dXJuICJtbSJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0lOOiByZXR1cm4gImlu
Il9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfUFQ6IHJldHVybiAicHQiX3M7Cisg
ICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19QQzogcmV0dXJuICJwYyJfczsKKyAgICAgICAg
Y2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RFRzogcmV0dXJuICJkZWciX3M7CisgICAgICAgIGNhc2Ug
Q1NTVW5pdFR5cGU6OkNTU19SQUQ6IHJldHVybiAicmFkIl9zOworICAgICAgICBjYXNlIENTU1Vu
aXRUeXBlOjpDU1NfR1JBRDogcmV0dXJuICJncmFkIl9zOworICAgICAgICBjYXNlIENTU1VuaXRU
eXBlOjpDU1NfTVM6IHJldHVybiAibXMiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNT
U19TOiByZXR1cm4gInMiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19IWjogcmV0
dXJuICJoeiJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0tIWjogcmV0dXJuICJr
aHoiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WVzogcmV0dXJuICJ2dyJfczsK
KyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZIOiByZXR1cm4gInZoIl9zOworICAgICAg
ICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVk1JTjogcmV0dXJuICJ2bWluIl9zOworICAgICAgICBj
YXNlIENTU1VuaXRUeXBlOjpDU1NfVk1BWDogcmV0dXJuICJ2bWF4Il9zOworICAgICAgICBjYXNl
IENTU1VuaXRUeXBlOjpDU1NfVkI6IHJldHVybiAidmIiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5p
dFR5cGU6OkNTU19WSTogcmV0dXJuICJ2aSJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6
Q1NTX1NWVzogcmV0dXJuICJzdnciX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19T
Vkg6IHJldHVybiAic3ZoIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZNSU46
IHJldHVybiAic3ZtaW4iX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVk1BWDog
cmV0dXJuICJzdm1heCJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWQjogcmV0
dXJuICJzdmIiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVkk6IHJldHVybiAi
c3ZpIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZXOiByZXR1cm4gImx2dyJf
czsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWSDogcmV0dXJuICJsdmgiX3M7Cisg
ICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVk1JTjogcmV0dXJuICJsdm1pbiJfczsKKyAg
ICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWTUFYOiByZXR1cm4gImx2bWF4Il9zOworICAg
ICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZCOiByZXR1cm4gImx2YiJfczsKKyAgICAgICAg
Y2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWSTogcmV0dXJuICJsdmkiX3M7CisgICAgICAgIGNhc2Ug
Q1NTVW5pdFR5cGU6OkNTU19EVlc6IHJldHVybiAiZHZ3Il9zOworICAgICAgICBjYXNlIENTU1Vu
aXRUeXBlOjpDU1NfRFZIOiByZXR1cm4gImR2aCJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlw
ZTo6Q1NTX0RWTUlOOiByZXR1cm4gImR2bWluIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfRFZNQVg6IHJldHVybiAiZHZtYXgiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6
OkNTU19EVkI6IHJldHVybiAiZHZiIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1Nf
RFZJOiByZXR1cm4gImR2aSJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RQUFg6
IHJldHVybiAiZHBweCJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1g6IHJldHVy
biAieCJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RQSTogcmV0dXJuICJkcGki
X3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EUENNOiByZXR1cm4gImRwY20iX3M7
CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19GUjogcmV0dXJuICJmciJfczsKKyAgICAg
ICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1E6IHJldHVybiAicSJfczsKKyAgICAgICAgY2FzZSBD
U1NVbml0VHlwZTo6Q1NTX0xIUzogcmV0dXJuICJsaCJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0
VHlwZTo6Q1NTX1JMSFM6IHJldHVybiAicmxoIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfVFVSTjogcmV0dXJuICJ0dXJuIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpD
U1NfUkVNUzogcmV0dXJuICJyZW0iX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19D
SFM6IHJldHVybiAiY2giX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19JQzogcmV0
dXJuICJpYyJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0NRVzogcmV0dXJuICJj
cXciX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19DUUg6IHJldHVybiAiY3FoIl9z
OworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfQ1FJOiByZXR1cm4gImNxaSJfczsKKyAg
ICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0NRQjogcmV0dXJuICJjcWIiX3M7CisgICAgICAg
IGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19DUU1BWDogcmV0dXJuICJjcW1heCJfczsKKyAgICAgICAg
Y2FzZSBDU1NVbml0VHlwZTo6Q1NTX0NRTUlOOiByZXR1cm4gImNxbWluIl9zOwogCiAgICAgICAg
IGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19VTktOT1dOOgogICAgICAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfTlVNQkVSOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N1YmdyaWRW
YWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3ViZ3JpZFZhbHVlLmNwcAppbmRleCA0
ZjlkNGE2MDQ4YzYxNGM4ZDBmYWY1NDhiZmNjYmFhZTQ4YTBjODY1Li42YTc5ODU5ZGEyN2RhZWFh
YWE3YmNmNWY5OTEyZDNlNzdjNWJkMmJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTU3ViZ3JpZFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3ViZ3JpZFZh
bHVlLmNwcApAQCAtMzYsNyArMzYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBTdHJpbmcgQ1NT
U3ViZ3JpZFZhbHVlOjpjdXN0b21DU1NUZXh0KCkgY29uc3QKIHsKICAgICBpZiAoIWxlbmd0aCgp
KQotICAgICAgICByZXR1cm4gInN1YmdyaWQiOworICAgICAgICByZXR1cm4gInN1YmdyaWQiX3M7
CiAgICAgcmV0dXJuICJzdWJncmlkICIgKyBDU1NWYWx1ZUxpc3Q6OmN1c3RvbUNTU1RleHQoKTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0RPTUNTU05hbWVzcGFjZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NTTmFtZXNwYWNlLmNwcAppbmRleCBmN2ZjZjVlMjdk
ZGM2MGIyZmQ0NWQ1YzM1MWQ0NDdmNmYxZjEwYWNiLi44MDA3ODcyMTNkMzNiMDcyMzlkMTE4MmM3
NDM1OWU0OWM2NWMxODZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NTTmFt
ZXNwYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NTTmFtZXNwYWNlLmNwcApA
QCAtNDMsNyArNDMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBTdHJpbmcgdmFs
dWVXaXRob3V0SW1wb3J0YW50KGNvbnN0IFN0cmluZyYgdmFsdWUpCiB7Ci0gICAgaWYgKCF2YWx1
ZS5lbmRzV2l0aElnbm9yaW5nQVNDSUlDYXNlKCJpbXBvcnRhbnQiKSkKKyAgICBpZiAoIXZhbHVl
LmVuZHNXaXRoSWdub3JpbmdBU0NJSUNhc2UoImltcG9ydGFudCJfcykpCiAgICAgICAgIHJldHVy
biB2YWx1ZTsKIAogICAgIFN0cmluZyBuZXdWYWx1ZSA9IHZhbHVlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL0RPTUNTU1JlZ2lzdGVyQ3VzdG9tUHJvcGVydHkuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL0RPTUNTU1JlZ2lzdGVyQ3VzdG9tUHJvcGVydHkuY3BwCmluZGV4IGMyYzgy
NTBhYjIyZDgzZWRkODIyMDAxMGI4MmY2MjUxZGU3Yjg5ZjcuLjkyYTJjYmM0MGZkMzE2MWUwZjlm
Yzc1YjE4OGEyZDk4ZDNlNzE5MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01D
U1NSZWdpc3RlckN1c3RvbVByb3BlcnR5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9N
Q1NTUmVnaXN0ZXJDdXN0b21Qcm9wZXJ0eS5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogRXhjZXB0aW9uT3I8dm9pZD4gRE9NQ1NTUmVnaXN0ZXJDdXN0b21Qcm9wZXJ0
eTo6cmVnaXN0ZXJQcm9wZXJ0eShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IERPTUNTU0N1c3Rv
bVByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcikKIHsKICAgICBpZiAoIWlzQ3VzdG9tUHJv
cGVydHlOYW1lKGRlc2NyaXB0b3IubmFtZSkpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBT
eW50YXhFcnJvciwgIlRoZSBuYW1lIG9mIHRoaXMgcHJvcGVydHkgaXMgbm90IGEgY3VzdG9tIHBy
b3BlcnR5IG5hbWUuIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgU3ludGF4RXJyb3Is
ICJUaGUgbmFtZSBvZiB0aGlzIHByb3BlcnR5IGlzIG5vdCBhIGN1c3RvbSBwcm9wZXJ0eSBuYW1l
LiJfcyB9OwogCiAgICAgUmVmUHRyPENTU0N1c3RvbVByb3BlcnR5VmFsdWU+IGluaXRpYWxWYWx1
ZTsKICAgICBpZiAoIWRlc2NyaXB0b3IuaW5pdGlhbFZhbHVlLmlzRW1wdHkoKSkgewpAQCAtNTks
NyArNTksNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBET01DU1NSZWdpc3RlckN1c3RvbVByb3BlcnR5
OjpyZWdpc3RlclByb3BlcnR5KERvY3VtZW50JiBkb2N1bQogICAgICAgICBDU1NQcm9wZXJ0eVBh
cnNlcjo6Y29sbGVjdFBhcnNlZEN1c3RvbVByb3BlcnR5VmFsdWVEZXBlbmRlbmNpZXMoZGVzY3Jp
cHRvci5zeW50YXgsIGZhbHNlLCBkZXBlbmRlbmNpZXMsIHRva2VuaXplci50b2tlblJhbmdlKCks
IHN0cmljdENTU1BhcnNlckNvbnRleHQoKSk7CiAKICAgICAgICAgaWYgKCFkZXBlbmRlbmNpZXMu
aXNFbXB0eSgpKQotICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFN5bnRheEVycm9yLCAi
VGhlIGdpdmVuIGluaXRpYWwgdmFsdWUgbXVzdCBiZSBjb21wdXRhdGlvbmFsbHkgaW5kZXBlbmRl
bnQuIiB9OworICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFN5bnRheEVycm9yLCAiVGhl
IGdpdmVuIGluaXRpYWwgdmFsdWUgbXVzdCBiZSBjb21wdXRhdGlvbmFsbHkgaW5kZXBlbmRlbnQu
Il9zIH07CiAKIAogICAgICAgICBTdHlsZTo6TWF0Y2hSZXN1bHQgbWF0Y2hSZXN1bHQ7CkBAIC03
MCwxOCArNzAsMTggQEAgRXhjZXB0aW9uT3I8dm9pZD4gRE9NQ1NTUmVnaXN0ZXJDdXN0b21Qcm9w
ZXJ0eTo6cmVnaXN0ZXJQcm9wZXJ0eShEb2N1bWVudCYgZG9jdW0KICAgICAgICAgaW5pdGlhbFZh
bHVlID0gQ1NTUHJvcGVydHlQYXJzZXI6OnBhcnNlVHlwZWRDdXN0b21Qcm9wZXJ0eVZhbHVlKGRl
c2NyaXB0b3IubmFtZSwgZGVzY3JpcHRvci5zeW50YXgsIHRva2VuaXplci50b2tlblJhbmdlKCks
IGR1bW15QnVpbGRlci5zdGF0ZSgpLCBzdHJpY3RDU1NQYXJzZXJDb250ZXh0KCkpOwogCiAgICAg
ICAgIGlmICghaW5pdGlhbFZhbHVlIHx8ICFpbml0aWFsVmFsdWUtPmlzUmVzb2x2ZWQoKSkKLSAg
ICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBTeW50YXhFcnJvciwgIlRoZSBnaXZlbiBpbml0
aWFsIHZhbHVlIGRvZXMgbm90IHBhcnNlIGZvciB0aGUgZ2l2ZW4gc3ludGF4LiIgfTsKKyAgICAg
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBTeW50YXhFcnJvciwgIlRoZSBnaXZlbiBpbml0aWFs
IHZhbHVlIGRvZXMgbm90IHBhcnNlIGZvciB0aGUgZ2l2ZW4gc3ludGF4LiJfcyB9OwogCiAgICAg
ICAgIGluaXRpYWxWYWx1ZS0+Y29sbGVjdERpcmVjdENvbXB1dGF0aW9uYWxEZXBlbmRlbmNpZXMo
ZGVwZW5kZW5jaWVzKTsKICAgICAgICAgaW5pdGlhbFZhbHVlLT5jb2xsZWN0RGlyZWN0Um9vdENv
bXB1dGF0aW9uYWxEZXBlbmRlbmNpZXMoZGVwZW5kZW5jaWVzKTsKIAogICAgICAgICBpZiAoIWRl
cGVuZGVuY2llcy5pc0VtcHR5KCkpCi0gICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgU3lu
dGF4RXJyb3IsICJUaGUgZ2l2ZW4gaW5pdGlhbCB2YWx1ZSBtdXN0IGJlIGNvbXB1dGF0aW9uYWxs
eSBpbmRlcGVuZGVudC4iIH07CisgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgU3ludGF4
RXJyb3IsICJUaGUgZ2l2ZW4gaW5pdGlhbCB2YWx1ZSBtdXN0IGJlIGNvbXB1dGF0aW9uYWxseSBp
bmRlcGVuZGVudC4iX3MgfTsKICAgICB9CiAKICAgICBDU1NSZWdpc3RlcmVkQ3VzdG9tUHJvcGVy
dHkgcHJvcGVydHkgeyBkZXNjcmlwdG9yLm5hbWUsIGRlc2NyaXB0b3Iuc3ludGF4LCBkZXNjcmlw
dG9yLmluaGVyaXRzLCBXVEZNb3ZlKGluaXRpYWxWYWx1ZSkgfTsKICAgICBpZiAoIWRvY3VtZW50
LnJlZ2lzdGVyQ1NTUHJvcGVydHkoV1RGTW92ZShwcm9wZXJ0eSkpKQotICAgICAgICByZXR1cm4g
RXhjZXB0aW9uIHsgSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yLCAiVGhpcyBwcm9wZXJ0eSBoYXMg
YWxyZWFkeSBiZWVuIHJlZ2lzdGVyZWQuIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
SW52YWxpZE1vZGlmaWNhdGlvbkVycm9yLCAiVGhpcyBwcm9wZXJ0eSBoYXMgYWxyZWFkeSBiZWVu
IHJlZ2lzdGVyZWQuIl9zIH07CiAKICAgICBkb2N1bWVudC5zdHlsZVNjb3BlKCkuZGlkQ2hhbmdl
U3R5bGVTaGVldEVudmlyb25tZW50KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9EZXByZWNhdGVkQ1NTT01WYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRl
ZENTU09NVmFsdWUuY3BwCmluZGV4IDIzMjUwODQ1YWJhNmJjNTMyMmIzYjM3NjlmYjkzYzBlNjQw
YzdkODIuLjUwNjdkMGU2YzYwMWJlMmExMzEzZjA4OWE2NDBhYzFhNjI2YjliMzUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01WYWx1ZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVZhbHVlLmNwcApAQCAtNzYsNyArNzYsNyBA
QCBTdHJpbmcgRGVwcmVjYXRlZENTU09NVmFsdWU6OmNzc1RleHQoKSBjb25zdAogICAgICAgICBy
ZXR1cm4gZG93bmNhc3Q8RGVwcmVjYXRlZENTU09NVmFsdWVMaXN0PigqdGhpcykuY3NzVGV4dCgp
OwogICAgIH0KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gIiI7CisgICAg
cmV0dXJuIGVtcHR5U3RyaW5nKCk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9Gb250RmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9udEZhY2UuY3BwCmluZGV4
IGVmZmQ2MDdjMzQ2ZjliY2ZiYzljMjg4OWJmODMxNjk0ZGEzNDAzMDUuLjRkNTExYjVlNjg1NDEz
MDVkNDBjMWMzM2I3OTA5YTY1MDY1NTZmNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9Gb250RmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0ZvbnRGYWNlLmNwcApAQCAt
Mzc1LDcgKzM3NSw3IEBAIFN0cmluZyBGb250RmFjZTo6dW5pY29kZVJhbmdlKCkgY29uc3QKICAg
ICBtX2JhY2tpbmctPnVwZGF0ZVN0eWxlSWZOZWVkZWQoKTsKICAgICBjb25zdCBhdXRvJiByYW5n
ZXNXcmFwcGVkID0gbV9iYWNraW5nLT5yYW5nZXMoKTsKICAgICBpZiAoIXJhbmdlc1dyYXBwZWQp
Ci0gICAgICAgIHJldHVybiAiVSswLTEwRkZGRiI7CisgICAgICAgIHJldHVybiAiVSswLTEwRkZG
RiJfczsKICAgICBhdXRvIHJhbmdlcyA9IHJhbmdlc1dyYXBwZWQudmFsdWUoKTsKICAgICBpZiAo
IXJhbmdlcy5zaXplKCkpCiAgICAgICAgIHJldHVybiAiVSswLTEwRkZGRiJfczsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXhwcmVzc2lvbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV4cHJlc3Npb24uY3BwCmluZGV4IDA4YjcwNzA2NmJhNmRm
YjIxMjdmY2RhOTA4ODkzNzkzNTEwODE0ZTguLjFiZGRiNTUzZThmYmEyYzIyNTNlNGQxNDU2Zjc4
NjkzZjM2NjkzMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXhw
cmVzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFeHByZXNzaW9u
LmNwcApAQCAtMjc0LDcgKzI3NCw3IEBAIE1lZGlhUXVlcnlFeHByZXNzaW9uOjpNZWRpYVF1ZXJ5
RXhwcmVzc2lvbihjb25zdCBTdHJpbmcmIGZlYXR1cmUsIENTU1BhcnNlclRva2VuCiBTdHJpbmcg
TWVkaWFRdWVyeUV4cHJlc3Npb246OnNlcmlhbGl6ZSgpIGNvbnN0CiB7CiAgICAgaWYgKG1fc2Vy
aWFsaXphdGlvbkNhY2hlLmlzTnVsbCgpKQotICAgICAgICBtX3NlcmlhbGl6YXRpb25DYWNoZSA9
IG1ha2VTdHJpbmcoJygnLCBtX21lZGlhRmVhdHVyZS5jb252ZXJ0VG9BU0NJSUxvd2VyY2FzZSgp
LCBtX3ZhbHVlID8gIjogIiA6ICIiLCBtX3ZhbHVlID8gbV92YWx1ZS0+Y3NzVGV4dCgpIDogIiIs
ICcpJyk7CisgICAgICAgIG1fc2VyaWFsaXphdGlvbkNhY2hlID0gbWFrZVN0cmluZygnKCcsIG1f
bWVkaWFGZWF0dXJlLmNvbnZlcnRUb0FTQ0lJTG93ZXJjYXNlKCksIG1fdmFsdWUgPyAiOiAiIDog
IiIsIG1fdmFsdWUgPyBtX3ZhbHVlLT5jc3NUZXh0KCkgOiBlbXB0eVN0cmluZygpLCAnKScpOwog
ICAgIHJldHVybiBtX3NlcmlhbGl6YXRpb25DYWNoZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5
bGVQcm9wZXJ0aWVzLmNwcAppbmRleCBmMDQxM2MxN2ZmZmEyODM4MTFmZTI1MTdmZGZkNjFiY2Rj
ZjhiMjU5Li5hOTIzYzdhNGY5NGZjZjMyYjA3ZjgxMTNhMmNiZWEyNGI5ZGY4OTA0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcApAQCAtNzY4LDcgKzc2OCw3IEBAIFN0cmlu
ZyBTdHlsZVByb3BlcnRpZXM6OmdldExheWVyZWRTaG9ydGhhbmRWYWx1ZShjb25zdCBTdHlsZVBy
b3BlcnR5U2hvcnRoYW5kJiBzCiAKICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gbWFza0lk
ID0gZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KCp2YWx1ZSkudmFsdWVJRCgpOwogICAgICAg
ICAgICAgICAgICAgICAgICAgYXV0byBvcmlnaW5JZCA9IGRvd25jYXN0PENTU1ByaW1pdGl2ZVZh
bHVlPigqb3JpZ2luVmFsdWUpLnZhbHVlSUQoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBtYXNrSWQgPT0gb3JpZ2luSWQgJiYgKCFpc0NTU1dpZGVWYWx1ZUtleXdvcmQoZ2V0VmFs
dWVOYW1lKG1hc2tJZCkpIHx8IHZhbHVlLT5pc0ltcGxpY2l0SW5pdGlhbFZhbHVlKCkpOworICAg
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1hc2tJZCA9PSBvcmlnaW5JZCAmJiAoIWlzQ1NT
V2lkZVZhbHVlS2V5d29yZChTdHJpbmdWaWV3IHsgZ2V0VmFsdWVOYW1lKG1hc2tJZCkgfSkgfHwg
dmFsdWUtPmlzSW1wbGljaXRJbml0aWFsVmFsdWUoKSk7CiAgICAgICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgICAgICAgaWYgKHByb3BlcnR5ID09IENTU1Byb3BlcnR5TWFza09yaWdp
bikgewogICAgICAgICAgICAgICAgICAgICAgICAgLy8gV2UgY2FuIHNraXAgc2VyaWFsaXppbmcg
bWFzay1vcmlnaW4gaWYgaXQncyB0aGUgaW5pdGlhbCB2YWx1ZSwgYnV0IG9ubHkgaWYgd2UncmUg
YWxzbyBnb2luZyB0byBza2lwIHNlcmlhbGl6aW5nCkBAIC0xMTU0LDcgKzExNTQsNyBAQCBib29s
IE11dGFibGVTdHlsZVByb3BlcnRpZXM6OnNldEN1c3RvbVByb3BlcnR5KGNvbnN0IERvY3VtZW50
KiBkb2N1bWVudCwgY29uc3QgUwogCiAgICAgcGFyc2VyQ29udGV4dC5tb2RlID0gY3NzUGFyc2Vy
TW9kZSgpOwogCi0gICAgU3RyaW5nIHN5bnRheCA9ICIqIjsKKyAgICBTdHJpbmcgc3ludGF4ID0g
IioiX3M7CiAgICAgYXV0byogcmVnaXN0ZXJlZCA9IGRvY3VtZW50ID8gZG9jdW1lbnQtPmdldENT
U1JlZ2lzdGVyZWRDdXN0b21Qcm9wZXJ0eVNldCgpLmdldChwcm9wZXJ0eU5hbWUpIDogbnVsbHB0
cjsKIAogICAgIGlmIChyZWdpc3RlcmVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L21ha2V2YWx1ZXMucGwgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvbWFrZXZhbHVlcy5wbAppbmRleCAw
ZjgyMTlkNGNjYjUxZWNhNTI1ZDgyOWE3NjA2YjI3YjBmYTI3MzAzLi5hZTliMzI3ODMyNzI3Mzcz
YzRjZTdmMDIzMzA1MjEzNmIyZDk4M2Q1IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
bWFrZXZhbHVlcy5wbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvbWFrZXZhbHVlcy5wbApAQCAt
MTExLDE2ICsxMTEsMTYgQEAgZm9yIG15ICRpICgwIC4uICQjbmFtZXMpIHsKIAogcHJpbnQgR1BF
UkYgPDwgIkVPRiI7CiAlJQotc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IHZhbHVlTGlzdFtdID0g
ewotICAgICIiLAorc3RhdGljIGNvbnN0ZXhwciBBU0NJSUxpdGVyYWwgdmFsdWVMaXN0W10gPSB7
CisgICAgIiJfcywKIEVPRgogCiBmb3JlYWNoIG15ICRuYW1lIChAbmFtZXMpIHsKLSAgcHJpbnQg
R1BFUkYgIiAgICBcIiIgLiAkbmFtZSAuICJcIixcbiI7CisgIHByaW50IEdQRVJGICIgICAgXCIi
IC4gJG5hbWUgLiAiXCJfcyxcbiI7CiB9CiAKIHByaW50IEdQRVJGIDw8ICJFT0YiOwotICAgIDAK
KyAgICBBU0NJSUxpdGVyYWw6Om51bGwoKQogfTsKIAogY29uc3QgVmFsdWUqIGZpbmRWYWx1ZShj
b25zdCBjaGFyKiBzdHIsIHVuc2lnbmVkIGludCBsZW4pCkBAIC0xMjgsMTAgKzEyOCwxMCBAQCBj
b25zdCBWYWx1ZSogZmluZFZhbHVlKGNvbnN0IGNoYXIqIHN0ciwgdW5zaWduZWQgaW50IGxlbikK
ICAgICByZXR1cm4gQ1NTVmFsdWVLZXl3b3Jkc0hhc2g6OmZpbmRWYWx1ZUltcGwoc3RyLCBsZW4p
OwogfQogCi1jb25zdCBjaGFyKiBnZXRWYWx1ZU5hbWUodW5zaWduZWQgc2hvcnQgaWQpCitBU0NJ
SUxpdGVyYWwgZ2V0VmFsdWVOYW1lKHVuc2lnbmVkIHNob3J0IGlkKQogewogICAgIGlmIChpZCA+
IGxhc3RDU1NWYWx1ZUtleXdvcmQpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4g
QVNDSUlMaXRlcmFsOjpudWxsKCk7CiAgICAgcmV0dXJuIHZhbHVlTGlzdFtpZF07CiB9CiAKQEAg
LTIwMyw3ICsyMDMsNyBAQCBwcmludCBIRUFERVIgImNvbnN0IGludCBsYXN0Q1NTVmFsdWVLZXl3
b3JkID0gJGxhc3Q7XG4iOwogcHJpbnQgSEVBREVSICJjb25zdCBzaXplX3QgbWF4Q1NTVmFsdWVL
ZXl3b3JkTGVuZ3RoID0gIiAuICRtYXhMZW4gLiAiO1xuIjsKIHByaW50IEhFQURFUiA8PCAiRU9G
IjsKIAotY29uc3QgY2hhciogZ2V0VmFsdWVOYW1lKHVuc2lnbmVkIHNob3J0IGlkKTsKK0FTQ0lJ
TGl0ZXJhbCBnZXRWYWx1ZU5hbWUodW5zaWduZWQgc2hvcnQgaWQpOwogY29uc3QgQXRvbVN0cmlu
ZyYgZ2V0VmFsdWVOYW1lQXRvbVN0cmluZyhDU1NWYWx1ZUlEIGlkKTsKIFN0cmluZyBnZXRWYWx1
ZU5hbWVTdHJpbmcoQ1NTVmFsdWVJRCBpZCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9wYXJzZXIvTWVkaWFRdWVyeVBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFy
c2VyL01lZGlhUXVlcnlQYXJzZXIuY3BwCmluZGV4IGNiNWEwOGFhM2ViN2Q2YjhjODI1N2RjODQ4
ZGNlYzExMzQxOWM5Y2QuLjYyYzAxZTVhMzI3NzQyMjQzNjYyZmViYzIxZWRlMDgwZDkyMzY1OWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvTWVkaWFRdWVyeVBhcnNlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9NZWRpYVF1ZXJ5UGFyc2VyLmNwcApA
QCAtMjQ3LDcgKzI0Nyw3IEBAIHZvaWQgTWVkaWFRdWVyeVBhcnNlcjo6c2tpcFVudGlsQ29tbWEo
Q1NTUGFyc2VyVG9rZW5UeXBlIHR5cGUsIGNvbnN0IENTU1BhcnNlclRvCiAgICAgaWYgKCh0eXBl
ID09IENvbW1hVG9rZW4gJiYgIW1fYmxvY2tXYXRjaGVyLmJsb2NrTGV2ZWwoKSkgfHwgdHlwZSA9
PSBFT0ZUb2tlbikgewogICAgICAgICBtX3N0YXRlID0gUmVhZFJlc3RyaWN0b3I7CiAgICAgICAg
IG1fbWVkaWFRdWVyeURhdGEuY2xlYXIoKTsKLSAgICAgICAgTWVkaWFRdWVyeSBxdWVyeSA9IE1l
ZGlhUXVlcnkoTWVkaWFRdWVyeTo6Tm90LCAiYWxsIiwgVmVjdG9yPE1lZGlhUXVlcnlFeHByZXNz
aW9uPigpKTsKKyAgICAgICAgTWVkaWFRdWVyeSBxdWVyeSA9IE1lZGlhUXVlcnkoTWVkaWFRdWVy
eTo6Tm90LCAiYWxsIl9zLCBWZWN0b3I8TWVkaWFRdWVyeUV4cHJlc3Npb24+KCkpOwogICAgICAg
ICBtX3F1ZXJ5U2V0LT5hZGRNZWRpYVF1ZXJ5KFdURk1vdmUocXVlcnkpKTsKICAgICB9CiB9CkBA
IC0zMDksNyArMzA5LDcgQEAgUmVmUHRyPE1lZGlhUXVlcnlTZXQ+IE1lZGlhUXVlcnlQYXJzZXI6
OnBhcnNlSW50ZXJuYWwoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UKICAgICAgICAgcHJvY2Vz
c1Rva2VuKENTU1BhcnNlclRva2VuKEVPRlRva2VuKSwgcmFuZ2UpOwogCiAgICAgaWYgKG1fc3Rh
dGUgIT0gUmVhZEFuZCAmJiBtX3N0YXRlICE9IFJlYWRSZXN0cmljdG9yICYmIG1fc3RhdGUgIT0g
RG9uZSAmJiBtX3N0YXRlICE9IFJlYWRNZWRpYU5vdCkgewotICAgICAgICBNZWRpYVF1ZXJ5IHF1
ZXJ5ID0gTWVkaWFRdWVyeShNZWRpYVF1ZXJ5OjpOb3QsICJhbGwiLCBWZWN0b3I8TWVkaWFRdWVy
eUV4cHJlc3Npb24+KCkpOworICAgICAgICBNZWRpYVF1ZXJ5IHF1ZXJ5ID0gTWVkaWFRdWVyeShN
ZWRpYVF1ZXJ5OjpOb3QsICJhbGwiX3MsIFZlY3RvcjxNZWRpYVF1ZXJ5RXhwcmVzc2lvbj4oKSk7
CiAgICAgICAgIG1fcXVlcnlTZXQtPmFkZE1lZGlhUXVlcnkoV1RGTW92ZShxdWVyeSkpOwogICAg
IH0gZWxzZSBpZiAobV9tZWRpYVF1ZXJ5RGF0YS5jdXJyZW50TWVkaWFRdWVyeUNoYW5nZWQoKSkK
ICAgICAgICAgY29tbWl0TWVkaWFRdWVyeSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL3BhcnNlci9TaXplc0F0dHJpYnV0ZVBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
cGFyc2VyL1NpemVzQXR0cmlidXRlUGFyc2VyLmNwcAppbmRleCBkNmU0OGEyM2ZmOTdlMGE4Yjcz
NmQ4MDM3OTc0MjQ3NTA1YzM3ZmY4Li40ZGE0MDE2ZTYwNjU3ZmIzNzQ1MmVlMWI5MWE2MWQ1NmUw
ODg0ODg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL1NpemVzQXR0cmli
dXRlUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL1NpemVzQXR0cmli
dXRlUGFyc2VyLmNwcApAQCAtMTEyLDcgKzExMiw3IEBAIGJvb2wgU2l6ZXNBdHRyaWJ1dGVQYXJz
ZXI6Om1lZGlhQ29uZGl0aW9uTWF0Y2hlcyhjb25zdCBNZWRpYVF1ZXJ5U2V0JiBtZWRpYUNvbmRp
CiAgICAgaWYgKCFyZW5kZXJlcikKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGF1dG8mIHN0
eWxlID0gcmVuZGVyZXItPnN0eWxlKCk7Ci0gICAgcmV0dXJuIE1lZGlhUXVlcnlFdmFsdWF0b3Ig
eyAic2NyZWVuIiwgbV9kb2N1bWVudCwgJnN0eWxlIH0uZXZhbHVhdGUobWVkaWFDb25kaXRpb24s
IG1fbWVkaWFRdWVyeUR5bmFtaWNSZXN1bHRzKTsKKyAgICByZXR1cm4gTWVkaWFRdWVyeUV2YWx1
YXRvciB7ICJzY3JlZW4iX3MsIG1fZG9jdW1lbnQsICZzdHlsZSB9LmV2YWx1YXRlKG1lZGlhQ29u
ZGl0aW9uLCBtX21lZGlhUXVlcnlEeW5hbWljUmVzdWx0cyk7CiB9CiAKIGJvb2wgU2l6ZXNBdHRy
aWJ1dGVQYXJzZXI6OnBhcnNlKENTU1BhcnNlclRva2VuUmFuZ2UgcmFuZ2UpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NOdW1lcmljRmFjdG9yeS5oIGIvU291cmNl
L1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTTnVtZXJpY0ZhY3RvcnkuaAppbmRleCA4MjM1MGI5OWQ4
NzRiMGZhOTA2NWY2NGRkZDU5OTNkZDZkODMwYjM5Li4zNTM2MmIyMTZkMDJiYjcyM2I3ODZhMmM3
MjEzM2QxNTYzYmIyMGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9D
U1NOdW1lcmljRmFjdG9yeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU051
bWVyaWNGYWN0b3J5LmgKQEAgLTQzLDY0ICs0Myw2NCBAQCBjbGFzcyBDU1NOdW1lcmljRmFjdG9y
eSBmaW5hbCA6IHB1YmxpYyBTdXBwbGVtZW50PERPTUNTU05hbWVzcGFjZT4gewogcHVibGljOgog
ICAgIGV4cGxpY2l0IENTU051bWVyaWNGYWN0b3J5KERPTUNTU05hbWVzcGFjZSYpIHsgfQogCi0g
ICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IG51bWJlcihkb3VibGUgdmFsdWUpIHsgcmV0dXJu
IENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAibnVtYmVyIik7IH0KLSAgICBzdGF0aWMgUmVm
PENTU1VuaXRWYWx1ZT4gcGVyY2VudChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1
ZTo6Y3JlYXRlKHZhbHVlLCAicGVyY2VudCIpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFs
dWU+IG51bWJlcihkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZh
bHVlLCAibnVtYmVyIl9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBwZXJjZW50
KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJwZXJj
ZW50Il9zKTsgfQogCiAKICAgICAvLyA8bGVuZ3RoPgotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZh
bHVlPiBlbShkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVl
LCAiZW0iKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBleChkb3VibGUgdmFsdWUp
IHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiZXgiKTsgfQotICAgIHN0YXRp
YyBSZWY8Q1NTVW5pdFZhbHVlPiBjaChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1
ZTo6Y3JlYXRlKHZhbHVlLCAiY2giKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBp
Yyhkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiaWMi
KTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiByZW0oZG91YmxlIHZhbHVlKSB7IHJl
dHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInJlbSIpOyB9Ci0gICAgc3RhdGljIFJl
ZjxDU1NVbml0VmFsdWU+IGxoKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpj
cmVhdGUodmFsdWUsICJsaCIpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHJsaChk
b3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAicmxoIik7
IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gdncoZG91YmxlIHZhbHVlKSB7IHJldHVy
biBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInZ3Iik7IH0KLSAgICBzdGF0aWMgUmVmPENT
U1VuaXRWYWx1ZT4gdmgoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0
ZSh2YWx1ZSwgInZoIik7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gdmkoZG91Ymxl
IHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInZpIik7IH0KLSAg
ICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gdmIoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NV
bml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInZiIik7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRW
YWx1ZT4gdm1pbihkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZh
bHVlLCAidm1pbiIpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHZtYXgoZG91Ymxl
IHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInZtYXgiKTsgfQot
ICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBjbShkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENT
U1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiY20iKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5p
dFZhbHVlPiBtbShkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZh
bHVlLCAibW0iKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBxKGRvdWJsZSB2YWx1
ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJxIik7IH0KLSAgICBzdGF0
aWMgUmVmPENTU1VuaXRWYWx1ZT4gaW4oZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFs
dWU6OmNyZWF0ZSh2YWx1ZSwgImluIik7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4g
cHQoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInB0
Iik7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gcGMoZG91YmxlIHZhbHVlKSB7IHJl
dHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInBjIik7IH0KLSAgICBzdGF0aWMgUmVm
PENTU1VuaXRWYWx1ZT4gcHgoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNy
ZWF0ZSh2YWx1ZSwgInB4Iik7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gY3F3KGRv
dWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJjcXciKTsg
fQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBjcWgoZG91YmxlIHZhbHVlKSB7IHJldHVy
biBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImNxaCIpOyB9Ci0gICAgc3RhdGljIFJlZjxD
U1NVbml0VmFsdWU+IGNxaShkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3Jl
YXRlKHZhbHVlLCAiY3FpIik7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gY3FiKGRv
dWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJjcWIiKTsg
fQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBjcW1pbihkb3VibGUgdmFsdWUpIHsgcmV0
dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiY3FtaW4iKTsgfQotICAgIHN0YXRpYyBS
ZWY8Q1NTVW5pdFZhbHVlPiBjcW1heChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1
ZTo6Y3JlYXRlKHZhbHVlLCAiY3FtYXgiKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVl
PiBlbShkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAi
ZW0iX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGV4KGRvdWJsZSB2YWx1ZSkg
eyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJleCJfcyk7IH0KKyAgICBzdGF0
aWMgUmVmPENTU1VuaXRWYWx1ZT4gY2goZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFs
dWU6OmNyZWF0ZSh2YWx1ZSwgImNoIl9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVl
PiBpYyhkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAi
aWMiX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHJlbShkb3VibGUgdmFsdWUp
IHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAicmVtIl9zKTsgfQorICAgIHN0
YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBsaChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRW
YWx1ZTo6Y3JlYXRlKHZhbHVlLCAibGgiX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFs
dWU+IHJsaChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVl
LCAicmxoIl9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiB2dyhkb3VibGUgdmFs
dWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAidnciX3MpOyB9CisgICAg
c3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHZoKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5p
dFZhbHVlOjpjcmVhdGUodmFsdWUsICJ2aCJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRW
YWx1ZT4gdmkoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1
ZSwgInZpIl9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiB2Yihkb3VibGUgdmFs
dWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAidmIiX3MpOyB9CisgICAg
c3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHZtaW4oZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NV
bml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInZtaW4iX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NV
bml0VmFsdWU+IHZtYXgoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0
ZSh2YWx1ZSwgInZtYXgiX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGNtKGRv
dWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJjbSJfcyk7
IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gbW0oZG91YmxlIHZhbHVlKSB7IHJldHVy
biBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgIm1tIl9zKTsgfQorICAgIHN0YXRpYyBSZWY8
Q1NTVW5pdFZhbHVlPiBxKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVh
dGUodmFsdWUsICJxIl9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBpbihkb3Vi
bGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiaW4iX3MpOyB9
CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHB0KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4g
Q1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJwdCJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENT
U1VuaXRWYWx1ZT4gcGMoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0
ZSh2YWx1ZSwgInBjIl9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBweChkb3Vi
bGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAicHgiX3MpOyB9
CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGNxdyhkb3VibGUgdmFsdWUpIHsgcmV0dXJu
IENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiY3F3Il9zKTsgfQorICAgIHN0YXRpYyBSZWY8
Q1NTVW5pdFZhbHVlPiBjcWgoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNy
ZWF0ZSh2YWx1ZSwgImNxaCJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gY3Fp
KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJjcWki
X3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGNxYihkb3VibGUgdmFsdWUpIHsg
cmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiY3FiIl9zKTsgfQorICAgIHN0YXRp
YyBSZWY8Q1NTVW5pdFZhbHVlPiBjcW1pbihkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRW
YWx1ZTo6Y3JlYXRlKHZhbHVlLCAiY3FtaW4iX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0
VmFsdWU+IGNxbWF4KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUo
dmFsdWUsICJjcW1heCJfcyk7IH0KIAogCiAgICAgLy8gPGFuZ2xlPgotICAgIHN0YXRpYyBSZWY8
Q1NTVW5pdFZhbHVlPiBkZWcoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNy
ZWF0ZSh2YWx1ZSwgImRlZyIpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGdyYWQo
ZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImdyYWQi
KTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiByYWQoZG91YmxlIHZhbHVlKSB7IHJl
dHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInJhZCIpOyB9Ci0gICAgc3RhdGljIFJl
ZjxDU1NVbml0VmFsdWU+IHR1cm4oZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6
OmNyZWF0ZSh2YWx1ZSwgInR1cm4iKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBk
ZWcoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImRl
ZyJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gZ3JhZChkb3VibGUgdmFsdWUp
IHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiZ3JhZCJfcyk7IH0KKyAgICBz
dGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gcmFkKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5p
dFZhbHVlOjpjcmVhdGUodmFsdWUsICJyYWQiX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0
VmFsdWU+IHR1cm4oZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2
YWx1ZSwgInR1cm4iX3MpOyB9CiAKIAogICAgIC8vIDx0aW1lPgotICAgIHN0YXRpYyBSZWY8Q1NT
VW5pdFZhbHVlPiBzKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUo
dmFsdWUsICJzIik7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gbXMoZG91YmxlIHZh
bHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgIm1zIik7IH0KKyAgICBz
dGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gcyhkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRW
YWx1ZTo6Y3JlYXRlKHZhbHVlLCAicyJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1
ZT4gbXMoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwg
Im1zIl9zKTsgfQogCiAKICAgICAvLyA8ZnJlcXVlbmN5PgotICAgIHN0YXRpYyBSZWY8Q1NTVW5p
dFZhbHVlPiBoeihkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZh
bHVlLCAiaHoiKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBrSHooZG91YmxlIHZh
bHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImtoeiIpOyB9CisgICAg
c3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGh6KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5p
dFZhbHVlOjpjcmVhdGUodmFsdWUsICJoeiJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRW
YWx1ZT4ga0h6KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFs
dWUsICJraHoiX3MpOyB9CiAKIAogICAgIC8vIDxyZXNvbHV0aW9uPgotICAgIHN0YXRpYyBSZWY8
Q1NTVW5pdFZhbHVlPiBkcGkoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNy
ZWF0ZSh2YWx1ZSwgImRwaSIpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGRwY20o
ZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImRwY20i
KTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBkcHB4KGRvdWJsZSB2YWx1ZSkgeyBy
ZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJkcHB4Iik7IH0KKyAgICBzdGF0aWMg
UmVmPENTU1VuaXRWYWx1ZT4gZHBpKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVl
OjpjcmVhdGUodmFsdWUsICJkcGkiX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+
IGRwY20oZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwg
ImRwY20iX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGRwcHgoZG91YmxlIHZh
bHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImRwcHgiX3MpOyB9CiAK
IAogICAgIC8vIDxmbGV4PgotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBmcihkb3VibGUg
dmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiZnIiKTsgfQorICAg
IHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBmcihkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1Vu
aXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiZnIiX3MpOyB9CiAKIAogcHJpdmF0ZToKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU051bWVyaWNWYWx1ZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NOdW1lcmljVmFsdWUuY3BwCmluZGV4IGNlZTE3Yzg3
MDhmOGNiNjM4YWUxMTNhMzRlNzEyYzU0MTIzMTBjYWYuLmVkN2JmOTgzOGIyODM2ZjAwZmRkNWE5
NWE0OWI3YjBjMDM2NjZlZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9t
L0NTU051bWVyaWNWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NT
TnVtZXJpY1ZhbHVlLmNwcApAQCAtMTU3LDcgKzE1Nyw3IEBAIFJlZjxDU1NOdW1lcmljVmFsdWU+
IENTU051bWVyaWNWYWx1ZTo6bXVsdGlwbHlJbnRlcm5hbChWZWN0b3I8UmVmPENTU051bWVyaWNW
YWx1CiAgICAgICAgICAgICBkb3VibGUgcHJvZHVjdCA9IDE7CiAgICAgICAgICAgICBmb3IgKGNv
bnN0IFJlZjxDU1NOdW1lcmljVmFsdWU+JiB2YWx1ZSA6IHZhbHVlcykKICAgICAgICAgICAgICAg
ICBwcm9kdWN0ICo9IGRvd25jYXN0PENTU1VuaXRWYWx1ZT4odmFsdWUuZ2V0KCkpLnZhbHVlKCk7
Ci0gICAgICAgICAgICBTdHJpbmcgdW5pdCA9IG5vbk51bWJlclVuaXRJbmRleCA/IGRvd25jYXN0
PENTU1VuaXRWYWx1ZT4odmFsdWVzWypub25OdW1iZXJVbml0SW5kZXhdLmdldCgpKS51bml0KCkg
OiAibnVtYmVyIjsKKyAgICAgICAgICAgIFN0cmluZyB1bml0ID0gbm9uTnVtYmVyVW5pdEluZGV4
ID8gZG93bmNhc3Q8Q1NTVW5pdFZhbHVlPih2YWx1ZXNbKm5vbk51bWJlclVuaXRJbmRleF0uZ2V0
KCkpLnVuaXQoKSA6ICJudW1iZXIiX3M7CiAgICAgICAgICAgICByZXR1cm4gQ1NTVW5pdFZhbHVl
OjpjcmVhdGUocHJvZHVjdCwgdW5pdCk7CiAgICAgICAgIH0KICAgICB9CkBAIC0yMzUsNyArMjM1
LDcgQEAgUmVmPENTU1VuaXRWYWx1ZT4gQ1NTTnVtZXJpY1ZhbHVlOjp0byhTdHJpbmcmJiB1bml0
KQogICAgIFVOVVNFRF9QQVJBTSh1bml0KTsKICAgICAvLyBodHRwczovL2RyYWZ0cy5jc3MtaG91
ZGluaS5vcmcvY3NzLXR5cGVkLW9tLyNkb20tY3NzbnVtZXJpY3ZhbHVlLXRvCiAgICAgLy8gRklY
TUU6IGFkZCBpbXBsLgotICAgIHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSgxLjAsICJudW1i
ZXIiKTsKKyAgICByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUoMS4wLCAibnVtYmVyIl9zKTsK
IH0KIAogUmVmPENTU01hdGhTdW0+IENTU051bWVyaWNWYWx1ZTo6dG9TdW0oRml4ZWRWZWN0b3I8
U3RyaW5nPiYmIHVuaXRzKQpAQCAtMjU4LDcgKzI1OCw3IEBAIEV4Y2VwdGlvbk9yPFJlZjxDU1NO
dW1lcmljVmFsdWU+PiBDU1NOdW1lcmljVmFsdWU6OnBhcnNlKFN0cmluZyYmIGNzc1RleHQpCiAg
ICAgVU5VU0VEX1BBUkFNKGNzc1RleHQpOwogICAgIC8vIGh0dHBzOi8vZHJhZnRzLmNzcy1ob3Vk
aW5pLm9yZy9jc3MtdHlwZWQtb20vI2RvbS1jc3NudW1lcmljdmFsdWUtcGFyc2UKICAgICAvLyBG
SVhNRTogYWRkIGltcGwuCi0gICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9y
LCAiTm90IGltcGxlbWVudGVkIEVycm9yIiB9OworICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RT
dXBwb3J0ZWRFcnJvciwgIk5vdCBpbXBsZW1lbnRlZCBFcnJvciJfcyB9OwogfQogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9D
U1NTdHlsZVZhbHVlRmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NT
dHlsZVZhbHVlRmFjdG9yeS5jcHAKaW5kZXggOWZjNzBmYjEwMjcxNjg3MTQ3NDUzNjY1MmQ0Y2Mx
MzEwNGRmMzQyNC4uMGFiYjNhNDgyODUyZGJkNGRkMzE3OGYyNDk4MzJmNTg3OGI3MWJhZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTU3R5bGVWYWx1ZUZhY3Rvcnku
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU1N0eWxlVmFsdWVGYWN0b3J5
LmNwcApAQCAtMjY0LDcgKzI2NCw3IEBAIEV4Y2VwdGlvbk9yPFJlZjxDU1NTdHlsZVZhbHVlPj4g
Q1NTU3R5bGVWYWx1ZUZhY3Rvcnk6OnJlaWZ5VmFsdWUoUmVmPENTU1ZhbHVlPiYmCiAgICAgICAg
IC8vIFJlZmVyIHRvIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy10eXBlZC1vbS90aGUtc3R5bGVwcm9wZXJ0eW1hcC9pbmxpbmUvZ2V0Lmh0bWwKICAg
ICAgICAgYXV0byB2YWx1ZUxpc3QgPSBkb3duY2FzdDxDU1NWYWx1ZUxpc3Q+KGNzc1ZhbHVlLnB0
cigpKTsKICAgICAgICAgaWYgKCF2YWx1ZUxpc3QtPmxlbmd0aCgpKQotICAgICAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIlRoZSBDU1NWYWx1ZUxpc3Qgc2hvdWxkIG5vdCBi
ZSBlbXB0eS4iIH07CisgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAi
VGhlIENTU1ZhbHVlTGlzdCBzaG91bGQgbm90IGJlIGVtcHR5LiJfcyB9OwogICAgICAgICAKICAg
ICAgICAgcmV0dXJuIHJlaWZ5VmFsdWUoV1RGTW92ZSgqdmFsdWVMaXN0LT5iZWdpbigpKSwgZG9j
dW1lbnQpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2Ev
SFRNTENvbnZlcnRlci5tbSBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvSFRNTENvbnZl
cnRlci5tbQppbmRleCBiNjdhNjM0OTczN2I4NWJhYzI5MzJjZTE4YWI4M2Y3M2Y4MTMxYWIzLi4y
ZDUzOWVkMmM3MWYyMmJmMjhiZjlkZjg1NDRhOWJlOTg4ZWE4N2VmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0hUTUxDb252ZXJ0ZXIubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9jb2NvYS9IVE1MQ29udmVydGVyLm1tCkBAIC01OTYsNyArNTk2LDcgQEAg
U3RyaW5nIEhUTUxDb252ZXJ0ZXJDYWNoZXM6OnByb3BlcnR5VmFsdWVGb3JOb2RlKE5vZGUmIG5v
ZGUsIENTU1Byb3BlcnR5SUQgcHJvcGUKICAgICBzd2l0Y2ggKHByb3BlcnR5SWQpIHsKICAgICBj
YXNlIENTU1Byb3BlcnR5RGlzcGxheToKICAgICAgICAgaWYgKGVsZW1lbnQuaGFzVGFnTmFtZSho
ZWFkVGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoc2NyaXB0VGFnKSB8fCBlbGVtZW50Lmhhc1Rh
Z05hbWUoYXBwbGV0VGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUobm9mcmFtZXNUYWcpKQotICAg
ICAgICAgICAgcmV0dXJuICJub25lIjsKKyAgICAgICAgICAgIHJldHVybiAibm9uZSJfczsKICAg
ICAgICAgZWxzZSBpZiAoZWxlbWVudC5oYXNUYWdOYW1lKGFkZHJlc3NUYWcpIHx8IGVsZW1lbnQu
aGFzVGFnTmFtZShibG9ja3F1b3RlVGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoYm9keVRhZykg
fHwgZWxlbWVudC5oYXNUYWdOYW1lKGNlbnRlclRhZykKICAgICAgICAgICAgICB8fCBlbGVtZW50
Lmhhc1RhZ05hbWUoZGRUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZShkaXJUYWcpIHx8IGVsZW1l
bnQuaGFzVGFnTmFtZShkaXZUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZShkbFRhZykKICAgICAg
ICAgICAgICB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoZHRUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFt
ZShmaWVsZHNldFRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKGZvcm1UYWcpIHx8IGVsZW1lbnQu
aGFzVGFnTmFtZShmcmFtZVRhZykKQEAgLTYwNCw2MiArNjA0LDYyIEBAIFN0cmluZyBIVE1MQ29u
dmVydGVyQ2FjaGVzOjpwcm9wZXJ0eVZhbHVlRm9yTm9kZShOb2RlJiBub2RlLCBDU1NQcm9wZXJ0
eUlEIHByb3BlCiAgICAgICAgICAgICAgfHwgZWxlbWVudC5oYXNUYWdOYW1lKGgyVGFnKSB8fCBl
bGVtZW50Lmhhc1RhZ05hbWUoaDNUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZShoNFRhZykgfHwg
ZWxlbWVudC5oYXNUYWdOYW1lKGg1VGFnKQogICAgICAgICAgICAgIHx8IGVsZW1lbnQuaGFzVGFn
TmFtZShoNlRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKGlmcmFtZVRhZykgfHwgZWxlbWVudC5o
YXNUYWdOYW1lKG1lbnVUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZShub3NjcmlwdFRhZykKICAg
ICAgICAgICAgICB8fCBlbGVtZW50Lmhhc1RhZ05hbWUob2xUYWcpIHx8IGVsZW1lbnQuaGFzVGFn
TmFtZShwVGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUocHJlVGFnKSB8fCBlbGVtZW50Lmhhc1Rh
Z05hbWUodWxUYWcpKQotICAgICAgICAgICAgcmV0dXJuICJibG9jayI7CisgICAgICAgICAgICBy
ZXR1cm4gImJsb2NrIl9zOwogICAgICAgICBlbHNlIGlmIChlbGVtZW50Lmhhc1RhZ05hbWUobGlU
YWcpKQotICAgICAgICAgICAgcmV0dXJuICJsaXN0LWl0ZW0iOworICAgICAgICAgICAgcmV0dXJu
ICJsaXN0LWl0ZW0iX3M7CiAgICAgICAgIGVsc2UgaWYgKGVsZW1lbnQuaGFzVGFnTmFtZSh0YWJs
ZVRhZykpCi0gICAgICAgICAgICByZXR1cm4gInRhYmxlIjsKKyAgICAgICAgICAgIHJldHVybiAi
dGFibGUiX3M7CiAgICAgICAgIGVsc2UgaWYgKGVsZW1lbnQuaGFzVGFnTmFtZSh0clRhZykpCi0g
ICAgICAgICAgICByZXR1cm4gInRhYmxlLXJvdyI7CisgICAgICAgICAgICByZXR1cm4gInRhYmxl
LXJvdyJfczsKICAgICAgICAgZWxzZSBpZiAoZWxlbWVudC5oYXNUYWdOYW1lKHRoVGFnKSB8fCBl
bGVtZW50Lmhhc1RhZ05hbWUodGRUYWcpKQotICAgICAgICAgICAgcmV0dXJuICJ0YWJsZS1jZWxs
IjsKKyAgICAgICAgICAgIHJldHVybiAidGFibGUtY2VsbCJfczsKICAgICAgICAgZWxzZSBpZiAo
ZWxlbWVudC5oYXNUYWdOYW1lKHRoZWFkVGFnKSkKLSAgICAgICAgICAgIHJldHVybiAidGFibGUt
aGVhZGVyLWdyb3VwIjsKKyAgICAgICAgICAgIHJldHVybiAidGFibGUtaGVhZGVyLWdyb3VwIl9z
OwogICAgICAgICBlbHNlIGlmIChlbGVtZW50Lmhhc1RhZ05hbWUodGJvZHlUYWcpKQotICAgICAg
ICAgICAgcmV0dXJuICJ0YWJsZS1yb3ctZ3JvdXAiOworICAgICAgICAgICAgcmV0dXJuICJ0YWJs
ZS1yb3ctZ3JvdXAiX3M7CiAgICAgICAgIGVsc2UgaWYgKGVsZW1lbnQuaGFzVGFnTmFtZSh0Zm9v
dFRhZykpCi0gICAgICAgICAgICByZXR1cm4gInRhYmxlLWZvb3Rlci1ncm91cCI7CisgICAgICAg
ICAgICByZXR1cm4gInRhYmxlLWZvb3Rlci1ncm91cCJfczsKICAgICAgICAgZWxzZSBpZiAoZWxl
bWVudC5oYXNUYWdOYW1lKGNvbFRhZykpCi0gICAgICAgICAgICByZXR1cm4gInRhYmxlLWNvbHVt
biI7CisgICAgICAgICAgICByZXR1cm4gInRhYmxlLWNvbHVtbiJfczsKICAgICAgICAgZWxzZSBp
ZiAoZWxlbWVudC5oYXNUYWdOYW1lKGNvbGdyb3VwVGFnKSkKLSAgICAgICAgICAgIHJldHVybiAi
dGFibGUtY29sdW1uLWdyb3VwIjsKKyAgICAgICAgICAgIHJldHVybiAidGFibGUtY29sdW1uLWdy
b3VwIl9zOwogICAgICAgICBlbHNlIGlmIChlbGVtZW50Lmhhc1RhZ05hbWUoY2FwdGlvblRhZykp
Ci0gICAgICAgICAgICByZXR1cm4gInRhYmxlLWNhcHRpb24iOworICAgICAgICAgICAgcmV0dXJu
ICJ0YWJsZS1jYXB0aW9uIl9zOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENTU1Byb3BlcnR5
V2hpdGVTcGFjZToKICAgICAgICAgaWYgKGVsZW1lbnQuaGFzVGFnTmFtZShwcmVUYWcpKQotICAg
ICAgICAgICAgcmV0dXJuICJwcmUiOworICAgICAgICAgICAgcmV0dXJuICJwcmUiX3M7CiAgICAg
ICAgIGluaGVyaXQgPSB0cnVlOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENTU1Byb3BlcnR5
Rm9udFN0eWxlOgogICAgICAgICBpZiAoZWxlbWVudC5oYXNUYWdOYW1lKGlUYWcpIHx8IGVsZW1l
bnQuaGFzVGFnTmFtZShjaXRlVGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoZW1UYWcpIHx8IGVs
ZW1lbnQuaGFzVGFnTmFtZSh2YXJUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZShhZGRyZXNzVGFn
KSkKLSAgICAgICAgICAgIHJldHVybiAiaXRhbGljIjsKKyAgICAgICAgICAgIHJldHVybiAiaXRh
bGljIl9zOwogICAgICAgICBpbmhlcml0ID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eUZvbnRXZWlnaHQ6CiAgICAgICAgIGlmIChlbGVtZW50Lmhhc1RhZ05hbWUo
YlRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKHN0cm9uZ1RhZykgfHwgZWxlbWVudC5oYXNUYWdO
YW1lKHRoVGFnKSkKLSAgICAgICAgICAgIHJldHVybiAiYm9sZGVyIjsKKyAgICAgICAgICAgIHJl
dHVybiAiYm9sZGVyIl9zOwogICAgICAgICBpbmhlcml0ID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVRleHREZWNvcmF0aW9uTGluZToKICAgICAgICAgaWYgKGVs
ZW1lbnQuaGFzVGFnTmFtZSh1VGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoaW5zVGFnKSkKLSAg
ICAgICAgICAgIHJldHVybiAidW5kZXJsaW5lIjsKKyAgICAgICAgICAgIHJldHVybiAidW5kZXJs
aW5lIl9zOwogICAgICAgICBlbHNlIGlmIChlbGVtZW50Lmhhc1RhZ05hbWUoc1RhZykgfHwgZWxl
bWVudC5oYXNUYWdOYW1lKHN0cmlrZVRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKGRlbFRhZykp
Ci0gICAgICAgICAgICByZXR1cm4gImxpbmUtdGhyb3VnaCI7CisgICAgICAgICAgICByZXR1cm4g
ImxpbmUtdGhyb3VnaCJfczsKICAgICAgICAgaW5oZXJpdCA9IHRydWU7IC8vIEZJWE1FOiBUaGlz
IGlzIG5vdCBzdHJpY3RseSBjb3JyZWN0CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTUHJv
cGVydHlUZXh0QWxpZ246CiAgICAgICAgIGlmIChlbGVtZW50Lmhhc1RhZ05hbWUoY2VudGVyVGFn
KSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoY2FwdGlvblRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1l
KHRoVGFnKSkKLSAgICAgICAgICAgIHJldHVybiAiY2VudGVyIjsKKyAgICAgICAgICAgIHJldHVy
biAiY2VudGVyIl9zOwogICAgICAgICBpbmhlcml0ID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBDU1NQcm9wZXJ0eVZlcnRpY2FsQWxpZ246CiAgICAgICAgIGlmIChlbGVtZW50Lmhh
c1RhZ05hbWUoc3VwVGFnKSkKLSAgICAgICAgICAgIHJldHVybiAic3VwZXIiOworICAgICAgICAg
ICAgcmV0dXJuICJzdXBlciJfczsKICAgICAgICAgZWxzZSBpZiAoZWxlbWVudC5oYXNUYWdOYW1l
KHN1YlRhZykpCi0gICAgICAgICAgICByZXR1cm4gInN1YiI7CisgICAgICAgICAgICByZXR1cm4g
InN1YiJfczsKICAgICAgICAgZWxzZSBpZiAoZWxlbWVudC5oYXNUYWdOYW1lKHRoZWFkVGFnKSB8
fCBlbGVtZW50Lmhhc1RhZ05hbWUodGJvZHlUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZSh0Zm9v
dFRhZykpCi0gICAgICAgICAgICByZXR1cm4gIm1pZGRsZSI7CisgICAgICAgICAgICByZXR1cm4g
Im1pZGRsZSJfczsKICAgICAgICAgZWxzZSBpZiAoZWxlbWVudC5oYXNUYWdOYW1lKHRyVGFnKSB8
fCBlbGVtZW50Lmhhc1RhZ05hbWUodGhUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZSh0ZFRhZykp
CiAgICAgICAgICAgICBpbmhlcml0ID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CkBAIC0xODUyLDcg
KzE4NTIsNyBAQCBCT09MIEhUTUxDb252ZXJ0ZXI6Ol9wcm9jZXNzRWxlbWVudChFbGVtZW50JiBl
bGVtZW50LCBOU0ludGVnZXIgZGVwdGgpCiAgICAgICAgIFJldGFpblB0cjxOU1RleHRMaXN0PiBs
aXN0OwogICAgICAgICBTdHJpbmcgbGlzdFN0eWxlVHlwZSA9IF9jYWNoZXMtPnByb3BlcnR5VmFs
dWVGb3JOb2RlKGVsZW1lbnQsIENTU1Byb3BlcnR5TGlzdFN0eWxlVHlwZSk7CiAgICAgICAgIGlm
ICghbGlzdFN0eWxlVHlwZS5sZW5ndGgoKSkKLSAgICAgICAgICAgIGxpc3RTdHlsZVR5cGUgPSAi
ZGVjaW1hbCI7CisgICAgICAgICAgICBsaXN0U3R5bGVUeXBlID0gImRlY2ltYWwiX3M7CiAgICAg
ICAgIGxpc3QgPSBhZG9wdE5TKFtbUGxhdGZvcm1OU1RleHRMaXN0IGFsbG9jXSBpbml0V2l0aE1h
cmtlckZvcm1hdDpTdHJpbmcoInsiICsgbGlzdFN0eWxlVHlwZSArICJ9Iikgb3B0aW9uczowXSk7
CiAgICAgICAgIGlmIChpczxIVE1MT0xpc3RFbGVtZW50PihlbGVtZW50KSkgewogICAgICAgICAg
ICAgTlNJbnRlZ2VyIHN0YXJ0aW5nSXRlbU51bWJlciA9IGRvd25jYXN0PEhUTUxPTGlzdEVsZW1l
bnQ+KGVsZW1lbnQpLnN0YXJ0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L2NvY29hL1dlYkNvbnRlbnRSZWFkZXJDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
Y29jb2EvV2ViQ29udGVudFJlYWRlckNvY29hLm1tCmluZGV4IGU4ODZhMjdkYmQ2MjI0MGFkOTg0
MjA0NWNlYjgzMDUwYTJmYzAzZGYuLmQ4ZDE0MGRlZjdkM2EzOGIwMjRhNDExMzRiNjU4ZTdmMzE0
MTRlMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvV2ViQ29udGVu
dFJlYWRlckNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvV2ViQ29u
dGVudFJlYWRlckNvY29hLm1tCkBAIC03NjIsNyArNzYyLDcgQEAgc3RhdGljIFJlZjxIVE1MRWxl
bWVudD4gYXR0YWNobWVudEZvckRhdGEoRnJhbWUmIGZyYW1lLCBGcmFnbWVudGVkU2hhcmVkQnVm
ZmVyJgogICAgIGF1dG8gYXR0YWNobWVudFR5cGUgPSB0eXBlRm9yQXR0YWNobWVudEVsZW1lbnQo
Y29udGVudFR5cGUpOwogCiAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBpbnN0ZWFkIGFzayBDb3Jl
U2VydmljZXMgZm9yIGEgcHJlZmVycmVkIG5hbWUgY29ycmVzcG9uZGluZyB0byB0aGUgZ2l2ZW4g
Y29udGVudCB0eXBlLgotICAgIHN0YXRpYyBjb25zdCBjaGFyKiBkZWZhdWx0QXR0YWNobWVudE5h
bWUgPSAiZmlsZSI7CisgICAgc3RhdGljIGNvbnN0ZXhwciBBU0NJSUxpdGVyYWwgZGVmYXVsdEF0
dGFjaG1lbnROYW1lID0gImZpbGUiX3M7CiAKICAgICBTdHJpbmcgZmlsZU5hbWU7CiAgICAgaWYg
KG5hbWUuaXNFbXB0eSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NvY29h
L0J1bmRsZVJlc291cmNlTG9hZGVyLm1tIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NvY29hL0J1
bmRsZVJlc291cmNlTG9hZGVyLm1tCmluZGV4IGMzYjdiN2ZlNTVkYzMzMDQzY2M4YWUzOWNjZmE0
N2RiNzY5NjNlY2YuLjljMjc5MTEzOTU3OWUwZDQ2N2MzODBhNTIzZDU1MTUxNDIyMzFhYjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jb2NvYS9CdW5kbGVSZXNvdXJjZUxvYWRl
ci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY29jb2EvQnVuZGxlUmVzb3VyY2VMb2Fk
ZXIubW0KQEAgLTY1LDEzICs2NSwxMyBAQCB2b2lkIGxvYWRSZXNvdXJjZUZyb21CdW5kbGUoUmVz
b3VyY2VMb2FkZXImIGxvYWRlciwgY29uc3QgU3RyaW5nJiBzdWJkaXJlY3RvcnkpCiAKICAgICAg
ICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFtwcm90ZWN0ZWRMb2FkZXIgPSBXVEZNb3ZlKHBy
b3RlY3RlZExvYWRlciksIHVybCA9IFdURk1vdmUodXJsKS5pc29sYXRlZENvcHkoKSwgYnVmZmVy
ID0gU2hhcmVkQnVmZmVyOjpjcmVhdGUoZGF0YSldKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBh
dXRvIG1pbWVUeXBlID0gTUlNRVR5cGVSZWdpc3RyeTo6bWltZVR5cGVGb3JQYXRoKHVybC5wYXRo
KCkpOwotICAgICAgICAgICAgUmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSB7IHVybCwgbWltZVR5
cGUsIHN0YXRpY19jYXN0PGxvbmcgbG9uZz4oYnVmZmVyLT5zaXplKCkpLCBNSU1FVHlwZVJlZ2lz
dHJ5Ojppc1RleHRNSU1FVHlwZShtaW1lVHlwZSkgPyAiVVRGLTgiX3MgOiBudWxscHRyIH07Cisg
ICAgICAgICAgICBSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlIHsgdXJsLCBtaW1lVHlwZSwgc3Rh
dGljX2Nhc3Q8bG9uZyBsb25nPihidWZmZXItPnNpemUoKSksIE1JTUVUeXBlUmVnaXN0cnk6Omlz
VGV4dE1JTUVUeXBlKG1pbWVUeXBlKSA/ICJVVEYtOCJfcyA6IFN0cmluZygpIH07CiAgICAgICAg
ICAgICByZXNwb25zZS5zZXRIVFRQU3RhdHVzQ29kZSgyMDApOwogICAgICAgICAgICAgcmVzcG9u
c2Uuc2V0SFRUUFN0YXR1c1RleHQoIk9LIl9zKTsKICAgICAgICAgICAgIHJlc3BvbnNlLnNldFNv
dXJjZShSZXNvdXJjZVJlc3BvbnNlOjpTb3VyY2U6Ok5ldHdvcmspOwogCiAgICAgICAgICAgICAv
LyBBbGxvdyBpbWFnZXMgdG8gbG9hZC4KLSAgICAgICAgICAgIHJlc3BvbnNlLmFkZEhUVFBIZWFk
ZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6QWNjZXNzQ29udHJvbEFsbG93T3JpZ2luLCAiKiIpOwor
ICAgICAgICAgICAgcmVzcG9uc2UuYWRkSFRUUEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpB
Y2Nlc3NDb250cm9sQWxsb3dPcmlnaW4sICIqIl9zKTsKIAogICAgICAgICAgICAgcHJvdGVjdGVk
TG9hZGVyLT5kZWxpdmVyUmVzcG9uc2VBbmREYXRhKHJlc3BvbnNlLCBXVEZNb3ZlKGJ1ZmZlcikp
OwogICAgICAgICB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9tYWMvTG9h
ZGVyTlNVUkxFeHRyYXMubW0gYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvbWFjL0xvYWRlck5TVVJM
RXh0cmFzLm1tCmluZGV4IDU1MGRhYjgwZWUzYWE0NjA3MjFkZWI2YzMwYzg1YThlNmRmMGEwNDcu
LmU1OGY0NTU0ZmU0MDQ2ZTFkMzIxNGM5ZjE2YTBmMWViN2IyYmFiOTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9tYWMvTG9hZGVyTlNVUkxFeHRyYXMubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL21hYy9Mb2FkZXJOU1VSTEV4dHJhcy5tbQpAQCAtNjQsNyArNjQsNyBA
QCBOU1N0cmluZyAqc3VnZ2VzdGVkRmlsZW5hbWVXaXRoTUlNRVR5cGUoTlNVUkwgKnVybCwgY29u
c3QgU3RyaW5nJiBtaW1lVHlwZSkKICAgICAvLyBoYXZlIGEgZmlsZW5hbWUgd2hpY2ggaGFzIC50
YXIgaW4gaXQgb3IgZW5kcyBpbiAudGd6CiAgICAgaWYgKChtaW1lVHlwZSA9PSAiYXBwbGljYXRp
b24vdGFyIiB8fCBtaW1lVHlwZSA9PSAiYXBwbGljYXRpb24veC10YXIiKQogICAgICAgICAmJiAo
U3RyaW5nKGZpbGVuYW1lKS5jb250YWluc0lnbm9yaW5nQVNDSUlDYXNlKCIudGFyIikKLSAgICAg
ICAgfHwgU3RyaW5nKGZpbGVuYW1lKS5lbmRzV2l0aElnbm9yaW5nQVNDSUlDYXNlKCIudGd6Iikp
KSB7CisgICAgICAgIHx8IFN0cmluZyhmaWxlbmFtZSkuZW5kc1dpdGhJZ25vcmluZ0FTQ0lJQ2Fz
ZSgiLnRneiJfcykpKSB7CiAgICAgICAgIHJldHVybiBmaWxlbmFtZTsKICAgICB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvUmVzb3VyY2VVc2FnZU92ZXJsYXlDb2Nv
YS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvUmVzb3VyY2VVc2FnZU92ZXJsYXlDb2Nv
YS5tbQppbmRleCAxMTQ4NGQwYzU5MmMwN2ZmOTRlYzE3N2EwMTI4MDEwNzljMzk1OTcxLi5lMWRj
MjliODYyZDQyMjQzYTlhMjkxYTBlZDFmNWY0MzNmY2RhMWVhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL2NvY29hL1Jlc291cmNlVXNhZ2VPdmVybGF5Q29jb2EubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9SZXNvdXJjZVVzYWdlT3ZlcmxheUNvY29hLm1tCkBAIC0x
NjEsMTggKzE2MSwxOCBAQCBzdHJ1Y3QgSGlzdG9yaWNSZXNvdXJjZVVzYWdlRGF0YSB7CiBIaXN0
b3JpY1Jlc291cmNlVXNhZ2VEYXRhOjpIaXN0b3JpY1Jlc291cmNlVXNhZ2VEYXRhKCkKIHsKICAg
ICAvLyBWTSB0YWcgY2F0ZWdvcmllcy4KLSAgICBjYXRlZ29yaWVzW01lbW9yeUNhdGVnb3J5OjpK
U0pJVF0gPSBIaXN0b3JpY01lbW9yeUNhdGVnb3J5SW5mbyhNZW1vcnlDYXRlZ29yeTo6SlNKSVQs
IHsgMjU1LCA5NiwgMjU1IH0sICJKUyBKSVQiKTsKLSAgICBjYXRlZ29yaWVzW01lbW9yeUNhdGVn
b3J5OjpHaWdhY2FnZV0gPSBIaXN0b3JpY01lbW9yeUNhdGVnb3J5SW5mbyhNZW1vcnlDYXRlZ29y
eTo6R2lnYWNhZ2UsIHsgMTAxLCA3OSwgMjQwIH0sICJHaWdhY2FnZSIpOwotICAgIGNhdGVnb3Jp
ZXNbTWVtb3J5Q2F0ZWdvcnk6OkltYWdlc10gPSBIaXN0b3JpY01lbW9yeUNhdGVnb3J5SW5mbyhN
ZW1vcnlDYXRlZ29yeTo6SW1hZ2VzLCBDb2xvcjo6eWVsbG93LCAiSW1hZ2VzIik7Ci0gICAgY2F0
ZWdvcmllc1tNZW1vcnlDYXRlZ29yeTo6TGF5ZXJzXSA9IEhpc3RvcmljTWVtb3J5Q2F0ZWdvcnlJ
bmZvKE1lbW9yeUNhdGVnb3J5OjpMYXllcnMsIENvbG9yOjpjeWFuLCAiTGF5ZXJzIik7Ci0gICAg
Y2F0ZWdvcmllc1tNZW1vcnlDYXRlZ29yeTo6TGliY01hbGxvY10gPSBIaXN0b3JpY01lbW9yeUNh
dGVnb3J5SW5mbyhNZW1vcnlDYXRlZ29yeTo6TGliY01hbGxvYywgQ29sb3I6OmdyZWVuLCAibGli
YyBtYWxsb2MiKTsKLSAgICBjYXRlZ29yaWVzW01lbW9yeUNhdGVnb3J5OjpibWFsbG9jXSA9IEhp
c3RvcmljTWVtb3J5Q2F0ZWdvcnlJbmZvKE1lbW9yeUNhdGVnb3J5OjpibWFsbG9jLCB7IDI1NSwg
OTYsIDk2IH0sICJibWFsbG9jIik7Ci0gICAgY2F0ZWdvcmllc1tNZW1vcnlDYXRlZ29yeTo6SXNv
SGVhcF0gPSBIaXN0b3JpY01lbW9yeUNhdGVnb3J5SW5mbyhNZW1vcnlDYXRlZ29yeTo6SXNvSGVh
cCwgeyAxMjgsIDE1OSwgNjQgfSwgIklzb0hlYXAiKTsKLSAgICBjYXRlZ29yaWVzW01lbW9yeUNh
dGVnb3J5OjpPdGhlcl0gPSBIaXN0b3JpY01lbW9yeUNhdGVnb3J5SW5mbyhNZW1vcnlDYXRlZ29y
eTo6T3RoZXIsIHsgMTkyLCAyNTUsIDAgfSwgIk90aGVyIik7CisgICAgY2F0ZWdvcmllc1tNZW1v
cnlDYXRlZ29yeTo6SlNKSVRdID0gSGlzdG9yaWNNZW1vcnlDYXRlZ29yeUluZm8oTWVtb3J5Q2F0
ZWdvcnk6OkpTSklULCB7IDI1NSwgOTYsIDI1NSB9LCAiSlMgSklUIl9zKTsKKyAgICBjYXRlZ29y
aWVzW01lbW9yeUNhdGVnb3J5OjpHaWdhY2FnZV0gPSBIaXN0b3JpY01lbW9yeUNhdGVnb3J5SW5m
byhNZW1vcnlDYXRlZ29yeTo6R2lnYWNhZ2UsIHsgMTAxLCA3OSwgMjQwIH0sICJHaWdhY2FnZSJf
cyk7CisgICAgY2F0ZWdvcmllc1tNZW1vcnlDYXRlZ29yeTo6SW1hZ2VzXSA9IEhpc3RvcmljTWVt
b3J5Q2F0ZWdvcnlJbmZvKE1lbW9yeUNhdGVnb3J5OjpJbWFnZXMsIENvbG9yOjp5ZWxsb3csICJJ
bWFnZXMiX3MpOworICAgIGNhdGVnb3JpZXNbTWVtb3J5Q2F0ZWdvcnk6OkxheWVyc10gPSBIaXN0
b3JpY01lbW9yeUNhdGVnb3J5SW5mbyhNZW1vcnlDYXRlZ29yeTo6TGF5ZXJzLCBDb2xvcjo6Y3lh
biwgIkxheWVycyJfcyk7CisgICAgY2F0ZWdvcmllc1tNZW1vcnlDYXRlZ29yeTo6TGliY01hbGxv
Y10gPSBIaXN0b3JpY01lbW9yeUNhdGVnb3J5SW5mbyhNZW1vcnlDYXRlZ29yeTo6TGliY01hbGxv
YywgQ29sb3I6OmdyZWVuLCAibGliYyBtYWxsb2MiX3MpOworICAgIGNhdGVnb3JpZXNbTWVtb3J5
Q2F0ZWdvcnk6OmJtYWxsb2NdID0gSGlzdG9yaWNNZW1vcnlDYXRlZ29yeUluZm8oTWVtb3J5Q2F0
ZWdvcnk6OmJtYWxsb2MsIHsgMjU1LCA5NiwgOTYgfSwgImJtYWxsb2MiX3MpOworICAgIGNhdGVn
b3JpZXNbTWVtb3J5Q2F0ZWdvcnk6Oklzb0hlYXBdID0gSGlzdG9yaWNNZW1vcnlDYXRlZ29yeUlu
Zm8oTWVtb3J5Q2F0ZWdvcnk6Oklzb0hlYXAsIHsgMTI4LCAxNTksIDY0IH0sICJJc29IZWFwIl9z
KTsKKyAgICBjYXRlZ29yaWVzW01lbW9yeUNhdGVnb3J5OjpPdGhlcl0gPSBIaXN0b3JpY01lbW9y
eUNhdGVnb3J5SW5mbyhNZW1vcnlDYXRlZ29yeTo6T3RoZXIsIHsgMTkyLCAyNTUsIDAgfSwgIk90
aGVyIl9zKTsKIAogICAgIC8vIFN1YiBjYXRlZ29yaWVzIChlLmcgYnJlYWtkb3duIG9mIGJtYWxs
b2MgdGFnLikKLSAgICBjYXRlZ29yaWVzW01lbW9yeUNhdGVnb3J5OjpHQ0hlYXBdID0gSGlzdG9y
aWNNZW1vcnlDYXRlZ29yeUluZm8oTWVtb3J5Q2F0ZWdvcnk6OkdDSGVhcCwgeyAxNjAsIDE2MCwg
MjU1IH0sICJHQyBoZWFwIiwgdHJ1ZSk7Ci0gICAgY2F0ZWdvcmllc1tNZW1vcnlDYXRlZ29yeTo6
R0NPd25lZF0gPSBIaXN0b3JpY01lbW9yeUNhdGVnb3J5SW5mbyhNZW1vcnlDYXRlZ29yeTo6R0NP
d25lZCwgeyAyNTUsIDE5MiwgOTYgfSwgIkdDIG93bmVkIiwgdHJ1ZSk7CisgICAgY2F0ZWdvcmll
c1tNZW1vcnlDYXRlZ29yeTo6R0NIZWFwXSA9IEhpc3RvcmljTWVtb3J5Q2F0ZWdvcnlJbmZvKE1l
bW9yeUNhdGVnb3J5OjpHQ0hlYXAsIHsgMTYwLCAxNjAsIDI1NSB9LCAiR0MgaGVhcCJfcywgdHJ1
ZSk7CisgICAgY2F0ZWdvcmllc1tNZW1vcnlDYXRlZ29yeTo6R0NPd25lZF0gPSBIaXN0b3JpY01l
bW9yeUNhdGVnb3J5SW5mbyhNZW1vcnlDYXRlZ29yeTo6R0NPd25lZCwgeyAyNTUsIDE5MiwgOTYg
fSwgIkdDIG93bmVkIl9zLCB0cnVlKTsKIAogI2lmbmRlZiBOREVCVUcKICAgICAvLyBFbnN1cmUg
dGhpcyBhbGlnbnMgd2l0aCBSZXNvdXJjZVVzYWdlRGF0YSdzIGNhdGVnb3J5IG9yZGVyLgpAQCAt
MzExLDcgKzMxMSw3IEBAIHN0YXRpYyB2b2lkIGRyYXdDcHVIaXN0b3J5KENHQ29udGV4dFJlZiBj
b250ZXh0LCBmbG9hdCB4MSwgZmxvYXQgeTEsIGZsb2F0IHkyLCBSCiAgICAgICAgIGkrKzsKICAg
ICB9KTsKIAotICAgIGRyYXdHcmFwaExhYmVsKGNvbnRleHQsIHgxLCB5MiwgIkNQVSIpOworICAg
IGRyYXdHcmFwaExhYmVsKGNvbnRleHQsIHgxLCB5MiwgIkNQVSJfcyk7CiB9CiAKIHN0YXRpYyB2
b2lkIGRyYXdHQ0hpc3RvcnkoQ0dDb250ZXh0UmVmIGNvbnRleHQsIGZsb2F0IHgxLCBmbG9hdCB5
MSwgZmxvYXQgeTIsIFJpbmdCdWZmZXI8c2l6ZV90PiYgc2l6ZUhpc3RvcnksIFJpbmdCdWZmZXI8
c2l6ZV90PiYgY2FwYWNpdHlIaXN0b3J5KQpAQCAtMzU0LDcgKzM1NCw3IEBAIHN0YXRpYyB2b2lk
IGRyYXdHQ0hpc3RvcnkoQ0dDb250ZXh0UmVmIGNvbnRleHQsIGZsb2F0IHgxLCBmbG9hdCB5MSwg
ZmxvYXQgeTIsIFJpCiAgICAgICAgIGkrKzsKICAgICB9KTsKIAotICAgIGRyYXdHcmFwaExhYmVs
KGNvbnRleHQsIHgxLCB5MiwgIkdDIik7CisgICAgZHJhd0dyYXBoTGFiZWwoY29udGV4dCwgeDEs
IHkyLCAiR0MiX3MpOwogfQogCiBzdGF0aWMgdm9pZCBkcmF3TWVtSGlzdG9yeShDR0NvbnRleHRS
ZWYgY29udGV4dCwgZmxvYXQgeDEsIGZsb2F0IHkxLCBmbG9hdCB5MiwgSGlzdG9yaWNSZXNvdXJj
ZVVzYWdlRGF0YSYgZGF0YSkKQEAgLTQwMCw3ICs0MDAsNyBAQCBzdGF0aWMgdm9pZCBkcmF3TWVt
SGlzdG9yeShDR0NvbnRleHRSZWYgY29udGV4dCwgZmxvYXQgeDEsIGZsb2F0IHkxLCBmbG9hdCB5
MiwgSAogICAgICAgICArK2k7CiAgICAgfQogCi0gICAgZHJhd0dyYXBoTGFiZWwoY29udGV4dCwg
eDEsIHkyLCAiTWVtIik7CisgICAgZHJhd0dyYXBoTGFiZWwoY29udGV4dCwgeDEsIHkyLCAiTWVt
Il9zKTsKIH0KIAogc3RhdGljIGNvbnN0IGZsb2F0IGZ1bGxDaXJjbGVJblJhZGlhbnMgPSBwaUZs
b2F0ICogMjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvU2V0dGluZ3NC
YXNlQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL1NldHRpbmdzQmFzZUNvY29h
Lm1tCmluZGV4IGQyMWQ5OWQ4NjFiOGZhOTI4MmU5MWE5YWE0YTMwMWY4ZmI2NGQxNzcuLjQ3NzRj
ZTA4YTViOGI1MGY2NGExNjIwMmY1MzhiNGY0ZjdlZjJlNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvY29jb2EvU2V0dGluZ3NCYXNlQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9jb2NvYS9TZXR0aW5nc0Jhc2VDb2NvYS5tbQpAQCAtNDMsMTUgKzQzLDE1IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogdm9pZCBTZXR0aW5nc0Jhc2U6OmluaXRpYWxpemVEZWZhdWx0
Rm9udEZhbWlsaWVzKCkKIHsKLSAgICBzZXRTdGFuZGFyZEZvbnRGYW1pbHkoIlNvbmd0aSBUQyIs
IFVTQ1JJUFRfVFJBRElUSU9OQUxfSEFOKTsKLSAgICBzZXRTdGFuZGFyZEZvbnRGYW1pbHkoIlNv
bmd0aSBTQyIsIFVTQ1JJUFRfU0lNUExJRklFRF9IQU4pOwotICAgIHNldFN0YW5kYXJkRm9udEZh
bWlseSgiSGlyYWdpbm8gTWluY2hvIFByb04iLCBVU0NSSVBUX0tBVEFLQU5BX09SX0hJUkFHQU5B
KTsKLSAgICBzZXRTdGFuZGFyZEZvbnRGYW1pbHkoIkFwcGxlTXl1bmdqbyIsIFVTQ1JJUFRfSEFO
R1VMKTsKLQotICAgIHNldFN0YW5kYXJkRm9udEZhbWlseSgiVGltZXMiLCBVU0NSSVBUX0NPTU1P
Tik7Ci0gICAgc2V0Rml4ZWRGb250RmFtaWx5KCJDb3VyaWVyIiwgVVNDUklQVF9DT01NT04pOwot
ICAgIHNldFNlcmlmRm9udEZhbWlseSgiVGltZXMiLCBVU0NSSVBUX0NPTU1PTik7Ci0gICAgc2V0
U2Fuc1NlcmlmRm9udEZhbWlseSgiSGVsdmV0aWNhIiwgVVNDUklQVF9DT01NT04pOworICAgIHNl
dFN0YW5kYXJkRm9udEZhbWlseSgiU29uZ3RpIFRDIl9zLCBVU0NSSVBUX1RSQURJVElPTkFMX0hB
Tik7CisgICAgc2V0U3RhbmRhcmRGb250RmFtaWx5KCJTb25ndGkgU0MiX3MsIFVTQ1JJUFRfU0lN
UExJRklFRF9IQU4pOworICAgIHNldFN0YW5kYXJkRm9udEZhbWlseSgiSGlyYWdpbm8gTWluY2hv
IFByb04iX3MsIFVTQ1JJUFRfS0FUQUtBTkFfT1JfSElSQUdBTkEpOworICAgIHNldFN0YW5kYXJk
Rm9udEZhbWlseSgiQXBwbGVNeXVuZ2pvIl9zLCBVU0NSSVBUX0hBTkdVTCk7CisKKyAgICBzZXRT
dGFuZGFyZEZvbnRGYW1pbHkoIlRpbWVzIl9zLCBVU0NSSVBUX0NPTU1PTik7CisgICAgc2V0Rml4
ZWRGb250RmFtaWx5KCJDb3VyaWVyIl9zLCBVU0NSSVBUX0NPTU1PTik7CisgICAgc2V0U2VyaWZG
b250RmFtaWx5KCJUaW1lcyJfcywgVVNDUklQVF9DT01NT04pOworICAgIHNldFNhbnNTZXJpZkZv
bnRGYW1pbHkoIkhlbHZldGljYSJfcywgVVNDUklQVF9DT01NT04pOwogfQogCiBib29sIFNldHRp
bmdzQmFzZTo6cGxhdGZvcm1EZWZhdWx0TWVkaWFTb3VyY2VFbmFibGVkKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1BhZ2VNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L21hYy9QYWdlTWFjLm1tCmluZGV4IDQ0OWE4ZmY2Y2Q2OTRkMjRjNWFmMTRiZGVhZjU0YzYyNGMy
MmMxMWIuLjlmMmQzZjVmZDNkZjdmYzY1YjhmMmJkNTJjYzY5ZjIyYmIxYmFjZTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1BhZ2VNYWMubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9tYWMvUGFnZU1hYy5tbQpAQCAtNTcsMTUgKzU3LDE1IEBAIHZvaWQgUGFnZTo6cGxh
dGZvcm1Jbml0aWFsaXplKCkKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZUZsYWc7CiAg
ICAgc3RkOjpjYWxsX29uY2Uob25jZUZsYWcsIFtdIHsKICNpZiBFTkFCTEUoVFJFRV9ERUJVR0dJ
TkcpCi0gICAgICAgIFBBTDo6cmVnaXN0ZXJOb3RpZnlDYWxsYmFjaygiY29tLmFwcGxlLldlYktp
dC5zaG93UmVuZGVyVHJlZSIsIHByaW50UmVuZGVyVHJlZUZvckxpdmVEb2N1bWVudHMpOwotICAg
ICAgICBQQUw6OnJlZ2lzdGVyTm90aWZ5Q2FsbGJhY2soImNvbS5hcHBsZS5XZWJLaXQuc2hvd0xh
eWVyVHJlZSIsIHByaW50TGF5ZXJUcmVlRm9yTGl2ZURvY3VtZW50cyk7Ci0gICAgICAgIFBBTDo6
cmVnaXN0ZXJOb3RpZnlDYWxsYmFjaygiY29tLmFwcGxlLldlYktpdC5zaG93R3JhcGhpY3NMYXll
clRyZWUiLCBwcmludEdyYXBoaWNzTGF5ZXJUcmVlRm9yTGl2ZURvY3VtZW50cyk7CisgICAgICAg
IFBBTDo6cmVnaXN0ZXJOb3RpZnlDYWxsYmFjaygiY29tLmFwcGxlLldlYktpdC5zaG93UmVuZGVy
VHJlZSJfcywgcHJpbnRSZW5kZXJUcmVlRm9yTGl2ZURvY3VtZW50cyk7CisgICAgICAgIFBBTDo6
cmVnaXN0ZXJOb3RpZnlDYWxsYmFjaygiY29tLmFwcGxlLldlYktpdC5zaG93TGF5ZXJUcmVlIl9z
LCBwcmludExheWVyVHJlZUZvckxpdmVEb2N1bWVudHMpOworICAgICAgICBQQUw6OnJlZ2lzdGVy
Tm90aWZ5Q2FsbGJhY2soImNvbS5hcHBsZS5XZWJLaXQuc2hvd0dyYXBoaWNzTGF5ZXJUcmVlIl9z
LCBwcmludEdyYXBoaWNzTGF5ZXJUcmVlRm9yTGl2ZURvY3VtZW50cyk7CiAjaWYgRU5BQkxFKExB
WU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCi0gICAgICAgIFBBTDo6cmVnaXN0ZXJOb3RpZnlDYWxs
YmFjaygiY29tLmFwcGxlLldlYktpdC5zaG93TGF5b3V0VHJlZSIsIExheW91dDo6cHJpbnRMYXlv
dXRUcmVlRm9yTGl2ZURvY3VtZW50cyk7CisgICAgICAgIFBBTDo6cmVnaXN0ZXJOb3RpZnlDYWxs
YmFjaygiY29tLmFwcGxlLldlYktpdC5zaG93TGF5b3V0VHJlZSJfcywgTGF5b3V0OjpwcmludExh
eW91dFRyZWVGb3JMaXZlRG9jdW1lbnRzKTsKICNlbmRpZgogI2VuZGlmIC8vIEVOQUJMRShUUkVF
X0RFQlVHR0lORykKIAotICAgICAgICBQQUw6OnJlZ2lzdGVyTm90aWZ5Q2FsbGJhY2soImNvbS5h
cHBsZS5XZWJLaXQuc2hvd0FsbERvY3VtZW50cyIsIFtdIHsKKyAgICAgICAgUEFMOjpyZWdpc3Rl
ck5vdGlmeUNhbGxiYWNrKCJjb20uYXBwbGUuV2ViS2l0LnNob3dBbGxEb2N1bWVudHMiX3MsIFtd
IHsKICAgICAgICAgICAgIHVuc2lnbmVkIG51bVBhZ2VzID0gMDsKICAgICAgICAgICAgIFBhZ2U6
OmZvckVhY2hQYWdlKFsmbnVtUGFnZXNdKFBhZ2UmKSB7CiAgICAgICAgICAgICAgICAgKytudW1Q
YWdlczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmlu
Z3MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAKaW5k
ZXggY2Y1ZDBlMDI2Y2RmODMzNzIyZTUxY2FjMGJjYzdmMTM0YTYyNWU5ZS4uOGE3ZThlZjZiY2Uy
M2MxZjg0YWQ0MDMwNmNkNmY1ZjVjOTBlNThkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vTG9jYWxpemVkU3RyaW5ncy5jcHAKQEAgLTY1NSw3ICs2NTUsNyBAQCBTdHJpbmcgQVhXZWVr
RmllbGRUZXh0KCkKICAgICByZXR1cm4gV0VCX1VJX1NUUklORygid2VlayBhbmQgeWVhciBmaWVs
ZCIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIGEgdGltZSBmaWVsZC4iKTsK
IH0KIAotU3RyaW5nIEFYQVJJQUNvbnRlbnRHcm91cFRleHQoY29uc3QgU3RyaW5nJiBhcmlhVHlw
ZSkKK1N0cmluZyBBWEFSSUFDb250ZW50R3JvdXBUZXh0KFN0cmluZ1ZpZXcgYXJpYVR5cGUpCiB7
CiAgICAgaWYgKGFyaWFUeXBlID09ICJBUklBQXBwbGljYXRpb25BbGVydCIpCiAgICAgICAgIHJl
dHVybiBXRUJfVUlfU1RSSU5HKCJhbGVydCIsICJBbiBBUklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAg
dGhhdCBhY3RzIGFzIGFuIGFsZXJ0LiIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxp
emVkU3RyaW5ncy5oCmluZGV4IGIxODFmMWVkOGEwYjg4YzFmY2ZjZDBlODYxNzIzNGJiMjk0OTNk
YWUuLmEyMGI1ODhlNjkzNzE2OWExMDY3ZDM5ZDdjMTA5ZjM0NTllOGMzOTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgKQEAgLTE5NSw3ICsxOTUsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgU3RyaW5nIEFYTW9udGhGaWVsZFRleHQoKTsKICAgICBT
dHJpbmcgQVhOdW1iZXJGaWVsZFRleHQoKTsKICAgICBTdHJpbmcgQVhXZWVrRmllbGRUZXh0KCk7
Ci0gICAgU3RyaW5nIEFYQVJJQUNvbnRlbnRHcm91cFRleHQoY29uc3QgU3RyaW5nJiBhcmlhVHlw
ZSk7CisgICAgU3RyaW5nIEFYQVJJQUNvbnRlbnRHcm91cFRleHQoU3RyaW5nVmlldyBhcmlhVHlw
ZSk7CiAgICAgU3RyaW5nIEFYSG9yaXpvbnRhbFJ1bGVEZXNjcmlwdGlvblRleHQoKTsKICAgICBT
dHJpbmcgQVhNYXJrVGV4dCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9QYXN0ZWJvYXJkLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkLmgKaW5k
ZXggYWViYTBhM2I0NGQ4NjY2ZWNkYjIyMWIzMzU3MGQ0Y2NkYTU2NjQyOS4uMWNmNDEwOGYwOGU2
MzA2NThmOWEzZTMxZmU0YmNlOTYzZTNlNGNjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vUGFzdGVib2FyZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3Rl
Ym9hcmQuaApAQCAtMzc1LDkgKzM3NSw5IEBAIGV4dGVybiBOU1N0cmluZyAqVUlDb2xvclBib2Fy
ZFR5cGU7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1BQykKLWV4dGVybiBjb25zdCBjaGFyKiBj
b25zdCBXZWJBcmNoaXZlUGJvYXJkVHlwZTsKLWV4dGVybiBjb25zdCBjaGFyKiBjb25zdCBXZWJV
UkxOYW1lUGJvYXJkVHlwZTsKLWV4dGVybiBjb25zdCBjaGFyKiBjb25zdCBXZWJVUkxzV2l0aFRp
dGxlc1Bib2FyZFR5cGU7CitleHRlcm4gY29uc3QgQVNDSUlMaXRlcmFsIFdlYkFyY2hpdmVQYm9h
cmRUeXBlOworZXh0ZXJuIGNvbnN0IEFTQ0lJTGl0ZXJhbCBXZWJVUkxOYW1lUGJvYXJkVHlwZTsK
K2V4dGVybiBjb25zdCBBU0NJSUxpdGVyYWwgV2ViVVJMc1dpdGhUaXRsZXNQYm9hcmRUeXBlOwog
I2VuZGlmCiAKICNpZiAhUExBVEZPUk0oR1RLKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vUGFzdGVib2FyZEN1c3RvbURhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1Bhc3RlYm9hcmRDdXN0b21EYXRhLmgKaW5kZXggMmJlODFkMjkzOGEzZGJkMDkwMjZjYTZlYzY0
YWMzMjg3ZTZhYmMwMy4uMjU2ZjQ0NTQyOTAzMmJiNDJmMzEzZDkyMGFmYmZmZDFiMDIzYTc3YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZEN1c3RvbURhdGEu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkQ3VzdG9tRGF0YS5oCkBA
IC03Niw3ICs3Niw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNsZWFyKGNvbnN0IFN0cmluZyYgdHlw
ZSk7CiAKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgY29u
c3QgY2hhciogY29jb2FUeXBlKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIEFTQ0lJTGl0
ZXJhbCBjb2NvYVR5cGUoKTsKICNlbGlmIFBMQVRGT1JNKEdUSykKICAgICBzdGF0aWMgY29uc3Qg
Y2hhciogZ3RrVHlwZSgpIHsgcmV0dXJuICJvcmcud2Via2l0Z3RrLldlYktpdC5jdXN0b20tcGFz
dGVib2FyZC1kYXRhIjsgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9jb2NvYS9NZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9NZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EubW0KaW5k
ZXggYTBlOTAyZjEyY2U3ZWIxN2M3NzZkNDNjMTM1Yzg1MzI2Yzc1Y2ZlMC4uOTZjZGZhYTM2MjFj
NWM5NjJkYTBlMDUzMDJkNGVhOWQ5Y2Q3MDg3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vY29jb2EvTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL01lZGlhU2Vzc2lvbk1hbmFnZXJDb2Nv
YS5tbQpAQCAtNDUyLDggKzQ1Miw4IEBAIHZvaWQgTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hOjp1
cGRhdGVOb3dQbGF5aW5nSW5mbygpCiAKICAgICBpZiAobV9ub3dQbGF5aW5nTWFuYWdlci0+c2V0
Tm93UGxheWluZ0luZm8oKm5vd1BsYXlpbmdJbmZvKSkgewogI2lmZGVmIExPR19ESVNBQkxFRAot
ICAgICAgICBTdHJpbmcgc3JjID0gInNyYyI7Ci0gICAgICAgIFN0cmluZyB0aXRsZSA9ICJ0aXRs
ZSI7CisgICAgICAgIFN0cmluZyBzcmMgPSAic3JjIl9zOworICAgICAgICBTdHJpbmcgdGl0bGUg
PSAidGl0bGUiX3M7CiAjZWxzZQogICAgICAgICBTdHJpbmcgc3JjID0gbm93UGxheWluZ0luZm8t
PmFydHdvcmsgPyBub3dQbGF5aW5nSW5mby0+YXJ0d29yay0+c3JjIDogU3RyaW5nKCk7CiAgICAg
ICAgIFN0cmluZyB0aXRsZSA9IG5vd1BsYXlpbmdJbmZvLT50aXRsZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL0tleUV2ZW50Q29jb2EubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jb2NvYS9LZXlFdmVudENvY29hLm1tCmluZGV4IGY0ZWVlNjVmMDk5M2I5
ZDRkOWJkNmZlOWVkYTdhZDBhNjE1MzczNTIuLjFjNWUyNDNjODUyYTM4NTA5Yzg5Y2M1OTE5Y2Zj
MTQyMDY3MTk5YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL0tl
eUV2ZW50Q29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvS2V5RXZl
bnRDb2NvYS5tbQpAQCAtMjIwLDcgKzIyMCw3IEBAIFN0cmluZyBrZXlJZGVudGlmaWVyRm9yQ2hh
ckNvZGUodW5pY2hhciBjaGFyQ29kZSkKIAogICAgICAgICAvLyAiQWx0IgogICAgICAgICBjYXNl
IE5TTWVudUZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJBbHQiOworICAgICAgICAg
ICAgcmV0dXJuICJBbHQiX3M7CiAKICAgICAgICAgLy8gIkFwcHMiCiAgICAgICAgIC8vICJCcm93
c2VyQmFjayIKQEAgLTIzMyw3ICsyMzMsNyBAQCBTdHJpbmcga2V5SWRlbnRpZmllckZvckNoYXJD
b2RlKHVuaWNoYXIgY2hhckNvZGUpCiAKICAgICAgICAgLy8gIkNsZWFyIgogICAgICAgICBjYXNl
IE5TQ2xlYXJMaW5lRnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkNsZWFyIjsKKyAg
ICAgICAgICAgIHJldHVybiAiQ2xlYXIiX3M7CiAKICAgICAgICAgLy8gIkNvZGVJbnB1dCIKICAg
ICAgICAgLy8gIkNvbXBvc2UiCkBAIC0yNDUsMTAwICsyNDUsMTAwIEBAIFN0cmluZyBrZXlJZGVu
dGlmaWVyRm9yQ2hhckNvZGUodW5pY2hhciBjaGFyQ29kZSkKIAogICAgICAgICAvLyAiRG93biIK
ICAgICAgICAgY2FzZSBOU0Rvd25BcnJvd0Z1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJu
ICJEb3duIjsKKyAgICAgICAgICAgIHJldHVybiAiRG93biJfczsKICAgICAgICAgLy8gIkVuZCIK
ICAgICAgICAgY2FzZSBOU0VuZEZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJFbmQi
OworICAgICAgICAgICAgcmV0dXJuICJFbmQiX3M7CiAgICAgICAgIC8vICJFbnRlciIKICAgICAg
ICAgY2FzZSAweDM6IGNhc2UgMHhBOiBjYXNlIDB4RDogLy8gTWFjaW50b3NoIGNhbGxzIHRoZSBv
bmUgb24gdGhlIG1haW4ga2V5Ym9hcmQgUmV0dXJuLCBidXQgV2luZG93cyBjYWxscyBpdCBFbnRl
ciwgc28gd2UnbGwgZG8gdGhlIHNhbWUgZm9yIHRoZSBET00KLSAgICAgICAgICAgIHJldHVybiAi
RW50ZXIiOworICAgICAgICAgICAgcmV0dXJuICJFbnRlciJfczsKIAogICAgICAgICAvLyAiRXJh
c2VFb2YiCiAKICAgICAgICAgLy8gIkV4ZWN1dGUiCiAgICAgICAgIGNhc2UgTlNFeGVjdXRlRnVu
Y3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkV4ZWN1dGUiOworICAgICAgICAgICAgcmV0
dXJuICJFeGVjdXRlIl9zOwogCiAgICAgICAgIC8vICJFeHNlbCIKIAogICAgICAgICAvLyAiRjEi
CiAgICAgICAgIGNhc2UgTlNGMUZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJGMSI7
CisgICAgICAgICAgICByZXR1cm4gIkYxIl9zOwogICAgICAgICAvLyAiRjIiCiAgICAgICAgIGNh
c2UgTlNGMkZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJGMiI7CisgICAgICAgICAg
ICByZXR1cm4gIkYyIl9zOwogICAgICAgICAvLyAiRjMiCiAgICAgICAgIGNhc2UgTlNGM0Z1bmN0
aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJGMyI7CisgICAgICAgICAgICByZXR1cm4gIkYz
Il9zOwogICAgICAgICAvLyAiRjQiCiAgICAgICAgIGNhc2UgTlNGNEZ1bmN0aW9uS2V5OgotICAg
ICAgICAgICAgcmV0dXJuICJGNCI7CisgICAgICAgICAgICByZXR1cm4gIkY0Il9zOwogICAgICAg
ICAvLyAiRjUiCiAgICAgICAgIGNhc2UgTlNGNUZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0
dXJuICJGNSI7CisgICAgICAgICAgICByZXR1cm4gIkY1Il9zOwogICAgICAgICAvLyAiRjYiCiAg
ICAgICAgIGNhc2UgTlNGNkZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJGNiI7Cisg
ICAgICAgICAgICByZXR1cm4gIkY2Il9zOwogICAgICAgICAvLyAiRjciCiAgICAgICAgIGNhc2Ug
TlNGN0Z1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJGNyI7CisgICAgICAgICAgICBy
ZXR1cm4gIkY3Il9zOwogICAgICAgICAvLyAiRjgiCiAgICAgICAgIGNhc2UgTlNGOEZ1bmN0aW9u
S2V5OgotICAgICAgICAgICAgcmV0dXJuICJGOCI7CisgICAgICAgICAgICByZXR1cm4gIkY4Il9z
OwogICAgICAgICAvLyAiRjkiCiAgICAgICAgIGNhc2UgTlNGOUZ1bmN0aW9uS2V5OgotICAgICAg
ICAgICAgcmV0dXJuICJGOSI7CisgICAgICAgICAgICByZXR1cm4gIkY5Il9zOwogICAgICAgICAv
LyAiRjEwIgogICAgICAgICBjYXNlIE5TRjEwRnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1
cm4gIkYxMCI7CisgICAgICAgICAgICByZXR1cm4gIkYxMCJfczsKICAgICAgICAgLy8gIkYxMSIK
ICAgICAgICAgY2FzZSBOU0YxMUZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJGMTEi
OworICAgICAgICAgICAgcmV0dXJuICJGMTEiX3M7CiAgICAgICAgIC8vICJGMTIiCiAgICAgICAg
IGNhc2UgTlNGMTJGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiRjEyIjsKKyAgICAg
ICAgICAgIHJldHVybiAiRjEyIl9zOwogICAgICAgICAvLyAiRjEzIgogICAgICAgICBjYXNlIE5T
RjEzRnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkYxMyI7CisgICAgICAgICAgICBy
ZXR1cm4gIkYxMyJfczsKICAgICAgICAgLy8gIkYxNCIKICAgICAgICAgY2FzZSBOU0YxNEZ1bmN0
aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJGMTQiOworICAgICAgICAgICAgcmV0dXJuICJG
MTQiX3M7CiAgICAgICAgIC8vICJGMTUiCiAgICAgICAgIGNhc2UgTlNGMTVGdW5jdGlvbktleToK
LSAgICAgICAgICAgIHJldHVybiAiRjE1IjsKKyAgICAgICAgICAgIHJldHVybiAiRjE1Il9zOwog
ICAgICAgICAvLyAiRjE2IgogICAgICAgICBjYXNlIE5TRjE2RnVuY3Rpb25LZXk6Ci0gICAgICAg
ICAgICByZXR1cm4gIkYxNiI7CisgICAgICAgICAgICByZXR1cm4gIkYxNiJfczsKICAgICAgICAg
Ly8gIkYxNyIKICAgICAgICAgY2FzZSBOU0YxN0Z1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0
dXJuICJGMTciOworICAgICAgICAgICAgcmV0dXJuICJGMTciX3M7CiAgICAgICAgIC8vICJGMTgi
CiAgICAgICAgIGNhc2UgTlNGMThGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiRjE4
IjsKKyAgICAgICAgICAgIHJldHVybiAiRjE4Il9zOwogICAgICAgICAvLyAiRjE5IgogICAgICAg
ICBjYXNlIE5TRjE5RnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkYxOSI7CisgICAg
ICAgICAgICByZXR1cm4gIkYxOSJfczsKICAgICAgICAgLy8gIkYyMCIKICAgICAgICAgY2FzZSBO
U0YyMEZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJGMjAiOworICAgICAgICAgICAg
cmV0dXJuICJGMjAiX3M7CiAgICAgICAgIC8vICJGMjEiCiAgICAgICAgIGNhc2UgTlNGMjFGdW5j
dGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiRjIxIjsKKyAgICAgICAgICAgIHJldHVybiAi
RjIxIl9zOwogICAgICAgICAvLyAiRjIyIgogICAgICAgICBjYXNlIE5TRjIyRnVuY3Rpb25LZXk6
Ci0gICAgICAgICAgICByZXR1cm4gIkYyMiI7CisgICAgICAgICAgICByZXR1cm4gIkYyMiJfczsK
ICAgICAgICAgLy8gIkYyMyIKICAgICAgICAgY2FzZSBOU0YyM0Z1bmN0aW9uS2V5OgotICAgICAg
ICAgICAgcmV0dXJuICJGMjMiOworICAgICAgICAgICAgcmV0dXJuICJGMjMiX3M7CiAgICAgICAg
IC8vICJGMjQiCiAgICAgICAgIGNhc2UgTlNGMjRGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJl
dHVybiAiRjI0IjsKKyAgICAgICAgICAgIHJldHVybiAiRjI0Il9zOwogCiAgICAgICAgIC8vICJG
aW5hbE1vZGUiCiAKICAgICAgICAgLy8gIkZpbmQiCiAgICAgICAgIGNhc2UgTlNGaW5kRnVuY3Rp
b25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkZpbmQiOworICAgICAgICAgICAgcmV0dXJuICJG
aW5kIl9zOwogCiAgICAgICAgIC8vICJGdWxsV2lkdGgiCiAgICAgICAgIC8vICJIYWxmV2lkdGgi
CkBAIC0zNDcsMTYgKzM0NywxNiBAQCBTdHJpbmcga2V5SWRlbnRpZmllckZvckNoYXJDb2RlKHVu
aWNoYXIgY2hhckNvZGUpCiAKICAgICAgICAgLy8gIkhlbHAiCiAgICAgICAgIGNhc2UgTlNIZWxw
RnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkhlbHAiOworICAgICAgICAgICAgcmV0
dXJuICJIZWxwIl9zOwogCiAgICAgICAgIC8vICJIaXJhZ2FuYSIKIAogICAgICAgICAvLyAiSG9t
ZSIKICAgICAgICAgY2FzZSBOU0hvbWVGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAi
SG9tZSI7CisgICAgICAgICAgICByZXR1cm4gIkhvbWUiX3M7CiAgICAgICAgIC8vICJJbnNlcnQi
CiAgICAgICAgIGNhc2UgTlNJbnNlcnRGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAi
SW5zZXJ0IjsKKyAgICAgICAgICAgIHJldHVybiAiSW5zZXJ0Il9zOwogCiAgICAgICAgIC8vICJK
YXBhbmVzZUhpcmFnYW5hIgogICAgICAgICAvLyAiSmFwYW5lc2VLYXRha2FuYSIKQEAgLTM3MSw3
ICszNzEsNyBAQCBTdHJpbmcga2V5SWRlbnRpZmllckZvckNoYXJDb2RlKHVuaWNoYXIgY2hhckNv
ZGUpCiAKICAgICAgICAgLy8gIkxlZnQiCiAgICAgICAgIGNhc2UgTlNMZWZ0QXJyb3dGdW5jdGlv
bktleToKLSAgICAgICAgICAgIHJldHVybiAiTGVmdCI7CisgICAgICAgICAgICByZXR1cm4gIkxl
ZnQiX3M7CiAKICAgICAgICAgLy8gIk1ldGEiCiAgICAgICAgIC8vICJNZWRpYU5leHRUcmFjayIK
QEAgLTM4MSw1OSArMzgxLDU5IEBAIFN0cmluZyBrZXlJZGVudGlmaWVyRm9yQ2hhckNvZGUodW5p
Y2hhciBjaGFyQ29kZSkKIAogICAgICAgICAvLyAiTW9kZUNoYW5nZSIKICAgICAgICAgY2FzZSBO
U01vZGVTd2l0Y2hGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiTW9kZUNoYW5nZSI7
CisgICAgICAgICAgICByZXR1cm4gIk1vZGVDaGFuZ2UiX3M7CiAKICAgICAgICAgLy8gIk5vbmNv
bnZlcnQiCiAgICAgICAgIC8vICJOdW1Mb2NrIgogCiAgICAgICAgIC8vICJQYWdlRG93biIKICAg
ICAgICAgY2FzZSBOU1BhZ2VEb3duRnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIlBh
Z2VEb3duIjsKKyAgICAgICAgICAgIHJldHVybiAiUGFnZURvd24iX3M7CiAgICAgICAgIC8vICJQ
YWdlVXAiCiAgICAgICAgIGNhc2UgTlNQYWdlVXBGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJl
dHVybiAiUGFnZVVwIjsKKyAgICAgICAgICAgIHJldHVybiAiUGFnZVVwIl9zOwogCiAgICAgICAg
IC8vICJQYXN0ZSIKIAogICAgICAgICAvLyAiUGF1c2UiCiAgICAgICAgIGNhc2UgTlNQYXVzZUZ1
bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJQYXVzZSI7CisgICAgICAgICAgICByZXR1
cm4gIlBhdXNlIl9zOwogCiAgICAgICAgIC8vICJQbGF5IgogICAgICAgICAvLyAiUHJldmlvdXND
YW5kaWRhdGUiCiAKICAgICAgICAgLy8gIlByaW50U2NyZWVuIgogICAgICAgICBjYXNlIE5TUHJp
bnRTY3JlZW5GdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiUHJpbnRTY3JlZW4iOwor
ICAgICAgICAgICAgcmV0dXJuICJQcmludFNjcmVlbiJfczsKIAogICAgICAgICAvLyAiUHJvY2Vz
cyIKICAgICAgICAgLy8gIlByb3BzIgogCiAgICAgICAgIC8vICJSaWdodCIKICAgICAgICAgY2Fz
ZSBOU1JpZ2h0QXJyb3dGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiUmlnaHQiOwor
ICAgICAgICAgICAgcmV0dXJuICJSaWdodCJfczsKIAogICAgICAgICAvLyAiUm9tYW5DaGFyYWN0
ZXJzIgogCiAgICAgICAgIC8vICJTY3JvbGwiCiAgICAgICAgIGNhc2UgTlNTY3JvbGxMb2NrRnVu
Y3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIlNjcm9sbCI7CisgICAgICAgICAgICByZXR1
cm4gIlNjcm9sbCJfczsKICAgICAgICAgLy8gIlNlbGVjdCIKICAgICAgICAgY2FzZSBOU1NlbGVj
dEZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJTZWxlY3QiOworICAgICAgICAgICAg
cmV0dXJuICJTZWxlY3QiX3M7CiAKICAgICAgICAgLy8gIlNlbGVjdE1lZGlhIgogICAgICAgICAv
LyAiU2hpZnQiCiAKICAgICAgICAgLy8gIlN0b3AiCiAgICAgICAgIGNhc2UgTlNTdG9wRnVuY3Rp
b25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIlN0b3AiOworICAgICAgICAgICAgcmV0dXJuICJT
dG9wIl9zOwogICAgICAgICAvLyAiVXAiCiAgICAgICAgIGNhc2UgTlNVcEFycm93RnVuY3Rpb25L
ZXk6Ci0gICAgICAgICAgICByZXR1cm4gIlVwIjsKKyAgICAgICAgICAgIHJldHVybiAiVXAiX3M7
CiAgICAgICAgIC8vICJVbmRvIgogICAgICAgICBjYXNlIE5TVW5kb0Z1bmN0aW9uS2V5OgotICAg
ICAgICAgICAgcmV0dXJuICJVbmRvIjsKKyAgICAgICAgICAgIHJldHVybiAiVW5kbyJfczsKIAog
ICAgICAgICAvLyAiVm9sdW1lRG93biIKICAgICAgICAgLy8gIlZvbHVtZU11dGUiCkBAIC00NDMs
MzggKzQ0MywzOCBAQCBTdHJpbmcga2V5SWRlbnRpZmllckZvckNoYXJDb2RlKHVuaWNoYXIgY2hh
ckNvZGUpCiAKICAgICAgICAgLy8gTW9yZSBmdW5jdGlvbiBrZXlzLCBub3QgaW4gdGhlIGtleSBp
ZGVudGlmaWVyIHNwZWNpZmljYXRpb24uCiAgICAgICAgIGNhc2UgTlNGMjVGdW5jdGlvbktleToK
LSAgICAgICAgICAgIHJldHVybiAiRjI1IjsKKyAgICAgICAgICAgIHJldHVybiAiRjI1Il9zOwog
ICAgICAgICBjYXNlIE5TRjI2RnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkYyNiI7
CisgICAgICAgICAgICByZXR1cm4gIkYyNiJfczsKICAgICAgICAgY2FzZSBOU0YyN0Z1bmN0aW9u
S2V5OgotICAgICAgICAgICAgcmV0dXJuICJGMjciOworICAgICAgICAgICAgcmV0dXJuICJGMjci
X3M7CiAgICAgICAgIGNhc2UgTlNGMjhGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAi
RjI4IjsKKyAgICAgICAgICAgIHJldHVybiAiRjI4Il9zOwogICAgICAgICBjYXNlIE5TRjI5RnVu
Y3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkYyOSI7CisgICAgICAgICAgICByZXR1cm4g
IkYyOSJfczsKICAgICAgICAgY2FzZSBOU0YzMEZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0
dXJuICJGMzAiOworICAgICAgICAgICAgcmV0dXJuICJGMzAiX3M7CiAgICAgICAgIGNhc2UgTlNG
MzFGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiRjMxIjsKKyAgICAgICAgICAgIHJl
dHVybiAiRjMxIl9zOwogICAgICAgICBjYXNlIE5TRjMyRnVuY3Rpb25LZXk6Ci0gICAgICAgICAg
ICByZXR1cm4gIkYzMiI7CisgICAgICAgICAgICByZXR1cm4gIkYzMiJfczsKICAgICAgICAgY2Fz
ZSBOU0YzM0Z1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJGMzMiOworICAgICAgICAg
ICAgcmV0dXJuICJGMzMiX3M7CiAgICAgICAgIGNhc2UgTlNGMzRGdW5jdGlvbktleToKLSAgICAg
ICAgICAgIHJldHVybiAiRjM0IjsKKyAgICAgICAgICAgIHJldHVybiAiRjM0Il9zOwogICAgICAg
ICBjYXNlIE5TRjM1RnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkYzNSI7CisgICAg
ICAgICAgICByZXR1cm4gIkYzNSJfczsKIAogICAgICAgICAvLyBUdXJuIDB4N0YgaW50byAweDA4
LCBiZWNhdXNlIGJhY2tzcGFjZSBuZWVkcyB0byBhbHdheXMgYmUgMHgwOC4KICAgICAgICAgY2Fz
ZSAweDdGOgotICAgICAgICAgICAgcmV0dXJuICJVKzAwMDgiOworICAgICAgICAgICAgcmV0dXJu
ICJVKzAwMDgiX3M7CiAgICAgICAgIC8vIFN0YW5kYXJkIHNheXMgdGhhdCBERUwgYmVjb21lcyBV
KzAwN0YuCiAgICAgICAgIGNhc2UgTlNEZWxldGVGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJl
dHVybiAiVSswMDdGIjsKKyAgICAgICAgICAgIHJldHVybiAiVSswMDdGIl9zOwogCiAgICAgICAg
IC8vIEFsd2F5cyB1c2UgMHgwOSBmb3IgdGFiIGluc3RlYWQgb2YgQXBwS2l0J3MgYmFja3RhYiBj
aGFyYWN0ZXIuCiAgICAgICAgIGNhc2UgTlNCYWNrVGFiQ2hhcmFjdGVyOgotICAgICAgICAgICAg
cmV0dXJuICJVKzAwMDkiOworICAgICAgICAgICAgcmV0dXJuICJVKzAwMDkiX3M7CiAKICAgICAg
ICAgY2FzZSBOU0JlZ2luRnVuY3Rpb25LZXk6CiAgICAgICAgIGNhc2UgTlNCcmVha0Z1bmN0aW9u
S2V5OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvUGFzdGVib2Fy
ZENvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvUGFzdGVib2FyZENvY29h
Lm1tCmluZGV4IDA2OTYxZmJhNDhhZDkxYjQyM2JjYTk4NWI2YzJlNWM2MjEwMWZjMmYuLjU5ODQy
ZjEyNjljNWI1ZWRmMDk1YmQ5Y2I4ZWUzMzI2ZDY4N2FlMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Bhc3RlYm9hcmRDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jb2NvYS9QYXN0ZWJvYXJkQ29jb2EubW0KQEAgLTEwNCwyNSArMTA0LDI1
IEBAIHN0YXRpYyBjb25zdCBjaGFyKiBpbWFnZVR5cGVUb01JTUVUeXBlKEltYWdlVHlwZSB0eXBl
KQogICAgIH0KIH0KIAotc3RhdGljIGNvbnN0IGNoYXIqIGltYWdlVHlwZVRvRmFrZUZpbGVuYW1l
KEltYWdlVHlwZSB0eXBlKQorc3RhdGljIEFTQ0lJTGl0ZXJhbCBpbWFnZVR5cGVUb0Zha2VGaWxl
bmFtZShJbWFnZVR5cGUgdHlwZSkKIHsKICAgICBzd2l0Y2ggKHR5cGUpIHsKICAgICBjYXNlIElt
YWdlVHlwZTo6SW52YWxpZDoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAg
IHJldHVybiBudWxscHRyOworICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsOjpudWxsKCk7CiAg
ICAgY2FzZSBJbWFnZVR5cGU6OlRJRkY6CiAjaWYgUExBVEZPUk0oTUFDKQotICAgICAgICByZXR1
cm4gImltYWdlLnBuZyI7IC8vIEZvciBXZWIgY29tcGF0aWJpbGl0eSwgd2UgcHJldGVuZCB0byBo
YXZlIFBORyBpbnN0ZWFkLgorICAgICAgICByZXR1cm4gImltYWdlLnBuZyJfczsgLy8gRm9yIFdl
YiBjb21wYXRpYmlsaXR5LCB3ZSBwcmV0ZW5kIHRvIGhhdmUgUE5HIGluc3RlYWQuCiAjZWxzZQog
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Cisg
ICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWw6Om51bGwoKTsKICNlbmRpZgogICAgIGNhc2UgSW1h
Z2VUeXBlOjpQTkc6Ci0gICAgICAgIHJldHVybiAiaW1hZ2UucG5nIjsKKyAgICAgICAgcmV0dXJu
ICJpbWFnZS5wbmciX3M7CiAgICAgY2FzZSBJbWFnZVR5cGU6OkpQRUc6Ci0gICAgICAgIHJldHVy
biAiaW1hZ2UuanBlZyI7CisgICAgICAgIHJldHVybiAiaW1hZ2UuanBlZyJfczsKICAgICBjYXNl
IEltYWdlVHlwZTo6R0lGOgotICAgICAgICByZXR1cm4gImltYWdlLmdpZiI7CisgICAgICAgIHJl
dHVybiAiaW1hZ2UuZ2lmIl9zOwogICAgIH0KIH0KIApAQCAtMjM0LDcgKzIzNCw3IEBAIHZvaWQg
UGFzdGVib2FyZDo6cmVhZChQYXN0ZWJvYXJkRmlsZVJlYWRlciYgcmVhZGVyLCBzdGQ6Om9wdGlv
bmFsPHNpemVfdD4gaXRlbUluCiAgICAgICAgIGZvciAoYXV0byBjb2NvYVR5cGUgOiBpbmZvLnBs
YXRmb3JtVHlwZXNCeUZpZGVsaXR5KSB7CiAgICAgICAgICAgICBhdXRvIGltYWdlVHlwZSA9IGNv
Y29hVHlwZVRvSW1hZ2VUeXBlKGNvY29hVHlwZSk7CiAgICAgICAgICAgICBhdXRvKiBtaW1lVHlw
ZSA9IGltYWdlVHlwZVRvTUlNRVR5cGUoaW1hZ2VUeXBlKTsKLSAgICAgICAgICAgIGlmICghbWlt
ZVR5cGUgfHwgIXJlYWRlci5zaG91bGRSZWFkQnVmZmVyKG1pbWVUeXBlKSkKKyAgICAgICAgICAg
IGlmICghbWltZVR5cGUgfHwgIXJlYWRlci5zaG91bGRSZWFkQnVmZmVyKFN0cmluZyB7IG1pbWVU
eXBlIH0pKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgYXV0byBidWZm
ZXIgPSByZWFkQnVmZmVyKGl0ZW1JbmRleCwgY29jb2FUeXBlKTsKICNpZiBQTEFURk9STShNQUMp
CkBAIC0yNDIsNyArMjQyLDcgQEAgdm9pZCBQYXN0ZWJvYXJkOjpyZWFkKFBhc3RlYm9hcmRGaWxl
UmVhZGVyJiByZWFkZXIsIHN0ZDo6b3B0aW9uYWw8c2l6ZV90PiBpdGVtSW4KICAgICAgICAgICAg
ICAgICBidWZmZXIgPSBjb252ZXJ0VElGRlRvUE5HKGJ1ZmZlci5yZWxlYXNlTm9uTnVsbCgpKTsK
ICNlbmRpZgogICAgICAgICAgICAgaWYgKGJ1ZmZlcikgewotICAgICAgICAgICAgICAgIHJlYWRl
ci5yZWFkQnVmZmVyKGltYWdlVHlwZVRvRmFrZUZpbGVuYW1lKGltYWdlVHlwZSksIG1pbWVUeXBl
LCBidWZmZXIucmVsZWFzZU5vbk51bGwoKSk7CisgICAgICAgICAgICAgICAgcmVhZGVyLnJlYWRC
dWZmZXIoaW1hZ2VUeXBlVG9GYWtlRmlsZW5hbWUoaW1hZ2VUeXBlKSwgU3RyaW5nIHsgbWltZVR5
cGUgfSwgYnVmZmVyLnJlbGVhc2VOb25OdWxsKCkpOwogICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICAgICAgfQogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jb2NvYS9QYXN0ZWJvYXJkQ3VzdG9tRGF0YUNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY29jb2EvUGFzdGVib2FyZEN1c3RvbURhdGFDb2NvYS5tbQppbmRleCAyNjIxMjg0
NGYyMTA0YTc3N2NmNjU1NmQ3NWE2ZTVjYWVjOTczZGU4Li4zZGU1MGEwZTkyYzI5MDRjMTllYjZk
ZWJkYTcxNjgyZWZiNmQ2NzUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
b2NvYS9QYXN0ZWJvYXJkQ3VzdG9tRGF0YUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2NvY29hL1Bhc3RlYm9hcmRDdXN0b21EYXRhQ29jb2EubW0KQEAgLTMwLDkgKzMwLDkg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jb25zdCBjaGFyKiBQYXN0ZWJvYXJkQ3VzdG9t
RGF0YTo6Y29jb2FUeXBlKCkKK0FTQ0lJTGl0ZXJhbCBQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29j
b2FUeXBlKCkKIHsKLSAgICByZXR1cm4gImNvbS5hcHBsZS5XZWJLaXQuY3VzdG9tLXBhc3RlYm9h
cmQtZGF0YSI7CisgICAgcmV0dXJuICJjb20uYXBwbGUuV2ViS2l0LmN1c3RvbS1wYXN0ZWJvYXJk
LWRhdGEiX3M7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvdXJDQy5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvRm91ckNDLmgKaW5kZXggYjM3ZDA1MGU5YzBjMzY3NzA3ZGFlMGI2YWNj
YjFiYzM3ZjhlYWMxMy4uNjZmYjNkZTA3MTE1MTMwNjc4OGRjMTI2YzIzZjRiYzg2MTI1ODM2NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm91ckNDLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm91ckNDLmgKQEAgLTg1LDcgKzg1
LDcgQEAgbmFtZXNwYWNlIFdURiB7CiB0ZW1wbGF0ZTx0eXBlbmFtZT4gc3RydWN0IExvZ0FyZ3Vt
ZW50OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBMb2dBcmd1bWVudDxXZWJDb3JlOjpGb3VyQ0M+IHsK
LSAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGNvbnN0IFdlYkNvcmU6OkZvdXJDQyYgY29kZSkg
eyByZXR1cm4gY29kZS5zdHJpbmcoKS5kYXRhKCk7IH0KKyAgICBzdGF0aWMgU3RyaW5nIHRvU3Ry
aW5nKGNvbnN0IFdlYkNvcmU6OkZvdXJDQyYgY29kZSkgeyByZXR1cm4gU3RyaW5nIHsgY29kZS5z
dHJpbmcoKS5kYXRhKCkgfTsgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRH
TEFOR0xFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBo
aWNzQ29udGV4dEdMQU5HTEUuY3BwCmluZGV4IGNjMjljZmI0NjczYzY2MjExZGUxYTQxZWUyYmY2
YTJlOGJhMTFmZDUuLmUyYzk2MTVkZDRhZjhlNTEyN2E5MTRmMTA3ODk0MjZiZjVlYzBkZDkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNz
Q29udGV4dEdMQU5HTEUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2FuZ2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEUuY3BwCkBAIC01MTAsOCArNTEwLDkgQEAgdm9p
ZCBHcmFwaGljc0NvbnRleHRHTEFOR0xFOjp2YWxpZGF0ZURlcHRoU3RlbmNpbChjb25zdCBjaGFy
KiBwYWNrZWREZXB0aFN0ZW5jaWwKICAgICAvLyBGSVhNRTogU2luY2UgdGhlIGNvbnN0cnVjdG9y
cyBvZiB2YXJpb3VzIHBsYXRmb3JtcyBhcmUgbm90IHNoYXJlZCwgd2UgaW5pdGlhbGl6ZSB0aGlz
IGhlcmUuCiAgICAgLy8gVXBvbiBjb25zdHJ1Y3RpbmcgdGhlIGNvbnRleHQsIGFsd2F5cyBpbml0
aWFsaXplIHRoZSBleHRlbnNpb25zIHRoYXQgdGhlIFdlYkdMUmVuZGVyaW5nQ29udGV4dCogd2ls
bAogICAgIC8vIHVzZSB0byB0dXJuIG9uIGZlYXR1cmUgZmxhZ3MuCi0gICAgaWYgKHN1cHBvcnRz
RXh0ZW5zaW9uKHBhY2tlZERlcHRoU3RlbmNpbEV4dGVuc2lvbikpIHsKLSAgICAgICAgZW5zdXJl
RXh0ZW5zaW9uRW5hYmxlZChwYWNrZWREZXB0aFN0ZW5jaWxFeHRlbnNpb24pOworICAgIFN0cmlu
ZyBwYWNrZWREZXB0aFN0ZW5jaWxFeHRlbnNpb25TdHJpbmcgeyBwYWNrZWREZXB0aFN0ZW5jaWxF
eHRlbnNpb24gfTsKKyAgICBpZiAoc3VwcG9ydHNFeHRlbnNpb24ocGFja2VkRGVwdGhTdGVuY2ls
RXh0ZW5zaW9uU3RyaW5nKSkgeworICAgICAgICBlbnN1cmVFeHRlbnNpb25FbmFibGVkKHBhY2tl
ZERlcHRoU3RlbmNpbEV4dGVuc2lvblN0cmluZyk7CiAgICAgICAgIG1faW50ZXJuYWxEZXB0aFN0
ZW5jaWxGb3JtYXQgPSBHTF9ERVBUSDI0X1NURU5DSUw4X09FUzsKICAgICB9IGVsc2UKICAgICAg
ICAgbV9pbnRlcm5hbERlcHRoU3RlbmNpbEZvcm1hdCA9IEdMX0RFUFRIX0NPTVBPTkVOVDE2OwpA
QCAtNTI4LDE3ICs1MjksMTcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHRHTEFOR0xFOjp2YWxpZGF0
ZURlcHRoU3RlbmNpbChjb25zdCBjaGFyKiBwYWNrZWREZXB0aFN0ZW5jaWwKIAogICAgIGlmIChh
dHRycy5hbnRpYWxpYXMpIHsKICAgICAgICAgLy8gRklYTUU6IG11c3QgYWRqdXN0IHRoaXMgd2hl
biB1cGdyYWRpbmcgdG8gV2ViR0wgMi4wIC8gT3BlbkdMIEVTIDMuMCBzdXBwb3J0LgotICAgICAg
ICBpZiAoIXN1cHBvcnRzRXh0ZW5zaW9uKCJHTF9BTkdMRV9mcmFtZWJ1ZmZlcl9tdWx0aXNhbXBs
ZSIpIHx8ICFzdXBwb3J0c0V4dGVuc2lvbigiR0xfQU5HTEVfZnJhbWVidWZmZXJfYmxpdCIpIHx8
ICFzdXBwb3J0c0V4dGVuc2lvbigiR0xfT0VTX3JnYjhfcmdiYTgiKSkgeworICAgICAgICBpZiAo
IXN1cHBvcnRzRXh0ZW5zaW9uKCJHTF9BTkdMRV9mcmFtZWJ1ZmZlcl9tdWx0aXNhbXBsZSJfcykg
fHwgIXN1cHBvcnRzRXh0ZW5zaW9uKCJHTF9BTkdMRV9mcmFtZWJ1ZmZlcl9ibGl0Il9zKSB8fCAh
c3VwcG9ydHNFeHRlbnNpb24oIkdMX09FU19yZ2I4X3JnYmE4Il9zKSkgewogICAgICAgICAgICAg
YXR0cnMuYW50aWFsaWFzID0gZmFsc2U7CiAgICAgICAgICAgICBzZXRDb250ZXh0QXR0cmlidXRl
cyhhdHRycyk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBlbnN1cmVFeHRlbnNpb25F
bmFibGVkKCJHTF9BTkdMRV9mcmFtZWJ1ZmZlcl9tdWx0aXNhbXBsZSIpOwotICAgICAgICAgICAg
ZW5zdXJlRXh0ZW5zaW9uRW5hYmxlZCgiR0xfQU5HTEVfZnJhbWVidWZmZXJfYmxpdCIpOwotICAg
ICAgICAgICAgZW5zdXJlRXh0ZW5zaW9uRW5hYmxlZCgiR0xfT0VTX3JnYjhfcmdiYTgiKTsKKyAg
ICAgICAgICAgIGVuc3VyZUV4dGVuc2lvbkVuYWJsZWQoIkdMX0FOR0xFX2ZyYW1lYnVmZmVyX211
bHRpc2FtcGxlIl9zKTsKKyAgICAgICAgICAgIGVuc3VyZUV4dGVuc2lvbkVuYWJsZWQoIkdMX0FO
R0xFX2ZyYW1lYnVmZmVyX2JsaXQiX3MpOworICAgICAgICAgICAgZW5zdXJlRXh0ZW5zaW9uRW5h
YmxlZCgiR0xfT0VTX3JnYjhfcmdiYTgiX3MpOwogICAgICAgICB9CiAgICAgfSBlbHNlIGlmIChh
dHRycy5wcmVzZXJ2ZURyYXdpbmdCdWZmZXIpIHsKICAgICAgICAgLy8gTmVlZGVkIGZvciBwcmVz
ZXJ2ZURyYXdpbmdCdWZmZXI6dHJ1ZSBzdXBwb3J0IHdpdGhvdXQgYW50aWFsaWFzaW5nLgotICAg
ICAgICBlbnN1cmVFeHRlbnNpb25FbmFibGVkKCJHTF9BTkdMRV9mcmFtZWJ1ZmZlcl9ibGl0Iik7
CisgICAgICAgIGVuc3VyZUV4dGVuc2lvbkVuYWJsZWQoIkdMX0FOR0xFX2ZyYW1lYnVmZmVyX2Js
aXQiX3MpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL0NETVByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQ0RNUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQy5tbQppbmRleCAyZGFmOGVhYWM5MDhjZWJiYjk0ZGEzMzA2NDRhNWU3
NzE3YjM2NzM5Li5hZWEyZThhYjk5MDE5NTgyZTRkZDQ5MzhlMjAzN2YwMjA2NWQyNDI4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQ0RN
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQ0RNUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQpA
QCAtNDYsNyArNDYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGF1dG8gQ0RNUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQzo6cGFyc2VLZXlTeXN0ZW0oY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0p
IC0+IHN0ZDo6b3B0aW9uYWw8S2V5U3lzdGVtUGFyYW1ldGVycz4KIHsKLSAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8UmVndWxhckV4cHJlc3Npb24+IGtleVN5c3RlbVJFKCJeY29tXFwuYXBwbGVc
XC5mcHNcXC5bMjNdX1xcZCsoPzosXFxkKykqJCIsIEpTQzo6WWFycjo6VGV4dENhc2VJbnNlbnNp
dGl2ZSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJlZ3VsYXJFeHByZXNzaW9uPiBrZXlT
eXN0ZW1SRSgiXmNvbVxcLmFwcGxlXFwuZnBzXFwuWzIzXV9cXGQrKD86LFxcZCspKiQiX3MsIEpT
Qzo6WWFycjo6VGV4dENhc2VJbnNlbnNpdGl2ZSk7CiAKICAgICBpZiAoa2V5U3lzdGVtUkUuZ2V0
KCkubWF0Y2goa2V5U3lzdGVtKSA8IDApCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgK
aW5kZXggYTgxYjhlMjI2OWE2OGI0MzZhNTMyNjA1NWJlMGZhZjEwNTcwMmMyMS4uMDEzMmEyZjg0
NzhhNmRlYTk3ZThlYjlkN2NjNzZjMGFjNWVkZjY0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaApAQCAtMzExLDcgKzMxMSw3IEBA
IHByb3RlY3RlZDoKICAgICBNZWRpYVBsYXllciogcGxheWVyKCkgeyByZXR1cm4gbV9wbGF5ZXI7
IH0KICAgICBjb25zdCBNZWRpYVBsYXllciogcGxheWVyKCkgY29uc3QgeyByZXR1cm4gbV9wbGF5
ZXI7IH0KIAotICAgIFN0cmluZyBlbmdpbmVEZXNjcmlwdGlvbigpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuICJBVkZvdW5kYXRpb24iOyB9CisgICAgU3RyaW5nIGVuZ2luZURlc2NyaXB0aW9uKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIkFWRm91bmRhdGlvbiJfczsgfQogICAgIGxvbmcgcGxh
dGZvcm1FcnJvckNvZGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBhc3NldEVycm9yQ29kZSgp
OyB9CiAKICAgICB2b2lkIHRyYWNrTW9kZUNoYW5nZWQoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETUlu
c3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWlu
Z0FWRk9iakMubW0KaW5kZXggMjFhMjc5OTJkMjI3MDk4OTlkMGQzZWI2MGI1OGRmY2UyY2FkMGMw
YS4uMjZkY2JmYzU3ZDQ5YWVhNTdiZjM2M2UwZTc3NmRhZmVmYzk0ZTA2ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNSW5z
dGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVh
bWluZ0FWRk9iakMubW0KQEAgLTM5OCw3ICszOTgsNyBAQCB2b2lkIENETUluc3RhbmNlRmFpclBs
YXlTdHJlYW1pbmdBVkZPYmpDOjpzZXRTdG9yYWdlRGlyZWN0b3J5KGNvbnN0IFN0cmluZyYgc3Rv
cgogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgYXV0byBzdG9yYWdlUGF0aCA9IEZpbGVT
eXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChzdG9yYWdlRGlyZWN0b3J5LCAiU2VjdXJl
U3RvcC5wbGlzdCIpOworICAgIGF1dG8gc3RvcmFnZVBhdGggPSBGaWxlU3lzdGVtOjpwYXRoQnlB
cHBlbmRpbmdDb21wb25lbnQoc3RvcmFnZURpcmVjdG9yeSwgIlNlY3VyZVN0b3AucGxpc3QiX3Mp
OwogCiAgICAgYXV0byBmaWxlVHlwZSA9IEZpbGVTeXN0ZW06OmZpbGVUeXBlRm9sbG93aW5nU3lt
bGlua3Moc3RvcmFnZURpcmVjdG9yeSk7CiAgICAgaWYgKCFmaWxlVHlwZSkgewpAQCAtODkxLDcg
Kzg5MSw3IEBAIHZvaWQgQ0RNSW5zdGFuY2VTZXNzaW9uRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpD
Ojp1cGRhdGVMaWNlbnNlKGNvbnN0IFN0cmluZyYsIExpCiAgICAgICAgICAgICBpZiAoIW9iamVj
dCkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAgICAgICAgIGF1dG8ga2V5
SURTdHJpbmcgPSBvYmplY3QtPmdldFN0cmluZygia2V5SUQiKTsKKyAgICAgICAgICAgIGF1dG8g
a2V5SURTdHJpbmcgPSBvYmplY3QtPmdldFN0cmluZygia2V5SUQiX3MpOwogICAgICAgICAgICAg
aWYgKCFrZXlJRFN0cmluZykKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKQEAgLTkx
MSw4ICs5MTEsOCBAQCB2b2lkIENETUluc3RhbmNlU2Vzc2lvbkZhaXJQbGF5U3RyZWFtaW5nQVZG
T2JqQzo6dXBkYXRlTGljZW5zZShjb25zdCBTdHJpbmcmLCBMaQogCiAgICAgICAgICAgICBhdXRv
JiByZXF1ZXN0ID0gbV9jdXJyZW50UmVxdWVzdC52YWx1ZSgpLnJlcXVlc3RzW2ZvdW5kSW5kZXhd
OwogCi0gICAgICAgICAgICBhdXRvIHBheWxvYWRGaW5kUmVzdWx0cyA9IG9iamVjdC0+ZmluZCgi
cGF5bG9hZCIpOwotICAgICAgICAgICAgYXV0byBlcnJvckZpbmRSZXN1bHRzID0gb2JqZWN0LT5m
aW5kKCJlcnJvciIpOworICAgICAgICAgICAgYXV0byBwYXlsb2FkRmluZFJlc3VsdHMgPSBvYmpl
Y3QtPmZpbmQoInBheWxvYWQiX3MpOworICAgICAgICAgICAgYXV0byBlcnJvckZpbmRSZXN1bHRz
ID0gb2JqZWN0LT5maW5kKCJlcnJvciJfcyk7CiAgICAgICAgICAgICBib29sIGhhc1BheWxvYWQg
PSBwYXlsb2FkRmluZFJlc3VsdHMgIT0gb2JqZWN0LT5lbmQoKTsKICAgICAgICAgICAgIGJvb2wg
aGFzRXJyb3IgPSBlcnJvckZpbmRSZXN1bHRzICE9IG9iamVjdC0+ZW5kKCk7CiAKQEAgLTEyNTMs
OCArMTI1Myw4IEBAIHZvaWQgQ0RNSW5zdGFuY2VTZXNzaW9uRmFpclBsYXlTdHJlYW1pbmdBVkZP
YmpDOjpkaWRQcm92aWRlUmVxdWVzdHMoVmVjdG9yPFJldGFpCiAgICAgICAgICAgICBhdXRvIGVu
dHJ5ID0gSlNPTjo6T2JqZWN0OjpjcmVhdGUoKTsKICAgICAgICAgICAgIGF1dG8mIGtleUlEID0g
cmVxdWVzdERhdGEuZmlyc3Q7CiAgICAgICAgICAgICBhdXRvJiBwYXlsb2FkID0gcmVxdWVzdERh
dGEuc2Vjb25kOwotICAgICAgICAgICAgZW50cnktPnNldFN0cmluZygia2V5SUQiLCBiYXNlNjRF
bmNvZGVUb1N0cmluZyhrZXlJRC0+bWFrZUNvbnRpZ3VvdXMoKS0+ZGF0YSgpLCBrZXlJRC0+c2l6
ZSgpKSk7Ci0gICAgICAgICAgICBlbnRyeS0+c2V0U3RyaW5nKCJwYXlsb2FkIiwgYmFzZTY0RW5j
b2RlVG9TdHJpbmcocGF5bG9hZC5nZXQoKS5ieXRlcywgcGF5bG9hZC5nZXQoKS5sZW5ndGgpKTsK
KyAgICAgICAgICAgIGVudHJ5LT5zZXRTdHJpbmcoImtleUlEIl9zLCBiYXNlNjRFbmNvZGVUb1N0
cmluZyhrZXlJRC0+bWFrZUNvbnRpZ3VvdXMoKS0+ZGF0YSgpLCBrZXlJRC0+c2l6ZSgpKSk7Cisg
ICAgICAgICAgICBlbnRyeS0+c2V0U3RyaW5nKCJwYXlsb2FkIl9zLCBiYXNlNjRFbmNvZGVUb1N0
cmluZyhwYXlsb2FkLmdldCgpLmJ5dGVzLCBwYXlsb2FkLmdldCgpLmxlbmd0aCkpOwogICAgICAg
ICAgICAgcmVxdWVzdEpTT04tPnB1c2hPYmplY3QoV1RGTW92ZShlbnRyeSkpOwogICAgICAgICB9
CiAgICAgICAgIGF1dG8gcmVxdWVzdEJ1ZmZlciA9IHV0ZjhCdWZmZXIocmVxdWVzdEpTT04tPnRv
SlNPTlN0cmluZygpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMubW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNz
aW9uTWVkaWFTb3VyY2VBVkZPYmpDLm1tCmluZGV4IDI4NmE1YTQ4ODdlOGQ5NTYwMGU3YzhiYWMz
YWZiZTY2NzYxNjA1NTQuLmEwYzZhM2U1MjZjYWNhNGFkMWM3ODhlM2MyMjJlOGE0ZTUxYzI0ZmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL0NETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbk1lZGlhU291
cmNlQVZGT2JqQy5tbQpAQCAtMTEzLDcgKzExMyw3IEBAIFN0cmluZyBDRE1TZXNzaW9uTWVkaWFT
b3VyY2VBVkZPYmpDOjpzdG9yYWdlUGF0aCgpIGNvbnN0CiAgICAgaWYgKHN0b3JhZ2VEaXJlY3Rv
cnkuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKIAotICAgIHJldHVy
biBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoc3RvcmFnZURpcmVjdG9yeSwg
IlNlY3VyZVN0b3AucGxpc3QiKTsKKyAgICByZXR1cm4gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5k
aW5nQ29tcG9uZW50KHN0b3JhZ2VEaXJlY3RvcnksICJTZWN1cmVTdG9wLnBsaXN0Il9zKTsKIH0K
IAogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCmlu
ZGV4IDA5OTdkNzhiNjZiNTRlMTU5NjVmNmI4ZjY1ZmFkY2MzY2ZhMzkzZjIuLjllZDAyMzYzMzYw
OTg3ZGUyMTYzZGIwZGYzMzE5MGU3YzgxMjQ1MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMu
bW0KQEAgLTEwOTYsNyArMTA5Niw3IEBAIEFWU3RyZWFtU2Vzc2lvbiogTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpzdHJlYW1TZXNzaW9uKCkKICAgICAgICAgICAgICAgICBy
ZXR1cm4gbmlsOwogICAgICAgICB9CiAKLSAgICAgICAgU3RyaW5nIHN0b3JhZ2VQYXRoID0gRmls
ZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KHN0b3JhZ2VEaXJlY3RvcnksICJTZWN1
cmVTdG9wLnBsaXN0Iik7CisgICAgICAgIFN0cmluZyBzdG9yYWdlUGF0aCA9IEZpbGVTeXN0ZW06
OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChzdG9yYWdlRGlyZWN0b3J5LCAiU2VjdXJlU3RvcC5w
bGlzdCJfcyk7CiAgICAgICAgIG1fc3RyZWFtU2Vzc2lvbiA9IGFkb3B0TlMoW1BBTDo6YWxsb2NB
VlN0cmVhbVNlc3Npb25JbnN0YW5jZSgpIGluaXRXaXRoU3RvcmFnZURpcmVjdG9yeUF0VVJMOltO
U1VSTCBmaWxlVVJMV2l0aFBhdGg6c3RvcmFnZVBhdGhdXSk7CiAgICAgfQogICAgIHJldHVybiBt
X3N0cmVhbVNlc3Npb24uZ2V0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1Nv
dXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tCmluZGV4IDZiYTZiOWJmMTJhZDNjOWYzODkwN2My
ZmQzNmZlODdhNTUzYjJhNDQuLjBlOGVhNjRmMDgzOGU2MmFkZTVjZjg5NzJjYWQxODlhYzU1ZDM1
NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZh
dGVBVkZPYmpDLm1tCkBAIC02MDAsNyArNjAwLDcgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRl
QVZGT2JqQzo6ZGlkUHJvdmlkZUNvbnRlbnRLZXlSZXF1ZXN0SW5pdGlhbGl6YXRpb25EYXRhRm8K
ICAgICB9CiAKICAgICBtX2tleUlEcyA9IFdURk1vdmUoa2V5SURzLnZhbHVlKCkpOwotICAgIHBs
YXllci0+aW5pdGlhbGl6YXRpb25EYXRhRW5jb3VudGVyZWQoInNpbmYiLCBtX2luaXREYXRhLT50
cnlDcmVhdGVBcnJheUJ1ZmZlcigpKTsKKyAgICBwbGF5ZXItPmluaXRpYWxpemF0aW9uRGF0YUVu
Y291bnRlcmVkKCJzaW5mIl9zLCBtX2luaXREYXRhLT50cnlDcmVhdGVBcnJheUJ1ZmZlcigpKTsK
IAogICAgIG1fd2FpdGluZ0ZvcktleSA9IHRydWU7CiAgICAgcGxheWVyLT53YWl0aW5nRm9yS2V5
Q2hhbmdlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RhdGFE
ZXRlY3RvckhpZ2hsaWdodC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9EYXRhRGV0
ZWN0b3JIaWdobGlnaHQubW0KaW5kZXggM2YwNjk0MDQ2MDI5NGRjZmU4YTgzMDI4ZDFmZDdkNDY2
ZGE4NTM5NS4uMTVkYjg3YjFkOThiYTM4MWVhOTUxYjFmMzRmOGU2MDA4Mjk4MjVhOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RhdGFEZXRlY3RvckhpZ2hsaWdodC5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRGF0YURldGVjdG9ySGlnaGxpZ2h0
Lm1tCkBAIC0xNTMsNyArMTUzLDcgQEAgdm9pZCBEYXRhRGV0ZWN0b3JIaWdobGlnaHQ6OmZhZGVJ
bigpCiAgICAgW2FuaW1hdGlvbiBzZXRUb1ZhbHVlOkAxXTsKIAogICAgIGF1dG8gcGxhdGZvcm1B
bmltYXRpb24gPSBQbGF0Zm9ybUNBQW5pbWF0aW9uQ29jb2E6OmNyZWF0ZShhbmltYXRpb24uZ2V0
KCkpOwotICAgIGRvd25jYXN0PEdyYXBoaWNzTGF5ZXJDQT4obGF5ZXIoKSkucGxhdGZvcm1DQUxh
eWVyKCktPmFkZEFuaW1hdGlvbkZvcktleSgiRmFkZUhpZ2hsaWdodEluIiwgcGxhdGZvcm1Bbmlt
YXRpb24uZ2V0KCkpOworICAgIGRvd25jYXN0PEdyYXBoaWNzTGF5ZXJDQT4obGF5ZXIoKSkucGxh
dGZvcm1DQUxheWVyKCktPmFkZEFuaW1hdGlvbkZvcktleSgiRmFkZUhpZ2hsaWdodEluIl9zLCBw
bGF0Zm9ybUFuaW1hdGlvbi5nZXQoKSk7CiB9CiAKIHZvaWQgRGF0YURldGVjdG9ySGlnaGxpZ2h0
OjpmYWRlT3V0KCkKQEAgLTE3MCw3ICsxNzAsNyBAQCB2b2lkIERhdGFEZXRlY3RvckhpZ2hsaWdo
dDo6ZmFkZU91dCgpCiAgICAgfV07CiAKICAgICBhdXRvIHBsYXRmb3JtQW5pbWF0aW9uID0gUGxh
dGZvcm1DQUFuaW1hdGlvbkNvY29hOjpjcmVhdGUoYW5pbWF0aW9uLmdldCgpKTsKLSAgICBkb3du
Y2FzdDxHcmFwaGljc0xheWVyQ0E+KGxheWVyKCkpLnBsYXRmb3JtQ0FMYXllcigpLT5hZGRBbmlt
YXRpb25Gb3JLZXkoIkZhZGVIaWdobGlnaHRPdXQiLCBwbGF0Zm9ybUFuaW1hdGlvbi5nZXQoKSk7
CisgICAgZG93bmNhc3Q8R3JhcGhpY3NMYXllckNBPihsYXllcigpKS5wbGF0Zm9ybUNBTGF5ZXIo
KS0+YWRkQW5pbWF0aW9uRm9yS2V5KCJGYWRlSGlnaGxpZ2h0T3V0Il9zLCBwbGF0Zm9ybUFuaW1h
dGlvbi5nZXQoKSk7CiAgICAgW0NBVHJhbnNhY3Rpb24gY29tbWl0XTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Bhc3RlYm9hcmRNYWMubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbQppbmRleCBhMmMyNTBhYTJiZWY4
ZGU5NjRiYWYwOTI0MGQ1ZTBlYzQxNTBlZjg0Li5kYzJmNWM1M2M2NTQxZTE5OGIzYTg0ZTZjNWE4
MDVkMWRkZmUwZDhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFz
dGVib2FyZE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2Fy
ZE1hYy5tbQpAQCAtNTAsMTIgKzUwLDEyIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY29u
c3QgY2hhciogY29uc3QgV2ViQXJjaGl2ZVBib2FyZFR5cGUgPSAiQXBwbGUgV2ViIEFyY2hpdmUg
cGFzdGVib2FyZCB0eXBlIjsKLWNvbnN0IGNoYXIqIGNvbnN0IFdlYlVSTE5hbWVQYm9hcmRUeXBl
ID0gInB1YmxpYy51cmwtbmFtZSI7Ci1jb25zdCBjaGFyKiBjb25zdCBXZWJVUkxzV2l0aFRpdGxl
c1Bib2FyZFR5cGUgPSAiV2ViVVJMc1dpdGhUaXRsZXNQYm9hcmRUeXBlIjsKK2NvbnN0IEFTQ0lJ
TGl0ZXJhbCBXZWJBcmNoaXZlUGJvYXJkVHlwZSA9ICJBcHBsZSBXZWIgQXJjaGl2ZSBwYXN0ZWJv
YXJkIHR5cGUiX3M7Citjb25zdCBBU0NJSUxpdGVyYWwgV2ViVVJMTmFtZVBib2FyZFR5cGUgPSAi
cHVibGljLnVybC1uYW1lIl9zOworY29uc3QgQVNDSUlMaXRlcmFsIFdlYlVSTHNXaXRoVGl0bGVz
UGJvYXJkVHlwZSA9ICJXZWJVUkxzV2l0aFRpdGxlc1Bib2FyZFR5cGUiX3M7CiAKLWNvbnN0IGNo
YXIgV2ViU21hcnRQYXN0ZVBib2FyZFR5cGVbXSA9ICJOZVhUIHNtYXJ0IHBhc3RlIHBhc3RlYm9h
cmQgdHlwZSI7Ci1jb25zdCBjaGFyIFdlYlVSTFBib2FyZFR5cGVbXSA9ICJwdWJsaWMudXJsIjsK
K2NvbnN0IEFTQ0lJTGl0ZXJhbCBXZWJTbWFydFBhc3RlUGJvYXJkVHlwZSA9ICJOZVhUIHNtYXJ0
IHBhc3RlIHBhc3RlYm9hcmQgdHlwZSJfczsKK2NvbnN0IEFTQ0lJTGl0ZXJhbCBXZWJVUkxQYm9h
cmRUeXBlID0gInB1YmxpYy51cmwiX3M7CiAKIHN0YXRpYyBjb25zdCBWZWN0b3I8U3RyaW5nPiB3
cml0YWJsZVR5cGVzRm9yVVJMKCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbQppbmRleCAzNWZjNmFmNTliNmFmY2I0
Zjk1NTRjMGYyYTg0YTMzNDI4Mzk2ZTVlLi5iN2I2ZTM3NDdiMGZjZDk3OGM4NzRlMDE4MmYyMzU2
M2NlNWQyZDg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZv
cm1FdmVudEZhY3RvcnlNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Bs
YXRmb3JtRXZlbnRGYWN0b3J5TWFjLm1tCkBAIC01MDIsNyArNTAyLDcgQEAgU3RyaW5nIGtleUlk
ZW50aWZpZXJGb3JLZXlFdmVudChOU0V2ZW50KiBldmVudCkKICAgICBOU1N0cmluZyAqcyA9IFtl
dmVudCBjaGFyYWN0ZXJzSWdub3JpbmdNb2RpZmllcnNdOwogICAgIGlmIChbcyBsZW5ndGhdICE9
IDEpIHsKICAgICAgICAgTE9HKEV2ZW50cywgInJlY2VpdmVkIGFuIHVuZXhwZWN0ZWQgbnVtYmVy
IG9mIGNoYXJhY3RlcnMgaW4ga2V5IGV2ZW50OiAldSIsIFtzIGxlbmd0aF0pOwotICAgICAgICBy
ZXR1cm4gIlVuaWRlbnRpZmllZCI7CisgICAgICAgIHJldHVybiAiVW5pZGVudGlmaWVkIl9zOwog
ICAgIH0KICAgICByZXR1cm4ga2V5SWRlbnRpZmllckZvckNoYXJDb2RlKFtzIGNoYXJhY3RlckF0
SW5kZXg6MF0pOwogfQpAQCAtODA5LDIwICs4MDksMjAgQEAgcHVibGljOgogCiAgICAgICAgIC8v
IEFsd2F5cyB1c2UgMTMgZm9yIEVudGVyL1JldHVybiAtLSB3ZSBkb24ndCB3YW50IHRvIHVzZSBB
cHBLaXQncyBkaWZmZXJlbnQgY2hhcmFjdGVyIGZvciBFbnRlci4KICAgICAgICAgaWYgKG1fd2lu
ZG93c1ZpcnR1YWxLZXlDb2RlID09IFZLX1JFVFVSTikgewotICAgICAgICAgICAgbV90ZXh0ID0g
IlxyIjsKLSAgICAgICAgICAgIG1fdW5tb2RpZmllZFRleHQgPSAiXHIiOworICAgICAgICAgICAg
bV90ZXh0ID0gIlxyIl9zOworICAgICAgICAgICAgbV91bm1vZGlmaWVkVGV4dCA9IG1fdGV4dDsK
ICAgICAgICAgfQogCiAgICAgICAgIC8vIEFwcEtpdCBzZXRzIHRleHQgdG8gIlx4N0YiIGZvciBi
YWNrc3BhY2UsIGJ1dCB0aGUgY29ycmVjdCBLZXlib2FyZEV2ZW50IGNoYXJhY3RlciBjb2RlIGlz
IDguCiAgICAgICAgIGlmIChtX3dpbmRvd3NWaXJ0dWFsS2V5Q29kZSA9PSBWS19CQUNLKSB7Ci0g
ICAgICAgICAgICBtX3RleHQgPSAiXHg4IjsKLSAgICAgICAgICAgIG1fdW5tb2RpZmllZFRleHQg
PSAiXHg4IjsKKyAgICAgICAgICAgIG1fdGV4dCA9ICJceDgiX3M7CisgICAgICAgICAgICBtX3Vu
bW9kaWZpZWRUZXh0ID0gbV90ZXh0OwogICAgICAgICB9CiAKICAgICAgICAgLy8gQWx3YXlzIHVz
ZSA5IGZvciBUYWIgLS0gd2UgZG9uJ3Qgd2FudCB0byB1c2UgQXBwS2l0J3MgZGlmZmVyZW50IGNo
YXJhY3RlciBmb3Igc2hpZnQtdGFiLgogICAgICAgICBpZiAobV93aW5kb3dzVmlydHVhbEtleUNv
ZGUgPT0gVktfVEFCKSB7Ci0gICAgICAgICAgICBtX3RleHQgPSAiXHg5IjsKLSAgICAgICAgICAg
IG1fdW5tb2RpZmllZFRleHQgPSAiXHg5IjsKKyAgICAgICAgICAgIG1fdGV4dCA9ICJceDkiX3M7
CisgICAgICAgICAgICBtX3VubW9kaWZpZWRUZXh0ID0gbV90ZXh0OwogICAgICAgICB9CiAKICAg
ICAgICAgLy8gTWFjIHNwZWNpZmljLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1BsYXRmb3JtUGFzdGVib2FyZE1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9QbGF0Zm9ybVBhc3RlYm9hcmRNYWMubW0KaW5kZXggYTdmZTcyNTU0Mzc2NjVlOGI4YTBj
NzQ1M2QzMDQ3NDlkNDU2MmY2Ny4uNDZkYjU3ZGVlYTlkNzI2OWFlYjRkODc3ZDE5MTdkNWQ2MzAz
ZGEzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtUGFz
dGVib2FyZE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1Q
YXN0ZWJvYXJkTWFjLm1tCkBAIC0yMTcsNyArMjE3LDcgQEAgQUxMT1dfREVQUkVDQVRFRF9ERUNM
QVJBVElPTlNfRU5ECiBWZWN0b3I8U3RyaW5nPiBQbGF0Zm9ybVBhc3RlYm9hcmQ6OnR5cGVzU2Fm
ZUZvckRPTVRvUmVhZEFuZFdyaXRlKGNvbnN0IFN0cmluZyYgb3JpZ2luKSBjb25zdAogewogICAg
IExpc3RIYXNoU2V0PFN0cmluZz4gZG9tUGFzdGVib2FyZFR5cGVzOwotICAgIGlmIChOU0RhdGEg
KnNlcmlhbGl6ZWRDdXN0b21EYXRhID0gW21fcGFzdGVib2FyZCBkYXRhRm9yVHlwZTpAKFBhc3Rl
Ym9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKSldKSB7CisgICAgaWYgKE5TRGF0YSAqc2VyaWFs
aXplZEN1c3RvbURhdGEgPSBbbV9wYXN0ZWJvYXJkIGRhdGFGb3JUeXBlOkAoUGFzdGVib2FyZEN1
c3RvbURhdGE6OmNvY29hVHlwZSgpLmNoYXJhY3RlcnMoKSldKSB7CiAgICAgICAgIGF1dG8gZGF0
YSA9IFBhc3RlYm9hcmRDdXN0b21EYXRhOjpmcm9tU2hhcmVkQnVmZmVyKFNoYXJlZEJ1ZmZlcjo6
Y3JlYXRlKHNlcmlhbGl6ZWRDdXN0b21EYXRhKS5nZXQoKSk7CiAgICAgICAgIGlmIChkYXRhLm9y
aWdpbigpID09IG9yaWdpbikgewogICAgICAgICAgICAgZm9yIChhdXRvJiB0eXBlIDogZGF0YS5v
cmRlcmVkVHlwZXMoKSkKQEAgLTIyNyw3ICsyMjcsNyBAQCBWZWN0b3I8U3RyaW5nPiBQbGF0Zm9y
bVBhc3RlYm9hcmQ6OnR5cGVzU2FmZUZvckRPTVRvUmVhZEFuZFdyaXRlKGNvbnN0IFN0cmluZyYg
bwogCiAgICAgTlNBcnJheTxOU1N0cmluZyAqPiAqYWxsVHlwZXMgPSBbbV9wYXN0ZWJvYXJkIHR5
cGVzXTsKICAgICBmb3IgKE5TU3RyaW5nICp0eXBlIGluIGFsbFR5cGVzKSB7Ci0gICAgICAgIGlm
IChbdHlwZSBpc0VxdWFsVG9TdHJpbmc6QChQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBl
KCkpXSkKKyAgICAgICAgaWYgKFt0eXBlIGlzRXF1YWxUb1N0cmluZzpAKFBhc3RlYm9hcmRDdXN0
b21EYXRhOjpjb2NvYVR5cGUoKS5jaGFyYWN0ZXJzKCkpXSkKICAgICAgICAgICAgIGNvbnRpbnVl
OwogCiAgICAgICAgIGlmIChQYXN0ZWJvYXJkOjppc1NhZmVUeXBlRm9yRE9NVG9SZWFkQW5kV3Jp
dGUodHlwZSkpCkBAIC0yNTQsNyArMjU0LDcgQEAgaW50NjRfdCBQbGF0Zm9ybVBhc3RlYm9hcmQ6
OndyaXRlKGNvbnN0IFBhc3RlYm9hcmRDdXN0b21EYXRhJiBkYXRhKQogCiAgICAgYm9vbCBzaG91
bGRXcml0ZUN1c3RvbURhdGEgPSBkYXRhLmhhc1NhbWVPcmlnaW5DdXN0b21EYXRhKCkgfHwgIWRh
dGEub3JpZ2luKCkuaXNFbXB0eSgpOwogICAgIGlmIChzaG91bGRXcml0ZUN1c3RvbURhdGEpCi0g
ICAgICAgIFt0eXBlcyBhZGRPYmplY3Q6QChQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBl
KCkpXTsKKyAgICAgICAgW3R5cGVzIGFkZE9iamVjdDpAKFBhc3RlYm9hcmRDdXN0b21EYXRhOjpj
b2NvYVR5cGUoKS5jaGFyYWN0ZXJzKCkpXTsKIAogICAgIFttX3Bhc3RlYm9hcmQgZGVjbGFyZVR5
cGVzOnR5cGVzIG93bmVyOm5pbF07CiAKQEAgLTI3NSw3ICsyNzUsNyBAQCBpbnQ2NF90IFBsYXRm
b3JtUGFzdGVib2FyZDo6d3JpdGUoY29uc3QgUGFzdGVib2FyZEN1c3RvbURhdGEmIGRhdGEpCiAK
ICAgICBpZiAoc2hvdWxkV3JpdGVDdXN0b21EYXRhKSB7CiAgICAgICAgIGlmIChhdXRvIHNlcmlh
bGl6ZWRDdXN0b21EYXRhID0gZGF0YS5jcmVhdGVTaGFyZWRCdWZmZXIoKS0+Y3JlYXRlTlNEYXRh
KCkpCi0gICAgICAgICAgICBbbV9wYXN0ZWJvYXJkIHNldERhdGE6c2VyaWFsaXplZEN1c3RvbURh
dGEuZ2V0KCkgZm9yVHlwZTpAKFBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKSldOwor
ICAgICAgICAgICAgW21fcGFzdGVib2FyZCBzZXREYXRhOnNlcmlhbGl6ZWRDdXN0b21EYXRhLmdl
dCgpIGZvclR5cGU6QChQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkuY2hhcmFjdGVy
cygpKV07CiAgICAgfQogCiAgICAgcmV0dXJuIGNoYW5nZUNvdW50KCk7CkBAIC00OTksNyArNDk5
LDcgQEAgc3RhdGljIFJldGFpblB0cjxOU1Bhc3RlYm9hcmRJdGVtPiBjcmVhdGVQYXN0ZWJvYXJk
SXRlbShjb25zdCBQYXN0ZWJvYXJkQ3VzdG9tRGEKIAogICAgIGlmIChkYXRhLmhhc1NhbWVPcmln
aW5DdXN0b21EYXRhKCkgfHwgIWRhdGEub3JpZ2luKCkuaXNFbXB0eSgpKSB7CiAgICAgICAgIGlm
IChhdXRvIHNlcmlhbGl6ZWRDdXN0b21EYXRhID0gZGF0YS5jcmVhdGVTaGFyZWRCdWZmZXIoKS0+
Y3JlYXRlTlNEYXRhKCkpCi0gICAgICAgICAgICBbaXRlbSBzZXREYXRhOnNlcmlhbGl6ZWRDdXN0
b21EYXRhLmdldCgpIGZvclR5cGU6QChQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkp
XTsKKyAgICAgICAgICAgIFtpdGVtIHNldERhdGE6c2VyaWFsaXplZEN1c3RvbURhdGEuZ2V0KCkg
Zm9yVHlwZTpAKFBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKS5jaGFyYWN0ZXJzKCkp
XTsKICAgICB9CiAKICAgICBkYXRhLmZvckVhY2hQbGF0Zm9ybVN0cmluZ09yQnVmZmVyKFsmXSAo
YXV0byYgdHlwZSwgYXV0byYgc3RyaW5nT3JCdWZmZXIpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9TdHJpbmdVdGlsaXRpZXMubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvU3RyaW5nVXRpbGl0aWVzLm1tCmluZGV4IDdjZDFiZDgwYWU5ZTMzZTc1NmY2
NTkxMjI0MGY3ZWQ2Y2MzM2M1YjUuLjkyYmU2NjdlNjNlYjMxZjQxZDc3OWE5NjYyZjFmYjc1NmY0
NjU0M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TdHJpbmdVdGls
aXRpZXMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1N0cmluZ1V0aWxpdGll
cy5tbQpAQCAtMzMsNyArMzMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgCiBzdGF0aWMg
U3RyaW5nIHdpbGRjYXJkUmVnZXhQYXR0ZXJuU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQog
ewotICAgIFN0cmluZyBtZXRhQ2hhcmFjdGVycyA9ICIufCs/KClbXXt9XiQiOworICAgIFN0cmlu
ZyBtZXRhQ2hhcmFjdGVycyA9ICIufCs/KClbXXt9XiQiX3M7CiAgICAgVUNoYXIgZXNjYXBlQ2hh
cmFjdGVyID0gJ1xcJzsKICAgICBVQ2hhciB3aWxkY2FyZENoYXJhY3RlciA9ICcqJzsKICAgICAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9UaHJlYWRDaGVjay5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9UaHJlYWRDaGVjay5tbQppbmRleCBmMTUxMDg4
Y2U5MjVhNTA2ZWI0NjhiMjIyMWZhZjMyNzUwMzJiYTQyLi5iYmQ3MzQ0MWUwNTBiOTY4NzU3YTRm
NWE2YWQxMzQ2NmIxYWQwNmQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvVGhyZWFkQ2hlY2subW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1RocmVh
ZENoZWNrLm1tCkBAIC0xMDYsNyArMTA2LDcgQEAgdm9pZCBXZWJDb3JlUmVwb3J0VGhyZWFkVmlv
bGF0aW9uKGNvbnN0IGNoYXIqIGZ1bmN0aW9uLCBXZWJDb3JlOjpUaHJlYWRWaW9sYXRpb24KICAg
ICAgICAgY2FzZSBOb1RocmVhZENoZWNrOgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNh
c2UgTG9nT25GaXJzdFRocmVhZFZpb2xhdGlvbjoKLSAgICAgICAgICAgIGlmIChsb2dnZWRGdW5j
dGlvbnMuZ2V0KCkuYWRkKGZ1bmN0aW9uKS5pc05ld0VudHJ5KSB7CisgICAgICAgICAgICBpZiAo
bG9nZ2VkRnVuY3Rpb25zLmdldCgpLmFkZChTdHJpbmcgeyBmdW5jdGlvbiB9KS5pc05ld0VudHJ5
KSB7CiAgICAgICAgICAgICAgICAgTlNMb2coQCJXZWJLaXQgVGhyZWFkaW5nIFZpb2xhdGlvbiAt
ICVzIGNhbGxlZCBmcm9tIHNlY29uZGFyeSB0aHJlYWQiLCBmdW5jdGlvbik7CiAgICAgICAgICAg
ICAgICAgTlNMb2coQCJBZGRpdGlvbmFsIHRocmVhZGluZyB2aW9sYXRpb25zIGZvciB0aGlzIGZ1
bmN0aW9uIHdpbGwgbm90IGJlIGxvZ2dlZC4iKTsKICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9Vc2VyQWdlbnRNYWMubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvVXNlckFnZW50TWFjLm1tCmluZGV4IGU2MmE5N2YxOTlhYWNjM2Nh
NjkyZDhkYTRiMjA5ZDI5OTRlM2EwZDEuLjIwMWVkN2FkY2NjNjM5MDNlNGUzZmQ4NmE5MWQ2YTI5
OWY1YjhlM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9Vc2VyQWdl
bnRNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1VzZXJBZ2VudE1hYy5t
bQpAQCAtMzgsNyArMzgsNyBAQCBTdHJpbmcgc3RhbmRhcmRVc2VyQWdlbnRXaXRoQXBwbGljYXRp
b25OYW1lKGNvbnN0IFN0cmluZyYgYXBwbGljYXRpb25OYW1lLCBjb25zdAogICAgIGlmICghb3NW
ZXJzaW9uLnN0YXJ0c1dpdGgoIjEwIikpCiAgICAgICAgIG9zVmVyc2lvbiA9ICIxMF8xNV83Il9z
OwogICAgIAotICAgIFN0cmluZyBhcHBOYW1lU3VmZml4ID0gYXBwbGljYXRpb25OYW1lLmlzRW1w
dHkoKSA/ICIiIDogbWFrZVN0cmluZygiICIsIGFwcGxpY2F0aW9uTmFtZSk7CisgICAgU3RyaW5n
IGFwcE5hbWVTdWZmaXggPSBhcHBsaWNhdGlvbk5hbWUuaXNFbXB0eSgpID8gIiJfcyA6IG1ha2VT
dHJpbmcoIiAiLCBhcHBsaWNhdGlvbk5hbWUpOwogCiAgICAgcmV0dXJuIG1ha2VTdHJpbmcoIk1v
emlsbGEvNS4wIChNYWNpbnRvc2g7IEludGVsIE1hYyBPUyBYICIsIG9zVmVyc2lvbiwgIikgQXBw
bGVXZWJLaXQvNjA1LjEuMTUgKEtIVE1MLCBsaWtlIEdlY2tvKSIsIGFwcE5hbWVTdWZmaXgpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUVy
cm9yQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlRXJy
b3JCYXNlLmNwcAppbmRleCA2N2QyZWFjMDhmYTdiNGJmMDY0Y2NkZmFiYzI0OWZjYzQ2MjUxY2Zk
Li5kMDE5M2FjNmM5Yjk3NGFhMmJmMWQ3MTk3OWQzZTcwMTViYzMwZDlkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlRXJyb3JCYXNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlRXJyb3JCYXNlLmNwcApA
QCAtMzIsOCArMzIsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNvbnN0IGNoYXIqIGNv
bnN0IGVycm9yRG9tYWluV2ViS2l0SW50ZXJuYWwgPSAiV2ViS2l0SW50ZXJuYWwiOwotY29uc3Qg
Y2hhciogY29uc3QgZXJyb3JEb21haW5XZWJLaXRTZXJ2aWNlV29ya2VyID0gIldlYktpdFNlcnZp
Y2VXb3JrZXIiOworY29uc3QgQVNDSUlMaXRlcmFsIGVycm9yRG9tYWluV2ViS2l0SW50ZXJuYWwg
PSAiV2ViS2l0SW50ZXJuYWwiX3M7Citjb25zdCBBU0NJSUxpdGVyYWwgZXJyb3JEb21haW5XZWJL
aXRTZXJ2aWNlV29ya2VyID0gIldlYktpdFNlcnZpY2VXb3JrZXIiX3M7CiAKIGlubGluZSBjb25z
dCBSZXNvdXJjZUVycm9yJiBSZXNvdXJjZUVycm9yQmFzZTo6YXNSZXNvdXJjZUVycm9yKCkgY29u
c3QKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3Vy
Y2VFcnJvckJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VF
cnJvckJhc2UuaAppbmRleCA0ODhkZWJjMTQzZDYzZjQ1N2U4ZDM4ZTljNmRjMjNhOWQyMGJhODE2
Li5lMTIxYzUxNGY0ODk0MjZhMzQzZDM0NDg5MGI5NjYzMDI1MGNkN2NhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlRXJyb3JCYXNlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUVycm9yQmFzZS5oCkBAIC0z
NCw4ICszNCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUmVzb3VyY2VFcnJvcjsK
IAotV0VCQ09SRV9FWFBPUlQgZXh0ZXJuIGNvbnN0IGNoYXIqIGNvbnN0IGVycm9yRG9tYWluV2Vi
S2l0SW50ZXJuYWw7IC8vIFVzZWQgZm9yIGVycm9ycyB0aGF0IHdvbid0IGJlIGV4cG9zZWQgdG8g
Y2xpZW50cy4KLVdFQkNPUkVfRVhQT1JUIGV4dGVybiBjb25zdCBjaGFyKiBjb25zdCBlcnJvckRv
bWFpbldlYktpdFNlcnZpY2VXb3JrZXI7IC8vIFVzZWQgZm9yIGVycm9ycyB0aGF0IGhhcHBlbiB3
aGVuIGxvYWRpbmcgYSByZXNvdXJjZSBmcm9tIGEgc2VydmljZSB3b3JrZXIuCitXRUJDT1JFX0VY
UE9SVCBleHRlcm4gY29uc3QgQVNDSUlMaXRlcmFsIGVycm9yRG9tYWluV2ViS2l0SW50ZXJuYWw7
IC8vIFVzZWQgZm9yIGVycm9ycyB0aGF0IHdvbid0IGJlIGV4cG9zZWQgdG8gY2xpZW50cy4KK1dF
QkNPUkVfRVhQT1JUIGV4dGVybiBjb25zdCBBU0NJSUxpdGVyYWwgZXJyb3JEb21haW5XZWJLaXRT
ZXJ2aWNlV29ya2VyOyAvLyBVc2VkIGZvciBlcnJvcnMgdGhhdCBoYXBwZW4gd2hlbiBsb2FkaW5n
IGEgcmVzb3VyY2UgZnJvbSBhIHNlcnZpY2Ugd29ya2VyLgogCiBjbGFzcyBSZXNvdXJjZUVycm9y
QmFzZSB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1JhbmdlUmVzcG9uc2VHZW5lcmF0b3IubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1JhbmdlUmVzcG9uc2VHZW5l
cmF0b3IubW0KaW5kZXggMTk4MTRhMzY1YzlmNjYxYTIxYzIyOWFkYmQwNDYxMWMyMDk0N2U2NC4u
MDRlZmRiNGRmZjFkMTY0MWMzZDYwNWFmMzAxNGQxYTEwYzI0NjQzZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9SYW5nZVJlc3BvbnNlR2VuZXJhdG9y
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvUmFuZ2VSZXNw
b25zZUdlbmVyYXRvci5tbQpAQCAtNzgsNyArNzgsNyBAQCBzdGF0aWMgUmVzb3VyY2VSZXNwb25z
ZSBzeW50aGVzaXplZFJlc3BvbnNlRm9yUmFuZ2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgb3Jp
ZwogICAgIGF1dG8gYmVnaW4gPSBwYXJzZWRSZXF1ZXN0UmFuZ2UuYmVnaW47CiAgICAgYXV0byBl
bmQgPSBwYXJzZWRSZXF1ZXN0UmFuZ2UuZW5kOwogCi0gICAgYXV0byBuZXdDb250ZW50UmFuZ2Ug
PSBtYWtlU3RyaW5nKCJieXRlcyAiLCBiZWdpbiwgIi0iLCBlbmQsICIvIiwgKHRvdGFsQ29udGVu
dExlbmd0aCA/IG1ha2VTdHJpbmcoKnRvdGFsQ29udGVudExlbmd0aCkgOiAiKiIpKTsKKyAgICBh
dXRvIG5ld0NvbnRlbnRSYW5nZSA9IG1ha2VTdHJpbmcoImJ5dGVzICIsIGJlZ2luLCAiLSIsIGVu
ZCwgIi8iLCAodG90YWxDb250ZW50TGVuZ3RoID8gbWFrZVN0cmluZygqdG90YWxDb250ZW50TGVu
Z3RoKSA6ICIqIl9zKSk7CiAgICAgYXV0byBuZXdDb250ZW50TGVuZ3RoID0gbWFrZVN0cmluZyhl
bmQgLSBiZWdpbiArIDEpOwogCiAgICAgUmVzb3VyY2VSZXNwb25zZSBuZXdSZXNwb25zZSA9IG9y
aWdpbmFsUmVzcG9uc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGhlbWVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMu
bW0KaW5kZXggMDEwZWNiYWVkODdhNzNhNDIwYWZiOTdlOGU4MGZlYTYzNzlmZWQzZS4uOGU5ZDQ2
YTFiMzRjYWIwNDdmYmEzNDNkMWI1N2EyYzViMmRjMTA4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQpAQCAtMjYxOSw3ICsyNjE5LDcgQEAgQUxMT1dfREVQ
UkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgICAgICByZXR1cm4gaWNvbjsKICAgICB9
CiAKLSAgICByZXR1cm4gSWNvbjo6Y3JlYXRlSWNvbkZvclVUSSgicHVibGljLmRhdGEiKTsKKyAg
ICByZXR1cm4gSWNvbjo6Y3JlYXRlSWNvbkZvclVUSSgicHVibGljLmRhdGEiX3MpOwogfQogCiBS
ZXRhaW5QdHI8TlNJbWFnZT4gUmVuZGVyVGhlbWVNYWM6Omljb25Gb3JBdHRhY2htZW50KGNvbnN0
IFN0cmluZyYgZmlsZU5hbWUsIGNvbnN0IFN0cmluZyYgYXR0YWNobWVudFR5cGUsIGNvbnN0IFN0
cmluZyYgdGl0bGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
UmVuZGVyU3R5bGVDb25zdGFudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxl
L1JlbmRlclN0eWxlQ29uc3RhbnRzLmNwcAppbmRleCA5MmJjNmE4MTJhMTE4YTUxOWYwYjQ2Yzk0
Zjk3MmUzMmIzYTVlZTU2Li40YzUyYzY3MWJkYmNlNjRjOTNlY2MyNGY1ODMwMTUyY2ZmMDUwNmZi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVD
b25zdGFudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJT
dHlsZUNvbnN0YW50cy5jcHAKQEAgLTY3MSw3ICs2NzEsNyBAQCBUZXh0U3RyZWFtJiBvcGVyYXRv
cjw8KFRleHRTdHJlYW0mIHRzLCBMaXN0U3R5bGVQb3NpdGlvbiBwb3NpdGlvbikKIAogVGV4dFN0
cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgTGlzdFN0eWxlVHlwZSBzdHlsZVR5cGUp
CiB7Ci0gICAgcmV0dXJuIHRzIDw8IGdldFZhbHVlTmFtZSh0b0NTU1ZhbHVlSUQoc3R5bGVUeXBl
KSk7CisgICAgcmV0dXJuIHRzIDw8IGdldFZhbHVlTmFtZSh0b0NTU1ZhbHVlSUQoc3R5bGVUeXBl
KSkuY2hhcmFjdGVycygpOwogfQogCiBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0m
IHRzLCBNYXJxdWVlQmVoYXZpb3IgbWFycXVlZUJlaGF2aW9yKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
aWx0ZXJFbGVtZW50LmgKaW5kZXggMWFjZDJhZTk1YTE1OTRlOWYzMzc5ZDJlOTM5ZjkxNmRkMTUw
NDZmZC4uMDBjNzYxMGExMGNlYmE0NTM0MjRkYTc5NDA5NmUxYTZmZDMzNTI5NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRmlsdGVyRWxlbWVudC5oCkBAIC02OCwxMCArNjgsMTAgQEAgcHJpdmF0ZToK
ICAgICBQcm9wZXJ0eVJlZ2lzdHJ5IG1fcHJvcGVydHlSZWdpc3RyeSB7ICp0aGlzIH07CiAgICAg
UmVmPFNWR0FuaW1hdGVkRW51bWVyYXRpb24+IG1fZmlsdGVyVW5pdHMgeyBTVkdBbmltYXRlZEVu
dW1lcmF0aW9uOjpjcmVhdGUodGhpcywgU1ZHVW5pdFR5cGVzOjpTVkdfVU5JVF9UWVBFX09CSkVD
VEJPVU5ESU5HQk9YKSB9OwogICAgIFJlZjxTVkdBbmltYXRlZEVudW1lcmF0aW9uPiBtX3ByaW1p
dGl2ZVVuaXRzIHsgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbjo6Y3JlYXRlKHRoaXMsIFNWR1VuaXRU
eXBlczo6U1ZHX1VOSVRfVFlQRV9VU0VSU1BBQ0VPTlVTRSkgfTsKLSAgICBSZWY8U1ZHQW5pbWF0
ZWRMZW5ndGg+IG1feCB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3Ro
TW9kZTo6V2lkdGgsICItMTAlIikgfTsKLSAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1feSB7
IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6SGVpZ2h0LCAi
LTEwJSIpIH07Ci0gICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX3dpZHRoIHsgU1ZHQW5pbWF0
ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpXaWR0aCwgIjEyMCUiKSB9Owot
ICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV9oZWlnaHQgeyBTVkdBbmltYXRlZExlbmd0aDo6
Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OkhlaWdodCwgIjEyMCUiKSB9OworICAgIFJlZjxT
VkdBbmltYXRlZExlbmd0aD4gbV94IHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBT
VkdMZW5ndGhNb2RlOjpXaWR0aCwgIi0xMCUiX3MpIH07CisgICAgUmVmPFNWR0FuaW1hdGVkTGVu
Z3RoPiBtX3kgeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6
OkhlaWdodCwgIi0xMCUiX3MpIH07CisgICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX3dpZHRo
IHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpXaWR0aCwg
IjEyMCUiX3MpIH07CisgICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX2hlaWdodCB7IFNWR0Fu
aW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6SGVpZ2h0LCAiMTIwJSJf
cykgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMuaCBiL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMuaAppbmRl
eCAzMTAzY2M2YWMyMzNlMGZkM2IyZmIxZTk3OTA0OWEyOGI3YjZmOGJiLi43OGUyYWEyYzFlODE0
ZTY5OGVkNDQ0ZWVjNzdmOWIyMDc2ZTNmOTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5oCkBAIC03NSwx
MCArNzUsMTAgQEAgcHJpdmF0ZToKIAogICAgIC8vIFNwZWM6IElmIHRoZSB4L3kgYXR0cmlidXRl
IGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBlZmZlY3QgaXMgYXMgaWYgYSB2YWx1ZSBvZiAiMCUiIHdl
cmUgc3BlY2lmaWVkLgogICAgIC8vIFNwZWM6IElmIHRoZSB3aWR0aC9oZWlnaHQgYXR0cmlidXRl
IGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBlZmZlY3QgaXMgYXMgaWYgYSB2YWx1ZSBvZiAiMTAwJSIg
d2VyZSBzcGVjaWZpZWQuCi0gICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX3ggeyBTVkdBbmlt
YXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OldpZHRoLCAiMCUiKSB9Owot
ICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV95IHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0
ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpIZWlnaHQsICIwJSIpIH07Ci0gICAgUmVmPFNWR0FuaW1h
dGVkTGVuZ3RoPiBtX3dpZHRoIHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdM
ZW5ndGhNb2RlOjpXaWR0aCwgIjEwMCUiKSB9OwotICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4g
bV9oZWlnaHQgeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6
OkhlaWdodCwgIjEwMCUiKSB9OworICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV94IHsgU1ZH
QW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpXaWR0aCwgIjAlIl9z
KSB9OworICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV95IHsgU1ZHQW5pbWF0ZWRMZW5ndGg6
OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpIZWlnaHQsICIwJSJfcykgfTsKKyAgICBSZWY8
U1ZHQW5pbWF0ZWRMZW5ndGg+IG1fd2lkdGggeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRo
aXMsIFNWR0xlbmd0aE1vZGU6OldpZHRoLCAiMTAwJSJfcykgfTsKKyAgICBSZWY8U1ZHQW5pbWF0
ZWRMZW5ndGg+IG1faGVpZ2h0IHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdM
ZW5ndGhNb2RlOjpIZWlnaHQsICIxMDAlIl9zKSB9OwogICAgIFJlZjxTVkdBbmltYXRlZFN0cmlu
Zz4gbV9yZXN1bHQgeyBTVkdBbmltYXRlZFN0cmluZzo6Y3JlYXRlKHRoaXMpIH07CiB9OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmgKaW5kZXggYWVm
ZTY0Y2UxNDY3Njc4NGMwZDFhOTI0Y2UzZGZlYWQ3YmFjYzM3My4uZGYyMGJkMDU5ZmFjNzNiMjNk
NzY5ZTg5YzkyZGVmMGZiZWM5NzhhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0xpbmVhckdyYWRpZW50RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5l
YXJHcmFkaWVudEVsZW1lbnQuaApAQCAtNjEsNyArNjEsNyBAQCBwcml2YXRlOgogICAgIFByb3Bl
cnR5UmVnaXN0cnkgbV9wcm9wZXJ0eVJlZ2lzdHJ5IHsgKnRoaXMgfTsKICAgICBSZWY8U1ZHQW5p
bWF0ZWRMZW5ndGg+IG1feDEgeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xl
bmd0aE1vZGU6OldpZHRoKSB9OwogICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV95MSB7IFNW
R0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6SGVpZ2h0KSB9Owot
ICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV94MiB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVh
dGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6V2lkdGgsICIxMDAlIikgfTsKKyAgICBSZWY8U1ZHQW5p
bWF0ZWRMZW5ndGg+IG1feDIgeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xl
bmd0aE1vZGU6OldpZHRoLCAiMTAwJSJfcykgfTsKICAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+
IG1feTIgeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6Okhl
aWdodCkgfTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJF
bGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5oCmluZGV4IDVh
MTM2ZTNlZjQ1YTU3YTUxYzkyZmY3NjU5YmE2YWY3NjJmMmFlOTMuLmUxZjdlZTlhYzQ3MWFhNGY2
ODBmYjU0YzI0M2FmZDA3NzM3Mjc1ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdNYXJrZXJFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1l
bnQuaApAQCAtODksOCArODksOCBAQCBwcml2YXRlOgogICAgIFByb3BlcnR5UmVnaXN0cnkgbV9w
cm9wZXJ0eVJlZ2lzdHJ5IHsgKnRoaXMgfTsKICAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1f
cmVmWCB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6V2lk
dGgpIH07CiAgICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX3JlZlkgeyBTVkdBbmltYXRlZExl
bmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OkhlaWdodCkgfTsKLSAgICBSZWY8U1ZH
QW5pbWF0ZWRMZW5ndGg+IG1fbWFya2VyV2lkdGggeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRl
KHRoaXMsIFNWR0xlbmd0aE1vZGU6OldpZHRoLCAiMyIpIH07Ci0gICAgUmVmPFNWR0FuaW1hdGVk
TGVuZ3RoPiBtX21hcmtlckhlaWdodCB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywg
U1ZHTGVuZ3RoTW9kZTo6SGVpZ2h0LCAiMyIpIH07CisgICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3Ro
PiBtX21hcmtlcldpZHRoIHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5n
dGhNb2RlOjpXaWR0aCwgIjMiX3MpIH07CisgICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX21h
cmtlckhlaWdodCB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9k
ZTo6SGVpZ2h0LCAiMyJfcykgfTsKICAgICBSZWY8U1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbj4gbV9t
YXJrZXJVbml0cyB7IFNWR0FuaW1hdGVkRW51bWVyYXRpb246OmNyZWF0ZSh0aGlzLCBTVkdNYXJr
ZXJVbml0c1N0cm9rZVdpZHRoKSB9OwogICAgIFJlZjxTVkdBbmltYXRlZEFuZ2xlPiBtX29yaWVu
dEFuZ2xlIHsgU1ZHQW5pbWF0ZWRBbmdsZTo6Y3JlYXRlKHRoaXMpIH07CiAgICAgUmVmPFNWR0Fu
aW1hdGVkT3JpZW50VHlwZT4gbV9vcmllbnRUeXBlIHsgU1ZHQW5pbWF0ZWRPcmllbnRUeXBlOjpj
cmVhdGUodGhpcywgU1ZHTWFya2VyT3JpZW50QW5nbGUpIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHTWFza0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXNr
RWxlbWVudC5oCmluZGV4IDQ5MGRjMjIxYWIyNDRhM2VmNWZkZGQyODVkZjM3YTZlNDYwMDM0MmQu
LmRiZDA0MmQwZDNhZjgxMjBlMDBmNTk5Yjk1YjAxZDExMzhjZTIxZGYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdNYXNrRWxlbWVudC5oCkBAIC02MywxMCArNjMsMTAgQEAgcHJpdmF0ZToKICAgICBib29s
IHNlbGZIYXNSZWxhdGl2ZUxlbmd0aHMoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAK
ICAgICBQcm9wZXJ0eVJlZ2lzdHJ5IG1fcHJvcGVydHlSZWdpc3RyeSB7ICp0aGlzIH07Ci0gICAg
UmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX3ggeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRo
aXMsIFNWR0xlbmd0aE1vZGU6OldpZHRoLCAiLTEwJSIpIH07Ci0gICAgUmVmPFNWR0FuaW1hdGVk
TGVuZ3RoPiBtX3kgeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1v
ZGU6OkhlaWdodCwgIi0xMCUiKSB9OwotICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV93aWR0
aCB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6V2lkdGgs
ICIxMjAlIikgfTsKLSAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1faGVpZ2h0IHsgU1ZHQW5p
bWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpIZWlnaHQsICIxMjAlIikg
fTsKKyAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1feCB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpj
cmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6V2lkdGgsICItMTAlIl9zKSB9OworICAgIFJlZjxT
VkdBbmltYXRlZExlbmd0aD4gbV95IHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBT
VkdMZW5ndGhNb2RlOjpIZWlnaHQsICItMTAlIl9zKSB9OworICAgIFJlZjxTVkdBbmltYXRlZExl
bmd0aD4gbV93aWR0aCB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3Ro
TW9kZTo6V2lkdGgsICIxMjAlIl9zKSB9OworICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV9o
ZWlnaHQgeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6Okhl
aWdodCwgIjEyMCUiX3MpIH07CiAgICAgUmVmPFNWR0FuaW1hdGVkRW51bWVyYXRpb24+IG1fbWFz
a1VuaXRzIHsgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbjo6Y3JlYXRlKHRoaXMsIFNWR1VuaXRUeXBl
czo6U1ZHX1VOSVRfVFlQRV9PQkpFQ1RCT1VORElOR0JPWCkgfTsKICAgICBSZWY8U1ZHQW5pbWF0
ZWRFbnVtZXJhdGlvbj4gbV9tYXNrQ29udGVudFVuaXRzIHsgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlv
bjo6Y3JlYXRlKHRoaXMsIFNWR1VuaXRUeXBlczo6U1ZHX1VOSVRfVFlQRV9VU0VSU1BBQ0VPTlVT
RSkgfTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0ltcGwu
aCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnSW1wbC5oCmluZGV4IGE2MzYxNTQyOTRm
ZWEzYTViMDViZjlmZThmMmY5MGMxOGVhMTA4MzQuLjM0ZjIzYzUxNWY5NGI5MzkxNzBmM2E1Y2U5
YWU4ZmI1Mjg4NjYxOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2Vn
SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnSW1wbC5oCkBAIC0zNSw3
ICszNSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdXNpbmcgU1ZHUGF0aFNlZzo6U1ZHUGF0
aFNlZzsKICAgICB1bnNpZ25lZCBzaG9ydCBwYXRoU2VnVHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIFBBVEhTRUdfQ0xPU0VQQVRIOyB9Ci0gICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIo
KSBjb25zdCBmaW5hbCB7IHJldHVybiAiWiI7IH0KKyAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xl
dHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJaIl9zOyB9CiAgICAgUmVmPFNWR1BhdGhTZWc+
IGNsb25lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdQYXRoU2VnQ2xv
c2VQYXRoKCkpOyB9CiB9OwogCkBAIC00NSw3ICs0NSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAg
ICAgdXNpbmcgU1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWw6OlNWR1BhdGhTZWdMaW5ldG9Ib3Jp
em9udGFsOwogICAgIHVuc2lnbmVkIHNob3J0IHBhdGhTZWdUeXBlKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gUEFUSFNFR19MSU5FVE9fSE9SSVpPTlRBTF9BQlM7IH0KLSAgICBTdHJpbmcgcGF0aFNl
Z1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJIIjsgfQorICAgIFN0cmluZyBw
YXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIkgiX3M7IH0KICAgICBS
ZWY8U1ZHUGF0aFNlZz4gY2xvbmUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBTVkdQYXRoU2VnVmFs
dWU6OmNsb25lPFNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsQWJzPigpOyB9CiB9OwogCkBAIC01
NSw3ICs1NSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdXNpbmcgU1ZHUGF0aFNlZ0xpbmV0
b0hvcml6b250YWw6OlNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsOwogICAgIHVuc2lnbmVkIHNo
b3J0IHBhdGhTZWdUeXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gUEFUSFNFR19MSU5FVE9fSE9S
SVpPTlRBTF9SRUw7IH0KLSAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuICJoIjsgfQorICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29u
c3QgZmluYWwgeyByZXR1cm4gImgiX3M7IH0KICAgICBSZWY8U1ZHUGF0aFNlZz4gY2xvbmUoKSBj
b25zdCBmaW5hbCB7IHJldHVybiBTVkdQYXRoU2VnVmFsdWU6OmNsb25lPFNWR1BhdGhTZWdMaW5l
dG9Ib3Jpem9udGFsUmVsPigpOyB9CiB9OwogCkBAIC02NSw3ICs2NSw3IEBAIHB1YmxpYzoKIHBy
aXZhdGU6CiAgICAgdXNpbmcgU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsOjpTVkdQYXRoU2VnTGlu
ZXRvVmVydGljYWw7CiAgICAgdW5zaWduZWQgc2hvcnQgcGF0aFNlZ1R5cGUoKSBjb25zdCBmaW5h
bCB7IHJldHVybiBQQVRIU0VHX0xJTkVUT19WRVJUSUNBTF9BQlM7IH0KLSAgICBTdHJpbmcgcGF0
aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJWIjsgfQorICAgIFN0cmlu
ZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIlYiX3M7IH0KICAg
ICBSZWY8U1ZHUGF0aFNlZz4gY2xvbmUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBTVkdQYXRoU2Vn
VmFsdWU6OmNsb25lPFNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbEFicz4oKTsgfQogfTsKIApAQCAt
NzUsNyArNzUsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHVzaW5nIFNWR1BhdGhTZWdMaW5l
dG9WZXJ0aWNhbDo6U1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsOwogICAgIHVuc2lnbmVkIHNob3J0
IHBhdGhTZWdUeXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gUEFUSFNFR19MSU5FVE9fVkVSVElD
QUxfUkVMOyB9Ci0gICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7
IHJldHVybiAidiI7IH0KKyAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuICJ2Il9zOyB9CiAgICAgUmVmPFNWR1BhdGhTZWc+IGNsb25lKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gU1ZHUGF0aFNlZ1ZhbHVlOjpjbG9uZTxTVkdQYXRoU2VnTGluZXRvVmVy
dGljYWxSZWw+KCk7IH0KIH07CiAKQEAgLTg1LDcgKzg1LDcgQEAgcHVibGljOgogcHJpdmF0ZToK
ICAgICB1c2luZyBTVkdQYXRoU2VnU2luZ2xlQ29vcmRpbmF0ZTo6U1ZHUGF0aFNlZ1NpbmdsZUNv
b3JkaW5hdGU7CiAgICAgdW5zaWduZWQgc2hvcnQgcGF0aFNlZ1R5cGUoKSBjb25zdCBmaW5hbCB7
IHJldHVybiBQQVRIU0VHX01PVkVUT19BQlM7IH0KLSAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xl
dHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJNIjsgfQorICAgIFN0cmluZyBwYXRoU2VnVHlw
ZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIk0iX3M7IH0KICAgICBSZWY8U1ZHUGF0
aFNlZz4gY2xvbmUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBTVkdQYXRoU2VnVmFsdWU6OmNsb25l
PFNWR1BhdGhTZWdNb3ZldG9BYnM+KCk7IH0KIH07CiAKQEAgLTk1LDcgKzk1LDcgQEAgcHVibGlj
OgogcHJpdmF0ZToKICAgICB1c2luZyBTVkdQYXRoU2VnU2luZ2xlQ29vcmRpbmF0ZTo6U1ZHUGF0
aFNlZ1NpbmdsZUNvb3JkaW5hdGU7CiAgICAgdW5zaWduZWQgc2hvcnQgcGF0aFNlZ1R5cGUoKSBj
b25zdCBmaW5hbCB7IHJldHVybiBQQVRIU0VHX01PVkVUT19SRUw7IH0KLSAgICBTdHJpbmcgcGF0
aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJtIjsgfQorICAgIFN0cmlu
ZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIm0iX3M7IH0KICAg
ICBSZWY8U1ZHUGF0aFNlZz4gY2xvbmUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBTVkdQYXRoU2Vn
VmFsdWU6OmNsb25lPFNWR1BhdGhTZWdNb3ZldG9SZWw+KCk7IH0KIH07CiAKQEAgLTEwNSw3ICsx
MDUsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHVzaW5nIFNWR1BhdGhTZWdTaW5nbGVDb29y
ZGluYXRlOjpTVkdQYXRoU2VnU2luZ2xlQ29vcmRpbmF0ZTsKICAgICB1bnNpZ25lZCBzaG9ydCBw
YXRoU2VnVHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFBBVEhTRUdfTElORVRPX0FCUzsgfQot
ICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIkwi
OyB9CisgICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVy
biAiTCJfczsgfQogICAgIFJlZjxTVkdQYXRoU2VnPiBjbG9uZSgpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIFNWR1BhdGhTZWdWYWx1ZTo6Y2xvbmU8U1ZHUGF0aFNlZ0xpbmV0b0Ficz4oKTsgfQogfTsK
IApAQCAtMTE1LDcgKzExNSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdXNpbmcgU1ZHUGF0
aFNlZ1NpbmdsZUNvb3JkaW5hdGU6OlNWR1BhdGhTZWdTaW5nbGVDb29yZGluYXRlOwogICAgIHVu
c2lnbmVkIHNob3J0IHBhdGhTZWdUeXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gUEFUSFNFR19M
SU5FVE9fUkVMOyB9Ci0gICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5h
bCB7IHJldHVybiAibCI7IH0KKyAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuICJsIl9zOyB9CiAgICAgUmVmPFNWR1BhdGhTZWc+IGNsb25lKCkgY29u
c3QgZmluYWwgeyByZXR1cm4gU1ZHUGF0aFNlZ1ZhbHVlOjpjbG9uZTxTVkdQYXRoU2VnTGluZXRv
UmVsPigpOyB9CiB9OwogCkBAIC0xMjUsNyArMTI1LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAg
ICB1c2luZyBTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpYzo6U1ZHUGF0aFNlZ0N1cnZldG9RdWFk
cmF0aWM7CiAgICAgdW5zaWduZWQgc2hvcnQgcGF0aFNlZ1R5cGUoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiBQQVRIU0VHX0NVUlZFVE9fUVVBRFJBVElDX0FCUzsgfQotICAgIFN0cmluZyBwYXRoU2Vn
VHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIlEiOyB9CisgICAgU3RyaW5nIHBh
dGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiUSJfczsgfQogICAgIFJl
ZjxTVkdQYXRoU2VnPiBjbG9uZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFNWR1BhdGhTZWdWYWx1
ZTo6Y2xvbmU8U1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNBYnM+KCk7IH0KIH07CiAKQEAgLTEz
NSw3ICsxMzUsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHVzaW5nIFNWR1BhdGhTZWdDdXJ2
ZXRvUXVhZHJhdGljOjpTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpYzsKICAgICB1bnNpZ25lZCBz
aG9ydCBwYXRoU2VnVHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFBBVEhTRUdfQ1VSVkVUT19R
VUFEUkFUSUNfUkVMOyB9Ci0gICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBm
aW5hbCB7IHJldHVybiAicSI7IH0KKyAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuICJxIl9zOyB9CiAgICAgUmVmPFNWR1BhdGhTZWc+IGNsb25lKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gU1ZHUGF0aFNlZ1ZhbHVlOjpjbG9uZTxTVkdQYXRoU2VnQ3Vy
dmV0b1F1YWRyYXRpY1JlbD4oKTsgfQogfTsKIApAQCAtMTQ1LDcgKzE0NSw3IEBAIHB1YmxpYzoK
IHByaXZhdGU6CiAgICAgdXNpbmcgU1ZHUGF0aFNlZ0N1cnZldG9DdWJpYzo6U1ZHUGF0aFNlZ0N1
cnZldG9DdWJpYzsKICAgICB1bnNpZ25lZCBzaG9ydCBwYXRoU2VnVHlwZSgpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIFBBVEhTRUdfQ1VSVkVUT19DVUJJQ19BQlM7IH0KLSAgICBTdHJpbmcgcGF0aFNl
Z1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJDIjsgfQorICAgIFN0cmluZyBw
YXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIkMiX3M7IH0KICAgICBS
ZWY8U1ZHUGF0aFNlZz4gY2xvbmUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBTVkdQYXRoU2VnVmFs
dWU6OmNsb25lPFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNBYnM+KCk7IH0KIH07CiAKQEAgLTE1NSw3
ICsxNTUsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHVzaW5nIFNWR1BhdGhTZWdDdXJ2ZXRv
Q3ViaWM6OlNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWM7CiAgICAgdW5zaWduZWQgc2hvcnQgcGF0aFNl
Z1R5cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBQQVRIU0VHX0NVUlZFVE9fQ1VCSUNfUkVMOyB9
Ci0gICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAi
YyI7IH0KKyAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuICJjIl9zOyB9CiAgICAgUmVmPFNWR1BhdGhTZWc+IGNsb25lKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gU1ZHUGF0aFNlZ1ZhbHVlOjpjbG9uZTxTVkdQYXRoU2VnQ3VydmV0b0N1YmljUmVsPigp
OyB9CiB9OwogCkBAIC0xNjUsNyArMTY1LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB1c2lu
ZyBTVkdQYXRoU2VnQXJjOjpTVkdQYXRoU2VnQXJjOwogICAgIHVuc2lnbmVkIHNob3J0IHBhdGhT
ZWdUeXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gUEFUSFNFR19BUkNfQUJTOyB9Ci0gICAgU3Ry
aW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiQSI7IH0KKyAg
ICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJBIl9z
OyB9CiAgICAgUmVmPFNWR1BhdGhTZWc+IGNsb25lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gU1ZH
UGF0aFNlZ1ZhbHVlOjpjbG9uZTxTVkdQYXRoU2VnQXJjQWJzPigpOyB9CiB9OwogCkBAIC0xNzUs
NyArMTc1LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB1c2luZyBTVkdQYXRoU2VnQXJjOjpT
VkdQYXRoU2VnQXJjOwogICAgIHVuc2lnbmVkIHNob3J0IHBhdGhTZWdUeXBlKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gUEFUSFNFR19BUkNfUkVMOyB9Ci0gICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNM
ZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiYSI7IH0KKyAgICBTdHJpbmcgcGF0aFNlZ1R5
cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJhIl9zOyB9CiAgICAgUmVmPFNWR1Bh
dGhTZWc+IGNsb25lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gU1ZHUGF0aFNlZ1ZhbHVlOjpjbG9u
ZTxTVkdQYXRoU2VnQXJjUmVsPigpOyB9CiB9OwogCkBAIC0xODUsNyArMTg1LDcgQEAgcHVibGlj
OgogcHJpdmF0ZToKICAgICB1c2luZyBTVkdQYXRoU2VnU2luZ2xlQ29vcmRpbmF0ZTo6U1ZHUGF0
aFNlZ1NpbmdsZUNvb3JkaW5hdGU7CiAgICAgdW5zaWduZWQgc2hvcnQgcGF0aFNlZ1R5cGUoKSBj
b25zdCBmaW5hbCB7IHJldHVybiBQQVRIU0VHX0NVUlZFVE9fUVVBRFJBVElDX1NNT09USF9BQlM7
IH0KLSAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
ICJUIjsgfQorICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gIlQiX3M7IH0KICAgICBSZWY8U1ZHUGF0aFNlZz4gY2xvbmUoKSBjb25zdCBmaW5hbCB7
IHJldHVybiBTVkdQYXRoU2VnVmFsdWU6OmNsb25lPFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGlj
U21vb3RoQWJzPigpOyB9CiB9OwogCkBAIC0xOTUsNyArMTk1LDcgQEAgcHVibGljOgogcHJpdmF0
ZToKICAgICB1c2luZyBTVkdQYXRoU2VnU2luZ2xlQ29vcmRpbmF0ZTo6U1ZHUGF0aFNlZ1Npbmds
ZUNvb3JkaW5hdGU7CiAgICAgdW5zaWduZWQgc2hvcnQgcGF0aFNlZ1R5cGUoKSBjb25zdCBmaW5h
bCB7IHJldHVybiBQQVRIU0VHX0NVUlZFVE9fUVVBRFJBVElDX1NNT09USF9SRUw7IH0KLSAgICBT
dHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJ0IjsgfQor
ICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gInQi
X3M7IH0KICAgICBSZWY8U1ZHUGF0aFNlZz4gY2xvbmUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBT
VkdQYXRoU2VnVmFsdWU6OmNsb25lPFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoUmVs
PigpOyB9CiB9OwogCkBAIC0yMDUsNyArMjA1LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB1
c2luZyBTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoOjpTVkdQYXRoU2VnQ3VydmV0b0N1Ymlj
U21vb3RoOwogICAgIHVuc2lnbmVkIHNob3J0IHBhdGhTZWdUeXBlKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gUEFUSFNFR19DVVJWRVRPX0NVQklDX1NNT09USF9BQlM7IH0KLSAgICBTdHJpbmcgcGF0
aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJTIjsgfQorICAgIFN0cmlu
ZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIlMiX3M7IH0KICAg
ICBSZWY8U1ZHUGF0aFNlZz4gY2xvbmUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBTVkdQYXRoU2Vn
VmFsdWU6OmNsb25lPFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhBYnM+KCk7IH0KIH07CiAK
QEAgLTIxNSw3ICsyMTUsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHVzaW5nIFNWR1BhdGhT
ZWdDdXJ2ZXRvQ3ViaWNTbW9vdGg6OlNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGg7CiAgICAg
dW5zaWduZWQgc2hvcnQgcGF0aFNlZ1R5cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBQQVRIU0VH
X0NVUlZFVE9fQ1VCSUNfU01PT1RIX1JFTDsgfQotICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0
dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gInMiOyB9CisgICAgU3RyaW5nIHBhdGhTZWdUeXBl
QXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAicyJfczsgfQogICAgIFJlZjxTVkdQYXRo
U2VnPiBjbG9uZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFNWR1BhdGhTZWdWYWx1ZTo6Y2xvbmU8
U1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aFJlbD4oKTsgfQogfTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5oIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5oCmluZGV4IDg0ZjExNTg4ZjNlMjgx
ZTZmNmUwN2E2MDlkMDg5YTk3ODcwOGEzOWUuLjI0MTk3Zjc0NTc3MTY1N2MxN2Q4ZDA3YjJjZDI0
ZTU0ZTM0YzgwOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFk
aWVudEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmFkaWFsR3JhZGllbnRF
bGVtZW50LmgKQEAgLTYzLDEyICs2MywxMiBAQCBwcml2YXRlOgogICAgIGJvb2wgc2VsZkhhc1Jl
bGF0aXZlTGVuZ3RocygpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgUHJvcGVydHlSZWdpc3RyeSBt
X3Byb3BlcnR5UmVnaXN0cnkgeyAqdGhpcyB9OwotICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4g
bV9jeCB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6V2lk
dGgsICI1MCUiKSB9OwotICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV9jeSB7IFNWR0FuaW1h
dGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6SGVpZ2h0LCAiNTAlIikgfTsK
LSAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1fciB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVh
dGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6T3RoZXIsICI1MCUiKSB9OworICAgIFJlZjxTVkdBbmlt
YXRlZExlbmd0aD4gbV9jeCB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVu
Z3RoTW9kZTo6V2lkdGgsICI1MCUiX3MpIH07CisgICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBt
X2N5IHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpIZWln
aHQsICI1MCUiX3MpIH07CisgICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX3IgeyBTVkdBbmlt
YXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6Ok90aGVyLCAiNTAlIl9zKSB9
OwogICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV9meCB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpj
cmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6V2lkdGgpIH07CiAgICAgUmVmPFNWR0FuaW1hdGVk
TGVuZ3RoPiBtX2Z5IHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhN
b2RlOjpIZWlnaHQpIH07Ci0gICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX2ZyIHsgU1ZHQW5p
bWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpPdGhlciwgIjAlIikgfTsK
KyAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1fZnIgeyBTVkdBbmltYXRlZExlbmd0aDo6Y3Jl
YXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6Ok90aGVyLCAiMCUiX3MpIH07CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGll
cy9TVkdQcm9wZXJ0eVRyYWl0cy5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZH
UHJvcGVydHlUcmFpdHMuaAppbmRleCA0Mzk5NzA0MzBmNjU2YTk4NjVlNmU5YzlkOWVmNWVhMjRi
YmE1MzA0Li44NDVhYjRhYmZmYjc4OTU4NDg2OWY5ZmYxYWE1ZTgzMjAxMjgwYTYzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRyYWl0cy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5VHJhaXRzLmgKQEAg
LTM5LDcgKzM5LDcgQEAgc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPGJvb2w+IHsKICAgICBzdGF0
aWMgYm9vbCBpbml0aWFsVmFsdWUoKSB7IHJldHVybiBmYWxzZTsgfQogICAgIHN0YXRpYyBib29s
IGZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpIHsgcmV0dXJuIHN0cmluZyA9PSAidHJ1
ZSI7IH0KICAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxib29sPiBwYXJzZShjb25zdCBRdWFsaWZp
ZWROYW1lJiwgY29uc3QgU3RyaW5nJikgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgcmV0dXJuIGlu
aXRpYWxWYWx1ZSgpOyB9Ci0gICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhib29sIHR5cGUpIHsg
cmV0dXJuIHR5cGUgPyAidHJ1ZSIgOiAiZmFsc2UiOyB9CisgICAgc3RhdGljIFN0cmluZyB0b1N0
cmluZyhib29sIHR5cGUpIHsgcmV0dXJuIHR5cGUgPyAidHJ1ZSJfcyA6ICJmYWxzZSJfczsgfQog
fTsKIAogdGVtcGxhdGU8PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2Nr
Q29udGVudEZpbHRlclNldHRpbmdzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDb250
ZW50RmlsdGVyU2V0dGluZ3MuaAppbmRleCAxODFlZmY1YjViOGVhMDAxOGU5ZjNiMGMyNDNhYzdk
NGUzZTlkY2E3Li5mM2M5N2YzZjhlMTNhYTBmMTI3ZGVlODQzOWQ2YjVjMGQwZTNjMWUzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDb250ZW50RmlsdGVyU2V0dGluZ3Mu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDb250ZW50RmlsdGVyU2V0dGluZ3Mu
aApAQCAtNDgsNyArNDgsNyBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX1RFU1RTVVBQT1JUX0VY
UE9SVCBzdGF0aWMgTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5ncyYgc2luZ2xldG9uKCk7CiAgICAg
V0VCQ09SRV9URVNUU1VQUE9SVF9FWFBPUlQgc3RhdGljIHZvaWQgcmVzZXQoKTsKLSAgICBzdGF0
aWMgY29uc3QgY2hhciogdW5ibG9ja1VSTEhvc3QoKSB7IHJldHVybiAibW9jay11bmJsb2NrIjsg
fQorICAgIHN0YXRpYyBBU0NJSUxpdGVyYWwgdW5ibG9ja1VSTEhvc3QoKSB7IHJldHVybiAibW9j
ay11bmJsb2NrIl9zOyB9CiAKICAgICAvLyBUcmljayB0aGUgZ2VuZXJhdGVkIGJpbmRpbmdzIGlu
dG8gdGhpbmtpbmcgd2UncmUgUmVmQ291bnRlZC4KICAgICB2b2lkIHJlZigpIHsgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL3ht
bC9YUGF0aFZhbHVlLmgKaW5kZXggZDkxYzc3ZDEwMmQyNGFkMjNlNTkzOTg2ZTA0MGJhMjVjMDlk
YjM2Yi4uZWE4M2Y3ZDBiYjFhYWYxNGE3YmE3MjEwOTRmM2IyMTlhMjJiMjNiMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoVmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS94
bWwvWFBhdGhWYWx1ZS5oCkBAIC00MCw3ICs0MCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICAgICAgICAgIFZhbHVlKGRvdWJsZSB2YWx1ZSkgOiBtX3R5cGUoTnVtYmVyVmFsdWUpLCBtX251
bWJlcih2YWx1ZSkgeyB9CiAKICAgICAgICAgICAgIFZhbHVlKGNvbnN0IFN0cmluZyYgdmFsdWUp
IDogbV90eXBlKFN0cmluZ1ZhbHVlKSwgbV9kYXRhKERhdGE6OmNyZWF0ZSh2YWx1ZSkpIHsgfQot
ICAgICAgICAgICAgVmFsdWUoY29uc3QgY2hhciogdmFsdWUpIDogbV90eXBlKFN0cmluZ1ZhbHVl
KSwgbV9kYXRhKERhdGE6OmNyZWF0ZSh2YWx1ZSkpIHsgfQorICAgICAgICAgICAgVmFsdWUoY29u
c3QgY2hhciogdmFsdWUpIDogbV90eXBlKFN0cmluZ1ZhbHVlKSwgbV9kYXRhKERhdGE6OmNyZWF0
ZShTdHJpbmcgeyB2YWx1ZSB9KSkgeyB9CiAKICAgICAgICAgICAgIGV4cGxpY2l0IFZhbHVlKE5v
ZGVTZXQmJiB2YWx1ZSkKICAgICAgICAgICAgICAgICA6IG1fdHlwZShOb2RlU2V0VmFsdWUpLCBt
X2RhdGEoRGF0YTo6Y3JlYXRlKFdURk1vdmUodmFsdWUpKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3htbC9YU0xTdHlsZVNoZWV0LmggYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMU3R5bGVT
aGVldC5oCmluZGV4IGEyYmY4ZTMzNDlhYjU2MzZmNTI3NGU0NTI0YzMwYmIxODZjNmZkZWQuLjVm
YmQ2ZWJhNDc5ZDg3ZTliN2U4MjFhZjllYTMyZjAzMGY0Njg1MDMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3htbC9YU0xTdHlsZVNoZWV0LmgKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hT
TFN0eWxlU2hlZXQuaApAQCAtODQsNyArODQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBtYXJrQXNQ
cm9jZXNzZWQoKTsKICAgICBib29sIHByb2Nlc3NlZCgpIGNvbnN0IHsgcmV0dXJuIG1fcHJvY2Vz
c2VkOyB9CiAgICAgCi0gICAgU3RyaW5nIHR5cGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAi
dGV4dC94bWwiOyB9CisgICAgU3RyaW5nIHR5cGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAi
dGV4dC94bWwiX3M7IH0KICAgICBib29sIGRpc2FibGVkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gbV9pc0Rpc2FibGVkOyB9CiAgICAgdm9pZCBzZXREaXNhYmxlZChib29sIGIpIG92ZXJyaWRl
IHsgbV9pc0Rpc2FibGVkID0gYjsgfQogICAgIE5vZGUqIG93bmVyTm9kZSgpIGNvbnN0IG92ZXJy
aWRlIHsgcmV0dXJuIG1fb3duZXJOb2RlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViR1BVL1dH
U0wvUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJHUFUvV0dTTC9QYXJzZXIuY3BwCmluZGV4IDYyNTQ4
N2RlMTg1ZmVlY2Y5NGExZDFiM2YwYmM5ODQ2ZTNkYjhhMGEuLmU2MmYzZTBjMDg3ZWZhMWMxYmMy
ZDA4YjFmMmQ3ODFhYTljNWNjNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJHUFUvV0dTTC9QYXJz
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJHUFUvV0dTTC9QYXJzZXIuY3BwCkBAIC0yMzQsNyArMjM0
LDcgQEAgRXhwZWN0ZWQ8VW5pcXVlUmVmPEFTVDo6R2xvYmFsRGVjbD4sIEVycm9yPiBQYXJzZXI8
TGV4ZXI+OjpwYXJzZUdsb2JhbERlY2woKQogICAgICAgICByZXR1cm4geyBtYWtlVW5pcXVlUmVm
PEFTVDo6RnVuY3Rpb25EZWNsPihXVEZNb3ZlKGZuKSkgfTsKICAgICB9CiAgICAgZGVmYXVsdDoK
LSAgICAgICAgRkFJTCgiVHJ5aW5nIHRvIHBhcnNlIGEgR2xvYmFsRGVjbCwgZXhwZWN0ZWQgJ3Zh
cicsICdmbicsIG9yICdzdHJ1Y3QnLiIpOworICAgICAgICBGQUlMKCJUcnlpbmcgdG8gcGFyc2Ug
YSBHbG9iYWxEZWNsLCBleHBlY3RlZCAndmFyJywgJ2ZuJywgb3IgJ3N0cnVjdCcuIl9zKTsKICAg
ICB9CiB9CiAKQEAgLTI4Miw3ICsyODIsNyBAQCBFeHBlY3RlZDxVbmlxdWVSZWY8QVNUOjpBdHRy
aWJ1dGU+LCBFcnJvcj4gUGFyc2VyPExleGVyPjo6cGFyc2VBdHRyaWJ1dGUoKQogICAgICAgICAg
ICAgUkVUVVJOX05PREVfUkVGKFN0YWdlQXR0cmlidXRlLCBBU1Q6OlN0YWdlQXR0cmlidXRlOjpT
dGFnZTo6VmVydGV4KTsKICAgICAgICAgaWYgKHN0YWdlLm1faWRlbnQgPT0gImZyYWdtZW50IikK
ICAgICAgICAgICAgIFJFVFVSTl9OT0RFX1JFRihTdGFnZUF0dHJpYnV0ZSwgQVNUOjpTdGFnZUF0
dHJpYnV0ZTo6U3RhZ2U6OkZyYWdtZW50KTsKLSAgICAgICAgRkFJTCgiSW52YWxpZCBzdGFnZSBh
dHRyaWJ1dGUsIHRoZSBvbmx5IG9wdGlvbnMgYXJlICdjb21wdXRlJywgJ3ZlcnRleCcsICdmcmFn
bWVudCcuIik7CisgICAgICAgIEZBSUwoIkludmFsaWQgc3RhZ2UgYXR0cmlidXRlLCB0aGUgb25s
eSBvcHRpb25zIGFyZSAnY29tcHV0ZScsICd2ZXJ0ZXgnLCAnZnJhZ21lbnQnLiJfcyk7CiAgICAg
fQogICAgIGlmIChpZGVudC5tX2lkZW50ID09ICJsb2NhdGlvbiIpIHsKICAgICAgICAgQ09OU1VN
RV9UWVBFKFBhcmVuTGVmdCk7CkBAIC0yOTcsNyArMjk3LDcgQEAgRXhwZWN0ZWQ8VW5pcXVlUmVm
PEFTVDo6QXR0cmlidXRlPiwgRXJyb3I+IFBhcnNlcjxMZXhlcj46OnBhcnNlQXR0cmlidXRlKCkK
ICAgICAgICAgQ09OU1VNRV9UWVBFKFBhcmVuUmlnaHQpOwogICAgICAgICBSRVRVUk5fTk9ERV9S
RUYoQnVpbHRpbkF0dHJpYnV0ZSwgbmFtZS5tX2lkZW50KTsKICAgICB9Ci0gICAgRkFJTCgiVW5r
bm93biBhdHRyaWJ1dGUsIHRoZSBvbmx5IHN1cHBvcnRlZCBhdHRyaWJ1dGVzIGFyZSAnZ3JvdXAn
LCAnYmluZGluZycsICdzdGFnZScuIik7CisgICAgRkFJTCgiVW5rbm93biBhdHRyaWJ1dGUsIHRo
ZSBvbmx5IHN1cHBvcnRlZCBhdHRyaWJ1dGVzIGFyZSAnZ3JvdXAnLCAnYmluZGluZycsICdzdGFn
ZScuIl9zKTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgTGV4ZXI+CkBAIC0zNjAsNyArMzYwLDcg
QEAgRXhwZWN0ZWQ8VW5pcXVlUmVmPEFTVDo6VHlwZURlY2w+LCBFcnJvcj4gUGFyc2VyPExleGVy
Pjo6cGFyc2VUeXBlRGVjbCgpCiAgICAgICAgIHJldHVybiBwYXJzZVR5cGVEZWNsQWZ0ZXJJZGVu
dGlmaWVyKFdURk1vdmUobmFtZS5tX2lkZW50KSwgX3N0YXJ0T2ZFbGVtZW50UG9zaXRpb24pOwog
ICAgIH0KIAotICAgIEZBSUwoIlRyaWVkIHBhcnNpbmcgYSB0eXBlIGFuZCBpdCBkaWQgbm90IHN0
YXJ0IHdpdGggYW4gaWRlbnRpZmllciIpOworICAgIEZBSUwoIlRyaWVkIHBhcnNpbmcgYSB0eXBl
IGFuZCBpdCBkaWQgbm90IHN0YXJ0IHdpdGggYW4gaWRlbnRpZmllciJfcyk7CiB9CiAKIHRlbXBs
YXRlPHR5cGVuYW1lIExleGVyPgpAQCAtNDUwLDcgKzQ1MCw3IEBAIEV4cGVjdGVkPEFTVDo6U3Rv
cmFnZUNsYXNzLCBFcnJvcj4gUGFyc2VyPExleGVyPjo6cGFyc2VTdG9yYWdlQ2xhc3MoKQogICAg
ICAgICByZXR1cm4geyBBU1Q6OlN0b3JhZ2VDbGFzczo6U3RvcmFnZSB9OwogICAgIH0KIAotICAg
IEZBSUwoIkV4cGVjdGVkIG9uZSBvZiAnZnVuY3Rpb24nLydwcml2YXRlJy8nc3RvcmFnZScvJ3Vu
aWZvcm0nLyd3b3JrZ3JvdXAnIik7CisgICAgRkFJTCgiRXhwZWN0ZWQgb25lIG9mICdmdW5jdGlv
bicvJ3ByaXZhdGUnLydzdG9yYWdlJy8ndW5pZm9ybScvJ3dvcmtncm91cCciX3MpOwogfQogCiB0
ZW1wbGF0ZTx0eXBlbmFtZSBMZXhlcj4KQEAgLTQ3MSw3ICs0NzEsNyBAQCBFeHBlY3RlZDxBU1Q6
OkFjY2Vzc01vZGUsIEVycm9yPiBQYXJzZXI8TGV4ZXI+OjpwYXJzZUFjY2Vzc01vZGUoKQogICAg
ICAgICByZXR1cm4geyBBU1Q6OkFjY2Vzc01vZGU6OlJlYWRXcml0ZSB9OwogICAgIH0KIAotICAg
IEZBSUwoIkV4cGVjdGVkIG9uZSBvZiAncmVhZCcvJ3dyaXRlJy8ncmVhZF93cml0ZSciKTsKKyAg
ICBGQUlMKCJFeHBlY3RlZCBvbmUgb2YgJ3JlYWQnLyd3cml0ZScvJ3JlYWRfd3JpdGUnIl9zKTsK
IH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgTGV4ZXI+CkBAIC01NDcsNyArNTQ3LDcgQEAgRXhwZWN0
ZWQ8VW5pcXVlUmVmPEFTVDo6U3RhdGVtZW50PiwgRXJyb3I+IFBhcnNlcjxMZXhlcj46OnBhcnNl
U3RhdGVtZW50KCkKICAgICAgICAgUkVUVVJOX05PREVfUkVGKEFzc2lnbm1lbnRTdGF0ZW1lbnQs
IGxocy5tb3ZlVG9VbmlxdWVQdHIoKSwgV1RGTW92ZShyaHMpKTsKICAgICB9CiAgICAgZGVmYXVs
dDoKLSAgICAgICAgRkFJTCgiTm90IGEgdmFsaWQgc3RhdGVtZW50Iik7CisgICAgICAgIEZBSUwo
Ik5vdCBhIHZhbGlkIHN0YXRlbWVudCJfcyk7CiAgICAgfQogfQogCkBAIC02OTQsNyArNjk0LDcg
QEAgRXhwZWN0ZWQ8VW5pcXVlUmVmPEFTVDo6RXhwcmVzc2lvbj4sIEVycm9yPiBQYXJzZXI8TGV4
ZXI+OjpwYXJzZVByaW1hcnlFeHByZXNzaW8KICAgICBkZWZhdWx0OgogICAgICAgICBicmVhazsK
ICAgICB9Ci0gICAgRkFJTCgiRXhwZWN0ZWQgb25lIG9mICcoJywgYSBsaXRlcmFsLCBvciBhbiBp
ZGVudGlmaWVyIik7CisgICAgRkFJTCgiRXhwZWN0ZWQgb25lIG9mICcoJywgYSBsaXRlcmFsLCBv
ciBhbiBpZGVudGlmaWVyIl9zKTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgTGV4ZXI+CkBAIC03
MzQsNyArNzM0LDcgQEAgRXhwZWN0ZWQ8VW5pcXVlUmVmPEFTVDo6RXhwcmVzc2lvbj4sIEVycm9y
PiBQYXJzZXI8TGV4ZXI+OjpwYXJzZUNvcmVMSFNFeHByZXNzaW8KICAgICAgICAgYnJlYWs7CiAg
ICAgfQogCi0gICAgRkFJTCgiVHJpZWQgdG8gcGFyc2UgdGhlIGxlZnQtaGFuZCBzaWRlIG9mIGFu
IGFzc2lnbm1lbnQgYW5kIGZhaWxlZCIpOworICAgIEZBSUwoIlRyaWVkIHRvIHBhcnNlIHRoZSBs
ZWZ0LWhhbmQgc2lkZSBvZiBhbiBhc3NpZ25tZW50IGFuZCBmYWlsZWQiX3MpOwogfQogCiB0ZW1w
bGF0ZTx0eXBlbmFtZSBMZXhlcj4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJHUFUvV0dTTC9Ub2tl
bi5jcHAgYi9Tb3VyY2UvV2ViR1BVL1dHU0wvVG9rZW4uY3BwCmluZGV4IGRiM2MwYTQzZTEwMzcy
ZWI5OTQxZmNmMTZkOGIyMGVkZTdmMDg5MTIuLjY3MzFhYTIyYzEyYTMzMDM2OGNmYjFiNzYwYzk2
NmVlMTBmMWFjMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJHUFUvV0dTTC9Ub2tlbi5jcHAKKysr
IGIvU291cmNlL1dlYkdQVS9XR1NML1Rva2VuLmNwcApAQCAtMzIsODkgKzMyLDg5IEBAIFN0cmlu
ZyB0b1N0cmluZyhUb2tlblR5cGUgdHlwZSkKIHsKICAgICBzd2l0Y2ggKHR5cGUpIHsKICAgICBj
YXNlIFRva2VuVHlwZTo6SW52YWxpZDoKLSAgICAgICAgcmV0dXJuICJJbnZhbGlkIjsKKyAgICAg
ICAgcmV0dXJuICJJbnZhbGlkIl9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpFbmRPZkZpbGU6Ci0g
ICAgICAgIHJldHVybiAiRU9GIjsKKyAgICAgICAgcmV0dXJuICJFT0YiX3M7CiAgICAgY2FzZSBU
b2tlblR5cGU6OkludGVnZXJMaXRlcmFsOgotICAgICAgICByZXR1cm4gIkludGVnZXJMaXRlcmFs
IjsKKyAgICAgICAgcmV0dXJuICJJbnRlZ2VyTGl0ZXJhbCJfczsKICAgICBjYXNlIFRva2VuVHlw
ZTo6SW50ZWdlckxpdGVyYWxTaWduZWQ6Ci0gICAgICAgIHJldHVybiAiSW50ZWdlckxpdGVyYWxT
aWduZWQiOworICAgICAgICByZXR1cm4gIkludGVnZXJMaXRlcmFsU2lnbmVkIl9zOwogICAgIGNh
c2UgVG9rZW5UeXBlOjpJbnRlZ2VyTGl0ZXJhbFVuc2lnbmVkOgotICAgICAgICByZXR1cm4gIklu
dGVnZXJMaXRlcmFsVW5zaWduZWQiOworICAgICAgICByZXR1cm4gIkludGVnZXJMaXRlcmFsVW5z
aWduZWQiX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6OkRlY2ltYWxGbG9hdExpdGVyYWw6Ci0gICAg
ICAgIHJldHVybiAiRGVjaW1hbEZsb2F0TGl0ZXJhbCI7CisgICAgICAgIHJldHVybiAiRGVjaW1h
bEZsb2F0TGl0ZXJhbCJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6SGV4RmxvYXRMaXRlcmFsOgot
ICAgICAgICByZXR1cm4gIkhleEZsb2F0TGl0ZXJhbCI7CisgICAgICAgIHJldHVybiAiSGV4Rmxv
YXRMaXRlcmFsIl9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpJZGVudGlmaWVyOgotICAgICAgICBy
ZXR1cm4gIklkZW50aWZpZXIiOworICAgICAgICByZXR1cm4gIklkZW50aWZpZXIiX3M7CiAgICAg
Y2FzZSBUb2tlblR5cGU6OlJlc2VydmVkV29yZDoKLSAgICAgICAgcmV0dXJuICJSZXNlcnZlZFdv
cmQiOworICAgICAgICByZXR1cm4gIlJlc2VydmVkV29yZCJfczsKICAgICBjYXNlIFRva2VuVHlw
ZTo6S2V5d29yZFN0cnVjdDoKLSAgICAgICAgcmV0dXJuICJzdHJ1Y3QiOworICAgICAgICByZXR1
cm4gInN0cnVjdCJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6S2V5d29yZEZuOgotICAgICAgICBy
ZXR1cm4gImZuIjsKKyAgICAgICAgcmV0dXJuICJmbiJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6
S2V5d29yZEZ1bmN0aW9uOgotICAgICAgICByZXR1cm4gImZ1bmN0aW9uIjsKKyAgICAgICAgcmV0
dXJuICJmdW5jdGlvbiJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6S2V5d29yZFByaXZhdGU6Ci0g
ICAgICAgIHJldHVybiAicHJpdmF0ZSI7CisgICAgICAgIHJldHVybiAicHJpdmF0ZSJfczsKICAg
ICBjYXNlIFRva2VuVHlwZTo6S2V5d29yZFJlYWQ6Ci0gICAgICAgIHJldHVybiAicmVhZCI7Cisg
ICAgICAgIHJldHVybiAicmVhZCJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6S2V5d29yZFJlYWRX
cml0ZToKLSAgICAgICAgcmV0dXJuICJyZWFkX3dyaXRlIjsKKyAgICAgICAgcmV0dXJuICJyZWFk
X3dyaXRlIl9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpLZXl3b3JkUmV0dXJuOgotICAgICAgICBy
ZXR1cm4gInJldHVybiI7CisgICAgICAgIHJldHVybiAicmV0dXJuIl9zOwogICAgIGNhc2UgVG9r
ZW5UeXBlOjpLZXl3b3JkU3RvcmFnZToKLSAgICAgICAgcmV0dXJuICJzdG9yYWdlIjsKKyAgICAg
ICAgcmV0dXJuICJzdG9yYWdlIl9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpLZXl3b3JkVW5pZm9y
bToKLSAgICAgICAgcmV0dXJuICJ1bmlmb3JtIjsKKyAgICAgICAgcmV0dXJuICJ1bmlmb3JtIl9z
OwogICAgIGNhc2UgVG9rZW5UeXBlOjpLZXl3b3JkVmFyOgotICAgICAgICByZXR1cm4gInZhciI7
CisgICAgICAgIHJldHVybiAidmFyIl9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpLZXl3b3JkV29y
a2dyb3VwOgotICAgICAgICByZXR1cm4gIndvcmtncm91cCI7CisgICAgICAgIHJldHVybiAid29y
a2dyb3VwIl9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpLZXl3b3JkV3JpdGU6Ci0gICAgICAgIHJl
dHVybiAid3JpdGUiOworICAgICAgICByZXR1cm4gIndyaXRlIl9zOwogICAgIGNhc2UgVG9rZW5U
eXBlOjpLZXl3b3JkSTMyOgotICAgICAgICByZXR1cm4gImkzMiI7CisgICAgICAgIHJldHVybiAi
aTMyIl9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpLZXl3b3JkVTMyOgotICAgICAgICByZXR1cm4g
InUzMiI7CisgICAgICAgIHJldHVybiAidTMyIl9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpLZXl3
b3JkRjMyOgotICAgICAgICByZXR1cm4gImYzMiI7CisgICAgICAgIHJldHVybiAiZjMyIl9zOwog
ICAgIGNhc2UgVG9rZW5UeXBlOjpLZXl3b3JkQm9vbDoKLSAgICAgICAgcmV0dXJuICJib29sIjsK
KyAgICAgICAgcmV0dXJuICJib29sIl9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpMaXRlcmFsVHJ1
ZToKLSAgICAgICAgcmV0dXJuICJ0cnVlIjsKKyAgICAgICAgcmV0dXJuICJ0cnVlIl9zOwogICAg
IGNhc2UgVG9rZW5UeXBlOjpMaXRlcmFsRmFsc2U6Ci0gICAgICAgIHJldHVybiAiZmFsc2UiOwor
ICAgICAgICByZXR1cm4gImZhbHNlIl9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpBcnJvdzoKLSAg
ICAgICAgcmV0dXJuICItPiI7CisgICAgICAgIHJldHVybiAiLT4iX3M7CiAgICAgY2FzZSBUb2tl
blR5cGU6OkF0dHJpYnV0ZToKLSAgICAgICAgcmV0dXJuICJAIjsKKyAgICAgICAgcmV0dXJuICJA
Il9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpCcmFja2V0TGVmdDoKLSAgICAgICAgcmV0dXJuICJb
IjsKKyAgICAgICAgcmV0dXJuICJbIl9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpCcmFja2V0Umln
aHQ6Ci0gICAgICAgIHJldHVybiAiXSI7CisgICAgICAgIHJldHVybiAiXSJfczsKICAgICBjYXNl
IFRva2VuVHlwZTo6QnJhY2VMZWZ0OgotICAgICAgICByZXR1cm4gInsiOworICAgICAgICByZXR1
cm4gInsiX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6OkJyYWNlUmlnaHQ6Ci0gICAgICAgIHJldHVy
biAifSI7CisgICAgICAgIHJldHVybiAifSJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6Q29sb246
Ci0gICAgICAgIHJldHVybiAiOiI7CisgICAgICAgIHJldHVybiAiOiJfczsKICAgICBjYXNlIFRv
a2VuVHlwZTo6Q29tbWE6Ci0gICAgICAgIHJldHVybiAiLCI7CisgICAgICAgIHJldHVybiAiLCJf
czsKICAgICBjYXNlIFRva2VuVHlwZTo6RXF1YWw6Ci0gICAgICAgIHJldHVybiAiPSI7CisgICAg
ICAgIHJldHVybiAiPSJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6R1Q6Ci0gICAgICAgIHJldHVy
biAiPiI7CisgICAgICAgIHJldHVybiAiPiJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6TFQ6Ci0g
ICAgICAgIHJldHVybiAiPCI7CisgICAgICAgIHJldHVybiAiPCJfczsKICAgICBjYXNlIFRva2Vu
VHlwZTo6UGVyaW9kOgotICAgICAgICByZXR1cm4gIi4iOworICAgICAgICByZXR1cm4gIi4iX3M7
CiAgICAgY2FzZSBUb2tlblR5cGU6OlBhcmVuTGVmdDoKLSAgICAgICAgcmV0dXJuICIoIjsKKyAg
ICAgICAgcmV0dXJuICIoIl9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpQYXJlblJpZ2h0OgotICAg
ICAgICByZXR1cm4gIikiOworICAgICAgICByZXR1cm4gIikiX3M7CiAgICAgY2FzZSBUb2tlblR5
cGU6OlNlbWljb2xvbjoKLSAgICAgICAgcmV0dXJuICI7IjsKKyAgICAgICAgcmV0dXJuICI7Il9z
OwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkdQVS9XZWJHUFUvQWRhcHRlci5t
bSBiL1NvdXJjZS9XZWJHUFUvV2ViR1BVL0FkYXB0ZXIubW0KaW5kZXggMWJiYWQ2MWE2Y2U3ZTI5
NzU2ZGUxNTYxYWE0NjJkZTVkMWE2ODI2OC4uNjAwZDFkNmU3YmYwZjc3YmRkMmY1MThmZjk0MzUw
NzgxMjUyZmEzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkdQVS9XZWJHUFUvQWRhcHRlci5tbQor
KysgYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9BZGFwdGVyLm1tCkBAIC0xMjMsNyArMTIzLDcgQEAg
dm9pZCBBZGFwdGVyOjpyZXF1ZXN0RGV2aWNlKGNvbnN0IFdHUFVEZXZpY2VEZXNjcmlwdG9yJiBk
ZXNjcmlwdG9yLCBDb21wbGV0aW9uSGEKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGNh
bGxiYWNrKFdHUFVSZXF1ZXN0RGV2aWNlU3RhdHVzX1N1Y2Nlc3MsIERldmljZTo6Y3JlYXRlKG1f
ZGV2aWNlLCBkZXNjcmlwdG9yLmxhYmVsLCBtX2luc3RhbmNlKSwgeyB9KTsKKyAgICBjYWxsYmFj
ayhXR1BVUmVxdWVzdERldmljZVN0YXR1c19TdWNjZXNzLCBEZXZpY2U6OmNyZWF0ZShtX2Rldmlj
ZSwgU3RyaW5nIHsgZGVzY3JpcHRvci5sYWJlbCB9LCBtX2luc3RhbmNlKSwgeyB9KTsKIH0KIAog
fSAvLyBuYW1lc3BhY2UgV2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9C
dWZmZXIubW0gYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9CdWZmZXIubW0KaW5kZXggZmJiMmY0NGRm
OWU1MzZjZTVjZmVkZTExZjc4NWRjOGNkYTFmYmRjNS4uM2I5MjIwMDMxOGRjNTE3ZDJhMGViNmVj
Mzk5ZWE1NTQxYzZhNTE2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkdQVS9XZWJHUFUvQnVmZmVy
Lm1tCisrKyBiL1NvdXJjZS9XZWJHUFUvV2ViR1BVL0J1ZmZlci5tbQpAQCAtMjkxLDcgKzI5MSw3
IEBAIHZvaWQgQnVmZmVyOjptYXBBc3luYyhXR1BVTWFwTW9kZUZsYWdzIG1vZGUsIHNpemVfdCBv
ZmZzZXQsIHNpemVfdCBzaXplLCBDb21wbGV0CiAgICAgLy8gIklmIGFueSBvZiB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMgYXJlIHVuc2F0aXNmaWVkOiIKICAgICBpZiAoIXZhbGlkYXRlTWFwQXN5
bmMobW9kZSwgb2Zmc2V0LCByYW5nZVNpemUpKSB7CiAgICAgICAgIC8vICJSZWNvcmQgYSB2YWxp
ZGF0aW9uIGVycm9yIG9uIHRoZSBjdXJyZW50IHNjb3BlLiIKLSAgICAgICAgbV9kZXZpY2UtPmdl
bmVyYXRlQVZhbGlkYXRpb25FcnJvcigiVmFsaWRhdGlvbiBmYWlsdXJlLiIpOworICAgICAgICBt
X2RldmljZS0+Z2VuZXJhdGVBVmFsaWRhdGlvbkVycm9yKCJWYWxpZGF0aW9uIGZhaWx1cmUuIl9z
KTsKIAogICAgICAgICAvLyAiUmV0dXJuIGEgcHJvbWlzZSByZWplY3RlZCB3aXRoIGFuIE9wZXJh
dGlvbkVycm9yIG9uIHRoZSBEZXZpY2UgdGltZWxpbmUuIgogICAgICAgICBjYWxsYmFjayhXR1BV
QnVmZmVyTWFwQXN5bmNTdGF0dXNfRXJyb3IpOwpAQCAtMzY1LDcgKzM2NSw3IEBAIHZvaWQgQnVm
ZmVyOjp1bm1hcCgpCiAgICAgLy8gIklmIGFueSBvZiB0aGUgZm9sbG93aW5nIHJlcXVpcmVtZW50
cyBhcmUgdW5tZXQiCiAgICAgaWYgKCF2YWxpZGF0ZVVubWFwKCkpIHsKICAgICAgICAgLy8gImdl
bmVyYXRlIGEgdmFsaWRhdGlvbiBlcnJvciBhbmQgc3RvcC4iCi0gICAgICAgIG1fZGV2aWNlLT5n
ZW5lcmF0ZUFWYWxpZGF0aW9uRXJyb3IoIlZhbGlkYXRpb24gZmFpbHVyZS4iKTsKKyAgICAgICAg
bV9kZXZpY2UtPmdlbmVyYXRlQVZhbGlkYXRpb25FcnJvcigiVmFsaWRhdGlvbiBmYWlsdXJlLiJf
cyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJHUFUv
V2ViR1BVL0NvbW1hbmRFbmNvZGVyLm1tIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvQ29tbWFuZEVu
Y29kZXIubW0KaW5kZXggYWU0YmFjNjA4NWI0YzVmMmVlNGNkOWM3YzNhM2UwYjAzZDc2ZDc5Mi4u
OTY5OGM4YTA5OWZmZDZjMDkzNzg0Mzk0YTgxMmMxODJmMGViN2Q1YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkdQVS9XZWJHUFUvQ29tbWFuZEVuY29kZXIubW0KKysrIGIvU291cmNlL1dlYkdQVS9X
ZWJHUFUvQ29tbWFuZEVuY29kZXIubW0KQEAgLTE0OSw3ICsxNDksNyBAQCB2b2lkIENvbW1hbmRF
bmNvZGVyOjpjb3B5QnVmZmVyVG9CdWZmZXIoY29uc3QgQnVmZmVyJiBzb3VyY2UsIHVpbnQ2NF90
IHNvdXJjZU9mZgogICAgIC8vICJJZiBhbnkgb2YgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZSB1bnNhdGlzZmllZAogICAgIGlmICghdmFsaWRhdGVDb3B5QnVmZmVyVG9CdWZmZXIoc291cmNl
LCBzb3VyY2VPZmZzZXQsIGRlc3RpbmF0aW9uLCBkZXN0aW5hdGlvbk9mZnNldCwgc2l6ZSkpIHsK
ICAgICAgICAgLy8gImdlbmVyYXRlIGEgdmFsaWRhdGlvbiBlcnJvciBhbmQgc3RvcC4iCi0gICAg
ICAgIG1fZGV2aWNlLT5nZW5lcmF0ZUFWYWxpZGF0aW9uRXJyb3IoIlZhbGlkYXRpb24gZmFpbHVy
ZS4iKTsKKyAgICAgICAgbV9kZXZpY2UtPmdlbmVyYXRlQVZhbGlkYXRpb25FcnJvcigiVmFsaWRh
dGlvbiBmYWlsdXJlLiJfcyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTIyMCw3ICsy
MjAsNyBAQCB2b2lkIENvbW1hbmRFbmNvZGVyOjpjbGVhckJ1ZmZlcihjb25zdCBCdWZmZXImIGJ1
ZmZlciwgdWludDY0X3Qgb2Zmc2V0LCB1aW50NjRfdAogICAgIC8vICJJZiBhbnkgb2YgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zIGFyZSB1bnNhdGlzZmllZCIKICAgICBpZiAoIXZhbGlkYXRlQ2xl
YXJCdWZmZXIoYnVmZmVyLCBvZmZzZXQsIHNpemUpKSB7CiAgICAgICAgIC8vICJnZW5lcmF0ZSBh
IHZhbGlkYXRpb24gZXJyb3IgYW5kIHN0b3AuIgotICAgICAgICBtX2RldmljZS0+Z2VuZXJhdGVB
VmFsaWRhdGlvbkVycm9yKCJWYWxpZGF0aW9uIGZhaWx1cmUuIik7CisgICAgICAgIG1fZGV2aWNl
LT5nZW5lcmF0ZUFWYWxpZGF0aW9uRXJyb3IoIlZhbGlkYXRpb24gZmFpbHVyZS4iX3MpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCkBAIC0yNjIsNyArMjYyLDcgQEAgUmVmUHRyPENvbW1hbmRC
dWZmZXI+IENvbW1hbmRFbmNvZGVyOjpmaW5pc2goY29uc3QgV0dQVUNvbW1hbmRCdWZmZXJEZXNj
cmlwdG9yJgogICAgIC8vICJJZiB2YWxpZGF0aW9uU3VjY2VlZGVkIGlzIGZhbHNlLCB0aGVuOiIK
ICAgICBpZiAodmFsaWRhdGlvbkZhaWxlZCkgewogICAgICAgICAvLyAiR2VuZXJhdGUgYSB2YWxp
ZGF0aW9uIGVycm9yLiIKLSAgICAgICAgbV9kZXZpY2UtPmdlbmVyYXRlQVZhbGlkYXRpb25FcnJv
cigiVmFsaWRhdGlvbiBmYWlsdXJlLiIpOworICAgICAgICBtX2RldmljZS0+Z2VuZXJhdGVBVmFs
aWRhdGlvbkVycm9yKCJWYWxpZGF0aW9uIGZhaWx1cmUuIl9zKTsKIAogICAgICAgICAvLyBGSVhN
RTogIlJldHVybiBhIG5ldyBpbnZhbGlkIEdQVUNvbW1hbmRCdWZmZXIuIgogICAgICAgICByZXR1
cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL0NvbXB1dGVQaXBl
bGluZS5tbSBiL1NvdXJjZS9XZWJHUFUvV2ViR1BVL0NvbXB1dGVQaXBlbGluZS5tbQppbmRleCBl
ZDliOGNmZjY0MTQzMDEyZTc3YjNlMjFmYzVlOWNhYjA3NTkzNjRjLi5lNGFkNzdhZjk3YTNjMTM4
OTIxYjQ3ZDAyNjU5OGI4YmM3NmRhNGEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViR1BVL1dlYkdQ
VS9Db21wdXRlUGlwZWxpbmUubW0KKysrIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvQ29tcHV0ZVBp
cGVsaW5lLm1tCkBAIC03MSw3ICs3MSw3IEBAIHN0YXRpYyBNVExGdW5jdGlvbkNvbnN0YW50VmFs
dWVzICpjcmVhdGVDb25zdGFudFZhbHVlcyh1aW50MzJfdCBjb25zdGFudENvdW50LCBjCiAgICAg
YXV0byBjb25zdGFudFZhbHVlcyA9IFtNVExGdW5jdGlvbkNvbnN0YW50VmFsdWVzIG5ld107CiAg
ICAgZm9yICh1aW50MzJfdCBpID0gMDsgaSA8IGNvbnN0YW50Q291bnQ7ICsraSkgewogICAgICAg
ICBjb25zdCBhdXRvJiBlbnRyeSA9IGNvbnN0YW50c1tpXTsKLSAgICAgICAgYXV0byBuYW1lSXRl
cmF0b3IgPSBlbnRyeVBvaW50SW5mb3JtYXRpb24uc3BlY2lhbGl6YXRpb25Db25zdGFudEluZGlj
ZXMuZmluZChlbnRyeS5rZXkpOworICAgICAgICBhdXRvIG5hbWVJdGVyYXRvciA9IGVudHJ5UG9p
bnRJbmZvcm1hdGlvbi5zcGVjaWFsaXphdGlvbkNvbnN0YW50SW5kaWNlcy5maW5kKFN0cmluZyB7
IGVudHJ5LmtleSB9KTsKICAgICAgICAgaWYgKG5hbWVJdGVyYXRvciA9PSBlbnRyeVBvaW50SW5m
b3JtYXRpb24uc3BlY2lhbGl6YXRpb25Db25zdGFudEluZGljZXMuZW5kKCkpCiAgICAgICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgYXV0byBzcGVjaWFsaXphdGlvbkNvbnN0YW50SW5k
ZXggPSBuYW1lSXRlcmF0b3ItPnZhbHVlOwpAQCAtMTUwLDcgKzE1MCw3IEBAIFJlZlB0cjxDb21w
dXRlUGlwZWxpbmU+IERldmljZTo6Y3JlYXRlQ29tcHV0ZVBpcGVsaW5lKGNvbnN0IFdHUFVDb21w
dXRlUGlwZWxpbmVECiAgICAgY29uc3QgUGlwZWxpbmVMYXlvdXQmIHBpcGVsaW5lTGF5b3V0ID0g
V2ViR1BVOjpmcm9tQVBJKGRlc2NyaXB0b3IubGF5b3V0KTsKICAgICBhdXRvIGxhYmVsID0gZnJv
bUFQSShkZXNjcmlwdG9yLmxhYmVsKTsKIAotICAgIGF1dG8gbGlicmFyeUNyZWF0aW9uUmVzdWx0
ID0gY3JlYXRlTGlicmFyeShtX2RldmljZSwgc2hhZGVyTW9kdWxlLCBwaXBlbGluZUxheW91dCwg
ZGVzY3JpcHRvci5jb21wdXRlLmVudHJ5UG9pbnQsIGxhYmVsKTsKKyAgICBhdXRvIGxpYnJhcnlD
cmVhdGlvblJlc3VsdCA9IGNyZWF0ZUxpYnJhcnkobV9kZXZpY2UsIHNoYWRlck1vZHVsZSwgcGlw
ZWxpbmVMYXlvdXQsIFN0cmluZyB7IGRlc2NyaXB0b3IuY29tcHV0ZS5lbnRyeVBvaW50IH0sIGxh
YmVsKTsKICAgICBpZiAoIWxpYnJhcnlDcmVhdGlvblJlc3VsdCkKICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1F1ZXVlLm1tIGIvU291
cmNlL1dlYkdQVS9XZWJHUFUvUXVldWUubW0KaW5kZXggYjdiZDU3Y2Y1YTQyNmVjMjZlNmY5YjFl
MjlkOTlmZGVhZGY3MDVjNC4uMGQxYjM5YTg0ZjY0MjM1NzlhOWVjMDNiNWFhMjQxYmRlNjMxZDY2
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkdQVS9XZWJHUFUvUXVldWUubW0KKysrIGIvU291cmNl
L1dlYkdQVS9XZWJHUFUvUXVldWUubW0KQEAgLTEzMSw3ICsxMzEsNyBAQCB2b2lkIFF1ZXVlOjpz
dWJtaXQoVmVjdG9yPHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8Y29uc3QgQ29tbWFuZEJ1ZmZlcj4+
JiYgY29tbWFuZAogICAgIC8vICJJZiBhbnkgb2YgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFy
ZSB1bnNhdGlzZmllZCIKICAgICBpZiAoIXZhbGlkYXRlU3VibWl0KCkpIHsKICAgICAgICAgLy8g
ImdlbmVyYXRlIGEgdmFsaWRhdGlvbiBlcnJvciBhbmQgc3RvcC4iCi0gICAgICAgIG1fZGV2aWNl
LmdlbmVyYXRlQVZhbGlkYXRpb25FcnJvcigiVmFsaWRhdGlvbiBmYWlsdXJlLiIpOworICAgICAg
ICBtX2RldmljZS5nZW5lcmF0ZUFWYWxpZGF0aW9uRXJyb3IoIlZhbGlkYXRpb24gZmFpbHVyZS4i
X3MpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViR1BV
L1dlYkdQVS9TYW1wbGVyLm1tIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvU2FtcGxlci5tbQppbmRl
eCAyZjdmNzI3ZjE3ZDk3M2QwYTQ5Y2UzNGVlZmFjNzEzODU3MzM3NmI2Li44MjczOTA0OTk0Y2I3
MDlmMDk0ZTI0NTg3OTlhY2VjNjc3NTg5YjcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViR1BVL1dl
YkdQVS9TYW1wbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1NhbXBsZXIubW0KQEAg
LTEzNiw3ICsxMzYsNyBAQCBSZWZQdHI8U2FtcGxlcj4gRGV2aWNlOjpjcmVhdGVTYW1wbGVyKGNv
bnN0IFdHUFVTYW1wbGVyRGVzY3JpcHRvciYgZGVzY3JpcHRvcikKICAgICAvLyAiSWYgdmFsaWRh
dGluZyBHUFVTYW1wbGVyRGVzY3JpcHRvcih0aGlzLCBkZXNjcmlwdG9yKSByZXR1cm5zIGZhbHNl
OiIKICAgICBpZiAoIXZhbGlkYXRlQ3JlYXRlU2FtcGxlcigqdGhpcywgZGVzY3JpcHRvcikpIHsK
ICAgICAgICAgLy8gIkdlbmVyYXRlIGEgdmFsaWRhdGlvbiBlcnJvci4iCi0gICAgICAgIGdlbmVy
YXRlQVZhbGlkYXRpb25FcnJvcigiVmFsaWRhdGlvbiBmYWlsdXJlLiIpOworICAgICAgICBnZW5l
cmF0ZUFWYWxpZGF0aW9uRXJyb3IoIlZhbGlkYXRpb24gZmFpbHVyZS4iX3MpOwogCiAgICAgICAg
IC8vICJDcmVhdGUgYSBuZXcgaW52YWxpZCBHUFVTYW1wbGVyIGFuZCByZXR1cm4gdGhlIHJlc3Vs
dC4iCiAgICAgICAgIHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkdQVS9X
ZWJHUFUvU2hhZGVyTW9kdWxlLm1tIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvU2hhZGVyTW9kdWxl
Lm1tCmluZGV4IGUwMDc1NWNmYjU1YjRjNjZhODkyN2RkM2U1ZTAyZWE5MTAxNzBjNDQuLjYwNWUz
NzIzMzYxMDVhZTA4NzEzN2RiNjE2NDY5ODExMmJjZmY4N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJHUFUvV2ViR1BVL1NoYWRlck1vZHVsZS5tbQorKysgYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9T
aGFkZXJNb2R1bGUubW0KQEAgLTg4LDkgKzg4LDEwIEBAIHN0YXRpYyBSZWZQdHI8U2hhZGVyTW9k
dWxlPiBlYXJseUNvbXBpbGVTaGFkZXJNb2R1bGUoaWQ8TVRMRGV2aWNlPiBkZXZpY2UsIHN0ZDo6
CiAgICAgICAgIGNvbnN0IGF1dG8mIGhpbnQgPSBzdXBwbGllZEhpbnRzLmhpbnRzW2ldOwogICAg
ICAgICBpZiAoaGludC5uZXh0SW5DaGFpbikKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwot
ICAgICAgICBoaW50cy5hZGQoaGludC5rZXksIFdlYkdQVTo6ZnJvbUFQSShoaW50LmhpbnQubGF5
b3V0KSk7CisgICAgICAgIFN0cmluZyBoaW50S2V5IHsgaGludC5rZXkgfTsKKyAgICAgICAgaGlu
dHMuYWRkKGhpbnRLZXksIFdlYkdQVTo6ZnJvbUFQSShoaW50LmhpbnQubGF5b3V0KSk7CiAgICAg
ICAgIGF1dG8gY29udmVydGVkUGlwZWxpbmVMYXlvdXQgPSBTaGFkZXJNb2R1bGU6OmNvbnZlcnRQ
aXBlbGluZUxheW91dChXZWJHUFU6OmZyb21BUEkoaGludC5oaW50LmxheW91dCkpOwotICAgICAg
ICB3Z3NsSGludHMuYWRkKGhpbnQua2V5LCBXVEZNb3ZlKGNvbnZlcnRlZFBpcGVsaW5lTGF5b3V0
KSk7CisgICAgICAgIHdnc2xIaW50cy5hZGQoaGludEtleSwgV1RGTW92ZShjb252ZXJ0ZWRQaXBl
bGluZUxheW91dCkpOwogICAgIH0KICAgICBhdXRvIHByZXBhcmVSZXN1bHQgPSBXR1NMOjpwcmVw
YXJlKHN0ZDo6Z2V0PFdHU0w6OlN1Y2Nlc3NmdWxDaGVjaz4oY2hlY2tSZXN1bHQpLmFzdCwgd2dz
bEhpbnRzKTsKICAgICBhdXRvIGxpYnJhcnkgPSBTaGFkZXJNb2R1bGU6OmNyZWF0ZUxpYnJhcnko
ZGV2aWNlLCBwcmVwYXJlUmVzdWx0Lm1zbCwgV1RGTW92ZShsYWJlbCkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQppbmRleCA0N2U5ZGNhNTAwYjEwNjQw
MWVkY2JkZmNiZWE4MjBiMzViZTk2NTQyLi5mZjM4ZTFmNzY4MzcwNjMxZmU0YWViMTFkMDBkMGFj
NjcwYTlhMzcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJW
aWV3SW1wbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1w
bC5tbQpAQCAtNDQ3OCw3ICs0NDc4LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6c2V0UHJvbWlzZWRE
YXRhRm9ySW1hZ2UoV2ViQ29yZTo6SW1hZ2UqIGltYWdlLCBOU1N0cmluZyAqZmlsZW4KIAogICAg
IFJldGFpblB0cjxOU0RhdGE+IGN1c3RvbURhdGFCdWZmZXI7CiAgICAgaWYgKG9yaWdpbklkZW50
aWZpZXIubGVuZ3RoKSB7Ci0gICAgICAgIFt0eXBlcyBhZGRPYmplY3Q6QChXZWJDb3JlOjpQYXN0
ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkpXTsKKyAgICAgICAgW3R5cGVzIGFkZE9iamVj
dDpAKFdlYkNvcmU6OlBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKS5jaGFyYWN0ZXJz
KCkpXTsKICAgICAgICAgV2ViQ29yZTo6UGFzdGVib2FyZEN1c3RvbURhdGEgY3VzdG9tRGF0YTsK
ICAgICAgICAgY3VzdG9tRGF0YS5zZXRPcmlnaW4ob3JpZ2luSWRlbnRpZmllcik7CiAgICAgICAg
IGN1c3RvbURhdGFCdWZmZXIgPSBjdXN0b21EYXRhLmNyZWF0ZVNoYXJlZEJ1ZmZlcigpLT5jcmVh
dGVOU0RhdGEoKTsKQEAgLTQ0OTcsNyArNDQ5Nyw3IEBAIEFMTE9XX0RFUFJFQ0FURURfREVDTEFS
QVRJT05TX0VORAogICAgIH0KIAogICAgIGlmIChjdXN0b21EYXRhQnVmZmVyKQotICAgICAgICBb
cGFzdGVib2FyZCBzZXREYXRhOmN1c3RvbURhdGFCdWZmZXIuZ2V0KCkgZm9yVHlwZTpAKFdlYkNv
cmU6OlBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKSldOworICAgICAgICBbcGFzdGVi
b2FyZCBzZXREYXRhOmN1c3RvbURhdGFCdWZmZXIuZ2V0KCkgZm9yVHlwZTpAKFdlYkNvcmU6OlBh
c3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKS5jaGFyYWN0ZXJzKCkpXTsKIAogICAgIG1f
cHJvbWlzZWRJbWFnZSA9IGltYWdlOwogfQpAQCAtNDYyNCw3ICs0NjI0LDcgQEAgdm9pZCBXZWJW
aWV3SW1wbDo6cmVxdWVzdERPTVBhc3RlQWNjZXNzKFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzQ2F0
ZWdvcnkgcGFzdGVBY2MKICAgICBBU1NFUlQoIW1fZG9tUGFzdGVSZXF1ZXN0SGFuZGxlcik7CiAg
ICAgaGlkZURPTVBhc3RlTWVudVdpdGhSZXN1bHQoV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNw
b25zZTo6RGVuaWVkRm9yR2VzdHVyZSk7CiAKLSAgICBOU0RhdGEgKmRhdGEgPSBbcGFzdGVib2Fy
ZEZvckFjY2Vzc0NhdGVnb3J5KHBhc3RlQWNjZXNzQ2F0ZWdvcnkpIGRhdGFGb3JUeXBlOkAoV2Vi
Q29yZTo6UGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpKV07CisgICAgTlNEYXRhICpk
YXRhID0gW3Bhc3RlYm9hcmRGb3JBY2Nlc3NDYXRlZ29yeShwYXN0ZUFjY2Vzc0NhdGVnb3J5KSBk
YXRhRm9yVHlwZTpAKFdlYkNvcmU6OlBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKS5j
aGFyYWN0ZXJzKCkpXTsKICAgICBhdXRvIGJ1ZmZlciA9IFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcjo6
Y3JlYXRlKGRhdGEpOwogICAgIGlmIChXZWJDb3JlOjpQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6ZnJv
bVNoYXJlZEJ1ZmZlcihidWZmZXIuZ2V0KCkpLm9yaWdpbigpID09IG9yaWdpbklkZW50aWZpZXIp
IHsKICAgICAgICAgbV9wYWdlLT5ncmFudEFjY2Vzc1RvQ3VycmVudFBhc3RlYm9hcmREYXRhKHBh
c3RlYm9hcmROYW1lRm9yQWNjZXNzQ2F0ZWdvcnkocGFzdGVBY2Nlc3NDYXRlZ29yeSkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJOU1Bhc3RlYm9hcmRFeHRy
YXMubW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYk5TUGFzdGVib2FyZEV4dHJh
cy5tbQppbmRleCBlNWI0NDRiZmE1YzI4NzI4Mzg3YzcyMzMyODI5MWE4MjAzZDFiMjU0Li4zZTUy
ZjFiYmFjZGI1MWI4ZWE1NDc3YzZiMGQ5OWI5NWNiYWQwYmMyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYk5TUGFzdGVib2FyZEV4dHJhcy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYk5TUGFzdGVib2FyZEV4dHJhcy5tbQpAQCAtMjc2
LDcgKzI3Niw3IEBAIC0gKGlkKV93ZWJfZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlRm9yRWxlbWVu
dDooRE9NRWxlbWVudCAqKWVsZW1lbnQKICAgICBOU1N0cmluZyAqb3JpZ2luSWRlbnRpZmllciA9
IGNvcmUoZWxlbWVudCktPmRvY3VtZW50KCkub3JpZ2luSWRlbnRpZmllckZvclBhc3RlYm9hcmQo
KTsKICAgICBSZXRhaW5QdHI8TlNEYXRhPiBjdXN0b21EYXRhQnVmZmVyOwogICAgIGlmIChvcmln
aW5JZGVudGlmaWVyLmxlbmd0aCkgewotICAgICAgICBbdHlwZXMgYWRkT2JqZWN0OkAoUGFzdGVi
b2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpKV07CisgICAgICAgIFt0eXBlcyBhZGRPYmplY3Q6
QChQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkuY2hhcmFjdGVycygpKV07CiAgICAg
ICAgIFBhc3RlYm9hcmRDdXN0b21EYXRhIGN1c3RvbURhdGE7CiAgICAgICAgIGN1c3RvbURhdGEu
c2V0T3JpZ2luKG9yaWdpbklkZW50aWZpZXIpOwogICAgICAgICBjdXN0b21EYXRhQnVmZmVyID0g
Y3VzdG9tRGF0YS5jcmVhdGVTaGFyZWRCdWZmZXIoKS0+Y3JlYXRlTlNEYXRhKCk7CkBAIC0zMDUs
NyArMzA1LDcgQEAgLSAoaWQpX3dlYl9kZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2VGb3JFbGVtZW50
OihET01FbGVtZW50ICopZWxlbWVudAogCiAgICAgW3NlbGYgX3dlYl93cml0ZUltYWdlOm5pbCBl
bGVtZW50OmVsZW1lbnQgVVJMOlVSTCB0aXRsZTp0aXRsZSBhcmNoaXZlOmFyY2hpdmUgdHlwZXM6
dHlwZXMuZ2V0KCkgc291cmNlOnNvdXJjZV07CiAgICAgaWYgKGN1c3RvbURhdGFCdWZmZXIpCi0g
ICAgICAgIFtzZWxmIHNldERhdGE6Y3VzdG9tRGF0YUJ1ZmZlci5nZXQoKSBmb3JUeXBlOkAoUGFz
dGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpKV07CisgICAgICAgIFtzZWxmIHNldERhdGE6
Y3VzdG9tRGF0YUJ1ZmZlci5nZXQoKSBmb3JUeXBlOkAoUGFzdGVib2FyZEN1c3RvbURhdGE6OmNv
Y29hVHlwZSgpLmNoYXJhY3RlcnMoKSldOwogCiAgICAgW3NlbGYgc2V0UHJvcGVydHlMaXN0OkBb
ZXh0ZW5zaW9uXSBmb3JUeXBlOmxlZ2FjeUZpbGVzUHJvbWlzZVBhc3RlYm9hcmRUeXBlKCldOwog
CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMTg4
MTgzN2U0NGJjZTAyNzM4YjdjOThhNGYzODRhMTI2Nzk2NTlkOS4uOGYwNWE4YjVlMWY1YzhlNGUx
YmIyODJjYTA4ZjI3NGI3ZDFmOWJjYyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBi
L1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIyLTAzLTI0ICBDaHJpcyBEdW1l
eiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgU3RhcnQgcHJlcGFyaW5nIFdlYkNvcmUg
Zm9yIG1ha2luZyB0aGUgU3RyaW5nKGNvbnN0IGNoYXIqKSBjb25zdHJ1Y3RvciBleHBsaWNpdAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4MzM2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3RhcnQgcHJl
cGFyaW5nIFdlYkNvcmUgZm9yIG1ha2luZyB0aGUgU3RyaW5nKGNvbnN0IGNoYXIqKSBjb25zdHJ1
Y3RvciBleHBsaWNpdC4KKyAgICAgICAgTWFraW5nIHRoaXMgY29uc3RydWN0b3IgZXhwbGljaXQg
aGVscHMgY2F0Y2ggYXQgY29tcGlsZSB0aW1lIGNhc2VzIHdoZXJlIHRoZSAiIl9zCisgICAgICAg
IHByZWZpeCBpcyBtaXNzaW5nIG9uIFN0cmluZyBsaXRlcmFscy4KKworICAgICAgICAqIFRlc3RX
ZWJLaXRBUEkvVGVzdHMvbWFjL0RyYWdBbmREcm9wVGVzdHNNYWMubW06CisgICAgICAgIChURVNU
KToKKwogMjAyMi0wMy0yNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAg
ICAgIFVucmV2aWV3ZWQsIHVwZGF0ZSBvdXRkYXRlZCBjb21tZW50IGFmdGVyIHIyOTE3ODcuCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9EcmFnQW5kRHJvcFRlc3Rz
TWFjLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvRHJhZ0FuZERyb3BUZXN0c01h
Yy5tbQppbmRleCA1MjE5Yzk0ZGQzOWRiNDg5ZmIzYTQ2YTE0ZDhhOTM1MTNkMjg0ZWZjLi44MThi
MDBmM2I1ZjY0ODg3OWUzNTM1MTNjNTM0MzlmNzRlZGJhZWU0IDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9EcmFnQW5kRHJvcFRlc3RzTWFjLm1tCisrKyBiL1Rvb2xz
L1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0RyYWdBbmREcm9wVGVzdHNNYWMubW0KQEAgLTE4MSw3
ICsxODEsNyBAQCBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBFWFBFQ1Rf
RVEoaW1hZ2VGcm9tVW5pcXVlUGFzdGVib2FyZC5USUZGUmVwcmVzZW50YXRpb24ubGVuZ3RoLCBp
bWFnZUZyb21EcmFnUGFzdGVib2FyZC5USUZGUmVwcmVzZW50YXRpb24ubGVuZ3RoKTsKICAgICBF
WFBFQ1RfVFJVRShOU0VxdWFsU2l6ZXMoaW1hZ2VGcm9tRHJhZ1Bhc3RlYm9hcmQuc2l6ZSwgaW1h
Z2VGcm9tVW5pcXVlUGFzdGVib2FyZC5zaXplKSk7CiAgICAgRVhQRUNUX0ZBTFNFKE5TRXF1YWxT
aXplcyhOU1plcm9TaXplLCBpbWFnZUZyb21VbmlxdWVQYXN0ZWJvYXJkLnNpemUpKTsKLSAgICBF
WFBFQ1RfR1QoW2RyYWdQYXN0ZWJvYXJkIGRhdGFGb3JUeXBlOkAoV2ViQ29yZTo6UGFzdGVib2Fy
ZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpKV0ubGVuZ3RoLCAwdSk7CisgICAgRVhQRUNUX0dUKFtk
cmFnUGFzdGVib2FyZCBkYXRhRm9yVHlwZTpAKFdlYkNvcmU6OlBhc3RlYm9hcmRDdXN0b21EYXRh
Ojpjb2NvYVR5cGUoKS5jaGFyYWN0ZXJzKCkpXS5sZW5ndGgsIDB1KTsKIH0KIAogVEVTVChEcmFn
QW5kRHJvcFRlc3RzLCBQcm92aWRlSW1hZ2VEYXRhQXNUeXBlSWRlbnRpZmllcnMpCg==
</data>
<flag name="commit-queue"
          id="483727"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455672</attachid>
            <date>2022-03-24 13:32:15 -0700</date>
            <delta_ts>2022-03-24 15:51:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238336-20220324133214.patch</filename>
            <type>text/plain</type>
            <size>431159</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxODAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
YWE2NWE0N2JkOThlOGI5M2I1ZjQ1N2IzNjRmZDdjOWJhMTczNmI5Li5hMTQ4ZTZjZTU1MmQ4NDU3
ZWFmYjBmZmM1MzA4NjdjYzJjNTFkMjgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMiBAQAorMjAyMi0wMy0yNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFN0YXJ0IHByZXBhcmluZyBXZWJDb3JlIGZvciBtYWtpbmcgdGhlIFN0cmluZyhj
b25zdCBjaGFyKikgY29uc3RydWN0b3IgZXhwbGljaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODMzNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0YXJ0IHByZXBhcmluZyBXZWJDb3JlIGZvciBtYWtp
bmcgdGhlIFN0cmluZyhjb25zdCBjaGFyKikgY29uc3RydWN0b3IgZXhwbGljaXQuCisgICAgICAg
IE1ha2luZyB0aGlzIGNvbnN0cnVjdG9yIGV4cGxpY2l0IGhlbHBzIGNhdGNoIGF0IGNvbXBpbGUg
dGltZSBjYXNlcyB3aGVyZSB0aGUgIiJfcworICAgICAgICBwcmVmaXggaXMgbWlzc2luZyBvbiBT
dHJpbmcgbGl0ZXJhbHMuCisKKyAgICAgICAgKiBBUEkvSlNWYWx1ZS5tbToKKyAgICAgICAgKGNy
ZWF0ZVN0cnVjdEhhbmRsZXJNYXApOgorICAgICAgICAoaGFuZGVyRm9yU3RydWN0VGFnKToKKyAg
ICAgICAgKiBBUEkvSlNXcmFwcGVyTWFwLm1tOgorICAgICAgICAoYWxsb2NhdGVDb25zdHJ1Y3Rv
ckZvckN1c3RvbUNsYXNzKToKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckF1
ZGl0QWdlbnQuY3BwOgorICAgICAgICAoSW5zcGVjdG9yOjpJbnNwZWN0b3JBdWRpdEFnZW50Ojpy
dW4pOgorCiAyMDIyLTAzLTIzICBHZXphIExvcmUgIDxnbG9yZUBpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFtKU0NdIEZpeCByZW1vdGVGdW5jdGlvbkNhbGxHZW5lcmF0b3Igb24gTUlQUwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCA5
YmMzMGI4ZTZlY2QyZDdjMzliYzIyMDAxNTc1OWJjNDg1MjFjNzlkLi43NGRiNDdmODc3YmNkODMw
YzM2NzRkNTEyYmYxZjIzZmU5MDQ5ZTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIyLTAzLTI0
ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgU3RhcnQgcHJlcGFy
aW5nIFdlYkNvcmUgZm9yIG1ha2luZyB0aGUgU3RyaW5nKGNvbnN0IGNoYXIqKSBjb25zdHJ1Y3Rv
ciBleHBsaWNpdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjM4MzM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgU3RhcnQgcHJlcGFyaW5nIFdlYkNvcmUgZm9yIG1ha2luZyB0aGUgU3RyaW5nKGNvbnN0IGNo
YXIqKSBjb25zdHJ1Y3RvciBleHBsaWNpdC4KKyAgICAgICAgTWFraW5nIHRoaXMgY29uc3RydWN0
b3IgZXhwbGljaXQgaGVscHMgY2F0Y2ggYXQgY29tcGlsZSB0aW1lIGNhc2VzIHdoZXJlIHRoZSAi
Il9zCisgICAgICAgIHByZWZpeCBpcyBtaXNzaW5nIG9uIFN0cmluZyBsaXRlcmFscy4KKworICAg
ICAgICAqIHd0Zi90ZXh0L1RleHRTdHJlYW0uaDoKKyAgICAgICAgKFdURjo6VGV4dFN0cmVhbTo6
ZHVtcFByb3BlcnR5KToKKwogMjAyMi0wMy0yNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgogCiAgICAgICAgIFN0cmluZydzIGZpbmQoKSAvIHJldmVyc2VGaW5kKCkgLyByZXBsYWNl
KCkgc2hvdWxkIHRha2UgaW4gYSBTdHJpbmdWaWV3IGluc3RlYWQgb2YgYSBTdHJpbmcKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCAwNDVlMjI5ZDQyMGJjYmFlM2EzZTEyOWEyOTMwZDI2YjliZjc2ZWEzLi4yNmU2NWYw
OTA0MzVmNjBkYWQ0ZmY5MjIzZWY0ZDY0N2YyZjAzMjU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
NTExIEBACisyMDIyLTAzLTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAg
ICAgICAgU3RhcnQgcHJlcGFyaW5nIFdlYkNvcmUgZm9yIG1ha2luZyB0aGUgU3RyaW5nKGNvbnN0
IGNoYXIqKSBjb25zdHJ1Y3RvciBleHBsaWNpdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4MzM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgU3RhcnQgcHJlcGFyaW5nIFdlYkNvcmUgZm9yIG1ha2luZyB0
aGUgU3RyaW5nKGNvbnN0IGNoYXIqKSBjb25zdHJ1Y3RvciBleHBsaWNpdC4KKyAgICAgICAgTWFr
aW5nIHRoaXMgY29uc3RydWN0b3IgZXhwbGljaXQgaGVscHMgY2F0Y2ggYXQgY29tcGlsZSB0aW1l
IGNhc2VzIHdoZXJlIHRoZSAiIl9zCisgICAgICAgIHByZWZpeCBpcyBtaXNzaW5nIG9uIFN0cmlu
ZyBsaXRlcmFscy4KKworICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXktYW1zLXVpL0FwcGxlUGF5
QU1TVUlQYXltZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0QW5kVmFs
aWRhdGVBcHBsZVBheUFNU1VJUmVxdWVzdCk6CisgICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9B
cHBsZVBheUNvbnRhY3RGaWVsZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0QW5kVmFs
aWRhdGUpOgorICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlNZXJjaGFudENhcGFi
aWxpdHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydEFuZFZhbGlkYXRlKToKKyAgICAg
ICAgKiBNb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5UmVxdWVzdEJhc2UuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Y29udmVydEFuZFZhbGlkYXRlKToKKyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5
L0FwcGxlUGF5U2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheVNlc3Npb246
OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheVNlc3Npb246Om9wZW5QYXltZW50
U2V0dXApOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9uOjpiZWdpbik6CisgICAg
ICAgICogTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNldHVwLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkFwcGxlUGF5U2V0dXA6OmJlZ2luKToKKyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5L1Bh
eW1lbnRJbnN0YWxsbWVudENvbmZpZ3VyYXRpb24ubW06CisgICAgICAgIChXZWJDb3JlOjpQYXlt
ZW50SW5zdGFsbG1lbnRDb25maWd1cmF0aW9uOjpjcmVhdGUpOgorICAgICAgICAqIE1vZHVsZXMv
YXBwbGVwYXkvUGF5bWVudFJlcXVlc3RWYWxpZGF0b3IubW06CisgICAgICAgIChXZWJDb3JlOjpQ
YXltZW50UmVxdWVzdFZhbGlkYXRvcjo6dmFsaWRhdGVUb3RhbCk6CisgICAgICAgIChXZWJDb3Jl
Ojp2YWxpZGF0ZUNvdW50cnlDb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRlQ3VycmVu
Y3lDb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRlTWVyY2hhbnRDYXBhYmlsaXRpZXMp
OgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGVTdXBwb3J0ZWROZXR3b3Jrcyk6CisgICAgICAg
IChXZWJDb3JlOjp2YWxpZGF0ZVNoaXBwaW5nTWV0aG9kKToKKyAgICAgICAgKiBNb2R1bGVzL2Fw
cGxlcGF5L1BheW1lbnRTZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBheW1lbnRTZXNz
aW9uOjpjYW5DcmVhdGVTZXNzaW9uKToKKyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5L3BheW1l
bnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Y29udmVydEFuZFZhbGlkYXRlQXBwbGVQYXlSZXF1ZXN0KToKKyAgICAgICAgKiBNb2R1bGVzL2Fw
cGxpY2F0aW9ubWFuaWZlc3QvQXBwbGljYXRpb25NYW5pZmVzdFBhcnNlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpBcHBsaWNhdGlvbk1hbmlmZXN0UGFyc2VyOjpwYXJzZUljb25zKToKKyAgICAg
ICAgKFdlYkNvcmU6OkFwcGxpY2F0aW9uTWFuaWZlc3RQYXJzZXI6OnBhcnNlU2NvcGUpOgorICAg
ICAgICAqIE1vZHVsZXMvY2FjaGUvV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZUNhY2hlcy5jcHA6
CisgICAgICAgICogTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9Jbml0RGF0YVJlZ2lzdHJ5LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OnNhbml0aXplS2V5aWRzKToKKyAgICAgICAgKiBNb2R1bGVzL2Vu
dHJpZXNhcGkvRE9NRmlsZVN5c3RlbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpsaXN0RGlyZWN0
b3J5V2l0aE1ldGFkYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRlUGF0aElzRXhwZWN0
ZWRUeXBlKToKKyAgICAgICAgKiBNb2R1bGVzL2ZldGNoL0ZldGNoQm9keUNvbnN1bWVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkZldGNoQm9keUNvbnN1bWVyOjpwYWNrYWdlRm9ybURhdGEpOgor
ICAgICAgICAqIE1vZHVsZXMvZmV0Y2gvRmV0Y2hIZWFkZXJzLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmZpbGxIZWFkZXJNYXApOgorICAgICAgICAqIE1vZHVsZXMvZmV0Y2gvRmV0Y2hMb2FkZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hMb2FkZXI6OnN0YXJ0TG9hZGluZ0Jsb2JVUkwp
OgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRs
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Z2V0RmlsZSk6
CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Y3JlYXRlU3luY0FjY2Vz
c0hhbmRsZSk6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1I
YW5kbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZTo6aXNTYW1lRW50
cnkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZTo6bW92ZSk6Cisg
ICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VJZGVudGlmaWVyLmg6CisgICAg
ICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5RGF0YS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJREJLZXlEYXRhOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SURCS2V5RGF0
YTo6ZGVjb2RlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlSYW5nZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJREJLZXlSYW5nZTo6aW5jbHVkZXMpOgorICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJpYWxpemF0aW9uLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OnNlcmlhbGl6ZUlEQktleVBhdGgpOgorICAgICAgICAoV2ViQ29yZTo6ZGVzZXJpYWxp
emVJREJLZXlQYXRoKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2Vy
dmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVyOjpnZXRBbGxE
YXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpJ
REJTZXJ2ZXI6OmdldE9yaWdpbnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVy
OjpJREJTZXJ2ZXI6OmNsb3NlQW5kRGVsZXRlRGF0YWJhc2VzTW9kaWZpZWRTaW5jZSk6CisgICAg
ICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQlNlcnZlcjo6Y2xvc2VBbmREZWxldGVEYXRhYmFz
ZXNGb3JPcmlnaW5zKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6cmVtb3ZlQWxsRGF0
YWJhc2VzRm9yRnVsbE9yaWdpblBhdGgpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpJ
REJTZXJ2ZXI6OnJlbmFtZU9yaWdpbik6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OklE
QlNlcnZlcjo6dXBncmFkZUZpbGVzSWZOZWNlc3NhcnkpOgorICAgICAgICAoV2ViQ29yZTo6SURC
U2VydmVyOjpJREJTZXJ2ZXI6OnVwZ3JhZGVkRGF0YWJhc2VEaXJlY3RvcnkpOgorICAgICAgICAq
IE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlJREJCYWNraW5nU3RvcmUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpNZW1vcnlJREJCYWNraW5nU3RvcmU6OmJlZ2luVHJh
bnNhY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpNZW1vcnlJREJCYWNraW5n
U3RvcmU6OmFib3J0VHJhbnNhY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpN
ZW1vcnlJREJCYWNraW5nU3RvcmU6OmNvbW1pdFRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OklEQlNlcnZlcjo6TWVtb3J5SURCQmFja2luZ1N0b3JlOjpnZW5lcmF0ZUtleU51bWJlcik6
CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeU9iamVjdFN0b3JlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6TWVtb3J5T2JqZWN0U3RvcmU6OnVwZGF0
ZUluZGV4ZXNGb3JQdXRSZWNvcmQpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZl
ci9TUUxpdGVJREJCYWNraW5nU3RvcmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVy
Ojp2MVJlY29yZHNUYWJsZVNjaGVtYSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OnYx
UmVjb3Jkc1RhYmxlU2NoZW1hQWx0ZXJuYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZl
cjo6djJSZWNvcmRzVGFibGVTY2hlbWEpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjp2
MlJlY29yZHNUYWJsZVNjaGVtYUFsdGVybmF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2
ZXI6OnYxSW5kZXhSZWNvcmRzVGFibGVTY2hlbWEpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2Vy
dmVyOjp2MUluZGV4UmVjb3Jkc1RhYmxlU2NoZW1hQWx0ZXJuYXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OklEQlNlcnZlcjo6djJJbmRleFJlY29yZHNUYWJsZVNjaGVtYSk6CisgICAgICAgIChXZWJD
b3JlOjpJREJTZXJ2ZXI6OnYySW5kZXhSZWNvcmRzVGFibGVTY2hlbWFBbHRlcm5hdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpTUUxpdGVJREJCYWNraW5nU3RvcmU6OmVuY29kZURh
dGFiYXNlTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlNRTGl0ZUlEQkJhY2tp
bmdTdG9yZTo6ZnVsbERhdGFiYXNlUGF0aEZvckRpcmVjdG9yeSk6CisgICAgICAgIChXZWJDb3Jl
OjpJREJTZXJ2ZXI6OlNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6Z2V0T3JFc3RhYmxpc2hEYXRhYmFz
ZUluZm8pOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpTUUxpdGVJREJCYWNraW5nU3Rv
cmU6OnVwZGF0ZUFsbEluZGV4ZXNGb3JBZGRSZWNvcmQpOgorICAgICAgICAoV2ViQ29yZTo6SURC
U2VydmVyOjpTUUxpdGVJREJCYWNraW5nU3RvcmU6OnVuY2hlY2tlZEdldEtleUdlbmVyYXRvclZh
bHVlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6U1FMaXRlSURCQmFja2luZ1N0b3Jl
Ojp1bmNoZWNrZWRTZXRLZXlHZW5lcmF0b3JWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJT
ZXJ2ZXI6OlNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6Z2VuZXJhdGVLZXlOdW1iZXIpOgorICAgICAg
ICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpjcmVhdGVPYmplY3RT
dG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpk
ZWxldGVPYmplY3RTdG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlE
QkRhdGFiYXNlOjpyZW5hbWVPYmplY3RTdG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2
ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpjbGVhck9iamVjdFN0b3JlKToKKyAgICAgICAgKFdlYkNv
cmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OmNyZWF0ZUluZGV4KToKKyAgICAgICAg
KFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OmRlbGV0ZUluZGV4KToKKyAg
ICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OnJlbmFtZUluZGV4
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OnB1dE9y
QWRkKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OnB1
dE9yQWRkQWZ0ZXJTcGFjZUNoZWNrKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5p
cXVlSURCRGF0YWJhc2U6OmdldFJlY29yZCk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6
OlVuaXF1ZUlEQkRhdGFiYXNlOjpnZXRBbGxSZWNvcmRzKToKKyAgICAgICAgKFdlYkNvcmU6OklE
QlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OmdldENvdW50KToKKyAgICAgICAgKFdlYkNvcmU6
OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OmRlbGV0ZVJlY29yZCk6CisgICAgICAgIChX
ZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpvcGVuQ3Vyc29yKToKKyAgICAg
ICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6Oml0ZXJhdGVDdXJzb3Ip
OgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6Y29tbWl0
VHJhbnNhY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRh
YmFzZTo6YWJvcnRUcmFuc2FjdGlvbik6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2hh
cmVkL0lEQkluZGV4SW5mby5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJJbmRleEluZm86Omxv
Z2dpbmdTdHJpbmcgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFjb250cm9scy9NZWRp
YUNvbnRyb2xzSG9zdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xzSG9zdDo6
bGF5b3V0VHJhaXRzQ2xhc3NOYW1lIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhcmVj
b3JkZXIvTWVkaWFSZWNvcmRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVy
OjpjcmVhdGUpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6YWRkVlA5RnVsbFJhbmdlVmlkZW9GbGFnVG9Db250ZW50VHlw
ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNvdXJjZTo6aXNUeXBlU3VwcG9ydGVkKToKKyAg
ICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhVHJhY2tDb25zdHJhaW50cy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpzZXQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydFRvSW50ZXJu
YWxGb3JtKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0ljZUNhbmRpZGF0ZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSVENJY2VDYW5kaWRhdGU6OmNyZWF0ZSk6CisgICAgICAg
ICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSVENQZWVyQ29ubmVjdGlvbjo6c2V0TG9jYWxEZXNjcmlwdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpSVENQZWVyQ29ubmVjdGlvbjo6YWRkSWNlQ2FuZGlkYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OlJUQ1BlZXJDb25uZWN0aW9uOjppY2VTZXJ2ZXJzRnJvbUNvbmZpZ3VyYXRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6UlRDUGVlckNvbm5lY3Rpb246OmNlcnRpZmljYXRlc0Zyb21D
b25maWd1cmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1BlZXJDb25uZWN0aW9uOjppbml0
aWFsaXplQ29uZmlndXJhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpSVENQZWVyQ29ubmVjdGlv
bjo6c2V0Q29uZmlndXJhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpSVENQZWVyQ29ubmVjdGlv
bjo6Y2hhaW5PcGVyYXRpb24pOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRw
U0ZyYW1lVHJhbnNmb3JtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UlRDUnRwU0ZyYW1lVHJh
bnNmb3JtZXI6OnRyYW5zZm9ybSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3
ZWJydGMvTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkxpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZDo6ZG9DcmVhdGVBbnN3ZXIpOgorICAg
ICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1J0cFRyYW5zY2Vp
dmVyQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b1J0cENvZGVjQ2FwYWJpbGl0eSk6
CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDVXRpbHMu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9FeGNlcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
dG9SVENFcnJvcik6CisgICAgICAgICogTW9kdWxlcy9tb2RlbC1lbGVtZW50L3NjZW5la2l0L1Nj
ZW5lS2l0TW9kZWxMb2FkZXJVU0QubW06CisgICAgICAgIChXZWJDb3JlOjp3cml0ZVRvVGVtcG9y
YXJ5RmlsZSk6CisgICAgICAgICogTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVz
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjaGVja0FuZENhbm9uaWNhbGl6ZURldGFpbHMpOgor
ICAgICAgICAoV2ViQ29yZTo6UGF5bWVudFJlcXVlc3Q6OnNob3cpOgorICAgICAgICAqIE1vZHVs
ZXMvcGljdHVyZWlucGljdHVyZS9IVE1MVmlkZW9FbGVtZW50UGljdHVyZUluUGljdHVyZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50UGljdHVyZUluUGljdHVyZTo6cmVx
dWVzdFBpY3R1cmVJblBpY3R1cmUpOgorICAgICAgICAqIE1vZHVsZXMvcGx1Z2lucy9Zb3VUdWJl
UGx1Z2luUmVwbGFjZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WW91VHViZVBsdWdpblJl
cGxhY2VtZW50OjppbnN0YWxsUmVwbGFjZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6cHJvY2Vz
c0FuZENyZWF0ZVlvdVR1YmVVUkwpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbDo6dXBkYXRlRGF0YVNvdXJjZSk6CisgICAgICAg
IChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjpzb3VyY2VTdG9w
cGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUlt
cGw6OnNvdXJjZU11dGVkQ2hhbmdlZCk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvY29jb2Ev
V2ViU3BlZWNoUmVjb2duaXplclRhc2tNb2NrLm1tOgorICAgICAgICAoLVtXZWJTcGVlY2hSZWNv
Z25pemVyVGFza01vY2sgYXVkaW9TYW1wbGVzQXZhaWxhYmxlOl0pOgorICAgICAgICAqIE1vZHVs
ZXMvc3RvcmFnZS9TdG9yYWdlTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb25uZWN0
aW9uSW5mbyk6CisgICAgICAgICogTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja01hbmFnZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6V2ViTG9ja01hbmFnZXI6OnNpZ25hbFRvQWJvcnRUaGVSZXF1
ZXN0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTGlzdGVuZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6QXVkaW9MaXN0ZW5lcjo6QXVkaW9MaXN0ZW5lcik6CisgICAgICAgICog
TW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlv
UGFyYW06OnNldEF1dG9tYXRpb25SYXRlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvUGFyYW1UaW1lbGluZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1BhcmFtVGltZWxp
bmU6Omluc2VydEV2ZW50KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0JpcXVhZEZpbHRl
ck5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QmlxdWFkRmlsdGVyTm9kZTo6Z2V0RnJlcXVl
bmN5UmVzcG9uc2UpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQmlxdWFkUHJvY2Vzc29y
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJpcXVhZFByb2Nlc3Nvcjo6QmlxdWFkUHJvY2Vzc29y
KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0RlbGF5UHJvY2Vzc29yLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRlbGF5UHJvY2Vzc29yOjpEZWxheVByb2Nlc3Nvcik6CisgICAgICAgICog
TW9kdWxlcy93ZWJhdWRpby9XYXZlU2hhcGVyTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpX
YXZlU2hhcGVyTm9kZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OldhdmVTaGFwZXJOb2Rl
OjpzZXRDdXJ2ZUZvckJpbmRpbmdzKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL0F1dGhl
bnRpY2F0b3JDb29yZGluYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdXRoZW50aWNhdG9y
Q29vcmRpbmF0b3JJbnRlcm5hbDo6bmVlZHNBcHBJZFF1aXJrcyk6CisgICAgICAgICogTW9kdWxl
cy93ZWJhdXRobi9XZWJBdXRoZW50aWNhdGlvblV0aWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmJ1aWxkQXR0ZXN0YXRpb25NYXApOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vZmlkby9E
ZXZpY2VSZXNwb25zZUNvbnZlcnRlci5jcHA6CisgICAgICAgIChmaWRvOjpyZWFkQ1RBUE1ha2VD
cmVkZW50aWFsUmVzcG9uc2UpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vZmlkby9QaW4u
Y3BwOgorICAgICAgICAoZmlkbzo6cGluOjpLZXlBZ3JlZW1lbnRSZXNwb25zZTo6cGFyc2VGcm9t
Q09TRSk6CisgICAgICAgIChmaWRvOjpwaW46OlRva2VuUmVxdWVzdDo6dHJ5Q3JlYXRlKToKKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL2ZpZG8vVTJmUmVzcG9uc2VDb252ZXJ0ZXIuY3BwOgor
ICAgICAgICAoZmlkbzo6cmVhZFUyZlJlZ2lzdGVyUmVzcG9uc2UpOgorICAgICAgICAqIE1vZHVs
ZXMvd2ViZGF0YWJhc2UvQ2hhbmdlVmVyc2lvbldyYXBwZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q2hhbmdlVmVyc2lvbldyYXBwZXI6OnBlcmZvcm1QcmVmbGlnaHQpOgorICAgICAgICAqIE1v
ZHVsZXMvd2ViZGF0YWJhc2UvRE9NV2luZG93V2ViRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RE9NV2luZG93V2ViRGF0YWJhc2U6Om9wZW5EYXRhYmFzZSk6CisgICAgICAgICogTW9k
dWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFz
ZTo6RGF0YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2U6OnJ1blRyYW5zYWN0aW9u
KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlQXV0aG9yaXplci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZUF1dGhvcml6ZXI6OmFkZEFsbG93ZWRGdW5jdGlv
bnMpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6dHJhY2tlckRhdGFiYXNlUGF0aCBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZVRyYWNrZXI6Om9wZW5UcmFja2VyRGF0
YWJhc2UpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvU1FMU3RhdGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNRTFN0YXRlbWVudDo6ZXhlY3V0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpTUUxTdGF0ZW1lbnQ6OnNldERhdGFiYXNlRGVsZXRlZEVycm9yKToKKyAgICAgICAgKFdl
YkNvcmU6OlNRTFN0YXRlbWVudDo6c2V0VmVyc2lvbk1pc21hdGNoZWRFcnJvcik6CisgICAgICAg
IChXZWJDb3JlOjpTUUxTdGF0ZW1lbnQ6OnNldEZhaWx1cmVEdWVUb1F1b3RhKToKKyAgICAgICAg
KiBNb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNRTFRyYW5zYWN0aW9uOjpjYWxsRXJyb3JDYWxsYmFja0R1ZVRvSW50ZXJydXB0aW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OlNRTFRyYW5zYWN0aW9uOjpvcGVuVHJhbnNhY3Rpb25BbmRQcmVm
bGlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6U1FMVHJhbnNhY3Rpb246OmRlbGl2ZXJUcmFuc2Fj
dGlvbkNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlNRTFRyYW5zYWN0aW9uOjpkZWxpdmVy
U3RhdGVtZW50Q2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6U1FMVHJhbnNhY3Rpb246Omhh
bmRsZUN1cnJlbnRTdGF0ZW1lbnRFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpTUUxUcmFuc2Fj
dGlvbjo6cG9zdGZsaWdodEFuZENvbW1pdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRz
L1dlYlNvY2tldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXQ6OnN1YnByb3RvY29s
U2VwYXJhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldDo6Y2xvc2UpOgorICAgICAg
ICAoV2ViQ29yZTo6V2ViU29ja2V0OjpzdXNwZW5kKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNv
Y2tldHMvV2ViU29ja2V0Lmg6CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tl
dENoYW5uZWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6ZGlkT3Bl
blNvY2tldFN0cmVhbSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsOjpkaWRS
ZWNlaXZlU29ja2V0U3RyZWFtRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFu
bmVsOjpwcm9jZXNzRnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6
cHJvY2Vzc091dGdvaW5nRnJhbWVRdWV1ZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRz
L1dlYlNvY2tldERlZmxhdGVGcmFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0
RXh0ZW5zaW9uRGVmbGF0ZUZyYW1lOjpwcm9jZXNzUmVzcG9uc2UpOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViU29ja2V0RGVmbGF0ZUZyYW1lcjo6ZGVmbGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJTb2NrZXREZWZsYXRlRnJhbWVyOjppbmZsYXRlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNv
Y2tldHMvV2ViU29ja2V0RXh0ZW5zaW9uRGlzcGF0Y2hlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJTb2NrZXRFeHRlbnNpb25EaXNwYXRjaGVyOjpwcm9jZXNzSGVhZGVyVmFsdWUpOgorICAg
ICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRGcmFtZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJTb2NrZXRGcmFtZTo6cGFyc2VGcmFtZSk6CisgICAgICAgICogTW9kdWxlcy93
ZWJ4ci9XZWJYUldlYkdMTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlT3BhcXVl
RnJhbWVidWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJXZWJHTExheWVyOjpjcmVhdGUp
OgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQVhJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpBWEltYWdlOjppbWFnZU92ZXJsYXlFbGVtZW50cyk6CisgICAgICAgICogYWNjZXNzaWJpbGl0
eS9BWExvZ2dlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBWExvZ2dlcjo6QVhMb2dnZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6QVhMb2dnZXI6OmxvZyk6CisgICAgICAgIChXZWJDb3JlOjpvcGVy
YXRvcjw8KToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYTG9nZ2VyLmg6CisgICAgICAgICog
YWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFYT2Jq
ZWN0Q2FjaGU6OmlzTW9kYWxFbGVtZW50IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0
ZUZyb21SZW5kZXJlcik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpyZW1vdmUp
OgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6dGV4dENoYW5nZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6aGFuZGxlTWVudU9wZW5lZCk6CisgICAgICAgIChX
ZWJDb3JlOjpBWE9iamVjdENhY2hlOjpub3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1l
ckZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRp
b24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6aGFuZGxlTWVudUl0ZW1TZWxl
Y3RlZCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpzZWxlY3RlZFN0YXRlQ2hh
bmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hh
bmdlTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmhhbmRs
ZU1vZGFsQ2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBlcmZvcm1E
ZWZlcnJlZENhY2hlVXBkYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnVw
ZGF0ZUlzb2xhdGVkVHJlZSk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
Tm9kZU9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Tm9kZU9iamVj
dDo6ZGV0ZXJtaW5lQWNjZXNzaWJpbGl0eVJvbGUpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5
T2JqZWN0OjpyZWFkT25seVZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2li
aWxpdHlPYmplY3Q6OmF1dG9Db21wbGV0ZVZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmN1cnJlbnRWYWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjpyZXBsYWNlVGV4dEluUmFuZ2UpOgorICAgICAgICAo
V2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6Y29tcHV0ZWRSb2xlU3RyaW5nIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6Om5vZGVIYXNQcmVzZW50YXRpb25Sb2xlKToKKyAgICAgICAgKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnJlc29sdmVkRWRpdGluZ1N0eWxlcyBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Ojppc1JhZGlvQnV0dG9uSW5EaWZmZXJl
bnRBZGhvY0dyb3VwKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHk6OmZpbmRNYXRj
aGluZ09iamVjdHMpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVj
dEludGVyZmFjZS5oOgorICAgICAgICAoV2ViQ29yZTo6YWNjZXNzaWJpbGl0eVJvbGVUb1N0cmlu
Zyk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnJlbmRlck9i
amVjdElzT2JzZXJ2YWJsZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0OjpkZXRlcm1pbmVBY2Nlc3NpYmlsaXR5Um9sZSk6CisgICAgICAgIChXZWJD
b3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojp1cGRhdGVSb2xlQWZ0ZXJDaGlsZHJlbkNy
ZWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6Omxp
dmVSZWdpb25SZWxldmFudCBjb25zdCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5VGFibGVDZWxsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlUYWJs
ZUNlbGw6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkIGNvbnN0KToKKyAgICAgICAgKiBh
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUcmVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFj
Y2Vzc2liaWxpdHlUcmVlOjpub2RlSGFzVHJlZUl0ZW1DaGlsZCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpBY2Nlc3NpYmlsaXR5VHJlZTo6aXNUcmVlVmFsaWQgY29uc3QpOgorICAgICAgICAq
IGFjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6QVhJc29sYXRlZE9iamVjdDo6aW5pdGlhbGl6ZUF0dHJpYnV0ZURhdGEpOgor
ICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZE9iamVjdDo6Y2xhc3NMaXN0IGNvbnN0KToKKyAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkVHJlZTo6QVhJc29sYXRlZFRyZWUpOgorICAgICAg
ICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6On5BWElzb2xhdGVkVHJlZSk6CisgICAgICAgIChX
ZWJDb3JlOjpBWElzb2xhdGVkVHJlZTo6Y2xlYXIpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29s
YXRlZFRyZWU6OnRyZWVGb3JJRCk6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkVHJlZTo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjpyZW1vdmVUcmVlRm9y
UGFnZUlEKToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjpvYmplY3RzRm9ySURz
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjpnZW5lcmF0ZVN1YnRy
ZWUpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OmNvbGxlY3ROb2RlQ2hhbmdl
c0ZvclN1YnRyZWUpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OnVwZGF0ZU5v
ZGUpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OnVwZGF0ZU5vZGVQcm9wZXJ0
eSk6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkVHJlZTo6dXBkYXRlQ2hpbGRyZW4pOgor
ICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OmZvY3VzZWROb2RlKToKKyAgICAgICAg
KFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjpyb290Tm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpB
WElzb2xhdGVkVHJlZTo6c2V0Um9vdE5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRl
ZFRyZWU6OnNldEZvY3VzZWROb2RlSUQpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRy
ZWU6OnVwZGF0ZUxvYWRpbmdQcm9ncmVzcyk6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVk
VHJlZTo6cmVtb3ZlTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkVHJlZTo6cmVt
b3ZlU3VidHJlZUZyb21Ob2RlTWFwKToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVl
OjphcHBseVBlbmRpbmdDaGFuZ2VzKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9BY2Nl
c3NpYmlsaXR5T2JqZWN0TWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9i
amVjdDo6c3Vicm9sZVBsYXRmb3JtU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFj
Y2Vzc2liaWxpdHlPYmplY3Q6OnJvbGVQbGF0Zm9ybURlc2NyaXB0aW9uIGNvbnN0KToKKyAgICAg
ICAgKiBhbmltYXRpb24vQW5pbWF0aW9uRWZmZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFu
aW1hdGlvbkVmZmVjdDo6Z2V0VGltaW5nIGNvbnN0KToKKyAgICAgICAgKiBhbmltYXRpb24vRG9j
dW1lbnRUaW1lbGluZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFRpbWVsaW5lOjph
bmltYXRlKToKKyAgICAgICAgKiBhbmltYXRpb24vRWZmZWN0VGltaW5nLmg6CisgICAgICAgICog
YW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OktleWZyYW1l
RWZmZWN0OjpDU1NQcm9wZXJ0eUlEVG9JRExBdHRyaWJ1dGVOYW1lKToKKyAgICAgICAgKFdlYkNv
cmU6OktleWZyYW1lRWZmZWN0OjpnZXRLZXlmcmFtZXMpOgorICAgICAgICAqIGJpbmRpbmdzL2pz
L0dDQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHQ0NvbnRyb2xsZXI6OkdDQ29u
dHJvbGxlcik6CisgICAgICAgICogYmluZGluZ3MvanMvSlNDdXN0b21FbGVtZW50SW50ZXJmYWNl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTQ3VzdG9tRWxlbWVudEludGVyZmFjZTo6dXBncmFk
ZUVsZW1lbnQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NQ29udmVydE51bWJlcnMuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkNvbnZlcnRlcjxJRExGbG9hdD46OmNvbnZlcnQpOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTRXhlY1N0YXRlSW5zdHJ1bWVudGF0aW9uLmg6CisgICAgICAgIChX
ZWJDb3JlOjpKU0V4ZWNTdGF0ZTo6aW5zdHJ1bWVudEZ1bmN0aW9uKToKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENv
bnRyb2xsZXI6OmNhbGxJbldvcmxkKToKKyAgICAgICAgKiBicmlkZ2Uvb2JqYy9vYmpjX3J1bnRp
bWUubW06CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpPYmpjQXJyYXk6OnNldFZhbHVlQXQgY29u
c3QpOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6T2JqY0FycmF5Ojp2YWx1ZUF0IGNvbnN0KToK
KyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9hcnJheS5jcHA6CisgICAgICAgIChKU0M6OlJ1bnRp
bWVBcnJheTo6cHV0KToKKyAgICAgICAgKEpTQzo6UnVudGltZUFycmF5OjpwdXRCeUluZGV4KToK
KyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9vYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpCaW5k
aW5nczo6dGhyb3dSdW50aW1lT2JqZWN0SW52YWxpZEFjY2Vzc0Vycm9yKToKKyAgICAgICAgKiBj
b250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uQWN0aW9ucy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6TW9kaWZ5SGVhZGVyc0FjdGlvbjo6TW9kaWZ5SGVh
ZGVySW5mbzo6cGFyc2UpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OlJl
ZGlyZWN0QWN0aW9uOjpwYXJzZSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9u
czo6UmVkaXJlY3RBY3Rpb246OlVSTFRyYW5zZm9ybUFjdGlvbjo6cGFyc2UpOgorICAgICAgICAo
V2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OlJlZGlyZWN0QWN0aW9uOjpVUkxUcmFuc2Zvcm1B
Y3Rpb246OlF1ZXJ5VHJhbnNmb3JtOjpwYXJzZSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50
RXh0ZW5zaW9uczo6UmVkaXJlY3RBY3Rpb246OlVSTFRyYW5zZm9ybUFjdGlvbjo6UXVlcnlUcmFu
c2Zvcm06OlF1ZXJ5S2V5VmFsdWU6OnBhcnNlKToKKyAgICAgICAgKiBjb250ZW50ZXh0ZW5zaW9u
cy9Db250ZW50RXh0ZW5zaW9uQ29tcGlsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVu
dEV4dGVuc2lvbnM6OmNvbXBpbGVSdWxlTGlzdCk6CisgICAgICAgICogY29udGVudGV4dGVuc2lv
bnMvQ29udGVudEV4dGVuc2lvblBhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50
RXh0ZW5zaW9uczo6Z2V0RG9tYWluTGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0
ZW5zaW9uczo6bG9hZFRyaWdnZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lv
bnM6OmxvYWRBY3Rpb24pOgorICAgICAgICAqIGNvbnRlbnRleHRlbnNpb25zL1NlcmlhbGl6ZWRO
RkEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OlNlcmlhbGl6ZWRO
RkE6OnNlcmlhbGl6ZSk6CisgICAgICAgICogY29udGVudGV4dGVuc2lvbnMvVVJMRmlsdGVyUGFy
c2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpVUkxGaWx0ZXJQ
YXJzZXI6OnN0YXR1c1N0cmluZyk6CisgICAgICAgICogY29udGVudGV4dGVuc2lvbnMvVVJMRmls
dGVyUGFyc2VyLmg6CisgICAgICAgICogY3J5cHRvL1N1YnRsZUNyeXB0by5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTdWJ0bGVDcnlwdG86OmFkZEF1dGhlbnRpY2F0ZWRFbmNyeXB0aW9uV2Fybmlu
Z0lmTmVjZXNzYXJ5KToKKyAgICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0
aG1BRVNfQ0JDLmg6CisgICAgICAgICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGht
QUVTX0NGQi5oOgorICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFF
U19DVFIuaDoKKyAgICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNf
R0NNLmg6CisgICAgICAgICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0tX
Lmg6CisgICAgICAgICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtRUNESC5oOgor
ICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUVDRFNBLmg6CisgICAg
ICAgICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtSEtERi5oOgorICAgICAgICAq
IGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUhNQUMuaDoKKyAgICAgICAgKiBjcnlw
dG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1QQktERjIuaDoKKyAgICAgICAgKiBjcnlwdG8v
YWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FFU19QS0NTMV92MV81Lmg6CisgICAgICAgICog
Y3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzUuaDoKKyAg
ICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FfT0FFUC5oOgorICAg
ICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQV9QU1MuaDoKKyAgICAg
ICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEExLmg6CisgICAgICAgICog
Y3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMjI0Lmg6CisgICAgICAgICogY3J5
cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMjU2Lmg6CisgICAgICAgICogY3J5cHRv
L2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMzg0Lmg6CisgICAgICAgICogY3J5cHRvL2Fs
Z29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBNTEyLmg6CisgICAgICAgICogY3J5cHRvL2tleXMv
Q3J5cHRvS2V5QUVTLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0tleUFFUzo6ZXhwb3J0
SndrIGNvbnN0KToKKyAgICAgICAgKiBjcnlwdG8va2V5cy9DcnlwdG9LZXlFQy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDcnlwdG9LZXlFQzo6ZXhwb3J0SndrIGNvbnN0KToKKyAgICAgICAgKiBj
cnlwdG8va2V5cy9DcnlwdG9LZXlITUFDLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0tl
eUhNQUM6OmV4cG9ydEp3ayBjb25zdCk6CisgICAgICAgICogY3J5cHRvL2tleXMvQ3J5cHRvS2V5
UlNBLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0tleVJTQTo6ZXhwb3J0SndrIGNvbnN0
KToKKyAgICAgICAgKiBjc3MvQ1NTRm9udEZhY2VTcmNWYWx1ZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDU1NGb250RmFjZVNyY1ZhbHVlOjppc1N1cHBvcnRlZEZvcm1hdCBjb25zdCk6CisgICAg
ICAgICogY3NzL0NTU0dyaWRUZW1wbGF0ZUFyZWFzVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6c3RyaW5nRm9yUG9zaXRpb24pOgorICAgICAgICAqIGNzcy9DU1NQcmltaXRpdmVWYWx1ZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6dW5pdFR5cGVTdHJpbmcp
OgorICAgICAgICAqIGNzcy9DU1NTdWJncmlkVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTU3ViZ3JpZFZhbHVlOjpjdXN0b21DU1NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvRE9N
Q1NTTmFtZXNwYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnZhbHVlV2l0aG91dEltcG9ydGFu
dCk6CisgICAgICAgICogY3NzL0RPTUNTU1JlZ2lzdGVyQ3VzdG9tUHJvcGVydHkuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RE9NQ1NTUmVnaXN0ZXJDdXN0b21Qcm9wZXJ0eTo6cmVnaXN0ZXJQcm9w
ZXJ0eSk6CisgICAgICAgICogY3NzL0RlcHJlY2F0ZWRDU1NPTVZhbHVlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkRlcHJlY2F0ZWRDU1NPTVZhbHVlOjpjc3NUZXh0IGNvbnN0KToKKyAgICAgICAg
KiBjc3MvRm9udEZhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udEZhY2U6OnVuaWNvZGVS
YW5nZSBjb25zdCk6CisgICAgICAgICogY3NzL01lZGlhUXVlcnlFeHByZXNzaW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlFeHByZXNzaW9uOjpzZXJpYWxpemUgY29uc3QpOgor
ICAgICAgICAqIGNzcy9TdHlsZVByb3BlcnRpZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5
bGVQcm9wZXJ0aWVzOjpnZXRMYXllcmVkU2hvcnRoYW5kVmFsdWUgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6TXV0YWJsZVN0eWxlUHJvcGVydGllczo6c2V0Q3VzdG9tUHJvcGVydHkpOgorICAg
ICAgICAqIGNzcy9tYWtldmFsdWVzLnBsOgorICAgICAgICAqIGNzcy9wYXJzZXIvTWVkaWFRdWVy
eVBhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5UGFyc2VyOjpza2lwVW50
aWxDb21tYSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5UGFyc2VyOjpwYXJzZUludGVy
bmFsKToKKyAgICAgICAgKiBjc3MvcGFyc2VyL1NpemVzQXR0cmlidXRlUGFyc2VyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNpemVzQXR0cmlidXRlUGFyc2VyOjptZWRpYUNvbmRpdGlvbk1hdGNo
ZXMpOgorICAgICAgICAqIGNzcy90eXBlZG9tL0NTU051bWVyaWNGYWN0b3J5Lmg6CisgICAgICAg
ICogY3NzL3R5cGVkb20vQ1NTTnVtZXJpY1ZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNT
U051bWVyaWNWYWx1ZTo6bXVsdGlwbHlJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NO
dW1lcmljVmFsdWU6OnRvKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU051bWVyaWNWYWx1ZTo6cGFy
c2UpOgorICAgICAgICAqIGNzcy90eXBlZG9tL0NTU1N0eWxlVmFsdWVGYWN0b3J5LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlVmFsdWVGYWN0b3J5OjpyZWlmeVZhbHVlKToKKyAgICAg
ICAgKiBlZGl0aW5nL2NvY29hL0hUTUxDb252ZXJ0ZXIubW06CisgICAgICAgIChIVE1MQ29udmVy
dGVyQ2FjaGVzOjpwcm9wZXJ0eVZhbHVlRm9yTm9kZSk6CisgICAgICAgIChIVE1MQ29udmVydGVy
OjpfcHJvY2Vzc0VsZW1lbnQpOgorICAgICAgICAqIGVkaXRpbmcvY29jb2EvV2ViQ29udGVudFJl
YWRlckNvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6YXR0YWNobWVudEZvckRhdGEpOgorICAg
ICAgICAqIGxvYWRlci9jb2NvYS9CdW5kbGVSZXNvdXJjZUxvYWRlci5tbToKKyAgICAgICAgKFdl
YkNvcmU6OkJ1bmRsZVJlc291cmNlTG9hZGVyOjpsb2FkUmVzb3VyY2VGcm9tQnVuZGxlKToKKyAg
ICAgICAgKiBsb2FkZXIvbWFjL0xvYWRlck5TVVJMRXh0cmFzLm1tOgorICAgICAgICAoc3VnZ2Vz
dGVkRmlsZW5hbWVXaXRoTUlNRVR5cGUpOgorICAgICAgICAqIHBhZ2UvY29jb2EvUmVzb3VyY2VV
c2FnZU92ZXJsYXlDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6Okhpc3RvcmljUmVzb3VyY2VV
c2FnZURhdGE6Okhpc3RvcmljUmVzb3VyY2VVc2FnZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6
ZHJhd0NwdUhpc3RvcnkpOgorICAgICAgICAoV2ViQ29yZTo6ZHJhd0dDSGlzdG9yeSk6CisgICAg
ICAgIChXZWJDb3JlOjpkcmF3TWVtSGlzdG9yeSk6CisgICAgICAgICogcGFnZS9jb2NvYS9TZXR0
aW5nc0Jhc2VDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzQmFzZTo6aW5pdGlh
bGl6ZURlZmF1bHRGb250RmFtaWxpZXMpOgorICAgICAgICAqIHBhZ2UvbWFjL1BhZ2VNYWMubW06
CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpwbGF0Zm9ybUluaXRpYWxpemUpOgorICAgICAgICAq
IHBsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QVhBUklB
Q29udGVudEdyb3VwVGV4dCk6CisgICAgICAgICogcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5o
OgorICAgICAgICAqIHBsYXRmb3JtL1Bhc3RlYm9hcmQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9Q
YXN0ZWJvYXJkQ3VzdG9tRGF0YS5oOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL2NvY29hL01l
ZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lv
bk1hbmFnZXJDb2NvYTo6dXBkYXRlTm93UGxheWluZ0luZm8pOgorICAgICAgICAqIHBsYXRmb3Jt
L2NvY29hL0tleUV2ZW50Q29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjprZXlJZGVudGlmaWVy
Rm9yQ2hhckNvZGUpOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL1Bhc3RlYm9hcmRDb2NvYS5t
bToKKyAgICAgICAgKFdlYkNvcmU6OmltYWdlVHlwZVRvRmFrZUZpbGVuYW1lKToKKyAgICAgICAg
KFdlYkNvcmU6OlBhc3RlYm9hcmQ6OnJlYWQpOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL1Bh
c3RlYm9hcmRDdXN0b21EYXRhQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJk
Q3VzdG9tRGF0YTo6Y29jb2FUeXBlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb3Vy
Q0MuaDoKKyAgICAgICAgKFdURjo6TG9nQXJndW1lbnQ8V2ViQ29yZTo6Rm91ckNDPjo6dG9TdHJp
bmcpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dEdM
QU5HTEUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6dmFs
aWRhdGVEZXB0aFN0ZW5jaWwpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9DRE1Qcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6
Q0RNUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6cGFyc2VLZXlTeXN0ZW0pOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9D
RE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6
OkNETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDOjpzZXRTdG9yYWdlRGlyZWN0b3J5
KToKKyAgICAgICAgKFdlYkNvcmU6OkNETUluc3RhbmNlU2Vzc2lvbkZhaXJQbGF5U3RyZWFtaW5n
QVZGT2JqQzo6dXBkYXRlTGljZW5zZSk6CisgICAgICAgIChXZWJDb3JlOjpDRE1JbnN0YW5jZVNl
c3Npb25GYWlyUGxheVN0cmVhbWluZ0FWRk9iakM6OmRpZFByb3ZpZGVSZXF1ZXN0cyk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbk1lZGlh
U291cmNlQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkNETVNlc3Npb25NZWRpYVNvdXJj
ZUFWRk9iakM6OnN0b3JhZ2VQYXRoIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMu
bW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9i
akM6OnN0cmVhbVNlc3Npb24pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29y
ZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmRpZFByb3ZpZGVDb250ZW50S2V5UmVxdWVz
dEluaXRpYWxpemF0aW9uRGF0YUZvclRyYWNrSUQpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9E
YXRhRGV0ZWN0b3JIaWdobGlnaHQubW06CisgICAgICAgIChXZWJDb3JlOjpEYXRhRGV0ZWN0b3JI
aWdobGlnaHQ6OmZhZGVJbik6CisgICAgICAgIChXZWJDb3JlOjpEYXRhRGV0ZWN0b3JIaWdobGln
aHQ6OmZhZGVPdXQpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tOgor
ICAgICAgICAqIHBsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbToKKyAgICAg
ICAgKFdlYkNvcmU6OmtleUlkZW50aWZpZXJGb3JLZXlFdmVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpQbGF0Zm9ybUtleWJvYXJkRXZlbnRCdWlsZGVyOjpQbGF0Zm9ybUtleWJvYXJkRXZlbnRCdWls
ZGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvUGxhdGZvcm1QYXN0ZWJvYXJkTWFjLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1QYXN0ZWJvYXJkOjp0eXBlc1NhZmVGb3JET01Ub1Jl
YWRBbmRXcml0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVBhc3RlYm9hcmQ6
OndyaXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVBhc3RlYm9hcmRJdGVtKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tYWMvU3RyaW5nVXRpbGl0aWVzLm1tOgorICAgICAgICAoV2ViQ29yZTo6
d2lsZGNhcmRSZWdleFBhdHRlcm5TdHJpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9UaHJl
YWRDaGVjay5tbToKKyAgICAgICAgKFdlYkNvcmVSZXBvcnRUaHJlYWRWaW9sYXRpb24pOgorICAg
ICAgICAqIHBsYXRmb3JtL21hYy9Vc2VyQWdlbnRNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpz
dGFuZGFyZFVzZXJBZ2VudFdpdGhBcHBsaWNhdGlvbk5hbWUpOgorICAgICAgICAqIHBsYXRmb3Jt
L25ldHdvcmsvUmVzb3VyY2VFcnJvckJhc2UuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdv
cmsvUmVzb3VyY2VFcnJvckJhc2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NvY29h
L1JhbmdlUmVzcG9uc2VHZW5lcmF0b3IubW06CisgICAgICAgIChXZWJDb3JlOjpzeW50aGVzaXpl
ZFJlc3BvbnNlRm9yUmFuZ2UpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5t
bToKKyAgICAgICAgKFdlYkNvcmU6Omljb25Gb3JBdHRhY2htZW50KToKKyAgICAgICAgKiByZW5k
ZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
b3BlcmF0b3I8PCk6CisgICAgICAgICogc3ZnL1NWR0ZpbHRlckVsZW1lbnQuaDoKKyAgICAgICAg
KiBzdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmg6CisgICAgICAgICog
c3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdNYXJrZXJF
bGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR01hc2tFbGVtZW50Lmg6CisgICAgICAgICogc3Zn
L1NWR1BhdGhTZWdJbXBsLmg6CisgICAgICAgICogc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVu
dC5oOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5VHJhaXRzLmg6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxib29sPjo6dG9TdHJpbmcpOgorICAgICAg
ICAqIHRlc3RpbmcvTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5ncy5oOgorICAgICAgICAoV2ViQ29y
ZTo6TW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5nczo6dW5ibG9ja1VSTEhvc3QpOgorICAgICAgICAq
IHhtbC9YUGF0aFZhbHVlLmg6CisgICAgICAgIChXZWJDb3JlOjpYUGF0aDo6VmFsdWU6OlZhbHVl
KToKKyAgICAgICAgKiB4bWwvWFNMU3R5bGVTaGVldC5oOgorCiAyMDIyLTAzLTI0ICBDaHJpcyBE
dW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgU3RyaW5nJ3MgZmluZCgpIC8gcmV2
ZXJzZUZpbmQoKSAvIHJlcGxhY2UoKSBzaG91bGQgdGFrZSBpbiBhIFN0cmluZ1ZpZXcgaW5zdGVh
ZCBvZiBhIFN0cmluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkdQVS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViR1BVL0NoYW5nZUxvZwppbmRleCAzZWRmMDMyN2VhM2Q5MGZhNWI1NThkZDU4OWNmYWMy
YWE1MGViNDFlLi4xYmY2MmY5MDc5YjQxNzcxN2VhYjBkNDJiOTgxYTYwOGRmMWMzZWM2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViR1BVL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViR1BVL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDIyLTAzLTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBh
cHBsZS5jb20+CisKKyAgICAgICAgU3RhcnQgcHJlcGFyaW5nIFdlYkNvcmUgZm9yIG1ha2luZyB0
aGUgU3RyaW5nKGNvbnN0IGNoYXIqKSBjb25zdHJ1Y3RvciBleHBsaWNpdAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4MzM2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3RhcnQgcHJlcGFyaW5nIFdlYkNv
cmUgZm9yIG1ha2luZyB0aGUgU3RyaW5nKGNvbnN0IGNoYXIqKSBjb25zdHJ1Y3RvciBleHBsaWNp
dC4KKyAgICAgICAgTWFraW5nIHRoaXMgY29uc3RydWN0b3IgZXhwbGljaXQgaGVscHMgY2F0Y2gg
YXQgY29tcGlsZSB0aW1lIGNhc2VzIHdoZXJlIHRoZSAiIl9zCisgICAgICAgIHByZWZpeCBpcyBt
aXNzaW5nIG9uIFN0cmluZyBsaXRlcmFscy4KKworICAgICAgICAqIFdHU0wvUGFyc2VyLmNwcDoK
KyAgICAgICAgKFdHU0w6OlBhcnNlcjxMZXhlcj46OnBhcnNlR2xvYmFsRGVjbCk6CisgICAgICAg
IChXR1NMOjpQYXJzZXI8TGV4ZXI+OjpwYXJzZUF0dHJpYnV0ZSk6CisgICAgICAgIChXR1NMOjpQ
YXJzZXI8TGV4ZXI+OjpwYXJzZVR5cGVEZWNsKToKKyAgICAgICAgKFdHU0w6OlBhcnNlcjxMZXhl
cj46OnBhcnNlU3RvcmFnZUNsYXNzKToKKyAgICAgICAgKFdHU0w6OlBhcnNlcjxMZXhlcj46OnBh
cnNlQWNjZXNzTW9kZSk6CisgICAgICAgIChXR1NMOjpQYXJzZXI8TGV4ZXI+OjpwYXJzZVN0YXRl
bWVudCk6CisgICAgICAgIChXR1NMOjpQYXJzZXI8TGV4ZXI+OjpwYXJzZVByaW1hcnlFeHByZXNz
aW9uKToKKyAgICAgICAgKFdHU0w6OlBhcnNlcjxMZXhlcj46OnBhcnNlQ29yZUxIU0V4cHJlc3Np
b24pOgorICAgICAgICAqIFdHU0wvVG9rZW4uY3BwOgorICAgICAgICAoV0dTTDo6dG9TdHJpbmcp
OgorICAgICAgICAqIFdlYkdQVS9BZGFwdGVyLm1tOgorICAgICAgICAoV2ViR1BVOjpBZGFwdGVy
OjpyZXF1ZXN0RGV2aWNlKToKKyAgICAgICAgKiBXZWJHUFUvQnVmZmVyLm1tOgorICAgICAgICAo
V2ViR1BVOjpCdWZmZXI6Om1hcEFzeW5jKToKKyAgICAgICAgKFdlYkdQVTo6QnVmZmVyOjp1bm1h
cCk6CisgICAgICAgICogV2ViR1BVL0NvbW1hbmRFbmNvZGVyLm1tOgorICAgICAgICAoV2ViR1BV
OjpDb21tYW5kRW5jb2Rlcjo6Y29weUJ1ZmZlclRvQnVmZmVyKToKKyAgICAgICAgKFdlYkdQVTo6
Q29tbWFuZEVuY29kZXI6OmNsZWFyQnVmZmVyKToKKyAgICAgICAgKFdlYkdQVTo6Q29tbWFuZEVu
Y29kZXI6OmZpbmlzaCk6CisgICAgICAgICogV2ViR1BVL0NvbXB1dGVQaXBlbGluZS5tbToKKyAg
ICAgICAgKFdlYkdQVTo6Y3JlYXRlQ29uc3RhbnRWYWx1ZXMpOgorICAgICAgICAoV2ViR1BVOjpE
ZXZpY2U6OmNyZWF0ZUNvbXB1dGVQaXBlbGluZSk6CisgICAgICAgICogV2ViR1BVL1F1ZXVlLm1t
OgorICAgICAgICAoV2ViR1BVOjpRdWV1ZTo6c3VibWl0KToKKyAgICAgICAgKiBXZWJHUFUvU2Ft
cGxlci5tbToKKyAgICAgICAgKFdlYkdQVTo6RGV2aWNlOjpjcmVhdGVTYW1wbGVyKToKKyAgICAg
ICAgKiBXZWJHUFUvU2hhZGVyTW9kdWxlLm1tOgorICAgICAgICAoV2ViR1BVOjplYXJseUNvbXBp
bGVTaGFkZXJNb2R1bGUpOgorCiAyMDIyLTAzLTIzICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhm
aWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYkdQVV0gRml4IHRoZSBub24tbWFjT1MgYnVp
bGQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKaW5kZXggYjk0YzNhZmE3MjQzY2YxY2FkZTgxMDVhNjZkZmQzN2Y5ZDE2ODdkMy4u
NWMzZGY0NjFjN2M3YjYxZDY4ZDM4MTYyMjdjNDA1NzNlMWU0ZmI0MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOCBAQAorMjAyMi0wMy0yNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFN0YXJ0IHByZXBhcmluZyBXZWJDb3JlIGZvciBtYWtpbmcgdGhlIFN0cmluZyhj
b25zdCBjaGFyKikgY29uc3RydWN0b3IgZXhwbGljaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODMzNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0YXJ0IHByZXBhcmluZyBXZWJDb3JlIGZvciBtYWtp
bmcgdGhlIFN0cmluZyhjb25zdCBjaGFyKikgY29uc3RydWN0b3IgZXhwbGljaXQuCisgICAgICAg
IE1ha2luZyB0aGlzIGNvbnN0cnVjdG9yIGV4cGxpY2l0IGhlbHBzIGNhdGNoIGF0IGNvbXBpbGUg
dGltZSBjYXNlcyB3aGVyZSB0aGUgIiJfcworICAgICAgICBwcmVmaXggaXMgbWlzc2luZyBvbiBT
dHJpbmcgbGl0ZXJhbHMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwu
bW06CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZXRQcm9taXNlZERhdGFGb3JJbWFn
ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpyZXF1ZXN0RE9NUGFzdGVBY2Nlc3Mp
OgorCiAyMDIyLTAzLTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAg
ICAgU3RyaW5nJ3MgZmluZCgpIC8gcmV2ZXJzZUZpbmQoKSAvIHJlcGxhY2UoKSBzaG91bGQgdGFr
ZSBpbiBhIFN0cmluZ1ZpZXcgaW5zdGVhZCBvZiBhIFN0cmluZwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hh
bmdlTG9nCmluZGV4IGE0YzgxYjUyNDU3ZDk4NzVkMjgwZjc1MGQyNTczNWVlZTY3MGM2OGIuLjM4
MmQ0ZWMyYjM0YmQ2YzdjNjI0NDI3ZmU4ZjM0NTM3YTUwN2UxYzMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMi0wMy0yNCAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFN0YXJ0IHByZXBhcmluZyBXZWJDb3JlIGZvciBt
YWtpbmcgdGhlIFN0cmluZyhjb25zdCBjaGFyKikgY29uc3RydWN0b3IgZXhwbGljaXQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODMzNgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0YXJ0IHByZXBhcmlu
ZyBXZWJDb3JlIGZvciBtYWtpbmcgdGhlIFN0cmluZyhjb25zdCBjaGFyKikgY29uc3RydWN0b3Ig
ZXhwbGljaXQuCisgICAgICAgIE1ha2luZyB0aGlzIGNvbnN0cnVjdG9yIGV4cGxpY2l0IGhlbHBz
IGNhdGNoIGF0IGNvbXBpbGUgdGltZSBjYXNlcyB3aGVyZSB0aGUgIiJfcworICAgICAgICBwcmVm
aXggaXMgbWlzc2luZyBvbiBTdHJpbmcgbGl0ZXJhbHMuCisKKyAgICAgICAgKiBNaXNjL1dlYk5T
UGFzdGVib2FyZEV4dHJhcy5tbToKKyAgICAgICAgKC1bTlNQYXN0ZWJvYXJkIF93ZWJfZGVjbGFy
ZUFuZFdyaXRlRHJhZ0ltYWdlRm9yRWxlbWVudDpVUkw6dGl0bGU6YXJjaGl2ZTpzb3VyY2U6XSk6
CisKIDIwMjItMDMtMTggIEpvbmF0aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBwbGUuY29tPgogCiAg
ICAgICAgIFtpT1MgMTUuNF0gRml4IHVudXNlZCB2YXJpYWJsZXMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWYWx1ZS5tbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvSlNWYWx1ZS5tbQppbmRleCBkM2FkMDgwZTFkZGY0ZmU2ZWZiYTkxMzViYTI2ODc2Yzc3ZGNi
YzI2Li5mMTJhMmM0OTUzZjAwMzJkZmI0YjcyZjY4ZmY4MGZlZGRiNjkwMzU0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmFsdWUubW0KKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9KU1ZhbHVlLm1tCkBAIC0xMTc5LDcgKzExNzksNyBAQCBzdGF0aWMgU3Ry
dWN0SGFuZGxlcnMqIGNyZWF0ZVN0cnVjdEhhbmRsZXJNYXAoKQogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICAvLyBUcnkgdG8gZmluZCBhIG1hdGNoaW5nIHZhbHVlV2l0aDxGb28+OmNvbnRl
eHQ6IG1ldGhvZC4KICAgICAgICAgYXV0byB0eXBlID0gYWRvcHRTeXN0ZW08Y2hhcltdPihtZXRo
b2RfY29weVJldHVyblR5cGUobWV0aG9kKSk7Ci0gICAgICAgIFN0cnVjdEhhbmRsZXJzOjppdGVy
YXRvciBpdGVyID0gc3RydWN0SGFuZGxlcnMtPmZpbmQodHlwZS5nZXQoKSk7CisgICAgICAgIFN0
cnVjdEhhbmRsZXJzOjppdGVyYXRvciBpdGVyID0gc3RydWN0SGFuZGxlcnMtPmZpbmQoU3RyaW5n
IHsgdHlwZS5nZXQoKSB9KTsKICAgICAgICAgaWYgKGl0ZXIgPT0gc3RydWN0SGFuZGxlcnMtPmVu
ZCgpKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBTdHJ1Y3RUYWdIYW5kbGVyJiBoYW5k
bGVyID0gaXRlci0+dmFsdWU7CkBAIC0xMjE3LDcgKzEyMTcsNyBAQCBzdGF0aWMgU3RydWN0VGFn
SGFuZGxlciogaGFuZGVyRm9yU3RydWN0VGFnKGNvbnN0IGNoYXIqIGVuY29kZWRUeXBlKQogCiAg
ICAgc3RhdGljIFN0cnVjdEhhbmRsZXJzKiBzdHJ1Y3RIYW5kbGVycyA9IGNyZWF0ZVN0cnVjdEhh
bmRsZXJNYXAoKTsKIAotICAgIFN0cnVjdEhhbmRsZXJzOjppdGVyYXRvciBpdGVyID0gc3RydWN0
SGFuZGxlcnMtPmZpbmQoZW5jb2RlZFR5cGUpOworICAgIFN0cnVjdEhhbmRsZXJzOjppdGVyYXRv
ciBpdGVyID0gc3RydWN0SGFuZGxlcnMtPmZpbmQoU3RyaW5nIHsgZW5jb2RlZFR5cGUgfSk7CiAg
ICAgaWYgKGl0ZXIgPT0gc3RydWN0SGFuZGxlcnMtPmVuZCgpKQogICAgICAgICByZXR1cm4gMDsK
ICAgICByZXR1cm4gJml0ZXItPnZhbHVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS9KU1dyYXBwZXJNYXAubW0gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTV3Jh
cHBlck1hcC5tbQppbmRleCA5NmU0NDc4ODcwY2Q4MWE1ODk5N2QwMmRhNmZhNGZiYTM0NmFmMTk1
Li5mODIxZGY4ZTNlYmVkNTdmNTQwY2QyZjAxZDY0ZWM5NmRjZmE4NmNkIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTV3JhcHBlck1hcC5tbQorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL0pTV3JhcHBlck1hcC5tbQpAQCAtNDUxLDcgKzQ1MSw3IEBAIHN0YXRp
YyBKU0M6OkpTT2JqZWN0KiBhbGxvY2F0ZUNvbnN0cnVjdG9yRm9yQ3VzdG9tQ2xhc3MoSlNDb250
ZXh0ICpjb250ZXh0LCBjb25zCiAgICAgICAgIGZvckVhY2hNZXRob2RJbkNsYXNzKGN1cnJlbnRD
bGFzcywgXihNZXRob2QgbWV0aG9kKSB7CiAgICAgICAgICAgICBTRUwgc2VsZWN0b3IgPSBtZXRo
b2RfZ2V0TmFtZShtZXRob2QpOwogICAgICAgICAgICAgY29uc3QgY2hhciogbmFtZSA9IHNlbF9n
ZXROYW1lKHNlbGVjdG9yKTsKLSAgICAgICAgICAgIGF1dG8gaXRlciA9IGluaXRUYWJsZS5maW5k
KG5hbWUpOworICAgICAgICAgICAgYXV0byBpdGVyID0gaW5pdFRhYmxlLmZpbmQoU3RyaW5nIHsg
bmFtZSB9KTsKIAogICAgICAgICAgICAgaWYgKGl0ZXIgPT0gaW5pdFRhYmxlLmVuZCgpKQogICAg
ICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckF1ZGl0QWdlbnQuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQXVkaXRBZ2VudC5jcHAKaW5kZXggMzBh
Y2FmMzM0NTgwNTM3NGQ4MWRiYjBiMWM1ZDQ5ZmY3YWYwYTZlMS4uYzI4NzczNmQ3MWU3ZWI5ZTg4
NTU4ZmZjZDBiNzA0NTI1YmZmY2Y5NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQXVkaXRBZ2VudC5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQXVkaXRBZ2VudC5jcHAKQEAg
LTkyLDcgKzkyLDcgQEAgUHJvdG9jb2w6OkVycm9yU3RyaW5nT3I8c3RkOjp0dXBsZTxSZWY8UHJv
dG9jb2w6OlJ1bnRpbWU6OlJlbW90ZU9iamVjdD4sIHN0ZDo6b3AKICAgICBpZiAoaW5qZWN0ZWRT
Y3JpcHQuaGFzTm9WYWx1ZSgpKQogICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoZXJyb3JT
dHJpbmcpOwogCi0gICAgYXV0byBmdW5jdGlvblN0cmluZyA9IG1ha2VTdHJpbmcoIihmdW5jdGlv
bihXZWJJbnNwZWN0b3JBdWRpdCkgeyBcInVzZSBzdHJpY3RcIjsgcmV0dXJuIGV2YWwoYCgiLCBT
dHJpbmcgeyB0ZXN0IH0ucmVwbGFjZSgnYCcsICJcXGAiKSwgIilgKShXZWJJbnNwZWN0b3JBdWRp
dCk7IH0pIik7CisgICAgYXV0byBmdW5jdGlvblN0cmluZyA9IG1ha2VTdHJpbmcoIihmdW5jdGlv
bihXZWJJbnNwZWN0b3JBdWRpdCkgeyBcInVzZSBzdHJpY3RcIjsgcmV0dXJuIGV2YWwoYCgiLCBT
dHJpbmcgeyB0ZXN0IH0ucmVwbGFjZSgnYCcsICJcXGAiX3MpLCAiKWApKFdlYkluc3BlY3RvckF1
ZGl0KTsgfSkiKTsKIAogICAgIEluamVjdGVkU2NyaXB0OjpFeGVjdXRlT3B0aW9ucyBvcHRpb25z
OwogICAgIG9wdGlvbnMub2JqZWN0R3JvdXAgPSAiYXVkaXQiX3M7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L1RleHRTdHJlYW0uaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dFN0
cmVhbS5oCmluZGV4IGM4NWRhNjY0MWUxMzE3M2M5NzExNTdiYTRhOTgzYjQ0ZjU0NjViYTUuLmRm
NzEyZWQyMDVmNDc5Nzk3YmI2ZDlmNTA2N2Q2MTQzMTFjNjUwYTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvd3RmL3RleHQvVGV4dFN0cmVhbS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4
dFN0cmVhbS5oCkBAIC0xMDAsNiArMTAwLDE1IEBAIHB1YmxpYzoKICAgICAgICAgdHMuZW5kR3Jv
dXAoKTsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgIHZvaWQgZHVtcFBy
b3BlcnR5KGNvbnN0IGNoYXIqIG5hbWUsIGNvbnN0IFQmIHZhbHVlKQorICAgIHsKKyAgICAgICAg
VGV4dFN0cmVhbSYgdHMgPSAqdGhpczsKKyAgICAgICAgdHMuc3RhcnRHcm91cCgpOworICAgICAg
ICB0cyA8PCBuYW1lIDw8ICIgIiA8PCB2YWx1ZTsKKyAgICAgICAgdHMuZW5kR3JvdXAoKTsKKyAg
ICB9CisKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5nIHJlbGVhc2UoKTsKICAgICAKICAg
ICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBzdGFydEdyb3VwKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5LWFtcy11aS9BcHBsZVBheUFNU1VJUGF5bWVudEhh
bmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS1hbXMtdWkvQXBwbGVQ
YXlBTVNVSVBheW1lbnRIYW5kbGVyLmNwcAppbmRleCBmNGRhZjhkMThhZWM0OTk3NzVkNWMwM2Mw
OGVhYTA0MzI0MTE0M2ZiLi40YTMyMjVjZTljYTQwNmMwMGZlMTY4NDYwYTVkNmQwMzAwNDI4NTU5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5LWFtcy11aS9BcHBs
ZVBheUFNU1VJUGF5bWVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
YXBwbGVwYXktYW1zLXVpL0FwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxlci5jcHAKQEAgLTM5LDcg
KzM5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogc3RhdGljIEV4Y2VwdGlvbk9yPEFwcGxlUGF5
QU1TVUlSZXF1ZXN0PiBjb252ZXJ0QW5kVmFsaWRhdGVBcHBsZVBheUFNU1VJUmVxdWVzdChEb2N1
bWVudCYgZG9jdW1lbnQsIEpTQzo6SlNWYWx1ZSBkYXRhKQogewogICAgIGlmIChkYXRhLmlzRW1w
dHkoKSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIk1pc3NpbmcgcGF5
bWVudCBtZXRob2QgZGF0YS4iIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJy
b3IsICJNaXNzaW5nIHBheW1lbnQgbWV0aG9kIGRhdGEuIl9zIH07CiAKICAgICBhdXRvIHRocm93
U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKGRvY3VtZW50LnZtKCkpOwogICAgIGF1dG8gYXBw
bGVQYXlBTVNVSVJlcXVlc3QgPSBjb252ZXJ0RGljdGlvbmFyeTxBcHBsZVBheUFNU1VJUmVxdWVz
dD4oKmRvY3VtZW50Lmdsb2JhbE9iamVjdCgpLCBkYXRhKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlDb250YWN0RmllbGQuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUNvbnRhY3RGaWVsZC5jcHAKaW5kZXgg
ZGQzZGNiNGVjN2RkNGE2YWYzOTBiZWQ2YzFhN2YyYTE0MjMxMzUyNC4uMzcxYjllZDQyMzI4N2Q5
NzczNTU5YTVjZjhhNTFiNjc5N2VmM2FjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9hcHBsZXBheS9BcHBsZVBheUNvbnRhY3RGaWVsZC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUNvbnRhY3RGaWVsZC5jcHAKQEAgLTQ0LDcgKzQ0
LDcgQEAgRXhjZXB0aW9uT3I8QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OkNvbnRhY3RG
aWVsZHM+IGNvbnZlcnRBbmRWYWxpZGF0ZSh1bnMKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICBjYXNlIEFwcGxlUGF5Q29udGFjdEZpZWxkOjpQaG9uZXRpY05hbWU6CiAgICAgICAgICAgICBp
ZiAodmVyc2lvbiA8IDMpCi0gICAgICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVF
cnJvciwgIlwicGhvbmV0aWNOYW1lXCIgaXMgbm90IGEgdmFsaWQgY29udGFjdCBmaWVsZC4iIH07
CisgICAgICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIlwicGhvbmV0
aWNOYW1lXCIgaXMgbm90IGEgdmFsaWQgY29udGFjdCBmaWVsZC4iX3MgfTsKICAgICAgICAgICAg
IHJlc3VsdC5waG9uZXRpY05hbWUgPSB0cnVlOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IGNhc2UgQXBwbGVQYXlDb250YWN0RmllbGQ6OlBob25lOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheU1lcmNoYW50Q2FwYWJpbGl0eS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5TWVyY2hhbnRDYXBhYmlsaXR5
LmNwcAppbmRleCBhNjJhMmM3M2VhMzA2NTUxYmVlODVkYzk1NjE3YzExNjI1NjUzYmMyLi5mNjg0
YmM5YWM2MWQ0OTlhNTVjYTRlMTgxZjU3YjQ2OTE3MjU3OWExIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5TWVyY2hhbnRDYXBhYmlsaXR5LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5TWVyY2hhbnRDYXBh
YmlsaXR5LmNwcApAQCAtMzMsNyArMzMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBFeGNlcHRp
b25PcjxBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6TWVyY2hhbnRDYXBhYmlsaXRpZXM+
IGNvbnZlcnRBbmRWYWxpZGF0ZShjb25zdCBWZWN0b3I8QXBwbGVQYXlNZXJjaGFudENhcGFiaWxp
dHk+JiBtZXJjaGFudENhcGFiaWxpdGllcykKIHsKICAgICBpZiAobWVyY2hhbnRDYXBhYmlsaXRp
ZXMuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiQXQg
bGVhc3Qgb25lIG1lcmNoYW50IGNhcGFiaWxpdHkgbXVzdCBiZSBwcm92aWRlZC4iIH07CisgICAg
ICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJBdCBsZWFzdCBvbmUgbWVyY2hhbnQg
Y2FwYWJpbGl0eSBtdXN0IGJlIHByb3ZpZGVkLiJfcyB9OwogCiAgICAgQXBwbGVQYXlTZXNzaW9u
UGF5bWVudFJlcXVlc3Q6Ok1lcmNoYW50Q2FwYWJpbGl0aWVzIHJlc3VsdDsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVJlcXVlc3RCYXNlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlSZXF1ZXN0QmFzZS5j
cHAKaW5kZXggMjQ1ODZkNWRkNDc5YzkwOTNkNDlmOTYxMDExOTFjYWE4ZTg1MDk3ZS4uOGQzNjI3
YTZmNmEyN2ZiOGM4MmM5M2FkNTQ2ZDZhYWYwNjliZjEzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVJlcXVlc3RCYXNlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5UmVxdWVzdEJhc2UuY3BwCkBAIC03
Myw3ICs3Myw3IEBAIEV4Y2VwdGlvbk9yPEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0PiBj
b252ZXJ0QW5kVmFsaWRhdGUoRG9jdW1lbnQmIGRvY3VtZW50CiAgICAgcmVzdWx0LnNldE1lcmNo
YW50Q2FwYWJpbGl0aWVzKG1lcmNoYW50Q2FwYWJpbGl0aWVzLnJlbGVhc2VSZXR1cm5WYWx1ZSgp
KTsKIAogICAgIGlmIChyZXF1aXJlc1N1cHBvcnRlZE5ldHdvcmtzKHZlcnNpb24sIHJlcXVlc3Qp
ICYmIHJlcXVlc3Quc3VwcG9ydGVkTmV0d29ya3MuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4g
RXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiQXQgbGVhc3Qgb25lIHN1cHBvcnRlZCBuZXR3b3JrIG11
c3QgYmUgcHJvdmlkZWQuIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9y
LCAiQXQgbGVhc3Qgb25lIHN1cHBvcnRlZCBuZXR3b3JrIG11c3QgYmUgcHJvdmlkZWQuIl9zIH07
CiAKICAgICBhdXRvIHN1cHBvcnRlZE5ldHdvcmtzID0gY29udmVydEFuZFZhbGlkYXRlKGRvY3Vt
ZW50LCB2ZXJzaW9uLCByZXF1ZXN0LnN1cHBvcnRlZE5ldHdvcmtzLCBwYXltZW50Q29vcmRpbmF0
b3IpOwogICAgIGlmIChzdXBwb3J0ZWROZXR3b3Jrcy5oYXNFeGNlcHRpb24oKSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTZXNzaW9uLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTZXNzaW9uLmNwcAppbmRl
eCA2Y2JmY2YwNzk3NTAxYTk5NjI5ZmNjNjkzNmI2ZjA1MGYwY2ZjODlhLi41OWUzMDBiZWI3MDky
NmVmOTgzYWVjYmE2ZDRhZTViNmU3YjA2NWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNlc3Npb24uY3BwCkBAIC0zMTAsMTAgKzMxMCwxMCBA
QCBFeGNlcHRpb25PcjxSZWY8QXBwbGVQYXlTZXNzaW9uPj4gQXBwbGVQYXlTZXNzaW9uOjpjcmVh
dGUoRG9jdW1lbnQmIGRvY3VtZW50LCB1bgogICAgICAgICByZXR1cm4gY2FuQ2FsbC5yZWxlYXNl
RXhjZXB0aW9uKCk7CiAKICAgICBpZiAoIVVzZXJHZXN0dXJlSW5kaWNhdG9yOjpwcm9jZXNzaW5n
VXNlckdlc3R1cmUoKSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NF
cnJvciwgIk11c3QgY3JlYXRlIGEgbmV3IEFwcGxlUGF5U2Vzc2lvbiBmcm9tIGEgdXNlciBnZXN0
dXJlIGhhbmRsZXIuIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vz
c0Vycm9yLCAiTXVzdCBjcmVhdGUgYSBuZXcgQXBwbGVQYXlTZXNzaW9uIGZyb20gYSB1c2VyIGdl
c3R1cmUgaGFuZGxlci4iX3MgfTsKIAogICAgIGlmICghZG9jdW1lbnQucGFnZSgpKQotICAgICAg
ICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiRnJhbWUgaXMgZGV0YWNo
ZWQiIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJG
cmFtZSBpcyBkZXRhY2hlZCJfcyB9OwogCiAgICAgYXV0byBjb252ZXJ0ZWRQYXltZW50UmVxdWVz
dCA9IGNvbnZlcnRBbmRWYWxpZGF0ZShkb2N1bWVudCwgdmVyc2lvbiwgV1RGTW92ZShwYXltZW50
UmVxdWVzdCksIGRvY3VtZW50LnBhZ2UoKS0+cGF5bWVudENvb3JkaW5hdG9yKCkpOwogICAgIGlm
IChjb252ZXJ0ZWRQYXltZW50UmVxdWVzdC5oYXNFeGNlcHRpb24oKSkKQEAgLTQxMiw3ICs0MTIs
NyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBBcHBsZVBheVNlc3Npb246Om9wZW5QYXltZW50U2V0dXAo
RG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdAogICAgICAgICByZXR1cm4gY2FuQ2FsbC5yZWxl
YXNlRXhjZXB0aW9uKCk7CiAKICAgICBpZiAoIVVzZXJHZXN0dXJlSW5kaWNhdG9yOjpwcm9jZXNz
aW5nVXNlckdlc3R1cmUoKSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nl
c3NFcnJvciwgIk11c3QgY2FsbCBBcHBsZVBheVNlc3Npb24ub3BlblBheW1lbnRTZXR1cCBmcm9t
IGEgdXNlciBnZXN0dXJlIGhhbmRsZXIuIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
SW52YWxpZEFjY2Vzc0Vycm9yLCAiTXVzdCBjYWxsIEFwcGxlUGF5U2Vzc2lvbi5vcGVuUGF5bWVu
dFNldHVwIGZyb20gYSB1c2VyIGdlc3R1cmUgaGFuZGxlci4iX3MgfTsKIAogICAgIGF1dG8qIHBh
Z2UgPSBkb2N1bWVudC5wYWdlKCk7CiAgICAgaWYgKCFwYWdlKQpAQCAtNDMxLDEzICs0MzEsMTMg
QEAgRXhjZXB0aW9uT3I8dm9pZD4gQXBwbGVQYXlTZXNzaW9uOjpvcGVuUGF5bWVudFNldHVwKERv
Y3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3QKIEV4Y2VwdGlvbk9yPHZvaWQ+IEFwcGxlUGF5U2Vz
c2lvbjo6YmVnaW4oRG9jdW1lbnQmIGRvY3VtZW50KQogewogICAgIGlmICghY2FuQmVnaW4oKSkK
LSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwgIlBheW1lbnQg
c2Vzc2lvbiBpcyBhbHJlYWR5IGFjdGl2ZS4iIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBJbnZhbGlkQWNjZXNzRXJyb3IsICJQYXltZW50IHNlc3Npb24gaXMgYWxyZWFkeSBhY3RpdmUu
Il9zIH07CiAKICAgICBpZiAocGF5bWVudENvb3JkaW5hdG9yKCkuaGFzQWN0aXZlU2Vzc2lvbigp
KQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiUGFnZSBh
bHJlYWR5IGhhcyBhbiBhY3RpdmUgcGF5bWVudCBzZXNzaW9uLiIgfTsKKyAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwgIlBhZ2UgYWxyZWFkeSBoYXMgYW4gYWN0
aXZlIHBheW1lbnQgc2Vzc2lvbi4iX3MgfTsKIAogICAgIGlmICghcGF5bWVudENvb3JkaW5hdG9y
KCkuYmVnaW5QYXltZW50U2Vzc2lvbihkb2N1bWVudCwgKnRoaXMsIG1fcGF5bWVudFJlcXVlc3Qp
KQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiVGhlcmUg
aXMgYWxyZWFkeSBoYXMgYW4gYWN0aXZlIHBheW1lbnQgc2Vzc2lvbi4iIH07CisgICAgICAgIHJl
dHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJUaGVyZSBpcyBhbHJlYWR5IGhh
cyBhbiBhY3RpdmUgcGF5bWVudCBzZXNzaW9uLiJfcyB9OwogCiAgICAgbV9zdGF0ZSA9IFN0YXRl
OjpBY3RpdmU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkv
QXBwbGVQYXlTZXR1cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxl
UGF5U2V0dXAuY3BwCmluZGV4IGU4YjEzNjE2OTBiMjBlYWY3ZTFjNjE2YTc3MmE4ZjYxM2RlZmYz
NDguLjg5ZTRhNDU1ZjE4NWY4MTkwYzdlYzBkNzYxNzg0ZDU5NDZiYzYxNjMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTZXR1cC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNldHVwLmNwcApAQCAtOTEs
NyArOTEsNyBAQCB2b2lkIEFwcGxlUGF5U2V0dXA6OmJlZ2luKERvY3VtZW50JiBkb2N1bWVudCwg
VmVjdG9yPFJlZlB0cjxBcHBsZVBheVNldHVwRmVhdHVyZQogICAgIH0KIAogICAgIGlmICghVXNl
ckdlc3R1cmVJbmRpY2F0b3I6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpKSB7Ci0gICAgICAgIHBy
b21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwgIk11c3QgY2FsbCBB
cHBsZVBheVNldHVwLmJlZ2luIGZyb20gYSB1c2VyIGdlc3R1cmUgaGFuZGxlci4iIH0pOworICAg
ICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJNdXN0
IGNhbGwgQXBwbGVQYXlTZXR1cC5iZWdpbiBmcm9tIGEgdXNlciBnZXN0dXJlIGhhbmRsZXIuIl9z
IH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRJbnN0YWxsbWVudENvbmZpZ3VyYXRpb24ubW0gYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRJbnN0YWxsbWVudENvbmZpZ3Vy
YXRpb24ubW0KaW5kZXggNjRkMWRiYjIxMmU3MDJjMDJiMmI4MmNkMWU2OGU4MGU3NzNmMDg3MC4u
OTljNzRkNjg5MTY0OTA3MjI1MGRlYzQ5Yjk2ZDAwY2NhNmM2ZTE3ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50SW5zdGFsbG1lbnRDb25maWd1cmF0
aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvUGF5bWVudEluc3Rh
bGxtZW50Q29uZmlndXJhdGlvbi5tbQpAQCAtMjA3LDcgKzIwNyw3IEBAIEV4Y2VwdGlvbk9yPFBh
eW1lbnRJbnN0YWxsbWVudENvbmZpZ3VyYXRpb24+IFBheW1lbnRJbnN0YWxsbWVudENvbmZpZ3Vy
YXRpb246OmNyCiAgICAgICAgIE5TRGF0YSAqYXBwbGljYXRpb25NZXRhZGF0YSA9IFtjb25maWd1
cmF0aW9uLmFwcGxpY2F0aW9uTWV0YWRhdGEgZGF0YVVzaW5nRW5jb2Rpbmc6TlNVVEY4U3RyaW5n
RW5jb2RpbmddOwogICAgICAgICBhcHBsaWNhdGlvbk1ldGFkYXRhRGljdGlvbmFyeSA9IGR5bmFt
aWNfb2JqY19jYXN0PE5TRGljdGlvbmFyeT4oW05TSlNPTlNlcmlhbGl6YXRpb24gSlNPTk9iamVj
dFdpdGhEYXRhOmFwcGxpY2F0aW9uTWV0YWRhdGEgb3B0aW9uczowIGVycm9yOm5pbF0pOwogICAg
ICAgICBpZiAoIWFwcGxpY2F0aW9uTWV0YWRhdGFEaWN0aW9uYXJ5KQotICAgICAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgImFwcGxpY2F0aW9uTWV0YWRhdGEgbXVzdCBiZSBh
IEpTT04gb2JqZWN0IiB9OworICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJv
ciwgImFwcGxpY2F0aW9uTWV0YWRhdGEgbXVzdCBiZSBhIEpTT04gb2JqZWN0Il9zIH07CiAgICAg
fQogCiAgICAgcmV0dXJuIFBheW1lbnRJbnN0YWxsbWVudENvbmZpZ3VyYXRpb24oY29uZmlndXJh
dGlvbiwgYXBwbGljYXRpb25NZXRhZGF0YURpY3Rpb25hcnkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50UmVxdWVzdFZhbGlkYXRvci5tbSBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvUGF5bWVudFJlcXVlc3RWYWxpZGF0b3IubW0K
aW5kZXggZjEwYzU1ZDQ5NGExMWMzMGMwYTEwNWUxYmZiNjE0MzkwODY2OGM0MC4uYzUyZmQ5MmQw
OGQzZGM0ZTMzYWY3ZTBmZGJiZTNlMGM4ZThjZWNhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50UmVxdWVzdFZhbGlkYXRvci5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRSZXF1ZXN0VmFsaWRhdG9yLm1tCkBA
IC05NSwxOCArOTUsMTggQEAgRXhjZXB0aW9uT3I8dm9pZD4gUGF5bWVudFJlcXVlc3RWYWxpZGF0
b3I6OnZhbGlkYXRlKGNvbnN0IEFwcGxlUGF5U2Vzc2lvblBheW1lbnQKIEV4Y2VwdGlvbk9yPHZv
aWQ+IFBheW1lbnRSZXF1ZXN0VmFsaWRhdG9yOjp2YWxpZGF0ZVRvdGFsKGNvbnN0IEFwcGxlUGF5
TGluZUl0ZW0mIHRvdGFsKQogewogICAgIGlmICghdG90YWwubGFiZWwpCi0gICAgICAgIHJldHVy
biBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJNaXNzaW5nIHRvdGFsIGxhYmVsLiIgfTsKKyAgICAg
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIk1pc3NpbmcgdG90YWwgbGFiZWwuIl9z
IH07CiAKICAgICBpZiAoIXRvdGFsLmFtb3VudCkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7
IFR5cGVFcnJvciwgIk1pc3NpbmcgdG90YWwgYW1vdW50LiIgfTsKKyAgICAgICAgcmV0dXJuIEV4
Y2VwdGlvbiB7IFR5cGVFcnJvciwgIk1pc3NpbmcgdG90YWwgYW1vdW50LiJfcyB9OwogCiAgICAg
ZG91YmxlIGFtb3VudCA9IFtOU0RlY2ltYWxOdW1iZXIgZGVjaW1hbE51bWJlcldpdGhTdHJpbmc6
dG90YWwuYW1vdW50IGxvY2FsZTpAeyBOU0xvY2FsZURlY2ltYWxTZXBhcmF0b3IgOiBAIi4iIH1d
LmRvdWJsZVZhbHVlOwogCiAgICAgaWYgKGFtb3VudCA8IDApCi0gICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBUeXBlRXJyb3IsICJUb3RhbCBhbW91bnQgbXVzdCBub3QgYmUgbmVnYXRpdmUuIiB9
OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiVG90YWwgYW1vdW50IG11
c3Qgbm90IGJlIG5lZ2F0aXZlLiJfcyB9OwogCiAgICAgaWYgKGFtb3VudCA+IDEwMDAwMDAwMCkK
LSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIlRvdGFsIGFtb3VudCBpcyB0
b28gYmlnLiIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIlRvdGFs
IGFtb3VudCBpcyB0b28gYmlnLiJfcyB9OwogCiAgICAgcmV0dXJuIHsgfTsKIH0KQEAgLTExNCw3
ICsxMTQsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBQYXltZW50UmVxdWVzdFZhbGlkYXRvcjo6dmFs
aWRhdGVUb3RhbChjb25zdCBBcHBsZVBheUxpbmVJdGVtJgogc3RhdGljIEV4Y2VwdGlvbk9yPHZv
aWQ+IHZhbGlkYXRlQ291bnRyeUNvZGUoY29uc3QgU3RyaW5nJiBjb3VudHJ5Q29kZSkKIHsKICAg
ICBpZiAoIWNvdW50cnlDb2RlKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9y
LCAiTWlzc2luZyBjb3VudHJ5IGNvZGUuIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
VHlwZUVycm9yLCAiTWlzc2luZyBjb3VudHJ5IGNvZGUuIl9zIH07CiAKICAgICBmb3IgKGF1dG8g
KmNvdW50cnlDb2RlUHRyID0gdWxvY19nZXRJU09Db3VudHJpZXMoKTsgKmNvdW50cnlDb2RlUHRy
OyArK2NvdW50cnlDb2RlUHRyKSB7CiAgICAgICAgIGlmIChjb3VudHJ5Q29kZSA9PSAqY291bnRy
eUNvZGVQdHIpCkBAIC0xMjcsNyArMTI3LDcgQEAgc3RhdGljIEV4Y2VwdGlvbk9yPHZvaWQ+IHZh
bGlkYXRlQ291bnRyeUNvZGUoY29uc3QgU3RyaW5nJiBjb3VudHJ5Q29kZSkKIHN0YXRpYyBFeGNl
cHRpb25Pcjx2b2lkPiB2YWxpZGF0ZUN1cnJlbmN5Q29kZShjb25zdCBTdHJpbmcmIGN1cnJlbmN5
Q29kZSkKIHsKICAgICBpZiAoIWN1cnJlbmN5Q29kZSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlv
biB7IFR5cGVFcnJvciwgIk1pc3NpbmcgY3VycmVuY3kgY29kZS4iIH07CisgICAgICAgIHJldHVy
biBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJNaXNzaW5nIGN1cnJlbmN5IGNvZGUuIl9zIH07CiAK
ICAgICBVRXJyb3JDb2RlIGVycm9yQ29kZSA9IFVfWkVST19FUlJPUjsKICAgICBhdXRvIGN1cnJl
bmN5Q29kZXMgPSBzdGQ6OnVuaXF1ZV9wdHI8VUVudW1lcmF0aW9uLCBJQ1VEZWxldGVyPHVlbnVt
X2Nsb3NlPj4odWN1cnJfb3BlbklTT0N1cnJlbmNpZXMoVUNVUlJfQUxMLCAmZXJyb3JDb2RlKSk7
CkBAIC0xNDQsNyArMTQ0LDcgQEAgc3RhdGljIEV4Y2VwdGlvbk9yPHZvaWQ+IHZhbGlkYXRlQ3Vy
cmVuY3lDb2RlKGNvbnN0IFN0cmluZyYgY3VycmVuY3lDb2RlKQogc3RhdGljIEV4Y2VwdGlvbk9y
PHZvaWQ+IHZhbGlkYXRlTWVyY2hhbnRDYXBhYmlsaXRpZXMoY29uc3QgQXBwbGVQYXlTZXNzaW9u
UGF5bWVudFJlcXVlc3Q6Ok1lcmNoYW50Q2FwYWJpbGl0aWVzJiBtZXJjaGFudENhcGFiaWxpdGll
cykKIHsKICAgICBpZiAoIW1lcmNoYW50Q2FwYWJpbGl0aWVzLnN1cHBvcnRzM0RTICYmICFtZXJj
aGFudENhcGFiaWxpdGllcy5zdXBwb3J0c0VNViAmJiAhbWVyY2hhbnRDYXBhYmlsaXRpZXMuc3Vw
cG9ydHNDcmVkaXQgJiYgIW1lcmNoYW50Q2FwYWJpbGl0aWVzLnN1cHBvcnRzRGViaXQpCi0gICAg
ICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJNaXNzaW5nIG1lcmNoYW50IGNhcGFi
aWxpdGllcy4iIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJNaXNz
aW5nIG1lcmNoYW50IGNhcGFiaWxpdGllcy4iX3MgfTsKIAogICAgIHJldHVybiB7IH07CiB9CkBA
IC0xNTIsNyArMTUyLDcgQEAgc3RhdGljIEV4Y2VwdGlvbk9yPHZvaWQ+IHZhbGlkYXRlTWVyY2hh
bnRDYXBhYmlsaXRpZXMoY29uc3QgQXBwbGVQYXlTZXNzaW9uUGF5bWUKIHN0YXRpYyBFeGNlcHRp
b25Pcjx2b2lkPiB2YWxpZGF0ZVN1cHBvcnRlZE5ldHdvcmtzKGNvbnN0IFZlY3RvcjxTdHJpbmc+
JiBzdXBwb3J0ZWROZXR3b3JrcykKIHsKICAgICBpZiAoc3VwcG9ydGVkTmV0d29ya3MuaXNFbXB0
eSgpKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiTWlzc2luZyBzdXBw
b3J0ZWQgbmV0d29ya3MuIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9y
LCAiTWlzc2luZyBzdXBwb3J0ZWQgbmV0d29ya3MuIl9zIH07CiAKICAgICByZXR1cm4geyB9Owog
fQpAQCAtMTYxLDcgKzE2MSw3IEBAIHN0YXRpYyBFeGNlcHRpb25Pcjx2b2lkPiB2YWxpZGF0ZVNo
aXBwaW5nTWV0aG9kKGNvbnN0IEFwcGxlUGF5U2hpcHBpbmdNZXRob2QmIHNoCiB7CiAgICAgTlNE
ZWNpbWFsTnVtYmVyICphbW91bnQgPSBbTlNEZWNpbWFsTnVtYmVyIGRlY2ltYWxOdW1iZXJXaXRo
U3RyaW5nOnNoaXBwaW5nTWV0aG9kLmFtb3VudCBsb2NhbGU6QHsgTlNMb2NhbGVEZWNpbWFsU2Vw
YXJhdG9yIDogQCIuIiB9XTsKICAgICBpZiAoYW1vdW50LmludGVnZXJWYWx1ZSA8IDApCi0gICAg
ICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJTaGlwcGluZyBtZXRob2QgYW1vdW50
IG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHplcm8uIiB9OworICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiU2hpcHBpbmcgbWV0aG9kIGFtb3VudCBtdXN0IGJl
IGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB6ZXJvLiJfcyB9OwogCiAgICAgcmV0dXJuIHsgfTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvUGF5bWVudFNl
c3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50U2Vzc2lv
bi5jcHAKaW5kZXggOTRmOTQ1OWI5YjQ0OGE5ODQyZWIwZjQwMjNjNjQyYTA2OGU4M2M3MS4uMmU4
ZjY2ZWE4M2MxZDQ3MmRhMTg3YzA4MzZiNTgxNzZjYmFkOTFhMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50U2Vzc2lvbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50U2Vzc2lvbi5jcHAKQEAgLTUyLDI0ICs1
MiwyNCBAQCBFeGNlcHRpb25Pcjx2b2lkPiBQYXltZW50U2Vzc2lvbjo6Y2FuQ3JlYXRlU2Vzc2lv
bihEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBTZWN1cml0
eUVycm9yLCAiVGhpcmQtcGFydHkgaWZyYW1lcyBhcmUgbm90IGFsbG93ZWQgdG8gcmVxdWVzdCBw
YXltZW50cyB1bmxlc3MgZXhwbGljaXRseSBhbGxvd2VkIHZpYSBGZWF0dXJlLVBvbGljeSAocGF5
bWVudCkiX3MgfTsKIAogICAgIGlmICghZG9jdW1lbnQuZnJhbWUoKSkKLSAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwgIlRyeWluZyB0byBzdGFydCBhbiBBcHBs
ZSBQYXkgc2Vzc2lvbiBmcm9tIGFuIGluYWN0aXZlIGRvY3VtZW50LiIgfTsKKyAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwgIlRyeWluZyB0byBzdGFydCBhbiBB
cHBsZSBQYXkgc2Vzc2lvbiBmcm9tIGFuIGluYWN0aXZlIGRvY3VtZW50LiJfcyB9OwogCiAgICAg
aWYgKCFpc1NlY3VyZSgqZG9jdW1lbnQubG9hZGVyKCkpKQotICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiVHJ5aW5nIHRvIHN0YXJ0IGFuIEFwcGxlIFBheSBz
ZXNzaW9uIGZyb20gYW4gaW5zZWN1cmUgZG9jdW1lbnQuIiB9OworICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiVHJ5aW5nIHRvIHN0YXJ0IGFuIEFwcGxlIFBh
eSBzZXNzaW9uIGZyb20gYW4gaW5zZWN1cmUgZG9jdW1lbnQuIl9zIH07CiAKICAgICBhdXRvJiB0
b3BEb2N1bWVudCA9IGRvY3VtZW50LnRvcERvY3VtZW50KCk7CiAgICAgaWYgKCZkb2N1bWVudCAh
PSAmdG9wRG9jdW1lbnQpIHsKICAgICAgICAgYXV0byYgdG9wT3JpZ2luID0gdG9wRG9jdW1lbnQu
dG9wT3JpZ2luKCk7CiAKICAgICAgICAgaWYgKCFkb2N1bWVudC5zZWN1cml0eU9yaWdpbigpLmlz
U2FtZVNjaGVtZUhvc3RQb3J0KHRvcE9yaWdpbikpCi0gICAgICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiVHJ5aW5nIHRvIHN0YXJ0IGFuIEFwcGxlIFBheSBz
ZXNzaW9uIGZyb20gYSBkb2N1bWVudCB3aXRoIGFuIGRpZmZlcmVudCBzZWN1cml0eSBvcmlnaW4g
dGhhbiBpdHMgdG9wLWxldmVsIGZyYW1lLiIgfTsKKyAgICAgICAgICAgIHJldHVybiBFeGNlcHRp
b24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJUcnlpbmcgdG8gc3RhcnQgYW4gQXBwbGUgUGF5IHNl
c3Npb24gZnJvbSBhIGRvY3VtZW50IHdpdGggYW4gZGlmZmVyZW50IHNlY3VyaXR5IG9yaWdpbiB0
aGFuIGl0cyB0b3AtbGV2ZWwgZnJhbWUuIl9zIH07CiAKICAgICAgICAgZm9yIChhdXRvKiBhbmNl
c3RvckRvY3VtZW50ID0gZG9jdW1lbnQucGFyZW50RG9jdW1lbnQoKTsgYW5jZXN0b3JEb2N1bWVu
dCAhPSAmdG9wRG9jdW1lbnQ7IGFuY2VzdG9yRG9jdW1lbnQgPSBhbmNlc3RvckRvY3VtZW50LT5w
YXJlbnREb2N1bWVudCgpKSB7CiAgICAgICAgICAgICBpZiAoIWlzU2VjdXJlKCphbmNlc3RvckRv
Y3VtZW50LT5sb2FkZXIoKSkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElu
dmFsaWRBY2Nlc3NFcnJvciwgIlRyeWluZyB0byBzdGFydCBhbiBBcHBsZSBQYXkgc2Vzc2lvbiBm
cm9tIGEgZG9jdW1lbnQgd2l0aCBhbiBpbnNlY3VyZSBwYXJlbnQgZnJhbWUuIiB9OworICAgICAg
ICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJUcnlpbmcg
dG8gc3RhcnQgYW4gQXBwbGUgUGF5IHNlc3Npb24gZnJvbSBhIGRvY3VtZW50IHdpdGggYW4gaW5z
ZWN1cmUgcGFyZW50IGZyYW1lLiJfcyB9OwogCiAgICAgICAgICAgICBpZiAoIWFuY2VzdG9yRG9j
dW1lbnQtPnNlY3VyaXR5T3JpZ2luKCkuaXNTYW1lU2NoZW1lSG9zdFBvcnQodG9wT3JpZ2luKSkK
LSAgICAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAi
VHJ5aW5nIHRvIHN0YXJ0IGFuIEFwcGxlIFBheSBzZXNzaW9uIGZyb20gYSBkb2N1bWVudCB3aXRo
IGFuIGRpZmZlcmVudCBzZWN1cml0eSBvcmlnaW4gdGhhbiBpdHMgdG9wLWxldmVsIGZyYW1lLiIg
fTsKKyAgICAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9y
LCAiVHJ5aW5nIHRvIHN0YXJ0IGFuIEFwcGxlIFBheSBzZXNzaW9uIGZyb20gYSBkb2N1bWVudCB3
aXRoIGFuIGRpZmZlcmVudCBzZWN1cml0eSBvcmlnaW4gdGhhbiBpdHMgdG9wLWxldmVsIGZyYW1l
LiJfcyB9OwogICAgICAgICB9CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2FwcGxlcGF5L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVudEhhbmRsZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9wYXltZW50cmVxdWVzdC9BcHBsZVBh
eVBheW1lbnRIYW5kbGVyLmNwcAppbmRleCA3MDU1MWFlODY0NDg5YzllNjc3Y2Q5MjE1M2Y1ZDFl
MjI3YTQwMjU0Li5lYjU2YjkxZTVmZWRhYzY2YTc5ZDA0NmEzYmZlYzhkYjI5Mjc1ZDdlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L3BheW1lbnRyZXF1ZXN0L0Fw
cGxlUGF5UGF5bWVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBw
bGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQYXltZW50SGFuZGxlci5jcHAKQEAgLTg5LDcg
Kzg5LDcgQEAgc3RhdGljIGlubGluZSBQYXltZW50Q29vcmRpbmF0b3ImIHBheW1lbnRDb29yZGlu
YXRvcihEb2N1bWVudCYgZG9jdW1lbnQpCiBzdGF0aWMgRXhjZXB0aW9uT3I8QXBwbGVQYXlSZXF1
ZXN0PiBjb252ZXJ0QW5kVmFsaWRhdGVBcHBsZVBheVJlcXVlc3QoRG9jdW1lbnQmIGRvY3VtZW50
LCBKU0M6OkpTVmFsdWUgZGF0YSkKIHsKICAgICBpZiAoZGF0YS5pc0VtcHR5KCkpCi0gICAgICAg
IHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJNaXNzaW5nIHBheW1lbnQgbWV0aG9kIGRh
dGEuIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiTWlzc2luZyBw
YXltZW50IG1ldGhvZCBkYXRhLiJfcyB9OwogCiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRShkb2N1bWVudC52bSgpKTsKICAgICBhdXRvIGFwcGxlUGF5UmVxdWVzdCA9
IGNvbnZlcnREaWN0aW9uYXJ5PEFwcGxlUGF5UmVxdWVzdD4oKmRvY3VtZW50Lmdsb2JhbE9iamVj
dCgpLCBkYXRhKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGljYXRp
b25tYW5pZmVzdC9BcHBsaWNhdGlvbk1hbmlmZXN0UGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvYXBwbGljYXRpb25tYW5pZmVzdC9BcHBsaWNhdGlvbk1hbmlmZXN0UGFyc2VyLmNw
cAppbmRleCA2ZGZmZjQ3YjdlMmNiODliNTRmOTVlYzQ2MjdkM2Q3Y2U2OTBmOTBiLi5jNWQxMzAz
OGNmYzY3ZjQ1YTQ2ZTY4YzljYzQ1MjEwNzNkNzZhNTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2FwcGxpY2F0aW9ubWFuaWZlc3QvQXBwbGljYXRpb25NYW5pZmVzdFBhcnNl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsaWNhdGlvbm1hbmlmZXN0L0Fw
cGxpY2F0aW9uTWFuaWZlc3RQYXJzZXIuY3BwCkBAIC0yMzEsNyArMjMxLDcgQEAgVmVjdG9yPEFw
cGxpY2F0aW9uTWFuaWZlc3Q6Okljb24+IEFwcGxpY2F0aW9uTWFuaWZlc3RQYXJzZXI6OnBhcnNl
SWNvbnMoY29uc3QgSlMKICAgICAgICAgICAgICAgICBjdXJyZW50SWNvbi5wdXJwb3NlcyA9IHB1
cnBvc2VzOwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBwdXJwb3NlU3Ry
aW5nVmFsdWUgPSBwdXJwb3NlU3RyaW5nVmFsdWUuc3RyaXBXaGl0ZVNwYWNlKCkuY29udmVydFRv
QVNDSUlMb3dlcmNhc2UoKTsKLSAgICAgICAgICAgICAgICBWZWN0b3I8U3RyaW5nPiBrZXl3b3Jk
cyA9IHB1cnBvc2VTdHJpbmdWYWx1ZS5zcGxpdEFsbG93aW5nRW1wdHlFbnRyaWVzKCIgIik7Cisg
ICAgICAgICAgICAgICAgVmVjdG9yPFN0cmluZz4ga2V5d29yZHMgPSBwdXJwb3NlU3RyaW5nVmFs
dWUuc3BsaXRBbGxvd2luZ0VtcHR5RW50cmllcygiICJfcyk7CiAKICAgICAgICAgICAgICAgICBm
b3IgKGNvbnN0IGF1dG8mIGtleXdvcmQgOiBrZXl3b3JkcykgewogICAgICAgICAgICAgICAgICAg
ICBpZiAoa2V5d29yZCA9PSAibW9ub2Nocm9tZSIpCkBAIC0yODIsOSArMjgyLDkgQEAgc3RhdGlj
IGJvb2wgaXNJblNjb3BlKGNvbnN0IFVSTCYgc2NvcGVVUkwsIGNvbnN0IFVSTCYgdGFyZ2V0VVJM
KQogCiBVUkwgQXBwbGljYXRpb25NYW5pZmVzdFBhcnNlcjo6cGFyc2VTY29wZShjb25zdCBKU09O
OjpPYmplY3QmIG1hbmlmZXN0LCBjb25zdCBVUkwmIGRvY3VtZW50VVJMLCBjb25zdCBVUkwmIHN0
YXJ0VVJMKQogewotICAgIFVSTCBkZWZhdWx0U2NvcGUgeyBzdGFydFVSTCwgIi4vIiB9OworICAg
IFVSTCBkZWZhdWx0U2NvcGUgeyBzdGFydFVSTCwgIi4vIl9zIH07CiAKLSAgICBhdXRvIHZhbHVl
ID0gbWFuaWZlc3QuZ2V0VmFsdWUoInNjb3BlIik7CisgICAgYXV0byB2YWx1ZSA9IG1hbmlmZXN0
LmdldFZhbHVlKCJzY29wZSJfcyk7CiAgICAgaWYgKCF2YWx1ZSkKICAgICAgICAgcmV0dXJuIGRl
ZmF1bHRTY29wZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9X
aW5kb3dPcldvcmtlckdsb2JhbFNjb3BlQ2FjaGVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvY2FjaGUvV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZUNhY2hlcy5jcHAKaW5kZXggYTE3NDk1
ZDc2NTk2NTZmZTJkZDljY2EzZDM3MTEyMjFmZTQ4ZDEwNC4uZGZlMTg4ZmMwZWZmZGFjMmJlZjBl
OWFjZGU5NmMzZWY2MmI4NmE2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9j
YWNoZS9XaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlQ2FjaGVzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2NhY2hlL1dpbmRvd09yV29ya2VyR2xvYmFsU2NvcGVDYWNoZXMuY3BwCkBA
IC0xMjcsNyArMTI3LDcgQEAgRE9NQ2FjaGVTdG9yYWdlKiBXb3JrZXJHbG9iYWxTY29wZUNhY2hl
czo6Y2FjaGVzKCkgY29uc3QKIEV4Y2VwdGlvbk9yPERPTUNhY2hlU3RvcmFnZSo+IFdpbmRvd09y
V29ya2VyR2xvYmFsU2NvcGVDYWNoZXM6OmNhY2hlcyhTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBj
b250ZXh0LCBET01XaW5kb3cmIHdpbmRvdykKIHsKICAgICBpZiAoZG93bmNhc3Q8RG9jdW1lbnQ+
KGNvbnRleHQpLmlzU2FuZGJveGVkKFNhbmRib3hPcmlnaW4pKQotICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgU2VjdXJpdHlFcnJvciwgIkNhY2hlIHN0b3JhZ2UgaXMgZGlzYWJsZWQgYmVjYXVz
ZSB0aGUgY29udGV4dCBpcyBzYW5kYm94ZWQgYW5kIGxhY2tzIHRoZSAnYWxsb3ctc2FtZS1vcmln
aW4nIGZsYWciIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBTZWN1cml0eUVycm9yLCAi
Q2FjaGUgc3RvcmFnZSBpcyBkaXNhYmxlZCBiZWNhdXNlIHRoZSBjb250ZXh0IGlzIHNhbmRib3hl
ZCBhbmQgbGFja3MgdGhlICdhbGxvdy1zYW1lLW9yaWdpbicgZmxhZyJfcyB9OwogCiAgICAgaWYg
KCF3aW5kb3cuaXNDdXJyZW50bHlEaXNwbGF5ZWRJbkZyYW1lKCkpCiAgICAgICAgIHJldHVybiBu
dWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRp
YS9Jbml0RGF0YVJlZ2lzdHJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVk
bWVkaWEvSW5pdERhdGFSZWdpc3RyeS5jcHAKaW5kZXggNmY4ODhlMTc4NThkZGE2ZDk0NzFlYzFm
NmVmNWQwNjZkZjBlNDk5MC4uOGNkYmNhNzdhZjM4MzA3YjJiNGMwYTRkMjVhMWYwZTkxMWFiYjFk
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9Jbml0
RGF0YVJlZ2lzdHJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1l
ZGlhL0luaXREYXRhUmVnaXN0cnkuY3BwCkBAIC0xMDUsNyArMTA1LDcgQEAgc3RhdGljIFJlZlB0
cjxGcmFnbWVudGVkU2hhcmVkQnVmZmVyPiBzYW5pdGl6ZUtleWlkcyhjb25zdCBGcmFnbWVudGVk
U2hhcmVkQnVmZmUKICAgICBhdXRvIGtpZHNBcnJheSA9IEpTT046OkFycmF5OjpjcmVhdGUoKTsK
ICAgICBmb3IgKGF1dG8mIGJ1ZmZlciA6IGtleUlEQnVmZmVyLnZhbHVlKCkpCiAgICAgICAgIGtp
ZHNBcnJheS0+cHVzaFN0cmluZyhiYXNlNjRVUkxFbmNvZGVUb1N0cmluZyhidWZmZXItPm1ha2VD
b250aWd1b3VzKCktPmRhdGEoKSwgYnVmZmVyLT5zaXplKCkpKTsKLSAgICBvYmplY3QtPnNldEFy
cmF5KCJraWRzIiwgV1RGTW92ZShraWRzQXJyYXkpKTsKKyAgICBvYmplY3QtPnNldEFycmF5KCJr
aWRzIl9zLCBXVEZNb3ZlKGtpZHNBcnJheSkpOwogCiAgICAgQ1N0cmluZyBqc29uRGF0YSA9IG9i
amVjdC0+dG9KU09OU3RyaW5nKCkudXRmOCgpOwogICAgIHJldHVybiBTaGFyZWRCdWZmZXI6OmNy
ZWF0ZShqc29uRGF0YS5kYXRhKCksIGpzb25EYXRhLmxlbmd0aCgpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZW50cmllc2FwaS9ET01GaWxlU3lzdGVtLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZW50cmllc2FwaS9ET01GaWxlU3lzdGVtLmNwcAppbmRleCA5ZjQ4
MWRjNjI5YWE3N2E2MGRhNWM1ZWUwNDRhNzM2YmQ0NmQzZDIwLi45YWNhNjE4YjVkNmM3MmUyNDI0
NTk0YjlhMTlkZTFhNGUwNGY5YzhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2VudHJpZXNhcGkvRE9NRmlsZVN5c3RlbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9lbnRyaWVzYXBpL0RPTUZpbGVTeXN0ZW0uY3BwCkBAIC01OSw3ICs1OSw3IEBAIHN0YXRpYyBF
eGNlcHRpb25PcjxWZWN0b3I8TGlzdGVkQ2hpbGQ+PiBsaXN0RGlyZWN0b3J5V2l0aE1ldGFkYXRh
KGNvbnN0IFN0cmluZyYKIHsKICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKICAgICBpZiAo
RmlsZVN5c3RlbTo6ZmlsZVR5cGUoZnVsbFBhdGgpICE9IEZpbGVTeXN0ZW06OkZpbGVUeXBlOjpE
aXJlY3RvcnkpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RGb3VuZEVycm9yLCAiUGF0
aCBubyBsb25nZXIgZXhpc3RzIG9yIGlzIG5vIGxvbmdlciBhIGRpcmVjdG9yeSIgfTsKKyAgICAg
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdEZvdW5kRXJyb3IsICJQYXRoIG5vIGxvbmdlciBleGlz
dHMgb3IgaXMgbm8gbG9uZ2VyIGEgZGlyZWN0b3J5Il9zIH07CiAKICAgICBhdXRvIGNoaWxkTmFt
ZXMgPSBGaWxlU3lzdGVtOjpsaXN0RGlyZWN0b3J5KGZ1bGxQYXRoKTsKICAgICBWZWN0b3I8TGlz
dGVkQ2hpbGQ+IGxpc3RlZENoaWxkcmVuOwpAQCAtMTgzLDcgKzE4Myw3IEBAIHN0YXRpYyBFeGNl
cHRpb25PcjxTdHJpbmc+IHZhbGlkYXRlUGF0aElzRXhwZWN0ZWRUeXBlKGNvbnN0IFN0cmluZyYg
ZnVsbFBhdGgsIFN0CiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RGb3VuZEVycm9yLCAi
UGF0aCBkb2VzIG5vdCBleGlzdCJfcyB9OwogCiAgICAgaWYgKCpmaWxlVHlwZSAhPSBleHBlY3Rl
ZFR5cGUpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlTWlzbWF0Y2hFcnJvciwgIkVu
dHJ5IGF0IHBhdGggZG9lcyBub3QgaGF2ZSBleHBlY3RlZCB0eXBlIiB9OworICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgVHlwZU1pc21hdGNoRXJyb3IsICJFbnRyeSBhdCBwYXRoIGRvZXMgbm90
IGhhdmUgZXhwZWN0ZWQgdHlwZSJfcyB9OwogCiAgICAgcmV0dXJuIFdURk1vdmUodmlydHVhbFBh
dGgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJv
ZHlDb25zdW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keUNv
bnN1bWVyLmNwcAppbmRleCA5MzZhN2U0MzA1NmM0NTVlMjliMjU1MGZiNDAxMGJlZWVjM2IzNWVi
Li42ZjZkYzY3Y2MzNGI4ZDQwN2FiZjZkZTQ2NGM1MjljNzQyMzZkNWYyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keUNvbnN1bWVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keUNvbnN1bWVyLmNwcApAQCAtMTUw
LDEwICsxNTAsMTAgQEAgUmVmUHRyPERPTUZvcm1EYXRhPiBGZXRjaEJvZHlDb25zdW1lcjo6cGFj
a2FnZUZvcm1EYXRhKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGMKICAgICAgICAgICAgIGNvbnRl
bnREaXNwb3NpdGlvblBhcmFtZXRlcnNCZWdpbisrOwogCiAgICAgICAgIGF1dG8gcGFyYW1ldGVy
cyA9IHBhcnNlUGFyYW1ldGVycyhTdHJpbmdWaWV3KGhlYWRlcikuc3Vic3RyaW5nKGNvbnRlbnRE
aXNwb3NpdGlvblBhcmFtZXRlcnNCZWdpbiwgY29udGVudERpc3Bvc2l0aW9uRW5kIC0gY29udGVu
dERpc3Bvc2l0aW9uUGFyYW1ldGVyc0JlZ2luKSwgMCk7Ci0gICAgICAgIFN0cmluZyBuYW1lID0g
cGFyYW1ldGVycy5nZXQoIm5hbWUiKTsKKyAgICAgICAgU3RyaW5nIG5hbWUgPSBwYXJhbWV0ZXJz
LmdldCgibmFtZSJfcyk7CiAgICAgICAgIGlmICghbmFtZSkKICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICAgICAgU3RyaW5nIGZpbGVuYW1lID0gcGFyYW1ldGVycy5nZXQoImZpbGVuYW1l
Iik7CisgICAgICAgIFN0cmluZyBmaWxlbmFtZSA9IHBhcmFtZXRlcnMuZ2V0KCJmaWxlbmFtZSJf
cyk7CiAgICAgICAgIGlmICghZmlsZW5hbWUpCiAgICAgICAgICAgICBmb3JtLmFwcGVuZChuYW1l
LCBTdHJpbmc6OmZyb21VVEY4KGJvZHlCZWdpbiwgYm9keUxlbmd0aCkpOwogICAgICAgICBlbHNl
IHsKQEAgLTE3Niw3ICsxNzYsNyBAQCBSZWZQdHI8RE9NRm9ybURhdGE+IEZldGNoQm9keUNvbnN1
bWVyOjpwYWNrYWdlRm9ybURhdGEoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogYwogICAgICAgICBp
ZiAoIW1pbWVUeXBlKQogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAgICAg
aWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobWltZVR5cGUtPnR5cGUsICJtdWx0aXBhcnQiKSAm
JiBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG1pbWVUeXBlLT5zdWJ0eXBlLCAiZm9ybS1kYXRhIikp
IHsKLSAgICAgICAgICAgIGF1dG8gaXRlcmF0b3IgPSBtaW1lVHlwZS0+cGFyYW1ldGVycy5maW5k
KCJib3VuZGFyeSIpOworICAgICAgICAgICAgYXV0byBpdGVyYXRvciA9IG1pbWVUeXBlLT5wYXJh
bWV0ZXJzLmZpbmQoImJvdW5kYXJ5Il9zKTsKICAgICAgICAgICAgIGlmIChpdGVyYXRvciAhPSBt
aW1lVHlwZS0+cGFyYW1ldGVycy5lbmQoKSkKICAgICAgICAgICAgICAgICByZXR1cm4gaXRlcmF0
b3ItPnZhbHVlOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2ZldGNoL0ZldGNoSGVhZGVycy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0Zl
dGNoSGVhZGVycy5jcHAKaW5kZXggMDkwZjVjZjRkMGZmMTE1ZDg0YmY3MzNiN2E3YjE1YjM0ZjJl
M2E1Zi4uMjZhZjA4ZjFhZDVlMTRjYmQxYWVkNzRlZmRlYTNmMWFkMzhiZTYxNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEhlYWRlcnMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hIZWFkZXJzLmNwcApAQCAtMTAyLDcgKzEw
Miw3IEBAIHN0YXRpYyBFeGNlcHRpb25Pcjx2b2lkPiBmaWxsSGVhZGVyTWFwKEhUVFBIZWFkZXJN
YXAmIGhlYWRlcnMsIGNvbnN0IEZldGNoSGVhZGVyCiAgICAgICAgIGF1dG8mIHNlcXVlbmNlID0g
c3RkOjpnZXQ8VmVjdG9yPFZlY3RvcjxTdHJpbmc+Pj4oaGVhZGVyc0luaXQpOwogICAgICAgICBm
b3IgKGF1dG8mIGhlYWRlciA6IHNlcXVlbmNlKSB7CiAgICAgICAgICAgICBpZiAoaGVhZGVyLnNp
emUoKSAhPSAyKQotICAgICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3Is
ICJIZWFkZXIgc3ViLXNlcXVlbmNlIG11c3QgY29udGFpbiBleGFjdGx5IHR3byBpdGVtcyIgfTsK
KyAgICAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiSGVhZGVyIHN1
Yi1zZXF1ZW5jZSBtdXN0IGNvbnRhaW4gZXhhY3RseSB0d28gaXRlbXMiX3MgfTsKICAgICAgICAg
ICAgIGF1dG8gcmVzdWx0ID0gYXBwZW5kVG9IZWFkZXJNYXAoaGVhZGVyWzBdLCBoZWFkZXJbMV0s
IGhlYWRlcnMsIGd1YXJkKTsKICAgICAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkp
CiAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoTG9hZGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hMb2FkZXIuY3BwCmluZGV4IDdjZWEzMmE5
NThmMTRiZDhjODc4YmM1MWY0OWMxZDFhZGE2ZDZhMzcuLmY3NDMzOGU4ZDMyMjI3MGEzODBmMjQ5
YTY0MmU0ZWEwZjkyMjg2ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0
Y2gvRmV0Y2hMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0
Y2hMb2FkZXIuY3BwCkBAIC02OSw3ICs2OSw3IEBAIHZvaWQgRmV0Y2hMb2FkZXI6OnN0YXJ0TG9h
ZGluZ0Jsb2JVUkwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3QgVVJMCiAK
ICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChtX3VybEZvclJlYWRpbmcpOwogICAgIHJlcXVl
c3Quc2V0SW5pdGlhdG9ySWRlbnRpZmllcihjb250ZXh0LnJlc291cmNlUmVxdWVzdElkZW50aWZp
ZXIoKSk7Ci0gICAgcmVxdWVzdC5zZXRIVFRQTWV0aG9kKCJHRVQiKTsKKyAgICByZXF1ZXN0LnNl
dEhUVFBNZXRob2QoIkdFVCJfcyk7CiAKICAgICBUaHJlYWRhYmxlTG9hZGVyT3B0aW9ucyBvcHRp
b25zOwogICAgIG9wdGlvbnMuc2VuZExvYWRDYWxsYmFja3MgPSBTZW5kQ2FsbGJhY2tQb2xpY3k6
OlNlbmRDYWxsYmFja3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVz
eXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcAppbmRleCAwZTk1
ZmZkZWU0YWY4NTRlODdlMjUzYTljZGU4NjM0MmY1YTJlZGY4Li5hYTMyYTliYjIyZmI0YmJmOTNi
YWRkNjFkMTI4OGJiZjkwOGQzZDVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAK
QEAgLTU1LDcgKzU1LDcgQEAgRmlsZVN5c3RlbUZpbGVIYW5kbGU6OkZpbGVTeXN0ZW1GaWxlSGFu
ZGxlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFN0cmkKIHZvaWQgRmlsZVN5c3Rl
bUZpbGVIYW5kbGU6OmdldEZpbGUoRE9NUHJvbWlzZURlZmVycmVkPElETEludGVyZmFjZTxGaWxl
Pj4mJiBwcm9taXNlKQogewogICAgIGlmIChpc0Nsb3NlZCgpKQotICAgICAgICByZXR1cm4gcHJv
bWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJIYW5kbGUgaXMgY2xv
c2VkIiB9KTsKKyAgICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IEludmFs
aWRTdGF0ZUVycm9yLCAiSGFuZGxlIGlzIGNsb3NlZCJfcyB9KTsKIAogICAgIGNvbm5lY3Rpb24o
KS5nZXRGaWxlKGlkZW50aWZpZXIoKSwgW3Byb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9LCBw
cm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgewogICAgICAg
ICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQpAQCAtNzIsNyArNzIsNyBAQCB2b2lkIEZpbGVT
eXN0ZW1GaWxlSGFuZGxlOjpnZXRGaWxlKERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8
RmlsZT4+JiYgcHJvbQogdm9pZCBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Y3JlYXRlU3luY0FjY2Vz
c0hhbmRsZShET01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNlPEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlPj4mJiBwcm9taXNlKQogewogICAgIGlmIChpc0Nsb3NlZCgpKQotICAgICAgICBy
ZXR1cm4gcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJIYW5k
bGUgaXMgY2xvc2VkIiB9KTsKKyAgICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0KEV4Y2VwdGlv
biB7IEludmFsaWRTdGF0ZUVycm9yLCAiSGFuZGxlIGlzIGNsb3NlZCJfcyB9KTsKIAogICAgIGNv
bm5lY3Rpb24oKS5jcmVhdGVTeW5jQWNjZXNzSGFuZGxlKGlkZW50aWZpZXIoKSwgW3Byb3RlY3Rl
ZFRoaXMgPSBSZWYgeyAqdGhpcyB9LCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byBy
ZXN1bHQpIG11dGFibGUgewogICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0
ZW1IYW5kbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0Zp
bGVTeXN0ZW1IYW5kbGUuY3BwCmluZGV4IDBiOWY3ODhlNDkwM2ZhN2U3YWU0Mjg5N2EwMDJiOTZl
OGRmZTEzZDcuLjllMGNjODc0YjBjNzM0NDU3YzQ5YzRjMzg2ZGFjMmIzYmY0ZGU1OTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVt
SGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3Mv
RmlsZVN5c3RlbUhhbmRsZS5jcHAKQEAgLTYwLDcgKzYwLDcgQEAgdm9pZCBGaWxlU3lzdGVtSGFu
ZGxlOjpjbG9zZSgpCiB2b2lkIEZpbGVTeXN0ZW1IYW5kbGU6OmlzU2FtZUVudHJ5KEZpbGVTeXN0
ZW1IYW5kbGUmIGhhbmRsZSwgRE9NUHJvbWlzZURlZmVycmVkPElETEJvb2xlYW4+JiYgcHJvbWlz
ZSkgY29uc3QKIHsKICAgICBpZiAoaXNDbG9zZWQoKSkKLSAgICAgICAgcmV0dXJuIHByb21pc2Uu
cmVqZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiSGFuZGxlIGlzIGNsb3NlZCIg
fSk7CisgICAgICAgIHJldHVybiBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3Rh
dGVFcnJvciwgIkhhbmRsZSBpcyBjbG9zZWQiX3MgfSk7CiAKICAgICBpZiAobV9raW5kICE9IGhh
bmRsZS5raW5kKCkgfHwgbV9uYW1lICE9IGhhbmRsZS5uYW1lKCkpCiAgICAgICAgIHJldHVybiBw
cm9taXNlLnJlc29sdmUoZmFsc2UpOwpAQCAtNzMsNyArNzMsNyBAQCB2b2lkIEZpbGVTeXN0ZW1I
YW5kbGU6OmlzU2FtZUVudHJ5KEZpbGVTeXN0ZW1IYW5kbGUmIGhhbmRsZSwgRE9NUHJvbWlzZURl
ZmVycmVkPAogdm9pZCBGaWxlU3lzdGVtSGFuZGxlOjptb3ZlKEZpbGVTeXN0ZW1IYW5kbGUmIGRl
c3RpbmF0aW9uSGFuZGxlLCBjb25zdCBTdHJpbmcmIG5ld05hbWUsIERPTVByb21pc2VEZWZlcnJl
ZDx2b2lkPiYmIHByb21pc2UpCiB7CiAgICAgaWYgKGlzQ2xvc2VkKCkpCi0gICAgICAgIHJldHVy
biBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkhhbmRsZSBp
cyBjbG9zZWQiIH0pOworICAgICAgICByZXR1cm4gcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsg
SW52YWxpZFN0YXRlRXJyb3IsICJIYW5kbGUgaXMgY2xvc2VkIl9zIH0pOwogCiAgICAgaWYgKGRl
c3RpbmF0aW9uSGFuZGxlLmtpbmQoKSAhPSBLaW5kOjpEaXJlY3RvcnkpCiAgICAgICAgIHJldHVy
biBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBUeXBlTWlzbWF0Y2hFcnJvciB9KTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlSWRlbnRp
Zmllci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VJZGVu
dGlmaWVyLmgKaW5kZXggMjcxZGVkNGRlZThiODg4ZDMxZTRjNGMxMWUxZDFmYzg4OWRiYTZhYi4u
NDY1NzY4ZDhlNWU0ZmU0ZGZhYjE4OTNiNzljZTZhYzZkNzdlNTU2NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VJZGVudGlmaWVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VJZGVudGlmaWVy
LmgKQEAgLTcwLDcgKzcwLDcgQEAgcHVibGljOgogICAgIGNvbnN0IENsaWVudE9yaWdpbiYgb3Jp
Z2luKCkgY29uc3QgeyByZXR1cm4gbV9vcmlnaW47IH0KICAgICBib29sIGlzVHJhbnNpZW50KCkg
Y29uc3QgeyByZXR1cm4gbV9pc1RyYW5zaWVudDsgfQogCi0gICAgU3RyaW5nIGRhdGFiYXNlRGly
ZWN0b3J5UmVsYXRpdmVUb1Jvb3QoY29uc3QgU3RyaW5nJiByb290RGlyZWN0b3J5LCBjb25zdCBT
dHJpbmcmIHZlcnNpb25TdHJpbmc9InYxIikgY29uc3Q7CisgICAgU3RyaW5nIGRhdGFiYXNlRGly
ZWN0b3J5UmVsYXRpdmVUb1Jvb3QoY29uc3QgU3RyaW5nJiByb290RGlyZWN0b3J5LCBjb25zdCBT
dHJpbmcmIHZlcnNpb25TdHJpbmcgPSAidjEiX3MpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JU
IHN0YXRpYyBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlSZWxhdGl2ZVRvUm9vdChjb25zdCBDbGll
bnRPcmlnaW4mLCBjb25zdCBTdHJpbmcmIHJvb3REaXJlY3RvcnksIGNvbnN0IFN0cmluZyYgdmVy
c2lvblN0cmluZyk7CiAKICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShF
bmNvZGVyJikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJLZXlEYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QktleURhdGEuY3BwCmluZGV4IDJhMzdjNTI4ZWY1YmY5ZDk1NzczYTBiMTBmMDI1MjI5YmRlNWE0
MTguLjQ2MGYxNzRhMzgxYWI2YWJhNGNhMjk4MzE0NTI2OThiNWQ1MjkwZDAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleURhdGEuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleURhdGEuY3BwCkBAIC0xNDksMzUg
KzE0OSwzNSBAQCB2b2lkIElEQktleURhdGE6Omlzb2xhdGVkQ29weShjb25zdCBJREJLZXlEYXRh
JiBzb3VyY2UsIElEQktleURhdGEmIGRlc3RpbmF0aW9uKQogCiB2b2lkIElEQktleURhdGE6OmVu
Y29kZShLZXllZEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2Rlci5lbmNvZGVC
b29sKCJudWxsIiwgbV9pc051bGwpOworICAgIGVuY29kZXIuZW5jb2RlQm9vbCgibnVsbCJfcywg
bV9pc051bGwpOwogICAgIGlmIChtX2lzTnVsbCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgZW5j
b2Rlci5lbmNvZGVFbnVtKCJ0eXBlIiwgbV90eXBlKTsKKyAgICBlbmNvZGVyLmVuY29kZUVudW0o
InR5cGUiX3MsIG1fdHlwZSk7CiAKICAgICBzd2l0Y2ggKG1fdHlwZSkgewogICAgIGNhc2UgSW5k
ZXhlZERCOjpLZXlUeXBlOjpJbnZhbGlkOgogICAgICAgICByZXR1cm47CiAgICAgY2FzZSBJbmRl
eGVkREI6OktleVR5cGU6OkFycmF5OiB7CiAgICAgICAgIGF1dG8mIGFycmF5ID0gc3RkOjpnZXQ8
VmVjdG9yPElEQktleURhdGE+PihtX3ZhbHVlKTsKLSAgICAgICAgZW5jb2Rlci5lbmNvZGVPYmpl
Y3RzKCJhcnJheSIsIGFycmF5LmJlZ2luKCksIGFycmF5LmVuZCgpLCBbXShLZXllZEVuY29kZXIm
IGVuY29kZXIsIGNvbnN0IElEQktleURhdGEmIGtleSkgeworICAgICAgICBlbmNvZGVyLmVuY29k
ZU9iamVjdHMoImFycmF5Il9zLCBhcnJheS5iZWdpbigpLCBhcnJheS5lbmQoKSwgW10oS2V5ZWRF
bmNvZGVyJiBlbmNvZGVyLCBjb25zdCBJREJLZXlEYXRhJiBrZXkpIHsKICAgICAgICAgICAgIGtl
eS5lbmNvZGUoZW5jb2Rlcik7CiAgICAgICAgIH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQog
ICAgIGNhc2UgSW5kZXhlZERCOjpLZXlUeXBlOjpCaW5hcnk6IHsKICAgICAgICAgYXV0byogZGF0
YSA9IHN0ZDo6Z2V0PFRocmVhZFNhZmVEYXRhQnVmZmVyPihtX3ZhbHVlKS5kYXRhKCk7Ci0gICAg
ICAgIGVuY29kZXIuZW5jb2RlQm9vbCgiaGFzQmluYXJ5IiwgISFkYXRhKTsKKyAgICAgICAgZW5j
b2Rlci5lbmNvZGVCb29sKCJoYXNCaW5hcnkiX3MsICEhZGF0YSk7CiAgICAgICAgIGlmIChkYXRh
KQotICAgICAgICAgICAgZW5jb2Rlci5lbmNvZGVCeXRlcygiYmluYXJ5IiwgZGF0YS0+ZGF0YSgp
LCBkYXRhLT5zaXplKCkpOworICAgICAgICAgICAgZW5jb2Rlci5lbmNvZGVCeXRlcygiYmluYXJ5
Il9zLCBkYXRhLT5kYXRhKCksIGRhdGEtPnNpemUoKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAgICAgY2FzZSBJbmRleGVkREI6OktleVR5cGU6OlN0cmluZzoKLSAgICAgICAgZW5jb2Rlci5l
bmNvZGVTdHJpbmcoInN0cmluZyIsIHN0ZDo6Z2V0PFN0cmluZz4obV92YWx1ZSkpOworICAgICAg
ICBlbmNvZGVyLmVuY29kZVN0cmluZygic3RyaW5nIl9zLCBzdGQ6OmdldDxTdHJpbmc+KG1fdmFs
dWUpKTsKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgSW5kZXhlZERCOjpLZXlUeXBlOjpEYXRl
OgogICAgIGNhc2UgSW5kZXhlZERCOjpLZXlUeXBlOjpOdW1iZXI6Ci0gICAgICAgIGVuY29kZXIu
ZW5jb2RlRG91YmxlKCJudW1iZXIiLCBzdGQ6OmdldDxkb3VibGU+KG1fdmFsdWUpKTsKKyAgICAg
ICAgZW5jb2Rlci5lbmNvZGVEb3VibGUoIm51bWJlciJfcywgc3RkOjpnZXQ8ZG91YmxlPihtX3Zh
bHVlKSk7CiAgICAgICAgIHJldHVybjsKICAgICBjYXNlIEluZGV4ZWREQjo6S2V5VHlwZTo6TWF4
OgogICAgIGNhc2UgSW5kZXhlZERCOjpLZXlUeXBlOjpNaW46CkBAIC0xODksNyArMTg5LDcgQEAg
dm9pZCBJREJLZXlEYXRhOjplbmNvZGUoS2V5ZWRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogCiBi
b29sIElEQktleURhdGE6OmRlY29kZShLZXllZERlY29kZXImIGRlY29kZXIsIElEQktleURhdGEm
IHJlc3VsdCkKIHsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlQm9vbCgibnVsbCIsIHJlc3VsdC5t
X2lzTnVsbCkpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZUJvb2woIm51bGwiX3MsIHJlc3VsdC5t
X2lzTnVsbCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmIChyZXN1bHQubV9pc051
bGwpCkBAIC0yMDUsNyArMjA1LDcgQEAgYm9vbCBJREJLZXlEYXRhOjpkZWNvZGUoS2V5ZWREZWNv
ZGVyJiBkZWNvZGVyLCBJREJLZXlEYXRhJiByZXN1bHQpCiAgICAgICAgICAgICB8fCB2YWx1ZSA9
PSBJbmRleGVkREI6OktleVR5cGU6Ok51bWJlcgogICAgICAgICAgICAgfHwgdmFsdWUgPT0gSW5k
ZXhlZERCOjpLZXlUeXBlOjpNaW47CiAgICAgfTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlRW51
bSgidHlwZSIsIHJlc3VsdC5tX3R5cGUsIGVudW1GdW5jdGlvbikpCisgICAgaWYgKCFkZWNvZGVy
LmRlY29kZUVudW0oInR5cGUiX3MsIHJlc3VsdC5tX3R5cGUsIGVudW1GdW5jdGlvbikpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmIChyZXN1bHQubV90eXBlID09IEluZGV4ZWREQjo6
S2V5VHlwZTo6SW52YWxpZCkKQEAgLTIxOSwyNiArMjE5LDI2IEBAIGJvb2wgSURCS2V5RGF0YTo6
ZGVjb2RlKEtleWVkRGVjb2RlciYgZGVjb2RlciwgSURCS2V5RGF0YSYgcmVzdWx0KQogCiAgICAg
aWYgKHJlc3VsdC5tX3R5cGUgPT0gSW5kZXhlZERCOjpLZXlUeXBlOjpTdHJpbmcpIHsKICAgICAg
ICAgcmVzdWx0Lm1fdmFsdWUgPSBTdHJpbmcoKTsKLSAgICAgICAgcmV0dXJuIGRlY29kZXIuZGVj
b2RlU3RyaW5nKCJzdHJpbmciLCBzdGQ6OmdldDxTdHJpbmc+KHJlc3VsdC5tX3ZhbHVlKSk7Cisg
ICAgICAgIHJldHVybiBkZWNvZGVyLmRlY29kZVN0cmluZygic3RyaW5nIl9zLCBzdGQ6OmdldDxT
dHJpbmc+KHJlc3VsdC5tX3ZhbHVlKSk7CiAgICAgfQogCiAgICAgaWYgKHJlc3VsdC5tX3R5cGUg
PT0gSW5kZXhlZERCOjpLZXlUeXBlOjpOdW1iZXIgfHwgcmVzdWx0Lm1fdHlwZSA9PSBJbmRleGVk
REI6OktleVR5cGU6OkRhdGUpIHsKICAgICAgICAgcmVzdWx0Lm1fdmFsdWUgPSAwLjA7Ci0gICAg
ICAgIHJldHVybiBkZWNvZGVyLmRlY29kZURvdWJsZSgibnVtYmVyIiwgc3RkOjpnZXQ8ZG91Ymxl
PihyZXN1bHQubV92YWx1ZSkpOworICAgICAgICByZXR1cm4gZGVjb2Rlci5kZWNvZGVEb3VibGUo
Im51bWJlciJfcywgc3RkOjpnZXQ8ZG91YmxlPihyZXN1bHQubV92YWx1ZSkpOwogICAgIH0KIAog
ICAgIGlmIChyZXN1bHQubV90eXBlID09IEluZGV4ZWREQjo6S2V5VHlwZTo6QmluYXJ5KSB7CiAg
ICAgICAgIHJlc3VsdC5tX3ZhbHVlID0gVGhyZWFkU2FmZURhdGFCdWZmZXIoKTsKIAogICAgICAg
ICBib29sIGhhc0JpbmFyeURhdGE7Ci0gICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGVCb29sKCJo
YXNCaW5hcnkiLCBoYXNCaW5hcnlEYXRhKSkKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZUJv
b2woImhhc0JpbmFyeSJfcywgaGFzQmluYXJ5RGF0YSkpCiAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAKICAgICAgICAgaWYgKCFoYXNCaW5hcnlEYXRhKQogICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CiAKICAgICAgICAgVmVjdG9yPHVpbnQ4X3Q+IGJ5dGVzOwotICAgICAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlQnl0ZXMoImJpbmFyeSIsIGJ5dGVzKSkKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZUJ5dGVzKCJiaW5hcnkiX3MsIGJ5dGVzKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
IAogICAgICAgICByZXN1bHQubV92YWx1ZSA9IFRocmVhZFNhZmVEYXRhQnVmZmVyOjpjcmVhdGUo
V1RGTW92ZShieXRlcykpOwpAQCAtMjUyLDcgKzI1Miw3IEBAIGJvb2wgSURCS2V5RGF0YTo6ZGVj
b2RlKEtleWVkRGVjb2RlciYgZGVjb2RlciwgSURCS2V5RGF0YSYgcmVzdWx0KQogICAgIH07CiAg
ICAgCiAgICAgcmVzdWx0Lm1fdmFsdWUgPSBWZWN0b3I8SURCS2V5RGF0YT4oKTsKLSAgICByZXR1
cm4gZGVjb2Rlci5kZWNvZGVPYmplY3RzKCJhcnJheSIsIHN0ZDo6Z2V0PFZlY3RvcjxJREJLZXlE
YXRhPj4ocmVzdWx0Lm1fdmFsdWUpLCBhcnJheUZ1bmN0aW9uKTsKKyAgICByZXR1cm4gZGVjb2Rl
ci5kZWNvZGVPYmplY3RzKCJhcnJheSJfcywgc3RkOjpnZXQ8VmVjdG9yPElEQktleURhdGE+Pihy
ZXN1bHQubV92YWx1ZSksIGFycmF5RnVuY3Rpb24pOwogfQogCiBpbnQgSURCS2V5RGF0YTo6Y29t
cGFyZShjb25zdCBJREJLZXlEYXRhJiBvdGhlcikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleVJhbmdlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQktleVJhbmdlLmNwcAppbmRleCAxNGYzMDNhMDRjMjNhOGJm
NDdiZjA2NTlmOTI4NzkyNGY5NjEzYWZiLi5kZWY1MDQ4MTdhZDAzODIyNDc0ZGQyZjVkMTZkMzY5
MGJiOTdmNGE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJLZXlSYW5nZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
S2V5UmFuZ2UuY3BwCkBAIC0xMzcsNyArMTM3LDcgQEAgRXhjZXB0aW9uT3I8Ym9vbD4gSURCS2V5
UmFuZ2U6OmluY2x1ZGVzKEpTQzo6SlNHbG9iYWxPYmplY3QmIHN0YXRlLCBKU0M6OkpTVmFsdWUK
ICAgICBhdXRvIGtleSA9IHNjcmlwdFZhbHVlVG9JREJLZXkoc3RhdGUsIGtleVZhbHVlKTsKICAg
ICBFWENFUFRJT05fQVNTRVJUX1VOVVNFRChzY29wZSwgIXNjb3BlLmV4Y2VwdGlvbigpIHx8ICFr
ZXktPmlzVmFsaWQoKSk7CiAgICAgaWYgKCFrZXktPmlzVmFsaWQoKSkKLSAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IERhdGFFcnJvciwgIkZhaWxlZCB0byBleGVjdXRlICdpbmNsdWRlcycgb24g
J0lEQktleVJhbmdlJzogVGhlIHBhc3NlZC1pbiB2YWx1ZSBpcyBub3QgYSB2YWxpZCBJbmRleGVk
REIga2V5LiIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IERhdGFFcnJvciwgIkZhaWxl
ZCB0byBleGVjdXRlICdpbmNsdWRlcycgb24gJ0lEQktleVJhbmdlJzogVGhlIHBhc3NlZC1pbiB2
YWx1ZSBpcyBub3QgYSB2YWxpZCBJbmRleGVkREIga2V5LiJfcyB9OwogCiAgICAgaWYgKG1fbG93
ZXIpIHsKICAgICAgICAgaW50IGNvbXBhcmUgPSBtX2xvd2VyLT5jb21wYXJlKGtleS5nZXQoKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURC
U2VyaWFsaXphdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2
ZXIvSURCU2VyaWFsaXphdGlvbi5jcHAKaW5kZXggMmEyYzFmYzMyOTU4MDVkNTJmZDU2YWYzMGI0
NTVhZTJjY2NjNDg3Ny4uMzNkNGQ0MWM5Mjc3YmZmMjk3MTM3NTJjODkxZDJjOTA5MWFkMzVjYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNl
cmlhbGl6YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3Nl
cnZlci9JREJTZXJpYWxpemF0aW9uLmNwcApAQCAtNDUsMTcgKzQ1LDE3IEBAIFJlZlB0cjxTaGFy
ZWRCdWZmZXI+IHNlcmlhbGl6ZUlEQktleVBhdGgoY29uc3Qgc3RkOjpvcHRpb25hbDxJREJLZXlQ
YXRoPiYga2V5UGF0CiAKICAgICBpZiAoa2V5UGF0aCkgewogICAgICAgICBhdXRvIHZpc2l0b3Ig
PSBXVEY6Om1ha2VWaXNpdG9yKFsmXShjb25zdCBTdHJpbmcmIHN0cmluZykgewotICAgICAgICAg
ICAgZW5jb2Rlci0+ZW5jb2RlRW51bSgidHlwZSIsIEtleVBhdGhUeXBlOjpTdHJpbmcpOwotICAg
ICAgICAgICAgZW5jb2Rlci0+ZW5jb2RlU3RyaW5nKCJzdHJpbmciLCBzdHJpbmcpOworICAgICAg
ICAgICAgZW5jb2Rlci0+ZW5jb2RlRW51bSgidHlwZSJfcywgS2V5UGF0aFR5cGU6OlN0cmluZyk7
CisgICAgICAgICAgICBlbmNvZGVyLT5lbmNvZGVTdHJpbmcoInN0cmluZyJfcywgc3RyaW5nKTsK
ICAgICAgICAgfSwgWyZdKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiB2ZWN0b3IpIHsKLSAgICAgICAg
ICAgIGVuY29kZXItPmVuY29kZUVudW0oInR5cGUiLCBLZXlQYXRoVHlwZTo6QXJyYXkpOwotICAg
ICAgICAgICAgZW5jb2Rlci0+ZW5jb2RlT2JqZWN0cygiYXJyYXkiLCB2ZWN0b3IuYmVnaW4oKSwg
dmVjdG9yLmVuZCgpLCBbXShXZWJDb3JlOjpLZXllZEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFN0
cmluZyYgc3RyaW5nKSB7Ci0gICAgICAgICAgICAgICAgZW5jb2Rlci5lbmNvZGVTdHJpbmcoInN0
cmluZyIsIHN0cmluZyk7CisgICAgICAgICAgICBlbmNvZGVyLT5lbmNvZGVFbnVtKCJ0eXBlIl9z
LCBLZXlQYXRoVHlwZTo6QXJyYXkpOworICAgICAgICAgICAgZW5jb2Rlci0+ZW5jb2RlT2JqZWN0
cygiYXJyYXkiX3MsIHZlY3Rvci5iZWdpbigpLCB2ZWN0b3IuZW5kKCksIFtdKFdlYkNvcmU6Oktl
eWVkRW5jb2RlciYgZW5jb2RlciwgY29uc3QgU3RyaW5nJiBzdHJpbmcpIHsKKyAgICAgICAgICAg
ICAgICBlbmNvZGVyLmVuY29kZVN0cmluZygic3RyaW5nIl9zLCBzdHJpbmcpOwogICAgICAgICAg
ICAgfSk7CiAgICAgICAgIH0pOwogICAgICAgICBzdGQ6OnZpc2l0KHZpc2l0b3IsIGtleVBhdGgu
dmFsdWUoKSk7CiAgICAgfSBlbHNlCi0gICAgICAgIGVuY29kZXItPmVuY29kZUVudW0oInR5cGUi
LCBLZXlQYXRoVHlwZTo6TnVsbCk7CisgICAgICAgIGVuY29kZXItPmVuY29kZUVudW0oInR5cGUi
X3MsIEtleVBhdGhUeXBlOjpOdWxsKTsKIAogICAgIHJldHVybiBlbmNvZGVyLT5maW5pc2hFbmNv
ZGluZygpOwogfQpAQCAtNjgsNyArNjgsNyBAQCBib29sIGRlc2VyaWFsaXplSURCS2V5UGF0aChj
b25zdCB1aW50OF90KiBkYXRhLCBzaXplX3Qgc2l6ZSwgc3RkOjpvcHRpb25hbDxJREJLZQogICAg
IGF1dG8gZGVjb2RlciA9IEtleWVkRGVjb2Rlcjo6ZGVjb2RlcihkYXRhLCBzaXplKTsKIAogICAg
IEtleVBhdGhUeXBlIHR5cGU7Ci0gICAgYm9vbCBzdWNjZWVkZWQgPSBkZWNvZGVyLT5kZWNvZGVF
bnVtKCJ0eXBlIiwgdHlwZSwgW10oS2V5UGF0aFR5cGUgdmFsdWUpIHsKKyAgICBib29sIHN1Y2Nl
ZWRlZCA9IGRlY29kZXItPmRlY29kZUVudW0oInR5cGUiX3MsIHR5cGUsIFtdKEtleVBhdGhUeXBl
IHZhbHVlKSB7CiAgICAgICAgIHJldHVybiB2YWx1ZSA9PSBLZXlQYXRoVHlwZTo6TnVsbCB8fCB2
YWx1ZSA9PSBLZXlQYXRoVHlwZTo6U3RyaW5nIHx8IHZhbHVlID09IEtleVBhdGhUeXBlOjpBcnJh
eTsKICAgICB9KTsKICAgICBpZiAoIXN1Y2NlZWRlZCkKQEAgLTc5LDE1ICs3OSwxNSBAQCBib29s
IGRlc2VyaWFsaXplSURCS2V5UGF0aChjb25zdCB1aW50OF90KiBkYXRhLCBzaXplX3Qgc2l6ZSwg
c3RkOjpvcHRpb25hbDxJREJLZQogICAgICAgICBicmVhazsKICAgICBjYXNlIEtleVBhdGhUeXBl
OjpTdHJpbmc6IHsKICAgICAgICAgU3RyaW5nIHN0cmluZzsKLSAgICAgICAgaWYgKCFkZWNvZGVy
LT5kZWNvZGVTdHJpbmcoInN0cmluZyIsIHN0cmluZykpCisgICAgICAgIGlmICghZGVjb2Rlci0+
ZGVjb2RlU3RyaW5nKCJzdHJpbmciX3MsIHN0cmluZykpCiAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgICAgIHJlc3VsdCA9IElEQktleVBhdGgoV1RGTW92ZShzdHJpbmcpKTsKICAgICAg
ICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgS2V5UGF0aFR5cGU6OkFycmF5OiB7CiAgICAgICAg
IFZlY3RvcjxTdHJpbmc+IHZlY3RvcjsKLSAgICAgICAgc3VjY2VlZGVkID0gZGVjb2Rlci0+ZGVj
b2RlT2JqZWN0cygiYXJyYXkiLCB2ZWN0b3IsIFtdKEtleWVkRGVjb2RlciYgZGVjb2RlciwgU3Ry
aW5nJiByZXN1bHQpIHsKLSAgICAgICAgICAgIHJldHVybiBkZWNvZGVyLmRlY29kZVN0cmluZygi
c3RyaW5nIiwgcmVzdWx0KTsKKyAgICAgICAgc3VjY2VlZGVkID0gZGVjb2Rlci0+ZGVjb2RlT2Jq
ZWN0cygiYXJyYXkiX3MsIHZlY3RvciwgW10oS2V5ZWREZWNvZGVyJiBkZWNvZGVyLCBTdHJpbmcm
IHJlc3VsdCkgeworICAgICAgICAgICAgcmV0dXJuIGRlY29kZXIuZGVjb2RlU3RyaW5nKCJzdHJp
bmciX3MsIHJlc3VsdCk7CiAgICAgICAgIH0pOwogICAgICAgICBpZiAoIXN1Y2NlZWRlZCkKICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHAKaW5kZXggNzdkZjY2N2Q0MDk5ZDZmYjdk
ODVhMDU1YzIwMDRlNjdiMmFiNWIxZC4uNDg2MDE1ZjdiOTZjMjZiZTZiYWE0MmFhNWZiZDc4ODZm
MTQ4YjQ3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2Vy
dmVyL0lEQlNlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL0lEQlNlcnZlci5jcHAKQEAgLTUzMCwxMCArNTMwLDEwIEBAIHZvaWQgSURCU2VydmVy
OjpnZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMoSURCQ29ubmVjdGlvbklkZW50aWZpZXIg
c2VydmVyQ29uCiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKFdURk1vdmUoKm5hbWVBbmRWZXJz
aW9uKSk7CiAgICAgfQogCi0gICAgYXV0byBvbGREaXJlY3RvcnkgPSBJREJEYXRhYmFzZUlkZW50
aWZpZXI6OmRhdGFiYXNlRGlyZWN0b3J5UmVsYXRpdmVUb1Jvb3Qob3JpZ2luLCBtX2RhdGFiYXNl
RGlyZWN0b3J5UGF0aCwgInYwIik7CisgICAgYXV0byBvbGREaXJlY3RvcnkgPSBJREJEYXRhYmFz
ZUlkZW50aWZpZXI6OmRhdGFiYXNlRGlyZWN0b3J5UmVsYXRpdmVUb1Jvb3Qob3JpZ2luLCBtX2Rh
dGFiYXNlRGlyZWN0b3J5UGF0aCwgInYwIl9zKTsKICAgICBnZXREYXRhYmFzZU5hbWVBbmRWZXJz
aW9uRnJvbU9yaWdpbkRpcmVjdG9yeShvbGREaXJlY3RvcnksIHZpc2l0ZWREYXRhYmFzZVBhdGhz
LCByZXN1bHQpOwogCi0gICAgYXV0byBkaXJlY3RvcnkgPSBJREJEYXRhYmFzZUlkZW50aWZpZXI6
OmRhdGFiYXNlRGlyZWN0b3J5UmVsYXRpdmVUb1Jvb3Qob3JpZ2luLCBtX2RhdGFiYXNlRGlyZWN0
b3J5UGF0aCwgInYxIik7CisgICAgYXV0byBkaXJlY3RvcnkgPSBJREJEYXRhYmFzZUlkZW50aWZp
ZXI6OmRhdGFiYXNlRGlyZWN0b3J5UmVsYXRpdmVUb1Jvb3Qob3JpZ2luLCBtX2RhdGFiYXNlRGly
ZWN0b3J5UGF0aCwgInYxIl9zKTsKICAgICBnZXREYXRhYmFzZU5hbWVBbmRWZXJzaW9uRnJvbU9y
aWdpbkRpcmVjdG9yeShkaXJlY3RvcnksIHZpc2l0ZWREYXRhYmFzZVBhdGhzLCByZXN1bHQpOwog
CiAgICAgYXV0byBjb25uZWN0aW9uID0gbV9jb25uZWN0aW9uTWFwLmdldChzZXJ2ZXJDb25uZWN0
aW9uSWRlbnRpZmllcik7CkBAIC01NjYsOCArNTY2LDggQEAgSGFzaFNldDxTZWN1cml0eU9yaWdp
bkRhdGE+IElEQlNlcnZlcjo6Z2V0T3JpZ2lucygpIGNvbnN0CiAgICAgICAgIHJldHVybiB7IH07
CiAKICAgICBIYXNoU2V0PFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4gc2VjdXJpdHlPcmln
aW5zOwotICAgIGNvbGxlY3RPcmlnaW5zRm9yVmVyc2lvbihGaWxlU3lzdGVtOjpwYXRoQnlBcHBl
bmRpbmdDb21wb25lbnQobV9kYXRhYmFzZURpcmVjdG9yeVBhdGgsICJ2MCIpLCBzZWN1cml0eU9y
aWdpbnMpOwotICAgIGNvbGxlY3RPcmlnaW5zRm9yVmVyc2lvbihGaWxlU3lzdGVtOjpwYXRoQnlB
cHBlbmRpbmdDb21wb25lbnQobV9kYXRhYmFzZURpcmVjdG9yeVBhdGgsICJ2MSIpLCBzZWN1cml0
eU9yaWdpbnMpOworICAgIGNvbGxlY3RPcmlnaW5zRm9yVmVyc2lvbihGaWxlU3lzdGVtOjpwYXRo
QnlBcHBlbmRpbmdDb21wb25lbnQobV9kYXRhYmFzZURpcmVjdG9yeVBhdGgsICJ2MCJfcyksIHNl
Y3VyaXR5T3JpZ2lucyk7CisgICAgY29sbGVjdE9yaWdpbnNGb3JWZXJzaW9uKEZpbGVTeXN0ZW06
OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChtX2RhdGFiYXNlRGlyZWN0b3J5UGF0aCwgInYxIl9z
KSwgc2VjdXJpdHlPcmlnaW5zKTsKIAogICAgIHJldHVybiBzZWN1cml0eU9yaWdpbnM7CiB9CkBA
IC01ODgsOCArNTg4LDggQEAgdm9pZCBJREJTZXJ2ZXI6OmNsb3NlQW5kRGVsZXRlRGF0YWJhc2Vz
TW9kaWZpZWRTaW5jZShXYWxsVGltZSBtb2RpZmljYXRpb25UaW1lKQogICAgIG1fdW5pcXVlSURC
RGF0YWJhc2VNYXAuY2xlYXIoKTsKIAogICAgIGlmICghbV9kYXRhYmFzZURpcmVjdG9yeVBhdGgu
aXNFbXB0eSgpKSB7Ci0gICAgICAgIHJlbW92ZURhdGFiYXNlc01vZGlmaWVkU2luY2VGb3JWZXJz
aW9uKG1vZGlmaWNhdGlvblRpbWUsICJ2MCIpOwotICAgICAgICByZW1vdmVEYXRhYmFzZXNNb2Rp
ZmllZFNpbmNlRm9yVmVyc2lvbihtb2RpZmljYXRpb25UaW1lLCAidjEiKTsKKyAgICAgICAgcmVt
b3ZlRGF0YWJhc2VzTW9kaWZpZWRTaW5jZUZvclZlcnNpb24obW9kaWZpY2F0aW9uVGltZSwgInYw
Il9zKTsKKyAgICAgICAgcmVtb3ZlRGF0YWJhc2VzTW9kaWZpZWRTaW5jZUZvclZlcnNpb24obW9k
aWZpY2F0aW9uVGltZSwgInYxIl9zKTsKICAgICB9CiB9CiAKQEAgLTYyNCw4ICs2MjQsOCBAQCB2
b2lkIElEQlNlcnZlcjo6Y2xvc2VBbmREZWxldGVEYXRhYmFzZXNGb3JPcmlnaW5zKGNvbnN0IFZl
Y3RvcjxTZWN1cml0eU9yaWdpbkRhdAogICAgIH0pOwogCiAgICAgaWYgKCFtX2RhdGFiYXNlRGly
ZWN0b3J5UGF0aC5pc0VtcHR5KCkpIHsKLSAgICAgICAgcmVtb3ZlRGF0YWJhc2VzV2l0aE9yaWdp
bnNGb3JWZXJzaW9uKG9yaWdpbnMsICJ2MCIpOwotICAgICAgICByZW1vdmVEYXRhYmFzZXNXaXRo
T3JpZ2luc0ZvclZlcnNpb24ob3JpZ2lucywgInYxIik7CisgICAgICAgIHJlbW92ZURhdGFiYXNl
c1dpdGhPcmlnaW5zRm9yVmVyc2lvbihvcmlnaW5zLCAidjAiX3MpOworICAgICAgICByZW1vdmVE
YXRhYmFzZXNXaXRoT3JpZ2luc0ZvclZlcnNpb24ob3JpZ2lucywgInYxIl9zKTsKICAgICB9CiB9
CiAKQEAgLTYzNiw3ICs2MzYsNyBAQCBzdGF0aWMgdm9pZCByZW1vdmVBbGxEYXRhYmFzZXNGb3JG
dWxsT3JpZ2luUGF0aChjb25zdCBTdHJpbmcmIG9yaWdpblBhdGgsIFdhbGxUaQogCiAgICAgZm9y
IChhdXRvJiBkYXRhYmFzZU5hbWUgOiBkYXRhYmFzZU5hbWVzKSB7CiAgICAgICAgIGF1dG8gZGF0
YWJhc2VQYXRoID0gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KG9yaWdpblBh
dGgsIGRhdGFiYXNlTmFtZSk7Ci0gICAgICAgIFN0cmluZyBkYXRhYmFzZUZpbGUgPSBGaWxlU3lz
dGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoZGF0YWJhc2VQYXRoLCAiSW5kZXhlZERCLnNx
bGl0ZTMiKTsKKyAgICAgICAgU3RyaW5nIGRhdGFiYXNlRmlsZSA9IEZpbGVTeXN0ZW06OnBhdGhC
eUFwcGVuZGluZ0NvbXBvbmVudChkYXRhYmFzZVBhdGgsICJJbmRleGVkREIuc3FsaXRlMyJfcyk7
CiAgICAgICAgIGlmIChtb2RpZmllZFNpbmNlID4gLVdhbGxUaW1lOjppbmZpbml0eSgpICYmIEZp
bGVTeXN0ZW06OmZpbGVFeGlzdHMoZGF0YWJhc2VGaWxlKSkgewogICAgICAgICAgICAgYXV0byBt
b2RpZmljYXRpb25UaW1lID0gRmlsZVN5c3RlbTo6ZmlsZU1vZGlmaWNhdGlvblRpbWUoZGF0YWJh
c2VGaWxlKTsKICAgICAgICAgICAgIGlmICghbW9kaWZpY2F0aW9uVGltZSkKQEAgLTczMiw3ICs3
MzIsNyBAQCB2b2lkIElEQlNlcnZlcjo6cmVuYW1lT3JpZ2luKGNvbnN0IFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luRGF0YSYgb2xkT3JpZ2luLCBjb25zdAogICAgICAgICByZXR1cm4gZGF0YWJhc2VP
cmlnaW4udG9wT3JpZ2luID09IHRhcmdldE9yaWdpbjsKICAgICB9KTsKIAotICAgIGF1dG8gdmVy
c2lvblBhdGggPSBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQobV9kYXRhYmFz
ZURpcmVjdG9yeVBhdGgsICJ2MSIpOworICAgIGF1dG8gdmVyc2lvblBhdGggPSBGaWxlU3lzdGVt
OjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQobV9kYXRhYmFzZURpcmVjdG9yeVBhdGgsICJ2MSJf
cyk7CiAgICAgYXV0byBvbGRPcmlnaW5QYXRoID0gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5n
Q29tcG9uZW50KHZlcnNpb25QYXRoLCBvbGRPcmlnaW4uZGF0YWJhc2VJZGVudGlmaWVyKCkpOwog
ICAgIGF1dG8gbmV3T3JpZ2luUGF0aCA9IEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBv
bmVudCh2ZXJzaW9uUGF0aCwgbmV3T3JpZ2luLmRhdGFiYXNlSWRlbnRpZmllcigpKTsKICAgICBp
ZiAoRmlsZVN5c3RlbTo6ZmlsZUV4aXN0cyhvbGRPcmlnaW5QYXRoKSkKQEAgLTc2OCwxNiArNzY4
LDE2IEBAIHZvaWQgSURCU2VydmVyOjp1cGdyYWRlRmlsZXNJZk5lY2Vzc2FyeSgpCiAgICAgaWYg
KG1fZGF0YWJhc2VEaXJlY3RvcnlQYXRoLmlzRW1wdHkoKSB8fCAhRmlsZVN5c3RlbTo6ZmlsZUV4
aXN0cyhtX2RhdGFiYXNlRGlyZWN0b3J5UGF0aCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFN0
cmluZyBuZXdWZXJzaW9uRGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29t
cG9uZW50KG1fZGF0YWJhc2VEaXJlY3RvcnlQYXRoLCAidjEiKTsKKyAgICBTdHJpbmcgbmV3VmVy
c2lvbkRpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChtX2Rh
dGFiYXNlRGlyZWN0b3J5UGF0aCwgInYxIl9zKTsKICAgICBpZiAoIUZpbGVTeXN0ZW06OmZpbGVF
eGlzdHMobmV3VmVyc2lvbkRpcmVjdG9yeSkpCiAgICAgICAgIEZpbGVTeXN0ZW06Om1ha2VBbGxE
aXJlY3RvcmllcyhuZXdWZXJzaW9uRGlyZWN0b3J5KTsKIH0KIAogU3RyaW5nIElEQlNlcnZlcjo6
dXBncmFkZWREYXRhYmFzZURpcmVjdG9yeShjb25zdCBXZWJDb3JlOjpJREJEYXRhYmFzZUlkZW50
aWZpZXImIGlkZW50aWZpZXIpCiB7Ci0gICAgU3RyaW5nIG9sZE9yaWdpbkRpcmVjdG9yeSA9IGlk
ZW50aWZpZXIuZGF0YWJhc2VEaXJlY3RvcnlSZWxhdGl2ZVRvUm9vdChtX2RhdGFiYXNlRGlyZWN0
b3J5UGF0aCwgInYwIik7CisgICAgU3RyaW5nIG9sZE9yaWdpbkRpcmVjdG9yeSA9IGlkZW50aWZp
ZXIuZGF0YWJhc2VEaXJlY3RvcnlSZWxhdGl2ZVRvUm9vdChtX2RhdGFiYXNlRGlyZWN0b3J5UGF0
aCwgInYwIl9zKTsKICAgICBTdHJpbmcgb2xkRGF0YWJhc2VEaXJlY3RvcnkgPSBGaWxlU3lzdGVt
OjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQob2xkT3JpZ2luRGlyZWN0b3J5LCBTUUxpdGVJREJC
YWNraW5nU3RvcmU6OmVuY29kZURhdGFiYXNlTmFtZShpZGVudGlmaWVyLmRhdGFiYXNlTmFtZSgp
KSk7Ci0gICAgU3RyaW5nIG5ld09yaWdpbkRpcmVjdG9yeSA9IGlkZW50aWZpZXIuZGF0YWJhc2VE
aXJlY3RvcnlSZWxhdGl2ZVRvUm9vdChtX2RhdGFiYXNlRGlyZWN0b3J5UGF0aCwgInYxIik7Cisg
ICAgU3RyaW5nIG5ld09yaWdpbkRpcmVjdG9yeSA9IGlkZW50aWZpZXIuZGF0YWJhc2VEaXJlY3Rv
cnlSZWxhdGl2ZVRvUm9vdChtX2RhdGFiYXNlRGlyZWN0b3J5UGF0aCwgInYxIl9zKTsKICAgICBT
dHJpbmcgZmlsZU5hbWVIYXNoID0gU1FMaXRlRmlsZVN5c3RlbTo6Y29tcHV0ZUhhc2hGb3JGaWxl
TmFtZShpZGVudGlmaWVyLmRhdGFiYXNlTmFtZSgpKTsKICAgICBTdHJpbmcgbmV3RGF0YWJhc2VE
aXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQobmV3T3JpZ2lu
RGlyZWN0b3J5LCBmaWxlTmFtZUhhc2gpOwogICAgIEZpbGVTeXN0ZW06Om1ha2VBbGxEaXJlY3Rv
cmllcyhuZXdEYXRhYmFzZURpcmVjdG9yeSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5SURCQmFja2luZ1N0b3JlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlJREJCYWNraW5nU3RvcmUu
Y3BwCmluZGV4IGQ2MzM1MDMwOTkzMDU1YjliMTJiNzg0NTY1NWRhODMzNzJiMWE1NTAuLjFjMjdh
ZDYxNzlmMWJlYWQwZmYxYTZkZWNmYjlhZTJiNWU5NTNmOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlJREJCYWNraW5nU3RvcmUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlJREJC
YWNraW5nU3RvcmUuY3BwCkBAIC03OCw3ICs3OCw3IEBAIElEQkVycm9yIE1lbW9yeUlEQkJhY2tp
bmdTdG9yZTo6YmVnaW5UcmFuc2FjdGlvbihjb25zdCBJREJUcmFuc2FjdGlvbkluZm8mIGluZm8p
CiAgICAgTE9HKEluZGV4ZWREQiwgIk1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6YmVnaW5UcmFuc2Fj
dGlvbiIpOwogCiAgICAgaWYgKG1fdHJhbnNhY3Rpb25zLmNvbnRhaW5zKGluZm8uaWRlbnRpZmll
cigpKSkKLSAgICAgICAgcmV0dXJuIElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNr
aW5nIHN0b3JlIGFza2VkIHRvIGNyZWF0ZSB0cmFuc2FjdGlvbiBpdCBhbHJlYWR5IGhhcyBhIHJl
Y29yZCBvZiIgfTsKKyAgICAgICAgcmV0dXJuIElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3Is
ICJCYWNraW5nIHN0b3JlIGFza2VkIHRvIGNyZWF0ZSB0cmFuc2FjdGlvbiBpdCBhbHJlYWR5IGhh
cyBhIHJlY29yZCBvZiJfcyB9OwogCiAgICAgYXV0byB0cmFuc2FjdGlvbiA9IE1lbW9yeUJhY2tp
bmdTdG9yZVRyYW5zYWN0aW9uOjpjcmVhdGUoKnRoaXMsIGluZm8pOwogCkBAIC0xMDQsNyArMTA0
LDcgQEAgSURCRXJyb3IgTWVtb3J5SURCQmFja2luZ1N0b3JlOjphYm9ydFRyYW5zYWN0aW9uKGNv
bnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHIKIAogICAgIGF1dG8gdHJhbnNhY3Rpb24gPSBt
X3RyYW5zYWN0aW9ucy50YWtlKHRyYW5zYWN0aW9uSWRlbnRpZmllcik7CiAgICAgaWYgKCF0cmFu
c2FjdGlvbikKLSAgICAgICAgcmV0dXJuIElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJC
YWNraW5nIHN0b3JlIGFza2VkIHRvIGFib3J0IHRyYW5zYWN0aW9uIGl0IGRpZG4ndCBoYXZlIHJl
Y29yZCBvZiIgfTsKKyAgICAgICAgcmV0dXJuIElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3Is
ICJCYWNraW5nIHN0b3JlIGFza2VkIHRvIGFib3J0IHRyYW5zYWN0aW9uIGl0IGRpZG4ndCBoYXZl
IHJlY29yZCBvZiJfcyB9OwogCiAgICAgdHJhbnNhY3Rpb24tPmFib3J0KCk7CiAKQEAgLTExNyw3
ICsxMTcsNyBAQCBJREJFcnJvciBNZW1vcnlJREJCYWNraW5nU3RvcmU6OmNvbW1pdFRyYW5zYWN0
aW9uKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdAogCiAgICAgYXV0byB0cmFuc2FjdGlv
biA9IG1fdHJhbnNhY3Rpb25zLnRha2UodHJhbnNhY3Rpb25JZGVudGlmaWVyKTsKICAgICBpZiAo
IXRyYW5zYWN0aW9uKQotICAgICAgICByZXR1cm4gSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJv
ciwgIkJhY2tpbmcgc3RvcmUgYXNrZWQgdG8gY29tbWl0IHRyYW5zYWN0aW9uIGl0IGRpZG4ndCBo
YXZlIHJlY29yZCBvZiIgfTsKKyAgICAgICAgcmV0dXJuIElEQkVycm9yIHsgSW52YWxpZFN0YXRl
RXJyb3IsICJCYWNraW5nIHN0b3JlIGFza2VkIHRvIGNvbW1pdCB0cmFuc2FjdGlvbiBpdCBkaWRu
J3QgaGF2ZSByZWNvcmQgb2YiX3MgfTsKIAogICAgIHRyYW5zYWN0aW9uLT5jb21taXQoKTsKIApA
QCAtNDczLDcgKzQ3Myw3IEBAIElEQkVycm9yIE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6Z2VuZXJh
dGVLZXlOdW1iZXIoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0CiAKICAgICBrZXlOdW1i
ZXIgPSBvYmplY3RTdG9yZS0+Y3VycmVudEtleUdlbmVyYXRvclZhbHVlKCk7CiAgICAgaWYgKGtl
eU51bWJlciA+IG1heEdlbmVyYXRlZEtleVZhbHVlKQotICAgICAgICByZXR1cm4gSURCRXJyb3Ig
eyBDb25zdHJhaW50RXJyb3IsICJDYW5ub3QgZ2VuZXJhdGUgbmV3IGtleSB2YWx1ZSBvdmVyIDJe
NTMgZm9yIG9iamVjdCBzdG9yZSBvcGVyYXRpb24iIH07CisgICAgICAgIHJldHVybiBJREJFcnJv
ciB7IENvbnN0cmFpbnRFcnJvciwgIkNhbm5vdCBnZW5lcmF0ZSBuZXcga2V5IHZhbHVlIG92ZXIg
Ml41MyBmb3Igb2JqZWN0IHN0b3JlIG9wZXJhdGlvbiJfcyB9OwogCiAgICAgb2JqZWN0U3RvcmUt
PnNldEtleUdlbmVyYXRvclZhbHVlKGtleU51bWJlciArIDEpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5T2JqZWN0U3RvcmUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeU9iamVjdFN0
b3JlLmNwcAppbmRleCA3ZWY5ZDBhMzg3ZjcyN2Q4NWVjMGRlZWY2ZDNjYWUwZGVkMDE1OGNmLi44
OTIzMWI0YWUyNDk2OGU4OWIwZDc1ODExNTFmNTI4ZWUzZTJmYjRlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5T2JqZWN0U3RvcmUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlPYmpl
Y3RTdG9yZS5jcHAKQEAgLTMxMCw3ICszMTAsNyBAQCBJREJFcnJvciBNZW1vcnlPYmplY3RTdG9y
ZTo6dXBkYXRlSW5kZXhlc0ZvclB1dFJlY29yZChjb25zdCBJREJLZXlEYXRhJiBrZXksIGNvbgog
ICAgICAgICBhdXRvKiBpbmRleCA9IG1faW5kZXhlc0J5SWRlbnRpZmllci5nZXQoaW5kZXhJRCk7
CiAgICAgICAgIEFTU0VSVChpbmRleCk7CiAgICAgICAgIGlmICghaW5kZXgpIHsKLSAgICAgICAg
ICAgIGVycm9yID0gSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIk1pc3NpbmcgaW5kZXgg
bWV0YWRhdGEiIH07CisgICAgICAgICAgICBlcnJvciA9IElEQkVycm9yIHsgSW52YWxpZFN0YXRl
RXJyb3IsICJNaXNzaW5nIGluZGV4IG1ldGFkYXRhIl9zIH07CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuY3BwCmluZGV4IDJmYWYz
ZTk1ZDMxYzk4OWZjZTEyZTA1N2YwNmMyMmUyZmY3M2M0NmUuLmNiZDQ2Mjc5MDc4Nzc4MDJmMzhj
NmE0ZGZiNjZjMWEyMjMxZGIzY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuY3Bw
CkBAIC05OCwzNyArOTgsMzcgQEAgc3RhdGljIGludCBpZGJLZXlDb2xsYXRlKGludCBhTGVuZ3Ro
LCBjb25zdCB2b2lkKiBhQnVmZmVyLCBpbnQgYkxlbmd0aCwgY29uc3Qgdm8KICAgICByZXR1cm4g
YS5jb21wYXJlKGIpOwogfQogCi1zdGF0aWMgY29uc3QgU3RyaW5nIHYxUmVjb3Jkc1RhYmxlU2No
ZW1hKGNvbnN0IFN0cmluZyYgdGFibGVOYW1lKQorc3RhdGljIGNvbnN0IFN0cmluZyB2MVJlY29y
ZHNUYWJsZVNjaGVtYShBU0NJSUxpdGVyYWwgdGFibGVOYW1lKQogewogICAgIHJldHVybiBtYWtl
U3RyaW5nKCJDUkVBVEUgVEFCTEUgIiwgdGFibGVOYW1lLCAiIChvYmplY3RTdG9yZUlEIElOVEVH
RVIgTk9UIE5VTEwgT04gQ09ORkxJQ1QgRkFJTCwga2V5IFRFWFQgQ09MTEFURSBJREJLRVkgTk9U
IE5VTEwgT04gQ09ORkxJQ1QgRkFJTCBVTklRVUUgT04gQ09ORkxJQ1QgUkVQTEFDRSwgdmFsdWUg
Tk9UIE5VTEwgT04gQ09ORkxJQ1QgRkFJTCkiKTsKIH0KIAogc3RhdGljIGNvbnN0IFN0cmluZyYg
djFSZWNvcmRzVGFibGVTY2hlbWEoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJp
bmc+IHYxUmVjb3Jkc1RhYmxlU2NoZW1hU3RyaW5nKHYxUmVjb3Jkc1RhYmxlU2NoZW1hKCJSZWNv
cmRzIikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHYxUmVjb3Jkc1RhYmxl
U2NoZW1hU3RyaW5nKHYxUmVjb3Jkc1RhYmxlU2NoZW1hKCJSZWNvcmRzIl9zKSk7CiAgICAgcmV0
dXJuIHYxUmVjb3Jkc1RhYmxlU2NoZW1hU3RyaW5nOwogfQogCiBzdGF0aWMgY29uc3QgU3RyaW5n
JiB2MVJlY29yZHNUYWJsZVNjaGVtYUFsdGVybmF0ZSgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPFN0cmluZz4gdjFSZWNvcmRzVGFibGVTY2hlbWFTdHJpbmcodjFSZWNvcmRzVGFibGVT
Y2hlbWEoIlwiUmVjb3Jkc1wiIikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+
IHYxUmVjb3Jkc1RhYmxlU2NoZW1hU3RyaW5nKHYxUmVjb3Jkc1RhYmxlU2NoZW1hKCJcIlJlY29y
ZHNcIiJfcykpOwogICAgIHJldHVybiB2MVJlY29yZHNUYWJsZVNjaGVtYVN0cmluZzsKIH0KIAot
c3RhdGljIGNvbnN0IFN0cmluZyB2MlJlY29yZHNUYWJsZVNjaGVtYShjb25zdCBTdHJpbmcmIHRh
YmxlTmFtZSkKK3N0YXRpYyBjb25zdCBTdHJpbmcgdjJSZWNvcmRzVGFibGVTY2hlbWEoQVNDSUlM
aXRlcmFsIHRhYmxlTmFtZSkKIHsKICAgICByZXR1cm4gbWFrZVN0cmluZygiQ1JFQVRFIFRBQkxF
ICIsIHRhYmxlTmFtZSwgIiAob2JqZWN0U3RvcmVJRCBJTlRFR0VSIE5PVCBOVUxMIE9OIENPTkZM
SUNUIEZBSUwsIGtleSBURVhUIENPTExBVEUgSURCS0VZIE5PVCBOVUxMIE9OIENPTkZMSUNUIEZB
SUwsIHZhbHVlIE5PVCBOVUxMIE9OIENPTkZMSUNUIEZBSUwpIik7CiB9CiAKIHN0YXRpYyBjb25z
dCBTdHJpbmcmIHYyUmVjb3Jkc1RhYmxlU2NoZW1hKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8U3RyaW5nPiB2MlJlY29yZHNUYWJsZVNjaGVtYVN0cmluZyh2MlJlY29yZHNUYWJsZVNj
aGVtYSgiUmVjb3JkcyIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiB2MlJl
Y29yZHNUYWJsZVNjaGVtYVN0cmluZyh2MlJlY29yZHNUYWJsZVNjaGVtYSgiUmVjb3JkcyJfcykp
OwogICAgIHJldHVybiB2MlJlY29yZHNUYWJsZVNjaGVtYVN0cmluZzsKIH0KIAogc3RhdGljIGNv
bnN0IFN0cmluZyYgdjJSZWNvcmRzVGFibGVTY2hlbWFBbHRlcm5hdGUoKQogewotICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHYyUmVjb3Jkc1RhYmxlU2NoZW1hU3RyaW5nKHYyUmVj
b3Jkc1RhYmxlU2NoZW1hKCJcIlJlY29yZHNcIiIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8U3RyaW5nPiB2MlJlY29yZHNUYWJsZVNjaGVtYVN0cmluZyh2MlJlY29yZHNUYWJsZVNjaGVt
YSgiXCJSZWNvcmRzXCIiX3MpKTsKICAgICByZXR1cm4gdjJSZWNvcmRzVGFibGVTY2hlbWFTdHJp
bmc7CiB9CiAKQEAgLTE0NywzNyArMTQ3LDM3IEBAIHN0YXRpYyBBU0NJSUxpdGVyYWwgdjNSZWNv
cmRzVGFibGVTY2hlbWFUZW1wKCkKICAgICByZXR1cm4gVEFCTEVfU0NIRU1BX1BSRUZJWCAiX1Rl
bXBfUmVjb3JkcyIgVjNfUkVDT1JEU19UQUJMRV9TQ0hFTUFfU1VGRklYOwogfQogCi1zdGF0aWMg
Y29uc3QgU3RyaW5nIHYxSW5kZXhSZWNvcmRzVGFibGVTY2hlbWEoY29uc3QgU3RyaW5nJiB0YWJs
ZU5hbWUpCitzdGF0aWMgY29uc3QgU3RyaW5nIHYxSW5kZXhSZWNvcmRzVGFibGVTY2hlbWEoQVND
SUlMaXRlcmFsIHRhYmxlTmFtZSkKIHsKICAgICByZXR1cm4gbWFrZVN0cmluZygiQ1JFQVRFIFRB
QkxFICIsIHRhYmxlTmFtZSwgIiAoaW5kZXhJRCBJTlRFR0VSIE5PVCBOVUxMIE9OIENPTkZMSUNU
IEZBSUwsIG9iamVjdFN0b3JlSUQgSU5URUdFUiBOT1QgTlVMTCBPTiBDT05GTElDVCBGQUlMLCBr
ZXkgVEVYVCBDT0xMQVRFIElEQktFWSBOT1QgTlVMTCBPTiBDT05GTElDVCBGQUlMLCB2YWx1ZSBO
T1QgTlVMTCBPTiBDT05GTElDVCBGQUlMKSIpOwogfQogCiBzdGF0aWMgY29uc3QgU3RyaW5nJiB2
MUluZGV4UmVjb3Jkc1RhYmxlU2NoZW1hKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
U3RyaW5nPiB2MUluZGV4UmVjb3Jkc1RhYmxlU2NoZW1hU3RyaW5nKHYxSW5kZXhSZWNvcmRzVGFi
bGVTY2hlbWEoIkluZGV4UmVjb3JkcyIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3Ry
aW5nPiB2MUluZGV4UmVjb3Jkc1RhYmxlU2NoZW1hU3RyaW5nKHYxSW5kZXhSZWNvcmRzVGFibGVT
Y2hlbWEoIkluZGV4UmVjb3JkcyJfcykpOwogICAgIHJldHVybiB2MUluZGV4UmVjb3Jkc1RhYmxl
U2NoZW1hU3RyaW5nOwogfQogCiBzdGF0aWMgY29uc3QgU3RyaW5nJiB2MUluZGV4UmVjb3Jkc1Rh
YmxlU2NoZW1hQWx0ZXJuYXRlKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5n
PiB2MUluZGV4UmVjb3Jkc1RhYmxlU2NoZW1hU3RyaW5nKHYxSW5kZXhSZWNvcmRzVGFibGVTY2hl
bWEoIlwiSW5kZXhSZWNvcmRzXCIiKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmlu
Zz4gdjFJbmRleFJlY29yZHNUYWJsZVNjaGVtYVN0cmluZyh2MUluZGV4UmVjb3Jkc1RhYmxlU2No
ZW1hKCJcIkluZGV4UmVjb3Jkc1wiIl9zKSk7CiAgICAgcmV0dXJuIHYxSW5kZXhSZWNvcmRzVGFi
bGVTY2hlbWFTdHJpbmc7CiB9CiAKLXN0YXRpYyBjb25zdCBTdHJpbmcgdjJJbmRleFJlY29yZHNU
YWJsZVNjaGVtYShjb25zdCBTdHJpbmcmIHRhYmxlTmFtZSkKK3N0YXRpYyBjb25zdCBTdHJpbmcg
djJJbmRleFJlY29yZHNUYWJsZVNjaGVtYShBU0NJSUxpdGVyYWwgdGFibGVOYW1lKQogewogICAg
IHJldHVybiBtYWtlU3RyaW5nKCJDUkVBVEUgVEFCTEUgIiwgdGFibGVOYW1lLCAiIChpbmRleElE
IElOVEVHRVIgTk9UIE5VTEwgT04gQ09ORkxJQ1QgRkFJTCwgb2JqZWN0U3RvcmVJRCBJTlRFR0VS
IE5PVCBOVUxMIE9OIENPTkZMSUNUIEZBSUwsIGtleSBURVhUIENPTExBVEUgSURCS0VZIE5PVCBO
VUxMIE9OIENPTkZMSUNUIEZBSUwsIHZhbHVlIFRFWFQgQ09MTEFURSBJREJLRVkgTk9UIE5VTEwg
T04gQ09ORkxJQ1QgRkFJTCkiKTsKIH0KIAogc3RhdGljIGNvbnN0IFN0cmluZyYgdjJJbmRleFJl
Y29yZHNUYWJsZVNjaGVtYSgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4g
djJJbmRleFJlY29yZHNUYWJsZVNjaGVtYVN0cmluZyh2MkluZGV4UmVjb3Jkc1RhYmxlU2NoZW1h
KCJJbmRleFJlY29yZHMiKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gdjJJ
bmRleFJlY29yZHNUYWJsZVNjaGVtYVN0cmluZyh2MkluZGV4UmVjb3Jkc1RhYmxlU2NoZW1hKCJJ
bmRleFJlY29yZHMiX3MpKTsKICAgICByZXR1cm4gdjJJbmRleFJlY29yZHNUYWJsZVNjaGVtYVN0
cmluZzsKIH0KIAogc3RhdGljIGNvbnN0IFN0cmluZyYgdjJJbmRleFJlY29yZHNUYWJsZVNjaGVt
YUFsdGVybmF0ZSgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gdjJJbmRl
eFJlY29yZHNUYWJsZVNjaGVtYVN0cmluZyh2MkluZGV4UmVjb3Jkc1RhYmxlU2NoZW1hKCJcIklu
ZGV4UmVjb3Jkc1wiIikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHYySW5k
ZXhSZWNvcmRzVGFibGVTY2hlbWFTdHJpbmcodjJJbmRleFJlY29yZHNUYWJsZVNjaGVtYSgiXCJJ
bmRleFJlY29yZHNcIiJfcykpOwogICAgIHJldHVybiB2MkluZGV4UmVjb3Jkc1RhYmxlU2NoZW1h
U3RyaW5nOwogfQogCkBAIC05MTQsNyArOTE0LDcgQEAgU3RyaW5nIFNRTGl0ZUlEQkJhY2tpbmdT
dG9yZTo6ZW5jb2RlRGF0YWJhc2VOYW1lKGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lKQogewog
ICAgIEFTU0VSVCghZGF0YWJhc2VOYW1lLmlzRW1wdHkoKSk7CiAgICAgaWYgKGRhdGFiYXNlTmFt
ZS5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiAiJTAwIjsKKyAgICAgICAgcmV0dXJuICIlMDAi
X3M7CiAKICAgICBTdHJpbmcgZmlsZW5hbWUgPSBGaWxlU3lzdGVtOjplbmNvZGVGb3JGaWxlTmFt
ZShkYXRhYmFzZU5hbWUpOwogICAgIGZpbGVuYW1lLnJlcGxhY2VXaXRoTGl0ZXJhbCgnLicsICIl
MkUiKTsKQEAgLTkzNSw3ICs5MzUsNyBAQCBTdHJpbmcgU1FMaXRlSURCQmFja2luZ1N0b3JlOjpk
ZWNvZGVEYXRhYmFzZU5hbWUoY29uc3QgU3RyaW5nJiBlbmNvZGVkTmFtZSkKIAogU3RyaW5nIFNR
TGl0ZUlEQkJhY2tpbmdTdG9yZTo6ZnVsbERhdGFiYXNlUGF0aEZvckRpcmVjdG9yeShjb25zdCBT
dHJpbmcmIGZ1bGxEYXRhYmFzZURpcmVjdG9yeSkKIHsKLSAgICByZXR1cm4gRmlsZVN5c3RlbTo6
cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KGZ1bGxEYXRhYmFzZURpcmVjdG9yeSwgIkluZGV4ZWRE
Qi5zcWxpdGUzIik7CisgICAgcmV0dXJuIEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBv
bmVudChmdWxsRGF0YWJhc2VEaXJlY3RvcnksICJJbmRleGVkREIuc3FsaXRlMyJfcyk7CiB9CiAK
IFN0cmluZyBTUUxpdGVJREJCYWNraW5nU3RvcmU6OmZ1bGxEYXRhYmFzZVBhdGgoKSBjb25zdApA
QCAtOTk2LDcgKzk5Niw3IEBAIElEQkVycm9yIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6Z2V0T3JF
c3RhYmxpc2hEYXRhYmFzZUluZm8oSURCRGF0YWJhc2VJbmZvJiBpbmZvCiAgICAgbV9zcWxpdGVE
Qi0+ZGlzYWJsZVRocmVhZGluZ0NoZWNrcygpOwogICAgIG1fc3FsaXRlREItPmVuYWJsZUF1dG9t
YXRpY1dBTFRydW5jYXRpb24oKTsKIAotICAgIG1fc3FsaXRlREItPnNldENvbGxhdGlvbkZ1bmN0
aW9uKCJJREJLRVkiLCBbXShpbnQgYUxlbmd0aCwgY29uc3Qgdm9pZCogYSwgaW50IGJMZW5ndGgs
IGNvbnN0IHZvaWQqIGIpIHsKKyAgICBtX3NxbGl0ZURCLT5zZXRDb2xsYXRpb25GdW5jdGlvbigi
SURCS0VZIl9zLCBbXShpbnQgYUxlbmd0aCwgY29uc3Qgdm9pZCogYSwgaW50IGJMZW5ndGgsIGNv
bnN0IHZvaWQqIGIpIHsKICAgICAgICAgcmV0dXJuIGlkYktleUNvbGxhdGUoYUxlbmd0aCwgYSwg
Ykxlbmd0aCwgYik7CiAgICAgfSk7CiAKQEAgLTE5MDksNyArMTkwOSw3IEBAIElEQkVycm9yIFNR
TGl0ZUlEQkJhY2tpbmdTdG9yZTo6dXBkYXRlQWxsSW5kZXhlc0ZvckFkZFJlY29yZChjb25zdCBJ
REJPYmplY3RTdG9yCiAgICAgICAgIEFTU0VSVChpbmRleEl0ZXJhdG9yICE9IGluZGV4TWFwLmVu
ZCgpKTsKIAogICAgICAgICBpZiAoaW5kZXhJdGVyYXRvciA9PSBpbmRleE1hcC5lbmQoKSkgewot
ICAgICAgICAgICAgZXJyb3IgPSBJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiTWlzc2lu
ZyBpbmRleCBtZXRhZGF0YSIgfTsKKyAgICAgICAgICAgIGVycm9yID0gSURCRXJyb3IgeyBJbnZh
bGlkU3RhdGVFcnJvciwgIk1pc3NpbmcgaW5kZXggbWV0YWRhdGEiX3MgfTsKICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICB9CiAKQEAgLTI1NzMsNyArMjU3Myw3IEBAIElEQkVycm9yIFNRTGl0
ZUlEQkJhY2tpbmdTdG9yZTo6dW5jaGVja2VkR2V0S2V5R2VuZXJhdG9yVmFsdWUoaW50NjRfdCBv
YmplY3RTdG9yCiAKICAgICBpbnQ2NF90IHZhbHVlID0gc3FsLT5jb2x1bW5JbnQ2NCgwKTsKICAg
ICBpZiAodmFsdWUgPCAwKQotICAgICAgICByZXR1cm4gSURCRXJyb3IgeyBDb25zdHJhaW50RXJy
b3IsICJDdXJyZW50IGtleSBnZW5lcmF0b3IgdmFsdWUgZnJvbSBkYXRhYmFzZSBpcyBpbnZhbGlk
IiB9OworICAgICAgICByZXR1cm4gSURCRXJyb3IgeyBDb25zdHJhaW50RXJyb3IsICJDdXJyZW50
IGtleSBnZW5lcmF0b3IgdmFsdWUgZnJvbSBkYXRhYmFzZSBpcyBpbnZhbGlkIl9zIH07CiAKICAg
ICBvdXRWYWx1ZSA9IHZhbHVlOwogICAgIHJldHVybiBJREJFcnJvciB7IH07CkBAIC0yNTg3LDcg
KzI1ODcsNyBAQCBJREJFcnJvciBTUUxpdGVJREJCYWNraW5nU3RvcmU6OnVuY2hlY2tlZFNldEtl
eUdlbmVyYXRvclZhbHVlKGludDY0X3Qgb2JqZWN0U3RvcgogICAgICAgICB8fCBzcWwtPmJpbmRJ
bnQ2NCgyLCB2YWx1ZSkgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8IHNxbC0+c3RlcCgpICE9IFNR
TElURV9ET05FKSB7CiAgICAgICAgIExPR19FUlJPUigiQ291bGQgbm90IHVwZGF0ZSBrZXkgZ2Vu
ZXJhdG9yIHZhbHVlICglaSkgLSAlcyIsIG1fc3FsaXRlREItPmxhc3RFcnJvcigpLCBtX3NxbGl0
ZURCLT5sYXN0RXJyb3JNc2coKSk7Ci0gICAgICAgIHJldHVybiBJREJFcnJvciB7IENvbnN0cmFp
bnRFcnJvciwgIkVycm9yIHN0b3JpbmcgbmV3IGtleSBnZW5lcmF0b3IgdmFsdWUgaW4gZGF0YWJh
c2UiIH07CisgICAgICAgIHJldHVybiBJREJFcnJvciB7IENvbnN0cmFpbnRFcnJvciwgIkVycm9y
IHN0b3JpbmcgbmV3IGtleSBnZW5lcmF0b3IgdmFsdWUgaW4gZGF0YWJhc2UiX3MgfTsKICAgICB9
CiAKICAgICByZXR1cm4gSURCRXJyb3IgeyB9OwpAQCAtMjYxNSw3ICsyNjE1LDcgQEAgSURCRXJy
b3IgU1FMaXRlSURCQmFja2luZ1N0b3JlOjpnZW5lcmF0ZUtleU51bWJlcihjb25zdCBJREJSZXNv
dXJjZUlkZW50aWZpZXImIHQKICAgICAgICAgcmV0dXJuIGVycm9yOwogCiAgICAgaWYgKGN1cnJl
bnRWYWx1ZSArIDEgPiBtYXhHZW5lcmF0b3JWYWx1ZSkKLSAgICAgICAgcmV0dXJuIElEQkVycm9y
IHsgQ29uc3RyYWludEVycm9yLCAiQ2Fubm90IGdlbmVyYXRlIG5ldyBrZXkgdmFsdWUgb3ZlciAy
XjUzIGZvciBvYmplY3Qgc3RvcmUgb3BlcmF0aW9uIiB9OworICAgICAgICByZXR1cm4gSURCRXJy
b3IgeyBDb25zdHJhaW50RXJyb3IsICJDYW5ub3QgZ2VuZXJhdGUgbmV3IGtleSB2YWx1ZSBvdmVy
IDJeNTMgZm9yIG9iamVjdCBzdG9yZSBvcGVyYXRpb24iX3MgfTsKIAogICAgIGdlbmVyYXRlZEtl
eSA9IGN1cnJlbnRWYWx1ZSArIDE7CiAgICAgcmV0dXJuIHVuY2hlY2tlZFNldEtleUdlbmVyYXRv
clZhbHVlKG9iamVjdFN0b3JlSUQsIGdlbmVyYXRlZEtleSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNl
LmNwcAppbmRleCAyM2U2ZDNmNWM4YmM2Mzc2YzMwYzY1YzRmNjcyZWU2NGMzZmFmNmYxLi43NGFk
ZWVlM2UzMWFhYWQyZDNkOTVjMjg1NWQ1MDhiOGE1NzZkMGIzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRh
YmFzZS5jcHAKQEAgLTU4OSw3ICs1ODksNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpjcmVh
dGVPYmplY3RTdG9yZShVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uJiB0cmFuc2FjdAogICAg
ICAgICBhdXRvIHRhc2tTaXplID0gZGVmYXVsdFdyaXRlT3BlcmF0aW9uQ29zdCArIGVzdGltYXRl
U2l6ZShpbmZvKTsKICAgICAgICAgbV9tYW5hZ2VyLT5yZXF1ZXN0U3BhY2UobV9pZGVudGlmaWVy
Lm9yaWdpbigpLCB0YXNrU2l6ZSwgW3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0s
IHdlYWtUcmFuc2FjdGlvbiA9IFdlYWtQdHIgeyB0cmFuc2FjdGlvbiB9LCBpbmZvLCBjYWxsYmFj
ayA9IFdURk1vdmUoY2FsbGJhY2spXShib29sIGdyYW50ZWQpIG11dGFibGUgewogICAgICAgICAg
ICAgaWYgKCF3ZWFrVGhpcyB8fCAhd2Vha1RyYW5zYWN0aW9uKQotICAgICAgICAgICAgICAgIHJl
dHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJhc2Ugb3Ig
dHJhbnNhY3Rpb24gaXMgY2xvc2VkIiB9KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJh
Y2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkRhdGFiYXNlIG9yIHRyYW5zYWN0aW9u
IGlzIGNsb3NlZCJfcyB9KTsKICAgICAgICAgICAgIGNyZWF0ZU9iamVjdFN0b3JlKCp3ZWFrVHJh
bnNhY3Rpb24sIGluZm8sIFdURk1vdmUoY2FsbGJhY2spLCBncmFudGVkID8gU3BhY2VDaGVja1Jl
c3VsdDo6UGFzcyA6IFNwYWNlQ2hlY2tSZXN1bHQ6OkZhaWwpOwogICAgICAgICB9KTsKICAgICAg
ICAgcmV0dXJuOwpAQCAtNjAxLDcgKzYwMSw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmNy
ZWF0ZU9iamVjdFN0b3JlKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mIHRyYW5zYWN0CiAg
ICAgfQogCiAgICAgaWYgKCFtX2JhY2tpbmdTdG9yZSkKLSAgICAgICAgcmV0dXJuIGNhbGxiYWNr
KElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3JlIGhhcyBjbG9zZWQi
IH0pOworICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJv
ciwgIkJhY2tpbmcgc3RvcmUgaGFzIGNsb3NlZCJfcyB9KTsKIAogICAgIGF1dG8gZXJyb3IgPSBt
X2JhY2tpbmdTdG9yZS0+Y3JlYXRlT2JqZWN0U3RvcmUodHJhbnNhY3Rpb24uaW5mbygpLmlkZW50
aWZpZXIoKSwgaW5mbyk7CiAgICAgaWYgKGVycm9yLmlzTnVsbCgpKQpAQCAtNjIxLDcgKzYyMSw3
IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmRlbGV0ZU9iamVjdFN0b3JlKFVuaXF1ZUlEQkRh
dGFiYXNlVHJhbnNhY3Rpb24mIHRyYW5zYWN0CiAKICAgICAgICAgbV9tYW5hZ2VyLT5yZXF1ZXN0
U3BhY2UobV9pZGVudGlmaWVyLm9yaWdpbigpLCAwLCBbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRy
IHsgKnRoaXMgfSwgd2Vha1RyYW5zYWN0aW9uID0gV2Vha1B0ciB7IHRyYW5zYWN0aW9uIH0sIG9i
amVjdFN0b3JlTmFtZSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oYm9vbCBncmFudGVk
KSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlmICghd2Vha1RoaXMgfHwgIXdlYWtUcmFuc2FjdGlv
bikKLSAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3Rh
dGVFcnJvciwgIkRhdGFiYXNlIG9yIHRyYW5zYWN0aW9uIGlzIGNsb3NlZCIgfSk7CisgICAgICAg
ICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJE
YXRhYmFzZSBvciB0cmFuc2FjdGlvbiBpcyBjbG9zZWQiX3MgfSk7CiAKICAgICAgICAgICAgIGRl
bGV0ZU9iamVjdFN0b3JlKCp3ZWFrVHJhbnNhY3Rpb24sIG9iamVjdFN0b3JlTmFtZSwgV1RGTW92
ZShjYWxsYmFjayksIGdyYW50ZWQgPyBTcGFjZUNoZWNrUmVzdWx0OjpQYXNzIDogU3BhY2VDaGVj
a1Jlc3VsdDo6RmFpbCk7CiAgICAgICAgIH0pOwpAQCAtNjM2LDcgKzYzNiw3IEBAIHZvaWQgVW5p
cXVlSURCRGF0YWJhc2U6OmRlbGV0ZU9iamVjdFN0b3JlKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNh
Y3Rpb24mIHRyYW5zYWN0CiAgICAgfQogCiAgICAgaWYgKCFtX2JhY2tpbmdTdG9yZSkKLSAgICAg
ICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5n
IHN0b3JlIGlzIGNsb3NlZCIgfSk7CisgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7
IEludmFsaWRTdGF0ZUVycm9yLCAiQmFja2luZyBzdG9yZSBpcyBjbG9zZWQiX3MgfSk7CiAKICAg
ICBhdXRvIGVycm9yID0gbV9iYWNraW5nU3RvcmUtPmRlbGV0ZU9iamVjdFN0b3JlKHRyYW5zYWN0
aW9uLmluZm8oKS5pZGVudGlmaWVyKCksIGluZm8tPmlkZW50aWZpZXIoKSk7CiAgICAgaWYgKGVy
cm9yLmlzTnVsbCgpKQpAQCAtNjU3LDcgKzY1Nyw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6
OnJlbmFtZU9iamVjdFN0b3JlKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mIHRyYW5zYWN0
CiAgICAgICAgIGF1dG8gdGFza1NpemUgPSBkZWZhdWx0V3JpdGVPcGVyYXRpb25Db3N0ICsgbmV3
TmFtZS5zaXplSW5CeXRlcygpOwogICAgICAgICBtX21hbmFnZXItPnJlcXVlc3RTcGFjZShtX2lk
ZW50aWZpZXIub3JpZ2luKCksIHRhc2tTaXplLCBbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsg
KnRoaXMgfSwgd2Vha1RyYW5zYWN0aW9uID0gV2Vha1B0ciB7IHRyYW5zYWN0aW9uIH0sIG9iamVj
dFN0b3JlSWRlbnRpZmllciwgbmV3TmFtZSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0o
Ym9vbCBncmFudGVkKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlmICghd2Vha1RoaXMgfHwgIXdl
YWtUcmFuc2FjdGlvbikKLSAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3Ig
eyBJbnZhbGlkU3RhdGVFcnJvciwgIkRhdGFiYXNlIG9yIHRyYW5zYWN0aW9uIGlzIGNsb3NlZCIg
fSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0
YXRlRXJyb3IsICJEYXRhYmFzZSBvciB0cmFuc2FjdGlvbiBpcyBjbG9zZWQiX3MgfSk7CiAKICAg
ICAgICAgICAgIHJlbmFtZU9iamVjdFN0b3JlKCp3ZWFrVHJhbnNhY3Rpb24sIG9iamVjdFN0b3Jl
SWRlbnRpZmllciwgbmV3TmFtZSwgV1RGTW92ZShjYWxsYmFjayksIGdyYW50ZWQgPyBTcGFjZUNo
ZWNrUmVzdWx0OjpQYXNzIDogU3BhY2VDaGVja1Jlc3VsdDo6RmFpbCk7CiAgICAgICAgIH0pOwpA
QCAtNjc2LDcgKzY3Niw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OnJlbmFtZU9iamVjdFN0
b3JlKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mIHRyYW5zYWN0CiAgICAgfQogCiAgICAg
aWYgKCFtX2JhY2tpbmdTdG9yZSkKLSAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsg
SW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3JlIGlzIGNsb3NlZCIgfSk7CisgICAgICAg
IHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiQmFja2luZyBz
dG9yZSBpcyBjbG9zZWQiX3MgfSk7CiAKICAgICBhdXRvIGVycm9yID0gbV9iYWNraW5nU3RvcmUt
PnJlbmFtZU9iamVjdFN0b3JlKHRyYW5zYWN0aW9uLmluZm8oKS5pZGVudGlmaWVyKCksIG9iamVj
dFN0b3JlSWRlbnRpZmllciwgbmV3TmFtZSk7CiAgICAgaWYgKGVycm9yLmlzTnVsbCgpKQpAQCAt
Njk2LDcgKzY5Niw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmNsZWFyT2JqZWN0U3RvcmUo
VW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbiYgdHJhbnNhY3RpCiAKICAgICAgICAgbV9tYW5h
Z2VyLT5yZXF1ZXN0U3BhY2UobV9pZGVudGlmaWVyLm9yaWdpbigpLCAwLCBbdGhpcywgd2Vha1Ro
aXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgd2Vha1RyYW5zYWN0aW9uID0gV2Vha1B0ciB7IHRyYW5z
YWN0aW9uIH0sIG9iamVjdFN0b3JlSWRlbnRpZmllciwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxi
YWNrKV0oYm9vbCBncmFudGVkKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlmICghd2Vha1RoaXMg
fHwgIXdlYWtUcmFuc2FjdGlvbikKLSAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soSURC
RXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkRhdGFiYXNlIG9yIHRyYW5zYWN0aW9uIGlzIGNs
b3NlZCIgfSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52
YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBvciB0cmFuc2FjdGlvbiBpcyBjbG9zZWQiX3MgfSk7
CiAKICAgICAgICAgICAgIGNsZWFyT2JqZWN0U3RvcmUoKndlYWtUcmFuc2FjdGlvbiwgb2JqZWN0
U3RvcmVJZGVudGlmaWVyLCBXVEZNb3ZlKGNhbGxiYWNrKSwgZ3JhbnRlZCA/IFNwYWNlQ2hlY2tS
ZXN1bHQ6OlBhc3MgOiBTcGFjZUNoZWNrUmVzdWx0OjpGYWlsKTsKICAgICAgICAgfSk7CkBAIC03
MDUsNyArNzA1LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6Y2xlYXJPYmplY3RTdG9yZShV
bmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uJiB0cmFuc2FjdGkKIAogICAgIEFTU0VSVChzcGFj
ZUNoZWNrUmVzdWx0ID09IFNwYWNlQ2hlY2tSZXN1bHQ6OlBhc3MpOwogICAgIGlmICghbV9iYWNr
aW5nU3RvcmUpCi0gICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0
ZUVycm9yLCAiQmFja2luZyBzdG9yZSBpcyBjbG9zZWQiIH0pOworICAgICAgICByZXR1cm4gY2Fs
bGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xv
c2VkIl9zIH0pOwogCiAgICAgYXV0byBlcnJvciA9IG1fYmFja2luZ1N0b3JlLT5jbGVhck9iamVj
dFN0b3JlKHRyYW5zYWN0aW9uLmluZm8oKS5pZGVudGlmaWVyKCksIG9iamVjdFN0b3JlSWRlbnRp
Zmllcik7CiAgICAgY2FsbGJhY2soZXJyb3IpOwpAQCAtNzIzLDcgKzcyMyw3IEBAIHZvaWQgVW5p
cXVlSURCRGF0YWJhc2U6OmNyZWF0ZUluZGV4KFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24m
IHRyYW5zYWN0aW9uLCBjCiAgICAgICAgIGF1dG8gdGFza1NpemUgPSBkZWZhdWx0V3JpdGVPcGVy
YXRpb25Db3N0ICsgZXN0aW1hdGVTaXplKGluZm8pOwogICAgICAgICBtX21hbmFnZXItPnJlcXVl
c3RTcGFjZShtX2lkZW50aWZpZXIub3JpZ2luKCksIHRhc2tTaXplLCBbdGhpcywgd2Vha1RoaXMg
PSBXZWFrUHRyIHsgKnRoaXMgfSwgd2Vha1RyYW5zYWN0aW9uID0gV2Vha1B0ciB7IHRyYW5zYWN0
aW9uIH0sIGluZm8sIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKGJvb2wgZ3JhbnRlZCkg
bXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAoIXdlYWtUaGlzIHx8ICF3ZWFrVHJhbnNhY3Rpb24p
Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRl
RXJyb3IsICJEYXRhYmFzZSBvciB0cmFuc2FjdGlvbiBpcyBjbG9zZWQiIH0pOworICAgICAgICAg
ICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0
YWJhc2Ugb3IgdHJhbnNhY3Rpb24gaXMgY2xvc2VkIl9zIH0pOwogCiAgICAgICAgICAgICBjcmVh
dGVJbmRleCgqd2Vha1RyYW5zYWN0aW9uLCBpbmZvLCBXVEZNb3ZlKGNhbGxiYWNrKSwgZ3JhbnRl
ZCA/IFNwYWNlQ2hlY2tSZXN1bHQ6OlBhc3MgOiBTcGFjZUNoZWNrUmVzdWx0OjpGYWlsKTsKICAg
ICAgICAgfSk7CkBAIC03MzYsNyArNzM2LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6Y3Jl
YXRlSW5kZXgoVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24sIGMKICAg
ICB9CiAKICAgICBpZiAoIW1fYmFja2luZ1N0b3JlKQotICAgICAgICByZXR1cm4gY2FsbGJhY2so
SURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xvc2VkIiB9
KTsKKyAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3Is
ICJCYWNraW5nIHN0b3JlIGlzIGNsb3NlZCJfcyB9KTsKIAogICAgIGF1dG8gZXJyb3IgPSBtX2Jh
Y2tpbmdTdG9yZS0+Y3JlYXRlSW5kZXgodHJhbnNhY3Rpb24uaW5mbygpLmlkZW50aWZpZXIoKSwg
aW5mbyk7CiAgICAgaWYgKGVycm9yLmlzTnVsbCgpKSB7CkBAIC03NjEsNyArNzYxLDcgQEAgdm9p
ZCBVbmlxdWVJREJEYXRhYmFzZTo6ZGVsZXRlSW5kZXgoVW5pcXVlSURCRGF0YWJhc2VUcmFuc2Fj
dGlvbiYgdHJhbnNhY3Rpb24sIHUKIAogICAgICAgICBtX21hbmFnZXItPnJlcXVlc3RTcGFjZSht
X2lkZW50aWZpZXIub3JpZ2luKCksIDAsIFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhp
cyB9LCB3ZWFrVHJhbnNhY3Rpb24gPSBXZWFrUHRyIHsgdHJhbnNhY3Rpb24gfSwgb2JqZWN0U3Rv
cmVJZGVudGlmaWVyLCBpbmRleE5hbWUsIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKGJv
b2wgZ3JhbnRlZCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAoIXdlYWtUaGlzIHx8ICF3ZWFr
VHJhbnNhY3Rpb24pCi0gICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsg
SW52YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBvciB0cmFuc2FjdGlvbiBpcyBjbG9zZWQiIH0p
OworICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0
ZUVycm9yLCAiRGF0YWJhc2Ugb3IgdHJhbnNhY3Rpb24gaXMgY2xvc2VkIl9zIH0pOwogCiAgICAg
ICAgICAgICBkZWxldGVJbmRleCgqd2Vha1RyYW5zYWN0aW9uLCBvYmplY3RTdG9yZUlkZW50aWZp
ZXIsIGluZGV4TmFtZSwgV1RGTW92ZShjYWxsYmFjayksIGdyYW50ZWQgPyBTcGFjZUNoZWNrUmVz
dWx0OjpQYXNzIDogU3BhY2VDaGVja1Jlc3VsdDo6RmFpbCk7CiAgICAgICAgIH0pOwpAQCAtNzcw
LDcgKzc3MCw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmRlbGV0ZUluZGV4KFVuaXF1ZUlE
QkRhdGFiYXNlVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uLCB1CiAKICAgICBBU1NFUlQoc3BhY2VD
aGVja1Jlc3VsdCA9PSBTcGFjZUNoZWNrUmVzdWx0OjpQYXNzKTsKICAgICBpZiAoIW1fYmFja2lu
Z1N0b3JlKQotICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVF
cnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xvc2VkIiB9KTsKKyAgICAgICAgcmV0dXJuIGNhbGxi
YWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3JlIGlzIGNsb3Nl
ZCJfcyB9KTsKIAogICAgIGF1dG8qIG9iamVjdFN0b3JlSW5mbyA9IG1fZGF0YWJhc2VJbmZvLT5p
bmZvRm9yRXhpc3RpbmdPYmplY3RTdG9yZShvYmplY3RTdG9yZUlkZW50aWZpZXIpOwogICAgIGlm
ICghb2JqZWN0U3RvcmVJbmZvKSB7CkBAIC04MDQsNyArODA0LDcgQEAgdm9pZCBVbmlxdWVJREJE
YXRhYmFzZTo6cmVuYW1lSW5kZXgoVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbiYgdHJhbnNh
Y3Rpb24sIHUKICAgICAgICAgYXV0byB0YXNrU2l6ZSA9IGRlZmF1bHRXcml0ZU9wZXJhdGlvbkNv
c3QgKyBuZXdOYW1lLnNpemVJbkJ5dGVzKCk7CiAgICAgICAgIG1fbWFuYWdlci0+cmVxdWVzdFNw
YWNlKG1faWRlbnRpZmllci5vcmlnaW4oKSwgdGFza1NpemUsIFt0aGlzLCB3ZWFrVGhpcyA9IFdl
YWtQdHIgeyAqdGhpcyB9LCB3ZWFrVHJhbnNhY3Rpb24gPSBXZWFrUHRyIHsgdHJhbnNhY3Rpb24g
fSwgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBpbmRleElkZW50aWZpZXIsIG5ld05hbWUsIGNhbGxi
YWNrID0gV1RGTW92ZShjYWxsYmFjayldKGJvb2wgZ3JhbnRlZCkgbXV0YWJsZSB7CiAgICAgICAg
ICAgICBpZiAoIXdlYWtUaGlzIHx8ICF3ZWFrVHJhbnNhY3Rpb24pCi0gICAgICAgICAgICAgICAg
cmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBv
ciB0cmFuc2FjdGlvbiBpcyBjbG9zZWQiIH0pOworICAgICAgICAgICAgICAgIHJldHVybiBjYWxs
YmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJhc2Ugb3IgdHJhbnNhY3Rp
b24gaXMgY2xvc2VkIl9zIH0pOwogCiAgICAgICAgICAgICByZW5hbWVJbmRleCgqd2Vha1RyYW5z
YWN0aW9uLCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGluZGV4SWRlbnRpZmllciwgbmV3TmFtZSwg
V1RGTW92ZShjYWxsYmFjayksIGdyYW50ZWQgPyBTcGFjZUNoZWNrUmVzdWx0OjpQYXNzIDogU3Bh
Y2VDaGVja1Jlc3VsdDo6RmFpbCk7CiAgICAgICAgIH0pOwpAQCAtODE3LDcgKzgxNyw3IEBAIHZv
aWQgVW5pcXVlSURCRGF0YWJhc2U6OnJlbmFtZUluZGV4KFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNh
Y3Rpb24mIHRyYW5zYWN0aW9uLCB1CiAgICAgfQogCiAgICAgaWYgKCFtX2JhY2tpbmdTdG9yZSkK
LSAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJC
YWNraW5nIHN0b3JlIGlzIGNsb3NlZCIgfSk7CisgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJF
cnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiQmFja2luZyBzdG9yZSBpcyBjbG9zZWQiX3MgfSk7
CiAKICAgICBhdXRvKiBvYmplY3RTdG9yZUluZm8gPSBtX2RhdGFiYXNlSW5mby0+aW5mb0ZvckV4
aXN0aW5nT2JqZWN0U3RvcmUob2JqZWN0U3RvcmVJZGVudGlmaWVyKTsKICAgICBpZiAoIW9iamVj
dFN0b3JlSW5mbykgewpAQCAtODQ2LDcgKzg0Niw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6
OnB1dE9yQWRkKGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0YSwgY29uc3QgSURCS2V5
CiAgICAgQVNTRVJUKG1fZGF0YWJhc2VJbmZvKTsKIAogICAgIGlmICghbV9iYWNraW5nU3RvcmUp
Ci0gICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAi
QmFja2luZyBzdG9yZSBpcyBjbG9zZWQiIH0sIGtleURhdGEpOworICAgICAgICByZXR1cm4gY2Fs
bGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xv
c2VkIl9zIH0sIGtleURhdGEpOwogCiAgICAgYXV0byBvYmplY3RTdG9yZUlkZW50aWZpZXIgPSBy
ZXF1ZXN0RGF0YS5vYmplY3RTdG9yZUlkZW50aWZpZXIoKTsKICAgICBhdXRvKiBvYmplY3RTdG9y
ZUluZm8gPSBtX2JhY2tpbmdTdG9yZS0+aW5mb0Zvck9iamVjdFN0b3JlKG9iamVjdFN0b3JlSWRl
bnRpZmllcik7CkBAIC05MDEsNyArOTAxLDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6cHV0
T3JBZGQoY29uc3QgSURCUmVxdWVzdERhdGEmIHJlcXVlc3REYXRhLCBjb25zdCBJREJLZXkKICAg
ICBMT0coSW5kZXhlZERCLCAiVW5pcXVlSURCRGF0YWJhc2U6OnB1dE9yQWRkIHF1b3RhIGNoZWNr
IHdpdGggdGFzayBzaXplOiAlIiBQUkl1NjQgIiBrZXkgc2l6ZTogJSIgUFJJdTY0ICIgdmFsdWUg
c2l6ZTogJSIgUFJJdTY0ICIgaW5kZXggc2l6ZTogJSIgUFJJdTY0LCB0YXNrU2l6ZSwga2V5U2l6
ZSwgdmFsdWVTaXplLCBpbmRleFNpemUpOwogICAgIG1fbWFuYWdlci0+cmVxdWVzdFNwYWNlKG1f
aWRlbnRpZmllci5vcmlnaW4oKSwgdGFza1NpemUsIFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIg
eyAqdGhpcyB9LCByZXF1ZXN0RGF0YSwgdXNlZEtleSwgdmFsdWUsIG92ZXJ3cml0ZU1vZGUsIGNh
bGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayksIHVzZWRLZXlJc0dlbmVyYXRlZCwgaW5kZXhLZXlz
LCBvYmplY3RTdG9yZUluZm8gPSAqb2JqZWN0U3RvcmVJbmZvXShib29sIGdyYW50ZWQpIG11dGFi
bGUgewogICAgICAgICBpZiAoIXdlYWtUaGlzKQotICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNr
KElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBpcyBjbG9zZWQiIH0sIHVz
ZWRLZXkpOworICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0
YXRlRXJyb3IsICJEYXRhYmFzZSBpcyBjbG9zZWQiX3MgfSwgdXNlZEtleSk7CiAKICAgICAgICAg
cHV0T3JBZGRBZnRlclNwYWNlQ2hlY2socmVxdWVzdERhdGEsIHVzZWRLZXksIHZhbHVlLCBvdmVy
d3JpdGVNb2RlLCBXVEZNb3ZlKGNhbGxiYWNrKSwgdXNlZEtleUlzR2VuZXJhdGVkLCBpbmRleEtl
eXMsIG9iamVjdFN0b3JlSW5mbywgZ3JhbnRlZCA/IFNwYWNlQ2hlY2tSZXN1bHQ6OlBhc3MgOiBT
cGFjZUNoZWNrUmVzdWx0OjpGYWlsKTsKICAgICB9KTsKQEAgLTkxMyw3ICs5MTMsNyBAQCB2b2lk
IFVuaXF1ZUlEQkRhdGFiYXNlOjpwdXRPckFkZEFmdGVyU3BhY2VDaGVjayhjb25zdCBJREJSZXF1
ZXN0RGF0YSYgcmVxdWVzdERhdAogICAgIEFTU0VSVChtX2RhdGFiYXNlSW5mbyk7CiAKICAgICBp
ZiAoIW1fYmFja2luZ1N0b3JlKQotICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJ
bnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xvc2VkIiB9LCBrZXlEYXRhKTsK
KyAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJC
YWNraW5nIHN0b3JlIGlzIGNsb3NlZCJfcyB9LCBrZXlEYXRhKTsKIAogICAgIHVpbnQ2NF90IGtl
eU51bWJlciA9IGlzS2V5R2VuZXJhdGVkID8ga2V5RGF0YS5udW1iZXIoKSA6IDA7CiAgICAgYXV0
byBvYmplY3RTdG9yZUlkZW50aWZpZXIgPSBvYmplY3RTdG9yZUluZm8uaWRlbnRpZmllcigpOwpA
QCAtOTUzLDcgKzk1Myw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmdldFJlY29yZChjb25z
dCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdERhdGEsIGNvbnN0IElEQkdlCiAKICAgICAgICAgbV9t
YW5hZ2VyLT5yZXF1ZXN0U3BhY2UobV9pZGVudGlmaWVyLm9yaWdpbigpLCAwLCBbdGhpcywgd2Vh
a1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgcmVxdWVzdERhdGEsIGdldFJlY29yZERhdGEsIGNh
bGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKGJvb2wgZ3JhbnRlZCkgbXV0YWJsZSB7CiAgICAg
ICAgICAgICBpZiAoIXdlYWtUaGlzKQotICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhJ
REJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJhc2UgaXMgY2xvc2VkIiB9LCBJREJH
ZXRSZXN1bHQgeyB9KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3Ig
eyBJbnZhbGlkU3RhdGVFcnJvciwgIkRhdGFiYXNlIGlzIGNsb3NlZCJfcyB9LCBJREJHZXRSZXN1
bHQgeyB9KTsKIAogICAgICAgICAgICAgZ2V0UmVjb3JkKHJlcXVlc3REYXRhLCBnZXRSZWNvcmRE
YXRhLCBXVEZNb3ZlKGNhbGxiYWNrKSwgZ3JhbnRlZCA/IFNwYWNlQ2hlY2tSZXN1bHQ6OlBhc3Mg
OiBTcGFjZUNoZWNrUmVzdWx0OjpGYWlsKTsKICAgICAgICAgfSk7CkBAIC05NjIsNyArOTYyLDcg
QEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6Z2V0UmVjb3JkKGNvbnN0IElEQlJlcXVlc3REYXRh
JiByZXF1ZXN0RGF0YSwgY29uc3QgSURCR2UKIAogICAgIEFTU0VSVChzcGFjZUNoZWNrUmVzdWx0
ID09IFNwYWNlQ2hlY2tSZXN1bHQ6OlBhc3MpOwogICAgIGlmICghbV9iYWNraW5nU3RvcmUpCi0g
ICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiQmFj
a2luZyBzdG9yZSBpcyBjbG9zZWQiIH0sIElEQkdldFJlc3VsdCB7IH0pOworICAgICAgICByZXR1
cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUg
aXMgY2xvc2VkIl9zIH0sIElEQkdldFJlc3VsdCB7IH0pOwogCiAgICAgSURCR2V0UmVzdWx0IHJl
c3VsdDsKICAgICBJREJFcnJvciBlcnJvcjsKQEAgLTk4Niw3ICs5ODYsNyBAQCB2b2lkIFVuaXF1
ZUlEQkRhdGFiYXNlOjpnZXRBbGxSZWNvcmRzKGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0
RGF0YSwgY29uc3QgSQogCiAgICAgICAgIG1fbWFuYWdlci0+cmVxdWVzdFNwYWNlKG1faWRlbnRp
Zmllci5vcmlnaW4oKSwgMCwgW3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHJl
cXVlc3REYXRhLCBnZXRBbGxSZWNvcmRzRGF0YSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNr
KV0oYm9vbCBncmFudGVkKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlmICghd2Vha1RoaXMpCi0g
ICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJy
b3IsICJEYXRhYmFzZSBpcyBjbG9zZWQiIH0sIElEQkdldEFsbFJlc3VsdCB7IH0pOworICAgICAg
ICAgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAi
RGF0YWJhc2UgaXMgY2xvc2VkIl9zIH0sIElEQkdldEFsbFJlc3VsdCB7IH0pOwogCiAgICAgICAg
ICAgICBnZXRBbGxSZWNvcmRzKHJlcXVlc3REYXRhLCBnZXRBbGxSZWNvcmRzRGF0YSwgV1RGTW92
ZShjYWxsYmFjayksIGdyYW50ZWQgPyBTcGFjZUNoZWNrUmVzdWx0OjpQYXNzIDogU3BhY2VDaGVj
a1Jlc3VsdDo6RmFpbCk7CiAgICAgICAgIH0pOwpAQCAtOTk1LDcgKzk5NSw3IEBAIHZvaWQgVW5p
cXVlSURCRGF0YWJhc2U6OmdldEFsbFJlY29yZHMoY29uc3QgSURCUmVxdWVzdERhdGEmIHJlcXVl
c3REYXRhLCBjb25zdCBJCiAKICAgICBBU1NFUlQoc3BhY2VDaGVja1Jlc3VsdCA9PSBTcGFjZUNo
ZWNrUmVzdWx0OjpQYXNzKTsKICAgICBpZiAoIW1fYmFja2luZ1N0b3JlKQotICAgICAgICByZXR1
cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUg
aXMgY2xvc2VkIiB9LCBJREJHZXRBbGxSZXN1bHQgeyB9KTsKKyAgICAgICAgcmV0dXJuIGNhbGxi
YWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3JlIGlzIGNsb3Nl
ZCJfcyB9LCBJREJHZXRBbGxSZXN1bHQgeyB9KTsKIAogICAgIElEQkdldEFsbFJlc3VsdCByZXN1
bHQ7CiAgICAgYXV0byBlcnJvciA9IG1fYmFja2luZ1N0b3JlLT5nZXRBbGxSZWNvcmRzKHJlcXVl
c3REYXRhLnRyYW5zYWN0aW9uSWRlbnRpZmllcigpLCBnZXRBbGxSZWNvcmRzRGF0YSwgcmVzdWx0
KTsKQEAgLTEwMTQsNyArMTAxNCw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmdldENvdW50
KGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0YSwgY29uc3QgSURCS2V5CiAKICAgICAg
ICAgbV9tYW5hZ2VyLT5yZXF1ZXN0U3BhY2UobV9pZGVudGlmaWVyLm9yaWdpbigpLCAwLCBbdGhp
cywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgcmVxdWVzdERhdGEsIHJhbmdlLCBjYWxs
YmFjayA9IFdURk1vdmUoY2FsbGJhY2spXShib29sIGdyYW50ZWQpIG11dGFibGUgewogICAgICAg
ICAgICAgaWYgKCF3ZWFrVGhpcykKLSAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soSURC
RXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkRhdGFiYXNlIGlzIGNsb3NlZCIgfSwgMCk7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJy
b3IsICJEYXRhYmFzZSBpcyBjbG9zZWQiX3MgfSwgMCk7CiAKICAgICAgICAgICAgIGdldENvdW50
KHJlcXVlc3REYXRhLCByYW5nZSwgV1RGTW92ZShjYWxsYmFjayksIGdyYW50ZWQgPyBTcGFjZUNo
ZWNrUmVzdWx0OjpQYXNzIDogU3BhY2VDaGVja1Jlc3VsdDo6RmFpbCk7CiAgICAgICAgIH0pOwpA
QCAtMTAyMyw3ICsxMDIzLDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6Z2V0Q291bnQoY29u
c3QgSURCUmVxdWVzdERhdGEmIHJlcXVlc3REYXRhLCBjb25zdCBJREJLZXkKIAogICAgIEFTU0VS
VChzcGFjZUNoZWNrUmVzdWx0ID09IFNwYWNlQ2hlY2tSZXN1bHQ6OlBhc3MpOwogICAgIGlmICgh
bV9iYWNraW5nU3RvcmUpCi0gICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFs
aWRTdGF0ZUVycm9yLCAiQmFja2luZyBzdG9yZSBpcyBjbG9zZWQiIH0sIDApOworICAgICAgICBy
ZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3Rv
cmUgaXMgY2xvc2VkIl9zIH0sIDApOwogCiAgICAgdWludDY0X3QgY291bnQgPSAwOwogICAgIGF1
dG8gZXJyb3IgPSBtX2JhY2tpbmdTdG9yZS0+Z2V0Q291bnQocmVxdWVzdERhdGEudHJhbnNhY3Rp
b25JZGVudGlmaWVyKCksIHJlcXVlc3REYXRhLm9iamVjdFN0b3JlSWRlbnRpZmllcigpLCByZXF1
ZXN0RGF0YS5pbmRleElkZW50aWZpZXIoKSwgcmFuZ2UsIGNvdW50KTsKQEAgLTEwNDIsNyArMTA0
Miw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmRlbGV0ZVJlY29yZChjb25zdCBJREJSZXF1
ZXN0RGF0YSYgcmVxdWVzdERhdGEsIGNvbnN0IElECiAKICAgICAgICAgbV9tYW5hZ2VyLT5yZXF1
ZXN0U3BhY2UobV9pZGVudGlmaWVyLm9yaWdpbigpLCAwLCBbdGhpcywgd2Vha1RoaXMgPSBXZWFr
UHRyIHsgKnRoaXMgfSwgcmVxdWVzdERhdGEsIGtleVJhbmdlRGF0YSwgY2FsbGJhY2sgPSBXVEZN
b3ZlKGNhbGxiYWNrKV0oYm9vbCBncmFudGVkKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlmICgh
d2Vha1RoaXMpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52
YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBpcyBjbG9zZWQiIH0pOworICAgICAgICAgICAgICAg
IHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJhc2Ug
aXMgY2xvc2VkIl9zIH0pOwogCiAgICAgICAgICAgICBkZWxldGVSZWNvcmQocmVxdWVzdERhdGEs
IGtleVJhbmdlRGF0YSwgV1RGTW92ZShjYWxsYmFjayksIGdyYW50ZWQgPyBTcGFjZUNoZWNrUmVz
dWx0OjpQYXNzIDogU3BhY2VDaGVja1Jlc3VsdDo6RmFpbCk7CiAgICAgICAgIH0pOwpAQCAtMTA1
MSw3ICsxMDUxLDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6ZGVsZXRlUmVjb3JkKGNvbnN0
IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0YSwgY29uc3QgSUQKIAogICAgIEFTU0VSVChzcGFj
ZUNoZWNrUmVzdWx0ID09IFNwYWNlQ2hlY2tSZXN1bHQ6OlBhc3MpOwogICAgIGlmICghbV9iYWNr
aW5nU3RvcmUpCi0gICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0
ZUVycm9yLCAiQmFja2luZyBzdG9yZSBpcyBjbG9zZWQiIH0pOworICAgICAgICByZXR1cm4gY2Fs
bGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xv
c2VkIl9zIH0pOwogCiAgICAgYXV0byBlcnJvciA9IG1fYmFja2luZ1N0b3JlLT5kZWxldGVSYW5n
ZShyZXF1ZXN0RGF0YS50cmFuc2FjdGlvbklkZW50aWZpZXIoKSwgcmVxdWVzdERhdGEub2JqZWN0
U3RvcmVJZGVudGlmaWVyKCksIGtleVJhbmdlRGF0YSk7CiAKQEAgLTEwNjksNyArMTA2OSw3IEBA
IHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6Om9wZW5DdXJzb3IoY29uc3QgSURCUmVxdWVzdERhdGEm
IHJlcXVlc3REYXRhLCBjb25zdCBJREJDCiAKICAgICAgICAgbV9tYW5hZ2VyLT5yZXF1ZXN0U3Bh
Y2UobV9pZGVudGlmaWVyLm9yaWdpbigpLCAwLCBbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsg
KnRoaXMgfSwgcmVxdWVzdERhdGEsIGluZm8sIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayld
KGJvb2wgZ3JhbnRlZCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAoIXdlYWtUaGlzKQotICAg
ICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9y
LCAiRGF0YWJhc2Ugb3IgdHJhbnNhY3Rpb24gaXMgY2xvc2VkIiB9LCBJREJHZXRSZXN1bHQgeyB9
KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3Rh
dGVFcnJvciwgIkRhdGFiYXNlIG9yIHRyYW5zYWN0aW9uIGlzIGNsb3NlZCJfcyB9LCBJREJHZXRS
ZXN1bHQgeyB9KTsKIAogICAgICAgICAgICAgb3BlbkN1cnNvcihyZXF1ZXN0RGF0YSwgaW5mbywg
V1RGTW92ZShjYWxsYmFjayksIGdyYW50ZWQgPyBTcGFjZUNoZWNrUmVzdWx0OjpQYXNzIDogU3Bh
Y2VDaGVja1Jlc3VsdDo6RmFpbCk7CiAgICAgICAgIH0pOwpAQCAtMTA3OCw3ICsxMDc4LDcgQEAg
dm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6b3BlbkN1cnNvcihjb25zdCBJREJSZXF1ZXN0RGF0YSYg
cmVxdWVzdERhdGEsIGNvbnN0IElEQkMKIAogICAgIEFTU0VSVChzcGFjZUNoZWNrUmVzdWx0ID09
IFNwYWNlQ2hlY2tSZXN1bHQ6OlBhc3MpOwogICAgIGlmICghbV9iYWNraW5nU3RvcmUpCi0gICAg
ICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiQmFja2lu
ZyBzdG9yZSBpcyBjbG9zZWQiIH0sIElEQkdldFJlc3VsdCB7IH0pOworICAgICAgICByZXR1cm4g
Y2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgaXMg
Y2xvc2VkIl9zIH0sIElEQkdldFJlc3VsdCB7IH0pOwogCiAgICAgSURCR2V0UmVzdWx0IHJlc3Vs
dDsKICAgICBhdXRvIGVycm9yID0gbV9iYWNraW5nU3RvcmUtPm9wZW5DdXJzb3IocmVxdWVzdERh
dGEudHJhbnNhY3Rpb25JZGVudGlmaWVyKCksIGluZm8sIHJlc3VsdCk7CkBAIC0xMDk3LDcgKzEw
OTcsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjppdGVyYXRlQ3Vyc29yKGNvbnN0IElEQlJl
cXVlc3REYXRhJiByZXF1ZXN0RGF0YSwgY29uc3QgSQogCiAgICAgICAgIG1fbWFuYWdlci0+cmVx
dWVzdFNwYWNlKG1faWRlbnRpZmllci5vcmlnaW4oKSwgMCwgW3RoaXMsIHdlYWtUaGlzID0gV2Vh
a1B0ciB7ICp0aGlzIH0sIHJlcXVlc3REYXRhLCBkYXRhLCBjYWxsYmFjayA9IFdURk1vdmUoY2Fs
bGJhY2spXShib29sIGdyYW50ZWQpIG11dGFibGUgewogICAgICAgICAgICAgaWYgKCF3ZWFrVGhp
cykKLSAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3Rh
dGVFcnJvciwgIkRhdGFiYXNlIG9yIHRyYW5zYWN0aW9uIGlzIGNsb3NlZCIgfSwgSURCR2V0UmVz
dWx0IHsgfSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52
YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBvciB0cmFuc2FjdGlvbiBpcyBjbG9zZWQiX3MgfSwg
SURCR2V0UmVzdWx0IHsgfSk7CiAKICAgICAgICAgICAgIGl0ZXJhdGVDdXJzb3IocmVxdWVzdERh
dGEsIGRhdGEsIFdURk1vdmUoY2FsbGJhY2spLCBncmFudGVkID8gU3BhY2VDaGVja1Jlc3VsdDo6
UGFzcyA6IFNwYWNlQ2hlY2tSZXN1bHQ6OkZhaWwpOwogICAgICAgICB9KTsKQEAgLTExMDYsNyAr
MTEwNiw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6Oml0ZXJhdGVDdXJzb3IoY29uc3QgSURC
UmVxdWVzdERhdGEmIHJlcXVlc3REYXRhLCBjb25zdCBJCiAKICAgICBBU1NFUlQoc3BhY2VDaGVj
a1Jlc3VsdCA9PSBTcGFjZUNoZWNrUmVzdWx0OjpQYXNzKTsKICAgICBpZiAoIW1fYmFja2luZ1N0
b3JlKQotICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJv
ciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xvc2VkIiB9LCBJREJHZXRSZXN1bHQgeyB9KTsKKyAgICAg
ICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5n
IHN0b3JlIGlzIGNsb3NlZCJfcyB9LCBJREJHZXRSZXN1bHQgeyB9KTsKIAogICAgIElEQkdldFJl
c3VsdCByZXN1bHQ7CiAgICAgYXV0byB0cmFuc2FjdGlvbklkZW50aWZpZXIgPSByZXF1ZXN0RGF0
YS50cmFuc2FjdGlvbklkZW50aWZpZXIoKTsKQEAgLTExMjcsNyArMTEyNyw3IEBAIHZvaWQgVW5p
cXVlSURCRGF0YWJhc2U6OmNvbW1pdFRyYW5zYWN0aW9uKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNh
Y3Rpb24mIHRyYW5zYWN0CiAKICAgICAgICAgbV9tYW5hZ2VyLT5yZXF1ZXN0U3BhY2UobV9pZGVu
dGlmaWVyLm9yaWdpbigpLCAwLCBbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwg
d2Vha1RyYW5zYWN0aW9uID0gV2Vha1B0ciB7IHRyYW5zYWN0aW9uIH0sIGNhbGxiYWNrID0gV1RG
TW92ZShjYWxsYmFjayldKGJvb2wgZ3JhbnRlZCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAo
IXdlYWtUaGlzIHx8ICF3ZWFrVHJhbnNhY3Rpb24pCi0gICAgICAgICAgICAgICAgcmV0dXJuIGNh
bGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBvciB0cmFuc2Fj
dGlvbiBpcyBjbG9zZWQiIH0pOworICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJF
cnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJhc2Ugb3IgdHJhbnNhY3Rpb24gaXMgY2xv
c2VkIl9zIH0pOwogCiAgICAgICAgICAgICBjb21taXRUcmFuc2FjdGlvbigqd2Vha1RyYW5zYWN0
aW9uLCBXVEZNb3ZlKGNhbGxiYWNrKSwgZ3JhbnRlZCA/IFNwYWNlQ2hlY2tSZXN1bHQ6OlBhc3Mg
OiBTcGFjZUNoZWNrUmVzdWx0OjpGYWlsKTsKICAgICAgICAgfSk7CkBAIC0xMTM4LDcgKzExMzgs
NyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpjb21taXRUcmFuc2FjdGlvbihVbmlxdWVJREJE
YXRhYmFzZVRyYW5zYWN0aW9uJiB0cmFuc2FjdAogICAgIEFTU0VSVCh0cmFuc2FjdGlvbi5kYXRh
YmFzZUNvbm5lY3Rpb24oKS5kYXRhYmFzZSgpID09IHRoaXMpOwogCiAgICAgaWYgKCFtX2JhY2tp
bmdTdG9yZSkKLSAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRl
RXJyb3IsICJCYWNraW5nIHN0b3JlIGlzIGNsb3NlZCIgfSk7CisgICAgICAgIHJldHVybiBjYWxs
YmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiQmFja2luZyBzdG9yZSBpcyBjbG9z
ZWQiX3MgfSk7CiAKICAgICBhdXRvIHRha2VuVHJhbnNhY3Rpb24gPSBtX2luUHJvZ3Jlc3NUcmFu
c2FjdGlvbnMudGFrZSh0cmFuc2FjdGlvbi5pbmZvKCkuaWRlbnRpZmllcigpKTsKICAgICBpZiAo
IXRha2VuVHJhbnNhY3Rpb24pIHsKQEAgLTExNjYsNyArMTE2Niw3IEBAIHZvaWQgVW5pcXVlSURC
RGF0YWJhc2U6OmFib3J0VHJhbnNhY3Rpb24oVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbiYg
dHJhbnNhY3RpCiAKICAgICAgICAgbV9tYW5hZ2VyLT5yZXF1ZXN0U3BhY2UobV9pZGVudGlmaWVy
Lm9yaWdpbigpLCAwLCBbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgd2Vha1Ry
YW5zYWN0aW9uID0gV2Vha1B0ciB7IHRyYW5zYWN0aW9uIH0sIGNhbGxiYWNrID0gV1RGTW92ZShj
YWxsYmFjayldKGJvb2wgZ3JhbnRlZCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAoIXdlYWtU
aGlzIHx8ICF3ZWFrVHJhbnNhY3Rpb24pCi0gICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNr
KElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBvciB0cmFuc2FjdGlvbiBp
cyBjbG9zZWQiIH0pOworICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7
IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJhc2Ugb3IgdHJhbnNhY3Rpb24gaXMgY2xvc2VkIl9z
IH0pOwogCiAgICAgICAgICAgICBhYm9ydFRyYW5zYWN0aW9uKCp3ZWFrVHJhbnNhY3Rpb24sIFdU
Rk1vdmUoY2FsbGJhY2spLCBncmFudGVkID8gU3BhY2VDaGVja1Jlc3VsdDo6UGFzcyA6IFNwYWNl
Q2hlY2tSZXN1bHQ6OkZhaWwpOwogICAgICAgICB9KTsKQEAgLTEyMDIsNyArMTIwMiw3IEBAIHZv
aWQgVW5pcXVlSURCRGF0YWJhc2U6OmFib3J0VHJhbnNhY3Rpb24oVW5pcXVlSURCRGF0YWJhc2VU
cmFuc2FjdGlvbiYgdHJhbnNhY3RpCiAKICAgICBJREJFcnJvciBlcnJvcjsKICAgICBpZiAoIW1f
YmFja2luZ1N0b3JlKQotICAgICAgICBlcnJvciA9IElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJy
b3IsICJCYWNraW5nIHN0b3JlIGlzIGNsb3NlZCIgfTsKKyAgICAgICAgZXJyb3IgPSBJREJFcnJv
ciB7IEludmFsaWRTdGF0ZUVycm9yLCAiQmFja2luZyBzdG9yZSBpcyBjbG9zZWQiX3MgfTsKICAg
ICBlbHNlCiAgICAgICAgIGVycm9yID0gbV9iYWNraW5nU3RvcmUtPmFib3J0VHJhbnNhY3Rpb24o
dHJhbnNhY3Rpb25JZGVudGlmaWVyKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkluZGV4SW5mby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCSW5kZXhJbmZvLmNwcAppbmRleCBlNzFkMmViZjIx
YzRhZGZlZjI4YTJiZGFmYTFmZjg0YjNmN2YwMzk4Li43YWJhODMxZDcwMGVhOThmZWIyY2M5YWE0
NGM5NjJjNGI1OTQ0N2I5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9zaGFyZWQvSURCSW5kZXhJbmZvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9zaGFyZWQvSURCSW5kZXhJbmZvLmNwcApAQCAtNjEsNyArNjEsNyBAQCBTdHJp
bmcgSURCSW5kZXhJbmZvOjpsb2dnaW5nU3RyaW5nKGludCBpbmRlbnQpIGNvbnN0CiB7CiAgICAg
U3RyaW5nIGluZGVudFN0cmluZzsKICAgICBmb3IgKGludCBpID0gMDsgaSA8IGluZGVudDsgKytp
KQotICAgICAgICBpbmRlbnRTdHJpbmcuYXBwZW5kKCIgIik7CisgICAgICAgIGluZGVudFN0cmlu
Zy5hcHBlbmQoJyAnKTsKICAgICByZXR1cm4gbWFrZVN0cmluZyhpbmRlbnRTdHJpbmcsICJJbmRl
eDogIiwgbV9uYW1lLCAiICgiLCBtX2lkZW50aWZpZXIsICIpIGtleVBhdGg6ICIsIFdlYkNvcmU6
OmxvZ2dpbmdTdHJpbmcobV9rZXlQYXRoKSwgJ1xuJyk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuY3Bw
CmluZGV4IGI4MjVlYzgwMDUxNDgwMjhlMmIwN2IxOWRjNzgzOTJhNDNhOGNiYTUuLjMzMmY0NjI2
YmQzMmU4MzFhZDkwOGE0NmFjNGRjMTQ2ZTZlY2NhODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0LmNwcApA
QCAtMTE4LDE0ICsxMTgsMTQgQEAgTWVkaWFDb250cm9sc0hvc3Q6On5NZWRpYUNvbnRyb2xzSG9z
dCgpCiBTdHJpbmcgTWVkaWFDb250cm9sc0hvc3Q6OmxheW91dFRyYWl0c0NsYXNzTmFtZSgpIGNv
bnN0CiB7CiAjaWYgZGVmaW5lZChNRURJQV9DT05UUk9MU19IT1NUX0xBWU9VVF9UUkFJVFNfQ0xB
U1NfTkFNRV9PVkVSUklERSkKLSAgICByZXR1cm4gTUVESUFfQ09OVFJPTFNfSE9TVF9MQVlPVVRf
VFJBSVRTX0NMQVNTX05BTUVfT1ZFUlJJREU7CisgICAgcmV0dXJuIE1FRElBX0NPTlRST0xTX0hP
U1RfTEFZT1VUX1RSQUlUU19DTEFTU19OQU1FX09WRVJSSURFIiJfczsKICNlbHNlCiAjaWYgUExB
VEZPUk0oTUFDKSB8fCBQTEFURk9STShNQUNDQVRBTFlTVCkKLSAgICByZXR1cm4gIk1hY09TTGF5
b3V0VHJhaXRzIjsKKyAgICByZXR1cm4gIk1hY09TTGF5b3V0VHJhaXRzIl9zOwogI2VsaWYgUExB
VEZPUk0oSU9TKQotICAgIHJldHVybiAiSU9TTGF5b3V0VHJhaXRzIjsKKyAgICByZXR1cm4gIklP
U0xheW91dFRyYWl0cyJfczsKICNlbGlmIFBMQVRGT1JNKFdBVENIT1MpCi0gICAgcmV0dXJuICJX
YXRjaE9TTGF5b3V0VHJhaXRzIjsKKyAgICByZXR1cm4gIldhdGNoT1NMYXlvdXRUcmFpdHMiX3M7
CiAjZWxzZQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBudWxsU3RyaW5n
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVk
aWFSZWNvcmRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVk
aWFSZWNvcmRlci5jcHAKaW5kZXggYTkxZTY2OTAwMDQ4MzE2YTlhOTEzY2EwZDUxMjhlYWExNTFk
OWNjZS4uZmY5NDk5OWMyMDJhMzIwNTRjNjE2YmYzNjZjNjczYWViNDI3ZjY1MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVy
LmNwcApAQCAtNjYsNyArNjYsNyBAQCBFeGNlcHRpb25PcjxSZWY8TWVkaWFSZWNvcmRlcj4+IE1l
ZGlhUmVjb3JkZXI6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIFJlZjxNZQogICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKIAogICAgIGlmICghaXNUeXBl
U3VwcG9ydGVkKGRvY3VtZW50LCBvcHRpb25zLm1pbWVUeXBlKSkKLSAgICAgICAgcmV0dXJuIEV4
Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yLCAibWltZVR5cGUgaXMgbm90IHN1cHBvcnRlZCIg
fTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yLCAibWltZVR5
cGUgaXMgbm90IHN1cHBvcnRlZCJfcyB9OwogCiAgICAgYXV0byByZWNvcmRlciA9IGFkb3B0UmVm
KCpuZXcgTWVkaWFSZWNvcmRlcihkb2N1bWVudCwgV1RGTW92ZShzdHJlYW0pLCBXVEZNb3ZlKG9w
dGlvbnMpKSk7CiAgICAgcmVjb3JkZXItPnN1c3BlbmRJZk5lZWRlZCgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcAppbmRleCBhNTkw
MzdhNDA1ODYzMThmMjE2YTZlYTAxOWRiMjRhOWIwMzk3MjQ4Li44Y2I2ZDVjZmMzOGQ2ZWY4MGY3
ZTM5NDFmYjk1OGEzNGQ1MzVmY2M4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcApAQCAtNjUwLDcgKzY1MCw3IEBAIHN0YXRpYyBD
b250ZW50VHlwZSBhZGRWUDlGdWxsUmFuZ2VWaWRlb0ZsYWdUb0NvbnRlbnRUeXBlKGNvbnN0IENv
bnRlbnRUeXBlJiB0eXBlCiAgICAgICAgIGlmIChwb3NpdGlvbiA9PSBub3RGb3VuZCkKICAgICAg
ICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIHJhd1R5cGUuaW5zZXJ0KCIuMDAiLCBwb3NpdGlv
biArIGNvZGVjLmxlbmd0aCgpKTsKKyAgICAgICAgcmF3VHlwZS5pbnNlcnQoIi4wMCJfcywgcG9z
aXRpb24gKyBjb2RlYy5sZW5ndGgoKSk7CiAgICAgICAgIHJldHVybiBDb250ZW50VHlwZShyYXdU
eXBlKTsKICAgICB9CiAgICAgcmV0dXJuIHR5cGU7CkBAIC04OTUsNyArODk1LDcgQEAgYm9vbCBN
ZWRpYVNvdXJjZTo6aXNUeXBlU3VwcG9ydGVkKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRl
eHQsIGNvbnN0IFN0cmluZyYKICAgICBpZiAoY29udGV4dC5pc0RvY3VtZW50KCkgJiYgZG93bmNh
c3Q8RG9jdW1lbnQ+KGNvbnRleHQpLnF1aXJrcygpLm5lZWRzVlA5RnVsbFJhbmdlRmxhZ1F1aXJr
KCkpCiAgICAgICAgIGNvbnRlbnRUeXBlID0gYWRkVlA5RnVsbFJhbmdlVmlkZW9GbGFnVG9Db250
ZW50VHlwZShjb250ZW50VHlwZSk7CiAKLSAgICBTdHJpbmcgY29kZWNzID0gY29udGVudFR5cGUu
cGFyYW1ldGVyKCJjb2RlY3MiKTsKKyAgICBTdHJpbmcgY29kZWNzID0gY29udGVudFR5cGUucGFy
YW1ldGVyKCJjb2RlY3MiX3MpOwogCiAgICAgLy8gMi4gSWYgdHlwZSBkb2VzIG5vdCBjb250YWlu
IGEgdmFsaWQgTUlNRSB0eXBlIHN0cmluZywgdGhlbiByZXR1cm4gZmFsc2UuCiAgICAgaWYgKGNv
bnRlbnRUeXBlLmNvbnRhaW5lclR5cGUoKS5pc0VtcHR5KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhVHJhY2tDb25zdHJhaW50cy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhVHJhY2tDb25zdHJhaW50cy5j
cHAKaW5kZXggMzExMzg0N2RiNzU0ODQ3ZDYxNjJmYTJkNjFlNjczNGE2YTg4ODViMy4uMmY4ZDhi
ZDI3ZDczNTU0NmJhODRiNjE4MDhhNmNkYWIzZjMyOGUxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVRyYWNrQ29uc3RyYWludHMuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFUcmFja0NvbnN0cmFpbnRz
LmNwcApAQCAtMzMsNyArMzMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGVudW0gY2xhc3Mg
Q29uc3RyYWludFNldFR5cGUgeyBNYW5kYXRvcnksIEFkdmFuY2VkIH07CiAKLXN0YXRpYyB2b2lk
IHNldChNZWRpYVRyYWNrQ29uc3RyYWludFNldE1hcCYgbWFwLCBDb25zdHJhaW50U2V0VHlwZSBz
ZXRUeXBlLCBjb25zdCBjaGFyKiB0eXBlQXNTdHJpbmcsIE1lZGlhQ29uc3RyYWludFR5cGUgdHlw
ZSwgY29uc3QgQ29uc3RyYWluTG9uZyYgdmFsdWUpCitzdGF0aWMgdm9pZCBzZXQoTWVkaWFUcmFj
a0NvbnN0cmFpbnRTZXRNYXAmIG1hcCwgQ29uc3RyYWludFNldFR5cGUgc2V0VHlwZSwgQVNDSUlM
aXRlcmFsIHR5cGVBc1N0cmluZywgTWVkaWFDb25zdHJhaW50VHlwZSB0eXBlLCBjb25zdCBDb25z
dHJhaW5Mb25nJiB2YWx1ZSkKIHsKICAgICBJbnRDb25zdHJhaW50IGNvbnN0cmFpbnQodHlwZUFz
U3RyaW5nLCB0eXBlKTsKICAgICBXVEY6OnN3aXRjaE9uKHZhbHVlLApAQCAtNTcsNyArNTcsNyBA
QCBzdGF0aWMgdm9pZCBzZXQoTWVkaWFUcmFja0NvbnN0cmFpbnRTZXRNYXAmIG1hcCwgQ29uc3Ry
YWludFNldFR5cGUgc2V0VHlwZSwgY29ucwogICAgIG1hcC5zZXQodHlwZSwgV1RGTW92ZShjb25z
dHJhaW50KSk7CiB9CiAKLXN0YXRpYyB2b2lkIHNldChNZWRpYVRyYWNrQ29uc3RyYWludFNldE1h
cCYgbWFwLCBDb25zdHJhaW50U2V0VHlwZSBzZXRUeXBlLCBjb25zdCBjaGFyKiB0eXBlQXNTdHJp
bmcsIE1lZGlhQ29uc3RyYWludFR5cGUgdHlwZSwgY29uc3QgQ29uc3RyYWluRG91YmxlJiB2YWx1
ZSkKK3N0YXRpYyB2b2lkIHNldChNZWRpYVRyYWNrQ29uc3RyYWludFNldE1hcCYgbWFwLCBDb25z
dHJhaW50U2V0VHlwZSBzZXRUeXBlLCBBU0NJSUxpdGVyYWwgdHlwZUFzU3RyaW5nLCBNZWRpYUNv
bnN0cmFpbnRUeXBlIHR5cGUsIGNvbnN0IENvbnN0cmFpbkRvdWJsZSYgdmFsdWUpCiB7CiAgICAg
RG91YmxlQ29uc3RyYWludCBjb25zdHJhaW50KHR5cGVBc1N0cmluZywgdHlwZSk7CiAgICAgV1RG
Ojpzd2l0Y2hPbih2YWx1ZSwKQEAgLTgxLDcgKzgxLDcgQEAgc3RhdGljIHZvaWQgc2V0KE1lZGlh
VHJhY2tDb25zdHJhaW50U2V0TWFwJiBtYXAsIENvbnN0cmFpbnRTZXRUeXBlIHNldFR5cGUsIGNv
bnMKICAgICBtYXAuc2V0KHR5cGUsIFdURk1vdmUoY29uc3RyYWludCkpOwogfQogCi1zdGF0aWMg
dm9pZCBzZXQoTWVkaWFUcmFja0NvbnN0cmFpbnRTZXRNYXAmIG1hcCwgQ29uc3RyYWludFNldFR5
cGUgc2V0VHlwZSwgY29uc3QgY2hhciogdHlwZUFzU3RyaW5nLCBNZWRpYUNvbnN0cmFpbnRUeXBl
IHR5cGUsIGNvbnN0IENvbnN0cmFpbkJvb2xlYW4mIHZhbHVlKQorc3RhdGljIHZvaWQgc2V0KE1l
ZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwJiBtYXAsIENvbnN0cmFpbnRTZXRUeXBlIHNldFR5cGUs
IEFTQ0lJTGl0ZXJhbCB0eXBlQXNTdHJpbmcsIE1lZGlhQ29uc3RyYWludFR5cGUgdHlwZSwgY29u
c3QgQ29uc3RyYWluQm9vbGVhbiYgdmFsdWUpCiB7CiAgICAgQm9vbGVhbkNvbnN0cmFpbnQgY29u
c3RyYWludCh0eXBlQXNTdHJpbmcsIHR5cGUpOwogICAgIFdURjo6c3dpdGNoT24odmFsdWUsCkBA
IC0xMDEsNyArMTAxLDcgQEAgc3RhdGljIHZvaWQgc2V0KE1lZGlhVHJhY2tDb25zdHJhaW50U2V0
TWFwJiBtYXAsIENvbnN0cmFpbnRTZXRUeXBlIHNldFR5cGUsIGNvbnMKICAgICBtYXAuc2V0KHR5
cGUsIFdURk1vdmUoY29uc3RyYWludCkpOwogfQogCi1zdGF0aWMgdm9pZCBzZXQoTWVkaWFUcmFj
a0NvbnN0cmFpbnRTZXRNYXAmIG1hcCwgQ29uc3RyYWludFNldFR5cGUgc2V0VHlwZSwgY29uc3Qg
Y2hhciogdHlwZUFzU3RyaW5nLCBNZWRpYUNvbnN0cmFpbnRUeXBlIHR5cGUsIGNvbnN0IENvbnN0
cmFpbkRPTVN0cmluZyYgdmFsdWUpCitzdGF0aWMgdm9pZCBzZXQoTWVkaWFUcmFja0NvbnN0cmFp
bnRTZXRNYXAmIG1hcCwgQ29uc3RyYWludFNldFR5cGUgc2V0VHlwZSwgQVNDSUlMaXRlcmFsIHR5
cGVBc1N0cmluZywgTWVkaWFDb25zdHJhaW50VHlwZSB0eXBlLCBjb25zdCBDb25zdHJhaW5ET01T
dHJpbmcmIHZhbHVlKQogewogICAgIFN0cmluZ0NvbnN0cmFpbnQgY29uc3RyYWludCh0eXBlQXNT
dHJpbmcsIHR5cGUpOwogICAgIFdURjo6c3dpdGNoT24odmFsdWUsCkBAIC0xNDgsNyArMTQ4LDcg
QEAgc3RhdGljIHZvaWQgc2V0KE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwJiBtYXAsIENvbnN0
cmFpbnRTZXRUeXBlIHNldFR5cGUsIGNvbnMKICAgICBtYXAuc2V0KHR5cGUsIFdURk1vdmUoY29u
c3RyYWludCkpOwogfQogCi10ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdGF0aWMgaW5saW5lIHZvaWQg
c2V0KE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwJiBtYXAsIENvbnN0cmFpbnRTZXRUeXBlIHNl
dFR5cGUsIGNvbnN0IGNoYXIqIHR5cGVBc1N0cmluZywgTWVkaWFDb25zdHJhaW50VHlwZSB0eXBl
LCBjb25zdCBzdGQ6Om9wdGlvbmFsPFQ+JiB2YWx1ZSkKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0
YXRpYyBpbmxpbmUgdm9pZCBzZXQoTWVkaWFUcmFja0NvbnN0cmFpbnRTZXRNYXAmIG1hcCwgQ29u
c3RyYWludFNldFR5cGUgc2V0VHlwZSwgQVNDSUlMaXRlcmFsIHR5cGVBc1N0cmluZywgTWVkaWFD
b25zdHJhaW50VHlwZSB0eXBlLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFQ+JiB2YWx1ZSkKIHsKICAg
ICBpZiAoIXZhbHVlKQogICAgICAgICByZXR1cm47CkBAIC0xNTgsMjEgKzE1OCwyMSBAQCB0ZW1w
bGF0ZTx0eXBlbmFtZSBUPiBzdGF0aWMgaW5saW5lIHZvaWQgc2V0KE1lZGlhVHJhY2tDb25zdHJh
aW50U2V0TWFwJiBtYXAsIENvbgogc3RhdGljIE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwIGNv
bnZlcnRUb0ludGVybmFsRm9ybShDb25zdHJhaW50U2V0VHlwZSBzZXRUeXBlLCBjb25zdCBNZWRp
YVRyYWNrQ29uc3RyYWludFNldCYgY29uc3RyYWludFNldCkKIHsKICAgICBNZWRpYVRyYWNrQ29u
c3RyYWludFNldE1hcCByZXN1bHQ7Ci0gICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgIndpZHRoIiwg
TWVkaWFDb25zdHJhaW50VHlwZTo6V2lkdGgsIGNvbnN0cmFpbnRTZXQud2lkdGgpOwotICAgIHNl
dChyZXN1bHQsIHNldFR5cGUsICJoZWlnaHQiLCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpIZWlnaHQs
IGNvbnN0cmFpbnRTZXQuaGVpZ2h0KTsKLSAgICBzZXQocmVzdWx0LCBzZXRUeXBlLCAiYXNwZWN0
UmF0aW8iLCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpBc3BlY3RSYXRpbywgY29uc3RyYWludFNldC5h
c3BlY3RSYXRpbyk7Ci0gICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgImZyYW1lUmF0ZSIsIE1lZGlh
Q29uc3RyYWludFR5cGU6OkZyYW1lUmF0ZSwgY29uc3RyYWludFNldC5mcmFtZVJhdGUpOwotICAg
IHNldChyZXN1bHQsIHNldFR5cGUsICJmYWNpbmdNb2RlIiwgTWVkaWFDb25zdHJhaW50VHlwZTo6
RmFjaW5nTW9kZSwgY29uc3RyYWludFNldC5mYWNpbmdNb2RlKTsKLSAgICBzZXQocmVzdWx0LCBz
ZXRUeXBlLCAidm9sdW1lIiwgTWVkaWFDb25zdHJhaW50VHlwZTo6Vm9sdW1lLCBjb25zdHJhaW50
U2V0LnZvbHVtZSk7Ci0gICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgInNhbXBsZVJhdGUiLCBNZWRp
YUNvbnN0cmFpbnRUeXBlOjpTYW1wbGVSYXRlLCBjb25zdHJhaW50U2V0LnNhbXBsZVJhdGUpOwot
ICAgIHNldChyZXN1bHQsIHNldFR5cGUsICJzYW1wbGVTaXplIiwgTWVkaWFDb25zdHJhaW50VHlw
ZTo6U2FtcGxlU2l6ZSwgY29uc3RyYWludFNldC5zYW1wbGVTaXplKTsKLSAgICBzZXQocmVzdWx0
LCBzZXRUeXBlLCAiZWNob0NhbmNlbGxhdGlvbiIsIE1lZGlhQ29uc3RyYWludFR5cGU6OkVjaG9D
YW5jZWxsYXRpb24sIGNvbnN0cmFpbnRTZXQuZWNob0NhbmNlbGxhdGlvbik7CisgICAgc2V0KHJl
c3VsdCwgc2V0VHlwZSwgIndpZHRoIl9zLCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpXaWR0aCwgY29u
c3RyYWludFNldC53aWR0aCk7CisgICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgImhlaWdodCJfcywg
TWVkaWFDb25zdHJhaW50VHlwZTo6SGVpZ2h0LCBjb25zdHJhaW50U2V0LmhlaWdodCk7CisgICAg
c2V0KHJlc3VsdCwgc2V0VHlwZSwgImFzcGVjdFJhdGlvIl9zLCBNZWRpYUNvbnN0cmFpbnRUeXBl
OjpBc3BlY3RSYXRpbywgY29uc3RyYWludFNldC5hc3BlY3RSYXRpbyk7CisgICAgc2V0KHJlc3Vs
dCwgc2V0VHlwZSwgImZyYW1lUmF0ZSJfcywgTWVkaWFDb25zdHJhaW50VHlwZTo6RnJhbWVSYXRl
LCBjb25zdHJhaW50U2V0LmZyYW1lUmF0ZSk7CisgICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgImZh
Y2luZ01vZGUiX3MsIE1lZGlhQ29uc3RyYWludFR5cGU6OkZhY2luZ01vZGUsIGNvbnN0cmFpbnRT
ZXQuZmFjaW5nTW9kZSk7CisgICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgInZvbHVtZSJfcywgTWVk
aWFDb25zdHJhaW50VHlwZTo6Vm9sdW1lLCBjb25zdHJhaW50U2V0LnZvbHVtZSk7CisgICAgc2V0
KHJlc3VsdCwgc2V0VHlwZSwgInNhbXBsZVJhdGUiX3MsIE1lZGlhQ29uc3RyYWludFR5cGU6OlNh
bXBsZVJhdGUsIGNvbnN0cmFpbnRTZXQuc2FtcGxlUmF0ZSk7CisgICAgc2V0KHJlc3VsdCwgc2V0
VHlwZSwgInNhbXBsZVNpemUiX3MsIE1lZGlhQ29uc3RyYWludFR5cGU6OlNhbXBsZVNpemUsIGNv
bnN0cmFpbnRTZXQuc2FtcGxlU2l6ZSk7CisgICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgImVjaG9D
YW5jZWxsYXRpb24iX3MsIE1lZGlhQ29uc3RyYWludFR5cGU6OkVjaG9DYW5jZWxsYXRpb24sIGNv
bnN0cmFpbnRTZXQuZWNob0NhbmNlbGxhdGlvbik7CiAgICAgLy8gRklYTUU6IGFkZCBsYXRlbmN5
CiAgICAgLy8gRklYTUU6IGFkZCBjaGFubmVsQ291bnQKLSAgICBzZXQocmVzdWx0LCBzZXRUeXBl
LCAiZGV2aWNlSWQiLCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpEZXZpY2VJZCwgY29uc3RyYWludFNl
dC5kZXZpY2VJZCk7Ci0gICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgImdyb3VwSWQiLCBNZWRpYUNv
bnN0cmFpbnRUeXBlOjpHcm91cElkLCBjb25zdHJhaW50U2V0Lmdyb3VwSWQpOwotICAgIHNldChy
ZXN1bHQsIHNldFR5cGUsICJkaXNwbGF5U3VyZmFjZSIsIE1lZGlhQ29uc3RyYWludFR5cGU6OkRp
c3BsYXlTdXJmYWNlLCBjb25zdHJhaW50U2V0LmRpc3BsYXlTdXJmYWNlKTsKLSAgICBzZXQocmVz
dWx0LCBzZXRUeXBlLCAibG9naWNhbFN1cmZhY2UiLCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpMb2dp
Y2FsU3VyZmFjZSwgY29uc3RyYWludFNldC5sb2dpY2FsU3VyZmFjZSk7CisgICAgc2V0KHJlc3Vs
dCwgc2V0VHlwZSwgImRldmljZUlkIl9zLCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpEZXZpY2VJZCwg
Y29uc3RyYWludFNldC5kZXZpY2VJZCk7CisgICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgImdyb3Vw
SWQiX3MsIE1lZGlhQ29uc3RyYWludFR5cGU6Okdyb3VwSWQsIGNvbnN0cmFpbnRTZXQuZ3JvdXBJ
ZCk7CisgICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgImRpc3BsYXlTdXJmYWNlIl9zLCBNZWRpYUNv
bnN0cmFpbnRUeXBlOjpEaXNwbGF5U3VyZmFjZSwgY29uc3RyYWludFNldC5kaXNwbGF5U3VyZmFj
ZSk7CisgICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgImxvZ2ljYWxTdXJmYWNlIl9zLCBNZWRpYUNv
bnN0cmFpbnRUeXBlOjpMb2dpY2FsU3VyZmFjZSwgY29uc3RyYWludFNldC5sb2dpY2FsU3VyZmFj
ZSk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENJY2VDYW5kaWRhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENJY2VDYW5kaWRhdGUuY3BwCmluZGV4IDlmNzA2ZGY2ZGY2
NWU3Zjk1ODE1NzUxNDAyMjQ4ZTA4YzdhMjNmYTAuLmJiN2VmNzQxMjYxOWMwNTlkY2VjNzRkNjhl
ZTJkYmUwYzkzYWJjMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDSWNlQ2FuZGlkYXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ0ljZUNhbmRpZGF0ZS5jcHAKQEAgLTU0LDcgKzU0LDcgQEAgUlRDSWNlQ2Fu
ZGlkYXRlOjpSVENJY2VDYW5kaWRhdGUoY29uc3QgU3RyaW5nJiBjYW5kaWRhdGUsIGNvbnN0IFN0
cmluZyYgc2RwTWlkLAogRXhjZXB0aW9uT3I8UmVmPFJUQ0ljZUNhbmRpZGF0ZT4+IFJUQ0ljZUNh
bmRpZGF0ZTo6Y3JlYXRlKGNvbnN0IFJUQ0ljZUNhbmRpZGF0ZUluaXQmIGRpY3Rpb25hcnkpCiB7
CiAgICAgaWYgKGRpY3Rpb25hcnkuc2RwTWlkLmlzTnVsbCgpICYmICFkaWN0aW9uYXJ5LnNkcE1M
aW5lSW5kZXgpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJDYW5kaWRh
dGUgbXVzdCBub3QgaGF2ZSBib3RoIG51bGwgc2RwTWlkIGFuZCBzZHBNTGluZUluZGV4IiB9Owor
ICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiQ2FuZGlkYXRlIG11c3Qgbm90
IGhhdmUgYm90aCBudWxsIHNkcE1pZCBhbmQgc2RwTUxpbmVJbmRleCJfcyB9OwogCiAgICAgYXV0
byBmaWVsZHMgPSB2YWx1ZU9yRGVmYXVsdChwYXJzZUljZUNhbmRpZGF0ZVNEUChkaWN0aW9uYXJ5
LmNhbmRpZGF0ZSkpOwogICAgIGZpZWxkcy51c2VybmFtZUZyYWdtZW50ID0gZGljdGlvbmFyeS51
c2VybmFtZUZyYWdtZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcAppbmRleCA5MGRlNjM5OTM0ZWQ2MWM1YzBi
MTAxMmMwYWE1Mzk3ZGQwZDhiMzJhLi40MTU2NmE1NTVmNjJlZTUwOGUwZGQxYTFkZDcwODg0ZWY3
NTBmNWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1BlZXJDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcApAQCAtMjczLDcgKzI3Myw3IEBAIHZvaWQgUlRDUGVl
ckNvbm5lY3Rpb246OnNldExvY2FsRGVzY3JpcHRpb24oc3RkOjpvcHRpb25hbDxSVENMb2NhbFNl
c3Npb25EZXNjcmlwCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBBTFdBWVNfTE9HKExP
R0lERU5USUZJRVIsICJTZXR0aW5nIGxvY2FsIGRlc2NyaXB0aW9uIHRvOlxuIiwgbG9jYWxEZXNj
cmlwdGlvbiA/IGxvY2FsRGVzY3JpcHRpb24tPnNkcCA6ICInJyIpOworICAgIEFMV0FZU19MT0co
TE9HSURFTlRJRklFUiwgIlNldHRpbmcgbG9jYWwgZGVzY3JpcHRpb24gdG86XG4iLCBsb2NhbERl
c2NyaXB0aW9uID8gbG9jYWxEZXNjcmlwdGlvbi0+c2RwIDogIicnIl9zKTsKICAgICBjaGFpbk9w
ZXJhdGlvbihXVEZNb3ZlKHByb21pc2UpLCBbdGhpcywgbG9jYWxEZXNjcmlwdGlvbiA9IFdURk1v
dmUobG9jYWxEZXNjcmlwdGlvbildKGF1dG8mJiBwcm9taXNlKSBtdXRhYmxlIHsKICAgICAgICAg
YXV0byB0eXBlID0gdHlwZUZvclNldExvY2FsRGVzY3JpcHRpb24obG9jYWxEZXNjcmlwdGlvbiwg
bV9zaWduYWxpbmdTdGF0ZSk7CiAgICAgICAgIFN0cmluZyBzZHA7CkBAIC0zNDQsNyArMzQ0LDcg
QEAgdm9pZCBSVENQZWVyQ29ubmVjdGlvbjo6YWRkSWNlQ2FuZGlkYXRlKENhbmRpZGF0ZSYmIHJ0
Y0NhbmRpZGF0ZSwgUmVmPERlZmVycmVkUHIKICAgICAgICAgfSk7CiAgICAgfQogCi0gICAgQUxX
QVlTX0xPRyhMT0dJREVOVElGSUVSLCAiUmVjZWl2ZWQgaWNlIGNhbmRpZGF0ZTpcbiIsIGNhbmRp
ZGF0ZSA/IGNhbmRpZGF0ZS0+Y2FuZGlkYXRlKCkgOiAibnVsbCIpOworICAgIEFMV0FZU19MT0co
TE9HSURFTlRJRklFUiwgIlJlY2VpdmVkIGljZSBjYW5kaWRhdGU6XG4iLCBjYW5kaWRhdGUgPyBj
YW5kaWRhdGUtPmNhbmRpZGF0ZSgpIDogIm51bGwiX3MpOwogCiAgICAgaWYgKGV4Y2VwdGlvbikg
ewogICAgICAgICBwcm9taXNlLT5yZWplY3QoKmV4Y2VwdGlvbik7CkBAIC0zNzksMTMgKzM3OSwx
MyBAQCBzdGQ6Om9wdGlvbmFsPGJvb2w+IFJUQ1BlZXJDb25uZWN0aW9uOjpjYW5Ucmlja2xlSWNl
Q2FuZGlkYXRlcygpIGNvbnN0CiBFeGNlcHRpb25PcjxWZWN0b3I8TWVkaWFFbmRwb2ludENvbmZp
Z3VyYXRpb246OkljZVNlcnZlckluZm8+PiBSVENQZWVyQ29ubmVjdGlvbjo6aWNlU2VydmVyc0Zy
b21Db25maWd1cmF0aW9uKFJUQ0NvbmZpZ3VyYXRpb24mIG5ld0NvbmZpZ3VyYXRpb24sIGNvbnN0
IFJUQ0NvbmZpZ3VyYXRpb24qIGV4aXN0aW5nQ29uZmlndXJhdGlvbiwgYm9vbCBpc0xvY2FsRGVz
Y3JpcHRpb25TZXQpCiB7CiAgICAgaWYgKGV4aXN0aW5nQ29uZmlndXJhdGlvbiAmJiBuZXdDb25m
aWd1cmF0aW9uLmJ1bmRsZVBvbGljeSAhPSBleGlzdGluZ0NvbmZpZ3VyYXRpb24tPmJ1bmRsZVBv
bGljeSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRNb2RpZmljYXRpb25FcnJv
ciwgIkJ1bmRsZVBvbGljeSBkb2VzIG5vdCBtYXRjaCBleGlzdGluZyBwb2xpY3kiIH07CisgICAg
ICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3IsICJCdW5kbGVQ
b2xpY3kgZG9lcyBub3QgbWF0Y2ggZXhpc3RpbmcgcG9saWN5Il9zIH07CiAKICAgICBpZiAoZXhp
c3RpbmdDb25maWd1cmF0aW9uICYmIG5ld0NvbmZpZ3VyYXRpb24ucnRjcE11eFBvbGljeSAhPSBl
eGlzdGluZ0NvbmZpZ3VyYXRpb24tPnJ0Y3BNdXhQb2xpY3kpCi0gICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3IsICJSVENQTXV4UG9saWN5IGRvZXMgbm90
IG1hdGNoIGV4aXN0aW5nIHBvbGljeSIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElu
dmFsaWRNb2RpZmljYXRpb25FcnJvciwgIlJUQ1BNdXhQb2xpY3kgZG9lcyBub3QgbWF0Y2ggZXhp
c3RpbmcgcG9saWN5Il9zIH07CiAKICAgICBpZiAoZXhpc3RpbmdDb25maWd1cmF0aW9uICYmIG5l
d0NvbmZpZ3VyYXRpb24uaWNlQ2FuZGlkYXRlUG9vbFNpemUgIT0gZXhpc3RpbmdDb25maWd1cmF0
aW9uLT5pY2VDYW5kaWRhdGVQb29sU2l6ZSAmJiBpc0xvY2FsRGVzY3JpcHRpb25TZXQpCi0gICAg
ICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3IsICJJY2VUcmFu
c3BvcnRQb2xpY3kgcG9vbCBzaXplIGRvZXMgbm90IG1hdGNoIGV4aXN0aW5nIHBvb2wgc2l6ZSIg
fTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRNb2RpZmljYXRpb25FcnJvciwg
IkljZVRyYW5zcG9ydFBvbGljeSBwb29sIHNpemUgZG9lcyBub3QgbWF0Y2ggZXhpc3RpbmcgcG9v
bCBzaXplIl9zIH07CiAKICAgICBWZWN0b3I8TWVkaWFFbmRwb2ludENvbmZpZ3VyYXRpb246Oklj
ZVNlcnZlckluZm8+IHNlcnZlcnM7CiAgICAgaWYgKG5ld0NvbmZpZ3VyYXRpb24uaWNlU2VydmVy
cykgewpAQCAtNDE0LDE4ICs0MTQsMTggQEAgRXhjZXB0aW9uT3I8VmVjdG9yPE1lZGlhRW5kcG9p
bnRDb25maWd1cmF0aW9uOjpJY2VTZXJ2ZXJJbmZvPj4gUlRDUGVlckNvbm5lY3Rpb24KIAogICAg
ICAgICAgICAgZm9yIChhdXRvJiBzZXJ2ZXJVUkwgOiBzZXJ2ZXJVUkxzKSB7CiAgICAgICAgICAg
ICAgICAgaWYgKHNlcnZlclVSTC5pc051bGwoKSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIkJhZCBJQ0Ugc2VydmVyIFVSTCIgfTsKKyAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIkJhZCBJQ0Ugc2VydmVy
IFVSTCJfcyB9OwogICAgICAgICAgICAgICAgIGlmIChzZXJ2ZXJVUkwucHJvdG9jb2xJcygidHVy
biIpIHx8IHNlcnZlclVSTC5wcm90b2NvbElzKCJ0dXJucyIpKSB7CiAgICAgICAgICAgICAgICAg
ICAgIGlmIChzZXJ2ZXIuY3JlZGVudGlhbC5pc051bGwoKSB8fCBzZXJ2ZXIudXNlcm5hbWUuaXNO
dWxsKCkpCi0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxp
ZEFjY2Vzc0Vycm9yLCAiVFVSTi9UVVJOUyBzZXJ2ZXIgcmVxdWlyZXMgYm90aCB1c2VybmFtZSBh
bmQgY3JlZGVudGlhbCIgfTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBFeGNlcHRp
b24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJUVVJOL1RVUk5TIHNlcnZlciByZXF1aXJlcyBib3Ro
IHVzZXJuYW1lIGFuZCBjcmVkZW50aWFsIl9zIH07CiAgICAgICAgICAgICAgICAgICAgIC8vIGh0
dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM4NDg5I3NlY3Rpb24tMTQuMwogICAgICAgICAg
ICAgICAgICAgICBpZiAoc2VydmVyLmNyZWRlbnRpYWwubGVuZ3RoKCkgPiA2NCB8fCBzZXJ2ZXIu
dXNlcm5hbWUubGVuZ3RoKCkgPiA2NCkgewogICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Rl
eHByIHNpemVfdCBNYXhUdXJuVXNlcm5hbWVMZW5ndGggPSA1MDk7CiAgICAgICAgICAgICAgICAg
ICAgICAgICBpZiAoc2VydmVyLmNyZWRlbnRpYWwudXRmOCgpLmxlbmd0aCgpID4gTWF4VHVyblVz
ZXJuYW1lTGVuZ3RoIHx8IHNlcnZlci51c2VybmFtZS51dGY4KCkubGVuZ3RoKCkgPiBNYXhUdXJu
VXNlcm5hbWVMZW5ndGgpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEV4Y2Vw
dGlvbiB7IFR5cGVFcnJvciwgIlRVUk4vVFVSTlMgdXNlcm5hbWUgYW5kL29yIGNyZWRlbnRpYWwg
YXJlIHRvbyBsb25nIiB9OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBUeXBlRXJyb3IsICJUVVJOL1RVUk5TIHVzZXJuYW1lIGFuZC9vciBjcmVkZW50aWFs
IGFyZSB0b28gbG9uZyJfcyB9OwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICAgfSBlbHNlIGlmICghc2VydmVyVVJMLnByb3RvY29sSXMoInN0dW4iKSkKLSAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yLCAiSUNFIHNlcnZl
ciBwcm90b2NvbCBub3Qgc3VwcG9ydGVkIiB9OworICAgICAgICAgICAgICAgICAgICByZXR1cm4g
RXhjZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IsICJJQ0Ugc2VydmVyIHByb3RvY29sIG5vdCBz
dXBwb3J0ZWQiX3MgfTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGlmIChzZXJ2ZXJVUkxz
LnNpemUoKSkKICAgICAgICAgICAgICAgICBzZXJ2ZXJzLnVuY2hlY2tlZEFwcGVuZCh7IFdURk1v
dmUoc2VydmVyVVJMcyksIHNlcnZlci5jcmVkZW50aWFsLCBzZXJ2ZXIudXNlcm5hbWUgfSk7CkBA
IC00NDMsNyArNDQzLDcgQEAgRXhjZXB0aW9uT3I8VmVjdG9yPE1lZGlhRW5kcG9pbnRDb25maWd1
cmF0aW9uOjpDZXJ0aWZpY2F0ZVBFTT4+IFJUQ1BlZXJDb25uZWN0aW8KICAgICBjZXJ0aWZpY2F0
ZXMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShjb25maWd1cmF0aW9uLmNlcnRpZmljYXRlcy5zaXpl
KCkpOwogICAgIGZvciAoYXV0byYgY2VydGlmaWNhdGUgOiBjb25maWd1cmF0aW9uLmNlcnRpZmlj
YXRlcykgewogICAgICAgICBpZiAoIW9yaWdpbi5pc1NhbWVPcmlnaW5BcyhjZXJ0aWZpY2F0ZS0+
b3JpZ2luKCkpKQotICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NF
cnJvciwgIkNlcnRpZmljYXRlIGRvZXMgbm90IGhhdmUgYSB2YWxpZCBvcmlnaW4iIH07CisgICAg
ICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiQ2VydGlmaWNh
dGUgZG9lcyBub3QgaGF2ZSBhIHZhbGlkIG9yaWdpbiJfcyB9OwogCiAgICAgICAgIGlmIChjdXJy
ZW50TWlsbGlTZWNvbmRzID4gY2VydGlmaWNhdGUtPmV4cGlyZXMoKSkKICAgICAgICAgICAgIHJl
dHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJDZXJ0aWZpY2F0ZSBoYXMgZXhw
aXJlZCJfcyB9OwpAQCAtNDY2LDcgKzQ2Niw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFJUQ1BlZXJD
b25uZWN0aW9uOjppbml0aWFsaXplQ29uZmlndXJhdGlvbihSVENDb25maWd1cmF0aW9uJiYKICAg
ICAgICAgcmV0dXJuIGNlcnRpZmljYXRlcy5yZWxlYXNlRXhjZXB0aW9uKCk7CiAKICAgICBpZiAo
IW1fYmFja2VuZC0+c2V0Q29uZmlndXJhdGlvbih7IHNlcnZlcnMucmVsZWFzZVJldHVyblZhbHVl
KCksIGNvbmZpZ3VyYXRpb24uaWNlVHJhbnNwb3J0UG9saWN5LCBjb25maWd1cmF0aW9uLmJ1bmRs
ZVBvbGljeSwgY29uZmlndXJhdGlvbi5ydGNwTXV4UG9saWN5LCBjb25maWd1cmF0aW9uLmljZUNh
bmRpZGF0ZVBvb2xTaXplLCBjZXJ0aWZpY2F0ZXMucmVsZWFzZVJldHVyblZhbHVlKCkgfSkpCi0g
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJCYWQgQ29uZmln
dXJhdGlvbiBQYXJhbWV0ZXJzIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxp
ZEFjY2Vzc0Vycm9yLCAiQmFkIENvbmZpZ3VyYXRpb24gUGFyYW1ldGVycyJfcyB9OwogCiAgICAg
bV9jb25maWd1cmF0aW9uID0gV1RGTW92ZShjb25maWd1cmF0aW9uKTsKICAgICByZXR1cm4geyB9
OwpAQCAtNDg1LDE5ICs0ODUsMTkgQEAgRXhjZXB0aW9uT3I8dm9pZD4gUlRDUGVlckNvbm5lY3Rp
b246OnNldENvbmZpZ3VyYXRpb24oUlRDQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3UKIAogICAgIGlm
IChjb25maWd1cmF0aW9uLmNlcnRpZmljYXRlcy5zaXplKCkpIHsKICAgICAgICAgaWYgKGNvbmZp
Z3VyYXRpb24uY2VydGlmaWNhdGVzLnNpemUoKSAhPSBtX2NvbmZpZ3VyYXRpb24uY2VydGlmaWNh
dGVzLnNpemUoKSkKLSAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkTW9kaWZp
Y2F0aW9uRXJyb3IsICJDZXJ0aWZpY2F0ZXMgcGFyYW1ldGVycyBhcmUgZGlmZmVyZW50IiB9Owor
ICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRNb2RpZmljYXRpb25FcnJvciwg
IkNlcnRpZmljYXRlcyBwYXJhbWV0ZXJzIGFyZSBkaWZmZXJlbnQiX3MgfTsKIAogICAgICAgICBm
b3IgKGF1dG8mIGNlcnRpZmljYXRlIDogY29uZmlndXJhdGlvbi5jZXJ0aWZpY2F0ZXMpIHsKICAg
ICAgICAgICAgIGJvb2wgaXNUaGVyZSA9IG1fY29uZmlndXJhdGlvbi5jZXJ0aWZpY2F0ZXMuZmlu
ZElmKFsmY2VydGlmaWNhdGVdKGNvbnN0IGF1dG8mIGl0ZW0pIHsKICAgICAgICAgICAgICAgICBy
ZXR1cm4gaXRlbS5nZXQoKSA9PSBjZXJ0aWZpY2F0ZS5nZXQoKTsKICAgICAgICAgICAgIH0pICE9
IG5vdEZvdW5kOwogICAgICAgICAgICAgaWYgKCFpc1RoZXJlKQotICAgICAgICAgICAgICAgIHJl
dHVybiBFeGNlcHRpb24geyBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3IsICJBIGNlcnRpZmljYXRl
IGdpdmVuIGluIGNvbnN0cnVjdG9yIGlzIG5vdCBwcmVzZW50IiB9OworICAgICAgICAgICAgICAg
IHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3IsICJBIGNlcnRpZmlj
YXRlIGdpdmVuIGluIGNvbnN0cnVjdG9yIGlzIG5vdCBwcmVzZW50Il9zIH07CiAgICAgICAgIH0K
ICAgICB9CiAKICAgICBpZiAoIW1fYmFja2VuZC0+c2V0Q29uZmlndXJhdGlvbih7IHNlcnZlcnMu
cmVsZWFzZVJldHVyblZhbHVlKCksIGNvbmZpZ3VyYXRpb24uaWNlVHJhbnNwb3J0UG9saWN5LCBj
b25maWd1cmF0aW9uLmJ1bmRsZVBvbGljeSwgY29uZmlndXJhdGlvbi5ydGNwTXV4UG9saWN5LCBj
b25maWd1cmF0aW9uLmljZUNhbmRpZGF0ZVBvb2xTaXplLCB7IH0gfSkpCi0gICAgICAgIHJldHVy
biBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJCYWQgQ29uZmlndXJhdGlvbiBQYXJh
bWV0ZXJzIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9y
LCAiQmFkIENvbmZpZ3VyYXRpb24gUGFyYW1ldGVycyJfcyB9OwogCiAgICAgbV9jb25maWd1cmF0
aW9uID0gV1RGTW92ZShjb25maWd1cmF0aW9uKTsKICAgICByZXR1cm4geyB9OwpAQCAtOTE5LDcg
KzkxOSw3IEBAIGNvbnN0IFZlY3RvcjxSZWZQdHI8UlRDUnRwVHJhbnNjZWl2ZXI+PiYgUlRDUGVl
ckNvbm5lY3Rpb246OmdldFRyYW5zY2VpdmVycygpIGNvCiB2b2lkIFJUQ1BlZXJDb25uZWN0aW9u
OjpjaGFpbk9wZXJhdGlvbihSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UsIEZ1bmN0aW9u
PHZvaWQoUmVmPERlZmVycmVkUHJvbWlzZT4mJik+JiYgb3BlcmF0aW9uKQogewogICAgIGlmIChp
c0Nsb3NlZCgpKSB7Ci0gICAgICAgIHByb21pc2UtPnJlamVjdChJbnZhbGlkU3RhdGVFcnJvciwg
IlJUQ1BlZXJDb25uZWN0aW9uIGlzIGNsb3NlZCIpOworICAgICAgICBwcm9taXNlLT5yZWplY3Qo
SW52YWxpZFN0YXRlRXJyb3IsICJSVENQZWVyQ29ubmVjdGlvbiBpcyBjbG9zZWQiX3MpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCkBAIC05MjcsNyArOTI3LDcgQEAgdm9pZCBSVENQZWVyQ29u
bmVjdGlvbjo6Y2hhaW5PcGVyYXRpb24oUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlLCBG
dW5jdGlvbjwKICAgICAgICAgQVNTRVJUKG1faGFzUGVuZGluZ09wZXJhdGlvbik7CiAgICAgICAg
IGlmIChpc0Nsb3NlZCgpKSB7CiAgICAgICAgICAgICBmb3IgKGF1dG8mIG9wZXJhdGlvbiA6IHN0
ZDo6ZXhjaGFuZ2UobV9vcGVyYXRpb25zLCB7IH0pKQotICAgICAgICAgICAgICAgIG9wZXJhdGlv
bi5maXJzdC0+cmVqZWN0KEludmFsaWRTdGF0ZUVycm9yLCAiUlRDUGVlckNvbm5lY3Rpb24gaXMg
Y2xvc2VkIik7CisgICAgICAgICAgICAgICAgb3BlcmF0aW9uLmZpcnN0LT5yZWplY3QoSW52YWxp
ZFN0YXRlRXJyb3IsICJSVENQZWVyQ29ubmVjdGlvbiBpcyBjbG9zZWQiX3MpOwogICAgICAgICAg
ICAgbV9oYXNQZW5kaW5nT3BlcmF0aW9uID0gZmFsc2U7CiAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm1lci5jcHAKaW5kZXggY2IzZjdjZDliZjIxMjNl
OTFkMmRmN2E0NTFkMWM2ZTgxODllZDQ0ZC4uNGYyOWFiMTVlNmI1Njc3MTczMGFmOTQ0MmNlMGI0
MTQyNzBlMTZjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENSdHBTRnJhbWVUcmFuc2Zvcm1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm1lci5jcHAKQEAgLTM0Niw3ICszNDYs
NyBAQCBSVENSdHBTRnJhbWVUcmFuc2Zvcm1lcjo6VHJhbnNmb3JtUmVzdWx0IFJUQ1J0cFNGcmFt
ZVRyYW5zZm9ybWVyOjplbmNyeXB0RnJhbWUoUwogUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI6OlRy
YW5zZm9ybVJlc3VsdCBSVENSdHBTRnJhbWVUcmFuc2Zvcm1lcjo6dHJhbnNmb3JtKFNwYW48Y29u
c3QgdWludDhfdD4gZGF0YSkKIHsKICAgICBpZiAoIW1faGFzS2V5KQotICAgICAgICByZXR1cm4g
bWFrZVVuZXhwZWN0ZWQoRXJyb3JJbmZvcm1hdGlvbiB7IEVycm9yOjpLZXlJRCwgICJLZXkgaXMg
bm90IGluaXRpYWxpemVkIiwgMCB9KTsKKyAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKEVy
cm9ySW5mb3JtYXRpb24geyBFcnJvcjo6S2V5SUQsICAiS2V5IGlzIG5vdCBpbml0aWFsaXplZCJf
cywgMCB9KTsKIAogICAgIHJldHVybiBtX2lzRW5jcnlwdGluZyA/IGVuY3J5cHRGcmFtZShkYXRh
KSA6IGRlY3J5cHRGcmFtZShkYXRhKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2Vu
ZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJX
ZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwCmluZGV4IDEzMzMxYWNjMDQ0MGNkMDE3ODlj
NzMxNTgwZWI1NjkwNDFjMzgxY2QuLjMyM2MyODEzYzMyNGVmZWU2OThmNGMwZTRiOWZmZmNjNzlk
NGQ2YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGli
d2VicnRjL0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUGVlckNvbm5lY3Rp
b25CYWNrZW5kLmNwcApAQCAtMjYwLDcgKzI2MCw3IEBAIHZvaWQgTGliV2ViUlRDUGVlckNvbm5l
Y3Rpb25CYWNrZW5kOjpkb0NyZWF0ZU9mZmVyKFJUQ09mZmVyT3B0aW9ucyYmIG9wdGlvbnMpCiB2
b2lkIExpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZDo6ZG9DcmVhdGVBbnN3ZXIoUlRDQW5z
d2VyT3B0aW9ucyYmKQogewogICAgIGlmICghbV9pc1JlbW90ZURlc2NyaXB0aW9uU2V0KSB7Ci0g
ICAgICAgIGNyZWF0ZUFuc3dlckZhaWxlZChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwg
Ik5vIHJlbW90ZSBkZXNjcmlwdGlvbiBzZXQiIH0pOworICAgICAgICBjcmVhdGVBbnN3ZXJGYWls
ZWQoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJObyByZW1vdGUgZGVzY3JpcHRpb24g
c2V0Il9zIH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIG1fZW5kcG9pbnQtPmRvQ3Jl
YXRlQW5zd2VyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENSdHBUcmFuc2NlaXZlckJhY2tlbmQuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUnRwVHJhbnNj
ZWl2ZXJCYWNrZW5kLmNwcAppbmRleCBkMWY3M2FkN2Y0NzhmNjA0NzI1YjA2MDk5ZmRlNjkwYzcz
ZWQ1YjQ1Li40MTc2ZThkNmY3ODNhNTI1YTgwZjdhNjBlYWRjNjdmNmJmZDcwMTZjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJS
VENSdHBUcmFuc2NlaXZlckJhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1J0cFRyYW5zY2VpdmVyQmFja2VuZC5jcHAK
QEAgLTg5LDcgKzg5LDcgQEAgc3RhdGljIGlubGluZSBFeGNlcHRpb25Pcjx3ZWJydGM6OlJ0cENv
ZGVjQ2FwYWJpbGl0eT4gdG9SdHBDb2RlY0NhcGFiaWxpdHkoY29uc3QKICAgICBlbHNlIGlmIChj
b2RlYy5taW1lVHlwZS5zdGFydHNXaXRoKCJhdWRpby8iKSkKICAgICAgICAgcnRjQ29kZWMua2lu
ZCA9IGNyaWNrZXQ6Ok1FRElBX1RZUEVfQVVESU87CiAgICAgZWxzZQotICAgICAgICByZXR1cm4g
RXhjZXB0aW9uIHsgSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yLCAiUlRDUnRwQ29kZWNDYXBhYmls
aXR5IGJhZCBtaW1lVHlwZSIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRN
b2RpZmljYXRpb25FcnJvciwgIlJUQ1J0cENvZGVjQ2FwYWJpbGl0eSBiYWQgbWltZVR5cGUiX3Mg
fTsKIAogICAgIHJ0Y0NvZGVjLm5hbWUgPSBjb2RlYy5taW1lVHlwZS5zdWJzdHJpbmcoNikudXRm
OCgpLmRhdGEoKTsKICAgICBydGNDb2RlYy5jbG9ja19yYXRlID0gY29kZWMuY2xvY2tSYXRlOwpA
QCAtOTksNyArOTksNyBAQCBzdGF0aWMgaW5saW5lIEV4Y2VwdGlvbk9yPHdlYnJ0Yzo6UnRwQ29k
ZWNDYXBhYmlsaXR5PiB0b1J0cENvZGVjQ2FwYWJpbGl0eShjb25zdAogICAgIGZvciAoYXV0byBw
YXJhbWV0ZXIgOiBTdHJpbmdWaWV3KGNvZGVjLnNkcEZtdHBMaW5lKS5zcGxpdCgnOycpKSB7CiAg
ICAgICAgIGF1dG8gcG9zaXRpb24gPSBwYXJhbWV0ZXIuZmluZCgnPScpOwogICAgICAgICBpZiAo
cG9zaXRpb24gPT0gbm90Rm91bmQpCi0gICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52
YWxpZE1vZGlmaWNhdGlvbkVycm9yLCAiUlRDUnRwQ29kZWNDYXBhYmlsaXR5IHNkcEZtdExpbmUg
YmFkbHkgZm9ybWF0ZWQiIH07CisgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxp
ZE1vZGlmaWNhdGlvbkVycm9yLCAiUlRDUnRwQ29kZWNDYXBhYmlsaXR5IHNkcEZtdExpbmUgYmFk
bHkgZm9ybWF0ZWQiX3MgfTsKICAgICAgICAgcnRjQ29kZWMucGFyYW1ldGVycy5lbXBsYWNlKHBh
cmFtZXRlci5zdWJzdHJpbmcoMCwgcG9zaXRpb24pLnV0ZjgoKS5kYXRhKCksIHBhcmFtZXRlci5z
dWJzdHJpbmcocG9zaXRpb24gKyAxKS51dGY4KCkuZGF0YSgpKTsKICAgICB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJU
Q1V0aWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRj
L0xpYldlYlJUQ1V0aWxzLmNwcAppbmRleCA0NWU0ZDE3MzYzZmYxYjY0MDdlM2MwOTljMGZjN2Y0
MjgyZmE2OGIwLi45ZjE5NmYzNzhiYjc3NzY3M2NmNzEyMGNhYTRmYjQ2NDUwMWY0YTg1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJX
ZWJSVENVdGlscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9s
aWJ3ZWJydGMvTGliV2ViUlRDVXRpbHMuY3BwCkBAIC0zNjAsNyArMzYwLDcgQEAgRXhjZXB0aW9u
IHRvRXhjZXB0aW9uKGNvbnN0IHdlYnJ0Yzo6UlRDRXJyb3ImIGVycm9yKQogewogICAgIEFTU0VS
VCghZXJyb3Iub2soKSk7CiAKLSAgICByZXR1cm4gRXhjZXB0aW9uIHsgdG9FeGNlcHRpb25Db2Rl
KGVycm9yLnR5cGUoKSksIGVycm9yLm1lc3NhZ2UoKSB9OworICAgIHJldHVybiBFeGNlcHRpb24g
eyB0b0V4Y2VwdGlvbkNvZGUoZXJyb3IudHlwZSgpKSwgU3RyaW5nIHsgZXJyb3IubWVzc2FnZSgp
IH0gfTsKIH0KIAogc3RhdGljIGlubGluZSBSVENJY2VDb21wb25lbnQgdG9SVENJY2VDb21wb25l
bnQoaW50IGNvbXBvbmVudCkKQEAgLTQ1NSw3ICs0NTUsNyBAQCBSZWZQdHI8UlRDRXJyb3I+IHRv
UlRDRXJyb3IoY29uc3Qgd2VicnRjOjpSVENFcnJvciYgcnRjRXJyb3IpCiAgICAgYXV0byBkZXRh
aWwgPSB0b1JUQ0Vycm9yRGV0YWlsVHlwZShydGNFcnJvci5lcnJvcl9kZXRhaWwoKSk7CiAgICAg
aWYgKCFkZXRhaWwpCiAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgIHJldHVybiBSVENFcnJv
cjo6Y3JlYXRlKCpkZXRhaWwsIHJ0Y0Vycm9yLm1lc3NhZ2UoKSk7CisgICAgcmV0dXJuIFJUQ0Vy
cm9yOjpjcmVhdGUoKmRldGFpbCwgU3RyaW5nIHsgcnRjRXJyb3IubWVzc2FnZSgpIH0pOwogfQog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21vZGVsLWVsZW1lbnQvc2NlbmVraXQvU2NlbmVLaXRNb2RlbExvYWRlclVTRC5tbSBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9zY2VuZWtpdC9TY2VuZUtpdE1vZGVs
TG9hZGVyVVNELm1tCmluZGV4IDA5ZWM4ZjYwM2U5ZDAyMmIzNzhkZGEwZTQyN2ZlYzUyMWZkZDUy
ZDIuLmNhYjRiOGRlMjAyZTc3ZDcwMjgyYjU5NGExYmVmYmQ3NWIwNmNiMmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9zY2VuZWtpdC9TY2VuZUtpdE1v
ZGVsTG9hZGVyVVNELm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVu
dC9zY2VuZWtpdC9TY2VuZUtpdE1vZGVsTG9hZGVyVVNELm1tCkBAIC0xMDIsNyArMTAyLDcgQEAg
c3RhdGljIFJldGFpblB0cjxOU1VSTD4gd3JpdGVUb1RlbXBvcmFyeUZpbGUoV2ViQ29yZTo6TW9k
ZWwmIG1vZGVsU291cmNlKQogICAgIC8vIGluaXRpYWxpemVyIGJ1dCBjdXJyZW50bHkgdGhhdCBk
b2VzIG5vdCB3b3JrLgogCiAgICAgRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlIGZpbGVI
YW5kbGU7Ci0gICAgYXV0byBmaWxlUGF0aCA9IEZpbGVTeXN0ZW06Om9wZW5UZW1wb3JhcnlGaWxl
KCJNb2RlbEZpbGUiLCBmaWxlSGFuZGxlLCAiLnVzZHoiKTsKKyAgICBhdXRvIGZpbGVQYXRoID0g
RmlsZVN5c3RlbTo6b3BlblRlbXBvcmFyeUZpbGUoIk1vZGVsRmlsZSJfcywgZmlsZUhhbmRsZSwg
Ii51c2R6Il9zKTsKICAgICBBU1NFUlQoRmlsZVN5c3RlbTo6aXNIYW5kbGVWYWxpZChmaWxlSGFu
ZGxlKSk7CiAKICAgICBzaXplX3QgYnl0ZUNvdW50ID0gRmlsZVN5c3RlbTo6d3JpdGVUb0ZpbGUo
ZmlsZUhhbmRsZSwgbW9kZWxTb3VyY2UuZGF0YSgpLT5tYWtlQ29udGlndW91cygpLT5kYXRhKCks
IG1vZGVsU291cmNlLmRhdGEoKS0+c2l6ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5jcHAKaW5kZXggZGYyYjVj
MjY0ZjNhNWNlMmMxZTFjYjZiNzYzNDBhMDBmYTQwY2NlMC4uNDIyMzVlZWExYmZkMWNkMWI3MDcw
YjY5MDk0ODQyY2Y2ZTkzNTRiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9w
YXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5jcHAKQEAgLTIxNiw3ICsyMTYsNyBA
QCBzdGF0aWMgRXhjZXB0aW9uT3I8c3RkOjp0dXBsZTxTdHJpbmcsIFZlY3RvcjxTdHJpbmc+Pj4g
Y2hlY2tBbmRDYW5vbmljYWxpemVEZXRhaQogCiAgICAgICAgICAgICAgICAgYXV0byBhZGRSZXN1
bHQgPSBzZWVuU2hpcHBpbmdPcHRpb25JRHMuYWRkKHNoaXBwaW5nT3B0aW9uLmlkKTsKICAgICAg
ICAgICAgICAgICBpZiAoIWFkZFJlc3VsdC5pc05ld0VudHJ5KQotICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiU2hpcHBpbmcgb3B0aW9uIElEcyBtdXN0
IGJlIHVuaXF1ZS4iIH07CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBU
eXBlRXJyb3IsICJTaGlwcGluZyBvcHRpb24gSURzIG11c3QgYmUgdW5pcXVlLiJfcyB9OwogCiAj
aWYgRU5BQkxFKFBBWU1FTlRfUkVRVUVTVF9TRUxFQ1RFRF9TSElQUElOR19PUFRJT04pCiAgICAg
ICAgICAgICAgICAgaWYgKHNoaXBwaW5nT3B0aW9uLnNlbGVjdGVkKQpAQCAtMzc1LDcgKzM3NSw3
IEBAIHZvaWQgUGF5bWVudFJlcXVlc3Q6OnNob3coRG9jdW1lbnQmIGRvY3VtZW50LCBSZWZQdHI8
RE9NUHJvbWlzZT4mJiBkZXRhaWxzUHJvbWlzCiAKICAgICBhdXRvKiB3aW5kb3cgPSBkb2N1bWVu
dC5mcmFtZSgpLT53aW5kb3coKTsKICAgICBpZiAoIXdpbmRvdyB8fCAhd2luZG93LT5jb25zdW1l
VHJhbnNpZW50QWN0aXZhdGlvbigpKSB7Ci0gICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlv
biB7IFNlY3VyaXR5RXJyb3IsICJzaG93KCkgbXVzdCBiZSB0cmlnZ2VyZWQgYnkgdXNlciBhY3Rp
dmF0aW9uLiIgfSk7CisgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IFNlY3VyaXR5
RXJyb3IsICJzaG93KCkgbXVzdCBiZSB0cmlnZ2VyZWQgYnkgdXNlciBhY3RpdmF0aW9uLiJfcyB9
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9waWN0dXJlaW5waWN0dXJlL0hUTUxWaWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGljdHVyZWlucGljdHVyZS9IVE1MVmlkZW9F
bGVtZW50UGljdHVyZUluUGljdHVyZS5jcHAKaW5kZXggZjJmMDIzMTAyNzQ1YjlmZDIzZThlOTQy
ZDYwOWE3ZTliZTA2MTBkOC4uYmJlMmNiYzhiOWNiYWU0ZjJmYjBlYmRlOTRkNTk1YWY5ZDhmY2Ji
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9waWN0dXJlaW5waWN0dXJlL0hU
TUxWaWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3BpY3R1cmVpbnBpY3R1cmUvSFRNTFZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmUu
Y3BwCkBAIC04MSwyMyArODEsMjMgQEAgdm9pZCBIVE1MVmlkZW9FbGVtZW50UGljdHVyZUluUGlj
dHVyZTo6cHJvdmlkZVBpY3R1cmVJblBpY3R1cmVUbyhIVE1MVmlkZW9FbGVtZW4KIHZvaWQgSFRN
TFZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmU6OnJlcXVlc3RQaWN0dXJlSW5QaWN0dXJlKEhU
TUxWaWRlb0VsZW1lbnQmIHZpZGVvRWxlbWVudCwgUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9t
aXNlKQogewogICAgIGlmICghc3VwcG9ydHNQaWN0dXJlSW5QaWN0dXJlKCkpIHsKLSAgICAgICAg
cHJvbWlzZS0+cmVqZWN0KE5vdFN1cHBvcnRlZEVycm9yLCAiVGhlIFBpY3R1cmUtaW4tUGljdHVy
ZSBtb2RlIGlzIG5vdCBzdXBwb3J0ZWQuIik7CisgICAgICAgIHByb21pc2UtPnJlamVjdChOb3RT
dXBwb3J0ZWRFcnJvciwgIlRoZSBQaWN0dXJlLWluLVBpY3R1cmUgbW9kZSBpcyBub3Qgc3VwcG9y
dGVkLiJfcyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBpZiAodmlkZW9FbGVtZW50
LnJlYWR5U3RhdGUoKSA9PSBIVE1MTWVkaWFFbGVtZW50RW51bXM6OkhBVkVfTk9USElORykgewot
ICAgICAgICBwcm9taXNlLT5yZWplY3QoSW52YWxpZFN0YXRlRXJyb3IsICJUaGUgdmlkZW8gZWxl
bWVudCBpcyBub3QgcmVhZHkgdG8gZW50ZXIgdGhlIFBpY3R1cmUtaW4tUGljdHVyZSBtb2RlLiIp
OworICAgICAgICBwcm9taXNlLT5yZWplY3QoSW52YWxpZFN0YXRlRXJyb3IsICJUaGUgdmlkZW8g
ZWxlbWVudCBpcyBub3QgcmVhZHkgdG8gZW50ZXIgdGhlIFBpY3R1cmUtaW4tUGljdHVyZSBtb2Rl
LiJfcyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBpZiAoIXZpZGVvRWxlbWVudC52
aWRlb1RyYWNrcygpIHx8ICF2aWRlb0VsZW1lbnQudmlkZW9UcmFja3MoKS0+bGVuZ3RoKCkpIHsK
LSAgICAgICAgcHJvbWlzZS0+cmVqZWN0KEludmFsaWRTdGF0ZUVycm9yLCAiVGhlIHZpZGVvIGVs
ZW1lbnQgZG9lcyBub3QgaGF2ZSBhIHZpZGVvIHRyYWNrIG9yIGl0IGhhcyBub3QgZGV0ZWN0ZWQg
YSB2aWRlbyB0cmFjayB5ZXQuIik7CisgICAgICAgIHByb21pc2UtPnJlamVjdChJbnZhbGlkU3Rh
dGVFcnJvciwgIlRoZSB2aWRlbyBlbGVtZW50IGRvZXMgbm90IGhhdmUgYSB2aWRlbyB0cmFjayBv
ciBpdCBoYXMgbm90IGRldGVjdGVkIGEgdmlkZW8gdHJhY2sgeWV0LiJfcyk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKICAgICBib29sIHVzZXJBY3RpdmF0aW9uUmVxdWlyZWQgPSAhdmlkZW9F
bGVtZW50LmRvY3VtZW50KCkucGljdHVyZUluUGljdHVyZUVsZW1lbnQoKTsKICAgICBpZiAodXNl
ckFjdGl2YXRpb25SZXF1aXJlZCAmJiAhVXNlckdlc3R1cmVJbmRpY2F0b3I6OnByb2Nlc3NpbmdV
c2VyR2VzdHVyZSgpKSB7Ci0gICAgICAgIHByb21pc2UtPnJlamVjdChOb3RBbGxvd2VkRXJyb3Is
ICJUaGUgcmVxdWVzdCBpcyBub3QgdHJpZ2dlcmVkIGJ5IGEgdXNlciBhY3RpdmF0aW9uLiIpOwor
ICAgICAgICBwcm9taXNlLT5yZWplY3QoTm90QWxsb3dlZEVycm9yLCAiVGhlIHJlcXVlc3QgaXMg
bm90IHRyaWdnZXJlZCBieSBhIHVzZXIgYWN0aXZhdGlvbi4iX3MpOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCkBAIC0xMDgsNyArMTA4LDcgQEAgdm9pZCBIVE1MVmlkZW9FbGVtZW50UGljdHVy
ZUluUGljdHVyZTo6cmVxdWVzdFBpY3R1cmVJblBpY3R1cmUoSFRNTFZpZGVvRWxlbWVudCYKICAg
ICB9CiAKICAgICBpZiAodmlkZW9FbGVtZW50UGljdHVyZUluUGljdHVyZS0+bV9lbnRlclBpY3R1
cmVJblBpY3R1cmVQcm9taXNlIHx8IHZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmUtPm1fZXhp
dFBpY3R1cmVJblBpY3R1cmVQcm9taXNlKSB7Ci0gICAgICAgIHByb21pc2UtPnJlamVjdChOb3RB
bGxvd2VkRXJyb3IsICJUaGUgdmlkZW8gZWxlbWVudCBpcyBwcm9jZXNzaW5nIGEgUGljdHVyZS1p
bi1QaWN0dXJlIHJlcXVlc3QuIik7CisgICAgICAgIHByb21pc2UtPnJlamVjdChOb3RBbGxvd2Vk
RXJyb3IsICJUaGUgdmlkZW8gZWxlbWVudCBpcyBwcm9jZXNzaW5nIGEgUGljdHVyZS1pbi1QaWN0
dXJlIHJlcXVlc3QuIl9zKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMTE2LDcgKzEx
Niw3IEBAIHZvaWQgSFRNTFZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmU6OnJlcXVlc3RQaWN0
dXJlSW5QaWN0dXJlKEhUTUxWaWRlb0VsZW1lbnQmCiAgICAgICAgIHZpZGVvRWxlbWVudFBpY3R1
cmVJblBpY3R1cmUtPm1fZW50ZXJQaWN0dXJlSW5QaWN0dXJlUHJvbWlzZSA9IFdURk1vdmUocHJv
bWlzZSk7CiAgICAgICAgIHZpZGVvRWxlbWVudC53ZWJraXRTZXRQcmVzZW50YXRpb25Nb2RlKEhU
TUxWaWRlb0VsZW1lbnQ6OlZpZGVvUHJlc2VudGF0aW9uTW9kZTo6UGljdHVyZUluUGljdHVyZSk7
CiAgICAgfSBlbHNlCi0gICAgICAgIHByb21pc2UtPnJlamVjdChOb3RTdXBwb3J0ZWRFcnJvciwg
IlRoZSB2aWRlbyBlbGVtZW50IGRvZXMgbm90IHN1cHBvcnQgdGhlIFBpY3R1cmUtaW4tUGljdHVy
ZSBtb2RlLiIpOworICAgICAgICBwcm9taXNlLT5yZWplY3QoTm90U3VwcG9ydGVkRXJyb3IsICJU
aGUgdmlkZW8gZWxlbWVudCBkb2VzIG5vdCBzdXBwb3J0IHRoZSBQaWN0dXJlLWluLVBpY3R1cmUg
bW9kZS4iX3MpOwogfQogCiBib29sIEhUTUxWaWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJlOjph
dXRvUGljdHVyZUluUGljdHVyZShIVE1MVmlkZW9FbGVtZW50JiB2aWRlb0VsZW1lbnQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvWW91VHViZVBsdWdpblJlcGxh
Y2VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9Zb3VUdWJlUGx1Z2lu
UmVwbGFjZW1lbnQuY3BwCmluZGV4IDk3OWYyMjQ1OTA3MjBmODI5MzM1ZDYwYTNhOGQ4YWU1YzNi
NzIyNDMuLmRkMTZmODkzZjJkNjk1MmNjNWYwMDMwOGY5ZDBkOTlhYjhiMGU4YTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9Zb3VUdWJlUGx1Z2luUmVwbGFjZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9Zb3VUdWJlUGx1Z2lu
UmVwbGFjZW1lbnQuY3BwCkBAIC04NCwxNiArODQsMTYgQEAgYXV0byBZb3VUdWJlUGx1Z2luUmVw
bGFjZW1lbnQ6Omluc3RhbGxSZXBsYWNlbWVudChTaGFkb3dSb290JiByb290KSAtPiBJbnN0YWxs
UmUKICAgICByb290LmFwcGVuZENoaWxkKCptX2VtYmVkU2hhZG93RWxlbWVudCk7CiAKICAgICBh
dXRvIGlmcmFtZUVsZW1lbnQgPSBIVE1MSUZyYW1lRWxlbWVudDo6Y3JlYXRlKEhUTUxOYW1lczo6
aWZyYW1lVGFnLCBtX3BhcmVudEVsZW1lbnQtPmRvY3VtZW50KCkpOwotICAgIGlmIChtX2F0dHJp
YnV0ZXMuY29udGFpbnMoIndpZHRoIikpCisgICAgaWYgKG1fYXR0cmlidXRlcy5jb250YWlucygi
d2lkdGgiX3MpKQogICAgICAgICBpZnJhbWVFbGVtZW50LT5zZXRBdHRyaWJ1dGVXaXRob3V0U3lu
Y2hyb25pemF0aW9uKEhUTUxOYW1lczo6d2lkdGhBdHRyLCBBdG9tU3RyaW5nKCIxMDAlIiwgQXRv
bVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKIAotICAgIGNvbnN0IGF1dG8mIGhlaWdo
dFZhbHVlID0gbV9hdHRyaWJ1dGVzLmZpbmQoImhlaWdodCIpOworICAgIGNvbnN0IGF1dG8mIGhl
aWdodFZhbHVlID0gbV9hdHRyaWJ1dGVzLmZpbmQoImhlaWdodCJfcyk7CiAgICAgaWYgKGhlaWdo
dFZhbHVlICE9IG1fYXR0cmlidXRlcy5lbmQoKSkgewogICAgICAgICBpZnJhbWVFbGVtZW50LT5z
ZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjpzdHlsZUF0dHIsIEF0b21TdHJpbmcoIm1heC1oZWlnaHQ6
IDEwMCUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgICAgICBpZnJh
bWVFbGVtZW50LT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKEhUTUxOYW1lczo6
aGVpZ2h0QXR0ciwgaGVpZ2h0VmFsdWUtPnZhbHVlKTsKICAgICB9CiAKLSAgICBpZnJhbWVFbGVt
ZW50LT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKEhUTUxOYW1lczo6c3JjQXR0
ciwgeW91VHViZVVSTChtX2F0dHJpYnV0ZXMuZ2V0KCJzcmMiKSkpOworICAgIGlmcmFtZUVsZW1l
bnQtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oSFRNTE5hbWVzOjpzcmNBdHRy
LCB5b3VUdWJlVVJMKG1fYXR0cmlidXRlcy5nZXQoInNyYyJfcykpKTsKICAgICBpZnJhbWVFbGVt
ZW50LT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKEhUTUxOYW1lczo6ZnJhbWVi
b3JkZXJBdHRyLCBBdG9tU3RyaW5nKCIwIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpKTsKICAgICAKICAgICAvLyBEaXNhYmxlIGZyYW1lIGZsYXR0ZW5pbmcgZm9yIHRoaXMgaWZy
YW1lLgpAQCAtMjMxLDExICsyMzEsMTEgQEAgc3RhdGljIFVSTCBwcm9jZXNzQW5kQ3JlYXRlWW91
VHViZVVSTChjb25zdCBVUkwmIHVybCwgYm9vbCYgaXNZb3VUdWJlU2hvcnRlbmVkVVIKICAgICBp
ZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UocGF0aCwgIi93YXRjaCIpKSB7CiAgICAg
ICAgIGlmICghcXVlcnkuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBjb25zdCBhdXRvJiBxdWVy
eURpY3Rpb25hcnkgPSBxdWVyeUtleXNBbmRWYWx1ZXMocXVlcnkpOwotICAgICAgICAgICAgU3Ry
aW5nIHZpZGVvSUQgPSB2YWx1ZUZvcktleShxdWVyeURpY3Rpb25hcnksICJ2Iik7CisgICAgICAg
ICAgICBTdHJpbmcgdmlkZW9JRCA9IHZhbHVlRm9yS2V5KHF1ZXJ5RGljdGlvbmFyeSwgInYiX3Mp
OwogICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAoIXZpZGVvSUQuaXNFbXB0eSgpKSB7CiAg
ICAgICAgICAgICAgICAgY29uc3QgYXV0byYgZnJhZ21lbnREaWN0aW9uYXJ5ID0gcXVlcnlLZXlz
QW5kVmFsdWVzKHVybC5mcmFnbWVudElkZW50aWZpZXIoKSk7Ci0gICAgICAgICAgICAgICAgU3Ry
aW5nIHRpbWVJRCA9IHZhbHVlRm9yS2V5KGZyYWdtZW50RGljdGlvbmFyeSwgInQiKTsKKyAgICAg
ICAgICAgICAgICBTdHJpbmcgdGltZUlEID0gdmFsdWVGb3JLZXkoZnJhZ21lbnREaWN0aW9uYXJ5
LCAidCJfcyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVlvdVR1YmVVUkwodmlkZW9J
RCwgdGltZUlEKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtMjQ2LDEwICsyNDYsMTAg
QEAgc3RhdGljIFVSTCBwcm9jZXNzQW5kQ3JlYXRlWW91VHViZVVSTChjb25zdCBVUkwmIHVybCwg
Ym9vbCYgaXNZb3VUdWJlU2hvcnRlbmVkVVIKICAgICAgICAgICAgIAogICAgICAgICAgICAgaWYg
KCFxdWVyeS5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgICAgICBjb25zdCBhdXRvJiBxdWVyeURp
Y3Rpb25hcnkgPSBxdWVyeUtleXNBbmRWYWx1ZXMocXVlcnkpOwotICAgICAgICAgICAgICAgIFN0
cmluZyB2aWRlb0lEID0gdmFsdWVGb3JLZXkocXVlcnlEaWN0aW9uYXJ5LCAidiIpOworICAgICAg
ICAgICAgICAgIFN0cmluZyB2aWRlb0lEID0gdmFsdWVGb3JLZXkocXVlcnlEaWN0aW9uYXJ5LCAi
diJfcyk7CiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgaWYgKCF2aWRlb0lELmlz
RW1wdHkoKSkgewotICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdGltZUlEID0gdmFsdWVGb3JL
ZXkocXVlcnlEaWN0aW9uYXJ5LCAidCIpOworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdGlt
ZUlEID0gdmFsdWVGb3JLZXkocXVlcnlEaWN0aW9uYXJ5LCAidCJfcyk7CiAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBjcmVhdGVZb3VUdWJlVVJMKHZpZGVvSUQsIHRpbWVJRCk7CiAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJ
bXBsLmNwcAppbmRleCBjMjNhOGQ2N2NiNDgxMjMzZjdjYjRiNTE5YjEzNmIyMjE5MDZiZWJlLi42
MDc1M2ZlY2UzNWEyOWY4OGU5MjYyMGEyMGI4MDlhZmU5NmNjNzIxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJ
bXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvbkNhcHR1cmVTb3VyY2VJbXBsLmNwcApAQCAtOTIsNyArOTIsNyBAQCBib29sIFNwZWVjaFJl
Y29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6OnVwZGF0ZURhdGFTb3VyY2UoY29uc3QgQ0FBdWRp
b1N0cmVhbURlcwogICAgIGlmIChkYXRhU291cmNlLT5zZXRJbnB1dEZvcm1hdChhdWRpb0Rlc2Ny
aXB0aW9uKSkgewogICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCB3ZWFrVGhpcyA9IFdl
YWtQdHIgeyAqdGhpcyB9XSB7CiAgICAgICAgICAgICBpZiAod2Vha1RoaXMpCi0gICAgICAgICAg
ICAgICAgbV9zdGF0ZVVwZGF0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVh
dGVFcnJvcihtX2NsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCAiVW5hYmxlIHRvIHNldCBpbnB1
dCBmb3JtYXQiIH0pKTsKKyAgICAgICAgICAgICAgICBtX3N0YXRlVXBkYXRlQ2FsbGJhY2soU3Bl
ZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZUVycm9yKG1fY2xpZW50SWRlbnRpZmllciwgU3Bl
ZWNoUmVjb2duaXRpb25FcnJvciB7IFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpBdWRpb0Nh
cHR1cmUsICJVbmFibGUgdG8gc2V0IGlucHV0IGZvcm1hdCJfcyB9KSk7CiAgICAgICAgIH0pOwog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpAQCAtMTAwLDcgKzEwMCw3IEBAIGJvb2wgU3Bl
ZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbDo6dXBkYXRlRGF0YVNvdXJjZShjb25zdCBD
QUF1ZGlvU3RyZWFtRGVzCiAgICAgaWYgKGRhdGFTb3VyY2UtPnNldE91dHB1dEZvcm1hdChhdWRp
b0Rlc2NyaXB0aW9uKSkgewogICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCB3ZWFrVGhp
cyA9IFdlYWtQdHIgeyAqdGhpcyB9XSB7CiAgICAgICAgICAgICBpZiAod2Vha1RoaXMpCi0gICAg
ICAgICAgICAgICAgbV9zdGF0ZVVwZGF0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRl
OjpjcmVhdGVFcnJvcihtX2NsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uRXJyb3Ig
eyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCAiVW5hYmxlIHRvIHNl
dCBvdXRwdXQgZm9ybWF0IiB9KSk7CisgICAgICAgICAgICAgICAgbV9zdGF0ZVVwZGF0ZUNhbGxi
YWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihtX2NsaWVudElkZW50aWZp
ZXIsIFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6
QXVkaW9DYXB0dXJlLCAiVW5hYmxlIHRvIHNldCBvdXRwdXQgZm9ybWF0Il9zIH0pKTsKICAgICAg
ICAgfSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CkBAIC0xNTcsMTMgKzE1NywxMyBA
QCB2b2lkIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6OnNvdXJjZVN0b3BwZWQo
KQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgQVNTRVJUKG1fc291cmNlLT5j
YXB0dXJlRGlkRmFpbCgpKTsKLSAgICBtX3N0YXRlVXBkYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2du
aXRpb25VcGRhdGU6OmNyZWF0ZUVycm9yKG1fY2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2du
aXRpb25FcnJvciB7IFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpBdWRpb0NhcHR1cmUsICJT
b3VyY2UgaXMgc3RvcHBlZCIgfSkpOworICAgIG1fc3RhdGVVcGRhdGVDYWxsYmFjayhTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IobV9jbGllbnRJZGVudGlmaWVyLCBTcGVlY2hS
ZWNvZ25pdGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlvQ2FwdHVy
ZSwgIlNvdXJjZSBpcyBzdG9wcGVkIl9zIH0pKTsKIH0KIAogdm9pZCBTcGVlY2hSZWNvZ25pdGlv
bkNhcHR1cmVTb3VyY2VJbXBsOjpzb3VyY2VNdXRlZENoYW5nZWQoKQogewogICAgIEFTU0VSVChp
c01haW5UaHJlYWQoKSk7Ci0gICAgbV9zdGF0ZVVwZGF0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0
aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihtX2NsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0
aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCAiU291
cmNlIGlzIG11dGVkIiB9KSk7CisgICAgbV9zdGF0ZVVwZGF0ZUNhbGxiYWNrKFNwZWVjaFJlY29n
bml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihtX2NsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29n
bml0aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCAi
U291cmNlIGlzIG11dGVkIl9zIH0pKTsKIH0KIAogdm9pZCBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1
cmVTb3VyY2VJbXBsOjptdXRlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL2NvY29hL1dlYlNwZWVjaFJlY29nbml6ZXJUYXNrTW9jay5tbSBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL2NvY29hL1dlYlNwZWVjaFJlY29nbml6ZXJUYXNrTW9jay5tbQpp
bmRleCBjNzI3NTliNzY3YWE5NTg3ZDczN2VhNDAyOWEzMTY3ZjhjOTdmMmU4Li5lMWQ5YzY2NjUw
MDQwYWEzMWIxNmQyYmMyYzlhZGRjZDRjZjRkMGMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3NwZWVjaC9jb2NvYS9XZWJTcGVlY2hSZWNvZ25pemVyVGFza01vY2subW0KKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvY29jb2EvV2ViU3BlZWNoUmVjb2duaXpl
clRhc2tNb2NrLm1tCkBAIC02Myw3ICs2Myw3IEBAIC0gKHZvaWQpYXVkaW9TYW1wbGVzQXZhaWxh
YmxlOihDTVNhbXBsZUJ1ZmZlclJlZilzYW1wbGVCdWZmZXIKICAgICB9CiAKICAgICAvLyBGYWtl
IHNvbWUgcmVjb2duaXRpb24gcmVzdWx0cy4KLSAgICBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0
aXZlRGF0YSBhbHRlcm5hdGl2ZSB7ICJUZXN0IiwgMS4wIH07CisgICAgU3BlZWNoUmVjb2duaXRp
b25BbHRlcm5hdGl2ZURhdGEgYWx0ZXJuYXRpdmUgeyAiVGVzdCJfcywgMS4wIH07CiAgICAgX2Rl
bGVnYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZVJlc3VsdChfaWRl
bnRpZmllciwgeyBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEgeyB7IFdURk1vdmUoYWx0ZXJu
YXRpdmUpIH0sIHRydWUgfSB9KSk7CiAKICAgICBpZiAoIV9kb011bHRpcGxlUmVjb2duaXRpb25z
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdG9yYWdlL1N0b3JhZ2VNYW5h
Z2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RvcmFnZS9TdG9yYWdlTWFuYWdlci5j
cHAKaW5kZXggMTg4ZDMwYjYxOThiMTYxZTFiNDdhZTk3NjhlMGMxZTk1NzY2NTNhYi4uNjM2YjQ4
YzlmMDQ3OWJjNWFlMzE5NGVhMWU4OTA1Njk2NTcxN2E0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3N0b3JhZ2UvU3RvcmFnZU1hbmFnZXIuY3BwCkBAIC03Miw3ICs3Miw3IEBA
IHN0YXRpYyBFeGNlcHRpb25PcjxDb25uZWN0aW9uSW5mbz4gY29ubmVjdGlvbkluZm8oTmF2aWdh
dG9yQmFzZSogbmF2aWdhdG9yKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0
YXRlRXJyb3IsICJPcmlnaW4gaXMgaW52YWxpZCJfcyB9OwogCiAgICAgaWYgKCFvcmlnaW4tPmNh
bkFjY2Vzc1N0b3JhZ2VNYW5hZ2VyKCkpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBl
RXJyb3IsICJPcmlnaW4gc2hvdWxkIG5vdCBhY2Nlc3Mgc3RvcmFnZSIgfTsKKyAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIk9yaWdpbiBzaG91bGQgbm90IGFjY2VzcyBzdG9y
YWdlIl9zIH07CiAKICAgICBpZiAoaXM8RG9jdW1lbnQ+KGNvbnRleHQpKSB7CiAgICAgICAgIGlm
IChhdXRvKiBjb25uZWN0aW9uID0gZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpLT5zdG9yYWdl
Q29ubmVjdGlvbigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWItbG9j
a3MvV2ViTG9ja01hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWItbG9ja3Mv
V2ViTG9ja01hbmFnZXIuY3BwCmluZGV4IDIxOTk5MmY2YjViMTRjNWI2MDI3NTQ1NmFkZGIwODU3
Nzg2ZTEyNWYuLmExNjFiM2QyYzA1YzNmNDljOWIwYThmOWU2OTY2ZDQ1YmFhZGVmZWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNYW5hZ2VyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrTWFuYWdlci5j
cHAKQEAgLTMzOCw3ICszMzgsNyBAQCB2b2lkIFdlYkxvY2tNYW5hZ2VyOjpzaWduYWxUb0Fib3J0
VGhlUmVxdWVzdChXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmllcikKICAgICAgICAgaWYg
KHdhc0Fib3J0ZWQgJiYgd2Vha1RoaXMpCiAgICAgICAgICAgICB3ZWFrVGhpcy0+bV9wZW5kaW5n
UmVxdWVzdHMucmVtb3ZlKGxvY2tJZGVudGlmaWVyKTsKICAgICB9KTsKLSAgICBzZXR0bGVSZWxl
YXNlUHJvbWlzZShsb2NrSWRlbnRpZmllciwgRXhjZXB0aW9uIHsgQWJvcnRFcnJvciwgIkxvY2sg
cmVxdWVzdCB3YXMgYWJvcnRlZCB2aWEgQWJvcnRTaWduYWwiIH0pOworICAgIHNldHRsZVJlbGVh
c2VQcm9taXNlKGxvY2tJZGVudGlmaWVyLCBFeGNlcHRpb24geyBBYm9ydEVycm9yLCAiTG9jayBy
ZXF1ZXN0IHdhcyBhYm9ydGVkIHZpYSBBYm9ydFNpZ25hbCJfcyB9KTsKIH0KIAogdm9pZCBXZWJM
b2NrTWFuYWdlcjo6c2V0dGxlUmVsZWFzZVByb21pc2UoV2ViTG9ja0lkZW50aWZpZXIgbG9ja0lk
ZW50aWZpZXIsIEV4Y2VwdGlvbk9yPEpTQzo6SlNWYWx1ZT4mJiByZXN1bHQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTGlzdGVuZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0xpc3RlbmVyLmNwcAppbmRleCAwMjBl
NzZmNDM2NGU2ZGVmOGY4MTcyNGRiN2MyZmQ4YWU1NzAyMTc5Li43NmM3NmQ3NTQ0ZTcwYzlhY2Qz
YmRkZjk2ZjM0YzhhYzZiYTlmZGZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvTGlzdGVuZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9MaXN0ZW5lci5jcHAKQEAgLTQwLDE1ICs0MCwxNSBAQAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBBdWRpb0xpc3RlbmVyOjpBdWRpb0xpc3RlbmVyKEJhc2VBdWRpb0NvbnRl
eHQmIGNvbnRleHQpCi0gICAgOiBtX3Bvc2l0aW9uWChBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4
dCwgInBvc2l0aW9uWCIsIDAuMCwgLUZMVF9NQVgsIEZMVF9NQVgsIEF1dG9tYXRpb25SYXRlOjpB
UmF0ZSkpCi0gICAgLCBtX3Bvc2l0aW9uWShBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCwgInBv
c2l0aW9uWSIsIDAuMCwgLUZMVF9NQVgsIEZMVF9NQVgsIEF1dG9tYXRpb25SYXRlOjpBUmF0ZSkp
Ci0gICAgLCBtX3Bvc2l0aW9uWihBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCwgInBvc2l0aW9u
WiIsIDAuMCwgLUZMVF9NQVgsIEZMVF9NQVgsIEF1dG9tYXRpb25SYXRlOjpBUmF0ZSkpCi0gICAg
LCBtX2ZvcndhcmRYKEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0LCAiZm9yd2FyZFgiLCAwLjAs
IC1GTFRfTUFYLCBGTFRfTUFYLCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQotICAgICwgbV9mb3J3
YXJkWShBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCwgImZvcndhcmRZIiwgMC4wLCAtRkxUX01B
WCwgRkxUX01BWCwgQXV0b21hdGlvblJhdGU6OkFSYXRlKSkKLSAgICAsIG1fZm9yd2FyZFooQXVk
aW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJmb3J3YXJkWiIsIC0xLjAsIC1GTFRfTUFYLCBGTFRf
TUFYLCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQotICAgICwgbV91cFgoQXVkaW9QYXJhbTo6Y3Jl
YXRlKGNvbnRleHQsICJ1cFgiLCAwLjAsIC1GTFRfTUFYLCBGTFRfTUFYLCBBdXRvbWF0aW9uUmF0
ZTo6QVJhdGUpKQotICAgICwgbV91cFkoQXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJ1cFki
LCAxLjAsIC1GTFRfTUFYLCBGTFRfTUFYLCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQotICAgICwg
bV91cFooQXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJ1cFoiLCAwLjAsIC1GTFRfTUFYLCBG
TFRfTUFYLCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQorICAgIDogbV9wb3NpdGlvblgoQXVkaW9Q
YXJhbTo6Y3JlYXRlKGNvbnRleHQsICJwb3NpdGlvblgiX3MsIDAuMCwgLUZMVF9NQVgsIEZMVF9N
QVgsIEF1dG9tYXRpb25SYXRlOjpBUmF0ZSkpCisgICAgLCBtX3Bvc2l0aW9uWShBdWRpb1BhcmFt
OjpjcmVhdGUoY29udGV4dCwgInBvc2l0aW9uWSJfcywgMC4wLCAtRkxUX01BWCwgRkxUX01BWCwg
QXV0b21hdGlvblJhdGU6OkFSYXRlKSkKKyAgICAsIG1fcG9zaXRpb25aKEF1ZGlvUGFyYW06OmNy
ZWF0ZShjb250ZXh0LCAicG9zaXRpb25aIl9zLCAwLjAsIC1GTFRfTUFYLCBGTFRfTUFYLCBBdXRv
bWF0aW9uUmF0ZTo6QVJhdGUpKQorICAgICwgbV9mb3J3YXJkWChBdWRpb1BhcmFtOjpjcmVhdGUo
Y29udGV4dCwgImZvcndhcmRYIl9zLCAwLjAsIC1GTFRfTUFYLCBGTFRfTUFYLCBBdXRvbWF0aW9u
UmF0ZTo6QVJhdGUpKQorICAgICwgbV9mb3J3YXJkWShBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4
dCwgImZvcndhcmRZIl9zLCAwLjAsIC1GTFRfTUFYLCBGTFRfTUFYLCBBdXRvbWF0aW9uUmF0ZTo6
QVJhdGUpKQorICAgICwgbV9mb3J3YXJkWihBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCwgImZv
cndhcmRaIl9zLCAtMS4wLCAtRkxUX01BWCwgRkxUX01BWCwgQXV0b21hdGlvblJhdGU6OkFSYXRl
KSkKKyAgICAsIG1fdXBYKEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0LCAidXBYIl9zLCAwLjAs
IC1GTFRfTUFYLCBGTFRfTUFYLCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQorICAgICwgbV91cFko
QXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJ1cFkiX3MsIDEuMCwgLUZMVF9NQVgsIEZMVF9N
QVgsIEF1dG9tYXRpb25SYXRlOjpBUmF0ZSkpCisgICAgLCBtX3VwWihBdWRpb1BhcmFtOjpjcmVh
dGUoY29udGV4dCwgInVwWiJfcywgMC4wLCAtRkxUX01BWCwgRkxUX01BWCwgQXV0b21hdGlvblJh
dGU6OkFSYXRlKSkKICAgICAsIG1fcG9zaXRpb25YVmFsdWVzKEF1ZGlvVXRpbGl0aWVzOjpyZW5k
ZXJRdWFudHVtU2l6ZSkKICAgICAsIG1fcG9zaXRpb25ZVmFsdWVzKEF1ZGlvVXRpbGl0aWVzOjpy
ZW5kZXJRdWFudHVtU2l6ZSkKICAgICAsIG1fcG9zaXRpb25aVmFsdWVzKEF1ZGlvVXRpbGl0aWVz
OjpyZW5kZXJRdWFudHVtU2l6ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9QYXJhbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvUGFyYW0uY3BwCmluZGV4IGJlMTJiYjVhYTAyN2U1M2ExMzQ2ODQ3ZTZjOTkzYzIzZjlm
MDE4OTguLjBkNDZhM2Y5MDRjYzRkMDkzODhiNGZiMDEyMzNjYjYwOGVjN2Y2ZDIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtLmNwcApAQCAtMTA5LDcg
KzEwOSw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEF1ZGlvUGFyYW06OnNldFZhbHVlRm9yQmluZGlu
Z3MoZmxvYXQgdmFsdWUpCiBFeGNlcHRpb25Pcjx2b2lkPiBBdWRpb1BhcmFtOjpzZXRBdXRvbWF0
aW9uUmF0ZShBdXRvbWF0aW9uUmF0ZSBhdXRvbWF0aW9uUmF0ZSkKIHsKICAgICBpZiAobV9hdXRv
bWF0aW9uUmF0ZU1vZGUgPT0gQXV0b21hdGlvblJhdGVNb2RlOjpGaXhlZCkKLSAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiYXV0b21hdGlvblJhdGUgY2Fubm90
IGJlIGNoYW5nZWQgZm9yIHRoaXMgbm9kZSIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7
IEludmFsaWRTdGF0ZUVycm9yLCAiYXV0b21hdGlvblJhdGUgY2Fubm90IGJlIGNoYW5nZWQgZm9y
IHRoaXMgbm9kZSJfcyB9OwogCiAgICAgbV9hdXRvbWF0aW9uUmF0ZSA9IGF1dG9tYXRpb25SYXRl
OwogICAgIHJldHVybiB7IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvUGFyYW1UaW1lbGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvUGFyYW1UaW1lbGluZS5jcHAKaW5kZXggZTU5YWE3ZTZkODQyZmFlYmZkYzM4
YTA1OWVjOTVjODE5M2U1NDZhNi4uY2MzNGRjMzRlNTA3MWQ3NGJkNTJjMWRiNjg4YmM5ZjIxNDhl
NTNkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1Bh
cmFtVGltZWxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9QYXJhbVRpbWVsaW5lLmNwcApAQCAtMTcyLDcgKzE3Miw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+
IEF1ZGlvUGFyYW1UaW1lbGluZTo6aW5zZXJ0RXZlbnQoUGFyYW1FdmVudCYmIGV2ZW50KQogICAg
ICAgICAgICAgLy8gT3RoZXJ3aXNlLCBtYWtlIHN1cmUgdGhpcyBldmVudCBkb2Vzbid0IG92ZXJs
YXAgYW55IGV4aXN0aW5nIFNldFZhbHVlQ3VydmUgZXZlbnQuCiAgICAgICAgICAgICBhdXRvIHBh
cmVudEV2ZW50RW5kVGltZSA9IHBhcmFtRXZlbnQudGltZSgpICsgcGFyYW1FdmVudC5kdXJhdGlv
bigpOwogICAgICAgICAgICAgaWYgKGV2ZW50LnRpbWUoKSA+PSBwYXJhbUV2ZW50LnRpbWUoKSAm
JiBldmVudC50aW1lKCkgPCBwYXJlbnRFdmVudEVuZFRpbWUpCi0gICAgICAgICAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yLCAiRXZlbnRzIGFyZSBvdmVybGFwcGlu
ZyIgfTsKKyAgICAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJy
b3IsICJFdmVudHMgYXJlIG92ZXJsYXBwaW5nIl9zIH07CiAgICAgICAgIH0KIAogICAgICAgICBp
ZiAocGFyYW1FdmVudC50aW1lKCkgPiBpbnNlcnRUaW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CaXF1YWRGaWx0ZXJOb2RlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQmlxdWFkRmlsdGVyTm9kZS5jcHAKaW5kZXggMTQwZWQwYTI2
ZTU3NTUxNzAxNGFjMzNhNjQzMTU1ODkwOWMwMjcyYy4uNWQ3MzZjZmNiMjU1OTE4Zjg5NzVkN2Iz
YjFmNzhmYjBiMDM0NTE2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9CaXF1YWRGaWx0ZXJOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0JpcXVhZEZpbHRlck5vZGUuY3BwCkBAIC03NCw3ICs3NCw3IEBAIEV4Y2VwdGlvbk9y
PHZvaWQ+IEJpcXVhZEZpbHRlck5vZGU6OmdldEZyZXF1ZW5jeVJlc3BvbnNlKGNvbnN0IFJlZjxG
bG9hdDMyQXJyYXk+CiB7CiAgICAgdW5zaWduZWQgbGVuZ3RoID0gZnJlcXVlbmN5SHotPmxlbmd0
aCgpOwogICAgIGlmIChtYWdSZXNwb25zZS0+bGVuZ3RoKCkgIT0gbGVuZ3RoIHx8IHBoYXNlUmVz
cG9uc2UtPmxlbmd0aCgpICE9IGxlbmd0aCkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElu
dmFsaWRBY2Nlc3NFcnJvciwgIlRoZSBhcnJheXMgcGFzc2VkIGFzIGFyZ3VtZW50cyBtdXN0IGhh
dmUgdGhlIHNhbWUgbGVuZ3RoIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxp
ZEFjY2Vzc0Vycm9yLCAiVGhlIGFycmF5cyBwYXNzZWQgYXMgYXJndW1lbnRzIG11c3QgaGF2ZSB0
aGUgc2FtZSBsZW5ndGgiX3MgfTsKIAogICAgIGlmIChsZW5ndGgpCiAgICAgICAgIGJpcXVhZFBy
b2Nlc3NvcigpLT5nZXRGcmVxdWVuY3lSZXNwb25zZShsZW5ndGgsIGZyZXF1ZW5jeUh6LT5kYXRh
KCksIG1hZ1Jlc3BvbnNlLT5kYXRhKCksIHBoYXNlUmVzcG9uc2UtPmRhdGEoKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0JpcXVhZFByb2Nlc3Nvci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0JpcXVhZFByb2Nlc3Nvci5jcHAKaW5k
ZXggOWRmNjI5ZDdlYmZkZDZmYjc0MTVmM2ViNzc5NzI2YmJhYmNhOGYxYy4uZjlhNTQzNGU4ODA1
ZDdkZTQ5MThhNmZiZDg3NTRkMWE1ZWQyNzIxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9CaXF1YWRQcm9jZXNzb3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vQmlxdWFkUHJvY2Vzc29yLmNwcApAQCAtMzUsMTAgKzM1LDEwIEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAKIEJpcXVhZFByb2Nlc3Nvcjo6QmlxdWFkUHJvY2Vz
c29yKEJhc2VBdWRpb0NvbnRleHQmIGNvbnRleHQsIGZsb2F0IHNhbXBsZVJhdGUsIHNpemVfdCBu
dW1iZXJPZkNoYW5uZWxzLCBib29sIGF1dG9Jbml0aWFsaXplKQogICAgIDogQXVkaW9EU1BLZXJu
ZWxQcm9jZXNzb3Ioc2FtcGxlUmF0ZSwgbnVtYmVyT2ZDaGFubmVscykKLSAgICAsIG1fcGFyYW1l
dGVyMShBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCwgImZyZXF1ZW5jeSIsIDM1MC4wLCAwLjAs
IDAuNSAqIHNhbXBsZVJhdGUsIEF1dG9tYXRpb25SYXRlOjpBUmF0ZSkpCi0gICAgLCBtX3BhcmFt
ZXRlcjIoQXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJRIiwgMSwgLUZMVF9NQVgsIEZMVF9N
QVgsIEF1dG9tYXRpb25SYXRlOjpBUmF0ZSkpCi0gICAgLCBtX3BhcmFtZXRlcjMoQXVkaW9QYXJh
bTo6Y3JlYXRlKGNvbnRleHQsICJnYWluIiwgMC4wLCAtRkxUX01BWCwgNDAgKiBzdGQ6OmxvZzEw
KHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+OjptYXgoKSksIEF1dG9tYXRpb25SYXRlOjpBUmF0
ZSkpCi0gICAgLCBtX3BhcmFtZXRlcjQoQXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJkZXR1
bmUiLCAwLjAsIC0xNTM2MDAsIDE1MzYwMCwgQXV0b21hdGlvblJhdGU6OkFSYXRlKSkKKyAgICAs
IG1fcGFyYW1ldGVyMShBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCwgImZyZXF1ZW5jeSJfcywg
MzUwLjAsIDAuMCwgMC41ICogc2FtcGxlUmF0ZSwgQXV0b21hdGlvblJhdGU6OkFSYXRlKSkKKyAg
ICAsIG1fcGFyYW1ldGVyMihBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCwgIlEiX3MsIDEsIC1G
TFRfTUFYLCBGTFRfTUFYLCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQorICAgICwgbV9wYXJhbWV0
ZXIzKEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0LCAiZ2FpbiJfcywgMC4wLCAtRkxUX01BWCwg
NDAgKiBzdGQ6OmxvZzEwKHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+OjptYXgoKSksIEF1dG9t
YXRpb25SYXRlOjpBUmF0ZSkpCisgICAgLCBtX3BhcmFtZXRlcjQoQXVkaW9QYXJhbTo6Y3JlYXRl
KGNvbnRleHQsICJkZXR1bmUiX3MsIDAuMCwgLTE1MzYwMCwgMTUzNjAwLCBBdXRvbWF0aW9uUmF0
ZTo6QVJhdGUpKQogewogICAgIGlmIChhdXRvSW5pdGlhbGl6ZSkKICAgICAgICAgaW5pdGlhbGl6
ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9EZWxheVBy
b2Nlc3Nvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlbGF5UHJvY2Vz
c29yLmNwcAppbmRleCBhZWU0MGU5NGU2NWRlZTRiZjg0NDI1MTI5NGUzMTQzNzhhZDA0MmE1Li4x
ZjkwY2JjOWYxOTcwN2E5YmMxN2ExMTNiY2M0YjFkNThmOTQwNTA5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlbGF5UHJvY2Vzc29yLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlbGF5UHJvY2Vzc29yLmNwcApAQCAtMzQsNyAr
MzQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIERlbGF5UHJvY2Vzc29yOjpEZWxheVByb2Nl
c3NvcihCYXNlQXVkaW9Db250ZXh0JiBjb250ZXh0LCBmbG9hdCBzYW1wbGVSYXRlLCB1bnNpZ25l
ZCBudW1iZXJPZkNoYW5uZWxzLCBkb3VibGUgbWF4RGVsYXlUaW1lKQogICAgIDogQXVkaW9EU1BL
ZXJuZWxQcm9jZXNzb3Ioc2FtcGxlUmF0ZSwgbnVtYmVyT2ZDaGFubmVscykKLSAgICAsIG1fZGVs
YXlUaW1lKEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0LCAiZGVsYXlUaW1lIiwgMC4wLCAwLjAs
IG1heERlbGF5VGltZSwgQXV0b21hdGlvblJhdGU6OkFSYXRlKSkKKyAgICAsIG1fZGVsYXlUaW1l
KEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0LCAiZGVsYXlUaW1lIl9zLCAwLjAsIDAuMCwgbWF4
RGVsYXlUaW1lLCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQogewogCiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1dhdmVTaGFwZXJOb2RlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vV2F2ZVNoYXBlck5vZGUuY3BwCmluZGV4IGZjMTUy
ODI3YjNhMGNjMjdhOGQ0M2I1NDU0NGZmNGJjNWJjNDljOWIuLjY0MjljMzA1MTYxMmFmZWU4MmIz
ZmNiZDU4YjJmNjA3NDBmZjk0ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vV2F2ZVNoYXBlck5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vV2F2ZVNoYXBlck5vZGUuY3BwCkBAIC00Myw3ICs0Myw3IEBAIEV4Y2VwdGlvbk9y
PFJlZjxXYXZlU2hhcGVyTm9kZT4+IFdhdmVTaGFwZXJOb2RlOjpjcmVhdGUoQmFzZUF1ZGlvQ29u
dGV4dCYgY29udGV4CiAgICAgaWYgKG9wdGlvbnMuY3VydmUpIHsKICAgICAgICAgY3VydmUgPSBG
bG9hdDMyQXJyYXk6OnRyeUNyZWF0ZShvcHRpb25zLmN1cnZlLT5kYXRhKCksIG9wdGlvbnMuY3Vy
dmUtPnNpemUoKSk7CiAgICAgICAgIGlmICghY3VydmUpCi0gICAgICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJJbnZhbGlkIGN1cnZlIHBhcmFtZXRlciIgfTsK
KyAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkludmFs
aWQgY3VydmUgcGFyYW1ldGVyIl9zIH07CiAgICAgfQogCiAgICAgYXV0byBub2RlID0gYWRvcHRS
ZWYoKm5ldyBXYXZlU2hhcGVyTm9kZShjb250ZXh0KSk7CkBAIC03Niw3ICs3Niw3IEBAIEV4Y2Vw
dGlvbk9yPHZvaWQ+IFdhdmVTaGFwZXJOb2RlOjpzZXRDdXJ2ZUZvckJpbmRpbmdzKFJlZlB0cjxG
bG9hdDMyQXJyYXk+JiYgY3VyCiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsgCiAgICAgREVC
VUdfTE9HKExPR0lERU5USUZJRVIpOwogICAgIGlmIChjdXJ2ZSAmJiBjdXJ2ZS0+bGVuZ3RoKCkg
PCAyKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJMZW5n
dGggb2YgY3VydmUgYXJyYXkgY2Fubm90IGJlIGxlc3MgdGhhbiAyIiB9OworICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJMZW5ndGggb2YgY3VydmUgYXJyYXkg
Y2Fubm90IGJlIGxlc3MgdGhhbiAyIl9zIH07CiAKICAgICBpZiAoY3VydmUpIHsKICAgICAgICAg
Ly8gVGhlIHNwZWNpZmljYXRpb24gc3RhdGVzIHRoYXQgd2Ugc2hvdWxkIG1haW50YWluIGFuIGlu
dGVybmFsIGNvcHkgb2YgdGhlIGN1cnZlIHNvIHRoYXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRvckNvb3JkaW5hdG9yLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRvckNvb3JkaW5hdG9yLmNwcApp
bmRleCBiYzViZWRmNzM0MjlhMGI1MmVkYzBlZDFkNGU3NDVhOTM5OGZlZTk1Li5hNzdjZGFkNGQ1
Y2RiYjU0MzE0NjhkNTVkYTNlYzM5NjRjMWM2NzNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JDb29yZGluYXRvci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuY3Bw
CkBAIC01OCw3ICs1OCw3IEBAIHN0YXRpYyBib29sIG5lZWRzQXBwSWRRdWlya3MoY29uc3QgU3Ry
aW5nJiBob3N0LCBjb25zdCBTdHJpbmcmIGFwcElkKQogICAgIC8vIGV4aXN0aW5nIGRldmljZSBy
ZWdpc3RyYXRpb25zIHRoYXQgYXV0aGVudGljYXRlICdnb29nbGUuY29tJyBhZ2FpbnN0ICdnc3Rh
dGljLmNvbScuIEZpcmVmb3ggYW5kIG90aGVyIGJyb3dzZXJzCiAgICAgLy8gaGF2ZSBhZ3JlZWQg
dG8gZ3JhbnQgYW4gZXhjZXB0aW9uIHRvIHRoZSBBcHBJZCBydWxlcyBmb3IgYSBsaW1pdGVkIHRp
bWUgcGVyaW9kICg1IHllYXJzIGZyb20gSmFudWFyeSwgMjAxOCkgdG8KICAgICAvLyBhbGxvdyBl
eGlzdGluZyBHb29nbGUgdXNlcnMgdG8gc2VhbWxlc3NseSB0cmFuc2l0aW9uIHRvIHByb3BlciBX
ZWJBdXRoTiBiZWhhdmlvci4KLSAgICBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uo
aG9zdCwgImdvb2dsZS5jb20iKSB8fCBob3N0LmVuZHNXaXRoSWdub3JpbmdBU0NJSUNhc2UoIi5n
b29nbGUuY29tIikpCisgICAgaWYgKGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGhvc3Qs
ICJnb29nbGUuY29tIikgfHwgaG9zdC5lbmRzV2l0aElnbm9yaW5nQVNDSUlDYXNlKCIuZ29vZ2xl
LmNvbSJfcykpCiAgICAgICAgIHJldHVybiAoYXBwSWQgPT0gImh0dHBzOi8vd3d3LmdzdGF0aWMu
Y29tL3NlY3VyaXR5a2V5L29yaWdpbnMuanNvbiJfcykgfHwgKGFwcElkID09ICJodHRwczovL3d3
dy5nc3RhdGljLmNvbS9zZWN1cml0eWtleS9hL2dvb2dsZS5jb20vb3JpZ2lucy5qc29uIl9zKTsK
ICAgICByZXR1cm4gZmFsc2U7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1dGhuL1dlYkF1dGhlbnRpY2F0aW9uVXRpbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdXRobi9XZWJBdXRoZW50aWNhdGlvblV0aWxzLmNwcAppbmRleCBjMWZiZjA1NmNj
NmFiNWUxODI5ODgyMjQ2MzQ0MWI0YTg1ZWFiZDRjLi4zMzJlMmJlNzk1YTAxZjFlMDQ2NjJkYzQx
MTNiYWVhYzQ0MDcxZTc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
dGhuL1dlYkF1dGhlbnRpY2F0aW9uVXRpbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXV0aG4vV2ViQXV0aGVudGljYXRpb25VdGlscy5jcHAKQEAgLTEzOCw3ICsxMzgsNyBA
QCBjYm9yOjpDQk9SVmFsdWU6Ok1hcFZhbHVlIGJ1aWxkQXR0ZXN0YXRpb25NYXAoVmVjdG9yPHVp
bnQ4X3Q+JiYgYXV0aERhdGEsIFN0cmluZwogICAgICAgICBjb25zdCBzaXplX3QgYWFndWlkT2Zm
c2V0ID0gcnBJZEhhc2hMZW5ndGggKyBmbGFnc0xlbmd0aCArIHNpZ25Db3VudGVyTGVuZ3RoOwog
ICAgICAgICBpZiAoYXV0aERhdGEuc2l6ZSgpID49IGFhZ3VpZE9mZnNldCArIGFhZ3VpZExlbmd0
aCkKICAgICAgICAgICAgIG1lbXNldChhdXRoRGF0YS5kYXRhKCkgKyBhYWd1aWRPZmZzZXQsIDAs
IGFhZ3VpZExlbmd0aCk7Ci0gICAgICAgIGZvcm1hdCA9IG5vbmVBdHRlc3RhdGlvblZhbHVlOwor
ICAgICAgICBmb3JtYXQgPSBTdHJpbmcgeyBub25lQXR0ZXN0YXRpb25WYWx1ZSB9OwogICAgICAg
ICBzdGF0ZW1lbnRNYXAuY2xlYXIoKTsKICAgICB9CiAgICAgYXR0ZXN0YXRpb25PYmplY3RNYXBb
Y2Jvcjo6Q0JPUlZhbHVlKCJhdXRoRGF0YSIpXSA9IGNib3I6OkNCT1JWYWx1ZShXVEZNb3ZlKGF1
dGhEYXRhKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2Zp
ZG8vRGV2aWNlUmVzcG9uc2VDb252ZXJ0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdXRobi9maWRvL0RldmljZVJlc3BvbnNlQ29udmVydGVyLmNwcAppbmRleCBmMjFjNWVlN2Ey
NWY1ZTkyNzU0NDMxZDM1NGE4N2E4ZDIxYzU4M2M4Li41ZjUwNTI1Mjg0ZTllMWU0ZmNhYzJjMWRm
ZTgxZWU2MTFiNDU2ZjFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
dGhuL2ZpZG8vRGV2aWNlUmVzcG9uc2VDb252ZXJ0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXV0aG4vZmlkby9EZXZpY2VSZXNwb25zZUNvbnZlcnRlci5jcHAKQEAgLTEy
Niw3ICsxMjYsNyBAQCBSZWZQdHI8QXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2U+IHJl
YWRDVEFQTWFrZUNyZWRlbnRpYWxSZXNwb25zZShjb25zdCBWZQogICAgICAgICAvLyBUaGUgcmVh
c29uIHdoeSB3ZSBjYW4ndCBkaXJlY3RseSBwYXNzIGF1dGhlbnRpY2F0b3JEYXRhL2Zvcm1hdC9h
dHRTdG10IHRvIGJ1aWxkQXR0ZXN0YXRpb25PYmplY3QKICAgICAgICAgLy8gaXMgdGhhdCB0aGV5
IGFyZSBDQk9SVmFsdWUgaW5zdGVhZCBvZiB0aGUgcmF3IHR5cGUuCiAgICAgICAgIC8vIEFsc28s
IGZvcm1hdCBhbmQgYXR0U3RtdCBhcmUgb21pdHRlZCBhcyB0aGV5IGFyZSBub3QgdXNlZnVsIGlu
IG5vbmUgYXR0ZXN0YXRpb24uCi0gICAgICAgIGF0dGVzdGF0aW9uT2JqZWN0ID0gYnVpbGRBdHRl
c3RhdGlvbk9iamVjdChWZWN0b3I8dWludDhfdD4oYXV0aGVudGljYXRvckRhdGEuZ2V0Qnl0ZVN0
cmluZygpKSwgIiIsIHsgfSwgYXR0ZXN0YXRpb24pOworICAgICAgICBhdHRlc3RhdGlvbk9iamVj
dCA9IGJ1aWxkQXR0ZXN0YXRpb25PYmplY3QoVmVjdG9yPHVpbnQ4X3Q+KGF1dGhlbnRpY2F0b3JE
YXRhLmdldEJ5dGVTdHJpbmcoKSksICIiX3MsIHsgfSwgYXR0ZXN0YXRpb24pOwogICAgIH0gZWxz
ZSB7CiAgICAgICAgIENCT1I6Ok1hcFZhbHVlIGF0dGVzdGF0aW9uT2JqZWN0TWFwOwogICAgICAg
ICBhdHRlc3RhdGlvbk9iamVjdE1hcFtDQk9SKCJhdXRoRGF0YSIpXSA9IFdURk1vdmUoYXV0aGVu
dGljYXRvckRhdGEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRo
bi9maWRvL1Bpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vUGlu
LmNwcAppbmRleCA5ZmE2NzNmMTgyY2NjYjA0NjIxNzMzYWUzOGM1MjM2ZDM2MmI1Yzg4Li5iNDRm
OTBiMDE0MzQyN2QxNTI2N2Q3YzlmNjdmMGNmYjAyYzNmYjNkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vUGluLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vUGluLmNwcApAQCAtMTcxLDcgKzE3MSw3IEBAIHN0ZDo6
b3B0aW9uYWw8S2V5QWdyZWVtZW50UmVzcG9uc2U+IEtleUFncmVlbWVudFJlc3BvbnNlOjpwYXJz
ZUZyb21DT1NFKGNvbnN0IENCCiAKICAgICBjb25zdCBhdXRvJiB4ID0geEl0LT5zZWNvbmQuZ2V0
Qnl0ZVN0cmluZygpOwogICAgIGNvbnN0IGF1dG8mIHkgPSB5SXQtPnNlY29uZC5nZXRCeXRlU3Ry
aW5nKCk7Ci0gICAgYXV0byBwZWVyS2V5ID0gQ3J5cHRvS2V5RUM6OmltcG9ydFJhdyhDcnlwdG9B
bGdvcml0aG1JZGVudGlmaWVyOjpFQ0RILCAiUC0yNTYiLCBlbmNvZGVSYXdQdWJsaWNLZXkoeCwg
eSksIHRydWUsIENyeXB0b0tleVVzYWdlRGVyaXZlQml0cyk7CisgICAgYXV0byBwZWVyS2V5ID0g
Q3J5cHRvS2V5RUM6OmltcG9ydFJhdyhDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpFQ0RILCAi
UC0yNTYiX3MsIGVuY29kZVJhd1B1YmxpY0tleSh4LCB5KSwgdHJ1ZSwgQ3J5cHRvS2V5VXNhZ2VE
ZXJpdmVCaXRzKTsKICAgICBpZiAoIXBlZXJLZXkpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CiAKQEAgLTI0Nyw3ICsyNDcsNyBAQCBzdGQ6Om9wdGlvbmFsPFRva2VuUmVxdWVzdD4gVG9r
ZW5SZXF1ZXN0Ojp0cnlDcmVhdGUoY29uc3QgQ1N0cmluZyYgcGluLCBjb25zdCBDcgogICAgIC8v
IFRoZSBmb2xsb3dpbmcgaW1wbGVtZW50cyBTZWN0aW9uIDUuNS40IEdldHRpbmcgc2hhcmVkU2Vj
cmV0IGZyb20gQXV0aGVudGljYXRvci4KICAgICAvLyBodHRwczovL2ZpZG9hbGxpYW5jZS5vcmcv
c3BlY3MvZmlkby12Mi4wLXBzLTIwMTkwMTMwL2ZpZG8tY2xpZW50LXRvLWF1dGhlbnRpY2F0b3It
cHJvdG9jb2wtdjIuMC1wcy0yMDE5MDEzMC5odG1sI2dldHRpbmdTaGFyZWRTZWNyZXQKICAgICAv
LyAxLiBHZW5lcmF0ZSBhIFAyNTYga2V5IHBhaXIuCi0gICAgYXV0byBrZXlQYWlyUmVzdWx0ID0g
Q3J5cHRvS2V5RUM6OmdlbmVyYXRlUGFpcihDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpFQ0RI
LCAiUC0yNTYiLCB0cnVlLCBDcnlwdG9LZXlVc2FnZURlcml2ZUJpdHMpOworICAgIGF1dG8ga2V5
UGFpclJlc3VsdCA9IENyeXB0b0tleUVDOjpnZW5lcmF0ZVBhaXIoQ3J5cHRvQWxnb3JpdGhtSWRl
bnRpZmllcjo6RUNESCwgIlAtMjU2Il9zLCB0cnVlLCBDcnlwdG9LZXlVc2FnZURlcml2ZUJpdHMp
OwogICAgIEFTU0VSVCgha2V5UGFpclJlc3VsdC5oYXNFeGNlcHRpb24oKSk7CiAgICAgYXV0byBr
ZXlQYWlyID0ga2V5UGFpclJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL1UyZlJlc3BvbnNlQ29udmVy
dGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9VMmZSZXNwb25z
ZUNvbnZlcnRlci5jcHAKaW5kZXggM2YzNjZhYTI3MDY4NDk3NDVhY2EyODE3OWI1OTk2ZTY2NmVl
MjZlZC4uYTRmZGUxNWZmYmZkNTU1NzdiMjI5ZDg2NDljNjc2NDhjZTdlYjk2ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL1UyZlJlc3BvbnNlQ29udmVy
dGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vVTJmUmVz
cG9uc2VDb252ZXJ0ZXIuY3BwCkBAIC0xNTgsNyArMTU4LDcgQEAgUmVmUHRyPEF1dGhlbnRpY2F0
b3JBdHRlc3RhdGlvblJlc3BvbnNlPiByZWFkVTJmUmVnaXN0ZXJSZXNwb25zZShjb25zdCBTdHJp
bmcmIHIKICAgICBpZiAoZmlkb0F0dGVzdGF0aW9uU3RhdGVtZW50LmVtcHR5KCkpCiAgICAgICAg
IHJldHVybiBudWxscHRyOwogCi0gICAgYXV0byBhdHRlc3RhdGlvbk9iamVjdCA9IGJ1aWxkQXR0
ZXN0YXRpb25PYmplY3QoV1RGTW92ZShhdXRoRGF0YSksICJmaWRvLXUyZiIsIFdURk1vdmUoZmlk
b0F0dGVzdGF0aW9uU3RhdGVtZW50KSwgYXR0ZXN0YXRpb24pOworICAgIGF1dG8gYXR0ZXN0YXRp
b25PYmplY3QgPSBidWlsZEF0dGVzdGF0aW9uT2JqZWN0KFdURk1vdmUoYXV0aERhdGEpLCAiZmlk
by11MmYiX3MsIFdURk1vdmUoZmlkb0F0dGVzdGF0aW9uU3RhdGVtZW50KSwgYXR0ZXN0YXRpb24p
OwogCiAgICAgcmV0dXJuIEF1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlOjpjcmVhdGUo
Y3JlZGVudGlhbElkLCBhdHRlc3RhdGlvbk9iamVjdCwgYXR0YWNobWVudCk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0NoYW5nZVZlcnNpb25XcmFw
cGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvQ2hhbmdlVmVyc2lv
bldyYXBwZXIuY3BwCmluZGV4IDk0ZWY1MDk1NThiNmMyNjU5ZmRmYTNkNjg5YjRiMGQyODM3M2Q4
YTguLjM1YzBlMTZlM2UzNTEzMjMzYzIyZDhmM2FhNTY0NTIwM2Q5ODQ3NDcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvQ2hhbmdlVmVyc2lvbldyYXBwZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvQ2hhbmdlVmVyc2lv
bldyYXBwZXIuY3BwCkBAIC01Myw3ICs1Myw3IEBAIGJvb2wgQ2hhbmdlVmVyc2lvbldyYXBwZXI6
OnBlcmZvcm1QcmVmbGlnaHQoU1FMVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uKQogICAgIH0KIAog
ICAgIGlmIChhY3R1YWxWZXJzaW9uICE9IG1fb2xkVmVyc2lvbikgewotICAgICAgICBtX3NxbEVy
cm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6VkVSU0lPTl9FUlIsICJjdXJyZW50IHZl
cnNpb24gb2YgdGhlIGRhdGFiYXNlIGFuZCBgb2xkVmVyc2lvbmAgYXJndW1lbnQgZG8gbm90IG1h
dGNoIik7CisgICAgICAgIG1fc3FsRXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpW
RVJTSU9OX0VSUiwgImN1cnJlbnQgdmVyc2lvbiBvZiB0aGUgZGF0YWJhc2UgYW5kIGBvbGRWZXJz
aW9uYCBhcmd1bWVudCBkbyBub3QgbWF0Y2giX3MpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RP
TVdpbmRvd1dlYkRhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJh
c2UvRE9NV2luZG93V2ViRGF0YWJhc2UuY3BwCmluZGV4IDhhYzJhZDZhZjVlNGEzYmZmODRjMjY3
NmMwZTI0ZTZiYmMyZjNiNWMuLjU2YWMwZTQyMmRkNGRmOTM2ZTNjY2IwMGNlNWY0NWMzZDY1NTQx
NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRE9NV2lu
ZG93V2ViRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJh
c2UvRE9NV2luZG93V2ViRGF0YWJhc2UuY3BwCkBAIC00NSw3ICs0NSw3IEBAIEV4Y2VwdGlvbk9y
PFJlZlB0cjxEYXRhYmFzZT4+IERPTVdpbmRvd1dlYkRhdGFiYXNlOjpvcGVuRGF0YWJhc2UoRE9N
V2luZG93JiB3aW5kCiAgICAgYXV0byogZG9jdW1lbnQgPSB3aW5kb3cuZG9jdW1lbnQoKTsKICAg
ICBpZiAoIWRvY3VtZW50KQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgU2VjdXJpdHlFcnJv
ciB9OwotICAgIGRvY3VtZW50LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpTdG9y
YWdlLCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsICJXZWIgU1FMIGlzIGRlcHJlY2F0ZWQuIFBsZWFz
ZSB1c2UgSW5kZXhlZERCIGluc3RlYWQuIik7CisgICAgZG9jdW1lbnQtPmFkZENvbnNvbGVNZXNz
YWdlKE1lc3NhZ2VTb3VyY2U6OlN0b3JhZ2UsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgIldlYiBT
UUwgaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSBJbmRleGVkREIgaW5zdGVhZC4iX3MpOwogCiAg
ICAgYXV0byYgc2VjdXJpdHlPcmlnaW4gPSBkb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKTsKICAg
ICBpZiAoIXNlY3VyaXR5T3JpZ2luLmNhbkFjY2Vzc0RhdGFiYXNlKCZkb2N1bWVudC0+dG9wT3Jp
Z2luKCkpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9E
YXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNl
LmNwcAppbmRleCA3Y2ZiMWM0MTBlNjdkMGIwN2Y3ZTM0OTQ4MmRjMGVlOWY2YjExNmRmLi5jZDBj
NDE0ZmIzMTAwMjQxM2VhMmJmZGQwOTgzMDVkNTFiOWYxZmQyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmNwcApAQCAtMTk4LDcgKzE5OCw3IEBA
IERhdGFiYXNlOjpEYXRhYmFzZShEYXRhYmFzZUNvbnRleHQmIGNvbnRleHQsIGNvbnN0IFN0cmlu
ZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBlCiAgICAgLCBtX2Rpc3BsYXlOYW1lKGRpc3BsYXlOYW1l
Lmlzb2xhdGVkQ29weSgpKQogICAgICwgbV9lc3RpbWF0ZWRTaXplKGVzdGltYXRlZFNpemUpCiAg
ICAgLCBtX2ZpbGVuYW1lKERhdGFiYXNlTWFuYWdlcjo6c2luZ2xldG9uKCkuZnVsbFBhdGhGb3JE
YXRhYmFzZShtX2RvY3VtZW50LT5zZWN1cml0eU9yaWdpbigpLCBtX25hbWUpKQotICAgICwgbV9k
YXRhYmFzZUF1dGhvcml6ZXIoRGF0YWJhc2VBdXRob3JpemVyOjpjcmVhdGUodW5xdWFsaWZpZWRJ
bmZvVGFibGVOYW1lKSkKKyAgICAsIG1fZGF0YWJhc2VBdXRob3JpemVyKERhdGFiYXNlQXV0aG9y
aXplcjo6Y3JlYXRlKFN0cmluZyB7IHVucXVhbGlmaWVkSW5mb1RhYmxlTmFtZSB9KSkKIHsKICAg
ICB7CiAgICAgICAgIExvY2tlciBsb2NrZXIgeyBndWlkTG9jayB9OwpAQCAtNjg3LDcgKzY4Nyw3
IEBAIHZvaWQgRGF0YWJhc2U6OnJ1blRyYW5zYWN0aW9uKFJlZlB0cjxTUUxUcmFuc2FjdGlvbkNh
bGxiYWNrPiYmIGNhbGxiYWNrLCBSZWZQdHI8CiAgICAgaWYgKCFtX2lzVHJhbnNhY3Rpb25RdWV1
ZUVuYWJsZWQpIHsKICAgICAgICAgaWYgKGVycm9yQ2FsbGJhY2spIHsKICAgICAgICAgICAgIG1f
ZG9jdW1lbnQtPmV2ZW50TG9vcCgpLnF1ZXVlVGFzayhUYXNrU291cmNlOjpOZXR3b3JraW5nLCBb
ZXJyb3JDYWxsYmFjayA9IFJlZiB7ICplcnJvckNhbGxiYWNrIH1dKCkgewotICAgICAgICAgICAg
ICAgIGVycm9yQ2FsbGJhY2stPmhhbmRsZUV2ZW50KFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6
OlVOS05PV05fRVJSLCAiZGF0YWJhc2UgaGFzIGJlZW4gY2xvc2VkIikpOworICAgICAgICAgICAg
ICAgIGVycm9yQ2FsbGJhY2stPmhhbmRsZUV2ZW50KFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6
OlVOS05PV05fRVJSLCAiZGF0YWJhc2UgaGFzIGJlZW4gY2xvc2VkIl9zKSk7CiAgICAgICAgICAg
ICB9KTsKICAgICAgICAgfQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlQXV0aG9yaXplci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlQXV0aG9yaXplci5jcHAKaW5kZXgg
ZTJkYzcwNmY1ZDk2NWQyZDdhNWNiYTg3MjE2NmNmNTNhOTgwOGExZi4uZGNmOWViOTUyZGRkMDNi
NGIwZDdhZDg2YTZjY2Q1ZmI0M2UzZGNlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZUF1dGhvcml6ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VBdXRob3JpemVyLmNwcApAQCAtNjIsNjQg
KzYyLDY0IEBAIHZvaWQgRGF0YWJhc2VBdXRob3JpemVyOjphZGRBbGxvd2VkRnVuY3Rpb25zKCkK
IHsKICAgICAvLyBTUUxpdGUgZnVuY3Rpb25zIHVzZWQgdG8gaGVscCBpbXBsZW1lbnQgc29tZSBv
cGVyYXRpb25zCiAgICAgLy8gQUxURVIgVEFCTEUgaGVscGVycwotICAgIG1fYWxsb3dlZEZ1bmN0
aW9ucy5hZGQoInNxbGl0ZV9yZW5hbWVfdGFibGUiKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMu
YWRkKCJzcWxpdGVfcmVuYW1lX3RyaWdnZXIiKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRk
KCJzcWxpdGVfcmVuYW1lX3RhYmxlIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJz
cWxpdGVfcmVuYW1lX3RyaWdnZXIiX3MpOwogICAgIC8vIEdMT0IgaGVscGVycwotICAgIG1fYWxs
b3dlZEZ1bmN0aW9ucy5hZGQoImdsb2IiKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJn
bG9iIl9zKTsKIAogICAgIC8vIFNRTGl0ZSBjb3JlIGZ1bmN0aW9ucwotICAgIG1fYWxsb3dlZEZ1
bmN0aW9ucy5hZGQoImFicyIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoImNoYW5nZXMi
KTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJjb2FsZXNjZSIpOwotICAgIG1fYWxsb3dl
ZEZ1bmN0aW9ucy5hZGQoImdsb2IiKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJpZm51
bGwiKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJoZXgiKTsKLSAgICBtX2FsbG93ZWRG
dW5jdGlvbnMuYWRkKCJsYXN0X2luc2VydF9yb3dpZCIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9u
cy5hZGQoImxlbmd0aCIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoImxpa2UiKTsKLSAg
ICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJsb3dlciIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9u
cy5hZGQoImx0cmltIik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgibWF4Iik7Ci0gICAg
bV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgibWluIik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFk
ZCgibnVsbGlmIik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgicXVvdGUiKTsKLSAgICBt
X2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJyZXBsYWNlIik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25z
LmFkZCgicm91bmQiKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJydHJpbSIpOwotICAg
IG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInNvdW5kZXgiKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlv
bnMuYWRkKCJzcWxpdGVfc291cmNlX2lkIik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgi
c3FsaXRlX3ZlcnNpb24iKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJzdWJzdHIiKTsK
LSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJ0b3RhbF9jaGFuZ2VzIik7Ci0gICAgbV9hbGxv
d2VkRnVuY3Rpb25zLmFkZCgidHJpbSIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInR5
cGVvZiIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInVwcGVyIik7Ci0gICAgbV9hbGxv
d2VkRnVuY3Rpb25zLmFkZCgiemVyb2Jsb2IiKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRk
KCJhYnMiX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoImNoYW5nZXMiX3MpOworICAg
IG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoImNvYWxlc2NlIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5j
dGlvbnMuYWRkKCJnbG9iIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJpZm51bGwi
X3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoImhleCJfcyk7CisgICAgbV9hbGxvd2Vk
RnVuY3Rpb25zLmFkZCgibGFzdF9pbnNlcnRfcm93aWQiX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0
aW9ucy5hZGQoImxlbmd0aCJfcyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgibGlrZSJf
cyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgibG93ZXIiX3MpOworICAgIG1fYWxsb3dl
ZEZ1bmN0aW9ucy5hZGQoImx0cmltIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJt
YXgiX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoIm1pbiJfcyk7CisgICAgbV9hbGxv
d2VkRnVuY3Rpb25zLmFkZCgibnVsbGlmIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRk
KCJxdW90ZSJfcyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgicmVwbGFjZSJfcyk7Cisg
ICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgicm91bmQiX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0
aW9ucy5hZGQoInJ0cmltIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJzb3VuZGV4
Il9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJzcWxpdGVfc291cmNlX2lkIl9zKTsK
KyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJzcWxpdGVfdmVyc2lvbiJfcyk7CisgICAgbV9h
bGxvd2VkRnVuY3Rpb25zLmFkZCgic3Vic3RyIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMu
YWRkKCJ0b3RhbF9jaGFuZ2VzIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJ0cmlt
Il9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJ0eXBlb2YiX3MpOworICAgIG1fYWxs
b3dlZEZ1bmN0aW9ucy5hZGQoInVwcGVyIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRk
KCJ6ZXJvYmxvYiJfcyk7CiAKICAgICAvLyBTUUxpdGUgZGF0ZSBhbmQgdGltZSBmdW5jdGlvbnMK
LSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJkYXRlIik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rp
b25zLmFkZCgidGltZSIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoImRhdGV0aW1lIik7
Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgianVsaWFuZGF5Iik7Ci0gICAgbV9hbGxvd2Vk
RnVuY3Rpb25zLmFkZCgic3RyZnRpbWUiKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJk
YXRlIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJ0aW1lIl9zKTsKKyAgICBtX2Fs
bG93ZWRGdW5jdGlvbnMuYWRkKCJkYXRldGltZSJfcyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25z
LmFkZCgianVsaWFuZGF5Il9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJzdHJmdGlt
ZSJfcyk7CiAKICAgICAvLyBTUUxpdGUgYWdncmVnYXRlIGZ1bmN0aW9ucwogICAgIC8vIG1heCgp
IGFuZCBtaW4oKSBhcmUgYWxyZWFkeSBpbiB0aGUgbGlzdAotICAgIG1fYWxsb3dlZEZ1bmN0aW9u
cy5hZGQoImF2ZyIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoImNvdW50Iik7Ci0gICAg
bV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgiZ3JvdXBfY29uY2F0Iik7Ci0gICAgbV9hbGxvd2VkRnVu
Y3Rpb25zLmFkZCgic3VtIik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgidG90YWwiKTsK
KyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJhdmciX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0
aW9ucy5hZGQoImNvdW50Il9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJncm91cF9j
b25jYXQiX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInN1bSJfcyk7CisgICAgbV9h
bGxvd2VkRnVuY3Rpb25zLmFkZCgidG90YWwiX3MpOwogCiAgICAgLy8gU1FMaXRlIEZUUyBmdW5j
dGlvbnMKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJtYXRjaCIpOwotICAgIG1fYWxsb3dl
ZEZ1bmN0aW9ucy5hZGQoInNuaXBwZXQiKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJv
ZmZzZXRzIik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgib3B0aW1pemUiKTsKKyAgICBt
X2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJtYXRjaCJfcyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25z
LmFkZCgic25pcHBldCJfcyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgib2Zmc2V0cyJf
cyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgib3B0aW1pemUiX3MpOwogCiAgICAgLy8g
U1FMaXRlIElDVSBmdW5jdGlvbnMKICAgICAvLyBsaWtlKCksIGxvd2VyKCkgYW5kIHVwcGVyKCkg
YXJlIGFscmVhZHkgaW4gdGhlIGxpc3QKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJyZWdl
eHAiKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJyZWdleHAiX3MpOwogfQogCiBpbnQg
RGF0YWJhc2VBdXRob3JpemVyOjpjcmVhdGVUYWJsZShjb25zdCBTdHJpbmcmIHRhYmxlTmFtZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VU
cmFja2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VU
cmFja2VyLmNwcAppbmRleCA5ZWIzOTFjNmQwYmQ2ZDQ4NjA1MTBlZGFiNzI4OTMzOTk1MDZiYzcy
Li5hNGYwYzc0NDUyMzcxYTRkYmQ4ZGYwODYwNjllY2QxMGFiYTMyMjlmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuY3Bw
CkBAIC05MSw3ICs5MSw3IEBAIERhdGFiYXNlVHJhY2tlcjo6RGF0YWJhc2VUcmFja2VyKGNvbnN0
IFN0cmluZyYgZGF0YWJhc2VQYXRoKQogCiBTdHJpbmcgRGF0YWJhc2VUcmFja2VyOjp0cmFja2Vy
RGF0YWJhc2VQYXRoKCkgY29uc3QKIHsKLSAgICByZXR1cm4gU1FMaXRlRmlsZVN5c3RlbTo6YXBw
ZW5kRGF0YWJhc2VGaWxlTmFtZVRvUGF0aChtX2RhdGFiYXNlRGlyZWN0b3J5UGF0aC5pc29sYXRl
ZENvcHkoKSwgIkRhdGFiYXNlcy5kYiIpOworICAgIHJldHVybiBTUUxpdGVGaWxlU3lzdGVtOjph
cHBlbmREYXRhYmFzZUZpbGVOYW1lVG9QYXRoKG1fZGF0YWJhc2VEaXJlY3RvcnlQYXRoLmlzb2xh
dGVkQ29weSgpLCAiRGF0YWJhc2VzLmRiIl9zKTsKIH0KIAogdm9pZCBEYXRhYmFzZVRyYWNrZXI6
Om9wZW5UcmFja2VyRGF0YWJhc2UoVHJhY2tlckNyZWF0aW9uQWN0aW9uIGNyZWF0ZUFjdGlvbikK
QEAgLTExOCwxNCArMTE4LDE0IEBAIHZvaWQgRGF0YWJhc2VUcmFja2VyOjpvcGVuVHJhY2tlckRh
dGFiYXNlKFRyYWNrZXJDcmVhdGlvbkFjdGlvbiBjcmVhdGVBY3Rpb24pCiAgICAgfQogICAgIG1f
ZGF0YWJhc2UuZGlzYWJsZVRocmVhZGluZ0NoZWNrcygpOwogCi0gICAgaWYgKCFtX2RhdGFiYXNl
LnRhYmxlRXhpc3RzKCJPcmlnaW5zIikpIHsKKyAgICBpZiAoIW1fZGF0YWJhc2UudGFibGVFeGlz
dHMoIk9yaWdpbnMiX3MpKSB7CiAgICAgICAgIGlmICghbV9kYXRhYmFzZS5leGVjdXRlQ29tbWFu
ZCgiQ1JFQVRFIFRBQkxFIE9yaWdpbnMgKG9yaWdpbiBURVhUIFVOSVFVRSBPTiBDT05GTElDVCBS
RVBMQUNFLCBxdW90YSBJTlRFR0VSIE5PVCBOVUxMIE9OIENPTkZMSUNUIEZBSUwpOyJfcykpIHsK
ICAgICAgICAgICAgIC8vIEZJWE1FOiBhbmQgaGVyZQogICAgICAgICAgICAgTE9HX0VSUk9SKCJG
YWlsZWQgdG8gY3JlYXRlIE9yaWdpbnMgdGFibGUiKTsKICAgICAgICAgfQogICAgIH0KIAotICAg
IGlmICghbV9kYXRhYmFzZS50YWJsZUV4aXN0cygiRGF0YWJhc2VzIikpIHsKKyAgICBpZiAoIW1f
ZGF0YWJhc2UudGFibGVFeGlzdHMoIkRhdGFiYXNlcyJfcykpIHsKICAgICAgICAgaWYgKCFtX2Rh
dGFiYXNlLmV4ZWN1dGVDb21tYW5kKCJDUkVBVEUgVEFCTEUgRGF0YWJhc2VzIChndWlkIElOVEVH
RVIgUFJJTUFSWSBLRVkgQVVUT0lOQ1JFTUVOVCwgb3JpZ2luIFRFWFQsIG5hbWUgVEVYVCwgZGlz
cGxheU5hbWUgVEVYVCwgZXN0aW1hdGVkU2l6ZSBJTlRFR0VSLCBwYXRoIFRFWFQpOyJfcykpIHsK
ICAgICAgICAgICAgIC8vIEZJWE1FOiBhbmQgaGVyZQogICAgICAgICAgICAgTE9HX0VSUk9SKCJG
YWlsZWQgdG8gY3JlYXRlIERhdGFiYXNlcyB0YWJsZSIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxTdGF0ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxTdGF0ZW1lbnQuY3BwCmluZGV4IGI3ODA1ODJkYzk3
OTU5MjMzNDYzZjhmZDhhYzE5ZDAzOWFlYjg4MjAuLmQ5MWQwMzE0NTkxNWIyMWEzNTdlODVmMDVj
Y2JhNDBlNWRiZWExMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0
YWJhc2UvU1FMU3RhdGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRh
dGFiYXNlL1NRTFN0YXRlbWVudC5jcHAKQEAgLTEyNiw3ICsxMjYsNyBAQCBib29sIFNRTFN0YXRl
bWVudDo6ZXhlY3V0ZShEYXRhYmFzZSYgZGIpCiAgICAgLy8gSWYgdGhpcyBpcyB0aGUgY2FzZSwg
dGhleSBtaWdodCBiZSB0cnlpbmcgdG8gZG8gc29tZXRoaW5nIGZpc2h5IG9yIG1hbGljaW91cwog
ICAgIGlmIChzdGF0ZW1lbnQtPmJpbmRQYXJhbWV0ZXJDb3VudCgpICE9IG1fYXJndW1lbnRzLnNp
emUoKSkgewogICAgICAgICBMT0coU3RvcmFnZUFQSSwgIkJpbmQgcGFyYW1ldGVyIGNvdW50IGRv
ZXNuJ3QgbWF0Y2ggbnVtYmVyIG9mIHF1ZXN0aW9uIG1hcmtzIik7Ci0gICAgICAgIG1fZXJyb3Ig
PSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpTWU5UQVhfRVJSLCAibnVtYmVyIG9mICc/J3Mg
aW4gc3RhdGVtZW50IHN0cmluZyBkb2VzIG5vdCBtYXRjaCBhcmd1bWVudCBjb3VudCIpOworICAg
ICAgICBtX2Vycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6U1lOVEFYX0VSUiwgIm51
bWJlciBvZiAnPydzIGluIHN0YXRlbWVudCBzdHJpbmcgZG9lcyBub3QgbWF0Y2ggYXJndW1lbnQg
Y291bnQiX3MpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCkBAIC0yMzQsMTkgKzIz
NCwxOSBAQCBib29sIFNRTFN0YXRlbWVudDo6cGVyZm9ybUNhbGxiYWNrKFNRTFRyYW5zYWN0aW9u
JiB0cmFuc2FjdGlvbikKIHZvaWQgU1FMU3RhdGVtZW50OjpzZXREYXRhYmFzZURlbGV0ZWRFcnJv
cigpCiB7CiAgICAgQVNTRVJUKCFtX2Vycm9yICYmICFtX3Jlc3VsdFNldCk7Ci0gICAgbV9lcnJv
ciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OlVOS05PV05fRVJSLCAidW5hYmxlIHRvIGV4
ZWN1dGUgc3RhdGVtZW50LCBiZWNhdXNlIHRoZSB1c2VyIGRlbGV0ZWQgdGhlIGRhdGFiYXNlIik7
CisgICAgbV9lcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OlVOS05PV05fRVJSLCAi
dW5hYmxlIHRvIGV4ZWN1dGUgc3RhdGVtZW50LCBiZWNhdXNlIHRoZSB1c2VyIGRlbGV0ZWQgdGhl
IGRhdGFiYXNlIl9zKTsKIH0KIAogdm9pZCBTUUxTdGF0ZW1lbnQ6OnNldFZlcnNpb25NaXNtYXRj
aGVkRXJyb3IoKQogewogICAgIEFTU0VSVCghbV9lcnJvciAmJiAhbV9yZXN1bHRTZXQpOwotICAg
IG1fZXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpWRVJTSU9OX0VSUiwgImN1cnJl
bnQgdmVyc2lvbiBvZiB0aGUgZGF0YWJhc2UgYW5kIGBvbGRWZXJzaW9uYCBhcmd1bWVudCBkbyBu
b3QgbWF0Y2giKTsKKyAgICBtX2Vycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6VkVS
U0lPTl9FUlIsICJjdXJyZW50IHZlcnNpb24gb2YgdGhlIGRhdGFiYXNlIGFuZCBgb2xkVmVyc2lv
bmAgYXJndW1lbnQgZG8gbm90IG1hdGNoIl9zKTsKIH0KIAogdm9pZCBTUUxTdGF0ZW1lbnQ6OnNl
dEZhaWx1cmVEdWVUb1F1b3RhKCkKIHsKICAgICBBU1NFUlQoIW1fZXJyb3IgJiYgIW1fcmVzdWx0
U2V0KTsKLSAgICBtX2Vycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6UVVPVEFfRVJS
LCAidGhlcmUgd2FzIG5vdCBlbm91Z2ggcmVtYWluaW5nIHN0b3JhZ2Ugc3BhY2UsIG9yIHRoZSBz
dG9yYWdlIHF1b3RhIHdhcyByZWFjaGVkIGFuZCB0aGUgdXNlciBkZWNsaW5lZCB0byBhbGxvdyBt
b3JlIHNwYWNlIik7CisgICAgbV9lcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OlFV
T1RBX0VSUiwgInRoZXJlIHdhcyBub3QgZW5vdWdoIHJlbWFpbmluZyBzdG9yYWdlIHNwYWNlLCBv
ciB0aGUgc3RvcmFnZSBxdW90YSB3YXMgcmVhY2hlZCBhbmQgdGhlIHVzZXIgZGVjbGluZWQgdG8g
YWxsb3cgbW9yZSBzcGFjZSJfcyk7CiB9CiAKIHZvaWQgU1FMU3RhdGVtZW50OjpjbGVhckZhaWx1
cmVEdWVUb1F1b3RhKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0
YWJhc2UvU1FMVHJhbnNhY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRh
YmFzZS9TUUxUcmFuc2FjdGlvbi5jcHAKaW5kZXggNjgzMmFjYTkwZWQ2ZDllYjgxYWI5ZjM1NTk1
OTNiZjQ2NDMwZmQwZi4uZTlhZDc5ZjMyODJlODQ1OWRkN2QzM2VmZjAyYjZiNTc5ZjAyNmMwZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2Fj
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFu
c2FjdGlvbi5jcHAKQEAgLTEzNyw3ICsxMzcsNyBAQCB2b2lkIFNRTFRyYW5zYWN0aW9uOjpjYWxs
RXJyb3JDYWxsYmFja0R1ZVRvSW50ZXJydXB0aW9uKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAg
bV9kYXRhYmFzZS0+ZG9jdW1lbnQoKS5ldmVudExvb3AoKS5xdWV1ZVRhc2soVGFza1NvdXJjZTo6
TmV0d29ya2luZywgW2Vycm9yQ2FsbGJhY2sgPSBXVEZNb3ZlKGVycm9yQ2FsbGJhY2spXSgpIG11
dGFibGUgewotICAgICAgICBlcnJvckNhbGxiYWNrLT5oYW5kbGVFdmVudChTUUxFcnJvcjo6Y3Jl
YXRlKFNRTEVycm9yOjpEQVRBQkFTRV9FUlIsICJ0aGUgZGF0YWJhc2Ugd2FzIGNsb3NlZCIpKTsK
KyAgICAgICAgZXJyb3JDYWxsYmFjay0+aGFuZGxlRXZlbnQoU1FMRXJyb3I6OmNyZWF0ZShTUUxF
cnJvcjo6REFUQUJBU0VfRVJSLCAidGhlIGRhdGFiYXNlIHdhcyBjbG9zZWQiX3MpKTsKICAgICB9
KTsKIH0KIApAQCAtMjM2LDcgKzIzNiw3IEBAIHZvaWQgU1FMVHJhbnNhY3Rpb246Om9wZW5UcmFu
c2FjdGlvbkFuZFByZWZsaWdodCgpCiAKICAgICAvLyBJZiB0aGUgZGF0YWJhc2Ugd2FzIGRlbGV0
ZWQsIGp1bXAgdG8gdGhlIGVycm9yIGNhbGxiYWNrCiAgICAgaWYgKG1fZGF0YWJhc2UtPmRlbGV0
ZWQoKSkgewotICAgICAgICBtX3RyYW5zYWN0aW9uRXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNR
TEVycm9yOjpVTktOT1dOX0VSUiwgInVuYWJsZSB0byBvcGVuIGEgdHJhbnNhY3Rpb24sIGJlY2F1
c2UgdGhlIHVzZXIgZGVsZXRlZCB0aGUgZGF0YWJhc2UiKTsKKyAgICAgICAgbV90cmFuc2FjdGlv
bkVycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6VU5LTk9XTl9FUlIsICJ1bmFibGUg
dG8gb3BlbiBhIHRyYW5zYWN0aW9uLCBiZWNhdXNlIHRoZSB1c2VyIGRlbGV0ZWQgdGhlIGRhdGFi
YXNlIl9zKTsKIAogICAgICAgICBoYW5kbGVUcmFuc2FjdGlvbkVycm9yKCk7CiAgICAgICAgIHJl
dHVybjsKQEAgLTI5MCw3ICsyOTAsNyBAQCB2b2lkIFNRTFRyYW5zYWN0aW9uOjpvcGVuVHJhbnNh
Y3Rpb25BbmRQcmVmbGlnaHQoKQogICAgICAgICBtX2RhdGFiYXNlLT5lbmFibGVBdXRob3JpemVy
KCk7CiAgICAgICAgIG1fdHJhbnNhY3Rpb25FcnJvciA9IG1fd3JhcHBlci0+c3FsRXJyb3IoKTsK
ICAgICAgICAgaWYgKCFtX3RyYW5zYWN0aW9uRXJyb3IpCi0gICAgICAgICAgICBtX3RyYW5zYWN0
aW9uRXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpVTktOT1dOX0VSUiwgInVua25v
d24gZXJyb3Igb2NjdXJyZWQgZHVyaW5nIHRyYW5zYWN0aW9uIHByZWZsaWdodCIpOworICAgICAg
ICAgICAgbV90cmFuc2FjdGlvbkVycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6VU5L
Tk9XTl9FUlIsICJ1bmtub3duIGVycm9yIG9jY3VycmVkIGR1cmluZyB0cmFuc2FjdGlvbiBwcmVm
bGlnaHQiX3MpOwogCiAgICAgICAgIGhhbmRsZVRyYW5zYWN0aW9uRXJyb3IoKTsKICAgICAgICAg
cmV0dXJuOwpAQCAtMzk1LDcgKzM5NSw3IEBAIHZvaWQgU1FMVHJhbnNhY3Rpb246OmRlbGl2ZXJU
cmFuc2FjdGlvbkNhbGxiYWNrKCkKIAogICAgIC8vIFNwZWMgNC4zLjIgNTogSWYgdGhlIHRyYW5z
YWN0aW9uIGNhbGxiYWNrIHdhcyBudWxsIG9yIHJhaXNlZCBhbiBleGNlcHRpb24sIGp1bXAgdG8g
dGhlIGVycm9yIGNhbGxiYWNrCiAgICAgaWYgKHNob3VsZERlbGl2ZXJFcnJvckNhbGxiYWNrKSB7
Ci0gICAgICAgIG1fdHJhbnNhY3Rpb25FcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6
OlVOS05PV05fRVJSLCAidGhlIFNRTFRyYW5zYWN0aW9uQ2FsbGJhY2sgd2FzIG51bGwgb3IgdGhy
ZXcgYW4gZXhjZXB0aW9uIik7CisgICAgICAgIG1fdHJhbnNhY3Rpb25FcnJvciA9IFNRTEVycm9y
OjpjcmVhdGUoU1FMRXJyb3I6OlVOS05PV05fRVJSLCAidGhlIFNRTFRyYW5zYWN0aW9uQ2FsbGJh
Y2sgd2FzIG51bGwgb3IgdGhyZXcgYW4gZXhjZXB0aW9uIl9zKTsKICAgICAgICAgcmV0dXJuIGRl
bGl2ZXJUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2soKTsKICAgICB9CiAKQEAgLTQzMiw3ICs0MzIs
NyBAQCB2b2lkIFNRTFRyYW5zYWN0aW9uOjpkZWxpdmVyU3RhdGVtZW50Q2FsbGJhY2soKQogICAg
IG1fZXhlY3V0ZVNxbEFsbG93ZWQgPSBmYWxzZTsKIAogICAgIGlmIChyZXN1bHQpIHsKLSAgICAg
ICAgbV90cmFuc2FjdGlvbkVycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6VU5LTk9X
Tl9FUlIsICJ0aGUgc3RhdGVtZW50IGNhbGxiYWNrIHJhaXNlZCBhbiBleGNlcHRpb24gb3Igc3Rh
dGVtZW50IGVycm9yIGNhbGxiYWNrIGRpZCBub3QgcmV0dXJuIGZhbHNlIik7CisgICAgICAgIG1f
dHJhbnNhY3Rpb25FcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OlVOS05PV05fRVJS
LCAidGhlIHN0YXRlbWVudCBjYWxsYmFjayByYWlzZWQgYW4gZXhjZXB0aW9uIG9yIHN0YXRlbWVu
dCBlcnJvciBjYWxsYmFjayBkaWQgbm90IHJldHVybiBmYWxzZSJfcyk7CiAKICAgICAgICAgaWYg
KG1fZXJyb3JDYWxsYmFja1dyYXBwZXIuaGFzQ2FsbGJhY2soKSkKICAgICAgICAgICAgIHJldHVy
biBkZWxpdmVyVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrKCk7CkBAIC01NjgsNyArNTY4LDcgQEAg
dm9pZCBTUUxUcmFuc2FjdGlvbjo6aGFuZGxlQ3VycmVudFN0YXRlbWVudEVycm9yKCkKIAogICAg
IG1fdHJhbnNhY3Rpb25FcnJvciA9IG1fY3VycmVudFN0YXRlbWVudC0+c3FsRXJyb3IoKTsKICAg
ICBpZiAoIW1fdHJhbnNhY3Rpb25FcnJvcikKLSAgICAgICAgbV90cmFuc2FjdGlvbkVycm9yID0g
U1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6REFUQUJBU0VfRVJSLCAidGhlIHN0YXRlbWVudCBm
YWlsZWQgdG8gZXhlY3V0ZSIpOworICAgICAgICBtX3RyYW5zYWN0aW9uRXJyb3IgPSBTUUxFcnJv
cjo6Y3JlYXRlKFNRTEVycm9yOjpEQVRBQkFTRV9FUlIsICJ0aGUgc3RhdGVtZW50IGZhaWxlZCB0
byBleGVjdXRlIl9zKTsKIAogICAgIGhhbmRsZVRyYW5zYWN0aW9uRXJyb3IoKTsKIH0KQEAgLTU5
NCw3ICs1OTQsNyBAQCB2b2lkIFNRTFRyYW5zYWN0aW9uOjpwb3N0ZmxpZ2h0QW5kQ29tbWl0KCkK
ICAgICBpZiAobV93cmFwcGVyICYmICFtX3dyYXBwZXItPnBlcmZvcm1Qb3N0ZmxpZ2h0KCp0aGlz
KSkgewogICAgICAgICBtX3RyYW5zYWN0aW9uRXJyb3IgPSBtX3dyYXBwZXItPnNxbEVycm9yKCk7
CiAgICAgICAgIGlmICghbV90cmFuc2FjdGlvbkVycm9yKQotICAgICAgICAgICAgbV90cmFuc2Fj
dGlvbkVycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6VU5LTk9XTl9FUlIsICJ1bmtu
b3duIGVycm9yIG9jY3VycmVkIGR1cmluZyB0cmFuc2FjdGlvbiBwb3N0ZmxpZ2h0Iik7CisgICAg
ICAgICAgICBtX3RyYW5zYWN0aW9uRXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpV
TktOT1dOX0VSUiwgInVua25vd24gZXJyb3Igb2NjdXJyZWQgZHVyaW5nIHRyYW5zYWN0aW9uIHBv
c3RmbGlnaHQiX3MpOwogCiAgICAgICAgIGhhbmRsZVRyYW5zYWN0aW9uRXJyb3IoKTsKICAgICAg
ICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRz
L1dlYlNvY2tldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29j
a2V0LmNwcAppbmRleCBmOTczZTViZDNiOTBlM2E0Y2M3MzUyMTRkOWEzMTlhZGY5MjFlNGI2Li42
OWQyZTU0NzM1YTMwNjQ2Mzg0YzdlZmI3ZWE2NDk4N2VjMzQwMmNjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcApAQCAtMTM3LDkgKzEzNyw5
IEBAIHN0YXRpYyB1bnNpZ25lZCBzYXR1cmF0ZUFkZCh1bnNpZ25lZCBhLCB1bnNpZ25lZCBiKQog
ICAgIHJldHVybiBhICsgYjsKIH0KIAotY29uc3QgY2hhciogV2ViU29ja2V0OjpzdWJwcm90b2Nv
bFNlcGFyYXRvcigpCitBU0NJSUxpdGVyYWwgV2ViU29ja2V0OjpzdWJwcm90b2NvbFNlcGFyYXRv
cigpCiB7Ci0gICAgcmV0dXJuICIsICI7CisgICAgcmV0dXJuICIsICJfczsKIH0KIAogV2ViU29j
a2V0OjpXZWJTb2NrZXQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkKQEAgLTQzMCw3
ICs0MzAsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBXZWJTb2NrZXQ6OmNsb3NlKHN0ZDo6b3B0aW9u
YWw8dW5zaWduZWQgc2hvcnQ+IG9wdGlvbmFsQ29kZSwgYwogICAgICAgICByZXR1cm4geyB9Owog
ICAgIGlmIChtX3N0YXRlID09IENPTk5FQ1RJTkcpIHsKICAgICAgICAgbV9zdGF0ZSA9IENMT1NJ
Tkc7Ci0gICAgICAgIG1fY2hhbm5lbC0+ZmFpbCgiV2ViU29ja2V0IGlzIGNsb3NlZCBiZWZvcmUg
dGhlIGNvbm5lY3Rpb24gaXMgZXN0YWJsaXNoZWQuIik7CisgICAgICAgIG1fY2hhbm5lbC0+ZmFp
bCgiV2ViU29ja2V0IGlzIGNsb3NlZCBiZWZvcmUgdGhlIGNvbm5lY3Rpb24gaXMgZXN0YWJsaXNo
ZWQuIl9zKTsKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CiAgICAgbV9zdGF0ZSA9IENMT1NJ
Tkc7CkBAIC01MjAsNyArNTIwLDcgQEAgdm9pZCBXZWJTb2NrZXQ6OnN1c3BlbmQoUmVhc29uRm9y
U3VzcGVuc2lvbiByZWFzb24pCiAKICAgICBpZiAocmVhc29uID09IFJlYXNvbkZvclN1c3BlbnNp
b246OkJhY2tGb3J3YXJkQ2FjaGUpIHsKICAgICAgICAgLy8gVGhpcyB3aWxsIGNhdXNlIGRpZENs
b3NlKCkgdG8gYmUgY2FsbGVkLgotICAgICAgICBtX2NoYW5uZWwtPmZhaWwoIldlYlNvY2tldCBp
cyBjbG9zZWQgZHVlIHRvIHN1c3BlbnNpb24uIik7CisgICAgICAgIG1fY2hhbm5lbC0+ZmFpbCgi
V2ViU29ja2V0IGlzIGNsb3NlZCBkdWUgdG8gc3VzcGVuc2lvbi4iX3MpOwogICAgICAgICByZXR1
cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tl
dHMvV2ViU29ja2V0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29j
a2V0LmgKaW5kZXggZTY4NjNlNDZkYTA3ZDE4YjZkOTE1ZWIxNWMyNGNkZjIyZGI2YTZjYi4uZWZm
YzA2OGJiZjYyNjVlN2EzYjE1NWM5NGZmNDQ4ZTc2NmQxZTM2NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuaApAQCAtNTEsNyArNTEsNyBAQCBjbGFz
cyBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDsKIGNsYXNzIFdlYlNvY2tldCBmaW5hbCA6IHB1
YmxpYyBSZWZDb3VudGVkPFdlYlNvY2tldD4sIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVE
YXRhLCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwcml2YXRlIFdlYlNvY2tldENoYW5uZWxDbGll
bnQgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoV2ViU29ja2V0KTsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgY29uc3QgY2hhciogc3VicHJvdG9jb2xTZXBhcmF0b3IoKTsKKyAgICBzdGF0aWMg
QVNDSUlMaXRlcmFsIHN1YnByb3RvY29sU2VwYXJhdG9yKCk7CiAKICAgICBzdGF0aWMgRXhjZXB0
aW9uT3I8UmVmPFdlYlNvY2tldD4+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgY29u
c3QgU3RyaW5nJiB1cmwpOwogICAgIHN0YXRpYyBFeGNlcHRpb25PcjxSZWY8V2ViU29ja2V0Pj4g
Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3Qg
U3RyaW5nJiBwcm90b2NvbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAKaW5kZXggZGY1NjM1OWM2ZmRhMDUyMTAzZDk3
YjNkOGE1ZDEwODQ5MTk3NWY1Yi4uNjliOGUyYTc3NTRhODk3OGMxOTU0ODUxZmYyNmM5OTYxNTJm
NWRjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNv
Y2tldENoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9X
ZWJTb2NrZXRDaGFubmVsLmNwcApAQCAtMjg3LDcgKzI4Nyw3IEBAIHZvaWQgV2ViU29ja2V0Q2hh
bm5lbDo6ZGlkT3BlblNvY2tldFN0cmVhbShTb2NrZXRTdHJlYW1IYW5kbGUmIGhhbmRsZSkKICAg
ICAgICAgY29va2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHkgPSBDb29raWVKYXI6OmNvb2tpZVJl
cXVlc3RIZWFkZXJGaWVsZFByb3h5KCptX2RvY3VtZW50LCBtX2hhbmRzaGFrZS0+aHR0cFVSTEZv
ckF1dGhlbnRpY2F0aW9uQW5kQ29va2llcygpKTsKICAgICBoYW5kbGUuc2VuZEhhbmRzaGFrZShX
VEZNb3ZlKGhhbmRzaGFrZU1lc3NhZ2UpLCBXVEZNb3ZlKGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVs
ZFByb3h5KSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9XSAoYm9vbCBzdWNj
ZXNzLCBib29sIGRpZEFjY2Vzc1NlY3VyZUNvb2tpZXMpIHsKICAgICAgICAgaWYgKCFzdWNjZXNz
KQotICAgICAgICAgICAgZmFpbCgiRmFpbGVkIHRvIHNlbmQgV2ViU29ja2V0IGhhbmRzaGFrZS4i
KTsKKyAgICAgICAgICAgIGZhaWwoIkZhaWxlZCB0byBzZW5kIFdlYlNvY2tldCBoYW5kc2hha2Uu
Il9zKTsKIAogICAgICAgICBpZiAoZGlkQWNjZXNzU2VjdXJlQ29va2llcyAmJiBtX2RvY3VtZW50
KQogICAgICAgICAgICAgbV9kb2N1bWVudC0+c2V0U2VjdXJlQ29va2llc0FjY2Vzc2VkKCk7CkBA
IC0zNDAsNyArMzQwLDcgQEAgdm9pZCBXZWJTb2NrZXRDaGFubmVsOjpkaWRSZWNlaXZlU29ja2V0
U3RyZWFtRGF0YShTb2NrZXRTdHJlYW1IYW5kbGUmIGhhbmRsZSwgY28KICAgICAgICAgcmV0dXJu
OwogICAgIGlmICghYXBwZW5kVG9CdWZmZXIoZGF0YSwgbGVuZ3RoKSkgewogICAgICAgICBtX3No
b3VsZERpc2NhcmRSZWNlaXZlZERhdGEgPSB0cnVlOwotICAgICAgICBmYWlsKCJSYW4gb3V0IG9m
IG1lbW9yeSB3aGlsZSByZWNlaXZpbmcgV2ViU29ja2V0IGRhdGEuIik7CisgICAgICAgIGZhaWwo
IlJhbiBvdXQgb2YgbWVtb3J5IHdoaWxlIHJlY2VpdmluZyBXZWJTb2NrZXQgZGF0YS4iX3MpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogICAgIHdoaWxlICghbV9zdXNwZW5kZWQgJiYgbV9jbGll
bnQgJiYgIW1fYnVmZmVyLmlzRW1wdHkoKSkgewpAQCAtNTcxLDcgKzU3MSw3IEBAIGJvb2wgV2Vi
U29ja2V0Q2hhbm5lbDo6cHJvY2Vzc0ZyYW1lKCkKICAgICB9CiAKICAgICBpZiAoZnJhbWUubWFz
a2VkKSB7Ci0gICAgICAgIGZhaWwoIkEgc2VydmVyIG11c3Qgbm90IG1hc2sgYW55IGZyYW1lcyB0
aGF0IGl0IHNlbmRzIHRvIHRoZSBjbGllbnQuIik7CisgICAgICAgIGZhaWwoIkEgc2VydmVyIG11
c3Qgbm90IG1hc2sgYW55IGZyYW1lcyB0aGF0IGl0IHNlbmRzIHRvIHRoZSBjbGllbnQuIl9zKTsK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApAQCAtNTkxLDcgKzU5MSw3IEBAIGJvb2wg
V2ViU29ja2V0Q2hhbm5lbDo6cHJvY2Vzc0ZyYW1lKCkKICAgICAvLyBBIG5ldyBkYXRhIGZyYW1l
IGlzIHJlY2VpdmVkIGJlZm9yZSB0aGUgcHJldmlvdXMgY29udGludW91cyBmcmFtZSBmaW5pc2hl
cy4KICAgICAvLyBOb3RlIHRoYXQgY29udHJvbCBmcmFtZXMgYXJlIGFsbG93ZWQgdG8gY29tZSBp
biB0aGUgbWlkZGxlIG9mIGNvbnRpbnVvdXMgZnJhbWVzLgogICAgIGlmIChtX2hhc0NvbnRpbnVv
dXNGcmFtZSAmJiBmcmFtZS5vcENvZGUgIT0gV2ViU29ja2V0RnJhbWU6Ok9wQ29kZUNvbnRpbnVh
dGlvbiAmJiAhV2ViU29ja2V0RnJhbWU6OmlzQ29udHJvbE9wQ29kZShmcmFtZS5vcENvZGUpKSB7
Ci0gICAgICAgIGZhaWwoIlJlY2VpdmVkIG5ldyBkYXRhIGZyYW1lIGJ1dCBwcmV2aW91cyBjb250
aW51b3VzIGZyYW1lIGlzIHVuZmluaXNoZWQuIik7CisgICAgICAgIGZhaWwoIlJlY2VpdmVkIG5l
dyBkYXRhIGZyYW1lIGJ1dCBwcmV2aW91cyBjb250aW51b3VzIGZyYW1lIGlzIHVuZmluaXNoZWQu
Il9zKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApAQCAtNjAxLDcgKzYwMSw3IEBA
IGJvb2wgV2ViU29ja2V0Q2hhbm5lbDo6cHJvY2Vzc0ZyYW1lKCkKICAgICBjYXNlIFdlYlNvY2tl
dEZyYW1lOjpPcENvZGVDb250aW51YXRpb246CiAgICAgICAgIC8vIEFuIHVuZXhwZWN0ZWQgY29u
dGludWF0aW9uIGZyYW1lIGlzIHJlY2VpdmVkIHdpdGhvdXQgYW55IGxlYWRpbmcgZnJhbWUuCiAg
ICAgICAgIGlmICghbV9oYXNDb250aW51b3VzRnJhbWUpIHsKLSAgICAgICAgICAgIGZhaWwoIlJl
Y2VpdmVkIHVuZXhwZWN0ZWQgY29udGludWF0aW9uIGZyYW1lLiIpOworICAgICAgICAgICAgZmFp
bCgiUmVjZWl2ZWQgdW5leHBlY3RlZCBjb250aW51YXRpb24gZnJhbWUuIl9zKTsKICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogICAgICAgICBtX2NvbnRpbnVvdXNGcmFtZURh
dGEuYXBwZW5kKGZyYW1lLnBheWxvYWQsIGZyYW1lLnBheWxvYWRMZW5ndGgpOwpAQCAtNjIwLDcg
KzYyMCw3IEBAIGJvb2wgV2ViU29ja2V0Q2hhbm5lbDo6cHJvY2Vzc0ZyYW1lKCkKICAgICAgICAg
ICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSBlbXB0eVN0cmluZygp
OwogICAgICAgICAgICAgICAgIGlmIChtZXNzYWdlLmlzTnVsbCgpKQotICAgICAgICAgICAgICAg
ICAgICBmYWlsKCJDb3VsZCBub3QgZGVjb2RlIGEgdGV4dCBmcmFtZSBhcyBVVEYtOC4iKTsKKyAg
ICAgICAgICAgICAgICAgICAgZmFpbCgiQ291bGQgbm90IGRlY29kZSBhIHRleHQgZnJhbWUgYXMg
VVRGLTguIl9zKTsKICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgIG1f
Y2xpZW50LT5kaWRSZWNlaXZlTWVzc2FnZShXVEZNb3ZlKG1lc3NhZ2UpKTsKICAgICAgICAgICAg
IH0gZWxzZSBpZiAobV9jb250aW51b3VzRnJhbWVPcENvZGUgPT0gV2ViU29ja2V0RnJhbWU6Ok9w
Q29kZUJpbmFyeSkKQEAgLTYzNyw3ICs2MzcsNyBAQCBib29sIFdlYlNvY2tldENoYW5uZWw6OnBy
b2Nlc3NGcmFtZSgpCiAgICAgICAgICAgICAgICAgbWVzc2FnZSA9IGVtcHR5U3RyaW5nKCk7CiAg
ICAgICAgICAgICBza2lwQnVmZmVyKGZyYW1lRW5kIC0gbV9idWZmZXIuZGF0YSgpKTsKICAgICAg
ICAgICAgIGlmIChtZXNzYWdlLmlzTnVsbCgpKQotICAgICAgICAgICAgICAgIGZhaWwoIkNvdWxk
IG5vdCBkZWNvZGUgYSB0ZXh0IGZyYW1lIGFzIFVURi04LiIpOworICAgICAgICAgICAgICAgIGZh
aWwoIkNvdWxkIG5vdCBkZWNvZGUgYSB0ZXh0IGZyYW1lIGFzIFVURi04LiJfcyk7CiAgICAgICAg
ICAgICBlbHNlCiAgICAgICAgICAgICAgICAgbV9jbGllbnQtPmRpZFJlY2VpdmVNZXNzYWdlKFdU
Rk1vdmUobWVzc2FnZSkpOwogICAgICAgICB9IGVsc2UgewpAQCAtNjY5LDEzICs2NjksMTMgQEAg
Ym9vbCBXZWJTb2NrZXRDaGFubmVsOjpwcm9jZXNzRnJhbWUoKQogICAgICAgICAgICAgbV9jbG9z
ZUV2ZW50Q29kZSA9IENsb3NlRXZlbnRDb2RlTm9TdGF0dXNSY3ZkOwogICAgICAgICBlbHNlIGlm
IChmcmFtZS5wYXlsb2FkTGVuZ3RoID09IDEpIHsKICAgICAgICAgICAgIG1fY2xvc2VFdmVudENv
ZGUgPSBDbG9zZUV2ZW50Q29kZUFibm9ybWFsQ2xvc3VyZTsKLSAgICAgICAgICAgIGZhaWwoIlJl
Y2VpdmVkIGEgYnJva2VuIGNsb3NlIGZyYW1lIGNvbnRhaW5pbmcgYW4gaW52YWxpZCBzaXplIGJv
ZHkuIik7CisgICAgICAgICAgICBmYWlsKCJSZWNlaXZlZCBhIGJyb2tlbiBjbG9zZSBmcmFtZSBj
b250YWluaW5nIGFuIGludmFsaWQgc2l6ZSBib2R5LiJfcyk7CiAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBtX2Nsb3NlRXZlbnRDb2RlID0g
ZnJhbWUucGF5bG9hZFswXSA8PCA4IHwgZnJhbWUucGF5bG9hZFsxXTsKICAgICAgICAgICAgIGlm
IChtX2Nsb3NlRXZlbnRDb2RlID09IENsb3NlRXZlbnRDb2RlTm9TdGF0dXNSY3ZkIHx8IG1fY2xv
c2VFdmVudENvZGUgPT0gQ2xvc2VFdmVudENvZGVBYm5vcm1hbENsb3N1cmUgfHwgbV9jbG9zZUV2
ZW50Q29kZSA9PSBDbG9zZUV2ZW50Q29kZVRMU0hhbmRzaGFrZSkgewogICAgICAgICAgICAgICAg
IG1fY2xvc2VFdmVudENvZGUgPSBDbG9zZUV2ZW50Q29kZUFibm9ybWFsQ2xvc3VyZTsKLSAgICAg
ICAgICAgICAgICBmYWlsKCJSZWNlaXZlZCBhIGJyb2tlbiBjbG9zZSBmcmFtZSBjb250YWluaW5n
IGEgcmVzZXJ2ZWQgc3RhdHVzIGNvZGUuIik7CisgICAgICAgICAgICAgICAgZmFpbCgiUmVjZWl2
ZWQgYSBicm9rZW4gY2xvc2UgZnJhbWUgY29udGFpbmluZyBhIHJlc2VydmVkIHN0YXR1cyBjb2Rl
LiJfcyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgfQogICAg
ICAgICB9CkBAIC03NjEsNyArNzYxLDcgQEAgdm9pZCBXZWJTb2NrZXRDaGFubmVsOjpwcm9jZXNz
T3V0Z29pbmdGcmFtZVF1ZXVlKCkKICAgICAgICAgY2FzZSBRdWV1ZWRGcmFtZVR5cGVTdHJpbmc6
IHsKICAgICAgICAgICAgIHNlbmRGcmFtZShmcmFtZS0+b3BDb2RlLCBmcmFtZS0+c3RyaW5nRGF0
YS5kYXRhQXNVSW50OFB0cigpLCBmcmFtZS0+c3RyaW5nRGF0YS5sZW5ndGgoKSwgW3RoaXMsIHBy
b3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9XSAoYm9vbCBzdWNjZXNzKSB7CiAgICAgICAgICAg
ICAgICAgaWYgKCFzdWNjZXNzKQotICAgICAgICAgICAgICAgICAgICBmYWlsKCJGYWlsZWQgdG8g
c2VuZCBXZWJTb2NrZXQgZnJhbWUuIik7CisgICAgICAgICAgICAgICAgICAgIGZhaWwoIkZhaWxl
ZCB0byBzZW5kIFdlYlNvY2tldCBmcmFtZS4iX3MpOwogICAgICAgICAgICAgfSk7CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgfQpAQCAtNzY5LDcgKzc2OSw3IEBAIHZvaWQgV2ViU29ja2V0
Q2hhbm5lbDo6cHJvY2Vzc091dGdvaW5nRnJhbWVRdWV1ZSgpCiAgICAgICAgIGNhc2UgUXVldWVk
RnJhbWVUeXBlVmVjdG9yOgogICAgICAgICAgICAgc2VuZEZyYW1lKGZyYW1lLT5vcENvZGUsIGZy
YW1lLT52ZWN0b3JEYXRhLmRhdGEoKSwgZnJhbWUtPnZlY3RvckRhdGEuc2l6ZSgpLCBbdGhpcywg
cHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH1dIChib29sIHN1Y2Nlc3MpIHsKICAgICAgICAg
ICAgICAgICBpZiAoIXN1Y2Nlc3MpCi0gICAgICAgICAgICAgICAgICAgIGZhaWwoIkZhaWxlZCB0
byBzZW5kIFdlYlNvY2tldCBmcmFtZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgZmFpbCgiRmFp
bGVkIHRvIHNlbmQgV2ViU29ja2V0IGZyYW1lLiJfcyk7CiAgICAgICAgICAgICB9KTsKICAgICAg
ICAgICAgIGJyZWFrOwogCkBAIC03OTYsNyArNzk2LDcgQEAgdm9pZCBXZWJTb2NrZXRDaGFubmVs
Ojpwcm9jZXNzT3V0Z29pbmdGcmFtZVF1ZXVlKCkKICAgICAgICAgICAgICAgICBtX2Jsb2JMb2Fk
ZXJTdGF0dXMgPSBCbG9iTG9hZGVyTm90U3RhcnRlZDsKICAgICAgICAgICAgICAgICBzZW5kRnJh
bWUoZnJhbWUtPm9wQ29kZSwgc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCo+KHJlc3VsdC0+ZGF0
YSgpKSwgcmVzdWx0LT5ieXRlTGVuZ3RoKCksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsg
KnRoaXMgfV0gKGJvb2wgc3VjY2VzcykgewogICAgICAgICAgICAgICAgICAgICBpZiAoIXN1Y2Nl
c3MpCi0gICAgICAgICAgICAgICAgICAgICAgICBmYWlsKCJGYWlsZWQgdG8gc2VuZCBXZWJTb2Nr
ZXQgZnJhbWUuIik7CisgICAgICAgICAgICAgICAgICAgICAgICBmYWlsKCJGYWlsZWQgdG8gc2Vu
ZCBXZWJTb2NrZXQgZnJhbWUuIl9zKTsKICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXREZWZsYXRlRnJhbWVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXREZWZsYXRlRnJhbWVyLmNwcAppbmRleCAw
MWZkZmUwMjllNDZmY2U4NjJkNWU2MTZjZmM0OTVkNjljYzYxNDY1Li5hODdmZTVkN2FhZTVlODBk
Mzk3NTQ5OWM0YzU2YTZlMDE3ZGYxMWRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RGVmbGF0ZUZyYW1lci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldERlZmxhdGVGcmFtZXIuY3BwCkBAIC03
Niw3ICs3Niw3IEBAIGJvb2wgV2ViU29ja2V0RXh0ZW5zaW9uRGVmbGF0ZUZyYW1lOjpwcm9jZXNz
UmVzcG9uc2UoY29uc3QgSGFzaE1hcDxTdHJpbmcsIFN0cmluCiAKICAgICB1bnNpZ25lZCBleHBl
Y3RlZE51bVBhcmFtZXRlcnMgPSAwOwogICAgIGludCB3aW5kb3dCaXRzID0gMTU7Ci0gICAgYXV0
byBwYXJhbWV0ZXIgPSBzZXJ2ZXJQYXJhbWV0ZXJzLmZpbmQoIm1heF93aW5kb3dfYml0cyIpOwor
ICAgIGF1dG8gcGFyYW1ldGVyID0gc2VydmVyUGFyYW1ldGVycy5maW5kKCJtYXhfd2luZG93X2Jp
dHMiX3MpOwogICAgIGlmIChwYXJhbWV0ZXIgIT0gc2VydmVyUGFyYW1ldGVycy5lbmQoKSkgewog
ICAgICAgICB3aW5kb3dCaXRzID0gcGFyc2VJbnRlZ2VyQWxsb3dpbmdUcmFpbGluZ0p1bms8aW50
PihwYXJhbWV0ZXItPnZhbHVlKS52YWx1ZV9vcigwKTsKICAgICAgICAgaWYgKHdpbmRvd0JpdHMg
PCA4IHx8IHdpbmRvd0JpdHMgPiAxNSkgewpAQCAtODcsNyArODcsNyBAQCBib29sIFdlYlNvY2tl
dEV4dGVuc2lvbkRlZmxhdGVGcmFtZTo6cHJvY2Vzc1Jlc3BvbnNlKGNvbnN0IEhhc2hNYXA8U3Ry
aW5nLCBTdHJpbgogICAgIH0KIAogICAgIFdlYlNvY2tldERlZmxhdGVyOjpDb250ZXh0VGFrZU92
ZXJNb2RlIG1vZGUgPSBXZWJTb2NrZXREZWZsYXRlcjo6VGFrZU92ZXJDb250ZXh0OwotICAgIHBh
cmFtZXRlciA9IHNlcnZlclBhcmFtZXRlcnMuZmluZCgibm9fY29udGV4dF90YWtlb3ZlciIpOwor
ICAgIHBhcmFtZXRlciA9IHNlcnZlclBhcmFtZXRlcnMuZmluZCgibm9fY29udGV4dF90YWtlb3Zl
ciJfcyk7CiAgICAgaWYgKHBhcmFtZXRlciAhPSBzZXJ2ZXJQYXJhbWV0ZXJzLmVuZCgpKSB7CiAg
ICAgICAgIGlmICghcGFyYW1ldGVyLT52YWx1ZS5pc051bGwoKSkgewogICAgICAgICAgICAgbV9m
YWlsdXJlUmVhc29uID0gIlJlY2VpdmVkIGludmFsaWQgbm9fY29udGV4dF90YWtlb3ZlciBwYXJh
bWV0ZXIiX3M7CkBAIC0xNjEsNyArMTYxLDcgQEAgc3RkOjp1bmlxdWVfcHRyPERlZmxhdGVSZXN1
bHRIb2xkZXI+IFdlYlNvY2tldERlZmxhdGVGcmFtZXI6OmRlZmxhdGUoV2ViU29ja2V0RnIKICAg
ICBpZiAoIWVuYWJsZWQoKSB8fCAhV2ViU29ja2V0RnJhbWU6OmlzTm9uQ29udHJvbE9wQ29kZShm
cmFtZS5vcENvZGUpIHx8ICFmcmFtZS5wYXlsb2FkTGVuZ3RoKQogICAgICAgICByZXR1cm4gcmVz
dWx0OwogICAgIGlmICghbV9kZWZsYXRlci0+YWRkQnl0ZXMoZnJhbWUucGF5bG9hZCwgZnJhbWUu
cGF5bG9hZExlbmd0aCkgfHwgIW1fZGVmbGF0ZXItPmZpbmlzaCgpKSB7Ci0gICAgICAgIHJlc3Vs
dC0+ZmFpbCgiRmFpbGVkIHRvIGNvbXByZXNzIGZyYW1lIik7CisgICAgICAgIHJlc3VsdC0+ZmFp
bCgiRmFpbGVkIHRvIGNvbXByZXNzIGZyYW1lIl9zKTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsK
ICAgICB9CiAgICAgZnJhbWUuY29tcHJlc3MgPSB0cnVlOwpAQCAtMTgwLDE3ICsxODAsMTcgQEAg
c3RkOjp1bmlxdWVfcHRyPEluZmxhdGVSZXN1bHRIb2xkZXI+IFdlYlNvY2tldERlZmxhdGVGcmFt
ZXI6OmluZmxhdGUoV2ViU29ja2V0RnIKIHsKICAgICBhdXRvIHJlc3VsdCA9IG1ha2VVbmlxdWU8
SW5mbGF0ZVJlc3VsdEhvbGRlcj4oKnRoaXMpOwogICAgIGlmICghZW5hYmxlZCgpICYmIGZyYW1l
LmNvbXByZXNzKSB7Ci0gICAgICAgIHJlc3VsdC0+ZmFpbCgiQ29tcHJlc3NlZCBiaXQgbXVzdCBi
ZSAwIGlmIG5vIG5lZ290aWF0ZWQgZGVmbGF0ZS1mcmFtZSBleHRlbnNpb24iKTsKKyAgICAgICAg
cmVzdWx0LT5mYWlsKCJDb21wcmVzc2VkIGJpdCBtdXN0IGJlIDAgaWYgbm8gbmVnb3RpYXRlZCBk
ZWZsYXRlLWZyYW1lIGV4dGVuc2lvbiJfcyk7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAg
fQogICAgIGlmICghZnJhbWUuY29tcHJlc3MpCiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAg
aWYgKCFXZWJTb2NrZXRGcmFtZTo6aXNOb25Db250cm9sT3BDb2RlKGZyYW1lLm9wQ29kZSkpIHsK
LSAgICAgICAgcmVzdWx0LT5mYWlsKCJSZWNlaXZlZCB1bmV4cGVjdGVkIGNvbXByZXNzZWQgZnJh
bWUiKTsKKyAgICAgICAgcmVzdWx0LT5mYWlsKCJSZWNlaXZlZCB1bmV4cGVjdGVkIGNvbXByZXNz
ZWQgZnJhbWUiX3MpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KICAgICBpZiAoIW1f
aW5mbGF0ZXItPmFkZEJ5dGVzKGZyYW1lLnBheWxvYWQsIGZyYW1lLnBheWxvYWRMZW5ndGgpIHx8
ICFtX2luZmxhdGVyLT5maW5pc2goKSkgewotICAgICAgICByZXN1bHQtPmZhaWwoIkZhaWxlZCB0
byBkZWNvbXByZXNzIGZyYW1lIik7CisgICAgICAgIHJlc3VsdC0+ZmFpbCgiRmFpbGVkIHRvIGRl
Y29tcHJlc3MgZnJhbWUiX3MpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KICAgICBm
cmFtZS5jb21wcmVzcyA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJzb2NrZXRzL1dlYlNvY2tldEV4dGVuc2lvbkRpc3BhdGNoZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEV4dGVuc2lvbkRpc3BhdGNoZXIuY3Bw
CmluZGV4IDdhZjJjMzc5MWEwYWU4ZDZlZTllOTI5OTgzNTdlODYwYWZiYjc1ZGQuLmU1Y2YxMjUx
MWVmM2U1NjRmNjNiODVkOGNiMGJiMWVlNDBjNWRhM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRFeHRlbnNpb25EaXNwYXRjaGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RXh0ZW5zaW9u
RGlzcGF0Y2hlci5jcHAKQEAgLTkzLDcgKzkzLDcgQEAgYm9vbCBXZWJTb2NrZXRFeHRlbnNpb25E
aXNwYXRjaGVyOjpwcm9jZXNzSGVhZGVyVmFsdWUoY29uc3QgU3RyaW5nJiBoZWFkZXJWYWx1ZSkK
IAogICAgIC8vIElmIHdlIGRvbid0IHNlbmQgU2VjLVdlYlNvY2tldC1FeHRlbnNpb25zIGhlYWRl
ciwgdGhlIHNlcnZlciBzaG91bGQgbm90IHJldHVybiB0aGUgaGVhZGVyLgogICAgIGlmICghbV9w
cm9jZXNzb3JzLnNpemUoKSkgewotICAgICAgICBmYWlsKCJSZWNlaXZlZCB1bmV4cGVjdGVkIFNl
Yy1XZWJTb2NrZXQtRXh0ZW5zaW9ucyBoZWFkZXIiKTsKKyAgICAgICAgZmFpbCgiUmVjZWl2ZWQg
dW5leHBlY3RlZCBTZWMtV2ViU29ja2V0LUV4dGVuc2lvbnMgaGVhZGVyIl9zKTsKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgIH0KIApAQCAtMTAzLDcgKzEwMyw3IEBAIGJvb2wgV2ViU29ja2V0
RXh0ZW5zaW9uRGlzcGF0Y2hlcjo6cHJvY2Vzc0hlYWRlclZhbHVlKGNvbnN0IFN0cmluZyYgaGVh
ZGVyVmFsdWUpCiAgICAgICAgIFN0cmluZyBleHRlbnNpb25Ub2tlbjsKICAgICAgICAgSGFzaE1h
cDxTdHJpbmcsIFN0cmluZz4gZXh0ZW5zaW9uUGFyYW1ldGVyczsKICAgICAgICAgaWYgKCFwYXJz
ZXIucGFyc2VFeHRlbnNpb24oZXh0ZW5zaW9uVG9rZW4sIGV4dGVuc2lvblBhcmFtZXRlcnMpKSB7
Ci0gICAgICAgICAgICBmYWlsKCJTZWMtV2ViU29ja2V0LUV4dGVuc2lvbnMgaGVhZGVyIGlzIGlu
dmFsaWQiKTsKKyAgICAgICAgICAgIGZhaWwoIlNlYy1XZWJTb2NrZXQtRXh0ZW5zaW9ucyBoZWFk
ZXIgaXMgaW52YWxpZCJfcyk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tl
dEZyYW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRG
cmFtZS5jcHAKaW5kZXggZTM5ZTAxOWFlMDJkOTY3MjM4Zjk2NTcyZDUzZWUyM2MzNDU2ZjIzMy4u
YmExZTYyNTQ5MTdhZmY0ZmE3YjgyYzY4ODRmZWIyYWM5MDcwZDNhZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEZyYW1lLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RnJhbWUuY3BwCkBAIC04
MiwxMSArODIsMTEgQEAgV2ViU29ja2V0RnJhbWU6OlBhcnNlRnJhbWVSZXN1bHQgV2ViU29ja2V0
RnJhbWU6OnBhcnNlRnJhbWUodWludDhfdCogZGF0YSwgc2l6ZV8KICAgICAgICAgICAgIHBheWxv
YWRMZW5ndGg2NCB8PSBzdGF0aWNfY2FzdDx1aW50OF90PigqcCsrKTsKICAgICAgICAgfQogICAg
ICAgICBpZiAoZXh0ZW5kZWRQYXlsb2FkTGVuZ3RoU2l6ZSA9PSAyICYmIHBheWxvYWRMZW5ndGg2
NCA8PSBtYXhQYXlsb2FkTGVuZ3RoV2l0aG91dEV4dGVuZGVkTGVuZ3RoRmllbGQpIHsKLSAgICAg
ICAgICAgIGVycm9yU3RyaW5nID0gIlRoZSBtaW5pbWFsIG51bWJlciBvZiBieXRlcyBNVVNUIGJl
IHVzZWQgdG8gZW5jb2RlIHRoZSBsZW5ndGgiOworICAgICAgICAgICAgZXJyb3JTdHJpbmcgPSAi
VGhlIG1pbmltYWwgbnVtYmVyIG9mIGJ5dGVzIE1VU1QgYmUgdXNlZCB0byBlbmNvZGUgdGhlIGxl
bmd0aCJfczsKICAgICAgICAgICAgIHJldHVybiBGcmFtZUVycm9yOwogICAgICAgICB9CiAgICAg
ICAgIGlmIChleHRlbmRlZFBheWxvYWRMZW5ndGhTaXplID09IDggJiYgcGF5bG9hZExlbmd0aDY0
IDw9IDB4RkZGRikgewotICAgICAgICAgICAgZXJyb3JTdHJpbmcgPSAiVGhlIG1pbmltYWwgbnVt
YmVyIG9mIGJ5dGVzIE1VU1QgYmUgdXNlZCB0byBlbmNvZGUgdGhlIGxlbmd0aCI7CisgICAgICAg
ICAgICBlcnJvclN0cmluZyA9ICJUaGUgbWluaW1hbCBudW1iZXIgb2YgYnl0ZXMgTVVTVCBiZSB1
c2VkIHRvIGVuY29kZSB0aGUgbGVuZ3RoIl9zOwogICAgICAgICAgICAgcmV0dXJuIEZyYW1lRXJy
b3I7CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnhyL1dlYlhSV2ViR0xMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhy
L1dlYlhSV2ViR0xMYXllci5jcHAKaW5kZXggODI2ZGUxNmE3MDY5MWQ0MjBjNTk0NjdkYzRhNzFk
ZWRmYjBiNjVjNi4uZDc0MGZiYjg4M2QyNThhZDFlNWRiN2Y2YmJmZDE2NjViNDQ5Yjk4OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUldlYkdMTGF5ZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJXZWJHTExheWVyLmNwcApA
QCAtNjQsNyArNjQsNyBAQCBzdGF0aWMgRXhjZXB0aW9uT3I8c3RkOjp1bmlxdWVfcHRyPFdlYlhS
T3BhcXVlRnJhbWVidWZmZXI+PiBjcmVhdGVPcGFxdWVGcmFtZWJ1ZgogewogICAgIGF1dG8gZGV2
aWNlID0gc2Vzc2lvbi5kZXZpY2UoKTsKICAgICBpZiAoIWRldmljZSkKLSAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IE9wZXJhdGlvbkVycm9yLCAiQ2Fubm90IGNyZWF0ZSBhbiBYUldlYkdMTGF5
ZXIgd2l0aCBhbiBYUlNlc3Npb24gdGhhdCBoYXMgZW5kZWQuIiB9OworICAgICAgICByZXR1cm4g
RXhjZXB0aW9uIHsgT3BlcmF0aW9uRXJyb3IsICJDYW5ub3QgY3JlYXRlIGFuIFhSV2ViR0xMYXll
ciB3aXRoIGFuIFhSU2Vzc2lvbiB0aGF0IGhhcyBlbmRlZC4iX3MgfTsKIAogICAgIC8vIDkuMS4g
SW5pdGlhbGl6ZSBsYXllcuKAmXMgYW50aWFsaWFzIHRvIGxheWVySW5pdOKAmXMgYW50aWFsaWFz
IHZhbHVlLgogICAgIC8vIDkuMi4gTGV0IGZyYW1lYnVmZmVyU2l6ZSBiZSB0aGUgcmVjb21tZW5k
ZWQgV2ViR0wgZnJhbWVidWZmZXIgcmVzb2x1dGlvbiBtdWx0aXBsaWVkIGJ5IGxheWVySW5pdCdz
IGZyYW1lYnVmZmVyU2NhbGVGYWN0b3IuCkBAIC04Miw3ICs4Miw3IEBAIHN0YXRpYyBFeGNlcHRp
b25PcjxzdGQ6OnVuaXF1ZV9wdHI8V2ViWFJPcGFxdWVGcmFtZWJ1ZmZlcj4+IGNyZWF0ZU9wYXF1
ZUZyYW1lYnVmCiAgICAgLy8gOS41LiBJZiBsYXllcuKAmXMgcmVzb3VyY2VzIHdlcmUgdW5hYmxl
IHRvIGJlIGNyZWF0ZWQgZm9yIGFueSByZWFzb24sIHRocm93IGFuIE9wZXJhdGlvbkVycm9yIGFu
ZCBhYm9ydCB0aGVzZSBzdGVwcy4KICAgICBhdXRvIGxheWVySGFuZGxlID0gZGV2aWNlLT5jcmVh
dGVMYXllclByb2plY3Rpb24od2lkdGgsIGhlaWdodCwgaW5pdC5hbHBoYSk7CiAgICAgaWYgKCFs
YXllckhhbmRsZSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE9wZXJhdGlvbkVycm9yLCAi
VW5hYmxlIHRvIGFsbG9jYXRlIFhSV2ViR0xMYXllciBHUFUgcmVzb3VyY2VzLiJ9OworICAgICAg
ICByZXR1cm4gRXhjZXB0aW9uIHsgT3BlcmF0aW9uRXJyb3IsICJVbmFibGUgdG8gYWxsb2NhdGUg
WFJXZWJHTExheWVyIEdQVSByZXNvdXJjZXMuIl9zIH07CiAKICAgICBXZWJYUk9wYXF1ZUZyYW1l
YnVmZmVyOjpBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMgewogICAgICAgICAuYWxwaGEgPSBpbml0LmFs
cGhhLApAQCAtOTMsNyArOTMsNyBAQCBzdGF0aWMgRXhjZXB0aW9uT3I8c3RkOjp1bmlxdWVfcHRy
PFdlYlhST3BhcXVlRnJhbWVidWZmZXI+PiBjcmVhdGVPcGFxdWVGcmFtZWJ1ZgogCiAgICAgYXV0
byBmcmFtZWJ1ZmZlciA9IFdlYlhST3BhcXVlRnJhbWVidWZmZXI6OmNyZWF0ZSgqbGF5ZXJIYW5k
bGUsIGNvbnRleHQsIFdURk1vdmUoYXR0cmlidXRlcyksIHdpZHRoLCBoZWlnaHQpOwogICAgIGlm
ICghZnJhbWVidWZmZXIpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBPcGVyYXRpb25FcnJv
ciwgIlVuYWJsZSB0byBjcmVhdGUgYSBmcmFtZWJ1ZmZlci4iIH07CisgICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBPcGVyYXRpb25FcnJvciwgIlVuYWJsZSB0byBjcmVhdGUgYSBmcmFtZWJ1ZmZl
ci4iX3MgfTsKICAgICAKICAgICByZXR1cm4gZnJhbWVidWZmZXI7CiB9CkBAIC0xMDQsNyArMTA0
LDcgQEAgRXhjZXB0aW9uT3I8UmVmPFdlYlhSV2ViR0xMYXllcj4+IFdlYlhSV2ViR0xMYXllcjo6
Y3JlYXRlKFJlZjxXZWJYUlNlc3Npb24+JiYgc2UKICAgICAvLyAxLiBMZXQgbGF5ZXIgYmUgYSBu
ZXcgWFJXZWJHTExheWVyCiAgICAgLy8gMi4gSWYgc2Vzc2lvbuKAmXMgZW5kZWQgdmFsdWUgaXMg
dHJ1ZSwgdGhyb3cgYW4gSW52YWxpZFN0YXRlRXJyb3IgYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgog
ICAgIGlmIChzZXNzaW9uLT5lbmRlZCgpKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52
YWxpZFN0YXRlRXJyb3IsICJDYW5ub3QgY3JlYXRlIGFuIFhSV2ViR0xMYXllciB3aXRoIGFuIFhS
U2Vzc2lvbiB0aGF0IGhhcyBlbmRlZC4iIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJ
bnZhbGlkU3RhdGVFcnJvciwgIkNhbm5vdCBjcmVhdGUgYW4gWFJXZWJHTExheWVyIHdpdGggYW4g
WFJTZXNzaW9uIHRoYXQgaGFzIGVuZGVkLiJfcyB9OwogCiAgICAgLy8gMy4gSWYgY29udGV4dCBp
cyBsb3N0LCB0aHJvdyBhbiBJbnZhbGlkU3RhdGVFcnJvciBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMu
CiAgICAgLy8gNC4gSWYgc2Vzc2lvbiBpcyBhbiBpbW1lcnNpdmUgc2Vzc2lvbiBhbmQgY29udGV4
dOKAmXMgWFIgY29tcGF0aWJsZSBib29sZWFuIGlzIGZhbHNlLCB0aHJvdwpAQCAtMTEzLDExICsx
MTMsMTEgQEAgRXhjZXB0aW9uT3I8UmVmPFdlYlhSV2ViR0xMYXllcj4+IFdlYlhSV2ViR0xMYXll
cjo6Y3JlYXRlKFJlZjxXZWJYUlNlc3Npb24+JiYgc2UKICAgICAgICAgWyZdKGNvbnN0IFJlZlB0
cjxXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlPiYgYmFzZUNvbnRleHQpIC0+IEV4Y2VwdGlvbk9y
PFJlZjxXZWJYUldlYkdMTGF5ZXI+PgogICAgICAgICB7CiAgICAgICAgICAgICBpZiAoYmFzZUNv
bnRleHQtPmlzQ29udGV4dExvc3QoKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9u
IHsgSW52YWxpZFN0YXRlRXJyb3IsICJDYW5ub3QgY3JlYXRlIGFuIFhSV2ViR0xMYXllciB3aXRo
IGEgbG9zdCBXZWJHTCBjb250ZXh0LiIgfTsKKyAgICAgICAgICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJDYW5ub3QgY3JlYXRlIGFuIFhSV2ViR0xMYXllciB3
aXRoIGEgbG9zdCBXZWJHTCBjb250ZXh0LiJfcyB9OwogCiAgICAgICAgICAgICBhdXRvIG1vZGUg
PSBzZXNzaW9uLT5tb2RlKCk7CiAgICAgICAgICAgICBpZiAoKG1vZGUgPT0gWFJTZXNzaW9uTW9k
ZTo6SW1tZXJzaXZlQXIgfHwgbW9kZSA9PSBYUlNlc3Npb25Nb2RlOjpJbW1lcnNpdmVWcikgJiYg
IWJhc2VDb250ZXh0LT5pc1hSQ29tcGF0aWJsZSgpKQotICAgICAgICAgICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkNhbm5vdCBjcmVhdGUgYW4gWFJXZWJHTExh
eWVyIHdpdGggV2ViR0wgY29udGV4dCBub3QgbWFya2VkIGFzIFhSIGNvbXBhdGlibGUuIiB9Owor
ICAgICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkNh
bm5vdCBjcmVhdGUgYW4gWFJXZWJHTExheWVyIHdpdGggV2ViR0wgY29udGV4dCBub3QgbWFya2Vk
IGFzIFhSIGNvbXBhdGlibGUuIl9zIH07CiAKIAogICAgICAgICAgICAgLy8gNS4gSW5pdGlhbGl6
ZSBsYXllcuKAmXMgY29udGV4dCB0byBjb250ZXh0LiAoc2VlIGNvbnN0cnVjdG9yKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWEltYWdlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhJbWFnZS5jcHAKaW5kZXggNzVmZWE4YjE1MmIxNmU2OTVk
NjRlMjk5MmQ5MzgzYTg2Y2ZlMjJkYS4uMjYzYjc5NjkwYjk3MjkzNzAyNTc5Y2YwZDBlNzgyODBk
MmZmZjdiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWEltYWdl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYSW1hZ2UuY3BwCkBAIC01
Nyw3ICs1Nyw3IEBAIEFjY2Vzc2liaWxpdHlSb2xlIEFYSW1hZ2U6OnJvbGVWYWx1ZSgpIGNvbnN0
CiAKIHN0ZDo6b3B0aW9uYWw8QVhDb3JlT2JqZWN0OjpBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0
b3I+IEFYSW1hZ2U6OmltYWdlT3ZlcmxheUVsZW1lbnRzKCkKIHsKLSAgICBBWFRSQUNFKCJBWElt
YWdlOjppbWFnZU92ZXJsYXlFbGVtZW50cyIpOworICAgIEFYVFJBQ0UoIkFYSW1hZ2U6OmltYWdl
T3ZlcmxheUVsZW1lbnRzIl9zKTsKIAogICAgIGF1dG8mIGNoaWxkcmVuID0gdGhpcy0+Y2hpbGRy
ZW4oKTsKICAgICBpZiAoY2hpbGRyZW4uc2l6ZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BWExvZ2dlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FYTG9nZ2VyLmNwcAppbmRleCAwYjZjY2QzYjdlOTI4Y2U4NzgwYmRjN2YyMWIwOGU3M2U2
NDI5ZTMzLi45NDE0NjE4MmE1YWJkZGIyYzkwZTYxNjFiMGZkZmEwZjZjM2VlNTRkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYTG9nZ2VyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYTG9nZ2VyLmNwcApAQCAtNTUsNyArNTUsNyBAQCBz
dGF0aWMgYm9vbCBzaG91bGRMb2coKQogQVhMb2dnZXI6OkFYTG9nZ2VyKGNvbnN0IFN0cmluZyYg
bWV0aG9kTmFtZSkKICAgICA6IG1fbWV0aG9kTmFtZShtZXRob2ROYW1lKQogewotICAgIGlmIChh
dXRvKiBjaGFubmVsID0gZ2V0TG9nQ2hhbm5lbCgiQWNjZXNzaWJpbGl0eSIpKQorICAgIGlmIChh
dXRvKiBjaGFubmVsID0gZ2V0TG9nQ2hhbm5lbCgiQWNjZXNzaWJpbGl0eSJfcykpCiAgICAgICAg
IGNoYW5uZWwtPmxldmVsID0gV1RGTG9nTGV2ZWw6OkRlYnVnOwogCiAgICAgaWYgKHNob3VsZExv
ZygpKSB7CkBAIC03OCw2ICs3OCwxMiBAQCB2b2lkIEFYTG9nZ2VyOjpsb2coY29uc3QgU3RyaW5n
JiBtZXNzYWdlKQogICAgICAgICBMT0coQWNjZXNzaWJpbGl0eSwgIiVzIiwgbWVzc2FnZS51dGY4
KCkuZGF0YSgpKTsKIH0KIAordm9pZCBBWExvZ2dlcjo6bG9nKGNvbnN0IGNoYXIqIG1lc3NhZ2Up
Cit7CisgICAgaWYgKHNob3VsZExvZygpKQorICAgICAgICBMT0coQWNjZXNzaWJpbGl0eSwgIiVz
IiwgbWVzc2FnZSk7Cit9CisKIHZvaWQgQVhMb2dnZXI6OmxvZyhSZWZQdHI8QVhDb3JlT2JqZWN0
PiBvYmplY3QpCiB7CiAgICAgaWYgKHNob3VsZExvZygpKSB7CkBAIC0zMjgsMTUgKzMzNCwxNSBA
QCBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHN0cmVhbSwgQWNjZXNzaWJpbGl0
eVNlYXJjaEtleSBzZWFyY2hLZXkpCiBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0m
IHN0cmVhbSwgY29uc3QgQWNjZXNzaWJpbGl0eVNlYXJjaENyaXRlcmlhJiBjcml0ZXJpYSkKIHsK
ICAgICBUZXh0U3RyZWFtOjpHcm91cFNjb3BlIGdyb3VwU2NvcGUoc3RyZWFtKTsKLSAgICBhdXRv
IHN0cmVhbUNyaXRlcmlhT2JqZWN0ID0gWyZzdHJlYW1dIChTdHJpbmcgb2JqZWN0TGFiZWwsIGF1
dG8qIGF4T2JqZWN0KSB7CisgICAgYXV0byBzdHJlYW1Dcml0ZXJpYU9iamVjdCA9IFsmc3RyZWFt
XSAoQVNDSUlMaXRlcmFsIG9iamVjdExhYmVsLCBhdXRvKiBheE9iamVjdCkgewogICAgICAgICBz
dHJlYW0uc3RhcnRHcm91cCgpOwotICAgICAgICBzdHJlYW0gPDwgb2JqZWN0TGFiZWwgPDwgIiAi
IDw8IGF4T2JqZWN0IDw8ICIsIElEICIgPDwgKGF4T2JqZWN0ID8gYXhPYmplY3QtPm9iamVjdElE
KCkgOiBBWElEKCkpOworICAgICAgICBzdHJlYW0gPDwgb2JqZWN0TGFiZWwuY2hhcmFjdGVycygp
IDw8ICIgIiA8PCBheE9iamVjdCA8PCAiLCBJRCAiIDw8IChheE9iamVjdCA/IGF4T2JqZWN0LT5v
YmplY3RJRCgpIDogQVhJRCgpKTsKICAgICAgICAgc3RyZWFtLmVuZEdyb3VwKCk7CiAgICAgfTsK
IAogICAgIHN0cmVhbSA8PCAiU2VhcmNoQ3JpdGVyaWEgIiA8PCAmY3JpdGVyaWE7Ci0gICAgc3Ry
ZWFtQ3JpdGVyaWFPYmplY3QoImFuY2hvck9iamVjdCIsIGNyaXRlcmlhLmFuY2hvck9iamVjdCk7
Ci0gICAgc3RyZWFtQ3JpdGVyaWFPYmplY3QoInN0YXJ0T2JqZWN0IiwgY3JpdGVyaWEuc3RhcnRP
YmplY3QpOworICAgIHN0cmVhbUNyaXRlcmlhT2JqZWN0KCJhbmNob3JPYmplY3QiX3MsIGNyaXRl
cmlhLmFuY2hvck9iamVjdCk7CisgICAgc3RyZWFtQ3JpdGVyaWFPYmplY3QoInN0YXJ0T2JqZWN0
Il9zLCBjcml0ZXJpYS5zdGFydE9iamVjdCk7CiAgICAgc3RyZWFtLmR1bXBQcm9wZXJ0eSgic2Vh
cmNoRGlyZWN0aW9uIiwgY3JpdGVyaWEuc2VhcmNoRGlyZWN0aW9uKTsKIAogICAgIHN0cmVhbS5u
ZXh0TGluZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWExv
Z2dlci5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWExvZ2dlci5oCmluZGV4IGVh
ODkyZjJmOTY2YzU0ZGMwY2VjZTFkYTc5Mjg0ZTc5ODFhMGM5NTYuLmQxZmJhZmIxN2NiYmVjMzI0
YWUyMGI5ZjE2Y2MwMmY3MGNhMDVmMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQVhMb2dnZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FY
TG9nZ2VyLmgKQEAgLTQzLDYgKzQzLDcgQEAgcHVibGljOgogICAgIEFYTG9nZ2VyKGNvbnN0IFN0
cmluZyYgbWV0aG9kTmFtZSk7CiAgICAgfkFYTG9nZ2VyKCk7CiAgICAgc3RhdGljIHZvaWQgbG9n
KGNvbnN0IFN0cmluZyYpOworICAgIHN0YXRpYyB2b2lkIGxvZyhjb25zdCBjaGFyKik7CiAgICAg
c3RhdGljIHZvaWQgbG9nKFJlZlB0cjxBWENvcmVPYmplY3Q+KTsKICAgICBzdGF0aWMgdm9pZCBs
b2coY29uc3QgVmVjdG9yPFJlZlB0cjxBWENvcmVPYmplY3Q+PiYpOwogICAgIHN0YXRpYyB2b2lk
IGxvZyhjb25zdCBzdGQ6OnBhaXI8UmVmUHRyPEFYQ29yZU9iamVjdD4sIEFYT2JqZWN0Q2FjaGU6
OkFYTm90aWZpY2F0aW9uPiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BWE9iamVjdENhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhP
YmplY3RDYWNoZS5jcHAKaW5kZXggNzcyMmM2ZDBkMjk3OTk5ZTJjNTk5NmZjMmFkMDhlYjkyMGIw
MmM4YS4uNTNjYzA3ZjQwMDFmYWI3MjgyNGIyZDE5ZDFlZmYwNjYyOTdhOWFmNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCkBAIC0yNTIsNyAr
MjUyLDcgQEAgQVhPYmplY3RDYWNoZTo6fkFYT2JqZWN0Q2FjaGUoKQogCiBib29sIEFYT2JqZWN0
Q2FjaGU6OmlzTW9kYWxFbGVtZW50KEVsZW1lbnQmIGVsZW1lbnQpIGNvbnN0CiB7Ci0gICAgYm9v
bCBoYXNEaWFsb2dSb2xlID0gbm9kZUhhc1JvbGUoJmVsZW1lbnQsICJkaWFsb2ciKSB8fCBub2Rl
SGFzUm9sZSgmZWxlbWVudCwgImFsZXJ0ZGlhbG9nIik7CisgICAgYm9vbCBoYXNEaWFsb2dSb2xl
ID0gbm9kZUhhc1JvbGUoJmVsZW1lbnQsICJkaWFsb2ciX3MpIHx8IG5vZGVIYXNSb2xlKCZlbGVt
ZW50LCAiYWxlcnRkaWFsb2ciX3MpOwogICAgIGJvb2wgaXNBcmlhTW9kYWwgPSBlcXVhbExldHRl
cnNJZ25vcmluZ0FTQ0lJQ2FzZShlbGVtZW50LmF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRp
b24oYXJpYV9tb2RhbEF0dHIpLCAidHJ1ZSIpOwogCiAgICAgcmV0dXJuIChoYXNEaWFsb2dSb2xl
ICYmIGlzQXJpYU1vZGFsKSB8fCAoaXM8SFRNTERpYWxvZ0VsZW1lbnQ+KGVsZW1lbnQpICYmIGRv
d25jYXN0PEhUTUxEaWFsb2dFbGVtZW50PihlbGVtZW50KS5pc01vZGFsKCkpOwpAQCAtNTYwLDIy
ICs1NjAsMjIgQEAgc3RhdGljIFJlZjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiBjcmVhdGVGcm9tUmVu
ZGVyZXIoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKIAogICAgIC8vIElmIHRoZSBub2RlIGlzIGFy
aWEgcm9sZT0ibGlzdCIgb3IgdGhlIGFyaWEgcm9sZSBpcyBlbXB0eSBhbmQgaXRzIGEKICAgICAv
LyB1bC9vbC9kbCB0eXBlIChpdCBzaG91bGRuJ3QgYmUgYSBsaXN0IGlmIGFyaWEgc2F5cyBvdGhl
cndpc2UpLgotICAgIGlmIChub2RlICYmICgobm9kZUhhc1JvbGUobm9kZSwgImxpc3QiKSB8fCBu
b2RlSGFzUm9sZShub2RlLCAiZGlyZWN0b3J5IikpCisgICAgaWYgKG5vZGUgJiYgKChub2RlSGFz
Um9sZShub2RlLCAibGlzdCJfcykgfHwgbm9kZUhhc1JvbGUobm9kZSwgImRpcmVjdG9yeSJfcykp
CiAgICAgICAgICAgICAgICAgICAgICAgfHwgKG5vZGVIYXNSb2xlKG5vZGUsIG51bGxBdG9tKCkp
ICYmIChub2RlLT5oYXNUYWdOYW1lKHVsVGFnKSB8fCBub2RlLT5oYXNUYWdOYW1lKG9sVGFnKSB8
fCBub2RlLT5oYXNUYWdOYW1lKGRsVGFnKSkpKSkKICAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxp
dHlMaXN0OjpjcmVhdGUocmVuZGVyZXIpOwogCiAgICAgLy8gYXJpYSB0YWJsZXMKLSAgICBpZiAo
bm9kZUhhc1JvbGUobm9kZSwgImdyaWQiKSB8fCBub2RlSGFzUm9sZShub2RlLCAidHJlZWdyaWQi
KSB8fCBub2RlSGFzUm9sZShub2RlLCAidGFibGUiKSkKKyAgICBpZiAobm9kZUhhc1JvbGUobm9k
ZSwgImdyaWQiX3MpIHx8IG5vZGVIYXNSb2xlKG5vZGUsICJ0cmVlZ3JpZCJfcykgfHwgbm9kZUhh
c1JvbGUobm9kZSwgInRhYmxlIl9zKSkKICAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlBUklB
R3JpZDo6Y3JlYXRlKHJlbmRlcmVyKTsKLSAgICBpZiAobm9kZUhhc1JvbGUobm9kZSwgInJvdyIp
KQorICAgIGlmIChub2RlSGFzUm9sZShub2RlLCAicm93Il9zKSkKICAgICAgICAgcmV0dXJuIEFj
Y2Vzc2liaWxpdHlBUklBR3JpZFJvdzo6Y3JlYXRlKHJlbmRlcmVyKTsKLSAgICBpZiAobm9kZUhh
c1JvbGUobm9kZSwgImdyaWRjZWxsIikgfHwgbm9kZUhhc1JvbGUobm9kZSwgImNlbGwiKSB8fCBu
b2RlSGFzUm9sZShub2RlLCAiY29sdW1uaGVhZGVyIikgfHwgbm9kZUhhc1JvbGUobm9kZSwgInJv
d2hlYWRlciIpKQorICAgIGlmIChub2RlSGFzUm9sZShub2RlLCAiZ3JpZGNlbGwiX3MpIHx8IG5v
ZGVIYXNSb2xlKG5vZGUsICJjZWxsIl9zKSB8fCBub2RlSGFzUm9sZShub2RlLCAiY29sdW1uaGVh
ZGVyIl9zKSB8fCBub2RlSGFzUm9sZShub2RlLCAicm93aGVhZGVyIl9zKSkKICAgICAgICAgcmV0
dXJuIEFjY2Vzc2liaWxpdHlBUklBR3JpZENlbGw6OmNyZWF0ZShyZW5kZXJlcik7CiAKICAgICAv
LyBhcmlhIHRyZWUKLSAgICBpZiAobm9kZUhhc1JvbGUobm9kZSwgInRyZWUiKSkKKyAgICBpZiAo
bm9kZUhhc1JvbGUobm9kZSwgInRyZWUiX3MpKQogICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0
eVRyZWU6OmNyZWF0ZShyZW5kZXJlcik7Ci0gICAgaWYgKG5vZGVIYXNSb2xlKG5vZGUsICJ0cmVl
aXRlbSIpKQorICAgIGlmIChub2RlSGFzUm9sZShub2RlLCAidHJlZWl0ZW0iX3MpKQogICAgICAg
ICByZXR1cm4gQWNjZXNzaWJpbGl0eVRyZWVJdGVtOjpjcmVhdGUocmVuZGVyZXIpOwogCiAgICAg
aWYgKG5vZGUgJiYgaXM8SFRNTExhYmVsRWxlbWVudD4obm9kZSkgJiYgbm9kZUhhc1JvbGUobm9k
ZSwgbnVsbEF0b20oKSkpCkBAIC04NjUsNyArODY1LDcgQEAgQWNjZXNzaWJpbGl0eU9iamVjdCog
QVhPYmplY3RDYWNoZTo6Y3JlYXRlKEFjY2Vzc2liaWxpdHlSb2xlIHJvbGUpCiAKIHZvaWQgQVhP
YmplY3RDYWNoZTo6cmVtb3ZlKEFYSUQgYXhJRCkKIHsKLSAgICBBWFRSQUNFKCJBWE9iamVjdENh
Y2hlOjpyZW1vdmUiKTsKKyAgICBBWFRSQUNFKCJBWE9iamVjdENhY2hlOjpyZW1vdmUiX3MpOwog
ICAgIEFYTE9HKG1ha2VTdHJpbmcoIkFYSUQgIiwgYXhJRC5sb2dnaW5nU3RyaW5nKCkpKTsKIAog
ICAgIGlmICghYXhJRCkKQEAgLTk3Nyw3ICs5NzcsNyBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnRl
eHRDaGFuZ2VkKE5vZGUqIG5vZGUpCiAKIHZvaWQgQVhPYmplY3RDYWNoZTo6dGV4dENoYW5nZWQo
QWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0KQogewotICAgIEFYVFJBQ0UoIkFYT2JqZWN0Q2Fj
aGU6OnRleHRDaGFuZ2VkIik7CisgICAgQVhUUkFDRSgiQVhPYmplY3RDYWNoZTo6dGV4dENoYW5n
ZWQiX3MpOwogICAgIEFYTE9HKG9iamVjdCk7CiAKICAgICBpZiAoIW9iamVjdCkKQEAgLTEwODIs
NyArMTA4Miw3IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlQ2hpbGRyZW5DaGFuZ2VkKEFj
Y2Vzc2liaWxpdHlPYmplY3QmIG9iamVjdCkKIAogdm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVN
ZW51T3BlbmVkKE5vZGUqIG5vZGUpCiB7Ci0gICAgaWYgKCFub2RlIHx8ICFub2RlLT5yZW5kZXJl
cigpIHx8ICFub2RlSGFzUm9sZShub2RlLCAibWVudSIpKQorICAgIGlmICghbm9kZSB8fCAhbm9k
ZS0+cmVuZGVyZXIoKSB8fCAhbm9kZUhhc1JvbGUobm9kZSwgIm1lbnUiX3MpKQogICAgICAgICBy
ZXR1cm47CiAgICAgCiAgICAgcG9zdE5vdGlmaWNhdGlvbihnZXRPckNyZWF0ZShub2RlKSwgJmRv
Y3VtZW50KCksIEFYTWVudU9wZW5lZCk7CkBAIC0xMTM0LDcgKzExMzQsNyBAQCB2b2lkIEFYT2Jq
ZWN0Q2FjaGU6OmNoaWxkcmVuQ2hhbmdlZChBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3QpCiAK
IHZvaWQgQVhPYmplY3RDYWNoZTo6bm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQoKQogewotICAg
IEFYVFJBQ0UoIkFYT2JqZWN0Q2FjaGU6Om5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkIik7Cisg
ICAgQVhUUkFDRSgiQVhPYmplY3RDYWNoZTo6bm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQiX3Mp
OwogICAgIC8vIER1cmluZyBMYXlvdXRUZXN0cywgYWNjZXNzaWJpbGl0eSBtYXkgYmUgZGlzYWJs
ZWQgYmV0d2VlbiB0aGUgdGltZSB0aGUgbm90aWZpY2F0aW9ucyBhcmUgcXVldWVkIGFuZCB0aGUg
dGltZXIgZmlyZXMuCiAgICAgLy8gVGh1cyBjaGVjayBoZXJlIGFuZCByZXR1cm4gaWYgYWNjZXNz
aWJpbGl0eSBpcyBkaXNhYmxlZC4KICAgICBpZiAoIWFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCkBA
IC0xMTk1LDcgKzExOTUsNyBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBhc3N3b3JkTm90aWZpY2F0
aW9uUG9zdFRpbWVyRmlyZWQoKQogICAgIGF1dG8gbm90aWZpY2F0aW9ucyA9IHN0ZDo6ZXhjaGFu
Z2UobV9wYXNzd29yZE5vdGlmaWNhdGlvbnNUb1Bvc3QsIHsgfSk7CiAKICAgICBmb3IgKGF1dG8m
IG5vdGlmaWNhdGlvbiA6IG5vdGlmaWNhdGlvbnMpCi0gICAgICAgIHBvc3RUZXh0U3RhdGVDaGFu
Z2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihub3RpZmljYXRpb24uZ2V0KCksIEFYVGV4dEVkaXRUeXBl
SW5zZXJ0LCAiICIsIFZpc2libGVQb3NpdGlvbigpKTsKKyAgICAgICAgcG9zdFRleHRTdGF0ZUNo
YW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbi5nZXQoKSwgQVhUZXh0RWRpdFR5
cGVJbnNlcnQsICIgIl9zLCBWaXNpYmxlUG9zaXRpb24oKSk7CiAjZW5kaWYKIH0KIApAQCAtMTI0
Myw3ICsxMjQzLDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0aW9uKE5vZGUq
IG5vZGUsIEFYTm90aWZpY2F0aW9uIG5vdGlmaWNhdGlvbiwgUG8KIAogdm9pZCBBWE9iamVjdENh
Y2hlOjpwb3N0Tm90aWZpY2F0aW9uKEFYQ29yZU9iamVjdCogb2JqZWN0LCBEb2N1bWVudCogZG9j
dW1lbnQsIEFYTm90aWZpY2F0aW9uIG5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCBwb3N0VGFyZ2V0
KQogewotICAgIEFYVFJBQ0UoIkFYT2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24iKTsKKyAg
ICBBWFRSQUNFKCJBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0aW9uIl9zKTsKICAgICBBWExP
RyhzdGQ6Om1ha2VfcGFpcihvYmplY3QsIG5vdGlmaWNhdGlvbikpOwogICAgIEFTU0VSVChpc01h
aW5UaHJlYWQoKSk7CiAKQEAgLTEyNzMsNyArMTI3Myw3IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6
aGFuZGxlTWVudUl0ZW1TZWxlY3RlZChOb2RlKiBub2RlKQogICAgIGlmICghbm9kZSkKICAgICAg
ICAgcmV0dXJuOwogICAgIAotICAgIGlmICghbm9kZUhhc1JvbGUobm9kZSwgIm1lbnVpdGVtIikg
JiYgIW5vZGVIYXNSb2xlKG5vZGUsICJtZW51aXRlbXJhZGlvIikgJiYgIW5vZGVIYXNSb2xlKG5v
ZGUsICJtZW51aXRlbWNoZWNrYm94IikpCisgICAgaWYgKCFub2RlSGFzUm9sZShub2RlLCAibWVu
dWl0ZW0iX3MpICYmICFub2RlSGFzUm9sZShub2RlLCAibWVudWl0ZW1yYWRpbyJfcykgJiYgIW5v
ZGVIYXNSb2xlKG5vZGUsICJtZW51aXRlbWNoZWNrYm94Il9zKSkKICAgICAgICAgcmV0dXJuOwog
ICAgIAogICAgIGlmICghZG93bmNhc3Q8RWxlbWVudD4oKm5vZGUpLmZvY3VzZWQoKSAmJiAhZXF1
YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoZG93bmNhc3Q8RWxlbWVudD4oKm5vZGUpLmF0dHJp
YnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oYXJpYV9zZWxlY3RlZEF0dHIpLCAidHJ1ZSIpKQpA
QCAtMTM0Nyw4ICsxMzQ3LDggQEAgdm9pZCBBWE9iamVjdENhY2hlOjpzZWxlY3RlZFN0YXRlQ2hh
bmdlZChOb2RlKiBub2RlKQogewogICAgIC8vIEZvciBhIHRhYmxlIGNlbGwsIHBvc3QgQVhTZWxl
Y3RlZFN0YXRlQ2hhbmdlZCBvbiB0aGUgY2VsbCBpdHNlbGYuCiAgICAgLy8gRm9yIGFueSBvdGhl
ciBlbGVtZW50LCBwb3N0IEFYU2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQgb24gdGhlIHBhcmVudC4K
LSAgICBpZiAobm9kZUhhc1JvbGUobm9kZSwgImdyaWRjZWxsIikgfHwgbm9kZUhhc1JvbGUobm9k
ZSwgImNlbGwiKQotICAgICAgICB8fCBub2RlSGFzUm9sZShub2RlLCAiY29sdW1uaGVhZGVyIikg
fHwgbm9kZUhhc1JvbGUobm9kZSwgInJvd2hlYWRlciIpKQorICAgIGlmIChub2RlSGFzUm9sZShu
b2RlLCAiZ3JpZGNlbGwiX3MpIHx8IG5vZGVIYXNSb2xlKG5vZGUsICJjZWxsIl9zKQorICAgICAg
ICB8fCBub2RlSGFzUm9sZShub2RlLCAiY29sdW1uaGVhZGVyIl9zKSB8fCBub2RlSGFzUm9sZShu
b2RlLCAicm93aGVhZGVyIl9zKSkKICAgICAgICAgcG9zdE5vdGlmaWNhdGlvbihub2RlLCBBWFNl
bGVjdGVkU3RhdGVDaGFuZ2VkKTsKICAgICBlbHNlCiAgICAgICAgIHNlbGVjdGVkQ2hpbGRyZW5D
aGFuZ2VkKG5vZGUpOwpAQCAtMTU0Miw3ICsxNTQyLDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpw
b3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKGNvbnN0IFBvc2l0aW9uJiBwb3NpdGlvbiwg
Y28KIAogdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9u
KEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCwgY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQmIGludGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uKQogewotICAgIEFY
VFJBQ0UoIkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24iKTsK
KyAgICBBWFRSQUNFKCJBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0
aW9uIl9zKTsKICAgICBzdG9wQ2FjaGluZ0NvbXB1dGVkT2JqZWN0QXR0cmlidXRlcygpOwogCiAj
aWYgUExBVEZPUk0oQ09DT0EpIHx8IFVTRShBVFNQSSkKQEAgLTE1NzQsNyArMTU3NCw3IEBAIHZv
aWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihBY2Nlc3Np
YmlsaXR5T2JqZWN0KiBvYmplY3QsCiAKIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0
ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiBub2RlLCBBWFRleHRFZGl0VHlwZSB0eXBlLCBjb25z
dCBTdHJpbmcmIHRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCiB7Ci0gICAg
QVhUUkFDRSgiQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbiIp
OworICAgIEFYVFJBQ0UoIkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmlj
YXRpb24iX3MpOwogICAgIGlmICghbm9kZSB8fCB0eXBlID09IEFYVGV4dEVkaXRUeXBlVW5rbm93
bikKICAgICAgICAgcmV0dXJuOwogCkBAIC0xOTEyLDcgKzE5MTIsNyBAQCB2b2lkIEFYT2JqZWN0
Q2FjaGU6OmhhbmRsZUF0dHJpYnV0ZUNoYW5nZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFt
ZSwgRWxlbWVudAogCiB2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZU1vZGFsQ2hhbmdlKEVsZW1l
bnQmIGVsZW1lbnQpCiB7Ci0gICAgaWYgKCFpczxIVE1MRGlhbG9nRWxlbWVudD4oZWxlbWVudCkg
JiYgIW5vZGVIYXNSb2xlKCZlbGVtZW50LCAiZGlhbG9nIikgJiYgIW5vZGVIYXNSb2xlKCZlbGVt
ZW50LCAiYWxlcnRkaWFsb2ciKSkKKyAgICBpZiAoIWlzPEhUTUxEaWFsb2dFbGVtZW50PihlbGVt
ZW50KSAmJiAhbm9kZUhhc1JvbGUoJmVsZW1lbnQsICJkaWFsb2ciX3MpICYmICFub2RlSGFzUm9s
ZSgmZWxlbWVudCwgImFsZXJ0ZGlhbG9nIl9zKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgc3Rv
cENhY2hpbmdDb21wdXRlZE9iamVjdEF0dHJpYnV0ZXMoKTsKQEAgLTMyNzcsNyArMzI3Nyw3IEBA
IHZvaWQgQVhPYmplY3RDYWNoZTo6cHJvY2Vzc0RlZmVycmVkQ2hpbGRyZW5DaGFuZ2VkTGlzdCgp
CiAKIHZvaWQgQVhPYmplY3RDYWNoZTo6cGVyZm9ybURlZmVycmVkQ2FjaGVVcGRhdGUoKQogewot
ICAgIEFYVFJBQ0UoIkFYT2JqZWN0Q2FjaGU6OnBlcmZvcm1EZWZlcnJlZENhY2hlVXBkYXRlIik7
CisgICAgQVhUUkFDRSgiQVhPYmplY3RDYWNoZTo6cGVyZm9ybURlZmVycmVkQ2FjaGVVcGRhdGUi
X3MpOwogICAgIGlmIChtX3BlcmZvcm1pbmdEZWZlcnJlZENhY2hlVXBkYXRlKQogICAgICAgICBy
ZXR1cm47CiAgICAgU2V0Rm9yU2NvcGUgcGVyZm9ybWluZ0RlZmVycmVkQ2FjaGVVcGRhdGUobV9w
ZXJmb3JtaW5nRGVmZXJyZWRDYWNoZVVwZGF0ZSwgdHJ1ZSk7CkBAIC0zMzczLDcgKzMzNzMsNyBA
QCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnVwZGF0ZUlzb2xhdGVkVHJlZShBWENvcmVPYmplY3QmIG9i
amVjdCwgQVhOb3RpZmljYXRpb24gbm90aQogCiB2b2lkIEFYT2JqZWN0Q2FjaGU6OnVwZGF0ZUlz
b2xhdGVkVHJlZShjb25zdCBWZWN0b3I8c3RkOjpwYWlyPFJlZlB0cjxBWENvcmVPYmplY3Q+LCBB
WE5vdGlmaWNhdGlvbj4+JiBub3RpZmljYXRpb25zKQogewotICAgIEFYVFJBQ0UoIkFYT2JqZWN0
Q2FjaGU6OnVwZGF0ZUlzb2xhdGVkVHJlZSIpOworICAgIEFYVFJBQ0UoIkFYT2JqZWN0Q2FjaGU6
OnVwZGF0ZUlzb2xhdGVkVHJlZSJfcyk7CiAgICAgQVhMT0coKnRoaXMpOwogCiAgICAgaWYgKCFt
X3BhZ2VJRCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcAppbmRleCAxNDI5MTM3MmNmYzQ2YzFkZTIyZTgzOGNk
MjI1OWY3MDkzZmRhNDA4Li5iMmQ4YzQ5NzBmMmFkNmUzNDBlZGE1ZDczZjk0MWExMjg2NTZmMjNj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlO
b2RlT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlOb2RlT2JqZWN0LmNwcApAQCAtMjM3LDcgKzIzNyw3IEBAIERvY3VtZW50KiBBY2Nlc3Np
YmlsaXR5Tm9kZU9iamVjdDo6ZG9jdW1lbnQoKSBjb25zdAogCiBBY2Nlc3NpYmlsaXR5Um9sZSBB
Y2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6ZGV0ZXJtaW5lQWNjZXNzaWJpbGl0eVJvbGUoKQogewot
ICAgIEFYVFJBQ0UoIkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpkZXRlcm1pbmVBY2Nlc3NpYmls
aXR5Um9sZSIpOworICAgIEFYVFJBQ0UoIkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpkZXRlcm1p
bmVBY2Nlc3NpYmlsaXR5Um9sZSJfcyk7CiAgICAgaWYgKChtX2FyaWFSb2xlID0gZGV0ZXJtaW5l
QXJpYVJvbGVBdHRyaWJ1dGUoKSkgIT0gQWNjZXNzaWJpbGl0eVJvbGU6OlVua25vd24pCiAgICAg
ICAgIHJldHVybiBtX2FyaWFSb2xlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAppbmRleCAzNGYxNWYyNTY0NTYzZjljOTIz
MzU4MjFiZWFlZGZiMDk5NGI4YmFlLi5iZmJlNDJmM2Q4YzJkYzM3ZTllNzVmZDYzNjM2NDFmM2M5
NzkxZTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eU9iamVjdC5jcHAKQEAgLTE3MjksNyArMTcyOSw3IEBAIGJvb2wgQWNjZXNzaWJpbGl0
eU9iamVjdDo6c3VwcG9ydHNSZWFkT25seSgpIGNvbnN0CiBTdHJpbmcgQWNjZXNzaWJpbGl0eU9i
amVjdDo6cmVhZE9ubHlWYWx1ZSgpIGNvbnN0CiB7CiAgICAgaWYgKCFoYXNBdHRyaWJ1dGUoYXJp
YV9yZWFkb25seUF0dHIpKQotICAgICAgICByZXR1cm4gYXJpYVJvbGVBdHRyaWJ1dGUoKSAhPSBB
Y2Nlc3NpYmlsaXR5Um9sZTo6VW5rbm93biAmJiBzdXBwb3J0c1JlYWRPbmx5KCkgPyAiZmFsc2Ui
IDogU3RyaW5nKCk7CisgICAgICAgIHJldHVybiBhcmlhUm9sZUF0dHJpYnV0ZSgpICE9IEFjY2Vz
c2liaWxpdHlSb2xlOjpVbmtub3duICYmIHN1cHBvcnRzUmVhZE9ubHkoKSA/ICJmYWxzZSJfcyA6
IFN0cmluZygpOwogCiAgICAgcmV0dXJuIGdldEF0dHJpYnV0ZShhcmlhX3JlYWRvbmx5QXR0ciku
c3RyaW5nKCkuY29udmVydFRvQVNDSUlMb3dlcmNhc2UoKTsKIH0KQEAgLTE3NTcsNyArMTc1Nyw3
IEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5T2JqZWN0OjphdXRvQ29tcGxldGVWYWx1ZSgpIGNvbnN0
CiAgICAgICAgIHx8IGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGF1dG9Db21wbGV0ZSwg
ImJvdGgiKSkKICAgICAgICAgcmV0dXJuIGF1dG9Db21wbGV0ZTsKIAotICAgIHJldHVybiAibm9u
ZSI7CisgICAgcmV0dXJuICJub25lIl9zOwogfQogCiBib29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6
OmNvbnRlbnRFZGl0YWJsZUF0dHJpYnV0ZUlzRW5hYmxlZChFbGVtZW50KiBlbGVtZW50KQpAQCAt
MjIzMywyMCArMjIzMywyMCBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0eU9iamVjdDo6Y3VycmVudFZh
bHVlKCkgY29uc3QKIHsKICAgICBzd2l0Y2ggKGN1cnJlbnRTdGF0ZSgpKSB7CiAgICAgY2FzZSBB
Y2Nlc3NpYmlsaXR5Q3VycmVudFN0YXRlOjpGYWxzZToKLSAgICAgICAgcmV0dXJuICJmYWxzZSI7
CisgICAgICAgIHJldHVybiAiZmFsc2UiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Q3VycmVu
dFN0YXRlOjpQYWdlOgotICAgICAgICByZXR1cm4gInBhZ2UiOworICAgICAgICByZXR1cm4gInBh
Z2UiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Q3VycmVudFN0YXRlOjpTdGVwOgotICAgICAg
ICByZXR1cm4gInN0ZXAiOworICAgICAgICByZXR1cm4gInN0ZXAiX3M7CiAgICAgY2FzZSBBY2Nl
c3NpYmlsaXR5Q3VycmVudFN0YXRlOjpMb2NhdGlvbjoKLSAgICAgICAgcmV0dXJuICJsb2NhdGlv
biI7CisgICAgICAgIHJldHVybiAibG9jYXRpb24iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5
Q3VycmVudFN0YXRlOjpUaW1lOgotICAgICAgICByZXR1cm4gInRpbWUiOworICAgICAgICByZXR1
cm4gInRpbWUiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Q3VycmVudFN0YXRlOjpEYXRlOgot
ICAgICAgICByZXR1cm4gImRhdGUiOworICAgICAgICByZXR1cm4gImRhdGUiX3M7CiAgICAgZGVm
YXVsdDoKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlDdXJyZW50U3RhdGU6OlRydWU6Ci0gICAgICAg
IHJldHVybiAidHJ1ZSI7CisgICAgICAgIHJldHVybiAidHJ1ZSJfczsKICAgICB9CiB9CiAKQEAg
LTIzNTUsMTEgKzIzNTUsMTEgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpyZXBsYWNlVGV4
dEluUmFuZ2UoY29uc3QgU3RyaW5nJiByZXBsYWNlbWVudFN0cmluZywgY28KICAgICB9CiAgICAg
CiAgICAgaWYgKGlzPEhUTUxJbnB1dEVsZW1lbnQ+KGVsZW1lbnQpKSB7Ci0gICAgICAgIGRvd25j
YXN0PEhUTUxJbnB1dEVsZW1lbnQ+KGVsZW1lbnQpLnNldFJhbmdlVGV4dChyZXBsYWNlbWVudFN0
cmluZywgcmFuZ2Uuc3RhcnQsIHJhbmdlLmxlbmd0aCwgIiIpOworICAgICAgICBkb3duY2FzdDxI
VE1MSW5wdXRFbGVtZW50PihlbGVtZW50KS5zZXRSYW5nZVRleHQocmVwbGFjZW1lbnRTdHJpbmcs
IHJhbmdlLnN0YXJ0LCByYW5nZS5sZW5ndGgsIGVtcHR5U3RyaW5nKCkpOwogICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICB9CiAgICAgaWYgKGlzPEhUTUxUZXh0QXJlYUVsZW1lbnQ+KGVsZW1lbnQp
KSB7Ci0gICAgICAgIGRvd25jYXN0PEhUTUxUZXh0QXJlYUVsZW1lbnQ+KGVsZW1lbnQpLnNldFJh
bmdlVGV4dChyZXBsYWNlbWVudFN0cmluZywgcmFuZ2Uuc3RhcnQsIHJhbmdlLmxlbmd0aCwgIiIp
OworICAgICAgICBkb3duY2FzdDxIVE1MVGV4dEFyZWFFbGVtZW50PihlbGVtZW50KS5zZXRSYW5n
ZVRleHQocmVwbGFjZW1lbnRTdHJpbmcsIHJhbmdlLnN0YXJ0LCByYW5nZS5sZW5ndGgsIGVtcHR5
U3RyaW5nKCkpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKQEAgLTI1OTQsNyArMjU5
NCw3IEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojpjb21wdXRlZFJvbGVTdHJpbmcoKSBj
b25zdAogCiAgICAgLy8gV2UgZG8gbm90IGNvbXB1dGUgYSByb2xlIHN0cmluZyBmb3IgZ2VuZXJp
YyBibG9jayBlbGVtZW50cyB3aXRoIHVzZXItYWdlbnQgYXNzaWduZWQgcm9sZXMuCiAgICAgaWYg
KHJvbGUgPT0gQWNjZXNzaWJpbGl0eVJvbGU6Okdyb3VwIHx8IHJvbGUgPT0gQWNjZXNzaWJpbGl0
eVJvbGU6OlRleHRHcm91cCkKLSAgICAgICAgcmV0dXJuICIiOworICAgICAgICByZXR1cm4gZW1w
dHlTdHJpbmcoKTsKIAogICAgIC8vIFdlIGRvIGNvbXB1dGUgYSByb2xlIHN0cmluZyBmb3IgYmxv
Y2sgZWxlbWVudHMgd2l0aCBhdXRob3ItcHJvdmlkZWQgcm9sZXMuCiAgICAgaWYgKHJvbGUgPT0g
QWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uVGV4dEdyb3VwCkBAIC0yNzI1LDcgKzI3MjUs
NyBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0eU9iamVjdDo6cm9sZURlc2NyaXB0aW9uKCkgY29uc3QK
IAogYm9vbCBub2RlSGFzUHJlc2VudGF0aW9uUm9sZShOb2RlKiBub2RlKQogewotICAgIHJldHVy
biBub2RlSGFzUm9sZShub2RlLCAicHJlc2VudGF0aW9uIikgfHwgbm9kZUhhc1JvbGUobm9kZSwg
Im5vbmUiKTsKKyAgICByZXR1cm4gbm9kZUhhc1JvbGUobm9kZSwgInByZXNlbnRhdGlvbiJfcykg
fHwgbm9kZUhhc1JvbGUobm9kZSwgIm5vbmUiX3MpOwogfQogICAgIAogYm9vbCBBY2Nlc3NpYmls
aXR5T2JqZWN0OjpzdXBwb3J0c1ByZXNzQWN0aW9uKCkgY29uc3QKQEAgLTMyMTAsMTAgKzMyMTAs
MTAgQEAgSGFzaE1hcDxTdHJpbmcsIEFYRWRpdGluZ1N0eWxlVmFsdWVWYXJpYW50PiBBY2Nlc3Np
YmlsaXR5T2JqZWN0OjpyZXNvbHZlZEVkaXRpbmcKICAgICAgICAgcmV0dXJuIHsgfTsKIAogICAg
IEhhc2hNYXA8U3RyaW5nLCBBWEVkaXRpbmdTdHlsZVZhbHVlVmFyaWFudD4gc3R5bGVzOwotICAg
IHN0eWxlcy5hZGQoImJvbGQiLCBzZWxlY3Rpb25TdHlsZS0+aGFzU3R5bGUoQ1NTUHJvcGVydHlG
b250V2VpZ2h0LCAiYm9sZCIpKTsKLSAgICBzdHlsZXMuYWRkKCJpdGFsaWMiLCBzZWxlY3Rpb25T
dHlsZS0+aGFzU3R5bGUoQ1NTUHJvcGVydHlGb250U3R5bGUsICJpdGFsaWMiKSk7Ci0gICAgc3R5
bGVzLmFkZCgidW5kZXJsaW5lIiwgc2VsZWN0aW9uU3R5bGUtPmhhc1N0eWxlKENTU1Byb3BlcnR5
V2Via2l0VGV4dERlY29yYXRpb25zSW5FZmZlY3QsICJ1bmRlcmxpbmUiKSk7Ci0gICAgc3R5bGVz
LmFkZCgiZm9udHNpemUiLCBzZWxlY3Rpb25TdHlsZS0+bGVnYWN5Rm9udFNpemUoKmRvY3VtZW50
KSk7CisgICAgc3R5bGVzLmFkZCgiYm9sZCJfcywgc2VsZWN0aW9uU3R5bGUtPmhhc1N0eWxlKENT
U1Byb3BlcnR5Rm9udFdlaWdodCwgImJvbGQiX3MpKTsKKyAgICBzdHlsZXMuYWRkKCJpdGFsaWMi
X3MsIHNlbGVjdGlvblN0eWxlLT5oYXNTdHlsZShDU1NQcm9wZXJ0eUZvbnRTdHlsZSwgIml0YWxp
YyJfcykpOworICAgIHN0eWxlcy5hZGQoInVuZGVybGluZSJfcywgc2VsZWN0aW9uU3R5bGUtPmhh
c1N0eWxlKENTU1Byb3BlcnR5V2Via2l0VGV4dERlY29yYXRpb25zSW5FZmZlY3QsICJ1bmRlcmxp
bmUiX3MpKTsKKyAgICBzdHlsZXMuYWRkKCJmb250c2l6ZSJfcywgc2VsZWN0aW9uU3R5bGUtPmxl
Z2FjeUZvbnRTaXplKCpkb2N1bWVudCkpOwogICAgIHJldHVybiBzdHlsZXM7CiB9CiAKQEAgLTQw
ODgsNyArNDA4OCw3IEBAIHN0YXRpYyBib29sIGlzUmFkaW9CdXR0b25JbkRpZmZlcmVudEFkaG9j
R3JvdXAoUmVmUHRyPEFYQ29yZU9iamVjdD4gYXhPYmplY3QsIEFYCiAgICAgaWYgKCFyZWZlcmVu
Y2VPYmplY3QgfHwgIXJlZmVyZW5jZU9iamVjdC0+aXNSYWRpb0J1dHRvbigpKQogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKIAotICAgIHJldHVybiBheE9iamVjdC0+YXR0cmlidXRlVmFsdWUoIm5hbWUi
KSAhPSByZWZlcmVuY2VPYmplY3QtPmF0dHJpYnV0ZVZhbHVlKCJuYW1lIik7CisgICAgcmV0dXJu
IGF4T2JqZWN0LT5hdHRyaWJ1dGVWYWx1ZSgibmFtZSJfcykgIT0gcmVmZXJlbmNlT2JqZWN0LT5h
dHRyaWJ1dGVWYWx1ZSgibmFtZSJfcyk7CiB9CiAKIHN0YXRpYyBib29sIGlzQWNjZXNzaWJpbGl0
eU9iamVjdFNlYXJjaE1hdGNoQXRJbmRleChSZWZQdHI8QVhDb3JlT2JqZWN0PiBheE9iamVjdCwg
QWNjZXNzaWJpbGl0eVNlYXJjaENyaXRlcmlhIGNvbnN0JiBjcml0ZXJpYSwgc2l6ZV90IGluZGV4
KQpAQCAtNDI5NSw3ICs0Mjk1LDcgQEAgc3RhdGljIHZvaWQgYXBwZW5kQ2hpbGRyZW5Ub0FycmF5
KFJlZlB0cjxBWENvcmVPYmplY3Q+IG9iamVjdCwgYm9vbCBpc0ZvcndhcmQsIFIKIAogdm9pZCBm
aW5kTWF0Y2hpbmdPYmplY3RzKEFjY2Vzc2liaWxpdHlTZWFyY2hDcml0ZXJpYSBjb25zdCYgY3Jp
dGVyaWEsIEFYQ29yZU9iamVjdDo6QWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yJiByZXN1bHRz
KQogewotICAgIEFYVFJBQ0UoIkFjY2Vzc2liaWxpdHk6OmZpbmRNYXRjaGluZ09iamVjdHMiKTsK
KyAgICBBWFRSQUNFKCJBY2Nlc3NpYmlsaXR5OjpmaW5kTWF0Y2hpbmdPYmplY3RzIl9zKTsKICAg
ICBBWExPRyhjcml0ZXJpYSk7CiAKICAgICAvLyBUaGlzIHNlYXJjaCBhbGdvcml0aG0gb25seSBz
ZWFyY2hlcyB0aGUgZWxlbWVudHMgYmVmb3JlL2FmdGVyIHRoZSBzdGFydGluZyBvYmplY3QuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmpl
Y3RJbnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU9iamVjdEludGVyZmFjZS5oCmluZGV4IDQ2ZjYwMjgwMmE3NjIxYzA4NmY1MTQ1ZDBhNzBlY2U2
YmZiODI3Y2YuLmUwYmRkZDkzMWM0ZDI0MWVkNzc4MDQzZTliMjQxZjEyOWUzZmVkNzEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdElu
dGVyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU9iamVjdEludGVyZmFjZS5oCkBAIC0yNjQsMzEyICsyNjQsMzEyIEBAIEFMV0FZU19JTkxJTkUg
U3RyaW5nIGFjY2Vzc2liaWxpdHlSb2xlVG9TdHJpbmcoQWNjZXNzaWJpbGl0eVJvbGUgcm9sZSkK
IHsKICAgICBzd2l0Y2ggKHJvbGUpIHsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpBbm5v
dGF0aW9uOgotICAgICAgICByZXR1cm4gIkFubm90YXRpb24iOworICAgICAgICByZXR1cm4gIkFu
bm90YXRpb24iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb246Ci0g
ICAgICAgIHJldHVybiAiQXBwbGljYXRpb24iOworICAgICAgICByZXR1cm4gIkFwcGxpY2F0aW9u
Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uQWxlcnQ6Ci0gICAg
ICAgIHJldHVybiAiQXBwbGljYXRpb25BbGVydCI7CisgICAgICAgIHJldHVybiAiQXBwbGljYXRp
b25BbGVydCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvbkFsZXJ0
RGlhbG9nOgotICAgICAgICByZXR1cm4gIkFwcGxpY2F0aW9uQWxlcnREaWFsb2ciOworICAgICAg
ICByZXR1cm4gIkFwcGxpY2F0aW9uQWxlcnREaWFsb2ciX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmls
aXR5Um9sZTo6QXBwbGljYXRpb25EaWFsb2c6Ci0gICAgICAgIHJldHVybiAiQXBwbGljYXRpb25E
aWFsb2ciOworICAgICAgICByZXR1cm4gIkFwcGxpY2F0aW9uRGlhbG9nIl9zOwogICAgIGNhc2Ug
QWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uR3JvdXA6Ci0gICAgICAgIHJldHVybiAiQXBw
bGljYXRpb25Hcm91cCI7CisgICAgICAgIHJldHVybiAiQXBwbGljYXRpb25Hcm91cCJfczsKICAg
ICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvbkxvZzoKLSAgICAgICAgcmV0dXJu
ICJBcHBsaWNhdGlvbkxvZyI7CisgICAgICAgIHJldHVybiAiQXBwbGljYXRpb25Mb2ciX3M7CiAg
ICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb25NYXJxdWVlOgotICAgICAgICBy
ZXR1cm4gIkFwcGxpY2F0aW9uTWFycXVlZSI7CisgICAgICAgIHJldHVybiAiQXBwbGljYXRpb25N
YXJxdWVlIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uU3RhdHVz
OgotICAgICAgICByZXR1cm4gIkFwcGxpY2F0aW9uU3RhdHVzIjsKKyAgICAgICAgcmV0dXJuICJB
cHBsaWNhdGlvblN0YXR1cyJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNh
dGlvblRleHRHcm91cDoKLSAgICAgICAgcmV0dXJuICJBcHBsaWNhdGlvblRleHRHcm91cCI7Cisg
ICAgICAgIHJldHVybiAiQXBwbGljYXRpb25UZXh0R3JvdXAiX3M7CiAgICAgY2FzZSBBY2Nlc3Np
YmlsaXR5Um9sZTo6QXBwbGljYXRpb25UaW1lcjoKLSAgICAgICAgcmV0dXJuICJBcHBsaWNhdGlv
blRpbWVyIjsKKyAgICAgICAgcmV0dXJuICJBcHBsaWNhdGlvblRpbWVyIl9zOwogICAgIGNhc2Ug
QWNjZXNzaWJpbGl0eVJvbGU6OkF1ZGlvOgotICAgICAgICByZXR1cm4gIkF1ZGlvIjsKKyAgICAg
ICAgcmV0dXJuICJBdWRpbyJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpCbG9ja3F1
b3RlOgotICAgICAgICByZXR1cm4gIkJsb2NrcXVvdGUiOworICAgICAgICByZXR1cm4gIkJsb2Nr
cXVvdGUiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QnJvd3NlcjoKLSAgICAgICAg
cmV0dXJuICJCcm93c2VyIjsKKyAgICAgICAgcmV0dXJuICJCcm93c2VyIl9zOwogICAgIGNhc2Ug
QWNjZXNzaWJpbGl0eVJvbGU6OkJ1c3lJbmRpY2F0b3I6Ci0gICAgICAgIHJldHVybiAiQnVzeUlu
ZGljYXRvciI7CisgICAgICAgIHJldHVybiAiQnVzeUluZGljYXRvciJfczsKICAgICBjYXNlIEFj
Y2Vzc2liaWxpdHlSb2xlOjpCdXR0b246Ci0gICAgICAgIHJldHVybiAiQnV0dG9uIjsKKyAgICAg
ICAgcmV0dXJuICJCdXR0b24iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6Q2FudmFz
OgotICAgICAgICByZXR1cm4gIkNhbnZhcyI7CisgICAgICAgIHJldHVybiAiQ2FudmFzIl9zOwog
ICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkNhcHRpb246Ci0gICAgICAgIHJldHVybiAiQ2Fw
dGlvbiI7CisgICAgICAgIHJldHVybiAiQ2FwdGlvbiJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxp
dHlSb2xlOjpDZWxsOgotICAgICAgICByZXR1cm4gIkNlbGwiOworICAgICAgICByZXR1cm4gIkNl
bGwiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6Q2hlY2tCb3g6Ci0gICAgICAgIHJl
dHVybiAiQ2hlY2tCb3giOworICAgICAgICByZXR1cm4gIkNoZWNrQm94Il9zOwogICAgIGNhc2Ug
QWNjZXNzaWJpbGl0eVJvbGU6OkNvbG9yV2VsbDoKLSAgICAgICAgcmV0dXJuICJDb2xvcldlbGwi
OworICAgICAgICByZXR1cm4gIkNvbG9yV2VsbCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlS
b2xlOjpDb2x1bW46Ci0gICAgICAgIHJldHVybiAiQ29sdW1uIjsKKyAgICAgICAgcmV0dXJuICJD
b2x1bW4iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6Q29sdW1uSGVhZGVyOgotICAg
ICAgICByZXR1cm4gIkNvbHVtbkhlYWRlciI7CisgICAgICAgIHJldHVybiAiQ29sdW1uSGVhZGVy
Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkNvbWJvQm94OgotICAgICAgICByZXR1
cm4gIkNvbWJvQm94IjsKKyAgICAgICAgcmV0dXJuICJDb21ib0JveCJfczsKICAgICBjYXNlIEFj
Y2Vzc2liaWxpdHlSb2xlOjpEZWZpbml0aW9uOgotICAgICAgICByZXR1cm4gIkRlZmluaXRpb24i
OworICAgICAgICByZXR1cm4gIkRlZmluaXRpb24iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5
Um9sZTo6RGVsZXRpb246Ci0gICAgICAgIHJldHVybiAiRGVsZXRpb24iOworICAgICAgICByZXR1
cm4gIkRlbGV0aW9uIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRlc2NyaXB0aW9u
TGlzdDoKLSAgICAgICAgcmV0dXJuICJEZXNjcmlwdGlvbkxpc3QiOworICAgICAgICByZXR1cm4g
IkRlc2NyaXB0aW9uTGlzdCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpEZXNjcmlw
dGlvbkxpc3RUZXJtOgotICAgICAgICByZXR1cm4gIkRlc2NyaXB0aW9uTGlzdFRlcm0iOworICAg
ICAgICByZXR1cm4gIkRlc2NyaXB0aW9uTGlzdFRlcm0iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmls
aXR5Um9sZTo6RGVzY3JpcHRpb25MaXN0RGV0YWlsOgotICAgICAgICByZXR1cm4gIkRlc2NyaXB0
aW9uTGlzdERldGFpbCI7CisgICAgICAgIHJldHVybiAiRGVzY3JpcHRpb25MaXN0RGV0YWlsIl9z
OwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRldGFpbHM6Ci0gICAgICAgIHJldHVybiAi
RGV0YWlscyI7CisgICAgICAgIHJldHVybiAiRGV0YWlscyJfczsKICAgICBjYXNlIEFjY2Vzc2li
aWxpdHlSb2xlOjpEaXJlY3Rvcnk6Ci0gICAgICAgIHJldHVybiAiRGlyZWN0b3J5IjsKKyAgICAg
ICAgcmV0dXJuICJEaXJlY3RvcnkiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RGlz
Y2xvc3VyZVRyaWFuZ2xlOgotICAgICAgICByZXR1cm4gIkRpc2Nsb3N1cmVUcmlhbmdsZSI7Cisg
ICAgICAgIHJldHVybiAiRGlzY2xvc3VyZVRyaWFuZ2xlIl9zOwogICAgIGNhc2UgQWNjZXNzaWJp
bGl0eVJvbGU6OkRpdjoKLSAgICAgICAgcmV0dXJuICJEaXYiOworICAgICAgICByZXR1cm4gIkRp
diJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpEb2N1bWVudDoKLSAgICAgICAgcmV0
dXJuICJEb2N1bWVudCI7CisgICAgICAgIHJldHVybiAiRG9jdW1lbnQiX3M7CiAgICAgY2FzZSBB
Y2Nlc3NpYmlsaXR5Um9sZTo6RG9jdW1lbnRBcnRpY2xlOgotICAgICAgICByZXR1cm4gIkRvY3Vt
ZW50QXJ0aWNsZSI7CisgICAgICAgIHJldHVybiAiRG9jdW1lbnRBcnRpY2xlIl9zOwogICAgIGNh
c2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRvY3VtZW50TWF0aDoKLSAgICAgICAgcmV0dXJuICJEb2N1
bWVudE1hdGgiOworICAgICAgICByZXR1cm4gIkRvY3VtZW50TWF0aCJfczsKICAgICBjYXNlIEFj
Y2Vzc2liaWxpdHlSb2xlOjpEb2N1bWVudE5vdGU6Ci0gICAgICAgIHJldHVybiAiRG9jdW1lbnRO
b3RlIjsKKyAgICAgICAgcmV0dXJuICJEb2N1bWVudE5vdGUiX3M7CiAgICAgY2FzZSBBY2Nlc3Np
YmlsaXR5Um9sZTo6RHJhd2VyOgotICAgICAgICByZXR1cm4gIkRyYXdlciI7CisgICAgICAgIHJl
dHVybiAiRHJhd2VyIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkVkaXRhYmxlVGV4
dDoKLSAgICAgICAgcmV0dXJuICJFZGl0YWJsZVRleHQiOworICAgICAgICByZXR1cm4gIkVkaXRh
YmxlVGV4dCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpGZWVkOgotICAgICAgICBy
ZXR1cm4gIkZlZWQiOworICAgICAgICByZXR1cm4gIkZlZWQiX3M7CiAgICAgY2FzZSBBY2Nlc3Np
YmlsaXR5Um9sZTo6RmlndXJlOgotICAgICAgICByZXR1cm4gIkZpZ3VyZSI7CisgICAgICAgIHJl
dHVybiAiRmlndXJlIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkZvb3RlcjoKLSAg
ICAgICAgcmV0dXJuICJGb290ZXIiOworICAgICAgICByZXR1cm4gIkZvb3RlciJfczsKICAgICBj
YXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpGb290bm90ZToKLSAgICAgICAgcmV0dXJuICJGb290bm90
ZSI7CisgICAgICAgIHJldHVybiAiRm9vdG5vdGUiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5
Um9sZTo6Rm9ybToKLSAgICAgICAgcmV0dXJuICJGb3JtIjsKKyAgICAgICAgcmV0dXJuICJGb3Jt
Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkdyYXBoaWNzRG9jdW1lbnQ6Ci0gICAg
ICAgIHJldHVybiAiR3JhcGhpY3NEb2N1bWVudCI7CisgICAgICAgIHJldHVybiAiR3JhcGhpY3NE
b2N1bWVudCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpHcmFwaGljc09iamVjdDoK
LSAgICAgICAgcmV0dXJuICJHcmFwaGljc09iamVjdCI7CisgICAgICAgIHJldHVybiAiR3JhcGhp
Y3NPYmplY3QiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6R3JhcGhpY3NTeW1ib2w6
Ci0gICAgICAgIHJldHVybiAiR3JhcGhpY3NTeW1ib2wiOworICAgICAgICByZXR1cm4gIkdyYXBo
aWNzU3ltYm9sIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkdyaWQ6Ci0gICAgICAg
IHJldHVybiAiR3JpZCI7CisgICAgICAgIHJldHVybiAiR3JpZCJfczsKICAgICBjYXNlIEFjY2Vz
c2liaWxpdHlSb2xlOjpHcmlkQ2VsbDoKLSAgICAgICAgcmV0dXJuICJHcmlkQ2VsbCI7CisgICAg
ICAgIHJldHVybiAiR3JpZENlbGwiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6R3Jv
dXA6Ci0gICAgICAgIHJldHVybiAiR3JvdXAiOworICAgICAgICByZXR1cm4gIkdyb3VwIl9zOwog
ICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Okdyb3dBcmVhOgotICAgICAgICByZXR1cm4gIkdy
b3dBcmVhIjsKKyAgICAgICAgcmV0dXJuICJHcm93QXJlYSJfczsKICAgICBjYXNlIEFjY2Vzc2li
aWxpdHlSb2xlOjpIZWFkaW5nOgotICAgICAgICByZXR1cm4gIkhlYWRpbmciOworICAgICAgICBy
ZXR1cm4gIkhlYWRpbmciX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6SGVscFRhZzoK
LSAgICAgICAgcmV0dXJuICJIZWxwVGFnIjsKKyAgICAgICAgcmV0dXJuICJIZWxwVGFnIl9zOwog
ICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Okhvcml6b250YWxSdWxlOgotICAgICAgICByZXR1
cm4gIkhvcml6b250YWxSdWxlIjsKKyAgICAgICAgcmV0dXJuICJIb3Jpem9udGFsUnVsZSJfczsK
ICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpJZ25vcmVkOgotICAgICAgICByZXR1cm4gIkln
bm9yZWQiOworICAgICAgICByZXR1cm4gIklnbm9yZWQiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmls
aXR5Um9sZTo6SW5saW5lOgotICAgICAgICByZXR1cm4gIklubGluZSI7CisgICAgICAgIHJldHVy
biAiSW5saW5lIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkltYWdlOgotICAgICAg
ICByZXR1cm4gIkltYWdlIjsKKyAgICAgICAgcmV0dXJuICJJbWFnZSJfczsKICAgICBjYXNlIEFj
Y2Vzc2liaWxpdHlSb2xlOjpJbWFnZU1hcDoKLSAgICAgICAgcmV0dXJuICJJbWFnZU1hcCI7Cisg
ICAgICAgIHJldHVybiAiSW1hZ2VNYXAiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6
SW1hZ2VNYXBMaW5rOgotICAgICAgICByZXR1cm4gIkltYWdlTWFwTGluayI7CisgICAgICAgIHJl
dHVybiAiSW1hZ2VNYXBMaW5rIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkluY3Jl
bWVudG9yOgotICAgICAgICByZXR1cm4gIkluY3JlbWVudG9yIjsKKyAgICAgICAgcmV0dXJuICJJ
bmNyZW1lbnRvciJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpJbnNlcnRpb246Ci0g
ICAgICAgIHJldHVybiAiSW5zZXJ0aW9uIjsKKyAgICAgICAgcmV0dXJuICJJbnNlcnRpb24iX3M7
CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFiZWw6Ci0gICAgICAgIHJldHVybiAiTGFi
ZWwiOworICAgICAgICByZXR1cm4gIkxhYmVsIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJv
bGU6OkxhbmRtYXJrQmFubmVyOgotICAgICAgICByZXR1cm4gIkxhbmRtYXJrQmFubmVyIjsKKyAg
ICAgICAgcmV0dXJuICJMYW5kbWFya0Jhbm5lciJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlS
b2xlOjpMYW5kbWFya0NvbXBsZW1lbnRhcnk6Ci0gICAgICAgIHJldHVybiAiTGFuZG1hcmtDb21w
bGVtZW50YXJ5IjsKKyAgICAgICAgcmV0dXJuICJMYW5kbWFya0NvbXBsZW1lbnRhcnkiX3M7CiAg
ICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtDb250ZW50SW5mbzoKLSAgICAgICAg
cmV0dXJuICJMYW5kbWFya0NvbnRlbnRJbmZvIjsKKyAgICAgICAgcmV0dXJuICJMYW5kbWFya0Nv
bnRlbnRJbmZvIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJrRG9jUmVn
aW9uOgotICAgICAgICByZXR1cm4gIkxhbmRtYXJrRG9jUmVnaW9uIjsKKyAgICAgICAgcmV0dXJu
ICJMYW5kbWFya0RvY1JlZ2lvbiJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpMYW5k
bWFya01haW46Ci0gICAgICAgIHJldHVybiAiTGFuZG1hcmtNYWluIjsKKyAgICAgICAgcmV0dXJu
ICJMYW5kbWFya01haW4iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtO
YXZpZ2F0aW9uOgotICAgICAgICByZXR1cm4gIkxhbmRtYXJrTmF2aWdhdGlvbiI7CisgICAgICAg
IHJldHVybiAiTGFuZG1hcmtOYXZpZ2F0aW9uIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJv
bGU6OkxhbmRtYXJrUmVnaW9uOgotICAgICAgICByZXR1cm4gIkxhbmRtYXJrUmVnaW9uIjsKKyAg
ICAgICAgcmV0dXJuICJMYW5kbWFya1JlZ2lvbiJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlS
b2xlOjpMYW5kbWFya1NlYXJjaDoKLSAgICAgICAgcmV0dXJuICJMYW5kbWFya1NlYXJjaCI7Cisg
ICAgICAgIHJldHVybiAiTGFuZG1hcmtTZWFyY2giX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5
Um9sZTo6TGVnZW5kOgotICAgICAgICByZXR1cm4gIkxlZ2VuZCI7CisgICAgICAgIHJldHVybiAi
TGVnZW5kIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Okxpbms6Ci0gICAgICAgIHJl
dHVybiAiTGluayI7CisgICAgICAgIHJldHVybiAiTGluayJfczsKICAgICBjYXNlIEFjY2Vzc2li
aWxpdHlSb2xlOjpMaXN0OgotICAgICAgICByZXR1cm4gIkxpc3QiOworICAgICAgICByZXR1cm4g
Ikxpc3QiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGlzdEJveDoKLSAgICAgICAg
cmV0dXJuICJMaXN0Qm94IjsKKyAgICAgICAgcmV0dXJuICJMaXN0Qm94Il9zOwogICAgIGNhc2Ug
QWNjZXNzaWJpbGl0eVJvbGU6Okxpc3RCb3hPcHRpb246Ci0gICAgICAgIHJldHVybiAiTGlzdEJv
eE9wdGlvbiI7CisgICAgICAgIHJldHVybiAiTGlzdEJveE9wdGlvbiJfczsKICAgICBjYXNlIEFj
Y2Vzc2liaWxpdHlSb2xlOjpMaXN0SXRlbToKLSAgICAgICAgcmV0dXJuICJMaXN0SXRlbSI7Cisg
ICAgICAgIHJldHVybiAiTGlzdEl0ZW0iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6
TGlzdE1hcmtlcjoKLSAgICAgICAgcmV0dXJuICJMaXN0TWFya2VyIjsKKyAgICAgICAgcmV0dXJu
ICJMaXN0TWFya2VyIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Ok1hcms6Ci0gICAg
ICAgIHJldHVybiAiTWFyayI7CisgICAgICAgIHJldHVybiAiTWFyayJfczsKICAgICBjYXNlIEFj
Y2Vzc2liaWxpdHlSb2xlOjpNYXRoRWxlbWVudDoKLSAgICAgICAgcmV0dXJuICJNYXRoRWxlbWVu
dCI7CisgICAgICAgIHJldHVybiAiTWF0aEVsZW1lbnQiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmls
aXR5Um9sZTo6TWF0dGU6Ci0gICAgICAgIHJldHVybiAiTWF0dGUiOworICAgICAgICByZXR1cm4g
Ik1hdHRlIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Ok1lbnU6Ci0gICAgICAgIHJl
dHVybiAiTWVudSI7CisgICAgICAgIHJldHVybiAiTWVudSJfczsKICAgICBjYXNlIEFjY2Vzc2li
aWxpdHlSb2xlOjpNZW51QmFyOgotICAgICAgICByZXR1cm4gIk1lbnVCYXIiOworICAgICAgICBy
ZXR1cm4gIk1lbnVCYXIiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TWVudUJ1dHRv
bjoKLSAgICAgICAgcmV0dXJuICJNZW51QnV0dG9uIjsKKyAgICAgICAgcmV0dXJuICJNZW51QnV0
dG9uIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Ok1lbnVJdGVtOgotICAgICAgICBy
ZXR1cm4gIk1lbnVJdGVtIjsKKyAgICAgICAgcmV0dXJuICJNZW51SXRlbSJfczsKICAgICBjYXNl
IEFjY2Vzc2liaWxpdHlSb2xlOjpNZW51SXRlbUNoZWNrYm94OgotICAgICAgICByZXR1cm4gIk1l
bnVJdGVtQ2hlY2tib3giOworICAgICAgICByZXR1cm4gIk1lbnVJdGVtQ2hlY2tib3giX3M7CiAg
ICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TWVudUl0ZW1SYWRpbzoKLSAgICAgICAgcmV0dXJu
ICJNZW51SXRlbVJhZGlvIjsKKyAgICAgICAgcmV0dXJuICJNZW51SXRlbVJhZGlvIl9zOwogICAg
IGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Ok1lbnVMaXN0UG9wdXA6Ci0gICAgICAgIHJldHVybiAi
TWVudUxpc3RQb3B1cCI7CisgICAgICAgIHJldHVybiAiTWVudUxpc3RQb3B1cCJfczsKICAgICBj
YXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpNZW51TGlzdE9wdGlvbjoKLSAgICAgICAgcmV0dXJuICJN
ZW51TGlzdE9wdGlvbiI7CisgICAgICAgIHJldHVybiAiTWVudUxpc3RPcHRpb24iX3M7CiAgICAg
Y2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TWV0ZXI6Ci0gICAgICAgIHJldHVybiAiTWV0ZXIiOwor
ICAgICAgICByZXR1cm4gIk1ldGVyIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Ok1v
ZGVsOgotICAgICAgICByZXR1cm4gIk1vZGVsIjsKKyAgICAgICAgcmV0dXJuICJNb2RlbCJfczsK
ICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpPdXRsaW5lOgotICAgICAgICByZXR1cm4gIk91
dGxpbmUiOworICAgICAgICByZXR1cm4gIk91dGxpbmUiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmls
aXR5Um9sZTo6UGFyYWdyYXBoOgotICAgICAgICByZXR1cm4gIlBhcmFncmFwaCI7CisgICAgICAg
IHJldHVybiAiUGFyYWdyYXBoIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlBvcFVw
QnV0dG9uOgotICAgICAgICByZXR1cm4gIlBvcFVwQnV0dG9uIjsKKyAgICAgICAgcmV0dXJuICJQ
b3BVcEJ1dHRvbiJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpQcmU6Ci0gICAgICAg
IHJldHVybiAiUHJlIjsKKyAgICAgICAgcmV0dXJuICJQcmUiX3M7CiAgICAgY2FzZSBBY2Nlc3Np
YmlsaXR5Um9sZTo6UHJlc2VudGF0aW9uYWw6Ci0gICAgICAgIHJldHVybiAiUHJlc2VudGF0aW9u
YWwiOworICAgICAgICByZXR1cm4gIlByZXNlbnRhdGlvbmFsIl9zOwogICAgIGNhc2UgQWNjZXNz
aWJpbGl0eVJvbGU6OlByb2dyZXNzSW5kaWNhdG9yOgotICAgICAgICByZXR1cm4gIlByb2dyZXNz
SW5kaWNhdG9yIjsKKyAgICAgICAgcmV0dXJuICJQcm9ncmVzc0luZGljYXRvciJfczsKICAgICBj
YXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpSYWRpb0J1dHRvbjoKLSAgICAgICAgcmV0dXJuICJSYWRp
b0J1dHRvbiI7CisgICAgICAgIHJldHVybiAiUmFkaW9CdXR0b24iX3M7CiAgICAgY2FzZSBBY2Nl
c3NpYmlsaXR5Um9sZTo6UmFkaW9Hcm91cDoKLSAgICAgICAgcmV0dXJuICJSYWRpb0dyb3VwIjsK
KyAgICAgICAgcmV0dXJuICJSYWRpb0dyb3VwIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJv
bGU6OlJvd0hlYWRlcjoKLSAgICAgICAgcmV0dXJuICJSb3dIZWFkZXIiOworICAgICAgICByZXR1
cm4gIlJvd0hlYWRlciJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpSb3c6Ci0gICAg
ICAgIHJldHVybiAiUm93IjsKKyAgICAgICAgcmV0dXJuICJSb3ciX3M7CiAgICAgY2FzZSBBY2Nl
c3NpYmlsaXR5Um9sZTo6Um93R3JvdXA6Ci0gICAgICAgIHJldHVybiAiUm93R3JvdXAiOworICAg
ICAgICByZXR1cm4gIlJvd0dyb3VwIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlJ1
YnlCYXNlOgotICAgICAgICByZXR1cm4gIlJ1YnlCYXNlIjsKKyAgICAgICAgcmV0dXJuICJSdWJ5
QmFzZSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpSdWJ5QmxvY2s6Ci0gICAgICAg
IHJldHVybiAiUnVieUJsb2NrIjsKKyAgICAgICAgcmV0dXJuICJSdWJ5QmxvY2siX3M7CiAgICAg
Y2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6UnVieUlubGluZToKLSAgICAgICAgcmV0dXJuICJSdWJ5
SW5saW5lIjsKKyAgICAgICAgcmV0dXJuICJSdWJ5SW5saW5lIl9zOwogICAgIGNhc2UgQWNjZXNz
aWJpbGl0eVJvbGU6OlJ1YnlSdW46Ci0gICAgICAgIHJldHVybiAiUnVieVJ1biI7CisgICAgICAg
IHJldHVybiAiUnVieVJ1biJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpSdWJ5VGV4
dDoKLSAgICAgICAgcmV0dXJuICJSdWJ5VGV4dCI7CisgICAgICAgIHJldHVybiAiUnVieVRleHQi
X3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6UnVsZXI6Ci0gICAgICAgIHJldHVybiAi
UnVsZXIiOworICAgICAgICByZXR1cm4gIlJ1bGVyIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0
eVJvbGU6OlJ1bGVyTWFya2VyOgotICAgICAgICByZXR1cm4gIlJ1bGVyTWFya2VyIjsKKyAgICAg
ICAgcmV0dXJuICJSdWxlck1hcmtlciJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpT
Y3JvbGxBcmVhOgotICAgICAgICByZXR1cm4gIlNjcm9sbEFyZWEiOworICAgICAgICByZXR1cm4g
IlNjcm9sbEFyZWEiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6U2Nyb2xsQmFyOgot
ICAgICAgICByZXR1cm4gIlNjcm9sbEJhciI7CisgICAgICAgIHJldHVybiAiU2Nyb2xsQmFyIl9z
OwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlNlYXJjaEZpZWxkOgotICAgICAgICByZXR1
cm4gIlNlYXJjaEZpZWxkIjsKKyAgICAgICAgcmV0dXJuICJTZWFyY2hGaWVsZCJfczsKICAgICBj
YXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpTaGVldDoKLSAgICAgICAgcmV0dXJuICJTaGVldCI7Cisg
ICAgICAgIHJldHVybiAiU2hlZXQiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6U2xp
ZGVyOgotICAgICAgICByZXR1cm4gIlNsaWRlciI7CisgICAgICAgIHJldHVybiAiU2xpZGVyIl9z
OwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlNsaWRlclRodW1iOgotICAgICAgICByZXR1
cm4gIlNsaWRlclRodW1iIjsKKyAgICAgICAgcmV0dXJuICJTbGlkZXJUaHVtYiJfczsKICAgICBj
YXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpTcGluQnV0dG9uOgotICAgICAgICByZXR1cm4gIlNwaW5C
dXR0b24iOworICAgICAgICByZXR1cm4gIlNwaW5CdXR0b24iX3M7CiAgICAgY2FzZSBBY2Nlc3Np
YmlsaXR5Um9sZTo6U3BpbkJ1dHRvblBhcnQ6Ci0gICAgICAgIHJldHVybiAiU3BpbkJ1dHRvblBh
cnQiOworICAgICAgICByZXR1cm4gIlNwaW5CdXR0b25QYXJ0Il9zOwogICAgIGNhc2UgQWNjZXNz
aWJpbGl0eVJvbGU6OlNwbGl0R3JvdXA6Ci0gICAgICAgIHJldHVybiAiU3BsaXRHcm91cCI7Cisg
ICAgICAgIHJldHVybiAiU3BsaXRHcm91cCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xl
OjpTcGxpdHRlcjoKLSAgICAgICAgcmV0dXJuICJTcGxpdHRlciI7CisgICAgICAgIHJldHVybiAi
U3BsaXR0ZXIiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6U3RhdGljVGV4dDoKLSAg
ICAgICAgcmV0dXJuICJTdGF0aWNUZXh0IjsKKyAgICAgICAgcmV0dXJuICJTdGF0aWNUZXh0Il9z
OwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlN1YnNjcmlwdDoKLSAgICAgICAgcmV0dXJu
ICJTdWJzY3JpcHQiOworICAgICAgICByZXR1cm4gIlN1YnNjcmlwdCJfczsKICAgICBjYXNlIEFj
Y2Vzc2liaWxpdHlSb2xlOjpTdW1tYXJ5OgotICAgICAgICByZXR1cm4gIlN1bW1hcnkiOworICAg
ICAgICByZXR1cm4gIlN1bW1hcnkiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6U3Vw
ZXJzY3JpcHQ6Ci0gICAgICAgIHJldHVybiAiU3VwZXJzY3JpcHQiOworICAgICAgICByZXR1cm4g
IlN1cGVyc2NyaXB0Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlN3aXRjaDoKLSAg
ICAgICAgcmV0dXJuICJTd2l0Y2giOworICAgICAgICByZXR1cm4gIlN3aXRjaCJfczsKICAgICBj
YXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpTeXN0ZW1XaWRlOgotICAgICAgICByZXR1cm4gIlN5c3Rl
bVdpZGUiOworICAgICAgICByZXR1cm4gIlN5c3RlbVdpZGUiX3M7CiAgICAgY2FzZSBBY2Nlc3Np
YmlsaXR5Um9sZTo6U1ZHUm9vdDoKLSAgICAgICAgcmV0dXJuICJTVkdSb290IjsKKyAgICAgICAg
cmV0dXJuICJTVkdSb290Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlNWR1RleHQ6
Ci0gICAgICAgIHJldHVybiAiU1ZHVGV4dCI7CisgICAgICAgIHJldHVybiAiU1ZHVGV4dCJfczsK
ICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpTVkdUU3BhbjoKLSAgICAgICAgcmV0dXJuICJT
VkdUU3BhbiI7CisgICAgICAgIHJldHVybiAiU1ZHVFNwYW4iX3M7CiAgICAgY2FzZSBBY2Nlc3Np
YmlsaXR5Um9sZTo6U1ZHVGV4dFBhdGg6Ci0gICAgICAgIHJldHVybiAiU1ZHVGV4dFBhdGgiOwor
ICAgICAgICByZXR1cm4gIlNWR1RleHRQYXRoIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJv
bGU6OlRhYkdyb3VwOgotICAgICAgICByZXR1cm4gIlRhYkdyb3VwIjsKKyAgICAgICAgcmV0dXJu
ICJUYWJHcm91cCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpUYWJMaXN0OgotICAg
ICAgICByZXR1cm4gIlRhYkxpc3QiOworICAgICAgICByZXR1cm4gIlRhYkxpc3QiX3M7CiAgICAg
Y2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VGFiUGFuZWw6Ci0gICAgICAgIHJldHVybiAiVGFiUGFu
ZWwiOworICAgICAgICByZXR1cm4gIlRhYlBhbmVsIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0
eVJvbGU6OlRhYjoKLSAgICAgICAgcmV0dXJuICJUYWIiOworICAgICAgICByZXR1cm4gIlRhYiJf
czsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpUYWJsZToKLSAgICAgICAgcmV0dXJuICJU
YWJsZSI7CisgICAgICAgIHJldHVybiAiVGFibGUiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5
Um9sZTo6VGFibGVIZWFkZXJDb250YWluZXI6Ci0gICAgICAgIHJldHVybiAiVGFibGVIZWFkZXJD
b250YWluZXIiOworICAgICAgICByZXR1cm4gIlRhYmxlSGVhZGVyQ29udGFpbmVyIl9zOwogICAg
IGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlRlcm06Ci0gICAgICAgIHJldHVybiAiVGVybSI7Cisg
ICAgICAgIHJldHVybiAiVGVybSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpUZXh0
QXJlYToKLSAgICAgICAgcmV0dXJuICJUZXh0QXJlYSI7CisgICAgICAgIHJldHVybiAiVGV4dEFy
ZWEiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VGV4dEZpZWxkOgotICAgICAgICBy
ZXR1cm4gIlRleHRGaWVsZCI7CisgICAgICAgIHJldHVybiAiVGV4dEZpZWxkIl9zOwogICAgIGNh
c2UgQWNjZXNzaWJpbGl0eVJvbGU6OlRleHRHcm91cDoKLSAgICAgICAgcmV0dXJuICJUZXh0R3Jv
dXAiOworICAgICAgICByZXR1cm4gIlRleHRHcm91cCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxp
dHlSb2xlOjpUaW1lOgotICAgICAgICByZXR1cm4gIlRpbWUiOworICAgICAgICByZXR1cm4gIlRp
bWUiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VHJlZToKLSAgICAgICAgcmV0dXJu
ICJUcmVlIjsKKyAgICAgICAgcmV0dXJuICJUcmVlIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0
eVJvbGU6OlRyZWVHcmlkOgotICAgICAgICByZXR1cm4gIlRyZWVHcmlkIjsKKyAgICAgICAgcmV0
dXJuICJUcmVlR3JpZCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpUcmVlSXRlbToK
LSAgICAgICAgcmV0dXJuICJUcmVlSXRlbSI7CisgICAgICAgIHJldHVybiAiVHJlZUl0ZW0iX3M7
CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VG9nZ2xlQnV0dG9uOgotICAgICAgICByZXR1
cm4gIlRvZ2dsZUJ1dHRvbiI7CisgICAgICAgIHJldHVybiAiVG9nZ2xlQnV0dG9uIl9zOwogICAg
IGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlRvb2xiYXI6Ci0gICAgICAgIHJldHVybiAiVG9vbGJh
ciI7CisgICAgICAgIHJldHVybiAiVG9vbGJhciJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlS
b2xlOjpVbmtub3duOgotICAgICAgICByZXR1cm4gIlVua25vd24iOworICAgICAgICByZXR1cm4g
IlVua25vd24iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VXNlckludGVyZmFjZVRv
b2x0aXA6Ci0gICAgICAgIHJldHVybiAiVXNlckludGVyZmFjZVRvb2x0aXAiOworICAgICAgICBy
ZXR1cm4gIlVzZXJJbnRlcmZhY2VUb29sdGlwIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJv
bGU6OlZhbHVlSW5kaWNhdG9yOgotICAgICAgICByZXR1cm4gIlZhbHVlSW5kaWNhdG9yIjsKKyAg
ICAgICAgcmV0dXJuICJWYWx1ZUluZGljYXRvciJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlS
b2xlOjpWaWRlbzoKLSAgICAgICAgcmV0dXJuICJWaWRlbyI7CisgICAgICAgIHJldHVybiAiVmlk
ZW8iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6V2ViQXBwbGljYXRpb246Ci0gICAg
ICAgIHJldHVybiAiV2ViQXBwbGljYXRpb24iOworICAgICAgICByZXR1cm4gIldlYkFwcGxpY2F0
aW9uIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OldlYkFyZWE6Ci0gICAgICAgIHJl
dHVybiAiV2ViQXJlYSI7CisgICAgICAgIHJldHVybiAiV2ViQXJlYSJfczsKICAgICBjYXNlIEFj
Y2Vzc2liaWxpdHlSb2xlOjpXZWJDb3JlTGluazoKLSAgICAgICAgcmV0dXJuICJXZWJDb3JlTGlu
ayI7CisgICAgICAgIHJldHVybiAiV2ViQ29yZUxpbmsiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmls
aXR5Um9sZTo6V2luZG93OgotICAgICAgICByZXR1cm4gIldpbmRvdyI7CisgICAgICAgIHJldHVy
biAiV2luZG93Il9zOwogICAgIH0KICAgICBVTlJFQUNIQUJMRSgpOwotICAgIHJldHVybiAiIjsK
KyAgICByZXR1cm4gIiJfczsKIH0KIAogZW51bSBjbGFzcyBBY2Nlc3NpYmlsaXR5RGV0YWNobWVu
dFR5cGUgeyBDYWNoZURlc3Ryb3llZCwgRWxlbWVudERlc3Ryb3llZCwgRWxlbWVudENoYW5nZWQg
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3QuY3BwCmluZGV4IDQ0MjI5NTVhMzg2NWRiYzVkZDcyMzU0Y2JiZmJm
MjAyNzY3MTViMDYuLmE2ZDMxMDJjODgyYTYwOThmNDc5MmI3YmNkMDZiYTI2ZDQyODdkOGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5UmVuZGVyT2JqZWN0LmNwcApAQCAtMjc4NywxMSArMjc4NywxMSBAQCBib29sIEFjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3Q6OnJlbmRlck9iamVjdElzT2JzZXJ2YWJsZShSZW5kZXJPYmplY3Qm
IHJlbmRlcmVyKQogICAgIGlmICghbm9kZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIAot
ICAgIGlmIChub2RlSGFzUm9sZShub2RlLCAibGlzdGJveCIpIHx8IChpczxSZW5kZXJCb3hNb2Rl
bE9iamVjdD4ocmVuZGVyZXIpICYmIGRvd25jYXN0PFJlbmRlckJveE1vZGVsT2JqZWN0PihyZW5k
ZXJlcikuaXNMaXN0Qm94KCkpKQorICAgIGlmIChub2RlSGFzUm9sZShub2RlLCAibGlzdGJveCJf
cykgfHwgKGlzPFJlbmRlckJveE1vZGVsT2JqZWN0PihyZW5kZXJlcikgJiYgZG93bmNhc3Q8UmVu
ZGVyQm94TW9kZWxPYmplY3Q+KHJlbmRlcmVyKS5pc0xpc3RCb3goKSkpCiAgICAgICAgIHJldHVy
biB0cnVlOwogCiAgICAgLy8gVGV4dGJveGVzIHNob3VsZCBzZW5kIG91dCBub3RpZmljYXRpb25z
LgotICAgIGlmIChub2RlSGFzUm9sZShub2RlLCAidGV4dGJveCIpIHx8IChpczxFbGVtZW50Pigq
bm9kZSkgJiYgY29udGVudEVkaXRhYmxlQXR0cmlidXRlSXNFbmFibGVkKGRvd25jYXN0PEVsZW1l
bnQ+KG5vZGUpKSkpCisgICAgaWYgKG5vZGVIYXNSb2xlKG5vZGUsICJ0ZXh0Ym94Il9zKSB8fCAo
aXM8RWxlbWVudD4oKm5vZGUpICYmIGNvbnRlbnRFZGl0YWJsZUF0dHJpYnV0ZUlzRW5hYmxlZChk
b3duY2FzdDxFbGVtZW50Pihub2RlKSkpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAKICAg
ICByZXR1cm4gZmFsc2U7CkBAIC0yODQwLDcgKzI4NDAsNyBAQCBib29sIEFjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3Q6OnNob3VsZElnbm9yZUF0dHJpYnV0ZVJvbGUoKSBjb25zdAogCiBBY2Nlc3Np
YmlsaXR5Um9sZSBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpkZXRlcm1pbmVBY2Nlc3NpYmls
aXR5Um9sZSgpCiB7Ci0gICAgQVhUUkFDRSgiQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6ZGV0
ZXJtaW5lQWNjZXNzaWJpbGl0eVJvbGUiKTsKKyAgICBBWFRSQUNFKCJBY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0OjpkZXRlcm1pbmVBY2Nlc3NpYmlsaXR5Um9sZSJfcyk7CiAgICAgaWYgKCFtX3Jl
bmRlcmVyKQogICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVJvbGU6OlVua25vd247CiAKQEAg
LTMyODAsNyArMzI4MCw3IEBAIHZvaWQgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6YWRkTGlz
dEl0ZW1NYXJrZXIoKQogCiB2b2lkIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnVwZGF0ZVJv
bGVBZnRlckNoaWxkcmVuQ3JlYXRpb24oKQogewotICAgIEFYVFJBQ0UoIkFjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3Q6OnVwZGF0ZVJvbGVBZnRlckNoaWxkcmVuQ3JlYXRpb24iKTsKKyAgICBBWFRS
QUNFKCJBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojp1cGRhdGVSb2xlQWZ0ZXJDaGlsZHJlbkNy
ZWF0aW9uIl9zKTsKICAgICAvLyBJZiBhIG1lbnUgZG9lcyBub3QgaGF2ZSB2YWxpZCBtZW51aXRl
bSBjaGlsZHJlbiwgaXQgc2hvdWxkIG5vdCBiZSBleHBvc2VkIGFzIGEgbWVudS4KICAgICBhdXRv
IHJvbGUgPSByb2xlVmFsdWUoKTsKICAgICBpZiAocm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6
TWVudSkgewpAQCAtMzM2NCw3ICszMzY0LDcgQEAgY29uc3QgU3RyaW5nIEFjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3Q6OmxpdmVSZWdpb25SZWxldmFudCgpIGNvbnN0CiAKICAgICAvLyBEZWZhdWx0
IGFyaWEtcmVsZXZhbnQgPSAiYWRkaXRpb25zIHRleHQiLgogICAgIGlmIChyZWxldmFudC5pc0Vt
cHR5KCkpCi0gICAgICAgIHJldHVybiAiYWRkaXRpb25zIHRleHQiOworICAgICAgICByZXR1cm4g
ImFkZGl0aW9ucyB0ZXh0Il9zOwogICAgIAogICAgIHJldHVybiByZWxldmFudDsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlQ2Vs
bC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUNl
bGwuY3BwCmluZGV4IDI3Y2Y4NjlmNGQ1NzcxYzk4NGIyYmUzZjQ2MTI2Yjk4NzdiNjAwMTUuLjM0
YTdiYTdjY2RiNGU1M2FhNTU0NjE5ODBmMTU0ZDM4OGMyYWY0M2UgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlQ2VsbC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVDZWxsLmNwcApA
QCAtNjUsNyArNjUsNyBAQCBib29sIEFjY2Vzc2liaWxpdHlUYWJsZUNlbGw6OmNvbXB1dGVBY2Nl
c3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3QKICAgICAKICAgICAvLyBJZ25vcmUgYW5vbnltb3Vz
IHRhYmxlIGNlbGxzIGFzIGxvbmcgYXMgdGhleSdyZSBub3QgaW4gYSB0YWJsZSAoaWUuIHdoZW4g
ZGlzcGxheTp0YWJsZSBpcyB1c2VkKS4KICAgICBSZW5kZXJPYmplY3QqIHJlbmRlclRhYmxlID0g
aXM8UmVuZGVyVGFibGVDZWxsPihyZW5kZXJlcigpKSA/IGRvd25jYXN0PFJlbmRlclRhYmxlQ2Vs
bD4oKm1fcmVuZGVyZXIpLnRhYmxlKCkgOiBudWxscHRyOwotICAgIGJvb2wgaW5UYWJsZSA9IHJl
bmRlclRhYmxlICYmIHJlbmRlclRhYmxlLT5ub2RlKCkgJiYgKHJlbmRlclRhYmxlLT5ub2RlKCkt
Pmhhc1RhZ05hbWUodGFibGVUYWcpIHx8IG5vZGVIYXNSb2xlKHJlbmRlclRhYmxlLT5ub2RlKCks
ICJncmlkIikpOworICAgIGJvb2wgaW5UYWJsZSA9IHJlbmRlclRhYmxlICYmIHJlbmRlclRhYmxl
LT5ub2RlKCkgJiYgKHJlbmRlclRhYmxlLT5ub2RlKCktPmhhc1RhZ05hbWUodGFibGVUYWcpIHx8
IG5vZGVIYXNSb2xlKHJlbmRlclRhYmxlLT5ub2RlKCksICJncmlkIl9zKSk7CiAgICAgaWYgKCFu
b2RlKCkgJiYgIWluVGFibGUpCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRyZWUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VHJlZS5jcHAKaW5k
ZXggNTkwYzk2MTU5NjA2MGRiNmRiMTU1Mzg5OGViMTZmMzBiNDU0ZTY4ZC4uMWMwMGJjOTU0MjNl
Mjk2YWQ1MTI2Mzc3ZTQ4MWM3Y2U3OWRmYmQwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VHJlZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VHJlZS5jcHAKQEAgLTY4LDcgKzY4LDcgQEAgQWNj
ZXNzaWJpbGl0eVJvbGUgQWNjZXNzaWJpbGl0eVRyZWU6OmRldGVybWluZUFjY2Vzc2liaWxpdHlS
b2xlKCkKIGJvb2wgQWNjZXNzaWJpbGl0eVRyZWU6Om5vZGVIYXNUcmVlSXRlbUNoaWxkKE5vZGUm
IG5vZGUpIGNvbnN0CiB7CiAgICAgZm9yIChhdXRvKiBjaGlsZCA9IG5vZGUuZmlyc3RDaGlsZCgp
OyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkgewotICAgICAgICBpZiAobm9k
ZUhhc1JvbGUoY2hpbGQsICJ0cmVlaXRlbSIpKQorICAgICAgICBpZiAobm9kZUhhc1JvbGUoY2hp
bGQsICJ0cmVlaXRlbSJfcykpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAg
cmV0dXJuIGZhbHNlOwpAQCAtOTIsMTQgKzkyLDE0IEBAIGJvb2wgQWNjZXNzaWJpbGl0eVRyZWU6
OmlzVHJlZVZhbGlkKCkgY29uc3QKIAogICAgICAgICBpZiAoIWlzPEVsZW1lbnQ+KCpjaGlsZCkp
CiAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgaWYgKG5vZGVIYXNSb2xlKGNoaWxkLCAi
dHJlZWl0ZW0iKSkKKyAgICAgICAgaWYgKG5vZGVIYXNSb2xlKGNoaWxkLCAidHJlZWl0ZW0iX3Mp
KQogICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIGlmIChub2RlSGFzUm9sZShjaGlsZCwg
InByZXNlbnRhdGlvbiIpKSB7CisgICAgICAgIGlmIChub2RlSGFzUm9sZShjaGlsZCwgInByZXNl
bnRhdGlvbiJfcykpIHsKICAgICAgICAgICAgIGlmICghbm9kZUhhc1RyZWVJdGVtQ2hpbGQoKmNo
aWxkKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICBjb250aW51
ZTsKICAgICAgICAgfQotICAgICAgICBpZiAoIW5vZGVIYXNSb2xlKGNoaWxkLCAiZ3JvdXAiKSkK
KyAgICAgICAgaWYgKCFub2RlSGFzUm9sZShjaGlsZCwgImdyb3VwIl9zKSkKICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKIAogICAgICAgICBmb3IgKGF1dG8qIGdyb3VwQ2hpbGQgPSBjaGlsZC0+
Zmlyc3RDaGlsZCgpOyBncm91cENoaWxkOyBncm91cENoaWxkID0gZ3JvdXBDaGlsZC0+bmV4dFNp
YmxpbmcoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0
ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHAKaW5kZXggYTEzNGFlNzUyZmEyMDEy
ZTc4MGQ5OWZhMTA4YzNmNDg3OTZjMTExYy4uNWYwMjAxZjA3YjUzNTA1YjcwZGRlMzM5YTJjYjI5
NjU3Y2Y3ODQ1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29s
YXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHAKQEAgLTMwNSw3ICszMDUs
NyBAQCB2b2lkIEFYSXNvbGF0ZWRPYmplY3Q6OmluaXRpYWxpemVBdHRyaWJ1dGVEYXRhKEFYQ29y
ZU9iamVjdCYgY29yZU9iamVjdCwgYm9vbCBpcwogICAgICAgICBzZXRQcm9wZXJ0eShBWFByb3Bl
cnR5TmFtZTo6VGV4dExlbmd0aCwgb2JqZWN0LnRleHRMZW5ndGgoKSk7CiAKICAgICBpZiAob2Jq
ZWN0LmlzUmFkaW9CdXR0b24oKSkgewotICAgICAgICBpZiAoYXV0byBuYW1lQXR0cmlidXRlID0g
b2JqZWN0LmF0dHJpYnV0ZVZhbHVlKCJuYW1lIikpCisgICAgICAgIGlmIChhdXRvIG5hbWVBdHRy
aWJ1dGUgPSBvYmplY3QuYXR0cmlidXRlVmFsdWUoIm5hbWUiX3MpKQogICAgICAgICAgICAgc2V0
UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6Ok5hbWVBdHRyaWJ1dGUsIG5hbWVBdHRyaWJ1dGUtPmlz
b2xhdGVkQ29weSgpKTsKICAgICB9CiAKQEAgLTM2Miw3ICszNjIsNyBAQCB2b2lkIEFYSXNvbGF0
ZWRPYmplY3Q6OmluaXRpYWxpemVBdHRyaWJ1dGVEYXRhKEFYQ29yZU9iamVjdCYgY29yZU9iamVj
dCwgYm9vbCBpcwogICAgIFN0cmluZyBjb21iaW5lZENsYXNzTGlzdDsKICAgICBmb3IgKGF1dG8g
aXQgPSBjbGFzc0xpc3QuYmVnaW4oKSwgZW5kID0gY2xhc3NMaXN0LmVuZCgpOyBpdCAhPSBlbmQ7
ICsraXQpIHsKICAgICAgICAgY29tYmluZWRDbGFzc0xpc3QuYXBwZW5kKCppdCk7Ci0gICAgICAg
IGNvbWJpbmVkQ2xhc3NMaXN0LmFwcGVuZCgiICIpOworICAgICAgICBjb21iaW5lZENsYXNzTGlz
dC5hcHBlbmQoIiAiX3MpOwogICAgIH0KICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6
Q2xhc3NMaXN0LCBjb21iaW5lZENsYXNzTGlzdCk7CiAKQEAgLTYwMCw3ICs2MDAsNyBAQCB2b2lk
IEFYSXNvbGF0ZWRPYmplY3Q6OmFjY2Vzc2liaWxpdHlUZXh0KFZlY3RvcjxBY2Nlc3NpYmlsaXR5
VGV4dD4mIHRleHRzKSBjb25zdAogdm9pZCBBWElzb2xhdGVkT2JqZWN0OjpjbGFzc0xpc3QoVmVj
dG9yPFN0cmluZz4mIGxpc3QpIGNvbnN0CiB7CiAgICAgU3RyaW5nIGNsYXNzTGlzdCA9IHN0cmlu
Z0F0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1lOjpDbGFzc0xpc3QpOwotICAgIGxpc3QuYXBw
ZW5kVmVjdG9yKGNsYXNzTGlzdC5zcGxpdCgiICIpKTsKKyAgICBsaXN0LmFwcGVuZFZlY3Rvcihj
bGFzc0xpc3Quc3BsaXQoIiAiX3MpKTsKIH0KIAogUEFMOjpTZXNzaW9uSUQgQVhJc29sYXRlZE9i
amVjdDo6c2Vzc2lvbklEKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmNwcAppbmRleCA2N2Y1
YjFkZWZkOWM0NzhlZGViYjA3OTNjNjUwZTM4Y2YzOWEzYzRiLi4xY2U3ODUwMmQyZWM3NzIyN2Ni
ZjNkYjI3NTBjMDdhYmNlODM5Y2U3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuY3BwCkBAIC02Miwx
OCArNjIsMTggQEAgQVhJc29sYXRlZFRyZWU6OkFYSXNvbGF0ZWRUcmVlKEFYT2JqZWN0Q2FjaGUq
IGF4T2JqZWN0Q2FjaGUpCiAgICAgLCBtX2F4T2JqZWN0Q2FjaGUoYXhPYmplY3RDYWNoZSkKICAg
ICAsIG1fdXNlZE9uQVhUaHJlYWQoYXhPYmplY3RDYWNoZS0+dXNlZE9uQVhUaHJlYWQoKSkKIHsK
LSAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6QVhJc29sYXRlZFRyZWUiKTsKKyAgICBBWFRS
QUNFKCJBWElzb2xhdGVkVHJlZTo6QVhJc29sYXRlZFRyZWUiX3MpOwogICAgIEFTU0VSVChpc01h
aW5UaHJlYWQoKSk7CiB9CiAKIEFYSXNvbGF0ZWRUcmVlOjp+QVhJc29sYXRlZFRyZWUoKQogewot
ICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjp+QVhJc29sYXRlZFRyZWUiKTsKKyAgICBBWFRS
QUNFKCJBWElzb2xhdGVkVHJlZTo6fkFYSXNvbGF0ZWRUcmVlIl9zKTsKIH0KIAogdm9pZCBBWElz
b2xhdGVkVHJlZTo6Y2xlYXIoKQogewotICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjpjbGVh
ciIpOworICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjpjbGVhciJfcyk7CiAgICAgQVNTRVJU
KGlzTWFpblRocmVhZCgpKTsKICAgICBtX2F4T2JqZWN0Q2FjaGUgPSBudWxscHRyOwogICAgIG1f
bm9kZU1hcC5jbGVhcigpOwpAQCAtODUsMTQgKzg1LDE0IEBAIHZvaWQgQVhJc29sYXRlZFRyZWU6
OmNsZWFyKCkKIAogUmVmUHRyPEFYSXNvbGF0ZWRUcmVlPiBBWElzb2xhdGVkVHJlZTo6dHJlZUZv
cklEKEFYSXNvbGF0ZWRUcmVlSUQgdHJlZUlEKQogewotICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRU
cmVlOjp0cmVlRm9ySUQiKTsKKyAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6dHJlZUZvcklE
Il9zKTsKICAgICBMb2NrZXIgbG9ja2VyIHsgc19jYWNoZUxvY2sgfTsKICAgICByZXR1cm4gdHJl
ZUlEQ2FjaGUoKS5nZXQodHJlZUlEKTsKIH0KIAogUmVmPEFYSXNvbGF0ZWRUcmVlPiBBWElzb2xh
dGVkVHJlZTo6Y3JlYXRlKEFYT2JqZWN0Q2FjaGUqIGF4T2JqZWN0Q2FjaGUpCiB7Ci0gICAgQVhU
UkFDRSgiQVhJc29sYXRlZFRyZWU6OmNyZWF0ZSIpOworICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRU
cmVlOjpjcmVhdGUiX3MpOwogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgQVNTRVJU
KGF4T2JqZWN0Q2FjaGUgJiYgYXhPYmplY3RDYWNoZS0+cGFnZUlEKCkpOwogCkBAIC0xMjUsNyAr
MTI1LDcgQEAgUmVmPEFYSXNvbGF0ZWRUcmVlPiBBWElzb2xhdGVkVHJlZTo6Y3JlYXRlKEFYT2Jq
ZWN0Q2FjaGUqIGF4T2JqZWN0Q2FjaGUpCiAKIHZvaWQgQVhJc29sYXRlZFRyZWU6OnJlbW92ZVRy
ZWVGb3JQYWdlSUQoUGFnZUlkZW50aWZpZXIgcGFnZUlEKQogewotICAgIEFYVFJBQ0UoIkFYSXNv
bGF0ZWRUcmVlOjpyZW1vdmVUcmVlRm9yUGFnZUlEIik7CisgICAgQVhUUkFDRSgiQVhJc29sYXRl
ZFRyZWU6OnJlbW92ZVRyZWVGb3JQYWdlSUQiX3MpOwogICAgIEFTU0VSVChpc01haW5UaHJlYWQo
KSk7CiAgICAgTG9ja2VyIGxvY2tlciB7IHNfY2FjaGVMb2NrIH07CiAKQEAgLTE1Nyw3ICsxNTcs
NyBAQCBSZWZQdHI8QVhJc29sYXRlZE9iamVjdD4gQVhJc29sYXRlZFRyZWU6Om5vZGVGb3JJRChB
WElEIGF4SUQpIGNvbnN0CiAKIFZlY3RvcjxSZWZQdHI8QVhDb3JlT2JqZWN0Pj4gQVhJc29sYXRl
ZFRyZWU6Om9iamVjdHNGb3JJRHMoY29uc3QgVmVjdG9yPEFYSUQ+JiBheElEcykgY29uc3QKIHsK
LSAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6b2JqZWN0c0ZvcklEcyIpOworICAgIEFYVFJB
Q0UoIkFYSXNvbGF0ZWRUcmVlOjpvYmplY3RzRm9ySURzIl9zKTsKICAgICBWZWN0b3I8UmVmUHRy
PEFYQ29yZU9iamVjdD4+IHJlc3VsdDsKICAgICByZXN1bHQucmVzZXJ2ZUluaXRpYWxDYXBhY2l0
eShheElEcy5zaXplKCkpOwogICAgIGZvciAoYXV0byYgYXhJRCA6IGF4SURzKSB7CkBAIC0xNzgs
NyArMTc4LDcgQEAgVmVjdG9yPEFYSUQ+IEFYSXNvbGF0ZWRUcmVlOjppZHNGb3JPYmplY3RzKGNv
bnN0IFZlY3RvcjxSZWZQdHI8QVhDb3JlT2JqZWN0Pj4mIG8KIAogdm9pZCBBWElzb2xhdGVkVHJl
ZTo6Z2VuZXJhdGVTdWJ0cmVlKEFYQ29yZU9iamVjdCYgYXhPYmplY3QsIEFYQ29yZU9iamVjdCog
YXhQYXJlbnQsIGJvb2wgYXR0YWNoV3JhcHBlcikKIHsKLSAgICBBWFRSQUNFKCJBWElzb2xhdGVk
VHJlZTo6Z2VuZXJhdGVTdWJ0cmVlIik7CisgICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6Omdl
bmVyYXRlU3VidHJlZSJfcyk7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIAogICAgIGlm
ICghYXhPYmplY3Qub2JqZWN0SUQoKS5pc1ZhbGlkKCkpCkBAIC0yNzcsNyArMjc3LDcgQEAgdm9p
ZCBBWElzb2xhdGVkVHJlZTo6cXVldWVDaGFuZ2VzQW5kUmVtb3ZhbHMoY29uc3QgVmVjdG9yPE5v
ZGVDaGFuZ2U+JiBjaGFuZ2VzLAogCiB2b2lkIEFYSXNvbGF0ZWRUcmVlOjpjb2xsZWN0Tm9kZUNo
YW5nZXNGb3JTdWJ0cmVlKEFYQ29yZU9iamVjdCYgYXhPYmplY3QsIEFYSUQgcGFyZW50SUQsIGJv
b2wgYXR0YWNoV3JhcHBlciwgVmVjdG9yPE5vZGVDaGFuZ2U+JiBjaGFuZ2VzLCBIYXNoU2V0PEFY
SUQ+KiBpZHNCZWluZ0NoYW5nZWQpCiB7Ci0gICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OmNv
bGxlY3ROb2RlQ2hhbmdlc0ZvclN1YnRyZWUiKTsKKyAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJl
ZTo6Y29sbGVjdE5vZGVDaGFuZ2VzRm9yU3VidHJlZSJfcyk7CiAgICAgQVNTRVJUKGlzTWFpblRo
cmVhZCgpKTsKIAogICAgIGF1dG8gbm9kZUNoYW5nZSA9IG5vZGVDaGFuZ2VGb3JPYmplY3QoYXhP
YmplY3QsIHBhcmVudElELCBhdHRhY2hXcmFwcGVyKTsKQEAgLTI5NSw3ICsyOTUsNyBAQCB2b2lk
IEFYSXNvbGF0ZWRUcmVlOjpjb2xsZWN0Tm9kZUNoYW5nZXNGb3JTdWJ0cmVlKEFYQ29yZU9iamVj
dCYgYXhPYmplY3QsIEFYSUQgcAogCiB2b2lkIEFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVOb2RlKEFY
Q29yZU9iamVjdCYgYXhPYmplY3QpCiB7Ci0gICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OnVw
ZGF0ZU5vZGUiKTsKKyAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6dXBkYXRlTm9kZSJfcyk7
CiAgICAgQVhMT0coJmF4T2JqZWN0KTsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogCkBA
IC0zMTMsNyArMzEzLDcgQEAgdm9pZCBBWElzb2xhdGVkVHJlZTo6dXBkYXRlTm9kZShBWENvcmVP
YmplY3QmIGF4T2JqZWN0KQogCiB2b2lkIEFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVOb2RlUHJvcGVy
dHkoY29uc3QgQVhDb3JlT2JqZWN0JiBheE9iamVjdCwgQVhQcm9wZXJ0eU5hbWUgcHJvcGVydHkp
CiB7Ci0gICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OnVwZGF0ZU5vZGVQcm9wZXJ0eSIpOwor
ICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVOb2RlUHJvcGVydHkiX3MpOwogICAg
IEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKICAgICBBWFByb3BlcnR5TWFwIHByb3BlcnR5TWFw
OwpAQCAtMzQ4LDcgKzM0OCw3IEBAIHZvaWQgQVhJc29sYXRlZFRyZWU6OnVwZGF0ZU5vZGVQcm9w
ZXJ0eShjb25zdCBBWENvcmVPYmplY3QmIGF4T2JqZWN0LCBBWFByb3BlcnR5CiAKIHZvaWQgQVhJ
c29sYXRlZFRyZWU6OnVwZGF0ZUNoaWxkcmVuKEFYQ29yZU9iamVjdCYgYXhPYmplY3QpCiB7Ci0g
ICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OnVwZGF0ZUNoaWxkcmVuIik7CisgICAgQVhUUkFD
RSgiQVhJc29sYXRlZFRyZWU6OnVwZGF0ZUNoaWxkcmVuIl9zKTsKICAgICBBWExPRygiRm9yIEFY
T2JqZWN0OiIpOwogICAgIEFYTE9HKCZheE9iamVjdCk7CiAgICAgQVNTRVJUKGlzTWFpblRocmVh
ZCgpKTsKQEAgLTQyMiw3ICs0MjIsNyBAQCB2b2lkIEFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVDaGls
ZHJlbihBWENvcmVPYmplY3QmIGF4T2JqZWN0KQogCiBSZWZQdHI8QVhJc29sYXRlZE9iamVjdD4g
QVhJc29sYXRlZFRyZWU6OmZvY3VzZWROb2RlKCkKIHsKLSAgICBBWFRSQUNFKCJBWElzb2xhdGVk
VHJlZTo6Zm9jdXNlZE5vZGUiKTsKKyAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6Zm9jdXNl
ZE5vZGUiX3MpOwogICAgIFJFTEVBU0VfQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CiAgICAgLy8g
QXBwbHkgcGVuZGluZyBjaGFuZ2VzIGluIGNhc2UgZm9jdXMgaGFzIGNoYW5nZWQgYW5kIGhhc24n
dCBiZWVuIHVwZGF0ZWQuCiAgICAgYXBwbHlQZW5kaW5nQ2hhbmdlcygpOwpAQCAtNDM0LDE0ICs0
MzQsMTQgQEAgUmVmUHRyPEFYSXNvbGF0ZWRPYmplY3Q+IEFYSXNvbGF0ZWRUcmVlOjpmb2N1c2Vk
Tm9kZSgpCiAKIFJlZlB0cjxBWElzb2xhdGVkT2JqZWN0PiBBWElzb2xhdGVkVHJlZTo6cm9vdE5v
ZGUoKQogewotICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjpyb290Tm9kZSIpOworICAgIEFY
VFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjpyb290Tm9kZSJfcyk7CiAgICAgTG9ja2VyIGxvY2tlciB7
IG1fY2hhbmdlTG9nTG9jayB9OwogICAgIHJldHVybiBtX3Jvb3ROb2RlOwogfQogCiB2b2lkIEFY
SXNvbGF0ZWRUcmVlOjpzZXRSb290Tm9kZShBWElzb2xhdGVkT2JqZWN0KiByb290KQogewotICAg
IEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjpzZXRSb290Tm9kZSIpOworICAgIEFYVFJBQ0UoIkFY
SXNvbGF0ZWRUcmVlOjpzZXRSb290Tm9kZSJfcyk7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgp
KTsKICAgICBBU1NFUlQobV9jaGFuZ2VMb2dMb2NrLmlzTG9ja2VkKCkpOwogICAgIEFTU0VSVCgh
bV9yb290Tm9kZSk7CkBAIC00NTIsNyArNDUyLDcgQEAgdm9pZCBBWElzb2xhdGVkVHJlZTo6c2V0
Um9vdE5vZGUoQVhJc29sYXRlZE9iamVjdCogcm9vdCkKIAogdm9pZCBBWElzb2xhdGVkVHJlZTo6
c2V0Rm9jdXNlZE5vZGVJRChBWElEIGF4SUQpCiB7Ci0gICAgQVhUUkFDRSgiQVhJc29sYXRlZFRy
ZWU6OnNldEZvY3VzZWROb2RlSUQiKTsKKyAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6c2V0
Rm9jdXNlZE5vZGVJRCJfcyk7CiAgICAgQVhMT0cobWFrZVN0cmluZygiYXhJRCAiLCBheElELmxv
Z2dpbmdTdHJpbmcoKSkpOwogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKQEAgLTQ2Niw3
ICs0NjYsNyBAQCB2b2lkIEFYSXNvbGF0ZWRUcmVlOjpzZXRGb2N1c2VkTm9kZUlEKEFYSUQgYXhJ
RCkKIAogdm9pZCBBWElzb2xhdGVkVHJlZTo6dXBkYXRlTG9hZGluZ1Byb2dyZXNzKGRvdWJsZSBu
ZXdQcm9ncmVzc1ZhbHVlKQogewotICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVM
b2FkaW5nUHJvZ3Jlc3MiKTsKKyAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6dXBkYXRlTG9h
ZGluZ1Byb2dyZXNzIl9zKTsKICAgICBBWExPRyhtYWtlU3RyaW5nKCJVcGRhdGluZyBsb2FkaW5n
IHByb2dyZXNzIHRvICIsIG5ld1Byb2dyZXNzVmFsdWUsICIgZm9yIHRyZWVJRCAiLCB0cmVlSUQo
KSkpOwogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKQEAgLTQ3NSw3ICs0NzUsNyBAQCB2
b2lkIEFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVMb2FkaW5nUHJvZ3Jlc3MoZG91YmxlIG5ld1Byb2dy
ZXNzVmFsdWUpCiAKIHZvaWQgQVhJc29sYXRlZFRyZWU6OnJlbW92ZU5vZGUoY29uc3QgQVhDb3Jl
T2JqZWN0JiBheE9iamVjdCkKIHsKLSAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6cmVtb3Zl
Tm9kZSIpOworICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjpyZW1vdmVOb2RlIl9zKTsKICAg
ICBBWExPRyhtYWtlU3RyaW5nKCJvYmplY3RJRCAiLCBheE9iamVjdC5vYmplY3RJRCgpLmxvZ2dp
bmdTdHJpbmcoKSkpOwogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKQEAgLTQ4NSw3ICs0
ODUsNyBAQCB2b2lkIEFYSXNvbGF0ZWRUcmVlOjpyZW1vdmVOb2RlKGNvbnN0IEFYQ29yZU9iamVj
dCYgYXhPYmplY3QpCiAKIHZvaWQgQVhJc29sYXRlZFRyZWU6OnJlbW92ZVN1YnRyZWVGcm9tTm9k
ZU1hcChBWElEIG9iamVjdElELCBBWENvcmVPYmplY3QqIGF4UGFyZW50LCBjb25zdCBIYXNoU2V0
PEFYSUQ+JiBpZHNUb0tlZXApCiB7Ci0gICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OnJlbW92
ZVN1YnRyZWVGcm9tTm9kZU1hcCIpOworICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjpyZW1v
dmVTdWJ0cmVlRnJvbU5vZGVNYXAiX3MpOwogICAgIEFYTE9HKG1ha2VTdHJpbmcoIlJlbW92aW5n
IHN1YnRyZWUgZm9yIG9iamVjdElEICIsIG9iamVjdElELmxvZ2dpbmdTdHJpbmcoKSkpOwogICAg
IEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKQEAgLTUyMyw3ICs1MjMsNyBAQCB2b2lkIEFYSXNv
bGF0ZWRUcmVlOjpyZW1vdmVTdWJ0cmVlRnJvbU5vZGVNYXAoQVhJRCBvYmplY3RJRCwgQVhDb3Jl
T2JqZWN0KiBheFBhcgogCiB2b2lkIEFYSXNvbGF0ZWRUcmVlOjphcHBseVBlbmRpbmdDaGFuZ2Vz
KCkKIHsKLSAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6YXBwbHlQZW5kaW5nQ2hhbmdlcyIp
OworICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjphcHBseVBlbmRpbmdDaGFuZ2VzIl9zKTsK
IAogICAgIC8vIEluIGlzb2xhdGVkIHRyZWUgbW9kZSAyLCBvbmx5IGFwcGx5IHBlbmRpbmcgY2hh
bmdlcyBvbiB0aGUgQVggdGhyZWFkLgogICAgIEFTU0VSVChtX3VzZWRPbkFYVGhyZWFkID8gIWlz
TWFpblRocmVhZCgpIDogaXNNYWluVGhyZWFkKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9tYWMvQWNjZXNzaWJpbGl0eU9iamVjdE1hYy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FjY2Vzc2liaWxpdHlPYmplY3RNYWMubW0KaW5kZXgg
YTI4OTUzODc0YzgwNTUxMjdmODBiMmZjMzYyZDljZTgyMWU3MDFjNC4uZmM2ZTQwOGNmYzdhOTI1
M2ExZTg5NTA3ZTAwNTQ5NDAzOGM5ZmIzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9tYWMvQWNjZXNzaWJpbGl0eU9iamVjdE1hYy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0TWFjLm1tCkBAIC0yMjIs
MjAgKzIyMiwyMCBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0eU9iamVjdDo6c3Vicm9sZVBsYXRmb3Jt
U3RyaW5nKCkgY29uc3QKICAgICB9CiAKICAgICBpZiAoaXNNZXRlcigpKQotICAgICAgICByZXR1
cm4gIkFYTWV0ZXIiOworICAgICAgICByZXR1cm4gIkFYTWV0ZXIiX3M7CiAKICNpZiBFTkFCTEUo
TU9ERUxfRUxFTUVOVCkKICAgICBpZiAoaXNNb2RlbCgpKQotICAgICAgICByZXR1cm4gIkFYTW9k
ZWwiOworICAgICAgICByZXR1cm4gIkFYTW9kZWwiX3M7CiAjZW5kaWYKIAogICAgIEFjY2Vzc2li
aWxpdHlSb2xlIHJvbGUgPSByb2xlVmFsdWUoKTsKICAgICBpZiAocm9sZSA9PSBBY2Nlc3NpYmls
aXR5Um9sZTo6SG9yaXpvbnRhbFJ1bGUpCi0gICAgICAgIHJldHVybiAiQVhDb250ZW50U2VwYXJh
dG9yIjsKKyAgICAgICAgcmV0dXJuICJBWENvbnRlbnRTZXBhcmF0b3IiX3M7CiAgICAgaWYgKHJv
bGUgPT0gQWNjZXNzaWJpbGl0eVJvbGU6OlRvZ2dsZUJ1dHRvbikKICAgICAgICAgcmV0dXJuIE5T
QWNjZXNzaWJpbGl0eVRvZ2dsZVN1YnJvbGU7CiAgICAgaWYgKHJvbGUgPT0gQWNjZXNzaWJpbGl0
eVJvbGU6OkZvb3RlcikKLSAgICAgICAgcmV0dXJuICJBWEZvb3RlciI7CisgICAgICAgIHJldHVy
biAiQVhGb290ZXIiX3M7CiAgICAgaWYgKHJvbGUgPT0gQWNjZXNzaWJpbGl0eVJvbGU6OlNwaW5C
dXR0b25QYXJ0KSB7CiAgICAgICAgIGlmIChpc0luY3JlbWVudG9yKCkpCiAgICAgICAgICAgICBy
ZXR1cm4gTlNBY2Nlc3NpYmlsaXR5SW5jcmVtZW50QXJyb3dTdWJyb2xlOwpAQCAtMjQzLDc5ICsy
NDMsNzkgQEAgU3RyaW5nIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnN1YnJvbGVQbGF0Zm9ybVN0cmlu
ZygpIGNvbnN0CiAgICAgfQogCiAgICAgaWYgKGlzRmlsZVVwbG9hZEJ1dHRvbigpKQotICAgICAg
ICByZXR1cm4gIkFYRmlsZVVwbG9hZEJ1dHRvbiI7CisgICAgICAgIHJldHVybiAiQVhGaWxlVXBs
b2FkQnV0dG9uIl9zOwogCiAgICAgaWYgKGlzVHJlZUl0ZW0oKSkKICAgICAgICAgcmV0dXJuIE5T
QWNjZXNzaWJpbGl0eU91dGxpbmVSb3dTdWJyb2xlOwogCiAgICAgaWYgKGlzRmllbGRzZXQoKSkK
LSAgICAgICAgcmV0dXJuICJBWEZpZWxkc2V0IjsKKyAgICAgICAgcmV0dXJuICJBWEZpZWxkc2V0
Il9zOwogCiAgICAgaWYgKGlzTGlzdCgpKSB7CiAgICAgICAgIGlmIChpc1Vub3JkZXJlZExpc3Qo
KSB8fCBpc09yZGVyZWRMaXN0KCkpCi0gICAgICAgICAgICByZXR1cm4gIkFYQ29udGVudExpc3Qi
OworICAgICAgICAgICAgcmV0dXJuICJBWENvbnRlbnRMaXN0Il9zOwogICAgICAgICBpZiAoaXNE
ZXNjcmlwdGlvbkxpc3QoKSkKLSAgICAgICAgICAgIHJldHVybiAiQVhEZXNjcmlwdGlvbkxpc3Qi
OworICAgICAgICAgICAgcmV0dXJuICJBWERlc2NyaXB0aW9uTGlzdCJfczsKICAgICB9CiAKICAg
ICAvLyBBUklBIGNvbnRlbnQgc3Vicm9sZXMuCiAgICAgc3dpdGNoIChyb2xlKSB7CiAgICAgY2Fz
ZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtCYW5uZXI6Ci0gICAgICAgIHJldHVybiAiQVhM
YW5kbWFya0Jhbm5lciI7CisgICAgICAgIHJldHVybiAiQVhMYW5kbWFya0Jhbm5lciJfczsKICAg
ICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpMYW5kbWFya0NvbXBsZW1lbnRhcnk6Ci0gICAgICAg
IHJldHVybiAiQVhMYW5kbWFya0NvbXBsZW1lbnRhcnkiOworICAgICAgICByZXR1cm4gIkFYTGFu
ZG1hcmtDb21wbGVtZW50YXJ5Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRt
YXJrQ29udGVudEluZm86Ci0gICAgICAgIHJldHVybiAiQVhMYW5kbWFya0NvbnRlbnRJbmZvIjsK
KyAgICAgICAgcmV0dXJuICJBWExhbmRtYXJrQ29udGVudEluZm8iX3M7CiAgICAgY2FzZSBBY2Nl
c3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtNYWluOgotICAgICAgICByZXR1cm4gIkFYTGFuZG1hcmtN
YWluIjsKKyAgICAgICAgcmV0dXJuICJBWExhbmRtYXJrTWFpbiJfczsKICAgICBjYXNlIEFjY2Vz
c2liaWxpdHlSb2xlOjpMYW5kbWFya05hdmlnYXRpb246Ci0gICAgICAgIHJldHVybiAiQVhMYW5k
bWFya05hdmlnYXRpb24iOworICAgICAgICByZXR1cm4gIkFYTGFuZG1hcmtOYXZpZ2F0aW9uIl9z
OwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJrRG9jUmVnaW9uOgogICAgIGNh
c2UgQWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJrUmVnaW9uOgotICAgICAgICByZXR1cm4gIkFY
TGFuZG1hcmtSZWdpb24iOworICAgICAgICByZXR1cm4gIkFYTGFuZG1hcmtSZWdpb24iX3M7CiAg
ICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtTZWFyY2g6Ci0gICAgICAgIHJldHVy
biAiQVhMYW5kbWFya1NlYXJjaCI7CisgICAgICAgIHJldHVybiAiQVhMYW5kbWFya1NlYXJjaCJf
czsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvbkFsZXJ0OgotICAgICAg
ICByZXR1cm4gIkFYQXBwbGljYXRpb25BbGVydCI7CisgICAgICAgIHJldHVybiAiQVhBcHBsaWNh
dGlvbkFsZXJ0Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uQWxl
cnREaWFsb2c6Ci0gICAgICAgIHJldHVybiAiQVhBcHBsaWNhdGlvbkFsZXJ0RGlhbG9nIjsKKyAg
ICAgICAgcmV0dXJuICJBWEFwcGxpY2F0aW9uQWxlcnREaWFsb2ciX3M7CiAgICAgY2FzZSBBY2Nl
c3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb25EaWFsb2c6Ci0gICAgICAgIHJldHVybiAiQVhBcHBs
aWNhdGlvbkRpYWxvZyI7CisgICAgICAgIHJldHVybiAiQVhBcHBsaWNhdGlvbkRpYWxvZyJfczsK
ICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvbkdyb3VwOgogICAgIGNhc2Ug
QWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uVGV4dEdyb3VwOgogICAgIGNhc2UgQWNjZXNz
aWJpbGl0eVJvbGU6OkZlZWQ6CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6Rm9vdG5vdGU6
Ci0gICAgICAgIHJldHVybiAiQVhBcHBsaWNhdGlvbkdyb3VwIjsKKyAgICAgICAgcmV0dXJuICJB
WEFwcGxpY2F0aW9uR3JvdXAiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGlj
YXRpb25Mb2c6Ci0gICAgICAgIHJldHVybiAiQVhBcHBsaWNhdGlvbkxvZyI7CisgICAgICAgIHJl
dHVybiAiQVhBcHBsaWNhdGlvbkxvZyJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpB
cHBsaWNhdGlvbk1hcnF1ZWU6Ci0gICAgICAgIHJldHVybiAiQVhBcHBsaWNhdGlvbk1hcnF1ZWUi
OworICAgICAgICByZXR1cm4gIkFYQXBwbGljYXRpb25NYXJxdWVlIl9zOwogICAgIGNhc2UgQWNj
ZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uU3RhdHVzOgotICAgICAgICByZXR1cm4gIkFYQXBw
bGljYXRpb25TdGF0dXMiOworICAgICAgICByZXR1cm4gIkFYQXBwbGljYXRpb25TdGF0dXMiX3M7
CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb25UaW1lcjoKLSAgICAgICAg
cmV0dXJuICJBWEFwcGxpY2F0aW9uVGltZXIiOworICAgICAgICByZXR1cm4gIkFYQXBwbGljYXRp
b25UaW1lciJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpEb2N1bWVudDoKICAgICBj
YXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpHcmFwaGljc0RvY3VtZW50OgotICAgICAgICByZXR1cm4g
IkFYRG9jdW1lbnQiOworICAgICAgICByZXR1cm4gIkFYRG9jdW1lbnQiX3M7CiAgICAgY2FzZSBB
Y2Nlc3NpYmlsaXR5Um9sZTo6RG9jdW1lbnRBcnRpY2xlOgotICAgICAgICByZXR1cm4gIkFYRG9j
dW1lbnRBcnRpY2xlIjsKKyAgICAgICAgcmV0dXJuICJBWERvY3VtZW50QXJ0aWNsZSJfczsKICAg
ICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpEb2N1bWVudE1hdGg6Ci0gICAgICAgIHJldHVybiAi
QVhEb2N1bWVudE1hdGgiOworICAgICAgICByZXR1cm4gIkFYRG9jdW1lbnRNYXRoIl9zOwogICAg
IGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRvY3VtZW50Tm90ZToKLSAgICAgICAgcmV0dXJuICJB
WERvY3VtZW50Tm90ZSI7CisgICAgICAgIHJldHVybiAiQVhEb2N1bWVudE5vdGUiX3M7CiAgICAg
Y2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VXNlckludGVyZmFjZVRvb2x0aXA6Ci0gICAgICAgIHJl
dHVybiAiQVhVc2VySW50ZXJmYWNlVG9vbHRpcCI7CisgICAgICAgIHJldHVybiAiQVhVc2VySW50
ZXJmYWNlVG9vbHRpcCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpUYWJQYW5lbDoK
LSAgICAgICAgcmV0dXJuICJBWFRhYlBhbmVsIjsKKyAgICAgICAgcmV0dXJuICJBWFRhYlBhbmVs
Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRlZmluaXRpb246Ci0gICAgICAgIHJl
dHVybiAiQVhEZWZpbml0aW9uIjsKKyAgICAgICAgcmV0dXJuICJBWERlZmluaXRpb24iX3M7CiAg
ICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RGVzY3JpcHRpb25MaXN0VGVybToKICAgICBjYXNl
IEFjY2Vzc2liaWxpdHlSb2xlOjpUZXJtOgotICAgICAgICByZXR1cm4gIkFYVGVybSI7CisgICAg
ICAgIHJldHVybiAiQVhUZXJtIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRlc2Ny
aXB0aW9uTGlzdERldGFpbDoKLSAgICAgICAgcmV0dXJuICJBWERlc2NyaXB0aW9uIjsKKyAgICAg
ICAgcmV0dXJuICJBWERlc2NyaXB0aW9uIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6
OldlYkFwcGxpY2F0aW9uOgotICAgICAgICByZXR1cm4gIkFYV2ViQXBwbGljYXRpb24iOworICAg
ICAgICByZXR1cm4gIkFYV2ViQXBwbGljYXRpb24iX3M7CiAgICAgICAgIC8vIERlZmF1bHQgZG9l
c24ndCByZXR1cm4gYW55dGhpbmcsIHNvIHJvbGVzIGRlZmluZWQgYmVsb3cgY2FuIGJlIGNob3Nl
bi4KICAgICBkZWZhdWx0OgogICAgICAgICBicmVhazsKQEAgLTMyMyw1MSArMzIzLDUxIEBAIFN0
cmluZyBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzdWJyb2xlUGxhdGZvcm1TdHJpbmcoKSBjb25zdAog
CiAgICAgaWYgKHJvbGUgPT0gQWNjZXNzaWJpbGl0eVJvbGU6Ok1hdGhFbGVtZW50KSB7CiAgICAg
ICAgIGlmIChpc01hdGhGcmFjdGlvbigpKQotICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhGcmFj
dGlvbiI7CisgICAgICAgICAgICByZXR1cm4gIkFYTWF0aEZyYWN0aW9uIl9zOwogICAgICAgICBp
ZiAoaXNNYXRoRmVuY2VkKCkpCi0gICAgICAgICAgICByZXR1cm4gIkFYTWF0aEZlbmNlZCI7Cisg
ICAgICAgICAgICByZXR1cm4gIkFYTWF0aEZlbmNlZCJfczsKICAgICAgICAgaWYgKGlzTWF0aFN1
YnNjcmlwdFN1cGVyc2NyaXB0KCkpCi0gICAgICAgICAgICByZXR1cm4gIkFYTWF0aFN1YnNjcmlw
dFN1cGVyc2NyaXB0IjsKKyAgICAgICAgICAgIHJldHVybiAiQVhNYXRoU3Vic2NyaXB0U3VwZXJz
Y3JpcHQiX3M7CiAgICAgICAgIGlmIChpc01hdGhSb3coKSkKLSAgICAgICAgICAgIHJldHVybiAi
QVhNYXRoUm93IjsKKyAgICAgICAgICAgIHJldHVybiAiQVhNYXRoUm93Il9zOwogICAgICAgICBp
ZiAoaXNNYXRoVW5kZXJPdmVyKCkpCi0gICAgICAgICAgICByZXR1cm4gIkFYTWF0aFVuZGVyT3Zl
ciI7CisgICAgICAgICAgICByZXR1cm4gIkFYTWF0aFVuZGVyT3ZlciJfczsKICAgICAgICAgaWYg
KGlzTWF0aFNxdWFyZVJvb3QoKSkKLSAgICAgICAgICAgIHJldHVybiAiQVhNYXRoU3F1YXJlUm9v
dCI7CisgICAgICAgICAgICByZXR1cm4gIkFYTWF0aFNxdWFyZVJvb3QiX3M7CiAgICAgICAgIGlm
IChpc01hdGhSb290KCkpCi0gICAgICAgICAgICByZXR1cm4gIkFYTWF0aFJvb3QiOworICAgICAg
ICAgICAgcmV0dXJuICJBWE1hdGhSb290Il9zOwogICAgICAgICBpZiAoaXNNYXRoVGV4dCgpKQot
ICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhUZXh0IjsKKyAgICAgICAgICAgIHJldHVybiAiQVhN
YXRoVGV4dCJfczsKICAgICAgICAgaWYgKGlzTWF0aE51bWJlcigpKQotICAgICAgICAgICAgcmV0
dXJuICJBWE1hdGhOdW1iZXIiOworICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhOdW1iZXIiX3M7
CiAgICAgICAgIGlmIChpc01hdGhJZGVudGlmaWVyKCkpCi0gICAgICAgICAgICByZXR1cm4gIkFY
TWF0aElkZW50aWZpZXIiOworICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhJZGVudGlmaWVyIl9z
OwogICAgICAgICBpZiAoaXNNYXRoVGFibGUoKSkKLSAgICAgICAgICAgIHJldHVybiAiQVhNYXRo
VGFibGUiOworICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhUYWJsZSJfczsKICAgICAgICAgaWYg
KGlzTWF0aFRhYmxlUm93KCkpCi0gICAgICAgICAgICByZXR1cm4gIkFYTWF0aFRhYmxlUm93IjsK
KyAgICAgICAgICAgIHJldHVybiAiQVhNYXRoVGFibGVSb3ciX3M7CiAgICAgICAgIGlmIChpc01h
dGhUYWJsZUNlbGwoKSkKLSAgICAgICAgICAgIHJldHVybiAiQVhNYXRoVGFibGVDZWxsIjsKKyAg
ICAgICAgICAgIHJldHVybiAiQVhNYXRoVGFibGVDZWxsIl9zOwogICAgICAgICBpZiAoaXNNYXRo
RmVuY2VPcGVyYXRvcigpKQotICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhGZW5jZU9wZXJhdG9y
IjsKKyAgICAgICAgICAgIHJldHVybiAiQVhNYXRoRmVuY2VPcGVyYXRvciJfczsKICAgICAgICAg
aWYgKGlzTWF0aFNlcGFyYXRvck9wZXJhdG9yKCkpCi0gICAgICAgICAgICByZXR1cm4gIkFYTWF0
aFNlcGFyYXRvck9wZXJhdG9yIjsKKyAgICAgICAgICAgIHJldHVybiAiQVhNYXRoU2VwYXJhdG9y
T3BlcmF0b3IiX3M7CiAgICAgICAgIGlmIChpc01hdGhPcGVyYXRvcigpKQotICAgICAgICAgICAg
cmV0dXJuICJBWE1hdGhPcGVyYXRvciI7CisgICAgICAgICAgICByZXR1cm4gIkFYTWF0aE9wZXJh
dG9yIl9zOwogICAgICAgICBpZiAoaXNNYXRoTXVsdGlzY3JpcHQoKSkKLSAgICAgICAgICAgIHJl
dHVybiAiQVhNYXRoTXVsdGlzY3JpcHQiOworICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhNdWx0
aXNjcmlwdCJfczsKICAgICB9CiAKICAgICBpZiAocm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6
VmlkZW8pCi0gICAgICAgIHJldHVybiAiQVhWaWRlbyI7CisgICAgICAgIHJldHVybiAiQVhWaWRl
byJfczsKICAgICBpZiAocm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXVkaW8pCi0gICAgICAg
IHJldHVybiAiQVhBdWRpbyI7CisgICAgICAgIHJldHVybiAiQVhBdWRpbyJfczsKICAgICBpZiAo
cm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6RGV0YWlscykKLSAgICAgICAgcmV0dXJuICJBWERl
dGFpbHMiOworICAgICAgICByZXR1cm4gIkFYRGV0YWlscyJfczsKICAgICBpZiAocm9sZSA9PSBB
Y2Nlc3NpYmlsaXR5Um9sZTo6U3VtbWFyeSkKLSAgICAgICAgcmV0dXJuICJBWFN1bW1hcnkiOwor
ICAgICAgICByZXR1cm4gIkFYU3VtbWFyeSJfczsKICAgICBpZiAocm9sZSA9PSBBY2Nlc3NpYmls
aXR5Um9sZTo6VGltZSkKLSAgICAgICAgcmV0dXJuICJBWFRpbWVHcm91cCI7CisgICAgICAgIHJl
dHVybiAiQVhUaW1lR3JvdXAiX3M7CiAKICAgICBpZiAoaXNNZWRpYVRpbWVsaW5lKCkpCiAgICAg
ICAgIHJldHVybiBOU0FjY2Vzc2liaWxpdHlUaW1lbGluZVN1YnJvbGU7CkBAIC0zNzYsMjUgKzM3
NiwyNSBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0eU9iamVjdDo6c3Vicm9sZVBsYXRmb3JtU3RyaW5n
KCkgY29uc3QKICAgICAgICAgcmV0dXJuIE5TQWNjZXNzaWJpbGl0eVN3aXRjaFN1YnJvbGU7CiAK
ICAgICBpZiAocm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6SW5zZXJ0aW9uKQotICAgICAgICBy
ZXR1cm4gIkFYSW5zZXJ0U3R5bGVHcm91cCI7CisgICAgICAgIHJldHVybiAiQVhJbnNlcnRTdHls
ZUdyb3VwIl9zOwogICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpEZWxldGlvbikK
LSAgICAgICAgcmV0dXJuICJBWERlbGV0ZVN0eWxlR3JvdXAiOworICAgICAgICByZXR1cm4gIkFY
RGVsZXRlU3R5bGVHcm91cCJfczsKICAgICBpZiAocm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6
U3VwZXJzY3JpcHQpCi0gICAgICAgIHJldHVybiAiQVhTdXBlcnNjcmlwdFN0eWxlR3JvdXAiOwor
ICAgICAgICByZXR1cm4gIkFYU3VwZXJzY3JpcHRTdHlsZUdyb3VwIl9zOwogICAgIGlmIChyb2xl
ID09IEFjY2Vzc2liaWxpdHlSb2xlOjpTdWJzY3JpcHQpCi0gICAgICAgIHJldHVybiAiQVhTdWJz
Y3JpcHRTdHlsZUdyb3VwIjsKKyAgICAgICAgcmV0dXJuICJBWFN1YnNjcmlwdFN0eWxlR3JvdXAi
X3M7CiAKICAgICBzd2l0Y2ggKHJvbGUpIHsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpS
dWJ5QmFzZToKLSAgICAgICAgcmV0dXJuICJBWFJ1YnlCYXNlIjsKKyAgICAgICAgcmV0dXJuICJB
WFJ1YnlCYXNlIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlJ1YnlCbG9jazoKLSAg
ICAgICAgcmV0dXJuICJBWFJ1YnlCbG9jayI7CisgICAgICAgIHJldHVybiAiQVhSdWJ5QmxvY2si
X3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6UnVieUlubGluZToKLSAgICAgICAgcmV0
dXJuICJBWFJ1YnlJbmxpbmUiOworICAgICAgICByZXR1cm4gIkFYUnVieUlubGluZSJfczsKICAg
ICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpSdWJ5UnVuOgotICAgICAgICByZXR1cm4gIkFYUnVi
eVJ1biI7CisgICAgICAgIHJldHVybiAiQVhSdWJ5UnVuIl9zOwogICAgIGNhc2UgQWNjZXNzaWJp
bGl0eVJvbGU6OlJ1YnlUZXh0OgotICAgICAgICByZXR1cm4gIkFYUnVieVRleHQiOworICAgICAg
ICByZXR1cm4gIkFYUnVieVRleHQiX3M7CiAgICAgZGVmYXVsdDoKICAgICAgICAgYnJlYWs7CiAg
ICAgfQpAQCAtNDAzLDE3ICs0MDMsMTcgQEAgU3RyaW5nIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnN1
YnJvbGVQbGF0Zm9ybVN0cmluZygpIGNvbnN0CiAgICAgICAgIHVzaW5nIG5hbWVzcGFjZSBIVE1M
TmFtZXM7CiAgICAgICAgIGF1dG8gdGFnID0gdGFnTmFtZSgpOwogICAgICAgICBpZiAodGFnID09
IGtiZFRhZykKLSAgICAgICAgICAgIHJldHVybiBAIkFYS2V5Ym9hcmRJbnB1dFN0eWxlR3JvdXAi
OworICAgICAgICAgICAgcmV0dXJuICJBWEtleWJvYXJkSW5wdXRTdHlsZUdyb3VwIl9zOwogICAg
ICAgICBpZiAodGFnID09IGNvZGVUYWcpCi0gICAgICAgICAgICByZXR1cm4gQCJBWENvZGVTdHls
ZUdyb3VwIjsKKyAgICAgICAgICAgIHJldHVybiAiQVhDb2RlU3R5bGVHcm91cCJfczsKICAgICAg
ICAgaWYgKHRhZyA9PSBwcmVUYWcpCi0gICAgICAgICAgICByZXR1cm4gQCJBWFByZWZvcm1hdHRl
ZFN0eWxlR3JvdXAiOworICAgICAgICAgICAgcmV0dXJuICJBWFByZWZvcm1hdHRlZFN0eWxlR3Jv
dXAiX3M7CiAgICAgICAgIGlmICh0YWcgPT0gc2FtcFRhZykKLSAgICAgICAgICAgIHJldHVybiBA
IkFYU2FtcGxlU3R5bGVHcm91cCI7CisgICAgICAgICAgICByZXR1cm4gIkFYU2FtcGxlU3R5bGVH
cm91cCJfczsKICAgICAgICAgaWYgKHRhZyA9PSB2YXJUYWcpCi0gICAgICAgICAgICByZXR1cm4g
QCJBWFZhcmlhYmxlU3R5bGVHcm91cCI7CisgICAgICAgICAgICByZXR1cm4gIkFYVmFyaWFibGVT
dHlsZUdyb3VwIl9zOwogICAgICAgICBpZiAodGFnID09IGNpdGVUYWcpCi0gICAgICAgICAgICBy
ZXR1cm4gQCJBWENpdGVTdHlsZUdyb3VwIjsKKyAgICAgICAgICAgIHJldHVybiAiQVhDaXRlU3R5
bGVHcm91cCJfczsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVy
biBTdHJpbmcoKTsKICAgICB9CkBAIC00MzYsNyArNDM2LDcgQEAgU3RyaW5nIEFjY2Vzc2liaWxp
dHlPYmplY3Q6OnJvbGVQbGF0Zm9ybURlc2NyaXB0aW9uKCkgY29uc3QKIAogICAgICAgICBzd2l0
Y2ggKHJvbGUpIHsKICAgICAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXVkaW86Ci0gICAg
ICAgICAgICByZXR1cm4gbG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudFN0cmluZygiQXVkaW9F
bGVtZW50Iik7CisgICAgICAgICAgICByZXR1cm4gbG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVu
dFN0cmluZygiQXVkaW9FbGVtZW50Il9zKTsKICAgICAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9s
ZTo6RGVmaW5pdGlvbjoKICAgICAgICAgICAgIHJldHVybiBBWERlZmluaXRpb25UZXh0KCk7CiAg
ICAgICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRlc2NyaXB0aW9uTGlzdFRlcm06CkBAIC00
NTMsOSArNDUzLDkgQEAgU3RyaW5nIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnJvbGVQbGF0Zm9ybURl
c2NyaXB0aW9uKCkgY29uc3QKICAgICAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TWFyazoK
ICAgICAgICAgICAgIHJldHVybiBBWE1hcmtUZXh0KCk7CiAgICAgICAgIGNhc2UgQWNjZXNzaWJp
bGl0eVJvbGU6OlZpZGVvOgotICAgICAgICAgICAgcmV0dXJuIGxvY2FsaXplZE1lZGlhQ29udHJv
bEVsZW1lbnRTdHJpbmcoIlZpZGVvRWxlbWVudCIpOworICAgICAgICAgICAgcmV0dXJuIGxvY2Fs
aXplZE1lZGlhQ29udHJvbEVsZW1lbnRTdHJpbmcoIlZpZGVvRWxlbWVudCJfcyk7CiAgICAgICAg
IGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkdyYXBoaWNzRG9jdW1lbnQ6Ci0gICAgICAgICAgICBy
ZXR1cm4gQVhBUklBQ29udGVudEdyb3VwVGV4dChAIkFSSUFEb2N1bWVudCIpOworICAgICAgICAg
ICAgcmV0dXJuIEFYQVJJQUNvbnRlbnRHcm91cFRleHQoIkFSSUFEb2N1bWVudCIpOwogICAgICAg
ICBkZWZhdWx0OgogICAgICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogICAgICAgICB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQW5pbWF0aW9uRWZmZWN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9BbmltYXRpb25FZmZlY3QuY3BwCmluZGV4IDIzOWJkMDQ1
ZjgwYWVhOGRjZGYzMWM1ZTBjNDM4OGEwMmI1Mjk1NTIuLjQzMWZkZWExNTcyNjI3MmEyYjY4Zjk3
NGIyNmUwYWU2YTU1ZmMwYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9B
bmltYXRpb25FZmZlY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9BbmltYXRp
b25FZmZlY3QuY3BwCkBAIC02OSw3ICs2OSw3IEBAIEVmZmVjdFRpbWluZyBBbmltYXRpb25FZmZl
Y3Q6OmdldFRpbWluZygpIGNvbnN0CiAgICAgdGltaW5nLml0ZXJhdGlvblN0YXJ0ID0gbV9pdGVy
YXRpb25TdGFydDsKICAgICB0aW1pbmcuaXRlcmF0aW9ucyA9IG1faXRlcmF0aW9uczsKICAgICBp
ZiAobV9pdGVyYXRpb25EdXJhdGlvbiA9PSAwX3MpCi0gICAgICAgIHRpbWluZy5kdXJhdGlvbiA9
ICJhdXRvIjsKKyAgICAgICAgdGltaW5nLmR1cmF0aW9uID0gImF1dG8iX3M7CiAgICAgZWxzZQog
ICAgICAgICB0aW1pbmcuZHVyYXRpb24gPSBzZWNvbmRzVG9XZWJBbmltYXRpb25zQVBJVGltZSht
X2l0ZXJhdGlvbkR1cmF0aW9uKTsKICAgICB0aW1pbmcuZGlyZWN0aW9uID0gbV9kaXJlY3Rpb247
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRG9jdW1lbnRUaW1lbGluZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRG9jdW1lbnRUaW1lbGluZS5jcHAKaW5kZXgg
M2M5NTllOWNiZDRhODcxMjQ0ZWUyZjQ1YjBiNWFhMDZlMWM1ZmQ0NS4uYzg2ZjJhZDU1YzRiMTI4
ZWVjZWRiODAxMGY0YzQ3MTNiYWY0Njc2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5p
bWF0aW9uL0RvY3VtZW50VGltZWxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlv
bi9Eb2N1bWVudFRpbWVsaW5lLmNwcApAQCAtNDUyLDcgKzQ1Miw3IEBAIEV4Y2VwdGlvbk9yPFJl
ZjxXZWJBbmltYXRpb24+PiBEb2N1bWVudFRpbWVsaW5lOjphbmltYXRlKFJlZjxDdXN0b21FZmZl
Y3RDYWxsYmFjCiAgICAgaWYgKCFtX2RvY3VtZW50KQogICAgICAgICByZXR1cm4gRXhjZXB0aW9u
IHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKIAotICAgIFN0cmluZyBpZCA9ICIiOworICAgIFN0cmlu
ZyBpZCA9IGVtcHR5U3RyaW5nKCk7CiAgICAgc3RkOjp2YXJpYW50PEZyYW1lc1BlclNlY29uZCwg
QW5pbWF0aW9uRnJhbWVSYXRlUHJlc2V0PiBmcmFtZVJhdGUgPSBBbmltYXRpb25GcmFtZVJhdGVQ
cmVzZXQ6OkF1dG87CiAgICAgc3RkOjpvcHRpb25hbDxzdGQ6OnZhcmlhbnQ8ZG91YmxlLCBFZmZl
Y3RUaW1pbmc+PiBjdXN0b21FZmZlY3RPcHRpb25zOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hbmltYXRpb24vRWZmZWN0VGltaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24v
RWZmZWN0VGltaW5nLmgKaW5kZXggNGRkNWRjYzM3M2NjZDgzMzBkZWNhMzYxN2Q5OThlNjEzMzkz
MmU2MS4uMjEwNzNmYTQ3MzAzZjY0ZmQyYmEyNjE5YWU5MTg3ZjU4MTU5NTA2ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0VmZmVjdFRpbWluZy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2FuaW1hdGlvbi9FZmZlY3RUaW1pbmcuaApAQCAtMzMsMTIgKzMzLDEyIEBACiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIHN0cnVjdCBFZmZlY3RUaW1pbmcgewotICAgIHN0ZDo6dmFyaWFu
dDxkb3VibGUsIFN0cmluZz4gZHVyYXRpb24geyAiYXV0byIgfTsKKyAgICBzdGQ6OnZhcmlhbnQ8
ZG91YmxlLCBTdHJpbmc+IGR1cmF0aW9uIHsgImF1dG8iX3MgfTsKICAgICBkb3VibGUgZGVsYXkg
eyAwIH07CiAgICAgZG91YmxlIGVuZERlbGF5IHsgMCB9OwogICAgIGRvdWJsZSBpdGVyYXRpb25T
dGFydCB7IDAgfTsKICAgICBkb3VibGUgaXRlcmF0aW9ucyB7IDEgfTsKLSAgICBTdHJpbmcgZWFz
aW5nIHsgImxpbmVhciIgfTsKKyAgICBTdHJpbmcgZWFzaW5nIHsgImxpbmVhciJfcyB9OwogICAg
IEZpbGxNb2RlIGZpbGwgeyBGaWxsTW9kZTo6QXV0byB9OwogICAgIFBsYXliYWNrRGlyZWN0aW9u
IGRpcmVjdGlvbiB7IFBsYXliYWNrRGlyZWN0aW9uOjpOb3JtYWwgfTsKIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuY3BwIGIvU291cmNlL1dl
YkNvcmUvYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmNwcAppbmRleCA3MjM3Njg1MDNkMTBkYjQ5
NjdiMmY4YzYwZWI5MTQxODk3NjZiZjdkLi5kODQxMWM5M2U0NzcwMmY1NjdhZDYxNDAzNjZlY2U3
NjYzNWMwNDVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVF
ZmZlY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5j
cHAKQEAgLTgyLDExICs4MiwxMSBAQCBTdHJpbmcgS2V5ZnJhbWVFZmZlY3Q6OkNTU1Byb3BlcnR5
SURUb0lETEF0dHJpYnV0ZU5hbWUoQ1NTUHJvcGVydHlJRCBjc3NQcm9wZXJ0eQogCiAgICAgLy8g
Mi4gSWYgcHJvcGVydHkgcmVmZXJzIHRvIHRoZSBDU1MgZmxvYXQgcHJvcGVydHksIHJldHVybiB0
aGUgc3RyaW5nICJjc3NGbG9hdCIuCiAgICAgaWYgKGNzc1Byb3BlcnR5SWQgPT0gQ1NTUHJvcGVy
dHlGbG9hdCkKLSAgICAgICAgcmV0dXJuICJjc3NGbG9hdCI7CisgICAgICAgIHJldHVybiAiY3Nz
RmxvYXQiX3M7CiAKICAgICAvLyAzLiBJZiBwcm9wZXJ0eSByZWZlcnMgdG8gdGhlIENTUyBvZmZz
ZXQgcHJvcGVydHksIHJldHVybiB0aGUgc3RyaW5nICJjc3NPZmZzZXQiLgogICAgIGlmIChjc3NQ
cm9wZXJ0eUlkID09IENTU1Byb3BlcnR5T2Zmc2V0KQotICAgICAgICByZXR1cm4gImNzc09mZnNl
dCI7CisgICAgICAgIHJldHVybiAiY3NzT2Zmc2V0Il9zOwogCiAgICAgLy8gNC4gT3RoZXJ3aXNl
LCByZXR1cm4gdGhlIHJlc3VsdCBvZiBhcHBseWluZyB0aGUgQ1NTIHByb3BlcnR5IHRvIElETCBh
dHRyaWJ1dGUgYWxnb3JpdGhtIFtDU1NPTV0gdG8gcHJvcGVydHkuCiAgICAgcmV0dXJuIGdldEpT
UHJvcGVydHlOYW1lKGNzc1Byb3BlcnR5SWQpOwpAQCAtNjYwLDcgKzY2MCw3IEBAIGF1dG8gS2V5
ZnJhbWVFZmZlY3Q6OmdldEtleWZyYW1lcyhEb2N1bWVudCYgZG9jdW1lbnQpIC0+IFZlY3RvcjxD
b21wdXRlZEtleWZyYW1lCiAgICAgICAgIGNvbXB1dGVkS2V5ZnJhbWUub2Zmc2V0ID0ga2V5ZnJh
bWUua2V5KCk7CiAgICAgICAgIGNvbXB1dGVkS2V5ZnJhbWUuY29tcHV0ZWRPZmZzZXQgPSBrZXlm
cmFtZS5rZXkoKTsKICAgICAgICAgLy8gRm9yIENTUyB0cmFuc2l0aW9ucywgYWxsIGtleWZyYW1l
cyBzaG91bGQgcmV0dXJuICJsaW5lYXIiIHNpbmNlIHRoZSBlZmZlY3QncyBnbG9iYWwgdGltaW5n
IGZ1bmN0aW9uIGFwcGxpZXMuCi0gICAgICAgIGNvbXB1dGVkS2V5ZnJhbWUuZWFzaW5nID0gaXM8
Q1NTVHJhbnNpdGlvbj4oYW5pbWF0aW9uKCkpID8gImxpbmVhciIgOiB0aW1pbmdGdW5jdGlvbkZv
ckJsZW5kaW5nS2V5ZnJhbWUoa2V5ZnJhbWUpLT5jc3NUZXh0KCk7CisgICAgICAgIGNvbXB1dGVk
S2V5ZnJhbWUuZWFzaW5nID0gaXM8Q1NTVHJhbnNpdGlvbj4oYW5pbWF0aW9uKCkpID8gImxpbmVh
ciJfcyA6IHRpbWluZ0Z1bmN0aW9uRm9yQmxlbmRpbmdLZXlmcmFtZShrZXlmcmFtZSktPmNzc1Rl
eHQoKTsKIAogICAgICAgICBpZiAoZG9jdW1lbnQuc2V0dGluZ3MoKS53ZWJBbmltYXRpb25zQ29t
cG9zaXRlT3BlcmF0aW9uc0VuYWJsZWQoKSkgewogICAgICAgICAgICAgaWYgKGF1dG8gY29tcG9z
aXRlT3BlcmF0aW9uID0ga2V5ZnJhbWUuY29tcG9zaXRlT3BlcmF0aW9uKCkpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9HQ0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvR0NDb250cm9sbGVyLmNwcAppbmRleCA1ZjExZTBjNjM0ODc0MTQz
YWIzMTg1YTAxZGY5ZmIyZWUzNmYyNWFkLi41ZjkzNDkxNzU2ZjI3ZWMwNGQ0ZGVhOWQzODFiN2E2
NGM2Yzc5MjA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9HQ0NvbnRy
b2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0dDQ29udHJvbGxlci5j
cHAKQEAgLTU5LDcgKzU5LDcgQEAgR0NDb250cm9sbGVyOjpHQ0NvbnRyb2xsZXIoKQogewogICAg
IHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlRmxhZzsKICAgICBzdGQ6OmNhbGxfb25jZShvbmNl
RmxhZywgW10gewotICAgICAgICBQQUw6OnJlZ2lzdGVyTm90aWZ5Q2FsbGJhY2soImNvbS5hcHBs
ZS5XZWJLaXQuZHVtcEdDSGVhcCIsIFtdIHsKKyAgICAgICAgUEFMOjpyZWdpc3Rlck5vdGlmeUNh
bGxiYWNrKCJjb20uYXBwbGUuV2ViS2l0LmR1bXBHQ0hlYXAiX3MsIFtdIHsKICAgICAgICAgICAg
IEdDQ29udHJvbGxlcjo6c2luZ2xldG9uKCkuZHVtcEhlYXAoKTsKICAgICAgICAgfSk7CiAgICAg
fSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbUVsZW1l
bnRJbnRlcmZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21FbGVt
ZW50SW50ZXJmYWNlLmNwcAppbmRleCA0ZTFkMjRlZTk0MTc0YzlkZjc2ZDJiMmU1MDc5Yjc3ZGQw
ZTI2Zjk4Li5hOTFlMDJmMjNkNzUwMzBhOWI5YWJmODlhMzZmODRhYjE5YmE4OGIyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbUVsZW1lbnRJbnRlcmZhY2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tRWxlbWVudEludGVy
ZmFjZS5jcHAKQEAgLTIxMCw3ICsyMTAsNyBAQCB2b2lkIEpTQ3VzdG9tRWxlbWVudEludGVyZmFj
ZTo6dXBncmFkZUVsZW1lbnQoRWxlbWVudCYgZWxlbWVudCkKIAogICAgIGlmIChtX2lzU2hhZG93
RGlzYWJsZWQgJiYgZWxlbWVudC5zaGFkb3dSb290KCkpIHsKICAgICAgICAgZWxlbWVudC5jbGVh
clJlYWN0aW9uUXVldWVGcm9tRmFpbGVkQ3VzdG9tRWxlbWVudCgpOwotICAgICAgICByZXBvcnRF
eGNlcHRpb24obGV4aWNhbEdsb2JhbE9iamVjdCwgY3JlYXRlRE9NRXhjZXB0aW9uKGxleGljYWxH
bG9iYWxPYmplY3QsIE5vdFN1cHBvcnRlZEVycm9yLCAiRmFpbGVkIHRvIHVwZ3JhZGUgYW4gZWxl
bWVudCB3aXRoIHNoYWRvdyByb290OiB0aGUgY3VzdG9tIGVsZW1lbnQgZGVmaW5pdGlvbiBkaXNh
bGxvd3Mgc2hhZG93IHJvb3RzLiIpKTsKKyAgICAgICAgcmVwb3J0RXhjZXB0aW9uKGxleGljYWxH
bG9iYWxPYmplY3QsIGNyZWF0ZURPTUV4Y2VwdGlvbihsZXhpY2FsR2xvYmFsT2JqZWN0LCBOb3RT
dXBwb3J0ZWRFcnJvciwgIkZhaWxlZCB0byB1cGdyYWRlIGFuIGVsZW1lbnQgd2l0aCBzaGFkb3cg
cm9vdDogdGhlIGN1c3RvbSBlbGVtZW50IGRlZmluaXRpb24gZGlzYWxsb3dzIHNoYWRvdyByb290
cy4iX3MpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMjMxLDcgKzIzMSw3IEBAIHZv
aWQgSlNDdXN0b21FbGVtZW50SW50ZXJmYWNlOjp1cGdyYWRlRWxlbWVudChFbGVtZW50JiBlbGVt
ZW50KQogICAgIEVsZW1lbnQqIHdyYXBwZWRFbGVtZW50ID0gSlNFbGVtZW50Ojp0b1dyYXBwZWQo
dm0sIHJldHVybmVkRWxlbWVudCk7CiAgICAgaWYgKCF3cmFwcGVkRWxlbWVudCB8fCB3cmFwcGVk
RWxlbWVudCAhPSAmZWxlbWVudCkgewogICAgICAgICBlbGVtZW50LmNsZWFyUmVhY3Rpb25RdWV1
ZUZyb21GYWlsZWRDdXN0b21FbGVtZW50KCk7Ci0gICAgICAgIHJlcG9ydEV4Y2VwdGlvbihsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBjcmVhdGVET01FeGNlcHRpb24obGV4aWNhbEdsb2JhbE9iamVjdCwg
VHlwZUVycm9yLCAiQ3VzdG9tIGVsZW1lbnQgY29uc3RydWN0b3IgcmV0dXJuZWQgYSB3cm9uZyBl
bGVtZW50IikpOworICAgICAgICByZXBvcnRFeGNlcHRpb24obGV4aWNhbEdsb2JhbE9iamVjdCwg
Y3JlYXRlRE9NRXhjZXB0aW9uKGxleGljYWxHbG9iYWxPYmplY3QsIFR5cGVFcnJvciwgIkN1c3Rv
bSBlbGVtZW50IGNvbnN0cnVjdG9yIHJldHVybmVkIGEgd3JvbmcgZWxlbWVudCJfcykpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogICAgIGVsZW1lbnQuc2V0SXNEZWZpbmVkQ3VzdG9tRWxlbWVu
dCgqdGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNv
bnZlcnROdW1iZXJzLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnRO
dW1iZXJzLmgKaW5kZXggYjdiNjEzZGQ2YzM3ZWQxMTdiOTIyMDIwYWMxM2EzZDdjNTViYmNhZC4u
Mjk0MTNkOGQ5ODk2OTAxMGZhYTFjMzU0ZWEzYTg5YmFjNDAwYjA3MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Db252ZXJ0TnVtYmVycy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydE51bWJlcnMuaApAQCAtMjkzLDcgKzI5
Myw3IEBAIHRlbXBsYXRlPD4gc3RydWN0IENvbnZlcnRlcjxJRExGbG9hdD4gOiBEZWZhdWx0Q29u
dmVydGVyPElETEZsb2F0PiB7CiAgICAgICAgIGRvdWJsZSBudW1iZXIgPSB2YWx1ZS50b051bWJl
cigmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2Nv
cGUsIDAuMCk7CiAgICAgICAgIGlmIChVTkxJS0VMWShudW1iZXIgPCBzdGQ6Om51bWVyaWNfbGlt
aXRzPGZsb2F0Pjo6bG93ZXN0KCkgfHwgbnVtYmVyID4gc3RkOjpudW1lcmljX2xpbWl0czxmbG9h
dD46Om1heCgpKSkKLSAgICAgICAgICAgIHRocm93VHlwZUVycm9yKCZsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBzY29wZSwgIlRoZSBwcm92aWRlZCB2YWx1ZSBpcyBvdXRzaWRlIHRoZSByYW5nZSBvZiBh
IGZsb2F0Iik7CisgICAgICAgICAgICB0aHJvd1R5cGVFcnJvcigmbGV4aWNhbEdsb2JhbE9iamVj
dCwgc2NvcGUsICJUaGUgcHJvdmlkZWQgdmFsdWUgaXMgb3V0c2lkZSB0aGUgcmFuZ2Ugb2YgYSBm
bG9hdCJfcyk7CiAgICAgICAgIGlmIChVTkxJS0VMWSghc3RkOjppc2Zpbml0ZShudW1iZXIpKSkK
ICAgICAgICAgICAgIHRocm93Tm9uRmluaXRlVHlwZUVycm9yKGxleGljYWxHbG9iYWxPYmplY3Qs
IHNjb3BlKTsKICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGZsb2F0PihudW1iZXIpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFeGVjU3RhdGVJbnN0cnVtZW50
YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXhlY1N0YXRlSW5zdHJ1bWVu
dGF0aW9uLmgKaW5kZXggYzA0NGIwN2FiZmM3YjY5ZTMxOTEyODMzYjQ5NDQ2ODFiYzMyODA1My4u
MzEwMGZhYmYyZDg1NzEzNWM4YTUzZTk0NjdiZTIxYzc3ODllNjRjZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFeGVjU3RhdGVJbnN0cnVtZW50YXRpb24uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V4ZWNTdGF0ZUluc3RydW1lbnRhdGlvbi5o
CkBAIC00NSw3ICs0NSw3IEBAIGlubGluZSB2b2lkIEpTRXhlY1N0YXRlOjppbnN0cnVtZW50RnVu
Y3Rpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uCiAgICAgICAgIGxpbmVO
dW1iZXIgPSBjYWxsRGF0YS5qcy5mdW5jdGlvbkV4ZWN1dGFibGUtPmZpcnN0TGluZSgpOwogICAg
ICAgICBjb2x1bW5OdW1iZXIgPSBjYWxsRGF0YS5qcy5mdW5jdGlvbkV4ZWN1dGFibGUtPnN0YXJ0
Q29sdW1uKCk7CiAgICAgfSBlbHNlCi0gICAgICAgIHJlc291cmNlTmFtZSA9ICJ1bmRlZmluZWQi
OworICAgICAgICByZXNvdXJjZU5hbWUgPSAidW5kZWZpbmVkIl9zOwogICAgIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6d2lsbENhbGxGdW5jdGlvbihjb250ZXh0LCByZXNvdXJjZU5hbWUsIGxp
bmVOdW1iZXIsIGNvbHVtbk51bWJlcik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKaW5kZXggY2Q0YjNmMDc2ZGY3Mzk5MDU2ZjI3OGM2
NWU3MmQzMmQyNDc5ZDQ2MC4uNDg0ZDhjMmRmMzdiZWY3ZDE3ZGE0MWI3MDMyMjk0YjFkOWNmZmIx
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5j
cHAKQEAgLTYzMyw3ICs2MzMsNyBAQCBWYWx1ZU9yRXhjZXB0aW9uIFNjcmlwdENvbnRyb2xsZXI6
OmNhbGxJbldvcmxkKFJ1bkphdmFTY3JpcHRQYXJhbWV0ZXJzJiYgcGFyYW1ldAogICAgICAgICBh
dXRvIHNjb3BlID0gREVDTEFSRV9DQVRDSF9TQ09QRShnbG9iYWxPYmplY3Qudm0oKSk7CiAgICAg
ICAgIGF1dG8ganNBcmd1bWVudCA9IHNlcmlhbGl6ZWRBcmd1bWVudC0+ZGVzZXJpYWxpemUoZ2xv
YmFsT2JqZWN0LCAmZ2xvYmFsT2JqZWN0KTsKICAgICAgICAgaWYgKFVOTElLRUxZKHNjb3BlLmV4
Y2VwdGlvbigpKSkgewotICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gIlVuYWJsZSB0byBkZXNl
cmlhbGl6ZSBhcmd1bWVudCB0byBleGVjdXRlIGFzeW5jaHJvbm91cyBKYXZhU2NyaXB0IGZ1bmN0
aW9uIjsKKyAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9ICJVbmFibGUgdG8gZGVzZXJpYWxpemUg
YXJndW1lbnQgdG8gZXhlY3V0ZSBhc3luY2hyb25vdXMgSmF2YVNjcmlwdCBmdW5jdGlvbiJfczsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5tbSBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9v
YmpjL29iamNfcnVudGltZS5tbQppbmRleCAxNWNiNmEwOGU1YzM1YzE3MjJjZGQzN2NhMzhhYzVj
YTk0NGZhMTU5Li5hZTQyMjExNDFlZWNiODkxNTFjNjMxNjEwZTIyMjIyNGNjZmRkZmM2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLm1tCkBAIC0xNzYsNyArMTc2
LDcgQEAgYm9vbCBPYmpjQXJyYXk6OnNldFZhbHVlQXQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIHVuc2lnbmVkIGludCBpbmQKICAgICB9CiAKICAgICBpZiAoaW5kZXggPiBb
X2FycmF5IGNvdW50XSkgewotICAgICAgICB0aHJvd0V4Y2VwdGlvbihsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBzY29wZSwgY3JlYXRlUmFuZ2VFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCAiSW5kZXgg
ZXhjZWVkcyBhcnJheSBzaXplLiIpKTsKKyAgICAgICAgdGhyb3dFeGNlcHRpb24obGV4aWNhbEds
b2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZVJhbmdlRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwg
IkluZGV4IGV4Y2VlZHMgYXJyYXkgc2l6ZS4iX3MpKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIH0KICAgICAKQEAgLTE4OCw3ICsxODgsNyBAQCBib29sIE9iamNBcnJheTo6c2V0VmFsdWVB
dChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgdW5zaWduZWQgaW50IGluZAog
ICAgICAgICBbX2FycmF5IGluc2VydE9iamVjdDooX19icmlkZ2UgaWQpb1ZhbHVlLm9iamVjdFZh
bHVlIGF0SW5kZXg6aW5kZXhdOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9IEBjYXRjaChO
U0V4Y2VwdGlvbiogbG9jYWxFeGNlcHRpb24pIHsKLSAgICAgICAgdGhyb3dFeGNlcHRpb24obGV4
aWNhbEdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZUVycm9yKGxleGljYWxHbG9iYWxPYmplY3Qs
ICJPYmplY3RpdmUtQyBleGNlcHRpb24uIikpOworICAgICAgICB0aHJvd0V4Y2VwdGlvbihsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwg
Ik9iamVjdGl2ZS1DIGV4Y2VwdGlvbi4iX3MpKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IH0KIH0KQEAgLTE5OSwxMyArMTk5LDEzIEBAIEpTVmFsdWUgT2JqY0FycmF5Ojp2YWx1ZUF0KEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCB1bnNpZ25lZCBpbnQgaW5kCiAgICAg
YXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgaWYgKGluZGV4ID4g
W19hcnJheSBjb3VudF0pCi0gICAgICAgIHJldHVybiB0aHJvd0V4Y2VwdGlvbihsZXhpY2FsR2xv
YmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlUmFuZ2VFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCAi
SW5kZXggZXhjZWVkcyBhcnJheSBzaXplLiIpKTsKKyAgICAgICAgcmV0dXJuIHRocm93RXhjZXB0
aW9uKGxleGljYWxHbG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVSYW5nZUVycm9yKGxleGljYWxH
bG9iYWxPYmplY3QsICJJbmRleCBleGNlZWRzIGFycmF5IHNpemUuIl9zKSk7CiAgICAgQHRyeSB7
CiAgICAgICAgIGlkIG9iaiA9IFtfYXJyYXkgb2JqZWN0QXRJbmRleDppbmRleF07CiAgICAgICAg
IGlmIChvYmopCiAgICAgICAgICAgICByZXR1cm4gY29udmVydE9iamNWYWx1ZVRvVmFsdWUgKGxl
eGljYWxHbG9iYWxPYmplY3QsICZvYmosIE9iamNPYmplY3RUeXBlLCBtX3Jvb3RPYmplY3QuZ2V0
KCkpOwogICAgIH0gQGNhdGNoKE5TRXhjZXB0aW9uKiBsb2NhbEV4Y2VwdGlvbikgewotICAgICAg
ICByZXR1cm4gdGhyb3dFeGNlcHRpb24obGV4aWNhbEdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0
ZUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsICJPYmplY3RpdmUtQyBleGNlcHRpb24uIikpOwor
ICAgICAgICByZXR1cm4gdGhyb3dFeGNlcHRpb24obGV4aWNhbEdsb2JhbE9iamVjdCwgc2NvcGUs
IGNyZWF0ZUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsICJPYmplY3RpdmUtQyBleGNlcHRpb24u
Il9zKSk7CiAgICAgfQogICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwIGIvU291cmNlL1dlYkNvcmUv
YnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwCmluZGV4IGMwNWUzYTQwZTgwNTY2NWRjMGZkZWQwMmMz
MDUxOGVkOTYyODYwYzMuLmFmMzliYTExNDBkYTAzMDQzODg1YTNhODU1YTEzMzFlNGY1NjVhOWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5jcHAKQEAgLTEyNyw3ICsxMjcs
NyBAQCBib29sIFJ1bnRpbWVBcnJheTo6cHV0KEpTQ2VsbCogY2VsbCwgSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIFByb3BlcgogCiAgICAgUnVudGltZUFycmF5KiB0aGlzT2Jq
ZWN0ID0ganNDYXN0PFJ1bnRpbWVBcnJheSo+KGNlbGwpOwogICAgIGlmIChwcm9wZXJ0eU5hbWUg
PT0gdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoKSB7Ci0gICAgICAgIHRocm93RXhjZXB0aW9uKGxl
eGljYWxHbG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVSYW5nZUVycm9yKGxleGljYWxHbG9iYWxP
YmplY3QsICJSYW5nZSBlcnJvciIpKTsKKyAgICAgICAgdGhyb3dFeGNlcHRpb24obGV4aWNhbEds
b2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZVJhbmdlRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwg
IlJhbmdlIGVycm9yIl9zKSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAgICAgCkBA
IC0xNDQsNyArMTQ0LDcgQEAgYm9vbCBSdW50aW1lQXJyYXk6OnB1dEJ5SW5kZXgoSlNDZWxsKiBj
ZWxsLCBKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwKIAogICAgIFJ1bnRpbWVB
cnJheSogdGhpc09iamVjdCA9IGpzQ2FzdDxSdW50aW1lQXJyYXkqPihjZWxsKTsKICAgICBpZiAo
aW5kZXggPj0gdGhpc09iamVjdC0+Z2V0TGVuZ3RoKCkpIHsKLSAgICAgICAgdGhyb3dFeGNlcHRp
b24obGV4aWNhbEdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZVJhbmdlRXJyb3IobGV4aWNhbEds
b2JhbE9iamVjdCwgIlJhbmdlIGVycm9yIikpOworICAgICAgICB0aHJvd0V4Y2VwdGlvbihsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlUmFuZ2VFcnJvcihsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCAiUmFuZ2UgZXJyb3IiX3MpKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KICAg
ICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuY3BwCmluZGV4IGIyNGYyYWVm
MTk0YmFkMjViM2E2MWViODhlNzQxNDdkY2U5MzEwYzcuLjIwYmUxZWUyZmYyNTA0MmYzODgxNWVk
YTA2OGZkOWE0ODg5NTVlNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50
aW1lX29iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0
LmNwcApAQCAtMzEwLDcgKzMxMCw3IEBAIHZvaWQgUnVudGltZU9iamVjdDo6Z2V0T3duUHJvcGVy
dHlOYW1lcyhKU09iamVjdCogb2JqZWN0LCBKU0dsb2JhbE9iamVjdCogbGV4aWNhCiAKIEV4Y2Vw
dGlvbiogdGhyb3dSdW50aW1lT2JqZWN0SW52YWxpZEFjY2Vzc0Vycm9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBUaHJvd1Njb3BlJiBzY29wZSkKIHsKLSAgICByZXR1cm4g
dGhyb3dFeGNlcHRpb24obGV4aWNhbEdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZVJlZmVyZW5j
ZUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsICJUcnlpbmcgdG8gYWNjZXNzIG9iamVjdCBmcm9t
IGRlc3Ryb3llZCBwbHVnLWluLiIpKTsKKyAgICByZXR1cm4gdGhyb3dFeGNlcHRpb24obGV4aWNh
bEdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZVJlZmVyZW5jZUVycm9yKGxleGljYWxHbG9iYWxP
YmplY3QsICJUcnlpbmcgdG8gYWNjZXNzIG9iamVjdCBmcm9tIGRlc3Ryb3llZCBwbHVnLWluLiJf
cykpOwogfQogCiBKU0M6OkdDQ2xpZW50OjpJc29TdWJzcGFjZSogUnVudGltZU9iamVjdDo6c3Vi
c3BhY2VGb3JJbXBsKEpTQzo6Vk0mIHZtKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY29u
dGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkFjdGlvbnMuY3BwIGIvU291cmNlL1dlYkNv
cmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkFjdGlvbnMuY3BwCmluZGV4IDBj
YTYxYzEwMTRkMjQzNWU4NGFhMGRhZmUzMDIwZmZiMDc4ZTgzNzkuLjdiMjY1OWZjNjczZDUzNjA5
ZTVkMWI1ZTQ3ZmI2ODNhMTYzYWYwOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NvbnRl
bnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25BY3Rpb25zLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uQWN0aW9ucy5jcHAKQEAgLTIw
MSwxNSArMjAxLDE1IEBAIGF1dG8gTW9kaWZ5SGVhZGVyc0FjdGlvbjo6TW9kaWZ5SGVhZGVySW5m
bzo6cGFyc2UoY29uc3QgSlNPTjo6VmFsdWUmIGluZm9WYWx1ZSkKICAgICBpZiAoIW9iamVjdCkK
ICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNP
Tk1vZGlmeUhlYWRlcnNJbmZvTm90QURpY3Rpb25hcnkpOwogCi0gICAgU3RyaW5nIG9wZXJhdGlv
biA9IG9iamVjdC0+Z2V0U3RyaW5nKCJvcGVyYXRpb24iKTsKKyAgICBTdHJpbmcgb3BlcmF0aW9u
ID0gb2JqZWN0LT5nZXRTdHJpbmcoIm9wZXJhdGlvbiJfcyk7CiAgICAgaWYgKCFvcGVyYXRpb24p
CiAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpT
T05Nb2RpZnlIZWFkZXJzTWlzc2luZ09wZXJhdGlvbik7CiAKLSAgICBTdHJpbmcgaGVhZGVyID0g
b2JqZWN0LT5nZXRTdHJpbmcoImhlYWRlciIpOworICAgIFN0cmluZyBoZWFkZXIgPSBvYmplY3Qt
PmdldFN0cmluZygiaGVhZGVyIl9zKTsKICAgICBpZiAoIWhlYWRlcikKICAgICAgICAgcmV0dXJu
IG1ha2VVbmV4cGVjdGVkKENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTk1vZGlmeUhlYWRlcnNN
aXNzaW5nSGVhZGVyKTsKIAotICAgIFN0cmluZyB2YWx1ZSA9IG9iamVjdC0+Z2V0U3RyaW5nKCJ2
YWx1ZSIpOworICAgIFN0cmluZyB2YWx1ZSA9IG9iamVjdC0+Z2V0U3RyaW5nKCJ2YWx1ZSJfcyk7
CiAKICAgICBpZiAob3BlcmF0aW9uID09ICJzZXQiKSB7CiAgICAgICAgIGlmICghdmFsdWUpCkBA
IC0yODksMjcgKzI4OSwyNyBAQCBzaXplX3QgTW9kaWZ5SGVhZGVyc0FjdGlvbjo6TW9kaWZ5SGVh
ZGVySW5mbzo6c2VyaWFsaXplZExlbmd0aChTcGFuPGNvbnN0IHVpbnQ4XwogCiBFeHBlY3RlZDxS
ZWRpcmVjdEFjdGlvbiwgc3RkOjplcnJvcl9jb2RlPiBSZWRpcmVjdEFjdGlvbjo6cGFyc2UoY29u
c3QgSlNPTjo6T2JqZWN0JiByZWRpcmVjdE9iamVjdCwgY29uc3QgU3RyaW5nJiB1cmxGaWx0ZXIp
CiB7Ci0gICAgYXV0byByZWRpcmVjdCA9IHJlZGlyZWN0T2JqZWN0LmdldE9iamVjdCgicmVkaXJl
Y3QiKTsKKyAgICBhdXRvIHJlZGlyZWN0ID0gcmVkaXJlY3RPYmplY3QuZ2V0T2JqZWN0KCJyZWRp
cmVjdCJfcyk7CiAgICAgaWYgKCFyZWRpcmVjdCkKICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVj
dGVkKENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTlJlZGlyZWN0TWlzc2luZyk7CiAKLSAgICBp
ZiAoYXV0byBleHRlbnNpb25QYXRoID0gcmVkaXJlY3QtPmdldFN0cmluZygiZXh0ZW5zaW9uLXBh
dGgiKTsgISFleHRlbnNpb25QYXRoKSB7CisgICAgaWYgKGF1dG8gZXh0ZW5zaW9uUGF0aCA9IHJl
ZGlyZWN0LT5nZXRTdHJpbmcoImV4dGVuc2lvbi1wYXRoIl9zKTsgISFleHRlbnNpb25QYXRoKSB7
CiAgICAgICAgIGlmICghZXh0ZW5zaW9uUGF0aC5zdGFydHNXaXRoKCcvJykpCiAgICAgICAgICAg
ICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OUmVkaXJl
Y3RFeHRlbnNpb25QYXRoRG9lc05vdFN0YXJ0V2l0aFNsYXNoKTsKICAgICAgICAgcmV0dXJuIFJl
ZGlyZWN0QWN0aW9uIHsgRXh0ZW5zaW9uUGF0aEFjdGlvbiB7IFdURk1vdmUoZXh0ZW5zaW9uUGF0
aCkgfSB9OwogICAgIH0KIAotICAgIGlmIChhdXRvIHJlZ2V4U3Vic3RpdHV0aW9uID0gcmVkaXJl
Y3QtPmdldFN0cmluZygicmVnZXgtc3Vic3RpdHV0aW9uIik7ICEhcmVnZXhTdWJzdGl0dXRpb24p
CisgICAgaWYgKGF1dG8gcmVnZXhTdWJzdGl0dXRpb24gPSByZWRpcmVjdC0+Z2V0U3RyaW5nKCJy
ZWdleC1zdWJzdGl0dXRpb24iX3MpOyAhIXJlZ2V4U3Vic3RpdHV0aW9uKQogICAgICAgICByZXR1
cm4gUmVkaXJlY3RBY3Rpb24geyBSZWdleFN1YnN0aXR1dGlvbkFjdGlvbiB7IFdURk1vdmUocmVn
ZXhTdWJzdGl0dXRpb24pLCB1cmxGaWx0ZXIgfSB9OwogCi0gICAgaWYgKGF1dG8gdHJhbnNmb3Jt
ID0gcmVkaXJlY3QtPmdldE9iamVjdCgidHJhbnNmb3JtIikpIHsKKyAgICBpZiAoYXV0byB0cmFu
c2Zvcm0gPSByZWRpcmVjdC0+Z2V0T2JqZWN0KCJ0cmFuc2Zvcm0iX3MpKSB7CiAgICAgICAgIGF1
dG8gcGFyc2VkVHJhbnNmb3JtID0gVVJMVHJhbnNmb3JtQWN0aW9uOjpwYXJzZSgqdHJhbnNmb3Jt
KTsKICAgICAgICAgaWYgKCFwYXJzZWRUcmFuc2Zvcm0pCiAgICAgICAgICAgICByZXR1cm4gbWFr
ZVVuZXhwZWN0ZWQocGFyc2VkVHJhbnNmb3JtLmVycm9yKCkpOwogICAgICAgICByZXR1cm4gUmVk
aXJlY3RBY3Rpb24geyBXVEZNb3ZlKCpwYXJzZWRUcmFuc2Zvcm0pIH07CiAgICAgfQogCi0gICAg
aWYgKGF1dG8gdXJsU3RyaW5nID0gcmVkaXJlY3QtPmdldFN0cmluZygidXJsIik7ICEhdXJsU3Ry
aW5nKSB7CisgICAgaWYgKGF1dG8gdXJsU3RyaW5nID0gcmVkaXJlY3QtPmdldFN0cmluZygidXJs
Il9zKTsgISF1cmxTdHJpbmcpIHsKICAgICAgICAgVVJMIHVybCB7IHVybFN0cmluZyB9OwogICAg
ICAgICBpZiAoIXVybC5pc1ZhbGlkKCkpCiAgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0
ZWQoQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OUmVkaXJlY3RVUkxJbnZhbGlkKTsKQEAgLTQ4
MywxNSArNDgzLDE1IEBAIHZvaWQgUmVkaXJlY3RBY3Rpb246OlJlZ2V4U3Vic3RpdHV0aW9uQWN0
aW9uOjphcHBseVRvVVJMKFVSTCYgdXJsKSBjb25zdAogYXV0byBSZWRpcmVjdEFjdGlvbjo6VVJM
VHJhbnNmb3JtQWN0aW9uOjpwYXJzZShjb25zdCBKU09OOjpPYmplY3QmIHRyYW5zZm9ybSkgLT4g
RXhwZWN0ZWQ8VVJMVHJhbnNmb3JtQWN0aW9uLCBzdGQ6OmVycm9yX2NvZGU+CiB7CiAgICAgVVJM
VHJhbnNmb3JtQWN0aW9uIGFjdGlvbjsKLSAgICBpZiAoYXV0byBmcmFnbWVudCA9IHRyYW5zZm9y
bS5nZXRTdHJpbmcoImZyYWdtZW50Iik7ICEhZnJhZ21lbnQpIHsKKyAgICBpZiAoYXV0byBmcmFn
bWVudCA9IHRyYW5zZm9ybS5nZXRTdHJpbmcoImZyYWdtZW50Il9zKTsgISFmcmFnbWVudCkgewog
ICAgICAgICBpZiAoIWZyYWdtZW50LmlzRW1wdHkoKSAmJiAhZnJhZ21lbnQuc3RhcnRzV2l0aCgn
IycpKQogICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKENvbnRlbnRFeHRlbnNpb25F
cnJvcjo6SlNPTlJlZGlyZWN0SW52YWxpZEZyYWdtZW50KTsKICAgICAgICAgYWN0aW9uLmZyYWdt
ZW50ID0gV1RGTW92ZShmcmFnbWVudCk7CiAgICAgfQotICAgIGFjdGlvbi5ob3N0ID0gdHJhbnNm
b3JtLmdldFN0cmluZygiaG9zdCIpOwotICAgIGFjdGlvbi5wYXNzd29yZCA9IHRyYW5zZm9ybS5n
ZXRTdHJpbmcoInBhc3N3b3JkIik7Ci0gICAgYWN0aW9uLnBhdGggPSB0cmFuc2Zvcm0uZ2V0U3Ry
aW5nKCJwYXRoIik7Ci0gICAgYXV0byBwb3J0ID0gdHJhbnNmb3JtLmdldFN0cmluZygicG9ydCIp
OworICAgIGFjdGlvbi5ob3N0ID0gdHJhbnNmb3JtLmdldFN0cmluZygiaG9zdCJfcyk7CisgICAg
YWN0aW9uLnBhc3N3b3JkID0gdHJhbnNmb3JtLmdldFN0cmluZygicGFzc3dvcmQiX3MpOworICAg
IGFjdGlvbi5wYXRoID0gdHJhbnNmb3JtLmdldFN0cmluZygicGF0aCJfcyk7CisgICAgYXV0byBw
b3J0ID0gdHJhbnNmb3JtLmdldFN0cmluZygicG9ydCJfcyk7CiAgICAgaWYgKCEhcG9ydCkgewog
ICAgICAgICBpZiAocG9ydC5pc0VtcHR5KCkpCiAgICAgICAgICAgICBhY3Rpb24ucG9ydCA9IHsg
c3RkOjpvcHRpb25hbDx1aW50MTZfdD4geyB9IH07CkBAIC01MDMsNyArNTAzLDcgQEAgYXV0byBS
ZWRpcmVjdEFjdGlvbjo6VVJMVHJhbnNmb3JtQWN0aW9uOjpwYXJzZShjb25zdCBKU09OOjpPYmpl
Y3QmIHRyYW5zZm9ybSkgLT4KICAgICAgICAgfQogICAgIH0KIAotICAgIGlmIChhdXRvIHVuY2Fu
b25pY2FsaXplZFNjaGVtZSA9IHRyYW5zZm9ybS5nZXRTdHJpbmcoInNjaGVtZSIpOyAhIXVuY2Fu
b25pY2FsaXplZFNjaGVtZSkgeworICAgIGlmIChhdXRvIHVuY2Fub25pY2FsaXplZFNjaGVtZSA9
IHRyYW5zZm9ybS5nZXRTdHJpbmcoInNjaGVtZSJfcyk7ICEhdW5jYW5vbmljYWxpemVkU2NoZW1l
KSB7CiAgICAgICAgIGF1dG8gc2NoZW1lID0gV1RGOjpVUkxQYXJzZXI6Om1heWJlQ2Fub25pY2Fs
aXplU2NoZW1lKHVuY2Fub25pY2FsaXplZFNjaGVtZSk7CiAgICAgICAgIGlmICghc2NoZW1lKQog
ICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKENvbnRlbnRFeHRlbnNpb25FcnJvcjo6
SlNPTlJlZGlyZWN0VVJMU2NoZW1lSW52YWxpZCk7CkBAIC01MTEsMTQgKzUxMSwxNCBAQCBhdXRv
IFJlZGlyZWN0QWN0aW9uOjpVUkxUcmFuc2Zvcm1BY3Rpb246OnBhcnNlKGNvbnN0IEpTT046Ok9i
amVjdCYgdHJhbnNmb3JtKSAtPgogICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKENv
bnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTlJlZGlyZWN0VG9KYXZhU2NyaXB0VVJMKTsKICAgICAg
ICAgYWN0aW9uLnNjaGVtZSA9IFdURk1vdmUoKnNjaGVtZSk7CiAgICAgfQotICAgIGFjdGlvbi51
c2VybmFtZSA9IHRyYW5zZm9ybS5nZXRTdHJpbmcoInVzZXJuYW1lIik7Ci0gICAgaWYgKGF1dG8g
cXVlcnlUcmFuc2Zvcm0gPSB0cmFuc2Zvcm0uZ2V0T2JqZWN0KCJxdWVyeS10cmFuc2Zvcm0iKSkg
eworICAgIGFjdGlvbi51c2VybmFtZSA9IHRyYW5zZm9ybS5nZXRTdHJpbmcoInVzZXJuYW1lIl9z
KTsKKyAgICBpZiAoYXV0byBxdWVyeVRyYW5zZm9ybSA9IHRyYW5zZm9ybS5nZXRPYmplY3QoInF1
ZXJ5LXRyYW5zZm9ybSJfcykpIHsKICAgICAgICAgYXV0byBwYXJzZWRRdWVyeVRyYW5zZm9ybSA9
IFF1ZXJ5VHJhbnNmb3JtOjpwYXJzZSgqcXVlcnlUcmFuc2Zvcm0pOwogICAgICAgICBpZiAoIXBh
cnNlZFF1ZXJ5VHJhbnNmb3JtKQogICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKHBh
cnNlZFF1ZXJ5VHJhbnNmb3JtLmVycm9yKCkpOwogICAgICAgICBhY3Rpb24ucXVlcnlUcmFuc2Zv
cm0gPSAqcGFyc2VkUXVlcnlUcmFuc2Zvcm07CiAgICAgfSBlbHNlIHsKLSAgICAgICAgYXV0byBx
dWVyeSA9IHRyYW5zZm9ybS5nZXRTdHJpbmcoInF1ZXJ5Iik7CisgICAgICAgIGF1dG8gcXVlcnkg
PSB0cmFuc2Zvcm0uZ2V0U3RyaW5nKCJxdWVyeSJfcyk7CiAgICAgICAgIGlmICghcXVlcnkuaXNF
bXB0eSgpICYmICFxdWVyeS5zdGFydHNXaXRoKCc/JykpCiAgICAgICAgICAgICByZXR1cm4gbWFr
ZVVuZXhwZWN0ZWQoQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OUmVkaXJlY3RJbnZhbGlkUXVl
cnkpOwogICAgICAgICBhY3Rpb24ucXVlcnlUcmFuc2Zvcm0gPSBXVEZNb3ZlKHF1ZXJ5KTsKQEAg
LTY5OSw3ICs2OTksNyBAQCBhdXRvIFJlZGlyZWN0QWN0aW9uOjpVUkxUcmFuc2Zvcm1BY3Rpb246
OlF1ZXJ5VHJhbnNmb3JtOjpwYXJzZShjb25zdCBKU09OOjpPYmplYwogewogICAgIFF1ZXJ5VHJh
bnNmb3JtIHBhcnNlZFF1ZXJ5VHJhbnNmb3JtOwogCi0gICAgaWYgKGF1dG8gcmVtb3ZlUGFyYW1l
dGVyc1ZhbHVlID0gcXVlcnlUcmFuc2Zvcm0uZ2V0VmFsdWUoInJlbW92ZS1wYXJhbWV0ZXJzIikp
IHsKKyAgICBpZiAoYXV0byByZW1vdmVQYXJhbWV0ZXJzVmFsdWUgPSBxdWVyeVRyYW5zZm9ybS5n
ZXRWYWx1ZSgicmVtb3ZlLXBhcmFtZXRlcnMiX3MpKSB7CiAgICAgICAgIGF1dG8gcmVtb3ZlUGFy
YW1ldGVyc0FycmF5ID0gcmVtb3ZlUGFyYW1ldGVyc1ZhbHVlLT5hc0FycmF5KCk7CiAgICAgICAg
IGlmICghcmVtb3ZlUGFyYW1ldGVyc0FycmF5KQogICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4
cGVjdGVkKENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTlJlbW92ZVBhcmFtZXRlcnNOb3RTdHJp
bmdBcnJheSk7CkBAIC03MTMsNyArNzEzLDcgQEAgYXV0byBSZWRpcmVjdEFjdGlvbjo6VVJMVHJh
bnNmb3JtQWN0aW9uOjpRdWVyeVRyYW5zZm9ybTo6cGFyc2UoY29uc3QgSlNPTjo6T2JqZWMKICAg
ICAgICAgcGFyc2VkUXVlcnlUcmFuc2Zvcm0ucmVtb3ZlUGFyYW1zID0gV1RGTW92ZShyZW1vdmVQ
YXJhbWV0ZXJzVmVjdG9yKTsKICAgICB9CiAKLSAgICBpZiAoYXV0byBhZGRPclJlcGxhY2VQYXJh
bWV0ZXJzVmFsdWUgPSBxdWVyeVRyYW5zZm9ybS5nZXRWYWx1ZSgiYWRkLW9yLXJlcGxhY2UtcGFy
YW1ldGVycyIpKSB7CisgICAgaWYgKGF1dG8gYWRkT3JSZXBsYWNlUGFyYW1ldGVyc1ZhbHVlID0g
cXVlcnlUcmFuc2Zvcm0uZ2V0VmFsdWUoImFkZC1vci1yZXBsYWNlLXBhcmFtZXRlcnMiX3MpKSB7
CiAgICAgICAgIGF1dG8gYWRkT3JSZXBsYWNlUGFyYW1ldGVyc0FycmF5ID0gYWRkT3JSZXBsYWNl
UGFyYW1ldGVyc1ZhbHVlLT5hc0FycmF5KCk7CiAgICAgICAgIGlmICghYWRkT3JSZXBsYWNlUGFy
YW1ldGVyc0FycmF5KQogICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKENvbnRlbnRF
eHRlbnNpb25FcnJvcjo6SlNPTkFkZE9yUmVwbGFjZVBhcmFtZXRlcnNOb3RBcnJheSk7CkBAIC04
NTgsMTYgKzg1OCwxNiBAQCBhdXRvIFJlZGlyZWN0QWN0aW9uOjpVUkxUcmFuc2Zvcm1BY3Rpb246
OlF1ZXJ5VHJhbnNmb3JtOjpRdWVyeUtleVZhbHVlOjpwYXJzZShjbwogICAgIGlmICgha2V5VmFs
dWUpCiAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50RXh0ZW5zaW9uRXJyb3I6
OkpTT05BZGRPclJlcGxhY2VQYXJhbWV0ZXJzS2V5VmFsdWVOb3RBRGljdGlvbmFyeSk7CiAKLSAg
ICBTdHJpbmcga2V5ID0ga2V5VmFsdWUtPmdldFN0cmluZygia2V5Iik7CisgICAgU3RyaW5nIGtl
eSA9IGtleVZhbHVlLT5nZXRTdHJpbmcoImtleSJfcyk7CiAgICAgaWYgKCFrZXkpCiAgICAgICAg
IHJldHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05BZGRPclJl
cGxhY2VQYXJhbWV0ZXJzS2V5VmFsdWVNaXNzaW5nS2V5U3RyaW5nKTsKIAotICAgIFN0cmluZyB2
YWx1ZSA9IGtleVZhbHVlLT5nZXRTdHJpbmcoInZhbHVlIik7CisgICAgU3RyaW5nIHZhbHVlID0g
a2V5VmFsdWUtPmdldFN0cmluZygidmFsdWUiX3MpOwogICAgIGlmICghdmFsdWUpCiAgICAgICAg
IHJldHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05BZGRPclJl
cGxhY2VQYXJhbWV0ZXJzS2V5VmFsdWVNaXNzaW5nVmFsdWVTdHJpbmcpOwogCiAgICAgYm9vbCBy
ZXBsYWNlT25seSB7IGZhbHNlIH07Ci0gICAgaWYgKGF1dG8gYm9vbGVhbiA9IGtleVZhbHVlLT5n
ZXRCb29sZWFuKCJyZXBsYWNlLW9ubHkiKSkKKyAgICBpZiAoYXV0byBib29sZWFuID0ga2V5VmFs
dWUtPmdldEJvb2xlYW4oInJlcGxhY2Utb25seSJfcykpCiAgICAgICAgIHJlcGxhY2VPbmx5ID0g
KmJvb2xlYW47CiAKICAgICByZXR1cm4geyB7IFdURk1vdmUoa2V5KSwgcmVwbGFjZU9ubHksIFdU
Rk1vdmUodmFsdWUpIH0gfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRl
bnNpb25zL0NvbnRlbnRFeHRlbnNpb25Db21waWxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jb250
ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uQ29tcGlsZXIuY3BwCmluZGV4IGNmZWJmNWMz
MDc4YTk0MWQxOWM3OWEyOTJjNDcwYzllYmJmMjgyY2YuLmU4NzIxZDRhNzQ3OWVkNjgzMDE3ZjBh
NDg1ZTg0NmEzMjljOTBlMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRl
bnNpb25zL0NvbnRlbnRFeHRlbnNpb25Db21waWxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
Y29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkNvbXBpbGVyLmNwcApAQCAtMzE2LDcg
KzMxNiw3IEBAIHN0ZDo6ZXJyb3JfY29kZSBjb21waWxlUnVsZUxpc3QoQ29udGVudEV4dGVuc2lv
bkNvbXBpbGF0aW9uQ2xpZW50JiBjbGllbnQsIFN0cmluCiAgICAgICAgICAgICBzdGF0dXMgPSBV
UkxGaWx0ZXJQYXJzZXI6Ok9rOwogICAgICAgICB9CiAgICAgICAgIGlmIChzdGF0dXMgIT0gVVJM
RmlsdGVyUGFyc2VyOjpPaykgewotICAgICAgICAgICAgZGF0YUxvZ0YoIkVycm9yIHdoaWxlIHBh
cnNpbmcgJXM6ICVzXG4iLCB0cmlnZ2VyLnVybEZpbHRlci51dGY4KCkuZGF0YSgpLCBVUkxGaWx0
ZXJQYXJzZXI6OnN0YXR1c1N0cmluZyhzdGF0dXMpLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICAg
ICAgZGF0YUxvZ0YoIkVycm9yIHdoaWxlIHBhcnNpbmcgJXM6ICVzXG4iLCB0cmlnZ2VyLnVybEZp
bHRlci51dGY4KCkuZGF0YSgpLCBVUkxGaWx0ZXJQYXJzZXI6OnN0YXR1c1N0cmluZyhzdGF0dXMp
LmNoYXJhY3RlcnMoKSk7CiAgICAgICAgICAgICByZXR1cm4gQ29udGVudEV4dGVuc2lvbkVycm9y
OjpKU09OSW52YWxpZFJlZ2V4OwogICAgICAgICB9CiAKQEAgLTMzMyw3ICszMzMsNyBAQCBzdGQ6
OmVycm9yX2NvZGUgY29tcGlsZVJ1bGVMaXN0KENvbnRlbnRFeHRlbnNpb25Db21waWxhdGlvbkNs
aWVudCYgY2xpZW50LCBTdHJpbgogICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSBVUkxGaWx0
ZXJQYXJzZXI6Ok9rOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBpZiAoc3Rh
dHVzICE9IFVSTEZpbHRlclBhcnNlcjo6T2spIHsKLSAgICAgICAgICAgICAgICAgICAgZGF0YUxv
Z0YoIkVycm9yIHdoaWxlIHBhcnNpbmcgJXM6ICVzXG4iLCBjb25kaXRpb24udXRmOCgpLmRhdGEo
KSwgVVJMRmlsdGVyUGFyc2VyOjpzdGF0dXNTdHJpbmcoc3RhdHVzKS51dGY4KCkuZGF0YSgpKTsK
KyAgICAgICAgICAgICAgICAgICAgZGF0YUxvZ0YoIkVycm9yIHdoaWxlIHBhcnNpbmcgJXM6ICVz
XG4iLCBjb25kaXRpb24udXRmOCgpLmRhdGEoKSwgVVJMRmlsdGVyUGFyc2VyOjpzdGF0dXNTdHJp
bmcoc3RhdHVzKS5jaGFyYWN0ZXJzKCkpOwogICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ29u
dGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZFJlZ2V4OwogICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTM0NCw3ICszNDQsNyBAQCBzdGQ6OmVycm9yX2Nv
ZGUgY29tcGlsZVJ1bGVMaXN0KENvbnRlbnRFeHRlbnNpb25Db21waWxhdGlvbkNsaWVudCYgY2xp
ZW50LCBTdHJpbgogICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSBVUkxGaWx0ZXJQYXJzZXI6
Ok9rOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBpZiAoc3RhdHVzICE9IFVS
TEZpbHRlclBhcnNlcjo6T2spIHsKLSAgICAgICAgICAgICAgICAgICAgZGF0YUxvZ0YoIkVycm9y
IHdoaWxlIHBhcnNpbmcgJXM6ICVzXG4iLCBjb25kaXRpb24udXRmOCgpLmRhdGEoKSwgVVJMRmls
dGVyUGFyc2VyOjpzdGF0dXNTdHJpbmcoc3RhdHVzKS51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAg
ICAgICAgICAgICAgZGF0YUxvZ0YoIkVycm9yIHdoaWxlIHBhcnNpbmcgJXM6ICVzXG4iLCBjb25k
aXRpb24udXRmOCgpLmRhdGEoKSwgVVJMRmlsdGVyUGFyc2VyOjpzdGF0dXNTdHJpbmcoc3RhdHVz
KS5jaGFyYWN0ZXJzKCkpOwogICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ29udGVudEV4dGVu
c2lvbkVycm9yOjpKU09OSW52YWxpZFJlZ2V4OwogICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNp
b25zL0NvbnRlbnRFeHRlbnNpb25QYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4
dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvblBhcnNlci5jcHAKaW5kZXggNTEzZmQ5MzllNjZkYjVj
YTI1MTI5ZjU3NmI5ODJiNGY4Yzk4MjRlMS4uNzQ0MTY1ZjBiNTIwMTVjY2VmZDc3ZjY4N2NlNTNj
YzA1YzFiMTU2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMv
Q29udGVudEV4dGVuc2lvblBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4
dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvblBhcnNlci5jcHAKQEAgLTkzLDcgKzkzLDcgQEAgc3Rh
dGljIEV4cGVjdGVkPFZlY3RvcjxTdHJpbmc+LCBzdGQ6OmVycm9yX2NvZGU+IGdldERvbWFpbkxp
c3QoY29uc3QgSlNPTjo6QXJyYXkKICAgICAgICAgICAgIHsgJyQnLCAiXFwkIiB9CiAgICAgICAg
IH0gfTsKICAgICAgICAgZm9yIChhdXRvJiBwYWlyIDogZXNjYXBlVGFibGUpCi0gICAgICAgICAg
ICBkb21haW4gPSBkb21haW4ucmVwbGFjZShwYWlyLmZpcnN0LCBwYWlyLnNlY29uZCk7CisgICAg
ICAgICAgICBkb21haW4gPSBkb21haW4ucmVwbGFjZShwYWlyLmZpcnN0LCBTdHJpbmcgeyBwYWly
LnNlY29uZCB9KTsKIAogICAgICAgICBjb25zdCBjaGFyKiBwcm90b2NvbFJlZ2V4ID0gIlthLXpd
W2EteisuLV0qOlxcL1xcLyI7CiAgICAgICAgIGNvbnN0IGNoYXIqIGFsbG93U3ViZG9tYWluc1Jl
Z2V4ID0gIiguKlxcLikqIjsKQEAgLTExOSwyNyArMTE5LDI3IEBAIHN0YXRpYyBzdGQ6OmVycm9y
X2NvZGUgZ2V0VHlwZUZsYWdzKGNvbnN0IEpTT046OkFycmF5JiBhcnJheSwgUmVzb3VyY2VGbGFn
cyYgZmxhCiAgICAgCiBzdGF0aWMgRXhwZWN0ZWQ8VHJpZ2dlciwgc3RkOjplcnJvcl9jb2RlPiBs
b2FkVHJpZ2dlcihjb25zdCBKU09OOjpPYmplY3QmIHJ1bGVPYmplY3QpCiB7Ci0gICAgYXV0byB0
cmlnZ2VyT2JqZWN0ID0gcnVsZU9iamVjdC5nZXRPYmplY3QoInRyaWdnZXIiKTsKKyAgICBhdXRv
IHRyaWdnZXJPYmplY3QgPSBydWxlT2JqZWN0LmdldE9iamVjdCgidHJpZ2dlciJfcyk7CiAgICAg
aWYgKCF0cmlnZ2VyT2JqZWN0KQogICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoQ29udGVu
dEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZFRyaWdnZXIpOwogCi0gICAgU3RyaW5nIHVybEZp
bHRlciA9IHRyaWdnZXJPYmplY3QtPmdldFN0cmluZygidXJsLWZpbHRlciIpOworICAgIFN0cmlu
ZyB1cmxGaWx0ZXIgPSB0cmlnZ2VyT2JqZWN0LT5nZXRTdHJpbmcoInVybC1maWx0ZXIiX3MpOwog
ICAgIGlmICh1cmxGaWx0ZXIuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0
ZWQoQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZFVSTEZpbHRlckluVHJpZ2dlcik7
CiAKICAgICBUcmlnZ2VyIHRyaWdnZXI7CiAgICAgdHJpZ2dlci51cmxGaWx0ZXIgPSB1cmxGaWx0
ZXI7CiAKLSAgICBpZiAoc3RkOjpvcHRpb25hbDxib29sPiB1cmxGaWx0ZXJDYXNlU2Vuc2l0aXZl
VmFsdWUgPSB0cmlnZ2VyT2JqZWN0LT5nZXRCb29sZWFuKCJ1cmwtZmlsdGVyLWlzLWNhc2Utc2Vu
c2l0aXZlIikpCisgICAgaWYgKHN0ZDo6b3B0aW9uYWw8Ym9vbD4gdXJsRmlsdGVyQ2FzZVNlbnNp
dGl2ZVZhbHVlID0gdHJpZ2dlck9iamVjdC0+Z2V0Qm9vbGVhbigidXJsLWZpbHRlci1pcy1jYXNl
LXNlbnNpdGl2ZSJfcykpCiAgICAgICAgIHRyaWdnZXIudXJsRmlsdGVySXNDYXNlU2Vuc2l0aXZl
ID0gKnVybEZpbHRlckNhc2VTZW5zaXRpdmVWYWx1ZTsKIAotICAgIGlmIChzdGQ6Om9wdGlvbmFs
PGJvb2w+IHRvcFVSTEZpbHRlckNhc2VTZW5zaXRpdmVWYWx1ZSA9IHRyaWdnZXJPYmplY3QtPmdl
dEJvb2xlYW4oInRvcC11cmwtZmlsdGVyLWlzLWNhc2Utc2Vuc2l0aXZlIikpCisgICAgaWYgKHN0
ZDo6b3B0aW9uYWw8Ym9vbD4gdG9wVVJMRmlsdGVyQ2FzZVNlbnNpdGl2ZVZhbHVlID0gdHJpZ2dl
ck9iamVjdC0+Z2V0Qm9vbGVhbigidG9wLXVybC1maWx0ZXItaXMtY2FzZS1zZW5zaXRpdmUiX3Mp
KQogICAgICAgICB0cmlnZ2VyLnRvcFVSTEZpbHRlcklzQ2FzZVNlbnNpdGl2ZSA9ICp0b3BVUkxG
aWx0ZXJDYXNlU2Vuc2l0aXZlVmFsdWU7CiAKLSAgICBpZiAoc3RkOjpvcHRpb25hbDxib29sPiBm
cmFtZVVSTEZpbHRlckNhc2VTZW5zaXRpdmVWYWx1ZSA9IHRyaWdnZXJPYmplY3QtPmdldEJvb2xl
YW4oImZyYW1lLXVybC1maWx0ZXItaXMtY2FzZS1zZW5zaXRpdmUiKSkKKyAgICBpZiAoc3RkOjpv
cHRpb25hbDxib29sPiBmcmFtZVVSTEZpbHRlckNhc2VTZW5zaXRpdmVWYWx1ZSA9IHRyaWdnZXJP
YmplY3QtPmdldEJvb2xlYW4oImZyYW1lLXVybC1maWx0ZXItaXMtY2FzZS1zZW5zaXRpdmUiX3Mp
KQogICAgICAgICB0cmlnZ2VyLmZyYW1lVVJMRmlsdGVySXNDYXNlU2Vuc2l0aXZlID0gKmZyYW1l
VVJMRmlsdGVyQ2FzZVNlbnNpdGl2ZVZhbHVlOwogCi0gICAgaWYgKGF1dG8gcmVzb3VyY2VUeXBl
VmFsdWUgPSB0cmlnZ2VyT2JqZWN0LT5nZXRWYWx1ZSgicmVzb3VyY2UtdHlwZSIpKSB7CisgICAg
aWYgKGF1dG8gcmVzb3VyY2VUeXBlVmFsdWUgPSB0cmlnZ2VyT2JqZWN0LT5nZXRWYWx1ZSgicmVz
b3VyY2UtdHlwZSJfcykpIHsKICAgICAgICAgYXV0byByZXNvdXJjZVR5cGVBcnJheSA9IHJlc291
cmNlVHlwZVZhbHVlLT5hc0FycmF5KCk7CiAgICAgICAgIGlmICghcmVzb3VyY2VUeXBlQXJyYXkp
CiAgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoQ29udGVudEV4dGVuc2lvbkVycm9y
OjpKU09OSW52YWxpZFRyaWdnZXJGbGFnc0FycmF5KTsKQEAgLTE0Nyw3ICsxNDcsNyBAQCBzdGF0
aWMgRXhwZWN0ZWQ8VHJpZ2dlciwgc3RkOjplcnJvcl9jb2RlPiBsb2FkVHJpZ2dlcihjb25zdCBK
U09OOjpPYmplY3QmIHJ1bGVPYgogICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKGVy
cm9yKTsKICAgICB9CiAKLSAgICBpZiAoYXV0byBsb2FkVHlwZVZhbHVlID0gdHJpZ2dlck9iamVj
dC0+Z2V0VmFsdWUoImxvYWQtdHlwZSIpKSB7CisgICAgaWYgKGF1dG8gbG9hZFR5cGVWYWx1ZSA9
IHRyaWdnZXJPYmplY3QtPmdldFZhbHVlKCJsb2FkLXR5cGUiX3MpKSB7CiAgICAgICAgIGF1dG8g
bG9hZFR5cGVBcnJheSA9IGxvYWRUeXBlVmFsdWUtPmFzQXJyYXkoKTsKICAgICAgICAgaWYgKCFs
b2FkVHlwZUFycmF5KQogICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKENvbnRlbnRF
eHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWRUcmlnZ2VyRmxhZ3NBcnJheSk7CkBAIC0xNTUsNyAr
MTU1LDcgQEAgc3RhdGljIEV4cGVjdGVkPFRyaWdnZXIsIHN0ZDo6ZXJyb3JfY29kZT4gbG9hZFRy
aWdnZXIoY29uc3QgSlNPTjo6T2JqZWN0JiBydWxlT2IKICAgICAgICAgICAgIHJldHVybiBtYWtl
VW5leHBlY3RlZChlcnJvcik7CiAgICAgfQogCi0gICAgaWYgKGF1dG8gbG9hZENvbnRleHRWYWx1
ZSA9IHRyaWdnZXJPYmplY3QtPmdldFZhbHVlKCJsb2FkLWNvbnRleHQiKSkgeworICAgIGlmIChh
dXRvIGxvYWRDb250ZXh0VmFsdWUgPSB0cmlnZ2VyT2JqZWN0LT5nZXRWYWx1ZSgibG9hZC1jb250
ZXh0Il9zKSkgewogICAgICAgICBhdXRvIGxvYWRDb250ZXh0QXJyYXkgPSBsb2FkQ29udGV4dFZh
bHVlLT5hc0FycmF5KCk7CiAgICAgICAgIGlmICghbG9hZENvbnRleHRBcnJheSkKICAgICAgICAg
ICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZh
bGlkVHJpZ2dlckZsYWdzQXJyYXkpOwpAQCAtMjEyLDExICsyMTIsMTEgQEAgYm9vbCBpc1ZhbGlk
Q1NTU2VsZWN0b3IoY29uc3QgU3RyaW5nJiBzZWxlY3RvcikKIAogc3RhdGljIHN0ZDo6b3B0aW9u
YWw8RXhwZWN0ZWQ8QWN0aW9uLCBzdGQ6OmVycm9yX2NvZGU+PiBsb2FkQWN0aW9uKGNvbnN0IEpT
T046Ok9iamVjdCYgcnVsZU9iamVjdCwgY29uc3QgU3RyaW5nJiB1cmxGaWx0ZXIpCiB7Ci0gICAg
YXV0byBhY3Rpb25PYmplY3QgPSBydWxlT2JqZWN0LmdldE9iamVjdCgiYWN0aW9uIik7CisgICAg
YXV0byBhY3Rpb25PYmplY3QgPSBydWxlT2JqZWN0LmdldE9iamVjdCgiYWN0aW9uIl9zKTsKICAg
ICBpZiAoIWFjdGlvbk9iamVjdCkKICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKENvbnRl
bnRFeHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWRBY3Rpb24pOwogCi0gICAgU3RyaW5nIGFjdGlv
blR5cGUgPSBhY3Rpb25PYmplY3QtPmdldFN0cmluZygidHlwZSIpOworICAgIFN0cmluZyBhY3Rp
b25UeXBlID0gYWN0aW9uT2JqZWN0LT5nZXRTdHJpbmcoInR5cGUiX3MpOwogCiAgICAgaWYgKGFj
dGlvblR5cGUgPT0gImJsb2NrIikKICAgICAgICAgcmV0dXJuIEFjdGlvbiB7IEJsb2NrTG9hZEFj
dGlvbigpIH07CkBAIC0yMjUsNyArMjI1LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8RXhwZWN0
ZWQ8QWN0aW9uLCBzdGQ6OmVycm9yX2NvZGU+PiBsb2FkQWN0aW9uKGNvbnN0IEpTT046Ok8KICAg
ICBpZiAoYWN0aW9uVHlwZSA9PSAiYmxvY2stY29va2llcyIpCiAgICAgICAgIHJldHVybiBBY3Rp
b24geyBCbG9ja0Nvb2tpZXNBY3Rpb24oKSB9OwogICAgIGlmIChhY3Rpb25UeXBlID09ICJjc3Mt
ZGlzcGxheS1ub25lIikgewotICAgICAgICBTdHJpbmcgc2VsZWN0b3JTdHJpbmcgPSBhY3Rpb25P
YmplY3QtPmdldFN0cmluZygic2VsZWN0b3IiKTsKKyAgICAgICAgU3RyaW5nIHNlbGVjdG9yU3Ry
aW5nID0gYWN0aW9uT2JqZWN0LT5nZXRTdHJpbmcoInNlbGVjdG9yIl9zKTsKICAgICAgICAgaWYg
KCFzZWxlY3RvclN0cmluZykKICAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChDb250
ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkQ1NTRGlzcGxheU5vbmVBY3Rpb25UeXBlKTsK
ICAgICAgICAgaWYgKCFpc1ZhbGlkQ1NTU2VsZWN0b3Ioc2VsZWN0b3JTdHJpbmcpKQpAQCAtMjM1
LDcgKzIzNSw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEV4cGVjdGVkPEFjdGlvbiwgc3RkOjpl
cnJvcl9jb2RlPj4gbG9hZEFjdGlvbihjb25zdCBKU09OOjpPCiAgICAgaWYgKGFjdGlvblR5cGUg
PT0gIm1ha2UtaHR0cHMiKQogICAgICAgICByZXR1cm4gQWN0aW9uIHsgTWFrZUhUVFBTQWN0aW9u
KCkgfTsKICAgICBpZiAoYWN0aW9uVHlwZSA9PSAibm90aWZ5IikgewotICAgICAgICBTdHJpbmcg
bm90aWZpY2F0aW9uID0gYWN0aW9uT2JqZWN0LT5nZXRTdHJpbmcoIm5vdGlmaWNhdGlvbiIpOwor
ICAgICAgICBTdHJpbmcgbm90aWZpY2F0aW9uID0gYWN0aW9uT2JqZWN0LT5nZXRTdHJpbmcoIm5v
dGlmaWNhdGlvbiJfcyk7CiAgICAgICAgIGlmICghbm90aWZpY2F0aW9uKQogICAgICAgICAgICAg
cmV0dXJuIG1ha2VVbmV4cGVjdGVkKENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWRO
b3RpZmljYXRpb24pOwogICAgICAgICByZXR1cm4gQWN0aW9uIHsgTm90aWZ5QWN0aW9uIHsgeyBX
VEZNb3ZlKG5vdGlmaWNhdGlvbikgfSB9IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
b250ZW50ZXh0ZW5zaW9ucy9TZXJpYWxpemVkTkZBLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NvbnRl
bnRleHRlbnNpb25zL1NlcmlhbGl6ZWRORkEuY3BwCmluZGV4IDA0YzZkYTVhODQ4ZDA4OTFmMzNm
NGY4MzlkYTk1MmI4Yzc2NzlhMDkuLjA1MmI1OTdiY2ZiOTJhNzQzNzkzZjkxNWVkNjk2ZTdhMGU5
ZTQ4ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL1Nlcmlh
bGl6ZWRORkEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL1Nlcmlh
bGl6ZWRORkEuY3BwCkBAIC01Miw3ICs1Miw3IEBAIGJvb2wgd3JpdGVBbGxUb0ZpbGUoRmlsZVN5
c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlIGZpbGUsIGNvbnN0IFQmIGNvbnRhaW5lcikKIHN0ZDo6
b3B0aW9uYWw8U2VyaWFsaXplZE5GQT4gU2VyaWFsaXplZE5GQTo6c2VyaWFsaXplKE5GQSYmIG5m
YSkKIHsKICAgICBhdXRvIGZpbGUgPSBGaWxlU3lzdGVtOjppbnZhbGlkUGxhdGZvcm1GaWxlSGFu
ZGxlOwotICAgIGF1dG8gZmlsZW5hbWUgPSBGaWxlU3lzdGVtOjpvcGVuVGVtcG9yYXJ5RmlsZSgi
U2VyaWFsaXplZE5GQSIsIGZpbGUpOworICAgIGF1dG8gZmlsZW5hbWUgPSBGaWxlU3lzdGVtOjpv
cGVuVGVtcG9yYXJ5RmlsZSgiU2VyaWFsaXplZE5GQSJfcywgZmlsZSk7CiAgICAgaWYgKCFGaWxl
U3lzdGVtOjppc0hhbmRsZVZhbGlkKGZpbGUpKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9VUkxGaWx0
ZXJQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvVVJMRmlsdGVy
UGFyc2VyLmNwcAppbmRleCBkODcyOWQzOTBkOTA3MzBhMGViN2RiM2E4YzlmMTcxOGM4NmY3YTNh
Li40ZmYxMjI1ZmFhODIyODViMzFjZWQ1NzU5ZGI4OTc3NjkxODllNzRhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9VUkxGaWx0ZXJQYXJzZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL1VSTEZpbHRlclBhcnNlci5jcHAKQEAg
LTM2OSwzOSArMzY5LDM5IEBAIFVSTEZpbHRlclBhcnNlcjo6UGFyc2VTdGF0dXMgVVJMRmlsdGVy
UGFyc2VyOjphZGRQYXR0ZXJuKGNvbnN0IFN0cmluZyYgcGF0dGVybiwKICAgICByZXR1cm4gc3Rh
dHVzOwogfQogCi1TdHJpbmcgVVJMRmlsdGVyUGFyc2VyOjpzdGF0dXNTdHJpbmcoUGFyc2VTdGF0
dXMgc3RhdHVzKQorQVNDSUlMaXRlcmFsIFVSTEZpbHRlclBhcnNlcjo6c3RhdHVzU3RyaW5nKFBh
cnNlU3RhdHVzIHN0YXR1cykKIHsKICAgICBzd2l0Y2ggKHN0YXR1cykgewogICAgIGNhc2UgT2s6
Ci0gICAgICAgIHJldHVybiAiT2siOworICAgICAgICByZXR1cm4gIk9rIl9zOwogICAgIGNhc2Ug
TWF0Y2hlc0V2ZXJ5dGhpbmc6Ci0gICAgICAgIHJldHVybiAiTWF0Y2hlcyBldmVyeXRoaW5nLiI7
CisgICAgICAgIHJldHVybiAiTWF0Y2hlcyBldmVyeXRoaW5nLiJfczsKICAgICBjYXNlIE5vbkFT
Q0lJOgotICAgICAgICByZXR1cm4gIk9ubHkgQVNDSUkgY2hhcmFjdGVycyBhcmUgc3VwcG9ydGVk
IGluIHBhdHRlcm4uIjsKKyAgICAgICAgcmV0dXJuICJPbmx5IEFTQ0lJIGNoYXJhY3RlcnMgYXJl
IHN1cHBvcnRlZCBpbiBwYXR0ZXJuLiJfczsKICAgICBjYXNlIFVuc3VwcG9ydGVkQ2hhcmFjdGVy
Q2xhc3M6Ci0gICAgICAgIHJldHVybiAiQ2hhcmFjdGVyIGNsYXNzIGlzIG5vdCBzdXBwb3J0ZWQu
IjsKKyAgICAgICAgcmV0dXJuICJDaGFyYWN0ZXIgY2xhc3MgaXMgbm90IHN1cHBvcnRlZC4iX3M7
CiAgICAgY2FzZSBCYWNrUmVmZXJlbmNlOgotICAgICAgICByZXR1cm4gIlBhdHRlcm5zIGNhbm5v
dCBjb250YWluIGJhY2tyZWZlcmVuY2VzLiI7CisgICAgICAgIHJldHVybiAiUGF0dGVybnMgY2Fu
bm90IGNvbnRhaW4gYmFja3JlZmVyZW5jZXMuIl9zOwogICAgIGNhc2UgRm9yd2FyZFJlZmVyZW5j
ZToKLSAgICAgICAgcmV0dXJuICJQYXR0ZXJucyBjYW5ub3QgY29udGFpbiBmb3J3YXJkIHJlZmVy
ZW5jZXMuIjsKKyAgICAgICAgcmV0dXJuICJQYXR0ZXJucyBjYW5ub3QgY29udGFpbiBmb3J3YXJk
IHJlZmVyZW5jZXMuIl9zOwogICAgIGNhc2UgTWlzcGxhY2VkU3RhcnRPZkxpbmU6Ci0gICAgICAg
IHJldHVybiAiU3RhcnQgb2YgbGluZSBhc3NlcnRpb24gY2FuIG9ubHkgYXBwZWFyIGFzIHRoZSBm
aXJzdCB0ZXJtIGluIGEgZmlsdGVyLiI7CisgICAgICAgIHJldHVybiAiU3RhcnQgb2YgbGluZSBh
c3NlcnRpb24gY2FuIG9ubHkgYXBwZWFyIGFzIHRoZSBmaXJzdCB0ZXJtIGluIGEgZmlsdGVyLiJf
czsKICAgICBjYXNlIFdvcmRCb3VuZGFyeToKLSAgICAgICAgcmV0dXJuICJXb3JkIGJvdW5kYXJp
ZXMgYXNzZXJ0aW9ucyBhcmUgbm90IHN1cHBvcnRlZCB5ZXQuIjsKKyAgICAgICAgcmV0dXJuICJX
b3JkIGJvdW5kYXJpZXMgYXNzZXJ0aW9ucyBhcmUgbm90IHN1cHBvcnRlZCB5ZXQuIl9zOwogICAg
IGNhc2UgQXRvbUNoYXJhY3RlcjoKLSAgICAgICAgcmV0dXJuICJCdWlsdGlucyBjaGFyYWN0ZXIg
Y2xhc3MgYXRvbXMgYXJlIG5vdCBzdXBwb3J0ZWQgeWV0LiI7CisgICAgICAgIHJldHVybiAiQnVp
bHRpbnMgY2hhcmFjdGVyIGNsYXNzIGF0b21zIGFyZSBub3Qgc3VwcG9ydGVkIHlldC4iX3M7CiAg
ICAgY2FzZSBHcm91cDoKLSAgICAgICAgcmV0dXJuICJHcm91cHMgYXJlIG5vdCBzdXBwb3J0ZWQg
eWV0LiI7CisgICAgICAgIHJldHVybiAiR3JvdXBzIGFyZSBub3Qgc3VwcG9ydGVkIHlldC4iX3M7
CiAgICAgY2FzZSBEaXNqdW5jdGlvbjoKLSAgICAgICAgcmV0dXJuICJEaXNqdW5jdGlvbnMgYXJl
IG5vdCBzdXBwb3J0ZWQgeWV0LiI7CisgICAgICAgIHJldHVybiAiRGlzanVuY3Rpb25zIGFyZSBu
b3Qgc3VwcG9ydGVkIHlldC4iX3M7CiAgICAgY2FzZSBNaXNwbGFjZWRFbmRPZkxpbmU6Ci0gICAg
ICAgIHJldHVybiAiVGhlIGVuZCBvZiBsaW5lIGFzc2VydGlvbiBtdXN0IGJlIHRoZSBsYXN0IHRl
cm0gaW4gYW4gZXhwcmVzc2lvbi4iOworICAgICAgICByZXR1cm4gIlRoZSBlbmQgb2YgbGluZSBh
c3NlcnRpb24gbXVzdCBiZSB0aGUgbGFzdCB0ZXJtIGluIGFuIGV4cHJlc3Npb24uIl9zOwogICAg
IGNhc2UgRW1wdHlQYXR0ZXJuOgotICAgICAgICByZXR1cm4gIkVtcHR5IHBhdHRlcm4uIjsKKyAg
ICAgICAgcmV0dXJuICJFbXB0eSBwYXR0ZXJuLiJfczsKICAgICBjYXNlIFlhcnJFcnJvcjoKLSAg
ICAgICAgcmV0dXJuICJJbnRlcm5hbCBlcnJvciBpbiBZQVJSLiI7CisgICAgICAgIHJldHVybiAi
SW50ZXJuYWwgZXJyb3IgaW4gWUFSUi4iX3M7CiAgICAgY2FzZSBJbnZhbGlkUXVhbnRpZmllcjoK
LSAgICAgICAgcmV0dXJuICJBcmJpdHJhcnkgYXRvbSByZXBldGl0aW9ucyBhcmUgbm90IHN1cHBv
cnRlZC4iOworICAgICAgICByZXR1cm4gIkFyYml0cmFyeSBhdG9tIHJlcGV0aXRpb25zIGFyZSBu
b3Qgc3VwcG9ydGVkLiJfczsKICAgICB9CiAKICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hF
RCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvVVJMRmls
dGVyUGFyc2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9VUkxGaWx0ZXJQ
YXJzZXIuaAppbmRleCBiNWMxZjZkOWZkMmU3Yzk0Y2IyNTY1NzU2ODlkZjRiNzA3MDc5YTlkLi44
ODk4M2I1NWMzY2JlZDU5ZjRhNGEwMWFlZDI1YTQzMmM4MDI4YjQxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9VUkxGaWx0ZXJQYXJzZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9VUkxGaWx0ZXJQYXJzZXIuaApAQCAtNTQsNyAr
NTQsNyBAQCBwdWJsaWM6CiAgICAgICAgIFlhcnJFcnJvciwKICAgICAgICAgSW52YWxpZFF1YW50
aWZpZXIsCiAgICAgfTsKLSAgICBzdGF0aWMgU3RyaW5nIHN0YXR1c1N0cmluZyhQYXJzZVN0YXR1
cyk7CisgICAgc3RhdGljIEFTQ0lJTGl0ZXJhbCBzdGF0dXNTdHJpbmcoUGFyc2VTdGF0dXMpOwog
ICAgIGV4cGxpY2l0IFVSTEZpbHRlclBhcnNlcihDb21iaW5lZFVSTEZpbHRlcnMmKTsKICAgICB+
VVJMRmlsdGVyUGFyc2VyKCk7CiAgICAgUGFyc2VTdGF0dXMgYWRkUGF0dGVybihjb25zdCBTdHJp
bmcmIHBhdHRlcm4sIGJvb2wgcGF0dGVybklzQ2FzZVNlbnNpdGl2ZSwgdWludDY0X3QgcGF0dGVy
bklkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9TdWJ0bGVDcnlwdG8uY3Bw
IGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL1N1YnRsZUNyeXB0by5jcHAKaW5kZXggZWFhMzIxOGZj
ZjdiNzc4NTRmYjIzODVlNTAxYTk5OTQzNmZiZWI1OC4uOWQ2ZjQzMDM2NTk4MmQ2ZTk1MGU5YzFh
NmExZDZiMmMxYTdkMzk2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL1N1YnRs
ZUNyeXB0by5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL1N1YnRsZUNyeXB0by5jcHAK
QEAgLTUzNCw3ICs1MzQsNyBAQCB2b2lkIFN1YnRsZUNyeXB0bzo6YWRkQXV0aGVudGljYXRlZEVu
Y3J5cHRpb25XYXJuaW5nSWZOZWNlc3NhcnkoQ3J5cHRvQWxnb3JpdGhtSQogewogICAgIGlmIChh
bGdvcml0aG1JZGVudGlmaWVyID09IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkFFU19DQkMg
fHwgYWxnb3JpdGhtSWRlbnRpZmllciA9PSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpBRVNf
Q1RSKSB7CiAgICAgICAgIGlmICghc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5oYXNMb2dnZWRB
dXRoZW50aWNhdGVkRW5jcnlwdGlvbldhcm5pbmcoKSkgewotICAgICAgICAgICAgc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpLT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpTZWN1cml0
eSwgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCAiQUVTLUNCQyBhbmQgQUVTLUNUUiBkbyBub3QgcHJv
dmlkZSBhdXRoZW50aWNhdGlvbiBieSBkZWZhdWx0LCBhbmQgaW1wbGVtZW50aW5nIGl0IG1hbnVh
bGx5IGNhbiByZXN1bHQgaW4gbWlub3IsIGJ1dCBzZXJpb3VzIG1pc3Rha2VzLiBXZSByZWNvbW1l
bmRlZCB1c2luZyBhdXRoZW50aWNhdGVkIGVuY3J5cHRpb24gbGlrZSBBRVMtR0NNIHRvIHByb3Rl
Y3QgYWdhaW5zdCBjaG9zZW4tY2lwaGVydGV4dCBhdHRhY2tzLiIpOworICAgICAgICAgICAgc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpLT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpT
ZWN1cml0eSwgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCAiQUVTLUNCQyBhbmQgQUVTLUNUUiBkbyBu
b3QgcHJvdmlkZSBhdXRoZW50aWNhdGlvbiBieSBkZWZhdWx0LCBhbmQgaW1wbGVtZW50aW5nIGl0
IG1hbnVhbGx5IGNhbiByZXN1bHQgaW4gbWlub3IsIGJ1dCBzZXJpb3VzIG1pc3Rha2VzLiBXZSBy
ZWNvbW1lbmRlZCB1c2luZyBhdXRoZW50aWNhdGVkIGVuY3J5cHRpb24gbGlrZSBBRVMtR0NNIHRv
IHByb3RlY3QgYWdhaW5zdCBjaG9zZW4tY2lwaGVydGV4dCBhdHRhY2tzLiJfcyk7CiAgICAgICAg
ICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnNldEhhc0xvZ2dlZEF1dGhlbnRpY2F0ZWRF
bmNyeXB0aW9uV2FybmluZyh0cnVlKTsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DQkMuaCBi
L1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DQkMu
aAppbmRleCAyNzMyOTg1Yjc3ZmVkZmMzOTY3NGQ0NzQ5ZDg5NTUwYTBhMTcxYzI2Li5iNzQ0M2E3
MzM5ODQyMDg4ZjgzY2NjNmYzNWNhMjk3NzE2MDhjY2ZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfQ0JDLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQy5oCkBA
IC00MSw3ICs0MSw3IEBAIHB1YmxpYzoKICAgICAgICAgTm8KICAgICB9OwogCi0gICAgc3RhdGlj
IGNvbnN0ZXhwciBjb25zdCBjaGFyKiBzX25hbWUgPSAiQUVTLUNCQyI7CisgICAgc3RhdGljIGNv
bnN0ZXhwciBBU0NJSUxpdGVyYWwgc19uYW1lID0gIkFFUy1DQkMiX3M7CiAgICAgc3RhdGljIGNv
bnN0ZXhwciBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIHNfaWRlbnRpZmllciA9IENyeXB0b0Fs
Z29yaXRobUlkZW50aWZpZXI6OkFFU19DQkM7CiAgICAgc3RhdGljIFJlZjxDcnlwdG9BbGdvcml0
aG0+IGNyZWF0ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3Jp
dGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfQ0ZCLmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxn
b3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfQ0ZCLmgKaW5kZXggYzIyNzQxOTFmNjM1YjgzM2E0
OTFlODJjYjFkZTdkYTgxMDNjNmQ5YS4uNTA4YTIwMzM2NGFjYmFjZmMwZmZjODU3Mjc1Mjc5ZWY1
NDZjZmM4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5
cHRvQWxnb3JpdGhtQUVTX0NGQi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0
aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DRkIuaApAQCAtMzYsNyArMzYsNyBAQCBjbGFzcyBDcnlw
dG9LZXlBRVM7CiAKIGNsYXNzIENyeXB0b0FsZ29yaXRobUFFU19DRkIgZmluYWwgOiBwdWJsaWMg
Q3J5cHRvQWxnb3JpdGhtIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3RleHByIGNvbnN0IGNo
YXIqIHNfbmFtZSA9ICJBRVMtQ0ZCLTgiOworICAgIHN0YXRpYyBjb25zdGV4cHIgQVNDSUlMaXRl
cmFsIHNfbmFtZSA9ICJBRVMtQ0ZCLTgiX3M7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBDcnlwdG9B
bGdvcml0aG1JZGVudGlmaWVyIHNfaWRlbnRpZmllciA9IENyeXB0b0FsZ29yaXRobUlkZW50aWZp
ZXI6OkFFU19DRkI7CiAgICAgc3RhdGljIFJlZjxDcnlwdG9BbGdvcml0aG0+IGNyZWF0ZSgpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdv
cml0aG1BRVNfQ1RSLmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9B
bGdvcml0aG1BRVNfQ1RSLmgKaW5kZXggNzE4ZjZlMGUzMzg2ZTZmZTYyNTM5NWFmYmI3OWFkMzBj
NGZhNDE0YS4uOGJkMzkzMzlkYzM2MDBmNmM0ODZlYTYxMGMxYjgyNDZiOGMyMjcwMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVT
X0NUUi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29y
aXRobUFFU19DVFIuaApAQCAtNjQsNyArNjQsNyBAQCBwdWJsaWM6CiAgICAgICAgIGNvbnN0IHNp
emVfdCBtX2NvdW50ZXJMZW5ndGg7CiAgICAgfTsKIAotICAgIHN0YXRpYyBjb25zdGV4cHIgY29u
c3QgY2hhciogc19uYW1lID0gIkFFUy1DVFIiOworICAgIHN0YXRpYyBjb25zdGV4cHIgQVNDSUlM
aXRlcmFsIHNfbmFtZSA9ICJBRVMtQ1RSIl9zOwogICAgIHN0YXRpYyBjb25zdGV4cHIgQ3J5cHRv
QWxnb3JpdGhtSWRlbnRpZmllciBzX2lkZW50aWZpZXIgPSBDcnlwdG9BbGdvcml0aG1JZGVudGlm
aWVyOjpBRVNfQ1RSOwogICAgIHN0YXRpYyBSZWY8Q3J5cHRvQWxnb3JpdGhtPiBjcmVhdGUoKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxn
b3JpdGhtQUVTX0dDTS5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRv
QWxnb3JpdGhtQUVTX0dDTS5oCmluZGV4IGQwYWQxZjEzYzE3OGI1Y2M5YjE3NmViMzBlNmNlYzJh
MWJjYjQ2NTguLjUzMzEwZTExMTA3NWUxNjM0ZWYzZTA1N2I0YWRmNmExM2M2OTIzMWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFF
U19HQ00uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdv
cml0aG1BRVNfR0NNLmgKQEAgLTM2LDcgKzM2LDcgQEAgY2xhc3MgQ3J5cHRvS2V5QUVTOwogCiBj
bGFzcyBDcnlwdG9BbGdvcml0aG1BRVNfR0NNIGZpbmFsIDogcHVibGljIENyeXB0b0FsZ29yaXRo
bSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBjb25zdCBjaGFyKiBzX25hbWUgPSAi
QUVTLUdDTSI7CisgICAgc3RhdGljIGNvbnN0ZXhwciBBU0NJSUxpdGVyYWwgc19uYW1lID0gIkFF
Uy1HQ00iX3M7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVy
IHNfaWRlbnRpZmllciA9IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkFFU19HQ007CiAgICAg
c3RhdGljIFJlZjxDcnlwdG9BbGdvcml0aG0+IGNyZWF0ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfS1cuaCBiL1Nv
dXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19LVy5oCmlu
ZGV4IDU3ZTY5YzE1YzEyYzdlZTE4ZWI3NjUxOGRmZjg3YmY0YjU3MjRiOTkuLmEwOGRlYzNmMjZj
YmI1OTkxNTRhMjM1NjU5MGVmMGZkMTc3YzYzZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19LVy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19LVy5oCkBAIC0zNSw3
ICszNSw3IEBAIGNsYXNzIENyeXB0b0tleUFFUzsKIAogY2xhc3MgQ3J5cHRvQWxnb3JpdGhtQUVT
X0tXIGZpbmFsIDogcHVibGljIENyeXB0b0FsZ29yaXRobSB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IGNvbnN0ZXhwciBjb25zdCBjaGFyKiBzX25hbWUgPSAiQUVTLUtXIjsKKyAgICBzdGF0aWMgY29u
c3RleHByIEFTQ0lJTGl0ZXJhbCBzX25hbWUgPSAiQUVTLUtXIl9zOwogICAgIHN0YXRpYyBjb25z
dGV4cHIgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBzX2lkZW50aWZpZXIgPSBDcnlwdG9BbGdv
cml0aG1JZGVudGlmaWVyOjpBRVNfS1c7CiAgICAgc3RhdGljIFJlZjxDcnlwdG9BbGdvcml0aG0+
IGNyZWF0ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGht
cy9DcnlwdG9BbGdvcml0aG1FQ0RILmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGht
cy9DcnlwdG9BbGdvcml0aG1FQ0RILmgKaW5kZXggOTNhMTVhMmRhMzUxZGNlNzI3NDMzODE5N2Qy
NjYzMTA1ODVmN2JmNS4uMzJkNTU0NTZjOTcwODI1Y2NlNTUyZDdkZTA0M2E0Mjk1MGQwZTIzYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3Jp
dGhtRUNESC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0Fs
Z29yaXRobUVDREguaApAQCAtMzUsNyArMzUsNyBAQCBjbGFzcyBDcnlwdG9LZXlFQzsKIAogY2xh
c3MgQ3J5cHRvQWxnb3JpdGhtRUNESCBmaW5hbCA6IHB1YmxpYyBDcnlwdG9BbGdvcml0aG0gewog
cHVibGljOgotICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3QgY2hhciogc19uYW1lID0gIkVDREgi
OworICAgIHN0YXRpYyBjb25zdGV4cHIgQVNDSUlMaXRlcmFsIHNfbmFtZSA9ICJFQ0RIIl9zOwog
ICAgIHN0YXRpYyBjb25zdGV4cHIgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBzX2lkZW50aWZp
ZXIgPSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpFQ0RIOwogICAgIHN0YXRpYyBSZWY8Q3J5
cHRvQWxnb3JpdGhtPiBjcmVhdGUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5
cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtRUNEU0EuaCBiL1NvdXJjZS9XZWJDb3JlL2Ny
eXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUVDRFNBLmgKaW5kZXggM2E1OTFiZGZhZjIy
ODg1MGRlOGMwODJiZjI3N2ExOTAwNjM4OWU2Ni4uYjdjNzg4OWY4ZTAzMjEzNGMzZGUwM2I3YWFi
Zjc1YzUyZjgyYmQzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRo
bXMvQ3J5cHRvQWxnb3JpdGhtRUNEU0EuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxn
b3JpdGhtcy9DcnlwdG9BbGdvcml0aG1FQ0RTQS5oCkBAIC0zNiw3ICszNiw3IEBAIGNsYXNzIENy
eXB0b0tleUVDOwogCiBjbGFzcyBDcnlwdG9BbGdvcml0aG1FQ0RTQSBmaW5hbCA6IHB1YmxpYyBD
cnlwdG9BbGdvcml0aG0gewogcHVibGljOgotICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3QgY2hh
ciogc19uYW1lID0gIkVDRFNBIjsKKyAgICBzdGF0aWMgY29uc3RleHByIEFTQ0lJTGl0ZXJhbCBz
X25hbWUgPSAiRUNEU0EiX3M7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBDcnlwdG9BbGdvcml0aG1J
ZGVudGlmaWVyIHNfaWRlbnRpZmllciA9IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkVDRFNB
OwogICAgIHN0YXRpYyBSZWY8Q3J5cHRvQWxnb3JpdGhtPiBjcmVhdGUoKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtSEtERi5o
IGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtSEtERi5o
CmluZGV4IDFkZGNkOWQxYTE0NjMxNjAzMjFiMTE2YWU3NGQ5YTM2ZDljYjFkNmEuLjhmMzkzOWIx
OWI0ZWM5Mjg2NzgwNzNmMjc0NmE5NWIwZWYzYjM1YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUhLREYuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1IS0RGLmgKQEAgLTM2LDcg
KzM2LDcgQEAgY2xhc3MgQ3J5cHRvS2V5UmF3OwogCiBjbGFzcyBDcnlwdG9BbGdvcml0aG1IS0RG
IGZpbmFsIDogcHVibGljIENyeXB0b0FsZ29yaXRobSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNv
bnN0ZXhwciBjb25zdCBjaGFyKiBzX25hbWUgPSAiSEtERiI7CisgICAgc3RhdGljIGNvbnN0ZXhw
ciBBU0NJSUxpdGVyYWwgc19uYW1lID0gIkhLREYiX3M7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBD
cnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIHNfaWRlbnRpZmllciA9IENyeXB0b0FsZ29yaXRobUlk
ZW50aWZpZXI6OkhLREY7CiAgICAgc3RhdGljIFJlZjxDcnlwdG9BbGdvcml0aG0+IGNyZWF0ZSgp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9B
bGdvcml0aG1ITUFDLmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9B
bGdvcml0aG1ITUFDLmgKaW5kZXggZmE4ZjBhZGRjY2UxMjhmMjQ3MTUxNzNmYWZiZmE5MjczMjUy
NTBkMy4uOWYxMDg0Njk4YWI0M2Y3ZTVlZDk5YmJjYWQ4NWY4MTFhYWJiNWMyMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtSE1BQy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUhN
QUMuaApAQCAtMzUsNyArMzUsNyBAQCBjbGFzcyBDcnlwdG9LZXlITUFDOwogCiBjbGFzcyBDcnlw
dG9BbGdvcml0aG1ITUFDIGZpbmFsIDogcHVibGljIENyeXB0b0FsZ29yaXRobSB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBjb25zdCBjaGFyKiBzX25hbWUgPSAiSE1BQyI7CisgICAg
c3RhdGljIGNvbnN0ZXhwciBBU0NJSUxpdGVyYWwgc19uYW1lID0gIkhNQUMiX3M7CiAgICAgc3Rh
dGljIGNvbnN0ZXhwciBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIHNfaWRlbnRpZmllciA9IENy
eXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkhNQUM7CiAgICAgc3RhdGljIFJlZjxDcnlwdG9BbGdv
cml0aG0+IGNyZWF0ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxn
b3JpdGhtcy9DcnlwdG9BbGdvcml0aG1QQktERjIuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9h
bGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVBCS0RGMi5oCmluZGV4IGJkOTc0NWM3MDM1OGU3OGQ1
M2I0ODBjYzI2NmRjNDQ5Nzc4ZmI4NDIuLjM0MDY5ZTUxZmFhZTZhMjA3MjIyOTgyOGQxNmQ5YTMy
OWQ1YThiZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0Ny
eXB0b0FsZ29yaXRobVBCS0RGMi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0
aG1zL0NyeXB0b0FsZ29yaXRobVBCS0RGMi5oCkBAIC0zNiw3ICszNiw3IEBAIGNsYXNzIENyeXB0
b0tleVJhdzsKIAogY2xhc3MgQ3J5cHRvQWxnb3JpdGhtUEJLREYyIGZpbmFsIDogcHVibGljIENy
eXB0b0FsZ29yaXRobSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBjb25zdCBjaGFy
KiBzX25hbWUgPSAiUEJLREYyIjsKKyAgICBzdGF0aWMgY29uc3RleHByIEFTQ0lJTGl0ZXJhbCBz
X25hbWUgPSAiUEJLREYyIl9zOwogICAgIHN0YXRpYyBjb25zdGV4cHIgQ3J5cHRvQWxnb3JpdGht
SWRlbnRpZmllciBzX2lkZW50aWZpZXIgPSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpQQktE
RjI7CiAgICAgc3RhdGljIFJlZjxDcnlwdG9BbGdvcml0aG0+IGNyZWF0ZSgpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FF
U19QS0NTMV92MV81LmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9B
bGdvcml0aG1SU0FFU19QS0NTMV92MV81LmgKaW5kZXggOGI1MWI0MWU3YzBhNTdmNjY4ZjU4NDc5
ZmEyOWU2MzhlOWUxYWQwYi4uZDIxZTZjMWVlMjg2ZjdkYzYzODc1YTk4NGFiMjNlNzAwNGVlMTg4
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxn
b3JpdGhtUlNBRVNfUEtDUzFfdjFfNS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdv
cml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQUVTX1BLQ1MxX3YxXzUuaApAQCAtMzUsNyArMzUsNyBA
QCBjbGFzcyBDcnlwdG9LZXlSU0E7CiAKIGNsYXNzIENyeXB0b0FsZ29yaXRobVJTQUVTX1BLQ1Mx
X3YxXzUgZmluYWwgOiBwdWJsaWMgQ3J5cHRvQWxnb3JpdGhtIHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgY29uc3RleHByIGNvbnN0IGNoYXIqIHNfbmFtZSA9ICJSU0FFUy1QS0NTMS12MV81IjsKKyAg
ICBzdGF0aWMgY29uc3RleHByIEFTQ0lJTGl0ZXJhbCBzX25hbWUgPSAiUlNBRVMtUEtDUzEtdjFf
NSJfczsKICAgICBzdGF0aWMgY29uc3RleHByIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgc19p
ZGVudGlmaWVyID0gQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6UlNBRVNfUEtDUzFfdjFfNTsK
ICAgICBzdGF0aWMgUmVmPENyeXB0b0FsZ29yaXRobT4gY3JlYXRlKCk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQVNTQV9Q
S0NTMV92MV81LmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdv
cml0aG1SU0FTU0FfUEtDUzFfdjFfNS5oCmluZGV4IGQ5YjdiNDUwNzIzYWZjZGE5OTk5NWNiODgz
Y2RhMzljYWYzMjhkY2UuLmQxODVkM2E0YmRhMmRhMzdjZGIwZGYyOGY2OGEyNzNkZGU5OWI4NjAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29y
aXRobVJTQVNTQV9QS0NTMV92MV81LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29y
aXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzUuaApAQCAtMzUsNyArMzUsNyBA
QCBjbGFzcyBDcnlwdG9LZXlSU0E7CiAKIGNsYXNzIENyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NT
MV92MV81IGZpbmFsIDogcHVibGljIENyeXB0b0FsZ29yaXRobSB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIGNvbnN0ZXhwciBjb25zdCBjaGFyKiBzX25hbWUgPSAiUlNBU1NBLVBLQ1MxLXYxXzUiOwor
ICAgIHN0YXRpYyBjb25zdGV4cHIgQVNDSUlMaXRlcmFsIHNfbmFtZSA9ICJSU0FTU0EtUEtDUzEt
djFfNSJfczsKICAgICBzdGF0aWMgY29uc3RleHByIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIg
c19pZGVudGlmaWVyID0gQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6UlNBU1NBX1BLQ1MxX3Yx
XzU7CiAgICAgc3RhdGljIFJlZjxDcnlwdG9BbGdvcml0aG0+IGNyZWF0ZSgpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0Ff
T0FFUC5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGht
UlNBX09BRVAuaAppbmRleCAwOTZhZjNjYTIzMDc5NTlmMjQ1NGVlM2NmZDJiM2YwZTIyYjQ3M2Yy
Li5kYmE3ZWE5ZDVkNzIyZTQyN2EzYjBhYTRmOWRjZDMyZmY0NDU5ZjJiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FfT0FFUC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJT
QV9PQUVQLmgKQEAgLTM2LDcgKzM2LDcgQEAgY2xhc3MgQ3J5cHRvS2V5UlNBOwogCiBjbGFzcyBD
cnlwdG9BbGdvcml0aG1SU0FfT0FFUCBmaW5hbCA6IHB1YmxpYyBDcnlwdG9BbGdvcml0aG0gewog
cHVibGljOgotICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3QgY2hhciogc19uYW1lID0gIlJTQS1P
QUVQIjsKKyAgICBzdGF0aWMgY29uc3RleHByIEFTQ0lJTGl0ZXJhbCBzX25hbWUgPSAiUlNBLU9B
RVAiX3M7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIHNf
aWRlbnRpZmllciA9IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlJTQV9PQUVQOwogICAgIHN0
YXRpYyBSZWY8Q3J5cHRvQWxnb3JpdGhtPiBjcmVhdGUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBX1BTUy5oIGIvU291
cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBX1BTUy5oCmlu
ZGV4IDU4NzlhNTY3Y2NjYzdiMGExYzlhZDRkOTE3ODlkOWQwNTRiMDA5NzQuLmIxZjdmNzcyY2U0
MjI3OGQ0ZDk0ZDVjMGE3NmNhZTVlZGYwZTQwZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQV9QU1MuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FfUFNTLmgKQEAgLTM2
LDcgKzM2LDcgQEAgY2xhc3MgQ3J5cHRvS2V5UlNBOwogCiBjbGFzcyBDcnlwdG9BbGdvcml0aG1S
U0FfUFNTIGZpbmFsIDogcHVibGljIENyeXB0b0FsZ29yaXRobSB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIGNvbnN0ZXhwciBjb25zdCBjaGFyKiBzX25hbWUgPSAiUlNBLVBTUyI7CisgICAgc3RhdGlj
IGNvbnN0ZXhwciBBU0NJSUxpdGVyYWwgc19uYW1lID0gIlJTQS1QU1MiX3M7CiAgICAgc3RhdGlj
IGNvbnN0ZXhwciBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIHNfaWRlbnRpZmllciA9IENyeXB0
b0FsZ29yaXRobUlkZW50aWZpZXI6OlJTQV9QU1M7CiAgICAgc3RhdGljIFJlZjxDcnlwdG9BbGdv
cml0aG0+IGNyZWF0ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxn
b3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEExLmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxn
b3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEExLmgKaW5kZXggZDgwN2FiYjk3NGNiYWFjM2IwYTdi
YzdhZDg2NThmY2FmYjVhZDZhZS4uMWZkNzc1YTgxMzY0M2MxYjJmYWNjN2QzYzk0MDlkMzJmZTFj
ZTg1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRv
QWxnb3JpdGhtU0hBMS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0Ny
eXB0b0FsZ29yaXRobVNIQTEuaApAQCAtMzMsNyArMzMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIENyeXB0b0FsZ29yaXRobVNIQTEgZmluYWwgOiBwdWJsaWMgQ3J5cHRvQWxnb3Jp
dGhtIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3RleHByIGNvbnN0IGNoYXIqIHNfbmFtZSA9
ICJTSEEtMSI7CisgICAgc3RhdGljIGNvbnN0ZXhwciBBU0NJSUxpdGVyYWwgc19uYW1lID0gIlNI
QS0xIl9zOwogICAgIHN0YXRpYyBjb25zdGV4cHIgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBz
X2lkZW50aWZpZXIgPSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpTSEFfMTsKICAgICBzdGF0
aWMgUmVmPENyeXB0b0FsZ29yaXRobT4gY3JlYXRlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTIyNC5oIGIvU291cmNl
L1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMjI0LmgKaW5kZXgg
NzgwNGJhY2ZmMjU3MmQ4ZGM2NTExMDA0MDRmOTA1YmY5M2JmYzRjNi4uNDkzZTE2MmFiMzY1MmU2
NmMzNTA0YThkNzk1YzI4NjlkNGRkY2VjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5
cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMjI0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMjI0LmgKQEAgLTMzLDcgKzMz
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDcnlwdG9BbGdvcml0aG1TSEEyMjQg
ZmluYWwgOiBwdWJsaWMgQ3J5cHRvQWxnb3JpdGhtIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29u
c3RleHByIGNvbnN0IGNoYXIqIHNfbmFtZSA9ICJTSEEtMjI0IjsKKyAgICBzdGF0aWMgY29uc3Rl
eHByIEFTQ0lJTGl0ZXJhbCBzX25hbWUgPSAiU0hBLTIyNCJfczsKICAgICBzdGF0aWMgY29uc3Rl
eHByIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgc19pZGVudGlmaWVyID0gQ3J5cHRvQWxnb3Jp
dGhtSWRlbnRpZmllcjo6U0hBXzIyNDsKICAgICBzdGF0aWMgUmVmPENyeXB0b0FsZ29yaXRobT4g
Y3JlYXRlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1z
L0NyeXB0b0FsZ29yaXRobVNIQTI1Ni5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRo
bXMvQ3J5cHRvQWxnb3JpdGhtU0hBMjU2LmgKaW5kZXggY2UyNDA0Yzc0ZDU1YzhmMjc0NDA1ZTU2
ZjRkNThhN2ZmNjE2MTVmOS4uZjVhODU0M2M4MmM1NTQ4ZWU0MmIzYjkzMjcxMWU2ODU1ZWY4ZjBm
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxn
b3JpdGhtU0hBMjU2LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5
cHRvQWxnb3JpdGhtU0hBMjU2LmgKQEAgLTMzLDcgKzMzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBDcnlwdG9BbGdvcml0aG1TSEEyNTYgZmluYWwgOiBwdWJsaWMgQ3J5cHRvQWxn
b3JpdGhtIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3RleHByIGNvbnN0IGNoYXIqIHNfbmFt
ZSA9ICJTSEEtMjU2IjsKKyAgICBzdGF0aWMgY29uc3RleHByIEFTQ0lJTGl0ZXJhbCBzX25hbWUg
PSAiU0hBLTI1NiJfczsKICAgICBzdGF0aWMgY29uc3QgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmll
ciBzX2lkZW50aWZpZXIgPSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpTSEFfMjU2OwogICAg
IHN0YXRpYyBSZWY8Q3J5cHRvQWxnb3JpdGhtPiBjcmVhdGUoKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMzg0LmggYi9T
b3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEzODQuaApp
bmRleCA2Y2M1NzQ5MTMyNmEwMDhlNDI2ZjI2OTIxMzg5YWQ2ZjRjNGJmODQ5Li5lNWJmMjIzMmFj
ZjJkYTZhMTAwNmVhNTIwMTkzNDA4YjE4MDVmMmMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEzODQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEzODQuaApAQCAtMzMs
NyArMzMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENyeXB0b0FsZ29yaXRobVNI
QTM4NCBmaW5hbCA6IHB1YmxpYyBDcnlwdG9BbGdvcml0aG0gewogcHVibGljOgotICAgIHN0YXRp
YyBjb25zdGV4cHIgY29uc3QgY2hhciogc19uYW1lID0gIlNIQS0zODQiOworICAgIHN0YXRpYyBj
b25zdGV4cHIgQVNDSUlMaXRlcmFsIHNfbmFtZSA9ICJTSEEtMzg0Il9zOwogICAgIHN0YXRpYyBj
b25zdGV4cHIgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBzX2lkZW50aWZpZXIgPSBDcnlwdG9B
bGdvcml0aG1JZGVudGlmaWVyOjpTSEFfMzg0OwogICAgIHN0YXRpYyBSZWY8Q3J5cHRvQWxnb3Jp
dGhtPiBjcmVhdGUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29y
aXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBNTEyLmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxn
b3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEE1MTIuaAppbmRleCAwZDRhMGI5NmI2NDJhNGNkZmE3
YmY5OTBhOTdlZjczYjhiNzYxM2Y4Li4wNWY5OGZjNGE4NjY2ZGFmZGE2MDU5YTE0ZmU1ZTE3Mzdh
NGE3NDJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9Dcnlw
dG9BbGdvcml0aG1TSEE1MTIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGht
cy9DcnlwdG9BbGdvcml0aG1TSEE1MTIuaApAQCAtMzMsNyArMzMsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGNsYXNzIENyeXB0b0FsZ29yaXRobVNIQTUxMiBmaW5hbCA6IHB1YmxpYyBDcnlw
dG9BbGdvcml0aG0gewogcHVibGljOgotICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3QgY2hhciog
c19uYW1lID0gIlNIQS01MTIiOworICAgIHN0YXRpYyBjb25zdGV4cHIgQVNDSUlMaXRlcmFsIHNf
bmFtZSA9ICJTSEEtNTEyIl9zOwogICAgIHN0YXRpYyBjb25zdGV4cHIgQ3J5cHRvQWxnb3JpdGht
SWRlbnRpZmllciBzX2lkZW50aWZpZXIgPSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpTSEFf
NTEyOwogICAgIHN0YXRpYyBSZWY8Q3J5cHRvQWxnb3JpdGhtPiBjcmVhdGUoKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5QUVTLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleUFFUy5jcHAKaW5kZXggNDJmZTNhNGJlNTIx
ODE5OTczNGRlZGQwM2FiN2M5NzFmMzAxMWFkNC4uYzc2Yzg2M2Q1YWZjNWE0MTViMDY1NTg4NTBk
MzA3NTIwYzBjNjdjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5
cHRvS2V5QUVTLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlB
RVMuY3BwCkBAIC0xMDYsNyArMTA2LDcgQEAgUmVmUHRyPENyeXB0b0tleUFFUz4gQ3J5cHRvS2V5
QUVTOjppbXBvcnRKd2soQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBhbGdvcml0aG0KIEpzb25X
ZWJLZXkgQ3J5cHRvS2V5QUVTOjpleHBvcnRKd2soKSBjb25zdAogewogICAgIEpzb25XZWJLZXkg
cmVzdWx0OwotICAgIHJlc3VsdC5rdHkgPSAib2N0IjsKKyAgICByZXN1bHQua3R5ID0gIm9jdCJf
czsKICAgICByZXN1bHQuayA9IGJhc2U2NFVSTEVuY29kZVRvU3RyaW5nKG1fa2V5KTsKICAgICBy
ZXN1bHQua2V5X29wcyA9IHVzYWdlcygpOwogICAgIHJlc3VsdC5leHQgPSBleHRyYWN0YWJsZSgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5RUMuY3Bw
IGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5RUMuY3BwCmluZGV4IGQzNmQz
NDBmNzBhOGY0YTE3ZmY1ZjYxOWNlYjFkOWQ4NDVjYTJhMzMuLmZjZTgyYmVlOTFjYWI3NDI2MjA0
MDBkY2E3NzMwNWMxN2Y2ODUyMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9r
ZXlzL0NyeXB0b0tleUVDLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9Dcnlw
dG9LZXlFQy5jcHAKQEAgLTE0OCw3ICsxNDgsNyBAQCBFeGNlcHRpb25PcjxWZWN0b3I8dWludDhf
dD4+IENyeXB0b0tleUVDOjpleHBvcnRSYXcoKSBjb25zdAogRXhjZXB0aW9uT3I8SnNvbldlYktl
eT4gQ3J5cHRvS2V5RUM6OmV4cG9ydEp3aygpIGNvbnN0CiB7CiAgICAgSnNvbldlYktleSByZXN1
bHQ7Ci0gICAgcmVzdWx0Lmt0eSA9ICJFQyI7CisgICAgcmVzdWx0Lmt0eSA9ICJFQyJfczsKICAg
ICBzd2l0Y2ggKG1fY3VydmUpIHsKICAgICBjYXNlIE5hbWVkQ3VydmU6OlAyNTY6CiAgICAgICAg
IHJlc3VsdC5jcnYgPSBQMjU2OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tl
eXMvQ3J5cHRvS2V5SE1BQy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9L
ZXlITUFDLmNwcAppbmRleCA0MzRmMjQwNDU1ZGM4Y2UzNDFlMDA1NDAzYmYwNWNiOTAwMzdkMTQ5
Li4yNTQzZWQ1NDY1N2U3YWUzZjJmNzk5NmM3ODQ0M2RmYjA5YTcyN2EwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlITUFDLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlITUFDLmNwcApAQCAtMTIxLDcgKzEyMSw3IEBA
IFJlZlB0cjxDcnlwdG9LZXlITUFDPiBDcnlwdG9LZXlITUFDOjppbXBvcnRKd2soc2l6ZV90IGxl
bmd0aEJpdHMsIENyeXB0b0FsZ29yaXRoCiBKc29uV2ViS2V5IENyeXB0b0tleUhNQUM6OmV4cG9y
dEp3aygpIGNvbnN0CiB7CiAgICAgSnNvbldlYktleSByZXN1bHQ7Ci0gICAgcmVzdWx0Lmt0eSA9
ICJvY3QiOworICAgIHJlc3VsdC5rdHkgPSAib2N0Il9zOwogICAgIHJlc3VsdC5rID0gYmFzZTY0
VVJMRW5jb2RlVG9TdHJpbmcobV9rZXkpOwogICAgIHJlc3VsdC5rZXlfb3BzID0gdXNhZ2VzKCk7
CiAgICAgcmVzdWx0LmV4dCA9IGV4dHJhY3RhYmxlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlSU0EuY3BwIGIvU291cmNlL1dlYkNvcmUvY3J5cHRv
L2tleXMvQ3J5cHRvS2V5UlNBLmNwcAppbmRleCA2YmJmMTRmMjQ2MGIzZDFmNTA0ODhhZjM5Mjk3
MDlmNzQyMTZlZTI0Li4wNTgxZDY3MDcyY2I5MzY2ZDM3NzU0MjI2OGE0OGZmZGEwNjM5YTc3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlSU0EuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleVJTQS5jcHAKQEAgLTEzMyw3
ICsxMzMsNyBAQCBSZWZQdHI8Q3J5cHRvS2V5UlNBPiBDcnlwdG9LZXlSU0E6OmltcG9ydEp3ayhD
cnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGFsZ29yaXRobQogSnNvbldlYktleSBDcnlwdG9LZXlS
U0E6OmV4cG9ydEp3aygpIGNvbnN0CiB7CiAgICAgSnNvbldlYktleSByZXN1bHQ7Ci0gICAgcmVz
dWx0Lmt0eSA9ICJSU0EiOworICAgIHJlc3VsdC5rdHkgPSAiUlNBIl9zOwogICAgIHJlc3VsdC5r
ZXlfb3BzID0gdXNhZ2VzKCk7CiAgICAgcmVzdWx0LmV4dCA9IGV4dHJhY3RhYmxlKCk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNyY1ZhbHVlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNyY1ZhbHVlLmNwcAppbmRleCAzMDVjMzJlYTgw
Y2NlNTkwYjRiNjFkMDVkOWE1MGMyZjYyZTlkNmU2Li5lYjY4NjYzNTc1NWMzZTExOWQwYjhhZTY4
NWM1YjZlZDMyODA1ODk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZh
Y2VTcmNWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU3JjVmFs
dWUuY3BwCkBAIC01Niw3ICs1Niw3IEBAIGJvb2wgQ1NTRm9udEZhY2VTcmNWYWx1ZTo6aXNTdXBw
b3J0ZWRGb3JtYXQoKSBjb25zdAogICAgIC8vIHdlIHdpbGwgYWxzbyBjaGVjayB0byBzZWUgaWYg
dGhlIFVSTCBlbmRzIHdpdGggLmVvdC4gSWYgc28sIHdlJ2xsIGFzc3VtZSB0aGF0IHdlIHNob3Vs
ZG4ndCBsb2FkIGl0LgogICAgIGlmIChtX2Zvcm1hdC5pc0VtcHR5KCkpIHsKICAgICAgICAgLy8g
Q2hlY2sgZm9yIC5lb3QuCi0gICAgICAgIGlmICghcHJvdG9jb2xJcyhtX3Jlc291cmNlLCAiZGF0
YSIpICYmIG1fcmVzb3VyY2UuZW5kc1dpdGhJZ25vcmluZ0FTQ0lJQ2FzZSgiLmVvdCIpKQorICAg
ICAgICBpZiAoIXByb3RvY29sSXMobV9yZXNvdXJjZSwgImRhdGEiKSAmJiBtX3Jlc291cmNlLmVu
ZHNXaXRoSWdub3JpbmdBU0NJSUNhc2UoIi5lb3QiX3MpKQogICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTR3JpZFRlbXBsYXRlQXJlYXNWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTR3JpZFRlbXBsYXRlQXJlYXNWYWx1ZS5jcHAKaW5kZXggZTBiNzg2NTlhZGJkMDE0ODM5
ZTU3YzA2MjFkYzE2MTllZjgxMzEwOS4uZGZkNzI1MTNiY2RmNTQ2MTA5ZTY5MDJiNWJlOWI5Nzky
ZTZhMjc0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyaWRUZW1wbGF0ZUFy
ZWFzVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmlkVGVtcGxhdGVBcmVh
c1ZhbHVlLmNwcApAQCAtNjMsNyArNjMsNyBAQCBzdGF0aWMgU3RyaW5nIHN0cmluZ0ZvclBvc2l0
aW9uKGNvbnN0IE5hbWVkR3JpZEFyZWFNYXAmIGdyaWRBcmVhTWFwLCBzaXplX3Qgcm93LAogICAg
ICAgICAgICAgcmV0dXJuIGl0LmtleTsKICAgICB9CiAKLSAgICByZXR1cm4gIi4iOworICAgIHJl
dHVybiAiLiJfczsKIH0KIAogU3RyaW5nIENTU0dyaWRUZW1wbGF0ZUFyZWFzVmFsdWU6OmN1c3Rv
bUNTU1RleHQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1p
dGl2ZVZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHAK
aW5kZXggNzg5YzYzNDk3ZjIyMTA2NDliNDRhYTg4MmFlMDFiNjhlYmI4ZGEyOS4uOWZlNjRiNWJl
OTQ1NmE0NDhlY2Y1MDQ5N2E0MTM1Nzk0ZjhiZDliOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
UHJpbWl0aXZlVmFsdWUuY3BwCkBAIC0xMjMxLDY0ICsxMjMxLDY0IEBAIE5FVkVSX0lOTElORSBT
dHJpbmcgQ1NTUHJpbWl0aXZlVmFsdWU6OmZvcm1hdEludGVnZXJWYWx1ZShTdHJpbmdWaWV3IHN1
ZmZpeCkgY29uCiBTdHJpbmcgQ1NTUHJpbWl0aXZlVmFsdWU6OnVuaXRUeXBlU3RyaW5nKENTU1Vu
aXRUeXBlIHVuaXRUeXBlKQogewogICAgIHN3aXRjaCAodW5pdFR5cGUpIHsKLSAgICAgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX1BFUkNFTlRBR0U6IHJldHVybiAiJSI7Ci0gICAgICAgIGNhc2Ug
Q1NTVW5pdFR5cGU6OkNTU19FTVM6IHJldHVybiAiZW0iOwotICAgICAgICBjYXNlIENTU1VuaXRU
eXBlOjpDU1NfRVhTOiByZXR1cm4gImV4IjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NT
X1BYOiByZXR1cm4gInB4IjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0NNOiByZXR1
cm4gImNtIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX01NOiByZXR1cm4gIm1tIjsK
LSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0lOOiByZXR1cm4gImluIjsKLSAgICAgICAg
Y2FzZSBDU1NVbml0VHlwZTo6Q1NTX1BUOiByZXR1cm4gInB0IjsKLSAgICAgICAgY2FzZSBDU1NV
bml0VHlwZTo6Q1NTX1BDOiByZXR1cm4gInBjIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6
Q1NTX0RFRzogcmV0dXJuICJkZWciOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfUkFE
OiByZXR1cm4gInJhZCI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19HUkFEOiByZXR1
cm4gImdyYWQiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTVM6IHJldHVybiAibXMi
OwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfUzogcmV0dXJuICJzIjsKLSAgICAgICAg
Y2FzZSBDU1NVbml0VHlwZTo6Q1NTX0haOiByZXR1cm4gImh6IjsKLSAgICAgICAgY2FzZSBDU1NV
bml0VHlwZTo6Q1NTX0tIWjogcmV0dXJuICJraHoiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfVlc6IHJldHVybiAidnciOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVkg6
IHJldHVybiAidmgiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVk1JTjogcmV0dXJu
ICJ2bWluIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZNQVg6IHJldHVybiAidm1h
eCI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WQjogcmV0dXJuICJ2YiI7Ci0gICAg
ICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WSTogcmV0dXJuICJ2aSI7Ci0gICAgICAgIGNhc2Ug
Q1NTVW5pdFR5cGU6OkNTU19TVlc6IHJldHVybiAic3Z3IjsKLSAgICAgICAgY2FzZSBDU1NVbml0
VHlwZTo6Q1NTX1NWSDogcmV0dXJuICJzdmgiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpD
U1NfU1ZNSU46IHJldHVybiAic3ZtaW4iOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1Nf
U1ZNQVg6IHJldHVybiAic3ZtYXgiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZC
OiByZXR1cm4gInN2YiI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVkk6IHJldHVy
biAic3ZpIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWVzogcmV0dXJuICJsdnci
OwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZIOiByZXR1cm4gImx2aCI7Ci0gICAg
ICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVk1JTjogcmV0dXJuICJsdm1pbiI7Ci0gICAgICAg
IGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVk1BWDogcmV0dXJuICJsdm1heCI7Ci0gICAgICAgIGNh
c2UgQ1NTVW5pdFR5cGU6OkNTU19MVkI6IHJldHVybiAibHZiIjsKLSAgICAgICAgY2FzZSBDU1NV
bml0VHlwZTo6Q1NTX0xWSTogcmV0dXJuICJsdmkiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfRFZXOiByZXR1cm4gImR2dyI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19E
Vkg6IHJldHVybiAiZHZoIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWTUlOOiBy
ZXR1cm4gImR2bWluIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWTUFYOiByZXR1
cm4gImR2bWF4IjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWQjogcmV0dXJuICJk
dmIiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZJOiByZXR1cm4gImR2aSI7Ci0g
ICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EUFBYOiByZXR1cm4gImRwcHgiOwotICAgICAg
ICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfWDogcmV0dXJuICJ4IjsKLSAgICAgICAgY2FzZSBDU1NV
bml0VHlwZTo6Q1NTX0RQSTogcmV0dXJuICJkcGkiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfRFBDTTogcmV0dXJuICJkcGNtIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NT
X0ZSOiByZXR1cm4gImZyIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1E6IHJldHVy
biAicSI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MSFM6IHJldHVybiAibGgiOwot
ICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfUkxIUzogcmV0dXJuICJybGgiOwotICAgICAg
ICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVFVSTjogcmV0dXJuICJ0dXJuIjsKLSAgICAgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX1JFTVM6IHJldHVybiAicmVtIjsKLSAgICAgICAgY2FzZSBDU1NV
bml0VHlwZTo6Q1NTX0NIUzogcmV0dXJuICJjaCI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6
OkNTU19JQzogcmV0dXJuICJpYyI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19DUVc6
IHJldHVybiAiY3F3IjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0NRSDogcmV0dXJu
ICJjcWgiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfQ1FJOiByZXR1cm4gImNxaSI7
Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19DUUI6IHJldHVybiAiY3FiIjsKLSAgICAg
ICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0NRTUFYOiByZXR1cm4gImNxbWF4IjsKLSAgICAgICAg
Y2FzZSBDU1NVbml0VHlwZTo6Q1NTX0NRTUlOOiByZXR1cm4gImNxbWluIjsKKyAgICAgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX1BFUkNFTlRBR0U6IHJldHVybiAiJSJfczsKKyAgICAgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX0VNUzogcmV0dXJuICJlbSJfczsKKyAgICAgICAgY2FzZSBDU1NV
bml0VHlwZTo6Q1NTX0VYUzogcmV0dXJuICJleCJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlw
ZTo6Q1NTX1BYOiByZXR1cm4gInB4Il9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1Nf
Q006IHJldHVybiAiY20iX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19NTTogcmV0
dXJuICJtbSJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0lOOiByZXR1cm4gImlu
Il9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfUFQ6IHJldHVybiAicHQiX3M7Cisg
ICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19QQzogcmV0dXJuICJwYyJfczsKKyAgICAgICAg
Y2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RFRzogcmV0dXJuICJkZWciX3M7CisgICAgICAgIGNhc2Ug
Q1NTVW5pdFR5cGU6OkNTU19SQUQ6IHJldHVybiAicmFkIl9zOworICAgICAgICBjYXNlIENTU1Vu
aXRUeXBlOjpDU1NfR1JBRDogcmV0dXJuICJncmFkIl9zOworICAgICAgICBjYXNlIENTU1VuaXRU
eXBlOjpDU1NfTVM6IHJldHVybiAibXMiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNT
U19TOiByZXR1cm4gInMiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19IWjogcmV0
dXJuICJoeiJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0tIWjogcmV0dXJuICJr
aHoiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WVzogcmV0dXJuICJ2dyJfczsK
KyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZIOiByZXR1cm4gInZoIl9zOworICAgICAg
ICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVk1JTjogcmV0dXJuICJ2bWluIl9zOworICAgICAgICBj
YXNlIENTU1VuaXRUeXBlOjpDU1NfVk1BWDogcmV0dXJuICJ2bWF4Il9zOworICAgICAgICBjYXNl
IENTU1VuaXRUeXBlOjpDU1NfVkI6IHJldHVybiAidmIiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5p
dFR5cGU6OkNTU19WSTogcmV0dXJuICJ2aSJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6
Q1NTX1NWVzogcmV0dXJuICJzdnciX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19T
Vkg6IHJldHVybiAic3ZoIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZNSU46
IHJldHVybiAic3ZtaW4iX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVk1BWDog
cmV0dXJuICJzdm1heCJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWQjogcmV0
dXJuICJzdmIiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVkk6IHJldHVybiAi
c3ZpIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZXOiByZXR1cm4gImx2dyJf
czsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWSDogcmV0dXJuICJsdmgiX3M7Cisg
ICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVk1JTjogcmV0dXJuICJsdm1pbiJfczsKKyAg
ICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWTUFYOiByZXR1cm4gImx2bWF4Il9zOworICAg
ICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZCOiByZXR1cm4gImx2YiJfczsKKyAgICAgICAg
Y2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWSTogcmV0dXJuICJsdmkiX3M7CisgICAgICAgIGNhc2Ug
Q1NTVW5pdFR5cGU6OkNTU19EVlc6IHJldHVybiAiZHZ3Il9zOworICAgICAgICBjYXNlIENTU1Vu
aXRUeXBlOjpDU1NfRFZIOiByZXR1cm4gImR2aCJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlw
ZTo6Q1NTX0RWTUlOOiByZXR1cm4gImR2bWluIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfRFZNQVg6IHJldHVybiAiZHZtYXgiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6
OkNTU19EVkI6IHJldHVybiAiZHZiIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1Nf
RFZJOiByZXR1cm4gImR2aSJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RQUFg6
IHJldHVybiAiZHBweCJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1g6IHJldHVy
biAieCJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RQSTogcmV0dXJuICJkcGki
X3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EUENNOiByZXR1cm4gImRwY20iX3M7
CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19GUjogcmV0dXJuICJmciJfczsKKyAgICAg
ICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1E6IHJldHVybiAicSJfczsKKyAgICAgICAgY2FzZSBD
U1NVbml0VHlwZTo6Q1NTX0xIUzogcmV0dXJuICJsaCJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0
VHlwZTo6Q1NTX1JMSFM6IHJldHVybiAicmxoIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfVFVSTjogcmV0dXJuICJ0dXJuIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpD
U1NfUkVNUzogcmV0dXJuICJyZW0iX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19D
SFM6IHJldHVybiAiY2giX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19JQzogcmV0
dXJuICJpYyJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0NRVzogcmV0dXJuICJj
cXciX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19DUUg6IHJldHVybiAiY3FoIl9z
OworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfQ1FJOiByZXR1cm4gImNxaSJfczsKKyAg
ICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0NRQjogcmV0dXJuICJjcWIiX3M7CisgICAgICAg
IGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19DUU1BWDogcmV0dXJuICJjcW1heCJfczsKKyAgICAgICAg
Y2FzZSBDU1NVbml0VHlwZTo6Q1NTX0NRTUlOOiByZXR1cm4gImNxbWluIl9zOwogCiAgICAgICAg
IGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19VTktOT1dOOgogICAgICAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfTlVNQkVSOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N1YmdyaWRW
YWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3ViZ3JpZFZhbHVlLmNwcAppbmRleCA0
ZjlkNGE2MDQ4YzYxNGM4ZDBmYWY1NDhiZmNjYmFhZTQ4YTBjODY1Li42YTc5ODU5ZGEyN2RhZWFh
YWE3YmNmNWY5OTEyZDNlNzdjNWJkMmJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTU3ViZ3JpZFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3ViZ3JpZFZh
bHVlLmNwcApAQCAtMzYsNyArMzYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBTdHJpbmcgQ1NT
U3ViZ3JpZFZhbHVlOjpjdXN0b21DU1NUZXh0KCkgY29uc3QKIHsKICAgICBpZiAoIWxlbmd0aCgp
KQotICAgICAgICByZXR1cm4gInN1YmdyaWQiOworICAgICAgICByZXR1cm4gInN1YmdyaWQiX3M7
CiAgICAgcmV0dXJuICJzdWJncmlkICIgKyBDU1NWYWx1ZUxpc3Q6OmN1c3RvbUNTU1RleHQoKTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0RPTUNTU05hbWVzcGFjZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NTTmFtZXNwYWNlLmNwcAppbmRleCBmN2ZjZjVlMjdk
ZGM2MGIyZmQ0NWQ1YzM1MWQ0NDdmNmYxZjEwYWNiLi44MDA3ODcyMTNkMzNiMDcyMzlkMTE4MmM3
NDM1OWU0OWM2NWMxODZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NTTmFt
ZXNwYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NTTmFtZXNwYWNlLmNwcApA
QCAtNDMsNyArNDMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBTdHJpbmcgdmFs
dWVXaXRob3V0SW1wb3J0YW50KGNvbnN0IFN0cmluZyYgdmFsdWUpCiB7Ci0gICAgaWYgKCF2YWx1
ZS5lbmRzV2l0aElnbm9yaW5nQVNDSUlDYXNlKCJpbXBvcnRhbnQiKSkKKyAgICBpZiAoIXZhbHVl
LmVuZHNXaXRoSWdub3JpbmdBU0NJSUNhc2UoImltcG9ydGFudCJfcykpCiAgICAgICAgIHJldHVy
biB2YWx1ZTsKIAogICAgIFN0cmluZyBuZXdWYWx1ZSA9IHZhbHVlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL0RPTUNTU1JlZ2lzdGVyQ3VzdG9tUHJvcGVydHkuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL0RPTUNTU1JlZ2lzdGVyQ3VzdG9tUHJvcGVydHkuY3BwCmluZGV4IGMyYzgy
NTBhYjIyZDgzZWRkODIyMDAxMGI4MmY2MjUxZGU3Yjg5ZjcuLjkyYTJjYmM0MGZkMzE2MWUwZjlm
Yzc1YjE4OGEyZDk4ZDNlNzE5MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01D
U1NSZWdpc3RlckN1c3RvbVByb3BlcnR5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9N
Q1NTUmVnaXN0ZXJDdXN0b21Qcm9wZXJ0eS5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogRXhjZXB0aW9uT3I8dm9pZD4gRE9NQ1NTUmVnaXN0ZXJDdXN0b21Qcm9wZXJ0
eTo6cmVnaXN0ZXJQcm9wZXJ0eShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IERPTUNTU0N1c3Rv
bVByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcikKIHsKICAgICBpZiAoIWlzQ3VzdG9tUHJv
cGVydHlOYW1lKGRlc2NyaXB0b3IubmFtZSkpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBT
eW50YXhFcnJvciwgIlRoZSBuYW1lIG9mIHRoaXMgcHJvcGVydHkgaXMgbm90IGEgY3VzdG9tIHBy
b3BlcnR5IG5hbWUuIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgU3ludGF4RXJyb3Is
ICJUaGUgbmFtZSBvZiB0aGlzIHByb3BlcnR5IGlzIG5vdCBhIGN1c3RvbSBwcm9wZXJ0eSBuYW1l
LiJfcyB9OwogCiAgICAgUmVmUHRyPENTU0N1c3RvbVByb3BlcnR5VmFsdWU+IGluaXRpYWxWYWx1
ZTsKICAgICBpZiAoIWRlc2NyaXB0b3IuaW5pdGlhbFZhbHVlLmlzRW1wdHkoKSkgewpAQCAtNTks
NyArNTksNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBET01DU1NSZWdpc3RlckN1c3RvbVByb3BlcnR5
OjpyZWdpc3RlclByb3BlcnR5KERvY3VtZW50JiBkb2N1bQogICAgICAgICBDU1NQcm9wZXJ0eVBh
cnNlcjo6Y29sbGVjdFBhcnNlZEN1c3RvbVByb3BlcnR5VmFsdWVEZXBlbmRlbmNpZXMoZGVzY3Jp
cHRvci5zeW50YXgsIGZhbHNlLCBkZXBlbmRlbmNpZXMsIHRva2VuaXplci50b2tlblJhbmdlKCks
IHN0cmljdENTU1BhcnNlckNvbnRleHQoKSk7CiAKICAgICAgICAgaWYgKCFkZXBlbmRlbmNpZXMu
aXNFbXB0eSgpKQotICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFN5bnRheEVycm9yLCAi
VGhlIGdpdmVuIGluaXRpYWwgdmFsdWUgbXVzdCBiZSBjb21wdXRhdGlvbmFsbHkgaW5kZXBlbmRl
bnQuIiB9OworICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFN5bnRheEVycm9yLCAiVGhl
IGdpdmVuIGluaXRpYWwgdmFsdWUgbXVzdCBiZSBjb21wdXRhdGlvbmFsbHkgaW5kZXBlbmRlbnQu
Il9zIH07CiAKIAogICAgICAgICBTdHlsZTo6TWF0Y2hSZXN1bHQgbWF0Y2hSZXN1bHQ7CkBAIC03
MCwxOCArNzAsMTggQEAgRXhjZXB0aW9uT3I8dm9pZD4gRE9NQ1NTUmVnaXN0ZXJDdXN0b21Qcm9w
ZXJ0eTo6cmVnaXN0ZXJQcm9wZXJ0eShEb2N1bWVudCYgZG9jdW0KICAgICAgICAgaW5pdGlhbFZh
bHVlID0gQ1NTUHJvcGVydHlQYXJzZXI6OnBhcnNlVHlwZWRDdXN0b21Qcm9wZXJ0eVZhbHVlKGRl
c2NyaXB0b3IubmFtZSwgZGVzY3JpcHRvci5zeW50YXgsIHRva2VuaXplci50b2tlblJhbmdlKCks
IGR1bW15QnVpbGRlci5zdGF0ZSgpLCBzdHJpY3RDU1NQYXJzZXJDb250ZXh0KCkpOwogCiAgICAg
ICAgIGlmICghaW5pdGlhbFZhbHVlIHx8ICFpbml0aWFsVmFsdWUtPmlzUmVzb2x2ZWQoKSkKLSAg
ICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBTeW50YXhFcnJvciwgIlRoZSBnaXZlbiBpbml0
aWFsIHZhbHVlIGRvZXMgbm90IHBhcnNlIGZvciB0aGUgZ2l2ZW4gc3ludGF4LiIgfTsKKyAgICAg
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBTeW50YXhFcnJvciwgIlRoZSBnaXZlbiBpbml0aWFs
IHZhbHVlIGRvZXMgbm90IHBhcnNlIGZvciB0aGUgZ2l2ZW4gc3ludGF4LiJfcyB9OwogCiAgICAg
ICAgIGluaXRpYWxWYWx1ZS0+Y29sbGVjdERpcmVjdENvbXB1dGF0aW9uYWxEZXBlbmRlbmNpZXMo
ZGVwZW5kZW5jaWVzKTsKICAgICAgICAgaW5pdGlhbFZhbHVlLT5jb2xsZWN0RGlyZWN0Um9vdENv
bXB1dGF0aW9uYWxEZXBlbmRlbmNpZXMoZGVwZW5kZW5jaWVzKTsKIAogICAgICAgICBpZiAoIWRl
cGVuZGVuY2llcy5pc0VtcHR5KCkpCi0gICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgU3lu
dGF4RXJyb3IsICJUaGUgZ2l2ZW4gaW5pdGlhbCB2YWx1ZSBtdXN0IGJlIGNvbXB1dGF0aW9uYWxs
eSBpbmRlcGVuZGVudC4iIH07CisgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgU3ludGF4
RXJyb3IsICJUaGUgZ2l2ZW4gaW5pdGlhbCB2YWx1ZSBtdXN0IGJlIGNvbXB1dGF0aW9uYWxseSBp
bmRlcGVuZGVudC4iX3MgfTsKICAgICB9CiAKICAgICBDU1NSZWdpc3RlcmVkQ3VzdG9tUHJvcGVy
dHkgcHJvcGVydHkgeyBkZXNjcmlwdG9yLm5hbWUsIGRlc2NyaXB0b3Iuc3ludGF4LCBkZXNjcmlw
dG9yLmluaGVyaXRzLCBXVEZNb3ZlKGluaXRpYWxWYWx1ZSkgfTsKICAgICBpZiAoIWRvY3VtZW50
LnJlZ2lzdGVyQ1NTUHJvcGVydHkoV1RGTW92ZShwcm9wZXJ0eSkpKQotICAgICAgICByZXR1cm4g
RXhjZXB0aW9uIHsgSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yLCAiVGhpcyBwcm9wZXJ0eSBoYXMg
YWxyZWFkeSBiZWVuIHJlZ2lzdGVyZWQuIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
SW52YWxpZE1vZGlmaWNhdGlvbkVycm9yLCAiVGhpcyBwcm9wZXJ0eSBoYXMgYWxyZWFkeSBiZWVu
IHJlZ2lzdGVyZWQuIl9zIH07CiAKICAgICBkb2N1bWVudC5zdHlsZVNjb3BlKCkuZGlkQ2hhbmdl
U3R5bGVTaGVldEVudmlyb25tZW50KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9EZXByZWNhdGVkQ1NTT01WYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRl
ZENTU09NVmFsdWUuY3BwCmluZGV4IDIzMjUwODQ1YWJhNmJjNTMyMmIzYjM3NjlmYjkzYzBlNjQw
YzdkODIuLjUwNjdkMGU2YzYwMWJlMmExMzEzZjA4OWE2NDBhYzFhNjI2YjliMzUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01WYWx1ZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVZhbHVlLmNwcApAQCAtNzYsNyArNzYsNyBA
QCBTdHJpbmcgRGVwcmVjYXRlZENTU09NVmFsdWU6OmNzc1RleHQoKSBjb25zdAogICAgICAgICBy
ZXR1cm4gZG93bmNhc3Q8RGVwcmVjYXRlZENTU09NVmFsdWVMaXN0PigqdGhpcykuY3NzVGV4dCgp
OwogICAgIH0KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gIiI7CisgICAg
cmV0dXJuIGVtcHR5U3RyaW5nKCk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9Gb250RmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9udEZhY2UuY3BwCmluZGV4
IGVmZmQ2MDdjMzQ2ZjliY2ZiYzljMjg4OWJmODMxNjk0ZGEzNDAzMDUuLjRkNTExYjVlNjg1NDEz
MDVkNDBjMWMzM2I3OTA5YTY1MDY1NTZmNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9Gb250RmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0ZvbnRGYWNlLmNwcApAQCAt
Mzc1LDcgKzM3NSw3IEBAIFN0cmluZyBGb250RmFjZTo6dW5pY29kZVJhbmdlKCkgY29uc3QKICAg
ICBtX2JhY2tpbmctPnVwZGF0ZVN0eWxlSWZOZWVkZWQoKTsKICAgICBjb25zdCBhdXRvJiByYW5n
ZXNXcmFwcGVkID0gbV9iYWNraW5nLT5yYW5nZXMoKTsKICAgICBpZiAoIXJhbmdlc1dyYXBwZWQp
Ci0gICAgICAgIHJldHVybiAiVSswLTEwRkZGRiI7CisgICAgICAgIHJldHVybiAiVSswLTEwRkZG
RiJfczsKICAgICBhdXRvIHJhbmdlcyA9IHJhbmdlc1dyYXBwZWQudmFsdWUoKTsKICAgICBpZiAo
IXJhbmdlcy5zaXplKCkpCiAgICAgICAgIHJldHVybiAiVSswLTEwRkZGRiJfczsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXhwcmVzc2lvbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV4cHJlc3Npb24uY3BwCmluZGV4IDA4YjcwNzA2NmJhNmRm
YjIxMjdmY2RhOTA4ODkzNzkzNTEwODE0ZTguLjFiZGRiNTUzZThmYmEyYzIyNTNlNGQxNDU2Zjc4
NjkzZjM2NjkzMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXhw
cmVzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFeHByZXNzaW9u
LmNwcApAQCAtMjc0LDcgKzI3NCw3IEBAIE1lZGlhUXVlcnlFeHByZXNzaW9uOjpNZWRpYVF1ZXJ5
RXhwcmVzc2lvbihjb25zdCBTdHJpbmcmIGZlYXR1cmUsIENTU1BhcnNlclRva2VuCiBTdHJpbmcg
TWVkaWFRdWVyeUV4cHJlc3Npb246OnNlcmlhbGl6ZSgpIGNvbnN0CiB7CiAgICAgaWYgKG1fc2Vy
aWFsaXphdGlvbkNhY2hlLmlzTnVsbCgpKQotICAgICAgICBtX3NlcmlhbGl6YXRpb25DYWNoZSA9
IG1ha2VTdHJpbmcoJygnLCBtX21lZGlhRmVhdHVyZS5jb252ZXJ0VG9BU0NJSUxvd2VyY2FzZSgp
LCBtX3ZhbHVlID8gIjogIiA6ICIiLCBtX3ZhbHVlID8gbV92YWx1ZS0+Y3NzVGV4dCgpIDogIiIs
ICcpJyk7CisgICAgICAgIG1fc2VyaWFsaXphdGlvbkNhY2hlID0gbWFrZVN0cmluZygnKCcsIG1f
bWVkaWFGZWF0dXJlLmNvbnZlcnRUb0FTQ0lJTG93ZXJjYXNlKCksIG1fdmFsdWUgPyAiOiAiIDog
IiIsIG1fdmFsdWUgPyBtX3ZhbHVlLT5jc3NUZXh0KCkgOiBlbXB0eVN0cmluZygpLCAnKScpOwog
ICAgIHJldHVybiBtX3NlcmlhbGl6YXRpb25DYWNoZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5
bGVQcm9wZXJ0aWVzLmNwcAppbmRleCBmMDQxM2MxN2ZmZmEyODM4MTFmZTI1MTdmZGZkNjFiY2Rj
ZjhiMjU5Li5hOTIzYzdhNGY5NGZjZjMyYjA3ZjgxMTNhMmNiZWEyNGI5ZGY4OTA0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcApAQCAtNzY4LDcgKzc2OCw3IEBAIFN0cmlu
ZyBTdHlsZVByb3BlcnRpZXM6OmdldExheWVyZWRTaG9ydGhhbmRWYWx1ZShjb25zdCBTdHlsZVBy
b3BlcnR5U2hvcnRoYW5kJiBzCiAKICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gbWFza0lk
ID0gZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KCp2YWx1ZSkudmFsdWVJRCgpOwogICAgICAg
ICAgICAgICAgICAgICAgICAgYXV0byBvcmlnaW5JZCA9IGRvd25jYXN0PENTU1ByaW1pdGl2ZVZh
bHVlPigqb3JpZ2luVmFsdWUpLnZhbHVlSUQoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBtYXNrSWQgPT0gb3JpZ2luSWQgJiYgKCFpc0NTU1dpZGVWYWx1ZUtleXdvcmQoZ2V0VmFs
dWVOYW1lKG1hc2tJZCkpIHx8IHZhbHVlLT5pc0ltcGxpY2l0SW5pdGlhbFZhbHVlKCkpOworICAg
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1hc2tJZCA9PSBvcmlnaW5JZCAmJiAoIWlzQ1NT
V2lkZVZhbHVlS2V5d29yZChTdHJpbmdWaWV3IHsgZ2V0VmFsdWVOYW1lKG1hc2tJZCkgfSkgfHwg
dmFsdWUtPmlzSW1wbGljaXRJbml0aWFsVmFsdWUoKSk7CiAgICAgICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgICAgICAgaWYgKHByb3BlcnR5ID09IENTU1Byb3BlcnR5TWFza09yaWdp
bikgewogICAgICAgICAgICAgICAgICAgICAgICAgLy8gV2UgY2FuIHNraXAgc2VyaWFsaXppbmcg
bWFzay1vcmlnaW4gaWYgaXQncyB0aGUgaW5pdGlhbCB2YWx1ZSwgYnV0IG9ubHkgaWYgd2UncmUg
YWxzbyBnb2luZyB0byBza2lwIHNlcmlhbGl6aW5nCkBAIC0xMTU0LDcgKzExNTQsNyBAQCBib29s
IE11dGFibGVTdHlsZVByb3BlcnRpZXM6OnNldEN1c3RvbVByb3BlcnR5KGNvbnN0IERvY3VtZW50
KiBkb2N1bWVudCwgY29uc3QgUwogCiAgICAgcGFyc2VyQ29udGV4dC5tb2RlID0gY3NzUGFyc2Vy
TW9kZSgpOwogCi0gICAgU3RyaW5nIHN5bnRheCA9ICIqIjsKKyAgICBTdHJpbmcgc3ludGF4ID0g
IioiX3M7CiAgICAgYXV0byogcmVnaXN0ZXJlZCA9IGRvY3VtZW50ID8gZG9jdW1lbnQtPmdldENT
U1JlZ2lzdGVyZWRDdXN0b21Qcm9wZXJ0eVNldCgpLmdldChwcm9wZXJ0eU5hbWUpIDogbnVsbHB0
cjsKIAogICAgIGlmIChyZWdpc3RlcmVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L21ha2V2YWx1ZXMucGwgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvbWFrZXZhbHVlcy5wbAppbmRleCAw
ZjgyMTlkNGNjYjUxZWNhNTI1ZDgyOWE3NjA2YjI3YjBmYTI3MzAzLi5hZTliMzI3ODMyNzI3Mzcz
YzRjZTdmMDIzMzA1MjEzNmIyZDk4M2Q1IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
bWFrZXZhbHVlcy5wbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvbWFrZXZhbHVlcy5wbApAQCAt
MTExLDE2ICsxMTEsMTYgQEAgZm9yIG15ICRpICgwIC4uICQjbmFtZXMpIHsKIAogcHJpbnQgR1BF
UkYgPDwgIkVPRiI7CiAlJQotc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IHZhbHVlTGlzdFtdID0g
ewotICAgICIiLAorc3RhdGljIGNvbnN0ZXhwciBBU0NJSUxpdGVyYWwgdmFsdWVMaXN0W10gPSB7
CisgICAgIiJfcywKIEVPRgogCiBmb3JlYWNoIG15ICRuYW1lIChAbmFtZXMpIHsKLSAgcHJpbnQg
R1BFUkYgIiAgICBcIiIgLiAkbmFtZSAuICJcIixcbiI7CisgIHByaW50IEdQRVJGICIgICAgXCIi
IC4gJG5hbWUgLiAiXCJfcyxcbiI7CiB9CiAKIHByaW50IEdQRVJGIDw8ICJFT0YiOwotICAgIDAK
KyAgICBBU0NJSUxpdGVyYWw6Om51bGwoKQogfTsKIAogY29uc3QgVmFsdWUqIGZpbmRWYWx1ZShj
b25zdCBjaGFyKiBzdHIsIHVuc2lnbmVkIGludCBsZW4pCkBAIC0xMjgsMTAgKzEyOCwxMCBAQCBj
b25zdCBWYWx1ZSogZmluZFZhbHVlKGNvbnN0IGNoYXIqIHN0ciwgdW5zaWduZWQgaW50IGxlbikK
ICAgICByZXR1cm4gQ1NTVmFsdWVLZXl3b3Jkc0hhc2g6OmZpbmRWYWx1ZUltcGwoc3RyLCBsZW4p
OwogfQogCi1jb25zdCBjaGFyKiBnZXRWYWx1ZU5hbWUodW5zaWduZWQgc2hvcnQgaWQpCitBU0NJ
SUxpdGVyYWwgZ2V0VmFsdWVOYW1lKHVuc2lnbmVkIHNob3J0IGlkKQogewogICAgIGlmIChpZCA+
IGxhc3RDU1NWYWx1ZUtleXdvcmQpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4g
QVNDSUlMaXRlcmFsOjpudWxsKCk7CiAgICAgcmV0dXJuIHZhbHVlTGlzdFtpZF07CiB9CiAKQEAg
LTIwMyw3ICsyMDMsNyBAQCBwcmludCBIRUFERVIgImNvbnN0IGludCBsYXN0Q1NTVmFsdWVLZXl3
b3JkID0gJGxhc3Q7XG4iOwogcHJpbnQgSEVBREVSICJjb25zdCBzaXplX3QgbWF4Q1NTVmFsdWVL
ZXl3b3JkTGVuZ3RoID0gIiAuICRtYXhMZW4gLiAiO1xuIjsKIHByaW50IEhFQURFUiA8PCAiRU9G
IjsKIAotY29uc3QgY2hhciogZ2V0VmFsdWVOYW1lKHVuc2lnbmVkIHNob3J0IGlkKTsKK0FTQ0lJ
TGl0ZXJhbCBnZXRWYWx1ZU5hbWUodW5zaWduZWQgc2hvcnQgaWQpOwogY29uc3QgQXRvbVN0cmlu
ZyYgZ2V0VmFsdWVOYW1lQXRvbVN0cmluZyhDU1NWYWx1ZUlEIGlkKTsKIFN0cmluZyBnZXRWYWx1
ZU5hbWVTdHJpbmcoQ1NTVmFsdWVJRCBpZCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9wYXJzZXIvTWVkaWFRdWVyeVBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFy
c2VyL01lZGlhUXVlcnlQYXJzZXIuY3BwCmluZGV4IGNiNWEwOGFhM2ViN2Q2YjhjODI1N2RjODQ4
ZGNlYzExMzQxOWM5Y2QuLjYyYzAxZTVhMzI3NzQyMjQzNjYyZmViYzIxZWRlMDgwZDkyMzY1OWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvTWVkaWFRdWVyeVBhcnNlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9NZWRpYVF1ZXJ5UGFyc2VyLmNwcApA
QCAtMjQ3LDcgKzI0Nyw3IEBAIHZvaWQgTWVkaWFRdWVyeVBhcnNlcjo6c2tpcFVudGlsQ29tbWEo
Q1NTUGFyc2VyVG9rZW5UeXBlIHR5cGUsIGNvbnN0IENTU1BhcnNlclRvCiAgICAgaWYgKCh0eXBl
ID09IENvbW1hVG9rZW4gJiYgIW1fYmxvY2tXYXRjaGVyLmJsb2NrTGV2ZWwoKSkgfHwgdHlwZSA9
PSBFT0ZUb2tlbikgewogICAgICAgICBtX3N0YXRlID0gUmVhZFJlc3RyaWN0b3I7CiAgICAgICAg
IG1fbWVkaWFRdWVyeURhdGEuY2xlYXIoKTsKLSAgICAgICAgTWVkaWFRdWVyeSBxdWVyeSA9IE1l
ZGlhUXVlcnkoTWVkaWFRdWVyeTo6Tm90LCAiYWxsIiwgVmVjdG9yPE1lZGlhUXVlcnlFeHByZXNz
aW9uPigpKTsKKyAgICAgICAgTWVkaWFRdWVyeSBxdWVyeSA9IE1lZGlhUXVlcnkoTWVkaWFRdWVy
eTo6Tm90LCAiYWxsIl9zLCBWZWN0b3I8TWVkaWFRdWVyeUV4cHJlc3Npb24+KCkpOwogICAgICAg
ICBtX3F1ZXJ5U2V0LT5hZGRNZWRpYVF1ZXJ5KFdURk1vdmUocXVlcnkpKTsKICAgICB9CiB9CkBA
IC0zMDksNyArMzA5LDcgQEAgUmVmUHRyPE1lZGlhUXVlcnlTZXQ+IE1lZGlhUXVlcnlQYXJzZXI6
OnBhcnNlSW50ZXJuYWwoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UKICAgICAgICAgcHJvY2Vz
c1Rva2VuKENTU1BhcnNlclRva2VuKEVPRlRva2VuKSwgcmFuZ2UpOwogCiAgICAgaWYgKG1fc3Rh
dGUgIT0gUmVhZEFuZCAmJiBtX3N0YXRlICE9IFJlYWRSZXN0cmljdG9yICYmIG1fc3RhdGUgIT0g
RG9uZSAmJiBtX3N0YXRlICE9IFJlYWRNZWRpYU5vdCkgewotICAgICAgICBNZWRpYVF1ZXJ5IHF1
ZXJ5ID0gTWVkaWFRdWVyeShNZWRpYVF1ZXJ5OjpOb3QsICJhbGwiLCBWZWN0b3I8TWVkaWFRdWVy
eUV4cHJlc3Npb24+KCkpOworICAgICAgICBNZWRpYVF1ZXJ5IHF1ZXJ5ID0gTWVkaWFRdWVyeShN
ZWRpYVF1ZXJ5OjpOb3QsICJhbGwiX3MsIFZlY3RvcjxNZWRpYVF1ZXJ5RXhwcmVzc2lvbj4oKSk7
CiAgICAgICAgIG1fcXVlcnlTZXQtPmFkZE1lZGlhUXVlcnkoV1RGTW92ZShxdWVyeSkpOwogICAg
IH0gZWxzZSBpZiAobV9tZWRpYVF1ZXJ5RGF0YS5jdXJyZW50TWVkaWFRdWVyeUNoYW5nZWQoKSkK
ICAgICAgICAgY29tbWl0TWVkaWFRdWVyeSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL3BhcnNlci9TaXplc0F0dHJpYnV0ZVBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
cGFyc2VyL1NpemVzQXR0cmlidXRlUGFyc2VyLmNwcAppbmRleCBkNmU0OGEyM2ZmOTdlMGE4Yjcz
NmQ4MDM3OTc0MjQ3NTA1YzM3ZmY4Li40ZGE0MDE2ZTYwNjU3ZmIzNzQ1MmVlMWI5MWE2MWQ1NmUw
ODg0ODg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL1NpemVzQXR0cmli
dXRlUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL1NpemVzQXR0cmli
dXRlUGFyc2VyLmNwcApAQCAtMTEyLDcgKzExMiw3IEBAIGJvb2wgU2l6ZXNBdHRyaWJ1dGVQYXJz
ZXI6Om1lZGlhQ29uZGl0aW9uTWF0Y2hlcyhjb25zdCBNZWRpYVF1ZXJ5U2V0JiBtZWRpYUNvbmRp
CiAgICAgaWYgKCFyZW5kZXJlcikKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGF1dG8mIHN0
eWxlID0gcmVuZGVyZXItPnN0eWxlKCk7Ci0gICAgcmV0dXJuIE1lZGlhUXVlcnlFdmFsdWF0b3Ig
eyAic2NyZWVuIiwgbV9kb2N1bWVudCwgJnN0eWxlIH0uZXZhbHVhdGUobWVkaWFDb25kaXRpb24s
IG1fbWVkaWFRdWVyeUR5bmFtaWNSZXN1bHRzKTsKKyAgICByZXR1cm4gTWVkaWFRdWVyeUV2YWx1
YXRvciB7ICJzY3JlZW4iX3MsIG1fZG9jdW1lbnQsICZzdHlsZSB9LmV2YWx1YXRlKG1lZGlhQ29u
ZGl0aW9uLCBtX21lZGlhUXVlcnlEeW5hbWljUmVzdWx0cyk7CiB9CiAKIGJvb2wgU2l6ZXNBdHRy
aWJ1dGVQYXJzZXI6OnBhcnNlKENTU1BhcnNlclRva2VuUmFuZ2UgcmFuZ2UpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NOdW1lcmljRmFjdG9yeS5oIGIvU291cmNl
L1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTTnVtZXJpY0ZhY3RvcnkuaAppbmRleCA4MjM1MGI5OWQ4
NzRiMGZhOTA2NWY2NGRkZDU5OTNkZDZkODMwYjM5Li4zNTM2MmIyMTZkMDJiYjcyM2I3ODZhMmM3
MjEzM2QxNTYzYmIyMGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9D
U1NOdW1lcmljRmFjdG9yeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU051
bWVyaWNGYWN0b3J5LmgKQEAgLTQzLDY0ICs0Myw2NCBAQCBjbGFzcyBDU1NOdW1lcmljRmFjdG9y
eSBmaW5hbCA6IHB1YmxpYyBTdXBwbGVtZW50PERPTUNTU05hbWVzcGFjZT4gewogcHVibGljOgog
ICAgIGV4cGxpY2l0IENTU051bWVyaWNGYWN0b3J5KERPTUNTU05hbWVzcGFjZSYpIHsgfQogCi0g
ICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IG51bWJlcihkb3VibGUgdmFsdWUpIHsgcmV0dXJu
IENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAibnVtYmVyIik7IH0KLSAgICBzdGF0aWMgUmVm
PENTU1VuaXRWYWx1ZT4gcGVyY2VudChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1
ZTo6Y3JlYXRlKHZhbHVlLCAicGVyY2VudCIpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFs
dWU+IG51bWJlcihkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZh
bHVlLCAibnVtYmVyIl9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBwZXJjZW50
KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJwZXJj
ZW50Il9zKTsgfQogCiAKICAgICAvLyA8bGVuZ3RoPgotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZh
bHVlPiBlbShkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVl
LCAiZW0iKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBleChkb3VibGUgdmFsdWUp
IHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiZXgiKTsgfQotICAgIHN0YXRp
YyBSZWY8Q1NTVW5pdFZhbHVlPiBjaChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1
ZTo6Y3JlYXRlKHZhbHVlLCAiY2giKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBp
Yyhkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiaWMi
KTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiByZW0oZG91YmxlIHZhbHVlKSB7IHJl
dHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInJlbSIpOyB9Ci0gICAgc3RhdGljIFJl
ZjxDU1NVbml0VmFsdWU+IGxoKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpj
cmVhdGUodmFsdWUsICJsaCIpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHJsaChk
b3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAicmxoIik7
IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gdncoZG91YmxlIHZhbHVlKSB7IHJldHVy
biBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInZ3Iik7IH0KLSAgICBzdGF0aWMgUmVmPENT
U1VuaXRWYWx1ZT4gdmgoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0
ZSh2YWx1ZSwgInZoIik7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gdmkoZG91Ymxl
IHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInZpIik7IH0KLSAg
ICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gdmIoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NV
bml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInZiIik7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRW
YWx1ZT4gdm1pbihkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZh
bHVlLCAidm1pbiIpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHZtYXgoZG91Ymxl
IHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInZtYXgiKTsgfQot
ICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBjbShkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENT
U1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiY20iKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5p
dFZhbHVlPiBtbShkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZh
bHVlLCAibW0iKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBxKGRvdWJsZSB2YWx1
ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJxIik7IH0KLSAgICBzdGF0
aWMgUmVmPENTU1VuaXRWYWx1ZT4gaW4oZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFs
dWU6OmNyZWF0ZSh2YWx1ZSwgImluIik7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4g
cHQoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInB0
Iik7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gcGMoZG91YmxlIHZhbHVlKSB7IHJl
dHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInBjIik7IH0KLSAgICBzdGF0aWMgUmVm
PENTU1VuaXRWYWx1ZT4gcHgoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNy
ZWF0ZSh2YWx1ZSwgInB4Iik7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gY3F3KGRv
dWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJjcXciKTsg
fQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBjcWgoZG91YmxlIHZhbHVlKSB7IHJldHVy
biBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImNxaCIpOyB9Ci0gICAgc3RhdGljIFJlZjxD
U1NVbml0VmFsdWU+IGNxaShkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3Jl
YXRlKHZhbHVlLCAiY3FpIik7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gY3FiKGRv
dWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJjcWIiKTsg
fQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBjcW1pbihkb3VibGUgdmFsdWUpIHsgcmV0
dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiY3FtaW4iKTsgfQotICAgIHN0YXRpYyBS
ZWY8Q1NTVW5pdFZhbHVlPiBjcW1heChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1
ZTo6Y3JlYXRlKHZhbHVlLCAiY3FtYXgiKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVl
PiBlbShkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAi
ZW0iX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGV4KGRvdWJsZSB2YWx1ZSkg
eyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJleCJfcyk7IH0KKyAgICBzdGF0
aWMgUmVmPENTU1VuaXRWYWx1ZT4gY2goZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFs
dWU6OmNyZWF0ZSh2YWx1ZSwgImNoIl9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVl
PiBpYyhkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAi
aWMiX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHJlbShkb3VibGUgdmFsdWUp
IHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAicmVtIl9zKTsgfQorICAgIHN0
YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBsaChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRW
YWx1ZTo6Y3JlYXRlKHZhbHVlLCAibGgiX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFs
dWU+IHJsaChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVl
LCAicmxoIl9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiB2dyhkb3VibGUgdmFs
dWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAidnciX3MpOyB9CisgICAg
c3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHZoKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5p
dFZhbHVlOjpjcmVhdGUodmFsdWUsICJ2aCJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRW
YWx1ZT4gdmkoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1
ZSwgInZpIl9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiB2Yihkb3VibGUgdmFs
dWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAidmIiX3MpOyB9CisgICAg
c3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHZtaW4oZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NV
bml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInZtaW4iX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NV
bml0VmFsdWU+IHZtYXgoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0
ZSh2YWx1ZSwgInZtYXgiX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGNtKGRv
dWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJjbSJfcyk7
IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gbW0oZG91YmxlIHZhbHVlKSB7IHJldHVy
biBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgIm1tIl9zKTsgfQorICAgIHN0YXRpYyBSZWY8
Q1NTVW5pdFZhbHVlPiBxKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVh
dGUodmFsdWUsICJxIl9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBpbihkb3Vi
bGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiaW4iX3MpOyB9
CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHB0KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4g
Q1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJwdCJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENT
U1VuaXRWYWx1ZT4gcGMoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0
ZSh2YWx1ZSwgInBjIl9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBweChkb3Vi
bGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAicHgiX3MpOyB9
CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGNxdyhkb3VibGUgdmFsdWUpIHsgcmV0dXJu
IENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiY3F3Il9zKTsgfQorICAgIHN0YXRpYyBSZWY8
Q1NTVW5pdFZhbHVlPiBjcWgoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNy
ZWF0ZSh2YWx1ZSwgImNxaCJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gY3Fp
KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJjcWki
X3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGNxYihkb3VibGUgdmFsdWUpIHsg
cmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiY3FiIl9zKTsgfQorICAgIHN0YXRp
YyBSZWY8Q1NTVW5pdFZhbHVlPiBjcW1pbihkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRW
YWx1ZTo6Y3JlYXRlKHZhbHVlLCAiY3FtaW4iX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0
VmFsdWU+IGNxbWF4KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUo
dmFsdWUsICJjcW1heCJfcyk7IH0KIAogCiAgICAgLy8gPGFuZ2xlPgotICAgIHN0YXRpYyBSZWY8
Q1NTVW5pdFZhbHVlPiBkZWcoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNy
ZWF0ZSh2YWx1ZSwgImRlZyIpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGdyYWQo
ZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImdyYWQi
KTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiByYWQoZG91YmxlIHZhbHVlKSB7IHJl
dHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInJhZCIpOyB9Ci0gICAgc3RhdGljIFJl
ZjxDU1NVbml0VmFsdWU+IHR1cm4oZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6
OmNyZWF0ZSh2YWx1ZSwgInR1cm4iKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBk
ZWcoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImRl
ZyJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gZ3JhZChkb3VibGUgdmFsdWUp
IHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiZ3JhZCJfcyk7IH0KKyAgICBz
dGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gcmFkKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5p
dFZhbHVlOjpjcmVhdGUodmFsdWUsICJyYWQiX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0
VmFsdWU+IHR1cm4oZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2
YWx1ZSwgInR1cm4iX3MpOyB9CiAKIAogICAgIC8vIDx0aW1lPgotICAgIHN0YXRpYyBSZWY8Q1NT
VW5pdFZhbHVlPiBzKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUo
dmFsdWUsICJzIik7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gbXMoZG91YmxlIHZh
bHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgIm1zIik7IH0KKyAgICBz
dGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gcyhkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRW
YWx1ZTo6Y3JlYXRlKHZhbHVlLCAicyJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1
ZT4gbXMoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwg
Im1zIl9zKTsgfQogCiAKICAgICAvLyA8ZnJlcXVlbmN5PgotICAgIHN0YXRpYyBSZWY8Q1NTVW5p
dFZhbHVlPiBoeihkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZh
bHVlLCAiaHoiKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBrSHooZG91YmxlIHZh
bHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImtoeiIpOyB9CisgICAg
c3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGh6KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5p
dFZhbHVlOjpjcmVhdGUodmFsdWUsICJoeiJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRW
YWx1ZT4ga0h6KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFs
dWUsICJraHoiX3MpOyB9CiAKIAogICAgIC8vIDxyZXNvbHV0aW9uPgotICAgIHN0YXRpYyBSZWY8
Q1NTVW5pdFZhbHVlPiBkcGkoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNy
ZWF0ZSh2YWx1ZSwgImRwaSIpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGRwY20o
ZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImRwY20i
KTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBkcHB4KGRvdWJsZSB2YWx1ZSkgeyBy
ZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJkcHB4Iik7IH0KKyAgICBzdGF0aWMg
UmVmPENTU1VuaXRWYWx1ZT4gZHBpKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVl
OjpjcmVhdGUodmFsdWUsICJkcGkiX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+
IGRwY20oZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwg
ImRwY20iX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGRwcHgoZG91YmxlIHZh
bHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImRwcHgiX3MpOyB9CiAK
IAogICAgIC8vIDxmbGV4PgotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBmcihkb3VibGUg
dmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiZnIiKTsgfQorICAg
IHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBmcihkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1Vu
aXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiZnIiX3MpOyB9CiAKIAogcHJpdmF0ZToKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU051bWVyaWNWYWx1ZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NOdW1lcmljVmFsdWUuY3BwCmluZGV4IGNlZTE3Yzg3
MDhmOGNiNjM4YWUxMTNhMzRlNzEyYzU0MTIzMTBjYWYuLmVkN2JmOTgzOGIyODM2ZjAwZmRkNWE5
NWE0OWI3YjBjMDM2NjZlZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9t
L0NTU051bWVyaWNWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NT
TnVtZXJpY1ZhbHVlLmNwcApAQCAtMTU3LDcgKzE1Nyw3IEBAIFJlZjxDU1NOdW1lcmljVmFsdWU+
IENTU051bWVyaWNWYWx1ZTo6bXVsdGlwbHlJbnRlcm5hbChWZWN0b3I8UmVmPENTU051bWVyaWNW
YWx1CiAgICAgICAgICAgICBkb3VibGUgcHJvZHVjdCA9IDE7CiAgICAgICAgICAgICBmb3IgKGNv
bnN0IFJlZjxDU1NOdW1lcmljVmFsdWU+JiB2YWx1ZSA6IHZhbHVlcykKICAgICAgICAgICAgICAg
ICBwcm9kdWN0ICo9IGRvd25jYXN0PENTU1VuaXRWYWx1ZT4odmFsdWUuZ2V0KCkpLnZhbHVlKCk7
Ci0gICAgICAgICAgICBTdHJpbmcgdW5pdCA9IG5vbk51bWJlclVuaXRJbmRleCA/IGRvd25jYXN0
PENTU1VuaXRWYWx1ZT4odmFsdWVzWypub25OdW1iZXJVbml0SW5kZXhdLmdldCgpKS51bml0KCkg
OiAibnVtYmVyIjsKKyAgICAgICAgICAgIFN0cmluZyB1bml0ID0gbm9uTnVtYmVyVW5pdEluZGV4
ID8gZG93bmNhc3Q8Q1NTVW5pdFZhbHVlPih2YWx1ZXNbKm5vbk51bWJlclVuaXRJbmRleF0uZ2V0
KCkpLnVuaXQoKSA6ICJudW1iZXIiX3M7CiAgICAgICAgICAgICByZXR1cm4gQ1NTVW5pdFZhbHVl
OjpjcmVhdGUocHJvZHVjdCwgdW5pdCk7CiAgICAgICAgIH0KICAgICB9CkBAIC0yMzUsNyArMjM1
LDcgQEAgUmVmPENTU1VuaXRWYWx1ZT4gQ1NTTnVtZXJpY1ZhbHVlOjp0byhTdHJpbmcmJiB1bml0
KQogICAgIFVOVVNFRF9QQVJBTSh1bml0KTsKICAgICAvLyBodHRwczovL2RyYWZ0cy5jc3MtaG91
ZGluaS5vcmcvY3NzLXR5cGVkLW9tLyNkb20tY3NzbnVtZXJpY3ZhbHVlLXRvCiAgICAgLy8gRklY
TUU6IGFkZCBpbXBsLgotICAgIHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSgxLjAsICJudW1i
ZXIiKTsKKyAgICByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUoMS4wLCAibnVtYmVyIl9zKTsK
IH0KIAogUmVmPENTU01hdGhTdW0+IENTU051bWVyaWNWYWx1ZTo6dG9TdW0oRml4ZWRWZWN0b3I8
U3RyaW5nPiYmIHVuaXRzKQpAQCAtMjU4LDcgKzI1OCw3IEBAIEV4Y2VwdGlvbk9yPFJlZjxDU1NO
dW1lcmljVmFsdWU+PiBDU1NOdW1lcmljVmFsdWU6OnBhcnNlKFN0cmluZyYmIGNzc1RleHQpCiAg
ICAgVU5VU0VEX1BBUkFNKGNzc1RleHQpOwogICAgIC8vIGh0dHBzOi8vZHJhZnRzLmNzcy1ob3Vk
aW5pLm9yZy9jc3MtdHlwZWQtb20vI2RvbS1jc3NudW1lcmljdmFsdWUtcGFyc2UKICAgICAvLyBG
SVhNRTogYWRkIGltcGwuCi0gICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9y
LCAiTm90IGltcGxlbWVudGVkIEVycm9yIiB9OworICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RT
dXBwb3J0ZWRFcnJvciwgIk5vdCBpbXBsZW1lbnRlZCBFcnJvciJfcyB9OwogfQogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9D
U1NTdHlsZVZhbHVlRmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NT
dHlsZVZhbHVlRmFjdG9yeS5jcHAKaW5kZXggOWZjNzBmYjEwMjcxNjg3MTQ3NDUzNjY1MmQ0Y2Mx
MzEwNGRmMzQyNC4uMGFiYjNhNDgyODUyZGJkNGRkMzE3OGYyNDk4MzJmNTg3OGI3MWJhZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTU3R5bGVWYWx1ZUZhY3Rvcnku
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU1N0eWxlVmFsdWVGYWN0b3J5
LmNwcApAQCAtMjY0LDcgKzI2NCw3IEBAIEV4Y2VwdGlvbk9yPFJlZjxDU1NTdHlsZVZhbHVlPj4g
Q1NTU3R5bGVWYWx1ZUZhY3Rvcnk6OnJlaWZ5VmFsdWUoUmVmPENTU1ZhbHVlPiYmCiAgICAgICAg
IC8vIFJlZmVyIHRvIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy10eXBlZC1vbS90aGUtc3R5bGVwcm9wZXJ0eW1hcC9pbmxpbmUvZ2V0Lmh0bWwKICAg
ICAgICAgYXV0byB2YWx1ZUxpc3QgPSBkb3duY2FzdDxDU1NWYWx1ZUxpc3Q+KGNzc1ZhbHVlLnB0
cigpKTsKICAgICAgICAgaWYgKCF2YWx1ZUxpc3QtPmxlbmd0aCgpKQotICAgICAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIlRoZSBDU1NWYWx1ZUxpc3Qgc2hvdWxkIG5vdCBi
ZSBlbXB0eS4iIH07CisgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAi
VGhlIENTU1ZhbHVlTGlzdCBzaG91bGQgbm90IGJlIGVtcHR5LiJfcyB9OwogICAgICAgICAKICAg
ICAgICAgcmV0dXJuIHJlaWZ5VmFsdWUoV1RGTW92ZSgqdmFsdWVMaXN0LT5iZWdpbigpKSwgZG9j
dW1lbnQpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2Ev
SFRNTENvbnZlcnRlci5tbSBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvSFRNTENvbnZl
cnRlci5tbQppbmRleCBiNjdhNjM0OTczN2I4NWJhYzI5MzJjZTE4YWI4M2Y3M2Y4MTMxYWIzLi4y
ZDUzOWVkMmM3MWYyMmJmMjhiZjlkZjg1NDRhOWJlOTg4ZWE4N2VmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0hUTUxDb252ZXJ0ZXIubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9jb2NvYS9IVE1MQ29udmVydGVyLm1tCkBAIC01OTYsNyArNTk2LDcgQEAg
U3RyaW5nIEhUTUxDb252ZXJ0ZXJDYWNoZXM6OnByb3BlcnR5VmFsdWVGb3JOb2RlKE5vZGUmIG5v
ZGUsIENTU1Byb3BlcnR5SUQgcHJvcGUKICAgICBzd2l0Y2ggKHByb3BlcnR5SWQpIHsKICAgICBj
YXNlIENTU1Byb3BlcnR5RGlzcGxheToKICAgICAgICAgaWYgKGVsZW1lbnQuaGFzVGFnTmFtZSho
ZWFkVGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoc2NyaXB0VGFnKSB8fCBlbGVtZW50Lmhhc1Rh
Z05hbWUoYXBwbGV0VGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUobm9mcmFtZXNUYWcpKQotICAg
ICAgICAgICAgcmV0dXJuICJub25lIjsKKyAgICAgICAgICAgIHJldHVybiAibm9uZSJfczsKICAg
ICAgICAgZWxzZSBpZiAoZWxlbWVudC5oYXNUYWdOYW1lKGFkZHJlc3NUYWcpIHx8IGVsZW1lbnQu
aGFzVGFnTmFtZShibG9ja3F1b3RlVGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoYm9keVRhZykg
fHwgZWxlbWVudC5oYXNUYWdOYW1lKGNlbnRlclRhZykKICAgICAgICAgICAgICB8fCBlbGVtZW50
Lmhhc1RhZ05hbWUoZGRUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZShkaXJUYWcpIHx8IGVsZW1l
bnQuaGFzVGFnTmFtZShkaXZUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZShkbFRhZykKICAgICAg
ICAgICAgICB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoZHRUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFt
ZShmaWVsZHNldFRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKGZvcm1UYWcpIHx8IGVsZW1lbnQu
aGFzVGFnTmFtZShmcmFtZVRhZykKQEAgLTYwNCw2MiArNjA0LDYyIEBAIFN0cmluZyBIVE1MQ29u
dmVydGVyQ2FjaGVzOjpwcm9wZXJ0eVZhbHVlRm9yTm9kZShOb2RlJiBub2RlLCBDU1NQcm9wZXJ0
eUlEIHByb3BlCiAgICAgICAgICAgICAgfHwgZWxlbWVudC5oYXNUYWdOYW1lKGgyVGFnKSB8fCBl
bGVtZW50Lmhhc1RhZ05hbWUoaDNUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZShoNFRhZykgfHwg
ZWxlbWVudC5oYXNUYWdOYW1lKGg1VGFnKQogICAgICAgICAgICAgIHx8IGVsZW1lbnQuaGFzVGFn
TmFtZShoNlRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKGlmcmFtZVRhZykgfHwgZWxlbWVudC5o
YXNUYWdOYW1lKG1lbnVUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZShub3NjcmlwdFRhZykKICAg
ICAgICAgICAgICB8fCBlbGVtZW50Lmhhc1RhZ05hbWUob2xUYWcpIHx8IGVsZW1lbnQuaGFzVGFn
TmFtZShwVGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUocHJlVGFnKSB8fCBlbGVtZW50Lmhhc1Rh
Z05hbWUodWxUYWcpKQotICAgICAgICAgICAgcmV0dXJuICJibG9jayI7CisgICAgICAgICAgICBy
ZXR1cm4gImJsb2NrIl9zOwogICAgICAgICBlbHNlIGlmIChlbGVtZW50Lmhhc1RhZ05hbWUobGlU
YWcpKQotICAgICAgICAgICAgcmV0dXJuICJsaXN0LWl0ZW0iOworICAgICAgICAgICAgcmV0dXJu
ICJsaXN0LWl0ZW0iX3M7CiAgICAgICAgIGVsc2UgaWYgKGVsZW1lbnQuaGFzVGFnTmFtZSh0YWJs
ZVRhZykpCi0gICAgICAgICAgICByZXR1cm4gInRhYmxlIjsKKyAgICAgICAgICAgIHJldHVybiAi
dGFibGUiX3M7CiAgICAgICAgIGVsc2UgaWYgKGVsZW1lbnQuaGFzVGFnTmFtZSh0clRhZykpCi0g
ICAgICAgICAgICByZXR1cm4gInRhYmxlLXJvdyI7CisgICAgICAgICAgICByZXR1cm4gInRhYmxl
LXJvdyJfczsKICAgICAgICAgZWxzZSBpZiAoZWxlbWVudC5oYXNUYWdOYW1lKHRoVGFnKSB8fCBl
bGVtZW50Lmhhc1RhZ05hbWUodGRUYWcpKQotICAgICAgICAgICAgcmV0dXJuICJ0YWJsZS1jZWxs
IjsKKyAgICAgICAgICAgIHJldHVybiAidGFibGUtY2VsbCJfczsKICAgICAgICAgZWxzZSBpZiAo
ZWxlbWVudC5oYXNUYWdOYW1lKHRoZWFkVGFnKSkKLSAgICAgICAgICAgIHJldHVybiAidGFibGUt
aGVhZGVyLWdyb3VwIjsKKyAgICAgICAgICAgIHJldHVybiAidGFibGUtaGVhZGVyLWdyb3VwIl9z
OwogICAgICAgICBlbHNlIGlmIChlbGVtZW50Lmhhc1RhZ05hbWUodGJvZHlUYWcpKQotICAgICAg
ICAgICAgcmV0dXJuICJ0YWJsZS1yb3ctZ3JvdXAiOworICAgICAgICAgICAgcmV0dXJuICJ0YWJs
ZS1yb3ctZ3JvdXAiX3M7CiAgICAgICAgIGVsc2UgaWYgKGVsZW1lbnQuaGFzVGFnTmFtZSh0Zm9v
dFRhZykpCi0gICAgICAgICAgICByZXR1cm4gInRhYmxlLWZvb3Rlci1ncm91cCI7CisgICAgICAg
ICAgICByZXR1cm4gInRhYmxlLWZvb3Rlci1ncm91cCJfczsKICAgICAgICAgZWxzZSBpZiAoZWxl
bWVudC5oYXNUYWdOYW1lKGNvbFRhZykpCi0gICAgICAgICAgICByZXR1cm4gInRhYmxlLWNvbHVt
biI7CisgICAgICAgICAgICByZXR1cm4gInRhYmxlLWNvbHVtbiJfczsKICAgICAgICAgZWxzZSBp
ZiAoZWxlbWVudC5oYXNUYWdOYW1lKGNvbGdyb3VwVGFnKSkKLSAgICAgICAgICAgIHJldHVybiAi
dGFibGUtY29sdW1uLWdyb3VwIjsKKyAgICAgICAgICAgIHJldHVybiAidGFibGUtY29sdW1uLWdy
b3VwIl9zOwogICAgICAgICBlbHNlIGlmIChlbGVtZW50Lmhhc1RhZ05hbWUoY2FwdGlvblRhZykp
Ci0gICAgICAgICAgICByZXR1cm4gInRhYmxlLWNhcHRpb24iOworICAgICAgICAgICAgcmV0dXJu
ICJ0YWJsZS1jYXB0aW9uIl9zOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENTU1Byb3BlcnR5
V2hpdGVTcGFjZToKICAgICAgICAgaWYgKGVsZW1lbnQuaGFzVGFnTmFtZShwcmVUYWcpKQotICAg
ICAgICAgICAgcmV0dXJuICJwcmUiOworICAgICAgICAgICAgcmV0dXJuICJwcmUiX3M7CiAgICAg
ICAgIGluaGVyaXQgPSB0cnVlOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENTU1Byb3BlcnR5
Rm9udFN0eWxlOgogICAgICAgICBpZiAoZWxlbWVudC5oYXNUYWdOYW1lKGlUYWcpIHx8IGVsZW1l
bnQuaGFzVGFnTmFtZShjaXRlVGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoZW1UYWcpIHx8IGVs
ZW1lbnQuaGFzVGFnTmFtZSh2YXJUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZShhZGRyZXNzVGFn
KSkKLSAgICAgICAgICAgIHJldHVybiAiaXRhbGljIjsKKyAgICAgICAgICAgIHJldHVybiAiaXRh
bGljIl9zOwogICAgICAgICBpbmhlcml0ID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eUZvbnRXZWlnaHQ6CiAgICAgICAgIGlmIChlbGVtZW50Lmhhc1RhZ05hbWUo
YlRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKHN0cm9uZ1RhZykgfHwgZWxlbWVudC5oYXNUYWdO
YW1lKHRoVGFnKSkKLSAgICAgICAgICAgIHJldHVybiAiYm9sZGVyIjsKKyAgICAgICAgICAgIHJl
dHVybiAiYm9sZGVyIl9zOwogICAgICAgICBpbmhlcml0ID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVRleHREZWNvcmF0aW9uTGluZToKICAgICAgICAgaWYgKGVs
ZW1lbnQuaGFzVGFnTmFtZSh1VGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoaW5zVGFnKSkKLSAg
ICAgICAgICAgIHJldHVybiAidW5kZXJsaW5lIjsKKyAgICAgICAgICAgIHJldHVybiAidW5kZXJs
aW5lIl9zOwogICAgICAgICBlbHNlIGlmIChlbGVtZW50Lmhhc1RhZ05hbWUoc1RhZykgfHwgZWxl
bWVudC5oYXNUYWdOYW1lKHN0cmlrZVRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKGRlbFRhZykp
Ci0gICAgICAgICAgICByZXR1cm4gImxpbmUtdGhyb3VnaCI7CisgICAgICAgICAgICByZXR1cm4g
ImxpbmUtdGhyb3VnaCJfczsKICAgICAgICAgaW5oZXJpdCA9IHRydWU7IC8vIEZJWE1FOiBUaGlz
IGlzIG5vdCBzdHJpY3RseSBjb3JyZWN0CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTUHJv
cGVydHlUZXh0QWxpZ246CiAgICAgICAgIGlmIChlbGVtZW50Lmhhc1RhZ05hbWUoY2VudGVyVGFn
KSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoY2FwdGlvblRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1l
KHRoVGFnKSkKLSAgICAgICAgICAgIHJldHVybiAiY2VudGVyIjsKKyAgICAgICAgICAgIHJldHVy
biAiY2VudGVyIl9zOwogICAgICAgICBpbmhlcml0ID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBDU1NQcm9wZXJ0eVZlcnRpY2FsQWxpZ246CiAgICAgICAgIGlmIChlbGVtZW50Lmhh
c1RhZ05hbWUoc3VwVGFnKSkKLSAgICAgICAgICAgIHJldHVybiAic3VwZXIiOworICAgICAgICAg
ICAgcmV0dXJuICJzdXBlciJfczsKICAgICAgICAgZWxzZSBpZiAoZWxlbWVudC5oYXNUYWdOYW1l
KHN1YlRhZykpCi0gICAgICAgICAgICByZXR1cm4gInN1YiI7CisgICAgICAgICAgICByZXR1cm4g
InN1YiJfczsKICAgICAgICAgZWxzZSBpZiAoZWxlbWVudC5oYXNUYWdOYW1lKHRoZWFkVGFnKSB8
fCBlbGVtZW50Lmhhc1RhZ05hbWUodGJvZHlUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZSh0Zm9v
dFRhZykpCi0gICAgICAgICAgICByZXR1cm4gIm1pZGRsZSI7CisgICAgICAgICAgICByZXR1cm4g
Im1pZGRsZSJfczsKICAgICAgICAgZWxzZSBpZiAoZWxlbWVudC5oYXNUYWdOYW1lKHRyVGFnKSB8
fCBlbGVtZW50Lmhhc1RhZ05hbWUodGhUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZSh0ZFRhZykp
CiAgICAgICAgICAgICBpbmhlcml0ID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CkBAIC0xODUyLDcg
KzE4NTIsNyBAQCBCT09MIEhUTUxDb252ZXJ0ZXI6Ol9wcm9jZXNzRWxlbWVudChFbGVtZW50JiBl
bGVtZW50LCBOU0ludGVnZXIgZGVwdGgpCiAgICAgICAgIFJldGFpblB0cjxOU1RleHRMaXN0PiBs
aXN0OwogICAgICAgICBTdHJpbmcgbGlzdFN0eWxlVHlwZSA9IF9jYWNoZXMtPnByb3BlcnR5VmFs
dWVGb3JOb2RlKGVsZW1lbnQsIENTU1Byb3BlcnR5TGlzdFN0eWxlVHlwZSk7CiAgICAgICAgIGlm
ICghbGlzdFN0eWxlVHlwZS5sZW5ndGgoKSkKLSAgICAgICAgICAgIGxpc3RTdHlsZVR5cGUgPSAi
ZGVjaW1hbCI7CisgICAgICAgICAgICBsaXN0U3R5bGVUeXBlID0gImRlY2ltYWwiX3M7CiAgICAg
ICAgIGxpc3QgPSBhZG9wdE5TKFtbUGxhdGZvcm1OU1RleHRMaXN0IGFsbG9jXSBpbml0V2l0aE1h
cmtlckZvcm1hdDpTdHJpbmcoInsiICsgbGlzdFN0eWxlVHlwZSArICJ9Iikgb3B0aW9uczowXSk7
CiAgICAgICAgIGlmIChpczxIVE1MT0xpc3RFbGVtZW50PihlbGVtZW50KSkgewogICAgICAgICAg
ICAgTlNJbnRlZ2VyIHN0YXJ0aW5nSXRlbU51bWJlciA9IGRvd25jYXN0PEhUTUxPTGlzdEVsZW1l
bnQ+KGVsZW1lbnQpLnN0YXJ0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L2NvY29hL1dlYkNvbnRlbnRSZWFkZXJDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
Y29jb2EvV2ViQ29udGVudFJlYWRlckNvY29hLm1tCmluZGV4IGU4ODZhMjdkYmQ2MjI0MGFkOTg0
MjA0NWNlYjgzMDUwYTJmYzAzZGYuLmQ4ZDE0MGRlZjdkM2EzOGIwMjRhNDExMzRiNjU4ZTdmMzE0
MTRlMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvV2ViQ29udGVu
dFJlYWRlckNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvV2ViQ29u
dGVudFJlYWRlckNvY29hLm1tCkBAIC03NjIsNyArNzYyLDcgQEAgc3RhdGljIFJlZjxIVE1MRWxl
bWVudD4gYXR0YWNobWVudEZvckRhdGEoRnJhbWUmIGZyYW1lLCBGcmFnbWVudGVkU2hhcmVkQnVm
ZmVyJgogICAgIGF1dG8gYXR0YWNobWVudFR5cGUgPSB0eXBlRm9yQXR0YWNobWVudEVsZW1lbnQo
Y29udGVudFR5cGUpOwogCiAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBpbnN0ZWFkIGFzayBDb3Jl
U2VydmljZXMgZm9yIGEgcHJlZmVycmVkIG5hbWUgY29ycmVzcG9uZGluZyB0byB0aGUgZ2l2ZW4g
Y29udGVudCB0eXBlLgotICAgIHN0YXRpYyBjb25zdCBjaGFyKiBkZWZhdWx0QXR0YWNobWVudE5h
bWUgPSAiZmlsZSI7CisgICAgc3RhdGljIGNvbnN0ZXhwciBBU0NJSUxpdGVyYWwgZGVmYXVsdEF0
dGFjaG1lbnROYW1lID0gImZpbGUiX3M7CiAKICAgICBTdHJpbmcgZmlsZU5hbWU7CiAgICAgaWYg
KG5hbWUuaXNFbXB0eSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NvY29h
L0J1bmRsZVJlc291cmNlTG9hZGVyLm1tIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NvY29hL0J1
bmRsZVJlc291cmNlTG9hZGVyLm1tCmluZGV4IGMzYjdiN2ZlNTVkYzMzMDQzY2M4YWUzOWNjZmE0
N2RiNzY5NjNlY2YuLjljMjc5MTEzOTU3OWUwZDQ2N2MzODBhNTIzZDU1MTUxNDIyMzFhYjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jb2NvYS9CdW5kbGVSZXNvdXJjZUxvYWRl
ci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY29jb2EvQnVuZGxlUmVzb3VyY2VMb2Fk
ZXIubW0KQEAgLTY1LDEzICs2NSwxMyBAQCB2b2lkIGxvYWRSZXNvdXJjZUZyb21CdW5kbGUoUmVz
b3VyY2VMb2FkZXImIGxvYWRlciwgY29uc3QgU3RyaW5nJiBzdWJkaXJlY3RvcnkpCiAKICAgICAg
ICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFtwcm90ZWN0ZWRMb2FkZXIgPSBXVEZNb3ZlKHBy
b3RlY3RlZExvYWRlciksIHVybCA9IFdURk1vdmUodXJsKS5pc29sYXRlZENvcHkoKSwgYnVmZmVy
ID0gU2hhcmVkQnVmZmVyOjpjcmVhdGUoZGF0YSldKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBh
dXRvIG1pbWVUeXBlID0gTUlNRVR5cGVSZWdpc3RyeTo6bWltZVR5cGVGb3JQYXRoKHVybC5wYXRo
KCkpOwotICAgICAgICAgICAgUmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSB7IHVybCwgbWltZVR5
cGUsIHN0YXRpY19jYXN0PGxvbmcgbG9uZz4oYnVmZmVyLT5zaXplKCkpLCBNSU1FVHlwZVJlZ2lz
dHJ5Ojppc1RleHRNSU1FVHlwZShtaW1lVHlwZSkgPyAiVVRGLTgiX3MgOiBudWxscHRyIH07Cisg
ICAgICAgICAgICBSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlIHsgdXJsLCBtaW1lVHlwZSwgc3Rh
dGljX2Nhc3Q8bG9uZyBsb25nPihidWZmZXItPnNpemUoKSksIE1JTUVUeXBlUmVnaXN0cnk6Omlz
VGV4dE1JTUVUeXBlKG1pbWVUeXBlKSA/ICJVVEYtOCJfcyA6IFN0cmluZygpIH07CiAgICAgICAg
ICAgICByZXNwb25zZS5zZXRIVFRQU3RhdHVzQ29kZSgyMDApOwogICAgICAgICAgICAgcmVzcG9u
c2Uuc2V0SFRUUFN0YXR1c1RleHQoIk9LIl9zKTsKICAgICAgICAgICAgIHJlc3BvbnNlLnNldFNv
dXJjZShSZXNvdXJjZVJlc3BvbnNlOjpTb3VyY2U6Ok5ldHdvcmspOwogCiAgICAgICAgICAgICAv
LyBBbGxvdyBpbWFnZXMgdG8gbG9hZC4KLSAgICAgICAgICAgIHJlc3BvbnNlLmFkZEhUVFBIZWFk
ZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6QWNjZXNzQ29udHJvbEFsbG93T3JpZ2luLCAiKiIpOwor
ICAgICAgICAgICAgcmVzcG9uc2UuYWRkSFRUUEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpB
Y2Nlc3NDb250cm9sQWxsb3dPcmlnaW4sICIqIl9zKTsKIAogICAgICAgICAgICAgcHJvdGVjdGVk
TG9hZGVyLT5kZWxpdmVyUmVzcG9uc2VBbmREYXRhKHJlc3BvbnNlLCBXVEZNb3ZlKGJ1ZmZlcikp
OwogICAgICAgICB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9tYWMvTG9h
ZGVyTlNVUkxFeHRyYXMubW0gYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvbWFjL0xvYWRlck5TVVJM
RXh0cmFzLm1tCmluZGV4IDU1MGRhYjgwZWUzYWE0NjA3MjFkZWI2YzMwYzg1YThlNmRmMGEwNDcu
LmU1OGY0NTU0ZmU0MDQ2ZTFkMzIxNGM5ZjE2YTBmMWViN2IyYmFiOTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9tYWMvTG9hZGVyTlNVUkxFeHRyYXMubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL21hYy9Mb2FkZXJOU1VSTEV4dHJhcy5tbQpAQCAtNjQsNyArNjQsNyBA
QCBOU1N0cmluZyAqc3VnZ2VzdGVkRmlsZW5hbWVXaXRoTUlNRVR5cGUoTlNVUkwgKnVybCwgY29u
c3QgU3RyaW5nJiBtaW1lVHlwZSkKICAgICAvLyBoYXZlIGEgZmlsZW5hbWUgd2hpY2ggaGFzIC50
YXIgaW4gaXQgb3IgZW5kcyBpbiAudGd6CiAgICAgaWYgKChtaW1lVHlwZSA9PSAiYXBwbGljYXRp
b24vdGFyIiB8fCBtaW1lVHlwZSA9PSAiYXBwbGljYXRpb24veC10YXIiKQogICAgICAgICAmJiAo
U3RyaW5nKGZpbGVuYW1lKS5jb250YWluc0lnbm9yaW5nQVNDSUlDYXNlKCIudGFyIikKLSAgICAg
ICAgfHwgU3RyaW5nKGZpbGVuYW1lKS5lbmRzV2l0aElnbm9yaW5nQVNDSUlDYXNlKCIudGd6Iikp
KSB7CisgICAgICAgIHx8IFN0cmluZyhmaWxlbmFtZSkuZW5kc1dpdGhJZ25vcmluZ0FTQ0lJQ2Fz
ZSgiLnRneiJfcykpKSB7CiAgICAgICAgIHJldHVybiBmaWxlbmFtZTsKICAgICB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvUmVzb3VyY2VVc2FnZU92ZXJsYXlDb2Nv
YS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvUmVzb3VyY2VVc2FnZU92ZXJsYXlDb2Nv
YS5tbQppbmRleCAxMTQ4NGQwYzU5MmMwN2ZmOTRlYzE3N2EwMTI4MDEwNzljMzk1OTcxLi5lMWRj
MjliODYyZDQyMjQzYTlhMjkxYTBlZDFmNWY0MzNmY2RhMWVhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL2NvY29hL1Jlc291cmNlVXNhZ2VPdmVybGF5Q29jb2EubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9SZXNvdXJjZVVzYWdlT3ZlcmxheUNvY29hLm1tCkBAIC0x
NjEsMTggKzE2MSwxOCBAQCBzdHJ1Y3QgSGlzdG9yaWNSZXNvdXJjZVVzYWdlRGF0YSB7CiBIaXN0
b3JpY1Jlc291cmNlVXNhZ2VEYXRhOjpIaXN0b3JpY1Jlc291cmNlVXNhZ2VEYXRhKCkKIHsKICAg
ICAvLyBWTSB0YWcgY2F0ZWdvcmllcy4KLSAgICBjYXRlZ29yaWVzW01lbW9yeUNhdGVnb3J5OjpK
U0pJVF0gPSBIaXN0b3JpY01lbW9yeUNhdGVnb3J5SW5mbyhNZW1vcnlDYXRlZ29yeTo6SlNKSVQs
IHsgMjU1LCA5NiwgMjU1IH0sICJKUyBKSVQiKTsKLSAgICBjYXRlZ29yaWVzW01lbW9yeUNhdGVn
b3J5OjpHaWdhY2FnZV0gPSBIaXN0b3JpY01lbW9yeUNhdGVnb3J5SW5mbyhNZW1vcnlDYXRlZ29y
eTo6R2lnYWNhZ2UsIHsgMTAxLCA3OSwgMjQwIH0sICJHaWdhY2FnZSIpOwotICAgIGNhdGVnb3Jp
ZXNbTWVtb3J5Q2F0ZWdvcnk6OkltYWdlc10gPSBIaXN0b3JpY01lbW9yeUNhdGVnb3J5SW5mbyhN
ZW1vcnlDYXRlZ29yeTo6SW1hZ2VzLCBDb2xvcjo6eWVsbG93LCAiSW1hZ2VzIik7Ci0gICAgY2F0
ZWdvcmllc1tNZW1vcnlDYXRlZ29yeTo6TGF5ZXJzXSA9IEhpc3RvcmljTWVtb3J5Q2F0ZWdvcnlJ
bmZvKE1lbW9yeUNhdGVnb3J5OjpMYXllcnMsIENvbG9yOjpjeWFuLCAiTGF5ZXJzIik7Ci0gICAg
Y2F0ZWdvcmllc1tNZW1vcnlDYXRlZ29yeTo6TGliY01hbGxvY10gPSBIaXN0b3JpY01lbW9yeUNh
dGVnb3J5SW5mbyhNZW1vcnlDYXRlZ29yeTo6TGliY01hbGxvYywgQ29sb3I6OmdyZWVuLCAibGli
YyBtYWxsb2MiKTsKLSAgICBjYXRlZ29yaWVzW01lbW9yeUNhdGVnb3J5OjpibWFsbG9jXSA9IEhp
c3RvcmljTWVtb3J5Q2F0ZWdvcnlJbmZvKE1lbW9yeUNhdGVnb3J5OjpibWFsbG9jLCB7IDI1NSwg
OTYsIDk2IH0sICJibWFsbG9jIik7Ci0gICAgY2F0ZWdvcmllc1tNZW1vcnlDYXRlZ29yeTo6SXNv
SGVhcF0gPSBIaXN0b3JpY01lbW9yeUNhdGVnb3J5SW5mbyhNZW1vcnlDYXRlZ29yeTo6SXNvSGVh
cCwgeyAxMjgsIDE1OSwgNjQgfSwgIklzb0hlYXAiKTsKLSAgICBjYXRlZ29yaWVzW01lbW9yeUNh
dGVnb3J5OjpPdGhlcl0gPSBIaXN0b3JpY01lbW9yeUNhdGVnb3J5SW5mbyhNZW1vcnlDYXRlZ29y
eTo6T3RoZXIsIHsgMTkyLCAyNTUsIDAgfSwgIk90aGVyIik7CisgICAgY2F0ZWdvcmllc1tNZW1v
cnlDYXRlZ29yeTo6SlNKSVRdID0gSGlzdG9yaWNNZW1vcnlDYXRlZ29yeUluZm8oTWVtb3J5Q2F0
ZWdvcnk6OkpTSklULCB7IDI1NSwgOTYsIDI1NSB9LCAiSlMgSklUIl9zKTsKKyAgICBjYXRlZ29y
aWVzW01lbW9yeUNhdGVnb3J5OjpHaWdhY2FnZV0gPSBIaXN0b3JpY01lbW9yeUNhdGVnb3J5SW5m
byhNZW1vcnlDYXRlZ29yeTo6R2lnYWNhZ2UsIHsgMTAxLCA3OSwgMjQwIH0sICJHaWdhY2FnZSJf
cyk7CisgICAgY2F0ZWdvcmllc1tNZW1vcnlDYXRlZ29yeTo6SW1hZ2VzXSA9IEhpc3RvcmljTWVt
b3J5Q2F0ZWdvcnlJbmZvKE1lbW9yeUNhdGVnb3J5OjpJbWFnZXMsIENvbG9yOjp5ZWxsb3csICJJ
bWFnZXMiX3MpOworICAgIGNhdGVnb3JpZXNbTWVtb3J5Q2F0ZWdvcnk6OkxheWVyc10gPSBIaXN0
b3JpY01lbW9yeUNhdGVnb3J5SW5mbyhNZW1vcnlDYXRlZ29yeTo6TGF5ZXJzLCBDb2xvcjo6Y3lh
biwgIkxheWVycyJfcyk7CisgICAgY2F0ZWdvcmllc1tNZW1vcnlDYXRlZ29yeTo6TGliY01hbGxv
Y10gPSBIaXN0b3JpY01lbW9yeUNhdGVnb3J5SW5mbyhNZW1vcnlDYXRlZ29yeTo6TGliY01hbGxv
YywgQ29sb3I6OmdyZWVuLCAibGliYyBtYWxsb2MiX3MpOworICAgIGNhdGVnb3JpZXNbTWVtb3J5
Q2F0ZWdvcnk6OmJtYWxsb2NdID0gSGlzdG9yaWNNZW1vcnlDYXRlZ29yeUluZm8oTWVtb3J5Q2F0
ZWdvcnk6OmJtYWxsb2MsIHsgMjU1LCA5NiwgOTYgfSwgImJtYWxsb2MiX3MpOworICAgIGNhdGVn
b3JpZXNbTWVtb3J5Q2F0ZWdvcnk6Oklzb0hlYXBdID0gSGlzdG9yaWNNZW1vcnlDYXRlZ29yeUlu
Zm8oTWVtb3J5Q2F0ZWdvcnk6Oklzb0hlYXAsIHsgMTI4LCAxNTksIDY0IH0sICJJc29IZWFwIl9z
KTsKKyAgICBjYXRlZ29yaWVzW01lbW9yeUNhdGVnb3J5OjpPdGhlcl0gPSBIaXN0b3JpY01lbW9y
eUNhdGVnb3J5SW5mbyhNZW1vcnlDYXRlZ29yeTo6T3RoZXIsIHsgMTkyLCAyNTUsIDAgfSwgIk90
aGVyIl9zKTsKIAogICAgIC8vIFN1YiBjYXRlZ29yaWVzIChlLmcgYnJlYWtkb3duIG9mIGJtYWxs
b2MgdGFnLikKLSAgICBjYXRlZ29yaWVzW01lbW9yeUNhdGVnb3J5OjpHQ0hlYXBdID0gSGlzdG9y
aWNNZW1vcnlDYXRlZ29yeUluZm8oTWVtb3J5Q2F0ZWdvcnk6OkdDSGVhcCwgeyAxNjAsIDE2MCwg
MjU1IH0sICJHQyBoZWFwIiwgdHJ1ZSk7Ci0gICAgY2F0ZWdvcmllc1tNZW1vcnlDYXRlZ29yeTo6
R0NPd25lZF0gPSBIaXN0b3JpY01lbW9yeUNhdGVnb3J5SW5mbyhNZW1vcnlDYXRlZ29yeTo6R0NP
d25lZCwgeyAyNTUsIDE5MiwgOTYgfSwgIkdDIG93bmVkIiwgdHJ1ZSk7CisgICAgY2F0ZWdvcmll
c1tNZW1vcnlDYXRlZ29yeTo6R0NIZWFwXSA9IEhpc3RvcmljTWVtb3J5Q2F0ZWdvcnlJbmZvKE1l
bW9yeUNhdGVnb3J5OjpHQ0hlYXAsIHsgMTYwLCAxNjAsIDI1NSB9LCAiR0MgaGVhcCJfcywgdHJ1
ZSk7CisgICAgY2F0ZWdvcmllc1tNZW1vcnlDYXRlZ29yeTo6R0NPd25lZF0gPSBIaXN0b3JpY01l
bW9yeUNhdGVnb3J5SW5mbyhNZW1vcnlDYXRlZ29yeTo6R0NPd25lZCwgeyAyNTUsIDE5MiwgOTYg
fSwgIkdDIG93bmVkIl9zLCB0cnVlKTsKIAogI2lmbmRlZiBOREVCVUcKICAgICAvLyBFbnN1cmUg
dGhpcyBhbGlnbnMgd2l0aCBSZXNvdXJjZVVzYWdlRGF0YSdzIGNhdGVnb3J5IG9yZGVyLgpAQCAt
MzExLDcgKzMxMSw3IEBAIHN0YXRpYyB2b2lkIGRyYXdDcHVIaXN0b3J5KENHQ29udGV4dFJlZiBj
b250ZXh0LCBmbG9hdCB4MSwgZmxvYXQgeTEsIGZsb2F0IHkyLCBSCiAgICAgICAgIGkrKzsKICAg
ICB9KTsKIAotICAgIGRyYXdHcmFwaExhYmVsKGNvbnRleHQsIHgxLCB5MiwgIkNQVSIpOworICAg
IGRyYXdHcmFwaExhYmVsKGNvbnRleHQsIHgxLCB5MiwgIkNQVSJfcyk7CiB9CiAKIHN0YXRpYyB2
b2lkIGRyYXdHQ0hpc3RvcnkoQ0dDb250ZXh0UmVmIGNvbnRleHQsIGZsb2F0IHgxLCBmbG9hdCB5
MSwgZmxvYXQgeTIsIFJpbmdCdWZmZXI8c2l6ZV90PiYgc2l6ZUhpc3RvcnksIFJpbmdCdWZmZXI8
c2l6ZV90PiYgY2FwYWNpdHlIaXN0b3J5KQpAQCAtMzU0LDcgKzM1NCw3IEBAIHN0YXRpYyB2b2lk
IGRyYXdHQ0hpc3RvcnkoQ0dDb250ZXh0UmVmIGNvbnRleHQsIGZsb2F0IHgxLCBmbG9hdCB5MSwg
ZmxvYXQgeTIsIFJpCiAgICAgICAgIGkrKzsKICAgICB9KTsKIAotICAgIGRyYXdHcmFwaExhYmVs
KGNvbnRleHQsIHgxLCB5MiwgIkdDIik7CisgICAgZHJhd0dyYXBoTGFiZWwoY29udGV4dCwgeDEs
IHkyLCAiR0MiX3MpOwogfQogCiBzdGF0aWMgdm9pZCBkcmF3TWVtSGlzdG9yeShDR0NvbnRleHRS
ZWYgY29udGV4dCwgZmxvYXQgeDEsIGZsb2F0IHkxLCBmbG9hdCB5MiwgSGlzdG9yaWNSZXNvdXJj
ZVVzYWdlRGF0YSYgZGF0YSkKQEAgLTQwMCw3ICs0MDAsNyBAQCBzdGF0aWMgdm9pZCBkcmF3TWVt
SGlzdG9yeShDR0NvbnRleHRSZWYgY29udGV4dCwgZmxvYXQgeDEsIGZsb2F0IHkxLCBmbG9hdCB5
MiwgSAogICAgICAgICArK2k7CiAgICAgfQogCi0gICAgZHJhd0dyYXBoTGFiZWwoY29udGV4dCwg
eDEsIHkyLCAiTWVtIik7CisgICAgZHJhd0dyYXBoTGFiZWwoY29udGV4dCwgeDEsIHkyLCAiTWVt
Il9zKTsKIH0KIAogc3RhdGljIGNvbnN0IGZsb2F0IGZ1bGxDaXJjbGVJblJhZGlhbnMgPSBwaUZs
b2F0ICogMjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvU2V0dGluZ3NC
YXNlQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL1NldHRpbmdzQmFzZUNvY29h
Lm1tCmluZGV4IGQyMWQ5OWQ4NjFiOGZhOTI4MmU5MWE5YWE0YTMwMWY4ZmI2NGQxNzcuLjQ3NzRj
ZTA4YTViOGI1MGY2NGExNjIwMmY1MzhiNGY0ZjdlZjJlNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvY29jb2EvU2V0dGluZ3NCYXNlQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9jb2NvYS9TZXR0aW5nc0Jhc2VDb2NvYS5tbQpAQCAtNDMsMTUgKzQzLDE1IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogdm9pZCBTZXR0aW5nc0Jhc2U6OmluaXRpYWxpemVEZWZhdWx0
Rm9udEZhbWlsaWVzKCkKIHsKLSAgICBzZXRTdGFuZGFyZEZvbnRGYW1pbHkoIlNvbmd0aSBUQyIs
IFVTQ1JJUFRfVFJBRElUSU9OQUxfSEFOKTsKLSAgICBzZXRTdGFuZGFyZEZvbnRGYW1pbHkoIlNv
bmd0aSBTQyIsIFVTQ1JJUFRfU0lNUExJRklFRF9IQU4pOwotICAgIHNldFN0YW5kYXJkRm9udEZh
bWlseSgiSGlyYWdpbm8gTWluY2hvIFByb04iLCBVU0NSSVBUX0tBVEFLQU5BX09SX0hJUkFHQU5B
KTsKLSAgICBzZXRTdGFuZGFyZEZvbnRGYW1pbHkoIkFwcGxlTXl1bmdqbyIsIFVTQ1JJUFRfSEFO
R1VMKTsKLQotICAgIHNldFN0YW5kYXJkRm9udEZhbWlseSgiVGltZXMiLCBVU0NSSVBUX0NPTU1P
Tik7Ci0gICAgc2V0Rml4ZWRGb250RmFtaWx5KCJDb3VyaWVyIiwgVVNDUklQVF9DT01NT04pOwot
ICAgIHNldFNlcmlmRm9udEZhbWlseSgiVGltZXMiLCBVU0NSSVBUX0NPTU1PTik7Ci0gICAgc2V0
U2Fuc1NlcmlmRm9udEZhbWlseSgiSGVsdmV0aWNhIiwgVVNDUklQVF9DT01NT04pOworICAgIHNl
dFN0YW5kYXJkRm9udEZhbWlseSgiU29uZ3RpIFRDIl9zLCBVU0NSSVBUX1RSQURJVElPTkFMX0hB
Tik7CisgICAgc2V0U3RhbmRhcmRGb250RmFtaWx5KCJTb25ndGkgU0MiX3MsIFVTQ1JJUFRfU0lN
UExJRklFRF9IQU4pOworICAgIHNldFN0YW5kYXJkRm9udEZhbWlseSgiSGlyYWdpbm8gTWluY2hv
IFByb04iX3MsIFVTQ1JJUFRfS0FUQUtBTkFfT1JfSElSQUdBTkEpOworICAgIHNldFN0YW5kYXJk
Rm9udEZhbWlseSgiQXBwbGVNeXVuZ2pvIl9zLCBVU0NSSVBUX0hBTkdVTCk7CisKKyAgICBzZXRT
dGFuZGFyZEZvbnRGYW1pbHkoIlRpbWVzIl9zLCBVU0NSSVBUX0NPTU1PTik7CisgICAgc2V0Rml4
ZWRGb250RmFtaWx5KCJDb3VyaWVyIl9zLCBVU0NSSVBUX0NPTU1PTik7CisgICAgc2V0U2VyaWZG
b250RmFtaWx5KCJUaW1lcyJfcywgVVNDUklQVF9DT01NT04pOworICAgIHNldFNhbnNTZXJpZkZv
bnRGYW1pbHkoIkhlbHZldGljYSJfcywgVVNDUklQVF9DT01NT04pOwogfQogCiBib29sIFNldHRp
bmdzQmFzZTo6cGxhdGZvcm1EZWZhdWx0TWVkaWFTb3VyY2VFbmFibGVkKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1BhZ2VNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L21hYy9QYWdlTWFjLm1tCmluZGV4IDQ0OWE4ZmY2Y2Q2OTRkMjRjNWFmMTRiZGVhZjU0YzYyNGMy
MmMxMWIuLjlmMmQzZjVmZDNkZjdmYzY1YjhmMmJkNTJjYzY5ZjIyYmIxYmFjZTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1BhZ2VNYWMubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9tYWMvUGFnZU1hYy5tbQpAQCAtNTcsMTUgKzU3LDE1IEBAIHZvaWQgUGFnZTo6cGxh
dGZvcm1Jbml0aWFsaXplKCkKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZUZsYWc7CiAg
ICAgc3RkOjpjYWxsX29uY2Uob25jZUZsYWcsIFtdIHsKICNpZiBFTkFCTEUoVFJFRV9ERUJVR0dJ
TkcpCi0gICAgICAgIFBBTDo6cmVnaXN0ZXJOb3RpZnlDYWxsYmFjaygiY29tLmFwcGxlLldlYktp
dC5zaG93UmVuZGVyVHJlZSIsIHByaW50UmVuZGVyVHJlZUZvckxpdmVEb2N1bWVudHMpOwotICAg
ICAgICBQQUw6OnJlZ2lzdGVyTm90aWZ5Q2FsbGJhY2soImNvbS5hcHBsZS5XZWJLaXQuc2hvd0xh
eWVyVHJlZSIsIHByaW50TGF5ZXJUcmVlRm9yTGl2ZURvY3VtZW50cyk7Ci0gICAgICAgIFBBTDo6
cmVnaXN0ZXJOb3RpZnlDYWxsYmFjaygiY29tLmFwcGxlLldlYktpdC5zaG93R3JhcGhpY3NMYXll
clRyZWUiLCBwcmludEdyYXBoaWNzTGF5ZXJUcmVlRm9yTGl2ZURvY3VtZW50cyk7CisgICAgICAg
IFBBTDo6cmVnaXN0ZXJOb3RpZnlDYWxsYmFjaygiY29tLmFwcGxlLldlYktpdC5zaG93UmVuZGVy
VHJlZSJfcywgcHJpbnRSZW5kZXJUcmVlRm9yTGl2ZURvY3VtZW50cyk7CisgICAgICAgIFBBTDo6
cmVnaXN0ZXJOb3RpZnlDYWxsYmFjaygiY29tLmFwcGxlLldlYktpdC5zaG93TGF5ZXJUcmVlIl9z
LCBwcmludExheWVyVHJlZUZvckxpdmVEb2N1bWVudHMpOworICAgICAgICBQQUw6OnJlZ2lzdGVy
Tm90aWZ5Q2FsbGJhY2soImNvbS5hcHBsZS5XZWJLaXQuc2hvd0dyYXBoaWNzTGF5ZXJUcmVlIl9z
LCBwcmludEdyYXBoaWNzTGF5ZXJUcmVlRm9yTGl2ZURvY3VtZW50cyk7CiAjaWYgRU5BQkxFKExB
WU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCi0gICAgICAgIFBBTDo6cmVnaXN0ZXJOb3RpZnlDYWxs
YmFjaygiY29tLmFwcGxlLldlYktpdC5zaG93TGF5b3V0VHJlZSIsIExheW91dDo6cHJpbnRMYXlv
dXRUcmVlRm9yTGl2ZURvY3VtZW50cyk7CisgICAgICAgIFBBTDo6cmVnaXN0ZXJOb3RpZnlDYWxs
YmFjaygiY29tLmFwcGxlLldlYktpdC5zaG93TGF5b3V0VHJlZSJfcywgTGF5b3V0OjpwcmludExh
eW91dFRyZWVGb3JMaXZlRG9jdW1lbnRzKTsKICNlbmRpZgogI2VuZGlmIC8vIEVOQUJMRShUUkVF
X0RFQlVHR0lORykKIAotICAgICAgICBQQUw6OnJlZ2lzdGVyTm90aWZ5Q2FsbGJhY2soImNvbS5h
cHBsZS5XZWJLaXQuc2hvd0FsbERvY3VtZW50cyIsIFtdIHsKKyAgICAgICAgUEFMOjpyZWdpc3Rl
ck5vdGlmeUNhbGxiYWNrKCJjb20uYXBwbGUuV2ViS2l0LnNob3dBbGxEb2N1bWVudHMiX3MsIFtd
IHsKICAgICAgICAgICAgIHVuc2lnbmVkIG51bVBhZ2VzID0gMDsKICAgICAgICAgICAgIFBhZ2U6
OmZvckVhY2hQYWdlKFsmbnVtUGFnZXNdKFBhZ2UmKSB7CiAgICAgICAgICAgICAgICAgKytudW1Q
YWdlczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmlu
Z3MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAKaW5k
ZXggY2Y1ZDBlMDI2Y2RmODMzNzIyZTUxY2FjMGJjYzdmMTM0YTYyNWU5ZS4uOGE3ZThlZjZiY2Uy
M2MxZjg0YWQ0MDMwNmNkNmY1ZjVjOTBlNThkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vTG9jYWxpemVkU3RyaW5ncy5jcHAKQEAgLTY1NSw3ICs2NTUsNyBAQCBTdHJpbmcgQVhXZWVr
RmllbGRUZXh0KCkKICAgICByZXR1cm4gV0VCX1VJX1NUUklORygid2VlayBhbmQgeWVhciBmaWVs
ZCIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIGEgdGltZSBmaWVsZC4iKTsK
IH0KIAotU3RyaW5nIEFYQVJJQUNvbnRlbnRHcm91cFRleHQoY29uc3QgU3RyaW5nJiBhcmlhVHlw
ZSkKK1N0cmluZyBBWEFSSUFDb250ZW50R3JvdXBUZXh0KFN0cmluZ1ZpZXcgYXJpYVR5cGUpCiB7
CiAgICAgaWYgKGFyaWFUeXBlID09ICJBUklBQXBwbGljYXRpb25BbGVydCIpCiAgICAgICAgIHJl
dHVybiBXRUJfVUlfU1RSSU5HKCJhbGVydCIsICJBbiBBUklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAg
dGhhdCBhY3RzIGFzIGFuIGFsZXJ0LiIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxp
emVkU3RyaW5ncy5oCmluZGV4IGIxODFmMWVkOGEwYjg4YzFmY2ZjZDBlODYxNzIzNGJiMjk0OTNk
YWUuLmEyMGI1ODhlNjkzNzE2OWExMDY3ZDM5ZDdjMTA5ZjM0NTllOGMzOTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgKQEAgLTE5NSw3ICsxOTUsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgU3RyaW5nIEFYTW9udGhGaWVsZFRleHQoKTsKICAgICBT
dHJpbmcgQVhOdW1iZXJGaWVsZFRleHQoKTsKICAgICBTdHJpbmcgQVhXZWVrRmllbGRUZXh0KCk7
Ci0gICAgU3RyaW5nIEFYQVJJQUNvbnRlbnRHcm91cFRleHQoY29uc3QgU3RyaW5nJiBhcmlhVHlw
ZSk7CisgICAgU3RyaW5nIEFYQVJJQUNvbnRlbnRHcm91cFRleHQoU3RyaW5nVmlldyBhcmlhVHlw
ZSk7CiAgICAgU3RyaW5nIEFYSG9yaXpvbnRhbFJ1bGVEZXNjcmlwdGlvblRleHQoKTsKICAgICBT
dHJpbmcgQVhNYXJrVGV4dCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9QYXN0ZWJvYXJkLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkLmgKaW5k
ZXggYWViYTBhM2I0NGQ4NjY2ZWNkYjIyMWIzMzU3MGQ0Y2NkYTU2NjQyOS4uMWNmNDEwOGYwOGU2
MzA2NThmOWEzZTMxZmU0YmNlOTYzZTNlNGNjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vUGFzdGVib2FyZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3Rl
Ym9hcmQuaApAQCAtMzc1LDkgKzM3NSw5IEBAIGV4dGVybiBOU1N0cmluZyAqVUlDb2xvclBib2Fy
ZFR5cGU7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1BQykKLWV4dGVybiBjb25zdCBjaGFyKiBj
b25zdCBXZWJBcmNoaXZlUGJvYXJkVHlwZTsKLWV4dGVybiBjb25zdCBjaGFyKiBjb25zdCBXZWJV
UkxOYW1lUGJvYXJkVHlwZTsKLWV4dGVybiBjb25zdCBjaGFyKiBjb25zdCBXZWJVUkxzV2l0aFRp
dGxlc1Bib2FyZFR5cGU7CitleHRlcm4gY29uc3QgQVNDSUlMaXRlcmFsIFdlYkFyY2hpdmVQYm9h
cmRUeXBlOworZXh0ZXJuIGNvbnN0IEFTQ0lJTGl0ZXJhbCBXZWJVUkxOYW1lUGJvYXJkVHlwZTsK
K2V4dGVybiBjb25zdCBBU0NJSUxpdGVyYWwgV2ViVVJMc1dpdGhUaXRsZXNQYm9hcmRUeXBlOwog
I2VuZGlmCiAKICNpZiAhUExBVEZPUk0oR1RLKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vUGFzdGVib2FyZEN1c3RvbURhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1Bhc3RlYm9hcmRDdXN0b21EYXRhLmgKaW5kZXggMmJlODFkMjkzOGEzZGJkMDkwMjZjYTZlYzY0
YWMzMjg3ZTZhYmMwMy4uMjU2ZjQ0NTQyOTAzMmJiNDJmMzEzZDkyMGFmYmZmZDFiMDIzYTc3YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZEN1c3RvbURhdGEu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkQ3VzdG9tRGF0YS5oCkBA
IC03Niw3ICs3Niw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNsZWFyKGNvbnN0IFN0cmluZyYgdHlw
ZSk7CiAKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgY29u
c3QgY2hhciogY29jb2FUeXBlKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIEFTQ0lJTGl0
ZXJhbCBjb2NvYVR5cGUoKTsKICNlbGlmIFBMQVRGT1JNKEdUSykKICAgICBzdGF0aWMgY29uc3Qg
Y2hhciogZ3RrVHlwZSgpIHsgcmV0dXJuICJvcmcud2Via2l0Z3RrLldlYktpdC5jdXN0b20tcGFz
dGVib2FyZC1kYXRhIjsgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9jb2NvYS9NZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9NZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EubW0KaW5k
ZXggYTBlOTAyZjEyY2U3ZWIxN2M3NzZkNDNjMTM1Yzg1MzI2Yzc1Y2ZlMC4uOTZjZGZhYTM2MjFj
NWM5NjJkYTBlMDUzMDJkNGVhOWQ5Y2Q3MDg3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vY29jb2EvTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL01lZGlhU2Vzc2lvbk1hbmFnZXJDb2Nv
YS5tbQpAQCAtNDUyLDggKzQ1Miw4IEBAIHZvaWQgTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hOjp1
cGRhdGVOb3dQbGF5aW5nSW5mbygpCiAKICAgICBpZiAobV9ub3dQbGF5aW5nTWFuYWdlci0+c2V0
Tm93UGxheWluZ0luZm8oKm5vd1BsYXlpbmdJbmZvKSkgewogI2lmZGVmIExPR19ESVNBQkxFRAot
ICAgICAgICBTdHJpbmcgc3JjID0gInNyYyI7Ci0gICAgICAgIFN0cmluZyB0aXRsZSA9ICJ0aXRs
ZSI7CisgICAgICAgIFN0cmluZyBzcmMgPSAic3JjIl9zOworICAgICAgICBTdHJpbmcgdGl0bGUg
PSAidGl0bGUiX3M7CiAjZWxzZQogICAgICAgICBTdHJpbmcgc3JjID0gbm93UGxheWluZ0luZm8t
PmFydHdvcmsgPyBub3dQbGF5aW5nSW5mby0+YXJ0d29yay0+c3JjIDogU3RyaW5nKCk7CiAgICAg
ICAgIFN0cmluZyB0aXRsZSA9IG5vd1BsYXlpbmdJbmZvLT50aXRsZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL0tleUV2ZW50Q29jb2EubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jb2NvYS9LZXlFdmVudENvY29hLm1tCmluZGV4IGY0ZWVlNjVmMDk5M2I5
ZDRkOWJkNmZlOWVkYTdhZDBhNjE1MzczNTIuLjFjNWUyNDNjODUyYTM4NTA5Yzg5Y2M1OTE5Y2Zj
MTQyMDY3MTk5YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL0tl
eUV2ZW50Q29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvS2V5RXZl
bnRDb2NvYS5tbQpAQCAtMjIwLDcgKzIyMCw3IEBAIFN0cmluZyBrZXlJZGVudGlmaWVyRm9yQ2hh
ckNvZGUodW5pY2hhciBjaGFyQ29kZSkKIAogICAgICAgICAvLyAiQWx0IgogICAgICAgICBjYXNl
IE5TTWVudUZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJBbHQiOworICAgICAgICAg
ICAgcmV0dXJuICJBbHQiX3M7CiAKICAgICAgICAgLy8gIkFwcHMiCiAgICAgICAgIC8vICJCcm93
c2VyQmFjayIKQEAgLTIzMyw3ICsyMzMsNyBAQCBTdHJpbmcga2V5SWRlbnRpZmllckZvckNoYXJD
b2RlKHVuaWNoYXIgY2hhckNvZGUpCiAKICAgICAgICAgLy8gIkNsZWFyIgogICAgICAgICBjYXNl
IE5TQ2xlYXJMaW5lRnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkNsZWFyIjsKKyAg
ICAgICAgICAgIHJldHVybiAiQ2xlYXIiX3M7CiAKICAgICAgICAgLy8gIkNvZGVJbnB1dCIKICAg
ICAgICAgLy8gIkNvbXBvc2UiCkBAIC0yNDUsMTAwICsyNDUsMTAwIEBAIFN0cmluZyBrZXlJZGVu
dGlmaWVyRm9yQ2hhckNvZGUodW5pY2hhciBjaGFyQ29kZSkKIAogICAgICAgICAvLyAiRG93biIK
ICAgICAgICAgY2FzZSBOU0Rvd25BcnJvd0Z1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJu
ICJEb3duIjsKKyAgICAgICAgICAgIHJldHVybiAiRG93biJfczsKICAgICAgICAgLy8gIkVuZCIK
ICAgICAgICAgY2FzZSBOU0VuZEZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJFbmQi
OworICAgICAgICAgICAgcmV0dXJuICJFbmQiX3M7CiAgICAgICAgIC8vICJFbnRlciIKICAgICAg
ICAgY2FzZSAweDM6IGNhc2UgMHhBOiBjYXNlIDB4RDogLy8gTWFjaW50b3NoIGNhbGxzIHRoZSBv
bmUgb24gdGhlIG1haW4ga2V5Ym9hcmQgUmV0dXJuLCBidXQgV2luZG93cyBjYWxscyBpdCBFbnRl
ciwgc28gd2UnbGwgZG8gdGhlIHNhbWUgZm9yIHRoZSBET00KLSAgICAgICAgICAgIHJldHVybiAi
RW50ZXIiOworICAgICAgICAgICAgcmV0dXJuICJFbnRlciJfczsKIAogICAgICAgICAvLyAiRXJh
c2VFb2YiCiAKICAgICAgICAgLy8gIkV4ZWN1dGUiCiAgICAgICAgIGNhc2UgTlNFeGVjdXRlRnVu
Y3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkV4ZWN1dGUiOworICAgICAgICAgICAgcmV0
dXJuICJFeGVjdXRlIl9zOwogCiAgICAgICAgIC8vICJFeHNlbCIKIAogICAgICAgICAvLyAiRjEi
CiAgICAgICAgIGNhc2UgTlNGMUZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJGMSI7
CisgICAgICAgICAgICByZXR1cm4gIkYxIl9zOwogICAgICAgICAvLyAiRjIiCiAgICAgICAgIGNh
c2UgTlNGMkZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJGMiI7CisgICAgICAgICAg
ICByZXR1cm4gIkYyIl9zOwogICAgICAgICAvLyAiRjMiCiAgICAgICAgIGNhc2UgTlNGM0Z1bmN0
aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJGMyI7CisgICAgICAgICAgICByZXR1cm4gIkYz
Il9zOwogICAgICAgICAvLyAiRjQiCiAgICAgICAgIGNhc2UgTlNGNEZ1bmN0aW9uS2V5OgotICAg
ICAgICAgICAgcmV0dXJuICJGNCI7CisgICAgICAgICAgICByZXR1cm4gIkY0Il9zOwogICAgICAg
ICAvLyAiRjUiCiAgICAgICAgIGNhc2UgTlNGNUZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0
dXJuICJGNSI7CisgICAgICAgICAgICByZXR1cm4gIkY1Il9zOwogICAgICAgICAvLyAiRjYiCiAg
ICAgICAgIGNhc2UgTlNGNkZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJGNiI7Cisg
ICAgICAgICAgICByZXR1cm4gIkY2Il9zOwogICAgICAgICAvLyAiRjciCiAgICAgICAgIGNhc2Ug
TlNGN0Z1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJGNyI7CisgICAgICAgICAgICBy
ZXR1cm4gIkY3Il9zOwogICAgICAgICAvLyAiRjgiCiAgICAgICAgIGNhc2UgTlNGOEZ1bmN0aW9u
S2V5OgotICAgICAgICAgICAgcmV0dXJuICJGOCI7CisgICAgICAgICAgICByZXR1cm4gIkY4Il9z
OwogICAgICAgICAvLyAiRjkiCiAgICAgICAgIGNhc2UgTlNGOUZ1bmN0aW9uS2V5OgotICAgICAg
ICAgICAgcmV0dXJuICJGOSI7CisgICAgICAgICAgICByZXR1cm4gIkY5Il9zOwogICAgICAgICAv
LyAiRjEwIgogICAgICAgICBjYXNlIE5TRjEwRnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1
cm4gIkYxMCI7CisgICAgICAgICAgICByZXR1cm4gIkYxMCJfczsKICAgICAgICAgLy8gIkYxMSIK
ICAgICAgICAgY2FzZSBOU0YxMUZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJGMTEi
OworICAgICAgICAgICAgcmV0dXJuICJGMTEiX3M7CiAgICAgICAgIC8vICJGMTIiCiAgICAgICAg
IGNhc2UgTlNGMTJGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiRjEyIjsKKyAgICAg
ICAgICAgIHJldHVybiAiRjEyIl9zOwogICAgICAgICAvLyAiRjEzIgogICAgICAgICBjYXNlIE5T
RjEzRnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkYxMyI7CisgICAgICAgICAgICBy
ZXR1cm4gIkYxMyJfczsKICAgICAgICAgLy8gIkYxNCIKICAgICAgICAgY2FzZSBOU0YxNEZ1bmN0
aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJGMTQiOworICAgICAgICAgICAgcmV0dXJuICJG
MTQiX3M7CiAgICAgICAgIC8vICJGMTUiCiAgICAgICAgIGNhc2UgTlNGMTVGdW5jdGlvbktleToK
LSAgICAgICAgICAgIHJldHVybiAiRjE1IjsKKyAgICAgICAgICAgIHJldHVybiAiRjE1Il9zOwog
ICAgICAgICAvLyAiRjE2IgogICAgICAgICBjYXNlIE5TRjE2RnVuY3Rpb25LZXk6Ci0gICAgICAg
ICAgICByZXR1cm4gIkYxNiI7CisgICAgICAgICAgICByZXR1cm4gIkYxNiJfczsKICAgICAgICAg
Ly8gIkYxNyIKICAgICAgICAgY2FzZSBOU0YxN0Z1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0
dXJuICJGMTciOworICAgICAgICAgICAgcmV0dXJuICJGMTciX3M7CiAgICAgICAgIC8vICJGMTgi
CiAgICAgICAgIGNhc2UgTlNGMThGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiRjE4
IjsKKyAgICAgICAgICAgIHJldHVybiAiRjE4Il9zOwogICAgICAgICAvLyAiRjE5IgogICAgICAg
ICBjYXNlIE5TRjE5RnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkYxOSI7CisgICAg
ICAgICAgICByZXR1cm4gIkYxOSJfczsKICAgICAgICAgLy8gIkYyMCIKICAgICAgICAgY2FzZSBO
U0YyMEZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJGMjAiOworICAgICAgICAgICAg
cmV0dXJuICJGMjAiX3M7CiAgICAgICAgIC8vICJGMjEiCiAgICAgICAgIGNhc2UgTlNGMjFGdW5j
dGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiRjIxIjsKKyAgICAgICAgICAgIHJldHVybiAi
RjIxIl9zOwogICAgICAgICAvLyAiRjIyIgogICAgICAgICBjYXNlIE5TRjIyRnVuY3Rpb25LZXk6
Ci0gICAgICAgICAgICByZXR1cm4gIkYyMiI7CisgICAgICAgICAgICByZXR1cm4gIkYyMiJfczsK
ICAgICAgICAgLy8gIkYyMyIKICAgICAgICAgY2FzZSBOU0YyM0Z1bmN0aW9uS2V5OgotICAgICAg
ICAgICAgcmV0dXJuICJGMjMiOworICAgICAgICAgICAgcmV0dXJuICJGMjMiX3M7CiAgICAgICAg
IC8vICJGMjQiCiAgICAgICAgIGNhc2UgTlNGMjRGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJl
dHVybiAiRjI0IjsKKyAgICAgICAgICAgIHJldHVybiAiRjI0Il9zOwogCiAgICAgICAgIC8vICJG
aW5hbE1vZGUiCiAKICAgICAgICAgLy8gIkZpbmQiCiAgICAgICAgIGNhc2UgTlNGaW5kRnVuY3Rp
b25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkZpbmQiOworICAgICAgICAgICAgcmV0dXJuICJG
aW5kIl9zOwogCiAgICAgICAgIC8vICJGdWxsV2lkdGgiCiAgICAgICAgIC8vICJIYWxmV2lkdGgi
CkBAIC0zNDcsMTYgKzM0NywxNiBAQCBTdHJpbmcga2V5SWRlbnRpZmllckZvckNoYXJDb2RlKHVu
aWNoYXIgY2hhckNvZGUpCiAKICAgICAgICAgLy8gIkhlbHAiCiAgICAgICAgIGNhc2UgTlNIZWxw
RnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkhlbHAiOworICAgICAgICAgICAgcmV0
dXJuICJIZWxwIl9zOwogCiAgICAgICAgIC8vICJIaXJhZ2FuYSIKIAogICAgICAgICAvLyAiSG9t
ZSIKICAgICAgICAgY2FzZSBOU0hvbWVGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAi
SG9tZSI7CisgICAgICAgICAgICByZXR1cm4gIkhvbWUiX3M7CiAgICAgICAgIC8vICJJbnNlcnQi
CiAgICAgICAgIGNhc2UgTlNJbnNlcnRGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAi
SW5zZXJ0IjsKKyAgICAgICAgICAgIHJldHVybiAiSW5zZXJ0Il9zOwogCiAgICAgICAgIC8vICJK
YXBhbmVzZUhpcmFnYW5hIgogICAgICAgICAvLyAiSmFwYW5lc2VLYXRha2FuYSIKQEAgLTM3MSw3
ICszNzEsNyBAQCBTdHJpbmcga2V5SWRlbnRpZmllckZvckNoYXJDb2RlKHVuaWNoYXIgY2hhckNv
ZGUpCiAKICAgICAgICAgLy8gIkxlZnQiCiAgICAgICAgIGNhc2UgTlNMZWZ0QXJyb3dGdW5jdGlv
bktleToKLSAgICAgICAgICAgIHJldHVybiAiTGVmdCI7CisgICAgICAgICAgICByZXR1cm4gIkxl
ZnQiX3M7CiAKICAgICAgICAgLy8gIk1ldGEiCiAgICAgICAgIC8vICJNZWRpYU5leHRUcmFjayIK
QEAgLTM4MSw1OSArMzgxLDU5IEBAIFN0cmluZyBrZXlJZGVudGlmaWVyRm9yQ2hhckNvZGUodW5p
Y2hhciBjaGFyQ29kZSkKIAogICAgICAgICAvLyAiTW9kZUNoYW5nZSIKICAgICAgICAgY2FzZSBO
U01vZGVTd2l0Y2hGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiTW9kZUNoYW5nZSI7
CisgICAgICAgICAgICByZXR1cm4gIk1vZGVDaGFuZ2UiX3M7CiAKICAgICAgICAgLy8gIk5vbmNv
bnZlcnQiCiAgICAgICAgIC8vICJOdW1Mb2NrIgogCiAgICAgICAgIC8vICJQYWdlRG93biIKICAg
ICAgICAgY2FzZSBOU1BhZ2VEb3duRnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIlBh
Z2VEb3duIjsKKyAgICAgICAgICAgIHJldHVybiAiUGFnZURvd24iX3M7CiAgICAgICAgIC8vICJQ
YWdlVXAiCiAgICAgICAgIGNhc2UgTlNQYWdlVXBGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJl
dHVybiAiUGFnZVVwIjsKKyAgICAgICAgICAgIHJldHVybiAiUGFnZVVwIl9zOwogCiAgICAgICAg
IC8vICJQYXN0ZSIKIAogICAgICAgICAvLyAiUGF1c2UiCiAgICAgICAgIGNhc2UgTlNQYXVzZUZ1
bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJQYXVzZSI7CisgICAgICAgICAgICByZXR1
cm4gIlBhdXNlIl9zOwogCiAgICAgICAgIC8vICJQbGF5IgogICAgICAgICAvLyAiUHJldmlvdXND
YW5kaWRhdGUiCiAKICAgICAgICAgLy8gIlByaW50U2NyZWVuIgogICAgICAgICBjYXNlIE5TUHJp
bnRTY3JlZW5GdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiUHJpbnRTY3JlZW4iOwor
ICAgICAgICAgICAgcmV0dXJuICJQcmludFNjcmVlbiJfczsKIAogICAgICAgICAvLyAiUHJvY2Vz
cyIKICAgICAgICAgLy8gIlByb3BzIgogCiAgICAgICAgIC8vICJSaWdodCIKICAgICAgICAgY2Fz
ZSBOU1JpZ2h0QXJyb3dGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiUmlnaHQiOwor
ICAgICAgICAgICAgcmV0dXJuICJSaWdodCJfczsKIAogICAgICAgICAvLyAiUm9tYW5DaGFyYWN0
ZXJzIgogCiAgICAgICAgIC8vICJTY3JvbGwiCiAgICAgICAgIGNhc2UgTlNTY3JvbGxMb2NrRnVu
Y3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIlNjcm9sbCI7CisgICAgICAgICAgICByZXR1
cm4gIlNjcm9sbCJfczsKICAgICAgICAgLy8gIlNlbGVjdCIKICAgICAgICAgY2FzZSBOU1NlbGVj
dEZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJTZWxlY3QiOworICAgICAgICAgICAg
cmV0dXJuICJTZWxlY3QiX3M7CiAKICAgICAgICAgLy8gIlNlbGVjdE1lZGlhIgogICAgICAgICAv
LyAiU2hpZnQiCiAKICAgICAgICAgLy8gIlN0b3AiCiAgICAgICAgIGNhc2UgTlNTdG9wRnVuY3Rp
b25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIlN0b3AiOworICAgICAgICAgICAgcmV0dXJuICJT
dG9wIl9zOwogICAgICAgICAvLyAiVXAiCiAgICAgICAgIGNhc2UgTlNVcEFycm93RnVuY3Rpb25L
ZXk6Ci0gICAgICAgICAgICByZXR1cm4gIlVwIjsKKyAgICAgICAgICAgIHJldHVybiAiVXAiX3M7
CiAgICAgICAgIC8vICJVbmRvIgogICAgICAgICBjYXNlIE5TVW5kb0Z1bmN0aW9uS2V5OgotICAg
ICAgICAgICAgcmV0dXJuICJVbmRvIjsKKyAgICAgICAgICAgIHJldHVybiAiVW5kbyJfczsKIAog
ICAgICAgICAvLyAiVm9sdW1lRG93biIKICAgICAgICAgLy8gIlZvbHVtZU11dGUiCkBAIC00NDMs
MzggKzQ0MywzOCBAQCBTdHJpbmcga2V5SWRlbnRpZmllckZvckNoYXJDb2RlKHVuaWNoYXIgY2hh
ckNvZGUpCiAKICAgICAgICAgLy8gTW9yZSBmdW5jdGlvbiBrZXlzLCBub3QgaW4gdGhlIGtleSBp
ZGVudGlmaWVyIHNwZWNpZmljYXRpb24uCiAgICAgICAgIGNhc2UgTlNGMjVGdW5jdGlvbktleToK
LSAgICAgICAgICAgIHJldHVybiAiRjI1IjsKKyAgICAgICAgICAgIHJldHVybiAiRjI1Il9zOwog
ICAgICAgICBjYXNlIE5TRjI2RnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkYyNiI7
CisgICAgICAgICAgICByZXR1cm4gIkYyNiJfczsKICAgICAgICAgY2FzZSBOU0YyN0Z1bmN0aW9u
S2V5OgotICAgICAgICAgICAgcmV0dXJuICJGMjciOworICAgICAgICAgICAgcmV0dXJuICJGMjci
X3M7CiAgICAgICAgIGNhc2UgTlNGMjhGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAi
RjI4IjsKKyAgICAgICAgICAgIHJldHVybiAiRjI4Il9zOwogICAgICAgICBjYXNlIE5TRjI5RnVu
Y3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkYyOSI7CisgICAgICAgICAgICByZXR1cm4g
IkYyOSJfczsKICAgICAgICAgY2FzZSBOU0YzMEZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0
dXJuICJGMzAiOworICAgICAgICAgICAgcmV0dXJuICJGMzAiX3M7CiAgICAgICAgIGNhc2UgTlNG
MzFGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiRjMxIjsKKyAgICAgICAgICAgIHJl
dHVybiAiRjMxIl9zOwogICAgICAgICBjYXNlIE5TRjMyRnVuY3Rpb25LZXk6Ci0gICAgICAgICAg
ICByZXR1cm4gIkYzMiI7CisgICAgICAgICAgICByZXR1cm4gIkYzMiJfczsKICAgICAgICAgY2Fz
ZSBOU0YzM0Z1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJGMzMiOworICAgICAgICAg
ICAgcmV0dXJuICJGMzMiX3M7CiAgICAgICAgIGNhc2UgTlNGMzRGdW5jdGlvbktleToKLSAgICAg
ICAgICAgIHJldHVybiAiRjM0IjsKKyAgICAgICAgICAgIHJldHVybiAiRjM0Il9zOwogICAgICAg
ICBjYXNlIE5TRjM1RnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkYzNSI7CisgICAg
ICAgICAgICByZXR1cm4gIkYzNSJfczsKIAogICAgICAgICAvLyBUdXJuIDB4N0YgaW50byAweDA4
LCBiZWNhdXNlIGJhY2tzcGFjZSBuZWVkcyB0byBhbHdheXMgYmUgMHgwOC4KICAgICAgICAgY2Fz
ZSAweDdGOgotICAgICAgICAgICAgcmV0dXJuICJVKzAwMDgiOworICAgICAgICAgICAgcmV0dXJu
ICJVKzAwMDgiX3M7CiAgICAgICAgIC8vIFN0YW5kYXJkIHNheXMgdGhhdCBERUwgYmVjb21lcyBV
KzAwN0YuCiAgICAgICAgIGNhc2UgTlNEZWxldGVGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJl
dHVybiAiVSswMDdGIjsKKyAgICAgICAgICAgIHJldHVybiAiVSswMDdGIl9zOwogCiAgICAgICAg
IC8vIEFsd2F5cyB1c2UgMHgwOSBmb3IgdGFiIGluc3RlYWQgb2YgQXBwS2l0J3MgYmFja3RhYiBj
aGFyYWN0ZXIuCiAgICAgICAgIGNhc2UgTlNCYWNrVGFiQ2hhcmFjdGVyOgotICAgICAgICAgICAg
cmV0dXJuICJVKzAwMDkiOworICAgICAgICAgICAgcmV0dXJuICJVKzAwMDkiX3M7CiAKICAgICAg
ICAgY2FzZSBOU0JlZ2luRnVuY3Rpb25LZXk6CiAgICAgICAgIGNhc2UgTlNCcmVha0Z1bmN0aW9u
S2V5OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvUGFzdGVib2Fy
ZENvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvUGFzdGVib2FyZENvY29h
Lm1tCmluZGV4IDA2OTYxZmJhNDhhZDkxYjQyM2JjYTk4NWI2YzJlNWM2MjEwMWZjMmYuLjU5ODQy
ZjEyNjljNWI1ZWRmMDk1YmQ5Y2I4ZWUzMzI2ZDY4N2FlMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Bhc3RlYm9hcmRDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jb2NvYS9QYXN0ZWJvYXJkQ29jb2EubW0KQEAgLTEwNCwyNSArMTA0LDI1
IEBAIHN0YXRpYyBjb25zdCBjaGFyKiBpbWFnZVR5cGVUb01JTUVUeXBlKEltYWdlVHlwZSB0eXBl
KQogICAgIH0KIH0KIAotc3RhdGljIGNvbnN0IGNoYXIqIGltYWdlVHlwZVRvRmFrZUZpbGVuYW1l
KEltYWdlVHlwZSB0eXBlKQorc3RhdGljIEFTQ0lJTGl0ZXJhbCBpbWFnZVR5cGVUb0Zha2VGaWxl
bmFtZShJbWFnZVR5cGUgdHlwZSkKIHsKICAgICBzd2l0Y2ggKHR5cGUpIHsKICAgICBjYXNlIElt
YWdlVHlwZTo6SW52YWxpZDoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAg
IHJldHVybiBudWxscHRyOworICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsOjpudWxsKCk7CiAg
ICAgY2FzZSBJbWFnZVR5cGU6OlRJRkY6CiAjaWYgUExBVEZPUk0oTUFDKQotICAgICAgICByZXR1
cm4gImltYWdlLnBuZyI7IC8vIEZvciBXZWIgY29tcGF0aWJpbGl0eSwgd2UgcHJldGVuZCB0byBo
YXZlIFBORyBpbnN0ZWFkLgorICAgICAgICByZXR1cm4gImltYWdlLnBuZyJfczsgLy8gRm9yIFdl
YiBjb21wYXRpYmlsaXR5LCB3ZSBwcmV0ZW5kIHRvIGhhdmUgUE5HIGluc3RlYWQuCiAjZWxzZQog
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Cisg
ICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWw6Om51bGwoKTsKICNlbmRpZgogICAgIGNhc2UgSW1h
Z2VUeXBlOjpQTkc6Ci0gICAgICAgIHJldHVybiAiaW1hZ2UucG5nIjsKKyAgICAgICAgcmV0dXJu
ICJpbWFnZS5wbmciX3M7CiAgICAgY2FzZSBJbWFnZVR5cGU6OkpQRUc6Ci0gICAgICAgIHJldHVy
biAiaW1hZ2UuanBlZyI7CisgICAgICAgIHJldHVybiAiaW1hZ2UuanBlZyJfczsKICAgICBjYXNl
IEltYWdlVHlwZTo6R0lGOgotICAgICAgICByZXR1cm4gImltYWdlLmdpZiI7CisgICAgICAgIHJl
dHVybiAiaW1hZ2UuZ2lmIl9zOwogICAgIH0KIH0KIApAQCAtMjM0LDcgKzIzNCw3IEBAIHZvaWQg
UGFzdGVib2FyZDo6cmVhZChQYXN0ZWJvYXJkRmlsZVJlYWRlciYgcmVhZGVyLCBzdGQ6Om9wdGlv
bmFsPHNpemVfdD4gaXRlbUluCiAgICAgICAgIGZvciAoYXV0byBjb2NvYVR5cGUgOiBpbmZvLnBs
YXRmb3JtVHlwZXNCeUZpZGVsaXR5KSB7CiAgICAgICAgICAgICBhdXRvIGltYWdlVHlwZSA9IGNv
Y29hVHlwZVRvSW1hZ2VUeXBlKGNvY29hVHlwZSk7CiAgICAgICAgICAgICBhdXRvKiBtaW1lVHlw
ZSA9IGltYWdlVHlwZVRvTUlNRVR5cGUoaW1hZ2VUeXBlKTsKLSAgICAgICAgICAgIGlmICghbWlt
ZVR5cGUgfHwgIXJlYWRlci5zaG91bGRSZWFkQnVmZmVyKG1pbWVUeXBlKSkKKyAgICAgICAgICAg
IGlmICghbWltZVR5cGUgfHwgIXJlYWRlci5zaG91bGRSZWFkQnVmZmVyKFN0cmluZyB7IG1pbWVU
eXBlIH0pKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgYXV0byBidWZm
ZXIgPSByZWFkQnVmZmVyKGl0ZW1JbmRleCwgY29jb2FUeXBlKTsKICNpZiBQTEFURk9STShNQUMp
CkBAIC0yNDIsNyArMjQyLDcgQEAgdm9pZCBQYXN0ZWJvYXJkOjpyZWFkKFBhc3RlYm9hcmRGaWxl
UmVhZGVyJiByZWFkZXIsIHN0ZDo6b3B0aW9uYWw8c2l6ZV90PiBpdGVtSW4KICAgICAgICAgICAg
ICAgICBidWZmZXIgPSBjb252ZXJ0VElGRlRvUE5HKGJ1ZmZlci5yZWxlYXNlTm9uTnVsbCgpKTsK
ICNlbmRpZgogICAgICAgICAgICAgaWYgKGJ1ZmZlcikgewotICAgICAgICAgICAgICAgIHJlYWRl
ci5yZWFkQnVmZmVyKGltYWdlVHlwZVRvRmFrZUZpbGVuYW1lKGltYWdlVHlwZSksIG1pbWVUeXBl
LCBidWZmZXIucmVsZWFzZU5vbk51bGwoKSk7CisgICAgICAgICAgICAgICAgcmVhZGVyLnJlYWRC
dWZmZXIoaW1hZ2VUeXBlVG9GYWtlRmlsZW5hbWUoaW1hZ2VUeXBlKSwgU3RyaW5nIHsgbWltZVR5
cGUgfSwgYnVmZmVyLnJlbGVhc2VOb25OdWxsKCkpOwogICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICAgICAgfQogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jb2NvYS9QYXN0ZWJvYXJkQ3VzdG9tRGF0YUNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY29jb2EvUGFzdGVib2FyZEN1c3RvbURhdGFDb2NvYS5tbQppbmRleCAyNjIxMjg0
NGYyMTA0YTc3N2NmNjU1NmQ3NWE2ZTVjYWVjOTczZGU4Li4zZGU1MGEwZTkyYzI5MDRjMTllYjZk
ZWJkYTcxNjgyZWZiNmQ2NzUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
b2NvYS9QYXN0ZWJvYXJkQ3VzdG9tRGF0YUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2NvY29hL1Bhc3RlYm9hcmRDdXN0b21EYXRhQ29jb2EubW0KQEAgLTMwLDkgKzMwLDkg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jb25zdCBjaGFyKiBQYXN0ZWJvYXJkQ3VzdG9t
RGF0YTo6Y29jb2FUeXBlKCkKK0FTQ0lJTGl0ZXJhbCBQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29j
b2FUeXBlKCkKIHsKLSAgICByZXR1cm4gImNvbS5hcHBsZS5XZWJLaXQuY3VzdG9tLXBhc3RlYm9h
cmQtZGF0YSI7CisgICAgcmV0dXJuICJjb20uYXBwbGUuV2ViS2l0LmN1c3RvbS1wYXN0ZWJvYXJk
LWRhdGEiX3M7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvdXJDQy5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvRm91ckNDLmgKaW5kZXggYjM3ZDA1MGU5YzBjMzY3NzA3ZGFlMGI2YWNj
YjFiYzM3ZjhlYWMxMy4uNjZmYjNkZTA3MTE1MTMwNjc4OGRjMTI2YzIzZjRiYzg2MTI1ODM2NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm91ckNDLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm91ckNDLmgKQEAgLTg1LDcgKzg1
LDcgQEAgbmFtZXNwYWNlIFdURiB7CiB0ZW1wbGF0ZTx0eXBlbmFtZT4gc3RydWN0IExvZ0FyZ3Vt
ZW50OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBMb2dBcmd1bWVudDxXZWJDb3JlOjpGb3VyQ0M+IHsK
LSAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGNvbnN0IFdlYkNvcmU6OkZvdXJDQyYgY29kZSkg
eyByZXR1cm4gY29kZS5zdHJpbmcoKS5kYXRhKCk7IH0KKyAgICBzdGF0aWMgU3RyaW5nIHRvU3Ry
aW5nKGNvbnN0IFdlYkNvcmU6OkZvdXJDQyYgY29kZSkgeyByZXR1cm4gU3RyaW5nIHsgY29kZS5z
dHJpbmcoKS5kYXRhKCkgfTsgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRH
TEFOR0xFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBo
aWNzQ29udGV4dEdMQU5HTEUuY3BwCmluZGV4IGNjMjljZmI0NjczYzY2MjExZGUxYTQxZWUyYmY2
YTJlOGJhMTFmZDUuLmUyYzk2MTVkZDRhZjhlNTEyN2E5MTRmMTA3ODk0MjZiZjVlYzBkZDkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNz
Q29udGV4dEdMQU5HTEUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2FuZ2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEUuY3BwCkBAIC01MTAsOCArNTEwLDkgQEAgdm9p
ZCBHcmFwaGljc0NvbnRleHRHTEFOR0xFOjp2YWxpZGF0ZURlcHRoU3RlbmNpbChjb25zdCBjaGFy
KiBwYWNrZWREZXB0aFN0ZW5jaWwKICAgICAvLyBGSVhNRTogU2luY2UgdGhlIGNvbnN0cnVjdG9y
cyBvZiB2YXJpb3VzIHBsYXRmb3JtcyBhcmUgbm90IHNoYXJlZCwgd2UgaW5pdGlhbGl6ZSB0aGlz
IGhlcmUuCiAgICAgLy8gVXBvbiBjb25zdHJ1Y3RpbmcgdGhlIGNvbnRleHQsIGFsd2F5cyBpbml0
aWFsaXplIHRoZSBleHRlbnNpb25zIHRoYXQgdGhlIFdlYkdMUmVuZGVyaW5nQ29udGV4dCogd2ls
bAogICAgIC8vIHVzZSB0byB0dXJuIG9uIGZlYXR1cmUgZmxhZ3MuCi0gICAgaWYgKHN1cHBvcnRz
RXh0ZW5zaW9uKHBhY2tlZERlcHRoU3RlbmNpbEV4dGVuc2lvbikpIHsKLSAgICAgICAgZW5zdXJl
RXh0ZW5zaW9uRW5hYmxlZChwYWNrZWREZXB0aFN0ZW5jaWxFeHRlbnNpb24pOworICAgIFN0cmlu
ZyBwYWNrZWREZXB0aFN0ZW5jaWxFeHRlbnNpb25TdHJpbmcgeyBwYWNrZWREZXB0aFN0ZW5jaWxF
eHRlbnNpb24gfTsKKyAgICBpZiAoc3VwcG9ydHNFeHRlbnNpb24ocGFja2VkRGVwdGhTdGVuY2ls
RXh0ZW5zaW9uU3RyaW5nKSkgeworICAgICAgICBlbnN1cmVFeHRlbnNpb25FbmFibGVkKHBhY2tl
ZERlcHRoU3RlbmNpbEV4dGVuc2lvblN0cmluZyk7CiAgICAgICAgIG1faW50ZXJuYWxEZXB0aFN0
ZW5jaWxGb3JtYXQgPSBHTF9ERVBUSDI0X1NURU5DSUw4X09FUzsKICAgICB9IGVsc2UKICAgICAg
ICAgbV9pbnRlcm5hbERlcHRoU3RlbmNpbEZvcm1hdCA9IEdMX0RFUFRIX0NPTVBPTkVOVDE2OwpA
QCAtNTI4LDE3ICs1MjksMTcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHRHTEFOR0xFOjp2YWxpZGF0
ZURlcHRoU3RlbmNpbChjb25zdCBjaGFyKiBwYWNrZWREZXB0aFN0ZW5jaWwKIAogICAgIGlmIChh
dHRycy5hbnRpYWxpYXMpIHsKICAgICAgICAgLy8gRklYTUU6IG11c3QgYWRqdXN0IHRoaXMgd2hl
biB1cGdyYWRpbmcgdG8gV2ViR0wgMi4wIC8gT3BlbkdMIEVTIDMuMCBzdXBwb3J0LgotICAgICAg
ICBpZiAoIXN1cHBvcnRzRXh0ZW5zaW9uKCJHTF9BTkdMRV9mcmFtZWJ1ZmZlcl9tdWx0aXNhbXBs
ZSIpIHx8ICFzdXBwb3J0c0V4dGVuc2lvbigiR0xfQU5HTEVfZnJhbWVidWZmZXJfYmxpdCIpIHx8
ICFzdXBwb3J0c0V4dGVuc2lvbigiR0xfT0VTX3JnYjhfcmdiYTgiKSkgeworICAgICAgICBpZiAo
IXN1cHBvcnRzRXh0ZW5zaW9uKCJHTF9BTkdMRV9mcmFtZWJ1ZmZlcl9tdWx0aXNhbXBsZSJfcykg
fHwgIXN1cHBvcnRzRXh0ZW5zaW9uKCJHTF9BTkdMRV9mcmFtZWJ1ZmZlcl9ibGl0Il9zKSB8fCAh
c3VwcG9ydHNFeHRlbnNpb24oIkdMX09FU19yZ2I4X3JnYmE4Il9zKSkgewogICAgICAgICAgICAg
YXR0cnMuYW50aWFsaWFzID0gZmFsc2U7CiAgICAgICAgICAgICBzZXRDb250ZXh0QXR0cmlidXRl
cyhhdHRycyk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBlbnN1cmVFeHRlbnNpb25F
bmFibGVkKCJHTF9BTkdMRV9mcmFtZWJ1ZmZlcl9tdWx0aXNhbXBsZSIpOwotICAgICAgICAgICAg
ZW5zdXJlRXh0ZW5zaW9uRW5hYmxlZCgiR0xfQU5HTEVfZnJhbWVidWZmZXJfYmxpdCIpOwotICAg
ICAgICAgICAgZW5zdXJlRXh0ZW5zaW9uRW5hYmxlZCgiR0xfT0VTX3JnYjhfcmdiYTgiKTsKKyAg
ICAgICAgICAgIGVuc3VyZUV4dGVuc2lvbkVuYWJsZWQoIkdMX0FOR0xFX2ZyYW1lYnVmZmVyX211
bHRpc2FtcGxlIl9zKTsKKyAgICAgICAgICAgIGVuc3VyZUV4dGVuc2lvbkVuYWJsZWQoIkdMX0FO
R0xFX2ZyYW1lYnVmZmVyX2JsaXQiX3MpOworICAgICAgICAgICAgZW5zdXJlRXh0ZW5zaW9uRW5h
YmxlZCgiR0xfT0VTX3JnYjhfcmdiYTgiX3MpOwogICAgICAgICB9CiAgICAgfSBlbHNlIGlmIChh
dHRycy5wcmVzZXJ2ZURyYXdpbmdCdWZmZXIpIHsKICAgICAgICAgLy8gTmVlZGVkIGZvciBwcmVz
ZXJ2ZURyYXdpbmdCdWZmZXI6dHJ1ZSBzdXBwb3J0IHdpdGhvdXQgYW50aWFsaWFzaW5nLgotICAg
ICAgICBlbnN1cmVFeHRlbnNpb25FbmFibGVkKCJHTF9BTkdMRV9mcmFtZWJ1ZmZlcl9ibGl0Iik7
CisgICAgICAgIGVuc3VyZUV4dGVuc2lvbkVuYWJsZWQoIkdMX0FOR0xFX2ZyYW1lYnVmZmVyX2Js
aXQiX3MpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL0NETVByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQ0RNUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQy5tbQppbmRleCAyZGFmOGVhYWM5MDhjZWJiYjk0ZGEzMzA2NDRhNWU3
NzE3YjM2NzM5Li5hZWEyZThhYjk5MDE5NTgyZTRkZDQ5MzhlMjAzN2YwMjA2NWQyNDI4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQ0RN
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQ0RNUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQpA
QCAtNDYsNyArNDYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGF1dG8gQ0RNUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQzo6cGFyc2VLZXlTeXN0ZW0oY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0p
IC0+IHN0ZDo6b3B0aW9uYWw8S2V5U3lzdGVtUGFyYW1ldGVycz4KIHsKLSAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8UmVndWxhckV4cHJlc3Npb24+IGtleVN5c3RlbVJFKCJeY29tXFwuYXBwbGVc
XC5mcHNcXC5bMjNdX1xcZCsoPzosXFxkKykqJCIsIEpTQzo6WWFycjo6VGV4dENhc2VJbnNlbnNp
dGl2ZSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJlZ3VsYXJFeHByZXNzaW9uPiBrZXlT
eXN0ZW1SRSgiXmNvbVxcLmFwcGxlXFwuZnBzXFwuWzIzXV9cXGQrKD86LFxcZCspKiQiX3MsIEpT
Qzo6WWFycjo6VGV4dENhc2VJbnNlbnNpdGl2ZSk7CiAKICAgICBpZiAoa2V5U3lzdGVtUkUuZ2V0
KCkubWF0Y2goa2V5U3lzdGVtKSA8IDApCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgK
aW5kZXggYTgxYjhlMjI2OWE2OGI0MzZhNTMyNjA1NWJlMGZhZjEwNTcwMmMyMS4uMDEzMmEyZjg0
NzhhNmRlYTk3ZThlYjlkN2NjNzZjMGFjNWVkZjY0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaApAQCAtMzExLDcgKzMxMSw3IEBA
IHByb3RlY3RlZDoKICAgICBNZWRpYVBsYXllciogcGxheWVyKCkgeyByZXR1cm4gbV9wbGF5ZXI7
IH0KICAgICBjb25zdCBNZWRpYVBsYXllciogcGxheWVyKCkgY29uc3QgeyByZXR1cm4gbV9wbGF5
ZXI7IH0KIAotICAgIFN0cmluZyBlbmdpbmVEZXNjcmlwdGlvbigpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuICJBVkZvdW5kYXRpb24iOyB9CisgICAgU3RyaW5nIGVuZ2luZURlc2NyaXB0aW9uKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIkFWRm91bmRhdGlvbiJfczsgfQogICAgIGxvbmcgcGxh
dGZvcm1FcnJvckNvZGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBhc3NldEVycm9yQ29kZSgp
OyB9CiAKICAgICB2b2lkIHRyYWNrTW9kZUNoYW5nZWQoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETUlu
c3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWlu
Z0FWRk9iakMubW0KaW5kZXggMjFhMjc5OTJkMjI3MDk4OTlkMGQzZWI2MGI1OGRmY2UyY2FkMGMw
YS4uMjZkY2JmYzU3ZDQ5YWVhNTdiZjM2M2UwZTc3NmRhZmVmYzk0ZTA2ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNSW5z
dGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVh
bWluZ0FWRk9iakMubW0KQEAgLTM5OCw3ICszOTgsNyBAQCB2b2lkIENETUluc3RhbmNlRmFpclBs
YXlTdHJlYW1pbmdBVkZPYmpDOjpzZXRTdG9yYWdlRGlyZWN0b3J5KGNvbnN0IFN0cmluZyYgc3Rv
cgogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgYXV0byBzdG9yYWdlUGF0aCA9IEZpbGVT
eXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChzdG9yYWdlRGlyZWN0b3J5LCAiU2VjdXJl
U3RvcC5wbGlzdCIpOworICAgIGF1dG8gc3RvcmFnZVBhdGggPSBGaWxlU3lzdGVtOjpwYXRoQnlB
cHBlbmRpbmdDb21wb25lbnQoc3RvcmFnZURpcmVjdG9yeSwgIlNlY3VyZVN0b3AucGxpc3QiX3Mp
OwogCiAgICAgYXV0byBmaWxlVHlwZSA9IEZpbGVTeXN0ZW06OmZpbGVUeXBlRm9sbG93aW5nU3lt
bGlua3Moc3RvcmFnZURpcmVjdG9yeSk7CiAgICAgaWYgKCFmaWxlVHlwZSkgewpAQCAtODkxLDcg
Kzg5MSw3IEBAIHZvaWQgQ0RNSW5zdGFuY2VTZXNzaW9uRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpD
Ojp1cGRhdGVMaWNlbnNlKGNvbnN0IFN0cmluZyYsIExpCiAgICAgICAgICAgICBpZiAoIW9iamVj
dCkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAgICAgICAgIGF1dG8ga2V5
SURTdHJpbmcgPSBvYmplY3QtPmdldFN0cmluZygia2V5SUQiKTsKKyAgICAgICAgICAgIGF1dG8g
a2V5SURTdHJpbmcgPSBvYmplY3QtPmdldFN0cmluZygia2V5SUQiX3MpOwogICAgICAgICAgICAg
aWYgKCFrZXlJRFN0cmluZykKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKQEAgLTkx
MSw4ICs5MTEsOCBAQCB2b2lkIENETUluc3RhbmNlU2Vzc2lvbkZhaXJQbGF5U3RyZWFtaW5nQVZG
T2JqQzo6dXBkYXRlTGljZW5zZShjb25zdCBTdHJpbmcmLCBMaQogCiAgICAgICAgICAgICBhdXRv
JiByZXF1ZXN0ID0gbV9jdXJyZW50UmVxdWVzdC52YWx1ZSgpLnJlcXVlc3RzW2ZvdW5kSW5kZXhd
OwogCi0gICAgICAgICAgICBhdXRvIHBheWxvYWRGaW5kUmVzdWx0cyA9IG9iamVjdC0+ZmluZCgi
cGF5bG9hZCIpOwotICAgICAgICAgICAgYXV0byBlcnJvckZpbmRSZXN1bHRzID0gb2JqZWN0LT5m
aW5kKCJlcnJvciIpOworICAgICAgICAgICAgYXV0byBwYXlsb2FkRmluZFJlc3VsdHMgPSBvYmpl
Y3QtPmZpbmQoInBheWxvYWQiX3MpOworICAgICAgICAgICAgYXV0byBlcnJvckZpbmRSZXN1bHRz
ID0gb2JqZWN0LT5maW5kKCJlcnJvciJfcyk7CiAgICAgICAgICAgICBib29sIGhhc1BheWxvYWQg
PSBwYXlsb2FkRmluZFJlc3VsdHMgIT0gb2JqZWN0LT5lbmQoKTsKICAgICAgICAgICAgIGJvb2wg
aGFzRXJyb3IgPSBlcnJvckZpbmRSZXN1bHRzICE9IG9iamVjdC0+ZW5kKCk7CiAKQEAgLTEyNTMs
OCArMTI1Myw4IEBAIHZvaWQgQ0RNSW5zdGFuY2VTZXNzaW9uRmFpclBsYXlTdHJlYW1pbmdBVkZP
YmpDOjpkaWRQcm92aWRlUmVxdWVzdHMoVmVjdG9yPFJldGFpCiAgICAgICAgICAgICBhdXRvIGVu
dHJ5ID0gSlNPTjo6T2JqZWN0OjpjcmVhdGUoKTsKICAgICAgICAgICAgIGF1dG8mIGtleUlEID0g
cmVxdWVzdERhdGEuZmlyc3Q7CiAgICAgICAgICAgICBhdXRvJiBwYXlsb2FkID0gcmVxdWVzdERh
dGEuc2Vjb25kOwotICAgICAgICAgICAgZW50cnktPnNldFN0cmluZygia2V5SUQiLCBiYXNlNjRF
bmNvZGVUb1N0cmluZyhrZXlJRC0+bWFrZUNvbnRpZ3VvdXMoKS0+ZGF0YSgpLCBrZXlJRC0+c2l6
ZSgpKSk7Ci0gICAgICAgICAgICBlbnRyeS0+c2V0U3RyaW5nKCJwYXlsb2FkIiwgYmFzZTY0RW5j
b2RlVG9TdHJpbmcocGF5bG9hZC5nZXQoKS5ieXRlcywgcGF5bG9hZC5nZXQoKS5sZW5ndGgpKTsK
KyAgICAgICAgICAgIGVudHJ5LT5zZXRTdHJpbmcoImtleUlEIl9zLCBiYXNlNjRFbmNvZGVUb1N0
cmluZyhrZXlJRC0+bWFrZUNvbnRpZ3VvdXMoKS0+ZGF0YSgpLCBrZXlJRC0+c2l6ZSgpKSk7Cisg
ICAgICAgICAgICBlbnRyeS0+c2V0U3RyaW5nKCJwYXlsb2FkIl9zLCBiYXNlNjRFbmNvZGVUb1N0
cmluZyhwYXlsb2FkLmdldCgpLmJ5dGVzLCBwYXlsb2FkLmdldCgpLmxlbmd0aCkpOwogICAgICAg
ICAgICAgcmVxdWVzdEpTT04tPnB1c2hPYmplY3QoV1RGTW92ZShlbnRyeSkpOwogICAgICAgICB9
CiAgICAgICAgIGF1dG8gcmVxdWVzdEJ1ZmZlciA9IHV0ZjhCdWZmZXIocmVxdWVzdEpTT04tPnRv
SlNPTlN0cmluZygpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMubW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNz
aW9uTWVkaWFTb3VyY2VBVkZPYmpDLm1tCmluZGV4IDI4NmE1YTQ4ODdlOGQ5NTYwMGU3YzhiYWMz
YWZiZTY2NzYxNjA1NTQuLmEwYzZhM2U1MjZjYWNhNGFkMWM3ODhlM2MyMjJlOGE0ZTUxYzI0ZmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL0NETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbk1lZGlhU291
cmNlQVZGT2JqQy5tbQpAQCAtMTEzLDcgKzExMyw3IEBAIFN0cmluZyBDRE1TZXNzaW9uTWVkaWFT
b3VyY2VBVkZPYmpDOjpzdG9yYWdlUGF0aCgpIGNvbnN0CiAgICAgaWYgKHN0b3JhZ2VEaXJlY3Rv
cnkuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKIAotICAgIHJldHVy
biBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoc3RvcmFnZURpcmVjdG9yeSwg
IlNlY3VyZVN0b3AucGxpc3QiKTsKKyAgICByZXR1cm4gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5k
aW5nQ29tcG9uZW50KHN0b3JhZ2VEaXJlY3RvcnksICJTZWN1cmVTdG9wLnBsaXN0Il9zKTsKIH0K
IAogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCmlu
ZGV4IDA5OTdkNzhiNjZiNTRlMTU5NjVmNmI4ZjY1ZmFkY2MzY2ZhMzkzZjIuLjllZDAyMzYzMzYw
OTg3ZGUyMTYzZGIwZGYzMzE5MGU3YzgxMjQ1MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMu
bW0KQEAgLTEwOTYsNyArMTA5Niw3IEBAIEFWU3RyZWFtU2Vzc2lvbiogTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpzdHJlYW1TZXNzaW9uKCkKICAgICAgICAgICAgICAgICBy
ZXR1cm4gbmlsOwogICAgICAgICB9CiAKLSAgICAgICAgU3RyaW5nIHN0b3JhZ2VQYXRoID0gRmls
ZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KHN0b3JhZ2VEaXJlY3RvcnksICJTZWN1
cmVTdG9wLnBsaXN0Iik7CisgICAgICAgIFN0cmluZyBzdG9yYWdlUGF0aCA9IEZpbGVTeXN0ZW06
OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChzdG9yYWdlRGlyZWN0b3J5LCAiU2VjdXJlU3RvcC5w
bGlzdCJfcyk7CiAgICAgICAgIG1fc3RyZWFtU2Vzc2lvbiA9IGFkb3B0TlMoW1BBTDo6YWxsb2NB
VlN0cmVhbVNlc3Npb25JbnN0YW5jZSgpIGluaXRXaXRoU3RvcmFnZURpcmVjdG9yeUF0VVJMOltO
U1VSTCBmaWxlVVJMV2l0aFBhdGg6c3RvcmFnZVBhdGhdXSk7CiAgICAgfQogICAgIHJldHVybiBt
X3N0cmVhbVNlc3Npb24uZ2V0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1Nv
dXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tCmluZGV4IDZiYTZiOWJmMTJhZDNjOWYzODkwN2My
ZmQzNmZlODdhNTUzYjJhNDQuLjBlOGVhNjRmMDgzOGU2MmFkZTVjZjg5NzJjYWQxODlhYzU1ZDM1
NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZh
dGVBVkZPYmpDLm1tCkBAIC02MDAsNyArNjAwLDcgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRl
QVZGT2JqQzo6ZGlkUHJvdmlkZUNvbnRlbnRLZXlSZXF1ZXN0SW5pdGlhbGl6YXRpb25EYXRhRm8K
ICAgICB9CiAKICAgICBtX2tleUlEcyA9IFdURk1vdmUoa2V5SURzLnZhbHVlKCkpOwotICAgIHBs
YXllci0+aW5pdGlhbGl6YXRpb25EYXRhRW5jb3VudGVyZWQoInNpbmYiLCBtX2luaXREYXRhLT50
cnlDcmVhdGVBcnJheUJ1ZmZlcigpKTsKKyAgICBwbGF5ZXItPmluaXRpYWxpemF0aW9uRGF0YUVu
Y291bnRlcmVkKCJzaW5mIl9zLCBtX2luaXREYXRhLT50cnlDcmVhdGVBcnJheUJ1ZmZlcigpKTsK
IAogICAgIG1fd2FpdGluZ0ZvcktleSA9IHRydWU7CiAgICAgcGxheWVyLT53YWl0aW5nRm9yS2V5
Q2hhbmdlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1BsYXRm
b3JtUGFzdGVib2FyZElPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF0Zm9y
bVBhc3RlYm9hcmRJT1MubW0KaW5kZXggZDY0Yjk2ODM0NzM3ODMyZDJlZWQ2ODgyMzYwMTIyNzA2
NTU4NTNmYy4uMmUwNjg1N2VmMjZiOGJmZmY5YWExOTE4MDc4NGZkYWMxYTJiMjc1ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1BsYXRmb3JtUGFzdGVib2FyZElPUy5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxhdGZvcm1QYXN0ZWJvYXJkSU9T
Lm1tCkBAIC0xNTksNyArMTU5LDcgQEAgc3RhdGljIFZlY3RvcjxTdHJpbmc+IHdlYlNhZmVUeXBl
cyhOU0FycmF5PE5TU3RyaW5nICo+ICpwbGF0Zm9ybVR5cGVzLCBQbGF0Zm9ybVAKIHsKICAgICBM
aXN0SGFzaFNldDxTdHJpbmc+IGRvbVBhc3RlYm9hcmRUeXBlczsKICAgICBmb3IgKE5TU3RyaW5n
ICp0eXBlIGluIHBsYXRmb3JtVHlwZXMpIHsKLSAgICAgICAgaWYgKFt0eXBlIGlzRXF1YWxUb1N0
cmluZzpAKFBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKSldKQorICAgICAgICBpZiAo
W3R5cGUgaXNFcXVhbFRvU3RyaW5nOkAoUGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgp
LmNoYXJhY3RlcnMoKSldKQogICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgaWYgKFBh
c3RlYm9hcmQ6OmlzU2FmZVR5cGVGb3JET01Ub1JlYWRBbmRXcml0ZSh0eXBlKSkgewpAQCAtNTAx
LDcgKzUwMSw3IEBAIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAgICAgUGFz
dGVib2FyZEN1c3RvbURhdGEgY3VzdG9tRGF0YTsKICAgICBjdXN0b21EYXRhLnNldE9yaWdpbihj
b250ZW50LmNvbnRlbnRPcmlnaW4pOwotICAgIFtyZXByZXNlbnRhdGlvbnNUb1JlZ2lzdGVyIGFk
ZERhdGE6Y3VzdG9tRGF0YS5jcmVhdGVTaGFyZWRCdWZmZXIoKS0+Y3JlYXRlTlNEYXRhKCkuZ2V0
KCkgZm9yVHlwZTpAKFBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKSldOworICAgIFty
ZXByZXNlbnRhdGlvbnNUb1JlZ2lzdGVyIGFkZERhdGE6Y3VzdG9tRGF0YS5jcmVhdGVTaGFyZWRC
dWZmZXIoKS0+Y3JlYXRlTlNEYXRhKCkuZ2V0KCkgZm9yVHlwZTpAKFBhc3RlYm9hcmRDdXN0b21E
YXRhOjpjb2NvYVR5cGUoKS5jaGFyYWN0ZXJzKCkpXTsKIAogICAgIHJlZ2lzdGVySXRlbVRvUGFz
dGVib2FyZChyZXByZXNlbnRhdGlvbnNUb1JlZ2lzdGVyLmdldCgpLCBtX3Bhc3RlYm9hcmQuZ2V0
KCkpOwogfQpAQCAtNjA4LDcgKzYwOCw3IEBAIFZlY3RvcjxTdHJpbmc+IFBsYXRmb3JtUGFzdGVi
b2FyZDo6dHlwZXNTYWZlRm9yRE9NVG9SZWFkQW5kV3JpdGUoY29uc3QgU3RyaW5nJiBvCiAgICAg
fQogI2VuZGlmIC8vIFBBU1RFQk9BUkRfU1VQUE9SVFNfUFJFU0VOVEFUSU9OX1NUWUxFX0FORF9U
RUFNX0RBVEEKIAotICAgIGlmIChOU0RhdGEgKnNlcmlhbGl6ZWRDdXN0b21EYXRhID0gW21fcGFz
dGVib2FyZCBkYXRhRm9yUGFzdGVib2FyZFR5cGU6QChQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29j
b2FUeXBlKCkpXSkgeworICAgIGlmIChOU0RhdGEgKnNlcmlhbGl6ZWRDdXN0b21EYXRhID0gW21f
cGFzdGVib2FyZCBkYXRhRm9yUGFzdGVib2FyZFR5cGU6QChQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6
Y29jb2FUeXBlKCkuY2hhcmFjdGVycygpKV0pIHsKICAgICAgICAgYXV0byBkYXRhID0gUGFzdGVi
b2FyZEN1c3RvbURhdGE6OmZyb21TaGFyZWRCdWZmZXIoU2hhcmVkQnVmZmVyOjpjcmVhdGUoc2Vy
aWFsaXplZEN1c3RvbURhdGEpLmdldCgpKTsKICAgICAgICAgaWYgKGRhdGEub3JpZ2luKCkgPT0g
b3JpZ2luKSB7CiAgICAgICAgICAgICBmb3IgKGF1dG8mIHR5cGUgOiBkYXRhLm9yZGVyZWRUeXBl
cygpKQpAQCAtNjQ1LDcgKzY0NSw3IEBAIHN0YXRpYyBSZXRhaW5QdHI8V2ViSXRlbVByb3ZpZGVy
UmVnaXN0cmF0aW9uSW5mb0xpc3Q+IGNyZWF0ZUl0ZW1Qcm92aWRlclJlZ2lzdHJhCiAgICAgICAg
ICAgICBOU0RpY3Rpb25hcnkgKnRlYW1EYXRhRGljdGlvbmFyeSA9IEB7IEAob3JpZ2luS2V5Rm9y
VGVhbURhdGEpIDogZGF0YS5vcmlnaW4oKSwgQChjdXN0b21UeXBlc0tleUZvclRlYW1EYXRhKSA6
IGNyZWF0ZU5TQXJyYXkoZGF0YS5vcmRlcmVkVHlwZXMoKSkuZ2V0KCkgfTsKICAgICAgICAgICAg
IGlmIChOU0RhdGEgKnRlYW1EYXRhID0gW05TS2V5ZWRBcmNoaXZlciBhcmNoaXZlZERhdGFXaXRo
Um9vdE9iamVjdDp0ZWFtRGF0YURpY3Rpb25hcnkgcmVxdWlyaW5nU2VjdXJlQ29kaW5nOllFUyBl
cnJvcjpudWxscHRyXSkgewogICAgICAgICAgICAgICAgIFtyZXByZXNlbnRhdGlvbnNUb1JlZ2lz
dGVyIHNldFRlYW1EYXRhOnRlYW1EYXRhXTsKLSAgICAgICAgICAgICAgICBbcmVwcmVzZW50YXRp
b25zVG9SZWdpc3RlciBhZGREYXRhOnNlcmlhbGl6ZWRTaGFyZWRCdWZmZXIuZ2V0KCkgZm9yVHlw
ZTpAKFBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKSldOworICAgICAgICAgICAgICAg
IFtyZXByZXNlbnRhdGlvbnNUb1JlZ2lzdGVyIGFkZERhdGE6c2VyaWFsaXplZFNoYXJlZEJ1ZmZl
ci5nZXQoKSBmb3JUeXBlOkAoUGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpLmNoYXJh
Y3RlcnMoKSldOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZC5t
bQppbmRleCBkMmExZGJjM2E4OWY5MWFlYzJhMzIyMDM4NjRhMGNlZjMxOTIzMmQzLi43NWE3NmY0
Mzk5NGVlNjVlODEzOWM4Nzc2NmMzM2I3OGE0YTNkMjJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pb3MvV2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZC5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZC5tbQpAQCAt
NzYxLDcgKzc2MSw3IEBAIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAKICAg
ICAvLyBGb3IgY29tcGF0aWJpbGl0eSB3aXRoIERhdGFUcmFuc2ZlciBBUElzLCBhZGRpdGlvbmFs
bHkgbG9hZCB3ZWItZXhwb3NlZCB0eXBlcy4gU2luY2UgdGhpcyBpcyB0aGUgb25seSBjaGFuY2Ug
dG8KICAgICAvLyBmYXVsdCBpbiBhbnkgZGF0YSBhdCBhbGwsIHdlIG5lZWQgdG8gbG9hZCB1cCBm
cm9udCBhbnkgaW5mb3JtYXRpb24gdGhhdCB0aGUgcGFnZSBtYXkgYXNrIGZvciBsYXRlciBkb3du
IHRoZSBsaW5lLgotICAgIE5TU3RyaW5nICpjdXN0b21QYXN0ZWJvYXJkRGF0YVVUSSA9IEAoUGFz
dGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpKTsKKyAgICBOU1N0cmluZyAqY3VzdG9tUGFz
dGVib2FyZERhdGFVVEkgPSBAKFBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKS5jaGFy
YWN0ZXJzKCkpOwogICAgIGZvciAoTlNTdHJpbmcgKnJlZ2lzdGVyZWRUeXBlSWRlbnRpZmllciBp
biByZWdpc3RlcmVkVHlwZUlkZW50aWZpZXJzKSB7CiAgICAgICAgIGlmIChbcmVnaXN0ZXJlZFR5
cGVJZGVudGlmaWVyIGlzRXF1YWxUb1N0cmluZzpoaWdoZXN0RmlkZWxpdHlDb250ZW50VHlwZV0K
ICAgICAgICAgICAgIHx8IFtyZWdpc3RlcmVkVHlwZUlkZW50aWZpZXIgaXNFcXVhbFRvU3RyaW5n
OmhpZ2hlc3RGaWRlbGl0eVN1cHBvcnRlZFR5cGVdCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvRGF0YURldGVjdG9ySGlnaGxpZ2h0Lm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL0RhdGFEZXRlY3RvckhpZ2hsaWdodC5tbQppbmRleCAzZjA2OTQwNDYwMjk0
ZGNmZThhODMwMjhkMWZkN2Q0NjZkYTg1Mzk1Li4xNWRiODdiMWQ5OGJhMzgxZWE5NTFiMWYzNGY4
ZTYwMDgyOTgyNWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRGF0
YURldGVjdG9ySGlnaGxpZ2h0Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9E
YXRhRGV0ZWN0b3JIaWdobGlnaHQubW0KQEAgLTE1Myw3ICsxNTMsNyBAQCB2b2lkIERhdGFEZXRl
Y3RvckhpZ2hsaWdodDo6ZmFkZUluKCkKICAgICBbYW5pbWF0aW9uIHNldFRvVmFsdWU6QDFdOwog
CiAgICAgYXV0byBwbGF0Zm9ybUFuaW1hdGlvbiA9IFBsYXRmb3JtQ0FBbmltYXRpb25Db2NvYTo6
Y3JlYXRlKGFuaW1hdGlvbi5nZXQoKSk7Ci0gICAgZG93bmNhc3Q8R3JhcGhpY3NMYXllckNBPihs
YXllcigpKS5wbGF0Zm9ybUNBTGF5ZXIoKS0+YWRkQW5pbWF0aW9uRm9yS2V5KCJGYWRlSGlnaGxp
Z2h0SW4iLCBwbGF0Zm9ybUFuaW1hdGlvbi5nZXQoKSk7CisgICAgZG93bmNhc3Q8R3JhcGhpY3NM
YXllckNBPihsYXllcigpKS5wbGF0Zm9ybUNBTGF5ZXIoKS0+YWRkQW5pbWF0aW9uRm9yS2V5KCJG
YWRlSGlnaGxpZ2h0SW4iX3MsIHBsYXRmb3JtQW5pbWF0aW9uLmdldCgpKTsKIH0KIAogdm9pZCBE
YXRhRGV0ZWN0b3JIaWdobGlnaHQ6OmZhZGVPdXQoKQpAQCAtMTcwLDcgKzE3MCw3IEBAIHZvaWQg
RGF0YURldGVjdG9ySGlnaGxpZ2h0OjpmYWRlT3V0KCkKICAgICB9XTsKIAogICAgIGF1dG8gcGxh
dGZvcm1BbmltYXRpb24gPSBQbGF0Zm9ybUNBQW5pbWF0aW9uQ29jb2E6OmNyZWF0ZShhbmltYXRp
b24uZ2V0KCkpOwotICAgIGRvd25jYXN0PEdyYXBoaWNzTGF5ZXJDQT4obGF5ZXIoKSkucGxhdGZv
cm1DQUxheWVyKCktPmFkZEFuaW1hdGlvbkZvcktleSgiRmFkZUhpZ2hsaWdodE91dCIsIHBsYXRm
b3JtQW5pbWF0aW9uLmdldCgpKTsKKyAgICBkb3duY2FzdDxHcmFwaGljc0xheWVyQ0E+KGxheWVy
KCkpLnBsYXRmb3JtQ0FMYXllcigpLT5hZGRBbmltYXRpb25Gb3JLZXkoIkZhZGVIaWdobGlnaHRP
dXQiX3MsIHBsYXRmb3JtQW5pbWF0aW9uLmdldCgpKTsKICAgICBbQ0FUcmFuc2FjdGlvbiBjb21t
aXRdOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVi
b2FyZE1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1t
CmluZGV4IGEyYzI1MGFhMmJlZjhkZTk2NGJhZjA5MjQwZDVlMGVjNDE1MGVmODQuLmRjMmY1YzUz
YzY1NDFlMTk4YjNhODRlNmM1YTgwNWQxZGRmZTBkOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tCkBAIC01MCwxMiArNTAsMTIgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1jb25zdCBjaGFyKiBjb25zdCBXZWJBcmNoaXZlUGJvYXJkVHlwZSA9
ICJBcHBsZSBXZWIgQXJjaGl2ZSBwYXN0ZWJvYXJkIHR5cGUiOwotY29uc3QgY2hhciogY29uc3Qg
V2ViVVJMTmFtZVBib2FyZFR5cGUgPSAicHVibGljLnVybC1uYW1lIjsKLWNvbnN0IGNoYXIqIGNv
bnN0IFdlYlVSTHNXaXRoVGl0bGVzUGJvYXJkVHlwZSA9ICJXZWJVUkxzV2l0aFRpdGxlc1Bib2Fy
ZFR5cGUiOworY29uc3QgQVNDSUlMaXRlcmFsIFdlYkFyY2hpdmVQYm9hcmRUeXBlID0gIkFwcGxl
IFdlYiBBcmNoaXZlIHBhc3RlYm9hcmQgdHlwZSJfczsKK2NvbnN0IEFTQ0lJTGl0ZXJhbCBXZWJV
UkxOYW1lUGJvYXJkVHlwZSA9ICJwdWJsaWMudXJsLW5hbWUiX3M7Citjb25zdCBBU0NJSUxpdGVy
YWwgV2ViVVJMc1dpdGhUaXRsZXNQYm9hcmRUeXBlID0gIldlYlVSTHNXaXRoVGl0bGVzUGJvYXJk
VHlwZSJfczsKIAotY29uc3QgY2hhciBXZWJTbWFydFBhc3RlUGJvYXJkVHlwZVtdID0gIk5lWFQg
c21hcnQgcGFzdGUgcGFzdGVib2FyZCB0eXBlIjsKLWNvbnN0IGNoYXIgV2ViVVJMUGJvYXJkVHlw
ZVtdID0gInB1YmxpYy51cmwiOworY29uc3QgQVNDSUlMaXRlcmFsIFdlYlNtYXJ0UGFzdGVQYm9h
cmRUeXBlID0gIk5lWFQgc21hcnQgcGFzdGUgcGFzdGVib2FyZCB0eXBlIl9zOworY29uc3QgQVND
SUlMaXRlcmFsIFdlYlVSTFBib2FyZFR5cGUgPSAicHVibGljLnVybCJfczsKIAogc3RhdGljIGNv
bnN0IFZlY3RvcjxTdHJpbmc+IHdyaXRhYmxlVHlwZXNGb3JVUkwoKQogewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLm1tCmlu
ZGV4IDM1ZmM2YWY1OWI2YWZjYjRmOTU1NGMwZjJhODRhMzM0MjgzOTZlNWUuLmI3YjZlMzc0N2Iw
ZmNkOTc4Yzg3NGUwMTgyZjIzNTYzY2U1ZDJkODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMubW0KQEAgLTUwMiw3ICs1
MDIsNyBAQCBTdHJpbmcga2V5SWRlbnRpZmllckZvcktleUV2ZW50KE5TRXZlbnQqIGV2ZW50KQog
ICAgIE5TU3RyaW5nICpzID0gW2V2ZW50IGNoYXJhY3RlcnNJZ25vcmluZ01vZGlmaWVyc107CiAg
ICAgaWYgKFtzIGxlbmd0aF0gIT0gMSkgewogICAgICAgICBMT0coRXZlbnRzLCAicmVjZWl2ZWQg
YW4gdW5leHBlY3RlZCBudW1iZXIgb2YgY2hhcmFjdGVycyBpbiBrZXkgZXZlbnQ6ICV1IiwgW3Mg
bGVuZ3RoXSk7Ci0gICAgICAgIHJldHVybiAiVW5pZGVudGlmaWVkIjsKKyAgICAgICAgcmV0dXJu
ICJVbmlkZW50aWZpZWQiX3M7CiAgICAgfQogICAgIHJldHVybiBrZXlJZGVudGlmaWVyRm9yQ2hh
ckNvZGUoW3MgY2hhcmFjdGVyQXRJbmRleDowXSk7CiB9CkBAIC04MDksMjAgKzgwOSwyMCBAQCBw
dWJsaWM6CiAKICAgICAgICAgLy8gQWx3YXlzIHVzZSAxMyBmb3IgRW50ZXIvUmV0dXJuIC0tIHdl
IGRvbid0IHdhbnQgdG8gdXNlIEFwcEtpdCdzIGRpZmZlcmVudCBjaGFyYWN0ZXIgZm9yIEVudGVy
LgogICAgICAgICBpZiAobV93aW5kb3dzVmlydHVhbEtleUNvZGUgPT0gVktfUkVUVVJOKSB7Ci0g
ICAgICAgICAgICBtX3RleHQgPSAiXHIiOwotICAgICAgICAgICAgbV91bm1vZGlmaWVkVGV4dCA9
ICJcciI7CisgICAgICAgICAgICBtX3RleHQgPSAiXHIiX3M7CisgICAgICAgICAgICBtX3VubW9k
aWZpZWRUZXh0ID0gbV90ZXh0OwogICAgICAgICB9CiAKICAgICAgICAgLy8gQXBwS2l0IHNldHMg
dGV4dCB0byAiXHg3RiIgZm9yIGJhY2tzcGFjZSwgYnV0IHRoZSBjb3JyZWN0IEtleWJvYXJkRXZl
bnQgY2hhcmFjdGVyIGNvZGUgaXMgOC4KICAgICAgICAgaWYgKG1fd2luZG93c1ZpcnR1YWxLZXlD
b2RlID09IFZLX0JBQ0spIHsKLSAgICAgICAgICAgIG1fdGV4dCA9ICJceDgiOwotICAgICAgICAg
ICAgbV91bm1vZGlmaWVkVGV4dCA9ICJceDgiOworICAgICAgICAgICAgbV90ZXh0ID0gIlx4OCJf
czsKKyAgICAgICAgICAgIG1fdW5tb2RpZmllZFRleHQgPSBtX3RleHQ7CiAgICAgICAgIH0KIAog
ICAgICAgICAvLyBBbHdheXMgdXNlIDkgZm9yIFRhYiAtLSB3ZSBkb24ndCB3YW50IHRvIHVzZSBB
cHBLaXQncyBkaWZmZXJlbnQgY2hhcmFjdGVyIGZvciBzaGlmdC10YWIuCiAgICAgICAgIGlmICht
X3dpbmRvd3NWaXJ0dWFsS2V5Q29kZSA9PSBWS19UQUIpIHsKLSAgICAgICAgICAgIG1fdGV4dCA9
ICJceDkiOwotICAgICAgICAgICAgbV91bm1vZGlmaWVkVGV4dCA9ICJceDkiOworICAgICAgICAg
ICAgbV90ZXh0ID0gIlx4OSJfczsKKyAgICAgICAgICAgIG1fdW5tb2RpZmllZFRleHQgPSBtX3Rl
eHQ7CiAgICAgICAgIH0KIAogICAgICAgICAvLyBNYWMgc3BlY2lmaWMuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1QYXN0ZWJvYXJkTWFjLm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtUGFzdGVib2FyZE1hYy5tbQppbmRleCBh
N2ZlNzI1NTQzNzY2NWU4YjhhMGM3NDUzZDMwNDc0OWQ0NTYyZjY3Li40NmRiNTdkZWVhOWQ3MjY5
YWViNGQ4NzdkMTkxN2Q1ZDYzMDNkYTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvUGxhdGZvcm1QYXN0ZWJvYXJkTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9QbGF0Zm9ybVBhc3RlYm9hcmRNYWMubW0KQEAgLTIxNyw3ICsyMTcsNyBAQCBB
TExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIFZlY3RvcjxTdHJpbmc+IFBsYXRmb3Jt
UGFzdGVib2FyZDo6dHlwZXNTYWZlRm9yRE9NVG9SZWFkQW5kV3JpdGUoY29uc3QgU3RyaW5nJiBv
cmlnaW4pIGNvbnN0CiB7CiAgICAgTGlzdEhhc2hTZXQ8U3RyaW5nPiBkb21QYXN0ZWJvYXJkVHlw
ZXM7Ci0gICAgaWYgKE5TRGF0YSAqc2VyaWFsaXplZEN1c3RvbURhdGEgPSBbbV9wYXN0ZWJvYXJk
IGRhdGFGb3JUeXBlOkAoUGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpKV0pIHsKKyAg
ICBpZiAoTlNEYXRhICpzZXJpYWxpemVkQ3VzdG9tRGF0YSA9IFttX3Bhc3RlYm9hcmQgZGF0YUZv
clR5cGU6QChQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkuY2hhcmFjdGVycygpKV0p
IHsKICAgICAgICAgYXV0byBkYXRhID0gUGFzdGVib2FyZEN1c3RvbURhdGE6OmZyb21TaGFyZWRC
dWZmZXIoU2hhcmVkQnVmZmVyOjpjcmVhdGUoc2VyaWFsaXplZEN1c3RvbURhdGEpLmdldCgpKTsK
ICAgICAgICAgaWYgKGRhdGEub3JpZ2luKCkgPT0gb3JpZ2luKSB7CiAgICAgICAgICAgICBmb3Ig
KGF1dG8mIHR5cGUgOiBkYXRhLm9yZGVyZWRUeXBlcygpKQpAQCAtMjI3LDcgKzIyNyw3IEBAIFZl
Y3RvcjxTdHJpbmc+IFBsYXRmb3JtUGFzdGVib2FyZDo6dHlwZXNTYWZlRm9yRE9NVG9SZWFkQW5k
V3JpdGUoY29uc3QgU3RyaW5nJiBvCiAKICAgICBOU0FycmF5PE5TU3RyaW5nICo+ICphbGxUeXBl
cyA9IFttX3Bhc3RlYm9hcmQgdHlwZXNdOwogICAgIGZvciAoTlNTdHJpbmcgKnR5cGUgaW4gYWxs
VHlwZXMpIHsKLSAgICAgICAgaWYgKFt0eXBlIGlzRXF1YWxUb1N0cmluZzpAKFBhc3RlYm9hcmRD
dXN0b21EYXRhOjpjb2NvYVR5cGUoKSldKQorICAgICAgICBpZiAoW3R5cGUgaXNFcXVhbFRvU3Ry
aW5nOkAoUGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpLmNoYXJhY3RlcnMoKSldKQog
ICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgaWYgKFBhc3RlYm9hcmQ6OmlzU2FmZVR5
cGVGb3JET01Ub1JlYWRBbmRXcml0ZSh0eXBlKSkKQEAgLTI1NCw3ICsyNTQsNyBAQCBpbnQ2NF90
IFBsYXRmb3JtUGFzdGVib2FyZDo6d3JpdGUoY29uc3QgUGFzdGVib2FyZEN1c3RvbURhdGEmIGRh
dGEpCiAKICAgICBib29sIHNob3VsZFdyaXRlQ3VzdG9tRGF0YSA9IGRhdGEuaGFzU2FtZU9yaWdp
bkN1c3RvbURhdGEoKSB8fCAhZGF0YS5vcmlnaW4oKS5pc0VtcHR5KCk7CiAgICAgaWYgKHNob3Vs
ZFdyaXRlQ3VzdG9tRGF0YSkKLSAgICAgICAgW3R5cGVzIGFkZE9iamVjdDpAKFBhc3RlYm9hcmRD
dXN0b21EYXRhOjpjb2NvYVR5cGUoKSldOworICAgICAgICBbdHlwZXMgYWRkT2JqZWN0OkAoUGFz
dGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpLmNoYXJhY3RlcnMoKSldOwogCiAgICAgW21f
cGFzdGVib2FyZCBkZWNsYXJlVHlwZXM6dHlwZXMgb3duZXI6bmlsXTsKIApAQCAtMjc1LDcgKzI3
NSw3IEBAIGludDY0X3QgUGxhdGZvcm1QYXN0ZWJvYXJkOjp3cml0ZShjb25zdCBQYXN0ZWJvYXJk
Q3VzdG9tRGF0YSYgZGF0YSkKIAogICAgIGlmIChzaG91bGRXcml0ZUN1c3RvbURhdGEpIHsKICAg
ICAgICAgaWYgKGF1dG8gc2VyaWFsaXplZEN1c3RvbURhdGEgPSBkYXRhLmNyZWF0ZVNoYXJlZEJ1
ZmZlcigpLT5jcmVhdGVOU0RhdGEoKSkKLSAgICAgICAgICAgIFttX3Bhc3RlYm9hcmQgc2V0RGF0
YTpzZXJpYWxpemVkQ3VzdG9tRGF0YS5nZXQoKSBmb3JUeXBlOkAoUGFzdGVib2FyZEN1c3RvbURh
dGE6OmNvY29hVHlwZSgpKV07CisgICAgICAgICAgICBbbV9wYXN0ZWJvYXJkIHNldERhdGE6c2Vy
aWFsaXplZEN1c3RvbURhdGEuZ2V0KCkgZm9yVHlwZTpAKFBhc3RlYm9hcmRDdXN0b21EYXRhOjpj
b2NvYVR5cGUoKS5jaGFyYWN0ZXJzKCkpXTsKICAgICB9CiAKICAgICByZXR1cm4gY2hhbmdlQ291
bnQoKTsKQEAgLTQ5OSw3ICs0OTksNyBAQCBzdGF0aWMgUmV0YWluUHRyPE5TUGFzdGVib2FyZEl0
ZW0+IGNyZWF0ZVBhc3RlYm9hcmRJdGVtKGNvbnN0IFBhc3RlYm9hcmRDdXN0b21EYQogCiAgICAg
aWYgKGRhdGEuaGFzU2FtZU9yaWdpbkN1c3RvbURhdGEoKSB8fCAhZGF0YS5vcmlnaW4oKS5pc0Vt
cHR5KCkpIHsKICAgICAgICAgaWYgKGF1dG8gc2VyaWFsaXplZEN1c3RvbURhdGEgPSBkYXRhLmNy
ZWF0ZVNoYXJlZEJ1ZmZlcigpLT5jcmVhdGVOU0RhdGEoKSkKLSAgICAgICAgICAgIFtpdGVtIHNl
dERhdGE6c2VyaWFsaXplZEN1c3RvbURhdGEuZ2V0KCkgZm9yVHlwZTpAKFBhc3RlYm9hcmRDdXN0
b21EYXRhOjpjb2NvYVR5cGUoKSldOworICAgICAgICAgICAgW2l0ZW0gc2V0RGF0YTpzZXJpYWxp
emVkQ3VzdG9tRGF0YS5nZXQoKSBmb3JUeXBlOkAoUGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29h
VHlwZSgpLmNoYXJhY3RlcnMoKSldOwogICAgIH0KIAogICAgIGRhdGEuZm9yRWFjaFBsYXRmb3Jt
U3RyaW5nT3JCdWZmZXIoWyZdIChhdXRvJiB0eXBlLCBhdXRvJiBzdHJpbmdPckJ1ZmZlcikgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1N0cmluZ1V0aWxpdGllcy5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TdHJpbmdVdGlsaXRpZXMubW0KaW5kZXgg
N2NkMWJkODBhZTllMzNlNzU2ZjY1OTEyMjQwZjdlZDZjYzMzYzViNS4uOTJiZTY2N2U2M2ViMzFm
NDFkNzc5YTk2NjJmMWZiNzU2ZjQ2NTQzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL1N0cmluZ1V0aWxpdGllcy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvU3RyaW5nVXRpbGl0aWVzLm1tCkBAIC0zMyw3ICszMyw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAKIHN0YXRpYyBTdHJpbmcgd2lsZGNhcmRSZWdleFBhdHRlcm5TdHJpbmcoY29u
c3QgU3RyaW5nJiBzdHJpbmcpCiB7Ci0gICAgU3RyaW5nIG1ldGFDaGFyYWN0ZXJzID0gIi58Kz8o
KVtde31eJCI7CisgICAgU3RyaW5nIG1ldGFDaGFyYWN0ZXJzID0gIi58Kz8oKVtde31eJCJfczsK
ICAgICBVQ2hhciBlc2NhcGVDaGFyYWN0ZXIgPSAnXFwnOwogICAgIFVDaGFyIHdpbGRjYXJkQ2hh
cmFjdGVyID0gJyonOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL1RocmVhZENoZWNrLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1RocmVhZENo
ZWNrLm1tCmluZGV4IGYxNTEwODhjZTkyNWE1MDZlYjQ2OGIyMjIxZmFmMzI3NTAzMmJhNDIuLmJi
ZDczNDQxZTA1MGI5Njg3NTdhNGY1YTZhZDEzNDY2YjFhZDA2ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9UaHJlYWRDaGVjay5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvVGhyZWFkQ2hlY2subW0KQEAgLTEwNiw3ICsxMDYsNyBAQCB2b2lkIFdl
YkNvcmVSZXBvcnRUaHJlYWRWaW9sYXRpb24oY29uc3QgY2hhciogZnVuY3Rpb24sIFdlYkNvcmU6
OlRocmVhZFZpb2xhdGlvbgogICAgICAgICBjYXNlIE5vVGhyZWFkQ2hlY2s6CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgY2FzZSBMb2dPbkZpcnN0VGhyZWFkVmlvbGF0aW9uOgotICAgICAg
ICAgICAgaWYgKGxvZ2dlZEZ1bmN0aW9ucy5nZXQoKS5hZGQoZnVuY3Rpb24pLmlzTmV3RW50cnkp
IHsKKyAgICAgICAgICAgIGlmIChsb2dnZWRGdW5jdGlvbnMuZ2V0KCkuYWRkKFN0cmluZyB7IGZ1
bmN0aW9uIH0pLmlzTmV3RW50cnkpIHsKICAgICAgICAgICAgICAgICBOU0xvZyhAIldlYktpdCBU
aHJlYWRpbmcgVmlvbGF0aW9uIC0gJXMgY2FsbGVkIGZyb20gc2Vjb25kYXJ5IHRocmVhZCIsIGZ1
bmN0aW9uKTsKICAgICAgICAgICAgICAgICBOU0xvZyhAIkFkZGl0aW9uYWwgdGhyZWFkaW5nIHZp
b2xhdGlvbnMgZm9yIHRoaXMgZnVuY3Rpb24gd2lsbCBub3QgYmUgbG9nZ2VkLiIpOwogICAgICAg
ICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1VzZXJBZ2Vu
dE1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9Vc2VyQWdlbnRNYWMubW0KaW5k
ZXggZTYyYTk3ZjE5OWFhY2MzY2E2OTJkOGRhNGIyMDlkMjk5NGUzYTBkMS4uMjAxZWQ3YWRjY2M2
MzkwM2U0ZTNmZDg2YTkxZDZhMjk5ZjViOGUzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL1VzZXJBZ2VudE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvVXNlckFnZW50TWFjLm1tCkBAIC0zOCw3ICszOCw3IEBAIFN0cmluZyBzdGFuZGFyZFVz
ZXJBZ2VudFdpdGhBcHBsaWNhdGlvbk5hbWUoY29uc3QgU3RyaW5nJiBhcHBsaWNhdGlvbk5hbWUs
IGNvbnN0CiAgICAgaWYgKCFvc1ZlcnNpb24uc3RhcnRzV2l0aCgiMTAiKSkKICAgICAgICAgb3NW
ZXJzaW9uID0gIjEwXzE1XzciX3M7CiAgICAgCi0gICAgU3RyaW5nIGFwcE5hbWVTdWZmaXggPSBh
cHBsaWNhdGlvbk5hbWUuaXNFbXB0eSgpID8gIiIgOiBtYWtlU3RyaW5nKCIgIiwgYXBwbGljYXRp
b25OYW1lKTsKKyAgICBTdHJpbmcgYXBwTmFtZVN1ZmZpeCA9IGFwcGxpY2F0aW9uTmFtZS5pc0Vt
cHR5KCkgPyAiIl9zIDogbWFrZVN0cmluZygiICIsIGFwcGxpY2F0aW9uTmFtZSk7CiAKICAgICBy
ZXR1cm4gbWFrZVN0cmluZygiTW96aWxsYS81LjAgKE1hY2ludG9zaDsgSW50ZWwgTWFjIE9TIFgg
Iiwgb3NWZXJzaW9uLCAiKSBBcHBsZVdlYktpdC82MDUuMS4xNSAoS0hUTUwsIGxpa2UgR2Vja28p
IiwgYXBwTmFtZVN1ZmZpeCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL1Jlc291cmNlRXJyb3JCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvUmVzb3VyY2VFcnJvckJhc2UuY3BwCmluZGV4IDY3ZDJlYWMwOGZhN2I0YmYwNjRj
Y2RmYWJjMjQ5ZmNjNDYyNTFjZmQuLmQwMTkzYWM2YzliOTc0YWEyYmYxZDcxOTc5ZDNlNzAxNWJj
MzBkOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3Vy
Y2VFcnJvckJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVz
b3VyY2VFcnJvckJhc2UuY3BwCkBAIC0zMiw4ICszMiw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotY29uc3QgY2hhciogY29uc3QgZXJyb3JEb21haW5XZWJLaXRJbnRlcm5hbCA9ICJXZWJL
aXRJbnRlcm5hbCI7Ci1jb25zdCBjaGFyKiBjb25zdCBlcnJvckRvbWFpbldlYktpdFNlcnZpY2VX
b3JrZXIgPSAiV2ViS2l0U2VydmljZVdvcmtlciI7Citjb25zdCBBU0NJSUxpdGVyYWwgZXJyb3JE
b21haW5XZWJLaXRJbnRlcm5hbCA9ICJXZWJLaXRJbnRlcm5hbCJfczsKK2NvbnN0IEFTQ0lJTGl0
ZXJhbCBlcnJvckRvbWFpbldlYktpdFNlcnZpY2VXb3JrZXIgPSAiV2ViS2l0U2VydmljZVdvcmtl
ciJfczsKIAogaW5saW5lIGNvbnN0IFJlc291cmNlRXJyb3ImIFJlc291cmNlRXJyb3JCYXNlOjph
c1Jlc291cmNlRXJyb3IoKSBjb25zdAogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9SZXNvdXJjZUVycm9yQmFzZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbmV0d29yay9SZXNvdXJjZUVycm9yQmFzZS5oCmluZGV4IDQ4OGRlYmMxNDNkNjNmNDU3ZThk
MzhlOWM2ZGMyM2E5ZDIwYmE4MTYuLmUxMjFjNTE0ZjQ4OTQyNmEzNDNkMzQ0ODkwYjk2NjMwMjUw
Y2Q3Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3Vy
Y2VFcnJvckJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291
cmNlRXJyb3JCYXNlLmgKQEAgLTM0LDggKzM0LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBSZXNvdXJjZUVycm9yOwogCi1XRUJDT1JFX0VYUE9SVCBleHRlcm4gY29uc3QgY2hhciog
Y29uc3QgZXJyb3JEb21haW5XZWJLaXRJbnRlcm5hbDsgLy8gVXNlZCBmb3IgZXJyb3JzIHRoYXQg
d29uJ3QgYmUgZXhwb3NlZCB0byBjbGllbnRzLgotV0VCQ09SRV9FWFBPUlQgZXh0ZXJuIGNvbnN0
IGNoYXIqIGNvbnN0IGVycm9yRG9tYWluV2ViS2l0U2VydmljZVdvcmtlcjsgLy8gVXNlZCBmb3Ig
ZXJyb3JzIHRoYXQgaGFwcGVuIHdoZW4gbG9hZGluZyBhIHJlc291cmNlIGZyb20gYSBzZXJ2aWNl
IHdvcmtlci4KK1dFQkNPUkVfRVhQT1JUIGV4dGVybiBjb25zdCBBU0NJSUxpdGVyYWwgZXJyb3JE
b21haW5XZWJLaXRJbnRlcm5hbDsgLy8gVXNlZCBmb3IgZXJyb3JzIHRoYXQgd29uJ3QgYmUgZXhw
b3NlZCB0byBjbGllbnRzLgorV0VCQ09SRV9FWFBPUlQgZXh0ZXJuIGNvbnN0IEFTQ0lJTGl0ZXJh
bCBlcnJvckRvbWFpbldlYktpdFNlcnZpY2VXb3JrZXI7IC8vIFVzZWQgZm9yIGVycm9ycyB0aGF0
IGhhcHBlbiB3aGVuIGxvYWRpbmcgYSByZXNvdXJjZSBmcm9tIGEgc2VydmljZSB3b3JrZXIuCiAK
IGNsYXNzIFJlc291cmNlRXJyb3JCYXNlIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvUmFuZ2VS
ZXNwb25zZUdlbmVyYXRvci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29j
b2EvUmFuZ2VSZXNwb25zZUdlbmVyYXRvci5tbQppbmRleCAxOTgxNGEzNjVjOWY2NjFhMjFjMjI5
YWRiZDA0NjExYzIwOTQ3ZTY0Li4wNGVmZGI0ZGZmMWQxNjQxYzNkNjA1YWYzMDE0ZDFhMTBjMjQ2
NDNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1Jh
bmdlUmVzcG9uc2VHZW5lcmF0b3IubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9jb2NvYS9SYW5nZVJlc3BvbnNlR2VuZXJhdG9yLm1tCkBAIC03OCw3ICs3OCw3IEBAIHN0
YXRpYyBSZXNvdXJjZVJlc3BvbnNlIHN5bnRoZXNpemVkUmVzcG9uc2VGb3JSYW5nZShjb25zdCBS
ZXNvdXJjZVJlc3BvbnNlJiBvcmlnCiAgICAgYXV0byBiZWdpbiA9IHBhcnNlZFJlcXVlc3RSYW5n
ZS5iZWdpbjsKICAgICBhdXRvIGVuZCA9IHBhcnNlZFJlcXVlc3RSYW5nZS5lbmQ7CiAKLSAgICBh
dXRvIG5ld0NvbnRlbnRSYW5nZSA9IG1ha2VTdHJpbmcoImJ5dGVzICIsIGJlZ2luLCAiLSIsIGVu
ZCwgIi8iLCAodG90YWxDb250ZW50TGVuZ3RoID8gbWFrZVN0cmluZygqdG90YWxDb250ZW50TGVu
Z3RoKSA6ICIqIikpOworICAgIGF1dG8gbmV3Q29udGVudFJhbmdlID0gbWFrZVN0cmluZygiYnl0
ZXMgIiwgYmVnaW4sICItIiwgZW5kLCAiLyIsICh0b3RhbENvbnRlbnRMZW5ndGggPyBtYWtlU3Ry
aW5nKCp0b3RhbENvbnRlbnRMZW5ndGgpIDogIioiX3MpKTsKICAgICBhdXRvIG5ld0NvbnRlbnRM
ZW5ndGggPSBtYWtlU3RyaW5nKGVuZCAtIGJlZ2luICsgMSk7CiAKICAgICBSZXNvdXJjZVJlc3Bv
bnNlIG5ld1Jlc3BvbnNlID0gb3JpZ2luYWxSZXNwb25zZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUaGVtZU1hYy5tbQppbmRleCAwMTBlY2JhZWQ4N2E3M2E0MjBhZmI5N2U4ZTgw
ZmVhNjM3OWZlZDNlLi44ZTlkNDZhMWIzNGNhYjA0N2ZiYTM0M2QxYjU3YTJjNWIyZGMxMDg2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCkBAIC0yNjE5LDcg
KzI2MTksNyBAQCBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAgICAgICAg
IHJldHVybiBpY29uOwogICAgIH0KIAotICAgIHJldHVybiBJY29uOjpjcmVhdGVJY29uRm9yVVRJ
KCJwdWJsaWMuZGF0YSIpOworICAgIHJldHVybiBJY29uOjpjcmVhdGVJY29uRm9yVVRJKCJwdWJs
aWMuZGF0YSJfcyk7CiB9CiAKIFJldGFpblB0cjxOU0ltYWdlPiBSZW5kZXJUaGVtZU1hYzo6aWNv
bkZvckF0dGFjaG1lbnQoY29uc3QgU3RyaW5nJiBmaWxlTmFtZSwgY29uc3QgU3RyaW5nJiBhdHRh
Y2htZW50VHlwZSwgY29uc3QgU3RyaW5nJiB0aXRsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuY3BwCmluZGV4IDkyYmM2
YTgxMmExMThhNTE5ZjBiNDZjOTRmOTcyZTMyYjNhNWVlNTYuLjRjNTJjNjcxYmRiY2U2NGM5M2Vj
YzI0ZjU4MzAxNTJjZmYwNTA2ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmNwcApAQCAtNjcxLDcgKzY3MSw3IEBA
IFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIExpc3RTdHlsZVBvc2l0aW9u
IHBvc2l0aW9uKQogCiBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBMaXN0
U3R5bGVUeXBlIHN0eWxlVHlwZSkKIHsKLSAgICByZXR1cm4gdHMgPDwgZ2V0VmFsdWVOYW1lKHRv
Q1NTVmFsdWVJRChzdHlsZVR5cGUpKTsKKyAgICByZXR1cm4gdHMgPDwgZ2V0VmFsdWVOYW1lKHRv
Q1NTVmFsdWVJRChzdHlsZVR5cGUpKS5jaGFyYWN0ZXJzKCk7CiB9CiAKIFRleHRTdHJlYW0mIG9w
ZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIE1hcnF1ZWVCZWhhdmlvciBtYXJxdWVlQmVoYXZpb3Ip
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyRWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuaAppbmRleCAxYWNkMmFlOTVhMTU5NGU5
ZjMzNzlkMmU5MzlmOTE2ZGQxNTA0NmZkLi4wMGM3NjEwYTEwY2ViYTQ1MzQyNGRhNzk0MDk2ZTFh
NmZkMzM1Mjk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyRWxlbWVu
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmgKQEAgLTY4LDEw
ICs2OCwxMCBAQCBwcml2YXRlOgogICAgIFByb3BlcnR5UmVnaXN0cnkgbV9wcm9wZXJ0eVJlZ2lz
dHJ5IHsgKnRoaXMgfTsKICAgICBSZWY8U1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbj4gbV9maWx0ZXJV
bml0cyB7IFNWR0FuaW1hdGVkRW51bWVyYXRpb246OmNyZWF0ZSh0aGlzLCBTVkdVbml0VHlwZXM6
OlNWR19VTklUX1RZUEVfT0JKRUNUQk9VTkRJTkdCT1gpIH07CiAgICAgUmVmPFNWR0FuaW1hdGVk
RW51bWVyYXRpb24+IG1fcHJpbWl0aXZlVW5pdHMgeyBTVkdBbmltYXRlZEVudW1lcmF0aW9uOjpj
cmVhdGUodGhpcywgU1ZHVW5pdFR5cGVzOjpTVkdfVU5JVF9UWVBFX1VTRVJTUEFDRU9OVVNFKSB9
OwotICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV94IHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNy
ZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpXaWR0aCwgIi0xMCUiKSB9OwotICAgIFJlZjxTVkdB
bmltYXRlZExlbmd0aD4gbV95IHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdM
ZW5ndGhNb2RlOjpIZWlnaHQsICItMTAlIikgfTsKLSAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+
IG1fd2lkdGggeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6
OldpZHRoLCAiMTIwJSIpIH07Ci0gICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX2hlaWdodCB7
IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6SGVpZ2h0LCAi
MTIwJSIpIH07CisgICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX3ggeyBTVkdBbmltYXRlZExl
bmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OldpZHRoLCAiLTEwJSJfcykgfTsKKyAg
ICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1feSB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUo
dGhpcywgU1ZHTGVuZ3RoTW9kZTo6SGVpZ2h0LCAiLTEwJSJfcykgfTsKKyAgICBSZWY8U1ZHQW5p
bWF0ZWRMZW5ndGg+IG1fd2lkdGggeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNW
R0xlbmd0aE1vZGU6OldpZHRoLCAiMTIwJSJfcykgfTsKKyAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5n
dGg+IG1faGVpZ2h0IHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhN
b2RlOjpIZWlnaHQsICIxMjAlIl9zKSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJk
QXR0cmlidXRlcy5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5k
YXJkQXR0cmlidXRlcy5oCmluZGV4IDMxMDNjYzZhYzIzM2UwZmQzYjJmYjFlOTc5MDQ5YTI4Yjdi
NmY4YmIuLjc4ZTJhYTJjMWU4MTRlNjk4ZWQ0NDRlZWM3N2Y5YjIwNzZlM2Y5NTUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0
ZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRB
dHRyaWJ1dGVzLmgKQEAgLTc1LDEwICs3NSwxMCBAQCBwcml2YXRlOgogCiAgICAgLy8gU3BlYzog
SWYgdGhlIHgveSBhdHRyaWJ1dGUgaXMgbm90IHNwZWNpZmllZCwgdGhlIGVmZmVjdCBpcyBhcyBp
ZiBhIHZhbHVlIG9mICIwJSIgd2VyZSBzcGVjaWZpZWQuCiAgICAgLy8gU3BlYzogSWYgdGhlIHdp
ZHRoL2hlaWdodCBhdHRyaWJ1dGUgaXMgbm90IHNwZWNpZmllZCwgdGhlIGVmZmVjdCBpcyBhcyBp
ZiBhIHZhbHVlIG9mICIxMDAlIiB3ZXJlIHNwZWNpZmllZC4KLSAgICBSZWY8U1ZHQW5pbWF0ZWRM
ZW5ndGg+IG1feCB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9k
ZTo6V2lkdGgsICIwJSIpIH07Ci0gICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX3kgeyBTVkdB
bmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OkhlaWdodCwgIjAlIikg
fTsKLSAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1fd2lkdGggeyBTVkdBbmltYXRlZExlbmd0
aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OldpZHRoLCAiMTAwJSIpIH07Ci0gICAgUmVm
PFNWR0FuaW1hdGVkTGVuZ3RoPiBtX2hlaWdodCB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUo
dGhpcywgU1ZHTGVuZ3RoTW9kZTo6SGVpZ2h0LCAiMTAwJSIpIH07CisgICAgUmVmPFNWR0FuaW1h
dGVkTGVuZ3RoPiBtX3ggeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0
aE1vZGU6OldpZHRoLCAiMCUiX3MpIH07CisgICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX3kg
eyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OkhlaWdodCwg
IjAlIl9zKSB9OworICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV93aWR0aCB7IFNWR0FuaW1h
dGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6V2lkdGgsICIxMDAlIl9zKSB9
OworICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV9oZWlnaHQgeyBTVkdBbmltYXRlZExlbmd0
aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OkhlaWdodCwgIjEwMCUiX3MpIH07CiAgICAg
UmVmPFNWR0FuaW1hdGVkU3RyaW5nPiBtX3Jlc3VsdCB7IFNWR0FuaW1hdGVkU3RyaW5nOjpjcmVh
dGUodGhpcykgfTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5l
YXJHcmFkaWVudEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lYXJHcmFkaWVu
dEVsZW1lbnQuaAppbmRleCBhZWZlNjRjZTE0Njc2Nzg0YzBkMWE5MjRjZTNkZmVhZDdiYWNjMzcz
Li5kZjIwYmQwNTlmYWM3M2IyM2Q3NjllODljOTJkZWYwZmJlYzk3OGFiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5oCkBAIC02MSw3ICs2MSw3IEBA
IHByaXZhdGU6CiAgICAgUHJvcGVydHlSZWdpc3RyeSBtX3Byb3BlcnR5UmVnaXN0cnkgeyAqdGhp
cyB9OwogICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV94MSB7IFNWR0FuaW1hdGVkTGVuZ3Ro
OjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6V2lkdGgpIH07CiAgICAgUmVmPFNWR0FuaW1h
dGVkTGVuZ3RoPiBtX3kxIHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5n
dGhNb2RlOjpIZWlnaHQpIH07Ci0gICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX3gyIHsgU1ZH
QW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpXaWR0aCwgIjEwMCUi
KSB9OworICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV94MiB7IFNWR0FuaW1hdGVkTGVuZ3Ro
OjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6V2lkdGgsICIxMDAlIl9zKSB9OwogICAgIFJl
ZjxTVkdBbmltYXRlZExlbmd0aD4gbV95MiB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhp
cywgU1ZHTGVuZ3RoTW9kZTo6SGVpZ2h0KSB9OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJr
ZXJFbGVtZW50LmgKaW5kZXggNWExMzZlM2VmNDVhNTdhNTFjOTJmZjc2NTliYTZhZjc2MmYyYWU5
My4uZTFmN2VlOWFjNDcxYWE0ZjY4MGZiNTRjMjQzYWZkMDc3MzcyNzVkYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5oCkBAIC04OSw4ICs4OSw4IEBAIHByaXZhdGU6CiAgICAg
UHJvcGVydHlSZWdpc3RyeSBtX3Byb3BlcnR5UmVnaXN0cnkgeyAqdGhpcyB9OwogICAgIFJlZjxT
VkdBbmltYXRlZExlbmd0aD4gbV9yZWZYIHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlz
LCBTVkdMZW5ndGhNb2RlOjpXaWR0aCkgfTsKICAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1f
cmVmWSB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6SGVp
Z2h0KSB9OwotICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV9tYXJrZXJXaWR0aCB7IFNWR0Fu
aW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6V2lkdGgsICIzIikgfTsK
LSAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1fbWFya2VySGVpZ2h0IHsgU1ZHQW5pbWF0ZWRM
ZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpIZWlnaHQsICIzIikgfTsKKyAgICBS
ZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1fbWFya2VyV2lkdGggeyBTVkdBbmltYXRlZExlbmd0aDo6
Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OldpZHRoLCAiMyJfcykgfTsKKyAgICBSZWY8U1ZH
QW5pbWF0ZWRMZW5ndGg+IG1fbWFya2VySGVpZ2h0IHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0
ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpIZWlnaHQsICIzIl9zKSB9OwogICAgIFJlZjxTVkdBbmlt
YXRlZEVudW1lcmF0aW9uPiBtX21hcmtlclVuaXRzIHsgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbjo6
Y3JlYXRlKHRoaXMsIFNWR01hcmtlclVuaXRzU3Ryb2tlV2lkdGgpIH07CiAgICAgUmVmPFNWR0Fu
aW1hdGVkQW5nbGU+IG1fb3JpZW50QW5nbGUgeyBTVkdBbmltYXRlZEFuZ2xlOjpjcmVhdGUodGhp
cykgfTsKICAgICBSZWY8U1ZHQW5pbWF0ZWRPcmllbnRUeXBlPiBtX29yaWVudFR5cGUgeyBTVkdB
bmltYXRlZE9yaWVudFR5cGU6OmNyZWF0ZSh0aGlzLCBTVkdNYXJrZXJPcmllbnRBbmdsZSkgfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmgKaW5kZXggNDkwZGMyMjFhYjI0NGEzZWY1ZmRk
ZDI4NWRmMzdhNmU0NjAwMzQyZC4uZGJkMDQyZDBkM2FmODEyMGUwMGY1OTliOTViMDFkMTEzOGNl
MjFkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmgKQEAgLTYzLDEwICs2MywxMCBA
QCBwcml2YXRlOgogICAgIGJvb2wgc2VsZkhhc1JlbGF0aXZlTGVuZ3RocygpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIHRydWU7IH0KIAogICAgIFByb3BlcnR5UmVnaXN0cnkgbV9wcm9wZXJ0eVJlZ2lz
dHJ5IHsgKnRoaXMgfTsKLSAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1feCB7IFNWR0FuaW1h
dGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6V2lkdGgsICItMTAlIikgfTsK
LSAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1feSB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVh
dGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6SGVpZ2h0LCAiLTEwJSIpIH07Ci0gICAgUmVmPFNWR0Fu
aW1hdGVkTGVuZ3RoPiBtX3dpZHRoIHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBT
VkdMZW5ndGhNb2RlOjpXaWR0aCwgIjEyMCUiKSB9OwotICAgIFJlZjxTVkdBbmltYXRlZExlbmd0
aD4gbV9oZWlnaHQgeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1v
ZGU6OkhlaWdodCwgIjEyMCUiKSB9OworICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV94IHsg
U1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpXaWR0aCwgIi0x
MCUiX3MpIH07CisgICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX3kgeyBTVkdBbmltYXRlZExl
bmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OkhlaWdodCwgIi0xMCUiX3MpIH07Cisg
ICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX3dpZHRoIHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNy
ZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpXaWR0aCwgIjEyMCUiX3MpIH07CisgICAgUmVmPFNW
R0FuaW1hdGVkTGVuZ3RoPiBtX2hlaWdodCB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhp
cywgU1ZHTGVuZ3RoTW9kZTo6SGVpZ2h0LCAiMTIwJSJfcykgfTsKICAgICBSZWY8U1ZHQW5pbWF0
ZWRFbnVtZXJhdGlvbj4gbV9tYXNrVW5pdHMgeyBTVkdBbmltYXRlZEVudW1lcmF0aW9uOjpjcmVh
dGUodGhpcywgU1ZHVW5pdFR5cGVzOjpTVkdfVU5JVF9UWVBFX09CSkVDVEJPVU5ESU5HQk9YKSB9
OwogICAgIFJlZjxTVkdBbmltYXRlZEVudW1lcmF0aW9uPiBtX21hc2tDb250ZW50VW5pdHMgeyBT
VkdBbmltYXRlZEVudW1lcmF0aW9uOjpjcmVhdGUodGhpcywgU1ZHVW5pdFR5cGVzOjpTVkdfVU5J
VF9UWVBFX1VTRVJTUEFDRU9OVVNFKSB9OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdQYXRoU2VnSW1wbC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdJbXBs
LmgKaW5kZXggYTYzNjE1NDI5NGZlYTNhNWIwNWJmOWZlOGYyZjkwYzE4ZWExMDgzNC4uMzRmMjNj
NTE1Zjk0YjkzOTE3MGYzYTVjZTlhZThmYjUyODg2NjE5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1BhdGhTZWdJbXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Bh
dGhTZWdJbXBsLmgKQEAgLTM1LDcgKzM1LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB1c2lu
ZyBTVkdQYXRoU2VnOjpTVkdQYXRoU2VnOwogICAgIHVuc2lnbmVkIHNob3J0IHBhdGhTZWdUeXBl
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gUEFUSFNFR19DTE9TRVBBVEg7IH0KLSAgICBTdHJpbmcg
cGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJaIjsgfQorICAgIFN0
cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIloiX3M7IH0K
ICAgICBSZWY8U1ZHUGF0aFNlZz4gY2xvbmUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBhZG9wdFJl
ZigqbmV3IFNWR1BhdGhTZWdDbG9zZVBhdGgoKSk7IH0KIH07CiAKQEAgLTQ1LDcgKzQ1LDcgQEAg
cHVibGljOgogcHJpdmF0ZToKICAgICB1c2luZyBTVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbDo6
U1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWw7CiAgICAgdW5zaWduZWQgc2hvcnQgcGF0aFNlZ1R5
cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBQQVRIU0VHX0xJTkVUT19IT1JJWk9OVEFMX0FCUzsg
fQotICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
IkgiOyB9CisgICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiAiSCJfczsgfQogICAgIFJlZjxTVkdQYXRoU2VnPiBjbG9uZSgpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIFNWR1BhdGhTZWdWYWx1ZTo6Y2xvbmU8U1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxB
YnM+KCk7IH0KIH07CiAKQEAgLTU1LDcgKzU1LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB1
c2luZyBTVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbDo6U1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250
YWw7CiAgICAgdW5zaWduZWQgc2hvcnQgcGF0aFNlZ1R5cGUoKSBjb25zdCBmaW5hbCB7IHJldHVy
biBQQVRIU0VHX0xJTkVUT19IT1JJWk9OVEFMX1JFTDsgfQotICAgIFN0cmluZyBwYXRoU2VnVHlw
ZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gImgiOyB9CisgICAgU3RyaW5nIHBhdGhT
ZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiaCJfczsgfQogICAgIFJlZjxT
VkdQYXRoU2VnPiBjbG9uZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFNWR1BhdGhTZWdWYWx1ZTo6
Y2xvbmU8U1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxSZWw+KCk7IH0KIH07CiAKQEAgLTY1LDcg
KzY1LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB1c2luZyBTVkdQYXRoU2VnTGluZXRvVmVy
dGljYWw6OlNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbDsKICAgICB1bnNpZ25lZCBzaG9ydCBwYXRo
U2VnVHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFBBVEhTRUdfTElORVRPX1ZFUlRJQ0FMX0FC
UzsgfQotICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gIlYiOyB9CisgICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7
IHJldHVybiAiViJfczsgfQogICAgIFJlZjxTVkdQYXRoU2VnPiBjbG9uZSgpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIFNWR1BhdGhTZWdWYWx1ZTo6Y2xvbmU8U1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2Fs
QWJzPigpOyB9CiB9OwogCkBAIC03NSw3ICs3NSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAg
dXNpbmcgU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsOjpTVkdQYXRoU2VnTGluZXRvVmVydGljYWw7
CiAgICAgdW5zaWduZWQgc2hvcnQgcGF0aFNlZ1R5cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBQ
QVRIU0VHX0xJTkVUT19WRVJUSUNBTF9SRUw7IH0KLSAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xl
dHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJ2IjsgfQorICAgIFN0cmluZyBwYXRoU2VnVHlw
ZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gInYiX3M7IH0KICAgICBSZWY8U1ZHUGF0
aFNlZz4gY2xvbmUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBTVkdQYXRoU2VnVmFsdWU6OmNsb25l
PFNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbFJlbD4oKTsgfQogfTsKIApAQCAtODUsNyArODUsNyBA
QCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHVzaW5nIFNWR1BhdGhTZWdTaW5nbGVDb29yZGluYXRl
OjpTVkdQYXRoU2VnU2luZ2xlQ29vcmRpbmF0ZTsKICAgICB1bnNpZ25lZCBzaG9ydCBwYXRoU2Vn
VHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFBBVEhTRUdfTU9WRVRPX0FCUzsgfQotICAgIFN0
cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIk0iOyB9Cisg
ICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiTSJf
czsgfQogICAgIFJlZjxTVkdQYXRoU2VnPiBjbG9uZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFNW
R1BhdGhTZWdWYWx1ZTo6Y2xvbmU8U1ZHUGF0aFNlZ01vdmV0b0Ficz4oKTsgfQogfTsKIApAQCAt
OTUsNyArOTUsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHVzaW5nIFNWR1BhdGhTZWdTaW5n
bGVDb29yZGluYXRlOjpTVkdQYXRoU2VnU2luZ2xlQ29vcmRpbmF0ZTsKICAgICB1bnNpZ25lZCBz
aG9ydCBwYXRoU2VnVHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFBBVEhTRUdfTU9WRVRPX1JF
TDsgfQotICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gIm0iOyB9CisgICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7
IHJldHVybiAibSJfczsgfQogICAgIFJlZjxTVkdQYXRoU2VnPiBjbG9uZSgpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIFNWR1BhdGhTZWdWYWx1ZTo6Y2xvbmU8U1ZHUGF0aFNlZ01vdmV0b1JlbD4oKTsg
fQogfTsKIApAQCAtMTA1LDcgKzEwNSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdXNpbmcg
U1ZHUGF0aFNlZ1NpbmdsZUNvb3JkaW5hdGU6OlNWR1BhdGhTZWdTaW5nbGVDb29yZGluYXRlOwog
ICAgIHVuc2lnbmVkIHNob3J0IHBhdGhTZWdUeXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gUEFU
SFNFR19MSU5FVE9fQUJTOyB9Ci0gICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25z
dCBmaW5hbCB7IHJldHVybiAiTCI7IH0KKyAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuICJMIl9zOyB9CiAgICAgUmVmPFNWR1BhdGhTZWc+IGNsb25l
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gU1ZHUGF0aFNlZ1ZhbHVlOjpjbG9uZTxTVkdQYXRoU2Vn
TGluZXRvQWJzPigpOyB9CiB9OwogCkBAIC0xMTUsNyArMTE1LDcgQEAgcHVibGljOgogcHJpdmF0
ZToKICAgICB1c2luZyBTVkdQYXRoU2VnU2luZ2xlQ29vcmRpbmF0ZTo6U1ZHUGF0aFNlZ1Npbmds
ZUNvb3JkaW5hdGU7CiAgICAgdW5zaWduZWQgc2hvcnQgcGF0aFNlZ1R5cGUoKSBjb25zdCBmaW5h
bCB7IHJldHVybiBQQVRIU0VHX0xJTkVUT19SRUw7IH0KLSAgICBTdHJpbmcgcGF0aFNlZ1R5cGVB
c0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJsIjsgfQorICAgIFN0cmluZyBwYXRoU2Vn
VHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gImwiX3M7IH0KICAgICBSZWY8U1ZH
UGF0aFNlZz4gY2xvbmUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBTVkdQYXRoU2VnVmFsdWU6OmNs
b25lPFNWR1BhdGhTZWdMaW5ldG9SZWw+KCk7IH0KIH07CiAKQEAgLTEyNSw3ICsxMjUsNyBAQCBw
dWJsaWM6CiBwcml2YXRlOgogICAgIHVzaW5nIFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljOjpT
VkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpYzsKICAgICB1bnNpZ25lZCBzaG9ydCBwYXRoU2VnVHlw
ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFBBVEhTRUdfQ1VSVkVUT19RVUFEUkFUSUNfQUJTOyB9
Ci0gICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAi
USI7IH0KKyAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuICJRIl9zOyB9CiAgICAgUmVmPFNWR1BhdGhTZWc+IGNsb25lKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gU1ZHUGF0aFNlZ1ZhbHVlOjpjbG9uZTxTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY0Fi
cz4oKTsgfQogfTsKIApAQCAtMTM1LDcgKzEzNSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAg
dXNpbmcgU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWM6OlNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJh
dGljOwogICAgIHVuc2lnbmVkIHNob3J0IHBhdGhTZWdUeXBlKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gUEFUSFNFR19DVVJWRVRPX1FVQURSQVRJQ19SRUw7IH0KLSAgICBTdHJpbmcgcGF0aFNlZ1R5
cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJxIjsgfQorICAgIFN0cmluZyBwYXRo
U2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gInEiX3M7IH0KICAgICBSZWY8
U1ZHUGF0aFNlZz4gY2xvbmUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBTVkdQYXRoU2VnVmFsdWU6
OmNsb25lPFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljUmVsPigpOyB9CiB9OwogCkBAIC0xNDUs
NyArMTQ1LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB1c2luZyBTVkdQYXRoU2VnQ3VydmV0
b0N1YmljOjpTVkdQYXRoU2VnQ3VydmV0b0N1YmljOwogICAgIHVuc2lnbmVkIHNob3J0IHBhdGhT
ZWdUeXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gUEFUSFNFR19DVVJWRVRPX0NVQklDX0FCUzsg
fQotICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
IkMiOyB9CisgICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiAiQyJfczsgfQogICAgIFJlZjxTVkdQYXRoU2VnPiBjbG9uZSgpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIFNWR1BhdGhTZWdWYWx1ZTo6Y2xvbmU8U1ZHUGF0aFNlZ0N1cnZldG9DdWJpY0Ficz4o
KTsgfQogfTsKIApAQCAtMTU1LDcgKzE1NSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdXNp
bmcgU1ZHUGF0aFNlZ0N1cnZldG9DdWJpYzo6U1ZHUGF0aFNlZ0N1cnZldG9DdWJpYzsKICAgICB1
bnNpZ25lZCBzaG9ydCBwYXRoU2VnVHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFBBVEhTRUdf
Q1VSVkVUT19DVUJJQ19SRUw7IH0KLSAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuICJjIjsgfQorICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVy
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gImMiX3M7IH0KICAgICBSZWY8U1ZHUGF0aFNlZz4gY2xv
bmUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBTVkdQYXRoU2VnVmFsdWU6OmNsb25lPFNWR1BhdGhT
ZWdDdXJ2ZXRvQ3ViaWNSZWw+KCk7IH0KIH07CiAKQEAgLTE2NSw3ICsxNjUsNyBAQCBwdWJsaWM6
CiBwcml2YXRlOgogICAgIHVzaW5nIFNWR1BhdGhTZWdBcmM6OlNWR1BhdGhTZWdBcmM7CiAgICAg
dW5zaWduZWQgc2hvcnQgcGF0aFNlZ1R5cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBQQVRIU0VH
X0FSQ19BQlM7IH0KLSAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuICJBIjsgfQorICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gIkEiX3M7IH0KICAgICBSZWY8U1ZHUGF0aFNlZz4gY2xvbmUoKSBjb25z
dCBmaW5hbCB7IHJldHVybiBTVkdQYXRoU2VnVmFsdWU6OmNsb25lPFNWR1BhdGhTZWdBcmNBYnM+
KCk7IH0KIH07CiAKQEAgLTE3NSw3ICsxNzUsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHVz
aW5nIFNWR1BhdGhTZWdBcmM6OlNWR1BhdGhTZWdBcmM7CiAgICAgdW5zaWduZWQgc2hvcnQgcGF0
aFNlZ1R5cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBQQVRIU0VHX0FSQ19SRUw7IH0KLSAgICBT
dHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJhIjsgfQor
ICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gImEi
X3M7IH0KICAgICBSZWY8U1ZHUGF0aFNlZz4gY2xvbmUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBT
VkdQYXRoU2VnVmFsdWU6OmNsb25lPFNWR1BhdGhTZWdBcmNSZWw+KCk7IH0KIH07CiAKQEAgLTE4
NSw3ICsxODUsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHVzaW5nIFNWR1BhdGhTZWdTaW5n
bGVDb29yZGluYXRlOjpTVkdQYXRoU2VnU2luZ2xlQ29vcmRpbmF0ZTsKICAgICB1bnNpZ25lZCBz
aG9ydCBwYXRoU2VnVHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFBBVEhTRUdfQ1VSVkVUT19R
VUFEUkFUSUNfU01PT1RIX0FCUzsgfQotICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gIlQiOyB9CisgICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0
ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiVCJfczsgfQogICAgIFJlZjxTVkdQYXRoU2VnPiBj
bG9uZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFNWR1BhdGhTZWdWYWx1ZTo6Y2xvbmU8U1ZHUGF0
aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhBYnM+KCk7IH0KIH07CiAKQEAgLTE5NSw3ICsxOTUs
NyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHVzaW5nIFNWR1BhdGhTZWdTaW5nbGVDb29yZGlu
YXRlOjpTVkdQYXRoU2VnU2luZ2xlQ29vcmRpbmF0ZTsKICAgICB1bnNpZ25lZCBzaG9ydCBwYXRo
U2VnVHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFBBVEhTRUdfQ1VSVkVUT19RVUFEUkFUSUNf
U01PT1RIX1JFTDsgfQotICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gInQiOyB9CisgICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25z
dCBmaW5hbCB7IHJldHVybiAidCJfczsgfQogICAgIFJlZjxTVkdQYXRoU2VnPiBjbG9uZSgpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIFNWR1BhdGhTZWdWYWx1ZTo6Y2xvbmU8U1ZHUGF0aFNlZ0N1cnZl
dG9RdWFkcmF0aWNTbW9vdGhSZWw+KCk7IH0KIH07CiAKQEAgLTIwNSw3ICsyMDUsNyBAQCBwdWJs
aWM6CiBwcml2YXRlOgogICAgIHVzaW5nIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGg6OlNW
R1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGg7CiAgICAgdW5zaWduZWQgc2hvcnQgcGF0aFNlZ1R5
cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBQQVRIU0VHX0NVUlZFVE9fQ1VCSUNfU01PT1RIX0FC
UzsgfQotICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gIlMiOyB9CisgICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7
IHJldHVybiAiUyJfczsgfQogICAgIFJlZjxTVkdQYXRoU2VnPiBjbG9uZSgpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIFNWR1BhdGhTZWdWYWx1ZTo6Y2xvbmU8U1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Nt
b290aEFicz4oKTsgfQogfTsKIApAQCAtMjE1LDcgKzIxNSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6
CiAgICAgdXNpbmcgU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aDo6U1ZHUGF0aFNlZ0N1cnZl
dG9DdWJpY1Ntb290aDsKICAgICB1bnNpZ25lZCBzaG9ydCBwYXRoU2VnVHlwZSgpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIFBBVEhTRUdfQ1VSVkVUT19DVUJJQ19TTU9PVEhfUkVMOyB9Ci0gICAgU3Ry
aW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAicyI7IH0KKyAg
ICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJzIl9z
OyB9CiAgICAgUmVmPFNWR1BhdGhTZWc+IGNsb25lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gU1ZH
UGF0aFNlZ1ZhbHVlOjpjbG9uZTxTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoUmVsPigpOyB9
CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmFkaWFsR3JhZGllbnRF
bGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmgK
aW5kZXggODRmMTE1ODhmM2UyODFlNmY2ZTA3YTYwOWQwODlhOTc4NzA4YTM5ZS4uMjQxOTdmNzQ1
NzcxNjU3YzE3ZDhkMDdiMmNkMjRlNTRlMzRjODA4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuaApAQCAtNjMsMTIgKzYzLDEyIEBAIHByaXZhdGU6
CiAgICAgYm9vbCBzZWxmSGFzUmVsYXRpdmVMZW5ndGhzKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAg
ICBQcm9wZXJ0eVJlZ2lzdHJ5IG1fcHJvcGVydHlSZWdpc3RyeSB7ICp0aGlzIH07Ci0gICAgUmVm
PFNWR0FuaW1hdGVkTGVuZ3RoPiBtX2N4IHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlz
LCBTVkdMZW5ndGhNb2RlOjpXaWR0aCwgIjUwJSIpIH07Ci0gICAgUmVmPFNWR0FuaW1hdGVkTGVu
Z3RoPiBtX2N5IHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2Rl
OjpIZWlnaHQsICI1MCUiKSB9OwotICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV9yIHsgU1ZH
QW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpPdGhlciwgIjUwJSIp
IH07CisgICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX2N4IHsgU1ZHQW5pbWF0ZWRMZW5ndGg6
OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpXaWR0aCwgIjUwJSJfcykgfTsKKyAgICBSZWY8
U1ZHQW5pbWF0ZWRMZW5ndGg+IG1fY3kgeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMs
IFNWR0xlbmd0aE1vZGU6OkhlaWdodCwgIjUwJSJfcykgfTsKKyAgICBSZWY8U1ZHQW5pbWF0ZWRM
ZW5ndGg+IG1fciB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9k
ZTo6T3RoZXIsICI1MCUiX3MpIH07CiAgICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX2Z4IHsg
U1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpXaWR0aCkgfTsK
ICAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1fZnkgeyBTVkdBbmltYXRlZExlbmd0aDo6Y3Jl
YXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OkhlaWdodCkgfTsKLSAgICBSZWY8U1ZHQW5pbWF0ZWRM
ZW5ndGg+IG1fZnIgeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1v
ZGU6Ok90aGVyLCAiMCUiKSB9OworICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV9mciB7IFNW
R0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6T3RoZXIsICIwJSJf
cykgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5VHJhaXRzLmggYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRyYWl0cy5oCmluZGV4IDQzOTk3MDQzMGY2NTZh
OTg2NWU2ZTljOWQ5ZWY1ZWEyNGJiYTUzMDQuLjg0NWFiNGFiZmZiNzg5NTg0ODY5ZjlmZjFhYTVl
ODMyMDEyODBhNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NW
R1Byb3BlcnR5VHJhaXRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZH
UHJvcGVydHlUcmFpdHMuaApAQCAtMzksNyArMzksNyBAQCBzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFp
dHM8Ym9vbD4gewogICAgIHN0YXRpYyBib29sIGluaXRpYWxWYWx1ZSgpIHsgcmV0dXJuIGZhbHNl
OyB9CiAgICAgc3RhdGljIGJvb2wgZnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykgeyBy
ZXR1cm4gc3RyaW5nID09ICJ0cnVlIjsgfQogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPGJvb2w+
IHBhcnNlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBTdHJpbmcmKSB7IEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOyByZXR1cm4gaW5pdGlhbFZhbHVlKCk7IH0KLSAgICBzdGF0aWMgU3RyaW5nIHRv
U3RyaW5nKGJvb2wgdHlwZSkgeyByZXR1cm4gdHlwZSA/ICJ0cnVlIiA6ICJmYWxzZSI7IH0KKyAg
ICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGJvb2wgdHlwZSkgeyByZXR1cm4gdHlwZSA/ICJ0cnVl
Il9zIDogImZhbHNlIl9zOyB9CiB9OwogCiB0ZW1wbGF0ZTw+CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL01vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5ncy5oCmluZGV4IDE4MWVmZjViNWI4
ZWEwMDE4ZTlmM2IwYzI0M2FjN2Q0ZTNlOWRjYTcuLmYzYzk3ZjNmOGUxM2FhMGYxMjdkZWU4NDM5
ZDZiNWMwZDBlM2MxZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0Nv
bnRlbnRGaWx0ZXJTZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0Nv
bnRlbnRGaWx0ZXJTZXR0aW5ncy5oCkBAIC00OCw3ICs0OCw3IEBAIHB1YmxpYzoKIAogICAgIFdF
QkNPUkVfVEVTVFNVUFBPUlRfRVhQT1JUIHN0YXRpYyBNb2NrQ29udGVudEZpbHRlclNldHRpbmdz
JiBzaW5nbGV0b24oKTsKICAgICBXRUJDT1JFX1RFU1RTVVBQT1JUX0VYUE9SVCBzdGF0aWMgdm9p
ZCByZXNldCgpOwotICAgIHN0YXRpYyBjb25zdCBjaGFyKiB1bmJsb2NrVVJMSG9zdCgpIHsgcmV0
dXJuICJtb2NrLXVuYmxvY2siOyB9CisgICAgc3RhdGljIEFTQ0lJTGl0ZXJhbCB1bmJsb2NrVVJM
SG9zdCgpIHsgcmV0dXJuICJtb2NrLXVuYmxvY2siX3M7IH0KIAogICAgIC8vIFRyaWNrIHRoZSBn
ZW5lcmF0ZWQgYmluZGluZ3MgaW50byB0aGlua2luZyB3ZSdyZSBSZWZDb3VudGVkLgogICAgIHZv
aWQgcmVmKCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhWYWx1ZS5o
IGIvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoVmFsdWUuaAppbmRleCBkOTFjNzdkMTAyZDI0YWQy
M2U1OTM5ODZlMDQwYmEyNWMwOWRiMzZiLi5lYTgzZjdkMGJiMWFhZjE0YTdiYTcyMTA5NGYzYjIx
OWEyMmIyM2IxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhWYWx1ZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aFZhbHVlLmgKQEAgLTQwLDcgKzQwLDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgVmFsdWUoZG91YmxlIHZhbHVlKSA6IG1fdHlw
ZShOdW1iZXJWYWx1ZSksIG1fbnVtYmVyKHZhbHVlKSB7IH0KIAogICAgICAgICAgICAgVmFsdWUo
Y29uc3QgU3RyaW5nJiB2YWx1ZSkgOiBtX3R5cGUoU3RyaW5nVmFsdWUpLCBtX2RhdGEoRGF0YTo6
Y3JlYXRlKHZhbHVlKSkgeyB9Ci0gICAgICAgICAgICBWYWx1ZShjb25zdCBjaGFyKiB2YWx1ZSkg
OiBtX3R5cGUoU3RyaW5nVmFsdWUpLCBtX2RhdGEoRGF0YTo6Y3JlYXRlKHZhbHVlKSkgeyB9Cisg
ICAgICAgICAgICBWYWx1ZShjb25zdCBjaGFyKiB2YWx1ZSkgOiBtX3R5cGUoU3RyaW5nVmFsdWUp
LCBtX2RhdGEoRGF0YTo6Y3JlYXRlKFN0cmluZyB7IHZhbHVlIH0pKSB7IH0KIAogICAgICAgICAg
ICAgZXhwbGljaXQgVmFsdWUoTm9kZVNldCYmIHZhbHVlKQogICAgICAgICAgICAgICAgIDogbV90
eXBlKE5vZGVTZXRWYWx1ZSksIG1fZGF0YShEYXRhOjpjcmVhdGUoV1RGTW92ZSh2YWx1ZSkpKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hTTFN0eWxlU2hlZXQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3htbC9YU0xTdHlsZVNoZWV0LmgKaW5kZXggYTJiZjhlMzM0OWFiNTYzNmY1Mjc0ZTQ1
MjRjMzBiYjE4NmM2ZmRlZC4uNWZiZDZlYmE0NzlkODdlOWI3ZTgyMWFmOWVhMzJmMDMwZjQ2ODUw
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hTTFN0eWxlU2hlZXQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS94bWwvWFNMU3R5bGVTaGVldC5oCkBAIC04NCw3ICs4NCw3IEBAIHB1Ymxp
YzoKICAgICB2b2lkIG1hcmtBc1Byb2Nlc3NlZCgpOwogICAgIGJvb2wgcHJvY2Vzc2VkKCkgY29u
c3QgeyByZXR1cm4gbV9wcm9jZXNzZWQ7IH0KICAgICAKLSAgICBTdHJpbmcgdHlwZSgpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuICJ0ZXh0L3htbCI7IH0KKyAgICBTdHJpbmcgdHlwZSgpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuICJ0ZXh0L3htbCJfczsgfQogICAgIGJvb2wgZGlzYWJsZWQoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiBtX2lzRGlzYWJsZWQ7IH0KICAgICB2b2lkIHNldERpc2Fi
bGVkKGJvb2wgYikgb3ZlcnJpZGUgeyBtX2lzRGlzYWJsZWQgPSBiOyB9CiAgICAgTm9kZSogb3du
ZXJOb2RlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9vd25lck5vZGU7IH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJHUFUvV0dTTC9QYXJzZXIuY3BwIGIvU291cmNlL1dlYkdQVS9XR1NML1Bh
cnNlci5jcHAKaW5kZXggNjI1NDg3ZGUxODVmZWVjZjk0YTFkMWIzZjBiYzk4NDZlM2RiOGEwYS4u
ZTYyZjNlMGMwODdlZmExYzFiYzJkMDhiMWYyZDc4MWFhOWM1Y2M0OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkdQVS9XR1NML1BhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkdQVS9XR1NML1BhcnNl
ci5jcHAKQEAgLTIzNCw3ICsyMzQsNyBAQCBFeHBlY3RlZDxVbmlxdWVSZWY8QVNUOjpHbG9iYWxE
ZWNsPiwgRXJyb3I+IFBhcnNlcjxMZXhlcj46OnBhcnNlR2xvYmFsRGVjbCgpCiAgICAgICAgIHJl
dHVybiB7IG1ha2VVbmlxdWVSZWY8QVNUOjpGdW5jdGlvbkRlY2w+KFdURk1vdmUoZm4pKSB9Owog
ICAgIH0KICAgICBkZWZhdWx0OgotICAgICAgICBGQUlMKCJUcnlpbmcgdG8gcGFyc2UgYSBHbG9i
YWxEZWNsLCBleHBlY3RlZCAndmFyJywgJ2ZuJywgb3IgJ3N0cnVjdCcuIik7CisgICAgICAgIEZB
SUwoIlRyeWluZyB0byBwYXJzZSBhIEdsb2JhbERlY2wsIGV4cGVjdGVkICd2YXInLCAnZm4nLCBv
ciAnc3RydWN0Jy4iX3MpOwogICAgIH0KIH0KIApAQCAtMjgyLDcgKzI4Miw3IEBAIEV4cGVjdGVk
PFVuaXF1ZVJlZjxBU1Q6OkF0dHJpYnV0ZT4sIEVycm9yPiBQYXJzZXI8TGV4ZXI+OjpwYXJzZUF0
dHJpYnV0ZSgpCiAgICAgICAgICAgICBSRVRVUk5fTk9ERV9SRUYoU3RhZ2VBdHRyaWJ1dGUsIEFT
VDo6U3RhZ2VBdHRyaWJ1dGU6OlN0YWdlOjpWZXJ0ZXgpOwogICAgICAgICBpZiAoc3RhZ2UubV9p
ZGVudCA9PSAiZnJhZ21lbnQiKQogICAgICAgICAgICAgUkVUVVJOX05PREVfUkVGKFN0YWdlQXR0
cmlidXRlLCBBU1Q6OlN0YWdlQXR0cmlidXRlOjpTdGFnZTo6RnJhZ21lbnQpOwotICAgICAgICBG
QUlMKCJJbnZhbGlkIHN0YWdlIGF0dHJpYnV0ZSwgdGhlIG9ubHkgb3B0aW9ucyBhcmUgJ2NvbXB1
dGUnLCAndmVydGV4JywgJ2ZyYWdtZW50Jy4iKTsKKyAgICAgICAgRkFJTCgiSW52YWxpZCBzdGFn
ZSBhdHRyaWJ1dGUsIHRoZSBvbmx5IG9wdGlvbnMgYXJlICdjb21wdXRlJywgJ3ZlcnRleCcsICdm
cmFnbWVudCcuIl9zKTsKICAgICB9CiAgICAgaWYgKGlkZW50Lm1faWRlbnQgPT0gImxvY2F0aW9u
IikgewogICAgICAgICBDT05TVU1FX1RZUEUoUGFyZW5MZWZ0KTsKQEAgLTI5Nyw3ICsyOTcsNyBA
QCBFeHBlY3RlZDxVbmlxdWVSZWY8QVNUOjpBdHRyaWJ1dGU+LCBFcnJvcj4gUGFyc2VyPExleGVy
Pjo6cGFyc2VBdHRyaWJ1dGUoKQogICAgICAgICBDT05TVU1FX1RZUEUoUGFyZW5SaWdodCk7CiAg
ICAgICAgIFJFVFVSTl9OT0RFX1JFRihCdWlsdGluQXR0cmlidXRlLCBuYW1lLm1faWRlbnQpOwog
ICAgIH0KLSAgICBGQUlMKCJVbmtub3duIGF0dHJpYnV0ZSwgdGhlIG9ubHkgc3VwcG9ydGVkIGF0
dHJpYnV0ZXMgYXJlICdncm91cCcsICdiaW5kaW5nJywgJ3N0YWdlJy4iKTsKKyAgICBGQUlMKCJV
bmtub3duIGF0dHJpYnV0ZSwgdGhlIG9ubHkgc3VwcG9ydGVkIGF0dHJpYnV0ZXMgYXJlICdncm91
cCcsICdiaW5kaW5nJywgJ3N0YWdlJy4iX3MpOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBMZXhl
cj4KQEAgLTM2MCw3ICszNjAsNyBAQCBFeHBlY3RlZDxVbmlxdWVSZWY8QVNUOjpUeXBlRGVjbD4s
IEVycm9yPiBQYXJzZXI8TGV4ZXI+OjpwYXJzZVR5cGVEZWNsKCkKICAgICAgICAgcmV0dXJuIHBh
cnNlVHlwZURlY2xBZnRlcklkZW50aWZpZXIoV1RGTW92ZShuYW1lLm1faWRlbnQpLCBfc3RhcnRP
ZkVsZW1lbnRQb3NpdGlvbik7CiAgICAgfQogCi0gICAgRkFJTCgiVHJpZWQgcGFyc2luZyBhIHR5
cGUgYW5kIGl0IGRpZCBub3Qgc3RhcnQgd2l0aCBhbiBpZGVudGlmaWVyIik7CisgICAgRkFJTCgi
VHJpZWQgcGFyc2luZyBhIHR5cGUgYW5kIGl0IGRpZCBub3Qgc3RhcnQgd2l0aCBhbiBpZGVudGlm
aWVyIl9zKTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgTGV4ZXI+CkBAIC00NTAsNyArNDUwLDcg
QEAgRXhwZWN0ZWQ8QVNUOjpTdG9yYWdlQ2xhc3MsIEVycm9yPiBQYXJzZXI8TGV4ZXI+OjpwYXJz
ZVN0b3JhZ2VDbGFzcygpCiAgICAgICAgIHJldHVybiB7IEFTVDo6U3RvcmFnZUNsYXNzOjpTdG9y
YWdlIH07CiAgICAgfQogCi0gICAgRkFJTCgiRXhwZWN0ZWQgb25lIG9mICdmdW5jdGlvbicvJ3By
aXZhdGUnLydzdG9yYWdlJy8ndW5pZm9ybScvJ3dvcmtncm91cCciKTsKKyAgICBGQUlMKCJFeHBl
Y3RlZCBvbmUgb2YgJ2Z1bmN0aW9uJy8ncHJpdmF0ZScvJ3N0b3JhZ2UnLyd1bmlmb3JtJy8nd29y
a2dyb3VwJyJfcyk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIExleGVyPgpAQCAtNDcxLDcgKzQ3
MSw3IEBAIEV4cGVjdGVkPEFTVDo6QWNjZXNzTW9kZSwgRXJyb3I+IFBhcnNlcjxMZXhlcj46OnBh
cnNlQWNjZXNzTW9kZSgpCiAgICAgICAgIHJldHVybiB7IEFTVDo6QWNjZXNzTW9kZTo6UmVhZFdy
aXRlIH07CiAgICAgfQogCi0gICAgRkFJTCgiRXhwZWN0ZWQgb25lIG9mICdyZWFkJy8nd3JpdGUn
LydyZWFkX3dyaXRlJyIpOworICAgIEZBSUwoIkV4cGVjdGVkIG9uZSBvZiAncmVhZCcvJ3dyaXRl
Jy8ncmVhZF93cml0ZSciX3MpOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBMZXhlcj4KQEAgLTU0
Nyw3ICs1NDcsNyBAQCBFeHBlY3RlZDxVbmlxdWVSZWY8QVNUOjpTdGF0ZW1lbnQ+LCBFcnJvcj4g
UGFyc2VyPExleGVyPjo6cGFyc2VTdGF0ZW1lbnQoKQogICAgICAgICBSRVRVUk5fTk9ERV9SRUYo
QXNzaWdubWVudFN0YXRlbWVudCwgbGhzLm1vdmVUb1VuaXF1ZVB0cigpLCBXVEZNb3ZlKHJocykp
OwogICAgIH0KICAgICBkZWZhdWx0OgotICAgICAgICBGQUlMKCJOb3QgYSB2YWxpZCBzdGF0ZW1l
bnQiKTsKKyAgICAgICAgRkFJTCgiTm90IGEgdmFsaWQgc3RhdGVtZW50Il9zKTsKICAgICB9CiB9
CiAKQEAgLTY5NCw3ICs2OTQsNyBAQCBFeHBlY3RlZDxVbmlxdWVSZWY8QVNUOjpFeHByZXNzaW9u
PiwgRXJyb3I+IFBhcnNlcjxMZXhlcj46OnBhcnNlUHJpbWFyeUV4cHJlc3NpbwogICAgIGRlZmF1
bHQ6CiAgICAgICAgIGJyZWFrOwogICAgIH0KLSAgICBGQUlMKCJFeHBlY3RlZCBvbmUgb2YgJygn
LCBhIGxpdGVyYWwsIG9yIGFuIGlkZW50aWZpZXIiKTsKKyAgICBGQUlMKCJFeHBlY3RlZCBvbmUg
b2YgJygnLCBhIGxpdGVyYWwsIG9yIGFuIGlkZW50aWZpZXIiX3MpOwogfQogCiB0ZW1wbGF0ZTx0
eXBlbmFtZSBMZXhlcj4KQEAgLTczNCw3ICs3MzQsNyBAQCBFeHBlY3RlZDxVbmlxdWVSZWY8QVNU
OjpFeHByZXNzaW9uPiwgRXJyb3I+IFBhcnNlcjxMZXhlcj46OnBhcnNlQ29yZUxIU0V4cHJlc3Np
bwogICAgICAgICBicmVhazsKICAgICB9CiAKLSAgICBGQUlMKCJUcmllZCB0byBwYXJzZSB0aGUg
bGVmdC1oYW5kIHNpZGUgb2YgYW4gYXNzaWdubWVudCBhbmQgZmFpbGVkIik7CisgICAgRkFJTCgi
VHJpZWQgdG8gcGFyc2UgdGhlIGxlZnQtaGFuZCBzaWRlIG9mIGFuIGFzc2lnbm1lbnQgYW5kIGZh
aWxlZCJfcyk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIExleGVyPgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkdQVS9XR1NML1Rva2VuLmNwcCBiL1NvdXJjZS9XZWJHUFUvV0dTTC9Ub2tlbi5jcHAK
aW5kZXggZGIzYzBhNDNlMTAzNzJlYjk5NDFmY2YxNmQ4YjIwZWRlN2YwODkxMi4uNjczMWFhMjJj
MTJhMzMwMzY4Y2ZiMWI3NjBjOTY2ZWUxMGYxYWMxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkdQ
VS9XR1NML1Rva2VuLmNwcAorKysgYi9Tb3VyY2UvV2ViR1BVL1dHU0wvVG9rZW4uY3BwCkBAIC0z
Miw4OSArMzIsODkgQEAgU3RyaW5nIHRvU3RyaW5nKFRva2VuVHlwZSB0eXBlKQogewogICAgIHN3
aXRjaCAodHlwZSkgewogICAgIGNhc2UgVG9rZW5UeXBlOjpJbnZhbGlkOgotICAgICAgICByZXR1
cm4gIkludmFsaWQiOworICAgICAgICByZXR1cm4gIkludmFsaWQiX3M7CiAgICAgY2FzZSBUb2tl
blR5cGU6OkVuZE9mRmlsZToKLSAgICAgICAgcmV0dXJuICJFT0YiOworICAgICAgICByZXR1cm4g
IkVPRiJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6SW50ZWdlckxpdGVyYWw6Ci0gICAgICAgIHJl
dHVybiAiSW50ZWdlckxpdGVyYWwiOworICAgICAgICByZXR1cm4gIkludGVnZXJMaXRlcmFsIl9z
OwogICAgIGNhc2UgVG9rZW5UeXBlOjpJbnRlZ2VyTGl0ZXJhbFNpZ25lZDoKLSAgICAgICAgcmV0
dXJuICJJbnRlZ2VyTGl0ZXJhbFNpZ25lZCI7CisgICAgICAgIHJldHVybiAiSW50ZWdlckxpdGVy
YWxTaWduZWQiX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6OkludGVnZXJMaXRlcmFsVW5zaWduZWQ6
Ci0gICAgICAgIHJldHVybiAiSW50ZWdlckxpdGVyYWxVbnNpZ25lZCI7CisgICAgICAgIHJldHVy
biAiSW50ZWdlckxpdGVyYWxVbnNpZ25lZCJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6RGVjaW1h
bEZsb2F0TGl0ZXJhbDoKLSAgICAgICAgcmV0dXJuICJEZWNpbWFsRmxvYXRMaXRlcmFsIjsKKyAg
ICAgICAgcmV0dXJuICJEZWNpbWFsRmxvYXRMaXRlcmFsIl9zOwogICAgIGNhc2UgVG9rZW5UeXBl
OjpIZXhGbG9hdExpdGVyYWw6Ci0gICAgICAgIHJldHVybiAiSGV4RmxvYXRMaXRlcmFsIjsKKyAg
ICAgICAgcmV0dXJuICJIZXhGbG9hdExpdGVyYWwiX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6Oklk
ZW50aWZpZXI6Ci0gICAgICAgIHJldHVybiAiSWRlbnRpZmllciI7CisgICAgICAgIHJldHVybiAi
SWRlbnRpZmllciJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6UmVzZXJ2ZWRXb3JkOgotICAgICAg
ICByZXR1cm4gIlJlc2VydmVkV29yZCI7CisgICAgICAgIHJldHVybiAiUmVzZXJ2ZWRXb3JkIl9z
OwogICAgIGNhc2UgVG9rZW5UeXBlOjpLZXl3b3JkU3RydWN0OgotICAgICAgICByZXR1cm4gInN0
cnVjdCI7CisgICAgICAgIHJldHVybiAic3RydWN0Il9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpL
ZXl3b3JkRm46Ci0gICAgICAgIHJldHVybiAiZm4iOworICAgICAgICByZXR1cm4gImZuIl9zOwog
ICAgIGNhc2UgVG9rZW5UeXBlOjpLZXl3b3JkRnVuY3Rpb246Ci0gICAgICAgIHJldHVybiAiZnVu
Y3Rpb24iOworICAgICAgICByZXR1cm4gImZ1bmN0aW9uIl9zOwogICAgIGNhc2UgVG9rZW5UeXBl
OjpLZXl3b3JkUHJpdmF0ZToKLSAgICAgICAgcmV0dXJuICJwcml2YXRlIjsKKyAgICAgICAgcmV0
dXJuICJwcml2YXRlIl9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpLZXl3b3JkUmVhZDoKLSAgICAg
ICAgcmV0dXJuICJyZWFkIjsKKyAgICAgICAgcmV0dXJuICJyZWFkIl9zOwogICAgIGNhc2UgVG9r
ZW5UeXBlOjpLZXl3b3JkUmVhZFdyaXRlOgotICAgICAgICByZXR1cm4gInJlYWRfd3JpdGUiOwor
ICAgICAgICByZXR1cm4gInJlYWRfd3JpdGUiX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6OktleXdv
cmRSZXR1cm46Ci0gICAgICAgIHJldHVybiAicmV0dXJuIjsKKyAgICAgICAgcmV0dXJuICJyZXR1
cm4iX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6OktleXdvcmRTdG9yYWdlOgotICAgICAgICByZXR1
cm4gInN0b3JhZ2UiOworICAgICAgICByZXR1cm4gInN0b3JhZ2UiX3M7CiAgICAgY2FzZSBUb2tl
blR5cGU6OktleXdvcmRVbmlmb3JtOgotICAgICAgICByZXR1cm4gInVuaWZvcm0iOworICAgICAg
ICByZXR1cm4gInVuaWZvcm0iX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6OktleXdvcmRWYXI6Ci0g
ICAgICAgIHJldHVybiAidmFyIjsKKyAgICAgICAgcmV0dXJuICJ2YXIiX3M7CiAgICAgY2FzZSBU
b2tlblR5cGU6OktleXdvcmRXb3JrZ3JvdXA6Ci0gICAgICAgIHJldHVybiAid29ya2dyb3VwIjsK
KyAgICAgICAgcmV0dXJuICJ3b3JrZ3JvdXAiX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6OktleXdv
cmRXcml0ZToKLSAgICAgICAgcmV0dXJuICJ3cml0ZSI7CisgICAgICAgIHJldHVybiAid3JpdGUi
X3M7CiAgICAgY2FzZSBUb2tlblR5cGU6OktleXdvcmRJMzI6Ci0gICAgICAgIHJldHVybiAiaTMy
IjsKKyAgICAgICAgcmV0dXJuICJpMzIiX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6OktleXdvcmRV
MzI6Ci0gICAgICAgIHJldHVybiAidTMyIjsKKyAgICAgICAgcmV0dXJuICJ1MzIiX3M7CiAgICAg
Y2FzZSBUb2tlblR5cGU6OktleXdvcmRGMzI6Ci0gICAgICAgIHJldHVybiAiZjMyIjsKKyAgICAg
ICAgcmV0dXJuICJmMzIiX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6OktleXdvcmRCb29sOgotICAg
ICAgICByZXR1cm4gImJvb2wiOworICAgICAgICByZXR1cm4gImJvb2wiX3M7CiAgICAgY2FzZSBU
b2tlblR5cGU6OkxpdGVyYWxUcnVlOgotICAgICAgICByZXR1cm4gInRydWUiOworICAgICAgICBy
ZXR1cm4gInRydWUiX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6OkxpdGVyYWxGYWxzZToKLSAgICAg
ICAgcmV0dXJuICJmYWxzZSI7CisgICAgICAgIHJldHVybiAiZmFsc2UiX3M7CiAgICAgY2FzZSBU
b2tlblR5cGU6OkFycm93OgotICAgICAgICByZXR1cm4gIi0+IjsKKyAgICAgICAgcmV0dXJuICIt
PiJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6QXR0cmlidXRlOgotICAgICAgICByZXR1cm4gIkAi
OworICAgICAgICByZXR1cm4gIkAiX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6OkJyYWNrZXRMZWZ0
OgotICAgICAgICByZXR1cm4gIlsiOworICAgICAgICByZXR1cm4gIlsiX3M7CiAgICAgY2FzZSBU
b2tlblR5cGU6OkJyYWNrZXRSaWdodDoKLSAgICAgICAgcmV0dXJuICJdIjsKKyAgICAgICAgcmV0
dXJuICJdIl9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpCcmFjZUxlZnQ6Ci0gICAgICAgIHJldHVy
biAieyI7CisgICAgICAgIHJldHVybiAieyJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6QnJhY2VS
aWdodDoKLSAgICAgICAgcmV0dXJuICJ9IjsKKyAgICAgICAgcmV0dXJuICJ9Il9zOwogICAgIGNh
c2UgVG9rZW5UeXBlOjpDb2xvbjoKLSAgICAgICAgcmV0dXJuICI6IjsKKyAgICAgICAgcmV0dXJu
ICI6Il9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpDb21tYToKLSAgICAgICAgcmV0dXJuICIsIjsK
KyAgICAgICAgcmV0dXJuICIsIl9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpFcXVhbDoKLSAgICAg
ICAgcmV0dXJuICI9IjsKKyAgICAgICAgcmV0dXJuICI9Il9zOwogICAgIGNhc2UgVG9rZW5UeXBl
OjpHVDoKLSAgICAgICAgcmV0dXJuICI+IjsKKyAgICAgICAgcmV0dXJuICI+Il9zOwogICAgIGNh
c2UgVG9rZW5UeXBlOjpMVDoKLSAgICAgICAgcmV0dXJuICI8IjsKKyAgICAgICAgcmV0dXJuICI8
Il9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpQZXJpb2Q6Ci0gICAgICAgIHJldHVybiAiLiI7Cisg
ICAgICAgIHJldHVybiAiLiJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6UGFyZW5MZWZ0OgotICAg
ICAgICByZXR1cm4gIigiOworICAgICAgICByZXR1cm4gIigiX3M7CiAgICAgY2FzZSBUb2tlblR5
cGU6OlBhcmVuUmlnaHQ6Ci0gICAgICAgIHJldHVybiAiKSI7CisgICAgICAgIHJldHVybiAiKSJf
czsKICAgICBjYXNlIFRva2VuVHlwZTo6U2VtaWNvbG9uOgotICAgICAgICByZXR1cm4gIjsiOwor
ICAgICAgICByZXR1cm4gIjsiX3M7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
R1BVL1dlYkdQVS9BZGFwdGVyLm1tIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvQWRhcHRlci5tbQpp
bmRleCAxYmJhZDYxYTZjZTdlMjk3NTZkZTE1NjFhYTQ2MmRlNWQxYTY4MjY4Li42MDBkMWQ2ZTdi
ZjBmNzdiZGQyZjUxOGZmOTQzNTA3ODEyNTJmYTM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViR1BV
L1dlYkdQVS9BZGFwdGVyLm1tCisrKyBiL1NvdXJjZS9XZWJHUFUvV2ViR1BVL0FkYXB0ZXIubW0K
QEAgLTEyMyw3ICsxMjMsNyBAQCB2b2lkIEFkYXB0ZXI6OnJlcXVlc3REZXZpY2UoY29uc3QgV0dQ
VURldmljZURlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIENvbXBsZXRpb25IYQogICAgICAgICByZXR1
cm47CiAgICAgfQogCi0gICAgY2FsbGJhY2soV0dQVVJlcXVlc3REZXZpY2VTdGF0dXNfU3VjY2Vz
cywgRGV2aWNlOjpjcmVhdGUobV9kZXZpY2UsIGRlc2NyaXB0b3IubGFiZWwsIG1faW5zdGFuY2Up
LCB7IH0pOworICAgIGNhbGxiYWNrKFdHUFVSZXF1ZXN0RGV2aWNlU3RhdHVzX1N1Y2Nlc3MsIERl
dmljZTo6Y3JlYXRlKG1fZGV2aWNlLCBTdHJpbmcgeyBkZXNjcmlwdG9yLmxhYmVsIH0sIG1faW5z
dGFuY2UpLCB7IH0pOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJHUFUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJHUFUvV2ViR1BVL0J1ZmZlci5tbSBiL1NvdXJjZS9XZWJHUFUvV2ViR1BVL0J1ZmZl
ci5tbQppbmRleCBmYmIyZjQ0ZGY5ZTUzNmNlNWNmZWRlMTFmNzg1ZGM4Y2RhMWZiZGM1Li4zYjky
MjAwMzE4ZGM1MTdkMmEwZWI2ZWMzOTllYTU1NDFjNmE1MTY3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViR1BVL1dlYkdQVS9CdWZmZXIubW0KKysrIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvQnVmZmVy
Lm1tCkBAIC0yOTEsNyArMjkxLDcgQEAgdm9pZCBCdWZmZXI6Om1hcEFzeW5jKFdHUFVNYXBNb2Rl
RmxhZ3MgbW9kZSwgc2l6ZV90IG9mZnNldCwgc2l6ZV90IHNpemUsIENvbXBsZXQKICAgICAvLyAi
SWYgYW55IG9mIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgdW5zYXRpc2ZpZWQ6IgogICAg
IGlmICghdmFsaWRhdGVNYXBBc3luYyhtb2RlLCBvZmZzZXQsIHJhbmdlU2l6ZSkpIHsKICAgICAg
ICAgLy8gIlJlY29yZCBhIHZhbGlkYXRpb24gZXJyb3Igb24gdGhlIGN1cnJlbnQgc2NvcGUuIgot
ICAgICAgICBtX2RldmljZS0+Z2VuZXJhdGVBVmFsaWRhdGlvbkVycm9yKCJWYWxpZGF0aW9uIGZh
aWx1cmUuIik7CisgICAgICAgIG1fZGV2aWNlLT5nZW5lcmF0ZUFWYWxpZGF0aW9uRXJyb3IoIlZh
bGlkYXRpb24gZmFpbHVyZS4iX3MpOwogCiAgICAgICAgIC8vICJSZXR1cm4gYSBwcm9taXNlIHJl
amVjdGVkIHdpdGggYW4gT3BlcmF0aW9uRXJyb3Igb24gdGhlIERldmljZSB0aW1lbGluZS4iCiAg
ICAgICAgIGNhbGxiYWNrKFdHUFVCdWZmZXJNYXBBc3luY1N0YXR1c19FcnJvcik7CkBAIC0zNjUs
NyArMzY1LDcgQEAgdm9pZCBCdWZmZXI6OnVubWFwKCkKICAgICAvLyAiSWYgYW55IG9mIHRoZSBm
b2xsb3dpbmcgcmVxdWlyZW1lbnRzIGFyZSB1bm1ldCIKICAgICBpZiAoIXZhbGlkYXRlVW5tYXAo
KSkgewogICAgICAgICAvLyAiZ2VuZXJhdGUgYSB2YWxpZGF0aW9uIGVycm9yIGFuZCBzdG9wLiIK
LSAgICAgICAgbV9kZXZpY2UtPmdlbmVyYXRlQVZhbGlkYXRpb25FcnJvcigiVmFsaWRhdGlvbiBm
YWlsdXJlLiIpOworICAgICAgICBtX2RldmljZS0+Z2VuZXJhdGVBVmFsaWRhdGlvbkVycm9yKCJW
YWxpZGF0aW9uIGZhaWx1cmUuIl9zKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkdQVS9XZWJHUFUvQ29tbWFuZEVuY29kZXIubW0gYi9Tb3VyY2UvV2Vi
R1BVL1dlYkdQVS9Db21tYW5kRW5jb2Rlci5tbQppbmRleCBhZTRiYWM2MDg1YjRjNWYyZWU0Y2Q5
YzdjM2EzZTBiMDNkNzZkNzkyLi45Njk4YzhhMDk5ZmZkNmMwOTM3ODQzOTRhODEyYzE4MmYwZWI3
ZDViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9Db21tYW5kRW5jb2Rlci5tbQor
KysgYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9Db21tYW5kRW5jb2Rlci5tbQpAQCAtMTQ5LDcgKzE0
OSw3IEBAIHZvaWQgQ29tbWFuZEVuY29kZXI6OmNvcHlCdWZmZXJUb0J1ZmZlcihjb25zdCBCdWZm
ZXImIHNvdXJjZSwgdWludDY0X3Qgc291cmNlT2ZmCiAgICAgLy8gIklmIGFueSBvZiB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlIHVuc2F0aXNmaWVkCiAgICAgaWYgKCF2YWxpZGF0ZUNvcHlC
dWZmZXJUb0J1ZmZlcihzb3VyY2UsIHNvdXJjZU9mZnNldCwgZGVzdGluYXRpb24sIGRlc3RpbmF0
aW9uT2Zmc2V0LCBzaXplKSkgewogICAgICAgICAvLyAiZ2VuZXJhdGUgYSB2YWxpZGF0aW9uIGVy
cm9yIGFuZCBzdG9wLiIKLSAgICAgICAgbV9kZXZpY2UtPmdlbmVyYXRlQVZhbGlkYXRpb25FcnJv
cigiVmFsaWRhdGlvbiBmYWlsdXJlLiIpOworICAgICAgICBtX2RldmljZS0+Z2VuZXJhdGVBVmFs
aWRhdGlvbkVycm9yKCJWYWxpZGF0aW9uIGZhaWx1cmUuIl9zKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIApAQCAtMjIwLDcgKzIyMCw3IEBAIHZvaWQgQ29tbWFuZEVuY29kZXI6OmNsZWFyQnVm
ZmVyKGNvbnN0IEJ1ZmZlciYgYnVmZmVyLCB1aW50NjRfdCBvZmZzZXQsIHVpbnQ2NF90CiAgICAg
Ly8gIklmIGFueSBvZiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIHVuc2F0aXNmaWVkIgog
ICAgIGlmICghdmFsaWRhdGVDbGVhckJ1ZmZlcihidWZmZXIsIG9mZnNldCwgc2l6ZSkpIHsKICAg
ICAgICAgLy8gImdlbmVyYXRlIGEgdmFsaWRhdGlvbiBlcnJvciBhbmQgc3RvcC4iCi0gICAgICAg
IG1fZGV2aWNlLT5nZW5lcmF0ZUFWYWxpZGF0aW9uRXJyb3IoIlZhbGlkYXRpb24gZmFpbHVyZS4i
KTsKKyAgICAgICAgbV9kZXZpY2UtPmdlbmVyYXRlQVZhbGlkYXRpb25FcnJvcigiVmFsaWRhdGlv
biBmYWlsdXJlLiJfcyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTI2Miw3ICsyNjIs
NyBAQCBSZWZQdHI8Q29tbWFuZEJ1ZmZlcj4gQ29tbWFuZEVuY29kZXI6OmZpbmlzaChjb25zdCBX
R1BVQ29tbWFuZEJ1ZmZlckRlc2NyaXB0b3ImCiAgICAgLy8gIklmIHZhbGlkYXRpb25TdWNjZWVk
ZWQgaXMgZmFsc2UsIHRoZW46IgogICAgIGlmICh2YWxpZGF0aW9uRmFpbGVkKSB7CiAgICAgICAg
IC8vICJHZW5lcmF0ZSBhIHZhbGlkYXRpb24gZXJyb3IuIgotICAgICAgICBtX2RldmljZS0+Z2Vu
ZXJhdGVBVmFsaWRhdGlvbkVycm9yKCJWYWxpZGF0aW9uIGZhaWx1cmUuIik7CisgICAgICAgIG1f
ZGV2aWNlLT5nZW5lcmF0ZUFWYWxpZGF0aW9uRXJyb3IoIlZhbGlkYXRpb24gZmFpbHVyZS4iX3Mp
OwogCiAgICAgICAgIC8vIEZJWE1FOiAiUmV0dXJuIGEgbmV3IGludmFsaWQgR1BVQ29tbWFuZEJ1
ZmZlci4iCiAgICAgICAgIHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkdQ
VS9XZWJHUFUvQ29tcHV0ZVBpcGVsaW5lLm1tIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvQ29tcHV0
ZVBpcGVsaW5lLm1tCmluZGV4IGVkOWI4Y2ZmNjQxNDMwMTJlNzdiM2UyMWZjNWU5Y2FiMDc1OTM2
NGMuLmU0YWQ3N2FmOTdhM2MxMzg5MjFiNDdkMDI2NTk4YjhiYzc2ZGE0YTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJHUFUvV2ViR1BVL0NvbXB1dGVQaXBlbGluZS5tbQorKysgYi9Tb3VyY2UvV2Vi
R1BVL1dlYkdQVS9Db21wdXRlUGlwZWxpbmUubW0KQEAgLTcxLDcgKzcxLDcgQEAgc3RhdGljIE1U
TEZ1bmN0aW9uQ29uc3RhbnRWYWx1ZXMgKmNyZWF0ZUNvbnN0YW50VmFsdWVzKHVpbnQzMl90IGNv
bnN0YW50Q291bnQsIGMKICAgICBhdXRvIGNvbnN0YW50VmFsdWVzID0gW01UTEZ1bmN0aW9uQ29u
c3RhbnRWYWx1ZXMgbmV3XTsKICAgICBmb3IgKHVpbnQzMl90IGkgPSAwOyBpIDwgY29uc3RhbnRD
b3VudDsgKytpKSB7CiAgICAgICAgIGNvbnN0IGF1dG8mIGVudHJ5ID0gY29uc3RhbnRzW2ldOwot
ICAgICAgICBhdXRvIG5hbWVJdGVyYXRvciA9IGVudHJ5UG9pbnRJbmZvcm1hdGlvbi5zcGVjaWFs
aXphdGlvbkNvbnN0YW50SW5kaWNlcy5maW5kKGVudHJ5LmtleSk7CisgICAgICAgIGF1dG8gbmFt
ZUl0ZXJhdG9yID0gZW50cnlQb2ludEluZm9ybWF0aW9uLnNwZWNpYWxpemF0aW9uQ29uc3RhbnRJ
bmRpY2VzLmZpbmQoU3RyaW5nIHsgZW50cnkua2V5IH0pOwogICAgICAgICBpZiAobmFtZUl0ZXJh
dG9yID09IGVudHJ5UG9pbnRJbmZvcm1hdGlvbi5zcGVjaWFsaXphdGlvbkNvbnN0YW50SW5kaWNl
cy5lbmQoKSkKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICBhdXRvIHNwZWNp
YWxpemF0aW9uQ29uc3RhbnRJbmRleCA9IG5hbWVJdGVyYXRvci0+dmFsdWU7CkBAIC0xNTAsNyAr
MTUwLDcgQEAgUmVmUHRyPENvbXB1dGVQaXBlbGluZT4gRGV2aWNlOjpjcmVhdGVDb21wdXRlUGlw
ZWxpbmUoY29uc3QgV0dQVUNvbXB1dGVQaXBlbGluZUQKICAgICBjb25zdCBQaXBlbGluZUxheW91
dCYgcGlwZWxpbmVMYXlvdXQgPSBXZWJHUFU6OmZyb21BUEkoZGVzY3JpcHRvci5sYXlvdXQpOwog
ICAgIGF1dG8gbGFiZWwgPSBmcm9tQVBJKGRlc2NyaXB0b3IubGFiZWwpOwogCi0gICAgYXV0byBs
aWJyYXJ5Q3JlYXRpb25SZXN1bHQgPSBjcmVhdGVMaWJyYXJ5KG1fZGV2aWNlLCBzaGFkZXJNb2R1
bGUsIHBpcGVsaW5lTGF5b3V0LCBkZXNjcmlwdG9yLmNvbXB1dGUuZW50cnlQb2ludCwgbGFiZWwp
OworICAgIGF1dG8gbGlicmFyeUNyZWF0aW9uUmVzdWx0ID0gY3JlYXRlTGlicmFyeShtX2Rldmlj
ZSwgc2hhZGVyTW9kdWxlLCBwaXBlbGluZUxheW91dCwgU3RyaW5nIHsgZGVzY3JpcHRvci5jb21w
dXRlLmVudHJ5UG9pbnQgfSwgbGFiZWwpOwogICAgIGlmICghbGlicmFyeUNyZWF0aW9uUmVzdWx0
KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkdQVS9X
ZWJHUFUvUXVldWUubW0gYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9RdWV1ZS5tbQppbmRleCBiN2Jk
NTdjZjVhNDI2ZWMyNmU2ZjliMWUyOWQ5OWZkZWFkZjcwNWM0Li4wZDFiMzlhODRmNjQyMzU3OWE5
ZWMwM2I1YWEyNDFiZGU2MzFkNjYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9R
dWV1ZS5tbQorKysgYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9RdWV1ZS5tbQpAQCAtMTMxLDcgKzEz
MSw3IEBAIHZvaWQgUXVldWU6OnN1Ym1pdChWZWN0b3I8c3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjxj
b25zdCBDb21tYW5kQnVmZmVyPj4mJiBjb21tYW5kCiAgICAgLy8gIklmIGFueSBvZiB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMgYXJlIHVuc2F0aXNmaWVkIgogICAgIGlmICghdmFsaWRhdGVTdWJt
aXQoKSkgewogICAgICAgICAvLyAiZ2VuZXJhdGUgYSB2YWxpZGF0aW9uIGVycm9yIGFuZCBzdG9w
LiIKLSAgICAgICAgbV9kZXZpY2UuZ2VuZXJhdGVBVmFsaWRhdGlvbkVycm9yKCJWYWxpZGF0aW9u
IGZhaWx1cmUuIik7CisgICAgICAgIG1fZGV2aWNlLmdlbmVyYXRlQVZhbGlkYXRpb25FcnJvcigi
VmFsaWRhdGlvbiBmYWlsdXJlLiJfcyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1NhbXBsZXIubW0gYi9Tb3VyY2UvV2ViR1BVL1dl
YkdQVS9TYW1wbGVyLm1tCmluZGV4IDJmN2Y3MjdmMTdkOTczZDBhNDljZTM0ZWVmYWM3MTM4NTcz
Mzc2YjYuLjgyNzM5MDQ5OTRjYjcwOWYwOTRlMjQ1ODc5OWFjZWM2Nzc1ODliNzIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1NhbXBsZXIubW0KKysrIGIvU291cmNlL1dlYkdQVS9X
ZWJHUFUvU2FtcGxlci5tbQpAQCAtMTM2LDcgKzEzNiw3IEBAIFJlZlB0cjxTYW1wbGVyPiBEZXZp
Y2U6OmNyZWF0ZVNhbXBsZXIoY29uc3QgV0dQVVNhbXBsZXJEZXNjcmlwdG9yJiBkZXNjcmlwdG9y
KQogICAgIC8vICJJZiB2YWxpZGF0aW5nIEdQVVNhbXBsZXJEZXNjcmlwdG9yKHRoaXMsIGRlc2Ny
aXB0b3IpIHJldHVybnMgZmFsc2U6IgogICAgIGlmICghdmFsaWRhdGVDcmVhdGVTYW1wbGVyKCp0
aGlzLCBkZXNjcmlwdG9yKSkgewogICAgICAgICAvLyAiR2VuZXJhdGUgYSB2YWxpZGF0aW9uIGVy
cm9yLiIKLSAgICAgICAgZ2VuZXJhdGVBVmFsaWRhdGlvbkVycm9yKCJWYWxpZGF0aW9uIGZhaWx1
cmUuIik7CisgICAgICAgIGdlbmVyYXRlQVZhbGlkYXRpb25FcnJvcigiVmFsaWRhdGlvbiBmYWls
dXJlLiJfcyk7CiAKICAgICAgICAgLy8gIkNyZWF0ZSBhIG5ldyBpbnZhbGlkIEdQVVNhbXBsZXIg
YW5kIHJldHVybiB0aGUgcmVzdWx0LiIKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9TaGFkZXJNb2R1bGUubW0gYi9Tb3VyY2UvV2ViR1BV
L1dlYkdQVS9TaGFkZXJNb2R1bGUubW0KaW5kZXggZTAwNzU1Y2ZiNTViNGM2NmE4OTI3ZGQzZTVl
MDJlYTkxMDE3MGM0NC4uNjA1ZTM3MjMzNjEwNWFlMDg3MTM3ZGI2MTY0Njk4MTEyYmNmZjg3YiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkdQVS9XZWJHUFUvU2hhZGVyTW9kdWxlLm1tCisrKyBiL1Nv
dXJjZS9XZWJHUFUvV2ViR1BVL1NoYWRlck1vZHVsZS5tbQpAQCAtODgsOSArODgsMTAgQEAgc3Rh
dGljIFJlZlB0cjxTaGFkZXJNb2R1bGU+IGVhcmx5Q29tcGlsZVNoYWRlck1vZHVsZShpZDxNVExE
ZXZpY2U+IGRldmljZSwgc3RkOjoKICAgICAgICAgY29uc3QgYXV0byYgaGludCA9IHN1cHBsaWVk
SGludHMuaGludHNbaV07CiAgICAgICAgIGlmIChoaW50Lm5leHRJbkNoYWluKQogICAgICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgICAgIGhpbnRzLmFkZChoaW50LmtleSwgV2ViR1BVOjpm
cm9tQVBJKGhpbnQuaGludC5sYXlvdXQpKTsKKyAgICAgICAgU3RyaW5nIGhpbnRLZXkgeyBoaW50
LmtleSB9OworICAgICAgICBoaW50cy5hZGQoaGludEtleSwgV2ViR1BVOjpmcm9tQVBJKGhpbnQu
aGludC5sYXlvdXQpKTsKICAgICAgICAgYXV0byBjb252ZXJ0ZWRQaXBlbGluZUxheW91dCA9IFNo
YWRlck1vZHVsZTo6Y29udmVydFBpcGVsaW5lTGF5b3V0KFdlYkdQVTo6ZnJvbUFQSShoaW50Lmhp
bnQubGF5b3V0KSk7Ci0gICAgICAgIHdnc2xIaW50cy5hZGQoaGludC5rZXksIFdURk1vdmUoY29u
dmVydGVkUGlwZWxpbmVMYXlvdXQpKTsKKyAgICAgICAgd2dzbEhpbnRzLmFkZChoaW50S2V5LCBX
VEZNb3ZlKGNvbnZlcnRlZFBpcGVsaW5lTGF5b3V0KSk7CiAgICAgfQogICAgIGF1dG8gcHJlcGFy
ZVJlc3VsdCA9IFdHU0w6OnByZXBhcmUoc3RkOjpnZXQ8V0dTTDo6U3VjY2Vzc2Z1bENoZWNrPihj
aGVja1Jlc3VsdCkuYXN0LCB3Z3NsSGludHMpOwogICAgIGF1dG8gbGlicmFyeSA9IFNoYWRlck1v
ZHVsZTo6Y3JlYXRlTGlicmFyeShkZXZpY2UsIHByZXBhcmVSZXN1bHQubXNsLCBXVEZNb3ZlKGxh
YmVsKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3
SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCmlu
ZGV4IDQ3ZTlkY2E1MDBiMTA2NDAxZWRjYmRmY2JlYTgyMGIzNWJlOTY1NDIuLmZmMzhlMWY3Njgz
NzA2MzFmZTRhZWIxMWQwMGQwYWM2NzBhOWEzNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCkBAIC00NDc4LDcgKzQ0NzgsNyBAQCB2b2lkIFdlYlZp
ZXdJbXBsOjpzZXRQcm9taXNlZERhdGFGb3JJbWFnZShXZWJDb3JlOjpJbWFnZSogaW1hZ2UsIE5T
U3RyaW5nICpmaWxlbgogCiAgICAgUmV0YWluUHRyPE5TRGF0YT4gY3VzdG9tRGF0YUJ1ZmZlcjsK
ICAgICBpZiAob3JpZ2luSWRlbnRpZmllci5sZW5ndGgpIHsKLSAgICAgICAgW3R5cGVzIGFkZE9i
amVjdDpAKFdlYkNvcmU6OlBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKSldOworICAg
ICAgICBbdHlwZXMgYWRkT2JqZWN0OkAoV2ViQ29yZTo6UGFzdGVib2FyZEN1c3RvbURhdGE6OmNv
Y29hVHlwZSgpLmNoYXJhY3RlcnMoKSldOwogICAgICAgICBXZWJDb3JlOjpQYXN0ZWJvYXJkQ3Vz
dG9tRGF0YSBjdXN0b21EYXRhOwogICAgICAgICBjdXN0b21EYXRhLnNldE9yaWdpbihvcmlnaW5J
ZGVudGlmaWVyKTsKICAgICAgICAgY3VzdG9tRGF0YUJ1ZmZlciA9IGN1c3RvbURhdGEuY3JlYXRl
U2hhcmVkQnVmZmVyKCktPmNyZWF0ZU5TRGF0YSgpOwpAQCAtNDQ5Nyw3ICs0NDk3LDcgQEAgQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgfQogCiAgICAgaWYgKGN1c3RvbURh
dGFCdWZmZXIpCi0gICAgICAgIFtwYXN0ZWJvYXJkIHNldERhdGE6Y3VzdG9tRGF0YUJ1ZmZlci5n
ZXQoKSBmb3JUeXBlOkAoV2ViQ29yZTo6UGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgp
KV07CisgICAgICAgIFtwYXN0ZWJvYXJkIHNldERhdGE6Y3VzdG9tRGF0YUJ1ZmZlci5nZXQoKSBm
b3JUeXBlOkAoV2ViQ29yZTo6UGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpLmNoYXJh
Y3RlcnMoKSldOwogCiAgICAgbV9wcm9taXNlZEltYWdlID0gaW1hZ2U7CiB9CkBAIC00NjI0LDcg
KzQ2MjQsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpyZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoV2ViQ29y
ZTo6RE9NUGFzdGVBY2Nlc3NDYXRlZ29yeSBwYXN0ZUFjYwogICAgIEFTU0VSVCghbV9kb21QYXN0
ZVJlcXVlc3RIYW5kbGVyKTsKICAgICBoaWRlRE9NUGFzdGVNZW51V2l0aFJlc3VsdChXZWJDb3Jl
OjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlOjpEZW5pZWRGb3JHZXN0dXJlKTsKIAotICAgIE5TRGF0
YSAqZGF0YSA9IFtwYXN0ZWJvYXJkRm9yQWNjZXNzQ2F0ZWdvcnkocGFzdGVBY2Nlc3NDYXRlZ29y
eSkgZGF0YUZvclR5cGU6QChXZWJDb3JlOjpQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBl
KCkpXTsKKyAgICBOU0RhdGEgKmRhdGEgPSBbcGFzdGVib2FyZEZvckFjY2Vzc0NhdGVnb3J5KHBh
c3RlQWNjZXNzQ2F0ZWdvcnkpIGRhdGFGb3JUeXBlOkAoV2ViQ29yZTo6UGFzdGVib2FyZEN1c3Rv
bURhdGE6OmNvY29hVHlwZSgpLmNoYXJhY3RlcnMoKSldOwogICAgIGF1dG8gYnVmZmVyID0gV2Vi
Q29yZTo6U2hhcmVkQnVmZmVyOjpjcmVhdGUoZGF0YSk7CiAgICAgaWYgKFdlYkNvcmU6OlBhc3Rl
Ym9hcmRDdXN0b21EYXRhOjpmcm9tU2hhcmVkQnVmZmVyKGJ1ZmZlci5nZXQoKSkub3JpZ2luKCkg
PT0gb3JpZ2luSWRlbnRpZmllcikgewogICAgICAgICBtX3BhZ2UtPmdyYW50QWNjZXNzVG9DdXJy
ZW50UGFzdGVib2FyZERhdGEocGFzdGVib2FyZE5hbWVGb3JBY2Nlc3NDYXRlZ29yeShwYXN0ZUFj
Y2Vzc0NhdGVnb3J5KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
V0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCBlYjdjNjkxZjljOTkwZjg0NzVmMDkw
Mjc0ZDliNmVlMjAxYzM5MGIwLi45ZThiZjQ1YmFiNTEzYTUxMjEwNDlkMDUzMTEyMmU0NTYzZjBh
NmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmll
d0ludGVyYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRl
bnRWaWV3SW50ZXJhY3Rpb24ubW0KQEAgLTM5ODAsNyArMzk4MCw3IEBAIC0gKEJPT0wpY2FuUGVy
Zm9ybUFjdGlvbkZvcldlYlZpZXc6KFNFTClhY3Rpb24gd2l0aFNlbmRlcjooaWQpc2VuZGVyCiAg
ICAgICAgIGlmIChmb2N1c2VkRG9jdW1lbnRPcmlnaW4uaXNFbXB0eSgpKQogICAgICAgICAgICAg
cmV0dXJuIE5POwogCi0gICAgICAgIE5TQXJyYXkgKmFsbEN1c3RvbVBhc3RlYm9hcmREYXRhID0g
W3Bhc3RlYm9hcmQgZGF0YUZvclBhc3RlYm9hcmRUeXBlOkAoV2ViQ29yZTo6UGFzdGVib2FyZEN1
c3RvbURhdGE6OmNvY29hVHlwZSgpKSBpbkl0ZW1TZXQ6aW5kaWNlc107CisgICAgICAgIE5TQXJy
YXkgKmFsbEN1c3RvbVBhc3RlYm9hcmREYXRhID0gW3Bhc3RlYm9hcmQgZGF0YUZvclBhc3RlYm9h
cmRUeXBlOkAoV2ViQ29yZTo6UGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpLmNoYXJh
Y3RlcnMoKSkgaW5JdGVtU2V0OmluZGljZXNdOwogICAgICAgICBmb3IgKE5TRGF0YSAqZGF0YSBp
biBhbGxDdXN0b21QYXN0ZWJvYXJkRGF0YSkgewogICAgICAgICAgICAgYXV0byBidWZmZXIgPSBX
ZWJDb3JlOjpTaGFyZWRCdWZmZXI6OmNyZWF0ZShkYXRhKTsKICAgICAgICAgICAgIGlmIChXZWJD
b3JlOjpQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6ZnJvbVNoYXJlZEJ1ZmZlcihidWZmZXIuZ2V0KCkp
Lm9yaWdpbigpID09IGZvY3VzZWREb2N1bWVudE9yaWdpbikKQEAgLTY5NDUsNyArNjk0NSw3IEBA
IHN0YXRpYyBCT09MIGFsbFBhc3RlYm9hcmRJdGVtT3JpZ2luc01hdGNoT3JpZ2luKFVJUGFzdGVi
b2FyZCAqcGFzdGVib2FyZCwgY29uc3QKICAgICAgICAgcmV0dXJuIE5POwogCiAgICAgYXV0byAq
aW5kaWNlcyA9IFtOU0luZGV4U2V0IGluZGV4U2V0V2l0aEluZGV4ZXNJblJhbmdlOk5TTWFrZVJh
bmdlKDAsIFtwYXN0ZWJvYXJkIG51bWJlck9mSXRlbXNdKV07Ci0gICAgYXV0byAqYWxsQ3VzdG9t
RGF0YSA9IFtwYXN0ZWJvYXJkIGRhdGFGb3JQYXN0ZWJvYXJkVHlwZTpAKFdlYkNvcmU6OlBhc3Rl
Ym9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKSkgaW5JdGVtU2V0OmluZGljZXNdOworICAgIGF1
dG8gKmFsbEN1c3RvbURhdGEgPSBbcGFzdGVib2FyZCBkYXRhRm9yUGFzdGVib2FyZFR5cGU6QChX
ZWJDb3JlOjpQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkuY2hhcmFjdGVycygpKSBp
bkl0ZW1TZXQ6aW5kaWNlc107CiAgICAgaWYgKCFhbGxDdXN0b21EYXRhLmNvdW50KQogICAgICAg
ICByZXR1cm4gTk87CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01pc2Mv
V2ViTlNQYXN0ZWJvYXJkRXh0cmFzLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9X
ZWJOU1Bhc3RlYm9hcmRFeHRyYXMubW0KaW5kZXggZTViNDQ0YmZhNWMyODcyODM4N2M3MjMzMjgy
OTFhODIwM2QxYjI1NC4uM2U1MmYxYmJhY2RiNTFiOGVhNTQ3N2M2YjBkOTliOTVjYmFkMGJjMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJOU1Bhc3RlYm9hcmRF
eHRyYXMubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJOU1Bhc3RlYm9h
cmRFeHRyYXMubW0KQEAgLTI3Niw3ICsyNzYsNyBAQCAtIChpZClfd2ViX2RlY2xhcmVBbmRXcml0
ZURyYWdJbWFnZUZvckVsZW1lbnQ6KERPTUVsZW1lbnQgKillbGVtZW50CiAgICAgTlNTdHJpbmcg
Km9yaWdpbklkZW50aWZpZXIgPSBjb3JlKGVsZW1lbnQpLT5kb2N1bWVudCgpLm9yaWdpbklkZW50
aWZpZXJGb3JQYXN0ZWJvYXJkKCk7CiAgICAgUmV0YWluUHRyPE5TRGF0YT4gY3VzdG9tRGF0YUJ1
ZmZlcjsKICAgICBpZiAob3JpZ2luSWRlbnRpZmllci5sZW5ndGgpIHsKLSAgICAgICAgW3R5cGVz
IGFkZE9iamVjdDpAKFBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKSldOworICAgICAg
ICBbdHlwZXMgYWRkT2JqZWN0OkAoUGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpLmNo
YXJhY3RlcnMoKSldOwogICAgICAgICBQYXN0ZWJvYXJkQ3VzdG9tRGF0YSBjdXN0b21EYXRhOwog
ICAgICAgICBjdXN0b21EYXRhLnNldE9yaWdpbihvcmlnaW5JZGVudGlmaWVyKTsKICAgICAgICAg
Y3VzdG9tRGF0YUJ1ZmZlciA9IGN1c3RvbURhdGEuY3JlYXRlU2hhcmVkQnVmZmVyKCktPmNyZWF0
ZU5TRGF0YSgpOwpAQCAtMzA1LDcgKzMwNSw3IEBAIC0gKGlkKV93ZWJfZGVjbGFyZUFuZFdyaXRl
RHJhZ0ltYWdlRm9yRWxlbWVudDooRE9NRWxlbWVudCAqKWVsZW1lbnQKIAogICAgIFtzZWxmIF93
ZWJfd3JpdGVJbWFnZTpuaWwgZWxlbWVudDplbGVtZW50IFVSTDpVUkwgdGl0bGU6dGl0bGUgYXJj
aGl2ZTphcmNoaXZlIHR5cGVzOnR5cGVzLmdldCgpIHNvdXJjZTpzb3VyY2VdOwogICAgIGlmIChj
dXN0b21EYXRhQnVmZmVyKQotICAgICAgICBbc2VsZiBzZXREYXRhOmN1c3RvbURhdGFCdWZmZXIu
Z2V0KCkgZm9yVHlwZTpAKFBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKSldOworICAg
ICAgICBbc2VsZiBzZXREYXRhOmN1c3RvbURhdGFCdWZmZXIuZ2V0KCkgZm9yVHlwZTpAKFBhc3Rl
Ym9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKS5jaGFyYWN0ZXJzKCkpXTsKIAogICAgIFtzZWxm
IHNldFByb3BlcnR5TGlzdDpAW2V4dGVuc2lvbl0gZm9yVHlwZTpsZWdhY3lGaWxlc1Byb21pc2VQ
YXN0ZWJvYXJkVHlwZSgpXTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMv
Q2hhbmdlTG9nCmluZGV4IDE4ODE4MzdlNDRiY2UwMjczOGI3Yzk4YTRmMzg0YTEyNjc5NjU5ZDku
LjhmMDVhOGI1ZTFmNWM4ZTRlMWJiMjgyY2EwOGYyNzRiN2QxZjliY2MgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAy
Mi0wMy0yNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFN0YXJ0
IHByZXBhcmluZyBXZWJDb3JlIGZvciBtYWtpbmcgdGhlIFN0cmluZyhjb25zdCBjaGFyKikgY29u
c3RydWN0b3IgZXhwbGljaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzODMzNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFN0YXJ0IHByZXBhcmluZyBXZWJDb3JlIGZvciBtYWtpbmcgdGhlIFN0cmluZyhj
b25zdCBjaGFyKikgY29uc3RydWN0b3IgZXhwbGljaXQuCisgICAgICAgIE1ha2luZyB0aGlzIGNv
bnN0cnVjdG9yIGV4cGxpY2l0IGhlbHBzIGNhdGNoIGF0IGNvbXBpbGUgdGltZSBjYXNlcyB3aGVy
ZSB0aGUgIiJfcworICAgICAgICBwcmVmaXggaXMgbWlzc2luZyBvbiBTdHJpbmcgbGl0ZXJhbHMu
CisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9EcmFnQW5kRHJvcFRlc3RzTWFj
Lm1tOgorICAgICAgICAoVEVTVCk6CisKIDIwMjItMDMtMjQgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCB1cGRhdGUgb3V0ZGF0ZWQgY29tbWVu
dCBhZnRlciByMjkxNzg3LgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9t
YWMvRHJhZ0FuZERyb3BUZXN0c01hYy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFj
L0RyYWdBbmREcm9wVGVzdHNNYWMubW0KaW5kZXggNTIxOWM5NGRkMzlkYjQ4OWZiM2E0NmExNGQ4
YTkzNTEzZDI4NGVmYy4uODE4YjAwZjNiNWY2NDg4NzllMzUzNTEzYzUzNDM5Zjc0ZWRiYWVlNCAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvRHJhZ0FuZERyb3BUZXN0
c01hYy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9EcmFnQW5kRHJvcFRl
c3RzTWFjLm1tCkBAIC0xODEsNyArMTgxLDcgQEAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElP
TlNfRU5ECiAgICAgRVhQRUNUX0VRKGltYWdlRnJvbVVuaXF1ZVBhc3RlYm9hcmQuVElGRlJlcHJl
c2VudGF0aW9uLmxlbmd0aCwgaW1hZ2VGcm9tRHJhZ1Bhc3RlYm9hcmQuVElGRlJlcHJlc2VudGF0
aW9uLmxlbmd0aCk7CiAgICAgRVhQRUNUX1RSVUUoTlNFcXVhbFNpemVzKGltYWdlRnJvbURyYWdQ
YXN0ZWJvYXJkLnNpemUsIGltYWdlRnJvbVVuaXF1ZVBhc3RlYm9hcmQuc2l6ZSkpOwogICAgIEVY
UEVDVF9GQUxTRShOU0VxdWFsU2l6ZXMoTlNaZXJvU2l6ZSwgaW1hZ2VGcm9tVW5pcXVlUGFzdGVi
b2FyZC5zaXplKSk7Ci0gICAgRVhQRUNUX0dUKFtkcmFnUGFzdGVib2FyZCBkYXRhRm9yVHlwZTpA
KFdlYkNvcmU6OlBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKSldLmxlbmd0aCwgMHUp
OworICAgIEVYUEVDVF9HVChbZHJhZ1Bhc3RlYm9hcmQgZGF0YUZvclR5cGU6QChXZWJDb3JlOjpQ
YXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkuY2hhcmFjdGVycygpKV0ubGVuZ3RoLCAw
dSk7CiB9CiAKIFRFU1QoRHJhZ0FuZERyb3BUZXN0cywgUHJvdmlkZUltYWdlRGF0YUFzVHlwZUlk
ZW50aWZpZXJzKQo=
</data>
<flag name="commit-queue"
          id="483747"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455688</attachid>
            <date>2022-03-24 14:51:44 -0700</date>
            <delta_ts>2022-03-24 14:56:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238336-20220324145143.patch</filename>
            <type>text/plain</type>
            <size>431168</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxODAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
YWE2NWE0N2JkOThlOGI5M2I1ZjQ1N2IzNjRmZDdjOWJhMTczNmI5Li5hMTQ4ZTZjZTU1MmQ4NDU3
ZWFmYjBmZmM1MzA4NjdjYzJjNTFkMjgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMiBAQAorMjAyMi0wMy0yNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFN0YXJ0IHByZXBhcmluZyBXZWJDb3JlIGZvciBtYWtpbmcgdGhlIFN0cmluZyhj
b25zdCBjaGFyKikgY29uc3RydWN0b3IgZXhwbGljaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODMzNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0YXJ0IHByZXBhcmluZyBXZWJDb3JlIGZvciBtYWtp
bmcgdGhlIFN0cmluZyhjb25zdCBjaGFyKikgY29uc3RydWN0b3IgZXhwbGljaXQuCisgICAgICAg
IE1ha2luZyB0aGlzIGNvbnN0cnVjdG9yIGV4cGxpY2l0IGhlbHBzIGNhdGNoIGF0IGNvbXBpbGUg
dGltZSBjYXNlcyB3aGVyZSB0aGUgIiJfcworICAgICAgICBwcmVmaXggaXMgbWlzc2luZyBvbiBT
dHJpbmcgbGl0ZXJhbHMuCisKKyAgICAgICAgKiBBUEkvSlNWYWx1ZS5tbToKKyAgICAgICAgKGNy
ZWF0ZVN0cnVjdEhhbmRsZXJNYXApOgorICAgICAgICAoaGFuZGVyRm9yU3RydWN0VGFnKToKKyAg
ICAgICAgKiBBUEkvSlNXcmFwcGVyTWFwLm1tOgorICAgICAgICAoYWxsb2NhdGVDb25zdHJ1Y3Rv
ckZvckN1c3RvbUNsYXNzKToKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckF1
ZGl0QWdlbnQuY3BwOgorICAgICAgICAoSW5zcGVjdG9yOjpJbnNwZWN0b3JBdWRpdEFnZW50Ojpy
dW4pOgorCiAyMDIyLTAzLTIzICBHZXphIExvcmUgIDxnbG9yZUBpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFtKU0NdIEZpeCByZW1vdGVGdW5jdGlvbkNhbGxHZW5lcmF0b3Igb24gTUlQUwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCA5
YmMzMGI4ZTZlY2QyZDdjMzliYzIyMDAxNTc1OWJjNDg1MjFjNzlkLi43NGRiNDdmODc3YmNkODMw
YzM2NzRkNTEyYmYxZjIzZmU5MDQ5ZTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIyLTAzLTI0
ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgU3RhcnQgcHJlcGFy
aW5nIFdlYkNvcmUgZm9yIG1ha2luZyB0aGUgU3RyaW5nKGNvbnN0IGNoYXIqKSBjb25zdHJ1Y3Rv
ciBleHBsaWNpdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjM4MzM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgU3RhcnQgcHJlcGFyaW5nIFdlYkNvcmUgZm9yIG1ha2luZyB0aGUgU3RyaW5nKGNvbnN0IGNo
YXIqKSBjb25zdHJ1Y3RvciBleHBsaWNpdC4KKyAgICAgICAgTWFraW5nIHRoaXMgY29uc3RydWN0
b3IgZXhwbGljaXQgaGVscHMgY2F0Y2ggYXQgY29tcGlsZSB0aW1lIGNhc2VzIHdoZXJlIHRoZSAi
Il9zCisgICAgICAgIHByZWZpeCBpcyBtaXNzaW5nIG9uIFN0cmluZyBsaXRlcmFscy4KKworICAg
ICAgICAqIHd0Zi90ZXh0L1RleHRTdHJlYW0uaDoKKyAgICAgICAgKFdURjo6VGV4dFN0cmVhbTo6
ZHVtcFByb3BlcnR5KToKKwogMjAyMi0wMy0yNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgogCiAgICAgICAgIFN0cmluZydzIGZpbmQoKSAvIHJldmVyc2VGaW5kKCkgLyByZXBsYWNl
KCkgc2hvdWxkIHRha2UgaW4gYSBTdHJpbmdWaWV3IGluc3RlYWQgb2YgYSBTdHJpbmcKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCAwNDVlMjI5ZDQyMGJjYmFlM2EzZTEyOWEyOTMwZDI2YjliZjc2ZWEzLi4yNmU2NWYw
OTA0MzVmNjBkYWQ0ZmY5MjIzZWY0ZDY0N2YyZjAzMjU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
NTExIEBACisyMDIyLTAzLTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAg
ICAgICAgU3RhcnQgcHJlcGFyaW5nIFdlYkNvcmUgZm9yIG1ha2luZyB0aGUgU3RyaW5nKGNvbnN0
IGNoYXIqKSBjb25zdHJ1Y3RvciBleHBsaWNpdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4MzM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgU3RhcnQgcHJlcGFyaW5nIFdlYkNvcmUgZm9yIG1ha2luZyB0
aGUgU3RyaW5nKGNvbnN0IGNoYXIqKSBjb25zdHJ1Y3RvciBleHBsaWNpdC4KKyAgICAgICAgTWFr
aW5nIHRoaXMgY29uc3RydWN0b3IgZXhwbGljaXQgaGVscHMgY2F0Y2ggYXQgY29tcGlsZSB0aW1l
IGNhc2VzIHdoZXJlIHRoZSAiIl9zCisgICAgICAgIHByZWZpeCBpcyBtaXNzaW5nIG9uIFN0cmlu
ZyBsaXRlcmFscy4KKworICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXktYW1zLXVpL0FwcGxlUGF5
QU1TVUlQYXltZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0QW5kVmFs
aWRhdGVBcHBsZVBheUFNU1VJUmVxdWVzdCk6CisgICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9B
cHBsZVBheUNvbnRhY3RGaWVsZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0QW5kVmFs
aWRhdGUpOgorICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlNZXJjaGFudENhcGFi
aWxpdHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydEFuZFZhbGlkYXRlKToKKyAgICAg
ICAgKiBNb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5UmVxdWVzdEJhc2UuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Y29udmVydEFuZFZhbGlkYXRlKToKKyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5
L0FwcGxlUGF5U2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheVNlc3Npb246
OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheVNlc3Npb246Om9wZW5QYXltZW50
U2V0dXApOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9uOjpiZWdpbik6CisgICAg
ICAgICogTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNldHVwLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkFwcGxlUGF5U2V0dXA6OmJlZ2luKToKKyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5L1Bh
eW1lbnRJbnN0YWxsbWVudENvbmZpZ3VyYXRpb24ubW06CisgICAgICAgIChXZWJDb3JlOjpQYXlt
ZW50SW5zdGFsbG1lbnRDb25maWd1cmF0aW9uOjpjcmVhdGUpOgorICAgICAgICAqIE1vZHVsZXMv
YXBwbGVwYXkvUGF5bWVudFJlcXVlc3RWYWxpZGF0b3IubW06CisgICAgICAgIChXZWJDb3JlOjpQ
YXltZW50UmVxdWVzdFZhbGlkYXRvcjo6dmFsaWRhdGVUb3RhbCk6CisgICAgICAgIChXZWJDb3Jl
Ojp2YWxpZGF0ZUNvdW50cnlDb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRlQ3VycmVu
Y3lDb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRlTWVyY2hhbnRDYXBhYmlsaXRpZXMp
OgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGVTdXBwb3J0ZWROZXR3b3Jrcyk6CisgICAgICAg
IChXZWJDb3JlOjp2YWxpZGF0ZVNoaXBwaW5nTWV0aG9kKToKKyAgICAgICAgKiBNb2R1bGVzL2Fw
cGxlcGF5L1BheW1lbnRTZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBheW1lbnRTZXNz
aW9uOjpjYW5DcmVhdGVTZXNzaW9uKToKKyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5L3BheW1l
bnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Y29udmVydEFuZFZhbGlkYXRlQXBwbGVQYXlSZXF1ZXN0KToKKyAgICAgICAgKiBNb2R1bGVzL2Fw
cGxpY2F0aW9ubWFuaWZlc3QvQXBwbGljYXRpb25NYW5pZmVzdFBhcnNlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpBcHBsaWNhdGlvbk1hbmlmZXN0UGFyc2VyOjpwYXJzZUljb25zKToKKyAgICAg
ICAgKFdlYkNvcmU6OkFwcGxpY2F0aW9uTWFuaWZlc3RQYXJzZXI6OnBhcnNlU2NvcGUpOgorICAg
ICAgICAqIE1vZHVsZXMvY2FjaGUvV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZUNhY2hlcy5jcHA6
CisgICAgICAgICogTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9Jbml0RGF0YVJlZ2lzdHJ5LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OnNhbml0aXplS2V5aWRzKToKKyAgICAgICAgKiBNb2R1bGVzL2Vu
dHJpZXNhcGkvRE9NRmlsZVN5c3RlbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpsaXN0RGlyZWN0
b3J5V2l0aE1ldGFkYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRlUGF0aElzRXhwZWN0
ZWRUeXBlKToKKyAgICAgICAgKiBNb2R1bGVzL2ZldGNoL0ZldGNoQm9keUNvbnN1bWVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkZldGNoQm9keUNvbnN1bWVyOjpwYWNrYWdlRm9ybURhdGEpOgor
ICAgICAgICAqIE1vZHVsZXMvZmV0Y2gvRmV0Y2hIZWFkZXJzLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmZpbGxIZWFkZXJNYXApOgorICAgICAgICAqIE1vZHVsZXMvZmV0Y2gvRmV0Y2hMb2FkZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hMb2FkZXI6OnN0YXJ0TG9hZGluZ0Jsb2JVUkwp
OgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRs
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Z2V0RmlsZSk6
CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Y3JlYXRlU3luY0FjY2Vz
c0hhbmRsZSk6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1I
YW5kbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZTo6aXNTYW1lRW50
cnkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZTo6bW92ZSk6Cisg
ICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VJZGVudGlmaWVyLmg6CisgICAg
ICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5RGF0YS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJREJLZXlEYXRhOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SURCS2V5RGF0
YTo6ZGVjb2RlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlSYW5nZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJREJLZXlSYW5nZTo6aW5jbHVkZXMpOgorICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJpYWxpemF0aW9uLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OnNlcmlhbGl6ZUlEQktleVBhdGgpOgorICAgICAgICAoV2ViQ29yZTo6ZGVzZXJpYWxp
emVJREJLZXlQYXRoKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2Vy
dmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVyOjpnZXRBbGxE
YXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpJ
REJTZXJ2ZXI6OmdldE9yaWdpbnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVy
OjpJREJTZXJ2ZXI6OmNsb3NlQW5kRGVsZXRlRGF0YWJhc2VzTW9kaWZpZWRTaW5jZSk6CisgICAg
ICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQlNlcnZlcjo6Y2xvc2VBbmREZWxldGVEYXRhYmFz
ZXNGb3JPcmlnaW5zKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6cmVtb3ZlQWxsRGF0
YWJhc2VzRm9yRnVsbE9yaWdpblBhdGgpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpJ
REJTZXJ2ZXI6OnJlbmFtZU9yaWdpbik6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OklE
QlNlcnZlcjo6dXBncmFkZUZpbGVzSWZOZWNlc3NhcnkpOgorICAgICAgICAoV2ViQ29yZTo6SURC
U2VydmVyOjpJREJTZXJ2ZXI6OnVwZ3JhZGVkRGF0YWJhc2VEaXJlY3RvcnkpOgorICAgICAgICAq
IE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlJREJCYWNraW5nU3RvcmUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpNZW1vcnlJREJCYWNraW5nU3RvcmU6OmJlZ2luVHJh
bnNhY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpNZW1vcnlJREJCYWNraW5n
U3RvcmU6OmFib3J0VHJhbnNhY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpN
ZW1vcnlJREJCYWNraW5nU3RvcmU6OmNvbW1pdFRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OklEQlNlcnZlcjo6TWVtb3J5SURCQmFja2luZ1N0b3JlOjpnZW5lcmF0ZUtleU51bWJlcik6
CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeU9iamVjdFN0b3JlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6TWVtb3J5T2JqZWN0U3RvcmU6OnVwZGF0
ZUluZGV4ZXNGb3JQdXRSZWNvcmQpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZl
ci9TUUxpdGVJREJCYWNraW5nU3RvcmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVy
Ojp2MVJlY29yZHNUYWJsZVNjaGVtYSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OnYx
UmVjb3Jkc1RhYmxlU2NoZW1hQWx0ZXJuYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZl
cjo6djJSZWNvcmRzVGFibGVTY2hlbWEpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjp2
MlJlY29yZHNUYWJsZVNjaGVtYUFsdGVybmF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2
ZXI6OnYxSW5kZXhSZWNvcmRzVGFibGVTY2hlbWEpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2Vy
dmVyOjp2MUluZGV4UmVjb3Jkc1RhYmxlU2NoZW1hQWx0ZXJuYXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OklEQlNlcnZlcjo6djJJbmRleFJlY29yZHNUYWJsZVNjaGVtYSk6CisgICAgICAgIChXZWJD
b3JlOjpJREJTZXJ2ZXI6OnYySW5kZXhSZWNvcmRzVGFibGVTY2hlbWFBbHRlcm5hdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpTUUxpdGVJREJCYWNraW5nU3RvcmU6OmVuY29kZURh
dGFiYXNlTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlNRTGl0ZUlEQkJhY2tp
bmdTdG9yZTo6ZnVsbERhdGFiYXNlUGF0aEZvckRpcmVjdG9yeSk6CisgICAgICAgIChXZWJDb3Jl
OjpJREJTZXJ2ZXI6OlNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6Z2V0T3JFc3RhYmxpc2hEYXRhYmFz
ZUluZm8pOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpTUUxpdGVJREJCYWNraW5nU3Rv
cmU6OnVwZGF0ZUFsbEluZGV4ZXNGb3JBZGRSZWNvcmQpOgorICAgICAgICAoV2ViQ29yZTo6SURC
U2VydmVyOjpTUUxpdGVJREJCYWNraW5nU3RvcmU6OnVuY2hlY2tlZEdldEtleUdlbmVyYXRvclZh
bHVlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6U1FMaXRlSURCQmFja2luZ1N0b3Jl
Ojp1bmNoZWNrZWRTZXRLZXlHZW5lcmF0b3JWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJT
ZXJ2ZXI6OlNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6Z2VuZXJhdGVLZXlOdW1iZXIpOgorICAgICAg
ICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpjcmVhdGVPYmplY3RT
dG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpk
ZWxldGVPYmplY3RTdG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlE
QkRhdGFiYXNlOjpyZW5hbWVPYmplY3RTdG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2
ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpjbGVhck9iamVjdFN0b3JlKToKKyAgICAgICAgKFdlYkNv
cmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OmNyZWF0ZUluZGV4KToKKyAgICAgICAg
KFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OmRlbGV0ZUluZGV4KToKKyAg
ICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OnJlbmFtZUluZGV4
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OnB1dE9y
QWRkKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OnB1
dE9yQWRkQWZ0ZXJTcGFjZUNoZWNrKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5p
cXVlSURCRGF0YWJhc2U6OmdldFJlY29yZCk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6
OlVuaXF1ZUlEQkRhdGFiYXNlOjpnZXRBbGxSZWNvcmRzKToKKyAgICAgICAgKFdlYkNvcmU6OklE
QlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OmdldENvdW50KToKKyAgICAgICAgKFdlYkNvcmU6
OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OmRlbGV0ZVJlY29yZCk6CisgICAgICAgIChX
ZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpvcGVuQ3Vyc29yKToKKyAgICAg
ICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6Oml0ZXJhdGVDdXJzb3Ip
OgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6Y29tbWl0
VHJhbnNhY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRh
YmFzZTo6YWJvcnRUcmFuc2FjdGlvbik6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2hh
cmVkL0lEQkluZGV4SW5mby5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJJbmRleEluZm86Omxv
Z2dpbmdTdHJpbmcgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFjb250cm9scy9NZWRp
YUNvbnRyb2xzSG9zdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xzSG9zdDo6
bGF5b3V0VHJhaXRzQ2xhc3NOYW1lIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhcmVj
b3JkZXIvTWVkaWFSZWNvcmRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVy
OjpjcmVhdGUpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6YWRkVlA5RnVsbFJhbmdlVmlkZW9GbGFnVG9Db250ZW50VHlw
ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNvdXJjZTo6aXNUeXBlU3VwcG9ydGVkKToKKyAg
ICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhVHJhY2tDb25zdHJhaW50cy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpzZXQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydFRvSW50ZXJu
YWxGb3JtKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0ljZUNhbmRpZGF0ZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSVENJY2VDYW5kaWRhdGU6OmNyZWF0ZSk6CisgICAgICAg
ICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSVENQZWVyQ29ubmVjdGlvbjo6c2V0TG9jYWxEZXNjcmlwdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpSVENQZWVyQ29ubmVjdGlvbjo6YWRkSWNlQ2FuZGlkYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OlJUQ1BlZXJDb25uZWN0aW9uOjppY2VTZXJ2ZXJzRnJvbUNvbmZpZ3VyYXRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6UlRDUGVlckNvbm5lY3Rpb246OmNlcnRpZmljYXRlc0Zyb21D
b25maWd1cmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1BlZXJDb25uZWN0aW9uOjppbml0
aWFsaXplQ29uZmlndXJhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpSVENQZWVyQ29ubmVjdGlv
bjo6c2V0Q29uZmlndXJhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpSVENQZWVyQ29ubmVjdGlv
bjo6Y2hhaW5PcGVyYXRpb24pOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRw
U0ZyYW1lVHJhbnNmb3JtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UlRDUnRwU0ZyYW1lVHJh
bnNmb3JtZXI6OnRyYW5zZm9ybSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3
ZWJydGMvTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkxpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZDo6ZG9DcmVhdGVBbnN3ZXIpOgorICAg
ICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1J0cFRyYW5zY2Vp
dmVyQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b1J0cENvZGVjQ2FwYWJpbGl0eSk6
CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDVXRpbHMu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9FeGNlcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
dG9SVENFcnJvcik6CisgICAgICAgICogTW9kdWxlcy9tb2RlbC1lbGVtZW50L3NjZW5la2l0L1Nj
ZW5lS2l0TW9kZWxMb2FkZXJVU0QubW06CisgICAgICAgIChXZWJDb3JlOjp3cml0ZVRvVGVtcG9y
YXJ5RmlsZSk6CisgICAgICAgICogTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVz
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjaGVja0FuZENhbm9uaWNhbGl6ZURldGFpbHMpOgor
ICAgICAgICAoV2ViQ29yZTo6UGF5bWVudFJlcXVlc3Q6OnNob3cpOgorICAgICAgICAqIE1vZHVs
ZXMvcGljdHVyZWlucGljdHVyZS9IVE1MVmlkZW9FbGVtZW50UGljdHVyZUluUGljdHVyZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50UGljdHVyZUluUGljdHVyZTo6cmVx
dWVzdFBpY3R1cmVJblBpY3R1cmUpOgorICAgICAgICAqIE1vZHVsZXMvcGx1Z2lucy9Zb3VUdWJl
UGx1Z2luUmVwbGFjZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WW91VHViZVBsdWdpblJl
cGxhY2VtZW50OjppbnN0YWxsUmVwbGFjZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6cHJvY2Vz
c0FuZENyZWF0ZVlvdVR1YmVVUkwpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbDo6dXBkYXRlRGF0YVNvdXJjZSk6CisgICAgICAg
IChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjpzb3VyY2VTdG9w
cGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUlt
cGw6OnNvdXJjZU11dGVkQ2hhbmdlZCk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvY29jb2Ev
V2ViU3BlZWNoUmVjb2duaXplclRhc2tNb2NrLm1tOgorICAgICAgICAoLVtXZWJTcGVlY2hSZWNv
Z25pemVyVGFza01vY2sgYXVkaW9TYW1wbGVzQXZhaWxhYmxlOl0pOgorICAgICAgICAqIE1vZHVs
ZXMvc3RvcmFnZS9TdG9yYWdlTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb25uZWN0
aW9uSW5mbyk6CisgICAgICAgICogTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja01hbmFnZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6V2ViTG9ja01hbmFnZXI6OnNpZ25hbFRvQWJvcnRUaGVSZXF1
ZXN0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTGlzdGVuZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6QXVkaW9MaXN0ZW5lcjo6QXVkaW9MaXN0ZW5lcik6CisgICAgICAgICog
TW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlv
UGFyYW06OnNldEF1dG9tYXRpb25SYXRlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvUGFyYW1UaW1lbGluZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1BhcmFtVGltZWxp
bmU6Omluc2VydEV2ZW50KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0JpcXVhZEZpbHRl
ck5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QmlxdWFkRmlsdGVyTm9kZTo6Z2V0RnJlcXVl
bmN5UmVzcG9uc2UpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQmlxdWFkUHJvY2Vzc29y
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJpcXVhZFByb2Nlc3Nvcjo6QmlxdWFkUHJvY2Vzc29y
KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0RlbGF5UHJvY2Vzc29yLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRlbGF5UHJvY2Vzc29yOjpEZWxheVByb2Nlc3Nvcik6CisgICAgICAgICog
TW9kdWxlcy93ZWJhdWRpby9XYXZlU2hhcGVyTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpX
YXZlU2hhcGVyTm9kZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OldhdmVTaGFwZXJOb2Rl
OjpzZXRDdXJ2ZUZvckJpbmRpbmdzKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL0F1dGhl
bnRpY2F0b3JDb29yZGluYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdXRoZW50aWNhdG9y
Q29vcmRpbmF0b3JJbnRlcm5hbDo6bmVlZHNBcHBJZFF1aXJrcyk6CisgICAgICAgICogTW9kdWxl
cy93ZWJhdXRobi9XZWJBdXRoZW50aWNhdGlvblV0aWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmJ1aWxkQXR0ZXN0YXRpb25NYXApOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vZmlkby9E
ZXZpY2VSZXNwb25zZUNvbnZlcnRlci5jcHA6CisgICAgICAgIChmaWRvOjpyZWFkQ1RBUE1ha2VD
cmVkZW50aWFsUmVzcG9uc2UpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vZmlkby9QaW4u
Y3BwOgorICAgICAgICAoZmlkbzo6cGluOjpLZXlBZ3JlZW1lbnRSZXNwb25zZTo6cGFyc2VGcm9t
Q09TRSk6CisgICAgICAgIChmaWRvOjpwaW46OlRva2VuUmVxdWVzdDo6dHJ5Q3JlYXRlKToKKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL2ZpZG8vVTJmUmVzcG9uc2VDb252ZXJ0ZXIuY3BwOgor
ICAgICAgICAoZmlkbzo6cmVhZFUyZlJlZ2lzdGVyUmVzcG9uc2UpOgorICAgICAgICAqIE1vZHVs
ZXMvd2ViZGF0YWJhc2UvQ2hhbmdlVmVyc2lvbldyYXBwZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q2hhbmdlVmVyc2lvbldyYXBwZXI6OnBlcmZvcm1QcmVmbGlnaHQpOgorICAgICAgICAqIE1v
ZHVsZXMvd2ViZGF0YWJhc2UvRE9NV2luZG93V2ViRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RE9NV2luZG93V2ViRGF0YWJhc2U6Om9wZW5EYXRhYmFzZSk6CisgICAgICAgICogTW9k
dWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFz
ZTo6RGF0YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2U6OnJ1blRyYW5zYWN0aW9u
KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlQXV0aG9yaXplci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZUF1dGhvcml6ZXI6OmFkZEFsbG93ZWRGdW5jdGlv
bnMpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6dHJhY2tlckRhdGFiYXNlUGF0aCBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZVRyYWNrZXI6Om9wZW5UcmFja2VyRGF0
YWJhc2UpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvU1FMU3RhdGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNRTFN0YXRlbWVudDo6ZXhlY3V0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpTUUxTdGF0ZW1lbnQ6OnNldERhdGFiYXNlRGVsZXRlZEVycm9yKToKKyAgICAgICAgKFdl
YkNvcmU6OlNRTFN0YXRlbWVudDo6c2V0VmVyc2lvbk1pc21hdGNoZWRFcnJvcik6CisgICAgICAg
IChXZWJDb3JlOjpTUUxTdGF0ZW1lbnQ6OnNldEZhaWx1cmVEdWVUb1F1b3RhKToKKyAgICAgICAg
KiBNb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNRTFRyYW5zYWN0aW9uOjpjYWxsRXJyb3JDYWxsYmFja0R1ZVRvSW50ZXJydXB0aW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OlNRTFRyYW5zYWN0aW9uOjpvcGVuVHJhbnNhY3Rpb25BbmRQcmVm
bGlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6U1FMVHJhbnNhY3Rpb246OmRlbGl2ZXJUcmFuc2Fj
dGlvbkNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlNRTFRyYW5zYWN0aW9uOjpkZWxpdmVy
U3RhdGVtZW50Q2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6U1FMVHJhbnNhY3Rpb246Omhh
bmRsZUN1cnJlbnRTdGF0ZW1lbnRFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpTUUxUcmFuc2Fj
dGlvbjo6cG9zdGZsaWdodEFuZENvbW1pdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRz
L1dlYlNvY2tldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXQ6OnN1YnByb3RvY29s
U2VwYXJhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldDo6Y2xvc2UpOgorICAgICAg
ICAoV2ViQ29yZTo6V2ViU29ja2V0OjpzdXNwZW5kKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNv
Y2tldHMvV2ViU29ja2V0Lmg6CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tl
dENoYW5uZWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6ZGlkT3Bl
blNvY2tldFN0cmVhbSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsOjpkaWRS
ZWNlaXZlU29ja2V0U3RyZWFtRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFu
bmVsOjpwcm9jZXNzRnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6
cHJvY2Vzc091dGdvaW5nRnJhbWVRdWV1ZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRz
L1dlYlNvY2tldERlZmxhdGVGcmFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0
RXh0ZW5zaW9uRGVmbGF0ZUZyYW1lOjpwcm9jZXNzUmVzcG9uc2UpOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViU29ja2V0RGVmbGF0ZUZyYW1lcjo6ZGVmbGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJTb2NrZXREZWZsYXRlRnJhbWVyOjppbmZsYXRlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNv
Y2tldHMvV2ViU29ja2V0RXh0ZW5zaW9uRGlzcGF0Y2hlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJTb2NrZXRFeHRlbnNpb25EaXNwYXRjaGVyOjpwcm9jZXNzSGVhZGVyVmFsdWUpOgorICAg
ICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRGcmFtZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJTb2NrZXRGcmFtZTo6cGFyc2VGcmFtZSk6CisgICAgICAgICogTW9kdWxlcy93
ZWJ4ci9XZWJYUldlYkdMTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlT3BhcXVl
RnJhbWVidWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJXZWJHTExheWVyOjpjcmVhdGUp
OgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQVhJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpBWEltYWdlOjppbWFnZU92ZXJsYXlFbGVtZW50cyk6CisgICAgICAgICogYWNjZXNzaWJpbGl0
eS9BWExvZ2dlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBWExvZ2dlcjo6QVhMb2dnZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6QVhMb2dnZXI6OmxvZyk6CisgICAgICAgIChXZWJDb3JlOjpvcGVy
YXRvcjw8KToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYTG9nZ2VyLmg6CisgICAgICAgICog
YWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFYT2Jq
ZWN0Q2FjaGU6OmlzTW9kYWxFbGVtZW50IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0
ZUZyb21SZW5kZXJlcik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpyZW1vdmUp
OgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6dGV4dENoYW5nZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6aGFuZGxlTWVudU9wZW5lZCk6CisgICAgICAgIChX
ZWJDb3JlOjpBWE9iamVjdENhY2hlOjpub3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1l
ckZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRp
b24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6aGFuZGxlTWVudUl0ZW1TZWxl
Y3RlZCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpzZWxlY3RlZFN0YXRlQ2hh
bmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hh
bmdlTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmhhbmRs
ZU1vZGFsQ2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBlcmZvcm1E
ZWZlcnJlZENhY2hlVXBkYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnVw
ZGF0ZUlzb2xhdGVkVHJlZSk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
Tm9kZU9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Tm9kZU9iamVj
dDo6ZGV0ZXJtaW5lQWNjZXNzaWJpbGl0eVJvbGUpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5
T2JqZWN0OjpyZWFkT25seVZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2li
aWxpdHlPYmplY3Q6OmF1dG9Db21wbGV0ZVZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmN1cnJlbnRWYWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjpyZXBsYWNlVGV4dEluUmFuZ2UpOgorICAgICAgICAo
V2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6Y29tcHV0ZWRSb2xlU3RyaW5nIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6Om5vZGVIYXNQcmVzZW50YXRpb25Sb2xlKToKKyAgICAgICAgKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnJlc29sdmVkRWRpdGluZ1N0eWxlcyBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Ojppc1JhZGlvQnV0dG9uSW5EaWZmZXJl
bnRBZGhvY0dyb3VwKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHk6OmZpbmRNYXRj
aGluZ09iamVjdHMpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVj
dEludGVyZmFjZS5oOgorICAgICAgICAoV2ViQ29yZTo6YWNjZXNzaWJpbGl0eVJvbGVUb1N0cmlu
Zyk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnJlbmRlck9i
amVjdElzT2JzZXJ2YWJsZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0OjpkZXRlcm1pbmVBY2Nlc3NpYmlsaXR5Um9sZSk6CisgICAgICAgIChXZWJD
b3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojp1cGRhdGVSb2xlQWZ0ZXJDaGlsZHJlbkNy
ZWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6Omxp
dmVSZWdpb25SZWxldmFudCBjb25zdCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5VGFibGVDZWxsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlUYWJs
ZUNlbGw6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkIGNvbnN0KToKKyAgICAgICAgKiBh
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUcmVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFj
Y2Vzc2liaWxpdHlUcmVlOjpub2RlSGFzVHJlZUl0ZW1DaGlsZCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpBY2Nlc3NpYmlsaXR5VHJlZTo6aXNUcmVlVmFsaWQgY29uc3QpOgorICAgICAgICAq
IGFjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6QVhJc29sYXRlZE9iamVjdDo6aW5pdGlhbGl6ZUF0dHJpYnV0ZURhdGEpOgor
ICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZE9iamVjdDo6Y2xhc3NMaXN0IGNvbnN0KToKKyAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkVHJlZTo6QVhJc29sYXRlZFRyZWUpOgorICAgICAg
ICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6On5BWElzb2xhdGVkVHJlZSk6CisgICAgICAgIChX
ZWJDb3JlOjpBWElzb2xhdGVkVHJlZTo6Y2xlYXIpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29s
YXRlZFRyZWU6OnRyZWVGb3JJRCk6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkVHJlZTo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjpyZW1vdmVUcmVlRm9y
UGFnZUlEKToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjpvYmplY3RzRm9ySURz
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjpnZW5lcmF0ZVN1YnRy
ZWUpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OmNvbGxlY3ROb2RlQ2hhbmdl
c0ZvclN1YnRyZWUpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OnVwZGF0ZU5v
ZGUpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OnVwZGF0ZU5vZGVQcm9wZXJ0
eSk6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkVHJlZTo6dXBkYXRlQ2hpbGRyZW4pOgor
ICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OmZvY3VzZWROb2RlKToKKyAgICAgICAg
KFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjpyb290Tm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpB
WElzb2xhdGVkVHJlZTo6c2V0Um9vdE5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRl
ZFRyZWU6OnNldEZvY3VzZWROb2RlSUQpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRy
ZWU6OnVwZGF0ZUxvYWRpbmdQcm9ncmVzcyk6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVk
VHJlZTo6cmVtb3ZlTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkVHJlZTo6cmVt
b3ZlU3VidHJlZUZyb21Ob2RlTWFwKToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVl
OjphcHBseVBlbmRpbmdDaGFuZ2VzKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9BY2Nl
c3NpYmlsaXR5T2JqZWN0TWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9i
amVjdDo6c3Vicm9sZVBsYXRmb3JtU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFj
Y2Vzc2liaWxpdHlPYmplY3Q6OnJvbGVQbGF0Zm9ybURlc2NyaXB0aW9uIGNvbnN0KToKKyAgICAg
ICAgKiBhbmltYXRpb24vQW5pbWF0aW9uRWZmZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFu
aW1hdGlvbkVmZmVjdDo6Z2V0VGltaW5nIGNvbnN0KToKKyAgICAgICAgKiBhbmltYXRpb24vRG9j
dW1lbnRUaW1lbGluZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFRpbWVsaW5lOjph
bmltYXRlKToKKyAgICAgICAgKiBhbmltYXRpb24vRWZmZWN0VGltaW5nLmg6CisgICAgICAgICog
YW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OktleWZyYW1l
RWZmZWN0OjpDU1NQcm9wZXJ0eUlEVG9JRExBdHRyaWJ1dGVOYW1lKToKKyAgICAgICAgKFdlYkNv
cmU6OktleWZyYW1lRWZmZWN0OjpnZXRLZXlmcmFtZXMpOgorICAgICAgICAqIGJpbmRpbmdzL2pz
L0dDQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHQ0NvbnRyb2xsZXI6OkdDQ29u
dHJvbGxlcik6CisgICAgICAgICogYmluZGluZ3MvanMvSlNDdXN0b21FbGVtZW50SW50ZXJmYWNl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTQ3VzdG9tRWxlbWVudEludGVyZmFjZTo6dXBncmFk
ZUVsZW1lbnQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NQ29udmVydE51bWJlcnMuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkNvbnZlcnRlcjxJRExGbG9hdD46OmNvbnZlcnQpOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTRXhlY1N0YXRlSW5zdHJ1bWVudGF0aW9uLmg6CisgICAgICAgIChX
ZWJDb3JlOjpKU0V4ZWNTdGF0ZTo6aW5zdHJ1bWVudEZ1bmN0aW9uKToKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENv
bnRyb2xsZXI6OmNhbGxJbldvcmxkKToKKyAgICAgICAgKiBicmlkZ2Uvb2JqYy9vYmpjX3J1bnRp
bWUubW06CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpPYmpjQXJyYXk6OnNldFZhbHVlQXQgY29u
c3QpOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6T2JqY0FycmF5Ojp2YWx1ZUF0IGNvbnN0KToK
KyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9hcnJheS5jcHA6CisgICAgICAgIChKU0M6OlJ1bnRp
bWVBcnJheTo6cHV0KToKKyAgICAgICAgKEpTQzo6UnVudGltZUFycmF5OjpwdXRCeUluZGV4KToK
KyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9vYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpCaW5k
aW5nczo6dGhyb3dSdW50aW1lT2JqZWN0SW52YWxpZEFjY2Vzc0Vycm9yKToKKyAgICAgICAgKiBj
b250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uQWN0aW9ucy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6TW9kaWZ5SGVhZGVyc0FjdGlvbjo6TW9kaWZ5SGVh
ZGVySW5mbzo6cGFyc2UpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OlJl
ZGlyZWN0QWN0aW9uOjpwYXJzZSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9u
czo6UmVkaXJlY3RBY3Rpb246OlVSTFRyYW5zZm9ybUFjdGlvbjo6cGFyc2UpOgorICAgICAgICAo
V2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OlJlZGlyZWN0QWN0aW9uOjpVUkxUcmFuc2Zvcm1B
Y3Rpb246OlF1ZXJ5VHJhbnNmb3JtOjpwYXJzZSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50
RXh0ZW5zaW9uczo6UmVkaXJlY3RBY3Rpb246OlVSTFRyYW5zZm9ybUFjdGlvbjo6UXVlcnlUcmFu
c2Zvcm06OlF1ZXJ5S2V5VmFsdWU6OnBhcnNlKToKKyAgICAgICAgKiBjb250ZW50ZXh0ZW5zaW9u
cy9Db250ZW50RXh0ZW5zaW9uQ29tcGlsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVu
dEV4dGVuc2lvbnM6OmNvbXBpbGVSdWxlTGlzdCk6CisgICAgICAgICogY29udGVudGV4dGVuc2lv
bnMvQ29udGVudEV4dGVuc2lvblBhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50
RXh0ZW5zaW9uczo6Z2V0RG9tYWluTGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0
ZW5zaW9uczo6bG9hZFRyaWdnZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lv
bnM6OmxvYWRBY3Rpb24pOgorICAgICAgICAqIGNvbnRlbnRleHRlbnNpb25zL1NlcmlhbGl6ZWRO
RkEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OlNlcmlhbGl6ZWRO
RkE6OnNlcmlhbGl6ZSk6CisgICAgICAgICogY29udGVudGV4dGVuc2lvbnMvVVJMRmlsdGVyUGFy
c2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpVUkxGaWx0ZXJQ
YXJzZXI6OnN0YXR1c1N0cmluZyk6CisgICAgICAgICogY29udGVudGV4dGVuc2lvbnMvVVJMRmls
dGVyUGFyc2VyLmg6CisgICAgICAgICogY3J5cHRvL1N1YnRsZUNyeXB0by5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTdWJ0bGVDcnlwdG86OmFkZEF1dGhlbnRpY2F0ZWRFbmNyeXB0aW9uV2Fybmlu
Z0lmTmVjZXNzYXJ5KToKKyAgICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0
aG1BRVNfQ0JDLmg6CisgICAgICAgICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGht
QUVTX0NGQi5oOgorICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFF
U19DVFIuaDoKKyAgICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNf
R0NNLmg6CisgICAgICAgICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0tX
Lmg6CisgICAgICAgICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtRUNESC5oOgor
ICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUVDRFNBLmg6CisgICAg
ICAgICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtSEtERi5oOgorICAgICAgICAq
IGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUhNQUMuaDoKKyAgICAgICAgKiBjcnlw
dG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1QQktERjIuaDoKKyAgICAgICAgKiBjcnlwdG8v
YWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FFU19QS0NTMV92MV81Lmg6CisgICAgICAgICog
Y3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzUuaDoKKyAg
ICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FfT0FFUC5oOgorICAg
ICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQV9QU1MuaDoKKyAgICAg
ICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEExLmg6CisgICAgICAgICog
Y3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMjI0Lmg6CisgICAgICAgICogY3J5
cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMjU2Lmg6CisgICAgICAgICogY3J5cHRv
L2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMzg0Lmg6CisgICAgICAgICogY3J5cHRvL2Fs
Z29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBNTEyLmg6CisgICAgICAgICogY3J5cHRvL2tleXMv
Q3J5cHRvS2V5QUVTLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0tleUFFUzo6ZXhwb3J0
SndrIGNvbnN0KToKKyAgICAgICAgKiBjcnlwdG8va2V5cy9DcnlwdG9LZXlFQy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDcnlwdG9LZXlFQzo6ZXhwb3J0SndrIGNvbnN0KToKKyAgICAgICAgKiBj
cnlwdG8va2V5cy9DcnlwdG9LZXlITUFDLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0tl
eUhNQUM6OmV4cG9ydEp3ayBjb25zdCk6CisgICAgICAgICogY3J5cHRvL2tleXMvQ3J5cHRvS2V5
UlNBLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0tleVJTQTo6ZXhwb3J0SndrIGNvbnN0
KToKKyAgICAgICAgKiBjc3MvQ1NTRm9udEZhY2VTcmNWYWx1ZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDU1NGb250RmFjZVNyY1ZhbHVlOjppc1N1cHBvcnRlZEZvcm1hdCBjb25zdCk6CisgICAg
ICAgICogY3NzL0NTU0dyaWRUZW1wbGF0ZUFyZWFzVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6c3RyaW5nRm9yUG9zaXRpb24pOgorICAgICAgICAqIGNzcy9DU1NQcmltaXRpdmVWYWx1ZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6dW5pdFR5cGVTdHJpbmcp
OgorICAgICAgICAqIGNzcy9DU1NTdWJncmlkVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTU3ViZ3JpZFZhbHVlOjpjdXN0b21DU1NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvRE9N
Q1NTTmFtZXNwYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnZhbHVlV2l0aG91dEltcG9ydGFu
dCk6CisgICAgICAgICogY3NzL0RPTUNTU1JlZ2lzdGVyQ3VzdG9tUHJvcGVydHkuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RE9NQ1NTUmVnaXN0ZXJDdXN0b21Qcm9wZXJ0eTo6cmVnaXN0ZXJQcm9w
ZXJ0eSk6CisgICAgICAgICogY3NzL0RlcHJlY2F0ZWRDU1NPTVZhbHVlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkRlcHJlY2F0ZWRDU1NPTVZhbHVlOjpjc3NUZXh0IGNvbnN0KToKKyAgICAgICAg
KiBjc3MvRm9udEZhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udEZhY2U6OnVuaWNvZGVS
YW5nZSBjb25zdCk6CisgICAgICAgICogY3NzL01lZGlhUXVlcnlFeHByZXNzaW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlFeHByZXNzaW9uOjpzZXJpYWxpemUgY29uc3QpOgor
ICAgICAgICAqIGNzcy9TdHlsZVByb3BlcnRpZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5
bGVQcm9wZXJ0aWVzOjpnZXRMYXllcmVkU2hvcnRoYW5kVmFsdWUgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6TXV0YWJsZVN0eWxlUHJvcGVydGllczo6c2V0Q3VzdG9tUHJvcGVydHkpOgorICAg
ICAgICAqIGNzcy9tYWtldmFsdWVzLnBsOgorICAgICAgICAqIGNzcy9wYXJzZXIvTWVkaWFRdWVy
eVBhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5UGFyc2VyOjpza2lwVW50
aWxDb21tYSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5UGFyc2VyOjpwYXJzZUludGVy
bmFsKToKKyAgICAgICAgKiBjc3MvcGFyc2VyL1NpemVzQXR0cmlidXRlUGFyc2VyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNpemVzQXR0cmlidXRlUGFyc2VyOjptZWRpYUNvbmRpdGlvbk1hdGNo
ZXMpOgorICAgICAgICAqIGNzcy90eXBlZG9tL0NTU051bWVyaWNGYWN0b3J5Lmg6CisgICAgICAg
ICogY3NzL3R5cGVkb20vQ1NTTnVtZXJpY1ZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNT
U051bWVyaWNWYWx1ZTo6bXVsdGlwbHlJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NO
dW1lcmljVmFsdWU6OnRvKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU051bWVyaWNWYWx1ZTo6cGFy
c2UpOgorICAgICAgICAqIGNzcy90eXBlZG9tL0NTU1N0eWxlVmFsdWVGYWN0b3J5LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlVmFsdWVGYWN0b3J5OjpyZWlmeVZhbHVlKToKKyAgICAg
ICAgKiBlZGl0aW5nL2NvY29hL0hUTUxDb252ZXJ0ZXIubW06CisgICAgICAgIChIVE1MQ29udmVy
dGVyQ2FjaGVzOjpwcm9wZXJ0eVZhbHVlRm9yTm9kZSk6CisgICAgICAgIChIVE1MQ29udmVydGVy
OjpfcHJvY2Vzc0VsZW1lbnQpOgorICAgICAgICAqIGVkaXRpbmcvY29jb2EvV2ViQ29udGVudFJl
YWRlckNvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6YXR0YWNobWVudEZvckRhdGEpOgorICAg
ICAgICAqIGxvYWRlci9jb2NvYS9CdW5kbGVSZXNvdXJjZUxvYWRlci5tbToKKyAgICAgICAgKFdl
YkNvcmU6OkJ1bmRsZVJlc291cmNlTG9hZGVyOjpsb2FkUmVzb3VyY2VGcm9tQnVuZGxlKToKKyAg
ICAgICAgKiBsb2FkZXIvbWFjL0xvYWRlck5TVVJMRXh0cmFzLm1tOgorICAgICAgICAoc3VnZ2Vz
dGVkRmlsZW5hbWVXaXRoTUlNRVR5cGUpOgorICAgICAgICAqIHBhZ2UvY29jb2EvUmVzb3VyY2VV
c2FnZU92ZXJsYXlDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6Okhpc3RvcmljUmVzb3VyY2VV
c2FnZURhdGE6Okhpc3RvcmljUmVzb3VyY2VVc2FnZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6
ZHJhd0NwdUhpc3RvcnkpOgorICAgICAgICAoV2ViQ29yZTo6ZHJhd0dDSGlzdG9yeSk6CisgICAg
ICAgIChXZWJDb3JlOjpkcmF3TWVtSGlzdG9yeSk6CisgICAgICAgICogcGFnZS9jb2NvYS9TZXR0
aW5nc0Jhc2VDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzQmFzZTo6aW5pdGlh
bGl6ZURlZmF1bHRGb250RmFtaWxpZXMpOgorICAgICAgICAqIHBhZ2UvbWFjL1BhZ2VNYWMubW06
CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpwbGF0Zm9ybUluaXRpYWxpemUpOgorICAgICAgICAq
IHBsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QVhBUklB
Q29udGVudEdyb3VwVGV4dCk6CisgICAgICAgICogcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5o
OgorICAgICAgICAqIHBsYXRmb3JtL1Bhc3RlYm9hcmQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9Q
YXN0ZWJvYXJkQ3VzdG9tRGF0YS5oOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL2NvY29hL01l
ZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lv
bk1hbmFnZXJDb2NvYTo6dXBkYXRlTm93UGxheWluZ0luZm8pOgorICAgICAgICAqIHBsYXRmb3Jt
L2NvY29hL0tleUV2ZW50Q29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjprZXlJZGVudGlmaWVy
Rm9yQ2hhckNvZGUpOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL1Bhc3RlYm9hcmRDb2NvYS5t
bToKKyAgICAgICAgKFdlYkNvcmU6OmltYWdlVHlwZVRvRmFrZUZpbGVuYW1lKToKKyAgICAgICAg
KFdlYkNvcmU6OlBhc3RlYm9hcmQ6OnJlYWQpOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL1Bh
c3RlYm9hcmRDdXN0b21EYXRhQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJk
Q3VzdG9tRGF0YTo6Y29jb2FUeXBlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb3Vy
Q0MuaDoKKyAgICAgICAgKFdURjo6TG9nQXJndW1lbnQ8V2ViQ29yZTo6Rm91ckNDPjo6dG9TdHJp
bmcpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dEdM
QU5HTEUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6dmFs
aWRhdGVEZXB0aFN0ZW5jaWwpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9DRE1Qcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6
Q0RNUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6cGFyc2VLZXlTeXN0ZW0pOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9D
RE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6
OkNETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDOjpzZXRTdG9yYWdlRGlyZWN0b3J5
KToKKyAgICAgICAgKFdlYkNvcmU6OkNETUluc3RhbmNlU2Vzc2lvbkZhaXJQbGF5U3RyZWFtaW5n
QVZGT2JqQzo6dXBkYXRlTGljZW5zZSk6CisgICAgICAgIChXZWJDb3JlOjpDRE1JbnN0YW5jZVNl
c3Npb25GYWlyUGxheVN0cmVhbWluZ0FWRk9iakM6OmRpZFByb3ZpZGVSZXF1ZXN0cyk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbk1lZGlh
U291cmNlQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkNETVNlc3Npb25NZWRpYVNvdXJj
ZUFWRk9iakM6OnN0b3JhZ2VQYXRoIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMu
bW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9i
akM6OnN0cmVhbVNlc3Npb24pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29y
ZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmRpZFByb3ZpZGVDb250ZW50S2V5UmVxdWVz
dEluaXRpYWxpemF0aW9uRGF0YUZvclRyYWNrSUQpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9E
YXRhRGV0ZWN0b3JIaWdobGlnaHQubW06CisgICAgICAgIChXZWJDb3JlOjpEYXRhRGV0ZWN0b3JI
aWdobGlnaHQ6OmZhZGVJbik6CisgICAgICAgIChXZWJDb3JlOjpEYXRhRGV0ZWN0b3JIaWdobGln
aHQ6OmZhZGVPdXQpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tOgor
ICAgICAgICAqIHBsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbToKKyAgICAg
ICAgKFdlYkNvcmU6OmtleUlkZW50aWZpZXJGb3JLZXlFdmVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpQbGF0Zm9ybUtleWJvYXJkRXZlbnRCdWlsZGVyOjpQbGF0Zm9ybUtleWJvYXJkRXZlbnRCdWls
ZGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvUGxhdGZvcm1QYXN0ZWJvYXJkTWFjLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1QYXN0ZWJvYXJkOjp0eXBlc1NhZmVGb3JET01Ub1Jl
YWRBbmRXcml0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVBhc3RlYm9hcmQ6
OndyaXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVBhc3RlYm9hcmRJdGVtKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tYWMvU3RyaW5nVXRpbGl0aWVzLm1tOgorICAgICAgICAoV2ViQ29yZTo6
d2lsZGNhcmRSZWdleFBhdHRlcm5TdHJpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9UaHJl
YWRDaGVjay5tbToKKyAgICAgICAgKFdlYkNvcmVSZXBvcnRUaHJlYWRWaW9sYXRpb24pOgorICAg
ICAgICAqIHBsYXRmb3JtL21hYy9Vc2VyQWdlbnRNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpz
dGFuZGFyZFVzZXJBZ2VudFdpdGhBcHBsaWNhdGlvbk5hbWUpOgorICAgICAgICAqIHBsYXRmb3Jt
L25ldHdvcmsvUmVzb3VyY2VFcnJvckJhc2UuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdv
cmsvUmVzb3VyY2VFcnJvckJhc2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NvY29h
L1JhbmdlUmVzcG9uc2VHZW5lcmF0b3IubW06CisgICAgICAgIChXZWJDb3JlOjpzeW50aGVzaXpl
ZFJlc3BvbnNlRm9yUmFuZ2UpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5t
bToKKyAgICAgICAgKFdlYkNvcmU6Omljb25Gb3JBdHRhY2htZW50KToKKyAgICAgICAgKiByZW5k
ZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
b3BlcmF0b3I8PCk6CisgICAgICAgICogc3ZnL1NWR0ZpbHRlckVsZW1lbnQuaDoKKyAgICAgICAg
KiBzdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmg6CisgICAgICAgICog
c3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdNYXJrZXJF
bGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR01hc2tFbGVtZW50Lmg6CisgICAgICAgICogc3Zn
L1NWR1BhdGhTZWdJbXBsLmg6CisgICAgICAgICogc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVu
dC5oOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5VHJhaXRzLmg6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxib29sPjo6dG9TdHJpbmcpOgorICAgICAg
ICAqIHRlc3RpbmcvTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5ncy5oOgorICAgICAgICAoV2ViQ29y
ZTo6TW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5nczo6dW5ibG9ja1VSTEhvc3QpOgorICAgICAgICAq
IHhtbC9YUGF0aFZhbHVlLmg6CisgICAgICAgIChXZWJDb3JlOjpYUGF0aDo6VmFsdWU6OlZhbHVl
KToKKyAgICAgICAgKiB4bWwvWFNMU3R5bGVTaGVldC5oOgorCiAyMDIyLTAzLTI0ICBDaHJpcyBE
dW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgU3RyaW5nJ3MgZmluZCgpIC8gcmV2
ZXJzZUZpbmQoKSAvIHJlcGxhY2UoKSBzaG91bGQgdGFrZSBpbiBhIFN0cmluZ1ZpZXcgaW5zdGVh
ZCBvZiBhIFN0cmluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkdQVS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViR1BVL0NoYW5nZUxvZwppbmRleCAzZWRmMDMyN2VhM2Q5MGZhNWI1NThkZDU4OWNmYWMy
YWE1MGViNDFlLi4xYmY2MmY5MDc5YjQxNzcxN2VhYjBkNDJiOTgxYTYwOGRmMWMzZWM2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViR1BVL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViR1BVL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDIyLTAzLTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBh
cHBsZS5jb20+CisKKyAgICAgICAgU3RhcnQgcHJlcGFyaW5nIFdlYkNvcmUgZm9yIG1ha2luZyB0
aGUgU3RyaW5nKGNvbnN0IGNoYXIqKSBjb25zdHJ1Y3RvciBleHBsaWNpdAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4MzM2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3RhcnQgcHJlcGFyaW5nIFdlYkNv
cmUgZm9yIG1ha2luZyB0aGUgU3RyaW5nKGNvbnN0IGNoYXIqKSBjb25zdHJ1Y3RvciBleHBsaWNp
dC4KKyAgICAgICAgTWFraW5nIHRoaXMgY29uc3RydWN0b3IgZXhwbGljaXQgaGVscHMgY2F0Y2gg
YXQgY29tcGlsZSB0aW1lIGNhc2VzIHdoZXJlIHRoZSAiIl9zCisgICAgICAgIHByZWZpeCBpcyBt
aXNzaW5nIG9uIFN0cmluZyBsaXRlcmFscy4KKworICAgICAgICAqIFdHU0wvUGFyc2VyLmNwcDoK
KyAgICAgICAgKFdHU0w6OlBhcnNlcjxMZXhlcj46OnBhcnNlR2xvYmFsRGVjbCk6CisgICAgICAg
IChXR1NMOjpQYXJzZXI8TGV4ZXI+OjpwYXJzZUF0dHJpYnV0ZSk6CisgICAgICAgIChXR1NMOjpQ
YXJzZXI8TGV4ZXI+OjpwYXJzZVR5cGVEZWNsKToKKyAgICAgICAgKFdHU0w6OlBhcnNlcjxMZXhl
cj46OnBhcnNlU3RvcmFnZUNsYXNzKToKKyAgICAgICAgKFdHU0w6OlBhcnNlcjxMZXhlcj46OnBh
cnNlQWNjZXNzTW9kZSk6CisgICAgICAgIChXR1NMOjpQYXJzZXI8TGV4ZXI+OjpwYXJzZVN0YXRl
bWVudCk6CisgICAgICAgIChXR1NMOjpQYXJzZXI8TGV4ZXI+OjpwYXJzZVByaW1hcnlFeHByZXNz
aW9uKToKKyAgICAgICAgKFdHU0w6OlBhcnNlcjxMZXhlcj46OnBhcnNlQ29yZUxIU0V4cHJlc3Np
b24pOgorICAgICAgICAqIFdHU0wvVG9rZW4uY3BwOgorICAgICAgICAoV0dTTDo6dG9TdHJpbmcp
OgorICAgICAgICAqIFdlYkdQVS9BZGFwdGVyLm1tOgorICAgICAgICAoV2ViR1BVOjpBZGFwdGVy
OjpyZXF1ZXN0RGV2aWNlKToKKyAgICAgICAgKiBXZWJHUFUvQnVmZmVyLm1tOgorICAgICAgICAo
V2ViR1BVOjpCdWZmZXI6Om1hcEFzeW5jKToKKyAgICAgICAgKFdlYkdQVTo6QnVmZmVyOjp1bm1h
cCk6CisgICAgICAgICogV2ViR1BVL0NvbW1hbmRFbmNvZGVyLm1tOgorICAgICAgICAoV2ViR1BV
OjpDb21tYW5kRW5jb2Rlcjo6Y29weUJ1ZmZlclRvQnVmZmVyKToKKyAgICAgICAgKFdlYkdQVTo6
Q29tbWFuZEVuY29kZXI6OmNsZWFyQnVmZmVyKToKKyAgICAgICAgKFdlYkdQVTo6Q29tbWFuZEVu
Y29kZXI6OmZpbmlzaCk6CisgICAgICAgICogV2ViR1BVL0NvbXB1dGVQaXBlbGluZS5tbToKKyAg
ICAgICAgKFdlYkdQVTo6Y3JlYXRlQ29uc3RhbnRWYWx1ZXMpOgorICAgICAgICAoV2ViR1BVOjpE
ZXZpY2U6OmNyZWF0ZUNvbXB1dGVQaXBlbGluZSk6CisgICAgICAgICogV2ViR1BVL1F1ZXVlLm1t
OgorICAgICAgICAoV2ViR1BVOjpRdWV1ZTo6c3VibWl0KToKKyAgICAgICAgKiBXZWJHUFUvU2Ft
cGxlci5tbToKKyAgICAgICAgKFdlYkdQVTo6RGV2aWNlOjpjcmVhdGVTYW1wbGVyKToKKyAgICAg
ICAgKiBXZWJHUFUvU2hhZGVyTW9kdWxlLm1tOgorICAgICAgICAoV2ViR1BVOjplYXJseUNvbXBp
bGVTaGFkZXJNb2R1bGUpOgorCiAyMDIyLTAzLTIzICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhm
aWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYkdQVV0gRml4IHRoZSBub24tbWFjT1MgYnVp
bGQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKaW5kZXggYjk0YzNhZmE3MjQzY2YxY2FkZTgxMDVhNjZkZmQzN2Y5ZDE2ODdkMy4u
NWMzZGY0NjFjN2M3YjYxZDY4ZDM4MTYyMjdjNDA1NzNlMWU0ZmI0MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOCBAQAorMjAyMi0wMy0yNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFN0YXJ0IHByZXBhcmluZyBXZWJDb3JlIGZvciBtYWtpbmcgdGhlIFN0cmluZyhj
b25zdCBjaGFyKikgY29uc3RydWN0b3IgZXhwbGljaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODMzNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0YXJ0IHByZXBhcmluZyBXZWJDb3JlIGZvciBtYWtp
bmcgdGhlIFN0cmluZyhjb25zdCBjaGFyKikgY29uc3RydWN0b3IgZXhwbGljaXQuCisgICAgICAg
IE1ha2luZyB0aGlzIGNvbnN0cnVjdG9yIGV4cGxpY2l0IGhlbHBzIGNhdGNoIGF0IGNvbXBpbGUg
dGltZSBjYXNlcyB3aGVyZSB0aGUgIiJfcworICAgICAgICBwcmVmaXggaXMgbWlzc2luZyBvbiBT
dHJpbmcgbGl0ZXJhbHMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwu
bW06CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZXRQcm9taXNlZERhdGFGb3JJbWFn
ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpyZXF1ZXN0RE9NUGFzdGVBY2Nlc3Mp
OgorCiAyMDIyLTAzLTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAg
ICAgU3RyaW5nJ3MgZmluZCgpIC8gcmV2ZXJzZUZpbmQoKSAvIHJlcGxhY2UoKSBzaG91bGQgdGFr
ZSBpbiBhIFN0cmluZ1ZpZXcgaW5zdGVhZCBvZiBhIFN0cmluZwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hh
bmdlTG9nCmluZGV4IGE0YzgxYjUyNDU3ZDk4NzVkMjgwZjc1MGQyNTczNWVlZTY3MGM2OGIuLjM4
MmQ0ZWMyYjM0YmQ2YzdjNjI0NDI3ZmU4ZjM0NTM3YTUwN2UxYzMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMi0wMy0yNCAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFN0YXJ0IHByZXBhcmluZyBXZWJDb3JlIGZvciBt
YWtpbmcgdGhlIFN0cmluZyhjb25zdCBjaGFyKikgY29uc3RydWN0b3IgZXhwbGljaXQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODMzNgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0YXJ0IHByZXBhcmlu
ZyBXZWJDb3JlIGZvciBtYWtpbmcgdGhlIFN0cmluZyhjb25zdCBjaGFyKikgY29uc3RydWN0b3Ig
ZXhwbGljaXQuCisgICAgICAgIE1ha2luZyB0aGlzIGNvbnN0cnVjdG9yIGV4cGxpY2l0IGhlbHBz
IGNhdGNoIGF0IGNvbXBpbGUgdGltZSBjYXNlcyB3aGVyZSB0aGUgIiJfcworICAgICAgICBwcmVm
aXggaXMgbWlzc2luZyBvbiBTdHJpbmcgbGl0ZXJhbHMuCisKKyAgICAgICAgKiBNaXNjL1dlYk5T
UGFzdGVib2FyZEV4dHJhcy5tbToKKyAgICAgICAgKC1bTlNQYXN0ZWJvYXJkIF93ZWJfZGVjbGFy
ZUFuZFdyaXRlRHJhZ0ltYWdlRm9yRWxlbWVudDpVUkw6dGl0bGU6YXJjaGl2ZTpzb3VyY2U6XSk6
CisKIDIwMjItMDMtMTggIEpvbmF0aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBwbGUuY29tPgogCiAg
ICAgICAgIFtpT1MgMTUuNF0gRml4IHVudXNlZCB2YXJpYWJsZXMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWYWx1ZS5tbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvSlNWYWx1ZS5tbQppbmRleCBkM2FkMDgwZTFkZGY0ZmU2ZWZiYTkxMzViYTI2ODc2Yzc3ZGNi
YzI2Li5mMTJhMmM0OTUzZjAwMzJkZmI0YjcyZjY4ZmY4MGZlZGRiNjkwMzU0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmFsdWUubW0KKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9KU1ZhbHVlLm1tCkBAIC0xMTc5LDcgKzExNzksNyBAQCBzdGF0aWMgU3Ry
dWN0SGFuZGxlcnMqIGNyZWF0ZVN0cnVjdEhhbmRsZXJNYXAoKQogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICAvLyBUcnkgdG8gZmluZCBhIG1hdGNoaW5nIHZhbHVlV2l0aDxGb28+OmNvbnRl
eHQ6IG1ldGhvZC4KICAgICAgICAgYXV0byB0eXBlID0gYWRvcHRTeXN0ZW08Y2hhcltdPihtZXRo
b2RfY29weVJldHVyblR5cGUobWV0aG9kKSk7Ci0gICAgICAgIFN0cnVjdEhhbmRsZXJzOjppdGVy
YXRvciBpdGVyID0gc3RydWN0SGFuZGxlcnMtPmZpbmQodHlwZS5nZXQoKSk7CisgICAgICAgIFN0
cnVjdEhhbmRsZXJzOjppdGVyYXRvciBpdGVyID0gc3RydWN0SGFuZGxlcnMtPmZpbmQoU3RyaW5n
IHsgdHlwZS5nZXQoKSB9KTsKICAgICAgICAgaWYgKGl0ZXIgPT0gc3RydWN0SGFuZGxlcnMtPmVu
ZCgpKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBTdHJ1Y3RUYWdIYW5kbGVyJiBoYW5k
bGVyID0gaXRlci0+dmFsdWU7CkBAIC0xMjE3LDcgKzEyMTcsNyBAQCBzdGF0aWMgU3RydWN0VGFn
SGFuZGxlciogaGFuZGVyRm9yU3RydWN0VGFnKGNvbnN0IGNoYXIqIGVuY29kZWRUeXBlKQogCiAg
ICAgc3RhdGljIFN0cnVjdEhhbmRsZXJzKiBzdHJ1Y3RIYW5kbGVycyA9IGNyZWF0ZVN0cnVjdEhh
bmRsZXJNYXAoKTsKIAotICAgIFN0cnVjdEhhbmRsZXJzOjppdGVyYXRvciBpdGVyID0gc3RydWN0
SGFuZGxlcnMtPmZpbmQoZW5jb2RlZFR5cGUpOworICAgIFN0cnVjdEhhbmRsZXJzOjppdGVyYXRv
ciBpdGVyID0gc3RydWN0SGFuZGxlcnMtPmZpbmQoU3RyaW5nIHsgZW5jb2RlZFR5cGUgfSk7CiAg
ICAgaWYgKGl0ZXIgPT0gc3RydWN0SGFuZGxlcnMtPmVuZCgpKQogICAgICAgICByZXR1cm4gMDsK
ICAgICByZXR1cm4gJml0ZXItPnZhbHVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS9KU1dyYXBwZXJNYXAubW0gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTV3Jh
cHBlck1hcC5tbQppbmRleCA5NmU0NDc4ODcwY2Q4MWE1ODk5N2QwMmRhNmZhNGZiYTM0NmFmMTk1
Li5mODIxZGY4ZTNlYmVkNTdmNTQwY2QyZjAxZDY0ZWM5NmRjZmE4NmNkIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTV3JhcHBlck1hcC5tbQorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL0pTV3JhcHBlck1hcC5tbQpAQCAtNDUxLDcgKzQ1MSw3IEBAIHN0YXRp
YyBKU0M6OkpTT2JqZWN0KiBhbGxvY2F0ZUNvbnN0cnVjdG9yRm9yQ3VzdG9tQ2xhc3MoSlNDb250
ZXh0ICpjb250ZXh0LCBjb25zCiAgICAgICAgIGZvckVhY2hNZXRob2RJbkNsYXNzKGN1cnJlbnRD
bGFzcywgXihNZXRob2QgbWV0aG9kKSB7CiAgICAgICAgICAgICBTRUwgc2VsZWN0b3IgPSBtZXRo
b2RfZ2V0TmFtZShtZXRob2QpOwogICAgICAgICAgICAgY29uc3QgY2hhciogbmFtZSA9IHNlbF9n
ZXROYW1lKHNlbGVjdG9yKTsKLSAgICAgICAgICAgIGF1dG8gaXRlciA9IGluaXRUYWJsZS5maW5k
KG5hbWUpOworICAgICAgICAgICAgYXV0byBpdGVyID0gaW5pdFRhYmxlLmZpbmQoU3RyaW5nIHsg
bmFtZSB9KTsKIAogICAgICAgICAgICAgaWYgKGl0ZXIgPT0gaW5pdFRhYmxlLmVuZCgpKQogICAg
ICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckF1ZGl0QWdlbnQuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQXVkaXRBZ2VudC5jcHAKaW5kZXggMzBh
Y2FmMzM0NTgwNTM3NGQ4MWRiYjBiMWM1ZDQ5ZmY3YWYwYTZlMS4uYzI4NzczNmQ3MWU3ZWI5ZTg4
NTU4ZmZjZDBiNzA0NTI1YmZmY2Y5NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQXVkaXRBZ2VudC5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQXVkaXRBZ2VudC5jcHAKQEAg
LTkyLDcgKzkyLDcgQEAgUHJvdG9jb2w6OkVycm9yU3RyaW5nT3I8c3RkOjp0dXBsZTxSZWY8UHJv
dG9jb2w6OlJ1bnRpbWU6OlJlbW90ZU9iamVjdD4sIHN0ZDo6b3AKICAgICBpZiAoaW5qZWN0ZWRT
Y3JpcHQuaGFzTm9WYWx1ZSgpKQogICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoZXJyb3JT
dHJpbmcpOwogCi0gICAgYXV0byBmdW5jdGlvblN0cmluZyA9IG1ha2VTdHJpbmcoIihmdW5jdGlv
bihXZWJJbnNwZWN0b3JBdWRpdCkgeyBcInVzZSBzdHJpY3RcIjsgcmV0dXJuIGV2YWwoYCgiLCBT
dHJpbmcgeyB0ZXN0IH0ucmVwbGFjZSgnYCcsICJcXGAiKSwgIilgKShXZWJJbnNwZWN0b3JBdWRp
dCk7IH0pIik7CisgICAgYXV0byBmdW5jdGlvblN0cmluZyA9IG1ha2VTdHJpbmcoIihmdW5jdGlv
bihXZWJJbnNwZWN0b3JBdWRpdCkgeyBcInVzZSBzdHJpY3RcIjsgcmV0dXJuIGV2YWwoYCgiLCBT
dHJpbmcgeyB0ZXN0IH0ucmVwbGFjZSgnYCcsICJcXGAiX3MpLCAiKWApKFdlYkluc3BlY3RvckF1
ZGl0KTsgfSkiKTsKIAogICAgIEluamVjdGVkU2NyaXB0OjpFeGVjdXRlT3B0aW9ucyBvcHRpb25z
OwogICAgIG9wdGlvbnMub2JqZWN0R3JvdXAgPSAiYXVkaXQiX3M7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L1RleHRTdHJlYW0uaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dFN0
cmVhbS5oCmluZGV4IGM4NWRhNjY0MWUxMzE3M2M5NzExNTdiYTRhOTgzYjQ0ZjU0NjViYTUuLmRm
NzEyZWQyMDVmNDc5Nzk3YmI2ZDlmNTA2N2Q2MTQzMTFjNjUwYTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvd3RmL3RleHQvVGV4dFN0cmVhbS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4
dFN0cmVhbS5oCkBAIC0xMDAsNiArMTAwLDE1IEBAIHB1YmxpYzoKICAgICAgICAgdHMuZW5kR3Jv
dXAoKTsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgIHZvaWQgZHVtcFBy
b3BlcnR5KGNvbnN0IGNoYXIqIG5hbWUsIGNvbnN0IFQmIHZhbHVlKQorICAgIHsKKyAgICAgICAg
VGV4dFN0cmVhbSYgdHMgPSAqdGhpczsKKyAgICAgICAgdHMuc3RhcnRHcm91cCgpOworICAgICAg
ICB0cyA8PCBuYW1lIDw8ICIgIiA8PCB2YWx1ZTsKKyAgICAgICAgdHMuZW5kR3JvdXAoKTsKKyAg
ICB9CisKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5nIHJlbGVhc2UoKTsKICAgICAKICAg
ICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBzdGFydEdyb3VwKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5LWFtcy11aS9BcHBsZVBheUFNU1VJUGF5bWVudEhh
bmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS1hbXMtdWkvQXBwbGVQ
YXlBTVNVSVBheW1lbnRIYW5kbGVyLmNwcAppbmRleCBmNGRhZjhkMThhZWM0OTk3NzVkNWMwM2Mw
OGVhYTA0MzI0MTE0M2ZiLi40YTMyMjVjZTljYTQwNmMwMGZlMTY4NDYwYTVkNmQwMzAwNDI4NTU5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5LWFtcy11aS9BcHBs
ZVBheUFNU1VJUGF5bWVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
YXBwbGVwYXktYW1zLXVpL0FwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxlci5jcHAKQEAgLTM5LDcg
KzM5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogc3RhdGljIEV4Y2VwdGlvbk9yPEFwcGxlUGF5
QU1TVUlSZXF1ZXN0PiBjb252ZXJ0QW5kVmFsaWRhdGVBcHBsZVBheUFNU1VJUmVxdWVzdChEb2N1
bWVudCYgZG9jdW1lbnQsIEpTQzo6SlNWYWx1ZSBkYXRhKQogewogICAgIGlmIChkYXRhLmlzRW1w
dHkoKSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIk1pc3NpbmcgcGF5
bWVudCBtZXRob2QgZGF0YS4iIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJy
b3IsICJNaXNzaW5nIHBheW1lbnQgbWV0aG9kIGRhdGEuIl9zIH07CiAKICAgICBhdXRvIHRocm93
U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKGRvY3VtZW50LnZtKCkpOwogICAgIGF1dG8gYXBw
bGVQYXlBTVNVSVJlcXVlc3QgPSBjb252ZXJ0RGljdGlvbmFyeTxBcHBsZVBheUFNU1VJUmVxdWVz
dD4oKmRvY3VtZW50Lmdsb2JhbE9iamVjdCgpLCBkYXRhKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlDb250YWN0RmllbGQuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUNvbnRhY3RGaWVsZC5jcHAKaW5kZXgg
ZGQzZGNiNGVjN2RkNGE2YWYzOTBiZWQ2YzFhN2YyYTE0MjMxMzUyNC4uMzcxYjllZDQyMzI4N2Q5
NzczNTU5YTVjZjhhNTFiNjc5N2VmM2FjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9hcHBsZXBheS9BcHBsZVBheUNvbnRhY3RGaWVsZC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUNvbnRhY3RGaWVsZC5jcHAKQEAgLTQ0LDcgKzQ0
LDcgQEAgRXhjZXB0aW9uT3I8QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OkNvbnRhY3RG
aWVsZHM+IGNvbnZlcnRBbmRWYWxpZGF0ZSh1bnMKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICBjYXNlIEFwcGxlUGF5Q29udGFjdEZpZWxkOjpQaG9uZXRpY05hbWU6CiAgICAgICAgICAgICBp
ZiAodmVyc2lvbiA8IDMpCi0gICAgICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVF
cnJvciwgIlwicGhvbmV0aWNOYW1lXCIgaXMgbm90IGEgdmFsaWQgY29udGFjdCBmaWVsZC4iIH07
CisgICAgICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIlwicGhvbmV0
aWNOYW1lXCIgaXMgbm90IGEgdmFsaWQgY29udGFjdCBmaWVsZC4iX3MgfTsKICAgICAgICAgICAg
IHJlc3VsdC5waG9uZXRpY05hbWUgPSB0cnVlOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IGNhc2UgQXBwbGVQYXlDb250YWN0RmllbGQ6OlBob25lOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheU1lcmNoYW50Q2FwYWJpbGl0eS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5TWVyY2hhbnRDYXBhYmlsaXR5
LmNwcAppbmRleCBhNjJhMmM3M2VhMzA2NTUxYmVlODVkYzk1NjE3YzExNjI1NjUzYmMyLi5mNjg0
YmM5YWM2MWQ0OTlhNTVjYTRlMTgxZjU3YjQ2OTE3MjU3OWExIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5TWVyY2hhbnRDYXBhYmlsaXR5LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5TWVyY2hhbnRDYXBh
YmlsaXR5LmNwcApAQCAtMzMsNyArMzMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBFeGNlcHRp
b25PcjxBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6TWVyY2hhbnRDYXBhYmlsaXRpZXM+
IGNvbnZlcnRBbmRWYWxpZGF0ZShjb25zdCBWZWN0b3I8QXBwbGVQYXlNZXJjaGFudENhcGFiaWxp
dHk+JiBtZXJjaGFudENhcGFiaWxpdGllcykKIHsKICAgICBpZiAobWVyY2hhbnRDYXBhYmlsaXRp
ZXMuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiQXQg
bGVhc3Qgb25lIG1lcmNoYW50IGNhcGFiaWxpdHkgbXVzdCBiZSBwcm92aWRlZC4iIH07CisgICAg
ICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJBdCBsZWFzdCBvbmUgbWVyY2hhbnQg
Y2FwYWJpbGl0eSBtdXN0IGJlIHByb3ZpZGVkLiJfcyB9OwogCiAgICAgQXBwbGVQYXlTZXNzaW9u
UGF5bWVudFJlcXVlc3Q6Ok1lcmNoYW50Q2FwYWJpbGl0aWVzIHJlc3VsdDsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVJlcXVlc3RCYXNlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlSZXF1ZXN0QmFzZS5j
cHAKaW5kZXggMjQ1ODZkNWRkNDc5YzkwOTNkNDlmOTYxMDExOTFjYWE4ZTg1MDk3ZS4uOGQzNjI3
YTZmNmEyN2ZiOGM4MmM5M2FkNTQ2ZDZhYWYwNjliZjEzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVJlcXVlc3RCYXNlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5UmVxdWVzdEJhc2UuY3BwCkBAIC03
Myw3ICs3Myw3IEBAIEV4Y2VwdGlvbk9yPEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0PiBj
b252ZXJ0QW5kVmFsaWRhdGUoRG9jdW1lbnQmIGRvY3VtZW50CiAgICAgcmVzdWx0LnNldE1lcmNo
YW50Q2FwYWJpbGl0aWVzKG1lcmNoYW50Q2FwYWJpbGl0aWVzLnJlbGVhc2VSZXR1cm5WYWx1ZSgp
KTsKIAogICAgIGlmIChyZXF1aXJlc1N1cHBvcnRlZE5ldHdvcmtzKHZlcnNpb24sIHJlcXVlc3Qp
ICYmIHJlcXVlc3Quc3VwcG9ydGVkTmV0d29ya3MuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4g
RXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiQXQgbGVhc3Qgb25lIHN1cHBvcnRlZCBuZXR3b3JrIG11
c3QgYmUgcHJvdmlkZWQuIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9y
LCAiQXQgbGVhc3Qgb25lIHN1cHBvcnRlZCBuZXR3b3JrIG11c3QgYmUgcHJvdmlkZWQuIl9zIH07
CiAKICAgICBhdXRvIHN1cHBvcnRlZE5ldHdvcmtzID0gY29udmVydEFuZFZhbGlkYXRlKGRvY3Vt
ZW50LCB2ZXJzaW9uLCByZXF1ZXN0LnN1cHBvcnRlZE5ldHdvcmtzLCBwYXltZW50Q29vcmRpbmF0
b3IpOwogICAgIGlmIChzdXBwb3J0ZWROZXR3b3Jrcy5oYXNFeGNlcHRpb24oKSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTZXNzaW9uLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTZXNzaW9uLmNwcAppbmRl
eCA2Y2JmY2YwNzk3NTAxYTk5NjI5ZmNjNjkzNmI2ZjA1MGYwY2ZjODlhLi41OWUzMDBiZWI3MDky
NmVmOTgzYWVjYmE2ZDRhZTViNmU3YjA2NWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNlc3Npb24uY3BwCkBAIC0zMTAsMTAgKzMxMCwxMCBA
QCBFeGNlcHRpb25PcjxSZWY8QXBwbGVQYXlTZXNzaW9uPj4gQXBwbGVQYXlTZXNzaW9uOjpjcmVh
dGUoRG9jdW1lbnQmIGRvY3VtZW50LCB1bgogICAgICAgICByZXR1cm4gY2FuQ2FsbC5yZWxlYXNl
RXhjZXB0aW9uKCk7CiAKICAgICBpZiAoIVVzZXJHZXN0dXJlSW5kaWNhdG9yOjpwcm9jZXNzaW5n
VXNlckdlc3R1cmUoKSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NF
cnJvciwgIk11c3QgY3JlYXRlIGEgbmV3IEFwcGxlUGF5U2Vzc2lvbiBmcm9tIGEgdXNlciBnZXN0
dXJlIGhhbmRsZXIuIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vz
c0Vycm9yLCAiTXVzdCBjcmVhdGUgYSBuZXcgQXBwbGVQYXlTZXNzaW9uIGZyb20gYSB1c2VyIGdl
c3R1cmUgaGFuZGxlci4iX3MgfTsKIAogICAgIGlmICghZG9jdW1lbnQucGFnZSgpKQotICAgICAg
ICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiRnJhbWUgaXMgZGV0YWNo
ZWQiIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJG
cmFtZSBpcyBkZXRhY2hlZCJfcyB9OwogCiAgICAgYXV0byBjb252ZXJ0ZWRQYXltZW50UmVxdWVz
dCA9IGNvbnZlcnRBbmRWYWxpZGF0ZShkb2N1bWVudCwgdmVyc2lvbiwgV1RGTW92ZShwYXltZW50
UmVxdWVzdCksIGRvY3VtZW50LnBhZ2UoKS0+cGF5bWVudENvb3JkaW5hdG9yKCkpOwogICAgIGlm
IChjb252ZXJ0ZWRQYXltZW50UmVxdWVzdC5oYXNFeGNlcHRpb24oKSkKQEAgLTQxMiw3ICs0MTIs
NyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBBcHBsZVBheVNlc3Npb246Om9wZW5QYXltZW50U2V0dXAo
RG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdAogICAgICAgICByZXR1cm4gY2FuQ2FsbC5yZWxl
YXNlRXhjZXB0aW9uKCk7CiAKICAgICBpZiAoIVVzZXJHZXN0dXJlSW5kaWNhdG9yOjpwcm9jZXNz
aW5nVXNlckdlc3R1cmUoKSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nl
c3NFcnJvciwgIk11c3QgY2FsbCBBcHBsZVBheVNlc3Npb24ub3BlblBheW1lbnRTZXR1cCBmcm9t
IGEgdXNlciBnZXN0dXJlIGhhbmRsZXIuIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
SW52YWxpZEFjY2Vzc0Vycm9yLCAiTXVzdCBjYWxsIEFwcGxlUGF5U2Vzc2lvbi5vcGVuUGF5bWVu
dFNldHVwIGZyb20gYSB1c2VyIGdlc3R1cmUgaGFuZGxlci4iX3MgfTsKIAogICAgIGF1dG8qIHBh
Z2UgPSBkb2N1bWVudC5wYWdlKCk7CiAgICAgaWYgKCFwYWdlKQpAQCAtNDMxLDEzICs0MzEsMTMg
QEAgRXhjZXB0aW9uT3I8dm9pZD4gQXBwbGVQYXlTZXNzaW9uOjpvcGVuUGF5bWVudFNldHVwKERv
Y3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3QKIEV4Y2VwdGlvbk9yPHZvaWQ+IEFwcGxlUGF5U2Vz
c2lvbjo6YmVnaW4oRG9jdW1lbnQmIGRvY3VtZW50KQogewogICAgIGlmICghY2FuQmVnaW4oKSkK
LSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwgIlBheW1lbnQg
c2Vzc2lvbiBpcyBhbHJlYWR5IGFjdGl2ZS4iIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBJbnZhbGlkQWNjZXNzRXJyb3IsICJQYXltZW50IHNlc3Npb24gaXMgYWxyZWFkeSBhY3RpdmUu
Il9zIH07CiAKICAgICBpZiAocGF5bWVudENvb3JkaW5hdG9yKCkuaGFzQWN0aXZlU2Vzc2lvbigp
KQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiUGFnZSBh
bHJlYWR5IGhhcyBhbiBhY3RpdmUgcGF5bWVudCBzZXNzaW9uLiIgfTsKKyAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwgIlBhZ2UgYWxyZWFkeSBoYXMgYW4gYWN0
aXZlIHBheW1lbnQgc2Vzc2lvbi4iX3MgfTsKIAogICAgIGlmICghcGF5bWVudENvb3JkaW5hdG9y
KCkuYmVnaW5QYXltZW50U2Vzc2lvbihkb2N1bWVudCwgKnRoaXMsIG1fcGF5bWVudFJlcXVlc3Qp
KQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiVGhlcmUg
aXMgYWxyZWFkeSBoYXMgYW4gYWN0aXZlIHBheW1lbnQgc2Vzc2lvbi4iIH07CisgICAgICAgIHJl
dHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJUaGVyZSBpcyBhbHJlYWR5IGhh
cyBhbiBhY3RpdmUgcGF5bWVudCBzZXNzaW9uLiJfcyB9OwogCiAgICAgbV9zdGF0ZSA9IFN0YXRl
OjpBY3RpdmU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkv
QXBwbGVQYXlTZXR1cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxl
UGF5U2V0dXAuY3BwCmluZGV4IGU4YjEzNjE2OTBiMjBlYWY3ZTFjNjE2YTc3MmE4ZjYxM2RlZmYz
NDguLjg5ZTRhNDU1ZjE4NWY4MTkwYzdlYzBkNzYxNzg0ZDU5NDZiYzYxNjMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTZXR1cC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNldHVwLmNwcApAQCAtOTEs
NyArOTEsNyBAQCB2b2lkIEFwcGxlUGF5U2V0dXA6OmJlZ2luKERvY3VtZW50JiBkb2N1bWVudCwg
VmVjdG9yPFJlZlB0cjxBcHBsZVBheVNldHVwRmVhdHVyZQogICAgIH0KIAogICAgIGlmICghVXNl
ckdlc3R1cmVJbmRpY2F0b3I6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpKSB7Ci0gICAgICAgIHBy
b21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwgIk11c3QgY2FsbCBB
cHBsZVBheVNldHVwLmJlZ2luIGZyb20gYSB1c2VyIGdlc3R1cmUgaGFuZGxlci4iIH0pOworICAg
ICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJNdXN0
IGNhbGwgQXBwbGVQYXlTZXR1cC5iZWdpbiBmcm9tIGEgdXNlciBnZXN0dXJlIGhhbmRsZXIuIl9z
IH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRJbnN0YWxsbWVudENvbmZpZ3VyYXRpb24ubW0gYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRJbnN0YWxsbWVudENvbmZpZ3Vy
YXRpb24ubW0KaW5kZXggNjRkMWRiYjIxMmU3MDJjMDJiMmI4MmNkMWU2OGU4MGU3NzNmMDg3MC4u
OTljNzRkNjg5MTY0OTA3MjI1MGRlYzQ5Yjk2ZDAwY2NhNmM2ZTE3ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50SW5zdGFsbG1lbnRDb25maWd1cmF0
aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvUGF5bWVudEluc3Rh
bGxtZW50Q29uZmlndXJhdGlvbi5tbQpAQCAtMjA3LDcgKzIwNyw3IEBAIEV4Y2VwdGlvbk9yPFBh
eW1lbnRJbnN0YWxsbWVudENvbmZpZ3VyYXRpb24+IFBheW1lbnRJbnN0YWxsbWVudENvbmZpZ3Vy
YXRpb246OmNyCiAgICAgICAgIE5TRGF0YSAqYXBwbGljYXRpb25NZXRhZGF0YSA9IFtjb25maWd1
cmF0aW9uLmFwcGxpY2F0aW9uTWV0YWRhdGEgZGF0YVVzaW5nRW5jb2Rpbmc6TlNVVEY4U3RyaW5n
RW5jb2RpbmddOwogICAgICAgICBhcHBsaWNhdGlvbk1ldGFkYXRhRGljdGlvbmFyeSA9IGR5bmFt
aWNfb2JqY19jYXN0PE5TRGljdGlvbmFyeT4oW05TSlNPTlNlcmlhbGl6YXRpb24gSlNPTk9iamVj
dFdpdGhEYXRhOmFwcGxpY2F0aW9uTWV0YWRhdGEgb3B0aW9uczowIGVycm9yOm5pbF0pOwogICAg
ICAgICBpZiAoIWFwcGxpY2F0aW9uTWV0YWRhdGFEaWN0aW9uYXJ5KQotICAgICAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgImFwcGxpY2F0aW9uTWV0YWRhdGEgbXVzdCBiZSBh
IEpTT04gb2JqZWN0IiB9OworICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJv
ciwgImFwcGxpY2F0aW9uTWV0YWRhdGEgbXVzdCBiZSBhIEpTT04gb2JqZWN0Il9zIH07CiAgICAg
fQogCiAgICAgcmV0dXJuIFBheW1lbnRJbnN0YWxsbWVudENvbmZpZ3VyYXRpb24oY29uZmlndXJh
dGlvbiwgYXBwbGljYXRpb25NZXRhZGF0YURpY3Rpb25hcnkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50UmVxdWVzdFZhbGlkYXRvci5tbSBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvUGF5bWVudFJlcXVlc3RWYWxpZGF0b3IubW0K
aW5kZXggZjEwYzU1ZDQ5NGExMWMzMGMwYTEwNWUxYmZiNjE0MzkwODY2OGM0MC4uYzUyZmQ5MmQw
OGQzZGM0ZTMzYWY3ZTBmZGJiZTNlMGM4ZThjZWNhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50UmVxdWVzdFZhbGlkYXRvci5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRSZXF1ZXN0VmFsaWRhdG9yLm1tCkBA
IC05NSwxOCArOTUsMTggQEAgRXhjZXB0aW9uT3I8dm9pZD4gUGF5bWVudFJlcXVlc3RWYWxpZGF0
b3I6OnZhbGlkYXRlKGNvbnN0IEFwcGxlUGF5U2Vzc2lvblBheW1lbnQKIEV4Y2VwdGlvbk9yPHZv
aWQ+IFBheW1lbnRSZXF1ZXN0VmFsaWRhdG9yOjp2YWxpZGF0ZVRvdGFsKGNvbnN0IEFwcGxlUGF5
TGluZUl0ZW0mIHRvdGFsKQogewogICAgIGlmICghdG90YWwubGFiZWwpCi0gICAgICAgIHJldHVy
biBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJNaXNzaW5nIHRvdGFsIGxhYmVsLiIgfTsKKyAgICAg
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIk1pc3NpbmcgdG90YWwgbGFiZWwuIl9z
IH07CiAKICAgICBpZiAoIXRvdGFsLmFtb3VudCkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7
IFR5cGVFcnJvciwgIk1pc3NpbmcgdG90YWwgYW1vdW50LiIgfTsKKyAgICAgICAgcmV0dXJuIEV4
Y2VwdGlvbiB7IFR5cGVFcnJvciwgIk1pc3NpbmcgdG90YWwgYW1vdW50LiJfcyB9OwogCiAgICAg
ZG91YmxlIGFtb3VudCA9IFtOU0RlY2ltYWxOdW1iZXIgZGVjaW1hbE51bWJlcldpdGhTdHJpbmc6
dG90YWwuYW1vdW50IGxvY2FsZTpAeyBOU0xvY2FsZURlY2ltYWxTZXBhcmF0b3IgOiBAIi4iIH1d
LmRvdWJsZVZhbHVlOwogCiAgICAgaWYgKGFtb3VudCA8IDApCi0gICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBUeXBlRXJyb3IsICJUb3RhbCBhbW91bnQgbXVzdCBub3QgYmUgbmVnYXRpdmUuIiB9
OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiVG90YWwgYW1vdW50IG11
c3Qgbm90IGJlIG5lZ2F0aXZlLiJfcyB9OwogCiAgICAgaWYgKGFtb3VudCA+IDEwMDAwMDAwMCkK
LSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIlRvdGFsIGFtb3VudCBpcyB0
b28gYmlnLiIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIlRvdGFs
IGFtb3VudCBpcyB0b28gYmlnLiJfcyB9OwogCiAgICAgcmV0dXJuIHsgfTsKIH0KQEAgLTExNCw3
ICsxMTQsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBQYXltZW50UmVxdWVzdFZhbGlkYXRvcjo6dmFs
aWRhdGVUb3RhbChjb25zdCBBcHBsZVBheUxpbmVJdGVtJgogc3RhdGljIEV4Y2VwdGlvbk9yPHZv
aWQ+IHZhbGlkYXRlQ291bnRyeUNvZGUoY29uc3QgU3RyaW5nJiBjb3VudHJ5Q29kZSkKIHsKICAg
ICBpZiAoIWNvdW50cnlDb2RlKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9y
LCAiTWlzc2luZyBjb3VudHJ5IGNvZGUuIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
VHlwZUVycm9yLCAiTWlzc2luZyBjb3VudHJ5IGNvZGUuIl9zIH07CiAKICAgICBmb3IgKGF1dG8g
KmNvdW50cnlDb2RlUHRyID0gdWxvY19nZXRJU09Db3VudHJpZXMoKTsgKmNvdW50cnlDb2RlUHRy
OyArK2NvdW50cnlDb2RlUHRyKSB7CiAgICAgICAgIGlmIChjb3VudHJ5Q29kZSA9PSAqY291bnRy
eUNvZGVQdHIpCkBAIC0xMjcsNyArMTI3LDcgQEAgc3RhdGljIEV4Y2VwdGlvbk9yPHZvaWQ+IHZh
bGlkYXRlQ291bnRyeUNvZGUoY29uc3QgU3RyaW5nJiBjb3VudHJ5Q29kZSkKIHN0YXRpYyBFeGNl
cHRpb25Pcjx2b2lkPiB2YWxpZGF0ZUN1cnJlbmN5Q29kZShjb25zdCBTdHJpbmcmIGN1cnJlbmN5
Q29kZSkKIHsKICAgICBpZiAoIWN1cnJlbmN5Q29kZSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlv
biB7IFR5cGVFcnJvciwgIk1pc3NpbmcgY3VycmVuY3kgY29kZS4iIH07CisgICAgICAgIHJldHVy
biBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJNaXNzaW5nIGN1cnJlbmN5IGNvZGUuIl9zIH07CiAK
ICAgICBVRXJyb3JDb2RlIGVycm9yQ29kZSA9IFVfWkVST19FUlJPUjsKICAgICBhdXRvIGN1cnJl
bmN5Q29kZXMgPSBzdGQ6OnVuaXF1ZV9wdHI8VUVudW1lcmF0aW9uLCBJQ1VEZWxldGVyPHVlbnVt
X2Nsb3NlPj4odWN1cnJfb3BlbklTT0N1cnJlbmNpZXMoVUNVUlJfQUxMLCAmZXJyb3JDb2RlKSk7
CkBAIC0xNDQsNyArMTQ0LDcgQEAgc3RhdGljIEV4Y2VwdGlvbk9yPHZvaWQ+IHZhbGlkYXRlQ3Vy
cmVuY3lDb2RlKGNvbnN0IFN0cmluZyYgY3VycmVuY3lDb2RlKQogc3RhdGljIEV4Y2VwdGlvbk9y
PHZvaWQ+IHZhbGlkYXRlTWVyY2hhbnRDYXBhYmlsaXRpZXMoY29uc3QgQXBwbGVQYXlTZXNzaW9u
UGF5bWVudFJlcXVlc3Q6Ok1lcmNoYW50Q2FwYWJpbGl0aWVzJiBtZXJjaGFudENhcGFiaWxpdGll
cykKIHsKICAgICBpZiAoIW1lcmNoYW50Q2FwYWJpbGl0aWVzLnN1cHBvcnRzM0RTICYmICFtZXJj
aGFudENhcGFiaWxpdGllcy5zdXBwb3J0c0VNViAmJiAhbWVyY2hhbnRDYXBhYmlsaXRpZXMuc3Vw
cG9ydHNDcmVkaXQgJiYgIW1lcmNoYW50Q2FwYWJpbGl0aWVzLnN1cHBvcnRzRGViaXQpCi0gICAg
ICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJNaXNzaW5nIG1lcmNoYW50IGNhcGFi
aWxpdGllcy4iIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJNaXNz
aW5nIG1lcmNoYW50IGNhcGFiaWxpdGllcy4iX3MgfTsKIAogICAgIHJldHVybiB7IH07CiB9CkBA
IC0xNTIsNyArMTUyLDcgQEAgc3RhdGljIEV4Y2VwdGlvbk9yPHZvaWQ+IHZhbGlkYXRlTWVyY2hh
bnRDYXBhYmlsaXRpZXMoY29uc3QgQXBwbGVQYXlTZXNzaW9uUGF5bWUKIHN0YXRpYyBFeGNlcHRp
b25Pcjx2b2lkPiB2YWxpZGF0ZVN1cHBvcnRlZE5ldHdvcmtzKGNvbnN0IFZlY3RvcjxTdHJpbmc+
JiBzdXBwb3J0ZWROZXR3b3JrcykKIHsKICAgICBpZiAoc3VwcG9ydGVkTmV0d29ya3MuaXNFbXB0
eSgpKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiTWlzc2luZyBzdXBw
b3J0ZWQgbmV0d29ya3MuIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9y
LCAiTWlzc2luZyBzdXBwb3J0ZWQgbmV0d29ya3MuIl9zIH07CiAKICAgICByZXR1cm4geyB9Owog
fQpAQCAtMTYxLDcgKzE2MSw3IEBAIHN0YXRpYyBFeGNlcHRpb25Pcjx2b2lkPiB2YWxpZGF0ZVNo
aXBwaW5nTWV0aG9kKGNvbnN0IEFwcGxlUGF5U2hpcHBpbmdNZXRob2QmIHNoCiB7CiAgICAgTlNE
ZWNpbWFsTnVtYmVyICphbW91bnQgPSBbTlNEZWNpbWFsTnVtYmVyIGRlY2ltYWxOdW1iZXJXaXRo
U3RyaW5nOnNoaXBwaW5nTWV0aG9kLmFtb3VudCBsb2NhbGU6QHsgTlNMb2NhbGVEZWNpbWFsU2Vw
YXJhdG9yIDogQCIuIiB9XTsKICAgICBpZiAoYW1vdW50LmludGVnZXJWYWx1ZSA8IDApCi0gICAg
ICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJTaGlwcGluZyBtZXRob2QgYW1vdW50
IG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHplcm8uIiB9OworICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiU2hpcHBpbmcgbWV0aG9kIGFtb3VudCBtdXN0IGJl
IGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB6ZXJvLiJfcyB9OwogCiAgICAgcmV0dXJuIHsgfTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvUGF5bWVudFNl
c3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50U2Vzc2lv
bi5jcHAKaW5kZXggOTRmOTQ1OWI5YjQ0OGE5ODQyZWIwZjQwMjNjNjQyYTA2OGU4M2M3MS4uMmU4
ZjY2ZWE4M2MxZDQ3MmRhMTg3YzA4MzZiNTgxNzZjYmFkOTFhMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50U2Vzc2lvbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50U2Vzc2lvbi5jcHAKQEAgLTUyLDI0ICs1
MiwyNCBAQCBFeGNlcHRpb25Pcjx2b2lkPiBQYXltZW50U2Vzc2lvbjo6Y2FuQ3JlYXRlU2Vzc2lv
bihEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBTZWN1cml0
eUVycm9yLCAiVGhpcmQtcGFydHkgaWZyYW1lcyBhcmUgbm90IGFsbG93ZWQgdG8gcmVxdWVzdCBw
YXltZW50cyB1bmxlc3MgZXhwbGljaXRseSBhbGxvd2VkIHZpYSBGZWF0dXJlLVBvbGljeSAocGF5
bWVudCkiX3MgfTsKIAogICAgIGlmICghZG9jdW1lbnQuZnJhbWUoKSkKLSAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwgIlRyeWluZyB0byBzdGFydCBhbiBBcHBs
ZSBQYXkgc2Vzc2lvbiBmcm9tIGFuIGluYWN0aXZlIGRvY3VtZW50LiIgfTsKKyAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwgIlRyeWluZyB0byBzdGFydCBhbiBB
cHBsZSBQYXkgc2Vzc2lvbiBmcm9tIGFuIGluYWN0aXZlIGRvY3VtZW50LiJfcyB9OwogCiAgICAg
aWYgKCFpc1NlY3VyZSgqZG9jdW1lbnQubG9hZGVyKCkpKQotICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiVHJ5aW5nIHRvIHN0YXJ0IGFuIEFwcGxlIFBheSBz
ZXNzaW9uIGZyb20gYW4gaW5zZWN1cmUgZG9jdW1lbnQuIiB9OworICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiVHJ5aW5nIHRvIHN0YXJ0IGFuIEFwcGxlIFBh
eSBzZXNzaW9uIGZyb20gYW4gaW5zZWN1cmUgZG9jdW1lbnQuIl9zIH07CiAKICAgICBhdXRvJiB0
b3BEb2N1bWVudCA9IGRvY3VtZW50LnRvcERvY3VtZW50KCk7CiAgICAgaWYgKCZkb2N1bWVudCAh
PSAmdG9wRG9jdW1lbnQpIHsKICAgICAgICAgYXV0byYgdG9wT3JpZ2luID0gdG9wRG9jdW1lbnQu
dG9wT3JpZ2luKCk7CiAKICAgICAgICAgaWYgKCFkb2N1bWVudC5zZWN1cml0eU9yaWdpbigpLmlz
U2FtZVNjaGVtZUhvc3RQb3J0KHRvcE9yaWdpbikpCi0gICAgICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiVHJ5aW5nIHRvIHN0YXJ0IGFuIEFwcGxlIFBheSBz
ZXNzaW9uIGZyb20gYSBkb2N1bWVudCB3aXRoIGFuIGRpZmZlcmVudCBzZWN1cml0eSBvcmlnaW4g
dGhhbiBpdHMgdG9wLWxldmVsIGZyYW1lLiIgfTsKKyAgICAgICAgICAgIHJldHVybiBFeGNlcHRp
b24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJUcnlpbmcgdG8gc3RhcnQgYW4gQXBwbGUgUGF5IHNl
c3Npb24gZnJvbSBhIGRvY3VtZW50IHdpdGggYW4gZGlmZmVyZW50IHNlY3VyaXR5IG9yaWdpbiB0
aGFuIGl0cyB0b3AtbGV2ZWwgZnJhbWUuIl9zIH07CiAKICAgICAgICAgZm9yIChhdXRvKiBhbmNl
c3RvckRvY3VtZW50ID0gZG9jdW1lbnQucGFyZW50RG9jdW1lbnQoKTsgYW5jZXN0b3JEb2N1bWVu
dCAhPSAmdG9wRG9jdW1lbnQ7IGFuY2VzdG9yRG9jdW1lbnQgPSBhbmNlc3RvckRvY3VtZW50LT5w
YXJlbnREb2N1bWVudCgpKSB7CiAgICAgICAgICAgICBpZiAoIWlzU2VjdXJlKCphbmNlc3RvckRv
Y3VtZW50LT5sb2FkZXIoKSkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElu
dmFsaWRBY2Nlc3NFcnJvciwgIlRyeWluZyB0byBzdGFydCBhbiBBcHBsZSBQYXkgc2Vzc2lvbiBm
cm9tIGEgZG9jdW1lbnQgd2l0aCBhbiBpbnNlY3VyZSBwYXJlbnQgZnJhbWUuIiB9OworICAgICAg
ICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJUcnlpbmcg
dG8gc3RhcnQgYW4gQXBwbGUgUGF5IHNlc3Npb24gZnJvbSBhIGRvY3VtZW50IHdpdGggYW4gaW5z
ZWN1cmUgcGFyZW50IGZyYW1lLiJfcyB9OwogCiAgICAgICAgICAgICBpZiAoIWFuY2VzdG9yRG9j
dW1lbnQtPnNlY3VyaXR5T3JpZ2luKCkuaXNTYW1lU2NoZW1lSG9zdFBvcnQodG9wT3JpZ2luKSkK
LSAgICAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAi
VHJ5aW5nIHRvIHN0YXJ0IGFuIEFwcGxlIFBheSBzZXNzaW9uIGZyb20gYSBkb2N1bWVudCB3aXRo
IGFuIGRpZmZlcmVudCBzZWN1cml0eSBvcmlnaW4gdGhhbiBpdHMgdG9wLWxldmVsIGZyYW1lLiIg
fTsKKyAgICAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9y
LCAiVHJ5aW5nIHRvIHN0YXJ0IGFuIEFwcGxlIFBheSBzZXNzaW9uIGZyb20gYSBkb2N1bWVudCB3
aXRoIGFuIGRpZmZlcmVudCBzZWN1cml0eSBvcmlnaW4gdGhhbiBpdHMgdG9wLWxldmVsIGZyYW1l
LiJfcyB9OwogICAgICAgICB9CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2FwcGxlcGF5L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVudEhhbmRsZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9wYXltZW50cmVxdWVzdC9BcHBsZVBh
eVBheW1lbnRIYW5kbGVyLmNwcAppbmRleCA3MDU1MWFlODY0NDg5YzllNjc3Y2Q5MjE1M2Y1ZDFl
MjI3YTQwMjU0Li5lYjU2YjkxZTVmZWRhYzY2YTc5ZDA0NmEzYmZlYzhkYjI5Mjc1ZDdlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L3BheW1lbnRyZXF1ZXN0L0Fw
cGxlUGF5UGF5bWVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBw
bGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQYXltZW50SGFuZGxlci5jcHAKQEAgLTg5LDcg
Kzg5LDcgQEAgc3RhdGljIGlubGluZSBQYXltZW50Q29vcmRpbmF0b3ImIHBheW1lbnRDb29yZGlu
YXRvcihEb2N1bWVudCYgZG9jdW1lbnQpCiBzdGF0aWMgRXhjZXB0aW9uT3I8QXBwbGVQYXlSZXF1
ZXN0PiBjb252ZXJ0QW5kVmFsaWRhdGVBcHBsZVBheVJlcXVlc3QoRG9jdW1lbnQmIGRvY3VtZW50
LCBKU0M6OkpTVmFsdWUgZGF0YSkKIHsKICAgICBpZiAoZGF0YS5pc0VtcHR5KCkpCi0gICAgICAg
IHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJNaXNzaW5nIHBheW1lbnQgbWV0aG9kIGRh
dGEuIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiTWlzc2luZyBw
YXltZW50IG1ldGhvZCBkYXRhLiJfcyB9OwogCiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRShkb2N1bWVudC52bSgpKTsKICAgICBhdXRvIGFwcGxlUGF5UmVxdWVzdCA9
IGNvbnZlcnREaWN0aW9uYXJ5PEFwcGxlUGF5UmVxdWVzdD4oKmRvY3VtZW50Lmdsb2JhbE9iamVj
dCgpLCBkYXRhKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGljYXRp
b25tYW5pZmVzdC9BcHBsaWNhdGlvbk1hbmlmZXN0UGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvYXBwbGljYXRpb25tYW5pZmVzdC9BcHBsaWNhdGlvbk1hbmlmZXN0UGFyc2VyLmNw
cAppbmRleCA2ZGZmZjQ3YjdlMmNiODliNTRmOTVlYzQ2MjdkM2Q3Y2U2OTBmOTBiLi5jNWQxMzAz
OGNmYzY3ZjQ1YTQ2ZTY4YzljYzQ1MjEwNzNkNzZhNTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2FwcGxpY2F0aW9ubWFuaWZlc3QvQXBwbGljYXRpb25NYW5pZmVzdFBhcnNl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsaWNhdGlvbm1hbmlmZXN0L0Fw
cGxpY2F0aW9uTWFuaWZlc3RQYXJzZXIuY3BwCkBAIC0yMzEsNyArMjMxLDcgQEAgVmVjdG9yPEFw
cGxpY2F0aW9uTWFuaWZlc3Q6Okljb24+IEFwcGxpY2F0aW9uTWFuaWZlc3RQYXJzZXI6OnBhcnNl
SWNvbnMoY29uc3QgSlMKICAgICAgICAgICAgICAgICBjdXJyZW50SWNvbi5wdXJwb3NlcyA9IHB1
cnBvc2VzOwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBwdXJwb3NlU3Ry
aW5nVmFsdWUgPSBwdXJwb3NlU3RyaW5nVmFsdWUuc3RyaXBXaGl0ZVNwYWNlKCkuY29udmVydFRv
QVNDSUlMb3dlcmNhc2UoKTsKLSAgICAgICAgICAgICAgICBWZWN0b3I8U3RyaW5nPiBrZXl3b3Jk
cyA9IHB1cnBvc2VTdHJpbmdWYWx1ZS5zcGxpdEFsbG93aW5nRW1wdHlFbnRyaWVzKCIgIik7Cisg
ICAgICAgICAgICAgICAgVmVjdG9yPFN0cmluZz4ga2V5d29yZHMgPSBwdXJwb3NlU3RyaW5nVmFs
dWUuc3BsaXRBbGxvd2luZ0VtcHR5RW50cmllcygiICJfcyk7CiAKICAgICAgICAgICAgICAgICBm
b3IgKGNvbnN0IGF1dG8mIGtleXdvcmQgOiBrZXl3b3JkcykgewogICAgICAgICAgICAgICAgICAg
ICBpZiAoa2V5d29yZCA9PSAibW9ub2Nocm9tZSIpCkBAIC0yODIsOSArMjgyLDkgQEAgc3RhdGlj
IGJvb2wgaXNJblNjb3BlKGNvbnN0IFVSTCYgc2NvcGVVUkwsIGNvbnN0IFVSTCYgdGFyZ2V0VVJM
KQogCiBVUkwgQXBwbGljYXRpb25NYW5pZmVzdFBhcnNlcjo6cGFyc2VTY29wZShjb25zdCBKU09O
OjpPYmplY3QmIG1hbmlmZXN0LCBjb25zdCBVUkwmIGRvY3VtZW50VVJMLCBjb25zdCBVUkwmIHN0
YXJ0VVJMKQogewotICAgIFVSTCBkZWZhdWx0U2NvcGUgeyBzdGFydFVSTCwgIi4vIiB9OworICAg
IFVSTCBkZWZhdWx0U2NvcGUgeyBzdGFydFVSTCwgIi4vIl9zIH07CiAKLSAgICBhdXRvIHZhbHVl
ID0gbWFuaWZlc3QuZ2V0VmFsdWUoInNjb3BlIik7CisgICAgYXV0byB2YWx1ZSA9IG1hbmlmZXN0
LmdldFZhbHVlKCJzY29wZSJfcyk7CiAgICAgaWYgKCF2YWx1ZSkKICAgICAgICAgcmV0dXJuIGRl
ZmF1bHRTY29wZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9X
aW5kb3dPcldvcmtlckdsb2JhbFNjb3BlQ2FjaGVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvY2FjaGUvV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZUNhY2hlcy5jcHAKaW5kZXggYTE3NDk1
ZDc2NTk2NTZmZTJkZDljY2EzZDM3MTEyMjFmZTQ4ZDEwNC4uZGZlMTg4ZmMwZWZmZGFjMmJlZjBl
OWFjZGU5NmMzZWY2MmI4NmE2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9j
YWNoZS9XaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlQ2FjaGVzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2NhY2hlL1dpbmRvd09yV29ya2VyR2xvYmFsU2NvcGVDYWNoZXMuY3BwCkBA
IC0xMjcsNyArMTI3LDcgQEAgRE9NQ2FjaGVTdG9yYWdlKiBXb3JrZXJHbG9iYWxTY29wZUNhY2hl
czo6Y2FjaGVzKCkgY29uc3QKIEV4Y2VwdGlvbk9yPERPTUNhY2hlU3RvcmFnZSo+IFdpbmRvd09y
V29ya2VyR2xvYmFsU2NvcGVDYWNoZXM6OmNhY2hlcyhTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBj
b250ZXh0LCBET01XaW5kb3cmIHdpbmRvdykKIHsKICAgICBpZiAoZG93bmNhc3Q8RG9jdW1lbnQ+
KGNvbnRleHQpLmlzU2FuZGJveGVkKFNhbmRib3hPcmlnaW4pKQotICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgU2VjdXJpdHlFcnJvciwgIkNhY2hlIHN0b3JhZ2UgaXMgZGlzYWJsZWQgYmVjYXVz
ZSB0aGUgY29udGV4dCBpcyBzYW5kYm94ZWQgYW5kIGxhY2tzIHRoZSAnYWxsb3ctc2FtZS1vcmln
aW4nIGZsYWciIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBTZWN1cml0eUVycm9yLCAi
Q2FjaGUgc3RvcmFnZSBpcyBkaXNhYmxlZCBiZWNhdXNlIHRoZSBjb250ZXh0IGlzIHNhbmRib3hl
ZCBhbmQgbGFja3MgdGhlICdhbGxvdy1zYW1lLW9yaWdpbicgZmxhZyJfcyB9OwogCiAgICAgaWYg
KCF3aW5kb3cuaXNDdXJyZW50bHlEaXNwbGF5ZWRJbkZyYW1lKCkpCiAgICAgICAgIHJldHVybiBu
dWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRp
YS9Jbml0RGF0YVJlZ2lzdHJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVk
bWVkaWEvSW5pdERhdGFSZWdpc3RyeS5jcHAKaW5kZXggNmY4ODhlMTc4NThkZGE2ZDk0NzFlYzFm
NmVmNWQwNjZkZjBlNDk5MC4uOGNkYmNhNzdhZjM4MzA3YjJiNGMwYTRkMjVhMWYwZTkxMWFiYjFk
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9Jbml0
RGF0YVJlZ2lzdHJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1l
ZGlhL0luaXREYXRhUmVnaXN0cnkuY3BwCkBAIC0xMDUsNyArMTA1LDcgQEAgc3RhdGljIFJlZlB0
cjxGcmFnbWVudGVkU2hhcmVkQnVmZmVyPiBzYW5pdGl6ZUtleWlkcyhjb25zdCBGcmFnbWVudGVk
U2hhcmVkQnVmZmUKICAgICBhdXRvIGtpZHNBcnJheSA9IEpTT046OkFycmF5OjpjcmVhdGUoKTsK
ICAgICBmb3IgKGF1dG8mIGJ1ZmZlciA6IGtleUlEQnVmZmVyLnZhbHVlKCkpCiAgICAgICAgIGtp
ZHNBcnJheS0+cHVzaFN0cmluZyhiYXNlNjRVUkxFbmNvZGVUb1N0cmluZyhidWZmZXItPm1ha2VD
b250aWd1b3VzKCktPmRhdGEoKSwgYnVmZmVyLT5zaXplKCkpKTsKLSAgICBvYmplY3QtPnNldEFy
cmF5KCJraWRzIiwgV1RGTW92ZShraWRzQXJyYXkpKTsKKyAgICBvYmplY3QtPnNldEFycmF5KCJr
aWRzIl9zLCBXVEZNb3ZlKGtpZHNBcnJheSkpOwogCiAgICAgQ1N0cmluZyBqc29uRGF0YSA9IG9i
amVjdC0+dG9KU09OU3RyaW5nKCkudXRmOCgpOwogICAgIHJldHVybiBTaGFyZWRCdWZmZXI6OmNy
ZWF0ZShqc29uRGF0YS5kYXRhKCksIGpzb25EYXRhLmxlbmd0aCgpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZW50cmllc2FwaS9ET01GaWxlU3lzdGVtLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZW50cmllc2FwaS9ET01GaWxlU3lzdGVtLmNwcAppbmRleCA5ZjQ4
MWRjNjI5YWE3N2E2MGRhNWM1ZWUwNDRhNzM2YmQ0NmQzZDIwLi45YWNhNjE4YjVkNmM3MmUyNDI0
NTk0YjlhMTlkZTFhNGUwNGY5YzhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2VudHJpZXNhcGkvRE9NRmlsZVN5c3RlbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9lbnRyaWVzYXBpL0RPTUZpbGVTeXN0ZW0uY3BwCkBAIC01OSw3ICs1OSw3IEBAIHN0YXRpYyBF
eGNlcHRpb25PcjxWZWN0b3I8TGlzdGVkQ2hpbGQ+PiBsaXN0RGlyZWN0b3J5V2l0aE1ldGFkYXRh
KGNvbnN0IFN0cmluZyYKIHsKICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKICAgICBpZiAo
RmlsZVN5c3RlbTo6ZmlsZVR5cGUoZnVsbFBhdGgpICE9IEZpbGVTeXN0ZW06OkZpbGVUeXBlOjpE
aXJlY3RvcnkpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RGb3VuZEVycm9yLCAiUGF0
aCBubyBsb25nZXIgZXhpc3RzIG9yIGlzIG5vIGxvbmdlciBhIGRpcmVjdG9yeSIgfTsKKyAgICAg
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdEZvdW5kRXJyb3IsICJQYXRoIG5vIGxvbmdlciBleGlz
dHMgb3IgaXMgbm8gbG9uZ2VyIGEgZGlyZWN0b3J5Il9zIH07CiAKICAgICBhdXRvIGNoaWxkTmFt
ZXMgPSBGaWxlU3lzdGVtOjpsaXN0RGlyZWN0b3J5KGZ1bGxQYXRoKTsKICAgICBWZWN0b3I8TGlz
dGVkQ2hpbGQ+IGxpc3RlZENoaWxkcmVuOwpAQCAtMTgzLDcgKzE4Myw3IEBAIHN0YXRpYyBFeGNl
cHRpb25PcjxTdHJpbmc+IHZhbGlkYXRlUGF0aElzRXhwZWN0ZWRUeXBlKGNvbnN0IFN0cmluZyYg
ZnVsbFBhdGgsIFN0CiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RGb3VuZEVycm9yLCAi
UGF0aCBkb2VzIG5vdCBleGlzdCJfcyB9OwogCiAgICAgaWYgKCpmaWxlVHlwZSAhPSBleHBlY3Rl
ZFR5cGUpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlTWlzbWF0Y2hFcnJvciwgIkVu
dHJ5IGF0IHBhdGggZG9lcyBub3QgaGF2ZSBleHBlY3RlZCB0eXBlIiB9OworICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgVHlwZU1pc21hdGNoRXJyb3IsICJFbnRyeSBhdCBwYXRoIGRvZXMgbm90
IGhhdmUgZXhwZWN0ZWQgdHlwZSJfcyB9OwogCiAgICAgcmV0dXJuIFdURk1vdmUodmlydHVhbFBh
dGgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJv
ZHlDb25zdW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keUNv
bnN1bWVyLmNwcAppbmRleCA5MzZhN2U0MzA1NmM0NTVlMjliMjU1MGZiNDAxMGJlZWVjM2IzNWVi
Li42ZjZkYzY3Y2MzNGI4ZDQwN2FiZjZkZTQ2NGM1MjljNzQyMzZkNWYyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keUNvbnN1bWVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keUNvbnN1bWVyLmNwcApAQCAtMTUw
LDEwICsxNTAsMTAgQEAgUmVmUHRyPERPTUZvcm1EYXRhPiBGZXRjaEJvZHlDb25zdW1lcjo6cGFj
a2FnZUZvcm1EYXRhKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGMKICAgICAgICAgICAgIGNvbnRl
bnREaXNwb3NpdGlvblBhcmFtZXRlcnNCZWdpbisrOwogCiAgICAgICAgIGF1dG8gcGFyYW1ldGVy
cyA9IHBhcnNlUGFyYW1ldGVycyhTdHJpbmdWaWV3KGhlYWRlcikuc3Vic3RyaW5nKGNvbnRlbnRE
aXNwb3NpdGlvblBhcmFtZXRlcnNCZWdpbiwgY29udGVudERpc3Bvc2l0aW9uRW5kIC0gY29udGVu
dERpc3Bvc2l0aW9uUGFyYW1ldGVyc0JlZ2luKSwgMCk7Ci0gICAgICAgIFN0cmluZyBuYW1lID0g
cGFyYW1ldGVycy5nZXQoIm5hbWUiKTsKKyAgICAgICAgU3RyaW5nIG5hbWUgPSBwYXJhbWV0ZXJz
LmdldCgibmFtZSJfcyk7CiAgICAgICAgIGlmICghbmFtZSkKICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICAgICAgU3RyaW5nIGZpbGVuYW1lID0gcGFyYW1ldGVycy5nZXQoImZpbGVuYW1l
Iik7CisgICAgICAgIFN0cmluZyBmaWxlbmFtZSA9IHBhcmFtZXRlcnMuZ2V0KCJmaWxlbmFtZSJf
cyk7CiAgICAgICAgIGlmICghZmlsZW5hbWUpCiAgICAgICAgICAgICBmb3JtLmFwcGVuZChuYW1l
LCBTdHJpbmc6OmZyb21VVEY4KGJvZHlCZWdpbiwgYm9keUxlbmd0aCkpOwogICAgICAgICBlbHNl
IHsKQEAgLTE3Niw3ICsxNzYsNyBAQCBSZWZQdHI8RE9NRm9ybURhdGE+IEZldGNoQm9keUNvbnN1
bWVyOjpwYWNrYWdlRm9ybURhdGEoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogYwogICAgICAgICBp
ZiAoIW1pbWVUeXBlKQogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAgICAg
aWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobWltZVR5cGUtPnR5cGUsICJtdWx0aXBhcnQiKSAm
JiBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG1pbWVUeXBlLT5zdWJ0eXBlLCAiZm9ybS1kYXRhIikp
IHsKLSAgICAgICAgICAgIGF1dG8gaXRlcmF0b3IgPSBtaW1lVHlwZS0+cGFyYW1ldGVycy5maW5k
KCJib3VuZGFyeSIpOworICAgICAgICAgICAgYXV0byBpdGVyYXRvciA9IG1pbWVUeXBlLT5wYXJh
bWV0ZXJzLmZpbmQoImJvdW5kYXJ5Il9zKTsKICAgICAgICAgICAgIGlmIChpdGVyYXRvciAhPSBt
aW1lVHlwZS0+cGFyYW1ldGVycy5lbmQoKSkKICAgICAgICAgICAgICAgICByZXR1cm4gaXRlcmF0
b3ItPnZhbHVlOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2ZldGNoL0ZldGNoSGVhZGVycy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0Zl
dGNoSGVhZGVycy5jcHAKaW5kZXggMDkwZjVjZjRkMGZmMTE1ZDg0YmY3MzNiN2E3YjE1YjM0ZjJl
M2E1Zi4uMjZhZjA4ZjFhZDVlMTRjYmQxYWVkNzRlZmRlYTNmMWFkMzhiZTYxNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEhlYWRlcnMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hIZWFkZXJzLmNwcApAQCAtMTAyLDcgKzEw
Miw3IEBAIHN0YXRpYyBFeGNlcHRpb25Pcjx2b2lkPiBmaWxsSGVhZGVyTWFwKEhUVFBIZWFkZXJN
YXAmIGhlYWRlcnMsIGNvbnN0IEZldGNoSGVhZGVyCiAgICAgICAgIGF1dG8mIHNlcXVlbmNlID0g
c3RkOjpnZXQ8VmVjdG9yPFZlY3RvcjxTdHJpbmc+Pj4oaGVhZGVyc0luaXQpOwogICAgICAgICBm
b3IgKGF1dG8mIGhlYWRlciA6IHNlcXVlbmNlKSB7CiAgICAgICAgICAgICBpZiAoaGVhZGVyLnNp
emUoKSAhPSAyKQotICAgICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3Is
ICJIZWFkZXIgc3ViLXNlcXVlbmNlIG11c3QgY29udGFpbiBleGFjdGx5IHR3byBpdGVtcyIgfTsK
KyAgICAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiSGVhZGVyIHN1
Yi1zZXF1ZW5jZSBtdXN0IGNvbnRhaW4gZXhhY3RseSB0d28gaXRlbXMiX3MgfTsKICAgICAgICAg
ICAgIGF1dG8gcmVzdWx0ID0gYXBwZW5kVG9IZWFkZXJNYXAoaGVhZGVyWzBdLCBoZWFkZXJbMV0s
IGhlYWRlcnMsIGd1YXJkKTsKICAgICAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkp
CiAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoTG9hZGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hMb2FkZXIuY3BwCmluZGV4IDdjZWEzMmE5
NThmMTRiZDhjODc4YmM1MWY0OWMxZDFhZGE2ZDZhMzcuLmY3NDMzOGU4ZDMyMjI3MGEzODBmMjQ5
YTY0MmU0ZWEwZjkyMjg2ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0
Y2gvRmV0Y2hMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0
Y2hMb2FkZXIuY3BwCkBAIC02OSw3ICs2OSw3IEBAIHZvaWQgRmV0Y2hMb2FkZXI6OnN0YXJ0TG9h
ZGluZ0Jsb2JVUkwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3QgVVJMCiAK
ICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChtX3VybEZvclJlYWRpbmcpOwogICAgIHJlcXVl
c3Quc2V0SW5pdGlhdG9ySWRlbnRpZmllcihjb250ZXh0LnJlc291cmNlUmVxdWVzdElkZW50aWZp
ZXIoKSk7Ci0gICAgcmVxdWVzdC5zZXRIVFRQTWV0aG9kKCJHRVQiKTsKKyAgICByZXF1ZXN0LnNl
dEhUVFBNZXRob2QoIkdFVCJfcyk7CiAKICAgICBUaHJlYWRhYmxlTG9hZGVyT3B0aW9ucyBvcHRp
b25zOwogICAgIG9wdGlvbnMuc2VuZExvYWRDYWxsYmFja3MgPSBTZW5kQ2FsbGJhY2tQb2xpY3k6
OlNlbmRDYWxsYmFja3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVz
eXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcAppbmRleCAwZTk1
ZmZkZWU0YWY4NTRlODdlMjUzYTljZGU4NjM0MmY1YTJlZGY4Li5hYTMyYTliYjIyZmI0YmJmOTNi
YWRkNjFkMTI4OGJiZjkwOGQzZDVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAK
QEAgLTU1LDcgKzU1LDcgQEAgRmlsZVN5c3RlbUZpbGVIYW5kbGU6OkZpbGVTeXN0ZW1GaWxlSGFu
ZGxlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFN0cmkKIHZvaWQgRmlsZVN5c3Rl
bUZpbGVIYW5kbGU6OmdldEZpbGUoRE9NUHJvbWlzZURlZmVycmVkPElETEludGVyZmFjZTxGaWxl
Pj4mJiBwcm9taXNlKQogewogICAgIGlmIChpc0Nsb3NlZCgpKQotICAgICAgICByZXR1cm4gcHJv
bWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJIYW5kbGUgaXMgY2xv
c2VkIiB9KTsKKyAgICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IEludmFs
aWRTdGF0ZUVycm9yLCAiSGFuZGxlIGlzIGNsb3NlZCJfcyB9KTsKIAogICAgIGNvbm5lY3Rpb24o
KS5nZXRGaWxlKGlkZW50aWZpZXIoKSwgW3Byb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9LCBw
cm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgewogICAgICAg
ICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQpAQCAtNzIsNyArNzIsNyBAQCB2b2lkIEZpbGVT
eXN0ZW1GaWxlSGFuZGxlOjpnZXRGaWxlKERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8
RmlsZT4+JiYgcHJvbQogdm9pZCBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Y3JlYXRlU3luY0FjY2Vz
c0hhbmRsZShET01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNlPEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlPj4mJiBwcm9taXNlKQogewogICAgIGlmIChpc0Nsb3NlZCgpKQotICAgICAgICBy
ZXR1cm4gcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJIYW5k
bGUgaXMgY2xvc2VkIiB9KTsKKyAgICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0KEV4Y2VwdGlv
biB7IEludmFsaWRTdGF0ZUVycm9yLCAiSGFuZGxlIGlzIGNsb3NlZCJfcyB9KTsKIAogICAgIGNv
bm5lY3Rpb24oKS5jcmVhdGVTeW5jQWNjZXNzSGFuZGxlKGlkZW50aWZpZXIoKSwgW3Byb3RlY3Rl
ZFRoaXMgPSBSZWYgeyAqdGhpcyB9LCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byBy
ZXN1bHQpIG11dGFibGUgewogICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0
ZW1IYW5kbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0Zp
bGVTeXN0ZW1IYW5kbGUuY3BwCmluZGV4IDBiOWY3ODhlNDkwM2ZhN2U3YWU0Mjg5N2EwMDJiOTZl
OGRmZTEzZDcuLjllMGNjODc0YjBjNzM0NDU3YzQ5YzRjMzg2ZGFjMmIzYmY0ZGU1OTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVt
SGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3Mv
RmlsZVN5c3RlbUhhbmRsZS5jcHAKQEAgLTYwLDcgKzYwLDcgQEAgdm9pZCBGaWxlU3lzdGVtSGFu
ZGxlOjpjbG9zZSgpCiB2b2lkIEZpbGVTeXN0ZW1IYW5kbGU6OmlzU2FtZUVudHJ5KEZpbGVTeXN0
ZW1IYW5kbGUmIGhhbmRsZSwgRE9NUHJvbWlzZURlZmVycmVkPElETEJvb2xlYW4+JiYgcHJvbWlz
ZSkgY29uc3QKIHsKICAgICBpZiAoaXNDbG9zZWQoKSkKLSAgICAgICAgcmV0dXJuIHByb21pc2Uu
cmVqZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiSGFuZGxlIGlzIGNsb3NlZCIg
fSk7CisgICAgICAgIHJldHVybiBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3Rh
dGVFcnJvciwgIkhhbmRsZSBpcyBjbG9zZWQiX3MgfSk7CiAKICAgICBpZiAobV9raW5kICE9IGhh
bmRsZS5raW5kKCkgfHwgbV9uYW1lICE9IGhhbmRsZS5uYW1lKCkpCiAgICAgICAgIHJldHVybiBw
cm9taXNlLnJlc29sdmUoZmFsc2UpOwpAQCAtNzMsNyArNzMsNyBAQCB2b2lkIEZpbGVTeXN0ZW1I
YW5kbGU6OmlzU2FtZUVudHJ5KEZpbGVTeXN0ZW1IYW5kbGUmIGhhbmRsZSwgRE9NUHJvbWlzZURl
ZmVycmVkPAogdm9pZCBGaWxlU3lzdGVtSGFuZGxlOjptb3ZlKEZpbGVTeXN0ZW1IYW5kbGUmIGRl
c3RpbmF0aW9uSGFuZGxlLCBjb25zdCBTdHJpbmcmIG5ld05hbWUsIERPTVByb21pc2VEZWZlcnJl
ZDx2b2lkPiYmIHByb21pc2UpCiB7CiAgICAgaWYgKGlzQ2xvc2VkKCkpCi0gICAgICAgIHJldHVy
biBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkhhbmRsZSBp
cyBjbG9zZWQiIH0pOworICAgICAgICByZXR1cm4gcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsg
SW52YWxpZFN0YXRlRXJyb3IsICJIYW5kbGUgaXMgY2xvc2VkIl9zIH0pOwogCiAgICAgaWYgKGRl
c3RpbmF0aW9uSGFuZGxlLmtpbmQoKSAhPSBLaW5kOjpEaXJlY3RvcnkpCiAgICAgICAgIHJldHVy
biBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBUeXBlTWlzbWF0Y2hFcnJvciB9KTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlSWRlbnRp
Zmllci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VJZGVu
dGlmaWVyLmgKaW5kZXggMjcxZGVkNGRlZThiODg4ZDMxZTRjNGMxMWUxZDFmYzg4OWRiYTZhYi4u
NDY1NzY4ZDhlNWU0ZmU0ZGZhYjE4OTNiNzljZTZhYzZkNzdlNTU2NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VJZGVudGlmaWVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VJZGVudGlmaWVy
LmgKQEAgLTcwLDcgKzcwLDcgQEAgcHVibGljOgogICAgIGNvbnN0IENsaWVudE9yaWdpbiYgb3Jp
Z2luKCkgY29uc3QgeyByZXR1cm4gbV9vcmlnaW47IH0KICAgICBib29sIGlzVHJhbnNpZW50KCkg
Y29uc3QgeyByZXR1cm4gbV9pc1RyYW5zaWVudDsgfQogCi0gICAgU3RyaW5nIGRhdGFiYXNlRGly
ZWN0b3J5UmVsYXRpdmVUb1Jvb3QoY29uc3QgU3RyaW5nJiByb290RGlyZWN0b3J5LCBjb25zdCBT
dHJpbmcmIHZlcnNpb25TdHJpbmc9InYxIikgY29uc3Q7CisgICAgU3RyaW5nIGRhdGFiYXNlRGly
ZWN0b3J5UmVsYXRpdmVUb1Jvb3QoY29uc3QgU3RyaW5nJiByb290RGlyZWN0b3J5LCBjb25zdCBT
dHJpbmcmIHZlcnNpb25TdHJpbmcgPSAidjEiX3MpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JU
IHN0YXRpYyBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlSZWxhdGl2ZVRvUm9vdChjb25zdCBDbGll
bnRPcmlnaW4mLCBjb25zdCBTdHJpbmcmIHJvb3REaXJlY3RvcnksIGNvbnN0IFN0cmluZyYgdmVy
c2lvblN0cmluZyk7CiAKICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShF
bmNvZGVyJikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJLZXlEYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QktleURhdGEuY3BwCmluZGV4IDJhMzdjNTI4ZWY1YmY5ZDk1NzczYTBiMTBmMDI1MjI5YmRlNWE0
MTguLjQ2MGYxNzRhMzgxYWI2YWJhNGNhMjk4MzE0NTI2OThiNWQ1MjkwZDAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleURhdGEuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleURhdGEuY3BwCkBAIC0xNDksMzUg
KzE0OSwzNSBAQCB2b2lkIElEQktleURhdGE6Omlzb2xhdGVkQ29weShjb25zdCBJREJLZXlEYXRh
JiBzb3VyY2UsIElEQktleURhdGEmIGRlc3RpbmF0aW9uKQogCiB2b2lkIElEQktleURhdGE6OmVu
Y29kZShLZXllZEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2Rlci5lbmNvZGVC
b29sKCJudWxsIiwgbV9pc051bGwpOworICAgIGVuY29kZXIuZW5jb2RlQm9vbCgibnVsbCJfcywg
bV9pc051bGwpOwogICAgIGlmIChtX2lzTnVsbCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgZW5j
b2Rlci5lbmNvZGVFbnVtKCJ0eXBlIiwgbV90eXBlKTsKKyAgICBlbmNvZGVyLmVuY29kZUVudW0o
InR5cGUiX3MsIG1fdHlwZSk7CiAKICAgICBzd2l0Y2ggKG1fdHlwZSkgewogICAgIGNhc2UgSW5k
ZXhlZERCOjpLZXlUeXBlOjpJbnZhbGlkOgogICAgICAgICByZXR1cm47CiAgICAgY2FzZSBJbmRl
eGVkREI6OktleVR5cGU6OkFycmF5OiB7CiAgICAgICAgIGF1dG8mIGFycmF5ID0gc3RkOjpnZXQ8
VmVjdG9yPElEQktleURhdGE+PihtX3ZhbHVlKTsKLSAgICAgICAgZW5jb2Rlci5lbmNvZGVPYmpl
Y3RzKCJhcnJheSIsIGFycmF5LmJlZ2luKCksIGFycmF5LmVuZCgpLCBbXShLZXllZEVuY29kZXIm
IGVuY29kZXIsIGNvbnN0IElEQktleURhdGEmIGtleSkgeworICAgICAgICBlbmNvZGVyLmVuY29k
ZU9iamVjdHMoImFycmF5Il9zLCBhcnJheS5iZWdpbigpLCBhcnJheS5lbmQoKSwgW10oS2V5ZWRF
bmNvZGVyJiBlbmNvZGVyLCBjb25zdCBJREJLZXlEYXRhJiBrZXkpIHsKICAgICAgICAgICAgIGtl
eS5lbmNvZGUoZW5jb2Rlcik7CiAgICAgICAgIH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQog
ICAgIGNhc2UgSW5kZXhlZERCOjpLZXlUeXBlOjpCaW5hcnk6IHsKICAgICAgICAgYXV0byogZGF0
YSA9IHN0ZDo6Z2V0PFRocmVhZFNhZmVEYXRhQnVmZmVyPihtX3ZhbHVlKS5kYXRhKCk7Ci0gICAg
ICAgIGVuY29kZXIuZW5jb2RlQm9vbCgiaGFzQmluYXJ5IiwgISFkYXRhKTsKKyAgICAgICAgZW5j
b2Rlci5lbmNvZGVCb29sKCJoYXNCaW5hcnkiX3MsICEhZGF0YSk7CiAgICAgICAgIGlmIChkYXRh
KQotICAgICAgICAgICAgZW5jb2Rlci5lbmNvZGVCeXRlcygiYmluYXJ5IiwgZGF0YS0+ZGF0YSgp
LCBkYXRhLT5zaXplKCkpOworICAgICAgICAgICAgZW5jb2Rlci5lbmNvZGVCeXRlcygiYmluYXJ5
Il9zLCBkYXRhLT5kYXRhKCksIGRhdGEtPnNpemUoKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAgICAgY2FzZSBJbmRleGVkREI6OktleVR5cGU6OlN0cmluZzoKLSAgICAgICAgZW5jb2Rlci5l
bmNvZGVTdHJpbmcoInN0cmluZyIsIHN0ZDo6Z2V0PFN0cmluZz4obV92YWx1ZSkpOworICAgICAg
ICBlbmNvZGVyLmVuY29kZVN0cmluZygic3RyaW5nIl9zLCBzdGQ6OmdldDxTdHJpbmc+KG1fdmFs
dWUpKTsKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgSW5kZXhlZERCOjpLZXlUeXBlOjpEYXRl
OgogICAgIGNhc2UgSW5kZXhlZERCOjpLZXlUeXBlOjpOdW1iZXI6Ci0gICAgICAgIGVuY29kZXIu
ZW5jb2RlRG91YmxlKCJudW1iZXIiLCBzdGQ6OmdldDxkb3VibGU+KG1fdmFsdWUpKTsKKyAgICAg
ICAgZW5jb2Rlci5lbmNvZGVEb3VibGUoIm51bWJlciJfcywgc3RkOjpnZXQ8ZG91YmxlPihtX3Zh
bHVlKSk7CiAgICAgICAgIHJldHVybjsKICAgICBjYXNlIEluZGV4ZWREQjo6S2V5VHlwZTo6TWF4
OgogICAgIGNhc2UgSW5kZXhlZERCOjpLZXlUeXBlOjpNaW46CkBAIC0xODksNyArMTg5LDcgQEAg
dm9pZCBJREJLZXlEYXRhOjplbmNvZGUoS2V5ZWRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogCiBi
b29sIElEQktleURhdGE6OmRlY29kZShLZXllZERlY29kZXImIGRlY29kZXIsIElEQktleURhdGEm
IHJlc3VsdCkKIHsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlQm9vbCgibnVsbCIsIHJlc3VsdC5t
X2lzTnVsbCkpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZUJvb2woIm51bGwiX3MsIHJlc3VsdC5t
X2lzTnVsbCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmIChyZXN1bHQubV9pc051
bGwpCkBAIC0yMDUsNyArMjA1LDcgQEAgYm9vbCBJREJLZXlEYXRhOjpkZWNvZGUoS2V5ZWREZWNv
ZGVyJiBkZWNvZGVyLCBJREJLZXlEYXRhJiByZXN1bHQpCiAgICAgICAgICAgICB8fCB2YWx1ZSA9
PSBJbmRleGVkREI6OktleVR5cGU6Ok51bWJlcgogICAgICAgICAgICAgfHwgdmFsdWUgPT0gSW5k
ZXhlZERCOjpLZXlUeXBlOjpNaW47CiAgICAgfTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlRW51
bSgidHlwZSIsIHJlc3VsdC5tX3R5cGUsIGVudW1GdW5jdGlvbikpCisgICAgaWYgKCFkZWNvZGVy
LmRlY29kZUVudW0oInR5cGUiX3MsIHJlc3VsdC5tX3R5cGUsIGVudW1GdW5jdGlvbikpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmIChyZXN1bHQubV90eXBlID09IEluZGV4ZWREQjo6
S2V5VHlwZTo6SW52YWxpZCkKQEAgLTIxOSwyNiArMjE5LDI2IEBAIGJvb2wgSURCS2V5RGF0YTo6
ZGVjb2RlKEtleWVkRGVjb2RlciYgZGVjb2RlciwgSURCS2V5RGF0YSYgcmVzdWx0KQogCiAgICAg
aWYgKHJlc3VsdC5tX3R5cGUgPT0gSW5kZXhlZERCOjpLZXlUeXBlOjpTdHJpbmcpIHsKICAgICAg
ICAgcmVzdWx0Lm1fdmFsdWUgPSBTdHJpbmcoKTsKLSAgICAgICAgcmV0dXJuIGRlY29kZXIuZGVj
b2RlU3RyaW5nKCJzdHJpbmciLCBzdGQ6OmdldDxTdHJpbmc+KHJlc3VsdC5tX3ZhbHVlKSk7Cisg
ICAgICAgIHJldHVybiBkZWNvZGVyLmRlY29kZVN0cmluZygic3RyaW5nIl9zLCBzdGQ6OmdldDxT
dHJpbmc+KHJlc3VsdC5tX3ZhbHVlKSk7CiAgICAgfQogCiAgICAgaWYgKHJlc3VsdC5tX3R5cGUg
PT0gSW5kZXhlZERCOjpLZXlUeXBlOjpOdW1iZXIgfHwgcmVzdWx0Lm1fdHlwZSA9PSBJbmRleGVk
REI6OktleVR5cGU6OkRhdGUpIHsKICAgICAgICAgcmVzdWx0Lm1fdmFsdWUgPSAwLjA7Ci0gICAg
ICAgIHJldHVybiBkZWNvZGVyLmRlY29kZURvdWJsZSgibnVtYmVyIiwgc3RkOjpnZXQ8ZG91Ymxl
PihyZXN1bHQubV92YWx1ZSkpOworICAgICAgICByZXR1cm4gZGVjb2Rlci5kZWNvZGVEb3VibGUo
Im51bWJlciJfcywgc3RkOjpnZXQ8ZG91YmxlPihyZXN1bHQubV92YWx1ZSkpOwogICAgIH0KIAog
ICAgIGlmIChyZXN1bHQubV90eXBlID09IEluZGV4ZWREQjo6S2V5VHlwZTo6QmluYXJ5KSB7CiAg
ICAgICAgIHJlc3VsdC5tX3ZhbHVlID0gVGhyZWFkU2FmZURhdGFCdWZmZXIoKTsKIAogICAgICAg
ICBib29sIGhhc0JpbmFyeURhdGE7Ci0gICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGVCb29sKCJo
YXNCaW5hcnkiLCBoYXNCaW5hcnlEYXRhKSkKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZUJv
b2woImhhc0JpbmFyeSJfcywgaGFzQmluYXJ5RGF0YSkpCiAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAKICAgICAgICAgaWYgKCFoYXNCaW5hcnlEYXRhKQogICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CiAKICAgICAgICAgVmVjdG9yPHVpbnQ4X3Q+IGJ5dGVzOwotICAgICAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlQnl0ZXMoImJpbmFyeSIsIGJ5dGVzKSkKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZUJ5dGVzKCJiaW5hcnkiX3MsIGJ5dGVzKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
IAogICAgICAgICByZXN1bHQubV92YWx1ZSA9IFRocmVhZFNhZmVEYXRhQnVmZmVyOjpjcmVhdGUo
V1RGTW92ZShieXRlcykpOwpAQCAtMjUyLDcgKzI1Miw3IEBAIGJvb2wgSURCS2V5RGF0YTo6ZGVj
b2RlKEtleWVkRGVjb2RlciYgZGVjb2RlciwgSURCS2V5RGF0YSYgcmVzdWx0KQogICAgIH07CiAg
ICAgCiAgICAgcmVzdWx0Lm1fdmFsdWUgPSBWZWN0b3I8SURCS2V5RGF0YT4oKTsKLSAgICByZXR1
cm4gZGVjb2Rlci5kZWNvZGVPYmplY3RzKCJhcnJheSIsIHN0ZDo6Z2V0PFZlY3RvcjxJREJLZXlE
YXRhPj4ocmVzdWx0Lm1fdmFsdWUpLCBhcnJheUZ1bmN0aW9uKTsKKyAgICByZXR1cm4gZGVjb2Rl
ci5kZWNvZGVPYmplY3RzKCJhcnJheSJfcywgc3RkOjpnZXQ8VmVjdG9yPElEQktleURhdGE+Pihy
ZXN1bHQubV92YWx1ZSksIGFycmF5RnVuY3Rpb24pOwogfQogCiBpbnQgSURCS2V5RGF0YTo6Y29t
cGFyZShjb25zdCBJREJLZXlEYXRhJiBvdGhlcikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleVJhbmdlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQktleVJhbmdlLmNwcAppbmRleCAxNGYzMDNhMDRjMjNhOGJm
NDdiZjA2NTlmOTI4NzkyNGY5NjEzYWZiLi5kZWY1MDQ4MTdhZDAzODIyNDc0ZGQyZjVkMTZkMzY5
MGJiOTdmNGE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJLZXlSYW5nZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
S2V5UmFuZ2UuY3BwCkBAIC0xMzcsNyArMTM3LDcgQEAgRXhjZXB0aW9uT3I8Ym9vbD4gSURCS2V5
UmFuZ2U6OmluY2x1ZGVzKEpTQzo6SlNHbG9iYWxPYmplY3QmIHN0YXRlLCBKU0M6OkpTVmFsdWUK
ICAgICBhdXRvIGtleSA9IHNjcmlwdFZhbHVlVG9JREJLZXkoc3RhdGUsIGtleVZhbHVlKTsKICAg
ICBFWENFUFRJT05fQVNTRVJUX1VOVVNFRChzY29wZSwgIXNjb3BlLmV4Y2VwdGlvbigpIHx8ICFr
ZXktPmlzVmFsaWQoKSk7CiAgICAgaWYgKCFrZXktPmlzVmFsaWQoKSkKLSAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IERhdGFFcnJvciwgIkZhaWxlZCB0byBleGVjdXRlICdpbmNsdWRlcycgb24g
J0lEQktleVJhbmdlJzogVGhlIHBhc3NlZC1pbiB2YWx1ZSBpcyBub3QgYSB2YWxpZCBJbmRleGVk
REIga2V5LiIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IERhdGFFcnJvciwgIkZhaWxl
ZCB0byBleGVjdXRlICdpbmNsdWRlcycgb24gJ0lEQktleVJhbmdlJzogVGhlIHBhc3NlZC1pbiB2
YWx1ZSBpcyBub3QgYSB2YWxpZCBJbmRleGVkREIga2V5LiJfcyB9OwogCiAgICAgaWYgKG1fbG93
ZXIpIHsKICAgICAgICAgaW50IGNvbXBhcmUgPSBtX2xvd2VyLT5jb21wYXJlKGtleS5nZXQoKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURC
U2VyaWFsaXphdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2
ZXIvSURCU2VyaWFsaXphdGlvbi5jcHAKaW5kZXggMmEyYzFmYzMyOTU4MDVkNTJmZDU2YWYzMGI0
NTVhZTJjY2NjNDg3Ny4uMzNkNGQ0MWM5Mjc3YmZmMjk3MTM3NTJjODkxZDJjOTA5MWFkMzVjYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNl
cmlhbGl6YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3Nl
cnZlci9JREJTZXJpYWxpemF0aW9uLmNwcApAQCAtNDUsMTcgKzQ1LDE3IEBAIFJlZlB0cjxTaGFy
ZWRCdWZmZXI+IHNlcmlhbGl6ZUlEQktleVBhdGgoY29uc3Qgc3RkOjpvcHRpb25hbDxJREJLZXlQ
YXRoPiYga2V5UGF0CiAKICAgICBpZiAoa2V5UGF0aCkgewogICAgICAgICBhdXRvIHZpc2l0b3Ig
PSBXVEY6Om1ha2VWaXNpdG9yKFsmXShjb25zdCBTdHJpbmcmIHN0cmluZykgewotICAgICAgICAg
ICAgZW5jb2Rlci0+ZW5jb2RlRW51bSgidHlwZSIsIEtleVBhdGhUeXBlOjpTdHJpbmcpOwotICAg
ICAgICAgICAgZW5jb2Rlci0+ZW5jb2RlU3RyaW5nKCJzdHJpbmciLCBzdHJpbmcpOworICAgICAg
ICAgICAgZW5jb2Rlci0+ZW5jb2RlRW51bSgidHlwZSJfcywgS2V5UGF0aFR5cGU6OlN0cmluZyk7
CisgICAgICAgICAgICBlbmNvZGVyLT5lbmNvZGVTdHJpbmcoInN0cmluZyJfcywgc3RyaW5nKTsK
ICAgICAgICAgfSwgWyZdKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiB2ZWN0b3IpIHsKLSAgICAgICAg
ICAgIGVuY29kZXItPmVuY29kZUVudW0oInR5cGUiLCBLZXlQYXRoVHlwZTo6QXJyYXkpOwotICAg
ICAgICAgICAgZW5jb2Rlci0+ZW5jb2RlT2JqZWN0cygiYXJyYXkiLCB2ZWN0b3IuYmVnaW4oKSwg
dmVjdG9yLmVuZCgpLCBbXShXZWJDb3JlOjpLZXllZEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFN0
cmluZyYgc3RyaW5nKSB7Ci0gICAgICAgICAgICAgICAgZW5jb2Rlci5lbmNvZGVTdHJpbmcoInN0
cmluZyIsIHN0cmluZyk7CisgICAgICAgICAgICBlbmNvZGVyLT5lbmNvZGVFbnVtKCJ0eXBlIl9z
LCBLZXlQYXRoVHlwZTo6QXJyYXkpOworICAgICAgICAgICAgZW5jb2Rlci0+ZW5jb2RlT2JqZWN0
cygiYXJyYXkiX3MsIHZlY3Rvci5iZWdpbigpLCB2ZWN0b3IuZW5kKCksIFtdKFdlYkNvcmU6Oktl
eWVkRW5jb2RlciYgZW5jb2RlciwgY29uc3QgU3RyaW5nJiBzdHJpbmcpIHsKKyAgICAgICAgICAg
ICAgICBlbmNvZGVyLmVuY29kZVN0cmluZygic3RyaW5nIl9zLCBzdHJpbmcpOwogICAgICAgICAg
ICAgfSk7CiAgICAgICAgIH0pOwogICAgICAgICBzdGQ6OnZpc2l0KHZpc2l0b3IsIGtleVBhdGgu
dmFsdWUoKSk7CiAgICAgfSBlbHNlCi0gICAgICAgIGVuY29kZXItPmVuY29kZUVudW0oInR5cGUi
LCBLZXlQYXRoVHlwZTo6TnVsbCk7CisgICAgICAgIGVuY29kZXItPmVuY29kZUVudW0oInR5cGUi
X3MsIEtleVBhdGhUeXBlOjpOdWxsKTsKIAogICAgIHJldHVybiBlbmNvZGVyLT5maW5pc2hFbmNv
ZGluZygpOwogfQpAQCAtNjgsNyArNjgsNyBAQCBib29sIGRlc2VyaWFsaXplSURCS2V5UGF0aChj
b25zdCB1aW50OF90KiBkYXRhLCBzaXplX3Qgc2l6ZSwgc3RkOjpvcHRpb25hbDxJREJLZQogICAg
IGF1dG8gZGVjb2RlciA9IEtleWVkRGVjb2Rlcjo6ZGVjb2RlcihkYXRhLCBzaXplKTsKIAogICAg
IEtleVBhdGhUeXBlIHR5cGU7Ci0gICAgYm9vbCBzdWNjZWVkZWQgPSBkZWNvZGVyLT5kZWNvZGVF
bnVtKCJ0eXBlIiwgdHlwZSwgW10oS2V5UGF0aFR5cGUgdmFsdWUpIHsKKyAgICBib29sIHN1Y2Nl
ZWRlZCA9IGRlY29kZXItPmRlY29kZUVudW0oInR5cGUiX3MsIHR5cGUsIFtdKEtleVBhdGhUeXBl
IHZhbHVlKSB7CiAgICAgICAgIHJldHVybiB2YWx1ZSA9PSBLZXlQYXRoVHlwZTo6TnVsbCB8fCB2
YWx1ZSA9PSBLZXlQYXRoVHlwZTo6U3RyaW5nIHx8IHZhbHVlID09IEtleVBhdGhUeXBlOjpBcnJh
eTsKICAgICB9KTsKICAgICBpZiAoIXN1Y2NlZWRlZCkKQEAgLTc5LDE1ICs3OSwxNSBAQCBib29s
IGRlc2VyaWFsaXplSURCS2V5UGF0aChjb25zdCB1aW50OF90KiBkYXRhLCBzaXplX3Qgc2l6ZSwg
c3RkOjpvcHRpb25hbDxJREJLZQogICAgICAgICBicmVhazsKICAgICBjYXNlIEtleVBhdGhUeXBl
OjpTdHJpbmc6IHsKICAgICAgICAgU3RyaW5nIHN0cmluZzsKLSAgICAgICAgaWYgKCFkZWNvZGVy
LT5kZWNvZGVTdHJpbmcoInN0cmluZyIsIHN0cmluZykpCisgICAgICAgIGlmICghZGVjb2Rlci0+
ZGVjb2RlU3RyaW5nKCJzdHJpbmciX3MsIHN0cmluZykpCiAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgICAgIHJlc3VsdCA9IElEQktleVBhdGgoV1RGTW92ZShzdHJpbmcpKTsKICAgICAg
ICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgS2V5UGF0aFR5cGU6OkFycmF5OiB7CiAgICAgICAg
IFZlY3RvcjxTdHJpbmc+IHZlY3RvcjsKLSAgICAgICAgc3VjY2VlZGVkID0gZGVjb2Rlci0+ZGVj
b2RlT2JqZWN0cygiYXJyYXkiLCB2ZWN0b3IsIFtdKEtleWVkRGVjb2RlciYgZGVjb2RlciwgU3Ry
aW5nJiByZXN1bHQpIHsKLSAgICAgICAgICAgIHJldHVybiBkZWNvZGVyLmRlY29kZVN0cmluZygi
c3RyaW5nIiwgcmVzdWx0KTsKKyAgICAgICAgc3VjY2VlZGVkID0gZGVjb2Rlci0+ZGVjb2RlT2Jq
ZWN0cygiYXJyYXkiX3MsIHZlY3RvciwgW10oS2V5ZWREZWNvZGVyJiBkZWNvZGVyLCBTdHJpbmcm
IHJlc3VsdCkgeworICAgICAgICAgICAgcmV0dXJuIGRlY29kZXIuZGVjb2RlU3RyaW5nKCJzdHJp
bmciX3MsIHJlc3VsdCk7CiAgICAgICAgIH0pOwogICAgICAgICBpZiAoIXN1Y2NlZWRlZCkKICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHAKaW5kZXggNzdkZjY2N2Q0MDk5ZDZmYjdk
ODVhMDU1YzIwMDRlNjdiMmFiNWIxZC4uNDg2MDE1ZjdiOTZjMjZiZTZiYWE0MmFhNWZiZDc4ODZm
MTQ4YjQ3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2Vy
dmVyL0lEQlNlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL0lEQlNlcnZlci5jcHAKQEAgLTUzMCwxMCArNTMwLDEwIEBAIHZvaWQgSURCU2VydmVy
OjpnZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMoSURCQ29ubmVjdGlvbklkZW50aWZpZXIg
c2VydmVyQ29uCiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKFdURk1vdmUoKm5hbWVBbmRWZXJz
aW9uKSk7CiAgICAgfQogCi0gICAgYXV0byBvbGREaXJlY3RvcnkgPSBJREJEYXRhYmFzZUlkZW50
aWZpZXI6OmRhdGFiYXNlRGlyZWN0b3J5UmVsYXRpdmVUb1Jvb3Qob3JpZ2luLCBtX2RhdGFiYXNl
RGlyZWN0b3J5UGF0aCwgInYwIik7CisgICAgYXV0byBvbGREaXJlY3RvcnkgPSBJREJEYXRhYmFz
ZUlkZW50aWZpZXI6OmRhdGFiYXNlRGlyZWN0b3J5UmVsYXRpdmVUb1Jvb3Qob3JpZ2luLCBtX2Rh
dGFiYXNlRGlyZWN0b3J5UGF0aCwgInYwIl9zKTsKICAgICBnZXREYXRhYmFzZU5hbWVBbmRWZXJz
aW9uRnJvbU9yaWdpbkRpcmVjdG9yeShvbGREaXJlY3RvcnksIHZpc2l0ZWREYXRhYmFzZVBhdGhz
LCByZXN1bHQpOwogCi0gICAgYXV0byBkaXJlY3RvcnkgPSBJREJEYXRhYmFzZUlkZW50aWZpZXI6
OmRhdGFiYXNlRGlyZWN0b3J5UmVsYXRpdmVUb1Jvb3Qob3JpZ2luLCBtX2RhdGFiYXNlRGlyZWN0
b3J5UGF0aCwgInYxIik7CisgICAgYXV0byBkaXJlY3RvcnkgPSBJREJEYXRhYmFzZUlkZW50aWZp
ZXI6OmRhdGFiYXNlRGlyZWN0b3J5UmVsYXRpdmVUb1Jvb3Qob3JpZ2luLCBtX2RhdGFiYXNlRGly
ZWN0b3J5UGF0aCwgInYxIl9zKTsKICAgICBnZXREYXRhYmFzZU5hbWVBbmRWZXJzaW9uRnJvbU9y
aWdpbkRpcmVjdG9yeShkaXJlY3RvcnksIHZpc2l0ZWREYXRhYmFzZVBhdGhzLCByZXN1bHQpOwog
CiAgICAgYXV0byBjb25uZWN0aW9uID0gbV9jb25uZWN0aW9uTWFwLmdldChzZXJ2ZXJDb25uZWN0
aW9uSWRlbnRpZmllcik7CkBAIC01NjYsOCArNTY2LDggQEAgSGFzaFNldDxTZWN1cml0eU9yaWdp
bkRhdGE+IElEQlNlcnZlcjo6Z2V0T3JpZ2lucygpIGNvbnN0CiAgICAgICAgIHJldHVybiB7IH07
CiAKICAgICBIYXNoU2V0PFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4gc2VjdXJpdHlPcmln
aW5zOwotICAgIGNvbGxlY3RPcmlnaW5zRm9yVmVyc2lvbihGaWxlU3lzdGVtOjpwYXRoQnlBcHBl
bmRpbmdDb21wb25lbnQobV9kYXRhYmFzZURpcmVjdG9yeVBhdGgsICJ2MCIpLCBzZWN1cml0eU9y
aWdpbnMpOwotICAgIGNvbGxlY3RPcmlnaW5zRm9yVmVyc2lvbihGaWxlU3lzdGVtOjpwYXRoQnlB
cHBlbmRpbmdDb21wb25lbnQobV9kYXRhYmFzZURpcmVjdG9yeVBhdGgsICJ2MSIpLCBzZWN1cml0
eU9yaWdpbnMpOworICAgIGNvbGxlY3RPcmlnaW5zRm9yVmVyc2lvbihGaWxlU3lzdGVtOjpwYXRo
QnlBcHBlbmRpbmdDb21wb25lbnQobV9kYXRhYmFzZURpcmVjdG9yeVBhdGgsICJ2MCJfcyksIHNl
Y3VyaXR5T3JpZ2lucyk7CisgICAgY29sbGVjdE9yaWdpbnNGb3JWZXJzaW9uKEZpbGVTeXN0ZW06
OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChtX2RhdGFiYXNlRGlyZWN0b3J5UGF0aCwgInYxIl9z
KSwgc2VjdXJpdHlPcmlnaW5zKTsKIAogICAgIHJldHVybiBzZWN1cml0eU9yaWdpbnM7CiB9CkBA
IC01ODgsOCArNTg4LDggQEAgdm9pZCBJREJTZXJ2ZXI6OmNsb3NlQW5kRGVsZXRlRGF0YWJhc2Vz
TW9kaWZpZWRTaW5jZShXYWxsVGltZSBtb2RpZmljYXRpb25UaW1lKQogICAgIG1fdW5pcXVlSURC
RGF0YWJhc2VNYXAuY2xlYXIoKTsKIAogICAgIGlmICghbV9kYXRhYmFzZURpcmVjdG9yeVBhdGgu
aXNFbXB0eSgpKSB7Ci0gICAgICAgIHJlbW92ZURhdGFiYXNlc01vZGlmaWVkU2luY2VGb3JWZXJz
aW9uKG1vZGlmaWNhdGlvblRpbWUsICJ2MCIpOwotICAgICAgICByZW1vdmVEYXRhYmFzZXNNb2Rp
ZmllZFNpbmNlRm9yVmVyc2lvbihtb2RpZmljYXRpb25UaW1lLCAidjEiKTsKKyAgICAgICAgcmVt
b3ZlRGF0YWJhc2VzTW9kaWZpZWRTaW5jZUZvclZlcnNpb24obW9kaWZpY2F0aW9uVGltZSwgInYw
Il9zKTsKKyAgICAgICAgcmVtb3ZlRGF0YWJhc2VzTW9kaWZpZWRTaW5jZUZvclZlcnNpb24obW9k
aWZpY2F0aW9uVGltZSwgInYxIl9zKTsKICAgICB9CiB9CiAKQEAgLTYyNCw4ICs2MjQsOCBAQCB2
b2lkIElEQlNlcnZlcjo6Y2xvc2VBbmREZWxldGVEYXRhYmFzZXNGb3JPcmlnaW5zKGNvbnN0IFZl
Y3RvcjxTZWN1cml0eU9yaWdpbkRhdAogICAgIH0pOwogCiAgICAgaWYgKCFtX2RhdGFiYXNlRGly
ZWN0b3J5UGF0aC5pc0VtcHR5KCkpIHsKLSAgICAgICAgcmVtb3ZlRGF0YWJhc2VzV2l0aE9yaWdp
bnNGb3JWZXJzaW9uKG9yaWdpbnMsICJ2MCIpOwotICAgICAgICByZW1vdmVEYXRhYmFzZXNXaXRo
T3JpZ2luc0ZvclZlcnNpb24ob3JpZ2lucywgInYxIik7CisgICAgICAgIHJlbW92ZURhdGFiYXNl
c1dpdGhPcmlnaW5zRm9yVmVyc2lvbihvcmlnaW5zLCAidjAiX3MpOworICAgICAgICByZW1vdmVE
YXRhYmFzZXNXaXRoT3JpZ2luc0ZvclZlcnNpb24ob3JpZ2lucywgInYxIl9zKTsKICAgICB9CiB9
CiAKQEAgLTYzNiw3ICs2MzYsNyBAQCBzdGF0aWMgdm9pZCByZW1vdmVBbGxEYXRhYmFzZXNGb3JG
dWxsT3JpZ2luUGF0aChjb25zdCBTdHJpbmcmIG9yaWdpblBhdGgsIFdhbGxUaQogCiAgICAgZm9y
IChhdXRvJiBkYXRhYmFzZU5hbWUgOiBkYXRhYmFzZU5hbWVzKSB7CiAgICAgICAgIGF1dG8gZGF0
YWJhc2VQYXRoID0gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KG9yaWdpblBh
dGgsIGRhdGFiYXNlTmFtZSk7Ci0gICAgICAgIFN0cmluZyBkYXRhYmFzZUZpbGUgPSBGaWxlU3lz
dGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoZGF0YWJhc2VQYXRoLCAiSW5kZXhlZERCLnNx
bGl0ZTMiKTsKKyAgICAgICAgU3RyaW5nIGRhdGFiYXNlRmlsZSA9IEZpbGVTeXN0ZW06OnBhdGhC
eUFwcGVuZGluZ0NvbXBvbmVudChkYXRhYmFzZVBhdGgsICJJbmRleGVkREIuc3FsaXRlMyJfcyk7
CiAgICAgICAgIGlmIChtb2RpZmllZFNpbmNlID4gLVdhbGxUaW1lOjppbmZpbml0eSgpICYmIEZp
bGVTeXN0ZW06OmZpbGVFeGlzdHMoZGF0YWJhc2VGaWxlKSkgewogICAgICAgICAgICAgYXV0byBt
b2RpZmljYXRpb25UaW1lID0gRmlsZVN5c3RlbTo6ZmlsZU1vZGlmaWNhdGlvblRpbWUoZGF0YWJh
c2VGaWxlKTsKICAgICAgICAgICAgIGlmICghbW9kaWZpY2F0aW9uVGltZSkKQEAgLTczMiw3ICs3
MzIsNyBAQCB2b2lkIElEQlNlcnZlcjo6cmVuYW1lT3JpZ2luKGNvbnN0IFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luRGF0YSYgb2xkT3JpZ2luLCBjb25zdAogICAgICAgICByZXR1cm4gZGF0YWJhc2VP
cmlnaW4udG9wT3JpZ2luID09IHRhcmdldE9yaWdpbjsKICAgICB9KTsKIAotICAgIGF1dG8gdmVy
c2lvblBhdGggPSBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQobV9kYXRhYmFz
ZURpcmVjdG9yeVBhdGgsICJ2MSIpOworICAgIGF1dG8gdmVyc2lvblBhdGggPSBGaWxlU3lzdGVt
OjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQobV9kYXRhYmFzZURpcmVjdG9yeVBhdGgsICJ2MSJf
cyk7CiAgICAgYXV0byBvbGRPcmlnaW5QYXRoID0gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5n
Q29tcG9uZW50KHZlcnNpb25QYXRoLCBvbGRPcmlnaW4uZGF0YWJhc2VJZGVudGlmaWVyKCkpOwog
ICAgIGF1dG8gbmV3T3JpZ2luUGF0aCA9IEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBv
bmVudCh2ZXJzaW9uUGF0aCwgbmV3T3JpZ2luLmRhdGFiYXNlSWRlbnRpZmllcigpKTsKICAgICBp
ZiAoRmlsZVN5c3RlbTo6ZmlsZUV4aXN0cyhvbGRPcmlnaW5QYXRoKSkKQEAgLTc2OCwxNiArNzY4
LDE2IEBAIHZvaWQgSURCU2VydmVyOjp1cGdyYWRlRmlsZXNJZk5lY2Vzc2FyeSgpCiAgICAgaWYg
KG1fZGF0YWJhc2VEaXJlY3RvcnlQYXRoLmlzRW1wdHkoKSB8fCAhRmlsZVN5c3RlbTo6ZmlsZUV4
aXN0cyhtX2RhdGFiYXNlRGlyZWN0b3J5UGF0aCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFN0
cmluZyBuZXdWZXJzaW9uRGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29t
cG9uZW50KG1fZGF0YWJhc2VEaXJlY3RvcnlQYXRoLCAidjEiKTsKKyAgICBTdHJpbmcgbmV3VmVy
c2lvbkRpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChtX2Rh
dGFiYXNlRGlyZWN0b3J5UGF0aCwgInYxIl9zKTsKICAgICBpZiAoIUZpbGVTeXN0ZW06OmZpbGVF
eGlzdHMobmV3VmVyc2lvbkRpcmVjdG9yeSkpCiAgICAgICAgIEZpbGVTeXN0ZW06Om1ha2VBbGxE
aXJlY3RvcmllcyhuZXdWZXJzaW9uRGlyZWN0b3J5KTsKIH0KIAogU3RyaW5nIElEQlNlcnZlcjo6
dXBncmFkZWREYXRhYmFzZURpcmVjdG9yeShjb25zdCBXZWJDb3JlOjpJREJEYXRhYmFzZUlkZW50
aWZpZXImIGlkZW50aWZpZXIpCiB7Ci0gICAgU3RyaW5nIG9sZE9yaWdpbkRpcmVjdG9yeSA9IGlk
ZW50aWZpZXIuZGF0YWJhc2VEaXJlY3RvcnlSZWxhdGl2ZVRvUm9vdChtX2RhdGFiYXNlRGlyZWN0
b3J5UGF0aCwgInYwIik7CisgICAgU3RyaW5nIG9sZE9yaWdpbkRpcmVjdG9yeSA9IGlkZW50aWZp
ZXIuZGF0YWJhc2VEaXJlY3RvcnlSZWxhdGl2ZVRvUm9vdChtX2RhdGFiYXNlRGlyZWN0b3J5UGF0
aCwgInYwIl9zKTsKICAgICBTdHJpbmcgb2xkRGF0YWJhc2VEaXJlY3RvcnkgPSBGaWxlU3lzdGVt
OjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQob2xkT3JpZ2luRGlyZWN0b3J5LCBTUUxpdGVJREJC
YWNraW5nU3RvcmU6OmVuY29kZURhdGFiYXNlTmFtZShpZGVudGlmaWVyLmRhdGFiYXNlTmFtZSgp
KSk7Ci0gICAgU3RyaW5nIG5ld09yaWdpbkRpcmVjdG9yeSA9IGlkZW50aWZpZXIuZGF0YWJhc2VE
aXJlY3RvcnlSZWxhdGl2ZVRvUm9vdChtX2RhdGFiYXNlRGlyZWN0b3J5UGF0aCwgInYxIik7Cisg
ICAgU3RyaW5nIG5ld09yaWdpbkRpcmVjdG9yeSA9IGlkZW50aWZpZXIuZGF0YWJhc2VEaXJlY3Rv
cnlSZWxhdGl2ZVRvUm9vdChtX2RhdGFiYXNlRGlyZWN0b3J5UGF0aCwgInYxIl9zKTsKICAgICBT
dHJpbmcgZmlsZU5hbWVIYXNoID0gU1FMaXRlRmlsZVN5c3RlbTo6Y29tcHV0ZUhhc2hGb3JGaWxl
TmFtZShpZGVudGlmaWVyLmRhdGFiYXNlTmFtZSgpKTsKICAgICBTdHJpbmcgbmV3RGF0YWJhc2VE
aXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQobmV3T3JpZ2lu
RGlyZWN0b3J5LCBmaWxlTmFtZUhhc2gpOwogICAgIEZpbGVTeXN0ZW06Om1ha2VBbGxEaXJlY3Rv
cmllcyhuZXdEYXRhYmFzZURpcmVjdG9yeSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5SURCQmFja2luZ1N0b3JlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlJREJCYWNraW5nU3RvcmUu
Y3BwCmluZGV4IGQ2MzM1MDMwOTkzMDU1YjliMTJiNzg0NTY1NWRhODMzNzJiMWE1NTAuLjFjMjdh
ZDYxNzlmMWJlYWQwZmYxYTZkZWNmYjlhZTJiNWU5NTNmOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlJREJCYWNraW5nU3RvcmUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlJREJC
YWNraW5nU3RvcmUuY3BwCkBAIC03OCw3ICs3OCw3IEBAIElEQkVycm9yIE1lbW9yeUlEQkJhY2tp
bmdTdG9yZTo6YmVnaW5UcmFuc2FjdGlvbihjb25zdCBJREJUcmFuc2FjdGlvbkluZm8mIGluZm8p
CiAgICAgTE9HKEluZGV4ZWREQiwgIk1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6YmVnaW5UcmFuc2Fj
dGlvbiIpOwogCiAgICAgaWYgKG1fdHJhbnNhY3Rpb25zLmNvbnRhaW5zKGluZm8uaWRlbnRpZmll
cigpKSkKLSAgICAgICAgcmV0dXJuIElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNr
aW5nIHN0b3JlIGFza2VkIHRvIGNyZWF0ZSB0cmFuc2FjdGlvbiBpdCBhbHJlYWR5IGhhcyBhIHJl
Y29yZCBvZiIgfTsKKyAgICAgICAgcmV0dXJuIElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3Is
ICJCYWNraW5nIHN0b3JlIGFza2VkIHRvIGNyZWF0ZSB0cmFuc2FjdGlvbiBpdCBhbHJlYWR5IGhh
cyBhIHJlY29yZCBvZiJfcyB9OwogCiAgICAgYXV0byB0cmFuc2FjdGlvbiA9IE1lbW9yeUJhY2tp
bmdTdG9yZVRyYW5zYWN0aW9uOjpjcmVhdGUoKnRoaXMsIGluZm8pOwogCkBAIC0xMDQsNyArMTA0
LDcgQEAgSURCRXJyb3IgTWVtb3J5SURCQmFja2luZ1N0b3JlOjphYm9ydFRyYW5zYWN0aW9uKGNv
bnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHIKIAogICAgIGF1dG8gdHJhbnNhY3Rpb24gPSBt
X3RyYW5zYWN0aW9ucy50YWtlKHRyYW5zYWN0aW9uSWRlbnRpZmllcik7CiAgICAgaWYgKCF0cmFu
c2FjdGlvbikKLSAgICAgICAgcmV0dXJuIElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJC
YWNraW5nIHN0b3JlIGFza2VkIHRvIGFib3J0IHRyYW5zYWN0aW9uIGl0IGRpZG4ndCBoYXZlIHJl
Y29yZCBvZiIgfTsKKyAgICAgICAgcmV0dXJuIElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3Is
ICJCYWNraW5nIHN0b3JlIGFza2VkIHRvIGFib3J0IHRyYW5zYWN0aW9uIGl0IGRpZG4ndCBoYXZl
IHJlY29yZCBvZiJfcyB9OwogCiAgICAgdHJhbnNhY3Rpb24tPmFib3J0KCk7CiAKQEAgLTExNyw3
ICsxMTcsNyBAQCBJREJFcnJvciBNZW1vcnlJREJCYWNraW5nU3RvcmU6OmNvbW1pdFRyYW5zYWN0
aW9uKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdAogCiAgICAgYXV0byB0cmFuc2FjdGlv
biA9IG1fdHJhbnNhY3Rpb25zLnRha2UodHJhbnNhY3Rpb25JZGVudGlmaWVyKTsKICAgICBpZiAo
IXRyYW5zYWN0aW9uKQotICAgICAgICByZXR1cm4gSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJv
ciwgIkJhY2tpbmcgc3RvcmUgYXNrZWQgdG8gY29tbWl0IHRyYW5zYWN0aW9uIGl0IGRpZG4ndCBo
YXZlIHJlY29yZCBvZiIgfTsKKyAgICAgICAgcmV0dXJuIElEQkVycm9yIHsgSW52YWxpZFN0YXRl
RXJyb3IsICJCYWNraW5nIHN0b3JlIGFza2VkIHRvIGNvbW1pdCB0cmFuc2FjdGlvbiBpdCBkaWRu
J3QgaGF2ZSByZWNvcmQgb2YiX3MgfTsKIAogICAgIHRyYW5zYWN0aW9uLT5jb21taXQoKTsKIApA
QCAtNDczLDcgKzQ3Myw3IEBAIElEQkVycm9yIE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6Z2VuZXJh
dGVLZXlOdW1iZXIoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0CiAKICAgICBrZXlOdW1i
ZXIgPSBvYmplY3RTdG9yZS0+Y3VycmVudEtleUdlbmVyYXRvclZhbHVlKCk7CiAgICAgaWYgKGtl
eU51bWJlciA+IG1heEdlbmVyYXRlZEtleVZhbHVlKQotICAgICAgICByZXR1cm4gSURCRXJyb3Ig
eyBDb25zdHJhaW50RXJyb3IsICJDYW5ub3QgZ2VuZXJhdGUgbmV3IGtleSB2YWx1ZSBvdmVyIDJe
NTMgZm9yIG9iamVjdCBzdG9yZSBvcGVyYXRpb24iIH07CisgICAgICAgIHJldHVybiBJREJFcnJv
ciB7IENvbnN0cmFpbnRFcnJvciwgIkNhbm5vdCBnZW5lcmF0ZSBuZXcga2V5IHZhbHVlIG92ZXIg
Ml41MyBmb3Igb2JqZWN0IHN0b3JlIG9wZXJhdGlvbiJfcyB9OwogCiAgICAgb2JqZWN0U3RvcmUt
PnNldEtleUdlbmVyYXRvclZhbHVlKGtleU51bWJlciArIDEpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5T2JqZWN0U3RvcmUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeU9iamVjdFN0
b3JlLmNwcAppbmRleCA3ZWY5ZDBhMzg3ZjcyN2Q4NWVjMGRlZWY2ZDNjYWUwZGVkMDE1OGNmLi44
OTIzMWI0YWUyNDk2OGU4OWIwZDc1ODExNTFmNTI4ZWUzZTJmYjRlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5T2JqZWN0U3RvcmUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlPYmpl
Y3RTdG9yZS5jcHAKQEAgLTMxMCw3ICszMTAsNyBAQCBJREJFcnJvciBNZW1vcnlPYmplY3RTdG9y
ZTo6dXBkYXRlSW5kZXhlc0ZvclB1dFJlY29yZChjb25zdCBJREJLZXlEYXRhJiBrZXksIGNvbgog
ICAgICAgICBhdXRvKiBpbmRleCA9IG1faW5kZXhlc0J5SWRlbnRpZmllci5nZXQoaW5kZXhJRCk7
CiAgICAgICAgIEFTU0VSVChpbmRleCk7CiAgICAgICAgIGlmICghaW5kZXgpIHsKLSAgICAgICAg
ICAgIGVycm9yID0gSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIk1pc3NpbmcgaW5kZXgg
bWV0YWRhdGEiIH07CisgICAgICAgICAgICBlcnJvciA9IElEQkVycm9yIHsgSW52YWxpZFN0YXRl
RXJyb3IsICJNaXNzaW5nIGluZGV4IG1ldGFkYXRhIl9zIH07CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuY3BwCmluZGV4IDJmYWYz
ZTk1ZDMxYzk4OWZjZTEyZTA1N2YwNmMyMmUyZmY3M2M0NmUuLmNiZDQ2Mjc5MDc4Nzc4MDJmMzhj
NmE0ZGZiNjZjMWEyMjMxZGIzY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuY3Bw
CkBAIC05OCwzNyArOTgsMzcgQEAgc3RhdGljIGludCBpZGJLZXlDb2xsYXRlKGludCBhTGVuZ3Ro
LCBjb25zdCB2b2lkKiBhQnVmZmVyLCBpbnQgYkxlbmd0aCwgY29uc3Qgdm8KICAgICByZXR1cm4g
YS5jb21wYXJlKGIpOwogfQogCi1zdGF0aWMgY29uc3QgU3RyaW5nIHYxUmVjb3Jkc1RhYmxlU2No
ZW1hKGNvbnN0IFN0cmluZyYgdGFibGVOYW1lKQorc3RhdGljIGNvbnN0IFN0cmluZyB2MVJlY29y
ZHNUYWJsZVNjaGVtYShBU0NJSUxpdGVyYWwgdGFibGVOYW1lKQogewogICAgIHJldHVybiBtYWtl
U3RyaW5nKCJDUkVBVEUgVEFCTEUgIiwgdGFibGVOYW1lLCAiIChvYmplY3RTdG9yZUlEIElOVEVH
RVIgTk9UIE5VTEwgT04gQ09ORkxJQ1QgRkFJTCwga2V5IFRFWFQgQ09MTEFURSBJREJLRVkgTk9U
IE5VTEwgT04gQ09ORkxJQ1QgRkFJTCBVTklRVUUgT04gQ09ORkxJQ1QgUkVQTEFDRSwgdmFsdWUg
Tk9UIE5VTEwgT04gQ09ORkxJQ1QgRkFJTCkiKTsKIH0KIAogc3RhdGljIGNvbnN0IFN0cmluZyYg
djFSZWNvcmRzVGFibGVTY2hlbWEoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJp
bmc+IHYxUmVjb3Jkc1RhYmxlU2NoZW1hU3RyaW5nKHYxUmVjb3Jkc1RhYmxlU2NoZW1hKCJSZWNv
cmRzIikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHYxUmVjb3Jkc1RhYmxl
U2NoZW1hU3RyaW5nKHYxUmVjb3Jkc1RhYmxlU2NoZW1hKCJSZWNvcmRzIl9zKSk7CiAgICAgcmV0
dXJuIHYxUmVjb3Jkc1RhYmxlU2NoZW1hU3RyaW5nOwogfQogCiBzdGF0aWMgY29uc3QgU3RyaW5n
JiB2MVJlY29yZHNUYWJsZVNjaGVtYUFsdGVybmF0ZSgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPFN0cmluZz4gdjFSZWNvcmRzVGFibGVTY2hlbWFTdHJpbmcodjFSZWNvcmRzVGFibGVT
Y2hlbWEoIlwiUmVjb3Jkc1wiIikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+
IHYxUmVjb3Jkc1RhYmxlU2NoZW1hU3RyaW5nKHYxUmVjb3Jkc1RhYmxlU2NoZW1hKCJcIlJlY29y
ZHNcIiJfcykpOwogICAgIHJldHVybiB2MVJlY29yZHNUYWJsZVNjaGVtYVN0cmluZzsKIH0KIAot
c3RhdGljIGNvbnN0IFN0cmluZyB2MlJlY29yZHNUYWJsZVNjaGVtYShjb25zdCBTdHJpbmcmIHRh
YmxlTmFtZSkKK3N0YXRpYyBjb25zdCBTdHJpbmcgdjJSZWNvcmRzVGFibGVTY2hlbWEoQVNDSUlM
aXRlcmFsIHRhYmxlTmFtZSkKIHsKICAgICByZXR1cm4gbWFrZVN0cmluZygiQ1JFQVRFIFRBQkxF
ICIsIHRhYmxlTmFtZSwgIiAob2JqZWN0U3RvcmVJRCBJTlRFR0VSIE5PVCBOVUxMIE9OIENPTkZM
SUNUIEZBSUwsIGtleSBURVhUIENPTExBVEUgSURCS0VZIE5PVCBOVUxMIE9OIENPTkZMSUNUIEZB
SUwsIHZhbHVlIE5PVCBOVUxMIE9OIENPTkZMSUNUIEZBSUwpIik7CiB9CiAKIHN0YXRpYyBjb25z
dCBTdHJpbmcmIHYyUmVjb3Jkc1RhYmxlU2NoZW1hKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8U3RyaW5nPiB2MlJlY29yZHNUYWJsZVNjaGVtYVN0cmluZyh2MlJlY29yZHNUYWJsZVNj
aGVtYSgiUmVjb3JkcyIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiB2MlJl
Y29yZHNUYWJsZVNjaGVtYVN0cmluZyh2MlJlY29yZHNUYWJsZVNjaGVtYSgiUmVjb3JkcyJfcykp
OwogICAgIHJldHVybiB2MlJlY29yZHNUYWJsZVNjaGVtYVN0cmluZzsKIH0KIAogc3RhdGljIGNv
bnN0IFN0cmluZyYgdjJSZWNvcmRzVGFibGVTY2hlbWFBbHRlcm5hdGUoKQogewotICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHYyUmVjb3Jkc1RhYmxlU2NoZW1hU3RyaW5nKHYyUmVj
b3Jkc1RhYmxlU2NoZW1hKCJcIlJlY29yZHNcIiIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8U3RyaW5nPiB2MlJlY29yZHNUYWJsZVNjaGVtYVN0cmluZyh2MlJlY29yZHNUYWJsZVNjaGVt
YSgiXCJSZWNvcmRzXCIiX3MpKTsKICAgICByZXR1cm4gdjJSZWNvcmRzVGFibGVTY2hlbWFTdHJp
bmc7CiB9CiAKQEAgLTE0NywzNyArMTQ3LDM3IEBAIHN0YXRpYyBBU0NJSUxpdGVyYWwgdjNSZWNv
cmRzVGFibGVTY2hlbWFUZW1wKCkKICAgICByZXR1cm4gVEFCTEVfU0NIRU1BX1BSRUZJWCAiX1Rl
bXBfUmVjb3JkcyIgVjNfUkVDT1JEU19UQUJMRV9TQ0hFTUFfU1VGRklYOwogfQogCi1zdGF0aWMg
Y29uc3QgU3RyaW5nIHYxSW5kZXhSZWNvcmRzVGFibGVTY2hlbWEoY29uc3QgU3RyaW5nJiB0YWJs
ZU5hbWUpCitzdGF0aWMgY29uc3QgU3RyaW5nIHYxSW5kZXhSZWNvcmRzVGFibGVTY2hlbWEoQVND
SUlMaXRlcmFsIHRhYmxlTmFtZSkKIHsKICAgICByZXR1cm4gbWFrZVN0cmluZygiQ1JFQVRFIFRB
QkxFICIsIHRhYmxlTmFtZSwgIiAoaW5kZXhJRCBJTlRFR0VSIE5PVCBOVUxMIE9OIENPTkZMSUNU
IEZBSUwsIG9iamVjdFN0b3JlSUQgSU5URUdFUiBOT1QgTlVMTCBPTiBDT05GTElDVCBGQUlMLCBr
ZXkgVEVYVCBDT0xMQVRFIElEQktFWSBOT1QgTlVMTCBPTiBDT05GTElDVCBGQUlMLCB2YWx1ZSBO
T1QgTlVMTCBPTiBDT05GTElDVCBGQUlMKSIpOwogfQogCiBzdGF0aWMgY29uc3QgU3RyaW5nJiB2
MUluZGV4UmVjb3Jkc1RhYmxlU2NoZW1hKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
U3RyaW5nPiB2MUluZGV4UmVjb3Jkc1RhYmxlU2NoZW1hU3RyaW5nKHYxSW5kZXhSZWNvcmRzVGFi
bGVTY2hlbWEoIkluZGV4UmVjb3JkcyIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3Ry
aW5nPiB2MUluZGV4UmVjb3Jkc1RhYmxlU2NoZW1hU3RyaW5nKHYxSW5kZXhSZWNvcmRzVGFibGVT
Y2hlbWEoIkluZGV4UmVjb3JkcyJfcykpOwogICAgIHJldHVybiB2MUluZGV4UmVjb3Jkc1RhYmxl
U2NoZW1hU3RyaW5nOwogfQogCiBzdGF0aWMgY29uc3QgU3RyaW5nJiB2MUluZGV4UmVjb3Jkc1Rh
YmxlU2NoZW1hQWx0ZXJuYXRlKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5n
PiB2MUluZGV4UmVjb3Jkc1RhYmxlU2NoZW1hU3RyaW5nKHYxSW5kZXhSZWNvcmRzVGFibGVTY2hl
bWEoIlwiSW5kZXhSZWNvcmRzXCIiKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmlu
Zz4gdjFJbmRleFJlY29yZHNUYWJsZVNjaGVtYVN0cmluZyh2MUluZGV4UmVjb3Jkc1RhYmxlU2No
ZW1hKCJcIkluZGV4UmVjb3Jkc1wiIl9zKSk7CiAgICAgcmV0dXJuIHYxSW5kZXhSZWNvcmRzVGFi
bGVTY2hlbWFTdHJpbmc7CiB9CiAKLXN0YXRpYyBjb25zdCBTdHJpbmcgdjJJbmRleFJlY29yZHNU
YWJsZVNjaGVtYShjb25zdCBTdHJpbmcmIHRhYmxlTmFtZSkKK3N0YXRpYyBjb25zdCBTdHJpbmcg
djJJbmRleFJlY29yZHNUYWJsZVNjaGVtYShBU0NJSUxpdGVyYWwgdGFibGVOYW1lKQogewogICAg
IHJldHVybiBtYWtlU3RyaW5nKCJDUkVBVEUgVEFCTEUgIiwgdGFibGVOYW1lLCAiIChpbmRleElE
IElOVEVHRVIgTk9UIE5VTEwgT04gQ09ORkxJQ1QgRkFJTCwgb2JqZWN0U3RvcmVJRCBJTlRFR0VS
IE5PVCBOVUxMIE9OIENPTkZMSUNUIEZBSUwsIGtleSBURVhUIENPTExBVEUgSURCS0VZIE5PVCBO
VUxMIE9OIENPTkZMSUNUIEZBSUwsIHZhbHVlIFRFWFQgQ09MTEFURSBJREJLRVkgTk9UIE5VTEwg
T04gQ09ORkxJQ1QgRkFJTCkiKTsKIH0KIAogc3RhdGljIGNvbnN0IFN0cmluZyYgdjJJbmRleFJl
Y29yZHNUYWJsZVNjaGVtYSgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4g
djJJbmRleFJlY29yZHNUYWJsZVNjaGVtYVN0cmluZyh2MkluZGV4UmVjb3Jkc1RhYmxlU2NoZW1h
KCJJbmRleFJlY29yZHMiKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gdjJJ
bmRleFJlY29yZHNUYWJsZVNjaGVtYVN0cmluZyh2MkluZGV4UmVjb3Jkc1RhYmxlU2NoZW1hKCJJ
bmRleFJlY29yZHMiX3MpKTsKICAgICByZXR1cm4gdjJJbmRleFJlY29yZHNUYWJsZVNjaGVtYVN0
cmluZzsKIH0KIAogc3RhdGljIGNvbnN0IFN0cmluZyYgdjJJbmRleFJlY29yZHNUYWJsZVNjaGVt
YUFsdGVybmF0ZSgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gdjJJbmRl
eFJlY29yZHNUYWJsZVNjaGVtYVN0cmluZyh2MkluZGV4UmVjb3Jkc1RhYmxlU2NoZW1hKCJcIklu
ZGV4UmVjb3Jkc1wiIikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHYySW5k
ZXhSZWNvcmRzVGFibGVTY2hlbWFTdHJpbmcodjJJbmRleFJlY29yZHNUYWJsZVNjaGVtYSgiXCJJ
bmRleFJlY29yZHNcIiJfcykpOwogICAgIHJldHVybiB2MkluZGV4UmVjb3Jkc1RhYmxlU2NoZW1h
U3RyaW5nOwogfQogCkBAIC05MTQsNyArOTE0LDcgQEAgU3RyaW5nIFNRTGl0ZUlEQkJhY2tpbmdT
dG9yZTo6ZW5jb2RlRGF0YWJhc2VOYW1lKGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lKQogewog
ICAgIEFTU0VSVCghZGF0YWJhc2VOYW1lLmlzRW1wdHkoKSk7CiAgICAgaWYgKGRhdGFiYXNlTmFt
ZS5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiAiJTAwIjsKKyAgICAgICAgcmV0dXJuICIlMDAi
X3M7CiAKICAgICBTdHJpbmcgZmlsZW5hbWUgPSBGaWxlU3lzdGVtOjplbmNvZGVGb3JGaWxlTmFt
ZShkYXRhYmFzZU5hbWUpOwogICAgIGZpbGVuYW1lLnJlcGxhY2VXaXRoTGl0ZXJhbCgnLicsICIl
MkUiKTsKQEAgLTkzNSw3ICs5MzUsNyBAQCBTdHJpbmcgU1FMaXRlSURCQmFja2luZ1N0b3JlOjpk
ZWNvZGVEYXRhYmFzZU5hbWUoY29uc3QgU3RyaW5nJiBlbmNvZGVkTmFtZSkKIAogU3RyaW5nIFNR
TGl0ZUlEQkJhY2tpbmdTdG9yZTo6ZnVsbERhdGFiYXNlUGF0aEZvckRpcmVjdG9yeShjb25zdCBT
dHJpbmcmIGZ1bGxEYXRhYmFzZURpcmVjdG9yeSkKIHsKLSAgICByZXR1cm4gRmlsZVN5c3RlbTo6
cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KGZ1bGxEYXRhYmFzZURpcmVjdG9yeSwgIkluZGV4ZWRE
Qi5zcWxpdGUzIik7CisgICAgcmV0dXJuIEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBv
bmVudChmdWxsRGF0YWJhc2VEaXJlY3RvcnksICJJbmRleGVkREIuc3FsaXRlMyJfcyk7CiB9CiAK
IFN0cmluZyBTUUxpdGVJREJCYWNraW5nU3RvcmU6OmZ1bGxEYXRhYmFzZVBhdGgoKSBjb25zdApA
QCAtOTk2LDcgKzk5Niw3IEBAIElEQkVycm9yIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6Z2V0T3JF
c3RhYmxpc2hEYXRhYmFzZUluZm8oSURCRGF0YWJhc2VJbmZvJiBpbmZvCiAgICAgbV9zcWxpdGVE
Qi0+ZGlzYWJsZVRocmVhZGluZ0NoZWNrcygpOwogICAgIG1fc3FsaXRlREItPmVuYWJsZUF1dG9t
YXRpY1dBTFRydW5jYXRpb24oKTsKIAotICAgIG1fc3FsaXRlREItPnNldENvbGxhdGlvbkZ1bmN0
aW9uKCJJREJLRVkiLCBbXShpbnQgYUxlbmd0aCwgY29uc3Qgdm9pZCogYSwgaW50IGJMZW5ndGgs
IGNvbnN0IHZvaWQqIGIpIHsKKyAgICBtX3NxbGl0ZURCLT5zZXRDb2xsYXRpb25GdW5jdGlvbigi
SURCS0VZIl9zLCBbXShpbnQgYUxlbmd0aCwgY29uc3Qgdm9pZCogYSwgaW50IGJMZW5ndGgsIGNv
bnN0IHZvaWQqIGIpIHsKICAgICAgICAgcmV0dXJuIGlkYktleUNvbGxhdGUoYUxlbmd0aCwgYSwg
Ykxlbmd0aCwgYik7CiAgICAgfSk7CiAKQEAgLTE5MDksNyArMTkwOSw3IEBAIElEQkVycm9yIFNR
TGl0ZUlEQkJhY2tpbmdTdG9yZTo6dXBkYXRlQWxsSW5kZXhlc0ZvckFkZFJlY29yZChjb25zdCBJ
REJPYmplY3RTdG9yCiAgICAgICAgIEFTU0VSVChpbmRleEl0ZXJhdG9yICE9IGluZGV4TWFwLmVu
ZCgpKTsKIAogICAgICAgICBpZiAoaW5kZXhJdGVyYXRvciA9PSBpbmRleE1hcC5lbmQoKSkgewot
ICAgICAgICAgICAgZXJyb3IgPSBJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiTWlzc2lu
ZyBpbmRleCBtZXRhZGF0YSIgfTsKKyAgICAgICAgICAgIGVycm9yID0gSURCRXJyb3IgeyBJbnZh
bGlkU3RhdGVFcnJvciwgIk1pc3NpbmcgaW5kZXggbWV0YWRhdGEiX3MgfTsKICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICB9CiAKQEAgLTI1NzMsNyArMjU3Myw3IEBAIElEQkVycm9yIFNRTGl0
ZUlEQkJhY2tpbmdTdG9yZTo6dW5jaGVja2VkR2V0S2V5R2VuZXJhdG9yVmFsdWUoaW50NjRfdCBv
YmplY3RTdG9yCiAKICAgICBpbnQ2NF90IHZhbHVlID0gc3FsLT5jb2x1bW5JbnQ2NCgwKTsKICAg
ICBpZiAodmFsdWUgPCAwKQotICAgICAgICByZXR1cm4gSURCRXJyb3IgeyBDb25zdHJhaW50RXJy
b3IsICJDdXJyZW50IGtleSBnZW5lcmF0b3IgdmFsdWUgZnJvbSBkYXRhYmFzZSBpcyBpbnZhbGlk
IiB9OworICAgICAgICByZXR1cm4gSURCRXJyb3IgeyBDb25zdHJhaW50RXJyb3IsICJDdXJyZW50
IGtleSBnZW5lcmF0b3IgdmFsdWUgZnJvbSBkYXRhYmFzZSBpcyBpbnZhbGlkIl9zIH07CiAKICAg
ICBvdXRWYWx1ZSA9IHZhbHVlOwogICAgIHJldHVybiBJREJFcnJvciB7IH07CkBAIC0yNTg3LDcg
KzI1ODcsNyBAQCBJREJFcnJvciBTUUxpdGVJREJCYWNraW5nU3RvcmU6OnVuY2hlY2tlZFNldEtl
eUdlbmVyYXRvclZhbHVlKGludDY0X3Qgb2JqZWN0U3RvcgogICAgICAgICB8fCBzcWwtPmJpbmRJ
bnQ2NCgyLCB2YWx1ZSkgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8IHNxbC0+c3RlcCgpICE9IFNR
TElURV9ET05FKSB7CiAgICAgICAgIExPR19FUlJPUigiQ291bGQgbm90IHVwZGF0ZSBrZXkgZ2Vu
ZXJhdG9yIHZhbHVlICglaSkgLSAlcyIsIG1fc3FsaXRlREItPmxhc3RFcnJvcigpLCBtX3NxbGl0
ZURCLT5sYXN0RXJyb3JNc2coKSk7Ci0gICAgICAgIHJldHVybiBJREJFcnJvciB7IENvbnN0cmFp
bnRFcnJvciwgIkVycm9yIHN0b3JpbmcgbmV3IGtleSBnZW5lcmF0b3IgdmFsdWUgaW4gZGF0YWJh
c2UiIH07CisgICAgICAgIHJldHVybiBJREJFcnJvciB7IENvbnN0cmFpbnRFcnJvciwgIkVycm9y
IHN0b3JpbmcgbmV3IGtleSBnZW5lcmF0b3IgdmFsdWUgaW4gZGF0YWJhc2UiX3MgfTsKICAgICB9
CiAKICAgICByZXR1cm4gSURCRXJyb3IgeyB9OwpAQCAtMjYxNSw3ICsyNjE1LDcgQEAgSURCRXJy
b3IgU1FMaXRlSURCQmFja2luZ1N0b3JlOjpnZW5lcmF0ZUtleU51bWJlcihjb25zdCBJREJSZXNv
dXJjZUlkZW50aWZpZXImIHQKICAgICAgICAgcmV0dXJuIGVycm9yOwogCiAgICAgaWYgKGN1cnJl
bnRWYWx1ZSArIDEgPiBtYXhHZW5lcmF0b3JWYWx1ZSkKLSAgICAgICAgcmV0dXJuIElEQkVycm9y
IHsgQ29uc3RyYWludEVycm9yLCAiQ2Fubm90IGdlbmVyYXRlIG5ldyBrZXkgdmFsdWUgb3ZlciAy
XjUzIGZvciBvYmplY3Qgc3RvcmUgb3BlcmF0aW9uIiB9OworICAgICAgICByZXR1cm4gSURCRXJy
b3IgeyBDb25zdHJhaW50RXJyb3IsICJDYW5ub3QgZ2VuZXJhdGUgbmV3IGtleSB2YWx1ZSBvdmVy
IDJeNTMgZm9yIG9iamVjdCBzdG9yZSBvcGVyYXRpb24iX3MgfTsKIAogICAgIGdlbmVyYXRlZEtl
eSA9IGN1cnJlbnRWYWx1ZSArIDE7CiAgICAgcmV0dXJuIHVuY2hlY2tlZFNldEtleUdlbmVyYXRv
clZhbHVlKG9iamVjdFN0b3JlSUQsIGdlbmVyYXRlZEtleSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNl
LmNwcAppbmRleCAyM2U2ZDNmNWM4YmM2Mzc2YzMwYzY1YzRmNjcyZWU2NGMzZmFmNmYxLi43NGFk
ZWVlM2UzMWFhYWQyZDNkOTVjMjg1NWQ1MDhiOGE1NzZkMGIzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRh
YmFzZS5jcHAKQEAgLTU4OSw3ICs1ODksNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpjcmVh
dGVPYmplY3RTdG9yZShVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uJiB0cmFuc2FjdAogICAg
ICAgICBhdXRvIHRhc2tTaXplID0gZGVmYXVsdFdyaXRlT3BlcmF0aW9uQ29zdCArIGVzdGltYXRl
U2l6ZShpbmZvKTsKICAgICAgICAgbV9tYW5hZ2VyLT5yZXF1ZXN0U3BhY2UobV9pZGVudGlmaWVy
Lm9yaWdpbigpLCB0YXNrU2l6ZSwgW3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0s
IHdlYWtUcmFuc2FjdGlvbiA9IFdlYWtQdHIgeyB0cmFuc2FjdGlvbiB9LCBpbmZvLCBjYWxsYmFj
ayA9IFdURk1vdmUoY2FsbGJhY2spXShib29sIGdyYW50ZWQpIG11dGFibGUgewogICAgICAgICAg
ICAgaWYgKCF3ZWFrVGhpcyB8fCAhd2Vha1RyYW5zYWN0aW9uKQotICAgICAgICAgICAgICAgIHJl
dHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJhc2Ugb3Ig
dHJhbnNhY3Rpb24gaXMgY2xvc2VkIiB9KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJh
Y2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkRhdGFiYXNlIG9yIHRyYW5zYWN0aW9u
IGlzIGNsb3NlZCJfcyB9KTsKICAgICAgICAgICAgIGNyZWF0ZU9iamVjdFN0b3JlKCp3ZWFrVHJh
bnNhY3Rpb24sIGluZm8sIFdURk1vdmUoY2FsbGJhY2spLCBncmFudGVkID8gU3BhY2VDaGVja1Jl
c3VsdDo6UGFzcyA6IFNwYWNlQ2hlY2tSZXN1bHQ6OkZhaWwpOwogICAgICAgICB9KTsKICAgICAg
ICAgcmV0dXJuOwpAQCAtNjAxLDcgKzYwMSw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmNy
ZWF0ZU9iamVjdFN0b3JlKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mIHRyYW5zYWN0CiAg
ICAgfQogCiAgICAgaWYgKCFtX2JhY2tpbmdTdG9yZSkKLSAgICAgICAgcmV0dXJuIGNhbGxiYWNr
KElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3JlIGhhcyBjbG9zZWQi
IH0pOworICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJv
ciwgIkJhY2tpbmcgc3RvcmUgaGFzIGNsb3NlZCJfcyB9KTsKIAogICAgIGF1dG8gZXJyb3IgPSBt
X2JhY2tpbmdTdG9yZS0+Y3JlYXRlT2JqZWN0U3RvcmUodHJhbnNhY3Rpb24uaW5mbygpLmlkZW50
aWZpZXIoKSwgaW5mbyk7CiAgICAgaWYgKGVycm9yLmlzTnVsbCgpKQpAQCAtNjIxLDcgKzYyMSw3
IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmRlbGV0ZU9iamVjdFN0b3JlKFVuaXF1ZUlEQkRh
dGFiYXNlVHJhbnNhY3Rpb24mIHRyYW5zYWN0CiAKICAgICAgICAgbV9tYW5hZ2VyLT5yZXF1ZXN0
U3BhY2UobV9pZGVudGlmaWVyLm9yaWdpbigpLCAwLCBbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRy
IHsgKnRoaXMgfSwgd2Vha1RyYW5zYWN0aW9uID0gV2Vha1B0ciB7IHRyYW5zYWN0aW9uIH0sIG9i
amVjdFN0b3JlTmFtZSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oYm9vbCBncmFudGVk
KSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlmICghd2Vha1RoaXMgfHwgIXdlYWtUcmFuc2FjdGlv
bikKLSAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3Rh
dGVFcnJvciwgIkRhdGFiYXNlIG9yIHRyYW5zYWN0aW9uIGlzIGNsb3NlZCIgfSk7CisgICAgICAg
ICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJE
YXRhYmFzZSBvciB0cmFuc2FjdGlvbiBpcyBjbG9zZWQiX3MgfSk7CiAKICAgICAgICAgICAgIGRl
bGV0ZU9iamVjdFN0b3JlKCp3ZWFrVHJhbnNhY3Rpb24sIG9iamVjdFN0b3JlTmFtZSwgV1RGTW92
ZShjYWxsYmFjayksIGdyYW50ZWQgPyBTcGFjZUNoZWNrUmVzdWx0OjpQYXNzIDogU3BhY2VDaGVj
a1Jlc3VsdDo6RmFpbCk7CiAgICAgICAgIH0pOwpAQCAtNjM2LDcgKzYzNiw3IEBAIHZvaWQgVW5p
cXVlSURCRGF0YWJhc2U6OmRlbGV0ZU9iamVjdFN0b3JlKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNh
Y3Rpb24mIHRyYW5zYWN0CiAgICAgfQogCiAgICAgaWYgKCFtX2JhY2tpbmdTdG9yZSkKLSAgICAg
ICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5n
IHN0b3JlIGlzIGNsb3NlZCIgfSk7CisgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7
IEludmFsaWRTdGF0ZUVycm9yLCAiQmFja2luZyBzdG9yZSBpcyBjbG9zZWQiX3MgfSk7CiAKICAg
ICBhdXRvIGVycm9yID0gbV9iYWNraW5nU3RvcmUtPmRlbGV0ZU9iamVjdFN0b3JlKHRyYW5zYWN0
aW9uLmluZm8oKS5pZGVudGlmaWVyKCksIGluZm8tPmlkZW50aWZpZXIoKSk7CiAgICAgaWYgKGVy
cm9yLmlzTnVsbCgpKQpAQCAtNjU3LDcgKzY1Nyw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6
OnJlbmFtZU9iamVjdFN0b3JlKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mIHRyYW5zYWN0
CiAgICAgICAgIGF1dG8gdGFza1NpemUgPSBkZWZhdWx0V3JpdGVPcGVyYXRpb25Db3N0ICsgbmV3
TmFtZS5zaXplSW5CeXRlcygpOwogICAgICAgICBtX21hbmFnZXItPnJlcXVlc3RTcGFjZShtX2lk
ZW50aWZpZXIub3JpZ2luKCksIHRhc2tTaXplLCBbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsg
KnRoaXMgfSwgd2Vha1RyYW5zYWN0aW9uID0gV2Vha1B0ciB7IHRyYW5zYWN0aW9uIH0sIG9iamVj
dFN0b3JlSWRlbnRpZmllciwgbmV3TmFtZSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0o
Ym9vbCBncmFudGVkKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlmICghd2Vha1RoaXMgfHwgIXdl
YWtUcmFuc2FjdGlvbikKLSAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3Ig
eyBJbnZhbGlkU3RhdGVFcnJvciwgIkRhdGFiYXNlIG9yIHRyYW5zYWN0aW9uIGlzIGNsb3NlZCIg
fSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0
YXRlRXJyb3IsICJEYXRhYmFzZSBvciB0cmFuc2FjdGlvbiBpcyBjbG9zZWQiX3MgfSk7CiAKICAg
ICAgICAgICAgIHJlbmFtZU9iamVjdFN0b3JlKCp3ZWFrVHJhbnNhY3Rpb24sIG9iamVjdFN0b3Jl
SWRlbnRpZmllciwgbmV3TmFtZSwgV1RGTW92ZShjYWxsYmFjayksIGdyYW50ZWQgPyBTcGFjZUNo
ZWNrUmVzdWx0OjpQYXNzIDogU3BhY2VDaGVja1Jlc3VsdDo6RmFpbCk7CiAgICAgICAgIH0pOwpA
QCAtNjc2LDcgKzY3Niw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OnJlbmFtZU9iamVjdFN0
b3JlKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mIHRyYW5zYWN0CiAgICAgfQogCiAgICAg
aWYgKCFtX2JhY2tpbmdTdG9yZSkKLSAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsg
SW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3JlIGlzIGNsb3NlZCIgfSk7CisgICAgICAg
IHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiQmFja2luZyBz
dG9yZSBpcyBjbG9zZWQiX3MgfSk7CiAKICAgICBhdXRvIGVycm9yID0gbV9iYWNraW5nU3RvcmUt
PnJlbmFtZU9iamVjdFN0b3JlKHRyYW5zYWN0aW9uLmluZm8oKS5pZGVudGlmaWVyKCksIG9iamVj
dFN0b3JlSWRlbnRpZmllciwgbmV3TmFtZSk7CiAgICAgaWYgKGVycm9yLmlzTnVsbCgpKQpAQCAt
Njk2LDcgKzY5Niw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmNsZWFyT2JqZWN0U3RvcmUo
VW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbiYgdHJhbnNhY3RpCiAKICAgICAgICAgbV9tYW5h
Z2VyLT5yZXF1ZXN0U3BhY2UobV9pZGVudGlmaWVyLm9yaWdpbigpLCAwLCBbdGhpcywgd2Vha1Ro
aXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgd2Vha1RyYW5zYWN0aW9uID0gV2Vha1B0ciB7IHRyYW5z
YWN0aW9uIH0sIG9iamVjdFN0b3JlSWRlbnRpZmllciwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxi
YWNrKV0oYm9vbCBncmFudGVkKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlmICghd2Vha1RoaXMg
fHwgIXdlYWtUcmFuc2FjdGlvbikKLSAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soSURC
RXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkRhdGFiYXNlIG9yIHRyYW5zYWN0aW9uIGlzIGNs
b3NlZCIgfSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52
YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBvciB0cmFuc2FjdGlvbiBpcyBjbG9zZWQiX3MgfSk7
CiAKICAgICAgICAgICAgIGNsZWFyT2JqZWN0U3RvcmUoKndlYWtUcmFuc2FjdGlvbiwgb2JqZWN0
U3RvcmVJZGVudGlmaWVyLCBXVEZNb3ZlKGNhbGxiYWNrKSwgZ3JhbnRlZCA/IFNwYWNlQ2hlY2tS
ZXN1bHQ6OlBhc3MgOiBTcGFjZUNoZWNrUmVzdWx0OjpGYWlsKTsKICAgICAgICAgfSk7CkBAIC03
MDUsNyArNzA1LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6Y2xlYXJPYmplY3RTdG9yZShV
bmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uJiB0cmFuc2FjdGkKIAogICAgIEFTU0VSVChzcGFj
ZUNoZWNrUmVzdWx0ID09IFNwYWNlQ2hlY2tSZXN1bHQ6OlBhc3MpOwogICAgIGlmICghbV9iYWNr
aW5nU3RvcmUpCi0gICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0
ZUVycm9yLCAiQmFja2luZyBzdG9yZSBpcyBjbG9zZWQiIH0pOworICAgICAgICByZXR1cm4gY2Fs
bGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xv
c2VkIl9zIH0pOwogCiAgICAgYXV0byBlcnJvciA9IG1fYmFja2luZ1N0b3JlLT5jbGVhck9iamVj
dFN0b3JlKHRyYW5zYWN0aW9uLmluZm8oKS5pZGVudGlmaWVyKCksIG9iamVjdFN0b3JlSWRlbnRp
Zmllcik7CiAgICAgY2FsbGJhY2soZXJyb3IpOwpAQCAtNzIzLDcgKzcyMyw3IEBAIHZvaWQgVW5p
cXVlSURCRGF0YWJhc2U6OmNyZWF0ZUluZGV4KFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24m
IHRyYW5zYWN0aW9uLCBjCiAgICAgICAgIGF1dG8gdGFza1NpemUgPSBkZWZhdWx0V3JpdGVPcGVy
YXRpb25Db3N0ICsgZXN0aW1hdGVTaXplKGluZm8pOwogICAgICAgICBtX21hbmFnZXItPnJlcXVl
c3RTcGFjZShtX2lkZW50aWZpZXIub3JpZ2luKCksIHRhc2tTaXplLCBbdGhpcywgd2Vha1RoaXMg
PSBXZWFrUHRyIHsgKnRoaXMgfSwgd2Vha1RyYW5zYWN0aW9uID0gV2Vha1B0ciB7IHRyYW5zYWN0
aW9uIH0sIGluZm8sIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKGJvb2wgZ3JhbnRlZCkg
bXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAoIXdlYWtUaGlzIHx8ICF3ZWFrVHJhbnNhY3Rpb24p
Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRl
RXJyb3IsICJEYXRhYmFzZSBvciB0cmFuc2FjdGlvbiBpcyBjbG9zZWQiIH0pOworICAgICAgICAg
ICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0
YWJhc2Ugb3IgdHJhbnNhY3Rpb24gaXMgY2xvc2VkIl9zIH0pOwogCiAgICAgICAgICAgICBjcmVh
dGVJbmRleCgqd2Vha1RyYW5zYWN0aW9uLCBpbmZvLCBXVEZNb3ZlKGNhbGxiYWNrKSwgZ3JhbnRl
ZCA/IFNwYWNlQ2hlY2tSZXN1bHQ6OlBhc3MgOiBTcGFjZUNoZWNrUmVzdWx0OjpGYWlsKTsKICAg
ICAgICAgfSk7CkBAIC03MzYsNyArNzM2LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6Y3Jl
YXRlSW5kZXgoVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24sIGMKICAg
ICB9CiAKICAgICBpZiAoIW1fYmFja2luZ1N0b3JlKQotICAgICAgICByZXR1cm4gY2FsbGJhY2so
SURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xvc2VkIiB9
KTsKKyAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3Is
ICJCYWNraW5nIHN0b3JlIGlzIGNsb3NlZCJfcyB9KTsKIAogICAgIGF1dG8gZXJyb3IgPSBtX2Jh
Y2tpbmdTdG9yZS0+Y3JlYXRlSW5kZXgodHJhbnNhY3Rpb24uaW5mbygpLmlkZW50aWZpZXIoKSwg
aW5mbyk7CiAgICAgaWYgKGVycm9yLmlzTnVsbCgpKSB7CkBAIC03NjEsNyArNzYxLDcgQEAgdm9p
ZCBVbmlxdWVJREJEYXRhYmFzZTo6ZGVsZXRlSW5kZXgoVW5pcXVlSURCRGF0YWJhc2VUcmFuc2Fj
dGlvbiYgdHJhbnNhY3Rpb24sIHUKIAogICAgICAgICBtX21hbmFnZXItPnJlcXVlc3RTcGFjZSht
X2lkZW50aWZpZXIub3JpZ2luKCksIDAsIFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhp
cyB9LCB3ZWFrVHJhbnNhY3Rpb24gPSBXZWFrUHRyIHsgdHJhbnNhY3Rpb24gfSwgb2JqZWN0U3Rv
cmVJZGVudGlmaWVyLCBpbmRleE5hbWUsIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKGJv
b2wgZ3JhbnRlZCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAoIXdlYWtUaGlzIHx8ICF3ZWFr
VHJhbnNhY3Rpb24pCi0gICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsg
SW52YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBvciB0cmFuc2FjdGlvbiBpcyBjbG9zZWQiIH0p
OworICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0
ZUVycm9yLCAiRGF0YWJhc2Ugb3IgdHJhbnNhY3Rpb24gaXMgY2xvc2VkIl9zIH0pOwogCiAgICAg
ICAgICAgICBkZWxldGVJbmRleCgqd2Vha1RyYW5zYWN0aW9uLCBvYmplY3RTdG9yZUlkZW50aWZp
ZXIsIGluZGV4TmFtZSwgV1RGTW92ZShjYWxsYmFjayksIGdyYW50ZWQgPyBTcGFjZUNoZWNrUmVz
dWx0OjpQYXNzIDogU3BhY2VDaGVja1Jlc3VsdDo6RmFpbCk7CiAgICAgICAgIH0pOwpAQCAtNzcw
LDcgKzc3MCw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmRlbGV0ZUluZGV4KFVuaXF1ZUlE
QkRhdGFiYXNlVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uLCB1CiAKICAgICBBU1NFUlQoc3BhY2VD
aGVja1Jlc3VsdCA9PSBTcGFjZUNoZWNrUmVzdWx0OjpQYXNzKTsKICAgICBpZiAoIW1fYmFja2lu
Z1N0b3JlKQotICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVF
cnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xvc2VkIiB9KTsKKyAgICAgICAgcmV0dXJuIGNhbGxi
YWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3JlIGlzIGNsb3Nl
ZCJfcyB9KTsKIAogICAgIGF1dG8qIG9iamVjdFN0b3JlSW5mbyA9IG1fZGF0YWJhc2VJbmZvLT5p
bmZvRm9yRXhpc3RpbmdPYmplY3RTdG9yZShvYmplY3RTdG9yZUlkZW50aWZpZXIpOwogICAgIGlm
ICghb2JqZWN0U3RvcmVJbmZvKSB7CkBAIC04MDQsNyArODA0LDcgQEAgdm9pZCBVbmlxdWVJREJE
YXRhYmFzZTo6cmVuYW1lSW5kZXgoVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbiYgdHJhbnNh
Y3Rpb24sIHUKICAgICAgICAgYXV0byB0YXNrU2l6ZSA9IGRlZmF1bHRXcml0ZU9wZXJhdGlvbkNv
c3QgKyBuZXdOYW1lLnNpemVJbkJ5dGVzKCk7CiAgICAgICAgIG1fbWFuYWdlci0+cmVxdWVzdFNw
YWNlKG1faWRlbnRpZmllci5vcmlnaW4oKSwgdGFza1NpemUsIFt0aGlzLCB3ZWFrVGhpcyA9IFdl
YWtQdHIgeyAqdGhpcyB9LCB3ZWFrVHJhbnNhY3Rpb24gPSBXZWFrUHRyIHsgdHJhbnNhY3Rpb24g
fSwgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBpbmRleElkZW50aWZpZXIsIG5ld05hbWUsIGNhbGxi
YWNrID0gV1RGTW92ZShjYWxsYmFjayldKGJvb2wgZ3JhbnRlZCkgbXV0YWJsZSB7CiAgICAgICAg
ICAgICBpZiAoIXdlYWtUaGlzIHx8ICF3ZWFrVHJhbnNhY3Rpb24pCi0gICAgICAgICAgICAgICAg
cmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBv
ciB0cmFuc2FjdGlvbiBpcyBjbG9zZWQiIH0pOworICAgICAgICAgICAgICAgIHJldHVybiBjYWxs
YmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJhc2Ugb3IgdHJhbnNhY3Rp
b24gaXMgY2xvc2VkIl9zIH0pOwogCiAgICAgICAgICAgICByZW5hbWVJbmRleCgqd2Vha1RyYW5z
YWN0aW9uLCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGluZGV4SWRlbnRpZmllciwgbmV3TmFtZSwg
V1RGTW92ZShjYWxsYmFjayksIGdyYW50ZWQgPyBTcGFjZUNoZWNrUmVzdWx0OjpQYXNzIDogU3Bh
Y2VDaGVja1Jlc3VsdDo6RmFpbCk7CiAgICAgICAgIH0pOwpAQCAtODE3LDcgKzgxNyw3IEBAIHZv
aWQgVW5pcXVlSURCRGF0YWJhc2U6OnJlbmFtZUluZGV4KFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNh
Y3Rpb24mIHRyYW5zYWN0aW9uLCB1CiAgICAgfQogCiAgICAgaWYgKCFtX2JhY2tpbmdTdG9yZSkK
LSAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJC
YWNraW5nIHN0b3JlIGlzIGNsb3NlZCIgfSk7CisgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJF
cnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiQmFja2luZyBzdG9yZSBpcyBjbG9zZWQiX3MgfSk7
CiAKICAgICBhdXRvKiBvYmplY3RTdG9yZUluZm8gPSBtX2RhdGFiYXNlSW5mby0+aW5mb0ZvckV4
aXN0aW5nT2JqZWN0U3RvcmUob2JqZWN0U3RvcmVJZGVudGlmaWVyKTsKICAgICBpZiAoIW9iamVj
dFN0b3JlSW5mbykgewpAQCAtODQ2LDcgKzg0Niw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6
OnB1dE9yQWRkKGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0YSwgY29uc3QgSURCS2V5
CiAgICAgQVNTRVJUKG1fZGF0YWJhc2VJbmZvKTsKIAogICAgIGlmICghbV9iYWNraW5nU3RvcmUp
Ci0gICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAi
QmFja2luZyBzdG9yZSBpcyBjbG9zZWQiIH0sIGtleURhdGEpOworICAgICAgICByZXR1cm4gY2Fs
bGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xv
c2VkIl9zIH0sIGtleURhdGEpOwogCiAgICAgYXV0byBvYmplY3RTdG9yZUlkZW50aWZpZXIgPSBy
ZXF1ZXN0RGF0YS5vYmplY3RTdG9yZUlkZW50aWZpZXIoKTsKICAgICBhdXRvKiBvYmplY3RTdG9y
ZUluZm8gPSBtX2JhY2tpbmdTdG9yZS0+aW5mb0Zvck9iamVjdFN0b3JlKG9iamVjdFN0b3JlSWRl
bnRpZmllcik7CkBAIC05MDEsNyArOTAxLDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6cHV0
T3JBZGQoY29uc3QgSURCUmVxdWVzdERhdGEmIHJlcXVlc3REYXRhLCBjb25zdCBJREJLZXkKICAg
ICBMT0coSW5kZXhlZERCLCAiVW5pcXVlSURCRGF0YWJhc2U6OnB1dE9yQWRkIHF1b3RhIGNoZWNr
IHdpdGggdGFzayBzaXplOiAlIiBQUkl1NjQgIiBrZXkgc2l6ZTogJSIgUFJJdTY0ICIgdmFsdWUg
c2l6ZTogJSIgUFJJdTY0ICIgaW5kZXggc2l6ZTogJSIgUFJJdTY0LCB0YXNrU2l6ZSwga2V5U2l6
ZSwgdmFsdWVTaXplLCBpbmRleFNpemUpOwogICAgIG1fbWFuYWdlci0+cmVxdWVzdFNwYWNlKG1f
aWRlbnRpZmllci5vcmlnaW4oKSwgdGFza1NpemUsIFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIg
eyAqdGhpcyB9LCByZXF1ZXN0RGF0YSwgdXNlZEtleSwgdmFsdWUsIG92ZXJ3cml0ZU1vZGUsIGNh
bGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayksIHVzZWRLZXlJc0dlbmVyYXRlZCwgaW5kZXhLZXlz
LCBvYmplY3RTdG9yZUluZm8gPSAqb2JqZWN0U3RvcmVJbmZvXShib29sIGdyYW50ZWQpIG11dGFi
bGUgewogICAgICAgICBpZiAoIXdlYWtUaGlzKQotICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNr
KElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBpcyBjbG9zZWQiIH0sIHVz
ZWRLZXkpOworICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0
YXRlRXJyb3IsICJEYXRhYmFzZSBpcyBjbG9zZWQiX3MgfSwgdXNlZEtleSk7CiAKICAgICAgICAg
cHV0T3JBZGRBZnRlclNwYWNlQ2hlY2socmVxdWVzdERhdGEsIHVzZWRLZXksIHZhbHVlLCBvdmVy
d3JpdGVNb2RlLCBXVEZNb3ZlKGNhbGxiYWNrKSwgdXNlZEtleUlzR2VuZXJhdGVkLCBpbmRleEtl
eXMsIG9iamVjdFN0b3JlSW5mbywgZ3JhbnRlZCA/IFNwYWNlQ2hlY2tSZXN1bHQ6OlBhc3MgOiBT
cGFjZUNoZWNrUmVzdWx0OjpGYWlsKTsKICAgICB9KTsKQEAgLTkxMyw3ICs5MTMsNyBAQCB2b2lk
IFVuaXF1ZUlEQkRhdGFiYXNlOjpwdXRPckFkZEFmdGVyU3BhY2VDaGVjayhjb25zdCBJREJSZXF1
ZXN0RGF0YSYgcmVxdWVzdERhdAogICAgIEFTU0VSVChtX2RhdGFiYXNlSW5mbyk7CiAKICAgICBp
ZiAoIW1fYmFja2luZ1N0b3JlKQotICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJ
bnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xvc2VkIiB9LCBrZXlEYXRhKTsK
KyAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJC
YWNraW5nIHN0b3JlIGlzIGNsb3NlZCJfcyB9LCBrZXlEYXRhKTsKIAogICAgIHVpbnQ2NF90IGtl
eU51bWJlciA9IGlzS2V5R2VuZXJhdGVkID8ga2V5RGF0YS5udW1iZXIoKSA6IDA7CiAgICAgYXV0
byBvYmplY3RTdG9yZUlkZW50aWZpZXIgPSBvYmplY3RTdG9yZUluZm8uaWRlbnRpZmllcigpOwpA
QCAtOTUzLDcgKzk1Myw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmdldFJlY29yZChjb25z
dCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdERhdGEsIGNvbnN0IElEQkdlCiAKICAgICAgICAgbV9t
YW5hZ2VyLT5yZXF1ZXN0U3BhY2UobV9pZGVudGlmaWVyLm9yaWdpbigpLCAwLCBbdGhpcywgd2Vh
a1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgcmVxdWVzdERhdGEsIGdldFJlY29yZERhdGEsIGNh
bGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKGJvb2wgZ3JhbnRlZCkgbXV0YWJsZSB7CiAgICAg
ICAgICAgICBpZiAoIXdlYWtUaGlzKQotICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhJ
REJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJhc2UgaXMgY2xvc2VkIiB9LCBJREJH
ZXRSZXN1bHQgeyB9KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3Ig
eyBJbnZhbGlkU3RhdGVFcnJvciwgIkRhdGFiYXNlIGlzIGNsb3NlZCJfcyB9LCBJREJHZXRSZXN1
bHQgeyB9KTsKIAogICAgICAgICAgICAgZ2V0UmVjb3JkKHJlcXVlc3REYXRhLCBnZXRSZWNvcmRE
YXRhLCBXVEZNb3ZlKGNhbGxiYWNrKSwgZ3JhbnRlZCA/IFNwYWNlQ2hlY2tSZXN1bHQ6OlBhc3Mg
OiBTcGFjZUNoZWNrUmVzdWx0OjpGYWlsKTsKICAgICAgICAgfSk7CkBAIC05NjIsNyArOTYyLDcg
QEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6Z2V0UmVjb3JkKGNvbnN0IElEQlJlcXVlc3REYXRh
JiByZXF1ZXN0RGF0YSwgY29uc3QgSURCR2UKIAogICAgIEFTU0VSVChzcGFjZUNoZWNrUmVzdWx0
ID09IFNwYWNlQ2hlY2tSZXN1bHQ6OlBhc3MpOwogICAgIGlmICghbV9iYWNraW5nU3RvcmUpCi0g
ICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiQmFj
a2luZyBzdG9yZSBpcyBjbG9zZWQiIH0sIElEQkdldFJlc3VsdCB7IH0pOworICAgICAgICByZXR1
cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUg
aXMgY2xvc2VkIl9zIH0sIElEQkdldFJlc3VsdCB7IH0pOwogCiAgICAgSURCR2V0UmVzdWx0IHJl
c3VsdDsKICAgICBJREJFcnJvciBlcnJvcjsKQEAgLTk4Niw3ICs5ODYsNyBAQCB2b2lkIFVuaXF1
ZUlEQkRhdGFiYXNlOjpnZXRBbGxSZWNvcmRzKGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0
RGF0YSwgY29uc3QgSQogCiAgICAgICAgIG1fbWFuYWdlci0+cmVxdWVzdFNwYWNlKG1faWRlbnRp
Zmllci5vcmlnaW4oKSwgMCwgW3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHJl
cXVlc3REYXRhLCBnZXRBbGxSZWNvcmRzRGF0YSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNr
KV0oYm9vbCBncmFudGVkKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlmICghd2Vha1RoaXMpCi0g
ICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJy
b3IsICJEYXRhYmFzZSBpcyBjbG9zZWQiIH0sIElEQkdldEFsbFJlc3VsdCB7IH0pOworICAgICAg
ICAgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAi
RGF0YWJhc2UgaXMgY2xvc2VkIl9zIH0sIElEQkdldEFsbFJlc3VsdCB7IH0pOwogCiAgICAgICAg
ICAgICBnZXRBbGxSZWNvcmRzKHJlcXVlc3REYXRhLCBnZXRBbGxSZWNvcmRzRGF0YSwgV1RGTW92
ZShjYWxsYmFjayksIGdyYW50ZWQgPyBTcGFjZUNoZWNrUmVzdWx0OjpQYXNzIDogU3BhY2VDaGVj
a1Jlc3VsdDo6RmFpbCk7CiAgICAgICAgIH0pOwpAQCAtOTk1LDcgKzk5NSw3IEBAIHZvaWQgVW5p
cXVlSURCRGF0YWJhc2U6OmdldEFsbFJlY29yZHMoY29uc3QgSURCUmVxdWVzdERhdGEmIHJlcXVl
c3REYXRhLCBjb25zdCBJCiAKICAgICBBU1NFUlQoc3BhY2VDaGVja1Jlc3VsdCA9PSBTcGFjZUNo
ZWNrUmVzdWx0OjpQYXNzKTsKICAgICBpZiAoIW1fYmFja2luZ1N0b3JlKQotICAgICAgICByZXR1
cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUg
aXMgY2xvc2VkIiB9LCBJREJHZXRBbGxSZXN1bHQgeyB9KTsKKyAgICAgICAgcmV0dXJuIGNhbGxi
YWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3JlIGlzIGNsb3Nl
ZCJfcyB9LCBJREJHZXRBbGxSZXN1bHQgeyB9KTsKIAogICAgIElEQkdldEFsbFJlc3VsdCByZXN1
bHQ7CiAgICAgYXV0byBlcnJvciA9IG1fYmFja2luZ1N0b3JlLT5nZXRBbGxSZWNvcmRzKHJlcXVl
c3REYXRhLnRyYW5zYWN0aW9uSWRlbnRpZmllcigpLCBnZXRBbGxSZWNvcmRzRGF0YSwgcmVzdWx0
KTsKQEAgLTEwMTQsNyArMTAxNCw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmdldENvdW50
KGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0YSwgY29uc3QgSURCS2V5CiAKICAgICAg
ICAgbV9tYW5hZ2VyLT5yZXF1ZXN0U3BhY2UobV9pZGVudGlmaWVyLm9yaWdpbigpLCAwLCBbdGhp
cywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgcmVxdWVzdERhdGEsIHJhbmdlLCBjYWxs
YmFjayA9IFdURk1vdmUoY2FsbGJhY2spXShib29sIGdyYW50ZWQpIG11dGFibGUgewogICAgICAg
ICAgICAgaWYgKCF3ZWFrVGhpcykKLSAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soSURC
RXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkRhdGFiYXNlIGlzIGNsb3NlZCIgfSwgMCk7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJy
b3IsICJEYXRhYmFzZSBpcyBjbG9zZWQiX3MgfSwgMCk7CiAKICAgICAgICAgICAgIGdldENvdW50
KHJlcXVlc3REYXRhLCByYW5nZSwgV1RGTW92ZShjYWxsYmFjayksIGdyYW50ZWQgPyBTcGFjZUNo
ZWNrUmVzdWx0OjpQYXNzIDogU3BhY2VDaGVja1Jlc3VsdDo6RmFpbCk7CiAgICAgICAgIH0pOwpA
QCAtMTAyMyw3ICsxMDIzLDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6Z2V0Q291bnQoY29u
c3QgSURCUmVxdWVzdERhdGEmIHJlcXVlc3REYXRhLCBjb25zdCBJREJLZXkKIAogICAgIEFTU0VS
VChzcGFjZUNoZWNrUmVzdWx0ID09IFNwYWNlQ2hlY2tSZXN1bHQ6OlBhc3MpOwogICAgIGlmICgh
bV9iYWNraW5nU3RvcmUpCi0gICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFs
aWRTdGF0ZUVycm9yLCAiQmFja2luZyBzdG9yZSBpcyBjbG9zZWQiIH0sIDApOworICAgICAgICBy
ZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3Rv
cmUgaXMgY2xvc2VkIl9zIH0sIDApOwogCiAgICAgdWludDY0X3QgY291bnQgPSAwOwogICAgIGF1
dG8gZXJyb3IgPSBtX2JhY2tpbmdTdG9yZS0+Z2V0Q291bnQocmVxdWVzdERhdGEudHJhbnNhY3Rp
b25JZGVudGlmaWVyKCksIHJlcXVlc3REYXRhLm9iamVjdFN0b3JlSWRlbnRpZmllcigpLCByZXF1
ZXN0RGF0YS5pbmRleElkZW50aWZpZXIoKSwgcmFuZ2UsIGNvdW50KTsKQEAgLTEwNDIsNyArMTA0
Miw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmRlbGV0ZVJlY29yZChjb25zdCBJREJSZXF1
ZXN0RGF0YSYgcmVxdWVzdERhdGEsIGNvbnN0IElECiAKICAgICAgICAgbV9tYW5hZ2VyLT5yZXF1
ZXN0U3BhY2UobV9pZGVudGlmaWVyLm9yaWdpbigpLCAwLCBbdGhpcywgd2Vha1RoaXMgPSBXZWFr
UHRyIHsgKnRoaXMgfSwgcmVxdWVzdERhdGEsIGtleVJhbmdlRGF0YSwgY2FsbGJhY2sgPSBXVEZN
b3ZlKGNhbGxiYWNrKV0oYm9vbCBncmFudGVkKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlmICgh
d2Vha1RoaXMpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52
YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBpcyBjbG9zZWQiIH0pOworICAgICAgICAgICAgICAg
IHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJhc2Ug
aXMgY2xvc2VkIl9zIH0pOwogCiAgICAgICAgICAgICBkZWxldGVSZWNvcmQocmVxdWVzdERhdGEs
IGtleVJhbmdlRGF0YSwgV1RGTW92ZShjYWxsYmFjayksIGdyYW50ZWQgPyBTcGFjZUNoZWNrUmVz
dWx0OjpQYXNzIDogU3BhY2VDaGVja1Jlc3VsdDo6RmFpbCk7CiAgICAgICAgIH0pOwpAQCAtMTA1
MSw3ICsxMDUxLDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6ZGVsZXRlUmVjb3JkKGNvbnN0
IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0YSwgY29uc3QgSUQKIAogICAgIEFTU0VSVChzcGFj
ZUNoZWNrUmVzdWx0ID09IFNwYWNlQ2hlY2tSZXN1bHQ6OlBhc3MpOwogICAgIGlmICghbV9iYWNr
aW5nU3RvcmUpCi0gICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0
ZUVycm9yLCAiQmFja2luZyBzdG9yZSBpcyBjbG9zZWQiIH0pOworICAgICAgICByZXR1cm4gY2Fs
bGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xv
c2VkIl9zIH0pOwogCiAgICAgYXV0byBlcnJvciA9IG1fYmFja2luZ1N0b3JlLT5kZWxldGVSYW5n
ZShyZXF1ZXN0RGF0YS50cmFuc2FjdGlvbklkZW50aWZpZXIoKSwgcmVxdWVzdERhdGEub2JqZWN0
U3RvcmVJZGVudGlmaWVyKCksIGtleVJhbmdlRGF0YSk7CiAKQEAgLTEwNjksNyArMTA2OSw3IEBA
IHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6Om9wZW5DdXJzb3IoY29uc3QgSURCUmVxdWVzdERhdGEm
IHJlcXVlc3REYXRhLCBjb25zdCBJREJDCiAKICAgICAgICAgbV9tYW5hZ2VyLT5yZXF1ZXN0U3Bh
Y2UobV9pZGVudGlmaWVyLm9yaWdpbigpLCAwLCBbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsg
KnRoaXMgfSwgcmVxdWVzdERhdGEsIGluZm8sIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayld
KGJvb2wgZ3JhbnRlZCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAoIXdlYWtUaGlzKQotICAg
ICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9y
LCAiRGF0YWJhc2Ugb3IgdHJhbnNhY3Rpb24gaXMgY2xvc2VkIiB9LCBJREJHZXRSZXN1bHQgeyB9
KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3Rh
dGVFcnJvciwgIkRhdGFiYXNlIG9yIHRyYW5zYWN0aW9uIGlzIGNsb3NlZCJfcyB9LCBJREJHZXRS
ZXN1bHQgeyB9KTsKIAogICAgICAgICAgICAgb3BlbkN1cnNvcihyZXF1ZXN0RGF0YSwgaW5mbywg
V1RGTW92ZShjYWxsYmFjayksIGdyYW50ZWQgPyBTcGFjZUNoZWNrUmVzdWx0OjpQYXNzIDogU3Bh
Y2VDaGVja1Jlc3VsdDo6RmFpbCk7CiAgICAgICAgIH0pOwpAQCAtMTA3OCw3ICsxMDc4LDcgQEAg
dm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6b3BlbkN1cnNvcihjb25zdCBJREJSZXF1ZXN0RGF0YSYg
cmVxdWVzdERhdGEsIGNvbnN0IElEQkMKIAogICAgIEFTU0VSVChzcGFjZUNoZWNrUmVzdWx0ID09
IFNwYWNlQ2hlY2tSZXN1bHQ6OlBhc3MpOwogICAgIGlmICghbV9iYWNraW5nU3RvcmUpCi0gICAg
ICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiQmFja2lu
ZyBzdG9yZSBpcyBjbG9zZWQiIH0sIElEQkdldFJlc3VsdCB7IH0pOworICAgICAgICByZXR1cm4g
Y2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgaXMg
Y2xvc2VkIl9zIH0sIElEQkdldFJlc3VsdCB7IH0pOwogCiAgICAgSURCR2V0UmVzdWx0IHJlc3Vs
dDsKICAgICBhdXRvIGVycm9yID0gbV9iYWNraW5nU3RvcmUtPm9wZW5DdXJzb3IocmVxdWVzdERh
dGEudHJhbnNhY3Rpb25JZGVudGlmaWVyKCksIGluZm8sIHJlc3VsdCk7CkBAIC0xMDk3LDcgKzEw
OTcsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjppdGVyYXRlQ3Vyc29yKGNvbnN0IElEQlJl
cXVlc3REYXRhJiByZXF1ZXN0RGF0YSwgY29uc3QgSQogCiAgICAgICAgIG1fbWFuYWdlci0+cmVx
dWVzdFNwYWNlKG1faWRlbnRpZmllci5vcmlnaW4oKSwgMCwgW3RoaXMsIHdlYWtUaGlzID0gV2Vh
a1B0ciB7ICp0aGlzIH0sIHJlcXVlc3REYXRhLCBkYXRhLCBjYWxsYmFjayA9IFdURk1vdmUoY2Fs
bGJhY2spXShib29sIGdyYW50ZWQpIG11dGFibGUgewogICAgICAgICAgICAgaWYgKCF3ZWFrVGhp
cykKLSAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3Rh
dGVFcnJvciwgIkRhdGFiYXNlIG9yIHRyYW5zYWN0aW9uIGlzIGNsb3NlZCIgfSwgSURCR2V0UmVz
dWx0IHsgfSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52
YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBvciB0cmFuc2FjdGlvbiBpcyBjbG9zZWQiX3MgfSwg
SURCR2V0UmVzdWx0IHsgfSk7CiAKICAgICAgICAgICAgIGl0ZXJhdGVDdXJzb3IocmVxdWVzdERh
dGEsIGRhdGEsIFdURk1vdmUoY2FsbGJhY2spLCBncmFudGVkID8gU3BhY2VDaGVja1Jlc3VsdDo6
UGFzcyA6IFNwYWNlQ2hlY2tSZXN1bHQ6OkZhaWwpOwogICAgICAgICB9KTsKQEAgLTExMDYsNyAr
MTEwNiw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6Oml0ZXJhdGVDdXJzb3IoY29uc3QgSURC
UmVxdWVzdERhdGEmIHJlcXVlc3REYXRhLCBjb25zdCBJCiAKICAgICBBU1NFUlQoc3BhY2VDaGVj
a1Jlc3VsdCA9PSBTcGFjZUNoZWNrUmVzdWx0OjpQYXNzKTsKICAgICBpZiAoIW1fYmFja2luZ1N0
b3JlKQotICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJv
ciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xvc2VkIiB9LCBJREJHZXRSZXN1bHQgeyB9KTsKKyAgICAg
ICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5n
IHN0b3JlIGlzIGNsb3NlZCJfcyB9LCBJREJHZXRSZXN1bHQgeyB9KTsKIAogICAgIElEQkdldFJl
c3VsdCByZXN1bHQ7CiAgICAgYXV0byB0cmFuc2FjdGlvbklkZW50aWZpZXIgPSByZXF1ZXN0RGF0
YS50cmFuc2FjdGlvbklkZW50aWZpZXIoKTsKQEAgLTExMjcsNyArMTEyNyw3IEBAIHZvaWQgVW5p
cXVlSURCRGF0YWJhc2U6OmNvbW1pdFRyYW5zYWN0aW9uKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNh
Y3Rpb24mIHRyYW5zYWN0CiAKICAgICAgICAgbV9tYW5hZ2VyLT5yZXF1ZXN0U3BhY2UobV9pZGVu
dGlmaWVyLm9yaWdpbigpLCAwLCBbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwg
d2Vha1RyYW5zYWN0aW9uID0gV2Vha1B0ciB7IHRyYW5zYWN0aW9uIH0sIGNhbGxiYWNrID0gV1RG
TW92ZShjYWxsYmFjayldKGJvb2wgZ3JhbnRlZCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAo
IXdlYWtUaGlzIHx8ICF3ZWFrVHJhbnNhY3Rpb24pCi0gICAgICAgICAgICAgICAgcmV0dXJuIGNh
bGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBvciB0cmFuc2Fj
dGlvbiBpcyBjbG9zZWQiIH0pOworICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJF
cnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJhc2Ugb3IgdHJhbnNhY3Rpb24gaXMgY2xv
c2VkIl9zIH0pOwogCiAgICAgICAgICAgICBjb21taXRUcmFuc2FjdGlvbigqd2Vha1RyYW5zYWN0
aW9uLCBXVEZNb3ZlKGNhbGxiYWNrKSwgZ3JhbnRlZCA/IFNwYWNlQ2hlY2tSZXN1bHQ6OlBhc3Mg
OiBTcGFjZUNoZWNrUmVzdWx0OjpGYWlsKTsKICAgICAgICAgfSk7CkBAIC0xMTM4LDcgKzExMzgs
NyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpjb21taXRUcmFuc2FjdGlvbihVbmlxdWVJREJE
YXRhYmFzZVRyYW5zYWN0aW9uJiB0cmFuc2FjdAogICAgIEFTU0VSVCh0cmFuc2FjdGlvbi5kYXRh
YmFzZUNvbm5lY3Rpb24oKS5kYXRhYmFzZSgpID09IHRoaXMpOwogCiAgICAgaWYgKCFtX2JhY2tp
bmdTdG9yZSkKLSAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRl
RXJyb3IsICJCYWNraW5nIHN0b3JlIGlzIGNsb3NlZCIgfSk7CisgICAgICAgIHJldHVybiBjYWxs
YmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiQmFja2luZyBzdG9yZSBpcyBjbG9z
ZWQiX3MgfSk7CiAKICAgICBhdXRvIHRha2VuVHJhbnNhY3Rpb24gPSBtX2luUHJvZ3Jlc3NUcmFu
c2FjdGlvbnMudGFrZSh0cmFuc2FjdGlvbi5pbmZvKCkuaWRlbnRpZmllcigpKTsKICAgICBpZiAo
IXRha2VuVHJhbnNhY3Rpb24pIHsKQEAgLTExNjYsNyArMTE2Niw3IEBAIHZvaWQgVW5pcXVlSURC
RGF0YWJhc2U6OmFib3J0VHJhbnNhY3Rpb24oVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbiYg
dHJhbnNhY3RpCiAKICAgICAgICAgbV9tYW5hZ2VyLT5yZXF1ZXN0U3BhY2UobV9pZGVudGlmaWVy
Lm9yaWdpbigpLCAwLCBbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgd2Vha1Ry
YW5zYWN0aW9uID0gV2Vha1B0ciB7IHRyYW5zYWN0aW9uIH0sIGNhbGxiYWNrID0gV1RGTW92ZShj
YWxsYmFjayldKGJvb2wgZ3JhbnRlZCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAoIXdlYWtU
aGlzIHx8ICF3ZWFrVHJhbnNhY3Rpb24pCi0gICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNr
KElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBvciB0cmFuc2FjdGlvbiBp
cyBjbG9zZWQiIH0pOworICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7
IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJhc2Ugb3IgdHJhbnNhY3Rpb24gaXMgY2xvc2VkIl9z
IH0pOwogCiAgICAgICAgICAgICBhYm9ydFRyYW5zYWN0aW9uKCp3ZWFrVHJhbnNhY3Rpb24sIFdU
Rk1vdmUoY2FsbGJhY2spLCBncmFudGVkID8gU3BhY2VDaGVja1Jlc3VsdDo6UGFzcyA6IFNwYWNl
Q2hlY2tSZXN1bHQ6OkZhaWwpOwogICAgICAgICB9KTsKQEAgLTEyMDIsNyArMTIwMiw3IEBAIHZv
aWQgVW5pcXVlSURCRGF0YWJhc2U6OmFib3J0VHJhbnNhY3Rpb24oVW5pcXVlSURCRGF0YWJhc2VU
cmFuc2FjdGlvbiYgdHJhbnNhY3RpCiAKICAgICBJREJFcnJvciBlcnJvcjsKICAgICBpZiAoIW1f
YmFja2luZ1N0b3JlKQotICAgICAgICBlcnJvciA9IElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJy
b3IsICJCYWNraW5nIHN0b3JlIGlzIGNsb3NlZCIgfTsKKyAgICAgICAgZXJyb3IgPSBJREJFcnJv
ciB7IEludmFsaWRTdGF0ZUVycm9yLCAiQmFja2luZyBzdG9yZSBpcyBjbG9zZWQiX3MgfTsKICAg
ICBlbHNlCiAgICAgICAgIGVycm9yID0gbV9iYWNraW5nU3RvcmUtPmFib3J0VHJhbnNhY3Rpb24o
dHJhbnNhY3Rpb25JZGVudGlmaWVyKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkluZGV4SW5mby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCSW5kZXhJbmZvLmNwcAppbmRleCBlNzFkMmViZjIx
YzRhZGZlZjI4YTJiZGFmYTFmZjg0YjNmN2YwMzk4Li43YWJhODMxZDcwMGVhOThmZWIyY2M5YWE0
NGM5NjJjNGI1OTQ0N2I5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9zaGFyZWQvSURCSW5kZXhJbmZvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9zaGFyZWQvSURCSW5kZXhJbmZvLmNwcApAQCAtNjEsNyArNjEsNyBAQCBTdHJp
bmcgSURCSW5kZXhJbmZvOjpsb2dnaW5nU3RyaW5nKGludCBpbmRlbnQpIGNvbnN0CiB7CiAgICAg
U3RyaW5nIGluZGVudFN0cmluZzsKICAgICBmb3IgKGludCBpID0gMDsgaSA8IGluZGVudDsgKytp
KQotICAgICAgICBpbmRlbnRTdHJpbmcuYXBwZW5kKCIgIik7CisgICAgICAgIGluZGVudFN0cmlu
Zy5hcHBlbmQoJyAnKTsKICAgICByZXR1cm4gbWFrZVN0cmluZyhpbmRlbnRTdHJpbmcsICJJbmRl
eDogIiwgbV9uYW1lLCAiICgiLCBtX2lkZW50aWZpZXIsICIpIGtleVBhdGg6ICIsIFdlYkNvcmU6
OmxvZ2dpbmdTdHJpbmcobV9rZXlQYXRoKSwgJ1xuJyk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuY3Bw
CmluZGV4IGI4MjVlYzgwMDUxNDgwMjhlMmIwN2IxOWRjNzgzOTJhNDNhOGNiYTUuLjMzMmY0NjI2
YmQzMmU4MzFhZDkwOGE0NmFjNGRjMTQ2ZTZlY2NhODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0LmNwcApA
QCAtMTE4LDE0ICsxMTgsMTQgQEAgTWVkaWFDb250cm9sc0hvc3Q6On5NZWRpYUNvbnRyb2xzSG9z
dCgpCiBTdHJpbmcgTWVkaWFDb250cm9sc0hvc3Q6OmxheW91dFRyYWl0c0NsYXNzTmFtZSgpIGNv
bnN0CiB7CiAjaWYgZGVmaW5lZChNRURJQV9DT05UUk9MU19IT1NUX0xBWU9VVF9UUkFJVFNfQ0xB
U1NfTkFNRV9PVkVSUklERSkKLSAgICByZXR1cm4gTUVESUFfQ09OVFJPTFNfSE9TVF9MQVlPVVRf
VFJBSVRTX0NMQVNTX05BTUVfT1ZFUlJJREU7CisgICAgcmV0dXJuIE1FRElBX0NPTlRST0xTX0hP
U1RfTEFZT1VUX1RSQUlUU19DTEFTU19OQU1FX09WRVJSSURFIiJfczsKICNlbHNlCiAjaWYgUExB
VEZPUk0oTUFDKSB8fCBQTEFURk9STShNQUNDQVRBTFlTVCkKLSAgICByZXR1cm4gIk1hY09TTGF5
b3V0VHJhaXRzIjsKKyAgICByZXR1cm4gIk1hY09TTGF5b3V0VHJhaXRzIl9zOwogI2VsaWYgUExB
VEZPUk0oSU9TKQotICAgIHJldHVybiAiSU9TTGF5b3V0VHJhaXRzIjsKKyAgICByZXR1cm4gIklP
U0xheW91dFRyYWl0cyJfczsKICNlbGlmIFBMQVRGT1JNKFdBVENIT1MpCi0gICAgcmV0dXJuICJX
YXRjaE9TTGF5b3V0VHJhaXRzIjsKKyAgICByZXR1cm4gIldhdGNoT1NMYXlvdXRUcmFpdHMiX3M7
CiAjZWxzZQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBudWxsU3RyaW5n
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVk
aWFSZWNvcmRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVk
aWFSZWNvcmRlci5jcHAKaW5kZXggYTkxZTY2OTAwMDQ4MzE2YTlhOTEzY2EwZDUxMjhlYWExNTFk
OWNjZS4uZmY5NDk5OWMyMDJhMzIwNTRjNjE2YmYzNjZjNjczYWViNDI3ZjY1MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVy
LmNwcApAQCAtNjYsNyArNjYsNyBAQCBFeGNlcHRpb25PcjxSZWY8TWVkaWFSZWNvcmRlcj4+IE1l
ZGlhUmVjb3JkZXI6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIFJlZjxNZQogICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKIAogICAgIGlmICghaXNUeXBl
U3VwcG9ydGVkKGRvY3VtZW50LCBvcHRpb25zLm1pbWVUeXBlKSkKLSAgICAgICAgcmV0dXJuIEV4
Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yLCAibWltZVR5cGUgaXMgbm90IHN1cHBvcnRlZCIg
fTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yLCAibWltZVR5
cGUgaXMgbm90IHN1cHBvcnRlZCJfcyB9OwogCiAgICAgYXV0byByZWNvcmRlciA9IGFkb3B0UmVm
KCpuZXcgTWVkaWFSZWNvcmRlcihkb2N1bWVudCwgV1RGTW92ZShzdHJlYW0pLCBXVEZNb3ZlKG9w
dGlvbnMpKSk7CiAgICAgcmVjb3JkZXItPnN1c3BlbmRJZk5lZWRlZCgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcAppbmRleCBhNTkw
MzdhNDA1ODYzMThmMjE2YTZlYTAxOWRiMjRhOWIwMzk3MjQ4Li44Y2I2ZDVjZmMzOGQ2ZWY4MGY3
ZTM5NDFmYjk1OGEzNGQ1MzVmY2M4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcApAQCAtNjUwLDcgKzY1MCw3IEBAIHN0YXRpYyBD
b250ZW50VHlwZSBhZGRWUDlGdWxsUmFuZ2VWaWRlb0ZsYWdUb0NvbnRlbnRUeXBlKGNvbnN0IENv
bnRlbnRUeXBlJiB0eXBlCiAgICAgICAgIGlmIChwb3NpdGlvbiA9PSBub3RGb3VuZCkKICAgICAg
ICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIHJhd1R5cGUuaW5zZXJ0KCIuMDAiLCBwb3NpdGlv
biArIGNvZGVjLmxlbmd0aCgpKTsKKyAgICAgICAgcmF3VHlwZS5pbnNlcnQoIi4wMCJfcywgcG9z
aXRpb24gKyBjb2RlYy5sZW5ndGgoKSk7CiAgICAgICAgIHJldHVybiBDb250ZW50VHlwZShyYXdU
eXBlKTsKICAgICB9CiAgICAgcmV0dXJuIHR5cGU7CkBAIC04OTUsNyArODk1LDcgQEAgYm9vbCBN
ZWRpYVNvdXJjZTo6aXNUeXBlU3VwcG9ydGVkKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRl
eHQsIGNvbnN0IFN0cmluZyYKICAgICBpZiAoY29udGV4dC5pc0RvY3VtZW50KCkgJiYgZG93bmNh
c3Q8RG9jdW1lbnQ+KGNvbnRleHQpLnF1aXJrcygpLm5lZWRzVlA5RnVsbFJhbmdlRmxhZ1F1aXJr
KCkpCiAgICAgICAgIGNvbnRlbnRUeXBlID0gYWRkVlA5RnVsbFJhbmdlVmlkZW9GbGFnVG9Db250
ZW50VHlwZShjb250ZW50VHlwZSk7CiAKLSAgICBTdHJpbmcgY29kZWNzID0gY29udGVudFR5cGUu
cGFyYW1ldGVyKCJjb2RlY3MiKTsKKyAgICBTdHJpbmcgY29kZWNzID0gY29udGVudFR5cGUucGFy
YW1ldGVyKCJjb2RlY3MiX3MpOwogCiAgICAgLy8gMi4gSWYgdHlwZSBkb2VzIG5vdCBjb250YWlu
IGEgdmFsaWQgTUlNRSB0eXBlIHN0cmluZywgdGhlbiByZXR1cm4gZmFsc2UuCiAgICAgaWYgKGNv
bnRlbnRUeXBlLmNvbnRhaW5lclR5cGUoKS5pc0VtcHR5KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhVHJhY2tDb25zdHJhaW50cy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhVHJhY2tDb25zdHJhaW50cy5j
cHAKaW5kZXggMzExMzg0N2RiNzU0ODQ3ZDYxNjJmYTJkNjFlNjczNGE2YTg4ODViMy4uMmY4ZDhi
ZDI3ZDczNTU0NmJhODRiNjE4MDhhNmNkYWIzZjMyOGUxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVRyYWNrQ29uc3RyYWludHMuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFUcmFja0NvbnN0cmFpbnRz
LmNwcApAQCAtMzMsNyArMzMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGVudW0gY2xhc3Mg
Q29uc3RyYWludFNldFR5cGUgeyBNYW5kYXRvcnksIEFkdmFuY2VkIH07CiAKLXN0YXRpYyB2b2lk
IHNldChNZWRpYVRyYWNrQ29uc3RyYWludFNldE1hcCYgbWFwLCBDb25zdHJhaW50U2V0VHlwZSBz
ZXRUeXBlLCBjb25zdCBjaGFyKiB0eXBlQXNTdHJpbmcsIE1lZGlhQ29uc3RyYWludFR5cGUgdHlw
ZSwgY29uc3QgQ29uc3RyYWluTG9uZyYgdmFsdWUpCitzdGF0aWMgdm9pZCBzZXQoTWVkaWFUcmFj
a0NvbnN0cmFpbnRTZXRNYXAmIG1hcCwgQ29uc3RyYWludFNldFR5cGUgc2V0VHlwZSwgQVNDSUlM
aXRlcmFsIHR5cGVBc1N0cmluZywgTWVkaWFDb25zdHJhaW50VHlwZSB0eXBlLCBjb25zdCBDb25z
dHJhaW5Mb25nJiB2YWx1ZSkKIHsKICAgICBJbnRDb25zdHJhaW50IGNvbnN0cmFpbnQodHlwZUFz
U3RyaW5nLCB0eXBlKTsKICAgICBXVEY6OnN3aXRjaE9uKHZhbHVlLApAQCAtNTcsNyArNTcsNyBA
QCBzdGF0aWMgdm9pZCBzZXQoTWVkaWFUcmFja0NvbnN0cmFpbnRTZXRNYXAmIG1hcCwgQ29uc3Ry
YWludFNldFR5cGUgc2V0VHlwZSwgY29ucwogICAgIG1hcC5zZXQodHlwZSwgV1RGTW92ZShjb25z
dHJhaW50KSk7CiB9CiAKLXN0YXRpYyB2b2lkIHNldChNZWRpYVRyYWNrQ29uc3RyYWludFNldE1h
cCYgbWFwLCBDb25zdHJhaW50U2V0VHlwZSBzZXRUeXBlLCBjb25zdCBjaGFyKiB0eXBlQXNTdHJp
bmcsIE1lZGlhQ29uc3RyYWludFR5cGUgdHlwZSwgY29uc3QgQ29uc3RyYWluRG91YmxlJiB2YWx1
ZSkKK3N0YXRpYyB2b2lkIHNldChNZWRpYVRyYWNrQ29uc3RyYWludFNldE1hcCYgbWFwLCBDb25z
dHJhaW50U2V0VHlwZSBzZXRUeXBlLCBBU0NJSUxpdGVyYWwgdHlwZUFzU3RyaW5nLCBNZWRpYUNv
bnN0cmFpbnRUeXBlIHR5cGUsIGNvbnN0IENvbnN0cmFpbkRvdWJsZSYgdmFsdWUpCiB7CiAgICAg
RG91YmxlQ29uc3RyYWludCBjb25zdHJhaW50KHR5cGVBc1N0cmluZywgdHlwZSk7CiAgICAgV1RG
Ojpzd2l0Y2hPbih2YWx1ZSwKQEAgLTgxLDcgKzgxLDcgQEAgc3RhdGljIHZvaWQgc2V0KE1lZGlh
VHJhY2tDb25zdHJhaW50U2V0TWFwJiBtYXAsIENvbnN0cmFpbnRTZXRUeXBlIHNldFR5cGUsIGNv
bnMKICAgICBtYXAuc2V0KHR5cGUsIFdURk1vdmUoY29uc3RyYWludCkpOwogfQogCi1zdGF0aWMg
dm9pZCBzZXQoTWVkaWFUcmFja0NvbnN0cmFpbnRTZXRNYXAmIG1hcCwgQ29uc3RyYWludFNldFR5
cGUgc2V0VHlwZSwgY29uc3QgY2hhciogdHlwZUFzU3RyaW5nLCBNZWRpYUNvbnN0cmFpbnRUeXBl
IHR5cGUsIGNvbnN0IENvbnN0cmFpbkJvb2xlYW4mIHZhbHVlKQorc3RhdGljIHZvaWQgc2V0KE1l
ZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwJiBtYXAsIENvbnN0cmFpbnRTZXRUeXBlIHNldFR5cGUs
IEFTQ0lJTGl0ZXJhbCB0eXBlQXNTdHJpbmcsIE1lZGlhQ29uc3RyYWludFR5cGUgdHlwZSwgY29u
c3QgQ29uc3RyYWluQm9vbGVhbiYgdmFsdWUpCiB7CiAgICAgQm9vbGVhbkNvbnN0cmFpbnQgY29u
c3RyYWludCh0eXBlQXNTdHJpbmcsIHR5cGUpOwogICAgIFdURjo6c3dpdGNoT24odmFsdWUsCkBA
IC0xMDEsNyArMTAxLDcgQEAgc3RhdGljIHZvaWQgc2V0KE1lZGlhVHJhY2tDb25zdHJhaW50U2V0
TWFwJiBtYXAsIENvbnN0cmFpbnRTZXRUeXBlIHNldFR5cGUsIGNvbnMKICAgICBtYXAuc2V0KHR5
cGUsIFdURk1vdmUoY29uc3RyYWludCkpOwogfQogCi1zdGF0aWMgdm9pZCBzZXQoTWVkaWFUcmFj
a0NvbnN0cmFpbnRTZXRNYXAmIG1hcCwgQ29uc3RyYWludFNldFR5cGUgc2V0VHlwZSwgY29uc3Qg
Y2hhciogdHlwZUFzU3RyaW5nLCBNZWRpYUNvbnN0cmFpbnRUeXBlIHR5cGUsIGNvbnN0IENvbnN0
cmFpbkRPTVN0cmluZyYgdmFsdWUpCitzdGF0aWMgdm9pZCBzZXQoTWVkaWFUcmFja0NvbnN0cmFp
bnRTZXRNYXAmIG1hcCwgQ29uc3RyYWludFNldFR5cGUgc2V0VHlwZSwgQVNDSUlMaXRlcmFsIHR5
cGVBc1N0cmluZywgTWVkaWFDb25zdHJhaW50VHlwZSB0eXBlLCBjb25zdCBDb25zdHJhaW5ET01T
dHJpbmcmIHZhbHVlKQogewogICAgIFN0cmluZ0NvbnN0cmFpbnQgY29uc3RyYWludCh0eXBlQXNT
dHJpbmcsIHR5cGUpOwogICAgIFdURjo6c3dpdGNoT24odmFsdWUsCkBAIC0xNDgsNyArMTQ4LDcg
QEAgc3RhdGljIHZvaWQgc2V0KE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwJiBtYXAsIENvbnN0
cmFpbnRTZXRUeXBlIHNldFR5cGUsIGNvbnMKICAgICBtYXAuc2V0KHR5cGUsIFdURk1vdmUoY29u
c3RyYWludCkpOwogfQogCi10ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdGF0aWMgaW5saW5lIHZvaWQg
c2V0KE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwJiBtYXAsIENvbnN0cmFpbnRTZXRUeXBlIHNl
dFR5cGUsIGNvbnN0IGNoYXIqIHR5cGVBc1N0cmluZywgTWVkaWFDb25zdHJhaW50VHlwZSB0eXBl
LCBjb25zdCBzdGQ6Om9wdGlvbmFsPFQ+JiB2YWx1ZSkKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0
YXRpYyBpbmxpbmUgdm9pZCBzZXQoTWVkaWFUcmFja0NvbnN0cmFpbnRTZXRNYXAmIG1hcCwgQ29u
c3RyYWludFNldFR5cGUgc2V0VHlwZSwgQVNDSUlMaXRlcmFsIHR5cGVBc1N0cmluZywgTWVkaWFD
b25zdHJhaW50VHlwZSB0eXBlLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFQ+JiB2YWx1ZSkKIHsKICAg
ICBpZiAoIXZhbHVlKQogICAgICAgICByZXR1cm47CkBAIC0xNTgsMjEgKzE1OCwyMSBAQCB0ZW1w
bGF0ZTx0eXBlbmFtZSBUPiBzdGF0aWMgaW5saW5lIHZvaWQgc2V0KE1lZGlhVHJhY2tDb25zdHJh
aW50U2V0TWFwJiBtYXAsIENvbgogc3RhdGljIE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwIGNv
bnZlcnRUb0ludGVybmFsRm9ybShDb25zdHJhaW50U2V0VHlwZSBzZXRUeXBlLCBjb25zdCBNZWRp
YVRyYWNrQ29uc3RyYWludFNldCYgY29uc3RyYWludFNldCkKIHsKICAgICBNZWRpYVRyYWNrQ29u
c3RyYWludFNldE1hcCByZXN1bHQ7Ci0gICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgIndpZHRoIiwg
TWVkaWFDb25zdHJhaW50VHlwZTo6V2lkdGgsIGNvbnN0cmFpbnRTZXQud2lkdGgpOwotICAgIHNl
dChyZXN1bHQsIHNldFR5cGUsICJoZWlnaHQiLCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpIZWlnaHQs
IGNvbnN0cmFpbnRTZXQuaGVpZ2h0KTsKLSAgICBzZXQocmVzdWx0LCBzZXRUeXBlLCAiYXNwZWN0
UmF0aW8iLCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpBc3BlY3RSYXRpbywgY29uc3RyYWludFNldC5h
c3BlY3RSYXRpbyk7Ci0gICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgImZyYW1lUmF0ZSIsIE1lZGlh
Q29uc3RyYWludFR5cGU6OkZyYW1lUmF0ZSwgY29uc3RyYWludFNldC5mcmFtZVJhdGUpOwotICAg
IHNldChyZXN1bHQsIHNldFR5cGUsICJmYWNpbmdNb2RlIiwgTWVkaWFDb25zdHJhaW50VHlwZTo6
RmFjaW5nTW9kZSwgY29uc3RyYWludFNldC5mYWNpbmdNb2RlKTsKLSAgICBzZXQocmVzdWx0LCBz
ZXRUeXBlLCAidm9sdW1lIiwgTWVkaWFDb25zdHJhaW50VHlwZTo6Vm9sdW1lLCBjb25zdHJhaW50
U2V0LnZvbHVtZSk7Ci0gICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgInNhbXBsZVJhdGUiLCBNZWRp
YUNvbnN0cmFpbnRUeXBlOjpTYW1wbGVSYXRlLCBjb25zdHJhaW50U2V0LnNhbXBsZVJhdGUpOwot
ICAgIHNldChyZXN1bHQsIHNldFR5cGUsICJzYW1wbGVTaXplIiwgTWVkaWFDb25zdHJhaW50VHlw
ZTo6U2FtcGxlU2l6ZSwgY29uc3RyYWludFNldC5zYW1wbGVTaXplKTsKLSAgICBzZXQocmVzdWx0
LCBzZXRUeXBlLCAiZWNob0NhbmNlbGxhdGlvbiIsIE1lZGlhQ29uc3RyYWludFR5cGU6OkVjaG9D
YW5jZWxsYXRpb24sIGNvbnN0cmFpbnRTZXQuZWNob0NhbmNlbGxhdGlvbik7CisgICAgc2V0KHJl
c3VsdCwgc2V0VHlwZSwgIndpZHRoIl9zLCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpXaWR0aCwgY29u
c3RyYWludFNldC53aWR0aCk7CisgICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgImhlaWdodCJfcywg
TWVkaWFDb25zdHJhaW50VHlwZTo6SGVpZ2h0LCBjb25zdHJhaW50U2V0LmhlaWdodCk7CisgICAg
c2V0KHJlc3VsdCwgc2V0VHlwZSwgImFzcGVjdFJhdGlvIl9zLCBNZWRpYUNvbnN0cmFpbnRUeXBl
OjpBc3BlY3RSYXRpbywgY29uc3RyYWludFNldC5hc3BlY3RSYXRpbyk7CisgICAgc2V0KHJlc3Vs
dCwgc2V0VHlwZSwgImZyYW1lUmF0ZSJfcywgTWVkaWFDb25zdHJhaW50VHlwZTo6RnJhbWVSYXRl
LCBjb25zdHJhaW50U2V0LmZyYW1lUmF0ZSk7CisgICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgImZh
Y2luZ01vZGUiX3MsIE1lZGlhQ29uc3RyYWludFR5cGU6OkZhY2luZ01vZGUsIGNvbnN0cmFpbnRT
ZXQuZmFjaW5nTW9kZSk7CisgICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgInZvbHVtZSJfcywgTWVk
aWFDb25zdHJhaW50VHlwZTo6Vm9sdW1lLCBjb25zdHJhaW50U2V0LnZvbHVtZSk7CisgICAgc2V0
KHJlc3VsdCwgc2V0VHlwZSwgInNhbXBsZVJhdGUiX3MsIE1lZGlhQ29uc3RyYWludFR5cGU6OlNh
bXBsZVJhdGUsIGNvbnN0cmFpbnRTZXQuc2FtcGxlUmF0ZSk7CisgICAgc2V0KHJlc3VsdCwgc2V0
VHlwZSwgInNhbXBsZVNpemUiX3MsIE1lZGlhQ29uc3RyYWludFR5cGU6OlNhbXBsZVNpemUsIGNv
bnN0cmFpbnRTZXQuc2FtcGxlU2l6ZSk7CisgICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgImVjaG9D
YW5jZWxsYXRpb24iX3MsIE1lZGlhQ29uc3RyYWludFR5cGU6OkVjaG9DYW5jZWxsYXRpb24sIGNv
bnN0cmFpbnRTZXQuZWNob0NhbmNlbGxhdGlvbik7CiAgICAgLy8gRklYTUU6IGFkZCBsYXRlbmN5
CiAgICAgLy8gRklYTUU6IGFkZCBjaGFubmVsQ291bnQKLSAgICBzZXQocmVzdWx0LCBzZXRUeXBl
LCAiZGV2aWNlSWQiLCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpEZXZpY2VJZCwgY29uc3RyYWludFNl
dC5kZXZpY2VJZCk7Ci0gICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgImdyb3VwSWQiLCBNZWRpYUNv
bnN0cmFpbnRUeXBlOjpHcm91cElkLCBjb25zdHJhaW50U2V0Lmdyb3VwSWQpOwotICAgIHNldChy
ZXN1bHQsIHNldFR5cGUsICJkaXNwbGF5U3VyZmFjZSIsIE1lZGlhQ29uc3RyYWludFR5cGU6OkRp
c3BsYXlTdXJmYWNlLCBjb25zdHJhaW50U2V0LmRpc3BsYXlTdXJmYWNlKTsKLSAgICBzZXQocmVz
dWx0LCBzZXRUeXBlLCAibG9naWNhbFN1cmZhY2UiLCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpMb2dp
Y2FsU3VyZmFjZSwgY29uc3RyYWludFNldC5sb2dpY2FsU3VyZmFjZSk7CisgICAgc2V0KHJlc3Vs
dCwgc2V0VHlwZSwgImRldmljZUlkIl9zLCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpEZXZpY2VJZCwg
Y29uc3RyYWludFNldC5kZXZpY2VJZCk7CisgICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgImdyb3Vw
SWQiX3MsIE1lZGlhQ29uc3RyYWludFR5cGU6Okdyb3VwSWQsIGNvbnN0cmFpbnRTZXQuZ3JvdXBJ
ZCk7CisgICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgImRpc3BsYXlTdXJmYWNlIl9zLCBNZWRpYUNv
bnN0cmFpbnRUeXBlOjpEaXNwbGF5U3VyZmFjZSwgY29uc3RyYWludFNldC5kaXNwbGF5U3VyZmFj
ZSk7CisgICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgImxvZ2ljYWxTdXJmYWNlIl9zLCBNZWRpYUNv
bnN0cmFpbnRUeXBlOjpMb2dpY2FsU3VyZmFjZSwgY29uc3RyYWludFNldC5sb2dpY2FsU3VyZmFj
ZSk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENJY2VDYW5kaWRhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENJY2VDYW5kaWRhdGUuY3BwCmluZGV4IDlmNzA2ZGY2ZGY2
NWU3Zjk1ODE1NzUxNDAyMjQ4ZTA4YzdhMjNmYTAuLmJiN2VmNzQxMjYxOWMwNTlkY2VjNzRkNjhl
ZTJkYmUwYzkzYWJjMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDSWNlQ2FuZGlkYXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ0ljZUNhbmRpZGF0ZS5jcHAKQEAgLTU0LDcgKzU0LDcgQEAgUlRDSWNlQ2Fu
ZGlkYXRlOjpSVENJY2VDYW5kaWRhdGUoY29uc3QgU3RyaW5nJiBjYW5kaWRhdGUsIGNvbnN0IFN0
cmluZyYgc2RwTWlkLAogRXhjZXB0aW9uT3I8UmVmPFJUQ0ljZUNhbmRpZGF0ZT4+IFJUQ0ljZUNh
bmRpZGF0ZTo6Y3JlYXRlKGNvbnN0IFJUQ0ljZUNhbmRpZGF0ZUluaXQmIGRpY3Rpb25hcnkpCiB7
CiAgICAgaWYgKGRpY3Rpb25hcnkuc2RwTWlkLmlzTnVsbCgpICYmICFkaWN0aW9uYXJ5LnNkcE1M
aW5lSW5kZXgpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJDYW5kaWRh
dGUgbXVzdCBub3QgaGF2ZSBib3RoIG51bGwgc2RwTWlkIGFuZCBzZHBNTGluZUluZGV4IiB9Owor
ICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiQ2FuZGlkYXRlIG11c3Qgbm90
IGhhdmUgYm90aCBudWxsIHNkcE1pZCBhbmQgc2RwTUxpbmVJbmRleCJfcyB9OwogCiAgICAgYXV0
byBmaWVsZHMgPSB2YWx1ZU9yRGVmYXVsdChwYXJzZUljZUNhbmRpZGF0ZVNEUChkaWN0aW9uYXJ5
LmNhbmRpZGF0ZSkpOwogICAgIGZpZWxkcy51c2VybmFtZUZyYWdtZW50ID0gZGljdGlvbmFyeS51
c2VybmFtZUZyYWdtZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcAppbmRleCA5MGRlNjM5OTM0ZWQ2MWM1YzBi
MTAxMmMwYWE1Mzk3ZGQwZDhiMzJhLi40MTU2NmE1NTVmNjJlZTUwOGUwZGQxYTFkZDcwODg0ZWY3
NTBmNWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1BlZXJDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcApAQCAtMjczLDcgKzI3Myw3IEBAIHZvaWQgUlRDUGVl
ckNvbm5lY3Rpb246OnNldExvY2FsRGVzY3JpcHRpb24oc3RkOjpvcHRpb25hbDxSVENMb2NhbFNl
c3Npb25EZXNjcmlwCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBBTFdBWVNfTE9HKExP
R0lERU5USUZJRVIsICJTZXR0aW5nIGxvY2FsIGRlc2NyaXB0aW9uIHRvOlxuIiwgbG9jYWxEZXNj
cmlwdGlvbiA/IGxvY2FsRGVzY3JpcHRpb24tPnNkcCA6ICInJyIpOworICAgIEFMV0FZU19MT0co
TE9HSURFTlRJRklFUiwgIlNldHRpbmcgbG9jYWwgZGVzY3JpcHRpb24gdG86XG4iLCBsb2NhbERl
c2NyaXB0aW9uID8gbG9jYWxEZXNjcmlwdGlvbi0+c2RwIDogIicnIl9zKTsKICAgICBjaGFpbk9w
ZXJhdGlvbihXVEZNb3ZlKHByb21pc2UpLCBbdGhpcywgbG9jYWxEZXNjcmlwdGlvbiA9IFdURk1v
dmUobG9jYWxEZXNjcmlwdGlvbildKGF1dG8mJiBwcm9taXNlKSBtdXRhYmxlIHsKICAgICAgICAg
YXV0byB0eXBlID0gdHlwZUZvclNldExvY2FsRGVzY3JpcHRpb24obG9jYWxEZXNjcmlwdGlvbiwg
bV9zaWduYWxpbmdTdGF0ZSk7CiAgICAgICAgIFN0cmluZyBzZHA7CkBAIC0zNDQsNyArMzQ0LDcg
QEAgdm9pZCBSVENQZWVyQ29ubmVjdGlvbjo6YWRkSWNlQ2FuZGlkYXRlKENhbmRpZGF0ZSYmIHJ0
Y0NhbmRpZGF0ZSwgUmVmPERlZmVycmVkUHIKICAgICAgICAgfSk7CiAgICAgfQogCi0gICAgQUxX
QVlTX0xPRyhMT0dJREVOVElGSUVSLCAiUmVjZWl2ZWQgaWNlIGNhbmRpZGF0ZTpcbiIsIGNhbmRp
ZGF0ZSA/IGNhbmRpZGF0ZS0+Y2FuZGlkYXRlKCkgOiAibnVsbCIpOworICAgIEFMV0FZU19MT0co
TE9HSURFTlRJRklFUiwgIlJlY2VpdmVkIGljZSBjYW5kaWRhdGU6XG4iLCBjYW5kaWRhdGUgPyBj
YW5kaWRhdGUtPmNhbmRpZGF0ZSgpIDogIm51bGwiX3MpOwogCiAgICAgaWYgKGV4Y2VwdGlvbikg
ewogICAgICAgICBwcm9taXNlLT5yZWplY3QoKmV4Y2VwdGlvbik7CkBAIC0zNzksMTMgKzM3OSwx
MyBAQCBzdGQ6Om9wdGlvbmFsPGJvb2w+IFJUQ1BlZXJDb25uZWN0aW9uOjpjYW5Ucmlja2xlSWNl
Q2FuZGlkYXRlcygpIGNvbnN0CiBFeGNlcHRpb25PcjxWZWN0b3I8TWVkaWFFbmRwb2ludENvbmZp
Z3VyYXRpb246OkljZVNlcnZlckluZm8+PiBSVENQZWVyQ29ubmVjdGlvbjo6aWNlU2VydmVyc0Zy
b21Db25maWd1cmF0aW9uKFJUQ0NvbmZpZ3VyYXRpb24mIG5ld0NvbmZpZ3VyYXRpb24sIGNvbnN0
IFJUQ0NvbmZpZ3VyYXRpb24qIGV4aXN0aW5nQ29uZmlndXJhdGlvbiwgYm9vbCBpc0xvY2FsRGVz
Y3JpcHRpb25TZXQpCiB7CiAgICAgaWYgKGV4aXN0aW5nQ29uZmlndXJhdGlvbiAmJiBuZXdDb25m
aWd1cmF0aW9uLmJ1bmRsZVBvbGljeSAhPSBleGlzdGluZ0NvbmZpZ3VyYXRpb24tPmJ1bmRsZVBv
bGljeSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRNb2RpZmljYXRpb25FcnJv
ciwgIkJ1bmRsZVBvbGljeSBkb2VzIG5vdCBtYXRjaCBleGlzdGluZyBwb2xpY3kiIH07CisgICAg
ICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3IsICJCdW5kbGVQ
b2xpY3kgZG9lcyBub3QgbWF0Y2ggZXhpc3RpbmcgcG9saWN5Il9zIH07CiAKICAgICBpZiAoZXhp
c3RpbmdDb25maWd1cmF0aW9uICYmIG5ld0NvbmZpZ3VyYXRpb24ucnRjcE11eFBvbGljeSAhPSBl
eGlzdGluZ0NvbmZpZ3VyYXRpb24tPnJ0Y3BNdXhQb2xpY3kpCi0gICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3IsICJSVENQTXV4UG9saWN5IGRvZXMgbm90
IG1hdGNoIGV4aXN0aW5nIHBvbGljeSIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElu
dmFsaWRNb2RpZmljYXRpb25FcnJvciwgIlJUQ1BNdXhQb2xpY3kgZG9lcyBub3QgbWF0Y2ggZXhp
c3RpbmcgcG9saWN5Il9zIH07CiAKICAgICBpZiAoZXhpc3RpbmdDb25maWd1cmF0aW9uICYmIG5l
d0NvbmZpZ3VyYXRpb24uaWNlQ2FuZGlkYXRlUG9vbFNpemUgIT0gZXhpc3RpbmdDb25maWd1cmF0
aW9uLT5pY2VDYW5kaWRhdGVQb29sU2l6ZSAmJiBpc0xvY2FsRGVzY3JpcHRpb25TZXQpCi0gICAg
ICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3IsICJJY2VUcmFu
c3BvcnRQb2xpY3kgcG9vbCBzaXplIGRvZXMgbm90IG1hdGNoIGV4aXN0aW5nIHBvb2wgc2l6ZSIg
fTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRNb2RpZmljYXRpb25FcnJvciwg
IkljZVRyYW5zcG9ydFBvbGljeSBwb29sIHNpemUgZG9lcyBub3QgbWF0Y2ggZXhpc3RpbmcgcG9v
bCBzaXplIl9zIH07CiAKICAgICBWZWN0b3I8TWVkaWFFbmRwb2ludENvbmZpZ3VyYXRpb246Oklj
ZVNlcnZlckluZm8+IHNlcnZlcnM7CiAgICAgaWYgKG5ld0NvbmZpZ3VyYXRpb24uaWNlU2VydmVy
cykgewpAQCAtNDE0LDE4ICs0MTQsMTggQEAgRXhjZXB0aW9uT3I8VmVjdG9yPE1lZGlhRW5kcG9p
bnRDb25maWd1cmF0aW9uOjpJY2VTZXJ2ZXJJbmZvPj4gUlRDUGVlckNvbm5lY3Rpb24KIAogICAg
ICAgICAgICAgZm9yIChhdXRvJiBzZXJ2ZXJVUkwgOiBzZXJ2ZXJVUkxzKSB7CiAgICAgICAgICAg
ICAgICAgaWYgKHNlcnZlclVSTC5pc051bGwoKSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIkJhZCBJQ0Ugc2VydmVyIFVSTCIgfTsKKyAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIkJhZCBJQ0Ugc2VydmVy
IFVSTCJfcyB9OwogICAgICAgICAgICAgICAgIGlmIChzZXJ2ZXJVUkwucHJvdG9jb2xJcygidHVy
biIpIHx8IHNlcnZlclVSTC5wcm90b2NvbElzKCJ0dXJucyIpKSB7CiAgICAgICAgICAgICAgICAg
ICAgIGlmIChzZXJ2ZXIuY3JlZGVudGlhbC5pc051bGwoKSB8fCBzZXJ2ZXIudXNlcm5hbWUuaXNO
dWxsKCkpCi0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxp
ZEFjY2Vzc0Vycm9yLCAiVFVSTi9UVVJOUyBzZXJ2ZXIgcmVxdWlyZXMgYm90aCB1c2VybmFtZSBh
bmQgY3JlZGVudGlhbCIgfTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBFeGNlcHRp
b24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJUVVJOL1RVUk5TIHNlcnZlciByZXF1aXJlcyBib3Ro
IHVzZXJuYW1lIGFuZCBjcmVkZW50aWFsIl9zIH07CiAgICAgICAgICAgICAgICAgICAgIC8vIGh0
dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM4NDg5I3NlY3Rpb24tMTQuMwogICAgICAgICAg
ICAgICAgICAgICBpZiAoc2VydmVyLmNyZWRlbnRpYWwubGVuZ3RoKCkgPiA2NCB8fCBzZXJ2ZXIu
dXNlcm5hbWUubGVuZ3RoKCkgPiA2NCkgewogICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Rl
eHByIHNpemVfdCBNYXhUdXJuVXNlcm5hbWVMZW5ndGggPSA1MDk7CiAgICAgICAgICAgICAgICAg
ICAgICAgICBpZiAoc2VydmVyLmNyZWRlbnRpYWwudXRmOCgpLmxlbmd0aCgpID4gTWF4VHVyblVz
ZXJuYW1lTGVuZ3RoIHx8IHNlcnZlci51c2VybmFtZS51dGY4KCkubGVuZ3RoKCkgPiBNYXhUdXJu
VXNlcm5hbWVMZW5ndGgpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEV4Y2Vw
dGlvbiB7IFR5cGVFcnJvciwgIlRVUk4vVFVSTlMgdXNlcm5hbWUgYW5kL29yIGNyZWRlbnRpYWwg
YXJlIHRvbyBsb25nIiB9OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBUeXBlRXJyb3IsICJUVVJOL1RVUk5TIHVzZXJuYW1lIGFuZC9vciBjcmVkZW50aWFs
IGFyZSB0b28gbG9uZyJfcyB9OwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICAgfSBlbHNlIGlmICghc2VydmVyVVJMLnByb3RvY29sSXMoInN0dW4iKSkKLSAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yLCAiSUNFIHNlcnZl
ciBwcm90b2NvbCBub3Qgc3VwcG9ydGVkIiB9OworICAgICAgICAgICAgICAgICAgICByZXR1cm4g
RXhjZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IsICJJQ0Ugc2VydmVyIHByb3RvY29sIG5vdCBz
dXBwb3J0ZWQiX3MgfTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGlmIChzZXJ2ZXJVUkxz
LnNpemUoKSkKICAgICAgICAgICAgICAgICBzZXJ2ZXJzLnVuY2hlY2tlZEFwcGVuZCh7IFdURk1v
dmUoc2VydmVyVVJMcyksIHNlcnZlci5jcmVkZW50aWFsLCBzZXJ2ZXIudXNlcm5hbWUgfSk7CkBA
IC00NDMsNyArNDQzLDcgQEAgRXhjZXB0aW9uT3I8VmVjdG9yPE1lZGlhRW5kcG9pbnRDb25maWd1
cmF0aW9uOjpDZXJ0aWZpY2F0ZVBFTT4+IFJUQ1BlZXJDb25uZWN0aW8KICAgICBjZXJ0aWZpY2F0
ZXMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShjb25maWd1cmF0aW9uLmNlcnRpZmljYXRlcy5zaXpl
KCkpOwogICAgIGZvciAoYXV0byYgY2VydGlmaWNhdGUgOiBjb25maWd1cmF0aW9uLmNlcnRpZmlj
YXRlcykgewogICAgICAgICBpZiAoIW9yaWdpbi5pc1NhbWVPcmlnaW5BcyhjZXJ0aWZpY2F0ZS0+
b3JpZ2luKCkpKQotICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NF
cnJvciwgIkNlcnRpZmljYXRlIGRvZXMgbm90IGhhdmUgYSB2YWxpZCBvcmlnaW4iIH07CisgICAg
ICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiQ2VydGlmaWNh
dGUgZG9lcyBub3QgaGF2ZSBhIHZhbGlkIG9yaWdpbiJfcyB9OwogCiAgICAgICAgIGlmIChjdXJy
ZW50TWlsbGlTZWNvbmRzID4gY2VydGlmaWNhdGUtPmV4cGlyZXMoKSkKICAgICAgICAgICAgIHJl
dHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJDZXJ0aWZpY2F0ZSBoYXMgZXhw
aXJlZCJfcyB9OwpAQCAtNDY2LDcgKzQ2Niw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFJUQ1BlZXJD
b25uZWN0aW9uOjppbml0aWFsaXplQ29uZmlndXJhdGlvbihSVENDb25maWd1cmF0aW9uJiYKICAg
ICAgICAgcmV0dXJuIGNlcnRpZmljYXRlcy5yZWxlYXNlRXhjZXB0aW9uKCk7CiAKICAgICBpZiAo
IW1fYmFja2VuZC0+c2V0Q29uZmlndXJhdGlvbih7IHNlcnZlcnMucmVsZWFzZVJldHVyblZhbHVl
KCksIGNvbmZpZ3VyYXRpb24uaWNlVHJhbnNwb3J0UG9saWN5LCBjb25maWd1cmF0aW9uLmJ1bmRs
ZVBvbGljeSwgY29uZmlndXJhdGlvbi5ydGNwTXV4UG9saWN5LCBjb25maWd1cmF0aW9uLmljZUNh
bmRpZGF0ZVBvb2xTaXplLCBjZXJ0aWZpY2F0ZXMucmVsZWFzZVJldHVyblZhbHVlKCkgfSkpCi0g
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJCYWQgQ29uZmln
dXJhdGlvbiBQYXJhbWV0ZXJzIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxp
ZEFjY2Vzc0Vycm9yLCAiQmFkIENvbmZpZ3VyYXRpb24gUGFyYW1ldGVycyJfcyB9OwogCiAgICAg
bV9jb25maWd1cmF0aW9uID0gV1RGTW92ZShjb25maWd1cmF0aW9uKTsKICAgICByZXR1cm4geyB9
OwpAQCAtNDg1LDE5ICs0ODUsMTkgQEAgRXhjZXB0aW9uT3I8dm9pZD4gUlRDUGVlckNvbm5lY3Rp
b246OnNldENvbmZpZ3VyYXRpb24oUlRDQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3UKIAogICAgIGlm
IChjb25maWd1cmF0aW9uLmNlcnRpZmljYXRlcy5zaXplKCkpIHsKICAgICAgICAgaWYgKGNvbmZp
Z3VyYXRpb24uY2VydGlmaWNhdGVzLnNpemUoKSAhPSBtX2NvbmZpZ3VyYXRpb24uY2VydGlmaWNh
dGVzLnNpemUoKSkKLSAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkTW9kaWZp
Y2F0aW9uRXJyb3IsICJDZXJ0aWZpY2F0ZXMgcGFyYW1ldGVycyBhcmUgZGlmZmVyZW50IiB9Owor
ICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRNb2RpZmljYXRpb25FcnJvciwg
IkNlcnRpZmljYXRlcyBwYXJhbWV0ZXJzIGFyZSBkaWZmZXJlbnQiX3MgfTsKIAogICAgICAgICBm
b3IgKGF1dG8mIGNlcnRpZmljYXRlIDogY29uZmlndXJhdGlvbi5jZXJ0aWZpY2F0ZXMpIHsKICAg
ICAgICAgICAgIGJvb2wgaXNUaGVyZSA9IG1fY29uZmlndXJhdGlvbi5jZXJ0aWZpY2F0ZXMuZmlu
ZElmKFsmY2VydGlmaWNhdGVdKGNvbnN0IGF1dG8mIGl0ZW0pIHsKICAgICAgICAgICAgICAgICBy
ZXR1cm4gaXRlbS5nZXQoKSA9PSBjZXJ0aWZpY2F0ZS5nZXQoKTsKICAgICAgICAgICAgIH0pICE9
IG5vdEZvdW5kOwogICAgICAgICAgICAgaWYgKCFpc1RoZXJlKQotICAgICAgICAgICAgICAgIHJl
dHVybiBFeGNlcHRpb24geyBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3IsICJBIGNlcnRpZmljYXRl
IGdpdmVuIGluIGNvbnN0cnVjdG9yIGlzIG5vdCBwcmVzZW50IiB9OworICAgICAgICAgICAgICAg
IHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3IsICJBIGNlcnRpZmlj
YXRlIGdpdmVuIGluIGNvbnN0cnVjdG9yIGlzIG5vdCBwcmVzZW50Il9zIH07CiAgICAgICAgIH0K
ICAgICB9CiAKICAgICBpZiAoIW1fYmFja2VuZC0+c2V0Q29uZmlndXJhdGlvbih7IHNlcnZlcnMu
cmVsZWFzZVJldHVyblZhbHVlKCksIGNvbmZpZ3VyYXRpb24uaWNlVHJhbnNwb3J0UG9saWN5LCBj
b25maWd1cmF0aW9uLmJ1bmRsZVBvbGljeSwgY29uZmlndXJhdGlvbi5ydGNwTXV4UG9saWN5LCBj
b25maWd1cmF0aW9uLmljZUNhbmRpZGF0ZVBvb2xTaXplLCB7IH0gfSkpCi0gICAgICAgIHJldHVy
biBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJCYWQgQ29uZmlndXJhdGlvbiBQYXJh
bWV0ZXJzIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9y
LCAiQmFkIENvbmZpZ3VyYXRpb24gUGFyYW1ldGVycyJfcyB9OwogCiAgICAgbV9jb25maWd1cmF0
aW9uID0gV1RGTW92ZShjb25maWd1cmF0aW9uKTsKICAgICByZXR1cm4geyB9OwpAQCAtOTE5LDcg
KzkxOSw3IEBAIGNvbnN0IFZlY3RvcjxSZWZQdHI8UlRDUnRwVHJhbnNjZWl2ZXI+PiYgUlRDUGVl
ckNvbm5lY3Rpb246OmdldFRyYW5zY2VpdmVycygpIGNvCiB2b2lkIFJUQ1BlZXJDb25uZWN0aW9u
OjpjaGFpbk9wZXJhdGlvbihSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UsIEZ1bmN0aW9u
PHZvaWQoUmVmPERlZmVycmVkUHJvbWlzZT4mJik+JiYgb3BlcmF0aW9uKQogewogICAgIGlmIChp
c0Nsb3NlZCgpKSB7Ci0gICAgICAgIHByb21pc2UtPnJlamVjdChJbnZhbGlkU3RhdGVFcnJvciwg
IlJUQ1BlZXJDb25uZWN0aW9uIGlzIGNsb3NlZCIpOworICAgICAgICBwcm9taXNlLT5yZWplY3Qo
SW52YWxpZFN0YXRlRXJyb3IsICJSVENQZWVyQ29ubmVjdGlvbiBpcyBjbG9zZWQiX3MpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCkBAIC05MjcsNyArOTI3LDcgQEAgdm9pZCBSVENQZWVyQ29u
bmVjdGlvbjo6Y2hhaW5PcGVyYXRpb24oUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlLCBG
dW5jdGlvbjwKICAgICAgICAgQVNTRVJUKG1faGFzUGVuZGluZ09wZXJhdGlvbik7CiAgICAgICAg
IGlmIChpc0Nsb3NlZCgpKSB7CiAgICAgICAgICAgICBmb3IgKGF1dG8mIG9wZXJhdGlvbiA6IHN0
ZDo6ZXhjaGFuZ2UobV9vcGVyYXRpb25zLCB7IH0pKQotICAgICAgICAgICAgICAgIG9wZXJhdGlv
bi5maXJzdC0+cmVqZWN0KEludmFsaWRTdGF0ZUVycm9yLCAiUlRDUGVlckNvbm5lY3Rpb24gaXMg
Y2xvc2VkIik7CisgICAgICAgICAgICAgICAgb3BlcmF0aW9uLmZpcnN0LT5yZWplY3QoSW52YWxp
ZFN0YXRlRXJyb3IsICJSVENQZWVyQ29ubmVjdGlvbiBpcyBjbG9zZWQiX3MpOwogICAgICAgICAg
ICAgbV9oYXNQZW5kaW5nT3BlcmF0aW9uID0gZmFsc2U7CiAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm1lci5jcHAKaW5kZXggY2IzZjdjZDliZjIxMjNl
OTFkMmRmN2E0NTFkMWM2ZTgxODllZDQ0ZC4uNGYyOWFiMTVlNmI1Njc3MTczMGFmOTQ0MmNlMGI0
MTQyNzBlMTZjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENSdHBTRnJhbWVUcmFuc2Zvcm1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm1lci5jcHAKQEAgLTM0Niw3ICszNDYs
NyBAQCBSVENSdHBTRnJhbWVUcmFuc2Zvcm1lcjo6VHJhbnNmb3JtUmVzdWx0IFJUQ1J0cFNGcmFt
ZVRyYW5zZm9ybWVyOjplbmNyeXB0RnJhbWUoUwogUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI6OlRy
YW5zZm9ybVJlc3VsdCBSVENSdHBTRnJhbWVUcmFuc2Zvcm1lcjo6dHJhbnNmb3JtKFNwYW48Y29u
c3QgdWludDhfdD4gZGF0YSkKIHsKICAgICBpZiAoIW1faGFzS2V5KQotICAgICAgICByZXR1cm4g
bWFrZVVuZXhwZWN0ZWQoRXJyb3JJbmZvcm1hdGlvbiB7IEVycm9yOjpLZXlJRCwgICJLZXkgaXMg
bm90IGluaXRpYWxpemVkIiwgMCB9KTsKKyAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKEVy
cm9ySW5mb3JtYXRpb24geyBFcnJvcjo6S2V5SUQsICAiS2V5IGlzIG5vdCBpbml0aWFsaXplZCJf
cywgMCB9KTsKIAogICAgIHJldHVybiBtX2lzRW5jcnlwdGluZyA/IGVuY3J5cHRGcmFtZShkYXRh
KSA6IGRlY3J5cHRGcmFtZShkYXRhKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2Vu
ZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJX
ZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwCmluZGV4IDEzMzMxYWNjMDQ0MGNkMDE3ODlj
NzMxNTgwZWI1NjkwNDFjMzgxY2QuLjMyM2MyODEzYzMyNGVmZWU2OThmNGMwZTRiOWZmZmNjNzlk
NGQ2YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGli
d2VicnRjL0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUGVlckNvbm5lY3Rp
b25CYWNrZW5kLmNwcApAQCAtMjYwLDcgKzI2MCw3IEBAIHZvaWQgTGliV2ViUlRDUGVlckNvbm5l
Y3Rpb25CYWNrZW5kOjpkb0NyZWF0ZU9mZmVyKFJUQ09mZmVyT3B0aW9ucyYmIG9wdGlvbnMpCiB2
b2lkIExpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZDo6ZG9DcmVhdGVBbnN3ZXIoUlRDQW5z
d2VyT3B0aW9ucyYmKQogewogICAgIGlmICghbV9pc1JlbW90ZURlc2NyaXB0aW9uU2V0KSB7Ci0g
ICAgICAgIGNyZWF0ZUFuc3dlckZhaWxlZChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwg
Ik5vIHJlbW90ZSBkZXNjcmlwdGlvbiBzZXQiIH0pOworICAgICAgICBjcmVhdGVBbnN3ZXJGYWls
ZWQoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJObyByZW1vdGUgZGVzY3JpcHRpb24g
c2V0Il9zIH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIG1fZW5kcG9pbnQtPmRvQ3Jl
YXRlQW5zd2VyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENSdHBUcmFuc2NlaXZlckJhY2tlbmQuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUnRwVHJhbnNj
ZWl2ZXJCYWNrZW5kLmNwcAppbmRleCBkMWY3M2FkN2Y0NzhmNjA0NzI1YjA2MDk5ZmRlNjkwYzcz
ZWQ1YjQ1Li40MTc2ZThkNmY3ODNhNTI1YTgwZjdhNjBlYWRjNjdmNmJmZDcwMTZjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJS
VENSdHBUcmFuc2NlaXZlckJhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1J0cFRyYW5zY2VpdmVyQmFja2VuZC5jcHAK
QEAgLTg5LDcgKzg5LDcgQEAgc3RhdGljIGlubGluZSBFeGNlcHRpb25Pcjx3ZWJydGM6OlJ0cENv
ZGVjQ2FwYWJpbGl0eT4gdG9SdHBDb2RlY0NhcGFiaWxpdHkoY29uc3QKICAgICBlbHNlIGlmIChj
b2RlYy5taW1lVHlwZS5zdGFydHNXaXRoKCJhdWRpby8iKSkKICAgICAgICAgcnRjQ29kZWMua2lu
ZCA9IGNyaWNrZXQ6Ok1FRElBX1RZUEVfQVVESU87CiAgICAgZWxzZQotICAgICAgICByZXR1cm4g
RXhjZXB0aW9uIHsgSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yLCAiUlRDUnRwQ29kZWNDYXBhYmls
aXR5IGJhZCBtaW1lVHlwZSIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRN
b2RpZmljYXRpb25FcnJvciwgIlJUQ1J0cENvZGVjQ2FwYWJpbGl0eSBiYWQgbWltZVR5cGUiX3Mg
fTsKIAogICAgIHJ0Y0NvZGVjLm5hbWUgPSBjb2RlYy5taW1lVHlwZS5zdWJzdHJpbmcoNikudXRm
OCgpLmRhdGEoKTsKICAgICBydGNDb2RlYy5jbG9ja19yYXRlID0gY29kZWMuY2xvY2tSYXRlOwpA
QCAtOTksNyArOTksNyBAQCBzdGF0aWMgaW5saW5lIEV4Y2VwdGlvbk9yPHdlYnJ0Yzo6UnRwQ29k
ZWNDYXBhYmlsaXR5PiB0b1J0cENvZGVjQ2FwYWJpbGl0eShjb25zdAogICAgIGZvciAoYXV0byBw
YXJhbWV0ZXIgOiBTdHJpbmdWaWV3KGNvZGVjLnNkcEZtdHBMaW5lKS5zcGxpdCgnOycpKSB7CiAg
ICAgICAgIGF1dG8gcG9zaXRpb24gPSBwYXJhbWV0ZXIuZmluZCgnPScpOwogICAgICAgICBpZiAo
cG9zaXRpb24gPT0gbm90Rm91bmQpCi0gICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52
YWxpZE1vZGlmaWNhdGlvbkVycm9yLCAiUlRDUnRwQ29kZWNDYXBhYmlsaXR5IHNkcEZtdExpbmUg
YmFkbHkgZm9ybWF0ZWQiIH07CisgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxp
ZE1vZGlmaWNhdGlvbkVycm9yLCAiUlRDUnRwQ29kZWNDYXBhYmlsaXR5IHNkcEZtdExpbmUgYmFk
bHkgZm9ybWF0ZWQiX3MgfTsKICAgICAgICAgcnRjQ29kZWMucGFyYW1ldGVycy5lbXBsYWNlKHBh
cmFtZXRlci5zdWJzdHJpbmcoMCwgcG9zaXRpb24pLnV0ZjgoKS5kYXRhKCksIHBhcmFtZXRlci5z
dWJzdHJpbmcocG9zaXRpb24gKyAxKS51dGY4KCkuZGF0YSgpKTsKICAgICB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJU
Q1V0aWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRj
L0xpYldlYlJUQ1V0aWxzLmNwcAppbmRleCA0NWU0ZDE3MzYzZmYxYjY0MDdlM2MwOTljMGZjN2Y0
MjgyZmE2OGIwLi45ZjE5NmYzNzhiYjc3NzY3M2NmNzEyMGNhYTRmYjQ2NDUwMWY0YTg1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJX
ZWJSVENVdGlscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9s
aWJ3ZWJydGMvTGliV2ViUlRDVXRpbHMuY3BwCkBAIC0zNjAsNyArMzYwLDcgQEAgRXhjZXB0aW9u
IHRvRXhjZXB0aW9uKGNvbnN0IHdlYnJ0Yzo6UlRDRXJyb3ImIGVycm9yKQogewogICAgIEFTU0VS
VCghZXJyb3Iub2soKSk7CiAKLSAgICByZXR1cm4gRXhjZXB0aW9uIHsgdG9FeGNlcHRpb25Db2Rl
KGVycm9yLnR5cGUoKSksIGVycm9yLm1lc3NhZ2UoKSB9OworICAgIHJldHVybiBFeGNlcHRpb24g
eyB0b0V4Y2VwdGlvbkNvZGUoZXJyb3IudHlwZSgpKSwgU3RyaW5nIHsgZXJyb3IubWVzc2FnZSgp
IH0gfTsKIH0KIAogc3RhdGljIGlubGluZSBSVENJY2VDb21wb25lbnQgdG9SVENJY2VDb21wb25l
bnQoaW50IGNvbXBvbmVudCkKQEAgLTQ1NSw3ICs0NTUsNyBAQCBSZWZQdHI8UlRDRXJyb3I+IHRv
UlRDRXJyb3IoY29uc3Qgd2VicnRjOjpSVENFcnJvciYgcnRjRXJyb3IpCiAgICAgYXV0byBkZXRh
aWwgPSB0b1JUQ0Vycm9yRGV0YWlsVHlwZShydGNFcnJvci5lcnJvcl9kZXRhaWwoKSk7CiAgICAg
aWYgKCFkZXRhaWwpCiAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgIHJldHVybiBSVENFcnJv
cjo6Y3JlYXRlKCpkZXRhaWwsIHJ0Y0Vycm9yLm1lc3NhZ2UoKSk7CisgICAgcmV0dXJuIFJUQ0Vy
cm9yOjpjcmVhdGUoKmRldGFpbCwgU3RyaW5nIHsgcnRjRXJyb3IubWVzc2FnZSgpIH0pOwogfQog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21vZGVsLWVsZW1lbnQvc2NlbmVraXQvU2NlbmVLaXRNb2RlbExvYWRlclVTRC5tbSBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9zY2VuZWtpdC9TY2VuZUtpdE1vZGVs
TG9hZGVyVVNELm1tCmluZGV4IDA5ZWM4ZjYwM2U5ZDAyMmIzNzhkZGEwZTQyN2ZlYzUyMWZkZDUy
ZDIuLmNhYjRiOGRlMjAyZTc3ZDcwMjgyYjU5NGExYmVmYmQ3NWIwNmNiMmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9zY2VuZWtpdC9TY2VuZUtpdE1v
ZGVsTG9hZGVyVVNELm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVu
dC9zY2VuZWtpdC9TY2VuZUtpdE1vZGVsTG9hZGVyVVNELm1tCkBAIC0xMDIsNyArMTAyLDcgQEAg
c3RhdGljIFJldGFpblB0cjxOU1VSTD4gd3JpdGVUb1RlbXBvcmFyeUZpbGUoV2ViQ29yZTo6TW9k
ZWwmIG1vZGVsU291cmNlKQogICAgIC8vIGluaXRpYWxpemVyIGJ1dCBjdXJyZW50bHkgdGhhdCBk
b2VzIG5vdCB3b3JrLgogCiAgICAgRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlIGZpbGVI
YW5kbGU7Ci0gICAgYXV0byBmaWxlUGF0aCA9IEZpbGVTeXN0ZW06Om9wZW5UZW1wb3JhcnlGaWxl
KCJNb2RlbEZpbGUiLCBmaWxlSGFuZGxlLCAiLnVzZHoiKTsKKyAgICBhdXRvIGZpbGVQYXRoID0g
RmlsZVN5c3RlbTo6b3BlblRlbXBvcmFyeUZpbGUoIk1vZGVsRmlsZSJfcywgZmlsZUhhbmRsZSwg
Ii51c2R6Il9zKTsKICAgICBBU1NFUlQoRmlsZVN5c3RlbTo6aXNIYW5kbGVWYWxpZChmaWxlSGFu
ZGxlKSk7CiAKICAgICBzaXplX3QgYnl0ZUNvdW50ID0gRmlsZVN5c3RlbTo6d3JpdGVUb0ZpbGUo
ZmlsZUhhbmRsZSwgbW9kZWxTb3VyY2UuZGF0YSgpLT5tYWtlQ29udGlndW91cygpLT5kYXRhKCks
IG1vZGVsU291cmNlLmRhdGEoKS0+c2l6ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5jcHAKaW5kZXggZGYyYjVj
MjY0ZjNhNWNlMmMxZTFjYjZiNzYzNDBhMDBmYTQwY2NlMC4uNDIyMzVlZWExYmZkMWNkMWI3MDcw
YjY5MDk0ODQyY2Y2ZTkzNTRiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9w
YXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5jcHAKQEAgLTIxNiw3ICsyMTYsNyBA
QCBzdGF0aWMgRXhjZXB0aW9uT3I8c3RkOjp0dXBsZTxTdHJpbmcsIFZlY3RvcjxTdHJpbmc+Pj4g
Y2hlY2tBbmRDYW5vbmljYWxpemVEZXRhaQogCiAgICAgICAgICAgICAgICAgYXV0byBhZGRSZXN1
bHQgPSBzZWVuU2hpcHBpbmdPcHRpb25JRHMuYWRkKHNoaXBwaW5nT3B0aW9uLmlkKTsKICAgICAg
ICAgICAgICAgICBpZiAoIWFkZFJlc3VsdC5pc05ld0VudHJ5KQotICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiU2hpcHBpbmcgb3B0aW9uIElEcyBtdXN0
IGJlIHVuaXF1ZS4iIH07CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBU
eXBlRXJyb3IsICJTaGlwcGluZyBvcHRpb24gSURzIG11c3QgYmUgdW5pcXVlLiJfcyB9OwogCiAj
aWYgRU5BQkxFKFBBWU1FTlRfUkVRVUVTVF9TRUxFQ1RFRF9TSElQUElOR19PUFRJT04pCiAgICAg
ICAgICAgICAgICAgaWYgKHNoaXBwaW5nT3B0aW9uLnNlbGVjdGVkKQpAQCAtMzc1LDcgKzM3NSw3
IEBAIHZvaWQgUGF5bWVudFJlcXVlc3Q6OnNob3coRG9jdW1lbnQmIGRvY3VtZW50LCBSZWZQdHI8
RE9NUHJvbWlzZT4mJiBkZXRhaWxzUHJvbWlzCiAKICAgICBhdXRvKiB3aW5kb3cgPSBkb2N1bWVu
dC5mcmFtZSgpLT53aW5kb3coKTsKICAgICBpZiAoIXdpbmRvdyB8fCAhd2luZG93LT5jb25zdW1l
VHJhbnNpZW50QWN0aXZhdGlvbigpKSB7Ci0gICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlv
biB7IFNlY3VyaXR5RXJyb3IsICJzaG93KCkgbXVzdCBiZSB0cmlnZ2VyZWQgYnkgdXNlciBhY3Rp
dmF0aW9uLiIgfSk7CisgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IFNlY3VyaXR5
RXJyb3IsICJzaG93KCkgbXVzdCBiZSB0cmlnZ2VyZWQgYnkgdXNlciBhY3RpdmF0aW9uLiJfcyB9
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9waWN0dXJlaW5waWN0dXJlL0hUTUxWaWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGljdHVyZWlucGljdHVyZS9IVE1MVmlkZW9F
bGVtZW50UGljdHVyZUluUGljdHVyZS5jcHAKaW5kZXggZjJmMDIzMTAyNzQ1YjlmZDIzZThlOTQy
ZDYwOWE3ZTliZTA2MTBkOC4uYmJlMmNiYzhiOWNiYWU0ZjJmYjBlYmRlOTRkNTk1YWY5ZDhmY2Ji
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9waWN0dXJlaW5waWN0dXJlL0hU
TUxWaWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3BpY3R1cmVpbnBpY3R1cmUvSFRNTFZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmUu
Y3BwCkBAIC04MSwyMyArODEsMjMgQEAgdm9pZCBIVE1MVmlkZW9FbGVtZW50UGljdHVyZUluUGlj
dHVyZTo6cHJvdmlkZVBpY3R1cmVJblBpY3R1cmVUbyhIVE1MVmlkZW9FbGVtZW4KIHZvaWQgSFRN
TFZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmU6OnJlcXVlc3RQaWN0dXJlSW5QaWN0dXJlKEhU
TUxWaWRlb0VsZW1lbnQmIHZpZGVvRWxlbWVudCwgUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9t
aXNlKQogewogICAgIGlmICghc3VwcG9ydHNQaWN0dXJlSW5QaWN0dXJlKCkpIHsKLSAgICAgICAg
cHJvbWlzZS0+cmVqZWN0KE5vdFN1cHBvcnRlZEVycm9yLCAiVGhlIFBpY3R1cmUtaW4tUGljdHVy
ZSBtb2RlIGlzIG5vdCBzdXBwb3J0ZWQuIik7CisgICAgICAgIHByb21pc2UtPnJlamVjdChOb3RT
dXBwb3J0ZWRFcnJvciwgIlRoZSBQaWN0dXJlLWluLVBpY3R1cmUgbW9kZSBpcyBub3Qgc3VwcG9y
dGVkLiJfcyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBpZiAodmlkZW9FbGVtZW50
LnJlYWR5U3RhdGUoKSA9PSBIVE1MTWVkaWFFbGVtZW50RW51bXM6OkhBVkVfTk9USElORykgewot
ICAgICAgICBwcm9taXNlLT5yZWplY3QoSW52YWxpZFN0YXRlRXJyb3IsICJUaGUgdmlkZW8gZWxl
bWVudCBpcyBub3QgcmVhZHkgdG8gZW50ZXIgdGhlIFBpY3R1cmUtaW4tUGljdHVyZSBtb2RlLiIp
OworICAgICAgICBwcm9taXNlLT5yZWplY3QoSW52YWxpZFN0YXRlRXJyb3IsICJUaGUgdmlkZW8g
ZWxlbWVudCBpcyBub3QgcmVhZHkgdG8gZW50ZXIgdGhlIFBpY3R1cmUtaW4tUGljdHVyZSBtb2Rl
LiJfcyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBpZiAoIXZpZGVvRWxlbWVudC52
aWRlb1RyYWNrcygpIHx8ICF2aWRlb0VsZW1lbnQudmlkZW9UcmFja3MoKS0+bGVuZ3RoKCkpIHsK
LSAgICAgICAgcHJvbWlzZS0+cmVqZWN0KEludmFsaWRTdGF0ZUVycm9yLCAiVGhlIHZpZGVvIGVs
ZW1lbnQgZG9lcyBub3QgaGF2ZSBhIHZpZGVvIHRyYWNrIG9yIGl0IGhhcyBub3QgZGV0ZWN0ZWQg
YSB2aWRlbyB0cmFjayB5ZXQuIik7CisgICAgICAgIHByb21pc2UtPnJlamVjdChJbnZhbGlkU3Rh
dGVFcnJvciwgIlRoZSB2aWRlbyBlbGVtZW50IGRvZXMgbm90IGhhdmUgYSB2aWRlbyB0cmFjayBv
ciBpdCBoYXMgbm90IGRldGVjdGVkIGEgdmlkZW8gdHJhY2sgeWV0LiJfcyk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKICAgICBib29sIHVzZXJBY3RpdmF0aW9uUmVxdWlyZWQgPSAhdmlkZW9F
bGVtZW50LmRvY3VtZW50KCkucGljdHVyZUluUGljdHVyZUVsZW1lbnQoKTsKICAgICBpZiAodXNl
ckFjdGl2YXRpb25SZXF1aXJlZCAmJiAhVXNlckdlc3R1cmVJbmRpY2F0b3I6OnByb2Nlc3NpbmdV
c2VyR2VzdHVyZSgpKSB7Ci0gICAgICAgIHByb21pc2UtPnJlamVjdChOb3RBbGxvd2VkRXJyb3Is
ICJUaGUgcmVxdWVzdCBpcyBub3QgdHJpZ2dlcmVkIGJ5IGEgdXNlciBhY3RpdmF0aW9uLiIpOwor
ICAgICAgICBwcm9taXNlLT5yZWplY3QoTm90QWxsb3dlZEVycm9yLCAiVGhlIHJlcXVlc3QgaXMg
bm90IHRyaWdnZXJlZCBieSBhIHVzZXIgYWN0aXZhdGlvbi4iX3MpOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCkBAIC0xMDgsNyArMTA4LDcgQEAgdm9pZCBIVE1MVmlkZW9FbGVtZW50UGljdHVy
ZUluUGljdHVyZTo6cmVxdWVzdFBpY3R1cmVJblBpY3R1cmUoSFRNTFZpZGVvRWxlbWVudCYKICAg
ICB9CiAKICAgICBpZiAodmlkZW9FbGVtZW50UGljdHVyZUluUGljdHVyZS0+bV9lbnRlclBpY3R1
cmVJblBpY3R1cmVQcm9taXNlIHx8IHZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmUtPm1fZXhp
dFBpY3R1cmVJblBpY3R1cmVQcm9taXNlKSB7Ci0gICAgICAgIHByb21pc2UtPnJlamVjdChOb3RB
bGxvd2VkRXJyb3IsICJUaGUgdmlkZW8gZWxlbWVudCBpcyBwcm9jZXNzaW5nIGEgUGljdHVyZS1p
bi1QaWN0dXJlIHJlcXVlc3QuIik7CisgICAgICAgIHByb21pc2UtPnJlamVjdChOb3RBbGxvd2Vk
RXJyb3IsICJUaGUgdmlkZW8gZWxlbWVudCBpcyBwcm9jZXNzaW5nIGEgUGljdHVyZS1pbi1QaWN0
dXJlIHJlcXVlc3QuIl9zKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMTE2LDcgKzEx
Niw3IEBAIHZvaWQgSFRNTFZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmU6OnJlcXVlc3RQaWN0
dXJlSW5QaWN0dXJlKEhUTUxWaWRlb0VsZW1lbnQmCiAgICAgICAgIHZpZGVvRWxlbWVudFBpY3R1
cmVJblBpY3R1cmUtPm1fZW50ZXJQaWN0dXJlSW5QaWN0dXJlUHJvbWlzZSA9IFdURk1vdmUocHJv
bWlzZSk7CiAgICAgICAgIHZpZGVvRWxlbWVudC53ZWJraXRTZXRQcmVzZW50YXRpb25Nb2RlKEhU
TUxWaWRlb0VsZW1lbnQ6OlZpZGVvUHJlc2VudGF0aW9uTW9kZTo6UGljdHVyZUluUGljdHVyZSk7
CiAgICAgfSBlbHNlCi0gICAgICAgIHByb21pc2UtPnJlamVjdChOb3RTdXBwb3J0ZWRFcnJvciwg
IlRoZSB2aWRlbyBlbGVtZW50IGRvZXMgbm90IHN1cHBvcnQgdGhlIFBpY3R1cmUtaW4tUGljdHVy
ZSBtb2RlLiIpOworICAgICAgICBwcm9taXNlLT5yZWplY3QoTm90U3VwcG9ydGVkRXJyb3IsICJU
aGUgdmlkZW8gZWxlbWVudCBkb2VzIG5vdCBzdXBwb3J0IHRoZSBQaWN0dXJlLWluLVBpY3R1cmUg
bW9kZS4iX3MpOwogfQogCiBib29sIEhUTUxWaWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJlOjph
dXRvUGljdHVyZUluUGljdHVyZShIVE1MVmlkZW9FbGVtZW50JiB2aWRlb0VsZW1lbnQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvWW91VHViZVBsdWdpblJlcGxh
Y2VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9Zb3VUdWJlUGx1Z2lu
UmVwbGFjZW1lbnQuY3BwCmluZGV4IDk3OWYyMjQ1OTA3MjBmODI5MzM1ZDYwYTNhOGQ4YWU1YzNi
NzIyNDMuLmRkMTZmODkzZjJkNjk1MmNjNWYwMDMwOGY5ZDBkOTlhYjhiMGU4YTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9Zb3VUdWJlUGx1Z2luUmVwbGFjZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9Zb3VUdWJlUGx1Z2lu
UmVwbGFjZW1lbnQuY3BwCkBAIC04NCwxNiArODQsMTYgQEAgYXV0byBZb3VUdWJlUGx1Z2luUmVw
bGFjZW1lbnQ6Omluc3RhbGxSZXBsYWNlbWVudChTaGFkb3dSb290JiByb290KSAtPiBJbnN0YWxs
UmUKICAgICByb290LmFwcGVuZENoaWxkKCptX2VtYmVkU2hhZG93RWxlbWVudCk7CiAKICAgICBh
dXRvIGlmcmFtZUVsZW1lbnQgPSBIVE1MSUZyYW1lRWxlbWVudDo6Y3JlYXRlKEhUTUxOYW1lczo6
aWZyYW1lVGFnLCBtX3BhcmVudEVsZW1lbnQtPmRvY3VtZW50KCkpOwotICAgIGlmIChtX2F0dHJp
YnV0ZXMuY29udGFpbnMoIndpZHRoIikpCisgICAgaWYgKG1fYXR0cmlidXRlcy5jb250YWlucygi
d2lkdGgiX3MpKQogICAgICAgICBpZnJhbWVFbGVtZW50LT5zZXRBdHRyaWJ1dGVXaXRob3V0U3lu
Y2hyb25pemF0aW9uKEhUTUxOYW1lczo6d2lkdGhBdHRyLCBBdG9tU3RyaW5nKCIxMDAlIiwgQXRv
bVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKIAotICAgIGNvbnN0IGF1dG8mIGhlaWdo
dFZhbHVlID0gbV9hdHRyaWJ1dGVzLmZpbmQoImhlaWdodCIpOworICAgIGNvbnN0IGF1dG8mIGhl
aWdodFZhbHVlID0gbV9hdHRyaWJ1dGVzLmZpbmQoImhlaWdodCJfcyk7CiAgICAgaWYgKGhlaWdo
dFZhbHVlICE9IG1fYXR0cmlidXRlcy5lbmQoKSkgewogICAgICAgICBpZnJhbWVFbGVtZW50LT5z
ZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjpzdHlsZUF0dHIsIEF0b21TdHJpbmcoIm1heC1oZWlnaHQ6
IDEwMCUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgICAgICBpZnJh
bWVFbGVtZW50LT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKEhUTUxOYW1lczo6
aGVpZ2h0QXR0ciwgaGVpZ2h0VmFsdWUtPnZhbHVlKTsKICAgICB9CiAKLSAgICBpZnJhbWVFbGVt
ZW50LT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKEhUTUxOYW1lczo6c3JjQXR0
ciwgeW91VHViZVVSTChtX2F0dHJpYnV0ZXMuZ2V0KCJzcmMiKSkpOworICAgIGlmcmFtZUVsZW1l
bnQtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oSFRNTE5hbWVzOjpzcmNBdHRy
LCB5b3VUdWJlVVJMKG1fYXR0cmlidXRlcy5nZXQoInNyYyJfcykpKTsKICAgICBpZnJhbWVFbGVt
ZW50LT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKEhUTUxOYW1lczo6ZnJhbWVi
b3JkZXJBdHRyLCBBdG9tU3RyaW5nKCIwIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpKTsKICAgICAKICAgICAvLyBEaXNhYmxlIGZyYW1lIGZsYXR0ZW5pbmcgZm9yIHRoaXMgaWZy
YW1lLgpAQCAtMjMxLDExICsyMzEsMTEgQEAgc3RhdGljIFVSTCBwcm9jZXNzQW5kQ3JlYXRlWW91
VHViZVVSTChjb25zdCBVUkwmIHVybCwgYm9vbCYgaXNZb3VUdWJlU2hvcnRlbmVkVVIKICAgICBp
ZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UocGF0aCwgIi93YXRjaCIpKSB7CiAgICAg
ICAgIGlmICghcXVlcnkuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBjb25zdCBhdXRvJiBxdWVy
eURpY3Rpb25hcnkgPSBxdWVyeUtleXNBbmRWYWx1ZXMocXVlcnkpOwotICAgICAgICAgICAgU3Ry
aW5nIHZpZGVvSUQgPSB2YWx1ZUZvcktleShxdWVyeURpY3Rpb25hcnksICJ2Iik7CisgICAgICAg
ICAgICBTdHJpbmcgdmlkZW9JRCA9IHZhbHVlRm9yS2V5KHF1ZXJ5RGljdGlvbmFyeSwgInYiX3Mp
OwogICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAoIXZpZGVvSUQuaXNFbXB0eSgpKSB7CiAg
ICAgICAgICAgICAgICAgY29uc3QgYXV0byYgZnJhZ21lbnREaWN0aW9uYXJ5ID0gcXVlcnlLZXlz
QW5kVmFsdWVzKHVybC5mcmFnbWVudElkZW50aWZpZXIoKSk7Ci0gICAgICAgICAgICAgICAgU3Ry
aW5nIHRpbWVJRCA9IHZhbHVlRm9yS2V5KGZyYWdtZW50RGljdGlvbmFyeSwgInQiKTsKKyAgICAg
ICAgICAgICAgICBTdHJpbmcgdGltZUlEID0gdmFsdWVGb3JLZXkoZnJhZ21lbnREaWN0aW9uYXJ5
LCAidCJfcyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVlvdVR1YmVVUkwodmlkZW9J
RCwgdGltZUlEKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtMjQ2LDEwICsyNDYsMTAg
QEAgc3RhdGljIFVSTCBwcm9jZXNzQW5kQ3JlYXRlWW91VHViZVVSTChjb25zdCBVUkwmIHVybCwg
Ym9vbCYgaXNZb3VUdWJlU2hvcnRlbmVkVVIKICAgICAgICAgICAgIAogICAgICAgICAgICAgaWYg
KCFxdWVyeS5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgICAgICBjb25zdCBhdXRvJiBxdWVyeURp
Y3Rpb25hcnkgPSBxdWVyeUtleXNBbmRWYWx1ZXMocXVlcnkpOwotICAgICAgICAgICAgICAgIFN0
cmluZyB2aWRlb0lEID0gdmFsdWVGb3JLZXkocXVlcnlEaWN0aW9uYXJ5LCAidiIpOworICAgICAg
ICAgICAgICAgIFN0cmluZyB2aWRlb0lEID0gdmFsdWVGb3JLZXkocXVlcnlEaWN0aW9uYXJ5LCAi
diJfcyk7CiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgaWYgKCF2aWRlb0lELmlz
RW1wdHkoKSkgewotICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdGltZUlEID0gdmFsdWVGb3JL
ZXkocXVlcnlEaWN0aW9uYXJ5LCAidCIpOworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdGlt
ZUlEID0gdmFsdWVGb3JLZXkocXVlcnlEaWN0aW9uYXJ5LCAidCJfcyk7CiAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBjcmVhdGVZb3VUdWJlVVJMKHZpZGVvSUQsIHRpbWVJRCk7CiAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJ
bXBsLmNwcAppbmRleCBjMjNhOGQ2N2NiNDgxMjMzZjdjYjRiNTE5YjEzNmIyMjE5MDZiZWJlLi42
MDc1M2ZlY2UzNWEyOWY4OGU5MjYyMGEyMGI4MDlhZmU5NmNjNzIxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJ
bXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvbkNhcHR1cmVTb3VyY2VJbXBsLmNwcApAQCAtOTIsNyArOTIsNyBAQCBib29sIFNwZWVjaFJl
Y29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6OnVwZGF0ZURhdGFTb3VyY2UoY29uc3QgQ0FBdWRp
b1N0cmVhbURlcwogICAgIGlmIChkYXRhU291cmNlLT5zZXRJbnB1dEZvcm1hdChhdWRpb0Rlc2Ny
aXB0aW9uKSkgewogICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCB3ZWFrVGhpcyA9IFdl
YWtQdHIgeyAqdGhpcyB9XSB7CiAgICAgICAgICAgICBpZiAod2Vha1RoaXMpCi0gICAgICAgICAg
ICAgICAgbV9zdGF0ZVVwZGF0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVh
dGVFcnJvcihtX2NsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCAiVW5hYmxlIHRvIHNldCBpbnB1
dCBmb3JtYXQiIH0pKTsKKyAgICAgICAgICAgICAgICBtX3N0YXRlVXBkYXRlQ2FsbGJhY2soU3Bl
ZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZUVycm9yKG1fY2xpZW50SWRlbnRpZmllciwgU3Bl
ZWNoUmVjb2duaXRpb25FcnJvciB7IFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpBdWRpb0Nh
cHR1cmUsICJVbmFibGUgdG8gc2V0IGlucHV0IGZvcm1hdCJfcyB9KSk7CiAgICAgICAgIH0pOwog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpAQCAtMTAwLDcgKzEwMCw3IEBAIGJvb2wgU3Bl
ZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbDo6dXBkYXRlRGF0YVNvdXJjZShjb25zdCBD
QUF1ZGlvU3RyZWFtRGVzCiAgICAgaWYgKGRhdGFTb3VyY2UtPnNldE91dHB1dEZvcm1hdChhdWRp
b0Rlc2NyaXB0aW9uKSkgewogICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCB3ZWFrVGhp
cyA9IFdlYWtQdHIgeyAqdGhpcyB9XSB7CiAgICAgICAgICAgICBpZiAod2Vha1RoaXMpCi0gICAg
ICAgICAgICAgICAgbV9zdGF0ZVVwZGF0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRl
OjpjcmVhdGVFcnJvcihtX2NsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uRXJyb3Ig
eyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCAiVW5hYmxlIHRvIHNl
dCBvdXRwdXQgZm9ybWF0IiB9KSk7CisgICAgICAgICAgICAgICAgbV9zdGF0ZVVwZGF0ZUNhbGxi
YWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihtX2NsaWVudElkZW50aWZp
ZXIsIFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6
QXVkaW9DYXB0dXJlLCAiVW5hYmxlIHRvIHNldCBvdXRwdXQgZm9ybWF0Il9zIH0pKTsKICAgICAg
ICAgfSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CkBAIC0xNTcsMTMgKzE1NywxMyBA
QCB2b2lkIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6OnNvdXJjZVN0b3BwZWQo
KQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgQVNTRVJUKG1fc291cmNlLT5j
YXB0dXJlRGlkRmFpbCgpKTsKLSAgICBtX3N0YXRlVXBkYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2du
aXRpb25VcGRhdGU6OmNyZWF0ZUVycm9yKG1fY2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2du
aXRpb25FcnJvciB7IFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpBdWRpb0NhcHR1cmUsICJT
b3VyY2UgaXMgc3RvcHBlZCIgfSkpOworICAgIG1fc3RhdGVVcGRhdGVDYWxsYmFjayhTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IobV9jbGllbnRJZGVudGlmaWVyLCBTcGVlY2hS
ZWNvZ25pdGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlvQ2FwdHVy
ZSwgIlNvdXJjZSBpcyBzdG9wcGVkIl9zIH0pKTsKIH0KIAogdm9pZCBTcGVlY2hSZWNvZ25pdGlv
bkNhcHR1cmVTb3VyY2VJbXBsOjpzb3VyY2VNdXRlZENoYW5nZWQoKQogewogICAgIEFTU0VSVChp
c01haW5UaHJlYWQoKSk7Ci0gICAgbV9zdGF0ZVVwZGF0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0
aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihtX2NsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0
aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCAiU291
cmNlIGlzIG11dGVkIiB9KSk7CisgICAgbV9zdGF0ZVVwZGF0ZUNhbGxiYWNrKFNwZWVjaFJlY29n
bml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihtX2NsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29n
bml0aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCAi
U291cmNlIGlzIG11dGVkIl9zIH0pKTsKIH0KIAogdm9pZCBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1
cmVTb3VyY2VJbXBsOjptdXRlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL2NvY29hL1dlYlNwZWVjaFJlY29nbml6ZXJUYXNrTW9jay5tbSBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL2NvY29hL1dlYlNwZWVjaFJlY29nbml6ZXJUYXNrTW9jay5tbQpp
bmRleCBjNzI3NTliNzY3YWE5NTg3ZDczN2VhNDAyOWEzMTY3ZjhjOTdmMmU4Li5lMWQ5YzY2NjUw
MDQwYWEzMWIxNmQyYmMyYzlhZGRjZDRjZjRkMGMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3NwZWVjaC9jb2NvYS9XZWJTcGVlY2hSZWNvZ25pemVyVGFza01vY2subW0KKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvY29jb2EvV2ViU3BlZWNoUmVjb2duaXpl
clRhc2tNb2NrLm1tCkBAIC02Myw3ICs2Myw3IEBAIC0gKHZvaWQpYXVkaW9TYW1wbGVzQXZhaWxh
YmxlOihDTVNhbXBsZUJ1ZmZlclJlZilzYW1wbGVCdWZmZXIKICAgICB9CiAKICAgICAvLyBGYWtl
IHNvbWUgcmVjb2duaXRpb24gcmVzdWx0cy4KLSAgICBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0
aXZlRGF0YSBhbHRlcm5hdGl2ZSB7ICJUZXN0IiwgMS4wIH07CisgICAgU3BlZWNoUmVjb2duaXRp
b25BbHRlcm5hdGl2ZURhdGEgYWx0ZXJuYXRpdmUgeyAiVGVzdCJfcywgMS4wIH07CiAgICAgX2Rl
bGVnYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZVJlc3VsdChfaWRl
bnRpZmllciwgeyBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEgeyB7IFdURk1vdmUoYWx0ZXJu
YXRpdmUpIH0sIHRydWUgfSB9KSk7CiAKICAgICBpZiAoIV9kb011bHRpcGxlUmVjb2duaXRpb25z
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdG9yYWdlL1N0b3JhZ2VNYW5h
Z2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RvcmFnZS9TdG9yYWdlTWFuYWdlci5j
cHAKaW5kZXggMTg4ZDMwYjYxOThiMTYxZTFiNDdhZTk3NjhlMGMxZTk1NzY2NTNhYi4uNjM2YjQ4
YzlmMDQ3OWJjNWFlMzE5NGVhMWU4OTA1Njk2NTcxN2E0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3N0b3JhZ2UvU3RvcmFnZU1hbmFnZXIuY3BwCkBAIC03Miw3ICs3Miw3IEBA
IHN0YXRpYyBFeGNlcHRpb25PcjxDb25uZWN0aW9uSW5mbz4gY29ubmVjdGlvbkluZm8oTmF2aWdh
dG9yQmFzZSogbmF2aWdhdG9yKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0
YXRlRXJyb3IsICJPcmlnaW4gaXMgaW52YWxpZCJfcyB9OwogCiAgICAgaWYgKCFvcmlnaW4tPmNh
bkFjY2Vzc1N0b3JhZ2VNYW5hZ2VyKCkpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBl
RXJyb3IsICJPcmlnaW4gc2hvdWxkIG5vdCBhY2Nlc3Mgc3RvcmFnZSIgfTsKKyAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIk9yaWdpbiBzaG91bGQgbm90IGFjY2VzcyBzdG9y
YWdlIl9zIH07CiAKICAgICBpZiAoaXM8RG9jdW1lbnQ+KGNvbnRleHQpKSB7CiAgICAgICAgIGlm
IChhdXRvKiBjb25uZWN0aW9uID0gZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpLT5zdG9yYWdl
Q29ubmVjdGlvbigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWItbG9j
a3MvV2ViTG9ja01hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWItbG9ja3Mv
V2ViTG9ja01hbmFnZXIuY3BwCmluZGV4IDIxOTk5MmY2YjViMTRjNWI2MDI3NTQ1NmFkZGIwODU3
Nzg2ZTEyNWYuLmExNjFiM2QyYzA1YzNmNDljOWIwYThmOWU2OTY2ZDQ1YmFhZGVmZWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNYW5hZ2VyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrTWFuYWdlci5j
cHAKQEAgLTMzOCw3ICszMzgsNyBAQCB2b2lkIFdlYkxvY2tNYW5hZ2VyOjpzaWduYWxUb0Fib3J0
VGhlUmVxdWVzdChXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmllcikKICAgICAgICAgaWYg
KHdhc0Fib3J0ZWQgJiYgd2Vha1RoaXMpCiAgICAgICAgICAgICB3ZWFrVGhpcy0+bV9wZW5kaW5n
UmVxdWVzdHMucmVtb3ZlKGxvY2tJZGVudGlmaWVyKTsKICAgICB9KTsKLSAgICBzZXR0bGVSZWxl
YXNlUHJvbWlzZShsb2NrSWRlbnRpZmllciwgRXhjZXB0aW9uIHsgQWJvcnRFcnJvciwgIkxvY2sg
cmVxdWVzdCB3YXMgYWJvcnRlZCB2aWEgQWJvcnRTaWduYWwiIH0pOworICAgIHNldHRsZVJlbGVh
c2VQcm9taXNlKGxvY2tJZGVudGlmaWVyLCBFeGNlcHRpb24geyBBYm9ydEVycm9yLCAiTG9jayBy
ZXF1ZXN0IHdhcyBhYm9ydGVkIHZpYSBBYm9ydFNpZ25hbCJfcyB9KTsKIH0KIAogdm9pZCBXZWJM
b2NrTWFuYWdlcjo6c2V0dGxlUmVsZWFzZVByb21pc2UoV2ViTG9ja0lkZW50aWZpZXIgbG9ja0lk
ZW50aWZpZXIsIEV4Y2VwdGlvbk9yPEpTQzo6SlNWYWx1ZT4mJiByZXN1bHQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTGlzdGVuZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0xpc3RlbmVyLmNwcAppbmRleCAwMjBl
NzZmNDM2NGU2ZGVmOGY4MTcyNGRiN2MyZmQ4YWU1NzAyMTc5Li43NmM3NmQ3NTQ0ZTcwYzlhY2Qz
YmRkZjk2ZjM0YzhhYzZiYTlmZGZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvTGlzdGVuZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9MaXN0ZW5lci5jcHAKQEAgLTQwLDE1ICs0MCwxNSBAQAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBBdWRpb0xpc3RlbmVyOjpBdWRpb0xpc3RlbmVyKEJhc2VBdWRpb0NvbnRl
eHQmIGNvbnRleHQpCi0gICAgOiBtX3Bvc2l0aW9uWChBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4
dCwgInBvc2l0aW9uWCIsIDAuMCwgLUZMVF9NQVgsIEZMVF9NQVgsIEF1dG9tYXRpb25SYXRlOjpB
UmF0ZSkpCi0gICAgLCBtX3Bvc2l0aW9uWShBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCwgInBv
c2l0aW9uWSIsIDAuMCwgLUZMVF9NQVgsIEZMVF9NQVgsIEF1dG9tYXRpb25SYXRlOjpBUmF0ZSkp
Ci0gICAgLCBtX3Bvc2l0aW9uWihBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCwgInBvc2l0aW9u
WiIsIDAuMCwgLUZMVF9NQVgsIEZMVF9NQVgsIEF1dG9tYXRpb25SYXRlOjpBUmF0ZSkpCi0gICAg
LCBtX2ZvcndhcmRYKEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0LCAiZm9yd2FyZFgiLCAwLjAs
IC1GTFRfTUFYLCBGTFRfTUFYLCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQotICAgICwgbV9mb3J3
YXJkWShBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCwgImZvcndhcmRZIiwgMC4wLCAtRkxUX01B
WCwgRkxUX01BWCwgQXV0b21hdGlvblJhdGU6OkFSYXRlKSkKLSAgICAsIG1fZm9yd2FyZFooQXVk
aW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJmb3J3YXJkWiIsIC0xLjAsIC1GTFRfTUFYLCBGTFRf
TUFYLCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQotICAgICwgbV91cFgoQXVkaW9QYXJhbTo6Y3Jl
YXRlKGNvbnRleHQsICJ1cFgiLCAwLjAsIC1GTFRfTUFYLCBGTFRfTUFYLCBBdXRvbWF0aW9uUmF0
ZTo6QVJhdGUpKQotICAgICwgbV91cFkoQXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJ1cFki
LCAxLjAsIC1GTFRfTUFYLCBGTFRfTUFYLCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQotICAgICwg
bV91cFooQXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJ1cFoiLCAwLjAsIC1GTFRfTUFYLCBG
TFRfTUFYLCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQorICAgIDogbV9wb3NpdGlvblgoQXVkaW9Q
YXJhbTo6Y3JlYXRlKGNvbnRleHQsICJwb3NpdGlvblgiX3MsIDAuMCwgLUZMVF9NQVgsIEZMVF9N
QVgsIEF1dG9tYXRpb25SYXRlOjpBUmF0ZSkpCisgICAgLCBtX3Bvc2l0aW9uWShBdWRpb1BhcmFt
OjpjcmVhdGUoY29udGV4dCwgInBvc2l0aW9uWSJfcywgMC4wLCAtRkxUX01BWCwgRkxUX01BWCwg
QXV0b21hdGlvblJhdGU6OkFSYXRlKSkKKyAgICAsIG1fcG9zaXRpb25aKEF1ZGlvUGFyYW06OmNy
ZWF0ZShjb250ZXh0LCAicG9zaXRpb25aIl9zLCAwLjAsIC1GTFRfTUFYLCBGTFRfTUFYLCBBdXRv
bWF0aW9uUmF0ZTo6QVJhdGUpKQorICAgICwgbV9mb3J3YXJkWChBdWRpb1BhcmFtOjpjcmVhdGUo
Y29udGV4dCwgImZvcndhcmRYIl9zLCAwLjAsIC1GTFRfTUFYLCBGTFRfTUFYLCBBdXRvbWF0aW9u
UmF0ZTo6QVJhdGUpKQorICAgICwgbV9mb3J3YXJkWShBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4
dCwgImZvcndhcmRZIl9zLCAwLjAsIC1GTFRfTUFYLCBGTFRfTUFYLCBBdXRvbWF0aW9uUmF0ZTo6
QVJhdGUpKQorICAgICwgbV9mb3J3YXJkWihBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCwgImZv
cndhcmRaIl9zLCAtMS4wLCAtRkxUX01BWCwgRkxUX01BWCwgQXV0b21hdGlvblJhdGU6OkFSYXRl
KSkKKyAgICAsIG1fdXBYKEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0LCAidXBYIl9zLCAwLjAs
IC1GTFRfTUFYLCBGTFRfTUFYLCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQorICAgICwgbV91cFko
QXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJ1cFkiX3MsIDEuMCwgLUZMVF9NQVgsIEZMVF9N
QVgsIEF1dG9tYXRpb25SYXRlOjpBUmF0ZSkpCisgICAgLCBtX3VwWihBdWRpb1BhcmFtOjpjcmVh
dGUoY29udGV4dCwgInVwWiJfcywgMC4wLCAtRkxUX01BWCwgRkxUX01BWCwgQXV0b21hdGlvblJh
dGU6OkFSYXRlKSkKICAgICAsIG1fcG9zaXRpb25YVmFsdWVzKEF1ZGlvVXRpbGl0aWVzOjpyZW5k
ZXJRdWFudHVtU2l6ZSkKICAgICAsIG1fcG9zaXRpb25ZVmFsdWVzKEF1ZGlvVXRpbGl0aWVzOjpy
ZW5kZXJRdWFudHVtU2l6ZSkKICAgICAsIG1fcG9zaXRpb25aVmFsdWVzKEF1ZGlvVXRpbGl0aWVz
OjpyZW5kZXJRdWFudHVtU2l6ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9QYXJhbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvUGFyYW0uY3BwCmluZGV4IGJlMTJiYjVhYTAyN2U1M2ExMzQ2ODQ3ZTZjOTkzYzIzZjlm
MDE4OTguLjBkNDZhM2Y5MDRjYzRkMDkzODhiNGZiMDEyMzNjYjYwOGVjN2Y2ZDIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtLmNwcApAQCAtMTA5LDcg
KzEwOSw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEF1ZGlvUGFyYW06OnNldFZhbHVlRm9yQmluZGlu
Z3MoZmxvYXQgdmFsdWUpCiBFeGNlcHRpb25Pcjx2b2lkPiBBdWRpb1BhcmFtOjpzZXRBdXRvbWF0
aW9uUmF0ZShBdXRvbWF0aW9uUmF0ZSBhdXRvbWF0aW9uUmF0ZSkKIHsKICAgICBpZiAobV9hdXRv
bWF0aW9uUmF0ZU1vZGUgPT0gQXV0b21hdGlvblJhdGVNb2RlOjpGaXhlZCkKLSAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiYXV0b21hdGlvblJhdGUgY2Fubm90
IGJlIGNoYW5nZWQgZm9yIHRoaXMgbm9kZSIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7
IEludmFsaWRTdGF0ZUVycm9yLCAiYXV0b21hdGlvblJhdGUgY2Fubm90IGJlIGNoYW5nZWQgZm9y
IHRoaXMgbm9kZSJfcyB9OwogCiAgICAgbV9hdXRvbWF0aW9uUmF0ZSA9IGF1dG9tYXRpb25SYXRl
OwogICAgIHJldHVybiB7IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvUGFyYW1UaW1lbGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvUGFyYW1UaW1lbGluZS5jcHAKaW5kZXggZTU5YWE3ZTZkODQyZmFlYmZkYzM4
YTA1OWVjOTVjODE5M2U1NDZhNi4uY2MzNGRjMzRlNTA3MWQ3NGJkNTJjMWRiNjg4YmM5ZjIxNDhl
NTNkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1Bh
cmFtVGltZWxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9QYXJhbVRpbWVsaW5lLmNwcApAQCAtMTcyLDcgKzE3Miw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+
IEF1ZGlvUGFyYW1UaW1lbGluZTo6aW5zZXJ0RXZlbnQoUGFyYW1FdmVudCYmIGV2ZW50KQogICAg
ICAgICAgICAgLy8gT3RoZXJ3aXNlLCBtYWtlIHN1cmUgdGhpcyBldmVudCBkb2Vzbid0IG92ZXJs
YXAgYW55IGV4aXN0aW5nIFNldFZhbHVlQ3VydmUgZXZlbnQuCiAgICAgICAgICAgICBhdXRvIHBh
cmVudEV2ZW50RW5kVGltZSA9IHBhcmFtRXZlbnQudGltZSgpICsgcGFyYW1FdmVudC5kdXJhdGlv
bigpOwogICAgICAgICAgICAgaWYgKGV2ZW50LnRpbWUoKSA+PSBwYXJhbUV2ZW50LnRpbWUoKSAm
JiBldmVudC50aW1lKCkgPCBwYXJlbnRFdmVudEVuZFRpbWUpCi0gICAgICAgICAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yLCAiRXZlbnRzIGFyZSBvdmVybGFwcGlu
ZyIgfTsKKyAgICAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJy
b3IsICJFdmVudHMgYXJlIG92ZXJsYXBwaW5nIl9zIH07CiAgICAgICAgIH0KIAogICAgICAgICBp
ZiAocGFyYW1FdmVudC50aW1lKCkgPiBpbnNlcnRUaW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CaXF1YWRGaWx0ZXJOb2RlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQmlxdWFkRmlsdGVyTm9kZS5jcHAKaW5kZXggMTQwZWQwYTI2
ZTU3NTUxNzAxNGFjMzNhNjQzMTU1ODkwOWMwMjcyYy4uNWQ3MzZjZmNiMjU1OTE4Zjg5NzVkN2Iz
YjFmNzhmYjBiMDM0NTE2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9CaXF1YWRGaWx0ZXJOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0JpcXVhZEZpbHRlck5vZGUuY3BwCkBAIC03NCw3ICs3NCw3IEBAIEV4Y2VwdGlvbk9y
PHZvaWQ+IEJpcXVhZEZpbHRlck5vZGU6OmdldEZyZXF1ZW5jeVJlc3BvbnNlKGNvbnN0IFJlZjxG
bG9hdDMyQXJyYXk+CiB7CiAgICAgdW5zaWduZWQgbGVuZ3RoID0gZnJlcXVlbmN5SHotPmxlbmd0
aCgpOwogICAgIGlmIChtYWdSZXNwb25zZS0+bGVuZ3RoKCkgIT0gbGVuZ3RoIHx8IHBoYXNlUmVz
cG9uc2UtPmxlbmd0aCgpICE9IGxlbmd0aCkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElu
dmFsaWRBY2Nlc3NFcnJvciwgIlRoZSBhcnJheXMgcGFzc2VkIGFzIGFyZ3VtZW50cyBtdXN0IGhh
dmUgdGhlIHNhbWUgbGVuZ3RoIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxp
ZEFjY2Vzc0Vycm9yLCAiVGhlIGFycmF5cyBwYXNzZWQgYXMgYXJndW1lbnRzIG11c3QgaGF2ZSB0
aGUgc2FtZSBsZW5ndGgiX3MgfTsKIAogICAgIGlmIChsZW5ndGgpCiAgICAgICAgIGJpcXVhZFBy
b2Nlc3NvcigpLT5nZXRGcmVxdWVuY3lSZXNwb25zZShsZW5ndGgsIGZyZXF1ZW5jeUh6LT5kYXRh
KCksIG1hZ1Jlc3BvbnNlLT5kYXRhKCksIHBoYXNlUmVzcG9uc2UtPmRhdGEoKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0JpcXVhZFByb2Nlc3Nvci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0JpcXVhZFByb2Nlc3Nvci5jcHAKaW5k
ZXggOWRmNjI5ZDdlYmZkZDZmYjc0MTVmM2ViNzc5NzI2YmJhYmNhOGYxYy4uZjlhNTQzNGU4ODA1
ZDdkZTQ5MThhNmZiZDg3NTRkMWE1ZWQyNzIxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9CaXF1YWRQcm9jZXNzb3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vQmlxdWFkUHJvY2Vzc29yLmNwcApAQCAtMzUsMTAgKzM1LDEwIEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAKIEJpcXVhZFByb2Nlc3Nvcjo6QmlxdWFkUHJvY2Vz
c29yKEJhc2VBdWRpb0NvbnRleHQmIGNvbnRleHQsIGZsb2F0IHNhbXBsZVJhdGUsIHNpemVfdCBu
dW1iZXJPZkNoYW5uZWxzLCBib29sIGF1dG9Jbml0aWFsaXplKQogICAgIDogQXVkaW9EU1BLZXJu
ZWxQcm9jZXNzb3Ioc2FtcGxlUmF0ZSwgbnVtYmVyT2ZDaGFubmVscykKLSAgICAsIG1fcGFyYW1l
dGVyMShBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCwgImZyZXF1ZW5jeSIsIDM1MC4wLCAwLjAs
IDAuNSAqIHNhbXBsZVJhdGUsIEF1dG9tYXRpb25SYXRlOjpBUmF0ZSkpCi0gICAgLCBtX3BhcmFt
ZXRlcjIoQXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJRIiwgMSwgLUZMVF9NQVgsIEZMVF9N
QVgsIEF1dG9tYXRpb25SYXRlOjpBUmF0ZSkpCi0gICAgLCBtX3BhcmFtZXRlcjMoQXVkaW9QYXJh
bTo6Y3JlYXRlKGNvbnRleHQsICJnYWluIiwgMC4wLCAtRkxUX01BWCwgNDAgKiBzdGQ6OmxvZzEw
KHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+OjptYXgoKSksIEF1dG9tYXRpb25SYXRlOjpBUmF0
ZSkpCi0gICAgLCBtX3BhcmFtZXRlcjQoQXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJkZXR1
bmUiLCAwLjAsIC0xNTM2MDAsIDE1MzYwMCwgQXV0b21hdGlvblJhdGU6OkFSYXRlKSkKKyAgICAs
IG1fcGFyYW1ldGVyMShBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCwgImZyZXF1ZW5jeSJfcywg
MzUwLjAsIDAuMCwgMC41ICogc2FtcGxlUmF0ZSwgQXV0b21hdGlvblJhdGU6OkFSYXRlKSkKKyAg
ICAsIG1fcGFyYW1ldGVyMihBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCwgIlEiX3MsIDEsIC1G
TFRfTUFYLCBGTFRfTUFYLCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQorICAgICwgbV9wYXJhbWV0
ZXIzKEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0LCAiZ2FpbiJfcywgMC4wLCAtRkxUX01BWCwg
NDAgKiBzdGQ6OmxvZzEwKHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+OjptYXgoKSksIEF1dG9t
YXRpb25SYXRlOjpBUmF0ZSkpCisgICAgLCBtX3BhcmFtZXRlcjQoQXVkaW9QYXJhbTo6Y3JlYXRl
KGNvbnRleHQsICJkZXR1bmUiX3MsIDAuMCwgLTE1MzYwMCwgMTUzNjAwLCBBdXRvbWF0aW9uUmF0
ZTo6QVJhdGUpKQogewogICAgIGlmIChhdXRvSW5pdGlhbGl6ZSkKICAgICAgICAgaW5pdGlhbGl6
ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9EZWxheVBy
b2Nlc3Nvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlbGF5UHJvY2Vz
c29yLmNwcAppbmRleCBhZWU0MGU5NGU2NWRlZTRiZjg0NDI1MTI5NGUzMTQzNzhhZDA0MmE1Li4x
ZjkwY2JjOWYxOTcwN2E5YmMxN2ExMTNiY2M0YjFkNThmOTQwNTA5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlbGF5UHJvY2Vzc29yLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlbGF5UHJvY2Vzc29yLmNwcApAQCAtMzQsNyAr
MzQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIERlbGF5UHJvY2Vzc29yOjpEZWxheVByb2Nl
c3NvcihCYXNlQXVkaW9Db250ZXh0JiBjb250ZXh0LCBmbG9hdCBzYW1wbGVSYXRlLCB1bnNpZ25l
ZCBudW1iZXJPZkNoYW5uZWxzLCBkb3VibGUgbWF4RGVsYXlUaW1lKQogICAgIDogQXVkaW9EU1BL
ZXJuZWxQcm9jZXNzb3Ioc2FtcGxlUmF0ZSwgbnVtYmVyT2ZDaGFubmVscykKLSAgICAsIG1fZGVs
YXlUaW1lKEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0LCAiZGVsYXlUaW1lIiwgMC4wLCAwLjAs
IG1heERlbGF5VGltZSwgQXV0b21hdGlvblJhdGU6OkFSYXRlKSkKKyAgICAsIG1fZGVsYXlUaW1l
KEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0LCAiZGVsYXlUaW1lIl9zLCAwLjAsIDAuMCwgbWF4
RGVsYXlUaW1lLCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQogewogCiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1dhdmVTaGFwZXJOb2RlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vV2F2ZVNoYXBlck5vZGUuY3BwCmluZGV4IGZjMTUy
ODI3YjNhMGNjMjdhOGQ0M2I1NDU0NGZmNGJjNWJjNDljOWIuLjY0MjljMzA1MTYxMmFmZWU4MmIz
ZmNiZDU4YjJmNjA3NDBmZjk0ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vV2F2ZVNoYXBlck5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vV2F2ZVNoYXBlck5vZGUuY3BwCkBAIC00Myw3ICs0Myw3IEBAIEV4Y2VwdGlvbk9y
PFJlZjxXYXZlU2hhcGVyTm9kZT4+IFdhdmVTaGFwZXJOb2RlOjpjcmVhdGUoQmFzZUF1ZGlvQ29u
dGV4dCYgY29udGV4CiAgICAgaWYgKG9wdGlvbnMuY3VydmUpIHsKICAgICAgICAgY3VydmUgPSBG
bG9hdDMyQXJyYXk6OnRyeUNyZWF0ZShvcHRpb25zLmN1cnZlLT5kYXRhKCksIG9wdGlvbnMuY3Vy
dmUtPnNpemUoKSk7CiAgICAgICAgIGlmICghY3VydmUpCi0gICAgICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJJbnZhbGlkIGN1cnZlIHBhcmFtZXRlciIgfTsK
KyAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkludmFs
aWQgY3VydmUgcGFyYW1ldGVyIl9zIH07CiAgICAgfQogCiAgICAgYXV0byBub2RlID0gYWRvcHRS
ZWYoKm5ldyBXYXZlU2hhcGVyTm9kZShjb250ZXh0KSk7CkBAIC03Niw3ICs3Niw3IEBAIEV4Y2Vw
dGlvbk9yPHZvaWQ+IFdhdmVTaGFwZXJOb2RlOjpzZXRDdXJ2ZUZvckJpbmRpbmdzKFJlZlB0cjxG
bG9hdDMyQXJyYXk+JiYgY3VyCiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsgCiAgICAgREVC
VUdfTE9HKExPR0lERU5USUZJRVIpOwogICAgIGlmIChjdXJ2ZSAmJiBjdXJ2ZS0+bGVuZ3RoKCkg
PCAyKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJMZW5n
dGggb2YgY3VydmUgYXJyYXkgY2Fubm90IGJlIGxlc3MgdGhhbiAyIiB9OworICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJMZW5ndGggb2YgY3VydmUgYXJyYXkg
Y2Fubm90IGJlIGxlc3MgdGhhbiAyIl9zIH07CiAKICAgICBpZiAoY3VydmUpIHsKICAgICAgICAg
Ly8gVGhlIHNwZWNpZmljYXRpb24gc3RhdGVzIHRoYXQgd2Ugc2hvdWxkIG1haW50YWluIGFuIGlu
dGVybmFsIGNvcHkgb2YgdGhlIGN1cnZlIHNvIHRoYXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRvckNvb3JkaW5hdG9yLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRvckNvb3JkaW5hdG9yLmNwcApp
bmRleCBiYzViZWRmNzM0MjlhMGI1MmVkYzBlZDFkNGU3NDVhOTM5OGZlZTk1Li5hNzdjZGFkNGQ1
Y2RiYjU0MzE0NjhkNTVkYTNlYzM5NjRjMWM2NzNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JDb29yZGluYXRvci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuY3Bw
CkBAIC01OCw3ICs1OCw3IEBAIHN0YXRpYyBib29sIG5lZWRzQXBwSWRRdWlya3MoY29uc3QgU3Ry
aW5nJiBob3N0LCBjb25zdCBTdHJpbmcmIGFwcElkKQogICAgIC8vIGV4aXN0aW5nIGRldmljZSBy
ZWdpc3RyYXRpb25zIHRoYXQgYXV0aGVudGljYXRlICdnb29nbGUuY29tJyBhZ2FpbnN0ICdnc3Rh
dGljLmNvbScuIEZpcmVmb3ggYW5kIG90aGVyIGJyb3dzZXJzCiAgICAgLy8gaGF2ZSBhZ3JlZWQg
dG8gZ3JhbnQgYW4gZXhjZXB0aW9uIHRvIHRoZSBBcHBJZCBydWxlcyBmb3IgYSBsaW1pdGVkIHRp
bWUgcGVyaW9kICg1IHllYXJzIGZyb20gSmFudWFyeSwgMjAxOCkgdG8KICAgICAvLyBhbGxvdyBl
eGlzdGluZyBHb29nbGUgdXNlcnMgdG8gc2VhbWxlc3NseSB0cmFuc2l0aW9uIHRvIHByb3BlciBX
ZWJBdXRoTiBiZWhhdmlvci4KLSAgICBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uo
aG9zdCwgImdvb2dsZS5jb20iKSB8fCBob3N0LmVuZHNXaXRoSWdub3JpbmdBU0NJSUNhc2UoIi5n
b29nbGUuY29tIikpCisgICAgaWYgKGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGhvc3Qs
ICJnb29nbGUuY29tIikgfHwgaG9zdC5lbmRzV2l0aElnbm9yaW5nQVNDSUlDYXNlKCIuZ29vZ2xl
LmNvbSJfcykpCiAgICAgICAgIHJldHVybiAoYXBwSWQgPT0gImh0dHBzOi8vd3d3LmdzdGF0aWMu
Y29tL3NlY3VyaXR5a2V5L29yaWdpbnMuanNvbiJfcykgfHwgKGFwcElkID09ICJodHRwczovL3d3
dy5nc3RhdGljLmNvbS9zZWN1cml0eWtleS9hL2dvb2dsZS5jb20vb3JpZ2lucy5qc29uIl9zKTsK
ICAgICByZXR1cm4gZmFsc2U7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1dGhuL1dlYkF1dGhlbnRpY2F0aW9uVXRpbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdXRobi9XZWJBdXRoZW50aWNhdGlvblV0aWxzLmNwcAppbmRleCBjMWZiZjA1NmNj
NmFiNWUxODI5ODgyMjQ2MzQ0MWI0YTg1ZWFiZDRjLi4zMzJlMmJlNzk1YTAxZjFlMDQ2NjJkYzQx
MTNiYWVhYzQ0MDcxZTc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
dGhuL1dlYkF1dGhlbnRpY2F0aW9uVXRpbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXV0aG4vV2ViQXV0aGVudGljYXRpb25VdGlscy5jcHAKQEAgLTEzOCw3ICsxMzgsNyBA
QCBjYm9yOjpDQk9SVmFsdWU6Ok1hcFZhbHVlIGJ1aWxkQXR0ZXN0YXRpb25NYXAoVmVjdG9yPHVp
bnQ4X3Q+JiYgYXV0aERhdGEsIFN0cmluZwogICAgICAgICBjb25zdCBzaXplX3QgYWFndWlkT2Zm
c2V0ID0gcnBJZEhhc2hMZW5ndGggKyBmbGFnc0xlbmd0aCArIHNpZ25Db3VudGVyTGVuZ3RoOwog
ICAgICAgICBpZiAoYXV0aERhdGEuc2l6ZSgpID49IGFhZ3VpZE9mZnNldCArIGFhZ3VpZExlbmd0
aCkKICAgICAgICAgICAgIG1lbXNldChhdXRoRGF0YS5kYXRhKCkgKyBhYWd1aWRPZmZzZXQsIDAs
IGFhZ3VpZExlbmd0aCk7Ci0gICAgICAgIGZvcm1hdCA9IG5vbmVBdHRlc3RhdGlvblZhbHVlOwor
ICAgICAgICBmb3JtYXQgPSBTdHJpbmcgeyBub25lQXR0ZXN0YXRpb25WYWx1ZSB9OwogICAgICAg
ICBzdGF0ZW1lbnRNYXAuY2xlYXIoKTsKICAgICB9CiAgICAgYXR0ZXN0YXRpb25PYmplY3RNYXBb
Y2Jvcjo6Q0JPUlZhbHVlKCJhdXRoRGF0YSIpXSA9IGNib3I6OkNCT1JWYWx1ZShXVEZNb3ZlKGF1
dGhEYXRhKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2Zp
ZG8vRGV2aWNlUmVzcG9uc2VDb252ZXJ0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdXRobi9maWRvL0RldmljZVJlc3BvbnNlQ29udmVydGVyLmNwcAppbmRleCBmMjFjNWVlN2Ey
NWY1ZTkyNzU0NDMxZDM1NGE4N2E4ZDIxYzU4M2M4Li41ZjUwNTI1Mjg0ZTllMWU0ZmNhYzJjMWRm
ZTgxZWU2MTFiNDU2ZjFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
dGhuL2ZpZG8vRGV2aWNlUmVzcG9uc2VDb252ZXJ0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXV0aG4vZmlkby9EZXZpY2VSZXNwb25zZUNvbnZlcnRlci5jcHAKQEAgLTEy
Niw3ICsxMjYsNyBAQCBSZWZQdHI8QXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2U+IHJl
YWRDVEFQTWFrZUNyZWRlbnRpYWxSZXNwb25zZShjb25zdCBWZQogICAgICAgICAvLyBUaGUgcmVh
c29uIHdoeSB3ZSBjYW4ndCBkaXJlY3RseSBwYXNzIGF1dGhlbnRpY2F0b3JEYXRhL2Zvcm1hdC9h
dHRTdG10IHRvIGJ1aWxkQXR0ZXN0YXRpb25PYmplY3QKICAgICAgICAgLy8gaXMgdGhhdCB0aGV5
IGFyZSBDQk9SVmFsdWUgaW5zdGVhZCBvZiB0aGUgcmF3IHR5cGUuCiAgICAgICAgIC8vIEFsc28s
IGZvcm1hdCBhbmQgYXR0U3RtdCBhcmUgb21pdHRlZCBhcyB0aGV5IGFyZSBub3QgdXNlZnVsIGlu
IG5vbmUgYXR0ZXN0YXRpb24uCi0gICAgICAgIGF0dGVzdGF0aW9uT2JqZWN0ID0gYnVpbGRBdHRl
c3RhdGlvbk9iamVjdChWZWN0b3I8dWludDhfdD4oYXV0aGVudGljYXRvckRhdGEuZ2V0Qnl0ZVN0
cmluZygpKSwgIiIsIHsgfSwgYXR0ZXN0YXRpb24pOworICAgICAgICBhdHRlc3RhdGlvbk9iamVj
dCA9IGJ1aWxkQXR0ZXN0YXRpb25PYmplY3QoVmVjdG9yPHVpbnQ4X3Q+KGF1dGhlbnRpY2F0b3JE
YXRhLmdldEJ5dGVTdHJpbmcoKSksICIiX3MsIHsgfSwgYXR0ZXN0YXRpb24pOwogICAgIH0gZWxz
ZSB7CiAgICAgICAgIENCT1I6Ok1hcFZhbHVlIGF0dGVzdGF0aW9uT2JqZWN0TWFwOwogICAgICAg
ICBhdHRlc3RhdGlvbk9iamVjdE1hcFtDQk9SKCJhdXRoRGF0YSIpXSA9IFdURk1vdmUoYXV0aGVu
dGljYXRvckRhdGEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRo
bi9maWRvL1Bpbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vUGlu
LmNwcAppbmRleCA5ZmE2NzNmMTgyY2NjYjA0NjIxNzMzYWUzOGM1MjM2ZDM2MmI1Yzg4Li5iNDRm
OTBiMDE0MzQyN2QxNTI2N2Q3YzlmNjdmMGNmYjAyYzNmYjNkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vUGluLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vUGluLmNwcApAQCAtMTcxLDcgKzE3MSw3IEBAIHN0ZDo6
b3B0aW9uYWw8S2V5QWdyZWVtZW50UmVzcG9uc2U+IEtleUFncmVlbWVudFJlc3BvbnNlOjpwYXJz
ZUZyb21DT1NFKGNvbnN0IENCCiAKICAgICBjb25zdCBhdXRvJiB4ID0geEl0LT5zZWNvbmQuZ2V0
Qnl0ZVN0cmluZygpOwogICAgIGNvbnN0IGF1dG8mIHkgPSB5SXQtPnNlY29uZC5nZXRCeXRlU3Ry
aW5nKCk7Ci0gICAgYXV0byBwZWVyS2V5ID0gQ3J5cHRvS2V5RUM6OmltcG9ydFJhdyhDcnlwdG9B
bGdvcml0aG1JZGVudGlmaWVyOjpFQ0RILCAiUC0yNTYiLCBlbmNvZGVSYXdQdWJsaWNLZXkoeCwg
eSksIHRydWUsIENyeXB0b0tleVVzYWdlRGVyaXZlQml0cyk7CisgICAgYXV0byBwZWVyS2V5ID0g
Q3J5cHRvS2V5RUM6OmltcG9ydFJhdyhDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpFQ0RILCAi
UC0yNTYiX3MsIGVuY29kZVJhd1B1YmxpY0tleSh4LCB5KSwgdHJ1ZSwgQ3J5cHRvS2V5VXNhZ2VE
ZXJpdmVCaXRzKTsKICAgICBpZiAoIXBlZXJLZXkpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CiAKQEAgLTI0Nyw3ICsyNDcsNyBAQCBzdGQ6Om9wdGlvbmFsPFRva2VuUmVxdWVzdD4gVG9r
ZW5SZXF1ZXN0Ojp0cnlDcmVhdGUoY29uc3QgQ1N0cmluZyYgcGluLCBjb25zdCBDcgogICAgIC8v
IFRoZSBmb2xsb3dpbmcgaW1wbGVtZW50cyBTZWN0aW9uIDUuNS40IEdldHRpbmcgc2hhcmVkU2Vj
cmV0IGZyb20gQXV0aGVudGljYXRvci4KICAgICAvLyBodHRwczovL2ZpZG9hbGxpYW5jZS5vcmcv
c3BlY3MvZmlkby12Mi4wLXBzLTIwMTkwMTMwL2ZpZG8tY2xpZW50LXRvLWF1dGhlbnRpY2F0b3It
cHJvdG9jb2wtdjIuMC1wcy0yMDE5MDEzMC5odG1sI2dldHRpbmdTaGFyZWRTZWNyZXQKICAgICAv
LyAxLiBHZW5lcmF0ZSBhIFAyNTYga2V5IHBhaXIuCi0gICAgYXV0byBrZXlQYWlyUmVzdWx0ID0g
Q3J5cHRvS2V5RUM6OmdlbmVyYXRlUGFpcihDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpFQ0RI
LCAiUC0yNTYiLCB0cnVlLCBDcnlwdG9LZXlVc2FnZURlcml2ZUJpdHMpOworICAgIGF1dG8ga2V5
UGFpclJlc3VsdCA9IENyeXB0b0tleUVDOjpnZW5lcmF0ZVBhaXIoQ3J5cHRvQWxnb3JpdGhtSWRl
bnRpZmllcjo6RUNESCwgIlAtMjU2Il9zLCB0cnVlLCBDcnlwdG9LZXlVc2FnZURlcml2ZUJpdHMp
OwogICAgIEFTU0VSVCgha2V5UGFpclJlc3VsdC5oYXNFeGNlcHRpb24oKSk7CiAgICAgYXV0byBr
ZXlQYWlyID0ga2V5UGFpclJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL1UyZlJlc3BvbnNlQ29udmVy
dGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9VMmZSZXNwb25z
ZUNvbnZlcnRlci5jcHAKaW5kZXggM2YzNjZhYTI3MDY4NDk3NDVhY2EyODE3OWI1OTk2ZTY2NmVl
MjZlZC4uYTRmZGUxNWZmYmZkNTU1NzdiMjI5ZDg2NDljNjc2NDhjZTdlYjk2ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL1UyZlJlc3BvbnNlQ29udmVy
dGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vVTJmUmVz
cG9uc2VDb252ZXJ0ZXIuY3BwCkBAIC0xNTgsNyArMTU4LDcgQEAgUmVmUHRyPEF1dGhlbnRpY2F0
b3JBdHRlc3RhdGlvblJlc3BvbnNlPiByZWFkVTJmUmVnaXN0ZXJSZXNwb25zZShjb25zdCBTdHJp
bmcmIHIKICAgICBpZiAoZmlkb0F0dGVzdGF0aW9uU3RhdGVtZW50LmVtcHR5KCkpCiAgICAgICAg
IHJldHVybiBudWxscHRyOwogCi0gICAgYXV0byBhdHRlc3RhdGlvbk9iamVjdCA9IGJ1aWxkQXR0
ZXN0YXRpb25PYmplY3QoV1RGTW92ZShhdXRoRGF0YSksICJmaWRvLXUyZiIsIFdURk1vdmUoZmlk
b0F0dGVzdGF0aW9uU3RhdGVtZW50KSwgYXR0ZXN0YXRpb24pOworICAgIGF1dG8gYXR0ZXN0YXRp
b25PYmplY3QgPSBidWlsZEF0dGVzdGF0aW9uT2JqZWN0KFdURk1vdmUoYXV0aERhdGEpLCAiZmlk
by11MmYiX3MsIFdURk1vdmUoZmlkb0F0dGVzdGF0aW9uU3RhdGVtZW50KSwgYXR0ZXN0YXRpb24p
OwogCiAgICAgcmV0dXJuIEF1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlOjpjcmVhdGUo
Y3JlZGVudGlhbElkLCBhdHRlc3RhdGlvbk9iamVjdCwgYXR0YWNobWVudCk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0NoYW5nZVZlcnNpb25XcmFw
cGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvQ2hhbmdlVmVyc2lv
bldyYXBwZXIuY3BwCmluZGV4IDk0ZWY1MDk1NThiNmMyNjU5ZmRmYTNkNjg5YjRiMGQyODM3M2Q4
YTguLjM1YzBlMTZlM2UzNTEzMjMzYzIyZDhmM2FhNTY0NTIwM2Q5ODQ3NDcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvQ2hhbmdlVmVyc2lvbldyYXBwZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvQ2hhbmdlVmVyc2lv
bldyYXBwZXIuY3BwCkBAIC01Myw3ICs1Myw3IEBAIGJvb2wgQ2hhbmdlVmVyc2lvbldyYXBwZXI6
OnBlcmZvcm1QcmVmbGlnaHQoU1FMVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uKQogICAgIH0KIAog
ICAgIGlmIChhY3R1YWxWZXJzaW9uICE9IG1fb2xkVmVyc2lvbikgewotICAgICAgICBtX3NxbEVy
cm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6VkVSU0lPTl9FUlIsICJjdXJyZW50IHZl
cnNpb24gb2YgdGhlIGRhdGFiYXNlIGFuZCBgb2xkVmVyc2lvbmAgYXJndW1lbnQgZG8gbm90IG1h
dGNoIik7CisgICAgICAgIG1fc3FsRXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpW
RVJTSU9OX0VSUiwgImN1cnJlbnQgdmVyc2lvbiBvZiB0aGUgZGF0YWJhc2UgYW5kIGBvbGRWZXJz
aW9uYCBhcmd1bWVudCBkbyBub3QgbWF0Y2giX3MpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RP
TVdpbmRvd1dlYkRhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJh
c2UvRE9NV2luZG93V2ViRGF0YWJhc2UuY3BwCmluZGV4IDhhYzJhZDZhZjVlNGEzYmZmODRjMjY3
NmMwZTI0ZTZiYmMyZjNiNWMuLjU2YWMwZTQyMmRkNGRmOTM2ZTNjY2IwMGNlNWY0NWMzZDY1NTQx
NWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRE9NV2lu
ZG93V2ViRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJh
c2UvRE9NV2luZG93V2ViRGF0YWJhc2UuY3BwCkBAIC00NSw3ICs0NSw3IEBAIEV4Y2VwdGlvbk9y
PFJlZlB0cjxEYXRhYmFzZT4+IERPTVdpbmRvd1dlYkRhdGFiYXNlOjpvcGVuRGF0YWJhc2UoRE9N
V2luZG93JiB3aW5kCiAgICAgYXV0byogZG9jdW1lbnQgPSB3aW5kb3cuZG9jdW1lbnQoKTsKICAg
ICBpZiAoIWRvY3VtZW50KQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgU2VjdXJpdHlFcnJv
ciB9OwotICAgIGRvY3VtZW50LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpTdG9y
YWdlLCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsICJXZWIgU1FMIGlzIGRlcHJlY2F0ZWQuIFBsZWFz
ZSB1c2UgSW5kZXhlZERCIGluc3RlYWQuIik7CisgICAgZG9jdW1lbnQtPmFkZENvbnNvbGVNZXNz
YWdlKE1lc3NhZ2VTb3VyY2U6OlN0b3JhZ2UsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgIldlYiBT
UUwgaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSBJbmRleGVkREIgaW5zdGVhZC4iX3MpOwogCiAg
ICAgYXV0byYgc2VjdXJpdHlPcmlnaW4gPSBkb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKTsKICAg
ICBpZiAoIXNlY3VyaXR5T3JpZ2luLmNhbkFjY2Vzc0RhdGFiYXNlKCZkb2N1bWVudC0+dG9wT3Jp
Z2luKCkpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9E
YXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNl
LmNwcAppbmRleCA3Y2ZiMWM0MTBlNjdkMGIwN2Y3ZTM0OTQ4MmRjMGVlOWY2YjExNmRmLi5jZDBj
NDE0ZmIzMTAwMjQxM2VhMmJmZGQwOTgzMDVkNTFiOWYxZmQyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmNwcApAQCAtMTk4LDcgKzE5OCw3IEBA
IERhdGFiYXNlOjpEYXRhYmFzZShEYXRhYmFzZUNvbnRleHQmIGNvbnRleHQsIGNvbnN0IFN0cmlu
ZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBlCiAgICAgLCBtX2Rpc3BsYXlOYW1lKGRpc3BsYXlOYW1l
Lmlzb2xhdGVkQ29weSgpKQogICAgICwgbV9lc3RpbWF0ZWRTaXplKGVzdGltYXRlZFNpemUpCiAg
ICAgLCBtX2ZpbGVuYW1lKERhdGFiYXNlTWFuYWdlcjo6c2luZ2xldG9uKCkuZnVsbFBhdGhGb3JE
YXRhYmFzZShtX2RvY3VtZW50LT5zZWN1cml0eU9yaWdpbigpLCBtX25hbWUpKQotICAgICwgbV9k
YXRhYmFzZUF1dGhvcml6ZXIoRGF0YWJhc2VBdXRob3JpemVyOjpjcmVhdGUodW5xdWFsaWZpZWRJ
bmZvVGFibGVOYW1lKSkKKyAgICAsIG1fZGF0YWJhc2VBdXRob3JpemVyKERhdGFiYXNlQXV0aG9y
aXplcjo6Y3JlYXRlKFN0cmluZyB7IHVucXVhbGlmaWVkSW5mb1RhYmxlTmFtZSB9KSkKIHsKICAg
ICB7CiAgICAgICAgIExvY2tlciBsb2NrZXIgeyBndWlkTG9jayB9OwpAQCAtNjg3LDcgKzY4Nyw3
IEBAIHZvaWQgRGF0YWJhc2U6OnJ1blRyYW5zYWN0aW9uKFJlZlB0cjxTUUxUcmFuc2FjdGlvbkNh
bGxiYWNrPiYmIGNhbGxiYWNrLCBSZWZQdHI8CiAgICAgaWYgKCFtX2lzVHJhbnNhY3Rpb25RdWV1
ZUVuYWJsZWQpIHsKICAgICAgICAgaWYgKGVycm9yQ2FsbGJhY2spIHsKICAgICAgICAgICAgIG1f
ZG9jdW1lbnQtPmV2ZW50TG9vcCgpLnF1ZXVlVGFzayhUYXNrU291cmNlOjpOZXR3b3JraW5nLCBb
ZXJyb3JDYWxsYmFjayA9IFJlZiB7ICplcnJvckNhbGxiYWNrIH1dKCkgewotICAgICAgICAgICAg
ICAgIGVycm9yQ2FsbGJhY2stPmhhbmRsZUV2ZW50KFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6
OlVOS05PV05fRVJSLCAiZGF0YWJhc2UgaGFzIGJlZW4gY2xvc2VkIikpOworICAgICAgICAgICAg
ICAgIGVycm9yQ2FsbGJhY2stPmhhbmRsZUV2ZW50KFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6
OlVOS05PV05fRVJSLCAiZGF0YWJhc2UgaGFzIGJlZW4gY2xvc2VkIl9zKSk7CiAgICAgICAgICAg
ICB9KTsKICAgICAgICAgfQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlQXV0aG9yaXplci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlQXV0aG9yaXplci5jcHAKaW5kZXgg
ZTJkYzcwNmY1ZDk2NWQyZDdhNWNiYTg3MjE2NmNmNTNhOTgwOGExZi4uZGNmOWViOTUyZGRkMDNi
NGIwZDdhZDg2YTZjY2Q1ZmI0M2UzZGNlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZUF1dGhvcml6ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VBdXRob3JpemVyLmNwcApAQCAtNjIsNjQg
KzYyLDY0IEBAIHZvaWQgRGF0YWJhc2VBdXRob3JpemVyOjphZGRBbGxvd2VkRnVuY3Rpb25zKCkK
IHsKICAgICAvLyBTUUxpdGUgZnVuY3Rpb25zIHVzZWQgdG8gaGVscCBpbXBsZW1lbnQgc29tZSBv
cGVyYXRpb25zCiAgICAgLy8gQUxURVIgVEFCTEUgaGVscGVycwotICAgIG1fYWxsb3dlZEZ1bmN0
aW9ucy5hZGQoInNxbGl0ZV9yZW5hbWVfdGFibGUiKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMu
YWRkKCJzcWxpdGVfcmVuYW1lX3RyaWdnZXIiKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRk
KCJzcWxpdGVfcmVuYW1lX3RhYmxlIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJz
cWxpdGVfcmVuYW1lX3RyaWdnZXIiX3MpOwogICAgIC8vIEdMT0IgaGVscGVycwotICAgIG1fYWxs
b3dlZEZ1bmN0aW9ucy5hZGQoImdsb2IiKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJn
bG9iIl9zKTsKIAogICAgIC8vIFNRTGl0ZSBjb3JlIGZ1bmN0aW9ucwotICAgIG1fYWxsb3dlZEZ1
bmN0aW9ucy5hZGQoImFicyIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoImNoYW5nZXMi
KTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJjb2FsZXNjZSIpOwotICAgIG1fYWxsb3dl
ZEZ1bmN0aW9ucy5hZGQoImdsb2IiKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJpZm51
bGwiKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJoZXgiKTsKLSAgICBtX2FsbG93ZWRG
dW5jdGlvbnMuYWRkKCJsYXN0X2luc2VydF9yb3dpZCIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9u
cy5hZGQoImxlbmd0aCIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoImxpa2UiKTsKLSAg
ICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJsb3dlciIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9u
cy5hZGQoImx0cmltIik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgibWF4Iik7Ci0gICAg
bV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgibWluIik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFk
ZCgibnVsbGlmIik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgicXVvdGUiKTsKLSAgICBt
X2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJyZXBsYWNlIik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25z
LmFkZCgicm91bmQiKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJydHJpbSIpOwotICAg
IG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInNvdW5kZXgiKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlv
bnMuYWRkKCJzcWxpdGVfc291cmNlX2lkIik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgi
c3FsaXRlX3ZlcnNpb24iKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJzdWJzdHIiKTsK
LSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJ0b3RhbF9jaGFuZ2VzIik7Ci0gICAgbV9hbGxv
d2VkRnVuY3Rpb25zLmFkZCgidHJpbSIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInR5
cGVvZiIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInVwcGVyIik7Ci0gICAgbV9hbGxv
d2VkRnVuY3Rpb25zLmFkZCgiemVyb2Jsb2IiKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRk
KCJhYnMiX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoImNoYW5nZXMiX3MpOworICAg
IG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoImNvYWxlc2NlIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5j
dGlvbnMuYWRkKCJnbG9iIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJpZm51bGwi
X3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoImhleCJfcyk7CisgICAgbV9hbGxvd2Vk
RnVuY3Rpb25zLmFkZCgibGFzdF9pbnNlcnRfcm93aWQiX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0
aW9ucy5hZGQoImxlbmd0aCJfcyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgibGlrZSJf
cyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgibG93ZXIiX3MpOworICAgIG1fYWxsb3dl
ZEZ1bmN0aW9ucy5hZGQoImx0cmltIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJt
YXgiX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoIm1pbiJfcyk7CisgICAgbV9hbGxv
d2VkRnVuY3Rpb25zLmFkZCgibnVsbGlmIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRk
KCJxdW90ZSJfcyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgicmVwbGFjZSJfcyk7Cisg
ICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgicm91bmQiX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0
aW9ucy5hZGQoInJ0cmltIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJzb3VuZGV4
Il9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJzcWxpdGVfc291cmNlX2lkIl9zKTsK
KyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJzcWxpdGVfdmVyc2lvbiJfcyk7CisgICAgbV9h
bGxvd2VkRnVuY3Rpb25zLmFkZCgic3Vic3RyIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMu
YWRkKCJ0b3RhbF9jaGFuZ2VzIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJ0cmlt
Il9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJ0eXBlb2YiX3MpOworICAgIG1fYWxs
b3dlZEZ1bmN0aW9ucy5hZGQoInVwcGVyIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRk
KCJ6ZXJvYmxvYiJfcyk7CiAKICAgICAvLyBTUUxpdGUgZGF0ZSBhbmQgdGltZSBmdW5jdGlvbnMK
LSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJkYXRlIik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rp
b25zLmFkZCgidGltZSIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoImRhdGV0aW1lIik7
Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgianVsaWFuZGF5Iik7Ci0gICAgbV9hbGxvd2Vk
RnVuY3Rpb25zLmFkZCgic3RyZnRpbWUiKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJk
YXRlIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJ0aW1lIl9zKTsKKyAgICBtX2Fs
bG93ZWRGdW5jdGlvbnMuYWRkKCJkYXRldGltZSJfcyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25z
LmFkZCgianVsaWFuZGF5Il9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJzdHJmdGlt
ZSJfcyk7CiAKICAgICAvLyBTUUxpdGUgYWdncmVnYXRlIGZ1bmN0aW9ucwogICAgIC8vIG1heCgp
IGFuZCBtaW4oKSBhcmUgYWxyZWFkeSBpbiB0aGUgbGlzdAotICAgIG1fYWxsb3dlZEZ1bmN0aW9u
cy5hZGQoImF2ZyIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoImNvdW50Iik7Ci0gICAg
bV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgiZ3JvdXBfY29uY2F0Iik7Ci0gICAgbV9hbGxvd2VkRnVu
Y3Rpb25zLmFkZCgic3VtIik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgidG90YWwiKTsK
KyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJhdmciX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0
aW9ucy5hZGQoImNvdW50Il9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJncm91cF9j
b25jYXQiX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInN1bSJfcyk7CisgICAgbV9h
bGxvd2VkRnVuY3Rpb25zLmFkZCgidG90YWwiX3MpOwogCiAgICAgLy8gU1FMaXRlIEZUUyBmdW5j
dGlvbnMKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJtYXRjaCIpOwotICAgIG1fYWxsb3dl
ZEZ1bmN0aW9ucy5hZGQoInNuaXBwZXQiKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJv
ZmZzZXRzIik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgib3B0aW1pemUiKTsKKyAgICBt
X2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJtYXRjaCJfcyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25z
LmFkZCgic25pcHBldCJfcyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgib2Zmc2V0cyJf
cyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgib3B0aW1pemUiX3MpOwogCiAgICAgLy8g
U1FMaXRlIElDVSBmdW5jdGlvbnMKICAgICAvLyBsaWtlKCksIGxvd2VyKCkgYW5kIHVwcGVyKCkg
YXJlIGFscmVhZHkgaW4gdGhlIGxpc3QKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJyZWdl
eHAiKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJyZWdleHAiX3MpOwogfQogCiBpbnQg
RGF0YWJhc2VBdXRob3JpemVyOjpjcmVhdGVUYWJsZShjb25zdCBTdHJpbmcmIHRhYmxlTmFtZSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VU
cmFja2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VU
cmFja2VyLmNwcAppbmRleCA5ZWIzOTFjNmQwYmQ2ZDQ4NjA1MTBlZGFiNzI4OTMzOTk1MDZiYzcy
Li5hNGYwYzc0NDUyMzcxYTRkYmQ4ZGYwODYwNjllY2QxMGFiYTMyMjlmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuY3Bw
CkBAIC05MSw3ICs5MSw3IEBAIERhdGFiYXNlVHJhY2tlcjo6RGF0YWJhc2VUcmFja2VyKGNvbnN0
IFN0cmluZyYgZGF0YWJhc2VQYXRoKQogCiBTdHJpbmcgRGF0YWJhc2VUcmFja2VyOjp0cmFja2Vy
RGF0YWJhc2VQYXRoKCkgY29uc3QKIHsKLSAgICByZXR1cm4gU1FMaXRlRmlsZVN5c3RlbTo6YXBw
ZW5kRGF0YWJhc2VGaWxlTmFtZVRvUGF0aChtX2RhdGFiYXNlRGlyZWN0b3J5UGF0aC5pc29sYXRl
ZENvcHkoKSwgIkRhdGFiYXNlcy5kYiIpOworICAgIHJldHVybiBTUUxpdGVGaWxlU3lzdGVtOjph
cHBlbmREYXRhYmFzZUZpbGVOYW1lVG9QYXRoKG1fZGF0YWJhc2VEaXJlY3RvcnlQYXRoLmlzb2xh
dGVkQ29weSgpLCAiRGF0YWJhc2VzLmRiIl9zKTsKIH0KIAogdm9pZCBEYXRhYmFzZVRyYWNrZXI6
Om9wZW5UcmFja2VyRGF0YWJhc2UoVHJhY2tlckNyZWF0aW9uQWN0aW9uIGNyZWF0ZUFjdGlvbikK
QEAgLTExOCwxNCArMTE4LDE0IEBAIHZvaWQgRGF0YWJhc2VUcmFja2VyOjpvcGVuVHJhY2tlckRh
dGFiYXNlKFRyYWNrZXJDcmVhdGlvbkFjdGlvbiBjcmVhdGVBY3Rpb24pCiAgICAgfQogICAgIG1f
ZGF0YWJhc2UuZGlzYWJsZVRocmVhZGluZ0NoZWNrcygpOwogCi0gICAgaWYgKCFtX2RhdGFiYXNl
LnRhYmxlRXhpc3RzKCJPcmlnaW5zIikpIHsKKyAgICBpZiAoIW1fZGF0YWJhc2UudGFibGVFeGlz
dHMoIk9yaWdpbnMiX3MpKSB7CiAgICAgICAgIGlmICghbV9kYXRhYmFzZS5leGVjdXRlQ29tbWFu
ZCgiQ1JFQVRFIFRBQkxFIE9yaWdpbnMgKG9yaWdpbiBURVhUIFVOSVFVRSBPTiBDT05GTElDVCBS
RVBMQUNFLCBxdW90YSBJTlRFR0VSIE5PVCBOVUxMIE9OIENPTkZMSUNUIEZBSUwpOyJfcykpIHsK
ICAgICAgICAgICAgIC8vIEZJWE1FOiBhbmQgaGVyZQogICAgICAgICAgICAgTE9HX0VSUk9SKCJG
YWlsZWQgdG8gY3JlYXRlIE9yaWdpbnMgdGFibGUiKTsKICAgICAgICAgfQogICAgIH0KIAotICAg
IGlmICghbV9kYXRhYmFzZS50YWJsZUV4aXN0cygiRGF0YWJhc2VzIikpIHsKKyAgICBpZiAoIW1f
ZGF0YWJhc2UudGFibGVFeGlzdHMoIkRhdGFiYXNlcyJfcykpIHsKICAgICAgICAgaWYgKCFtX2Rh
dGFiYXNlLmV4ZWN1dGVDb21tYW5kKCJDUkVBVEUgVEFCTEUgRGF0YWJhc2VzIChndWlkIElOVEVH
RVIgUFJJTUFSWSBLRVkgQVVUT0lOQ1JFTUVOVCwgb3JpZ2luIFRFWFQsIG5hbWUgVEVYVCwgZGlz
cGxheU5hbWUgVEVYVCwgZXN0aW1hdGVkU2l6ZSBJTlRFR0VSLCBwYXRoIFRFWFQpOyJfcykpIHsK
ICAgICAgICAgICAgIC8vIEZJWE1FOiBhbmQgaGVyZQogICAgICAgICAgICAgTE9HX0VSUk9SKCJG
YWlsZWQgdG8gY3JlYXRlIERhdGFiYXNlcyB0YWJsZSIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxTdGF0ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxTdGF0ZW1lbnQuY3BwCmluZGV4IGI3ODA1ODJkYzk3
OTU5MjMzNDYzZjhmZDhhYzE5ZDAzOWFlYjg4MjAuLmQ5MWQwMzE0NTkxNWIyMWEzNTdlODVmMDVj
Y2JhNDBlNWRiZWExMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0
YWJhc2UvU1FMU3RhdGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRh
dGFiYXNlL1NRTFN0YXRlbWVudC5jcHAKQEAgLTEyNiw3ICsxMjYsNyBAQCBib29sIFNRTFN0YXRl
bWVudDo6ZXhlY3V0ZShEYXRhYmFzZSYgZGIpCiAgICAgLy8gSWYgdGhpcyBpcyB0aGUgY2FzZSwg
dGhleSBtaWdodCBiZSB0cnlpbmcgdG8gZG8gc29tZXRoaW5nIGZpc2h5IG9yIG1hbGljaW91cwog
ICAgIGlmIChzdGF0ZW1lbnQtPmJpbmRQYXJhbWV0ZXJDb3VudCgpICE9IG1fYXJndW1lbnRzLnNp
emUoKSkgewogICAgICAgICBMT0coU3RvcmFnZUFQSSwgIkJpbmQgcGFyYW1ldGVyIGNvdW50IGRv
ZXNuJ3QgbWF0Y2ggbnVtYmVyIG9mIHF1ZXN0aW9uIG1hcmtzIik7Ci0gICAgICAgIG1fZXJyb3Ig
PSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpTWU5UQVhfRVJSLCAibnVtYmVyIG9mICc/J3Mg
aW4gc3RhdGVtZW50IHN0cmluZyBkb2VzIG5vdCBtYXRjaCBhcmd1bWVudCBjb3VudCIpOworICAg
ICAgICBtX2Vycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6U1lOVEFYX0VSUiwgIm51
bWJlciBvZiAnPydzIGluIHN0YXRlbWVudCBzdHJpbmcgZG9lcyBub3QgbWF0Y2ggYXJndW1lbnQg
Y291bnQiX3MpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCkBAIC0yMzQsMTkgKzIz
NCwxOSBAQCBib29sIFNRTFN0YXRlbWVudDo6cGVyZm9ybUNhbGxiYWNrKFNRTFRyYW5zYWN0aW9u
JiB0cmFuc2FjdGlvbikKIHZvaWQgU1FMU3RhdGVtZW50OjpzZXREYXRhYmFzZURlbGV0ZWRFcnJv
cigpCiB7CiAgICAgQVNTRVJUKCFtX2Vycm9yICYmICFtX3Jlc3VsdFNldCk7Ci0gICAgbV9lcnJv
ciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OlVOS05PV05fRVJSLCAidW5hYmxlIHRvIGV4
ZWN1dGUgc3RhdGVtZW50LCBiZWNhdXNlIHRoZSB1c2VyIGRlbGV0ZWQgdGhlIGRhdGFiYXNlIik7
CisgICAgbV9lcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OlVOS05PV05fRVJSLCAi
dW5hYmxlIHRvIGV4ZWN1dGUgc3RhdGVtZW50LCBiZWNhdXNlIHRoZSB1c2VyIGRlbGV0ZWQgdGhl
IGRhdGFiYXNlIl9zKTsKIH0KIAogdm9pZCBTUUxTdGF0ZW1lbnQ6OnNldFZlcnNpb25NaXNtYXRj
aGVkRXJyb3IoKQogewogICAgIEFTU0VSVCghbV9lcnJvciAmJiAhbV9yZXN1bHRTZXQpOwotICAg
IG1fZXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpWRVJTSU9OX0VSUiwgImN1cnJl
bnQgdmVyc2lvbiBvZiB0aGUgZGF0YWJhc2UgYW5kIGBvbGRWZXJzaW9uYCBhcmd1bWVudCBkbyBu
b3QgbWF0Y2giKTsKKyAgICBtX2Vycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6VkVS
U0lPTl9FUlIsICJjdXJyZW50IHZlcnNpb24gb2YgdGhlIGRhdGFiYXNlIGFuZCBgb2xkVmVyc2lv
bmAgYXJndW1lbnQgZG8gbm90IG1hdGNoIl9zKTsKIH0KIAogdm9pZCBTUUxTdGF0ZW1lbnQ6OnNl
dEZhaWx1cmVEdWVUb1F1b3RhKCkKIHsKICAgICBBU1NFUlQoIW1fZXJyb3IgJiYgIW1fcmVzdWx0
U2V0KTsKLSAgICBtX2Vycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6UVVPVEFfRVJS
LCAidGhlcmUgd2FzIG5vdCBlbm91Z2ggcmVtYWluaW5nIHN0b3JhZ2Ugc3BhY2UsIG9yIHRoZSBz
dG9yYWdlIHF1b3RhIHdhcyByZWFjaGVkIGFuZCB0aGUgdXNlciBkZWNsaW5lZCB0byBhbGxvdyBt
b3JlIHNwYWNlIik7CisgICAgbV9lcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OlFV
T1RBX0VSUiwgInRoZXJlIHdhcyBub3QgZW5vdWdoIHJlbWFpbmluZyBzdG9yYWdlIHNwYWNlLCBv
ciB0aGUgc3RvcmFnZSBxdW90YSB3YXMgcmVhY2hlZCBhbmQgdGhlIHVzZXIgZGVjbGluZWQgdG8g
YWxsb3cgbW9yZSBzcGFjZSJfcyk7CiB9CiAKIHZvaWQgU1FMU3RhdGVtZW50OjpjbGVhckZhaWx1
cmVEdWVUb1F1b3RhKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0
YWJhc2UvU1FMVHJhbnNhY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRh
YmFzZS9TUUxUcmFuc2FjdGlvbi5jcHAKaW5kZXggNjgzMmFjYTkwZWQ2ZDllYjgxYWI5ZjM1NTk1
OTNiZjQ2NDMwZmQwZi4uZTlhZDc5ZjMyODJlODQ1OWRkN2QzM2VmZjAyYjZiNTc5ZjAyNmMwZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2Fj
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFu
c2FjdGlvbi5jcHAKQEAgLTEzNyw3ICsxMzcsNyBAQCB2b2lkIFNRTFRyYW5zYWN0aW9uOjpjYWxs
RXJyb3JDYWxsYmFja0R1ZVRvSW50ZXJydXB0aW9uKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAg
bV9kYXRhYmFzZS0+ZG9jdW1lbnQoKS5ldmVudExvb3AoKS5xdWV1ZVRhc2soVGFza1NvdXJjZTo6
TmV0d29ya2luZywgW2Vycm9yQ2FsbGJhY2sgPSBXVEZNb3ZlKGVycm9yQ2FsbGJhY2spXSgpIG11
dGFibGUgewotICAgICAgICBlcnJvckNhbGxiYWNrLT5oYW5kbGVFdmVudChTUUxFcnJvcjo6Y3Jl
YXRlKFNRTEVycm9yOjpEQVRBQkFTRV9FUlIsICJ0aGUgZGF0YWJhc2Ugd2FzIGNsb3NlZCIpKTsK
KyAgICAgICAgZXJyb3JDYWxsYmFjay0+aGFuZGxlRXZlbnQoU1FMRXJyb3I6OmNyZWF0ZShTUUxF
cnJvcjo6REFUQUJBU0VfRVJSLCAidGhlIGRhdGFiYXNlIHdhcyBjbG9zZWQiX3MpKTsKICAgICB9
KTsKIH0KIApAQCAtMjM2LDcgKzIzNiw3IEBAIHZvaWQgU1FMVHJhbnNhY3Rpb246Om9wZW5UcmFu
c2FjdGlvbkFuZFByZWZsaWdodCgpCiAKICAgICAvLyBJZiB0aGUgZGF0YWJhc2Ugd2FzIGRlbGV0
ZWQsIGp1bXAgdG8gdGhlIGVycm9yIGNhbGxiYWNrCiAgICAgaWYgKG1fZGF0YWJhc2UtPmRlbGV0
ZWQoKSkgewotICAgICAgICBtX3RyYW5zYWN0aW9uRXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNR
TEVycm9yOjpVTktOT1dOX0VSUiwgInVuYWJsZSB0byBvcGVuIGEgdHJhbnNhY3Rpb24sIGJlY2F1
c2UgdGhlIHVzZXIgZGVsZXRlZCB0aGUgZGF0YWJhc2UiKTsKKyAgICAgICAgbV90cmFuc2FjdGlv
bkVycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6VU5LTk9XTl9FUlIsICJ1bmFibGUg
dG8gb3BlbiBhIHRyYW5zYWN0aW9uLCBiZWNhdXNlIHRoZSB1c2VyIGRlbGV0ZWQgdGhlIGRhdGFi
YXNlIl9zKTsKIAogICAgICAgICBoYW5kbGVUcmFuc2FjdGlvbkVycm9yKCk7CiAgICAgICAgIHJl
dHVybjsKQEAgLTI5MCw3ICsyOTAsNyBAQCB2b2lkIFNRTFRyYW5zYWN0aW9uOjpvcGVuVHJhbnNh
Y3Rpb25BbmRQcmVmbGlnaHQoKQogICAgICAgICBtX2RhdGFiYXNlLT5lbmFibGVBdXRob3JpemVy
KCk7CiAgICAgICAgIG1fdHJhbnNhY3Rpb25FcnJvciA9IG1fd3JhcHBlci0+c3FsRXJyb3IoKTsK
ICAgICAgICAgaWYgKCFtX3RyYW5zYWN0aW9uRXJyb3IpCi0gICAgICAgICAgICBtX3RyYW5zYWN0
aW9uRXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpVTktOT1dOX0VSUiwgInVua25v
d24gZXJyb3Igb2NjdXJyZWQgZHVyaW5nIHRyYW5zYWN0aW9uIHByZWZsaWdodCIpOworICAgICAg
ICAgICAgbV90cmFuc2FjdGlvbkVycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6VU5L
Tk9XTl9FUlIsICJ1bmtub3duIGVycm9yIG9jY3VycmVkIGR1cmluZyB0cmFuc2FjdGlvbiBwcmVm
bGlnaHQiX3MpOwogCiAgICAgICAgIGhhbmRsZVRyYW5zYWN0aW9uRXJyb3IoKTsKICAgICAgICAg
cmV0dXJuOwpAQCAtMzk1LDcgKzM5NSw3IEBAIHZvaWQgU1FMVHJhbnNhY3Rpb246OmRlbGl2ZXJU
cmFuc2FjdGlvbkNhbGxiYWNrKCkKIAogICAgIC8vIFNwZWMgNC4zLjIgNTogSWYgdGhlIHRyYW5z
YWN0aW9uIGNhbGxiYWNrIHdhcyBudWxsIG9yIHJhaXNlZCBhbiBleGNlcHRpb24sIGp1bXAgdG8g
dGhlIGVycm9yIGNhbGxiYWNrCiAgICAgaWYgKHNob3VsZERlbGl2ZXJFcnJvckNhbGxiYWNrKSB7
Ci0gICAgICAgIG1fdHJhbnNhY3Rpb25FcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6
OlVOS05PV05fRVJSLCAidGhlIFNRTFRyYW5zYWN0aW9uQ2FsbGJhY2sgd2FzIG51bGwgb3IgdGhy
ZXcgYW4gZXhjZXB0aW9uIik7CisgICAgICAgIG1fdHJhbnNhY3Rpb25FcnJvciA9IFNRTEVycm9y
OjpjcmVhdGUoU1FMRXJyb3I6OlVOS05PV05fRVJSLCAidGhlIFNRTFRyYW5zYWN0aW9uQ2FsbGJh
Y2sgd2FzIG51bGwgb3IgdGhyZXcgYW4gZXhjZXB0aW9uIl9zKTsKICAgICAgICAgcmV0dXJuIGRl
bGl2ZXJUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2soKTsKICAgICB9CiAKQEAgLTQzMiw3ICs0MzIs
NyBAQCB2b2lkIFNRTFRyYW5zYWN0aW9uOjpkZWxpdmVyU3RhdGVtZW50Q2FsbGJhY2soKQogICAg
IG1fZXhlY3V0ZVNxbEFsbG93ZWQgPSBmYWxzZTsKIAogICAgIGlmIChyZXN1bHQpIHsKLSAgICAg
ICAgbV90cmFuc2FjdGlvbkVycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6VU5LTk9X
Tl9FUlIsICJ0aGUgc3RhdGVtZW50IGNhbGxiYWNrIHJhaXNlZCBhbiBleGNlcHRpb24gb3Igc3Rh
dGVtZW50IGVycm9yIGNhbGxiYWNrIGRpZCBub3QgcmV0dXJuIGZhbHNlIik7CisgICAgICAgIG1f
dHJhbnNhY3Rpb25FcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OlVOS05PV05fRVJS
LCAidGhlIHN0YXRlbWVudCBjYWxsYmFjayByYWlzZWQgYW4gZXhjZXB0aW9uIG9yIHN0YXRlbWVu
dCBlcnJvciBjYWxsYmFjayBkaWQgbm90IHJldHVybiBmYWxzZSJfcyk7CiAKICAgICAgICAgaWYg
KG1fZXJyb3JDYWxsYmFja1dyYXBwZXIuaGFzQ2FsbGJhY2soKSkKICAgICAgICAgICAgIHJldHVy
biBkZWxpdmVyVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrKCk7CkBAIC01NjgsNyArNTY4LDcgQEAg
dm9pZCBTUUxUcmFuc2FjdGlvbjo6aGFuZGxlQ3VycmVudFN0YXRlbWVudEVycm9yKCkKIAogICAg
IG1fdHJhbnNhY3Rpb25FcnJvciA9IG1fY3VycmVudFN0YXRlbWVudC0+c3FsRXJyb3IoKTsKICAg
ICBpZiAoIW1fdHJhbnNhY3Rpb25FcnJvcikKLSAgICAgICAgbV90cmFuc2FjdGlvbkVycm9yID0g
U1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6REFUQUJBU0VfRVJSLCAidGhlIHN0YXRlbWVudCBm
YWlsZWQgdG8gZXhlY3V0ZSIpOworICAgICAgICBtX3RyYW5zYWN0aW9uRXJyb3IgPSBTUUxFcnJv
cjo6Y3JlYXRlKFNRTEVycm9yOjpEQVRBQkFTRV9FUlIsICJ0aGUgc3RhdGVtZW50IGZhaWxlZCB0
byBleGVjdXRlIl9zKTsKIAogICAgIGhhbmRsZVRyYW5zYWN0aW9uRXJyb3IoKTsKIH0KQEAgLTU5
NCw3ICs1OTQsNyBAQCB2b2lkIFNRTFRyYW5zYWN0aW9uOjpwb3N0ZmxpZ2h0QW5kQ29tbWl0KCkK
ICAgICBpZiAobV93cmFwcGVyICYmICFtX3dyYXBwZXItPnBlcmZvcm1Qb3N0ZmxpZ2h0KCp0aGlz
KSkgewogICAgICAgICBtX3RyYW5zYWN0aW9uRXJyb3IgPSBtX3dyYXBwZXItPnNxbEVycm9yKCk7
CiAgICAgICAgIGlmICghbV90cmFuc2FjdGlvbkVycm9yKQotICAgICAgICAgICAgbV90cmFuc2Fj
dGlvbkVycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6VU5LTk9XTl9FUlIsICJ1bmtu
b3duIGVycm9yIG9jY3VycmVkIGR1cmluZyB0cmFuc2FjdGlvbiBwb3N0ZmxpZ2h0Iik7CisgICAg
ICAgICAgICBtX3RyYW5zYWN0aW9uRXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpV
TktOT1dOX0VSUiwgInVua25vd24gZXJyb3Igb2NjdXJyZWQgZHVyaW5nIHRyYW5zYWN0aW9uIHBv
c3RmbGlnaHQiX3MpOwogCiAgICAgICAgIGhhbmRsZVRyYW5zYWN0aW9uRXJyb3IoKTsKICAgICAg
ICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRz
L1dlYlNvY2tldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29j
a2V0LmNwcAppbmRleCBmOTczZTViZDNiOTBlM2E0Y2M3MzUyMTRkOWEzMTlhZGY5MjFlNGI2Li42
OWQyZTU0NzM1YTMwNjQ2Mzg0YzdlZmI3ZWE2NDk4N2VjMzQwMmNjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcApAQCAtMTM3LDkgKzEzNyw5
IEBAIHN0YXRpYyB1bnNpZ25lZCBzYXR1cmF0ZUFkZCh1bnNpZ25lZCBhLCB1bnNpZ25lZCBiKQog
ICAgIHJldHVybiBhICsgYjsKIH0KIAotY29uc3QgY2hhciogV2ViU29ja2V0OjpzdWJwcm90b2Nv
bFNlcGFyYXRvcigpCitBU0NJSUxpdGVyYWwgV2ViU29ja2V0OjpzdWJwcm90b2NvbFNlcGFyYXRv
cigpCiB7Ci0gICAgcmV0dXJuICIsICI7CisgICAgcmV0dXJuICIsICJfczsKIH0KIAogV2ViU29j
a2V0OjpXZWJTb2NrZXQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkKQEAgLTQzMCw3
ICs0MzAsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBXZWJTb2NrZXQ6OmNsb3NlKHN0ZDo6b3B0aW9u
YWw8dW5zaWduZWQgc2hvcnQ+IG9wdGlvbmFsQ29kZSwgYwogICAgICAgICByZXR1cm4geyB9Owog
ICAgIGlmIChtX3N0YXRlID09IENPTk5FQ1RJTkcpIHsKICAgICAgICAgbV9zdGF0ZSA9IENMT1NJ
Tkc7Ci0gICAgICAgIG1fY2hhbm5lbC0+ZmFpbCgiV2ViU29ja2V0IGlzIGNsb3NlZCBiZWZvcmUg
dGhlIGNvbm5lY3Rpb24gaXMgZXN0YWJsaXNoZWQuIik7CisgICAgICAgIG1fY2hhbm5lbC0+ZmFp
bCgiV2ViU29ja2V0IGlzIGNsb3NlZCBiZWZvcmUgdGhlIGNvbm5lY3Rpb24gaXMgZXN0YWJsaXNo
ZWQuIl9zKTsKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CiAgICAgbV9zdGF0ZSA9IENMT1NJ
Tkc7CkBAIC01MjAsNyArNTIwLDcgQEAgdm9pZCBXZWJTb2NrZXQ6OnN1c3BlbmQoUmVhc29uRm9y
U3VzcGVuc2lvbiByZWFzb24pCiAKICAgICBpZiAocmVhc29uID09IFJlYXNvbkZvclN1c3BlbnNp
b246OkJhY2tGb3J3YXJkQ2FjaGUpIHsKICAgICAgICAgLy8gVGhpcyB3aWxsIGNhdXNlIGRpZENs
b3NlKCkgdG8gYmUgY2FsbGVkLgotICAgICAgICBtX2NoYW5uZWwtPmZhaWwoIldlYlNvY2tldCBp
cyBjbG9zZWQgZHVlIHRvIHN1c3BlbnNpb24uIik7CisgICAgICAgIG1fY2hhbm5lbC0+ZmFpbCgi
V2ViU29ja2V0IGlzIGNsb3NlZCBkdWUgdG8gc3VzcGVuc2lvbi4iX3MpOwogICAgICAgICByZXR1
cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tl
dHMvV2ViU29ja2V0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29j
a2V0LmgKaW5kZXggZTY4NjNlNDZkYTA3ZDE4YjZkOTE1ZWIxNWMyNGNkZjIyZGI2YTZjYi4uZWZm
YzA2OGJiZjYyNjVlN2EzYjE1NWM5NGZmNDQ4ZTc2NmQxZTM2NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuaApAQCAtNTEsNyArNTEsNyBAQCBjbGFz
cyBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDsKIGNsYXNzIFdlYlNvY2tldCBmaW5hbCA6IHB1
YmxpYyBSZWZDb3VudGVkPFdlYlNvY2tldD4sIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVE
YXRhLCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwcml2YXRlIFdlYlNvY2tldENoYW5uZWxDbGll
bnQgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoV2ViU29ja2V0KTsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgY29uc3QgY2hhciogc3VicHJvdG9jb2xTZXBhcmF0b3IoKTsKKyAgICBzdGF0aWMg
QVNDSUlMaXRlcmFsIHN1YnByb3RvY29sU2VwYXJhdG9yKCk7CiAKICAgICBzdGF0aWMgRXhjZXB0
aW9uT3I8UmVmPFdlYlNvY2tldD4+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgY29u
c3QgU3RyaW5nJiB1cmwpOwogICAgIHN0YXRpYyBFeGNlcHRpb25PcjxSZWY8V2ViU29ja2V0Pj4g
Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3Qg
U3RyaW5nJiBwcm90b2NvbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAKaW5kZXggZGY1NjM1OWM2ZmRhMDUyMTAzZDk3
YjNkOGE1ZDEwODQ5MTk3NWY1Yi4uNjliOGUyYTc3NTRhODk3OGMxOTU0ODUxZmYyNmM5OTYxNTJm
NWRjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNv
Y2tldENoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9X
ZWJTb2NrZXRDaGFubmVsLmNwcApAQCAtMjg3LDcgKzI4Nyw3IEBAIHZvaWQgV2ViU29ja2V0Q2hh
bm5lbDo6ZGlkT3BlblNvY2tldFN0cmVhbShTb2NrZXRTdHJlYW1IYW5kbGUmIGhhbmRsZSkKICAg
ICAgICAgY29va2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHkgPSBDb29raWVKYXI6OmNvb2tpZVJl
cXVlc3RIZWFkZXJGaWVsZFByb3h5KCptX2RvY3VtZW50LCBtX2hhbmRzaGFrZS0+aHR0cFVSTEZv
ckF1dGhlbnRpY2F0aW9uQW5kQ29va2llcygpKTsKICAgICBoYW5kbGUuc2VuZEhhbmRzaGFrZShX
VEZNb3ZlKGhhbmRzaGFrZU1lc3NhZ2UpLCBXVEZNb3ZlKGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVs
ZFByb3h5KSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9XSAoYm9vbCBzdWNj
ZXNzLCBib29sIGRpZEFjY2Vzc1NlY3VyZUNvb2tpZXMpIHsKICAgICAgICAgaWYgKCFzdWNjZXNz
KQotICAgICAgICAgICAgZmFpbCgiRmFpbGVkIHRvIHNlbmQgV2ViU29ja2V0IGhhbmRzaGFrZS4i
KTsKKyAgICAgICAgICAgIGZhaWwoIkZhaWxlZCB0byBzZW5kIFdlYlNvY2tldCBoYW5kc2hha2Uu
Il9zKTsKIAogICAgICAgICBpZiAoZGlkQWNjZXNzU2VjdXJlQ29va2llcyAmJiBtX2RvY3VtZW50
KQogICAgICAgICAgICAgbV9kb2N1bWVudC0+c2V0U2VjdXJlQ29va2llc0FjY2Vzc2VkKCk7CkBA
IC0zNDAsNyArMzQwLDcgQEAgdm9pZCBXZWJTb2NrZXRDaGFubmVsOjpkaWRSZWNlaXZlU29ja2V0
U3RyZWFtRGF0YShTb2NrZXRTdHJlYW1IYW5kbGUmIGhhbmRsZSwgY28KICAgICAgICAgcmV0dXJu
OwogICAgIGlmICghYXBwZW5kVG9CdWZmZXIoZGF0YSwgbGVuZ3RoKSkgewogICAgICAgICBtX3No
b3VsZERpc2NhcmRSZWNlaXZlZERhdGEgPSB0cnVlOwotICAgICAgICBmYWlsKCJSYW4gb3V0IG9m
IG1lbW9yeSB3aGlsZSByZWNlaXZpbmcgV2ViU29ja2V0IGRhdGEuIik7CisgICAgICAgIGZhaWwo
IlJhbiBvdXQgb2YgbWVtb3J5IHdoaWxlIHJlY2VpdmluZyBXZWJTb2NrZXQgZGF0YS4iX3MpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogICAgIHdoaWxlICghbV9zdXNwZW5kZWQgJiYgbV9jbGll
bnQgJiYgIW1fYnVmZmVyLmlzRW1wdHkoKSkgewpAQCAtNTcxLDcgKzU3MSw3IEBAIGJvb2wgV2Vi
U29ja2V0Q2hhbm5lbDo6cHJvY2Vzc0ZyYW1lKCkKICAgICB9CiAKICAgICBpZiAoZnJhbWUubWFz
a2VkKSB7Ci0gICAgICAgIGZhaWwoIkEgc2VydmVyIG11c3Qgbm90IG1hc2sgYW55IGZyYW1lcyB0
aGF0IGl0IHNlbmRzIHRvIHRoZSBjbGllbnQuIik7CisgICAgICAgIGZhaWwoIkEgc2VydmVyIG11
c3Qgbm90IG1hc2sgYW55IGZyYW1lcyB0aGF0IGl0IHNlbmRzIHRvIHRoZSBjbGllbnQuIl9zKTsK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApAQCAtNTkxLDcgKzU5MSw3IEBAIGJvb2wg
V2ViU29ja2V0Q2hhbm5lbDo6cHJvY2Vzc0ZyYW1lKCkKICAgICAvLyBBIG5ldyBkYXRhIGZyYW1l
IGlzIHJlY2VpdmVkIGJlZm9yZSB0aGUgcHJldmlvdXMgY29udGludW91cyBmcmFtZSBmaW5pc2hl
cy4KICAgICAvLyBOb3RlIHRoYXQgY29udHJvbCBmcmFtZXMgYXJlIGFsbG93ZWQgdG8gY29tZSBp
biB0aGUgbWlkZGxlIG9mIGNvbnRpbnVvdXMgZnJhbWVzLgogICAgIGlmIChtX2hhc0NvbnRpbnVv
dXNGcmFtZSAmJiBmcmFtZS5vcENvZGUgIT0gV2ViU29ja2V0RnJhbWU6Ok9wQ29kZUNvbnRpbnVh
dGlvbiAmJiAhV2ViU29ja2V0RnJhbWU6OmlzQ29udHJvbE9wQ29kZShmcmFtZS5vcENvZGUpKSB7
Ci0gICAgICAgIGZhaWwoIlJlY2VpdmVkIG5ldyBkYXRhIGZyYW1lIGJ1dCBwcmV2aW91cyBjb250
aW51b3VzIGZyYW1lIGlzIHVuZmluaXNoZWQuIik7CisgICAgICAgIGZhaWwoIlJlY2VpdmVkIG5l
dyBkYXRhIGZyYW1lIGJ1dCBwcmV2aW91cyBjb250aW51b3VzIGZyYW1lIGlzIHVuZmluaXNoZWQu
Il9zKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApAQCAtNjAxLDcgKzYwMSw3IEBA
IGJvb2wgV2ViU29ja2V0Q2hhbm5lbDo6cHJvY2Vzc0ZyYW1lKCkKICAgICBjYXNlIFdlYlNvY2tl
dEZyYW1lOjpPcENvZGVDb250aW51YXRpb246CiAgICAgICAgIC8vIEFuIHVuZXhwZWN0ZWQgY29u
dGludWF0aW9uIGZyYW1lIGlzIHJlY2VpdmVkIHdpdGhvdXQgYW55IGxlYWRpbmcgZnJhbWUuCiAg
ICAgICAgIGlmICghbV9oYXNDb250aW51b3VzRnJhbWUpIHsKLSAgICAgICAgICAgIGZhaWwoIlJl
Y2VpdmVkIHVuZXhwZWN0ZWQgY29udGludWF0aW9uIGZyYW1lLiIpOworICAgICAgICAgICAgZmFp
bCgiUmVjZWl2ZWQgdW5leHBlY3RlZCBjb250aW51YXRpb24gZnJhbWUuIl9zKTsKICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQogICAgICAgICBtX2NvbnRpbnVvdXNGcmFtZURh
dGEuYXBwZW5kKGZyYW1lLnBheWxvYWQsIGZyYW1lLnBheWxvYWRMZW5ndGgpOwpAQCAtNjIwLDcg
KzYyMCw3IEBAIGJvb2wgV2ViU29ja2V0Q2hhbm5lbDo6cHJvY2Vzc0ZyYW1lKCkKICAgICAgICAg
ICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSBlbXB0eVN0cmluZygp
OwogICAgICAgICAgICAgICAgIGlmIChtZXNzYWdlLmlzTnVsbCgpKQotICAgICAgICAgICAgICAg
ICAgICBmYWlsKCJDb3VsZCBub3QgZGVjb2RlIGEgdGV4dCBmcmFtZSBhcyBVVEYtOC4iKTsKKyAg
ICAgICAgICAgICAgICAgICAgZmFpbCgiQ291bGQgbm90IGRlY29kZSBhIHRleHQgZnJhbWUgYXMg
VVRGLTguIl9zKTsKICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgIG1f
Y2xpZW50LT5kaWRSZWNlaXZlTWVzc2FnZShXVEZNb3ZlKG1lc3NhZ2UpKTsKICAgICAgICAgICAg
IH0gZWxzZSBpZiAobV9jb250aW51b3VzRnJhbWVPcENvZGUgPT0gV2ViU29ja2V0RnJhbWU6Ok9w
Q29kZUJpbmFyeSkKQEAgLTYzNyw3ICs2MzcsNyBAQCBib29sIFdlYlNvY2tldENoYW5uZWw6OnBy
b2Nlc3NGcmFtZSgpCiAgICAgICAgICAgICAgICAgbWVzc2FnZSA9IGVtcHR5U3RyaW5nKCk7CiAg
ICAgICAgICAgICBza2lwQnVmZmVyKGZyYW1lRW5kIC0gbV9idWZmZXIuZGF0YSgpKTsKICAgICAg
ICAgICAgIGlmIChtZXNzYWdlLmlzTnVsbCgpKQotICAgICAgICAgICAgICAgIGZhaWwoIkNvdWxk
IG5vdCBkZWNvZGUgYSB0ZXh0IGZyYW1lIGFzIFVURi04LiIpOworICAgICAgICAgICAgICAgIGZh
aWwoIkNvdWxkIG5vdCBkZWNvZGUgYSB0ZXh0IGZyYW1lIGFzIFVURi04LiJfcyk7CiAgICAgICAg
ICAgICBlbHNlCiAgICAgICAgICAgICAgICAgbV9jbGllbnQtPmRpZFJlY2VpdmVNZXNzYWdlKFdU
Rk1vdmUobWVzc2FnZSkpOwogICAgICAgICB9IGVsc2UgewpAQCAtNjY5LDEzICs2NjksMTMgQEAg
Ym9vbCBXZWJTb2NrZXRDaGFubmVsOjpwcm9jZXNzRnJhbWUoKQogICAgICAgICAgICAgbV9jbG9z
ZUV2ZW50Q29kZSA9IENsb3NlRXZlbnRDb2RlTm9TdGF0dXNSY3ZkOwogICAgICAgICBlbHNlIGlm
IChmcmFtZS5wYXlsb2FkTGVuZ3RoID09IDEpIHsKICAgICAgICAgICAgIG1fY2xvc2VFdmVudENv
ZGUgPSBDbG9zZUV2ZW50Q29kZUFibm9ybWFsQ2xvc3VyZTsKLSAgICAgICAgICAgIGZhaWwoIlJl
Y2VpdmVkIGEgYnJva2VuIGNsb3NlIGZyYW1lIGNvbnRhaW5pbmcgYW4gaW52YWxpZCBzaXplIGJv
ZHkuIik7CisgICAgICAgICAgICBmYWlsKCJSZWNlaXZlZCBhIGJyb2tlbiBjbG9zZSBmcmFtZSBj
b250YWluaW5nIGFuIGludmFsaWQgc2l6ZSBib2R5LiJfcyk7CiAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBtX2Nsb3NlRXZlbnRDb2RlID0g
ZnJhbWUucGF5bG9hZFswXSA8PCA4IHwgZnJhbWUucGF5bG9hZFsxXTsKICAgICAgICAgICAgIGlm
IChtX2Nsb3NlRXZlbnRDb2RlID09IENsb3NlRXZlbnRDb2RlTm9TdGF0dXNSY3ZkIHx8IG1fY2xv
c2VFdmVudENvZGUgPT0gQ2xvc2VFdmVudENvZGVBYm5vcm1hbENsb3N1cmUgfHwgbV9jbG9zZUV2
ZW50Q29kZSA9PSBDbG9zZUV2ZW50Q29kZVRMU0hhbmRzaGFrZSkgewogICAgICAgICAgICAgICAg
IG1fY2xvc2VFdmVudENvZGUgPSBDbG9zZUV2ZW50Q29kZUFibm9ybWFsQ2xvc3VyZTsKLSAgICAg
ICAgICAgICAgICBmYWlsKCJSZWNlaXZlZCBhIGJyb2tlbiBjbG9zZSBmcmFtZSBjb250YWluaW5n
IGEgcmVzZXJ2ZWQgc3RhdHVzIGNvZGUuIik7CisgICAgICAgICAgICAgICAgZmFpbCgiUmVjZWl2
ZWQgYSBicm9rZW4gY2xvc2UgZnJhbWUgY29udGFpbmluZyBhIHJlc2VydmVkIHN0YXR1cyBjb2Rl
LiJfcyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgfQogICAg
ICAgICB9CkBAIC03NjEsNyArNzYxLDcgQEAgdm9pZCBXZWJTb2NrZXRDaGFubmVsOjpwcm9jZXNz
T3V0Z29pbmdGcmFtZVF1ZXVlKCkKICAgICAgICAgY2FzZSBRdWV1ZWRGcmFtZVR5cGVTdHJpbmc6
IHsKICAgICAgICAgICAgIHNlbmRGcmFtZShmcmFtZS0+b3BDb2RlLCBmcmFtZS0+c3RyaW5nRGF0
YS5kYXRhQXNVSW50OFB0cigpLCBmcmFtZS0+c3RyaW5nRGF0YS5sZW5ndGgoKSwgW3RoaXMsIHBy
b3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9XSAoYm9vbCBzdWNjZXNzKSB7CiAgICAgICAgICAg
ICAgICAgaWYgKCFzdWNjZXNzKQotICAgICAgICAgICAgICAgICAgICBmYWlsKCJGYWlsZWQgdG8g
c2VuZCBXZWJTb2NrZXQgZnJhbWUuIik7CisgICAgICAgICAgICAgICAgICAgIGZhaWwoIkZhaWxl
ZCB0byBzZW5kIFdlYlNvY2tldCBmcmFtZS4iX3MpOwogICAgICAgICAgICAgfSk7CiAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgfQpAQCAtNzY5LDcgKzc2OSw3IEBAIHZvaWQgV2ViU29ja2V0
Q2hhbm5lbDo6cHJvY2Vzc091dGdvaW5nRnJhbWVRdWV1ZSgpCiAgICAgICAgIGNhc2UgUXVldWVk
RnJhbWVUeXBlVmVjdG9yOgogICAgICAgICAgICAgc2VuZEZyYW1lKGZyYW1lLT5vcENvZGUsIGZy
YW1lLT52ZWN0b3JEYXRhLmRhdGEoKSwgZnJhbWUtPnZlY3RvckRhdGEuc2l6ZSgpLCBbdGhpcywg
cHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH1dIChib29sIHN1Y2Nlc3MpIHsKICAgICAgICAg
ICAgICAgICBpZiAoIXN1Y2Nlc3MpCi0gICAgICAgICAgICAgICAgICAgIGZhaWwoIkZhaWxlZCB0
byBzZW5kIFdlYlNvY2tldCBmcmFtZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgZmFpbCgiRmFp
bGVkIHRvIHNlbmQgV2ViU29ja2V0IGZyYW1lLiJfcyk7CiAgICAgICAgICAgICB9KTsKICAgICAg
ICAgICAgIGJyZWFrOwogCkBAIC03OTYsNyArNzk2LDcgQEAgdm9pZCBXZWJTb2NrZXRDaGFubmVs
Ojpwcm9jZXNzT3V0Z29pbmdGcmFtZVF1ZXVlKCkKICAgICAgICAgICAgICAgICBtX2Jsb2JMb2Fk
ZXJTdGF0dXMgPSBCbG9iTG9hZGVyTm90U3RhcnRlZDsKICAgICAgICAgICAgICAgICBzZW5kRnJh
bWUoZnJhbWUtPm9wQ29kZSwgc3RhdGljX2Nhc3Q8Y29uc3QgdWludDhfdCo+KHJlc3VsdC0+ZGF0
YSgpKSwgcmVzdWx0LT5ieXRlTGVuZ3RoKCksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsg
KnRoaXMgfV0gKGJvb2wgc3VjY2VzcykgewogICAgICAgICAgICAgICAgICAgICBpZiAoIXN1Y2Nl
c3MpCi0gICAgICAgICAgICAgICAgICAgICAgICBmYWlsKCJGYWlsZWQgdG8gc2VuZCBXZWJTb2Nr
ZXQgZnJhbWUuIik7CisgICAgICAgICAgICAgICAgICAgICAgICBmYWlsKCJGYWlsZWQgdG8gc2Vu
ZCBXZWJTb2NrZXQgZnJhbWUuIl9zKTsKICAgICAgICAgICAgICAgICB9KTsKICAgICAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXREZWZsYXRlRnJhbWVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXREZWZsYXRlRnJhbWVyLmNwcAppbmRleCAw
MWZkZmUwMjllNDZmY2U4NjJkNWU2MTZjZmM0OTVkNjljYzYxNDY1Li5hODdmZTVkN2FhZTVlODBk
Mzk3NTQ5OWM0YzU2YTZlMDE3ZGYxMWRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RGVmbGF0ZUZyYW1lci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldERlZmxhdGVGcmFtZXIuY3BwCkBAIC03
Niw3ICs3Niw3IEBAIGJvb2wgV2ViU29ja2V0RXh0ZW5zaW9uRGVmbGF0ZUZyYW1lOjpwcm9jZXNz
UmVzcG9uc2UoY29uc3QgSGFzaE1hcDxTdHJpbmcsIFN0cmluCiAKICAgICB1bnNpZ25lZCBleHBl
Y3RlZE51bVBhcmFtZXRlcnMgPSAwOwogICAgIGludCB3aW5kb3dCaXRzID0gMTU7Ci0gICAgYXV0
byBwYXJhbWV0ZXIgPSBzZXJ2ZXJQYXJhbWV0ZXJzLmZpbmQoIm1heF93aW5kb3dfYml0cyIpOwor
ICAgIGF1dG8gcGFyYW1ldGVyID0gc2VydmVyUGFyYW1ldGVycy5maW5kKCJtYXhfd2luZG93X2Jp
dHMiX3MpOwogICAgIGlmIChwYXJhbWV0ZXIgIT0gc2VydmVyUGFyYW1ldGVycy5lbmQoKSkgewog
ICAgICAgICB3aW5kb3dCaXRzID0gcGFyc2VJbnRlZ2VyQWxsb3dpbmdUcmFpbGluZ0p1bms8aW50
PihwYXJhbWV0ZXItPnZhbHVlKS52YWx1ZV9vcigwKTsKICAgICAgICAgaWYgKHdpbmRvd0JpdHMg
PCA4IHx8IHdpbmRvd0JpdHMgPiAxNSkgewpAQCAtODcsNyArODcsNyBAQCBib29sIFdlYlNvY2tl
dEV4dGVuc2lvbkRlZmxhdGVGcmFtZTo6cHJvY2Vzc1Jlc3BvbnNlKGNvbnN0IEhhc2hNYXA8U3Ry
aW5nLCBTdHJpbgogICAgIH0KIAogICAgIFdlYlNvY2tldERlZmxhdGVyOjpDb250ZXh0VGFrZU92
ZXJNb2RlIG1vZGUgPSBXZWJTb2NrZXREZWZsYXRlcjo6VGFrZU92ZXJDb250ZXh0OwotICAgIHBh
cmFtZXRlciA9IHNlcnZlclBhcmFtZXRlcnMuZmluZCgibm9fY29udGV4dF90YWtlb3ZlciIpOwor
ICAgIHBhcmFtZXRlciA9IHNlcnZlclBhcmFtZXRlcnMuZmluZCgibm9fY29udGV4dF90YWtlb3Zl
ciJfcyk7CiAgICAgaWYgKHBhcmFtZXRlciAhPSBzZXJ2ZXJQYXJhbWV0ZXJzLmVuZCgpKSB7CiAg
ICAgICAgIGlmICghcGFyYW1ldGVyLT52YWx1ZS5pc051bGwoKSkgewogICAgICAgICAgICAgbV9m
YWlsdXJlUmVhc29uID0gIlJlY2VpdmVkIGludmFsaWQgbm9fY29udGV4dF90YWtlb3ZlciBwYXJh
bWV0ZXIiX3M7CkBAIC0xNjEsNyArMTYxLDcgQEAgc3RkOjp1bmlxdWVfcHRyPERlZmxhdGVSZXN1
bHRIb2xkZXI+IFdlYlNvY2tldERlZmxhdGVGcmFtZXI6OmRlZmxhdGUoV2ViU29ja2V0RnIKICAg
ICBpZiAoIWVuYWJsZWQoKSB8fCAhV2ViU29ja2V0RnJhbWU6OmlzTm9uQ29udHJvbE9wQ29kZShm
cmFtZS5vcENvZGUpIHx8ICFmcmFtZS5wYXlsb2FkTGVuZ3RoKQogICAgICAgICByZXR1cm4gcmVz
dWx0OwogICAgIGlmICghbV9kZWZsYXRlci0+YWRkQnl0ZXMoZnJhbWUucGF5bG9hZCwgZnJhbWUu
cGF5bG9hZExlbmd0aCkgfHwgIW1fZGVmbGF0ZXItPmZpbmlzaCgpKSB7Ci0gICAgICAgIHJlc3Vs
dC0+ZmFpbCgiRmFpbGVkIHRvIGNvbXByZXNzIGZyYW1lIik7CisgICAgICAgIHJlc3VsdC0+ZmFp
bCgiRmFpbGVkIHRvIGNvbXByZXNzIGZyYW1lIl9zKTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsK
ICAgICB9CiAgICAgZnJhbWUuY29tcHJlc3MgPSB0cnVlOwpAQCAtMTgwLDE3ICsxODAsMTcgQEAg
c3RkOjp1bmlxdWVfcHRyPEluZmxhdGVSZXN1bHRIb2xkZXI+IFdlYlNvY2tldERlZmxhdGVGcmFt
ZXI6OmluZmxhdGUoV2ViU29ja2V0RnIKIHsKICAgICBhdXRvIHJlc3VsdCA9IG1ha2VVbmlxdWU8
SW5mbGF0ZVJlc3VsdEhvbGRlcj4oKnRoaXMpOwogICAgIGlmICghZW5hYmxlZCgpICYmIGZyYW1l
LmNvbXByZXNzKSB7Ci0gICAgICAgIHJlc3VsdC0+ZmFpbCgiQ29tcHJlc3NlZCBiaXQgbXVzdCBi
ZSAwIGlmIG5vIG5lZ290aWF0ZWQgZGVmbGF0ZS1mcmFtZSBleHRlbnNpb24iKTsKKyAgICAgICAg
cmVzdWx0LT5mYWlsKCJDb21wcmVzc2VkIGJpdCBtdXN0IGJlIDAgaWYgbm8gbmVnb3RpYXRlZCBk
ZWZsYXRlLWZyYW1lIGV4dGVuc2lvbiJfcyk7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAg
fQogICAgIGlmICghZnJhbWUuY29tcHJlc3MpCiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAg
aWYgKCFXZWJTb2NrZXRGcmFtZTo6aXNOb25Db250cm9sT3BDb2RlKGZyYW1lLm9wQ29kZSkpIHsK
LSAgICAgICAgcmVzdWx0LT5mYWlsKCJSZWNlaXZlZCB1bmV4cGVjdGVkIGNvbXByZXNzZWQgZnJh
bWUiKTsKKyAgICAgICAgcmVzdWx0LT5mYWlsKCJSZWNlaXZlZCB1bmV4cGVjdGVkIGNvbXByZXNz
ZWQgZnJhbWUiX3MpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KICAgICBpZiAoIW1f
aW5mbGF0ZXItPmFkZEJ5dGVzKGZyYW1lLnBheWxvYWQsIGZyYW1lLnBheWxvYWRMZW5ndGgpIHx8
ICFtX2luZmxhdGVyLT5maW5pc2goKSkgewotICAgICAgICByZXN1bHQtPmZhaWwoIkZhaWxlZCB0
byBkZWNvbXByZXNzIGZyYW1lIik7CisgICAgICAgIHJlc3VsdC0+ZmFpbCgiRmFpbGVkIHRvIGRl
Y29tcHJlc3MgZnJhbWUiX3MpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KICAgICBm
cmFtZS5jb21wcmVzcyA9IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJzb2NrZXRzL1dlYlNvY2tldEV4dGVuc2lvbkRpc3BhdGNoZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEV4dGVuc2lvbkRpc3BhdGNoZXIuY3Bw
CmluZGV4IDdhZjJjMzc5MWEwYWU4ZDZlZTllOTI5OTgzNTdlODYwYWZiYjc1ZGQuLmU1Y2YxMjUx
MWVmM2U1NjRmNjNiODVkOGNiMGJiMWVlNDBjNWRhM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRFeHRlbnNpb25EaXNwYXRjaGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RXh0ZW5zaW9u
RGlzcGF0Y2hlci5jcHAKQEAgLTkzLDcgKzkzLDcgQEAgYm9vbCBXZWJTb2NrZXRFeHRlbnNpb25E
aXNwYXRjaGVyOjpwcm9jZXNzSGVhZGVyVmFsdWUoY29uc3QgU3RyaW5nJiBoZWFkZXJWYWx1ZSkK
IAogICAgIC8vIElmIHdlIGRvbid0IHNlbmQgU2VjLVdlYlNvY2tldC1FeHRlbnNpb25zIGhlYWRl
ciwgdGhlIHNlcnZlciBzaG91bGQgbm90IHJldHVybiB0aGUgaGVhZGVyLgogICAgIGlmICghbV9w
cm9jZXNzb3JzLnNpemUoKSkgewotICAgICAgICBmYWlsKCJSZWNlaXZlZCB1bmV4cGVjdGVkIFNl
Yy1XZWJTb2NrZXQtRXh0ZW5zaW9ucyBoZWFkZXIiKTsKKyAgICAgICAgZmFpbCgiUmVjZWl2ZWQg
dW5leHBlY3RlZCBTZWMtV2ViU29ja2V0LUV4dGVuc2lvbnMgaGVhZGVyIl9zKTsKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgIH0KIApAQCAtMTAzLDcgKzEwMyw3IEBAIGJvb2wgV2ViU29ja2V0
RXh0ZW5zaW9uRGlzcGF0Y2hlcjo6cHJvY2Vzc0hlYWRlclZhbHVlKGNvbnN0IFN0cmluZyYgaGVh
ZGVyVmFsdWUpCiAgICAgICAgIFN0cmluZyBleHRlbnNpb25Ub2tlbjsKICAgICAgICAgSGFzaE1h
cDxTdHJpbmcsIFN0cmluZz4gZXh0ZW5zaW9uUGFyYW1ldGVyczsKICAgICAgICAgaWYgKCFwYXJz
ZXIucGFyc2VFeHRlbnNpb24oZXh0ZW5zaW9uVG9rZW4sIGV4dGVuc2lvblBhcmFtZXRlcnMpKSB7
Ci0gICAgICAgICAgICBmYWlsKCJTZWMtV2ViU29ja2V0LUV4dGVuc2lvbnMgaGVhZGVyIGlzIGlu
dmFsaWQiKTsKKyAgICAgICAgICAgIGZhaWwoIlNlYy1XZWJTb2NrZXQtRXh0ZW5zaW9ucyBoZWFk
ZXIgaXMgaW52YWxpZCJfcyk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tl
dEZyYW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRG
cmFtZS5jcHAKaW5kZXggZTM5ZTAxOWFlMDJkOTY3MjM4Zjk2NTcyZDUzZWUyM2MzNDU2ZjIzMy4u
YmExZTYyNTQ5MTdhZmY0ZmE3YjgyYzY4ODRmZWIyYWM5MDcwZDNhZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEZyYW1lLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RnJhbWUuY3BwCkBAIC04
MiwxMSArODIsMTEgQEAgV2ViU29ja2V0RnJhbWU6OlBhcnNlRnJhbWVSZXN1bHQgV2ViU29ja2V0
RnJhbWU6OnBhcnNlRnJhbWUodWludDhfdCogZGF0YSwgc2l6ZV8KICAgICAgICAgICAgIHBheWxv
YWRMZW5ndGg2NCB8PSBzdGF0aWNfY2FzdDx1aW50OF90PigqcCsrKTsKICAgICAgICAgfQogICAg
ICAgICBpZiAoZXh0ZW5kZWRQYXlsb2FkTGVuZ3RoU2l6ZSA9PSAyICYmIHBheWxvYWRMZW5ndGg2
NCA8PSBtYXhQYXlsb2FkTGVuZ3RoV2l0aG91dEV4dGVuZGVkTGVuZ3RoRmllbGQpIHsKLSAgICAg
ICAgICAgIGVycm9yU3RyaW5nID0gIlRoZSBtaW5pbWFsIG51bWJlciBvZiBieXRlcyBNVVNUIGJl
IHVzZWQgdG8gZW5jb2RlIHRoZSBsZW5ndGgiOworICAgICAgICAgICAgZXJyb3JTdHJpbmcgPSAi
VGhlIG1pbmltYWwgbnVtYmVyIG9mIGJ5dGVzIE1VU1QgYmUgdXNlZCB0byBlbmNvZGUgdGhlIGxl
bmd0aCJfczsKICAgICAgICAgICAgIHJldHVybiBGcmFtZUVycm9yOwogICAgICAgICB9CiAgICAg
ICAgIGlmIChleHRlbmRlZFBheWxvYWRMZW5ndGhTaXplID09IDggJiYgcGF5bG9hZExlbmd0aDY0
IDw9IDB4RkZGRikgewotICAgICAgICAgICAgZXJyb3JTdHJpbmcgPSAiVGhlIG1pbmltYWwgbnVt
YmVyIG9mIGJ5dGVzIE1VU1QgYmUgdXNlZCB0byBlbmNvZGUgdGhlIGxlbmd0aCI7CisgICAgICAg
ICAgICBlcnJvclN0cmluZyA9ICJUaGUgbWluaW1hbCBudW1iZXIgb2YgYnl0ZXMgTVVTVCBiZSB1
c2VkIHRvIGVuY29kZSB0aGUgbGVuZ3RoIl9zOwogICAgICAgICAgICAgcmV0dXJuIEZyYW1lRXJy
b3I7CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnhyL1dlYlhSV2ViR0xMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhy
L1dlYlhSV2ViR0xMYXllci5jcHAKaW5kZXggODI2ZGUxNmE3MDY5MWQ0MjBjNTk0NjdkYzRhNzFk
ZWRmYjBiNjVjNi4uZDc0MGZiYjg4M2QyNThhZDFlNWRiN2Y2YmJmZDE2NjViNDQ5Yjk4OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUldlYkdMTGF5ZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJXZWJHTExheWVyLmNwcApA
QCAtNjQsNyArNjQsNyBAQCBzdGF0aWMgRXhjZXB0aW9uT3I8c3RkOjp1bmlxdWVfcHRyPFdlYlhS
T3BhcXVlRnJhbWVidWZmZXI+PiBjcmVhdGVPcGFxdWVGcmFtZWJ1ZgogewogICAgIGF1dG8gZGV2
aWNlID0gc2Vzc2lvbi5kZXZpY2UoKTsKICAgICBpZiAoIWRldmljZSkKLSAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IE9wZXJhdGlvbkVycm9yLCAiQ2Fubm90IGNyZWF0ZSBhbiBYUldlYkdMTGF5
ZXIgd2l0aCBhbiBYUlNlc3Npb24gdGhhdCBoYXMgZW5kZWQuIiB9OworICAgICAgICByZXR1cm4g
RXhjZXB0aW9uIHsgT3BlcmF0aW9uRXJyb3IsICJDYW5ub3QgY3JlYXRlIGFuIFhSV2ViR0xMYXll
ciB3aXRoIGFuIFhSU2Vzc2lvbiB0aGF0IGhhcyBlbmRlZC4iX3MgfTsKIAogICAgIC8vIDkuMS4g
SW5pdGlhbGl6ZSBsYXllcuKAmXMgYW50aWFsaWFzIHRvIGxheWVySW5pdOKAmXMgYW50aWFsaWFz
IHZhbHVlLgogICAgIC8vIDkuMi4gTGV0IGZyYW1lYnVmZmVyU2l6ZSBiZSB0aGUgcmVjb21tZW5k
ZWQgV2ViR0wgZnJhbWVidWZmZXIgcmVzb2x1dGlvbiBtdWx0aXBsaWVkIGJ5IGxheWVySW5pdCdz
IGZyYW1lYnVmZmVyU2NhbGVGYWN0b3IuCkBAIC04Miw3ICs4Miw3IEBAIHN0YXRpYyBFeGNlcHRp
b25PcjxzdGQ6OnVuaXF1ZV9wdHI8V2ViWFJPcGFxdWVGcmFtZWJ1ZmZlcj4+IGNyZWF0ZU9wYXF1
ZUZyYW1lYnVmCiAgICAgLy8gOS41LiBJZiBsYXllcuKAmXMgcmVzb3VyY2VzIHdlcmUgdW5hYmxl
IHRvIGJlIGNyZWF0ZWQgZm9yIGFueSByZWFzb24sIHRocm93IGFuIE9wZXJhdGlvbkVycm9yIGFu
ZCBhYm9ydCB0aGVzZSBzdGVwcy4KICAgICBhdXRvIGxheWVySGFuZGxlID0gZGV2aWNlLT5jcmVh
dGVMYXllclByb2plY3Rpb24od2lkdGgsIGhlaWdodCwgaW5pdC5hbHBoYSk7CiAgICAgaWYgKCFs
YXllckhhbmRsZSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE9wZXJhdGlvbkVycm9yLCAi
VW5hYmxlIHRvIGFsbG9jYXRlIFhSV2ViR0xMYXllciBHUFUgcmVzb3VyY2VzLiJ9OworICAgICAg
ICByZXR1cm4gRXhjZXB0aW9uIHsgT3BlcmF0aW9uRXJyb3IsICJVbmFibGUgdG8gYWxsb2NhdGUg
WFJXZWJHTExheWVyIEdQVSByZXNvdXJjZXMuIl9zIH07CiAKICAgICBXZWJYUk9wYXF1ZUZyYW1l
YnVmZmVyOjpBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMgewogICAgICAgICAuYWxwaGEgPSBpbml0LmFs
cGhhLApAQCAtOTMsNyArOTMsNyBAQCBzdGF0aWMgRXhjZXB0aW9uT3I8c3RkOjp1bmlxdWVfcHRy
PFdlYlhST3BhcXVlRnJhbWVidWZmZXI+PiBjcmVhdGVPcGFxdWVGcmFtZWJ1ZgogCiAgICAgYXV0
byBmcmFtZWJ1ZmZlciA9IFdlYlhST3BhcXVlRnJhbWVidWZmZXI6OmNyZWF0ZSgqbGF5ZXJIYW5k
bGUsIGNvbnRleHQsIFdURk1vdmUoYXR0cmlidXRlcyksIHdpZHRoLCBoZWlnaHQpOwogICAgIGlm
ICghZnJhbWVidWZmZXIpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBPcGVyYXRpb25FcnJv
ciwgIlVuYWJsZSB0byBjcmVhdGUgYSBmcmFtZWJ1ZmZlci4iIH07CisgICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBPcGVyYXRpb25FcnJvciwgIlVuYWJsZSB0byBjcmVhdGUgYSBmcmFtZWJ1ZmZl
ci4iX3MgfTsKICAgICAKICAgICByZXR1cm4gZnJhbWVidWZmZXI7CiB9CkBAIC0xMDQsNyArMTA0
LDcgQEAgRXhjZXB0aW9uT3I8UmVmPFdlYlhSV2ViR0xMYXllcj4+IFdlYlhSV2ViR0xMYXllcjo6
Y3JlYXRlKFJlZjxXZWJYUlNlc3Npb24+JiYgc2UKICAgICAvLyAxLiBMZXQgbGF5ZXIgYmUgYSBu
ZXcgWFJXZWJHTExheWVyCiAgICAgLy8gMi4gSWYgc2Vzc2lvbuKAmXMgZW5kZWQgdmFsdWUgaXMg
dHJ1ZSwgdGhyb3cgYW4gSW52YWxpZFN0YXRlRXJyb3IgYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgog
ICAgIGlmIChzZXNzaW9uLT5lbmRlZCgpKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52
YWxpZFN0YXRlRXJyb3IsICJDYW5ub3QgY3JlYXRlIGFuIFhSV2ViR0xMYXllciB3aXRoIGFuIFhS
U2Vzc2lvbiB0aGF0IGhhcyBlbmRlZC4iIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJ
bnZhbGlkU3RhdGVFcnJvciwgIkNhbm5vdCBjcmVhdGUgYW4gWFJXZWJHTExheWVyIHdpdGggYW4g
WFJTZXNzaW9uIHRoYXQgaGFzIGVuZGVkLiJfcyB9OwogCiAgICAgLy8gMy4gSWYgY29udGV4dCBp
cyBsb3N0LCB0aHJvdyBhbiBJbnZhbGlkU3RhdGVFcnJvciBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMu
CiAgICAgLy8gNC4gSWYgc2Vzc2lvbiBpcyBhbiBpbW1lcnNpdmUgc2Vzc2lvbiBhbmQgY29udGV4
dOKAmXMgWFIgY29tcGF0aWJsZSBib29sZWFuIGlzIGZhbHNlLCB0aHJvdwpAQCAtMTEzLDExICsx
MTMsMTEgQEAgRXhjZXB0aW9uT3I8UmVmPFdlYlhSV2ViR0xMYXllcj4+IFdlYlhSV2ViR0xMYXll
cjo6Y3JlYXRlKFJlZjxXZWJYUlNlc3Npb24+JiYgc2UKICAgICAgICAgWyZdKGNvbnN0IFJlZlB0
cjxXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlPiYgYmFzZUNvbnRleHQpIC0+IEV4Y2VwdGlvbk9y
PFJlZjxXZWJYUldlYkdMTGF5ZXI+PgogICAgICAgICB7CiAgICAgICAgICAgICBpZiAoYmFzZUNv
bnRleHQtPmlzQ29udGV4dExvc3QoKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9u
IHsgSW52YWxpZFN0YXRlRXJyb3IsICJDYW5ub3QgY3JlYXRlIGFuIFhSV2ViR0xMYXllciB3aXRo
IGEgbG9zdCBXZWJHTCBjb250ZXh0LiIgfTsKKyAgICAgICAgICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJDYW5ub3QgY3JlYXRlIGFuIFhSV2ViR0xMYXllciB3
aXRoIGEgbG9zdCBXZWJHTCBjb250ZXh0LiJfcyB9OwogCiAgICAgICAgICAgICBhdXRvIG1vZGUg
PSBzZXNzaW9uLT5tb2RlKCk7CiAgICAgICAgICAgICBpZiAoKG1vZGUgPT0gWFJTZXNzaW9uTW9k
ZTo6SW1tZXJzaXZlQXIgfHwgbW9kZSA9PSBYUlNlc3Npb25Nb2RlOjpJbW1lcnNpdmVWcikgJiYg
IWJhc2VDb250ZXh0LT5pc1hSQ29tcGF0aWJsZSgpKQotICAgICAgICAgICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkNhbm5vdCBjcmVhdGUgYW4gWFJXZWJHTExh
eWVyIHdpdGggV2ViR0wgY29udGV4dCBub3QgbWFya2VkIGFzIFhSIGNvbXBhdGlibGUuIiB9Owor
ICAgICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkNh
bm5vdCBjcmVhdGUgYW4gWFJXZWJHTExheWVyIHdpdGggV2ViR0wgY29udGV4dCBub3QgbWFya2Vk
IGFzIFhSIGNvbXBhdGlibGUuIl9zIH07CiAKIAogICAgICAgICAgICAgLy8gNS4gSW5pdGlhbGl6
ZSBsYXllcuKAmXMgY29udGV4dCB0byBjb250ZXh0LiAoc2VlIGNvbnN0cnVjdG9yKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWEltYWdlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhJbWFnZS5jcHAKaW5kZXggNzVmZWE4YjE1MmIxNmU2OTVk
NjRlMjk5MmQ5MzgzYTg2Y2ZlMjJkYS4uMjYzYjc5NjkwYjk3MjkzNzAyNTc5Y2YwZDBlNzgyODBk
MmZmZjdiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWEltYWdl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYSW1hZ2UuY3BwCkBAIC01
Nyw3ICs1Nyw3IEBAIEFjY2Vzc2liaWxpdHlSb2xlIEFYSW1hZ2U6OnJvbGVWYWx1ZSgpIGNvbnN0
CiAKIHN0ZDo6b3B0aW9uYWw8QVhDb3JlT2JqZWN0OjpBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0
b3I+IEFYSW1hZ2U6OmltYWdlT3ZlcmxheUVsZW1lbnRzKCkKIHsKLSAgICBBWFRSQUNFKCJBWElt
YWdlOjppbWFnZU92ZXJsYXlFbGVtZW50cyIpOworICAgIEFYVFJBQ0UoIkFYSW1hZ2U6OmltYWdl
T3ZlcmxheUVsZW1lbnRzIl9zKTsKIAogICAgIGF1dG8mIGNoaWxkcmVuID0gdGhpcy0+Y2hpbGRy
ZW4oKTsKICAgICBpZiAoY2hpbGRyZW4uc2l6ZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BWExvZ2dlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FYTG9nZ2VyLmNwcAppbmRleCAwYjZjY2QzYjdlOTI4Y2U4NzgwYmRjN2YyMWIwOGU3M2U2
NDI5ZTMzLi45NDE0NjE4MmE1YWJkZGIyYzkwZTYxNjFiMGZkZmEwZjZjM2VlNTRkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYTG9nZ2VyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYTG9nZ2VyLmNwcApAQCAtNTUsNyArNTUsNyBAQCBz
dGF0aWMgYm9vbCBzaG91bGRMb2coKQogQVhMb2dnZXI6OkFYTG9nZ2VyKGNvbnN0IFN0cmluZyYg
bWV0aG9kTmFtZSkKICAgICA6IG1fbWV0aG9kTmFtZShtZXRob2ROYW1lKQogewotICAgIGlmIChh
dXRvKiBjaGFubmVsID0gZ2V0TG9nQ2hhbm5lbCgiQWNjZXNzaWJpbGl0eSIpKQorICAgIGlmIChh
dXRvKiBjaGFubmVsID0gZ2V0TG9nQ2hhbm5lbCgiQWNjZXNzaWJpbGl0eSJfcykpCiAgICAgICAg
IGNoYW5uZWwtPmxldmVsID0gV1RGTG9nTGV2ZWw6OkRlYnVnOwogCiAgICAgaWYgKHNob3VsZExv
ZygpKSB7CkBAIC03OCw2ICs3OCwxMiBAQCB2b2lkIEFYTG9nZ2VyOjpsb2coY29uc3QgU3RyaW5n
JiBtZXNzYWdlKQogICAgICAgICBMT0coQWNjZXNzaWJpbGl0eSwgIiVzIiwgbWVzc2FnZS51dGY4
KCkuZGF0YSgpKTsKIH0KIAordm9pZCBBWExvZ2dlcjo6bG9nKGNvbnN0IGNoYXIqIG1lc3NhZ2Up
Cit7CisgICAgaWYgKHNob3VsZExvZygpKQorICAgICAgICBMT0coQWNjZXNzaWJpbGl0eSwgIiVz
IiwgbWVzc2FnZSk7Cit9CisKIHZvaWQgQVhMb2dnZXI6OmxvZyhSZWZQdHI8QVhDb3JlT2JqZWN0
PiBvYmplY3QpCiB7CiAgICAgaWYgKHNob3VsZExvZygpKSB7CkBAIC0zMjgsMTUgKzMzNCwxNSBA
QCBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHN0cmVhbSwgQWNjZXNzaWJpbGl0
eVNlYXJjaEtleSBzZWFyY2hLZXkpCiBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0m
IHN0cmVhbSwgY29uc3QgQWNjZXNzaWJpbGl0eVNlYXJjaENyaXRlcmlhJiBjcml0ZXJpYSkKIHsK
ICAgICBUZXh0U3RyZWFtOjpHcm91cFNjb3BlIGdyb3VwU2NvcGUoc3RyZWFtKTsKLSAgICBhdXRv
IHN0cmVhbUNyaXRlcmlhT2JqZWN0ID0gWyZzdHJlYW1dIChTdHJpbmcgb2JqZWN0TGFiZWwsIGF1
dG8qIGF4T2JqZWN0KSB7CisgICAgYXV0byBzdHJlYW1Dcml0ZXJpYU9iamVjdCA9IFsmc3RyZWFt
XSAoQVNDSUlMaXRlcmFsIG9iamVjdExhYmVsLCBhdXRvKiBheE9iamVjdCkgewogICAgICAgICBz
dHJlYW0uc3RhcnRHcm91cCgpOwotICAgICAgICBzdHJlYW0gPDwgb2JqZWN0TGFiZWwgPDwgIiAi
IDw8IGF4T2JqZWN0IDw8ICIsIElEICIgPDwgKGF4T2JqZWN0ID8gYXhPYmplY3QtPm9iamVjdElE
KCkgOiBBWElEKCkpOworICAgICAgICBzdHJlYW0gPDwgb2JqZWN0TGFiZWwuY2hhcmFjdGVycygp
IDw8ICIgIiA8PCBheE9iamVjdCA8PCAiLCBJRCAiIDw8IChheE9iamVjdCA/IGF4T2JqZWN0LT5v
YmplY3RJRCgpIDogQVhJRCgpKTsKICAgICAgICAgc3RyZWFtLmVuZEdyb3VwKCk7CiAgICAgfTsK
IAogICAgIHN0cmVhbSA8PCAiU2VhcmNoQ3JpdGVyaWEgIiA8PCAmY3JpdGVyaWE7Ci0gICAgc3Ry
ZWFtQ3JpdGVyaWFPYmplY3QoImFuY2hvck9iamVjdCIsIGNyaXRlcmlhLmFuY2hvck9iamVjdCk7
Ci0gICAgc3RyZWFtQ3JpdGVyaWFPYmplY3QoInN0YXJ0T2JqZWN0IiwgY3JpdGVyaWEuc3RhcnRP
YmplY3QpOworICAgIHN0cmVhbUNyaXRlcmlhT2JqZWN0KCJhbmNob3JPYmplY3QiX3MsIGNyaXRl
cmlhLmFuY2hvck9iamVjdCk7CisgICAgc3RyZWFtQ3JpdGVyaWFPYmplY3QoInN0YXJ0T2JqZWN0
Il9zLCBjcml0ZXJpYS5zdGFydE9iamVjdCk7CiAgICAgc3RyZWFtLmR1bXBQcm9wZXJ0eSgic2Vh
cmNoRGlyZWN0aW9uIiwgY3JpdGVyaWEuc2VhcmNoRGlyZWN0aW9uKTsKIAogICAgIHN0cmVhbS5u
ZXh0TGluZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWExv
Z2dlci5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWExvZ2dlci5oCmluZGV4IGVh
ODkyZjJmOTY2YzU0ZGMwY2VjZTFkYTc5Mjg0ZTc5ODFhMGM5NTYuLmQxZmJhZmIxN2NiYmVjMzI0
YWUyMGI5ZjE2Y2MwMmY3MGNhMDVmMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQVhMb2dnZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FY
TG9nZ2VyLmgKQEAgLTQzLDYgKzQzLDcgQEAgcHVibGljOgogICAgIEFYTG9nZ2VyKGNvbnN0IFN0
cmluZyYgbWV0aG9kTmFtZSk7CiAgICAgfkFYTG9nZ2VyKCk7CiAgICAgc3RhdGljIHZvaWQgbG9n
KGNvbnN0IFN0cmluZyYpOworICAgIHN0YXRpYyB2b2lkIGxvZyhjb25zdCBjaGFyKik7CiAgICAg
c3RhdGljIHZvaWQgbG9nKFJlZlB0cjxBWENvcmVPYmplY3Q+KTsKICAgICBzdGF0aWMgdm9pZCBs
b2coY29uc3QgVmVjdG9yPFJlZlB0cjxBWENvcmVPYmplY3Q+PiYpOwogICAgIHN0YXRpYyB2b2lk
IGxvZyhjb25zdCBzdGQ6OnBhaXI8UmVmUHRyPEFYQ29yZU9iamVjdD4sIEFYT2JqZWN0Q2FjaGU6
OkFYTm90aWZpY2F0aW9uPiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BWE9iamVjdENhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhP
YmplY3RDYWNoZS5jcHAKaW5kZXggNzcyMmM2ZDBkMjk3OTk5ZTJjNTk5NmZjMmFkMDhlYjkyMGIw
MmM4YS4uNTNjYzA3ZjQwMDFmYWI3MjgyNGIyZDE5ZDFlZmYwNjYyOTdhOWFmNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCkBAIC0yNTIsNyAr
MjUyLDcgQEAgQVhPYmplY3RDYWNoZTo6fkFYT2JqZWN0Q2FjaGUoKQogCiBib29sIEFYT2JqZWN0
Q2FjaGU6OmlzTW9kYWxFbGVtZW50KEVsZW1lbnQmIGVsZW1lbnQpIGNvbnN0CiB7Ci0gICAgYm9v
bCBoYXNEaWFsb2dSb2xlID0gbm9kZUhhc1JvbGUoJmVsZW1lbnQsICJkaWFsb2ciKSB8fCBub2Rl
SGFzUm9sZSgmZWxlbWVudCwgImFsZXJ0ZGlhbG9nIik7CisgICAgYm9vbCBoYXNEaWFsb2dSb2xl
ID0gbm9kZUhhc1JvbGUoJmVsZW1lbnQsICJkaWFsb2ciX3MpIHx8IG5vZGVIYXNSb2xlKCZlbGVt
ZW50LCAiYWxlcnRkaWFsb2ciX3MpOwogICAgIGJvb2wgaXNBcmlhTW9kYWwgPSBlcXVhbExldHRl
cnNJZ25vcmluZ0FTQ0lJQ2FzZShlbGVtZW50LmF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRp
b24oYXJpYV9tb2RhbEF0dHIpLCAidHJ1ZSIpOwogCiAgICAgcmV0dXJuIChoYXNEaWFsb2dSb2xl
ICYmIGlzQXJpYU1vZGFsKSB8fCAoaXM8SFRNTERpYWxvZ0VsZW1lbnQ+KGVsZW1lbnQpICYmIGRv
d25jYXN0PEhUTUxEaWFsb2dFbGVtZW50PihlbGVtZW50KS5pc01vZGFsKCkpOwpAQCAtNTYwLDIy
ICs1NjAsMjIgQEAgc3RhdGljIFJlZjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiBjcmVhdGVGcm9tUmVu
ZGVyZXIoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKIAogICAgIC8vIElmIHRoZSBub2RlIGlzIGFy
aWEgcm9sZT0ibGlzdCIgb3IgdGhlIGFyaWEgcm9sZSBpcyBlbXB0eSBhbmQgaXRzIGEKICAgICAv
LyB1bC9vbC9kbCB0eXBlIChpdCBzaG91bGRuJ3QgYmUgYSBsaXN0IGlmIGFyaWEgc2F5cyBvdGhl
cndpc2UpLgotICAgIGlmIChub2RlICYmICgobm9kZUhhc1JvbGUobm9kZSwgImxpc3QiKSB8fCBu
b2RlSGFzUm9sZShub2RlLCAiZGlyZWN0b3J5IikpCisgICAgaWYgKG5vZGUgJiYgKChub2RlSGFz
Um9sZShub2RlLCAibGlzdCJfcykgfHwgbm9kZUhhc1JvbGUobm9kZSwgImRpcmVjdG9yeSJfcykp
CiAgICAgICAgICAgICAgICAgICAgICAgfHwgKG5vZGVIYXNSb2xlKG5vZGUsIG51bGxBdG9tKCkp
ICYmIChub2RlLT5oYXNUYWdOYW1lKHVsVGFnKSB8fCBub2RlLT5oYXNUYWdOYW1lKG9sVGFnKSB8
fCBub2RlLT5oYXNUYWdOYW1lKGRsVGFnKSkpKSkKICAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxp
dHlMaXN0OjpjcmVhdGUocmVuZGVyZXIpOwogCiAgICAgLy8gYXJpYSB0YWJsZXMKLSAgICBpZiAo
bm9kZUhhc1JvbGUobm9kZSwgImdyaWQiKSB8fCBub2RlSGFzUm9sZShub2RlLCAidHJlZWdyaWQi
KSB8fCBub2RlSGFzUm9sZShub2RlLCAidGFibGUiKSkKKyAgICBpZiAobm9kZUhhc1JvbGUobm9k
ZSwgImdyaWQiX3MpIHx8IG5vZGVIYXNSb2xlKG5vZGUsICJ0cmVlZ3JpZCJfcykgfHwgbm9kZUhh
c1JvbGUobm9kZSwgInRhYmxlIl9zKSkKICAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlBUklB
R3JpZDo6Y3JlYXRlKHJlbmRlcmVyKTsKLSAgICBpZiAobm9kZUhhc1JvbGUobm9kZSwgInJvdyIp
KQorICAgIGlmIChub2RlSGFzUm9sZShub2RlLCAicm93Il9zKSkKICAgICAgICAgcmV0dXJuIEFj
Y2Vzc2liaWxpdHlBUklBR3JpZFJvdzo6Y3JlYXRlKHJlbmRlcmVyKTsKLSAgICBpZiAobm9kZUhh
c1JvbGUobm9kZSwgImdyaWRjZWxsIikgfHwgbm9kZUhhc1JvbGUobm9kZSwgImNlbGwiKSB8fCBu
b2RlSGFzUm9sZShub2RlLCAiY29sdW1uaGVhZGVyIikgfHwgbm9kZUhhc1JvbGUobm9kZSwgInJv
d2hlYWRlciIpKQorICAgIGlmIChub2RlSGFzUm9sZShub2RlLCAiZ3JpZGNlbGwiX3MpIHx8IG5v
ZGVIYXNSb2xlKG5vZGUsICJjZWxsIl9zKSB8fCBub2RlSGFzUm9sZShub2RlLCAiY29sdW1uaGVh
ZGVyIl9zKSB8fCBub2RlSGFzUm9sZShub2RlLCAicm93aGVhZGVyIl9zKSkKICAgICAgICAgcmV0
dXJuIEFjY2Vzc2liaWxpdHlBUklBR3JpZENlbGw6OmNyZWF0ZShyZW5kZXJlcik7CiAKICAgICAv
LyBhcmlhIHRyZWUKLSAgICBpZiAobm9kZUhhc1JvbGUobm9kZSwgInRyZWUiKSkKKyAgICBpZiAo
bm9kZUhhc1JvbGUobm9kZSwgInRyZWUiX3MpKQogICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0
eVRyZWU6OmNyZWF0ZShyZW5kZXJlcik7Ci0gICAgaWYgKG5vZGVIYXNSb2xlKG5vZGUsICJ0cmVl
aXRlbSIpKQorICAgIGlmIChub2RlSGFzUm9sZShub2RlLCAidHJlZWl0ZW0iX3MpKQogICAgICAg
ICByZXR1cm4gQWNjZXNzaWJpbGl0eVRyZWVJdGVtOjpjcmVhdGUocmVuZGVyZXIpOwogCiAgICAg
aWYgKG5vZGUgJiYgaXM8SFRNTExhYmVsRWxlbWVudD4obm9kZSkgJiYgbm9kZUhhc1JvbGUobm9k
ZSwgbnVsbEF0b20oKSkpCkBAIC04NjUsNyArODY1LDcgQEAgQWNjZXNzaWJpbGl0eU9iamVjdCog
QVhPYmplY3RDYWNoZTo6Y3JlYXRlKEFjY2Vzc2liaWxpdHlSb2xlIHJvbGUpCiAKIHZvaWQgQVhP
YmplY3RDYWNoZTo6cmVtb3ZlKEFYSUQgYXhJRCkKIHsKLSAgICBBWFRSQUNFKCJBWE9iamVjdENh
Y2hlOjpyZW1vdmUiKTsKKyAgICBBWFRSQUNFKCJBWE9iamVjdENhY2hlOjpyZW1vdmUiX3MpOwog
ICAgIEFYTE9HKG1ha2VTdHJpbmcoIkFYSUQgIiwgYXhJRC5sb2dnaW5nU3RyaW5nKCkpKTsKIAog
ICAgIGlmICghYXhJRCkKQEAgLTk3Nyw3ICs5NzcsNyBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnRl
eHRDaGFuZ2VkKE5vZGUqIG5vZGUpCiAKIHZvaWQgQVhPYmplY3RDYWNoZTo6dGV4dENoYW5nZWQo
QWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0KQogewotICAgIEFYVFJBQ0UoIkFYT2JqZWN0Q2Fj
aGU6OnRleHRDaGFuZ2VkIik7CisgICAgQVhUUkFDRSgiQVhPYmplY3RDYWNoZTo6dGV4dENoYW5n
ZWQiX3MpOwogICAgIEFYTE9HKG9iamVjdCk7CiAKICAgICBpZiAoIW9iamVjdCkKQEAgLTEwODIs
NyArMTA4Miw3IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlQ2hpbGRyZW5DaGFuZ2VkKEFj
Y2Vzc2liaWxpdHlPYmplY3QmIG9iamVjdCkKIAogdm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVN
ZW51T3BlbmVkKE5vZGUqIG5vZGUpCiB7Ci0gICAgaWYgKCFub2RlIHx8ICFub2RlLT5yZW5kZXJl
cigpIHx8ICFub2RlSGFzUm9sZShub2RlLCAibWVudSIpKQorICAgIGlmICghbm9kZSB8fCAhbm9k
ZS0+cmVuZGVyZXIoKSB8fCAhbm9kZUhhc1JvbGUobm9kZSwgIm1lbnUiX3MpKQogICAgICAgICBy
ZXR1cm47CiAgICAgCiAgICAgcG9zdE5vdGlmaWNhdGlvbihnZXRPckNyZWF0ZShub2RlKSwgJmRv
Y3VtZW50KCksIEFYTWVudU9wZW5lZCk7CkBAIC0xMTM0LDcgKzExMzQsNyBAQCB2b2lkIEFYT2Jq
ZWN0Q2FjaGU6OmNoaWxkcmVuQ2hhbmdlZChBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3QpCiAK
IHZvaWQgQVhPYmplY3RDYWNoZTo6bm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQoKQogewotICAg
IEFYVFJBQ0UoIkFYT2JqZWN0Q2FjaGU6Om5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkIik7Cisg
ICAgQVhUUkFDRSgiQVhPYmplY3RDYWNoZTo6bm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQiX3Mp
OwogICAgIC8vIER1cmluZyBMYXlvdXRUZXN0cywgYWNjZXNzaWJpbGl0eSBtYXkgYmUgZGlzYWJs
ZWQgYmV0d2VlbiB0aGUgdGltZSB0aGUgbm90aWZpY2F0aW9ucyBhcmUgcXVldWVkIGFuZCB0aGUg
dGltZXIgZmlyZXMuCiAgICAgLy8gVGh1cyBjaGVjayBoZXJlIGFuZCByZXR1cm4gaWYgYWNjZXNz
aWJpbGl0eSBpcyBkaXNhYmxlZC4KICAgICBpZiAoIWFjY2Vzc2liaWxpdHlFbmFibGVkKCkpCkBA
IC0xMTk1LDcgKzExOTUsNyBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBhc3N3b3JkTm90aWZpY2F0
aW9uUG9zdFRpbWVyRmlyZWQoKQogICAgIGF1dG8gbm90aWZpY2F0aW9ucyA9IHN0ZDo6ZXhjaGFu
Z2UobV9wYXNzd29yZE5vdGlmaWNhdGlvbnNUb1Bvc3QsIHsgfSk7CiAKICAgICBmb3IgKGF1dG8m
IG5vdGlmaWNhdGlvbiA6IG5vdGlmaWNhdGlvbnMpCi0gICAgICAgIHBvc3RUZXh0U3RhdGVDaGFu
Z2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihub3RpZmljYXRpb24uZ2V0KCksIEFYVGV4dEVkaXRUeXBl
SW5zZXJ0LCAiICIsIFZpc2libGVQb3NpdGlvbigpKTsKKyAgICAgICAgcG9zdFRleHRTdGF0ZUNo
YW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbi5nZXQoKSwgQVhUZXh0RWRpdFR5
cGVJbnNlcnQsICIgIl9zLCBWaXNpYmxlUG9zaXRpb24oKSk7CiAjZW5kaWYKIH0KIApAQCAtMTI0
Myw3ICsxMjQzLDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0aW9uKE5vZGUq
IG5vZGUsIEFYTm90aWZpY2F0aW9uIG5vdGlmaWNhdGlvbiwgUG8KIAogdm9pZCBBWE9iamVjdENh
Y2hlOjpwb3N0Tm90aWZpY2F0aW9uKEFYQ29yZU9iamVjdCogb2JqZWN0LCBEb2N1bWVudCogZG9j
dW1lbnQsIEFYTm90aWZpY2F0aW9uIG5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCBwb3N0VGFyZ2V0
KQogewotICAgIEFYVFJBQ0UoIkFYT2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24iKTsKKyAg
ICBBWFRSQUNFKCJBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0aW9uIl9zKTsKICAgICBBWExP
RyhzdGQ6Om1ha2VfcGFpcihvYmplY3QsIG5vdGlmaWNhdGlvbikpOwogICAgIEFTU0VSVChpc01h
aW5UaHJlYWQoKSk7CiAKQEAgLTEyNzMsNyArMTI3Myw3IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6
aGFuZGxlTWVudUl0ZW1TZWxlY3RlZChOb2RlKiBub2RlKQogICAgIGlmICghbm9kZSkKICAgICAg
ICAgcmV0dXJuOwogICAgIAotICAgIGlmICghbm9kZUhhc1JvbGUobm9kZSwgIm1lbnVpdGVtIikg
JiYgIW5vZGVIYXNSb2xlKG5vZGUsICJtZW51aXRlbXJhZGlvIikgJiYgIW5vZGVIYXNSb2xlKG5v
ZGUsICJtZW51aXRlbWNoZWNrYm94IikpCisgICAgaWYgKCFub2RlSGFzUm9sZShub2RlLCAibWVu
dWl0ZW0iX3MpICYmICFub2RlSGFzUm9sZShub2RlLCAibWVudWl0ZW1yYWRpbyJfcykgJiYgIW5v
ZGVIYXNSb2xlKG5vZGUsICJtZW51aXRlbWNoZWNrYm94Il9zKSkKICAgICAgICAgcmV0dXJuOwog
ICAgIAogICAgIGlmICghZG93bmNhc3Q8RWxlbWVudD4oKm5vZGUpLmZvY3VzZWQoKSAmJiAhZXF1
YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoZG93bmNhc3Q8RWxlbWVudD4oKm5vZGUpLmF0dHJp
YnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oYXJpYV9zZWxlY3RlZEF0dHIpLCAidHJ1ZSIpKQpA
QCAtMTM0Nyw4ICsxMzQ3LDggQEAgdm9pZCBBWE9iamVjdENhY2hlOjpzZWxlY3RlZFN0YXRlQ2hh
bmdlZChOb2RlKiBub2RlKQogewogICAgIC8vIEZvciBhIHRhYmxlIGNlbGwsIHBvc3QgQVhTZWxl
Y3RlZFN0YXRlQ2hhbmdlZCBvbiB0aGUgY2VsbCBpdHNlbGYuCiAgICAgLy8gRm9yIGFueSBvdGhl
ciBlbGVtZW50LCBwb3N0IEFYU2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQgb24gdGhlIHBhcmVudC4K
LSAgICBpZiAobm9kZUhhc1JvbGUobm9kZSwgImdyaWRjZWxsIikgfHwgbm9kZUhhc1JvbGUobm9k
ZSwgImNlbGwiKQotICAgICAgICB8fCBub2RlSGFzUm9sZShub2RlLCAiY29sdW1uaGVhZGVyIikg
fHwgbm9kZUhhc1JvbGUobm9kZSwgInJvd2hlYWRlciIpKQorICAgIGlmIChub2RlSGFzUm9sZShu
b2RlLCAiZ3JpZGNlbGwiX3MpIHx8IG5vZGVIYXNSb2xlKG5vZGUsICJjZWxsIl9zKQorICAgICAg
ICB8fCBub2RlSGFzUm9sZShub2RlLCAiY29sdW1uaGVhZGVyIl9zKSB8fCBub2RlSGFzUm9sZShu
b2RlLCAicm93aGVhZGVyIl9zKSkKICAgICAgICAgcG9zdE5vdGlmaWNhdGlvbihub2RlLCBBWFNl
bGVjdGVkU3RhdGVDaGFuZ2VkKTsKICAgICBlbHNlCiAgICAgICAgIHNlbGVjdGVkQ2hpbGRyZW5D
aGFuZ2VkKG5vZGUpOwpAQCAtMTU0Miw3ICsxNTQyLDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpw
b3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKGNvbnN0IFBvc2l0aW9uJiBwb3NpdGlvbiwg
Y28KIAogdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9u
KEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCwgY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJbnRl
bnQmIGludGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uKQogewotICAgIEFY
VFJBQ0UoIkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24iKTsK
KyAgICBBWFRSQUNFKCJBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0
aW9uIl9zKTsKICAgICBzdG9wQ2FjaGluZ0NvbXB1dGVkT2JqZWN0QXR0cmlidXRlcygpOwogCiAj
aWYgUExBVEZPUk0oQ09DT0EpIHx8IFVTRShBVFNQSSkKQEAgLTE1NzQsNyArMTU3NCw3IEBAIHZv
aWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihBY2Nlc3Np
YmlsaXR5T2JqZWN0KiBvYmplY3QsCiAKIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0
ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiBub2RlLCBBWFRleHRFZGl0VHlwZSB0eXBlLCBjb25z
dCBTdHJpbmcmIHRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCiB7Ci0gICAg
QVhUUkFDRSgiQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbiIp
OworICAgIEFYVFJBQ0UoIkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmlj
YXRpb24iX3MpOwogICAgIGlmICghbm9kZSB8fCB0eXBlID09IEFYVGV4dEVkaXRUeXBlVW5rbm93
bikKICAgICAgICAgcmV0dXJuOwogCkBAIC0xOTEyLDcgKzE5MTIsNyBAQCB2b2lkIEFYT2JqZWN0
Q2FjaGU6OmhhbmRsZUF0dHJpYnV0ZUNoYW5nZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRyTmFt
ZSwgRWxlbWVudAogCiB2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZU1vZGFsQ2hhbmdlKEVsZW1l
bnQmIGVsZW1lbnQpCiB7Ci0gICAgaWYgKCFpczxIVE1MRGlhbG9nRWxlbWVudD4oZWxlbWVudCkg
JiYgIW5vZGVIYXNSb2xlKCZlbGVtZW50LCAiZGlhbG9nIikgJiYgIW5vZGVIYXNSb2xlKCZlbGVt
ZW50LCAiYWxlcnRkaWFsb2ciKSkKKyAgICBpZiAoIWlzPEhUTUxEaWFsb2dFbGVtZW50PihlbGVt
ZW50KSAmJiAhbm9kZUhhc1JvbGUoJmVsZW1lbnQsICJkaWFsb2ciX3MpICYmICFub2RlSGFzUm9s
ZSgmZWxlbWVudCwgImFsZXJ0ZGlhbG9nIl9zKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgc3Rv
cENhY2hpbmdDb21wdXRlZE9iamVjdEF0dHJpYnV0ZXMoKTsKQEAgLTMyNzcsNyArMzI3Nyw3IEBA
IHZvaWQgQVhPYmplY3RDYWNoZTo6cHJvY2Vzc0RlZmVycmVkQ2hpbGRyZW5DaGFuZ2VkTGlzdCgp
CiAKIHZvaWQgQVhPYmplY3RDYWNoZTo6cGVyZm9ybURlZmVycmVkQ2FjaGVVcGRhdGUoKQogewot
ICAgIEFYVFJBQ0UoIkFYT2JqZWN0Q2FjaGU6OnBlcmZvcm1EZWZlcnJlZENhY2hlVXBkYXRlIik7
CisgICAgQVhUUkFDRSgiQVhPYmplY3RDYWNoZTo6cGVyZm9ybURlZmVycmVkQ2FjaGVVcGRhdGUi
X3MpOwogICAgIGlmIChtX3BlcmZvcm1pbmdEZWZlcnJlZENhY2hlVXBkYXRlKQogICAgICAgICBy
ZXR1cm47CiAgICAgU2V0Rm9yU2NvcGUgcGVyZm9ybWluZ0RlZmVycmVkQ2FjaGVVcGRhdGUobV9w
ZXJmb3JtaW5nRGVmZXJyZWRDYWNoZVVwZGF0ZSwgdHJ1ZSk7CkBAIC0zMzczLDcgKzMzNzMsNyBA
QCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnVwZGF0ZUlzb2xhdGVkVHJlZShBWENvcmVPYmplY3QmIG9i
amVjdCwgQVhOb3RpZmljYXRpb24gbm90aQogCiB2b2lkIEFYT2JqZWN0Q2FjaGU6OnVwZGF0ZUlz
b2xhdGVkVHJlZShjb25zdCBWZWN0b3I8c3RkOjpwYWlyPFJlZlB0cjxBWENvcmVPYmplY3Q+LCBB
WE5vdGlmaWNhdGlvbj4+JiBub3RpZmljYXRpb25zKQogewotICAgIEFYVFJBQ0UoIkFYT2JqZWN0
Q2FjaGU6OnVwZGF0ZUlzb2xhdGVkVHJlZSIpOworICAgIEFYVFJBQ0UoIkFYT2JqZWN0Q2FjaGU6
OnVwZGF0ZUlzb2xhdGVkVHJlZSJfcyk7CiAgICAgQVhMT0coKnRoaXMpOwogCiAgICAgaWYgKCFt
X3BhZ2VJRCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcAppbmRleCAxNDI5MTM3MmNmYzQ2YzFkZTIyZTgzOGNk
MjI1OWY3MDkzZmRhNDA4Li5iMmQ4YzQ5NzBmMmFkNmUzNDBlZGE1ZDczZjk0MWExMjg2NTZmMjNj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlO
b2RlT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlOb2RlT2JqZWN0LmNwcApAQCAtMjM3LDcgKzIzNyw3IEBAIERvY3VtZW50KiBBY2Nlc3Np
YmlsaXR5Tm9kZU9iamVjdDo6ZG9jdW1lbnQoKSBjb25zdAogCiBBY2Nlc3NpYmlsaXR5Um9sZSBB
Y2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6ZGV0ZXJtaW5lQWNjZXNzaWJpbGl0eVJvbGUoKQogewot
ICAgIEFYVFJBQ0UoIkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpkZXRlcm1pbmVBY2Nlc3NpYmls
aXR5Um9sZSIpOworICAgIEFYVFJBQ0UoIkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpkZXRlcm1p
bmVBY2Nlc3NpYmlsaXR5Um9sZSJfcyk7CiAgICAgaWYgKChtX2FyaWFSb2xlID0gZGV0ZXJtaW5l
QXJpYVJvbGVBdHRyaWJ1dGUoKSkgIT0gQWNjZXNzaWJpbGl0eVJvbGU6OlVua25vd24pCiAgICAg
ICAgIHJldHVybiBtX2FyaWFSb2xlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAppbmRleCAzNGYxNWYyNTY0NTYzZjljOTIz
MzU4MjFiZWFlZGZiMDk5NGI4YmFlLi5iZmJlNDJmM2Q4YzJkYzM3ZTllNzVmZDYzNjM2NDFmM2M5
NzkxZTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eU9iamVjdC5jcHAKQEAgLTE3MjksNyArMTcyOSw3IEBAIGJvb2wgQWNjZXNzaWJpbGl0
eU9iamVjdDo6c3VwcG9ydHNSZWFkT25seSgpIGNvbnN0CiBTdHJpbmcgQWNjZXNzaWJpbGl0eU9i
amVjdDo6cmVhZE9ubHlWYWx1ZSgpIGNvbnN0CiB7CiAgICAgaWYgKCFoYXNBdHRyaWJ1dGUoYXJp
YV9yZWFkb25seUF0dHIpKQotICAgICAgICByZXR1cm4gYXJpYVJvbGVBdHRyaWJ1dGUoKSAhPSBB
Y2Nlc3NpYmlsaXR5Um9sZTo6VW5rbm93biAmJiBzdXBwb3J0c1JlYWRPbmx5KCkgPyAiZmFsc2Ui
IDogU3RyaW5nKCk7CisgICAgICAgIHJldHVybiBhcmlhUm9sZUF0dHJpYnV0ZSgpICE9IEFjY2Vz
c2liaWxpdHlSb2xlOjpVbmtub3duICYmIHN1cHBvcnRzUmVhZE9ubHkoKSA/ICJmYWxzZSJfcyA6
IFN0cmluZygpOwogCiAgICAgcmV0dXJuIGdldEF0dHJpYnV0ZShhcmlhX3JlYWRvbmx5QXR0ciku
c3RyaW5nKCkuY29udmVydFRvQVNDSUlMb3dlcmNhc2UoKTsKIH0KQEAgLTE3NTcsNyArMTc1Nyw3
IEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5T2JqZWN0OjphdXRvQ29tcGxldGVWYWx1ZSgpIGNvbnN0
CiAgICAgICAgIHx8IGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGF1dG9Db21wbGV0ZSwg
ImJvdGgiKSkKICAgICAgICAgcmV0dXJuIGF1dG9Db21wbGV0ZTsKIAotICAgIHJldHVybiAibm9u
ZSI7CisgICAgcmV0dXJuICJub25lIl9zOwogfQogCiBib29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6
OmNvbnRlbnRFZGl0YWJsZUF0dHJpYnV0ZUlzRW5hYmxlZChFbGVtZW50KiBlbGVtZW50KQpAQCAt
MjIzMywyMCArMjIzMywyMCBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0eU9iamVjdDo6Y3VycmVudFZh
bHVlKCkgY29uc3QKIHsKICAgICBzd2l0Y2ggKGN1cnJlbnRTdGF0ZSgpKSB7CiAgICAgY2FzZSBB
Y2Nlc3NpYmlsaXR5Q3VycmVudFN0YXRlOjpGYWxzZToKLSAgICAgICAgcmV0dXJuICJmYWxzZSI7
CisgICAgICAgIHJldHVybiAiZmFsc2UiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Q3VycmVu
dFN0YXRlOjpQYWdlOgotICAgICAgICByZXR1cm4gInBhZ2UiOworICAgICAgICByZXR1cm4gInBh
Z2UiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Q3VycmVudFN0YXRlOjpTdGVwOgotICAgICAg
ICByZXR1cm4gInN0ZXAiOworICAgICAgICByZXR1cm4gInN0ZXAiX3M7CiAgICAgY2FzZSBBY2Nl
c3NpYmlsaXR5Q3VycmVudFN0YXRlOjpMb2NhdGlvbjoKLSAgICAgICAgcmV0dXJuICJsb2NhdGlv
biI7CisgICAgICAgIHJldHVybiAibG9jYXRpb24iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5
Q3VycmVudFN0YXRlOjpUaW1lOgotICAgICAgICByZXR1cm4gInRpbWUiOworICAgICAgICByZXR1
cm4gInRpbWUiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Q3VycmVudFN0YXRlOjpEYXRlOgot
ICAgICAgICByZXR1cm4gImRhdGUiOworICAgICAgICByZXR1cm4gImRhdGUiX3M7CiAgICAgZGVm
YXVsdDoKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlDdXJyZW50U3RhdGU6OlRydWU6Ci0gICAgICAg
IHJldHVybiAidHJ1ZSI7CisgICAgICAgIHJldHVybiAidHJ1ZSJfczsKICAgICB9CiB9CiAKQEAg
LTIzNTUsMTEgKzIzNTUsMTEgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpyZXBsYWNlVGV4
dEluUmFuZ2UoY29uc3QgU3RyaW5nJiByZXBsYWNlbWVudFN0cmluZywgY28KICAgICB9CiAgICAg
CiAgICAgaWYgKGlzPEhUTUxJbnB1dEVsZW1lbnQ+KGVsZW1lbnQpKSB7Ci0gICAgICAgIGRvd25j
YXN0PEhUTUxJbnB1dEVsZW1lbnQ+KGVsZW1lbnQpLnNldFJhbmdlVGV4dChyZXBsYWNlbWVudFN0
cmluZywgcmFuZ2Uuc3RhcnQsIHJhbmdlLmxlbmd0aCwgIiIpOworICAgICAgICBkb3duY2FzdDxI
VE1MSW5wdXRFbGVtZW50PihlbGVtZW50KS5zZXRSYW5nZVRleHQocmVwbGFjZW1lbnRTdHJpbmcs
IHJhbmdlLnN0YXJ0LCByYW5nZS5sZW5ndGgsIGVtcHR5U3RyaW5nKCkpOwogICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICB9CiAgICAgaWYgKGlzPEhUTUxUZXh0QXJlYUVsZW1lbnQ+KGVsZW1lbnQp
KSB7Ci0gICAgICAgIGRvd25jYXN0PEhUTUxUZXh0QXJlYUVsZW1lbnQ+KGVsZW1lbnQpLnNldFJh
bmdlVGV4dChyZXBsYWNlbWVudFN0cmluZywgcmFuZ2Uuc3RhcnQsIHJhbmdlLmxlbmd0aCwgIiIp
OworICAgICAgICBkb3duY2FzdDxIVE1MVGV4dEFyZWFFbGVtZW50PihlbGVtZW50KS5zZXRSYW5n
ZVRleHQocmVwbGFjZW1lbnRTdHJpbmcsIHJhbmdlLnN0YXJ0LCByYW5nZS5sZW5ndGgsIGVtcHR5
U3RyaW5nKCkpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKQEAgLTI1OTQsNyArMjU5
NCw3IEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojpjb21wdXRlZFJvbGVTdHJpbmcoKSBj
b25zdAogCiAgICAgLy8gV2UgZG8gbm90IGNvbXB1dGUgYSByb2xlIHN0cmluZyBmb3IgZ2VuZXJp
YyBibG9jayBlbGVtZW50cyB3aXRoIHVzZXItYWdlbnQgYXNzaWduZWQgcm9sZXMuCiAgICAgaWYg
KHJvbGUgPT0gQWNjZXNzaWJpbGl0eVJvbGU6Okdyb3VwIHx8IHJvbGUgPT0gQWNjZXNzaWJpbGl0
eVJvbGU6OlRleHRHcm91cCkKLSAgICAgICAgcmV0dXJuICIiOworICAgICAgICByZXR1cm4gZW1w
dHlTdHJpbmcoKTsKIAogICAgIC8vIFdlIGRvIGNvbXB1dGUgYSByb2xlIHN0cmluZyBmb3IgYmxv
Y2sgZWxlbWVudHMgd2l0aCBhdXRob3ItcHJvdmlkZWQgcm9sZXMuCiAgICAgaWYgKHJvbGUgPT0g
QWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uVGV4dEdyb3VwCkBAIC0yNzI1LDcgKzI3MjUs
NyBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0eU9iamVjdDo6cm9sZURlc2NyaXB0aW9uKCkgY29uc3QK
IAogYm9vbCBub2RlSGFzUHJlc2VudGF0aW9uUm9sZShOb2RlKiBub2RlKQogewotICAgIHJldHVy
biBub2RlSGFzUm9sZShub2RlLCAicHJlc2VudGF0aW9uIikgfHwgbm9kZUhhc1JvbGUobm9kZSwg
Im5vbmUiKTsKKyAgICByZXR1cm4gbm9kZUhhc1JvbGUobm9kZSwgInByZXNlbnRhdGlvbiJfcykg
fHwgbm9kZUhhc1JvbGUobm9kZSwgIm5vbmUiX3MpOwogfQogICAgIAogYm9vbCBBY2Nlc3NpYmls
aXR5T2JqZWN0OjpzdXBwb3J0c1ByZXNzQWN0aW9uKCkgY29uc3QKQEAgLTMyMTAsMTAgKzMyMTAs
MTAgQEAgSGFzaE1hcDxTdHJpbmcsIEFYRWRpdGluZ1N0eWxlVmFsdWVWYXJpYW50PiBBY2Nlc3Np
YmlsaXR5T2JqZWN0OjpyZXNvbHZlZEVkaXRpbmcKICAgICAgICAgcmV0dXJuIHsgfTsKIAogICAg
IEhhc2hNYXA8U3RyaW5nLCBBWEVkaXRpbmdTdHlsZVZhbHVlVmFyaWFudD4gc3R5bGVzOwotICAg
IHN0eWxlcy5hZGQoImJvbGQiLCBzZWxlY3Rpb25TdHlsZS0+aGFzU3R5bGUoQ1NTUHJvcGVydHlG
b250V2VpZ2h0LCAiYm9sZCIpKTsKLSAgICBzdHlsZXMuYWRkKCJpdGFsaWMiLCBzZWxlY3Rpb25T
dHlsZS0+aGFzU3R5bGUoQ1NTUHJvcGVydHlGb250U3R5bGUsICJpdGFsaWMiKSk7Ci0gICAgc3R5
bGVzLmFkZCgidW5kZXJsaW5lIiwgc2VsZWN0aW9uU3R5bGUtPmhhc1N0eWxlKENTU1Byb3BlcnR5
V2Via2l0VGV4dERlY29yYXRpb25zSW5FZmZlY3QsICJ1bmRlcmxpbmUiKSk7Ci0gICAgc3R5bGVz
LmFkZCgiZm9udHNpemUiLCBzZWxlY3Rpb25TdHlsZS0+bGVnYWN5Rm9udFNpemUoKmRvY3VtZW50
KSk7CisgICAgc3R5bGVzLmFkZCgiYm9sZCJfcywgc2VsZWN0aW9uU3R5bGUtPmhhc1N0eWxlKENT
U1Byb3BlcnR5Rm9udFdlaWdodCwgImJvbGQiX3MpKTsKKyAgICBzdHlsZXMuYWRkKCJpdGFsaWMi
X3MsIHNlbGVjdGlvblN0eWxlLT5oYXNTdHlsZShDU1NQcm9wZXJ0eUZvbnRTdHlsZSwgIml0YWxp
YyJfcykpOworICAgIHN0eWxlcy5hZGQoInVuZGVybGluZSJfcywgc2VsZWN0aW9uU3R5bGUtPmhh
c1N0eWxlKENTU1Byb3BlcnR5V2Via2l0VGV4dERlY29yYXRpb25zSW5FZmZlY3QsICJ1bmRlcmxp
bmUiX3MpKTsKKyAgICBzdHlsZXMuYWRkKCJmb250c2l6ZSJfcywgc2VsZWN0aW9uU3R5bGUtPmxl
Z2FjeUZvbnRTaXplKCpkb2N1bWVudCkpOwogICAgIHJldHVybiBzdHlsZXM7CiB9CiAKQEAgLTQw
ODgsNyArNDA4OCw3IEBAIHN0YXRpYyBib29sIGlzUmFkaW9CdXR0b25JbkRpZmZlcmVudEFkaG9j
R3JvdXAoUmVmUHRyPEFYQ29yZU9iamVjdD4gYXhPYmplY3QsIEFYCiAgICAgaWYgKCFyZWZlcmVu
Y2VPYmplY3QgfHwgIXJlZmVyZW5jZU9iamVjdC0+aXNSYWRpb0J1dHRvbigpKQogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKIAotICAgIHJldHVybiBheE9iamVjdC0+YXR0cmlidXRlVmFsdWUoIm5hbWUi
KSAhPSByZWZlcmVuY2VPYmplY3QtPmF0dHJpYnV0ZVZhbHVlKCJuYW1lIik7CisgICAgcmV0dXJu
IGF4T2JqZWN0LT5hdHRyaWJ1dGVWYWx1ZSgibmFtZSJfcykgIT0gcmVmZXJlbmNlT2JqZWN0LT5h
dHRyaWJ1dGVWYWx1ZSgibmFtZSJfcyk7CiB9CiAKIHN0YXRpYyBib29sIGlzQWNjZXNzaWJpbGl0
eU9iamVjdFNlYXJjaE1hdGNoQXRJbmRleChSZWZQdHI8QVhDb3JlT2JqZWN0PiBheE9iamVjdCwg
QWNjZXNzaWJpbGl0eVNlYXJjaENyaXRlcmlhIGNvbnN0JiBjcml0ZXJpYSwgc2l6ZV90IGluZGV4
KQpAQCAtNDI5NSw3ICs0Mjk1LDcgQEAgc3RhdGljIHZvaWQgYXBwZW5kQ2hpbGRyZW5Ub0FycmF5
KFJlZlB0cjxBWENvcmVPYmplY3Q+IG9iamVjdCwgYm9vbCBpc0ZvcndhcmQsIFIKIAogdm9pZCBm
aW5kTWF0Y2hpbmdPYmplY3RzKEFjY2Vzc2liaWxpdHlTZWFyY2hDcml0ZXJpYSBjb25zdCYgY3Jp
dGVyaWEsIEFYQ29yZU9iamVjdDo6QWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yJiByZXN1bHRz
KQogewotICAgIEFYVFJBQ0UoIkFjY2Vzc2liaWxpdHk6OmZpbmRNYXRjaGluZ09iamVjdHMiKTsK
KyAgICBBWFRSQUNFKCJBY2Nlc3NpYmlsaXR5OjpmaW5kTWF0Y2hpbmdPYmplY3RzIl9zKTsKICAg
ICBBWExPRyhjcml0ZXJpYSk7CiAKICAgICAvLyBUaGlzIHNlYXJjaCBhbGdvcml0aG0gb25seSBz
ZWFyY2hlcyB0aGUgZWxlbWVudHMgYmVmb3JlL2FmdGVyIHRoZSBzdGFydGluZyBvYmplY3QuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmpl
Y3RJbnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU9iamVjdEludGVyZmFjZS5oCmluZGV4IDQ2ZjYwMjgwMmE3NjIxYzA4NmY1MTQ1ZDBhNzBlY2U2
YmZiODI3Y2YuLmUwYmRkZDkzMWM0ZDI0MWVkNzc4MDQzZTliMjQxZjEyOWUzZmVkNzEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdElu
dGVyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eU9iamVjdEludGVyZmFjZS5oCkBAIC0yNjQsMzEyICsyNjQsMzEyIEBAIEFMV0FZU19JTkxJTkUg
U3RyaW5nIGFjY2Vzc2liaWxpdHlSb2xlVG9TdHJpbmcoQWNjZXNzaWJpbGl0eVJvbGUgcm9sZSkK
IHsKICAgICBzd2l0Y2ggKHJvbGUpIHsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpBbm5v
dGF0aW9uOgotICAgICAgICByZXR1cm4gIkFubm90YXRpb24iOworICAgICAgICByZXR1cm4gIkFu
bm90YXRpb24iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb246Ci0g
ICAgICAgIHJldHVybiAiQXBwbGljYXRpb24iOworICAgICAgICByZXR1cm4gIkFwcGxpY2F0aW9u
Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uQWxlcnQ6Ci0gICAg
ICAgIHJldHVybiAiQXBwbGljYXRpb25BbGVydCI7CisgICAgICAgIHJldHVybiAiQXBwbGljYXRp
b25BbGVydCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvbkFsZXJ0
RGlhbG9nOgotICAgICAgICByZXR1cm4gIkFwcGxpY2F0aW9uQWxlcnREaWFsb2ciOworICAgICAg
ICByZXR1cm4gIkFwcGxpY2F0aW9uQWxlcnREaWFsb2ciX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmls
aXR5Um9sZTo6QXBwbGljYXRpb25EaWFsb2c6Ci0gICAgICAgIHJldHVybiAiQXBwbGljYXRpb25E
aWFsb2ciOworICAgICAgICByZXR1cm4gIkFwcGxpY2F0aW9uRGlhbG9nIl9zOwogICAgIGNhc2Ug
QWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uR3JvdXA6Ci0gICAgICAgIHJldHVybiAiQXBw
bGljYXRpb25Hcm91cCI7CisgICAgICAgIHJldHVybiAiQXBwbGljYXRpb25Hcm91cCJfczsKICAg
ICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvbkxvZzoKLSAgICAgICAgcmV0dXJu
ICJBcHBsaWNhdGlvbkxvZyI7CisgICAgICAgIHJldHVybiAiQXBwbGljYXRpb25Mb2ciX3M7CiAg
ICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb25NYXJxdWVlOgotICAgICAgICBy
ZXR1cm4gIkFwcGxpY2F0aW9uTWFycXVlZSI7CisgICAgICAgIHJldHVybiAiQXBwbGljYXRpb25N
YXJxdWVlIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uU3RhdHVz
OgotICAgICAgICByZXR1cm4gIkFwcGxpY2F0aW9uU3RhdHVzIjsKKyAgICAgICAgcmV0dXJuICJB
cHBsaWNhdGlvblN0YXR1cyJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNh
dGlvblRleHRHcm91cDoKLSAgICAgICAgcmV0dXJuICJBcHBsaWNhdGlvblRleHRHcm91cCI7Cisg
ICAgICAgIHJldHVybiAiQXBwbGljYXRpb25UZXh0R3JvdXAiX3M7CiAgICAgY2FzZSBBY2Nlc3Np
YmlsaXR5Um9sZTo6QXBwbGljYXRpb25UaW1lcjoKLSAgICAgICAgcmV0dXJuICJBcHBsaWNhdGlv
blRpbWVyIjsKKyAgICAgICAgcmV0dXJuICJBcHBsaWNhdGlvblRpbWVyIl9zOwogICAgIGNhc2Ug
QWNjZXNzaWJpbGl0eVJvbGU6OkF1ZGlvOgotICAgICAgICByZXR1cm4gIkF1ZGlvIjsKKyAgICAg
ICAgcmV0dXJuICJBdWRpbyJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpCbG9ja3F1
b3RlOgotICAgICAgICByZXR1cm4gIkJsb2NrcXVvdGUiOworICAgICAgICByZXR1cm4gIkJsb2Nr
cXVvdGUiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QnJvd3NlcjoKLSAgICAgICAg
cmV0dXJuICJCcm93c2VyIjsKKyAgICAgICAgcmV0dXJuICJCcm93c2VyIl9zOwogICAgIGNhc2Ug
QWNjZXNzaWJpbGl0eVJvbGU6OkJ1c3lJbmRpY2F0b3I6Ci0gICAgICAgIHJldHVybiAiQnVzeUlu
ZGljYXRvciI7CisgICAgICAgIHJldHVybiAiQnVzeUluZGljYXRvciJfczsKICAgICBjYXNlIEFj
Y2Vzc2liaWxpdHlSb2xlOjpCdXR0b246Ci0gICAgICAgIHJldHVybiAiQnV0dG9uIjsKKyAgICAg
ICAgcmV0dXJuICJCdXR0b24iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6Q2FudmFz
OgotICAgICAgICByZXR1cm4gIkNhbnZhcyI7CisgICAgICAgIHJldHVybiAiQ2FudmFzIl9zOwog
ICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkNhcHRpb246Ci0gICAgICAgIHJldHVybiAiQ2Fw
dGlvbiI7CisgICAgICAgIHJldHVybiAiQ2FwdGlvbiJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxp
dHlSb2xlOjpDZWxsOgotICAgICAgICByZXR1cm4gIkNlbGwiOworICAgICAgICByZXR1cm4gIkNl
bGwiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6Q2hlY2tCb3g6Ci0gICAgICAgIHJl
dHVybiAiQ2hlY2tCb3giOworICAgICAgICByZXR1cm4gIkNoZWNrQm94Il9zOwogICAgIGNhc2Ug
QWNjZXNzaWJpbGl0eVJvbGU6OkNvbG9yV2VsbDoKLSAgICAgICAgcmV0dXJuICJDb2xvcldlbGwi
OworICAgICAgICByZXR1cm4gIkNvbG9yV2VsbCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlS
b2xlOjpDb2x1bW46Ci0gICAgICAgIHJldHVybiAiQ29sdW1uIjsKKyAgICAgICAgcmV0dXJuICJD
b2x1bW4iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6Q29sdW1uSGVhZGVyOgotICAg
ICAgICByZXR1cm4gIkNvbHVtbkhlYWRlciI7CisgICAgICAgIHJldHVybiAiQ29sdW1uSGVhZGVy
Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkNvbWJvQm94OgotICAgICAgICByZXR1
cm4gIkNvbWJvQm94IjsKKyAgICAgICAgcmV0dXJuICJDb21ib0JveCJfczsKICAgICBjYXNlIEFj
Y2Vzc2liaWxpdHlSb2xlOjpEZWZpbml0aW9uOgotICAgICAgICByZXR1cm4gIkRlZmluaXRpb24i
OworICAgICAgICByZXR1cm4gIkRlZmluaXRpb24iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5
Um9sZTo6RGVsZXRpb246Ci0gICAgICAgIHJldHVybiAiRGVsZXRpb24iOworICAgICAgICByZXR1
cm4gIkRlbGV0aW9uIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRlc2NyaXB0aW9u
TGlzdDoKLSAgICAgICAgcmV0dXJuICJEZXNjcmlwdGlvbkxpc3QiOworICAgICAgICByZXR1cm4g
IkRlc2NyaXB0aW9uTGlzdCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpEZXNjcmlw
dGlvbkxpc3RUZXJtOgotICAgICAgICByZXR1cm4gIkRlc2NyaXB0aW9uTGlzdFRlcm0iOworICAg
ICAgICByZXR1cm4gIkRlc2NyaXB0aW9uTGlzdFRlcm0iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmls
aXR5Um9sZTo6RGVzY3JpcHRpb25MaXN0RGV0YWlsOgotICAgICAgICByZXR1cm4gIkRlc2NyaXB0
aW9uTGlzdERldGFpbCI7CisgICAgICAgIHJldHVybiAiRGVzY3JpcHRpb25MaXN0RGV0YWlsIl9z
OwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRldGFpbHM6Ci0gICAgICAgIHJldHVybiAi
RGV0YWlscyI7CisgICAgICAgIHJldHVybiAiRGV0YWlscyJfczsKICAgICBjYXNlIEFjY2Vzc2li
aWxpdHlSb2xlOjpEaXJlY3Rvcnk6Ci0gICAgICAgIHJldHVybiAiRGlyZWN0b3J5IjsKKyAgICAg
ICAgcmV0dXJuICJEaXJlY3RvcnkiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RGlz
Y2xvc3VyZVRyaWFuZ2xlOgotICAgICAgICByZXR1cm4gIkRpc2Nsb3N1cmVUcmlhbmdsZSI7Cisg
ICAgICAgIHJldHVybiAiRGlzY2xvc3VyZVRyaWFuZ2xlIl9zOwogICAgIGNhc2UgQWNjZXNzaWJp
bGl0eVJvbGU6OkRpdjoKLSAgICAgICAgcmV0dXJuICJEaXYiOworICAgICAgICByZXR1cm4gIkRp
diJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpEb2N1bWVudDoKLSAgICAgICAgcmV0
dXJuICJEb2N1bWVudCI7CisgICAgICAgIHJldHVybiAiRG9jdW1lbnQiX3M7CiAgICAgY2FzZSBB
Y2Nlc3NpYmlsaXR5Um9sZTo6RG9jdW1lbnRBcnRpY2xlOgotICAgICAgICByZXR1cm4gIkRvY3Vt
ZW50QXJ0aWNsZSI7CisgICAgICAgIHJldHVybiAiRG9jdW1lbnRBcnRpY2xlIl9zOwogICAgIGNh
c2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRvY3VtZW50TWF0aDoKLSAgICAgICAgcmV0dXJuICJEb2N1
bWVudE1hdGgiOworICAgICAgICByZXR1cm4gIkRvY3VtZW50TWF0aCJfczsKICAgICBjYXNlIEFj
Y2Vzc2liaWxpdHlSb2xlOjpEb2N1bWVudE5vdGU6Ci0gICAgICAgIHJldHVybiAiRG9jdW1lbnRO
b3RlIjsKKyAgICAgICAgcmV0dXJuICJEb2N1bWVudE5vdGUiX3M7CiAgICAgY2FzZSBBY2Nlc3Np
YmlsaXR5Um9sZTo6RHJhd2VyOgotICAgICAgICByZXR1cm4gIkRyYXdlciI7CisgICAgICAgIHJl
dHVybiAiRHJhd2VyIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkVkaXRhYmxlVGV4
dDoKLSAgICAgICAgcmV0dXJuICJFZGl0YWJsZVRleHQiOworICAgICAgICByZXR1cm4gIkVkaXRh
YmxlVGV4dCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpGZWVkOgotICAgICAgICBy
ZXR1cm4gIkZlZWQiOworICAgICAgICByZXR1cm4gIkZlZWQiX3M7CiAgICAgY2FzZSBBY2Nlc3Np
YmlsaXR5Um9sZTo6RmlndXJlOgotICAgICAgICByZXR1cm4gIkZpZ3VyZSI7CisgICAgICAgIHJl
dHVybiAiRmlndXJlIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkZvb3RlcjoKLSAg
ICAgICAgcmV0dXJuICJGb290ZXIiOworICAgICAgICByZXR1cm4gIkZvb3RlciJfczsKICAgICBj
YXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpGb290bm90ZToKLSAgICAgICAgcmV0dXJuICJGb290bm90
ZSI7CisgICAgICAgIHJldHVybiAiRm9vdG5vdGUiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5
Um9sZTo6Rm9ybToKLSAgICAgICAgcmV0dXJuICJGb3JtIjsKKyAgICAgICAgcmV0dXJuICJGb3Jt
Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkdyYXBoaWNzRG9jdW1lbnQ6Ci0gICAg
ICAgIHJldHVybiAiR3JhcGhpY3NEb2N1bWVudCI7CisgICAgICAgIHJldHVybiAiR3JhcGhpY3NE
b2N1bWVudCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpHcmFwaGljc09iamVjdDoK
LSAgICAgICAgcmV0dXJuICJHcmFwaGljc09iamVjdCI7CisgICAgICAgIHJldHVybiAiR3JhcGhp
Y3NPYmplY3QiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6R3JhcGhpY3NTeW1ib2w6
Ci0gICAgICAgIHJldHVybiAiR3JhcGhpY3NTeW1ib2wiOworICAgICAgICByZXR1cm4gIkdyYXBo
aWNzU3ltYm9sIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkdyaWQ6Ci0gICAgICAg
IHJldHVybiAiR3JpZCI7CisgICAgICAgIHJldHVybiAiR3JpZCJfczsKICAgICBjYXNlIEFjY2Vz
c2liaWxpdHlSb2xlOjpHcmlkQ2VsbDoKLSAgICAgICAgcmV0dXJuICJHcmlkQ2VsbCI7CisgICAg
ICAgIHJldHVybiAiR3JpZENlbGwiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6R3Jv
dXA6Ci0gICAgICAgIHJldHVybiAiR3JvdXAiOworICAgICAgICByZXR1cm4gIkdyb3VwIl9zOwog
ICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Okdyb3dBcmVhOgotICAgICAgICByZXR1cm4gIkdy
b3dBcmVhIjsKKyAgICAgICAgcmV0dXJuICJHcm93QXJlYSJfczsKICAgICBjYXNlIEFjY2Vzc2li
aWxpdHlSb2xlOjpIZWFkaW5nOgotICAgICAgICByZXR1cm4gIkhlYWRpbmciOworICAgICAgICBy
ZXR1cm4gIkhlYWRpbmciX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6SGVscFRhZzoK
LSAgICAgICAgcmV0dXJuICJIZWxwVGFnIjsKKyAgICAgICAgcmV0dXJuICJIZWxwVGFnIl9zOwog
ICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Okhvcml6b250YWxSdWxlOgotICAgICAgICByZXR1
cm4gIkhvcml6b250YWxSdWxlIjsKKyAgICAgICAgcmV0dXJuICJIb3Jpem9udGFsUnVsZSJfczsK
ICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpJZ25vcmVkOgotICAgICAgICByZXR1cm4gIkln
bm9yZWQiOworICAgICAgICByZXR1cm4gIklnbm9yZWQiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmls
aXR5Um9sZTo6SW5saW5lOgotICAgICAgICByZXR1cm4gIklubGluZSI7CisgICAgICAgIHJldHVy
biAiSW5saW5lIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkltYWdlOgotICAgICAg
ICByZXR1cm4gIkltYWdlIjsKKyAgICAgICAgcmV0dXJuICJJbWFnZSJfczsKICAgICBjYXNlIEFj
Y2Vzc2liaWxpdHlSb2xlOjpJbWFnZU1hcDoKLSAgICAgICAgcmV0dXJuICJJbWFnZU1hcCI7Cisg
ICAgICAgIHJldHVybiAiSW1hZ2VNYXAiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6
SW1hZ2VNYXBMaW5rOgotICAgICAgICByZXR1cm4gIkltYWdlTWFwTGluayI7CisgICAgICAgIHJl
dHVybiAiSW1hZ2VNYXBMaW5rIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkluY3Jl
bWVudG9yOgotICAgICAgICByZXR1cm4gIkluY3JlbWVudG9yIjsKKyAgICAgICAgcmV0dXJuICJJ
bmNyZW1lbnRvciJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpJbnNlcnRpb246Ci0g
ICAgICAgIHJldHVybiAiSW5zZXJ0aW9uIjsKKyAgICAgICAgcmV0dXJuICJJbnNlcnRpb24iX3M7
CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFiZWw6Ci0gICAgICAgIHJldHVybiAiTGFi
ZWwiOworICAgICAgICByZXR1cm4gIkxhYmVsIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJv
bGU6OkxhbmRtYXJrQmFubmVyOgotICAgICAgICByZXR1cm4gIkxhbmRtYXJrQmFubmVyIjsKKyAg
ICAgICAgcmV0dXJuICJMYW5kbWFya0Jhbm5lciJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlS
b2xlOjpMYW5kbWFya0NvbXBsZW1lbnRhcnk6Ci0gICAgICAgIHJldHVybiAiTGFuZG1hcmtDb21w
bGVtZW50YXJ5IjsKKyAgICAgICAgcmV0dXJuICJMYW5kbWFya0NvbXBsZW1lbnRhcnkiX3M7CiAg
ICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtDb250ZW50SW5mbzoKLSAgICAgICAg
cmV0dXJuICJMYW5kbWFya0NvbnRlbnRJbmZvIjsKKyAgICAgICAgcmV0dXJuICJMYW5kbWFya0Nv
bnRlbnRJbmZvIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJrRG9jUmVn
aW9uOgotICAgICAgICByZXR1cm4gIkxhbmRtYXJrRG9jUmVnaW9uIjsKKyAgICAgICAgcmV0dXJu
ICJMYW5kbWFya0RvY1JlZ2lvbiJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpMYW5k
bWFya01haW46Ci0gICAgICAgIHJldHVybiAiTGFuZG1hcmtNYWluIjsKKyAgICAgICAgcmV0dXJu
ICJMYW5kbWFya01haW4iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtO
YXZpZ2F0aW9uOgotICAgICAgICByZXR1cm4gIkxhbmRtYXJrTmF2aWdhdGlvbiI7CisgICAgICAg
IHJldHVybiAiTGFuZG1hcmtOYXZpZ2F0aW9uIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJv
bGU6OkxhbmRtYXJrUmVnaW9uOgotICAgICAgICByZXR1cm4gIkxhbmRtYXJrUmVnaW9uIjsKKyAg
ICAgICAgcmV0dXJuICJMYW5kbWFya1JlZ2lvbiJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlS
b2xlOjpMYW5kbWFya1NlYXJjaDoKLSAgICAgICAgcmV0dXJuICJMYW5kbWFya1NlYXJjaCI7Cisg
ICAgICAgIHJldHVybiAiTGFuZG1hcmtTZWFyY2giX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5
Um9sZTo6TGVnZW5kOgotICAgICAgICByZXR1cm4gIkxlZ2VuZCI7CisgICAgICAgIHJldHVybiAi
TGVnZW5kIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Okxpbms6Ci0gICAgICAgIHJl
dHVybiAiTGluayI7CisgICAgICAgIHJldHVybiAiTGluayJfczsKICAgICBjYXNlIEFjY2Vzc2li
aWxpdHlSb2xlOjpMaXN0OgotICAgICAgICByZXR1cm4gIkxpc3QiOworICAgICAgICByZXR1cm4g
Ikxpc3QiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGlzdEJveDoKLSAgICAgICAg
cmV0dXJuICJMaXN0Qm94IjsKKyAgICAgICAgcmV0dXJuICJMaXN0Qm94Il9zOwogICAgIGNhc2Ug
QWNjZXNzaWJpbGl0eVJvbGU6Okxpc3RCb3hPcHRpb246Ci0gICAgICAgIHJldHVybiAiTGlzdEJv
eE9wdGlvbiI7CisgICAgICAgIHJldHVybiAiTGlzdEJveE9wdGlvbiJfczsKICAgICBjYXNlIEFj
Y2Vzc2liaWxpdHlSb2xlOjpMaXN0SXRlbToKLSAgICAgICAgcmV0dXJuICJMaXN0SXRlbSI7Cisg
ICAgICAgIHJldHVybiAiTGlzdEl0ZW0iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6
TGlzdE1hcmtlcjoKLSAgICAgICAgcmV0dXJuICJMaXN0TWFya2VyIjsKKyAgICAgICAgcmV0dXJu
ICJMaXN0TWFya2VyIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Ok1hcms6Ci0gICAg
ICAgIHJldHVybiAiTWFyayI7CisgICAgICAgIHJldHVybiAiTWFyayJfczsKICAgICBjYXNlIEFj
Y2Vzc2liaWxpdHlSb2xlOjpNYXRoRWxlbWVudDoKLSAgICAgICAgcmV0dXJuICJNYXRoRWxlbWVu
dCI7CisgICAgICAgIHJldHVybiAiTWF0aEVsZW1lbnQiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmls
aXR5Um9sZTo6TWF0dGU6Ci0gICAgICAgIHJldHVybiAiTWF0dGUiOworICAgICAgICByZXR1cm4g
Ik1hdHRlIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Ok1lbnU6Ci0gICAgICAgIHJl
dHVybiAiTWVudSI7CisgICAgICAgIHJldHVybiAiTWVudSJfczsKICAgICBjYXNlIEFjY2Vzc2li
aWxpdHlSb2xlOjpNZW51QmFyOgotICAgICAgICByZXR1cm4gIk1lbnVCYXIiOworICAgICAgICBy
ZXR1cm4gIk1lbnVCYXIiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TWVudUJ1dHRv
bjoKLSAgICAgICAgcmV0dXJuICJNZW51QnV0dG9uIjsKKyAgICAgICAgcmV0dXJuICJNZW51QnV0
dG9uIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Ok1lbnVJdGVtOgotICAgICAgICBy
ZXR1cm4gIk1lbnVJdGVtIjsKKyAgICAgICAgcmV0dXJuICJNZW51SXRlbSJfczsKICAgICBjYXNl
IEFjY2Vzc2liaWxpdHlSb2xlOjpNZW51SXRlbUNoZWNrYm94OgotICAgICAgICByZXR1cm4gIk1l
bnVJdGVtQ2hlY2tib3giOworICAgICAgICByZXR1cm4gIk1lbnVJdGVtQ2hlY2tib3giX3M7CiAg
ICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TWVudUl0ZW1SYWRpbzoKLSAgICAgICAgcmV0dXJu
ICJNZW51SXRlbVJhZGlvIjsKKyAgICAgICAgcmV0dXJuICJNZW51SXRlbVJhZGlvIl9zOwogICAg
IGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Ok1lbnVMaXN0UG9wdXA6Ci0gICAgICAgIHJldHVybiAi
TWVudUxpc3RQb3B1cCI7CisgICAgICAgIHJldHVybiAiTWVudUxpc3RQb3B1cCJfczsKICAgICBj
YXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpNZW51TGlzdE9wdGlvbjoKLSAgICAgICAgcmV0dXJuICJN
ZW51TGlzdE9wdGlvbiI7CisgICAgICAgIHJldHVybiAiTWVudUxpc3RPcHRpb24iX3M7CiAgICAg
Y2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TWV0ZXI6Ci0gICAgICAgIHJldHVybiAiTWV0ZXIiOwor
ICAgICAgICByZXR1cm4gIk1ldGVyIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Ok1v
ZGVsOgotICAgICAgICByZXR1cm4gIk1vZGVsIjsKKyAgICAgICAgcmV0dXJuICJNb2RlbCJfczsK
ICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpPdXRsaW5lOgotICAgICAgICByZXR1cm4gIk91
dGxpbmUiOworICAgICAgICByZXR1cm4gIk91dGxpbmUiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmls
aXR5Um9sZTo6UGFyYWdyYXBoOgotICAgICAgICByZXR1cm4gIlBhcmFncmFwaCI7CisgICAgICAg
IHJldHVybiAiUGFyYWdyYXBoIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlBvcFVw
QnV0dG9uOgotICAgICAgICByZXR1cm4gIlBvcFVwQnV0dG9uIjsKKyAgICAgICAgcmV0dXJuICJQ
b3BVcEJ1dHRvbiJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpQcmU6Ci0gICAgICAg
IHJldHVybiAiUHJlIjsKKyAgICAgICAgcmV0dXJuICJQcmUiX3M7CiAgICAgY2FzZSBBY2Nlc3Np
YmlsaXR5Um9sZTo6UHJlc2VudGF0aW9uYWw6Ci0gICAgICAgIHJldHVybiAiUHJlc2VudGF0aW9u
YWwiOworICAgICAgICByZXR1cm4gIlByZXNlbnRhdGlvbmFsIl9zOwogICAgIGNhc2UgQWNjZXNz
aWJpbGl0eVJvbGU6OlByb2dyZXNzSW5kaWNhdG9yOgotICAgICAgICByZXR1cm4gIlByb2dyZXNz
SW5kaWNhdG9yIjsKKyAgICAgICAgcmV0dXJuICJQcm9ncmVzc0luZGljYXRvciJfczsKICAgICBj
YXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpSYWRpb0J1dHRvbjoKLSAgICAgICAgcmV0dXJuICJSYWRp
b0J1dHRvbiI7CisgICAgICAgIHJldHVybiAiUmFkaW9CdXR0b24iX3M7CiAgICAgY2FzZSBBY2Nl
c3NpYmlsaXR5Um9sZTo6UmFkaW9Hcm91cDoKLSAgICAgICAgcmV0dXJuICJSYWRpb0dyb3VwIjsK
KyAgICAgICAgcmV0dXJuICJSYWRpb0dyb3VwIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJv
bGU6OlJvd0hlYWRlcjoKLSAgICAgICAgcmV0dXJuICJSb3dIZWFkZXIiOworICAgICAgICByZXR1
cm4gIlJvd0hlYWRlciJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpSb3c6Ci0gICAg
ICAgIHJldHVybiAiUm93IjsKKyAgICAgICAgcmV0dXJuICJSb3ciX3M7CiAgICAgY2FzZSBBY2Nl
c3NpYmlsaXR5Um9sZTo6Um93R3JvdXA6Ci0gICAgICAgIHJldHVybiAiUm93R3JvdXAiOworICAg
ICAgICByZXR1cm4gIlJvd0dyb3VwIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlJ1
YnlCYXNlOgotICAgICAgICByZXR1cm4gIlJ1YnlCYXNlIjsKKyAgICAgICAgcmV0dXJuICJSdWJ5
QmFzZSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpSdWJ5QmxvY2s6Ci0gICAgICAg
IHJldHVybiAiUnVieUJsb2NrIjsKKyAgICAgICAgcmV0dXJuICJSdWJ5QmxvY2siX3M7CiAgICAg
Y2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6UnVieUlubGluZToKLSAgICAgICAgcmV0dXJuICJSdWJ5
SW5saW5lIjsKKyAgICAgICAgcmV0dXJuICJSdWJ5SW5saW5lIl9zOwogICAgIGNhc2UgQWNjZXNz
aWJpbGl0eVJvbGU6OlJ1YnlSdW46Ci0gICAgICAgIHJldHVybiAiUnVieVJ1biI7CisgICAgICAg
IHJldHVybiAiUnVieVJ1biJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpSdWJ5VGV4
dDoKLSAgICAgICAgcmV0dXJuICJSdWJ5VGV4dCI7CisgICAgICAgIHJldHVybiAiUnVieVRleHQi
X3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6UnVsZXI6Ci0gICAgICAgIHJldHVybiAi
UnVsZXIiOworICAgICAgICByZXR1cm4gIlJ1bGVyIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0
eVJvbGU6OlJ1bGVyTWFya2VyOgotICAgICAgICByZXR1cm4gIlJ1bGVyTWFya2VyIjsKKyAgICAg
ICAgcmV0dXJuICJSdWxlck1hcmtlciJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpT
Y3JvbGxBcmVhOgotICAgICAgICByZXR1cm4gIlNjcm9sbEFyZWEiOworICAgICAgICByZXR1cm4g
IlNjcm9sbEFyZWEiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6U2Nyb2xsQmFyOgot
ICAgICAgICByZXR1cm4gIlNjcm9sbEJhciI7CisgICAgICAgIHJldHVybiAiU2Nyb2xsQmFyIl9z
OwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlNlYXJjaEZpZWxkOgotICAgICAgICByZXR1
cm4gIlNlYXJjaEZpZWxkIjsKKyAgICAgICAgcmV0dXJuICJTZWFyY2hGaWVsZCJfczsKICAgICBj
YXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpTaGVldDoKLSAgICAgICAgcmV0dXJuICJTaGVldCI7Cisg
ICAgICAgIHJldHVybiAiU2hlZXQiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6U2xp
ZGVyOgotICAgICAgICByZXR1cm4gIlNsaWRlciI7CisgICAgICAgIHJldHVybiAiU2xpZGVyIl9z
OwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlNsaWRlclRodW1iOgotICAgICAgICByZXR1
cm4gIlNsaWRlclRodW1iIjsKKyAgICAgICAgcmV0dXJuICJTbGlkZXJUaHVtYiJfczsKICAgICBj
YXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpTcGluQnV0dG9uOgotICAgICAgICByZXR1cm4gIlNwaW5C
dXR0b24iOworICAgICAgICByZXR1cm4gIlNwaW5CdXR0b24iX3M7CiAgICAgY2FzZSBBY2Nlc3Np
YmlsaXR5Um9sZTo6U3BpbkJ1dHRvblBhcnQ6Ci0gICAgICAgIHJldHVybiAiU3BpbkJ1dHRvblBh
cnQiOworICAgICAgICByZXR1cm4gIlNwaW5CdXR0b25QYXJ0Il9zOwogICAgIGNhc2UgQWNjZXNz
aWJpbGl0eVJvbGU6OlNwbGl0R3JvdXA6Ci0gICAgICAgIHJldHVybiAiU3BsaXRHcm91cCI7Cisg
ICAgICAgIHJldHVybiAiU3BsaXRHcm91cCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xl
OjpTcGxpdHRlcjoKLSAgICAgICAgcmV0dXJuICJTcGxpdHRlciI7CisgICAgICAgIHJldHVybiAi
U3BsaXR0ZXIiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6U3RhdGljVGV4dDoKLSAg
ICAgICAgcmV0dXJuICJTdGF0aWNUZXh0IjsKKyAgICAgICAgcmV0dXJuICJTdGF0aWNUZXh0Il9z
OwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlN1YnNjcmlwdDoKLSAgICAgICAgcmV0dXJu
ICJTdWJzY3JpcHQiOworICAgICAgICByZXR1cm4gIlN1YnNjcmlwdCJfczsKICAgICBjYXNlIEFj
Y2Vzc2liaWxpdHlSb2xlOjpTdW1tYXJ5OgotICAgICAgICByZXR1cm4gIlN1bW1hcnkiOworICAg
ICAgICByZXR1cm4gIlN1bW1hcnkiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6U3Vw
ZXJzY3JpcHQ6Ci0gICAgICAgIHJldHVybiAiU3VwZXJzY3JpcHQiOworICAgICAgICByZXR1cm4g
IlN1cGVyc2NyaXB0Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlN3aXRjaDoKLSAg
ICAgICAgcmV0dXJuICJTd2l0Y2giOworICAgICAgICByZXR1cm4gIlN3aXRjaCJfczsKICAgICBj
YXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpTeXN0ZW1XaWRlOgotICAgICAgICByZXR1cm4gIlN5c3Rl
bVdpZGUiOworICAgICAgICByZXR1cm4gIlN5c3RlbVdpZGUiX3M7CiAgICAgY2FzZSBBY2Nlc3Np
YmlsaXR5Um9sZTo6U1ZHUm9vdDoKLSAgICAgICAgcmV0dXJuICJTVkdSb290IjsKKyAgICAgICAg
cmV0dXJuICJTVkdSb290Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlNWR1RleHQ6
Ci0gICAgICAgIHJldHVybiAiU1ZHVGV4dCI7CisgICAgICAgIHJldHVybiAiU1ZHVGV4dCJfczsK
ICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpTVkdUU3BhbjoKLSAgICAgICAgcmV0dXJuICJT
VkdUU3BhbiI7CisgICAgICAgIHJldHVybiAiU1ZHVFNwYW4iX3M7CiAgICAgY2FzZSBBY2Nlc3Np
YmlsaXR5Um9sZTo6U1ZHVGV4dFBhdGg6Ci0gICAgICAgIHJldHVybiAiU1ZHVGV4dFBhdGgiOwor
ICAgICAgICByZXR1cm4gIlNWR1RleHRQYXRoIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJv
bGU6OlRhYkdyb3VwOgotICAgICAgICByZXR1cm4gIlRhYkdyb3VwIjsKKyAgICAgICAgcmV0dXJu
ICJUYWJHcm91cCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpUYWJMaXN0OgotICAg
ICAgICByZXR1cm4gIlRhYkxpc3QiOworICAgICAgICByZXR1cm4gIlRhYkxpc3QiX3M7CiAgICAg
Y2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VGFiUGFuZWw6Ci0gICAgICAgIHJldHVybiAiVGFiUGFu
ZWwiOworICAgICAgICByZXR1cm4gIlRhYlBhbmVsIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0
eVJvbGU6OlRhYjoKLSAgICAgICAgcmV0dXJuICJUYWIiOworICAgICAgICByZXR1cm4gIlRhYiJf
czsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpUYWJsZToKLSAgICAgICAgcmV0dXJuICJU
YWJsZSI7CisgICAgICAgIHJldHVybiAiVGFibGUiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5
Um9sZTo6VGFibGVIZWFkZXJDb250YWluZXI6Ci0gICAgICAgIHJldHVybiAiVGFibGVIZWFkZXJD
b250YWluZXIiOworICAgICAgICByZXR1cm4gIlRhYmxlSGVhZGVyQ29udGFpbmVyIl9zOwogICAg
IGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlRlcm06Ci0gICAgICAgIHJldHVybiAiVGVybSI7Cisg
ICAgICAgIHJldHVybiAiVGVybSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpUZXh0
QXJlYToKLSAgICAgICAgcmV0dXJuICJUZXh0QXJlYSI7CisgICAgICAgIHJldHVybiAiVGV4dEFy
ZWEiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VGV4dEZpZWxkOgotICAgICAgICBy
ZXR1cm4gIlRleHRGaWVsZCI7CisgICAgICAgIHJldHVybiAiVGV4dEZpZWxkIl9zOwogICAgIGNh
c2UgQWNjZXNzaWJpbGl0eVJvbGU6OlRleHRHcm91cDoKLSAgICAgICAgcmV0dXJuICJUZXh0R3Jv
dXAiOworICAgICAgICByZXR1cm4gIlRleHRHcm91cCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxp
dHlSb2xlOjpUaW1lOgotICAgICAgICByZXR1cm4gIlRpbWUiOworICAgICAgICByZXR1cm4gIlRp
bWUiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VHJlZToKLSAgICAgICAgcmV0dXJu
ICJUcmVlIjsKKyAgICAgICAgcmV0dXJuICJUcmVlIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0
eVJvbGU6OlRyZWVHcmlkOgotICAgICAgICByZXR1cm4gIlRyZWVHcmlkIjsKKyAgICAgICAgcmV0
dXJuICJUcmVlR3JpZCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpUcmVlSXRlbToK
LSAgICAgICAgcmV0dXJuICJUcmVlSXRlbSI7CisgICAgICAgIHJldHVybiAiVHJlZUl0ZW0iX3M7
CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VG9nZ2xlQnV0dG9uOgotICAgICAgICByZXR1
cm4gIlRvZ2dsZUJ1dHRvbiI7CisgICAgICAgIHJldHVybiAiVG9nZ2xlQnV0dG9uIl9zOwogICAg
IGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlRvb2xiYXI6Ci0gICAgICAgIHJldHVybiAiVG9vbGJh
ciI7CisgICAgICAgIHJldHVybiAiVG9vbGJhciJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlS
b2xlOjpVbmtub3duOgotICAgICAgICByZXR1cm4gIlVua25vd24iOworICAgICAgICByZXR1cm4g
IlVua25vd24iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VXNlckludGVyZmFjZVRv
b2x0aXA6Ci0gICAgICAgIHJldHVybiAiVXNlckludGVyZmFjZVRvb2x0aXAiOworICAgICAgICBy
ZXR1cm4gIlVzZXJJbnRlcmZhY2VUb29sdGlwIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJv
bGU6OlZhbHVlSW5kaWNhdG9yOgotICAgICAgICByZXR1cm4gIlZhbHVlSW5kaWNhdG9yIjsKKyAg
ICAgICAgcmV0dXJuICJWYWx1ZUluZGljYXRvciJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlS
b2xlOjpWaWRlbzoKLSAgICAgICAgcmV0dXJuICJWaWRlbyI7CisgICAgICAgIHJldHVybiAiVmlk
ZW8iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6V2ViQXBwbGljYXRpb246Ci0gICAg
ICAgIHJldHVybiAiV2ViQXBwbGljYXRpb24iOworICAgICAgICByZXR1cm4gIldlYkFwcGxpY2F0
aW9uIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OldlYkFyZWE6Ci0gICAgICAgIHJl
dHVybiAiV2ViQXJlYSI7CisgICAgICAgIHJldHVybiAiV2ViQXJlYSJfczsKICAgICBjYXNlIEFj
Y2Vzc2liaWxpdHlSb2xlOjpXZWJDb3JlTGluazoKLSAgICAgICAgcmV0dXJuICJXZWJDb3JlTGlu
ayI7CisgICAgICAgIHJldHVybiAiV2ViQ29yZUxpbmsiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmls
aXR5Um9sZTo6V2luZG93OgotICAgICAgICByZXR1cm4gIldpbmRvdyI7CisgICAgICAgIHJldHVy
biAiV2luZG93Il9zOwogICAgIH0KICAgICBVTlJFQUNIQUJMRSgpOwotICAgIHJldHVybiAiIjsK
KyAgICByZXR1cm4gIiJfczsKIH0KIAogZW51bSBjbGFzcyBBY2Nlc3NpYmlsaXR5RGV0YWNobWVu
dFR5cGUgeyBDYWNoZURlc3Ryb3llZCwgRWxlbWVudERlc3Ryb3llZCwgRWxlbWVudENoYW5nZWQg
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3QuY3BwCmluZGV4IDQ0MjI5NTVhMzg2NWRiYzVkZDcyMzU0Y2JiZmJm
MjAyNzY3MTViMDYuLmE2ZDMxMDJjODgyYTYwOThmNDc5MmI3YmNkMDZiYTI2ZDQyODdkOGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5UmVuZGVyT2JqZWN0LmNwcApAQCAtMjc4NywxMSArMjc4NywxMSBAQCBib29sIEFjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3Q6OnJlbmRlck9iamVjdElzT2JzZXJ2YWJsZShSZW5kZXJPYmplY3Qm
IHJlbmRlcmVyKQogICAgIGlmICghbm9kZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIAot
ICAgIGlmIChub2RlSGFzUm9sZShub2RlLCAibGlzdGJveCIpIHx8IChpczxSZW5kZXJCb3hNb2Rl
bE9iamVjdD4ocmVuZGVyZXIpICYmIGRvd25jYXN0PFJlbmRlckJveE1vZGVsT2JqZWN0PihyZW5k
ZXJlcikuaXNMaXN0Qm94KCkpKQorICAgIGlmIChub2RlSGFzUm9sZShub2RlLCAibGlzdGJveCJf
cykgfHwgKGlzPFJlbmRlckJveE1vZGVsT2JqZWN0PihyZW5kZXJlcikgJiYgZG93bmNhc3Q8UmVu
ZGVyQm94TW9kZWxPYmplY3Q+KHJlbmRlcmVyKS5pc0xpc3RCb3goKSkpCiAgICAgICAgIHJldHVy
biB0cnVlOwogCiAgICAgLy8gVGV4dGJveGVzIHNob3VsZCBzZW5kIG91dCBub3RpZmljYXRpb25z
LgotICAgIGlmIChub2RlSGFzUm9sZShub2RlLCAidGV4dGJveCIpIHx8IChpczxFbGVtZW50Pigq
bm9kZSkgJiYgY29udGVudEVkaXRhYmxlQXR0cmlidXRlSXNFbmFibGVkKGRvd25jYXN0PEVsZW1l
bnQ+KG5vZGUpKSkpCisgICAgaWYgKG5vZGVIYXNSb2xlKG5vZGUsICJ0ZXh0Ym94Il9zKSB8fCAo
aXM8RWxlbWVudD4oKm5vZGUpICYmIGNvbnRlbnRFZGl0YWJsZUF0dHJpYnV0ZUlzRW5hYmxlZChk
b3duY2FzdDxFbGVtZW50Pihub2RlKSkpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAKICAg
ICByZXR1cm4gZmFsc2U7CkBAIC0yODQwLDcgKzI4NDAsNyBAQCBib29sIEFjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3Q6OnNob3VsZElnbm9yZUF0dHJpYnV0ZVJvbGUoKSBjb25zdAogCiBBY2Nlc3Np
YmlsaXR5Um9sZSBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpkZXRlcm1pbmVBY2Nlc3NpYmls
aXR5Um9sZSgpCiB7Ci0gICAgQVhUUkFDRSgiQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6ZGV0
ZXJtaW5lQWNjZXNzaWJpbGl0eVJvbGUiKTsKKyAgICBBWFRSQUNFKCJBY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0OjpkZXRlcm1pbmVBY2Nlc3NpYmlsaXR5Um9sZSJfcyk7CiAgICAgaWYgKCFtX3Jl
bmRlcmVyKQogICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVJvbGU6OlVua25vd247CiAKQEAg
LTMyODAsNyArMzI4MCw3IEBAIHZvaWQgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6YWRkTGlz
dEl0ZW1NYXJrZXIoKQogCiB2b2lkIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnVwZGF0ZVJv
bGVBZnRlckNoaWxkcmVuQ3JlYXRpb24oKQogewotICAgIEFYVFJBQ0UoIkFjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3Q6OnVwZGF0ZVJvbGVBZnRlckNoaWxkcmVuQ3JlYXRpb24iKTsKKyAgICBBWFRS
QUNFKCJBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojp1cGRhdGVSb2xlQWZ0ZXJDaGlsZHJlbkNy
ZWF0aW9uIl9zKTsKICAgICAvLyBJZiBhIG1lbnUgZG9lcyBub3QgaGF2ZSB2YWxpZCBtZW51aXRl
bSBjaGlsZHJlbiwgaXQgc2hvdWxkIG5vdCBiZSBleHBvc2VkIGFzIGEgbWVudS4KICAgICBhdXRv
IHJvbGUgPSByb2xlVmFsdWUoKTsKICAgICBpZiAocm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6
TWVudSkgewpAQCAtMzM2NCw3ICszMzY0LDcgQEAgY29uc3QgU3RyaW5nIEFjY2Vzc2liaWxpdHlS
ZW5kZXJPYmplY3Q6OmxpdmVSZWdpb25SZWxldmFudCgpIGNvbnN0CiAKICAgICAvLyBEZWZhdWx0
IGFyaWEtcmVsZXZhbnQgPSAiYWRkaXRpb25zIHRleHQiLgogICAgIGlmIChyZWxldmFudC5pc0Vt
cHR5KCkpCi0gICAgICAgIHJldHVybiAiYWRkaXRpb25zIHRleHQiOworICAgICAgICByZXR1cm4g
ImFkZGl0aW9ucyB0ZXh0Il9zOwogICAgIAogICAgIHJldHVybiByZWxldmFudDsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlQ2Vs
bC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUNl
bGwuY3BwCmluZGV4IDI3Y2Y4NjlmNGQ1NzcxYzk4NGIyYmUzZjQ2MTI2Yjk4NzdiNjAwMTUuLjM0
YTdiYTdjY2RiNGU1M2FhNTU0NjE5ODBmMTU0ZDM4OGMyYWY0M2UgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlQ2VsbC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVDZWxsLmNwcApA
QCAtNjUsNyArNjUsNyBAQCBib29sIEFjY2Vzc2liaWxpdHlUYWJsZUNlbGw6OmNvbXB1dGVBY2Nl
c3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3QKICAgICAKICAgICAvLyBJZ25vcmUgYW5vbnltb3Vz
IHRhYmxlIGNlbGxzIGFzIGxvbmcgYXMgdGhleSdyZSBub3QgaW4gYSB0YWJsZSAoaWUuIHdoZW4g
ZGlzcGxheTp0YWJsZSBpcyB1c2VkKS4KICAgICBSZW5kZXJPYmplY3QqIHJlbmRlclRhYmxlID0g
aXM8UmVuZGVyVGFibGVDZWxsPihyZW5kZXJlcigpKSA/IGRvd25jYXN0PFJlbmRlclRhYmxlQ2Vs
bD4oKm1fcmVuZGVyZXIpLnRhYmxlKCkgOiBudWxscHRyOwotICAgIGJvb2wgaW5UYWJsZSA9IHJl
bmRlclRhYmxlICYmIHJlbmRlclRhYmxlLT5ub2RlKCkgJiYgKHJlbmRlclRhYmxlLT5ub2RlKCkt
Pmhhc1RhZ05hbWUodGFibGVUYWcpIHx8IG5vZGVIYXNSb2xlKHJlbmRlclRhYmxlLT5ub2RlKCks
ICJncmlkIikpOworICAgIGJvb2wgaW5UYWJsZSA9IHJlbmRlclRhYmxlICYmIHJlbmRlclRhYmxl
LT5ub2RlKCkgJiYgKHJlbmRlclRhYmxlLT5ub2RlKCktPmhhc1RhZ05hbWUodGFibGVUYWcpIHx8
IG5vZGVIYXNSb2xlKHJlbmRlclRhYmxlLT5ub2RlKCksICJncmlkIl9zKSk7CiAgICAgaWYgKCFu
b2RlKCkgJiYgIWluVGFibGUpCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRyZWUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VHJlZS5jcHAKaW5k
ZXggNTkwYzk2MTU5NjA2MGRiNmRiMTU1Mzg5OGViMTZmMzBiNDU0ZTY4ZC4uMWMwMGJjOTU0MjNl
Mjk2YWQ1MTI2Mzc3ZTQ4MWM3Y2U3OWRmYmQwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VHJlZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VHJlZS5jcHAKQEAgLTY4LDcgKzY4LDcgQEAgQWNj
ZXNzaWJpbGl0eVJvbGUgQWNjZXNzaWJpbGl0eVRyZWU6OmRldGVybWluZUFjY2Vzc2liaWxpdHlS
b2xlKCkKIGJvb2wgQWNjZXNzaWJpbGl0eVRyZWU6Om5vZGVIYXNUcmVlSXRlbUNoaWxkKE5vZGUm
IG5vZGUpIGNvbnN0CiB7CiAgICAgZm9yIChhdXRvKiBjaGlsZCA9IG5vZGUuZmlyc3RDaGlsZCgp
OyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkgewotICAgICAgICBpZiAobm9k
ZUhhc1JvbGUoY2hpbGQsICJ0cmVlaXRlbSIpKQorICAgICAgICBpZiAobm9kZUhhc1JvbGUoY2hp
bGQsICJ0cmVlaXRlbSJfcykpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAg
cmV0dXJuIGZhbHNlOwpAQCAtOTIsMTQgKzkyLDE0IEBAIGJvb2wgQWNjZXNzaWJpbGl0eVRyZWU6
OmlzVHJlZVZhbGlkKCkgY29uc3QKIAogICAgICAgICBpZiAoIWlzPEVsZW1lbnQ+KCpjaGlsZCkp
CiAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgaWYgKG5vZGVIYXNSb2xlKGNoaWxkLCAi
dHJlZWl0ZW0iKSkKKyAgICAgICAgaWYgKG5vZGVIYXNSb2xlKGNoaWxkLCAidHJlZWl0ZW0iX3Mp
KQogICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIGlmIChub2RlSGFzUm9sZShjaGlsZCwg
InByZXNlbnRhdGlvbiIpKSB7CisgICAgICAgIGlmIChub2RlSGFzUm9sZShjaGlsZCwgInByZXNl
bnRhdGlvbiJfcykpIHsKICAgICAgICAgICAgIGlmICghbm9kZUhhc1RyZWVJdGVtQ2hpbGQoKmNo
aWxkKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICBjb250aW51
ZTsKICAgICAgICAgfQotICAgICAgICBpZiAoIW5vZGVIYXNSb2xlKGNoaWxkLCAiZ3JvdXAiKSkK
KyAgICAgICAgaWYgKCFub2RlSGFzUm9sZShjaGlsZCwgImdyb3VwIl9zKSkKICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKIAogICAgICAgICBmb3IgKGF1dG8qIGdyb3VwQ2hpbGQgPSBjaGlsZC0+
Zmlyc3RDaGlsZCgpOyBncm91cENoaWxkOyBncm91cENoaWxkID0gZ3JvdXBDaGlsZC0+bmV4dFNp
YmxpbmcoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0
ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHAKaW5kZXggYTEzNGFlNzUyZmEyMDEy
ZTc4MGQ5OWZhMTA4YzNmNDg3OTZjMTExYy4uNWYwMjAxZjA3YjUzNTA1YjcwZGRlMzM5YTJjYjI5
NjU3Y2Y3ODQ1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29s
YXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHAKQEAgLTMwNSw3ICszMDUs
NyBAQCB2b2lkIEFYSXNvbGF0ZWRPYmplY3Q6OmluaXRpYWxpemVBdHRyaWJ1dGVEYXRhKEFYQ29y
ZU9iamVjdCYgY29yZU9iamVjdCwgYm9vbCBpcwogICAgICAgICBzZXRQcm9wZXJ0eShBWFByb3Bl
cnR5TmFtZTo6VGV4dExlbmd0aCwgb2JqZWN0LnRleHRMZW5ndGgoKSk7CiAKICAgICBpZiAob2Jq
ZWN0LmlzUmFkaW9CdXR0b24oKSkgewotICAgICAgICBpZiAoYXV0byBuYW1lQXR0cmlidXRlID0g
b2JqZWN0LmF0dHJpYnV0ZVZhbHVlKCJuYW1lIikpCisgICAgICAgIGlmIChhdXRvIG5hbWVBdHRy
aWJ1dGUgPSBvYmplY3QuYXR0cmlidXRlVmFsdWUoIm5hbWUiX3MpKQogICAgICAgICAgICAgc2V0
UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6Ok5hbWVBdHRyaWJ1dGUsIG5hbWVBdHRyaWJ1dGUtPmlz
b2xhdGVkQ29weSgpKTsKICAgICB9CiAKQEAgLTM2Miw3ICszNjIsNyBAQCB2b2lkIEFYSXNvbGF0
ZWRPYmplY3Q6OmluaXRpYWxpemVBdHRyaWJ1dGVEYXRhKEFYQ29yZU9iamVjdCYgY29yZU9iamVj
dCwgYm9vbCBpcwogICAgIFN0cmluZyBjb21iaW5lZENsYXNzTGlzdDsKICAgICBmb3IgKGF1dG8g
aXQgPSBjbGFzc0xpc3QuYmVnaW4oKSwgZW5kID0gY2xhc3NMaXN0LmVuZCgpOyBpdCAhPSBlbmQ7
ICsraXQpIHsKICAgICAgICAgY29tYmluZWRDbGFzc0xpc3QuYXBwZW5kKCppdCk7Ci0gICAgICAg
IGNvbWJpbmVkQ2xhc3NMaXN0LmFwcGVuZCgiICIpOworICAgICAgICBjb21iaW5lZENsYXNzTGlz
dC5hcHBlbmQoIiAiX3MpOwogICAgIH0KICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6
Q2xhc3NMaXN0LCBjb21iaW5lZENsYXNzTGlzdCk7CiAKQEAgLTYwMCw3ICs2MDAsNyBAQCB2b2lk
IEFYSXNvbGF0ZWRPYmplY3Q6OmFjY2Vzc2liaWxpdHlUZXh0KFZlY3RvcjxBY2Nlc3NpYmlsaXR5
VGV4dD4mIHRleHRzKSBjb25zdAogdm9pZCBBWElzb2xhdGVkT2JqZWN0OjpjbGFzc0xpc3QoVmVj
dG9yPFN0cmluZz4mIGxpc3QpIGNvbnN0CiB7CiAgICAgU3RyaW5nIGNsYXNzTGlzdCA9IHN0cmlu
Z0F0dHJpYnV0ZVZhbHVlKEFYUHJvcGVydHlOYW1lOjpDbGFzc0xpc3QpOwotICAgIGxpc3QuYXBw
ZW5kVmVjdG9yKGNsYXNzTGlzdC5zcGxpdCgiICIpKTsKKyAgICBsaXN0LmFwcGVuZFZlY3Rvcihj
bGFzc0xpc3Quc3BsaXQoIiAiX3MpKTsKIH0KIAogUEFMOjpTZXNzaW9uSUQgQVhJc29sYXRlZE9i
amVjdDo6c2Vzc2lvbklEKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmNwcAppbmRleCA2N2Y1
YjFkZWZkOWM0NzhlZGViYjA3OTNjNjUwZTM4Y2YzOWEzYzRiLi4xY2U3ODUwMmQyZWM3NzIyN2Ni
ZjNkYjI3NTBjMDdhYmNlODM5Y2U3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuY3BwCkBAIC02Miwx
OCArNjIsMTggQEAgQVhJc29sYXRlZFRyZWU6OkFYSXNvbGF0ZWRUcmVlKEFYT2JqZWN0Q2FjaGUq
IGF4T2JqZWN0Q2FjaGUpCiAgICAgLCBtX2F4T2JqZWN0Q2FjaGUoYXhPYmplY3RDYWNoZSkKICAg
ICAsIG1fdXNlZE9uQVhUaHJlYWQoYXhPYmplY3RDYWNoZS0+dXNlZE9uQVhUaHJlYWQoKSkKIHsK
LSAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6QVhJc29sYXRlZFRyZWUiKTsKKyAgICBBWFRS
QUNFKCJBWElzb2xhdGVkVHJlZTo6QVhJc29sYXRlZFRyZWUiX3MpOwogICAgIEFTU0VSVChpc01h
aW5UaHJlYWQoKSk7CiB9CiAKIEFYSXNvbGF0ZWRUcmVlOjp+QVhJc29sYXRlZFRyZWUoKQogewot
ICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjp+QVhJc29sYXRlZFRyZWUiKTsKKyAgICBBWFRS
QUNFKCJBWElzb2xhdGVkVHJlZTo6fkFYSXNvbGF0ZWRUcmVlIl9zKTsKIH0KIAogdm9pZCBBWElz
b2xhdGVkVHJlZTo6Y2xlYXIoKQogewotICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjpjbGVh
ciIpOworICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjpjbGVhciJfcyk7CiAgICAgQVNTRVJU
KGlzTWFpblRocmVhZCgpKTsKICAgICBtX2F4T2JqZWN0Q2FjaGUgPSBudWxscHRyOwogICAgIG1f
bm9kZU1hcC5jbGVhcigpOwpAQCAtODUsMTQgKzg1LDE0IEBAIHZvaWQgQVhJc29sYXRlZFRyZWU6
OmNsZWFyKCkKIAogUmVmUHRyPEFYSXNvbGF0ZWRUcmVlPiBBWElzb2xhdGVkVHJlZTo6dHJlZUZv
cklEKEFYSXNvbGF0ZWRUcmVlSUQgdHJlZUlEKQogewotICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRU
cmVlOjp0cmVlRm9ySUQiKTsKKyAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6dHJlZUZvcklE
Il9zKTsKICAgICBMb2NrZXIgbG9ja2VyIHsgc19jYWNoZUxvY2sgfTsKICAgICByZXR1cm4gdHJl
ZUlEQ2FjaGUoKS5nZXQodHJlZUlEKTsKIH0KIAogUmVmPEFYSXNvbGF0ZWRUcmVlPiBBWElzb2xh
dGVkVHJlZTo6Y3JlYXRlKEFYT2JqZWN0Q2FjaGUqIGF4T2JqZWN0Q2FjaGUpCiB7Ci0gICAgQVhU
UkFDRSgiQVhJc29sYXRlZFRyZWU6OmNyZWF0ZSIpOworICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRU
cmVlOjpjcmVhdGUiX3MpOwogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgQVNTRVJU
KGF4T2JqZWN0Q2FjaGUgJiYgYXhPYmplY3RDYWNoZS0+cGFnZUlEKCkpOwogCkBAIC0xMjUsNyAr
MTI1LDcgQEAgUmVmPEFYSXNvbGF0ZWRUcmVlPiBBWElzb2xhdGVkVHJlZTo6Y3JlYXRlKEFYT2Jq
ZWN0Q2FjaGUqIGF4T2JqZWN0Q2FjaGUpCiAKIHZvaWQgQVhJc29sYXRlZFRyZWU6OnJlbW92ZVRy
ZWVGb3JQYWdlSUQoUGFnZUlkZW50aWZpZXIgcGFnZUlEKQogewotICAgIEFYVFJBQ0UoIkFYSXNv
bGF0ZWRUcmVlOjpyZW1vdmVUcmVlRm9yUGFnZUlEIik7CisgICAgQVhUUkFDRSgiQVhJc29sYXRl
ZFRyZWU6OnJlbW92ZVRyZWVGb3JQYWdlSUQiX3MpOwogICAgIEFTU0VSVChpc01haW5UaHJlYWQo
KSk7CiAgICAgTG9ja2VyIGxvY2tlciB7IHNfY2FjaGVMb2NrIH07CiAKQEAgLTE1Nyw3ICsxNTcs
NyBAQCBSZWZQdHI8QVhJc29sYXRlZE9iamVjdD4gQVhJc29sYXRlZFRyZWU6Om5vZGVGb3JJRChB
WElEIGF4SUQpIGNvbnN0CiAKIFZlY3RvcjxSZWZQdHI8QVhDb3JlT2JqZWN0Pj4gQVhJc29sYXRl
ZFRyZWU6Om9iamVjdHNGb3JJRHMoY29uc3QgVmVjdG9yPEFYSUQ+JiBheElEcykgY29uc3QKIHsK
LSAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6b2JqZWN0c0ZvcklEcyIpOworICAgIEFYVFJB
Q0UoIkFYSXNvbGF0ZWRUcmVlOjpvYmplY3RzRm9ySURzIl9zKTsKICAgICBWZWN0b3I8UmVmUHRy
PEFYQ29yZU9iamVjdD4+IHJlc3VsdDsKICAgICByZXN1bHQucmVzZXJ2ZUluaXRpYWxDYXBhY2l0
eShheElEcy5zaXplKCkpOwogICAgIGZvciAoYXV0byYgYXhJRCA6IGF4SURzKSB7CkBAIC0xNzgs
NyArMTc4LDcgQEAgVmVjdG9yPEFYSUQ+IEFYSXNvbGF0ZWRUcmVlOjppZHNGb3JPYmplY3RzKGNv
bnN0IFZlY3RvcjxSZWZQdHI8QVhDb3JlT2JqZWN0Pj4mIG8KIAogdm9pZCBBWElzb2xhdGVkVHJl
ZTo6Z2VuZXJhdGVTdWJ0cmVlKEFYQ29yZU9iamVjdCYgYXhPYmplY3QsIEFYQ29yZU9iamVjdCog
YXhQYXJlbnQsIGJvb2wgYXR0YWNoV3JhcHBlcikKIHsKLSAgICBBWFRSQUNFKCJBWElzb2xhdGVk
VHJlZTo6Z2VuZXJhdGVTdWJ0cmVlIik7CisgICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6Omdl
bmVyYXRlU3VidHJlZSJfcyk7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIAogICAgIGlm
ICghYXhPYmplY3Qub2JqZWN0SUQoKS5pc1ZhbGlkKCkpCkBAIC0yNzcsNyArMjc3LDcgQEAgdm9p
ZCBBWElzb2xhdGVkVHJlZTo6cXVldWVDaGFuZ2VzQW5kUmVtb3ZhbHMoY29uc3QgVmVjdG9yPE5v
ZGVDaGFuZ2U+JiBjaGFuZ2VzLAogCiB2b2lkIEFYSXNvbGF0ZWRUcmVlOjpjb2xsZWN0Tm9kZUNo
YW5nZXNGb3JTdWJ0cmVlKEFYQ29yZU9iamVjdCYgYXhPYmplY3QsIEFYSUQgcGFyZW50SUQsIGJv
b2wgYXR0YWNoV3JhcHBlciwgVmVjdG9yPE5vZGVDaGFuZ2U+JiBjaGFuZ2VzLCBIYXNoU2V0PEFY
SUQ+KiBpZHNCZWluZ0NoYW5nZWQpCiB7Ci0gICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OmNv
bGxlY3ROb2RlQ2hhbmdlc0ZvclN1YnRyZWUiKTsKKyAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJl
ZTo6Y29sbGVjdE5vZGVDaGFuZ2VzRm9yU3VidHJlZSJfcyk7CiAgICAgQVNTRVJUKGlzTWFpblRo
cmVhZCgpKTsKIAogICAgIGF1dG8gbm9kZUNoYW5nZSA9IG5vZGVDaGFuZ2VGb3JPYmplY3QoYXhP
YmplY3QsIHBhcmVudElELCBhdHRhY2hXcmFwcGVyKTsKQEAgLTI5NSw3ICsyOTUsNyBAQCB2b2lk
IEFYSXNvbGF0ZWRUcmVlOjpjb2xsZWN0Tm9kZUNoYW5nZXNGb3JTdWJ0cmVlKEFYQ29yZU9iamVj
dCYgYXhPYmplY3QsIEFYSUQgcAogCiB2b2lkIEFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVOb2RlKEFY
Q29yZU9iamVjdCYgYXhPYmplY3QpCiB7Ci0gICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OnVw
ZGF0ZU5vZGUiKTsKKyAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6dXBkYXRlTm9kZSJfcyk7
CiAgICAgQVhMT0coJmF4T2JqZWN0KTsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogCkBA
IC0zMTMsNyArMzEzLDcgQEAgdm9pZCBBWElzb2xhdGVkVHJlZTo6dXBkYXRlTm9kZShBWENvcmVP
YmplY3QmIGF4T2JqZWN0KQogCiB2b2lkIEFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVOb2RlUHJvcGVy
dHkoY29uc3QgQVhDb3JlT2JqZWN0JiBheE9iamVjdCwgQVhQcm9wZXJ0eU5hbWUgcHJvcGVydHkp
CiB7Ci0gICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OnVwZGF0ZU5vZGVQcm9wZXJ0eSIpOwor
ICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVOb2RlUHJvcGVydHkiX3MpOwogICAg
IEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKICAgICBBWFByb3BlcnR5TWFwIHByb3BlcnR5TWFw
OwpAQCAtMzQ4LDcgKzM0OCw3IEBAIHZvaWQgQVhJc29sYXRlZFRyZWU6OnVwZGF0ZU5vZGVQcm9w
ZXJ0eShjb25zdCBBWENvcmVPYmplY3QmIGF4T2JqZWN0LCBBWFByb3BlcnR5CiAKIHZvaWQgQVhJ
c29sYXRlZFRyZWU6OnVwZGF0ZUNoaWxkcmVuKEFYQ29yZU9iamVjdCYgYXhPYmplY3QpCiB7Ci0g
ICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OnVwZGF0ZUNoaWxkcmVuIik7CisgICAgQVhUUkFD
RSgiQVhJc29sYXRlZFRyZWU6OnVwZGF0ZUNoaWxkcmVuIl9zKTsKICAgICBBWExPRygiRm9yIEFY
T2JqZWN0OiIpOwogICAgIEFYTE9HKCZheE9iamVjdCk7CiAgICAgQVNTRVJUKGlzTWFpblRocmVh
ZCgpKTsKQEAgLTQyMiw3ICs0MjIsNyBAQCB2b2lkIEFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVDaGls
ZHJlbihBWENvcmVPYmplY3QmIGF4T2JqZWN0KQogCiBSZWZQdHI8QVhJc29sYXRlZE9iamVjdD4g
QVhJc29sYXRlZFRyZWU6OmZvY3VzZWROb2RlKCkKIHsKLSAgICBBWFRSQUNFKCJBWElzb2xhdGVk
VHJlZTo6Zm9jdXNlZE5vZGUiKTsKKyAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6Zm9jdXNl
ZE5vZGUiX3MpOwogICAgIFJFTEVBU0VfQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CiAgICAgLy8g
QXBwbHkgcGVuZGluZyBjaGFuZ2VzIGluIGNhc2UgZm9jdXMgaGFzIGNoYW5nZWQgYW5kIGhhc24n
dCBiZWVuIHVwZGF0ZWQuCiAgICAgYXBwbHlQZW5kaW5nQ2hhbmdlcygpOwpAQCAtNDM0LDE0ICs0
MzQsMTQgQEAgUmVmUHRyPEFYSXNvbGF0ZWRPYmplY3Q+IEFYSXNvbGF0ZWRUcmVlOjpmb2N1c2Vk
Tm9kZSgpCiAKIFJlZlB0cjxBWElzb2xhdGVkT2JqZWN0PiBBWElzb2xhdGVkVHJlZTo6cm9vdE5v
ZGUoKQogewotICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjpyb290Tm9kZSIpOworICAgIEFY
VFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjpyb290Tm9kZSJfcyk7CiAgICAgTG9ja2VyIGxvY2tlciB7
IG1fY2hhbmdlTG9nTG9jayB9OwogICAgIHJldHVybiBtX3Jvb3ROb2RlOwogfQogCiB2b2lkIEFY
SXNvbGF0ZWRUcmVlOjpzZXRSb290Tm9kZShBWElzb2xhdGVkT2JqZWN0KiByb290KQogewotICAg
IEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjpzZXRSb290Tm9kZSIpOworICAgIEFYVFJBQ0UoIkFY
SXNvbGF0ZWRUcmVlOjpzZXRSb290Tm9kZSJfcyk7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgp
KTsKICAgICBBU1NFUlQobV9jaGFuZ2VMb2dMb2NrLmlzTG9ja2VkKCkpOwogICAgIEFTU0VSVCgh
bV9yb290Tm9kZSk7CkBAIC00NTIsNyArNDUyLDcgQEAgdm9pZCBBWElzb2xhdGVkVHJlZTo6c2V0
Um9vdE5vZGUoQVhJc29sYXRlZE9iamVjdCogcm9vdCkKIAogdm9pZCBBWElzb2xhdGVkVHJlZTo6
c2V0Rm9jdXNlZE5vZGVJRChBWElEIGF4SUQpCiB7Ci0gICAgQVhUUkFDRSgiQVhJc29sYXRlZFRy
ZWU6OnNldEZvY3VzZWROb2RlSUQiKTsKKyAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6c2V0
Rm9jdXNlZE5vZGVJRCJfcyk7CiAgICAgQVhMT0cobWFrZVN0cmluZygiYXhJRCAiLCBheElELmxv
Z2dpbmdTdHJpbmcoKSkpOwogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKQEAgLTQ2Niw3
ICs0NjYsNyBAQCB2b2lkIEFYSXNvbGF0ZWRUcmVlOjpzZXRGb2N1c2VkTm9kZUlEKEFYSUQgYXhJ
RCkKIAogdm9pZCBBWElzb2xhdGVkVHJlZTo6dXBkYXRlTG9hZGluZ1Byb2dyZXNzKGRvdWJsZSBu
ZXdQcm9ncmVzc1ZhbHVlKQogewotICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVM
b2FkaW5nUHJvZ3Jlc3MiKTsKKyAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6dXBkYXRlTG9h
ZGluZ1Byb2dyZXNzIl9zKTsKICAgICBBWExPRyhtYWtlU3RyaW5nKCJVcGRhdGluZyBsb2FkaW5n
IHByb2dyZXNzIHRvICIsIG5ld1Byb2dyZXNzVmFsdWUsICIgZm9yIHRyZWVJRCAiLCB0cmVlSUQo
KSkpOwogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKQEAgLTQ3NSw3ICs0NzUsNyBAQCB2
b2lkIEFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVMb2FkaW5nUHJvZ3Jlc3MoZG91YmxlIG5ld1Byb2dy
ZXNzVmFsdWUpCiAKIHZvaWQgQVhJc29sYXRlZFRyZWU6OnJlbW92ZU5vZGUoY29uc3QgQVhDb3Jl
T2JqZWN0JiBheE9iamVjdCkKIHsKLSAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6cmVtb3Zl
Tm9kZSIpOworICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjpyZW1vdmVOb2RlIl9zKTsKICAg
ICBBWExPRyhtYWtlU3RyaW5nKCJvYmplY3RJRCAiLCBheE9iamVjdC5vYmplY3RJRCgpLmxvZ2dp
bmdTdHJpbmcoKSkpOwogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKQEAgLTQ4NSw3ICs0
ODUsNyBAQCB2b2lkIEFYSXNvbGF0ZWRUcmVlOjpyZW1vdmVOb2RlKGNvbnN0IEFYQ29yZU9iamVj
dCYgYXhPYmplY3QpCiAKIHZvaWQgQVhJc29sYXRlZFRyZWU6OnJlbW92ZVN1YnRyZWVGcm9tTm9k
ZU1hcChBWElEIG9iamVjdElELCBBWENvcmVPYmplY3QqIGF4UGFyZW50LCBjb25zdCBIYXNoU2V0
PEFYSUQ+JiBpZHNUb0tlZXApCiB7Ci0gICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OnJlbW92
ZVN1YnRyZWVGcm9tTm9kZU1hcCIpOworICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjpyZW1v
dmVTdWJ0cmVlRnJvbU5vZGVNYXAiX3MpOwogICAgIEFYTE9HKG1ha2VTdHJpbmcoIlJlbW92aW5n
IHN1YnRyZWUgZm9yIG9iamVjdElEICIsIG9iamVjdElELmxvZ2dpbmdTdHJpbmcoKSkpOwogICAg
IEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKQEAgLTUyMyw3ICs1MjMsNyBAQCB2b2lkIEFYSXNv
bGF0ZWRUcmVlOjpyZW1vdmVTdWJ0cmVlRnJvbU5vZGVNYXAoQVhJRCBvYmplY3RJRCwgQVhDb3Jl
T2JqZWN0KiBheFBhcgogCiB2b2lkIEFYSXNvbGF0ZWRUcmVlOjphcHBseVBlbmRpbmdDaGFuZ2Vz
KCkKIHsKLSAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6YXBwbHlQZW5kaW5nQ2hhbmdlcyIp
OworICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjphcHBseVBlbmRpbmdDaGFuZ2VzIl9zKTsK
IAogICAgIC8vIEluIGlzb2xhdGVkIHRyZWUgbW9kZSAyLCBvbmx5IGFwcGx5IHBlbmRpbmcgY2hh
bmdlcyBvbiB0aGUgQVggdGhyZWFkLgogICAgIEFTU0VSVChtX3VzZWRPbkFYVGhyZWFkID8gIWlz
TWFpblRocmVhZCgpIDogaXNNYWluVGhyZWFkKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9tYWMvQWNjZXNzaWJpbGl0eU9iamVjdE1hYy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FjY2Vzc2liaWxpdHlPYmplY3RNYWMubW0KaW5kZXgg
YTI4OTUzODc0YzgwNTUxMjdmODBiMmZjMzYyZDljZTgyMWU3MDFjNC4uZmM2ZTQwOGNmYzdhOTI1
M2ExZTg5NTA3ZTAwNTQ5NDAzOGM5ZmIzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9tYWMvQWNjZXNzaWJpbGl0eU9iamVjdE1hYy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0TWFjLm1tCkBAIC0yMjIs
MjAgKzIyMiwyMCBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0eU9iamVjdDo6c3Vicm9sZVBsYXRmb3Jt
U3RyaW5nKCkgY29uc3QKICAgICB9CiAKICAgICBpZiAoaXNNZXRlcigpKQotICAgICAgICByZXR1
cm4gIkFYTWV0ZXIiOworICAgICAgICByZXR1cm4gIkFYTWV0ZXIiX3M7CiAKICNpZiBFTkFCTEUo
TU9ERUxfRUxFTUVOVCkKICAgICBpZiAoaXNNb2RlbCgpKQotICAgICAgICByZXR1cm4gIkFYTW9k
ZWwiOworICAgICAgICByZXR1cm4gIkFYTW9kZWwiX3M7CiAjZW5kaWYKIAogICAgIEFjY2Vzc2li
aWxpdHlSb2xlIHJvbGUgPSByb2xlVmFsdWUoKTsKICAgICBpZiAocm9sZSA9PSBBY2Nlc3NpYmls
aXR5Um9sZTo6SG9yaXpvbnRhbFJ1bGUpCi0gICAgICAgIHJldHVybiAiQVhDb250ZW50U2VwYXJh
dG9yIjsKKyAgICAgICAgcmV0dXJuICJBWENvbnRlbnRTZXBhcmF0b3IiX3M7CiAgICAgaWYgKHJv
bGUgPT0gQWNjZXNzaWJpbGl0eVJvbGU6OlRvZ2dsZUJ1dHRvbikKICAgICAgICAgcmV0dXJuIE5T
QWNjZXNzaWJpbGl0eVRvZ2dsZVN1YnJvbGU7CiAgICAgaWYgKHJvbGUgPT0gQWNjZXNzaWJpbGl0
eVJvbGU6OkZvb3RlcikKLSAgICAgICAgcmV0dXJuICJBWEZvb3RlciI7CisgICAgICAgIHJldHVy
biAiQVhGb290ZXIiX3M7CiAgICAgaWYgKHJvbGUgPT0gQWNjZXNzaWJpbGl0eVJvbGU6OlNwaW5C
dXR0b25QYXJ0KSB7CiAgICAgICAgIGlmIChpc0luY3JlbWVudG9yKCkpCiAgICAgICAgICAgICBy
ZXR1cm4gTlNBY2Nlc3NpYmlsaXR5SW5jcmVtZW50QXJyb3dTdWJyb2xlOwpAQCAtMjQzLDc5ICsy
NDMsNzkgQEAgU3RyaW5nIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnN1YnJvbGVQbGF0Zm9ybVN0cmlu
ZygpIGNvbnN0CiAgICAgfQogCiAgICAgaWYgKGlzRmlsZVVwbG9hZEJ1dHRvbigpKQotICAgICAg
ICByZXR1cm4gIkFYRmlsZVVwbG9hZEJ1dHRvbiI7CisgICAgICAgIHJldHVybiAiQVhGaWxlVXBs
b2FkQnV0dG9uIl9zOwogCiAgICAgaWYgKGlzVHJlZUl0ZW0oKSkKICAgICAgICAgcmV0dXJuIE5T
QWNjZXNzaWJpbGl0eU91dGxpbmVSb3dTdWJyb2xlOwogCiAgICAgaWYgKGlzRmllbGRzZXQoKSkK
LSAgICAgICAgcmV0dXJuICJBWEZpZWxkc2V0IjsKKyAgICAgICAgcmV0dXJuICJBWEZpZWxkc2V0
Il9zOwogCiAgICAgaWYgKGlzTGlzdCgpKSB7CiAgICAgICAgIGlmIChpc1Vub3JkZXJlZExpc3Qo
KSB8fCBpc09yZGVyZWRMaXN0KCkpCi0gICAgICAgICAgICByZXR1cm4gIkFYQ29udGVudExpc3Qi
OworICAgICAgICAgICAgcmV0dXJuICJBWENvbnRlbnRMaXN0Il9zOwogICAgICAgICBpZiAoaXNE
ZXNjcmlwdGlvbkxpc3QoKSkKLSAgICAgICAgICAgIHJldHVybiAiQVhEZXNjcmlwdGlvbkxpc3Qi
OworICAgICAgICAgICAgcmV0dXJuICJBWERlc2NyaXB0aW9uTGlzdCJfczsKICAgICB9CiAKICAg
ICAvLyBBUklBIGNvbnRlbnQgc3Vicm9sZXMuCiAgICAgc3dpdGNoIChyb2xlKSB7CiAgICAgY2Fz
ZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtCYW5uZXI6Ci0gICAgICAgIHJldHVybiAiQVhM
YW5kbWFya0Jhbm5lciI7CisgICAgICAgIHJldHVybiAiQVhMYW5kbWFya0Jhbm5lciJfczsKICAg
ICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpMYW5kbWFya0NvbXBsZW1lbnRhcnk6Ci0gICAgICAg
IHJldHVybiAiQVhMYW5kbWFya0NvbXBsZW1lbnRhcnkiOworICAgICAgICByZXR1cm4gIkFYTGFu
ZG1hcmtDb21wbGVtZW50YXJ5Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRt
YXJrQ29udGVudEluZm86Ci0gICAgICAgIHJldHVybiAiQVhMYW5kbWFya0NvbnRlbnRJbmZvIjsK
KyAgICAgICAgcmV0dXJuICJBWExhbmRtYXJrQ29udGVudEluZm8iX3M7CiAgICAgY2FzZSBBY2Nl
c3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtNYWluOgotICAgICAgICByZXR1cm4gIkFYTGFuZG1hcmtN
YWluIjsKKyAgICAgICAgcmV0dXJuICJBWExhbmRtYXJrTWFpbiJfczsKICAgICBjYXNlIEFjY2Vz
c2liaWxpdHlSb2xlOjpMYW5kbWFya05hdmlnYXRpb246Ci0gICAgICAgIHJldHVybiAiQVhMYW5k
bWFya05hdmlnYXRpb24iOworICAgICAgICByZXR1cm4gIkFYTGFuZG1hcmtOYXZpZ2F0aW9uIl9z
OwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJrRG9jUmVnaW9uOgogICAgIGNh
c2UgQWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJrUmVnaW9uOgotICAgICAgICByZXR1cm4gIkFY
TGFuZG1hcmtSZWdpb24iOworICAgICAgICByZXR1cm4gIkFYTGFuZG1hcmtSZWdpb24iX3M7CiAg
ICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtTZWFyY2g6Ci0gICAgICAgIHJldHVy
biAiQVhMYW5kbWFya1NlYXJjaCI7CisgICAgICAgIHJldHVybiAiQVhMYW5kbWFya1NlYXJjaCJf
czsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvbkFsZXJ0OgotICAgICAg
ICByZXR1cm4gIkFYQXBwbGljYXRpb25BbGVydCI7CisgICAgICAgIHJldHVybiAiQVhBcHBsaWNh
dGlvbkFsZXJ0Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uQWxl
cnREaWFsb2c6Ci0gICAgICAgIHJldHVybiAiQVhBcHBsaWNhdGlvbkFsZXJ0RGlhbG9nIjsKKyAg
ICAgICAgcmV0dXJuICJBWEFwcGxpY2F0aW9uQWxlcnREaWFsb2ciX3M7CiAgICAgY2FzZSBBY2Nl
c3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb25EaWFsb2c6Ci0gICAgICAgIHJldHVybiAiQVhBcHBs
aWNhdGlvbkRpYWxvZyI7CisgICAgICAgIHJldHVybiAiQVhBcHBsaWNhdGlvbkRpYWxvZyJfczsK
ICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvbkdyb3VwOgogICAgIGNhc2Ug
QWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uVGV4dEdyb3VwOgogICAgIGNhc2UgQWNjZXNz
aWJpbGl0eVJvbGU6OkZlZWQ6CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6Rm9vdG5vdGU6
Ci0gICAgICAgIHJldHVybiAiQVhBcHBsaWNhdGlvbkdyb3VwIjsKKyAgICAgICAgcmV0dXJuICJB
WEFwcGxpY2F0aW9uR3JvdXAiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGlj
YXRpb25Mb2c6Ci0gICAgICAgIHJldHVybiAiQVhBcHBsaWNhdGlvbkxvZyI7CisgICAgICAgIHJl
dHVybiAiQVhBcHBsaWNhdGlvbkxvZyJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpB
cHBsaWNhdGlvbk1hcnF1ZWU6Ci0gICAgICAgIHJldHVybiAiQVhBcHBsaWNhdGlvbk1hcnF1ZWUi
OworICAgICAgICByZXR1cm4gIkFYQXBwbGljYXRpb25NYXJxdWVlIl9zOwogICAgIGNhc2UgQWNj
ZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uU3RhdHVzOgotICAgICAgICByZXR1cm4gIkFYQXBw
bGljYXRpb25TdGF0dXMiOworICAgICAgICByZXR1cm4gIkFYQXBwbGljYXRpb25TdGF0dXMiX3M7
CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb25UaW1lcjoKLSAgICAgICAg
cmV0dXJuICJBWEFwcGxpY2F0aW9uVGltZXIiOworICAgICAgICByZXR1cm4gIkFYQXBwbGljYXRp
b25UaW1lciJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpEb2N1bWVudDoKICAgICBj
YXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpHcmFwaGljc0RvY3VtZW50OgotICAgICAgICByZXR1cm4g
IkFYRG9jdW1lbnQiOworICAgICAgICByZXR1cm4gIkFYRG9jdW1lbnQiX3M7CiAgICAgY2FzZSBB
Y2Nlc3NpYmlsaXR5Um9sZTo6RG9jdW1lbnRBcnRpY2xlOgotICAgICAgICByZXR1cm4gIkFYRG9j
dW1lbnRBcnRpY2xlIjsKKyAgICAgICAgcmV0dXJuICJBWERvY3VtZW50QXJ0aWNsZSJfczsKICAg
ICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpEb2N1bWVudE1hdGg6Ci0gICAgICAgIHJldHVybiAi
QVhEb2N1bWVudE1hdGgiOworICAgICAgICByZXR1cm4gIkFYRG9jdW1lbnRNYXRoIl9zOwogICAg
IGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRvY3VtZW50Tm90ZToKLSAgICAgICAgcmV0dXJuICJB
WERvY3VtZW50Tm90ZSI7CisgICAgICAgIHJldHVybiAiQVhEb2N1bWVudE5vdGUiX3M7CiAgICAg
Y2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VXNlckludGVyZmFjZVRvb2x0aXA6Ci0gICAgICAgIHJl
dHVybiAiQVhVc2VySW50ZXJmYWNlVG9vbHRpcCI7CisgICAgICAgIHJldHVybiAiQVhVc2VySW50
ZXJmYWNlVG9vbHRpcCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpUYWJQYW5lbDoK
LSAgICAgICAgcmV0dXJuICJBWFRhYlBhbmVsIjsKKyAgICAgICAgcmV0dXJuICJBWFRhYlBhbmVs
Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRlZmluaXRpb246Ci0gICAgICAgIHJl
dHVybiAiQVhEZWZpbml0aW9uIjsKKyAgICAgICAgcmV0dXJuICJBWERlZmluaXRpb24iX3M7CiAg
ICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RGVzY3JpcHRpb25MaXN0VGVybToKICAgICBjYXNl
IEFjY2Vzc2liaWxpdHlSb2xlOjpUZXJtOgotICAgICAgICByZXR1cm4gIkFYVGVybSI7CisgICAg
ICAgIHJldHVybiAiQVhUZXJtIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRlc2Ny
aXB0aW9uTGlzdERldGFpbDoKLSAgICAgICAgcmV0dXJuICJBWERlc2NyaXB0aW9uIjsKKyAgICAg
ICAgcmV0dXJuICJBWERlc2NyaXB0aW9uIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6
OldlYkFwcGxpY2F0aW9uOgotICAgICAgICByZXR1cm4gIkFYV2ViQXBwbGljYXRpb24iOworICAg
ICAgICByZXR1cm4gIkFYV2ViQXBwbGljYXRpb24iX3M7CiAgICAgICAgIC8vIERlZmF1bHQgZG9l
c24ndCByZXR1cm4gYW55dGhpbmcsIHNvIHJvbGVzIGRlZmluZWQgYmVsb3cgY2FuIGJlIGNob3Nl
bi4KICAgICBkZWZhdWx0OgogICAgICAgICBicmVhazsKQEAgLTMyMyw1MSArMzIzLDUxIEBAIFN0
cmluZyBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzdWJyb2xlUGxhdGZvcm1TdHJpbmcoKSBjb25zdAog
CiAgICAgaWYgKHJvbGUgPT0gQWNjZXNzaWJpbGl0eVJvbGU6Ok1hdGhFbGVtZW50KSB7CiAgICAg
ICAgIGlmIChpc01hdGhGcmFjdGlvbigpKQotICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhGcmFj
dGlvbiI7CisgICAgICAgICAgICByZXR1cm4gIkFYTWF0aEZyYWN0aW9uIl9zOwogICAgICAgICBp
ZiAoaXNNYXRoRmVuY2VkKCkpCi0gICAgICAgICAgICByZXR1cm4gIkFYTWF0aEZlbmNlZCI7Cisg
ICAgICAgICAgICByZXR1cm4gIkFYTWF0aEZlbmNlZCJfczsKICAgICAgICAgaWYgKGlzTWF0aFN1
YnNjcmlwdFN1cGVyc2NyaXB0KCkpCi0gICAgICAgICAgICByZXR1cm4gIkFYTWF0aFN1YnNjcmlw
dFN1cGVyc2NyaXB0IjsKKyAgICAgICAgICAgIHJldHVybiAiQVhNYXRoU3Vic2NyaXB0U3VwZXJz
Y3JpcHQiX3M7CiAgICAgICAgIGlmIChpc01hdGhSb3coKSkKLSAgICAgICAgICAgIHJldHVybiAi
QVhNYXRoUm93IjsKKyAgICAgICAgICAgIHJldHVybiAiQVhNYXRoUm93Il9zOwogICAgICAgICBp
ZiAoaXNNYXRoVW5kZXJPdmVyKCkpCi0gICAgICAgICAgICByZXR1cm4gIkFYTWF0aFVuZGVyT3Zl
ciI7CisgICAgICAgICAgICByZXR1cm4gIkFYTWF0aFVuZGVyT3ZlciJfczsKICAgICAgICAgaWYg
KGlzTWF0aFNxdWFyZVJvb3QoKSkKLSAgICAgICAgICAgIHJldHVybiAiQVhNYXRoU3F1YXJlUm9v
dCI7CisgICAgICAgICAgICByZXR1cm4gIkFYTWF0aFNxdWFyZVJvb3QiX3M7CiAgICAgICAgIGlm
IChpc01hdGhSb290KCkpCi0gICAgICAgICAgICByZXR1cm4gIkFYTWF0aFJvb3QiOworICAgICAg
ICAgICAgcmV0dXJuICJBWE1hdGhSb290Il9zOwogICAgICAgICBpZiAoaXNNYXRoVGV4dCgpKQot
ICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhUZXh0IjsKKyAgICAgICAgICAgIHJldHVybiAiQVhN
YXRoVGV4dCJfczsKICAgICAgICAgaWYgKGlzTWF0aE51bWJlcigpKQotICAgICAgICAgICAgcmV0
dXJuICJBWE1hdGhOdW1iZXIiOworICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhOdW1iZXIiX3M7
CiAgICAgICAgIGlmIChpc01hdGhJZGVudGlmaWVyKCkpCi0gICAgICAgICAgICByZXR1cm4gIkFY
TWF0aElkZW50aWZpZXIiOworICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhJZGVudGlmaWVyIl9z
OwogICAgICAgICBpZiAoaXNNYXRoVGFibGUoKSkKLSAgICAgICAgICAgIHJldHVybiAiQVhNYXRo
VGFibGUiOworICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhUYWJsZSJfczsKICAgICAgICAgaWYg
KGlzTWF0aFRhYmxlUm93KCkpCi0gICAgICAgICAgICByZXR1cm4gIkFYTWF0aFRhYmxlUm93IjsK
KyAgICAgICAgICAgIHJldHVybiAiQVhNYXRoVGFibGVSb3ciX3M7CiAgICAgICAgIGlmIChpc01h
dGhUYWJsZUNlbGwoKSkKLSAgICAgICAgICAgIHJldHVybiAiQVhNYXRoVGFibGVDZWxsIjsKKyAg
ICAgICAgICAgIHJldHVybiAiQVhNYXRoVGFibGVDZWxsIl9zOwogICAgICAgICBpZiAoaXNNYXRo
RmVuY2VPcGVyYXRvcigpKQotICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhGZW5jZU9wZXJhdG9y
IjsKKyAgICAgICAgICAgIHJldHVybiAiQVhNYXRoRmVuY2VPcGVyYXRvciJfczsKICAgICAgICAg
aWYgKGlzTWF0aFNlcGFyYXRvck9wZXJhdG9yKCkpCi0gICAgICAgICAgICByZXR1cm4gIkFYTWF0
aFNlcGFyYXRvck9wZXJhdG9yIjsKKyAgICAgICAgICAgIHJldHVybiAiQVhNYXRoU2VwYXJhdG9y
T3BlcmF0b3IiX3M7CiAgICAgICAgIGlmIChpc01hdGhPcGVyYXRvcigpKQotICAgICAgICAgICAg
cmV0dXJuICJBWE1hdGhPcGVyYXRvciI7CisgICAgICAgICAgICByZXR1cm4gIkFYTWF0aE9wZXJh
dG9yIl9zOwogICAgICAgICBpZiAoaXNNYXRoTXVsdGlzY3JpcHQoKSkKLSAgICAgICAgICAgIHJl
dHVybiAiQVhNYXRoTXVsdGlzY3JpcHQiOworICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhNdWx0
aXNjcmlwdCJfczsKICAgICB9CiAKICAgICBpZiAocm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6
VmlkZW8pCi0gICAgICAgIHJldHVybiAiQVhWaWRlbyI7CisgICAgICAgIHJldHVybiAiQVhWaWRl
byJfczsKICAgICBpZiAocm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXVkaW8pCi0gICAgICAg
IHJldHVybiAiQVhBdWRpbyI7CisgICAgICAgIHJldHVybiAiQVhBdWRpbyJfczsKICAgICBpZiAo
cm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6RGV0YWlscykKLSAgICAgICAgcmV0dXJuICJBWERl
dGFpbHMiOworICAgICAgICByZXR1cm4gIkFYRGV0YWlscyJfczsKICAgICBpZiAocm9sZSA9PSBB
Y2Nlc3NpYmlsaXR5Um9sZTo6U3VtbWFyeSkKLSAgICAgICAgcmV0dXJuICJBWFN1bW1hcnkiOwor
ICAgICAgICByZXR1cm4gIkFYU3VtbWFyeSJfczsKICAgICBpZiAocm9sZSA9PSBBY2Nlc3NpYmls
aXR5Um9sZTo6VGltZSkKLSAgICAgICAgcmV0dXJuICJBWFRpbWVHcm91cCI7CisgICAgICAgIHJl
dHVybiAiQVhUaW1lR3JvdXAiX3M7CiAKICAgICBpZiAoaXNNZWRpYVRpbWVsaW5lKCkpCiAgICAg
ICAgIHJldHVybiBOU0FjY2Vzc2liaWxpdHlUaW1lbGluZVN1YnJvbGU7CkBAIC0zNzYsMjUgKzM3
NiwyNSBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0eU9iamVjdDo6c3Vicm9sZVBsYXRmb3JtU3RyaW5n
KCkgY29uc3QKICAgICAgICAgcmV0dXJuIE5TQWNjZXNzaWJpbGl0eVN3aXRjaFN1YnJvbGU7CiAK
ICAgICBpZiAocm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6SW5zZXJ0aW9uKQotICAgICAgICBy
ZXR1cm4gIkFYSW5zZXJ0U3R5bGVHcm91cCI7CisgICAgICAgIHJldHVybiAiQVhJbnNlcnRTdHls
ZUdyb3VwIl9zOwogICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpEZWxldGlvbikK
LSAgICAgICAgcmV0dXJuICJBWERlbGV0ZVN0eWxlR3JvdXAiOworICAgICAgICByZXR1cm4gIkFY
RGVsZXRlU3R5bGVHcm91cCJfczsKICAgICBpZiAocm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6
U3VwZXJzY3JpcHQpCi0gICAgICAgIHJldHVybiAiQVhTdXBlcnNjcmlwdFN0eWxlR3JvdXAiOwor
ICAgICAgICByZXR1cm4gIkFYU3VwZXJzY3JpcHRTdHlsZUdyb3VwIl9zOwogICAgIGlmIChyb2xl
ID09IEFjY2Vzc2liaWxpdHlSb2xlOjpTdWJzY3JpcHQpCi0gICAgICAgIHJldHVybiAiQVhTdWJz
Y3JpcHRTdHlsZUdyb3VwIjsKKyAgICAgICAgcmV0dXJuICJBWFN1YnNjcmlwdFN0eWxlR3JvdXAi
X3M7CiAKICAgICBzd2l0Y2ggKHJvbGUpIHsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpS
dWJ5QmFzZToKLSAgICAgICAgcmV0dXJuICJBWFJ1YnlCYXNlIjsKKyAgICAgICAgcmV0dXJuICJB
WFJ1YnlCYXNlIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlJ1YnlCbG9jazoKLSAg
ICAgICAgcmV0dXJuICJBWFJ1YnlCbG9jayI7CisgICAgICAgIHJldHVybiAiQVhSdWJ5QmxvY2si
X3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6UnVieUlubGluZToKLSAgICAgICAgcmV0
dXJuICJBWFJ1YnlJbmxpbmUiOworICAgICAgICByZXR1cm4gIkFYUnVieUlubGluZSJfczsKICAg
ICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpSdWJ5UnVuOgotICAgICAgICByZXR1cm4gIkFYUnVi
eVJ1biI7CisgICAgICAgIHJldHVybiAiQVhSdWJ5UnVuIl9zOwogICAgIGNhc2UgQWNjZXNzaWJp
bGl0eVJvbGU6OlJ1YnlUZXh0OgotICAgICAgICByZXR1cm4gIkFYUnVieVRleHQiOworICAgICAg
ICByZXR1cm4gIkFYUnVieVRleHQiX3M7CiAgICAgZGVmYXVsdDoKICAgICAgICAgYnJlYWs7CiAg
ICAgfQpAQCAtNDAzLDE3ICs0MDMsMTcgQEAgU3RyaW5nIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnN1
YnJvbGVQbGF0Zm9ybVN0cmluZygpIGNvbnN0CiAgICAgICAgIHVzaW5nIG5hbWVzcGFjZSBIVE1M
TmFtZXM7CiAgICAgICAgIGF1dG8gdGFnID0gdGFnTmFtZSgpOwogICAgICAgICBpZiAodGFnID09
IGtiZFRhZykKLSAgICAgICAgICAgIHJldHVybiBAIkFYS2V5Ym9hcmRJbnB1dFN0eWxlR3JvdXAi
OworICAgICAgICAgICAgcmV0dXJuICJBWEtleWJvYXJkSW5wdXRTdHlsZUdyb3VwIl9zOwogICAg
ICAgICBpZiAodGFnID09IGNvZGVUYWcpCi0gICAgICAgICAgICByZXR1cm4gQCJBWENvZGVTdHls
ZUdyb3VwIjsKKyAgICAgICAgICAgIHJldHVybiAiQVhDb2RlU3R5bGVHcm91cCJfczsKICAgICAg
ICAgaWYgKHRhZyA9PSBwcmVUYWcpCi0gICAgICAgICAgICByZXR1cm4gQCJBWFByZWZvcm1hdHRl
ZFN0eWxlR3JvdXAiOworICAgICAgICAgICAgcmV0dXJuICJBWFByZWZvcm1hdHRlZFN0eWxlR3Jv
dXAiX3M7CiAgICAgICAgIGlmICh0YWcgPT0gc2FtcFRhZykKLSAgICAgICAgICAgIHJldHVybiBA
IkFYU2FtcGxlU3R5bGVHcm91cCI7CisgICAgICAgICAgICByZXR1cm4gIkFYU2FtcGxlU3R5bGVH
cm91cCJfczsKICAgICAgICAgaWYgKHRhZyA9PSB2YXJUYWcpCi0gICAgICAgICAgICByZXR1cm4g
QCJBWFZhcmlhYmxlU3R5bGVHcm91cCI7CisgICAgICAgICAgICByZXR1cm4gIkFYVmFyaWFibGVT
dHlsZUdyb3VwIl9zOwogICAgICAgICBpZiAodGFnID09IGNpdGVUYWcpCi0gICAgICAgICAgICBy
ZXR1cm4gQCJBWENpdGVTdHlsZUdyb3VwIjsKKyAgICAgICAgICAgIHJldHVybiAiQVhDaXRlU3R5
bGVHcm91cCJfczsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIHJldHVy
biBTdHJpbmcoKTsKICAgICB9CkBAIC00MzYsNyArNDM2LDcgQEAgU3RyaW5nIEFjY2Vzc2liaWxp
dHlPYmplY3Q6OnJvbGVQbGF0Zm9ybURlc2NyaXB0aW9uKCkgY29uc3QKIAogICAgICAgICBzd2l0
Y2ggKHJvbGUpIHsKICAgICAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXVkaW86Ci0gICAg
ICAgICAgICByZXR1cm4gbG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudFN0cmluZygiQXVkaW9F
bGVtZW50Iik7CisgICAgICAgICAgICByZXR1cm4gbG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVu
dFN0cmluZygiQXVkaW9FbGVtZW50Il9zKTsKICAgICAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9s
ZTo6RGVmaW5pdGlvbjoKICAgICAgICAgICAgIHJldHVybiBBWERlZmluaXRpb25UZXh0KCk7CiAg
ICAgICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRlc2NyaXB0aW9uTGlzdFRlcm06CkBAIC00
NTMsOSArNDUzLDkgQEAgU3RyaW5nIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnJvbGVQbGF0Zm9ybURl
c2NyaXB0aW9uKCkgY29uc3QKICAgICAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TWFyazoK
ICAgICAgICAgICAgIHJldHVybiBBWE1hcmtUZXh0KCk7CiAgICAgICAgIGNhc2UgQWNjZXNzaWJp
bGl0eVJvbGU6OlZpZGVvOgotICAgICAgICAgICAgcmV0dXJuIGxvY2FsaXplZE1lZGlhQ29udHJv
bEVsZW1lbnRTdHJpbmcoIlZpZGVvRWxlbWVudCIpOworICAgICAgICAgICAgcmV0dXJuIGxvY2Fs
aXplZE1lZGlhQ29udHJvbEVsZW1lbnRTdHJpbmcoIlZpZGVvRWxlbWVudCJfcyk7CiAgICAgICAg
IGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkdyYXBoaWNzRG9jdW1lbnQ6Ci0gICAgICAgICAgICBy
ZXR1cm4gQVhBUklBQ29udGVudEdyb3VwVGV4dChAIkFSSUFEb2N1bWVudCIpOworICAgICAgICAg
ICAgcmV0dXJuIEFYQVJJQUNvbnRlbnRHcm91cFRleHQoIkFSSUFEb2N1bWVudCIpOwogICAgICAg
ICBkZWZhdWx0OgogICAgICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogICAgICAgICB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQW5pbWF0aW9uRWZmZWN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9BbmltYXRpb25FZmZlY3QuY3BwCmluZGV4IDIzOWJkMDQ1
ZjgwYWVhOGRjZGYzMWM1ZTBjNDM4OGEwMmI1Mjk1NTIuLjQzMWZkZWExNTcyNjI3MmEyYjY4Zjk3
NGIyNmUwYWU2YTU1ZmMwYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9B
bmltYXRpb25FZmZlY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9BbmltYXRp
b25FZmZlY3QuY3BwCkBAIC02OSw3ICs2OSw3IEBAIEVmZmVjdFRpbWluZyBBbmltYXRpb25FZmZl
Y3Q6OmdldFRpbWluZygpIGNvbnN0CiAgICAgdGltaW5nLml0ZXJhdGlvblN0YXJ0ID0gbV9pdGVy
YXRpb25TdGFydDsKICAgICB0aW1pbmcuaXRlcmF0aW9ucyA9IG1faXRlcmF0aW9uczsKICAgICBp
ZiAobV9pdGVyYXRpb25EdXJhdGlvbiA9PSAwX3MpCi0gICAgICAgIHRpbWluZy5kdXJhdGlvbiA9
ICJhdXRvIjsKKyAgICAgICAgdGltaW5nLmR1cmF0aW9uID0gImF1dG8iX3M7CiAgICAgZWxzZQog
ICAgICAgICB0aW1pbmcuZHVyYXRpb24gPSBzZWNvbmRzVG9XZWJBbmltYXRpb25zQVBJVGltZSht
X2l0ZXJhdGlvbkR1cmF0aW9uKTsKICAgICB0aW1pbmcuZGlyZWN0aW9uID0gbV9kaXJlY3Rpb247
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRG9jdW1lbnRUaW1lbGluZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRG9jdW1lbnRUaW1lbGluZS5jcHAKaW5kZXgg
M2M5NTllOWNiZDRhODcxMjQ0ZWUyZjQ1YjBiNWFhMDZlMWM1ZmQ0NS4uYzg2ZjJhZDU1YzRiMTI4
ZWVjZWRiODAxMGY0YzQ3MTNiYWY0Njc2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5p
bWF0aW9uL0RvY3VtZW50VGltZWxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlv
bi9Eb2N1bWVudFRpbWVsaW5lLmNwcApAQCAtNDUyLDcgKzQ1Miw3IEBAIEV4Y2VwdGlvbk9yPFJl
ZjxXZWJBbmltYXRpb24+PiBEb2N1bWVudFRpbWVsaW5lOjphbmltYXRlKFJlZjxDdXN0b21FZmZl
Y3RDYWxsYmFjCiAgICAgaWYgKCFtX2RvY3VtZW50KQogICAgICAgICByZXR1cm4gRXhjZXB0aW9u
IHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKIAotICAgIFN0cmluZyBpZCA9ICIiOworICAgIFN0cmlu
ZyBpZCA9IGVtcHR5U3RyaW5nKCk7CiAgICAgc3RkOjp2YXJpYW50PEZyYW1lc1BlclNlY29uZCwg
QW5pbWF0aW9uRnJhbWVSYXRlUHJlc2V0PiBmcmFtZVJhdGUgPSBBbmltYXRpb25GcmFtZVJhdGVQ
cmVzZXQ6OkF1dG87CiAgICAgc3RkOjpvcHRpb25hbDxzdGQ6OnZhcmlhbnQ8ZG91YmxlLCBFZmZl
Y3RUaW1pbmc+PiBjdXN0b21FZmZlY3RPcHRpb25zOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9hbmltYXRpb24vRWZmZWN0VGltaW5nLmggYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24v
RWZmZWN0VGltaW5nLmgKaW5kZXggNGRkNWRjYzM3M2NjZDgzMzBkZWNhMzYxN2Q5OThlNjEzMzkz
MmU2MS4uMjEwNzNmYTQ3MzAzZjY0ZmQyYmEyNjE5YWU5MTg3ZjU4MTU5NTA2ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0VmZmVjdFRpbWluZy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2FuaW1hdGlvbi9FZmZlY3RUaW1pbmcuaApAQCAtMzMsMTIgKzMzLDEyIEBACiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIHN0cnVjdCBFZmZlY3RUaW1pbmcgewotICAgIHN0ZDo6dmFyaWFu
dDxkb3VibGUsIFN0cmluZz4gZHVyYXRpb24geyAiYXV0byIgfTsKKyAgICBzdGQ6OnZhcmlhbnQ8
ZG91YmxlLCBTdHJpbmc+IGR1cmF0aW9uIHsgImF1dG8iX3MgfTsKICAgICBkb3VibGUgZGVsYXkg
eyAwIH07CiAgICAgZG91YmxlIGVuZERlbGF5IHsgMCB9OwogICAgIGRvdWJsZSBpdGVyYXRpb25T
dGFydCB7IDAgfTsKICAgICBkb3VibGUgaXRlcmF0aW9ucyB7IDEgfTsKLSAgICBTdHJpbmcgZWFz
aW5nIHsgImxpbmVhciIgfTsKKyAgICBTdHJpbmcgZWFzaW5nIHsgImxpbmVhciJfcyB9OwogICAg
IEZpbGxNb2RlIGZpbGwgeyBGaWxsTW9kZTo6QXV0byB9OwogICAgIFBsYXliYWNrRGlyZWN0aW9u
IGRpcmVjdGlvbiB7IFBsYXliYWNrRGlyZWN0aW9uOjpOb3JtYWwgfTsKIH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuY3BwIGIvU291cmNlL1dl
YkNvcmUvYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmNwcAppbmRleCA3MjM3Njg1MDNkMTBkYjQ5
NjdiMmY4YzYwZWI5MTQxODk3NjZiZjdkLi5kODQxMWM5M2U0NzcwMmY1NjdhZDYxNDAzNjZlY2U3
NjYzNWMwNDVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVF
ZmZlY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5j
cHAKQEAgLTgyLDExICs4MiwxMSBAQCBTdHJpbmcgS2V5ZnJhbWVFZmZlY3Q6OkNTU1Byb3BlcnR5
SURUb0lETEF0dHJpYnV0ZU5hbWUoQ1NTUHJvcGVydHlJRCBjc3NQcm9wZXJ0eQogCiAgICAgLy8g
Mi4gSWYgcHJvcGVydHkgcmVmZXJzIHRvIHRoZSBDU1MgZmxvYXQgcHJvcGVydHksIHJldHVybiB0
aGUgc3RyaW5nICJjc3NGbG9hdCIuCiAgICAgaWYgKGNzc1Byb3BlcnR5SWQgPT0gQ1NTUHJvcGVy
dHlGbG9hdCkKLSAgICAgICAgcmV0dXJuICJjc3NGbG9hdCI7CisgICAgICAgIHJldHVybiAiY3Nz
RmxvYXQiX3M7CiAKICAgICAvLyAzLiBJZiBwcm9wZXJ0eSByZWZlcnMgdG8gdGhlIENTUyBvZmZz
ZXQgcHJvcGVydHksIHJldHVybiB0aGUgc3RyaW5nICJjc3NPZmZzZXQiLgogICAgIGlmIChjc3NQ
cm9wZXJ0eUlkID09IENTU1Byb3BlcnR5T2Zmc2V0KQotICAgICAgICByZXR1cm4gImNzc09mZnNl
dCI7CisgICAgICAgIHJldHVybiAiY3NzT2Zmc2V0Il9zOwogCiAgICAgLy8gNC4gT3RoZXJ3aXNl
LCByZXR1cm4gdGhlIHJlc3VsdCBvZiBhcHBseWluZyB0aGUgQ1NTIHByb3BlcnR5IHRvIElETCBh
dHRyaWJ1dGUgYWxnb3JpdGhtIFtDU1NPTV0gdG8gcHJvcGVydHkuCiAgICAgcmV0dXJuIGdldEpT
UHJvcGVydHlOYW1lKGNzc1Byb3BlcnR5SWQpOwpAQCAtNjYwLDcgKzY2MCw3IEBAIGF1dG8gS2V5
ZnJhbWVFZmZlY3Q6OmdldEtleWZyYW1lcyhEb2N1bWVudCYgZG9jdW1lbnQpIC0+IFZlY3RvcjxD
b21wdXRlZEtleWZyYW1lCiAgICAgICAgIGNvbXB1dGVkS2V5ZnJhbWUub2Zmc2V0ID0ga2V5ZnJh
bWUua2V5KCk7CiAgICAgICAgIGNvbXB1dGVkS2V5ZnJhbWUuY29tcHV0ZWRPZmZzZXQgPSBrZXlm
cmFtZS5rZXkoKTsKICAgICAgICAgLy8gRm9yIENTUyB0cmFuc2l0aW9ucywgYWxsIGtleWZyYW1l
cyBzaG91bGQgcmV0dXJuICJsaW5lYXIiIHNpbmNlIHRoZSBlZmZlY3QncyBnbG9iYWwgdGltaW5n
IGZ1bmN0aW9uIGFwcGxpZXMuCi0gICAgICAgIGNvbXB1dGVkS2V5ZnJhbWUuZWFzaW5nID0gaXM8
Q1NTVHJhbnNpdGlvbj4oYW5pbWF0aW9uKCkpID8gImxpbmVhciIgOiB0aW1pbmdGdW5jdGlvbkZv
ckJsZW5kaW5nS2V5ZnJhbWUoa2V5ZnJhbWUpLT5jc3NUZXh0KCk7CisgICAgICAgIGNvbXB1dGVk
S2V5ZnJhbWUuZWFzaW5nID0gaXM8Q1NTVHJhbnNpdGlvbj4oYW5pbWF0aW9uKCkpID8gImxpbmVh
ciJfcyA6IHRpbWluZ0Z1bmN0aW9uRm9yQmxlbmRpbmdLZXlmcmFtZShrZXlmcmFtZSktPmNzc1Rl
eHQoKTsKIAogICAgICAgICBpZiAoZG9jdW1lbnQuc2V0dGluZ3MoKS53ZWJBbmltYXRpb25zQ29t
cG9zaXRlT3BlcmF0aW9uc0VuYWJsZWQoKSkgewogICAgICAgICAgICAgaWYgKGF1dG8gY29tcG9z
aXRlT3BlcmF0aW9uID0ga2V5ZnJhbWUuY29tcG9zaXRlT3BlcmF0aW9uKCkpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9HQ0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvR0NDb250cm9sbGVyLmNwcAppbmRleCA1ZjExZTBjNjM0ODc0MTQz
YWIzMTg1YTAxZGY5ZmIyZWUzNmYyNWFkLi41ZjkzNDkxNzU2ZjI3ZWMwNGQ0ZGVhOWQzODFiN2E2
NGM2Yzc5MjA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9HQ0NvbnRy
b2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0dDQ29udHJvbGxlci5j
cHAKQEAgLTU5LDcgKzU5LDcgQEAgR0NDb250cm9sbGVyOjpHQ0NvbnRyb2xsZXIoKQogewogICAg
IHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlRmxhZzsKICAgICBzdGQ6OmNhbGxfb25jZShvbmNl
RmxhZywgW10gewotICAgICAgICBQQUw6OnJlZ2lzdGVyTm90aWZ5Q2FsbGJhY2soImNvbS5hcHBs
ZS5XZWJLaXQuZHVtcEdDSGVhcCIsIFtdIHsKKyAgICAgICAgUEFMOjpyZWdpc3Rlck5vdGlmeUNh
bGxiYWNrKCJjb20uYXBwbGUuV2ViS2l0LmR1bXBHQ0hlYXAiX3MsIFtdIHsKICAgICAgICAgICAg
IEdDQ29udHJvbGxlcjo6c2luZ2xldG9uKCkuZHVtcEhlYXAoKTsKICAgICAgICAgfSk7CiAgICAg
fSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbUVsZW1l
bnRJbnRlcmZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21FbGVt
ZW50SW50ZXJmYWNlLmNwcAppbmRleCA0ZTFkMjRlZTk0MTc0YzlkZjc2ZDJiMmU1MDc5Yjc3ZGQw
ZTI2Zjk4Li5hOTFlMDJmMjNkNzUwMzBhOWI5YWJmODlhMzZmODRhYjE5YmE4OGIyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbUVsZW1lbnRJbnRlcmZhY2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tRWxlbWVudEludGVy
ZmFjZS5jcHAKQEAgLTIxMCw3ICsyMTAsNyBAQCB2b2lkIEpTQ3VzdG9tRWxlbWVudEludGVyZmFj
ZTo6dXBncmFkZUVsZW1lbnQoRWxlbWVudCYgZWxlbWVudCkKIAogICAgIGlmIChtX2lzU2hhZG93
RGlzYWJsZWQgJiYgZWxlbWVudC5zaGFkb3dSb290KCkpIHsKICAgICAgICAgZWxlbWVudC5jbGVh
clJlYWN0aW9uUXVldWVGcm9tRmFpbGVkQ3VzdG9tRWxlbWVudCgpOwotICAgICAgICByZXBvcnRF
eGNlcHRpb24obGV4aWNhbEdsb2JhbE9iamVjdCwgY3JlYXRlRE9NRXhjZXB0aW9uKGxleGljYWxH
bG9iYWxPYmplY3QsIE5vdFN1cHBvcnRlZEVycm9yLCAiRmFpbGVkIHRvIHVwZ3JhZGUgYW4gZWxl
bWVudCB3aXRoIHNoYWRvdyByb290OiB0aGUgY3VzdG9tIGVsZW1lbnQgZGVmaW5pdGlvbiBkaXNh
bGxvd3Mgc2hhZG93IHJvb3RzLiIpKTsKKyAgICAgICAgcmVwb3J0RXhjZXB0aW9uKGxleGljYWxH
bG9iYWxPYmplY3QsIGNyZWF0ZURPTUV4Y2VwdGlvbihsZXhpY2FsR2xvYmFsT2JqZWN0LCBOb3RT
dXBwb3J0ZWRFcnJvciwgIkZhaWxlZCB0byB1cGdyYWRlIGFuIGVsZW1lbnQgd2l0aCBzaGFkb3cg
cm9vdDogdGhlIGN1c3RvbSBlbGVtZW50IGRlZmluaXRpb24gZGlzYWxsb3dzIHNoYWRvdyByb290
cy4iX3MpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMjMxLDcgKzIzMSw3IEBAIHZv
aWQgSlNDdXN0b21FbGVtZW50SW50ZXJmYWNlOjp1cGdyYWRlRWxlbWVudChFbGVtZW50JiBlbGVt
ZW50KQogICAgIEVsZW1lbnQqIHdyYXBwZWRFbGVtZW50ID0gSlNFbGVtZW50Ojp0b1dyYXBwZWQo
dm0sIHJldHVybmVkRWxlbWVudCk7CiAgICAgaWYgKCF3cmFwcGVkRWxlbWVudCB8fCB3cmFwcGVk
RWxlbWVudCAhPSAmZWxlbWVudCkgewogICAgICAgICBlbGVtZW50LmNsZWFyUmVhY3Rpb25RdWV1
ZUZyb21GYWlsZWRDdXN0b21FbGVtZW50KCk7Ci0gICAgICAgIHJlcG9ydEV4Y2VwdGlvbihsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBjcmVhdGVET01FeGNlcHRpb24obGV4aWNhbEdsb2JhbE9iamVjdCwg
VHlwZUVycm9yLCAiQ3VzdG9tIGVsZW1lbnQgY29uc3RydWN0b3IgcmV0dXJuZWQgYSB3cm9uZyBl
bGVtZW50IikpOworICAgICAgICByZXBvcnRFeGNlcHRpb24obGV4aWNhbEdsb2JhbE9iamVjdCwg
Y3JlYXRlRE9NRXhjZXB0aW9uKGxleGljYWxHbG9iYWxPYmplY3QsIFR5cGVFcnJvciwgIkN1c3Rv
bSBlbGVtZW50IGNvbnN0cnVjdG9yIHJldHVybmVkIGEgd3JvbmcgZWxlbWVudCJfcykpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogICAgIGVsZW1lbnQuc2V0SXNEZWZpbmVkQ3VzdG9tRWxlbWVu
dCgqdGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNv
bnZlcnROdW1iZXJzLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnRO
dW1iZXJzLmgKaW5kZXggYjdiNjEzZGQ2YzM3ZWQxMTdiOTIyMDIwYWMxM2EzZDdjNTViYmNhZC4u
Mjk0MTNkOGQ5ODk2OTAxMGZhYTFjMzU0ZWEzYTg5YmFjNDAwYjA3MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Db252ZXJ0TnVtYmVycy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydE51bWJlcnMuaApAQCAtMjkzLDcgKzI5
Myw3IEBAIHRlbXBsYXRlPD4gc3RydWN0IENvbnZlcnRlcjxJRExGbG9hdD4gOiBEZWZhdWx0Q29u
dmVydGVyPElETEZsb2F0PiB7CiAgICAgICAgIGRvdWJsZSBudW1iZXIgPSB2YWx1ZS50b051bWJl
cigmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04oc2Nv
cGUsIDAuMCk7CiAgICAgICAgIGlmIChVTkxJS0VMWShudW1iZXIgPCBzdGQ6Om51bWVyaWNfbGlt
aXRzPGZsb2F0Pjo6bG93ZXN0KCkgfHwgbnVtYmVyID4gc3RkOjpudW1lcmljX2xpbWl0czxmbG9h
dD46Om1heCgpKSkKLSAgICAgICAgICAgIHRocm93VHlwZUVycm9yKCZsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBzY29wZSwgIlRoZSBwcm92aWRlZCB2YWx1ZSBpcyBvdXRzaWRlIHRoZSByYW5nZSBvZiBh
IGZsb2F0Iik7CisgICAgICAgICAgICB0aHJvd1R5cGVFcnJvcigmbGV4aWNhbEdsb2JhbE9iamVj
dCwgc2NvcGUsICJUaGUgcHJvdmlkZWQgdmFsdWUgaXMgb3V0c2lkZSB0aGUgcmFuZ2Ugb2YgYSBm
bG9hdCJfcyk7CiAgICAgICAgIGlmIChVTkxJS0VMWSghc3RkOjppc2Zpbml0ZShudW1iZXIpKSkK
ICAgICAgICAgICAgIHRocm93Tm9uRmluaXRlVHlwZUVycm9yKGxleGljYWxHbG9iYWxPYmplY3Qs
IHNjb3BlKTsKICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGZsb2F0PihudW1iZXIpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFeGVjU3RhdGVJbnN0cnVtZW50
YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXhlY1N0YXRlSW5zdHJ1bWVu
dGF0aW9uLmgKaW5kZXggYzA0NGIwN2FiZmM3YjY5ZTMxOTEyODMzYjQ5NDQ2ODFiYzMyODA1My4u
MzEwMGZhYmYyZDg1NzEzNWM4YTUzZTk0NjdiZTIxYzc3ODllNjRjZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFeGVjU3RhdGVJbnN0cnVtZW50YXRpb24uaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V4ZWNTdGF0ZUluc3RydW1lbnRhdGlvbi5o
CkBAIC00NSw3ICs0NSw3IEBAIGlubGluZSB2b2lkIEpTRXhlY1N0YXRlOjppbnN0cnVtZW50RnVu
Y3Rpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uCiAgICAgICAgIGxpbmVO
dW1iZXIgPSBjYWxsRGF0YS5qcy5mdW5jdGlvbkV4ZWN1dGFibGUtPmZpcnN0TGluZSgpOwogICAg
ICAgICBjb2x1bW5OdW1iZXIgPSBjYWxsRGF0YS5qcy5mdW5jdGlvbkV4ZWN1dGFibGUtPnN0YXJ0
Q29sdW1uKCk7CiAgICAgfSBlbHNlCi0gICAgICAgIHJlc291cmNlTmFtZSA9ICJ1bmRlZmluZWQi
OworICAgICAgICByZXNvdXJjZU5hbWUgPSAidW5kZWZpbmVkIl9zOwogICAgIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6d2lsbENhbGxGdW5jdGlvbihjb250ZXh0LCByZXNvdXJjZU5hbWUsIGxp
bmVOdW1iZXIsIGNvbHVtbk51bWJlcik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKaW5kZXggY2Q0YjNmMDc2ZGY3Mzk5MDU2ZjI3OGM2
NWU3MmQzMmQyNDc5ZDQ2MC4uNDg0ZDhjMmRmMzdiZWY3ZDE3ZGE0MWI3MDMyMjk0YjFkOWNmZmIx
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5j
cHAKQEAgLTYzMyw3ICs2MzMsNyBAQCBWYWx1ZU9yRXhjZXB0aW9uIFNjcmlwdENvbnRyb2xsZXI6
OmNhbGxJbldvcmxkKFJ1bkphdmFTY3JpcHRQYXJhbWV0ZXJzJiYgcGFyYW1ldAogICAgICAgICBh
dXRvIHNjb3BlID0gREVDTEFSRV9DQVRDSF9TQ09QRShnbG9iYWxPYmplY3Qudm0oKSk7CiAgICAg
ICAgIGF1dG8ganNBcmd1bWVudCA9IHNlcmlhbGl6ZWRBcmd1bWVudC0+ZGVzZXJpYWxpemUoZ2xv
YmFsT2JqZWN0LCAmZ2xvYmFsT2JqZWN0KTsKICAgICAgICAgaWYgKFVOTElLRUxZKHNjb3BlLmV4
Y2VwdGlvbigpKSkgewotICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gIlVuYWJsZSB0byBkZXNl
cmlhbGl6ZSBhcmd1bWVudCB0byBleGVjdXRlIGFzeW5jaHJvbm91cyBKYXZhU2NyaXB0IGZ1bmN0
aW9uIjsKKyAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9ICJVbmFibGUgdG8gZGVzZXJpYWxpemUg
YXJndW1lbnQgdG8gZXhlY3V0ZSBhc3luY2hyb25vdXMgSmF2YVNjcmlwdCBmdW5jdGlvbiJfczsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5tbSBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9v
YmpjL29iamNfcnVudGltZS5tbQppbmRleCAxNWNiNmEwOGU1YzM1YzE3MjJjZGQzN2NhMzhhYzVj
YTk0NGZhMTU5Li5hZTQyMjExNDFlZWNiODkxNTFjNjMxNjEwZTIyMjIyNGNjZmRkZmM2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLm1tCkBAIC0xNzYsNyArMTc2
LDcgQEAgYm9vbCBPYmpjQXJyYXk6OnNldFZhbHVlQXQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxH
bG9iYWxPYmplY3QsIHVuc2lnbmVkIGludCBpbmQKICAgICB9CiAKICAgICBpZiAoaW5kZXggPiBb
X2FycmF5IGNvdW50XSkgewotICAgICAgICB0aHJvd0V4Y2VwdGlvbihsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBzY29wZSwgY3JlYXRlUmFuZ2VFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCAiSW5kZXgg
ZXhjZWVkcyBhcnJheSBzaXplLiIpKTsKKyAgICAgICAgdGhyb3dFeGNlcHRpb24obGV4aWNhbEds
b2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZVJhbmdlRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwg
IkluZGV4IGV4Y2VlZHMgYXJyYXkgc2l6ZS4iX3MpKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIH0KICAgICAKQEAgLTE4OCw3ICsxODgsNyBAQCBib29sIE9iamNBcnJheTo6c2V0VmFsdWVB
dChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgdW5zaWduZWQgaW50IGluZAog
ICAgICAgICBbX2FycmF5IGluc2VydE9iamVjdDooX19icmlkZ2UgaWQpb1ZhbHVlLm9iamVjdFZh
bHVlIGF0SW5kZXg6aW5kZXhdOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9IEBjYXRjaChO
U0V4Y2VwdGlvbiogbG9jYWxFeGNlcHRpb24pIHsKLSAgICAgICAgdGhyb3dFeGNlcHRpb24obGV4
aWNhbEdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZUVycm9yKGxleGljYWxHbG9iYWxPYmplY3Qs
ICJPYmplY3RpdmUtQyBleGNlcHRpb24uIikpOworICAgICAgICB0aHJvd0V4Y2VwdGlvbihsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwg
Ik9iamVjdGl2ZS1DIGV4Y2VwdGlvbi4iX3MpKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IH0KIH0KQEAgLTE5OSwxMyArMTk5LDEzIEBAIEpTVmFsdWUgT2JqY0FycmF5Ojp2YWx1ZUF0KEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCB1bnNpZ25lZCBpbnQgaW5kCiAgICAg
YXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAgaWYgKGluZGV4ID4g
W19hcnJheSBjb3VudF0pCi0gICAgICAgIHJldHVybiB0aHJvd0V4Y2VwdGlvbihsZXhpY2FsR2xv
YmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlUmFuZ2VFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCAi
SW5kZXggZXhjZWVkcyBhcnJheSBzaXplLiIpKTsKKyAgICAgICAgcmV0dXJuIHRocm93RXhjZXB0
aW9uKGxleGljYWxHbG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVSYW5nZUVycm9yKGxleGljYWxH
bG9iYWxPYmplY3QsICJJbmRleCBleGNlZWRzIGFycmF5IHNpemUuIl9zKSk7CiAgICAgQHRyeSB7
CiAgICAgICAgIGlkIG9iaiA9IFtfYXJyYXkgb2JqZWN0QXRJbmRleDppbmRleF07CiAgICAgICAg
IGlmIChvYmopCiAgICAgICAgICAgICByZXR1cm4gY29udmVydE9iamNWYWx1ZVRvVmFsdWUgKGxl
eGljYWxHbG9iYWxPYmplY3QsICZvYmosIE9iamNPYmplY3RUeXBlLCBtX3Jvb3RPYmplY3QuZ2V0
KCkpOwogICAgIH0gQGNhdGNoKE5TRXhjZXB0aW9uKiBsb2NhbEV4Y2VwdGlvbikgewotICAgICAg
ICByZXR1cm4gdGhyb3dFeGNlcHRpb24obGV4aWNhbEdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0
ZUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsICJPYmplY3RpdmUtQyBleGNlcHRpb24uIikpOwor
ICAgICAgICByZXR1cm4gdGhyb3dFeGNlcHRpb24obGV4aWNhbEdsb2JhbE9iamVjdCwgc2NvcGUs
IGNyZWF0ZUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsICJPYmplY3RpdmUtQyBleGNlcHRpb24u
Il9zKSk7CiAgICAgfQogICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwIGIvU291cmNlL1dlYkNvcmUv
YnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwCmluZGV4IGMwNWUzYTQwZTgwNTY2NWRjMGZkZWQwMmMz
MDUxOGVkOTYyODYwYzMuLmFmMzliYTExNDBkYTAzMDQzODg1YTNhODU1YTEzMzFlNGY1NjVhOWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5jcHAKQEAgLTEyNyw3ICsxMjcs
NyBAQCBib29sIFJ1bnRpbWVBcnJheTo6cHV0KEpTQ2VsbCogY2VsbCwgSlNHbG9iYWxPYmplY3Qq
IGxleGljYWxHbG9iYWxPYmplY3QsIFByb3BlcgogCiAgICAgUnVudGltZUFycmF5KiB0aGlzT2Jq
ZWN0ID0ganNDYXN0PFJ1bnRpbWVBcnJheSo+KGNlbGwpOwogICAgIGlmIChwcm9wZXJ0eU5hbWUg
PT0gdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoKSB7Ci0gICAgICAgIHRocm93RXhjZXB0aW9uKGxl
eGljYWxHbG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVSYW5nZUVycm9yKGxleGljYWxHbG9iYWxP
YmplY3QsICJSYW5nZSBlcnJvciIpKTsKKyAgICAgICAgdGhyb3dFeGNlcHRpb24obGV4aWNhbEds
b2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZVJhbmdlRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwg
IlJhbmdlIGVycm9yIl9zKSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAgICAgCkBA
IC0xNDQsNyArMTQ0LDcgQEAgYm9vbCBSdW50aW1lQXJyYXk6OnB1dEJ5SW5kZXgoSlNDZWxsKiBj
ZWxsLCBKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwKIAogICAgIFJ1bnRpbWVB
cnJheSogdGhpc09iamVjdCA9IGpzQ2FzdDxSdW50aW1lQXJyYXkqPihjZWxsKTsKICAgICBpZiAo
aW5kZXggPj0gdGhpc09iamVjdC0+Z2V0TGVuZ3RoKCkpIHsKLSAgICAgICAgdGhyb3dFeGNlcHRp
b24obGV4aWNhbEdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZVJhbmdlRXJyb3IobGV4aWNhbEds
b2JhbE9iamVjdCwgIlJhbmdlIGVycm9yIikpOworICAgICAgICB0aHJvd0V4Y2VwdGlvbihsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlUmFuZ2VFcnJvcihsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCAiUmFuZ2UgZXJyb3IiX3MpKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KICAg
ICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuY3BwCmluZGV4IGIyNGYyYWVm
MTk0YmFkMjViM2E2MWViODhlNzQxNDdkY2U5MzEwYzcuLjIwYmUxZWUyZmYyNTA0MmYzODgxNWVk
YTA2OGZkOWE0ODg5NTVlNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50
aW1lX29iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0
LmNwcApAQCAtMzEwLDcgKzMxMCw3IEBAIHZvaWQgUnVudGltZU9iamVjdDo6Z2V0T3duUHJvcGVy
dHlOYW1lcyhKU09iamVjdCogb2JqZWN0LCBKU0dsb2JhbE9iamVjdCogbGV4aWNhCiAKIEV4Y2Vw
dGlvbiogdGhyb3dSdW50aW1lT2JqZWN0SW52YWxpZEFjY2Vzc0Vycm9yKEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBUaHJvd1Njb3BlJiBzY29wZSkKIHsKLSAgICByZXR1cm4g
dGhyb3dFeGNlcHRpb24obGV4aWNhbEdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZVJlZmVyZW5j
ZUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsICJUcnlpbmcgdG8gYWNjZXNzIG9iamVjdCBmcm9t
IGRlc3Ryb3llZCBwbHVnLWluLiIpKTsKKyAgICByZXR1cm4gdGhyb3dFeGNlcHRpb24obGV4aWNh
bEdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZVJlZmVyZW5jZUVycm9yKGxleGljYWxHbG9iYWxP
YmplY3QsICJUcnlpbmcgdG8gYWNjZXNzIG9iamVjdCBmcm9tIGRlc3Ryb3llZCBwbHVnLWluLiJf
cykpOwogfQogCiBKU0M6OkdDQ2xpZW50OjpJc29TdWJzcGFjZSogUnVudGltZU9iamVjdDo6c3Vi
c3BhY2VGb3JJbXBsKEpTQzo6Vk0mIHZtKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY29u
dGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkFjdGlvbnMuY3BwIGIvU291cmNlL1dlYkNv
cmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkFjdGlvbnMuY3BwCmluZGV4IDBj
YTYxYzEwMTRkMjQzNWU4NGFhMGRhZmUzMDIwZmZiMDc4ZTgzNzkuLjdiMjY1OWZjNjczZDUzNjA5
ZTVkMWI1ZTQ3ZmI2ODNhMTYzYWYwOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NvbnRl
bnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25BY3Rpb25zLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uQWN0aW9ucy5jcHAKQEAgLTIw
MSwxNSArMjAxLDE1IEBAIGF1dG8gTW9kaWZ5SGVhZGVyc0FjdGlvbjo6TW9kaWZ5SGVhZGVySW5m
bzo6cGFyc2UoY29uc3QgSlNPTjo6VmFsdWUmIGluZm9WYWx1ZSkKICAgICBpZiAoIW9iamVjdCkK
ICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNP
Tk1vZGlmeUhlYWRlcnNJbmZvTm90QURpY3Rpb25hcnkpOwogCi0gICAgU3RyaW5nIG9wZXJhdGlv
biA9IG9iamVjdC0+Z2V0U3RyaW5nKCJvcGVyYXRpb24iKTsKKyAgICBTdHJpbmcgb3BlcmF0aW9u
ID0gb2JqZWN0LT5nZXRTdHJpbmcoIm9wZXJhdGlvbiJfcyk7CiAgICAgaWYgKCFvcGVyYXRpb24p
CiAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpT
T05Nb2RpZnlIZWFkZXJzTWlzc2luZ09wZXJhdGlvbik7CiAKLSAgICBTdHJpbmcgaGVhZGVyID0g
b2JqZWN0LT5nZXRTdHJpbmcoImhlYWRlciIpOworICAgIFN0cmluZyBoZWFkZXIgPSBvYmplY3Qt
PmdldFN0cmluZygiaGVhZGVyIl9zKTsKICAgICBpZiAoIWhlYWRlcikKICAgICAgICAgcmV0dXJu
IG1ha2VVbmV4cGVjdGVkKENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTk1vZGlmeUhlYWRlcnNN
aXNzaW5nSGVhZGVyKTsKIAotICAgIFN0cmluZyB2YWx1ZSA9IG9iamVjdC0+Z2V0U3RyaW5nKCJ2
YWx1ZSIpOworICAgIFN0cmluZyB2YWx1ZSA9IG9iamVjdC0+Z2V0U3RyaW5nKCJ2YWx1ZSJfcyk7
CiAKICAgICBpZiAob3BlcmF0aW9uID09ICJzZXQiKSB7CiAgICAgICAgIGlmICghdmFsdWUpCkBA
IC0yODksMjcgKzI4OSwyNyBAQCBzaXplX3QgTW9kaWZ5SGVhZGVyc0FjdGlvbjo6TW9kaWZ5SGVh
ZGVySW5mbzo6c2VyaWFsaXplZExlbmd0aChTcGFuPGNvbnN0IHVpbnQ4XwogCiBFeHBlY3RlZDxS
ZWRpcmVjdEFjdGlvbiwgc3RkOjplcnJvcl9jb2RlPiBSZWRpcmVjdEFjdGlvbjo6cGFyc2UoY29u
c3QgSlNPTjo6T2JqZWN0JiByZWRpcmVjdE9iamVjdCwgY29uc3QgU3RyaW5nJiB1cmxGaWx0ZXIp
CiB7Ci0gICAgYXV0byByZWRpcmVjdCA9IHJlZGlyZWN0T2JqZWN0LmdldE9iamVjdCgicmVkaXJl
Y3QiKTsKKyAgICBhdXRvIHJlZGlyZWN0ID0gcmVkaXJlY3RPYmplY3QuZ2V0T2JqZWN0KCJyZWRp
cmVjdCJfcyk7CiAgICAgaWYgKCFyZWRpcmVjdCkKICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVj
dGVkKENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTlJlZGlyZWN0TWlzc2luZyk7CiAKLSAgICBp
ZiAoYXV0byBleHRlbnNpb25QYXRoID0gcmVkaXJlY3QtPmdldFN0cmluZygiZXh0ZW5zaW9uLXBh
dGgiKTsgISFleHRlbnNpb25QYXRoKSB7CisgICAgaWYgKGF1dG8gZXh0ZW5zaW9uUGF0aCA9IHJl
ZGlyZWN0LT5nZXRTdHJpbmcoImV4dGVuc2lvbi1wYXRoIl9zKTsgISFleHRlbnNpb25QYXRoKSB7
CiAgICAgICAgIGlmICghZXh0ZW5zaW9uUGF0aC5zdGFydHNXaXRoKCcvJykpCiAgICAgICAgICAg
ICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OUmVkaXJl
Y3RFeHRlbnNpb25QYXRoRG9lc05vdFN0YXJ0V2l0aFNsYXNoKTsKICAgICAgICAgcmV0dXJuIFJl
ZGlyZWN0QWN0aW9uIHsgRXh0ZW5zaW9uUGF0aEFjdGlvbiB7IFdURk1vdmUoZXh0ZW5zaW9uUGF0
aCkgfSB9OwogICAgIH0KIAotICAgIGlmIChhdXRvIHJlZ2V4U3Vic3RpdHV0aW9uID0gcmVkaXJl
Y3QtPmdldFN0cmluZygicmVnZXgtc3Vic3RpdHV0aW9uIik7ICEhcmVnZXhTdWJzdGl0dXRpb24p
CisgICAgaWYgKGF1dG8gcmVnZXhTdWJzdGl0dXRpb24gPSByZWRpcmVjdC0+Z2V0U3RyaW5nKCJy
ZWdleC1zdWJzdGl0dXRpb24iX3MpOyAhIXJlZ2V4U3Vic3RpdHV0aW9uKQogICAgICAgICByZXR1
cm4gUmVkaXJlY3RBY3Rpb24geyBSZWdleFN1YnN0aXR1dGlvbkFjdGlvbiB7IFdURk1vdmUocmVn
ZXhTdWJzdGl0dXRpb24pLCB1cmxGaWx0ZXIgfSB9OwogCi0gICAgaWYgKGF1dG8gdHJhbnNmb3Jt
ID0gcmVkaXJlY3QtPmdldE9iamVjdCgidHJhbnNmb3JtIikpIHsKKyAgICBpZiAoYXV0byB0cmFu
c2Zvcm0gPSByZWRpcmVjdC0+Z2V0T2JqZWN0KCJ0cmFuc2Zvcm0iX3MpKSB7CiAgICAgICAgIGF1
dG8gcGFyc2VkVHJhbnNmb3JtID0gVVJMVHJhbnNmb3JtQWN0aW9uOjpwYXJzZSgqdHJhbnNmb3Jt
KTsKICAgICAgICAgaWYgKCFwYXJzZWRUcmFuc2Zvcm0pCiAgICAgICAgICAgICByZXR1cm4gbWFr
ZVVuZXhwZWN0ZWQocGFyc2VkVHJhbnNmb3JtLmVycm9yKCkpOwogICAgICAgICByZXR1cm4gUmVk
aXJlY3RBY3Rpb24geyBXVEZNb3ZlKCpwYXJzZWRUcmFuc2Zvcm0pIH07CiAgICAgfQogCi0gICAg
aWYgKGF1dG8gdXJsU3RyaW5nID0gcmVkaXJlY3QtPmdldFN0cmluZygidXJsIik7ICEhdXJsU3Ry
aW5nKSB7CisgICAgaWYgKGF1dG8gdXJsU3RyaW5nID0gcmVkaXJlY3QtPmdldFN0cmluZygidXJs
Il9zKTsgISF1cmxTdHJpbmcpIHsKICAgICAgICAgVVJMIHVybCB7IHVybFN0cmluZyB9OwogICAg
ICAgICBpZiAoIXVybC5pc1ZhbGlkKCkpCiAgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0
ZWQoQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OUmVkaXJlY3RVUkxJbnZhbGlkKTsKQEAgLTQ4
MywxNSArNDgzLDE1IEBAIHZvaWQgUmVkaXJlY3RBY3Rpb246OlJlZ2V4U3Vic3RpdHV0aW9uQWN0
aW9uOjphcHBseVRvVVJMKFVSTCYgdXJsKSBjb25zdAogYXV0byBSZWRpcmVjdEFjdGlvbjo6VVJM
VHJhbnNmb3JtQWN0aW9uOjpwYXJzZShjb25zdCBKU09OOjpPYmplY3QmIHRyYW5zZm9ybSkgLT4g
RXhwZWN0ZWQ8VVJMVHJhbnNmb3JtQWN0aW9uLCBzdGQ6OmVycm9yX2NvZGU+CiB7CiAgICAgVVJM
VHJhbnNmb3JtQWN0aW9uIGFjdGlvbjsKLSAgICBpZiAoYXV0byBmcmFnbWVudCA9IHRyYW5zZm9y
bS5nZXRTdHJpbmcoImZyYWdtZW50Iik7ICEhZnJhZ21lbnQpIHsKKyAgICBpZiAoYXV0byBmcmFn
bWVudCA9IHRyYW5zZm9ybS5nZXRTdHJpbmcoImZyYWdtZW50Il9zKTsgISFmcmFnbWVudCkgewog
ICAgICAgICBpZiAoIWZyYWdtZW50LmlzRW1wdHkoKSAmJiAhZnJhZ21lbnQuc3RhcnRzV2l0aCgn
IycpKQogICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKENvbnRlbnRFeHRlbnNpb25F
cnJvcjo6SlNPTlJlZGlyZWN0SW52YWxpZEZyYWdtZW50KTsKICAgICAgICAgYWN0aW9uLmZyYWdt
ZW50ID0gV1RGTW92ZShmcmFnbWVudCk7CiAgICAgfQotICAgIGFjdGlvbi5ob3N0ID0gdHJhbnNm
b3JtLmdldFN0cmluZygiaG9zdCIpOwotICAgIGFjdGlvbi5wYXNzd29yZCA9IHRyYW5zZm9ybS5n
ZXRTdHJpbmcoInBhc3N3b3JkIik7Ci0gICAgYWN0aW9uLnBhdGggPSB0cmFuc2Zvcm0uZ2V0U3Ry
aW5nKCJwYXRoIik7Ci0gICAgYXV0byBwb3J0ID0gdHJhbnNmb3JtLmdldFN0cmluZygicG9ydCIp
OworICAgIGFjdGlvbi5ob3N0ID0gdHJhbnNmb3JtLmdldFN0cmluZygiaG9zdCJfcyk7CisgICAg
YWN0aW9uLnBhc3N3b3JkID0gdHJhbnNmb3JtLmdldFN0cmluZygicGFzc3dvcmQiX3MpOworICAg
IGFjdGlvbi5wYXRoID0gdHJhbnNmb3JtLmdldFN0cmluZygicGF0aCJfcyk7CisgICAgYXV0byBw
b3J0ID0gdHJhbnNmb3JtLmdldFN0cmluZygicG9ydCJfcyk7CiAgICAgaWYgKCEhcG9ydCkgewog
ICAgICAgICBpZiAocG9ydC5pc0VtcHR5KCkpCiAgICAgICAgICAgICBhY3Rpb24ucG9ydCA9IHsg
c3RkOjpvcHRpb25hbDx1aW50MTZfdD4geyB9IH07CkBAIC01MDMsNyArNTAzLDcgQEAgYXV0byBS
ZWRpcmVjdEFjdGlvbjo6VVJMVHJhbnNmb3JtQWN0aW9uOjpwYXJzZShjb25zdCBKU09OOjpPYmpl
Y3QmIHRyYW5zZm9ybSkgLT4KICAgICAgICAgfQogICAgIH0KIAotICAgIGlmIChhdXRvIHVuY2Fu
b25pY2FsaXplZFNjaGVtZSA9IHRyYW5zZm9ybS5nZXRTdHJpbmcoInNjaGVtZSIpOyAhIXVuY2Fu
b25pY2FsaXplZFNjaGVtZSkgeworICAgIGlmIChhdXRvIHVuY2Fub25pY2FsaXplZFNjaGVtZSA9
IHRyYW5zZm9ybS5nZXRTdHJpbmcoInNjaGVtZSJfcyk7ICEhdW5jYW5vbmljYWxpemVkU2NoZW1l
KSB7CiAgICAgICAgIGF1dG8gc2NoZW1lID0gV1RGOjpVUkxQYXJzZXI6Om1heWJlQ2Fub25pY2Fs
aXplU2NoZW1lKHVuY2Fub25pY2FsaXplZFNjaGVtZSk7CiAgICAgICAgIGlmICghc2NoZW1lKQog
ICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKENvbnRlbnRFeHRlbnNpb25FcnJvcjo6
SlNPTlJlZGlyZWN0VVJMU2NoZW1lSW52YWxpZCk7CkBAIC01MTEsMTQgKzUxMSwxNCBAQCBhdXRv
IFJlZGlyZWN0QWN0aW9uOjpVUkxUcmFuc2Zvcm1BY3Rpb246OnBhcnNlKGNvbnN0IEpTT046Ok9i
amVjdCYgdHJhbnNmb3JtKSAtPgogICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKENv
bnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTlJlZGlyZWN0VG9KYXZhU2NyaXB0VVJMKTsKICAgICAg
ICAgYWN0aW9uLnNjaGVtZSA9IFdURk1vdmUoKnNjaGVtZSk7CiAgICAgfQotICAgIGFjdGlvbi51
c2VybmFtZSA9IHRyYW5zZm9ybS5nZXRTdHJpbmcoInVzZXJuYW1lIik7Ci0gICAgaWYgKGF1dG8g
cXVlcnlUcmFuc2Zvcm0gPSB0cmFuc2Zvcm0uZ2V0T2JqZWN0KCJxdWVyeS10cmFuc2Zvcm0iKSkg
eworICAgIGFjdGlvbi51c2VybmFtZSA9IHRyYW5zZm9ybS5nZXRTdHJpbmcoInVzZXJuYW1lIl9z
KTsKKyAgICBpZiAoYXV0byBxdWVyeVRyYW5zZm9ybSA9IHRyYW5zZm9ybS5nZXRPYmplY3QoInF1
ZXJ5LXRyYW5zZm9ybSJfcykpIHsKICAgICAgICAgYXV0byBwYXJzZWRRdWVyeVRyYW5zZm9ybSA9
IFF1ZXJ5VHJhbnNmb3JtOjpwYXJzZSgqcXVlcnlUcmFuc2Zvcm0pOwogICAgICAgICBpZiAoIXBh
cnNlZFF1ZXJ5VHJhbnNmb3JtKQogICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKHBh
cnNlZFF1ZXJ5VHJhbnNmb3JtLmVycm9yKCkpOwogICAgICAgICBhY3Rpb24ucXVlcnlUcmFuc2Zv
cm0gPSAqcGFyc2VkUXVlcnlUcmFuc2Zvcm07CiAgICAgfSBlbHNlIHsKLSAgICAgICAgYXV0byBx
dWVyeSA9IHRyYW5zZm9ybS5nZXRTdHJpbmcoInF1ZXJ5Iik7CisgICAgICAgIGF1dG8gcXVlcnkg
PSB0cmFuc2Zvcm0uZ2V0U3RyaW5nKCJxdWVyeSJfcyk7CiAgICAgICAgIGlmICghcXVlcnkuaXNF
bXB0eSgpICYmICFxdWVyeS5zdGFydHNXaXRoKCc/JykpCiAgICAgICAgICAgICByZXR1cm4gbWFr
ZVVuZXhwZWN0ZWQoQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OUmVkaXJlY3RJbnZhbGlkUXVl
cnkpOwogICAgICAgICBhY3Rpb24ucXVlcnlUcmFuc2Zvcm0gPSBXVEZNb3ZlKHF1ZXJ5KTsKQEAg
LTY5OSw3ICs2OTksNyBAQCBhdXRvIFJlZGlyZWN0QWN0aW9uOjpVUkxUcmFuc2Zvcm1BY3Rpb246
OlF1ZXJ5VHJhbnNmb3JtOjpwYXJzZShjb25zdCBKU09OOjpPYmplYwogewogICAgIFF1ZXJ5VHJh
bnNmb3JtIHBhcnNlZFF1ZXJ5VHJhbnNmb3JtOwogCi0gICAgaWYgKGF1dG8gcmVtb3ZlUGFyYW1l
dGVyc1ZhbHVlID0gcXVlcnlUcmFuc2Zvcm0uZ2V0VmFsdWUoInJlbW92ZS1wYXJhbWV0ZXJzIikp
IHsKKyAgICBpZiAoYXV0byByZW1vdmVQYXJhbWV0ZXJzVmFsdWUgPSBxdWVyeVRyYW5zZm9ybS5n
ZXRWYWx1ZSgicmVtb3ZlLXBhcmFtZXRlcnMiX3MpKSB7CiAgICAgICAgIGF1dG8gcmVtb3ZlUGFy
YW1ldGVyc0FycmF5ID0gcmVtb3ZlUGFyYW1ldGVyc1ZhbHVlLT5hc0FycmF5KCk7CiAgICAgICAg
IGlmICghcmVtb3ZlUGFyYW1ldGVyc0FycmF5KQogICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4
cGVjdGVkKENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTlJlbW92ZVBhcmFtZXRlcnNOb3RTdHJp
bmdBcnJheSk7CkBAIC03MTMsNyArNzEzLDcgQEAgYXV0byBSZWRpcmVjdEFjdGlvbjo6VVJMVHJh
bnNmb3JtQWN0aW9uOjpRdWVyeVRyYW5zZm9ybTo6cGFyc2UoY29uc3QgSlNPTjo6T2JqZWMKICAg
ICAgICAgcGFyc2VkUXVlcnlUcmFuc2Zvcm0ucmVtb3ZlUGFyYW1zID0gV1RGTW92ZShyZW1vdmVQ
YXJhbWV0ZXJzVmVjdG9yKTsKICAgICB9CiAKLSAgICBpZiAoYXV0byBhZGRPclJlcGxhY2VQYXJh
bWV0ZXJzVmFsdWUgPSBxdWVyeVRyYW5zZm9ybS5nZXRWYWx1ZSgiYWRkLW9yLXJlcGxhY2UtcGFy
YW1ldGVycyIpKSB7CisgICAgaWYgKGF1dG8gYWRkT3JSZXBsYWNlUGFyYW1ldGVyc1ZhbHVlID0g
cXVlcnlUcmFuc2Zvcm0uZ2V0VmFsdWUoImFkZC1vci1yZXBsYWNlLXBhcmFtZXRlcnMiX3MpKSB7
CiAgICAgICAgIGF1dG8gYWRkT3JSZXBsYWNlUGFyYW1ldGVyc0FycmF5ID0gYWRkT3JSZXBsYWNl
UGFyYW1ldGVyc1ZhbHVlLT5hc0FycmF5KCk7CiAgICAgICAgIGlmICghYWRkT3JSZXBsYWNlUGFy
YW1ldGVyc0FycmF5KQogICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKENvbnRlbnRF
eHRlbnNpb25FcnJvcjo6SlNPTkFkZE9yUmVwbGFjZVBhcmFtZXRlcnNOb3RBcnJheSk7CkBAIC04
NTgsMTYgKzg1OCwxNiBAQCBhdXRvIFJlZGlyZWN0QWN0aW9uOjpVUkxUcmFuc2Zvcm1BY3Rpb246
OlF1ZXJ5VHJhbnNmb3JtOjpRdWVyeUtleVZhbHVlOjpwYXJzZShjbwogICAgIGlmICgha2V5VmFs
dWUpCiAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50RXh0ZW5zaW9uRXJyb3I6
OkpTT05BZGRPclJlcGxhY2VQYXJhbWV0ZXJzS2V5VmFsdWVOb3RBRGljdGlvbmFyeSk7CiAKLSAg
ICBTdHJpbmcga2V5ID0ga2V5VmFsdWUtPmdldFN0cmluZygia2V5Iik7CisgICAgU3RyaW5nIGtl
eSA9IGtleVZhbHVlLT5nZXRTdHJpbmcoImtleSJfcyk7CiAgICAgaWYgKCFrZXkpCiAgICAgICAg
IHJldHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05BZGRPclJl
cGxhY2VQYXJhbWV0ZXJzS2V5VmFsdWVNaXNzaW5nS2V5U3RyaW5nKTsKIAotICAgIFN0cmluZyB2
YWx1ZSA9IGtleVZhbHVlLT5nZXRTdHJpbmcoInZhbHVlIik7CisgICAgU3RyaW5nIHZhbHVlID0g
a2V5VmFsdWUtPmdldFN0cmluZygidmFsdWUiX3MpOwogICAgIGlmICghdmFsdWUpCiAgICAgICAg
IHJldHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05BZGRPclJl
cGxhY2VQYXJhbWV0ZXJzS2V5VmFsdWVNaXNzaW5nVmFsdWVTdHJpbmcpOwogCiAgICAgYm9vbCBy
ZXBsYWNlT25seSB7IGZhbHNlIH07Ci0gICAgaWYgKGF1dG8gYm9vbGVhbiA9IGtleVZhbHVlLT5n
ZXRCb29sZWFuKCJyZXBsYWNlLW9ubHkiKSkKKyAgICBpZiAoYXV0byBib29sZWFuID0ga2V5VmFs
dWUtPmdldEJvb2xlYW4oInJlcGxhY2Utb25seSJfcykpCiAgICAgICAgIHJlcGxhY2VPbmx5ID0g
KmJvb2xlYW47CiAKICAgICByZXR1cm4geyB7IFdURk1vdmUoa2V5KSwgcmVwbGFjZU9ubHksIFdU
Rk1vdmUodmFsdWUpIH0gfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRl
bnNpb25zL0NvbnRlbnRFeHRlbnNpb25Db21waWxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jb250
ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uQ29tcGlsZXIuY3BwCmluZGV4IGNmZWJmNWMz
MDc4YTk0MWQxOWM3OWEyOTJjNDcwYzllYmJmMjgyY2YuLmU4NzIxZDRhNzQ3OWVkNjgzMDE3ZjBh
NDg1ZTg0NmEzMjljOTBlMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRl
bnNpb25zL0NvbnRlbnRFeHRlbnNpb25Db21waWxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
Y29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkNvbXBpbGVyLmNwcApAQCAtMzE2LDcg
KzMxNiw3IEBAIHN0ZDo6ZXJyb3JfY29kZSBjb21waWxlUnVsZUxpc3QoQ29udGVudEV4dGVuc2lv
bkNvbXBpbGF0aW9uQ2xpZW50JiBjbGllbnQsIFN0cmluCiAgICAgICAgICAgICBzdGF0dXMgPSBV
UkxGaWx0ZXJQYXJzZXI6Ok9rOwogICAgICAgICB9CiAgICAgICAgIGlmIChzdGF0dXMgIT0gVVJM
RmlsdGVyUGFyc2VyOjpPaykgewotICAgICAgICAgICAgZGF0YUxvZ0YoIkVycm9yIHdoaWxlIHBh
cnNpbmcgJXM6ICVzXG4iLCB0cmlnZ2VyLnVybEZpbHRlci51dGY4KCkuZGF0YSgpLCBVUkxGaWx0
ZXJQYXJzZXI6OnN0YXR1c1N0cmluZyhzdGF0dXMpLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICAg
ICAgZGF0YUxvZ0YoIkVycm9yIHdoaWxlIHBhcnNpbmcgJXM6ICVzXG4iLCB0cmlnZ2VyLnVybEZp
bHRlci51dGY4KCkuZGF0YSgpLCBVUkxGaWx0ZXJQYXJzZXI6OnN0YXR1c1N0cmluZyhzdGF0dXMp
LmNoYXJhY3RlcnMoKSk7CiAgICAgICAgICAgICByZXR1cm4gQ29udGVudEV4dGVuc2lvbkVycm9y
OjpKU09OSW52YWxpZFJlZ2V4OwogICAgICAgICB9CiAKQEAgLTMzMyw3ICszMzMsNyBAQCBzdGQ6
OmVycm9yX2NvZGUgY29tcGlsZVJ1bGVMaXN0KENvbnRlbnRFeHRlbnNpb25Db21waWxhdGlvbkNs
aWVudCYgY2xpZW50LCBTdHJpbgogICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSBVUkxGaWx0
ZXJQYXJzZXI6Ok9rOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBpZiAoc3Rh
dHVzICE9IFVSTEZpbHRlclBhcnNlcjo6T2spIHsKLSAgICAgICAgICAgICAgICAgICAgZGF0YUxv
Z0YoIkVycm9yIHdoaWxlIHBhcnNpbmcgJXM6ICVzXG4iLCBjb25kaXRpb24udXRmOCgpLmRhdGEo
KSwgVVJMRmlsdGVyUGFyc2VyOjpzdGF0dXNTdHJpbmcoc3RhdHVzKS51dGY4KCkuZGF0YSgpKTsK
KyAgICAgICAgICAgICAgICAgICAgZGF0YUxvZ0YoIkVycm9yIHdoaWxlIHBhcnNpbmcgJXM6ICVz
XG4iLCBjb25kaXRpb24udXRmOCgpLmRhdGEoKSwgVVJMRmlsdGVyUGFyc2VyOjpzdGF0dXNTdHJp
bmcoc3RhdHVzKS5jaGFyYWN0ZXJzKCkpOwogICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ29u
dGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZFJlZ2V4OwogICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTM0NCw3ICszNDQsNyBAQCBzdGQ6OmVycm9yX2Nv
ZGUgY29tcGlsZVJ1bGVMaXN0KENvbnRlbnRFeHRlbnNpb25Db21waWxhdGlvbkNsaWVudCYgY2xp
ZW50LCBTdHJpbgogICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSBVUkxGaWx0ZXJQYXJzZXI6
Ok9rOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBpZiAoc3RhdHVzICE9IFVS
TEZpbHRlclBhcnNlcjo6T2spIHsKLSAgICAgICAgICAgICAgICAgICAgZGF0YUxvZ0YoIkVycm9y
IHdoaWxlIHBhcnNpbmcgJXM6ICVzXG4iLCBjb25kaXRpb24udXRmOCgpLmRhdGEoKSwgVVJMRmls
dGVyUGFyc2VyOjpzdGF0dXNTdHJpbmcoc3RhdHVzKS51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAg
ICAgICAgICAgICAgZGF0YUxvZ0YoIkVycm9yIHdoaWxlIHBhcnNpbmcgJXM6ICVzXG4iLCBjb25k
aXRpb24udXRmOCgpLmRhdGEoKSwgVVJMRmlsdGVyUGFyc2VyOjpzdGF0dXNTdHJpbmcoc3RhdHVz
KS5jaGFyYWN0ZXJzKCkpOwogICAgICAgICAgICAgICAgICAgICByZXR1cm4gQ29udGVudEV4dGVu
c2lvbkVycm9yOjpKU09OSW52YWxpZFJlZ2V4OwogICAgICAgICAgICAgICAgIH0KICAgICAgICAg
ICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNp
b25zL0NvbnRlbnRFeHRlbnNpb25QYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4
dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvblBhcnNlci5jcHAKaW5kZXggNTEzZmQ5MzllNjZkYjVj
YTI1MTI5ZjU3NmI5ODJiNGY4Yzk4MjRlMS4uNzQ0MTY1ZjBiNTIwMTVjY2VmZDc3ZjY4N2NlNTNj
YzA1YzFiMTU2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMv
Q29udGVudEV4dGVuc2lvblBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4
dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvblBhcnNlci5jcHAKQEAgLTkzLDcgKzkzLDcgQEAgc3Rh
dGljIEV4cGVjdGVkPFZlY3RvcjxTdHJpbmc+LCBzdGQ6OmVycm9yX2NvZGU+IGdldERvbWFpbkxp
c3QoY29uc3QgSlNPTjo6QXJyYXkKICAgICAgICAgICAgIHsgJyQnLCAiXFwkIiB9CiAgICAgICAg
IH0gfTsKICAgICAgICAgZm9yIChhdXRvJiBwYWlyIDogZXNjYXBlVGFibGUpCi0gICAgICAgICAg
ICBkb21haW4gPSBkb21haW4ucmVwbGFjZShwYWlyLmZpcnN0LCBwYWlyLnNlY29uZCk7CisgICAg
ICAgICAgICBkb21haW4gPSBkb21haW4ucmVwbGFjZShwYWlyLmZpcnN0LCBTdHJpbmcgeyBwYWly
LnNlY29uZCB9KTsKIAogICAgICAgICBjb25zdCBjaGFyKiBwcm90b2NvbFJlZ2V4ID0gIlthLXpd
W2EteisuLV0qOlxcL1xcLyI7CiAgICAgICAgIGNvbnN0IGNoYXIqIGFsbG93U3ViZG9tYWluc1Jl
Z2V4ID0gIiguKlxcLikqIjsKQEAgLTExOSwyNyArMTE5LDI3IEBAIHN0YXRpYyBzdGQ6OmVycm9y
X2NvZGUgZ2V0VHlwZUZsYWdzKGNvbnN0IEpTT046OkFycmF5JiBhcnJheSwgUmVzb3VyY2VGbGFn
cyYgZmxhCiAgICAgCiBzdGF0aWMgRXhwZWN0ZWQ8VHJpZ2dlciwgc3RkOjplcnJvcl9jb2RlPiBs
b2FkVHJpZ2dlcihjb25zdCBKU09OOjpPYmplY3QmIHJ1bGVPYmplY3QpCiB7Ci0gICAgYXV0byB0
cmlnZ2VyT2JqZWN0ID0gcnVsZU9iamVjdC5nZXRPYmplY3QoInRyaWdnZXIiKTsKKyAgICBhdXRv
IHRyaWdnZXJPYmplY3QgPSBydWxlT2JqZWN0LmdldE9iamVjdCgidHJpZ2dlciJfcyk7CiAgICAg
aWYgKCF0cmlnZ2VyT2JqZWN0KQogICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoQ29udGVu
dEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZFRyaWdnZXIpOwogCi0gICAgU3RyaW5nIHVybEZp
bHRlciA9IHRyaWdnZXJPYmplY3QtPmdldFN0cmluZygidXJsLWZpbHRlciIpOworICAgIFN0cmlu
ZyB1cmxGaWx0ZXIgPSB0cmlnZ2VyT2JqZWN0LT5nZXRTdHJpbmcoInVybC1maWx0ZXIiX3MpOwog
ICAgIGlmICh1cmxGaWx0ZXIuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0
ZWQoQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZFVSTEZpbHRlckluVHJpZ2dlcik7
CiAKICAgICBUcmlnZ2VyIHRyaWdnZXI7CiAgICAgdHJpZ2dlci51cmxGaWx0ZXIgPSB1cmxGaWx0
ZXI7CiAKLSAgICBpZiAoc3RkOjpvcHRpb25hbDxib29sPiB1cmxGaWx0ZXJDYXNlU2Vuc2l0aXZl
VmFsdWUgPSB0cmlnZ2VyT2JqZWN0LT5nZXRCb29sZWFuKCJ1cmwtZmlsdGVyLWlzLWNhc2Utc2Vu
c2l0aXZlIikpCisgICAgaWYgKHN0ZDo6b3B0aW9uYWw8Ym9vbD4gdXJsRmlsdGVyQ2FzZVNlbnNp
dGl2ZVZhbHVlID0gdHJpZ2dlck9iamVjdC0+Z2V0Qm9vbGVhbigidXJsLWZpbHRlci1pcy1jYXNl
LXNlbnNpdGl2ZSJfcykpCiAgICAgICAgIHRyaWdnZXIudXJsRmlsdGVySXNDYXNlU2Vuc2l0aXZl
ID0gKnVybEZpbHRlckNhc2VTZW5zaXRpdmVWYWx1ZTsKIAotICAgIGlmIChzdGQ6Om9wdGlvbmFs
PGJvb2w+IHRvcFVSTEZpbHRlckNhc2VTZW5zaXRpdmVWYWx1ZSA9IHRyaWdnZXJPYmplY3QtPmdl
dEJvb2xlYW4oInRvcC11cmwtZmlsdGVyLWlzLWNhc2Utc2Vuc2l0aXZlIikpCisgICAgaWYgKHN0
ZDo6b3B0aW9uYWw8Ym9vbD4gdG9wVVJMRmlsdGVyQ2FzZVNlbnNpdGl2ZVZhbHVlID0gdHJpZ2dl
ck9iamVjdC0+Z2V0Qm9vbGVhbigidG9wLXVybC1maWx0ZXItaXMtY2FzZS1zZW5zaXRpdmUiX3Mp
KQogICAgICAgICB0cmlnZ2VyLnRvcFVSTEZpbHRlcklzQ2FzZVNlbnNpdGl2ZSA9ICp0b3BVUkxG
aWx0ZXJDYXNlU2Vuc2l0aXZlVmFsdWU7CiAKLSAgICBpZiAoc3RkOjpvcHRpb25hbDxib29sPiBm
cmFtZVVSTEZpbHRlckNhc2VTZW5zaXRpdmVWYWx1ZSA9IHRyaWdnZXJPYmplY3QtPmdldEJvb2xl
YW4oImZyYW1lLXVybC1maWx0ZXItaXMtY2FzZS1zZW5zaXRpdmUiKSkKKyAgICBpZiAoc3RkOjpv
cHRpb25hbDxib29sPiBmcmFtZVVSTEZpbHRlckNhc2VTZW5zaXRpdmVWYWx1ZSA9IHRyaWdnZXJP
YmplY3QtPmdldEJvb2xlYW4oImZyYW1lLXVybC1maWx0ZXItaXMtY2FzZS1zZW5zaXRpdmUiX3Mp
KQogICAgICAgICB0cmlnZ2VyLmZyYW1lVVJMRmlsdGVySXNDYXNlU2Vuc2l0aXZlID0gKmZyYW1l
VVJMRmlsdGVyQ2FzZVNlbnNpdGl2ZVZhbHVlOwogCi0gICAgaWYgKGF1dG8gcmVzb3VyY2VUeXBl
VmFsdWUgPSB0cmlnZ2VyT2JqZWN0LT5nZXRWYWx1ZSgicmVzb3VyY2UtdHlwZSIpKSB7CisgICAg
aWYgKGF1dG8gcmVzb3VyY2VUeXBlVmFsdWUgPSB0cmlnZ2VyT2JqZWN0LT5nZXRWYWx1ZSgicmVz
b3VyY2UtdHlwZSJfcykpIHsKICAgICAgICAgYXV0byByZXNvdXJjZVR5cGVBcnJheSA9IHJlc291
cmNlVHlwZVZhbHVlLT5hc0FycmF5KCk7CiAgICAgICAgIGlmICghcmVzb3VyY2VUeXBlQXJyYXkp
CiAgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoQ29udGVudEV4dGVuc2lvbkVycm9y
OjpKU09OSW52YWxpZFRyaWdnZXJGbGFnc0FycmF5KTsKQEAgLTE0Nyw3ICsxNDcsNyBAQCBzdGF0
aWMgRXhwZWN0ZWQ8VHJpZ2dlciwgc3RkOjplcnJvcl9jb2RlPiBsb2FkVHJpZ2dlcihjb25zdCBK
U09OOjpPYmplY3QmIHJ1bGVPYgogICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKGVy
cm9yKTsKICAgICB9CiAKLSAgICBpZiAoYXV0byBsb2FkVHlwZVZhbHVlID0gdHJpZ2dlck9iamVj
dC0+Z2V0VmFsdWUoImxvYWQtdHlwZSIpKSB7CisgICAgaWYgKGF1dG8gbG9hZFR5cGVWYWx1ZSA9
IHRyaWdnZXJPYmplY3QtPmdldFZhbHVlKCJsb2FkLXR5cGUiX3MpKSB7CiAgICAgICAgIGF1dG8g
bG9hZFR5cGVBcnJheSA9IGxvYWRUeXBlVmFsdWUtPmFzQXJyYXkoKTsKICAgICAgICAgaWYgKCFs
b2FkVHlwZUFycmF5KQogICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKENvbnRlbnRF
eHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWRUcmlnZ2VyRmxhZ3NBcnJheSk7CkBAIC0xNTUsNyAr
MTU1LDcgQEAgc3RhdGljIEV4cGVjdGVkPFRyaWdnZXIsIHN0ZDo6ZXJyb3JfY29kZT4gbG9hZFRy
aWdnZXIoY29uc3QgSlNPTjo6T2JqZWN0JiBydWxlT2IKICAgICAgICAgICAgIHJldHVybiBtYWtl
VW5leHBlY3RlZChlcnJvcik7CiAgICAgfQogCi0gICAgaWYgKGF1dG8gbG9hZENvbnRleHRWYWx1
ZSA9IHRyaWdnZXJPYmplY3QtPmdldFZhbHVlKCJsb2FkLWNvbnRleHQiKSkgeworICAgIGlmIChh
dXRvIGxvYWRDb250ZXh0VmFsdWUgPSB0cmlnZ2VyT2JqZWN0LT5nZXRWYWx1ZSgibG9hZC1jb250
ZXh0Il9zKSkgewogICAgICAgICBhdXRvIGxvYWRDb250ZXh0QXJyYXkgPSBsb2FkQ29udGV4dFZh
bHVlLT5hc0FycmF5KCk7CiAgICAgICAgIGlmICghbG9hZENvbnRleHRBcnJheSkKICAgICAgICAg
ICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZh
bGlkVHJpZ2dlckZsYWdzQXJyYXkpOwpAQCAtMjEyLDExICsyMTIsMTEgQEAgYm9vbCBpc1ZhbGlk
Q1NTU2VsZWN0b3IoY29uc3QgU3RyaW5nJiBzZWxlY3RvcikKIAogc3RhdGljIHN0ZDo6b3B0aW9u
YWw8RXhwZWN0ZWQ8QWN0aW9uLCBzdGQ6OmVycm9yX2NvZGU+PiBsb2FkQWN0aW9uKGNvbnN0IEpT
T046Ok9iamVjdCYgcnVsZU9iamVjdCwgY29uc3QgU3RyaW5nJiB1cmxGaWx0ZXIpCiB7Ci0gICAg
YXV0byBhY3Rpb25PYmplY3QgPSBydWxlT2JqZWN0LmdldE9iamVjdCgiYWN0aW9uIik7CisgICAg
YXV0byBhY3Rpb25PYmplY3QgPSBydWxlT2JqZWN0LmdldE9iamVjdCgiYWN0aW9uIl9zKTsKICAg
ICBpZiAoIWFjdGlvbk9iamVjdCkKICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKENvbnRl
bnRFeHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWRBY3Rpb24pOwogCi0gICAgU3RyaW5nIGFjdGlv
blR5cGUgPSBhY3Rpb25PYmplY3QtPmdldFN0cmluZygidHlwZSIpOworICAgIFN0cmluZyBhY3Rp
b25UeXBlID0gYWN0aW9uT2JqZWN0LT5nZXRTdHJpbmcoInR5cGUiX3MpOwogCiAgICAgaWYgKGFj
dGlvblR5cGUgPT0gImJsb2NrIikKICAgICAgICAgcmV0dXJuIEFjdGlvbiB7IEJsb2NrTG9hZEFj
dGlvbigpIH07CkBAIC0yMjUsNyArMjI1LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8RXhwZWN0
ZWQ8QWN0aW9uLCBzdGQ6OmVycm9yX2NvZGU+PiBsb2FkQWN0aW9uKGNvbnN0IEpTT046Ok8KICAg
ICBpZiAoYWN0aW9uVHlwZSA9PSAiYmxvY2stY29va2llcyIpCiAgICAgICAgIHJldHVybiBBY3Rp
b24geyBCbG9ja0Nvb2tpZXNBY3Rpb24oKSB9OwogICAgIGlmIChhY3Rpb25UeXBlID09ICJjc3Mt
ZGlzcGxheS1ub25lIikgewotICAgICAgICBTdHJpbmcgc2VsZWN0b3JTdHJpbmcgPSBhY3Rpb25P
YmplY3QtPmdldFN0cmluZygic2VsZWN0b3IiKTsKKyAgICAgICAgU3RyaW5nIHNlbGVjdG9yU3Ry
aW5nID0gYWN0aW9uT2JqZWN0LT5nZXRTdHJpbmcoInNlbGVjdG9yIl9zKTsKICAgICAgICAgaWYg
KCFzZWxlY3RvclN0cmluZykKICAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChDb250
ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkQ1NTRGlzcGxheU5vbmVBY3Rpb25UeXBlKTsK
ICAgICAgICAgaWYgKCFpc1ZhbGlkQ1NTU2VsZWN0b3Ioc2VsZWN0b3JTdHJpbmcpKQpAQCAtMjM1
LDcgKzIzNSw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEV4cGVjdGVkPEFjdGlvbiwgc3RkOjpl
cnJvcl9jb2RlPj4gbG9hZEFjdGlvbihjb25zdCBKU09OOjpPCiAgICAgaWYgKGFjdGlvblR5cGUg
PT0gIm1ha2UtaHR0cHMiKQogICAgICAgICByZXR1cm4gQWN0aW9uIHsgTWFrZUhUVFBTQWN0aW9u
KCkgfTsKICAgICBpZiAoYWN0aW9uVHlwZSA9PSAibm90aWZ5IikgewotICAgICAgICBTdHJpbmcg
bm90aWZpY2F0aW9uID0gYWN0aW9uT2JqZWN0LT5nZXRTdHJpbmcoIm5vdGlmaWNhdGlvbiIpOwor
ICAgICAgICBTdHJpbmcgbm90aWZpY2F0aW9uID0gYWN0aW9uT2JqZWN0LT5nZXRTdHJpbmcoIm5v
dGlmaWNhdGlvbiJfcyk7CiAgICAgICAgIGlmICghbm90aWZpY2F0aW9uKQogICAgICAgICAgICAg
cmV0dXJuIG1ha2VVbmV4cGVjdGVkKENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWRO
b3RpZmljYXRpb24pOwogICAgICAgICByZXR1cm4gQWN0aW9uIHsgTm90aWZ5QWN0aW9uIHsgeyBX
VEZNb3ZlKG5vdGlmaWNhdGlvbikgfSB9IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
b250ZW50ZXh0ZW5zaW9ucy9TZXJpYWxpemVkTkZBLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NvbnRl
bnRleHRlbnNpb25zL1NlcmlhbGl6ZWRORkEuY3BwCmluZGV4IDA0YzZkYTVhODQ4ZDA4OTFmMzNm
NGY4MzlkYTk1MmI4Yzc2NzlhMDkuLjA1MmI1OTdiY2ZiOTJhNzQzNzkzZjkxNWVkNjk2ZTdhMGU5
ZTQ4ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL1Nlcmlh
bGl6ZWRORkEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL1Nlcmlh
bGl6ZWRORkEuY3BwCkBAIC01Miw3ICs1Miw3IEBAIGJvb2wgd3JpdGVBbGxUb0ZpbGUoRmlsZVN5
c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlIGZpbGUsIGNvbnN0IFQmIGNvbnRhaW5lcikKIHN0ZDo6
b3B0aW9uYWw8U2VyaWFsaXplZE5GQT4gU2VyaWFsaXplZE5GQTo6c2VyaWFsaXplKE5GQSYmIG5m
YSkKIHsKICAgICBhdXRvIGZpbGUgPSBGaWxlU3lzdGVtOjppbnZhbGlkUGxhdGZvcm1GaWxlSGFu
ZGxlOwotICAgIGF1dG8gZmlsZW5hbWUgPSBGaWxlU3lzdGVtOjpvcGVuVGVtcG9yYXJ5RmlsZSgi
U2VyaWFsaXplZE5GQSIsIGZpbGUpOworICAgIGF1dG8gZmlsZW5hbWUgPSBGaWxlU3lzdGVtOjpv
cGVuVGVtcG9yYXJ5RmlsZSgiU2VyaWFsaXplZE5GQSJfcywgZmlsZSk7CiAgICAgaWYgKCFGaWxl
U3lzdGVtOjppc0hhbmRsZVZhbGlkKGZpbGUpKQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9VUkxGaWx0
ZXJQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvVVJMRmlsdGVy
UGFyc2VyLmNwcAppbmRleCBkODcyOWQzOTBkOTA3MzBhMGViN2RiM2E4YzlmMTcxOGM4NmY3YTNh
Li40ZmYxMjI1ZmFhODIyODViMzFjZWQ1NzU5ZGI4OTc3NjkxODllNzRhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9VUkxGaWx0ZXJQYXJzZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL1VSTEZpbHRlclBhcnNlci5jcHAKQEAg
LTM2OSwzOSArMzY5LDM5IEBAIFVSTEZpbHRlclBhcnNlcjo6UGFyc2VTdGF0dXMgVVJMRmlsdGVy
UGFyc2VyOjphZGRQYXR0ZXJuKGNvbnN0IFN0cmluZyYgcGF0dGVybiwKICAgICByZXR1cm4gc3Rh
dHVzOwogfQogCi1TdHJpbmcgVVJMRmlsdGVyUGFyc2VyOjpzdGF0dXNTdHJpbmcoUGFyc2VTdGF0
dXMgc3RhdHVzKQorQVNDSUlMaXRlcmFsIFVSTEZpbHRlclBhcnNlcjo6c3RhdHVzU3RyaW5nKFBh
cnNlU3RhdHVzIHN0YXR1cykKIHsKICAgICBzd2l0Y2ggKHN0YXR1cykgewogICAgIGNhc2UgT2s6
Ci0gICAgICAgIHJldHVybiAiT2siOworICAgICAgICByZXR1cm4gIk9rIl9zOwogICAgIGNhc2Ug
TWF0Y2hlc0V2ZXJ5dGhpbmc6Ci0gICAgICAgIHJldHVybiAiTWF0Y2hlcyBldmVyeXRoaW5nLiI7
CisgICAgICAgIHJldHVybiAiTWF0Y2hlcyBldmVyeXRoaW5nLiJfczsKICAgICBjYXNlIE5vbkFT
Q0lJOgotICAgICAgICByZXR1cm4gIk9ubHkgQVNDSUkgY2hhcmFjdGVycyBhcmUgc3VwcG9ydGVk
IGluIHBhdHRlcm4uIjsKKyAgICAgICAgcmV0dXJuICJPbmx5IEFTQ0lJIGNoYXJhY3RlcnMgYXJl
IHN1cHBvcnRlZCBpbiBwYXR0ZXJuLiJfczsKICAgICBjYXNlIFVuc3VwcG9ydGVkQ2hhcmFjdGVy
Q2xhc3M6Ci0gICAgICAgIHJldHVybiAiQ2hhcmFjdGVyIGNsYXNzIGlzIG5vdCBzdXBwb3J0ZWQu
IjsKKyAgICAgICAgcmV0dXJuICJDaGFyYWN0ZXIgY2xhc3MgaXMgbm90IHN1cHBvcnRlZC4iX3M7
CiAgICAgY2FzZSBCYWNrUmVmZXJlbmNlOgotICAgICAgICByZXR1cm4gIlBhdHRlcm5zIGNhbm5v
dCBjb250YWluIGJhY2tyZWZlcmVuY2VzLiI7CisgICAgICAgIHJldHVybiAiUGF0dGVybnMgY2Fu
bm90IGNvbnRhaW4gYmFja3JlZmVyZW5jZXMuIl9zOwogICAgIGNhc2UgRm9yd2FyZFJlZmVyZW5j
ZToKLSAgICAgICAgcmV0dXJuICJQYXR0ZXJucyBjYW5ub3QgY29udGFpbiBmb3J3YXJkIHJlZmVy
ZW5jZXMuIjsKKyAgICAgICAgcmV0dXJuICJQYXR0ZXJucyBjYW5ub3QgY29udGFpbiBmb3J3YXJk
IHJlZmVyZW5jZXMuIl9zOwogICAgIGNhc2UgTWlzcGxhY2VkU3RhcnRPZkxpbmU6Ci0gICAgICAg
IHJldHVybiAiU3RhcnQgb2YgbGluZSBhc3NlcnRpb24gY2FuIG9ubHkgYXBwZWFyIGFzIHRoZSBm
aXJzdCB0ZXJtIGluIGEgZmlsdGVyLiI7CisgICAgICAgIHJldHVybiAiU3RhcnQgb2YgbGluZSBh
c3NlcnRpb24gY2FuIG9ubHkgYXBwZWFyIGFzIHRoZSBmaXJzdCB0ZXJtIGluIGEgZmlsdGVyLiJf
czsKICAgICBjYXNlIFdvcmRCb3VuZGFyeToKLSAgICAgICAgcmV0dXJuICJXb3JkIGJvdW5kYXJp
ZXMgYXNzZXJ0aW9ucyBhcmUgbm90IHN1cHBvcnRlZCB5ZXQuIjsKKyAgICAgICAgcmV0dXJuICJX
b3JkIGJvdW5kYXJpZXMgYXNzZXJ0aW9ucyBhcmUgbm90IHN1cHBvcnRlZCB5ZXQuIl9zOwogICAg
IGNhc2UgQXRvbUNoYXJhY3RlcjoKLSAgICAgICAgcmV0dXJuICJCdWlsdGlucyBjaGFyYWN0ZXIg
Y2xhc3MgYXRvbXMgYXJlIG5vdCBzdXBwb3J0ZWQgeWV0LiI7CisgICAgICAgIHJldHVybiAiQnVp
bHRpbnMgY2hhcmFjdGVyIGNsYXNzIGF0b21zIGFyZSBub3Qgc3VwcG9ydGVkIHlldC4iX3M7CiAg
ICAgY2FzZSBHcm91cDoKLSAgICAgICAgcmV0dXJuICJHcm91cHMgYXJlIG5vdCBzdXBwb3J0ZWQg
eWV0LiI7CisgICAgICAgIHJldHVybiAiR3JvdXBzIGFyZSBub3Qgc3VwcG9ydGVkIHlldC4iX3M7
CiAgICAgY2FzZSBEaXNqdW5jdGlvbjoKLSAgICAgICAgcmV0dXJuICJEaXNqdW5jdGlvbnMgYXJl
IG5vdCBzdXBwb3J0ZWQgeWV0LiI7CisgICAgICAgIHJldHVybiAiRGlzanVuY3Rpb25zIGFyZSBu
b3Qgc3VwcG9ydGVkIHlldC4iX3M7CiAgICAgY2FzZSBNaXNwbGFjZWRFbmRPZkxpbmU6Ci0gICAg
ICAgIHJldHVybiAiVGhlIGVuZCBvZiBsaW5lIGFzc2VydGlvbiBtdXN0IGJlIHRoZSBsYXN0IHRl
cm0gaW4gYW4gZXhwcmVzc2lvbi4iOworICAgICAgICByZXR1cm4gIlRoZSBlbmQgb2YgbGluZSBh
c3NlcnRpb24gbXVzdCBiZSB0aGUgbGFzdCB0ZXJtIGluIGFuIGV4cHJlc3Npb24uIl9zOwogICAg
IGNhc2UgRW1wdHlQYXR0ZXJuOgotICAgICAgICByZXR1cm4gIkVtcHR5IHBhdHRlcm4uIjsKKyAg
ICAgICAgcmV0dXJuICJFbXB0eSBwYXR0ZXJuLiJfczsKICAgICBjYXNlIFlhcnJFcnJvcjoKLSAg
ICAgICAgcmV0dXJuICJJbnRlcm5hbCBlcnJvciBpbiBZQVJSLiI7CisgICAgICAgIHJldHVybiAi
SW50ZXJuYWwgZXJyb3IgaW4gWUFSUi4iX3M7CiAgICAgY2FzZSBJbnZhbGlkUXVhbnRpZmllcjoK
LSAgICAgICAgcmV0dXJuICJBcmJpdHJhcnkgYXRvbSByZXBldGl0aW9ucyBhcmUgbm90IHN1cHBv
cnRlZC4iOworICAgICAgICByZXR1cm4gIkFyYml0cmFyeSBhdG9tIHJlcGV0aXRpb25zIGFyZSBu
b3Qgc3VwcG9ydGVkLiJfczsKICAgICB9CiAKICAgICBSRUxFQVNFX0FTU0VSVF9OT1RfUkVBQ0hF
RCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvVVJMRmls
dGVyUGFyc2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9VUkxGaWx0ZXJQ
YXJzZXIuaAppbmRleCBiNWMxZjZkOWZkMmU3Yzk0Y2IyNTY1NzU2ODlkZjRiNzA3MDc5YTlkLi44
ODk4M2I1NWMzY2JlZDU5ZjRhNGEwMWFlZDI1YTQzMmM4MDI4YjQxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9VUkxGaWx0ZXJQYXJzZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9VUkxGaWx0ZXJQYXJzZXIuaApAQCAtNTQsNyAr
NTQsNyBAQCBwdWJsaWM6CiAgICAgICAgIFlhcnJFcnJvciwKICAgICAgICAgSW52YWxpZFF1YW50
aWZpZXIsCiAgICAgfTsKLSAgICBzdGF0aWMgU3RyaW5nIHN0YXR1c1N0cmluZyhQYXJzZVN0YXR1
cyk7CisgICAgc3RhdGljIEFTQ0lJTGl0ZXJhbCBzdGF0dXNTdHJpbmcoUGFyc2VTdGF0dXMpOwog
ICAgIGV4cGxpY2l0IFVSTEZpbHRlclBhcnNlcihDb21iaW5lZFVSTEZpbHRlcnMmKTsKICAgICB+
VVJMRmlsdGVyUGFyc2VyKCk7CiAgICAgUGFyc2VTdGF0dXMgYWRkUGF0dGVybihjb25zdCBTdHJp
bmcmIHBhdHRlcm4sIGJvb2wgcGF0dGVybklzQ2FzZVNlbnNpdGl2ZSwgdWludDY0X3QgcGF0dGVy
bklkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9TdWJ0bGVDcnlwdG8uY3Bw
IGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL1N1YnRsZUNyeXB0by5jcHAKaW5kZXggZWFhMzIxOGZj
ZjdiNzc4NTRmYjIzODVlNTAxYTk5OTQzNmZiZWI1OC4uOWQ2ZjQzMDM2NTk4MmQ2ZTk1MGU5YzFh
NmExZDZiMmMxYTdkMzk2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL1N1YnRs
ZUNyeXB0by5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL1N1YnRsZUNyeXB0by5jcHAK
QEAgLTUzNCw3ICs1MzQsNyBAQCB2b2lkIFN1YnRsZUNyeXB0bzo6YWRkQXV0aGVudGljYXRlZEVu
Y3J5cHRpb25XYXJuaW5nSWZOZWNlc3NhcnkoQ3J5cHRvQWxnb3JpdGhtSQogewogICAgIGlmIChh
bGdvcml0aG1JZGVudGlmaWVyID09IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkFFU19DQkMg
fHwgYWxnb3JpdGhtSWRlbnRpZmllciA9PSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpBRVNf
Q1RSKSB7CiAgICAgICAgIGlmICghc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5oYXNMb2dnZWRB
dXRoZW50aWNhdGVkRW5jcnlwdGlvbldhcm5pbmcoKSkgewotICAgICAgICAgICAgc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpLT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpTZWN1cml0
eSwgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCAiQUVTLUNCQyBhbmQgQUVTLUNUUiBkbyBub3QgcHJv
dmlkZSBhdXRoZW50aWNhdGlvbiBieSBkZWZhdWx0LCBhbmQgaW1wbGVtZW50aW5nIGl0IG1hbnVh
bGx5IGNhbiByZXN1bHQgaW4gbWlub3IsIGJ1dCBzZXJpb3VzIG1pc3Rha2VzLiBXZSByZWNvbW1l
bmRlZCB1c2luZyBhdXRoZW50aWNhdGVkIGVuY3J5cHRpb24gbGlrZSBBRVMtR0NNIHRvIHByb3Rl
Y3QgYWdhaW5zdCBjaG9zZW4tY2lwaGVydGV4dCBhdHRhY2tzLiIpOworICAgICAgICAgICAgc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpLT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpT
ZWN1cml0eSwgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCAiQUVTLUNCQyBhbmQgQUVTLUNUUiBkbyBu
b3QgcHJvdmlkZSBhdXRoZW50aWNhdGlvbiBieSBkZWZhdWx0LCBhbmQgaW1wbGVtZW50aW5nIGl0
IG1hbnVhbGx5IGNhbiByZXN1bHQgaW4gbWlub3IsIGJ1dCBzZXJpb3VzIG1pc3Rha2VzLiBXZSBy
ZWNvbW1lbmRlZCB1c2luZyBhdXRoZW50aWNhdGVkIGVuY3J5cHRpb24gbGlrZSBBRVMtR0NNIHRv
IHByb3RlY3QgYWdhaW5zdCBjaG9zZW4tY2lwaGVydGV4dCBhdHRhY2tzLiJfcyk7CiAgICAgICAg
ICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnNldEhhc0xvZ2dlZEF1dGhlbnRpY2F0ZWRF
bmNyeXB0aW9uV2FybmluZyh0cnVlKTsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DQkMuaCBi
L1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DQkMu
aAppbmRleCAyNzMyOTg1Yjc3ZmVkZmMzOTY3NGQ0NzQ5ZDg5NTUwYTBhMTcxYzI2Li5iNzQ0M2E3
MzM5ODQyMDg4ZjgzY2NjNmYzNWNhMjk3NzE2MDhjY2ZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfQ0JDLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQy5oCkBA
IC00MSw3ICs0MSw3IEBAIHB1YmxpYzoKICAgICAgICAgTm8KICAgICB9OwogCi0gICAgc3RhdGlj
IGNvbnN0ZXhwciBjb25zdCBjaGFyKiBzX25hbWUgPSAiQUVTLUNCQyI7CisgICAgc3RhdGljIGNv
bnN0ZXhwciBBU0NJSUxpdGVyYWwgc19uYW1lID0gIkFFUy1DQkMiX3M7CiAgICAgc3RhdGljIGNv
bnN0ZXhwciBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIHNfaWRlbnRpZmllciA9IENyeXB0b0Fs
Z29yaXRobUlkZW50aWZpZXI6OkFFU19DQkM7CiAgICAgc3RhdGljIFJlZjxDcnlwdG9BbGdvcml0
aG0+IGNyZWF0ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3Jp
dGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfQ0ZCLmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxn
b3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfQ0ZCLmgKaW5kZXggYzIyNzQxOTFmNjM1YjgzM2E0
OTFlODJjYjFkZTdkYTgxMDNjNmQ5YS4uNTA4YTIwMzM2NGFjYmFjZmMwZmZjODU3Mjc1Mjc5ZWY1
NDZjZmM4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5
cHRvQWxnb3JpdGhtQUVTX0NGQi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0
aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DRkIuaApAQCAtMzYsNyArMzYsNyBAQCBjbGFzcyBDcnlw
dG9LZXlBRVM7CiAKIGNsYXNzIENyeXB0b0FsZ29yaXRobUFFU19DRkIgZmluYWwgOiBwdWJsaWMg
Q3J5cHRvQWxnb3JpdGhtIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3RleHByIGNvbnN0IGNo
YXIqIHNfbmFtZSA9ICJBRVMtQ0ZCLTgiOworICAgIHN0YXRpYyBjb25zdGV4cHIgQVNDSUlMaXRl
cmFsIHNfbmFtZSA9ICJBRVMtQ0ZCLTgiX3M7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBDcnlwdG9B
bGdvcml0aG1JZGVudGlmaWVyIHNfaWRlbnRpZmllciA9IENyeXB0b0FsZ29yaXRobUlkZW50aWZp
ZXI6OkFFU19DRkI7CiAgICAgc3RhdGljIFJlZjxDcnlwdG9BbGdvcml0aG0+IGNyZWF0ZSgpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdv
cml0aG1BRVNfQ1RSLmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9B
bGdvcml0aG1BRVNfQ1RSLmgKaW5kZXggNzE4ZjZlMGUzMzg2ZTZmZTYyNTM5NWFmYmI3OWFkMzBj
NGZhNDE0YS4uOGJkMzkzMzlkYzM2MDBmNmM0ODZlYTYxMGMxYjgyNDZiOGMyMjcwMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVT
X0NUUi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29y
aXRobUFFU19DVFIuaApAQCAtNjQsNyArNjQsNyBAQCBwdWJsaWM6CiAgICAgICAgIGNvbnN0IHNp
emVfdCBtX2NvdW50ZXJMZW5ndGg7CiAgICAgfTsKIAotICAgIHN0YXRpYyBjb25zdGV4cHIgY29u
c3QgY2hhciogc19uYW1lID0gIkFFUy1DVFIiOworICAgIHN0YXRpYyBjb25zdGV4cHIgQVNDSUlM
aXRlcmFsIHNfbmFtZSA9ICJBRVMtQ1RSIl9zOwogICAgIHN0YXRpYyBjb25zdGV4cHIgQ3J5cHRv
QWxnb3JpdGhtSWRlbnRpZmllciBzX2lkZW50aWZpZXIgPSBDcnlwdG9BbGdvcml0aG1JZGVudGlm
aWVyOjpBRVNfQ1RSOwogICAgIHN0YXRpYyBSZWY8Q3J5cHRvQWxnb3JpdGhtPiBjcmVhdGUoKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxn
b3JpdGhtQUVTX0dDTS5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRv
QWxnb3JpdGhtQUVTX0dDTS5oCmluZGV4IGQwYWQxZjEzYzE3OGI1Y2M5YjE3NmViMzBlNmNlYzJh
MWJjYjQ2NTguLjUzMzEwZTExMTA3NWUxNjM0ZWYzZTA1N2I0YWRmNmExM2M2OTIzMWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFF
U19HQ00uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdv
cml0aG1BRVNfR0NNLmgKQEAgLTM2LDcgKzM2LDcgQEAgY2xhc3MgQ3J5cHRvS2V5QUVTOwogCiBj
bGFzcyBDcnlwdG9BbGdvcml0aG1BRVNfR0NNIGZpbmFsIDogcHVibGljIENyeXB0b0FsZ29yaXRo
bSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBjb25zdCBjaGFyKiBzX25hbWUgPSAi
QUVTLUdDTSI7CisgICAgc3RhdGljIGNvbnN0ZXhwciBBU0NJSUxpdGVyYWwgc19uYW1lID0gIkFF
Uy1HQ00iX3M7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVy
IHNfaWRlbnRpZmllciA9IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkFFU19HQ007CiAgICAg
c3RhdGljIFJlZjxDcnlwdG9BbGdvcml0aG0+IGNyZWF0ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfS1cuaCBiL1Nv
dXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19LVy5oCmlu
ZGV4IDU3ZTY5YzE1YzEyYzdlZTE4ZWI3NjUxOGRmZjg3YmY0YjU3MjRiOTkuLmEwOGRlYzNmMjZj
YmI1OTkxNTRhMjM1NjU5MGVmMGZkMTc3YzYzZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19LVy5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19LVy5oCkBAIC0zNSw3
ICszNSw3IEBAIGNsYXNzIENyeXB0b0tleUFFUzsKIAogY2xhc3MgQ3J5cHRvQWxnb3JpdGhtQUVT
X0tXIGZpbmFsIDogcHVibGljIENyeXB0b0FsZ29yaXRobSB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IGNvbnN0ZXhwciBjb25zdCBjaGFyKiBzX25hbWUgPSAiQUVTLUtXIjsKKyAgICBzdGF0aWMgY29u
c3RleHByIEFTQ0lJTGl0ZXJhbCBzX25hbWUgPSAiQUVTLUtXIl9zOwogICAgIHN0YXRpYyBjb25z
dGV4cHIgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBzX2lkZW50aWZpZXIgPSBDcnlwdG9BbGdv
cml0aG1JZGVudGlmaWVyOjpBRVNfS1c7CiAgICAgc3RhdGljIFJlZjxDcnlwdG9BbGdvcml0aG0+
IGNyZWF0ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGht
cy9DcnlwdG9BbGdvcml0aG1FQ0RILmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGht
cy9DcnlwdG9BbGdvcml0aG1FQ0RILmgKaW5kZXggOTNhMTVhMmRhMzUxZGNlNzI3NDMzODE5N2Qy
NjYzMTA1ODVmN2JmNS4uMzJkNTU0NTZjOTcwODI1Y2NlNTUyZDdkZTA0M2E0Mjk1MGQwZTIzYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3Jp
dGhtRUNESC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0Fs
Z29yaXRobUVDREguaApAQCAtMzUsNyArMzUsNyBAQCBjbGFzcyBDcnlwdG9LZXlFQzsKIAogY2xh
c3MgQ3J5cHRvQWxnb3JpdGhtRUNESCBmaW5hbCA6IHB1YmxpYyBDcnlwdG9BbGdvcml0aG0gewog
cHVibGljOgotICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3QgY2hhciogc19uYW1lID0gIkVDREgi
OworICAgIHN0YXRpYyBjb25zdGV4cHIgQVNDSUlMaXRlcmFsIHNfbmFtZSA9ICJFQ0RIIl9zOwog
ICAgIHN0YXRpYyBjb25zdGV4cHIgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBzX2lkZW50aWZp
ZXIgPSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpFQ0RIOwogICAgIHN0YXRpYyBSZWY8Q3J5
cHRvQWxnb3JpdGhtPiBjcmVhdGUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5
cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtRUNEU0EuaCBiL1NvdXJjZS9XZWJDb3JlL2Ny
eXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUVDRFNBLmgKaW5kZXggM2E1OTFiZGZhZjIy
ODg1MGRlOGMwODJiZjI3N2ExOTAwNjM4OWU2Ni4uYjdjNzg4OWY4ZTAzMjEzNGMzZGUwM2I3YWFi
Zjc1YzUyZjgyYmQzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRo
bXMvQ3J5cHRvQWxnb3JpdGhtRUNEU0EuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxn
b3JpdGhtcy9DcnlwdG9BbGdvcml0aG1FQ0RTQS5oCkBAIC0zNiw3ICszNiw3IEBAIGNsYXNzIENy
eXB0b0tleUVDOwogCiBjbGFzcyBDcnlwdG9BbGdvcml0aG1FQ0RTQSBmaW5hbCA6IHB1YmxpYyBD
cnlwdG9BbGdvcml0aG0gewogcHVibGljOgotICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3QgY2hh
ciogc19uYW1lID0gIkVDRFNBIjsKKyAgICBzdGF0aWMgY29uc3RleHByIEFTQ0lJTGl0ZXJhbCBz
X25hbWUgPSAiRUNEU0EiX3M7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBDcnlwdG9BbGdvcml0aG1J
ZGVudGlmaWVyIHNfaWRlbnRpZmllciA9IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkVDRFNB
OwogICAgIHN0YXRpYyBSZWY8Q3J5cHRvQWxnb3JpdGhtPiBjcmVhdGUoKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtSEtERi5o
IGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtSEtERi5o
CmluZGV4IDFkZGNkOWQxYTE0NjMxNjAzMjFiMTE2YWU3NGQ5YTM2ZDljYjFkNmEuLjhmMzkzOWIx
OWI0ZWM5Mjg2NzgwNzNmMjc0NmE5NWIwZWYzYjM1YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUhLREYuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1IS0RGLmgKQEAgLTM2LDcg
KzM2LDcgQEAgY2xhc3MgQ3J5cHRvS2V5UmF3OwogCiBjbGFzcyBDcnlwdG9BbGdvcml0aG1IS0RG
IGZpbmFsIDogcHVibGljIENyeXB0b0FsZ29yaXRobSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNv
bnN0ZXhwciBjb25zdCBjaGFyKiBzX25hbWUgPSAiSEtERiI7CisgICAgc3RhdGljIGNvbnN0ZXhw
ciBBU0NJSUxpdGVyYWwgc19uYW1lID0gIkhLREYiX3M7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBD
cnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIHNfaWRlbnRpZmllciA9IENyeXB0b0FsZ29yaXRobUlk
ZW50aWZpZXI6OkhLREY7CiAgICAgc3RhdGljIFJlZjxDcnlwdG9BbGdvcml0aG0+IGNyZWF0ZSgp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9B
bGdvcml0aG1ITUFDLmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9B
bGdvcml0aG1ITUFDLmgKaW5kZXggZmE4ZjBhZGRjY2UxMjhmMjQ3MTUxNzNmYWZiZmE5MjczMjUy
NTBkMy4uOWYxMDg0Njk4YWI0M2Y3ZTVlZDk5YmJjYWQ4NWY4MTFhYWJiNWMyMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtSE1BQy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUhN
QUMuaApAQCAtMzUsNyArMzUsNyBAQCBjbGFzcyBDcnlwdG9LZXlITUFDOwogCiBjbGFzcyBDcnlw
dG9BbGdvcml0aG1ITUFDIGZpbmFsIDogcHVibGljIENyeXB0b0FsZ29yaXRobSB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBjb25zdCBjaGFyKiBzX25hbWUgPSAiSE1BQyI7CisgICAg
c3RhdGljIGNvbnN0ZXhwciBBU0NJSUxpdGVyYWwgc19uYW1lID0gIkhNQUMiX3M7CiAgICAgc3Rh
dGljIGNvbnN0ZXhwciBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIHNfaWRlbnRpZmllciA9IENy
eXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkhNQUM7CiAgICAgc3RhdGljIFJlZjxDcnlwdG9BbGdv
cml0aG0+IGNyZWF0ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxn
b3JpdGhtcy9DcnlwdG9BbGdvcml0aG1QQktERjIuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9h
bGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVBCS0RGMi5oCmluZGV4IGJkOTc0NWM3MDM1OGU3OGQ1
M2I0ODBjYzI2NmRjNDQ5Nzc4ZmI4NDIuLjM0MDY5ZTUxZmFhZTZhMjA3MjIyOTgyOGQxNmQ5YTMy
OWQ1YThiZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0Ny
eXB0b0FsZ29yaXRobVBCS0RGMi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0
aG1zL0NyeXB0b0FsZ29yaXRobVBCS0RGMi5oCkBAIC0zNiw3ICszNiw3IEBAIGNsYXNzIENyeXB0
b0tleVJhdzsKIAogY2xhc3MgQ3J5cHRvQWxnb3JpdGhtUEJLREYyIGZpbmFsIDogcHVibGljIENy
eXB0b0FsZ29yaXRobSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBjb25zdCBjaGFy
KiBzX25hbWUgPSAiUEJLREYyIjsKKyAgICBzdGF0aWMgY29uc3RleHByIEFTQ0lJTGl0ZXJhbCBz
X25hbWUgPSAiUEJLREYyIl9zOwogICAgIHN0YXRpYyBjb25zdGV4cHIgQ3J5cHRvQWxnb3JpdGht
SWRlbnRpZmllciBzX2lkZW50aWZpZXIgPSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpQQktE
RjI7CiAgICAgc3RhdGljIFJlZjxDcnlwdG9BbGdvcml0aG0+IGNyZWF0ZSgpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FF
U19QS0NTMV92MV81LmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9B
bGdvcml0aG1SU0FFU19QS0NTMV92MV81LmgKaW5kZXggOGI1MWI0MWU3YzBhNTdmNjY4ZjU4NDc5
ZmEyOWU2MzhlOWUxYWQwYi4uZDIxZTZjMWVlMjg2ZjdkYzYzODc1YTk4NGFiMjNlNzAwNGVlMTg4
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxn
b3JpdGhtUlNBRVNfUEtDUzFfdjFfNS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdv
cml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQUVTX1BLQ1MxX3YxXzUuaApAQCAtMzUsNyArMzUsNyBA
QCBjbGFzcyBDcnlwdG9LZXlSU0E7CiAKIGNsYXNzIENyeXB0b0FsZ29yaXRobVJTQUVTX1BLQ1Mx
X3YxXzUgZmluYWwgOiBwdWJsaWMgQ3J5cHRvQWxnb3JpdGhtIHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgY29uc3RleHByIGNvbnN0IGNoYXIqIHNfbmFtZSA9ICJSU0FFUy1QS0NTMS12MV81IjsKKyAg
ICBzdGF0aWMgY29uc3RleHByIEFTQ0lJTGl0ZXJhbCBzX25hbWUgPSAiUlNBRVMtUEtDUzEtdjFf
NSJfczsKICAgICBzdGF0aWMgY29uc3RleHByIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgc19p
ZGVudGlmaWVyID0gQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6UlNBRVNfUEtDUzFfdjFfNTsK
ICAgICBzdGF0aWMgUmVmPENyeXB0b0FsZ29yaXRobT4gY3JlYXRlKCk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQVNTQV9Q
S0NTMV92MV81LmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdv
cml0aG1SU0FTU0FfUEtDUzFfdjFfNS5oCmluZGV4IGQ5YjdiNDUwNzIzYWZjZGE5OTk5NWNiODgz
Y2RhMzljYWYzMjhkY2UuLmQxODVkM2E0YmRhMmRhMzdjZGIwZGYyOGY2OGEyNzNkZGU5OWI4NjAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29y
aXRobVJTQVNTQV9QS0NTMV92MV81LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29y
aXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzUuaApAQCAtMzUsNyArMzUsNyBA
QCBjbGFzcyBDcnlwdG9LZXlSU0E7CiAKIGNsYXNzIENyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NT
MV92MV81IGZpbmFsIDogcHVibGljIENyeXB0b0FsZ29yaXRobSB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIGNvbnN0ZXhwciBjb25zdCBjaGFyKiBzX25hbWUgPSAiUlNBU1NBLVBLQ1MxLXYxXzUiOwor
ICAgIHN0YXRpYyBjb25zdGV4cHIgQVNDSUlMaXRlcmFsIHNfbmFtZSA9ICJSU0FTU0EtUEtDUzEt
djFfNSJfczsKICAgICBzdGF0aWMgY29uc3RleHByIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIg
c19pZGVudGlmaWVyID0gQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6UlNBU1NBX1BLQ1MxX3Yx
XzU7CiAgICAgc3RhdGljIFJlZjxDcnlwdG9BbGdvcml0aG0+IGNyZWF0ZSgpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0Ff
T0FFUC5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGht
UlNBX09BRVAuaAppbmRleCAwOTZhZjNjYTIzMDc5NTlmMjQ1NGVlM2NmZDJiM2YwZTIyYjQ3M2Yy
Li5kYmE3ZWE5ZDVkNzIyZTQyN2EzYjBhYTRmOWRjZDMyZmY0NDU5ZjJiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FfT0FFUC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJT
QV9PQUVQLmgKQEAgLTM2LDcgKzM2LDcgQEAgY2xhc3MgQ3J5cHRvS2V5UlNBOwogCiBjbGFzcyBD
cnlwdG9BbGdvcml0aG1SU0FfT0FFUCBmaW5hbCA6IHB1YmxpYyBDcnlwdG9BbGdvcml0aG0gewog
cHVibGljOgotICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3QgY2hhciogc19uYW1lID0gIlJTQS1P
QUVQIjsKKyAgICBzdGF0aWMgY29uc3RleHByIEFTQ0lJTGl0ZXJhbCBzX25hbWUgPSAiUlNBLU9B
RVAiX3M7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIHNf
aWRlbnRpZmllciA9IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlJTQV9PQUVQOwogICAgIHN0
YXRpYyBSZWY8Q3J5cHRvQWxnb3JpdGhtPiBjcmVhdGUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBX1BTUy5oIGIvU291
cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBX1BTUy5oCmlu
ZGV4IDU4NzlhNTY3Y2NjYzdiMGExYzlhZDRkOTE3ODlkOWQwNTRiMDA5NzQuLmIxZjdmNzcyY2U0
MjI3OGQ0ZDk0ZDVjMGE3NmNhZTVlZGYwZTQwZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQV9QU1MuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FfUFNTLmgKQEAgLTM2
LDcgKzM2LDcgQEAgY2xhc3MgQ3J5cHRvS2V5UlNBOwogCiBjbGFzcyBDcnlwdG9BbGdvcml0aG1S
U0FfUFNTIGZpbmFsIDogcHVibGljIENyeXB0b0FsZ29yaXRobSB7CiBwdWJsaWM6Ci0gICAgc3Rh
dGljIGNvbnN0ZXhwciBjb25zdCBjaGFyKiBzX25hbWUgPSAiUlNBLVBTUyI7CisgICAgc3RhdGlj
IGNvbnN0ZXhwciBBU0NJSUxpdGVyYWwgc19uYW1lID0gIlJTQS1QU1MiX3M7CiAgICAgc3RhdGlj
IGNvbnN0ZXhwciBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIHNfaWRlbnRpZmllciA9IENyeXB0
b0FsZ29yaXRobUlkZW50aWZpZXI6OlJTQV9QU1M7CiAgICAgc3RhdGljIFJlZjxDcnlwdG9BbGdv
cml0aG0+IGNyZWF0ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxn
b3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEExLmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxn
b3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEExLmgKaW5kZXggZDgwN2FiYjk3NGNiYWFjM2IwYTdi
YzdhZDg2NThmY2FmYjVhZDZhZS4uMWZkNzc1YTgxMzY0M2MxYjJmYWNjN2QzYzk0MDlkMzJmZTFj
ZTg1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRv
QWxnb3JpdGhtU0hBMS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0Ny
eXB0b0FsZ29yaXRobVNIQTEuaApAQCAtMzMsNyArMzMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGNsYXNzIENyeXB0b0FsZ29yaXRobVNIQTEgZmluYWwgOiBwdWJsaWMgQ3J5cHRvQWxnb3Jp
dGhtIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3RleHByIGNvbnN0IGNoYXIqIHNfbmFtZSA9
ICJTSEEtMSI7CisgICAgc3RhdGljIGNvbnN0ZXhwciBBU0NJSUxpdGVyYWwgc19uYW1lID0gIlNI
QS0xIl9zOwogICAgIHN0YXRpYyBjb25zdGV4cHIgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBz
X2lkZW50aWZpZXIgPSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpTSEFfMTsKICAgICBzdGF0
aWMgUmVmPENyeXB0b0FsZ29yaXRobT4gY3JlYXRlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTIyNC5oIGIvU291cmNl
L1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMjI0LmgKaW5kZXgg
NzgwNGJhY2ZmMjU3MmQ4ZGM2NTExMDA0MDRmOTA1YmY5M2JmYzRjNi4uNDkzZTE2MmFiMzY1MmU2
NmMzNTA0YThkNzk1YzI4NjlkNGRkY2VjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5
cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMjI0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMjI0LmgKQEAgLTMzLDcgKzMz
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDcnlwdG9BbGdvcml0aG1TSEEyMjQg
ZmluYWwgOiBwdWJsaWMgQ3J5cHRvQWxnb3JpdGhtIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29u
c3RleHByIGNvbnN0IGNoYXIqIHNfbmFtZSA9ICJTSEEtMjI0IjsKKyAgICBzdGF0aWMgY29uc3Rl
eHByIEFTQ0lJTGl0ZXJhbCBzX25hbWUgPSAiU0hBLTIyNCJfczsKICAgICBzdGF0aWMgY29uc3Rl
eHByIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgc19pZGVudGlmaWVyID0gQ3J5cHRvQWxnb3Jp
dGhtSWRlbnRpZmllcjo6U0hBXzIyNDsKICAgICBzdGF0aWMgUmVmPENyeXB0b0FsZ29yaXRobT4g
Y3JlYXRlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1z
L0NyeXB0b0FsZ29yaXRobVNIQTI1Ni5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRo
bXMvQ3J5cHRvQWxnb3JpdGhtU0hBMjU2LmgKaW5kZXggY2UyNDA0Yzc0ZDU1YzhmMjc0NDA1ZTU2
ZjRkNThhN2ZmNjE2MTVmOS4uZjVhODU0M2M4MmM1NTQ4ZWU0MmIzYjkzMjcxMWU2ODU1ZWY4ZjBm
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxn
b3JpdGhtU0hBMjU2LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5
cHRvQWxnb3JpdGhtU0hBMjU2LmgKQEAgLTMzLDcgKzMzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBjbGFzcyBDcnlwdG9BbGdvcml0aG1TSEEyNTYgZmluYWwgOiBwdWJsaWMgQ3J5cHRvQWxn
b3JpdGhtIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3RleHByIGNvbnN0IGNoYXIqIHNfbmFt
ZSA9ICJTSEEtMjU2IjsKKyAgICBzdGF0aWMgY29uc3RleHByIEFTQ0lJTGl0ZXJhbCBzX25hbWUg
PSAiU0hBLTI1NiJfczsKICAgICBzdGF0aWMgY29uc3QgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmll
ciBzX2lkZW50aWZpZXIgPSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpTSEFfMjU2OwogICAg
IHN0YXRpYyBSZWY8Q3J5cHRvQWxnb3JpdGhtPiBjcmVhdGUoKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMzg0LmggYi9T
b3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEzODQuaApp
bmRleCA2Y2M1NzQ5MTMyNmEwMDhlNDI2ZjI2OTIxMzg5YWQ2ZjRjNGJmODQ5Li5lNWJmMjIzMmFj
ZjJkYTZhMTAwNmVhNTIwMTkzNDA4YjE4MDVmMmMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEzODQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEzODQuaApAQCAtMzMs
NyArMzMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENyeXB0b0FsZ29yaXRobVNI
QTM4NCBmaW5hbCA6IHB1YmxpYyBDcnlwdG9BbGdvcml0aG0gewogcHVibGljOgotICAgIHN0YXRp
YyBjb25zdGV4cHIgY29uc3QgY2hhciogc19uYW1lID0gIlNIQS0zODQiOworICAgIHN0YXRpYyBj
b25zdGV4cHIgQVNDSUlMaXRlcmFsIHNfbmFtZSA9ICJTSEEtMzg0Il9zOwogICAgIHN0YXRpYyBj
b25zdGV4cHIgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBzX2lkZW50aWZpZXIgPSBDcnlwdG9B
bGdvcml0aG1JZGVudGlmaWVyOjpTSEFfMzg0OwogICAgIHN0YXRpYyBSZWY8Q3J5cHRvQWxnb3Jp
dGhtPiBjcmVhdGUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29y
aXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBNTEyLmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxn
b3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEE1MTIuaAppbmRleCAwZDRhMGI5NmI2NDJhNGNkZmE3
YmY5OTBhOTdlZjczYjhiNzYxM2Y4Li4wNWY5OGZjNGE4NjY2ZGFmZGE2MDU5YTE0ZmU1ZTE3Mzdh
NGE3NDJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9Dcnlw
dG9BbGdvcml0aG1TSEE1MTIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGht
cy9DcnlwdG9BbGdvcml0aG1TSEE1MTIuaApAQCAtMzMsNyArMzMsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGNsYXNzIENyeXB0b0FsZ29yaXRobVNIQTUxMiBmaW5hbCA6IHB1YmxpYyBDcnlw
dG9BbGdvcml0aG0gewogcHVibGljOgotICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3QgY2hhciog
c19uYW1lID0gIlNIQS01MTIiOworICAgIHN0YXRpYyBjb25zdGV4cHIgQVNDSUlMaXRlcmFsIHNf
bmFtZSA9ICJTSEEtNTEyIl9zOwogICAgIHN0YXRpYyBjb25zdGV4cHIgQ3J5cHRvQWxnb3JpdGht
SWRlbnRpZmllciBzX2lkZW50aWZpZXIgPSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpTSEFf
NTEyOwogICAgIHN0YXRpYyBSZWY8Q3J5cHRvQWxnb3JpdGhtPiBjcmVhdGUoKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5QUVTLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleUFFUy5jcHAKaW5kZXggNDJmZTNhNGJlNTIx
ODE5OTczNGRlZGQwM2FiN2M5NzFmMzAxMWFkNC4uYzc2Yzg2M2Q1YWZjNWE0MTViMDY1NTg4NTBk
MzA3NTIwYzBjNjdjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5
cHRvS2V5QUVTLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlB
RVMuY3BwCkBAIC0xMDYsNyArMTA2LDcgQEAgUmVmUHRyPENyeXB0b0tleUFFUz4gQ3J5cHRvS2V5
QUVTOjppbXBvcnRKd2soQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBhbGdvcml0aG0KIEpzb25X
ZWJLZXkgQ3J5cHRvS2V5QUVTOjpleHBvcnRKd2soKSBjb25zdAogewogICAgIEpzb25XZWJLZXkg
cmVzdWx0OwotICAgIHJlc3VsdC5rdHkgPSAib2N0IjsKKyAgICByZXN1bHQua3R5ID0gIm9jdCJf
czsKICAgICByZXN1bHQuayA9IGJhc2U2NFVSTEVuY29kZVRvU3RyaW5nKG1fa2V5KTsKICAgICBy
ZXN1bHQua2V5X29wcyA9IHVzYWdlcygpOwogICAgIHJlc3VsdC5leHQgPSBleHRyYWN0YWJsZSgp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5RUMuY3Bw
IGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5RUMuY3BwCmluZGV4IGQzNmQz
NDBmNzBhOGY0YTE3ZmY1ZjYxOWNlYjFkOWQ4NDVjYTJhMzMuLmZjZTgyYmVlOTFjYWI3NDI2MjA0
MDBkY2E3NzMwNWMxN2Y2ODUyMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9r
ZXlzL0NyeXB0b0tleUVDLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9Dcnlw
dG9LZXlFQy5jcHAKQEAgLTE0OCw3ICsxNDgsNyBAQCBFeGNlcHRpb25PcjxWZWN0b3I8dWludDhf
dD4+IENyeXB0b0tleUVDOjpleHBvcnRSYXcoKSBjb25zdAogRXhjZXB0aW9uT3I8SnNvbldlYktl
eT4gQ3J5cHRvS2V5RUM6OmV4cG9ydEp3aygpIGNvbnN0CiB7CiAgICAgSnNvbldlYktleSByZXN1
bHQ7Ci0gICAgcmVzdWx0Lmt0eSA9ICJFQyI7CisgICAgcmVzdWx0Lmt0eSA9ICJFQyJfczsKICAg
ICBzd2l0Y2ggKG1fY3VydmUpIHsKICAgICBjYXNlIE5hbWVkQ3VydmU6OlAyNTY6CiAgICAgICAg
IHJlc3VsdC5jcnYgPSBQMjU2OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tl
eXMvQ3J5cHRvS2V5SE1BQy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9L
ZXlITUFDLmNwcAppbmRleCA0MzRmMjQwNDU1ZGM4Y2UzNDFlMDA1NDAzYmYwNWNiOTAwMzdkMTQ5
Li4yNTQzZWQ1NDY1N2U3YWUzZjJmNzk5NmM3ODQ0M2RmYjA5YTcyN2EwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlITUFDLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlITUFDLmNwcApAQCAtMTIxLDcgKzEyMSw3IEBA
IFJlZlB0cjxDcnlwdG9LZXlITUFDPiBDcnlwdG9LZXlITUFDOjppbXBvcnRKd2soc2l6ZV90IGxl
bmd0aEJpdHMsIENyeXB0b0FsZ29yaXRoCiBKc29uV2ViS2V5IENyeXB0b0tleUhNQUM6OmV4cG9y
dEp3aygpIGNvbnN0CiB7CiAgICAgSnNvbldlYktleSByZXN1bHQ7Ci0gICAgcmVzdWx0Lmt0eSA9
ICJvY3QiOworICAgIHJlc3VsdC5rdHkgPSAib2N0Il9zOwogICAgIHJlc3VsdC5rID0gYmFzZTY0
VVJMRW5jb2RlVG9TdHJpbmcobV9rZXkpOwogICAgIHJlc3VsdC5rZXlfb3BzID0gdXNhZ2VzKCk7
CiAgICAgcmVzdWx0LmV4dCA9IGV4dHJhY3RhYmxlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlSU0EuY3BwIGIvU291cmNlL1dlYkNvcmUvY3J5cHRv
L2tleXMvQ3J5cHRvS2V5UlNBLmNwcAppbmRleCA2YmJmMTRmMjQ2MGIzZDFmNTA0ODhhZjM5Mjk3
MDlmNzQyMTZlZTI0Li4wNTgxZDY3MDcyY2I5MzY2ZDM3NzU0MjI2OGE0OGZmZGEwNjM5YTc3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlSU0EuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleVJTQS5jcHAKQEAgLTEzMyw3
ICsxMzMsNyBAQCBSZWZQdHI8Q3J5cHRvS2V5UlNBPiBDcnlwdG9LZXlSU0E6OmltcG9ydEp3ayhD
cnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGFsZ29yaXRobQogSnNvbldlYktleSBDcnlwdG9LZXlS
U0E6OmV4cG9ydEp3aygpIGNvbnN0CiB7CiAgICAgSnNvbldlYktleSByZXN1bHQ7Ci0gICAgcmVz
dWx0Lmt0eSA9ICJSU0EiOworICAgIHJlc3VsdC5rdHkgPSAiUlNBIl9zOwogICAgIHJlc3VsdC5r
ZXlfb3BzID0gdXNhZ2VzKCk7CiAgICAgcmVzdWx0LmV4dCA9IGV4dHJhY3RhYmxlKCk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNyY1ZhbHVlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNyY1ZhbHVlLmNwcAppbmRleCAzMDVjMzJlYTgw
Y2NlNTkwYjRiNjFkMDVkOWE1MGMyZjYyZTlkNmU2Li5lYjY4NjYzNTc1NWMzZTExOWQwYjhhZTY4
NWM1YjZlZDMyODA1ODk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZh
Y2VTcmNWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU3JjVmFs
dWUuY3BwCkBAIC01Niw3ICs1Niw3IEBAIGJvb2wgQ1NTRm9udEZhY2VTcmNWYWx1ZTo6aXNTdXBw
b3J0ZWRGb3JtYXQoKSBjb25zdAogICAgIC8vIHdlIHdpbGwgYWxzbyBjaGVjayB0byBzZWUgaWYg
dGhlIFVSTCBlbmRzIHdpdGggLmVvdC4gSWYgc28sIHdlJ2xsIGFzc3VtZSB0aGF0IHdlIHNob3Vs
ZG4ndCBsb2FkIGl0LgogICAgIGlmIChtX2Zvcm1hdC5pc0VtcHR5KCkpIHsKICAgICAgICAgLy8g
Q2hlY2sgZm9yIC5lb3QuCi0gICAgICAgIGlmICghcHJvdG9jb2xJcyhtX3Jlc291cmNlLCAiZGF0
YSIpICYmIG1fcmVzb3VyY2UuZW5kc1dpdGhJZ25vcmluZ0FTQ0lJQ2FzZSgiLmVvdCIpKQorICAg
ICAgICBpZiAoIXByb3RvY29sSXMobV9yZXNvdXJjZSwgImRhdGEiKSAmJiBtX3Jlc291cmNlLmVu
ZHNXaXRoSWdub3JpbmdBU0NJSUNhc2UoIi5lb3QiX3MpKQogICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTR3JpZFRlbXBsYXRlQXJlYXNWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTR3JpZFRlbXBsYXRlQXJlYXNWYWx1ZS5jcHAKaW5kZXggZTBiNzg2NTlhZGJkMDE0ODM5
ZTU3YzA2MjFkYzE2MTllZjgxMzEwOS4uZGZkNzI1MTNiY2RmNTQ2MTA5ZTY5MDJiNWJlOWI5Nzky
ZTZhMjc0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyaWRUZW1wbGF0ZUFy
ZWFzVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmlkVGVtcGxhdGVBcmVh
c1ZhbHVlLmNwcApAQCAtNjMsNyArNjMsNyBAQCBzdGF0aWMgU3RyaW5nIHN0cmluZ0ZvclBvc2l0
aW9uKGNvbnN0IE5hbWVkR3JpZEFyZWFNYXAmIGdyaWRBcmVhTWFwLCBzaXplX3Qgcm93LAogICAg
ICAgICAgICAgcmV0dXJuIGl0LmtleTsKICAgICB9CiAKLSAgICByZXR1cm4gIi4iOworICAgIHJl
dHVybiAiLiJfczsKIH0KIAogU3RyaW5nIENTU0dyaWRUZW1wbGF0ZUFyZWFzVmFsdWU6OmN1c3Rv
bUNTU1RleHQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1p
dGl2ZVZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHAK
aW5kZXggNzg5YzYzNDk3ZjIyMTA2NDliNDRhYTg4MmFlMDFiNjhlYmI4ZGEyOS4uOWZlNjRiNWJl
OTQ1NmE0NDhlY2Y1MDQ5N2E0MTM1Nzk0ZjhiZDliOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
UHJpbWl0aXZlVmFsdWUuY3BwCkBAIC0xMjMxLDY0ICsxMjMxLDY0IEBAIE5FVkVSX0lOTElORSBT
dHJpbmcgQ1NTUHJpbWl0aXZlVmFsdWU6OmZvcm1hdEludGVnZXJWYWx1ZShTdHJpbmdWaWV3IHN1
ZmZpeCkgY29uCiBTdHJpbmcgQ1NTUHJpbWl0aXZlVmFsdWU6OnVuaXRUeXBlU3RyaW5nKENTU1Vu
aXRUeXBlIHVuaXRUeXBlKQogewogICAgIHN3aXRjaCAodW5pdFR5cGUpIHsKLSAgICAgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX1BFUkNFTlRBR0U6IHJldHVybiAiJSI7Ci0gICAgICAgIGNhc2Ug
Q1NTVW5pdFR5cGU6OkNTU19FTVM6IHJldHVybiAiZW0iOwotICAgICAgICBjYXNlIENTU1VuaXRU
eXBlOjpDU1NfRVhTOiByZXR1cm4gImV4IjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NT
X1BYOiByZXR1cm4gInB4IjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0NNOiByZXR1
cm4gImNtIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX01NOiByZXR1cm4gIm1tIjsK
LSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0lOOiByZXR1cm4gImluIjsKLSAgICAgICAg
Y2FzZSBDU1NVbml0VHlwZTo6Q1NTX1BUOiByZXR1cm4gInB0IjsKLSAgICAgICAgY2FzZSBDU1NV
bml0VHlwZTo6Q1NTX1BDOiByZXR1cm4gInBjIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6
Q1NTX0RFRzogcmV0dXJuICJkZWciOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfUkFE
OiByZXR1cm4gInJhZCI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19HUkFEOiByZXR1
cm4gImdyYWQiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTVM6IHJldHVybiAibXMi
OwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfUzogcmV0dXJuICJzIjsKLSAgICAgICAg
Y2FzZSBDU1NVbml0VHlwZTo6Q1NTX0haOiByZXR1cm4gImh6IjsKLSAgICAgICAgY2FzZSBDU1NV
bml0VHlwZTo6Q1NTX0tIWjogcmV0dXJuICJraHoiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfVlc6IHJldHVybiAidnciOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVkg6
IHJldHVybiAidmgiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVk1JTjogcmV0dXJu
ICJ2bWluIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZNQVg6IHJldHVybiAidm1h
eCI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WQjogcmV0dXJuICJ2YiI7Ci0gICAg
ICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WSTogcmV0dXJuICJ2aSI7Ci0gICAgICAgIGNhc2Ug
Q1NTVW5pdFR5cGU6OkNTU19TVlc6IHJldHVybiAic3Z3IjsKLSAgICAgICAgY2FzZSBDU1NVbml0
VHlwZTo6Q1NTX1NWSDogcmV0dXJuICJzdmgiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpD
U1NfU1ZNSU46IHJldHVybiAic3ZtaW4iOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1Nf
U1ZNQVg6IHJldHVybiAic3ZtYXgiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZC
OiByZXR1cm4gInN2YiI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVkk6IHJldHVy
biAic3ZpIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWVzogcmV0dXJuICJsdnci
OwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZIOiByZXR1cm4gImx2aCI7Ci0gICAg
ICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVk1JTjogcmV0dXJuICJsdm1pbiI7Ci0gICAgICAg
IGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVk1BWDogcmV0dXJuICJsdm1heCI7Ci0gICAgICAgIGNh
c2UgQ1NTVW5pdFR5cGU6OkNTU19MVkI6IHJldHVybiAibHZiIjsKLSAgICAgICAgY2FzZSBDU1NV
bml0VHlwZTo6Q1NTX0xWSTogcmV0dXJuICJsdmkiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfRFZXOiByZXR1cm4gImR2dyI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19E
Vkg6IHJldHVybiAiZHZoIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWTUlOOiBy
ZXR1cm4gImR2bWluIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWTUFYOiByZXR1
cm4gImR2bWF4IjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWQjogcmV0dXJuICJk
dmIiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZJOiByZXR1cm4gImR2aSI7Ci0g
ICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EUFBYOiByZXR1cm4gImRwcHgiOwotICAgICAg
ICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfWDogcmV0dXJuICJ4IjsKLSAgICAgICAgY2FzZSBDU1NV
bml0VHlwZTo6Q1NTX0RQSTogcmV0dXJuICJkcGkiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfRFBDTTogcmV0dXJuICJkcGNtIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NT
X0ZSOiByZXR1cm4gImZyIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1E6IHJldHVy
biAicSI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MSFM6IHJldHVybiAibGgiOwot
ICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfUkxIUzogcmV0dXJuICJybGgiOwotICAgICAg
ICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVFVSTjogcmV0dXJuICJ0dXJuIjsKLSAgICAgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX1JFTVM6IHJldHVybiAicmVtIjsKLSAgICAgICAgY2FzZSBDU1NV
bml0VHlwZTo6Q1NTX0NIUzogcmV0dXJuICJjaCI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6
OkNTU19JQzogcmV0dXJuICJpYyI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19DUVc6
IHJldHVybiAiY3F3IjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0NRSDogcmV0dXJu
ICJjcWgiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfQ1FJOiByZXR1cm4gImNxaSI7
Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19DUUI6IHJldHVybiAiY3FiIjsKLSAgICAg
ICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0NRTUFYOiByZXR1cm4gImNxbWF4IjsKLSAgICAgICAg
Y2FzZSBDU1NVbml0VHlwZTo6Q1NTX0NRTUlOOiByZXR1cm4gImNxbWluIjsKKyAgICAgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX1BFUkNFTlRBR0U6IHJldHVybiAiJSJfczsKKyAgICAgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX0VNUzogcmV0dXJuICJlbSJfczsKKyAgICAgICAgY2FzZSBDU1NV
bml0VHlwZTo6Q1NTX0VYUzogcmV0dXJuICJleCJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlw
ZTo6Q1NTX1BYOiByZXR1cm4gInB4Il9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1Nf
Q006IHJldHVybiAiY20iX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19NTTogcmV0
dXJuICJtbSJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0lOOiByZXR1cm4gImlu
Il9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfUFQ6IHJldHVybiAicHQiX3M7Cisg
ICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19QQzogcmV0dXJuICJwYyJfczsKKyAgICAgICAg
Y2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RFRzogcmV0dXJuICJkZWciX3M7CisgICAgICAgIGNhc2Ug
Q1NTVW5pdFR5cGU6OkNTU19SQUQ6IHJldHVybiAicmFkIl9zOworICAgICAgICBjYXNlIENTU1Vu
aXRUeXBlOjpDU1NfR1JBRDogcmV0dXJuICJncmFkIl9zOworICAgICAgICBjYXNlIENTU1VuaXRU
eXBlOjpDU1NfTVM6IHJldHVybiAibXMiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNT
U19TOiByZXR1cm4gInMiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19IWjogcmV0
dXJuICJoeiJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0tIWjogcmV0dXJuICJr
aHoiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WVzogcmV0dXJuICJ2dyJfczsK
KyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZIOiByZXR1cm4gInZoIl9zOworICAgICAg
ICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVk1JTjogcmV0dXJuICJ2bWluIl9zOworICAgICAgICBj
YXNlIENTU1VuaXRUeXBlOjpDU1NfVk1BWDogcmV0dXJuICJ2bWF4Il9zOworICAgICAgICBjYXNl
IENTU1VuaXRUeXBlOjpDU1NfVkI6IHJldHVybiAidmIiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5p
dFR5cGU6OkNTU19WSTogcmV0dXJuICJ2aSJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6
Q1NTX1NWVzogcmV0dXJuICJzdnciX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19T
Vkg6IHJldHVybiAic3ZoIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZNSU46
IHJldHVybiAic3ZtaW4iX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVk1BWDog
cmV0dXJuICJzdm1heCJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWQjogcmV0
dXJuICJzdmIiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVkk6IHJldHVybiAi
c3ZpIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZXOiByZXR1cm4gImx2dyJf
czsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWSDogcmV0dXJuICJsdmgiX3M7Cisg
ICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVk1JTjogcmV0dXJuICJsdm1pbiJfczsKKyAg
ICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWTUFYOiByZXR1cm4gImx2bWF4Il9zOworICAg
ICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZCOiByZXR1cm4gImx2YiJfczsKKyAgICAgICAg
Y2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWSTogcmV0dXJuICJsdmkiX3M7CisgICAgICAgIGNhc2Ug
Q1NTVW5pdFR5cGU6OkNTU19EVlc6IHJldHVybiAiZHZ3Il9zOworICAgICAgICBjYXNlIENTU1Vu
aXRUeXBlOjpDU1NfRFZIOiByZXR1cm4gImR2aCJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlw
ZTo6Q1NTX0RWTUlOOiByZXR1cm4gImR2bWluIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfRFZNQVg6IHJldHVybiAiZHZtYXgiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6
OkNTU19EVkI6IHJldHVybiAiZHZiIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1Nf
RFZJOiByZXR1cm4gImR2aSJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RQUFg6
IHJldHVybiAiZHBweCJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1g6IHJldHVy
biAieCJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RQSTogcmV0dXJuICJkcGki
X3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EUENNOiByZXR1cm4gImRwY20iX3M7
CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19GUjogcmV0dXJuICJmciJfczsKKyAgICAg
ICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1E6IHJldHVybiAicSJfczsKKyAgICAgICAgY2FzZSBD
U1NVbml0VHlwZTo6Q1NTX0xIUzogcmV0dXJuICJsaCJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0
VHlwZTo6Q1NTX1JMSFM6IHJldHVybiAicmxoIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfVFVSTjogcmV0dXJuICJ0dXJuIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpD
U1NfUkVNUzogcmV0dXJuICJyZW0iX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19D
SFM6IHJldHVybiAiY2giX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19JQzogcmV0
dXJuICJpYyJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0NRVzogcmV0dXJuICJj
cXciX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19DUUg6IHJldHVybiAiY3FoIl9z
OworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfQ1FJOiByZXR1cm4gImNxaSJfczsKKyAg
ICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0NRQjogcmV0dXJuICJjcWIiX3M7CisgICAgICAg
IGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19DUU1BWDogcmV0dXJuICJjcW1heCJfczsKKyAgICAgICAg
Y2FzZSBDU1NVbml0VHlwZTo6Q1NTX0NRTUlOOiByZXR1cm4gImNxbWluIl9zOwogCiAgICAgICAg
IGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19VTktOT1dOOgogICAgICAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfTlVNQkVSOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N1YmdyaWRW
YWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3ViZ3JpZFZhbHVlLmNwcAppbmRleCA0
ZjlkNGE2MDQ4YzYxNGM4ZDBmYWY1NDhiZmNjYmFhZTQ4YTBjODY1Li42YTc5ODU5ZGEyN2RhZWFh
YWE3YmNmNWY5OTEyZDNlNzdjNWJkMmJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTU3ViZ3JpZFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3ViZ3JpZFZh
bHVlLmNwcApAQCAtMzYsNyArMzYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBTdHJpbmcgQ1NT
U3ViZ3JpZFZhbHVlOjpjdXN0b21DU1NUZXh0KCkgY29uc3QKIHsKICAgICBpZiAoIWxlbmd0aCgp
KQotICAgICAgICByZXR1cm4gInN1YmdyaWQiOworICAgICAgICByZXR1cm4gInN1YmdyaWQiX3M7
CiAgICAgcmV0dXJuICJzdWJncmlkICIgKyBDU1NWYWx1ZUxpc3Q6OmN1c3RvbUNTU1RleHQoKTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0RPTUNTU05hbWVzcGFjZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NTTmFtZXNwYWNlLmNwcAppbmRleCBmN2ZjZjVlMjdk
ZGM2MGIyZmQ0NWQ1YzM1MWQ0NDdmNmYxZjEwYWNiLi44MDA3ODcyMTNkMzNiMDcyMzlkMTE4MmM3
NDM1OWU0OWM2NWMxODZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NTTmFt
ZXNwYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NTTmFtZXNwYWNlLmNwcApA
QCAtNDMsNyArNDMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBTdHJpbmcgdmFs
dWVXaXRob3V0SW1wb3J0YW50KGNvbnN0IFN0cmluZyYgdmFsdWUpCiB7Ci0gICAgaWYgKCF2YWx1
ZS5lbmRzV2l0aElnbm9yaW5nQVNDSUlDYXNlKCJpbXBvcnRhbnQiKSkKKyAgICBpZiAoIXZhbHVl
LmVuZHNXaXRoSWdub3JpbmdBU0NJSUNhc2UoImltcG9ydGFudCJfcykpCiAgICAgICAgIHJldHVy
biB2YWx1ZTsKIAogICAgIFN0cmluZyBuZXdWYWx1ZSA9IHZhbHVlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL0RPTUNTU1JlZ2lzdGVyQ3VzdG9tUHJvcGVydHkuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL0RPTUNTU1JlZ2lzdGVyQ3VzdG9tUHJvcGVydHkuY3BwCmluZGV4IGMyYzgy
NTBhYjIyZDgzZWRkODIyMDAxMGI4MmY2MjUxZGU3Yjg5ZjcuLjkyYTJjYmM0MGZkMzE2MWUwZjlm
Yzc1YjE4OGEyZDk4ZDNlNzE5MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01D
U1NSZWdpc3RlckN1c3RvbVByb3BlcnR5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9N
Q1NTUmVnaXN0ZXJDdXN0b21Qcm9wZXJ0eS5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogRXhjZXB0aW9uT3I8dm9pZD4gRE9NQ1NTUmVnaXN0ZXJDdXN0b21Qcm9wZXJ0
eTo6cmVnaXN0ZXJQcm9wZXJ0eShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IERPTUNTU0N1c3Rv
bVByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcikKIHsKICAgICBpZiAoIWlzQ3VzdG9tUHJv
cGVydHlOYW1lKGRlc2NyaXB0b3IubmFtZSkpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBT
eW50YXhFcnJvciwgIlRoZSBuYW1lIG9mIHRoaXMgcHJvcGVydHkgaXMgbm90IGEgY3VzdG9tIHBy
b3BlcnR5IG5hbWUuIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgU3ludGF4RXJyb3Is
ICJUaGUgbmFtZSBvZiB0aGlzIHByb3BlcnR5IGlzIG5vdCBhIGN1c3RvbSBwcm9wZXJ0eSBuYW1l
LiJfcyB9OwogCiAgICAgUmVmUHRyPENTU0N1c3RvbVByb3BlcnR5VmFsdWU+IGluaXRpYWxWYWx1
ZTsKICAgICBpZiAoIWRlc2NyaXB0b3IuaW5pdGlhbFZhbHVlLmlzRW1wdHkoKSkgewpAQCAtNTks
NyArNTksNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBET01DU1NSZWdpc3RlckN1c3RvbVByb3BlcnR5
OjpyZWdpc3RlclByb3BlcnR5KERvY3VtZW50JiBkb2N1bQogICAgICAgICBDU1NQcm9wZXJ0eVBh
cnNlcjo6Y29sbGVjdFBhcnNlZEN1c3RvbVByb3BlcnR5VmFsdWVEZXBlbmRlbmNpZXMoZGVzY3Jp
cHRvci5zeW50YXgsIGZhbHNlLCBkZXBlbmRlbmNpZXMsIHRva2VuaXplci50b2tlblJhbmdlKCks
IHN0cmljdENTU1BhcnNlckNvbnRleHQoKSk7CiAKICAgICAgICAgaWYgKCFkZXBlbmRlbmNpZXMu
aXNFbXB0eSgpKQotICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFN5bnRheEVycm9yLCAi
VGhlIGdpdmVuIGluaXRpYWwgdmFsdWUgbXVzdCBiZSBjb21wdXRhdGlvbmFsbHkgaW5kZXBlbmRl
bnQuIiB9OworICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFN5bnRheEVycm9yLCAiVGhl
IGdpdmVuIGluaXRpYWwgdmFsdWUgbXVzdCBiZSBjb21wdXRhdGlvbmFsbHkgaW5kZXBlbmRlbnQu
Il9zIH07CiAKIAogICAgICAgICBTdHlsZTo6TWF0Y2hSZXN1bHQgbWF0Y2hSZXN1bHQ7CkBAIC03
MCwxOCArNzAsMTggQEAgRXhjZXB0aW9uT3I8dm9pZD4gRE9NQ1NTUmVnaXN0ZXJDdXN0b21Qcm9w
ZXJ0eTo6cmVnaXN0ZXJQcm9wZXJ0eShEb2N1bWVudCYgZG9jdW0KICAgICAgICAgaW5pdGlhbFZh
bHVlID0gQ1NTUHJvcGVydHlQYXJzZXI6OnBhcnNlVHlwZWRDdXN0b21Qcm9wZXJ0eVZhbHVlKGRl
c2NyaXB0b3IubmFtZSwgZGVzY3JpcHRvci5zeW50YXgsIHRva2VuaXplci50b2tlblJhbmdlKCks
IGR1bW15QnVpbGRlci5zdGF0ZSgpLCBzdHJpY3RDU1NQYXJzZXJDb250ZXh0KCkpOwogCiAgICAg
ICAgIGlmICghaW5pdGlhbFZhbHVlIHx8ICFpbml0aWFsVmFsdWUtPmlzUmVzb2x2ZWQoKSkKLSAg
ICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBTeW50YXhFcnJvciwgIlRoZSBnaXZlbiBpbml0
aWFsIHZhbHVlIGRvZXMgbm90IHBhcnNlIGZvciB0aGUgZ2l2ZW4gc3ludGF4LiIgfTsKKyAgICAg
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBTeW50YXhFcnJvciwgIlRoZSBnaXZlbiBpbml0aWFs
IHZhbHVlIGRvZXMgbm90IHBhcnNlIGZvciB0aGUgZ2l2ZW4gc3ludGF4LiJfcyB9OwogCiAgICAg
ICAgIGluaXRpYWxWYWx1ZS0+Y29sbGVjdERpcmVjdENvbXB1dGF0aW9uYWxEZXBlbmRlbmNpZXMo
ZGVwZW5kZW5jaWVzKTsKICAgICAgICAgaW5pdGlhbFZhbHVlLT5jb2xsZWN0RGlyZWN0Um9vdENv
bXB1dGF0aW9uYWxEZXBlbmRlbmNpZXMoZGVwZW5kZW5jaWVzKTsKIAogICAgICAgICBpZiAoIWRl
cGVuZGVuY2llcy5pc0VtcHR5KCkpCi0gICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgU3lu
dGF4RXJyb3IsICJUaGUgZ2l2ZW4gaW5pdGlhbCB2YWx1ZSBtdXN0IGJlIGNvbXB1dGF0aW9uYWxs
eSBpbmRlcGVuZGVudC4iIH07CisgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgU3ludGF4
RXJyb3IsICJUaGUgZ2l2ZW4gaW5pdGlhbCB2YWx1ZSBtdXN0IGJlIGNvbXB1dGF0aW9uYWxseSBp
bmRlcGVuZGVudC4iX3MgfTsKICAgICB9CiAKICAgICBDU1NSZWdpc3RlcmVkQ3VzdG9tUHJvcGVy
dHkgcHJvcGVydHkgeyBkZXNjcmlwdG9yLm5hbWUsIGRlc2NyaXB0b3Iuc3ludGF4LCBkZXNjcmlw
dG9yLmluaGVyaXRzLCBXVEZNb3ZlKGluaXRpYWxWYWx1ZSkgfTsKICAgICBpZiAoIWRvY3VtZW50
LnJlZ2lzdGVyQ1NTUHJvcGVydHkoV1RGTW92ZShwcm9wZXJ0eSkpKQotICAgICAgICByZXR1cm4g
RXhjZXB0aW9uIHsgSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yLCAiVGhpcyBwcm9wZXJ0eSBoYXMg
YWxyZWFkeSBiZWVuIHJlZ2lzdGVyZWQuIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
SW52YWxpZE1vZGlmaWNhdGlvbkVycm9yLCAiVGhpcyBwcm9wZXJ0eSBoYXMgYWxyZWFkeSBiZWVu
IHJlZ2lzdGVyZWQuIl9zIH07CiAKICAgICBkb2N1bWVudC5zdHlsZVNjb3BlKCkuZGlkQ2hhbmdl
U3R5bGVTaGVldEVudmlyb25tZW50KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9EZXByZWNhdGVkQ1NTT01WYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRl
ZENTU09NVmFsdWUuY3BwCmluZGV4IDIzMjUwODQ1YWJhNmJjNTMyMmIzYjM3NjlmYjkzYzBlNjQw
YzdkODIuLjUwNjdkMGU2YzYwMWJlMmExMzEzZjA4OWE2NDBhYzFhNjI2YjliMzUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01WYWx1ZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVZhbHVlLmNwcApAQCAtNzYsNyArNzYsNyBA
QCBTdHJpbmcgRGVwcmVjYXRlZENTU09NVmFsdWU6OmNzc1RleHQoKSBjb25zdAogICAgICAgICBy
ZXR1cm4gZG93bmNhc3Q8RGVwcmVjYXRlZENTU09NVmFsdWVMaXN0PigqdGhpcykuY3NzVGV4dCgp
OwogICAgIH0KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gIiI7CisgICAg
cmV0dXJuIGVtcHR5U3RyaW5nKCk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9Gb250RmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9udEZhY2UuY3BwCmluZGV4
IGVmZmQ2MDdjMzQ2ZjliY2ZiYzljMjg4OWJmODMxNjk0ZGEzNDAzMDUuLjRkNTExYjVlNjg1NDEz
MDVkNDBjMWMzM2I3OTA5YTY1MDY1NTZmNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9Gb250RmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0ZvbnRGYWNlLmNwcApAQCAt
Mzc1LDcgKzM3NSw3IEBAIFN0cmluZyBGb250RmFjZTo6dW5pY29kZVJhbmdlKCkgY29uc3QKICAg
ICBtX2JhY2tpbmctPnVwZGF0ZVN0eWxlSWZOZWVkZWQoKTsKICAgICBjb25zdCBhdXRvJiByYW5n
ZXNXcmFwcGVkID0gbV9iYWNraW5nLT5yYW5nZXMoKTsKICAgICBpZiAoIXJhbmdlc1dyYXBwZWQp
Ci0gICAgICAgIHJldHVybiAiVSswLTEwRkZGRiI7CisgICAgICAgIHJldHVybiAiVSswLTEwRkZG
RiJfczsKICAgICBhdXRvIHJhbmdlcyA9IHJhbmdlc1dyYXBwZWQudmFsdWUoKTsKICAgICBpZiAo
IXJhbmdlcy5zaXplKCkpCiAgICAgICAgIHJldHVybiAiVSswLTEwRkZGRiJfczsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXhwcmVzc2lvbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV4cHJlc3Npb24uY3BwCmluZGV4IDA4YjcwNzA2NmJhNmRm
YjIxMjdmY2RhOTA4ODkzNzkzNTEwODE0ZTguLjFiZGRiNTUzZThmYmEyYzIyNTNlNGQxNDU2Zjc4
NjkzZjM2NjkzMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXhw
cmVzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFeHByZXNzaW9u
LmNwcApAQCAtMjc0LDcgKzI3NCw3IEBAIE1lZGlhUXVlcnlFeHByZXNzaW9uOjpNZWRpYVF1ZXJ5
RXhwcmVzc2lvbihjb25zdCBTdHJpbmcmIGZlYXR1cmUsIENTU1BhcnNlclRva2VuCiBTdHJpbmcg
TWVkaWFRdWVyeUV4cHJlc3Npb246OnNlcmlhbGl6ZSgpIGNvbnN0CiB7CiAgICAgaWYgKG1fc2Vy
aWFsaXphdGlvbkNhY2hlLmlzTnVsbCgpKQotICAgICAgICBtX3NlcmlhbGl6YXRpb25DYWNoZSA9
IG1ha2VTdHJpbmcoJygnLCBtX21lZGlhRmVhdHVyZS5jb252ZXJ0VG9BU0NJSUxvd2VyY2FzZSgp
LCBtX3ZhbHVlID8gIjogIiA6ICIiLCBtX3ZhbHVlID8gbV92YWx1ZS0+Y3NzVGV4dCgpIDogIiIs
ICcpJyk7CisgICAgICAgIG1fc2VyaWFsaXphdGlvbkNhY2hlID0gbWFrZVN0cmluZygnKCcsIG1f
bWVkaWFGZWF0dXJlLmNvbnZlcnRUb0FTQ0lJTG93ZXJjYXNlKCksIG1fdmFsdWUgPyAiOiAiIDog
IiIsIG1fdmFsdWUgPyBtX3ZhbHVlLT5jc3NUZXh0KCkgOiBlbXB0eVN0cmluZygpLCAnKScpOwog
ICAgIHJldHVybiBtX3NlcmlhbGl6YXRpb25DYWNoZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5
bGVQcm9wZXJ0aWVzLmNwcAppbmRleCBmMDQxM2MxN2ZmZmEyODM4MTFmZTI1MTdmZGZkNjFiY2Rj
ZjhiMjU5Li5hOTIzYzdhNGY5NGZjZjMyYjA3ZjgxMTNhMmNiZWEyNGI5ZGY4OTA0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcApAQCAtNzY4LDcgKzc2OCw3IEBAIFN0cmlu
ZyBTdHlsZVByb3BlcnRpZXM6OmdldExheWVyZWRTaG9ydGhhbmRWYWx1ZShjb25zdCBTdHlsZVBy
b3BlcnR5U2hvcnRoYW5kJiBzCiAKICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gbWFza0lk
ID0gZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KCp2YWx1ZSkudmFsdWVJRCgpOwogICAgICAg
ICAgICAgICAgICAgICAgICAgYXV0byBvcmlnaW5JZCA9IGRvd25jYXN0PENTU1ByaW1pdGl2ZVZh
bHVlPigqb3JpZ2luVmFsdWUpLnZhbHVlSUQoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBtYXNrSWQgPT0gb3JpZ2luSWQgJiYgKCFpc0NTU1dpZGVWYWx1ZUtleXdvcmQoZ2V0VmFs
dWVOYW1lKG1hc2tJZCkpIHx8IHZhbHVlLT5pc0ltcGxpY2l0SW5pdGlhbFZhbHVlKCkpOworICAg
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1hc2tJZCA9PSBvcmlnaW5JZCAmJiAoIWlzQ1NT
V2lkZVZhbHVlS2V5d29yZChTdHJpbmdWaWV3IHsgZ2V0VmFsdWVOYW1lKG1hc2tJZCkgfSkgfHwg
dmFsdWUtPmlzSW1wbGljaXRJbml0aWFsVmFsdWUoKSk7CiAgICAgICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgICAgICAgaWYgKHByb3BlcnR5ID09IENTU1Byb3BlcnR5TWFza09yaWdp
bikgewogICAgICAgICAgICAgICAgICAgICAgICAgLy8gV2UgY2FuIHNraXAgc2VyaWFsaXppbmcg
bWFzay1vcmlnaW4gaWYgaXQncyB0aGUgaW5pdGlhbCB2YWx1ZSwgYnV0IG9ubHkgaWYgd2UncmUg
YWxzbyBnb2luZyB0byBza2lwIHNlcmlhbGl6aW5nCkBAIC0xMTU0LDcgKzExNTQsNyBAQCBib29s
IE11dGFibGVTdHlsZVByb3BlcnRpZXM6OnNldEN1c3RvbVByb3BlcnR5KGNvbnN0IERvY3VtZW50
KiBkb2N1bWVudCwgY29uc3QgUwogCiAgICAgcGFyc2VyQ29udGV4dC5tb2RlID0gY3NzUGFyc2Vy
TW9kZSgpOwogCi0gICAgU3RyaW5nIHN5bnRheCA9ICIqIjsKKyAgICBTdHJpbmcgc3ludGF4ID0g
IioiX3M7CiAgICAgYXV0byogcmVnaXN0ZXJlZCA9IGRvY3VtZW50ID8gZG9jdW1lbnQtPmdldENT
U1JlZ2lzdGVyZWRDdXN0b21Qcm9wZXJ0eVNldCgpLmdldChwcm9wZXJ0eU5hbWUpIDogbnVsbHB0
cjsKIAogICAgIGlmIChyZWdpc3RlcmVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L21ha2V2YWx1ZXMucGwgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvbWFrZXZhbHVlcy5wbAppbmRleCAw
ZjgyMTlkNGNjYjUxZWNhNTI1ZDgyOWE3NjA2YjI3YjBmYTI3MzAzLi5hZTliMzI3ODMyNzI3Mzcz
YzRjZTdmMDIzMzA1MjEzNmIyZDk4M2Q1IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
bWFrZXZhbHVlcy5wbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvbWFrZXZhbHVlcy5wbApAQCAt
MTExLDE2ICsxMTEsMTYgQEAgZm9yIG15ICRpICgwIC4uICQjbmFtZXMpIHsKIAogcHJpbnQgR1BF
UkYgPDwgIkVPRiI7CiAlJQotc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IHZhbHVlTGlzdFtdID0g
ewotICAgICIiLAorc3RhdGljIGNvbnN0ZXhwciBBU0NJSUxpdGVyYWwgdmFsdWVMaXN0W10gPSB7
CisgICAgIiJfcywKIEVPRgogCiBmb3JlYWNoIG15ICRuYW1lIChAbmFtZXMpIHsKLSAgcHJpbnQg
R1BFUkYgIiAgICBcIiIgLiAkbmFtZSAuICJcIixcbiI7CisgIHByaW50IEdQRVJGICIgICAgXCIi
IC4gJG5hbWUgLiAiXCJfcyxcbiI7CiB9CiAKIHByaW50IEdQRVJGIDw8ICJFT0YiOwotICAgIDAK
KyAgICBBU0NJSUxpdGVyYWw6Om51bGwoKQogfTsKIAogY29uc3QgVmFsdWUqIGZpbmRWYWx1ZShj
b25zdCBjaGFyKiBzdHIsIHVuc2lnbmVkIGludCBsZW4pCkBAIC0xMjgsMTAgKzEyOCwxMCBAQCBj
b25zdCBWYWx1ZSogZmluZFZhbHVlKGNvbnN0IGNoYXIqIHN0ciwgdW5zaWduZWQgaW50IGxlbikK
ICAgICByZXR1cm4gQ1NTVmFsdWVLZXl3b3Jkc0hhc2g6OmZpbmRWYWx1ZUltcGwoc3RyLCBsZW4p
OwogfQogCi1jb25zdCBjaGFyKiBnZXRWYWx1ZU5hbWUodW5zaWduZWQgc2hvcnQgaWQpCitBU0NJ
SUxpdGVyYWwgZ2V0VmFsdWVOYW1lKHVuc2lnbmVkIHNob3J0IGlkKQogewogICAgIGlmIChpZCA+
IGxhc3RDU1NWYWx1ZUtleXdvcmQpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4g
QVNDSUlMaXRlcmFsOjpudWxsKCk7CiAgICAgcmV0dXJuIHZhbHVlTGlzdFtpZF07CiB9CiAKQEAg
LTIwMyw3ICsyMDMsNyBAQCBwcmludCBIRUFERVIgImNvbnN0IGludCBsYXN0Q1NTVmFsdWVLZXl3
b3JkID0gJGxhc3Q7XG4iOwogcHJpbnQgSEVBREVSICJjb25zdCBzaXplX3QgbWF4Q1NTVmFsdWVL
ZXl3b3JkTGVuZ3RoID0gIiAuICRtYXhMZW4gLiAiO1xuIjsKIHByaW50IEhFQURFUiA8PCAiRU9G
IjsKIAotY29uc3QgY2hhciogZ2V0VmFsdWVOYW1lKHVuc2lnbmVkIHNob3J0IGlkKTsKK0FTQ0lJ
TGl0ZXJhbCBnZXRWYWx1ZU5hbWUodW5zaWduZWQgc2hvcnQgaWQpOwogY29uc3QgQXRvbVN0cmlu
ZyYgZ2V0VmFsdWVOYW1lQXRvbVN0cmluZyhDU1NWYWx1ZUlEIGlkKTsKIFN0cmluZyBnZXRWYWx1
ZU5hbWVTdHJpbmcoQ1NTVmFsdWVJRCBpZCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9wYXJzZXIvTWVkaWFRdWVyeVBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFy
c2VyL01lZGlhUXVlcnlQYXJzZXIuY3BwCmluZGV4IGNiNWEwOGFhM2ViN2Q2YjhjODI1N2RjODQ4
ZGNlYzExMzQxOWM5Y2QuLjYyYzAxZTVhMzI3NzQyMjQzNjYyZmViYzIxZWRlMDgwZDkyMzY1OWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvTWVkaWFRdWVyeVBhcnNlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9NZWRpYVF1ZXJ5UGFyc2VyLmNwcApA
QCAtMjQ3LDcgKzI0Nyw3IEBAIHZvaWQgTWVkaWFRdWVyeVBhcnNlcjo6c2tpcFVudGlsQ29tbWEo
Q1NTUGFyc2VyVG9rZW5UeXBlIHR5cGUsIGNvbnN0IENTU1BhcnNlclRvCiAgICAgaWYgKCh0eXBl
ID09IENvbW1hVG9rZW4gJiYgIW1fYmxvY2tXYXRjaGVyLmJsb2NrTGV2ZWwoKSkgfHwgdHlwZSA9
PSBFT0ZUb2tlbikgewogICAgICAgICBtX3N0YXRlID0gUmVhZFJlc3RyaWN0b3I7CiAgICAgICAg
IG1fbWVkaWFRdWVyeURhdGEuY2xlYXIoKTsKLSAgICAgICAgTWVkaWFRdWVyeSBxdWVyeSA9IE1l
ZGlhUXVlcnkoTWVkaWFRdWVyeTo6Tm90LCAiYWxsIiwgVmVjdG9yPE1lZGlhUXVlcnlFeHByZXNz
aW9uPigpKTsKKyAgICAgICAgTWVkaWFRdWVyeSBxdWVyeSA9IE1lZGlhUXVlcnkoTWVkaWFRdWVy
eTo6Tm90LCAiYWxsIl9zLCBWZWN0b3I8TWVkaWFRdWVyeUV4cHJlc3Npb24+KCkpOwogICAgICAg
ICBtX3F1ZXJ5U2V0LT5hZGRNZWRpYVF1ZXJ5KFdURk1vdmUocXVlcnkpKTsKICAgICB9CiB9CkBA
IC0zMDksNyArMzA5LDcgQEAgUmVmUHRyPE1lZGlhUXVlcnlTZXQ+IE1lZGlhUXVlcnlQYXJzZXI6
OnBhcnNlSW50ZXJuYWwoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UKICAgICAgICAgcHJvY2Vz
c1Rva2VuKENTU1BhcnNlclRva2VuKEVPRlRva2VuKSwgcmFuZ2UpOwogCiAgICAgaWYgKG1fc3Rh
dGUgIT0gUmVhZEFuZCAmJiBtX3N0YXRlICE9IFJlYWRSZXN0cmljdG9yICYmIG1fc3RhdGUgIT0g
RG9uZSAmJiBtX3N0YXRlICE9IFJlYWRNZWRpYU5vdCkgewotICAgICAgICBNZWRpYVF1ZXJ5IHF1
ZXJ5ID0gTWVkaWFRdWVyeShNZWRpYVF1ZXJ5OjpOb3QsICJhbGwiLCBWZWN0b3I8TWVkaWFRdWVy
eUV4cHJlc3Npb24+KCkpOworICAgICAgICBNZWRpYVF1ZXJ5IHF1ZXJ5ID0gTWVkaWFRdWVyeShN
ZWRpYVF1ZXJ5OjpOb3QsICJhbGwiX3MsIFZlY3RvcjxNZWRpYVF1ZXJ5RXhwcmVzc2lvbj4oKSk7
CiAgICAgICAgIG1fcXVlcnlTZXQtPmFkZE1lZGlhUXVlcnkoV1RGTW92ZShxdWVyeSkpOwogICAg
IH0gZWxzZSBpZiAobV9tZWRpYVF1ZXJ5RGF0YS5jdXJyZW50TWVkaWFRdWVyeUNoYW5nZWQoKSkK
ICAgICAgICAgY29tbWl0TWVkaWFRdWVyeSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL3BhcnNlci9TaXplc0F0dHJpYnV0ZVBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
cGFyc2VyL1NpemVzQXR0cmlidXRlUGFyc2VyLmNwcAppbmRleCBkNmU0OGEyM2ZmOTdlMGE4Yjcz
NmQ4MDM3OTc0MjQ3NTA1YzM3ZmY4Li40ZGE0MDE2ZTYwNjU3ZmIzNzQ1MmVlMWI5MWE2MWQ1NmUw
ODg0ODg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL1NpemVzQXR0cmli
dXRlUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL1NpemVzQXR0cmli
dXRlUGFyc2VyLmNwcApAQCAtMTEyLDcgKzExMiw3IEBAIGJvb2wgU2l6ZXNBdHRyaWJ1dGVQYXJz
ZXI6Om1lZGlhQ29uZGl0aW9uTWF0Y2hlcyhjb25zdCBNZWRpYVF1ZXJ5U2V0JiBtZWRpYUNvbmRp
CiAgICAgaWYgKCFyZW5kZXJlcikKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGF1dG8mIHN0
eWxlID0gcmVuZGVyZXItPnN0eWxlKCk7Ci0gICAgcmV0dXJuIE1lZGlhUXVlcnlFdmFsdWF0b3Ig
eyAic2NyZWVuIiwgbV9kb2N1bWVudCwgJnN0eWxlIH0uZXZhbHVhdGUobWVkaWFDb25kaXRpb24s
IG1fbWVkaWFRdWVyeUR5bmFtaWNSZXN1bHRzKTsKKyAgICByZXR1cm4gTWVkaWFRdWVyeUV2YWx1
YXRvciB7ICJzY3JlZW4iX3MsIG1fZG9jdW1lbnQsICZzdHlsZSB9LmV2YWx1YXRlKG1lZGlhQ29u
ZGl0aW9uLCBtX21lZGlhUXVlcnlEeW5hbWljUmVzdWx0cyk7CiB9CiAKIGJvb2wgU2l6ZXNBdHRy
aWJ1dGVQYXJzZXI6OnBhcnNlKENTU1BhcnNlclRva2VuUmFuZ2UgcmFuZ2UpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NOdW1lcmljRmFjdG9yeS5oIGIvU291cmNl
L1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTTnVtZXJpY0ZhY3RvcnkuaAppbmRleCA4MjM1MGI5OWQ4
NzRiMGZhOTA2NWY2NGRkZDU5OTNkZDZkODMwYjM5Li4zNTM2MmIyMTZkMDJiYjcyM2I3ODZhMmM3
MjEzM2QxNTYzYmIyMGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9D
U1NOdW1lcmljRmFjdG9yeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU051
bWVyaWNGYWN0b3J5LmgKQEAgLTQzLDY0ICs0Myw2NCBAQCBjbGFzcyBDU1NOdW1lcmljRmFjdG9y
eSBmaW5hbCA6IHB1YmxpYyBTdXBwbGVtZW50PERPTUNTU05hbWVzcGFjZT4gewogcHVibGljOgog
ICAgIGV4cGxpY2l0IENTU051bWVyaWNGYWN0b3J5KERPTUNTU05hbWVzcGFjZSYpIHsgfQogCi0g
ICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IG51bWJlcihkb3VibGUgdmFsdWUpIHsgcmV0dXJu
IENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAibnVtYmVyIik7IH0KLSAgICBzdGF0aWMgUmVm
PENTU1VuaXRWYWx1ZT4gcGVyY2VudChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1
ZTo6Y3JlYXRlKHZhbHVlLCAicGVyY2VudCIpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFs
dWU+IG51bWJlcihkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZh
bHVlLCAibnVtYmVyIl9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBwZXJjZW50
KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJwZXJj
ZW50Il9zKTsgfQogCiAKICAgICAvLyA8bGVuZ3RoPgotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZh
bHVlPiBlbShkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVl
LCAiZW0iKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBleChkb3VibGUgdmFsdWUp
IHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiZXgiKTsgfQotICAgIHN0YXRp
YyBSZWY8Q1NTVW5pdFZhbHVlPiBjaChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1
ZTo6Y3JlYXRlKHZhbHVlLCAiY2giKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBp
Yyhkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiaWMi
KTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiByZW0oZG91YmxlIHZhbHVlKSB7IHJl
dHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInJlbSIpOyB9Ci0gICAgc3RhdGljIFJl
ZjxDU1NVbml0VmFsdWU+IGxoKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpj
cmVhdGUodmFsdWUsICJsaCIpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHJsaChk
b3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAicmxoIik7
IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gdncoZG91YmxlIHZhbHVlKSB7IHJldHVy
biBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInZ3Iik7IH0KLSAgICBzdGF0aWMgUmVmPENT
U1VuaXRWYWx1ZT4gdmgoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0
ZSh2YWx1ZSwgInZoIik7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gdmkoZG91Ymxl
IHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInZpIik7IH0KLSAg
ICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gdmIoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NV
bml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInZiIik7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRW
YWx1ZT4gdm1pbihkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZh
bHVlLCAidm1pbiIpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHZtYXgoZG91Ymxl
IHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInZtYXgiKTsgfQot
ICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBjbShkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENT
U1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiY20iKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5p
dFZhbHVlPiBtbShkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZh
bHVlLCAibW0iKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBxKGRvdWJsZSB2YWx1
ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJxIik7IH0KLSAgICBzdGF0
aWMgUmVmPENTU1VuaXRWYWx1ZT4gaW4oZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFs
dWU6OmNyZWF0ZSh2YWx1ZSwgImluIik7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4g
cHQoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInB0
Iik7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gcGMoZG91YmxlIHZhbHVlKSB7IHJl
dHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInBjIik7IH0KLSAgICBzdGF0aWMgUmVm
PENTU1VuaXRWYWx1ZT4gcHgoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNy
ZWF0ZSh2YWx1ZSwgInB4Iik7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gY3F3KGRv
dWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJjcXciKTsg
fQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBjcWgoZG91YmxlIHZhbHVlKSB7IHJldHVy
biBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImNxaCIpOyB9Ci0gICAgc3RhdGljIFJlZjxD
U1NVbml0VmFsdWU+IGNxaShkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3Jl
YXRlKHZhbHVlLCAiY3FpIik7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gY3FiKGRv
dWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJjcWIiKTsg
fQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBjcW1pbihkb3VibGUgdmFsdWUpIHsgcmV0
dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiY3FtaW4iKTsgfQotICAgIHN0YXRpYyBS
ZWY8Q1NTVW5pdFZhbHVlPiBjcW1heChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1
ZTo6Y3JlYXRlKHZhbHVlLCAiY3FtYXgiKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVl
PiBlbShkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAi
ZW0iX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGV4KGRvdWJsZSB2YWx1ZSkg
eyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJleCJfcyk7IH0KKyAgICBzdGF0
aWMgUmVmPENTU1VuaXRWYWx1ZT4gY2goZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFs
dWU6OmNyZWF0ZSh2YWx1ZSwgImNoIl9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVl
PiBpYyhkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAi
aWMiX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHJlbShkb3VibGUgdmFsdWUp
IHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAicmVtIl9zKTsgfQorICAgIHN0
YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBsaChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRW
YWx1ZTo6Y3JlYXRlKHZhbHVlLCAibGgiX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFs
dWU+IHJsaChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVl
LCAicmxoIl9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiB2dyhkb3VibGUgdmFs
dWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAidnciX3MpOyB9CisgICAg
c3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHZoKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5p
dFZhbHVlOjpjcmVhdGUodmFsdWUsICJ2aCJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRW
YWx1ZT4gdmkoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1
ZSwgInZpIl9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiB2Yihkb3VibGUgdmFs
dWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAidmIiX3MpOyB9CisgICAg
c3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHZtaW4oZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NV
bml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInZtaW4iX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NV
bml0VmFsdWU+IHZtYXgoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0
ZSh2YWx1ZSwgInZtYXgiX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGNtKGRv
dWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJjbSJfcyk7
IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gbW0oZG91YmxlIHZhbHVlKSB7IHJldHVy
biBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgIm1tIl9zKTsgfQorICAgIHN0YXRpYyBSZWY8
Q1NTVW5pdFZhbHVlPiBxKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVh
dGUodmFsdWUsICJxIl9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBpbihkb3Vi
bGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiaW4iX3MpOyB9
CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHB0KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4g
Q1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJwdCJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENT
U1VuaXRWYWx1ZT4gcGMoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0
ZSh2YWx1ZSwgInBjIl9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBweChkb3Vi
bGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAicHgiX3MpOyB9
CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGNxdyhkb3VibGUgdmFsdWUpIHsgcmV0dXJu
IENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiY3F3Il9zKTsgfQorICAgIHN0YXRpYyBSZWY8
Q1NTVW5pdFZhbHVlPiBjcWgoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNy
ZWF0ZSh2YWx1ZSwgImNxaCJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gY3Fp
KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJjcWki
X3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGNxYihkb3VibGUgdmFsdWUpIHsg
cmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiY3FiIl9zKTsgfQorICAgIHN0YXRp
YyBSZWY8Q1NTVW5pdFZhbHVlPiBjcW1pbihkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRW
YWx1ZTo6Y3JlYXRlKHZhbHVlLCAiY3FtaW4iX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0
VmFsdWU+IGNxbWF4KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUo
dmFsdWUsICJjcW1heCJfcyk7IH0KIAogCiAgICAgLy8gPGFuZ2xlPgotICAgIHN0YXRpYyBSZWY8
Q1NTVW5pdFZhbHVlPiBkZWcoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNy
ZWF0ZSh2YWx1ZSwgImRlZyIpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGdyYWQo
ZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImdyYWQi
KTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiByYWQoZG91YmxlIHZhbHVlKSB7IHJl
dHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInJhZCIpOyB9Ci0gICAgc3RhdGljIFJl
ZjxDU1NVbml0VmFsdWU+IHR1cm4oZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6
OmNyZWF0ZSh2YWx1ZSwgInR1cm4iKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBk
ZWcoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImRl
ZyJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gZ3JhZChkb3VibGUgdmFsdWUp
IHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiZ3JhZCJfcyk7IH0KKyAgICBz
dGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gcmFkKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5p
dFZhbHVlOjpjcmVhdGUodmFsdWUsICJyYWQiX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0
VmFsdWU+IHR1cm4oZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2
YWx1ZSwgInR1cm4iX3MpOyB9CiAKIAogICAgIC8vIDx0aW1lPgotICAgIHN0YXRpYyBSZWY8Q1NT
VW5pdFZhbHVlPiBzKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUo
dmFsdWUsICJzIik7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gbXMoZG91YmxlIHZh
bHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgIm1zIik7IH0KKyAgICBz
dGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gcyhkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRW
YWx1ZTo6Y3JlYXRlKHZhbHVlLCAicyJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1
ZT4gbXMoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwg
Im1zIl9zKTsgfQogCiAKICAgICAvLyA8ZnJlcXVlbmN5PgotICAgIHN0YXRpYyBSZWY8Q1NTVW5p
dFZhbHVlPiBoeihkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZh
bHVlLCAiaHoiKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBrSHooZG91YmxlIHZh
bHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImtoeiIpOyB9CisgICAg
c3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGh6KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5p
dFZhbHVlOjpjcmVhdGUodmFsdWUsICJoeiJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRW
YWx1ZT4ga0h6KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFs
dWUsICJraHoiX3MpOyB9CiAKIAogICAgIC8vIDxyZXNvbHV0aW9uPgotICAgIHN0YXRpYyBSZWY8
Q1NTVW5pdFZhbHVlPiBkcGkoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNy
ZWF0ZSh2YWx1ZSwgImRwaSIpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGRwY20o
ZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImRwY20i
KTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBkcHB4KGRvdWJsZSB2YWx1ZSkgeyBy
ZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJkcHB4Iik7IH0KKyAgICBzdGF0aWMg
UmVmPENTU1VuaXRWYWx1ZT4gZHBpKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVl
OjpjcmVhdGUodmFsdWUsICJkcGkiX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+
IGRwY20oZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwg
ImRwY20iX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGRwcHgoZG91YmxlIHZh
bHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImRwcHgiX3MpOyB9CiAK
IAogICAgIC8vIDxmbGV4PgotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBmcihkb3VibGUg
dmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiZnIiKTsgfQorICAg
IHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBmcihkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1Vu
aXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiZnIiX3MpOyB9CiAKIAogcHJpdmF0ZToKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU051bWVyaWNWYWx1ZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NOdW1lcmljVmFsdWUuY3BwCmluZGV4IGNlZTE3Yzg3
MDhmOGNiNjM4YWUxMTNhMzRlNzEyYzU0MTIzMTBjYWYuLmVkN2JmOTgzOGIyODM2ZjAwZmRkNWE5
NWE0OWI3YjBjMDM2NjZlZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9t
L0NTU051bWVyaWNWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NT
TnVtZXJpY1ZhbHVlLmNwcApAQCAtMTU3LDcgKzE1Nyw3IEBAIFJlZjxDU1NOdW1lcmljVmFsdWU+
IENTU051bWVyaWNWYWx1ZTo6bXVsdGlwbHlJbnRlcm5hbChWZWN0b3I8UmVmPENTU051bWVyaWNW
YWx1CiAgICAgICAgICAgICBkb3VibGUgcHJvZHVjdCA9IDE7CiAgICAgICAgICAgICBmb3IgKGNv
bnN0IFJlZjxDU1NOdW1lcmljVmFsdWU+JiB2YWx1ZSA6IHZhbHVlcykKICAgICAgICAgICAgICAg
ICBwcm9kdWN0ICo9IGRvd25jYXN0PENTU1VuaXRWYWx1ZT4odmFsdWUuZ2V0KCkpLnZhbHVlKCk7
Ci0gICAgICAgICAgICBTdHJpbmcgdW5pdCA9IG5vbk51bWJlclVuaXRJbmRleCA/IGRvd25jYXN0
PENTU1VuaXRWYWx1ZT4odmFsdWVzWypub25OdW1iZXJVbml0SW5kZXhdLmdldCgpKS51bml0KCkg
OiAibnVtYmVyIjsKKyAgICAgICAgICAgIFN0cmluZyB1bml0ID0gbm9uTnVtYmVyVW5pdEluZGV4
ID8gZG93bmNhc3Q8Q1NTVW5pdFZhbHVlPih2YWx1ZXNbKm5vbk51bWJlclVuaXRJbmRleF0uZ2V0
KCkpLnVuaXQoKSA6ICJudW1iZXIiX3M7CiAgICAgICAgICAgICByZXR1cm4gQ1NTVW5pdFZhbHVl
OjpjcmVhdGUocHJvZHVjdCwgdW5pdCk7CiAgICAgICAgIH0KICAgICB9CkBAIC0yMzUsNyArMjM1
LDcgQEAgUmVmPENTU1VuaXRWYWx1ZT4gQ1NTTnVtZXJpY1ZhbHVlOjp0byhTdHJpbmcmJiB1bml0
KQogICAgIFVOVVNFRF9QQVJBTSh1bml0KTsKICAgICAvLyBodHRwczovL2RyYWZ0cy5jc3MtaG91
ZGluaS5vcmcvY3NzLXR5cGVkLW9tLyNkb20tY3NzbnVtZXJpY3ZhbHVlLXRvCiAgICAgLy8gRklY
TUU6IGFkZCBpbXBsLgotICAgIHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSgxLjAsICJudW1i
ZXIiKTsKKyAgICByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUoMS4wLCAibnVtYmVyIl9zKTsK
IH0KIAogUmVmPENTU01hdGhTdW0+IENTU051bWVyaWNWYWx1ZTo6dG9TdW0oRml4ZWRWZWN0b3I8
U3RyaW5nPiYmIHVuaXRzKQpAQCAtMjU4LDcgKzI1OCw3IEBAIEV4Y2VwdGlvbk9yPFJlZjxDU1NO
dW1lcmljVmFsdWU+PiBDU1NOdW1lcmljVmFsdWU6OnBhcnNlKFN0cmluZyYmIGNzc1RleHQpCiAg
ICAgVU5VU0VEX1BBUkFNKGNzc1RleHQpOwogICAgIC8vIGh0dHBzOi8vZHJhZnRzLmNzcy1ob3Vk
aW5pLm9yZy9jc3MtdHlwZWQtb20vI2RvbS1jc3NudW1lcmljdmFsdWUtcGFyc2UKICAgICAvLyBG
SVhNRTogYWRkIGltcGwuCi0gICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9y
LCAiTm90IGltcGxlbWVudGVkIEVycm9yIiB9OworICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RT
dXBwb3J0ZWRFcnJvciwgIk5vdCBpbXBsZW1lbnRlZCBFcnJvciJfcyB9OwogfQogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9D
U1NTdHlsZVZhbHVlRmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NT
dHlsZVZhbHVlRmFjdG9yeS5jcHAKaW5kZXggOWZjNzBmYjEwMjcxNjg3MTQ3NDUzNjY1MmQ0Y2Mx
MzEwNGRmMzQyNC4uMGFiYjNhNDgyODUyZGJkNGRkMzE3OGYyNDk4MzJmNTg3OGI3MWJhZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTU3R5bGVWYWx1ZUZhY3Rvcnku
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU1N0eWxlVmFsdWVGYWN0b3J5
LmNwcApAQCAtMjY0LDcgKzI2NCw3IEBAIEV4Y2VwdGlvbk9yPFJlZjxDU1NTdHlsZVZhbHVlPj4g
Q1NTU3R5bGVWYWx1ZUZhY3Rvcnk6OnJlaWZ5VmFsdWUoUmVmPENTU1ZhbHVlPiYmCiAgICAgICAg
IC8vIFJlZmVyIHRvIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy10eXBlZC1vbS90aGUtc3R5bGVwcm9wZXJ0eW1hcC9pbmxpbmUvZ2V0Lmh0bWwKICAg
ICAgICAgYXV0byB2YWx1ZUxpc3QgPSBkb3duY2FzdDxDU1NWYWx1ZUxpc3Q+KGNzc1ZhbHVlLnB0
cigpKTsKICAgICAgICAgaWYgKCF2YWx1ZUxpc3QtPmxlbmd0aCgpKQotICAgICAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIlRoZSBDU1NWYWx1ZUxpc3Qgc2hvdWxkIG5vdCBi
ZSBlbXB0eS4iIH07CisgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAi
VGhlIENTU1ZhbHVlTGlzdCBzaG91bGQgbm90IGJlIGVtcHR5LiJfcyB9OwogICAgICAgICAKICAg
ICAgICAgcmV0dXJuIHJlaWZ5VmFsdWUoV1RGTW92ZSgqdmFsdWVMaXN0LT5iZWdpbigpKSwgZG9j
dW1lbnQpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2Ev
SFRNTENvbnZlcnRlci5tbSBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvSFRNTENvbnZl
cnRlci5tbQppbmRleCBiNjdhNjM0OTczN2I4NWJhYzI5MzJjZTE4YWI4M2Y3M2Y4MTMxYWIzLi4y
ZDUzOWVkMmM3MWYyMmJmMjhiZjlkZjg1NDRhOWJlOTg4ZWE4N2VmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0hUTUxDb252ZXJ0ZXIubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9jb2NvYS9IVE1MQ29udmVydGVyLm1tCkBAIC01OTYsNyArNTk2LDcgQEAg
U3RyaW5nIEhUTUxDb252ZXJ0ZXJDYWNoZXM6OnByb3BlcnR5VmFsdWVGb3JOb2RlKE5vZGUmIG5v
ZGUsIENTU1Byb3BlcnR5SUQgcHJvcGUKICAgICBzd2l0Y2ggKHByb3BlcnR5SWQpIHsKICAgICBj
YXNlIENTU1Byb3BlcnR5RGlzcGxheToKICAgICAgICAgaWYgKGVsZW1lbnQuaGFzVGFnTmFtZSho
ZWFkVGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoc2NyaXB0VGFnKSB8fCBlbGVtZW50Lmhhc1Rh
Z05hbWUoYXBwbGV0VGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUobm9mcmFtZXNUYWcpKQotICAg
ICAgICAgICAgcmV0dXJuICJub25lIjsKKyAgICAgICAgICAgIHJldHVybiAibm9uZSJfczsKICAg
ICAgICAgZWxzZSBpZiAoZWxlbWVudC5oYXNUYWdOYW1lKGFkZHJlc3NUYWcpIHx8IGVsZW1lbnQu
aGFzVGFnTmFtZShibG9ja3F1b3RlVGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoYm9keVRhZykg
fHwgZWxlbWVudC5oYXNUYWdOYW1lKGNlbnRlclRhZykKICAgICAgICAgICAgICB8fCBlbGVtZW50
Lmhhc1RhZ05hbWUoZGRUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZShkaXJUYWcpIHx8IGVsZW1l
bnQuaGFzVGFnTmFtZShkaXZUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZShkbFRhZykKICAgICAg
ICAgICAgICB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoZHRUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFt
ZShmaWVsZHNldFRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKGZvcm1UYWcpIHx8IGVsZW1lbnQu
aGFzVGFnTmFtZShmcmFtZVRhZykKQEAgLTYwNCw2MiArNjA0LDYyIEBAIFN0cmluZyBIVE1MQ29u
dmVydGVyQ2FjaGVzOjpwcm9wZXJ0eVZhbHVlRm9yTm9kZShOb2RlJiBub2RlLCBDU1NQcm9wZXJ0
eUlEIHByb3BlCiAgICAgICAgICAgICAgfHwgZWxlbWVudC5oYXNUYWdOYW1lKGgyVGFnKSB8fCBl
bGVtZW50Lmhhc1RhZ05hbWUoaDNUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZShoNFRhZykgfHwg
ZWxlbWVudC5oYXNUYWdOYW1lKGg1VGFnKQogICAgICAgICAgICAgIHx8IGVsZW1lbnQuaGFzVGFn
TmFtZShoNlRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKGlmcmFtZVRhZykgfHwgZWxlbWVudC5o
YXNUYWdOYW1lKG1lbnVUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZShub3NjcmlwdFRhZykKICAg
ICAgICAgICAgICB8fCBlbGVtZW50Lmhhc1RhZ05hbWUob2xUYWcpIHx8IGVsZW1lbnQuaGFzVGFn
TmFtZShwVGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUocHJlVGFnKSB8fCBlbGVtZW50Lmhhc1Rh
Z05hbWUodWxUYWcpKQotICAgICAgICAgICAgcmV0dXJuICJibG9jayI7CisgICAgICAgICAgICBy
ZXR1cm4gImJsb2NrIl9zOwogICAgICAgICBlbHNlIGlmIChlbGVtZW50Lmhhc1RhZ05hbWUobGlU
YWcpKQotICAgICAgICAgICAgcmV0dXJuICJsaXN0LWl0ZW0iOworICAgICAgICAgICAgcmV0dXJu
ICJsaXN0LWl0ZW0iX3M7CiAgICAgICAgIGVsc2UgaWYgKGVsZW1lbnQuaGFzVGFnTmFtZSh0YWJs
ZVRhZykpCi0gICAgICAgICAgICByZXR1cm4gInRhYmxlIjsKKyAgICAgICAgICAgIHJldHVybiAi
dGFibGUiX3M7CiAgICAgICAgIGVsc2UgaWYgKGVsZW1lbnQuaGFzVGFnTmFtZSh0clRhZykpCi0g
ICAgICAgICAgICByZXR1cm4gInRhYmxlLXJvdyI7CisgICAgICAgICAgICByZXR1cm4gInRhYmxl
LXJvdyJfczsKICAgICAgICAgZWxzZSBpZiAoZWxlbWVudC5oYXNUYWdOYW1lKHRoVGFnKSB8fCBl
bGVtZW50Lmhhc1RhZ05hbWUodGRUYWcpKQotICAgICAgICAgICAgcmV0dXJuICJ0YWJsZS1jZWxs
IjsKKyAgICAgICAgICAgIHJldHVybiAidGFibGUtY2VsbCJfczsKICAgICAgICAgZWxzZSBpZiAo
ZWxlbWVudC5oYXNUYWdOYW1lKHRoZWFkVGFnKSkKLSAgICAgICAgICAgIHJldHVybiAidGFibGUt
aGVhZGVyLWdyb3VwIjsKKyAgICAgICAgICAgIHJldHVybiAidGFibGUtaGVhZGVyLWdyb3VwIl9z
OwogICAgICAgICBlbHNlIGlmIChlbGVtZW50Lmhhc1RhZ05hbWUodGJvZHlUYWcpKQotICAgICAg
ICAgICAgcmV0dXJuICJ0YWJsZS1yb3ctZ3JvdXAiOworICAgICAgICAgICAgcmV0dXJuICJ0YWJs
ZS1yb3ctZ3JvdXAiX3M7CiAgICAgICAgIGVsc2UgaWYgKGVsZW1lbnQuaGFzVGFnTmFtZSh0Zm9v
dFRhZykpCi0gICAgICAgICAgICByZXR1cm4gInRhYmxlLWZvb3Rlci1ncm91cCI7CisgICAgICAg
ICAgICByZXR1cm4gInRhYmxlLWZvb3Rlci1ncm91cCJfczsKICAgICAgICAgZWxzZSBpZiAoZWxl
bWVudC5oYXNUYWdOYW1lKGNvbFRhZykpCi0gICAgICAgICAgICByZXR1cm4gInRhYmxlLWNvbHVt
biI7CisgICAgICAgICAgICByZXR1cm4gInRhYmxlLWNvbHVtbiJfczsKICAgICAgICAgZWxzZSBp
ZiAoZWxlbWVudC5oYXNUYWdOYW1lKGNvbGdyb3VwVGFnKSkKLSAgICAgICAgICAgIHJldHVybiAi
dGFibGUtY29sdW1uLWdyb3VwIjsKKyAgICAgICAgICAgIHJldHVybiAidGFibGUtY29sdW1uLWdy
b3VwIl9zOwogICAgICAgICBlbHNlIGlmIChlbGVtZW50Lmhhc1RhZ05hbWUoY2FwdGlvblRhZykp
Ci0gICAgICAgICAgICByZXR1cm4gInRhYmxlLWNhcHRpb24iOworICAgICAgICAgICAgcmV0dXJu
ICJ0YWJsZS1jYXB0aW9uIl9zOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENTU1Byb3BlcnR5
V2hpdGVTcGFjZToKICAgICAgICAgaWYgKGVsZW1lbnQuaGFzVGFnTmFtZShwcmVUYWcpKQotICAg
ICAgICAgICAgcmV0dXJuICJwcmUiOworICAgICAgICAgICAgcmV0dXJuICJwcmUiX3M7CiAgICAg
ICAgIGluaGVyaXQgPSB0cnVlOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENTU1Byb3BlcnR5
Rm9udFN0eWxlOgogICAgICAgICBpZiAoZWxlbWVudC5oYXNUYWdOYW1lKGlUYWcpIHx8IGVsZW1l
bnQuaGFzVGFnTmFtZShjaXRlVGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoZW1UYWcpIHx8IGVs
ZW1lbnQuaGFzVGFnTmFtZSh2YXJUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZShhZGRyZXNzVGFn
KSkKLSAgICAgICAgICAgIHJldHVybiAiaXRhbGljIjsKKyAgICAgICAgICAgIHJldHVybiAiaXRh
bGljIl9zOwogICAgICAgICBpbmhlcml0ID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eUZvbnRXZWlnaHQ6CiAgICAgICAgIGlmIChlbGVtZW50Lmhhc1RhZ05hbWUo
YlRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKHN0cm9uZ1RhZykgfHwgZWxlbWVudC5oYXNUYWdO
YW1lKHRoVGFnKSkKLSAgICAgICAgICAgIHJldHVybiAiYm9sZGVyIjsKKyAgICAgICAgICAgIHJl
dHVybiAiYm9sZGVyIl9zOwogICAgICAgICBpbmhlcml0ID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVRleHREZWNvcmF0aW9uTGluZToKICAgICAgICAgaWYgKGVs
ZW1lbnQuaGFzVGFnTmFtZSh1VGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoaW5zVGFnKSkKLSAg
ICAgICAgICAgIHJldHVybiAidW5kZXJsaW5lIjsKKyAgICAgICAgICAgIHJldHVybiAidW5kZXJs
aW5lIl9zOwogICAgICAgICBlbHNlIGlmIChlbGVtZW50Lmhhc1RhZ05hbWUoc1RhZykgfHwgZWxl
bWVudC5oYXNUYWdOYW1lKHN0cmlrZVRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKGRlbFRhZykp
Ci0gICAgICAgICAgICByZXR1cm4gImxpbmUtdGhyb3VnaCI7CisgICAgICAgICAgICByZXR1cm4g
ImxpbmUtdGhyb3VnaCJfczsKICAgICAgICAgaW5oZXJpdCA9IHRydWU7IC8vIEZJWE1FOiBUaGlz
IGlzIG5vdCBzdHJpY3RseSBjb3JyZWN0CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTUHJv
cGVydHlUZXh0QWxpZ246CiAgICAgICAgIGlmIChlbGVtZW50Lmhhc1RhZ05hbWUoY2VudGVyVGFn
KSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoY2FwdGlvblRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1l
KHRoVGFnKSkKLSAgICAgICAgICAgIHJldHVybiAiY2VudGVyIjsKKyAgICAgICAgICAgIHJldHVy
biAiY2VudGVyIl9zOwogICAgICAgICBpbmhlcml0ID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBDU1NQcm9wZXJ0eVZlcnRpY2FsQWxpZ246CiAgICAgICAgIGlmIChlbGVtZW50Lmhh
c1RhZ05hbWUoc3VwVGFnKSkKLSAgICAgICAgICAgIHJldHVybiAic3VwZXIiOworICAgICAgICAg
ICAgcmV0dXJuICJzdXBlciJfczsKICAgICAgICAgZWxzZSBpZiAoZWxlbWVudC5oYXNUYWdOYW1l
KHN1YlRhZykpCi0gICAgICAgICAgICByZXR1cm4gInN1YiI7CisgICAgICAgICAgICByZXR1cm4g
InN1YiJfczsKICAgICAgICAgZWxzZSBpZiAoZWxlbWVudC5oYXNUYWdOYW1lKHRoZWFkVGFnKSB8
fCBlbGVtZW50Lmhhc1RhZ05hbWUodGJvZHlUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZSh0Zm9v
dFRhZykpCi0gICAgICAgICAgICByZXR1cm4gIm1pZGRsZSI7CisgICAgICAgICAgICByZXR1cm4g
Im1pZGRsZSJfczsKICAgICAgICAgZWxzZSBpZiAoZWxlbWVudC5oYXNUYWdOYW1lKHRyVGFnKSB8
fCBlbGVtZW50Lmhhc1RhZ05hbWUodGhUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZSh0ZFRhZykp
CiAgICAgICAgICAgICBpbmhlcml0ID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CkBAIC0xODUyLDcg
KzE4NTIsNyBAQCBCT09MIEhUTUxDb252ZXJ0ZXI6Ol9wcm9jZXNzRWxlbWVudChFbGVtZW50JiBl
bGVtZW50LCBOU0ludGVnZXIgZGVwdGgpCiAgICAgICAgIFJldGFpblB0cjxOU1RleHRMaXN0PiBs
aXN0OwogICAgICAgICBTdHJpbmcgbGlzdFN0eWxlVHlwZSA9IF9jYWNoZXMtPnByb3BlcnR5VmFs
dWVGb3JOb2RlKGVsZW1lbnQsIENTU1Byb3BlcnR5TGlzdFN0eWxlVHlwZSk7CiAgICAgICAgIGlm
ICghbGlzdFN0eWxlVHlwZS5sZW5ndGgoKSkKLSAgICAgICAgICAgIGxpc3RTdHlsZVR5cGUgPSAi
ZGVjaW1hbCI7CisgICAgICAgICAgICBsaXN0U3R5bGVUeXBlID0gImRlY2ltYWwiX3M7CiAgICAg
ICAgIGxpc3QgPSBhZG9wdE5TKFtbUGxhdGZvcm1OU1RleHRMaXN0IGFsbG9jXSBpbml0V2l0aE1h
cmtlckZvcm1hdDpTdHJpbmcoInsiICsgbGlzdFN0eWxlVHlwZSArICJ9Iikgb3B0aW9uczowXSk7
CiAgICAgICAgIGlmIChpczxIVE1MT0xpc3RFbGVtZW50PihlbGVtZW50KSkgewogICAgICAgICAg
ICAgTlNJbnRlZ2VyIHN0YXJ0aW5nSXRlbU51bWJlciA9IGRvd25jYXN0PEhUTUxPTGlzdEVsZW1l
bnQ+KGVsZW1lbnQpLnN0YXJ0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L2NvY29hL1dlYkNvbnRlbnRSZWFkZXJDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
Y29jb2EvV2ViQ29udGVudFJlYWRlckNvY29hLm1tCmluZGV4IGU4ODZhMjdkYmQ2MjI0MGFkOTg0
MjA0NWNlYjgzMDUwYTJmYzAzZGYuLmQ4ZDE0MGRlZjdkM2EzOGIwMjRhNDExMzRiNjU4ZTdmMzE0
MTRlMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvV2ViQ29udGVu
dFJlYWRlckNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvV2ViQ29u
dGVudFJlYWRlckNvY29hLm1tCkBAIC03NjIsNyArNzYyLDcgQEAgc3RhdGljIFJlZjxIVE1MRWxl
bWVudD4gYXR0YWNobWVudEZvckRhdGEoRnJhbWUmIGZyYW1lLCBGcmFnbWVudGVkU2hhcmVkQnVm
ZmVyJgogICAgIGF1dG8gYXR0YWNobWVudFR5cGUgPSB0eXBlRm9yQXR0YWNobWVudEVsZW1lbnQo
Y29udGVudFR5cGUpOwogCiAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBpbnN0ZWFkIGFzayBDb3Jl
U2VydmljZXMgZm9yIGEgcHJlZmVycmVkIG5hbWUgY29ycmVzcG9uZGluZyB0byB0aGUgZ2l2ZW4g
Y29udGVudCB0eXBlLgotICAgIHN0YXRpYyBjb25zdCBjaGFyKiBkZWZhdWx0QXR0YWNobWVudE5h
bWUgPSAiZmlsZSI7CisgICAgc3RhdGljIGNvbnN0ZXhwciBBU0NJSUxpdGVyYWwgZGVmYXVsdEF0
dGFjaG1lbnROYW1lID0gImZpbGUiX3M7CiAKICAgICBTdHJpbmcgZmlsZU5hbWU7CiAgICAgaWYg
KG5hbWUuaXNFbXB0eSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NvY29h
L0J1bmRsZVJlc291cmNlTG9hZGVyLm1tIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NvY29hL0J1
bmRsZVJlc291cmNlTG9hZGVyLm1tCmluZGV4IGMzYjdiN2ZlNTVkYzMzMDQzY2M4YWUzOWNjZmE0
N2RiNzY5NjNlY2YuLjljMjc5MTEzOTU3OWUwZDQ2N2MzODBhNTIzZDU1MTUxNDIyMzFhYjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jb2NvYS9CdW5kbGVSZXNvdXJjZUxvYWRl
ci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY29jb2EvQnVuZGxlUmVzb3VyY2VMb2Fk
ZXIubW0KQEAgLTY1LDEzICs2NSwxMyBAQCB2b2lkIGxvYWRSZXNvdXJjZUZyb21CdW5kbGUoUmVz
b3VyY2VMb2FkZXImIGxvYWRlciwgY29uc3QgU3RyaW5nJiBzdWJkaXJlY3RvcnkpCiAKICAgICAg
ICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFtwcm90ZWN0ZWRMb2FkZXIgPSBXVEZNb3ZlKHBy
b3RlY3RlZExvYWRlciksIHVybCA9IFdURk1vdmUodXJsKS5pc29sYXRlZENvcHkoKSwgYnVmZmVy
ID0gU2hhcmVkQnVmZmVyOjpjcmVhdGUoZGF0YSldKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBh
dXRvIG1pbWVUeXBlID0gTUlNRVR5cGVSZWdpc3RyeTo6bWltZVR5cGVGb3JQYXRoKHVybC5wYXRo
KCkpOwotICAgICAgICAgICAgUmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSB7IHVybCwgbWltZVR5
cGUsIHN0YXRpY19jYXN0PGxvbmcgbG9uZz4oYnVmZmVyLT5zaXplKCkpLCBNSU1FVHlwZVJlZ2lz
dHJ5Ojppc1RleHRNSU1FVHlwZShtaW1lVHlwZSkgPyAiVVRGLTgiX3MgOiBudWxscHRyIH07Cisg
ICAgICAgICAgICBSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlIHsgdXJsLCBtaW1lVHlwZSwgc3Rh
dGljX2Nhc3Q8bG9uZyBsb25nPihidWZmZXItPnNpemUoKSksIE1JTUVUeXBlUmVnaXN0cnk6Omlz
VGV4dE1JTUVUeXBlKG1pbWVUeXBlKSA/ICJVVEYtOCJfcyA6IFN0cmluZygpIH07CiAgICAgICAg
ICAgICByZXNwb25zZS5zZXRIVFRQU3RhdHVzQ29kZSgyMDApOwogICAgICAgICAgICAgcmVzcG9u
c2Uuc2V0SFRUUFN0YXR1c1RleHQoIk9LIl9zKTsKICAgICAgICAgICAgIHJlc3BvbnNlLnNldFNv
dXJjZShSZXNvdXJjZVJlc3BvbnNlOjpTb3VyY2U6Ok5ldHdvcmspOwogCiAgICAgICAgICAgICAv
LyBBbGxvdyBpbWFnZXMgdG8gbG9hZC4KLSAgICAgICAgICAgIHJlc3BvbnNlLmFkZEhUVFBIZWFk
ZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6QWNjZXNzQ29udHJvbEFsbG93T3JpZ2luLCAiKiIpOwor
ICAgICAgICAgICAgcmVzcG9uc2UuYWRkSFRUUEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpB
Y2Nlc3NDb250cm9sQWxsb3dPcmlnaW4sICIqIl9zKTsKIAogICAgICAgICAgICAgcHJvdGVjdGVk
TG9hZGVyLT5kZWxpdmVyUmVzcG9uc2VBbmREYXRhKHJlc3BvbnNlLCBXVEZNb3ZlKGJ1ZmZlcikp
OwogICAgICAgICB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9tYWMvTG9h
ZGVyTlNVUkxFeHRyYXMubW0gYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvbWFjL0xvYWRlck5TVVJM
RXh0cmFzLm1tCmluZGV4IDU1MGRhYjgwZWUzYWE0NjA3MjFkZWI2YzMwYzg1YThlNmRmMGEwNDcu
LmU1OGY0NTU0ZmU0MDQ2ZTFkMzIxNGM5ZjE2YTBmMWViN2IyYmFiOTMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9tYWMvTG9hZGVyTlNVUkxFeHRyYXMubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvbG9hZGVyL21hYy9Mb2FkZXJOU1VSTEV4dHJhcy5tbQpAQCAtNjQsNyArNjQsNyBA
QCBOU1N0cmluZyAqc3VnZ2VzdGVkRmlsZW5hbWVXaXRoTUlNRVR5cGUoTlNVUkwgKnVybCwgY29u
c3QgU3RyaW5nJiBtaW1lVHlwZSkKICAgICAvLyBoYXZlIGEgZmlsZW5hbWUgd2hpY2ggaGFzIC50
YXIgaW4gaXQgb3IgZW5kcyBpbiAudGd6CiAgICAgaWYgKChtaW1lVHlwZSA9PSAiYXBwbGljYXRp
b24vdGFyIiB8fCBtaW1lVHlwZSA9PSAiYXBwbGljYXRpb24veC10YXIiKQogICAgICAgICAmJiAo
U3RyaW5nKGZpbGVuYW1lKS5jb250YWluc0lnbm9yaW5nQVNDSUlDYXNlKCIudGFyIikKLSAgICAg
ICAgfHwgU3RyaW5nKGZpbGVuYW1lKS5lbmRzV2l0aElnbm9yaW5nQVNDSUlDYXNlKCIudGd6Iikp
KSB7CisgICAgICAgIHx8IFN0cmluZyhmaWxlbmFtZSkuZW5kc1dpdGhJZ25vcmluZ0FTQ0lJQ2Fz
ZSgiLnRneiJfcykpKSB7CiAgICAgICAgIHJldHVybiBmaWxlbmFtZTsKICAgICB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvUmVzb3VyY2VVc2FnZU92ZXJsYXlDb2Nv
YS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvUmVzb3VyY2VVc2FnZU92ZXJsYXlDb2Nv
YS5tbQppbmRleCAxMTQ4NGQwYzU5MmMwN2ZmOTRlYzE3N2EwMTI4MDEwNzljMzk1OTcxLi5lMWRj
MjliODYyZDQyMjQzYTlhMjkxYTBlZDFmNWY0MzNmY2RhMWVhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL2NvY29hL1Jlc291cmNlVXNhZ2VPdmVybGF5Q29jb2EubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9SZXNvdXJjZVVzYWdlT3ZlcmxheUNvY29hLm1tCkBAIC0x
NjEsMTggKzE2MSwxOCBAQCBzdHJ1Y3QgSGlzdG9yaWNSZXNvdXJjZVVzYWdlRGF0YSB7CiBIaXN0
b3JpY1Jlc291cmNlVXNhZ2VEYXRhOjpIaXN0b3JpY1Jlc291cmNlVXNhZ2VEYXRhKCkKIHsKICAg
ICAvLyBWTSB0YWcgY2F0ZWdvcmllcy4KLSAgICBjYXRlZ29yaWVzW01lbW9yeUNhdGVnb3J5OjpK
U0pJVF0gPSBIaXN0b3JpY01lbW9yeUNhdGVnb3J5SW5mbyhNZW1vcnlDYXRlZ29yeTo6SlNKSVQs
IHsgMjU1LCA5NiwgMjU1IH0sICJKUyBKSVQiKTsKLSAgICBjYXRlZ29yaWVzW01lbW9yeUNhdGVn
b3J5OjpHaWdhY2FnZV0gPSBIaXN0b3JpY01lbW9yeUNhdGVnb3J5SW5mbyhNZW1vcnlDYXRlZ29y
eTo6R2lnYWNhZ2UsIHsgMTAxLCA3OSwgMjQwIH0sICJHaWdhY2FnZSIpOwotICAgIGNhdGVnb3Jp
ZXNbTWVtb3J5Q2F0ZWdvcnk6OkltYWdlc10gPSBIaXN0b3JpY01lbW9yeUNhdGVnb3J5SW5mbyhN
ZW1vcnlDYXRlZ29yeTo6SW1hZ2VzLCBDb2xvcjo6eWVsbG93LCAiSW1hZ2VzIik7Ci0gICAgY2F0
ZWdvcmllc1tNZW1vcnlDYXRlZ29yeTo6TGF5ZXJzXSA9IEhpc3RvcmljTWVtb3J5Q2F0ZWdvcnlJ
bmZvKE1lbW9yeUNhdGVnb3J5OjpMYXllcnMsIENvbG9yOjpjeWFuLCAiTGF5ZXJzIik7Ci0gICAg
Y2F0ZWdvcmllc1tNZW1vcnlDYXRlZ29yeTo6TGliY01hbGxvY10gPSBIaXN0b3JpY01lbW9yeUNh
dGVnb3J5SW5mbyhNZW1vcnlDYXRlZ29yeTo6TGliY01hbGxvYywgQ29sb3I6OmdyZWVuLCAibGli
YyBtYWxsb2MiKTsKLSAgICBjYXRlZ29yaWVzW01lbW9yeUNhdGVnb3J5OjpibWFsbG9jXSA9IEhp
c3RvcmljTWVtb3J5Q2F0ZWdvcnlJbmZvKE1lbW9yeUNhdGVnb3J5OjpibWFsbG9jLCB7IDI1NSwg
OTYsIDk2IH0sICJibWFsbG9jIik7Ci0gICAgY2F0ZWdvcmllc1tNZW1vcnlDYXRlZ29yeTo6SXNv
SGVhcF0gPSBIaXN0b3JpY01lbW9yeUNhdGVnb3J5SW5mbyhNZW1vcnlDYXRlZ29yeTo6SXNvSGVh
cCwgeyAxMjgsIDE1OSwgNjQgfSwgIklzb0hlYXAiKTsKLSAgICBjYXRlZ29yaWVzW01lbW9yeUNh
dGVnb3J5OjpPdGhlcl0gPSBIaXN0b3JpY01lbW9yeUNhdGVnb3J5SW5mbyhNZW1vcnlDYXRlZ29y
eTo6T3RoZXIsIHsgMTkyLCAyNTUsIDAgfSwgIk90aGVyIik7CisgICAgY2F0ZWdvcmllc1tNZW1v
cnlDYXRlZ29yeTo6SlNKSVRdID0gSGlzdG9yaWNNZW1vcnlDYXRlZ29yeUluZm8oTWVtb3J5Q2F0
ZWdvcnk6OkpTSklULCB7IDI1NSwgOTYsIDI1NSB9LCAiSlMgSklUIl9zKTsKKyAgICBjYXRlZ29y
aWVzW01lbW9yeUNhdGVnb3J5OjpHaWdhY2FnZV0gPSBIaXN0b3JpY01lbW9yeUNhdGVnb3J5SW5m
byhNZW1vcnlDYXRlZ29yeTo6R2lnYWNhZ2UsIHsgMTAxLCA3OSwgMjQwIH0sICJHaWdhY2FnZSJf
cyk7CisgICAgY2F0ZWdvcmllc1tNZW1vcnlDYXRlZ29yeTo6SW1hZ2VzXSA9IEhpc3RvcmljTWVt
b3J5Q2F0ZWdvcnlJbmZvKE1lbW9yeUNhdGVnb3J5OjpJbWFnZXMsIENvbG9yOjp5ZWxsb3csICJJ
bWFnZXMiX3MpOworICAgIGNhdGVnb3JpZXNbTWVtb3J5Q2F0ZWdvcnk6OkxheWVyc10gPSBIaXN0
b3JpY01lbW9yeUNhdGVnb3J5SW5mbyhNZW1vcnlDYXRlZ29yeTo6TGF5ZXJzLCBDb2xvcjo6Y3lh
biwgIkxheWVycyJfcyk7CisgICAgY2F0ZWdvcmllc1tNZW1vcnlDYXRlZ29yeTo6TGliY01hbGxv
Y10gPSBIaXN0b3JpY01lbW9yeUNhdGVnb3J5SW5mbyhNZW1vcnlDYXRlZ29yeTo6TGliY01hbGxv
YywgQ29sb3I6OmdyZWVuLCAibGliYyBtYWxsb2MiX3MpOworICAgIGNhdGVnb3JpZXNbTWVtb3J5
Q2F0ZWdvcnk6OmJtYWxsb2NdID0gSGlzdG9yaWNNZW1vcnlDYXRlZ29yeUluZm8oTWVtb3J5Q2F0
ZWdvcnk6OmJtYWxsb2MsIHsgMjU1LCA5NiwgOTYgfSwgImJtYWxsb2MiX3MpOworICAgIGNhdGVn
b3JpZXNbTWVtb3J5Q2F0ZWdvcnk6Oklzb0hlYXBdID0gSGlzdG9yaWNNZW1vcnlDYXRlZ29yeUlu
Zm8oTWVtb3J5Q2F0ZWdvcnk6Oklzb0hlYXAsIHsgMTI4LCAxNTksIDY0IH0sICJJc29IZWFwIl9z
KTsKKyAgICBjYXRlZ29yaWVzW01lbW9yeUNhdGVnb3J5OjpPdGhlcl0gPSBIaXN0b3JpY01lbW9y
eUNhdGVnb3J5SW5mbyhNZW1vcnlDYXRlZ29yeTo6T3RoZXIsIHsgMTkyLCAyNTUsIDAgfSwgIk90
aGVyIl9zKTsKIAogICAgIC8vIFN1YiBjYXRlZ29yaWVzIChlLmcgYnJlYWtkb3duIG9mIGJtYWxs
b2MgdGFnLikKLSAgICBjYXRlZ29yaWVzW01lbW9yeUNhdGVnb3J5OjpHQ0hlYXBdID0gSGlzdG9y
aWNNZW1vcnlDYXRlZ29yeUluZm8oTWVtb3J5Q2F0ZWdvcnk6OkdDSGVhcCwgeyAxNjAsIDE2MCwg
MjU1IH0sICJHQyBoZWFwIiwgdHJ1ZSk7Ci0gICAgY2F0ZWdvcmllc1tNZW1vcnlDYXRlZ29yeTo6
R0NPd25lZF0gPSBIaXN0b3JpY01lbW9yeUNhdGVnb3J5SW5mbyhNZW1vcnlDYXRlZ29yeTo6R0NP
d25lZCwgeyAyNTUsIDE5MiwgOTYgfSwgIkdDIG93bmVkIiwgdHJ1ZSk7CisgICAgY2F0ZWdvcmll
c1tNZW1vcnlDYXRlZ29yeTo6R0NIZWFwXSA9IEhpc3RvcmljTWVtb3J5Q2F0ZWdvcnlJbmZvKE1l
bW9yeUNhdGVnb3J5OjpHQ0hlYXAsIHsgMTYwLCAxNjAsIDI1NSB9LCAiR0MgaGVhcCJfcywgdHJ1
ZSk7CisgICAgY2F0ZWdvcmllc1tNZW1vcnlDYXRlZ29yeTo6R0NPd25lZF0gPSBIaXN0b3JpY01l
bW9yeUNhdGVnb3J5SW5mbyhNZW1vcnlDYXRlZ29yeTo6R0NPd25lZCwgeyAyNTUsIDE5MiwgOTYg
fSwgIkdDIG93bmVkIl9zLCB0cnVlKTsKIAogI2lmbmRlZiBOREVCVUcKICAgICAvLyBFbnN1cmUg
dGhpcyBhbGlnbnMgd2l0aCBSZXNvdXJjZVVzYWdlRGF0YSdzIGNhdGVnb3J5IG9yZGVyLgpAQCAt
MzExLDcgKzMxMSw3IEBAIHN0YXRpYyB2b2lkIGRyYXdDcHVIaXN0b3J5KENHQ29udGV4dFJlZiBj
b250ZXh0LCBmbG9hdCB4MSwgZmxvYXQgeTEsIGZsb2F0IHkyLCBSCiAgICAgICAgIGkrKzsKICAg
ICB9KTsKIAotICAgIGRyYXdHcmFwaExhYmVsKGNvbnRleHQsIHgxLCB5MiwgIkNQVSIpOworICAg
IGRyYXdHcmFwaExhYmVsKGNvbnRleHQsIHgxLCB5MiwgIkNQVSJfcyk7CiB9CiAKIHN0YXRpYyB2
b2lkIGRyYXdHQ0hpc3RvcnkoQ0dDb250ZXh0UmVmIGNvbnRleHQsIGZsb2F0IHgxLCBmbG9hdCB5
MSwgZmxvYXQgeTIsIFJpbmdCdWZmZXI8c2l6ZV90PiYgc2l6ZUhpc3RvcnksIFJpbmdCdWZmZXI8
c2l6ZV90PiYgY2FwYWNpdHlIaXN0b3J5KQpAQCAtMzU0LDcgKzM1NCw3IEBAIHN0YXRpYyB2b2lk
IGRyYXdHQ0hpc3RvcnkoQ0dDb250ZXh0UmVmIGNvbnRleHQsIGZsb2F0IHgxLCBmbG9hdCB5MSwg
ZmxvYXQgeTIsIFJpCiAgICAgICAgIGkrKzsKICAgICB9KTsKIAotICAgIGRyYXdHcmFwaExhYmVs
KGNvbnRleHQsIHgxLCB5MiwgIkdDIik7CisgICAgZHJhd0dyYXBoTGFiZWwoY29udGV4dCwgeDEs
IHkyLCAiR0MiX3MpOwogfQogCiBzdGF0aWMgdm9pZCBkcmF3TWVtSGlzdG9yeShDR0NvbnRleHRS
ZWYgY29udGV4dCwgZmxvYXQgeDEsIGZsb2F0IHkxLCBmbG9hdCB5MiwgSGlzdG9yaWNSZXNvdXJj
ZVVzYWdlRGF0YSYgZGF0YSkKQEAgLTQwMCw3ICs0MDAsNyBAQCBzdGF0aWMgdm9pZCBkcmF3TWVt
SGlzdG9yeShDR0NvbnRleHRSZWYgY29udGV4dCwgZmxvYXQgeDEsIGZsb2F0IHkxLCBmbG9hdCB5
MiwgSAogICAgICAgICArK2k7CiAgICAgfQogCi0gICAgZHJhd0dyYXBoTGFiZWwoY29udGV4dCwg
eDEsIHkyLCAiTWVtIik7CisgICAgZHJhd0dyYXBoTGFiZWwoY29udGV4dCwgeDEsIHkyLCAiTWVt
Il9zKTsKIH0KIAogc3RhdGljIGNvbnN0IGZsb2F0IGZ1bGxDaXJjbGVJblJhZGlhbnMgPSBwaUZs
b2F0ICogMjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvU2V0dGluZ3NC
YXNlQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL1NldHRpbmdzQmFzZUNvY29h
Lm1tCmluZGV4IGQyMWQ5OWQ4NjFiOGZhOTI4MmU5MWE5YWE0YTMwMWY4ZmI2NGQxNzcuLjQ3NzRj
ZTA4YTViOGI1MGY2NGExNjIwMmY1MzhiNGY0ZjdlZjJlNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvY29jb2EvU2V0dGluZ3NCYXNlQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9jb2NvYS9TZXR0aW5nc0Jhc2VDb2NvYS5tbQpAQCAtNDMsMTUgKzQzLDE1IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogdm9pZCBTZXR0aW5nc0Jhc2U6OmluaXRpYWxpemVEZWZhdWx0
Rm9udEZhbWlsaWVzKCkKIHsKLSAgICBzZXRTdGFuZGFyZEZvbnRGYW1pbHkoIlNvbmd0aSBUQyIs
IFVTQ1JJUFRfVFJBRElUSU9OQUxfSEFOKTsKLSAgICBzZXRTdGFuZGFyZEZvbnRGYW1pbHkoIlNv
bmd0aSBTQyIsIFVTQ1JJUFRfU0lNUExJRklFRF9IQU4pOwotICAgIHNldFN0YW5kYXJkRm9udEZh
bWlseSgiSGlyYWdpbm8gTWluY2hvIFByb04iLCBVU0NSSVBUX0tBVEFLQU5BX09SX0hJUkFHQU5B
KTsKLSAgICBzZXRTdGFuZGFyZEZvbnRGYW1pbHkoIkFwcGxlTXl1bmdqbyIsIFVTQ1JJUFRfSEFO
R1VMKTsKLQotICAgIHNldFN0YW5kYXJkRm9udEZhbWlseSgiVGltZXMiLCBVU0NSSVBUX0NPTU1P
Tik7Ci0gICAgc2V0Rml4ZWRGb250RmFtaWx5KCJDb3VyaWVyIiwgVVNDUklQVF9DT01NT04pOwot
ICAgIHNldFNlcmlmRm9udEZhbWlseSgiVGltZXMiLCBVU0NSSVBUX0NPTU1PTik7Ci0gICAgc2V0
U2Fuc1NlcmlmRm9udEZhbWlseSgiSGVsdmV0aWNhIiwgVVNDUklQVF9DT01NT04pOworICAgIHNl
dFN0YW5kYXJkRm9udEZhbWlseSgiU29uZ3RpIFRDIl9zLCBVU0NSSVBUX1RSQURJVElPTkFMX0hB
Tik7CisgICAgc2V0U3RhbmRhcmRGb250RmFtaWx5KCJTb25ndGkgU0MiX3MsIFVTQ1JJUFRfU0lN
UExJRklFRF9IQU4pOworICAgIHNldFN0YW5kYXJkRm9udEZhbWlseSgiSGlyYWdpbm8gTWluY2hv
IFByb04iX3MsIFVTQ1JJUFRfS0FUQUtBTkFfT1JfSElSQUdBTkEpOworICAgIHNldFN0YW5kYXJk
Rm9udEZhbWlseSgiQXBwbGVNeXVuZ2pvIl9zLCBVU0NSSVBUX0hBTkdVTCk7CisKKyAgICBzZXRT
dGFuZGFyZEZvbnRGYW1pbHkoIlRpbWVzIl9zLCBVU0NSSVBUX0NPTU1PTik7CisgICAgc2V0Rml4
ZWRGb250RmFtaWx5KCJDb3VyaWVyIl9zLCBVU0NSSVBUX0NPTU1PTik7CisgICAgc2V0U2VyaWZG
b250RmFtaWx5KCJUaW1lcyJfcywgVVNDUklQVF9DT01NT04pOworICAgIHNldFNhbnNTZXJpZkZv
bnRGYW1pbHkoIkhlbHZldGljYSJfcywgVVNDUklQVF9DT01NT04pOwogfQogCiBib29sIFNldHRp
bmdzQmFzZTo6cGxhdGZvcm1EZWZhdWx0TWVkaWFTb3VyY2VFbmFibGVkKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1BhZ2VNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L21hYy9QYWdlTWFjLm1tCmluZGV4IDQ0OWE4ZmY2Y2Q2OTRkMjRjNWFmMTRiZGVhZjU0YzYyNGMy
MmMxMWIuLjlmMmQzZjVmZDNkZjdmYzY1YjhmMmJkNTJjYzY5ZjIyYmIxYmFjZTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1BhZ2VNYWMubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9tYWMvUGFnZU1hYy5tbQpAQCAtNTcsMTUgKzU3LDE1IEBAIHZvaWQgUGFnZTo6cGxh
dGZvcm1Jbml0aWFsaXplKCkKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZUZsYWc7CiAg
ICAgc3RkOjpjYWxsX29uY2Uob25jZUZsYWcsIFtdIHsKICNpZiBFTkFCTEUoVFJFRV9ERUJVR0dJ
TkcpCi0gICAgICAgIFBBTDo6cmVnaXN0ZXJOb3RpZnlDYWxsYmFjaygiY29tLmFwcGxlLldlYktp
dC5zaG93UmVuZGVyVHJlZSIsIHByaW50UmVuZGVyVHJlZUZvckxpdmVEb2N1bWVudHMpOwotICAg
ICAgICBQQUw6OnJlZ2lzdGVyTm90aWZ5Q2FsbGJhY2soImNvbS5hcHBsZS5XZWJLaXQuc2hvd0xh
eWVyVHJlZSIsIHByaW50TGF5ZXJUcmVlRm9yTGl2ZURvY3VtZW50cyk7Ci0gICAgICAgIFBBTDo6
cmVnaXN0ZXJOb3RpZnlDYWxsYmFjaygiY29tLmFwcGxlLldlYktpdC5zaG93R3JhcGhpY3NMYXll
clRyZWUiLCBwcmludEdyYXBoaWNzTGF5ZXJUcmVlRm9yTGl2ZURvY3VtZW50cyk7CisgICAgICAg
IFBBTDo6cmVnaXN0ZXJOb3RpZnlDYWxsYmFjaygiY29tLmFwcGxlLldlYktpdC5zaG93UmVuZGVy
VHJlZSJfcywgcHJpbnRSZW5kZXJUcmVlRm9yTGl2ZURvY3VtZW50cyk7CisgICAgICAgIFBBTDo6
cmVnaXN0ZXJOb3RpZnlDYWxsYmFjaygiY29tLmFwcGxlLldlYktpdC5zaG93TGF5ZXJUcmVlIl9z
LCBwcmludExheWVyVHJlZUZvckxpdmVEb2N1bWVudHMpOworICAgICAgICBQQUw6OnJlZ2lzdGVy
Tm90aWZ5Q2FsbGJhY2soImNvbS5hcHBsZS5XZWJLaXQuc2hvd0dyYXBoaWNzTGF5ZXJUcmVlIl9z
LCBwcmludEdyYXBoaWNzTGF5ZXJUcmVlRm9yTGl2ZURvY3VtZW50cyk7CiAjaWYgRU5BQkxFKExB
WU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCi0gICAgICAgIFBBTDo6cmVnaXN0ZXJOb3RpZnlDYWxs
YmFjaygiY29tLmFwcGxlLldlYktpdC5zaG93TGF5b3V0VHJlZSIsIExheW91dDo6cHJpbnRMYXlv
dXRUcmVlRm9yTGl2ZURvY3VtZW50cyk7CisgICAgICAgIFBBTDo6cmVnaXN0ZXJOb3RpZnlDYWxs
YmFjaygiY29tLmFwcGxlLldlYktpdC5zaG93TGF5b3V0VHJlZSJfcywgTGF5b3V0OjpwcmludExh
eW91dFRyZWVGb3JMaXZlRG9jdW1lbnRzKTsKICNlbmRpZgogI2VuZGlmIC8vIEVOQUJMRShUUkVF
X0RFQlVHR0lORykKIAotICAgICAgICBQQUw6OnJlZ2lzdGVyTm90aWZ5Q2FsbGJhY2soImNvbS5h
cHBsZS5XZWJLaXQuc2hvd0FsbERvY3VtZW50cyIsIFtdIHsKKyAgICAgICAgUEFMOjpyZWdpc3Rl
ck5vdGlmeUNhbGxiYWNrKCJjb20uYXBwbGUuV2ViS2l0LnNob3dBbGxEb2N1bWVudHMiX3MsIFtd
IHsKICAgICAgICAgICAgIHVuc2lnbmVkIG51bVBhZ2VzID0gMDsKICAgICAgICAgICAgIFBhZ2U6
OmZvckVhY2hQYWdlKFsmbnVtUGFnZXNdKFBhZ2UmKSB7CiAgICAgICAgICAgICAgICAgKytudW1Q
YWdlczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmlu
Z3MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAKaW5k
ZXggY2Y1ZDBlMDI2Y2RmODMzNzIyZTUxY2FjMGJjYzdmMTM0YTYyNWU5ZS4uOGE3ZThlZjZiY2Uy
M2MxZjg0YWQ0MDMwNmNkNmY1ZjVjOTBlNThkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vTG9jYWxpemVkU3RyaW5ncy5jcHAKQEAgLTY1NSw3ICs2NTUsNyBAQCBTdHJpbmcgQVhXZWVr
RmllbGRUZXh0KCkKICAgICByZXR1cm4gV0VCX1VJX1NUUklORygid2VlayBhbmQgeWVhciBmaWVs
ZCIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIGEgdGltZSBmaWVsZC4iKTsK
IH0KIAotU3RyaW5nIEFYQVJJQUNvbnRlbnRHcm91cFRleHQoY29uc3QgU3RyaW5nJiBhcmlhVHlw
ZSkKK1N0cmluZyBBWEFSSUFDb250ZW50R3JvdXBUZXh0KFN0cmluZ1ZpZXcgYXJpYVR5cGUpCiB7
CiAgICAgaWYgKGFyaWFUeXBlID09ICJBUklBQXBwbGljYXRpb25BbGVydCIpCiAgICAgICAgIHJl
dHVybiBXRUJfVUlfU1RSSU5HKCJhbGVydCIsICJBbiBBUklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAg
dGhhdCBhY3RzIGFzIGFuIGFsZXJ0LiIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxp
emVkU3RyaW5ncy5oCmluZGV4IGIxODFmMWVkOGEwYjg4YzFmY2ZjZDBlODYxNzIzNGJiMjk0OTNk
YWUuLmEyMGI1ODhlNjkzNzE2OWExMDY3ZDM5ZDdjMTA5ZjM0NTllOGMzOTYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgKQEAgLTE5NSw3ICsxOTUsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgU3RyaW5nIEFYTW9udGhGaWVsZFRleHQoKTsKICAgICBT
dHJpbmcgQVhOdW1iZXJGaWVsZFRleHQoKTsKICAgICBTdHJpbmcgQVhXZWVrRmllbGRUZXh0KCk7
Ci0gICAgU3RyaW5nIEFYQVJJQUNvbnRlbnRHcm91cFRleHQoY29uc3QgU3RyaW5nJiBhcmlhVHlw
ZSk7CisgICAgU3RyaW5nIEFYQVJJQUNvbnRlbnRHcm91cFRleHQoU3RyaW5nVmlldyBhcmlhVHlw
ZSk7CiAgICAgU3RyaW5nIEFYSG9yaXpvbnRhbFJ1bGVEZXNjcmlwdGlvblRleHQoKTsKICAgICBT
dHJpbmcgQVhNYXJrVGV4dCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9QYXN0ZWJvYXJkLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkLmgKaW5k
ZXggYWViYTBhM2I0NGQ4NjY2ZWNkYjIyMWIzMzU3MGQ0Y2NkYTU2NjQyOS4uMWNmNDEwOGYwOGU2
MzA2NThmOWEzZTMxZmU0YmNlOTYzZTNlNGNjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vUGFzdGVib2FyZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3Rl
Ym9hcmQuaApAQCAtMzc1LDkgKzM3NSw5IEBAIGV4dGVybiBOU1N0cmluZyAqVUlDb2xvclBib2Fy
ZFR5cGU7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1BQykKLWV4dGVybiBjb25zdCBjaGFyKiBj
b25zdCBXZWJBcmNoaXZlUGJvYXJkVHlwZTsKLWV4dGVybiBjb25zdCBjaGFyKiBjb25zdCBXZWJV
UkxOYW1lUGJvYXJkVHlwZTsKLWV4dGVybiBjb25zdCBjaGFyKiBjb25zdCBXZWJVUkxzV2l0aFRp
dGxlc1Bib2FyZFR5cGU7CitleHRlcm4gY29uc3QgQVNDSUlMaXRlcmFsIFdlYkFyY2hpdmVQYm9h
cmRUeXBlOworZXh0ZXJuIGNvbnN0IEFTQ0lJTGl0ZXJhbCBXZWJVUkxOYW1lUGJvYXJkVHlwZTsK
K2V4dGVybiBjb25zdCBBU0NJSUxpdGVyYWwgV2ViVVJMc1dpdGhUaXRsZXNQYm9hcmRUeXBlOwog
I2VuZGlmCiAKICNpZiAhUExBVEZPUk0oR1RLKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vUGFzdGVib2FyZEN1c3RvbURhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1Bhc3RlYm9hcmRDdXN0b21EYXRhLmgKaW5kZXggMmJlODFkMjkzOGEzZGJkMDkwMjZjYTZlYzY0
YWMzMjg3ZTZhYmMwMy4uMjU2ZjQ0NTQyOTAzMmJiNDJmMzEzZDkyMGFmYmZmZDFiMDIzYTc3YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZEN1c3RvbURhdGEu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkQ3VzdG9tRGF0YS5oCkBA
IC03Niw3ICs3Niw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNsZWFyKGNvbnN0IFN0cmluZyYgdHlw
ZSk7CiAKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgY29u
c3QgY2hhciogY29jb2FUeXBlKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIEFTQ0lJTGl0
ZXJhbCBjb2NvYVR5cGUoKTsKICNlbGlmIFBMQVRGT1JNKEdUSykKICAgICBzdGF0aWMgY29uc3Qg
Y2hhciogZ3RrVHlwZSgpIHsgcmV0dXJuICJvcmcud2Via2l0Z3RrLldlYktpdC5jdXN0b20tcGFz
dGVib2FyZC1kYXRhIjsgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9jb2NvYS9NZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9NZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EubW0KaW5k
ZXggYTBlOTAyZjEyY2U3ZWIxN2M3NzZkNDNjMTM1Yzg1MzI2Yzc1Y2ZlMC4uOTZjZGZhYTM2MjFj
NWM5NjJkYTBlMDUzMDJkNGVhOWQ5Y2Q3MDg3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vY29jb2EvTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL01lZGlhU2Vzc2lvbk1hbmFnZXJDb2Nv
YS5tbQpAQCAtNDUyLDggKzQ1Miw4IEBAIHZvaWQgTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hOjp1
cGRhdGVOb3dQbGF5aW5nSW5mbygpCiAKICAgICBpZiAobV9ub3dQbGF5aW5nTWFuYWdlci0+c2V0
Tm93UGxheWluZ0luZm8oKm5vd1BsYXlpbmdJbmZvKSkgewogI2lmZGVmIExPR19ESVNBQkxFRAot
ICAgICAgICBTdHJpbmcgc3JjID0gInNyYyI7Ci0gICAgICAgIFN0cmluZyB0aXRsZSA9ICJ0aXRs
ZSI7CisgICAgICAgIFN0cmluZyBzcmMgPSAic3JjIl9zOworICAgICAgICBTdHJpbmcgdGl0bGUg
PSAidGl0bGUiX3M7CiAjZWxzZQogICAgICAgICBTdHJpbmcgc3JjID0gbm93UGxheWluZ0luZm8t
PmFydHdvcmsgPyBub3dQbGF5aW5nSW5mby0+YXJ0d29yay0+c3JjIDogU3RyaW5nKCk7CiAgICAg
ICAgIFN0cmluZyB0aXRsZSA9IG5vd1BsYXlpbmdJbmZvLT50aXRsZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL0tleUV2ZW50Q29jb2EubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jb2NvYS9LZXlFdmVudENvY29hLm1tCmluZGV4IGY0ZWVlNjVmMDk5M2I5
ZDRkOWJkNmZlOWVkYTdhZDBhNjE1MzczNTIuLjFjNWUyNDNjODUyYTM4NTA5Yzg5Y2M1OTE5Y2Zj
MTQyMDY3MTk5YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL0tl
eUV2ZW50Q29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvS2V5RXZl
bnRDb2NvYS5tbQpAQCAtMjIwLDcgKzIyMCw3IEBAIFN0cmluZyBrZXlJZGVudGlmaWVyRm9yQ2hh
ckNvZGUodW5pY2hhciBjaGFyQ29kZSkKIAogICAgICAgICAvLyAiQWx0IgogICAgICAgICBjYXNl
IE5TTWVudUZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJBbHQiOworICAgICAgICAg
ICAgcmV0dXJuICJBbHQiX3M7CiAKICAgICAgICAgLy8gIkFwcHMiCiAgICAgICAgIC8vICJCcm93
c2VyQmFjayIKQEAgLTIzMyw3ICsyMzMsNyBAQCBTdHJpbmcga2V5SWRlbnRpZmllckZvckNoYXJD
b2RlKHVuaWNoYXIgY2hhckNvZGUpCiAKICAgICAgICAgLy8gIkNsZWFyIgogICAgICAgICBjYXNl
IE5TQ2xlYXJMaW5lRnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkNsZWFyIjsKKyAg
ICAgICAgICAgIHJldHVybiAiQ2xlYXIiX3M7CiAKICAgICAgICAgLy8gIkNvZGVJbnB1dCIKICAg
ICAgICAgLy8gIkNvbXBvc2UiCkBAIC0yNDUsMTAwICsyNDUsMTAwIEBAIFN0cmluZyBrZXlJZGVu
dGlmaWVyRm9yQ2hhckNvZGUodW5pY2hhciBjaGFyQ29kZSkKIAogICAgICAgICAvLyAiRG93biIK
ICAgICAgICAgY2FzZSBOU0Rvd25BcnJvd0Z1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJu
ICJEb3duIjsKKyAgICAgICAgICAgIHJldHVybiAiRG93biJfczsKICAgICAgICAgLy8gIkVuZCIK
ICAgICAgICAgY2FzZSBOU0VuZEZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJFbmQi
OworICAgICAgICAgICAgcmV0dXJuICJFbmQiX3M7CiAgICAgICAgIC8vICJFbnRlciIKICAgICAg
ICAgY2FzZSAweDM6IGNhc2UgMHhBOiBjYXNlIDB4RDogLy8gTWFjaW50b3NoIGNhbGxzIHRoZSBv
bmUgb24gdGhlIG1haW4ga2V5Ym9hcmQgUmV0dXJuLCBidXQgV2luZG93cyBjYWxscyBpdCBFbnRl
ciwgc28gd2UnbGwgZG8gdGhlIHNhbWUgZm9yIHRoZSBET00KLSAgICAgICAgICAgIHJldHVybiAi
RW50ZXIiOworICAgICAgICAgICAgcmV0dXJuICJFbnRlciJfczsKIAogICAgICAgICAvLyAiRXJh
c2VFb2YiCiAKICAgICAgICAgLy8gIkV4ZWN1dGUiCiAgICAgICAgIGNhc2UgTlNFeGVjdXRlRnVu
Y3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkV4ZWN1dGUiOworICAgICAgICAgICAgcmV0
dXJuICJFeGVjdXRlIl9zOwogCiAgICAgICAgIC8vICJFeHNlbCIKIAogICAgICAgICAvLyAiRjEi
CiAgICAgICAgIGNhc2UgTlNGMUZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJGMSI7
CisgICAgICAgICAgICByZXR1cm4gIkYxIl9zOwogICAgICAgICAvLyAiRjIiCiAgICAgICAgIGNh
c2UgTlNGMkZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJGMiI7CisgICAgICAgICAg
ICByZXR1cm4gIkYyIl9zOwogICAgICAgICAvLyAiRjMiCiAgICAgICAgIGNhc2UgTlNGM0Z1bmN0
aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJGMyI7CisgICAgICAgICAgICByZXR1cm4gIkYz
Il9zOwogICAgICAgICAvLyAiRjQiCiAgICAgICAgIGNhc2UgTlNGNEZ1bmN0aW9uS2V5OgotICAg
ICAgICAgICAgcmV0dXJuICJGNCI7CisgICAgICAgICAgICByZXR1cm4gIkY0Il9zOwogICAgICAg
ICAvLyAiRjUiCiAgICAgICAgIGNhc2UgTlNGNUZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0
dXJuICJGNSI7CisgICAgICAgICAgICByZXR1cm4gIkY1Il9zOwogICAgICAgICAvLyAiRjYiCiAg
ICAgICAgIGNhc2UgTlNGNkZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJGNiI7Cisg
ICAgICAgICAgICByZXR1cm4gIkY2Il9zOwogICAgICAgICAvLyAiRjciCiAgICAgICAgIGNhc2Ug
TlNGN0Z1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJGNyI7CisgICAgICAgICAgICBy
ZXR1cm4gIkY3Il9zOwogICAgICAgICAvLyAiRjgiCiAgICAgICAgIGNhc2UgTlNGOEZ1bmN0aW9u
S2V5OgotICAgICAgICAgICAgcmV0dXJuICJGOCI7CisgICAgICAgICAgICByZXR1cm4gIkY4Il9z
OwogICAgICAgICAvLyAiRjkiCiAgICAgICAgIGNhc2UgTlNGOUZ1bmN0aW9uS2V5OgotICAgICAg
ICAgICAgcmV0dXJuICJGOSI7CisgICAgICAgICAgICByZXR1cm4gIkY5Il9zOwogICAgICAgICAv
LyAiRjEwIgogICAgICAgICBjYXNlIE5TRjEwRnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1
cm4gIkYxMCI7CisgICAgICAgICAgICByZXR1cm4gIkYxMCJfczsKICAgICAgICAgLy8gIkYxMSIK
ICAgICAgICAgY2FzZSBOU0YxMUZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJGMTEi
OworICAgICAgICAgICAgcmV0dXJuICJGMTEiX3M7CiAgICAgICAgIC8vICJGMTIiCiAgICAgICAg
IGNhc2UgTlNGMTJGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiRjEyIjsKKyAgICAg
ICAgICAgIHJldHVybiAiRjEyIl9zOwogICAgICAgICAvLyAiRjEzIgogICAgICAgICBjYXNlIE5T
RjEzRnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkYxMyI7CisgICAgICAgICAgICBy
ZXR1cm4gIkYxMyJfczsKICAgICAgICAgLy8gIkYxNCIKICAgICAgICAgY2FzZSBOU0YxNEZ1bmN0
aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJGMTQiOworICAgICAgICAgICAgcmV0dXJuICJG
MTQiX3M7CiAgICAgICAgIC8vICJGMTUiCiAgICAgICAgIGNhc2UgTlNGMTVGdW5jdGlvbktleToK
LSAgICAgICAgICAgIHJldHVybiAiRjE1IjsKKyAgICAgICAgICAgIHJldHVybiAiRjE1Il9zOwog
ICAgICAgICAvLyAiRjE2IgogICAgICAgICBjYXNlIE5TRjE2RnVuY3Rpb25LZXk6Ci0gICAgICAg
ICAgICByZXR1cm4gIkYxNiI7CisgICAgICAgICAgICByZXR1cm4gIkYxNiJfczsKICAgICAgICAg
Ly8gIkYxNyIKICAgICAgICAgY2FzZSBOU0YxN0Z1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0
dXJuICJGMTciOworICAgICAgICAgICAgcmV0dXJuICJGMTciX3M7CiAgICAgICAgIC8vICJGMTgi
CiAgICAgICAgIGNhc2UgTlNGMThGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiRjE4
IjsKKyAgICAgICAgICAgIHJldHVybiAiRjE4Il9zOwogICAgICAgICAvLyAiRjE5IgogICAgICAg
ICBjYXNlIE5TRjE5RnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkYxOSI7CisgICAg
ICAgICAgICByZXR1cm4gIkYxOSJfczsKICAgICAgICAgLy8gIkYyMCIKICAgICAgICAgY2FzZSBO
U0YyMEZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJGMjAiOworICAgICAgICAgICAg
cmV0dXJuICJGMjAiX3M7CiAgICAgICAgIC8vICJGMjEiCiAgICAgICAgIGNhc2UgTlNGMjFGdW5j
dGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiRjIxIjsKKyAgICAgICAgICAgIHJldHVybiAi
RjIxIl9zOwogICAgICAgICAvLyAiRjIyIgogICAgICAgICBjYXNlIE5TRjIyRnVuY3Rpb25LZXk6
Ci0gICAgICAgICAgICByZXR1cm4gIkYyMiI7CisgICAgICAgICAgICByZXR1cm4gIkYyMiJfczsK
ICAgICAgICAgLy8gIkYyMyIKICAgICAgICAgY2FzZSBOU0YyM0Z1bmN0aW9uS2V5OgotICAgICAg
ICAgICAgcmV0dXJuICJGMjMiOworICAgICAgICAgICAgcmV0dXJuICJGMjMiX3M7CiAgICAgICAg
IC8vICJGMjQiCiAgICAgICAgIGNhc2UgTlNGMjRGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJl
dHVybiAiRjI0IjsKKyAgICAgICAgICAgIHJldHVybiAiRjI0Il9zOwogCiAgICAgICAgIC8vICJG
aW5hbE1vZGUiCiAKICAgICAgICAgLy8gIkZpbmQiCiAgICAgICAgIGNhc2UgTlNGaW5kRnVuY3Rp
b25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkZpbmQiOworICAgICAgICAgICAgcmV0dXJuICJG
aW5kIl9zOwogCiAgICAgICAgIC8vICJGdWxsV2lkdGgiCiAgICAgICAgIC8vICJIYWxmV2lkdGgi
CkBAIC0zNDcsMTYgKzM0NywxNiBAQCBTdHJpbmcga2V5SWRlbnRpZmllckZvckNoYXJDb2RlKHVu
aWNoYXIgY2hhckNvZGUpCiAKICAgICAgICAgLy8gIkhlbHAiCiAgICAgICAgIGNhc2UgTlNIZWxw
RnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkhlbHAiOworICAgICAgICAgICAgcmV0
dXJuICJIZWxwIl9zOwogCiAgICAgICAgIC8vICJIaXJhZ2FuYSIKIAogICAgICAgICAvLyAiSG9t
ZSIKICAgICAgICAgY2FzZSBOU0hvbWVGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAi
SG9tZSI7CisgICAgICAgICAgICByZXR1cm4gIkhvbWUiX3M7CiAgICAgICAgIC8vICJJbnNlcnQi
CiAgICAgICAgIGNhc2UgTlNJbnNlcnRGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAi
SW5zZXJ0IjsKKyAgICAgICAgICAgIHJldHVybiAiSW5zZXJ0Il9zOwogCiAgICAgICAgIC8vICJK
YXBhbmVzZUhpcmFnYW5hIgogICAgICAgICAvLyAiSmFwYW5lc2VLYXRha2FuYSIKQEAgLTM3MSw3
ICszNzEsNyBAQCBTdHJpbmcga2V5SWRlbnRpZmllckZvckNoYXJDb2RlKHVuaWNoYXIgY2hhckNv
ZGUpCiAKICAgICAgICAgLy8gIkxlZnQiCiAgICAgICAgIGNhc2UgTlNMZWZ0QXJyb3dGdW5jdGlv
bktleToKLSAgICAgICAgICAgIHJldHVybiAiTGVmdCI7CisgICAgICAgICAgICByZXR1cm4gIkxl
ZnQiX3M7CiAKICAgICAgICAgLy8gIk1ldGEiCiAgICAgICAgIC8vICJNZWRpYU5leHRUcmFjayIK
QEAgLTM4MSw1OSArMzgxLDU5IEBAIFN0cmluZyBrZXlJZGVudGlmaWVyRm9yQ2hhckNvZGUodW5p
Y2hhciBjaGFyQ29kZSkKIAogICAgICAgICAvLyAiTW9kZUNoYW5nZSIKICAgICAgICAgY2FzZSBO
U01vZGVTd2l0Y2hGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiTW9kZUNoYW5nZSI7
CisgICAgICAgICAgICByZXR1cm4gIk1vZGVDaGFuZ2UiX3M7CiAKICAgICAgICAgLy8gIk5vbmNv
bnZlcnQiCiAgICAgICAgIC8vICJOdW1Mb2NrIgogCiAgICAgICAgIC8vICJQYWdlRG93biIKICAg
ICAgICAgY2FzZSBOU1BhZ2VEb3duRnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIlBh
Z2VEb3duIjsKKyAgICAgICAgICAgIHJldHVybiAiUGFnZURvd24iX3M7CiAgICAgICAgIC8vICJQ
YWdlVXAiCiAgICAgICAgIGNhc2UgTlNQYWdlVXBGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJl
dHVybiAiUGFnZVVwIjsKKyAgICAgICAgICAgIHJldHVybiAiUGFnZVVwIl9zOwogCiAgICAgICAg
IC8vICJQYXN0ZSIKIAogICAgICAgICAvLyAiUGF1c2UiCiAgICAgICAgIGNhc2UgTlNQYXVzZUZ1
bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJQYXVzZSI7CisgICAgICAgICAgICByZXR1
cm4gIlBhdXNlIl9zOwogCiAgICAgICAgIC8vICJQbGF5IgogICAgICAgICAvLyAiUHJldmlvdXND
YW5kaWRhdGUiCiAKICAgICAgICAgLy8gIlByaW50U2NyZWVuIgogICAgICAgICBjYXNlIE5TUHJp
bnRTY3JlZW5GdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiUHJpbnRTY3JlZW4iOwor
ICAgICAgICAgICAgcmV0dXJuICJQcmludFNjcmVlbiJfczsKIAogICAgICAgICAvLyAiUHJvY2Vz
cyIKICAgICAgICAgLy8gIlByb3BzIgogCiAgICAgICAgIC8vICJSaWdodCIKICAgICAgICAgY2Fz
ZSBOU1JpZ2h0QXJyb3dGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiUmlnaHQiOwor
ICAgICAgICAgICAgcmV0dXJuICJSaWdodCJfczsKIAogICAgICAgICAvLyAiUm9tYW5DaGFyYWN0
ZXJzIgogCiAgICAgICAgIC8vICJTY3JvbGwiCiAgICAgICAgIGNhc2UgTlNTY3JvbGxMb2NrRnVu
Y3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIlNjcm9sbCI7CisgICAgICAgICAgICByZXR1
cm4gIlNjcm9sbCJfczsKICAgICAgICAgLy8gIlNlbGVjdCIKICAgICAgICAgY2FzZSBOU1NlbGVj
dEZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJTZWxlY3QiOworICAgICAgICAgICAg
cmV0dXJuICJTZWxlY3QiX3M7CiAKICAgICAgICAgLy8gIlNlbGVjdE1lZGlhIgogICAgICAgICAv
LyAiU2hpZnQiCiAKICAgICAgICAgLy8gIlN0b3AiCiAgICAgICAgIGNhc2UgTlNTdG9wRnVuY3Rp
b25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIlN0b3AiOworICAgICAgICAgICAgcmV0dXJuICJT
dG9wIl9zOwogICAgICAgICAvLyAiVXAiCiAgICAgICAgIGNhc2UgTlNVcEFycm93RnVuY3Rpb25L
ZXk6Ci0gICAgICAgICAgICByZXR1cm4gIlVwIjsKKyAgICAgICAgICAgIHJldHVybiAiVXAiX3M7
CiAgICAgICAgIC8vICJVbmRvIgogICAgICAgICBjYXNlIE5TVW5kb0Z1bmN0aW9uS2V5OgotICAg
ICAgICAgICAgcmV0dXJuICJVbmRvIjsKKyAgICAgICAgICAgIHJldHVybiAiVW5kbyJfczsKIAog
ICAgICAgICAvLyAiVm9sdW1lRG93biIKICAgICAgICAgLy8gIlZvbHVtZU11dGUiCkBAIC00NDMs
MzggKzQ0MywzOCBAQCBTdHJpbmcga2V5SWRlbnRpZmllckZvckNoYXJDb2RlKHVuaWNoYXIgY2hh
ckNvZGUpCiAKICAgICAgICAgLy8gTW9yZSBmdW5jdGlvbiBrZXlzLCBub3QgaW4gdGhlIGtleSBp
ZGVudGlmaWVyIHNwZWNpZmljYXRpb24uCiAgICAgICAgIGNhc2UgTlNGMjVGdW5jdGlvbktleToK
LSAgICAgICAgICAgIHJldHVybiAiRjI1IjsKKyAgICAgICAgICAgIHJldHVybiAiRjI1Il9zOwog
ICAgICAgICBjYXNlIE5TRjI2RnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkYyNiI7
CisgICAgICAgICAgICByZXR1cm4gIkYyNiJfczsKICAgICAgICAgY2FzZSBOU0YyN0Z1bmN0aW9u
S2V5OgotICAgICAgICAgICAgcmV0dXJuICJGMjciOworICAgICAgICAgICAgcmV0dXJuICJGMjci
X3M7CiAgICAgICAgIGNhc2UgTlNGMjhGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAi
RjI4IjsKKyAgICAgICAgICAgIHJldHVybiAiRjI4Il9zOwogICAgICAgICBjYXNlIE5TRjI5RnVu
Y3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkYyOSI7CisgICAgICAgICAgICByZXR1cm4g
IkYyOSJfczsKICAgICAgICAgY2FzZSBOU0YzMEZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0
dXJuICJGMzAiOworICAgICAgICAgICAgcmV0dXJuICJGMzAiX3M7CiAgICAgICAgIGNhc2UgTlNG
MzFGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiRjMxIjsKKyAgICAgICAgICAgIHJl
dHVybiAiRjMxIl9zOwogICAgICAgICBjYXNlIE5TRjMyRnVuY3Rpb25LZXk6Ci0gICAgICAgICAg
ICByZXR1cm4gIkYzMiI7CisgICAgICAgICAgICByZXR1cm4gIkYzMiJfczsKICAgICAgICAgY2Fz
ZSBOU0YzM0Z1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJGMzMiOworICAgICAgICAg
ICAgcmV0dXJuICJGMzMiX3M7CiAgICAgICAgIGNhc2UgTlNGMzRGdW5jdGlvbktleToKLSAgICAg
ICAgICAgIHJldHVybiAiRjM0IjsKKyAgICAgICAgICAgIHJldHVybiAiRjM0Il9zOwogICAgICAg
ICBjYXNlIE5TRjM1RnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkYzNSI7CisgICAg
ICAgICAgICByZXR1cm4gIkYzNSJfczsKIAogICAgICAgICAvLyBUdXJuIDB4N0YgaW50byAweDA4
LCBiZWNhdXNlIGJhY2tzcGFjZSBuZWVkcyB0byBhbHdheXMgYmUgMHgwOC4KICAgICAgICAgY2Fz
ZSAweDdGOgotICAgICAgICAgICAgcmV0dXJuICJVKzAwMDgiOworICAgICAgICAgICAgcmV0dXJu
ICJVKzAwMDgiX3M7CiAgICAgICAgIC8vIFN0YW5kYXJkIHNheXMgdGhhdCBERUwgYmVjb21lcyBV
KzAwN0YuCiAgICAgICAgIGNhc2UgTlNEZWxldGVGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJl
dHVybiAiVSswMDdGIjsKKyAgICAgICAgICAgIHJldHVybiAiVSswMDdGIl9zOwogCiAgICAgICAg
IC8vIEFsd2F5cyB1c2UgMHgwOSBmb3IgdGFiIGluc3RlYWQgb2YgQXBwS2l0J3MgYmFja3RhYiBj
aGFyYWN0ZXIuCiAgICAgICAgIGNhc2UgTlNCYWNrVGFiQ2hhcmFjdGVyOgotICAgICAgICAgICAg
cmV0dXJuICJVKzAwMDkiOworICAgICAgICAgICAgcmV0dXJuICJVKzAwMDkiX3M7CiAKICAgICAg
ICAgY2FzZSBOU0JlZ2luRnVuY3Rpb25LZXk6CiAgICAgICAgIGNhc2UgTlNCcmVha0Z1bmN0aW9u
S2V5OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvUGFzdGVib2Fy
ZENvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvUGFzdGVib2FyZENvY29h
Lm1tCmluZGV4IDA2OTYxZmJhNDhhZDkxYjQyM2JjYTk4NWI2YzJlNWM2MjEwMWZjMmYuLjU5ODQy
ZjEyNjljNWI1ZWRmMDk1YmQ5Y2I4ZWUzMzI2ZDY4N2FlMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Bhc3RlYm9hcmRDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jb2NvYS9QYXN0ZWJvYXJkQ29jb2EubW0KQEAgLTEwNCwyNSArMTA0LDI1
IEBAIHN0YXRpYyBjb25zdCBjaGFyKiBpbWFnZVR5cGVUb01JTUVUeXBlKEltYWdlVHlwZSB0eXBl
KQogICAgIH0KIH0KIAotc3RhdGljIGNvbnN0IGNoYXIqIGltYWdlVHlwZVRvRmFrZUZpbGVuYW1l
KEltYWdlVHlwZSB0eXBlKQorc3RhdGljIEFTQ0lJTGl0ZXJhbCBpbWFnZVR5cGVUb0Zha2VGaWxl
bmFtZShJbWFnZVR5cGUgdHlwZSkKIHsKICAgICBzd2l0Y2ggKHR5cGUpIHsKICAgICBjYXNlIElt
YWdlVHlwZTo6SW52YWxpZDoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAg
IHJldHVybiBudWxscHRyOworICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsOjpudWxsKCk7CiAg
ICAgY2FzZSBJbWFnZVR5cGU6OlRJRkY6CiAjaWYgUExBVEZPUk0oTUFDKQotICAgICAgICByZXR1
cm4gImltYWdlLnBuZyI7IC8vIEZvciBXZWIgY29tcGF0aWJpbGl0eSwgd2UgcHJldGVuZCB0byBo
YXZlIFBORyBpbnN0ZWFkLgorICAgICAgICByZXR1cm4gImltYWdlLnBuZyJfczsgLy8gRm9yIFdl
YiBjb21wYXRpYmlsaXR5LCB3ZSBwcmV0ZW5kIHRvIGhhdmUgUE5HIGluc3RlYWQuCiAjZWxzZQog
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Cisg
ICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWw6Om51bGwoKTsKICNlbmRpZgogICAgIGNhc2UgSW1h
Z2VUeXBlOjpQTkc6Ci0gICAgICAgIHJldHVybiAiaW1hZ2UucG5nIjsKKyAgICAgICAgcmV0dXJu
ICJpbWFnZS5wbmciX3M7CiAgICAgY2FzZSBJbWFnZVR5cGU6OkpQRUc6Ci0gICAgICAgIHJldHVy
biAiaW1hZ2UuanBlZyI7CisgICAgICAgIHJldHVybiAiaW1hZ2UuanBlZyJfczsKICAgICBjYXNl
IEltYWdlVHlwZTo6R0lGOgotICAgICAgICByZXR1cm4gImltYWdlLmdpZiI7CisgICAgICAgIHJl
dHVybiAiaW1hZ2UuZ2lmIl9zOwogICAgIH0KIH0KIApAQCAtMjM0LDcgKzIzNCw3IEBAIHZvaWQg
UGFzdGVib2FyZDo6cmVhZChQYXN0ZWJvYXJkRmlsZVJlYWRlciYgcmVhZGVyLCBzdGQ6Om9wdGlv
bmFsPHNpemVfdD4gaXRlbUluCiAgICAgICAgIGZvciAoYXV0byBjb2NvYVR5cGUgOiBpbmZvLnBs
YXRmb3JtVHlwZXNCeUZpZGVsaXR5KSB7CiAgICAgICAgICAgICBhdXRvIGltYWdlVHlwZSA9IGNv
Y29hVHlwZVRvSW1hZ2VUeXBlKGNvY29hVHlwZSk7CiAgICAgICAgICAgICBhdXRvKiBtaW1lVHlw
ZSA9IGltYWdlVHlwZVRvTUlNRVR5cGUoaW1hZ2VUeXBlKTsKLSAgICAgICAgICAgIGlmICghbWlt
ZVR5cGUgfHwgIXJlYWRlci5zaG91bGRSZWFkQnVmZmVyKG1pbWVUeXBlKSkKKyAgICAgICAgICAg
IGlmICghbWltZVR5cGUgfHwgIXJlYWRlci5zaG91bGRSZWFkQnVmZmVyKFN0cmluZyB7IG1pbWVU
eXBlIH0pKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgYXV0byBidWZm
ZXIgPSByZWFkQnVmZmVyKGl0ZW1JbmRleCwgY29jb2FUeXBlKTsKICNpZiBQTEFURk9STShNQUMp
CkBAIC0yNDIsNyArMjQyLDcgQEAgdm9pZCBQYXN0ZWJvYXJkOjpyZWFkKFBhc3RlYm9hcmRGaWxl
UmVhZGVyJiByZWFkZXIsIHN0ZDo6b3B0aW9uYWw8c2l6ZV90PiBpdGVtSW4KICAgICAgICAgICAg
ICAgICBidWZmZXIgPSBjb252ZXJ0VElGRlRvUE5HKGJ1ZmZlci5yZWxlYXNlTm9uTnVsbCgpKTsK
ICNlbmRpZgogICAgICAgICAgICAgaWYgKGJ1ZmZlcikgewotICAgICAgICAgICAgICAgIHJlYWRl
ci5yZWFkQnVmZmVyKGltYWdlVHlwZVRvRmFrZUZpbGVuYW1lKGltYWdlVHlwZSksIG1pbWVUeXBl
LCBidWZmZXIucmVsZWFzZU5vbk51bGwoKSk7CisgICAgICAgICAgICAgICAgcmVhZGVyLnJlYWRC
dWZmZXIoaW1hZ2VUeXBlVG9GYWtlRmlsZW5hbWUoaW1hZ2VUeXBlKSwgU3RyaW5nIHsgbWltZVR5
cGUgfSwgYnVmZmVyLnJlbGVhc2VOb25OdWxsKCkpOwogICAgICAgICAgICAgICAgIGJyZWFrOwog
ICAgICAgICAgICAgfQogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jb2NvYS9QYXN0ZWJvYXJkQ3VzdG9tRGF0YUNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY29jb2EvUGFzdGVib2FyZEN1c3RvbURhdGFDb2NvYS5tbQppbmRleCAyNjIxMjg0
NGYyMTA0YTc3N2NmNjU1NmQ3NWE2ZTVjYWVjOTczZGU4Li4zZGU1MGEwZTkyYzI5MDRjMTllYjZk
ZWJkYTcxNjgyZWZiNmQ2NzUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
b2NvYS9QYXN0ZWJvYXJkQ3VzdG9tRGF0YUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2NvY29hL1Bhc3RlYm9hcmRDdXN0b21EYXRhQ29jb2EubW0KQEAgLTMwLDkgKzMwLDkg
QEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jb25zdCBjaGFyKiBQYXN0ZWJvYXJkQ3VzdG9t
RGF0YTo6Y29jb2FUeXBlKCkKK0FTQ0lJTGl0ZXJhbCBQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29j
b2FUeXBlKCkKIHsKLSAgICByZXR1cm4gImNvbS5hcHBsZS5XZWJLaXQuY3VzdG9tLXBhc3RlYm9h
cmQtZGF0YSI7CisgICAgcmV0dXJuICJjb20uYXBwbGUuV2ViS2l0LmN1c3RvbS1wYXN0ZWJvYXJk
LWRhdGEiX3M7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvdXJDQy5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvRm91ckNDLmgKaW5kZXggYjM3ZDA1MGU5YzBjMzY3NzA3ZGFlMGI2YWNj
YjFiYzM3ZjhlYWMxMy4uNjZmYjNkZTA3MTE1MTMwNjc4OGRjMTI2YzIzZjRiYzg2MTI1ODM2NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm91ckNDLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm91ckNDLmgKQEAgLTg1LDcgKzg1
LDcgQEAgbmFtZXNwYWNlIFdURiB7CiB0ZW1wbGF0ZTx0eXBlbmFtZT4gc3RydWN0IExvZ0FyZ3Vt
ZW50OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBMb2dBcmd1bWVudDxXZWJDb3JlOjpGb3VyQ0M+IHsK
LSAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGNvbnN0IFdlYkNvcmU6OkZvdXJDQyYgY29kZSkg
eyByZXR1cm4gY29kZS5zdHJpbmcoKS5kYXRhKCk7IH0KKyAgICBzdGF0aWMgU3RyaW5nIHRvU3Ry
aW5nKGNvbnN0IFdlYkNvcmU6OkZvdXJDQyYgY29kZSkgeyByZXR1cm4gU3RyaW5nIHsgY29kZS5z
dHJpbmcoKS5kYXRhKCkgfTsgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRH
TEFOR0xFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBo
aWNzQ29udGV4dEdMQU5HTEUuY3BwCmluZGV4IGNjMjljZmI0NjczYzY2MjExZGUxYTQxZWUyYmY2
YTJlOGJhMTFmZDUuLmUyYzk2MTVkZDRhZjhlNTEyN2E5MTRmMTA3ODk0MjZiZjVlYzBkZDkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNz
Q29udGV4dEdMQU5HTEUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2FuZ2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEUuY3BwCkBAIC01MTAsOCArNTEwLDkgQEAgdm9p
ZCBHcmFwaGljc0NvbnRleHRHTEFOR0xFOjp2YWxpZGF0ZURlcHRoU3RlbmNpbChjb25zdCBjaGFy
KiBwYWNrZWREZXB0aFN0ZW5jaWwKICAgICAvLyBGSVhNRTogU2luY2UgdGhlIGNvbnN0cnVjdG9y
cyBvZiB2YXJpb3VzIHBsYXRmb3JtcyBhcmUgbm90IHNoYXJlZCwgd2UgaW5pdGlhbGl6ZSB0aGlz
IGhlcmUuCiAgICAgLy8gVXBvbiBjb25zdHJ1Y3RpbmcgdGhlIGNvbnRleHQsIGFsd2F5cyBpbml0
aWFsaXplIHRoZSBleHRlbnNpb25zIHRoYXQgdGhlIFdlYkdMUmVuZGVyaW5nQ29udGV4dCogd2ls
bAogICAgIC8vIHVzZSB0byB0dXJuIG9uIGZlYXR1cmUgZmxhZ3MuCi0gICAgaWYgKHN1cHBvcnRz
RXh0ZW5zaW9uKHBhY2tlZERlcHRoU3RlbmNpbEV4dGVuc2lvbikpIHsKLSAgICAgICAgZW5zdXJl
RXh0ZW5zaW9uRW5hYmxlZChwYWNrZWREZXB0aFN0ZW5jaWxFeHRlbnNpb24pOworICAgIFN0cmlu
ZyBwYWNrZWREZXB0aFN0ZW5jaWxFeHRlbnNpb25TdHJpbmcgeyBwYWNrZWREZXB0aFN0ZW5jaWxF
eHRlbnNpb24gfTsKKyAgICBpZiAoc3VwcG9ydHNFeHRlbnNpb24ocGFja2VkRGVwdGhTdGVuY2ls
RXh0ZW5zaW9uU3RyaW5nKSkgeworICAgICAgICBlbnN1cmVFeHRlbnNpb25FbmFibGVkKHBhY2tl
ZERlcHRoU3RlbmNpbEV4dGVuc2lvblN0cmluZyk7CiAgICAgICAgIG1faW50ZXJuYWxEZXB0aFN0
ZW5jaWxGb3JtYXQgPSBHTF9ERVBUSDI0X1NURU5DSUw4X09FUzsKICAgICB9IGVsc2UKICAgICAg
ICAgbV9pbnRlcm5hbERlcHRoU3RlbmNpbEZvcm1hdCA9IEdMX0RFUFRIX0NPTVBPTkVOVDE2OwpA
QCAtNTI4LDE3ICs1MjksMTcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHRHTEFOR0xFOjp2YWxpZGF0
ZURlcHRoU3RlbmNpbChjb25zdCBjaGFyKiBwYWNrZWREZXB0aFN0ZW5jaWwKIAogICAgIGlmIChh
dHRycy5hbnRpYWxpYXMpIHsKICAgICAgICAgLy8gRklYTUU6IG11c3QgYWRqdXN0IHRoaXMgd2hl
biB1cGdyYWRpbmcgdG8gV2ViR0wgMi4wIC8gT3BlbkdMIEVTIDMuMCBzdXBwb3J0LgotICAgICAg
ICBpZiAoIXN1cHBvcnRzRXh0ZW5zaW9uKCJHTF9BTkdMRV9mcmFtZWJ1ZmZlcl9tdWx0aXNhbXBs
ZSIpIHx8ICFzdXBwb3J0c0V4dGVuc2lvbigiR0xfQU5HTEVfZnJhbWVidWZmZXJfYmxpdCIpIHx8
ICFzdXBwb3J0c0V4dGVuc2lvbigiR0xfT0VTX3JnYjhfcmdiYTgiKSkgeworICAgICAgICBpZiAo
IXN1cHBvcnRzRXh0ZW5zaW9uKCJHTF9BTkdMRV9mcmFtZWJ1ZmZlcl9tdWx0aXNhbXBsZSJfcykg
fHwgIXN1cHBvcnRzRXh0ZW5zaW9uKCJHTF9BTkdMRV9mcmFtZWJ1ZmZlcl9ibGl0Il9zKSB8fCAh
c3VwcG9ydHNFeHRlbnNpb24oIkdMX09FU19yZ2I4X3JnYmE4Il9zKSkgewogICAgICAgICAgICAg
YXR0cnMuYW50aWFsaWFzID0gZmFsc2U7CiAgICAgICAgICAgICBzZXRDb250ZXh0QXR0cmlidXRl
cyhhdHRycyk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBlbnN1cmVFeHRlbnNpb25F
bmFibGVkKCJHTF9BTkdMRV9mcmFtZWJ1ZmZlcl9tdWx0aXNhbXBsZSIpOwotICAgICAgICAgICAg
ZW5zdXJlRXh0ZW5zaW9uRW5hYmxlZCgiR0xfQU5HTEVfZnJhbWVidWZmZXJfYmxpdCIpOwotICAg
ICAgICAgICAgZW5zdXJlRXh0ZW5zaW9uRW5hYmxlZCgiR0xfT0VTX3JnYjhfcmdiYTgiKTsKKyAg
ICAgICAgICAgIGVuc3VyZUV4dGVuc2lvbkVuYWJsZWQoIkdMX0FOR0xFX2ZyYW1lYnVmZmVyX211
bHRpc2FtcGxlIl9zKTsKKyAgICAgICAgICAgIGVuc3VyZUV4dGVuc2lvbkVuYWJsZWQoIkdMX0FO
R0xFX2ZyYW1lYnVmZmVyX2JsaXQiX3MpOworICAgICAgICAgICAgZW5zdXJlRXh0ZW5zaW9uRW5h
YmxlZCgiR0xfT0VTX3JnYjhfcmdiYTgiX3MpOwogICAgICAgICB9CiAgICAgfSBlbHNlIGlmIChh
dHRycy5wcmVzZXJ2ZURyYXdpbmdCdWZmZXIpIHsKICAgICAgICAgLy8gTmVlZGVkIGZvciBwcmVz
ZXJ2ZURyYXdpbmdCdWZmZXI6dHJ1ZSBzdXBwb3J0IHdpdGhvdXQgYW50aWFsaWFzaW5nLgotICAg
ICAgICBlbnN1cmVFeHRlbnNpb25FbmFibGVkKCJHTF9BTkdMRV9mcmFtZWJ1ZmZlcl9ibGl0Iik7
CisgICAgICAgIGVuc3VyZUV4dGVuc2lvbkVuYWJsZWQoIkdMX0FOR0xFX2ZyYW1lYnVmZmVyX2Js
aXQiX3MpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL0NETVByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQ0RNUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQy5tbQppbmRleCAyZGFmOGVhYWM5MDhjZWJiYjk0ZGEzMzA2NDRhNWU3
NzE3YjM2NzM5Li5hZWEyZThhYjk5MDE5NTgyZTRkZDQ5MzhlMjAzN2YwMjA2NWQyNDI4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQ0RN
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQ0RNUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQpA
QCAtNDYsNyArNDYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGF1dG8gQ0RNUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQzo6cGFyc2VLZXlTeXN0ZW0oY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0p
IC0+IHN0ZDo6b3B0aW9uYWw8S2V5U3lzdGVtUGFyYW1ldGVycz4KIHsKLSAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8UmVndWxhckV4cHJlc3Npb24+IGtleVN5c3RlbVJFKCJeY29tXFwuYXBwbGVc
XC5mcHNcXC5bMjNdX1xcZCsoPzosXFxkKykqJCIsIEpTQzo6WWFycjo6VGV4dENhc2VJbnNlbnNp
dGl2ZSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJlZ3VsYXJFeHByZXNzaW9uPiBrZXlT
eXN0ZW1SRSgiXmNvbVxcLmFwcGxlXFwuZnBzXFwuWzIzXV9cXGQrKD86LFxcZCspKiQiX3MsIEpT
Qzo6WWFycjo6VGV4dENhc2VJbnNlbnNpdGl2ZSk7CiAKICAgICBpZiAoa2V5U3lzdGVtUkUuZ2V0
KCkubWF0Y2goa2V5U3lzdGVtKSA8IDApCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
TWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgK
aW5kZXggYTgxYjhlMjI2OWE2OGI0MzZhNTMyNjA1NWJlMGZhZjEwNTcwMmMyMS4uMDEzMmEyZjg0
NzhhNmRlYTk3ZThlYjlkN2NjNzZjMGFjNWVkZjY0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91
bmRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaApAQCAtMzExLDcgKzMxMSw3IEBA
IHByb3RlY3RlZDoKICAgICBNZWRpYVBsYXllciogcGxheWVyKCkgeyByZXR1cm4gbV9wbGF5ZXI7
IH0KICAgICBjb25zdCBNZWRpYVBsYXllciogcGxheWVyKCkgY29uc3QgeyByZXR1cm4gbV9wbGF5
ZXI7IH0KIAotICAgIFN0cmluZyBlbmdpbmVEZXNjcmlwdGlvbigpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuICJBVkZvdW5kYXRpb24iOyB9CisgICAgU3RyaW5nIGVuZ2luZURlc2NyaXB0aW9uKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIkFWRm91bmRhdGlvbiJfczsgfQogICAgIGxvbmcgcGxh
dGZvcm1FcnJvckNvZGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBhc3NldEVycm9yQ29kZSgp
OyB9CiAKICAgICB2b2lkIHRyYWNrTW9kZUNoYW5nZWQoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETUlu
c3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWlu
Z0FWRk9iakMubW0KaW5kZXggMjFhMjc5OTJkMjI3MDk4OTlkMGQzZWI2MGI1OGRmY2UyY2FkMGMw
YS4uMjZkY2JmYzU3ZDQ5YWVhNTdiZjM2M2UwZTc3NmRhZmVmYzk0ZTA2ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNSW5z
dGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVh
bWluZ0FWRk9iakMubW0KQEAgLTM5OCw3ICszOTgsNyBAQCB2b2lkIENETUluc3RhbmNlRmFpclBs
YXlTdHJlYW1pbmdBVkZPYmpDOjpzZXRTdG9yYWdlRGlyZWN0b3J5KGNvbnN0IFN0cmluZyYgc3Rv
cgogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgYXV0byBzdG9yYWdlUGF0aCA9IEZpbGVT
eXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChzdG9yYWdlRGlyZWN0b3J5LCAiU2VjdXJl
U3RvcC5wbGlzdCIpOworICAgIGF1dG8gc3RvcmFnZVBhdGggPSBGaWxlU3lzdGVtOjpwYXRoQnlB
cHBlbmRpbmdDb21wb25lbnQoc3RvcmFnZURpcmVjdG9yeSwgIlNlY3VyZVN0b3AucGxpc3QiX3Mp
OwogCiAgICAgYXV0byBmaWxlVHlwZSA9IEZpbGVTeXN0ZW06OmZpbGVUeXBlRm9sbG93aW5nU3lt
bGlua3Moc3RvcmFnZURpcmVjdG9yeSk7CiAgICAgaWYgKCFmaWxlVHlwZSkgewpAQCAtODkxLDcg
Kzg5MSw3IEBAIHZvaWQgQ0RNSW5zdGFuY2VTZXNzaW9uRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpD
Ojp1cGRhdGVMaWNlbnNlKGNvbnN0IFN0cmluZyYsIExpCiAgICAgICAgICAgICBpZiAoIW9iamVj
dCkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAgICAgICAgIGF1dG8ga2V5
SURTdHJpbmcgPSBvYmplY3QtPmdldFN0cmluZygia2V5SUQiKTsKKyAgICAgICAgICAgIGF1dG8g
a2V5SURTdHJpbmcgPSBvYmplY3QtPmdldFN0cmluZygia2V5SUQiX3MpOwogICAgICAgICAgICAg
aWYgKCFrZXlJRFN0cmluZykKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKQEAgLTkx
MSw4ICs5MTEsOCBAQCB2b2lkIENETUluc3RhbmNlU2Vzc2lvbkZhaXJQbGF5U3RyZWFtaW5nQVZG
T2JqQzo6dXBkYXRlTGljZW5zZShjb25zdCBTdHJpbmcmLCBMaQogCiAgICAgICAgICAgICBhdXRv
JiByZXF1ZXN0ID0gbV9jdXJyZW50UmVxdWVzdC52YWx1ZSgpLnJlcXVlc3RzW2ZvdW5kSW5kZXhd
OwogCi0gICAgICAgICAgICBhdXRvIHBheWxvYWRGaW5kUmVzdWx0cyA9IG9iamVjdC0+ZmluZCgi
cGF5bG9hZCIpOwotICAgICAgICAgICAgYXV0byBlcnJvckZpbmRSZXN1bHRzID0gb2JqZWN0LT5m
aW5kKCJlcnJvciIpOworICAgICAgICAgICAgYXV0byBwYXlsb2FkRmluZFJlc3VsdHMgPSBvYmpl
Y3QtPmZpbmQoInBheWxvYWQiX3MpOworICAgICAgICAgICAgYXV0byBlcnJvckZpbmRSZXN1bHRz
ID0gb2JqZWN0LT5maW5kKCJlcnJvciJfcyk7CiAgICAgICAgICAgICBib29sIGhhc1BheWxvYWQg
PSBwYXlsb2FkRmluZFJlc3VsdHMgIT0gb2JqZWN0LT5lbmQoKTsKICAgICAgICAgICAgIGJvb2wg
aGFzRXJyb3IgPSBlcnJvckZpbmRSZXN1bHRzICE9IG9iamVjdC0+ZW5kKCk7CiAKQEAgLTEyNTMs
OCArMTI1Myw4IEBAIHZvaWQgQ0RNSW5zdGFuY2VTZXNzaW9uRmFpclBsYXlTdHJlYW1pbmdBVkZP
YmpDOjpkaWRQcm92aWRlUmVxdWVzdHMoVmVjdG9yPFJldGFpCiAgICAgICAgICAgICBhdXRvIGVu
dHJ5ID0gSlNPTjo6T2JqZWN0OjpjcmVhdGUoKTsKICAgICAgICAgICAgIGF1dG8mIGtleUlEID0g
cmVxdWVzdERhdGEuZmlyc3Q7CiAgICAgICAgICAgICBhdXRvJiBwYXlsb2FkID0gcmVxdWVzdERh
dGEuc2Vjb25kOwotICAgICAgICAgICAgZW50cnktPnNldFN0cmluZygia2V5SUQiLCBiYXNlNjRF
bmNvZGVUb1N0cmluZyhrZXlJRC0+bWFrZUNvbnRpZ3VvdXMoKS0+ZGF0YSgpLCBrZXlJRC0+c2l6
ZSgpKSk7Ci0gICAgICAgICAgICBlbnRyeS0+c2V0U3RyaW5nKCJwYXlsb2FkIiwgYmFzZTY0RW5j
b2RlVG9TdHJpbmcocGF5bG9hZC5nZXQoKS5ieXRlcywgcGF5bG9hZC5nZXQoKS5sZW5ndGgpKTsK
KyAgICAgICAgICAgIGVudHJ5LT5zZXRTdHJpbmcoImtleUlEIl9zLCBiYXNlNjRFbmNvZGVUb1N0
cmluZyhrZXlJRC0+bWFrZUNvbnRpZ3VvdXMoKS0+ZGF0YSgpLCBrZXlJRC0+c2l6ZSgpKSk7Cisg
ICAgICAgICAgICBlbnRyeS0+c2V0U3RyaW5nKCJwYXlsb2FkIl9zLCBiYXNlNjRFbmNvZGVUb1N0
cmluZyhwYXlsb2FkLmdldCgpLmJ5dGVzLCBwYXlsb2FkLmdldCgpLmxlbmd0aCkpOwogICAgICAg
ICAgICAgcmVxdWVzdEpTT04tPnB1c2hPYmplY3QoV1RGTW92ZShlbnRyeSkpOwogICAgICAgICB9
CiAgICAgICAgIGF1dG8gcmVxdWVzdEJ1ZmZlciA9IHV0ZjhCdWZmZXIocmVxdWVzdEpTT04tPnRv
SlNPTlN0cmluZygpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMubW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNz
aW9uTWVkaWFTb3VyY2VBVkZPYmpDLm1tCmluZGV4IDI4NmE1YTQ4ODdlOGQ5NTYwMGU3YzhiYWMz
YWZiZTY2NzYxNjA1NTQuLmEwYzZhM2U1MjZjYWNhNGFkMWM3ODhlM2MyMjJlOGE0ZTUxYzI0ZmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL0NETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbk1lZGlhU291
cmNlQVZGT2JqQy5tbQpAQCAtMTEzLDcgKzExMyw3IEBAIFN0cmluZyBDRE1TZXNzaW9uTWVkaWFT
b3VyY2VBVkZPYmpDOjpzdG9yYWdlUGF0aCgpIGNvbnN0CiAgICAgaWYgKHN0b3JhZ2VEaXJlY3Rv
cnkuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKIAotICAgIHJldHVy
biBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoc3RvcmFnZURpcmVjdG9yeSwg
IlNlY3VyZVN0b3AucGxpc3QiKTsKKyAgICByZXR1cm4gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5k
aW5nQ29tcG9uZW50KHN0b3JhZ2VEaXJlY3RvcnksICJTZWN1cmVTdG9wLnBsaXN0Il9zKTsKIH0K
IAogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCmlu
ZGV4IDA5OTdkNzhiNjZiNTRlMTU5NjVmNmI4ZjY1ZmFkY2MzY2ZhMzkzZjIuLjllZDAyMzYzMzYw
OTg3ZGUyMTYzZGIwZGYzMzE5MGU3YzgxMjQ1MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMu
bW0KQEAgLTEwOTYsNyArMTA5Niw3IEBAIEFWU3RyZWFtU2Vzc2lvbiogTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpzdHJlYW1TZXNzaW9uKCkKICAgICAgICAgICAgICAgICBy
ZXR1cm4gbmlsOwogICAgICAgICB9CiAKLSAgICAgICAgU3RyaW5nIHN0b3JhZ2VQYXRoID0gRmls
ZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KHN0b3JhZ2VEaXJlY3RvcnksICJTZWN1
cmVTdG9wLnBsaXN0Iik7CisgICAgICAgIFN0cmluZyBzdG9yYWdlUGF0aCA9IEZpbGVTeXN0ZW06
OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChzdG9yYWdlRGlyZWN0b3J5LCAiU2VjdXJlU3RvcC5w
bGlzdCJfcyk7CiAgICAgICAgIG1fc3RyZWFtU2Vzc2lvbiA9IGFkb3B0TlMoW1BBTDo6YWxsb2NB
VlN0cmVhbVNlc3Npb25JbnN0YW5jZSgpIGluaXRXaXRoU3RvcmFnZURpcmVjdG9yeUF0VVJMOltO
U1VSTCBmaWxlVVJMV2l0aFBhdGg6c3RvcmFnZVBhdGhdXSk7CiAgICAgfQogICAgIHJldHVybiBt
X3N0cmVhbVNlc3Npb24uZ2V0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1Nv
dXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tCmluZGV4IDZiYTZiOWJmMTJhZDNjOWYzODkwN2My
ZmQzNmZlODdhNTUzYjJhNDQuLjBlOGVhNjRmMDgzOGU2MmFkZTVjZjg5NzJjYWQxODlhYzU1ZDM1
NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZh
dGVBVkZPYmpDLm1tCkBAIC02MDAsNyArNjAwLDcgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRl
QVZGT2JqQzo6ZGlkUHJvdmlkZUNvbnRlbnRLZXlSZXF1ZXN0SW5pdGlhbGl6YXRpb25EYXRhRm8K
ICAgICB9CiAKICAgICBtX2tleUlEcyA9IFdURk1vdmUoa2V5SURzLnZhbHVlKCkpOwotICAgIHBs
YXllci0+aW5pdGlhbGl6YXRpb25EYXRhRW5jb3VudGVyZWQoInNpbmYiLCBtX2luaXREYXRhLT50
cnlDcmVhdGVBcnJheUJ1ZmZlcigpKTsKKyAgICBwbGF5ZXItPmluaXRpYWxpemF0aW9uRGF0YUVu
Y291bnRlcmVkKCJzaW5mIl9zLCBtX2luaXREYXRhLT50cnlDcmVhdGVBcnJheUJ1ZmZlcigpKTsK
IAogICAgIG1fd2FpdGluZ0ZvcktleSA9IHRydWU7CiAgICAgcGxheWVyLT53YWl0aW5nRm9yS2V5
Q2hhbmdlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1BsYXRm
b3JtUGFzdGVib2FyZElPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF0Zm9y
bVBhc3RlYm9hcmRJT1MubW0KaW5kZXggZDY0Yjk2ODM0NzM3ODMyZDJlZWQ2ODgyMzYwMTIyNzA2
NTU4NTNmYy4uMmUwNjg1N2VmMjZiOGJmZmY5YWExOTE4MDc4NGZkYWMxYTJiMjc1ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1BsYXRmb3JtUGFzdGVib2FyZElPUy5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxhdGZvcm1QYXN0ZWJvYXJkSU9T
Lm1tCkBAIC0xNTksNyArMTU5LDcgQEAgc3RhdGljIFZlY3RvcjxTdHJpbmc+IHdlYlNhZmVUeXBl
cyhOU0FycmF5PE5TU3RyaW5nICo+ICpwbGF0Zm9ybVR5cGVzLCBQbGF0Zm9ybVAKIHsKICAgICBM
aXN0SGFzaFNldDxTdHJpbmc+IGRvbVBhc3RlYm9hcmRUeXBlczsKICAgICBmb3IgKE5TU3RyaW5n
ICp0eXBlIGluIHBsYXRmb3JtVHlwZXMpIHsKLSAgICAgICAgaWYgKFt0eXBlIGlzRXF1YWxUb1N0
cmluZzpAKFBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKSldKQorICAgICAgICBpZiAo
W3R5cGUgaXNFcXVhbFRvU3RyaW5nOkAoUGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgp
LmNoYXJhY3RlcnMoKSldKQogICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgaWYgKFBh
c3RlYm9hcmQ6OmlzU2FmZVR5cGVGb3JET01Ub1JlYWRBbmRXcml0ZSh0eXBlKSkgewpAQCAtNTAx
LDcgKzUwMSw3IEBAIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAgICAgUGFz
dGVib2FyZEN1c3RvbURhdGEgY3VzdG9tRGF0YTsKICAgICBjdXN0b21EYXRhLnNldE9yaWdpbihj
b250ZW50LmNvbnRlbnRPcmlnaW4pOwotICAgIFtyZXByZXNlbnRhdGlvbnNUb1JlZ2lzdGVyIGFk
ZERhdGE6Y3VzdG9tRGF0YS5jcmVhdGVTaGFyZWRCdWZmZXIoKS0+Y3JlYXRlTlNEYXRhKCkuZ2V0
KCkgZm9yVHlwZTpAKFBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKSldOworICAgIFty
ZXByZXNlbnRhdGlvbnNUb1JlZ2lzdGVyIGFkZERhdGE6Y3VzdG9tRGF0YS5jcmVhdGVTaGFyZWRC
dWZmZXIoKS0+Y3JlYXRlTlNEYXRhKCkuZ2V0KCkgZm9yVHlwZTpAKFBhc3RlYm9hcmRDdXN0b21E
YXRhOjpjb2NvYVR5cGUoKS5jaGFyYWN0ZXJzKCkpXTsKIAogICAgIHJlZ2lzdGVySXRlbVRvUGFz
dGVib2FyZChyZXByZXNlbnRhdGlvbnNUb1JlZ2lzdGVyLmdldCgpLCBtX3Bhc3RlYm9hcmQuZ2V0
KCkpOwogfQpAQCAtNjA4LDcgKzYwOCw3IEBAIFZlY3RvcjxTdHJpbmc+IFBsYXRmb3JtUGFzdGVi
b2FyZDo6dHlwZXNTYWZlRm9yRE9NVG9SZWFkQW5kV3JpdGUoY29uc3QgU3RyaW5nJiBvCiAgICAg
fQogI2VuZGlmIC8vIFBBU1RFQk9BUkRfU1VQUE9SVFNfUFJFU0VOVEFUSU9OX1NUWUxFX0FORF9U
RUFNX0RBVEEKIAotICAgIGlmIChOU0RhdGEgKnNlcmlhbGl6ZWRDdXN0b21EYXRhID0gW21fcGFz
dGVib2FyZCBkYXRhRm9yUGFzdGVib2FyZFR5cGU6QChQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29j
b2FUeXBlKCkpXSkgeworICAgIGlmIChOU0RhdGEgKnNlcmlhbGl6ZWRDdXN0b21EYXRhID0gW21f
cGFzdGVib2FyZCBkYXRhRm9yUGFzdGVib2FyZFR5cGU6QChQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6
Y29jb2FUeXBlKCkuY2hhcmFjdGVycygpKV0pIHsKICAgICAgICAgYXV0byBkYXRhID0gUGFzdGVi
b2FyZEN1c3RvbURhdGE6OmZyb21TaGFyZWRCdWZmZXIoU2hhcmVkQnVmZmVyOjpjcmVhdGUoc2Vy
aWFsaXplZEN1c3RvbURhdGEpLmdldCgpKTsKICAgICAgICAgaWYgKGRhdGEub3JpZ2luKCkgPT0g
b3JpZ2luKSB7CiAgICAgICAgICAgICBmb3IgKGF1dG8mIHR5cGUgOiBkYXRhLm9yZGVyZWRUeXBl
cygpKQpAQCAtNjQ1LDcgKzY0NSw3IEBAIHN0YXRpYyBSZXRhaW5QdHI8V2ViSXRlbVByb3ZpZGVy
UmVnaXN0cmF0aW9uSW5mb0xpc3Q+IGNyZWF0ZUl0ZW1Qcm92aWRlclJlZ2lzdHJhCiAgICAgICAg
ICAgICBOU0RpY3Rpb25hcnkgKnRlYW1EYXRhRGljdGlvbmFyeSA9IEB7IEAob3JpZ2luS2V5Rm9y
VGVhbURhdGEpIDogZGF0YS5vcmlnaW4oKSwgQChjdXN0b21UeXBlc0tleUZvclRlYW1EYXRhKSA6
IGNyZWF0ZU5TQXJyYXkoZGF0YS5vcmRlcmVkVHlwZXMoKSkuZ2V0KCkgfTsKICAgICAgICAgICAg
IGlmIChOU0RhdGEgKnRlYW1EYXRhID0gW05TS2V5ZWRBcmNoaXZlciBhcmNoaXZlZERhdGFXaXRo
Um9vdE9iamVjdDp0ZWFtRGF0YURpY3Rpb25hcnkgcmVxdWlyaW5nU2VjdXJlQ29kaW5nOllFUyBl
cnJvcjpudWxscHRyXSkgewogICAgICAgICAgICAgICAgIFtyZXByZXNlbnRhdGlvbnNUb1JlZ2lz
dGVyIHNldFRlYW1EYXRhOnRlYW1EYXRhXTsKLSAgICAgICAgICAgICAgICBbcmVwcmVzZW50YXRp
b25zVG9SZWdpc3RlciBhZGREYXRhOnNlcmlhbGl6ZWRTaGFyZWRCdWZmZXIuZ2V0KCkgZm9yVHlw
ZTpAKFBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKSldOworICAgICAgICAgICAgICAg
IFtyZXByZXNlbnRhdGlvbnNUb1JlZ2lzdGVyIGFkZERhdGE6c2VyaWFsaXplZFNoYXJlZEJ1ZmZl
ci5nZXQoKSBmb3JUeXBlOkAoUGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpLmNoYXJh
Y3RlcnMoKSldOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZC5t
bQppbmRleCBkMmExZGJjM2E4OWY5MWFlYzJhMzIyMDM4NjRhMGNlZjMxOTIzMmQzLi43NWE3NmY0
Mzk5NGVlNjVlODEzOWM4Nzc2NmMzM2I3OGE0YTNkMjJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pb3MvV2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZC5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZC5tbQpAQCAt
NzYxLDcgKzc2MSw3IEBAIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAKICAg
ICAvLyBGb3IgY29tcGF0aWJpbGl0eSB3aXRoIERhdGFUcmFuc2ZlciBBUElzLCBhZGRpdGlvbmFs
bHkgbG9hZCB3ZWItZXhwb3NlZCB0eXBlcy4gU2luY2UgdGhpcyBpcyB0aGUgb25seSBjaGFuY2Ug
dG8KICAgICAvLyBmYXVsdCBpbiBhbnkgZGF0YSBhdCBhbGwsIHdlIG5lZWQgdG8gbG9hZCB1cCBm
cm9udCBhbnkgaW5mb3JtYXRpb24gdGhhdCB0aGUgcGFnZSBtYXkgYXNrIGZvciBsYXRlciBkb3du
IHRoZSBsaW5lLgotICAgIE5TU3RyaW5nICpjdXN0b21QYXN0ZWJvYXJkRGF0YVVUSSA9IEAoUGFz
dGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpKTsKKyAgICBOU1N0cmluZyAqY3VzdG9tUGFz
dGVib2FyZERhdGFVVEkgPSBAKFBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKS5jaGFy
YWN0ZXJzKCkpOwogICAgIGZvciAoTlNTdHJpbmcgKnJlZ2lzdGVyZWRUeXBlSWRlbnRpZmllciBp
biByZWdpc3RlcmVkVHlwZUlkZW50aWZpZXJzKSB7CiAgICAgICAgIGlmIChbcmVnaXN0ZXJlZFR5
cGVJZGVudGlmaWVyIGlzRXF1YWxUb1N0cmluZzpoaWdoZXN0RmlkZWxpdHlDb250ZW50VHlwZV0K
ICAgICAgICAgICAgIHx8IFtyZWdpc3RlcmVkVHlwZUlkZW50aWZpZXIgaXNFcXVhbFRvU3RyaW5n
OmhpZ2hlc3RGaWRlbGl0eVN1cHBvcnRlZFR5cGVdCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvRGF0YURldGVjdG9ySGlnaGxpZ2h0Lm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL0RhdGFEZXRlY3RvckhpZ2hsaWdodC5tbQppbmRleCAzZjA2OTQwNDYwMjk0
ZGNmZThhODMwMjhkMWZkN2Q0NjZkYTg1Mzk1Li4xNWRiODdiMWQ5OGJhMzgxZWE5NTFiMWYzNGY4
ZTYwMDgyOTgyNWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRGF0
YURldGVjdG9ySGlnaGxpZ2h0Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9E
YXRhRGV0ZWN0b3JIaWdobGlnaHQubW0KQEAgLTE1Myw3ICsxNTMsNyBAQCB2b2lkIERhdGFEZXRl
Y3RvckhpZ2hsaWdodDo6ZmFkZUluKCkKICAgICBbYW5pbWF0aW9uIHNldFRvVmFsdWU6QDFdOwog
CiAgICAgYXV0byBwbGF0Zm9ybUFuaW1hdGlvbiA9IFBsYXRmb3JtQ0FBbmltYXRpb25Db2NvYTo6
Y3JlYXRlKGFuaW1hdGlvbi5nZXQoKSk7Ci0gICAgZG93bmNhc3Q8R3JhcGhpY3NMYXllckNBPihs
YXllcigpKS5wbGF0Zm9ybUNBTGF5ZXIoKS0+YWRkQW5pbWF0aW9uRm9yS2V5KCJGYWRlSGlnaGxp
Z2h0SW4iLCBwbGF0Zm9ybUFuaW1hdGlvbi5nZXQoKSk7CisgICAgZG93bmNhc3Q8R3JhcGhpY3NM
YXllckNBPihsYXllcigpKS5wbGF0Zm9ybUNBTGF5ZXIoKS0+YWRkQW5pbWF0aW9uRm9yS2V5KCJG
YWRlSGlnaGxpZ2h0SW4iX3MsIHBsYXRmb3JtQW5pbWF0aW9uLmdldCgpKTsKIH0KIAogdm9pZCBE
YXRhRGV0ZWN0b3JIaWdobGlnaHQ6OmZhZGVPdXQoKQpAQCAtMTcwLDcgKzE3MCw3IEBAIHZvaWQg
RGF0YURldGVjdG9ySGlnaGxpZ2h0OjpmYWRlT3V0KCkKICAgICB9XTsKIAogICAgIGF1dG8gcGxh
dGZvcm1BbmltYXRpb24gPSBQbGF0Zm9ybUNBQW5pbWF0aW9uQ29jb2E6OmNyZWF0ZShhbmltYXRp
b24uZ2V0KCkpOwotICAgIGRvd25jYXN0PEdyYXBoaWNzTGF5ZXJDQT4obGF5ZXIoKSkucGxhdGZv
cm1DQUxheWVyKCktPmFkZEFuaW1hdGlvbkZvcktleSgiRmFkZUhpZ2hsaWdodE91dCIsIHBsYXRm
b3JtQW5pbWF0aW9uLmdldCgpKTsKKyAgICBkb3duY2FzdDxHcmFwaGljc0xheWVyQ0E+KGxheWVy
KCkpLnBsYXRmb3JtQ0FMYXllcigpLT5hZGRBbmltYXRpb25Gb3JLZXkoIkZhZGVIaWdobGlnaHRP
dXQiX3MsIHBsYXRmb3JtQW5pbWF0aW9uLmdldCgpKTsKICAgICBbQ0FUcmFuc2FjdGlvbiBjb21t
aXRdOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVi
b2FyZE1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1t
CmluZGV4IGEyYzI1MGFhMmJlZjhkZTk2NGJhZjA5MjQwZDVlMGVjNDE1MGVmODQuLmRjMmY1YzUz
YzY1NDFlMTk4YjNhODRlNmM1YTgwNWQxZGRmZTBkOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tCkBAIC01MCwxMiArNTAsMTIgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1jb25zdCBjaGFyKiBjb25zdCBXZWJBcmNoaXZlUGJvYXJkVHlwZSA9
ICJBcHBsZSBXZWIgQXJjaGl2ZSBwYXN0ZWJvYXJkIHR5cGUiOwotY29uc3QgY2hhciogY29uc3Qg
V2ViVVJMTmFtZVBib2FyZFR5cGUgPSAicHVibGljLnVybC1uYW1lIjsKLWNvbnN0IGNoYXIqIGNv
bnN0IFdlYlVSTHNXaXRoVGl0bGVzUGJvYXJkVHlwZSA9ICJXZWJVUkxzV2l0aFRpdGxlc1Bib2Fy
ZFR5cGUiOworY29uc3QgQVNDSUlMaXRlcmFsIFdlYkFyY2hpdmVQYm9hcmRUeXBlID0gIkFwcGxl
IFdlYiBBcmNoaXZlIHBhc3RlYm9hcmQgdHlwZSJfczsKK2NvbnN0IEFTQ0lJTGl0ZXJhbCBXZWJV
UkxOYW1lUGJvYXJkVHlwZSA9ICJwdWJsaWMudXJsLW5hbWUiX3M7Citjb25zdCBBU0NJSUxpdGVy
YWwgV2ViVVJMc1dpdGhUaXRsZXNQYm9hcmRUeXBlID0gIldlYlVSTHNXaXRoVGl0bGVzUGJvYXJk
VHlwZSJfczsKIAotY29uc3QgY2hhciBXZWJTbWFydFBhc3RlUGJvYXJkVHlwZVtdID0gIk5lWFQg
c21hcnQgcGFzdGUgcGFzdGVib2FyZCB0eXBlIjsKLWNvbnN0IGNoYXIgV2ViVVJMUGJvYXJkVHlw
ZVtdID0gInB1YmxpYy51cmwiOworY29uc3QgQVNDSUlMaXRlcmFsIFdlYlNtYXJ0UGFzdGVQYm9h
cmRUeXBlID0gIk5lWFQgc21hcnQgcGFzdGUgcGFzdGVib2FyZCB0eXBlIl9zOworY29uc3QgQVND
SUlMaXRlcmFsIFdlYlVSTFBib2FyZFR5cGUgPSAicHVibGljLnVybCJfczsKIAogc3RhdGljIGNv
bnN0IFZlY3RvcjxTdHJpbmc+IHdyaXRhYmxlVHlwZXNGb3JVUkwoKQogewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLm1tCmlu
ZGV4IDM1ZmM2YWY1OWI2YWZjYjRmOTU1NGMwZjJhODRhMzM0MjgzOTZlNWUuLmI3YjZlMzc0N2Iw
ZmNkOTc4Yzg3NGUwMTgyZjIzNTYzY2U1ZDJkODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMubW0KQEAgLTUwMiw3ICs1
MDIsNyBAQCBTdHJpbmcga2V5SWRlbnRpZmllckZvcktleUV2ZW50KE5TRXZlbnQqIGV2ZW50KQog
ICAgIE5TU3RyaW5nICpzID0gW2V2ZW50IGNoYXJhY3RlcnNJZ25vcmluZ01vZGlmaWVyc107CiAg
ICAgaWYgKFtzIGxlbmd0aF0gIT0gMSkgewogICAgICAgICBMT0coRXZlbnRzLCAicmVjZWl2ZWQg
YW4gdW5leHBlY3RlZCBudW1iZXIgb2YgY2hhcmFjdGVycyBpbiBrZXkgZXZlbnQ6ICV1IiwgW3Mg
bGVuZ3RoXSk7Ci0gICAgICAgIHJldHVybiAiVW5pZGVudGlmaWVkIjsKKyAgICAgICAgcmV0dXJu
ICJVbmlkZW50aWZpZWQiX3M7CiAgICAgfQogICAgIHJldHVybiBrZXlJZGVudGlmaWVyRm9yQ2hh
ckNvZGUoW3MgY2hhcmFjdGVyQXRJbmRleDowXSk7CiB9CkBAIC04MDksMjAgKzgwOSwyMCBAQCBw
dWJsaWM6CiAKICAgICAgICAgLy8gQWx3YXlzIHVzZSAxMyBmb3IgRW50ZXIvUmV0dXJuIC0tIHdl
IGRvbid0IHdhbnQgdG8gdXNlIEFwcEtpdCdzIGRpZmZlcmVudCBjaGFyYWN0ZXIgZm9yIEVudGVy
LgogICAgICAgICBpZiAobV93aW5kb3dzVmlydHVhbEtleUNvZGUgPT0gVktfUkVUVVJOKSB7Ci0g
ICAgICAgICAgICBtX3RleHQgPSAiXHIiOwotICAgICAgICAgICAgbV91bm1vZGlmaWVkVGV4dCA9
ICJcciI7CisgICAgICAgICAgICBtX3RleHQgPSAiXHIiX3M7CisgICAgICAgICAgICBtX3VubW9k
aWZpZWRUZXh0ID0gbV90ZXh0OwogICAgICAgICB9CiAKICAgICAgICAgLy8gQXBwS2l0IHNldHMg
dGV4dCB0byAiXHg3RiIgZm9yIGJhY2tzcGFjZSwgYnV0IHRoZSBjb3JyZWN0IEtleWJvYXJkRXZl
bnQgY2hhcmFjdGVyIGNvZGUgaXMgOC4KICAgICAgICAgaWYgKG1fd2luZG93c1ZpcnR1YWxLZXlD
b2RlID09IFZLX0JBQ0spIHsKLSAgICAgICAgICAgIG1fdGV4dCA9ICJceDgiOwotICAgICAgICAg
ICAgbV91bm1vZGlmaWVkVGV4dCA9ICJceDgiOworICAgICAgICAgICAgbV90ZXh0ID0gIlx4OCJf
czsKKyAgICAgICAgICAgIG1fdW5tb2RpZmllZFRleHQgPSBtX3RleHQ7CiAgICAgICAgIH0KIAog
ICAgICAgICAvLyBBbHdheXMgdXNlIDkgZm9yIFRhYiAtLSB3ZSBkb24ndCB3YW50IHRvIHVzZSBB
cHBLaXQncyBkaWZmZXJlbnQgY2hhcmFjdGVyIGZvciBzaGlmdC10YWIuCiAgICAgICAgIGlmICht
X3dpbmRvd3NWaXJ0dWFsS2V5Q29kZSA9PSBWS19UQUIpIHsKLSAgICAgICAgICAgIG1fdGV4dCA9
ICJceDkiOwotICAgICAgICAgICAgbV91bm1vZGlmaWVkVGV4dCA9ICJceDkiOworICAgICAgICAg
ICAgbV90ZXh0ID0gIlx4OSJfczsKKyAgICAgICAgICAgIG1fdW5tb2RpZmllZFRleHQgPSBtX3Rl
eHQ7CiAgICAgICAgIH0KIAogICAgICAgICAvLyBNYWMgc3BlY2lmaWMuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1QYXN0ZWJvYXJkTWFjLm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtUGFzdGVib2FyZE1hYy5tbQppbmRleCBh
N2ZlNzI1NTQzNzY2NWU4YjhhMGM3NDUzZDMwNDc0OWQ0NTYyZjY3Li40NmRiNTdkZWVhOWQ3MjY5
YWViNGQ4NzdkMTkxN2Q1ZDYzMDNkYTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvUGxhdGZvcm1QYXN0ZWJvYXJkTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21hYy9QbGF0Zm9ybVBhc3RlYm9hcmRNYWMubW0KQEAgLTIxNyw3ICsyMTcsNyBAQCBB
TExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIFZlY3RvcjxTdHJpbmc+IFBsYXRmb3Jt
UGFzdGVib2FyZDo6dHlwZXNTYWZlRm9yRE9NVG9SZWFkQW5kV3JpdGUoY29uc3QgU3RyaW5nJiBv
cmlnaW4pIGNvbnN0CiB7CiAgICAgTGlzdEhhc2hTZXQ8U3RyaW5nPiBkb21QYXN0ZWJvYXJkVHlw
ZXM7Ci0gICAgaWYgKE5TRGF0YSAqc2VyaWFsaXplZEN1c3RvbURhdGEgPSBbbV9wYXN0ZWJvYXJk
IGRhdGFGb3JUeXBlOkAoUGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpKV0pIHsKKyAg
ICBpZiAoTlNEYXRhICpzZXJpYWxpemVkQ3VzdG9tRGF0YSA9IFttX3Bhc3RlYm9hcmQgZGF0YUZv
clR5cGU6QChQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkuY2hhcmFjdGVycygpKV0p
IHsKICAgICAgICAgYXV0byBkYXRhID0gUGFzdGVib2FyZEN1c3RvbURhdGE6OmZyb21TaGFyZWRC
dWZmZXIoU2hhcmVkQnVmZmVyOjpjcmVhdGUoc2VyaWFsaXplZEN1c3RvbURhdGEpLmdldCgpKTsK
ICAgICAgICAgaWYgKGRhdGEub3JpZ2luKCkgPT0gb3JpZ2luKSB7CiAgICAgICAgICAgICBmb3Ig
KGF1dG8mIHR5cGUgOiBkYXRhLm9yZGVyZWRUeXBlcygpKQpAQCAtMjI3LDcgKzIyNyw3IEBAIFZl
Y3RvcjxTdHJpbmc+IFBsYXRmb3JtUGFzdGVib2FyZDo6dHlwZXNTYWZlRm9yRE9NVG9SZWFkQW5k
V3JpdGUoY29uc3QgU3RyaW5nJiBvCiAKICAgICBOU0FycmF5PE5TU3RyaW5nICo+ICphbGxUeXBl
cyA9IFttX3Bhc3RlYm9hcmQgdHlwZXNdOwogICAgIGZvciAoTlNTdHJpbmcgKnR5cGUgaW4gYWxs
VHlwZXMpIHsKLSAgICAgICAgaWYgKFt0eXBlIGlzRXF1YWxUb1N0cmluZzpAKFBhc3RlYm9hcmRD
dXN0b21EYXRhOjpjb2NvYVR5cGUoKSldKQorICAgICAgICBpZiAoW3R5cGUgaXNFcXVhbFRvU3Ry
aW5nOkAoUGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpLmNoYXJhY3RlcnMoKSldKQog
ICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgaWYgKFBhc3RlYm9hcmQ6OmlzU2FmZVR5
cGVGb3JET01Ub1JlYWRBbmRXcml0ZSh0eXBlKSkKQEAgLTI1NCw3ICsyNTQsNyBAQCBpbnQ2NF90
IFBsYXRmb3JtUGFzdGVib2FyZDo6d3JpdGUoY29uc3QgUGFzdGVib2FyZEN1c3RvbURhdGEmIGRh
dGEpCiAKICAgICBib29sIHNob3VsZFdyaXRlQ3VzdG9tRGF0YSA9IGRhdGEuaGFzU2FtZU9yaWdp
bkN1c3RvbURhdGEoKSB8fCAhZGF0YS5vcmlnaW4oKS5pc0VtcHR5KCk7CiAgICAgaWYgKHNob3Vs
ZFdyaXRlQ3VzdG9tRGF0YSkKLSAgICAgICAgW3R5cGVzIGFkZE9iamVjdDpAKFBhc3RlYm9hcmRD
dXN0b21EYXRhOjpjb2NvYVR5cGUoKSldOworICAgICAgICBbdHlwZXMgYWRkT2JqZWN0OkAoUGFz
dGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpLmNoYXJhY3RlcnMoKSldOwogCiAgICAgW21f
cGFzdGVib2FyZCBkZWNsYXJlVHlwZXM6dHlwZXMgb3duZXI6bmlsXTsKIApAQCAtMjc1LDcgKzI3
NSw3IEBAIGludDY0X3QgUGxhdGZvcm1QYXN0ZWJvYXJkOjp3cml0ZShjb25zdCBQYXN0ZWJvYXJk
Q3VzdG9tRGF0YSYgZGF0YSkKIAogICAgIGlmIChzaG91bGRXcml0ZUN1c3RvbURhdGEpIHsKICAg
ICAgICAgaWYgKGF1dG8gc2VyaWFsaXplZEN1c3RvbURhdGEgPSBkYXRhLmNyZWF0ZVNoYXJlZEJ1
ZmZlcigpLT5jcmVhdGVOU0RhdGEoKSkKLSAgICAgICAgICAgIFttX3Bhc3RlYm9hcmQgc2V0RGF0
YTpzZXJpYWxpemVkQ3VzdG9tRGF0YS5nZXQoKSBmb3JUeXBlOkAoUGFzdGVib2FyZEN1c3RvbURh
dGE6OmNvY29hVHlwZSgpKV07CisgICAgICAgICAgICBbbV9wYXN0ZWJvYXJkIHNldERhdGE6c2Vy
aWFsaXplZEN1c3RvbURhdGEuZ2V0KCkgZm9yVHlwZTpAKFBhc3RlYm9hcmRDdXN0b21EYXRhOjpj
b2NvYVR5cGUoKS5jaGFyYWN0ZXJzKCkpXTsKICAgICB9CiAKICAgICByZXR1cm4gY2hhbmdlQ291
bnQoKTsKQEAgLTQ5OSw3ICs0OTksNyBAQCBzdGF0aWMgUmV0YWluUHRyPE5TUGFzdGVib2FyZEl0
ZW0+IGNyZWF0ZVBhc3RlYm9hcmRJdGVtKGNvbnN0IFBhc3RlYm9hcmRDdXN0b21EYQogCiAgICAg
aWYgKGRhdGEuaGFzU2FtZU9yaWdpbkN1c3RvbURhdGEoKSB8fCAhZGF0YS5vcmlnaW4oKS5pc0Vt
cHR5KCkpIHsKICAgICAgICAgaWYgKGF1dG8gc2VyaWFsaXplZEN1c3RvbURhdGEgPSBkYXRhLmNy
ZWF0ZVNoYXJlZEJ1ZmZlcigpLT5jcmVhdGVOU0RhdGEoKSkKLSAgICAgICAgICAgIFtpdGVtIHNl
dERhdGE6c2VyaWFsaXplZEN1c3RvbURhdGEuZ2V0KCkgZm9yVHlwZTpAKFBhc3RlYm9hcmRDdXN0
b21EYXRhOjpjb2NvYVR5cGUoKSldOworICAgICAgICAgICAgW2l0ZW0gc2V0RGF0YTpzZXJpYWxp
emVkQ3VzdG9tRGF0YS5nZXQoKSBmb3JUeXBlOkAoUGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29h
VHlwZSgpLmNoYXJhY3RlcnMoKSldOwogICAgIH0KIAogICAgIGRhdGEuZm9yRWFjaFBsYXRmb3Jt
U3RyaW5nT3JCdWZmZXIoWyZdIChhdXRvJiB0eXBlLCBhdXRvJiBzdHJpbmdPckJ1ZmZlcikgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1N0cmluZ1V0aWxpdGllcy5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TdHJpbmdVdGlsaXRpZXMubW0KaW5kZXgg
N2NkMWJkODBhZTllMzNlNzU2ZjY1OTEyMjQwZjdlZDZjYzMzYzViNS4uOTJiZTY2N2U2M2ViMzFm
NDFkNzc5YTk2NjJmMWZiNzU2ZjQ2NTQzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL1N0cmluZ1V0aWxpdGllcy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvU3RyaW5nVXRpbGl0aWVzLm1tCkBAIC0zMyw3ICszMyw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICAKIHN0YXRpYyBTdHJpbmcgd2lsZGNhcmRSZWdleFBhdHRlcm5TdHJpbmcoY29u
c3QgU3RyaW5nJiBzdHJpbmcpCiB7Ci0gICAgU3RyaW5nIG1ldGFDaGFyYWN0ZXJzID0gIi58Kz8o
KVtde31eJCI7CisgICAgU3RyaW5nIG1ldGFDaGFyYWN0ZXJzID0gIi58Kz8oKVtde31eJCJfczsK
ICAgICBVQ2hhciBlc2NhcGVDaGFyYWN0ZXIgPSAnXFwnOwogICAgIFVDaGFyIHdpbGRjYXJkQ2hh
cmFjdGVyID0gJyonOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL1RocmVhZENoZWNrLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1RocmVhZENo
ZWNrLm1tCmluZGV4IGYxNTEwODhjZTkyNWE1MDZlYjQ2OGIyMjIxZmFmMzI3NTAzMmJhNDIuLmJi
ZDczNDQxZTA1MGI5Njg3NTdhNGY1YTZhZDEzNDY2YjFhZDA2ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9UaHJlYWRDaGVjay5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvVGhyZWFkQ2hlY2subW0KQEAgLTEwNiw3ICsxMDYsNyBAQCB2b2lkIFdl
YkNvcmVSZXBvcnRUaHJlYWRWaW9sYXRpb24oY29uc3QgY2hhciogZnVuY3Rpb24sIFdlYkNvcmU6
OlRocmVhZFZpb2xhdGlvbgogICAgICAgICBjYXNlIE5vVGhyZWFkQ2hlY2s6CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgY2FzZSBMb2dPbkZpcnN0VGhyZWFkVmlvbGF0aW9uOgotICAgICAg
ICAgICAgaWYgKGxvZ2dlZEZ1bmN0aW9ucy5nZXQoKS5hZGQoZnVuY3Rpb24pLmlzTmV3RW50cnkp
IHsKKyAgICAgICAgICAgIGlmIChsb2dnZWRGdW5jdGlvbnMuZ2V0KCkuYWRkKFN0cmluZyB7IGZ1
bmN0aW9uIH0pLmlzTmV3RW50cnkpIHsKICAgICAgICAgICAgICAgICBOU0xvZyhAIldlYktpdCBU
aHJlYWRpbmcgVmlvbGF0aW9uIC0gJXMgY2FsbGVkIGZyb20gc2Vjb25kYXJ5IHRocmVhZCIsIGZ1
bmN0aW9uKTsKICAgICAgICAgICAgICAgICBOU0xvZyhAIkFkZGl0aW9uYWwgdGhyZWFkaW5nIHZp
b2xhdGlvbnMgZm9yIHRoaXMgZnVuY3Rpb24gd2lsbCBub3QgYmUgbG9nZ2VkLiIpOwogICAgICAg
ICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1VzZXJBZ2Vu
dE1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9Vc2VyQWdlbnRNYWMubW0KaW5k
ZXggZTYyYTk3ZjE5OWFhY2MzY2E2OTJkOGRhNGIyMDlkMjk5NGUzYTBkMS4uZWRjMDc5ZjRlMDI0
YWYzMDFlNDVmYWExMDkzNWE4ZGIzYTJiMmM3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL1VzZXJBZ2VudE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvVXNlckFnZW50TWFjLm1tCkBAIC0zOCw3ICszOCw3IEBAIFN0cmluZyBzdGFuZGFyZFVz
ZXJBZ2VudFdpdGhBcHBsaWNhdGlvbk5hbWUoY29uc3QgU3RyaW5nJiBhcHBsaWNhdGlvbk5hbWUs
IGNvbnN0CiAgICAgaWYgKCFvc1ZlcnNpb24uc3RhcnRzV2l0aCgiMTAiKSkKICAgICAgICAgb3NW
ZXJzaW9uID0gIjEwXzE1XzciX3M7CiAgICAgCi0gICAgU3RyaW5nIGFwcE5hbWVTdWZmaXggPSBh
cHBsaWNhdGlvbk5hbWUuaXNFbXB0eSgpID8gIiIgOiBtYWtlU3RyaW5nKCIgIiwgYXBwbGljYXRp
b25OYW1lKTsKKyAgICBTdHJpbmcgYXBwTmFtZVN1ZmZpeCA9IGFwcGxpY2F0aW9uTmFtZS5pc0Vt
cHR5KCkgPyBlbXB0eVN0cmluZygpIDogbWFrZVN0cmluZygiICIsIGFwcGxpY2F0aW9uTmFtZSk7
CiAKICAgICByZXR1cm4gbWFrZVN0cmluZygiTW96aWxsYS81LjAgKE1hY2ludG9zaDsgSW50ZWwg
TWFjIE9TIFggIiwgb3NWZXJzaW9uLCAiKSBBcHBsZVdlYktpdC82MDUuMS4xNSAoS0hUTUwsIGxp
a2UgR2Vja28pIiwgYXBwTmFtZVN1ZmZpeCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlRXJyb3JCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VFcnJvckJhc2UuY3BwCmluZGV4IDY3ZDJlYWMwOGZh
N2I0YmYwNjRjY2RmYWJjMjQ5ZmNjNDYyNTFjZmQuLmQwMTkzYWM2YzliOTc0YWEyYmYxZDcxOTc5
ZDNlNzAxNWJjMzBkOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvUmVzb3VyY2VFcnJvckJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvUmVzb3VyY2VFcnJvckJhc2UuY3BwCkBAIC0zMiw4ICszMiw4IEBACiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotY29uc3QgY2hhciogY29uc3QgZXJyb3JEb21haW5XZWJLaXRJbnRlcm5h
bCA9ICJXZWJLaXRJbnRlcm5hbCI7Ci1jb25zdCBjaGFyKiBjb25zdCBlcnJvckRvbWFpbldlYktp
dFNlcnZpY2VXb3JrZXIgPSAiV2ViS2l0U2VydmljZVdvcmtlciI7Citjb25zdCBBU0NJSUxpdGVy
YWwgZXJyb3JEb21haW5XZWJLaXRJbnRlcm5hbCA9ICJXZWJLaXRJbnRlcm5hbCJfczsKK2NvbnN0
IEFTQ0lJTGl0ZXJhbCBlcnJvckRvbWFpbldlYktpdFNlcnZpY2VXb3JrZXIgPSAiV2ViS2l0U2Vy
dmljZVdvcmtlciJfczsKIAogaW5saW5lIGNvbnN0IFJlc291cmNlRXJyb3ImIFJlc291cmNlRXJy
b3JCYXNlOjphc1Jlc291cmNlRXJyb3IoKSBjb25zdAogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUVycm9yQmFzZS5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUVycm9yQmFzZS5oCmluZGV4IDQ4OGRlYmMxNDNk
NjNmNDU3ZThkMzhlOWM2ZGMyM2E5ZDIwYmE4MTYuLmUxMjFjNTE0ZjQ4OTQyNmEzNDNkMzQ0ODkw
Yjk2NjMwMjUwY2Q3Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvUmVzb3VyY2VFcnJvckJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3
b3JrL1Jlc291cmNlRXJyb3JCYXNlLmgKQEAgLTM0LDggKzM0LDggQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBjbGFzcyBSZXNvdXJjZUVycm9yOwogCi1XRUJDT1JFX0VYUE9SVCBleHRlcm4gY29u
c3QgY2hhciogY29uc3QgZXJyb3JEb21haW5XZWJLaXRJbnRlcm5hbDsgLy8gVXNlZCBmb3IgZXJy
b3JzIHRoYXQgd29uJ3QgYmUgZXhwb3NlZCB0byBjbGllbnRzLgotV0VCQ09SRV9FWFBPUlQgZXh0
ZXJuIGNvbnN0IGNoYXIqIGNvbnN0IGVycm9yRG9tYWluV2ViS2l0U2VydmljZVdvcmtlcjsgLy8g
VXNlZCBmb3IgZXJyb3JzIHRoYXQgaGFwcGVuIHdoZW4gbG9hZGluZyBhIHJlc291cmNlIGZyb20g
YSBzZXJ2aWNlIHdvcmtlci4KK1dFQkNPUkVfRVhQT1JUIGV4dGVybiBjb25zdCBBU0NJSUxpdGVy
YWwgZXJyb3JEb21haW5XZWJLaXRJbnRlcm5hbDsgLy8gVXNlZCBmb3IgZXJyb3JzIHRoYXQgd29u
J3QgYmUgZXhwb3NlZCB0byBjbGllbnRzLgorV0VCQ09SRV9FWFBPUlQgZXh0ZXJuIGNvbnN0IEFT
Q0lJTGl0ZXJhbCBlcnJvckRvbWFpbldlYktpdFNlcnZpY2VXb3JrZXI7IC8vIFVzZWQgZm9yIGVy
cm9ycyB0aGF0IGhhcHBlbiB3aGVuIGxvYWRpbmcgYSByZXNvdXJjZSBmcm9tIGEgc2VydmljZSB3
b3JrZXIuCiAKIGNsYXNzIFJlc291cmNlRXJyb3JCYXNlIHsKICAgICBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29j
b2EvUmFuZ2VSZXNwb25zZUdlbmVyYXRvci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY29jb2EvUmFuZ2VSZXNwb25zZUdlbmVyYXRvci5tbQppbmRleCAxOTgxNGEzNjVjOWY2
NjFhMjFjMjI5YWRiZDA0NjExYzIwOTQ3ZTY0Li4wNGVmZGI0ZGZmMWQxNjQxYzNkNjA1YWYzMDE0
ZDFhMTBjMjQ2NDNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L2NvY29hL1JhbmdlUmVzcG9uc2VHZW5lcmF0b3IubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jb2NvYS9SYW5nZVJlc3BvbnNlR2VuZXJhdG9yLm1tCkBAIC03OCw3ICs3
OCw3IEBAIHN0YXRpYyBSZXNvdXJjZVJlc3BvbnNlIHN5bnRoZXNpemVkUmVzcG9uc2VGb3JSYW5n
ZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiBvcmlnCiAgICAgYXV0byBiZWdpbiA9IHBhcnNlZFJl
cXVlc3RSYW5nZS5iZWdpbjsKICAgICBhdXRvIGVuZCA9IHBhcnNlZFJlcXVlc3RSYW5nZS5lbmQ7
CiAKLSAgICBhdXRvIG5ld0NvbnRlbnRSYW5nZSA9IG1ha2VTdHJpbmcoImJ5dGVzICIsIGJlZ2lu
LCAiLSIsIGVuZCwgIi8iLCAodG90YWxDb250ZW50TGVuZ3RoID8gbWFrZVN0cmluZygqdG90YWxD
b250ZW50TGVuZ3RoKSA6ICIqIikpOworICAgIGF1dG8gbmV3Q29udGVudFJhbmdlID0gbWFrZVN0
cmluZygiYnl0ZXMgIiwgYmVnaW4sICItIiwgZW5kLCAiLyIsICh0b3RhbENvbnRlbnRMZW5ndGgg
PyBtYWtlU3RyaW5nKCp0b3RhbENvbnRlbnRMZW5ndGgpIDogIioiX3MpKTsKICAgICBhdXRvIG5l
d0NvbnRlbnRMZW5ndGggPSBtYWtlU3RyaW5nKGVuZCAtIGJlZ2luICsgMSk7CiAKICAgICBSZXNv
dXJjZVJlc3BvbnNlIG5ld1Jlc3BvbnNlID0gb3JpZ2luYWxSZXNwb25zZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbSBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQppbmRleCAwMTBlY2JhZWQ4N2E3M2E0MjBh
ZmI5N2U4ZTgwZmVhNjM3OWZlZDNlLi44ZTlkNDZhMWIzNGNhYjA0N2ZiYTM0M2QxYjU3YTJjNWIy
ZGMxMDg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVN
YWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCkBA
IC0yNjE5LDcgKzI2MTksNyBAQCBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAg
ICAgICAgICAgIHJldHVybiBpY29uOwogICAgIH0KIAotICAgIHJldHVybiBJY29uOjpjcmVhdGVJ
Y29uRm9yVVRJKCJwdWJsaWMuZGF0YSIpOworICAgIHJldHVybiBJY29uOjpjcmVhdGVJY29uRm9y
VVRJKCJwdWJsaWMuZGF0YSJfcyk7CiB9CiAKIFJldGFpblB0cjxOU0ltYWdlPiBSZW5kZXJUaGVt
ZU1hYzo6aWNvbkZvckF0dGFjaG1lbnQoY29uc3QgU3RyaW5nJiBmaWxlTmFtZSwgY29uc3QgU3Ry
aW5nJiBhdHRhY2htZW50VHlwZSwgY29uc3QgU3RyaW5nJiB0aXRsZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuY3BwCmlu
ZGV4IDkyYmM2YTgxMmExMThhNTE5ZjBiNDZjOTRmOTcyZTMyYjNhNWVlNTYuLjRjNTJjNjcxYmRi
Y2U2NGM5M2VjYzI0ZjU4MzAxNTJjZmYwNTA2ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmNwcApAQCAtNjcxLDcg
KzY3MSw3IEBAIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIExpc3RTdHls
ZVBvc2l0aW9uIHBvc2l0aW9uKQogCiBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0m
IHRzLCBMaXN0U3R5bGVUeXBlIHN0eWxlVHlwZSkKIHsKLSAgICByZXR1cm4gdHMgPDwgZ2V0VmFs
dWVOYW1lKHRvQ1NTVmFsdWVJRChzdHlsZVR5cGUpKTsKKyAgICByZXR1cm4gdHMgPDwgZ2V0VmFs
dWVOYW1lKHRvQ1NTVmFsdWVJRChzdHlsZVR5cGUpKS5jaGFyYWN0ZXJzKCk7CiB9CiAKIFRleHRT
dHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIE1hcnF1ZWVCZWhhdmlvciBtYXJxdWVl
QmVoYXZpb3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyRWxlbWVu
dC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuaAppbmRleCAxYWNkMmFl
OTVhMTU5NGU5ZjMzNzlkMmU5MzlmOTE2ZGQxNTA0NmZkLi4wMGM3NjEwYTEwY2ViYTQ1MzQyNGRh
Nzk0MDk2ZTFhNmZkMzM1Mjk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmls
dGVyRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmgK
QEAgLTY4LDEwICs2OCwxMCBAQCBwcml2YXRlOgogICAgIFByb3BlcnR5UmVnaXN0cnkgbV9wcm9w
ZXJ0eVJlZ2lzdHJ5IHsgKnRoaXMgfTsKICAgICBSZWY8U1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbj4g
bV9maWx0ZXJVbml0cyB7IFNWR0FuaW1hdGVkRW51bWVyYXRpb246OmNyZWF0ZSh0aGlzLCBTVkdV
bml0VHlwZXM6OlNWR19VTklUX1RZUEVfT0JKRUNUQk9VTkRJTkdCT1gpIH07CiAgICAgUmVmPFNW
R0FuaW1hdGVkRW51bWVyYXRpb24+IG1fcHJpbWl0aXZlVW5pdHMgeyBTVkdBbmltYXRlZEVudW1l
cmF0aW9uOjpjcmVhdGUodGhpcywgU1ZHVW5pdFR5cGVzOjpTVkdfVU5JVF9UWVBFX1VTRVJTUEFD
RU9OVVNFKSB9OwotICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV94IHsgU1ZHQW5pbWF0ZWRM
ZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpXaWR0aCwgIi0xMCUiKSB9OwotICAg
IFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV95IHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0
aGlzLCBTVkdMZW5ndGhNb2RlOjpIZWlnaHQsICItMTAlIikgfTsKLSAgICBSZWY8U1ZHQW5pbWF0
ZWRMZW5ndGg+IG1fd2lkdGggeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xl
bmd0aE1vZGU6OldpZHRoLCAiMTIwJSIpIH07Ci0gICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBt
X2hlaWdodCB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6
SGVpZ2h0LCAiMTIwJSIpIH07CisgICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX3ggeyBTVkdB
bmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OldpZHRoLCAiLTEwJSJf
cykgfTsKKyAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1feSB7IFNWR0FuaW1hdGVkTGVuZ3Ro
OjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6SGVpZ2h0LCAiLTEwJSJfcykgfTsKKyAgICBS
ZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1fd2lkdGggeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRl
KHRoaXMsIFNWR0xlbmd0aE1vZGU6OldpZHRoLCAiMTIwJSJfcykgfTsKKyAgICBSZWY8U1ZHQW5p
bWF0ZWRMZW5ndGg+IG1faGVpZ2h0IHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBT
VkdMZW5ndGhNb2RlOjpIZWlnaHQsICIxMjAlIl9zKSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2
ZVN0YW5kYXJkQXR0cmlidXRlcy5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1p
dGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5oCmluZGV4IDMxMDNjYzZhYzIzM2UwZmQzYjJmYjFlOTc5
MDQ5YTI4YjdiNmY4YmIuLjc4ZTJhYTJjMWU4MTRlNjk4ZWQ0NDRlZWM3N2Y5YjIwNzZlM2Y5NTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFy
ZEF0dHJpYnV0ZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZl
U3RhbmRhcmRBdHRyaWJ1dGVzLmgKQEAgLTc1LDEwICs3NSwxMCBAQCBwcml2YXRlOgogCiAgICAg
Ly8gU3BlYzogSWYgdGhlIHgveSBhdHRyaWJ1dGUgaXMgbm90IHNwZWNpZmllZCwgdGhlIGVmZmVj
dCBpcyBhcyBpZiBhIHZhbHVlIG9mICIwJSIgd2VyZSBzcGVjaWZpZWQuCiAgICAgLy8gU3BlYzog
SWYgdGhlIHdpZHRoL2hlaWdodCBhdHRyaWJ1dGUgaXMgbm90IHNwZWNpZmllZCwgdGhlIGVmZmVj
dCBpcyBhcyBpZiBhIHZhbHVlIG9mICIxMDAlIiB3ZXJlIHNwZWNpZmllZC4KLSAgICBSZWY8U1ZH
QW5pbWF0ZWRMZW5ndGg+IG1feCB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZH
TGVuZ3RoTW9kZTo6V2lkdGgsICIwJSIpIH07Ci0gICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBt
X3kgeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OkhlaWdo
dCwgIjAlIikgfTsKLSAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1fd2lkdGggeyBTVkdBbmlt
YXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OldpZHRoLCAiMTAwJSIpIH07
Ci0gICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX2hlaWdodCB7IFNWR0FuaW1hdGVkTGVuZ3Ro
OjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6SGVpZ2h0LCAiMTAwJSIpIH07CisgICAgUmVm
PFNWR0FuaW1hdGVkTGVuZ3RoPiBtX3ggeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMs
IFNWR0xlbmd0aE1vZGU6OldpZHRoLCAiMCUiX3MpIH07CisgICAgUmVmPFNWR0FuaW1hdGVkTGVu
Z3RoPiBtX3kgeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6
OkhlaWdodCwgIjAlIl9zKSB9OworICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV93aWR0aCB7
IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6V2lkdGgsICIx
MDAlIl9zKSB9OworICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV9oZWlnaHQgeyBTVkdBbmlt
YXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OkhlaWdodCwgIjEwMCUiX3Mp
IH07CiAgICAgUmVmPFNWR0FuaW1hdGVkU3RyaW5nPiBtX3Jlc3VsdCB7IFNWR0FuaW1hdGVkU3Ry
aW5nOjpjcmVhdGUodGhpcykgfTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5l
YXJHcmFkaWVudEVsZW1lbnQuaAppbmRleCBhZWZlNjRjZTE0Njc2Nzg0YzBkMWE5MjRjZTNkZmVh
ZDdiYWNjMzczLi5kZjIwYmQwNTlmYWM3M2IyM2Q3NjllODljOTJkZWYwZmJlYzk3OGFiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5oCkBAIC02MSw3
ICs2MSw3IEBAIHByaXZhdGU6CiAgICAgUHJvcGVydHlSZWdpc3RyeSBtX3Byb3BlcnR5UmVnaXN0
cnkgeyAqdGhpcyB9OwogICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV94MSB7IFNWR0FuaW1h
dGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6V2lkdGgpIH07CiAgICAgUmVm
PFNWR0FuaW1hdGVkTGVuZ3RoPiBtX3kxIHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlz
LCBTVkdMZW5ndGhNb2RlOjpIZWlnaHQpIH07Ci0gICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBt
X3gyIHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpXaWR0
aCwgIjEwMCUiKSB9OworICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV94MiB7IFNWR0FuaW1h
dGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6V2lkdGgsICIxMDAlIl9zKSB9
OwogICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV95MiB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpj
cmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6SGVpZ2h0KSB9OwogfTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdNYXJrZXJFbGVtZW50LmgKaW5kZXggNWExMzZlM2VmNDVhNTdhNTFjOTJmZjc2NTliYTZh
Zjc2MmYyYWU5My4uZTFmN2VlOWFjNDcxYWE0ZjY4MGZiNTRjMjQzYWZkMDc3MzcyNzVkYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5oCkBAIC04OSw4ICs4OSw4IEBAIHByaXZh
dGU6CiAgICAgUHJvcGVydHlSZWdpc3RyeSBtX3Byb3BlcnR5UmVnaXN0cnkgeyAqdGhpcyB9Owog
ICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV9yZWZYIHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNy
ZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpXaWR0aCkgfTsKICAgICBSZWY8U1ZHQW5pbWF0ZWRM
ZW5ndGg+IG1fcmVmWSB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3Ro
TW9kZTo6SGVpZ2h0KSB9OwotICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV9tYXJrZXJXaWR0
aCB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6V2lkdGgs
ICIzIikgfTsKLSAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1fbWFya2VySGVpZ2h0IHsgU1ZH
QW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpIZWlnaHQsICIzIikg
fTsKKyAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1fbWFya2VyV2lkdGggeyBTVkdBbmltYXRl
ZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OldpZHRoLCAiMyJfcykgfTsKKyAg
ICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1fbWFya2VySGVpZ2h0IHsgU1ZHQW5pbWF0ZWRMZW5n
dGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpIZWlnaHQsICIzIl9zKSB9OwogICAgIFJl
ZjxTVkdBbmltYXRlZEVudW1lcmF0aW9uPiBtX21hcmtlclVuaXRzIHsgU1ZHQW5pbWF0ZWRFbnVt
ZXJhdGlvbjo6Y3JlYXRlKHRoaXMsIFNWR01hcmtlclVuaXRzU3Ryb2tlV2lkdGgpIH07CiAgICAg
UmVmPFNWR0FuaW1hdGVkQW5nbGU+IG1fb3JpZW50QW5nbGUgeyBTVkdBbmltYXRlZEFuZ2xlOjpj
cmVhdGUodGhpcykgfTsKICAgICBSZWY8U1ZHQW5pbWF0ZWRPcmllbnRUeXBlPiBtX29yaWVudFR5
cGUgeyBTVkdBbmltYXRlZE9yaWVudFR5cGU6OmNyZWF0ZSh0aGlzLCBTVkdNYXJrZXJPcmllbnRB
bmdsZSkgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmgKaW5kZXggNDkwZGMyMjFhYjI0
NGEzZWY1ZmRkZDI4NWRmMzdhNmU0NjAwMzQyZC4uZGJkMDQyZDBkM2FmODEyMGUwMGY1OTliOTVi
MDFkMTEzOGNlMjFkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmgKQEAgLTYzLDEw
ICs2MywxMCBAQCBwcml2YXRlOgogICAgIGJvb2wgc2VsZkhhc1JlbGF0aXZlTGVuZ3RocygpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIFByb3BlcnR5UmVnaXN0cnkgbV9wcm9w
ZXJ0eVJlZ2lzdHJ5IHsgKnRoaXMgfTsKLSAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1feCB7
IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6V2lkdGgsICIt
MTAlIikgfTsKLSAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1feSB7IFNWR0FuaW1hdGVkTGVu
Z3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6SGVpZ2h0LCAiLTEwJSIpIH07Ci0gICAg
UmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX3dpZHRoIHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0
ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpXaWR0aCwgIjEyMCUiKSB9OwotICAgIFJlZjxTVkdBbmlt
YXRlZExlbmd0aD4gbV9oZWlnaHQgeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNW
R0xlbmd0aE1vZGU6OkhlaWdodCwgIjEyMCUiKSB9OworICAgIFJlZjxTVkdBbmltYXRlZExlbmd0
aD4gbV94IHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpX
aWR0aCwgIi0xMCUiX3MpIH07CisgICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX3kgeyBTVkdB
bmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OkhlaWdodCwgIi0xMCUi
X3MpIH07CisgICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX3dpZHRoIHsgU1ZHQW5pbWF0ZWRM
ZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpXaWR0aCwgIjEyMCUiX3MpIH07Cisg
ICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX2hlaWdodCB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpj
cmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6SGVpZ2h0LCAiMTIwJSJfcykgfTsKICAgICBSZWY8
U1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbj4gbV9tYXNrVW5pdHMgeyBTVkdBbmltYXRlZEVudW1lcmF0
aW9uOjpjcmVhdGUodGhpcywgU1ZHVW5pdFR5cGVzOjpTVkdfVU5JVF9UWVBFX09CSkVDVEJPVU5E
SU5HQk9YKSB9OwogICAgIFJlZjxTVkdBbmltYXRlZEVudW1lcmF0aW9uPiBtX21hc2tDb250ZW50
VW5pdHMgeyBTVkdBbmltYXRlZEVudW1lcmF0aW9uOjpjcmVhdGUodGhpcywgU1ZHVW5pdFR5cGVz
OjpTVkdfVU5JVF9UWVBFX1VTRVJTUEFDRU9OVVNFKSB9OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnSW1wbC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Bh
dGhTZWdJbXBsLmgKaW5kZXggYTYzNjE1NDI5NGZlYTNhNWIwNWJmOWZlOGYyZjkwYzE4ZWExMDgz
NC4uMzRmMjNjNTE1Zjk0YjkzOTE3MGYzYTVjZTlhZThmYjUyODg2NjE5OSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdJbXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1BhdGhTZWdJbXBsLmgKQEAgLTM1LDcgKzM1LDcgQEAgcHVibGljOgogcHJpdmF0ZToK
ICAgICB1c2luZyBTVkdQYXRoU2VnOjpTVkdQYXRoU2VnOwogICAgIHVuc2lnbmVkIHNob3J0IHBh
dGhTZWdUeXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gUEFUSFNFR19DTE9TRVBBVEg7IH0KLSAg
ICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJaIjsg
fQorICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
IloiX3M7IH0KICAgICBSZWY8U1ZHUGF0aFNlZz4gY2xvbmUoKSBjb25zdCBmaW5hbCB7IHJldHVy
biBhZG9wdFJlZigqbmV3IFNWR1BhdGhTZWdDbG9zZVBhdGgoKSk7IH0KIH07CiAKQEAgLTQ1LDcg
KzQ1LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB1c2luZyBTVkdQYXRoU2VnTGluZXRvSG9y
aXpvbnRhbDo6U1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWw7CiAgICAgdW5zaWduZWQgc2hvcnQg
cGF0aFNlZ1R5cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBQQVRIU0VHX0xJTkVUT19IT1JJWk9O
VEFMX0FCUzsgfQotICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwg
eyByZXR1cm4gIkgiOyB9CisgICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBm
aW5hbCB7IHJldHVybiAiSCJfczsgfQogICAgIFJlZjxTVkdQYXRoU2VnPiBjbG9uZSgpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIFNWR1BhdGhTZWdWYWx1ZTo6Y2xvbmU8U1ZHUGF0aFNlZ0xpbmV0b0hv
cml6b250YWxBYnM+KCk7IH0KIH07CiAKQEAgLTU1LDcgKzU1LDcgQEAgcHVibGljOgogcHJpdmF0
ZToKICAgICB1c2luZyBTVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbDo6U1ZHUGF0aFNlZ0xpbmV0
b0hvcml6b250YWw7CiAgICAgdW5zaWduZWQgc2hvcnQgcGF0aFNlZ1R5cGUoKSBjb25zdCBmaW5h
bCB7IHJldHVybiBQQVRIU0VHX0xJTkVUT19IT1JJWk9OVEFMX1JFTDsgfQotICAgIFN0cmluZyBw
YXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gImgiOyB9CisgICAgU3Ry
aW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiaCJfczsgfQog
ICAgIFJlZjxTVkdQYXRoU2VnPiBjbG9uZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFNWR1BhdGhT
ZWdWYWx1ZTo6Y2xvbmU8U1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxSZWw+KCk7IH0KIH07CiAK
QEAgLTY1LDcgKzY1LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB1c2luZyBTVkdQYXRoU2Vn
TGluZXRvVmVydGljYWw6OlNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbDsKICAgICB1bnNpZ25lZCBz
aG9ydCBwYXRoU2VnVHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFBBVEhTRUdfTElORVRPX1ZF
UlRJQ0FMX0FCUzsgfQotICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gIlYiOyB9CisgICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25z
dCBmaW5hbCB7IHJldHVybiAiViJfczsgfQogICAgIFJlZjxTVkdQYXRoU2VnPiBjbG9uZSgpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIFNWR1BhdGhTZWdWYWx1ZTo6Y2xvbmU8U1ZHUGF0aFNlZ0xpbmV0
b1ZlcnRpY2FsQWJzPigpOyB9CiB9OwogCkBAIC03NSw3ICs3NSw3IEBAIHB1YmxpYzoKIHByaXZh
dGU6CiAgICAgdXNpbmcgU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsOjpTVkdQYXRoU2VnTGluZXRv
VmVydGljYWw7CiAgICAgdW5zaWduZWQgc2hvcnQgcGF0aFNlZ1R5cGUoKSBjb25zdCBmaW5hbCB7
IHJldHVybiBQQVRIU0VHX0xJTkVUT19WRVJUSUNBTF9SRUw7IH0KLSAgICBTdHJpbmcgcGF0aFNl
Z1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJ2IjsgfQorICAgIFN0cmluZyBw
YXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gInYiX3M7IH0KICAgICBS
ZWY8U1ZHUGF0aFNlZz4gY2xvbmUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBTVkdQYXRoU2VnVmFs
dWU6OmNsb25lPFNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbFJlbD4oKTsgfQogfTsKIApAQCAtODUs
NyArODUsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHVzaW5nIFNWR1BhdGhTZWdTaW5nbGVD
b29yZGluYXRlOjpTVkdQYXRoU2VnU2luZ2xlQ29vcmRpbmF0ZTsKICAgICB1bnNpZ25lZCBzaG9y
dCBwYXRoU2VnVHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFBBVEhTRUdfTU9WRVRPX0FCUzsg
fQotICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
Ik0iOyB9CisgICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiAiTSJfczsgfQogICAgIFJlZjxTVkdQYXRoU2VnPiBjbG9uZSgpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIFNWR1BhdGhTZWdWYWx1ZTo6Y2xvbmU8U1ZHUGF0aFNlZ01vdmV0b0Ficz4oKTsgfQog
fTsKIApAQCAtOTUsNyArOTUsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHVzaW5nIFNWR1Bh
dGhTZWdTaW5nbGVDb29yZGluYXRlOjpTVkdQYXRoU2VnU2luZ2xlQ29vcmRpbmF0ZTsKICAgICB1
bnNpZ25lZCBzaG9ydCBwYXRoU2VnVHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFBBVEhTRUdf
TU9WRVRPX1JFTDsgfQotICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gIm0iOyB9CisgICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25z
dCBmaW5hbCB7IHJldHVybiAibSJfczsgfQogICAgIFJlZjxTVkdQYXRoU2VnPiBjbG9uZSgpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIFNWR1BhdGhTZWdWYWx1ZTo6Y2xvbmU8U1ZHUGF0aFNlZ01vdmV0
b1JlbD4oKTsgfQogfTsKIApAQCAtMTA1LDcgKzEwNSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAg
ICAgdXNpbmcgU1ZHUGF0aFNlZ1NpbmdsZUNvb3JkaW5hdGU6OlNWR1BhdGhTZWdTaW5nbGVDb29y
ZGluYXRlOwogICAgIHVuc2lnbmVkIHNob3J0IHBhdGhTZWdUeXBlKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gUEFUSFNFR19MSU5FVE9fQUJTOyB9Ci0gICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0
ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiTCI7IH0KKyAgICBTdHJpbmcgcGF0aFNlZ1R5cGVB
c0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJMIl9zOyB9CiAgICAgUmVmPFNWR1BhdGhT
ZWc+IGNsb25lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gU1ZHUGF0aFNlZ1ZhbHVlOjpjbG9uZTxT
VkdQYXRoU2VnTGluZXRvQWJzPigpOyB9CiB9OwogCkBAIC0xMTUsNyArMTE1LDcgQEAgcHVibGlj
OgogcHJpdmF0ZToKICAgICB1c2luZyBTVkdQYXRoU2VnU2luZ2xlQ29vcmRpbmF0ZTo6U1ZHUGF0
aFNlZ1NpbmdsZUNvb3JkaW5hdGU7CiAgICAgdW5zaWduZWQgc2hvcnQgcGF0aFNlZ1R5cGUoKSBj
b25zdCBmaW5hbCB7IHJldHVybiBQQVRIU0VHX0xJTkVUT19SRUw7IH0KLSAgICBTdHJpbmcgcGF0
aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJsIjsgfQorICAgIFN0cmlu
ZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gImwiX3M7IH0KICAg
ICBSZWY8U1ZHUGF0aFNlZz4gY2xvbmUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBTVkdQYXRoU2Vn
VmFsdWU6OmNsb25lPFNWR1BhdGhTZWdMaW5ldG9SZWw+KCk7IH0KIH07CiAKQEAgLTEyNSw3ICsx
MjUsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHVzaW5nIFNWR1BhdGhTZWdDdXJ2ZXRvUXVh
ZHJhdGljOjpTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpYzsKICAgICB1bnNpZ25lZCBzaG9ydCBw
YXRoU2VnVHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFBBVEhTRUdfQ1VSVkVUT19RVUFEUkFU
SUNfQUJTOyB9Ci0gICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7
IHJldHVybiAiUSI7IH0KKyAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuICJRIl9zOyB9CiAgICAgUmVmPFNWR1BhdGhTZWc+IGNsb25lKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gU1ZHUGF0aFNlZ1ZhbHVlOjpjbG9uZTxTVkdQYXRoU2VnQ3VydmV0b1F1
YWRyYXRpY0Ficz4oKTsgfQogfTsKIApAQCAtMTM1LDcgKzEzNSw3IEBAIHB1YmxpYzoKIHByaXZh
dGU6CiAgICAgdXNpbmcgU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWM6OlNWR1BhdGhTZWdDdXJ2
ZXRvUXVhZHJhdGljOwogICAgIHVuc2lnbmVkIHNob3J0IHBhdGhTZWdUeXBlKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gUEFUSFNFR19DVVJWRVRPX1FVQURSQVRJQ19SRUw7IH0KLSAgICBTdHJpbmcg
cGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJxIjsgfQorICAgIFN0
cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gInEiX3M7IH0K
ICAgICBSZWY8U1ZHUGF0aFNlZz4gY2xvbmUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBTVkdQYXRo
U2VnVmFsdWU6OmNsb25lPFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljUmVsPigpOyB9CiB9Owog
CkBAIC0xNDUsNyArMTQ1LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB1c2luZyBTVkdQYXRo
U2VnQ3VydmV0b0N1YmljOjpTVkdQYXRoU2VnQ3VydmV0b0N1YmljOwogICAgIHVuc2lnbmVkIHNo
b3J0IHBhdGhTZWdUeXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gUEFUSFNFR19DVVJWRVRPX0NV
QklDX0FCUzsgfQotICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwg
eyByZXR1cm4gIkMiOyB9CisgICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBm
aW5hbCB7IHJldHVybiAiQyJfczsgfQogICAgIFJlZjxTVkdQYXRoU2VnPiBjbG9uZSgpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIFNWR1BhdGhTZWdWYWx1ZTo6Y2xvbmU8U1ZHUGF0aFNlZ0N1cnZldG9D
dWJpY0Ficz4oKTsgfQogfTsKIApAQCAtMTU1LDcgKzE1NSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6
CiAgICAgdXNpbmcgU1ZHUGF0aFNlZ0N1cnZldG9DdWJpYzo6U1ZHUGF0aFNlZ0N1cnZldG9DdWJp
YzsKICAgICB1bnNpZ25lZCBzaG9ydCBwYXRoU2VnVHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IFBBVEhTRUdfQ1VSVkVUT19DVUJJQ19SRUw7IH0KLSAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xl
dHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJjIjsgfQorICAgIFN0cmluZyBwYXRoU2VnVHlw
ZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gImMiX3M7IH0KICAgICBSZWY8U1ZHUGF0
aFNlZz4gY2xvbmUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBTVkdQYXRoU2VnVmFsdWU6OmNsb25l
PFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNSZWw+KCk7IH0KIH07CiAKQEAgLTE2NSw3ICsxNjUsNyBA
QCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHVzaW5nIFNWR1BhdGhTZWdBcmM6OlNWR1BhdGhTZWdB
cmM7CiAgICAgdW5zaWduZWQgc2hvcnQgcGF0aFNlZ1R5cGUoKSBjb25zdCBmaW5hbCB7IHJldHVy
biBQQVRIU0VHX0FSQ19BQlM7IH0KLSAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuICJBIjsgfQorICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVy
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gIkEiX3M7IH0KICAgICBSZWY8U1ZHUGF0aFNlZz4gY2xv
bmUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBTVkdQYXRoU2VnVmFsdWU6OmNsb25lPFNWR1BhdGhT
ZWdBcmNBYnM+KCk7IH0KIH07CiAKQEAgLTE3NSw3ICsxNzUsNyBAQCBwdWJsaWM6CiBwcml2YXRl
OgogICAgIHVzaW5nIFNWR1BhdGhTZWdBcmM6OlNWR1BhdGhTZWdBcmM7CiAgICAgdW5zaWduZWQg
c2hvcnQgcGF0aFNlZ1R5cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBQQVRIU0VHX0FSQ19SRUw7
IH0KLSAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
ICJhIjsgfQorICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gImEiX3M7IH0KICAgICBSZWY8U1ZHUGF0aFNlZz4gY2xvbmUoKSBjb25zdCBmaW5hbCB7
IHJldHVybiBTVkdQYXRoU2VnVmFsdWU6OmNsb25lPFNWR1BhdGhTZWdBcmNSZWw+KCk7IH0KIH07
CiAKQEAgLTE4NSw3ICsxODUsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHVzaW5nIFNWR1Bh
dGhTZWdTaW5nbGVDb29yZGluYXRlOjpTVkdQYXRoU2VnU2luZ2xlQ29vcmRpbmF0ZTsKICAgICB1
bnNpZ25lZCBzaG9ydCBwYXRoU2VnVHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFBBVEhTRUdf
Q1VSVkVUT19RVUFEUkFUSUNfU01PT1RIX0FCUzsgfQotICAgIFN0cmluZyBwYXRoU2VnVHlwZUFz
TGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIlQiOyB9CisgICAgU3RyaW5nIHBhdGhTZWdU
eXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiVCJfczsgfQogICAgIFJlZjxTVkdQ
YXRoU2VnPiBjbG9uZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFNWR1BhdGhTZWdWYWx1ZTo6Y2xv
bmU8U1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhBYnM+KCk7IH0KIH07CiAKQEAgLTE5
NSw3ICsxOTUsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHVzaW5nIFNWR1BhdGhTZWdTaW5n
bGVDb29yZGluYXRlOjpTVkdQYXRoU2VnU2luZ2xlQ29vcmRpbmF0ZTsKICAgICB1bnNpZ25lZCBz
aG9ydCBwYXRoU2VnVHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFBBVEhTRUdfQ1VSVkVUT19R
VUFEUkFUSUNfU01PT1RIX1JFTDsgfQotICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gInQiOyB9CisgICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0
ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAidCJfczsgfQogICAgIFJlZjxTVkdQYXRoU2VnPiBj
bG9uZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFNWR1BhdGhTZWdWYWx1ZTo6Y2xvbmU8U1ZHUGF0
aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhSZWw+KCk7IH0KIH07CiAKQEAgLTIwNSw3ICsyMDUs
NyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHVzaW5nIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNT
bW9vdGg6OlNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGg7CiAgICAgdW5zaWduZWQgc2hvcnQg
cGF0aFNlZ1R5cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBQQVRIU0VHX0NVUlZFVE9fQ1VCSUNf
U01PT1RIX0FCUzsgfQotICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gIlMiOyB9CisgICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25z
dCBmaW5hbCB7IHJldHVybiAiUyJfczsgfQogICAgIFJlZjxTVkdQYXRoU2VnPiBjbG9uZSgpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIFNWR1BhdGhTZWdWYWx1ZTo6Y2xvbmU8U1ZHUGF0aFNlZ0N1cnZl
dG9DdWJpY1Ntb290aEFicz4oKTsgfQogfTsKIApAQCAtMjE1LDcgKzIxNSw3IEBAIHB1YmxpYzoK
IHByaXZhdGU6CiAgICAgdXNpbmcgU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aDo6U1ZHUGF0
aFNlZ0N1cnZldG9DdWJpY1Ntb290aDsKICAgICB1bnNpZ25lZCBzaG9ydCBwYXRoU2VnVHlwZSgp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIFBBVEhTRUdfQ1VSVkVUT19DVUJJQ19TTU9PVEhfUkVMOyB9
Ci0gICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAi
cyI7IH0KKyAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuICJzIl9zOyB9CiAgICAgUmVmPFNWR1BhdGhTZWc+IGNsb25lKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gU1ZHUGF0aFNlZ1ZhbHVlOjpjbG9uZTxTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3Ro
UmVsPigpOyB9CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmFkaWFs
R3JhZGllbnRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmFkaWFsR3JhZGllbnRF
bGVtZW50LmgKaW5kZXggODRmMTE1ODhmM2UyODFlNmY2ZTA3YTYwOWQwODlhOTc4NzA4YTM5ZS4u
MjQxOTdmNzQ1NzcxNjU3YzE3ZDhkMDdiMmNkMjRlNTRlMzRjODA4ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuaApAQCAtNjMsMTIgKzYzLDEyIEBA
IHByaXZhdGU6CiAgICAgYm9vbCBzZWxmSGFzUmVsYXRpdmVMZW5ndGhzKCkgY29uc3Qgb3ZlcnJp
ZGU7CiAKICAgICBQcm9wZXJ0eVJlZ2lzdHJ5IG1fcHJvcGVydHlSZWdpc3RyeSB7ICp0aGlzIH07
Ci0gICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX2N4IHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNy
ZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpXaWR0aCwgIjUwJSIpIH07Ci0gICAgUmVmPFNWR0Fu
aW1hdGVkTGVuZ3RoPiBtX2N5IHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdM
ZW5ndGhNb2RlOjpIZWlnaHQsICI1MCUiKSB9OwotICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4g
bV9yIHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpPdGhl
ciwgIjUwJSIpIH07CisgICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX2N4IHsgU1ZHQW5pbWF0
ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpXaWR0aCwgIjUwJSJfcykgfTsK
KyAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1fY3kgeyBTVkdBbmltYXRlZExlbmd0aDo6Y3Jl
YXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OkhlaWdodCwgIjUwJSJfcykgfTsKKyAgICBSZWY8U1ZH
QW5pbWF0ZWRMZW5ndGg+IG1fciB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZH
TGVuZ3RoTW9kZTo6T3RoZXIsICI1MCUiX3MpIH07CiAgICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3Ro
PiBtX2Z4IHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpX
aWR0aCkgfTsKICAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1fZnkgeyBTVkdBbmltYXRlZExl
bmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OkhlaWdodCkgfTsKLSAgICBSZWY8U1ZH
QW5pbWF0ZWRMZW5ndGg+IG1fZnIgeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNW
R0xlbmd0aE1vZGU6Ok90aGVyLCAiMCUiKSB9OworICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4g
bV9mciB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6T3Ro
ZXIsICIwJSJfcykgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5VHJhaXRzLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRyYWl0cy5oCmluZGV4IDQzOTk3
MDQzMGY2NTZhOTg2NWU2ZTljOWQ5ZWY1ZWEyNGJiYTUzMDQuLjg0NWFiNGFiZmZiNzg5NTg0ODY5
ZjlmZjFhYTVlODMyMDEyODBhNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9w
ZXJ0aWVzL1NWR1Byb3BlcnR5VHJhaXRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3Bl
cnRpZXMvU1ZHUHJvcGVydHlUcmFpdHMuaApAQCAtMzksNyArMzksNyBAQCBzdHJ1Y3QgU1ZHUHJv
cGVydHlUcmFpdHM8Ym9vbD4gewogICAgIHN0YXRpYyBib29sIGluaXRpYWxWYWx1ZSgpIHsgcmV0
dXJuIGZhbHNlOyB9CiAgICAgc3RhdGljIGJvb2wgZnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0
cmluZykgeyByZXR1cm4gc3RyaW5nID09ICJ0cnVlIjsgfQogICAgIHN0YXRpYyBzdGQ6Om9wdGlv
bmFsPGJvb2w+IHBhcnNlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBTdHJpbmcmKSB7IEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOyByZXR1cm4gaW5pdGlhbFZhbHVlKCk7IH0KLSAgICBzdGF0aWMg
U3RyaW5nIHRvU3RyaW5nKGJvb2wgdHlwZSkgeyByZXR1cm4gdHlwZSA/ICJ0cnVlIiA6ICJmYWxz
ZSI7IH0KKyAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGJvb2wgdHlwZSkgeyByZXR1cm4gdHlw
ZSA/ICJ0cnVlIl9zIDogImZhbHNlIl9zOyB9CiB9OwogCiB0ZW1wbGF0ZTw+CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MuaCBiL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5ncy5oCmluZGV4IDE4
MWVmZjViNWI4ZWEwMDE4ZTlmM2IwYzI0M2FjN2Q0ZTNlOWRjYTcuLmYzYzk3ZjNmOGUxM2FhMGYx
MjdkZWU4NDM5ZDZiNWMwZDBlM2MxZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5ncy5oCkBAIC00OCw3ICs0OCw3IEBAIHB1YmxpYzoK
IAogICAgIFdFQkNPUkVfVEVTVFNVUFBPUlRfRVhQT1JUIHN0YXRpYyBNb2NrQ29udGVudEZpbHRl
clNldHRpbmdzJiBzaW5nbGV0b24oKTsKICAgICBXRUJDT1JFX1RFU1RTVVBQT1JUX0VYUE9SVCBz
dGF0aWMgdm9pZCByZXNldCgpOwotICAgIHN0YXRpYyBjb25zdCBjaGFyKiB1bmJsb2NrVVJMSG9z
dCgpIHsgcmV0dXJuICJtb2NrLXVuYmxvY2siOyB9CisgICAgc3RhdGljIEFTQ0lJTGl0ZXJhbCB1
bmJsb2NrVVJMSG9zdCgpIHsgcmV0dXJuICJtb2NrLXVuYmxvY2siX3M7IH0KIAogICAgIC8vIFRy
aWNrIHRoZSBnZW5lcmF0ZWQgYmluZGluZ3MgaW50byB0aGlua2luZyB3ZSdyZSBSZWZDb3VudGVk
LgogICAgIHZvaWQgcmVmKCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFBh
dGhWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoVmFsdWUuaAppbmRleCBkOTFjNzdk
MTAyZDI0YWQyM2U1OTM5ODZlMDQwYmEyNWMwOWRiMzZiLi5lYTgzZjdkMGJiMWFhZjE0YTdiYTcy
MTA5NGYzYjIxOWEyMmIyM2IxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhW
YWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aFZhbHVlLmgKQEAgLTQwLDcgKzQw
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgVmFsdWUoZG91YmxlIHZhbHVl
KSA6IG1fdHlwZShOdW1iZXJWYWx1ZSksIG1fbnVtYmVyKHZhbHVlKSB7IH0KIAogICAgICAgICAg
ICAgVmFsdWUoY29uc3QgU3RyaW5nJiB2YWx1ZSkgOiBtX3R5cGUoU3RyaW5nVmFsdWUpLCBtX2Rh
dGEoRGF0YTo6Y3JlYXRlKHZhbHVlKSkgeyB9Ci0gICAgICAgICAgICBWYWx1ZShjb25zdCBjaGFy
KiB2YWx1ZSkgOiBtX3R5cGUoU3RyaW5nVmFsdWUpLCBtX2RhdGEoRGF0YTo6Y3JlYXRlKHZhbHVl
KSkgeyB9CisgICAgICAgICAgICBWYWx1ZShjb25zdCBjaGFyKiB2YWx1ZSkgOiBtX3R5cGUoU3Ry
aW5nVmFsdWUpLCBtX2RhdGEoRGF0YTo6Y3JlYXRlKFN0cmluZyB7IHZhbHVlIH0pKSB7IH0KIAog
ICAgICAgICAgICAgZXhwbGljaXQgVmFsdWUoTm9kZVNldCYmIHZhbHVlKQogICAgICAgICAgICAg
ICAgIDogbV90eXBlKE5vZGVTZXRWYWx1ZSksIG1fZGF0YShEYXRhOjpjcmVhdGUoV1RGTW92ZSh2
YWx1ZSkpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hTTFN0eWxlU2hlZXQuaCBi
L1NvdXJjZS9XZWJDb3JlL3htbC9YU0xTdHlsZVNoZWV0LmgKaW5kZXggYTJiZjhlMzM0OWFiNTYz
NmY1Mjc0ZTQ1MjRjMzBiYjE4NmM2ZmRlZC4uNWZiZDZlYmE0NzlkODdlOWI3ZTgyMWFmOWVhMzJm
MDMwZjQ2ODUwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hTTFN0eWxlU2hlZXQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMU3R5bGVTaGVldC5oCkBAIC04NCw3ICs4NCw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIG1hcmtBc1Byb2Nlc3NlZCgpOwogICAgIGJvb2wgcHJvY2Vz
c2VkKCkgY29uc3QgeyByZXR1cm4gbV9wcm9jZXNzZWQ7IH0KICAgICAKLSAgICBTdHJpbmcgdHlw
ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJ0ZXh0L3htbCI7IH0KKyAgICBTdHJpbmcgdHlw
ZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJ0ZXh0L3htbCJfczsgfQogICAgIGJvb2wgZGlz
YWJsZWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2lzRGlzYWJsZWQ7IH0KICAgICB2b2lk
IHNldERpc2FibGVkKGJvb2wgYikgb3ZlcnJpZGUgeyBtX2lzRGlzYWJsZWQgPSBiOyB9CiAgICAg
Tm9kZSogb3duZXJOb2RlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9vd25lck5vZGU7IH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJHUFUvV0dTTC9QYXJzZXIuY3BwIGIvU291cmNlL1dlYkdQ
VS9XR1NML1BhcnNlci5jcHAKaW5kZXggNjI1NDg3ZGUxODVmZWVjZjk0YTFkMWIzZjBiYzk4NDZl
M2RiOGEwYS4uZTYyZjNlMGMwODdlZmExYzFiYzJkMDhiMWYyZDc4MWFhOWM1Y2M0OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkdQVS9XR1NML1BhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkdQVS9X
R1NML1BhcnNlci5jcHAKQEAgLTIzNCw3ICsyMzQsNyBAQCBFeHBlY3RlZDxVbmlxdWVSZWY8QVNU
OjpHbG9iYWxEZWNsPiwgRXJyb3I+IFBhcnNlcjxMZXhlcj46OnBhcnNlR2xvYmFsRGVjbCgpCiAg
ICAgICAgIHJldHVybiB7IG1ha2VVbmlxdWVSZWY8QVNUOjpGdW5jdGlvbkRlY2w+KFdURk1vdmUo
Zm4pKSB9OwogICAgIH0KICAgICBkZWZhdWx0OgotICAgICAgICBGQUlMKCJUcnlpbmcgdG8gcGFy
c2UgYSBHbG9iYWxEZWNsLCBleHBlY3RlZCAndmFyJywgJ2ZuJywgb3IgJ3N0cnVjdCcuIik7Cisg
ICAgICAgIEZBSUwoIlRyeWluZyB0byBwYXJzZSBhIEdsb2JhbERlY2wsIGV4cGVjdGVkICd2YXIn
LCAnZm4nLCBvciAnc3RydWN0Jy4iX3MpOwogICAgIH0KIH0KIApAQCAtMjgyLDcgKzI4Miw3IEBA
IEV4cGVjdGVkPFVuaXF1ZVJlZjxBU1Q6OkF0dHJpYnV0ZT4sIEVycm9yPiBQYXJzZXI8TGV4ZXI+
OjpwYXJzZUF0dHJpYnV0ZSgpCiAgICAgICAgICAgICBSRVRVUk5fTk9ERV9SRUYoU3RhZ2VBdHRy
aWJ1dGUsIEFTVDo6U3RhZ2VBdHRyaWJ1dGU6OlN0YWdlOjpWZXJ0ZXgpOwogICAgICAgICBpZiAo
c3RhZ2UubV9pZGVudCA9PSAiZnJhZ21lbnQiKQogICAgICAgICAgICAgUkVUVVJOX05PREVfUkVG
KFN0YWdlQXR0cmlidXRlLCBBU1Q6OlN0YWdlQXR0cmlidXRlOjpTdGFnZTo6RnJhZ21lbnQpOwot
ICAgICAgICBGQUlMKCJJbnZhbGlkIHN0YWdlIGF0dHJpYnV0ZSwgdGhlIG9ubHkgb3B0aW9ucyBh
cmUgJ2NvbXB1dGUnLCAndmVydGV4JywgJ2ZyYWdtZW50Jy4iKTsKKyAgICAgICAgRkFJTCgiSW52
YWxpZCBzdGFnZSBhdHRyaWJ1dGUsIHRoZSBvbmx5IG9wdGlvbnMgYXJlICdjb21wdXRlJywgJ3Zl
cnRleCcsICdmcmFnbWVudCcuIl9zKTsKICAgICB9CiAgICAgaWYgKGlkZW50Lm1faWRlbnQgPT0g
ImxvY2F0aW9uIikgewogICAgICAgICBDT05TVU1FX1RZUEUoUGFyZW5MZWZ0KTsKQEAgLTI5Nyw3
ICsyOTcsNyBAQCBFeHBlY3RlZDxVbmlxdWVSZWY8QVNUOjpBdHRyaWJ1dGU+LCBFcnJvcj4gUGFy
c2VyPExleGVyPjo6cGFyc2VBdHRyaWJ1dGUoKQogICAgICAgICBDT05TVU1FX1RZUEUoUGFyZW5S
aWdodCk7CiAgICAgICAgIFJFVFVSTl9OT0RFX1JFRihCdWlsdGluQXR0cmlidXRlLCBuYW1lLm1f
aWRlbnQpOwogICAgIH0KLSAgICBGQUlMKCJVbmtub3duIGF0dHJpYnV0ZSwgdGhlIG9ubHkgc3Vw
cG9ydGVkIGF0dHJpYnV0ZXMgYXJlICdncm91cCcsICdiaW5kaW5nJywgJ3N0YWdlJy4iKTsKKyAg
ICBGQUlMKCJVbmtub3duIGF0dHJpYnV0ZSwgdGhlIG9ubHkgc3VwcG9ydGVkIGF0dHJpYnV0ZXMg
YXJlICdncm91cCcsICdiaW5kaW5nJywgJ3N0YWdlJy4iX3MpOwogfQogCiB0ZW1wbGF0ZTx0eXBl
bmFtZSBMZXhlcj4KQEAgLTM2MCw3ICszNjAsNyBAQCBFeHBlY3RlZDxVbmlxdWVSZWY8QVNUOjpU
eXBlRGVjbD4sIEVycm9yPiBQYXJzZXI8TGV4ZXI+OjpwYXJzZVR5cGVEZWNsKCkKICAgICAgICAg
cmV0dXJuIHBhcnNlVHlwZURlY2xBZnRlcklkZW50aWZpZXIoV1RGTW92ZShuYW1lLm1faWRlbnQp
LCBfc3RhcnRPZkVsZW1lbnRQb3NpdGlvbik7CiAgICAgfQogCi0gICAgRkFJTCgiVHJpZWQgcGFy
c2luZyBhIHR5cGUgYW5kIGl0IGRpZCBub3Qgc3RhcnQgd2l0aCBhbiBpZGVudGlmaWVyIik7Cisg
ICAgRkFJTCgiVHJpZWQgcGFyc2luZyBhIHR5cGUgYW5kIGl0IGRpZCBub3Qgc3RhcnQgd2l0aCBh
biBpZGVudGlmaWVyIl9zKTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgTGV4ZXI+CkBAIC00NTAs
NyArNDUwLDcgQEAgRXhwZWN0ZWQ8QVNUOjpTdG9yYWdlQ2xhc3MsIEVycm9yPiBQYXJzZXI8TGV4
ZXI+OjpwYXJzZVN0b3JhZ2VDbGFzcygpCiAgICAgICAgIHJldHVybiB7IEFTVDo6U3RvcmFnZUNs
YXNzOjpTdG9yYWdlIH07CiAgICAgfQogCi0gICAgRkFJTCgiRXhwZWN0ZWQgb25lIG9mICdmdW5j
dGlvbicvJ3ByaXZhdGUnLydzdG9yYWdlJy8ndW5pZm9ybScvJ3dvcmtncm91cCciKTsKKyAgICBG
QUlMKCJFeHBlY3RlZCBvbmUgb2YgJ2Z1bmN0aW9uJy8ncHJpdmF0ZScvJ3N0b3JhZ2UnLyd1bmlm
b3JtJy8nd29ya2dyb3VwJyJfcyk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIExleGVyPgpAQCAt
NDcxLDcgKzQ3MSw3IEBAIEV4cGVjdGVkPEFTVDo6QWNjZXNzTW9kZSwgRXJyb3I+IFBhcnNlcjxM
ZXhlcj46OnBhcnNlQWNjZXNzTW9kZSgpCiAgICAgICAgIHJldHVybiB7IEFTVDo6QWNjZXNzTW9k
ZTo6UmVhZFdyaXRlIH07CiAgICAgfQogCi0gICAgRkFJTCgiRXhwZWN0ZWQgb25lIG9mICdyZWFk
Jy8nd3JpdGUnLydyZWFkX3dyaXRlJyIpOworICAgIEZBSUwoIkV4cGVjdGVkIG9uZSBvZiAncmVh
ZCcvJ3dyaXRlJy8ncmVhZF93cml0ZSciX3MpOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBMZXhl
cj4KQEAgLTU0Nyw3ICs1NDcsNyBAQCBFeHBlY3RlZDxVbmlxdWVSZWY8QVNUOjpTdGF0ZW1lbnQ+
LCBFcnJvcj4gUGFyc2VyPExleGVyPjo6cGFyc2VTdGF0ZW1lbnQoKQogICAgICAgICBSRVRVUk5f
Tk9ERV9SRUYoQXNzaWdubWVudFN0YXRlbWVudCwgbGhzLm1vdmVUb1VuaXF1ZVB0cigpLCBXVEZN
b3ZlKHJocykpOwogICAgIH0KICAgICBkZWZhdWx0OgotICAgICAgICBGQUlMKCJOb3QgYSB2YWxp
ZCBzdGF0ZW1lbnQiKTsKKyAgICAgICAgRkFJTCgiTm90IGEgdmFsaWQgc3RhdGVtZW50Il9zKTsK
ICAgICB9CiB9CiAKQEAgLTY5NCw3ICs2OTQsNyBAQCBFeHBlY3RlZDxVbmlxdWVSZWY8QVNUOjpF
eHByZXNzaW9uPiwgRXJyb3I+IFBhcnNlcjxMZXhlcj46OnBhcnNlUHJpbWFyeUV4cHJlc3Npbwog
ICAgIGRlZmF1bHQ6CiAgICAgICAgIGJyZWFrOwogICAgIH0KLSAgICBGQUlMKCJFeHBlY3RlZCBv
bmUgb2YgJygnLCBhIGxpdGVyYWwsIG9yIGFuIGlkZW50aWZpZXIiKTsKKyAgICBGQUlMKCJFeHBl
Y3RlZCBvbmUgb2YgJygnLCBhIGxpdGVyYWwsIG9yIGFuIGlkZW50aWZpZXIiX3MpOwogfQogCiB0
ZW1wbGF0ZTx0eXBlbmFtZSBMZXhlcj4KQEAgLTczNCw3ICs3MzQsNyBAQCBFeHBlY3RlZDxVbmlx
dWVSZWY8QVNUOjpFeHByZXNzaW9uPiwgRXJyb3I+IFBhcnNlcjxMZXhlcj46OnBhcnNlQ29yZUxI
U0V4cHJlc3NpbwogICAgICAgICBicmVhazsKICAgICB9CiAKLSAgICBGQUlMKCJUcmllZCB0byBw
YXJzZSB0aGUgbGVmdC1oYW5kIHNpZGUgb2YgYW4gYXNzaWdubWVudCBhbmQgZmFpbGVkIik7Cisg
ICAgRkFJTCgiVHJpZWQgdG8gcGFyc2UgdGhlIGxlZnQtaGFuZCBzaWRlIG9mIGFuIGFzc2lnbm1l
bnQgYW5kIGZhaWxlZCJfcyk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIExleGVyPgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkdQVS9XR1NML1Rva2VuLmNwcCBiL1NvdXJjZS9XZWJHUFUvV0dTTC9U
b2tlbi5jcHAKaW5kZXggZGIzYzBhNDNlMTAzNzJlYjk5NDFmY2YxNmQ4YjIwZWRlN2YwODkxMi4u
NjczMWFhMjJjMTJhMzMwMzY4Y2ZiMWI3NjBjOTY2ZWUxMGYxYWMxMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkdQVS9XR1NML1Rva2VuLmNwcAorKysgYi9Tb3VyY2UvV2ViR1BVL1dHU0wvVG9rZW4u
Y3BwCkBAIC0zMiw4OSArMzIsODkgQEAgU3RyaW5nIHRvU3RyaW5nKFRva2VuVHlwZSB0eXBlKQog
ewogICAgIHN3aXRjaCAodHlwZSkgewogICAgIGNhc2UgVG9rZW5UeXBlOjpJbnZhbGlkOgotICAg
ICAgICByZXR1cm4gIkludmFsaWQiOworICAgICAgICByZXR1cm4gIkludmFsaWQiX3M7CiAgICAg
Y2FzZSBUb2tlblR5cGU6OkVuZE9mRmlsZToKLSAgICAgICAgcmV0dXJuICJFT0YiOworICAgICAg
ICByZXR1cm4gIkVPRiJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6SW50ZWdlckxpdGVyYWw6Ci0g
ICAgICAgIHJldHVybiAiSW50ZWdlckxpdGVyYWwiOworICAgICAgICByZXR1cm4gIkludGVnZXJM
aXRlcmFsIl9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpJbnRlZ2VyTGl0ZXJhbFNpZ25lZDoKLSAg
ICAgICAgcmV0dXJuICJJbnRlZ2VyTGl0ZXJhbFNpZ25lZCI7CisgICAgICAgIHJldHVybiAiSW50
ZWdlckxpdGVyYWxTaWduZWQiX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6OkludGVnZXJMaXRlcmFs
VW5zaWduZWQ6Ci0gICAgICAgIHJldHVybiAiSW50ZWdlckxpdGVyYWxVbnNpZ25lZCI7CisgICAg
ICAgIHJldHVybiAiSW50ZWdlckxpdGVyYWxVbnNpZ25lZCJfczsKICAgICBjYXNlIFRva2VuVHlw
ZTo6RGVjaW1hbEZsb2F0TGl0ZXJhbDoKLSAgICAgICAgcmV0dXJuICJEZWNpbWFsRmxvYXRMaXRl
cmFsIjsKKyAgICAgICAgcmV0dXJuICJEZWNpbWFsRmxvYXRMaXRlcmFsIl9zOwogICAgIGNhc2Ug
VG9rZW5UeXBlOjpIZXhGbG9hdExpdGVyYWw6Ci0gICAgICAgIHJldHVybiAiSGV4RmxvYXRMaXRl
cmFsIjsKKyAgICAgICAgcmV0dXJuICJIZXhGbG9hdExpdGVyYWwiX3M7CiAgICAgY2FzZSBUb2tl
blR5cGU6OklkZW50aWZpZXI6Ci0gICAgICAgIHJldHVybiAiSWRlbnRpZmllciI7CisgICAgICAg
IHJldHVybiAiSWRlbnRpZmllciJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6UmVzZXJ2ZWRXb3Jk
OgotICAgICAgICByZXR1cm4gIlJlc2VydmVkV29yZCI7CisgICAgICAgIHJldHVybiAiUmVzZXJ2
ZWRXb3JkIl9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpLZXl3b3JkU3RydWN0OgotICAgICAgICBy
ZXR1cm4gInN0cnVjdCI7CisgICAgICAgIHJldHVybiAic3RydWN0Il9zOwogICAgIGNhc2UgVG9r
ZW5UeXBlOjpLZXl3b3JkRm46Ci0gICAgICAgIHJldHVybiAiZm4iOworICAgICAgICByZXR1cm4g
ImZuIl9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpLZXl3b3JkRnVuY3Rpb246Ci0gICAgICAgIHJl
dHVybiAiZnVuY3Rpb24iOworICAgICAgICByZXR1cm4gImZ1bmN0aW9uIl9zOwogICAgIGNhc2Ug
VG9rZW5UeXBlOjpLZXl3b3JkUHJpdmF0ZToKLSAgICAgICAgcmV0dXJuICJwcml2YXRlIjsKKyAg
ICAgICAgcmV0dXJuICJwcml2YXRlIl9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpLZXl3b3JkUmVh
ZDoKLSAgICAgICAgcmV0dXJuICJyZWFkIjsKKyAgICAgICAgcmV0dXJuICJyZWFkIl9zOwogICAg
IGNhc2UgVG9rZW5UeXBlOjpLZXl3b3JkUmVhZFdyaXRlOgotICAgICAgICByZXR1cm4gInJlYWRf
d3JpdGUiOworICAgICAgICByZXR1cm4gInJlYWRfd3JpdGUiX3M7CiAgICAgY2FzZSBUb2tlblR5
cGU6OktleXdvcmRSZXR1cm46Ci0gICAgICAgIHJldHVybiAicmV0dXJuIjsKKyAgICAgICAgcmV0
dXJuICJyZXR1cm4iX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6OktleXdvcmRTdG9yYWdlOgotICAg
ICAgICByZXR1cm4gInN0b3JhZ2UiOworICAgICAgICByZXR1cm4gInN0b3JhZ2UiX3M7CiAgICAg
Y2FzZSBUb2tlblR5cGU6OktleXdvcmRVbmlmb3JtOgotICAgICAgICByZXR1cm4gInVuaWZvcm0i
OworICAgICAgICByZXR1cm4gInVuaWZvcm0iX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6OktleXdv
cmRWYXI6Ci0gICAgICAgIHJldHVybiAidmFyIjsKKyAgICAgICAgcmV0dXJuICJ2YXIiX3M7CiAg
ICAgY2FzZSBUb2tlblR5cGU6OktleXdvcmRXb3JrZ3JvdXA6Ci0gICAgICAgIHJldHVybiAid29y
a2dyb3VwIjsKKyAgICAgICAgcmV0dXJuICJ3b3JrZ3JvdXAiX3M7CiAgICAgY2FzZSBUb2tlblR5
cGU6OktleXdvcmRXcml0ZToKLSAgICAgICAgcmV0dXJuICJ3cml0ZSI7CisgICAgICAgIHJldHVy
biAid3JpdGUiX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6OktleXdvcmRJMzI6Ci0gICAgICAgIHJl
dHVybiAiaTMyIjsKKyAgICAgICAgcmV0dXJuICJpMzIiX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6
OktleXdvcmRVMzI6Ci0gICAgICAgIHJldHVybiAidTMyIjsKKyAgICAgICAgcmV0dXJuICJ1MzIi
X3M7CiAgICAgY2FzZSBUb2tlblR5cGU6OktleXdvcmRGMzI6Ci0gICAgICAgIHJldHVybiAiZjMy
IjsKKyAgICAgICAgcmV0dXJuICJmMzIiX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6OktleXdvcmRC
b29sOgotICAgICAgICByZXR1cm4gImJvb2wiOworICAgICAgICByZXR1cm4gImJvb2wiX3M7CiAg
ICAgY2FzZSBUb2tlblR5cGU6OkxpdGVyYWxUcnVlOgotICAgICAgICByZXR1cm4gInRydWUiOwor
ICAgICAgICByZXR1cm4gInRydWUiX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6OkxpdGVyYWxGYWxz
ZToKLSAgICAgICAgcmV0dXJuICJmYWxzZSI7CisgICAgICAgIHJldHVybiAiZmFsc2UiX3M7CiAg
ICAgY2FzZSBUb2tlblR5cGU6OkFycm93OgotICAgICAgICByZXR1cm4gIi0+IjsKKyAgICAgICAg
cmV0dXJuICItPiJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6QXR0cmlidXRlOgotICAgICAgICBy
ZXR1cm4gIkAiOworICAgICAgICByZXR1cm4gIkAiX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6OkJy
YWNrZXRMZWZ0OgotICAgICAgICByZXR1cm4gIlsiOworICAgICAgICByZXR1cm4gIlsiX3M7CiAg
ICAgY2FzZSBUb2tlblR5cGU6OkJyYWNrZXRSaWdodDoKLSAgICAgICAgcmV0dXJuICJdIjsKKyAg
ICAgICAgcmV0dXJuICJdIl9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpCcmFjZUxlZnQ6Ci0gICAg
ICAgIHJldHVybiAieyI7CisgICAgICAgIHJldHVybiAieyJfczsKICAgICBjYXNlIFRva2VuVHlw
ZTo6QnJhY2VSaWdodDoKLSAgICAgICAgcmV0dXJuICJ9IjsKKyAgICAgICAgcmV0dXJuICJ9Il9z
OwogICAgIGNhc2UgVG9rZW5UeXBlOjpDb2xvbjoKLSAgICAgICAgcmV0dXJuICI6IjsKKyAgICAg
ICAgcmV0dXJuICI6Il9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpDb21tYToKLSAgICAgICAgcmV0
dXJuICIsIjsKKyAgICAgICAgcmV0dXJuICIsIl9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpFcXVh
bDoKLSAgICAgICAgcmV0dXJuICI9IjsKKyAgICAgICAgcmV0dXJuICI9Il9zOwogICAgIGNhc2Ug
VG9rZW5UeXBlOjpHVDoKLSAgICAgICAgcmV0dXJuICI+IjsKKyAgICAgICAgcmV0dXJuICI+Il9z
OwogICAgIGNhc2UgVG9rZW5UeXBlOjpMVDoKLSAgICAgICAgcmV0dXJuICI8IjsKKyAgICAgICAg
cmV0dXJuICI8Il9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpQZXJpb2Q6Ci0gICAgICAgIHJldHVy
biAiLiI7CisgICAgICAgIHJldHVybiAiLiJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6UGFyZW5M
ZWZ0OgotICAgICAgICByZXR1cm4gIigiOworICAgICAgICByZXR1cm4gIigiX3M7CiAgICAgY2Fz
ZSBUb2tlblR5cGU6OlBhcmVuUmlnaHQ6Ci0gICAgICAgIHJldHVybiAiKSI7CisgICAgICAgIHJl
dHVybiAiKSJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6U2VtaWNvbG9uOgotICAgICAgICByZXR1
cm4gIjsiOworICAgICAgICByZXR1cm4gIjsiX3M7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViR1BVL1dlYkdQVS9BZGFwdGVyLm1tIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvQWRh
cHRlci5tbQppbmRleCAxYmJhZDYxYTZjZTdlMjk3NTZkZTE1NjFhYTQ2MmRlNWQxYTY4MjY4Li42
MDBkMWQ2ZTdiZjBmNzdiZGQyZjUxOGZmOTQzNTA3ODEyNTJmYTM5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViR1BVL1dlYkdQVS9BZGFwdGVyLm1tCisrKyBiL1NvdXJjZS9XZWJHUFUvV2ViR1BVL0Fk
YXB0ZXIubW0KQEAgLTEyMyw3ICsxMjMsNyBAQCB2b2lkIEFkYXB0ZXI6OnJlcXVlc3REZXZpY2Uo
Y29uc3QgV0dQVURldmljZURlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIENvbXBsZXRpb25IYQogICAg
ICAgICByZXR1cm47CiAgICAgfQogCi0gICAgY2FsbGJhY2soV0dQVVJlcXVlc3REZXZpY2VTdGF0
dXNfU3VjY2VzcywgRGV2aWNlOjpjcmVhdGUobV9kZXZpY2UsIGRlc2NyaXB0b3IubGFiZWwsIG1f
aW5zdGFuY2UpLCB7IH0pOworICAgIGNhbGxiYWNrKFdHUFVSZXF1ZXN0RGV2aWNlU3RhdHVzX1N1
Y2Nlc3MsIERldmljZTo6Y3JlYXRlKG1fZGV2aWNlLCBTdHJpbmcgeyBkZXNjcmlwdG9yLmxhYmVs
IH0sIG1faW5zdGFuY2UpLCB7IH0pOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJHUFUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL0J1ZmZlci5tbSBiL1NvdXJjZS9XZWJHUFUvV2Vi
R1BVL0J1ZmZlci5tbQppbmRleCBmYmIyZjQ0ZGY5ZTUzNmNlNWNmZWRlMTFmNzg1ZGM4Y2RhMWZi
ZGM1Li4zYjkyMjAwMzE4ZGM1MTdkMmEwZWI2ZWMzOTllYTU1NDFjNmE1MTY3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9CdWZmZXIubW0KKysrIGIvU291cmNlL1dlYkdQVS9XZWJH
UFUvQnVmZmVyLm1tCkBAIC0yOTEsNyArMjkxLDcgQEAgdm9pZCBCdWZmZXI6Om1hcEFzeW5jKFdH
UFVNYXBNb2RlRmxhZ3MgbW9kZSwgc2l6ZV90IG9mZnNldCwgc2l6ZV90IHNpemUsIENvbXBsZXQK
ICAgICAvLyAiSWYgYW55IG9mIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgdW5zYXRpc2Zp
ZWQ6IgogICAgIGlmICghdmFsaWRhdGVNYXBBc3luYyhtb2RlLCBvZmZzZXQsIHJhbmdlU2l6ZSkp
IHsKICAgICAgICAgLy8gIlJlY29yZCBhIHZhbGlkYXRpb24gZXJyb3Igb24gdGhlIGN1cnJlbnQg
c2NvcGUuIgotICAgICAgICBtX2RldmljZS0+Z2VuZXJhdGVBVmFsaWRhdGlvbkVycm9yKCJWYWxp
ZGF0aW9uIGZhaWx1cmUuIik7CisgICAgICAgIG1fZGV2aWNlLT5nZW5lcmF0ZUFWYWxpZGF0aW9u
RXJyb3IoIlZhbGlkYXRpb24gZmFpbHVyZS4iX3MpOwogCiAgICAgICAgIC8vICJSZXR1cm4gYSBw
cm9taXNlIHJlamVjdGVkIHdpdGggYW4gT3BlcmF0aW9uRXJyb3Igb24gdGhlIERldmljZSB0aW1l
bGluZS4iCiAgICAgICAgIGNhbGxiYWNrKFdHUFVCdWZmZXJNYXBBc3luY1N0YXR1c19FcnJvcik7
CkBAIC0zNjUsNyArMzY1LDcgQEAgdm9pZCBCdWZmZXI6OnVubWFwKCkKICAgICAvLyAiSWYgYW55
IG9mIHRoZSBmb2xsb3dpbmcgcmVxdWlyZW1lbnRzIGFyZSB1bm1ldCIKICAgICBpZiAoIXZhbGlk
YXRlVW5tYXAoKSkgewogICAgICAgICAvLyAiZ2VuZXJhdGUgYSB2YWxpZGF0aW9uIGVycm9yIGFu
ZCBzdG9wLiIKLSAgICAgICAgbV9kZXZpY2UtPmdlbmVyYXRlQVZhbGlkYXRpb25FcnJvcigiVmFs
aWRhdGlvbiBmYWlsdXJlLiIpOworICAgICAgICBtX2RldmljZS0+Z2VuZXJhdGVBVmFsaWRhdGlv
bkVycm9yKCJWYWxpZGF0aW9uIGZhaWx1cmUuIl9zKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkdQVS9XZWJHUFUvQ29tbWFuZEVuY29kZXIubW0gYi9T
b3VyY2UvV2ViR1BVL1dlYkdQVS9Db21tYW5kRW5jb2Rlci5tbQppbmRleCBhZTRiYWM2MDg1YjRj
NWYyZWU0Y2Q5YzdjM2EzZTBiMDNkNzZkNzkyLi45Njk4YzhhMDk5ZmZkNmMwOTM3ODQzOTRhODEy
YzE4MmYwZWI3ZDViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9Db21tYW5kRW5j
b2Rlci5tbQorKysgYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9Db21tYW5kRW5jb2Rlci5tbQpAQCAt
MTQ5LDcgKzE0OSw3IEBAIHZvaWQgQ29tbWFuZEVuY29kZXI6OmNvcHlCdWZmZXJUb0J1ZmZlcihj
b25zdCBCdWZmZXImIHNvdXJjZSwgdWludDY0X3Qgc291cmNlT2ZmCiAgICAgLy8gIklmIGFueSBv
ZiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIHVuc2F0aXNmaWVkCiAgICAgaWYgKCF2YWxp
ZGF0ZUNvcHlCdWZmZXJUb0J1ZmZlcihzb3VyY2UsIHNvdXJjZU9mZnNldCwgZGVzdGluYXRpb24s
IGRlc3RpbmF0aW9uT2Zmc2V0LCBzaXplKSkgewogICAgICAgICAvLyAiZ2VuZXJhdGUgYSB2YWxp
ZGF0aW9uIGVycm9yIGFuZCBzdG9wLiIKLSAgICAgICAgbV9kZXZpY2UtPmdlbmVyYXRlQVZhbGlk
YXRpb25FcnJvcigiVmFsaWRhdGlvbiBmYWlsdXJlLiIpOworICAgICAgICBtX2RldmljZS0+Z2Vu
ZXJhdGVBVmFsaWRhdGlvbkVycm9yKCJWYWxpZGF0aW9uIGZhaWx1cmUuIl9zKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIApAQCAtMjIwLDcgKzIyMCw3IEBAIHZvaWQgQ29tbWFuZEVuY29kZXI6
OmNsZWFyQnVmZmVyKGNvbnN0IEJ1ZmZlciYgYnVmZmVyLCB1aW50NjRfdCBvZmZzZXQsIHVpbnQ2
NF90CiAgICAgLy8gIklmIGFueSBvZiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIHVuc2F0
aXNmaWVkIgogICAgIGlmICghdmFsaWRhdGVDbGVhckJ1ZmZlcihidWZmZXIsIG9mZnNldCwgc2l6
ZSkpIHsKICAgICAgICAgLy8gImdlbmVyYXRlIGEgdmFsaWRhdGlvbiBlcnJvciBhbmQgc3RvcC4i
Ci0gICAgICAgIG1fZGV2aWNlLT5nZW5lcmF0ZUFWYWxpZGF0aW9uRXJyb3IoIlZhbGlkYXRpb24g
ZmFpbHVyZS4iKTsKKyAgICAgICAgbV9kZXZpY2UtPmdlbmVyYXRlQVZhbGlkYXRpb25FcnJvcigi
VmFsaWRhdGlvbiBmYWlsdXJlLiJfcyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTI2
Miw3ICsyNjIsNyBAQCBSZWZQdHI8Q29tbWFuZEJ1ZmZlcj4gQ29tbWFuZEVuY29kZXI6OmZpbmlz
aChjb25zdCBXR1BVQ29tbWFuZEJ1ZmZlckRlc2NyaXB0b3ImCiAgICAgLy8gIklmIHZhbGlkYXRp
b25TdWNjZWVkZWQgaXMgZmFsc2UsIHRoZW46IgogICAgIGlmICh2YWxpZGF0aW9uRmFpbGVkKSB7
CiAgICAgICAgIC8vICJHZW5lcmF0ZSBhIHZhbGlkYXRpb24gZXJyb3IuIgotICAgICAgICBtX2Rl
dmljZS0+Z2VuZXJhdGVBVmFsaWRhdGlvbkVycm9yKCJWYWxpZGF0aW9uIGZhaWx1cmUuIik7Cisg
ICAgICAgIG1fZGV2aWNlLT5nZW5lcmF0ZUFWYWxpZGF0aW9uRXJyb3IoIlZhbGlkYXRpb24gZmFp
bHVyZS4iX3MpOwogCiAgICAgICAgIC8vIEZJWE1FOiAiUmV0dXJuIGEgbmV3IGludmFsaWQgR1BV
Q29tbWFuZEJ1ZmZlci4iCiAgICAgICAgIHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkdQVS9XZWJHUFUvQ29tcHV0ZVBpcGVsaW5lLm1tIGIvU291cmNlL1dlYkdQVS9XZWJH
UFUvQ29tcHV0ZVBpcGVsaW5lLm1tCmluZGV4IGVkOWI4Y2ZmNjQxNDMwMTJlNzdiM2UyMWZjNWU5
Y2FiMDc1OTM2NGMuLmU0YWQ3N2FmOTdhM2MxMzg5MjFiNDdkMDI2NTk4YjhiYzc2ZGE0YTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL0NvbXB1dGVQaXBlbGluZS5tbQorKysgYi9T
b3VyY2UvV2ViR1BVL1dlYkdQVS9Db21wdXRlUGlwZWxpbmUubW0KQEAgLTcxLDcgKzcxLDcgQEAg
c3RhdGljIE1UTEZ1bmN0aW9uQ29uc3RhbnRWYWx1ZXMgKmNyZWF0ZUNvbnN0YW50VmFsdWVzKHVp
bnQzMl90IGNvbnN0YW50Q291bnQsIGMKICAgICBhdXRvIGNvbnN0YW50VmFsdWVzID0gW01UTEZ1
bmN0aW9uQ29uc3RhbnRWYWx1ZXMgbmV3XTsKICAgICBmb3IgKHVpbnQzMl90IGkgPSAwOyBpIDwg
Y29uc3RhbnRDb3VudDsgKytpKSB7CiAgICAgICAgIGNvbnN0IGF1dG8mIGVudHJ5ID0gY29uc3Rh
bnRzW2ldOwotICAgICAgICBhdXRvIG5hbWVJdGVyYXRvciA9IGVudHJ5UG9pbnRJbmZvcm1hdGlv
bi5zcGVjaWFsaXphdGlvbkNvbnN0YW50SW5kaWNlcy5maW5kKGVudHJ5LmtleSk7CisgICAgICAg
IGF1dG8gbmFtZUl0ZXJhdG9yID0gZW50cnlQb2ludEluZm9ybWF0aW9uLnNwZWNpYWxpemF0aW9u
Q29uc3RhbnRJbmRpY2VzLmZpbmQoU3RyaW5nIHsgZW50cnkua2V5IH0pOwogICAgICAgICBpZiAo
bmFtZUl0ZXJhdG9yID09IGVudHJ5UG9pbnRJbmZvcm1hdGlvbi5zcGVjaWFsaXphdGlvbkNvbnN0
YW50SW5kaWNlcy5lbmQoKSkKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICBh
dXRvIHNwZWNpYWxpemF0aW9uQ29uc3RhbnRJbmRleCA9IG5hbWVJdGVyYXRvci0+dmFsdWU7CkBA
IC0xNTAsNyArMTUwLDcgQEAgUmVmUHRyPENvbXB1dGVQaXBlbGluZT4gRGV2aWNlOjpjcmVhdGVD
b21wdXRlUGlwZWxpbmUoY29uc3QgV0dQVUNvbXB1dGVQaXBlbGluZUQKICAgICBjb25zdCBQaXBl
bGluZUxheW91dCYgcGlwZWxpbmVMYXlvdXQgPSBXZWJHUFU6OmZyb21BUEkoZGVzY3JpcHRvci5s
YXlvdXQpOwogICAgIGF1dG8gbGFiZWwgPSBmcm9tQVBJKGRlc2NyaXB0b3IubGFiZWwpOwogCi0g
ICAgYXV0byBsaWJyYXJ5Q3JlYXRpb25SZXN1bHQgPSBjcmVhdGVMaWJyYXJ5KG1fZGV2aWNlLCBz
aGFkZXJNb2R1bGUsIHBpcGVsaW5lTGF5b3V0LCBkZXNjcmlwdG9yLmNvbXB1dGUuZW50cnlQb2lu
dCwgbGFiZWwpOworICAgIGF1dG8gbGlicmFyeUNyZWF0aW9uUmVzdWx0ID0gY3JlYXRlTGlicmFy
eShtX2RldmljZSwgc2hhZGVyTW9kdWxlLCBwaXBlbGluZUxheW91dCwgU3RyaW5nIHsgZGVzY3Jp
cHRvci5jb21wdXRlLmVudHJ5UG9pbnQgfSwgbGFiZWwpOwogICAgIGlmICghbGlicmFyeUNyZWF0
aW9uUmVzdWx0KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkdQVS9XZWJHUFUvUXVldWUubW0gYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9RdWV1ZS5tbQpp
bmRleCBiN2JkNTdjZjVhNDI2ZWMyNmU2ZjliMWUyOWQ5OWZkZWFkZjcwNWM0Li4wZDFiMzlhODRm
NjQyMzU3OWE5ZWMwM2I1YWEyNDFiZGU2MzFkNjYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViR1BV
L1dlYkdQVS9RdWV1ZS5tbQorKysgYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9RdWV1ZS5tbQpAQCAt
MTMxLDcgKzEzMSw3IEBAIHZvaWQgUXVldWU6OnN1Ym1pdChWZWN0b3I8c3RkOjpyZWZlcmVuY2Vf
d3JhcHBlcjxjb25zdCBDb21tYW5kQnVmZmVyPj4mJiBjb21tYW5kCiAgICAgLy8gIklmIGFueSBv
ZiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIHVuc2F0aXNmaWVkIgogICAgIGlmICghdmFs
aWRhdGVTdWJtaXQoKSkgewogICAgICAgICAvLyAiZ2VuZXJhdGUgYSB2YWxpZGF0aW9uIGVycm9y
IGFuZCBzdG9wLiIKLSAgICAgICAgbV9kZXZpY2UuZ2VuZXJhdGVBVmFsaWRhdGlvbkVycm9yKCJW
YWxpZGF0aW9uIGZhaWx1cmUuIik7CisgICAgICAgIG1fZGV2aWNlLmdlbmVyYXRlQVZhbGlkYXRp
b25FcnJvcigiVmFsaWRhdGlvbiBmYWlsdXJlLiJfcyk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1NhbXBsZXIubW0gYi9Tb3VyY2Uv
V2ViR1BVL1dlYkdQVS9TYW1wbGVyLm1tCmluZGV4IDJmN2Y3MjdmMTdkOTczZDBhNDljZTM0ZWVm
YWM3MTM4NTczMzc2YjYuLjgyNzM5MDQ5OTRjYjcwOWYwOTRlMjQ1ODc5OWFjZWM2Nzc1ODliNzIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1NhbXBsZXIubW0KKysrIGIvU291cmNl
L1dlYkdQVS9XZWJHUFUvU2FtcGxlci5tbQpAQCAtMTM2LDcgKzEzNiw3IEBAIFJlZlB0cjxTYW1w
bGVyPiBEZXZpY2U6OmNyZWF0ZVNhbXBsZXIoY29uc3QgV0dQVVNhbXBsZXJEZXNjcmlwdG9yJiBk
ZXNjcmlwdG9yKQogICAgIC8vICJJZiB2YWxpZGF0aW5nIEdQVVNhbXBsZXJEZXNjcmlwdG9yKHRo
aXMsIGRlc2NyaXB0b3IpIHJldHVybnMgZmFsc2U6IgogICAgIGlmICghdmFsaWRhdGVDcmVhdGVT
YW1wbGVyKCp0aGlzLCBkZXNjcmlwdG9yKSkgewogICAgICAgICAvLyAiR2VuZXJhdGUgYSB2YWxp
ZGF0aW9uIGVycm9yLiIKLSAgICAgICAgZ2VuZXJhdGVBVmFsaWRhdGlvbkVycm9yKCJWYWxpZGF0
aW9uIGZhaWx1cmUuIik7CisgICAgICAgIGdlbmVyYXRlQVZhbGlkYXRpb25FcnJvcigiVmFsaWRh
dGlvbiBmYWlsdXJlLiJfcyk7CiAKICAgICAgICAgLy8gIkNyZWF0ZSBhIG5ldyBpbnZhbGlkIEdQ
VVNhbXBsZXIgYW5kIHJldHVybiB0aGUgcmVzdWx0LiIKICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9TaGFkZXJNb2R1bGUubW0gYi9Tb3Vy
Y2UvV2ViR1BVL1dlYkdQVS9TaGFkZXJNb2R1bGUubW0KaW5kZXggZTAwNzU1Y2ZiNTViNGM2NmE4
OTI3ZGQzZTVlMDJlYTkxMDE3MGM0NC4uNjA1ZTM3MjMzNjEwNWFlMDg3MTM3ZGI2MTY0Njk4MTEy
YmNmZjg3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkdQVS9XZWJHUFUvU2hhZGVyTW9kdWxlLm1t
CisrKyBiL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1NoYWRlck1vZHVsZS5tbQpAQCAtODgsOSArODgs
MTAgQEAgc3RhdGljIFJlZlB0cjxTaGFkZXJNb2R1bGU+IGVhcmx5Q29tcGlsZVNoYWRlck1vZHVs
ZShpZDxNVExEZXZpY2U+IGRldmljZSwgc3RkOjoKICAgICAgICAgY29uc3QgYXV0byYgaGludCA9
IHN1cHBsaWVkSGludHMuaGludHNbaV07CiAgICAgICAgIGlmIChoaW50Lm5leHRJbkNoYWluKQog
ICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgICAgIGhpbnRzLmFkZChoaW50LmtleSwg
V2ViR1BVOjpmcm9tQVBJKGhpbnQuaGludC5sYXlvdXQpKTsKKyAgICAgICAgU3RyaW5nIGhpbnRL
ZXkgeyBoaW50LmtleSB9OworICAgICAgICBoaW50cy5hZGQoaGludEtleSwgV2ViR1BVOjpmcm9t
QVBJKGhpbnQuaGludC5sYXlvdXQpKTsKICAgICAgICAgYXV0byBjb252ZXJ0ZWRQaXBlbGluZUxh
eW91dCA9IFNoYWRlck1vZHVsZTo6Y29udmVydFBpcGVsaW5lTGF5b3V0KFdlYkdQVTo6ZnJvbUFQ
SShoaW50LmhpbnQubGF5b3V0KSk7Ci0gICAgICAgIHdnc2xIaW50cy5hZGQoaGludC5rZXksIFdU
Rk1vdmUoY29udmVydGVkUGlwZWxpbmVMYXlvdXQpKTsKKyAgICAgICAgd2dzbEhpbnRzLmFkZCho
aW50S2V5LCBXVEZNb3ZlKGNvbnZlcnRlZFBpcGVsaW5lTGF5b3V0KSk7CiAgICAgfQogICAgIGF1
dG8gcHJlcGFyZVJlc3VsdCA9IFdHU0w6OnByZXBhcmUoc3RkOjpnZXQ8V0dTTDo6U3VjY2Vzc2Z1
bENoZWNrPihjaGVja1Jlc3VsdCkuYXN0LCB3Z3NsSGludHMpOwogICAgIGF1dG8gbGlicmFyeSA9
IFNoYWRlck1vZHVsZTo6Y3JlYXRlTGlicmFyeShkZXZpY2UsIHByZXBhcmVSZXN1bHQubXNsLCBX
VEZNb3ZlKGxhYmVsKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9XZWJWaWV3SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJ
bXBsLm1tCmluZGV4IDQ3ZTlkY2E1MDBiMTA2NDAxZWRjYmRmY2JlYTgyMGIzNWJlOTY1NDIuLmZm
MzhlMWY3NjgzNzA2MzFmZTRhZWIxMWQwMGQwYWM2NzBhOWEzNzAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCkBAIC00NDc4LDcgKzQ0NzgsNyBAQCB2
b2lkIFdlYlZpZXdJbXBsOjpzZXRQcm9taXNlZERhdGFGb3JJbWFnZShXZWJDb3JlOjpJbWFnZSog
aW1hZ2UsIE5TU3RyaW5nICpmaWxlbgogCiAgICAgUmV0YWluUHRyPE5TRGF0YT4gY3VzdG9tRGF0
YUJ1ZmZlcjsKICAgICBpZiAob3JpZ2luSWRlbnRpZmllci5sZW5ndGgpIHsKLSAgICAgICAgW3R5
cGVzIGFkZE9iamVjdDpAKFdlYkNvcmU6OlBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUo
KSldOworICAgICAgICBbdHlwZXMgYWRkT2JqZWN0OkAoV2ViQ29yZTo6UGFzdGVib2FyZEN1c3Rv
bURhdGE6OmNvY29hVHlwZSgpLmNoYXJhY3RlcnMoKSldOwogICAgICAgICBXZWJDb3JlOjpQYXN0
ZWJvYXJkQ3VzdG9tRGF0YSBjdXN0b21EYXRhOwogICAgICAgICBjdXN0b21EYXRhLnNldE9yaWdp
bihvcmlnaW5JZGVudGlmaWVyKTsKICAgICAgICAgY3VzdG9tRGF0YUJ1ZmZlciA9IGN1c3RvbURh
dGEuY3JlYXRlU2hhcmVkQnVmZmVyKCktPmNyZWF0ZU5TRGF0YSgpOwpAQCAtNDQ5Nyw3ICs0NDk3
LDcgQEAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgfQogCiAgICAgaWYg
KGN1c3RvbURhdGFCdWZmZXIpCi0gICAgICAgIFtwYXN0ZWJvYXJkIHNldERhdGE6Y3VzdG9tRGF0
YUJ1ZmZlci5nZXQoKSBmb3JUeXBlOkAoV2ViQ29yZTo6UGFzdGVib2FyZEN1c3RvbURhdGE6OmNv
Y29hVHlwZSgpKV07CisgICAgICAgIFtwYXN0ZWJvYXJkIHNldERhdGE6Y3VzdG9tRGF0YUJ1ZmZl
ci5nZXQoKSBmb3JUeXBlOkAoV2ViQ29yZTo6UGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlw
ZSgpLmNoYXJhY3RlcnMoKSldOwogCiAgICAgbV9wcm9taXNlZEltYWdlID0gaW1hZ2U7CiB9CkBA
IC00NjI0LDcgKzQ2MjQsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpyZXF1ZXN0RE9NUGFzdGVBY2Nl
c3MoV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NDYXRlZ29yeSBwYXN0ZUFjYwogICAgIEFTU0VSVCgh
bV9kb21QYXN0ZVJlcXVlc3RIYW5kbGVyKTsKICAgICBoaWRlRE9NUGFzdGVNZW51V2l0aFJlc3Vs
dChXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlOjpEZW5pZWRGb3JHZXN0dXJlKTsKIAot
ICAgIE5TRGF0YSAqZGF0YSA9IFtwYXN0ZWJvYXJkRm9yQWNjZXNzQ2F0ZWdvcnkocGFzdGVBY2Nl
c3NDYXRlZ29yeSkgZGF0YUZvclR5cGU6QChXZWJDb3JlOjpQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6
Y29jb2FUeXBlKCkpXTsKKyAgICBOU0RhdGEgKmRhdGEgPSBbcGFzdGVib2FyZEZvckFjY2Vzc0Nh
dGVnb3J5KHBhc3RlQWNjZXNzQ2F0ZWdvcnkpIGRhdGFGb3JUeXBlOkAoV2ViQ29yZTo6UGFzdGVi
b2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpLmNoYXJhY3RlcnMoKSldOwogICAgIGF1dG8gYnVm
ZmVyID0gV2ViQ29yZTo6U2hhcmVkQnVmZmVyOjpjcmVhdGUoZGF0YSk7CiAgICAgaWYgKFdlYkNv
cmU6OlBhc3RlYm9hcmRDdXN0b21EYXRhOjpmcm9tU2hhcmVkQnVmZmVyKGJ1ZmZlci5nZXQoKSku
b3JpZ2luKCkgPT0gb3JpZ2luSWRlbnRpZmllcikgewogICAgICAgICBtX3BhZ2UtPmdyYW50QWNj
ZXNzVG9DdXJyZW50UGFzdGVib2FyZERhdGEocGFzdGVib2FyZE5hbWVGb3JBY2Nlc3NDYXRlZ29y
eShwYXN0ZUFjY2Vzc0NhdGVnb3J5KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCBlYjdjNjkxZjljOTkw
Zjg0NzVmMDkwMjc0ZDliNmVlMjAxYzM5MGIwLi45ZThiZjQ1YmFiNTEzYTUxMjEwNDlkMDUzMTEy
MmU0NTYzZjBhNmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tD
b250ZW50Vmlld0ludGVyYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KQEAgLTM5ODAsNyArMzk4MCw3IEBAIC0gKEJP
T0wpY2FuUGVyZm9ybUFjdGlvbkZvcldlYlZpZXc6KFNFTClhY3Rpb24gd2l0aFNlbmRlcjooaWQp
c2VuZGVyCiAgICAgICAgIGlmIChmb2N1c2VkRG9jdW1lbnRPcmlnaW4uaXNFbXB0eSgpKQogICAg
ICAgICAgICAgcmV0dXJuIE5POwogCi0gICAgICAgIE5TQXJyYXkgKmFsbEN1c3RvbVBhc3RlYm9h
cmREYXRhID0gW3Bhc3RlYm9hcmQgZGF0YUZvclBhc3RlYm9hcmRUeXBlOkAoV2ViQ29yZTo6UGFz
dGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpKSBpbkl0ZW1TZXQ6aW5kaWNlc107CisgICAg
ICAgIE5TQXJyYXkgKmFsbEN1c3RvbVBhc3RlYm9hcmREYXRhID0gW3Bhc3RlYm9hcmQgZGF0YUZv
clBhc3RlYm9hcmRUeXBlOkAoV2ViQ29yZTo6UGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlw
ZSgpLmNoYXJhY3RlcnMoKSkgaW5JdGVtU2V0OmluZGljZXNdOwogICAgICAgICBmb3IgKE5TRGF0
YSAqZGF0YSBpbiBhbGxDdXN0b21QYXN0ZWJvYXJkRGF0YSkgewogICAgICAgICAgICAgYXV0byBi
dWZmZXIgPSBXZWJDb3JlOjpTaGFyZWRCdWZmZXI6OmNyZWF0ZShkYXRhKTsKICAgICAgICAgICAg
IGlmIChXZWJDb3JlOjpQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6ZnJvbVNoYXJlZEJ1ZmZlcihidWZm
ZXIuZ2V0KCkpLm9yaWdpbigpID09IGZvY3VzZWREb2N1bWVudE9yaWdpbikKQEAgLTY5NDUsNyAr
Njk0NSw3IEBAIHN0YXRpYyBCT09MIGFsbFBhc3RlYm9hcmRJdGVtT3JpZ2luc01hdGNoT3JpZ2lu
KFVJUGFzdGVib2FyZCAqcGFzdGVib2FyZCwgY29uc3QKICAgICAgICAgcmV0dXJuIE5POwogCiAg
ICAgYXV0byAqaW5kaWNlcyA9IFtOU0luZGV4U2V0IGluZGV4U2V0V2l0aEluZGV4ZXNJblJhbmdl
Ok5TTWFrZVJhbmdlKDAsIFtwYXN0ZWJvYXJkIG51bWJlck9mSXRlbXNdKV07Ci0gICAgYXV0byAq
YWxsQ3VzdG9tRGF0YSA9IFtwYXN0ZWJvYXJkIGRhdGFGb3JQYXN0ZWJvYXJkVHlwZTpAKFdlYkNv
cmU6OlBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKSkgaW5JdGVtU2V0OmluZGljZXNd
OworICAgIGF1dG8gKmFsbEN1c3RvbURhdGEgPSBbcGFzdGVib2FyZCBkYXRhRm9yUGFzdGVib2Fy
ZFR5cGU6QChXZWJDb3JlOjpQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkuY2hhcmFj
dGVycygpKSBpbkl0ZW1TZXQ6aW5kaWNlc107CiAgICAgaWYgKCFhbGxDdXN0b21EYXRhLmNvdW50
KQogICAgICAgICByZXR1cm4gTk87CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL01pc2MvV2ViTlNQYXN0ZWJvYXJkRXh0cmFzLm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvTWlzYy9XZWJOU1Bhc3RlYm9hcmRFeHRyYXMubW0KaW5kZXggZTViNDQ0YmZhNWMyODcyODM4
N2M3MjMzMjgyOTFhODIwM2QxYjI1NC4uM2U1MmYxYmJhY2RiNTFiOGVhNTQ3N2M2YjBkOTliOTVj
YmFkMGJjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJOU1Bh
c3RlYm9hcmRFeHRyYXMubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJO
U1Bhc3RlYm9hcmRFeHRyYXMubW0KQEAgLTI3Niw3ICsyNzYsNyBAQCAtIChpZClfd2ViX2RlY2xh
cmVBbmRXcml0ZURyYWdJbWFnZUZvckVsZW1lbnQ6KERPTUVsZW1lbnQgKillbGVtZW50CiAgICAg
TlNTdHJpbmcgKm9yaWdpbklkZW50aWZpZXIgPSBjb3JlKGVsZW1lbnQpLT5kb2N1bWVudCgpLm9y
aWdpbklkZW50aWZpZXJGb3JQYXN0ZWJvYXJkKCk7CiAgICAgUmV0YWluUHRyPE5TRGF0YT4gY3Vz
dG9tRGF0YUJ1ZmZlcjsKICAgICBpZiAob3JpZ2luSWRlbnRpZmllci5sZW5ndGgpIHsKLSAgICAg
ICAgW3R5cGVzIGFkZE9iamVjdDpAKFBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKSld
OworICAgICAgICBbdHlwZXMgYWRkT2JqZWN0OkAoUGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29h
VHlwZSgpLmNoYXJhY3RlcnMoKSldOwogICAgICAgICBQYXN0ZWJvYXJkQ3VzdG9tRGF0YSBjdXN0
b21EYXRhOwogICAgICAgICBjdXN0b21EYXRhLnNldE9yaWdpbihvcmlnaW5JZGVudGlmaWVyKTsK
ICAgICAgICAgY3VzdG9tRGF0YUJ1ZmZlciA9IGN1c3RvbURhdGEuY3JlYXRlU2hhcmVkQnVmZmVy
KCktPmNyZWF0ZU5TRGF0YSgpOwpAQCAtMzA1LDcgKzMwNSw3IEBAIC0gKGlkKV93ZWJfZGVjbGFy
ZUFuZFdyaXRlRHJhZ0ltYWdlRm9yRWxlbWVudDooRE9NRWxlbWVudCAqKWVsZW1lbnQKIAogICAg
IFtzZWxmIF93ZWJfd3JpdGVJbWFnZTpuaWwgZWxlbWVudDplbGVtZW50IFVSTDpVUkwgdGl0bGU6
dGl0bGUgYXJjaGl2ZTphcmNoaXZlIHR5cGVzOnR5cGVzLmdldCgpIHNvdXJjZTpzb3VyY2VdOwog
ICAgIGlmIChjdXN0b21EYXRhQnVmZmVyKQotICAgICAgICBbc2VsZiBzZXREYXRhOmN1c3RvbURh
dGFCdWZmZXIuZ2V0KCkgZm9yVHlwZTpAKFBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUo
KSldOworICAgICAgICBbc2VsZiBzZXREYXRhOmN1c3RvbURhdGFCdWZmZXIuZ2V0KCkgZm9yVHlw
ZTpAKFBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKS5jaGFyYWN0ZXJzKCkpXTsKIAog
ICAgIFtzZWxmIHNldFByb3BlcnR5TGlzdDpAW2V4dGVuc2lvbl0gZm9yVHlwZTpsZWdhY3lGaWxl
c1Byb21pc2VQYXN0ZWJvYXJkVHlwZSgpXTsKIApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9n
IGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDE4ODE4MzdlNDRiY2UwMjczOGI3Yzk4YTRmMzg0YTEy
Njc5NjU5ZDkuLjhmMDVhOGI1ZTFmNWM4ZTRlMWJiMjgyY2EwOGYyNzRiN2QxZjliY2MgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NyBAQAorMjAyMi0wMy0yNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAg
ICAgIFN0YXJ0IHByZXBhcmluZyBXZWJDb3JlIGZvciBtYWtpbmcgdGhlIFN0cmluZyhjb25zdCBj
aGFyKikgY29uc3RydWN0b3IgZXhwbGljaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzODMzNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFN0YXJ0IHByZXBhcmluZyBXZWJDb3JlIGZvciBtYWtpbmcgdGhl
IFN0cmluZyhjb25zdCBjaGFyKikgY29uc3RydWN0b3IgZXhwbGljaXQuCisgICAgICAgIE1ha2lu
ZyB0aGlzIGNvbnN0cnVjdG9yIGV4cGxpY2l0IGhlbHBzIGNhdGNoIGF0IGNvbXBpbGUgdGltZSBj
YXNlcyB3aGVyZSB0aGUgIiJfcworICAgICAgICBwcmVmaXggaXMgbWlzc2luZyBvbiBTdHJpbmcg
bGl0ZXJhbHMuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9EcmFnQW5kRHJv
cFRlc3RzTWFjLm1tOgorICAgICAgICAoVEVTVCk6CisKIDIwMjItMDMtMjQgIENocmlzIER1bWV6
ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCB1cGRhdGUgb3V0ZGF0
ZWQgY29tbWVudCBhZnRlciByMjkxNzg3LgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9tYWMvRHJhZ0FuZERyb3BUZXN0c01hYy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvbWFjL0RyYWdBbmREcm9wVGVzdHNNYWMubW0KaW5kZXggNTIxOWM5NGRkMzlkYjQ4OWZi
M2E0NmExNGQ4YTkzNTEzZDI4NGVmYy4uODE4YjAwZjNiNWY2NDg4NzllMzUzNTEzYzUzNDM5Zjc0
ZWRiYWVlNCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvRHJhZ0Fu
ZERyb3BUZXN0c01hYy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9EcmFn
QW5kRHJvcFRlc3RzTWFjLm1tCkBAIC0xODEsNyArMTgxLDcgQEAgQUxMT1dfREVQUkVDQVRFRF9E
RUNMQVJBVElPTlNfRU5ECiAgICAgRVhQRUNUX0VRKGltYWdlRnJvbVVuaXF1ZVBhc3RlYm9hcmQu
VElGRlJlcHJlc2VudGF0aW9uLmxlbmd0aCwgaW1hZ2VGcm9tRHJhZ1Bhc3RlYm9hcmQuVElGRlJl
cHJlc2VudGF0aW9uLmxlbmd0aCk7CiAgICAgRVhQRUNUX1RSVUUoTlNFcXVhbFNpemVzKGltYWdl
RnJvbURyYWdQYXN0ZWJvYXJkLnNpemUsIGltYWdlRnJvbVVuaXF1ZVBhc3RlYm9hcmQuc2l6ZSkp
OwogICAgIEVYUEVDVF9GQUxTRShOU0VxdWFsU2l6ZXMoTlNaZXJvU2l6ZSwgaW1hZ2VGcm9tVW5p
cXVlUGFzdGVib2FyZC5zaXplKSk7Ci0gICAgRVhQRUNUX0dUKFtkcmFnUGFzdGVib2FyZCBkYXRh
Rm9yVHlwZTpAKFdlYkNvcmU6OlBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKSldLmxl
bmd0aCwgMHUpOworICAgIEVYUEVDVF9HVChbZHJhZ1Bhc3RlYm9hcmQgZGF0YUZvclR5cGU6QChX
ZWJDb3JlOjpQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkuY2hhcmFjdGVycygpKV0u
bGVuZ3RoLCAwdSk7CiB9CiAKIFRFU1QoRHJhZ0FuZERyb3BUZXN0cywgUHJvdmlkZUltYWdlRGF0
YUFzVHlwZUlkZW50aWZpZXJzKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455691</attachid>
            <date>2022-03-24 14:56:14 -0700</date>
            <delta_ts>2022-03-24 16:14:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238336-20220324145613.patch</filename>
            <type>text/plain</type>
            <size>433802</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxODAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA2
YWE2NWE0N2JkOThlOGI5M2I1ZjQ1N2IzNjRmZDdjOWJhMTczNmI5Li5hMTQ4ZTZjZTU1MmQ4NDU3
ZWFmYjBmZmM1MzA4NjdjYzJjNTFkMjgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMiBAQAorMjAyMi0wMy0yNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFN0YXJ0IHByZXBhcmluZyBXZWJDb3JlIGZvciBtYWtpbmcgdGhlIFN0cmluZyhj
b25zdCBjaGFyKikgY29uc3RydWN0b3IgZXhwbGljaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODMzNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0YXJ0IHByZXBhcmluZyBXZWJDb3JlIGZvciBtYWtp
bmcgdGhlIFN0cmluZyhjb25zdCBjaGFyKikgY29uc3RydWN0b3IgZXhwbGljaXQuCisgICAgICAg
IE1ha2luZyB0aGlzIGNvbnN0cnVjdG9yIGV4cGxpY2l0IGhlbHBzIGNhdGNoIGF0IGNvbXBpbGUg
dGltZSBjYXNlcyB3aGVyZSB0aGUgIiJfcworICAgICAgICBwcmVmaXggaXMgbWlzc2luZyBvbiBT
dHJpbmcgbGl0ZXJhbHMuCisKKyAgICAgICAgKiBBUEkvSlNWYWx1ZS5tbToKKyAgICAgICAgKGNy
ZWF0ZVN0cnVjdEhhbmRsZXJNYXApOgorICAgICAgICAoaGFuZGVyRm9yU3RydWN0VGFnKToKKyAg
ICAgICAgKiBBUEkvSlNXcmFwcGVyTWFwLm1tOgorICAgICAgICAoYWxsb2NhdGVDb25zdHJ1Y3Rv
ckZvckN1c3RvbUNsYXNzKToKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckF1
ZGl0QWdlbnQuY3BwOgorICAgICAgICAoSW5zcGVjdG9yOjpJbnNwZWN0b3JBdWRpdEFnZW50Ojpy
dW4pOgorCiAyMDIyLTAzLTIzICBHZXphIExvcmUgIDxnbG9yZUBpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFtKU0NdIEZpeCByZW1vdGVGdW5jdGlvbkNhbGxHZW5lcmF0b3Igb24gTUlQUwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCA5
YmMzMGI4ZTZlY2QyZDdjMzliYzIyMDAxNTc1OWJjNDg1MjFjNzlkLi43NGRiNDdmODc3YmNkODMw
YzM2NzRkNTEyYmYxZjIzZmU5MDQ5ZTI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIyLTAzLTI0
ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgU3RhcnQgcHJlcGFy
aW5nIFdlYkNvcmUgZm9yIG1ha2luZyB0aGUgU3RyaW5nKGNvbnN0IGNoYXIqKSBjb25zdHJ1Y3Rv
ciBleHBsaWNpdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjM4MzM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgU3RhcnQgcHJlcGFyaW5nIFdlYkNvcmUgZm9yIG1ha2luZyB0aGUgU3RyaW5nKGNvbnN0IGNo
YXIqKSBjb25zdHJ1Y3RvciBleHBsaWNpdC4KKyAgICAgICAgTWFraW5nIHRoaXMgY29uc3RydWN0
b3IgZXhwbGljaXQgaGVscHMgY2F0Y2ggYXQgY29tcGlsZSB0aW1lIGNhc2VzIHdoZXJlIHRoZSAi
Il9zCisgICAgICAgIHByZWZpeCBpcyBtaXNzaW5nIG9uIFN0cmluZyBsaXRlcmFscy4KKworICAg
ICAgICAqIHd0Zi90ZXh0L1RleHRTdHJlYW0uaDoKKyAgICAgICAgKFdURjo6VGV4dFN0cmVhbTo6
ZHVtcFByb3BlcnR5KToKKwogMjAyMi0wMy0yNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgogCiAgICAgICAgIFN0cmluZydzIGZpbmQoKSAvIHJldmVyc2VGaW5kKCkgLyByZXBsYWNl
KCkgc2hvdWxkIHRha2UgaW4gYSBTdHJpbmdWaWV3IGluc3RlYWQgb2YgYSBTdHJpbmcKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwppbmRleCAwNDVlMjI5ZDQyMGJjYmFlM2EzZTEyOWEyOTMwZDI2YjliZjc2ZWEzLi4yNmU2NWYw
OTA0MzVmNjBkYWQ0ZmY5MjIzZWY0ZDY0N2YyZjAzMjU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
NTExIEBACisyMDIyLTAzLTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAg
ICAgICAgU3RhcnQgcHJlcGFyaW5nIFdlYkNvcmUgZm9yIG1ha2luZyB0aGUgU3RyaW5nKGNvbnN0
IGNoYXIqKSBjb25zdHJ1Y3RvciBleHBsaWNpdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4MzM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgU3RhcnQgcHJlcGFyaW5nIFdlYkNvcmUgZm9yIG1ha2luZyB0
aGUgU3RyaW5nKGNvbnN0IGNoYXIqKSBjb25zdHJ1Y3RvciBleHBsaWNpdC4KKyAgICAgICAgTWFr
aW5nIHRoaXMgY29uc3RydWN0b3IgZXhwbGljaXQgaGVscHMgY2F0Y2ggYXQgY29tcGlsZSB0aW1l
IGNhc2VzIHdoZXJlIHRoZSAiIl9zCisgICAgICAgIHByZWZpeCBpcyBtaXNzaW5nIG9uIFN0cmlu
ZyBsaXRlcmFscy4KKworICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXktYW1zLXVpL0FwcGxlUGF5
QU1TVUlQYXltZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0QW5kVmFs
aWRhdGVBcHBsZVBheUFNU1VJUmVxdWVzdCk6CisgICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9B
cHBsZVBheUNvbnRhY3RGaWVsZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0QW5kVmFs
aWRhdGUpOgorICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlNZXJjaGFudENhcGFi
aWxpdHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydEFuZFZhbGlkYXRlKToKKyAgICAg
ICAgKiBNb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5UmVxdWVzdEJhc2UuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Y29udmVydEFuZFZhbGlkYXRlKToKKyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5
L0FwcGxlUGF5U2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheVNlc3Npb246
OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheVNlc3Npb246Om9wZW5QYXltZW50
U2V0dXApOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9uOjpiZWdpbik6CisgICAg
ICAgICogTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNldHVwLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkFwcGxlUGF5U2V0dXA6OmJlZ2luKToKKyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5L1Bh
eW1lbnRJbnN0YWxsbWVudENvbmZpZ3VyYXRpb24ubW06CisgICAgICAgIChXZWJDb3JlOjpQYXlt
ZW50SW5zdGFsbG1lbnRDb25maWd1cmF0aW9uOjpjcmVhdGUpOgorICAgICAgICAqIE1vZHVsZXMv
YXBwbGVwYXkvUGF5bWVudFJlcXVlc3RWYWxpZGF0b3IubW06CisgICAgICAgIChXZWJDb3JlOjpQ
YXltZW50UmVxdWVzdFZhbGlkYXRvcjo6dmFsaWRhdGVUb3RhbCk6CisgICAgICAgIChXZWJDb3Jl
Ojp2YWxpZGF0ZUNvdW50cnlDb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRlQ3VycmVu
Y3lDb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRlTWVyY2hhbnRDYXBhYmlsaXRpZXMp
OgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGVTdXBwb3J0ZWROZXR3b3Jrcyk6CisgICAgICAg
IChXZWJDb3JlOjp2YWxpZGF0ZVNoaXBwaW5nTWV0aG9kKToKKyAgICAgICAgKiBNb2R1bGVzL2Fw
cGxlcGF5L1BheW1lbnRTZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBheW1lbnRTZXNz
aW9uOjpjYW5DcmVhdGVTZXNzaW9uKToKKyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5L3BheW1l
bnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Y29udmVydEFuZFZhbGlkYXRlQXBwbGVQYXlSZXF1ZXN0KToKKyAgICAgICAgKiBNb2R1bGVzL2Fw
cGxpY2F0aW9ubWFuaWZlc3QvQXBwbGljYXRpb25NYW5pZmVzdFBhcnNlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpBcHBsaWNhdGlvbk1hbmlmZXN0UGFyc2VyOjpwYXJzZUljb25zKToKKyAgICAg
ICAgKFdlYkNvcmU6OkFwcGxpY2F0aW9uTWFuaWZlc3RQYXJzZXI6OnBhcnNlU2NvcGUpOgorICAg
ICAgICAqIE1vZHVsZXMvY2FjaGUvV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZUNhY2hlcy5jcHA6
CisgICAgICAgICogTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9Jbml0RGF0YVJlZ2lzdHJ5LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OnNhbml0aXplS2V5aWRzKToKKyAgICAgICAgKiBNb2R1bGVzL2Vu
dHJpZXNhcGkvRE9NRmlsZVN5c3RlbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpsaXN0RGlyZWN0
b3J5V2l0aE1ldGFkYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRlUGF0aElzRXhwZWN0
ZWRUeXBlKToKKyAgICAgICAgKiBNb2R1bGVzL2ZldGNoL0ZldGNoQm9keUNvbnN1bWVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkZldGNoQm9keUNvbnN1bWVyOjpwYWNrYWdlRm9ybURhdGEpOgor
ICAgICAgICAqIE1vZHVsZXMvZmV0Y2gvRmV0Y2hIZWFkZXJzLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OmZpbGxIZWFkZXJNYXApOgorICAgICAgICAqIE1vZHVsZXMvZmV0Y2gvRmV0Y2hMb2FkZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hMb2FkZXI6OnN0YXJ0TG9hZGluZ0Jsb2JVUkwp
OgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRs
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Z2V0RmlsZSk6
CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Y3JlYXRlU3luY0FjY2Vz
c0hhbmRsZSk6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1I
YW5kbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZTo6aXNTYW1lRW50
cnkgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZTo6bW92ZSk6Cisg
ICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VJZGVudGlmaWVyLmg6CisgICAg
ICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5RGF0YS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpJREJLZXlEYXRhOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SURCS2V5RGF0
YTo6ZGVjb2RlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlSYW5nZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpJREJLZXlSYW5nZTo6aW5jbHVkZXMpOgorICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJpYWxpemF0aW9uLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OnNlcmlhbGl6ZUlEQktleVBhdGgpOgorICAgICAgICAoV2ViQ29yZTo6ZGVzZXJpYWxp
emVJREJLZXlQYXRoKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2Vy
dmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVyOjpnZXRBbGxE
YXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpJ
REJTZXJ2ZXI6OmdldE9yaWdpbnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVy
OjpJREJTZXJ2ZXI6OmNsb3NlQW5kRGVsZXRlRGF0YWJhc2VzTW9kaWZpZWRTaW5jZSk6CisgICAg
ICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQlNlcnZlcjo6Y2xvc2VBbmREZWxldGVEYXRhYmFz
ZXNGb3JPcmlnaW5zKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6cmVtb3ZlQWxsRGF0
YWJhc2VzRm9yRnVsbE9yaWdpblBhdGgpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpJ
REJTZXJ2ZXI6OnJlbmFtZU9yaWdpbik6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OklE
QlNlcnZlcjo6dXBncmFkZUZpbGVzSWZOZWNlc3NhcnkpOgorICAgICAgICAoV2ViQ29yZTo6SURC
U2VydmVyOjpJREJTZXJ2ZXI6OnVwZ3JhZGVkRGF0YWJhc2VEaXJlY3RvcnkpOgorICAgICAgICAq
IE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlJREJCYWNraW5nU3RvcmUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpNZW1vcnlJREJCYWNraW5nU3RvcmU6OmJlZ2luVHJh
bnNhY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpNZW1vcnlJREJCYWNraW5n
U3RvcmU6OmFib3J0VHJhbnNhY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpN
ZW1vcnlJREJCYWNraW5nU3RvcmU6OmNvbW1pdFRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OklEQlNlcnZlcjo6TWVtb3J5SURCQmFja2luZ1N0b3JlOjpnZW5lcmF0ZUtleU51bWJlcik6
CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeU9iamVjdFN0b3JlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6TWVtb3J5T2JqZWN0U3RvcmU6OnVwZGF0
ZUluZGV4ZXNGb3JQdXRSZWNvcmQpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZl
ci9TUUxpdGVJREJCYWNraW5nU3RvcmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVy
Ojp2MVJlY29yZHNUYWJsZVNjaGVtYSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OnYx
UmVjb3Jkc1RhYmxlU2NoZW1hQWx0ZXJuYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZl
cjo6djJSZWNvcmRzVGFibGVTY2hlbWEpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjp2
MlJlY29yZHNUYWJsZVNjaGVtYUFsdGVybmF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2
ZXI6OnYxSW5kZXhSZWNvcmRzVGFibGVTY2hlbWEpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2Vy
dmVyOjp2MUluZGV4UmVjb3Jkc1RhYmxlU2NoZW1hQWx0ZXJuYXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OklEQlNlcnZlcjo6djJJbmRleFJlY29yZHNUYWJsZVNjaGVtYSk6CisgICAgICAgIChXZWJD
b3JlOjpJREJTZXJ2ZXI6OnYySW5kZXhSZWNvcmRzVGFibGVTY2hlbWFBbHRlcm5hdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpTUUxpdGVJREJCYWNraW5nU3RvcmU6OmVuY29kZURh
dGFiYXNlTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlNRTGl0ZUlEQkJhY2tp
bmdTdG9yZTo6ZnVsbERhdGFiYXNlUGF0aEZvckRpcmVjdG9yeSk6CisgICAgICAgIChXZWJDb3Jl
OjpJREJTZXJ2ZXI6OlNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6Z2V0T3JFc3RhYmxpc2hEYXRhYmFz
ZUluZm8pOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpTUUxpdGVJREJCYWNraW5nU3Rv
cmU6OnVwZGF0ZUFsbEluZGV4ZXNGb3JBZGRSZWNvcmQpOgorICAgICAgICAoV2ViQ29yZTo6SURC
U2VydmVyOjpTUUxpdGVJREJCYWNraW5nU3RvcmU6OnVuY2hlY2tlZEdldEtleUdlbmVyYXRvclZh
bHVlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6U1FMaXRlSURCQmFja2luZ1N0b3Jl
Ojp1bmNoZWNrZWRTZXRLZXlHZW5lcmF0b3JWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJT
ZXJ2ZXI6OlNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6Z2VuZXJhdGVLZXlOdW1iZXIpOgorICAgICAg
ICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpjcmVhdGVPYmplY3RT
dG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpk
ZWxldGVPYmplY3RTdG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlE
QkRhdGFiYXNlOjpyZW5hbWVPYmplY3RTdG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2
ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpjbGVhck9iamVjdFN0b3JlKToKKyAgICAgICAgKFdlYkNv
cmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OmNyZWF0ZUluZGV4KToKKyAgICAgICAg
KFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OmRlbGV0ZUluZGV4KToKKyAg
ICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OnJlbmFtZUluZGV4
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OnB1dE9y
QWRkKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OnB1
dE9yQWRkQWZ0ZXJTcGFjZUNoZWNrKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5p
cXVlSURCRGF0YWJhc2U6OmdldFJlY29yZCk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6
OlVuaXF1ZUlEQkRhdGFiYXNlOjpnZXRBbGxSZWNvcmRzKToKKyAgICAgICAgKFdlYkNvcmU6OklE
QlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OmdldENvdW50KToKKyAgICAgICAgKFdlYkNvcmU6
OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OmRlbGV0ZVJlY29yZCk6CisgICAgICAgIChX
ZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpvcGVuQ3Vyc29yKToKKyAgICAg
ICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6Oml0ZXJhdGVDdXJzb3Ip
OgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6Y29tbWl0
VHJhbnNhY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRh
YmFzZTo6YWJvcnRUcmFuc2FjdGlvbik6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2hh
cmVkL0lEQkluZGV4SW5mby5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJJbmRleEluZm86Omxv
Z2dpbmdTdHJpbmcgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFjb250cm9scy9NZWRp
YUNvbnRyb2xzSG9zdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xzSG9zdDo6
bGF5b3V0VHJhaXRzQ2xhc3NOYW1lIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhcmVj
b3JkZXIvTWVkaWFSZWNvcmRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVy
OjpjcmVhdGUpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6YWRkVlA5RnVsbFJhbmdlVmlkZW9GbGFnVG9Db250ZW50VHlw
ZSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNvdXJjZTo6aXNUeXBlU3VwcG9ydGVkKToKKyAg
ICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhVHJhY2tDb25zdHJhaW50cy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpzZXQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydFRvSW50ZXJu
YWxGb3JtKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0ljZUNhbmRpZGF0ZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSVENJY2VDYW5kaWRhdGU6OmNyZWF0ZSk6CisgICAgICAg
ICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSVENQZWVyQ29ubmVjdGlvbjo6c2V0TG9jYWxEZXNjcmlwdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpSVENQZWVyQ29ubmVjdGlvbjo6YWRkSWNlQ2FuZGlkYXRlKToKKyAgICAgICAg
KFdlYkNvcmU6OlJUQ1BlZXJDb25uZWN0aW9uOjppY2VTZXJ2ZXJzRnJvbUNvbmZpZ3VyYXRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6UlRDUGVlckNvbm5lY3Rpb246OmNlcnRpZmljYXRlc0Zyb21D
b25maWd1cmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1BlZXJDb25uZWN0aW9uOjppbml0
aWFsaXplQ29uZmlndXJhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpSVENQZWVyQ29ubmVjdGlv
bjo6c2V0Q29uZmlndXJhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpSVENQZWVyQ29ubmVjdGlv
bjo6Y2hhaW5PcGVyYXRpb24pOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRw
U0ZyYW1lVHJhbnNmb3JtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UlRDUnRwU0ZyYW1lVHJh
bnNmb3JtZXI6OnRyYW5zZm9ybSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3
ZWJydGMvTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkxpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZDo6ZG9DcmVhdGVBbnN3ZXIpOgorICAg
ICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1J0cFRyYW5zY2Vp
dmVyQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b1J0cENvZGVjQ2FwYWJpbGl0eSk6
CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDVXRpbHMu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9FeGNlcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
dG9SVENFcnJvcik6CisgICAgICAgICogTW9kdWxlcy9tb2RlbC1lbGVtZW50L3NjZW5la2l0L1Nj
ZW5lS2l0TW9kZWxMb2FkZXJVU0QubW06CisgICAgICAgIChXZWJDb3JlOjp3cml0ZVRvVGVtcG9y
YXJ5RmlsZSk6CisgICAgICAgICogTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVz
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjaGVja0FuZENhbm9uaWNhbGl6ZURldGFpbHMpOgor
ICAgICAgICAoV2ViQ29yZTo6UGF5bWVudFJlcXVlc3Q6OnNob3cpOgorICAgICAgICAqIE1vZHVs
ZXMvcGljdHVyZWlucGljdHVyZS9IVE1MVmlkZW9FbGVtZW50UGljdHVyZUluUGljdHVyZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50UGljdHVyZUluUGljdHVyZTo6cmVx
dWVzdFBpY3R1cmVJblBpY3R1cmUpOgorICAgICAgICAqIE1vZHVsZXMvcGx1Z2lucy9Zb3VUdWJl
UGx1Z2luUmVwbGFjZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WW91VHViZVBsdWdpblJl
cGxhY2VtZW50OjppbnN0YWxsUmVwbGFjZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6cHJvY2Vz
c0FuZENyZWF0ZVlvdVR1YmVVUkwpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJl
Y29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNo
UmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbDo6dXBkYXRlRGF0YVNvdXJjZSk6CisgICAgICAg
IChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjpzb3VyY2VTdG9w
cGVkKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUlt
cGw6OnNvdXJjZU11dGVkQ2hhbmdlZCk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvY29jb2Ev
V2ViU3BlZWNoUmVjb2duaXplclRhc2tNb2NrLm1tOgorICAgICAgICAoLVtXZWJTcGVlY2hSZWNv
Z25pemVyVGFza01vY2sgYXVkaW9TYW1wbGVzQXZhaWxhYmxlOl0pOgorICAgICAgICAqIE1vZHVs
ZXMvc3RvcmFnZS9TdG9yYWdlTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb25uZWN0
aW9uSW5mbyk6CisgICAgICAgICogTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja01hbmFnZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6V2ViTG9ja01hbmFnZXI6OnNpZ25hbFRvQWJvcnRUaGVSZXF1
ZXN0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTGlzdGVuZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6QXVkaW9MaXN0ZW5lcjo6QXVkaW9MaXN0ZW5lcik6CisgICAgICAgICog
TW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlv
UGFyYW06OnNldEF1dG9tYXRpb25SYXRlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1
ZGlvUGFyYW1UaW1lbGluZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1BhcmFtVGltZWxp
bmU6Omluc2VydEV2ZW50KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0JpcXVhZEZpbHRl
ck5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QmlxdWFkRmlsdGVyTm9kZTo6Z2V0RnJlcXVl
bmN5UmVzcG9uc2UpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQmlxdWFkUHJvY2Vzc29y
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJpcXVhZFByb2Nlc3Nvcjo6QmlxdWFkUHJvY2Vzc29y
KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0RlbGF5UHJvY2Vzc29yLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRlbGF5UHJvY2Vzc29yOjpEZWxheVByb2Nlc3Nvcik6CisgICAgICAgICog
TW9kdWxlcy93ZWJhdWRpby9XYXZlU2hhcGVyTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpX
YXZlU2hhcGVyTm9kZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OldhdmVTaGFwZXJOb2Rl
OjpzZXRDdXJ2ZUZvckJpbmRpbmdzKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL0F1dGhl
bnRpY2F0b3JDb29yZGluYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdXRoZW50aWNhdG9y
Q29vcmRpbmF0b3JJbnRlcm5hbDo6bmVlZHNBcHBJZFF1aXJrcyk6CisgICAgICAgICogTW9kdWxl
cy93ZWJhdXRobi9XZWJBdXRoZW50aWNhdGlvblV0aWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmJ1aWxkQXR0ZXN0YXRpb25NYXApOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vZmlkby9E
ZXZpY2VSZXNwb25zZUNvbnZlcnRlci5jcHA6CisgICAgICAgIChmaWRvOjpyZWFkQ1RBUE1ha2VD
cmVkZW50aWFsUmVzcG9uc2UpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vZmlkby9QaW4u
Y3BwOgorICAgICAgICAoZmlkbzo6cGluOjpLZXlBZ3JlZW1lbnRSZXNwb25zZTo6cGFyc2VGcm9t
Q09TRSk6CisgICAgICAgIChmaWRvOjpwaW46OlRva2VuUmVxdWVzdDo6dHJ5Q3JlYXRlKToKKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL2ZpZG8vVTJmUmVzcG9uc2VDb252ZXJ0ZXIuY3BwOgor
ICAgICAgICAoZmlkbzo6cmVhZFUyZlJlZ2lzdGVyUmVzcG9uc2UpOgorICAgICAgICAqIE1vZHVs
ZXMvd2ViZGF0YWJhc2UvQ2hhbmdlVmVyc2lvbldyYXBwZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Q2hhbmdlVmVyc2lvbldyYXBwZXI6OnBlcmZvcm1QcmVmbGlnaHQpOgorICAgICAgICAqIE1v
ZHVsZXMvd2ViZGF0YWJhc2UvRE9NV2luZG93V2ViRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RE9NV2luZG93V2ViRGF0YWJhc2U6Om9wZW5EYXRhYmFzZSk6CisgICAgICAgICogTW9k
dWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFz
ZTo6RGF0YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2U6OnJ1blRyYW5zYWN0aW9u
KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlQXV0aG9yaXplci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZUF1dGhvcml6ZXI6OmFkZEFsbG93ZWRGdW5jdGlv
bnMpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6dHJhY2tlckRhdGFiYXNlUGF0aCBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZVRyYWNrZXI6Om9wZW5UcmFja2VyRGF0
YWJhc2UpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvU1FMU3RhdGVtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlNRTFN0YXRlbWVudDo6ZXhlY3V0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpTUUxTdGF0ZW1lbnQ6OnNldERhdGFiYXNlRGVsZXRlZEVycm9yKToKKyAgICAgICAgKFdl
YkNvcmU6OlNRTFN0YXRlbWVudDo6c2V0VmVyc2lvbk1pc21hdGNoZWRFcnJvcik6CisgICAgICAg
IChXZWJDb3JlOjpTUUxTdGF0ZW1lbnQ6OnNldEZhaWx1cmVEdWVUb1F1b3RhKToKKyAgICAgICAg
KiBNb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlNRTFRyYW5zYWN0aW9uOjpjYWxsRXJyb3JDYWxsYmFja0R1ZVRvSW50ZXJydXB0aW9uKToK
KyAgICAgICAgKFdlYkNvcmU6OlNRTFRyYW5zYWN0aW9uOjpvcGVuVHJhbnNhY3Rpb25BbmRQcmVm
bGlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6U1FMVHJhbnNhY3Rpb246OmRlbGl2ZXJUcmFuc2Fj
dGlvbkNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlNRTFRyYW5zYWN0aW9uOjpkZWxpdmVy
U3RhdGVtZW50Q2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6U1FMVHJhbnNhY3Rpb246Omhh
bmRsZUN1cnJlbnRTdGF0ZW1lbnRFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpTUUxUcmFuc2Fj
dGlvbjo6cG9zdGZsaWdodEFuZENvbW1pdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRz
L1dlYlNvY2tldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXQ6OnN1YnByb3RvY29s
U2VwYXJhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldDo6Y2xvc2UpOgorICAgICAg
ICAoV2ViQ29yZTo6V2ViU29ja2V0OjpzdXNwZW5kKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNv
Y2tldHMvV2ViU29ja2V0Lmg6CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tl
dENoYW5uZWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6ZGlkT3Bl
blNvY2tldFN0cmVhbSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsOjpkaWRS
ZWNlaXZlU29ja2V0U3RyZWFtRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFu
bmVsOjpwcm9jZXNzRnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6
cHJvY2Vzc091dGdvaW5nRnJhbWVRdWV1ZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRz
L1dlYlNvY2tldERlZmxhdGVGcmFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0
RXh0ZW5zaW9uRGVmbGF0ZUZyYW1lOjpwcm9jZXNzUmVzcG9uc2UpOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViU29ja2V0RGVmbGF0ZUZyYW1lcjo6ZGVmbGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJTb2NrZXREZWZsYXRlRnJhbWVyOjppbmZsYXRlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNv
Y2tldHMvV2ViU29ja2V0RXh0ZW5zaW9uRGlzcGF0Y2hlci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJTb2NrZXRFeHRlbnNpb25EaXNwYXRjaGVyOjpwcm9jZXNzSGVhZGVyVmFsdWUpOgorICAg
ICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRGcmFtZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJTb2NrZXRGcmFtZTo6cGFyc2VGcmFtZSk6CisgICAgICAgICogTW9kdWxlcy93
ZWJ4ci9XZWJYUldlYkdMTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlT3BhcXVl
RnJhbWVidWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJXZWJHTExheWVyOjpjcmVhdGUp
OgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQVhJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpBWEltYWdlOjppbWFnZU92ZXJsYXlFbGVtZW50cyk6CisgICAgICAgICogYWNjZXNzaWJpbGl0
eS9BWExvZ2dlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBWExvZ2dlcjo6QVhMb2dnZXIpOgor
ICAgICAgICAoV2ViQ29yZTo6QVhMb2dnZXI6OmxvZyk6CisgICAgICAgIChXZWJDb3JlOjpvcGVy
YXRvcjw8KToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYTG9nZ2VyLmg6CisgICAgICAgICog
YWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFYT2Jq
ZWN0Q2FjaGU6OmlzTW9kYWxFbGVtZW50IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0
ZUZyb21SZW5kZXJlcik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpyZW1vdmUp
OgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6dGV4dENoYW5nZWQpOgorICAgICAg
ICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6aGFuZGxlTWVudU9wZW5lZCk6CisgICAgICAgIChX
ZWJDb3JlOjpBWE9iamVjdENhY2hlOjpub3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCk6CisgICAg
ICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1l
ckZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRp
b24pOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6aGFuZGxlTWVudUl0ZW1TZWxl
Y3RlZCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpzZWxlY3RlZFN0YXRlQ2hh
bmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hh
bmdlTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmhhbmRs
ZU1vZGFsQ2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBlcmZvcm1E
ZWZlcnJlZENhY2hlVXBkYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnVw
ZGF0ZUlzb2xhdGVkVHJlZSk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
Tm9kZU9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Tm9kZU9iamVj
dDo6ZGV0ZXJtaW5lQWNjZXNzaWJpbGl0eVJvbGUpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5
T2JqZWN0OjpyZWFkT25seVZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2li
aWxpdHlPYmplY3Q6OmF1dG9Db21wbGV0ZVZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmN1cnJlbnRWYWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjpyZXBsYWNlVGV4dEluUmFuZ2UpOgorICAgICAgICAo
V2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6Y29tcHV0ZWRSb2xlU3RyaW5nIGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6Om5vZGVIYXNQcmVzZW50YXRpb25Sb2xlKToKKyAgICAgICAgKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnJlc29sdmVkRWRpdGluZ1N0eWxlcyBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Ojppc1JhZGlvQnV0dG9uSW5EaWZmZXJl
bnRBZGhvY0dyb3VwKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHk6OmZpbmRNYXRj
aGluZ09iamVjdHMpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVj
dEludGVyZmFjZS5oOgorICAgICAgICAoV2ViQ29yZTo6YWNjZXNzaWJpbGl0eVJvbGVUb1N0cmlu
Zyk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnJlbmRlck9i
amVjdElzT2JzZXJ2YWJsZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0OjpkZXRlcm1pbmVBY2Nlc3NpYmlsaXR5Um9sZSk6CisgICAgICAgIChXZWJD
b3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojp1cGRhdGVSb2xlQWZ0ZXJDaGlsZHJlbkNy
ZWF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6Omxp
dmVSZWdpb25SZWxldmFudCBjb25zdCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5VGFibGVDZWxsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlUYWJs
ZUNlbGw6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkIGNvbnN0KToKKyAgICAgICAgKiBh
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUcmVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFj
Y2Vzc2liaWxpdHlUcmVlOjpub2RlSGFzVHJlZUl0ZW1DaGlsZCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpBY2Nlc3NpYmlsaXR5VHJlZTo6aXNUcmVlVmFsaWQgY29uc3QpOgorICAgICAgICAq
IGFjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6QVhJc29sYXRlZE9iamVjdDo6aW5pdGlhbGl6ZUF0dHJpYnV0ZURhdGEpOgor
ICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZE9iamVjdDo6Y2xhc3NMaXN0IGNvbnN0KToKKyAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkVHJlZTo6QVhJc29sYXRlZFRyZWUpOgorICAgICAg
ICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6On5BWElzb2xhdGVkVHJlZSk6CisgICAgICAgIChX
ZWJDb3JlOjpBWElzb2xhdGVkVHJlZTo6Y2xlYXIpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29s
YXRlZFRyZWU6OnRyZWVGb3JJRCk6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkVHJlZTo6
Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjpyZW1vdmVUcmVlRm9y
UGFnZUlEKToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjpvYmplY3RzRm9ySURz
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjpnZW5lcmF0ZVN1YnRy
ZWUpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OmNvbGxlY3ROb2RlQ2hhbmdl
c0ZvclN1YnRyZWUpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OnVwZGF0ZU5v
ZGUpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OnVwZGF0ZU5vZGVQcm9wZXJ0
eSk6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkVHJlZTo6dXBkYXRlQ2hpbGRyZW4pOgor
ICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OmZvY3VzZWROb2RlKToKKyAgICAgICAg
KFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjpyb290Tm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpB
WElzb2xhdGVkVHJlZTo6c2V0Um9vdE5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRl
ZFRyZWU6OnNldEZvY3VzZWROb2RlSUQpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRy
ZWU6OnVwZGF0ZUxvYWRpbmdQcm9ncmVzcyk6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVk
VHJlZTo6cmVtb3ZlTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkVHJlZTo6cmVt
b3ZlU3VidHJlZUZyb21Ob2RlTWFwKToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVl
OjphcHBseVBlbmRpbmdDaGFuZ2VzKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9BY2Nl
c3NpYmlsaXR5T2JqZWN0TWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9i
amVjdDo6c3Vicm9sZVBsYXRmb3JtU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFj
Y2Vzc2liaWxpdHlPYmplY3Q6OnJvbGVQbGF0Zm9ybURlc2NyaXB0aW9uIGNvbnN0KToKKyAgICAg
ICAgKiBhbmltYXRpb24vQW5pbWF0aW9uRWZmZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFu
aW1hdGlvbkVmZmVjdDo6Z2V0VGltaW5nIGNvbnN0KToKKyAgICAgICAgKiBhbmltYXRpb24vRG9j
dW1lbnRUaW1lbGluZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFRpbWVsaW5lOjph
bmltYXRlKToKKyAgICAgICAgKiBhbmltYXRpb24vRWZmZWN0VGltaW5nLmg6CisgICAgICAgICog
YW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OktleWZyYW1l
RWZmZWN0OjpDU1NQcm9wZXJ0eUlEVG9JRExBdHRyaWJ1dGVOYW1lKToKKyAgICAgICAgKFdlYkNv
cmU6OktleWZyYW1lRWZmZWN0OjpnZXRLZXlmcmFtZXMpOgorICAgICAgICAqIGJpbmRpbmdzL2pz
L0dDQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHQ0NvbnRyb2xsZXI6OkdDQ29u
dHJvbGxlcik6CisgICAgICAgICogYmluZGluZ3MvanMvSlNDdXN0b21FbGVtZW50SW50ZXJmYWNl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTQ3VzdG9tRWxlbWVudEludGVyZmFjZTo6dXBncmFk
ZUVsZW1lbnQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NQ29udmVydE51bWJlcnMuaDoK
KyAgICAgICAgKFdlYkNvcmU6OkNvbnZlcnRlcjxJRExGbG9hdD46OmNvbnZlcnQpOgorICAgICAg
ICAqIGJpbmRpbmdzL2pzL0pTRXhlY1N0YXRlSW5zdHJ1bWVudGF0aW9uLmg6CisgICAgICAgIChX
ZWJDb3JlOjpKU0V4ZWNTdGF0ZTo6aW5zdHJ1bWVudEZ1bmN0aW9uKToKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENv
bnRyb2xsZXI6OmNhbGxJbldvcmxkKToKKyAgICAgICAgKiBicmlkZ2Uvb2JqYy9vYmpjX3J1bnRp
bWUubW06CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpPYmpjQXJyYXk6OnNldFZhbHVlQXQgY29u
c3QpOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6T2JqY0FycmF5Ojp2YWx1ZUF0IGNvbnN0KToK
KyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9hcnJheS5jcHA6CisgICAgICAgIChKU0M6OlJ1bnRp
bWVBcnJheTo6cHV0KToKKyAgICAgICAgKEpTQzo6UnVudGltZUFycmF5OjpwdXRCeUluZGV4KToK
KyAgICAgICAgKiBicmlkZ2UvcnVudGltZV9vYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpCaW5k
aW5nczo6dGhyb3dSdW50aW1lT2JqZWN0SW52YWxpZEFjY2Vzc0Vycm9yKToKKyAgICAgICAgKiBj
b250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uQWN0aW9ucy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6TW9kaWZ5SGVhZGVyc0FjdGlvbjo6TW9kaWZ5SGVh
ZGVySW5mbzo6cGFyc2UpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OlJl
ZGlyZWN0QWN0aW9uOjpwYXJzZSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9u
czo6UmVkaXJlY3RBY3Rpb246OlVSTFRyYW5zZm9ybUFjdGlvbjo6cGFyc2UpOgorICAgICAgICAo
V2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OlJlZGlyZWN0QWN0aW9uOjpVUkxUcmFuc2Zvcm1B
Y3Rpb246OlF1ZXJ5VHJhbnNmb3JtOjpwYXJzZSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50
RXh0ZW5zaW9uczo6UmVkaXJlY3RBY3Rpb246OlVSTFRyYW5zZm9ybUFjdGlvbjo6UXVlcnlUcmFu
c2Zvcm06OlF1ZXJ5S2V5VmFsdWU6OnBhcnNlKToKKyAgICAgICAgKiBjb250ZW50ZXh0ZW5zaW9u
cy9Db250ZW50RXh0ZW5zaW9uQ29tcGlsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVu
dEV4dGVuc2lvbnM6OmNvbXBpbGVSdWxlTGlzdCk6CisgICAgICAgICogY29udGVudGV4dGVuc2lv
bnMvQ29udGVudEV4dGVuc2lvblBhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50
RXh0ZW5zaW9uczo6Z2V0RG9tYWluTGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0
ZW5zaW9uczo6bG9hZFRyaWdnZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lv
bnM6OmxvYWRBY3Rpb24pOgorICAgICAgICAqIGNvbnRlbnRleHRlbnNpb25zL1NlcmlhbGl6ZWRO
RkEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OlNlcmlhbGl6ZWRO
RkE6OnNlcmlhbGl6ZSk6CisgICAgICAgICogY29udGVudGV4dGVuc2lvbnMvVVJMRmlsdGVyUGFy
c2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpVUkxGaWx0ZXJQ
YXJzZXI6OnN0YXR1c1N0cmluZyk6CisgICAgICAgICogY29udGVudGV4dGVuc2lvbnMvVVJMRmls
dGVyUGFyc2VyLmg6CisgICAgICAgICogY3J5cHRvL1N1YnRsZUNyeXB0by5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTdWJ0bGVDcnlwdG86OmFkZEF1dGhlbnRpY2F0ZWRFbmNyeXB0aW9uV2Fybmlu
Z0lmTmVjZXNzYXJ5KToKKyAgICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0
aG1BRVNfQ0JDLmg6CisgICAgICAgICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGht
QUVTX0NGQi5oOgorICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFF
U19DVFIuaDoKKyAgICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNf
R0NNLmg6CisgICAgICAgICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0tX
Lmg6CisgICAgICAgICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtRUNESC5oOgor
ICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUVDRFNBLmg6CisgICAg
ICAgICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtSEtERi5oOgorICAgICAgICAq
IGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUhNQUMuaDoKKyAgICAgICAgKiBjcnlw
dG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1QQktERjIuaDoKKyAgICAgICAgKiBjcnlwdG8v
YWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FFU19QS0NTMV92MV81Lmg6CisgICAgICAgICog
Y3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzUuaDoKKyAg
ICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FfT0FFUC5oOgorICAg
ICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQV9QU1MuaDoKKyAgICAg
ICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEExLmg6CisgICAgICAgICog
Y3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMjI0Lmg6CisgICAgICAgICogY3J5
cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMjU2Lmg6CisgICAgICAgICogY3J5cHRv
L2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMzg0Lmg6CisgICAgICAgICogY3J5cHRvL2Fs
Z29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBNTEyLmg6CisgICAgICAgICogY3J5cHRvL2tleXMv
Q3J5cHRvS2V5QUVTLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0tleUFFUzo6ZXhwb3J0
SndrIGNvbnN0KToKKyAgICAgICAgKiBjcnlwdG8va2V5cy9DcnlwdG9LZXlFQy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDcnlwdG9LZXlFQzo6ZXhwb3J0SndrIGNvbnN0KToKKyAgICAgICAgKiBj
cnlwdG8va2V5cy9DcnlwdG9LZXlITUFDLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0tl
eUhNQUM6OmV4cG9ydEp3ayBjb25zdCk6CisgICAgICAgICogY3J5cHRvL2tleXMvQ3J5cHRvS2V5
UlNBLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0tleVJTQTo6ZXhwb3J0SndrIGNvbnN0
KToKKyAgICAgICAgKiBjc3MvQ1NTRm9udEZhY2VTcmNWYWx1ZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDU1NGb250RmFjZVNyY1ZhbHVlOjppc1N1cHBvcnRlZEZvcm1hdCBjb25zdCk6CisgICAg
ICAgICogY3NzL0NTU0dyaWRUZW1wbGF0ZUFyZWFzVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6c3RyaW5nRm9yUG9zaXRpb24pOgorICAgICAgICAqIGNzcy9DU1NQcmltaXRpdmVWYWx1ZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6dW5pdFR5cGVTdHJpbmcp
OgorICAgICAgICAqIGNzcy9DU1NTdWJncmlkVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTU3ViZ3JpZFZhbHVlOjpjdXN0b21DU1NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvRE9N
Q1NTTmFtZXNwYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnZhbHVlV2l0aG91dEltcG9ydGFu
dCk6CisgICAgICAgICogY3NzL0RPTUNTU1JlZ2lzdGVyQ3VzdG9tUHJvcGVydHkuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RE9NQ1NTUmVnaXN0ZXJDdXN0b21Qcm9wZXJ0eTo6cmVnaXN0ZXJQcm9w
ZXJ0eSk6CisgICAgICAgICogY3NzL0RlcHJlY2F0ZWRDU1NPTVZhbHVlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkRlcHJlY2F0ZWRDU1NPTVZhbHVlOjpjc3NUZXh0IGNvbnN0KToKKyAgICAgICAg
KiBjc3MvRm9udEZhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udEZhY2U6OnVuaWNvZGVS
YW5nZSBjb25zdCk6CisgICAgICAgICogY3NzL01lZGlhUXVlcnlFeHByZXNzaW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlFeHByZXNzaW9uOjpzZXJpYWxpemUgY29uc3QpOgor
ICAgICAgICAqIGNzcy9TdHlsZVByb3BlcnRpZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5
bGVQcm9wZXJ0aWVzOjpnZXRMYXllcmVkU2hvcnRoYW5kVmFsdWUgY29uc3QpOgorICAgICAgICAo
V2ViQ29yZTo6TXV0YWJsZVN0eWxlUHJvcGVydGllczo6c2V0Q3VzdG9tUHJvcGVydHkpOgorICAg
ICAgICAqIGNzcy9tYWtldmFsdWVzLnBsOgorICAgICAgICAqIGNzcy9wYXJzZXIvTWVkaWFRdWVy
eVBhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5UGFyc2VyOjpza2lwVW50
aWxDb21tYSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5UGFyc2VyOjpwYXJzZUludGVy
bmFsKToKKyAgICAgICAgKiBjc3MvcGFyc2VyL1NpemVzQXR0cmlidXRlUGFyc2VyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNpemVzQXR0cmlidXRlUGFyc2VyOjptZWRpYUNvbmRpdGlvbk1hdGNo
ZXMpOgorICAgICAgICAqIGNzcy90eXBlZG9tL0NTU051bWVyaWNGYWN0b3J5Lmg6CisgICAgICAg
ICogY3NzL3R5cGVkb20vQ1NTTnVtZXJpY1ZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNT
U051bWVyaWNWYWx1ZTo6bXVsdGlwbHlJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NO
dW1lcmljVmFsdWU6OnRvKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU051bWVyaWNWYWx1ZTo6cGFy
c2UpOgorICAgICAgICAqIGNzcy90eXBlZG9tL0NTU1N0eWxlVmFsdWVGYWN0b3J5LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU1N0eWxlVmFsdWVGYWN0b3J5OjpyZWlmeVZhbHVlKToKKyAgICAg
ICAgKiBlZGl0aW5nL2NvY29hL0hUTUxDb252ZXJ0ZXIubW06CisgICAgICAgIChIVE1MQ29udmVy
dGVyQ2FjaGVzOjpwcm9wZXJ0eVZhbHVlRm9yTm9kZSk6CisgICAgICAgIChIVE1MQ29udmVydGVy
OjpfcHJvY2Vzc0VsZW1lbnQpOgorICAgICAgICAqIGVkaXRpbmcvY29jb2EvV2ViQ29udGVudFJl
YWRlckNvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6YXR0YWNobWVudEZvckRhdGEpOgorICAg
ICAgICAqIGxvYWRlci9jb2NvYS9CdW5kbGVSZXNvdXJjZUxvYWRlci5tbToKKyAgICAgICAgKFdl
YkNvcmU6OkJ1bmRsZVJlc291cmNlTG9hZGVyOjpsb2FkUmVzb3VyY2VGcm9tQnVuZGxlKToKKyAg
ICAgICAgKiBsb2FkZXIvbWFjL0xvYWRlck5TVVJMRXh0cmFzLm1tOgorICAgICAgICAoc3VnZ2Vz
dGVkRmlsZW5hbWVXaXRoTUlNRVR5cGUpOgorICAgICAgICAqIHBhZ2UvY29jb2EvUmVzb3VyY2VV
c2FnZU92ZXJsYXlDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6Okhpc3RvcmljUmVzb3VyY2VV
c2FnZURhdGE6Okhpc3RvcmljUmVzb3VyY2VVc2FnZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6
ZHJhd0NwdUhpc3RvcnkpOgorICAgICAgICAoV2ViQ29yZTo6ZHJhd0dDSGlzdG9yeSk6CisgICAg
ICAgIChXZWJDb3JlOjpkcmF3TWVtSGlzdG9yeSk6CisgICAgICAgICogcGFnZS9jb2NvYS9TZXR0
aW5nc0Jhc2VDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzQmFzZTo6aW5pdGlh
bGl6ZURlZmF1bHRGb250RmFtaWxpZXMpOgorICAgICAgICAqIHBhZ2UvbWFjL1BhZ2VNYWMubW06
CisgICAgICAgIChXZWJDb3JlOjpQYWdlOjpwbGF0Zm9ybUluaXRpYWxpemUpOgorICAgICAgICAq
IHBsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QVhBUklB
Q29udGVudEdyb3VwVGV4dCk6CisgICAgICAgICogcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5o
OgorICAgICAgICAqIHBsYXRmb3JtL1Bhc3RlYm9hcmQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9Q
YXN0ZWJvYXJkQ3VzdG9tRGF0YS5oOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL2NvY29hL01l
ZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lv
bk1hbmFnZXJDb2NvYTo6dXBkYXRlTm93UGxheWluZ0luZm8pOgorICAgICAgICAqIHBsYXRmb3Jt
L2NvY29hL0tleUV2ZW50Q29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjprZXlJZGVudGlmaWVy
Rm9yQ2hhckNvZGUpOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL1Bhc3RlYm9hcmRDb2NvYS5t
bToKKyAgICAgICAgKFdlYkNvcmU6OmltYWdlVHlwZVRvRmFrZUZpbGVuYW1lKToKKyAgICAgICAg
KFdlYkNvcmU6OlBhc3RlYm9hcmQ6OnJlYWQpOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL1Bh
c3RlYm9hcmRDdXN0b21EYXRhQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJk
Q3VzdG9tRGF0YTo6Y29jb2FUeXBlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb3Vy
Q0MuaDoKKyAgICAgICAgKFdURjo6TG9nQXJndW1lbnQ8V2ViQ29yZTo6Rm91ckNDPjo6dG9TdHJp
bmcpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dEdM
QU5HTEUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6dmFs
aWRhdGVEZXB0aFN0ZW5jaWwpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9DRE1Qcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6
Q0RNUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6cGFyc2VLZXlTeXN0ZW0pOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5k
YXRpb24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9D
RE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6
OkNETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDOjpzZXRTdG9yYWdlRGlyZWN0b3J5
KToKKyAgICAgICAgKFdlYkNvcmU6OkNETUluc3RhbmNlU2Vzc2lvbkZhaXJQbGF5U3RyZWFtaW5n
QVZGT2JqQzo6dXBkYXRlTGljZW5zZSk6CisgICAgICAgIChXZWJDb3JlOjpDRE1JbnN0YW5jZVNl
c3Npb25GYWlyUGxheVN0cmVhbWluZ0FWRk9iakM6OmRpZFByb3ZpZGVSZXF1ZXN0cyk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbk1lZGlh
U291cmNlQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkNETVNlc3Npb25NZWRpYVNvdXJj
ZUFWRk9iakM6OnN0b3JhZ2VQYXRoIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMu
bW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9i
akM6OnN0cmVhbVNlc3Npb24pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29y
ZTo6U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmRpZFByb3ZpZGVDb250ZW50S2V5UmVxdWVz
dEluaXRpYWxpemF0aW9uRGF0YUZvclRyYWNrSUQpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9E
YXRhRGV0ZWN0b3JIaWdobGlnaHQubW06CisgICAgICAgIChXZWJDb3JlOjpEYXRhRGV0ZWN0b3JI
aWdobGlnaHQ6OmZhZGVJbik6CisgICAgICAgIChXZWJDb3JlOjpEYXRhRGV0ZWN0b3JIaWdobGln
aHQ6OmZhZGVPdXQpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tOgor
ICAgICAgICAqIHBsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbToKKyAgICAg
ICAgKFdlYkNvcmU6OmtleUlkZW50aWZpZXJGb3JLZXlFdmVudCk6CisgICAgICAgIChXZWJDb3Jl
OjpQbGF0Zm9ybUtleWJvYXJkRXZlbnRCdWlsZGVyOjpQbGF0Zm9ybUtleWJvYXJkRXZlbnRCdWls
ZGVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvUGxhdGZvcm1QYXN0ZWJvYXJkTWFjLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1QYXN0ZWJvYXJkOjp0eXBlc1NhZmVGb3JET01Ub1Jl
YWRBbmRXcml0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVBhc3RlYm9hcmQ6
OndyaXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVBhc3RlYm9hcmRJdGVtKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tYWMvU3RyaW5nVXRpbGl0aWVzLm1tOgorICAgICAgICAoV2ViQ29yZTo6
d2lsZGNhcmRSZWdleFBhdHRlcm5TdHJpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9UaHJl
YWRDaGVjay5tbToKKyAgICAgICAgKFdlYkNvcmVSZXBvcnRUaHJlYWRWaW9sYXRpb24pOgorICAg
ICAgICAqIHBsYXRmb3JtL21hYy9Vc2VyQWdlbnRNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpz
dGFuZGFyZFVzZXJBZ2VudFdpdGhBcHBsaWNhdGlvbk5hbWUpOgorICAgICAgICAqIHBsYXRmb3Jt
L25ldHdvcmsvUmVzb3VyY2VFcnJvckJhc2UuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdv
cmsvUmVzb3VyY2VFcnJvckJhc2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NvY29h
L1JhbmdlUmVzcG9uc2VHZW5lcmF0b3IubW06CisgICAgICAgIChXZWJDb3JlOjpzeW50aGVzaXpl
ZFJlc3BvbnNlRm9yUmFuZ2UpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5t
bToKKyAgICAgICAgKFdlYkNvcmU6Omljb25Gb3JBdHRhY2htZW50KToKKyAgICAgICAgKiByZW5k
ZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
b3BlcmF0b3I8PCk6CisgICAgICAgICogc3ZnL1NWR0ZpbHRlckVsZW1lbnQuaDoKKyAgICAgICAg
KiBzdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmg6CisgICAgICAgICog
c3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdNYXJrZXJF
bGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR01hc2tFbGVtZW50Lmg6CisgICAgICAgICogc3Zn
L1NWR1BhdGhTZWdJbXBsLmg6CisgICAgICAgICogc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVu
dC5oOgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5VHJhaXRzLmg6CisgICAg
ICAgIChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxib29sPjo6dG9TdHJpbmcpOgorICAgICAg
ICAqIHRlc3RpbmcvTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5ncy5oOgorICAgICAgICAoV2ViQ29y
ZTo6TW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5nczo6dW5ibG9ja1VSTEhvc3QpOgorICAgICAgICAq
IHhtbC9YUGF0aFZhbHVlLmg6CisgICAgICAgIChXZWJDb3JlOjpYUGF0aDo6VmFsdWU6OlZhbHVl
KToKKyAgICAgICAgKiB4bWwvWFNMU3R5bGVTaGVldC5oOgorCiAyMDIyLTAzLTI0ICBDaHJpcyBE
dW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgU3RyaW5nJ3MgZmluZCgpIC8gcmV2
ZXJzZUZpbmQoKSAvIHJlcGxhY2UoKSBzaG91bGQgdGFrZSBpbiBhIFN0cmluZ1ZpZXcgaW5zdGVh
ZCBvZiBhIFN0cmluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkdQVS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViR1BVL0NoYW5nZUxvZwppbmRleCAzZWRmMDMyN2VhM2Q5MGZhNWI1NThkZDU4OWNmYWMy
YWE1MGViNDFlLi4xYmY2MmY5MDc5YjQxNzcxN2VhYjBkNDJiOTgxYTYwOGRmMWMzZWM2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViR1BVL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViR1BVL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDIyLTAzLTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBh
cHBsZS5jb20+CisKKyAgICAgICAgU3RhcnQgcHJlcGFyaW5nIFdlYkNvcmUgZm9yIG1ha2luZyB0
aGUgU3RyaW5nKGNvbnN0IGNoYXIqKSBjb25zdHJ1Y3RvciBleHBsaWNpdAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4MzM2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3RhcnQgcHJlcGFyaW5nIFdlYkNv
cmUgZm9yIG1ha2luZyB0aGUgU3RyaW5nKGNvbnN0IGNoYXIqKSBjb25zdHJ1Y3RvciBleHBsaWNp
dC4KKyAgICAgICAgTWFraW5nIHRoaXMgY29uc3RydWN0b3IgZXhwbGljaXQgaGVscHMgY2F0Y2gg
YXQgY29tcGlsZSB0aW1lIGNhc2VzIHdoZXJlIHRoZSAiIl9zCisgICAgICAgIHByZWZpeCBpcyBt
aXNzaW5nIG9uIFN0cmluZyBsaXRlcmFscy4KKworICAgICAgICAqIFdHU0wvUGFyc2VyLmNwcDoK
KyAgICAgICAgKFdHU0w6OlBhcnNlcjxMZXhlcj46OnBhcnNlR2xvYmFsRGVjbCk6CisgICAgICAg
IChXR1NMOjpQYXJzZXI8TGV4ZXI+OjpwYXJzZUF0dHJpYnV0ZSk6CisgICAgICAgIChXR1NMOjpQ
YXJzZXI8TGV4ZXI+OjpwYXJzZVR5cGVEZWNsKToKKyAgICAgICAgKFdHU0w6OlBhcnNlcjxMZXhl
cj46OnBhcnNlU3RvcmFnZUNsYXNzKToKKyAgICAgICAgKFdHU0w6OlBhcnNlcjxMZXhlcj46OnBh
cnNlQWNjZXNzTW9kZSk6CisgICAgICAgIChXR1NMOjpQYXJzZXI8TGV4ZXI+OjpwYXJzZVN0YXRl
bWVudCk6CisgICAgICAgIChXR1NMOjpQYXJzZXI8TGV4ZXI+OjpwYXJzZVByaW1hcnlFeHByZXNz
aW9uKToKKyAgICAgICAgKFdHU0w6OlBhcnNlcjxMZXhlcj46OnBhcnNlQ29yZUxIU0V4cHJlc3Np
b24pOgorICAgICAgICAqIFdHU0wvVG9rZW4uY3BwOgorICAgICAgICAoV0dTTDo6dG9TdHJpbmcp
OgorICAgICAgICAqIFdlYkdQVS9BZGFwdGVyLm1tOgorICAgICAgICAoV2ViR1BVOjpBZGFwdGVy
OjpyZXF1ZXN0RGV2aWNlKToKKyAgICAgICAgKiBXZWJHUFUvQnVmZmVyLm1tOgorICAgICAgICAo
V2ViR1BVOjpCdWZmZXI6Om1hcEFzeW5jKToKKyAgICAgICAgKFdlYkdQVTo6QnVmZmVyOjp1bm1h
cCk6CisgICAgICAgICogV2ViR1BVL0NvbW1hbmRFbmNvZGVyLm1tOgorICAgICAgICAoV2ViR1BV
OjpDb21tYW5kRW5jb2Rlcjo6Y29weUJ1ZmZlclRvQnVmZmVyKToKKyAgICAgICAgKFdlYkdQVTo6
Q29tbWFuZEVuY29kZXI6OmNsZWFyQnVmZmVyKToKKyAgICAgICAgKFdlYkdQVTo6Q29tbWFuZEVu
Y29kZXI6OmZpbmlzaCk6CisgICAgICAgICogV2ViR1BVL0NvbXB1dGVQaXBlbGluZS5tbToKKyAg
ICAgICAgKFdlYkdQVTo6Y3JlYXRlQ29uc3RhbnRWYWx1ZXMpOgorICAgICAgICAoV2ViR1BVOjpE
ZXZpY2U6OmNyZWF0ZUNvbXB1dGVQaXBlbGluZSk6CisgICAgICAgICogV2ViR1BVL1F1ZXVlLm1t
OgorICAgICAgICAoV2ViR1BVOjpRdWV1ZTo6c3VibWl0KToKKyAgICAgICAgKiBXZWJHUFUvU2Ft
cGxlci5tbToKKyAgICAgICAgKFdlYkdQVTo6RGV2aWNlOjpjcmVhdGVTYW1wbGVyKToKKyAgICAg
ICAgKiBXZWJHUFUvU2hhZGVyTW9kdWxlLm1tOgorICAgICAgICAoV2ViR1BVOjplYXJseUNvbXBp
bGVTaGFkZXJNb2R1bGUpOgorCiAyMDIyLTAzLTIzICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhm
aWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYkdQVV0gRml4IHRoZSBub24tbWFjT1MgYnVp
bGQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKaW5kZXggYjk0YzNhZmE3MjQzY2YxY2FkZTgxMDVhNjZkZmQzN2Y5ZDE2ODdkMy4u
NWMzZGY0NjFjN2M3YjYxZDY4ZDM4MTYyMjdjNDA1NzNlMWU0ZmI0MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxOCBAQAorMjAyMi0wMy0yNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFN0YXJ0IHByZXBhcmluZyBXZWJDb3JlIGZvciBtYWtpbmcgdGhlIFN0cmluZyhj
b25zdCBjaGFyKikgY29uc3RydWN0b3IgZXhwbGljaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODMzNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0YXJ0IHByZXBhcmluZyBXZWJDb3JlIGZvciBtYWtp
bmcgdGhlIFN0cmluZyhjb25zdCBjaGFyKikgY29uc3RydWN0b3IgZXhwbGljaXQuCisgICAgICAg
IE1ha2luZyB0aGlzIGNvbnN0cnVjdG9yIGV4cGxpY2l0IGhlbHBzIGNhdGNoIGF0IGNvbXBpbGUg
dGltZSBjYXNlcyB3aGVyZSB0aGUgIiJfcworICAgICAgICBwcmVmaXggaXMgbWlzc2luZyBvbiBT
dHJpbmcgbGl0ZXJhbHMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwu
bW06CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZXRQcm9taXNlZERhdGFGb3JJbWFn
ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpyZXF1ZXN0RE9NUGFzdGVBY2Nlc3Mp
OgorCiAyMDIyLTAzLTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAg
ICAgU3RyaW5nJ3MgZmluZCgpIC8gcmV2ZXJzZUZpbmQoKSAvIHJlcGxhY2UoKSBzaG91bGQgdGFr
ZSBpbiBhIFN0cmluZ1ZpZXcgaW5zdGVhZCBvZiBhIFN0cmluZwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hh
bmdlTG9nCmluZGV4IGE0YzgxYjUyNDU3ZDk4NzVkMjgwZjc1MGQyNTczNWVlZTY3MGM2OGIuLjM4
MmQ0ZWMyYjM0YmQ2YzdjNjI0NDI3ZmU4ZjM0NTM3YTUwN2UxYzMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMi0wMy0yNCAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFN0YXJ0IHByZXBhcmluZyBXZWJDb3JlIGZvciBt
YWtpbmcgdGhlIFN0cmluZyhjb25zdCBjaGFyKikgY29uc3RydWN0b3IgZXhwbGljaXQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODMzNgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0YXJ0IHByZXBhcmlu
ZyBXZWJDb3JlIGZvciBtYWtpbmcgdGhlIFN0cmluZyhjb25zdCBjaGFyKikgY29uc3RydWN0b3Ig
ZXhwbGljaXQuCisgICAgICAgIE1ha2luZyB0aGlzIGNvbnN0cnVjdG9yIGV4cGxpY2l0IGhlbHBz
IGNhdGNoIGF0IGNvbXBpbGUgdGltZSBjYXNlcyB3aGVyZSB0aGUgIiJfcworICAgICAgICBwcmVm
aXggaXMgbWlzc2luZyBvbiBTdHJpbmcgbGl0ZXJhbHMuCisKKyAgICAgICAgKiBNaXNjL1dlYk5T
UGFzdGVib2FyZEV4dHJhcy5tbToKKyAgICAgICAgKC1bTlNQYXN0ZWJvYXJkIF93ZWJfZGVjbGFy
ZUFuZFdyaXRlRHJhZ0ltYWdlRm9yRWxlbWVudDpVUkw6dGl0bGU6YXJjaGl2ZTpzb3VyY2U6XSk6
CisKIDIwMjItMDMtMTggIEpvbmF0aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBwbGUuY29tPgogCiAg
ICAgICAgIFtpT1MgMTUuNF0gRml4IHVudXNlZCB2YXJpYWJsZXMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWYWx1ZS5tbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9B
UEkvSlNWYWx1ZS5tbQppbmRleCBkM2FkMDgwZTFkZGY0ZmU2ZWZiYTkxMzViYTI2ODc2Yzc3ZGNi
YzI2Li5mMTJhMmM0OTUzZjAwMzJkZmI0YjcyZjY4ZmY4MGZlZGRiNjkwMzU0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmFsdWUubW0KKysrIGIvU291cmNlL0phdmFT
Y3JpcHRDb3JlL0FQSS9KU1ZhbHVlLm1tCkBAIC0xMTc5LDcgKzExNzksNyBAQCBzdGF0aWMgU3Ry
dWN0SGFuZGxlcnMqIGNyZWF0ZVN0cnVjdEhhbmRsZXJNYXAoKQogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICAvLyBUcnkgdG8gZmluZCBhIG1hdGNoaW5nIHZhbHVlV2l0aDxGb28+OmNvbnRl
eHQ6IG1ldGhvZC4KICAgICAgICAgYXV0byB0eXBlID0gYWRvcHRTeXN0ZW08Y2hhcltdPihtZXRo
b2RfY29weVJldHVyblR5cGUobWV0aG9kKSk7Ci0gICAgICAgIFN0cnVjdEhhbmRsZXJzOjppdGVy
YXRvciBpdGVyID0gc3RydWN0SGFuZGxlcnMtPmZpbmQodHlwZS5nZXQoKSk7CisgICAgICAgIFN0
cnVjdEhhbmRsZXJzOjppdGVyYXRvciBpdGVyID0gc3RydWN0SGFuZGxlcnMtPmZpbmQoU3RyaW5n
IHsgdHlwZS5nZXQoKSB9KTsKICAgICAgICAgaWYgKGl0ZXIgPT0gc3RydWN0SGFuZGxlcnMtPmVu
ZCgpKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBTdHJ1Y3RUYWdIYW5kbGVyJiBoYW5k
bGVyID0gaXRlci0+dmFsdWU7CkBAIC0xMjE3LDcgKzEyMTcsNyBAQCBzdGF0aWMgU3RydWN0VGFn
SGFuZGxlciogaGFuZGVyRm9yU3RydWN0VGFnKGNvbnN0IGNoYXIqIGVuY29kZWRUeXBlKQogCiAg
ICAgc3RhdGljIFN0cnVjdEhhbmRsZXJzKiBzdHJ1Y3RIYW5kbGVycyA9IGNyZWF0ZVN0cnVjdEhh
bmRsZXJNYXAoKTsKIAotICAgIFN0cnVjdEhhbmRsZXJzOjppdGVyYXRvciBpdGVyID0gc3RydWN0
SGFuZGxlcnMtPmZpbmQoZW5jb2RlZFR5cGUpOworICAgIFN0cnVjdEhhbmRsZXJzOjppdGVyYXRv
ciBpdGVyID0gc3RydWN0SGFuZGxlcnMtPmZpbmQoU3RyaW5nIHsgZW5jb2RlZFR5cGUgfSk7CiAg
ICAgaWYgKGl0ZXIgPT0gc3RydWN0SGFuZGxlcnMtPmVuZCgpKQogICAgICAgICByZXR1cm4gMDsK
ICAgICByZXR1cm4gJml0ZXItPnZhbHVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS9KU1dyYXBwZXJNYXAubW0gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTV3Jh
cHBlck1hcC5tbQppbmRleCA5NmU0NDc4ODcwY2Q4MWE1ODk5N2QwMmRhNmZhNGZiYTM0NmFmMTk1
Li5mODIxZGY4ZTNlYmVkNTdmNTQwY2QyZjAxZDY0ZWM5NmRjZmE4NmNkIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTV3JhcHBlck1hcC5tbQorKysgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQVBJL0pTV3JhcHBlck1hcC5tbQpAQCAtNDUxLDcgKzQ1MSw3IEBAIHN0YXRp
YyBKU0M6OkpTT2JqZWN0KiBhbGxvY2F0ZUNvbnN0cnVjdG9yRm9yQ3VzdG9tQ2xhc3MoSlNDb250
ZXh0ICpjb250ZXh0LCBjb25zCiAgICAgICAgIGZvckVhY2hNZXRob2RJbkNsYXNzKGN1cnJlbnRD
bGFzcywgXihNZXRob2QgbWV0aG9kKSB7CiAgICAgICAgICAgICBTRUwgc2VsZWN0b3IgPSBtZXRo
b2RfZ2V0TmFtZShtZXRob2QpOwogICAgICAgICAgICAgY29uc3QgY2hhciogbmFtZSA9IHNlbF9n
ZXROYW1lKHNlbGVjdG9yKTsKLSAgICAgICAgICAgIGF1dG8gaXRlciA9IGluaXRUYWJsZS5maW5k
KG5hbWUpOworICAgICAgICAgICAgYXV0byBpdGVyID0gaW5pdFRhYmxlLmZpbmQoU3RyaW5nIHsg
bmFtZSB9KTsKIAogICAgICAgICAgICAgaWYgKGl0ZXIgPT0gaW5pdFRhYmxlLmVuZCgpKQogICAg
ICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9p
bnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckF1ZGl0QWdlbnQuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQXVkaXRBZ2VudC5jcHAKaW5kZXggMzBh
Y2FmMzM0NTgwNTM3NGQ4MWRiYjBiMWM1ZDQ5ZmY3YWYwYTZlMS4uYzI4NzczNmQ3MWU3ZWI5ZTg4
NTU4ZmZjZDBiNzA0NTI1YmZmY2Y5NyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQXVkaXRBZ2VudC5jcHAKKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQXVkaXRBZ2VudC5jcHAKQEAg
LTkyLDcgKzkyLDcgQEAgUHJvdG9jb2w6OkVycm9yU3RyaW5nT3I8c3RkOjp0dXBsZTxSZWY8UHJv
dG9jb2w6OlJ1bnRpbWU6OlJlbW90ZU9iamVjdD4sIHN0ZDo6b3AKICAgICBpZiAoaW5qZWN0ZWRT
Y3JpcHQuaGFzTm9WYWx1ZSgpKQogICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoZXJyb3JT
dHJpbmcpOwogCi0gICAgYXV0byBmdW5jdGlvblN0cmluZyA9IG1ha2VTdHJpbmcoIihmdW5jdGlv
bihXZWJJbnNwZWN0b3JBdWRpdCkgeyBcInVzZSBzdHJpY3RcIjsgcmV0dXJuIGV2YWwoYCgiLCBT
dHJpbmcgeyB0ZXN0IH0ucmVwbGFjZSgnYCcsICJcXGAiKSwgIilgKShXZWJJbnNwZWN0b3JBdWRp
dCk7IH0pIik7CisgICAgYXV0byBmdW5jdGlvblN0cmluZyA9IG1ha2VTdHJpbmcoIihmdW5jdGlv
bihXZWJJbnNwZWN0b3JBdWRpdCkgeyBcInVzZSBzdHJpY3RcIjsgcmV0dXJuIGV2YWwoYCgiLCBT
dHJpbmcgeyB0ZXN0IH0ucmVwbGFjZSgnYCcsICJcXGAiX3MpLCAiKWApKFdlYkluc3BlY3RvckF1
ZGl0KTsgfSkiKTsKIAogICAgIEluamVjdGVkU2NyaXB0OjpFeGVjdXRlT3B0aW9ucyBvcHRpb25z
OwogICAgIG9wdGlvbnMub2JqZWN0R3JvdXAgPSAiYXVkaXQiX3M7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL3d0Zi90ZXh0L1RleHRTdHJlYW0uaCBiL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dFN0
cmVhbS5oCmluZGV4IGM4NWRhNjY0MWUxMzE3M2M5NzExNTdiYTRhOTgzYjQ0ZjU0NjViYTUuLmRm
NzEyZWQyMDVmNDc5Nzk3YmI2ZDlmNTA2N2Q2MTQzMTFjNjUwYTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XVEYvd3RmL3RleHQvVGV4dFN0cmVhbS5oCisrKyBiL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4
dFN0cmVhbS5oCkBAIC0xMDAsNiArMTAwLDE1IEBAIHB1YmxpYzoKICAgICAgICAgdHMuZW5kR3Jv
dXAoKTsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorICAgIHZvaWQgZHVtcFBy
b3BlcnR5KGNvbnN0IGNoYXIqIG5hbWUsIGNvbnN0IFQmIHZhbHVlKQorICAgIHsKKyAgICAgICAg
VGV4dFN0cmVhbSYgdHMgPSAqdGhpczsKKyAgICAgICAgdHMuc3RhcnRHcm91cCgpOworICAgICAg
ICB0cyA8PCBuYW1lIDw8ICIgIiA8PCB2YWx1ZTsKKyAgICAgICAgdHMuZW5kR3JvdXAoKTsKKyAg
ICB9CisKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5nIHJlbGVhc2UoKTsKICAgICAKICAg
ICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBzdGFydEdyb3VwKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5LWFtcy11aS9BcHBsZVBheUFNU1VJUGF5bWVudEhh
bmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS1hbXMtdWkvQXBwbGVQ
YXlBTVNVSVBheW1lbnRIYW5kbGVyLmNwcAppbmRleCBmNGRhZjhkMThhZWM0OTk3NzVkNWMwM2Mw
OGVhYTA0MzI0MTE0M2ZiLi40YTMyMjVjZTljYTQwNmMwMGZlMTY4NDYwYTVkNmQwMzAwNDI4NTU5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5LWFtcy11aS9BcHBs
ZVBheUFNU1VJUGF5bWVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
YXBwbGVwYXktYW1zLXVpL0FwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxlci5jcHAKQEAgLTM5LDcg
KzM5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogc3RhdGljIEV4Y2VwdGlvbk9yPEFwcGxlUGF5
QU1TVUlSZXF1ZXN0PiBjb252ZXJ0QW5kVmFsaWRhdGVBcHBsZVBheUFNU1VJUmVxdWVzdChEb2N1
bWVudCYgZG9jdW1lbnQsIEpTQzo6SlNWYWx1ZSBkYXRhKQogewogICAgIGlmIChkYXRhLmlzRW1w
dHkoKSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIk1pc3NpbmcgcGF5
bWVudCBtZXRob2QgZGF0YS4iIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJy
b3IsICJNaXNzaW5nIHBheW1lbnQgbWV0aG9kIGRhdGEuIl9zIH07CiAKICAgICBhdXRvIHRocm93
U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKGRvY3VtZW50LnZtKCkpOwogICAgIGF1dG8gYXBw
bGVQYXlBTVNVSVJlcXVlc3QgPSBjb252ZXJ0RGljdGlvbmFyeTxBcHBsZVBheUFNU1VJUmVxdWVz
dD4oKmRvY3VtZW50Lmdsb2JhbE9iamVjdCgpLCBkYXRhKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlDb250YWN0RmllbGQuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUNvbnRhY3RGaWVsZC5jcHAKaW5kZXgg
ZGQzZGNiNGVjN2RkNGE2YWYzOTBiZWQ2YzFhN2YyYTE0MjMxMzUyNC4uMzcxYjllZDQyMzI4N2Q5
NzczNTU5YTVjZjhhNTFiNjc5N2VmM2FjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9hcHBsZXBheS9BcHBsZVBheUNvbnRhY3RGaWVsZC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUNvbnRhY3RGaWVsZC5jcHAKQEAgLTQ0LDcgKzQ0
LDcgQEAgRXhjZXB0aW9uT3I8QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6OkNvbnRhY3RG
aWVsZHM+IGNvbnZlcnRBbmRWYWxpZGF0ZSh1bnMKICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICBjYXNlIEFwcGxlUGF5Q29udGFjdEZpZWxkOjpQaG9uZXRpY05hbWU6CiAgICAgICAgICAgICBp
ZiAodmVyc2lvbiA8IDMpCi0gICAgICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVF
cnJvciwgIlwicGhvbmV0aWNOYW1lXCIgaXMgbm90IGEgdmFsaWQgY29udGFjdCBmaWVsZC4iIH07
CisgICAgICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIlwicGhvbmV0
aWNOYW1lXCIgaXMgbm90IGEgdmFsaWQgY29udGFjdCBmaWVsZC4iX3MgfTsKICAgICAgICAgICAg
IHJlc3VsdC5waG9uZXRpY05hbWUgPSB0cnVlOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAg
IGNhc2UgQXBwbGVQYXlDb250YWN0RmllbGQ6OlBob25lOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheU1lcmNoYW50Q2FwYWJpbGl0eS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5TWVyY2hhbnRDYXBhYmlsaXR5
LmNwcAppbmRleCBhNjJhMmM3M2VhMzA2NTUxYmVlODVkYzk1NjE3YzExNjI1NjUzYmMyLi5mNjg0
YmM5YWM2MWQ0OTlhNTVjYTRlMTgxZjU3YjQ2OTE3MjU3OWExIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5TWVyY2hhbnRDYXBhYmlsaXR5LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5TWVyY2hhbnRDYXBh
YmlsaXR5LmNwcApAQCAtMzMsNyArMzMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBFeGNlcHRp
b25PcjxBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6TWVyY2hhbnRDYXBhYmlsaXRpZXM+
IGNvbnZlcnRBbmRWYWxpZGF0ZShjb25zdCBWZWN0b3I8QXBwbGVQYXlNZXJjaGFudENhcGFiaWxp
dHk+JiBtZXJjaGFudENhcGFiaWxpdGllcykKIHsKICAgICBpZiAobWVyY2hhbnRDYXBhYmlsaXRp
ZXMuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiQXQg
bGVhc3Qgb25lIG1lcmNoYW50IGNhcGFiaWxpdHkgbXVzdCBiZSBwcm92aWRlZC4iIH07CisgICAg
ICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJBdCBsZWFzdCBvbmUgbWVyY2hhbnQg
Y2FwYWJpbGl0eSBtdXN0IGJlIHByb3ZpZGVkLiJfcyB9OwogCiAgICAgQXBwbGVQYXlTZXNzaW9u
UGF5bWVudFJlcXVlc3Q6Ok1lcmNoYW50Q2FwYWJpbGl0aWVzIHJlc3VsdDsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVJlcXVlc3RCYXNlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlSZXF1ZXN0QmFzZS5j
cHAKaW5kZXggMjQ1ODZkNWRkNDc5YzkwOTNkNDlmOTYxMDExOTFjYWE4ZTg1MDk3ZS4uOGQzNjI3
YTZmNmEyN2ZiOGM4MmM5M2FkNTQ2ZDZhYWYwNjliZjEzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVJlcXVlc3RCYXNlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5UmVxdWVzdEJhc2UuY3BwCkBAIC03
Myw3ICs3Myw3IEBAIEV4Y2VwdGlvbk9yPEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0PiBj
b252ZXJ0QW5kVmFsaWRhdGUoRG9jdW1lbnQmIGRvY3VtZW50CiAgICAgcmVzdWx0LnNldE1lcmNo
YW50Q2FwYWJpbGl0aWVzKG1lcmNoYW50Q2FwYWJpbGl0aWVzLnJlbGVhc2VSZXR1cm5WYWx1ZSgp
KTsKIAogICAgIGlmIChyZXF1aXJlc1N1cHBvcnRlZE5ldHdvcmtzKHZlcnNpb24sIHJlcXVlc3Qp
ICYmIHJlcXVlc3Quc3VwcG9ydGVkTmV0d29ya3MuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4g
RXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiQXQgbGVhc3Qgb25lIHN1cHBvcnRlZCBuZXR3b3JrIG11
c3QgYmUgcHJvdmlkZWQuIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9y
LCAiQXQgbGVhc3Qgb25lIHN1cHBvcnRlZCBuZXR3b3JrIG11c3QgYmUgcHJvdmlkZWQuIl9zIH07
CiAKICAgICBhdXRvIHN1cHBvcnRlZE5ldHdvcmtzID0gY29udmVydEFuZFZhbGlkYXRlKGRvY3Vt
ZW50LCB2ZXJzaW9uLCByZXF1ZXN0LnN1cHBvcnRlZE5ldHdvcmtzLCBwYXltZW50Q29vcmRpbmF0
b3IpOwogICAgIGlmIChzdXBwb3J0ZWROZXR3b3Jrcy5oYXNFeGNlcHRpb24oKSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTZXNzaW9uLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTZXNzaW9uLmNwcAppbmRl
eCA2Y2JmY2YwNzk3NTAxYTk5NjI5ZmNjNjkzNmI2ZjA1MGYwY2ZjODlhLi41OWUzMDBiZWI3MDky
NmVmOTgzYWVjYmE2ZDRhZTViNmU3YjA2NWM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNlc3Npb24uY3BwCkBAIC0zMTAsMTAgKzMxMCwxMCBA
QCBFeGNlcHRpb25PcjxSZWY8QXBwbGVQYXlTZXNzaW9uPj4gQXBwbGVQYXlTZXNzaW9uOjpjcmVh
dGUoRG9jdW1lbnQmIGRvY3VtZW50LCB1bgogICAgICAgICByZXR1cm4gY2FuQ2FsbC5yZWxlYXNl
RXhjZXB0aW9uKCk7CiAKICAgICBpZiAoIVVzZXJHZXN0dXJlSW5kaWNhdG9yOjpwcm9jZXNzaW5n
VXNlckdlc3R1cmUoKSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NF
cnJvciwgIk11c3QgY3JlYXRlIGEgbmV3IEFwcGxlUGF5U2Vzc2lvbiBmcm9tIGEgdXNlciBnZXN0
dXJlIGhhbmRsZXIuIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vz
c0Vycm9yLCAiTXVzdCBjcmVhdGUgYSBuZXcgQXBwbGVQYXlTZXNzaW9uIGZyb20gYSB1c2VyIGdl
c3R1cmUgaGFuZGxlci4iX3MgfTsKIAogICAgIGlmICghZG9jdW1lbnQucGFnZSgpKQotICAgICAg
ICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiRnJhbWUgaXMgZGV0YWNo
ZWQiIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJG
cmFtZSBpcyBkZXRhY2hlZCJfcyB9OwogCiAgICAgYXV0byBjb252ZXJ0ZWRQYXltZW50UmVxdWVz
dCA9IGNvbnZlcnRBbmRWYWxpZGF0ZShkb2N1bWVudCwgdmVyc2lvbiwgV1RGTW92ZShwYXltZW50
UmVxdWVzdCksIGRvY3VtZW50LnBhZ2UoKS0+cGF5bWVudENvb3JkaW5hdG9yKCkpOwogICAgIGlm
IChjb252ZXJ0ZWRQYXltZW50UmVxdWVzdC5oYXNFeGNlcHRpb24oKSkKQEAgLTQxMiw3ICs0MTIs
NyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBBcHBsZVBheVNlc3Npb246Om9wZW5QYXltZW50U2V0dXAo
RG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdAogICAgICAgICByZXR1cm4gY2FuQ2FsbC5yZWxl
YXNlRXhjZXB0aW9uKCk7CiAKICAgICBpZiAoIVVzZXJHZXN0dXJlSW5kaWNhdG9yOjpwcm9jZXNz
aW5nVXNlckdlc3R1cmUoKSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nl
c3NFcnJvciwgIk11c3QgY2FsbCBBcHBsZVBheVNlc3Npb24ub3BlblBheW1lbnRTZXR1cCBmcm9t
IGEgdXNlciBnZXN0dXJlIGhhbmRsZXIuIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
SW52YWxpZEFjY2Vzc0Vycm9yLCAiTXVzdCBjYWxsIEFwcGxlUGF5U2Vzc2lvbi5vcGVuUGF5bWVu
dFNldHVwIGZyb20gYSB1c2VyIGdlc3R1cmUgaGFuZGxlci4iX3MgfTsKIAogICAgIGF1dG8qIHBh
Z2UgPSBkb2N1bWVudC5wYWdlKCk7CiAgICAgaWYgKCFwYWdlKQpAQCAtNDMxLDEzICs0MzEsMTMg
QEAgRXhjZXB0aW9uT3I8dm9pZD4gQXBwbGVQYXlTZXNzaW9uOjpvcGVuUGF5bWVudFNldHVwKERv
Y3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3QKIEV4Y2VwdGlvbk9yPHZvaWQ+IEFwcGxlUGF5U2Vz
c2lvbjo6YmVnaW4oRG9jdW1lbnQmIGRvY3VtZW50KQogewogICAgIGlmICghY2FuQmVnaW4oKSkK
LSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwgIlBheW1lbnQg
c2Vzc2lvbiBpcyBhbHJlYWR5IGFjdGl2ZS4iIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBJbnZhbGlkQWNjZXNzRXJyb3IsICJQYXltZW50IHNlc3Npb24gaXMgYWxyZWFkeSBhY3RpdmUu
Il9zIH07CiAKICAgICBpZiAocGF5bWVudENvb3JkaW5hdG9yKCkuaGFzQWN0aXZlU2Vzc2lvbigp
KQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiUGFnZSBh
bHJlYWR5IGhhcyBhbiBhY3RpdmUgcGF5bWVudCBzZXNzaW9uLiIgfTsKKyAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwgIlBhZ2UgYWxyZWFkeSBoYXMgYW4gYWN0
aXZlIHBheW1lbnQgc2Vzc2lvbi4iX3MgfTsKIAogICAgIGlmICghcGF5bWVudENvb3JkaW5hdG9y
KCkuYmVnaW5QYXltZW50U2Vzc2lvbihkb2N1bWVudCwgKnRoaXMsIG1fcGF5bWVudFJlcXVlc3Qp
KQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiVGhlcmUg
aXMgYWxyZWFkeSBoYXMgYW4gYWN0aXZlIHBheW1lbnQgc2Vzc2lvbi4iIH07CisgICAgICAgIHJl
dHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJUaGVyZSBpcyBhbHJlYWR5IGhh
cyBhbiBhY3RpdmUgcGF5bWVudCBzZXNzaW9uLiJfcyB9OwogCiAgICAgbV9zdGF0ZSA9IFN0YXRl
OjpBY3RpdmU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkv
QXBwbGVQYXlTZXR1cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxl
UGF5U2V0dXAuY3BwCmluZGV4IGU4YjEzNjE2OTBiMjBlYWY3ZTFjNjE2YTc3MmE4ZjYxM2RlZmYz
NDguLjg5ZTRhNDU1ZjE4NWY4MTkwYzdlYzBkNzYxNzg0ZDU5NDZiYzYxNjMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTZXR1cC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNldHVwLmNwcApAQCAtOTEs
NyArOTEsNyBAQCB2b2lkIEFwcGxlUGF5U2V0dXA6OmJlZ2luKERvY3VtZW50JiBkb2N1bWVudCwg
VmVjdG9yPFJlZlB0cjxBcHBsZVBheVNldHVwRmVhdHVyZQogICAgIH0KIAogICAgIGlmICghVXNl
ckdlc3R1cmVJbmRpY2F0b3I6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpKSB7Ci0gICAgICAgIHBy
b21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwgIk11c3QgY2FsbCBB
cHBsZVBheVNldHVwLmJlZ2luIGZyb20gYSB1c2VyIGdlc3R1cmUgaGFuZGxlci4iIH0pOworICAg
ICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJNdXN0
IGNhbGwgQXBwbGVQYXlTZXR1cC5iZWdpbiBmcm9tIGEgdXNlciBnZXN0dXJlIGhhbmRsZXIuIl9z
IH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRJbnN0YWxsbWVudENvbmZpZ3VyYXRpb24ubW0gYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRJbnN0YWxsbWVudENvbmZpZ3Vy
YXRpb24ubW0KaW5kZXggNjRkMWRiYjIxMmU3MDJjMDJiMmI4MmNkMWU2OGU4MGU3NzNmMDg3MC4u
OTljNzRkNjg5MTY0OTA3MjI1MGRlYzQ5Yjk2ZDAwY2NhNmM2ZTE3ZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50SW5zdGFsbG1lbnRDb25maWd1cmF0
aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvUGF5bWVudEluc3Rh
bGxtZW50Q29uZmlndXJhdGlvbi5tbQpAQCAtMjA3LDcgKzIwNyw3IEBAIEV4Y2VwdGlvbk9yPFBh
eW1lbnRJbnN0YWxsbWVudENvbmZpZ3VyYXRpb24+IFBheW1lbnRJbnN0YWxsbWVudENvbmZpZ3Vy
YXRpb246OmNyCiAgICAgICAgIE5TRGF0YSAqYXBwbGljYXRpb25NZXRhZGF0YSA9IFtjb25maWd1
cmF0aW9uLmFwcGxpY2F0aW9uTWV0YWRhdGEgZGF0YVVzaW5nRW5jb2Rpbmc6TlNVVEY4U3RyaW5n
RW5jb2RpbmddOwogICAgICAgICBhcHBsaWNhdGlvbk1ldGFkYXRhRGljdGlvbmFyeSA9IGR5bmFt
aWNfb2JqY19jYXN0PE5TRGljdGlvbmFyeT4oW05TSlNPTlNlcmlhbGl6YXRpb24gSlNPTk9iamVj
dFdpdGhEYXRhOmFwcGxpY2F0aW9uTWV0YWRhdGEgb3B0aW9uczowIGVycm9yOm5pbF0pOwogICAg
ICAgICBpZiAoIWFwcGxpY2F0aW9uTWV0YWRhdGFEaWN0aW9uYXJ5KQotICAgICAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgImFwcGxpY2F0aW9uTWV0YWRhdGEgbXVzdCBiZSBh
IEpTT04gb2JqZWN0IiB9OworICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJv
ciwgImFwcGxpY2F0aW9uTWV0YWRhdGEgbXVzdCBiZSBhIEpTT04gb2JqZWN0Il9zIH07CiAgICAg
fQogCiAgICAgcmV0dXJuIFBheW1lbnRJbnN0YWxsbWVudENvbmZpZ3VyYXRpb24oY29uZmlndXJh
dGlvbiwgYXBwbGljYXRpb25NZXRhZGF0YURpY3Rpb25hcnkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50UmVxdWVzdFZhbGlkYXRvci5tbSBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvUGF5bWVudFJlcXVlc3RWYWxpZGF0b3IubW0K
aW5kZXggZjEwYzU1ZDQ5NGExMWMzMGMwYTEwNWUxYmZiNjE0MzkwODY2OGM0MC4uYzUyZmQ5MmQw
OGQzZGM0ZTMzYWY3ZTBmZGJiZTNlMGM4ZThjZWNhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50UmVxdWVzdFZhbGlkYXRvci5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRSZXF1ZXN0VmFsaWRhdG9yLm1tCkBA
IC05NSwxOCArOTUsMTggQEAgRXhjZXB0aW9uT3I8dm9pZD4gUGF5bWVudFJlcXVlc3RWYWxpZGF0
b3I6OnZhbGlkYXRlKGNvbnN0IEFwcGxlUGF5U2Vzc2lvblBheW1lbnQKIEV4Y2VwdGlvbk9yPHZv
aWQ+IFBheW1lbnRSZXF1ZXN0VmFsaWRhdG9yOjp2YWxpZGF0ZVRvdGFsKGNvbnN0IEFwcGxlUGF5
TGluZUl0ZW0mIHRvdGFsKQogewogICAgIGlmICghdG90YWwubGFiZWwpCi0gICAgICAgIHJldHVy
biBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJNaXNzaW5nIHRvdGFsIGxhYmVsLiIgfTsKKyAgICAg
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIk1pc3NpbmcgdG90YWwgbGFiZWwuIl9z
IH07CiAKICAgICBpZiAoIXRvdGFsLmFtb3VudCkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7
IFR5cGVFcnJvciwgIk1pc3NpbmcgdG90YWwgYW1vdW50LiIgfTsKKyAgICAgICAgcmV0dXJuIEV4
Y2VwdGlvbiB7IFR5cGVFcnJvciwgIk1pc3NpbmcgdG90YWwgYW1vdW50LiJfcyB9OwogCiAgICAg
ZG91YmxlIGFtb3VudCA9IFtOU0RlY2ltYWxOdW1iZXIgZGVjaW1hbE51bWJlcldpdGhTdHJpbmc6
dG90YWwuYW1vdW50IGxvY2FsZTpAeyBOU0xvY2FsZURlY2ltYWxTZXBhcmF0b3IgOiBAIi4iIH1d
LmRvdWJsZVZhbHVlOwogCiAgICAgaWYgKGFtb3VudCA8IDApCi0gICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBUeXBlRXJyb3IsICJUb3RhbCBhbW91bnQgbXVzdCBub3QgYmUgbmVnYXRpdmUuIiB9
OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiVG90YWwgYW1vdW50IG11
c3Qgbm90IGJlIG5lZ2F0aXZlLiJfcyB9OwogCiAgICAgaWYgKGFtb3VudCA+IDEwMDAwMDAwMCkK
LSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIlRvdGFsIGFtb3VudCBpcyB0
b28gYmlnLiIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIlRvdGFs
IGFtb3VudCBpcyB0b28gYmlnLiJfcyB9OwogCiAgICAgcmV0dXJuIHsgfTsKIH0KQEAgLTExNCw3
ICsxMTQsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBQYXltZW50UmVxdWVzdFZhbGlkYXRvcjo6dmFs
aWRhdGVUb3RhbChjb25zdCBBcHBsZVBheUxpbmVJdGVtJgogc3RhdGljIEV4Y2VwdGlvbk9yPHZv
aWQ+IHZhbGlkYXRlQ291bnRyeUNvZGUoY29uc3QgU3RyaW5nJiBjb3VudHJ5Q29kZSkKIHsKICAg
ICBpZiAoIWNvdW50cnlDb2RlKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9y
LCAiTWlzc2luZyBjb3VudHJ5IGNvZGUuIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
VHlwZUVycm9yLCAiTWlzc2luZyBjb3VudHJ5IGNvZGUuIl9zIH07CiAKICAgICBmb3IgKGF1dG8g
KmNvdW50cnlDb2RlUHRyID0gdWxvY19nZXRJU09Db3VudHJpZXMoKTsgKmNvdW50cnlDb2RlUHRy
OyArK2NvdW50cnlDb2RlUHRyKSB7CiAgICAgICAgIGlmIChjb3VudHJ5Q29kZSA9PSAqY291bnRy
eUNvZGVQdHIpCkBAIC0xMjcsNyArMTI3LDcgQEAgc3RhdGljIEV4Y2VwdGlvbk9yPHZvaWQ+IHZh
bGlkYXRlQ291bnRyeUNvZGUoY29uc3QgU3RyaW5nJiBjb3VudHJ5Q29kZSkKIHN0YXRpYyBFeGNl
cHRpb25Pcjx2b2lkPiB2YWxpZGF0ZUN1cnJlbmN5Q29kZShjb25zdCBTdHJpbmcmIGN1cnJlbmN5
Q29kZSkKIHsKICAgICBpZiAoIWN1cnJlbmN5Q29kZSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlv
biB7IFR5cGVFcnJvciwgIk1pc3NpbmcgY3VycmVuY3kgY29kZS4iIH07CisgICAgICAgIHJldHVy
biBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJNaXNzaW5nIGN1cnJlbmN5IGNvZGUuIl9zIH07CiAK
ICAgICBVRXJyb3JDb2RlIGVycm9yQ29kZSA9IFVfWkVST19FUlJPUjsKICAgICBhdXRvIGN1cnJl
bmN5Q29kZXMgPSBzdGQ6OnVuaXF1ZV9wdHI8VUVudW1lcmF0aW9uLCBJQ1VEZWxldGVyPHVlbnVt
X2Nsb3NlPj4odWN1cnJfb3BlbklTT0N1cnJlbmNpZXMoVUNVUlJfQUxMLCAmZXJyb3JDb2RlKSk7
CkBAIC0xNDQsNyArMTQ0LDcgQEAgc3RhdGljIEV4Y2VwdGlvbk9yPHZvaWQ+IHZhbGlkYXRlQ3Vy
cmVuY3lDb2RlKGNvbnN0IFN0cmluZyYgY3VycmVuY3lDb2RlKQogc3RhdGljIEV4Y2VwdGlvbk9y
PHZvaWQ+IHZhbGlkYXRlTWVyY2hhbnRDYXBhYmlsaXRpZXMoY29uc3QgQXBwbGVQYXlTZXNzaW9u
UGF5bWVudFJlcXVlc3Q6Ok1lcmNoYW50Q2FwYWJpbGl0aWVzJiBtZXJjaGFudENhcGFiaWxpdGll
cykKIHsKICAgICBpZiAoIW1lcmNoYW50Q2FwYWJpbGl0aWVzLnN1cHBvcnRzM0RTICYmICFtZXJj
aGFudENhcGFiaWxpdGllcy5zdXBwb3J0c0VNViAmJiAhbWVyY2hhbnRDYXBhYmlsaXRpZXMuc3Vw
cG9ydHNDcmVkaXQgJiYgIW1lcmNoYW50Q2FwYWJpbGl0aWVzLnN1cHBvcnRzRGViaXQpCi0gICAg
ICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJNaXNzaW5nIG1lcmNoYW50IGNhcGFi
aWxpdGllcy4iIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJNaXNz
aW5nIG1lcmNoYW50IGNhcGFiaWxpdGllcy4iX3MgfTsKIAogICAgIHJldHVybiB7IH07CiB9CkBA
IC0xNTIsNyArMTUyLDcgQEAgc3RhdGljIEV4Y2VwdGlvbk9yPHZvaWQ+IHZhbGlkYXRlTWVyY2hh
bnRDYXBhYmlsaXRpZXMoY29uc3QgQXBwbGVQYXlTZXNzaW9uUGF5bWUKIHN0YXRpYyBFeGNlcHRp
b25Pcjx2b2lkPiB2YWxpZGF0ZVN1cHBvcnRlZE5ldHdvcmtzKGNvbnN0IFZlY3RvcjxTdHJpbmc+
JiBzdXBwb3J0ZWROZXR3b3JrcykKIHsKICAgICBpZiAoc3VwcG9ydGVkTmV0d29ya3MuaXNFbXB0
eSgpKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiTWlzc2luZyBzdXBw
b3J0ZWQgbmV0d29ya3MuIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9y
LCAiTWlzc2luZyBzdXBwb3J0ZWQgbmV0d29ya3MuIl9zIH07CiAKICAgICByZXR1cm4geyB9Owog
fQpAQCAtMTYxLDcgKzE2MSw3IEBAIHN0YXRpYyBFeGNlcHRpb25Pcjx2b2lkPiB2YWxpZGF0ZVNo
aXBwaW5nTWV0aG9kKGNvbnN0IEFwcGxlUGF5U2hpcHBpbmdNZXRob2QmIHNoCiB7CiAgICAgTlNE
ZWNpbWFsTnVtYmVyICphbW91bnQgPSBbTlNEZWNpbWFsTnVtYmVyIGRlY2ltYWxOdW1iZXJXaXRo
U3RyaW5nOnNoaXBwaW5nTWV0aG9kLmFtb3VudCBsb2NhbGU6QHsgTlNMb2NhbGVEZWNpbWFsU2Vw
YXJhdG9yIDogQCIuIiB9XTsKICAgICBpZiAoYW1vdW50LmludGVnZXJWYWx1ZSA8IDApCi0gICAg
ICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJTaGlwcGluZyBtZXRob2QgYW1vdW50
IG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHplcm8uIiB9OworICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiU2hpcHBpbmcgbWV0aG9kIGFtb3VudCBtdXN0IGJl
IGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB6ZXJvLiJfcyB9OwogCiAgICAgcmV0dXJuIHsgfTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvUGF5bWVudFNl
c3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50U2Vzc2lv
bi5jcHAKaW5kZXggOTRmOTQ1OWI5YjQ0OGE5ODQyZWIwZjQwMjNjNjQyYTA2OGU4M2M3MS4uMmU4
ZjY2ZWE4M2MxZDQ3MmRhMTg3YzA4MzZiNTgxNzZjYmFkOTFhMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50U2Vzc2lvbi5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50U2Vzc2lvbi5jcHAKQEAgLTUyLDI0ICs1
MiwyNCBAQCBFeGNlcHRpb25Pcjx2b2lkPiBQYXltZW50U2Vzc2lvbjo6Y2FuQ3JlYXRlU2Vzc2lv
bihEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBTZWN1cml0
eUVycm9yLCAiVGhpcmQtcGFydHkgaWZyYW1lcyBhcmUgbm90IGFsbG93ZWQgdG8gcmVxdWVzdCBw
YXltZW50cyB1bmxlc3MgZXhwbGljaXRseSBhbGxvd2VkIHZpYSBGZWF0dXJlLVBvbGljeSAocGF5
bWVudCkiX3MgfTsKIAogICAgIGlmICghZG9jdW1lbnQuZnJhbWUoKSkKLSAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwgIlRyeWluZyB0byBzdGFydCBhbiBBcHBs
ZSBQYXkgc2Vzc2lvbiBmcm9tIGFuIGluYWN0aXZlIGRvY3VtZW50LiIgfTsKKyAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwgIlRyeWluZyB0byBzdGFydCBhbiBB
cHBsZSBQYXkgc2Vzc2lvbiBmcm9tIGFuIGluYWN0aXZlIGRvY3VtZW50LiJfcyB9OwogCiAgICAg
aWYgKCFpc1NlY3VyZSgqZG9jdW1lbnQubG9hZGVyKCkpKQotICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiVHJ5aW5nIHRvIHN0YXJ0IGFuIEFwcGxlIFBheSBz
ZXNzaW9uIGZyb20gYW4gaW5zZWN1cmUgZG9jdW1lbnQuIiB9OworICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiVHJ5aW5nIHRvIHN0YXJ0IGFuIEFwcGxlIFBh
eSBzZXNzaW9uIGZyb20gYW4gaW5zZWN1cmUgZG9jdW1lbnQuIl9zIH07CiAKICAgICBhdXRvJiB0
b3BEb2N1bWVudCA9IGRvY3VtZW50LnRvcERvY3VtZW50KCk7CiAgICAgaWYgKCZkb2N1bWVudCAh
PSAmdG9wRG9jdW1lbnQpIHsKICAgICAgICAgYXV0byYgdG9wT3JpZ2luID0gdG9wRG9jdW1lbnQu
dG9wT3JpZ2luKCk7CiAKICAgICAgICAgaWYgKCFkb2N1bWVudC5zZWN1cml0eU9yaWdpbigpLmlz
U2FtZVNjaGVtZUhvc3RQb3J0KHRvcE9yaWdpbikpCi0gICAgICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiVHJ5aW5nIHRvIHN0YXJ0IGFuIEFwcGxlIFBheSBz
ZXNzaW9uIGZyb20gYSBkb2N1bWVudCB3aXRoIGFuIGRpZmZlcmVudCBzZWN1cml0eSBvcmlnaW4g
dGhhbiBpdHMgdG9wLWxldmVsIGZyYW1lLiIgfTsKKyAgICAgICAgICAgIHJldHVybiBFeGNlcHRp
b24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJUcnlpbmcgdG8gc3RhcnQgYW4gQXBwbGUgUGF5IHNl
c3Npb24gZnJvbSBhIGRvY3VtZW50IHdpdGggYW4gZGlmZmVyZW50IHNlY3VyaXR5IG9yaWdpbiB0
aGFuIGl0cyB0b3AtbGV2ZWwgZnJhbWUuIl9zIH07CiAKICAgICAgICAgZm9yIChhdXRvKiBhbmNl
c3RvckRvY3VtZW50ID0gZG9jdW1lbnQucGFyZW50RG9jdW1lbnQoKTsgYW5jZXN0b3JEb2N1bWVu
dCAhPSAmdG9wRG9jdW1lbnQ7IGFuY2VzdG9yRG9jdW1lbnQgPSBhbmNlc3RvckRvY3VtZW50LT5w
YXJlbnREb2N1bWVudCgpKSB7CiAgICAgICAgICAgICBpZiAoIWlzU2VjdXJlKCphbmNlc3RvckRv
Y3VtZW50LT5sb2FkZXIoKSkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElu
dmFsaWRBY2Nlc3NFcnJvciwgIlRyeWluZyB0byBzdGFydCBhbiBBcHBsZSBQYXkgc2Vzc2lvbiBm
cm9tIGEgZG9jdW1lbnQgd2l0aCBhbiBpbnNlY3VyZSBwYXJlbnQgZnJhbWUuIiB9OworICAgICAg
ICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJUcnlpbmcg
dG8gc3RhcnQgYW4gQXBwbGUgUGF5IHNlc3Npb24gZnJvbSBhIGRvY3VtZW50IHdpdGggYW4gaW5z
ZWN1cmUgcGFyZW50IGZyYW1lLiJfcyB9OwogCiAgICAgICAgICAgICBpZiAoIWFuY2VzdG9yRG9j
dW1lbnQtPnNlY3VyaXR5T3JpZ2luKCkuaXNTYW1lU2NoZW1lSG9zdFBvcnQodG9wT3JpZ2luKSkK
LSAgICAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAi
VHJ5aW5nIHRvIHN0YXJ0IGFuIEFwcGxlIFBheSBzZXNzaW9uIGZyb20gYSBkb2N1bWVudCB3aXRo
IGFuIGRpZmZlcmVudCBzZWN1cml0eSBvcmlnaW4gdGhhbiBpdHMgdG9wLWxldmVsIGZyYW1lLiIg
fTsKKyAgICAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9y
LCAiVHJ5aW5nIHRvIHN0YXJ0IGFuIEFwcGxlIFBheSBzZXNzaW9uIGZyb20gYSBkb2N1bWVudCB3
aXRoIGFuIGRpZmZlcmVudCBzZWN1cml0eSBvcmlnaW4gdGhhbiBpdHMgdG9wLWxldmVsIGZyYW1l
LiJfcyB9OwogICAgICAgICB9CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2FwcGxlcGF5L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVudEhhbmRsZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9wYXltZW50cmVxdWVzdC9BcHBsZVBh
eVBheW1lbnRIYW5kbGVyLmNwcAppbmRleCA3MDU1MWFlODY0NDg5YzllNjc3Y2Q5MjE1M2Y1ZDFl
MjI3YTQwMjU0Li5lYjU2YjkxZTVmZWRhYzY2YTc5ZDA0NmEzYmZlYzhkYjI5Mjc1ZDdlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L3BheW1lbnRyZXF1ZXN0L0Fw
cGxlUGF5UGF5bWVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBw
bGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQYXltZW50SGFuZGxlci5jcHAKQEAgLTg5LDcg
Kzg5LDcgQEAgc3RhdGljIGlubGluZSBQYXltZW50Q29vcmRpbmF0b3ImIHBheW1lbnRDb29yZGlu
YXRvcihEb2N1bWVudCYgZG9jdW1lbnQpCiBzdGF0aWMgRXhjZXB0aW9uT3I8QXBwbGVQYXlSZXF1
ZXN0PiBjb252ZXJ0QW5kVmFsaWRhdGVBcHBsZVBheVJlcXVlc3QoRG9jdW1lbnQmIGRvY3VtZW50
LCBKU0M6OkpTVmFsdWUgZGF0YSkKIHsKICAgICBpZiAoZGF0YS5pc0VtcHR5KCkpCi0gICAgICAg
IHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJNaXNzaW5nIHBheW1lbnQgbWV0aG9kIGRh
dGEuIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiTWlzc2luZyBw
YXltZW50IG1ldGhvZCBkYXRhLiJfcyB9OwogCiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRShkb2N1bWVudC52bSgpKTsKICAgICBhdXRvIGFwcGxlUGF5UmVxdWVzdCA9
IGNvbnZlcnREaWN0aW9uYXJ5PEFwcGxlUGF5UmVxdWVzdD4oKmRvY3VtZW50Lmdsb2JhbE9iamVj
dCgpLCBkYXRhKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGljYXRp
b25tYW5pZmVzdC9BcHBsaWNhdGlvbk1hbmlmZXN0UGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvYXBwbGljYXRpb25tYW5pZmVzdC9BcHBsaWNhdGlvbk1hbmlmZXN0UGFyc2VyLmNw
cAppbmRleCA2ZGZmZjQ3YjdlMmNiODliNTRmOTVlYzQ2MjdkM2Q3Y2U2OTBmOTBiLi5jNWQxMzAz
OGNmYzY3ZjQ1YTQ2ZTY4YzljYzQ1MjEwNzNkNzZhNTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2FwcGxpY2F0aW9ubWFuaWZlc3QvQXBwbGljYXRpb25NYW5pZmVzdFBhcnNl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsaWNhdGlvbm1hbmlmZXN0L0Fw
cGxpY2F0aW9uTWFuaWZlc3RQYXJzZXIuY3BwCkBAIC0yMzEsNyArMjMxLDcgQEAgVmVjdG9yPEFw
cGxpY2F0aW9uTWFuaWZlc3Q6Okljb24+IEFwcGxpY2F0aW9uTWFuaWZlc3RQYXJzZXI6OnBhcnNl
SWNvbnMoY29uc3QgSlMKICAgICAgICAgICAgICAgICBjdXJyZW50SWNvbi5wdXJwb3NlcyA9IHB1
cnBvc2VzOwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICBwdXJwb3NlU3Ry
aW5nVmFsdWUgPSBwdXJwb3NlU3RyaW5nVmFsdWUuc3RyaXBXaGl0ZVNwYWNlKCkuY29udmVydFRv
QVNDSUlMb3dlcmNhc2UoKTsKLSAgICAgICAgICAgICAgICBWZWN0b3I8U3RyaW5nPiBrZXl3b3Jk
cyA9IHB1cnBvc2VTdHJpbmdWYWx1ZS5zcGxpdEFsbG93aW5nRW1wdHlFbnRyaWVzKCIgIik7Cisg
ICAgICAgICAgICAgICAgVmVjdG9yPFN0cmluZz4ga2V5d29yZHMgPSBwdXJwb3NlU3RyaW5nVmFs
dWUuc3BsaXRBbGxvd2luZ0VtcHR5RW50cmllcygiICJfcyk7CiAKICAgICAgICAgICAgICAgICBm
b3IgKGNvbnN0IGF1dG8mIGtleXdvcmQgOiBrZXl3b3JkcykgewogICAgICAgICAgICAgICAgICAg
ICBpZiAoa2V5d29yZCA9PSAibW9ub2Nocm9tZSIpCkBAIC0yODIsOSArMjgyLDkgQEAgc3RhdGlj
IGJvb2wgaXNJblNjb3BlKGNvbnN0IFVSTCYgc2NvcGVVUkwsIGNvbnN0IFVSTCYgdGFyZ2V0VVJM
KQogCiBVUkwgQXBwbGljYXRpb25NYW5pZmVzdFBhcnNlcjo6cGFyc2VTY29wZShjb25zdCBKU09O
OjpPYmplY3QmIG1hbmlmZXN0LCBjb25zdCBVUkwmIGRvY3VtZW50VVJMLCBjb25zdCBVUkwmIHN0
YXJ0VVJMKQogewotICAgIFVSTCBkZWZhdWx0U2NvcGUgeyBzdGFydFVSTCwgIi4vIiB9OworICAg
IFVSTCBkZWZhdWx0U2NvcGUgeyBzdGFydFVSTCwgIi4vIl9zIH07CiAKLSAgICBhdXRvIHZhbHVl
ID0gbWFuaWZlc3QuZ2V0VmFsdWUoInNjb3BlIik7CisgICAgYXV0byB2YWx1ZSA9IG1hbmlmZXN0
LmdldFZhbHVlKCJzY29wZSJfcyk7CiAgICAgaWYgKCF2YWx1ZSkKICAgICAgICAgcmV0dXJuIGRl
ZmF1bHRTY29wZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9X
aW5kb3dPcldvcmtlckdsb2JhbFNjb3BlQ2FjaGVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvY2FjaGUvV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZUNhY2hlcy5jcHAKaW5kZXggYTE3NDk1
ZDc2NTk2NTZmZTJkZDljY2EzZDM3MTEyMjFmZTQ4ZDEwNC4uZGZlMTg4ZmMwZWZmZGFjMmJlZjBl
OWFjZGU5NmMzZWY2MmI4NmE2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9j
YWNoZS9XaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlQ2FjaGVzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2NhY2hlL1dpbmRvd09yV29ya2VyR2xvYmFsU2NvcGVDYWNoZXMuY3BwCkBA
IC0xMjcsNyArMTI3LDcgQEAgRE9NQ2FjaGVTdG9yYWdlKiBXb3JrZXJHbG9iYWxTY29wZUNhY2hl
czo6Y2FjaGVzKCkgY29uc3QKIEV4Y2VwdGlvbk9yPERPTUNhY2hlU3RvcmFnZSo+IFdpbmRvd09y
V29ya2VyR2xvYmFsU2NvcGVDYWNoZXM6OmNhY2hlcyhTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBj
b250ZXh0LCBET01XaW5kb3cmIHdpbmRvdykKIHsKICAgICBpZiAoZG93bmNhc3Q8RG9jdW1lbnQ+
KGNvbnRleHQpLmlzU2FuZGJveGVkKFNhbmRib3hPcmlnaW4pKQotICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgU2VjdXJpdHlFcnJvciwgIkNhY2hlIHN0b3JhZ2UgaXMgZGlzYWJsZWQgYmVjYXVz
ZSB0aGUgY29udGV4dCBpcyBzYW5kYm94ZWQgYW5kIGxhY2tzIHRoZSAnYWxsb3ctc2FtZS1vcmln
aW4nIGZsYWciIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBTZWN1cml0eUVycm9yLCAi
Q2FjaGUgc3RvcmFnZSBpcyBkaXNhYmxlZCBiZWNhdXNlIHRoZSBjb250ZXh0IGlzIHNhbmRib3hl
ZCBhbmQgbGFja3MgdGhlICdhbGxvdy1zYW1lLW9yaWdpbicgZmxhZyJfcyB9OwogCiAgICAgaWYg
KCF3aW5kb3cuaXNDdXJyZW50bHlEaXNwbGF5ZWRJbkZyYW1lKCkpCiAgICAgICAgIHJldHVybiBu
dWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRp
YS9Jbml0RGF0YVJlZ2lzdHJ5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVk
bWVkaWEvSW5pdERhdGFSZWdpc3RyeS5jcHAKaW5kZXggNmY4ODhlMTc4NThkZGE2ZDk0NzFlYzFm
NmVmNWQwNjZkZjBlNDk5MC4uOGNkYmNhNzdhZjM4MzA3YjJiNGMwYTRkMjVhMWYwZTkxMWFiYjFk
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9Jbml0
RGF0YVJlZ2lzdHJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1l
ZGlhL0luaXREYXRhUmVnaXN0cnkuY3BwCkBAIC0xMDUsNyArMTA1LDcgQEAgc3RhdGljIFJlZlB0
cjxGcmFnbWVudGVkU2hhcmVkQnVmZmVyPiBzYW5pdGl6ZUtleWlkcyhjb25zdCBGcmFnbWVudGVk
U2hhcmVkQnVmZmUKICAgICBhdXRvIGtpZHNBcnJheSA9IEpTT046OkFycmF5OjpjcmVhdGUoKTsK
ICAgICBmb3IgKGF1dG8mIGJ1ZmZlciA6IGtleUlEQnVmZmVyLnZhbHVlKCkpCiAgICAgICAgIGtp
ZHNBcnJheS0+cHVzaFN0cmluZyhiYXNlNjRVUkxFbmNvZGVUb1N0cmluZyhidWZmZXItPm1ha2VD
b250aWd1b3VzKCktPmRhdGEoKSwgYnVmZmVyLT5zaXplKCkpKTsKLSAgICBvYmplY3QtPnNldEFy
cmF5KCJraWRzIiwgV1RGTW92ZShraWRzQXJyYXkpKTsKKyAgICBvYmplY3QtPnNldEFycmF5KCJr
aWRzIl9zLCBXVEZNb3ZlKGtpZHNBcnJheSkpOwogCiAgICAgQ1N0cmluZyBqc29uRGF0YSA9IG9i
amVjdC0+dG9KU09OU3RyaW5nKCkudXRmOCgpOwogICAgIHJldHVybiBTaGFyZWRCdWZmZXI6OmNy
ZWF0ZShqc29uRGF0YS5kYXRhKCksIGpzb25EYXRhLmxlbmd0aCgpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZW50cmllc2FwaS9ET01GaWxlU3lzdGVtLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZW50cmllc2FwaS9ET01GaWxlU3lzdGVtLmNwcAppbmRleCA5ZjQ4
MWRjNjI5YWE3N2E2MGRhNWM1ZWUwNDRhNzM2YmQ0NmQzZDIwLi45YWNhNjE4YjVkNmM3MmUyNDI0
NTk0YjlhMTlkZTFhNGUwNGY5YzhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2VudHJpZXNhcGkvRE9NRmlsZVN5c3RlbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9lbnRyaWVzYXBpL0RPTUZpbGVTeXN0ZW0uY3BwCkBAIC01OSw3ICs1OSw3IEBAIHN0YXRpYyBF
eGNlcHRpb25PcjxWZWN0b3I8TGlzdGVkQ2hpbGQ+PiBsaXN0RGlyZWN0b3J5V2l0aE1ldGFkYXRh
KGNvbnN0IFN0cmluZyYKIHsKICAgICBBU1NFUlQoIWlzTWFpblRocmVhZCgpKTsKICAgICBpZiAo
RmlsZVN5c3RlbTo6ZmlsZVR5cGUoZnVsbFBhdGgpICE9IEZpbGVTeXN0ZW06OkZpbGVUeXBlOjpE
aXJlY3RvcnkpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RGb3VuZEVycm9yLCAiUGF0
aCBubyBsb25nZXIgZXhpc3RzIG9yIGlzIG5vIGxvbmdlciBhIGRpcmVjdG9yeSIgfTsKKyAgICAg
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdEZvdW5kRXJyb3IsICJQYXRoIG5vIGxvbmdlciBleGlz
dHMgb3IgaXMgbm8gbG9uZ2VyIGEgZGlyZWN0b3J5Il9zIH07CiAKICAgICBhdXRvIGNoaWxkTmFt
ZXMgPSBGaWxlU3lzdGVtOjpsaXN0RGlyZWN0b3J5KGZ1bGxQYXRoKTsKICAgICBWZWN0b3I8TGlz
dGVkQ2hpbGQ+IGxpc3RlZENoaWxkcmVuOwpAQCAtMTgzLDcgKzE4Myw3IEBAIHN0YXRpYyBFeGNl
cHRpb25PcjxTdHJpbmc+IHZhbGlkYXRlUGF0aElzRXhwZWN0ZWRUeXBlKGNvbnN0IFN0cmluZyYg
ZnVsbFBhdGgsIFN0CiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RGb3VuZEVycm9yLCAi
UGF0aCBkb2VzIG5vdCBleGlzdCJfcyB9OwogCiAgICAgaWYgKCpmaWxlVHlwZSAhPSBleHBlY3Rl
ZFR5cGUpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlTWlzbWF0Y2hFcnJvciwgIkVu
dHJ5IGF0IHBhdGggZG9lcyBub3QgaGF2ZSBleHBlY3RlZCB0eXBlIiB9OworICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgVHlwZU1pc21hdGNoRXJyb3IsICJFbnRyeSBhdCBwYXRoIGRvZXMgbm90
IGhhdmUgZXhwZWN0ZWQgdHlwZSJfcyB9OwogCiAgICAgcmV0dXJuIFdURk1vdmUodmlydHVhbFBh
dGgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJv
ZHlDb25zdW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keUNv
bnN1bWVyLmNwcAppbmRleCA5MzZhN2U0MzA1NmM0NTVlMjliMjU1MGZiNDAxMGJlZWVjM2IzNWVi
Li42ZjZkYzY3Y2MzNGI4ZDQwN2FiZjZkZTQ2NGM1MjljNzQyMzZkNWYyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keUNvbnN1bWVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keUNvbnN1bWVyLmNwcApAQCAtMTUw
LDEwICsxNTAsMTAgQEAgUmVmUHRyPERPTUZvcm1EYXRhPiBGZXRjaEJvZHlDb25zdW1lcjo6cGFj
a2FnZUZvcm1EYXRhKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGMKICAgICAgICAgICAgIGNvbnRl
bnREaXNwb3NpdGlvblBhcmFtZXRlcnNCZWdpbisrOwogCiAgICAgICAgIGF1dG8gcGFyYW1ldGVy
cyA9IHBhcnNlUGFyYW1ldGVycyhTdHJpbmdWaWV3KGhlYWRlcikuc3Vic3RyaW5nKGNvbnRlbnRE
aXNwb3NpdGlvblBhcmFtZXRlcnNCZWdpbiwgY29udGVudERpc3Bvc2l0aW9uRW5kIC0gY29udGVu
dERpc3Bvc2l0aW9uUGFyYW1ldGVyc0JlZ2luKSwgMCk7Ci0gICAgICAgIFN0cmluZyBuYW1lID0g
cGFyYW1ldGVycy5nZXQoIm5hbWUiKTsKKyAgICAgICAgU3RyaW5nIG5hbWUgPSBwYXJhbWV0ZXJz
LmdldCgibmFtZSJfcyk7CiAgICAgICAgIGlmICghbmFtZSkKICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICAgICAgU3RyaW5nIGZpbGVuYW1lID0gcGFyYW1ldGVycy5nZXQoImZpbGVuYW1l
Iik7CisgICAgICAgIFN0cmluZyBmaWxlbmFtZSA9IHBhcmFtZXRlcnMuZ2V0KCJmaWxlbmFtZSJf
cyk7CiAgICAgICAgIGlmICghZmlsZW5hbWUpCiAgICAgICAgICAgICBmb3JtLmFwcGVuZChuYW1l
LCBTdHJpbmc6OmZyb21VVEY4KGJvZHlCZWdpbiwgYm9keUxlbmd0aCkpOwogICAgICAgICBlbHNl
IHsKQEAgLTE3Niw3ICsxNzYsNyBAQCBSZWZQdHI8RE9NRm9ybURhdGE+IEZldGNoQm9keUNvbnN1
bWVyOjpwYWNrYWdlRm9ybURhdGEoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogYwogICAgICAgICBp
ZiAoIW1pbWVUeXBlKQogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAgICAg
aWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobWltZVR5cGUtPnR5cGUsICJtdWx0aXBhcnQiKSAm
JiBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG1pbWVUeXBlLT5zdWJ0eXBlLCAiZm9ybS1kYXRhIikp
IHsKLSAgICAgICAgICAgIGF1dG8gaXRlcmF0b3IgPSBtaW1lVHlwZS0+cGFyYW1ldGVycy5maW5k
KCJib3VuZGFyeSIpOworICAgICAgICAgICAgYXV0byBpdGVyYXRvciA9IG1pbWVUeXBlLT5wYXJh
bWV0ZXJzLmZpbmQoImJvdW5kYXJ5Il9zKTsKICAgICAgICAgICAgIGlmIChpdGVyYXRvciAhPSBt
aW1lVHlwZS0+cGFyYW1ldGVycy5lbmQoKSkKICAgICAgICAgICAgICAgICByZXR1cm4gaXRlcmF0
b3ItPnZhbHVlOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2ZldGNoL0ZldGNoSGVhZGVycy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0Zl
dGNoSGVhZGVycy5jcHAKaW5kZXggMDkwZjVjZjRkMGZmMTE1ZDg0YmY3MzNiN2E3YjE1YjM0ZjJl
M2E1Zi4uMjZhZjA4ZjFhZDVlMTRjYmQxYWVkNzRlZmRlYTNmMWFkMzhiZTYxNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEhlYWRlcnMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hIZWFkZXJzLmNwcApAQCAtMTAyLDcgKzEw
Miw3IEBAIHN0YXRpYyBFeGNlcHRpb25Pcjx2b2lkPiBmaWxsSGVhZGVyTWFwKEhUVFBIZWFkZXJN
YXAmIGhlYWRlcnMsIGNvbnN0IEZldGNoSGVhZGVyCiAgICAgICAgIGF1dG8mIHNlcXVlbmNlID0g
c3RkOjpnZXQ8VmVjdG9yPFZlY3RvcjxTdHJpbmc+Pj4oaGVhZGVyc0luaXQpOwogICAgICAgICBm
b3IgKGF1dG8mIGhlYWRlciA6IHNlcXVlbmNlKSB7CiAgICAgICAgICAgICBpZiAoaGVhZGVyLnNp
emUoKSAhPSAyKQotICAgICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3Is
ICJIZWFkZXIgc3ViLXNlcXVlbmNlIG11c3QgY29udGFpbiBleGFjdGx5IHR3byBpdGVtcyIgfTsK
KyAgICAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiSGVhZGVyIHN1
Yi1zZXF1ZW5jZSBtdXN0IGNvbnRhaW4gZXhhY3RseSB0d28gaXRlbXMiX3MgfTsKICAgICAgICAg
ICAgIGF1dG8gcmVzdWx0ID0gYXBwZW5kVG9IZWFkZXJNYXAoaGVhZGVyWzBdLCBoZWFkZXJbMV0s
IGhlYWRlcnMsIGd1YXJkKTsKICAgICAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkp
CiAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoTG9hZGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hMb2FkZXIuY3BwCmluZGV4IDdjZWEzMmE5
NThmMTRiZDhjODc4YmM1MWY0OWMxZDFhZGE2ZDZhMzcuLmY3NDMzOGU4ZDMyMjI3MGEzODBmMjQ5
YTY0MmU0ZWEwZjkyMjg2ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0
Y2gvRmV0Y2hMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0
Y2hMb2FkZXIuY3BwCkBAIC02OSw3ICs2OSw3IEBAIHZvaWQgRmV0Y2hMb2FkZXI6OnN0YXJ0TG9h
ZGluZ0Jsb2JVUkwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3QgVVJMCiAK
ICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChtX3VybEZvclJlYWRpbmcpOwogICAgIHJlcXVl
c3Quc2V0SW5pdGlhdG9ySWRlbnRpZmllcihjb250ZXh0LnJlc291cmNlUmVxdWVzdElkZW50aWZp
ZXIoKSk7Ci0gICAgcmVxdWVzdC5zZXRIVFRQTWV0aG9kKCJHRVQiKTsKKyAgICByZXF1ZXN0LnNl
dEhUVFBNZXRob2QoIkdFVCJfcyk7CiAKICAgICBUaHJlYWRhYmxlTG9hZGVyT3B0aW9ucyBvcHRp
b25zOwogICAgIG9wdGlvbnMuc2VuZExvYWRDYWxsYmFja3MgPSBTZW5kQ2FsbGJhY2tQb2xpY3k6
OlNlbmRDYWxsYmFja3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVz
eXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcAppbmRleCAwZTk1
ZmZkZWU0YWY4NTRlODdlMjUzYTljZGU4NjM0MmY1YTJlZGY4Li5hYTMyYTliYjIyZmI0YmJmOTNi
YWRkNjFkMTI4OGJiZjkwOGQzZDVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAK
QEAgLTU1LDcgKzU1LDcgQEAgRmlsZVN5c3RlbUZpbGVIYW5kbGU6OkZpbGVTeXN0ZW1GaWxlSGFu
ZGxlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFN0cmkKIHZvaWQgRmlsZVN5c3Rl
bUZpbGVIYW5kbGU6OmdldEZpbGUoRE9NUHJvbWlzZURlZmVycmVkPElETEludGVyZmFjZTxGaWxl
Pj4mJiBwcm9taXNlKQogewogICAgIGlmIChpc0Nsb3NlZCgpKQotICAgICAgICByZXR1cm4gcHJv
bWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJIYW5kbGUgaXMgY2xv
c2VkIiB9KTsKKyAgICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IEludmFs
aWRTdGF0ZUVycm9yLCAiSGFuZGxlIGlzIGNsb3NlZCJfcyB9KTsKIAogICAgIGNvbm5lY3Rpb24o
KS5nZXRGaWxlKGlkZW50aWZpZXIoKSwgW3Byb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9LCBw
cm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgewogICAgICAg
ICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQpAQCAtNzIsNyArNzIsNyBAQCB2b2lkIEZpbGVT
eXN0ZW1GaWxlSGFuZGxlOjpnZXRGaWxlKERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8
RmlsZT4+JiYgcHJvbQogdm9pZCBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Y3JlYXRlU3luY0FjY2Vz
c0hhbmRsZShET01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNlPEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlPj4mJiBwcm9taXNlKQogewogICAgIGlmIChpc0Nsb3NlZCgpKQotICAgICAgICBy
ZXR1cm4gcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJIYW5k
bGUgaXMgY2xvc2VkIiB9KTsKKyAgICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0KEV4Y2VwdGlv
biB7IEludmFsaWRTdGF0ZUVycm9yLCAiSGFuZGxlIGlzIGNsb3NlZCJfcyB9KTsKIAogICAgIGNv
bm5lY3Rpb24oKS5jcmVhdGVTeW5jQWNjZXNzSGFuZGxlKGlkZW50aWZpZXIoKSwgW3Byb3RlY3Rl
ZFRoaXMgPSBSZWYgeyAqdGhpcyB9LCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byBy
ZXN1bHQpIG11dGFibGUgewogICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0
ZW1IYW5kbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0Zp
bGVTeXN0ZW1IYW5kbGUuY3BwCmluZGV4IDBiOWY3ODhlNDkwM2ZhN2U3YWU0Mjg5N2EwMDJiOTZl
OGRmZTEzZDcuLjllMGNjODc0YjBjNzM0NDU3YzQ5YzRjMzg2ZGFjMmIzYmY0ZGU1OTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVt
SGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3Mv
RmlsZVN5c3RlbUhhbmRsZS5jcHAKQEAgLTYwLDcgKzYwLDcgQEAgdm9pZCBGaWxlU3lzdGVtSGFu
ZGxlOjpjbG9zZSgpCiB2b2lkIEZpbGVTeXN0ZW1IYW5kbGU6OmlzU2FtZUVudHJ5KEZpbGVTeXN0
ZW1IYW5kbGUmIGhhbmRsZSwgRE9NUHJvbWlzZURlZmVycmVkPElETEJvb2xlYW4+JiYgcHJvbWlz
ZSkgY29uc3QKIHsKICAgICBpZiAoaXNDbG9zZWQoKSkKLSAgICAgICAgcmV0dXJuIHByb21pc2Uu
cmVqZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiSGFuZGxlIGlzIGNsb3NlZCIg
fSk7CisgICAgICAgIHJldHVybiBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3Rh
dGVFcnJvciwgIkhhbmRsZSBpcyBjbG9zZWQiX3MgfSk7CiAKICAgICBpZiAobV9raW5kICE9IGhh
bmRsZS5raW5kKCkgfHwgbV9uYW1lICE9IGhhbmRsZS5uYW1lKCkpCiAgICAgICAgIHJldHVybiBw
cm9taXNlLnJlc29sdmUoZmFsc2UpOwpAQCAtNzMsNyArNzMsNyBAQCB2b2lkIEZpbGVTeXN0ZW1I
YW5kbGU6OmlzU2FtZUVudHJ5KEZpbGVTeXN0ZW1IYW5kbGUmIGhhbmRsZSwgRE9NUHJvbWlzZURl
ZmVycmVkPAogdm9pZCBGaWxlU3lzdGVtSGFuZGxlOjptb3ZlKEZpbGVTeXN0ZW1IYW5kbGUmIGRl
c3RpbmF0aW9uSGFuZGxlLCBjb25zdCBTdHJpbmcmIG5ld05hbWUsIERPTVByb21pc2VEZWZlcnJl
ZDx2b2lkPiYmIHByb21pc2UpCiB7CiAgICAgaWYgKGlzQ2xvc2VkKCkpCi0gICAgICAgIHJldHVy
biBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkhhbmRsZSBp
cyBjbG9zZWQiIH0pOworICAgICAgICByZXR1cm4gcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsg
SW52YWxpZFN0YXRlRXJyb3IsICJIYW5kbGUgaXMgY2xvc2VkIl9zIH0pOwogCiAgICAgaWYgKGRl
c3RpbmF0aW9uSGFuZGxlLmtpbmQoKSAhPSBLaW5kOjpEaXJlY3RvcnkpCiAgICAgICAgIHJldHVy
biBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBUeXBlTWlzbWF0Y2hFcnJvciB9KTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlSWRlbnRp
Zmllci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VJZGVu
dGlmaWVyLmgKaW5kZXggMjcxZGVkNGRlZThiODg4ZDMxZTRjNGMxMWUxZDFmYzg4OWRiYTZhYi4u
NDY1NzY4ZDhlNWU0ZmU0ZGZhYjE4OTNiNzljZTZhYzZkNzdlNTU2NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VJZGVudGlmaWVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VJZGVudGlmaWVy
LmgKQEAgLTcwLDcgKzcwLDcgQEAgcHVibGljOgogICAgIGNvbnN0IENsaWVudE9yaWdpbiYgb3Jp
Z2luKCkgY29uc3QgeyByZXR1cm4gbV9vcmlnaW47IH0KICAgICBib29sIGlzVHJhbnNpZW50KCkg
Y29uc3QgeyByZXR1cm4gbV9pc1RyYW5zaWVudDsgfQogCi0gICAgU3RyaW5nIGRhdGFiYXNlRGly
ZWN0b3J5UmVsYXRpdmVUb1Jvb3QoY29uc3QgU3RyaW5nJiByb290RGlyZWN0b3J5LCBjb25zdCBT
dHJpbmcmIHZlcnNpb25TdHJpbmc9InYxIikgY29uc3Q7CisgICAgU3RyaW5nIGRhdGFiYXNlRGly
ZWN0b3J5UmVsYXRpdmVUb1Jvb3QoY29uc3QgU3RyaW5nJiByb290RGlyZWN0b3J5LCBjb25zdCBT
dHJpbmcmIHZlcnNpb25TdHJpbmcgPSAidjEiX3MpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQT1JU
IHN0YXRpYyBTdHJpbmcgZGF0YWJhc2VEaXJlY3RvcnlSZWxhdGl2ZVRvUm9vdChjb25zdCBDbGll
bnRPcmlnaW4mLCBjb25zdCBTdHJpbmcmIHJvb3REaXJlY3RvcnksIGNvbnN0IFN0cmluZyYgdmVy
c2lvblN0cmluZyk7CiAKICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShF
bmNvZGVyJikgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9JREJLZXlEYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lE
QktleURhdGEuY3BwCmluZGV4IDJhMzdjNTI4ZWY1YmY5ZDk1NzczYTBiMTBmMDI1MjI5YmRlNWE0
MTguLjQ2MGYxNzRhMzgxYWI2YWJhNGNhMjk4MzE0NTI2OThiNWQ1MjkwZDAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleURhdGEuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleURhdGEuY3BwCkBAIC0xNDksMzUg
KzE0OSwzNSBAQCB2b2lkIElEQktleURhdGE6Omlzb2xhdGVkQ29weShjb25zdCBJREJLZXlEYXRh
JiBzb3VyY2UsIElEQktleURhdGEmIGRlc3RpbmF0aW9uKQogCiB2b2lkIElEQktleURhdGE6OmVu
Y29kZShLZXllZEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2Rlci5lbmNvZGVC
b29sKCJudWxsIiwgbV9pc051bGwpOworICAgIGVuY29kZXIuZW5jb2RlQm9vbCgibnVsbCJfcywg
bV9pc051bGwpOwogICAgIGlmIChtX2lzTnVsbCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgZW5j
b2Rlci5lbmNvZGVFbnVtKCJ0eXBlIiwgbV90eXBlKTsKKyAgICBlbmNvZGVyLmVuY29kZUVudW0o
InR5cGUiX3MsIG1fdHlwZSk7CiAKICAgICBzd2l0Y2ggKG1fdHlwZSkgewogICAgIGNhc2UgSW5k
ZXhlZERCOjpLZXlUeXBlOjpJbnZhbGlkOgogICAgICAgICByZXR1cm47CiAgICAgY2FzZSBJbmRl
eGVkREI6OktleVR5cGU6OkFycmF5OiB7CiAgICAgICAgIGF1dG8mIGFycmF5ID0gc3RkOjpnZXQ8
VmVjdG9yPElEQktleURhdGE+PihtX3ZhbHVlKTsKLSAgICAgICAgZW5jb2Rlci5lbmNvZGVPYmpl
Y3RzKCJhcnJheSIsIGFycmF5LmJlZ2luKCksIGFycmF5LmVuZCgpLCBbXShLZXllZEVuY29kZXIm
IGVuY29kZXIsIGNvbnN0IElEQktleURhdGEmIGtleSkgeworICAgICAgICBlbmNvZGVyLmVuY29k
ZU9iamVjdHMoImFycmF5Il9zLCBhcnJheS5iZWdpbigpLCBhcnJheS5lbmQoKSwgW10oS2V5ZWRF
bmNvZGVyJiBlbmNvZGVyLCBjb25zdCBJREJLZXlEYXRhJiBrZXkpIHsKICAgICAgICAgICAgIGtl
eS5lbmNvZGUoZW5jb2Rlcik7CiAgICAgICAgIH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQog
ICAgIGNhc2UgSW5kZXhlZERCOjpLZXlUeXBlOjpCaW5hcnk6IHsKICAgICAgICAgYXV0byogZGF0
YSA9IHN0ZDo6Z2V0PFRocmVhZFNhZmVEYXRhQnVmZmVyPihtX3ZhbHVlKS5kYXRhKCk7Ci0gICAg
ICAgIGVuY29kZXIuZW5jb2RlQm9vbCgiaGFzQmluYXJ5IiwgISFkYXRhKTsKKyAgICAgICAgZW5j
b2Rlci5lbmNvZGVCb29sKCJoYXNCaW5hcnkiX3MsICEhZGF0YSk7CiAgICAgICAgIGlmIChkYXRh
KQotICAgICAgICAgICAgZW5jb2Rlci5lbmNvZGVCeXRlcygiYmluYXJ5IiwgZGF0YS0+ZGF0YSgp
LCBkYXRhLT5zaXplKCkpOworICAgICAgICAgICAgZW5jb2Rlci5lbmNvZGVCeXRlcygiYmluYXJ5
Il9zLCBkYXRhLT5kYXRhKCksIGRhdGEtPnNpemUoKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAgICAgY2FzZSBJbmRleGVkREI6OktleVR5cGU6OlN0cmluZzoKLSAgICAgICAgZW5jb2Rlci5l
bmNvZGVTdHJpbmcoInN0cmluZyIsIHN0ZDo6Z2V0PFN0cmluZz4obV92YWx1ZSkpOworICAgICAg
ICBlbmNvZGVyLmVuY29kZVN0cmluZygic3RyaW5nIl9zLCBzdGQ6OmdldDxTdHJpbmc+KG1fdmFs
dWUpKTsKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgSW5kZXhlZERCOjpLZXlUeXBlOjpEYXRl
OgogICAgIGNhc2UgSW5kZXhlZERCOjpLZXlUeXBlOjpOdW1iZXI6Ci0gICAgICAgIGVuY29kZXIu
ZW5jb2RlRG91YmxlKCJudW1iZXIiLCBzdGQ6OmdldDxkb3VibGU+KG1fdmFsdWUpKTsKKyAgICAg
ICAgZW5jb2Rlci5lbmNvZGVEb3VibGUoIm51bWJlciJfcywgc3RkOjpnZXQ8ZG91YmxlPihtX3Zh
bHVlKSk7CiAgICAgICAgIHJldHVybjsKICAgICBjYXNlIEluZGV4ZWREQjo6S2V5VHlwZTo6TWF4
OgogICAgIGNhc2UgSW5kZXhlZERCOjpLZXlUeXBlOjpNaW46CkBAIC0xODksNyArMTg5LDcgQEAg
dm9pZCBJREJLZXlEYXRhOjplbmNvZGUoS2V5ZWRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogCiBi
b29sIElEQktleURhdGE6OmRlY29kZShLZXllZERlY29kZXImIGRlY29kZXIsIElEQktleURhdGEm
IHJlc3VsdCkKIHsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlQm9vbCgibnVsbCIsIHJlc3VsdC5t
X2lzTnVsbCkpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZUJvb2woIm51bGwiX3MsIHJlc3VsdC5t
X2lzTnVsbCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmIChyZXN1bHQubV9pc051
bGwpCkBAIC0yMDUsNyArMjA1LDcgQEAgYm9vbCBJREJLZXlEYXRhOjpkZWNvZGUoS2V5ZWREZWNv
ZGVyJiBkZWNvZGVyLCBJREJLZXlEYXRhJiByZXN1bHQpCiAgICAgICAgICAgICB8fCB2YWx1ZSA9
PSBJbmRleGVkREI6OktleVR5cGU6Ok51bWJlcgogICAgICAgICAgICAgfHwgdmFsdWUgPT0gSW5k
ZXhlZERCOjpLZXlUeXBlOjpNaW47CiAgICAgfTsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlRW51
bSgidHlwZSIsIHJlc3VsdC5tX3R5cGUsIGVudW1GdW5jdGlvbikpCisgICAgaWYgKCFkZWNvZGVy
LmRlY29kZUVudW0oInR5cGUiX3MsIHJlc3VsdC5tX3R5cGUsIGVudW1GdW5jdGlvbikpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmIChyZXN1bHQubV90eXBlID09IEluZGV4ZWREQjo6
S2V5VHlwZTo6SW52YWxpZCkKQEAgLTIxOSwyNiArMjE5LDI2IEBAIGJvb2wgSURCS2V5RGF0YTo6
ZGVjb2RlKEtleWVkRGVjb2RlciYgZGVjb2RlciwgSURCS2V5RGF0YSYgcmVzdWx0KQogCiAgICAg
aWYgKHJlc3VsdC5tX3R5cGUgPT0gSW5kZXhlZERCOjpLZXlUeXBlOjpTdHJpbmcpIHsKICAgICAg
ICAgcmVzdWx0Lm1fdmFsdWUgPSBTdHJpbmcoKTsKLSAgICAgICAgcmV0dXJuIGRlY29kZXIuZGVj
b2RlU3RyaW5nKCJzdHJpbmciLCBzdGQ6OmdldDxTdHJpbmc+KHJlc3VsdC5tX3ZhbHVlKSk7Cisg
ICAgICAgIHJldHVybiBkZWNvZGVyLmRlY29kZVN0cmluZygic3RyaW5nIl9zLCBzdGQ6OmdldDxT
dHJpbmc+KHJlc3VsdC5tX3ZhbHVlKSk7CiAgICAgfQogCiAgICAgaWYgKHJlc3VsdC5tX3R5cGUg
PT0gSW5kZXhlZERCOjpLZXlUeXBlOjpOdW1iZXIgfHwgcmVzdWx0Lm1fdHlwZSA9PSBJbmRleGVk
REI6OktleVR5cGU6OkRhdGUpIHsKICAgICAgICAgcmVzdWx0Lm1fdmFsdWUgPSAwLjA7Ci0gICAg
ICAgIHJldHVybiBkZWNvZGVyLmRlY29kZURvdWJsZSgibnVtYmVyIiwgc3RkOjpnZXQ8ZG91Ymxl
PihyZXN1bHQubV92YWx1ZSkpOworICAgICAgICByZXR1cm4gZGVjb2Rlci5kZWNvZGVEb3VibGUo
Im51bWJlciJfcywgc3RkOjpnZXQ8ZG91YmxlPihyZXN1bHQubV92YWx1ZSkpOwogICAgIH0KIAog
ICAgIGlmIChyZXN1bHQubV90eXBlID09IEluZGV4ZWREQjo6S2V5VHlwZTo6QmluYXJ5KSB7CiAg
ICAgICAgIHJlc3VsdC5tX3ZhbHVlID0gVGhyZWFkU2FmZURhdGFCdWZmZXIoKTsKIAogICAgICAg
ICBib29sIGhhc0JpbmFyeURhdGE7Ci0gICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGVCb29sKCJo
YXNCaW5hcnkiLCBoYXNCaW5hcnlEYXRhKSkKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZUJv
b2woImhhc0JpbmFyeSJfcywgaGFzQmluYXJ5RGF0YSkpCiAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAKICAgICAgICAgaWYgKCFoYXNCaW5hcnlEYXRhKQogICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CiAKICAgICAgICAgVmVjdG9yPHVpbnQ4X3Q+IGJ5dGVzOwotICAgICAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlQnl0ZXMoImJpbmFyeSIsIGJ5dGVzKSkKKyAgICAgICAgaWYgKCFkZWNvZGVyLmRl
Y29kZUJ5dGVzKCJiaW5hcnkiX3MsIGJ5dGVzKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
IAogICAgICAgICByZXN1bHQubV92YWx1ZSA9IFRocmVhZFNhZmVEYXRhQnVmZmVyOjpjcmVhdGUo
V1RGTW92ZShieXRlcykpOwpAQCAtMjUyLDcgKzI1Miw3IEBAIGJvb2wgSURCS2V5RGF0YTo6ZGVj
b2RlKEtleWVkRGVjb2RlciYgZGVjb2RlciwgSURCS2V5RGF0YSYgcmVzdWx0KQogICAgIH07CiAg
ICAgCiAgICAgcmVzdWx0Lm1fdmFsdWUgPSBWZWN0b3I8SURCS2V5RGF0YT4oKTsKLSAgICByZXR1
cm4gZGVjb2Rlci5kZWNvZGVPYmplY3RzKCJhcnJheSIsIHN0ZDo6Z2V0PFZlY3RvcjxJREJLZXlE
YXRhPj4ocmVzdWx0Lm1fdmFsdWUpLCBhcnJheUZ1bmN0aW9uKTsKKyAgICByZXR1cm4gZGVjb2Rl
ci5kZWNvZGVPYmplY3RzKCJhcnJheSJfcywgc3RkOjpnZXQ8VmVjdG9yPElEQktleURhdGE+Pihy
ZXN1bHQubV92YWx1ZSksIGFycmF5RnVuY3Rpb24pOwogfQogCiBpbnQgSURCS2V5RGF0YTo6Y29t
cGFyZShjb25zdCBJREJLZXlEYXRhJiBvdGhlcikgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleVJhbmdlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQktleVJhbmdlLmNwcAppbmRleCAxNGYzMDNhMDRjMjNhOGJm
NDdiZjA2NTlmOTI4NzkyNGY5NjEzYWZiLi5kZWY1MDQ4MTdhZDAzODIyNDc0ZGQyZjVkMTZkMzY5
MGJiOTdmNGE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJLZXlSYW5nZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
S2V5UmFuZ2UuY3BwCkBAIC0xMzcsNyArMTM3LDcgQEAgRXhjZXB0aW9uT3I8Ym9vbD4gSURCS2V5
UmFuZ2U6OmluY2x1ZGVzKEpTQzo6SlNHbG9iYWxPYmplY3QmIHN0YXRlLCBKU0M6OkpTVmFsdWUK
ICAgICBhdXRvIGtleSA9IHNjcmlwdFZhbHVlVG9JREJLZXkoc3RhdGUsIGtleVZhbHVlKTsKICAg
ICBFWENFUFRJT05fQVNTRVJUX1VOVVNFRChzY29wZSwgIXNjb3BlLmV4Y2VwdGlvbigpIHx8ICFr
ZXktPmlzVmFsaWQoKSk7CiAgICAgaWYgKCFrZXktPmlzVmFsaWQoKSkKLSAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IERhdGFFcnJvciwgIkZhaWxlZCB0byBleGVjdXRlICdpbmNsdWRlcycgb24g
J0lEQktleVJhbmdlJzogVGhlIHBhc3NlZC1pbiB2YWx1ZSBpcyBub3QgYSB2YWxpZCBJbmRleGVk
REIga2V5LiIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IERhdGFFcnJvciwgIkZhaWxl
ZCB0byBleGVjdXRlICdpbmNsdWRlcycgb24gJ0lEQktleVJhbmdlJzogVGhlIHBhc3NlZC1pbiB2
YWx1ZSBpcyBub3QgYSB2YWxpZCBJbmRleGVkREIga2V5LiJfcyB9OwogCiAgICAgaWYgKG1fbG93
ZXIpIHsKICAgICAgICAgaW50IGNvbXBhcmUgPSBtX2xvd2VyLT5jb21wYXJlKGtleS5nZXQoKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURC
U2VyaWFsaXphdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2
ZXIvSURCU2VyaWFsaXphdGlvbi5jcHAKaW5kZXggMmEyYzFmYzMyOTU4MDVkNTJmZDU2YWYzMGI0
NTVhZTJjY2NjNDg3Ny4uMzNkNGQ0MWM5Mjc3YmZmMjk3MTM3NTJjODkxZDJjOTA5MWFkMzVjYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNl
cmlhbGl6YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3Nl
cnZlci9JREJTZXJpYWxpemF0aW9uLmNwcApAQCAtNDUsMTcgKzQ1LDE3IEBAIFJlZlB0cjxTaGFy
ZWRCdWZmZXI+IHNlcmlhbGl6ZUlEQktleVBhdGgoY29uc3Qgc3RkOjpvcHRpb25hbDxJREJLZXlQ
YXRoPiYga2V5UGF0CiAKICAgICBpZiAoa2V5UGF0aCkgewogICAgICAgICBhdXRvIHZpc2l0b3Ig
PSBXVEY6Om1ha2VWaXNpdG9yKFsmXShjb25zdCBTdHJpbmcmIHN0cmluZykgewotICAgICAgICAg
ICAgZW5jb2Rlci0+ZW5jb2RlRW51bSgidHlwZSIsIEtleVBhdGhUeXBlOjpTdHJpbmcpOwotICAg
ICAgICAgICAgZW5jb2Rlci0+ZW5jb2RlU3RyaW5nKCJzdHJpbmciLCBzdHJpbmcpOworICAgICAg
ICAgICAgZW5jb2Rlci0+ZW5jb2RlRW51bSgidHlwZSJfcywgS2V5UGF0aFR5cGU6OlN0cmluZyk7
CisgICAgICAgICAgICBlbmNvZGVyLT5lbmNvZGVTdHJpbmcoInN0cmluZyJfcywgc3RyaW5nKTsK
ICAgICAgICAgfSwgWyZdKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiB2ZWN0b3IpIHsKLSAgICAgICAg
ICAgIGVuY29kZXItPmVuY29kZUVudW0oInR5cGUiLCBLZXlQYXRoVHlwZTo6QXJyYXkpOwotICAg
ICAgICAgICAgZW5jb2Rlci0+ZW5jb2RlT2JqZWN0cygiYXJyYXkiLCB2ZWN0b3IuYmVnaW4oKSwg
dmVjdG9yLmVuZCgpLCBbXShXZWJDb3JlOjpLZXllZEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFN0
cmluZyYgc3RyaW5nKSB7Ci0gICAgICAgICAgICAgICAgZW5jb2Rlci5lbmNvZGVTdHJpbmcoInN0
cmluZyIsIHN0cmluZyk7CisgICAgICAgICAgICBlbmNvZGVyLT5lbmNvZGVFbnVtKCJ0eXBlIl9z
LCBLZXlQYXRoVHlwZTo6QXJyYXkpOworICAgICAgICAgICAgZW5jb2Rlci0+ZW5jb2RlT2JqZWN0
cygiYXJyYXkiX3MsIHZlY3Rvci5iZWdpbigpLCB2ZWN0b3IuZW5kKCksIFtdKFdlYkNvcmU6Oktl
eWVkRW5jb2RlciYgZW5jb2RlciwgY29uc3QgU3RyaW5nJiBzdHJpbmcpIHsKKyAgICAgICAgICAg
ICAgICBlbmNvZGVyLmVuY29kZVN0cmluZygic3RyaW5nIl9zLCBzdHJpbmcpOwogICAgICAgICAg
ICAgfSk7CiAgICAgICAgIH0pOwogICAgICAgICBzdGQ6OnZpc2l0KHZpc2l0b3IsIGtleVBhdGgu
dmFsdWUoKSk7CiAgICAgfSBlbHNlCi0gICAgICAgIGVuY29kZXItPmVuY29kZUVudW0oInR5cGUi
LCBLZXlQYXRoVHlwZTo6TnVsbCk7CisgICAgICAgIGVuY29kZXItPmVuY29kZUVudW0oInR5cGUi
X3MsIEtleVBhdGhUeXBlOjpOdWxsKTsKIAogICAgIHJldHVybiBlbmNvZGVyLT5maW5pc2hFbmNv
ZGluZygpOwogfQpAQCAtNjgsNyArNjgsNyBAQCBib29sIGRlc2VyaWFsaXplSURCS2V5UGF0aChj
b25zdCB1aW50OF90KiBkYXRhLCBzaXplX3Qgc2l6ZSwgc3RkOjpvcHRpb25hbDxJREJLZQogICAg
IGF1dG8gZGVjb2RlciA9IEtleWVkRGVjb2Rlcjo6ZGVjb2RlcihkYXRhLCBzaXplKTsKIAogICAg
IEtleVBhdGhUeXBlIHR5cGU7Ci0gICAgYm9vbCBzdWNjZWVkZWQgPSBkZWNvZGVyLT5kZWNvZGVF
bnVtKCJ0eXBlIiwgdHlwZSwgW10oS2V5UGF0aFR5cGUgdmFsdWUpIHsKKyAgICBib29sIHN1Y2Nl
ZWRlZCA9IGRlY29kZXItPmRlY29kZUVudW0oInR5cGUiX3MsIHR5cGUsIFtdKEtleVBhdGhUeXBl
IHZhbHVlKSB7CiAgICAgICAgIHJldHVybiB2YWx1ZSA9PSBLZXlQYXRoVHlwZTo6TnVsbCB8fCB2
YWx1ZSA9PSBLZXlQYXRoVHlwZTo6U3RyaW5nIHx8IHZhbHVlID09IEtleVBhdGhUeXBlOjpBcnJh
eTsKICAgICB9KTsKICAgICBpZiAoIXN1Y2NlZWRlZCkKQEAgLTc5LDE1ICs3OSwxNSBAQCBib29s
IGRlc2VyaWFsaXplSURCS2V5UGF0aChjb25zdCB1aW50OF90KiBkYXRhLCBzaXplX3Qgc2l6ZSwg
c3RkOjpvcHRpb25hbDxJREJLZQogICAgICAgICBicmVhazsKICAgICBjYXNlIEtleVBhdGhUeXBl
OjpTdHJpbmc6IHsKICAgICAgICAgU3RyaW5nIHN0cmluZzsKLSAgICAgICAgaWYgKCFkZWNvZGVy
LT5kZWNvZGVTdHJpbmcoInN0cmluZyIsIHN0cmluZykpCisgICAgICAgIGlmICghZGVjb2Rlci0+
ZGVjb2RlU3RyaW5nKCJzdHJpbmciX3MsIHN0cmluZykpCiAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgICAgIHJlc3VsdCA9IElEQktleVBhdGgoV1RGTW92ZShzdHJpbmcpKTsKICAgICAg
ICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgS2V5UGF0aFR5cGU6OkFycmF5OiB7CiAgICAgICAg
IFZlY3RvcjxTdHJpbmc+IHZlY3RvcjsKLSAgICAgICAgc3VjY2VlZGVkID0gZGVjb2Rlci0+ZGVj
b2RlT2JqZWN0cygiYXJyYXkiLCB2ZWN0b3IsIFtdKEtleWVkRGVjb2RlciYgZGVjb2RlciwgU3Ry
aW5nJiByZXN1bHQpIHsKLSAgICAgICAgICAgIHJldHVybiBkZWNvZGVyLmRlY29kZVN0cmluZygi
c3RyaW5nIiwgcmVzdWx0KTsKKyAgICAgICAgc3VjY2VlZGVkID0gZGVjb2Rlci0+ZGVjb2RlT2Jq
ZWN0cygiYXJyYXkiX3MsIHZlY3RvciwgW10oS2V5ZWREZWNvZGVyJiBkZWNvZGVyLCBTdHJpbmcm
IHJlc3VsdCkgeworICAgICAgICAgICAgcmV0dXJuIGRlY29kZXIuZGVjb2RlU3RyaW5nKCJzdHJp
bmciX3MsIHJlc3VsdCk7CiAgICAgICAgIH0pOwogICAgICAgICBpZiAoIXN1Y2NlZWRlZCkKICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHAKaW5kZXggNzdkZjY2N2Q0MDk5ZDZmYjdk
ODVhMDU1YzIwMDRlNjdiMmFiNWIxZC4uNDg2MDE1ZjdiOTZjMjZiZTZiYWE0MmFhNWZiZDc4ODZm
MTQ4YjQ3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2Vy
dmVyL0lEQlNlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL0lEQlNlcnZlci5jcHAKQEAgLTUzMCwxMCArNTMwLDEwIEBAIHZvaWQgSURCU2VydmVy
OjpnZXRBbGxEYXRhYmFzZU5hbWVzQW5kVmVyc2lvbnMoSURCQ29ubmVjdGlvbklkZW50aWZpZXIg
c2VydmVyQ29uCiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKFdURk1vdmUoKm5hbWVBbmRWZXJz
aW9uKSk7CiAgICAgfQogCi0gICAgYXV0byBvbGREaXJlY3RvcnkgPSBJREJEYXRhYmFzZUlkZW50
aWZpZXI6OmRhdGFiYXNlRGlyZWN0b3J5UmVsYXRpdmVUb1Jvb3Qob3JpZ2luLCBtX2RhdGFiYXNl
RGlyZWN0b3J5UGF0aCwgInYwIik7CisgICAgYXV0byBvbGREaXJlY3RvcnkgPSBJREJEYXRhYmFz
ZUlkZW50aWZpZXI6OmRhdGFiYXNlRGlyZWN0b3J5UmVsYXRpdmVUb1Jvb3Qob3JpZ2luLCBtX2Rh
dGFiYXNlRGlyZWN0b3J5UGF0aCwgInYwIl9zKTsKICAgICBnZXREYXRhYmFzZU5hbWVBbmRWZXJz
aW9uRnJvbU9yaWdpbkRpcmVjdG9yeShvbGREaXJlY3RvcnksIHZpc2l0ZWREYXRhYmFzZVBhdGhz
LCByZXN1bHQpOwogCi0gICAgYXV0byBkaXJlY3RvcnkgPSBJREJEYXRhYmFzZUlkZW50aWZpZXI6
OmRhdGFiYXNlRGlyZWN0b3J5UmVsYXRpdmVUb1Jvb3Qob3JpZ2luLCBtX2RhdGFiYXNlRGlyZWN0
b3J5UGF0aCwgInYxIik7CisgICAgYXV0byBkaXJlY3RvcnkgPSBJREJEYXRhYmFzZUlkZW50aWZp
ZXI6OmRhdGFiYXNlRGlyZWN0b3J5UmVsYXRpdmVUb1Jvb3Qob3JpZ2luLCBtX2RhdGFiYXNlRGly
ZWN0b3J5UGF0aCwgInYxIl9zKTsKICAgICBnZXREYXRhYmFzZU5hbWVBbmRWZXJzaW9uRnJvbU9y
aWdpbkRpcmVjdG9yeShkaXJlY3RvcnksIHZpc2l0ZWREYXRhYmFzZVBhdGhzLCByZXN1bHQpOwog
CiAgICAgYXV0byBjb25uZWN0aW9uID0gbV9jb25uZWN0aW9uTWFwLmdldChzZXJ2ZXJDb25uZWN0
aW9uSWRlbnRpZmllcik7CkBAIC01NjYsOCArNTY2LDggQEAgSGFzaFNldDxTZWN1cml0eU9yaWdp
bkRhdGE+IElEQlNlcnZlcjo6Z2V0T3JpZ2lucygpIGNvbnN0CiAgICAgICAgIHJldHVybiB7IH07
CiAKICAgICBIYXNoU2V0PFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4gc2VjdXJpdHlPcmln
aW5zOwotICAgIGNvbGxlY3RPcmlnaW5zRm9yVmVyc2lvbihGaWxlU3lzdGVtOjpwYXRoQnlBcHBl
bmRpbmdDb21wb25lbnQobV9kYXRhYmFzZURpcmVjdG9yeVBhdGgsICJ2MCIpLCBzZWN1cml0eU9y
aWdpbnMpOwotICAgIGNvbGxlY3RPcmlnaW5zRm9yVmVyc2lvbihGaWxlU3lzdGVtOjpwYXRoQnlB
cHBlbmRpbmdDb21wb25lbnQobV9kYXRhYmFzZURpcmVjdG9yeVBhdGgsICJ2MSIpLCBzZWN1cml0
eU9yaWdpbnMpOworICAgIGNvbGxlY3RPcmlnaW5zRm9yVmVyc2lvbihGaWxlU3lzdGVtOjpwYXRo
QnlBcHBlbmRpbmdDb21wb25lbnQobV9kYXRhYmFzZURpcmVjdG9yeVBhdGgsICJ2MCJfcyksIHNl
Y3VyaXR5T3JpZ2lucyk7CisgICAgY29sbGVjdE9yaWdpbnNGb3JWZXJzaW9uKEZpbGVTeXN0ZW06
OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChtX2RhdGFiYXNlRGlyZWN0b3J5UGF0aCwgInYxIl9z
KSwgc2VjdXJpdHlPcmlnaW5zKTsKIAogICAgIHJldHVybiBzZWN1cml0eU9yaWdpbnM7CiB9CkBA
IC01ODgsOCArNTg4LDggQEAgdm9pZCBJREJTZXJ2ZXI6OmNsb3NlQW5kRGVsZXRlRGF0YWJhc2Vz
TW9kaWZpZWRTaW5jZShXYWxsVGltZSBtb2RpZmljYXRpb25UaW1lKQogICAgIG1fdW5pcXVlSURC
RGF0YWJhc2VNYXAuY2xlYXIoKTsKIAogICAgIGlmICghbV9kYXRhYmFzZURpcmVjdG9yeVBhdGgu
aXNFbXB0eSgpKSB7Ci0gICAgICAgIHJlbW92ZURhdGFiYXNlc01vZGlmaWVkU2luY2VGb3JWZXJz
aW9uKG1vZGlmaWNhdGlvblRpbWUsICJ2MCIpOwotICAgICAgICByZW1vdmVEYXRhYmFzZXNNb2Rp
ZmllZFNpbmNlRm9yVmVyc2lvbihtb2RpZmljYXRpb25UaW1lLCAidjEiKTsKKyAgICAgICAgcmVt
b3ZlRGF0YWJhc2VzTW9kaWZpZWRTaW5jZUZvclZlcnNpb24obW9kaWZpY2F0aW9uVGltZSwgInYw
Il9zKTsKKyAgICAgICAgcmVtb3ZlRGF0YWJhc2VzTW9kaWZpZWRTaW5jZUZvclZlcnNpb24obW9k
aWZpY2F0aW9uVGltZSwgInYxIl9zKTsKICAgICB9CiB9CiAKQEAgLTYyNCw4ICs2MjQsOCBAQCB2
b2lkIElEQlNlcnZlcjo6Y2xvc2VBbmREZWxldGVEYXRhYmFzZXNGb3JPcmlnaW5zKGNvbnN0IFZl
Y3RvcjxTZWN1cml0eU9yaWdpbkRhdAogICAgIH0pOwogCiAgICAgaWYgKCFtX2RhdGFiYXNlRGly
ZWN0b3J5UGF0aC5pc0VtcHR5KCkpIHsKLSAgICAgICAgcmVtb3ZlRGF0YWJhc2VzV2l0aE9yaWdp
bnNGb3JWZXJzaW9uKG9yaWdpbnMsICJ2MCIpOwotICAgICAgICByZW1vdmVEYXRhYmFzZXNXaXRo
T3JpZ2luc0ZvclZlcnNpb24ob3JpZ2lucywgInYxIik7CisgICAgICAgIHJlbW92ZURhdGFiYXNl
c1dpdGhPcmlnaW5zRm9yVmVyc2lvbihvcmlnaW5zLCAidjAiX3MpOworICAgICAgICByZW1vdmVE
YXRhYmFzZXNXaXRoT3JpZ2luc0ZvclZlcnNpb24ob3JpZ2lucywgInYxIl9zKTsKICAgICB9CiB9
CiAKQEAgLTYzNiw3ICs2MzYsNyBAQCBzdGF0aWMgdm9pZCByZW1vdmVBbGxEYXRhYmFzZXNGb3JG
dWxsT3JpZ2luUGF0aChjb25zdCBTdHJpbmcmIG9yaWdpblBhdGgsIFdhbGxUaQogCiAgICAgZm9y
IChhdXRvJiBkYXRhYmFzZU5hbWUgOiBkYXRhYmFzZU5hbWVzKSB7CiAgICAgICAgIGF1dG8gZGF0
YWJhc2VQYXRoID0gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KG9yaWdpblBh
dGgsIGRhdGFiYXNlTmFtZSk7Ci0gICAgICAgIFN0cmluZyBkYXRhYmFzZUZpbGUgPSBGaWxlU3lz
dGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoZGF0YWJhc2VQYXRoLCAiSW5kZXhlZERCLnNx
bGl0ZTMiKTsKKyAgICAgICAgU3RyaW5nIGRhdGFiYXNlRmlsZSA9IEZpbGVTeXN0ZW06OnBhdGhC
eUFwcGVuZGluZ0NvbXBvbmVudChkYXRhYmFzZVBhdGgsICJJbmRleGVkREIuc3FsaXRlMyJfcyk7
CiAgICAgICAgIGlmIChtb2RpZmllZFNpbmNlID4gLVdhbGxUaW1lOjppbmZpbml0eSgpICYmIEZp
bGVTeXN0ZW06OmZpbGVFeGlzdHMoZGF0YWJhc2VGaWxlKSkgewogICAgICAgICAgICAgYXV0byBt
b2RpZmljYXRpb25UaW1lID0gRmlsZVN5c3RlbTo6ZmlsZU1vZGlmaWNhdGlvblRpbWUoZGF0YWJh
c2VGaWxlKTsKICAgICAgICAgICAgIGlmICghbW9kaWZpY2F0aW9uVGltZSkKQEAgLTczMiw3ICs3
MzIsNyBAQCB2b2lkIElEQlNlcnZlcjo6cmVuYW1lT3JpZ2luKGNvbnN0IFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luRGF0YSYgb2xkT3JpZ2luLCBjb25zdAogICAgICAgICByZXR1cm4gZGF0YWJhc2VP
cmlnaW4udG9wT3JpZ2luID09IHRhcmdldE9yaWdpbjsKICAgICB9KTsKIAotICAgIGF1dG8gdmVy
c2lvblBhdGggPSBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQobV9kYXRhYmFz
ZURpcmVjdG9yeVBhdGgsICJ2MSIpOworICAgIGF1dG8gdmVyc2lvblBhdGggPSBGaWxlU3lzdGVt
OjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQobV9kYXRhYmFzZURpcmVjdG9yeVBhdGgsICJ2MSJf
cyk7CiAgICAgYXV0byBvbGRPcmlnaW5QYXRoID0gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5n
Q29tcG9uZW50KHZlcnNpb25QYXRoLCBvbGRPcmlnaW4uZGF0YWJhc2VJZGVudGlmaWVyKCkpOwog
ICAgIGF1dG8gbmV3T3JpZ2luUGF0aCA9IEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBv
bmVudCh2ZXJzaW9uUGF0aCwgbmV3T3JpZ2luLmRhdGFiYXNlSWRlbnRpZmllcigpKTsKICAgICBp
ZiAoRmlsZVN5c3RlbTo6ZmlsZUV4aXN0cyhvbGRPcmlnaW5QYXRoKSkKQEAgLTc2OCwxNiArNzY4
LDE2IEBAIHZvaWQgSURCU2VydmVyOjp1cGdyYWRlRmlsZXNJZk5lY2Vzc2FyeSgpCiAgICAgaWYg
KG1fZGF0YWJhc2VEaXJlY3RvcnlQYXRoLmlzRW1wdHkoKSB8fCAhRmlsZVN5c3RlbTo6ZmlsZUV4
aXN0cyhtX2RhdGFiYXNlRGlyZWN0b3J5UGF0aCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIFN0
cmluZyBuZXdWZXJzaW9uRGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29t
cG9uZW50KG1fZGF0YWJhc2VEaXJlY3RvcnlQYXRoLCAidjEiKTsKKyAgICBTdHJpbmcgbmV3VmVy
c2lvbkRpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChtX2Rh
dGFiYXNlRGlyZWN0b3J5UGF0aCwgInYxIl9zKTsKICAgICBpZiAoIUZpbGVTeXN0ZW06OmZpbGVF
eGlzdHMobmV3VmVyc2lvbkRpcmVjdG9yeSkpCiAgICAgICAgIEZpbGVTeXN0ZW06Om1ha2VBbGxE
aXJlY3RvcmllcyhuZXdWZXJzaW9uRGlyZWN0b3J5KTsKIH0KIAogU3RyaW5nIElEQlNlcnZlcjo6
dXBncmFkZWREYXRhYmFzZURpcmVjdG9yeShjb25zdCBXZWJDb3JlOjpJREJEYXRhYmFzZUlkZW50
aWZpZXImIGlkZW50aWZpZXIpCiB7Ci0gICAgU3RyaW5nIG9sZE9yaWdpbkRpcmVjdG9yeSA9IGlk
ZW50aWZpZXIuZGF0YWJhc2VEaXJlY3RvcnlSZWxhdGl2ZVRvUm9vdChtX2RhdGFiYXNlRGlyZWN0
b3J5UGF0aCwgInYwIik7CisgICAgU3RyaW5nIG9sZE9yaWdpbkRpcmVjdG9yeSA9IGlkZW50aWZp
ZXIuZGF0YWJhc2VEaXJlY3RvcnlSZWxhdGl2ZVRvUm9vdChtX2RhdGFiYXNlRGlyZWN0b3J5UGF0
aCwgInYwIl9zKTsKICAgICBTdHJpbmcgb2xkRGF0YWJhc2VEaXJlY3RvcnkgPSBGaWxlU3lzdGVt
OjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQob2xkT3JpZ2luRGlyZWN0b3J5LCBTUUxpdGVJREJC
YWNraW5nU3RvcmU6OmVuY29kZURhdGFiYXNlTmFtZShpZGVudGlmaWVyLmRhdGFiYXNlTmFtZSgp
KSk7Ci0gICAgU3RyaW5nIG5ld09yaWdpbkRpcmVjdG9yeSA9IGlkZW50aWZpZXIuZGF0YWJhc2VE
aXJlY3RvcnlSZWxhdGl2ZVRvUm9vdChtX2RhdGFiYXNlRGlyZWN0b3J5UGF0aCwgInYxIik7Cisg
ICAgU3RyaW5nIG5ld09yaWdpbkRpcmVjdG9yeSA9IGlkZW50aWZpZXIuZGF0YWJhc2VEaXJlY3Rv
cnlSZWxhdGl2ZVRvUm9vdChtX2RhdGFiYXNlRGlyZWN0b3J5UGF0aCwgInYxIl9zKTsKICAgICBT
dHJpbmcgZmlsZU5hbWVIYXNoID0gU1FMaXRlRmlsZVN5c3RlbTo6Y29tcHV0ZUhhc2hGb3JGaWxl
TmFtZShpZGVudGlmaWVyLmRhdGFiYXNlTmFtZSgpKTsKICAgICBTdHJpbmcgbmV3RGF0YWJhc2VE
aXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQobmV3T3JpZ2lu
RGlyZWN0b3J5LCBmaWxlTmFtZUhhc2gpOwogICAgIEZpbGVTeXN0ZW06Om1ha2VBbGxEaXJlY3Rv
cmllcyhuZXdEYXRhYmFzZURpcmVjdG9yeSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5SURCQmFja2luZ1N0b3JlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlJREJCYWNraW5nU3RvcmUu
Y3BwCmluZGV4IGQ2MzM1MDMwOTkzMDU1YjliMTJiNzg0NTY1NWRhODMzNzJiMWE1NTAuLjFjMjdh
ZDYxNzlmMWJlYWQwZmYxYTZkZWNmYjlhZTJiNWU5NTNmOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlJREJCYWNraW5nU3RvcmUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlJREJC
YWNraW5nU3RvcmUuY3BwCkBAIC03OCw3ICs3OCw3IEBAIElEQkVycm9yIE1lbW9yeUlEQkJhY2tp
bmdTdG9yZTo6YmVnaW5UcmFuc2FjdGlvbihjb25zdCBJREJUcmFuc2FjdGlvbkluZm8mIGluZm8p
CiAgICAgTE9HKEluZGV4ZWREQiwgIk1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6YmVnaW5UcmFuc2Fj
dGlvbiIpOwogCiAgICAgaWYgKG1fdHJhbnNhY3Rpb25zLmNvbnRhaW5zKGluZm8uaWRlbnRpZmll
cigpKSkKLSAgICAgICAgcmV0dXJuIElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNr
aW5nIHN0b3JlIGFza2VkIHRvIGNyZWF0ZSB0cmFuc2FjdGlvbiBpdCBhbHJlYWR5IGhhcyBhIHJl
Y29yZCBvZiIgfTsKKyAgICAgICAgcmV0dXJuIElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3Is
ICJCYWNraW5nIHN0b3JlIGFza2VkIHRvIGNyZWF0ZSB0cmFuc2FjdGlvbiBpdCBhbHJlYWR5IGhh
cyBhIHJlY29yZCBvZiJfcyB9OwogCiAgICAgYXV0byB0cmFuc2FjdGlvbiA9IE1lbW9yeUJhY2tp
bmdTdG9yZVRyYW5zYWN0aW9uOjpjcmVhdGUoKnRoaXMsIGluZm8pOwogCkBAIC0xMDQsNyArMTA0
LDcgQEAgSURCRXJyb3IgTWVtb3J5SURCQmFja2luZ1N0b3JlOjphYm9ydFRyYW5zYWN0aW9uKGNv
bnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdHIKIAogICAgIGF1dG8gdHJhbnNhY3Rpb24gPSBt
X3RyYW5zYWN0aW9ucy50YWtlKHRyYW5zYWN0aW9uSWRlbnRpZmllcik7CiAgICAgaWYgKCF0cmFu
c2FjdGlvbikKLSAgICAgICAgcmV0dXJuIElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJC
YWNraW5nIHN0b3JlIGFza2VkIHRvIGFib3J0IHRyYW5zYWN0aW9uIGl0IGRpZG4ndCBoYXZlIHJl
Y29yZCBvZiIgfTsKKyAgICAgICAgcmV0dXJuIElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3Is
ICJCYWNraW5nIHN0b3JlIGFza2VkIHRvIGFib3J0IHRyYW5zYWN0aW9uIGl0IGRpZG4ndCBoYXZl
IHJlY29yZCBvZiJfcyB9OwogCiAgICAgdHJhbnNhY3Rpb24tPmFib3J0KCk7CiAKQEAgLTExNyw3
ICsxMTcsNyBAQCBJREJFcnJvciBNZW1vcnlJREJCYWNraW5nU3RvcmU6OmNvbW1pdFRyYW5zYWN0
aW9uKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdAogCiAgICAgYXV0byB0cmFuc2FjdGlv
biA9IG1fdHJhbnNhY3Rpb25zLnRha2UodHJhbnNhY3Rpb25JZGVudGlmaWVyKTsKICAgICBpZiAo
IXRyYW5zYWN0aW9uKQotICAgICAgICByZXR1cm4gSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJv
ciwgIkJhY2tpbmcgc3RvcmUgYXNrZWQgdG8gY29tbWl0IHRyYW5zYWN0aW9uIGl0IGRpZG4ndCBo
YXZlIHJlY29yZCBvZiIgfTsKKyAgICAgICAgcmV0dXJuIElEQkVycm9yIHsgSW52YWxpZFN0YXRl
RXJyb3IsICJCYWNraW5nIHN0b3JlIGFza2VkIHRvIGNvbW1pdCB0cmFuc2FjdGlvbiBpdCBkaWRu
J3QgaGF2ZSByZWNvcmQgb2YiX3MgfTsKIAogICAgIHRyYW5zYWN0aW9uLT5jb21taXQoKTsKIApA
QCAtNDczLDcgKzQ3Myw3IEBAIElEQkVycm9yIE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6Z2VuZXJh
dGVLZXlOdW1iZXIoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0CiAKICAgICBrZXlOdW1i
ZXIgPSBvYmplY3RTdG9yZS0+Y3VycmVudEtleUdlbmVyYXRvclZhbHVlKCk7CiAgICAgaWYgKGtl
eU51bWJlciA+IG1heEdlbmVyYXRlZEtleVZhbHVlKQotICAgICAgICByZXR1cm4gSURCRXJyb3Ig
eyBDb25zdHJhaW50RXJyb3IsICJDYW5ub3QgZ2VuZXJhdGUgbmV3IGtleSB2YWx1ZSBvdmVyIDJe
NTMgZm9yIG9iamVjdCBzdG9yZSBvcGVyYXRpb24iIH07CisgICAgICAgIHJldHVybiBJREJFcnJv
ciB7IENvbnN0cmFpbnRFcnJvciwgIkNhbm5vdCBnZW5lcmF0ZSBuZXcga2V5IHZhbHVlIG92ZXIg
Ml41MyBmb3Igb2JqZWN0IHN0b3JlIG9wZXJhdGlvbiJfcyB9OwogCiAgICAgb2JqZWN0U3RvcmUt
PnNldEtleUdlbmVyYXRvclZhbHVlKGtleU51bWJlciArIDEpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5T2JqZWN0U3RvcmUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeU9iamVjdFN0
b3JlLmNwcAppbmRleCA3ZWY5ZDBhMzg3ZjcyN2Q4NWVjMGRlZWY2ZDNjYWUwZGVkMDE1OGNmLi44
OTIzMWI0YWUyNDk2OGU4OWIwZDc1ODExNTFmNTI4ZWUzZTJmYjRlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5T2JqZWN0U3RvcmUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlPYmpl
Y3RTdG9yZS5jcHAKQEAgLTMxMCw3ICszMTAsNyBAQCBJREJFcnJvciBNZW1vcnlPYmplY3RTdG9y
ZTo6dXBkYXRlSW5kZXhlc0ZvclB1dFJlY29yZChjb25zdCBJREJLZXlEYXRhJiBrZXksIGNvbgog
ICAgICAgICBhdXRvKiBpbmRleCA9IG1faW5kZXhlc0J5SWRlbnRpZmllci5nZXQoaW5kZXhJRCk7
CiAgICAgICAgIEFTU0VSVChpbmRleCk7CiAgICAgICAgIGlmICghaW5kZXgpIHsKLSAgICAgICAg
ICAgIGVycm9yID0gSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIk1pc3NpbmcgaW5kZXgg
bWV0YWRhdGEiIH07CisgICAgICAgICAgICBlcnJvciA9IElEQkVycm9yIHsgSW52YWxpZFN0YXRl
RXJyb3IsICJNaXNzaW5nIGluZGV4IG1ldGFkYXRhIl9zIH07CiAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuY3BwCmluZGV4IDJmYWYz
ZTk1ZDMxYzk4OWZjZTEyZTA1N2YwNmMyMmUyZmY3M2M0NmUuLmNiZDQ2Mjc5MDc4Nzc4MDJmMzhj
NmE0ZGZiNjZjMWEyMjMxZGIzY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuY3Bw
CkBAIC05OCwzNyArOTgsMzcgQEAgc3RhdGljIGludCBpZGJLZXlDb2xsYXRlKGludCBhTGVuZ3Ro
LCBjb25zdCB2b2lkKiBhQnVmZmVyLCBpbnQgYkxlbmd0aCwgY29uc3Qgdm8KICAgICByZXR1cm4g
YS5jb21wYXJlKGIpOwogfQogCi1zdGF0aWMgY29uc3QgU3RyaW5nIHYxUmVjb3Jkc1RhYmxlU2No
ZW1hKGNvbnN0IFN0cmluZyYgdGFibGVOYW1lKQorc3RhdGljIGNvbnN0IFN0cmluZyB2MVJlY29y
ZHNUYWJsZVNjaGVtYShBU0NJSUxpdGVyYWwgdGFibGVOYW1lKQogewogICAgIHJldHVybiBtYWtl
U3RyaW5nKCJDUkVBVEUgVEFCTEUgIiwgdGFibGVOYW1lLCAiIChvYmplY3RTdG9yZUlEIElOVEVH
RVIgTk9UIE5VTEwgT04gQ09ORkxJQ1QgRkFJTCwga2V5IFRFWFQgQ09MTEFURSBJREJLRVkgTk9U
IE5VTEwgT04gQ09ORkxJQ1QgRkFJTCBVTklRVUUgT04gQ09ORkxJQ1QgUkVQTEFDRSwgdmFsdWUg
Tk9UIE5VTEwgT04gQ09ORkxJQ1QgRkFJTCkiKTsKIH0KIAogc3RhdGljIGNvbnN0IFN0cmluZyYg
djFSZWNvcmRzVGFibGVTY2hlbWEoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJp
bmc+IHYxUmVjb3Jkc1RhYmxlU2NoZW1hU3RyaW5nKHYxUmVjb3Jkc1RhYmxlU2NoZW1hKCJSZWNv
cmRzIikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHYxUmVjb3Jkc1RhYmxl
U2NoZW1hU3RyaW5nKHYxUmVjb3Jkc1RhYmxlU2NoZW1hKCJSZWNvcmRzIl9zKSk7CiAgICAgcmV0
dXJuIHYxUmVjb3Jkc1RhYmxlU2NoZW1hU3RyaW5nOwogfQogCiBzdGF0aWMgY29uc3QgU3RyaW5n
JiB2MVJlY29yZHNUYWJsZVNjaGVtYUFsdGVybmF0ZSgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPFN0cmluZz4gdjFSZWNvcmRzVGFibGVTY2hlbWFTdHJpbmcodjFSZWNvcmRzVGFibGVT
Y2hlbWEoIlwiUmVjb3Jkc1wiIikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+
IHYxUmVjb3Jkc1RhYmxlU2NoZW1hU3RyaW5nKHYxUmVjb3Jkc1RhYmxlU2NoZW1hKCJcIlJlY29y
ZHNcIiJfcykpOwogICAgIHJldHVybiB2MVJlY29yZHNUYWJsZVNjaGVtYVN0cmluZzsKIH0KIAot
c3RhdGljIGNvbnN0IFN0cmluZyB2MlJlY29yZHNUYWJsZVNjaGVtYShjb25zdCBTdHJpbmcmIHRh
YmxlTmFtZSkKK3N0YXRpYyBjb25zdCBTdHJpbmcgdjJSZWNvcmRzVGFibGVTY2hlbWEoQVNDSUlM
aXRlcmFsIHRhYmxlTmFtZSkKIHsKICAgICByZXR1cm4gbWFrZVN0cmluZygiQ1JFQVRFIFRBQkxF
ICIsIHRhYmxlTmFtZSwgIiAob2JqZWN0U3RvcmVJRCBJTlRFR0VSIE5PVCBOVUxMIE9OIENPTkZM
SUNUIEZBSUwsIGtleSBURVhUIENPTExBVEUgSURCS0VZIE5PVCBOVUxMIE9OIENPTkZMSUNUIEZB
SUwsIHZhbHVlIE5PVCBOVUxMIE9OIENPTkZMSUNUIEZBSUwpIik7CiB9CiAKIHN0YXRpYyBjb25z
dCBTdHJpbmcmIHYyUmVjb3Jkc1RhYmxlU2NoZW1hKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8U3RyaW5nPiB2MlJlY29yZHNUYWJsZVNjaGVtYVN0cmluZyh2MlJlY29yZHNUYWJsZVNj
aGVtYSgiUmVjb3JkcyIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiB2MlJl
Y29yZHNUYWJsZVNjaGVtYVN0cmluZyh2MlJlY29yZHNUYWJsZVNjaGVtYSgiUmVjb3JkcyJfcykp
OwogICAgIHJldHVybiB2MlJlY29yZHNUYWJsZVNjaGVtYVN0cmluZzsKIH0KIAogc3RhdGljIGNv
bnN0IFN0cmluZyYgdjJSZWNvcmRzVGFibGVTY2hlbWFBbHRlcm5hdGUoKQogewotICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHYyUmVjb3Jkc1RhYmxlU2NoZW1hU3RyaW5nKHYyUmVj
b3Jkc1RhYmxlU2NoZW1hKCJcIlJlY29yZHNcIiIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8U3RyaW5nPiB2MlJlY29yZHNUYWJsZVNjaGVtYVN0cmluZyh2MlJlY29yZHNUYWJsZVNjaGVt
YSgiXCJSZWNvcmRzXCIiX3MpKTsKICAgICByZXR1cm4gdjJSZWNvcmRzVGFibGVTY2hlbWFTdHJp
bmc7CiB9CiAKQEAgLTE0NywzNyArMTQ3LDM3IEBAIHN0YXRpYyBBU0NJSUxpdGVyYWwgdjNSZWNv
cmRzVGFibGVTY2hlbWFUZW1wKCkKICAgICByZXR1cm4gVEFCTEVfU0NIRU1BX1BSRUZJWCAiX1Rl
bXBfUmVjb3JkcyIgVjNfUkVDT1JEU19UQUJMRV9TQ0hFTUFfU1VGRklYOwogfQogCi1zdGF0aWMg
Y29uc3QgU3RyaW5nIHYxSW5kZXhSZWNvcmRzVGFibGVTY2hlbWEoY29uc3QgU3RyaW5nJiB0YWJs
ZU5hbWUpCitzdGF0aWMgY29uc3QgU3RyaW5nIHYxSW5kZXhSZWNvcmRzVGFibGVTY2hlbWEoQVND
SUlMaXRlcmFsIHRhYmxlTmFtZSkKIHsKICAgICByZXR1cm4gbWFrZVN0cmluZygiQ1JFQVRFIFRB
QkxFICIsIHRhYmxlTmFtZSwgIiAoaW5kZXhJRCBJTlRFR0VSIE5PVCBOVUxMIE9OIENPTkZMSUNU
IEZBSUwsIG9iamVjdFN0b3JlSUQgSU5URUdFUiBOT1QgTlVMTCBPTiBDT05GTElDVCBGQUlMLCBr
ZXkgVEVYVCBDT0xMQVRFIElEQktFWSBOT1QgTlVMTCBPTiBDT05GTElDVCBGQUlMLCB2YWx1ZSBO
T1QgTlVMTCBPTiBDT05GTElDVCBGQUlMKSIpOwogfQogCiBzdGF0aWMgY29uc3QgU3RyaW5nJiB2
MUluZGV4UmVjb3Jkc1RhYmxlU2NoZW1hKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
U3RyaW5nPiB2MUluZGV4UmVjb3Jkc1RhYmxlU2NoZW1hU3RyaW5nKHYxSW5kZXhSZWNvcmRzVGFi
bGVTY2hlbWEoIkluZGV4UmVjb3JkcyIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3Ry
aW5nPiB2MUluZGV4UmVjb3Jkc1RhYmxlU2NoZW1hU3RyaW5nKHYxSW5kZXhSZWNvcmRzVGFibGVT
Y2hlbWEoIkluZGV4UmVjb3JkcyJfcykpOwogICAgIHJldHVybiB2MUluZGV4UmVjb3Jkc1RhYmxl
U2NoZW1hU3RyaW5nOwogfQogCiBzdGF0aWMgY29uc3QgU3RyaW5nJiB2MUluZGV4UmVjb3Jkc1Rh
YmxlU2NoZW1hQWx0ZXJuYXRlKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5n
PiB2MUluZGV4UmVjb3Jkc1RhYmxlU2NoZW1hU3RyaW5nKHYxSW5kZXhSZWNvcmRzVGFibGVTY2hl
bWEoIlwiSW5kZXhSZWNvcmRzXCIiKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmlu
Zz4gdjFJbmRleFJlY29yZHNUYWJsZVNjaGVtYVN0cmluZyh2MUluZGV4UmVjb3Jkc1RhYmxlU2No
ZW1hKCJcIkluZGV4UmVjb3Jkc1wiIl9zKSk7CiAgICAgcmV0dXJuIHYxSW5kZXhSZWNvcmRzVGFi
bGVTY2hlbWFTdHJpbmc7CiB9CiAKLXN0YXRpYyBjb25zdCBTdHJpbmcgdjJJbmRleFJlY29yZHNU
YWJsZVNjaGVtYShjb25zdCBTdHJpbmcmIHRhYmxlTmFtZSkKK3N0YXRpYyBjb25zdCBTdHJpbmcg
djJJbmRleFJlY29yZHNUYWJsZVNjaGVtYShBU0NJSUxpdGVyYWwgdGFibGVOYW1lKQogewogICAg
IHJldHVybiBtYWtlU3RyaW5nKCJDUkVBVEUgVEFCTEUgIiwgdGFibGVOYW1lLCAiIChpbmRleElE
IElOVEVHRVIgTk9UIE5VTEwgT04gQ09ORkxJQ1QgRkFJTCwgb2JqZWN0U3RvcmVJRCBJTlRFR0VS
IE5PVCBOVUxMIE9OIENPTkZMSUNUIEZBSUwsIGtleSBURVhUIENPTExBVEUgSURCS0VZIE5PVCBO
VUxMIE9OIENPTkZMSUNUIEZBSUwsIHZhbHVlIFRFWFQgQ09MTEFURSBJREJLRVkgTk9UIE5VTEwg
T04gQ09ORkxJQ1QgRkFJTCkiKTsKIH0KIAogc3RhdGljIGNvbnN0IFN0cmluZyYgdjJJbmRleFJl
Y29yZHNUYWJsZVNjaGVtYSgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4g
djJJbmRleFJlY29yZHNUYWJsZVNjaGVtYVN0cmluZyh2MkluZGV4UmVjb3Jkc1RhYmxlU2NoZW1h
KCJJbmRleFJlY29yZHMiKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gdjJJ
bmRleFJlY29yZHNUYWJsZVNjaGVtYVN0cmluZyh2MkluZGV4UmVjb3Jkc1RhYmxlU2NoZW1hKCJJ
bmRleFJlY29yZHMiX3MpKTsKICAgICByZXR1cm4gdjJJbmRleFJlY29yZHNUYWJsZVNjaGVtYVN0
cmluZzsKIH0KIAogc3RhdGljIGNvbnN0IFN0cmluZyYgdjJJbmRleFJlY29yZHNUYWJsZVNjaGVt
YUFsdGVybmF0ZSgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gdjJJbmRl
eFJlY29yZHNUYWJsZVNjaGVtYVN0cmluZyh2MkluZGV4UmVjb3Jkc1RhYmxlU2NoZW1hKCJcIklu
ZGV4UmVjb3Jkc1wiIikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHYySW5k
ZXhSZWNvcmRzVGFibGVTY2hlbWFTdHJpbmcodjJJbmRleFJlY29yZHNUYWJsZVNjaGVtYSgiXCJJ
bmRleFJlY29yZHNcIiJfcykpOwogICAgIHJldHVybiB2MkluZGV4UmVjb3Jkc1RhYmxlU2NoZW1h
U3RyaW5nOwogfQogCkBAIC05MTQsNyArOTE0LDcgQEAgU3RyaW5nIFNRTGl0ZUlEQkJhY2tpbmdT
dG9yZTo6ZW5jb2RlRGF0YWJhc2VOYW1lKGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lKQogewog
ICAgIEFTU0VSVCghZGF0YWJhc2VOYW1lLmlzRW1wdHkoKSk7CiAgICAgaWYgKGRhdGFiYXNlTmFt
ZS5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiAiJTAwIjsKKyAgICAgICAgcmV0dXJuICIlMDAi
X3M7CiAKICAgICBTdHJpbmcgZmlsZW5hbWUgPSBGaWxlU3lzdGVtOjplbmNvZGVGb3JGaWxlTmFt
ZShkYXRhYmFzZU5hbWUpOwogICAgIGZpbGVuYW1lLnJlcGxhY2VXaXRoTGl0ZXJhbCgnLicsICIl
MkUiKTsKQEAgLTkzNSw3ICs5MzUsNyBAQCBTdHJpbmcgU1FMaXRlSURCQmFja2luZ1N0b3JlOjpk
ZWNvZGVEYXRhYmFzZU5hbWUoY29uc3QgU3RyaW5nJiBlbmNvZGVkTmFtZSkKIAogU3RyaW5nIFNR
TGl0ZUlEQkJhY2tpbmdTdG9yZTo6ZnVsbERhdGFiYXNlUGF0aEZvckRpcmVjdG9yeShjb25zdCBT
dHJpbmcmIGZ1bGxEYXRhYmFzZURpcmVjdG9yeSkKIHsKLSAgICByZXR1cm4gRmlsZVN5c3RlbTo6
cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KGZ1bGxEYXRhYmFzZURpcmVjdG9yeSwgIkluZGV4ZWRE
Qi5zcWxpdGUzIik7CisgICAgcmV0dXJuIEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBv
bmVudChmdWxsRGF0YWJhc2VEaXJlY3RvcnksICJJbmRleGVkREIuc3FsaXRlMyJfcyk7CiB9CiAK
IFN0cmluZyBTUUxpdGVJREJCYWNraW5nU3RvcmU6OmZ1bGxEYXRhYmFzZVBhdGgoKSBjb25zdApA
QCAtOTk2LDcgKzk5Niw3IEBAIElEQkVycm9yIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6Z2V0T3JF
c3RhYmxpc2hEYXRhYmFzZUluZm8oSURCRGF0YWJhc2VJbmZvJiBpbmZvCiAgICAgbV9zcWxpdGVE
Qi0+ZGlzYWJsZVRocmVhZGluZ0NoZWNrcygpOwogICAgIG1fc3FsaXRlREItPmVuYWJsZUF1dG9t
YXRpY1dBTFRydW5jYXRpb24oKTsKIAotICAgIG1fc3FsaXRlREItPnNldENvbGxhdGlvbkZ1bmN0
aW9uKCJJREJLRVkiLCBbXShpbnQgYUxlbmd0aCwgY29uc3Qgdm9pZCogYSwgaW50IGJMZW5ndGgs
IGNvbnN0IHZvaWQqIGIpIHsKKyAgICBtX3NxbGl0ZURCLT5zZXRDb2xsYXRpb25GdW5jdGlvbigi
SURCS0VZIl9zLCBbXShpbnQgYUxlbmd0aCwgY29uc3Qgdm9pZCogYSwgaW50IGJMZW5ndGgsIGNv
bnN0IHZvaWQqIGIpIHsKICAgICAgICAgcmV0dXJuIGlkYktleUNvbGxhdGUoYUxlbmd0aCwgYSwg
Ykxlbmd0aCwgYik7CiAgICAgfSk7CiAKQEAgLTE5MDksNyArMTkwOSw3IEBAIElEQkVycm9yIFNR
TGl0ZUlEQkJhY2tpbmdTdG9yZTo6dXBkYXRlQWxsSW5kZXhlc0ZvckFkZFJlY29yZChjb25zdCBJ
REJPYmplY3RTdG9yCiAgICAgICAgIEFTU0VSVChpbmRleEl0ZXJhdG9yICE9IGluZGV4TWFwLmVu
ZCgpKTsKIAogICAgICAgICBpZiAoaW5kZXhJdGVyYXRvciA9PSBpbmRleE1hcC5lbmQoKSkgewot
ICAgICAgICAgICAgZXJyb3IgPSBJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiTWlzc2lu
ZyBpbmRleCBtZXRhZGF0YSIgfTsKKyAgICAgICAgICAgIGVycm9yID0gSURCRXJyb3IgeyBJbnZh
bGlkU3RhdGVFcnJvciwgIk1pc3NpbmcgaW5kZXggbWV0YWRhdGEiX3MgfTsKICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICB9CiAKQEAgLTI1NzMsNyArMjU3Myw3IEBAIElEQkVycm9yIFNRTGl0
ZUlEQkJhY2tpbmdTdG9yZTo6dW5jaGVja2VkR2V0S2V5R2VuZXJhdG9yVmFsdWUoaW50NjRfdCBv
YmplY3RTdG9yCiAKICAgICBpbnQ2NF90IHZhbHVlID0gc3FsLT5jb2x1bW5JbnQ2NCgwKTsKICAg
ICBpZiAodmFsdWUgPCAwKQotICAgICAgICByZXR1cm4gSURCRXJyb3IgeyBDb25zdHJhaW50RXJy
b3IsICJDdXJyZW50IGtleSBnZW5lcmF0b3IgdmFsdWUgZnJvbSBkYXRhYmFzZSBpcyBpbnZhbGlk
IiB9OworICAgICAgICByZXR1cm4gSURCRXJyb3IgeyBDb25zdHJhaW50RXJyb3IsICJDdXJyZW50
IGtleSBnZW5lcmF0b3IgdmFsdWUgZnJvbSBkYXRhYmFzZSBpcyBpbnZhbGlkIl9zIH07CiAKICAg
ICBvdXRWYWx1ZSA9IHZhbHVlOwogICAgIHJldHVybiBJREJFcnJvciB7IH07CkBAIC0yNTg3LDcg
KzI1ODcsNyBAQCBJREJFcnJvciBTUUxpdGVJREJCYWNraW5nU3RvcmU6OnVuY2hlY2tlZFNldEtl
eUdlbmVyYXRvclZhbHVlKGludDY0X3Qgb2JqZWN0U3RvcgogICAgICAgICB8fCBzcWwtPmJpbmRJ
bnQ2NCgyLCB2YWx1ZSkgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8IHNxbC0+c3RlcCgpICE9IFNR
TElURV9ET05FKSB7CiAgICAgICAgIExPR19FUlJPUigiQ291bGQgbm90IHVwZGF0ZSBrZXkgZ2Vu
ZXJhdG9yIHZhbHVlICglaSkgLSAlcyIsIG1fc3FsaXRlREItPmxhc3RFcnJvcigpLCBtX3NxbGl0
ZURCLT5sYXN0RXJyb3JNc2coKSk7Ci0gICAgICAgIHJldHVybiBJREJFcnJvciB7IENvbnN0cmFp
bnRFcnJvciwgIkVycm9yIHN0b3JpbmcgbmV3IGtleSBnZW5lcmF0b3IgdmFsdWUgaW4gZGF0YWJh
c2UiIH07CisgICAgICAgIHJldHVybiBJREJFcnJvciB7IENvbnN0cmFpbnRFcnJvciwgIkVycm9y
IHN0b3JpbmcgbmV3IGtleSBnZW5lcmF0b3IgdmFsdWUgaW4gZGF0YWJhc2UiX3MgfTsKICAgICB9
CiAKICAgICByZXR1cm4gSURCRXJyb3IgeyB9OwpAQCAtMjYxNSw3ICsyNjE1LDcgQEAgSURCRXJy
b3IgU1FMaXRlSURCQmFja2luZ1N0b3JlOjpnZW5lcmF0ZUtleU51bWJlcihjb25zdCBJREJSZXNv
dXJjZUlkZW50aWZpZXImIHQKICAgICAgICAgcmV0dXJuIGVycm9yOwogCiAgICAgaWYgKGN1cnJl
bnRWYWx1ZSArIDEgPiBtYXhHZW5lcmF0b3JWYWx1ZSkKLSAgICAgICAgcmV0dXJuIElEQkVycm9y
IHsgQ29uc3RyYWludEVycm9yLCAiQ2Fubm90IGdlbmVyYXRlIG5ldyBrZXkgdmFsdWUgb3ZlciAy
XjUzIGZvciBvYmplY3Qgc3RvcmUgb3BlcmF0aW9uIiB9OworICAgICAgICByZXR1cm4gSURCRXJy
b3IgeyBDb25zdHJhaW50RXJyb3IsICJDYW5ub3QgZ2VuZXJhdGUgbmV3IGtleSB2YWx1ZSBvdmVy
IDJeNTMgZm9yIG9iamVjdCBzdG9yZSBvcGVyYXRpb24iX3MgfTsKIAogICAgIGdlbmVyYXRlZEtl
eSA9IGN1cnJlbnRWYWx1ZSArIDE7CiAgICAgcmV0dXJuIHVuY2hlY2tlZFNldEtleUdlbmVyYXRv
clZhbHVlKG9iamVjdFN0b3JlSUQsIGdlbmVyYXRlZEtleSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNl
LmNwcAppbmRleCAyM2U2ZDNmNWM4YmM2Mzc2YzMwYzY1YzRmNjcyZWU2NGMzZmFmNmYxLi43NGFk
ZWVlM2UzMWFhYWQyZDNkOTVjMjg1NWQ1MDhiOGE1NzZkMGIzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRh
YmFzZS5jcHAKQEAgLTU4OSw3ICs1ODksNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpjcmVh
dGVPYmplY3RTdG9yZShVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uJiB0cmFuc2FjdAogICAg
ICAgICBhdXRvIHRhc2tTaXplID0gZGVmYXVsdFdyaXRlT3BlcmF0aW9uQ29zdCArIGVzdGltYXRl
U2l6ZShpbmZvKTsKICAgICAgICAgbV9tYW5hZ2VyLT5yZXF1ZXN0U3BhY2UobV9pZGVudGlmaWVy
Lm9yaWdpbigpLCB0YXNrU2l6ZSwgW3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0s
IHdlYWtUcmFuc2FjdGlvbiA9IFdlYWtQdHIgeyB0cmFuc2FjdGlvbiB9LCBpbmZvLCBjYWxsYmFj
ayA9IFdURk1vdmUoY2FsbGJhY2spXShib29sIGdyYW50ZWQpIG11dGFibGUgewogICAgICAgICAg
ICAgaWYgKCF3ZWFrVGhpcyB8fCAhd2Vha1RyYW5zYWN0aW9uKQotICAgICAgICAgICAgICAgIHJl
dHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJhc2Ugb3Ig
dHJhbnNhY3Rpb24gaXMgY2xvc2VkIiB9KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJh
Y2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkRhdGFiYXNlIG9yIHRyYW5zYWN0aW9u
IGlzIGNsb3NlZCJfcyB9KTsKICAgICAgICAgICAgIGNyZWF0ZU9iamVjdFN0b3JlKCp3ZWFrVHJh
bnNhY3Rpb24sIGluZm8sIFdURk1vdmUoY2FsbGJhY2spLCBncmFudGVkID8gU3BhY2VDaGVja1Jl
c3VsdDo6UGFzcyA6IFNwYWNlQ2hlY2tSZXN1bHQ6OkZhaWwpOwogICAgICAgICB9KTsKICAgICAg
ICAgcmV0dXJuOwpAQCAtNjAxLDcgKzYwMSw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmNy
ZWF0ZU9iamVjdFN0b3JlKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mIHRyYW5zYWN0CiAg
ICAgfQogCiAgICAgaWYgKCFtX2JhY2tpbmdTdG9yZSkKLSAgICAgICAgcmV0dXJuIGNhbGxiYWNr
KElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3JlIGhhcyBjbG9zZWQi
IH0pOworICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJv
ciwgIkJhY2tpbmcgc3RvcmUgaGFzIGNsb3NlZCJfcyB9KTsKIAogICAgIGF1dG8gZXJyb3IgPSBt
X2JhY2tpbmdTdG9yZS0+Y3JlYXRlT2JqZWN0U3RvcmUodHJhbnNhY3Rpb24uaW5mbygpLmlkZW50
aWZpZXIoKSwgaW5mbyk7CiAgICAgaWYgKGVycm9yLmlzTnVsbCgpKQpAQCAtNjIxLDcgKzYyMSw3
IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmRlbGV0ZU9iamVjdFN0b3JlKFVuaXF1ZUlEQkRh
dGFiYXNlVHJhbnNhY3Rpb24mIHRyYW5zYWN0CiAKICAgICAgICAgbV9tYW5hZ2VyLT5yZXF1ZXN0
U3BhY2UobV9pZGVudGlmaWVyLm9yaWdpbigpLCAwLCBbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRy
IHsgKnRoaXMgfSwgd2Vha1RyYW5zYWN0aW9uID0gV2Vha1B0ciB7IHRyYW5zYWN0aW9uIH0sIG9i
amVjdFN0b3JlTmFtZSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oYm9vbCBncmFudGVk
KSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlmICghd2Vha1RoaXMgfHwgIXdlYWtUcmFuc2FjdGlv
bikKLSAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3Rh
dGVFcnJvciwgIkRhdGFiYXNlIG9yIHRyYW5zYWN0aW9uIGlzIGNsb3NlZCIgfSk7CisgICAgICAg
ICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJE
YXRhYmFzZSBvciB0cmFuc2FjdGlvbiBpcyBjbG9zZWQiX3MgfSk7CiAKICAgICAgICAgICAgIGRl
bGV0ZU9iamVjdFN0b3JlKCp3ZWFrVHJhbnNhY3Rpb24sIG9iamVjdFN0b3JlTmFtZSwgV1RGTW92
ZShjYWxsYmFjayksIGdyYW50ZWQgPyBTcGFjZUNoZWNrUmVzdWx0OjpQYXNzIDogU3BhY2VDaGVj
a1Jlc3VsdDo6RmFpbCk7CiAgICAgICAgIH0pOwpAQCAtNjM2LDcgKzYzNiw3IEBAIHZvaWQgVW5p
cXVlSURCRGF0YWJhc2U6OmRlbGV0ZU9iamVjdFN0b3JlKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNh
Y3Rpb24mIHRyYW5zYWN0CiAgICAgfQogCiAgICAgaWYgKCFtX2JhY2tpbmdTdG9yZSkKLSAgICAg
ICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5n
IHN0b3JlIGlzIGNsb3NlZCIgfSk7CisgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7
IEludmFsaWRTdGF0ZUVycm9yLCAiQmFja2luZyBzdG9yZSBpcyBjbG9zZWQiX3MgfSk7CiAKICAg
ICBhdXRvIGVycm9yID0gbV9iYWNraW5nU3RvcmUtPmRlbGV0ZU9iamVjdFN0b3JlKHRyYW5zYWN0
aW9uLmluZm8oKS5pZGVudGlmaWVyKCksIGluZm8tPmlkZW50aWZpZXIoKSk7CiAgICAgaWYgKGVy
cm9yLmlzTnVsbCgpKQpAQCAtNjU3LDcgKzY1Nyw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6
OnJlbmFtZU9iamVjdFN0b3JlKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mIHRyYW5zYWN0
CiAgICAgICAgIGF1dG8gdGFza1NpemUgPSBkZWZhdWx0V3JpdGVPcGVyYXRpb25Db3N0ICsgbmV3
TmFtZS5zaXplSW5CeXRlcygpOwogICAgICAgICBtX21hbmFnZXItPnJlcXVlc3RTcGFjZShtX2lk
ZW50aWZpZXIub3JpZ2luKCksIHRhc2tTaXplLCBbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsg
KnRoaXMgfSwgd2Vha1RyYW5zYWN0aW9uID0gV2Vha1B0ciB7IHRyYW5zYWN0aW9uIH0sIG9iamVj
dFN0b3JlSWRlbnRpZmllciwgbmV3TmFtZSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0o
Ym9vbCBncmFudGVkKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlmICghd2Vha1RoaXMgfHwgIXdl
YWtUcmFuc2FjdGlvbikKLSAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3Ig
eyBJbnZhbGlkU3RhdGVFcnJvciwgIkRhdGFiYXNlIG9yIHRyYW5zYWN0aW9uIGlzIGNsb3NlZCIg
fSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0
YXRlRXJyb3IsICJEYXRhYmFzZSBvciB0cmFuc2FjdGlvbiBpcyBjbG9zZWQiX3MgfSk7CiAKICAg
ICAgICAgICAgIHJlbmFtZU9iamVjdFN0b3JlKCp3ZWFrVHJhbnNhY3Rpb24sIG9iamVjdFN0b3Jl
SWRlbnRpZmllciwgbmV3TmFtZSwgV1RGTW92ZShjYWxsYmFjayksIGdyYW50ZWQgPyBTcGFjZUNo
ZWNrUmVzdWx0OjpQYXNzIDogU3BhY2VDaGVja1Jlc3VsdDo6RmFpbCk7CiAgICAgICAgIH0pOwpA
QCAtNjc2LDcgKzY3Niw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OnJlbmFtZU9iamVjdFN0
b3JlKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mIHRyYW5zYWN0CiAgICAgfQogCiAgICAg
aWYgKCFtX2JhY2tpbmdTdG9yZSkKLSAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsg
SW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3JlIGlzIGNsb3NlZCIgfSk7CisgICAgICAg
IHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiQmFja2luZyBz
dG9yZSBpcyBjbG9zZWQiX3MgfSk7CiAKICAgICBhdXRvIGVycm9yID0gbV9iYWNraW5nU3RvcmUt
PnJlbmFtZU9iamVjdFN0b3JlKHRyYW5zYWN0aW9uLmluZm8oKS5pZGVudGlmaWVyKCksIG9iamVj
dFN0b3JlSWRlbnRpZmllciwgbmV3TmFtZSk7CiAgICAgaWYgKGVycm9yLmlzTnVsbCgpKQpAQCAt
Njk2LDcgKzY5Niw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmNsZWFyT2JqZWN0U3RvcmUo
VW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbiYgdHJhbnNhY3RpCiAKICAgICAgICAgbV9tYW5h
Z2VyLT5yZXF1ZXN0U3BhY2UobV9pZGVudGlmaWVyLm9yaWdpbigpLCAwLCBbdGhpcywgd2Vha1Ro
aXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgd2Vha1RyYW5zYWN0aW9uID0gV2Vha1B0ciB7IHRyYW5z
YWN0aW9uIH0sIG9iamVjdFN0b3JlSWRlbnRpZmllciwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxi
YWNrKV0oYm9vbCBncmFudGVkKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlmICghd2Vha1RoaXMg
fHwgIXdlYWtUcmFuc2FjdGlvbikKLSAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soSURC
RXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkRhdGFiYXNlIG9yIHRyYW5zYWN0aW9uIGlzIGNs
b3NlZCIgfSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52
YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBvciB0cmFuc2FjdGlvbiBpcyBjbG9zZWQiX3MgfSk7
CiAKICAgICAgICAgICAgIGNsZWFyT2JqZWN0U3RvcmUoKndlYWtUcmFuc2FjdGlvbiwgb2JqZWN0
U3RvcmVJZGVudGlmaWVyLCBXVEZNb3ZlKGNhbGxiYWNrKSwgZ3JhbnRlZCA/IFNwYWNlQ2hlY2tS
ZXN1bHQ6OlBhc3MgOiBTcGFjZUNoZWNrUmVzdWx0OjpGYWlsKTsKICAgICAgICAgfSk7CkBAIC03
MDUsNyArNzA1LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6Y2xlYXJPYmplY3RTdG9yZShV
bmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uJiB0cmFuc2FjdGkKIAogICAgIEFTU0VSVChzcGFj
ZUNoZWNrUmVzdWx0ID09IFNwYWNlQ2hlY2tSZXN1bHQ6OlBhc3MpOwogICAgIGlmICghbV9iYWNr
aW5nU3RvcmUpCi0gICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0
ZUVycm9yLCAiQmFja2luZyBzdG9yZSBpcyBjbG9zZWQiIH0pOworICAgICAgICByZXR1cm4gY2Fs
bGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xv
c2VkIl9zIH0pOwogCiAgICAgYXV0byBlcnJvciA9IG1fYmFja2luZ1N0b3JlLT5jbGVhck9iamVj
dFN0b3JlKHRyYW5zYWN0aW9uLmluZm8oKS5pZGVudGlmaWVyKCksIG9iamVjdFN0b3JlSWRlbnRp
Zmllcik7CiAgICAgY2FsbGJhY2soZXJyb3IpOwpAQCAtNzIzLDcgKzcyMyw3IEBAIHZvaWQgVW5p
cXVlSURCRGF0YWJhc2U6OmNyZWF0ZUluZGV4KFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24m
IHRyYW5zYWN0aW9uLCBjCiAgICAgICAgIGF1dG8gdGFza1NpemUgPSBkZWZhdWx0V3JpdGVPcGVy
YXRpb25Db3N0ICsgZXN0aW1hdGVTaXplKGluZm8pOwogICAgICAgICBtX21hbmFnZXItPnJlcXVl
c3RTcGFjZShtX2lkZW50aWZpZXIub3JpZ2luKCksIHRhc2tTaXplLCBbdGhpcywgd2Vha1RoaXMg
PSBXZWFrUHRyIHsgKnRoaXMgfSwgd2Vha1RyYW5zYWN0aW9uID0gV2Vha1B0ciB7IHRyYW5zYWN0
aW9uIH0sIGluZm8sIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKGJvb2wgZ3JhbnRlZCkg
bXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAoIXdlYWtUaGlzIHx8ICF3ZWFrVHJhbnNhY3Rpb24p
Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRl
RXJyb3IsICJEYXRhYmFzZSBvciB0cmFuc2FjdGlvbiBpcyBjbG9zZWQiIH0pOworICAgICAgICAg
ICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0
YWJhc2Ugb3IgdHJhbnNhY3Rpb24gaXMgY2xvc2VkIl9zIH0pOwogCiAgICAgICAgICAgICBjcmVh
dGVJbmRleCgqd2Vha1RyYW5zYWN0aW9uLCBpbmZvLCBXVEZNb3ZlKGNhbGxiYWNrKSwgZ3JhbnRl
ZCA/IFNwYWNlQ2hlY2tSZXN1bHQ6OlBhc3MgOiBTcGFjZUNoZWNrUmVzdWx0OjpGYWlsKTsKICAg
ICAgICAgfSk7CkBAIC03MzYsNyArNzM2LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6Y3Jl
YXRlSW5kZXgoVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24sIGMKICAg
ICB9CiAKICAgICBpZiAoIW1fYmFja2luZ1N0b3JlKQotICAgICAgICByZXR1cm4gY2FsbGJhY2so
SURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xvc2VkIiB9
KTsKKyAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3Is
ICJCYWNraW5nIHN0b3JlIGlzIGNsb3NlZCJfcyB9KTsKIAogICAgIGF1dG8gZXJyb3IgPSBtX2Jh
Y2tpbmdTdG9yZS0+Y3JlYXRlSW5kZXgodHJhbnNhY3Rpb24uaW5mbygpLmlkZW50aWZpZXIoKSwg
aW5mbyk7CiAgICAgaWYgKGVycm9yLmlzTnVsbCgpKSB7CkBAIC03NjEsNyArNzYxLDcgQEAgdm9p
ZCBVbmlxdWVJREJEYXRhYmFzZTo6ZGVsZXRlSW5kZXgoVW5pcXVlSURCRGF0YWJhc2VUcmFuc2Fj
dGlvbiYgdHJhbnNhY3Rpb24sIHUKIAogICAgICAgICBtX21hbmFnZXItPnJlcXVlc3RTcGFjZSht
X2lkZW50aWZpZXIub3JpZ2luKCksIDAsIFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhp
cyB9LCB3ZWFrVHJhbnNhY3Rpb24gPSBXZWFrUHRyIHsgdHJhbnNhY3Rpb24gfSwgb2JqZWN0U3Rv
cmVJZGVudGlmaWVyLCBpbmRleE5hbWUsIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKGJv
b2wgZ3JhbnRlZCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAoIXdlYWtUaGlzIHx8ICF3ZWFr
VHJhbnNhY3Rpb24pCi0gICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsg
SW52YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBvciB0cmFuc2FjdGlvbiBpcyBjbG9zZWQiIH0p
OworICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0
ZUVycm9yLCAiRGF0YWJhc2Ugb3IgdHJhbnNhY3Rpb24gaXMgY2xvc2VkIl9zIH0pOwogCiAgICAg
ICAgICAgICBkZWxldGVJbmRleCgqd2Vha1RyYW5zYWN0aW9uLCBvYmplY3RTdG9yZUlkZW50aWZp
ZXIsIGluZGV4TmFtZSwgV1RGTW92ZShjYWxsYmFjayksIGdyYW50ZWQgPyBTcGFjZUNoZWNrUmVz
dWx0OjpQYXNzIDogU3BhY2VDaGVja1Jlc3VsdDo6RmFpbCk7CiAgICAgICAgIH0pOwpAQCAtNzcw
LDcgKzc3MCw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmRlbGV0ZUluZGV4KFVuaXF1ZUlE
QkRhdGFiYXNlVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uLCB1CiAKICAgICBBU1NFUlQoc3BhY2VD
aGVja1Jlc3VsdCA9PSBTcGFjZUNoZWNrUmVzdWx0OjpQYXNzKTsKICAgICBpZiAoIW1fYmFja2lu
Z1N0b3JlKQotICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVF
cnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xvc2VkIiB9KTsKKyAgICAgICAgcmV0dXJuIGNhbGxi
YWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3JlIGlzIGNsb3Nl
ZCJfcyB9KTsKIAogICAgIGF1dG8qIG9iamVjdFN0b3JlSW5mbyA9IG1fZGF0YWJhc2VJbmZvLT5p
bmZvRm9yRXhpc3RpbmdPYmplY3RTdG9yZShvYmplY3RTdG9yZUlkZW50aWZpZXIpOwogICAgIGlm
ICghb2JqZWN0U3RvcmVJbmZvKSB7CkBAIC04MDQsNyArODA0LDcgQEAgdm9pZCBVbmlxdWVJREJE
YXRhYmFzZTo6cmVuYW1lSW5kZXgoVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbiYgdHJhbnNh
Y3Rpb24sIHUKICAgICAgICAgYXV0byB0YXNrU2l6ZSA9IGRlZmF1bHRXcml0ZU9wZXJhdGlvbkNv
c3QgKyBuZXdOYW1lLnNpemVJbkJ5dGVzKCk7CiAgICAgICAgIG1fbWFuYWdlci0+cmVxdWVzdFNw
YWNlKG1faWRlbnRpZmllci5vcmlnaW4oKSwgdGFza1NpemUsIFt0aGlzLCB3ZWFrVGhpcyA9IFdl
YWtQdHIgeyAqdGhpcyB9LCB3ZWFrVHJhbnNhY3Rpb24gPSBXZWFrUHRyIHsgdHJhbnNhY3Rpb24g
fSwgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBpbmRleElkZW50aWZpZXIsIG5ld05hbWUsIGNhbGxi
YWNrID0gV1RGTW92ZShjYWxsYmFjayldKGJvb2wgZ3JhbnRlZCkgbXV0YWJsZSB7CiAgICAgICAg
ICAgICBpZiAoIXdlYWtUaGlzIHx8ICF3ZWFrVHJhbnNhY3Rpb24pCi0gICAgICAgICAgICAgICAg
cmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBv
ciB0cmFuc2FjdGlvbiBpcyBjbG9zZWQiIH0pOworICAgICAgICAgICAgICAgIHJldHVybiBjYWxs
YmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJhc2Ugb3IgdHJhbnNhY3Rp
b24gaXMgY2xvc2VkIl9zIH0pOwogCiAgICAgICAgICAgICByZW5hbWVJbmRleCgqd2Vha1RyYW5z
YWN0aW9uLCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGluZGV4SWRlbnRpZmllciwgbmV3TmFtZSwg
V1RGTW92ZShjYWxsYmFjayksIGdyYW50ZWQgPyBTcGFjZUNoZWNrUmVzdWx0OjpQYXNzIDogU3Bh
Y2VDaGVja1Jlc3VsdDo6RmFpbCk7CiAgICAgICAgIH0pOwpAQCAtODE3LDcgKzgxNyw3IEBAIHZv
aWQgVW5pcXVlSURCRGF0YWJhc2U6OnJlbmFtZUluZGV4KFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNh
Y3Rpb24mIHRyYW5zYWN0aW9uLCB1CiAgICAgfQogCiAgICAgaWYgKCFtX2JhY2tpbmdTdG9yZSkK
LSAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJC
YWNraW5nIHN0b3JlIGlzIGNsb3NlZCIgfSk7CisgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJF
cnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiQmFja2luZyBzdG9yZSBpcyBjbG9zZWQiX3MgfSk7
CiAKICAgICBhdXRvKiBvYmplY3RTdG9yZUluZm8gPSBtX2RhdGFiYXNlSW5mby0+aW5mb0ZvckV4
aXN0aW5nT2JqZWN0U3RvcmUob2JqZWN0U3RvcmVJZGVudGlmaWVyKTsKICAgICBpZiAoIW9iamVj
dFN0b3JlSW5mbykgewpAQCAtODQ2LDcgKzg0Niw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6
OnB1dE9yQWRkKGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0YSwgY29uc3QgSURCS2V5
CiAgICAgQVNTRVJUKG1fZGF0YWJhc2VJbmZvKTsKIAogICAgIGlmICghbV9iYWNraW5nU3RvcmUp
Ci0gICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAi
QmFja2luZyBzdG9yZSBpcyBjbG9zZWQiIH0sIGtleURhdGEpOworICAgICAgICByZXR1cm4gY2Fs
bGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xv
c2VkIl9zIH0sIGtleURhdGEpOwogCiAgICAgYXV0byBvYmplY3RTdG9yZUlkZW50aWZpZXIgPSBy
ZXF1ZXN0RGF0YS5vYmplY3RTdG9yZUlkZW50aWZpZXIoKTsKICAgICBhdXRvKiBvYmplY3RTdG9y
ZUluZm8gPSBtX2JhY2tpbmdTdG9yZS0+aW5mb0Zvck9iamVjdFN0b3JlKG9iamVjdFN0b3JlSWRl
bnRpZmllcik7CkBAIC05MDEsNyArOTAxLDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6cHV0
T3JBZGQoY29uc3QgSURCUmVxdWVzdERhdGEmIHJlcXVlc3REYXRhLCBjb25zdCBJREJLZXkKICAg
ICBMT0coSW5kZXhlZERCLCAiVW5pcXVlSURCRGF0YWJhc2U6OnB1dE9yQWRkIHF1b3RhIGNoZWNr
IHdpdGggdGFzayBzaXplOiAlIiBQUkl1NjQgIiBrZXkgc2l6ZTogJSIgUFJJdTY0ICIgdmFsdWUg
c2l6ZTogJSIgUFJJdTY0ICIgaW5kZXggc2l6ZTogJSIgUFJJdTY0LCB0YXNrU2l6ZSwga2V5U2l6
ZSwgdmFsdWVTaXplLCBpbmRleFNpemUpOwogICAgIG1fbWFuYWdlci0+cmVxdWVzdFNwYWNlKG1f
aWRlbnRpZmllci5vcmlnaW4oKSwgdGFza1NpemUsIFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIg
eyAqdGhpcyB9LCByZXF1ZXN0RGF0YSwgdXNlZEtleSwgdmFsdWUsIG92ZXJ3cml0ZU1vZGUsIGNh
bGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayksIHVzZWRLZXlJc0dlbmVyYXRlZCwgaW5kZXhLZXlz
LCBvYmplY3RTdG9yZUluZm8gPSAqb2JqZWN0U3RvcmVJbmZvXShib29sIGdyYW50ZWQpIG11dGFi
bGUgewogICAgICAgICBpZiAoIXdlYWtUaGlzKQotICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNr
KElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBpcyBjbG9zZWQiIH0sIHVz
ZWRLZXkpOworICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0
YXRlRXJyb3IsICJEYXRhYmFzZSBpcyBjbG9zZWQiX3MgfSwgdXNlZEtleSk7CiAKICAgICAgICAg
cHV0T3JBZGRBZnRlclNwYWNlQ2hlY2socmVxdWVzdERhdGEsIHVzZWRLZXksIHZhbHVlLCBvdmVy
d3JpdGVNb2RlLCBXVEZNb3ZlKGNhbGxiYWNrKSwgdXNlZEtleUlzR2VuZXJhdGVkLCBpbmRleEtl
eXMsIG9iamVjdFN0b3JlSW5mbywgZ3JhbnRlZCA/IFNwYWNlQ2hlY2tSZXN1bHQ6OlBhc3MgOiBT
cGFjZUNoZWNrUmVzdWx0OjpGYWlsKTsKICAgICB9KTsKQEAgLTkxMyw3ICs5MTMsNyBAQCB2b2lk
IFVuaXF1ZUlEQkRhdGFiYXNlOjpwdXRPckFkZEFmdGVyU3BhY2VDaGVjayhjb25zdCBJREJSZXF1
ZXN0RGF0YSYgcmVxdWVzdERhdAogICAgIEFTU0VSVChtX2RhdGFiYXNlSW5mbyk7CiAKICAgICBp
ZiAoIW1fYmFja2luZ1N0b3JlKQotICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJ
bnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xvc2VkIiB9LCBrZXlEYXRhKTsK
KyAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJC
YWNraW5nIHN0b3JlIGlzIGNsb3NlZCJfcyB9LCBrZXlEYXRhKTsKIAogICAgIHVpbnQ2NF90IGtl
eU51bWJlciA9IGlzS2V5R2VuZXJhdGVkID8ga2V5RGF0YS5udW1iZXIoKSA6IDA7CiAgICAgYXV0
byBvYmplY3RTdG9yZUlkZW50aWZpZXIgPSBvYmplY3RTdG9yZUluZm8uaWRlbnRpZmllcigpOwpA
QCAtOTUzLDcgKzk1Myw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmdldFJlY29yZChjb25z
dCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdERhdGEsIGNvbnN0IElEQkdlCiAKICAgICAgICAgbV9t
YW5hZ2VyLT5yZXF1ZXN0U3BhY2UobV9pZGVudGlmaWVyLm9yaWdpbigpLCAwLCBbdGhpcywgd2Vh
a1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgcmVxdWVzdERhdGEsIGdldFJlY29yZERhdGEsIGNh
bGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKGJvb2wgZ3JhbnRlZCkgbXV0YWJsZSB7CiAgICAg
ICAgICAgICBpZiAoIXdlYWtUaGlzKQotICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhJ
REJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJhc2UgaXMgY2xvc2VkIiB9LCBJREJH
ZXRSZXN1bHQgeyB9KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3Ig
eyBJbnZhbGlkU3RhdGVFcnJvciwgIkRhdGFiYXNlIGlzIGNsb3NlZCJfcyB9LCBJREJHZXRSZXN1
bHQgeyB9KTsKIAogICAgICAgICAgICAgZ2V0UmVjb3JkKHJlcXVlc3REYXRhLCBnZXRSZWNvcmRE
YXRhLCBXVEZNb3ZlKGNhbGxiYWNrKSwgZ3JhbnRlZCA/IFNwYWNlQ2hlY2tSZXN1bHQ6OlBhc3Mg
OiBTcGFjZUNoZWNrUmVzdWx0OjpGYWlsKTsKICAgICAgICAgfSk7CkBAIC05NjIsNyArOTYyLDcg
QEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6Z2V0UmVjb3JkKGNvbnN0IElEQlJlcXVlc3REYXRh
JiByZXF1ZXN0RGF0YSwgY29uc3QgSURCR2UKIAogICAgIEFTU0VSVChzcGFjZUNoZWNrUmVzdWx0
ID09IFNwYWNlQ2hlY2tSZXN1bHQ6OlBhc3MpOwogICAgIGlmICghbV9iYWNraW5nU3RvcmUpCi0g
ICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiQmFj
a2luZyBzdG9yZSBpcyBjbG9zZWQiIH0sIElEQkdldFJlc3VsdCB7IH0pOworICAgICAgICByZXR1
cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUg
aXMgY2xvc2VkIl9zIH0sIElEQkdldFJlc3VsdCB7IH0pOwogCiAgICAgSURCR2V0UmVzdWx0IHJl
c3VsdDsKICAgICBJREJFcnJvciBlcnJvcjsKQEAgLTk4Niw3ICs5ODYsNyBAQCB2b2lkIFVuaXF1
ZUlEQkRhdGFiYXNlOjpnZXRBbGxSZWNvcmRzKGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0
RGF0YSwgY29uc3QgSQogCiAgICAgICAgIG1fbWFuYWdlci0+cmVxdWVzdFNwYWNlKG1faWRlbnRp
Zmllci5vcmlnaW4oKSwgMCwgW3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHJl
cXVlc3REYXRhLCBnZXRBbGxSZWNvcmRzRGF0YSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNr
KV0oYm9vbCBncmFudGVkKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlmICghd2Vha1RoaXMpCi0g
ICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJy
b3IsICJEYXRhYmFzZSBpcyBjbG9zZWQiIH0sIElEQkdldEFsbFJlc3VsdCB7IH0pOworICAgICAg
ICAgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAi
RGF0YWJhc2UgaXMgY2xvc2VkIl9zIH0sIElEQkdldEFsbFJlc3VsdCB7IH0pOwogCiAgICAgICAg
ICAgICBnZXRBbGxSZWNvcmRzKHJlcXVlc3REYXRhLCBnZXRBbGxSZWNvcmRzRGF0YSwgV1RGTW92
ZShjYWxsYmFjayksIGdyYW50ZWQgPyBTcGFjZUNoZWNrUmVzdWx0OjpQYXNzIDogU3BhY2VDaGVj
a1Jlc3VsdDo6RmFpbCk7CiAgICAgICAgIH0pOwpAQCAtOTk1LDcgKzk5NSw3IEBAIHZvaWQgVW5p
cXVlSURCRGF0YWJhc2U6OmdldEFsbFJlY29yZHMoY29uc3QgSURCUmVxdWVzdERhdGEmIHJlcXVl
c3REYXRhLCBjb25zdCBJCiAKICAgICBBU1NFUlQoc3BhY2VDaGVja1Jlc3VsdCA9PSBTcGFjZUNo
ZWNrUmVzdWx0OjpQYXNzKTsKICAgICBpZiAoIW1fYmFja2luZ1N0b3JlKQotICAgICAgICByZXR1
cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUg
aXMgY2xvc2VkIiB9LCBJREJHZXRBbGxSZXN1bHQgeyB9KTsKKyAgICAgICAgcmV0dXJuIGNhbGxi
YWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3JlIGlzIGNsb3Nl
ZCJfcyB9LCBJREJHZXRBbGxSZXN1bHQgeyB9KTsKIAogICAgIElEQkdldEFsbFJlc3VsdCByZXN1
bHQ7CiAgICAgYXV0byBlcnJvciA9IG1fYmFja2luZ1N0b3JlLT5nZXRBbGxSZWNvcmRzKHJlcXVl
c3REYXRhLnRyYW5zYWN0aW9uSWRlbnRpZmllcigpLCBnZXRBbGxSZWNvcmRzRGF0YSwgcmVzdWx0
KTsKQEAgLTEwMTQsNyArMTAxNCw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmdldENvdW50
KGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0YSwgY29uc3QgSURCS2V5CiAKICAgICAg
ICAgbV9tYW5hZ2VyLT5yZXF1ZXN0U3BhY2UobV9pZGVudGlmaWVyLm9yaWdpbigpLCAwLCBbdGhp
cywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgcmVxdWVzdERhdGEsIHJhbmdlLCBjYWxs
YmFjayA9IFdURk1vdmUoY2FsbGJhY2spXShib29sIGdyYW50ZWQpIG11dGFibGUgewogICAgICAg
ICAgICAgaWYgKCF3ZWFrVGhpcykKLSAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soSURC
RXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkRhdGFiYXNlIGlzIGNsb3NlZCIgfSwgMCk7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJy
b3IsICJEYXRhYmFzZSBpcyBjbG9zZWQiX3MgfSwgMCk7CiAKICAgICAgICAgICAgIGdldENvdW50
KHJlcXVlc3REYXRhLCByYW5nZSwgV1RGTW92ZShjYWxsYmFjayksIGdyYW50ZWQgPyBTcGFjZUNo
ZWNrUmVzdWx0OjpQYXNzIDogU3BhY2VDaGVja1Jlc3VsdDo6RmFpbCk7CiAgICAgICAgIH0pOwpA
QCAtMTAyMyw3ICsxMDIzLDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6Z2V0Q291bnQoY29u
c3QgSURCUmVxdWVzdERhdGEmIHJlcXVlc3REYXRhLCBjb25zdCBJREJLZXkKIAogICAgIEFTU0VS
VChzcGFjZUNoZWNrUmVzdWx0ID09IFNwYWNlQ2hlY2tSZXN1bHQ6OlBhc3MpOwogICAgIGlmICgh
bV9iYWNraW5nU3RvcmUpCi0gICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFs
aWRTdGF0ZUVycm9yLCAiQmFja2luZyBzdG9yZSBpcyBjbG9zZWQiIH0sIDApOworICAgICAgICBy
ZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3Rv
cmUgaXMgY2xvc2VkIl9zIH0sIDApOwogCiAgICAgdWludDY0X3QgY291bnQgPSAwOwogICAgIGF1
dG8gZXJyb3IgPSBtX2JhY2tpbmdTdG9yZS0+Z2V0Q291bnQocmVxdWVzdERhdGEudHJhbnNhY3Rp
b25JZGVudGlmaWVyKCksIHJlcXVlc3REYXRhLm9iamVjdFN0b3JlSWRlbnRpZmllcigpLCByZXF1
ZXN0RGF0YS5pbmRleElkZW50aWZpZXIoKSwgcmFuZ2UsIGNvdW50KTsKQEAgLTEwNDIsNyArMTA0
Miw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmRlbGV0ZVJlY29yZChjb25zdCBJREJSZXF1
ZXN0RGF0YSYgcmVxdWVzdERhdGEsIGNvbnN0IElECiAKICAgICAgICAgbV9tYW5hZ2VyLT5yZXF1
ZXN0U3BhY2UobV9pZGVudGlmaWVyLm9yaWdpbigpLCAwLCBbdGhpcywgd2Vha1RoaXMgPSBXZWFr
UHRyIHsgKnRoaXMgfSwgcmVxdWVzdERhdGEsIGtleVJhbmdlRGF0YSwgY2FsbGJhY2sgPSBXVEZN
b3ZlKGNhbGxiYWNrKV0oYm9vbCBncmFudGVkKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlmICgh
d2Vha1RoaXMpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52
YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBpcyBjbG9zZWQiIH0pOworICAgICAgICAgICAgICAg
IHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJhc2Ug
aXMgY2xvc2VkIl9zIH0pOwogCiAgICAgICAgICAgICBkZWxldGVSZWNvcmQocmVxdWVzdERhdGEs
IGtleVJhbmdlRGF0YSwgV1RGTW92ZShjYWxsYmFjayksIGdyYW50ZWQgPyBTcGFjZUNoZWNrUmVz
dWx0OjpQYXNzIDogU3BhY2VDaGVja1Jlc3VsdDo6RmFpbCk7CiAgICAgICAgIH0pOwpAQCAtMTA1
MSw3ICsxMDUxLDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6ZGVsZXRlUmVjb3JkKGNvbnN0
IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0YSwgY29uc3QgSUQKIAogICAgIEFTU0VSVChzcGFj
ZUNoZWNrUmVzdWx0ID09IFNwYWNlQ2hlY2tSZXN1bHQ6OlBhc3MpOwogICAgIGlmICghbV9iYWNr
aW5nU3RvcmUpCi0gICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0
ZUVycm9yLCAiQmFja2luZyBzdG9yZSBpcyBjbG9zZWQiIH0pOworICAgICAgICByZXR1cm4gY2Fs
bGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xv
c2VkIl9zIH0pOwogCiAgICAgYXV0byBlcnJvciA9IG1fYmFja2luZ1N0b3JlLT5kZWxldGVSYW5n
ZShyZXF1ZXN0RGF0YS50cmFuc2FjdGlvbklkZW50aWZpZXIoKSwgcmVxdWVzdERhdGEub2JqZWN0
U3RvcmVJZGVudGlmaWVyKCksIGtleVJhbmdlRGF0YSk7CiAKQEAgLTEwNjksNyArMTA2OSw3IEBA
IHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6Om9wZW5DdXJzb3IoY29uc3QgSURCUmVxdWVzdERhdGEm
IHJlcXVlc3REYXRhLCBjb25zdCBJREJDCiAKICAgICAgICAgbV9tYW5hZ2VyLT5yZXF1ZXN0U3Bh
Y2UobV9pZGVudGlmaWVyLm9yaWdpbigpLCAwLCBbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsg
KnRoaXMgfSwgcmVxdWVzdERhdGEsIGluZm8sIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayld
KGJvb2wgZ3JhbnRlZCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAoIXdlYWtUaGlzKQotICAg
ICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9y
LCAiRGF0YWJhc2Ugb3IgdHJhbnNhY3Rpb24gaXMgY2xvc2VkIiB9LCBJREJHZXRSZXN1bHQgeyB9
KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3Rh
dGVFcnJvciwgIkRhdGFiYXNlIG9yIHRyYW5zYWN0aW9uIGlzIGNsb3NlZCJfcyB9LCBJREJHZXRS
ZXN1bHQgeyB9KTsKIAogICAgICAgICAgICAgb3BlbkN1cnNvcihyZXF1ZXN0RGF0YSwgaW5mbywg
V1RGTW92ZShjYWxsYmFjayksIGdyYW50ZWQgPyBTcGFjZUNoZWNrUmVzdWx0OjpQYXNzIDogU3Bh
Y2VDaGVja1Jlc3VsdDo6RmFpbCk7CiAgICAgICAgIH0pOwpAQCAtMTA3OCw3ICsxMDc4LDcgQEAg
dm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6b3BlbkN1cnNvcihjb25zdCBJREJSZXF1ZXN0RGF0YSYg
cmVxdWVzdERhdGEsIGNvbnN0IElEQkMKIAogICAgIEFTU0VSVChzcGFjZUNoZWNrUmVzdWx0ID09
IFNwYWNlQ2hlY2tSZXN1bHQ6OlBhc3MpOwogICAgIGlmICghbV9iYWNraW5nU3RvcmUpCi0gICAg
ICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiQmFja2lu
ZyBzdG9yZSBpcyBjbG9zZWQiIH0sIElEQkdldFJlc3VsdCB7IH0pOworICAgICAgICByZXR1cm4g
Y2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgaXMg
Y2xvc2VkIl9zIH0sIElEQkdldFJlc3VsdCB7IH0pOwogCiAgICAgSURCR2V0UmVzdWx0IHJlc3Vs
dDsKICAgICBhdXRvIGVycm9yID0gbV9iYWNraW5nU3RvcmUtPm9wZW5DdXJzb3IocmVxdWVzdERh
dGEudHJhbnNhY3Rpb25JZGVudGlmaWVyKCksIGluZm8sIHJlc3VsdCk7CkBAIC0xMDk3LDcgKzEw
OTcsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjppdGVyYXRlQ3Vyc29yKGNvbnN0IElEQlJl
cXVlc3REYXRhJiByZXF1ZXN0RGF0YSwgY29uc3QgSQogCiAgICAgICAgIG1fbWFuYWdlci0+cmVx
dWVzdFNwYWNlKG1faWRlbnRpZmllci5vcmlnaW4oKSwgMCwgW3RoaXMsIHdlYWtUaGlzID0gV2Vh
a1B0ciB7ICp0aGlzIH0sIHJlcXVlc3REYXRhLCBkYXRhLCBjYWxsYmFjayA9IFdURk1vdmUoY2Fs
bGJhY2spXShib29sIGdyYW50ZWQpIG11dGFibGUgewogICAgICAgICAgICAgaWYgKCF3ZWFrVGhp
cykKLSAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3Rh
dGVFcnJvciwgIkRhdGFiYXNlIG9yIHRyYW5zYWN0aW9uIGlzIGNsb3NlZCIgfSwgSURCR2V0UmVz
dWx0IHsgfSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52
YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBvciB0cmFuc2FjdGlvbiBpcyBjbG9zZWQiX3MgfSwg
SURCR2V0UmVzdWx0IHsgfSk7CiAKICAgICAgICAgICAgIGl0ZXJhdGVDdXJzb3IocmVxdWVzdERh
dGEsIGRhdGEsIFdURk1vdmUoY2FsbGJhY2spLCBncmFudGVkID8gU3BhY2VDaGVja1Jlc3VsdDo6
UGFzcyA6IFNwYWNlQ2hlY2tSZXN1bHQ6OkZhaWwpOwogICAgICAgICB9KTsKQEAgLTExMDYsNyAr
MTEwNiw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6Oml0ZXJhdGVDdXJzb3IoY29uc3QgSURC
UmVxdWVzdERhdGEmIHJlcXVlc3REYXRhLCBjb25zdCBJCiAKICAgICBBU1NFUlQoc3BhY2VDaGVj
a1Jlc3VsdCA9PSBTcGFjZUNoZWNrUmVzdWx0OjpQYXNzKTsKICAgICBpZiAoIW1fYmFja2luZ1N0
b3JlKQotICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJv
ciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xvc2VkIiB9LCBJREJHZXRSZXN1bHQgeyB9KTsKKyAgICAg
ICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5n
IHN0b3JlIGlzIGNsb3NlZCJfcyB9LCBJREJHZXRSZXN1bHQgeyB9KTsKIAogICAgIElEQkdldFJl
c3VsdCByZXN1bHQ7CiAgICAgYXV0byB0cmFuc2FjdGlvbklkZW50aWZpZXIgPSByZXF1ZXN0RGF0
YS50cmFuc2FjdGlvbklkZW50aWZpZXIoKTsKQEAgLTExMjcsNyArMTEyNyw3IEBAIHZvaWQgVW5p
cXVlSURCRGF0YWJhc2U6OmNvbW1pdFRyYW5zYWN0aW9uKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNh
Y3Rpb24mIHRyYW5zYWN0CiAKICAgICAgICAgbV9tYW5hZ2VyLT5yZXF1ZXN0U3BhY2UobV9pZGVu
dGlmaWVyLm9yaWdpbigpLCAwLCBbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwg
d2Vha1RyYW5zYWN0aW9uID0gV2Vha1B0ciB7IHRyYW5zYWN0aW9uIH0sIGNhbGxiYWNrID0gV1RG
TW92ZShjYWxsYmFjayldKGJvb2wgZ3JhbnRlZCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAo
IXdlYWtUaGlzIHx8ICF3ZWFrVHJhbnNhY3Rpb24pCi0gICAgICAgICAgICAgICAgcmV0dXJuIGNh
bGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBvciB0cmFuc2Fj
dGlvbiBpcyBjbG9zZWQiIH0pOworICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJF
cnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJhc2Ugb3IgdHJhbnNhY3Rpb24gaXMgY2xv
c2VkIl9zIH0pOwogCiAgICAgICAgICAgICBjb21taXRUcmFuc2FjdGlvbigqd2Vha1RyYW5zYWN0
aW9uLCBXVEZNb3ZlKGNhbGxiYWNrKSwgZ3JhbnRlZCA/IFNwYWNlQ2hlY2tSZXN1bHQ6OlBhc3Mg
OiBTcGFjZUNoZWNrUmVzdWx0OjpGYWlsKTsKICAgICAgICAgfSk7CkBAIC0xMTM4LDcgKzExMzgs
NyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpjb21taXRUcmFuc2FjdGlvbihVbmlxdWVJREJE
YXRhYmFzZVRyYW5zYWN0aW9uJiB0cmFuc2FjdAogICAgIEFTU0VSVCh0cmFuc2FjdGlvbi5kYXRh
YmFzZUNvbm5lY3Rpb24oKS5kYXRhYmFzZSgpID09IHRoaXMpOwogCiAgICAgaWYgKCFtX2JhY2tp
bmdTdG9yZSkKLSAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRl
RXJyb3IsICJCYWNraW5nIHN0b3JlIGlzIGNsb3NlZCIgfSk7CisgICAgICAgIHJldHVybiBjYWxs
YmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiQmFja2luZyBzdG9yZSBpcyBjbG9z
ZWQiX3MgfSk7CiAKICAgICBhdXRvIHRha2VuVHJhbnNhY3Rpb24gPSBtX2luUHJvZ3Jlc3NUcmFu
c2FjdGlvbnMudGFrZSh0cmFuc2FjdGlvbi5pbmZvKCkuaWRlbnRpZmllcigpKTsKICAgICBpZiAo
IXRha2VuVHJhbnNhY3Rpb24pIHsKQEAgLTExNjYsNyArMTE2Niw3IEBAIHZvaWQgVW5pcXVlSURC
RGF0YWJhc2U6OmFib3J0VHJhbnNhY3Rpb24oVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbiYg
dHJhbnNhY3RpCiAKICAgICAgICAgbV9tYW5hZ2VyLT5yZXF1ZXN0U3BhY2UobV9pZGVudGlmaWVy
Lm9yaWdpbigpLCAwLCBbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgd2Vha1Ry
YW5zYWN0aW9uID0gV2Vha1B0ciB7IHRyYW5zYWN0aW9uIH0sIGNhbGxiYWNrID0gV1RGTW92ZShj
YWxsYmFjayldKGJvb2wgZ3JhbnRlZCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAoIXdlYWtU
aGlzIHx8ICF3ZWFrVHJhbnNhY3Rpb24pCi0gICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNr
KElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBvciB0cmFuc2FjdGlvbiBp
cyBjbG9zZWQiIH0pOworICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7
IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJhc2Ugb3IgdHJhbnNhY3Rpb24gaXMgY2xvc2VkIl9z
IH0pOwogCiAgICAgICAgICAgICBhYm9ydFRyYW5zYWN0aW9uKCp3ZWFrVHJhbnNhY3Rpb24sIFdU
Rk1vdmUoY2FsbGJhY2spLCBncmFudGVkID8gU3BhY2VDaGVja1Jlc3VsdDo6UGFzcyA6IFNwYWNl
Q2hlY2tSZXN1bHQ6OkZhaWwpOwogICAgICAgICB9KTsKQEAgLTEyMDIsNyArMTIwMiw3IEBAIHZv
aWQgVW5pcXVlSURCRGF0YWJhc2U6OmFib3J0VHJhbnNhY3Rpb24oVW5pcXVlSURCRGF0YWJhc2VU
cmFuc2FjdGlvbiYgdHJhbnNhY3RpCiAKICAgICBJREJFcnJvciBlcnJvcjsKICAgICBpZiAoIW1f
YmFja2luZ1N0b3JlKQotICAgICAgICBlcnJvciA9IElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJy
b3IsICJCYWNraW5nIHN0b3JlIGlzIGNsb3NlZCIgfTsKKyAgICAgICAgZXJyb3IgPSBJREJFcnJv
ciB7IEludmFsaWRTdGF0ZUVycm9yLCAiQmFja2luZyBzdG9yZSBpcyBjbG9zZWQiX3MgfTsKICAg
ICBlbHNlCiAgICAgICAgIGVycm9yID0gbV9iYWNraW5nU3RvcmUtPmFib3J0VHJhbnNhY3Rpb24o
dHJhbnNhY3Rpb25JZGVudGlmaWVyKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkluZGV4SW5mby5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCSW5kZXhJbmZvLmNwcAppbmRleCBlNzFkMmViZjIx
YzRhZGZlZjI4YTJiZGFmYTFmZjg0YjNmN2YwMzk4Li43YWJhODMxZDcwMGVhOThmZWIyY2M5YWE0
NGM5NjJjNGI1OTQ0N2I5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9zaGFyZWQvSURCSW5kZXhJbmZvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9zaGFyZWQvSURCSW5kZXhJbmZvLmNwcApAQCAtNjEsNyArNjEsNyBAQCBTdHJp
bmcgSURCSW5kZXhJbmZvOjpsb2dnaW5nU3RyaW5nKGludCBpbmRlbnQpIGNvbnN0CiB7CiAgICAg
U3RyaW5nIGluZGVudFN0cmluZzsKICAgICBmb3IgKGludCBpID0gMDsgaSA8IGluZGVudDsgKytp
KQotICAgICAgICBpbmRlbnRTdHJpbmcuYXBwZW5kKCIgIik7CisgICAgICAgIGluZGVudFN0cmlu
Zy5hcHBlbmQoJyAnKTsKICAgICByZXR1cm4gbWFrZVN0cmluZyhpbmRlbnRTdHJpbmcsICJJbmRl
eDogIiwgbV9uYW1lLCAiICgiLCBtX2lkZW50aWZpZXIsICIpIGtleVBhdGg6ICIsIFdlYkNvcmU6
OmxvZ2dpbmdTdHJpbmcobV9rZXlQYXRoKSwgJ1xuJyk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuY3Bw
CmluZGV4IGI4MjVlYzgwMDUxNDgwMjhlMmIwN2IxOWRjNzgzOTJhNDNhOGNiYTUuLjMzMmY0NjI2
YmQzMmU4MzFhZDkwOGE0NmFjNGRjMTQ2ZTZlY2NhODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0LmNwcApA
QCAtMTE4LDE0ICsxMTgsMTQgQEAgTWVkaWFDb250cm9sc0hvc3Q6On5NZWRpYUNvbnRyb2xzSG9z
dCgpCiBTdHJpbmcgTWVkaWFDb250cm9sc0hvc3Q6OmxheW91dFRyYWl0c0NsYXNzTmFtZSgpIGNv
bnN0CiB7CiAjaWYgZGVmaW5lZChNRURJQV9DT05UUk9MU19IT1NUX0xBWU9VVF9UUkFJVFNfQ0xB
U1NfTkFNRV9PVkVSUklERSkKLSAgICByZXR1cm4gTUVESUFfQ09OVFJPTFNfSE9TVF9MQVlPVVRf
VFJBSVRTX0NMQVNTX05BTUVfT1ZFUlJJREU7CisgICAgcmV0dXJuIE1FRElBX0NPTlRST0xTX0hP
U1RfTEFZT1VUX1RSQUlUU19DTEFTU19OQU1FX09WRVJSSURFIiJfczsKICNlbHNlCiAjaWYgUExB
VEZPUk0oTUFDKSB8fCBQTEFURk9STShNQUNDQVRBTFlTVCkKLSAgICByZXR1cm4gIk1hY09TTGF5
b3V0VHJhaXRzIjsKKyAgICByZXR1cm4gIk1hY09TTGF5b3V0VHJhaXRzIl9zOwogI2VsaWYgUExB
VEZPUk0oSU9TKQotICAgIHJldHVybiAiSU9TTGF5b3V0VHJhaXRzIjsKKyAgICByZXR1cm4gIklP
U0xheW91dFRyYWl0cyJfczsKICNlbGlmIFBMQVRGT1JNKFdBVENIT1MpCi0gICAgcmV0dXJuICJX
YXRjaE9TTGF5b3V0VHJhaXRzIjsKKyAgICByZXR1cm4gIldhdGNoT1NMYXlvdXRUcmFpdHMiX3M7
CiAjZWxzZQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIHJldHVybiBudWxsU3RyaW5n
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVk
aWFSZWNvcmRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVk
aWFSZWNvcmRlci5jcHAKaW5kZXggYTkxZTY2OTAwMDQ4MzE2YTlhOTEzY2EwZDUxMjhlYWExNTFk
OWNjZS4uZmY5NDk5OWMyMDJhMzIwNTRjNjE2YmYzNjZjNjczYWViNDI3ZjY1MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVy
LmNwcApAQCAtNjYsNyArNjYsNyBAQCBFeGNlcHRpb25PcjxSZWY8TWVkaWFSZWNvcmRlcj4+IE1l
ZGlhUmVjb3JkZXI6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIFJlZjxNZQogICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKIAogICAgIGlmICghaXNUeXBl
U3VwcG9ydGVkKGRvY3VtZW50LCBvcHRpb25zLm1pbWVUeXBlKSkKLSAgICAgICAgcmV0dXJuIEV4
Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yLCAibWltZVR5cGUgaXMgbm90IHN1cHBvcnRlZCIg
fTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yLCAibWltZVR5
cGUgaXMgbm90IHN1cHBvcnRlZCJfcyB9OwogCiAgICAgYXV0byByZWNvcmRlciA9IGFkb3B0UmVm
KCpuZXcgTWVkaWFSZWNvcmRlcihkb2N1bWVudCwgV1RGTW92ZShzdHJlYW0pLCBXVEZNb3ZlKG9w
dGlvbnMpKSk7CiAgICAgcmVjb3JkZXItPnN1c3BlbmRJZk5lZWRlZCgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcAppbmRleCBhNTkw
MzdhNDA1ODYzMThmMjE2YTZlYTAxOWRiMjRhOWIwMzk3MjQ4Li44Y2I2ZDVjZmMzOGQ2ZWY4MGY3
ZTM5NDFmYjk1OGEzNGQ1MzVmY2M4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcApAQCAtNjUwLDcgKzY1MCw3IEBAIHN0YXRpYyBD
b250ZW50VHlwZSBhZGRWUDlGdWxsUmFuZ2VWaWRlb0ZsYWdUb0NvbnRlbnRUeXBlKGNvbnN0IENv
bnRlbnRUeXBlJiB0eXBlCiAgICAgICAgIGlmIChwb3NpdGlvbiA9PSBub3RGb3VuZCkKICAgICAg
ICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIHJhd1R5cGUuaW5zZXJ0KCIuMDAiLCBwb3NpdGlv
biArIGNvZGVjLmxlbmd0aCgpKTsKKyAgICAgICAgcmF3VHlwZS5pbnNlcnQoIi4wMCJfcywgcG9z
aXRpb24gKyBjb2RlYy5sZW5ndGgoKSk7CiAgICAgICAgIHJldHVybiBDb250ZW50VHlwZShyYXdU
eXBlKTsKICAgICB9CiAgICAgcmV0dXJuIHR5cGU7CkBAIC04OTUsNyArODk1LDcgQEAgYm9vbCBN
ZWRpYVNvdXJjZTo6aXNUeXBlU3VwcG9ydGVkKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRl
eHQsIGNvbnN0IFN0cmluZyYKICAgICBpZiAoY29udGV4dC5pc0RvY3VtZW50KCkgJiYgZG93bmNh
c3Q8RG9jdW1lbnQ+KGNvbnRleHQpLnF1aXJrcygpLm5lZWRzVlA5RnVsbFJhbmdlRmxhZ1F1aXJr
KCkpCiAgICAgICAgIGNvbnRlbnRUeXBlID0gYWRkVlA5RnVsbFJhbmdlVmlkZW9GbGFnVG9Db250
ZW50VHlwZShjb250ZW50VHlwZSk7CiAKLSAgICBTdHJpbmcgY29kZWNzID0gY29udGVudFR5cGUu
cGFyYW1ldGVyKCJjb2RlY3MiKTsKKyAgICBTdHJpbmcgY29kZWNzID0gY29udGVudFR5cGUucGFy
YW1ldGVyKCJjb2RlY3MiX3MpOwogCiAgICAgLy8gMi4gSWYgdHlwZSBkb2VzIG5vdCBjb250YWlu
IGEgdmFsaWQgTUlNRSB0eXBlIHN0cmluZywgdGhlbiByZXR1cm4gZmFsc2UuCiAgICAgaWYgKGNv
bnRlbnRUeXBlLmNvbnRhaW5lclR5cGUoKS5pc0VtcHR5KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhVHJhY2tDb25zdHJhaW50cy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhVHJhY2tDb25zdHJhaW50cy5j
cHAKaW5kZXggMzExMzg0N2RiNzU0ODQ3ZDYxNjJmYTJkNjFlNjczNGE2YTg4ODViMy4uMmY4ZDhi
ZDI3ZDczNTU0NmJhODRiNjE4MDhhNmNkYWIzZjMyOGUxNiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVRyYWNrQ29uc3RyYWludHMuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFUcmFja0NvbnN0cmFpbnRz
LmNwcApAQCAtMzMsNyArMzMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGVudW0gY2xhc3Mg
Q29uc3RyYWludFNldFR5cGUgeyBNYW5kYXRvcnksIEFkdmFuY2VkIH07CiAKLXN0YXRpYyB2b2lk
IHNldChNZWRpYVRyYWNrQ29uc3RyYWludFNldE1hcCYgbWFwLCBDb25zdHJhaW50U2V0VHlwZSBz
ZXRUeXBlLCBjb25zdCBjaGFyKiB0eXBlQXNTdHJpbmcsIE1lZGlhQ29uc3RyYWludFR5cGUgdHlw
ZSwgY29uc3QgQ29uc3RyYWluTG9uZyYgdmFsdWUpCitzdGF0aWMgdm9pZCBzZXQoTWVkaWFUcmFj
a0NvbnN0cmFpbnRTZXRNYXAmIG1hcCwgQ29uc3RyYWludFNldFR5cGUgc2V0VHlwZSwgQVNDSUlM
aXRlcmFsIHR5cGVBc1N0cmluZywgTWVkaWFDb25zdHJhaW50VHlwZSB0eXBlLCBjb25zdCBDb25z
dHJhaW5Mb25nJiB2YWx1ZSkKIHsKICAgICBJbnRDb25zdHJhaW50IGNvbnN0cmFpbnQodHlwZUFz
U3RyaW5nLCB0eXBlKTsKICAgICBXVEY6OnN3aXRjaE9uKHZhbHVlLApAQCAtNTcsNyArNTcsNyBA
QCBzdGF0aWMgdm9pZCBzZXQoTWVkaWFUcmFja0NvbnN0cmFpbnRTZXRNYXAmIG1hcCwgQ29uc3Ry
YWludFNldFR5cGUgc2V0VHlwZSwgY29ucwogICAgIG1hcC5zZXQodHlwZSwgV1RGTW92ZShjb25z
dHJhaW50KSk7CiB9CiAKLXN0YXRpYyB2b2lkIHNldChNZWRpYVRyYWNrQ29uc3RyYWludFNldE1h
cCYgbWFwLCBDb25zdHJhaW50U2V0VHlwZSBzZXRUeXBlLCBjb25zdCBjaGFyKiB0eXBlQXNTdHJp
bmcsIE1lZGlhQ29uc3RyYWludFR5cGUgdHlwZSwgY29uc3QgQ29uc3RyYWluRG91YmxlJiB2YWx1
ZSkKK3N0YXRpYyB2b2lkIHNldChNZWRpYVRyYWNrQ29uc3RyYWludFNldE1hcCYgbWFwLCBDb25z
dHJhaW50U2V0VHlwZSBzZXRUeXBlLCBBU0NJSUxpdGVyYWwgdHlwZUFzU3RyaW5nLCBNZWRpYUNv
bnN0cmFpbnRUeXBlIHR5cGUsIGNvbnN0IENvbnN0cmFpbkRvdWJsZSYgdmFsdWUpCiB7CiAgICAg
RG91YmxlQ29uc3RyYWludCBjb25zdHJhaW50KHR5cGVBc1N0cmluZywgdHlwZSk7CiAgICAgV1RG
Ojpzd2l0Y2hPbih2YWx1ZSwKQEAgLTgxLDcgKzgxLDcgQEAgc3RhdGljIHZvaWQgc2V0KE1lZGlh
VHJhY2tDb25zdHJhaW50U2V0TWFwJiBtYXAsIENvbnN0cmFpbnRTZXRUeXBlIHNldFR5cGUsIGNv
bnMKICAgICBtYXAuc2V0KHR5cGUsIFdURk1vdmUoY29uc3RyYWludCkpOwogfQogCi1zdGF0aWMg
dm9pZCBzZXQoTWVkaWFUcmFja0NvbnN0cmFpbnRTZXRNYXAmIG1hcCwgQ29uc3RyYWludFNldFR5
cGUgc2V0VHlwZSwgY29uc3QgY2hhciogdHlwZUFzU3RyaW5nLCBNZWRpYUNvbnN0cmFpbnRUeXBl
IHR5cGUsIGNvbnN0IENvbnN0cmFpbkJvb2xlYW4mIHZhbHVlKQorc3RhdGljIHZvaWQgc2V0KE1l
ZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwJiBtYXAsIENvbnN0cmFpbnRTZXRUeXBlIHNldFR5cGUs
IEFTQ0lJTGl0ZXJhbCB0eXBlQXNTdHJpbmcsIE1lZGlhQ29uc3RyYWludFR5cGUgdHlwZSwgY29u
c3QgQ29uc3RyYWluQm9vbGVhbiYgdmFsdWUpCiB7CiAgICAgQm9vbGVhbkNvbnN0cmFpbnQgY29u
c3RyYWludCh0eXBlQXNTdHJpbmcsIHR5cGUpOwogICAgIFdURjo6c3dpdGNoT24odmFsdWUsCkBA
IC0xMDEsNyArMTAxLDcgQEAgc3RhdGljIHZvaWQgc2V0KE1lZGlhVHJhY2tDb25zdHJhaW50U2V0
TWFwJiBtYXAsIENvbnN0cmFpbnRTZXRUeXBlIHNldFR5cGUsIGNvbnMKICAgICBtYXAuc2V0KHR5
cGUsIFdURk1vdmUoY29uc3RyYWludCkpOwogfQogCi1zdGF0aWMgdm9pZCBzZXQoTWVkaWFUcmFj
a0NvbnN0cmFpbnRTZXRNYXAmIG1hcCwgQ29uc3RyYWludFNldFR5cGUgc2V0VHlwZSwgY29uc3Qg
Y2hhciogdHlwZUFzU3RyaW5nLCBNZWRpYUNvbnN0cmFpbnRUeXBlIHR5cGUsIGNvbnN0IENvbnN0
cmFpbkRPTVN0cmluZyYgdmFsdWUpCitzdGF0aWMgdm9pZCBzZXQoTWVkaWFUcmFja0NvbnN0cmFp
bnRTZXRNYXAmIG1hcCwgQ29uc3RyYWludFNldFR5cGUgc2V0VHlwZSwgQVNDSUlMaXRlcmFsIHR5
cGVBc1N0cmluZywgTWVkaWFDb25zdHJhaW50VHlwZSB0eXBlLCBjb25zdCBDb25zdHJhaW5ET01T
dHJpbmcmIHZhbHVlKQogewogICAgIFN0cmluZ0NvbnN0cmFpbnQgY29uc3RyYWludCh0eXBlQXNT
dHJpbmcsIHR5cGUpOwogICAgIFdURjo6c3dpdGNoT24odmFsdWUsCkBAIC0xNDgsNyArMTQ4LDcg
QEAgc3RhdGljIHZvaWQgc2V0KE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwJiBtYXAsIENvbnN0
cmFpbnRTZXRUeXBlIHNldFR5cGUsIGNvbnMKICAgICBtYXAuc2V0KHR5cGUsIFdURk1vdmUoY29u
c3RyYWludCkpOwogfQogCi10ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdGF0aWMgaW5saW5lIHZvaWQg
c2V0KE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwJiBtYXAsIENvbnN0cmFpbnRTZXRUeXBlIHNl
dFR5cGUsIGNvbnN0IGNoYXIqIHR5cGVBc1N0cmluZywgTWVkaWFDb25zdHJhaW50VHlwZSB0eXBl
LCBjb25zdCBzdGQ6Om9wdGlvbmFsPFQ+JiB2YWx1ZSkKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0
YXRpYyBpbmxpbmUgdm9pZCBzZXQoTWVkaWFUcmFja0NvbnN0cmFpbnRTZXRNYXAmIG1hcCwgQ29u
c3RyYWludFNldFR5cGUgc2V0VHlwZSwgQVNDSUlMaXRlcmFsIHR5cGVBc1N0cmluZywgTWVkaWFD
b25zdHJhaW50VHlwZSB0eXBlLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFQ+JiB2YWx1ZSkKIHsKICAg
ICBpZiAoIXZhbHVlKQogICAgICAgICByZXR1cm47CkBAIC0xNTgsMjEgKzE1OCwyMSBAQCB0ZW1w
bGF0ZTx0eXBlbmFtZSBUPiBzdGF0aWMgaW5saW5lIHZvaWQgc2V0KE1lZGlhVHJhY2tDb25zdHJh
aW50U2V0TWFwJiBtYXAsIENvbgogc3RhdGljIE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwIGNv
bnZlcnRUb0ludGVybmFsRm9ybShDb25zdHJhaW50U2V0VHlwZSBzZXRUeXBlLCBjb25zdCBNZWRp
YVRyYWNrQ29uc3RyYWludFNldCYgY29uc3RyYWludFNldCkKIHsKICAgICBNZWRpYVRyYWNrQ29u
c3RyYWludFNldE1hcCByZXN1bHQ7Ci0gICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgIndpZHRoIiwg
TWVkaWFDb25zdHJhaW50VHlwZTo6V2lkdGgsIGNvbnN0cmFpbnRTZXQud2lkdGgpOwotICAgIHNl
dChyZXN1bHQsIHNldFR5cGUsICJoZWlnaHQiLCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpIZWlnaHQs
IGNvbnN0cmFpbnRTZXQuaGVpZ2h0KTsKLSAgICBzZXQocmVzdWx0LCBzZXRUeXBlLCAiYXNwZWN0
UmF0aW8iLCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpBc3BlY3RSYXRpbywgY29uc3RyYWludFNldC5h
c3BlY3RSYXRpbyk7Ci0gICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgImZyYW1lUmF0ZSIsIE1lZGlh
Q29uc3RyYWludFR5cGU6OkZyYW1lUmF0ZSwgY29uc3RyYWludFNldC5mcmFtZVJhdGUpOwotICAg
IHNldChyZXN1bHQsIHNldFR5cGUsICJmYWNpbmdNb2RlIiwgTWVkaWFDb25zdHJhaW50VHlwZTo6
RmFjaW5nTW9kZSwgY29uc3RyYWludFNldC5mYWNpbmdNb2RlKTsKLSAgICBzZXQocmVzdWx0LCBz
ZXRUeXBlLCAidm9sdW1lIiwgTWVkaWFDb25zdHJhaW50VHlwZTo6Vm9sdW1lLCBjb25zdHJhaW50
U2V0LnZvbHVtZSk7Ci0gICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgInNhbXBsZVJhdGUiLCBNZWRp
YUNvbnN0cmFpbnRUeXBlOjpTYW1wbGVSYXRlLCBjb25zdHJhaW50U2V0LnNhbXBsZVJhdGUpOwot
ICAgIHNldChyZXN1bHQsIHNldFR5cGUsICJzYW1wbGVTaXplIiwgTWVkaWFDb25zdHJhaW50VHlw
ZTo6U2FtcGxlU2l6ZSwgY29uc3RyYWludFNldC5zYW1wbGVTaXplKTsKLSAgICBzZXQocmVzdWx0
LCBzZXRUeXBlLCAiZWNob0NhbmNlbGxhdGlvbiIsIE1lZGlhQ29uc3RyYWludFR5cGU6OkVjaG9D
YW5jZWxsYXRpb24sIGNvbnN0cmFpbnRTZXQuZWNob0NhbmNlbGxhdGlvbik7CisgICAgc2V0KHJl
c3VsdCwgc2V0VHlwZSwgIndpZHRoIl9zLCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpXaWR0aCwgY29u
c3RyYWludFNldC53aWR0aCk7CisgICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgImhlaWdodCJfcywg
TWVkaWFDb25zdHJhaW50VHlwZTo6SGVpZ2h0LCBjb25zdHJhaW50U2V0LmhlaWdodCk7CisgICAg
c2V0KHJlc3VsdCwgc2V0VHlwZSwgImFzcGVjdFJhdGlvIl9zLCBNZWRpYUNvbnN0cmFpbnRUeXBl
OjpBc3BlY3RSYXRpbywgY29uc3RyYWludFNldC5hc3BlY3RSYXRpbyk7CisgICAgc2V0KHJlc3Vs
dCwgc2V0VHlwZSwgImZyYW1lUmF0ZSJfcywgTWVkaWFDb25zdHJhaW50VHlwZTo6RnJhbWVSYXRl
LCBjb25zdHJhaW50U2V0LmZyYW1lUmF0ZSk7CisgICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgImZh
Y2luZ01vZGUiX3MsIE1lZGlhQ29uc3RyYWludFR5cGU6OkZhY2luZ01vZGUsIGNvbnN0cmFpbnRT
ZXQuZmFjaW5nTW9kZSk7CisgICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgInZvbHVtZSJfcywgTWVk
aWFDb25zdHJhaW50VHlwZTo6Vm9sdW1lLCBjb25zdHJhaW50U2V0LnZvbHVtZSk7CisgICAgc2V0
KHJlc3VsdCwgc2V0VHlwZSwgInNhbXBsZVJhdGUiX3MsIE1lZGlhQ29uc3RyYWludFR5cGU6OlNh
bXBsZVJhdGUsIGNvbnN0cmFpbnRTZXQuc2FtcGxlUmF0ZSk7CisgICAgc2V0KHJlc3VsdCwgc2V0
VHlwZSwgInNhbXBsZVNpemUiX3MsIE1lZGlhQ29uc3RyYWludFR5cGU6OlNhbXBsZVNpemUsIGNv
bnN0cmFpbnRTZXQuc2FtcGxlU2l6ZSk7CisgICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgImVjaG9D
YW5jZWxsYXRpb24iX3MsIE1lZGlhQ29uc3RyYWludFR5cGU6OkVjaG9DYW5jZWxsYXRpb24sIGNv
bnN0cmFpbnRTZXQuZWNob0NhbmNlbGxhdGlvbik7CiAgICAgLy8gRklYTUU6IGFkZCBsYXRlbmN5
CiAgICAgLy8gRklYTUU6IGFkZCBjaGFubmVsQ291bnQKLSAgICBzZXQocmVzdWx0LCBzZXRUeXBl
LCAiZGV2aWNlSWQiLCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpEZXZpY2VJZCwgY29uc3RyYWludFNl
dC5kZXZpY2VJZCk7Ci0gICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgImdyb3VwSWQiLCBNZWRpYUNv
bnN0cmFpbnRUeXBlOjpHcm91cElkLCBjb25zdHJhaW50U2V0Lmdyb3VwSWQpOwotICAgIHNldChy
ZXN1bHQsIHNldFR5cGUsICJkaXNwbGF5U3VyZmFjZSIsIE1lZGlhQ29uc3RyYWludFR5cGU6OkRp
c3BsYXlTdXJmYWNlLCBjb25zdHJhaW50U2V0LmRpc3BsYXlTdXJmYWNlKTsKLSAgICBzZXQocmVz
dWx0LCBzZXRUeXBlLCAibG9naWNhbFN1cmZhY2UiLCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpMb2dp
Y2FsU3VyZmFjZSwgY29uc3RyYWludFNldC5sb2dpY2FsU3VyZmFjZSk7CisgICAgc2V0KHJlc3Vs
dCwgc2V0VHlwZSwgImRldmljZUlkIl9zLCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpEZXZpY2VJZCwg
Y29uc3RyYWludFNldC5kZXZpY2VJZCk7CisgICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgImdyb3Vw
SWQiX3MsIE1lZGlhQ29uc3RyYWludFR5cGU6Okdyb3VwSWQsIGNvbnN0cmFpbnRTZXQuZ3JvdXBJ
ZCk7CisgICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgImRpc3BsYXlTdXJmYWNlIl9zLCBNZWRpYUNv
bnN0cmFpbnRUeXBlOjpEaXNwbGF5U3VyZmFjZSwgY29uc3RyYWludFNldC5kaXNwbGF5U3VyZmFj
ZSk7CisgICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgImxvZ2ljYWxTdXJmYWNlIl9zLCBNZWRpYUNv
bnN0cmFpbnRUeXBlOjpMb2dpY2FsU3VyZmFjZSwgY29uc3RyYWludFNldC5sb2dpY2FsU3VyZmFj
ZSk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENJY2VDYW5kaWRhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENJY2VDYW5kaWRhdGUuY3BwCmluZGV4IDlmNzA2ZGY2ZGY2
NWU3Zjk1ODE1NzUxNDAyMjQ4ZTA4YzdhMjNmYTAuLmJiN2VmNzQxMjYxOWMwNTlkY2VjNzRkNjhl
ZTJkYmUwYzkzYWJjMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDSWNlQ2FuZGlkYXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ0ljZUNhbmRpZGF0ZS5jcHAKQEAgLTU0LDcgKzU0LDcgQEAgUlRDSWNlQ2Fu
ZGlkYXRlOjpSVENJY2VDYW5kaWRhdGUoY29uc3QgU3RyaW5nJiBjYW5kaWRhdGUsIGNvbnN0IFN0
cmluZyYgc2RwTWlkLAogRXhjZXB0aW9uT3I8UmVmPFJUQ0ljZUNhbmRpZGF0ZT4+IFJUQ0ljZUNh
bmRpZGF0ZTo6Y3JlYXRlKGNvbnN0IFJUQ0ljZUNhbmRpZGF0ZUluaXQmIGRpY3Rpb25hcnkpCiB7
CiAgICAgaWYgKGRpY3Rpb25hcnkuc2RwTWlkLmlzTnVsbCgpICYmICFkaWN0aW9uYXJ5LnNkcE1M
aW5lSW5kZXgpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJDYW5kaWRh
dGUgbXVzdCBub3QgaGF2ZSBib3RoIG51bGwgc2RwTWlkIGFuZCBzZHBNTGluZUluZGV4IiB9Owor
ICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiQ2FuZGlkYXRlIG11c3Qgbm90
IGhhdmUgYm90aCBudWxsIHNkcE1pZCBhbmQgc2RwTUxpbmVJbmRleCJfcyB9OwogCiAgICAgYXV0
byBmaWVsZHMgPSB2YWx1ZU9yRGVmYXVsdChwYXJzZUljZUNhbmRpZGF0ZVNEUChkaWN0aW9uYXJ5
LmNhbmRpZGF0ZSkpOwogICAgIGZpZWxkcy51c2VybmFtZUZyYWdtZW50ID0gZGljdGlvbmFyeS51
c2VybmFtZUZyYWdtZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcAppbmRleCA5MGRlNjM5OTM0ZWQ2MWM1YzBi
MTAxMmMwYWE1Mzk3ZGQwZDhiMzJhLi40MTU2NmE1NTVmNjJlZTUwOGUwZGQxYTFkZDcwODg0ZWY3
NTBmNWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1BlZXJDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcApAQCAtMjczLDcgKzI3Myw3IEBAIHZvaWQgUlRDUGVl
ckNvbm5lY3Rpb246OnNldExvY2FsRGVzY3JpcHRpb24oc3RkOjpvcHRpb25hbDxSVENMb2NhbFNl
c3Npb25EZXNjcmlwCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBBTFdBWVNfTE9HKExP
R0lERU5USUZJRVIsICJTZXR0aW5nIGxvY2FsIGRlc2NyaXB0aW9uIHRvOlxuIiwgbG9jYWxEZXNj
cmlwdGlvbiA/IGxvY2FsRGVzY3JpcHRpb24tPnNkcCA6ICInJyIpOworICAgIEFMV0FZU19MT0co
TE9HSURFTlRJRklFUiwgIlNldHRpbmcgbG9jYWwgZGVzY3JpcHRpb24gdG86XG4iLCBsb2NhbERl
c2NyaXB0aW9uID8gbG9jYWxEZXNjcmlwdGlvbi0+c2RwIDogIicnIl9zKTsKICAgICBjaGFpbk9w
ZXJhdGlvbihXVEZNb3ZlKHByb21pc2UpLCBbdGhpcywgbG9jYWxEZXNjcmlwdGlvbiA9IFdURk1v
dmUobG9jYWxEZXNjcmlwdGlvbildKGF1dG8mJiBwcm9taXNlKSBtdXRhYmxlIHsKICAgICAgICAg
YXV0byB0eXBlID0gdHlwZUZvclNldExvY2FsRGVzY3JpcHRpb24obG9jYWxEZXNjcmlwdGlvbiwg
bV9zaWduYWxpbmdTdGF0ZSk7CiAgICAgICAgIFN0cmluZyBzZHA7CkBAIC0zNDQsNyArMzQ0LDcg
QEAgdm9pZCBSVENQZWVyQ29ubmVjdGlvbjo6YWRkSWNlQ2FuZGlkYXRlKENhbmRpZGF0ZSYmIHJ0
Y0NhbmRpZGF0ZSwgUmVmPERlZmVycmVkUHIKICAgICAgICAgfSk7CiAgICAgfQogCi0gICAgQUxX
QVlTX0xPRyhMT0dJREVOVElGSUVSLCAiUmVjZWl2ZWQgaWNlIGNhbmRpZGF0ZTpcbiIsIGNhbmRp
ZGF0ZSA/IGNhbmRpZGF0ZS0+Y2FuZGlkYXRlKCkgOiAibnVsbCIpOworICAgIEFMV0FZU19MT0co
TE9HSURFTlRJRklFUiwgIlJlY2VpdmVkIGljZSBjYW5kaWRhdGU6XG4iLCBjYW5kaWRhdGUgPyBj
YW5kaWRhdGUtPmNhbmRpZGF0ZSgpIDogIm51bGwiX3MpOwogCiAgICAgaWYgKGV4Y2VwdGlvbikg
ewogICAgICAgICBwcm9taXNlLT5yZWplY3QoKmV4Y2VwdGlvbik7CkBAIC0zNzksMTMgKzM3OSwx
MyBAQCBzdGQ6Om9wdGlvbmFsPGJvb2w+IFJUQ1BlZXJDb25uZWN0aW9uOjpjYW5Ucmlja2xlSWNl
Q2FuZGlkYXRlcygpIGNvbnN0CiBFeGNlcHRpb25PcjxWZWN0b3I8TWVkaWFFbmRwb2ludENvbmZp
Z3VyYXRpb246OkljZVNlcnZlckluZm8+PiBSVENQZWVyQ29ubmVjdGlvbjo6aWNlU2VydmVyc0Zy
b21Db25maWd1cmF0aW9uKFJUQ0NvbmZpZ3VyYXRpb24mIG5ld0NvbmZpZ3VyYXRpb24sIGNvbnN0
IFJUQ0NvbmZpZ3VyYXRpb24qIGV4aXN0aW5nQ29uZmlndXJhdGlvbiwgYm9vbCBpc0xvY2FsRGVz
Y3JpcHRpb25TZXQpCiB7CiAgICAgaWYgKGV4aXN0aW5nQ29uZmlndXJhdGlvbiAmJiBuZXdDb25m
aWd1cmF0aW9uLmJ1bmRsZVBvbGljeSAhPSBleGlzdGluZ0NvbmZpZ3VyYXRpb24tPmJ1bmRsZVBv
bGljeSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRNb2RpZmljYXRpb25FcnJv
ciwgIkJ1bmRsZVBvbGljeSBkb2VzIG5vdCBtYXRjaCBleGlzdGluZyBwb2xpY3kiIH07CisgICAg
ICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3IsICJCdW5kbGVQ
b2xpY3kgZG9lcyBub3QgbWF0Y2ggZXhpc3RpbmcgcG9saWN5Il9zIH07CiAKICAgICBpZiAoZXhp
c3RpbmdDb25maWd1cmF0aW9uICYmIG5ld0NvbmZpZ3VyYXRpb24ucnRjcE11eFBvbGljeSAhPSBl
eGlzdGluZ0NvbmZpZ3VyYXRpb24tPnJ0Y3BNdXhQb2xpY3kpCi0gICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3IsICJSVENQTXV4UG9saWN5IGRvZXMgbm90
IG1hdGNoIGV4aXN0aW5nIHBvbGljeSIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElu
dmFsaWRNb2RpZmljYXRpb25FcnJvciwgIlJUQ1BNdXhQb2xpY3kgZG9lcyBub3QgbWF0Y2ggZXhp
c3RpbmcgcG9saWN5Il9zIH07CiAKICAgICBpZiAoZXhpc3RpbmdDb25maWd1cmF0aW9uICYmIG5l
d0NvbmZpZ3VyYXRpb24uaWNlQ2FuZGlkYXRlUG9vbFNpemUgIT0gZXhpc3RpbmdDb25maWd1cmF0
aW9uLT5pY2VDYW5kaWRhdGVQb29sU2l6ZSAmJiBpc0xvY2FsRGVzY3JpcHRpb25TZXQpCi0gICAg
ICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3IsICJJY2VUcmFu
c3BvcnRQb2xpY3kgcG9vbCBzaXplIGRvZXMgbm90IG1hdGNoIGV4aXN0aW5nIHBvb2wgc2l6ZSIg
fTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRNb2RpZmljYXRpb25FcnJvciwg
IkljZVRyYW5zcG9ydFBvbGljeSBwb29sIHNpemUgZG9lcyBub3QgbWF0Y2ggZXhpc3RpbmcgcG9v
bCBzaXplIl9zIH07CiAKICAgICBWZWN0b3I8TWVkaWFFbmRwb2ludENvbmZpZ3VyYXRpb246Oklj
ZVNlcnZlckluZm8+IHNlcnZlcnM7CiAgICAgaWYgKG5ld0NvbmZpZ3VyYXRpb24uaWNlU2VydmVy
cykgewpAQCAtNDE0LDE4ICs0MTQsMTggQEAgRXhjZXB0aW9uT3I8VmVjdG9yPE1lZGlhRW5kcG9p
bnRDb25maWd1cmF0aW9uOjpJY2VTZXJ2ZXJJbmZvPj4gUlRDUGVlckNvbm5lY3Rpb24KIAogICAg
ICAgICAgICAgZm9yIChhdXRvJiBzZXJ2ZXJVUkwgOiBzZXJ2ZXJVUkxzKSB7CiAgICAgICAgICAg
ICAgICAgaWYgKHNlcnZlclVSTC5pc051bGwoKSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIkJhZCBJQ0Ugc2VydmVyIFVSTCIgfTsKKyAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIkJhZCBJQ0Ugc2VydmVy
IFVSTCJfcyB9OwogICAgICAgICAgICAgICAgIGlmIChzZXJ2ZXJVUkwucHJvdG9jb2xJcygidHVy
biIpIHx8IHNlcnZlclVSTC5wcm90b2NvbElzKCJ0dXJucyIpKSB7CiAgICAgICAgICAgICAgICAg
ICAgIGlmIChzZXJ2ZXIuY3JlZGVudGlhbC5pc051bGwoKSB8fCBzZXJ2ZXIudXNlcm5hbWUuaXNO
dWxsKCkpCi0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxp
ZEFjY2Vzc0Vycm9yLCAiVFVSTi9UVVJOUyBzZXJ2ZXIgcmVxdWlyZXMgYm90aCB1c2VybmFtZSBh
bmQgY3JlZGVudGlhbCIgfTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBFeGNlcHRp
b24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJUVVJOL1RVUk5TIHNlcnZlciByZXF1aXJlcyBib3Ro
IHVzZXJuYW1lIGFuZCBjcmVkZW50aWFsIl9zIH07CiAgICAgICAgICAgICAgICAgICAgIC8vIGh0
dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM4NDg5I3NlY3Rpb24tMTQuMwogICAgICAgICAg
ICAgICAgICAgICBpZiAoc2VydmVyLmNyZWRlbnRpYWwubGVuZ3RoKCkgPiA2NCB8fCBzZXJ2ZXIu
dXNlcm5hbWUubGVuZ3RoKCkgPiA2NCkgewogICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Rl
eHByIHNpemVfdCBNYXhUdXJuVXNlcm5hbWVMZW5ndGggPSA1MDk7CiAgICAgICAgICAgICAgICAg
ICAgICAgICBpZiAoc2VydmVyLmNyZWRlbnRpYWwudXRmOCgpLmxlbmd0aCgpID4gTWF4VHVyblVz
ZXJuYW1lTGVuZ3RoIHx8IHNlcnZlci51c2VybmFtZS51dGY4KCkubGVuZ3RoKCkgPiBNYXhUdXJu
VXNlcm5hbWVMZW5ndGgpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEV4Y2Vw
dGlvbiB7IFR5cGVFcnJvciwgIlRVUk4vVFVSTlMgdXNlcm5hbWUgYW5kL29yIGNyZWRlbnRpYWwg
YXJlIHRvbyBsb25nIiB9OworICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBUeXBlRXJyb3IsICJUVVJOL1RVUk5TIHVzZXJuYW1lIGFuZC9vciBjcmVkZW50aWFs
IGFyZSB0b28gbG9uZyJfcyB9OwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICAgfSBlbHNlIGlmICghc2VydmVyVVJMLnByb3RvY29sSXMoInN0dW4iKSkKLSAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yLCAiSUNFIHNlcnZl
ciBwcm90b2NvbCBub3Qgc3VwcG9ydGVkIiB9OworICAgICAgICAgICAgICAgICAgICByZXR1cm4g
RXhjZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IsICJJQ0Ugc2VydmVyIHByb3RvY29sIG5vdCBz
dXBwb3J0ZWQiX3MgfTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGlmIChzZXJ2ZXJVUkxz
LnNpemUoKSkKICAgICAgICAgICAgICAgICBzZXJ2ZXJzLnVuY2hlY2tlZEFwcGVuZCh7IFdURk1v
dmUoc2VydmVyVVJMcyksIHNlcnZlci5jcmVkZW50aWFsLCBzZXJ2ZXIudXNlcm5hbWUgfSk7CkBA
IC00NDMsNyArNDQzLDcgQEAgRXhjZXB0aW9uT3I8VmVjdG9yPE1lZGlhRW5kcG9pbnRDb25maWd1
cmF0aW9uOjpDZXJ0aWZpY2F0ZVBFTT4+IFJUQ1BlZXJDb25uZWN0aW8KICAgICBjZXJ0aWZpY2F0
ZXMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShjb25maWd1cmF0aW9uLmNlcnRpZmljYXRlcy5zaXpl
KCkpOwogICAgIGZvciAoYXV0byYgY2VydGlmaWNhdGUgOiBjb25maWd1cmF0aW9uLmNlcnRpZmlj
YXRlcykgewogICAgICAgICBpZiAoIW9yaWdpbi5pc1NhbWVPcmlnaW5BcyhjZXJ0aWZpY2F0ZS0+
b3JpZ2luKCkpKQotICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NF
cnJvciwgIkNlcnRpZmljYXRlIGRvZXMgbm90IGhhdmUgYSB2YWxpZCBvcmlnaW4iIH07CisgICAg
ICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiQ2VydGlmaWNh
dGUgZG9lcyBub3QgaGF2ZSBhIHZhbGlkIG9yaWdpbiJfcyB9OwogCiAgICAgICAgIGlmIChjdXJy
ZW50TWlsbGlTZWNvbmRzID4gY2VydGlmaWNhdGUtPmV4cGlyZXMoKSkKICAgICAgICAgICAgIHJl
dHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJDZXJ0aWZpY2F0ZSBoYXMgZXhw
aXJlZCJfcyB9OwpAQCAtNDY2LDcgKzQ2Niw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFJUQ1BlZXJD
b25uZWN0aW9uOjppbml0aWFsaXplQ29uZmlndXJhdGlvbihSVENDb25maWd1cmF0aW9uJiYKICAg
ICAgICAgcmV0dXJuIGNlcnRpZmljYXRlcy5yZWxlYXNlRXhjZXB0aW9uKCk7CiAKICAgICBpZiAo
IW1fYmFja2VuZC0+c2V0Q29uZmlndXJhdGlvbih7IHNlcnZlcnMucmVsZWFzZVJldHVyblZhbHVl
KCksIGNvbmZpZ3VyYXRpb24uaWNlVHJhbnNwb3J0UG9saWN5LCBjb25maWd1cmF0aW9uLmJ1bmRs
ZVBvbGljeSwgY29uZmlndXJhdGlvbi5ydGNwTXV4UG9saWN5LCBjb25maWd1cmF0aW9uLmljZUNh
bmRpZGF0ZVBvb2xTaXplLCBjZXJ0aWZpY2F0ZXMucmVsZWFzZVJldHVyblZhbHVlKCkgfSkpCi0g
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJCYWQgQ29uZmln
dXJhdGlvbiBQYXJhbWV0ZXJzIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxp
ZEFjY2Vzc0Vycm9yLCAiQmFkIENvbmZpZ3VyYXRpb24gUGFyYW1ldGVycyJfcyB9OwogCiAgICAg
bV9jb25maWd1cmF0aW9uID0gV1RGTW92ZShjb25maWd1cmF0aW9uKTsKICAgICByZXR1cm4geyB9
OwpAQCAtNDg1LDE5ICs0ODUsMTkgQEAgRXhjZXB0aW9uT3I8dm9pZD4gUlRDUGVlckNvbm5lY3Rp
b246OnNldENvbmZpZ3VyYXRpb24oUlRDQ29uZmlndXJhdGlvbiYmIGNvbmZpZ3UKIAogICAgIGlm
IChjb25maWd1cmF0aW9uLmNlcnRpZmljYXRlcy5zaXplKCkpIHsKICAgICAgICAgaWYgKGNvbmZp
Z3VyYXRpb24uY2VydGlmaWNhdGVzLnNpemUoKSAhPSBtX2NvbmZpZ3VyYXRpb24uY2VydGlmaWNh
dGVzLnNpemUoKSkKLSAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkTW9kaWZp
Y2F0aW9uRXJyb3IsICJDZXJ0aWZpY2F0ZXMgcGFyYW1ldGVycyBhcmUgZGlmZmVyZW50IiB9Owor
ICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRNb2RpZmljYXRpb25FcnJvciwg
IkNlcnRpZmljYXRlcyBwYXJhbWV0ZXJzIGFyZSBkaWZmZXJlbnQiX3MgfTsKIAogICAgICAgICBm
b3IgKGF1dG8mIGNlcnRpZmljYXRlIDogY29uZmlndXJhdGlvbi5jZXJ0aWZpY2F0ZXMpIHsKICAg
ICAgICAgICAgIGJvb2wgaXNUaGVyZSA9IG1fY29uZmlndXJhdGlvbi5jZXJ0aWZpY2F0ZXMuZmlu
ZElmKFsmY2VydGlmaWNhdGVdKGNvbnN0IGF1dG8mIGl0ZW0pIHsKICAgICAgICAgICAgICAgICBy
ZXR1cm4gaXRlbS5nZXQoKSA9PSBjZXJ0aWZpY2F0ZS5nZXQoKTsKICAgICAgICAgICAgIH0pICE9
IG5vdEZvdW5kOwogICAgICAgICAgICAgaWYgKCFpc1RoZXJlKQotICAgICAgICAgICAgICAgIHJl
dHVybiBFeGNlcHRpb24geyBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3IsICJBIGNlcnRpZmljYXRl
IGdpdmVuIGluIGNvbnN0cnVjdG9yIGlzIG5vdCBwcmVzZW50IiB9OworICAgICAgICAgICAgICAg
IHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3IsICJBIGNlcnRpZmlj
YXRlIGdpdmVuIGluIGNvbnN0cnVjdG9yIGlzIG5vdCBwcmVzZW50Il9zIH07CiAgICAgICAgIH0K
ICAgICB9CiAKICAgICBpZiAoIW1fYmFja2VuZC0+c2V0Q29uZmlndXJhdGlvbih7IHNlcnZlcnMu
cmVsZWFzZVJldHVyblZhbHVlKCksIGNvbmZpZ3VyYXRpb24uaWNlVHJhbnNwb3J0UG9saWN5LCBj
b25maWd1cmF0aW9uLmJ1bmRsZVBvbGljeSwgY29uZmlndXJhdGlvbi5ydGNwTXV4UG9saWN5LCBj
b25maWd1cmF0aW9uLmljZUNhbmRpZGF0ZVBvb2xTaXplLCB7IH0gfSkpCi0gICAgICAgIHJldHVy
biBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJCYWQgQ29uZmlndXJhdGlvbiBQYXJh
bWV0ZXJzIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9y
LCAiQmFkIENvbmZpZ3VyYXRpb24gUGFyYW1ldGVycyJfcyB9OwogCiAgICAgbV9jb25maWd1cmF0
aW9uID0gV1RGTW92ZShjb25maWd1cmF0aW9uKTsKICAgICByZXR1cm4geyB9OwpAQCAtOTE5LDcg
KzkxOSw3IEBAIGNvbnN0IFZlY3RvcjxSZWZQdHI8UlRDUnRwVHJhbnNjZWl2ZXI+PiYgUlRDUGVl
ckNvbm5lY3Rpb246OmdldFRyYW5zY2VpdmVycygpIGNvCiB2b2lkIFJUQ1BlZXJDb25uZWN0aW9u
OjpjaGFpbk9wZXJhdGlvbihSZWY8RGVmZXJyZWRQcm9taXNlPiYmIHByb21pc2UsIEZ1bmN0aW9u
PHZvaWQoUmVmPERlZmVycmVkUHJvbWlzZT4mJik+JiYgb3BlcmF0aW9uKQogewogICAgIGlmIChp
c0Nsb3NlZCgpKSB7Ci0gICAgICAgIHByb21pc2UtPnJlamVjdChJbnZhbGlkU3RhdGVFcnJvciwg
IlJUQ1BlZXJDb25uZWN0aW9uIGlzIGNsb3NlZCIpOworICAgICAgICBwcm9taXNlLT5yZWplY3Qo
SW52YWxpZFN0YXRlRXJyb3IsICJSVENQZWVyQ29ubmVjdGlvbiBpcyBjbG9zZWQiX3MpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCkBAIC05MjcsNyArOTI3LDcgQEAgdm9pZCBSVENQZWVyQ29u
bmVjdGlvbjo6Y2hhaW5PcGVyYXRpb24oUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlLCBG
dW5jdGlvbjwKICAgICAgICAgQVNTRVJUKG1faGFzUGVuZGluZ09wZXJhdGlvbik7CiAgICAgICAg
IGlmIChpc0Nsb3NlZCgpKSB7CiAgICAgICAgICAgICBmb3IgKGF1dG8mIG9wZXJhdGlvbiA6IHN0
ZDo6ZXhjaGFuZ2UobV9vcGVyYXRpb25zLCB7IH0pKQotICAgICAgICAgICAgICAgIG9wZXJhdGlv
bi5maXJzdC0+cmVqZWN0KEludmFsaWRTdGF0ZUVycm9yLCAiUlRDUGVlckNvbm5lY3Rpb24gaXMg
Y2xvc2VkIik7CisgICAgICAgICAgICAgICAgb3BlcmF0aW9uLmZpcnN0LT5yZWplY3QoSW52YWxp
ZFN0YXRlRXJyb3IsICJSVENQZWVyQ29ubmVjdGlvbiBpcyBjbG9zZWQiX3MpOwogICAgICAgICAg
ICAgbV9oYXNQZW5kaW5nT3BlcmF0aW9uID0gZmFsc2U7CiAgICAgICAgICAgICByZXR1cm47CiAg
ICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm1lci5jcHAKaW5kZXggY2IzZjdjZDliZjIxMjNl
OTFkMmRmN2E0NTFkMWM2ZTgxODllZDQ0ZC4uNGYyOWFiMTVlNmI1Njc3MTczMGFmOTQ0MmNlMGI0
MTQyNzBlMTZjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENSdHBTRnJhbWVUcmFuc2Zvcm1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm1lci5jcHAKQEAgLTM0Niw3ICszNDYs
NyBAQCBSVENSdHBTRnJhbWVUcmFuc2Zvcm1lcjo6VHJhbnNmb3JtUmVzdWx0IFJUQ1J0cFNGcmFt
ZVRyYW5zZm9ybWVyOjplbmNyeXB0RnJhbWUoUwogUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI6OlRy
YW5zZm9ybVJlc3VsdCBSVENSdHBTRnJhbWVUcmFuc2Zvcm1lcjo6dHJhbnNmb3JtKFNwYW48Y29u
c3QgdWludDhfdD4gZGF0YSkKIHsKICAgICBpZiAoIW1faGFzS2V5KQotICAgICAgICByZXR1cm4g
bWFrZVVuZXhwZWN0ZWQoRXJyb3JJbmZvcm1hdGlvbiB7IEVycm9yOjpLZXlJRCwgICJLZXkgaXMg
bm90IGluaXRpYWxpemVkIiwgMCB9KTsKKyAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKEVy
cm9ySW5mb3JtYXRpb24geyBFcnJvcjo6S2V5SUQsICAiS2V5IGlzIG5vdCBpbml0aWFsaXplZCJf
cywgMCB9KTsKIAogICAgIHJldHVybiBtX2lzRW5jcnlwdGluZyA/IGVuY3J5cHRGcmFtZShkYXRh
KSA6IGRlY3J5cHRGcmFtZShkYXRhKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2Vu
ZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJX
ZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwCmluZGV4IDEzMzMxYWNjMDQ0MGNkMDE3ODlj
NzMxNTgwZWI1NjkwNDFjMzgxY2QuLjMyM2MyODEzYzMyNGVmZWU2OThmNGMwZTRiOWZmZmNjNzlk
NGQ2YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGli
d2VicnRjL0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUGVlckNvbm5lY3Rp
b25CYWNrZW5kLmNwcApAQCAtMjYwLDcgKzI2MCw3IEBAIHZvaWQgTGliV2ViUlRDUGVlckNvbm5l
Y3Rpb25CYWNrZW5kOjpkb0NyZWF0ZU9mZmVyKFJUQ09mZmVyT3B0aW9ucyYmIG9wdGlvbnMpCiB2
b2lkIExpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZDo6ZG9DcmVhdGVBbnN3ZXIoUlRDQW5z
d2VyT3B0aW9ucyYmKQogewogICAgIGlmICghbV9pc1JlbW90ZURlc2NyaXB0aW9uU2V0KSB7Ci0g
ICAgICAgIGNyZWF0ZUFuc3dlckZhaWxlZChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwg
Ik5vIHJlbW90ZSBkZXNjcmlwdGlvbiBzZXQiIH0pOworICAgICAgICBjcmVhdGVBbnN3ZXJGYWls
ZWQoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJObyByZW1vdGUgZGVzY3JpcHRpb24g
c2V0Il9zIH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIG1fZW5kcG9pbnQtPmRvQ3Jl
YXRlQW5zd2VyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENSdHBUcmFuc2NlaXZlckJhY2tlbmQuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUnRwVHJhbnNj
ZWl2ZXJCYWNrZW5kLmNwcAppbmRleCBkMWY3M2FkN2Y0NzhmNjA0NzI1YjA2MDk5ZmRlNjkwYzcz
ZWQ1YjQ1Li40MTc2ZThkNmY3ODNhNTI1YTgwZjdhNjBlYWRjNjdmNmJmZDcwMTZjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJS
VENSdHBUcmFuc2NlaXZlckJhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1J0cFRyYW5zY2VpdmVyQmFja2VuZC5jcHAK
QEAgLTg5LDcgKzg5LDcgQEAgc3RhdGljIGlubGluZSBFeGNlcHRpb25Pcjx3ZWJydGM6OlJ0cENv
ZGVjQ2FwYWJpbGl0eT4gdG9SdHBDb2RlY0NhcGFiaWxpdHkoY29uc3QKICAgICBlbHNlIGlmIChj
b2RlYy5taW1lVHlwZS5zdGFydHNXaXRoKCJhdWRpby8iKSkKICAgICAgICAgcnRjQ29kZWMua2lu
ZCA9IGNyaWNrZXQ6Ok1FRElBX1RZUEVfQVVESU87CiAgICAgZWxzZQotICAgICAgICByZXR1cm4g
RXhjZXB0aW9uIHsgSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yLCAiUlRDUnRwQ29kZWNDYXBhYmls
aXR5IGJhZCBtaW1lVHlwZSIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRN
b2RpZmljYXRpb25FcnJvciwgIlJUQ1J0cENvZGVjQ2FwYWJpbGl0eSBiYWQgbWltZVR5cGUiX3Mg
fTsKIAogICAgIHJ0Y0NvZGVjLm5hbWUgPSBjb2RlYy5taW1lVHlwZS5zdWJzdHJpbmcoNikudXRm
OCgpLmRhdGEoKTsKICAgICBydGNDb2RlYy5jbG9ja19yYXRlID0gY29kZWMuY2xvY2tSYXRlOwpA
QCAtOTksNyArOTksNyBAQCBzdGF0aWMgaW5saW5lIEV4Y2VwdGlvbk9yPHdlYnJ0Yzo6UnRwQ29k
ZWNDYXBhYmlsaXR5PiB0b1J0cENvZGVjQ2FwYWJpbGl0eShjb25zdAogICAgIGZvciAoYXV0byBw
YXJhbWV0ZXIgOiBTdHJpbmdWaWV3KGNvZGVjLnNkcEZtdHBMaW5lKS5zcGxpdCgnOycpKSB7CiAg
ICAgICAgIGF1dG8gcG9zaXRpb24gPSBwYXJhbWV0ZXIuZmluZCgnPScpOwogICAgICAgICBpZiAo
cG9zaXRpb24gPT0gbm90Rm91bmQpCi0gICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52
YWxpZE1vZGlmaWNhdGlvbkVycm9yLCAiUlRDUnRwQ29kZWNDYXBhYmlsaXR5IHNkcEZtdExpbmUg
YmFkbHkgZm9ybWF0ZWQiIH07CisgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxp
ZE1vZGlmaWNhdGlvbkVycm9yLCAiUlRDUnRwQ29kZWNDYXBhYmlsaXR5IHNkcEZtdExpbmUgYmFk
bHkgZm9ybWF0ZWQiX3MgfTsKICAgICAgICAgcnRjQ29kZWMucGFyYW1ldGVycy5lbXBsYWNlKHBh
cmFtZXRlci5zdWJzdHJpbmcoMCwgcG9zaXRpb24pLnV0ZjgoKS5kYXRhKCksIHBhcmFtZXRlci5z
dWJzdHJpbmcocG9zaXRpb24gKyAxKS51dGY4KCkuZGF0YSgpKTsKICAgICB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJU
Q1V0aWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRj
L0xpYldlYlJUQ1V0aWxzLmNwcAppbmRleCA0NWU0ZDE3MzYzZmYxYjY0MDdlM2MwOTljMGZjN2Y0
MjgyZmE2OGIwLi45ZjE5NmYzNzhiYjc3NzY3M2NmNzEyMGNhYTRmYjQ2NDUwMWY0YTg1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJX
ZWJSVENVdGlscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9s
aWJ3ZWJydGMvTGliV2ViUlRDVXRpbHMuY3BwCkBAIC0zNjAsNyArMzYwLDcgQEAgRXhjZXB0aW9u
IHRvRXhjZXB0aW9uKGNvbnN0IHdlYnJ0Yzo6UlRDRXJyb3ImIGVycm9yKQogewogICAgIEFTU0VS
VCghZXJyb3Iub2soKSk7CiAKLSAgICByZXR1cm4gRXhjZXB0aW9uIHsgdG9FeGNlcHRpb25Db2Rl
KGVycm9yLnR5cGUoKSksIGVycm9yLm1lc3NhZ2UoKSB9OworICAgIHJldHVybiBFeGNlcHRpb24g
eyB0b0V4Y2VwdGlvbkNvZGUoZXJyb3IudHlwZSgpKSwgU3RyaW5nIHsgZXJyb3IubWVzc2FnZSgp
IH0gfTsKIH0KIAogc3RhdGljIGlubGluZSBSVENJY2VDb21wb25lbnQgdG9SVENJY2VDb21wb25l
bnQoaW50IGNvbXBvbmVudCkKQEAgLTQ1NSw3ICs0NTUsNyBAQCBSZWZQdHI8UlRDRXJyb3I+IHRv
UlRDRXJyb3IoY29uc3Qgd2VicnRjOjpSVENFcnJvciYgcnRjRXJyb3IpCiAgICAgYXV0byBkZXRh
aWwgPSB0b1JUQ0Vycm9yRGV0YWlsVHlwZShydGNFcnJvci5lcnJvcl9kZXRhaWwoKSk7CiAgICAg
aWYgKCFkZXRhaWwpCiAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgIHJldHVybiBSVENFcnJv
cjo6Y3JlYXRlKCpkZXRhaWwsIHJ0Y0Vycm9yLm1lc3NhZ2UoKSk7CisgICAgcmV0dXJuIFJUQ0Vy
cm9yOjpjcmVhdGUoKmRldGFpbCwgU3RyaW5nIHsgcnRjRXJyb3IubWVzc2FnZSgpIH0pOwogfQog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21vZGVsLWVsZW1lbnQvc2NlbmVraXQvU2NlbmVLaXRNb2RlbExvYWRlclVTRC5tbSBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9zY2VuZWtpdC9TY2VuZUtpdE1vZGVs
TG9hZGVyVVNELm1tCmluZGV4IDA5ZWM4ZjYwM2U5ZDAyMmIzNzhkZGEwZTQyN2ZlYzUyMWZkZDUy
ZDIuLmNhYjRiOGRlMjAyZTc3ZDcwMjgyYjU5NGExYmVmYmQ3NWIwNmNiMmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9zY2VuZWtpdC9TY2VuZUtpdE1v
ZGVsTG9hZGVyVVNELm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVu
dC9zY2VuZWtpdC9TY2VuZUtpdE1vZGVsTG9hZGVyVVNELm1tCkBAIC0xMDIsNyArMTAyLDcgQEAg
c3RhdGljIFJldGFpblB0cjxOU1VSTD4gd3JpdGVUb1RlbXBvcmFyeUZpbGUoV2ViQ29yZTo6TW9k
ZWwmIG1vZGVsU291cmNlKQogICAgIC8vIGluaXRpYWxpemVyIGJ1dCBjdXJyZW50bHkgdGhhdCBk
b2VzIG5vdCB3b3JrLgogCiAgICAgRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlIGZpbGVI
YW5kbGU7Ci0gICAgYXV0byBmaWxlUGF0aCA9IEZpbGVTeXN0ZW06Om9wZW5UZW1wb3JhcnlGaWxl
KCJNb2RlbEZpbGUiLCBmaWxlSGFuZGxlLCAiLnVzZHoiKTsKKyAgICBhdXRvIGZpbGVQYXRoID0g
RmlsZVN5c3RlbTo6b3BlblRlbXBvcmFyeUZpbGUoIk1vZGVsRmlsZSJfcywgZmlsZUhhbmRsZSwg
Ii51c2R6Il9zKTsKICAgICBBU1NFUlQoRmlsZVN5c3RlbTo6aXNIYW5kbGVWYWxpZChmaWxlSGFu
ZGxlKSk7CiAKICAgICBzaXplX3QgYnl0ZUNvdW50ID0gRmlsZVN5c3RlbTo6d3JpdGVUb0ZpbGUo
ZmlsZUhhbmRsZSwgbW9kZWxTb3VyY2UuZGF0YSgpLT5tYWtlQ29udGlndW91cygpLT5kYXRhKCks
IG1vZGVsU291cmNlLmRhdGEoKS0+c2l6ZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5jcHAKaW5kZXggZGYyYjVj
MjY0ZjNhNWNlMmMxZTFjYjZiNzYzNDBhMDBmYTQwY2NlMC4uNDIyMzVlZWExYmZkMWNkMWI3MDcw
YjY5MDk0ODQyY2Y2ZTkzNTRiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9w
YXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5jcHAKQEAgLTIxNiw3ICsyMTYsNyBA
QCBzdGF0aWMgRXhjZXB0aW9uT3I8c3RkOjp0dXBsZTxTdHJpbmcsIFZlY3RvcjxTdHJpbmc+Pj4g
Y2hlY2tBbmRDYW5vbmljYWxpemVEZXRhaQogCiAgICAgICAgICAgICAgICAgYXV0byBhZGRSZXN1
bHQgPSBzZWVuU2hpcHBpbmdPcHRpb25JRHMuYWRkKHNoaXBwaW5nT3B0aW9uLmlkKTsKICAgICAg
ICAgICAgICAgICBpZiAoIWFkZFJlc3VsdC5pc05ld0VudHJ5KQotICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiU2hpcHBpbmcgb3B0aW9uIElEcyBtdXN0
IGJlIHVuaXF1ZS4iIH07CisgICAgICAgICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBU
eXBlRXJyb3IsICJTaGlwcGluZyBvcHRpb24gSURzIG11c3QgYmUgdW5pcXVlLiJfcyB9OwogCiAj
aWYgRU5BQkxFKFBBWU1FTlRfUkVRVUVTVF9TRUxFQ1RFRF9TSElQUElOR19PUFRJT04pCiAgICAg
ICAgICAgICAgICAgaWYgKHNoaXBwaW5nT3B0aW9uLnNlbGVjdGVkKQpAQCAtMzc1LDcgKzM3NSw3
IEBAIHZvaWQgUGF5bWVudFJlcXVlc3Q6OnNob3coRG9jdW1lbnQmIGRvY3VtZW50LCBSZWZQdHI8
RE9NUHJvbWlzZT4mJiBkZXRhaWxzUHJvbWlzCiAKICAgICBhdXRvKiB3aW5kb3cgPSBkb2N1bWVu
dC5mcmFtZSgpLT53aW5kb3coKTsKICAgICBpZiAoIXdpbmRvdyB8fCAhd2luZG93LT5jb25zdW1l
VHJhbnNpZW50QWN0aXZhdGlvbigpKSB7Ci0gICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlv
biB7IFNlY3VyaXR5RXJyb3IsICJzaG93KCkgbXVzdCBiZSB0cmlnZ2VyZWQgYnkgdXNlciBhY3Rp
dmF0aW9uLiIgfSk7CisgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IFNlY3VyaXR5
RXJyb3IsICJzaG93KCkgbXVzdCBiZSB0cmlnZ2VyZWQgYnkgdXNlciBhY3RpdmF0aW9uLiJfcyB9
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9waWN0dXJlaW5waWN0dXJlL0hUTUxWaWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGljdHVyZWlucGljdHVyZS9IVE1MVmlkZW9F
bGVtZW50UGljdHVyZUluUGljdHVyZS5jcHAKaW5kZXggZjJmMDIzMTAyNzQ1YjlmZDIzZThlOTQy
ZDYwOWE3ZTliZTA2MTBkOC4uYmJlMmNiYzhiOWNiYWU0ZjJmYjBlYmRlOTRkNTk1YWY5ZDhmY2Ji
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9waWN0dXJlaW5waWN0dXJlL0hU
TUxWaWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3BpY3R1cmVpbnBpY3R1cmUvSFRNTFZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmUu
Y3BwCkBAIC04MSwyMyArODEsMjMgQEAgdm9pZCBIVE1MVmlkZW9FbGVtZW50UGljdHVyZUluUGlj
dHVyZTo6cHJvdmlkZVBpY3R1cmVJblBpY3R1cmVUbyhIVE1MVmlkZW9FbGVtZW4KIHZvaWQgSFRN
TFZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmU6OnJlcXVlc3RQaWN0dXJlSW5QaWN0dXJlKEhU
TUxWaWRlb0VsZW1lbnQmIHZpZGVvRWxlbWVudCwgUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9t
aXNlKQogewogICAgIGlmICghc3VwcG9ydHNQaWN0dXJlSW5QaWN0dXJlKCkpIHsKLSAgICAgICAg
cHJvbWlzZS0+cmVqZWN0KE5vdFN1cHBvcnRlZEVycm9yLCAiVGhlIFBpY3R1cmUtaW4tUGljdHVy
ZSBtb2RlIGlzIG5vdCBzdXBwb3J0ZWQuIik7CisgICAgICAgIHByb21pc2UtPnJlamVjdChOb3RT
dXBwb3J0ZWRFcnJvciwgIlRoZSBQaWN0dXJlLWluLVBpY3R1cmUgbW9kZSBpcyBub3Qgc3VwcG9y
dGVkLiJfcyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBpZiAodmlkZW9FbGVtZW50
LnJlYWR5U3RhdGUoKSA9PSBIVE1MTWVkaWFFbGVtZW50RW51bXM6OkhBVkVfTk9USElORykgewot
ICAgICAgICBwcm9taXNlLT5yZWplY3QoSW52YWxpZFN0YXRlRXJyb3IsICJUaGUgdmlkZW8gZWxl
bWVudCBpcyBub3QgcmVhZHkgdG8gZW50ZXIgdGhlIFBpY3R1cmUtaW4tUGljdHVyZSBtb2RlLiIp
OworICAgICAgICBwcm9taXNlLT5yZWplY3QoSW52YWxpZFN0YXRlRXJyb3IsICJUaGUgdmlkZW8g
ZWxlbWVudCBpcyBub3QgcmVhZHkgdG8gZW50ZXIgdGhlIFBpY3R1cmUtaW4tUGljdHVyZSBtb2Rl
LiJfcyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBpZiAoIXZpZGVvRWxlbWVudC52
aWRlb1RyYWNrcygpIHx8ICF2aWRlb0VsZW1lbnQudmlkZW9UcmFja3MoKS0+bGVuZ3RoKCkpIHsK
LSAgICAgICAgcHJvbWlzZS0+cmVqZWN0KEludmFsaWRTdGF0ZUVycm9yLCAiVGhlIHZpZGVvIGVs
ZW1lbnQgZG9lcyBub3QgaGF2ZSBhIHZpZGVvIHRyYWNrIG9yIGl0IGhhcyBub3QgZGV0ZWN0ZWQg
YSB2aWRlbyB0cmFjayB5ZXQuIik7CisgICAgICAgIHByb21pc2UtPnJlamVjdChJbnZhbGlkU3Rh
dGVFcnJvciwgIlRoZSB2aWRlbyBlbGVtZW50IGRvZXMgbm90IGhhdmUgYSB2aWRlbyB0cmFjayBv
ciBpdCBoYXMgbm90IGRldGVjdGVkIGEgdmlkZW8gdHJhY2sgeWV0LiJfcyk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKICAgICBib29sIHVzZXJBY3RpdmF0aW9uUmVxdWlyZWQgPSAhdmlkZW9F
bGVtZW50LmRvY3VtZW50KCkucGljdHVyZUluUGljdHVyZUVsZW1lbnQoKTsKICAgICBpZiAodXNl
ckFjdGl2YXRpb25SZXF1aXJlZCAmJiAhVXNlckdlc3R1cmVJbmRpY2F0b3I6OnByb2Nlc3NpbmdV
c2VyR2VzdHVyZSgpKSB7Ci0gICAgICAgIHByb21pc2UtPnJlamVjdChOb3RBbGxvd2VkRXJyb3Is
ICJUaGUgcmVxdWVzdCBpcyBub3QgdHJpZ2dlcmVkIGJ5IGEgdXNlciBhY3RpdmF0aW9uLiIpOwor
ICAgICAgICBwcm9taXNlLT5yZWplY3QoTm90QWxsb3dlZEVycm9yLCAiVGhlIHJlcXVlc3QgaXMg
bm90IHRyaWdnZXJlZCBieSBhIHVzZXIgYWN0aXZhdGlvbi4iX3MpOwogICAgICAgICByZXR1cm47
CiAgICAgfQogCkBAIC0xMDgsNyArMTA4LDcgQEAgdm9pZCBIVE1MVmlkZW9FbGVtZW50UGljdHVy
ZUluUGljdHVyZTo6cmVxdWVzdFBpY3R1cmVJblBpY3R1cmUoSFRNTFZpZGVvRWxlbWVudCYKICAg
ICB9CiAKICAgICBpZiAodmlkZW9FbGVtZW50UGljdHVyZUluUGljdHVyZS0+bV9lbnRlclBpY3R1
cmVJblBpY3R1cmVQcm9taXNlIHx8IHZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmUtPm1fZXhp
dFBpY3R1cmVJblBpY3R1cmVQcm9taXNlKSB7Ci0gICAgICAgIHByb21pc2UtPnJlamVjdChOb3RB
bGxvd2VkRXJyb3IsICJUaGUgdmlkZW8gZWxlbWVudCBpcyBwcm9jZXNzaW5nIGEgUGljdHVyZS1p
bi1QaWN0dXJlIHJlcXVlc3QuIik7CisgICAgICAgIHByb21pc2UtPnJlamVjdChOb3RBbGxvd2Vk
RXJyb3IsICJUaGUgdmlkZW8gZWxlbWVudCBpcyBwcm9jZXNzaW5nIGEgUGljdHVyZS1pbi1QaWN0
dXJlIHJlcXVlc3QuIl9zKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMTE2LDcgKzEx
Niw3IEBAIHZvaWQgSFRNTFZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmU6OnJlcXVlc3RQaWN0
dXJlSW5QaWN0dXJlKEhUTUxWaWRlb0VsZW1lbnQmCiAgICAgICAgIHZpZGVvRWxlbWVudFBpY3R1
cmVJblBpY3R1cmUtPm1fZW50ZXJQaWN0dXJlSW5QaWN0dXJlUHJvbWlzZSA9IFdURk1vdmUocHJv
bWlzZSk7CiAgICAgICAgIHZpZGVvRWxlbWVudC53ZWJraXRTZXRQcmVzZW50YXRpb25Nb2RlKEhU
TUxWaWRlb0VsZW1lbnQ6OlZpZGVvUHJlc2VudGF0aW9uTW9kZTo6UGljdHVyZUluUGljdHVyZSk7
CiAgICAgfSBlbHNlCi0gICAgICAgIHByb21pc2UtPnJlamVjdChOb3RTdXBwb3J0ZWRFcnJvciwg
IlRoZSB2aWRlbyBlbGVtZW50IGRvZXMgbm90IHN1cHBvcnQgdGhlIFBpY3R1cmUtaW4tUGljdHVy
ZSBtb2RlLiIpOworICAgICAgICBwcm9taXNlLT5yZWplY3QoTm90U3VwcG9ydGVkRXJyb3IsICJU
aGUgdmlkZW8gZWxlbWVudCBkb2VzIG5vdCBzdXBwb3J0IHRoZSBQaWN0dXJlLWluLVBpY3R1cmUg
bW9kZS4iX3MpOwogfQogCiBib29sIEhUTUxWaWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJlOjph
dXRvUGljdHVyZUluUGljdHVyZShIVE1MVmlkZW9FbGVtZW50JiB2aWRlb0VsZW1lbnQpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvWW91VHViZVBsdWdpblJlcGxh
Y2VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9Zb3VUdWJlUGx1Z2lu
UmVwbGFjZW1lbnQuY3BwCmluZGV4IDk3OWYyMjQ1OTA3MjBmODI5MzM1ZDYwYTNhOGQ4YWU1YzNi
NzIyNDMuLmRkMTZmODkzZjJkNjk1MmNjNWYwMDMwOGY5ZDBkOTlhYjhiMGU4YTIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9Zb3VUdWJlUGx1Z2luUmVwbGFjZW1l
bnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9Zb3VUdWJlUGx1Z2lu
UmVwbGFjZW1lbnQuY3BwCkBAIC04NCwxNiArODQsMTYgQEAgYXV0byBZb3VUdWJlUGx1Z2luUmVw
bGFjZW1lbnQ6Omluc3RhbGxSZXBsYWNlbWVudChTaGFkb3dSb290JiByb290KSAtPiBJbnN0YWxs
UmUKICAgICByb290LmFwcGVuZENoaWxkKCptX2VtYmVkU2hhZG93RWxlbWVudCk7CiAKICAgICBh
dXRvIGlmcmFtZUVsZW1lbnQgPSBIVE1MSUZyYW1lRWxlbWVudDo6Y3JlYXRlKEhUTUxOYW1lczo6
aWZyYW1lVGFnLCBtX3BhcmVudEVsZW1lbnQtPmRvY3VtZW50KCkpOwotICAgIGlmIChtX2F0dHJp
YnV0ZXMuY29udGFpbnMoIndpZHRoIikpCisgICAgaWYgKG1fYXR0cmlidXRlcy5jb250YWlucygi
d2lkdGgiX3MpKQogICAgICAgICBpZnJhbWVFbGVtZW50LT5zZXRBdHRyaWJ1dGVXaXRob3V0U3lu
Y2hyb25pemF0aW9uKEhUTUxOYW1lczo6d2lkdGhBdHRyLCBBdG9tU3RyaW5nKCIxMDAlIiwgQXRv
bVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKIAotICAgIGNvbnN0IGF1dG8mIGhlaWdo
dFZhbHVlID0gbV9hdHRyaWJ1dGVzLmZpbmQoImhlaWdodCIpOworICAgIGNvbnN0IGF1dG8mIGhl
aWdodFZhbHVlID0gbV9hdHRyaWJ1dGVzLmZpbmQoImhlaWdodCJfcyk7CiAgICAgaWYgKGhlaWdo
dFZhbHVlICE9IG1fYXR0cmlidXRlcy5lbmQoKSkgewogICAgICAgICBpZnJhbWVFbGVtZW50LT5z
ZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjpzdHlsZUF0dHIsIEF0b21TdHJpbmcoIm1heC1oZWlnaHQ6
IDEwMCUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgICAgICBpZnJh
bWVFbGVtZW50LT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKEhUTUxOYW1lczo6
aGVpZ2h0QXR0ciwgaGVpZ2h0VmFsdWUtPnZhbHVlKTsKICAgICB9CiAKLSAgICBpZnJhbWVFbGVt
ZW50LT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKEhUTUxOYW1lczo6c3JjQXR0
ciwgeW91VHViZVVSTChtX2F0dHJpYnV0ZXMuZ2V0KCJzcmMiKSkpOworICAgIGlmcmFtZUVsZW1l
bnQtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oSFRNTE5hbWVzOjpzcmNBdHRy
LCB5b3VUdWJlVVJMKG1fYXR0cmlidXRlcy5nZXQoInNyYyJfcykpKTsKICAgICBpZnJhbWVFbGVt
ZW50LT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKEhUTUxOYW1lczo6ZnJhbWVi
b3JkZXJBdHRyLCBBdG9tU3RyaW5nKCIwIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVy
YWwpKTsKICAgICAKICAgICAvLyBEaXNhYmxlIGZyYW1lIGZsYXR0ZW5pbmcgZm9yIHRoaXMgaWZy
YW1lLgpAQCAtMjMxLDExICsyMzEsMTEgQEAgc3RhdGljIFVSTCBwcm9jZXNzQW5kQ3JlYXRlWW91
VHViZVVSTChjb25zdCBVUkwmIHVybCwgYm9vbCYgaXNZb3VUdWJlU2hvcnRlbmVkVVIKICAgICBp
ZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UocGF0aCwgIi93YXRjaCIpKSB7CiAgICAg
ICAgIGlmICghcXVlcnkuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICBjb25zdCBhdXRvJiBxdWVy
eURpY3Rpb25hcnkgPSBxdWVyeUtleXNBbmRWYWx1ZXMocXVlcnkpOwotICAgICAgICAgICAgU3Ry
aW5nIHZpZGVvSUQgPSB2YWx1ZUZvcktleShxdWVyeURpY3Rpb25hcnksICJ2Iik7CisgICAgICAg
ICAgICBTdHJpbmcgdmlkZW9JRCA9IHZhbHVlRm9yS2V5KHF1ZXJ5RGljdGlvbmFyeSwgInYiX3Mp
OwogICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAoIXZpZGVvSUQuaXNFbXB0eSgpKSB7CiAg
ICAgICAgICAgICAgICAgY29uc3QgYXV0byYgZnJhZ21lbnREaWN0aW9uYXJ5ID0gcXVlcnlLZXlz
QW5kVmFsdWVzKHVybC5mcmFnbWVudElkZW50aWZpZXIoKSk7Ci0gICAgICAgICAgICAgICAgU3Ry
aW5nIHRpbWVJRCA9IHZhbHVlRm9yS2V5KGZyYWdtZW50RGljdGlvbmFyeSwgInQiKTsKKyAgICAg
ICAgICAgICAgICBTdHJpbmcgdGltZUlEID0gdmFsdWVGb3JLZXkoZnJhZ21lbnREaWN0aW9uYXJ5
LCAidCJfcyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVlvdVR1YmVVUkwodmlkZW9J
RCwgdGltZUlEKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtMjQ2LDEwICsyNDYsMTAg
QEAgc3RhdGljIFVSTCBwcm9jZXNzQW5kQ3JlYXRlWW91VHViZVVSTChjb25zdCBVUkwmIHVybCwg
Ym9vbCYgaXNZb3VUdWJlU2hvcnRlbmVkVVIKICAgICAgICAgICAgIAogICAgICAgICAgICAgaWYg
KCFxdWVyeS5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgICAgICBjb25zdCBhdXRvJiBxdWVyeURp
Y3Rpb25hcnkgPSBxdWVyeUtleXNBbmRWYWx1ZXMocXVlcnkpOwotICAgICAgICAgICAgICAgIFN0
cmluZyB2aWRlb0lEID0gdmFsdWVGb3JLZXkocXVlcnlEaWN0aW9uYXJ5LCAidiIpOworICAgICAg
ICAgICAgICAgIFN0cmluZyB2aWRlb0lEID0gdmFsdWVGb3JLZXkocXVlcnlEaWN0aW9uYXJ5LCAi
diJfcyk7CiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgaWYgKCF2aWRlb0lELmlz
RW1wdHkoKSkgewotICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdGltZUlEID0gdmFsdWVGb3JL
ZXkocXVlcnlEaWN0aW9uYXJ5LCAidCIpOworICAgICAgICAgICAgICAgICAgICBTdHJpbmcgdGlt
ZUlEID0gdmFsdWVGb3JLZXkocXVlcnlEaWN0aW9uYXJ5LCAidCJfcyk7CiAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBjcmVhdGVZb3VUdWJlVVJMKHZpZGVvSUQsIHRpbWVJRCk7CiAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJ
bXBsLmNwcAppbmRleCBjMjNhOGQ2N2NiNDgxMjMzZjdjYjRiNTE5YjEzNmIyMjE5MDZiZWJlLi42
MDc1M2ZlY2UzNWEyOWY4OGU5MjYyMGEyMGI4MDlhZmU5NmNjNzIxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJ
bXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25p
dGlvbkNhcHR1cmVTb3VyY2VJbXBsLmNwcApAQCAtOTIsNyArOTIsNyBAQCBib29sIFNwZWVjaFJl
Y29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6OnVwZGF0ZURhdGFTb3VyY2UoY29uc3QgQ0FBdWRp
b1N0cmVhbURlcwogICAgIGlmIChkYXRhU291cmNlLT5zZXRJbnB1dEZvcm1hdChhdWRpb0Rlc2Ny
aXB0aW9uKSkgewogICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCB3ZWFrVGhpcyA9IFdl
YWtQdHIgeyAqdGhpcyB9XSB7CiAgICAgICAgICAgICBpZiAod2Vha1RoaXMpCi0gICAgICAgICAg
ICAgICAgbV9zdGF0ZVVwZGF0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVh
dGVFcnJvcihtX2NsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCAiVW5hYmxlIHRvIHNldCBpbnB1
dCBmb3JtYXQiIH0pKTsKKyAgICAgICAgICAgICAgICBtX3N0YXRlVXBkYXRlQ2FsbGJhY2soU3Bl
ZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZUVycm9yKG1fY2xpZW50SWRlbnRpZmllciwgU3Bl
ZWNoUmVjb2duaXRpb25FcnJvciB7IFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpBdWRpb0Nh
cHR1cmUsICJVbmFibGUgdG8gc2V0IGlucHV0IGZvcm1hdCJfcyB9KSk7CiAgICAgICAgIH0pOwog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpAQCAtMTAwLDcgKzEwMCw3IEBAIGJvb2wgU3Bl
ZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbDo6dXBkYXRlRGF0YVNvdXJjZShjb25zdCBD
QUF1ZGlvU3RyZWFtRGVzCiAgICAgaWYgKGRhdGFTb3VyY2UtPnNldE91dHB1dEZvcm1hdChhdWRp
b0Rlc2NyaXB0aW9uKSkgewogICAgICAgICBjYWxsT25NYWluVGhyZWFkKFt0aGlzLCB3ZWFrVGhp
cyA9IFdlYWtQdHIgeyAqdGhpcyB9XSB7CiAgICAgICAgICAgICBpZiAod2Vha1RoaXMpCi0gICAg
ICAgICAgICAgICAgbV9zdGF0ZVVwZGF0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRl
OjpjcmVhdGVFcnJvcihtX2NsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uRXJyb3Ig
eyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCAiVW5hYmxlIHRvIHNl
dCBvdXRwdXQgZm9ybWF0IiB9KSk7CisgICAgICAgICAgICAgICAgbV9zdGF0ZVVwZGF0ZUNhbGxi
YWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihtX2NsaWVudElkZW50aWZp
ZXIsIFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6
QXVkaW9DYXB0dXJlLCAiVW5hYmxlIHRvIHNldCBvdXRwdXQgZm9ybWF0Il9zIH0pKTsKICAgICAg
ICAgfSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CkBAIC0xNTcsMTMgKzE1NywxMyBA
QCB2b2lkIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6OnNvdXJjZVN0b3BwZWQo
KQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgQVNTRVJUKG1fc291cmNlLT5j
YXB0dXJlRGlkRmFpbCgpKTsKLSAgICBtX3N0YXRlVXBkYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2du
aXRpb25VcGRhdGU6OmNyZWF0ZUVycm9yKG1fY2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2du
aXRpb25FcnJvciB7IFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpBdWRpb0NhcHR1cmUsICJT
b3VyY2UgaXMgc3RvcHBlZCIgfSkpOworICAgIG1fc3RhdGVVcGRhdGVDYWxsYmFjayhTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IobV9jbGllbnRJZGVudGlmaWVyLCBTcGVlY2hS
ZWNvZ25pdGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlvQ2FwdHVy
ZSwgIlNvdXJjZSBpcyBzdG9wcGVkIl9zIH0pKTsKIH0KIAogdm9pZCBTcGVlY2hSZWNvZ25pdGlv
bkNhcHR1cmVTb3VyY2VJbXBsOjpzb3VyY2VNdXRlZENoYW5nZWQoKQogewogICAgIEFTU0VSVChp
c01haW5UaHJlYWQoKSk7Ci0gICAgbV9zdGF0ZVVwZGF0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0
aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihtX2NsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0
aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCAiU291
cmNlIGlzIG11dGVkIiB9KSk7CisgICAgbV9zdGF0ZVVwZGF0ZUNhbGxiYWNrKFNwZWVjaFJlY29n
bml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihtX2NsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29n
bml0aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCAi
U291cmNlIGlzIG11dGVkIl9zIH0pKTsKIH0KIAogdm9pZCBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1
cmVTb3VyY2VJbXBsOjptdXRlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3BlZWNoL2NvY29hL1dlYlNwZWVjaFJlY29nbml6ZXJUYXNrTW9jay5tbSBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL2NvY29hL1dlYlNwZWVjaFJlY29nbml6ZXJUYXNrTW9jay5tbQpp
bmRleCBjNzI3NTliNzY3YWE5NTg3ZDczN2VhNDAyOWEzMTY3ZjhjOTdmMmU4Li5lMWQ5YzY2NjUw
MDQwYWEzMWIxNmQyYmMyYzlhZGRjZDRjZjRkMGMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3NwZWVjaC9jb2NvYS9XZWJTcGVlY2hSZWNvZ25pemVyVGFza01vY2subW0KKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvY29jb2EvV2ViU3BlZWNoUmVjb2duaXpl
clRhc2tNb2NrLm1tCkBAIC02Myw3ICs2Myw3IEBAIC0gKHZvaWQpYXVkaW9TYW1wbGVzQXZhaWxh
YmxlOihDTVNhbXBsZUJ1ZmZlclJlZilzYW1wbGVCdWZmZXIKICAgICB9CiAKICAgICAvLyBGYWtl
IHNvbWUgcmVjb2duaXRpb24gcmVzdWx0cy4KLSAgICBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0
aXZlRGF0YSBhbHRlcm5hdGl2ZSB7ICJUZXN0IiwgMS4wIH07CisgICAgU3BlZWNoUmVjb2duaXRp
b25BbHRlcm5hdGl2ZURhdGEgYWx0ZXJuYXRpdmUgeyAiVGVzdCJfcywgMS4wIH07CiAgICAgX2Rl
bGVnYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZVJlc3VsdChfaWRl
bnRpZmllciwgeyBTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEgeyB7IFdURk1vdmUoYWx0ZXJu
YXRpdmUpIH0sIHRydWUgfSB9KSk7CiAKICAgICBpZiAoIV9kb011bHRpcGxlUmVjb2duaXRpb25z
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdG9yYWdlL1N0b3JhZ2VNYW5h
Z2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RvcmFnZS9TdG9yYWdlTWFuYWdlci5j
cHAKaW5kZXggMTg4ZDMwYjYxOThiMTYxZTFiNDdhZTk3NjhlMGMxZTk1NzY2NTNhYi4uNjM2YjQ4
YzlmMDQ3OWJjNWFlMzE5NGVhMWU4OTA1Njk2NTcxN2E0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3N0b3JhZ2UvU3RvcmFnZU1hbmFnZXIuY3BwCkBAIC03Miw3ICs3Miw3IEBA
IHN0YXRpYyBFeGNlcHRpb25PcjxDb25uZWN0aW9uSW5mbz4gY29ubmVjdGlvbkluZm8oTmF2aWdh
dG9yQmFzZSogbmF2aWdhdG9yKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0
YXRlRXJyb3IsICJPcmlnaW4gaXMgaW52YWxpZCJfcyB9OwogCiAgICAgaWYgKCFvcmlnaW4tPmNh
bkFjY2Vzc1N0b3JhZ2VNYW5hZ2VyKCkpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBl
RXJyb3IsICJPcmlnaW4gc2hvdWxkIG5vdCBhY2Nlc3Mgc3RvcmFnZSIgfTsKKyAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIk9yaWdpbiBzaG91bGQgbm90IGFjY2VzcyBzdG9y
YWdlIl9zIH07CiAKICAgICBpZiAoaXM8RG9jdW1lbnQ+KGNvbnRleHQpKSB7CiAgICAgICAgIGlm
IChhdXRvKiBjb25uZWN0aW9uID0gZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpLT5zdG9yYWdl
Q29ubmVjdGlvbigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWItbG9j
a3MvV2ViTG9ja01hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWItbG9ja3Mv
V2ViTG9ja01hbmFnZXIuY3BwCmluZGV4IDIxOTk5MmY2YjViMTRjNWI2MDI3NTQ1NmFkZGIwODU3
Nzg2ZTEyNWYuLmExNjFiM2QyYzA1YzNmNDljOWIwYThmOWU2OTY2ZDQ1YmFhZGVmZWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNYW5hZ2VyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrTWFuYWdlci5j
cHAKQEAgLTMzOCw3ICszMzgsNyBAQCB2b2lkIFdlYkxvY2tNYW5hZ2VyOjpzaWduYWxUb0Fib3J0
VGhlUmVxdWVzdChXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmllcikKICAgICAgICAgaWYg
KHdhc0Fib3J0ZWQgJiYgd2Vha1RoaXMpCiAgICAgICAgICAgICB3ZWFrVGhpcy0+bV9wZW5kaW5n
UmVxdWVzdHMucmVtb3ZlKGxvY2tJZGVudGlmaWVyKTsKICAgICB9KTsKLSAgICBzZXR0bGVSZWxl
YXNlUHJvbWlzZShsb2NrSWRlbnRpZmllciwgRXhjZXB0aW9uIHsgQWJvcnRFcnJvciwgIkxvY2sg
cmVxdWVzdCB3YXMgYWJvcnRlZCB2aWEgQWJvcnRTaWduYWwiIH0pOworICAgIHNldHRsZVJlbGVh
c2VQcm9taXNlKGxvY2tJZGVudGlmaWVyLCBFeGNlcHRpb24geyBBYm9ydEVycm9yLCAiTG9jayBy
ZXF1ZXN0IHdhcyBhYm9ydGVkIHZpYSBBYm9ydFNpZ25hbCJfcyB9KTsKIH0KIAogdm9pZCBXZWJM
b2NrTWFuYWdlcjo6c2V0dGxlUmVsZWFzZVByb21pc2UoV2ViTG9ja0lkZW50aWZpZXIgbG9ja0lk
ZW50aWZpZXIsIEV4Y2VwdGlvbk9yPEpTQzo6SlNWYWx1ZT4mJiByZXN1bHQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTGlzdGVuZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0xpc3RlbmVyLmNwcAppbmRleCAwMjBl
NzZmNDM2NGU2ZGVmOGY4MTcyNGRiN2MyZmQ4YWU1NzAyMTc5Li43NmM3NmQ3NTQ0ZTcwYzlhY2Qz
YmRkZjk2ZjM0YzhhYzZiYTlmZGZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvTGlzdGVuZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9MaXN0ZW5lci5jcHAKQEAgLTQwLDE1ICs0MCwxNSBAQAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBBdWRpb0xpc3RlbmVyOjpBdWRpb0xpc3RlbmVyKEJhc2VBdWRpb0NvbnRl
eHQmIGNvbnRleHQpCi0gICAgOiBtX3Bvc2l0aW9uWChBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4
dCwgInBvc2l0aW9uWCIsIDAuMCwgLUZMVF9NQVgsIEZMVF9NQVgsIEF1dG9tYXRpb25SYXRlOjpB
UmF0ZSkpCi0gICAgLCBtX3Bvc2l0aW9uWShBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCwgInBv
c2l0aW9uWSIsIDAuMCwgLUZMVF9NQVgsIEZMVF9NQVgsIEF1dG9tYXRpb25SYXRlOjpBUmF0ZSkp
Ci0gICAgLCBtX3Bvc2l0aW9uWihBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCwgInBvc2l0aW9u
WiIsIDAuMCwgLUZMVF9NQVgsIEZMVF9NQVgsIEF1dG9tYXRpb25SYXRlOjpBUmF0ZSkpCi0gICAg
LCBtX2ZvcndhcmRYKEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0LCAiZm9yd2FyZFgiLCAwLjAs
IC1GTFRfTUFYLCBGTFRfTUFYLCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQotICAgICwgbV9mb3J3
YXJkWShBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCwgImZvcndhcmRZIiwgMC4wLCAtRkxUX01B
WCwgRkxUX01BWCwgQXV0b21hdGlvblJhdGU6OkFSYXRlKSkKLSAgICAsIG1fZm9yd2FyZFooQXVk
aW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJmb3J3YXJkWiIsIC0xLjAsIC1GTFRfTUFYLCBGTFRf
TUFYLCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQotICAgICwgbV91cFgoQXVkaW9QYXJhbTo6Y3Jl
YXRlKGNvbnRleHQsICJ1cFgiLCAwLjAsIC1GTFRfTUFYLCBGTFRfTUFYLCBBdXRvbWF0aW9uUmF0
ZTo6QVJhdGUpKQotICAgICwgbV91cFkoQXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJ1cFki
LCAxLjAsIC1GTFRfTUFYLCBGTFRfTUFYLCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQotICAgICwg
bV91cFooQXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJ1cFoiLCAwLjAsIC1GTFRfTUFYLCBG
TFRfTUFYLCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQorICAgIDogbV9wb3NpdGlvblgoQXVkaW9Q
YXJhbTo6Y3JlYXRlKGNvbnRleHQsICJwb3NpdGlvblgiX3MsIDAuMCwgLUZMVF9NQVgsIEZMVF9N
QVgsIEF1dG9tYXRpb25SYXRlOjpBUmF0ZSkpCisgICAgLCBtX3Bvc2l0aW9uWShBdWRpb1BhcmFt
OjpjcmVhdGUoY29udGV4dCwgInBvc2l0aW9uWSJfcywgMC4wLCAtRkxUX01BWCwgRkxUX01BWCwg
QXV0b21hdGlvblJhdGU6OkFSYXRlKSkKKyAgICAsIG1fcG9zaXRpb25aKEF1ZGlvUGFyYW06OmNy
ZWF0ZShjb250ZXh0LCAicG9zaXRpb25aIl9zLCAwLjAsIC1GTFRfTUFYLCBGTFRfTUFYLCBBdXRv
bWF0aW9uUmF0ZTo6QVJhdGUpKQorICAgICwgbV9mb3J3YXJkWChBdWRpb1BhcmFtOjpjcmVhdGUo
Y29udGV4dCwgImZvcndhcmRYIl9zLCAwLjAsIC1GTFRfTUFYLCBGTFRfTUFYLCBBdXRvbWF0aW9u
UmF0ZTo6QVJhdGUpKQorICAgICwgbV9mb3J3YXJkWShBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4
dCwgImZvcndhcmRZIl9zLCAwLjAsIC1GTFRfTUFYLCBGTFRfTUFYLCBBdXRvbWF0aW9uUmF0ZTo6
QVJhdGUpKQorICAgICwgbV9mb3J3YXJkWihBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCwgImZv
cndhcmRaIl9zLCAtMS4wLCAtRkxUX01BWCwgRkxUX01BWCwgQXV0b21hdGlvblJhdGU6OkFSYXRl
KSkKKyAgICAsIG1fdXBYKEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0LCAidXBYIl9zLCAwLjAs
IC1GTFRfTUFYLCBGTFRfTUFYLCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQorICAgICwgbV91cFko
QXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJ1cFkiX3MsIDEuMCwgLUZMVF9NQVgsIEZMVF9N
QVgsIEF1dG9tYXRpb25SYXRlOjpBUmF0ZSkpCisgICAgLCBtX3VwWihBdWRpb1BhcmFtOjpjcmVh
dGUoY29udGV4dCwgInVwWiJfcywgMC4wLCAtRkxUX01BWCwgRkxUX01BWCwgQXV0b21hdGlvblJh
dGU6OkFSYXRlKSkKICAgICAsIG1fcG9zaXRpb25YVmFsdWVzKEF1ZGlvVXRpbGl0aWVzOjpyZW5k
ZXJRdWFudHVtU2l6ZSkKICAgICAsIG1fcG9zaXRpb25ZVmFsdWVzKEF1ZGlvVXRpbGl0aWVzOjpy
ZW5kZXJRdWFudHVtU2l6ZSkKICAgICAsIG1fcG9zaXRpb25aVmFsdWVzKEF1ZGlvVXRpbGl0aWVz
OjpyZW5kZXJRdWFudHVtU2l6ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9QYXJhbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvUGFyYW0uY3BwCmluZGV4IGJlMTJiYjVhYTAyN2U1M2ExMzQ2ODQ3ZTZjOTkzYzIzZjlm
MDE4OTguLjBkNDZhM2Y5MDRjYzRkMDkzODhiNGZiMDEyMzNjYjYwOGVjN2Y2ZDIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtLmNwcApAQCAtMTA5LDcg
KzEwOSw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEF1ZGlvUGFyYW06OnNldFZhbHVlRm9yQmluZGlu
Z3MoZmxvYXQgdmFsdWUpCiBFeGNlcHRpb25Pcjx2b2lkPiBBdWRpb1BhcmFtOjpzZXRBdXRvbWF0
aW9uUmF0ZShBdXRvbWF0aW9uUmF0ZSBhdXRvbWF0aW9uUmF0ZSkKIHsKICAgICBpZiAobV9hdXRv
bWF0aW9uUmF0ZU1vZGUgPT0gQXV0b21hdGlvblJhdGVNb2RlOjpGaXhlZCkKLSAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiYXV0b21hdGlvblJhdGUgY2Fubm90
IGJlIGNoYW5nZWQgZm9yIHRoaXMgbm9kZSIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7
IEludmFsaWRTdGF0ZUVycm9yLCAiYXV0b21hdGlvblJhdGUgY2Fubm90IGJlIGNoYW5nZWQgZm9y
IHRoaXMgbm9kZSJfcyB9OwogCiAgICAgbV9hdXRvbWF0aW9uUmF0ZSA9IGF1dG9tYXRpb25SYXRl
OwogICAgIHJldHVybiB7IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvUGFyYW1UaW1lbGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvUGFyYW1UaW1lbGluZS5jcHAKaW5kZXggZTU5YWE3ZTZkODQyZmFlYmZkYzM4
YTA1OWVjOTVjODE5M2U1NDZhNi4uY2MzNGRjMzRlNTA3MWQ3NGJkNTJjMWRiNjg4YmM5ZjIxNDhl
NTNkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1Bh
cmFtVGltZWxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9QYXJhbVRpbWVsaW5lLmNwcApAQCAtMTcyLDcgKzE3Miw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+
IEF1ZGlvUGFyYW1UaW1lbGluZTo6aW5zZXJ0RXZlbnQoUGFyYW1FdmVudCYmIGV2ZW50KQogICAg
ICAgICAgICAgLy8gT3RoZXJ3aXNlLCBtYWtlIHN1cmUgdGhpcyBldmVudCBkb2Vzbid0IG92ZXJs
YXAgYW55IGV4aXN0aW5nIFNldFZhbHVlQ3VydmUgZXZlbnQuCiAgICAgICAgICAgICBhdXRvIHBh
cmVudEV2ZW50RW5kVGltZSA9IHBhcmFtRXZlbnQudGltZSgpICsgcGFyYW1FdmVudC5kdXJhdGlv
bigpOwogICAgICAgICAgICAgaWYgKGV2ZW50LnRpbWUoKSA+PSBwYXJhbUV2ZW50LnRpbWUoKSAm
JiBldmVudC50aW1lKCkgPCBwYXJlbnRFdmVudEVuZFRpbWUpCi0gICAgICAgICAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yLCAiRXZlbnRzIGFyZSBvdmVybGFwcGlu
ZyIgfTsKKyAgICAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJy
b3IsICJFdmVudHMgYXJlIG92ZXJsYXBwaW5nIl9zIH07CiAgICAgICAgIH0KIAogICAgICAgICBp
ZiAocGFyYW1FdmVudC50aW1lKCkgPiBpbnNlcnRUaW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CaXF1YWRGaWx0ZXJOb2RlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQmlxdWFkRmlsdGVyTm9kZS5jcHAKaW5kZXggMTQwZWQwYTI2
ZTU3NTUxNzAxNGFjMzNhNjQzMTU1ODkwOWMwMjcyYy4uNWQ3MzZjZmNiMjU1OTE4Zjg5NzVkN2Iz
YjFmNzhmYjBiMDM0NTE2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9CaXF1YWRGaWx0ZXJOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0JpcXVhZEZpbHRlck5vZGUuY3BwCkBAIC03NCw3ICs3NCw3IEBAIEV4Y2VwdGlvbk9y
PHZvaWQ+IEJpcXVhZEZpbHRlck5vZGU6OmdldEZyZXF1ZW5jeVJlc3BvbnNlKGNvbnN0IFJlZjxG
bG9hdDMyQXJyYXk+CiB7CiAgICAgdW5zaWduZWQgbGVuZ3RoID0gZnJlcXVlbmN5SHotPmxlbmd0
aCgpOwogICAgIGlmIChtYWdSZXNwb25zZS0+bGVuZ3RoKCkgIT0gbGVuZ3RoIHx8IHBoYXNlUmVz
cG9uc2UtPmxlbmd0aCgpICE9IGxlbmd0aCkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElu
dmFsaWRBY2Nlc3NFcnJvciwgIlRoZSBhcnJheXMgcGFzc2VkIGFzIGFyZ3VtZW50cyBtdXN0IGhh
dmUgdGhlIHNhbWUgbGVuZ3RoIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxp
ZEFjY2Vzc0Vycm9yLCAiVGhlIGFycmF5cyBwYXNzZWQgYXMgYXJndW1lbnRzIG11c3QgaGF2ZSB0
aGUgc2FtZSBsZW5ndGgiX3MgfTsKIAogICAgIGlmIChsZW5ndGgpCiAgICAgICAgIGJpcXVhZFBy
b2Nlc3NvcigpLT5nZXRGcmVxdWVuY3lSZXNwb25zZShsZW5ndGgsIGZyZXF1ZW5jeUh6LT5kYXRh
KCksIG1hZ1Jlc3BvbnNlLT5kYXRhKCksIHBoYXNlUmVzcG9uc2UtPmRhdGEoKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0JpcXVhZFByb2Nlc3Nvci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0JpcXVhZFByb2Nlc3Nvci5jcHAKaW5k
ZXggOWRmNjI5ZDdlYmZkZDZmYjc0MTVmM2ViNzc5NzI2YmJhYmNhOGYxYy4uZjlhNTQzNGU4ODA1
ZDdkZTQ5MThhNmZiZDg3NTRkMWE1ZWQyNzIxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9CaXF1YWRQcm9jZXNzb3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vQmlxdWFkUHJvY2Vzc29yLmNwcApAQCAtMzUsMTAgKzM1LDEwIEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAKIEJpcXVhZFByb2Nlc3Nvcjo6QmlxdWFkUHJvY2Vz
c29yKEJhc2VBdWRpb0NvbnRleHQmIGNvbnRleHQsIGZsb2F0IHNhbXBsZVJhdGUsIHNpemVfdCBu
dW1iZXJPZkNoYW5uZWxzLCBib29sIGF1dG9Jbml0aWFsaXplKQogICAgIDogQXVkaW9EU1BLZXJu
ZWxQcm9jZXNzb3Ioc2FtcGxlUmF0ZSwgbnVtYmVyT2ZDaGFubmVscykKLSAgICAsIG1fcGFyYW1l
dGVyMShBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCwgImZyZXF1ZW5jeSIsIDM1MC4wLCAwLjAs
IDAuNSAqIHNhbXBsZVJhdGUsIEF1dG9tYXRpb25SYXRlOjpBUmF0ZSkpCi0gICAgLCBtX3BhcmFt
ZXRlcjIoQXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJRIiwgMSwgLUZMVF9NQVgsIEZMVF9N
QVgsIEF1dG9tYXRpb25SYXRlOjpBUmF0ZSkpCi0gICAgLCBtX3BhcmFtZXRlcjMoQXVkaW9QYXJh
bTo6Y3JlYXRlKGNvbnRleHQsICJnYWluIiwgMC4wLCAtRkxUX01BWCwgNDAgKiBzdGQ6OmxvZzEw
KHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+OjptYXgoKSksIEF1dG9tYXRpb25SYXRlOjpBUmF0
ZSkpCi0gICAgLCBtX3BhcmFtZXRlcjQoQXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJkZXR1
bmUiLCAwLjAsIC0xNTM2MDAsIDE1MzYwMCwgQXV0b21hdGlvblJhdGU6OkFSYXRlKSkKKyAgICAs
IG1fcGFyYW1ldGVyMShBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCwgImZyZXF1ZW5jeSJfcywg
MzUwLjAsIDAuMCwgMC41ICogc2FtcGxlUmF0ZSwgQXV0b21hdGlvblJhdGU6OkFSYXRlKSkKKyAg
ICAsIG1fcGFyYW1ldGVyMihBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCwgIlEiX3MsIDEsIC1G
TFRfTUFYLCBGTFRfTUFYLCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQorICAgICwgbV9wYXJhbWV0
ZXIzKEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0LCAiZ2FpbiJfcywgMC4wLCAtRkxUX01BWCwg
NDAgKiBzdGQ6OmxvZzEwKHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+OjptYXgoKSksIEF1dG9t
YXRpb25SYXRlOjpBUmF0ZSkpCisgICAgLCBtX3BhcmFtZXRlcjQoQXVkaW9QYXJhbTo6Y3JlYXRl
KGNvbnRleHQsICJkZXR1bmUiX3MsIDAuMCwgLTE1MzYwMCwgMTUzNjAwLCBBdXRvbWF0aW9uUmF0
ZTo6QVJhdGUpKQogewogICAgIGlmIChhdXRvSW5pdGlhbGl6ZSkKICAgICAgICAgaW5pdGlhbGl6
ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9EZWxheVBy
b2Nlc3Nvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlbGF5UHJvY2Vz
c29yLmNwcAppbmRleCBhZWU0MGU5NGU2NWRlZTRiZjg0NDI1MTI5NGUzMTQzNzhhZDA0MmE1Li4x
ZjkwY2JjOWYxOTcwN2E5YmMxN2ExMTNiY2M0YjFkNThmOTQwNTA5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlbGF5UHJvY2Vzc29yLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlbGF5UHJvY2Vzc29yLmNwcApAQCAtMzQsNyAr
MzQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIERlbGF5UHJvY2Vzc29yOjpEZWxheVByb2Nl
c3NvcihCYXNlQXVkaW9Db250ZXh0JiBjb250ZXh0LCBmbG9hdCBzYW1wbGVSYXRlLCB1bnNpZ25l
ZCBudW1iZXJPZkNoYW5uZWxzLCBkb3VibGUgbWF4RGVsYXlUaW1lKQogICAgIDogQXVkaW9EU1BL
ZXJuZWxQcm9jZXNzb3Ioc2FtcGxlUmF0ZSwgbnVtYmVyT2ZDaGFubmVscykKLSAgICAsIG1fZGVs
YXlUaW1lKEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0LCAiZGVsYXlUaW1lIiwgMC4wLCAwLjAs
IG1heERlbGF5VGltZSwgQXV0b21hdGlvblJhdGU6OkFSYXRlKSkKKyAgICAsIG1fZGVsYXlUaW1l
KEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0LCAiZGVsYXlUaW1lIl9zLCAwLjAsIDAuMCwgbWF4
RGVsYXlUaW1lLCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQogewogCiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1dhdmVTaGFwZXJOb2RlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vV2F2ZVNoYXBlck5vZGUuY3BwCmluZGV4IGZjMTUy
ODI3YjNhMGNjMjdhOGQ0M2I1NDU0NGZmNGJjNWJjNDljOWIuLjY0MjljMzA1MTYxMmFmZWU4MmIz
ZmNiZDU4YjJmNjA3NDBmZjk0ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vV2F2ZVNoYXBlck5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vV2F2ZVNoYXBlck5vZGUuY3BwCkBAIC00Myw3ICs0Myw3IEBAIEV4Y2VwdGlvbk9y
PFJlZjxXYXZlU2hhcGVyTm9kZT4+IFdhdmVTaGFwZXJOb2RlOjpjcmVhdGUoQmFzZUF1ZGlvQ29u
dGV4dCYgY29udGV4CiAgICAgaWYgKG9wdGlvbnMuY3VydmUpIHsKICAgICAgICAgY3VydmUgPSBG
bG9hdDMyQXJyYXk6OnRyeUNyZWF0ZShvcHRpb25zLmN1cnZlLT5kYXRhKCksIG9wdGlvbnMuY3Vy
dmUtPnNpemUoKSk7CiAgICAgICAgIGlmICghY3VydmUpCi0gICAgICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJJbnZhbGlkIGN1cnZlIHBhcmFtZXRlciIgfTsK
KyAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkludmFs
aWQgY3VydmUgcGFyYW1ldGVyIl9zIH07CiAgICAgfQogCiAgICAgYXV0byBub2RlID0gYWRvcHRS
ZWYoKm5ldyBXYXZlU2hhcGVyTm9kZShjb250ZXh0KSk7CkBAIC03Niw3ICs3Niw3IEBAIEV4Y2Vw
dGlvbk9yPHZvaWQ+IFdhdmVTaGFwZXJOb2RlOjpzZXRDdXJ2ZUZvckJpbmRpbmdzKFJlZlB0cjxG
bG9hdDMyQXJyYXk+JiYgY3VyCiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsgCiAgICAgREVC
VUdfTE9HKExPR0lERU5USUZJRVIpOwogICAgIGlmIChjdXJ2ZSAmJiBjdXJ2ZS0+bGVuZ3RoKCkg
PCAyKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJMZW5n
dGggb2YgY3VydmUgYXJyYXkgY2Fubm90IGJlIGxlc3MgdGhhbiAyIiB9OworICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJMZW5ndGggb2YgY3VydmUgYXJyYXkg
Y2Fubm90IGJlIGxlc3MgdGhhbiAyIl9zIH07CiAKICAgICBpZiAoY3VydmUpIHsKICAgICAgICAg
Ly8gVGhlIHNwZWNpZmljYXRpb24gc3RhdGVzIHRoYXQgd2Ugc2hvdWxkIG1haW50YWluIGFuIGlu
dGVybmFsIGNvcHkgb2YgdGhlIGN1cnZlIHNvIHRoYXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRvckNvb3JkaW5hdG9yLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRvckNvb3JkaW5hdG9yLmNwcApp
bmRleCBiYzViZWRmNzM0MjlhMGI1MmVkYzBlZDFkNGU3NDVhOTM5OGZlZTk1Li5hNzdjZGFkNGQ1
Y2RiYjU0MzE0NjhkNTVkYTNlYzM5NjRjMWM2NzNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JDb29yZGluYXRvci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuY3Bw
CkBAIC01OCw3ICs1OCw3IEBAIHN0YXRpYyBib29sIG5lZWRzQXBwSWRRdWlya3MoY29uc3QgU3Ry
aW5nJiBob3N0LCBjb25zdCBTdHJpbmcmIGFwcElkKQogICAgIC8vIGV4aXN0aW5nIGRldmljZSBy
ZWdpc3RyYXRpb25zIHRoYXQgYXV0aGVudGljYXRlICdnb29nbGUuY29tJyBhZ2FpbnN0ICdnc3Rh
dGljLmNvbScuIEZpcmVmb3ggYW5kIG90aGVyIGJyb3dzZXJzCiAgICAgLy8gaGF2ZSBhZ3JlZWQg
dG8gZ3JhbnQgYW4gZXhjZXB0aW9uIHRvIHRoZSBBcHBJZCBydWxlcyBmb3IgYSBsaW1pdGVkIHRp
bWUgcGVyaW9kICg1IHllYXJzIGZyb20gSmFudWFyeSwgMjAxOCkgdG8KICAgICAvLyBhbGxvdyBl
eGlzdGluZyBHb29nbGUgdXNlcnMgdG8gc2VhbWxlc3NseSB0cmFuc2l0aW9uIHRvIHByb3BlciBX
ZWJBdXRoTiBiZWhhdmlvci4KLSAgICBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uo
aG9zdCwgImdvb2dsZS5jb20iKSB8fCBob3N0LmVuZHNXaXRoSWdub3JpbmdBU0NJSUNhc2UoIi5n
b29nbGUuY29tIikpCisgICAgaWYgKGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGhvc3Qs
ICJnb29nbGUuY29tIikgfHwgaG9zdC5lbmRzV2l0aElnbm9yaW5nQVNDSUlDYXNlKCIuZ29vZ2xl
LmNvbSJfcykpCiAgICAgICAgIHJldHVybiAoYXBwSWQgPT0gImh0dHBzOi8vd3d3LmdzdGF0aWMu
Y29tL3NlY3VyaXR5a2V5L29yaWdpbnMuanNvbiJfcykgfHwgKGFwcElkID09ICJodHRwczovL3d3
dy5nc3RhdGljLmNvbS9zZWN1cml0eWtleS9hL2dvb2dsZS5jb20vb3JpZ2lucy5qc29uIl9zKTsK
ICAgICByZXR1cm4gZmFsc2U7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1dGhuL1dlYkF1dGhlbnRpY2F0aW9uVXRpbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdXRobi9XZWJBdXRoZW50aWNhdGlvblV0aWxzLmNwcAppbmRleCBjMWZiZjA1NmNj
NmFiNWUxODI5ODgyMjQ2MzQ0MWI0YTg1ZWFiZDRjLi4zMzJlMmJlNzk1YTAxZjFlMDQ2NjJkYzQx
MTNiYWVhYzQ0MDcxZTc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
dGhuL1dlYkF1dGhlbnRpY2F0aW9uVXRpbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXV0aG4vV2ViQXV0aGVudGljYXRpb25VdGlscy5jcHAKQEAgLTEzOCw3ICsxMzgsNyBA
QCBjYm9yOjpDQk9SVmFsdWU6Ok1hcFZhbHVlIGJ1aWxkQXR0ZXN0YXRpb25NYXAoVmVjdG9yPHVp
bnQ4X3Q+JiYgYXV0aERhdGEsIFN0cmluZwogICAgICAgICBjb25zdCBzaXplX3QgYWFndWlkT2Zm
c2V0ID0gcnBJZEhhc2hMZW5ndGggKyBmbGFnc0xlbmd0aCArIHNpZ25Db3VudGVyTGVuZ3RoOwog
ICAgICAgICBpZiAoYXV0aERhdGEuc2l6ZSgpID49IGFhZ3VpZE9mZnNldCArIGFhZ3VpZExlbmd0
aCkKICAgICAgICAgICAgIG1lbXNldChhdXRoRGF0YS5kYXRhKCkgKyBhYWd1aWRPZmZzZXQsIDAs
IGFhZ3VpZExlbmd0aCk7Ci0gICAgICAgIGZvcm1hdCA9IG5vbmVBdHRlc3RhdGlvblZhbHVlOwor
ICAgICAgICBmb3JtYXQgPSBTdHJpbmcgeyBub25lQXR0ZXN0YXRpb25WYWx1ZSB9OwogICAgICAg
ICBzdGF0ZW1lbnRNYXAuY2xlYXIoKTsKICAgICB9CiAgICAgYXR0ZXN0YXRpb25PYmplY3RNYXBb
Y2Jvcjo6Q0JPUlZhbHVlKCJhdXRoRGF0YSIpXSA9IGNib3I6OkNCT1JWYWx1ZShXVEZNb3ZlKGF1
dGhEYXRhKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2Zp
ZG8vRGV2aWNlUmVzcG9uc2VDb252ZXJ0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdXRobi9maWRvL0RldmljZVJlc3BvbnNlQ29udmVydGVyLmNwcAppbmRleCBmMjFjNWVlN2Ey
NWY1ZTkyNzU0NDMxZDM1NGE4N2E4ZDIxYzU4M2M4Li43MzVhOWJmOGUwM2E4NDJhOTdkNDY5NGFj
Y2M2YjIyZTEzZWZlMDQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
dGhuL2ZpZG8vRGV2aWNlUmVzcG9uc2VDb252ZXJ0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXV0aG4vZmlkby9EZXZpY2VSZXNwb25zZUNvbnZlcnRlci5jcHAKQEAgLTEy
Niw3ICsxMjYsNyBAQCBSZWZQdHI8QXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2U+IHJl
YWRDVEFQTWFrZUNyZWRlbnRpYWxSZXNwb25zZShjb25zdCBWZQogICAgICAgICAvLyBUaGUgcmVh
c29uIHdoeSB3ZSBjYW4ndCBkaXJlY3RseSBwYXNzIGF1dGhlbnRpY2F0b3JEYXRhL2Zvcm1hdC9h
dHRTdG10IHRvIGJ1aWxkQXR0ZXN0YXRpb25PYmplY3QKICAgICAgICAgLy8gaXMgdGhhdCB0aGV5
IGFyZSBDQk9SVmFsdWUgaW5zdGVhZCBvZiB0aGUgcmF3IHR5cGUuCiAgICAgICAgIC8vIEFsc28s
IGZvcm1hdCBhbmQgYXR0U3RtdCBhcmUgb21pdHRlZCBhcyB0aGV5IGFyZSBub3QgdXNlZnVsIGlu
IG5vbmUgYXR0ZXN0YXRpb24uCi0gICAgICAgIGF0dGVzdGF0aW9uT2JqZWN0ID0gYnVpbGRBdHRl
c3RhdGlvbk9iamVjdChWZWN0b3I8dWludDhfdD4oYXV0aGVudGljYXRvckRhdGEuZ2V0Qnl0ZVN0
cmluZygpKSwgIiIsIHsgfSwgYXR0ZXN0YXRpb24pOworICAgICAgICBhdHRlc3RhdGlvbk9iamVj
dCA9IGJ1aWxkQXR0ZXN0YXRpb25PYmplY3QoVmVjdG9yPHVpbnQ4X3Q+KGF1dGhlbnRpY2F0b3JE
YXRhLmdldEJ5dGVTdHJpbmcoKSksIFN0cmluZyB7IGVtcHR5U3RyaW5nKCkgfSwgeyB9LCBhdHRl
c3RhdGlvbik7CiAgICAgfSBlbHNlIHsKICAgICAgICAgQ0JPUjo6TWFwVmFsdWUgYXR0ZXN0YXRp
b25PYmplY3RNYXA7CiAgICAgICAgIGF0dGVzdGF0aW9uT2JqZWN0TWFwW0NCT1IoImF1dGhEYXRh
IildID0gV1RGTW92ZShhdXRoZW50aWNhdG9yRGF0YSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vUGluLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXV0aG4vZmlkby9QaW4uY3BwCmluZGV4IDlmYTY3M2YxODJjY2NiMDQ2MjE3MzNhZTM4
YzUyMzZkMzYyYjVjODguLmI0NGY5MGIwMTQzNDI3ZDE1MjY3ZDdjOWY2N2YwY2ZiMDJjM2ZiM2Qg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9QaW4uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9QaW4uY3BwCkBAIC0x
NzEsNyArMTcxLDcgQEAgc3RkOjpvcHRpb25hbDxLZXlBZ3JlZW1lbnRSZXNwb25zZT4gS2V5QWdy
ZWVtZW50UmVzcG9uc2U6OnBhcnNlRnJvbUNPU0UoY29uc3QgQ0IKIAogICAgIGNvbnN0IGF1dG8m
IHggPSB4SXQtPnNlY29uZC5nZXRCeXRlU3RyaW5nKCk7CiAgICAgY29uc3QgYXV0byYgeSA9IHlJ
dC0+c2Vjb25kLmdldEJ5dGVTdHJpbmcoKTsKLSAgICBhdXRvIHBlZXJLZXkgPSBDcnlwdG9LZXlF
Qzo6aW1wb3J0UmF3KENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkVDREgsICJQLTI1NiIsIGVu
Y29kZVJhd1B1YmxpY0tleSh4LCB5KSwgdHJ1ZSwgQ3J5cHRvS2V5VXNhZ2VEZXJpdmVCaXRzKTsK
KyAgICBhdXRvIHBlZXJLZXkgPSBDcnlwdG9LZXlFQzo6aW1wb3J0UmF3KENyeXB0b0FsZ29yaXRo
bUlkZW50aWZpZXI6OkVDREgsICJQLTI1NiJfcywgZW5jb2RlUmF3UHVibGljS2V5KHgsIHkpLCB0
cnVlLCBDcnlwdG9LZXlVc2FnZURlcml2ZUJpdHMpOwogICAgIGlmICghcGVlcktleSkKICAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIApAQCAtMjQ3LDcgKzI0Nyw3IEBAIHN0ZDo6b3B0aW9u
YWw8VG9rZW5SZXF1ZXN0PiBUb2tlblJlcXVlc3Q6OnRyeUNyZWF0ZShjb25zdCBDU3RyaW5nJiBw
aW4sIGNvbnN0IENyCiAgICAgLy8gVGhlIGZvbGxvd2luZyBpbXBsZW1lbnRzIFNlY3Rpb24gNS41
LjQgR2V0dGluZyBzaGFyZWRTZWNyZXQgZnJvbSBBdXRoZW50aWNhdG9yLgogICAgIC8vIGh0dHBz
Oi8vZmlkb2FsbGlhbmNlLm9yZy9zcGVjcy9maWRvLXYyLjAtcHMtMjAxOTAxMzAvZmlkby1jbGll
bnQtdG8tYXV0aGVudGljYXRvci1wcm90b2NvbC12Mi4wLXBzLTIwMTkwMTMwLmh0bWwjZ2V0dGlu
Z1NoYXJlZFNlY3JldAogICAgIC8vIDEuIEdlbmVyYXRlIGEgUDI1NiBrZXkgcGFpci4KLSAgICBh
dXRvIGtleVBhaXJSZXN1bHQgPSBDcnlwdG9LZXlFQzo6Z2VuZXJhdGVQYWlyKENyeXB0b0FsZ29y
aXRobUlkZW50aWZpZXI6OkVDREgsICJQLTI1NiIsIHRydWUsIENyeXB0b0tleVVzYWdlRGVyaXZl
Qml0cyk7CisgICAgYXV0byBrZXlQYWlyUmVzdWx0ID0gQ3J5cHRvS2V5RUM6OmdlbmVyYXRlUGFp
cihDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpFQ0RILCAiUC0yNTYiX3MsIHRydWUsIENyeXB0
b0tleVVzYWdlRGVyaXZlQml0cyk7CiAgICAgQVNTRVJUKCFrZXlQYWlyUmVzdWx0Lmhhc0V4Y2Vw
dGlvbigpKTsKICAgICBhdXRvIGtleVBhaXIgPSBrZXlQYWlyUmVzdWx0LnJlbGVhc2VSZXR1cm5W
YWx1ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2Zp
ZG8vVTJmUmVzcG9uc2VDb252ZXJ0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dXRobi9maWRvL1UyZlJlc3BvbnNlQ29udmVydGVyLmNwcAppbmRleCAzZjM2NmFhMjcwNjg0OTc0
NWFjYTI4MTc5YjU5OTZlNjY2ZWUyNmVkLi5hNGZkZTE1ZmZiZmQ1NTU3N2IyMjlkODY0OWM2NzY0
OGNlN2ViOTZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2Zp
ZG8vVTJmUmVzcG9uc2VDb252ZXJ0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXV0aG4vZmlkby9VMmZSZXNwb25zZUNvbnZlcnRlci5jcHAKQEAgLTE1OCw3ICsxNTgsNyBA
QCBSZWZQdHI8QXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2U+IHJlYWRVMmZSZWdpc3Rl
clJlc3BvbnNlKGNvbnN0IFN0cmluZyYgcgogICAgIGlmIChmaWRvQXR0ZXN0YXRpb25TdGF0ZW1l
bnQuZW1wdHkoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBhdXRvIGF0dGVzdGF0
aW9uT2JqZWN0ID0gYnVpbGRBdHRlc3RhdGlvbk9iamVjdChXVEZNb3ZlKGF1dGhEYXRhKSwgImZp
ZG8tdTJmIiwgV1RGTW92ZShmaWRvQXR0ZXN0YXRpb25TdGF0ZW1lbnQpLCBhdHRlc3RhdGlvbik7
CisgICAgYXV0byBhdHRlc3RhdGlvbk9iamVjdCA9IGJ1aWxkQXR0ZXN0YXRpb25PYmplY3QoV1RG
TW92ZShhdXRoRGF0YSksICJmaWRvLXUyZiJfcywgV1RGTW92ZShmaWRvQXR0ZXN0YXRpb25TdGF0
ZW1lbnQpLCBhdHRlc3RhdGlvbik7CiAKICAgICByZXR1cm4gQXV0aGVudGljYXRvckF0dGVzdGF0
aW9uUmVzcG9uc2U6OmNyZWF0ZShjcmVkZW50aWFsSWQsIGF0dGVzdGF0aW9uT2JqZWN0LCBhdHRh
Y2htZW50KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJh
c2UvQ2hhbmdlVmVyc2lvbldyYXBwZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJk
YXRhYmFzZS9DaGFuZ2VWZXJzaW9uV3JhcHBlci5jcHAKaW5kZXggOTRlZjUwOTU1OGI2YzI2NTlm
ZGZhM2Q2ODliNGIwZDI4MzczZDhhOC4uMzVjMGUxNmUzZTM1MTMyMzNjMjJkOGYzYWE1NjQ1MjAz
ZDk4NDc0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9D
aGFuZ2VWZXJzaW9uV3JhcHBlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJk
YXRhYmFzZS9DaGFuZ2VWZXJzaW9uV3JhcHBlci5jcHAKQEAgLTUzLDcgKzUzLDcgQEAgYm9vbCBD
aGFuZ2VWZXJzaW9uV3JhcHBlcjo6cGVyZm9ybVByZWZsaWdodChTUUxUcmFuc2FjdGlvbiYgdHJh
bnNhY3Rpb24pCiAgICAgfQogCiAgICAgaWYgKGFjdHVhbFZlcnNpb24gIT0gbV9vbGRWZXJzaW9u
KSB7Ci0gICAgICAgIG1fc3FsRXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpWRVJT
SU9OX0VSUiwgImN1cnJlbnQgdmVyc2lvbiBvZiB0aGUgZGF0YWJhc2UgYW5kIGBvbGRWZXJzaW9u
YCBhcmd1bWVudCBkbyBub3QgbWF0Y2giKTsKKyAgICAgICAgbV9zcWxFcnJvciA9IFNRTEVycm9y
OjpjcmVhdGUoU1FMRXJyb3I6OlZFUlNJT05fRVJSLCAiY3VycmVudCB2ZXJzaW9uIG9mIHRoZSBk
YXRhYmFzZSBhbmQgYG9sZFZlcnNpb25gIGFyZ3VtZW50IGRvIG5vdCBtYXRjaCJfcyk7CiAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZGF0YWJhc2UvRE9NV2luZG93V2ViRGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9ET01XaW5kb3dXZWJEYXRhYmFzZS5jcHAKaW5kZXggOGFj
MmFkNmFmNWU0YTNiZmY4NGMyNjc2YzBlMjRlNmJiYzJmM2I1Yy4uNTZhYzBlNDIyZGQ0ZGY5MzZl
M2NjYjAwY2U1ZjQ1YzNkNjU1NDE1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJkYXRhYmFzZS9ET01XaW5kb3dXZWJEYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9ET01XaW5kb3dXZWJEYXRhYmFzZS5jcHAKQEAgLTQ1LDcg
KzQ1LDcgQEAgRXhjZXB0aW9uT3I8UmVmUHRyPERhdGFiYXNlPj4gRE9NV2luZG93V2ViRGF0YWJh
c2U6Om9wZW5EYXRhYmFzZShET01XaW5kb3cmIHdpbmQKICAgICBhdXRvKiBkb2N1bWVudCA9IHdp
bmRvdy5kb2N1bWVudCgpOwogICAgIGlmICghZG9jdW1lbnQpCiAgICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBTZWN1cml0eUVycm9yIH07Ci0gICAgZG9jdW1lbnQtPmFkZENvbnNvbGVNZXNzYWdl
KE1lc3NhZ2VTb3VyY2U6OlN0b3JhZ2UsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgIldlYiBTUUwg
aXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSBJbmRleGVkREIgaW5zdGVhZC4iKTsKKyAgICBkb2N1
bWVudC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6U3RvcmFnZSwgTWVzc2FnZUxl
dmVsOjpXYXJuaW5nLCAiV2ViIFNRTCBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlIEluZGV4ZWRE
QiBpbnN0ZWFkLiJfcyk7CiAKICAgICBhdXRvJiBzZWN1cml0eU9yaWdpbiA9IGRvY3VtZW50LT5z
ZWN1cml0eU9yaWdpbigpOwogICAgIGlmICghc2VjdXJpdHlPcmlnaW4uY2FuQWNjZXNzRGF0YWJh
c2UoJmRvY3VtZW50LT50b3BPcmlnaW4oKSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwCmluZGV4IDdjZmIxYzQxMGU2N2QwYjA3ZjdlMzQ5NDgy
ZGMwZWU5ZjZiMTE2ZGYuLmNkMGM0MTRmYjMxMDAyNDEzZWEyYmZkZDA5ODMwNWQ1MWI5ZjFmZDIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuY3Bw
CkBAIC0xOTgsNyArMTk4LDcgQEAgRGF0YWJhc2U6OkRhdGFiYXNlKERhdGFiYXNlQ29udGV4dCYg
Y29udGV4dCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGUKICAgICAsIG1fZGlz
cGxheU5hbWUoZGlzcGxheU5hbWUuaXNvbGF0ZWRDb3B5KCkpCiAgICAgLCBtX2VzdGltYXRlZFNp
emUoZXN0aW1hdGVkU2l6ZSkKICAgICAsIG1fZmlsZW5hbWUoRGF0YWJhc2VNYW5hZ2VyOjpzaW5n
bGV0b24oKS5mdWxsUGF0aEZvckRhdGFiYXNlKG1fZG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCks
IG1fbmFtZSkpCi0gICAgLCBtX2RhdGFiYXNlQXV0aG9yaXplcihEYXRhYmFzZUF1dGhvcml6ZXI6
OmNyZWF0ZSh1bnF1YWxpZmllZEluZm9UYWJsZU5hbWUpKQorICAgICwgbV9kYXRhYmFzZUF1dGhv
cml6ZXIoRGF0YWJhc2VBdXRob3JpemVyOjpjcmVhdGUoU3RyaW5nIHsgdW5xdWFsaWZpZWRJbmZv
VGFibGVOYW1lIH0pKQogewogICAgIHsKICAgICAgICAgTG9ja2VyIGxvY2tlciB7IGd1aWRMb2Nr
IH07CkBAIC02ODcsNyArNjg3LDcgQEAgdm9pZCBEYXRhYmFzZTo6cnVuVHJhbnNhY3Rpb24oUmVm
UHRyPFNRTFRyYW5zYWN0aW9uQ2FsbGJhY2s+JiYgY2FsbGJhY2ssIFJlZlB0cjwKICAgICBpZiAo
IW1faXNUcmFuc2FjdGlvblF1ZXVlRW5hYmxlZCkgewogICAgICAgICBpZiAoZXJyb3JDYWxsYmFj
aykgewogICAgICAgICAgICAgbV9kb2N1bWVudC0+ZXZlbnRMb29wKCkucXVldWVUYXNrKFRhc2tT
b3VyY2U6Ok5ldHdvcmtpbmcsIFtlcnJvckNhbGxiYWNrID0gUmVmIHsgKmVycm9yQ2FsbGJhY2sg
fV0oKSB7Ci0gICAgICAgICAgICAgICAgZXJyb3JDYWxsYmFjay0+aGFuZGxlRXZlbnQoU1FMRXJy
b3I6OmNyZWF0ZShTUUxFcnJvcjo6VU5LTk9XTl9FUlIsICJkYXRhYmFzZSBoYXMgYmVlbiBjbG9z
ZWQiKSk7CisgICAgICAgICAgICAgICAgZXJyb3JDYWxsYmFjay0+aGFuZGxlRXZlbnQoU1FMRXJy
b3I6OmNyZWF0ZShTUUxFcnJvcjo6VU5LTk9XTl9FUlIsICJkYXRhYmFzZSBoYXMgYmVlbiBjbG9z
ZWQiX3MpKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9CiAgICAgICAgIHJldHVybjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VBdXRo
b3JpemVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VB
dXRob3JpemVyLmNwcAppbmRleCBlMmRjNzA2ZjVkOTY1ZDJkN2E1Y2JhODcyMTY2Y2Y1M2E5ODA4
YTFmLi5kY2Y5ZWI5NTJkZGQwM2I0YjBkN2FkODZhNmNjZDVmYjQzZTNkY2VhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlQXV0aG9yaXplci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZUF1dGhv
cml6ZXIuY3BwCkBAIC02Miw2NCArNjIsNjQgQEAgdm9pZCBEYXRhYmFzZUF1dGhvcml6ZXI6OmFk
ZEFsbG93ZWRGdW5jdGlvbnMoKQogewogICAgIC8vIFNRTGl0ZSBmdW5jdGlvbnMgdXNlZCB0byBo
ZWxwIGltcGxlbWVudCBzb21lIG9wZXJhdGlvbnMKICAgICAvLyBBTFRFUiBUQUJMRSBoZWxwZXJz
Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgic3FsaXRlX3JlbmFtZV90YWJsZSIpOwotICAg
IG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInNxbGl0ZV9yZW5hbWVfdHJpZ2dlciIpOworICAgIG1f
YWxsb3dlZEZ1bmN0aW9ucy5hZGQoInNxbGl0ZV9yZW5hbWVfdGFibGUiX3MpOworICAgIG1fYWxs
b3dlZEZ1bmN0aW9ucy5hZGQoInNxbGl0ZV9yZW5hbWVfdHJpZ2dlciJfcyk7CiAgICAgLy8gR0xP
QiBoZWxwZXJzCi0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgiZ2xvYiIpOworICAgIG1fYWxs
b3dlZEZ1bmN0aW9ucy5hZGQoImdsb2IiX3MpOwogCiAgICAgLy8gU1FMaXRlIGNvcmUgZnVuY3Rp
b25zCi0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgiYWJzIik7Ci0gICAgbV9hbGxvd2VkRnVu
Y3Rpb25zLmFkZCgiY2hhbmdlcyIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoImNvYWxl
c2NlIik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgiZ2xvYiIpOwotICAgIG1fYWxsb3dl
ZEZ1bmN0aW9ucy5hZGQoImlmbnVsbCIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoImhl
eCIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoImxhc3RfaW5zZXJ0X3Jvd2lkIik7Ci0g
ICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgibGVuZ3RoIik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rp
b25zLmFkZCgibGlrZSIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoImxvd2VyIik7Ci0g
ICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgibHRyaW0iKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlv
bnMuYWRkKCJtYXgiKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJtaW4iKTsKLSAgICBt
X2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJudWxsaWYiKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMu
YWRkKCJxdW90ZSIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInJlcGxhY2UiKTsKLSAg
ICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJyb3VuZCIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9u
cy5hZGQoInJ0cmltIik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgic291bmRleCIpOwot
ICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInNxbGl0ZV9zb3VyY2VfaWQiKTsKLSAgICBtX2Fs
bG93ZWRGdW5jdGlvbnMuYWRkKCJzcWxpdGVfdmVyc2lvbiIpOwotICAgIG1fYWxsb3dlZEZ1bmN0
aW9ucy5hZGQoInN1YnN0ciIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInRvdGFsX2No
YW5nZXMiKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJ0cmltIik7Ci0gICAgbV9hbGxv
d2VkRnVuY3Rpb25zLmFkZCgidHlwZW9mIik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgi
dXBwZXIiKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJ6ZXJvYmxvYiIpOworICAgIG1f
YWxsb3dlZEZ1bmN0aW9ucy5hZGQoImFicyJfcyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFk
ZCgiY2hhbmdlcyJfcyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgiY29hbGVzY2UiX3Mp
OworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoImdsb2IiX3MpOworICAgIG1fYWxsb3dlZEZ1
bmN0aW9ucy5hZGQoImlmbnVsbCJfcyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgiaGV4
Il9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJsYXN0X2luc2VydF9yb3dpZCJfcyk7
CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgibGVuZ3RoIl9zKTsKKyAgICBtX2FsbG93ZWRG
dW5jdGlvbnMuYWRkKCJsaWtlIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJsb3dl
ciJfcyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgibHRyaW0iX3MpOworICAgIG1fYWxs
b3dlZEZ1bmN0aW9ucy5hZGQoIm1heCJfcyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgi
bWluIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJudWxsaWYiX3MpOworICAgIG1f
YWxsb3dlZEZ1bmN0aW9ucy5hZGQoInF1b3RlIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMu
YWRkKCJyZXBsYWNlIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJyb3VuZCJfcyk7
CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgicnRyaW0iX3MpOworICAgIG1fYWxsb3dlZEZ1
bmN0aW9ucy5hZGQoInNvdW5kZXgiX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInNx
bGl0ZV9zb3VyY2VfaWQiX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInNxbGl0ZV92
ZXJzaW9uIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJzdWJzdHIiX3MpOworICAg
IG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInRvdGFsX2NoYW5nZXMiX3MpOworICAgIG1fYWxsb3dl
ZEZ1bmN0aW9ucy5hZGQoInRyaW0iX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInR5
cGVvZiJfcyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgidXBwZXIiX3MpOworICAgIG1f
YWxsb3dlZEZ1bmN0aW9ucy5hZGQoInplcm9ibG9iIl9zKTsKIAogICAgIC8vIFNRTGl0ZSBkYXRl
IGFuZCB0aW1lIGZ1bmN0aW9ucwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoImRhdGUiKTsK
LSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJ0aW1lIik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rp
b25zLmFkZCgiZGF0ZXRpbWUiKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJqdWxpYW5k
YXkiKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJzdHJmdGltZSIpOworICAgIG1fYWxs
b3dlZEZ1bmN0aW9ucy5hZGQoImRhdGUiX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQo
InRpbWUiX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoImRhdGV0aW1lIl9zKTsKKyAg
ICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJqdWxpYW5kYXkiX3MpOworICAgIG1fYWxsb3dlZEZ1
bmN0aW9ucy5hZGQoInN0cmZ0aW1lIl9zKTsKIAogICAgIC8vIFNRTGl0ZSBhZ2dyZWdhdGUgZnVu
Y3Rpb25zCiAgICAgLy8gbWF4KCkgYW5kIG1pbigpIGFyZSBhbHJlYWR5IGluIHRoZSBsaXN0Ci0g
ICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgiYXZnIik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25z
LmFkZCgiY291bnQiKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJncm91cF9jb25jYXQi
KTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJzdW0iKTsKLSAgICBtX2FsbG93ZWRGdW5j
dGlvbnMuYWRkKCJ0b3RhbCIpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoImF2ZyJfcyk7
CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgiY291bnQiX3MpOworICAgIG1fYWxsb3dlZEZ1
bmN0aW9ucy5hZGQoImdyb3VwX2NvbmNhdCJfcyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFk
ZCgic3VtIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJ0b3RhbCJfcyk7CiAKICAg
ICAvLyBTUUxpdGUgRlRTIGZ1bmN0aW9ucwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoIm1h
dGNoIik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgic25pcHBldCIpOwotICAgIG1fYWxs
b3dlZEZ1bmN0aW9ucy5hZGQoIm9mZnNldHMiKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRk
KCJvcHRpbWl6ZSIpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoIm1hdGNoIl9zKTsKKyAg
ICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJzbmlwcGV0Il9zKTsKKyAgICBtX2FsbG93ZWRGdW5j
dGlvbnMuYWRkKCJvZmZzZXRzIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJvcHRp
bWl6ZSJfcyk7CiAKICAgICAvLyBTUUxpdGUgSUNVIGZ1bmN0aW9ucwogICAgIC8vIGxpa2UoKSwg
bG93ZXIoKSBhbmQgdXBwZXIoKSBhcmUgYWxyZWFkeSBpbiB0aGUgbGlzdAotICAgIG1fYWxsb3dl
ZEZ1bmN0aW9ucy5hZGQoInJlZ2V4cCIpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInJl
Z2V4cCJfcyk7CiB9CiAKIGludCBEYXRhYmFzZUF1dGhvcml6ZXI6OmNyZWF0ZVRhYmxlKGNvbnN0
IFN0cmluZyYgdGFibGVOYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuY3BwCmluZGV4IDllYjM5MWM2ZDBiZDZkNDg2MDUx
MGVkYWI3Mjg5MzM5OTUwNmJjNzIuLmE0ZjBjNzQ0NTIzNzFhNGRiZDhkZjA4NjA2OWVjZDEwYWJh
MzIyOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0
YWJhc2VUcmFja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNl
L0RhdGFiYXNlVHJhY2tlci5jcHAKQEAgLTkxLDcgKzkxLDcgQEAgRGF0YWJhc2VUcmFja2VyOjpE
YXRhYmFzZVRyYWNrZXIoY29uc3QgU3RyaW5nJiBkYXRhYmFzZVBhdGgpCiAKIFN0cmluZyBEYXRh
YmFzZVRyYWNrZXI6OnRyYWNrZXJEYXRhYmFzZVBhdGgoKSBjb25zdAogewotICAgIHJldHVybiBT
UUxpdGVGaWxlU3lzdGVtOjphcHBlbmREYXRhYmFzZUZpbGVOYW1lVG9QYXRoKG1fZGF0YWJhc2VE
aXJlY3RvcnlQYXRoLmlzb2xhdGVkQ29weSgpLCAiRGF0YWJhc2VzLmRiIik7CisgICAgcmV0dXJu
IFNRTGl0ZUZpbGVTeXN0ZW06OmFwcGVuZERhdGFiYXNlRmlsZU5hbWVUb1BhdGgobV9kYXRhYmFz
ZURpcmVjdG9yeVBhdGguaXNvbGF0ZWRDb3B5KCksICJEYXRhYmFzZXMuZGIiX3MpOwogfQogCiB2
b2lkIERhdGFiYXNlVHJhY2tlcjo6b3BlblRyYWNrZXJEYXRhYmFzZShUcmFja2VyQ3JlYXRpb25B
Y3Rpb24gY3JlYXRlQWN0aW9uKQpAQCAtMTE4LDE0ICsxMTgsMTQgQEAgdm9pZCBEYXRhYmFzZVRy
YWNrZXI6Om9wZW5UcmFja2VyRGF0YWJhc2UoVHJhY2tlckNyZWF0aW9uQWN0aW9uIGNyZWF0ZUFj
dGlvbikKICAgICB9CiAgICAgbV9kYXRhYmFzZS5kaXNhYmxlVGhyZWFkaW5nQ2hlY2tzKCk7CiAK
LSAgICBpZiAoIW1fZGF0YWJhc2UudGFibGVFeGlzdHMoIk9yaWdpbnMiKSkgeworICAgIGlmICgh
bV9kYXRhYmFzZS50YWJsZUV4aXN0cygiT3JpZ2lucyJfcykpIHsKICAgICAgICAgaWYgKCFtX2Rh
dGFiYXNlLmV4ZWN1dGVDb21tYW5kKCJDUkVBVEUgVEFCTEUgT3JpZ2lucyAob3JpZ2luIFRFWFQg
VU5JUVVFIE9OIENPTkZMSUNUIFJFUExBQ0UsIHF1b3RhIElOVEVHRVIgTk9UIE5VTEwgT04gQ09O
RkxJQ1QgRkFJTCk7Il9zKSkgewogICAgICAgICAgICAgLy8gRklYTUU6IGFuZCBoZXJlCiAgICAg
ICAgICAgICBMT0dfRVJST1IoIkZhaWxlZCB0byBjcmVhdGUgT3JpZ2lucyB0YWJsZSIpOwogICAg
ICAgICB9CiAgICAgfQogCi0gICAgaWYgKCFtX2RhdGFiYXNlLnRhYmxlRXhpc3RzKCJEYXRhYmFz
ZXMiKSkgeworICAgIGlmICghbV9kYXRhYmFzZS50YWJsZUV4aXN0cygiRGF0YWJhc2VzIl9zKSkg
ewogICAgICAgICBpZiAoIW1fZGF0YWJhc2UuZXhlY3V0ZUNvbW1hbmQoIkNSRUFURSBUQUJMRSBE
YXRhYmFzZXMgKGd1aWQgSU5URUdFUiBQUklNQVJZIEtFWSBBVVRPSU5DUkVNRU5ULCBvcmlnaW4g
VEVYVCwgbmFtZSBURVhULCBkaXNwbGF5TmFtZSBURVhULCBlc3RpbWF0ZWRTaXplIElOVEVHRVIs
IHBhdGggVEVYVCk7Il9zKSkgewogICAgICAgICAgICAgLy8gRklYTUU6IGFuZCBoZXJlCiAgICAg
ICAgICAgICBMT0dfRVJST1IoIkZhaWxlZCB0byBjcmVhdGUgRGF0YWJhc2VzIHRhYmxlIik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFN0YXRlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFN0YXRlbWVudC5j
cHAKaW5kZXggYjc4MDU4MmRjOTc5NTkyMzM0NjNmOGZkOGFjMTlkMDM5YWViODgyMC4uZDkxZDAz
MTQ1OTE1YjIxYTM1N2U4NWYwNWNjYmE0MGU1ZGJlYTExYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxTdGF0ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMU3RhdGVtZW50LmNwcApAQCAtMTI2LDcgKzEy
Niw3IEBAIGJvb2wgU1FMU3RhdGVtZW50OjpleGVjdXRlKERhdGFiYXNlJiBkYikKICAgICAvLyBJ
ZiB0aGlzIGlzIHRoZSBjYXNlLCB0aGV5IG1pZ2h0IGJlIHRyeWluZyB0byBkbyBzb21ldGhpbmcg
ZmlzaHkgb3IgbWFsaWNpb3VzCiAgICAgaWYgKHN0YXRlbWVudC0+YmluZFBhcmFtZXRlckNvdW50
KCkgIT0gbV9hcmd1bWVudHMuc2l6ZSgpKSB7CiAgICAgICAgIExPRyhTdG9yYWdlQVBJLCAiQmlu
ZCBwYXJhbWV0ZXIgY291bnQgZG9lc24ndCBtYXRjaCBudW1iZXIgb2YgcXVlc3Rpb24gbWFya3Mi
KTsKLSAgICAgICAgbV9lcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OlNZTlRBWF9F
UlIsICJudW1iZXIgb2YgJz8ncyBpbiBzdGF0ZW1lbnQgc3RyaW5nIGRvZXMgbm90IG1hdGNoIGFy
Z3VtZW50IGNvdW50Iik7CisgICAgICAgIG1fZXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVy
cm9yOjpTWU5UQVhfRVJSLCAibnVtYmVyIG9mICc/J3MgaW4gc3RhdGVtZW50IHN0cmluZyBkb2Vz
IG5vdCBtYXRjaCBhcmd1bWVudCBjb3VudCJfcyk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICB9CiAKQEAgLTIzNCwxOSArMjM0LDE5IEBAIGJvb2wgU1FMU3RhdGVtZW50OjpwZXJmb3JtQ2Fs
bGJhY2soU1FMVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uKQogdm9pZCBTUUxTdGF0ZW1lbnQ6OnNl
dERhdGFiYXNlRGVsZXRlZEVycm9yKCkKIHsKICAgICBBU1NFUlQoIW1fZXJyb3IgJiYgIW1fcmVz
dWx0U2V0KTsKLSAgICBtX2Vycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6VU5LTk9X
Tl9FUlIsICJ1bmFibGUgdG8gZXhlY3V0ZSBzdGF0ZW1lbnQsIGJlY2F1c2UgdGhlIHVzZXIgZGVs
ZXRlZCB0aGUgZGF0YWJhc2UiKTsKKyAgICBtX2Vycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxF
cnJvcjo6VU5LTk9XTl9FUlIsICJ1bmFibGUgdG8gZXhlY3V0ZSBzdGF0ZW1lbnQsIGJlY2F1c2Ug
dGhlIHVzZXIgZGVsZXRlZCB0aGUgZGF0YWJhc2UiX3MpOwogfQogCiB2b2lkIFNRTFN0YXRlbWVu
dDo6c2V0VmVyc2lvbk1pc21hdGNoZWRFcnJvcigpCiB7CiAgICAgQVNTRVJUKCFtX2Vycm9yICYm
ICFtX3Jlc3VsdFNldCk7Ci0gICAgbV9lcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6
OlZFUlNJT05fRVJSLCAiY3VycmVudCB2ZXJzaW9uIG9mIHRoZSBkYXRhYmFzZSBhbmQgYG9sZFZl
cnNpb25gIGFyZ3VtZW50IGRvIG5vdCBtYXRjaCIpOworICAgIG1fZXJyb3IgPSBTUUxFcnJvcjo6
Y3JlYXRlKFNRTEVycm9yOjpWRVJTSU9OX0VSUiwgImN1cnJlbnQgdmVyc2lvbiBvZiB0aGUgZGF0
YWJhc2UgYW5kIGBvbGRWZXJzaW9uYCBhcmd1bWVudCBkbyBub3QgbWF0Y2giX3MpOwogfQogCiB2
b2lkIFNRTFN0YXRlbWVudDo6c2V0RmFpbHVyZUR1ZVRvUXVvdGEoKQogewogICAgIEFTU0VSVCgh
bV9lcnJvciAmJiAhbV9yZXN1bHRTZXQpOwotICAgIG1fZXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRl
KFNRTEVycm9yOjpRVU9UQV9FUlIsICJ0aGVyZSB3YXMgbm90IGVub3VnaCByZW1haW5pbmcgc3Rv
cmFnZSBzcGFjZSwgb3IgdGhlIHN0b3JhZ2UgcXVvdGEgd2FzIHJlYWNoZWQgYW5kIHRoZSB1c2Vy
IGRlY2xpbmVkIHRvIGFsbG93IG1vcmUgc3BhY2UiKTsKKyAgICBtX2Vycm9yID0gU1FMRXJyb3I6
OmNyZWF0ZShTUUxFcnJvcjo6UVVPVEFfRVJSLCAidGhlcmUgd2FzIG5vdCBlbm91Z2ggcmVtYWlu
aW5nIHN0b3JhZ2Ugc3BhY2UsIG9yIHRoZSBzdG9yYWdlIHF1b3RhIHdhcyByZWFjaGVkIGFuZCB0
aGUgdXNlciBkZWNsaW5lZCB0byBhbGxvdyBtb3JlIHNwYWNlIl9zKTsKIH0KIAogdm9pZCBTUUxT
dGF0ZW1lbnQ6OmNsZWFyRmFpbHVyZUR1ZVRvUXVvdGEoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uLmNwcAppbmRleCA2ODMyYWNh
OTBlZDZkOWViODFhYjlmMzU1OTU5M2JmNDY0MzBmZDBmLi5lOWFkNzlmMzI4MmU4NDU5ZGQ3ZDMz
ZWZmMDJiNmI1NzlmMDI2YzBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uLmNwcApAQCAtMTM3LDcgKzEzNyw3IEBAIHZvaWQg
U1FMVHJhbnNhY3Rpb246OmNhbGxFcnJvckNhbGxiYWNrRHVlVG9JbnRlcnJ1cHRpb24oKQogICAg
ICAgICByZXR1cm47CiAKICAgICBtX2RhdGFiYXNlLT5kb2N1bWVudCgpLmV2ZW50TG9vcCgpLnF1
ZXVlVGFzayhUYXNrU291cmNlOjpOZXR3b3JraW5nLCBbZXJyb3JDYWxsYmFjayA9IFdURk1vdmUo
ZXJyb3JDYWxsYmFjayldKCkgbXV0YWJsZSB7Ci0gICAgICAgIGVycm9yQ2FsbGJhY2stPmhhbmRs
ZUV2ZW50KFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OkRBVEFCQVNFX0VSUiwgInRoZSBkYXRh
YmFzZSB3YXMgY2xvc2VkIikpOworICAgICAgICBlcnJvckNhbGxiYWNrLT5oYW5kbGVFdmVudChT
UUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpEQVRBQkFTRV9FUlIsICJ0aGUgZGF0YWJhc2Ugd2Fz
IGNsb3NlZCJfcykpOwogICAgIH0pOwogfQogCkBAIC0yMzYsNyArMjM2LDcgQEAgdm9pZCBTUUxU
cmFuc2FjdGlvbjo6b3BlblRyYW5zYWN0aW9uQW5kUHJlZmxpZ2h0KCkKIAogICAgIC8vIElmIHRo
ZSBkYXRhYmFzZSB3YXMgZGVsZXRlZCwganVtcCB0byB0aGUgZXJyb3IgY2FsbGJhY2sKICAgICBp
ZiAobV9kYXRhYmFzZS0+ZGVsZXRlZCgpKSB7Ci0gICAgICAgIG1fdHJhbnNhY3Rpb25FcnJvciA9
IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OlVOS05PV05fRVJSLCAidW5hYmxlIHRvIG9wZW4g
YSB0cmFuc2FjdGlvbiwgYmVjYXVzZSB0aGUgdXNlciBkZWxldGVkIHRoZSBkYXRhYmFzZSIpOwor
ICAgICAgICBtX3RyYW5zYWN0aW9uRXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpV
TktOT1dOX0VSUiwgInVuYWJsZSB0byBvcGVuIGEgdHJhbnNhY3Rpb24sIGJlY2F1c2UgdGhlIHVz
ZXIgZGVsZXRlZCB0aGUgZGF0YWJhc2UiX3MpOwogCiAgICAgICAgIGhhbmRsZVRyYW5zYWN0aW9u
RXJyb3IoKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMjkwLDcgKzI5MCw3IEBAIHZvaWQgU1FMVHJh
bnNhY3Rpb246Om9wZW5UcmFuc2FjdGlvbkFuZFByZWZsaWdodCgpCiAgICAgICAgIG1fZGF0YWJh
c2UtPmVuYWJsZUF1dGhvcml6ZXIoKTsKICAgICAgICAgbV90cmFuc2FjdGlvbkVycm9yID0gbV93
cmFwcGVyLT5zcWxFcnJvcigpOwogICAgICAgICBpZiAoIW1fdHJhbnNhY3Rpb25FcnJvcikKLSAg
ICAgICAgICAgIG1fdHJhbnNhY3Rpb25FcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6
OlVOS05PV05fRVJSLCAidW5rbm93biBlcnJvciBvY2N1cnJlZCBkdXJpbmcgdHJhbnNhY3Rpb24g
cHJlZmxpZ2h0Iik7CisgICAgICAgICAgICBtX3RyYW5zYWN0aW9uRXJyb3IgPSBTUUxFcnJvcjo6
Y3JlYXRlKFNRTEVycm9yOjpVTktOT1dOX0VSUiwgInVua25vd24gZXJyb3Igb2NjdXJyZWQgZHVy
aW5nIHRyYW5zYWN0aW9uIHByZWZsaWdodCJfcyk7CiAKICAgICAgICAgaGFuZGxlVHJhbnNhY3Rp
b25FcnJvcigpOwogICAgICAgICByZXR1cm47CkBAIC0zOTUsNyArMzk1LDcgQEAgdm9pZCBTUUxU
cmFuc2FjdGlvbjo6ZGVsaXZlclRyYW5zYWN0aW9uQ2FsbGJhY2soKQogCiAgICAgLy8gU3BlYyA0
LjMuMiA1OiBJZiB0aGUgdHJhbnNhY3Rpb24gY2FsbGJhY2sgd2FzIG51bGwgb3IgcmFpc2VkIGFu
IGV4Y2VwdGlvbiwganVtcCB0byB0aGUgZXJyb3IgY2FsbGJhY2sKICAgICBpZiAoc2hvdWxkRGVs
aXZlckVycm9yQ2FsbGJhY2spIHsKLSAgICAgICAgbV90cmFuc2FjdGlvbkVycm9yID0gU1FMRXJy
b3I6OmNyZWF0ZShTUUxFcnJvcjo6VU5LTk9XTl9FUlIsICJ0aGUgU1FMVHJhbnNhY3Rpb25DYWxs
YmFjayB3YXMgbnVsbCBvciB0aHJldyBhbiBleGNlcHRpb24iKTsKKyAgICAgICAgbV90cmFuc2Fj
dGlvbkVycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6VU5LTk9XTl9FUlIsICJ0aGUg
U1FMVHJhbnNhY3Rpb25DYWxsYmFjayB3YXMgbnVsbCBvciB0aHJldyBhbiBleGNlcHRpb24iX3Mp
OwogICAgICAgICByZXR1cm4gZGVsaXZlclRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjaygpOwogICAg
IH0KIApAQCAtNDMyLDcgKzQzMiw3IEBAIHZvaWQgU1FMVHJhbnNhY3Rpb246OmRlbGl2ZXJTdGF0
ZW1lbnRDYWxsYmFjaygpCiAgICAgbV9leGVjdXRlU3FsQWxsb3dlZCA9IGZhbHNlOwogCiAgICAg
aWYgKHJlc3VsdCkgewotICAgICAgICBtX3RyYW5zYWN0aW9uRXJyb3IgPSBTUUxFcnJvcjo6Y3Jl
YXRlKFNRTEVycm9yOjpVTktOT1dOX0VSUiwgInRoZSBzdGF0ZW1lbnQgY2FsbGJhY2sgcmFpc2Vk
IGFuIGV4Y2VwdGlvbiBvciBzdGF0ZW1lbnQgZXJyb3IgY2FsbGJhY2sgZGlkIG5vdCByZXR1cm4g
ZmFsc2UiKTsKKyAgICAgICAgbV90cmFuc2FjdGlvbkVycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShT
UUxFcnJvcjo6VU5LTk9XTl9FUlIsICJ0aGUgc3RhdGVtZW50IGNhbGxiYWNrIHJhaXNlZCBhbiBl
eGNlcHRpb24gb3Igc3RhdGVtZW50IGVycm9yIGNhbGxiYWNrIGRpZCBub3QgcmV0dXJuIGZhbHNl
Il9zKTsKIAogICAgICAgICBpZiAobV9lcnJvckNhbGxiYWNrV3JhcHBlci5oYXNDYWxsYmFjaygp
KQogICAgICAgICAgICAgcmV0dXJuIGRlbGl2ZXJUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2soKTsK
QEAgLTU2OCw3ICs1NjgsNyBAQCB2b2lkIFNRTFRyYW5zYWN0aW9uOjpoYW5kbGVDdXJyZW50U3Rh
dGVtZW50RXJyb3IoKQogCiAgICAgbV90cmFuc2FjdGlvbkVycm9yID0gbV9jdXJyZW50U3RhdGVt
ZW50LT5zcWxFcnJvcigpOwogICAgIGlmICghbV90cmFuc2FjdGlvbkVycm9yKQotICAgICAgICBt
X3RyYW5zYWN0aW9uRXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpEQVRBQkFTRV9F
UlIsICJ0aGUgc3RhdGVtZW50IGZhaWxlZCB0byBleGVjdXRlIik7CisgICAgICAgIG1fdHJhbnNh
Y3Rpb25FcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OkRBVEFCQVNFX0VSUiwgInRo
ZSBzdGF0ZW1lbnQgZmFpbGVkIHRvIGV4ZWN1dGUiX3MpOwogCiAgICAgaGFuZGxlVHJhbnNhY3Rp
b25FcnJvcigpOwogfQpAQCAtNTk0LDcgKzU5NCw3IEBAIHZvaWQgU1FMVHJhbnNhY3Rpb246OnBv
c3RmbGlnaHRBbmRDb21taXQoKQogICAgIGlmIChtX3dyYXBwZXIgJiYgIW1fd3JhcHBlci0+cGVy
Zm9ybVBvc3RmbGlnaHQoKnRoaXMpKSB7CiAgICAgICAgIG1fdHJhbnNhY3Rpb25FcnJvciA9IG1f
d3JhcHBlci0+c3FsRXJyb3IoKTsKICAgICAgICAgaWYgKCFtX3RyYW5zYWN0aW9uRXJyb3IpCi0g
ICAgICAgICAgICBtX3RyYW5zYWN0aW9uRXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9y
OjpVTktOT1dOX0VSUiwgInVua25vd24gZXJyb3Igb2NjdXJyZWQgZHVyaW5nIHRyYW5zYWN0aW9u
IHBvc3RmbGlnaHQiKTsKKyAgICAgICAgICAgIG1fdHJhbnNhY3Rpb25FcnJvciA9IFNRTEVycm9y
OjpjcmVhdGUoU1FMRXJyb3I6OlVOS05PV05fRVJSLCAidW5rbm93biBlcnJvciBvY2N1cnJlZCBk
dXJpbmcgdHJhbnNhY3Rpb24gcG9zdGZsaWdodCJfcyk7CiAKICAgICAgICAgaGFuZGxlVHJhbnNh
Y3Rpb25FcnJvcigpOwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwCmluZGV4IGY5NzNlNWJkM2I5MGUzYTRjYzczNTIx
NGQ5YTMxOWFkZjkyMWU0YjYuLjY5ZDJlNTQ3MzVhMzA2NDYzODRjN2VmYjdlYTY0OTg3ZWMzNDAy
Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2Nr
ZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQu
Y3BwCkBAIC0xMzcsOSArMTM3LDkgQEAgc3RhdGljIHVuc2lnbmVkIHNhdHVyYXRlQWRkKHVuc2ln
bmVkIGEsIHVuc2lnbmVkIGIpCiAgICAgcmV0dXJuIGEgKyBiOwogfQogCi1jb25zdCBjaGFyKiBX
ZWJTb2NrZXQ6OnN1YnByb3RvY29sU2VwYXJhdG9yKCkKK0FTQ0lJTGl0ZXJhbCBXZWJTb2NrZXQ6
OnN1YnByb3RvY29sU2VwYXJhdG9yKCkKIHsKLSAgICByZXR1cm4gIiwgIjsKKyAgICByZXR1cm4g
IiwgIl9zOwogfQogCiBXZWJTb2NrZXQ6OldlYlNvY2tldChTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiBjb250ZXh0KQpAQCAtNDMwLDcgKzQzMCw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFdlYlNvY2tl
dDo6Y2xvc2Uoc3RkOjpvcHRpb25hbDx1bnNpZ25lZCBzaG9ydD4gb3B0aW9uYWxDb2RlLCBjCiAg
ICAgICAgIHJldHVybiB7IH07CiAgICAgaWYgKG1fc3RhdGUgPT0gQ09OTkVDVElORykgewogICAg
ICAgICBtX3N0YXRlID0gQ0xPU0lORzsKLSAgICAgICAgbV9jaGFubmVsLT5mYWlsKCJXZWJTb2Nr
ZXQgaXMgY2xvc2VkIGJlZm9yZSB0aGUgY29ubmVjdGlvbiBpcyBlc3RhYmxpc2hlZC4iKTsKKyAg
ICAgICAgbV9jaGFubmVsLT5mYWlsKCJXZWJTb2NrZXQgaXMgY2xvc2VkIGJlZm9yZSB0aGUgY29u
bmVjdGlvbiBpcyBlc3RhYmxpc2hlZC4iX3MpOwogICAgICAgICByZXR1cm4geyB9OwogICAgIH0K
ICAgICBtX3N0YXRlID0gQ0xPU0lORzsKQEAgLTUyMCw3ICs1MjAsNyBAQCB2b2lkIFdlYlNvY2tl
dDo6c3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uIHJlYXNvbikKIAogICAgIGlmIChyZWFzb24g
PT0gUmVhc29uRm9yU3VzcGVuc2lvbjo6QmFja0ZvcndhcmRDYWNoZSkgewogICAgICAgICAvLyBU
aGlzIHdpbGwgY2F1c2UgZGlkQ2xvc2UoKSB0byBiZSBjYWxsZWQuCi0gICAgICAgIG1fY2hhbm5l
bC0+ZmFpbCgiV2ViU29ja2V0IGlzIGNsb3NlZCBkdWUgdG8gc3VzcGVuc2lvbi4iKTsKKyAgICAg
ICAgbV9jaGFubmVsLT5mYWlsKCJXZWJTb2NrZXQgaXMgY2xvc2VkIGR1ZSB0byBzdXNwZW5zaW9u
LiJfcyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuaAppbmRleCBlNjg2M2U0NmRhMDdkMThiNmQ5MTVlYjE1
YzI0Y2RmMjJkYjZhNmNiLi5lZmZjMDY4YmJmNjI2NWU3YTNiMTU1Yzk0ZmY0NDhlNzY2ZDFlMzY1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5oCkBA
IC01MSw3ICs1MSw3IEBAIGNsYXNzIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOwogY2xhc3Mg
V2ViU29ja2V0IGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViU29ja2V0PiwgcHVibGljIEV2
ZW50VGFyZ2V0V2l0aElubGluZURhdGEsIHB1YmxpYyBBY3RpdmVET01PYmplY3QsIHByaXZhdGUg
V2ViU29ja2V0Q2hhbm5lbENsaWVudCB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChXZWJT
b2NrZXQpOwogcHVibGljOgotICAgIHN0YXRpYyBjb25zdCBjaGFyKiBzdWJwcm90b2NvbFNlcGFy
YXRvcigpOworICAgIHN0YXRpYyBBU0NJSUxpdGVyYWwgc3VicHJvdG9jb2xTZXBhcmF0b3IoKTsK
IAogICAgIHN0YXRpYyBFeGNlcHRpb25PcjxSZWY8V2ViU29ja2V0Pj4gY3JlYXRlKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmLCBjb25zdCBTdHJpbmcmIHVybCk7CiAgICAgc3RhdGljIEV4Y2VwdGlv
bk9yPFJlZjxXZWJTb2NrZXQ+PiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGNvbnN0
IFN0cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIHByb3RvY29sKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcAppbmRleCBk
ZjU2MzU5YzZmZGEwNTIxMDNkOTdiM2Q4YTVkMTA4NDkxOTc1ZjViLi42OWI4ZTJhNzc1NGE4OTc4
YzE5NTQ4NTFmZjI2Yzk5NjE1MmY1ZGMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwCkBAIC0yODcsNyArMjg3LDcg
QEAgdm9pZCBXZWJTb2NrZXRDaGFubmVsOjpkaWRPcGVuU29ja2V0U3RyZWFtKFNvY2tldFN0cmVh
bUhhbmRsZSYgaGFuZGxlKQogICAgICAgICBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94eSA9
IENvb2tpZUphcjo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHkoKm1fZG9jdW1lbnQsIG1f
aGFuZHNoYWtlLT5odHRwVVJMRm9yQXV0aGVudGljYXRpb25BbmRDb29raWVzKCkpOwogICAgIGhh
bmRsZS5zZW5kSGFuZHNoYWtlKFdURk1vdmUoaGFuZHNoYWtlTWVzc2FnZSksIFdURk1vdmUoY29v
a2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHkpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7
ICp0aGlzIH1dIChib29sIHN1Y2Nlc3MsIGJvb2wgZGlkQWNjZXNzU2VjdXJlQ29va2llcykgewog
ICAgICAgICBpZiAoIXN1Y2Nlc3MpCi0gICAgICAgICAgICBmYWlsKCJGYWlsZWQgdG8gc2VuZCBX
ZWJTb2NrZXQgaGFuZHNoYWtlLiIpOworICAgICAgICAgICAgZmFpbCgiRmFpbGVkIHRvIHNlbmQg
V2ViU29ja2V0IGhhbmRzaGFrZS4iX3MpOwogCiAgICAgICAgIGlmIChkaWRBY2Nlc3NTZWN1cmVD
b29raWVzICYmIG1fZG9jdW1lbnQpCiAgICAgICAgICAgICBtX2RvY3VtZW50LT5zZXRTZWN1cmVD
b29raWVzQWNjZXNzZWQoKTsKQEAgLTM0MCw3ICszNDAsNyBAQCB2b2lkIFdlYlNvY2tldENoYW5u
ZWw6OmRpZFJlY2VpdmVTb2NrZXRTdHJlYW1EYXRhKFNvY2tldFN0cmVhbUhhbmRsZSYgaGFuZGxl
LCBjbwogICAgICAgICByZXR1cm47CiAgICAgaWYgKCFhcHBlbmRUb0J1ZmZlcihkYXRhLCBsZW5n
dGgpKSB7CiAgICAgICAgIG1fc2hvdWxkRGlzY2FyZFJlY2VpdmVkRGF0YSA9IHRydWU7Ci0gICAg
ICAgIGZhaWwoIlJhbiBvdXQgb2YgbWVtb3J5IHdoaWxlIHJlY2VpdmluZyBXZWJTb2NrZXQgZGF0
YS4iKTsKKyAgICAgICAgZmFpbCgiUmFuIG91dCBvZiBtZW1vcnkgd2hpbGUgcmVjZWl2aW5nIFdl
YlNvY2tldCBkYXRhLiJfcyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgd2hpbGUgKCFt
X3N1c3BlbmRlZCAmJiBtX2NsaWVudCAmJiAhbV9idWZmZXIuaXNFbXB0eSgpKSB7CkBAIC01NzEs
NyArNTcxLDcgQEAgYm9vbCBXZWJTb2NrZXRDaGFubmVsOjpwcm9jZXNzRnJhbWUoKQogICAgIH0K
IAogICAgIGlmIChmcmFtZS5tYXNrZWQpIHsKLSAgICAgICAgZmFpbCgiQSBzZXJ2ZXIgbXVzdCBu
b3QgbWFzayBhbnkgZnJhbWVzIHRoYXQgaXQgc2VuZHMgdG8gdGhlIGNsaWVudC4iKTsKKyAgICAg
ICAgZmFpbCgiQSBzZXJ2ZXIgbXVzdCBub3QgbWFzayBhbnkgZnJhbWVzIHRoYXQgaXQgc2VuZHMg
dG8gdGhlIGNsaWVudC4iX3MpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCkBAIC01
OTEsNyArNTkxLDcgQEAgYm9vbCBXZWJTb2NrZXRDaGFubmVsOjpwcm9jZXNzRnJhbWUoKQogICAg
IC8vIEEgbmV3IGRhdGEgZnJhbWUgaXMgcmVjZWl2ZWQgYmVmb3JlIHRoZSBwcmV2aW91cyBjb250
aW51b3VzIGZyYW1lIGZpbmlzaGVzLgogICAgIC8vIE5vdGUgdGhhdCBjb250cm9sIGZyYW1lcyBh
cmUgYWxsb3dlZCB0byBjb21lIGluIHRoZSBtaWRkbGUgb2YgY29udGludW91cyBmcmFtZXMuCiAg
ICAgaWYgKG1faGFzQ29udGludW91c0ZyYW1lICYmIGZyYW1lLm9wQ29kZSAhPSBXZWJTb2NrZXRG
cmFtZTo6T3BDb2RlQ29udGludWF0aW9uICYmICFXZWJTb2NrZXRGcmFtZTo6aXNDb250cm9sT3BD
b2RlKGZyYW1lLm9wQ29kZSkpIHsKLSAgICAgICAgZmFpbCgiUmVjZWl2ZWQgbmV3IGRhdGEgZnJh
bWUgYnV0IHByZXZpb3VzIGNvbnRpbnVvdXMgZnJhbWUgaXMgdW5maW5pc2hlZC4iKTsKKyAgICAg
ICAgZmFpbCgiUmVjZWl2ZWQgbmV3IGRhdGEgZnJhbWUgYnV0IHByZXZpb3VzIGNvbnRpbnVvdXMg
ZnJhbWUgaXMgdW5maW5pc2hlZC4iX3MpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQog
CkBAIC02MDEsNyArNjAxLDcgQEAgYm9vbCBXZWJTb2NrZXRDaGFubmVsOjpwcm9jZXNzRnJhbWUo
KQogICAgIGNhc2UgV2ViU29ja2V0RnJhbWU6Ok9wQ29kZUNvbnRpbnVhdGlvbjoKICAgICAgICAg
Ly8gQW4gdW5leHBlY3RlZCBjb250aW51YXRpb24gZnJhbWUgaXMgcmVjZWl2ZWQgd2l0aG91dCBh
bnkgbGVhZGluZyBmcmFtZS4KICAgICAgICAgaWYgKCFtX2hhc0NvbnRpbnVvdXNGcmFtZSkgewot
ICAgICAgICAgICAgZmFpbCgiUmVjZWl2ZWQgdW5leHBlY3RlZCBjb250aW51YXRpb24gZnJhbWUu
Iik7CisgICAgICAgICAgICBmYWlsKCJSZWNlaXZlZCB1bmV4cGVjdGVkIGNvbnRpbnVhdGlvbiBm
cmFtZS4iX3MpOwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAgICAgICAg
IG1fY29udGludW91c0ZyYW1lRGF0YS5hcHBlbmQoZnJhbWUucGF5bG9hZCwgZnJhbWUucGF5bG9h
ZExlbmd0aCk7CkBAIC02MjAsNyArNjIwLDcgQEAgYm9vbCBXZWJTb2NrZXRDaGFubmVsOjpwcm9j
ZXNzRnJhbWUoKQogICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgbWVz
c2FnZSA9IGVtcHR5U3RyaW5nKCk7CiAgICAgICAgICAgICAgICAgaWYgKG1lc3NhZ2UuaXNOdWxs
KCkpCi0gICAgICAgICAgICAgICAgICAgIGZhaWwoIkNvdWxkIG5vdCBkZWNvZGUgYSB0ZXh0IGZy
YW1lIGFzIFVURi04LiIpOworICAgICAgICAgICAgICAgICAgICBmYWlsKCJDb3VsZCBub3QgZGVj
b2RlIGEgdGV4dCBmcmFtZSBhcyBVVEYtOC4iX3MpOwogICAgICAgICAgICAgICAgIGVsc2UKICAg
ICAgICAgICAgICAgICAgICAgbV9jbGllbnQtPmRpZFJlY2VpdmVNZXNzYWdlKFdURk1vdmUobWVz
c2FnZSkpOwogICAgICAgICAgICAgfSBlbHNlIGlmIChtX2NvbnRpbnVvdXNGcmFtZU9wQ29kZSA9
PSBXZWJTb2NrZXRGcmFtZTo6T3BDb2RlQmluYXJ5KQpAQCAtNjM3LDcgKzYzNyw3IEBAIGJvb2wg
V2ViU29ja2V0Q2hhbm5lbDo6cHJvY2Vzc0ZyYW1lKCkKICAgICAgICAgICAgICAgICBtZXNzYWdl
ID0gZW1wdHlTdHJpbmcoKTsKICAgICAgICAgICAgIHNraXBCdWZmZXIoZnJhbWVFbmQgLSBtX2J1
ZmZlci5kYXRhKCkpOwogICAgICAgICAgICAgaWYgKG1lc3NhZ2UuaXNOdWxsKCkpCi0gICAgICAg
ICAgICAgICAgZmFpbCgiQ291bGQgbm90IGRlY29kZSBhIHRleHQgZnJhbWUgYXMgVVRGLTguIik7
CisgICAgICAgICAgICAgICAgZmFpbCgiQ291bGQgbm90IGRlY29kZSBhIHRleHQgZnJhbWUgYXMg
VVRGLTguIl9zKTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBtX2NsaWVudC0+
ZGlkUmVjZWl2ZU1lc3NhZ2UoV1RGTW92ZShtZXNzYWdlKSk7CiAgICAgICAgIH0gZWxzZSB7CkBA
IC02NjksMTMgKzY2OSwxMyBAQCBib29sIFdlYlNvY2tldENoYW5uZWw6OnByb2Nlc3NGcmFtZSgp
CiAgICAgICAgICAgICBtX2Nsb3NlRXZlbnRDb2RlID0gQ2xvc2VFdmVudENvZGVOb1N0YXR1c1Jj
dmQ7CiAgICAgICAgIGVsc2UgaWYgKGZyYW1lLnBheWxvYWRMZW5ndGggPT0gMSkgewogICAgICAg
ICAgICAgbV9jbG9zZUV2ZW50Q29kZSA9IENsb3NlRXZlbnRDb2RlQWJub3JtYWxDbG9zdXJlOwot
ICAgICAgICAgICAgZmFpbCgiUmVjZWl2ZWQgYSBicm9rZW4gY2xvc2UgZnJhbWUgY29udGFpbmlu
ZyBhbiBpbnZhbGlkIHNpemUgYm9keS4iKTsKKyAgICAgICAgICAgIGZhaWwoIlJlY2VpdmVkIGEg
YnJva2VuIGNsb3NlIGZyYW1lIGNvbnRhaW5pbmcgYW4gaW52YWxpZCBzaXplIGJvZHkuIl9zKTsK
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAg
IG1fY2xvc2VFdmVudENvZGUgPSBmcmFtZS5wYXlsb2FkWzBdIDw8IDggfCBmcmFtZS5wYXlsb2Fk
WzFdOwogICAgICAgICAgICAgaWYgKG1fY2xvc2VFdmVudENvZGUgPT0gQ2xvc2VFdmVudENvZGVO
b1N0YXR1c1JjdmQgfHwgbV9jbG9zZUV2ZW50Q29kZSA9PSBDbG9zZUV2ZW50Q29kZUFibm9ybWFs
Q2xvc3VyZSB8fCBtX2Nsb3NlRXZlbnRDb2RlID09IENsb3NlRXZlbnRDb2RlVExTSGFuZHNoYWtl
KSB7CiAgICAgICAgICAgICAgICAgbV9jbG9zZUV2ZW50Q29kZSA9IENsb3NlRXZlbnRDb2RlQWJu
b3JtYWxDbG9zdXJlOwotICAgICAgICAgICAgICAgIGZhaWwoIlJlY2VpdmVkIGEgYnJva2VuIGNs
b3NlIGZyYW1lIGNvbnRhaW5pbmcgYSByZXNlcnZlZCBzdGF0dXMgY29kZS4iKTsKKyAgICAgICAg
ICAgICAgICBmYWlsKCJSZWNlaXZlZCBhIGJyb2tlbiBjbG9zZSBmcmFtZSBjb250YWluaW5nIGEg
cmVzZXJ2ZWQgc3RhdHVzIGNvZGUuIl9zKTsKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTc2MSw3ICs3NjEsNyBAQCB2b2lkIFdlYlNv
Y2tldENoYW5uZWw6OnByb2Nlc3NPdXRnb2luZ0ZyYW1lUXVldWUoKQogICAgICAgICBjYXNlIFF1
ZXVlZEZyYW1lVHlwZVN0cmluZzogewogICAgICAgICAgICAgc2VuZEZyYW1lKGZyYW1lLT5vcENv
ZGUsIGZyYW1lLT5zdHJpbmdEYXRhLmRhdGFBc1VJbnQ4UHRyKCksIGZyYW1lLT5zdHJpbmdEYXRh
Lmxlbmd0aCgpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH1dIChib29sIHN1
Y2Nlc3MpIHsKICAgICAgICAgICAgICAgICBpZiAoIXN1Y2Nlc3MpCi0gICAgICAgICAgICAgICAg
ICAgIGZhaWwoIkZhaWxlZCB0byBzZW5kIFdlYlNvY2tldCBmcmFtZS4iKTsKKyAgICAgICAgICAg
ICAgICAgICAgZmFpbCgiRmFpbGVkIHRvIHNlbmQgV2ViU29ja2V0IGZyYW1lLiJfcyk7CiAgICAg
ICAgICAgICB9KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC03NjksNyArNzY5
LDcgQEAgdm9pZCBXZWJTb2NrZXRDaGFubmVsOjpwcm9jZXNzT3V0Z29pbmdGcmFtZVF1ZXVlKCkK
ICAgICAgICAgY2FzZSBRdWV1ZWRGcmFtZVR5cGVWZWN0b3I6CiAgICAgICAgICAgICBzZW5kRnJh
bWUoZnJhbWUtPm9wQ29kZSwgZnJhbWUtPnZlY3RvckRhdGEuZGF0YSgpLCBmcmFtZS0+dmVjdG9y
RGF0YS5zaXplKCksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfV0gKGJvb2wg
c3VjY2VzcykgewogICAgICAgICAgICAgICAgIGlmICghc3VjY2VzcykKLSAgICAgICAgICAgICAg
ICAgICAgZmFpbCgiRmFpbGVkIHRvIHNlbmQgV2ViU29ja2V0IGZyYW1lLiIpOworICAgICAgICAg
ICAgICAgICAgICBmYWlsKCJGYWlsZWQgdG8gc2VuZCBXZWJTb2NrZXQgZnJhbWUuIl9zKTsKICAg
ICAgICAgICAgIH0pOwogICAgICAgICAgICAgYnJlYWs7CiAKQEAgLTc5Niw3ICs3OTYsNyBAQCB2
b2lkIFdlYlNvY2tldENoYW5uZWw6OnByb2Nlc3NPdXRnb2luZ0ZyYW1lUXVldWUoKQogICAgICAg
ICAgICAgICAgIG1fYmxvYkxvYWRlclN0YXR1cyA9IEJsb2JMb2FkZXJOb3RTdGFydGVkOwogICAg
ICAgICAgICAgICAgIHNlbmRGcmFtZShmcmFtZS0+b3BDb2RlLCBzdGF0aWNfY2FzdDxjb25zdCB1
aW50OF90Kj4ocmVzdWx0LT5kYXRhKCkpLCByZXN1bHQtPmJ5dGVMZW5ndGgoKSwgW3RoaXMsIHBy
b3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9XSAoYm9vbCBzdWNjZXNzKSB7CiAgICAgICAgICAg
ICAgICAgICAgIGlmICghc3VjY2VzcykKLSAgICAgICAgICAgICAgICAgICAgICAgIGZhaWwoIkZh
aWxlZCB0byBzZW5kIFdlYlNvY2tldCBmcmFtZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGZhaWwoIkZhaWxlZCB0byBzZW5kIFdlYlNvY2tldCBmcmFtZS4iX3MpOwogICAgICAgICAgICAg
ICAgIH0pOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldERlZmxhdGVGcmFt
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldERlZmxh
dGVGcmFtZXIuY3BwCmluZGV4IDAxZmRmZTAyOWU0NmZjZTg2MmQ1ZTYxNmNmYzQ5NWQ2OWNjNjE0
NjUuLmE4N2ZlNWQ3YWFlNWU4MGQzOTc1NDk5YzRjNTZhNmUwMTdkZjExZGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXREZWZsYXRlRnJhbWVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RGVm
bGF0ZUZyYW1lci5jcHAKQEAgLTc2LDcgKzc2LDcgQEAgYm9vbCBXZWJTb2NrZXRFeHRlbnNpb25E
ZWZsYXRlRnJhbWU6OnByb2Nlc3NSZXNwb25zZShjb25zdCBIYXNoTWFwPFN0cmluZywgU3RyaW4K
IAogICAgIHVuc2lnbmVkIGV4cGVjdGVkTnVtUGFyYW1ldGVycyA9IDA7CiAgICAgaW50IHdpbmRv
d0JpdHMgPSAxNTsKLSAgICBhdXRvIHBhcmFtZXRlciA9IHNlcnZlclBhcmFtZXRlcnMuZmluZCgi
bWF4X3dpbmRvd19iaXRzIik7CisgICAgYXV0byBwYXJhbWV0ZXIgPSBzZXJ2ZXJQYXJhbWV0ZXJz
LmZpbmQoIm1heF93aW5kb3dfYml0cyJfcyk7CiAgICAgaWYgKHBhcmFtZXRlciAhPSBzZXJ2ZXJQ
YXJhbWV0ZXJzLmVuZCgpKSB7CiAgICAgICAgIHdpbmRvd0JpdHMgPSBwYXJzZUludGVnZXJBbGxv
d2luZ1RyYWlsaW5nSnVuazxpbnQ+KHBhcmFtZXRlci0+dmFsdWUpLnZhbHVlX29yKDApOwogICAg
ICAgICBpZiAod2luZG93Qml0cyA8IDggfHwgd2luZG93Qml0cyA+IDE1KSB7CkBAIC04Nyw3ICs4
Nyw3IEBAIGJvb2wgV2ViU29ja2V0RXh0ZW5zaW9uRGVmbGF0ZUZyYW1lOjpwcm9jZXNzUmVzcG9u
c2UoY29uc3QgSGFzaE1hcDxTdHJpbmcsIFN0cmluCiAgICAgfQogCiAgICAgV2ViU29ja2V0RGVm
bGF0ZXI6OkNvbnRleHRUYWtlT3Zlck1vZGUgbW9kZSA9IFdlYlNvY2tldERlZmxhdGVyOjpUYWtl
T3ZlckNvbnRleHQ7Ci0gICAgcGFyYW1ldGVyID0gc2VydmVyUGFyYW1ldGVycy5maW5kKCJub19j
b250ZXh0X3Rha2VvdmVyIik7CisgICAgcGFyYW1ldGVyID0gc2VydmVyUGFyYW1ldGVycy5maW5k
KCJub19jb250ZXh0X3Rha2VvdmVyIl9zKTsKICAgICBpZiAocGFyYW1ldGVyICE9IHNlcnZlclBh
cmFtZXRlcnMuZW5kKCkpIHsKICAgICAgICAgaWYgKCFwYXJhbWV0ZXItPnZhbHVlLmlzTnVsbCgp
KSB7CiAgICAgICAgICAgICBtX2ZhaWx1cmVSZWFzb24gPSAiUmVjZWl2ZWQgaW52YWxpZCBub19j
b250ZXh0X3Rha2VvdmVyIHBhcmFtZXRlciJfczsKQEAgLTE2MSw3ICsxNjEsNyBAQCBzdGQ6OnVu
aXF1ZV9wdHI8RGVmbGF0ZVJlc3VsdEhvbGRlcj4gV2ViU29ja2V0RGVmbGF0ZUZyYW1lcjo6ZGVm
bGF0ZShXZWJTb2NrZXRGcgogICAgIGlmICghZW5hYmxlZCgpIHx8ICFXZWJTb2NrZXRGcmFtZTo6
aXNOb25Db250cm9sT3BDb2RlKGZyYW1lLm9wQ29kZSkgfHwgIWZyYW1lLnBheWxvYWRMZW5ndGgp
CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgaWYgKCFtX2RlZmxhdGVyLT5hZGRCeXRlcyhm
cmFtZS5wYXlsb2FkLCBmcmFtZS5wYXlsb2FkTGVuZ3RoKSB8fCAhbV9kZWZsYXRlci0+ZmluaXNo
KCkpIHsKLSAgICAgICAgcmVzdWx0LT5mYWlsKCJGYWlsZWQgdG8gY29tcHJlc3MgZnJhbWUiKTsK
KyAgICAgICAgcmVzdWx0LT5mYWlsKCJGYWlsZWQgdG8gY29tcHJlc3MgZnJhbWUiX3MpOwogICAg
ICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KICAgICBmcmFtZS5jb21wcmVzcyA9IHRydWU7CkBA
IC0xODAsMTcgKzE4MCwxNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8SW5mbGF0ZVJlc3VsdEhvbGRlcj4g
V2ViU29ja2V0RGVmbGF0ZUZyYW1lcjo6aW5mbGF0ZShXZWJTb2NrZXRGcgogewogICAgIGF1dG8g
cmVzdWx0ID0gbWFrZVVuaXF1ZTxJbmZsYXRlUmVzdWx0SG9sZGVyPigqdGhpcyk7CiAgICAgaWYg
KCFlbmFibGVkKCkgJiYgZnJhbWUuY29tcHJlc3MpIHsKLSAgICAgICAgcmVzdWx0LT5mYWlsKCJD
b21wcmVzc2VkIGJpdCBtdXN0IGJlIDAgaWYgbm8gbmVnb3RpYXRlZCBkZWZsYXRlLWZyYW1lIGV4
dGVuc2lvbiIpOworICAgICAgICByZXN1bHQtPmZhaWwoIkNvbXByZXNzZWQgYml0IG11c3QgYmUg
MCBpZiBubyBuZWdvdGlhdGVkIGRlZmxhdGUtZnJhbWUgZXh0ZW5zaW9uIl9zKTsKICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKICAgICB9CiAgICAgaWYgKCFmcmFtZS5jb21wcmVzcykKICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKICAgICBpZiAoIVdlYlNvY2tldEZyYW1lOjppc05vbkNvbnRyb2xPcENv
ZGUoZnJhbWUub3BDb2RlKSkgewotICAgICAgICByZXN1bHQtPmZhaWwoIlJlY2VpdmVkIHVuZXhw
ZWN0ZWQgY29tcHJlc3NlZCBmcmFtZSIpOworICAgICAgICByZXN1bHQtPmZhaWwoIlJlY2VpdmVk
IHVuZXhwZWN0ZWQgY29tcHJlc3NlZCBmcmFtZSJfcyk7CiAgICAgICAgIHJldHVybiByZXN1bHQ7
CiAgICAgfQogICAgIGlmICghbV9pbmZsYXRlci0+YWRkQnl0ZXMoZnJhbWUucGF5bG9hZCwgZnJh
bWUucGF5bG9hZExlbmd0aCkgfHwgIW1faW5mbGF0ZXItPmZpbmlzaCgpKSB7Ci0gICAgICAgIHJl
c3VsdC0+ZmFpbCgiRmFpbGVkIHRvIGRlY29tcHJlc3MgZnJhbWUiKTsKKyAgICAgICAgcmVzdWx0
LT5mYWlsKCJGYWlsZWQgdG8gZGVjb21wcmVzcyBmcmFtZSJfcyk7CiAgICAgICAgIHJldHVybiBy
ZXN1bHQ7CiAgICAgfQogICAgIGZyYW1lLmNvbXByZXNzID0gZmFsc2U7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RXh0ZW5zaW9uRGlzcGF0
Y2hlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RXh0
ZW5zaW9uRGlzcGF0Y2hlci5jcHAKaW5kZXggN2FmMmMzNzkxYTBhZThkNmVlOWU5Mjk5ODM1N2U4
NjBhZmJiNzVkZC4uZTVjZjEyNTExZWYzZTU2NGY2M2I4NWQ4Y2IwYmIxZWU0MGM1ZGEzZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEV4dGVu
c2lvbkRpc3BhdGNoZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0
cy9XZWJTb2NrZXRFeHRlbnNpb25EaXNwYXRjaGVyLmNwcApAQCAtOTMsNyArOTMsNyBAQCBib29s
IFdlYlNvY2tldEV4dGVuc2lvbkRpc3BhdGNoZXI6OnByb2Nlc3NIZWFkZXJWYWx1ZShjb25zdCBT
dHJpbmcmIGhlYWRlclZhbHVlKQogCiAgICAgLy8gSWYgd2UgZG9uJ3Qgc2VuZCBTZWMtV2ViU29j
a2V0LUV4dGVuc2lvbnMgaGVhZGVyLCB0aGUgc2VydmVyIHNob3VsZCBub3QgcmV0dXJuIHRoZSBo
ZWFkZXIuCiAgICAgaWYgKCFtX3Byb2Nlc3NvcnMuc2l6ZSgpKSB7Ci0gICAgICAgIGZhaWwoIlJl
Y2VpdmVkIHVuZXhwZWN0ZWQgU2VjLVdlYlNvY2tldC1FeHRlbnNpb25zIGhlYWRlciIpOworICAg
ICAgICBmYWlsKCJSZWNlaXZlZCB1bmV4cGVjdGVkIFNlYy1XZWJTb2NrZXQtRXh0ZW5zaW9ucyBo
ZWFkZXIiX3MpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCkBAIC0xMDMsNyArMTAz
LDcgQEAgYm9vbCBXZWJTb2NrZXRFeHRlbnNpb25EaXNwYXRjaGVyOjpwcm9jZXNzSGVhZGVyVmFs
dWUoY29uc3QgU3RyaW5nJiBoZWFkZXJWYWx1ZSkKICAgICAgICAgU3RyaW5nIGV4dGVuc2lvblRv
a2VuOwogICAgICAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBleHRlbnNpb25QYXJhbWV0ZXJz
OwogICAgICAgICBpZiAoIXBhcnNlci5wYXJzZUV4dGVuc2lvbihleHRlbnNpb25Ub2tlbiwgZXh0
ZW5zaW9uUGFyYW1ldGVycykpIHsKLSAgICAgICAgICAgIGZhaWwoIlNlYy1XZWJTb2NrZXQtRXh0
ZW5zaW9ucyBoZWFkZXIgaXMgaW52YWxpZCIpOworICAgICAgICAgICAgZmFpbCgiU2VjLVdlYlNv
Y2tldC1FeHRlbnNpb25zIGhlYWRlciBpcyBpbnZhbGlkIl9zKTsKICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnNvY2tldHMvV2ViU29ja2V0RnJhbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJzb2NrZXRzL1dlYlNvY2tldEZyYW1lLmNwcAppbmRleCBlMzllMDE5YWUwMmQ5NjcyMzhmOTY1
NzJkNTNlZTIzYzM0NTZmMjMzLi5iYTFlNjI1NDkxN2FmZjRmYTdiODJjNjg4NGZlYjJhYzkwNzBk
M2FkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29j
a2V0RnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJT
b2NrZXRGcmFtZS5jcHAKQEAgLTgyLDExICs4MiwxMSBAQCBXZWJTb2NrZXRGcmFtZTo6UGFyc2VG
cmFtZVJlc3VsdCBXZWJTb2NrZXRGcmFtZTo6cGFyc2VGcmFtZSh1aW50OF90KiBkYXRhLCBzaXpl
XwogICAgICAgICAgICAgcGF5bG9hZExlbmd0aDY0IHw9IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KCpw
KyspOwogICAgICAgICB9CiAgICAgICAgIGlmIChleHRlbmRlZFBheWxvYWRMZW5ndGhTaXplID09
IDIgJiYgcGF5bG9hZExlbmd0aDY0IDw9IG1heFBheWxvYWRMZW5ndGhXaXRob3V0RXh0ZW5kZWRM
ZW5ndGhGaWVsZCkgewotICAgICAgICAgICAgZXJyb3JTdHJpbmcgPSAiVGhlIG1pbmltYWwgbnVt
YmVyIG9mIGJ5dGVzIE1VU1QgYmUgdXNlZCB0byBlbmNvZGUgdGhlIGxlbmd0aCI7CisgICAgICAg
ICAgICBlcnJvclN0cmluZyA9ICJUaGUgbWluaW1hbCBudW1iZXIgb2YgYnl0ZXMgTVVTVCBiZSB1
c2VkIHRvIGVuY29kZSB0aGUgbGVuZ3RoIl9zOwogICAgICAgICAgICAgcmV0dXJuIEZyYW1lRXJy
b3I7CiAgICAgICAgIH0KICAgICAgICAgaWYgKGV4dGVuZGVkUGF5bG9hZExlbmd0aFNpemUgPT0g
OCAmJiBwYXlsb2FkTGVuZ3RoNjQgPD0gMHhGRkZGKSB7Ci0gICAgICAgICAgICBlcnJvclN0cmlu
ZyA9ICJUaGUgbWluaW1hbCBudW1iZXIgb2YgYnl0ZXMgTVVTVCBiZSB1c2VkIHRvIGVuY29kZSB0
aGUgbGVuZ3RoIjsKKyAgICAgICAgICAgIGVycm9yU3RyaW5nID0gIlRoZSBtaW5pbWFsIG51bWJl
ciBvZiBieXRlcyBNVVNUIGJlIHVzZWQgdG8gZW5jb2RlIHRoZSBsZW5ndGgiX3M7CiAgICAgICAg
ICAgICByZXR1cm4gRnJhbWVFcnJvcjsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJXZWJHTExheWVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJXZWJHTExheWVyLmNwcAppbmRleCA4MjZkZTE2YTcw
NjkxZDQyMGM1OTQ2N2RjNGE3MWRlZGZiMGI2NWM2Li5kNzQwZmJiODgzZDI1OGFkMWU1ZGI3ZjZi
YmZkMTY2NWI0NDliOTg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhy
L1dlYlhSV2ViR0xMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9X
ZWJYUldlYkdMTGF5ZXIuY3BwCkBAIC02NCw3ICs2NCw3IEBAIHN0YXRpYyBFeGNlcHRpb25Pcjxz
dGQ6OnVuaXF1ZV9wdHI8V2ViWFJPcGFxdWVGcmFtZWJ1ZmZlcj4+IGNyZWF0ZU9wYXF1ZUZyYW1l
YnVmCiB7CiAgICAgYXV0byBkZXZpY2UgPSBzZXNzaW9uLmRldmljZSgpOwogICAgIGlmICghZGV2
aWNlKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgT3BlcmF0aW9uRXJyb3IsICJDYW5ub3Qg
Y3JlYXRlIGFuIFhSV2ViR0xMYXllciB3aXRoIGFuIFhSU2Vzc2lvbiB0aGF0IGhhcyBlbmRlZC4i
IH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBPcGVyYXRpb25FcnJvciwgIkNhbm5vdCBj
cmVhdGUgYW4gWFJXZWJHTExheWVyIHdpdGggYW4gWFJTZXNzaW9uIHRoYXQgaGFzIGVuZGVkLiJf
cyB9OwogCiAgICAgLy8gOS4xLiBJbml0aWFsaXplIGxheWVy4oCZcyBhbnRpYWxpYXMgdG8gbGF5
ZXJJbml04oCZcyBhbnRpYWxpYXMgdmFsdWUuCiAgICAgLy8gOS4yLiBMZXQgZnJhbWVidWZmZXJT
aXplIGJlIHRoZSByZWNvbW1lbmRlZCBXZWJHTCBmcmFtZWJ1ZmZlciByZXNvbHV0aW9uIG11bHRp
cGxpZWQgYnkgbGF5ZXJJbml0J3MgZnJhbWVidWZmZXJTY2FsZUZhY3Rvci4KQEAgLTgyLDcgKzgy
LDcgQEAgc3RhdGljIEV4Y2VwdGlvbk9yPHN0ZDo6dW5pcXVlX3B0cjxXZWJYUk9wYXF1ZUZyYW1l
YnVmZmVyPj4gY3JlYXRlT3BhcXVlRnJhbWVidWYKICAgICAvLyA5LjUuIElmIGxheWVy4oCZcyBy
ZXNvdXJjZXMgd2VyZSB1bmFibGUgdG8gYmUgY3JlYXRlZCBmb3IgYW55IHJlYXNvbiwgdGhyb3cg
YW4gT3BlcmF0aW9uRXJyb3IgYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgogICAgIGF1dG8gbGF5ZXJI
YW5kbGUgPSBkZXZpY2UtPmNyZWF0ZUxheWVyUHJvamVjdGlvbih3aWR0aCwgaGVpZ2h0LCBpbml0
LmFscGhhKTsKICAgICBpZiAoIWxheWVySGFuZGxlKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9u
IHsgT3BlcmF0aW9uRXJyb3IsICJVbmFibGUgdG8gYWxsb2NhdGUgWFJXZWJHTExheWVyIEdQVSBy
ZXNvdXJjZXMuIn07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBPcGVyYXRpb25FcnJvciwg
IlVuYWJsZSB0byBhbGxvY2F0ZSBYUldlYkdMTGF5ZXIgR1BVIHJlc291cmNlcy4iX3MgfTsKIAog
ICAgIFdlYlhST3BhcXVlRnJhbWVidWZmZXI6OkF0dHJpYnV0ZXMgYXR0cmlidXRlcyB7CiAgICAg
ICAgIC5hbHBoYSA9IGluaXQuYWxwaGEsCkBAIC05Myw3ICs5Myw3IEBAIHN0YXRpYyBFeGNlcHRp
b25PcjxzdGQ6OnVuaXF1ZV9wdHI8V2ViWFJPcGFxdWVGcmFtZWJ1ZmZlcj4+IGNyZWF0ZU9wYXF1
ZUZyYW1lYnVmCiAKICAgICBhdXRvIGZyYW1lYnVmZmVyID0gV2ViWFJPcGFxdWVGcmFtZWJ1ZmZl
cjo6Y3JlYXRlKCpsYXllckhhbmRsZSwgY29udGV4dCwgV1RGTW92ZShhdHRyaWJ1dGVzKSwgd2lk
dGgsIGhlaWdodCk7CiAgICAgaWYgKCFmcmFtZWJ1ZmZlcikKLSAgICAgICAgcmV0dXJuIEV4Y2Vw
dGlvbiB7IE9wZXJhdGlvbkVycm9yLCAiVW5hYmxlIHRvIGNyZWF0ZSBhIGZyYW1lYnVmZmVyLiIg
fTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE9wZXJhdGlvbkVycm9yLCAiVW5hYmxlIHRv
IGNyZWF0ZSBhIGZyYW1lYnVmZmVyLiJfcyB9OwogICAgIAogICAgIHJldHVybiBmcmFtZWJ1ZmZl
cjsKIH0KQEAgLTEwNCw3ICsxMDQsNyBAQCBFeGNlcHRpb25PcjxSZWY8V2ViWFJXZWJHTExheWVy
Pj4gV2ViWFJXZWJHTExheWVyOjpjcmVhdGUoUmVmPFdlYlhSU2Vzc2lvbj4mJiBzZQogICAgIC8v
IDEuIExldCBsYXllciBiZSBhIG5ldyBYUldlYkdMTGF5ZXIKICAgICAvLyAyLiBJZiBzZXNzaW9u
4oCZcyBlbmRlZCB2YWx1ZSBpcyB0cnVlLCB0aHJvdyBhbiBJbnZhbGlkU3RhdGVFcnJvciBhbmQg
YWJvcnQgdGhlc2Ugc3RlcHMuCiAgICAgaWYgKHNlc3Npb24tPmVuZGVkKCkpCi0gICAgICAgIHJl
dHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkNhbm5vdCBjcmVhdGUgYW4gWFJX
ZWJHTExheWVyIHdpdGggYW4gWFJTZXNzaW9uIHRoYXQgaGFzIGVuZGVkLiIgfTsKKyAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiQ2Fubm90IGNyZWF0ZSBhbiBY
UldlYkdMTGF5ZXIgd2l0aCBhbiBYUlNlc3Npb24gdGhhdCBoYXMgZW5kZWQuIl9zIH07CiAKICAg
ICAvLyAzLiBJZiBjb250ZXh0IGlzIGxvc3QsIHRocm93IGFuIEludmFsaWRTdGF0ZUVycm9yIGFu
ZCBhYm9ydCB0aGVzZSBzdGVwcy4KICAgICAvLyA0LiBJZiBzZXNzaW9uIGlzIGFuIGltbWVyc2l2
ZSBzZXNzaW9uIGFuZCBjb250ZXh04oCZcyBYUiBjb21wYXRpYmxlIGJvb2xlYW4gaXMgZmFsc2Us
IHRocm93CkBAIC0xMTMsMTEgKzExMywxMSBAQCBFeGNlcHRpb25PcjxSZWY8V2ViWFJXZWJHTExh
eWVyPj4gV2ViWFJXZWJHTExheWVyOjpjcmVhdGUoUmVmPFdlYlhSU2Vzc2lvbj4mJiBzZQogICAg
ICAgICBbJl0oY29uc3QgUmVmUHRyPFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U+JiBiYXNlQ29u
dGV4dCkgLT4gRXhjZXB0aW9uT3I8UmVmPFdlYlhSV2ViR0xMYXllcj4+CiAgICAgICAgIHsKICAg
ICAgICAgICAgIGlmIChiYXNlQ29udGV4dC0+aXNDb250ZXh0TG9zdCgpKQotICAgICAgICAgICAg
ICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkNhbm5vdCBjcmVhdGUg
YW4gWFJXZWJHTExheWVyIHdpdGggYSBsb3N0IFdlYkdMIGNvbnRleHQuIiB9OworICAgICAgICAg
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkNhbm5vdCBjcmVh
dGUgYW4gWFJXZWJHTExheWVyIHdpdGggYSBsb3N0IFdlYkdMIGNvbnRleHQuIl9zIH07CiAKICAg
ICAgICAgICAgIGF1dG8gbW9kZSA9IHNlc3Npb24tPm1vZGUoKTsKICAgICAgICAgICAgIGlmICgo
bW9kZSA9PSBYUlNlc3Npb25Nb2RlOjpJbW1lcnNpdmVBciB8fCBtb2RlID09IFhSU2Vzc2lvbk1v
ZGU6OkltbWVyc2l2ZVZyKSAmJiAhYmFzZUNvbnRleHQtPmlzWFJDb21wYXRpYmxlKCkpCi0gICAg
ICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiQ2Fubm90
IGNyZWF0ZSBhbiBYUldlYkdMTGF5ZXIgd2l0aCBXZWJHTCBjb250ZXh0IG5vdCBtYXJrZWQgYXMg
WFIgY29tcGF0aWJsZS4iIH07CisgICAgICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElu
dmFsaWRTdGF0ZUVycm9yLCAiQ2Fubm90IGNyZWF0ZSBhbiBYUldlYkdMTGF5ZXIgd2l0aCBXZWJH
TCBjb250ZXh0IG5vdCBtYXJrZWQgYXMgWFIgY29tcGF0aWJsZS4iX3MgfTsKIAogCiAgICAgICAg
ICAgICAvLyA1LiBJbml0aWFsaXplIGxheWVy4oCZcyBjb250ZXh0IHRvIGNvbnRleHQuIChzZWUg
Y29uc3RydWN0b3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FY
SW1hZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWEltYWdlLmNwcAppbmRl
eCA3NWZlYThiMTUyYjE2ZTY5NWQ2NGUyOTkyZDkzODNhODZjZmUyMmRhLi4yNjNiNzk2OTBiOTcy
OTM3MDI1NzljZjBkMGU3ODI4MGQyZmZmN2I0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FYSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQVhJbWFnZS5jcHAKQEAgLTU3LDcgKzU3LDcgQEAgQWNjZXNzaWJpbGl0eVJvbGUgQVhJbWFn
ZTo6cm9sZVZhbHVlKCkgY29uc3QKIAogc3RkOjpvcHRpb25hbDxBWENvcmVPYmplY3Q6OkFjY2Vz
c2liaWxpdHlDaGlsZHJlblZlY3Rvcj4gQVhJbWFnZTo6aW1hZ2VPdmVybGF5RWxlbWVudHMoKQog
ewotICAgIEFYVFJBQ0UoIkFYSW1hZ2U6OmltYWdlT3ZlcmxheUVsZW1lbnRzIik7CisgICAgQVhU
UkFDRSgiQVhJbWFnZTo6aW1hZ2VPdmVybGF5RWxlbWVudHMiX3MpOwogCiAgICAgYXV0byYgY2hp
bGRyZW4gPSB0aGlzLT5jaGlsZHJlbigpOwogICAgIGlmIChjaGlsZHJlbi5zaXplKCkpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYTG9nZ2VyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhMb2dnZXIuY3BwCmluZGV4IDBiNmNjZDNiN2U5Mjhj
ZTg3ODBiZGM3ZjIxYjA4ZTczZTY0MjllMzMuLjk0MTQ2MTgyYTVhYmRkYjJjOTBlNjE2MWIwZmRm
YTBmNmMzZWU1NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhM
b2dnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhMb2dnZXIuY3Bw
CkBAIC01NSw3ICs1NSw3IEBAIHN0YXRpYyBib29sIHNob3VsZExvZygpCiBBWExvZ2dlcjo6QVhM
b2dnZXIoY29uc3QgU3RyaW5nJiBtZXRob2ROYW1lKQogICAgIDogbV9tZXRob2ROYW1lKG1ldGhv
ZE5hbWUpCiB7Ci0gICAgaWYgKGF1dG8qIGNoYW5uZWwgPSBnZXRMb2dDaGFubmVsKCJBY2Nlc3Np
YmlsaXR5IikpCisgICAgaWYgKGF1dG8qIGNoYW5uZWwgPSBnZXRMb2dDaGFubmVsKCJBY2Nlc3Np
YmlsaXR5Il9zKSkKICAgICAgICAgY2hhbm5lbC0+bGV2ZWwgPSBXVEZMb2dMZXZlbDo6RGVidWc7
CiAKICAgICBpZiAoc2hvdWxkTG9nKCkpIHsKQEAgLTc4LDYgKzc4LDEyIEBAIHZvaWQgQVhMb2dn
ZXI6OmxvZyhjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiAgICAgICAgIExPRyhBY2Nlc3NpYmlsaXR5
LCAiJXMiLCBtZXNzYWdlLnV0ZjgoKS5kYXRhKCkpOwogfQogCit2b2lkIEFYTG9nZ2VyOjpsb2co
Y29uc3QgY2hhciogbWVzc2FnZSkKK3sKKyAgICBpZiAoc2hvdWxkTG9nKCkpCisgICAgICAgIExP
RyhBY2Nlc3NpYmlsaXR5LCAiJXMiLCBtZXNzYWdlKTsKK30KKwogdm9pZCBBWExvZ2dlcjo6bG9n
KFJlZlB0cjxBWENvcmVPYmplY3Q+IG9iamVjdCkKIHsKICAgICBpZiAoc2hvdWxkTG9nKCkpIHsK
QEAgLTMyOCwxNSArMzM0LDE1IEBAIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYg
c3RyZWFtLCBBY2Nlc3NpYmlsaXR5U2VhcmNoS2V5IHNlYXJjaEtleSkKIFRleHRTdHJlYW0mIG9w
ZXJhdG9yPDwoVGV4dFN0cmVhbSYgc3RyZWFtLCBjb25zdCBBY2Nlc3NpYmlsaXR5U2VhcmNoQ3Jp
dGVyaWEmIGNyaXRlcmlhKQogewogICAgIFRleHRTdHJlYW06Okdyb3VwU2NvcGUgZ3JvdXBTY29w
ZShzdHJlYW0pOwotICAgIGF1dG8gc3RyZWFtQ3JpdGVyaWFPYmplY3QgPSBbJnN0cmVhbV0gKFN0
cmluZyBvYmplY3RMYWJlbCwgYXV0byogYXhPYmplY3QpIHsKKyAgICBhdXRvIHN0cmVhbUNyaXRl
cmlhT2JqZWN0ID0gWyZzdHJlYW1dIChBU0NJSUxpdGVyYWwgb2JqZWN0TGFiZWwsIGF1dG8qIGF4
T2JqZWN0KSB7CiAgICAgICAgIHN0cmVhbS5zdGFydEdyb3VwKCk7Ci0gICAgICAgIHN0cmVhbSA8
PCBvYmplY3RMYWJlbCA8PCAiICIgPDwgYXhPYmplY3QgPDwgIiwgSUQgIiA8PCAoYXhPYmplY3Qg
PyBheE9iamVjdC0+b2JqZWN0SUQoKSA6IEFYSUQoKSk7CisgICAgICAgIHN0cmVhbSA8PCBvYmpl
Y3RMYWJlbC5jaGFyYWN0ZXJzKCkgPDwgIiAiIDw8IGF4T2JqZWN0IDw8ICIsIElEICIgPDwgKGF4
T2JqZWN0ID8gYXhPYmplY3QtPm9iamVjdElEKCkgOiBBWElEKCkpOwogICAgICAgICBzdHJlYW0u
ZW5kR3JvdXAoKTsKICAgICB9OwogCiAgICAgc3RyZWFtIDw8ICJTZWFyY2hDcml0ZXJpYSAiIDw8
ICZjcml0ZXJpYTsKLSAgICBzdHJlYW1Dcml0ZXJpYU9iamVjdCgiYW5jaG9yT2JqZWN0IiwgY3Jp
dGVyaWEuYW5jaG9yT2JqZWN0KTsKLSAgICBzdHJlYW1Dcml0ZXJpYU9iamVjdCgic3RhcnRPYmpl
Y3QiLCBjcml0ZXJpYS5zdGFydE9iamVjdCk7CisgICAgc3RyZWFtQ3JpdGVyaWFPYmplY3QoImFu
Y2hvck9iamVjdCJfcywgY3JpdGVyaWEuYW5jaG9yT2JqZWN0KTsKKyAgICBzdHJlYW1Dcml0ZXJp
YU9iamVjdCgic3RhcnRPYmplY3QiX3MsIGNyaXRlcmlhLnN0YXJ0T2JqZWN0KTsKICAgICBzdHJl
YW0uZHVtcFByb3BlcnR5KCJzZWFyY2hEaXJlY3Rpb24iLCBjcml0ZXJpYS5zZWFyY2hEaXJlY3Rp
b24pOwogCiAgICAgc3RyZWFtLm5leHRMaW5lKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FYTG9nZ2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FYTG9nZ2VyLmgKaW5kZXggZWE4OTJmMmY5NjZjNTRkYzBjZWNlMWRhNzkyODRlNzk4MWEwYzk1
Ni4uZDFmYmFmYjE3Y2JiZWMzMjRhZTIwYjlmMTZjYzAyZjcwY2EwNWYwOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWExvZ2dlci5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQVhMb2dnZXIuaApAQCAtNDMsNiArNDMsNyBAQCBwdWJsaWM6CiAg
ICAgQVhMb2dnZXIoY29uc3QgU3RyaW5nJiBtZXRob2ROYW1lKTsKICAgICB+QVhMb2dnZXIoKTsK
ICAgICBzdGF0aWMgdm9pZCBsb2coY29uc3QgU3RyaW5nJik7CisgICAgc3RhdGljIHZvaWQgbG9n
KGNvbnN0IGNoYXIqKTsKICAgICBzdGF0aWMgdm9pZCBsb2coUmVmUHRyPEFYQ29yZU9iamVjdD4p
OwogICAgIHN0YXRpYyB2b2lkIGxvZyhjb25zdCBWZWN0b3I8UmVmUHRyPEFYQ29yZU9iamVjdD4+
Jik7CiAgICAgc3RhdGljIHZvaWQgbG9nKGNvbnN0IHN0ZDo6cGFpcjxSZWZQdHI8QVhDb3JlT2Jq
ZWN0PiwgQVhPYmplY3RDYWNoZTo6QVhOb3RpZmljYXRpb24+Jik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAppbmRleCA3NzIyYzZkMGQyOTc5OTll
MmM1OTk2ZmMyYWQwOGViOTIwYjAyYzhhLi41M2NjMDdmNDAwMWZhYjcyODI0YjJkMTlkMWVmZjA2
NjI5N2E5YWY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2Jq
ZWN0Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RD
YWNoZS5jcHAKQEAgLTI1Miw3ICsyNTIsNyBAQCBBWE9iamVjdENhY2hlOjp+QVhPYmplY3RDYWNo
ZSgpCiAKIGJvb2wgQVhPYmplY3RDYWNoZTo6aXNNb2RhbEVsZW1lbnQoRWxlbWVudCYgZWxlbWVu
dCkgY29uc3QKIHsKLSAgICBib29sIGhhc0RpYWxvZ1JvbGUgPSBub2RlSGFzUm9sZSgmZWxlbWVu
dCwgImRpYWxvZyIpIHx8IG5vZGVIYXNSb2xlKCZlbGVtZW50LCAiYWxlcnRkaWFsb2ciKTsKKyAg
ICBib29sIGhhc0RpYWxvZ1JvbGUgPSBub2RlSGFzUm9sZSgmZWxlbWVudCwgImRpYWxvZyJfcykg
fHwgbm9kZUhhc1JvbGUoJmVsZW1lbnQsICJhbGVydGRpYWxvZyJfcyk7CiAgICAgYm9vbCBpc0Fy
aWFNb2RhbCA9IGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGVsZW1lbnQuYXR0cmlidXRl
V2l0aG91dFN5bmNocm9uaXphdGlvbihhcmlhX21vZGFsQXR0ciksICJ0cnVlIik7CiAKICAgICBy
ZXR1cm4gKGhhc0RpYWxvZ1JvbGUgJiYgaXNBcmlhTW9kYWwpIHx8IChpczxIVE1MRGlhbG9nRWxl
bWVudD4oZWxlbWVudCkgJiYgZG93bmNhc3Q8SFRNTERpYWxvZ0VsZW1lbnQ+KGVsZW1lbnQpLmlz
TW9kYWwoKSk7CkBAIC01NjAsMjIgKzU2MCwyMiBAQCBzdGF0aWMgUmVmPEFjY2Vzc2liaWxpdHlP
YmplY3Q+IGNyZWF0ZUZyb21SZW5kZXJlcihSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQogCiAgICAg
Ly8gSWYgdGhlIG5vZGUgaXMgYXJpYSByb2xlPSJsaXN0IiBvciB0aGUgYXJpYSByb2xlIGlzIGVt
cHR5IGFuZCBpdHMgYQogICAgIC8vIHVsL29sL2RsIHR5cGUgKGl0IHNob3VsZG4ndCBiZSBhIGxp
c3QgaWYgYXJpYSBzYXlzIG90aGVyd2lzZSkuCi0gICAgaWYgKG5vZGUgJiYgKChub2RlSGFzUm9s
ZShub2RlLCAibGlzdCIpIHx8IG5vZGVIYXNSb2xlKG5vZGUsICJkaXJlY3RvcnkiKSkKKyAgICBp
ZiAobm9kZSAmJiAoKG5vZGVIYXNSb2xlKG5vZGUsICJsaXN0Il9zKSB8fCBub2RlSGFzUm9sZShu
b2RlLCAiZGlyZWN0b3J5Il9zKSkKICAgICAgICAgICAgICAgICAgICAgICB8fCAobm9kZUhhc1Jv
bGUobm9kZSwgbnVsbEF0b20oKSkgJiYgKG5vZGUtPmhhc1RhZ05hbWUodWxUYWcpIHx8IG5vZGUt
Pmhhc1RhZ05hbWUob2xUYWcpIHx8IG5vZGUtPmhhc1RhZ05hbWUoZGxUYWcpKSkpKQogICAgICAg
ICByZXR1cm4gQWNjZXNzaWJpbGl0eUxpc3Q6OmNyZWF0ZShyZW5kZXJlcik7CiAKICAgICAvLyBh
cmlhIHRhYmxlcwotICAgIGlmIChub2RlSGFzUm9sZShub2RlLCAiZ3JpZCIpIHx8IG5vZGVIYXNS
b2xlKG5vZGUsICJ0cmVlZ3JpZCIpIHx8IG5vZGVIYXNSb2xlKG5vZGUsICJ0YWJsZSIpKQorICAg
IGlmIChub2RlSGFzUm9sZShub2RlLCAiZ3JpZCJfcykgfHwgbm9kZUhhc1JvbGUobm9kZSwgInRy
ZWVncmlkIl9zKSB8fCBub2RlSGFzUm9sZShub2RlLCAidGFibGUiX3MpKQogICAgICAgICByZXR1
cm4gQWNjZXNzaWJpbGl0eUFSSUFHcmlkOjpjcmVhdGUocmVuZGVyZXIpOwotICAgIGlmIChub2Rl
SGFzUm9sZShub2RlLCAicm93IikpCisgICAgaWYgKG5vZGVIYXNSb2xlKG5vZGUsICJyb3ciX3Mp
KQogICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eUFSSUFHcmlkUm93OjpjcmVhdGUocmVuZGVy
ZXIpOwotICAgIGlmIChub2RlSGFzUm9sZShub2RlLCAiZ3JpZGNlbGwiKSB8fCBub2RlSGFzUm9s
ZShub2RlLCAiY2VsbCIpIHx8IG5vZGVIYXNSb2xlKG5vZGUsICJjb2x1bW5oZWFkZXIiKSB8fCBu
b2RlSGFzUm9sZShub2RlLCAicm93aGVhZGVyIikpCisgICAgaWYgKG5vZGVIYXNSb2xlKG5vZGUs
ICJncmlkY2VsbCJfcykgfHwgbm9kZUhhc1JvbGUobm9kZSwgImNlbGwiX3MpIHx8IG5vZGVIYXNS
b2xlKG5vZGUsICJjb2x1bW5oZWFkZXIiX3MpIHx8IG5vZGVIYXNSb2xlKG5vZGUsICJyb3doZWFk
ZXIiX3MpKQogICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbDo6Y3JlYXRl
KHJlbmRlcmVyKTsKIAogICAgIC8vIGFyaWEgdHJlZQotICAgIGlmIChub2RlSGFzUm9sZShub2Rl
LCAidHJlZSIpKQorICAgIGlmIChub2RlSGFzUm9sZShub2RlLCAidHJlZSJfcykpCiAgICAgICAg
IHJldHVybiBBY2Nlc3NpYmlsaXR5VHJlZTo6Y3JlYXRlKHJlbmRlcmVyKTsKLSAgICBpZiAobm9k
ZUhhc1JvbGUobm9kZSwgInRyZWVpdGVtIikpCisgICAgaWYgKG5vZGVIYXNSb2xlKG5vZGUsICJ0
cmVlaXRlbSJfcykpCiAgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5VHJlZUl0ZW06OmNyZWF0
ZShyZW5kZXJlcik7CiAKICAgICBpZiAobm9kZSAmJiBpczxIVE1MTGFiZWxFbGVtZW50Pihub2Rl
KSAmJiBub2RlSGFzUm9sZShub2RlLCBudWxsQXRvbSgpKSkKQEAgLTg2NSw3ICs4NjUsNyBAQCBB
Y2Nlc3NpYmlsaXR5T2JqZWN0KiBBWE9iamVjdENhY2hlOjpjcmVhdGUoQWNjZXNzaWJpbGl0eVJv
bGUgcm9sZSkKIAogdm9pZCBBWE9iamVjdENhY2hlOjpyZW1vdmUoQVhJRCBheElEKQogewotICAg
IEFYVFJBQ0UoIkFYT2JqZWN0Q2FjaGU6OnJlbW92ZSIpOworICAgIEFYVFJBQ0UoIkFYT2JqZWN0
Q2FjaGU6OnJlbW92ZSJfcyk7CiAgICAgQVhMT0cobWFrZVN0cmluZygiQVhJRCAiLCBheElELmxv
Z2dpbmdTdHJpbmcoKSkpOwogCiAgICAgaWYgKCFheElEKQpAQCAtOTc3LDcgKzk3Nyw3IEBAIHZv
aWQgQVhPYmplY3RDYWNoZTo6dGV4dENoYW5nZWQoTm9kZSogbm9kZSkKIAogdm9pZCBBWE9iamVj
dENhY2hlOjp0ZXh0Q2hhbmdlZChBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3QpCiB7Ci0gICAg
QVhUUkFDRSgiQVhPYmplY3RDYWNoZTo6dGV4dENoYW5nZWQiKTsKKyAgICBBWFRSQUNFKCJBWE9i
amVjdENhY2hlOjp0ZXh0Q2hhbmdlZCJfcyk7CiAgICAgQVhMT0cob2JqZWN0KTsKIAogICAgIGlm
ICghb2JqZWN0KQpAQCAtMTA4Miw3ICsxMDgyLDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpoYW5k
bGVDaGlsZHJlbkNoYW5nZWQoQWNjZXNzaWJpbGl0eU9iamVjdCYgb2JqZWN0KQogCiB2b2lkIEFY
T2JqZWN0Q2FjaGU6OmhhbmRsZU1lbnVPcGVuZWQoTm9kZSogbm9kZSkKIHsKLSAgICBpZiAoIW5v
ZGUgfHwgIW5vZGUtPnJlbmRlcmVyKCkgfHwgIW5vZGVIYXNSb2xlKG5vZGUsICJtZW51IikpCisg
ICAgaWYgKCFub2RlIHx8ICFub2RlLT5yZW5kZXJlcigpIHx8ICFub2RlSGFzUm9sZShub2RlLCAi
bWVudSJfcykpCiAgICAgICAgIHJldHVybjsKICAgICAKICAgICBwb3N0Tm90aWZpY2F0aW9uKGdl
dE9yQ3JlYXRlKG5vZGUpLCAmZG9jdW1lbnQoKSwgQVhNZW51T3BlbmVkKTsKQEAgLTExMzQsNyAr
MTEzNCw3IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6Y2hpbGRyZW5DaGFuZ2VkKEFjY2Vzc2liaWxp
dHlPYmplY3QqIG9iamVjdCkKIAogdm9pZCBBWE9iamVjdENhY2hlOjpub3RpZmljYXRpb25Qb3N0
VGltZXJGaXJlZCgpCiB7Ci0gICAgQVhUUkFDRSgiQVhPYmplY3RDYWNoZTo6bm90aWZpY2F0aW9u
UG9zdFRpbWVyRmlyZWQiKTsKKyAgICBBWFRSQUNFKCJBWE9iamVjdENhY2hlOjpub3RpZmljYXRp
b25Qb3N0VGltZXJGaXJlZCJfcyk7CiAgICAgLy8gRHVyaW5nIExheW91dFRlc3RzLCBhY2Nlc3Np
YmlsaXR5IG1heSBiZSBkaXNhYmxlZCBiZXR3ZWVuIHRoZSB0aW1lIHRoZSBub3RpZmljYXRpb25z
IGFyZSBxdWV1ZWQgYW5kIHRoZSB0aW1lciBmaXJlcy4KICAgICAvLyBUaHVzIGNoZWNrIGhlcmUg
YW5kIHJldHVybiBpZiBhY2Nlc3NpYmlsaXR5IGlzIGRpc2FibGVkLgogICAgIGlmICghYWNjZXNz
aWJpbGl0eUVuYWJsZWQoKSkKQEAgLTExOTUsNyArMTE5NSw3IEBAIHZvaWQgQVhPYmplY3RDYWNo
ZTo6cGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCgpCiAgICAgYXV0byBub3RpZmlj
YXRpb25zID0gc3RkOjpleGNoYW5nZShtX3Bhc3N3b3JkTm90aWZpY2F0aW9uc1RvUG9zdCwgeyB9
KTsKIAogICAgIGZvciAoYXV0byYgbm90aWZpY2F0aW9uIDogbm90aWZpY2F0aW9ucykKLSAgICAg
ICAgcG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbi5n
ZXQoKSwgQVhUZXh0RWRpdFR5cGVJbnNlcnQsICIgIiwgVmlzaWJsZVBvc2l0aW9uKCkpOworICAg
ICAgICBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24obm90aWZpY2F0aW9u
LmdldCgpLCBBWFRleHRFZGl0VHlwZUluc2VydCwgIiAiX3MsIFZpc2libGVQb3NpdGlvbigpKTsK
ICNlbmRpZgogfQogCkBAIC0xMjQzLDcgKzEyNDMsNyBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBv
c3ROb3RpZmljYXRpb24oTm9kZSogbm9kZSwgQVhOb3RpZmljYXRpb24gbm90aWZpY2F0aW9uLCBQ
bwogCiB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oQVhDb3JlT2JqZWN0KiBv
YmplY3QsIERvY3VtZW50KiBkb2N1bWVudCwgQVhOb3RpZmljYXRpb24gbm90aWZpY2F0aW9uLCBQ
b3N0VGFyZ2V0IHBvc3RUYXJnZXQpCiB7Ci0gICAgQVhUUkFDRSgiQVhPYmplY3RDYWNoZTo6cG9z
dE5vdGlmaWNhdGlvbiIpOworICAgIEFYVFJBQ0UoIkFYT2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmlj
YXRpb24iX3MpOwogICAgIEFYTE9HKHN0ZDo6bWFrZV9wYWlyKG9iamVjdCwgbm90aWZpY2F0aW9u
KSk7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIApAQCAtMTI3Myw3ICsxMjczLDcgQEAg
dm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVNZW51SXRlbVNlbGVjdGVkKE5vZGUqIG5vZGUpCiAg
ICAgaWYgKCFub2RlKQogICAgICAgICByZXR1cm47CiAgICAgCi0gICAgaWYgKCFub2RlSGFzUm9s
ZShub2RlLCAibWVudWl0ZW0iKSAmJiAhbm9kZUhhc1JvbGUobm9kZSwgIm1lbnVpdGVtcmFkaW8i
KSAmJiAhbm9kZUhhc1JvbGUobm9kZSwgIm1lbnVpdGVtY2hlY2tib3giKSkKKyAgICBpZiAoIW5v
ZGVIYXNSb2xlKG5vZGUsICJtZW51aXRlbSJfcykgJiYgIW5vZGVIYXNSb2xlKG5vZGUsICJtZW51
aXRlbXJhZGlvIl9zKSAmJiAhbm9kZUhhc1JvbGUobm9kZSwgIm1lbnVpdGVtY2hlY2tib3giX3Mp
KQogICAgICAgICByZXR1cm47CiAgICAgCiAgICAgaWYgKCFkb3duY2FzdDxFbGVtZW50Pigqbm9k
ZSkuZm9jdXNlZCgpICYmICFlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShkb3duY2FzdDxF
bGVtZW50Pigqbm9kZSkuYXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihhcmlhX3NlbGVj
dGVkQXR0ciksICJ0cnVlIikpCkBAIC0xMzQ3LDggKzEzNDcsOCBAQCB2b2lkIEFYT2JqZWN0Q2Fj
aGU6OnNlbGVjdGVkU3RhdGVDaGFuZ2VkKE5vZGUqIG5vZGUpCiB7CiAgICAgLy8gRm9yIGEgdGFi
bGUgY2VsbCwgcG9zdCBBWFNlbGVjdGVkU3RhdGVDaGFuZ2VkIG9uIHRoZSBjZWxsIGl0c2VsZi4K
ICAgICAvLyBGb3IgYW55IG90aGVyIGVsZW1lbnQsIHBvc3QgQVhTZWxlY3RlZENoaWxkcmVuQ2hh
bmdlZCBvbiB0aGUgcGFyZW50LgotICAgIGlmIChub2RlSGFzUm9sZShub2RlLCAiZ3JpZGNlbGwi
KSB8fCBub2RlSGFzUm9sZShub2RlLCAiY2VsbCIpCi0gICAgICAgIHx8IG5vZGVIYXNSb2xlKG5v
ZGUsICJjb2x1bW5oZWFkZXIiKSB8fCBub2RlSGFzUm9sZShub2RlLCAicm93aGVhZGVyIikpCisg
ICAgaWYgKG5vZGVIYXNSb2xlKG5vZGUsICJncmlkY2VsbCJfcykgfHwgbm9kZUhhc1JvbGUobm9k
ZSwgImNlbGwiX3MpCisgICAgICAgIHx8IG5vZGVIYXNSb2xlKG5vZGUsICJjb2x1bW5oZWFkZXIi
X3MpIHx8IG5vZGVIYXNSb2xlKG5vZGUsICJyb3doZWFkZXIiX3MpKQogICAgICAgICBwb3N0Tm90
aWZpY2F0aW9uKG5vZGUsIEFYU2VsZWN0ZWRTdGF0ZUNoYW5nZWQpOwogICAgIGVsc2UKICAgICAg
ICAgc2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQobm9kZSk7CkBAIC0xNTQyLDcgKzE1NDIsNyBAQCB2
b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oY29uc3Qg
UG9zaXRpb24mIHBvc2l0aW9uLCBjbwogCiB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3Rh
dGVDaGFuZ2VOb3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0LCBjb25zdCBB
WFRleHRTdGF0ZUNoYW5nZUludGVudCYgaW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBz
ZWxlY3Rpb24pCiB7Ci0gICAgQVhUUkFDRSgiQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNo
YW5nZU5vdGlmaWNhdGlvbiIpOworICAgIEFYVFJBQ0UoIkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0
U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24iX3MpOwogICAgIHN0b3BDYWNoaW5nQ29tcHV0ZWRPYmpl
Y3RBdHRyaWJ1dGVzKCk7CiAKICNpZiBQTEFURk9STShDT0NPQSkgfHwgVVNFKEFUU1BJKQpAQCAt
MTU3NCw3ICsxNTc0LDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdl
Tm90aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCwKIAogdm9pZCBBWE9iamVj
dENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqIG5vZGUsIEFYVGV4
dEVkaXRUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9u
JiBwb3NpdGlvbikKIHsKLSAgICBBWFRSQUNFKCJBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRl
Q2hhbmdlTm90aWZpY2F0aW9uIik7CisgICAgQVhUUkFDRSgiQVhPYmplY3RDYWNoZTo6cG9zdFRl
eHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbiJfcyk7CiAgICAgaWYgKCFub2RlIHx8IHR5cGUgPT0g
QVhUZXh0RWRpdFR5cGVVbmtub3duKQogICAgICAgICByZXR1cm47CiAKQEAgLTE5MTIsNyArMTkx
Miw3IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlQXR0cmlidXRlQ2hhbmdlKGNvbnN0IFF1
YWxpZmllZE5hbWUmIGF0dHJOYW1lLCBFbGVtZW50CiAKIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFu
ZGxlTW9kYWxDaGFuZ2UoRWxlbWVudCYgZWxlbWVudCkKIHsKLSAgICBpZiAoIWlzPEhUTUxEaWFs
b2dFbGVtZW50PihlbGVtZW50KSAmJiAhbm9kZUhhc1JvbGUoJmVsZW1lbnQsICJkaWFsb2ciKSAm
JiAhbm9kZUhhc1JvbGUoJmVsZW1lbnQsICJhbGVydGRpYWxvZyIpKQorICAgIGlmICghaXM8SFRN
TERpYWxvZ0VsZW1lbnQ+KGVsZW1lbnQpICYmICFub2RlSGFzUm9sZSgmZWxlbWVudCwgImRpYWxv
ZyJfcykgJiYgIW5vZGVIYXNSb2xlKCZlbGVtZW50LCAiYWxlcnRkaWFsb2ciX3MpKQogICAgICAg
ICByZXR1cm47CiAKICAgICBzdG9wQ2FjaGluZ0NvbXB1dGVkT2JqZWN0QXR0cmlidXRlcygpOwpA
QCAtMzI3Nyw3ICszMjc3LDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwcm9jZXNzRGVmZXJyZWRD
aGlsZHJlbkNoYW5nZWRMaXN0KCkKIAogdm9pZCBBWE9iamVjdENhY2hlOjpwZXJmb3JtRGVmZXJy
ZWRDYWNoZVVwZGF0ZSgpCiB7Ci0gICAgQVhUUkFDRSgiQVhPYmplY3RDYWNoZTo6cGVyZm9ybURl
ZmVycmVkQ2FjaGVVcGRhdGUiKTsKKyAgICBBWFRSQUNFKCJBWE9iamVjdENhY2hlOjpwZXJmb3Jt
RGVmZXJyZWRDYWNoZVVwZGF0ZSJfcyk7CiAgICAgaWYgKG1fcGVyZm9ybWluZ0RlZmVycmVkQ2Fj
aGVVcGRhdGUpCiAgICAgICAgIHJldHVybjsKICAgICBTZXRGb3JTY29wZSBwZXJmb3JtaW5nRGVm
ZXJyZWRDYWNoZVVwZGF0ZShtX3BlcmZvcm1pbmdEZWZlcnJlZENhY2hlVXBkYXRlLCB0cnVlKTsK
QEAgLTMzNzMsNyArMzM3Myw3IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6dXBkYXRlSXNvbGF0ZWRU
cmVlKEFYQ29yZU9iamVjdCYgb2JqZWN0LCBBWE5vdGlmaWNhdGlvbiBub3RpCiAKIHZvaWQgQVhP
YmplY3RDYWNoZTo6dXBkYXRlSXNvbGF0ZWRUcmVlKGNvbnN0IFZlY3RvcjxzdGQ6OnBhaXI8UmVm
UHRyPEFYQ29yZU9iamVjdD4sIEFYTm90aWZpY2F0aW9uPj4mIG5vdGlmaWNhdGlvbnMpCiB7Ci0g
ICAgQVhUUkFDRSgiQVhPYmplY3RDYWNoZTo6dXBkYXRlSXNvbGF0ZWRUcmVlIik7CisgICAgQVhU
UkFDRSgiQVhPYmplY3RDYWNoZTo6dXBkYXRlSXNvbGF0ZWRUcmVlIl9zKTsKICAgICBBWExPRygq
dGhpcyk7CiAKICAgICBpZiAoIW1fcGFnZUlEKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCmluZGV4IDE0Mjkx
MzcyY2ZjNDZjMWRlMjJlODM4Y2QyMjU5ZjcwOTNmZGE0MDguLmIyZDhjNDk3MGYyYWQ2ZTM0MGVk
YTVkNzNmOTQxYTEyODY1NmYyM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCkBAIC0yMzcsNyArMjM3LDcg
QEAgRG9jdW1lbnQqIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojpkb2N1bWVudCgpIGNvbnN0CiAK
IEFjY2Vzc2liaWxpdHlSb2xlIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpkZXRlcm1pbmVBY2Nl
c3NpYmlsaXR5Um9sZSgpCiB7Ci0gICAgQVhUUkFDRSgiQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6
OmRldGVybWluZUFjY2Vzc2liaWxpdHlSb2xlIik7CisgICAgQVhUUkFDRSgiQWNjZXNzaWJpbGl0
eU5vZGVPYmplY3Q6OmRldGVybWluZUFjY2Vzc2liaWxpdHlSb2xlIl9zKTsKICAgICBpZiAoKG1f
YXJpYVJvbGUgPSBkZXRlcm1pbmVBcmlhUm9sZUF0dHJpYnV0ZSgpKSAhPSBBY2Nlc3NpYmlsaXR5
Um9sZTo6VW5rbm93bikKICAgICAgICAgcmV0dXJuIG1fYXJpYVJvbGU7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCmluZGV4
IDM0ZjE1ZjI1NjQ1NjNmOWM5MjMzNTgyMWJlYWVkZmIwOTk0YjhiYWUuLmJmYmU0MmYzZDhjMmRj
MzdlOWU3NWZkNjM2MzY0MWYzYzk3OTFlODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcApAQCAtMTcyOSw3ICsxNzI5LDcg
QEAgYm9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzdXBwb3J0c1JlYWRPbmx5KCkgY29uc3QKIFN0
cmluZyBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpyZWFkT25seVZhbHVlKCkgY29uc3QKIHsKICAgICBp
ZiAoIWhhc0F0dHJpYnV0ZShhcmlhX3JlYWRvbmx5QXR0cikpCi0gICAgICAgIHJldHVybiBhcmlh
Um9sZUF0dHJpYnV0ZSgpICE9IEFjY2Vzc2liaWxpdHlSb2xlOjpVbmtub3duICYmIHN1cHBvcnRz
UmVhZE9ubHkoKSA/ICJmYWxzZSIgOiBTdHJpbmcoKTsKKyAgICAgICAgcmV0dXJuIGFyaWFSb2xl
QXR0cmlidXRlKCkgIT0gQWNjZXNzaWJpbGl0eVJvbGU6OlVua25vd24gJiYgc3VwcG9ydHNSZWFk
T25seSgpID8gImZhbHNlIl9zIDogU3RyaW5nKCk7CiAKICAgICByZXR1cm4gZ2V0QXR0cmlidXRl
KGFyaWFfcmVhZG9ubHlBdHRyKS5zdHJpbmcoKS5jb252ZXJ0VG9BU0NJSUxvd2VyY2FzZSgpOwog
fQpAQCAtMTc1Nyw3ICsxNzU3LDcgQEAgU3RyaW5nIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmF1dG9D
b21wbGV0ZVZhbHVlKCkgY29uc3QKICAgICAgICAgfHwgZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJ
SUNhc2UoYXV0b0NvbXBsZXRlLCAiYm90aCIpKQogICAgICAgICByZXR1cm4gYXV0b0NvbXBsZXRl
OwogCi0gICAgcmV0dXJuICJub25lIjsKKyAgICByZXR1cm4gIm5vbmUiX3M7CiB9CiAKIGJvb2wg
QWNjZXNzaWJpbGl0eU9iamVjdDo6Y29udGVudEVkaXRhYmxlQXR0cmlidXRlSXNFbmFibGVkKEVs
ZW1lbnQqIGVsZW1lbnQpCkBAIC0yMjMzLDIwICsyMjMzLDIwIEBAIFN0cmluZyBBY2Nlc3NpYmls
aXR5T2JqZWN0OjpjdXJyZW50VmFsdWUoKSBjb25zdAogewogICAgIHN3aXRjaCAoY3VycmVudFN0
YXRlKCkpIHsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlDdXJyZW50U3RhdGU6OkZhbHNlOgotICAg
ICAgICByZXR1cm4gImZhbHNlIjsKKyAgICAgICAgcmV0dXJuICJmYWxzZSJfczsKICAgICBjYXNl
IEFjY2Vzc2liaWxpdHlDdXJyZW50U3RhdGU6OlBhZ2U6Ci0gICAgICAgIHJldHVybiAicGFnZSI7
CisgICAgICAgIHJldHVybiAicGFnZSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlDdXJyZW50
U3RhdGU6OlN0ZXA6Ci0gICAgICAgIHJldHVybiAic3RlcCI7CisgICAgICAgIHJldHVybiAic3Rl
cCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlDdXJyZW50U3RhdGU6OkxvY2F0aW9uOgotICAg
ICAgICByZXR1cm4gImxvY2F0aW9uIjsKKyAgICAgICAgcmV0dXJuICJsb2NhdGlvbiJfczsKICAg
ICBjYXNlIEFjY2Vzc2liaWxpdHlDdXJyZW50U3RhdGU6OlRpbWU6Ci0gICAgICAgIHJldHVybiAi
dGltZSI7CisgICAgICAgIHJldHVybiAidGltZSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlD
dXJyZW50U3RhdGU6OkRhdGU6Ci0gICAgICAgIHJldHVybiAiZGF0ZSI7CisgICAgICAgIHJldHVy
biAiZGF0ZSJfczsKICAgICBkZWZhdWx0OgogICAgIGNhc2UgQWNjZXNzaWJpbGl0eUN1cnJlbnRT
dGF0ZTo6VHJ1ZToKLSAgICAgICAgcmV0dXJuICJ0cnVlIjsKKyAgICAgICAgcmV0dXJuICJ0cnVl
Il9zOwogICAgIH0KIH0KIApAQCAtMjM1NSwxMSArMjM1NSwxMSBAQCBib29sIEFjY2Vzc2liaWxp
dHlPYmplY3Q6OnJlcGxhY2VUZXh0SW5SYW5nZShjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50U3Ry
aW5nLCBjbwogICAgIH0KICAgICAKICAgICBpZiAoaXM8SFRNTElucHV0RWxlbWVudD4oZWxlbWVu
dCkpIHsKLSAgICAgICAgZG93bmNhc3Q8SFRNTElucHV0RWxlbWVudD4oZWxlbWVudCkuc2V0UmFu
Z2VUZXh0KHJlcGxhY2VtZW50U3RyaW5nLCByYW5nZS5zdGFydCwgcmFuZ2UubGVuZ3RoLCAiIik7
CisgICAgICAgIGRvd25jYXN0PEhUTUxJbnB1dEVsZW1lbnQ+KGVsZW1lbnQpLnNldFJhbmdlVGV4
dChyZXBsYWNlbWVudFN0cmluZywgcmFuZ2Uuc3RhcnQsIHJhbmdlLmxlbmd0aCwgZW1wdHlTdHJp
bmcoKSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICBpZiAoaXM8SFRNTFRleHRB
cmVhRWxlbWVudD4oZWxlbWVudCkpIHsKLSAgICAgICAgZG93bmNhc3Q8SFRNTFRleHRBcmVhRWxl
bWVudD4oZWxlbWVudCkuc2V0UmFuZ2VUZXh0KHJlcGxhY2VtZW50U3RyaW5nLCByYW5nZS5zdGFy
dCwgcmFuZ2UubGVuZ3RoLCAiIik7CisgICAgICAgIGRvd25jYXN0PEhUTUxUZXh0QXJlYUVsZW1l
bnQ+KGVsZW1lbnQpLnNldFJhbmdlVGV4dChyZXBsYWNlbWVudFN0cmluZywgcmFuZ2Uuc3RhcnQs
IHJhbmdlLmxlbmd0aCwgZW1wdHlTdHJpbmcoKSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAg
IH0KIApAQCAtMjU5NCw3ICsyNTk0LDcgQEAgU3RyaW5nIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmNv
bXB1dGVkUm9sZVN0cmluZygpIGNvbnN0CiAKICAgICAvLyBXZSBkbyBub3QgY29tcHV0ZSBhIHJv
bGUgc3RyaW5nIGZvciBnZW5lcmljIGJsb2NrIGVsZW1lbnRzIHdpdGggdXNlci1hZ2VudCBhc3Np
Z25lZCByb2xlcy4KICAgICBpZiAocm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6R3JvdXAgfHwg
cm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6VGV4dEdyb3VwKQotICAgICAgICByZXR1cm4gIiI7
CisgICAgICAgIHJldHVybiBlbXB0eVN0cmluZygpOwogCiAgICAgLy8gV2UgZG8gY29tcHV0ZSBh
IHJvbGUgc3RyaW5nIGZvciBibG9jayBlbGVtZW50cyB3aXRoIGF1dGhvci1wcm92aWRlZCByb2xl
cy4KICAgICBpZiAocm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb25UZXh0R3Jv
dXAKQEAgLTI3MjUsNyArMjcyNSw3IEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojpyb2xl
RGVzY3JpcHRpb24oKSBjb25zdAogCiBib29sIG5vZGVIYXNQcmVzZW50YXRpb25Sb2xlKE5vZGUq
IG5vZGUpCiB7Ci0gICAgcmV0dXJuIG5vZGVIYXNSb2xlKG5vZGUsICJwcmVzZW50YXRpb24iKSB8
fCBub2RlSGFzUm9sZShub2RlLCAibm9uZSIpOworICAgIHJldHVybiBub2RlSGFzUm9sZShub2Rl
LCAicHJlc2VudGF0aW9uIl9zKSB8fCBub2RlSGFzUm9sZShub2RlLCAibm9uZSJfcyk7CiB9CiAg
ICAgCiBib29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnN1cHBvcnRzUHJlc3NBY3Rpb24oKSBjb25z
dApAQCAtMzIxMCwxMCArMzIxMCwxMCBAQCBIYXNoTWFwPFN0cmluZywgQVhFZGl0aW5nU3R5bGVW
YWx1ZVZhcmlhbnQ+IEFjY2Vzc2liaWxpdHlPYmplY3Q6OnJlc29sdmVkRWRpdGluZwogICAgICAg
ICByZXR1cm4geyB9OwogCiAgICAgSGFzaE1hcDxTdHJpbmcsIEFYRWRpdGluZ1N0eWxlVmFsdWVW
YXJpYW50PiBzdHlsZXM7Ci0gICAgc3R5bGVzLmFkZCgiYm9sZCIsIHNlbGVjdGlvblN0eWxlLT5o
YXNTdHlsZShDU1NQcm9wZXJ0eUZvbnRXZWlnaHQsICJib2xkIikpOwotICAgIHN0eWxlcy5hZGQo
Iml0YWxpYyIsIHNlbGVjdGlvblN0eWxlLT5oYXNTdHlsZShDU1NQcm9wZXJ0eUZvbnRTdHlsZSwg
Iml0YWxpYyIpKTsKLSAgICBzdHlsZXMuYWRkKCJ1bmRlcmxpbmUiLCBzZWxlY3Rpb25TdHlsZS0+
aGFzU3R5bGUoQ1NTUHJvcGVydHlXZWJraXRUZXh0RGVjb3JhdGlvbnNJbkVmZmVjdCwgInVuZGVy
bGluZSIpKTsKLSAgICBzdHlsZXMuYWRkKCJmb250c2l6ZSIsIHNlbGVjdGlvblN0eWxlLT5sZWdh
Y3lGb250U2l6ZSgqZG9jdW1lbnQpKTsKKyAgICBzdHlsZXMuYWRkKCJib2xkIl9zLCBzZWxlY3Rp
b25TdHlsZS0+aGFzU3R5bGUoQ1NTUHJvcGVydHlGb250V2VpZ2h0LCAiYm9sZCJfcykpOworICAg
IHN0eWxlcy5hZGQoIml0YWxpYyJfcywgc2VsZWN0aW9uU3R5bGUtPmhhc1N0eWxlKENTU1Byb3Bl
cnR5Rm9udFN0eWxlLCAiaXRhbGljIl9zKSk7CisgICAgc3R5bGVzLmFkZCgidW5kZXJsaW5lIl9z
LCBzZWxlY3Rpb25TdHlsZS0+aGFzU3R5bGUoQ1NTUHJvcGVydHlXZWJraXRUZXh0RGVjb3JhdGlv
bnNJbkVmZmVjdCwgInVuZGVybGluZSJfcykpOworICAgIHN0eWxlcy5hZGQoImZvbnRzaXplIl9z
LCBzZWxlY3Rpb25TdHlsZS0+bGVnYWN5Rm9udFNpemUoKmRvY3VtZW50KSk7CiAgICAgcmV0dXJu
IHN0eWxlczsKIH0KIApAQCAtNDA4OCw3ICs0MDg4LDcgQEAgc3RhdGljIGJvb2wgaXNSYWRpb0J1
dHRvbkluRGlmZmVyZW50QWRob2NHcm91cChSZWZQdHI8QVhDb3JlT2JqZWN0PiBheE9iamVjdCwg
QVgKICAgICBpZiAoIXJlZmVyZW5jZU9iamVjdCB8fCAhcmVmZXJlbmNlT2JqZWN0LT5pc1JhZGlv
QnV0dG9uKCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgcmV0dXJuIGF4T2JqZWN0LT5h
dHRyaWJ1dGVWYWx1ZSgibmFtZSIpICE9IHJlZmVyZW5jZU9iamVjdC0+YXR0cmlidXRlVmFsdWUo
Im5hbWUiKTsKKyAgICByZXR1cm4gYXhPYmplY3QtPmF0dHJpYnV0ZVZhbHVlKCJuYW1lIl9zKSAh
PSByZWZlcmVuY2VPYmplY3QtPmF0dHJpYnV0ZVZhbHVlKCJuYW1lIl9zKTsKIH0KIAogc3RhdGlj
IGJvb2wgaXNBY2Nlc3NpYmlsaXR5T2JqZWN0U2VhcmNoTWF0Y2hBdEluZGV4KFJlZlB0cjxBWENv
cmVPYmplY3Q+IGF4T2JqZWN0LCBBY2Nlc3NpYmlsaXR5U2VhcmNoQ3JpdGVyaWEgY29uc3QmIGNy
aXRlcmlhLCBzaXplX3QgaW5kZXgpCkBAIC00Mjk1LDcgKzQyOTUsNyBAQCBzdGF0aWMgdm9pZCBh
cHBlbmRDaGlsZHJlblRvQXJyYXkoUmVmUHRyPEFYQ29yZU9iamVjdD4gb2JqZWN0LCBib29sIGlz
Rm9yd2FyZCwgUgogCiB2b2lkIGZpbmRNYXRjaGluZ09iamVjdHMoQWNjZXNzaWJpbGl0eVNlYXJj
aENyaXRlcmlhIGNvbnN0JiBjcml0ZXJpYSwgQVhDb3JlT2JqZWN0OjpBY2Nlc3NpYmlsaXR5Q2hp
bGRyZW5WZWN0b3ImIHJlc3VsdHMpCiB7Ci0gICAgQVhUUkFDRSgiQWNjZXNzaWJpbGl0eTo6Zmlu
ZE1hdGNoaW5nT2JqZWN0cyIpOworICAgIEFYVFJBQ0UoIkFjY2Vzc2liaWxpdHk6OmZpbmRNYXRj
aGluZ09iamVjdHMiX3MpOwogICAgIEFYTE9HKGNyaXRlcmlhKTsKIAogICAgIC8vIFRoaXMgc2Vh
cmNoIGFsZ29yaXRobSBvbmx5IHNlYXJjaGVzIHRoZSBlbGVtZW50cyBiZWZvcmUvYWZ0ZXIgdGhl
IHN0YXJ0aW5nIG9iamVjdC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgKaW5kZXggNDZmNjAyODAyYTc2
MjFjMDg2ZjUxNDVkMGE3MGVjZTZiZmI4MjdjZi4uZTBiZGRkOTMxYzRkMjQxZWQ3NzgwNDNlOWIy
NDFmMTI5ZTNmZWQ3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgKQEAgLTI2NCwzMTIgKzI2NCwz
MTIgQEAgQUxXQVlTX0lOTElORSBTdHJpbmcgYWNjZXNzaWJpbGl0eVJvbGVUb1N0cmluZyhBY2Nl
c3NpYmlsaXR5Um9sZSByb2xlKQogewogICAgIHN3aXRjaCAocm9sZSkgewogICAgIGNhc2UgQWNj
ZXNzaWJpbGl0eVJvbGU6OkFubm90YXRpb246Ci0gICAgICAgIHJldHVybiAiQW5ub3RhdGlvbiI7
CisgICAgICAgIHJldHVybiAiQW5ub3RhdGlvbiJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlS
b2xlOjpBcHBsaWNhdGlvbjoKLSAgICAgICAgcmV0dXJuICJBcHBsaWNhdGlvbiI7CisgICAgICAg
IHJldHVybiAiQXBwbGljYXRpb24iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBw
bGljYXRpb25BbGVydDoKLSAgICAgICAgcmV0dXJuICJBcHBsaWNhdGlvbkFsZXJ0IjsKKyAgICAg
ICAgcmV0dXJuICJBcHBsaWNhdGlvbkFsZXJ0Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJv
bGU6OkFwcGxpY2F0aW9uQWxlcnREaWFsb2c6Ci0gICAgICAgIHJldHVybiAiQXBwbGljYXRpb25B
bGVydERpYWxvZyI7CisgICAgICAgIHJldHVybiAiQXBwbGljYXRpb25BbGVydERpYWxvZyJfczsK
ICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvbkRpYWxvZzoKLSAgICAgICAg
cmV0dXJuICJBcHBsaWNhdGlvbkRpYWxvZyI7CisgICAgICAgIHJldHVybiAiQXBwbGljYXRpb25E
aWFsb2ciX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb25Hcm91cDoK
LSAgICAgICAgcmV0dXJuICJBcHBsaWNhdGlvbkdyb3VwIjsKKyAgICAgICAgcmV0dXJuICJBcHBs
aWNhdGlvbkdyb3VwIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9u
TG9nOgotICAgICAgICByZXR1cm4gIkFwcGxpY2F0aW9uTG9nIjsKKyAgICAgICAgcmV0dXJuICJB
cHBsaWNhdGlvbkxvZyJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNhdGlv
bk1hcnF1ZWU6Ci0gICAgICAgIHJldHVybiAiQXBwbGljYXRpb25NYXJxdWVlIjsKKyAgICAgICAg
cmV0dXJuICJBcHBsaWNhdGlvbk1hcnF1ZWUiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9s
ZTo6QXBwbGljYXRpb25TdGF0dXM6Ci0gICAgICAgIHJldHVybiAiQXBwbGljYXRpb25TdGF0dXMi
OworICAgICAgICByZXR1cm4gIkFwcGxpY2F0aW9uU3RhdHVzIl9zOwogICAgIGNhc2UgQWNjZXNz
aWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uVGV4dEdyb3VwOgotICAgICAgICByZXR1cm4gIkFwcGxp
Y2F0aW9uVGV4dEdyb3VwIjsKKyAgICAgICAgcmV0dXJuICJBcHBsaWNhdGlvblRleHRHcm91cCJf
czsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvblRpbWVyOgotICAgICAg
ICByZXR1cm4gIkFwcGxpY2F0aW9uVGltZXIiOworICAgICAgICByZXR1cm4gIkFwcGxpY2F0aW9u
VGltZXIiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXVkaW86Ci0gICAgICAgIHJl
dHVybiAiQXVkaW8iOworICAgICAgICByZXR1cm4gIkF1ZGlvIl9zOwogICAgIGNhc2UgQWNjZXNz
aWJpbGl0eVJvbGU6OkJsb2NrcXVvdGU6Ci0gICAgICAgIHJldHVybiAiQmxvY2txdW90ZSI7Cisg
ICAgICAgIHJldHVybiAiQmxvY2txdW90ZSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xl
OjpCcm93c2VyOgotICAgICAgICByZXR1cm4gIkJyb3dzZXIiOworICAgICAgICByZXR1cm4gIkJy
b3dzZXIiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QnVzeUluZGljYXRvcjoKLSAg
ICAgICAgcmV0dXJuICJCdXN5SW5kaWNhdG9yIjsKKyAgICAgICAgcmV0dXJuICJCdXN5SW5kaWNh
dG9yIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkJ1dHRvbjoKLSAgICAgICAgcmV0
dXJuICJCdXR0b24iOworICAgICAgICByZXR1cm4gIkJ1dHRvbiJfczsKICAgICBjYXNlIEFjY2Vz
c2liaWxpdHlSb2xlOjpDYW52YXM6Ci0gICAgICAgIHJldHVybiAiQ2FudmFzIjsKKyAgICAgICAg
cmV0dXJuICJDYW52YXMiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6Q2FwdGlvbjoK
LSAgICAgICAgcmV0dXJuICJDYXB0aW9uIjsKKyAgICAgICAgcmV0dXJuICJDYXB0aW9uIl9zOwog
ICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkNlbGw6Ci0gICAgICAgIHJldHVybiAiQ2VsbCI7
CisgICAgICAgIHJldHVybiAiQ2VsbCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpD
aGVja0JveDoKLSAgICAgICAgcmV0dXJuICJDaGVja0JveCI7CisgICAgICAgIHJldHVybiAiQ2hl
Y2tCb3giX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6Q29sb3JXZWxsOgotICAgICAg
ICByZXR1cm4gIkNvbG9yV2VsbCI7CisgICAgICAgIHJldHVybiAiQ29sb3JXZWxsIl9zOwogICAg
IGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkNvbHVtbjoKLSAgICAgICAgcmV0dXJuICJDb2x1bW4i
OworICAgICAgICByZXR1cm4gIkNvbHVtbiJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xl
OjpDb2x1bW5IZWFkZXI6Ci0gICAgICAgIHJldHVybiAiQ29sdW1uSGVhZGVyIjsKKyAgICAgICAg
cmV0dXJuICJDb2x1bW5IZWFkZXIiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6Q29t
Ym9Cb3g6Ci0gICAgICAgIHJldHVybiAiQ29tYm9Cb3giOworICAgICAgICByZXR1cm4gIkNvbWJv
Qm94Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRlZmluaXRpb246Ci0gICAgICAg
IHJldHVybiAiRGVmaW5pdGlvbiI7CisgICAgICAgIHJldHVybiAiRGVmaW5pdGlvbiJfczsKICAg
ICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpEZWxldGlvbjoKLSAgICAgICAgcmV0dXJuICJEZWxl
dGlvbiI7CisgICAgICAgIHJldHVybiAiRGVsZXRpb24iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmls
aXR5Um9sZTo6RGVzY3JpcHRpb25MaXN0OgotICAgICAgICByZXR1cm4gIkRlc2NyaXB0aW9uTGlz
dCI7CisgICAgICAgIHJldHVybiAiRGVzY3JpcHRpb25MaXN0Il9zOwogICAgIGNhc2UgQWNjZXNz
aWJpbGl0eVJvbGU6OkRlc2NyaXB0aW9uTGlzdFRlcm06Ci0gICAgICAgIHJldHVybiAiRGVzY3Jp
cHRpb25MaXN0VGVybSI7CisgICAgICAgIHJldHVybiAiRGVzY3JpcHRpb25MaXN0VGVybSJfczsK
ICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpEZXNjcmlwdGlvbkxpc3REZXRhaWw6Ci0gICAg
ICAgIHJldHVybiAiRGVzY3JpcHRpb25MaXN0RGV0YWlsIjsKKyAgICAgICAgcmV0dXJuICJEZXNj
cmlwdGlvbkxpc3REZXRhaWwiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RGV0YWls
czoKLSAgICAgICAgcmV0dXJuICJEZXRhaWxzIjsKKyAgICAgICAgcmV0dXJuICJEZXRhaWxzIl9z
OwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRpcmVjdG9yeToKLSAgICAgICAgcmV0dXJu
ICJEaXJlY3RvcnkiOworICAgICAgICByZXR1cm4gIkRpcmVjdG9yeSJfczsKICAgICBjYXNlIEFj
Y2Vzc2liaWxpdHlSb2xlOjpEaXNjbG9zdXJlVHJpYW5nbGU6Ci0gICAgICAgIHJldHVybiAiRGlz
Y2xvc3VyZVRyaWFuZ2xlIjsKKyAgICAgICAgcmV0dXJuICJEaXNjbG9zdXJlVHJpYW5nbGUiX3M7
CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RGl2OgotICAgICAgICByZXR1cm4gIkRpdiI7
CisgICAgICAgIHJldHVybiAiRGl2Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRv
Y3VtZW50OgotICAgICAgICByZXR1cm4gIkRvY3VtZW50IjsKKyAgICAgICAgcmV0dXJuICJEb2N1
bWVudCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpEb2N1bWVudEFydGljbGU6Ci0g
ICAgICAgIHJldHVybiAiRG9jdW1lbnRBcnRpY2xlIjsKKyAgICAgICAgcmV0dXJuICJEb2N1bWVu
dEFydGljbGUiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RG9jdW1lbnRNYXRoOgot
ICAgICAgICByZXR1cm4gIkRvY3VtZW50TWF0aCI7CisgICAgICAgIHJldHVybiAiRG9jdW1lbnRN
YXRoIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRvY3VtZW50Tm90ZToKLSAgICAg
ICAgcmV0dXJuICJEb2N1bWVudE5vdGUiOworICAgICAgICByZXR1cm4gIkRvY3VtZW50Tm90ZSJf
czsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpEcmF3ZXI6Ci0gICAgICAgIHJldHVybiAi
RHJhd2VyIjsKKyAgICAgICAgcmV0dXJuICJEcmF3ZXIiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmls
aXR5Um9sZTo6RWRpdGFibGVUZXh0OgotICAgICAgICByZXR1cm4gIkVkaXRhYmxlVGV4dCI7Cisg
ICAgICAgIHJldHVybiAiRWRpdGFibGVUZXh0Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJv
bGU6OkZlZWQ6Ci0gICAgICAgIHJldHVybiAiRmVlZCI7CisgICAgICAgIHJldHVybiAiRmVlZCJf
czsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpGaWd1cmU6Ci0gICAgICAgIHJldHVybiAi
RmlndXJlIjsKKyAgICAgICAgcmV0dXJuICJGaWd1cmUiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmls
aXR5Um9sZTo6Rm9vdGVyOgotICAgICAgICByZXR1cm4gIkZvb3RlciI7CisgICAgICAgIHJldHVy
biAiRm9vdGVyIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkZvb3Rub3RlOgotICAg
ICAgICByZXR1cm4gIkZvb3Rub3RlIjsKKyAgICAgICAgcmV0dXJuICJGb290bm90ZSJfczsKICAg
ICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpGb3JtOgotICAgICAgICByZXR1cm4gIkZvcm0iOwor
ICAgICAgICByZXR1cm4gIkZvcm0iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6R3Jh
cGhpY3NEb2N1bWVudDoKLSAgICAgICAgcmV0dXJuICJHcmFwaGljc0RvY3VtZW50IjsKKyAgICAg
ICAgcmV0dXJuICJHcmFwaGljc0RvY3VtZW50Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJv
bGU6OkdyYXBoaWNzT2JqZWN0OgotICAgICAgICByZXR1cm4gIkdyYXBoaWNzT2JqZWN0IjsKKyAg
ICAgICAgcmV0dXJuICJHcmFwaGljc09iamVjdCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlS
b2xlOjpHcmFwaGljc1N5bWJvbDoKLSAgICAgICAgcmV0dXJuICJHcmFwaGljc1N5bWJvbCI7Cisg
ICAgICAgIHJldHVybiAiR3JhcGhpY3NTeW1ib2wiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5
Um9sZTo6R3JpZDoKLSAgICAgICAgcmV0dXJuICJHcmlkIjsKKyAgICAgICAgcmV0dXJuICJHcmlk
Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkdyaWRDZWxsOgotICAgICAgICByZXR1
cm4gIkdyaWRDZWxsIjsKKyAgICAgICAgcmV0dXJuICJHcmlkQ2VsbCJfczsKICAgICBjYXNlIEFj
Y2Vzc2liaWxpdHlSb2xlOjpHcm91cDoKLSAgICAgICAgcmV0dXJuICJHcm91cCI7CisgICAgICAg
IHJldHVybiAiR3JvdXAiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6R3Jvd0FyZWE6
Ci0gICAgICAgIHJldHVybiAiR3Jvd0FyZWEiOworICAgICAgICByZXR1cm4gIkdyb3dBcmVhIl9z
OwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkhlYWRpbmc6Ci0gICAgICAgIHJldHVybiAi
SGVhZGluZyI7CisgICAgICAgIHJldHVybiAiSGVhZGluZyJfczsKICAgICBjYXNlIEFjY2Vzc2li
aWxpdHlSb2xlOjpIZWxwVGFnOgotICAgICAgICByZXR1cm4gIkhlbHBUYWciOworICAgICAgICBy
ZXR1cm4gIkhlbHBUYWciX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6SG9yaXpvbnRh
bFJ1bGU6Ci0gICAgICAgIHJldHVybiAiSG9yaXpvbnRhbFJ1bGUiOworICAgICAgICByZXR1cm4g
Ikhvcml6b250YWxSdWxlIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Oklnbm9yZWQ6
Ci0gICAgICAgIHJldHVybiAiSWdub3JlZCI7CisgICAgICAgIHJldHVybiAiSWdub3JlZCJfczsK
ICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpJbmxpbmU6Ci0gICAgICAgIHJldHVybiAiSW5s
aW5lIjsKKyAgICAgICAgcmV0dXJuICJJbmxpbmUiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5
Um9sZTo6SW1hZ2U6Ci0gICAgICAgIHJldHVybiAiSW1hZ2UiOworICAgICAgICByZXR1cm4gIklt
YWdlIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkltYWdlTWFwOgotICAgICAgICBy
ZXR1cm4gIkltYWdlTWFwIjsKKyAgICAgICAgcmV0dXJuICJJbWFnZU1hcCJfczsKICAgICBjYXNl
IEFjY2Vzc2liaWxpdHlSb2xlOjpJbWFnZU1hcExpbms6Ci0gICAgICAgIHJldHVybiAiSW1hZ2VN
YXBMaW5rIjsKKyAgICAgICAgcmV0dXJuICJJbWFnZU1hcExpbmsiX3M7CiAgICAgY2FzZSBBY2Nl
c3NpYmlsaXR5Um9sZTo6SW5jcmVtZW50b3I6Ci0gICAgICAgIHJldHVybiAiSW5jcmVtZW50b3Ii
OworICAgICAgICByZXR1cm4gIkluY3JlbWVudG9yIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0
eVJvbGU6Okluc2VydGlvbjoKLSAgICAgICAgcmV0dXJuICJJbnNlcnRpb24iOworICAgICAgICBy
ZXR1cm4gIkluc2VydGlvbiJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpMYWJlbDoK
LSAgICAgICAgcmV0dXJuICJMYWJlbCI7CisgICAgICAgIHJldHVybiAiTGFiZWwiX3M7CiAgICAg
Y2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtCYW5uZXI6Ci0gICAgICAgIHJldHVybiAi
TGFuZG1hcmtCYW5uZXIiOworICAgICAgICByZXR1cm4gIkxhbmRtYXJrQmFubmVyIl9zOwogICAg
IGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJrQ29tcGxlbWVudGFyeToKLSAgICAgICAg
cmV0dXJuICJMYW5kbWFya0NvbXBsZW1lbnRhcnkiOworICAgICAgICByZXR1cm4gIkxhbmRtYXJr
Q29tcGxlbWVudGFyeSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpMYW5kbWFya0Nv
bnRlbnRJbmZvOgotICAgICAgICByZXR1cm4gIkxhbmRtYXJrQ29udGVudEluZm8iOworICAgICAg
ICByZXR1cm4gIkxhbmRtYXJrQ29udGVudEluZm8iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5
Um9sZTo6TGFuZG1hcmtEb2NSZWdpb246Ci0gICAgICAgIHJldHVybiAiTGFuZG1hcmtEb2NSZWdp
b24iOworICAgICAgICByZXR1cm4gIkxhbmRtYXJrRG9jUmVnaW9uIl9zOwogICAgIGNhc2UgQWNj
ZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJrTWFpbjoKLSAgICAgICAgcmV0dXJuICJMYW5kbWFya01h
aW4iOworICAgICAgICByZXR1cm4gIkxhbmRtYXJrTWFpbiJfczsKICAgICBjYXNlIEFjY2Vzc2li
aWxpdHlSb2xlOjpMYW5kbWFya05hdmlnYXRpb246Ci0gICAgICAgIHJldHVybiAiTGFuZG1hcmtO
YXZpZ2F0aW9uIjsKKyAgICAgICAgcmV0dXJuICJMYW5kbWFya05hdmlnYXRpb24iX3M7CiAgICAg
Y2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtSZWdpb246Ci0gICAgICAgIHJldHVybiAi
TGFuZG1hcmtSZWdpb24iOworICAgICAgICByZXR1cm4gIkxhbmRtYXJrUmVnaW9uIl9zOwogICAg
IGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJrU2VhcmNoOgotICAgICAgICByZXR1cm4g
IkxhbmRtYXJrU2VhcmNoIjsKKyAgICAgICAgcmV0dXJuICJMYW5kbWFya1NlYXJjaCJfczsKICAg
ICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpMZWdlbmQ6Ci0gICAgICAgIHJldHVybiAiTGVnZW5k
IjsKKyAgICAgICAgcmV0dXJuICJMZWdlbmQiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9s
ZTo6TGluazoKLSAgICAgICAgcmV0dXJuICJMaW5rIjsKKyAgICAgICAgcmV0dXJuICJMaW5rIl9z
OwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Okxpc3Q6Ci0gICAgICAgIHJldHVybiAiTGlz
dCI7CisgICAgICAgIHJldHVybiAiTGlzdCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xl
OjpMaXN0Qm94OgotICAgICAgICByZXR1cm4gIkxpc3RCb3giOworICAgICAgICByZXR1cm4gIkxp
c3RCb3giX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGlzdEJveE9wdGlvbjoKLSAg
ICAgICAgcmV0dXJuICJMaXN0Qm94T3B0aW9uIjsKKyAgICAgICAgcmV0dXJuICJMaXN0Qm94T3B0
aW9uIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Okxpc3RJdGVtOgotICAgICAgICBy
ZXR1cm4gIkxpc3RJdGVtIjsKKyAgICAgICAgcmV0dXJuICJMaXN0SXRlbSJfczsKICAgICBjYXNl
IEFjY2Vzc2liaWxpdHlSb2xlOjpMaXN0TWFya2VyOgotICAgICAgICByZXR1cm4gIkxpc3RNYXJr
ZXIiOworICAgICAgICByZXR1cm4gIkxpc3RNYXJrZXIiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmls
aXR5Um9sZTo6TWFyazoKLSAgICAgICAgcmV0dXJuICJNYXJrIjsKKyAgICAgICAgcmV0dXJuICJN
YXJrIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Ok1hdGhFbGVtZW50OgotICAgICAg
ICByZXR1cm4gIk1hdGhFbGVtZW50IjsKKyAgICAgICAgcmV0dXJuICJNYXRoRWxlbWVudCJfczsK
ICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpNYXR0ZToKLSAgICAgICAgcmV0dXJuICJNYXR0
ZSI7CisgICAgICAgIHJldHVybiAiTWF0dGUiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9s
ZTo6TWVudToKLSAgICAgICAgcmV0dXJuICJNZW51IjsKKyAgICAgICAgcmV0dXJuICJNZW51Il9z
OwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Ok1lbnVCYXI6Ci0gICAgICAgIHJldHVybiAi
TWVudUJhciI7CisgICAgICAgIHJldHVybiAiTWVudUJhciJfczsKICAgICBjYXNlIEFjY2Vzc2li
aWxpdHlSb2xlOjpNZW51QnV0dG9uOgotICAgICAgICByZXR1cm4gIk1lbnVCdXR0b24iOworICAg
ICAgICByZXR1cm4gIk1lbnVCdXR0b24iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6
TWVudUl0ZW06Ci0gICAgICAgIHJldHVybiAiTWVudUl0ZW0iOworICAgICAgICByZXR1cm4gIk1l
bnVJdGVtIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Ok1lbnVJdGVtQ2hlY2tib3g6
Ci0gICAgICAgIHJldHVybiAiTWVudUl0ZW1DaGVja2JveCI7CisgICAgICAgIHJldHVybiAiTWVu
dUl0ZW1DaGVja2JveCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpNZW51SXRlbVJh
ZGlvOgotICAgICAgICByZXR1cm4gIk1lbnVJdGVtUmFkaW8iOworICAgICAgICByZXR1cm4gIk1l
bnVJdGVtUmFkaW8iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TWVudUxpc3RQb3B1
cDoKLSAgICAgICAgcmV0dXJuICJNZW51TGlzdFBvcHVwIjsKKyAgICAgICAgcmV0dXJuICJNZW51
TGlzdFBvcHVwIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Ok1lbnVMaXN0T3B0aW9u
OgotICAgICAgICByZXR1cm4gIk1lbnVMaXN0T3B0aW9uIjsKKyAgICAgICAgcmV0dXJuICJNZW51
TGlzdE9wdGlvbiJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpNZXRlcjoKLSAgICAg
ICAgcmV0dXJuICJNZXRlciI7CisgICAgICAgIHJldHVybiAiTWV0ZXIiX3M7CiAgICAgY2FzZSBB
Y2Nlc3NpYmlsaXR5Um9sZTo6TW9kZWw6Ci0gICAgICAgIHJldHVybiAiTW9kZWwiOworICAgICAg
ICByZXR1cm4gIk1vZGVsIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Ok91dGxpbmU6
Ci0gICAgICAgIHJldHVybiAiT3V0bGluZSI7CisgICAgICAgIHJldHVybiAiT3V0bGluZSJfczsK
ICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpQYXJhZ3JhcGg6Ci0gICAgICAgIHJldHVybiAi
UGFyYWdyYXBoIjsKKyAgICAgICAgcmV0dXJuICJQYXJhZ3JhcGgiX3M7CiAgICAgY2FzZSBBY2Nl
c3NpYmlsaXR5Um9sZTo6UG9wVXBCdXR0b246Ci0gICAgICAgIHJldHVybiAiUG9wVXBCdXR0b24i
OworICAgICAgICByZXR1cm4gIlBvcFVwQnV0dG9uIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0
eVJvbGU6OlByZToKLSAgICAgICAgcmV0dXJuICJQcmUiOworICAgICAgICByZXR1cm4gIlByZSJf
czsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpQcmVzZW50YXRpb25hbDoKLSAgICAgICAg
cmV0dXJuICJQcmVzZW50YXRpb25hbCI7CisgICAgICAgIHJldHVybiAiUHJlc2VudGF0aW9uYWwi
X3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6UHJvZ3Jlc3NJbmRpY2F0b3I6Ci0gICAg
ICAgIHJldHVybiAiUHJvZ3Jlc3NJbmRpY2F0b3IiOworICAgICAgICByZXR1cm4gIlByb2dyZXNz
SW5kaWNhdG9yIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlJhZGlvQnV0dG9uOgot
ICAgICAgICByZXR1cm4gIlJhZGlvQnV0dG9uIjsKKyAgICAgICAgcmV0dXJuICJSYWRpb0J1dHRv
biJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpSYWRpb0dyb3VwOgotICAgICAgICBy
ZXR1cm4gIlJhZGlvR3JvdXAiOworICAgICAgICByZXR1cm4gIlJhZGlvR3JvdXAiX3M7CiAgICAg
Y2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6Um93SGVhZGVyOgotICAgICAgICByZXR1cm4gIlJvd0hl
YWRlciI7CisgICAgICAgIHJldHVybiAiUm93SGVhZGVyIl9zOwogICAgIGNhc2UgQWNjZXNzaWJp
bGl0eVJvbGU6OlJvdzoKLSAgICAgICAgcmV0dXJuICJSb3ciOworICAgICAgICByZXR1cm4gIlJv
dyJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpSb3dHcm91cDoKLSAgICAgICAgcmV0
dXJuICJSb3dHcm91cCI7CisgICAgICAgIHJldHVybiAiUm93R3JvdXAiX3M7CiAgICAgY2FzZSBB
Y2Nlc3NpYmlsaXR5Um9sZTo6UnVieUJhc2U6Ci0gICAgICAgIHJldHVybiAiUnVieUJhc2UiOwor
ICAgICAgICByZXR1cm4gIlJ1YnlCYXNlIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6
OlJ1YnlCbG9jazoKLSAgICAgICAgcmV0dXJuICJSdWJ5QmxvY2siOworICAgICAgICByZXR1cm4g
IlJ1YnlCbG9jayJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpSdWJ5SW5saW5lOgot
ICAgICAgICByZXR1cm4gIlJ1YnlJbmxpbmUiOworICAgICAgICByZXR1cm4gIlJ1YnlJbmxpbmUi
X3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6UnVieVJ1bjoKLSAgICAgICAgcmV0dXJu
ICJSdWJ5UnVuIjsKKyAgICAgICAgcmV0dXJuICJSdWJ5UnVuIl9zOwogICAgIGNhc2UgQWNjZXNz
aWJpbGl0eVJvbGU6OlJ1YnlUZXh0OgotICAgICAgICByZXR1cm4gIlJ1YnlUZXh0IjsKKyAgICAg
ICAgcmV0dXJuICJSdWJ5VGV4dCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpSdWxl
cjoKLSAgICAgICAgcmV0dXJuICJSdWxlciI7CisgICAgICAgIHJldHVybiAiUnVsZXIiX3M7CiAg
ICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6UnVsZXJNYXJrZXI6Ci0gICAgICAgIHJldHVybiAi
UnVsZXJNYXJrZXIiOworICAgICAgICByZXR1cm4gIlJ1bGVyTWFya2VyIl9zOwogICAgIGNhc2Ug
QWNjZXNzaWJpbGl0eVJvbGU6OlNjcm9sbEFyZWE6Ci0gICAgICAgIHJldHVybiAiU2Nyb2xsQXJl
YSI7CisgICAgICAgIHJldHVybiAiU2Nyb2xsQXJlYSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxp
dHlSb2xlOjpTY3JvbGxCYXI6Ci0gICAgICAgIHJldHVybiAiU2Nyb2xsQmFyIjsKKyAgICAgICAg
cmV0dXJuICJTY3JvbGxCYXIiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6U2VhcmNo
RmllbGQ6Ci0gICAgICAgIHJldHVybiAiU2VhcmNoRmllbGQiOworICAgICAgICByZXR1cm4gIlNl
YXJjaEZpZWxkIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlNoZWV0OgotICAgICAg
ICByZXR1cm4gIlNoZWV0IjsKKyAgICAgICAgcmV0dXJuICJTaGVldCJfczsKICAgICBjYXNlIEFj
Y2Vzc2liaWxpdHlSb2xlOjpTbGlkZXI6Ci0gICAgICAgIHJldHVybiAiU2xpZGVyIjsKKyAgICAg
ICAgcmV0dXJuICJTbGlkZXIiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6U2xpZGVy
VGh1bWI6Ci0gICAgICAgIHJldHVybiAiU2xpZGVyVGh1bWIiOworICAgICAgICByZXR1cm4gIlNs
aWRlclRodW1iIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlNwaW5CdXR0b246Ci0g
ICAgICAgIHJldHVybiAiU3BpbkJ1dHRvbiI7CisgICAgICAgIHJldHVybiAiU3BpbkJ1dHRvbiJf
czsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpTcGluQnV0dG9uUGFydDoKLSAgICAgICAg
cmV0dXJuICJTcGluQnV0dG9uUGFydCI7CisgICAgICAgIHJldHVybiAiU3BpbkJ1dHRvblBhcnQi
X3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6U3BsaXRHcm91cDoKLSAgICAgICAgcmV0
dXJuICJTcGxpdEdyb3VwIjsKKyAgICAgICAgcmV0dXJuICJTcGxpdEdyb3VwIl9zOwogICAgIGNh
c2UgQWNjZXNzaWJpbGl0eVJvbGU6OlNwbGl0dGVyOgotICAgICAgICByZXR1cm4gIlNwbGl0dGVy
IjsKKyAgICAgICAgcmV0dXJuICJTcGxpdHRlciJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlS
b2xlOjpTdGF0aWNUZXh0OgotICAgICAgICByZXR1cm4gIlN0YXRpY1RleHQiOworICAgICAgICBy
ZXR1cm4gIlN0YXRpY1RleHQiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6U3Vic2Ny
aXB0OgotICAgICAgICByZXR1cm4gIlN1YnNjcmlwdCI7CisgICAgICAgIHJldHVybiAiU3Vic2Ny
aXB0Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlN1bW1hcnk6Ci0gICAgICAgIHJl
dHVybiAiU3VtbWFyeSI7CisgICAgICAgIHJldHVybiAiU3VtbWFyeSJfczsKICAgICBjYXNlIEFj
Y2Vzc2liaWxpdHlSb2xlOjpTdXBlcnNjcmlwdDoKLSAgICAgICAgcmV0dXJuICJTdXBlcnNjcmlw
dCI7CisgICAgICAgIHJldHVybiAiU3VwZXJzY3JpcHQiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmls
aXR5Um9sZTo6U3dpdGNoOgotICAgICAgICByZXR1cm4gIlN3aXRjaCI7CisgICAgICAgIHJldHVy
biAiU3dpdGNoIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlN5c3RlbVdpZGU6Ci0g
ICAgICAgIHJldHVybiAiU3lzdGVtV2lkZSI7CisgICAgICAgIHJldHVybiAiU3lzdGVtV2lkZSJf
czsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpTVkdSb290OgotICAgICAgICByZXR1cm4g
IlNWR1Jvb3QiOworICAgICAgICByZXR1cm4gIlNWR1Jvb3QiX3M7CiAgICAgY2FzZSBBY2Nlc3Np
YmlsaXR5Um9sZTo6U1ZHVGV4dDoKLSAgICAgICAgcmV0dXJuICJTVkdUZXh0IjsKKyAgICAgICAg
cmV0dXJuICJTVkdUZXh0Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlNWR1RTcGFu
OgotICAgICAgICByZXR1cm4gIlNWR1RTcGFuIjsKKyAgICAgICAgcmV0dXJuICJTVkdUU3BhbiJf
czsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpTVkdUZXh0UGF0aDoKLSAgICAgICAgcmV0
dXJuICJTVkdUZXh0UGF0aCI7CisgICAgICAgIHJldHVybiAiU1ZHVGV4dFBhdGgiX3M7CiAgICAg
Y2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VGFiR3JvdXA6Ci0gICAgICAgIHJldHVybiAiVGFiR3Jv
dXAiOworICAgICAgICByZXR1cm4gIlRhYkdyb3VwIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0
eVJvbGU6OlRhYkxpc3Q6Ci0gICAgICAgIHJldHVybiAiVGFiTGlzdCI7CisgICAgICAgIHJldHVy
biAiVGFiTGlzdCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpUYWJQYW5lbDoKLSAg
ICAgICAgcmV0dXJuICJUYWJQYW5lbCI7CisgICAgICAgIHJldHVybiAiVGFiUGFuZWwiX3M7CiAg
ICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VGFiOgotICAgICAgICByZXR1cm4gIlRhYiI7Cisg
ICAgICAgIHJldHVybiAiVGFiIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlRhYmxl
OgotICAgICAgICByZXR1cm4gIlRhYmxlIjsKKyAgICAgICAgcmV0dXJuICJUYWJsZSJfczsKICAg
ICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpUYWJsZUhlYWRlckNvbnRhaW5lcjoKLSAgICAgICAg
cmV0dXJuICJUYWJsZUhlYWRlckNvbnRhaW5lciI7CisgICAgICAgIHJldHVybiAiVGFibGVIZWFk
ZXJDb250YWluZXIiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VGVybToKLSAgICAg
ICAgcmV0dXJuICJUZXJtIjsKKyAgICAgICAgcmV0dXJuICJUZXJtIl9zOwogICAgIGNhc2UgQWNj
ZXNzaWJpbGl0eVJvbGU6OlRleHRBcmVhOgotICAgICAgICByZXR1cm4gIlRleHRBcmVhIjsKKyAg
ICAgICAgcmV0dXJuICJUZXh0QXJlYSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpU
ZXh0RmllbGQ6Ci0gICAgICAgIHJldHVybiAiVGV4dEZpZWxkIjsKKyAgICAgICAgcmV0dXJuICJU
ZXh0RmllbGQiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VGV4dEdyb3VwOgotICAg
ICAgICByZXR1cm4gIlRleHRHcm91cCI7CisgICAgICAgIHJldHVybiAiVGV4dEdyb3VwIl9zOwog
ICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlRpbWU6Ci0gICAgICAgIHJldHVybiAiVGltZSI7
CisgICAgICAgIHJldHVybiAiVGltZSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpU
cmVlOgotICAgICAgICByZXR1cm4gIlRyZWUiOworICAgICAgICByZXR1cm4gIlRyZWUiX3M7CiAg
ICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VHJlZUdyaWQ6Ci0gICAgICAgIHJldHVybiAiVHJl
ZUdyaWQiOworICAgICAgICByZXR1cm4gIlRyZWVHcmlkIl9zOwogICAgIGNhc2UgQWNjZXNzaWJp
bGl0eVJvbGU6OlRyZWVJdGVtOgotICAgICAgICByZXR1cm4gIlRyZWVJdGVtIjsKKyAgICAgICAg
cmV0dXJuICJUcmVlSXRlbSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpUb2dnbGVC
dXR0b246Ci0gICAgICAgIHJldHVybiAiVG9nZ2xlQnV0dG9uIjsKKyAgICAgICAgcmV0dXJuICJU
b2dnbGVCdXR0b24iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VG9vbGJhcjoKLSAg
ICAgICAgcmV0dXJuICJUb29sYmFyIjsKKyAgICAgICAgcmV0dXJuICJUb29sYmFyIl9zOwogICAg
IGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlVua25vd246Ci0gICAgICAgIHJldHVybiAiVW5rbm93
biI7CisgICAgICAgIHJldHVybiAiVW5rbm93biJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlS
b2xlOjpVc2VySW50ZXJmYWNlVG9vbHRpcDoKLSAgICAgICAgcmV0dXJuICJVc2VySW50ZXJmYWNl
VG9vbHRpcCI7CisgICAgICAgIHJldHVybiAiVXNlckludGVyZmFjZVRvb2x0aXAiX3M7CiAgICAg
Y2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VmFsdWVJbmRpY2F0b3I6Ci0gICAgICAgIHJldHVybiAi
VmFsdWVJbmRpY2F0b3IiOworICAgICAgICByZXR1cm4gIlZhbHVlSW5kaWNhdG9yIl9zOwogICAg
IGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlZpZGVvOgotICAgICAgICByZXR1cm4gIlZpZGVvIjsK
KyAgICAgICAgcmV0dXJuICJWaWRlbyJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpX
ZWJBcHBsaWNhdGlvbjoKLSAgICAgICAgcmV0dXJuICJXZWJBcHBsaWNhdGlvbiI7CisgICAgICAg
IHJldHVybiAiV2ViQXBwbGljYXRpb24iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6
V2ViQXJlYToKLSAgICAgICAgcmV0dXJuICJXZWJBcmVhIjsKKyAgICAgICAgcmV0dXJuICJXZWJB
cmVhIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OldlYkNvcmVMaW5rOgotICAgICAg
ICByZXR1cm4gIldlYkNvcmVMaW5rIjsKKyAgICAgICAgcmV0dXJuICJXZWJDb3JlTGluayJfczsK
ICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpXaW5kb3c6Ci0gICAgICAgIHJldHVybiAiV2lu
ZG93IjsKKyAgICAgICAgcmV0dXJuICJXaW5kb3ciX3M7CiAgICAgfQogICAgIFVOUkVBQ0hBQkxF
KCk7Ci0gICAgcmV0dXJuICIiOworICAgIHJldHVybiAiIl9zOwogfQogCiBlbnVtIGNsYXNzIEFj
Y2Vzc2liaWxpdHlEZXRhY2htZW50VHlwZSB7IENhY2hlRGVzdHJveWVkLCBFbGVtZW50RGVzdHJv
eWVkLCBFbGVtZW50Q2hhbmdlZCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKaW5kZXggNDQyMjk1NWEz
ODY1ZGJjNWRkNzIzNTRjYmJmYmYyMDI3NjcxNWIwNi4uYTZkMzEwMmM4ODJhNjA5OGY0NzkyYjdi
Y2QwNmJhMjZkNDI4N2Q4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCkBAIC0yNzg3LDExICsyNzg3
LDExIEBAIGJvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6cmVuZGVyT2JqZWN0SXNPYnNl
cnZhYmxlKFJlbmRlck9iamVjdCYgcmVuZGVyZXIpCiAgICAgaWYgKCFub2RlKQogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgCi0gICAgaWYgKG5vZGVIYXNSb2xlKG5vZGUsICJsaXN0Ym94Iikg
fHwgKGlzPFJlbmRlckJveE1vZGVsT2JqZWN0PihyZW5kZXJlcikgJiYgZG93bmNhc3Q8UmVuZGVy
Qm94TW9kZWxPYmplY3Q+KHJlbmRlcmVyKS5pc0xpc3RCb3goKSkpCisgICAgaWYgKG5vZGVIYXNS
b2xlKG5vZGUsICJsaXN0Ym94Il9zKSB8fCAoaXM8UmVuZGVyQm94TW9kZWxPYmplY3Q+KHJlbmRl
cmVyKSAmJiBkb3duY2FzdDxSZW5kZXJCb3hNb2RlbE9iamVjdD4ocmVuZGVyZXIpLmlzTGlzdEJv
eCgpKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICAvLyBUZXh0Ym94ZXMgc2hvdWxkIHNl
bmQgb3V0IG5vdGlmaWNhdGlvbnMuCi0gICAgaWYgKG5vZGVIYXNSb2xlKG5vZGUsICJ0ZXh0Ym94
IikgfHwgKGlzPEVsZW1lbnQ+KCpub2RlKSAmJiBjb250ZW50RWRpdGFibGVBdHRyaWJ1dGVJc0Vu
YWJsZWQoZG93bmNhc3Q8RWxlbWVudD4obm9kZSkpKSkKKyAgICBpZiAobm9kZUhhc1JvbGUobm9k
ZSwgInRleHRib3giX3MpIHx8IChpczxFbGVtZW50Pigqbm9kZSkgJiYgY29udGVudEVkaXRhYmxl
QXR0cmlidXRlSXNFbmFibGVkKGRvd25jYXN0PEVsZW1lbnQ+KG5vZGUpKSkpCiAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgIAogICAgIHJldHVybiBmYWxzZTsKQEAgLTI4NDAsNyArMjg0MCw3IEBA
IGJvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2hvdWxkSWdub3JlQXR0cmlidXRlUm9s
ZSgpIGNvbnN0CiAKIEFjY2Vzc2liaWxpdHlSb2xlIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6
OmRldGVybWluZUFjY2Vzc2liaWxpdHlSb2xlKCkKIHsKLSAgICBBWFRSQUNFKCJBY2Nlc3NpYmls
aXR5UmVuZGVyT2JqZWN0OjpkZXRlcm1pbmVBY2Nlc3NpYmlsaXR5Um9sZSIpOworICAgIEFYVFJB
Q0UoIkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmRldGVybWluZUFjY2Vzc2liaWxpdHlSb2xl
Il9zKTsKICAgICBpZiAoIW1fcmVuZGVyZXIpCiAgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5
Um9sZTo6VW5rbm93bjsKIApAQCAtMzI4MCw3ICszMjgwLDcgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0OjphZGRMaXN0SXRlbU1hcmtlcigpCiAKIHZvaWQgQWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdDo6dXBkYXRlUm9sZUFmdGVyQ2hpbGRyZW5DcmVhdGlvbigpCiB7Ci0gICAgQVhU
UkFDRSgiQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6dXBkYXRlUm9sZUFmdGVyQ2hpbGRyZW5D
cmVhdGlvbiIpOworICAgIEFYVFJBQ0UoIkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnVwZGF0
ZVJvbGVBZnRlckNoaWxkcmVuQ3JlYXRpb24iX3MpOwogICAgIC8vIElmIGEgbWVudSBkb2VzIG5v
dCBoYXZlIHZhbGlkIG1lbnVpdGVtIGNoaWxkcmVuLCBpdCBzaG91bGQgbm90IGJlIGV4cG9zZWQg
YXMgYSBtZW51LgogICAgIGF1dG8gcm9sZSA9IHJvbGVWYWx1ZSgpOwogICAgIGlmIChyb2xlID09
IEFjY2Vzc2liaWxpdHlSb2xlOjpNZW51KSB7CkBAIC0zMzY0LDcgKzMzNjQsNyBAQCBjb25zdCBT
dHJpbmcgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6bGl2ZVJlZ2lvblJlbGV2YW50KCkgY29u
c3QKIAogICAgIC8vIERlZmF1bHQgYXJpYS1yZWxldmFudCA9ICJhZGRpdGlvbnMgdGV4dCIuCiAg
ICAgaWYgKHJlbGV2YW50LmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuICJhZGRpdGlvbnMgdGV4
dCI7CisgICAgICAgIHJldHVybiAiYWRkaXRpb25zIHRleHQiX3M7CiAgICAgCiAgICAgcmV0dXJu
IHJlbGV2YW50OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5VGFibGVDZWxsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eVRhYmxlQ2VsbC5jcHAKaW5kZXggMjdjZjg2OWY0ZDU3NzFjOTg0YjJiZTNm
NDYxMjZiOTg3N2I2MDAxNS4uMzRhN2JhN2NjZGI0ZTUzYWE1NTQ2MTk4MGYxNTRkMzg4YzJhZjQz
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
VGFibGVDZWxsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlUYWJsZUNlbGwuY3BwCkBAIC02NSw3ICs2NSw3IEBAIGJvb2wgQWNjZXNzaWJpbGl0eVRh
YmxlQ2VsbDo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdAogICAgIAogICAg
IC8vIElnbm9yZSBhbm9ueW1vdXMgdGFibGUgY2VsbHMgYXMgbG9uZyBhcyB0aGV5J3JlIG5vdCBp
biBhIHRhYmxlIChpZS4gd2hlbiBkaXNwbGF5OnRhYmxlIGlzIHVzZWQpLgogICAgIFJlbmRlck9i
amVjdCogcmVuZGVyVGFibGUgPSBpczxSZW5kZXJUYWJsZUNlbGw+KHJlbmRlcmVyKCkpID8gZG93
bmNhc3Q8UmVuZGVyVGFibGVDZWxsPigqbV9yZW5kZXJlcikudGFibGUoKSA6IG51bGxwdHI7Ci0g
ICAgYm9vbCBpblRhYmxlID0gcmVuZGVyVGFibGUgJiYgcmVuZGVyVGFibGUtPm5vZGUoKSAmJiAo
cmVuZGVyVGFibGUtPm5vZGUoKS0+aGFzVGFnTmFtZSh0YWJsZVRhZykgfHwgbm9kZUhhc1JvbGUo
cmVuZGVyVGFibGUtPm5vZGUoKSwgImdyaWQiKSk7CisgICAgYm9vbCBpblRhYmxlID0gcmVuZGVy
VGFibGUgJiYgcmVuZGVyVGFibGUtPm5vZGUoKSAmJiAocmVuZGVyVGFibGUtPm5vZGUoKS0+aGFz
VGFnTmFtZSh0YWJsZVRhZykgfHwgbm9kZUhhc1JvbGUocmVuZGVyVGFibGUtPm5vZGUoKSwgImdy
aWQiX3MpKTsKICAgICBpZiAoIW5vZGUoKSAmJiAhaW5UYWJsZSkKICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5VHJlZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlUcmVlLmNwcAppbmRleCA1OTBjOTYxNTk2MDYwZGI2ZGIxNTUzODk4ZWIxNmYzMGI0
NTRlNjhkLi4xYzAwYmM5NTQyM2UyOTZhZDUxMjYzNzdlNDgxYzdjZTc5ZGZiZDAzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUcmVlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUcmVlLmNwcApA
QCAtNjgsNyArNjgsNyBAQCBBY2Nlc3NpYmlsaXR5Um9sZSBBY2Nlc3NpYmlsaXR5VHJlZTo6ZGV0
ZXJtaW5lQWNjZXNzaWJpbGl0eVJvbGUoKQogYm9vbCBBY2Nlc3NpYmlsaXR5VHJlZTo6bm9kZUhh
c1RyZWVJdGVtQ2hpbGQoTm9kZSYgbm9kZSkgY29uc3QKIHsKICAgICBmb3IgKGF1dG8qIGNoaWxk
ID0gbm9kZS5maXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygp
KSB7Ci0gICAgICAgIGlmIChub2RlSGFzUm9sZShjaGlsZCwgInRyZWVpdGVtIikpCisgICAgICAg
IGlmIChub2RlSGFzUm9sZShjaGlsZCwgInRyZWVpdGVtIl9zKSkKICAgICAgICAgICAgIHJldHVy
biB0cnVlOwogICAgIH0KICAgICByZXR1cm4gZmFsc2U7CkBAIC05MiwxNCArOTIsMTQgQEAgYm9v
bCBBY2Nlc3NpYmlsaXR5VHJlZTo6aXNUcmVlVmFsaWQoKSBjb25zdAogCiAgICAgICAgIGlmICgh
aXM8RWxlbWVudD4oKmNoaWxkKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBpZiAo
bm9kZUhhc1JvbGUoY2hpbGQsICJ0cmVlaXRlbSIpKQorICAgICAgICBpZiAobm9kZUhhc1JvbGUo
Y2hpbGQsICJ0cmVlaXRlbSJfcykpCiAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgaWYg
KG5vZGVIYXNSb2xlKGNoaWxkLCAicHJlc2VudGF0aW9uIikpIHsKKyAgICAgICAgaWYgKG5vZGVI
YXNSb2xlKGNoaWxkLCAicHJlc2VudGF0aW9uIl9zKSkgewogICAgICAgICAgICAgaWYgKCFub2Rl
SGFzVHJlZUl0ZW1DaGlsZCgqY2hpbGQpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9Ci0gICAgICAgIGlmICghbm9kZUhhc1Jv
bGUoY2hpbGQsICJncm91cCIpKQorICAgICAgICBpZiAoIW5vZGVIYXNSb2xlKGNoaWxkLCAiZ3Jv
dXAiX3MpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgICAgIGZvciAoYXV0byog
Z3JvdXBDaGlsZCA9IGNoaWxkLT5maXJzdENoaWxkKCk7IGdyb3VwQ2hpbGQ7IGdyb3VwQ2hpbGQg
PSBncm91cENoaWxkLT5uZXh0U2libGluZygpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcApp
bmRleCBhMTM0YWU3NTJmYTIwMTJlNzgwZDk5ZmExMDhjM2Y0ODc5NmMxMTFjLi41ZjAyMDFmMDdi
NTM1MDViNzBkZGUzMzlhMmNiMjk2NTdjZjc4NDVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0
LmNwcApAQCAtMzA1LDcgKzMwNSw3IEBAIHZvaWQgQVhJc29sYXRlZE9iamVjdDo6aW5pdGlhbGl6
ZUF0dHJpYnV0ZURhdGEoQVhDb3JlT2JqZWN0JiBjb3JlT2JqZWN0LCBib29sIGlzCiAgICAgICAg
IHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpUZXh0TGVuZ3RoLCBvYmplY3QudGV4dExlbmd0
aCgpKTsKIAogICAgIGlmIChvYmplY3QuaXNSYWRpb0J1dHRvbigpKSB7Ci0gICAgICAgIGlmIChh
dXRvIG5hbWVBdHRyaWJ1dGUgPSBvYmplY3QuYXR0cmlidXRlVmFsdWUoIm5hbWUiKSkKKyAgICAg
ICAgaWYgKGF1dG8gbmFtZUF0dHJpYnV0ZSA9IG9iamVjdC5hdHRyaWJ1dGVWYWx1ZSgibmFtZSJf
cykpCiAgICAgICAgICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6TmFtZUF0dHJpYnV0
ZSwgbmFtZUF0dHJpYnV0ZS0+aXNvbGF0ZWRDb3B5KCkpOwogICAgIH0KIApAQCAtMzYyLDcgKzM2
Miw3IEBAIHZvaWQgQVhJc29sYXRlZE9iamVjdDo6aW5pdGlhbGl6ZUF0dHJpYnV0ZURhdGEoQVhD
b3JlT2JqZWN0JiBjb3JlT2JqZWN0LCBib29sIGlzCiAgICAgU3RyaW5nIGNvbWJpbmVkQ2xhc3NM
aXN0OwogICAgIGZvciAoYXV0byBpdCA9IGNsYXNzTGlzdC5iZWdpbigpLCBlbmQgPSBjbGFzc0xp
c3QuZW5kKCk7IGl0ICE9IGVuZDsgKytpdCkgewogICAgICAgICBjb21iaW5lZENsYXNzTGlzdC5h
cHBlbmQoKml0KTsKLSAgICAgICAgY29tYmluZWRDbGFzc0xpc3QuYXBwZW5kKCIgIik7CisgICAg
ICAgIGNvbWJpbmVkQ2xhc3NMaXN0LmFwcGVuZCgiICJfcyk7CiAgICAgfQogICAgIHNldFByb3Bl
cnR5KEFYUHJvcGVydHlOYW1lOjpDbGFzc0xpc3QsIGNvbWJpbmVkQ2xhc3NMaXN0KTsKIApAQCAt
NjAwLDcgKzYwMCw3IEBAIHZvaWQgQVhJc29sYXRlZE9iamVjdDo6YWNjZXNzaWJpbGl0eVRleHQo
VmVjdG9yPEFjY2Vzc2liaWxpdHlUZXh0PiYgdGV4dHMpIGNvbnN0CiB2b2lkIEFYSXNvbGF0ZWRP
YmplY3Q6OmNsYXNzTGlzdChWZWN0b3I8U3RyaW5nPiYgbGlzdCkgY29uc3QKIHsKICAgICBTdHJp
bmcgY2xhc3NMaXN0ID0gc3RyaW5nQXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6OkNsYXNz
TGlzdCk7Ci0gICAgbGlzdC5hcHBlbmRWZWN0b3IoY2xhc3NMaXN0LnNwbGl0KCIgIikpOworICAg
IGxpc3QuYXBwZW5kVmVjdG9yKGNsYXNzTGlzdC5zcGxpdCgiICJfcykpOwogfQogCiBQQUw6OlNl
c3Npb25JRCBBWElzb2xhdGVkT2JqZWN0OjpzZXNzaW9uSUQoKSBjb25zdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRl
ZFRyZWUuY3BwCmluZGV4IDY3ZjViMWRlZmQ5YzQ3OGVkZWJiMDc5M2M2NTBlMzhjZjM5YTNjNGIu
LjFjZTc4NTAyZDJlYzc3MjI3Y2JmM2RiMjc1MGMwN2FiY2U4MzljZTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xh
dGVkVHJlZS5jcHAKQEAgLTYyLDE4ICs2MiwxOCBAQCBBWElzb2xhdGVkVHJlZTo6QVhJc29sYXRl
ZFRyZWUoQVhPYmplY3RDYWNoZSogYXhPYmplY3RDYWNoZSkKICAgICAsIG1fYXhPYmplY3RDYWNo
ZShheE9iamVjdENhY2hlKQogICAgICwgbV91c2VkT25BWFRocmVhZChheE9iamVjdENhY2hlLT51
c2VkT25BWFRocmVhZCgpKQogewotICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjpBWElzb2xh
dGVkVHJlZSIpOworICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjpBWElzb2xhdGVkVHJlZSJf
cyk7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIH0KIAogQVhJc29sYXRlZFRyZWU6On5B
WElzb2xhdGVkVHJlZSgpCiB7Ci0gICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6On5BWElzb2xh
dGVkVHJlZSIpOworICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjp+QVhJc29sYXRlZFRyZWUi
X3MpOwogfQogCiB2b2lkIEFYSXNvbGF0ZWRUcmVlOjpjbGVhcigpCiB7Ci0gICAgQVhUUkFDRSgi
QVhJc29sYXRlZFRyZWU6OmNsZWFyIik7CisgICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OmNs
ZWFyIl9zKTsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIG1fYXhPYmplY3RDYWNo
ZSA9IG51bGxwdHI7CiAgICAgbV9ub2RlTWFwLmNsZWFyKCk7CkBAIC04NSwxNCArODUsMTQgQEAg
dm9pZCBBWElzb2xhdGVkVHJlZTo6Y2xlYXIoKQogCiBSZWZQdHI8QVhJc29sYXRlZFRyZWU+IEFY
SXNvbGF0ZWRUcmVlOjp0cmVlRm9ySUQoQVhJc29sYXRlZFRyZWVJRCB0cmVlSUQpCiB7Ci0gICAg
QVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OnRyZWVGb3JJRCIpOworICAgIEFYVFJBQ0UoIkFYSXNv
bGF0ZWRUcmVlOjp0cmVlRm9ySUQiX3MpOwogICAgIExvY2tlciBsb2NrZXIgeyBzX2NhY2hlTG9j
ayB9OwogICAgIHJldHVybiB0cmVlSURDYWNoZSgpLmdldCh0cmVlSUQpOwogfQogCiBSZWY8QVhJ
c29sYXRlZFRyZWU+IEFYSXNvbGF0ZWRUcmVlOjpjcmVhdGUoQVhPYmplY3RDYWNoZSogYXhPYmpl
Y3RDYWNoZSkKIHsKLSAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6Y3JlYXRlIik7CisgICAg
QVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OmNyZWF0ZSJfcyk7CiAgICAgQVNTRVJUKGlzTWFpblRo
cmVhZCgpKTsKICAgICBBU1NFUlQoYXhPYmplY3RDYWNoZSAmJiBheE9iamVjdENhY2hlLT5wYWdl
SUQoKSk7CiAKQEAgLTEyNSw3ICsxMjUsNyBAQCBSZWY8QVhJc29sYXRlZFRyZWU+IEFYSXNvbGF0
ZWRUcmVlOjpjcmVhdGUoQVhPYmplY3RDYWNoZSogYXhPYmplY3RDYWNoZSkKIAogdm9pZCBBWElz
b2xhdGVkVHJlZTo6cmVtb3ZlVHJlZUZvclBhZ2VJRChQYWdlSWRlbnRpZmllciBwYWdlSUQpCiB7
Ci0gICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OnJlbW92ZVRyZWVGb3JQYWdlSUQiKTsKKyAg
ICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6cmVtb3ZlVHJlZUZvclBhZ2VJRCJfcyk7CiAgICAg
QVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBMb2NrZXIgbG9ja2VyIHsgc19jYWNoZUxvY2sg
fTsKIApAQCAtMTU3LDcgKzE1Nyw3IEBAIFJlZlB0cjxBWElzb2xhdGVkT2JqZWN0PiBBWElzb2xh
dGVkVHJlZTo6bm9kZUZvcklEKEFYSUQgYXhJRCkgY29uc3QKIAogVmVjdG9yPFJlZlB0cjxBWENv
cmVPYmplY3Q+PiBBWElzb2xhdGVkVHJlZTo6b2JqZWN0c0ZvcklEcyhjb25zdCBWZWN0b3I8QVhJ
RD4mIGF4SURzKSBjb25zdAogewotICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjpvYmplY3Rz
Rm9ySURzIik7CisgICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6Om9iamVjdHNGb3JJRHMiX3Mp
OwogICAgIFZlY3RvcjxSZWZQdHI8QVhDb3JlT2JqZWN0Pj4gcmVzdWx0OwogICAgIHJlc3VsdC5y
ZXNlcnZlSW5pdGlhbENhcGFjaXR5KGF4SURzLnNpemUoKSk7CiAgICAgZm9yIChhdXRvJiBheElE
IDogYXhJRHMpIHsKQEAgLTE3OCw3ICsxNzgsNyBAQCBWZWN0b3I8QVhJRD4gQVhJc29sYXRlZFRy
ZWU6Omlkc0Zvck9iamVjdHMoY29uc3QgVmVjdG9yPFJlZlB0cjxBWENvcmVPYmplY3Q+PiYgbwog
CiB2b2lkIEFYSXNvbGF0ZWRUcmVlOjpnZW5lcmF0ZVN1YnRyZWUoQVhDb3JlT2JqZWN0JiBheE9i
amVjdCwgQVhDb3JlT2JqZWN0KiBheFBhcmVudCwgYm9vbCBhdHRhY2hXcmFwcGVyKQogewotICAg
IEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjpnZW5lcmF0ZVN1YnRyZWUiKTsKKyAgICBBWFRSQUNF
KCJBWElzb2xhdGVkVHJlZTo6Z2VuZXJhdGVTdWJ0cmVlIl9zKTsKICAgICBBU1NFUlQoaXNNYWlu
VGhyZWFkKCkpOwogCiAgICAgaWYgKCFheE9iamVjdC5vYmplY3RJRCgpLmlzVmFsaWQoKSkKQEAg
LTI3Nyw3ICsyNzcsNyBAQCB2b2lkIEFYSXNvbGF0ZWRUcmVlOjpxdWV1ZUNoYW5nZXNBbmRSZW1v
dmFscyhjb25zdCBWZWN0b3I8Tm9kZUNoYW5nZT4mIGNoYW5nZXMsCiAKIHZvaWQgQVhJc29sYXRl
ZFRyZWU6OmNvbGxlY3ROb2RlQ2hhbmdlc0ZvclN1YnRyZWUoQVhDb3JlT2JqZWN0JiBheE9iamVj
dCwgQVhJRCBwYXJlbnRJRCwgYm9vbCBhdHRhY2hXcmFwcGVyLCBWZWN0b3I8Tm9kZUNoYW5nZT4m
IGNoYW5nZXMsIEhhc2hTZXQ8QVhJRD4qIGlkc0JlaW5nQ2hhbmdlZCkKIHsKLSAgICBBWFRSQUNF
KCJBWElzb2xhdGVkVHJlZTo6Y29sbGVjdE5vZGVDaGFuZ2VzRm9yU3VidHJlZSIpOworICAgIEFY
VFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjpjb2xsZWN0Tm9kZUNoYW5nZXNGb3JTdWJ0cmVlIl9zKTsK
ICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogCiAgICAgYXV0byBub2RlQ2hhbmdlID0gbm9k
ZUNoYW5nZUZvck9iamVjdChheE9iamVjdCwgcGFyZW50SUQsIGF0dGFjaFdyYXBwZXIpOwpAQCAt
Mjk1LDcgKzI5NSw3IEBAIHZvaWQgQVhJc29sYXRlZFRyZWU6OmNvbGxlY3ROb2RlQ2hhbmdlc0Zv
clN1YnRyZWUoQVhDb3JlT2JqZWN0JiBheE9iamVjdCwgQVhJRCBwCiAKIHZvaWQgQVhJc29sYXRl
ZFRyZWU6OnVwZGF0ZU5vZGUoQVhDb3JlT2JqZWN0JiBheE9iamVjdCkKIHsKLSAgICBBWFRSQUNF
KCJBWElzb2xhdGVkVHJlZTo6dXBkYXRlTm9kZSIpOworICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRU
cmVlOjp1cGRhdGVOb2RlIl9zKTsKICAgICBBWExPRygmYXhPYmplY3QpOwogICAgIEFTU0VSVChp
c01haW5UaHJlYWQoKSk7CiAKQEAgLTMxMyw3ICszMTMsNyBAQCB2b2lkIEFYSXNvbGF0ZWRUcmVl
Ojp1cGRhdGVOb2RlKEFYQ29yZU9iamVjdCYgYXhPYmplY3QpCiAKIHZvaWQgQVhJc29sYXRlZFRy
ZWU6OnVwZGF0ZU5vZGVQcm9wZXJ0eShjb25zdCBBWENvcmVPYmplY3QmIGF4T2JqZWN0LCBBWFBy
b3BlcnR5TmFtZSBwcm9wZXJ0eSkKIHsKLSAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6dXBk
YXRlTm9kZVByb3BlcnR5Iik7CisgICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OnVwZGF0ZU5v
ZGVQcm9wZXJ0eSJfcyk7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIAogICAgIEFYUHJv
cGVydHlNYXAgcHJvcGVydHlNYXA7CkBAIC0zNDgsNyArMzQ4LDcgQEAgdm9pZCBBWElzb2xhdGVk
VHJlZTo6dXBkYXRlTm9kZVByb3BlcnR5KGNvbnN0IEFYQ29yZU9iamVjdCYgYXhPYmplY3QsIEFY
UHJvcGVydHkKIAogdm9pZCBBWElzb2xhdGVkVHJlZTo6dXBkYXRlQ2hpbGRyZW4oQVhDb3JlT2Jq
ZWN0JiBheE9iamVjdCkKIHsKLSAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6dXBkYXRlQ2hp
bGRyZW4iKTsKKyAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6dXBkYXRlQ2hpbGRyZW4iX3Mp
OwogICAgIEFYTE9HKCJGb3IgQVhPYmplY3Q6Iik7CiAgICAgQVhMT0coJmF4T2JqZWN0KTsKICAg
ICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwpAQCAtNDIyLDcgKzQyMiw3IEBAIHZvaWQgQVhJc29s
YXRlZFRyZWU6OnVwZGF0ZUNoaWxkcmVuKEFYQ29yZU9iamVjdCYgYXhPYmplY3QpCiAKIFJlZlB0
cjxBWElzb2xhdGVkT2JqZWN0PiBBWElzb2xhdGVkVHJlZTo6Zm9jdXNlZE5vZGUoKQogewotICAg
IEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjpmb2N1c2VkTm9kZSIpOworICAgIEFYVFJBQ0UoIkFY
SXNvbGF0ZWRUcmVlOjpmb2N1c2VkTm9kZSJfcyk7CiAgICAgUkVMRUFTRV9BU1NFUlQoIWlzTWFp
blRocmVhZCgpKTsKICAgICAvLyBBcHBseSBwZW5kaW5nIGNoYW5nZXMgaW4gY2FzZSBmb2N1cyBo
YXMgY2hhbmdlZCBhbmQgaGFzbid0IGJlZW4gdXBkYXRlZC4KICAgICBhcHBseVBlbmRpbmdDaGFu
Z2VzKCk7CkBAIC00MzQsMTQgKzQzNCwxNCBAQCBSZWZQdHI8QVhJc29sYXRlZE9iamVjdD4gQVhJ
c29sYXRlZFRyZWU6OmZvY3VzZWROb2RlKCkKIAogUmVmUHRyPEFYSXNvbGF0ZWRPYmplY3Q+IEFY
SXNvbGF0ZWRUcmVlOjpyb290Tm9kZSgpCiB7Ci0gICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6
OnJvb3ROb2RlIik7CisgICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OnJvb3ROb2RlIl9zKTsK
ICAgICBMb2NrZXIgbG9ja2VyIHsgbV9jaGFuZ2VMb2dMb2NrIH07CiAgICAgcmV0dXJuIG1fcm9v
dE5vZGU7CiB9CiAKIHZvaWQgQVhJc29sYXRlZFRyZWU6OnNldFJvb3ROb2RlKEFYSXNvbGF0ZWRP
YmplY3QqIHJvb3QpCiB7Ci0gICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OnNldFJvb3ROb2Rl
Iik7CisgICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OnNldFJvb3ROb2RlIl9zKTsKICAgICBB
U1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIEFTU0VSVChtX2NoYW5nZUxvZ0xvY2suaXNMb2Nr
ZWQoKSk7CiAgICAgQVNTRVJUKCFtX3Jvb3ROb2RlKTsKQEAgLTQ1Miw3ICs0NTIsNyBAQCB2b2lk
IEFYSXNvbGF0ZWRUcmVlOjpzZXRSb290Tm9kZShBWElzb2xhdGVkT2JqZWN0KiByb290KQogCiB2
b2lkIEFYSXNvbGF0ZWRUcmVlOjpzZXRGb2N1c2VkTm9kZUlEKEFYSUQgYXhJRCkKIHsKLSAgICBB
WFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6c2V0Rm9jdXNlZE5vZGVJRCIpOworICAgIEFYVFJBQ0Uo
IkFYSXNvbGF0ZWRUcmVlOjpzZXRGb2N1c2VkTm9kZUlEIl9zKTsKICAgICBBWExPRyhtYWtlU3Ry
aW5nKCJheElEICIsIGF4SUQubG9nZ2luZ1N0cmluZygpKSk7CiAgICAgQVNTRVJUKGlzTWFpblRo
cmVhZCgpKTsKIApAQCAtNDY2LDcgKzQ2Niw3IEBAIHZvaWQgQVhJc29sYXRlZFRyZWU6OnNldEZv
Y3VzZWROb2RlSUQoQVhJRCBheElEKQogCiB2b2lkIEFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVMb2Fk
aW5nUHJvZ3Jlc3MoZG91YmxlIG5ld1Byb2dyZXNzVmFsdWUpCiB7Ci0gICAgQVhUUkFDRSgiQVhJ
c29sYXRlZFRyZWU6OnVwZGF0ZUxvYWRpbmdQcm9ncmVzcyIpOworICAgIEFYVFJBQ0UoIkFYSXNv
bGF0ZWRUcmVlOjp1cGRhdGVMb2FkaW5nUHJvZ3Jlc3MiX3MpOwogICAgIEFYTE9HKG1ha2VTdHJp
bmcoIlVwZGF0aW5nIGxvYWRpbmcgcHJvZ3Jlc3MgdG8gIiwgbmV3UHJvZ3Jlc3NWYWx1ZSwgIiBm
b3IgdHJlZUlEICIsIHRyZWVJRCgpKSk7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIApA
QCAtNDc1LDcgKzQ3NSw3IEBAIHZvaWQgQVhJc29sYXRlZFRyZWU6OnVwZGF0ZUxvYWRpbmdQcm9n
cmVzcyhkb3VibGUgbmV3UHJvZ3Jlc3NWYWx1ZSkKIAogdm9pZCBBWElzb2xhdGVkVHJlZTo6cmVt
b3ZlTm9kZShjb25zdCBBWENvcmVPYmplY3QmIGF4T2JqZWN0KQogewotICAgIEFYVFJBQ0UoIkFY
SXNvbGF0ZWRUcmVlOjpyZW1vdmVOb2RlIik7CisgICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6
OnJlbW92ZU5vZGUiX3MpOwogICAgIEFYTE9HKG1ha2VTdHJpbmcoIm9iamVjdElEICIsIGF4T2Jq
ZWN0Lm9iamVjdElEKCkubG9nZ2luZ1N0cmluZygpKSk7CiAgICAgQVNTRVJUKGlzTWFpblRocmVh
ZCgpKTsKIApAQCAtNDg1LDcgKzQ4NSw3IEBAIHZvaWQgQVhJc29sYXRlZFRyZWU6OnJlbW92ZU5v
ZGUoY29uc3QgQVhDb3JlT2JqZWN0JiBheE9iamVjdCkKIAogdm9pZCBBWElzb2xhdGVkVHJlZTo6
cmVtb3ZlU3VidHJlZUZyb21Ob2RlTWFwKEFYSUQgb2JqZWN0SUQsIEFYQ29yZU9iamVjdCogYXhQ
YXJlbnQsIGNvbnN0IEhhc2hTZXQ8QVhJRD4mIGlkc1RvS2VlcCkKIHsKLSAgICBBWFRSQUNFKCJB
WElzb2xhdGVkVHJlZTo6cmVtb3ZlU3VidHJlZUZyb21Ob2RlTWFwIik7CisgICAgQVhUUkFDRSgi
QVhJc29sYXRlZFRyZWU6OnJlbW92ZVN1YnRyZWVGcm9tTm9kZU1hcCJfcyk7CiAgICAgQVhMT0co
bWFrZVN0cmluZygiUmVtb3Zpbmcgc3VidHJlZSBmb3Igb2JqZWN0SUQgIiwgb2JqZWN0SUQubG9n
Z2luZ1N0cmluZygpKSk7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIApAQCAtNTIzLDcg
KzUyMyw3IEBAIHZvaWQgQVhJc29sYXRlZFRyZWU6OnJlbW92ZVN1YnRyZWVGcm9tTm9kZU1hcChB
WElEIG9iamVjdElELCBBWENvcmVPYmplY3QqIGF4UGFyCiAKIHZvaWQgQVhJc29sYXRlZFRyZWU6
OmFwcGx5UGVuZGluZ0NoYW5nZXMoKQogewotICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjph
cHBseVBlbmRpbmdDaGFuZ2VzIik7CisgICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OmFwcGx5
UGVuZGluZ0NoYW5nZXMiX3MpOwogCiAgICAgLy8gSW4gaXNvbGF0ZWQgdHJlZSBtb2RlIDIsIG9u
bHkgYXBwbHkgcGVuZGluZyBjaGFuZ2VzIG9uIHRoZSBBWCB0aHJlYWQuCiAgICAgQVNTRVJUKG1f
dXNlZE9uQVhUaHJlYWQgPyAhaXNNYWluVGhyZWFkKCkgOiBpc01haW5UaHJlYWQoKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQWNjZXNzaWJpbGl0
eU9iamVjdE1hYy5tbQppbmRleCBhMjg5NTM4NzRjODA1NTEyN2Y4MGIyZmMzNjJkOWNlODIxZTcw
MWM0Li5mYzZlNDA4Y2ZjN2E5MjUzYTFlODk1MDdlMDA1NDk0MDM4YzlmYjNiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0TWFj
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FjY2Vzc2liaWxpdHlP
YmplY3RNYWMubW0KQEAgLTIyMiwyMCArMjIyLDIwIEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5T2Jq
ZWN0OjpzdWJyb2xlUGxhdGZvcm1TdHJpbmcoKSBjb25zdAogICAgIH0KIAogICAgIGlmIChpc01l
dGVyKCkpCi0gICAgICAgIHJldHVybiAiQVhNZXRlciI7CisgICAgICAgIHJldHVybiAiQVhNZXRl
ciJfczsKIAogI2lmIEVOQUJMRShNT0RFTF9FTEVNRU5UKQogICAgIGlmIChpc01vZGVsKCkpCi0g
ICAgICAgIHJldHVybiAiQVhNb2RlbCI7CisgICAgICAgIHJldHVybiAiQVhNb2RlbCJfczsKICNl
bmRpZgogCiAgICAgQWNjZXNzaWJpbGl0eVJvbGUgcm9sZSA9IHJvbGVWYWx1ZSgpOwogICAgIGlm
IChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpIb3Jpem9udGFsUnVsZSkKLSAgICAgICAgcmV0
dXJuICJBWENvbnRlbnRTZXBhcmF0b3IiOworICAgICAgICByZXR1cm4gIkFYQ29udGVudFNlcGFy
YXRvciJfczsKICAgICBpZiAocm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6VG9nZ2xlQnV0dG9u
KQogICAgICAgICByZXR1cm4gTlNBY2Nlc3NpYmlsaXR5VG9nZ2xlU3Vicm9sZTsKICAgICBpZiAo
cm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6Rm9vdGVyKQotICAgICAgICByZXR1cm4gIkFYRm9v
dGVyIjsKKyAgICAgICAgcmV0dXJuICJBWEZvb3RlciJfczsKICAgICBpZiAocm9sZSA9PSBBY2Nl
c3NpYmlsaXR5Um9sZTo6U3BpbkJ1dHRvblBhcnQpIHsKICAgICAgICAgaWYgKGlzSW5jcmVtZW50
b3IoKSkKICAgICAgICAgICAgIHJldHVybiBOU0FjY2Vzc2liaWxpdHlJbmNyZW1lbnRBcnJvd1N1
YnJvbGU7CkBAIC0yNDMsNzkgKzI0Myw3OSBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0eU9iamVjdDo6
c3Vicm9sZVBsYXRmb3JtU3RyaW5nKCkgY29uc3QKICAgICB9CiAKICAgICBpZiAoaXNGaWxlVXBs
b2FkQnV0dG9uKCkpCi0gICAgICAgIHJldHVybiAiQVhGaWxlVXBsb2FkQnV0dG9uIjsKKyAgICAg
ICAgcmV0dXJuICJBWEZpbGVVcGxvYWRCdXR0b24iX3M7CiAKICAgICBpZiAoaXNUcmVlSXRlbSgp
KQogICAgICAgICByZXR1cm4gTlNBY2Nlc3NpYmlsaXR5T3V0bGluZVJvd1N1YnJvbGU7CiAKICAg
ICBpZiAoaXNGaWVsZHNldCgpKQotICAgICAgICByZXR1cm4gIkFYRmllbGRzZXQiOworICAgICAg
ICByZXR1cm4gIkFYRmllbGRzZXQiX3M7CiAKICAgICBpZiAoaXNMaXN0KCkpIHsKICAgICAgICAg
aWYgKGlzVW5vcmRlcmVkTGlzdCgpIHx8IGlzT3JkZXJlZExpc3QoKSkKLSAgICAgICAgICAgIHJl
dHVybiAiQVhDb250ZW50TGlzdCI7CisgICAgICAgICAgICByZXR1cm4gIkFYQ29udGVudExpc3Qi
X3M7CiAgICAgICAgIGlmIChpc0Rlc2NyaXB0aW9uTGlzdCgpKQotICAgICAgICAgICAgcmV0dXJu
ICJBWERlc2NyaXB0aW9uTGlzdCI7CisgICAgICAgICAgICByZXR1cm4gIkFYRGVzY3JpcHRpb25M
aXN0Il9zOwogICAgIH0KIAogICAgIC8vIEFSSUEgY29udGVudCBzdWJyb2xlcy4KICAgICBzd2l0
Y2ggKHJvbGUpIHsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpMYW5kbWFya0Jhbm5lcjoK
LSAgICAgICAgcmV0dXJuICJBWExhbmRtYXJrQmFubmVyIjsKKyAgICAgICAgcmV0dXJuICJBWExh
bmRtYXJrQmFubmVyIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJrQ29t
cGxlbWVudGFyeToKLSAgICAgICAgcmV0dXJuICJBWExhbmRtYXJrQ29tcGxlbWVudGFyeSI7Cisg
ICAgICAgIHJldHVybiAiQVhMYW5kbWFya0NvbXBsZW1lbnRhcnkiX3M7CiAgICAgY2FzZSBBY2Nl
c3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtDb250ZW50SW5mbzoKLSAgICAgICAgcmV0dXJuICJBWExh
bmRtYXJrQ29udGVudEluZm8iOworICAgICAgICByZXR1cm4gIkFYTGFuZG1hcmtDb250ZW50SW5m
byJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpMYW5kbWFya01haW46Ci0gICAgICAg
IHJldHVybiAiQVhMYW5kbWFya01haW4iOworICAgICAgICByZXR1cm4gIkFYTGFuZG1hcmtNYWlu
Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJrTmF2aWdhdGlvbjoKLSAg
ICAgICAgcmV0dXJuICJBWExhbmRtYXJrTmF2aWdhdGlvbiI7CisgICAgICAgIHJldHVybiAiQVhM
YW5kbWFya05hdmlnYXRpb24iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1h
cmtEb2NSZWdpb246CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtSZWdpb246
Ci0gICAgICAgIHJldHVybiAiQVhMYW5kbWFya1JlZ2lvbiI7CisgICAgICAgIHJldHVybiAiQVhM
YW5kbWFya1JlZ2lvbiJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpMYW5kbWFya1Nl
YXJjaDoKLSAgICAgICAgcmV0dXJuICJBWExhbmRtYXJrU2VhcmNoIjsKKyAgICAgICAgcmV0dXJu
ICJBWExhbmRtYXJrU2VhcmNoIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxp
Y2F0aW9uQWxlcnQ6Ci0gICAgICAgIHJldHVybiAiQVhBcHBsaWNhdGlvbkFsZXJ0IjsKKyAgICAg
ICAgcmV0dXJuICJBWEFwcGxpY2F0aW9uQWxlcnQiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5
Um9sZTo6QXBwbGljYXRpb25BbGVydERpYWxvZzoKLSAgICAgICAgcmV0dXJuICJBWEFwcGxpY2F0
aW9uQWxlcnREaWFsb2ciOworICAgICAgICByZXR1cm4gIkFYQXBwbGljYXRpb25BbGVydERpYWxv
ZyJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvbkRpYWxvZzoKLSAg
ICAgICAgcmV0dXJuICJBWEFwcGxpY2F0aW9uRGlhbG9nIjsKKyAgICAgICAgcmV0dXJuICJBWEFw
cGxpY2F0aW9uRGlhbG9nIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0
aW9uR3JvdXA6CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb25UZXh0R3Jv
dXA6CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RmVlZDoKICAgICBjYXNlIEFjY2Vzc2li
aWxpdHlSb2xlOjpGb290bm90ZToKLSAgICAgICAgcmV0dXJuICJBWEFwcGxpY2F0aW9uR3JvdXAi
OworICAgICAgICByZXR1cm4gIkFYQXBwbGljYXRpb25Hcm91cCJfczsKICAgICBjYXNlIEFjY2Vz
c2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvbkxvZzoKLSAgICAgICAgcmV0dXJuICJBWEFwcGxpY2F0
aW9uTG9nIjsKKyAgICAgICAgcmV0dXJuICJBWEFwcGxpY2F0aW9uTG9nIl9zOwogICAgIGNhc2Ug
QWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uTWFycXVlZToKLSAgICAgICAgcmV0dXJuICJB
WEFwcGxpY2F0aW9uTWFycXVlZSI7CisgICAgICAgIHJldHVybiAiQVhBcHBsaWNhdGlvbk1hcnF1
ZWUiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb25TdGF0dXM6Ci0g
ICAgICAgIHJldHVybiAiQVhBcHBsaWNhdGlvblN0YXR1cyI7CisgICAgICAgIHJldHVybiAiQVhB
cHBsaWNhdGlvblN0YXR1cyJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNh
dGlvblRpbWVyOgotICAgICAgICByZXR1cm4gIkFYQXBwbGljYXRpb25UaW1lciI7CisgICAgICAg
IHJldHVybiAiQVhBcHBsaWNhdGlvblRpbWVyIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJv
bGU6OkRvY3VtZW50OgogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkdyYXBoaWNzRG9jdW1l
bnQ6Ci0gICAgICAgIHJldHVybiAiQVhEb2N1bWVudCI7CisgICAgICAgIHJldHVybiAiQVhEb2N1
bWVudCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpEb2N1bWVudEFydGljbGU6Ci0g
ICAgICAgIHJldHVybiAiQVhEb2N1bWVudEFydGljbGUiOworICAgICAgICByZXR1cm4gIkFYRG9j
dW1lbnRBcnRpY2xlIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRvY3VtZW50TWF0
aDoKLSAgICAgICAgcmV0dXJuICJBWERvY3VtZW50TWF0aCI7CisgICAgICAgIHJldHVybiAiQVhE
b2N1bWVudE1hdGgiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RG9jdW1lbnROb3Rl
OgotICAgICAgICByZXR1cm4gIkFYRG9jdW1lbnROb3RlIjsKKyAgICAgICAgcmV0dXJuICJBWERv
Y3VtZW50Tm90ZSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpVc2VySW50ZXJmYWNl
VG9vbHRpcDoKLSAgICAgICAgcmV0dXJuICJBWFVzZXJJbnRlcmZhY2VUb29sdGlwIjsKKyAgICAg
ICAgcmV0dXJuICJBWFVzZXJJbnRlcmZhY2VUb29sdGlwIl9zOwogICAgIGNhc2UgQWNjZXNzaWJp
bGl0eVJvbGU6OlRhYlBhbmVsOgotICAgICAgICByZXR1cm4gIkFYVGFiUGFuZWwiOworICAgICAg
ICByZXR1cm4gIkFYVGFiUGFuZWwiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RGVm
aW5pdGlvbjoKLSAgICAgICAgcmV0dXJuICJBWERlZmluaXRpb24iOworICAgICAgICByZXR1cm4g
IkFYRGVmaW5pdGlvbiJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpEZXNjcmlwdGlv
bkxpc3RUZXJtOgogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlRlcm06Ci0gICAgICAgIHJl
dHVybiAiQVhUZXJtIjsKKyAgICAgICAgcmV0dXJuICJBWFRlcm0iX3M7CiAgICAgY2FzZSBBY2Nl
c3NpYmlsaXR5Um9sZTo6RGVzY3JpcHRpb25MaXN0RGV0YWlsOgotICAgICAgICByZXR1cm4gIkFY
RGVzY3JpcHRpb24iOworICAgICAgICByZXR1cm4gIkFYRGVzY3JpcHRpb24iX3M7CiAgICAgY2Fz
ZSBBY2Nlc3NpYmlsaXR5Um9sZTo6V2ViQXBwbGljYXRpb246Ci0gICAgICAgIHJldHVybiAiQVhX
ZWJBcHBsaWNhdGlvbiI7CisgICAgICAgIHJldHVybiAiQVhXZWJBcHBsaWNhdGlvbiJfczsKICAg
ICAgICAgLy8gRGVmYXVsdCBkb2Vzbid0IHJldHVybiBhbnl0aGluZywgc28gcm9sZXMgZGVmaW5l
ZCBiZWxvdyBjYW4gYmUgY2hvc2VuLgogICAgIGRlZmF1bHQ6CiAgICAgICAgIGJyZWFrOwpAQCAt
MzIzLDUxICszMjMsNTEgQEAgU3RyaW5nIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnN1YnJvbGVQbGF0
Zm9ybVN0cmluZygpIGNvbnN0CiAKICAgICBpZiAocm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6
TWF0aEVsZW1lbnQpIHsKICAgICAgICAgaWYgKGlzTWF0aEZyYWN0aW9uKCkpCi0gICAgICAgICAg
ICByZXR1cm4gIkFYTWF0aEZyYWN0aW9uIjsKKyAgICAgICAgICAgIHJldHVybiAiQVhNYXRoRnJh
Y3Rpb24iX3M7CiAgICAgICAgIGlmIChpc01hdGhGZW5jZWQoKSkKLSAgICAgICAgICAgIHJldHVy
biAiQVhNYXRoRmVuY2VkIjsKKyAgICAgICAgICAgIHJldHVybiAiQVhNYXRoRmVuY2VkIl9zOwog
ICAgICAgICBpZiAoaXNNYXRoU3Vic2NyaXB0U3VwZXJzY3JpcHQoKSkKLSAgICAgICAgICAgIHJl
dHVybiAiQVhNYXRoU3Vic2NyaXB0U3VwZXJzY3JpcHQiOworICAgICAgICAgICAgcmV0dXJuICJB
WE1hdGhTdWJzY3JpcHRTdXBlcnNjcmlwdCJfczsKICAgICAgICAgaWYgKGlzTWF0aFJvdygpKQot
ICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhSb3ciOworICAgICAgICAgICAgcmV0dXJuICJBWE1h
dGhSb3ciX3M7CiAgICAgICAgIGlmIChpc01hdGhVbmRlck92ZXIoKSkKLSAgICAgICAgICAgIHJl
dHVybiAiQVhNYXRoVW5kZXJPdmVyIjsKKyAgICAgICAgICAgIHJldHVybiAiQVhNYXRoVW5kZXJP
dmVyIl9zOwogICAgICAgICBpZiAoaXNNYXRoU3F1YXJlUm9vdCgpKQotICAgICAgICAgICAgcmV0
dXJuICJBWE1hdGhTcXVhcmVSb290IjsKKyAgICAgICAgICAgIHJldHVybiAiQVhNYXRoU3F1YXJl
Um9vdCJfczsKICAgICAgICAgaWYgKGlzTWF0aFJvb3QoKSkKLSAgICAgICAgICAgIHJldHVybiAi
QVhNYXRoUm9vdCI7CisgICAgICAgICAgICByZXR1cm4gIkFYTWF0aFJvb3QiX3M7CiAgICAgICAg
IGlmIChpc01hdGhUZXh0KCkpCi0gICAgICAgICAgICByZXR1cm4gIkFYTWF0aFRleHQiOworICAg
ICAgICAgICAgcmV0dXJuICJBWE1hdGhUZXh0Il9zOwogICAgICAgICBpZiAoaXNNYXRoTnVtYmVy
KCkpCi0gICAgICAgICAgICByZXR1cm4gIkFYTWF0aE51bWJlciI7CisgICAgICAgICAgICByZXR1
cm4gIkFYTWF0aE51bWJlciJfczsKICAgICAgICAgaWYgKGlzTWF0aElkZW50aWZpZXIoKSkKLSAg
ICAgICAgICAgIHJldHVybiAiQVhNYXRoSWRlbnRpZmllciI7CisgICAgICAgICAgICByZXR1cm4g
IkFYTWF0aElkZW50aWZpZXIiX3M7CiAgICAgICAgIGlmIChpc01hdGhUYWJsZSgpKQotICAgICAg
ICAgICAgcmV0dXJuICJBWE1hdGhUYWJsZSI7CisgICAgICAgICAgICByZXR1cm4gIkFYTWF0aFRh
YmxlIl9zOwogICAgICAgICBpZiAoaXNNYXRoVGFibGVSb3coKSkKLSAgICAgICAgICAgIHJldHVy
biAiQVhNYXRoVGFibGVSb3ciOworICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhUYWJsZVJvdyJf
czsKICAgICAgICAgaWYgKGlzTWF0aFRhYmxlQ2VsbCgpKQotICAgICAgICAgICAgcmV0dXJuICJB
WE1hdGhUYWJsZUNlbGwiOworICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhUYWJsZUNlbGwiX3M7
CiAgICAgICAgIGlmIChpc01hdGhGZW5jZU9wZXJhdG9yKCkpCi0gICAgICAgICAgICByZXR1cm4g
IkFYTWF0aEZlbmNlT3BlcmF0b3IiOworICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhGZW5jZU9w
ZXJhdG9yIl9zOwogICAgICAgICBpZiAoaXNNYXRoU2VwYXJhdG9yT3BlcmF0b3IoKSkKLSAgICAg
ICAgICAgIHJldHVybiAiQVhNYXRoU2VwYXJhdG9yT3BlcmF0b3IiOworICAgICAgICAgICAgcmV0
dXJuICJBWE1hdGhTZXBhcmF0b3JPcGVyYXRvciJfczsKICAgICAgICAgaWYgKGlzTWF0aE9wZXJh
dG9yKCkpCi0gICAgICAgICAgICByZXR1cm4gIkFYTWF0aE9wZXJhdG9yIjsKKyAgICAgICAgICAg
IHJldHVybiAiQVhNYXRoT3BlcmF0b3IiX3M7CiAgICAgICAgIGlmIChpc01hdGhNdWx0aXNjcmlw
dCgpKQotICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhNdWx0aXNjcmlwdCI7CisgICAgICAgICAg
ICByZXR1cm4gIkFYTWF0aE11bHRpc2NyaXB0Il9zOwogICAgIH0KIAogICAgIGlmIChyb2xlID09
IEFjY2Vzc2liaWxpdHlSb2xlOjpWaWRlbykKLSAgICAgICAgcmV0dXJuICJBWFZpZGVvIjsKKyAg
ICAgICAgcmV0dXJuICJBWFZpZGVvIl9zOwogICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxpdHlS
b2xlOjpBdWRpbykKLSAgICAgICAgcmV0dXJuICJBWEF1ZGlvIjsKKyAgICAgICAgcmV0dXJuICJB
WEF1ZGlvIl9zOwogICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpEZXRhaWxzKQot
ICAgICAgICByZXR1cm4gIkFYRGV0YWlscyI7CisgICAgICAgIHJldHVybiAiQVhEZXRhaWxzIl9z
OwogICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpTdW1tYXJ5KQotICAgICAgICBy
ZXR1cm4gIkFYU3VtbWFyeSI7CisgICAgICAgIHJldHVybiAiQVhTdW1tYXJ5Il9zOwogICAgIGlm
IChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpUaW1lKQotICAgICAgICByZXR1cm4gIkFYVGlt
ZUdyb3VwIjsKKyAgICAgICAgcmV0dXJuICJBWFRpbWVHcm91cCJfczsKIAogICAgIGlmIChpc01l
ZGlhVGltZWxpbmUoKSkKICAgICAgICAgcmV0dXJuIE5TQWNjZXNzaWJpbGl0eVRpbWVsaW5lU3Vi
cm9sZTsKQEAgLTM3NiwyNSArMzc2LDI1IEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojpz
dWJyb2xlUGxhdGZvcm1TdHJpbmcoKSBjb25zdAogICAgICAgICByZXR1cm4gTlNBY2Nlc3NpYmls
aXR5U3dpdGNoU3Vicm9sZTsKIAogICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpJ
bnNlcnRpb24pCi0gICAgICAgIHJldHVybiAiQVhJbnNlcnRTdHlsZUdyb3VwIjsKKyAgICAgICAg
cmV0dXJuICJBWEluc2VydFN0eWxlR3JvdXAiX3M7CiAgICAgaWYgKHJvbGUgPT0gQWNjZXNzaWJp
bGl0eVJvbGU6OkRlbGV0aW9uKQotICAgICAgICByZXR1cm4gIkFYRGVsZXRlU3R5bGVHcm91cCI7
CisgICAgICAgIHJldHVybiAiQVhEZWxldGVTdHlsZUdyb3VwIl9zOwogICAgIGlmIChyb2xlID09
IEFjY2Vzc2liaWxpdHlSb2xlOjpTdXBlcnNjcmlwdCkKLSAgICAgICAgcmV0dXJuICJBWFN1cGVy
c2NyaXB0U3R5bGVHcm91cCI7CisgICAgICAgIHJldHVybiAiQVhTdXBlcnNjcmlwdFN0eWxlR3Jv
dXAiX3M7CiAgICAgaWYgKHJvbGUgPT0gQWNjZXNzaWJpbGl0eVJvbGU6OlN1YnNjcmlwdCkKLSAg
ICAgICAgcmV0dXJuICJBWFN1YnNjcmlwdFN0eWxlR3JvdXAiOworICAgICAgICByZXR1cm4gIkFY
U3Vic2NyaXB0U3R5bGVHcm91cCJfczsKIAogICAgIHN3aXRjaCAocm9sZSkgewogICAgIGNhc2Ug
QWNjZXNzaWJpbGl0eVJvbGU6OlJ1YnlCYXNlOgotICAgICAgICByZXR1cm4gIkFYUnVieUJhc2Ui
OworICAgICAgICByZXR1cm4gIkFYUnVieUJhc2UiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5
Um9sZTo6UnVieUJsb2NrOgotICAgICAgICByZXR1cm4gIkFYUnVieUJsb2NrIjsKKyAgICAgICAg
cmV0dXJuICJBWFJ1YnlCbG9jayJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpSdWJ5
SW5saW5lOgotICAgICAgICByZXR1cm4gIkFYUnVieUlubGluZSI7CisgICAgICAgIHJldHVybiAi
QVhSdWJ5SW5saW5lIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlJ1YnlSdW46Ci0g
ICAgICAgIHJldHVybiAiQVhSdWJ5UnVuIjsKKyAgICAgICAgcmV0dXJuICJBWFJ1YnlSdW4iX3M7
CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6UnVieVRleHQ6Ci0gICAgICAgIHJldHVybiAi
QVhSdWJ5VGV4dCI7CisgICAgICAgIHJldHVybiAiQVhSdWJ5VGV4dCJfczsKICAgICBkZWZhdWx0
OgogICAgICAgICBicmVhazsKICAgICB9CkBAIC00MDMsMTcgKzQwMywxNyBAQCBTdHJpbmcgQWNj
ZXNzaWJpbGl0eU9iamVjdDo6c3Vicm9sZVBsYXRmb3JtU3RyaW5nKCkgY29uc3QKICAgICAgICAg
dXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKICAgICAgICAgYXV0byB0YWcgPSB0YWdOYW1lKCk7
CiAgICAgICAgIGlmICh0YWcgPT0ga2JkVGFnKQotICAgICAgICAgICAgcmV0dXJuIEAiQVhLZXli
b2FyZElucHV0U3R5bGVHcm91cCI7CisgICAgICAgICAgICByZXR1cm4gIkFYS2V5Ym9hcmRJbnB1
dFN0eWxlR3JvdXAiX3M7CiAgICAgICAgIGlmICh0YWcgPT0gY29kZVRhZykKLSAgICAgICAgICAg
IHJldHVybiBAIkFYQ29kZVN0eWxlR3JvdXAiOworICAgICAgICAgICAgcmV0dXJuICJBWENvZGVT
dHlsZUdyb3VwIl9zOwogICAgICAgICBpZiAodGFnID09IHByZVRhZykKLSAgICAgICAgICAgIHJl
dHVybiBAIkFYUHJlZm9ybWF0dGVkU3R5bGVHcm91cCI7CisgICAgICAgICAgICByZXR1cm4gIkFY
UHJlZm9ybWF0dGVkU3R5bGVHcm91cCJfczsKICAgICAgICAgaWYgKHRhZyA9PSBzYW1wVGFnKQot
ICAgICAgICAgICAgcmV0dXJuIEAiQVhTYW1wbGVTdHlsZUdyb3VwIjsKKyAgICAgICAgICAgIHJl
dHVybiAiQVhTYW1wbGVTdHlsZUdyb3VwIl9zOwogICAgICAgICBpZiAodGFnID09IHZhclRhZykK
LSAgICAgICAgICAgIHJldHVybiBAIkFYVmFyaWFibGVTdHlsZUdyb3VwIjsKKyAgICAgICAgICAg
IHJldHVybiAiQVhWYXJpYWJsZVN0eWxlR3JvdXAiX3M7CiAgICAgICAgIGlmICh0YWcgPT0gY2l0
ZVRhZykKLSAgICAgICAgICAgIHJldHVybiBAIkFYQ2l0ZVN0eWxlR3JvdXAiOworICAgICAgICAg
ICAgcmV0dXJuICJBWENpdGVTdHlsZUdyb3VwIl9zOwogICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogICAgIH0KQEAgLTQzNiw3ICs0MzYsNyBA
QCBTdHJpbmcgQWNjZXNzaWJpbGl0eU9iamVjdDo6cm9sZVBsYXRmb3JtRGVzY3JpcHRpb24oKSBj
b25zdAogCiAgICAgICAgIHN3aXRjaCAocm9sZSkgewogICAgICAgICBjYXNlIEFjY2Vzc2liaWxp
dHlSb2xlOjpBdWRpbzoKLSAgICAgICAgICAgIHJldHVybiBsb2NhbGl6ZWRNZWRpYUNvbnRyb2xF
bGVtZW50U3RyaW5nKCJBdWRpb0VsZW1lbnQiKTsKKyAgICAgICAgICAgIHJldHVybiBsb2NhbGl6
ZWRNZWRpYUNvbnRyb2xFbGVtZW50U3RyaW5nKCJBdWRpb0VsZW1lbnQiX3MpOwogICAgICAgICBj
YXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpEZWZpbml0aW9uOgogICAgICAgICAgICAgcmV0dXJuIEFY
RGVmaW5pdGlvblRleHQoKTsKICAgICAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RGVzY3Jp
cHRpb25MaXN0VGVybToKQEAgLTQ1Myw5ICs0NTMsOSBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0eU9i
amVjdDo6cm9sZVBsYXRmb3JtRGVzY3JpcHRpb24oKSBjb25zdAogICAgICAgICBjYXNlIEFjY2Vz
c2liaWxpdHlSb2xlOjpNYXJrOgogICAgICAgICAgICAgcmV0dXJuIEFYTWFya1RleHQoKTsKICAg
ICAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VmlkZW86Ci0gICAgICAgICAgICByZXR1cm4g
bG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudFN0cmluZygiVmlkZW9FbGVtZW50Iik7CisgICAg
ICAgICAgICByZXR1cm4gbG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudFN0cmluZygiVmlkZW9F
bGVtZW50Il9zKTsKICAgICAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6R3JhcGhpY3NEb2N1
bWVudDoKLSAgICAgICAgICAgIHJldHVybiBBWEFSSUFDb250ZW50R3JvdXBUZXh0KEAiQVJJQURv
Y3VtZW50Iik7CisgICAgICAgICAgICByZXR1cm4gQVhBUklBQ29udGVudEdyb3VwVGV4dCgiQVJJ
QURvY3VtZW50Iik7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICByZXR1cm4gU3RyaW5n
KCk7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9Bbmlt
YXRpb25FZmZlY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0FuaW1hdGlvbkVmZmVj
dC5jcHAKaW5kZXggMjM5YmQwNDVmODBhZWE4ZGNkZjMxYzVlMGM0Mzg4YTAyYjUyOTU1Mi4uNDMx
ZmRlYTE1NzI2MjcyYTJiNjhmOTc0YjI2ZTBhZTZhNTVmYzBhYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYW5pbWF0aW9uL0FuaW1hdGlvbkVmZmVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYW5pbWF0aW9uL0FuaW1hdGlvbkVmZmVjdC5jcHAKQEAgLTY5LDcgKzY5LDcgQEAgRWZmZWN0
VGltaW5nIEFuaW1hdGlvbkVmZmVjdDo6Z2V0VGltaW5nKCkgY29uc3QKICAgICB0aW1pbmcuaXRl
cmF0aW9uU3RhcnQgPSBtX2l0ZXJhdGlvblN0YXJ0OwogICAgIHRpbWluZy5pdGVyYXRpb25zID0g
bV9pdGVyYXRpb25zOwogICAgIGlmIChtX2l0ZXJhdGlvbkR1cmF0aW9uID09IDBfcykKLSAgICAg
ICAgdGltaW5nLmR1cmF0aW9uID0gImF1dG8iOworICAgICAgICB0aW1pbmcuZHVyYXRpb24gPSAi
YXV0byJfczsKICAgICBlbHNlCiAgICAgICAgIHRpbWluZy5kdXJhdGlvbiA9IHNlY29uZHNUb1dl
YkFuaW1hdGlvbnNBUElUaW1lKG1faXRlcmF0aW9uRHVyYXRpb24pOwogICAgIHRpbWluZy5kaXJl
Y3Rpb24gPSBtX2RpcmVjdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlv
bi9Eb2N1bWVudFRpbWVsaW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9Eb2N1bWVu
dFRpbWVsaW5lLmNwcAppbmRleCAzYzk1OWU5Y2JkNGE4NzEyNDRlZTJmNDViMGI1YWEwNmUxYzVm
ZDQ1Li5jODZmMmFkNTVjNGIxMjhlZWNlZGI4MDEwZjRjNDcxM2JhZjQ2NzY3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRG9jdW1lbnRUaW1lbGluZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RvY3VtZW50VGltZWxpbmUuY3BwCkBAIC00NTIsNyArNDUy
LDcgQEAgRXhjZXB0aW9uT3I8UmVmPFdlYkFuaW1hdGlvbj4+IERvY3VtZW50VGltZWxpbmU6OmFu
aW1hdGUoUmVmPEN1c3RvbUVmZmVjdENhbGxiYWMKICAgICBpZiAoIW1fZG9jdW1lbnQpCiAgICAg
ICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9OwogCi0gICAgU3RyaW5n
IGlkID0gIiI7CisgICAgU3RyaW5nIGlkID0gZW1wdHlTdHJpbmcoKTsKICAgICBzdGQ6OnZhcmlh
bnQ8RnJhbWVzUGVyU2Vjb25kLCBBbmltYXRpb25GcmFtZVJhdGVQcmVzZXQ+IGZyYW1lUmF0ZSA9
IEFuaW1hdGlvbkZyYW1lUmF0ZVByZXNldDo6QXV0bzsKICAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6
dmFyaWFudDxkb3VibGUsIEVmZmVjdFRpbWluZz4+IGN1c3RvbUVmZmVjdE9wdGlvbnM7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9FZmZlY3RUaW1pbmcuaCBiL1NvdXJj
ZS9XZWJDb3JlL2FuaW1hdGlvbi9FZmZlY3RUaW1pbmcuaAppbmRleCA0ZGQ1ZGNjMzczY2NkODMz
MGRlY2EzNjE3ZDk5OGU2MTMzOTMyZTYxLi4yMTA3M2ZhNDczMDNmNjRmZDJiYTI2MTlhZTkxODdm
NTgxNTk1MDZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRWZmZWN0VGlt
aW5nLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0VmZmVjdFRpbWluZy5oCkBAIC0z
MywxMiArMzMsMTIgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RydWN0IEVmZmVjdFRpbWlu
ZyB7Ci0gICAgc3RkOjp2YXJpYW50PGRvdWJsZSwgU3RyaW5nPiBkdXJhdGlvbiB7ICJhdXRvIiB9
OworICAgIHN0ZDo6dmFyaWFudDxkb3VibGUsIFN0cmluZz4gZHVyYXRpb24geyAiYXV0byJfcyB9
OwogICAgIGRvdWJsZSBkZWxheSB7IDAgfTsKICAgICBkb3VibGUgZW5kRGVsYXkgeyAwIH07CiAg
ICAgZG91YmxlIGl0ZXJhdGlvblN0YXJ0IHsgMCB9OwogICAgIGRvdWJsZSBpdGVyYXRpb25zIHsg
MSB9OwotICAgIFN0cmluZyBlYXNpbmcgeyAibGluZWFyIiB9OworICAgIFN0cmluZyBlYXNpbmcg
eyAibGluZWFyIl9zIH07CiAgICAgRmlsbE1vZGUgZmlsbCB7IEZpbGxNb2RlOjpBdXRvIH07CiAg
ICAgUGxheWJhY2tEaXJlY3Rpb24gZGlyZWN0aW9uIHsgUGxheWJhY2tEaXJlY3Rpb246Ok5vcm1h
bCB9OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVm
ZmVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuY3BwCmlu
ZGV4IDcyMzc2ODUwM2QxMGRiNDk2N2IyZjhjNjBlYjkxNDE4OTc2NmJmN2QuLmQ4NDExYzkzZTQ3
NzAyZjU2N2FkNjE0MDM2NmVjZTc2NjM1YzA0NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0
aW9uL0tleWZyYW1lRWZmZWN0LmNwcApAQCAtODIsMTEgKzgyLDExIEBAIFN0cmluZyBLZXlmcmFt
ZUVmZmVjdDo6Q1NTUHJvcGVydHlJRFRvSURMQXR0cmlidXRlTmFtZShDU1NQcm9wZXJ0eUlEIGNz
c1Byb3BlcnR5CiAKICAgICAvLyAyLiBJZiBwcm9wZXJ0eSByZWZlcnMgdG8gdGhlIENTUyBmbG9h
dCBwcm9wZXJ0eSwgcmV0dXJuIHRoZSBzdHJpbmcgImNzc0Zsb2F0Ii4KICAgICBpZiAoY3NzUHJv
cGVydHlJZCA9PSBDU1NQcm9wZXJ0eUZsb2F0KQotICAgICAgICByZXR1cm4gImNzc0Zsb2F0IjsK
KyAgICAgICAgcmV0dXJuICJjc3NGbG9hdCJfczsKIAogICAgIC8vIDMuIElmIHByb3BlcnR5IHJl
ZmVycyB0byB0aGUgQ1NTIG9mZnNldCBwcm9wZXJ0eSwgcmV0dXJuIHRoZSBzdHJpbmcgImNzc09m
ZnNldCIuCiAgICAgaWYgKGNzc1Byb3BlcnR5SWQgPT0gQ1NTUHJvcGVydHlPZmZzZXQpCi0gICAg
ICAgIHJldHVybiAiY3NzT2Zmc2V0IjsKKyAgICAgICAgcmV0dXJuICJjc3NPZmZzZXQiX3M7CiAK
ICAgICAvLyA0LiBPdGhlcndpc2UsIHJldHVybiB0aGUgcmVzdWx0IG9mIGFwcGx5aW5nIHRoZSBD
U1MgcHJvcGVydHkgdG8gSURMIGF0dHJpYnV0ZSBhbGdvcml0aG0gW0NTU09NXSB0byBwcm9wZXJ0
eS4KICAgICByZXR1cm4gZ2V0SlNQcm9wZXJ0eU5hbWUoY3NzUHJvcGVydHlJZCk7CkBAIC02NjAs
NyArNjYwLDcgQEAgYXV0byBLZXlmcmFtZUVmZmVjdDo6Z2V0S2V5ZnJhbWVzKERvY3VtZW50JiBk
b2N1bWVudCkgLT4gVmVjdG9yPENvbXB1dGVkS2V5ZnJhbWUKICAgICAgICAgY29tcHV0ZWRLZXlm
cmFtZS5vZmZzZXQgPSBrZXlmcmFtZS5rZXkoKTsKICAgICAgICAgY29tcHV0ZWRLZXlmcmFtZS5j
b21wdXRlZE9mZnNldCA9IGtleWZyYW1lLmtleSgpOwogICAgICAgICAvLyBGb3IgQ1NTIHRyYW5z
aXRpb25zLCBhbGwga2V5ZnJhbWVzIHNob3VsZCByZXR1cm4gImxpbmVhciIgc2luY2UgdGhlIGVm
ZmVjdCdzIGdsb2JhbCB0aW1pbmcgZnVuY3Rpb24gYXBwbGllcy4KLSAgICAgICAgY29tcHV0ZWRL
ZXlmcmFtZS5lYXNpbmcgPSBpczxDU1NUcmFuc2l0aW9uPihhbmltYXRpb24oKSkgPyAibGluZWFy
IiA6IHRpbWluZ0Z1bmN0aW9uRm9yQmxlbmRpbmdLZXlmcmFtZShrZXlmcmFtZSktPmNzc1RleHQo
KTsKKyAgICAgICAgY29tcHV0ZWRLZXlmcmFtZS5lYXNpbmcgPSBpczxDU1NUcmFuc2l0aW9uPihh
bmltYXRpb24oKSkgPyAibGluZWFyIl9zIDogdGltaW5nRnVuY3Rpb25Gb3JCbGVuZGluZ0tleWZy
YW1lKGtleWZyYW1lKS0+Y3NzVGV4dCgpOwogCiAgICAgICAgIGlmIChkb2N1bWVudC5zZXR0aW5n
cygpLndlYkFuaW1hdGlvbnNDb21wb3NpdGVPcGVyYXRpb25zRW5hYmxlZCgpKSB7CiAgICAgICAg
ICAgICBpZiAoYXV0byBjb21wb3NpdGVPcGVyYXRpb24gPSBrZXlmcmFtZS5jb21wb3NpdGVPcGVy
YXRpb24oKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0dDQ29udHJv
bGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9HQ0NvbnRyb2xsZXIuY3BwCmlu
ZGV4IDVmMTFlMGM2MzQ4NzQxNDNhYjMxODVhMDFkZjlmYjJlZTM2ZjI1YWQuLjVmOTM0OTE3NTZm
MjdlYzA0ZDRkZWE5ZDM4MWI3YTY0YzZjNzkyMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0dDQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvR0NDb250cm9sbGVyLmNwcApAQCAtNTksNyArNTksNyBAQCBHQ0NvbnRyb2xsZXI6OkdD
Q29udHJvbGxlcigpCiB7CiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VGbGFnOwogICAg
IHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbXSB7Ci0gICAgICAgIFBBTDo6cmVnaXN0ZXJOb3Rp
ZnlDYWxsYmFjaygiY29tLmFwcGxlLldlYktpdC5kdW1wR0NIZWFwIiwgW10geworICAgICAgICBQ
QUw6OnJlZ2lzdGVyTm90aWZ5Q2FsbGJhY2soImNvbS5hcHBsZS5XZWJLaXQuZHVtcEdDSGVhcCJf
cywgW10gewogICAgICAgICAgICAgR0NDb250cm9sbGVyOjpzaW5nbGV0b24oKS5kdW1wSGVhcCgp
OwogICAgICAgICB9KTsKICAgICB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTQ3VzdG9tRWxlbWVudEludGVyZmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0N1c3RvbUVsZW1lbnRJbnRlcmZhY2UuY3BwCmluZGV4IDRlMWQyNGVlOTQxNzRj
OWRmNzZkMmIyZTUwNzliNzdkZDBlMjZmOTguLmE5MWUwMmYyM2Q3NTAzMGE5YjlhYmY4OWEzNmY4
NGFiMTliYTg4YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3Vz
dG9tRWxlbWVudEludGVyZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNDdXN0b21FbGVtZW50SW50ZXJmYWNlLmNwcApAQCAtMjEwLDcgKzIxMCw3IEBAIHZvaWQgSlND
dXN0b21FbGVtZW50SW50ZXJmYWNlOjp1cGdyYWRlRWxlbWVudChFbGVtZW50JiBlbGVtZW50KQog
CiAgICAgaWYgKG1faXNTaGFkb3dEaXNhYmxlZCAmJiBlbGVtZW50LnNoYWRvd1Jvb3QoKSkgewog
ICAgICAgICBlbGVtZW50LmNsZWFyUmVhY3Rpb25RdWV1ZUZyb21GYWlsZWRDdXN0b21FbGVtZW50
KCk7Ci0gICAgICAgIHJlcG9ydEV4Y2VwdGlvbihsZXhpY2FsR2xvYmFsT2JqZWN0LCBjcmVhdGVE
T01FeGNlcHRpb24obGV4aWNhbEdsb2JhbE9iamVjdCwgTm90U3VwcG9ydGVkRXJyb3IsICJGYWls
ZWQgdG8gdXBncmFkZSBhbiBlbGVtZW50IHdpdGggc2hhZG93IHJvb3Q6IHRoZSBjdXN0b20gZWxl
bWVudCBkZWZpbml0aW9uIGRpc2FsbG93cyBzaGFkb3cgcm9vdHMuIikpOworICAgICAgICByZXBv
cnRFeGNlcHRpb24obGV4aWNhbEdsb2JhbE9iamVjdCwgY3JlYXRlRE9NRXhjZXB0aW9uKGxleGlj
YWxHbG9iYWxPYmplY3QsIE5vdFN1cHBvcnRlZEVycm9yLCAiRmFpbGVkIHRvIHVwZ3JhZGUgYW4g
ZWxlbWVudCB3aXRoIHNoYWRvdyByb290OiB0aGUgY3VzdG9tIGVsZW1lbnQgZGVmaW5pdGlvbiBk
aXNhbGxvd3Mgc2hhZG93IHJvb3RzLiJfcykpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBA
IC0yMzEsNyArMjMxLDcgQEAgdm9pZCBKU0N1c3RvbUVsZW1lbnRJbnRlcmZhY2U6OnVwZ3JhZGVF
bGVtZW50KEVsZW1lbnQmIGVsZW1lbnQpCiAgICAgRWxlbWVudCogd3JhcHBlZEVsZW1lbnQgPSBK
U0VsZW1lbnQ6OnRvV3JhcHBlZCh2bSwgcmV0dXJuZWRFbGVtZW50KTsKICAgICBpZiAoIXdyYXBw
ZWRFbGVtZW50IHx8IHdyYXBwZWRFbGVtZW50ICE9ICZlbGVtZW50KSB7CiAgICAgICAgIGVsZW1l
bnQuY2xlYXJSZWFjdGlvblF1ZXVlRnJvbUZhaWxlZEN1c3RvbUVsZW1lbnQoKTsKLSAgICAgICAg
cmVwb3J0RXhjZXB0aW9uKGxleGljYWxHbG9iYWxPYmplY3QsIGNyZWF0ZURPTUV4Y2VwdGlvbihs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBUeXBlRXJyb3IsICJDdXN0b20gZWxlbWVudCBjb25zdHJ1Y3Rv
ciByZXR1cm5lZCBhIHdyb25nIGVsZW1lbnQiKSk7CisgICAgICAgIHJlcG9ydEV4Y2VwdGlvbihs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBjcmVhdGVET01FeGNlcHRpb24obGV4aWNhbEdsb2JhbE9iamVj
dCwgVHlwZUVycm9yLCAiQ3VzdG9tIGVsZW1lbnQgY29uc3RydWN0b3IgcmV0dXJuZWQgYSB3cm9u
ZyBlbGVtZW50Il9zKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgZWxlbWVudC5zZXRJ
c0RlZmluZWRDdXN0b21FbGVtZW50KCp0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydE51bWJlcnMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NQ29udmVydE51bWJlcnMuaAppbmRleCBiN2I2MTNkZDZjMzdlZDExN2I5MjIw
MjBhYzEzYTNkN2M1NWJiY2FkLi4yOTQxM2Q4ZDk4OTY5MDEwZmFhMWMzNTRlYTNhODliYWM0MDBi
MDcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnRO
dW1iZXJzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Db252ZXJ0TnVt
YmVycy5oCkBAIC0yOTMsNyArMjkzLDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQ29udmVydGVyPElE
TEZsb2F0PiA6IERlZmF1bHRDb252ZXJ0ZXI8SURMRmxvYXQ+IHsKICAgICAgICAgZG91YmxlIG51
bWJlciA9IHZhbHVlLnRvTnVtYmVyKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICAgICAgUkVU
VVJOX0lGX0VYQ0VQVElPTihzY29wZSwgMC4wKTsKICAgICAgICAgaWYgKFVOTElLRUxZKG51bWJl
ciA8IHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+Ojpsb3dlc3QoKSB8fCBudW1iZXIgPiBzdGQ6
Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6bWF4KCkpKQotICAgICAgICAgICAgdGhyb3dUeXBlRXJy
b3IoJmxleGljYWxHbG9iYWxPYmplY3QsIHNjb3BlLCAiVGhlIHByb3ZpZGVkIHZhbHVlIGlzIG91
dHNpZGUgdGhlIHJhbmdlIG9mIGEgZmxvYXQiKTsKKyAgICAgICAgICAgIHRocm93VHlwZUVycm9y
KCZsZXhpY2FsR2xvYmFsT2JqZWN0LCBzY29wZSwgIlRoZSBwcm92aWRlZCB2YWx1ZSBpcyBvdXRz
aWRlIHRoZSByYW5nZSBvZiBhIGZsb2F0Il9zKTsKICAgICAgICAgaWYgKFVOTElLRUxZKCFzdGQ6
OmlzZmluaXRlKG51bWJlcikpKQogICAgICAgICAgICAgdGhyb3dOb25GaW5pdGVUeXBlRXJyb3Io
bGV4aWNhbEdsb2JhbE9iamVjdCwgc2NvcGUpOwogICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
ZmxvYXQ+KG51bWJlcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0V4ZWNTdGF0ZUluc3RydW1lbnRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNFeGVjU3RhdGVJbnN0cnVtZW50YXRpb24uaAppbmRleCBjMDQ0YjA3YWJmYzdiNjllMzE5MTI4
MzNiNDk0NDY4MWJjMzI4MDUzLi4zMTAwZmFiZjJkODU3MTM1YzhhNTNlOTQ2N2JlMjFjNzc4OWU2
NGNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V4ZWNTdGF0ZUlu
c3RydW1lbnRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXhlY1N0
YXRlSW5zdHJ1bWVudGF0aW9uLmgKQEAgLTQ1LDcgKzQ1LDcgQEAgaW5saW5lIHZvaWQgSlNFeGVj
U3RhdGU6Omluc3RydW1lbnRGdW5jdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0
LCBjb24KICAgICAgICAgbGluZU51bWJlciA9IGNhbGxEYXRhLmpzLmZ1bmN0aW9uRXhlY3V0YWJs
ZS0+Zmlyc3RMaW5lKCk7CiAgICAgICAgIGNvbHVtbk51bWJlciA9IGNhbGxEYXRhLmpzLmZ1bmN0
aW9uRXhlY3V0YWJsZS0+c3RhcnRDb2x1bW4oKTsKICAgICB9IGVsc2UKLSAgICAgICAgcmVzb3Vy
Y2VOYW1lID0gInVuZGVmaW5lZCI7CisgICAgICAgIHJlc291cmNlTmFtZSA9ICJ1bmRlZmluZWQi
X3M7CiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsQ2FsbEZ1bmN0aW9uKGNvbnRl
eHQsIHJlc291cmNlTmFtZSwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcAppbmRleCBjZDRi
M2YwNzZkZjczOTkwNTZmMjc4YzY1ZTcyZDMyZDI0NzlkNDYwLi40ODRkOGMyZGYzN2JlZjdkMTdk
YTQxYjcwMzIyOTRiMWQ5Y2ZmYjE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9TY3JpcHRDb250cm9sbGVyLmNwcApAQCAtNjMzLDcgKzYzMyw3IEBAIFZhbHVlT3JFeGNlcHRp
b24gU2NyaXB0Q29udHJvbGxlcjo6Y2FsbEluV29ybGQoUnVuSmF2YVNjcmlwdFBhcmFtZXRlcnMm
JiBwYXJhbWV0CiAgICAgICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX0NBVENIX1NDT1BFKGdsb2Jh
bE9iamVjdC52bSgpKTsKICAgICAgICAgYXV0byBqc0FyZ3VtZW50ID0gc2VyaWFsaXplZEFyZ3Vt
ZW50LT5kZXNlcmlhbGl6ZShnbG9iYWxPYmplY3QsICZnbG9iYWxPYmplY3QpOwogICAgICAgICBp
ZiAoVU5MSUtFTFkoc2NvcGUuZXhjZXB0aW9uKCkpKSB7Ci0gICAgICAgICAgICBlcnJvck1lc3Nh
Z2UgPSAiVW5hYmxlIHRvIGRlc2VyaWFsaXplIGFyZ3VtZW50IHRvIGV4ZWN1dGUgYXN5bmNocm9u
b3VzIEphdmFTY3JpcHQgZnVuY3Rpb24iOworICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gIlVu
YWJsZSB0byBkZXNlcmlhbGl6ZSBhcmd1bWVudCB0byBleGVjdXRlIGFzeW5jaHJvbm91cyBKYXZh
U2NyaXB0IGZ1bmN0aW9uIl9zOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLm1tIGIvU291
cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLm1tCmluZGV4IDE1Y2I2YTA4ZTVj
MzVjMTcyMmNkZDM3Y2EzOGFjNWNhOTQ0ZmExNTkuLmFlNDIyMTE0MWVlY2I4OTE1MWM2MzE2MTBl
MjIyMjI0Y2NmZGRmYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29i
amNfcnVudGltZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRp
bWUubW0KQEAgLTE3Niw3ICsxNzYsNyBAQCBib29sIE9iamNBcnJheTo6c2V0VmFsdWVBdChKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgdW5zaWduZWQgaW50IGluZAogICAgIH0K
IAogICAgIGlmIChpbmRleCA+IFtfYXJyYXkgY291bnRdKSB7Ci0gICAgICAgIHRocm93RXhjZXB0
aW9uKGxleGljYWxHbG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVSYW5nZUVycm9yKGxleGljYWxH
bG9iYWxPYmplY3QsICJJbmRleCBleGNlZWRzIGFycmF5IHNpemUuIikpOworICAgICAgICB0aHJv
d0V4Y2VwdGlvbihsZXhpY2FsR2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlUmFuZ2VFcnJvcihs
ZXhpY2FsR2xvYmFsT2JqZWN0LCAiSW5kZXggZXhjZWVkcyBhcnJheSBzaXplLiJfcykpOwogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogICAgIApAQCAtMTg4LDcgKzE4OCw3IEBAIGJvb2wg
T2JqY0FycmF5OjpzZXRWYWx1ZUF0KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCB1bnNpZ25lZCBpbnQgaW5kCiAgICAgICAgIFtfYXJyYXkgaW5zZXJ0T2JqZWN0OihfX2JyaWRn
ZSBpZClvVmFsdWUub2JqZWN0VmFsdWUgYXRJbmRleDppbmRleF07CiAgICAgICAgIHJldHVybiB0
cnVlOwogICAgIH0gQGNhdGNoKE5TRXhjZXB0aW9uKiBsb2NhbEV4Y2VwdGlvbikgewotICAgICAg
ICB0aHJvd0V4Y2VwdGlvbihsZXhpY2FsR2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlRXJyb3Io
bGV4aWNhbEdsb2JhbE9iamVjdCwgIk9iamVjdGl2ZS1DIGV4Y2VwdGlvbi4iKSk7CisgICAgICAg
IHRocm93RXhjZXB0aW9uKGxleGljYWxHbG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVFcnJvcihs
ZXhpY2FsR2xvYmFsT2JqZWN0LCAiT2JqZWN0aXZlLUMgZXhjZXB0aW9uLiJfcykpOwogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgfQogfQpAQCAtMTk5LDEzICsxOTksMTMgQEAgSlNWYWx1ZSBP
YmpjQXJyYXk6OnZhbHVlQXQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIHVu
c2lnbmVkIGludCBpbmQKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7
CiAKICAgICBpZiAoaW5kZXggPiBbX2FycmF5IGNvdW50XSkKLSAgICAgICAgcmV0dXJuIHRocm93
RXhjZXB0aW9uKGxleGljYWxHbG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVSYW5nZUVycm9yKGxl
eGljYWxHbG9iYWxPYmplY3QsICJJbmRleCBleGNlZWRzIGFycmF5IHNpemUuIikpOworICAgICAg
ICByZXR1cm4gdGhyb3dFeGNlcHRpb24obGV4aWNhbEdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0
ZVJhbmdlRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgIkluZGV4IGV4Y2VlZHMgYXJyYXkgc2l6
ZS4iX3MpKTsKICAgICBAdHJ5IHsKICAgICAgICAgaWQgb2JqID0gW19hcnJheSBvYmplY3RBdElu
ZGV4OmluZGV4XTsKICAgICAgICAgaWYgKG9iaikKICAgICAgICAgICAgIHJldHVybiBjb252ZXJ0
T2JqY1ZhbHVlVG9WYWx1ZSAobGV4aWNhbEdsb2JhbE9iamVjdCwgJm9iaiwgT2JqY09iamVjdFR5
cGUsIG1fcm9vdE9iamVjdC5nZXQoKSk7CiAgICAgfSBAY2F0Y2goTlNFeGNlcHRpb24qIGxvY2Fs
RXhjZXB0aW9uKSB7Ci0gICAgICAgIHJldHVybiB0aHJvd0V4Y2VwdGlvbihsZXhpY2FsR2xvYmFs
T2JqZWN0LCBzY29wZSwgY3JlYXRlRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgIk9iamVjdGl2
ZS1DIGV4Y2VwdGlvbi4iKSk7CisgICAgICAgIHJldHVybiB0aHJvd0V4Y2VwdGlvbihsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgIk9i
amVjdGl2ZS1DIGV4Y2VwdGlvbi4iX3MpKTsKICAgICB9CiAgICAgcmV0dXJuIGpzVW5kZWZpbmVk
KCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5jcHAKaW5kZXggYzA1ZTNh
NDBlODA1NjY1ZGMwZmRlZDAyYzMwNTE4ZWQ5NjI4NjBjMy4uYWYzOWJhMTE0MGRhMDMwNDM4ODVh
M2E4NTVhMTMzMWU0ZjU2NWE5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1
bnRpbWVfYXJyYXkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5
LmNwcApAQCAtMTI3LDcgKzEyNyw3IEBAIGJvb2wgUnVudGltZUFycmF5OjpwdXQoSlNDZWxsKiBj
ZWxsLCBKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgUHJvcGVyCiAKICAgICBS
dW50aW1lQXJyYXkqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8UnVudGltZUFycmF5Kj4oY2VsbCk7CiAg
ICAgaWYgKHByb3BlcnR5TmFtZSA9PSB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgpIHsKLSAgICAg
ICAgdGhyb3dFeGNlcHRpb24obGV4aWNhbEdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZVJhbmdl
RXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgIlJhbmdlIGVycm9yIikpOworICAgICAgICB0aHJv
d0V4Y2VwdGlvbihsZXhpY2FsR2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlUmFuZ2VFcnJvcihs
ZXhpY2FsR2xvYmFsT2JqZWN0LCAiUmFuZ2UgZXJyb3IiX3MpKTsKICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgIH0KICAgICAKQEAgLTE0NCw3ICsxNDQsNyBAQCBib29sIFJ1bnRpbWVBcnJheTo6
cHV0QnlJbmRleChKU0NlbGwqIGNlbGwsIEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2Jq
ZWN0LAogCiAgICAgUnVudGltZUFycmF5KiB0aGlzT2JqZWN0ID0ganNDYXN0PFJ1bnRpbWVBcnJh
eSo+KGNlbGwpOwogICAgIGlmIChpbmRleCA+PSB0aGlzT2JqZWN0LT5nZXRMZW5ndGgoKSkgewot
ICAgICAgICB0aHJvd0V4Y2VwdGlvbihsZXhpY2FsR2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRl
UmFuZ2VFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCAiUmFuZ2UgZXJyb3IiKSk7CisgICAgICAg
IHRocm93RXhjZXB0aW9uKGxleGljYWxHbG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVSYW5nZUVy
cm9yKGxleGljYWxHbG9iYWxPYmplY3QsICJSYW5nZSBlcnJvciJfcykpOwogICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgfQogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdl
L3J1bnRpbWVfb2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVj
dC5jcHAKaW5kZXggYjI0ZjJhZWYxOTRiYWQyNWIzYTYxZWI4OGU3NDE0N2RjZTkzMTBjNy4uMjBi
ZTFlZTJmZjI1MDQyZjM4ODE1ZWRhMDY4ZmQ5YTQ4ODk1NWU3MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9i
cmlkZ2UvcnVudGltZV9vYmplY3QuY3BwCkBAIC0zMTAsNyArMzEwLDcgQEAgdm9pZCBSdW50aW1l
T2JqZWN0OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEpTT2JqZWN0KiBvYmplY3QsIEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2EKIAogRXhjZXB0aW9uKiB0aHJvd1J1bnRpbWVPYmplY3RJbnZhbGlkQWNjZXNz
RXJyb3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIFRocm93U2NvcGUmIHNj
b3BlKQogewotICAgIHJldHVybiB0aHJvd0V4Y2VwdGlvbihsZXhpY2FsR2xvYmFsT2JqZWN0LCBz
Y29wZSwgY3JlYXRlUmVmZXJlbmNlRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgIlRyeWluZyB0
byBhY2Nlc3Mgb2JqZWN0IGZyb20gZGVzdHJveWVkIHBsdWctaW4uIikpOworICAgIHJldHVybiB0
aHJvd0V4Y2VwdGlvbihsZXhpY2FsR2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlUmVmZXJlbmNl
RXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgIlRyeWluZyB0byBhY2Nlc3Mgb2JqZWN0IGZyb20g
ZGVzdHJveWVkIHBsdWctaW4uIl9zKSk7CiB9CiAKIEpTQzo6R0NDbGllbnQ6Oklzb1N1YnNwYWNl
KiBSdW50aW1lT2JqZWN0OjpzdWJzcGFjZUZvckltcGwoSlNDOjpWTSYgdm0pCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uQWN0aW9u
cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9u
QWN0aW9ucy5jcHAKaW5kZXggMGNhNjFjMTAxNGQyNDM1ZTg0YWEwZGFmZTMwMjBmZmIwNzhlODM3
OS4uN2IyNjU5ZmM2NzNkNTM2MDllNWQxYjVlNDdmYjY4M2ExNjNhZjA5YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkFjdGlvbnMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNp
b25BY3Rpb25zLmNwcApAQCAtMjAxLDE1ICsyMDEsMTUgQEAgYXV0byBNb2RpZnlIZWFkZXJzQWN0
aW9uOjpNb2RpZnlIZWFkZXJJbmZvOjpwYXJzZShjb25zdCBKU09OOjpWYWx1ZSYgaW5mb1ZhbHVl
KQogICAgIGlmICghb2JqZWN0KQogICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoQ29udGVu
dEV4dGVuc2lvbkVycm9yOjpKU09OTW9kaWZ5SGVhZGVyc0luZm9Ob3RBRGljdGlvbmFyeSk7CiAK
LSAgICBTdHJpbmcgb3BlcmF0aW9uID0gb2JqZWN0LT5nZXRTdHJpbmcoIm9wZXJhdGlvbiIpOwor
ICAgIFN0cmluZyBvcGVyYXRpb24gPSBvYmplY3QtPmdldFN0cmluZygib3BlcmF0aW9uIl9zKTsK
ICAgICBpZiAoIW9wZXJhdGlvbikKICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKENvbnRl
bnRFeHRlbnNpb25FcnJvcjo6SlNPTk1vZGlmeUhlYWRlcnNNaXNzaW5nT3BlcmF0aW9uKTsKIAot
ICAgIFN0cmluZyBoZWFkZXIgPSBvYmplY3QtPmdldFN0cmluZygiaGVhZGVyIik7CisgICAgU3Ry
aW5nIGhlYWRlciA9IG9iamVjdC0+Z2V0U3RyaW5nKCJoZWFkZXIiX3MpOwogICAgIGlmICghaGVh
ZGVyKQogICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoQ29udGVudEV4dGVuc2lvbkVycm9y
OjpKU09OTW9kaWZ5SGVhZGVyc01pc3NpbmdIZWFkZXIpOwogCi0gICAgU3RyaW5nIHZhbHVlID0g
b2JqZWN0LT5nZXRTdHJpbmcoInZhbHVlIik7CisgICAgU3RyaW5nIHZhbHVlID0gb2JqZWN0LT5n
ZXRTdHJpbmcoInZhbHVlIl9zKTsKIAogICAgIGlmIChvcGVyYXRpb24gPT0gInNldCIpIHsKICAg
ICAgICAgaWYgKCF2YWx1ZSkKQEAgLTI4OSwyNyArMjg5LDI3IEBAIHNpemVfdCBNb2RpZnlIZWFk
ZXJzQWN0aW9uOjpNb2RpZnlIZWFkZXJJbmZvOjpzZXJpYWxpemVkTGVuZ3RoKFNwYW48Y29uc3Qg
dWludDhfCiAKIEV4cGVjdGVkPFJlZGlyZWN0QWN0aW9uLCBzdGQ6OmVycm9yX2NvZGU+IFJlZGly
ZWN0QWN0aW9uOjpwYXJzZShjb25zdCBKU09OOjpPYmplY3QmIHJlZGlyZWN0T2JqZWN0LCBjb25z
dCBTdHJpbmcmIHVybEZpbHRlcikKIHsKLSAgICBhdXRvIHJlZGlyZWN0ID0gcmVkaXJlY3RPYmpl
Y3QuZ2V0T2JqZWN0KCJyZWRpcmVjdCIpOworICAgIGF1dG8gcmVkaXJlY3QgPSByZWRpcmVjdE9i
amVjdC5nZXRPYmplY3QoInJlZGlyZWN0Il9zKTsKICAgICBpZiAoIXJlZGlyZWN0KQogICAgICAg
ICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OUmVkaXJl
Y3RNaXNzaW5nKTsKIAotICAgIGlmIChhdXRvIGV4dGVuc2lvblBhdGggPSByZWRpcmVjdC0+Z2V0
U3RyaW5nKCJleHRlbnNpb24tcGF0aCIpOyAhIWV4dGVuc2lvblBhdGgpIHsKKyAgICBpZiAoYXV0
byBleHRlbnNpb25QYXRoID0gcmVkaXJlY3QtPmdldFN0cmluZygiZXh0ZW5zaW9uLXBhdGgiX3Mp
OyAhIWV4dGVuc2lvblBhdGgpIHsKICAgICAgICAgaWYgKCFleHRlbnNpb25QYXRoLnN0YXJ0c1dp
dGgoJy8nKSkKICAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50RXh0ZW5z
aW9uRXJyb3I6OkpTT05SZWRpcmVjdEV4dGVuc2lvblBhdGhEb2VzTm90U3RhcnRXaXRoU2xhc2gp
OwogICAgICAgICByZXR1cm4gUmVkaXJlY3RBY3Rpb24geyBFeHRlbnNpb25QYXRoQWN0aW9uIHsg
V1RGTW92ZShleHRlbnNpb25QYXRoKSB9IH07CiAgICAgfQogCi0gICAgaWYgKGF1dG8gcmVnZXhT
dWJzdGl0dXRpb24gPSByZWRpcmVjdC0+Z2V0U3RyaW5nKCJyZWdleC1zdWJzdGl0dXRpb24iKTsg
ISFyZWdleFN1YnN0aXR1dGlvbikKKyAgICBpZiAoYXV0byByZWdleFN1YnN0aXR1dGlvbiA9IHJl
ZGlyZWN0LT5nZXRTdHJpbmcoInJlZ2V4LXN1YnN0aXR1dGlvbiJfcyk7ICEhcmVnZXhTdWJzdGl0
dXRpb24pCiAgICAgICAgIHJldHVybiBSZWRpcmVjdEFjdGlvbiB7IFJlZ2V4U3Vic3RpdHV0aW9u
QWN0aW9uIHsgV1RGTW92ZShyZWdleFN1YnN0aXR1dGlvbiksIHVybEZpbHRlciB9IH07CiAKLSAg
ICBpZiAoYXV0byB0cmFuc2Zvcm0gPSByZWRpcmVjdC0+Z2V0T2JqZWN0KCJ0cmFuc2Zvcm0iKSkg
eworICAgIGlmIChhdXRvIHRyYW5zZm9ybSA9IHJlZGlyZWN0LT5nZXRPYmplY3QoInRyYW5zZm9y
bSJfcykpIHsKICAgICAgICAgYXV0byBwYXJzZWRUcmFuc2Zvcm0gPSBVUkxUcmFuc2Zvcm1BY3Rp
b246OnBhcnNlKCp0cmFuc2Zvcm0pOwogICAgICAgICBpZiAoIXBhcnNlZFRyYW5zZm9ybSkKICAg
ICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChwYXJzZWRUcmFuc2Zvcm0uZXJyb3IoKSk7
CiAgICAgICAgIHJldHVybiBSZWRpcmVjdEFjdGlvbiB7IFdURk1vdmUoKnBhcnNlZFRyYW5zZm9y
bSkgfTsKICAgICB9CiAKLSAgICBpZiAoYXV0byB1cmxTdHJpbmcgPSByZWRpcmVjdC0+Z2V0U3Ry
aW5nKCJ1cmwiKTsgISF1cmxTdHJpbmcpIHsKKyAgICBpZiAoYXV0byB1cmxTdHJpbmcgPSByZWRp
cmVjdC0+Z2V0U3RyaW5nKCJ1cmwiX3MpOyAhIXVybFN0cmluZykgewogICAgICAgICBVUkwgdXJs
IHsgdXJsU3RyaW5nIH07CiAgICAgICAgIGlmICghdXJsLmlzVmFsaWQoKSkKICAgICAgICAgICAg
IHJldHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05SZWRpcmVj
dFVSTEludmFsaWQpOwpAQCAtNDgzLDE1ICs0ODMsMTUgQEAgdm9pZCBSZWRpcmVjdEFjdGlvbjo6
UmVnZXhTdWJzdGl0dXRpb25BY3Rpb246OmFwcGx5VG9VUkwoVVJMJiB1cmwpIGNvbnN0CiBhdXRv
IFJlZGlyZWN0QWN0aW9uOjpVUkxUcmFuc2Zvcm1BY3Rpb246OnBhcnNlKGNvbnN0IEpTT046Ok9i
amVjdCYgdHJhbnNmb3JtKSAtPiBFeHBlY3RlZDxVUkxUcmFuc2Zvcm1BY3Rpb24sIHN0ZDo6ZXJy
b3JfY29kZT4KIHsKICAgICBVUkxUcmFuc2Zvcm1BY3Rpb24gYWN0aW9uOwotICAgIGlmIChhdXRv
IGZyYWdtZW50ID0gdHJhbnNmb3JtLmdldFN0cmluZygiZnJhZ21lbnQiKTsgISFmcmFnbWVudCkg
eworICAgIGlmIChhdXRvIGZyYWdtZW50ID0gdHJhbnNmb3JtLmdldFN0cmluZygiZnJhZ21lbnQi
X3MpOyAhIWZyYWdtZW50KSB7CiAgICAgICAgIGlmICghZnJhZ21lbnQuaXNFbXB0eSgpICYmICFm
cmFnbWVudC5zdGFydHNXaXRoKCcjJykpCiAgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0
ZWQoQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OUmVkaXJlY3RJbnZhbGlkRnJhZ21lbnQpOwog
ICAgICAgICBhY3Rpb24uZnJhZ21lbnQgPSBXVEZNb3ZlKGZyYWdtZW50KTsKICAgICB9Ci0gICAg
YWN0aW9uLmhvc3QgPSB0cmFuc2Zvcm0uZ2V0U3RyaW5nKCJob3N0Iik7Ci0gICAgYWN0aW9uLnBh
c3N3b3JkID0gdHJhbnNmb3JtLmdldFN0cmluZygicGFzc3dvcmQiKTsKLSAgICBhY3Rpb24ucGF0
aCA9IHRyYW5zZm9ybS5nZXRTdHJpbmcoInBhdGgiKTsKLSAgICBhdXRvIHBvcnQgPSB0cmFuc2Zv
cm0uZ2V0U3RyaW5nKCJwb3J0Iik7CisgICAgYWN0aW9uLmhvc3QgPSB0cmFuc2Zvcm0uZ2V0U3Ry
aW5nKCJob3N0Il9zKTsKKyAgICBhY3Rpb24ucGFzc3dvcmQgPSB0cmFuc2Zvcm0uZ2V0U3RyaW5n
KCJwYXNzd29yZCJfcyk7CisgICAgYWN0aW9uLnBhdGggPSB0cmFuc2Zvcm0uZ2V0U3RyaW5nKCJw
YXRoIl9zKTsKKyAgICBhdXRvIHBvcnQgPSB0cmFuc2Zvcm0uZ2V0U3RyaW5nKCJwb3J0Il9zKTsK
ICAgICBpZiAoISFwb3J0KSB7CiAgICAgICAgIGlmIChwb3J0LmlzRW1wdHkoKSkKICAgICAgICAg
ICAgIGFjdGlvbi5wb3J0ID0geyBzdGQ6Om9wdGlvbmFsPHVpbnQxNl90PiB7IH0gfTsKQEAgLTUw
Myw3ICs1MDMsNyBAQCBhdXRvIFJlZGlyZWN0QWN0aW9uOjpVUkxUcmFuc2Zvcm1BY3Rpb246OnBh
cnNlKGNvbnN0IEpTT046Ok9iamVjdCYgdHJhbnNmb3JtKSAtPgogICAgICAgICB9CiAgICAgfQog
Ci0gICAgaWYgKGF1dG8gdW5jYW5vbmljYWxpemVkU2NoZW1lID0gdHJhbnNmb3JtLmdldFN0cmlu
Zygic2NoZW1lIik7ICEhdW5jYW5vbmljYWxpemVkU2NoZW1lKSB7CisgICAgaWYgKGF1dG8gdW5j
YW5vbmljYWxpemVkU2NoZW1lID0gdHJhbnNmb3JtLmdldFN0cmluZygic2NoZW1lIl9zKTsgISF1
bmNhbm9uaWNhbGl6ZWRTY2hlbWUpIHsKICAgICAgICAgYXV0byBzY2hlbWUgPSBXVEY6OlVSTFBh
cnNlcjo6bWF5YmVDYW5vbmljYWxpemVTY2hlbWUodW5jYW5vbmljYWxpemVkU2NoZW1lKTsKICAg
ICAgICAgaWYgKCFzY2hlbWUpCiAgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoQ29u
dGVudEV4dGVuc2lvbkVycm9yOjpKU09OUmVkaXJlY3RVUkxTY2hlbWVJbnZhbGlkKTsKQEAgLTUx
MSwxNCArNTExLDE0IEBAIGF1dG8gUmVkaXJlY3RBY3Rpb246OlVSTFRyYW5zZm9ybUFjdGlvbjo6
cGFyc2UoY29uc3QgSlNPTjo6T2JqZWN0JiB0cmFuc2Zvcm0pIC0+CiAgICAgICAgICAgICByZXR1
cm4gbWFrZVVuZXhwZWN0ZWQoQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OUmVkaXJlY3RUb0ph
dmFTY3JpcHRVUkwpOwogICAgICAgICBhY3Rpb24uc2NoZW1lID0gV1RGTW92ZSgqc2NoZW1lKTsK
ICAgICB9Ci0gICAgYWN0aW9uLnVzZXJuYW1lID0gdHJhbnNmb3JtLmdldFN0cmluZygidXNlcm5h
bWUiKTsKLSAgICBpZiAoYXV0byBxdWVyeVRyYW5zZm9ybSA9IHRyYW5zZm9ybS5nZXRPYmplY3Qo
InF1ZXJ5LXRyYW5zZm9ybSIpKSB7CisgICAgYWN0aW9uLnVzZXJuYW1lID0gdHJhbnNmb3JtLmdl
dFN0cmluZygidXNlcm5hbWUiX3MpOworICAgIGlmIChhdXRvIHF1ZXJ5VHJhbnNmb3JtID0gdHJh
bnNmb3JtLmdldE9iamVjdCgicXVlcnktdHJhbnNmb3JtIl9zKSkgewogICAgICAgICBhdXRvIHBh
cnNlZFF1ZXJ5VHJhbnNmb3JtID0gUXVlcnlUcmFuc2Zvcm06OnBhcnNlKCpxdWVyeVRyYW5zZm9y
bSk7CiAgICAgICAgIGlmICghcGFyc2VkUXVlcnlUcmFuc2Zvcm0pCiAgICAgICAgICAgICByZXR1
cm4gbWFrZVVuZXhwZWN0ZWQocGFyc2VkUXVlcnlUcmFuc2Zvcm0uZXJyb3IoKSk7CiAgICAgICAg
IGFjdGlvbi5xdWVyeVRyYW5zZm9ybSA9ICpwYXJzZWRRdWVyeVRyYW5zZm9ybTsKICAgICB9IGVs
c2UgewotICAgICAgICBhdXRvIHF1ZXJ5ID0gdHJhbnNmb3JtLmdldFN0cmluZygicXVlcnkiKTsK
KyAgICAgICAgYXV0byBxdWVyeSA9IHRyYW5zZm9ybS5nZXRTdHJpbmcoInF1ZXJ5Il9zKTsKICAg
ICAgICAgaWYgKCFxdWVyeS5pc0VtcHR5KCkgJiYgIXF1ZXJ5LnN0YXJ0c1dpdGgoJz8nKSkKICAg
ICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpT
T05SZWRpcmVjdEludmFsaWRRdWVyeSk7CiAgICAgICAgIGFjdGlvbi5xdWVyeVRyYW5zZm9ybSA9
IFdURk1vdmUocXVlcnkpOwpAQCAtNjk5LDcgKzY5OSw3IEBAIGF1dG8gUmVkaXJlY3RBY3Rpb246
OlVSTFRyYW5zZm9ybUFjdGlvbjo6UXVlcnlUcmFuc2Zvcm06OnBhcnNlKGNvbnN0IEpTT046Ok9i
amVjCiB7CiAgICAgUXVlcnlUcmFuc2Zvcm0gcGFyc2VkUXVlcnlUcmFuc2Zvcm07CiAKLSAgICBp
ZiAoYXV0byByZW1vdmVQYXJhbWV0ZXJzVmFsdWUgPSBxdWVyeVRyYW5zZm9ybS5nZXRWYWx1ZSgi
cmVtb3ZlLXBhcmFtZXRlcnMiKSkgeworICAgIGlmIChhdXRvIHJlbW92ZVBhcmFtZXRlcnNWYWx1
ZSA9IHF1ZXJ5VHJhbnNmb3JtLmdldFZhbHVlKCJyZW1vdmUtcGFyYW1ldGVycyJfcykpIHsKICAg
ICAgICAgYXV0byByZW1vdmVQYXJhbWV0ZXJzQXJyYXkgPSByZW1vdmVQYXJhbWV0ZXJzVmFsdWUt
PmFzQXJyYXkoKTsKICAgICAgICAgaWYgKCFyZW1vdmVQYXJhbWV0ZXJzQXJyYXkpCiAgICAgICAg
ICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OUmVt
b3ZlUGFyYW1ldGVyc05vdFN0cmluZ0FycmF5KTsKQEAgLTcxMyw3ICs3MTMsNyBAQCBhdXRvIFJl
ZGlyZWN0QWN0aW9uOjpVUkxUcmFuc2Zvcm1BY3Rpb246OlF1ZXJ5VHJhbnNmb3JtOjpwYXJzZShj
b25zdCBKU09OOjpPYmplYwogICAgICAgICBwYXJzZWRRdWVyeVRyYW5zZm9ybS5yZW1vdmVQYXJh
bXMgPSBXVEZNb3ZlKHJlbW92ZVBhcmFtZXRlcnNWZWN0b3IpOwogICAgIH0KIAotICAgIGlmIChh
dXRvIGFkZE9yUmVwbGFjZVBhcmFtZXRlcnNWYWx1ZSA9IHF1ZXJ5VHJhbnNmb3JtLmdldFZhbHVl
KCJhZGQtb3ItcmVwbGFjZS1wYXJhbWV0ZXJzIikpIHsKKyAgICBpZiAoYXV0byBhZGRPclJlcGxh
Y2VQYXJhbWV0ZXJzVmFsdWUgPSBxdWVyeVRyYW5zZm9ybS5nZXRWYWx1ZSgiYWRkLW9yLXJlcGxh
Y2UtcGFyYW1ldGVycyJfcykpIHsKICAgICAgICAgYXV0byBhZGRPclJlcGxhY2VQYXJhbWV0ZXJz
QXJyYXkgPSBhZGRPclJlcGxhY2VQYXJhbWV0ZXJzVmFsdWUtPmFzQXJyYXkoKTsKICAgICAgICAg
aWYgKCFhZGRPclJlcGxhY2VQYXJhbWV0ZXJzQXJyYXkpCiAgICAgICAgICAgICByZXR1cm4gbWFr
ZVVuZXhwZWN0ZWQoQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OQWRkT3JSZXBsYWNlUGFyYW1l
dGVyc05vdEFycmF5KTsKQEAgLTg1OCwxNiArODU4LDE2IEBAIGF1dG8gUmVkaXJlY3RBY3Rpb246
OlVSTFRyYW5zZm9ybUFjdGlvbjo6UXVlcnlUcmFuc2Zvcm06OlF1ZXJ5S2V5VmFsdWU6OnBhcnNl
KGNvCiAgICAgaWYgKCFrZXlWYWx1ZSkKICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKENv
bnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkFkZE9yUmVwbGFjZVBhcmFtZXRlcnNLZXlWYWx1ZU5v
dEFEaWN0aW9uYXJ5KTsKIAotICAgIFN0cmluZyBrZXkgPSBrZXlWYWx1ZS0+Z2V0U3RyaW5nKCJr
ZXkiKTsKKyAgICBTdHJpbmcga2V5ID0ga2V5VmFsdWUtPmdldFN0cmluZygia2V5Il9zKTsKICAg
ICBpZiAoIWtleSkKICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKENvbnRlbnRFeHRlbnNp
b25FcnJvcjo6SlNPTkFkZE9yUmVwbGFjZVBhcmFtZXRlcnNLZXlWYWx1ZU1pc3NpbmdLZXlTdHJp
bmcpOwogCi0gICAgU3RyaW5nIHZhbHVlID0ga2V5VmFsdWUtPmdldFN0cmluZygidmFsdWUiKTsK
KyAgICBTdHJpbmcgdmFsdWUgPSBrZXlWYWx1ZS0+Z2V0U3RyaW5nKCJ2YWx1ZSJfcyk7CiAgICAg
aWYgKCF2YWx1ZSkKICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKENvbnRlbnRFeHRlbnNp
b25FcnJvcjo6SlNPTkFkZE9yUmVwbGFjZVBhcmFtZXRlcnNLZXlWYWx1ZU1pc3NpbmdWYWx1ZVN0
cmluZyk7CiAKICAgICBib29sIHJlcGxhY2VPbmx5IHsgZmFsc2UgfTsKLSAgICBpZiAoYXV0byBi
b29sZWFuID0ga2V5VmFsdWUtPmdldEJvb2xlYW4oInJlcGxhY2Utb25seSIpKQorICAgIGlmIChh
dXRvIGJvb2xlYW4gPSBrZXlWYWx1ZS0+Z2V0Qm9vbGVhbigicmVwbGFjZS1vbmx5Il9zKSkKICAg
ICAgICAgcmVwbGFjZU9ubHkgPSAqYm9vbGVhbjsKIAogICAgIHJldHVybiB7IHsgV1RGTW92ZShr
ZXkpLCByZXBsYWNlT25seSwgV1RGTW92ZSh2YWx1ZSkgfSB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkNvbXBpbGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25Db21waWxl
ci5jcHAKaW5kZXggY2ZlYmY1YzMwNzhhOTQxZDE5Yzc5YTI5MmM0NzBjOWViYmYyODJjZi4uZTg3
MjFkNGE3NDc5ZWQ2ODMwMTdmMGE0ODVlODQ2YTMyOWM5MGUwMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkNvbXBpbGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uQ29t
cGlsZXIuY3BwCkBAIC0zMTYsNyArMzE2LDcgQEAgc3RkOjplcnJvcl9jb2RlIGNvbXBpbGVSdWxl
TGlzdChDb250ZW50RXh0ZW5zaW9uQ29tcGlsYXRpb25DbGllbnQmIGNsaWVudCwgU3RyaW4KICAg
ICAgICAgICAgIHN0YXR1cyA9IFVSTEZpbHRlclBhcnNlcjo6T2s7CiAgICAgICAgIH0KICAgICAg
ICAgaWYgKHN0YXR1cyAhPSBVUkxGaWx0ZXJQYXJzZXI6Ok9rKSB7Ci0gICAgICAgICAgICBkYXRh
TG9nRigiRXJyb3Igd2hpbGUgcGFyc2luZyAlczogJXNcbiIsIHRyaWdnZXIudXJsRmlsdGVyLnV0
ZjgoKS5kYXRhKCksIFVSTEZpbHRlclBhcnNlcjo6c3RhdHVzU3RyaW5nKHN0YXR1cykudXRmOCgp
LmRhdGEoKSk7CisgICAgICAgICAgICBkYXRhTG9nRigiRXJyb3Igd2hpbGUgcGFyc2luZyAlczog
JXNcbiIsIHRyaWdnZXIudXJsRmlsdGVyLnV0ZjgoKS5kYXRhKCksIFVSTEZpbHRlclBhcnNlcjo6
c3RhdHVzU3RyaW5nKHN0YXR1cykuY2hhcmFjdGVycygpKTsKICAgICAgICAgICAgIHJldHVybiBD
b250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkUmVnZXg7CiAgICAgICAgIH0KIApAQCAt
MzMzLDcgKzMzMyw3IEBAIHN0ZDo6ZXJyb3JfY29kZSBjb21waWxlUnVsZUxpc3QoQ29udGVudEV4
dGVuc2lvbkNvbXBpbGF0aW9uQ2xpZW50JiBjbGllbnQsIFN0cmluCiAgICAgICAgICAgICAgICAg
ICAgIHN0YXR1cyA9IFVSTEZpbHRlclBhcnNlcjo6T2s7CiAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgIGlmIChzdGF0dXMgIT0gVVJMRmlsdGVyUGFyc2VyOjpPaykgewotICAgICAg
ICAgICAgICAgICAgICBkYXRhTG9nRigiRXJyb3Igd2hpbGUgcGFyc2luZyAlczogJXNcbiIsIGNv
bmRpdGlvbi51dGY4KCkuZGF0YSgpLCBVUkxGaWx0ZXJQYXJzZXI6OnN0YXR1c1N0cmluZyhzdGF0
dXMpLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICAgICAgICAgICAgICBkYXRhTG9nRigiRXJyb3Ig
d2hpbGUgcGFyc2luZyAlczogJXNcbiIsIGNvbmRpdGlvbi51dGY4KCkuZGF0YSgpLCBVUkxGaWx0
ZXJQYXJzZXI6OnN0YXR1c1N0cmluZyhzdGF0dXMpLmNoYXJhY3RlcnMoKSk7CiAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkUmVnZXg7
CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAtMzQ0LDcgKzM0
NCw3IEBAIHN0ZDo6ZXJyb3JfY29kZSBjb21waWxlUnVsZUxpc3QoQ29udGVudEV4dGVuc2lvbkNv
bXBpbGF0aW9uQ2xpZW50JiBjbGllbnQsIFN0cmluCiAgICAgICAgICAgICAgICAgICAgIHN0YXR1
cyA9IFVSTEZpbHRlclBhcnNlcjo6T2s7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgIGlmIChzdGF0dXMgIT0gVVJMRmlsdGVyUGFyc2VyOjpPaykgewotICAgICAgICAgICAgICAg
ICAgICBkYXRhTG9nRigiRXJyb3Igd2hpbGUgcGFyc2luZyAlczogJXNcbiIsIGNvbmRpdGlvbi51
dGY4KCkuZGF0YSgpLCBVUkxGaWx0ZXJQYXJzZXI6OnN0YXR1c1N0cmluZyhzdGF0dXMpLnV0Zjgo
KS5kYXRhKCkpOworICAgICAgICAgICAgICAgICAgICBkYXRhTG9nRigiRXJyb3Igd2hpbGUgcGFy
c2luZyAlczogJXNcbiIsIGNvbmRpdGlvbi51dGY4KCkuZGF0YSgpLCBVUkxGaWx0ZXJQYXJzZXI6
OnN0YXR1c1N0cmluZyhzdGF0dXMpLmNoYXJhY3RlcnMoKSk7CiAgICAgICAgICAgICAgICAgICAg
IHJldHVybiBDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkUmVnZXg7CiAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvblBhcnNlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uUGFyc2VyLmNwcApp
bmRleCA1MTNmZDkzOWU2NmRiNWNhMjUxMjlmNTc2Yjk4MmI0ZjhjOTgyNGUxLi43NDQxNjVmMGI1
MjAxNWNjZWZkNzdmNjg3Y2U1M2NjMDVjMWIxNTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uUGFyc2VyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uUGFyc2VyLmNwcApA
QCAtOTMsNyArOTMsNyBAQCBzdGF0aWMgRXhwZWN0ZWQ8VmVjdG9yPFN0cmluZz4sIHN0ZDo6ZXJy
b3JfY29kZT4gZ2V0RG9tYWluTGlzdChjb25zdCBKU09OOjpBcnJheQogICAgICAgICAgICAgeyAn
JCcsICJcXCQiIH0KICAgICAgICAgfSB9OwogICAgICAgICBmb3IgKGF1dG8mIHBhaXIgOiBlc2Nh
cGVUYWJsZSkKLSAgICAgICAgICAgIGRvbWFpbiA9IGRvbWFpbi5yZXBsYWNlKHBhaXIuZmlyc3Qs
IHBhaXIuc2Vjb25kKTsKKyAgICAgICAgICAgIGRvbWFpbiA9IGRvbWFpbi5yZXBsYWNlKHBhaXIu
Zmlyc3QsIFN0cmluZyB7IHBhaXIuc2Vjb25kIH0pOwogCiAgICAgICAgIGNvbnN0IGNoYXIqIHBy
b3RvY29sUmVnZXggPSAiW2Etel1bYS16Ky4tXSo6XFwvXFwvIjsKICAgICAgICAgY29uc3QgY2hh
ciogYWxsb3dTdWJkb21haW5zUmVnZXggPSAiKC4qXFwuKSoiOwpAQCAtMTE5LDI3ICsxMTksMjcg
QEAgc3RhdGljIHN0ZDo6ZXJyb3JfY29kZSBnZXRUeXBlRmxhZ3MoY29uc3QgSlNPTjo6QXJyYXkm
IGFycmF5LCBSZXNvdXJjZUZsYWdzJiBmbGEKICAgICAKIHN0YXRpYyBFeHBlY3RlZDxUcmlnZ2Vy
LCBzdGQ6OmVycm9yX2NvZGU+IGxvYWRUcmlnZ2VyKGNvbnN0IEpTT046Ok9iamVjdCYgcnVsZU9i
amVjdCkKIHsKLSAgICBhdXRvIHRyaWdnZXJPYmplY3QgPSBydWxlT2JqZWN0LmdldE9iamVjdCgi
dHJpZ2dlciIpOworICAgIGF1dG8gdHJpZ2dlck9iamVjdCA9IHJ1bGVPYmplY3QuZ2V0T2JqZWN0
KCJ0cmlnZ2VyIl9zKTsKICAgICBpZiAoIXRyaWdnZXJPYmplY3QpCiAgICAgICAgIHJldHVybiBt
YWtlVW5leHBlY3RlZChDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkVHJpZ2dlcik7
CiAKLSAgICBTdHJpbmcgdXJsRmlsdGVyID0gdHJpZ2dlck9iamVjdC0+Z2V0U3RyaW5nKCJ1cmwt
ZmlsdGVyIik7CisgICAgU3RyaW5nIHVybEZpbHRlciA9IHRyaWdnZXJPYmplY3QtPmdldFN0cmlu
ZygidXJsLWZpbHRlciJfcyk7CiAgICAgaWYgKHVybEZpbHRlci5pc0VtcHR5KCkpCiAgICAgICAg
IHJldHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlk
VVJMRmlsdGVySW5UcmlnZ2VyKTsKIAogICAgIFRyaWdnZXIgdHJpZ2dlcjsKICAgICB0cmlnZ2Vy
LnVybEZpbHRlciA9IHVybEZpbHRlcjsKIAotICAgIGlmIChzdGQ6Om9wdGlvbmFsPGJvb2w+IHVy
bEZpbHRlckNhc2VTZW5zaXRpdmVWYWx1ZSA9IHRyaWdnZXJPYmplY3QtPmdldEJvb2xlYW4oInVy
bC1maWx0ZXItaXMtY2FzZS1zZW5zaXRpdmUiKSkKKyAgICBpZiAoc3RkOjpvcHRpb25hbDxib29s
PiB1cmxGaWx0ZXJDYXNlU2Vuc2l0aXZlVmFsdWUgPSB0cmlnZ2VyT2JqZWN0LT5nZXRCb29sZWFu
KCJ1cmwtZmlsdGVyLWlzLWNhc2Utc2Vuc2l0aXZlIl9zKSkKICAgICAgICAgdHJpZ2dlci51cmxG
aWx0ZXJJc0Nhc2VTZW5zaXRpdmUgPSAqdXJsRmlsdGVyQ2FzZVNlbnNpdGl2ZVZhbHVlOwogCi0g
ICAgaWYgKHN0ZDo6b3B0aW9uYWw8Ym9vbD4gdG9wVVJMRmlsdGVyQ2FzZVNlbnNpdGl2ZVZhbHVl
ID0gdHJpZ2dlck9iamVjdC0+Z2V0Qm9vbGVhbigidG9wLXVybC1maWx0ZXItaXMtY2FzZS1zZW5z
aXRpdmUiKSkKKyAgICBpZiAoc3RkOjpvcHRpb25hbDxib29sPiB0b3BVUkxGaWx0ZXJDYXNlU2Vu
c2l0aXZlVmFsdWUgPSB0cmlnZ2VyT2JqZWN0LT5nZXRCb29sZWFuKCJ0b3AtdXJsLWZpbHRlci1p
cy1jYXNlLXNlbnNpdGl2ZSJfcykpCiAgICAgICAgIHRyaWdnZXIudG9wVVJMRmlsdGVySXNDYXNl
U2Vuc2l0aXZlID0gKnRvcFVSTEZpbHRlckNhc2VTZW5zaXRpdmVWYWx1ZTsKIAotICAgIGlmIChz
dGQ6Om9wdGlvbmFsPGJvb2w+IGZyYW1lVVJMRmlsdGVyQ2FzZVNlbnNpdGl2ZVZhbHVlID0gdHJp
Z2dlck9iamVjdC0+Z2V0Qm9vbGVhbigiZnJhbWUtdXJsLWZpbHRlci1pcy1jYXNlLXNlbnNpdGl2
ZSIpKQorICAgIGlmIChzdGQ6Om9wdGlvbmFsPGJvb2w+IGZyYW1lVVJMRmlsdGVyQ2FzZVNlbnNp
dGl2ZVZhbHVlID0gdHJpZ2dlck9iamVjdC0+Z2V0Qm9vbGVhbigiZnJhbWUtdXJsLWZpbHRlci1p
cy1jYXNlLXNlbnNpdGl2ZSJfcykpCiAgICAgICAgIHRyaWdnZXIuZnJhbWVVUkxGaWx0ZXJJc0Nh
c2VTZW5zaXRpdmUgPSAqZnJhbWVVUkxGaWx0ZXJDYXNlU2Vuc2l0aXZlVmFsdWU7CiAKLSAgICBp
ZiAoYXV0byByZXNvdXJjZVR5cGVWYWx1ZSA9IHRyaWdnZXJPYmplY3QtPmdldFZhbHVlKCJyZXNv
dXJjZS10eXBlIikpIHsKKyAgICBpZiAoYXV0byByZXNvdXJjZVR5cGVWYWx1ZSA9IHRyaWdnZXJP
YmplY3QtPmdldFZhbHVlKCJyZXNvdXJjZS10eXBlIl9zKSkgewogICAgICAgICBhdXRvIHJlc291
cmNlVHlwZUFycmF5ID0gcmVzb3VyY2VUeXBlVmFsdWUtPmFzQXJyYXkoKTsKICAgICAgICAgaWYg
KCFyZXNvdXJjZVR5cGVBcnJheSkKICAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChD
b250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkVHJpZ2dlckZsYWdzQXJyYXkpOwpAQCAt
MTQ3LDcgKzE0Nyw3IEBAIHN0YXRpYyBFeHBlY3RlZDxUcmlnZ2VyLCBzdGQ6OmVycm9yX2NvZGU+
IGxvYWRUcmlnZ2VyKGNvbnN0IEpTT046Ok9iamVjdCYgcnVsZU9iCiAgICAgICAgICAgICByZXR1
cm4gbWFrZVVuZXhwZWN0ZWQoZXJyb3IpOwogICAgIH0KIAotICAgIGlmIChhdXRvIGxvYWRUeXBl
VmFsdWUgPSB0cmlnZ2VyT2JqZWN0LT5nZXRWYWx1ZSgibG9hZC10eXBlIikpIHsKKyAgICBpZiAo
YXV0byBsb2FkVHlwZVZhbHVlID0gdHJpZ2dlck9iamVjdC0+Z2V0VmFsdWUoImxvYWQtdHlwZSJf
cykpIHsKICAgICAgICAgYXV0byBsb2FkVHlwZUFycmF5ID0gbG9hZFR5cGVWYWx1ZS0+YXNBcnJh
eSgpOwogICAgICAgICBpZiAoIWxvYWRUeXBlQXJyYXkpCiAgICAgICAgICAgICByZXR1cm4gbWFr
ZVVuZXhwZWN0ZWQoQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZFRyaWdnZXJGbGFn
c0FycmF5KTsKQEAgLTE1NSw3ICsxNTUsNyBAQCBzdGF0aWMgRXhwZWN0ZWQ8VHJpZ2dlciwgc3Rk
OjplcnJvcl9jb2RlPiBsb2FkVHJpZ2dlcihjb25zdCBKU09OOjpPYmplY3QmIHJ1bGVPYgogICAg
ICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKGVycm9yKTsKICAgICB9CiAKLSAgICBpZiAo
YXV0byBsb2FkQ29udGV4dFZhbHVlID0gdHJpZ2dlck9iamVjdC0+Z2V0VmFsdWUoImxvYWQtY29u
dGV4dCIpKSB7CisgICAgaWYgKGF1dG8gbG9hZENvbnRleHRWYWx1ZSA9IHRyaWdnZXJPYmplY3Qt
PmdldFZhbHVlKCJsb2FkLWNvbnRleHQiX3MpKSB7CiAgICAgICAgIGF1dG8gbG9hZENvbnRleHRB
cnJheSA9IGxvYWRDb250ZXh0VmFsdWUtPmFzQXJyYXkoKTsKICAgICAgICAgaWYgKCFsb2FkQ29u
dGV4dEFycmF5KQogICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKENvbnRlbnRFeHRl
bnNpb25FcnJvcjo6SlNPTkludmFsaWRUcmlnZ2VyRmxhZ3NBcnJheSk7CkBAIC0yMTIsMTEgKzIx
MiwxMSBAQCBib29sIGlzVmFsaWRDU1NTZWxlY3Rvcihjb25zdCBTdHJpbmcmIHNlbGVjdG9yKQog
CiBzdGF0aWMgc3RkOjpvcHRpb25hbDxFeHBlY3RlZDxBY3Rpb24sIHN0ZDo6ZXJyb3JfY29kZT4+
IGxvYWRBY3Rpb24oY29uc3QgSlNPTjo6T2JqZWN0JiBydWxlT2JqZWN0LCBjb25zdCBTdHJpbmcm
IHVybEZpbHRlcikKIHsKLSAgICBhdXRvIGFjdGlvbk9iamVjdCA9IHJ1bGVPYmplY3QuZ2V0T2Jq
ZWN0KCJhY3Rpb24iKTsKKyAgICBhdXRvIGFjdGlvbk9iamVjdCA9IHJ1bGVPYmplY3QuZ2V0T2Jq
ZWN0KCJhY3Rpb24iX3MpOwogICAgIGlmICghYWN0aW9uT2JqZWN0KQogICAgICAgICByZXR1cm4g
bWFrZVVuZXhwZWN0ZWQoQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZEFjdGlvbik7
CiAKLSAgICBTdHJpbmcgYWN0aW9uVHlwZSA9IGFjdGlvbk9iamVjdC0+Z2V0U3RyaW5nKCJ0eXBl
Iik7CisgICAgU3RyaW5nIGFjdGlvblR5cGUgPSBhY3Rpb25PYmplY3QtPmdldFN0cmluZygidHlw
ZSJfcyk7CiAKICAgICBpZiAoYWN0aW9uVHlwZSA9PSAiYmxvY2siKQogICAgICAgICByZXR1cm4g
QWN0aW9uIHsgQmxvY2tMb2FkQWN0aW9uKCkgfTsKQEAgLTIyNSw3ICsyMjUsNyBAQCBzdGF0aWMg
c3RkOjpvcHRpb25hbDxFeHBlY3RlZDxBY3Rpb24sIHN0ZDo6ZXJyb3JfY29kZT4+IGxvYWRBY3Rp
b24oY29uc3QgSlNPTjo6TwogICAgIGlmIChhY3Rpb25UeXBlID09ICJibG9jay1jb29raWVzIikK
ICAgICAgICAgcmV0dXJuIEFjdGlvbiB7IEJsb2NrQ29va2llc0FjdGlvbigpIH07CiAgICAgaWYg
KGFjdGlvblR5cGUgPT0gImNzcy1kaXNwbGF5LW5vbmUiKSB7Ci0gICAgICAgIFN0cmluZyBzZWxl
Y3RvclN0cmluZyA9IGFjdGlvbk9iamVjdC0+Z2V0U3RyaW5nKCJzZWxlY3RvciIpOworICAgICAg
ICBTdHJpbmcgc2VsZWN0b3JTdHJpbmcgPSBhY3Rpb25PYmplY3QtPmdldFN0cmluZygic2VsZWN0
b3IiX3MpOwogICAgICAgICBpZiAoIXNlbGVjdG9yU3RyaW5nKQogICAgICAgICAgICAgcmV0dXJu
IG1ha2VVbmV4cGVjdGVkKENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWRDU1NEaXNw
bGF5Tm9uZUFjdGlvblR5cGUpOwogICAgICAgICBpZiAoIWlzVmFsaWRDU1NTZWxlY3RvcihzZWxl
Y3RvclN0cmluZykpCkBAIC0yMzUsNyArMjM1LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8RXhw
ZWN0ZWQ8QWN0aW9uLCBzdGQ6OmVycm9yX2NvZGU+PiBsb2FkQWN0aW9uKGNvbnN0IEpTT046Ok8K
ICAgICBpZiAoYWN0aW9uVHlwZSA9PSAibWFrZS1odHRwcyIpCiAgICAgICAgIHJldHVybiBBY3Rp
b24geyBNYWtlSFRUUFNBY3Rpb24oKSB9OwogICAgIGlmIChhY3Rpb25UeXBlID09ICJub3RpZnki
KSB7Ci0gICAgICAgIFN0cmluZyBub3RpZmljYXRpb24gPSBhY3Rpb25PYmplY3QtPmdldFN0cmlu
Zygibm90aWZpY2F0aW9uIik7CisgICAgICAgIFN0cmluZyBub3RpZmljYXRpb24gPSBhY3Rpb25P
YmplY3QtPmdldFN0cmluZygibm90aWZpY2F0aW9uIl9zKTsKICAgICAgICAgaWYgKCFub3RpZmlj
YXRpb24pCiAgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoQ29udGVudEV4dGVuc2lv
bkVycm9yOjpKU09OSW52YWxpZE5vdGlmaWNhdGlvbik7CiAgICAgICAgIHJldHVybiBBY3Rpb24g
eyBOb3RpZnlBY3Rpb24geyB7IFdURk1vdmUobm90aWZpY2F0aW9uKSB9IH0gfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL1NlcmlhbGl6ZWRORkEuY3BwIGIv
U291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvU2VyaWFsaXplZE5GQS5jcHAKaW5kZXgg
MDRjNmRhNWE4NDhkMDg5MWYzM2Y0ZjgzOWRhOTUyYjhjNzY3OWEwOS4uMDUyYjU5N2JjZmI5MmE3
NDM3OTNmOTE1ZWQ2OTZlN2EwZTllNDhmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY29u
dGVudGV4dGVuc2lvbnMvU2VyaWFsaXplZE5GQS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY29u
dGVudGV4dGVuc2lvbnMvU2VyaWFsaXplZE5GQS5jcHAKQEAgLTUyLDcgKzUyLDcgQEAgYm9vbCB3
cml0ZUFsbFRvRmlsZShGaWxlU3lzdGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGUgZmlsZSwgY29uc3Qg
VCYgY29udGFpbmVyKQogc3RkOjpvcHRpb25hbDxTZXJpYWxpemVkTkZBPiBTZXJpYWxpemVkTkZB
OjpzZXJpYWxpemUoTkZBJiYgbmZhKQogewogICAgIGF1dG8gZmlsZSA9IEZpbGVTeXN0ZW06Omlu
dmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGU7Ci0gICAgYXV0byBmaWxlbmFtZSA9IEZpbGVTeXN0ZW06
Om9wZW5UZW1wb3JhcnlGaWxlKCJTZXJpYWxpemVkTkZBIiwgZmlsZSk7CisgICAgYXV0byBmaWxl
bmFtZSA9IEZpbGVTeXN0ZW06Om9wZW5UZW1wb3JhcnlGaWxlKCJTZXJpYWxpemVkTkZBIl9zLCBm
aWxlKTsKICAgICBpZiAoIUZpbGVTeXN0ZW06OmlzSGFuZGxlVmFsaWQoZmlsZSkpCiAgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NvbnRl
bnRleHRlbnNpb25zL1VSTEZpbHRlclBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50
ZXh0ZW5zaW9ucy9VUkxGaWx0ZXJQYXJzZXIuY3BwCmluZGV4IGQ4NzI5ZDM5MGQ5MDczMGEwZWI3
ZGIzYThjOWYxNzE4Yzg2ZjdhM2EuLjRmZjEyMjVmYWE4MjI4NWIzMWNlZDU3NTlkYjg5Nzc2OTE4
OWU3NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL1VSTEZp
bHRlclBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvVVJM
RmlsdGVyUGFyc2VyLmNwcApAQCAtMzY5LDM5ICszNjksMzkgQEAgVVJMRmlsdGVyUGFyc2VyOjpQ
YXJzZVN0YXR1cyBVUkxGaWx0ZXJQYXJzZXI6OmFkZFBhdHRlcm4oY29uc3QgU3RyaW5nJiBwYXR0
ZXJuLAogICAgIHJldHVybiBzdGF0dXM7CiB9CiAKLVN0cmluZyBVUkxGaWx0ZXJQYXJzZXI6OnN0
YXR1c1N0cmluZyhQYXJzZVN0YXR1cyBzdGF0dXMpCitBU0NJSUxpdGVyYWwgVVJMRmlsdGVyUGFy
c2VyOjpzdGF0dXNTdHJpbmcoUGFyc2VTdGF0dXMgc3RhdHVzKQogewogICAgIHN3aXRjaCAoc3Rh
dHVzKSB7CiAgICAgY2FzZSBPazoKLSAgICAgICAgcmV0dXJuICJPayI7CisgICAgICAgIHJldHVy
biAiT2siX3M7CiAgICAgY2FzZSBNYXRjaGVzRXZlcnl0aGluZzoKLSAgICAgICAgcmV0dXJuICJN
YXRjaGVzIGV2ZXJ5dGhpbmcuIjsKKyAgICAgICAgcmV0dXJuICJNYXRjaGVzIGV2ZXJ5dGhpbmcu
Il9zOwogICAgIGNhc2UgTm9uQVNDSUk6Ci0gICAgICAgIHJldHVybiAiT25seSBBU0NJSSBjaGFy
YWN0ZXJzIGFyZSBzdXBwb3J0ZWQgaW4gcGF0dGVybi4iOworICAgICAgICByZXR1cm4gIk9ubHkg
QVNDSUkgY2hhcmFjdGVycyBhcmUgc3VwcG9ydGVkIGluIHBhdHRlcm4uIl9zOwogICAgIGNhc2Ug
VW5zdXBwb3J0ZWRDaGFyYWN0ZXJDbGFzczoKLSAgICAgICAgcmV0dXJuICJDaGFyYWN0ZXIgY2xh
c3MgaXMgbm90IHN1cHBvcnRlZC4iOworICAgICAgICByZXR1cm4gIkNoYXJhY3RlciBjbGFzcyBp
cyBub3Qgc3VwcG9ydGVkLiJfczsKICAgICBjYXNlIEJhY2tSZWZlcmVuY2U6Ci0gICAgICAgIHJl
dHVybiAiUGF0dGVybnMgY2Fubm90IGNvbnRhaW4gYmFja3JlZmVyZW5jZXMuIjsKKyAgICAgICAg
cmV0dXJuICJQYXR0ZXJucyBjYW5ub3QgY29udGFpbiBiYWNrcmVmZXJlbmNlcy4iX3M7CiAgICAg
Y2FzZSBGb3J3YXJkUmVmZXJlbmNlOgotICAgICAgICByZXR1cm4gIlBhdHRlcm5zIGNhbm5vdCBj
b250YWluIGZvcndhcmQgcmVmZXJlbmNlcy4iOworICAgICAgICByZXR1cm4gIlBhdHRlcm5zIGNh
bm5vdCBjb250YWluIGZvcndhcmQgcmVmZXJlbmNlcy4iX3M7CiAgICAgY2FzZSBNaXNwbGFjZWRT
dGFydE9mTGluZToKLSAgICAgICAgcmV0dXJuICJTdGFydCBvZiBsaW5lIGFzc2VydGlvbiBjYW4g
b25seSBhcHBlYXIgYXMgdGhlIGZpcnN0IHRlcm0gaW4gYSBmaWx0ZXIuIjsKKyAgICAgICAgcmV0
dXJuICJTdGFydCBvZiBsaW5lIGFzc2VydGlvbiBjYW4gb25seSBhcHBlYXIgYXMgdGhlIGZpcnN0
IHRlcm0gaW4gYSBmaWx0ZXIuIl9zOwogICAgIGNhc2UgV29yZEJvdW5kYXJ5OgotICAgICAgICBy
ZXR1cm4gIldvcmQgYm91bmRhcmllcyBhc3NlcnRpb25zIGFyZSBub3Qgc3VwcG9ydGVkIHlldC4i
OworICAgICAgICByZXR1cm4gIldvcmQgYm91bmRhcmllcyBhc3NlcnRpb25zIGFyZSBub3Qgc3Vw
cG9ydGVkIHlldC4iX3M7CiAgICAgY2FzZSBBdG9tQ2hhcmFjdGVyOgotICAgICAgICByZXR1cm4g
IkJ1aWx0aW5zIGNoYXJhY3RlciBjbGFzcyBhdG9tcyBhcmUgbm90IHN1cHBvcnRlZCB5ZXQuIjsK
KyAgICAgICAgcmV0dXJuICJCdWlsdGlucyBjaGFyYWN0ZXIgY2xhc3MgYXRvbXMgYXJlIG5vdCBz
dXBwb3J0ZWQgeWV0LiJfczsKICAgICBjYXNlIEdyb3VwOgotICAgICAgICByZXR1cm4gIkdyb3Vw
cyBhcmUgbm90IHN1cHBvcnRlZCB5ZXQuIjsKKyAgICAgICAgcmV0dXJuICJHcm91cHMgYXJlIG5v
dCBzdXBwb3J0ZWQgeWV0LiJfczsKICAgICBjYXNlIERpc2p1bmN0aW9uOgotICAgICAgICByZXR1
cm4gIkRpc2p1bmN0aW9ucyBhcmUgbm90IHN1cHBvcnRlZCB5ZXQuIjsKKyAgICAgICAgcmV0dXJu
ICJEaXNqdW5jdGlvbnMgYXJlIG5vdCBzdXBwb3J0ZWQgeWV0LiJfczsKICAgICBjYXNlIE1pc3Bs
YWNlZEVuZE9mTGluZToKLSAgICAgICAgcmV0dXJuICJUaGUgZW5kIG9mIGxpbmUgYXNzZXJ0aW9u
IG11c3QgYmUgdGhlIGxhc3QgdGVybSBpbiBhbiBleHByZXNzaW9uLiI7CisgICAgICAgIHJldHVy
biAiVGhlIGVuZCBvZiBsaW5lIGFzc2VydGlvbiBtdXN0IGJlIHRoZSBsYXN0IHRlcm0gaW4gYW4g
ZXhwcmVzc2lvbi4iX3M7CiAgICAgY2FzZSBFbXB0eVBhdHRlcm46Ci0gICAgICAgIHJldHVybiAi
RW1wdHkgcGF0dGVybi4iOworICAgICAgICByZXR1cm4gIkVtcHR5IHBhdHRlcm4uIl9zOwogICAg
IGNhc2UgWWFyckVycm9yOgotICAgICAgICByZXR1cm4gIkludGVybmFsIGVycm9yIGluIFlBUlIu
IjsKKyAgICAgICAgcmV0dXJuICJJbnRlcm5hbCBlcnJvciBpbiBZQVJSLiJfczsKICAgICBjYXNl
IEludmFsaWRRdWFudGlmaWVyOgotICAgICAgICByZXR1cm4gIkFyYml0cmFyeSBhdG9tIHJlcGV0
aXRpb25zIGFyZSBub3Qgc3VwcG9ydGVkLiI7CisgICAgICAgIHJldHVybiAiQXJiaXRyYXJ5IGF0
b20gcmVwZXRpdGlvbnMgYXJlIG5vdCBzdXBwb3J0ZWQuIl9zOwogICAgIH0KIAogICAgIFJFTEVB
U0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jb250
ZW50ZXh0ZW5zaW9ucy9VUkxGaWx0ZXJQYXJzZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRl
eHRlbnNpb25zL1VSTEZpbHRlclBhcnNlci5oCmluZGV4IGI1YzFmNmQ5ZmQyZTdjOTRjYjI1NjU3
NTY4OWRmNGI3MDcwNzlhOWQuLjg4OTgzYjU1YzNjYmVkNTlmNGE0YTAxYWVkMjVhNDMyYzgwMjhi
NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL1VSTEZpbHRl
clBhcnNlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL1VSTEZpbHRl
clBhcnNlci5oCkBAIC01NCw3ICs1NCw3IEBAIHB1YmxpYzoKICAgICAgICAgWWFyckVycm9yLAog
ICAgICAgICBJbnZhbGlkUXVhbnRpZmllciwKICAgICB9OwotICAgIHN0YXRpYyBTdHJpbmcgc3Rh
dHVzU3RyaW5nKFBhcnNlU3RhdHVzKTsKKyAgICBzdGF0aWMgQVNDSUlMaXRlcmFsIHN0YXR1c1N0
cmluZyhQYXJzZVN0YXR1cyk7CiAgICAgZXhwbGljaXQgVVJMRmlsdGVyUGFyc2VyKENvbWJpbmVk
VVJMRmlsdGVycyYpOwogICAgIH5VUkxGaWx0ZXJQYXJzZXIoKTsKICAgICBQYXJzZVN0YXR1cyBh
ZGRQYXR0ZXJuKGNvbnN0IFN0cmluZyYgcGF0dGVybiwgYm9vbCBwYXR0ZXJuSXNDYXNlU2Vuc2l0
aXZlLCB1aW50NjRfdCBwYXR0ZXJuSWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5
cHRvL1N1YnRsZUNyeXB0by5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vU3VidGxlQ3J5cHRv
LmNwcAppbmRleCBlYWEzMjE4ZmNmN2I3Nzg1NGZiMjM4NWU1MDFhOTk5NDM2ZmJlYjU4Li45ZDZm
NDMwMzY1OTgyZDZlOTUwZTljMWE2YTFkNmIyYzFhN2QzOTZlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jcnlwdG8vU3VidGxlQ3J5cHRvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlw
dG8vU3VidGxlQ3J5cHRvLmNwcApAQCAtNTM0LDcgKzUzNCw3IEBAIHZvaWQgU3VidGxlQ3J5cHRv
OjphZGRBdXRoZW50aWNhdGVkRW5jcnlwdGlvbldhcm5pbmdJZk5lY2Vzc2FyeShDcnlwdG9BbGdv
cml0aG1JCiB7CiAgICAgaWYgKGFsZ29yaXRobUlkZW50aWZpZXIgPT0gQ3J5cHRvQWxnb3JpdGht
SWRlbnRpZmllcjo6QUVTX0NCQyB8fCBhbGdvcml0aG1JZGVudGlmaWVyID09IENyeXB0b0FsZ29y
aXRobUlkZW50aWZpZXI6OkFFU19DVFIpIHsKICAgICAgICAgaWYgKCFzY3JpcHRFeGVjdXRpb25D
b250ZXh0KCktPmhhc0xvZ2dlZEF1dGhlbnRpY2F0ZWRFbmNyeXB0aW9uV2FybmluZygpKSB7Ci0g
ICAgICAgICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmFkZENvbnNvbGVNZXNzYWdlKE1l
c3NhZ2VTb3VyY2U6OlNlY3VyaXR5LCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsICJBRVMtQ0JDIGFu
ZCBBRVMtQ1RSIGRvIG5vdCBwcm92aWRlIGF1dGhlbnRpY2F0aW9uIGJ5IGRlZmF1bHQsIGFuZCBp
bXBsZW1lbnRpbmcgaXQgbWFudWFsbHkgY2FuIHJlc3VsdCBpbiBtaW5vciwgYnV0IHNlcmlvdXMg
bWlzdGFrZXMuIFdlIHJlY29tbWVuZGVkIHVzaW5nIGF1dGhlbnRpY2F0ZWQgZW5jcnlwdGlvbiBs
aWtlIEFFUy1HQ00gdG8gcHJvdGVjdCBhZ2FpbnN0IGNob3Nlbi1jaXBoZXJ0ZXh0IGF0dGFja3Mu
Iik7CisgICAgICAgICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmFkZENvbnNvbGVNZXNz
YWdlKE1lc3NhZ2VTb3VyY2U6OlNlY3VyaXR5LCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsICJBRVMt
Q0JDIGFuZCBBRVMtQ1RSIGRvIG5vdCBwcm92aWRlIGF1dGhlbnRpY2F0aW9uIGJ5IGRlZmF1bHQs
IGFuZCBpbXBsZW1lbnRpbmcgaXQgbWFudWFsbHkgY2FuIHJlc3VsdCBpbiBtaW5vciwgYnV0IHNl
cmlvdXMgbWlzdGFrZXMuIFdlIHJlY29tbWVuZGVkIHVzaW5nIGF1dGhlbnRpY2F0ZWQgZW5jcnlw
dGlvbiBsaWtlIEFFUy1HQ00gdG8gcHJvdGVjdCBhZ2FpbnN0IGNob3Nlbi1jaXBoZXJ0ZXh0IGF0
dGFja3MuIl9zKTsKICAgICAgICAgICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+c2V0SGFz
TG9nZ2VkQXV0aGVudGljYXRlZEVuY3J5cHRpb25XYXJuaW5nKHRydWUpOwogICAgICAgICB9CiAg
ICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRv
QWxnb3JpdGhtQUVTX0NCQy5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5
cHRvQWxnb3JpdGhtQUVTX0NCQy5oCmluZGV4IDI3MzI5ODViNzdmZWRmYzM5Njc0ZDQ3NDlkODk1
NTBhMGExNzFjMjYuLmI3NDQzYTczMzk4NDIwODhmODNjY2M2ZjM1Y2EyOTc3MTYwOGNjZmEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRo
bUFFU19DQkMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9B
bGdvcml0aG1BRVNfQ0JDLmgKQEAgLTQxLDcgKzQxLDcgQEAgcHVibGljOgogICAgICAgICBObwog
ICAgIH07CiAKLSAgICBzdGF0aWMgY29uc3RleHByIGNvbnN0IGNoYXIqIHNfbmFtZSA9ICJBRVMt
Q0JDIjsKKyAgICBzdGF0aWMgY29uc3RleHByIEFTQ0lJTGl0ZXJhbCBzX25hbWUgPSAiQUVTLUNC
QyJfczsKICAgICBzdGF0aWMgY29uc3RleHByIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgc19p
ZGVudGlmaWVyID0gQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6QUVTX0NCQzsKICAgICBzdGF0
aWMgUmVmPENyeXB0b0FsZ29yaXRobT4gY3JlYXRlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DRkIuaCBiL1NvdXJj
ZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DRkIuaAppbmRl
eCBjMjI3NDE5MWY2MzViODMzYTQ5MWU4MmNiMWRlN2RhODEwM2M2ZDlhLi41MDhhMjAzMzY0YWNi
YWNmYzBmZmM4NTcyNzUyNzllZjU0NmNmYzg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
cnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfQ0ZCLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NGQi5oCkBAIC0zNiw3
ICszNiw3IEBAIGNsYXNzIENyeXB0b0tleUFFUzsKIAogY2xhc3MgQ3J5cHRvQWxnb3JpdGhtQUVT
X0NGQiBmaW5hbCA6IHB1YmxpYyBDcnlwdG9BbGdvcml0aG0gewogcHVibGljOgotICAgIHN0YXRp
YyBjb25zdGV4cHIgY29uc3QgY2hhciogc19uYW1lID0gIkFFUy1DRkItOCI7CisgICAgc3RhdGlj
IGNvbnN0ZXhwciBBU0NJSUxpdGVyYWwgc19uYW1lID0gIkFFUy1DRkItOCJfczsKICAgICBzdGF0
aWMgY29uc3RleHByIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgc19pZGVudGlmaWVyID0gQ3J5
cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6QUVTX0NGQjsKICAgICBzdGF0aWMgUmVmPENyeXB0b0Fs
Z29yaXRobT4gY3JlYXRlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9h
bGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DVFIuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0
by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DVFIuaAppbmRleCA3MThmNmUwZTMzODZl
NmZlNjI1Mzk1YWZiYjc5YWQzMGM0ZmE0MTRhLi44YmQzOTMzOWRjMzYwMGY2YzQ4NmVhNjEwYzFi
ODI0NmI4YzIyNzAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGht
cy9DcnlwdG9BbGdvcml0aG1BRVNfQ1RSLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2Fs
Z29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NUUi5oCkBAIC02NCw3ICs2NCw3IEBAIHB1Ymxp
YzoKICAgICAgICAgY29uc3Qgc2l6ZV90IG1fY291bnRlckxlbmd0aDsKICAgICB9OwogCi0gICAg
c3RhdGljIGNvbnN0ZXhwciBjb25zdCBjaGFyKiBzX25hbWUgPSAiQUVTLUNUUiI7CisgICAgc3Rh
dGljIGNvbnN0ZXhwciBBU0NJSUxpdGVyYWwgc19uYW1lID0gIkFFUy1DVFIiX3M7CiAgICAgc3Rh
dGljIGNvbnN0ZXhwciBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIHNfaWRlbnRpZmllciA9IENy
eXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkFFU19DVFI7CiAgICAgc3RhdGljIFJlZjxDcnlwdG9B
bGdvcml0aG0+IGNyZWF0ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8v
YWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfR0NNLmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlw
dG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfR0NNLmgKaW5kZXggZDBhZDFmMTNjMTc4
YjVjYzliMTc2ZWIzMGU2Y2VjMmExYmNiNDY1OC4uNTMzMTBlMTExMDc1ZTE2MzRlZjNlMDU3YjRh
ZGY2YTEzYzY5MjMxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRo
bXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0dDTS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9h
bGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19HQ00uaApAQCAtMzYsNyArMzYsNyBAQCBjbGFz
cyBDcnlwdG9LZXlBRVM7CiAKIGNsYXNzIENyeXB0b0FsZ29yaXRobUFFU19HQ00gZmluYWwgOiBw
dWJsaWMgQ3J5cHRvQWxnb3JpdGhtIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3RleHByIGNv
bnN0IGNoYXIqIHNfbmFtZSA9ICJBRVMtR0NNIjsKKyAgICBzdGF0aWMgY29uc3RleHByIEFTQ0lJ
TGl0ZXJhbCBzX25hbWUgPSAiQUVTLUdDTSJfczsKICAgICBzdGF0aWMgY29uc3RleHByIENyeXB0
b0FsZ29yaXRobUlkZW50aWZpZXIgc19pZGVudGlmaWVyID0gQ3J5cHRvQWxnb3JpdGhtSWRlbnRp
Zmllcjo6QUVTX0dDTTsKICAgICBzdGF0aWMgUmVmPENyeXB0b0FsZ29yaXRobT4gY3JlYXRlKCk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0Fs
Z29yaXRobUFFU19LVy5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRv
QWxnb3JpdGhtQUVTX0tXLmgKaW5kZXggNTdlNjljMTVjMTJjN2VlMThlYjc2NTE4ZGZmODdiZjRi
NTcyNGI5OS4uYTA4ZGVjM2YyNmNiYjU5OTE1NGEyMzU2NTkwZWYwZmQxNzdjNjNkYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVT
X0tXLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3Jp
dGhtQUVTX0tXLmgKQEAgLTM1LDcgKzM1LDcgQEAgY2xhc3MgQ3J5cHRvS2V5QUVTOwogCiBjbGFz
cyBDcnlwdG9BbGdvcml0aG1BRVNfS1cgZmluYWwgOiBwdWJsaWMgQ3J5cHRvQWxnb3JpdGhtIHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3RleHByIGNvbnN0IGNoYXIqIHNfbmFtZSA9ICJBRVMt
S1ciOworICAgIHN0YXRpYyBjb25zdGV4cHIgQVNDSUlMaXRlcmFsIHNfbmFtZSA9ICJBRVMtS1ci
X3M7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIHNfaWRl
bnRpZmllciA9IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkFFU19LVzsKICAgICBzdGF0aWMg
UmVmPENyeXB0b0FsZ29yaXRobT4gY3JlYXRlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUVDREguaCBiL1NvdXJjZS9XZWJD
b3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUVDREguaAppbmRleCA5M2ExNWEy
ZGEzNTFkY2U3Mjc0MzM4MTk3ZDI2NjMxMDU4NWY3YmY1Li4zMmQ1NTQ1NmM5NzA4MjVjY2U1NTJk
N2RlMDQzYTQyOTUwZDBlMjNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxn
b3JpdGhtcy9DcnlwdG9BbGdvcml0aG1FQ0RILmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRv
L2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtRUNESC5oCkBAIC0zNSw3ICszNSw3IEBAIGNsYXNz
IENyeXB0b0tleUVDOwogCiBjbGFzcyBDcnlwdG9BbGdvcml0aG1FQ0RIIGZpbmFsIDogcHVibGlj
IENyeXB0b0FsZ29yaXRobSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBjb25zdCBj
aGFyKiBzX25hbWUgPSAiRUNESCI7CisgICAgc3RhdGljIGNvbnN0ZXhwciBBU0NJSUxpdGVyYWwg
c19uYW1lID0gIkVDREgiX3M7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBDcnlwdG9BbGdvcml0aG1J
ZGVudGlmaWVyIHNfaWRlbnRpZmllciA9IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkVDREg7
CiAgICAgc3RhdGljIFJlZjxDcnlwdG9BbGdvcml0aG0+IGNyZWF0ZSgpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1FQ0RTQS5o
IGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtRUNEU0Eu
aAppbmRleCAzYTU5MWJkZmFmMjI4ODUwZGU4YzA4MmJmMjc3YTE5MDA2Mzg5ZTY2Li5iN2M3ODg5
ZjhlMDMyMTM0YzNkZTAzYjdhYWJmNzVjNTJmODJiZDNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1FQ0RTQS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUVDRFNBLmgKQEAgLTM2
LDcgKzM2LDcgQEAgY2xhc3MgQ3J5cHRvS2V5RUM7CiAKIGNsYXNzIENyeXB0b0FsZ29yaXRobUVD
RFNBIGZpbmFsIDogcHVibGljIENyeXB0b0FsZ29yaXRobSB7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IGNvbnN0ZXhwciBjb25zdCBjaGFyKiBzX25hbWUgPSAiRUNEU0EiOworICAgIHN0YXRpYyBjb25z
dGV4cHIgQVNDSUlMaXRlcmFsIHNfbmFtZSA9ICJFQ0RTQSJfczsKICAgICBzdGF0aWMgY29uc3Rl
eHByIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgc19pZGVudGlmaWVyID0gQ3J5cHRvQWxnb3Jp
dGhtSWRlbnRpZmllcjo6RUNEU0E7CiAgICAgc3RhdGljIFJlZjxDcnlwdG9BbGdvcml0aG0+IGNy
ZWF0ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9D
cnlwdG9BbGdvcml0aG1IS0RGLmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9D
cnlwdG9BbGdvcml0aG1IS0RGLmgKaW5kZXggMWRkY2Q5ZDFhMTQ2MzE2MDMyMWIxMTZhZTc0ZDlh
MzZkOWNiMWQ2YS4uOGYzOTM5YjE5YjRlYzkyODY3ODA3M2YyNzQ2YTk1YjBlZjNiMzVhMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGht
SEtERi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29y
aXRobUhLREYuaApAQCAtMzYsNyArMzYsNyBAQCBjbGFzcyBDcnlwdG9LZXlSYXc7CiAKIGNsYXNz
IENyeXB0b0FsZ29yaXRobUhLREYgZmluYWwgOiBwdWJsaWMgQ3J5cHRvQWxnb3JpdGhtIHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgY29uc3RleHByIGNvbnN0IGNoYXIqIHNfbmFtZSA9ICJIS0RGIjsK
KyAgICBzdGF0aWMgY29uc3RleHByIEFTQ0lJTGl0ZXJhbCBzX25hbWUgPSAiSEtERiJfczsKICAg
ICBzdGF0aWMgY29uc3RleHByIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgc19pZGVudGlmaWVy
ID0gQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6SEtERjsKICAgICBzdGF0aWMgUmVmPENyeXB0
b0FsZ29yaXRobT4gY3JlYXRlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0
by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUhNQUMuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0
by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUhNQUMuaAppbmRleCBmYThmMGFkZGNjZTEyOGYy
NDcxNTE3M2ZhZmJmYTkyNzMyNTI1MGQzLi45ZjEwODQ2OThhYjQzZjdlNWVkOTliYmNhZDg1Zjgx
MWFhYmI1YzIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9D
cnlwdG9BbGdvcml0aG1ITUFDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRo
bXMvQ3J5cHRvQWxnb3JpdGhtSE1BQy5oCkBAIC0zNSw3ICszNSw3IEBAIGNsYXNzIENyeXB0b0tl
eUhNQUM7CiAKIGNsYXNzIENyeXB0b0FsZ29yaXRobUhNQUMgZmluYWwgOiBwdWJsaWMgQ3J5cHRv
QWxnb3JpdGhtIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3RleHByIGNvbnN0IGNoYXIqIHNf
bmFtZSA9ICJITUFDIjsKKyAgICBzdGF0aWMgY29uc3RleHByIEFTQ0lJTGl0ZXJhbCBzX25hbWUg
PSAiSE1BQyJfczsKICAgICBzdGF0aWMgY29uc3RleHByIENyeXB0b0FsZ29yaXRobUlkZW50aWZp
ZXIgc19pZGVudGlmaWVyID0gQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6SE1BQzsKICAgICBz
dGF0aWMgUmVmPENyeXB0b0FsZ29yaXRobT4gY3JlYXRlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVBCS0RGMi5oIGIvU291
cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUEJLREYyLmgKaW5k
ZXggYmQ5NzQ1YzcwMzU4ZTc4ZDUzYjQ4MGNjMjY2ZGM0NDk3NzhmYjg0Mi4uMzQwNjllNTFmYWFl
NmEyMDcyMjI5ODI4ZDE2ZDlhMzI5ZDVhOGJmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUEJLREYyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUEJLREYyLmgKQEAgLTM2LDcg
KzM2LDcgQEAgY2xhc3MgQ3J5cHRvS2V5UmF3OwogCiBjbGFzcyBDcnlwdG9BbGdvcml0aG1QQktE
RjIgZmluYWwgOiBwdWJsaWMgQ3J5cHRvQWxnb3JpdGhtIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
Y29uc3RleHByIGNvbnN0IGNoYXIqIHNfbmFtZSA9ICJQQktERjIiOworICAgIHN0YXRpYyBjb25z
dGV4cHIgQVNDSUlMaXRlcmFsIHNfbmFtZSA9ICJQQktERjIiX3M7CiAgICAgc3RhdGljIGNvbnN0
ZXhwciBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIHNfaWRlbnRpZmllciA9IENyeXB0b0FsZ29y
aXRobUlkZW50aWZpZXI6OlBCS0RGMjsKICAgICBzdGF0aWMgUmVmPENyeXB0b0FsZ29yaXRobT4g
Y3JlYXRlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1z
L0NyeXB0b0FsZ29yaXRobVJTQUVTX1BLQ1MxX3YxXzUuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0
by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQUVTX1BLQ1MxX3YxXzUuaAppbmRleCA4YjUx
YjQxZTdjMGE1N2Y2NjhmNTg0NzlmYTI5ZTYzOGU5ZTFhZDBiLi5kMjFlNmMxZWUyODZmN2RjNjM4
NzVhOTg0YWIyM2U3MDA0ZWUxODgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8v
YWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FFU19QS0NTMV92MV81LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBRVNfUEtDUzFfdjFf
NS5oCkBAIC0zNSw3ICszNSw3IEBAIGNsYXNzIENyeXB0b0tleVJTQTsKIAogY2xhc3MgQ3J5cHRv
QWxnb3JpdGhtUlNBRVNfUEtDUzFfdjFfNSBmaW5hbCA6IHB1YmxpYyBDcnlwdG9BbGdvcml0aG0g
ewogcHVibGljOgotICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3QgY2hhciogc19uYW1lID0gIlJT
QUVTLVBLQ1MxLXYxXzUiOworICAgIHN0YXRpYyBjb25zdGV4cHIgQVNDSUlMaXRlcmFsIHNfbmFt
ZSA9ICJSU0FFUy1QS0NTMS12MV81Il9zOwogICAgIHN0YXRpYyBjb25zdGV4cHIgQ3J5cHRvQWxn
b3JpdGhtSWRlbnRpZmllciBzX2lkZW50aWZpZXIgPSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVy
OjpSU0FFU19QS0NTMV92MV81OwogICAgIHN0YXRpYyBSZWY8Q3J5cHRvQWxnb3JpdGhtPiBjcmVh
dGUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5
cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzUuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9h
bGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81LmgKaW5kZXggZDliN2I0
NTA3MjNhZmNkYTk5OTk1Y2I4ODNjZGEzOWNhZjMyOGRjZS4uZDE4NWQzYTRiZGEyZGEzN2NkYjBk
ZjI4ZjY4YTI3M2RkZTk5Yjg2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2Fs
Z29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzUuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFf
NS5oCkBAIC0zNSw3ICszNSw3IEBAIGNsYXNzIENyeXB0b0tleVJTQTsKIAogY2xhc3MgQ3J5cHRv
QWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzUgZmluYWwgOiBwdWJsaWMgQ3J5cHRvQWxnb3JpdGht
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3RleHByIGNvbnN0IGNoYXIqIHNfbmFtZSA9ICJS
U0FTU0EtUEtDUzEtdjFfNSI7CisgICAgc3RhdGljIGNvbnN0ZXhwciBBU0NJSUxpdGVyYWwgc19u
YW1lID0gIlJTQVNTQS1QS0NTMS12MV81Il9zOwogICAgIHN0YXRpYyBjb25zdGV4cHIgQ3J5cHRv
QWxnb3JpdGhtSWRlbnRpZmllciBzX2lkZW50aWZpZXIgPSBDcnlwdG9BbGdvcml0aG1JZGVudGlm
aWVyOjpSU0FTU0FfUEtDUzFfdjFfNTsKICAgICBzdGF0aWMgUmVmPENyeXB0b0FsZ29yaXRobT4g
Y3JlYXRlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1z
L0NyeXB0b0FsZ29yaXRobVJTQV9PQUVQLmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3Jp
dGhtcy9DcnlwdG9BbGdvcml0aG1SU0FfT0FFUC5oCmluZGV4IDA5NmFmM2NhMjMwNzk1OWYyNDU0
ZWUzY2ZkMmIzZjBlMjJiNDczZjIuLmRiYTdlYTlkNWQ3MjJlNDI3YTNiMGFhNGY5ZGNkMzJmZjQ0
NTlmMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0
b0FsZ29yaXRobVJTQV9PQUVQLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRo
bXMvQ3J5cHRvQWxnb3JpdGhtUlNBX09BRVAuaApAQCAtMzYsNyArMzYsNyBAQCBjbGFzcyBDcnlw
dG9LZXlSU0E7CiAKIGNsYXNzIENyeXB0b0FsZ29yaXRobVJTQV9PQUVQIGZpbmFsIDogcHVibGlj
IENyeXB0b0FsZ29yaXRobSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBjb25zdCBj
aGFyKiBzX25hbWUgPSAiUlNBLU9BRVAiOworICAgIHN0YXRpYyBjb25zdGV4cHIgQVNDSUlMaXRl
cmFsIHNfbmFtZSA9ICJSU0EtT0FFUCJfczsKICAgICBzdGF0aWMgY29uc3RleHByIENyeXB0b0Fs
Z29yaXRobUlkZW50aWZpZXIgc19pZGVudGlmaWVyID0gQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmll
cjo6UlNBX09BRVA7CiAgICAgc3RhdGljIFJlZjxDcnlwdG9BbGdvcml0aG0+IGNyZWF0ZSgpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdv
cml0aG1SU0FfUFNTLmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9B
bGdvcml0aG1SU0FfUFNTLmgKaW5kZXggNTg3OWE1NjdjY2NjN2IwYTFjOWFkNGQ5MTc4OWQ5ZDA1
NGIwMDk3NC4uYjFmN2Y3NzJjZTQyMjc4ZDRkOTRkNWMwYTc2Y2FlNWVkZjBlNDBlYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNB
X1BTUy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29y
aXRobVJTQV9QU1MuaApAQCAtMzYsNyArMzYsNyBAQCBjbGFzcyBDcnlwdG9LZXlSU0E7CiAKIGNs
YXNzIENyeXB0b0FsZ29yaXRobVJTQV9QU1MgZmluYWwgOiBwdWJsaWMgQ3J5cHRvQWxnb3JpdGht
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3RleHByIGNvbnN0IGNoYXIqIHNfbmFtZSA9ICJS
U0EtUFNTIjsKKyAgICBzdGF0aWMgY29uc3RleHByIEFTQ0lJTGl0ZXJhbCBzX25hbWUgPSAiUlNB
LVBTUyJfczsKICAgICBzdGF0aWMgY29uc3RleHByIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIg
c19pZGVudGlmaWVyID0gQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6UlNBX1BTUzsKICAgICBz
dGF0aWMgUmVmPENyeXB0b0FsZ29yaXRobT4gY3JlYXRlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTEuaCBiL1NvdXJj
ZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTEuaAppbmRleCBk
ODA3YWJiOTc0Y2JhYWMzYjBhN2JjN2FkODY1OGZjYWZiNWFkNmFlLi4xZmQ3NzVhODEzNjQzYzFi
MmZhY2M3ZDNjOTQwOWQzMmZlMWNlODU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlw
dG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEExLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMS5oCkBAIC0zMyw3ICszMyw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ3J5cHRvQWxnb3JpdGhtU0hBMSBmaW5hbCA6
IHB1YmxpYyBDcnlwdG9BbGdvcml0aG0gewogcHVibGljOgotICAgIHN0YXRpYyBjb25zdGV4cHIg
Y29uc3QgY2hhciogc19uYW1lID0gIlNIQS0xIjsKKyAgICBzdGF0aWMgY29uc3RleHByIEFTQ0lJ
TGl0ZXJhbCBzX25hbWUgPSAiU0hBLTEiX3M7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBDcnlwdG9B
bGdvcml0aG1JZGVudGlmaWVyIHNfaWRlbnRpZmllciA9IENyeXB0b0FsZ29yaXRobUlkZW50aWZp
ZXI6OlNIQV8xOwogICAgIHN0YXRpYyBSZWY8Q3J5cHRvQWxnb3JpdGhtPiBjcmVhdGUoKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3Jp
dGhtU0hBMjI0LmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdv
cml0aG1TSEEyMjQuaAppbmRleCA3ODA0YmFjZmYyNTcyZDhkYzY1MTEwMDQwNGY5MDViZjkzYmZj
NGM2Li40OTNlMTYyYWIzNjUyZTY2YzM1MDRhOGQ3OTVjMjg2OWQ0ZGRjZWM5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEyMjQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1T
SEEyMjQuaApAQCAtMzMsNyArMzMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENy
eXB0b0FsZ29yaXRobVNIQTIyNCBmaW5hbCA6IHB1YmxpYyBDcnlwdG9BbGdvcml0aG0gewogcHVi
bGljOgotICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3QgY2hhciogc19uYW1lID0gIlNIQS0yMjQi
OworICAgIHN0YXRpYyBjb25zdGV4cHIgQVNDSUlMaXRlcmFsIHNfbmFtZSA9ICJTSEEtMjI0Il9z
OwogICAgIHN0YXRpYyBjb25zdGV4cHIgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBzX2lkZW50
aWZpZXIgPSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpTSEFfMjI0OwogICAgIHN0YXRpYyBS
ZWY8Q3J5cHRvQWxnb3JpdGhtPiBjcmVhdGUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMjU2LmggYi9Tb3VyY2UvV2Vi
Q29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEyNTYuaAppbmRleCBjZTI0
MDRjNzRkNTVjOGYyNzQ0MDVlNTZmNGQ1OGE3ZmY2MTYxNWY5Li5mNWE4NTQzYzgyYzU1NDhlZTQy
YjNiOTMyNzExZTY4NTVlZjhmMGY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8v
YWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEyNTYuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
cnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEyNTYuaApAQCAtMzMsNyArMzMsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENyeXB0b0FsZ29yaXRobVNIQTI1NiBmaW5h
bCA6IHB1YmxpYyBDcnlwdG9BbGdvcml0aG0gewogcHVibGljOgotICAgIHN0YXRpYyBjb25zdGV4
cHIgY29uc3QgY2hhciogc19uYW1lID0gIlNIQS0yNTYiOworICAgIHN0YXRpYyBjb25zdGV4cHIg
QVNDSUlMaXRlcmFsIHNfbmFtZSA9ICJTSEEtMjU2Il9zOwogICAgIHN0YXRpYyBjb25zdCBDcnlw
dG9BbGdvcml0aG1JZGVudGlmaWVyIHNfaWRlbnRpZmllciA9IENyeXB0b0FsZ29yaXRobUlkZW50
aWZpZXI6OlNIQV8yNTY7CiAgICAgc3RhdGljIFJlZjxDcnlwdG9BbGdvcml0aG0+IGNyZWF0ZSgp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9B
bGdvcml0aG1TSEEzODQuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0
b0FsZ29yaXRobVNIQTM4NC5oCmluZGV4IDZjYzU3NDkxMzI2YTAwOGU0MjZmMjY5MjEzODlhZDZm
NGM0YmY4NDkuLmU1YmYyMjMyYWNmMmRhNmExMDA2ZWE1MjAxOTM0MDhiMTgwNWYyYzMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNI
QTM4NC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29y
aXRobVNIQTM4NC5oCkBAIC0zMyw3ICszMyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xh
c3MgQ3J5cHRvQWxnb3JpdGhtU0hBMzg0IGZpbmFsIDogcHVibGljIENyeXB0b0FsZ29yaXRobSB7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBjb25zdCBjaGFyKiBzX25hbWUgPSAiU0hB
LTM4NCI7CisgICAgc3RhdGljIGNvbnN0ZXhwciBBU0NJSUxpdGVyYWwgc19uYW1lID0gIlNIQS0z
ODQiX3M7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIHNf
aWRlbnRpZmllciA9IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlNIQV8zODQ7CiAgICAgc3Rh
dGljIFJlZjxDcnlwdG9BbGdvcml0aG0+IGNyZWF0ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEE1MTIuaCBiL1NvdXJj
ZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTUxMi5oCmluZGV4
IDBkNGEwYjk2YjY0MmE0Y2RmYTdiZjk5MGE5N2VmNzNiOGI3NjEzZjguLjA1Zjk4ZmM0YTg2NjZk
YWZkYTYwNTlhMTRmZTVlMTczN2E0YTc0MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Ny
eXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTUxMi5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTUxMi5oCkBAIC0zMyw3ICsz
Myw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ3J5cHRvQWxnb3JpdGhtU0hBNTEy
IGZpbmFsIDogcHVibGljIENyeXB0b0FsZ29yaXRobSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNv
bnN0ZXhwciBjb25zdCBjaGFyKiBzX25hbWUgPSAiU0hBLTUxMiI7CisgICAgc3RhdGljIGNvbnN0
ZXhwciBBU0NJSUxpdGVyYWwgc19uYW1lID0gIlNIQS01MTIiX3M7CiAgICAgc3RhdGljIGNvbnN0
ZXhwciBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIHNfaWRlbnRpZmllciA9IENyeXB0b0FsZ29y
aXRobUlkZW50aWZpZXI6OlNIQV81MTI7CiAgICAgc3RhdGljIFJlZjxDcnlwdG9BbGdvcml0aG0+
IGNyZWF0ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9Dcnlw
dG9LZXlBRVMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5QUVTLmNw
cAppbmRleCA0MmZlM2E0YmU1MjE4MTk5NzM0ZGVkZDAzYWI3Yzk3MWYzMDExYWQ0Li5jNzZjODYz
ZDVhZmM1YTQxNWIwNjU1ODg1MGQzMDc1MjBjMGM2N2NlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlBRVMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Ny
eXB0by9rZXlzL0NyeXB0b0tleUFFUy5jcHAKQEAgLTEwNiw3ICsxMDYsNyBAQCBSZWZQdHI8Q3J5
cHRvS2V5QUVTPiBDcnlwdG9LZXlBRVM6OmltcG9ydEp3ayhDcnlwdG9BbGdvcml0aG1JZGVudGlm
aWVyIGFsZ29yaXRobQogSnNvbldlYktleSBDcnlwdG9LZXlBRVM6OmV4cG9ydEp3aygpIGNvbnN0
CiB7CiAgICAgSnNvbldlYktleSByZXN1bHQ7Ci0gICAgcmVzdWx0Lmt0eSA9ICJvY3QiOworICAg
IHJlc3VsdC5rdHkgPSAib2N0Il9zOwogICAgIHJlc3VsdC5rID0gYmFzZTY0VVJMRW5jb2RlVG9T
dHJpbmcobV9rZXkpOwogICAgIHJlc3VsdC5rZXlfb3BzID0gdXNhZ2VzKCk7CiAgICAgcmVzdWx0
LmV4dCA9IGV4dHJhY3RhYmxlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8v
a2V5cy9DcnlwdG9LZXlFQy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9L
ZXlFQy5jcHAKaW5kZXggZDM2ZDM0MGY3MGE4ZjRhMTdmZjVmNjE5Y2ViMWQ5ZDg0NWNhMmEzMy4u
ZmNlODJiZWU5MWNhYjc0MjYyMDQwMGRjYTc3MzA1YzE3ZjY4NTIwMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5RUMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleUVDLmNwcApAQCAtMTQ4LDcgKzE0OCw3IEBAIEV4Y2Vw
dGlvbk9yPFZlY3Rvcjx1aW50OF90Pj4gQ3J5cHRvS2V5RUM6OmV4cG9ydFJhdygpIGNvbnN0CiBF
eGNlcHRpb25PcjxKc29uV2ViS2V5PiBDcnlwdG9LZXlFQzo6ZXhwb3J0SndrKCkgY29uc3QKIHsK
ICAgICBKc29uV2ViS2V5IHJlc3VsdDsKLSAgICByZXN1bHQua3R5ID0gIkVDIjsKKyAgICByZXN1
bHQua3R5ID0gIkVDIl9zOwogICAgIHN3aXRjaCAobV9jdXJ2ZSkgewogICAgIGNhc2UgTmFtZWRD
dXJ2ZTo6UDI1NjoKICAgICAgICAgcmVzdWx0LmNydiA9IFAyNTY7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlITUFDLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2NyeXB0by9rZXlzL0NyeXB0b0tleUhNQUMuY3BwCmluZGV4IDQzNGYyNDA0NTVkYzhjZTM0MWUw
MDU0MDNiZjA1Y2I5MDAzN2QxNDkuLjI1NDNlZDU0NjU3ZTdhZTNmMmY3OTk2Yzc4NDQzZGZiMDlh
NzI3YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleUhN
QUMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleUhNQUMuY3Bw
CkBAIC0xMjEsNyArMTIxLDcgQEAgUmVmUHRyPENyeXB0b0tleUhNQUM+IENyeXB0b0tleUhNQUM6
OmltcG9ydEp3ayhzaXplX3QgbGVuZ3RoQml0cywgQ3J5cHRvQWxnb3JpdGgKIEpzb25XZWJLZXkg
Q3J5cHRvS2V5SE1BQzo6ZXhwb3J0SndrKCkgY29uc3QKIHsKICAgICBKc29uV2ViS2V5IHJlc3Vs
dDsKLSAgICByZXN1bHQua3R5ID0gIm9jdCI7CisgICAgcmVzdWx0Lmt0eSA9ICJvY3QiX3M7CiAg
ICAgcmVzdWx0LmsgPSBiYXNlNjRVUkxFbmNvZGVUb1N0cmluZyhtX2tleSk7CiAgICAgcmVzdWx0
LmtleV9vcHMgPSB1c2FnZXMoKTsKICAgICByZXN1bHQuZXh0ID0gZXh0cmFjdGFibGUoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleVJTQS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlSU0EuY3BwCmluZGV4IDZiYmYxNGYy
NDYwYjNkMWY1MDQ4OGFmMzkyOTcwOWY3NDIxNmVlMjQuLjA1ODFkNjcwNzJjYjkzNjZkMzc3NTQy
MjY4YTQ4ZmZkYTA2MzlhNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlz
L0NyeXB0b0tleVJTQS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRv
S2V5UlNBLmNwcApAQCAtMTMzLDcgKzEzMyw3IEBAIFJlZlB0cjxDcnlwdG9LZXlSU0E+IENyeXB0
b0tleVJTQTo6aW1wb3J0SndrKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgYWxnb3JpdGhtCiBK
c29uV2ViS2V5IENyeXB0b0tleVJTQTo6ZXhwb3J0SndrKCkgY29uc3QKIHsKICAgICBKc29uV2Vi
S2V5IHJlc3VsdDsKLSAgICByZXN1bHQua3R5ID0gIlJTQSI7CisgICAgcmVzdWx0Lmt0eSA9ICJS
U0EiX3M7CiAgICAgcmVzdWx0LmtleV9vcHMgPSB1c2FnZXMoKTsKICAgICByZXN1bHQuZXh0ID0g
ZXh0cmFjdGFibGUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRG
YWNlU3JjVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU3JjVmFsdWUu
Y3BwCmluZGV4IDMwNWMzMmVhODBjY2U1OTBiNGI2MWQwNWQ5YTUwYzJmNjJlOWQ2ZTYuLmViNjg2
NjM1NzU1YzNlMTE5ZDBiOGFlNjg1YzViNmVkMzI4MDU4OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNyY1ZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTRm9udEZhY2VTcmNWYWx1ZS5jcHAKQEAgLTU2LDcgKzU2LDcgQEAgYm9vbCBDU1NGb250
RmFjZVNyY1ZhbHVlOjppc1N1cHBvcnRlZEZvcm1hdCgpIGNvbnN0CiAgICAgLy8gd2Ugd2lsbCBh
bHNvIGNoZWNrIHRvIHNlZSBpZiB0aGUgVVJMIGVuZHMgd2l0aCAuZW90LiBJZiBzbywgd2UnbGwg
YXNzdW1lIHRoYXQgd2Ugc2hvdWxkbid0IGxvYWQgaXQuCiAgICAgaWYgKG1fZm9ybWF0LmlzRW1w
dHkoKSkgewogICAgICAgICAvLyBDaGVjayBmb3IgLmVvdC4KLSAgICAgICAgaWYgKCFwcm90b2Nv
bElzKG1fcmVzb3VyY2UsICJkYXRhIikgJiYgbV9yZXNvdXJjZS5lbmRzV2l0aElnbm9yaW5nQVND
SUlDYXNlKCIuZW90IikpCisgICAgICAgIGlmICghcHJvdG9jb2xJcyhtX3Jlc291cmNlLCAiZGF0
YSIpICYmIG1fcmVzb3VyY2UuZW5kc1dpdGhJZ25vcmluZ0FTQ0lJQ2FzZSgiLmVvdCJfcykpCiAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmlkVGVtcGxhdGVBcmVhc1ZhbHVlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmlkVGVtcGxhdGVBcmVhc1ZhbHVlLmNwcAppbmRl
eCBlMGI3ODY1OWFkYmQwMTQ4MzllNTdjMDYyMWRjMTYxOWVmODEzMTA5Li5kZmQ3MjUxM2JjZGY1
NDYxMDllNjkwMmI1YmU5Yjk3OTJlNmEyNzRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTR3JpZFRlbXBsYXRlQXJlYXNWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU0dyaWRUZW1wbGF0ZUFyZWFzVmFsdWUuY3BwCkBAIC02Myw3ICs2Myw3IEBAIHN0YXRpYyBT
dHJpbmcgc3RyaW5nRm9yUG9zaXRpb24oY29uc3QgTmFtZWRHcmlkQXJlYU1hcCYgZ3JpZEFyZWFN
YXAsIHNpemVfdCByb3csCiAgICAgICAgICAgICByZXR1cm4gaXQua2V5OwogICAgIH0KIAotICAg
IHJldHVybiAiLiI7CisgICAgcmV0dXJuICIuIl9zOwogfQogCiBTdHJpbmcgQ1NTR3JpZFRlbXBs
YXRlQXJlYXNWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1ByaW1pdGl2ZVZhbHVlLmNwcAppbmRleCA3ODljNjM0OTdmMjIxMDY0OWI0NGFhODgyYWUwMWI2
OGViYjhkYTI5Li45ZmU2NGI1YmU5NDU2YTQ0OGVjZjUwNDk3YTQxMzU3OTRmOGJkOWI5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHAKQEAgLTEyMzEsNjQgKzEyMzEs
NjQgQEAgTkVWRVJfSU5MSU5FIFN0cmluZyBDU1NQcmltaXRpdmVWYWx1ZTo6Zm9ybWF0SW50ZWdl
clZhbHVlKFN0cmluZ1ZpZXcgc3VmZml4KSBjb24KIFN0cmluZyBDU1NQcmltaXRpdmVWYWx1ZTo6
dW5pdFR5cGVTdHJpbmcoQ1NTVW5pdFR5cGUgdW5pdFR5cGUpCiB7CiAgICAgc3dpdGNoICh1bml0
VHlwZSkgewotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfUEVSQ0VOVEFHRTogcmV0dXJu
ICIlIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0VNUzogcmV0dXJuICJlbSI7Ci0g
ICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19FWFM6IHJldHVybiAiZXgiOwotICAgICAgICBj
YXNlIENTU1VuaXRUeXBlOjpDU1NfUFg6IHJldHVybiAicHgiOwotICAgICAgICBjYXNlIENTU1Vu
aXRUeXBlOjpDU1NfQ006IHJldHVybiAiY20iOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpD
U1NfTU06IHJldHVybiAibW0iOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfSU46IHJl
dHVybiAiaW4iOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfUFQ6IHJldHVybiAicHQi
OwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfUEM6IHJldHVybiAicGMiOwotICAgICAg
ICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfREVHOiByZXR1cm4gImRlZyI7Ci0gICAgICAgIGNhc2Ug
Q1NTVW5pdFR5cGU6OkNTU19SQUQ6IHJldHVybiAicmFkIjsKLSAgICAgICAgY2FzZSBDU1NVbml0
VHlwZTo6Q1NTX0dSQUQ6IHJldHVybiAiZ3JhZCI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6
OkNTU19NUzogcmV0dXJuICJtcyI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TOiBy
ZXR1cm4gInMiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfSFo6IHJldHVybiAiaHoi
OwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfS0haOiByZXR1cm4gImtoeiI7Ci0gICAg
ICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WVzogcmV0dXJuICJ2dyI7Ci0gICAgICAgIGNhc2Ug
Q1NTVW5pdFR5cGU6OkNTU19WSDogcmV0dXJuICJ2aCI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5
cGU6OkNTU19WTUlOOiByZXR1cm4gInZtaW4iOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpD
U1NfVk1BWDogcmV0dXJuICJ2bWF4IjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZC
OiByZXR1cm4gInZiIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZJOiByZXR1cm4g
InZpIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWVzogcmV0dXJuICJzdnciOwot
ICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZIOiByZXR1cm4gInN2aCI7Ci0gICAgICAg
IGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVk1JTjogcmV0dXJuICJzdm1pbiI7Ci0gICAgICAgIGNh
c2UgQ1NTVW5pdFR5cGU6OkNTU19TVk1BWDogcmV0dXJuICJzdm1heCI7Ci0gICAgICAgIGNhc2Ug
Q1NTVW5pdFR5cGU6OkNTU19TVkI6IHJldHVybiAic3ZiIjsKLSAgICAgICAgY2FzZSBDU1NVbml0
VHlwZTo6Q1NTX1NWSTogcmV0dXJuICJzdmkiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpD
U1NfTFZXOiByZXR1cm4gImx2dyI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVkg6
IHJldHVybiAibHZoIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWTUlOOiByZXR1
cm4gImx2bWluIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWTUFYOiByZXR1cm4g
Imx2bWF4IjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWQjogcmV0dXJuICJsdmIi
OwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZJOiByZXR1cm4gImx2aSI7Ci0gICAg
ICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVlc6IHJldHVybiAiZHZ3IjsKLSAgICAgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX0RWSDogcmV0dXJuICJkdmgiOwotICAgICAgICBjYXNlIENTU1Vu
aXRUeXBlOjpDU1NfRFZNSU46IHJldHVybiAiZHZtaW4iOwotICAgICAgICBjYXNlIENTU1VuaXRU
eXBlOjpDU1NfRFZNQVg6IHJldHVybiAiZHZtYXgiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfRFZCOiByZXR1cm4gImR2YiI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19E
Vkk6IHJldHVybiAiZHZpIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RQUFg6IHJl
dHVybiAiZHBweCI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19YOiByZXR1cm4gIngi
OwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFBJOiByZXR1cm4gImRwaSI7Ci0gICAg
ICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EUENNOiByZXR1cm4gImRwY20iOwotICAgICAgICBj
YXNlIENTU1VuaXRUeXBlOjpDU1NfRlI6IHJldHVybiAiZnIiOwotICAgICAgICBjYXNlIENTU1Vu
aXRUeXBlOjpDU1NfUTogcmV0dXJuICJxIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NT
X0xIUzogcmV0dXJuICJsaCI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19STEhTOiBy
ZXR1cm4gInJsaCI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19UVVJOOiByZXR1cm4g
InR1cm4iOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfUkVNUzogcmV0dXJuICJyZW0i
OwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfQ0hTOiByZXR1cm4gImNoIjsKLSAgICAg
ICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0lDOiByZXR1cm4gImljIjsKLSAgICAgICAgY2FzZSBD
U1NVbml0VHlwZTo6Q1NTX0NRVzogcmV0dXJuICJjcXciOwotICAgICAgICBjYXNlIENTU1VuaXRU
eXBlOjpDU1NfQ1FIOiByZXR1cm4gImNxaCI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNT
U19DUUk6IHJldHVybiAiY3FpIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0NRQjog
cmV0dXJuICJjcWIiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfQ1FNQVg6IHJldHVy
biAiY3FtYXgiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfQ1FNSU46IHJldHVybiAi
Y3FtaW4iOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfUEVSQ0VOVEFHRTogcmV0dXJu
ICIlIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRU1TOiByZXR1cm4gImVtIl9z
OworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRVhTOiByZXR1cm4gImV4Il9zOworICAg
ICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfUFg6IHJldHVybiAicHgiX3M7CisgICAgICAgIGNh
c2UgQ1NTVW5pdFR5cGU6OkNTU19DTTogcmV0dXJuICJjbSJfczsKKyAgICAgICAgY2FzZSBDU1NV
bml0VHlwZTo6Q1NTX01NOiByZXR1cm4gIm1tIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfSU46IHJldHVybiAiaW4iX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19Q
VDogcmV0dXJuICJwdCJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1BDOiByZXR1
cm4gInBjIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfREVHOiByZXR1cm4gImRl
ZyJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1JBRDogcmV0dXJuICJyYWQiX3M7
CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19HUkFEOiByZXR1cm4gImdyYWQiX3M7Cisg
ICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19NUzogcmV0dXJuICJtcyJfczsKKyAgICAgICAg
Y2FzZSBDU1NVbml0VHlwZTo6Q1NTX1M6IHJldHVybiAicyJfczsKKyAgICAgICAgY2FzZSBDU1NV
bml0VHlwZTo6Q1NTX0haOiByZXR1cm4gImh6Il9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfS0haOiByZXR1cm4gImtoeiJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NT
X1ZXOiByZXR1cm4gInZ3Il9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVkg6IHJl
dHVybiAidmgiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WTUlOOiByZXR1cm4g
InZtaW4iX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WTUFYOiByZXR1cm4gInZt
YXgiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WQjogcmV0dXJuICJ2YiJfczsK
KyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZJOiByZXR1cm4gInZpIl9zOworICAgICAg
ICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZXOiByZXR1cm4gInN2dyJfczsKKyAgICAgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX1NWSDogcmV0dXJuICJzdmgiX3M7CisgICAgICAgIGNhc2UgQ1NT
VW5pdFR5cGU6OkNTU19TVk1JTjogcmV0dXJuICJzdm1pbiJfczsKKyAgICAgICAgY2FzZSBDU1NV
bml0VHlwZTo6Q1NTX1NWTUFYOiByZXR1cm4gInN2bWF4Il9zOworICAgICAgICBjYXNlIENTU1Vu
aXRUeXBlOjpDU1NfU1ZCOiByZXR1cm4gInN2YiJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlw
ZTo6Q1NTX1NWSTogcmV0dXJuICJzdmkiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNT
U19MVlc6IHJldHVybiAibHZ3Il9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZI
OiByZXR1cm4gImx2aCJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWTUlOOiBy
ZXR1cm4gImx2bWluIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZNQVg6IHJl
dHVybiAibHZtYXgiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVkI6IHJldHVy
biAibHZiIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZJOiByZXR1cm4gImx2
aSJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWVzogcmV0dXJuICJkdnciX3M7
CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVkg6IHJldHVybiAiZHZoIl9zOworICAg
ICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZNSU46IHJldHVybiAiZHZtaW4iX3M7CisgICAg
ICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVk1BWDogcmV0dXJuICJkdm1heCJfczsKKyAgICAg
ICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWQjogcmV0dXJuICJkdmIiX3M7CisgICAgICAgIGNh
c2UgQ1NTVW5pdFR5cGU6OkNTU19EVkk6IHJldHVybiAiZHZpIl9zOworICAgICAgICBjYXNlIENT
U1VuaXRUeXBlOjpDU1NfRFBQWDogcmV0dXJuICJkcHB4Il9zOworICAgICAgICBjYXNlIENTU1Vu
aXRUeXBlOjpDU1NfWDogcmV0dXJuICJ4Il9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpD
U1NfRFBJOiByZXR1cm4gImRwaSJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RQ
Q006IHJldHVybiAiZHBjbSJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0ZSOiBy
ZXR1cm4gImZyIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfUTogcmV0dXJuICJx
Il9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTEhTOiByZXR1cm4gImxoIl9zOwor
ICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfUkxIUzogcmV0dXJuICJybGgiX3M7CisgICAg
ICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19UVVJOOiByZXR1cm4gInR1cm4iX3M7CisgICAgICAg
IGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19SRU1TOiByZXR1cm4gInJlbSJfczsKKyAgICAgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX0NIUzogcmV0dXJuICJjaCJfczsKKyAgICAgICAgY2FzZSBDU1NV
bml0VHlwZTo6Q1NTX0lDOiByZXR1cm4gImljIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfQ1FXOiByZXR1cm4gImNxdyJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NT
X0NRSDogcmV0dXJuICJjcWgiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19DUUk6
IHJldHVybiAiY3FpIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfQ1FCOiByZXR1
cm4gImNxYiJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0NRTUFYOiByZXR1cm4g
ImNxbWF4Il9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfQ1FNSU46IHJldHVybiAi
Y3FtaW4iX3M7CiAKICAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1VOS05PV046CiAgICAg
ICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19OVU1CRVI6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTU3ViZ3JpZFZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdWJn
cmlkVmFsdWUuY3BwCmluZGV4IDRmOWQ0YTYwNDhjNjE0YzhkMGZhZjU0OGJmY2NiYWFlNDhhMGM4
NjUuLjZhNzk4NTlkYTI3ZGFlYWFhYTdiY2Y1Zjk5MTJkM2U3N2M1YmQyYmEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdWJncmlkVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NTdWJncmlkVmFsdWUuY3BwCkBAIC0zNiw3ICszNiw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIFN0cmluZyBDU1NTdWJncmlkVmFsdWU6OmN1c3RvbUNTU1RleHQoKSBjb25zdAog
ewogICAgIGlmICghbGVuZ3RoKCkpCi0gICAgICAgIHJldHVybiAic3ViZ3JpZCI7CisgICAgICAg
IHJldHVybiAic3ViZ3JpZCJfczsKICAgICByZXR1cm4gInN1YmdyaWQgIiArIENTU1ZhbHVlTGlz
dDo6Y3VzdG9tQ1NTVGV4dCgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
RE9NQ1NTTmFtZXNwYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01DU1NOYW1lc3BhY2Uu
Y3BwCmluZGV4IGY3ZmNmNWUyN2RkYzYwYjJmZDQ1ZDVjMzUxZDQ0N2Y2ZjFmMTBhY2IuLjgwMDc4
NzIxM2QzM2IwNzIzOWQxMTgyYzc0MzU5ZTQ5YzY1YzE4NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9ET01DU1NOYW1lc3BhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9E
T01DU1NOYW1lc3BhY2UuY3BwCkBAIC00Myw3ICs0Myw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogc3RhdGljIFN0cmluZyB2YWx1ZVdpdGhvdXRJbXBvcnRhbnQoY29uc3QgU3RyaW5nJiB2YWx1
ZSkKIHsKLSAgICBpZiAoIXZhbHVlLmVuZHNXaXRoSWdub3JpbmdBU0NJSUNhc2UoImltcG9ydGFu
dCIpKQorICAgIGlmICghdmFsdWUuZW5kc1dpdGhJZ25vcmluZ0FTQ0lJQ2FzZSgiaW1wb3J0YW50
Il9zKSkKICAgICAgICAgcmV0dXJuIHZhbHVlOwogCiAgICAgU3RyaW5nIG5ld1ZhbHVlID0gdmFs
dWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NTUmVnaXN0ZXJDdXN0b21Q
cm9wZXJ0eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NTUmVnaXN0ZXJDdXN0b21Qcm9w
ZXJ0eS5jcHAKaW5kZXggYzJjODI1MGFiMjJkODNlZGQ4MjIwMDEwYjgyZjYyNTFkZTdiODlmNy4u
OTJhMmNiYzQwZmQzMTYxZTBmOWZjNzViMTg4YTJkOThkM2U3MTkyYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL0RPTUNTU1JlZ2lzdGVyQ3VzdG9tUHJvcGVydHkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9ET01DU1NSZWdpc3RlckN1c3RvbVByb3BlcnR5LmNwcApAQCAtNDQs
NyArNDQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBFeGNlcHRpb25Pcjx2b2lkPiBET01DU1NS
ZWdpc3RlckN1c3RvbVByb3BlcnR5OjpyZWdpc3RlclByb3BlcnR5KERvY3VtZW50JiBkb2N1bWVu
dCwgY29uc3QgRE9NQ1NTQ3VzdG9tUHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQogewog
ICAgIGlmICghaXNDdXN0b21Qcm9wZXJ0eU5hbWUoZGVzY3JpcHRvci5uYW1lKSkKLSAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IFN5bnRheEVycm9yLCAiVGhlIG5hbWUgb2YgdGhpcyBwcm9wZXJ0
eSBpcyBub3QgYSBjdXN0b20gcHJvcGVydHkgbmFtZS4iIH07CisgICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBTeW50YXhFcnJvciwgIlRoZSBuYW1lIG9mIHRoaXMgcHJvcGVydHkgaXMgbm90IGEg
Y3VzdG9tIHByb3BlcnR5IG5hbWUuIl9zIH07CiAKICAgICBSZWZQdHI8Q1NTQ3VzdG9tUHJvcGVy
dHlWYWx1ZT4gaW5pdGlhbFZhbHVlOwogICAgIGlmICghZGVzY3JpcHRvci5pbml0aWFsVmFsdWUu
aXNFbXB0eSgpKSB7CkBAIC01OSw3ICs1OSw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IERPTUNTU1Jl
Z2lzdGVyQ3VzdG9tUHJvcGVydHk6OnJlZ2lzdGVyUHJvcGVydHkoRG9jdW1lbnQmIGRvY3VtCiAg
ICAgICAgIENTU1Byb3BlcnR5UGFyc2VyOjpjb2xsZWN0UGFyc2VkQ3VzdG9tUHJvcGVydHlWYWx1
ZURlcGVuZGVuY2llcyhkZXNjcmlwdG9yLnN5bnRheCwgZmFsc2UsIGRlcGVuZGVuY2llcywgdG9r
ZW5pemVyLnRva2VuUmFuZ2UoKSwgc3RyaWN0Q1NTUGFyc2VyQ29udGV4dCgpKTsKIAogICAgICAg
ICBpZiAoIWRlcGVuZGVuY2llcy5pc0VtcHR5KCkpCi0gICAgICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgU3ludGF4RXJyb3IsICJUaGUgZ2l2ZW4gaW5pdGlhbCB2YWx1ZSBtdXN0IGJlIGNvbXB1
dGF0aW9uYWxseSBpbmRlcGVuZGVudC4iIH07CisgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9u
IHsgU3ludGF4RXJyb3IsICJUaGUgZ2l2ZW4gaW5pdGlhbCB2YWx1ZSBtdXN0IGJlIGNvbXB1dGF0
aW9uYWxseSBpbmRlcGVuZGVudC4iX3MgfTsKIAogCiAgICAgICAgIFN0eWxlOjpNYXRjaFJlc3Vs
dCBtYXRjaFJlc3VsdDsKQEAgLTcwLDE4ICs3MCwxOCBAQCBFeGNlcHRpb25Pcjx2b2lkPiBET01D
U1NSZWdpc3RlckN1c3RvbVByb3BlcnR5OjpyZWdpc3RlclByb3BlcnR5KERvY3VtZW50JiBkb2N1
bQogICAgICAgICBpbml0aWFsVmFsdWUgPSBDU1NQcm9wZXJ0eVBhcnNlcjo6cGFyc2VUeXBlZEN1
c3RvbVByb3BlcnR5VmFsdWUoZGVzY3JpcHRvci5uYW1lLCBkZXNjcmlwdG9yLnN5bnRheCwgdG9r
ZW5pemVyLnRva2VuUmFuZ2UoKSwgZHVtbXlCdWlsZGVyLnN0YXRlKCksIHN0cmljdENTU1BhcnNl
ckNvbnRleHQoKSk7CiAKICAgICAgICAgaWYgKCFpbml0aWFsVmFsdWUgfHwgIWluaXRpYWxWYWx1
ZS0+aXNSZXNvbHZlZCgpKQotICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFN5bnRheEVy
cm9yLCAiVGhlIGdpdmVuIGluaXRpYWwgdmFsdWUgZG9lcyBub3QgcGFyc2UgZm9yIHRoZSBnaXZl
biBzeW50YXguIiB9OworICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFN5bnRheEVycm9y
LCAiVGhlIGdpdmVuIGluaXRpYWwgdmFsdWUgZG9lcyBub3QgcGFyc2UgZm9yIHRoZSBnaXZlbiBz
eW50YXguIl9zIH07CiAKICAgICAgICAgaW5pdGlhbFZhbHVlLT5jb2xsZWN0RGlyZWN0Q29tcHV0
YXRpb25hbERlcGVuZGVuY2llcyhkZXBlbmRlbmNpZXMpOwogICAgICAgICBpbml0aWFsVmFsdWUt
PmNvbGxlY3REaXJlY3RSb290Q29tcHV0YXRpb25hbERlcGVuZGVuY2llcyhkZXBlbmRlbmNpZXMp
OwogCiAgICAgICAgIGlmICghZGVwZW5kZW5jaWVzLmlzRW1wdHkoKSkKLSAgICAgICAgICAgIHJl
dHVybiBFeGNlcHRpb24geyBTeW50YXhFcnJvciwgIlRoZSBnaXZlbiBpbml0aWFsIHZhbHVlIG11
c3QgYmUgY29tcHV0YXRpb25hbGx5IGluZGVwZW5kZW50LiIgfTsKKyAgICAgICAgICAgIHJldHVy
biBFeGNlcHRpb24geyBTeW50YXhFcnJvciwgIlRoZSBnaXZlbiBpbml0aWFsIHZhbHVlIG11c3Qg
YmUgY29tcHV0YXRpb25hbGx5IGluZGVwZW5kZW50LiJfcyB9OwogICAgIH0KIAogICAgIENTU1Jl
Z2lzdGVyZWRDdXN0b21Qcm9wZXJ0eSBwcm9wZXJ0eSB7IGRlc2NyaXB0b3IubmFtZSwgZGVzY3Jp
cHRvci5zeW50YXgsIGRlc2NyaXB0b3IuaW5oZXJpdHMsIFdURk1vdmUoaW5pdGlhbFZhbHVlKSB9
OwogICAgIGlmICghZG9jdW1lbnQucmVnaXN0ZXJDU1NQcm9wZXJ0eShXVEZNb3ZlKHByb3BlcnR5
KSkpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3Is
ICJUaGlzIHByb3BlcnR5IGhhcyBhbHJlYWR5IGJlZW4gcmVnaXN0ZXJlZC4iIH07CisgICAgICAg
IHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3IsICJUaGlzIHByb3Bl
cnR5IGhhcyBhbHJlYWR5IGJlZW4gcmVnaXN0ZXJlZC4iX3MgfTsKIAogICAgIGRvY3VtZW50LnN0
eWxlU2NvcGUoKS5kaWRDaGFuZ2VTdHlsZVNoZWV0RW52aXJvbm1lbnQoKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVZhbHVlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01WYWx1ZS5jcHAKaW5kZXggMjMyNTA4NDVhYmE2YmM1
MzIyYjNiMzc2OWZiOTNjMGU2NDBjN2Q4Mi4uNTA2N2QwZTZjNjAxYmUyYTEzMTNmMDg5YTY0MGFj
MWE2MjZiOWIzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NP
TVZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZENTU09NVmFsdWUu
Y3BwCkBAIC03Niw3ICs3Niw3IEBAIFN0cmluZyBEZXByZWNhdGVkQ1NTT01WYWx1ZTo6Y3NzVGV4
dCgpIGNvbnN0CiAgICAgICAgIHJldHVybiBkb3duY2FzdDxEZXByZWNhdGVkQ1NTT01WYWx1ZUxp
c3Q+KCp0aGlzKS5jc3NUZXh0KCk7CiAgICAgfQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwot
ICAgIHJldHVybiAiIjsKKyAgICByZXR1cm4gZW1wdHlTdHJpbmcoKTsKIH0KIAogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0ZvbnRGYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9Gb250RmFjZS5jcHAKaW5kZXggZWZmZDYwN2MzNDZmOWJjZmJjOWMyODg5YmY4MzE2OTRkYTM0
MDMwNS4uNGQ1MTFiNWU2ODU0MTMwNWQ0MGMxYzMzYjc5MDlhNjUwNjU1NmY2MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL0ZvbnRGYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvRm9udEZhY2UuY3BwCkBAIC0zNzUsNyArMzc1LDcgQEAgU3RyaW5nIEZvbnRGYWNlOjp1bmlj
b2RlUmFuZ2UoKSBjb25zdAogICAgIG1fYmFja2luZy0+dXBkYXRlU3R5bGVJZk5lZWRlZCgpOwog
ICAgIGNvbnN0IGF1dG8mIHJhbmdlc1dyYXBwZWQgPSBtX2JhY2tpbmctPnJhbmdlcygpOwogICAg
IGlmICghcmFuZ2VzV3JhcHBlZCkKLSAgICAgICAgcmV0dXJuICJVKzAtMTBGRkZGIjsKKyAgICAg
ICAgcmV0dXJuICJVKzAtMTBGRkZGIl9zOwogICAgIGF1dG8gcmFuZ2VzID0gcmFuZ2VzV3JhcHBl
ZC52YWx1ZSgpOwogICAgIGlmICghcmFuZ2VzLnNpemUoKSkKICAgICAgICAgcmV0dXJuICJVKzAt
MTBGRkZGIl9zOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFeHBy
ZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXhwcmVzc2lvbi5jcHAK
aW5kZXggMDhiNzA3MDY2YmE2ZGZiMjEyN2ZjZGE5MDg4OTM3OTM1MTA4MTRlOC4uMWJkZGI1NTNl
OGZiYTJjMjI1M2U0ZDE0NTZmNzg2OTNmMzY2OTMyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL01lZGlhUXVlcnlFeHByZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
TWVkaWFRdWVyeUV4cHJlc3Npb24uY3BwCkBAIC0yNzQsNyArMjc0LDcgQEAgTWVkaWFRdWVyeUV4
cHJlc3Npb246Ok1lZGlhUXVlcnlFeHByZXNzaW9uKGNvbnN0IFN0cmluZyYgZmVhdHVyZSwgQ1NT
UGFyc2VyVG9rZW4KIFN0cmluZyBNZWRpYVF1ZXJ5RXhwcmVzc2lvbjo6c2VyaWFsaXplKCkgY29u
c3QKIHsKICAgICBpZiAobV9zZXJpYWxpemF0aW9uQ2FjaGUuaXNOdWxsKCkpCi0gICAgICAgIG1f
c2VyaWFsaXphdGlvbkNhY2hlID0gbWFrZVN0cmluZygnKCcsIG1fbWVkaWFGZWF0dXJlLmNvbnZl
cnRUb0FTQ0lJTG93ZXJjYXNlKCksIG1fdmFsdWUgPyAiOiAiIDogIiIsIG1fdmFsdWUgPyBtX3Zh
bHVlLT5jc3NUZXh0KCkgOiAiIiwgJyknKTsKKyAgICAgICAgbV9zZXJpYWxpemF0aW9uQ2FjaGUg
PSBtYWtlU3RyaW5nKCcoJywgbV9tZWRpYUZlYXR1cmUuY29udmVydFRvQVNDSUlMb3dlcmNhc2Uo
KSwgbV92YWx1ZSA/ICI6ICIgOiAiIiwgbV92YWx1ZSA/IG1fdmFsdWUtPmNzc1RleHQoKSA6IGVt
cHR5U3RyaW5nKCksICcpJyk7CiAgICAgcmV0dXJuIG1fc2VyaWFsaXphdGlvbkNhY2hlOwogfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnRpZXMuY3BwCmluZGV4IGYwNDEzYzE3ZmZmYTI4
MzgxMWZlMjUxN2ZkZmQ2MWJjZGNmOGIyNTkuLmE5MjNjN2E0Zjk0ZmNmMzJiMDdmODExM2EyY2Jl
YTI0YjlkZjg5MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnRp
ZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnRpZXMuY3BwCkBAIC03
NjgsNyArNzY4LDcgQEAgU3RyaW5nIFN0eWxlUHJvcGVydGllczo6Z2V0TGF5ZXJlZFNob3J0aGFu
ZFZhbHVlKGNvbnN0IFN0eWxlUHJvcGVydHlTaG9ydGhhbmQmIHMKIAogICAgICAgICAgICAgICAg
ICAgICAgICAgYXV0byBtYXNrSWQgPSBkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4oKnZhbHVl
KS52YWx1ZUlEKCk7CiAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIG9yaWdpbklkID0gZG93
bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KCpvcmlnaW5WYWx1ZSkudmFsdWVJRCgpOwotICAgICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIG1hc2tJZCA9PSBvcmlnaW5JZCAmJiAoIWlzQ1NTV2lk
ZVZhbHVlS2V5d29yZChnZXRWYWx1ZU5hbWUobWFza0lkKSkgfHwgdmFsdWUtPmlzSW1wbGljaXRJ
bml0aWFsVmFsdWUoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbWFza0lkID09
IG9yaWdpbklkICYmICghaXNDU1NXaWRlVmFsdWVLZXl3b3JkKFN0cmluZ1ZpZXcgeyBnZXRWYWx1
ZU5hbWUobWFza0lkKSB9KSB8fCB2YWx1ZS0+aXNJbXBsaWNpdEluaXRpYWxWYWx1ZSgpKTsKICAg
ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICBpZiAocHJvcGVydHkgPT0g
Q1NTUHJvcGVydHlNYXNrT3JpZ2luKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAvLyBXZSBj
YW4gc2tpcCBzZXJpYWxpemluZyBtYXNrLW9yaWdpbiBpZiBpdCdzIHRoZSBpbml0aWFsIHZhbHVl
LCBidXQgb25seSBpZiB3ZSdyZSBhbHNvIGdvaW5nIHRvIHNraXAgc2VyaWFsaXppbmcKQEAgLTEx
NTQsNyArMTE1NCw3IEBAIGJvb2wgTXV0YWJsZVN0eWxlUHJvcGVydGllczo6c2V0Q3VzdG9tUHJv
cGVydHkoY29uc3QgRG9jdW1lbnQqIGRvY3VtZW50LCBjb25zdCBTCiAKICAgICBwYXJzZXJDb250
ZXh0Lm1vZGUgPSBjc3NQYXJzZXJNb2RlKCk7CiAKLSAgICBTdHJpbmcgc3ludGF4ID0gIioiOwor
ICAgIFN0cmluZyBzeW50YXggPSAiKiJfczsKICAgICBhdXRvKiByZWdpc3RlcmVkID0gZG9jdW1l
bnQgPyBkb2N1bWVudC0+Z2V0Q1NTUmVnaXN0ZXJlZEN1c3RvbVByb3BlcnR5U2V0KCkuZ2V0KHBy
b3BlcnR5TmFtZSkgOiBudWxscHRyOwogCiAgICAgaWYgKHJlZ2lzdGVyZWQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvbWFrZXZhbHVlcy5wbCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9t
YWtldmFsdWVzLnBsCmluZGV4IDBmODIxOWQ0Y2NiNTFlY2E1MjVkODI5YTc2MDZiMjdiMGZhMjcz
MDMuLmFlOWIzMjc4MzI3MjczNzNjNGNlN2YwMjMzMDUyMTM2YjJkOTgzZDUgMTAwNzU1Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9tYWtldmFsdWVzLnBsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9tYWtldmFsdWVzLnBsCkBAIC0xMTEsMTYgKzExMSwxNiBAQCBmb3IgbXkgJGkgKDAgLi4gJCNu
YW1lcykgewogCiBwcmludCBHUEVSRiA8PCAiRU9GIjsKICUlCi1zdGF0aWMgY29uc3QgY2hhciog
Y29uc3QgdmFsdWVMaXN0W10gPSB7Ci0gICAgIiIsCitzdGF0aWMgY29uc3RleHByIEFTQ0lJTGl0
ZXJhbCB2YWx1ZUxpc3RbXSA9IHsKKyAgICAiIl9zLAogRU9GCiAKIGZvcmVhY2ggbXkgJG5hbWUg
KEBuYW1lcykgewotICBwcmludCBHUEVSRiAiICAgIFwiIiAuICRuYW1lIC4gIlwiLFxuIjsKKyAg
cHJpbnQgR1BFUkYgIiAgICBcIiIgLiAkbmFtZSAuICJcIl9zLFxuIjsKIH0KIAogcHJpbnQgR1BF
UkYgPDwgIkVPRiI7Ci0gICAgMAorICAgIEFTQ0lJTGl0ZXJhbDo6bnVsbCgpCiB9OwogCiBjb25z
dCBWYWx1ZSogZmluZFZhbHVlKGNvbnN0IGNoYXIqIHN0ciwgdW5zaWduZWQgaW50IGxlbikKQEAg
LTEyOCwxMCArMTI4LDEwIEBAIGNvbnN0IFZhbHVlKiBmaW5kVmFsdWUoY29uc3QgY2hhciogc3Ry
LCB1bnNpZ25lZCBpbnQgbGVuKQogICAgIHJldHVybiBDU1NWYWx1ZUtleXdvcmRzSGFzaDo6Zmlu
ZFZhbHVlSW1wbChzdHIsIGxlbik7CiB9CiAKLWNvbnN0IGNoYXIqIGdldFZhbHVlTmFtZSh1bnNp
Z25lZCBzaG9ydCBpZCkKK0FTQ0lJTGl0ZXJhbCBnZXRWYWx1ZU5hbWUodW5zaWduZWQgc2hvcnQg
aWQpCiB7CiAgICAgaWYgKGlkID4gbGFzdENTU1ZhbHVlS2V5d29yZCkKLSAgICAgICAgcmV0dXJu
IDA7CisgICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWw6Om51bGwoKTsKICAgICByZXR1cm4gdmFs
dWVMaXN0W2lkXTsKIH0KIApAQCAtMjAzLDcgKzIwMyw3IEBAIHByaW50IEhFQURFUiAiY29uc3Qg
aW50IGxhc3RDU1NWYWx1ZUtleXdvcmQgPSAkbGFzdDtcbiI7CiBwcmludCBIRUFERVIgImNvbnN0
IHNpemVfdCBtYXhDU1NWYWx1ZUtleXdvcmRMZW5ndGggPSAiIC4gJG1heExlbiAuICI7XG4iOwog
cHJpbnQgSEVBREVSIDw8ICJFT0YiOwogCi1jb25zdCBjaGFyKiBnZXRWYWx1ZU5hbWUodW5zaWdu
ZWQgc2hvcnQgaWQpOworQVNDSUlMaXRlcmFsIGdldFZhbHVlTmFtZSh1bnNpZ25lZCBzaG9ydCBp
ZCk7CiBjb25zdCBBdG9tU3RyaW5nJiBnZXRWYWx1ZU5hbWVBdG9tU3RyaW5nKENTU1ZhbHVlSUQg
aWQpOwogU3RyaW5nIGdldFZhbHVlTmFtZVN0cmluZyhDU1NWYWx1ZUlEIGlkKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9NZWRpYVF1ZXJ5UGFyc2VyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvTWVkaWFRdWVyeVBhcnNlci5jcHAKaW5kZXggY2I1YTA4
YWEzZWI3ZDZiOGM4MjU3ZGM4NDhkY2VjMTEzNDE5YzljZC4uNjJjMDFlNWEzMjc3NDIyNDM2NjJm
ZWJjMjFlZGUwODBkOTIzNjU5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNl
ci9NZWRpYVF1ZXJ5UGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL01l
ZGlhUXVlcnlQYXJzZXIuY3BwCkBAIC0yNDcsNyArMjQ3LDcgQEAgdm9pZCBNZWRpYVF1ZXJ5UGFy
c2VyOjpza2lwVW50aWxDb21tYShDU1NQYXJzZXJUb2tlblR5cGUgdHlwZSwgY29uc3QgQ1NTUGFy
c2VyVG8KICAgICBpZiAoKHR5cGUgPT0gQ29tbWFUb2tlbiAmJiAhbV9ibG9ja1dhdGNoZXIuYmxv
Y2tMZXZlbCgpKSB8fCB0eXBlID09IEVPRlRva2VuKSB7CiAgICAgICAgIG1fc3RhdGUgPSBSZWFk
UmVzdHJpY3RvcjsKICAgICAgICAgbV9tZWRpYVF1ZXJ5RGF0YS5jbGVhcigpOwotICAgICAgICBN
ZWRpYVF1ZXJ5IHF1ZXJ5ID0gTWVkaWFRdWVyeShNZWRpYVF1ZXJ5OjpOb3QsICJhbGwiLCBWZWN0
b3I8TWVkaWFRdWVyeUV4cHJlc3Npb24+KCkpOworICAgICAgICBNZWRpYVF1ZXJ5IHF1ZXJ5ID0g
TWVkaWFRdWVyeShNZWRpYVF1ZXJ5OjpOb3QsICJhbGwiX3MsIFZlY3RvcjxNZWRpYVF1ZXJ5RXhw
cmVzc2lvbj4oKSk7CiAgICAgICAgIG1fcXVlcnlTZXQtPmFkZE1lZGlhUXVlcnkoV1RGTW92ZShx
dWVyeSkpOwogICAgIH0KIH0KQEAgLTMwOSw3ICszMDksNyBAQCBSZWZQdHI8TWVkaWFRdWVyeVNl
dD4gTWVkaWFRdWVyeVBhcnNlcjo6cGFyc2VJbnRlcm5hbChDU1NQYXJzZXJUb2tlblJhbmdlJiBy
YW5nZQogICAgICAgICBwcm9jZXNzVG9rZW4oQ1NTUGFyc2VyVG9rZW4oRU9GVG9rZW4pLCByYW5n
ZSk7CiAKICAgICBpZiAobV9zdGF0ZSAhPSBSZWFkQW5kICYmIG1fc3RhdGUgIT0gUmVhZFJlc3Ry
aWN0b3IgJiYgbV9zdGF0ZSAhPSBEb25lICYmIG1fc3RhdGUgIT0gUmVhZE1lZGlhTm90KSB7Ci0g
ICAgICAgIE1lZGlhUXVlcnkgcXVlcnkgPSBNZWRpYVF1ZXJ5KE1lZGlhUXVlcnk6Ok5vdCwgImFs
bCIsIFZlY3RvcjxNZWRpYVF1ZXJ5RXhwcmVzc2lvbj4oKSk7CisgICAgICAgIE1lZGlhUXVlcnkg
cXVlcnkgPSBNZWRpYVF1ZXJ5KE1lZGlhUXVlcnk6Ok5vdCwgImFsbCJfcywgVmVjdG9yPE1lZGlh
UXVlcnlFeHByZXNzaW9uPigpKTsKICAgICAgICAgbV9xdWVyeVNldC0+YWRkTWVkaWFRdWVyeShX
VEZNb3ZlKHF1ZXJ5KSk7CiAgICAgfSBlbHNlIGlmIChtX21lZGlhUXVlcnlEYXRhLmN1cnJlbnRN
ZWRpYVF1ZXJ5Q2hhbmdlZCgpKQogICAgICAgICBjb21taXRNZWRpYVF1ZXJ5KCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL1NpemVzQXR0cmlidXRlUGFyc2VyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvU2l6ZXNBdHRyaWJ1dGVQYXJzZXIuY3BwCmluZGV4
IGQ2ZTQ4YTIzZmY5N2UwYThiNzM2ZDgwMzc5NzQyNDc1MDVjMzdmZjguLjRkYTQwMTZlNjA2NTdm
YjM3NDUyZWUxYjkxYTYxZDU2ZTA4ODQ4ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9wYXJzZXIvU2l6ZXNBdHRyaWJ1dGVQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9wYXJzZXIvU2l6ZXNBdHRyaWJ1dGVQYXJzZXIuY3BwCkBAIC0xMTIsNyArMTEyLDcgQEAgYm9v
bCBTaXplc0F0dHJpYnV0ZVBhcnNlcjo6bWVkaWFDb25kaXRpb25NYXRjaGVzKGNvbnN0IE1lZGlh
UXVlcnlTZXQmIG1lZGlhQ29uZGkKICAgICBpZiAoIXJlbmRlcmVyKQogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgYXV0byYgc3R5bGUgPSByZW5kZXJlci0+c3R5bGUoKTsKLSAgICByZXR1cm4g
TWVkaWFRdWVyeUV2YWx1YXRvciB7ICJzY3JlZW4iLCBtX2RvY3VtZW50LCAmc3R5bGUgfS5ldmFs
dWF0ZShtZWRpYUNvbmRpdGlvbiwgbV9tZWRpYVF1ZXJ5RHluYW1pY1Jlc3VsdHMpOworICAgIHJl
dHVybiBNZWRpYVF1ZXJ5RXZhbHVhdG9yIHsgInNjcmVlbiJfcywgbV9kb2N1bWVudCwgJnN0eWxl
IH0uZXZhbHVhdGUobWVkaWFDb25kaXRpb24sIG1fbWVkaWFRdWVyeUR5bmFtaWNSZXN1bHRzKTsK
IH0KIAogYm9vbCBTaXplc0F0dHJpYnV0ZVBhcnNlcjo6cGFyc2UoQ1NTUGFyc2VyVG9rZW5SYW5n
ZSByYW5nZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU051bWVy
aWNGYWN0b3J5LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NOdW1lcmljRmFjdG9y
eS5oCmluZGV4IDgyMzUwYjk5ZDg3NGIwZmE5MDY1ZjY0ZGRkNTk5M2RkNmQ4MzBiMzkuLjM1MzYy
YjIxNmQwMmJiNzIzYjc4NmEyYzcyMTMzZDE1NjNiYjIwZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy90eXBlZG9tL0NTU051bWVyaWNGYWN0b3J5LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL3R5cGVkb20vQ1NTTnVtZXJpY0ZhY3RvcnkuaApAQCAtNDMsNjQgKzQzLDY0IEBAIGNs
YXNzIENTU051bWVyaWNGYWN0b3J5IGZpbmFsIDogcHVibGljIFN1cHBsZW1lbnQ8RE9NQ1NTTmFt
ZXNwYWNlPiB7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgQ1NTTnVtZXJpY0ZhY3RvcnkoRE9NQ1NT
TmFtZXNwYWNlJikgeyB9CiAKLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gbnVtYmVyKGRv
dWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJudW1iZXIi
KTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBwZXJjZW50KGRvdWJsZSB2YWx1ZSkg
eyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJwZXJjZW50Iik7IH0KKyAgICBz
dGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gbnVtYmVyKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NT
VW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJudW1iZXIiX3MpOyB9CisgICAgc3RhdGljIFJlZjxD
U1NVbml0VmFsdWU+IHBlcmNlbnQoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6
OmNyZWF0ZSh2YWx1ZSwgInBlcmNlbnQiX3MpOyB9CiAKIAogICAgIC8vIDxsZW5ndGg+Ci0gICAg
c3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGVtKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5p
dFZhbHVlOjpjcmVhdGUodmFsdWUsICJlbSIpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFs
dWU+IGV4KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUs
ICJleCIpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGNoKGRvdWJsZSB2YWx1ZSkg
eyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJjaCIpOyB9Ci0gICAgc3RhdGlj
IFJlZjxDU1NVbml0VmFsdWU+IGljKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVl
OjpjcmVhdGUodmFsdWUsICJpYyIpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHJl
bShkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAicmVt
Iik7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gbGgoZG91YmxlIHZhbHVlKSB7IHJl
dHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImxoIik7IH0KLSAgICBzdGF0aWMgUmVm
PENTU1VuaXRWYWx1ZT4gcmxoKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpj
cmVhdGUodmFsdWUsICJybGgiKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiB2dyhk
b3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAidnciKTsg
fQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiB2aChkb3VibGUgdmFsdWUpIHsgcmV0dXJu
IENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAidmgiKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NT
VW5pdFZhbHVlPiB2aShkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRl
KHZhbHVlLCAidmkiKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiB2Yihkb3VibGUg
dmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAidmIiKTsgfQotICAg
IHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiB2bWluKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NT
VW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJ2bWluIik7IH0KLSAgICBzdGF0aWMgUmVmPENTU1Vu
aXRWYWx1ZT4gdm1heChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRl
KHZhbHVlLCAidm1heCIpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGNtKGRvdWJs
ZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJjbSIpOyB9Ci0g
ICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IG1tKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NT
VW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJtbSIpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0
VmFsdWU+IHEoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1
ZSwgInEiKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBpbihkb3VibGUgdmFsdWUp
IHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiaW4iKTsgfQotICAgIHN0YXRp
YyBSZWY8Q1NTVW5pdFZhbHVlPiBwdChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1
ZTo6Y3JlYXRlKHZhbHVlLCAicHQiKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBw
Yyhkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAicGMi
KTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBweChkb3VibGUgdmFsdWUpIHsgcmV0
dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAicHgiKTsgfQotICAgIHN0YXRpYyBSZWY8
Q1NTVW5pdFZhbHVlPiBjcXcoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNy
ZWF0ZSh2YWx1ZSwgImNxdyIpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGNxaChk
b3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiY3FoIik7
IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gY3FpKGRvdWJsZSB2YWx1ZSkgeyByZXR1
cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJjcWkiKTsgfQotICAgIHN0YXRpYyBSZWY8
Q1NTVW5pdFZhbHVlPiBjcWIoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNy
ZWF0ZSh2YWx1ZSwgImNxYiIpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGNxbWlu
KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJjcW1p
biIpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGNxbWF4KGRvdWJsZSB2YWx1ZSkg
eyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJjcW1heCIpOyB9CisgICAgc3Rh
dGljIFJlZjxDU1NVbml0VmFsdWU+IGVtKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZh
bHVlOjpjcmVhdGUodmFsdWUsICJlbSJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1
ZT4gZXgoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwg
ImV4Il9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBjaChkb3VibGUgdmFsdWUp
IHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiY2giX3MpOyB9CisgICAgc3Rh
dGljIFJlZjxDU1NVbml0VmFsdWU+IGljKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZh
bHVlOjpjcmVhdGUodmFsdWUsICJpYyJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1
ZT4gcmVtKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUs
ICJyZW0iX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGxoKGRvdWJsZSB2YWx1
ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJsaCJfcyk7IH0KKyAgICBz
dGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gcmxoKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5p
dFZhbHVlOjpjcmVhdGUodmFsdWUsICJybGgiX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0
VmFsdWU+IHZ3KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFs
dWUsICJ2dyJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gdmgoZG91YmxlIHZh
bHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInZoIl9zKTsgfQorICAg
IHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiB2aShkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1Vu
aXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAidmkiX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0
VmFsdWU+IHZiKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFs
dWUsICJ2YiJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gdm1pbihkb3VibGUg
dmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAidm1pbiJfcyk7IH0K
KyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gdm1heChkb3VibGUgdmFsdWUpIHsgcmV0dXJu
IENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAidm1heCJfcyk7IH0KKyAgICBzdGF0aWMgUmVm
PENTU1VuaXRWYWx1ZT4gY20oZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNy
ZWF0ZSh2YWx1ZSwgImNtIl9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBtbShk
b3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAibW0iX3Mp
OyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHEoZG91YmxlIHZhbHVlKSB7IHJldHVy
biBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInEiX3MpOyB9CisgICAgc3RhdGljIFJlZjxD
U1NVbml0VmFsdWU+IGluKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVh
dGUodmFsdWUsICJpbiJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gcHQoZG91
YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInB0Il9zKTsg
fQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBwYyhkb3VibGUgdmFsdWUpIHsgcmV0dXJu
IENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAicGMiX3MpOyB9CisgICAgc3RhdGljIFJlZjxD
U1NVbml0VmFsdWU+IHB4KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVh
dGUodmFsdWUsICJweCJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gY3F3KGRv
dWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJjcXciX3Mp
OyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGNxaChkb3VibGUgdmFsdWUpIHsgcmV0
dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiY3FoIl9zKTsgfQorICAgIHN0YXRpYyBS
ZWY8Q1NTVW5pdFZhbHVlPiBjcWkoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6
OmNyZWF0ZSh2YWx1ZSwgImNxaSJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4g
Y3FiKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJj
cWIiX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGNxbWluKGRvdWJsZSB2YWx1
ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJjcW1pbiJfcyk7IH0KKyAg
ICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gY3FtYXgoZG91YmxlIHZhbHVlKSB7IHJldHVybiBD
U1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImNxbWF4Il9zKTsgfQogCiAKICAgICAvLyA8YW5n
bGU+Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGRlZyhkb3VibGUgdmFsdWUpIHsgcmV0
dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiZGVnIik7IH0KLSAgICBzdGF0aWMgUmVm
PENTU1VuaXRWYWx1ZT4gZ3JhZChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6
Y3JlYXRlKHZhbHVlLCAiZ3JhZCIpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHJh
ZChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAicmFk
Iik7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gdHVybihkb3VibGUgdmFsdWUpIHsg
cmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAidHVybiIpOyB9CisgICAgc3RhdGlj
IFJlZjxDU1NVbml0VmFsdWU+IGRlZyhkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1
ZTo6Y3JlYXRlKHZhbHVlLCAiZGVnIl9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVl
PiBncmFkKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUs
ICJncmFkIl9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiByYWQoZG91YmxlIHZh
bHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInJhZCJfcyk7IH0KKyAg
ICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gdHVybihkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENT
U1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAidHVybiJfcyk7IH0KIAogCiAgICAgLy8gPHRpbWU+
Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHMoZG91YmxlIHZhbHVlKSB7IHJldHVybiBD
U1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInMiKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5p
dFZhbHVlPiBtcyhkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZh
bHVlLCAibXMiKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBzKGRvdWJsZSB2YWx1
ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJzIl9zKTsgfQorICAgIHN0
YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBtcyhkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRW
YWx1ZTo6Y3JlYXRlKHZhbHVlLCAibXMiX3MpOyB9CiAKIAogICAgIC8vIDxmcmVxdWVuY3k+Ci0g
ICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGh6KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NT
VW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJoeiIpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0
VmFsdWU+IGtIeihkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZh
bHVlLCAia2h6Iik7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gaHooZG91YmxlIHZh
bHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImh6Il9zKTsgfQorICAg
IHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBrSHooZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NV
bml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImtoeiJfcyk7IH0KIAogCiAgICAgLy8gPHJlc29sdXRp
b24+Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGRwaShkb3VibGUgdmFsdWUpIHsgcmV0
dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiZHBpIik7IH0KLSAgICBzdGF0aWMgUmVm
PENTU1VuaXRWYWx1ZT4gZHBjbShkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6
Y3JlYXRlKHZhbHVlLCAiZHBjbSIpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGRw
cHgoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImRw
cHgiKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBkcGkoZG91YmxlIHZhbHVlKSB7
IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImRwaSJfcyk7IH0KKyAgICBzdGF0
aWMgUmVmPENTU1VuaXRWYWx1ZT4gZHBjbShkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRW
YWx1ZTo6Y3JlYXRlKHZhbHVlLCAiZHBjbSJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRW
YWx1ZT4gZHBweChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZh
bHVlLCAiZHBweCJfcyk7IH0KIAogCiAgICAgLy8gPGZsZXg+Ci0gICAgc3RhdGljIFJlZjxDU1NV
bml0VmFsdWU+IGZyKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUo
dmFsdWUsICJmciIpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGZyKGRvdWJsZSB2
YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJmciJfcyk7IH0KIAog
CiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTTnVt
ZXJpY1ZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU051bWVyaWNWYWx1
ZS5jcHAKaW5kZXggY2VlMTdjODcwOGY4Y2I2MzhhZTExM2EzNGU3MTJjNTQxMjMxMGNhZi4uZWQ3
YmY5ODM4YjI4MzZmMDBmZGQ1YTk1YTQ5YjdiMGMwMzY2NmVmYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTTnVtZXJpY1ZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvdHlwZWRvbS9DU1NOdW1lcmljVmFsdWUuY3BwCkBAIC0xNTcsNyArMTU3LDcgQEAg
UmVmPENTU051bWVyaWNWYWx1ZT4gQ1NTTnVtZXJpY1ZhbHVlOjptdWx0aXBseUludGVybmFsKFZl
Y3RvcjxSZWY8Q1NTTnVtZXJpY1ZhbHUKICAgICAgICAgICAgIGRvdWJsZSBwcm9kdWN0ID0gMTsK
ICAgICAgICAgICAgIGZvciAoY29uc3QgUmVmPENTU051bWVyaWNWYWx1ZT4mIHZhbHVlIDogdmFs
dWVzKQogICAgICAgICAgICAgICAgIHByb2R1Y3QgKj0gZG93bmNhc3Q8Q1NTVW5pdFZhbHVlPih2
YWx1ZS5nZXQoKSkudmFsdWUoKTsKLSAgICAgICAgICAgIFN0cmluZyB1bml0ID0gbm9uTnVtYmVy
VW5pdEluZGV4ID8gZG93bmNhc3Q8Q1NTVW5pdFZhbHVlPih2YWx1ZXNbKm5vbk51bWJlclVuaXRJ
bmRleF0uZ2V0KCkpLnVuaXQoKSA6ICJudW1iZXIiOworICAgICAgICAgICAgU3RyaW5nIHVuaXQg
PSBub25OdW1iZXJVbml0SW5kZXggPyBkb3duY2FzdDxDU1NVbml0VmFsdWU+KHZhbHVlc1sqbm9u
TnVtYmVyVW5pdEluZGV4XS5nZXQoKSkudW5pdCgpIDogIm51bWJlciJfczsKICAgICAgICAgICAg
IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZShwcm9kdWN0LCB1bml0KTsKICAgICAgICAgfQog
ICAgIH0KQEAgLTIzNSw3ICsyMzUsNyBAQCBSZWY8Q1NTVW5pdFZhbHVlPiBDU1NOdW1lcmljVmFs
dWU6OnRvKFN0cmluZyYmIHVuaXQpCiAgICAgVU5VU0VEX1BBUkFNKHVuaXQpOwogICAgIC8vIGh0
dHBzOi8vZHJhZnRzLmNzcy1ob3VkaW5pLm9yZy9jc3MtdHlwZWQtb20vI2RvbS1jc3NudW1lcmlj
dmFsdWUtdG8KICAgICAvLyBGSVhNRTogYWRkIGltcGwuCi0gICAgcmV0dXJuIENTU1VuaXRWYWx1
ZTo6Y3JlYXRlKDEuMCwgIm51bWJlciIpOworICAgIHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0
ZSgxLjAsICJudW1iZXIiX3MpOwogfQogCiBSZWY8Q1NTTWF0aFN1bT4gQ1NTTnVtZXJpY1ZhbHVl
Ojp0b1N1bShGaXhlZFZlY3RvcjxTdHJpbmc+JiYgdW5pdHMpCkBAIC0yNTgsNyArMjU4LDcgQEAg
RXhjZXB0aW9uT3I8UmVmPENTU051bWVyaWNWYWx1ZT4+IENTU051bWVyaWNWYWx1ZTo6cGFyc2Uo
U3RyaW5nJiYgY3NzVGV4dCkKICAgICBVTlVTRURfUEFSQU0oY3NzVGV4dCk7CiAgICAgLy8gaHR0
cHM6Ly9kcmFmdHMuY3NzLWhvdWRpbmkub3JnL2Nzcy10eXBlZC1vbS8jZG9tLWNzc251bWVyaWN2
YWx1ZS1wYXJzZQogICAgIC8vIEZJWE1FOiBhZGQgaW1wbC4KLSAgICByZXR1cm4gRXhjZXB0aW9u
IHsgTm90U3VwcG9ydGVkRXJyb3IsICJOb3QgaW1wbGVtZW50ZWQgRXJyb3IiIH07CisgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yLCAiTm90IGltcGxlbWVudGVkIEVycm9y
Il9zIH07CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy90eXBlZG9tL0NTU1N0eWxlVmFsdWVGYWN0b3J5LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy90eXBlZG9tL0NTU1N0eWxlVmFsdWVGYWN0b3J5LmNwcAppbmRleCA5ZmM3MGZiMTAy
NzE2ODcxNDc0NTM2NjUyZDRjYzEzMTA0ZGYzNDI0Li4wYWJiM2E0ODI4NTJkYmQ0ZGQzMTc4ZjI0
OTgzMmY1ODc4YjcxYmFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9D
U1NTdHlsZVZhbHVlRmFjdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20v
Q1NTU3R5bGVWYWx1ZUZhY3RvcnkuY3BwCkBAIC0yNjQsNyArMjY0LDcgQEAgRXhjZXB0aW9uT3I8
UmVmPENTU1N0eWxlVmFsdWU+PiBDU1NTdHlsZVZhbHVlRmFjdG9yeTo6cmVpZnlWYWx1ZShSZWY8
Q1NTVmFsdWU+JiYKICAgICAgICAgLy8gUmVmZXIgdG8gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXR5cGVkLW9tL3RoZS1zdHlsZXByb3BlcnR5bWFw
L2lubGluZS9nZXQuaHRtbAogICAgICAgICBhdXRvIHZhbHVlTGlzdCA9IGRvd25jYXN0PENTU1Zh
bHVlTGlzdD4oY3NzVmFsdWUucHRyKCkpOwogICAgICAgICBpZiAoIXZhbHVlTGlzdC0+bGVuZ3Ro
KCkpCi0gICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiVGhlIENTU1Zh
bHVlTGlzdCBzaG91bGQgbm90IGJlIGVtcHR5LiIgfTsKKyAgICAgICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBUeXBlRXJyb3IsICJUaGUgQ1NTVmFsdWVMaXN0IHNob3VsZCBub3QgYmUgZW1wdHku
Il9zIH07CiAgICAgICAgIAogICAgICAgICByZXR1cm4gcmVpZnlWYWx1ZShXVEZNb3ZlKCp2YWx1
ZUxpc3QtPmJlZ2luKCkpLCBkb2N1bWVudCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9jb2NvYS9IVE1MQ29udmVydGVyLm1tIGIvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9jb2NvYS9IVE1MQ29udmVydGVyLm1tCmluZGV4IGI2N2E2MzQ5NzM3Yjg1YmFjMjkzMmNl
MThhYjgzZjczZjgxMzFhYjMuLjJkNTM5ZWQyYzcxZjIyYmYyOGJmOWRmODU0NGE5YmU5ODhlYTg3
ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvSFRNTENvbnZlcnRl
ci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0hUTUxDb252ZXJ0ZXIubW0K
QEAgLTU5Niw3ICs1OTYsNyBAQCBTdHJpbmcgSFRNTENvbnZlcnRlckNhY2hlczo6cHJvcGVydHlW
YWx1ZUZvck5vZGUoTm9kZSYgbm9kZSwgQ1NTUHJvcGVydHlJRCBwcm9wZQogICAgIHN3aXRjaCAo
cHJvcGVydHlJZCkgewogICAgIGNhc2UgQ1NTUHJvcGVydHlEaXNwbGF5OgogICAgICAgICBpZiAo
ZWxlbWVudC5oYXNUYWdOYW1lKGhlYWRUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZShzY3JpcHRU
YWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZShhcHBsZXRUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFt
ZShub2ZyYW1lc1RhZykpCi0gICAgICAgICAgICByZXR1cm4gIm5vbmUiOworICAgICAgICAgICAg
cmV0dXJuICJub25lIl9zOwogICAgICAgICBlbHNlIGlmIChlbGVtZW50Lmhhc1RhZ05hbWUoYWRk
cmVzc1RhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKGJsb2NrcXVvdGVUYWcpIHx8IGVsZW1lbnQu
aGFzVGFnTmFtZShib2R5VGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoY2VudGVyVGFnKQogICAg
ICAgICAgICAgIHx8IGVsZW1lbnQuaGFzVGFnTmFtZShkZFRhZykgfHwgZWxlbWVudC5oYXNUYWdO
YW1lKGRpclRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKGRpdlRhZykgfHwgZWxlbWVudC5oYXNU
YWdOYW1lKGRsVGFnKQogICAgICAgICAgICAgIHx8IGVsZW1lbnQuaGFzVGFnTmFtZShkdFRhZykg
fHwgZWxlbWVudC5oYXNUYWdOYW1lKGZpZWxkc2V0VGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUo
Zm9ybVRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKGZyYW1lVGFnKQpAQCAtNjA0LDYyICs2MDQs
NjIgQEAgU3RyaW5nIEhUTUxDb252ZXJ0ZXJDYWNoZXM6OnByb3BlcnR5VmFsdWVGb3JOb2RlKE5v
ZGUmIG5vZGUsIENTU1Byb3BlcnR5SUQgcHJvcGUKICAgICAgICAgICAgICB8fCBlbGVtZW50Lmhh
c1RhZ05hbWUoaDJUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZShoM1RhZykgfHwgZWxlbWVudC5o
YXNUYWdOYW1lKGg0VGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoaDVUYWcpCiAgICAgICAgICAg
ICAgfHwgZWxlbWVudC5oYXNUYWdOYW1lKGg2VGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoaWZy
YW1lVGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUobWVudVRhZykgfHwgZWxlbWVudC5oYXNUYWdO
YW1lKG5vc2NyaXB0VGFnKQogICAgICAgICAgICAgIHx8IGVsZW1lbnQuaGFzVGFnTmFtZShvbFRh
ZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKHBUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZShwcmVU
YWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZSh1bFRhZykpCi0gICAgICAgICAgICByZXR1cm4gImJs
b2NrIjsKKyAgICAgICAgICAgIHJldHVybiAiYmxvY2siX3M7CiAgICAgICAgIGVsc2UgaWYgKGVs
ZW1lbnQuaGFzVGFnTmFtZShsaVRhZykpCi0gICAgICAgICAgICByZXR1cm4gImxpc3QtaXRlbSI7
CisgICAgICAgICAgICByZXR1cm4gImxpc3QtaXRlbSJfczsKICAgICAgICAgZWxzZSBpZiAoZWxl
bWVudC5oYXNUYWdOYW1lKHRhYmxlVGFnKSkKLSAgICAgICAgICAgIHJldHVybiAidGFibGUiOwor
ICAgICAgICAgICAgcmV0dXJuICJ0YWJsZSJfczsKICAgICAgICAgZWxzZSBpZiAoZWxlbWVudC5o
YXNUYWdOYW1lKHRyVGFnKSkKLSAgICAgICAgICAgIHJldHVybiAidGFibGUtcm93IjsKKyAgICAg
ICAgICAgIHJldHVybiAidGFibGUtcm93Il9zOwogICAgICAgICBlbHNlIGlmIChlbGVtZW50Lmhh
c1RhZ05hbWUodGhUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZSh0ZFRhZykpCi0gICAgICAgICAg
ICByZXR1cm4gInRhYmxlLWNlbGwiOworICAgICAgICAgICAgcmV0dXJuICJ0YWJsZS1jZWxsIl9z
OwogICAgICAgICBlbHNlIGlmIChlbGVtZW50Lmhhc1RhZ05hbWUodGhlYWRUYWcpKQotICAgICAg
ICAgICAgcmV0dXJuICJ0YWJsZS1oZWFkZXItZ3JvdXAiOworICAgICAgICAgICAgcmV0dXJuICJ0
YWJsZS1oZWFkZXItZ3JvdXAiX3M7CiAgICAgICAgIGVsc2UgaWYgKGVsZW1lbnQuaGFzVGFnTmFt
ZSh0Ym9keVRhZykpCi0gICAgICAgICAgICByZXR1cm4gInRhYmxlLXJvdy1ncm91cCI7CisgICAg
ICAgICAgICByZXR1cm4gInRhYmxlLXJvdy1ncm91cCJfczsKICAgICAgICAgZWxzZSBpZiAoZWxl
bWVudC5oYXNUYWdOYW1lKHRmb290VGFnKSkKLSAgICAgICAgICAgIHJldHVybiAidGFibGUtZm9v
dGVyLWdyb3VwIjsKKyAgICAgICAgICAgIHJldHVybiAidGFibGUtZm9vdGVyLWdyb3VwIl9zOwog
ICAgICAgICBlbHNlIGlmIChlbGVtZW50Lmhhc1RhZ05hbWUoY29sVGFnKSkKLSAgICAgICAgICAg
IHJldHVybiAidGFibGUtY29sdW1uIjsKKyAgICAgICAgICAgIHJldHVybiAidGFibGUtY29sdW1u
Il9zOwogICAgICAgICBlbHNlIGlmIChlbGVtZW50Lmhhc1RhZ05hbWUoY29sZ3JvdXBUYWcpKQot
ICAgICAgICAgICAgcmV0dXJuICJ0YWJsZS1jb2x1bW4tZ3JvdXAiOworICAgICAgICAgICAgcmV0
dXJuICJ0YWJsZS1jb2x1bW4tZ3JvdXAiX3M7CiAgICAgICAgIGVsc2UgaWYgKGVsZW1lbnQuaGFz
VGFnTmFtZShjYXB0aW9uVGFnKSkKLSAgICAgICAgICAgIHJldHVybiAidGFibGUtY2FwdGlvbiI7
CisgICAgICAgICAgICByZXR1cm4gInRhYmxlLWNhcHRpb24iX3M7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgQ1NTUHJvcGVydHlXaGl0ZVNwYWNlOgogICAgICAgICBpZiAoZWxlbWVudC5oYXNU
YWdOYW1lKHByZVRhZykpCi0gICAgICAgICAgICByZXR1cm4gInByZSI7CisgICAgICAgICAgICBy
ZXR1cm4gInByZSJfczsKICAgICAgICAgaW5oZXJpdCA9IHRydWU7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgQ1NTUHJvcGVydHlGb250U3R5bGU6CiAgICAgICAgIGlmIChlbGVtZW50Lmhhc1Rh
Z05hbWUoaVRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKGNpdGVUYWcpIHx8IGVsZW1lbnQuaGFz
VGFnTmFtZShlbVRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKHZhclRhZykgfHwgZWxlbWVudC5o
YXNUYWdOYW1lKGFkZHJlc3NUYWcpKQotICAgICAgICAgICAgcmV0dXJuICJpdGFsaWMiOworICAg
ICAgICAgICAgcmV0dXJuICJpdGFsaWMiX3M7CiAgICAgICAgIGluaGVyaXQgPSB0cnVlOwogICAg
ICAgICBicmVhazsKICAgICBjYXNlIENTU1Byb3BlcnR5Rm9udFdlaWdodDoKICAgICAgICAgaWYg
KGVsZW1lbnQuaGFzVGFnTmFtZShiVGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoc3Ryb25nVGFn
KSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUodGhUYWcpKQotICAgICAgICAgICAgcmV0dXJuICJib2xk
ZXIiOworICAgICAgICAgICAgcmV0dXJuICJib2xkZXIiX3M7CiAgICAgICAgIGluaGVyaXQgPSB0
cnVlOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENTU1Byb3BlcnR5VGV4dERlY29yYXRpb25M
aW5lOgogICAgICAgICBpZiAoZWxlbWVudC5oYXNUYWdOYW1lKHVUYWcpIHx8IGVsZW1lbnQuaGFz
VGFnTmFtZShpbnNUYWcpKQotICAgICAgICAgICAgcmV0dXJuICJ1bmRlcmxpbmUiOworICAgICAg
ICAgICAgcmV0dXJuICJ1bmRlcmxpbmUiX3M7CiAgICAgICAgIGVsc2UgaWYgKGVsZW1lbnQuaGFz
VGFnTmFtZShzVGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoc3RyaWtlVGFnKSB8fCBlbGVtZW50
Lmhhc1RhZ05hbWUoZGVsVGFnKSkKLSAgICAgICAgICAgIHJldHVybiAibGluZS10aHJvdWdoIjsK
KyAgICAgICAgICAgIHJldHVybiAibGluZS10aHJvdWdoIl9zOwogICAgICAgICBpbmhlcml0ID0g
dHJ1ZTsgLy8gRklYTUU6IFRoaXMgaXMgbm90IHN0cmljdGx5IGNvcnJlY3QKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVRleHRBbGlnbjoKICAgICAgICAgaWYgKGVsZW1lbnQu
aGFzVGFnTmFtZShjZW50ZXJUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZShjYXB0aW9uVGFnKSB8
fCBlbGVtZW50Lmhhc1RhZ05hbWUodGhUYWcpKQotICAgICAgICAgICAgcmV0dXJuICJjZW50ZXIi
OworICAgICAgICAgICAgcmV0dXJuICJjZW50ZXIiX3M7CiAgICAgICAgIGluaGVyaXQgPSB0cnVl
OwogICAgICAgICBicmVhazsKICAgICBjYXNlIENTU1Byb3BlcnR5VmVydGljYWxBbGlnbjoKICAg
ICAgICAgaWYgKGVsZW1lbnQuaGFzVGFnTmFtZShzdXBUYWcpKQotICAgICAgICAgICAgcmV0dXJu
ICJzdXBlciI7CisgICAgICAgICAgICByZXR1cm4gInN1cGVyIl9zOwogICAgICAgICBlbHNlIGlm
IChlbGVtZW50Lmhhc1RhZ05hbWUoc3ViVGFnKSkKLSAgICAgICAgICAgIHJldHVybiAic3ViIjsK
KyAgICAgICAgICAgIHJldHVybiAic3ViIl9zOwogICAgICAgICBlbHNlIGlmIChlbGVtZW50Lmhh
c1RhZ05hbWUodGhlYWRUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZSh0Ym9keVRhZykgfHwgZWxl
bWVudC5oYXNUYWdOYW1lKHRmb290VGFnKSkKLSAgICAgICAgICAgIHJldHVybiAibWlkZGxlIjsK
KyAgICAgICAgICAgIHJldHVybiAibWlkZGxlIl9zOwogICAgICAgICBlbHNlIGlmIChlbGVtZW50
Lmhhc1RhZ05hbWUodHJUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZSh0aFRhZykgfHwgZWxlbWVu
dC5oYXNUYWdOYW1lKHRkVGFnKSkKICAgICAgICAgICAgIGluaGVyaXQgPSB0cnVlOwogICAgICAg
ICBicmVhazsKQEAgLTE4NTIsNyArMTg1Miw3IEBAIEJPT0wgSFRNTENvbnZlcnRlcjo6X3Byb2Nl
c3NFbGVtZW50KEVsZW1lbnQmIGVsZW1lbnQsIE5TSW50ZWdlciBkZXB0aCkKICAgICAgICAgUmV0
YWluUHRyPE5TVGV4dExpc3Q+IGxpc3Q7CiAgICAgICAgIFN0cmluZyBsaXN0U3R5bGVUeXBlID0g
X2NhY2hlcy0+cHJvcGVydHlWYWx1ZUZvck5vZGUoZWxlbWVudCwgQ1NTUHJvcGVydHlMaXN0U3R5
bGVUeXBlKTsKICAgICAgICAgaWYgKCFsaXN0U3R5bGVUeXBlLmxlbmd0aCgpKQotICAgICAgICAg
ICAgbGlzdFN0eWxlVHlwZSA9ICJkZWNpbWFsIjsKKyAgICAgICAgICAgIGxpc3RTdHlsZVR5cGUg
PSAiZGVjaW1hbCJfczsKICAgICAgICAgbGlzdCA9IGFkb3B0TlMoW1tQbGF0Zm9ybU5TVGV4dExp
c3QgYWxsb2NdIGluaXRXaXRoTWFya2VyRm9ybWF0OlN0cmluZygieyIgKyBsaXN0U3R5bGVUeXBl
ICsgIn0iKSBvcHRpb25zOjBdKTsKICAgICAgICAgaWYgKGlzPEhUTUxPTGlzdEVsZW1lbnQ+KGVs
ZW1lbnQpKSB7CiAgICAgICAgICAgICBOU0ludGVnZXIgc3RhcnRpbmdJdGVtTnVtYmVyID0gZG93
bmNhc3Q8SFRNTE9MaXN0RWxlbWVudD4oZWxlbWVudCkuc3RhcnQoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvV2ViQ29udGVudFJlYWRlckNvY29hLm1tIGIvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9XZWJDb250ZW50UmVhZGVyQ29jb2EubW0KaW5kZXgg
ZTg4NmEyN2RiZDYyMjQwYWQ5ODQyMDQ1Y2ViODMwNTBhMmZjMDNkZi4uZDhkMTQwZGVmN2QzYTM4
YjAyNGE0MTEzNGI2NThlN2YzMTQxNGUyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRp
dGluZy9jb2NvYS9XZWJDb250ZW50UmVhZGVyQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
ZWRpdGluZy9jb2NvYS9XZWJDb250ZW50UmVhZGVyQ29jb2EubW0KQEAgLTc2Miw3ICs3NjIsNyBA
QCBzdGF0aWMgUmVmPEhUTUxFbGVtZW50PiBhdHRhY2htZW50Rm9yRGF0YShGcmFtZSYgZnJhbWUs
IEZyYWdtZW50ZWRTaGFyZWRCdWZmZXImCiAgICAgYXV0byBhdHRhY2htZW50VHlwZSA9IHR5cGVG
b3JBdHRhY2htZW50RWxlbWVudChjb250ZW50VHlwZSk7CiAKICAgICAvLyBGSVhNRTogV2Ugc2hv
dWxkIGluc3RlYWQgYXNrIENvcmVTZXJ2aWNlcyBmb3IgYSBwcmVmZXJyZWQgbmFtZSBjb3JyZXNw
b25kaW5nIHRvIHRoZSBnaXZlbiBjb250ZW50IHR5cGUuCi0gICAgc3RhdGljIGNvbnN0IGNoYXIq
IGRlZmF1bHRBdHRhY2htZW50TmFtZSA9ICJmaWxlIjsKKyAgICBzdGF0aWMgY29uc3RleHByIEFT
Q0lJTGl0ZXJhbCBkZWZhdWx0QXR0YWNobWVudE5hbWUgPSAiZmlsZSJfczsKIAogICAgIFN0cmlu
ZyBmaWxlTmFtZTsKICAgICBpZiAobmFtZS5pc0VtcHR5KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY29jb2EvQnVuZGxlUmVzb3VyY2VMb2FkZXIubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY29jb2EvQnVuZGxlUmVzb3VyY2VMb2FkZXIubW0KaW5kZXggYzNiN2I3ZmU1
NWRjMzMwNDNjYzhhZTM5Y2NmYTQ3ZGI3Njk2M2VjZi4uOWMyNzkxMTM5NTc5ZTBkNDY3YzM4MGE1
MjNkNTUxNTE0MjIzMWFiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NvY29h
L0J1bmRsZVJlc291cmNlTG9hZGVyLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jb2Nv
YS9CdW5kbGVSZXNvdXJjZUxvYWRlci5tbQpAQCAtNjUsMTMgKzY1LDEzIEBAIHZvaWQgbG9hZFJl
c291cmNlRnJvbUJ1bmRsZShSZXNvdXJjZUxvYWRlciYgbG9hZGVyLCBjb25zdCBTdHJpbmcmIHN1
YmRpcmVjdG9yeSkKIAogICAgICAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW3Byb3RlY3Rl
ZExvYWRlciA9IFdURk1vdmUocHJvdGVjdGVkTG9hZGVyKSwgdXJsID0gV1RGTW92ZSh1cmwpLmlz
b2xhdGVkQ29weSgpLCBidWZmZXIgPSBTaGFyZWRCdWZmZXI6OmNyZWF0ZShkYXRhKV0oKSBtdXRh
YmxlIHsKICAgICAgICAgICAgIGF1dG8gbWltZVR5cGUgPSBNSU1FVHlwZVJlZ2lzdHJ5OjptaW1l
VHlwZUZvclBhdGgodXJsLnBhdGgoKSk7Ci0gICAgICAgICAgICBSZXNvdXJjZVJlc3BvbnNlIHJl
c3BvbnNlIHsgdXJsLCBtaW1lVHlwZSwgc3RhdGljX2Nhc3Q8bG9uZyBsb25nPihidWZmZXItPnNp
emUoKSksIE1JTUVUeXBlUmVnaXN0cnk6OmlzVGV4dE1JTUVUeXBlKG1pbWVUeXBlKSA/ICJVVEYt
OCJfcyA6IG51bGxwdHIgfTsKKyAgICAgICAgICAgIFJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2Ug
eyB1cmwsIG1pbWVUeXBlLCBzdGF0aWNfY2FzdDxsb25nIGxvbmc+KGJ1ZmZlci0+c2l6ZSgpKSwg
TUlNRVR5cGVSZWdpc3RyeTo6aXNUZXh0TUlNRVR5cGUobWltZVR5cGUpID8gIlVURi04Il9zIDog
U3RyaW5nKCkgfTsKICAgICAgICAgICAgIHJlc3BvbnNlLnNldEhUVFBTdGF0dXNDb2RlKDIwMCk7
CiAgICAgICAgICAgICByZXNwb25zZS5zZXRIVFRQU3RhdHVzVGV4dCgiT0siX3MpOwogICAgICAg
ICAgICAgcmVzcG9uc2Uuc2V0U291cmNlKFJlc291cmNlUmVzcG9uc2U6OlNvdXJjZTo6TmV0d29y
ayk7CiAKICAgICAgICAgICAgIC8vIEFsbG93IGltYWdlcyB0byBsb2FkLgotICAgICAgICAgICAg
cmVzcG9uc2UuYWRkSFRUUEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpBY2Nlc3NDb250cm9s
QWxsb3dPcmlnaW4sICIqIik7CisgICAgICAgICAgICByZXNwb25zZS5hZGRIVFRQSGVhZGVyRmll
bGQoSFRUUEhlYWRlck5hbWU6OkFjY2Vzc0NvbnRyb2xBbGxvd09yaWdpbiwgIioiX3MpOwogCiAg
ICAgICAgICAgICBwcm90ZWN0ZWRMb2FkZXItPmRlbGl2ZXJSZXNwb25zZUFuZERhdGEocmVzcG9u
c2UsIFdURk1vdmUoYnVmZmVyKSk7CiAgICAgICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL21hYy9Mb2FkZXJOU1VSTEV4dHJhcy5tbSBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9tYWMvTG9hZGVyTlNVUkxFeHRyYXMubW0KaW5kZXggNTUwZGFiODBlZTNhYTQ2MDcyMWRl
YjZjMzBjODVhOGU2ZGYwYTA0Ny4uZTU4ZjQ1NTRmZTQwNDZlMWQzMjE0YzlmMTZhMGYxZWI3YjJi
YWI5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL21hYy9Mb2FkZXJOU1VSTEV4
dHJhcy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvbWFjL0xvYWRlck5TVVJMRXh0cmFz
Lm1tCkBAIC02NCw3ICs2NCw3IEBAIE5TU3RyaW5nICpzdWdnZXN0ZWRGaWxlbmFtZVdpdGhNSU1F
VHlwZShOU1VSTCAqdXJsLCBjb25zdCBTdHJpbmcmIG1pbWVUeXBlKQogICAgIC8vIGhhdmUgYSBm
aWxlbmFtZSB3aGljaCBoYXMgLnRhciBpbiBpdCBvciBlbmRzIGluIC50Z3oKICAgICBpZiAoKG1p
bWVUeXBlID09ICJhcHBsaWNhdGlvbi90YXIiIHx8IG1pbWVUeXBlID09ICJhcHBsaWNhdGlvbi94
LXRhciIpCiAgICAgICAgICYmIChTdHJpbmcoZmlsZW5hbWUpLmNvbnRhaW5zSWdub3JpbmdBU0NJ
SUNhc2UoIi50YXIiKQotICAgICAgICB8fCBTdHJpbmcoZmlsZW5hbWUpLmVuZHNXaXRoSWdub3Jp
bmdBU0NJSUNhc2UoIi50Z3oiKSkpIHsKKyAgICAgICAgfHwgU3RyaW5nKGZpbGVuYW1lKS5lbmRz
V2l0aElnbm9yaW5nQVNDSUlDYXNlKCIudGd6Il9zKSkpIHsKICAgICAgICAgcmV0dXJuIGZpbGVu
YW1lOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9SZXNv
dXJjZVVzYWdlT3ZlcmxheUNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9SZXNv
dXJjZVVzYWdlT3ZlcmxheUNvY29hLm1tCmluZGV4IDExNDg0ZDBjNTkyYzA3ZmY5NGVjMTc3YTAx
MjgwMTA3OWMzOTU5NzEuLmUxZGMyOWI4NjJkNDIyNDNhOWEyOTFhMGVkMWY1ZjQzM2ZjZGExZWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvUmVzb3VyY2VVc2FnZU92ZXJs
YXlDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL1Jlc291cmNlVXNhZ2VP
dmVybGF5Q29jb2EubW0KQEAgLTE2MSwxOCArMTYxLDE4IEBAIHN0cnVjdCBIaXN0b3JpY1Jlc291
cmNlVXNhZ2VEYXRhIHsKIEhpc3RvcmljUmVzb3VyY2VVc2FnZURhdGE6Okhpc3RvcmljUmVzb3Vy
Y2VVc2FnZURhdGEoKQogewogICAgIC8vIFZNIHRhZyBjYXRlZ29yaWVzLgotICAgIGNhdGVnb3Jp
ZXNbTWVtb3J5Q2F0ZWdvcnk6OkpTSklUXSA9IEhpc3RvcmljTWVtb3J5Q2F0ZWdvcnlJbmZvKE1l
bW9yeUNhdGVnb3J5OjpKU0pJVCwgeyAyNTUsIDk2LCAyNTUgfSwgIkpTIEpJVCIpOwotICAgIGNh
dGVnb3JpZXNbTWVtb3J5Q2F0ZWdvcnk6OkdpZ2FjYWdlXSA9IEhpc3RvcmljTWVtb3J5Q2F0ZWdv
cnlJbmZvKE1lbW9yeUNhdGVnb3J5OjpHaWdhY2FnZSwgeyAxMDEsIDc5LCAyNDAgfSwgIkdpZ2Fj
YWdlIik7Ci0gICAgY2F0ZWdvcmllc1tNZW1vcnlDYXRlZ29yeTo6SW1hZ2VzXSA9IEhpc3Rvcmlj
TWVtb3J5Q2F0ZWdvcnlJbmZvKE1lbW9yeUNhdGVnb3J5OjpJbWFnZXMsIENvbG9yOjp5ZWxsb3cs
ICJJbWFnZXMiKTsKLSAgICBjYXRlZ29yaWVzW01lbW9yeUNhdGVnb3J5OjpMYXllcnNdID0gSGlz
dG9yaWNNZW1vcnlDYXRlZ29yeUluZm8oTWVtb3J5Q2F0ZWdvcnk6OkxheWVycywgQ29sb3I6OmN5
YW4sICJMYXllcnMiKTsKLSAgICBjYXRlZ29yaWVzW01lbW9yeUNhdGVnb3J5OjpMaWJjTWFsbG9j
XSA9IEhpc3RvcmljTWVtb3J5Q2F0ZWdvcnlJbmZvKE1lbW9yeUNhdGVnb3J5OjpMaWJjTWFsbG9j
LCBDb2xvcjo6Z3JlZW4sICJsaWJjIG1hbGxvYyIpOwotICAgIGNhdGVnb3JpZXNbTWVtb3J5Q2F0
ZWdvcnk6OmJtYWxsb2NdID0gSGlzdG9yaWNNZW1vcnlDYXRlZ29yeUluZm8oTWVtb3J5Q2F0ZWdv
cnk6OmJtYWxsb2MsIHsgMjU1LCA5NiwgOTYgfSwgImJtYWxsb2MiKTsKLSAgICBjYXRlZ29yaWVz
W01lbW9yeUNhdGVnb3J5OjpJc29IZWFwXSA9IEhpc3RvcmljTWVtb3J5Q2F0ZWdvcnlJbmZvKE1l
bW9yeUNhdGVnb3J5OjpJc29IZWFwLCB7IDEyOCwgMTU5LCA2NCB9LCAiSXNvSGVhcCIpOwotICAg
IGNhdGVnb3JpZXNbTWVtb3J5Q2F0ZWdvcnk6Ok90aGVyXSA9IEhpc3RvcmljTWVtb3J5Q2F0ZWdv
cnlJbmZvKE1lbW9yeUNhdGVnb3J5OjpPdGhlciwgeyAxOTIsIDI1NSwgMCB9LCAiT3RoZXIiKTsK
KyAgICBjYXRlZ29yaWVzW01lbW9yeUNhdGVnb3J5OjpKU0pJVF0gPSBIaXN0b3JpY01lbW9yeUNh
dGVnb3J5SW5mbyhNZW1vcnlDYXRlZ29yeTo6SlNKSVQsIHsgMjU1LCA5NiwgMjU1IH0sICJKUyBK
SVQiX3MpOworICAgIGNhdGVnb3JpZXNbTWVtb3J5Q2F0ZWdvcnk6OkdpZ2FjYWdlXSA9IEhpc3Rv
cmljTWVtb3J5Q2F0ZWdvcnlJbmZvKE1lbW9yeUNhdGVnb3J5OjpHaWdhY2FnZSwgeyAxMDEsIDc5
LCAyNDAgfSwgIkdpZ2FjYWdlIl9zKTsKKyAgICBjYXRlZ29yaWVzW01lbW9yeUNhdGVnb3J5OjpJ
bWFnZXNdID0gSGlzdG9yaWNNZW1vcnlDYXRlZ29yeUluZm8oTWVtb3J5Q2F0ZWdvcnk6OkltYWdl
cywgQ29sb3I6OnllbGxvdywgIkltYWdlcyJfcyk7CisgICAgY2F0ZWdvcmllc1tNZW1vcnlDYXRl
Z29yeTo6TGF5ZXJzXSA9IEhpc3RvcmljTWVtb3J5Q2F0ZWdvcnlJbmZvKE1lbW9yeUNhdGVnb3J5
OjpMYXllcnMsIENvbG9yOjpjeWFuLCAiTGF5ZXJzIl9zKTsKKyAgICBjYXRlZ29yaWVzW01lbW9y
eUNhdGVnb3J5OjpMaWJjTWFsbG9jXSA9IEhpc3RvcmljTWVtb3J5Q2F0ZWdvcnlJbmZvKE1lbW9y
eUNhdGVnb3J5OjpMaWJjTWFsbG9jLCBDb2xvcjo6Z3JlZW4sICJsaWJjIG1hbGxvYyJfcyk7Cisg
ICAgY2F0ZWdvcmllc1tNZW1vcnlDYXRlZ29yeTo6Ym1hbGxvY10gPSBIaXN0b3JpY01lbW9yeUNh
dGVnb3J5SW5mbyhNZW1vcnlDYXRlZ29yeTo6Ym1hbGxvYywgeyAyNTUsIDk2LCA5NiB9LCAiYm1h
bGxvYyJfcyk7CisgICAgY2F0ZWdvcmllc1tNZW1vcnlDYXRlZ29yeTo6SXNvSGVhcF0gPSBIaXN0
b3JpY01lbW9yeUNhdGVnb3J5SW5mbyhNZW1vcnlDYXRlZ29yeTo6SXNvSGVhcCwgeyAxMjgsIDE1
OSwgNjQgfSwgIklzb0hlYXAiX3MpOworICAgIGNhdGVnb3JpZXNbTWVtb3J5Q2F0ZWdvcnk6Ok90
aGVyXSA9IEhpc3RvcmljTWVtb3J5Q2F0ZWdvcnlJbmZvKE1lbW9yeUNhdGVnb3J5OjpPdGhlciwg
eyAxOTIsIDI1NSwgMCB9LCAiT3RoZXIiX3MpOwogCiAgICAgLy8gU3ViIGNhdGVnb3JpZXMgKGUu
ZyBicmVha2Rvd24gb2YgYm1hbGxvYyB0YWcuKQotICAgIGNhdGVnb3JpZXNbTWVtb3J5Q2F0ZWdv
cnk6OkdDSGVhcF0gPSBIaXN0b3JpY01lbW9yeUNhdGVnb3J5SW5mbyhNZW1vcnlDYXRlZ29yeTo6
R0NIZWFwLCB7IDE2MCwgMTYwLCAyNTUgfSwgIkdDIGhlYXAiLCB0cnVlKTsKLSAgICBjYXRlZ29y
aWVzW01lbW9yeUNhdGVnb3J5OjpHQ093bmVkXSA9IEhpc3RvcmljTWVtb3J5Q2F0ZWdvcnlJbmZv
KE1lbW9yeUNhdGVnb3J5OjpHQ093bmVkLCB7IDI1NSwgMTkyLCA5NiB9LCAiR0Mgb3duZWQiLCB0
cnVlKTsKKyAgICBjYXRlZ29yaWVzW01lbW9yeUNhdGVnb3J5OjpHQ0hlYXBdID0gSGlzdG9yaWNN
ZW1vcnlDYXRlZ29yeUluZm8oTWVtb3J5Q2F0ZWdvcnk6OkdDSGVhcCwgeyAxNjAsIDE2MCwgMjU1
IH0sICJHQyBoZWFwIl9zLCB0cnVlKTsKKyAgICBjYXRlZ29yaWVzW01lbW9yeUNhdGVnb3J5OjpH
Q093bmVkXSA9IEhpc3RvcmljTWVtb3J5Q2F0ZWdvcnlJbmZvKE1lbW9yeUNhdGVnb3J5OjpHQ093
bmVkLCB7IDI1NSwgMTkyLCA5NiB9LCAiR0Mgb3duZWQiX3MsIHRydWUpOwogCiAjaWZuZGVmIE5E
RUJVRwogICAgIC8vIEVuc3VyZSB0aGlzIGFsaWducyB3aXRoIFJlc291cmNlVXNhZ2VEYXRhJ3Mg
Y2F0ZWdvcnkgb3JkZXIuCkBAIC0zMTEsNyArMzExLDcgQEAgc3RhdGljIHZvaWQgZHJhd0NwdUhp
c3RvcnkoQ0dDb250ZXh0UmVmIGNvbnRleHQsIGZsb2F0IHgxLCBmbG9hdCB5MSwgZmxvYXQgeTIs
IFIKICAgICAgICAgaSsrOwogICAgIH0pOwogCi0gICAgZHJhd0dyYXBoTGFiZWwoY29udGV4dCwg
eDEsIHkyLCAiQ1BVIik7CisgICAgZHJhd0dyYXBoTGFiZWwoY29udGV4dCwgeDEsIHkyLCAiQ1BV
Il9zKTsKIH0KIAogc3RhdGljIHZvaWQgZHJhd0dDSGlzdG9yeShDR0NvbnRleHRSZWYgY29udGV4
dCwgZmxvYXQgeDEsIGZsb2F0IHkxLCBmbG9hdCB5MiwgUmluZ0J1ZmZlcjxzaXplX3Q+JiBzaXpl
SGlzdG9yeSwgUmluZ0J1ZmZlcjxzaXplX3Q+JiBjYXBhY2l0eUhpc3RvcnkpCkBAIC0zNTQsNyAr
MzU0LDcgQEAgc3RhdGljIHZvaWQgZHJhd0dDSGlzdG9yeShDR0NvbnRleHRSZWYgY29udGV4dCwg
ZmxvYXQgeDEsIGZsb2F0IHkxLCBmbG9hdCB5MiwgUmkKICAgICAgICAgaSsrOwogICAgIH0pOwog
Ci0gICAgZHJhd0dyYXBoTGFiZWwoY29udGV4dCwgeDEsIHkyLCAiR0MiKTsKKyAgICBkcmF3R3Jh
cGhMYWJlbChjb250ZXh0LCB4MSwgeTIsICJHQyJfcyk7CiB9CiAKIHN0YXRpYyB2b2lkIGRyYXdN
ZW1IaXN0b3J5KENHQ29udGV4dFJlZiBjb250ZXh0LCBmbG9hdCB4MSwgZmxvYXQgeTEsIGZsb2F0
IHkyLCBIaXN0b3JpY1Jlc291cmNlVXNhZ2VEYXRhJiBkYXRhKQpAQCAtNDAwLDcgKzQwMCw3IEBA
IHN0YXRpYyB2b2lkIGRyYXdNZW1IaXN0b3J5KENHQ29udGV4dFJlZiBjb250ZXh0LCBmbG9hdCB4
MSwgZmxvYXQgeTEsIGZsb2F0IHkyLCBICiAgICAgICAgICsraTsKICAgICB9CiAKLSAgICBkcmF3
R3JhcGhMYWJlbChjb250ZXh0LCB4MSwgeTIsICJNZW0iKTsKKyAgICBkcmF3R3JhcGhMYWJlbChj
b250ZXh0LCB4MSwgeTIsICJNZW0iX3MpOwogfQogCiBzdGF0aWMgY29uc3QgZmxvYXQgZnVsbENp
cmNsZUluUmFkaWFucyA9IHBpRmxvYXQgKiAyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9jb2NvYS9TZXR0aW5nc0Jhc2VDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29j
b2EvU2V0dGluZ3NCYXNlQ29jb2EubW0KaW5kZXggZDIxZDk5ZDg2MWI4ZmE5MjgyZTkxYTlhYTRh
MzAxZjhmYjY0ZDE3Ny4uNDc3NGNlMDhhNWI4YjUwZjY0YTE2MjAyZjUzOGI0ZjRmN2VmMmU0OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9TZXR0aW5nc0Jhc2VDb2NvYS5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL1NldHRpbmdzQmFzZUNvY29hLm1tCkBA
IC00MywxNSArNDMsMTUgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB2b2lkIFNldHRpbmdzQmFz
ZTo6aW5pdGlhbGl6ZURlZmF1bHRGb250RmFtaWxpZXMoKQogewotICAgIHNldFN0YW5kYXJkRm9u
dEZhbWlseSgiU29uZ3RpIFRDIiwgVVNDUklQVF9UUkFESVRJT05BTF9IQU4pOwotICAgIHNldFN0
YW5kYXJkRm9udEZhbWlseSgiU29uZ3RpIFNDIiwgVVNDUklQVF9TSU1QTElGSUVEX0hBTik7Ci0g
ICAgc2V0U3RhbmRhcmRGb250RmFtaWx5KCJIaXJhZ2lubyBNaW5jaG8gUHJvTiIsIFVTQ1JJUFRf
S0FUQUtBTkFfT1JfSElSQUdBTkEpOwotICAgIHNldFN0YW5kYXJkRm9udEZhbWlseSgiQXBwbGVN
eXVuZ2pvIiwgVVNDUklQVF9IQU5HVUwpOwotCi0gICAgc2V0U3RhbmRhcmRGb250RmFtaWx5KCJU
aW1lcyIsIFVTQ1JJUFRfQ09NTU9OKTsKLSAgICBzZXRGaXhlZEZvbnRGYW1pbHkoIkNvdXJpZXIi
LCBVU0NSSVBUX0NPTU1PTik7Ci0gICAgc2V0U2VyaWZGb250RmFtaWx5KCJUaW1lcyIsIFVTQ1JJ
UFRfQ09NTU9OKTsKLSAgICBzZXRTYW5zU2VyaWZGb250RmFtaWx5KCJIZWx2ZXRpY2EiLCBVU0NS
SVBUX0NPTU1PTik7CisgICAgc2V0U3RhbmRhcmRGb250RmFtaWx5KCJTb25ndGkgVEMiX3MsIFVT
Q1JJUFRfVFJBRElUSU9OQUxfSEFOKTsKKyAgICBzZXRTdGFuZGFyZEZvbnRGYW1pbHkoIlNvbmd0
aSBTQyJfcywgVVNDUklQVF9TSU1QTElGSUVEX0hBTik7CisgICAgc2V0U3RhbmRhcmRGb250RmFt
aWx5KCJIaXJhZ2lubyBNaW5jaG8gUHJvTiJfcywgVVNDUklQVF9LQVRBS0FOQV9PUl9ISVJBR0FO
QSk7CisgICAgc2V0U3RhbmRhcmRGb250RmFtaWx5KCJBcHBsZU15dW5nam8iX3MsIFVTQ1JJUFRf
SEFOR1VMKTsKKworICAgIHNldFN0YW5kYXJkRm9udEZhbWlseSgiVGltZXMiX3MsIFVTQ1JJUFRf
Q09NTU9OKTsKKyAgICBzZXRGaXhlZEZvbnRGYW1pbHkoIkNvdXJpZXIiX3MsIFVTQ1JJUFRfQ09N
TU9OKTsKKyAgICBzZXRTZXJpZkZvbnRGYW1pbHkoIlRpbWVzIl9zLCBVU0NSSVBUX0NPTU1PTik7
CisgICAgc2V0U2Fuc1NlcmlmRm9udEZhbWlseSgiSGVsdmV0aWNhIl9zLCBVU0NSSVBUX0NPTU1P
Tik7CiB9CiAKIGJvb2wgU2V0dGluZ3NCYXNlOjpwbGF0Zm9ybURlZmF1bHRNZWRpYVNvdXJjZUVu
YWJsZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvUGFnZU1hYy5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1BhZ2VNYWMubW0KaW5kZXggNDQ5YThmZjZjZDY5NGQy
NGM1YWYxNGJkZWFmNTRjNjI0YzIyYzExYi4uOWYyZDNmNWZkM2RmN2ZjNjViOGYyYmQ1MmNjNjlm
MjJiYjFiYWNlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvUGFnZU1hYy5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9QYWdlTWFjLm1tCkBAIC01NywxNSArNTcs
MTUgQEAgdm9pZCBQYWdlOjpwbGF0Zm9ybUluaXRpYWxpemUoKQogICAgIHN0YXRpYyBzdGQ6Om9u
Y2VfZmxhZyBvbmNlRmxhZzsKICAgICBzdGQ6OmNhbGxfb25jZShvbmNlRmxhZywgW10gewogI2lm
IEVOQUJMRShUUkVFX0RFQlVHR0lORykKLSAgICAgICAgUEFMOjpyZWdpc3Rlck5vdGlmeUNhbGxi
YWNrKCJjb20uYXBwbGUuV2ViS2l0LnNob3dSZW5kZXJUcmVlIiwgcHJpbnRSZW5kZXJUcmVlRm9y
TGl2ZURvY3VtZW50cyk7Ci0gICAgICAgIFBBTDo6cmVnaXN0ZXJOb3RpZnlDYWxsYmFjaygiY29t
LmFwcGxlLldlYktpdC5zaG93TGF5ZXJUcmVlIiwgcHJpbnRMYXllclRyZWVGb3JMaXZlRG9jdW1l
bnRzKTsKLSAgICAgICAgUEFMOjpyZWdpc3Rlck5vdGlmeUNhbGxiYWNrKCJjb20uYXBwbGUuV2Vi
S2l0LnNob3dHcmFwaGljc0xheWVyVHJlZSIsIHByaW50R3JhcGhpY3NMYXllclRyZWVGb3JMaXZl
RG9jdW1lbnRzKTsKKyAgICAgICAgUEFMOjpyZWdpc3Rlck5vdGlmeUNhbGxiYWNrKCJjb20uYXBw
bGUuV2ViS2l0LnNob3dSZW5kZXJUcmVlIl9zLCBwcmludFJlbmRlclRyZWVGb3JMaXZlRG9jdW1l
bnRzKTsKKyAgICAgICAgUEFMOjpyZWdpc3Rlck5vdGlmeUNhbGxiYWNrKCJjb20uYXBwbGUuV2Vi
S2l0LnNob3dMYXllclRyZWUiX3MsIHByaW50TGF5ZXJUcmVlRm9yTGl2ZURvY3VtZW50cyk7Cisg
ICAgICAgIFBBTDo6cmVnaXN0ZXJOb3RpZnlDYWxsYmFjaygiY29tLmFwcGxlLldlYktpdC5zaG93
R3JhcGhpY3NMYXllclRyZWUiX3MsIHByaW50R3JhcGhpY3NMYXllclRyZWVGb3JMaXZlRG9jdW1l
bnRzKTsKICNpZiBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkKLSAgICAgICAgUEFM
OjpyZWdpc3Rlck5vdGlmeUNhbGxiYWNrKCJjb20uYXBwbGUuV2ViS2l0LnNob3dMYXlvdXRUcmVl
IiwgTGF5b3V0OjpwcmludExheW91dFRyZWVGb3JMaXZlRG9jdW1lbnRzKTsKKyAgICAgICAgUEFM
OjpyZWdpc3Rlck5vdGlmeUNhbGxiYWNrKCJjb20uYXBwbGUuV2ViS2l0LnNob3dMYXlvdXRUcmVl
Il9zLCBMYXlvdXQ6OnByaW50TGF5b3V0VHJlZUZvckxpdmVEb2N1bWVudHMpOwogI2VuZGlmCiAj
ZW5kaWYgLy8gRU5BQkxFKFRSRUVfREVCVUdHSU5HKQogCi0gICAgICAgIFBBTDo6cmVnaXN0ZXJO
b3RpZnlDYWxsYmFjaygiY29tLmFwcGxlLldlYktpdC5zaG93QWxsRG9jdW1lbnRzIiwgW10gewor
ICAgICAgICBQQUw6OnJlZ2lzdGVyTm90aWZ5Q2FsbGJhY2soImNvbS5hcHBsZS5XZWJLaXQuc2hv
d0FsbERvY3VtZW50cyJfcywgW10gewogICAgICAgICAgICAgdW5zaWduZWQgbnVtUGFnZXMgPSAw
OwogICAgICAgICAgICAgUGFnZTo6Zm9yRWFjaFBhZ2UoWyZudW1QYWdlc10oUGFnZSYpIHsKICAg
ICAgICAgICAgICAgICArK251bVBhZ2VzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2Nh
bGl6ZWRTdHJpbmdzLmNwcAppbmRleCBjZjVkMGUwMjZjZGY4MzM3MjJlNTFjYWMwYmNjN2YxMzRh
NjI1ZTllLi44YTdlOGVmNmJjZTIzYzFmODRhZDQwMzA2Y2Q2ZjVmNWM5MGU1OGRhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcApAQCAtNjU1LDcgKzY1
NSw3IEBAIFN0cmluZyBBWFdlZWtGaWVsZFRleHQoKQogICAgIHJldHVybiBXRUJfVUlfU1RSSU5H
KCJ3ZWVrIGFuZCB5ZWFyIGZpZWxkIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBm
b3IgYSB0aW1lIGZpZWxkLiIpOwogfQogCi1TdHJpbmcgQVhBUklBQ29udGVudEdyb3VwVGV4dChj
b25zdCBTdHJpbmcmIGFyaWFUeXBlKQorU3RyaW5nIEFYQVJJQUNvbnRlbnRHcm91cFRleHQoU3Ry
aW5nVmlldyBhcmlhVHlwZSkKIHsKICAgICBpZiAoYXJpYVR5cGUgPT0gIkFSSUFBcHBsaWNhdGlv
bkFsZXJ0IikKICAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImFsZXJ0IiwgIkFuIEFSSUEg
YWNjZXNzaWJpbGl0eSBncm91cCB0aGF0IGFjdHMgYXMgYW4gYWxlcnQuIik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgKaW5kZXggYjE4MWYxZWQ4YTBiODhjMWZj
ZmNkMGU4NjE3MjM0YmIyOTQ5M2RhZS4uYTIwYjU4OGU2OTM3MTY5YTEwNjdkMzlkN2MxMDlmMzQ1
OWU4YzM5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3Ry
aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaApA
QCAtMTk1LDcgKzE5NSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBTdHJpbmcgQVhNb250
aEZpZWxkVGV4dCgpOwogICAgIFN0cmluZyBBWE51bWJlckZpZWxkVGV4dCgpOwogICAgIFN0cmlu
ZyBBWFdlZWtGaWVsZFRleHQoKTsKLSAgICBTdHJpbmcgQVhBUklBQ29udGVudEdyb3VwVGV4dChj
b25zdCBTdHJpbmcmIGFyaWFUeXBlKTsKKyAgICBTdHJpbmcgQVhBUklBQ29udGVudEdyb3VwVGV4
dChTdHJpbmdWaWV3IGFyaWFUeXBlKTsKICAgICBTdHJpbmcgQVhIb3Jpem9udGFsUnVsZURlc2Ny
aXB0aW9uVGV4dCgpOwogICAgIFN0cmluZyBBWE1hcmtUZXh0KCk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1Bhc3RlYm9hcmQuaAppbmRleCBhZWJhMGEzYjQ0ZDg2NjZlY2RiMjIxYjMzNTcwZDRjY2Rh
NTY2NDI5Li4xY2Y0MTA4ZjA4ZTYzMDY1OGY5YTNlMzFmZTRiY2U5NjNlM2U0Y2NhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZC5oCkBAIC0zNzUsOSArMzc1LDkgQEAgZXh0ZXJuIE5T
U3RyaW5nICpVSUNvbG9yUGJvYXJkVHlwZTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oTUFDKQot
ZXh0ZXJuIGNvbnN0IGNoYXIqIGNvbnN0IFdlYkFyY2hpdmVQYm9hcmRUeXBlOwotZXh0ZXJuIGNv
bnN0IGNoYXIqIGNvbnN0IFdlYlVSTE5hbWVQYm9hcmRUeXBlOwotZXh0ZXJuIGNvbnN0IGNoYXIq
IGNvbnN0IFdlYlVSTHNXaXRoVGl0bGVzUGJvYXJkVHlwZTsKK2V4dGVybiBjb25zdCBBU0NJSUxp
dGVyYWwgV2ViQXJjaGl2ZVBib2FyZFR5cGU7CitleHRlcm4gY29uc3QgQVNDSUlMaXRlcmFsIFdl
YlVSTE5hbWVQYm9hcmRUeXBlOworZXh0ZXJuIGNvbnN0IEFTQ0lJTGl0ZXJhbCBXZWJVUkxzV2l0
aFRpdGxlc1Bib2FyZFR5cGU7CiAjZW5kaWYKIAogI2lmICFQTEFURk9STShHVEspCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkQ3VzdG9tRGF0YS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZEN1c3RvbURhdGEuaAppbmRleCAyYmU4MWQy
OTM4YTNkYmQwOTAyNmNhNmVjNjRhYzMyODdlNmFiYzAzLi4yNTZmNDQ1NDI5MDMyYmI0MmYzMTNk
OTIwYWZiZmZkMWIwMjNhNzdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Q
YXN0ZWJvYXJkQ3VzdG9tRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3Rl
Ym9hcmRDdXN0b21EYXRhLmgKQEAgLTc2LDcgKzc2LDcgQEAgcHVibGljOgogICAgIHZvaWQgY2xl
YXIoY29uc3QgU3RyaW5nJiB0eXBlKTsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIFdFQkNP
UkVfRVhQT1JUIHN0YXRpYyBjb25zdCBjaGFyKiBjb2NvYVR5cGUoKTsKKyAgICBXRUJDT1JFX0VY
UE9SVCBzdGF0aWMgQVNDSUlMaXRlcmFsIGNvY29hVHlwZSgpOwogI2VsaWYgUExBVEZPUk0oR1RL
KQogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBndGtUeXBlKCkgeyByZXR1cm4gIm9yZy53ZWJraXRn
dGsuV2ViS2l0LmN1c3RvbS1wYXN0ZWJvYXJkLWRhdGEiOyB9CiAjZW5kaWYKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL01lZGlhU2Vzc2lvbk1hbmFnZXJD
b2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL01lZGlhU2Vzc2lv
bk1hbmFnZXJDb2NvYS5tbQppbmRleCBhMGU5MDJmMTJjZTdlYjE3Yzc3NmQ0M2MxMzVjODUzMjZj
NzVjZmUwLi45NmNkZmFhMzYyMWM1Yzk2MmRhMGUwNTMwMmQ0ZWE5ZDljZDcwODdjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9NZWRpYVNlc3Npb25NYW5h
Z2VyQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvTWVk
aWFTZXNzaW9uTWFuYWdlckNvY29hLm1tCkBAIC00NTIsOCArNDUyLDggQEAgdm9pZCBNZWRpYVNl
c3Npb25NYW5hZ2VyQ29jb2E6OnVwZGF0ZU5vd1BsYXlpbmdJbmZvKCkKIAogICAgIGlmIChtX25v
d1BsYXlpbmdNYW5hZ2VyLT5zZXROb3dQbGF5aW5nSW5mbygqbm93UGxheWluZ0luZm8pKSB7CiAj
aWZkZWYgTE9HX0RJU0FCTEVECi0gICAgICAgIFN0cmluZyBzcmMgPSAic3JjIjsKLSAgICAgICAg
U3RyaW5nIHRpdGxlID0gInRpdGxlIjsKKyAgICAgICAgU3RyaW5nIHNyYyA9ICJzcmMiX3M7Cisg
ICAgICAgIFN0cmluZyB0aXRsZSA9ICJ0aXRsZSJfczsKICNlbHNlCiAgICAgICAgIFN0cmluZyBz
cmMgPSBub3dQbGF5aW5nSW5mby0+YXJ0d29yayA/IG5vd1BsYXlpbmdJbmZvLT5hcnR3b3JrLT5z
cmMgOiBTdHJpbmcoKTsKICAgICAgICAgU3RyaW5nIHRpdGxlID0gbm93UGxheWluZ0luZm8tPnRp
dGxlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvS2V5RXZlbnRD
b2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL0tleUV2ZW50Q29jb2EubW0K
aW5kZXggZjRlZWU2NWYwOTkzYjlkNGQ5YmQ2ZmU5ZWRhN2FkMGE2MTUzNzM1Mi4uMWM1ZTI0M2M4
NTJhMzg1MDljODljYzU5MTljZmMxNDIwNjcxOTljMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vY29jb2EvS2V5RXZlbnRDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jb2NvYS9LZXlFdmVudENvY29hLm1tCkBAIC0yMjAsNyArMjIwLDcgQEAgU3RyaW5n
IGtleUlkZW50aWZpZXJGb3JDaGFyQ29kZSh1bmljaGFyIGNoYXJDb2RlKQogCiAgICAgICAgIC8v
ICJBbHQiCiAgICAgICAgIGNhc2UgTlNNZW51RnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1
cm4gIkFsdCI7CisgICAgICAgICAgICByZXR1cm4gIkFsdCJfczsKIAogICAgICAgICAvLyAiQXBw
cyIKICAgICAgICAgLy8gIkJyb3dzZXJCYWNrIgpAQCAtMjMzLDcgKzIzMyw3IEBAIFN0cmluZyBr
ZXlJZGVudGlmaWVyRm9yQ2hhckNvZGUodW5pY2hhciBjaGFyQ29kZSkKIAogICAgICAgICAvLyAi
Q2xlYXIiCiAgICAgICAgIGNhc2UgTlNDbGVhckxpbmVGdW5jdGlvbktleToKLSAgICAgICAgICAg
IHJldHVybiAiQ2xlYXIiOworICAgICAgICAgICAgcmV0dXJuICJDbGVhciJfczsKIAogICAgICAg
ICAvLyAiQ29kZUlucHV0IgogICAgICAgICAvLyAiQ29tcG9zZSIKQEAgLTI0NSwxMDAgKzI0NSwx
MDAgQEAgU3RyaW5nIGtleUlkZW50aWZpZXJGb3JDaGFyQ29kZSh1bmljaGFyIGNoYXJDb2RlKQog
CiAgICAgICAgIC8vICJEb3duIgogICAgICAgICBjYXNlIE5TRG93bkFycm93RnVuY3Rpb25LZXk6
Ci0gICAgICAgICAgICByZXR1cm4gIkRvd24iOworICAgICAgICAgICAgcmV0dXJuICJEb3duIl9z
OwogICAgICAgICAvLyAiRW5kIgogICAgICAgICBjYXNlIE5TRW5kRnVuY3Rpb25LZXk6Ci0gICAg
ICAgICAgICByZXR1cm4gIkVuZCI7CisgICAgICAgICAgICByZXR1cm4gIkVuZCJfczsKICAgICAg
ICAgLy8gIkVudGVyIgogICAgICAgICBjYXNlIDB4MzogY2FzZSAweEE6IGNhc2UgMHhEOiAvLyBN
YWNpbnRvc2ggY2FsbHMgdGhlIG9uZSBvbiB0aGUgbWFpbiBrZXlib2FyZCBSZXR1cm4sIGJ1dCBX
aW5kb3dzIGNhbGxzIGl0IEVudGVyLCBzbyB3ZSdsbCBkbyB0aGUgc2FtZSBmb3IgdGhlIERPTQot
ICAgICAgICAgICAgcmV0dXJuICJFbnRlciI7CisgICAgICAgICAgICByZXR1cm4gIkVudGVyIl9z
OwogCiAgICAgICAgIC8vICJFcmFzZUVvZiIKIAogICAgICAgICAvLyAiRXhlY3V0ZSIKICAgICAg
ICAgY2FzZSBOU0V4ZWN1dGVGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiRXhlY3V0
ZSI7CisgICAgICAgICAgICByZXR1cm4gIkV4ZWN1dGUiX3M7CiAKICAgICAgICAgLy8gIkV4c2Vs
IgogCiAgICAgICAgIC8vICJGMSIKICAgICAgICAgY2FzZSBOU0YxRnVuY3Rpb25LZXk6Ci0gICAg
ICAgICAgICByZXR1cm4gIkYxIjsKKyAgICAgICAgICAgIHJldHVybiAiRjEiX3M7CiAgICAgICAg
IC8vICJGMiIKICAgICAgICAgY2FzZSBOU0YyRnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1
cm4gIkYyIjsKKyAgICAgICAgICAgIHJldHVybiAiRjIiX3M7CiAgICAgICAgIC8vICJGMyIKICAg
ICAgICAgY2FzZSBOU0YzRnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkYzIjsKKyAg
ICAgICAgICAgIHJldHVybiAiRjMiX3M7CiAgICAgICAgIC8vICJGNCIKICAgICAgICAgY2FzZSBO
U0Y0RnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkY0IjsKKyAgICAgICAgICAgIHJl
dHVybiAiRjQiX3M7CiAgICAgICAgIC8vICJGNSIKICAgICAgICAgY2FzZSBOU0Y1RnVuY3Rpb25L
ZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkY1IjsKKyAgICAgICAgICAgIHJldHVybiAiRjUiX3M7
CiAgICAgICAgIC8vICJGNiIKICAgICAgICAgY2FzZSBOU0Y2RnVuY3Rpb25LZXk6Ci0gICAgICAg
ICAgICByZXR1cm4gIkY2IjsKKyAgICAgICAgICAgIHJldHVybiAiRjYiX3M7CiAgICAgICAgIC8v
ICJGNyIKICAgICAgICAgY2FzZSBOU0Y3RnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4g
IkY3IjsKKyAgICAgICAgICAgIHJldHVybiAiRjciX3M7CiAgICAgICAgIC8vICJGOCIKICAgICAg
ICAgY2FzZSBOU0Y4RnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkY4IjsKKyAgICAg
ICAgICAgIHJldHVybiAiRjgiX3M7CiAgICAgICAgIC8vICJGOSIKICAgICAgICAgY2FzZSBOU0Y5
RnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkY5IjsKKyAgICAgICAgICAgIHJldHVy
biAiRjkiX3M7CiAgICAgICAgIC8vICJGMTAiCiAgICAgICAgIGNhc2UgTlNGMTBGdW5jdGlvbktl
eToKLSAgICAgICAgICAgIHJldHVybiAiRjEwIjsKKyAgICAgICAgICAgIHJldHVybiAiRjEwIl9z
OwogICAgICAgICAvLyAiRjExIgogICAgICAgICBjYXNlIE5TRjExRnVuY3Rpb25LZXk6Ci0gICAg
ICAgICAgICByZXR1cm4gIkYxMSI7CisgICAgICAgICAgICByZXR1cm4gIkYxMSJfczsKICAgICAg
ICAgLy8gIkYxMiIKICAgICAgICAgY2FzZSBOU0YxMkZ1bmN0aW9uS2V5OgotICAgICAgICAgICAg
cmV0dXJuICJGMTIiOworICAgICAgICAgICAgcmV0dXJuICJGMTIiX3M7CiAgICAgICAgIC8vICJG
MTMiCiAgICAgICAgIGNhc2UgTlNGMTNGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAi
RjEzIjsKKyAgICAgICAgICAgIHJldHVybiAiRjEzIl9zOwogICAgICAgICAvLyAiRjE0IgogICAg
ICAgICBjYXNlIE5TRjE0RnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkYxNCI7Cisg
ICAgICAgICAgICByZXR1cm4gIkYxNCJfczsKICAgICAgICAgLy8gIkYxNSIKICAgICAgICAgY2Fz
ZSBOU0YxNUZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJGMTUiOworICAgICAgICAg
ICAgcmV0dXJuICJGMTUiX3M7CiAgICAgICAgIC8vICJGMTYiCiAgICAgICAgIGNhc2UgTlNGMTZG
dW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiRjE2IjsKKyAgICAgICAgICAgIHJldHVy
biAiRjE2Il9zOwogICAgICAgICAvLyAiRjE3IgogICAgICAgICBjYXNlIE5TRjE3RnVuY3Rpb25L
ZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkYxNyI7CisgICAgICAgICAgICByZXR1cm4gIkYxNyJf
czsKICAgICAgICAgLy8gIkYxOCIKICAgICAgICAgY2FzZSBOU0YxOEZ1bmN0aW9uS2V5OgotICAg
ICAgICAgICAgcmV0dXJuICJGMTgiOworICAgICAgICAgICAgcmV0dXJuICJGMTgiX3M7CiAgICAg
ICAgIC8vICJGMTkiCiAgICAgICAgIGNhc2UgTlNGMTlGdW5jdGlvbktleToKLSAgICAgICAgICAg
IHJldHVybiAiRjE5IjsKKyAgICAgICAgICAgIHJldHVybiAiRjE5Il9zOwogICAgICAgICAvLyAi
RjIwIgogICAgICAgICBjYXNlIE5TRjIwRnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4g
IkYyMCI7CisgICAgICAgICAgICByZXR1cm4gIkYyMCJfczsKICAgICAgICAgLy8gIkYyMSIKICAg
ICAgICAgY2FzZSBOU0YyMUZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJGMjEiOwor
ICAgICAgICAgICAgcmV0dXJuICJGMjEiX3M7CiAgICAgICAgIC8vICJGMjIiCiAgICAgICAgIGNh
c2UgTlNGMjJGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiRjIyIjsKKyAgICAgICAg
ICAgIHJldHVybiAiRjIyIl9zOwogICAgICAgICAvLyAiRjIzIgogICAgICAgICBjYXNlIE5TRjIz
RnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkYyMyI7CisgICAgICAgICAgICByZXR1
cm4gIkYyMyJfczsKICAgICAgICAgLy8gIkYyNCIKICAgICAgICAgY2FzZSBOU0YyNEZ1bmN0aW9u
S2V5OgotICAgICAgICAgICAgcmV0dXJuICJGMjQiOworICAgICAgICAgICAgcmV0dXJuICJGMjQi
X3M7CiAKICAgICAgICAgLy8gIkZpbmFsTW9kZSIKIAogICAgICAgICAvLyAiRmluZCIKICAgICAg
ICAgY2FzZSBOU0ZpbmRGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiRmluZCI7Cisg
ICAgICAgICAgICByZXR1cm4gIkZpbmQiX3M7CiAKICAgICAgICAgLy8gIkZ1bGxXaWR0aCIKICAg
ICAgICAgLy8gIkhhbGZXaWR0aCIKQEAgLTM0NywxNiArMzQ3LDE2IEBAIFN0cmluZyBrZXlJZGVu
dGlmaWVyRm9yQ2hhckNvZGUodW5pY2hhciBjaGFyQ29kZSkKIAogICAgICAgICAvLyAiSGVscCIK
ICAgICAgICAgY2FzZSBOU0hlbHBGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiSGVs
cCI7CisgICAgICAgICAgICByZXR1cm4gIkhlbHAiX3M7CiAKICAgICAgICAgLy8gIkhpcmFnYW5h
IgogCiAgICAgICAgIC8vICJIb21lIgogICAgICAgICBjYXNlIE5TSG9tZUZ1bmN0aW9uS2V5Ogot
ICAgICAgICAgICAgcmV0dXJuICJIb21lIjsKKyAgICAgICAgICAgIHJldHVybiAiSG9tZSJfczsK
ICAgICAgICAgLy8gIkluc2VydCIKICAgICAgICAgY2FzZSBOU0luc2VydEZ1bmN0aW9uS2V5Ogot
ICAgICAgICAgICAgcmV0dXJuICJJbnNlcnQiOworICAgICAgICAgICAgcmV0dXJuICJJbnNlcnQi
X3M7CiAKICAgICAgICAgLy8gIkphcGFuZXNlSGlyYWdhbmEiCiAgICAgICAgIC8vICJKYXBhbmVz
ZUthdGFrYW5hIgpAQCAtMzcxLDcgKzM3MSw3IEBAIFN0cmluZyBrZXlJZGVudGlmaWVyRm9yQ2hh
ckNvZGUodW5pY2hhciBjaGFyQ29kZSkKIAogICAgICAgICAvLyAiTGVmdCIKICAgICAgICAgY2Fz
ZSBOU0xlZnRBcnJvd0Z1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJMZWZ0IjsKKyAg
ICAgICAgICAgIHJldHVybiAiTGVmdCJfczsKIAogICAgICAgICAvLyAiTWV0YSIKICAgICAgICAg
Ly8gIk1lZGlhTmV4dFRyYWNrIgpAQCAtMzgxLDU5ICszODEsNTkgQEAgU3RyaW5nIGtleUlkZW50
aWZpZXJGb3JDaGFyQ29kZSh1bmljaGFyIGNoYXJDb2RlKQogCiAgICAgICAgIC8vICJNb2RlQ2hh
bmdlIgogICAgICAgICBjYXNlIE5TTW9kZVN3aXRjaEZ1bmN0aW9uS2V5OgotICAgICAgICAgICAg
cmV0dXJuICJNb2RlQ2hhbmdlIjsKKyAgICAgICAgICAgIHJldHVybiAiTW9kZUNoYW5nZSJfczsK
IAogICAgICAgICAvLyAiTm9uY29udmVydCIKICAgICAgICAgLy8gIk51bUxvY2siCiAKICAgICAg
ICAgLy8gIlBhZ2VEb3duIgogICAgICAgICBjYXNlIE5TUGFnZURvd25GdW5jdGlvbktleToKLSAg
ICAgICAgICAgIHJldHVybiAiUGFnZURvd24iOworICAgICAgICAgICAgcmV0dXJuICJQYWdlRG93
biJfczsKICAgICAgICAgLy8gIlBhZ2VVcCIKICAgICAgICAgY2FzZSBOU1BhZ2VVcEZ1bmN0aW9u
S2V5OgotICAgICAgICAgICAgcmV0dXJuICJQYWdlVXAiOworICAgICAgICAgICAgcmV0dXJuICJQ
YWdlVXAiX3M7CiAKICAgICAgICAgLy8gIlBhc3RlIgogCiAgICAgICAgIC8vICJQYXVzZSIKICAg
ICAgICAgY2FzZSBOU1BhdXNlRnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIlBhdXNl
IjsKKyAgICAgICAgICAgIHJldHVybiAiUGF1c2UiX3M7CiAKICAgICAgICAgLy8gIlBsYXkiCiAg
ICAgICAgIC8vICJQcmV2aW91c0NhbmRpZGF0ZSIKIAogICAgICAgICAvLyAiUHJpbnRTY3JlZW4i
CiAgICAgICAgIGNhc2UgTlNQcmludFNjcmVlbkZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0
dXJuICJQcmludFNjcmVlbiI7CisgICAgICAgICAgICByZXR1cm4gIlByaW50U2NyZWVuIl9zOwog
CiAgICAgICAgIC8vICJQcm9jZXNzIgogICAgICAgICAvLyAiUHJvcHMiCiAKICAgICAgICAgLy8g
IlJpZ2h0IgogICAgICAgICBjYXNlIE5TUmlnaHRBcnJvd0Z1bmN0aW9uS2V5OgotICAgICAgICAg
ICAgcmV0dXJuICJSaWdodCI7CisgICAgICAgICAgICByZXR1cm4gIlJpZ2h0Il9zOwogCiAgICAg
ICAgIC8vICJSb21hbkNoYXJhY3RlcnMiCiAKICAgICAgICAgLy8gIlNjcm9sbCIKICAgICAgICAg
Y2FzZSBOU1Njcm9sbExvY2tGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiU2Nyb2xs
IjsKKyAgICAgICAgICAgIHJldHVybiAiU2Nyb2xsIl9zOwogICAgICAgICAvLyAiU2VsZWN0Igog
ICAgICAgICBjYXNlIE5TU2VsZWN0RnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIlNl
bGVjdCI7CisgICAgICAgICAgICByZXR1cm4gIlNlbGVjdCJfczsKIAogICAgICAgICAvLyAiU2Vs
ZWN0TWVkaWEiCiAgICAgICAgIC8vICJTaGlmdCIKIAogICAgICAgICAvLyAiU3RvcCIKICAgICAg
ICAgY2FzZSBOU1N0b3BGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiU3RvcCI7Cisg
ICAgICAgICAgICByZXR1cm4gIlN0b3AiX3M7CiAgICAgICAgIC8vICJVcCIKICAgICAgICAgY2Fz
ZSBOU1VwQXJyb3dGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiVXAiOworICAgICAg
ICAgICAgcmV0dXJuICJVcCJfczsKICAgICAgICAgLy8gIlVuZG8iCiAgICAgICAgIGNhc2UgTlNV
bmRvRnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIlVuZG8iOworICAgICAgICAgICAg
cmV0dXJuICJVbmRvIl9zOwogCiAgICAgICAgIC8vICJWb2x1bWVEb3duIgogICAgICAgICAvLyAi
Vm9sdW1lTXV0ZSIKQEAgLTQ0MywzOCArNDQzLDM4IEBAIFN0cmluZyBrZXlJZGVudGlmaWVyRm9y
Q2hhckNvZGUodW5pY2hhciBjaGFyQ29kZSkKIAogICAgICAgICAvLyBNb3JlIGZ1bmN0aW9uIGtl
eXMsIG5vdCBpbiB0aGUga2V5IGlkZW50aWZpZXIgc3BlY2lmaWNhdGlvbi4KICAgICAgICAgY2Fz
ZSBOU0YyNUZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJGMjUiOworICAgICAgICAg
ICAgcmV0dXJuICJGMjUiX3M7CiAgICAgICAgIGNhc2UgTlNGMjZGdW5jdGlvbktleToKLSAgICAg
ICAgICAgIHJldHVybiAiRjI2IjsKKyAgICAgICAgICAgIHJldHVybiAiRjI2Il9zOwogICAgICAg
ICBjYXNlIE5TRjI3RnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkYyNyI7CisgICAg
ICAgICAgICByZXR1cm4gIkYyNyJfczsKICAgICAgICAgY2FzZSBOU0YyOEZ1bmN0aW9uS2V5Ogot
ICAgICAgICAgICAgcmV0dXJuICJGMjgiOworICAgICAgICAgICAgcmV0dXJuICJGMjgiX3M7CiAg
ICAgICAgIGNhc2UgTlNGMjlGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiRjI5IjsK
KyAgICAgICAgICAgIHJldHVybiAiRjI5Il9zOwogICAgICAgICBjYXNlIE5TRjMwRnVuY3Rpb25L
ZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkYzMCI7CisgICAgICAgICAgICByZXR1cm4gIkYzMCJf
czsKICAgICAgICAgY2FzZSBOU0YzMUZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJG
MzEiOworICAgICAgICAgICAgcmV0dXJuICJGMzEiX3M7CiAgICAgICAgIGNhc2UgTlNGMzJGdW5j
dGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiRjMyIjsKKyAgICAgICAgICAgIHJldHVybiAi
RjMyIl9zOwogICAgICAgICBjYXNlIE5TRjMzRnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1
cm4gIkYzMyI7CisgICAgICAgICAgICByZXR1cm4gIkYzMyJfczsKICAgICAgICAgY2FzZSBOU0Yz
NEZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJGMzQiOworICAgICAgICAgICAgcmV0
dXJuICJGMzQiX3M7CiAgICAgICAgIGNhc2UgTlNGMzVGdW5jdGlvbktleToKLSAgICAgICAgICAg
IHJldHVybiAiRjM1IjsKKyAgICAgICAgICAgIHJldHVybiAiRjM1Il9zOwogCiAgICAgICAgIC8v
IFR1cm4gMHg3RiBpbnRvIDB4MDgsIGJlY2F1c2UgYmFja3NwYWNlIG5lZWRzIHRvIGFsd2F5cyBi
ZSAweDA4LgogICAgICAgICBjYXNlIDB4N0Y6Ci0gICAgICAgICAgICByZXR1cm4gIlUrMDAwOCI7
CisgICAgICAgICAgICByZXR1cm4gIlUrMDAwOCJfczsKICAgICAgICAgLy8gU3RhbmRhcmQgc2F5
cyB0aGF0IERFTCBiZWNvbWVzIFUrMDA3Ri4KICAgICAgICAgY2FzZSBOU0RlbGV0ZUZ1bmN0aW9u
S2V5OgotICAgICAgICAgICAgcmV0dXJuICJVKzAwN0YiOworICAgICAgICAgICAgcmV0dXJuICJV
KzAwN0YiX3M7CiAKICAgICAgICAgLy8gQWx3YXlzIHVzZSAweDA5IGZvciB0YWIgaW5zdGVhZCBv
ZiBBcHBLaXQncyBiYWNrdGFiIGNoYXJhY3Rlci4KICAgICAgICAgY2FzZSBOU0JhY2tUYWJDaGFy
YWN0ZXI6Ci0gICAgICAgICAgICByZXR1cm4gIlUrMDAwOSI7CisgICAgICAgICAgICByZXR1cm4g
IlUrMDAwOSJfczsKIAogICAgICAgICBjYXNlIE5TQmVnaW5GdW5jdGlvbktleToKICAgICAgICAg
Y2FzZSBOU0JyZWFrRnVuY3Rpb25LZXk6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jb2NvYS9QYXN0ZWJvYXJkQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9j
b2NvYS9QYXN0ZWJvYXJkQ29jb2EubW0KaW5kZXggMDY5NjFmYmE0OGFkOTFiNDIzYmNhOTg1YjZj
MmU1YzYyMTAxZmMyZi4uNTk4NDJmMTI2OWM1YjVlZGYwOTViZDljYjhlZTMzMjZkNjg3YWUxYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvUGFzdGVib2FyZENvY29h
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Bhc3RlYm9hcmRDb2NvYS5t
bQpAQCAtMTA0LDI1ICsxMDQsMjUgQEAgc3RhdGljIGNvbnN0IGNoYXIqIGltYWdlVHlwZVRvTUlN
RVR5cGUoSW1hZ2VUeXBlIHR5cGUpCiAgICAgfQogfQogCi1zdGF0aWMgY29uc3QgY2hhciogaW1h
Z2VUeXBlVG9GYWtlRmlsZW5hbWUoSW1hZ2VUeXBlIHR5cGUpCitzdGF0aWMgQVNDSUlMaXRlcmFs
IGltYWdlVHlwZVRvRmFrZUZpbGVuYW1lKEltYWdlVHlwZSB0eXBlKQogewogICAgIHN3aXRjaCAo
dHlwZSkgewogICAgIGNhc2UgSW1hZ2VUeXBlOjpJbnZhbGlkOgogICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIHJldHVybiBBU0NJ
SUxpdGVyYWw6Om51bGwoKTsKICAgICBjYXNlIEltYWdlVHlwZTo6VElGRjoKICNpZiBQTEFURk9S
TShNQUMpCi0gICAgICAgIHJldHVybiAiaW1hZ2UucG5nIjsgLy8gRm9yIFdlYiBjb21wYXRpYmls
aXR5LCB3ZSBwcmV0ZW5kIHRvIGhhdmUgUE5HIGluc3RlYWQuCisgICAgICAgIHJldHVybiAiaW1h
Z2UucG5nIl9zOyAvLyBGb3IgV2ViIGNvbXBhdGliaWxpdHksIHdlIHByZXRlbmQgdG8gaGF2ZSBQ
TkcgaW5zdGVhZC4KICNlbHNlCiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbDo6bnVsbCgpOwog
I2VuZGlmCiAgICAgY2FzZSBJbWFnZVR5cGU6OlBORzoKLSAgICAgICAgcmV0dXJuICJpbWFnZS5w
bmciOworICAgICAgICByZXR1cm4gImltYWdlLnBuZyJfczsKICAgICBjYXNlIEltYWdlVHlwZTo6
SlBFRzoKLSAgICAgICAgcmV0dXJuICJpbWFnZS5qcGVnIjsKKyAgICAgICAgcmV0dXJuICJpbWFn
ZS5qcGVnIl9zOwogICAgIGNhc2UgSW1hZ2VUeXBlOjpHSUY6Ci0gICAgICAgIHJldHVybiAiaW1h
Z2UuZ2lmIjsKKyAgICAgICAgcmV0dXJuICJpbWFnZS5naWYiX3M7CiAgICAgfQogfQogCkBAIC0y
MzQsNyArMjM0LDcgQEAgdm9pZCBQYXN0ZWJvYXJkOjpyZWFkKFBhc3RlYm9hcmRGaWxlUmVhZGVy
JiByZWFkZXIsIHN0ZDo6b3B0aW9uYWw8c2l6ZV90PiBpdGVtSW4KICAgICAgICAgZm9yIChhdXRv
IGNvY29hVHlwZSA6IGluZm8ucGxhdGZvcm1UeXBlc0J5RmlkZWxpdHkpIHsKICAgICAgICAgICAg
IGF1dG8gaW1hZ2VUeXBlID0gY29jb2FUeXBlVG9JbWFnZVR5cGUoY29jb2FUeXBlKTsKICAgICAg
ICAgICAgIGF1dG8qIG1pbWVUeXBlID0gaW1hZ2VUeXBlVG9NSU1FVHlwZShpbWFnZVR5cGUpOwot
ICAgICAgICAgICAgaWYgKCFtaW1lVHlwZSB8fCAhcmVhZGVyLnNob3VsZFJlYWRCdWZmZXIobWlt
ZVR5cGUpKQorICAgICAgICAgICAgaWYgKCFtaW1lVHlwZSB8fCAhcmVhZGVyLnNob3VsZFJlYWRC
dWZmZXIoU3RyaW5nIHsgbWltZVR5cGUgfSkpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAg
ICAgICAgICAgICBhdXRvIGJ1ZmZlciA9IHJlYWRCdWZmZXIoaXRlbUluZGV4LCBjb2NvYVR5cGUp
OwogI2lmIFBMQVRGT1JNKE1BQykKQEAgLTI0Miw3ICsyNDIsNyBAQCB2b2lkIFBhc3RlYm9hcmQ6
OnJlYWQoUGFzdGVib2FyZEZpbGVSZWFkZXImIHJlYWRlciwgc3RkOjpvcHRpb25hbDxzaXplX3Q+
IGl0ZW1JbgogICAgICAgICAgICAgICAgIGJ1ZmZlciA9IGNvbnZlcnRUSUZGVG9QTkcoYnVmZmVy
LnJlbGVhc2VOb25OdWxsKCkpOwogI2VuZGlmCiAgICAgICAgICAgICBpZiAoYnVmZmVyKSB7Ci0g
ICAgICAgICAgICAgICAgcmVhZGVyLnJlYWRCdWZmZXIoaW1hZ2VUeXBlVG9GYWtlRmlsZW5hbWUo
aW1hZ2VUeXBlKSwgbWltZVR5cGUsIGJ1ZmZlci5yZWxlYXNlTm9uTnVsbCgpKTsKKyAgICAgICAg
ICAgICAgICByZWFkZXIucmVhZEJ1ZmZlcihpbWFnZVR5cGVUb0Zha2VGaWxlbmFtZShpbWFnZVR5
cGUpLCBTdHJpbmcgeyBtaW1lVHlwZSB9LCBidWZmZXIucmVsZWFzZU5vbk51bGwoKSk7CiAgICAg
ICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Bhc3RlYm9hcmRDdXN0b21EYXRhQ29jb2Eu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9QYXN0ZWJvYXJkQ3VzdG9tRGF0YUNv
Y29hLm1tCmluZGV4IDI2MjEyODQ0ZjIxMDRhNzc3Y2Y2NTU2ZDc1YTZlNWNhZWM5NzNkZTguLjNk
ZTUwYTBlOTJjMjkwNGMxOWViNmRlYmRhNzE2ODJlZmI2ZDY3NTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Bhc3RlYm9hcmRDdXN0b21EYXRhQ29jb2EubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvUGFzdGVib2FyZEN1c3RvbURhdGFDb2Nv
YS5tbQpAQCAtMzAsOSArMzAsOSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNvbnN0IGNo
YXIqIFBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKQorQVNDSUlMaXRlcmFsIFBhc3Rl
Ym9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKQogewotICAgIHJldHVybiAiY29tLmFwcGxlLldl
YktpdC5jdXN0b20tcGFzdGVib2FyZC1kYXRhIjsKKyAgICByZXR1cm4gImNvbS5hcHBsZS5XZWJL
aXQuY3VzdG9tLXBhc3RlYm9hcmQtZGF0YSJfczsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm91ckNDLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb3VyQ0MuaAppbmRleCBiMzdkMDUw
ZTljMGMzNjc3MDdkYWUwYjZhY2NiMWJjMzdmOGVhYzEzLi42NmZiM2RlMDcxMTUxMzA2Nzg4ZGMx
MjZjMjNmNGJjODYxMjU4MzY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Gb3VyQ0MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9G
b3VyQ0MuaApAQCAtODUsNyArODUsNyBAQCBuYW1lc3BhY2UgV1RGIHsKIHRlbXBsYXRlPHR5cGVu
YW1lPiBzdHJ1Y3QgTG9nQXJndW1lbnQ7CiAKIHRlbXBsYXRlPD4gc3RydWN0IExvZ0FyZ3VtZW50
PFdlYkNvcmU6OkZvdXJDQz4gewotICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoY29uc3QgV2Vi
Q29yZTo6Rm91ckNDJiBjb2RlKSB7IHJldHVybiBjb2RlLnN0cmluZygpLmRhdGEoKTsgfQorICAg
IHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoY29uc3QgV2ViQ29yZTo6Rm91ckNDJiBjb2RlKSB7IHJl
dHVybiBTdHJpbmcgeyBjb2RlLnN0cmluZygpLmRhdGEoKSB9OyB9CiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Fu
Z2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5jcHAKaW5kZXggY2MyOWNmYjQ2
NzNjNjYyMTFkZTFhNDFlZTJiZjZhMmU4YmExMWZkNS4uZTJjOTYxNWRkNGFmOGU1MTI3YTkxNGYx
MDc4OTQyNmJmNWVjMGRkOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5jcHAKQEAg
LTUxMCw4ICs1MTAsOSBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dEdMQU5HTEU6OnZhbGlkYXRlRGVw
dGhTdGVuY2lsKGNvbnN0IGNoYXIqIHBhY2tlZERlcHRoU3RlbmNpbAogICAgIC8vIEZJWE1FOiBT
aW5jZSB0aGUgY29uc3RydWN0b3JzIG9mIHZhcmlvdXMgcGxhdGZvcm1zIGFyZSBub3Qgc2hhcmVk
LCB3ZSBpbml0aWFsaXplIHRoaXMgaGVyZS4KICAgICAvLyBVcG9uIGNvbnN0cnVjdGluZyB0aGUg
Y29udGV4dCwgYWx3YXlzIGluaXRpYWxpemUgdGhlIGV4dGVuc2lvbnMgdGhhdCB0aGUgV2ViR0xS
ZW5kZXJpbmdDb250ZXh0KiB3aWxsCiAgICAgLy8gdXNlIHRvIHR1cm4gb24gZmVhdHVyZSBmbGFn
cy4KLSAgICBpZiAoc3VwcG9ydHNFeHRlbnNpb24ocGFja2VkRGVwdGhTdGVuY2lsRXh0ZW5zaW9u
KSkgewotICAgICAgICBlbnN1cmVFeHRlbnNpb25FbmFibGVkKHBhY2tlZERlcHRoU3RlbmNpbEV4
dGVuc2lvbik7CisgICAgU3RyaW5nIHBhY2tlZERlcHRoU3RlbmNpbEV4dGVuc2lvblN0cmluZyB7
IHBhY2tlZERlcHRoU3RlbmNpbEV4dGVuc2lvbiB9OworICAgIGlmIChzdXBwb3J0c0V4dGVuc2lv
bihwYWNrZWREZXB0aFN0ZW5jaWxFeHRlbnNpb25TdHJpbmcpKSB7CisgICAgICAgIGVuc3VyZUV4
dGVuc2lvbkVuYWJsZWQocGFja2VkRGVwdGhTdGVuY2lsRXh0ZW5zaW9uU3RyaW5nKTsKICAgICAg
ICAgbV9pbnRlcm5hbERlcHRoU3RlbmNpbEZvcm1hdCA9IEdMX0RFUFRIMjRfU1RFTkNJTDhfT0VT
OwogICAgIH0gZWxzZQogICAgICAgICBtX2ludGVybmFsRGVwdGhTdGVuY2lsRm9ybWF0ID0gR0xf
REVQVEhfQ09NUE9ORU5UMTY7CkBAIC01MjgsMTcgKzUyOSwxNyBAQCB2b2lkIEdyYXBoaWNzQ29u
dGV4dEdMQU5HTEU6OnZhbGlkYXRlRGVwdGhTdGVuY2lsKGNvbnN0IGNoYXIqIHBhY2tlZERlcHRo
U3RlbmNpbAogCiAgICAgaWYgKGF0dHJzLmFudGlhbGlhcykgewogICAgICAgICAvLyBGSVhNRTog
bXVzdCBhZGp1c3QgdGhpcyB3aGVuIHVwZ3JhZGluZyB0byBXZWJHTCAyLjAgLyBPcGVuR0wgRVMg
My4wIHN1cHBvcnQuCi0gICAgICAgIGlmICghc3VwcG9ydHNFeHRlbnNpb24oIkdMX0FOR0xFX2Zy
YW1lYnVmZmVyX211bHRpc2FtcGxlIikgfHwgIXN1cHBvcnRzRXh0ZW5zaW9uKCJHTF9BTkdMRV9m
cmFtZWJ1ZmZlcl9ibGl0IikgfHwgIXN1cHBvcnRzRXh0ZW5zaW9uKCJHTF9PRVNfcmdiOF9yZ2Jh
OCIpKSB7CisgICAgICAgIGlmICghc3VwcG9ydHNFeHRlbnNpb24oIkdMX0FOR0xFX2ZyYW1lYnVm
ZmVyX211bHRpc2FtcGxlIl9zKSB8fCAhc3VwcG9ydHNFeHRlbnNpb24oIkdMX0FOR0xFX2ZyYW1l
YnVmZmVyX2JsaXQiX3MpIHx8ICFzdXBwb3J0c0V4dGVuc2lvbigiR0xfT0VTX3JnYjhfcmdiYTgi
X3MpKSB7CiAgICAgICAgICAgICBhdHRycy5hbnRpYWxpYXMgPSBmYWxzZTsKICAgICAgICAgICAg
IHNldENvbnRleHRBdHRyaWJ1dGVzKGF0dHJzKTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAg
ICAgIGVuc3VyZUV4dGVuc2lvbkVuYWJsZWQoIkdMX0FOR0xFX2ZyYW1lYnVmZmVyX211bHRpc2Ft
cGxlIik7Ci0gICAgICAgICAgICBlbnN1cmVFeHRlbnNpb25FbmFibGVkKCJHTF9BTkdMRV9mcmFt
ZWJ1ZmZlcl9ibGl0Iik7Ci0gICAgICAgICAgICBlbnN1cmVFeHRlbnNpb25FbmFibGVkKCJHTF9P
RVNfcmdiOF9yZ2JhOCIpOworICAgICAgICAgICAgZW5zdXJlRXh0ZW5zaW9uRW5hYmxlZCgiR0xf
QU5HTEVfZnJhbWVidWZmZXJfbXVsdGlzYW1wbGUiX3MpOworICAgICAgICAgICAgZW5zdXJlRXh0
ZW5zaW9uRW5hYmxlZCgiR0xfQU5HTEVfZnJhbWVidWZmZXJfYmxpdCJfcyk7CisgICAgICAgICAg
ICBlbnN1cmVFeHRlbnNpb25FbmFibGVkKCJHTF9PRVNfcmdiOF9yZ2JhOCJfcyk7CiAgICAgICAg
IH0KICAgICB9IGVsc2UgaWYgKGF0dHJzLnByZXNlcnZlRHJhd2luZ0J1ZmZlcikgewogICAgICAg
ICAvLyBOZWVkZWQgZm9yIHByZXNlcnZlRHJhd2luZ0J1ZmZlcjp0cnVlIHN1cHBvcnQgd2l0aG91
dCBhbnRpYWxpYXNpbmcuCi0gICAgICAgIGVuc3VyZUV4dGVuc2lvbkVuYWJsZWQoIkdMX0FOR0xF
X2ZyYW1lYnVmZmVyX2JsaXQiKTsKKyAgICAgICAgZW5zdXJlRXh0ZW5zaW9uRW5hYmxlZCgiR0xf
QU5HTEVfZnJhbWVidWZmZXJfYmxpdCJfcyk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQ0RNUHJpdmF0ZU1lZGlh
U291cmNlQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9DRE1Qcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCmluZGV4IDJkYWY4ZWFhYzkw
OGNlYmJiOTRkYTMzMDY0NGE1ZTc3MTdiMzY3MzkuLmFlYTJlOGFiOTkwMTk1ODJlNGRkNDkzOGUy
MDM3ZjAyMDY1ZDI0MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9DRE1Qcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9DRE1Qcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDLm1tCkBAIC00Niw3ICs0Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogYXV0byBDRE1Qcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpwYXJzZUtleVN5c3RlbShjb25z
dCBTdHJpbmcmIGtleVN5c3RlbSkgLT4gc3RkOjpvcHRpb25hbDxLZXlTeXN0ZW1QYXJhbWV0ZXJz
PgogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxSZWd1bGFyRXhwcmVzc2lvbj4ga2V5U3lz
dGVtUkUoIl5jb21cXC5hcHBsZVxcLmZwc1xcLlsyM11fXFxkKyg/OixcXGQrKSokIiwgSlNDOjpZ
YXJyOjpUZXh0Q2FzZUluc2Vuc2l0aXZlKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UmVn
dWxhckV4cHJlc3Npb24+IGtleVN5c3RlbVJFKCJeY29tXFwuYXBwbGVcXC5mcHNcXC5bMjNdX1xc
ZCsoPzosXFxkKykqJCJfcywgSlNDOjpZYXJyOjpUZXh0Q2FzZUluc2Vuc2l0aXZlKTsKIAogICAg
IGlmIChrZXlTeXN0ZW1SRS5nZXQoKS5tYXRjaChrZXlTeXN0ZW0pIDwgMCkKICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclBy
aXZhdGVBVkZvdW5kYXRpb24uaAppbmRleCBhODFiOGUyMjY5YTY4YjQzNmE1MzI2MDU1YmUwZmFm
MTA1NzAyYzIxLi4wMTMyYTJmODQ3OGE2ZGVhOTdlOGViOWQ3Y2M3NmMwYWM1ZWRmNjQ3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVk
aWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5o
CkBAIC0zMTEsNyArMzExLDcgQEAgcHJvdGVjdGVkOgogICAgIE1lZGlhUGxheWVyKiBwbGF5ZXIo
KSB7IHJldHVybiBtX3BsYXllcjsgfQogICAgIGNvbnN0IE1lZGlhUGxheWVyKiBwbGF5ZXIoKSBj
b25zdCB7IHJldHVybiBtX3BsYXllcjsgfQogCi0gICAgU3RyaW5nIGVuZ2luZURlc2NyaXB0aW9u
KCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIkFWRm91bmRhdGlvbiI7IH0KKyAgICBTdHJpbmcg
ZW5naW5lRGVzY3JpcHRpb24oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAiQVZGb3VuZGF0aW9u
Il9zOyB9CiAgICAgbG9uZyBwbGF0Zm9ybUVycm9yQ29kZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIGFzc2V0RXJyb3JDb2RlKCk7IH0KIAogICAgIHZvaWQgdHJhY2tNb2RlQ2hhbmdlZCgpIG92
ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakMubW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1JbnN0
YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQy5tbQppbmRleCAyMWEyNzk5MmQyMjcwOTg5OWQw
ZDNlYjYwYjU4ZGZjZTJjYWQwYzBhLi4yNmRjYmZjNTdkNDlhZWE1N2JmMzYzZTBlNzc2ZGFmZWZj
OTRlMDZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vb2JqYy9DRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1J
bnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQy5tbQpAQCAtMzk4LDcgKzM5OCw3IEBAIHZv
aWQgQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakM6OnNldFN0b3JhZ2VEaXJlY3Rv
cnkoY29uc3QgU3RyaW5nJiBzdG9yCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBhdXRv
IHN0b3JhZ2VQYXRoID0gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KHN0b3Jh
Z2VEaXJlY3RvcnksICJTZWN1cmVTdG9wLnBsaXN0Iik7CisgICAgYXV0byBzdG9yYWdlUGF0aCA9
IEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChzdG9yYWdlRGlyZWN0b3J5LCAi
U2VjdXJlU3RvcC5wbGlzdCJfcyk7CiAKICAgICBhdXRvIGZpbGVUeXBlID0gRmlsZVN5c3RlbTo6
ZmlsZVR5cGVGb2xsb3dpbmdTeW1saW5rcyhzdG9yYWdlRGlyZWN0b3J5KTsKICAgICBpZiAoIWZp
bGVUeXBlKSB7CkBAIC04OTEsNyArODkxLDcgQEAgdm9pZCBDRE1JbnN0YW5jZVNlc3Npb25GYWly
UGxheVN0cmVhbWluZ0FWRk9iakM6OnVwZGF0ZUxpY2Vuc2UoY29uc3QgU3RyaW5nJiwgTGkKICAg
ICAgICAgICAgIGlmICghb2JqZWN0KQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAot
ICAgICAgICAgICAgYXV0byBrZXlJRFN0cmluZyA9IG9iamVjdC0+Z2V0U3RyaW5nKCJrZXlJRCIp
OworICAgICAgICAgICAgYXV0byBrZXlJRFN0cmluZyA9IG9iamVjdC0+Z2V0U3RyaW5nKCJrZXlJ
RCJfcyk7CiAgICAgICAgICAgICBpZiAoIWtleUlEU3RyaW5nKQogICAgICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKIApAQCAtOTExLDggKzkxMSw4IEBAIHZvaWQgQ0RNSW5zdGFuY2VTZXNzaW9u
RmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDOjp1cGRhdGVMaWNlbnNlKGNvbnN0IFN0cmluZyYsIExp
CiAKICAgICAgICAgICAgIGF1dG8mIHJlcXVlc3QgPSBtX2N1cnJlbnRSZXF1ZXN0LnZhbHVlKCku
cmVxdWVzdHNbZm91bmRJbmRleF07CiAKLSAgICAgICAgICAgIGF1dG8gcGF5bG9hZEZpbmRSZXN1
bHRzID0gb2JqZWN0LT5maW5kKCJwYXlsb2FkIik7Ci0gICAgICAgICAgICBhdXRvIGVycm9yRmlu
ZFJlc3VsdHMgPSBvYmplY3QtPmZpbmQoImVycm9yIik7CisgICAgICAgICAgICBhdXRvIHBheWxv
YWRGaW5kUmVzdWx0cyA9IG9iamVjdC0+ZmluZCgicGF5bG9hZCJfcyk7CisgICAgICAgICAgICBh
dXRvIGVycm9yRmluZFJlc3VsdHMgPSBvYmplY3QtPmZpbmQoImVycm9yIl9zKTsKICAgICAgICAg
ICAgIGJvb2wgaGFzUGF5bG9hZCA9IHBheWxvYWRGaW5kUmVzdWx0cyAhPSBvYmplY3QtPmVuZCgp
OwogICAgICAgICAgICAgYm9vbCBoYXNFcnJvciA9IGVycm9yRmluZFJlc3VsdHMgIT0gb2JqZWN0
LT5lbmQoKTsKIApAQCAtMTI1Myw4ICsxMjUzLDggQEAgdm9pZCBDRE1JbnN0YW5jZVNlc3Npb25G
YWlyUGxheVN0cmVhbWluZ0FWRk9iakM6OmRpZFByb3ZpZGVSZXF1ZXN0cyhWZWN0b3I8UmV0YWkK
ICAgICAgICAgICAgIGF1dG8gZW50cnkgPSBKU09OOjpPYmplY3Q6OmNyZWF0ZSgpOwogICAgICAg
ICAgICAgYXV0byYga2V5SUQgPSByZXF1ZXN0RGF0YS5maXJzdDsKICAgICAgICAgICAgIGF1dG8m
IHBheWxvYWQgPSByZXF1ZXN0RGF0YS5zZWNvbmQ7Ci0gICAgICAgICAgICBlbnRyeS0+c2V0U3Ry
aW5nKCJrZXlJRCIsIGJhc2U2NEVuY29kZVRvU3RyaW5nKGtleUlELT5tYWtlQ29udGlndW91cygp
LT5kYXRhKCksIGtleUlELT5zaXplKCkpKTsKLSAgICAgICAgICAgIGVudHJ5LT5zZXRTdHJpbmco
InBheWxvYWQiLCBiYXNlNjRFbmNvZGVUb1N0cmluZyhwYXlsb2FkLmdldCgpLmJ5dGVzLCBwYXls
b2FkLmdldCgpLmxlbmd0aCkpOworICAgICAgICAgICAgZW50cnktPnNldFN0cmluZygia2V5SUQi
X3MsIGJhc2U2NEVuY29kZVRvU3RyaW5nKGtleUlELT5tYWtlQ29udGlndW91cygpLT5kYXRhKCks
IGtleUlELT5zaXplKCkpKTsKKyAgICAgICAgICAgIGVudHJ5LT5zZXRTdHJpbmcoInBheWxvYWQi
X3MsIGJhc2U2NEVuY29kZVRvU3RyaW5nKHBheWxvYWQuZ2V0KCkuYnl0ZXMsIHBheWxvYWQuZ2V0
KCkubGVuZ3RoKSk7CiAgICAgICAgICAgICByZXF1ZXN0SlNPTi0+cHVzaE9iamVjdChXVEZNb3Zl
KGVudHJ5KSk7CiAgICAgICAgIH0KICAgICAgICAgYXV0byByZXF1ZXN0QnVmZmVyID0gdXRmOEJ1
ZmZlcihyZXF1ZXN0SlNPTi0+dG9KU09OU3RyaW5nKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbk1lZGlh
U291cmNlQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9vYmpjL0NETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMubW0KaW5kZXggMjg2YTVh
NDg4N2U4ZDk1NjAwZTdjOGJhYzNhZmJlNjY3NjE2MDU1NC4uYTBjNmEzZTUyNmNhY2E0YWQxYzc4
OGUzYzIyMmU4YTRlNTFjMjRmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQy5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9DRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDLm1tCkBAIC0xMTMsNyArMTEzLDcgQEAgU3Ry
aW5nIENETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakM6OnN0b3JhZ2VQYXRoKCkgY29uc3QKICAg
ICBpZiAoc3RvcmFnZURpcmVjdG9yeS5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBlbXB0eVN0
cmluZygpOwogCi0gICAgcmV0dXJuIEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVu
dChzdG9yYWdlRGlyZWN0b3J5LCAiU2VjdXJlU3RvcC5wbGlzdCIpOworICAgIHJldHVybiBGaWxl
U3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoc3RvcmFnZURpcmVjdG9yeSwgIlNlY3Vy
ZVN0b3AucGxpc3QiX3MpOwogfQogCiAjaWYgIVJFTEVBU0VfTE9HX0RJU0FCTEVECmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRp
YVNvdXJjZUFWRk9iakMubW0KaW5kZXggMDk5N2Q3OGI2NmI1NGUxNTk2NWY2YjhmNjVmYWRjYzNj
ZmEzOTNmMi4uOWVkMDIzNjMzNjA5ODdkZTIxNjNkYjBkZjMzMTkwZTdjODEyNDUyYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMv
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU291cmNlQVZGT2JqQy5tbQpAQCAtMTA5Niw3ICsxMDk2LDcgQEAgQVZTdHJlYW1TZXNz
aW9uKiBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnN0cmVhbVNlc3Npb24o
KQogICAgICAgICAgICAgICAgIHJldHVybiBuaWw7CiAgICAgICAgIH0KIAotICAgICAgICBTdHJp
bmcgc3RvcmFnZVBhdGggPSBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoc3Rv
cmFnZURpcmVjdG9yeSwgIlNlY3VyZVN0b3AucGxpc3QiKTsKKyAgICAgICAgU3RyaW5nIHN0b3Jh
Z2VQYXRoID0gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KHN0b3JhZ2VEaXJl
Y3RvcnksICJTZWN1cmVTdG9wLnBsaXN0Il9zKTsKICAgICAgICAgbV9zdHJlYW1TZXNzaW9uID0g
YWRvcHROUyhbUEFMOjphbGxvY0FWU3RyZWFtU2Vzc2lvbkluc3RhbmNlKCkgaW5pdFdpdGhTdG9y
YWdlRGlyZWN0b3J5QXRVUkw6W05TVVJMIGZpbGVVUkxXaXRoUGF0aDpzdG9yYWdlUGF0aF1dKTsK
ICAgICB9CiAgICAgcmV0dXJuIG1fc3RyZWFtU2Vzc2lvbi5nZXQoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1
ZmZlclByaXZhdGVBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0KaW5kZXggNmJh
NmI5YmYxMmFkM2M5ZjM4OTA3YzJmZDM2ZmU4N2E1NTNiMmE0NC4uMGU4ZWE2NGYwODM4ZTYyYWRl
NWNmODk3MmNhZDE4OWFjNTVkMzU2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29i
amMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0KQEAgLTYwMCw3ICs2MDAsNyBAQCB2b2lk
IFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpkaWRQcm92aWRlQ29udGVudEtleVJlcXVlc3RJ
bml0aWFsaXphdGlvbkRhdGFGbwogICAgIH0KIAogICAgIG1fa2V5SURzID0gV1RGTW92ZShrZXlJ
RHMudmFsdWUoKSk7Ci0gICAgcGxheWVyLT5pbml0aWFsaXphdGlvbkRhdGFFbmNvdW50ZXJlZCgi
c2luZiIsIG1faW5pdERhdGEtPnRyeUNyZWF0ZUFycmF5QnVmZmVyKCkpOworICAgIHBsYXllci0+
aW5pdGlhbGl6YXRpb25EYXRhRW5jb3VudGVyZWQoInNpbmYiX3MsIG1faW5pdERhdGEtPnRyeUNy
ZWF0ZUFycmF5QnVmZmVyKCkpOwogCiAgICAgbV93YWl0aW5nRm9yS2V5ID0gdHJ1ZTsKICAgICBw
bGF5ZXItPndhaXRpbmdGb3JLZXlDaGFuZ2VkKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvUGxhdGZvcm1QYXN0ZWJvYXJkSU9TLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW9zL1BsYXRmb3JtUGFzdGVib2FyZElPUy5tbQppbmRleCBkNjRiOTY4MzQ3Mzc4
MzJkMmVlZDY4ODIzNjAxMjI3MDY1NTg1M2ZjLi4yZTA2ODU3ZWYyNmI4YmZmZjlhYTE5MTgwNzg0
ZmRhYzFhMmIyNzVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxh
dGZvcm1QYXN0ZWJvYXJkSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9Q
bGF0Zm9ybVBhc3RlYm9hcmRJT1MubW0KQEAgLTE1OSw3ICsxNTksNyBAQCBzdGF0aWMgVmVjdG9y
PFN0cmluZz4gd2ViU2FmZVR5cGVzKE5TQXJyYXk8TlNTdHJpbmcgKj4gKnBsYXRmb3JtVHlwZXMs
IFBsYXRmb3JtUAogewogICAgIExpc3RIYXNoU2V0PFN0cmluZz4gZG9tUGFzdGVib2FyZFR5cGVz
OwogICAgIGZvciAoTlNTdHJpbmcgKnR5cGUgaW4gcGxhdGZvcm1UeXBlcykgewotICAgICAgICBp
ZiAoW3R5cGUgaXNFcXVhbFRvU3RyaW5nOkAoUGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlw
ZSgpKV0pCisgICAgICAgIGlmIChbdHlwZSBpc0VxdWFsVG9TdHJpbmc6QChQYXN0ZWJvYXJkQ3Vz
dG9tRGF0YTo6Y29jb2FUeXBlKCkuY2hhcmFjdGVycygpKV0pCiAgICAgICAgICAgICBjb250aW51
ZTsKIAogICAgICAgICBpZiAoUGFzdGVib2FyZDo6aXNTYWZlVHlwZUZvckRPTVRvUmVhZEFuZFdy
aXRlKHR5cGUpKSB7CkBAIC01MDEsNyArNTAxLDcgQEAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfRU5ECiAKICAgICBQYXN0ZWJvYXJkQ3VzdG9tRGF0YSBjdXN0b21EYXRhOwogICAgIGN1
c3RvbURhdGEuc2V0T3JpZ2luKGNvbnRlbnQuY29udGVudE9yaWdpbik7Ci0gICAgW3JlcHJlc2Vu
dGF0aW9uc1RvUmVnaXN0ZXIgYWRkRGF0YTpjdXN0b21EYXRhLmNyZWF0ZVNoYXJlZEJ1ZmZlcigp
LT5jcmVhdGVOU0RhdGEoKS5nZXQoKSBmb3JUeXBlOkAoUGFzdGVib2FyZEN1c3RvbURhdGE6OmNv
Y29hVHlwZSgpKV07CisgICAgW3JlcHJlc2VudGF0aW9uc1RvUmVnaXN0ZXIgYWRkRGF0YTpjdXN0
b21EYXRhLmNyZWF0ZVNoYXJlZEJ1ZmZlcigpLT5jcmVhdGVOU0RhdGEoKS5nZXQoKSBmb3JUeXBl
OkAoUGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpLmNoYXJhY3RlcnMoKSldOwogCiAg
ICAgcmVnaXN0ZXJJdGVtVG9QYXN0ZWJvYXJkKHJlcHJlc2VudGF0aW9uc1RvUmVnaXN0ZXIuZ2V0
KCksIG1fcGFzdGVib2FyZC5nZXQoKSk7CiB9CkBAIC02MDgsNyArNjA4LDcgQEAgVmVjdG9yPFN0
cmluZz4gUGxhdGZvcm1QYXN0ZWJvYXJkOjp0eXBlc1NhZmVGb3JET01Ub1JlYWRBbmRXcml0ZShj
b25zdCBTdHJpbmcmIG8KICAgICB9CiAjZW5kaWYgLy8gUEFTVEVCT0FSRF9TVVBQT1JUU19QUkVT
RU5UQVRJT05fU1RZTEVfQU5EX1RFQU1fREFUQQogCi0gICAgaWYgKE5TRGF0YSAqc2VyaWFsaXpl
ZEN1c3RvbURhdGEgPSBbbV9wYXN0ZWJvYXJkIGRhdGFGb3JQYXN0ZWJvYXJkVHlwZTpAKFBhc3Rl
Ym9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKSldKSB7CisgICAgaWYgKE5TRGF0YSAqc2VyaWFs
aXplZEN1c3RvbURhdGEgPSBbbV9wYXN0ZWJvYXJkIGRhdGFGb3JQYXN0ZWJvYXJkVHlwZTpAKFBh
c3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKS5jaGFyYWN0ZXJzKCkpXSkgewogICAgICAg
ICBhdXRvIGRhdGEgPSBQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6ZnJvbVNoYXJlZEJ1ZmZlcihTaGFy
ZWRCdWZmZXI6OmNyZWF0ZShzZXJpYWxpemVkQ3VzdG9tRGF0YSkuZ2V0KCkpOwogICAgICAgICBp
ZiAoZGF0YS5vcmlnaW4oKSA9PSBvcmlnaW4pIHsKICAgICAgICAgICAgIGZvciAoYXV0byYgdHlw
ZSA6IGRhdGEub3JkZXJlZFR5cGVzKCkpCkBAIC02NDUsNyArNjQ1LDcgQEAgc3RhdGljIFJldGFp
blB0cjxXZWJJdGVtUHJvdmlkZXJSZWdpc3RyYXRpb25JbmZvTGlzdD4gY3JlYXRlSXRlbVByb3Zp
ZGVyUmVnaXN0cmEKICAgICAgICAgICAgIE5TRGljdGlvbmFyeSAqdGVhbURhdGFEaWN0aW9uYXJ5
ID0gQHsgQChvcmlnaW5LZXlGb3JUZWFtRGF0YSkgOiBkYXRhLm9yaWdpbigpLCBAKGN1c3RvbVR5
cGVzS2V5Rm9yVGVhbURhdGEpIDogY3JlYXRlTlNBcnJheShkYXRhLm9yZGVyZWRUeXBlcygpKS5n
ZXQoKSB9OwogICAgICAgICAgICAgaWYgKE5TRGF0YSAqdGVhbURhdGEgPSBbTlNLZXllZEFyY2hp
dmVyIGFyY2hpdmVkRGF0YVdpdGhSb290T2JqZWN0OnRlYW1EYXRhRGljdGlvbmFyeSByZXF1aXJp
bmdTZWN1cmVDb2Rpbmc6WUVTIGVycm9yOm51bGxwdHJdKSB7CiAgICAgICAgICAgICAgICAgW3Jl
cHJlc2VudGF0aW9uc1RvUmVnaXN0ZXIgc2V0VGVhbURhdGE6dGVhbURhdGFdOwotICAgICAgICAg
ICAgICAgIFtyZXByZXNlbnRhdGlvbnNUb1JlZ2lzdGVyIGFkZERhdGE6c2VyaWFsaXplZFNoYXJl
ZEJ1ZmZlci5nZXQoKSBmb3JUeXBlOkAoUGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgp
KV07CisgICAgICAgICAgICAgICAgW3JlcHJlc2VudGF0aW9uc1RvUmVnaXN0ZXIgYWRkRGF0YTpz
ZXJpYWxpemVkU2hhcmVkQnVmZmVyLmdldCgpIGZvclR5cGU6QChQYXN0ZWJvYXJkQ3VzdG9tRGF0
YTo6Y29jb2FUeXBlKCkuY2hhcmFjdGVycygpKV07CiAgICAgICAgICAgICB9CiAgICAgICAgIH0K
ICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViSXRlbVBy
b3ZpZGVyUGFzdGVib2FyZC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJJdGVt
UHJvdmlkZXJQYXN0ZWJvYXJkLm1tCmluZGV4IGQyYTFkYmMzYTg5ZjkxYWVjMmEzMjIwMzg2NGEw
Y2VmMzE5MjMyZDMuLjc1YTc2ZjQzOTk0ZWU2NWU4MTM5Yzg3NzY2YzMzYjc4YTRhM2QyMmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJJdGVtUHJvdmlkZXJQYXN0
ZWJvYXJkLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJJdGVtUHJvdmlk
ZXJQYXN0ZWJvYXJkLm1tCkBAIC03NjEsNyArNzYxLDcgQEAgQUxMT1dfREVQUkVDQVRFRF9ERUNM
QVJBVElPTlNfQkVHSU4KIAogICAgIC8vIEZvciBjb21wYXRpYmlsaXR5IHdpdGggRGF0YVRyYW5z
ZmVyIEFQSXMsIGFkZGl0aW9uYWxseSBsb2FkIHdlYi1leHBvc2VkIHR5cGVzLiBTaW5jZSB0aGlz
IGlzIHRoZSBvbmx5IGNoYW5jZSB0bwogICAgIC8vIGZhdWx0IGluIGFueSBkYXRhIGF0IGFsbCwg
d2UgbmVlZCB0byBsb2FkIHVwIGZyb250IGFueSBpbmZvcm1hdGlvbiB0aGF0IHRoZSBwYWdlIG1h
eSBhc2sgZm9yIGxhdGVyIGRvd24gdGhlIGxpbmUuCi0gICAgTlNTdHJpbmcgKmN1c3RvbVBhc3Rl
Ym9hcmREYXRhVVRJID0gQChQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkpOworICAg
IE5TU3RyaW5nICpjdXN0b21QYXN0ZWJvYXJkRGF0YVVUSSA9IEAoUGFzdGVib2FyZEN1c3RvbURh
dGE6OmNvY29hVHlwZSgpLmNoYXJhY3RlcnMoKSk7CiAgICAgZm9yIChOU1N0cmluZyAqcmVnaXN0
ZXJlZFR5cGVJZGVudGlmaWVyIGluIHJlZ2lzdGVyZWRUeXBlSWRlbnRpZmllcnMpIHsKICAgICAg
ICAgaWYgKFtyZWdpc3RlcmVkVHlwZUlkZW50aWZpZXIgaXNFcXVhbFRvU3RyaW5nOmhpZ2hlc3RG
aWRlbGl0eUNvbnRlbnRUeXBlXQogICAgICAgICAgICAgfHwgW3JlZ2lzdGVyZWRUeXBlSWRlbnRp
ZmllciBpc0VxdWFsVG9TdHJpbmc6aGlnaGVzdEZpZGVsaXR5U3VwcG9ydGVkVHlwZV0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9EYXRhRGV0ZWN0b3JIaWdobGlnaHQu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRGF0YURldGVjdG9ySGlnaGxpZ2h0Lm1t
CmluZGV4IDNmMDY5NDA0NjAyOTRkY2ZlOGE4MzAyOGQxZmQ3ZDQ2NmRhODUzOTUuLjE1ZGI4N2Ix
ZDk4YmEzODFlYTk1MWIxZjM0ZjhlNjAwODI5ODI1YTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9EYXRhRGV0ZWN0b3JIaWdobGlnaHQubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL0RhdGFEZXRlY3RvckhpZ2hsaWdodC5tbQpAQCAtMTUzLDcgKzE1
Myw3IEBAIHZvaWQgRGF0YURldGVjdG9ySGlnaGxpZ2h0OjpmYWRlSW4oKQogICAgIFthbmltYXRp
b24gc2V0VG9WYWx1ZTpAMV07CiAKICAgICBhdXRvIHBsYXRmb3JtQW5pbWF0aW9uID0gUGxhdGZv
cm1DQUFuaW1hdGlvbkNvY29hOjpjcmVhdGUoYW5pbWF0aW9uLmdldCgpKTsKLSAgICBkb3duY2Fz
dDxHcmFwaGljc0xheWVyQ0E+KGxheWVyKCkpLnBsYXRmb3JtQ0FMYXllcigpLT5hZGRBbmltYXRp
b25Gb3JLZXkoIkZhZGVIaWdobGlnaHRJbiIsIHBsYXRmb3JtQW5pbWF0aW9uLmdldCgpKTsKKyAg
ICBkb3duY2FzdDxHcmFwaGljc0xheWVyQ0E+KGxheWVyKCkpLnBsYXRmb3JtQ0FMYXllcigpLT5h
ZGRBbmltYXRpb25Gb3JLZXkoIkZhZGVIaWdobGlnaHRJbiJfcywgcGxhdGZvcm1BbmltYXRpb24u
Z2V0KCkpOwogfQogCiB2b2lkIERhdGFEZXRlY3RvckhpZ2hsaWdodDo6ZmFkZU91dCgpCkBAIC0x
NzAsNyArMTcwLDcgQEAgdm9pZCBEYXRhRGV0ZWN0b3JIaWdobGlnaHQ6OmZhZGVPdXQoKQogICAg
IH1dOwogCiAgICAgYXV0byBwbGF0Zm9ybUFuaW1hdGlvbiA9IFBsYXRmb3JtQ0FBbmltYXRpb25D
b2NvYTo6Y3JlYXRlKGFuaW1hdGlvbi5nZXQoKSk7Ci0gICAgZG93bmNhc3Q8R3JhcGhpY3NMYXll
ckNBPihsYXllcigpKS5wbGF0Zm9ybUNBTGF5ZXIoKS0+YWRkQW5pbWF0aW9uRm9yS2V5KCJGYWRl
SGlnaGxpZ2h0T3V0IiwgcGxhdGZvcm1BbmltYXRpb24uZ2V0KCkpOworICAgIGRvd25jYXN0PEdy
YXBoaWNzTGF5ZXJDQT4obGF5ZXIoKSkucGxhdGZvcm1DQUxheWVyKCktPmFkZEFuaW1hdGlvbkZv
cktleSgiRmFkZUhpZ2hsaWdodE91dCJfcywgcGxhdGZvcm1BbmltYXRpb24uZ2V0KCkpOwogICAg
IFtDQVRyYW5zYWN0aW9uIGNvbW1pdF07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL1Bhc3RlYm9hcmRNYWMubW0KaW5kZXggYTJjMjUwYWEyYmVmOGRlOTY0YmFmMDkyNDBkNWUw
ZWM0MTUwZWY4NC4uZGMyZjVjNTNjNjU0MWUxOThiM2E4NGU2YzVhODA1ZDFkZGZlMGQ4YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Bhc3RlYm9hcmRNYWMubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Bhc3RlYm9hcmRNYWMubW0KQEAgLTUwLDEy
ICs1MCwxMiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNvbnN0IGNoYXIqIGNvbnN0IFdl
YkFyY2hpdmVQYm9hcmRUeXBlID0gIkFwcGxlIFdlYiBBcmNoaXZlIHBhc3RlYm9hcmQgdHlwZSI7
Ci1jb25zdCBjaGFyKiBjb25zdCBXZWJVUkxOYW1lUGJvYXJkVHlwZSA9ICJwdWJsaWMudXJsLW5h
bWUiOwotY29uc3QgY2hhciogY29uc3QgV2ViVVJMc1dpdGhUaXRsZXNQYm9hcmRUeXBlID0gIldl
YlVSTHNXaXRoVGl0bGVzUGJvYXJkVHlwZSI7Citjb25zdCBBU0NJSUxpdGVyYWwgV2ViQXJjaGl2
ZVBib2FyZFR5cGUgPSAiQXBwbGUgV2ViIEFyY2hpdmUgcGFzdGVib2FyZCB0eXBlIl9zOworY29u
c3QgQVNDSUlMaXRlcmFsIFdlYlVSTE5hbWVQYm9hcmRUeXBlID0gInB1YmxpYy51cmwtbmFtZSJf
czsKK2NvbnN0IEFTQ0lJTGl0ZXJhbCBXZWJVUkxzV2l0aFRpdGxlc1Bib2FyZFR5cGUgPSAiV2Vi
VVJMc1dpdGhUaXRsZXNQYm9hcmRUeXBlIl9zOwogCi1jb25zdCBjaGFyIFdlYlNtYXJ0UGFzdGVQ
Ym9hcmRUeXBlW10gPSAiTmVYVCBzbWFydCBwYXN0ZSBwYXN0ZWJvYXJkIHR5cGUiOwotY29uc3Qg
Y2hhciBXZWJVUkxQYm9hcmRUeXBlW10gPSAicHVibGljLnVybCI7Citjb25zdCBBU0NJSUxpdGVy
YWwgV2ViU21hcnRQYXN0ZVBib2FyZFR5cGUgPSAiTmVYVCBzbWFydCBwYXN0ZSBwYXN0ZWJvYXJk
IHR5cGUiX3M7Citjb25zdCBBU0NJSUxpdGVyYWwgV2ViVVJMUGJvYXJkVHlwZSA9ICJwdWJsaWMu
dXJsIl9zOwogCiBzdGF0aWMgY29uc3QgVmVjdG9yPFN0cmluZz4gd3JpdGFibGVUeXBlc0ZvclVS
TCgpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1F
dmVudEZhY3RvcnlNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1F
dmVudEZhY3RvcnlNYWMubW0KaW5kZXggMzVmYzZhZjU5YjZhZmNiNGY5NTU0YzBmMmE4NGEzMzQy
ODM5NmU1ZS4uYjdiNmUzNzQ3YjBmY2Q5NzhjODc0ZTAxODJmMjM1NjNjZTVkMmQ4NiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFj
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9y
eU1hYy5tbQpAQCAtNTAyLDcgKzUwMiw3IEBAIFN0cmluZyBrZXlJZGVudGlmaWVyRm9yS2V5RXZl
bnQoTlNFdmVudCogZXZlbnQpCiAgICAgTlNTdHJpbmcgKnMgPSBbZXZlbnQgY2hhcmFjdGVyc0ln
bm9yaW5nTW9kaWZpZXJzXTsKICAgICBpZiAoW3MgbGVuZ3RoXSAhPSAxKSB7CiAgICAgICAgIExP
RyhFdmVudHMsICJyZWNlaXZlZCBhbiB1bmV4cGVjdGVkIG51bWJlciBvZiBjaGFyYWN0ZXJzIGlu
IGtleSBldmVudDogJXUiLCBbcyBsZW5ndGhdKTsKLSAgICAgICAgcmV0dXJuICJVbmlkZW50aWZp
ZWQiOworICAgICAgICByZXR1cm4gIlVuaWRlbnRpZmllZCJfczsKICAgICB9CiAgICAgcmV0dXJu
IGtleUlkZW50aWZpZXJGb3JDaGFyQ29kZShbcyBjaGFyYWN0ZXJBdEluZGV4OjBdKTsKIH0KQEAg
LTgwOSwyMCArODA5LDIwIEBAIHB1YmxpYzoKIAogICAgICAgICAvLyBBbHdheXMgdXNlIDEzIGZv
ciBFbnRlci9SZXR1cm4gLS0gd2UgZG9uJ3Qgd2FudCB0byB1c2UgQXBwS2l0J3MgZGlmZmVyZW50
IGNoYXJhY3RlciBmb3IgRW50ZXIuCiAgICAgICAgIGlmIChtX3dpbmRvd3NWaXJ0dWFsS2V5Q29k
ZSA9PSBWS19SRVRVUk4pIHsKLSAgICAgICAgICAgIG1fdGV4dCA9ICJcciI7Ci0gICAgICAgICAg
ICBtX3VubW9kaWZpZWRUZXh0ID0gIlxyIjsKKyAgICAgICAgICAgIG1fdGV4dCA9ICJcciJfczsK
KyAgICAgICAgICAgIG1fdW5tb2RpZmllZFRleHQgPSBtX3RleHQ7CiAgICAgICAgIH0KIAogICAg
ICAgICAvLyBBcHBLaXQgc2V0cyB0ZXh0IHRvICJceDdGIiBmb3IgYmFja3NwYWNlLCBidXQgdGhl
IGNvcnJlY3QgS2V5Ym9hcmRFdmVudCBjaGFyYWN0ZXIgY29kZSBpcyA4LgogICAgICAgICBpZiAo
bV93aW5kb3dzVmlydHVhbEtleUNvZGUgPT0gVktfQkFDSykgewotICAgICAgICAgICAgbV90ZXh0
ID0gIlx4OCI7Ci0gICAgICAgICAgICBtX3VubW9kaWZpZWRUZXh0ID0gIlx4OCI7CisgICAgICAg
ICAgICBtX3RleHQgPSAiXHg4Il9zOworICAgICAgICAgICAgbV91bm1vZGlmaWVkVGV4dCA9IG1f
dGV4dDsKICAgICAgICAgfQogCiAgICAgICAgIC8vIEFsd2F5cyB1c2UgOSBmb3IgVGFiIC0tIHdl
IGRvbid0IHdhbnQgdG8gdXNlIEFwcEtpdCdzIGRpZmZlcmVudCBjaGFyYWN0ZXIgZm9yIHNoaWZ0
LXRhYi4KICAgICAgICAgaWYgKG1fd2luZG93c1ZpcnR1YWxLZXlDb2RlID09IFZLX1RBQikgewot
ICAgICAgICAgICAgbV90ZXh0ID0gIlx4OSI7Ci0gICAgICAgICAgICBtX3VubW9kaWZpZWRUZXh0
ID0gIlx4OSI7CisgICAgICAgICAgICBtX3RleHQgPSAiXHg5Il9zOworICAgICAgICAgICAgbV91
bm1vZGlmaWVkVGV4dCA9IG1fdGV4dDsKICAgICAgICAgfQogCiAgICAgICAgIC8vIE1hYyBzcGVj
aWZpYy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybVBh
c3RlYm9hcmRNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1QYXN0
ZWJvYXJkTWFjLm1tCmluZGV4IGE3ZmU3MjU1NDM3NjY1ZThiOGEwYzc0NTNkMzA0NzQ5ZDQ1NjJm
NjcuLjQ2ZGI1N2RlZWE5ZDcyNjlhZWI0ZDg3N2QxOTE3ZDVkNjMwM2RhMzEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybVBhc3RlYm9hcmRNYWMubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtUGFzdGVib2FyZE1hYy5tbQpA
QCAtMjE3LDcgKzIxNyw3IEBAIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogVmVj
dG9yPFN0cmluZz4gUGxhdGZvcm1QYXN0ZWJvYXJkOjp0eXBlc1NhZmVGb3JET01Ub1JlYWRBbmRX
cml0ZShjb25zdCBTdHJpbmcmIG9yaWdpbikgY29uc3QKIHsKICAgICBMaXN0SGFzaFNldDxTdHJp
bmc+IGRvbVBhc3RlYm9hcmRUeXBlczsKLSAgICBpZiAoTlNEYXRhICpzZXJpYWxpemVkQ3VzdG9t
RGF0YSA9IFttX3Bhc3RlYm9hcmQgZGF0YUZvclR5cGU6QChQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6
Y29jb2FUeXBlKCkpXSkgeworICAgIGlmIChOU0RhdGEgKnNlcmlhbGl6ZWRDdXN0b21EYXRhID0g
W21fcGFzdGVib2FyZCBkYXRhRm9yVHlwZTpAKFBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5
cGUoKS5jaGFyYWN0ZXJzKCkpXSkgewogICAgICAgICBhdXRvIGRhdGEgPSBQYXN0ZWJvYXJkQ3Vz
dG9tRGF0YTo6ZnJvbVNoYXJlZEJ1ZmZlcihTaGFyZWRCdWZmZXI6OmNyZWF0ZShzZXJpYWxpemVk
Q3VzdG9tRGF0YSkuZ2V0KCkpOwogICAgICAgICBpZiAoZGF0YS5vcmlnaW4oKSA9PSBvcmlnaW4p
IHsKICAgICAgICAgICAgIGZvciAoYXV0byYgdHlwZSA6IGRhdGEub3JkZXJlZFR5cGVzKCkpCkBA
IC0yMjcsNyArMjI3LDcgQEAgVmVjdG9yPFN0cmluZz4gUGxhdGZvcm1QYXN0ZWJvYXJkOjp0eXBl
c1NhZmVGb3JET01Ub1JlYWRBbmRXcml0ZShjb25zdCBTdHJpbmcmIG8KIAogICAgIE5TQXJyYXk8
TlNTdHJpbmcgKj4gKmFsbFR5cGVzID0gW21fcGFzdGVib2FyZCB0eXBlc107CiAgICAgZm9yIChO
U1N0cmluZyAqdHlwZSBpbiBhbGxUeXBlcykgewotICAgICAgICBpZiAoW3R5cGUgaXNFcXVhbFRv
U3RyaW5nOkAoUGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpKV0pCisgICAgICAgIGlm
IChbdHlwZSBpc0VxdWFsVG9TdHJpbmc6QChQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBl
KCkuY2hhcmFjdGVycygpKV0pCiAgICAgICAgICAgICBjb250aW51ZTsKIAogICAgICAgICBpZiAo
UGFzdGVib2FyZDo6aXNTYWZlVHlwZUZvckRPTVRvUmVhZEFuZFdyaXRlKHR5cGUpKQpAQCAtMjU0
LDcgKzI1NCw3IEBAIGludDY0X3QgUGxhdGZvcm1QYXN0ZWJvYXJkOjp3cml0ZShjb25zdCBQYXN0
ZWJvYXJkQ3VzdG9tRGF0YSYgZGF0YSkKIAogICAgIGJvb2wgc2hvdWxkV3JpdGVDdXN0b21EYXRh
ID0gZGF0YS5oYXNTYW1lT3JpZ2luQ3VzdG9tRGF0YSgpIHx8ICFkYXRhLm9yaWdpbigpLmlzRW1w
dHkoKTsKICAgICBpZiAoc2hvdWxkV3JpdGVDdXN0b21EYXRhKQotICAgICAgICBbdHlwZXMgYWRk
T2JqZWN0OkAoUGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpKV07CisgICAgICAgIFt0
eXBlcyBhZGRPYmplY3Q6QChQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkuY2hhcmFj
dGVycygpKV07CiAKICAgICBbbV9wYXN0ZWJvYXJkIGRlY2xhcmVUeXBlczp0eXBlcyBvd25lcjpu
aWxdOwogCkBAIC0yNzUsNyArMjc1LDcgQEAgaW50NjRfdCBQbGF0Zm9ybVBhc3RlYm9hcmQ6Ondy
aXRlKGNvbnN0IFBhc3RlYm9hcmRDdXN0b21EYXRhJiBkYXRhKQogCiAgICAgaWYgKHNob3VsZFdy
aXRlQ3VzdG9tRGF0YSkgewogICAgICAgICBpZiAoYXV0byBzZXJpYWxpemVkQ3VzdG9tRGF0YSA9
IGRhdGEuY3JlYXRlU2hhcmVkQnVmZmVyKCktPmNyZWF0ZU5TRGF0YSgpKQotICAgICAgICAgICAg
W21fcGFzdGVib2FyZCBzZXREYXRhOnNlcmlhbGl6ZWRDdXN0b21EYXRhLmdldCgpIGZvclR5cGU6
QChQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkpXTsKKyAgICAgICAgICAgIFttX3Bh
c3RlYm9hcmQgc2V0RGF0YTpzZXJpYWxpemVkQ3VzdG9tRGF0YS5nZXQoKSBmb3JUeXBlOkAoUGFz
dGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpLmNoYXJhY3RlcnMoKSldOwogICAgIH0KIAog
ICAgIHJldHVybiBjaGFuZ2VDb3VudCgpOwpAQCAtNDk5LDcgKzQ5OSw3IEBAIHN0YXRpYyBSZXRh
aW5QdHI8TlNQYXN0ZWJvYXJkSXRlbT4gY3JlYXRlUGFzdGVib2FyZEl0ZW0oY29uc3QgUGFzdGVi
b2FyZEN1c3RvbURhCiAKICAgICBpZiAoZGF0YS5oYXNTYW1lT3JpZ2luQ3VzdG9tRGF0YSgpIHx8
ICFkYXRhLm9yaWdpbigpLmlzRW1wdHkoKSkgewogICAgICAgICBpZiAoYXV0byBzZXJpYWxpemVk
Q3VzdG9tRGF0YSA9IGRhdGEuY3JlYXRlU2hhcmVkQnVmZmVyKCktPmNyZWF0ZU5TRGF0YSgpKQot
ICAgICAgICAgICAgW2l0ZW0gc2V0RGF0YTpzZXJpYWxpemVkQ3VzdG9tRGF0YS5nZXQoKSBmb3JU
eXBlOkAoUGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpKV07CisgICAgICAgICAgICBb
aXRlbSBzZXREYXRhOnNlcmlhbGl6ZWRDdXN0b21EYXRhLmdldCgpIGZvclR5cGU6QChQYXN0ZWJv
YXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkuY2hhcmFjdGVycygpKV07CiAgICAgfQogCiAgICAg
ZGF0YS5mb3JFYWNoUGxhdGZvcm1TdHJpbmdPckJ1ZmZlcihbJl0gKGF1dG8mIHR5cGUsIGF1dG8m
IHN0cmluZ09yQnVmZmVyKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvU3RyaW5nVXRpbGl0aWVzLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1N0cmlu
Z1V0aWxpdGllcy5tbQppbmRleCA3Y2QxYmQ4MGFlOWUzM2U3NTZmNjU5MTIyNDBmN2VkNmNjMzNj
NWI1Li45MmJlNjY3ZTYzZWIzMWY0MWQ3NzlhOTY2MmYxZmI3NTZmNDY1NDNlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU3RyaW5nVXRpbGl0aWVzLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TdHJpbmdVdGlsaXRpZXMubW0KQEAgLTMzLDcgKzMz
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIAogc3RhdGljIFN0cmluZyB3aWxkY2FyZFJl
Z2V4UGF0dGVyblN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKIHsKLSAgICBTdHJpbmcgbWV0
YUNoYXJhY3RlcnMgPSAiLnwrPygpW117fV4kIjsKKyAgICBTdHJpbmcgbWV0YUNoYXJhY3RlcnMg
PSAiLnwrPygpW117fV4kIl9zOwogICAgIFVDaGFyIGVzY2FwZUNoYXJhY3RlciA9ICdcXCc7CiAg
ICAgVUNoYXIgd2lsZGNhcmRDaGFyYWN0ZXIgPSAnKic7CiAgICAgCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVGhyZWFkQ2hlY2subW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvVGhyZWFkQ2hlY2subW0KaW5kZXggZjE1MTA4OGNlOTI1YTUwNmViNDY4YjIy
MjFmYWYzMjc1MDMyYmE0Mi4uYmJkNzM0NDFlMDUwYjk2ODc1N2E0ZjVhNmFkMTM0NjZiMWFkMDZk
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1RocmVhZENoZWNrLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9UaHJlYWRDaGVjay5tbQpAQCAtMTA2
LDcgKzEwNiw3IEBAIHZvaWQgV2ViQ29yZVJlcG9ydFRocmVhZFZpb2xhdGlvbihjb25zdCBjaGFy
KiBmdW5jdGlvbiwgV2ViQ29yZTo6VGhyZWFkVmlvbGF0aW9uCiAgICAgICAgIGNhc2UgTm9UaHJl
YWRDaGVjazoKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIExvZ09uRmlyc3RUaHJl
YWRWaW9sYXRpb246Ci0gICAgICAgICAgICBpZiAobG9nZ2VkRnVuY3Rpb25zLmdldCgpLmFkZChm
dW5jdGlvbikuaXNOZXdFbnRyeSkgeworICAgICAgICAgICAgaWYgKGxvZ2dlZEZ1bmN0aW9ucy5n
ZXQoKS5hZGQoU3RyaW5nIHsgZnVuY3Rpb24gfSkuaXNOZXdFbnRyeSkgewogICAgICAgICAgICAg
ICAgIE5TTG9nKEAiV2ViS2l0IFRocmVhZGluZyBWaW9sYXRpb24gLSAlcyBjYWxsZWQgZnJvbSBz
ZWNvbmRhcnkgdGhyZWFkIiwgZnVuY3Rpb24pOwogICAgICAgICAgICAgICAgIE5TTG9nKEAiQWRk
aXRpb25hbCB0aHJlYWRpbmcgdmlvbGF0aW9ucyBmb3IgdGhpcyBmdW5jdGlvbiB3aWxsIG5vdCBi
ZSBsb2dnZWQuIik7CiAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvVXNlckFnZW50TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L1VzZXJBZ2VudE1hYy5tbQppbmRleCBlNjJhOTdmMTk5YWFjYzNjYTY5MmQ4ZGE0YjIwOWQyOTk0
ZTNhMGQxLi5lZGMwNzlmNGUwMjRhZjMwMWU0NWZhYTEwOTM1YThkYjNhMmIyYzc1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVXNlckFnZW50TWFjLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9Vc2VyQWdlbnRNYWMubW0KQEAgLTM4LDcgKzM4LDcg
QEAgU3RyaW5nIHN0YW5kYXJkVXNlckFnZW50V2l0aEFwcGxpY2F0aW9uTmFtZShjb25zdCBTdHJp
bmcmIGFwcGxpY2F0aW9uTmFtZSwgY29uc3QKICAgICBpZiAoIW9zVmVyc2lvbi5zdGFydHNXaXRo
KCIxMCIpKQogICAgICAgICBvc1ZlcnNpb24gPSAiMTBfMTVfNyJfczsKICAgICAKLSAgICBTdHJp
bmcgYXBwTmFtZVN1ZmZpeCA9IGFwcGxpY2F0aW9uTmFtZS5pc0VtcHR5KCkgPyAiIiA6IG1ha2VT
dHJpbmcoIiAiLCBhcHBsaWNhdGlvbk5hbWUpOworICAgIFN0cmluZyBhcHBOYW1lU3VmZml4ID0g
YXBwbGljYXRpb25OYW1lLmlzRW1wdHkoKSA/IGVtcHR5U3RyaW5nKCkgOiBtYWtlU3RyaW5nKCIg
IiwgYXBwbGljYXRpb25OYW1lKTsKIAogICAgIHJldHVybiBtYWtlU3RyaW5nKCJNb3ppbGxhLzUu
MCAoTWFjaW50b3NoOyBJbnRlbCBNYWMgT1MgWCAiLCBvc1ZlcnNpb24sICIpIEFwcGxlV2ViS2l0
LzYwNS4xLjE1IChLSFRNTCwgbGlrZSBHZWNrbykiLCBhcHBOYW1lU3VmZml4KTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VFcnJvckJhc2Uu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUVycm9yQmFzZS5j
cHAKaW5kZXggNjdkMmVhYzA4ZmE3YjRiZjA2NGNjZGZhYmMyNDlmY2M0NjI1MWNmZC4uZDAxOTNh
YzZjOWI5NzRhYTJiZjFkNzE5NzlkM2U3MDE1YmMzMGQ5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUVycm9yQmFzZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUVycm9yQmFzZS5jcHAKQEAgLTMyLDgg
KzMyLDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jb25zdCBjaGFyKiBjb25zdCBlcnJv
ckRvbWFpbldlYktpdEludGVybmFsID0gIldlYktpdEludGVybmFsIjsKLWNvbnN0IGNoYXIqIGNv
bnN0IGVycm9yRG9tYWluV2ViS2l0U2VydmljZVdvcmtlciA9ICJXZWJLaXRTZXJ2aWNlV29ya2Vy
IjsKK2NvbnN0IEFTQ0lJTGl0ZXJhbCBlcnJvckRvbWFpbldlYktpdEludGVybmFsID0gIldlYktp
dEludGVybmFsIl9zOworY29uc3QgQVNDSUlMaXRlcmFsIGVycm9yRG9tYWluV2ViS2l0U2Vydmlj
ZVdvcmtlciA9ICJXZWJLaXRTZXJ2aWNlV29ya2VyIl9zOwogCiBpbmxpbmUgY29uc3QgUmVzb3Vy
Y2VFcnJvciYgUmVzb3VyY2VFcnJvckJhc2U6OmFzUmVzb3VyY2VFcnJvcigpIGNvbnN0CiB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlRXJyb3JC
YXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlRXJyb3JCYXNl
LmgKaW5kZXggNDg4ZGViYzE0M2Q2M2Y0NTdlOGQzOGU5YzZkYzIzYTlkMjBiYTgxNi4uZTEyMWM1
MTRmNDg5NDI2YTM0M2QzNDQ4OTBiOTY2MzAyNTBjZDdjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUVycm9yQmFzZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VFcnJvckJhc2UuaApAQCAtMzQsOCArMzQs
OCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFJlc291cmNlRXJyb3I7CiAKLVdFQkNP
UkVfRVhQT1JUIGV4dGVybiBjb25zdCBjaGFyKiBjb25zdCBlcnJvckRvbWFpbldlYktpdEludGVy
bmFsOyAvLyBVc2VkIGZvciBlcnJvcnMgdGhhdCB3b24ndCBiZSBleHBvc2VkIHRvIGNsaWVudHMu
Ci1XRUJDT1JFX0VYUE9SVCBleHRlcm4gY29uc3QgY2hhciogY29uc3QgZXJyb3JEb21haW5XZWJL
aXRTZXJ2aWNlV29ya2VyOyAvLyBVc2VkIGZvciBlcnJvcnMgdGhhdCBoYXBwZW4gd2hlbiBsb2Fk
aW5nIGEgcmVzb3VyY2UgZnJvbSBhIHNlcnZpY2Ugd29ya2VyLgorV0VCQ09SRV9FWFBPUlQgZXh0
ZXJuIGNvbnN0IEFTQ0lJTGl0ZXJhbCBlcnJvckRvbWFpbldlYktpdEludGVybmFsOyAvLyBVc2Vk
IGZvciBlcnJvcnMgdGhhdCB3b24ndCBiZSBleHBvc2VkIHRvIGNsaWVudHMuCitXRUJDT1JFX0VY
UE9SVCBleHRlcm4gY29uc3QgQVNDSUlMaXRlcmFsIGVycm9yRG9tYWluV2ViS2l0U2VydmljZVdv
cmtlcjsgLy8gVXNlZCBmb3IgZXJyb3JzIHRoYXQgaGFwcGVuIHdoZW4gbG9hZGluZyBhIHJlc291
cmNlIGZyb20gYSBzZXJ2aWNlIHdvcmtlci4KIAogY2xhc3MgUmVzb3VyY2VFcnJvckJhc2Ugewog
ICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9jb2NvYS9SYW5nZVJlc3BvbnNlR2VuZXJhdG9yLm1tIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9SYW5nZVJlc3BvbnNlR2VuZXJhdG9yLm1t
CmluZGV4IDE5ODE0YTM2NWM5ZjY2MWEyMWMyMjlhZGJkMDQ2MTFjMjA5NDdlNjQuLjA0ZWZkYjRk
ZmYxZDE2NDFjM2Q2MDVhZjMwMTRkMWExMGMyNDY0M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvUmFuZ2VSZXNwb25zZUdlbmVyYXRvci5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1JhbmdlUmVzcG9uc2VHZW5l
cmF0b3IubW0KQEAgLTc4LDcgKzc4LDcgQEAgc3RhdGljIFJlc291cmNlUmVzcG9uc2Ugc3ludGhl
c2l6ZWRSZXNwb25zZUZvclJhbmdlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIG9yaWcKICAgICBh
dXRvIGJlZ2luID0gcGFyc2VkUmVxdWVzdFJhbmdlLmJlZ2luOwogICAgIGF1dG8gZW5kID0gcGFy
c2VkUmVxdWVzdFJhbmdlLmVuZDsKIAotICAgIGF1dG8gbmV3Q29udGVudFJhbmdlID0gbWFrZVN0
cmluZygiYnl0ZXMgIiwgYmVnaW4sICItIiwgZW5kLCAiLyIsICh0b3RhbENvbnRlbnRMZW5ndGgg
PyBtYWtlU3RyaW5nKCp0b3RhbENvbnRlbnRMZW5ndGgpIDogIioiKSk7CisgICAgYXV0byBuZXdD
b250ZW50UmFuZ2UgPSBtYWtlU3RyaW5nKCJieXRlcyAiLCBiZWdpbiwgIi0iLCBlbmQsICIvIiwg
KHRvdGFsQ29udGVudExlbmd0aCA/IG1ha2VTdHJpbmcoKnRvdGFsQ29udGVudExlbmd0aCkgOiAi
KiJfcykpOwogICAgIGF1dG8gbmV3Q29udGVudExlbmd0aCA9IG1ha2VTdHJpbmcoZW5kIC0gYmVn
aW4gKyAxKTsKIAogICAgIFJlc291cmNlUmVzcG9uc2UgbmV3UmVzcG9uc2UgPSBvcmlnaW5hbFJl
c3BvbnNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCmluZGV4
IDAxMGVjYmFlZDg3YTczYTQyMGFmYjk3ZThlODBmZWE2Mzc5ZmVkM2UuLjhlOWQ0NmExYjM0Y2Fi
MDQ3ZmJhMzQzZDFiNTdhMmM1YjJkYzEwODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGhlbWVNYWMubW0KQEAgLTI2MTksNyArMjYxOSw3IEBAIEFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0VORAogICAgICAgICAgICAgcmV0dXJuIGljb247CiAgICAgfQogCi0gICAg
cmV0dXJuIEljb246OmNyZWF0ZUljb25Gb3JVVEkoInB1YmxpYy5kYXRhIik7CisgICAgcmV0dXJu
IEljb246OmNyZWF0ZUljb25Gb3JVVEkoInB1YmxpYy5kYXRhIl9zKTsKIH0KIAogUmV0YWluUHRy
PE5TSW1hZ2U+IFJlbmRlclRoZW1lTWFjOjppY29uRm9yQXR0YWNobWVudChjb25zdCBTdHJpbmcm
IGZpbGVOYW1lLCBjb25zdCBTdHJpbmcmIGF0dGFjaG1lbnRUeXBlLCBjb25zdCBTdHJpbmcmIHRp
dGxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0
eWxlQ29uc3RhbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJT
dHlsZUNvbnN0YW50cy5jcHAKaW5kZXggOTJiYzZhODEyYTExOGE1MTlmMGI0NmM5NGY5NzJlMzJi
M2E1ZWU1Ni4uNGM1MmM2NzFiZGJjZTY0YzkzZWNjMjRmNTgzMDE1MmNmZjA1MDZmYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRz
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25z
dGFudHMuY3BwCkBAIC02NzEsNyArNjcxLDcgQEAgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0
U3RyZWFtJiB0cywgTGlzdFN0eWxlUG9zaXRpb24gcG9zaXRpb24pCiAKIFRleHRTdHJlYW0mIG9w
ZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIExpc3RTdHlsZVR5cGUgc3R5bGVUeXBlKQogewotICAg
IHJldHVybiB0cyA8PCBnZXRWYWx1ZU5hbWUodG9DU1NWYWx1ZUlEKHN0eWxlVHlwZSkpOworICAg
IHJldHVybiB0cyA8PCBnZXRWYWx1ZU5hbWUodG9DU1NWYWx1ZUlEKHN0eWxlVHlwZSkpLmNoYXJh
Y3RlcnMoKTsKIH0KIAogVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgTWFy
cXVlZUJlaGF2aW9yIG1hcnF1ZWVCZWhhdmlvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyRWxl
bWVudC5oCmluZGV4IDFhY2QyYWU5NWExNTk0ZTlmMzM3OWQyZTkzOWY5MTZkZDE1MDQ2ZmQuLjAw
Yzc2MTBhMTBjZWJhNDUzNDI0ZGE3OTQwOTZlMWE2ZmQzMzUyOTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0ZpbHRlckVsZW1lbnQuaApAQCAtNjgsMTAgKzY4LDEwIEBAIHByaXZhdGU6CiAgICAgUHJv
cGVydHlSZWdpc3RyeSBtX3Byb3BlcnR5UmVnaXN0cnkgeyAqdGhpcyB9OwogICAgIFJlZjxTVkdB
bmltYXRlZEVudW1lcmF0aW9uPiBtX2ZpbHRlclVuaXRzIHsgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlv
bjo6Y3JlYXRlKHRoaXMsIFNWR1VuaXRUeXBlczo6U1ZHX1VOSVRfVFlQRV9PQkpFQ1RCT1VORElO
R0JPWCkgfTsKICAgICBSZWY8U1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbj4gbV9wcmltaXRpdmVVbml0
cyB7IFNWR0FuaW1hdGVkRW51bWVyYXRpb246OmNyZWF0ZSh0aGlzLCBTVkdVbml0VHlwZXM6OlNW
R19VTklUX1RZUEVfVVNFUlNQQUNFT05VU0UpIH07Ci0gICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3Ro
PiBtX3ggeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6Oldp
ZHRoLCAiLTEwJSIpIH07Ci0gICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX3kgeyBTVkdBbmlt
YXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OkhlaWdodCwgIi0xMCUiKSB9
OwotICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV93aWR0aCB7IFNWR0FuaW1hdGVkTGVuZ3Ro
OjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6V2lkdGgsICIxMjAlIikgfTsKLSAgICBSZWY8
U1ZHQW5pbWF0ZWRMZW5ndGg+IG1faGVpZ2h0IHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0
aGlzLCBTVkdMZW5ndGhNb2RlOjpIZWlnaHQsICIxMjAlIikgfTsKKyAgICBSZWY8U1ZHQW5pbWF0
ZWRMZW5ndGg+IG1feCB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3Ro
TW9kZTo6V2lkdGgsICItMTAlIl9zKSB9OworICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV95
IHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpIZWlnaHQs
ICItMTAlIl9zKSB9OworICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV93aWR0aCB7IFNWR0Fu
aW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6V2lkdGgsICIxMjAlIl9z
KSB9OworICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV9oZWlnaHQgeyBTVkdBbmltYXRlZExl
bmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OkhlaWdodCwgIjEyMCUiX3MpIH07CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmggYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmgKaW5kZXggMzEwM2Nj
NmFjMjMzZTBmZDNiMmZiMWU5NzkwNDlhMjhiN2I2ZjhiYi4uNzhlMmFhMmMxZTgxNGU2OThlZDQ0
NGVlYzc3ZjliMjA3NmUzZjk1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Zp
bHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMuaApAQCAtNzUsMTAgKzc1LDEw
IEBAIHByaXZhdGU6CiAKICAgICAvLyBTcGVjOiBJZiB0aGUgeC95IGF0dHJpYnV0ZSBpcyBub3Qg
c3BlY2lmaWVkLCB0aGUgZWZmZWN0IGlzIGFzIGlmIGEgdmFsdWUgb2YgIjAlIiB3ZXJlIHNwZWNp
ZmllZC4KICAgICAvLyBTcGVjOiBJZiB0aGUgd2lkdGgvaGVpZ2h0IGF0dHJpYnV0ZSBpcyBub3Qg
c3BlY2lmaWVkLCB0aGUgZWZmZWN0IGlzIGFzIGlmIGEgdmFsdWUgb2YgIjEwMCUiIHdlcmUgc3Bl
Y2lmaWVkLgotICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV94IHsgU1ZHQW5pbWF0ZWRMZW5n
dGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpXaWR0aCwgIjAlIikgfTsKLSAgICBSZWY8
U1ZHQW5pbWF0ZWRMZW5ndGg+IG1feSB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywg
U1ZHTGVuZ3RoTW9kZTo6SGVpZ2h0LCAiMCUiKSB9OwotICAgIFJlZjxTVkdBbmltYXRlZExlbmd0
aD4gbV93aWR0aCB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9k
ZTo6V2lkdGgsICIxMDAlIikgfTsKLSAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1faGVpZ2h0
IHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpIZWlnaHQs
ICIxMDAlIikgfTsKKyAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1feCB7IFNWR0FuaW1hdGVk
TGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6V2lkdGgsICIwJSJfcykgfTsKKyAg
ICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1feSB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUo
dGhpcywgU1ZHTGVuZ3RoTW9kZTo6SGVpZ2h0LCAiMCUiX3MpIH07CisgICAgUmVmPFNWR0FuaW1h
dGVkTGVuZ3RoPiBtX3dpZHRoIHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdM
ZW5ndGhNb2RlOjpXaWR0aCwgIjEwMCUiX3MpIH07CisgICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3Ro
PiBtX2hlaWdodCB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9k
ZTo6SGVpZ2h0LCAiMTAwJSJfcykgfTsKICAgICBSZWY8U1ZHQW5pbWF0ZWRTdHJpbmc+IG1fcmVz
dWx0IHsgU1ZHQW5pbWF0ZWRTdHJpbmc6OmNyZWF0ZSh0aGlzKSB9OwogfTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5oIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5oCmluZGV4IGFlZmU2NGNlMTQ2
NzY3ODRjMGQxYTkyNGNlM2RmZWFkN2JhY2MzNzMuLmRmMjBiZDA1OWZhYzczYjIzZDc2OWU4OWM5
MmRlZjBmYmVjOTc4YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lYXJH
cmFkaWVudEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGll
bnRFbGVtZW50LmgKQEAgLTYxLDcgKzYxLDcgQEAgcHJpdmF0ZToKICAgICBQcm9wZXJ0eVJlZ2lz
dHJ5IG1fcHJvcGVydHlSZWdpc3RyeSB7ICp0aGlzIH07CiAgICAgUmVmPFNWR0FuaW1hdGVkTGVu
Z3RoPiBtX3gxIHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2Rl
OjpXaWR0aCkgfTsKICAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1feTEgeyBTVkdBbmltYXRl
ZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OkhlaWdodCkgfTsKLSAgICBSZWY8
U1ZHQW5pbWF0ZWRMZW5ndGg+IG1feDIgeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMs
IFNWR0xlbmd0aE1vZGU6OldpZHRoLCAiMTAwJSIpIH07CisgICAgUmVmPFNWR0FuaW1hdGVkTGVu
Z3RoPiBtX3gyIHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2Rl
OjpXaWR0aCwgIjEwMCUiX3MpIH07CiAgICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX3kyIHsg
U1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpIZWlnaHQpIH07
CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5o
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQuaAppbmRleCA1YTEzNmUzZWY0
NWE1N2E1MWM5MmZmNzY1OWJhNmFmNzYyZjJhZTkzLi5lMWY3ZWU5YWM0NzFhYTRmNjgwZmI1NGMy
NDNhZmQwNzczNzI3NWRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2Vy
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmgKQEAg
LTg5LDggKzg5LDggQEAgcHJpdmF0ZToKICAgICBQcm9wZXJ0eVJlZ2lzdHJ5IG1fcHJvcGVydHlS
ZWdpc3RyeSB7ICp0aGlzIH07CiAgICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX3JlZlggeyBT
VkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OldpZHRoKSB9Owog
ICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV9yZWZZIHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNy
ZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpIZWlnaHQpIH07Ci0gICAgUmVmPFNWR0FuaW1hdGVk
TGVuZ3RoPiBtX21hcmtlcldpZHRoIHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBT
VkdMZW5ndGhNb2RlOjpXaWR0aCwgIjMiKSB9OwotICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4g
bV9tYXJrZXJIZWlnaHQgeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0
aE1vZGU6OkhlaWdodCwgIjMiKSB9OworICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV9tYXJr
ZXJXaWR0aCB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6
V2lkdGgsICIzIl9zKSB9OworICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV9tYXJrZXJIZWln
aHQgeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OkhlaWdo
dCwgIjMiX3MpIH07CiAgICAgUmVmPFNWR0FuaW1hdGVkRW51bWVyYXRpb24+IG1fbWFya2VyVW5p
dHMgeyBTVkdBbmltYXRlZEVudW1lcmF0aW9uOjpjcmVhdGUodGhpcywgU1ZHTWFya2VyVW5pdHNT
dHJva2VXaWR0aCkgfTsKICAgICBSZWY8U1ZHQW5pbWF0ZWRBbmdsZT4gbV9vcmllbnRBbmdsZSB7
IFNWR0FuaW1hdGVkQW5nbGU6OmNyZWF0ZSh0aGlzKSB9OwogICAgIFJlZjxTVkdBbmltYXRlZE9y
aWVudFR5cGU+IG1fb3JpZW50VHlwZSB7IFNWR0FuaW1hdGVkT3JpZW50VHlwZTo6Y3JlYXRlKHRo
aXMsIFNWR01hcmtlck9yaWVudEFuZ2xlKSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR01hc2tFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFza0VsZW1lbnQu
aAppbmRleCA0OTBkYzIyMWFiMjQ0YTNlZjVmZGRkMjg1ZGYzN2E2ZTQ2MDAzNDJkLi5kYmQwNDJk
MGQzYWY4MTIwZTAwZjU5OWI5NWIwMWQxMTM4Y2UyMWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHTWFza0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFz
a0VsZW1lbnQuaApAQCAtNjMsMTAgKzYzLDEwIEBAIHByaXZhdGU6CiAgICAgYm9vbCBzZWxmSGFz
UmVsYXRpdmVMZW5ndGhzKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQogCiAgICAgUHJv
cGVydHlSZWdpc3RyeSBtX3Byb3BlcnR5UmVnaXN0cnkgeyAqdGhpcyB9OwotICAgIFJlZjxTVkdB
bmltYXRlZExlbmd0aD4gbV94IHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdM
ZW5ndGhNb2RlOjpXaWR0aCwgIi0xMCUiKSB9OwotICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4g
bV95IHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpIZWln
aHQsICItMTAlIikgfTsKLSAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1fd2lkdGggeyBTVkdB
bmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OldpZHRoLCAiMTIwJSIp
IH07Ci0gICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX2hlaWdodCB7IFNWR0FuaW1hdGVkTGVu
Z3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6SGVpZ2h0LCAiMTIwJSIpIH07CisgICAg
UmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX3ggeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRo
aXMsIFNWR0xlbmd0aE1vZGU6OldpZHRoLCAiLTEwJSJfcykgfTsKKyAgICBSZWY8U1ZHQW5pbWF0
ZWRMZW5ndGg+IG1feSB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3Ro
TW9kZTo6SGVpZ2h0LCAiLTEwJSJfcykgfTsKKyAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1f
d2lkdGggeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6Oldp
ZHRoLCAiMTIwJSJfcykgfTsKKyAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1faGVpZ2h0IHsg
U1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpIZWlnaHQsICIx
MjAlIl9zKSB9OwogICAgIFJlZjxTVkdBbmltYXRlZEVudW1lcmF0aW9uPiBtX21hc2tVbml0cyB7
IFNWR0FuaW1hdGVkRW51bWVyYXRpb246OmNyZWF0ZSh0aGlzLCBTVkdVbml0VHlwZXM6OlNWR19V
TklUX1RZUEVfT0JKRUNUQk9VTkRJTkdCT1gpIH07CiAgICAgUmVmPFNWR0FuaW1hdGVkRW51bWVy
YXRpb24+IG1fbWFza0NvbnRlbnRVbml0cyB7IFNWR0FuaW1hdGVkRW51bWVyYXRpb246OmNyZWF0
ZSh0aGlzLCBTVkdVbml0VHlwZXM6OlNWR19VTklUX1RZUEVfVVNFUlNQQUNFT05VU0UpIH07CiB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdJbXBsLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0ltcGwuaAppbmRleCBhNjM2MTU0Mjk0ZmVhM2E1YjA1
YmY5ZmU4ZjJmOTBjMThlYTEwODM0Li4zNGYyM2M1MTVmOTRiOTM5MTcwZjNhNWNlOWFlOGZiNTI4
ODY2MTk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0ltcGwuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0ltcGwuaApAQCAtMzUsNyArMzUsNyBA
QCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHVzaW5nIFNWR1BhdGhTZWc6OlNWR1BhdGhTZWc7CiAg
ICAgdW5zaWduZWQgc2hvcnQgcGF0aFNlZ1R5cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBQQVRI
U0VHX0NMT1NFUEFUSDsgfQotICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gIloiOyB9CisgICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBj
b25zdCBmaW5hbCB7IHJldHVybiAiWiJfczsgfQogICAgIFJlZjxTVkdQYXRoU2VnPiBjbG9uZSgp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHUGF0aFNlZ0Nsb3NlUGF0aCgp
KTsgfQogfTsKIApAQCAtNDUsNyArNDUsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHVzaW5n
IFNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsOjpTVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbDsK
ICAgICB1bnNpZ25lZCBzaG9ydCBwYXRoU2VnVHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFBB
VEhTRUdfTElORVRPX0hPUklaT05UQUxfQUJTOyB9Ci0gICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNM
ZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiSCI7IH0KKyAgICBTdHJpbmcgcGF0aFNlZ1R5
cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJIIl9zOyB9CiAgICAgUmVmPFNWR1Bh
dGhTZWc+IGNsb25lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gU1ZHUGF0aFNlZ1ZhbHVlOjpjbG9u
ZTxTVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbEFicz4oKTsgfQogfTsKIApAQCAtNTUsNyArNTUs
NyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHVzaW5nIFNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9u
dGFsOjpTVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbDsKICAgICB1bnNpZ25lZCBzaG9ydCBwYXRo
U2VnVHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFBBVEhTRUdfTElORVRPX0hPUklaT05UQUxf
UkVMOyB9Ci0gICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiAiaCI7IH0KKyAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuICJoIl9zOyB9CiAgICAgUmVmPFNWR1BhdGhTZWc+IGNsb25lKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gU1ZHUGF0aFNlZ1ZhbHVlOjpjbG9uZTxTVkdQYXRoU2VnTGluZXRvSG9yaXpv
bnRhbFJlbD4oKTsgfQogfTsKIApAQCAtNjUsNyArNjUsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgog
ICAgIHVzaW5nIFNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbDo6U1ZHUGF0aFNlZ0xpbmV0b1ZlcnRp
Y2FsOwogICAgIHVuc2lnbmVkIHNob3J0IHBhdGhTZWdUeXBlKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gUEFUSFNFR19MSU5FVE9fVkVSVElDQUxfQUJTOyB9Ci0gICAgU3RyaW5nIHBhdGhTZWdUeXBl
QXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiViI7IH0KKyAgICBTdHJpbmcgcGF0aFNl
Z1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJWIl9zOyB9CiAgICAgUmVmPFNW
R1BhdGhTZWc+IGNsb25lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gU1ZHUGF0aFNlZ1ZhbHVlOjpj
bG9uZTxTVkdQYXRoU2VnTGluZXRvVmVydGljYWxBYnM+KCk7IH0KIH07CiAKQEAgLTc1LDcgKzc1
LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB1c2luZyBTVkdQYXRoU2VnTGluZXRvVmVydGlj
YWw6OlNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbDsKICAgICB1bnNpZ25lZCBzaG9ydCBwYXRoU2Vn
VHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFBBVEhTRUdfTElORVRPX1ZFUlRJQ0FMX1JFTDsg
fQotICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
InYiOyB9CisgICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiAidiJfczsgfQogICAgIFJlZjxTVkdQYXRoU2VnPiBjbG9uZSgpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIFNWR1BhdGhTZWdWYWx1ZTo6Y2xvbmU8U1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsUmVs
PigpOyB9CiB9OwogCkBAIC04NSw3ICs4NSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdXNp
bmcgU1ZHUGF0aFNlZ1NpbmdsZUNvb3JkaW5hdGU6OlNWR1BhdGhTZWdTaW5nbGVDb29yZGluYXRl
OwogICAgIHVuc2lnbmVkIHNob3J0IHBhdGhTZWdUeXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
UEFUSFNFR19NT1ZFVE9fQUJTOyB9Ci0gICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBj
b25zdCBmaW5hbCB7IHJldHVybiAiTSI7IH0KKyAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRl
cigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJNIl9zOyB9CiAgICAgUmVmPFNWR1BhdGhTZWc+IGNs
b25lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gU1ZHUGF0aFNlZ1ZhbHVlOjpjbG9uZTxTVkdQYXRo
U2VnTW92ZXRvQWJzPigpOyB9CiB9OwogCkBAIC05NSw3ICs5NSw3IEBAIHB1YmxpYzoKIHByaXZh
dGU6CiAgICAgdXNpbmcgU1ZHUGF0aFNlZ1NpbmdsZUNvb3JkaW5hdGU6OlNWR1BhdGhTZWdTaW5n
bGVDb29yZGluYXRlOwogICAgIHVuc2lnbmVkIHNob3J0IHBhdGhTZWdUeXBlKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gUEFUSFNFR19NT1ZFVE9fUkVMOyB9Ci0gICAgU3RyaW5nIHBhdGhTZWdUeXBl
QXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAibSI7IH0KKyAgICBTdHJpbmcgcGF0aFNl
Z1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJtIl9zOyB9CiAgICAgUmVmPFNW
R1BhdGhTZWc+IGNsb25lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gU1ZHUGF0aFNlZ1ZhbHVlOjpj
bG9uZTxTVkdQYXRoU2VnTW92ZXRvUmVsPigpOyB9CiB9OwogCkBAIC0xMDUsNyArMTA1LDcgQEAg
cHVibGljOgogcHJpdmF0ZToKICAgICB1c2luZyBTVkdQYXRoU2VnU2luZ2xlQ29vcmRpbmF0ZTo6
U1ZHUGF0aFNlZ1NpbmdsZUNvb3JkaW5hdGU7CiAgICAgdW5zaWduZWQgc2hvcnQgcGF0aFNlZ1R5
cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBQQVRIU0VHX0xJTkVUT19BQlM7IH0KLSAgICBTdHJp
bmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJMIjsgfQorICAg
IFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIkwiX3M7
IH0KICAgICBSZWY8U1ZHUGF0aFNlZz4gY2xvbmUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBTVkdQ
YXRoU2VnVmFsdWU6OmNsb25lPFNWR1BhdGhTZWdMaW5ldG9BYnM+KCk7IH0KIH07CiAKQEAgLTEx
NSw3ICsxMTUsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHVzaW5nIFNWR1BhdGhTZWdTaW5n
bGVDb29yZGluYXRlOjpTVkdQYXRoU2VnU2luZ2xlQ29vcmRpbmF0ZTsKICAgICB1bnNpZ25lZCBz
aG9ydCBwYXRoU2VnVHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFBBVEhTRUdfTElORVRPX1JF
TDsgfQotICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gImwiOyB9CisgICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7
IHJldHVybiAibCJfczsgfQogICAgIFJlZjxTVkdQYXRoU2VnPiBjbG9uZSgpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIFNWR1BhdGhTZWdWYWx1ZTo6Y2xvbmU8U1ZHUGF0aFNlZ0xpbmV0b1JlbD4oKTsg
fQogfTsKIApAQCAtMTI1LDcgKzEyNSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdXNpbmcg
U1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWM6OlNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljOwog
ICAgIHVuc2lnbmVkIHNob3J0IHBhdGhTZWdUeXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gUEFU
SFNFR19DVVJWRVRPX1FVQURSQVRJQ19BQlM7IH0KLSAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xl
dHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJRIjsgfQorICAgIFN0cmluZyBwYXRoU2VnVHlw
ZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIlEiX3M7IH0KICAgICBSZWY8U1ZHUGF0
aFNlZz4gY2xvbmUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBTVkdQYXRoU2VnVmFsdWU6OmNsb25l
PFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljQWJzPigpOyB9CiB9OwogCkBAIC0xMzUsNyArMTM1
LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB1c2luZyBTVkdQYXRoU2VnQ3VydmV0b1F1YWRy
YXRpYzo6U1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWM7CiAgICAgdW5zaWduZWQgc2hvcnQgcGF0
aFNlZ1R5cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBQQVRIU0VHX0NVUlZFVE9fUVVBRFJBVElD
X1JFTDsgfQotICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gInEiOyB9CisgICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5h
bCB7IHJldHVybiAicSJfczsgfQogICAgIFJlZjxTVkdQYXRoU2VnPiBjbG9uZSgpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIFNWR1BhdGhTZWdWYWx1ZTo6Y2xvbmU8U1ZHUGF0aFNlZ0N1cnZldG9RdWFk
cmF0aWNSZWw+KCk7IH0KIH07CiAKQEAgLTE0NSw3ICsxNDUsNyBAQCBwdWJsaWM6CiBwcml2YXRl
OgogICAgIHVzaW5nIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWM6OlNWR1BhdGhTZWdDdXJ2ZXRvQ3Vi
aWM7CiAgICAgdW5zaWduZWQgc2hvcnQgcGF0aFNlZ1R5cGUoKSBjb25zdCBmaW5hbCB7IHJldHVy
biBQQVRIU0VHX0NVUlZFVE9fQ1VCSUNfQUJTOyB9Ci0gICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNM
ZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiQyI7IH0KKyAgICBTdHJpbmcgcGF0aFNlZ1R5
cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJDIl9zOyB9CiAgICAgUmVmPFNWR1Bh
dGhTZWc+IGNsb25lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gU1ZHUGF0aFNlZ1ZhbHVlOjpjbG9u
ZTxTVkdQYXRoU2VnQ3VydmV0b0N1YmljQWJzPigpOyB9CiB9OwogCkBAIC0xNTUsNyArMTU1LDcg
QEAgcHVibGljOgogcHJpdmF0ZToKICAgICB1c2luZyBTVkdQYXRoU2VnQ3VydmV0b0N1YmljOjpT
VkdQYXRoU2VnQ3VydmV0b0N1YmljOwogICAgIHVuc2lnbmVkIHNob3J0IHBhdGhTZWdUeXBlKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gUEFUSFNFR19DVVJWRVRPX0NVQklDX1JFTDsgfQotICAgIFN0
cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gImMiOyB9Cisg
ICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiYyJf
czsgfQogICAgIFJlZjxTVkdQYXRoU2VnPiBjbG9uZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFNW
R1BhdGhTZWdWYWx1ZTo6Y2xvbmU8U1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1JlbD4oKTsgfQogfTsK
IApAQCAtMTY1LDcgKzE2NSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdXNpbmcgU1ZHUGF0
aFNlZ0FyYzo6U1ZHUGF0aFNlZ0FyYzsKICAgICB1bnNpZ25lZCBzaG9ydCBwYXRoU2VnVHlwZSgp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIFBBVEhTRUdfQVJDX0FCUzsgfQotICAgIFN0cmluZyBwYXRo
U2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIkEiOyB9CisgICAgU3RyaW5n
IHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiQSJfczsgfQogICAg
IFJlZjxTVkdQYXRoU2VnPiBjbG9uZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFNWR1BhdGhTZWdW
YWx1ZTo6Y2xvbmU8U1ZHUGF0aFNlZ0FyY0Ficz4oKTsgfQogfTsKIApAQCAtMTc1LDcgKzE3NSw3
IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdXNpbmcgU1ZHUGF0aFNlZ0FyYzo6U1ZHUGF0aFNl
Z0FyYzsKICAgICB1bnNpZ25lZCBzaG9ydCBwYXRoU2VnVHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIFBBVEhTRUdfQVJDX1JFTDsgfQotICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gImEiOyB9CisgICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0
ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiYSJfczsgfQogICAgIFJlZjxTVkdQYXRoU2VnPiBj
bG9uZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFNWR1BhdGhTZWdWYWx1ZTo6Y2xvbmU8U1ZHUGF0
aFNlZ0FyY1JlbD4oKTsgfQogfTsKIApAQCAtMTg1LDcgKzE4NSw3IEBAIHB1YmxpYzoKIHByaXZh
dGU6CiAgICAgdXNpbmcgU1ZHUGF0aFNlZ1NpbmdsZUNvb3JkaW5hdGU6OlNWR1BhdGhTZWdTaW5n
bGVDb29yZGluYXRlOwogICAgIHVuc2lnbmVkIHNob3J0IHBhdGhTZWdUeXBlKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gUEFUSFNFR19DVVJWRVRPX1FVQURSQVRJQ19TTU9PVEhfQUJTOyB9Ci0gICAg
U3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiVCI7IH0K
KyAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJU
Il9zOyB9CiAgICAgUmVmPFNWR1BhdGhTZWc+IGNsb25lKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
U1ZHUGF0aFNlZ1ZhbHVlOjpjbG9uZTxTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aEFi
cz4oKTsgfQogfTsKIApAQCAtMTk1LDcgKzE5NSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAg
dXNpbmcgU1ZHUGF0aFNlZ1NpbmdsZUNvb3JkaW5hdGU6OlNWR1BhdGhTZWdTaW5nbGVDb29yZGlu
YXRlOwogICAgIHVuc2lnbmVkIHNob3J0IHBhdGhTZWdUeXBlKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gUEFUSFNFR19DVVJWRVRPX1FVQURSQVRJQ19TTU9PVEhfUkVMOyB9Ci0gICAgU3RyaW5nIHBh
dGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAidCI7IH0KKyAgICBTdHJp
bmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJ0Il9zOyB9CiAg
ICAgUmVmPFNWR1BhdGhTZWc+IGNsb25lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gU1ZHUGF0aFNl
Z1ZhbHVlOjpjbG9uZTxTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Ntb290aFJlbD4oKTsgfQog
fTsKIApAQCAtMjA1LDcgKzIwNSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdXNpbmcgU1ZH
UGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aDo6U1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aDsK
ICAgICB1bnNpZ25lZCBzaG9ydCBwYXRoU2VnVHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFBB
VEhTRUdfQ1VSVkVUT19DVUJJQ19TTU9PVEhfQUJTOyB9Ci0gICAgU3RyaW5nIHBhdGhTZWdUeXBl
QXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiUyI7IH0KKyAgICBTdHJpbmcgcGF0aFNl
Z1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJTIl9zOyB9CiAgICAgUmVmPFNW
R1BhdGhTZWc+IGNsb25lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gU1ZHUGF0aFNlZ1ZhbHVlOjpj
bG9uZTxTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoQWJzPigpOyB9CiB9OwogCkBAIC0yMTUs
NyArMjE1LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB1c2luZyBTVkdQYXRoU2VnQ3VydmV0
b0N1YmljU21vb3RoOjpTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoOwogICAgIHVuc2lnbmVk
IHNob3J0IHBhdGhTZWdUeXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gUEFUSFNFR19DVVJWRVRP
X0NVQklDX1NNT09USF9SRUw7IH0KLSAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuICJzIjsgfQorICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVy
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gInMiX3M7IH0KICAgICBSZWY8U1ZHUGF0aFNlZz4gY2xv
bmUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBTVkdQYXRoU2VnVmFsdWU6OmNsb25lPFNWR1BhdGhT
ZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhSZWw+KCk7IH0KIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuaAppbmRleCA4NGYxMTU4OGYzZTI4MWU2ZjZlMDdh
NjA5ZDA4OWE5Nzg3MDhhMzllLi4yNDE5N2Y3NDU3NzE2NTdjMTdkOGQwN2IyY2QyNGU1NGUzNGM4
MDhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5o
CkBAIC02MywxMiArNjMsMTIgQEAgcHJpdmF0ZToKICAgICBib29sIHNlbGZIYXNSZWxhdGl2ZUxl
bmd0aHMoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIFByb3BlcnR5UmVnaXN0cnkgbV9wcm9wZXJ0
eVJlZ2lzdHJ5IHsgKnRoaXMgfTsKLSAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1fY3ggeyBT
VkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OldpZHRoLCAiNTAl
IikgfTsKLSAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1fY3kgeyBTVkdBbmltYXRlZExlbmd0
aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OkhlaWdodCwgIjUwJSIpIH07Ci0gICAgUmVm
PFNWR0FuaW1hdGVkTGVuZ3RoPiBtX3IgeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMs
IFNWR0xlbmd0aE1vZGU6Ok90aGVyLCAiNTAlIikgfTsKKyAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5n
dGg+IG1fY3ggeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6
OldpZHRoLCAiNTAlIl9zKSB9OworICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV9jeSB7IFNW
R0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6SGVpZ2h0LCAiNTAl
Il9zKSB9OworICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV9yIHsgU1ZHQW5pbWF0ZWRMZW5n
dGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpPdGhlciwgIjUwJSJfcykgfTsKICAgICBS
ZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1fZnggeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRo
aXMsIFNWR0xlbmd0aE1vZGU6OldpZHRoKSB9OwogICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4g
bV9meSB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6SGVp
Z2h0KSB9OwotICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV9mciB7IFNWR0FuaW1hdGVkTGVu
Z3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6T3RoZXIsICIwJSIpIH07CisgICAgUmVm
PFNWR0FuaW1hdGVkTGVuZ3RoPiBtX2ZyIHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlz
LCBTVkdMZW5ndGhNb2RlOjpPdGhlciwgIjAlIl9zKSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJv
cGVydHlUcmFpdHMuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5
VHJhaXRzLmgKaW5kZXggNDM5OTcwNDMwZjY1NmE5ODY1ZTZlOWM5ZDllZjVlYTI0YmJhNTMwNC4u
ODQ1YWI0YWJmZmI3ODk1ODQ4NjlmOWZmMWFhNWU4MzIwMTI4MGE2MyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlUcmFpdHMuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRyYWl0cy5oCkBAIC0zOSw3ICsz
OSw3IEBAIHN0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxib29sPiB7CiAgICAgc3RhdGljIGJvb2wg
aW5pdGlhbFZhbHVlKCkgeyByZXR1cm4gZmFsc2U7IH0KICAgICBzdGF0aWMgYm9vbCBmcm9tU3Ry
aW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKSB7IHJldHVybiBzdHJpbmcgPT0gInRydWUiOyB9CiAg
ICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gcGFyc2UoY29uc3QgUXVhbGlmaWVkTmFtZSYs
IGNvbnN0IFN0cmluZyYpIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IHJldHVybiBpbml0aWFsVmFs
dWUoKTsgfQotICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoYm9vbCB0eXBlKSB7IHJldHVybiB0
eXBlID8gInRydWUiIDogImZhbHNlIjsgfQorICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoYm9v
bCB0eXBlKSB7IHJldHVybiB0eXBlID8gInRydWUiX3MgOiAiZmFsc2UiX3M7IH0KIH07CiAKIHRl
bXBsYXRlPD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0NvbnRlbnRG
aWx0ZXJTZXR0aW5ncy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrQ29udGVudEZpbHRl
clNldHRpbmdzLmgKaW5kZXggMTgxZWZmNWI1YjhlYTAwMThlOWYzYjBjMjQzYWM3ZDRlM2U5ZGNh
Ny4uZjNjOTdmM2Y4ZTEzYWEwZjEyN2RlZTg0MzlkNmI1YzBkMGUzYzFlMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrQ29udGVudEZpbHRlclNldHRpbmdzLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrQ29udGVudEZpbHRlclNldHRpbmdzLmgKQEAgLTQ4
LDcgKzQ4LDcgQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9URVNUU1VQUE9SVF9FWFBPUlQgc3Rh
dGljIE1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MmIHNpbmdsZXRvbigpOwogICAgIFdFQkNPUkVf
VEVTVFNVUFBPUlRfRVhQT1JUIHN0YXRpYyB2b2lkIHJlc2V0KCk7Ci0gICAgc3RhdGljIGNvbnN0
IGNoYXIqIHVuYmxvY2tVUkxIb3N0KCkgeyByZXR1cm4gIm1vY2stdW5ibG9jayI7IH0KKyAgICBz
dGF0aWMgQVNDSUlMaXRlcmFsIHVuYmxvY2tVUkxIb3N0KCkgeyByZXR1cm4gIm1vY2stdW5ibG9j
ayJfczsgfQogCiAgICAgLy8gVHJpY2sgdGhlIGdlbmVyYXRlZCBiaW5kaW5ncyBpbnRvIHRoaW5r
aW5nIHdlJ3JlIFJlZkNvdW50ZWQuCiAgICAgdm9pZCByZWYoKSB7IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3htbC9YUGF0aFZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhW
YWx1ZS5oCmluZGV4IGQ5MWM3N2QxMDJkMjRhZDIzZTU5Mzk4NmUwNDBiYTI1YzA5ZGIzNmIuLmVh
ODNmN2QwYmIxYWFmMTRhN2JhNzIxMDk0ZjNiMjE5YTIyYjIzYjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3htbC9YUGF0aFZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hQYXRo
VmFsdWUuaApAQCAtNDAsNyArNDAsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgICAg
ICBWYWx1ZShkb3VibGUgdmFsdWUpIDogbV90eXBlKE51bWJlclZhbHVlKSwgbV9udW1iZXIodmFs
dWUpIHsgfQogCiAgICAgICAgICAgICBWYWx1ZShjb25zdCBTdHJpbmcmIHZhbHVlKSA6IG1fdHlw
ZShTdHJpbmdWYWx1ZSksIG1fZGF0YShEYXRhOjpjcmVhdGUodmFsdWUpKSB7IH0KLSAgICAgICAg
ICAgIFZhbHVlKGNvbnN0IGNoYXIqIHZhbHVlKSA6IG1fdHlwZShTdHJpbmdWYWx1ZSksIG1fZGF0
YShEYXRhOjpjcmVhdGUodmFsdWUpKSB7IH0KKyAgICAgICAgICAgIFZhbHVlKGNvbnN0IGNoYXIq
IHZhbHVlKSA6IG1fdHlwZShTdHJpbmdWYWx1ZSksIG1fZGF0YShEYXRhOjpjcmVhdGUoU3RyaW5n
IHsgdmFsdWUgfSkpIHsgfQogCiAgICAgICAgICAgICBleHBsaWNpdCBWYWx1ZShOb2RlU2V0JiYg
dmFsdWUpCiAgICAgICAgICAgICAgICAgOiBtX3R5cGUoTm9kZVNldFZhbHVlKSwgbV9kYXRhKERh
dGE6OmNyZWF0ZShXVEZNb3ZlKHZhbHVlKSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94
bWwvWFNMU3R5bGVTaGVldC5oIGIvU291cmNlL1dlYkNvcmUveG1sL1hTTFN0eWxlU2hlZXQuaApp
bmRleCBhMmJmOGUzMzQ5YWI1NjM2ZjUyNzRlNDUyNGMzMGJiMTg2YzZmZGVkLi41ZmJkNmViYTQ3
OWQ4N2U5YjdlODIxYWY5ZWEzMmYwMzBmNDY4NTAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS94bWwvWFNMU3R5bGVTaGVldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xTdHlsZVNo
ZWV0LmgKQEAgLTg0LDcgKzg0LDcgQEAgcHVibGljOgogICAgIHZvaWQgbWFya0FzUHJvY2Vzc2Vk
KCk7CiAgICAgYm9vbCBwcm9jZXNzZWQoKSBjb25zdCB7IHJldHVybiBtX3Byb2Nlc3NlZDsgfQog
ICAgIAotICAgIFN0cmluZyB0eXBlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gInRleHQveG1s
IjsgfQorICAgIFN0cmluZyB0eXBlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gInRleHQveG1s
Il9zOyB9CiAgICAgYm9vbCBkaXNhYmxlZCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1faXNE
aXNhYmxlZDsgfQogICAgIHZvaWQgc2V0RGlzYWJsZWQoYm9vbCBiKSBvdmVycmlkZSB7IG1faXNE
aXNhYmxlZCA9IGI7IH0KICAgICBOb2RlKiBvd25lck5vZGUoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiBtX293bmVyTm9kZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkdQVS9XR1NML1BhcnNl
ci5jcHAgYi9Tb3VyY2UvV2ViR1BVL1dHU0wvUGFyc2VyLmNwcAppbmRleCA2MjU0ODdkZTE4NWZl
ZWNmOTRhMWQxYjNmMGJjOTg0NmUzZGI4YTBhLi5lNjJmM2UwYzA4N2VmYTFjMWJjMmQwOGIxZjJk
NzgxYWE5YzVjYzQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViR1BVL1dHU0wvUGFyc2VyLmNwcAor
KysgYi9Tb3VyY2UvV2ViR1BVL1dHU0wvUGFyc2VyLmNwcApAQCAtMjM0LDcgKzIzNCw3IEBAIEV4
cGVjdGVkPFVuaXF1ZVJlZjxBU1Q6Okdsb2JhbERlY2w+LCBFcnJvcj4gUGFyc2VyPExleGVyPjo6
cGFyc2VHbG9iYWxEZWNsKCkKICAgICAgICAgcmV0dXJuIHsgbWFrZVVuaXF1ZVJlZjxBU1Q6OkZ1
bmN0aW9uRGVjbD4oV1RGTW92ZShmbikpIH07CiAgICAgfQogICAgIGRlZmF1bHQ6Ci0gICAgICAg
IEZBSUwoIlRyeWluZyB0byBwYXJzZSBhIEdsb2JhbERlY2wsIGV4cGVjdGVkICd2YXInLCAnZm4n
LCBvciAnc3RydWN0Jy4iKTsKKyAgICAgICAgRkFJTCgiVHJ5aW5nIHRvIHBhcnNlIGEgR2xvYmFs
RGVjbCwgZXhwZWN0ZWQgJ3ZhcicsICdmbicsIG9yICdzdHJ1Y3QnLiJfcyk7CiAgICAgfQogfQog
CkBAIC0yODIsNyArMjgyLDcgQEAgRXhwZWN0ZWQ8VW5pcXVlUmVmPEFTVDo6QXR0cmlidXRlPiwg
RXJyb3I+IFBhcnNlcjxMZXhlcj46OnBhcnNlQXR0cmlidXRlKCkKICAgICAgICAgICAgIFJFVFVS
Tl9OT0RFX1JFRihTdGFnZUF0dHJpYnV0ZSwgQVNUOjpTdGFnZUF0dHJpYnV0ZTo6U3RhZ2U6OlZl
cnRleCk7CiAgICAgICAgIGlmIChzdGFnZS5tX2lkZW50ID09ICJmcmFnbWVudCIpCiAgICAgICAg
ICAgICBSRVRVUk5fTk9ERV9SRUYoU3RhZ2VBdHRyaWJ1dGUsIEFTVDo6U3RhZ2VBdHRyaWJ1dGU6
OlN0YWdlOjpGcmFnbWVudCk7Ci0gICAgICAgIEZBSUwoIkludmFsaWQgc3RhZ2UgYXR0cmlidXRl
LCB0aGUgb25seSBvcHRpb25zIGFyZSAnY29tcHV0ZScsICd2ZXJ0ZXgnLCAnZnJhZ21lbnQnLiIp
OworICAgICAgICBGQUlMKCJJbnZhbGlkIHN0YWdlIGF0dHJpYnV0ZSwgdGhlIG9ubHkgb3B0aW9u
cyBhcmUgJ2NvbXB1dGUnLCAndmVydGV4JywgJ2ZyYWdtZW50Jy4iX3MpOwogICAgIH0KICAgICBp
ZiAoaWRlbnQubV9pZGVudCA9PSAibG9jYXRpb24iKSB7CiAgICAgICAgIENPTlNVTUVfVFlQRShQ
YXJlbkxlZnQpOwpAQCAtMjk3LDcgKzI5Nyw3IEBAIEV4cGVjdGVkPFVuaXF1ZVJlZjxBU1Q6OkF0
dHJpYnV0ZT4sIEVycm9yPiBQYXJzZXI8TGV4ZXI+OjpwYXJzZUF0dHJpYnV0ZSgpCiAgICAgICAg
IENPTlNVTUVfVFlQRShQYXJlblJpZ2h0KTsKICAgICAgICAgUkVUVVJOX05PREVfUkVGKEJ1aWx0
aW5BdHRyaWJ1dGUsIG5hbWUubV9pZGVudCk7CiAgICAgfQotICAgIEZBSUwoIlVua25vd24gYXR0
cmlidXRlLCB0aGUgb25seSBzdXBwb3J0ZWQgYXR0cmlidXRlcyBhcmUgJ2dyb3VwJywgJ2JpbmRp
bmcnLCAnc3RhZ2UnLiIpOworICAgIEZBSUwoIlVua25vd24gYXR0cmlidXRlLCB0aGUgb25seSBz
dXBwb3J0ZWQgYXR0cmlidXRlcyBhcmUgJ2dyb3VwJywgJ2JpbmRpbmcnLCAnc3RhZ2UnLiJfcyk7
CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIExleGVyPgpAQCAtMzYwLDcgKzM2MCw3IEBAIEV4cGVj
dGVkPFVuaXF1ZVJlZjxBU1Q6OlR5cGVEZWNsPiwgRXJyb3I+IFBhcnNlcjxMZXhlcj46OnBhcnNl
VHlwZURlY2woKQogICAgICAgICByZXR1cm4gcGFyc2VUeXBlRGVjbEFmdGVySWRlbnRpZmllcihX
VEZNb3ZlKG5hbWUubV9pZGVudCksIF9zdGFydE9mRWxlbWVudFBvc2l0aW9uKTsKICAgICB9CiAK
LSAgICBGQUlMKCJUcmllZCBwYXJzaW5nIGEgdHlwZSBhbmQgaXQgZGlkIG5vdCBzdGFydCB3aXRo
IGFuIGlkZW50aWZpZXIiKTsKKyAgICBGQUlMKCJUcmllZCBwYXJzaW5nIGEgdHlwZSBhbmQgaXQg
ZGlkIG5vdCBzdGFydCB3aXRoIGFuIGlkZW50aWZpZXIiX3MpOwogfQogCiB0ZW1wbGF0ZTx0eXBl
bmFtZSBMZXhlcj4KQEAgLTQ1MCw3ICs0NTAsNyBAQCBFeHBlY3RlZDxBU1Q6OlN0b3JhZ2VDbGFz
cywgRXJyb3I+IFBhcnNlcjxMZXhlcj46OnBhcnNlU3RvcmFnZUNsYXNzKCkKICAgICAgICAgcmV0
dXJuIHsgQVNUOjpTdG9yYWdlQ2xhc3M6OlN0b3JhZ2UgfTsKICAgICB9CiAKLSAgICBGQUlMKCJF
eHBlY3RlZCBvbmUgb2YgJ2Z1bmN0aW9uJy8ncHJpdmF0ZScvJ3N0b3JhZ2UnLyd1bmlmb3JtJy8n
d29ya2dyb3VwJyIpOworICAgIEZBSUwoIkV4cGVjdGVkIG9uZSBvZiAnZnVuY3Rpb24nLydwcml2
YXRlJy8nc3RvcmFnZScvJ3VuaWZvcm0nLyd3b3JrZ3JvdXAnIl9zKTsKIH0KIAogdGVtcGxhdGU8
dHlwZW5hbWUgTGV4ZXI+CkBAIC00NzEsNyArNDcxLDcgQEAgRXhwZWN0ZWQ8QVNUOjpBY2Nlc3NN
b2RlLCBFcnJvcj4gUGFyc2VyPExleGVyPjo6cGFyc2VBY2Nlc3NNb2RlKCkKICAgICAgICAgcmV0
dXJuIHsgQVNUOjpBY2Nlc3NNb2RlOjpSZWFkV3JpdGUgfTsKICAgICB9CiAKLSAgICBGQUlMKCJF
eHBlY3RlZCBvbmUgb2YgJ3JlYWQnLyd3cml0ZScvJ3JlYWRfd3JpdGUnIik7CisgICAgRkFJTCgi
RXhwZWN0ZWQgb25lIG9mICdyZWFkJy8nd3JpdGUnLydyZWFkX3dyaXRlJyJfcyk7CiB9CiAKIHRl
bXBsYXRlPHR5cGVuYW1lIExleGVyPgpAQCAtNTQ3LDcgKzU0Nyw3IEBAIEV4cGVjdGVkPFVuaXF1
ZVJlZjxBU1Q6OlN0YXRlbWVudD4sIEVycm9yPiBQYXJzZXI8TGV4ZXI+OjpwYXJzZVN0YXRlbWVu
dCgpCiAgICAgICAgIFJFVFVSTl9OT0RFX1JFRihBc3NpZ25tZW50U3RhdGVtZW50LCBsaHMubW92
ZVRvVW5pcXVlUHRyKCksIFdURk1vdmUocmhzKSk7CiAgICAgfQogICAgIGRlZmF1bHQ6Ci0gICAg
ICAgIEZBSUwoIk5vdCBhIHZhbGlkIHN0YXRlbWVudCIpOworICAgICAgICBGQUlMKCJOb3QgYSB2
YWxpZCBzdGF0ZW1lbnQiX3MpOwogICAgIH0KIH0KIApAQCAtNjk0LDcgKzY5NCw3IEBAIEV4cGVj
dGVkPFVuaXF1ZVJlZjxBU1Q6OkV4cHJlc3Npb24+LCBFcnJvcj4gUGFyc2VyPExleGVyPjo6cGFy
c2VQcmltYXJ5RXhwcmVzc2lvCiAgICAgZGVmYXVsdDoKICAgICAgICAgYnJlYWs7CiAgICAgfQot
ICAgIEZBSUwoIkV4cGVjdGVkIG9uZSBvZiAnKCcsIGEgbGl0ZXJhbCwgb3IgYW4gaWRlbnRpZmll
ciIpOworICAgIEZBSUwoIkV4cGVjdGVkIG9uZSBvZiAnKCcsIGEgbGl0ZXJhbCwgb3IgYW4gaWRl
bnRpZmllciJfcyk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIExleGVyPgpAQCAtNzM0LDcgKzcz
NCw3IEBAIEV4cGVjdGVkPFVuaXF1ZVJlZjxBU1Q6OkV4cHJlc3Npb24+LCBFcnJvcj4gUGFyc2Vy
PExleGVyPjo6cGFyc2VDb3JlTEhTRXhwcmVzc2lvCiAgICAgICAgIGJyZWFrOwogICAgIH0KIAot
ICAgIEZBSUwoIlRyaWVkIHRvIHBhcnNlIHRoZSBsZWZ0LWhhbmQgc2lkZSBvZiBhbiBhc3NpZ25t
ZW50IGFuZCBmYWlsZWQiKTsKKyAgICBGQUlMKCJUcmllZCB0byBwYXJzZSB0aGUgbGVmdC1oYW5k
IHNpZGUgb2YgYW4gYXNzaWdubWVudCBhbmQgZmFpbGVkIl9zKTsKIH0KIAogdGVtcGxhdGU8dHlw
ZW5hbWUgTGV4ZXI+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViR1BVL1dHU0wvVG9rZW4uY3BwIGIv
U291cmNlL1dlYkdQVS9XR1NML1Rva2VuLmNwcAppbmRleCBkYjNjMGE0M2UxMDM3MmViOTk0MWZj
ZjE2ZDhiMjBlZGU3ZjA4OTEyLi42NzMxYWEyMmMxMmEzMzAzNjhjZmIxYjc2MGM5NjZlZTEwZjFh
YzEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViR1BVL1dHU0wvVG9rZW4uY3BwCisrKyBiL1NvdXJj
ZS9XZWJHUFUvV0dTTC9Ub2tlbi5jcHAKQEAgLTMyLDg5ICszMiw4OSBAQCBTdHJpbmcgdG9TdHJp
bmcoVG9rZW5UeXBlIHR5cGUpCiB7CiAgICAgc3dpdGNoICh0eXBlKSB7CiAgICAgY2FzZSBUb2tl
blR5cGU6OkludmFsaWQ6Ci0gICAgICAgIHJldHVybiAiSW52YWxpZCI7CisgICAgICAgIHJldHVy
biAiSW52YWxpZCJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6RW5kT2ZGaWxlOgotICAgICAgICBy
ZXR1cm4gIkVPRiI7CisgICAgICAgIHJldHVybiAiRU9GIl9zOwogICAgIGNhc2UgVG9rZW5UeXBl
OjpJbnRlZ2VyTGl0ZXJhbDoKLSAgICAgICAgcmV0dXJuICJJbnRlZ2VyTGl0ZXJhbCI7CisgICAg
ICAgIHJldHVybiAiSW50ZWdlckxpdGVyYWwiX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6OkludGVn
ZXJMaXRlcmFsU2lnbmVkOgotICAgICAgICByZXR1cm4gIkludGVnZXJMaXRlcmFsU2lnbmVkIjsK
KyAgICAgICAgcmV0dXJuICJJbnRlZ2VyTGl0ZXJhbFNpZ25lZCJfczsKICAgICBjYXNlIFRva2Vu
VHlwZTo6SW50ZWdlckxpdGVyYWxVbnNpZ25lZDoKLSAgICAgICAgcmV0dXJuICJJbnRlZ2VyTGl0
ZXJhbFVuc2lnbmVkIjsKKyAgICAgICAgcmV0dXJuICJJbnRlZ2VyTGl0ZXJhbFVuc2lnbmVkIl9z
OwogICAgIGNhc2UgVG9rZW5UeXBlOjpEZWNpbWFsRmxvYXRMaXRlcmFsOgotICAgICAgICByZXR1
cm4gIkRlY2ltYWxGbG9hdExpdGVyYWwiOworICAgICAgICByZXR1cm4gIkRlY2ltYWxGbG9hdExp
dGVyYWwiX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6OkhleEZsb2F0TGl0ZXJhbDoKLSAgICAgICAg
cmV0dXJuICJIZXhGbG9hdExpdGVyYWwiOworICAgICAgICByZXR1cm4gIkhleEZsb2F0TGl0ZXJh
bCJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6SWRlbnRpZmllcjoKLSAgICAgICAgcmV0dXJuICJJ
ZGVudGlmaWVyIjsKKyAgICAgICAgcmV0dXJuICJJZGVudGlmaWVyIl9zOwogICAgIGNhc2UgVG9r
ZW5UeXBlOjpSZXNlcnZlZFdvcmQ6Ci0gICAgICAgIHJldHVybiAiUmVzZXJ2ZWRXb3JkIjsKKyAg
ICAgICAgcmV0dXJuICJSZXNlcnZlZFdvcmQiX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6OktleXdv
cmRTdHJ1Y3Q6Ci0gICAgICAgIHJldHVybiAic3RydWN0IjsKKyAgICAgICAgcmV0dXJuICJzdHJ1
Y3QiX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6OktleXdvcmRGbjoKLSAgICAgICAgcmV0dXJuICJm
biI7CisgICAgICAgIHJldHVybiAiZm4iX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6OktleXdvcmRG
dW5jdGlvbjoKLSAgICAgICAgcmV0dXJuICJmdW5jdGlvbiI7CisgICAgICAgIHJldHVybiAiZnVu
Y3Rpb24iX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6OktleXdvcmRQcml2YXRlOgotICAgICAgICBy
ZXR1cm4gInByaXZhdGUiOworICAgICAgICByZXR1cm4gInByaXZhdGUiX3M7CiAgICAgY2FzZSBU
b2tlblR5cGU6OktleXdvcmRSZWFkOgotICAgICAgICByZXR1cm4gInJlYWQiOworICAgICAgICBy
ZXR1cm4gInJlYWQiX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6OktleXdvcmRSZWFkV3JpdGU6Ci0g
ICAgICAgIHJldHVybiAicmVhZF93cml0ZSI7CisgICAgICAgIHJldHVybiAicmVhZF93cml0ZSJf
czsKICAgICBjYXNlIFRva2VuVHlwZTo6S2V5d29yZFJldHVybjoKLSAgICAgICAgcmV0dXJuICJy
ZXR1cm4iOworICAgICAgICByZXR1cm4gInJldHVybiJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6
S2V5d29yZFN0b3JhZ2U6Ci0gICAgICAgIHJldHVybiAic3RvcmFnZSI7CisgICAgICAgIHJldHVy
biAic3RvcmFnZSJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6S2V5d29yZFVuaWZvcm06Ci0gICAg
ICAgIHJldHVybiAidW5pZm9ybSI7CisgICAgICAgIHJldHVybiAidW5pZm9ybSJfczsKICAgICBj
YXNlIFRva2VuVHlwZTo6S2V5d29yZFZhcjoKLSAgICAgICAgcmV0dXJuICJ2YXIiOworICAgICAg
ICByZXR1cm4gInZhciJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6S2V5d29yZFdvcmtncm91cDoK
LSAgICAgICAgcmV0dXJuICJ3b3JrZ3JvdXAiOworICAgICAgICByZXR1cm4gIndvcmtncm91cCJf
czsKICAgICBjYXNlIFRva2VuVHlwZTo6S2V5d29yZFdyaXRlOgotICAgICAgICByZXR1cm4gIndy
aXRlIjsKKyAgICAgICAgcmV0dXJuICJ3cml0ZSJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6S2V5
d29yZEkzMjoKLSAgICAgICAgcmV0dXJuICJpMzIiOworICAgICAgICByZXR1cm4gImkzMiJfczsK
ICAgICBjYXNlIFRva2VuVHlwZTo6S2V5d29yZFUzMjoKLSAgICAgICAgcmV0dXJuICJ1MzIiOwor
ICAgICAgICByZXR1cm4gInUzMiJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6S2V5d29yZEYzMjoK
LSAgICAgICAgcmV0dXJuICJmMzIiOworICAgICAgICByZXR1cm4gImYzMiJfczsKICAgICBjYXNl
IFRva2VuVHlwZTo6S2V5d29yZEJvb2w6Ci0gICAgICAgIHJldHVybiAiYm9vbCI7CisgICAgICAg
IHJldHVybiAiYm9vbCJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6TGl0ZXJhbFRydWU6Ci0gICAg
ICAgIHJldHVybiAidHJ1ZSI7CisgICAgICAgIHJldHVybiAidHJ1ZSJfczsKICAgICBjYXNlIFRv
a2VuVHlwZTo6TGl0ZXJhbEZhbHNlOgotICAgICAgICByZXR1cm4gImZhbHNlIjsKKyAgICAgICAg
cmV0dXJuICJmYWxzZSJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6QXJyb3c6Ci0gICAgICAgIHJl
dHVybiAiLT4iOworICAgICAgICByZXR1cm4gIi0+Il9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpB
dHRyaWJ1dGU6Ci0gICAgICAgIHJldHVybiAiQCI7CisgICAgICAgIHJldHVybiAiQCJfczsKICAg
ICBjYXNlIFRva2VuVHlwZTo6QnJhY2tldExlZnQ6Ci0gICAgICAgIHJldHVybiAiWyI7CisgICAg
ICAgIHJldHVybiAiWyJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6QnJhY2tldFJpZ2h0OgotICAg
ICAgICByZXR1cm4gIl0iOworICAgICAgICByZXR1cm4gIl0iX3M7CiAgICAgY2FzZSBUb2tlblR5
cGU6OkJyYWNlTGVmdDoKLSAgICAgICAgcmV0dXJuICJ7IjsKKyAgICAgICAgcmV0dXJuICJ7Il9z
OwogICAgIGNhc2UgVG9rZW5UeXBlOjpCcmFjZVJpZ2h0OgotICAgICAgICByZXR1cm4gIn0iOwor
ICAgICAgICByZXR1cm4gIn0iX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6OkNvbG9uOgotICAgICAg
ICByZXR1cm4gIjoiOworICAgICAgICByZXR1cm4gIjoiX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6
OkNvbW1hOgotICAgICAgICByZXR1cm4gIiwiOworICAgICAgICByZXR1cm4gIiwiX3M7CiAgICAg
Y2FzZSBUb2tlblR5cGU6OkVxdWFsOgotICAgICAgICByZXR1cm4gIj0iOworICAgICAgICByZXR1
cm4gIj0iX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6OkdUOgotICAgICAgICByZXR1cm4gIj4iOwor
ICAgICAgICByZXR1cm4gIj4iX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6OkxUOgotICAgICAgICBy
ZXR1cm4gIjwiOworICAgICAgICByZXR1cm4gIjwiX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6OlBl
cmlvZDoKLSAgICAgICAgcmV0dXJuICIuIjsKKyAgICAgICAgcmV0dXJuICIuIl9zOwogICAgIGNh
c2UgVG9rZW5UeXBlOjpQYXJlbkxlZnQ6Ci0gICAgICAgIHJldHVybiAiKCI7CisgICAgICAgIHJl
dHVybiAiKCJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6UGFyZW5SaWdodDoKLSAgICAgICAgcmV0
dXJuICIpIjsKKyAgICAgICAgcmV0dXJuICIpIl9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpTZW1p
Y29sb246Ci0gICAgICAgIHJldHVybiAiOyI7CisgICAgICAgIHJldHVybiAiOyJfczsKICAgICB9
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL0FkYXB0ZXIubW0gYi9Tb3Vy
Y2UvV2ViR1BVL1dlYkdQVS9BZGFwdGVyLm1tCmluZGV4IDFiYmFkNjFhNmNlN2UyOTc1NmRlMTU2
MWFhNDYyZGU1ZDFhNjgyNjguLjYwMGQxZDZlN2JmMGY3N2JkZDJmNTE4ZmY5NDM1MDc4MTI1MmZh
MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL0FkYXB0ZXIubW0KKysrIGIvU291
cmNlL1dlYkdQVS9XZWJHUFUvQWRhcHRlci5tbQpAQCAtMTIzLDcgKzEyMyw3IEBAIHZvaWQgQWRh
cHRlcjo6cmVxdWVzdERldmljZShjb25zdCBXR1BVRGV2aWNlRGVzY3JpcHRvciYgZGVzY3JpcHRv
ciwgQ29tcGxldGlvbkhhCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBjYWxsYmFjayhX
R1BVUmVxdWVzdERldmljZVN0YXR1c19TdWNjZXNzLCBEZXZpY2U6OmNyZWF0ZShtX2RldmljZSwg
ZGVzY3JpcHRvci5sYWJlbCwgbV9pbnN0YW5jZSksIHsgfSk7CisgICAgY2FsbGJhY2soV0dQVVJl
cXVlc3REZXZpY2VTdGF0dXNfU3VjY2VzcywgRGV2aWNlOjpjcmVhdGUobV9kZXZpY2UsIFN0cmlu
ZyB7IGRlc2NyaXB0b3IubGFiZWwgfSwgbV9pbnN0YW5jZSksIHsgfSk7CiB9CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkdQVS9XZWJHUFUvQnVmZmVyLm1t
IGIvU291cmNlL1dlYkdQVS9XZWJHUFUvQnVmZmVyLm1tCmluZGV4IGZiYjJmNDRkZjllNTM2Y2U1
Y2ZlZGUxMWY3ODVkYzhjZGExZmJkYzUuLjNiOTIyMDAzMThkYzUxN2QyYTBlYjZlYzM5OWVhNTU0
MWM2YTUxNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL0J1ZmZlci5tbQorKysg
Yi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9CdWZmZXIubW0KQEAgLTI5MSw3ICsyOTEsNyBAQCB2b2lk
IEJ1ZmZlcjo6bWFwQXN5bmMoV0dQVU1hcE1vZGVGbGFncyBtb2RlLCBzaXplX3Qgb2Zmc2V0LCBz
aXplX3Qgc2l6ZSwgQ29tcGxldAogICAgIC8vICJJZiBhbnkgb2YgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zIGFyZSB1bnNhdGlzZmllZDoiCiAgICAgaWYgKCF2YWxpZGF0ZU1hcEFzeW5jKG1vZGUs
IG9mZnNldCwgcmFuZ2VTaXplKSkgewogICAgICAgICAvLyAiUmVjb3JkIGEgdmFsaWRhdGlvbiBl
cnJvciBvbiB0aGUgY3VycmVudCBzY29wZS4iCi0gICAgICAgIG1fZGV2aWNlLT5nZW5lcmF0ZUFW
YWxpZGF0aW9uRXJyb3IoIlZhbGlkYXRpb24gZmFpbHVyZS4iKTsKKyAgICAgICAgbV9kZXZpY2Ut
PmdlbmVyYXRlQVZhbGlkYXRpb25FcnJvcigiVmFsaWRhdGlvbiBmYWlsdXJlLiJfcyk7CiAKICAg
ICAgICAgLy8gIlJldHVybiBhIHByb21pc2UgcmVqZWN0ZWQgd2l0aCBhbiBPcGVyYXRpb25FcnJv
ciBvbiB0aGUgRGV2aWNlIHRpbWVsaW5lLiIKICAgICAgICAgY2FsbGJhY2soV0dQVUJ1ZmZlck1h
cEFzeW5jU3RhdHVzX0Vycm9yKTsKQEAgLTM2NSw3ICszNjUsNyBAQCB2b2lkIEJ1ZmZlcjo6dW5t
YXAoKQogICAgIC8vICJJZiBhbnkgb2YgdGhlIGZvbGxvd2luZyByZXF1aXJlbWVudHMgYXJlIHVu
bWV0IgogICAgIGlmICghdmFsaWRhdGVVbm1hcCgpKSB7CiAgICAgICAgIC8vICJnZW5lcmF0ZSBh
IHZhbGlkYXRpb24gZXJyb3IgYW5kIHN0b3AuIgotICAgICAgICBtX2RldmljZS0+Z2VuZXJhdGVB
VmFsaWRhdGlvbkVycm9yKCJWYWxpZGF0aW9uIGZhaWx1cmUuIik7CisgICAgICAgIG1fZGV2aWNl
LT5nZW5lcmF0ZUFWYWxpZGF0aW9uRXJyb3IoIlZhbGlkYXRpb24gZmFpbHVyZS4iX3MpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9D
b21tYW5kRW5jb2Rlci5tbSBiL1NvdXJjZS9XZWJHUFUvV2ViR1BVL0NvbW1hbmRFbmNvZGVyLm1t
CmluZGV4IGFlNGJhYzYwODViNGM1ZjJlZTRjZDljN2MzYTNlMGIwM2Q3NmQ3OTIuLjk2OThjOGEw
OTlmZmQ2YzA5Mzc4NDM5NGE4MTJjMTgyZjBlYjdkNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJH
UFUvV2ViR1BVL0NvbW1hbmRFbmNvZGVyLm1tCisrKyBiL1NvdXJjZS9XZWJHUFUvV2ViR1BVL0Nv
bW1hbmRFbmNvZGVyLm1tCkBAIC0xNDksNyArMTQ5LDcgQEAgdm9pZCBDb21tYW5kRW5jb2Rlcjo6
Y29weUJ1ZmZlclRvQnVmZmVyKGNvbnN0IEJ1ZmZlciYgc291cmNlLCB1aW50NjRfdCBzb3VyY2VP
ZmYKICAgICAvLyAiSWYgYW55IG9mIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgdW5zYXRp
c2ZpZWQKICAgICBpZiAoIXZhbGlkYXRlQ29weUJ1ZmZlclRvQnVmZmVyKHNvdXJjZSwgc291cmNl
T2Zmc2V0LCBkZXN0aW5hdGlvbiwgZGVzdGluYXRpb25PZmZzZXQsIHNpemUpKSB7CiAgICAgICAg
IC8vICJnZW5lcmF0ZSBhIHZhbGlkYXRpb24gZXJyb3IgYW5kIHN0b3AuIgotICAgICAgICBtX2Rl
dmljZS0+Z2VuZXJhdGVBVmFsaWRhdGlvbkVycm9yKCJWYWxpZGF0aW9uIGZhaWx1cmUuIik7Cisg
ICAgICAgIG1fZGV2aWNlLT5nZW5lcmF0ZUFWYWxpZGF0aW9uRXJyb3IoIlZhbGlkYXRpb24gZmFp
bHVyZS4iX3MpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0yMjAsNyArMjIwLDcgQEAg
dm9pZCBDb21tYW5kRW5jb2Rlcjo6Y2xlYXJCdWZmZXIoY29uc3QgQnVmZmVyJiBidWZmZXIsIHVp
bnQ2NF90IG9mZnNldCwgdWludDY0X3QKICAgICAvLyAiSWYgYW55IG9mIHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucyBhcmUgdW5zYXRpc2ZpZWQiCiAgICAgaWYgKCF2YWxpZGF0ZUNsZWFyQnVmZmVy
KGJ1ZmZlciwgb2Zmc2V0LCBzaXplKSkgewogICAgICAgICAvLyAiZ2VuZXJhdGUgYSB2YWxpZGF0
aW9uIGVycm9yIGFuZCBzdG9wLiIKLSAgICAgICAgbV9kZXZpY2UtPmdlbmVyYXRlQVZhbGlkYXRp
b25FcnJvcigiVmFsaWRhdGlvbiBmYWlsdXJlLiIpOworICAgICAgICBtX2RldmljZS0+Z2VuZXJh
dGVBVmFsaWRhdGlvbkVycm9yKCJWYWxpZGF0aW9uIGZhaWx1cmUuIl9zKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIApAQCAtMjYyLDcgKzI2Miw3IEBAIFJlZlB0cjxDb21tYW5kQnVmZmVyPiBD
b21tYW5kRW5jb2Rlcjo6ZmluaXNoKGNvbnN0IFdHUFVDb21tYW5kQnVmZmVyRGVzY3JpcHRvciYK
ICAgICAvLyAiSWYgdmFsaWRhdGlvblN1Y2NlZWRlZCBpcyBmYWxzZSwgdGhlbjoiCiAgICAgaWYg
KHZhbGlkYXRpb25GYWlsZWQpIHsKICAgICAgICAgLy8gIkdlbmVyYXRlIGEgdmFsaWRhdGlvbiBl
cnJvci4iCi0gICAgICAgIG1fZGV2aWNlLT5nZW5lcmF0ZUFWYWxpZGF0aW9uRXJyb3IoIlZhbGlk
YXRpb24gZmFpbHVyZS4iKTsKKyAgICAgICAgbV9kZXZpY2UtPmdlbmVyYXRlQVZhbGlkYXRpb25F
cnJvcigiVmFsaWRhdGlvbiBmYWlsdXJlLiJfcyk7CiAKICAgICAgICAgLy8gRklYTUU6ICJSZXR1
cm4gYSBuZXcgaW52YWxpZCBHUFVDb21tYW5kQnVmZmVyLiIKICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9Db21wdXRlUGlwZWxpbmUubW0g
Yi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9Db21wdXRlUGlwZWxpbmUubW0KaW5kZXggZWQ5YjhjZmY2
NDE0MzAxMmU3N2IzZTIxZmM1ZTljYWIwNzU5MzY0Yy4uZTRhZDc3YWY5N2EzYzEzODkyMWI0N2Qw
MjY1OThiOGJjNzZkYTRhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkdQVS9XZWJHUFUvQ29tcHV0
ZVBpcGVsaW5lLm1tCisrKyBiL1NvdXJjZS9XZWJHUFUvV2ViR1BVL0NvbXB1dGVQaXBlbGluZS5t
bQpAQCAtNzEsNyArNzEsNyBAQCBzdGF0aWMgTVRMRnVuY3Rpb25Db25zdGFudFZhbHVlcyAqY3Jl
YXRlQ29uc3RhbnRWYWx1ZXModWludDMyX3QgY29uc3RhbnRDb3VudCwgYwogICAgIGF1dG8gY29u
c3RhbnRWYWx1ZXMgPSBbTVRMRnVuY3Rpb25Db25zdGFudFZhbHVlcyBuZXddOwogICAgIGZvciAo
dWludDMyX3QgaSA9IDA7IGkgPCBjb25zdGFudENvdW50OyArK2kpIHsKICAgICAgICAgY29uc3Qg
YXV0byYgZW50cnkgPSBjb25zdGFudHNbaV07Ci0gICAgICAgIGF1dG8gbmFtZUl0ZXJhdG9yID0g
ZW50cnlQb2ludEluZm9ybWF0aW9uLnNwZWNpYWxpemF0aW9uQ29uc3RhbnRJbmRpY2VzLmZpbmQo
ZW50cnkua2V5KTsKKyAgICAgICAgYXV0byBuYW1lSXRlcmF0b3IgPSBlbnRyeVBvaW50SW5mb3Jt
YXRpb24uc3BlY2lhbGl6YXRpb25Db25zdGFudEluZGljZXMuZmluZChTdHJpbmcgeyBlbnRyeS5r
ZXkgfSk7CiAgICAgICAgIGlmIChuYW1lSXRlcmF0b3IgPT0gZW50cnlQb2ludEluZm9ybWF0aW9u
LnNwZWNpYWxpemF0aW9uQ29uc3RhbnRJbmRpY2VzLmVuZCgpKQogICAgICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAgICAgICAgIGF1dG8gc3BlY2lhbGl6YXRpb25Db25zdGFudEluZGV4ID0gbmFt
ZUl0ZXJhdG9yLT52YWx1ZTsKQEAgLTE1MCw3ICsxNTAsNyBAQCBSZWZQdHI8Q29tcHV0ZVBpcGVs
aW5lPiBEZXZpY2U6OmNyZWF0ZUNvbXB1dGVQaXBlbGluZShjb25zdCBXR1BVQ29tcHV0ZVBpcGVs
aW5lRAogICAgIGNvbnN0IFBpcGVsaW5lTGF5b3V0JiBwaXBlbGluZUxheW91dCA9IFdlYkdQVTo6
ZnJvbUFQSShkZXNjcmlwdG9yLmxheW91dCk7CiAgICAgYXV0byBsYWJlbCA9IGZyb21BUEkoZGVz
Y3JpcHRvci5sYWJlbCk7CiAKLSAgICBhdXRvIGxpYnJhcnlDcmVhdGlvblJlc3VsdCA9IGNyZWF0
ZUxpYnJhcnkobV9kZXZpY2UsIHNoYWRlck1vZHVsZSwgcGlwZWxpbmVMYXlvdXQsIGRlc2NyaXB0
b3IuY29tcHV0ZS5lbnRyeVBvaW50LCBsYWJlbCk7CisgICAgYXV0byBsaWJyYXJ5Q3JlYXRpb25S
ZXN1bHQgPSBjcmVhdGVMaWJyYXJ5KG1fZGV2aWNlLCBzaGFkZXJNb2R1bGUsIHBpcGVsaW5lTGF5
b3V0LCBTdHJpbmcgeyBkZXNjcmlwdG9yLmNvbXB1dGUuZW50cnlQb2ludCB9LCBsYWJlbCk7CiAg
ICAgaWYgKCFsaWJyYXJ5Q3JlYXRpb25SZXN1bHQpCiAgICAgICAgIHJldHVybiBudWxscHRyOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9RdWV1ZS5tbSBiL1NvdXJjZS9XZWJH
UFUvV2ViR1BVL1F1ZXVlLm1tCmluZGV4IGI3YmQ1N2NmNWE0MjZlYzI2ZTZmOWIxZTI5ZDk5ZmRl
YWRmNzA1YzQuLjBkMWIzOWE4NGY2NDIzNTc5YTllYzAzYjVhYTI0MWJkZTYzMWQ2NjAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1F1ZXVlLm1tCisrKyBiL1NvdXJjZS9XZWJHUFUv
V2ViR1BVL1F1ZXVlLm1tCkBAIC0xMzEsNyArMTMxLDcgQEAgdm9pZCBRdWV1ZTo6c3VibWl0KFZl
Y3RvcjxzdGQ6OnJlZmVyZW5jZV93cmFwcGVyPGNvbnN0IENvbW1hbmRCdWZmZXI+PiYmIGNvbW1h
bmQKICAgICAvLyAiSWYgYW55IG9mIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgdW5zYXRp
c2ZpZWQiCiAgICAgaWYgKCF2YWxpZGF0ZVN1Ym1pdCgpKSB7CiAgICAgICAgIC8vICJnZW5lcmF0
ZSBhIHZhbGlkYXRpb24gZXJyb3IgYW5kIHN0b3AuIgotICAgICAgICBtX2RldmljZS5nZW5lcmF0
ZUFWYWxpZGF0aW9uRXJyb3IoIlZhbGlkYXRpb24gZmFpbHVyZS4iKTsKKyAgICAgICAgbV9kZXZp
Y2UuZ2VuZXJhdGVBVmFsaWRhdGlvbkVycm9yKCJWYWxpZGF0aW9uIGZhaWx1cmUuIl9zKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkdQVS9XZWJHUFUv
U2FtcGxlci5tbSBiL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1NhbXBsZXIubW0KaW5kZXggMmY3Zjcy
N2YxN2Q5NzNkMGE0OWNlMzRlZWZhYzcxMzg1NzMzNzZiNi4uODI3MzkwNDk5NGNiNzA5ZjA5NGUy
NDU4Nzk5YWNlYzY3NzU4OWI3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkdQVS9XZWJHUFUvU2Ft
cGxlci5tbQorKysgYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9TYW1wbGVyLm1tCkBAIC0xMzYsNyAr
MTM2LDcgQEAgUmVmUHRyPFNhbXBsZXI+IERldmljZTo6Y3JlYXRlU2FtcGxlcihjb25zdCBXR1BV
U2FtcGxlckRlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCiAgICAgLy8gIklmIHZhbGlkYXRpbmcgR1BV
U2FtcGxlckRlc2NyaXB0b3IodGhpcywgZGVzY3JpcHRvcikgcmV0dXJucyBmYWxzZToiCiAgICAg
aWYgKCF2YWxpZGF0ZUNyZWF0ZVNhbXBsZXIoKnRoaXMsIGRlc2NyaXB0b3IpKSB7CiAgICAgICAg
IC8vICJHZW5lcmF0ZSBhIHZhbGlkYXRpb24gZXJyb3IuIgotICAgICAgICBnZW5lcmF0ZUFWYWxp
ZGF0aW9uRXJyb3IoIlZhbGlkYXRpb24gZmFpbHVyZS4iKTsKKyAgICAgICAgZ2VuZXJhdGVBVmFs
aWRhdGlvbkVycm9yKCJWYWxpZGF0aW9uIGZhaWx1cmUuIl9zKTsKIAogICAgICAgICAvLyAiQ3Jl
YXRlIGEgbmV3IGludmFsaWQgR1BVU2FtcGxlciBhbmQgcmV0dXJuIHRoZSByZXN1bHQuIgogICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1No
YWRlck1vZHVsZS5tbSBiL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1NoYWRlck1vZHVsZS5tbQppbmRl
eCBlMDA3NTVjZmI1NWI0YzY2YTg5MjdkZDNlNWUwMmVhOTEwMTcwYzQ0Li42MDVlMzcyMzM2MTA1
YWUwODcxMzdkYjYxNjQ2OTgxMTJiY2ZmODdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViR1BVL1dl
YkdQVS9TaGFkZXJNb2R1bGUubW0KKysrIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvU2hhZGVyTW9k
dWxlLm1tCkBAIC04OCw5ICs4OCwxMCBAQCBzdGF0aWMgUmVmUHRyPFNoYWRlck1vZHVsZT4gZWFy
bHlDb21waWxlU2hhZGVyTW9kdWxlKGlkPE1UTERldmljZT4gZGV2aWNlLCBzdGQ6OgogICAgICAg
ICBjb25zdCBhdXRvJiBoaW50ID0gc3VwcGxpZWRIaW50cy5oaW50c1tpXTsKICAgICAgICAgaWYg
KGhpbnQubmV4dEluQ2hhaW4pCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICAgICAg
aGludHMuYWRkKGhpbnQua2V5LCBXZWJHUFU6OmZyb21BUEkoaGludC5oaW50LmxheW91dCkpOwor
ICAgICAgICBTdHJpbmcgaGludEtleSB7IGhpbnQua2V5IH07CisgICAgICAgIGhpbnRzLmFkZCho
aW50S2V5LCBXZWJHUFU6OmZyb21BUEkoaGludC5oaW50LmxheW91dCkpOwogICAgICAgICBhdXRv
IGNvbnZlcnRlZFBpcGVsaW5lTGF5b3V0ID0gU2hhZGVyTW9kdWxlOjpjb252ZXJ0UGlwZWxpbmVM
YXlvdXQoV2ViR1BVOjpmcm9tQVBJKGhpbnQuaGludC5sYXlvdXQpKTsKLSAgICAgICAgd2dzbEhp
bnRzLmFkZChoaW50LmtleSwgV1RGTW92ZShjb252ZXJ0ZWRQaXBlbGluZUxheW91dCkpOworICAg
ICAgICB3Z3NsSGludHMuYWRkKGhpbnRLZXksIFdURk1vdmUoY29udmVydGVkUGlwZWxpbmVMYXlv
dXQpKTsKICAgICB9CiAgICAgYXV0byBwcmVwYXJlUmVzdWx0ID0gV0dTTDo6cHJlcGFyZShzdGQ6
OmdldDxXR1NMOjpTdWNjZXNzZnVsQ2hlY2s+KGNoZWNrUmVzdWx0KS5hc3QsIHdnc2xIaW50cyk7
CiAgICAgYXV0byBsaWJyYXJ5ID0gU2hhZGVyTW9kdWxlOjpjcmVhdGVMaWJyYXJ5KGRldmljZSwg
cHJlcGFyZVJlc3VsdC5tc2wsIFdURk1vdmUobGFiZWwpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KaW5kZXggNDdlOWRjYTUwMGIxMDY0MDFlZGNiZGZj
YmVhODIwYjM1YmU5NjU0Mi4uZmYzOGUxZjc2ODM3MDYzMWZlNGFlYjExZDAwZDBhYzY3MGE5YTM3
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwu
bW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KQEAg
LTQ0NzgsNyArNDQ3OCw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OnNldFByb21pc2VkRGF0YUZvcklt
YWdlKFdlYkNvcmU6OkltYWdlKiBpbWFnZSwgTlNTdHJpbmcgKmZpbGVuCiAKICAgICBSZXRhaW5Q
dHI8TlNEYXRhPiBjdXN0b21EYXRhQnVmZmVyOwogICAgIGlmIChvcmlnaW5JZGVudGlmaWVyLmxl
bmd0aCkgewotICAgICAgICBbdHlwZXMgYWRkT2JqZWN0OkAoV2ViQ29yZTo6UGFzdGVib2FyZEN1
c3RvbURhdGE6OmNvY29hVHlwZSgpKV07CisgICAgICAgIFt0eXBlcyBhZGRPYmplY3Q6QChXZWJD
b3JlOjpQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkuY2hhcmFjdGVycygpKV07CiAg
ICAgICAgIFdlYkNvcmU6OlBhc3RlYm9hcmRDdXN0b21EYXRhIGN1c3RvbURhdGE7CiAgICAgICAg
IGN1c3RvbURhdGEuc2V0T3JpZ2luKG9yaWdpbklkZW50aWZpZXIpOwogICAgICAgICBjdXN0b21E
YXRhQnVmZmVyID0gY3VzdG9tRGF0YS5jcmVhdGVTaGFyZWRCdWZmZXIoKS0+Y3JlYXRlTlNEYXRh
KCk7CkBAIC00NDk3LDcgKzQ0OTcsNyBAQCBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19F
TkQKICAgICB9CiAKICAgICBpZiAoY3VzdG9tRGF0YUJ1ZmZlcikKLSAgICAgICAgW3Bhc3RlYm9h
cmQgc2V0RGF0YTpjdXN0b21EYXRhQnVmZmVyLmdldCgpIGZvclR5cGU6QChXZWJDb3JlOjpQYXN0
ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkpXTsKKyAgICAgICAgW3Bhc3RlYm9hcmQgc2V0
RGF0YTpjdXN0b21EYXRhQnVmZmVyLmdldCgpIGZvclR5cGU6QChXZWJDb3JlOjpQYXN0ZWJvYXJk
Q3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkuY2hhcmFjdGVycygpKV07CiAKICAgICBtX3Byb21pc2Vk
SW1hZ2UgPSBpbWFnZTsKIH0KQEAgLTQ2MjQsNyArNDYyNCw3IEBAIHZvaWQgV2ViVmlld0ltcGw6
OnJlcXVlc3RET01QYXN0ZUFjY2VzcyhXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc0NhdGVnb3J5IHBh
c3RlQWNjCiAgICAgQVNTRVJUKCFtX2RvbVBhc3RlUmVxdWVzdEhhbmRsZXIpOwogICAgIGhpZGVE
T01QYXN0ZU1lbnVXaXRoUmVzdWx0KFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzUmVzcG9uc2U6OkRl
bmllZEZvckdlc3R1cmUpOwogCi0gICAgTlNEYXRhICpkYXRhID0gW3Bhc3RlYm9hcmRGb3JBY2Nl
c3NDYXRlZ29yeShwYXN0ZUFjY2Vzc0NhdGVnb3J5KSBkYXRhRm9yVHlwZTpAKFdlYkNvcmU6OlBh
c3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKSldOworICAgIE5TRGF0YSAqZGF0YSA9IFtw
YXN0ZWJvYXJkRm9yQWNjZXNzQ2F0ZWdvcnkocGFzdGVBY2Nlc3NDYXRlZ29yeSkgZGF0YUZvclR5
cGU6QChXZWJDb3JlOjpQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkuY2hhcmFjdGVy
cygpKV07CiAgICAgYXV0byBidWZmZXIgPSBXZWJDb3JlOjpTaGFyZWRCdWZmZXI6OmNyZWF0ZShk
YXRhKTsKICAgICBpZiAoV2ViQ29yZTo6UGFzdGVib2FyZEN1c3RvbURhdGE6OmZyb21TaGFyZWRC
dWZmZXIoYnVmZmVyLmdldCgpKS5vcmlnaW4oKSA9PSBvcmlnaW5JZGVudGlmaWVyKSB7CiAgICAg
ICAgIG1fcGFnZS0+Z3JhbnRBY2Nlc3NUb0N1cnJlbnRQYXN0ZWJvYXJkRGF0YShwYXN0ZWJvYXJk
TmFtZUZvckFjY2Vzc0NhdGVnb3J5KHBhc3RlQWNjZXNzQ2F0ZWdvcnkpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL0xvY2FsQXV0
aGVudGljYXRvci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9u
L0NvY29hL0xvY2FsQXV0aGVudGljYXRvci5tbQppbmRleCBiZWU2YjkyMzgyY2FhZjNiNGY5ZjBl
N2NlODJjMDFhNzY3MzMyODJjLi4yYTA1Y2Y0MDNkZWZjM2I0NTA0ODkxOGE3ZTQ0ZDA5MDM5Yjg0
ZjA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlv
bi9Db2NvYS9Mb2NhbEF1dGhlbnRpY2F0b3IubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvTG9jYWxBdXRoZW50aWNhdG9yLm1tCkBAIC00NDQs
NyArNDQ0LDcgQEAgdm9pZCBMb2NhbEF1dGhlbnRpY2F0b3I6OmNvbnRpbnVlTWFrZUNyZWRlbnRp
YWxBZnRlclVzZXJWZXJpZmljYXRpb24oU2VjQWNjZXNzQ28KICAgICAgICAgZGVsZXRlRHVwbGlj
YXRlQ3JlZGVudGlhbCgpOwogCiAgICAgICAgIGF1dG8gYXV0aERhdGEgPSBidWlsZEF1dGhEYXRh
KGNyZWF0aW9uT3B0aW9ucy5ycC5pZCwgZmxhZ3MsIGNvdW50ZXIsIGJ1aWxkQXR0ZXN0ZWRDcmVk
ZW50aWFsRGF0YShWZWN0b3I8dWludDhfdD4oYWFndWlkTGVuZ3RoLCAwKSwgY3JlZGVudGlhbElk
LCBjb3NlUHVibGljS2V5KSk7Ci0gICAgICAgIGF1dG8gYXR0ZXN0YXRpb25PYmplY3QgPSBidWls
ZEF0dGVzdGF0aW9uT2JqZWN0KFdURk1vdmUoYXV0aERhdGEpLCAiIiwgeyB9LCBBdHRlc3RhdGlv
bkNvbnZleWFuY2VQcmVmZXJlbmNlOjpOb25lKTsKKyAgICAgICAgYXV0byBhdHRlc3RhdGlvbk9i
amVjdCA9IGJ1aWxkQXR0ZXN0YXRpb25PYmplY3QoV1RGTW92ZShhdXRoRGF0YSksIFN0cmluZyB7
IGVtcHR5U3RyaW5nKCkgfSwgeyB9LCBBdHRlc3RhdGlvbkNvbnZleWFuY2VQcmVmZXJlbmNlOjpO
b25lKTsKICAgICAgICAgcmVjZWl2ZVJlc3BvbmQoQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVz
cG9uc2U6OmNyZWF0ZShjcmVkZW50aWFsSWQsIGF0dGVzdGF0aW9uT2JqZWN0LCBBdXRoZW50aWNh
dG9yQXR0YWNobWVudDo6UGxhdGZvcm0pKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTQ3
MSw3ICs0NzEsNyBAQCB2b2lkIExvY2FsQXV0aGVudGljYXRvcjo6Y29udGludWVNYWtlQ3JlZGVu
dGlhbEFmdGVyQXR0ZXN0ZWQoVmVjdG9yPHVpbnQ4X3Q+JiYgYwogCiAgICAgaWYgKGVycm9yKSB7
CiAgICAgICAgIExPR19FUlJPUigiQ291bGRuJ3QgYXR0ZXN0OiAlcyIsIFN0cmluZyhlcnJvci5s
b2NhbGl6ZWREZXNjcmlwdGlvbikudXRmOCgpLmRhdGEoKSk7Ci0gICAgICAgIGF1dG8gYXR0ZXN0
YXRpb25PYmplY3QgPSBidWlsZEF0dGVzdGF0aW9uT2JqZWN0KFdURk1vdmUoYXV0aERhdGEpLCAi
IiwgeyB9LCBBdHRlc3RhdGlvbkNvbnZleWFuY2VQcmVmZXJlbmNlOjpOb25lKTsKKyAgICAgICAg
YXV0byBhdHRlc3RhdGlvbk9iamVjdCA9IGJ1aWxkQXR0ZXN0YXRpb25PYmplY3QoV1RGTW92ZShh
dXRoRGF0YSksIFN0cmluZyB7IGVtcHR5U3RyaW5nKCkgfSwgeyB9LCBBdHRlc3RhdGlvbkNvbnZl
eWFuY2VQcmVmZXJlbmNlOjpOb25lKTsKICAgICAgICAgcmVjZWl2ZVJlc3BvbmQoQXV0aGVudGlj
YXRvckF0dGVzdGF0aW9uUmVzcG9uc2U6OmNyZWF0ZShjcmVkZW50aWFsSWQsIGF0dGVzdGF0aW9u
T2JqZWN0LCBBdXRoZW50aWNhdG9yQXR0YWNobWVudDo6UGxhdGZvcm0pKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KQEAgLTQ4OCw3ICs0ODgsNyBAQCB2b2lkIExvY2FsQXV0aGVudGljYXRvcjo6
Y29udGludWVNYWtlQ3JlZGVudGlhbEFmdGVyQXR0ZXN0ZWQoVmVjdG9yPHVpbnQ4X3Q+JiYgYwog
ICAgICAgICAgICAgY2JvckFycmF5LmFwcGVuZChjYm9yOjpDQk9SVmFsdWUodmVjdG9yRnJvbU5T
RGF0YSgoTlNEYXRhICopYWRvcHRDRihTZWNDZXJ0aWZpY2F0ZUNvcHlEYXRhKChfX2JyaWRnZSBT
ZWNDZXJ0aWZpY2F0ZVJlZiljZXJ0aWZpY2F0ZXNbaV0pKS5nZXQoKSkpKTsKICAgICAgICAgYXR0
ZXN0YXRpb25TdGF0ZW1lbnRNYXBbY2Jvcjo6Q0JPUlZhbHVlKCJ4NWMiKV0gPSBjYm9yOjpDQk9S
VmFsdWUoV1RGTW92ZShjYm9yQXJyYXkpKTsKICAgICB9Ci0gICAgYXV0byBhdHRlc3RhdGlvbk9i
amVjdCA9IGJ1aWxkQXR0ZXN0YXRpb25PYmplY3QoV1RGTW92ZShhdXRoRGF0YSksICJhcHBsZSIs
IFdURk1vdmUoYXR0ZXN0YXRpb25TdGF0ZW1lbnRNYXApLCBjcmVhdGlvbk9wdGlvbnMuYXR0ZXN0
YXRpb24pOworICAgIGF1dG8gYXR0ZXN0YXRpb25PYmplY3QgPSBidWlsZEF0dGVzdGF0aW9uT2Jq
ZWN0KFdURk1vdmUoYXV0aERhdGEpLCAiYXBwbGUiX3MsIFdURk1vdmUoYXR0ZXN0YXRpb25TdGF0
ZW1lbnRNYXApLCBjcmVhdGlvbk9wdGlvbnMuYXR0ZXN0YXRpb24pOwogCiAgICAgZGVsZXRlRHVw
bGljYXRlQ3JlZGVudGlhbCgpOwogICAgIHJlY2VpdmVSZXNwb25kKEF1dGhlbnRpY2F0b3JBdHRl
c3RhdGlvblJlc3BvbnNlOjpjcmVhdGUoY3JlZGVudGlhbElkLCBhdHRlc3RhdGlvbk9iamVjdCwg
QXV0aGVudGljYXRvckF0dGFjaG1lbnQ6OlBsYXRmb3JtKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCBl
YjdjNjkxZjljOTkwZjg0NzVmMDkwMjc0ZDliNmVlMjAxYzM5MGIwLi45ZThiZjQ1YmFiNTEzYTUx
MjEwNDlkMDUzMTEyMmU0NTYzZjBhNmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KQEAgLTM5ODAsNyArMzk4
MCw3IEBAIC0gKEJPT0wpY2FuUGVyZm9ybUFjdGlvbkZvcldlYlZpZXc6KFNFTClhY3Rpb24gd2l0
aFNlbmRlcjooaWQpc2VuZGVyCiAgICAgICAgIGlmIChmb2N1c2VkRG9jdW1lbnRPcmlnaW4uaXNF
bXB0eSgpKQogICAgICAgICAgICAgcmV0dXJuIE5POwogCi0gICAgICAgIE5TQXJyYXkgKmFsbEN1
c3RvbVBhc3RlYm9hcmREYXRhID0gW3Bhc3RlYm9hcmQgZGF0YUZvclBhc3RlYm9hcmRUeXBlOkAo
V2ViQ29yZTo6UGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpKSBpbkl0ZW1TZXQ6aW5k
aWNlc107CisgICAgICAgIE5TQXJyYXkgKmFsbEN1c3RvbVBhc3RlYm9hcmREYXRhID0gW3Bhc3Rl
Ym9hcmQgZGF0YUZvclBhc3RlYm9hcmRUeXBlOkAoV2ViQ29yZTo6UGFzdGVib2FyZEN1c3RvbURh
dGE6OmNvY29hVHlwZSgpLmNoYXJhY3RlcnMoKSkgaW5JdGVtU2V0OmluZGljZXNdOwogICAgICAg
ICBmb3IgKE5TRGF0YSAqZGF0YSBpbiBhbGxDdXN0b21QYXN0ZWJvYXJkRGF0YSkgewogICAgICAg
ICAgICAgYXV0byBidWZmZXIgPSBXZWJDb3JlOjpTaGFyZWRCdWZmZXI6OmNyZWF0ZShkYXRhKTsK
ICAgICAgICAgICAgIGlmIChXZWJDb3JlOjpQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6ZnJvbVNoYXJl
ZEJ1ZmZlcihidWZmZXIuZ2V0KCkpLm9yaWdpbigpID09IGZvY3VzZWREb2N1bWVudE9yaWdpbikK
QEAgLTY5NDUsNyArNjk0NSw3IEBAIHN0YXRpYyBCT09MIGFsbFBhc3RlYm9hcmRJdGVtT3JpZ2lu
c01hdGNoT3JpZ2luKFVJUGFzdGVib2FyZCAqcGFzdGVib2FyZCwgY29uc3QKICAgICAgICAgcmV0
dXJuIE5POwogCiAgICAgYXV0byAqaW5kaWNlcyA9IFtOU0luZGV4U2V0IGluZGV4U2V0V2l0aElu
ZGV4ZXNJblJhbmdlOk5TTWFrZVJhbmdlKDAsIFtwYXN0ZWJvYXJkIG51bWJlck9mSXRlbXNdKV07
Ci0gICAgYXV0byAqYWxsQ3VzdG9tRGF0YSA9IFtwYXN0ZWJvYXJkIGRhdGFGb3JQYXN0ZWJvYXJk
VHlwZTpAKFdlYkNvcmU6OlBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKSkgaW5JdGVt
U2V0OmluZGljZXNdOworICAgIGF1dG8gKmFsbEN1c3RvbURhdGEgPSBbcGFzdGVib2FyZCBkYXRh
Rm9yUGFzdGVib2FyZFR5cGU6QChXZWJDb3JlOjpQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FU
eXBlKCkuY2hhcmFjdGVycygpKSBpbkl0ZW1TZXQ6aW5kaWNlc107CiAgICAgaWYgKCFhbGxDdXN0
b21EYXRhLmNvdW50KQogICAgICAgICByZXR1cm4gTk87CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViTlNQYXN0ZWJvYXJkRXh0cmFzLm1tIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvTWlzYy9XZWJOU1Bhc3RlYm9hcmRFeHRyYXMubW0KaW5kZXggZTViNDQ0
YmZhNWMyODcyODM4N2M3MjMzMjgyOTFhODIwM2QxYjI1NC4uM2U1MmYxYmJhY2RiNTFiOGVhNTQ3
N2M2YjBkOTliOTVjYmFkMGJjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMv
TWlzYy9XZWJOU1Bhc3RlYm9hcmRFeHRyYXMubW0KKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9t
YWMvTWlzYy9XZWJOU1Bhc3RlYm9hcmRFeHRyYXMubW0KQEAgLTI3Niw3ICsyNzYsNyBAQCAtIChp
ZClfd2ViX2RlY2xhcmVBbmRXcml0ZURyYWdJbWFnZUZvckVsZW1lbnQ6KERPTUVsZW1lbnQgKill
bGVtZW50CiAgICAgTlNTdHJpbmcgKm9yaWdpbklkZW50aWZpZXIgPSBjb3JlKGVsZW1lbnQpLT5k
b2N1bWVudCgpLm9yaWdpbklkZW50aWZpZXJGb3JQYXN0ZWJvYXJkKCk7CiAgICAgUmV0YWluUHRy
PE5TRGF0YT4gY3VzdG9tRGF0YUJ1ZmZlcjsKICAgICBpZiAob3JpZ2luSWRlbnRpZmllci5sZW5n
dGgpIHsKLSAgICAgICAgW3R5cGVzIGFkZE9iamVjdDpAKFBhc3RlYm9hcmRDdXN0b21EYXRhOjpj
b2NvYVR5cGUoKSldOworICAgICAgICBbdHlwZXMgYWRkT2JqZWN0OkAoUGFzdGVib2FyZEN1c3Rv
bURhdGE6OmNvY29hVHlwZSgpLmNoYXJhY3RlcnMoKSldOwogICAgICAgICBQYXN0ZWJvYXJkQ3Vz
dG9tRGF0YSBjdXN0b21EYXRhOwogICAgICAgICBjdXN0b21EYXRhLnNldE9yaWdpbihvcmlnaW5J
ZGVudGlmaWVyKTsKICAgICAgICAgY3VzdG9tRGF0YUJ1ZmZlciA9IGN1c3RvbURhdGEuY3JlYXRl
U2hhcmVkQnVmZmVyKCktPmNyZWF0ZU5TRGF0YSgpOwpAQCAtMzA1LDcgKzMwNSw3IEBAIC0gKGlk
KV93ZWJfZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlRm9yRWxlbWVudDooRE9NRWxlbWVudCAqKWVs
ZW1lbnQKIAogICAgIFtzZWxmIF93ZWJfd3JpdGVJbWFnZTpuaWwgZWxlbWVudDplbGVtZW50IFVS
TDpVUkwgdGl0bGU6dGl0bGUgYXJjaGl2ZTphcmNoaXZlIHR5cGVzOnR5cGVzLmdldCgpIHNvdXJj
ZTpzb3VyY2VdOwogICAgIGlmIChjdXN0b21EYXRhQnVmZmVyKQotICAgICAgICBbc2VsZiBzZXRE
YXRhOmN1c3RvbURhdGFCdWZmZXIuZ2V0KCkgZm9yVHlwZTpAKFBhc3RlYm9hcmRDdXN0b21EYXRh
Ojpjb2NvYVR5cGUoKSldOworICAgICAgICBbc2VsZiBzZXREYXRhOmN1c3RvbURhdGFCdWZmZXIu
Z2V0KCkgZm9yVHlwZTpAKFBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKS5jaGFyYWN0
ZXJzKCkpXTsKIAogICAgIFtzZWxmIHNldFByb3BlcnR5TGlzdDpAW2V4dGVuc2lvbl0gZm9yVHlw
ZTpsZWdhY3lGaWxlc1Byb21pc2VQYXN0ZWJvYXJkVHlwZSgpXTsKIApkaWZmIC0tZ2l0IGEvVG9v
bHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDE4ODE4MzdlNDRiY2UwMjczOGI3
Yzk4YTRmMzg0YTEyNjc5NjU5ZDkuLjhmMDVhOGI1ZTFmNWM4ZTRlMWJiMjgyY2EwOGYyNzRiN2Qx
ZjliY2MgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNyBAQAorMjAyMi0wMy0yNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgorCisgICAgICAgIFN0YXJ0IHByZXBhcmluZyBXZWJDb3JlIGZvciBtYWtpbmcgdGhlIFN0
cmluZyhjb25zdCBjaGFyKikgY29uc3RydWN0b3IgZXhwbGljaXQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODMzNgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0YXJ0IHByZXBhcmluZyBXZWJDb3JlIGZv
ciBtYWtpbmcgdGhlIFN0cmluZyhjb25zdCBjaGFyKikgY29uc3RydWN0b3IgZXhwbGljaXQuCisg
ICAgICAgIE1ha2luZyB0aGlzIGNvbnN0cnVjdG9yIGV4cGxpY2l0IGhlbHBzIGNhdGNoIGF0IGNv
bXBpbGUgdGltZSBjYXNlcyB3aGVyZSB0aGUgIiJfcworICAgICAgICBwcmVmaXggaXMgbWlzc2lu
ZyBvbiBTdHJpbmcgbGl0ZXJhbHMuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL21h
Yy9EcmFnQW5kRHJvcFRlc3RzTWFjLm1tOgorICAgICAgICAoVEVTVCk6CisKIDIwMjItMDMtMjQg
IENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCB1
cGRhdGUgb3V0ZGF0ZWQgY29tbWVudCBhZnRlciByMjkxNzg3LgpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvRHJhZ0FuZERyb3BUZXN0c01hYy5tbSBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvbWFjL0RyYWdBbmREcm9wVGVzdHNNYWMubW0KaW5kZXggNTIxOWM5
NGRkMzlkYjQ4OWZiM2E0NmExNGQ4YTkzNTEzZDI4NGVmYy4uODE4YjAwZjNiNWY2NDg4NzllMzUz
NTEzYzUzNDM5Zjc0ZWRiYWVlNCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9tYWMvRHJhZ0FuZERyb3BUZXN0c01hYy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL21hYy9EcmFnQW5kRHJvcFRlc3RzTWFjLm1tCkBAIC0xODEsNyArMTgxLDcgQEAgQUxMT1df
REVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgRVhQRUNUX0VRKGltYWdlRnJvbVVuaXF1
ZVBhc3RlYm9hcmQuVElGRlJlcHJlc2VudGF0aW9uLmxlbmd0aCwgaW1hZ2VGcm9tRHJhZ1Bhc3Rl
Ym9hcmQuVElGRlJlcHJlc2VudGF0aW9uLmxlbmd0aCk7CiAgICAgRVhQRUNUX1RSVUUoTlNFcXVh
bFNpemVzKGltYWdlRnJvbURyYWdQYXN0ZWJvYXJkLnNpemUsIGltYWdlRnJvbVVuaXF1ZVBhc3Rl
Ym9hcmQuc2l6ZSkpOwogICAgIEVYUEVDVF9GQUxTRShOU0VxdWFsU2l6ZXMoTlNaZXJvU2l6ZSwg
aW1hZ2VGcm9tVW5pcXVlUGFzdGVib2FyZC5zaXplKSk7Ci0gICAgRVhQRUNUX0dUKFtkcmFnUGFz
dGVib2FyZCBkYXRhRm9yVHlwZTpAKFdlYkNvcmU6OlBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2Nv
YVR5cGUoKSldLmxlbmd0aCwgMHUpOworICAgIEVYUEVDVF9HVChbZHJhZ1Bhc3RlYm9hcmQgZGF0
YUZvclR5cGU6QChXZWJDb3JlOjpQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkuY2hh
cmFjdGVycygpKV0ubGVuZ3RoLCAwdSk7CiB9CiAKIFRFU1QoRHJhZ0FuZERyb3BUZXN0cywgUHJv
dmlkZUltYWdlRGF0YUFzVHlwZUlkZW50aWZpZXJzKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455700</attachid>
            <date>2022-03-24 16:14:34 -0700</date>
            <delta_ts>2022-03-24 17:44:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238336-20220324161433.patch</filename>
            <type>text/plain</type>
            <size>433800</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxODE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBl
N2ViNDQ5Y2I1YmE5MTJjODBjZjViZTc4YmJkNmVlZjYxYTYzNWQ2Li5kZDFmYjM0MDk5M2FmZjBi
YjVlMDc0NzZlOWYwMmZjMDgxZWZjNWZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMiBAQAorMjAyMi0wMy0yNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFN0YXJ0IHByZXBhcmluZyBXZWJDb3JlIGZvciBtYWtpbmcgdGhlIFN0cmluZyhj
b25zdCBjaGFyKikgY29uc3RydWN0b3IgZXhwbGljaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODMzNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0YXJ0IHByZXBhcmluZyBXZWJDb3JlIGZvciBtYWtp
bmcgdGhlIFN0cmluZyhjb25zdCBjaGFyKikgY29uc3RydWN0b3IgZXhwbGljaXQuCisgICAgICAg
IE1ha2luZyB0aGlzIGNvbnN0cnVjdG9yIGV4cGxpY2l0IGhlbHBzIGNhdGNoIGF0IGNvbXBpbGUg
dGltZSBjYXNlcyB3aGVyZSB0aGUgIiJfcworICAgICAgICBwcmVmaXggaXMgbWlzc2luZyBvbiBT
dHJpbmcgbGl0ZXJhbHMuCisKKyAgICAgICAgKiBBUEkvSlNWYWx1ZS5tbToKKyAgICAgICAgKGNy
ZWF0ZVN0cnVjdEhhbmRsZXJNYXApOgorICAgICAgICAoaGFuZGVyRm9yU3RydWN0VGFnKToKKyAg
ICAgICAgKiBBUEkvSlNXcmFwcGVyTWFwLm1tOgorICAgICAgICAoYWxsb2NhdGVDb25zdHJ1Y3Rv
ckZvckN1c3RvbUNsYXNzKToKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckF1
ZGl0QWdlbnQuY3BwOgorICAgICAgICAoSW5zcGVjdG9yOjpJbnNwZWN0b3JBdWRpdEFnZW50Ojpy
dW4pOgorCiAyMDIyLTAzLTI0ICBZdXN1a2UgU3V6dWtpICA8eXN1enVraUBhcHBsZS5jb20+CiAK
ICAgICAgICAgW0pTQ10gSlNSZW1vdGVGdW5jdGlvbiB0aHVuayBzaG91bGQgbWF0ZXJpYWxpemUg
Y29kZS1wb2ludGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZyBiL1NvdXJjZS9X
VEYvQ2hhbmdlTG9nCmluZGV4IDliYzMwYjhlNmVjZDJkN2MzOWJjMjIwMDE1NzU5YmM0ODUyMWM3
OWQuLjc0ZGI0N2Y4NzdiY2Q4MzBjMzY3NGQ1MTJiZjFmMjNmZTkwNDllMjUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTcgQEAKKzIwMjItMDMtMjQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKwor
ICAgICAgICBTdGFydCBwcmVwYXJpbmcgV2ViQ29yZSBmb3IgbWFraW5nIHRoZSBTdHJpbmcoY29u
c3QgY2hhciopIGNvbnN0cnVjdG9yIGV4cGxpY2l0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzgzMzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBTdGFydCBwcmVwYXJpbmcgV2ViQ29yZSBmb3IgbWFraW5n
IHRoZSBTdHJpbmcoY29uc3QgY2hhciopIGNvbnN0cnVjdG9yIGV4cGxpY2l0LgorICAgICAgICBN
YWtpbmcgdGhpcyBjb25zdHJ1Y3RvciBleHBsaWNpdCBoZWxwcyBjYXRjaCBhdCBjb21waWxlIHRp
bWUgY2FzZXMgd2hlcmUgdGhlICIiX3MKKyAgICAgICAgcHJlZml4IGlzIG1pc3Npbmcgb24gU3Ry
aW5nIGxpdGVyYWxzLgorCisgICAgICAgICogd3RmL3RleHQvVGV4dFN0cmVhbS5oOgorICAgICAg
ICAoV1RGOjpUZXh0U3RyZWFtOjpkdW1wUHJvcGVydHkpOgorCiAyMDIyLTAzLTI0ICBDaHJpcyBE
dW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgU3RyaW5nJ3MgZmluZCgpIC8gcmV2
ZXJzZUZpbmQoKSAvIHJlcGxhY2UoKSBzaG91bGQgdGFrZSBpbiBhIFN0cmluZ1ZpZXcgaW5zdGVh
ZCBvZiBhIFN0cmluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGI1YjhlNTgyY2YyMzQzZTY5N2ZlY2Y4ZmNhN2I3
MTEwM2I2MWEwNGMuLmY2MTMzMmRjZmU1MWIwYmNmMTk1NGZiM2I2ODNkNGU0NDM3NDNlMDEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSw1MTEgQEAKKzIwMjItMDMtMjQgIENocmlzIER1bWV6ICA8Y2R1
bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBTdGFydCBwcmVwYXJpbmcgV2ViQ29yZSBmb3IgbWFr
aW5nIHRoZSBTdHJpbmcoY29uc3QgY2hhciopIGNvbnN0cnVjdG9yIGV4cGxpY2l0CisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzgzMzYKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdGFydCBwcmVwYXJpbmcg
V2ViQ29yZSBmb3IgbWFraW5nIHRoZSBTdHJpbmcoY29uc3QgY2hhciopIGNvbnN0cnVjdG9yIGV4
cGxpY2l0LgorICAgICAgICBNYWtpbmcgdGhpcyBjb25zdHJ1Y3RvciBleHBsaWNpdCBoZWxwcyBj
YXRjaCBhdCBjb21waWxlIHRpbWUgY2FzZXMgd2hlcmUgdGhlICIiX3MKKyAgICAgICAgcHJlZml4
IGlzIG1pc3Npbmcgb24gU3RyaW5nIGxpdGVyYWxzLgorCisgICAgICAgICogTW9kdWxlcy9hcHBs
ZXBheS1hbXMtdWkvQXBwbGVQYXlBTVNVSVBheW1lbnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OmNvbnZlcnRBbmRWYWxpZGF0ZUFwcGxlUGF5QU1TVUlSZXF1ZXN0KToKKyAgICAgICAg
KiBNb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5Q29udGFjdEZpZWxkLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OmNvbnZlcnRBbmRWYWxpZGF0ZSk6CisgICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9B
cHBsZVBheU1lcmNoYW50Q2FwYWJpbGl0eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0
QW5kVmFsaWRhdGUpOgorICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlSZXF1ZXN0
QmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0QW5kVmFsaWRhdGUpOgorICAgICAg
ICAqIE1vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkFwcGxlUGF5U2Vzc2lvbjo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5
U2Vzc2lvbjo6b3BlblBheW1lbnRTZXR1cCk6CisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheVNl
c3Npb246OmJlZ2luKToKKyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2V0dXAu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlTZXR1cDo6YmVnaW4pOgorICAgICAgICAq
IE1vZHVsZXMvYXBwbGVwYXkvUGF5bWVudEluc3RhbGxtZW50Q29uZmlndXJhdGlvbi5tbToKKyAg
ICAgICAgKFdlYkNvcmU6OlBheW1lbnRJbnN0YWxsbWVudENvbmZpZ3VyYXRpb246OmNyZWF0ZSk6
CisgICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9QYXltZW50UmVxdWVzdFZhbGlkYXRvci5tbToK
KyAgICAgICAgKFdlYkNvcmU6OlBheW1lbnRSZXF1ZXN0VmFsaWRhdG9yOjp2YWxpZGF0ZVRvdGFs
KToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRlQ291bnRyeUNvZGUpOgorICAgICAgICAoV2Vi
Q29yZTo6dmFsaWRhdGVDdXJyZW5jeUNvZGUpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGVN
ZXJjaGFudENhcGFiaWxpdGllcyk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0ZVN1cHBvcnRl
ZE5ldHdvcmtzKToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRlU2hpcHBpbmdNZXRob2QpOgor
ICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXkvUGF5bWVudFNlc3Npb24uY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UGF5bWVudFNlc3Npb246OmNhbkNyZWF0ZVNlc3Npb24pOgorICAgICAgICAqIE1v
ZHVsZXMvYXBwbGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQYXltZW50SGFuZGxlci5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0QW5kVmFsaWRhdGVBcHBsZVBheVJlcXVlc3QpOgor
ICAgICAgICAqIE1vZHVsZXMvYXBwbGljYXRpb25tYW5pZmVzdC9BcHBsaWNhdGlvbk1hbmlmZXN0
UGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxpY2F0aW9uTWFuaWZlc3RQYXJzZXI6
OnBhcnNlSWNvbnMpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGljYXRpb25NYW5pZmVzdFBhcnNl
cjo6cGFyc2VTY29wZSk6CisgICAgICAgICogTW9kdWxlcy9jYWNoZS9XaW5kb3dPcldvcmtlckds
b2JhbFNjb3BlQ2FjaGVzLmNwcDoKKyAgICAgICAgKiBNb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0lu
aXREYXRhUmVnaXN0cnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2FuaXRpemVLZXlpZHMpOgor
ICAgICAgICAqIE1vZHVsZXMvZW50cmllc2FwaS9ET01GaWxlU3lzdGVtLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6Omxpc3REaXJlY3RvcnlXaXRoTWV0YWRhdGEpOgorICAgICAgICAoV2ViQ29yZTo6
dmFsaWRhdGVQYXRoSXNFeHBlY3RlZFR5cGUpOgorICAgICAgICAqIE1vZHVsZXMvZmV0Y2gvRmV0
Y2hCb2R5Q29uc3VtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hCb2R5Q29uc3VtZXI6
OnBhY2thZ2VGb3JtRGF0YSk6CisgICAgICAgICogTW9kdWxlcy9mZXRjaC9GZXRjaEhlYWRlcnMu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6ZmlsbEhlYWRlck1hcCk6CisgICAgICAgICogTW9kdWxl
cy9mZXRjaC9GZXRjaExvYWRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaExvYWRlcjo6
c3RhcnRMb2FkaW5nQmxvYlVSTCk6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNz
L0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1G
aWxlSGFuZGxlOjpnZXRGaWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxlSGFu
ZGxlOjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0
ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lz
dGVtSGFuZGxlOjppc1NhbWVFbnRyeSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lz
dGVtSGFuZGxlOjptb3ZlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFz
ZUlkZW50aWZpZXIuaDoKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlEYXRhLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OklEQktleURhdGE6OmVuY29kZSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpJREJLZXlEYXRhOjpkZWNvZGUpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhl
ZGRiL0lEQktleVJhbmdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQktleVJhbmdlOjppbmNs
dWRlcyk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcmlhbGl6YXRp
b24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2VyaWFsaXplSURCS2V5UGF0aCk6CisgICAgICAg
IChXZWJDb3JlOjpkZXNlcmlhbGl6ZUlEQktleVBhdGgpOgorICAgICAgICAqIE1vZHVsZXMvaW5k
ZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVy
OjpJREJTZXJ2ZXI6OmdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyk6CisgICAgICAgIChX
ZWJDb3JlOjpJREJTZXJ2ZXI6OklEQlNlcnZlcjo6Z2V0T3JpZ2lucyBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQlNlcnZlcjo6Y2xvc2VBbmREZWxldGVEYXRhYmFzZXNN
b2RpZmllZFNpbmNlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVyOjpj
bG9zZUFuZERlbGV0ZURhdGFiYXNlc0Zvck9yaWdpbnMpOgorICAgICAgICAoV2ViQ29yZTo6SURC
U2VydmVyOjpyZW1vdmVBbGxEYXRhYmFzZXNGb3JGdWxsT3JpZ2luUGF0aCk6CisgICAgICAgIChX
ZWJDb3JlOjpJREJTZXJ2ZXI6OklEQlNlcnZlcjo6cmVuYW1lT3JpZ2luKToKKyAgICAgICAgKFdl
YkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVyOjp1cGdyYWRlRmlsZXNJZk5lY2Vzc2FyeSk6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQlNlcnZlcjo6dXBncmFkZWREYXRhYmFzZURp
cmVjdG9yeSk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUlEQkJh
Y2tpbmdTdG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6Ok1lbW9yeUlEQkJh
Y2tpbmdTdG9yZTo6YmVnaW5UcmFuc2FjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2
ZXI6Ok1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6YWJvcnRUcmFuc2FjdGlvbik6CisgICAgICAgIChX
ZWJDb3JlOjpJREJTZXJ2ZXI6Ok1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6Y29tbWl0VHJhbnNhY3Rp
b24pOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpNZW1vcnlJREJCYWNraW5nU3RvcmU6
OmdlbmVyYXRlS2V5TnVtYmVyKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIv
TWVtb3J5T2JqZWN0U3RvcmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpNZW1v
cnlPYmplY3RTdG9yZTo6dXBkYXRlSW5kZXhlc0ZvclB1dFJlY29yZCk6CisgICAgICAgICogTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpJREJTZXJ2ZXI6OnYxUmVjb3Jkc1RhYmxlU2NoZW1hKToKKyAgICAgICAgKFdl
YkNvcmU6OklEQlNlcnZlcjo6djFSZWNvcmRzVGFibGVTY2hlbWFBbHRlcm5hdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6SURCU2VydmVyOjp2MlJlY29yZHNUYWJsZVNjaGVtYSk6CisgICAgICAgIChX
ZWJDb3JlOjpJREJTZXJ2ZXI6OnYyUmVjb3Jkc1RhYmxlU2NoZW1hQWx0ZXJuYXRlKToKKyAgICAg
ICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6djFJbmRleFJlY29yZHNUYWJsZVNjaGVtYSk6CisgICAg
ICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OnYxSW5kZXhSZWNvcmRzVGFibGVTY2hlbWFBbHRlcm5h
dGUpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjp2MkluZGV4UmVjb3Jkc1RhYmxlU2No
ZW1hKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6djJJbmRleFJlY29yZHNUYWJsZVNj
aGVtYUFsdGVybmF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlNRTGl0ZUlEQkJh
Y2tpbmdTdG9yZTo6ZW5jb2RlRGF0YWJhc2VOYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNl
cnZlcjo6U1FMaXRlSURCQmFja2luZ1N0b3JlOjpmdWxsRGF0YWJhc2VQYXRoRm9yRGlyZWN0b3J5
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6U1FMaXRlSURCQmFja2luZ1N0b3JlOjpn
ZXRPckVzdGFibGlzaERhdGFiYXNlSW5mbyk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6
OlNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6dXBkYXRlQWxsSW5kZXhlc0ZvckFkZFJlY29yZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6dW5jaGVj
a2VkR2V0S2V5R2VuZXJhdG9yVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpT
UUxpdGVJREJCYWNraW5nU3RvcmU6OnVuY2hlY2tlZFNldEtleUdlbmVyYXRvclZhbHVlKToKKyAg
ICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6U1FMaXRlSURCQmFja2luZ1N0b3JlOjpnZW5lcmF0
ZUtleU51bWJlcik6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlE
QkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0
YWJhc2U6OmNyZWF0ZU9iamVjdFN0b3JlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6
VW5pcXVlSURCRGF0YWJhc2U6OmRlbGV0ZU9iamVjdFN0b3JlKToKKyAgICAgICAgKFdlYkNvcmU6
OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OnJlbmFtZU9iamVjdFN0b3JlKToKKyAgICAg
ICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OmNsZWFyT2JqZWN0U3Rv
cmUpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6Y3Jl
YXRlSW5kZXgpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFz
ZTo6ZGVsZXRlSW5kZXgpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJE
YXRhYmFzZTo6cmVuYW1lSW5kZXgpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlx
dWVJREJEYXRhYmFzZTo6cHV0T3JBZGQpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpV
bmlxdWVJREJEYXRhYmFzZTo6cHV0T3JBZGRBZnRlclNwYWNlQ2hlY2spOgorICAgICAgICAoV2Vi
Q29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6Z2V0UmVjb3JkKToKKyAgICAgICAg
KFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OmdldEFsbFJlY29yZHMpOgor
ICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6Z2V0Q291bnQp
OgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6ZGVsZXRl
UmVjb3JkKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6
Om9wZW5DdXJzb3IpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRh
YmFzZTo6aXRlcmF0ZUN1cnNvcik6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1
ZUlEQkRhdGFiYXNlOjpjb21taXRUcmFuc2FjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJREJT
ZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjphYm9ydFRyYW5zYWN0aW9uKToKKyAgICAgICAgKiBN
b2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCSW5kZXhJbmZvLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OklEQkluZGV4SW5mbzo6bG9nZ2luZ1N0cmluZyBjb25zdCk6CisgICAgICAgICogTW9kdWxl
cy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
Ok1lZGlhQ29udHJvbHNIb3N0OjpsYXlvdXRUcmFpdHNDbGFzc05hbWUgY29uc3QpOgorICAgICAg
ICAqIE1vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhUmVjb3JkZXI6OmNyZWF0ZSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXNv
dXJjZS9NZWRpYVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjphZGRWUDlGdWxsUmFuZ2VW
aWRlb0ZsYWdUb0NvbnRlbnRUeXBlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU291cmNlOjpp
c1R5cGVTdXBwb3J0ZWQpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFUcmFj
a0NvbnN0cmFpbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnNldCk6CisgICAgICAgIChXZWJD
b3JlOjpjb252ZXJ0VG9JbnRlcm5hbEZvcm0pOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDSWNlQ2FuZGlkYXRlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJUQ0ljZUNhbmRpZGF0
ZTo6Y3JlYXRlKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0
aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1BlZXJDb25uZWN0aW9uOjpzZXRMb2NhbERl
c2NyaXB0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1BlZXJDb25uZWN0aW9uOjphZGRJY2VD
YW5kaWRhdGUpOgorICAgICAgICAoV2ViQ29yZTo6UlRDUGVlckNvbm5lY3Rpb246OmljZVNlcnZl
cnNGcm9tQ29uZmlndXJhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpSVENQZWVyQ29ubmVjdGlv
bjo6Y2VydGlmaWNhdGVzRnJvbUNvbmZpZ3VyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6UlRD
UGVlckNvbm5lY3Rpb246OmluaXRpYWxpemVDb25maWd1cmF0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OlJUQ1BlZXJDb25uZWN0aW9uOjpzZXRDb25maWd1cmF0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OlJUQ1BlZXJDb25uZWN0aW9uOjpjaGFpbk9wZXJhdGlvbik6CisgICAgICAgICogTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm1lci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSVENSdHBTRnJhbWVUcmFuc2Zvcm1lcjo6dHJhbnNmb3JtKToKKyAgICAgICAgKiBNb2R1
bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6TGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpk
b0NyZWF0ZUFuc3dlcik6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMv
TGliV2ViUlRDUnRwVHJhbnNjZWl2ZXJCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRv
UnRwQ29kZWNDYXBhYmlsaXR5KToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2xpYndl
YnJ0Yy9MaWJXZWJSVENVdGlscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b0V4Y2VwdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjp0b1JUQ0Vycm9yKToKKyAgICAgICAgKiBNb2R1bGVzL21vZGVs
LWVsZW1lbnQvc2NlbmVraXQvU2NlbmVLaXRNb2RlbExvYWRlclVTRC5tbToKKyAgICAgICAgKFdl
YkNvcmU6OndyaXRlVG9UZW1wb3JhcnlGaWxlKToKKyAgICAgICAgKiBNb2R1bGVzL3BheW1lbnRy
ZXF1ZXN0L1BheW1lbnRSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNoZWNrQW5kQ2Fu
b25pY2FsaXplRGV0YWlscyk6CisgICAgICAgIChXZWJDb3JlOjpQYXltZW50UmVxdWVzdDo6c2hv
dyk6CisgICAgICAgICogTW9kdWxlcy9waWN0dXJlaW5waWN0dXJlL0hUTUxWaWRlb0VsZW1lbnRQ
aWN0dXJlSW5QaWN0dXJlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxWaWRlb0VsZW1lbnRQ
aWN0dXJlSW5QaWN0dXJlOjpyZXF1ZXN0UGljdHVyZUluUGljdHVyZSk6CisgICAgICAgICogTW9k
dWxlcy9wbHVnaW5zL1lvdVR1YmVQbHVnaW5SZXBsYWNlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpZb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQ6Omluc3RhbGxSZXBsYWNlbWVudCk6CisgICAg
ICAgIChXZWJDb3JlOjpwcm9jZXNzQW5kQ3JlYXRlWW91VHViZVVSTCk6CisgICAgICAgICogTW9k
dWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjp1cGRhdGVE
YXRhU291cmNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNv
dXJjZUltcGw6OnNvdXJjZVN0b3BwZWQpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25DYXB0dXJlU291cmNlSW1wbDo6c291cmNlTXV0ZWRDaGFuZ2VkKToKKyAgICAgICAgKiBN
b2R1bGVzL3NwZWVjaC9jb2NvYS9XZWJTcGVlY2hSZWNvZ25pemVyVGFza01vY2subW06CisgICAg
ICAgICgtW1dlYlNwZWVjaFJlY29nbml6ZXJUYXNrTW9jayBhdWRpb1NhbXBsZXNBdmFpbGFibGU6
XSk6CisgICAgICAgICogTW9kdWxlcy9zdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmNvbm5lY3Rpb25JbmZvKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYi1sb2Nr
cy9XZWJMb2NrTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJMb2NrTWFuYWdlcjo6
c2lnbmFsVG9BYm9ydFRoZVJlcXVlc3QpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVk
aW9MaXN0ZW5lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb0xpc3RlbmVyOjpBdWRpb0xp
c3RlbmVyKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0uY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6QXVkaW9QYXJhbTo6c2V0QXV0b21hdGlvblJhdGUpOgorICAgICAgICAq
IE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbVRpbWVsaW5lLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkF1ZGlvUGFyYW1UaW1lbGluZTo6aW5zZXJ0RXZlbnQpOgorICAgICAgICAqIE1vZHVsZXMv
d2ViYXVkaW8vQmlxdWFkRmlsdGVyTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCaXF1YWRG
aWx0ZXJOb2RlOjpnZXRGcmVxdWVuY3lSZXNwb25zZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJh
dWRpby9CaXF1YWRQcm9jZXNzb3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QmlxdWFkUHJvY2Vz
c29yOjpCaXF1YWRQcm9jZXNzb3IpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vRGVsYXlQ
cm9jZXNzb3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGVsYXlQcm9jZXNzb3I6OkRlbGF5UHJv
Y2Vzc29yKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL1dhdmVTaGFwZXJOb2RlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OldhdmVTaGFwZXJOb2RlOjpjcmVhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6V2F2ZVNoYXBlck5vZGU6OnNldEN1cnZlRm9yQmluZGluZ3MpOgorICAgICAgICAqIE1v
ZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRvckNvb3JkaW5hdG9yLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkF1dGhlbnRpY2F0b3JDb29yZGluYXRvckludGVybmFsOjpuZWVkc0FwcElkUXVpcmtz
KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL1dlYkF1dGhlbnRpY2F0aW9uVXRpbHMuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6YnVpbGRBdHRlc3RhdGlvbk1hcCk6CisgICAgICAgICogTW9k
dWxlcy93ZWJhdXRobi9maWRvL0RldmljZVJlc3BvbnNlQ29udmVydGVyLmNwcDoKKyAgICAgICAg
KGZpZG86OnJlYWRDVEFQTWFrZUNyZWRlbnRpYWxSZXNwb25zZSk6CisgICAgICAgICogTW9kdWxl
cy93ZWJhdXRobi9maWRvL1Bpbi5jcHA6CisgICAgICAgIChmaWRvOjpwaW46OktleUFncmVlbWVu
dFJlc3BvbnNlOjpwYXJzZUZyb21DT1NFKToKKyAgICAgICAgKGZpZG86OnBpbjo6VG9rZW5SZXF1
ZXN0Ojp0cnlDcmVhdGUpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vZmlkby9VMmZSZXNw
b25zZUNvbnZlcnRlci5jcHA6CisgICAgICAgIChmaWRvOjpyZWFkVTJmUmVnaXN0ZXJSZXNwb25z
ZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9DaGFuZ2VWZXJzaW9uV3JhcHBlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpDaGFuZ2VWZXJzaW9uV3JhcHBlcjo6cGVyZm9ybVByZWZs
aWdodCk6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9ET01XaW5kb3dXZWJEYXRhYmFz
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01XaW5kb3dXZWJEYXRhYmFzZTo6b3BlbkRhdGFi
YXNlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRhdGFiYXNlOjpEYXRhYmFzZSk6CisgICAgICAgIChXZWJDb3JlOjpEYXRh
YmFzZTo6cnVuVHJhbnNhY3Rpb24pOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvRGF0
YWJhc2VBdXRob3JpemVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlQXV0aG9yaXpl
cjo6YWRkQWxsb3dlZEZ1bmN0aW9ucyk6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9E
YXRhYmFzZVRyYWNrZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjp0
cmFja2VyRGF0YWJhc2VQYXRoIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJh
Y2tlcjo6b3BlblRyYWNrZXJEYXRhYmFzZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFz
ZS9TUUxTdGF0ZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1FMU3RhdGVtZW50OjpleGVj
dXRlKToKKyAgICAgICAgKFdlYkNvcmU6OlNRTFN0YXRlbWVudDo6c2V0RGF0YWJhc2VEZWxldGVk
RXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6U1FMU3RhdGVtZW50OjpzZXRWZXJzaW9uTWlzbWF0
Y2hlZEVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OlNRTFN0YXRlbWVudDo6c2V0RmFpbHVyZUR1
ZVRvUXVvdGEpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb24u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U1FMVHJhbnNhY3Rpb246OmNhbGxFcnJvckNhbGxiYWNr
RHVlVG9JbnRlcnJ1cHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6U1FMVHJhbnNhY3Rpb246Om9w
ZW5UcmFuc2FjdGlvbkFuZFByZWZsaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpTUUxUcmFuc2Fj
dGlvbjo6ZGVsaXZlclRyYW5zYWN0aW9uQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6U1FM
VHJhbnNhY3Rpb246OmRlbGl2ZXJTdGF0ZW1lbnRDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3Jl
OjpTUUxUcmFuc2FjdGlvbjo6aGFuZGxlQ3VycmVudFN0YXRlbWVudEVycm9yKToKKyAgICAgICAg
KFdlYkNvcmU6OlNRTFRyYW5zYWN0aW9uOjpwb3N0ZmxpZ2h0QW5kQ29tbWl0KToKKyAgICAgICAg
KiBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldl
YlNvY2tldDo6c3VicHJvdG9jb2xTZXBhcmF0b3IpOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29j
a2V0OjpjbG9zZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXQ6OnN1c3BlbmQpOgorICAg
ICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuaDoKKyAgICAgICAgKiBNb2R1bGVz
L3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJT
b2NrZXRDaGFubmVsOjpkaWRPcGVuU29ja2V0U3RyZWFtKToKKyAgICAgICAgKFdlYkNvcmU6Oldl
YlNvY2tldENoYW5uZWw6OmRpZFJlY2VpdmVTb2NrZXRTdHJlYW1EYXRhKToKKyAgICAgICAgKFdl
YkNvcmU6OldlYlNvY2tldENoYW5uZWw6OnByb2Nlc3NGcmFtZSk6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJTb2NrZXRDaGFubmVsOjpwcm9jZXNzT3V0Z29pbmdGcmFtZVF1ZXVlKToKKyAgICAgICAg
KiBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RGVmbGF0ZUZyYW1lci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpXZWJTb2NrZXRFeHRlbnNpb25EZWZsYXRlRnJhbWU6OnByb2Nlc3NSZXNwb25z
ZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXREZWZsYXRlRnJhbWVyOjpkZWZsYXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldERlZmxhdGVGcmFtZXI6OmluZmxhdGUpOgorICAg
ICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRFeHRlbnNpb25EaXNwYXRjaGVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldEV4dGVuc2lvbkRpc3BhdGNoZXI6OnByb2Nl
c3NIZWFkZXJWYWx1ZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEZy
YW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldEZyYW1lOjpwYXJzZUZyYW1lKToK
KyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1dlYlhSV2ViR0xMYXllci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpjcmVhdGVPcGFxdWVGcmFtZWJ1ZmZlcik6CisgICAgICAgIChXZWJDb3JlOjpXZWJY
UldlYkdMTGF5ZXI6OmNyZWF0ZSk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWEltYWdlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkFYSW1hZ2U6OmltYWdlT3ZlcmxheUVsZW1lbnRzKToKKyAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYTG9nZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFY
TG9nZ2VyOjpBWExvZ2dlcik6CisgICAgICAgIChXZWJDb3JlOjpBWExvZ2dlcjo6bG9nKToKKyAg
ICAgICAgKFdlYkNvcmU6Om9wZXJhdG9yPDwpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQVhM
b2dnZXIuaDoKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6aXNNb2RhbEVsZW1lbnQgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6Y3JlYXRlRnJvbVJlbmRlcmVyKToKKyAgICAgICAgKFdlYkNvcmU6OkFY
T2JqZWN0Q2FjaGU6OnJlbW92ZSk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjp0
ZXh0Q2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpoYW5kbGVNZW51
T3BlbmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6Om5vdGlmaWNhdGlvblBv
c3RUaW1lckZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBhc3N3b3Jk
Tm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RD
YWNoZTo6cG9zdE5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hl
OjpoYW5kbGVNZW51SXRlbVNlbGVjdGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2Fj
aGU6OnNlbGVjdGVkU3RhdGVDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2Fj
aGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6
QVhPYmplY3RDYWNoZTo6aGFuZGxlTW9kYWxDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6QVhP
YmplY3RDYWNoZTo6cGVyZm9ybURlZmVycmVkQ2FjaGVVcGRhdGUpOgorICAgICAgICAoV2ViQ29y
ZTo6QVhPYmplY3RDYWNoZTo6dXBkYXRlSXNvbGF0ZWRUcmVlKToKKyAgICAgICAgKiBhY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFj
Y2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpkZXRlcm1pbmVBY2Nlc3NpYmlsaXR5Um9sZSk6CisgICAg
ICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnJlYWRPbmx5VmFsdWUgY29uc3QpOgorICAgICAg
ICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6YXV0b0NvbXBsZXRlVmFsdWUgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6Y3VycmVudFZhbHVlIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnJlcGxhY2VUZXh0
SW5SYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0Ojpjb21wdXRl
ZFJvbGVTdHJpbmcgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6bm9kZUhhc1ByZXNlbnRhdGlv
blJvbGUpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6cmVzb2x2ZWRF
ZGl0aW5nU3R5bGVzIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHk6Omlz
UmFkaW9CdXR0b25JbkRpZmZlcmVudEFkaG9jR3JvdXApOgorICAgICAgICAoV2ViQ29yZTo6QWNj
ZXNzaWJpbGl0eTo6ZmluZE1hdGNoaW5nT2JqZWN0cyk6CisgICAgICAgICogYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmg6CisgICAgICAgIChXZWJDb3JlOjphY2Nl
c3NpYmlsaXR5Um9sZVRvU3RyaW5nKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdDo6cmVuZGVyT2JqZWN0SXNPYnNlcnZhYmxlIGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmRldGVybWluZUFjY2Vzc2liaWxpdHlS
b2xlKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnVwZGF0
ZVJvbGVBZnRlckNoaWxkcmVuQ3JlYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdDo6bGl2ZVJlZ2lvblJlbGV2YW50IGNvbnN0KToKKyAgICAgICAgKiBh
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUNlbGwuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QWNjZXNzaWJpbGl0eVRhYmxlQ2VsbDo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQg
Y29uc3QpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRyZWUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVRyZWU6Om5vZGVIYXNUcmVlSXRlbUNoaWxk
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlUcmVlOjppc1RyZWVWYWxp
ZCBjb25zdCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRl
ZE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkT2JqZWN0Ojppbml0aWFs
aXplQXR0cmlidXRlRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkT2JqZWN0Ojpj
bGFzc0xpc3QgY29uc3QpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FY
SXNvbGF0ZWRUcmVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjpBWElz
b2xhdGVkVHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkVHJlZTo6fkFYSXNvbGF0
ZWRUcmVlKToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjpjbGVhcik6CisgICAg
ICAgIChXZWJDb3JlOjpBWElzb2xhdGVkVHJlZTo6dHJlZUZvcklEKToKKyAgICAgICAgKFdlYkNv
cmU6OkFYSXNvbGF0ZWRUcmVlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRl
ZFRyZWU6OnJlbW92ZVRyZWVGb3JQYWdlSUQpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRl
ZFRyZWU6Om9iamVjdHNGb3JJRHMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRl
ZFRyZWU6OmdlbmVyYXRlU3VidHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkVHJl
ZTo6Y29sbGVjdE5vZGVDaGFuZ2VzRm9yU3VidHJlZSk6CisgICAgICAgIChXZWJDb3JlOjpBWElz
b2xhdGVkVHJlZTo6dXBkYXRlTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkVHJl
ZTo6dXBkYXRlTm9kZVByb3BlcnR5KToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVl
Ojp1cGRhdGVDaGlsZHJlbik6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkVHJlZTo6Zm9j
dXNlZE5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OnJvb3ROb2RlKToK
KyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjpzZXRSb290Tm9kZSk6CisgICAgICAg
IChXZWJDb3JlOjpBWElzb2xhdGVkVHJlZTo6c2V0Rm9jdXNlZE5vZGVJRCk6CisgICAgICAgIChX
ZWJDb3JlOjpBWElzb2xhdGVkVHJlZTo6dXBkYXRlTG9hZGluZ1Byb2dyZXNzKToKKyAgICAgICAg
KFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjpyZW1vdmVOb2RlKToKKyAgICAgICAgKFdlYkNvcmU6
OkFYSXNvbGF0ZWRUcmVlOjpyZW1vdmVTdWJ0cmVlRnJvbU5vZGVNYXApOgorICAgICAgICAoV2Vi
Q29yZTo6QVhJc29sYXRlZFRyZWU6OmFwcGx5UGVuZGluZ0NoYW5nZXMpOgorICAgICAgICAqIGFj
Y2Vzc2liaWxpdHkvbWFjL0FjY2Vzc2liaWxpdHlPYmplY3RNYWMubW06CisgICAgICAgIChXZWJD
b3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzdWJyb2xlUGxhdGZvcm1TdHJpbmcgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6cm9sZVBsYXRmb3JtRGVzY3Jp
cHRpb24gY29uc3QpOgorICAgICAgICAqIGFuaW1hdGlvbi9BbmltYXRpb25FZmZlY3QuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6QW5pbWF0aW9uRWZmZWN0OjpnZXRUaW1pbmcgY29uc3QpOgorICAg
ICAgICAqIGFuaW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkRvY3VtZW50VGltZWxpbmU6OmFuaW1hdGUpOgorICAgICAgICAqIGFuaW1hdGlvbi9FZmZlY3RU
aW1pbmcuaDoKKyAgICAgICAgKiBhbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6S2V5ZnJhbWVFZmZlY3Q6OkNTU1Byb3BlcnR5SURUb0lETEF0dHJpYnV0ZU5h
bWUpOgorICAgICAgICAoV2ViQ29yZTo6S2V5ZnJhbWVFZmZlY3Q6OmdldEtleWZyYW1lcyk6Cisg
ICAgICAgICogYmluZGluZ3MvanMvR0NDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkdDQ29udHJvbGxlcjo6R0NDb250cm9sbGVyKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0N1
c3RvbUVsZW1lbnRJbnRlcmZhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNDdXN0b21FbGVt
ZW50SW50ZXJmYWNlOjp1cGdyYWRlRWxlbWVudCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNE
T01Db252ZXJ0TnVtYmVycy5oOgorICAgICAgICAoV2ViQ29yZTo6Q29udmVydGVyPElETEZsb2F0
Pjo6Y29udmVydCk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNFeGVjU3RhdGVJbnN0cnVtZW50
YXRpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OkpTRXhlY1N0YXRlOjppbnN0cnVtZW50RnVuY3Rp
b24pOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U2NyaXB0Q29udHJvbGxlcjo6Y2FsbEluV29ybGQpOgorICAgICAgICAqIGJy
aWRnZS9vYmpjL29iamNfcnVudGltZS5tbToKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6Ok9iamNB
cnJheTo6c2V0VmFsdWVBdCBjb25zdCk6CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpPYmpjQXJy
YXk6OnZhbHVlQXQgY29uc3QpOgorICAgICAgICAqIGJyaWRnZS9ydW50aW1lX2FycmF5LmNwcDoK
KyAgICAgICAgKEpTQzo6UnVudGltZUFycmF5OjpwdXQpOgorICAgICAgICAoSlNDOjpSdW50aW1l
QXJyYXk6OnB1dEJ5SW5kZXgpOgorICAgICAgICAqIGJyaWRnZS9ydW50aW1lX29iamVjdC5jcHA6
CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjp0aHJvd1J1bnRpbWVPYmplY3RJbnZhbGlkQWNjZXNz
RXJyb3IpOgorICAgICAgICAqIGNvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25BY3Rp
b25zLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpNb2RpZnlIZWFk
ZXJzQWN0aW9uOjpNb2RpZnlIZWFkZXJJbmZvOjpwYXJzZSk6CisgICAgICAgIChXZWJDb3JlOjpD
b250ZW50RXh0ZW5zaW9uczo6UmVkaXJlY3RBY3Rpb246OnBhcnNlKToKKyAgICAgICAgKFdlYkNv
cmU6OkNvbnRlbnRFeHRlbnNpb25zOjpSZWRpcmVjdEFjdGlvbjo6VVJMVHJhbnNmb3JtQWN0aW9u
OjpwYXJzZSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6UmVkaXJlY3RB
Y3Rpb246OlVSTFRyYW5zZm9ybUFjdGlvbjo6UXVlcnlUcmFuc2Zvcm06OnBhcnNlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpSZWRpcmVjdEFjdGlvbjo6VVJMVHJhbnNm
b3JtQWN0aW9uOjpRdWVyeVRyYW5zZm9ybTo6UXVlcnlLZXlWYWx1ZTo6cGFyc2UpOgorICAgICAg
ICAqIGNvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25Db21waWxlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6Y29tcGlsZVJ1bGVMaXN0KToKKyAgICAg
ICAgKiBjb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uUGFyc2VyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpnZXREb21haW5MaXN0KToKKyAgICAgICAg
KFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpsb2FkVHJpZ2dlcik6CisgICAgICAgIChXZWJD
b3JlOjpDb250ZW50RXh0ZW5zaW9uczo6bG9hZEFjdGlvbik6CisgICAgICAgICogY29udGVudGV4
dGVuc2lvbnMvU2VyaWFsaXplZE5GQS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0
ZW5zaW9uczo6U2VyaWFsaXplZE5GQTo6c2VyaWFsaXplKToKKyAgICAgICAgKiBjb250ZW50ZXh0
ZW5zaW9ucy9VUkxGaWx0ZXJQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4
dGVuc2lvbnM6OlVSTEZpbHRlclBhcnNlcjo6c3RhdHVzU3RyaW5nKToKKyAgICAgICAgKiBjb250
ZW50ZXh0ZW5zaW9ucy9VUkxGaWx0ZXJQYXJzZXIuaDoKKyAgICAgICAgKiBjcnlwdG8vU3VidGxl
Q3J5cHRvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN1YnRsZUNyeXB0bzo6YWRkQXV0aGVudGlj
YXRlZEVuY3J5cHRpb25XYXJuaW5nSWZOZWNlc3NhcnkpOgorICAgICAgICAqIGNyeXB0by9hbGdv
cml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DQkMuaDoKKyAgICAgICAgKiBjcnlwdG8vYWxnb3Jp
dGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfQ0ZCLmg6CisgICAgICAgICogY3J5cHRvL2FsZ29yaXRo
bXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NUUi5oOgorICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1z
L0NyeXB0b0FsZ29yaXRobUFFU19HQ00uaDoKKyAgICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9D
cnlwdG9BbGdvcml0aG1BRVNfS1cuaDoKKyAgICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9Dcnlw
dG9BbGdvcml0aG1FQ0RILmg6CisgICAgICAgICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxn
b3JpdGhtRUNEU0EuaDoKKyAgICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0
aG1IS0RGLmg6CisgICAgICAgICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtSE1B
Qy5oOgorICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVBCS0RGMi5o
OgorICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQUVTX1BLQ1Mx
X3YxXzUuaDoKKyAgICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FT
U0FfUEtDUzFfdjFfNS5oOgorICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29y
aXRobVJTQV9PQUVQLmg6CisgICAgICAgICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3Jp
dGhtUlNBX1BTUy5oOgorICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRo
bVNIQTEuaDoKKyAgICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEy
MjQuaDoKKyAgICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEyNTYu
aDoKKyAgICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEzODQuaDoK
KyAgICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEE1MTIuaDoKKyAg
ICAgICAgKiBjcnlwdG8va2V5cy9DcnlwdG9LZXlBRVMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q3J5cHRvS2V5QUVTOjpleHBvcnRKd2sgY29uc3QpOgorICAgICAgICAqIGNyeXB0by9rZXlzL0Ny
eXB0b0tleUVDLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0tleUVDOjpleHBvcnRKd2sg
Y29uc3QpOgorICAgICAgICAqIGNyeXB0by9rZXlzL0NyeXB0b0tleUhNQUMuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6Q3J5cHRvS2V5SE1BQzo6ZXhwb3J0SndrIGNvbnN0KToKKyAgICAgICAgKiBj
cnlwdG8va2V5cy9DcnlwdG9LZXlSU0EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvS2V5
UlNBOjpleHBvcnRKd2sgY29uc3QpOgorICAgICAgICAqIGNzcy9DU1NGb250RmFjZVNyY1ZhbHVl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRGYWNlU3JjVmFsdWU6OmlzU3VwcG9ydGVk
Rm9ybWF0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvQ1NTR3JpZFRlbXBsYXRlQXJlYXNWYWx1ZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpzdHJpbmdGb3JQb3NpdGlvbik6CisgICAgICAgICogY3Nz
L0NTU1ByaW1pdGl2ZVZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ByaW1pdGl2ZVZh
bHVlOjp1bml0VHlwZVN0cmluZyk6CisgICAgICAgICogY3NzL0NTU1N1YmdyaWRWYWx1ZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDU1NTdWJncmlkVmFsdWU6OmN1c3RvbUNTU1RleHQgY29uc3Qp
OgorICAgICAgICAqIGNzcy9ET01DU1NOYW1lc3BhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
dmFsdWVXaXRob3V0SW1wb3J0YW50KToKKyAgICAgICAgKiBjc3MvRE9NQ1NTUmVnaXN0ZXJDdXN0
b21Qcm9wZXJ0eS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpET01DU1NSZWdpc3RlckN1c3RvbVBy
b3BlcnR5OjpyZWdpc3RlclByb3BlcnR5KToKKyAgICAgICAgKiBjc3MvRGVwcmVjYXRlZENTU09N
VmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGVwcmVjYXRlZENTU09NVmFsdWU6OmNzc1Rl
eHQgY29uc3QpOgorICAgICAgICAqIGNzcy9Gb250RmFjZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpGb250RmFjZTo6dW5pY29kZVJhbmdlIGNvbnN0KToKKyAgICAgICAgKiBjc3MvTWVkaWFRdWVy
eUV4cHJlc3Npb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeUV4cHJlc3Npb246
OnNlcmlhbGl6ZSBjb25zdCk6CisgICAgICAgICogY3NzL1N0eWxlUHJvcGVydGllcy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTdHlsZVByb3BlcnRpZXM6OmdldExheWVyZWRTaG9ydGhhbmRWYWx1
ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzOjpzZXRD
dXN0b21Qcm9wZXJ0eSk6CisgICAgICAgICogY3NzL21ha2V2YWx1ZXMucGw6CisgICAgICAgICog
Y3NzL3BhcnNlci9NZWRpYVF1ZXJ5UGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlh
UXVlcnlQYXJzZXI6OnNraXBVbnRpbENvbW1hKToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUXVl
cnlQYXJzZXI6OnBhcnNlSW50ZXJuYWwpOgorICAgICAgICAqIGNzcy9wYXJzZXIvU2l6ZXNBdHRy
aWJ1dGVQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2l6ZXNBdHRyaWJ1dGVQYXJzZXI6
Om1lZGlhQ29uZGl0aW9uTWF0Y2hlcyk6CisgICAgICAgICogY3NzL3R5cGVkb20vQ1NTTnVtZXJp
Y0ZhY3RvcnkuaDoKKyAgICAgICAgKiBjc3MvdHlwZWRvbS9DU1NOdW1lcmljVmFsdWUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTTnVtZXJpY1ZhbHVlOjptdWx0aXBseUludGVybmFsKToKKyAg
ICAgICAgKFdlYkNvcmU6OkNTU051bWVyaWNWYWx1ZTo6dG8pOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTTnVtZXJpY1ZhbHVlOjpwYXJzZSk6CisgICAgICAgICogY3NzL3R5cGVkb20vQ1NTU3R5bGVW
YWx1ZUZhY3RvcnkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTU3R5bGVWYWx1ZUZhY3Rvcnk6
OnJlaWZ5VmFsdWUpOgorICAgICAgICAqIGVkaXRpbmcvY29jb2EvSFRNTENvbnZlcnRlci5tbToK
KyAgICAgICAgKEhUTUxDb252ZXJ0ZXJDYWNoZXM6OnByb3BlcnR5VmFsdWVGb3JOb2RlKToKKyAg
ICAgICAgKEhUTUxDb252ZXJ0ZXI6Ol9wcm9jZXNzRWxlbWVudCk6CisgICAgICAgICogZWRpdGlu
Zy9jb2NvYS9XZWJDb250ZW50UmVhZGVyQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjphdHRh
Y2htZW50Rm9yRGF0YSk6CisgICAgICAgICogbG9hZGVyL2NvY29hL0J1bmRsZVJlc291cmNlTG9h
ZGVyLm1tOgorICAgICAgICAoV2ViQ29yZTo6QnVuZGxlUmVzb3VyY2VMb2FkZXI6OmxvYWRSZXNv
dXJjZUZyb21CdW5kbGUpOgorICAgICAgICAqIGxvYWRlci9tYWMvTG9hZGVyTlNVUkxFeHRyYXMu
bW06CisgICAgICAgIChzdWdnZXN0ZWRGaWxlbmFtZVdpdGhNSU1FVHlwZSk6CisgICAgICAgICog
cGFnZS9jb2NvYS9SZXNvdXJjZVVzYWdlT3ZlcmxheUNvY29hLm1tOgorICAgICAgICAoV2ViQ29y
ZTo6SGlzdG9yaWNSZXNvdXJjZVVzYWdlRGF0YTo6SGlzdG9yaWNSZXNvdXJjZVVzYWdlRGF0YSk6
CisgICAgICAgIChXZWJDb3JlOjpkcmF3Q3B1SGlzdG9yeSk6CisgICAgICAgIChXZWJDb3JlOjpk
cmF3R0NIaXN0b3J5KToKKyAgICAgICAgKFdlYkNvcmU6OmRyYXdNZW1IaXN0b3J5KToKKyAgICAg
ICAgKiBwYWdlL2NvY29hL1NldHRpbmdzQmFzZUNvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6
U2V0dGluZ3NCYXNlOjppbml0aWFsaXplRGVmYXVsdEZvbnRGYW1pbGllcyk6CisgICAgICAgICog
cGFnZS9tYWMvUGFnZU1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlBhZ2U6OnBsYXRmb3JtSW5p
dGlhbGl6ZSk6CisgICAgICAgICogcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpBWEFSSUFDb250ZW50R3JvdXBUZXh0KToKKyAgICAgICAgKiBwbGF0Zm9y
bS9Mb2NhbGl6ZWRTdHJpbmdzLmg6CisgICAgICAgICogcGxhdGZvcm0vUGFzdGVib2FyZC5oOgor
ICAgICAgICAqIHBsYXRmb3JtL1Bhc3RlYm9hcmRDdXN0b21EYXRhLmg6CisgICAgICAgICogcGxh
dGZvcm0vYXVkaW8vY29jb2EvTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hLm1tOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlckNvY29hOjp1cGRhdGVOb3dQbGF5aW5nSW5mbyk6
CisgICAgICAgICogcGxhdGZvcm0vY29jb2EvS2V5RXZlbnRDb2NvYS5tbToKKyAgICAgICAgKFdl
YkNvcmU6OmtleUlkZW50aWZpZXJGb3JDaGFyQ29kZSk6CisgICAgICAgICogcGxhdGZvcm0vY29j
b2EvUGFzdGVib2FyZENvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6aW1hZ2VUeXBlVG9GYWtl
RmlsZW5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZDo6cmVhZCk6CisgICAgICAg
ICogcGxhdGZvcm0vY29jb2EvUGFzdGVib2FyZEN1c3RvbURhdGFDb2NvYS5tbToKKyAgICAgICAg
KFdlYkNvcmU6OlBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUpOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL0ZvdXJDQy5oOgorICAgICAgICAoV1RGOjpMb2dBcmd1bWVudDxXZWJD
b3JlOjpGb3VyQ0M+Ojp0b1N0cmluZyk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYW5n
bGUvR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGlj
c0NvbnRleHRHTEFOR0xFOjp2YWxpZGF0ZURlcHRoU3RlbmNpbCk6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0NETVByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW06
CisgICAgICAgIChXZWJDb3JlOjpDRE1Qcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpwYXJzZUtl
eVN5c3RlbSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlh
UGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL0NETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDLm1t
OgorICAgICAgICAoV2ViQ29yZTo6Q0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakM6
OnNldFN0b3JhZ2VEaXJlY3RvcnkpOgorICAgICAgICAoV2ViQ29yZTo6Q0RNSW5zdGFuY2VTZXNz
aW9uRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDOjp1cGRhdGVMaWNlbnNlKToKKyAgICAgICAgKFdl
YkNvcmU6OkNETUluc3RhbmNlU2Vzc2lvbkZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQzo6ZGlkUHJv
dmlkZVJlcXVlc3RzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9DRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6
Q0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQzo6c3RvcmFnZVBhdGggY29uc3QpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0
ZU1lZGlhU291cmNlQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJp
dmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6c3RyZWFtU2Vzc2lvbik6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMu
bW06CisgICAgICAgIChXZWJDb3JlOjpTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6ZGlkUHJv
dmlkZUNvbnRlbnRLZXlSZXF1ZXN0SW5pdGlhbGl6YXRpb25EYXRhRm9yVHJhY2tJRCk6CisgICAg
ICAgICogcGxhdGZvcm0vbWFjL0RhdGFEZXRlY3RvckhpZ2hsaWdodC5tbToKKyAgICAgICAgKFdl
YkNvcmU6OkRhdGFEZXRlY3RvckhpZ2hsaWdodDo6ZmFkZUluKToKKyAgICAgICAgKFdlYkNvcmU6
OkRhdGFEZXRlY3RvckhpZ2hsaWdodDo6ZmFkZU91dCk6CisgICAgICAgICogcGxhdGZvcm0vbWFj
L1Bhc3RlYm9hcmRNYWMubW06CisgICAgICAgICogcGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRG
YWN0b3J5TWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6a2V5SWRlbnRpZmllckZvcktleUV2ZW50
KToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtS2V5Ym9hcmRFdmVudEJ1aWxkZXI6OlBsYXRm
b3JtS2V5Ym9hcmRFdmVudEJ1aWxkZXIpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9QbGF0Zm9y
bVBhc3RlYm9hcmRNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVBhc3RlYm9hcmQ6
OnR5cGVzU2FmZUZvckRPTVRvUmVhZEFuZFdyaXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OlBsYXRmb3JtUGFzdGVib2FyZDo6d3JpdGUpOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlUGFz
dGVib2FyZEl0ZW0pOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9TdHJpbmdVdGlsaXRpZXMubW06
CisgICAgICAgIChXZWJDb3JlOjp3aWxkY2FyZFJlZ2V4UGF0dGVyblN0cmluZyk6CisgICAgICAg
ICogcGxhdGZvcm0vbWFjL1RocmVhZENoZWNrLm1tOgorICAgICAgICAoV2ViQ29yZVJlcG9ydFRo
cmVhZFZpb2xhdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1VzZXJBZ2VudE1hYy5tbToK
KyAgICAgICAgKFdlYkNvcmU6OnN0YW5kYXJkVXNlckFnZW50V2l0aEFwcGxpY2F0aW9uTmFtZSk6
CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUVycm9yQmFzZS5jcHA6CisgICAg
ICAgICogcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUVycm9yQmFzZS5oOgorICAgICAgICAqIHBs
YXRmb3JtL25ldHdvcmsvY29jb2EvUmFuZ2VSZXNwb25zZUdlbmVyYXRvci5tbToKKyAgICAgICAg
KFdlYkNvcmU6OnN5bnRoZXNpemVkUmVzcG9uc2VGb3JSYW5nZSk6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlclRoZW1lTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6aWNvbkZvckF0dGFjaG1l
bnQpOgorICAgICAgICAqIHJlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRvcjw8KToKKyAgICAgICAgKiBzdmcvU1ZHRmlsdGVy
RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJp
YnV0ZXMuaDoKKyAgICAgICAgKiBzdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50Lmg6CisgICAg
ICAgICogc3ZnL1NWR01hcmtlckVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHTWFza0VsZW1l
bnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHUGF0aFNlZ0ltcGwuaDoKKyAgICAgICAgKiBzdmcvU1ZH
UmFkaWFsR3JhZGllbnRFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL3Byb3BlcnRpZXMvU1ZHUHJv
cGVydHlUcmFpdHMuaDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Byb3BlcnR5VHJhaXRzPGJvb2w+
Ojp0b1N0cmluZyk6CisgICAgICAgICogdGVzdGluZy9Nb2NrQ29udGVudEZpbHRlclNldHRpbmdz
Lmg6CisgICAgICAgIChXZWJDb3JlOjpNb2NrQ29udGVudEZpbHRlclNldHRpbmdzOjp1bmJsb2Nr
VVJMSG9zdCk6CisgICAgICAgICogeG1sL1hQYXRoVmFsdWUuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlhQYXRoOjpWYWx1ZTo6VmFsdWUpOgorICAgICAgICAqIHhtbC9YU0xTdHlsZVNoZWV0Lmg6CisK
IDIwMjItMDMtMjQgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CiAKICAgICAg
ICAgRE9NIEdQVVA6IHBhaW50U3lzdGVtUHJldmlld0JhZGdlIChBUiBRdWlja0xvb2sgZWxlbWVu
dCBiYWRnZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJHUFUvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YkdQVS9DaGFuZ2VMb2cKaW5kZXggN2Y4ZWMzZWM3YzdlZGYxMzlkNjc1MzdkOTkyNjFiNjg0ZTJi
ZDQzZS4uNWUzMmI1N2ZkZmQxODU5YTRjNjU3NTlhMDRiZjA2OGMwN2RiNzFhZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkdQVS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkdQVS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSw0NCBAQAorMjAyMi0wMy0yNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgorCisgICAgICAgIFN0YXJ0IHByZXBhcmluZyBXZWJDb3JlIGZvciBtYWtpbmcgdGhlIFN0
cmluZyhjb25zdCBjaGFyKikgY29uc3RydWN0b3IgZXhwbGljaXQKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODMzNgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0YXJ0IHByZXBhcmluZyBXZWJDb3JlIGZv
ciBtYWtpbmcgdGhlIFN0cmluZyhjb25zdCBjaGFyKikgY29uc3RydWN0b3IgZXhwbGljaXQuCisg
ICAgICAgIE1ha2luZyB0aGlzIGNvbnN0cnVjdG9yIGV4cGxpY2l0IGhlbHBzIGNhdGNoIGF0IGNv
bXBpbGUgdGltZSBjYXNlcyB3aGVyZSB0aGUgIiJfcworICAgICAgICBwcmVmaXggaXMgbWlzc2lu
ZyBvbiBTdHJpbmcgbGl0ZXJhbHMuCisKKyAgICAgICAgKiBXR1NML1BhcnNlci5jcHA6CisgICAg
ICAgIChXR1NMOjpQYXJzZXI8TGV4ZXI+OjpwYXJzZUdsb2JhbERlY2wpOgorICAgICAgICAoV0dT
TDo6UGFyc2VyPExleGVyPjo6cGFyc2VBdHRyaWJ1dGUpOgorICAgICAgICAoV0dTTDo6UGFyc2Vy
PExleGVyPjo6cGFyc2VUeXBlRGVjbCk6CisgICAgICAgIChXR1NMOjpQYXJzZXI8TGV4ZXI+Ojpw
YXJzZVN0b3JhZ2VDbGFzcyk6CisgICAgICAgIChXR1NMOjpQYXJzZXI8TGV4ZXI+OjpwYXJzZUFj
Y2Vzc01vZGUpOgorICAgICAgICAoV0dTTDo6UGFyc2VyPExleGVyPjo6cGFyc2VTdGF0ZW1lbnQp
OgorICAgICAgICAoV0dTTDo6UGFyc2VyPExleGVyPjo6cGFyc2VQcmltYXJ5RXhwcmVzc2lvbik6
CisgICAgICAgIChXR1NMOjpQYXJzZXI8TGV4ZXI+OjpwYXJzZUNvcmVMSFNFeHByZXNzaW9uKToK
KyAgICAgICAgKiBXR1NML1Rva2VuLmNwcDoKKyAgICAgICAgKFdHU0w6OnRvU3RyaW5nKToKKyAg
ICAgICAgKiBXZWJHUFUvQWRhcHRlci5tbToKKyAgICAgICAgKFdlYkdQVTo6QWRhcHRlcjo6cmVx
dWVzdERldmljZSk6CisgICAgICAgICogV2ViR1BVL0J1ZmZlci5tbToKKyAgICAgICAgKFdlYkdQ
VTo6QnVmZmVyOjptYXBBc3luYyk6CisgICAgICAgIChXZWJHUFU6OkJ1ZmZlcjo6dW5tYXApOgor
ICAgICAgICAqIFdlYkdQVS9Db21tYW5kRW5jb2Rlci5tbToKKyAgICAgICAgKFdlYkdQVTo6Q29t
bWFuZEVuY29kZXI6OmNvcHlCdWZmZXJUb0J1ZmZlcik6CisgICAgICAgIChXZWJHUFU6OkNvbW1h
bmRFbmNvZGVyOjpjbGVhckJ1ZmZlcik6CisgICAgICAgIChXZWJHUFU6OkNvbW1hbmRFbmNvZGVy
OjpmaW5pc2gpOgorICAgICAgICAqIFdlYkdQVS9Db21wdXRlUGlwZWxpbmUubW06CisgICAgICAg
IChXZWJHUFU6OmNyZWF0ZUNvbnN0YW50VmFsdWVzKToKKyAgICAgICAgKFdlYkdQVTo6RGV2aWNl
OjpjcmVhdGVDb21wdXRlUGlwZWxpbmUpOgorICAgICAgICAqIFdlYkdQVS9RdWV1ZS5tbToKKyAg
ICAgICAgKFdlYkdQVTo6UXVldWU6OnN1Ym1pdCk6CisgICAgICAgICogV2ViR1BVL1NhbXBsZXIu
bW06CisgICAgICAgIChXZWJHUFU6OkRldmljZTo6Y3JlYXRlU2FtcGxlcik6CisgICAgICAgICog
V2ViR1BVL1NoYWRlck1vZHVsZS5tbToKKyAgICAgICAgKFdlYkdQVTo6ZWFybHlDb21waWxlU2hh
ZGVyTW9kdWxlKToKKwogMjAyMi0wMy0yNCAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRA
YXBwbGUuY29tPgogCiAgICAgICAgIFtXZWJHUFVdIEZpeCB0aGUgd2F0Y2hPUyBidWlsZApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZwppbmRleCA1NWE3M2NkMWUzY2RlZTlhNDY3NWVjY2ZhN2Y0ZjBhOTZmOGE0OThlLi4xOGZiNzJi
N2FhM2E3Njc0OWExZjVjZGFlODJkYmEyMjliNWE3MjcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4
IEBACisyMDIyLTAzLTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAg
ICAgU3RhcnQgcHJlcGFyaW5nIFdlYkNvcmUgZm9yIG1ha2luZyB0aGUgU3RyaW5nKGNvbnN0IGNo
YXIqKSBjb25zdHJ1Y3RvciBleHBsaWNpdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjM4MzM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgU3RhcnQgcHJlcGFyaW5nIFdlYkNvcmUgZm9yIG1ha2luZyB0aGUg
U3RyaW5nKGNvbnN0IGNoYXIqKSBjb25zdHJ1Y3RvciBleHBsaWNpdC4KKyAgICAgICAgTWFraW5n
IHRoaXMgY29uc3RydWN0b3IgZXhwbGljaXQgaGVscHMgY2F0Y2ggYXQgY29tcGlsZSB0aW1lIGNh
c2VzIHdoZXJlIHRoZSAiIl9zCisgICAgICAgIHByZWZpeCBpcyBtaXNzaW5nIG9uIFN0cmluZyBs
aXRlcmFscy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbToKKyAg
ICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnNldFByb21pc2VkRGF0YUZvckltYWdlKToKKyAg
ICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OnJlcXVlc3RET01QYXN0ZUFjY2Vzcyk6CisKIDIw
MjItMDMtMjQgIEJyZW50IEZ1bGdoYW0gIDxiZnVsZ2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAg
RGlzYWJsZSBSVENSdHBTY3JpcHRUcmFuc2Zvcm0gaW4gQ2FwdGl2ZVBvcnRhbCBtb2RlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
TGVnYWN5L21hYy9DaGFuZ2VMb2cKaW5kZXggYTRjODFiNTI0NTdkOTg3NWQyODBmNzUwZDI1NzM1
ZWVlNjcwYzY4Yi4uMzgyZDRlYzJiMzRiZDZjN2M2MjQ0MjdmZThmMzQ1MzdhNTA3ZTFjMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIyLTAzLTI0ICBD
aHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgU3RhcnQgcHJlcGFyaW5n
IFdlYkNvcmUgZm9yIG1ha2luZyB0aGUgU3RyaW5nKGNvbnN0IGNoYXIqKSBjb25zdHJ1Y3RvciBl
eHBsaWNpdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjM4MzM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
U3RhcnQgcHJlcGFyaW5nIFdlYkNvcmUgZm9yIG1ha2luZyB0aGUgU3RyaW5nKGNvbnN0IGNoYXIq
KSBjb25zdHJ1Y3RvciBleHBsaWNpdC4KKyAgICAgICAgTWFraW5nIHRoaXMgY29uc3RydWN0b3Ig
ZXhwbGljaXQgaGVscHMgY2F0Y2ggYXQgY29tcGlsZSB0aW1lIGNhc2VzIHdoZXJlIHRoZSAiIl9z
CisgICAgICAgIHByZWZpeCBpcyBtaXNzaW5nIG9uIFN0cmluZyBsaXRlcmFscy4KKworICAgICAg
ICAqIE1pc2MvV2ViTlNQYXN0ZWJvYXJkRXh0cmFzLm1tOgorICAgICAgICAoLVtOU1Bhc3RlYm9h
cmQgX3dlYl9kZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2VGb3JFbGVtZW50OlVSTDp0aXRsZTphcmNo
aXZlOnNvdXJjZTpdKToKKwogMjAyMi0wMy0xOCAgSm9uYXRoYW4gQmVkYXJkICA8amJlZGFyZEBh
cHBsZS5jb20+CiAKICAgICAgICAgW2lPUyAxNS40XSBGaXggdW51c2VkIHZhcmlhYmxlcwpkaWZm
IC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlLm1tIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlLm1tCmluZGV4IGQzYWQwODBlMWRkZjRmZTZlZmJhOTEz
NWJhMjY4NzZjNzdkY2JjMjYuLmYxMmEyYzQ5NTNmMDAzMmRmYjRiNzJmNjhmZjgwZmVkZGI2OTAz
NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWYWx1ZS5tbQorKysg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmFsdWUubW0KQEAgLTExNzksNyArMTE3OSw3
IEBAIHN0YXRpYyBTdHJ1Y3RIYW5kbGVycyogY3JlYXRlU3RydWN0SGFuZGxlck1hcCgpCiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIC8vIFRyeSB0byBmaW5kIGEgbWF0Y2hpbmcgdmFsdWVX
aXRoPEZvbz46Y29udGV4dDogbWV0aG9kLgogICAgICAgICBhdXRvIHR5cGUgPSBhZG9wdFN5c3Rl
bTxjaGFyW10+KG1ldGhvZF9jb3B5UmV0dXJuVHlwZShtZXRob2QpKTsKLSAgICAgICAgU3RydWN0
SGFuZGxlcnM6Oml0ZXJhdG9yIGl0ZXIgPSBzdHJ1Y3RIYW5kbGVycy0+ZmluZCh0eXBlLmdldCgp
KTsKKyAgICAgICAgU3RydWN0SGFuZGxlcnM6Oml0ZXJhdG9yIGl0ZXIgPSBzdHJ1Y3RIYW5kbGVy
cy0+ZmluZChTdHJpbmcgeyB0eXBlLmdldCgpIH0pOwogICAgICAgICBpZiAoaXRlciA9PSBzdHJ1
Y3RIYW5kbGVycy0+ZW5kKCkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIFN0cnVjdFRh
Z0hhbmRsZXImIGhhbmRsZXIgPSBpdGVyLT52YWx1ZTsKQEAgLTEyMTcsNyArMTIxNyw3IEBAIHN0
YXRpYyBTdHJ1Y3RUYWdIYW5kbGVyKiBoYW5kZXJGb3JTdHJ1Y3RUYWcoY29uc3QgY2hhciogZW5j
b2RlZFR5cGUpCiAKICAgICBzdGF0aWMgU3RydWN0SGFuZGxlcnMqIHN0cnVjdEhhbmRsZXJzID0g
Y3JlYXRlU3RydWN0SGFuZGxlck1hcCgpOwogCi0gICAgU3RydWN0SGFuZGxlcnM6Oml0ZXJhdG9y
IGl0ZXIgPSBzdHJ1Y3RIYW5kbGVycy0+ZmluZChlbmNvZGVkVHlwZSk7CisgICAgU3RydWN0SGFu
ZGxlcnM6Oml0ZXJhdG9yIGl0ZXIgPSBzdHJ1Y3RIYW5kbGVycy0+ZmluZChTdHJpbmcgeyBlbmNv
ZGVkVHlwZSB9KTsKICAgICBpZiAoaXRlciA9PSBzdHJ1Y3RIYW5kbGVycy0+ZW5kKCkpCiAgICAg
ICAgIHJldHVybiAwOwogICAgIHJldHVybiAmaXRlci0+dmFsdWU7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTV3JhcHBlck1hcC5tbSBiL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9BUEkvSlNXcmFwcGVyTWFwLm1tCmluZGV4IDk2ZTQ0Nzg4NzBjZDgxYTU4OTk3ZDAyZGE2
ZmE0ZmJhMzQ2YWYxOTUuLmY4MjFkZjhlM2ViZWQ1N2Y1NDBjZDJmMDFkNjRlYzk2ZGNmYTg2Y2Qg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNXcmFwcGVyTWFwLm1tCisr
KyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNXcmFwcGVyTWFwLm1tCkBAIC00NTEsNyAr
NDUxLDcgQEAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGFsbG9jYXRlQ29uc3RydWN0b3JGb3JDdXN0
b21DbGFzcyhKU0NvbnRleHQgKmNvbnRleHQsIGNvbnMKICAgICAgICAgZm9yRWFjaE1ldGhvZElu
Q2xhc3MoY3VycmVudENsYXNzLCBeKE1ldGhvZCBtZXRob2QpIHsKICAgICAgICAgICAgIFNFTCBz
ZWxlY3RvciA9IG1ldGhvZF9nZXROYW1lKG1ldGhvZCk7CiAgICAgICAgICAgICBjb25zdCBjaGFy
KiBuYW1lID0gc2VsX2dldE5hbWUoc2VsZWN0b3IpOwotICAgICAgICAgICAgYXV0byBpdGVyID0g
aW5pdFRhYmxlLmZpbmQobmFtZSk7CisgICAgICAgICAgICBhdXRvIGl0ZXIgPSBpbml0VGFibGUu
ZmluZChTdHJpbmcgeyBuYW1lIH0pOwogCiAgICAgICAgICAgICBpZiAoaXRlciA9PSBpbml0VGFi
bGUuZW5kKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2luc3BlY3Rvci9hZ2VudHMvSW5zcGVjdG9yQXVkaXRBZ2VudC5jcHAgYi9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBdWRpdEFnZW50
LmNwcAppbmRleCAzMGFjYWYzMzQ1ODA1Mzc0ZDgxZGJiMGIxYzVkNDlmZjdhZjBhNmUxLi5jMjg3
NzM2ZDcxZTdlYjllODg1NThmZmNkMGI3MDQ1MjViZmZjZjk3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBdWRpdEFnZW50LmNwcAor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaW5zcGVjdG9yL2FnZW50cy9JbnNwZWN0b3JBdWRp
dEFnZW50LmNwcApAQCAtOTIsNyArOTIsNyBAQCBQcm90b2NvbDo6RXJyb3JTdHJpbmdPcjxzdGQ6
OnR1cGxlPFJlZjxQcm90b2NvbDo6UnVudGltZTo6UmVtb3RlT2JqZWN0Piwgc3RkOjpvcAogICAg
IGlmIChpbmplY3RlZFNjcmlwdC5oYXNOb1ZhbHVlKCkpCiAgICAgICAgIHJldHVybiBtYWtlVW5l
eHBlY3RlZChlcnJvclN0cmluZyk7CiAKLSAgICBhdXRvIGZ1bmN0aW9uU3RyaW5nID0gbWFrZVN0
cmluZygiKGZ1bmN0aW9uKFdlYkluc3BlY3RvckF1ZGl0KSB7IFwidXNlIHN0cmljdFwiOyByZXR1
cm4gZXZhbChgKCIsIFN0cmluZyB7IHRlc3QgfS5yZXBsYWNlKCdgJywgIlxcYCIpLCAiKWApKFdl
Ykluc3BlY3RvckF1ZGl0KTsgfSkiKTsKKyAgICBhdXRvIGZ1bmN0aW9uU3RyaW5nID0gbWFrZVN0
cmluZygiKGZ1bmN0aW9uKFdlYkluc3BlY3RvckF1ZGl0KSB7IFwidXNlIHN0cmljdFwiOyByZXR1
cm4gZXZhbChgKCIsIFN0cmluZyB7IHRlc3QgfS5yZXBsYWNlKCdgJywgIlxcYCJfcyksICIpYCko
V2ViSW5zcGVjdG9yQXVkaXQpOyB9KSIpOwogCiAgICAgSW5qZWN0ZWRTY3JpcHQ6OkV4ZWN1dGVP
cHRpb25zIG9wdGlvbnM7CiAgICAgb3B0aW9ucy5vYmplY3RHcm91cCA9ICJhdWRpdCJfczsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dFN0cmVhbS5oIGIvU291cmNlL1dURi93
dGYvdGV4dC9UZXh0U3RyZWFtLmgKaW5kZXggYzg1ZGE2NjQxZTEzMTczYzk3MTE1N2JhNGE5ODNi
NDRmNTQ2NWJhNS4uZGY3MTJlZDIwNWY0Nzk3OTdiYjZkOWY1MDY3ZDYxNDMxMWM2NTBhMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9UZXh0U3RyZWFtLmgKKysrIGIvU291cmNlL1dU
Ri93dGYvdGV4dC9UZXh0U3RyZWFtLmgKQEAgLTEwMCw2ICsxMDAsMTUgQEAgcHVibGljOgogICAg
ICAgICB0cy5lbmRHcm91cCgpOwogICAgIH0KIAorICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+Cisg
ICAgdm9pZCBkdW1wUHJvcGVydHkoY29uc3QgY2hhciogbmFtZSwgY29uc3QgVCYgdmFsdWUpCisg
ICAgeworICAgICAgICBUZXh0U3RyZWFtJiB0cyA9ICp0aGlzOworICAgICAgICB0cy5zdGFydEdy
b3VwKCk7CisgICAgICAgIHRzIDw8IG5hbWUgPDwgIiAiIDw8IHZhbHVlOworICAgICAgICB0cy5l
bmRHcm91cCgpOworICAgIH0KKwogICAgIFdURl9FWFBPUlRfUFJJVkFURSBTdHJpbmcgcmVsZWFz
ZSgpOwogICAgIAogICAgIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIHN0YXJ0R3JvdXAoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXktYW1zLXVpL0FwcGxlUGF5
QU1TVUlQYXltZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5
LWFtcy11aS9BcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXIuY3BwCmluZGV4IGY0ZGFmOGQxOGFl
YzQ5OTc3NWQ1YzAzYzA4ZWFhMDQzMjQxMTQzZmIuLjRhMzIyNWNlOWNhNDA2YzAwZmUxNjg0NjBh
NWQ2ZDAzMDA0Mjg1NTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVw
YXktYW1zLXVpL0FwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9hcHBsZXBheS1hbXMtdWkvQXBwbGVQYXlBTVNVSVBheW1lbnRIYW5kbGVy
LmNwcApAQCAtMzksNyArMzksNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBzdGF0aWMgRXhjZXB0
aW9uT3I8QXBwbGVQYXlBTVNVSVJlcXVlc3Q+IGNvbnZlcnRBbmRWYWxpZGF0ZUFwcGxlUGF5QU1T
VUlSZXF1ZXN0KERvY3VtZW50JiBkb2N1bWVudCwgSlNDOjpKU1ZhbHVlIGRhdGEpCiB7CiAgICAg
aWYgKGRhdGEuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9y
LCAiTWlzc2luZyBwYXltZW50IG1ldGhvZCBkYXRhLiIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2Vw
dGlvbiB7IFR5cGVFcnJvciwgIk1pc3NpbmcgcGF5bWVudCBtZXRob2QgZGF0YS4iX3MgfTsKIAog
ICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUoZG9jdW1lbnQudm0oKSk7
CiAgICAgYXV0byBhcHBsZVBheUFNU1VJUmVxdWVzdCA9IGNvbnZlcnREaWN0aW9uYXJ5PEFwcGxl
UGF5QU1TVUlSZXF1ZXN0PigqZG9jdW1lbnQuZ2xvYmFsT2JqZWN0KCksIGRhdGEpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUNvbnRhY3RGaWVs
ZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5Q29udGFjdEZp
ZWxkLmNwcAppbmRleCBkZDNkY2I0ZWM3ZGQ0YTZhZjM5MGJlZDZjMWE3ZjJhMTQyMzEzNTI0Li4z
NzFiOWVkNDIzMjg3ZDk3NzM1NTlhNWNmOGE1MWI2Nzk3ZWYzYWMwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5Q29udGFjdEZpZWxkLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5Q29udGFjdEZpZWxkLmNw
cApAQCAtNDQsNyArNDQsNyBAQCBFeGNlcHRpb25PcjxBcHBsZVBheVNlc3Npb25QYXltZW50UmVx
dWVzdDo6Q29udGFjdEZpZWxkcz4gY29udmVydEFuZFZhbGlkYXRlKHVucwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIGNhc2UgQXBwbGVQYXlDb250YWN0RmllbGQ6OlBob25ldGljTmFtZToK
ICAgICAgICAgICAgIGlmICh2ZXJzaW9uIDwgMykKLSAgICAgICAgICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgVHlwZUVycm9yLCAiXCJwaG9uZXRpY05hbWVcIiBpcyBub3QgYSB2YWxpZCBjb250
YWN0IGZpZWxkLiIgfTsKKyAgICAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVy
cm9yLCAiXCJwaG9uZXRpY05hbWVcIiBpcyBub3QgYSB2YWxpZCBjb250YWN0IGZpZWxkLiJfcyB9
OwogICAgICAgICAgICAgcmVzdWx0LnBob25ldGljTmFtZSA9IHRydWU7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgY2FzZSBBcHBsZVBheUNvbnRhY3RGaWVsZDo6UGhvbmU6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5TWVyY2hhbnRDYXBh
YmlsaXR5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlNZXJj
aGFudENhcGFiaWxpdHkuY3BwCmluZGV4IGE2MmEyYzczZWEzMDY1NTFiZWU4NWRjOTU2MTdjMTE2
MjU2NTNiYzIuLmY2ODRiYzlhYzYxZDQ5OWE1NWNhNGUxODFmNTdiNDY5MTcyNTc5YTEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlNZXJjaGFudENh
cGFiaWxpdHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQ
YXlNZXJjaGFudENhcGFiaWxpdHkuY3BwCkBAIC0zMyw3ICszMyw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIEV4Y2VwdGlvbk9yPEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpNZXJjaGFu
dENhcGFiaWxpdGllcz4gY29udmVydEFuZFZhbGlkYXRlKGNvbnN0IFZlY3RvcjxBcHBsZVBheU1l
cmNoYW50Q2FwYWJpbGl0eT4mIG1lcmNoYW50Q2FwYWJpbGl0aWVzKQogewogICAgIGlmIChtZXJj
aGFudENhcGFiaWxpdGllcy5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBU
eXBlRXJyb3IsICJBdCBsZWFzdCBvbmUgbWVyY2hhbnQgY2FwYWJpbGl0eSBtdXN0IGJlIHByb3Zp
ZGVkLiIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIkF0IGxlYXN0
IG9uZSBtZXJjaGFudCBjYXBhYmlsaXR5IG11c3QgYmUgcHJvdmlkZWQuIl9zIH07CiAKICAgICBB
cHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6TWVyY2hhbnRDYXBhYmlsaXRpZXMgcmVzdWx0
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5
UmVxdWVzdEJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBh
eVJlcXVlc3RCYXNlLmNwcAppbmRleCAyNDU4NmQ1ZGQ0NzljOTA5M2Q0OWY5NjEwMTE5MWNhYThl
ODUwOTdlLi44ZDM2MjdhNmY2YTI3ZmI4YzgyYzkzYWQ1NDZkNmFhZjA2OWJmMTMyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5UmVxdWVzdEJhc2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlSZXF1ZXN0
QmFzZS5jcHAKQEAgLTczLDcgKzczLDcgQEAgRXhjZXB0aW9uT3I8QXBwbGVQYXlTZXNzaW9uUGF5
bWVudFJlcXVlc3Q+IGNvbnZlcnRBbmRWYWxpZGF0ZShEb2N1bWVudCYgZG9jdW1lbnQKICAgICBy
ZXN1bHQuc2V0TWVyY2hhbnRDYXBhYmlsaXRpZXMobWVyY2hhbnRDYXBhYmlsaXRpZXMucmVsZWFz
ZVJldHVyblZhbHVlKCkpOwogCiAgICAgaWYgKHJlcXVpcmVzU3VwcG9ydGVkTmV0d29ya3ModmVy
c2lvbiwgcmVxdWVzdCkgJiYgcmVxdWVzdC5zdXBwb3J0ZWROZXR3b3Jrcy5pc0VtcHR5KCkpCi0g
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJBdCBsZWFzdCBvbmUgc3VwcG9y
dGVkIG5ldHdvcmsgbXVzdCBiZSBwcm92aWRlZC4iIH07CisgICAgICAgIHJldHVybiBFeGNlcHRp
b24geyBUeXBlRXJyb3IsICJBdCBsZWFzdCBvbmUgc3VwcG9ydGVkIG5ldHdvcmsgbXVzdCBiZSBw
cm92aWRlZC4iX3MgfTsKIAogICAgIGF1dG8gc3VwcG9ydGVkTmV0d29ya3MgPSBjb252ZXJ0QW5k
VmFsaWRhdGUoZG9jdW1lbnQsIHZlcnNpb24sIHJlcXVlc3Quc3VwcG9ydGVkTmV0d29ya3MsIHBh
eW1lbnRDb29yZGluYXRvcik7CiAgICAgaWYgKHN1cHBvcnRlZE5ldHdvcmtzLmhhc0V4Y2VwdGlv
bigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBh
eVNlc3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNl
c3Npb24uY3BwCmluZGV4IDZjYmZjZjA3OTc1MDFhOTk2MjlmY2M2OTM2YjZmMDUwZjBjZmM4OWEu
LjU5ZTMwMGJlYjcwOTI2ZWY5ODNhZWNiYTZkNGFlNWI2ZTdiMDY1YzYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTZXNzaW9uLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2Vzc2lvbi5jcHAKQEAgLTMx
MCwxMCArMzEwLDEwIEBAIEV4Y2VwdGlvbk9yPFJlZjxBcHBsZVBheVNlc3Npb24+PiBBcHBsZVBh
eVNlc3Npb246OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1lbnQsIHVuCiAgICAgICAgIHJldHVybiBj
YW5DYWxsLnJlbGVhc2VFeGNlcHRpb24oKTsKIAogICAgIGlmICghVXNlckdlc3R1cmVJbmRpY2F0
b3I6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
SW52YWxpZEFjY2Vzc0Vycm9yLCAiTXVzdCBjcmVhdGUgYSBuZXcgQXBwbGVQYXlTZXNzaW9uIGZy
b20gYSB1c2VyIGdlc3R1cmUgaGFuZGxlci4iIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBJbnZhbGlkQWNjZXNzRXJyb3IsICJNdXN0IGNyZWF0ZSBhIG5ldyBBcHBsZVBheVNlc3Npb24g
ZnJvbSBhIHVzZXIgZ2VzdHVyZSBoYW5kbGVyLiJfcyB9OwogCiAgICAgaWYgKCFkb2N1bWVudC5w
YWdlKCkpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJG
cmFtZSBpcyBkZXRhY2hlZCIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRB
Y2Nlc3NFcnJvciwgIkZyYW1lIGlzIGRldGFjaGVkIl9zIH07CiAKICAgICBhdXRvIGNvbnZlcnRl
ZFBheW1lbnRSZXF1ZXN0ID0gY29udmVydEFuZFZhbGlkYXRlKGRvY3VtZW50LCB2ZXJzaW9uLCBX
VEZNb3ZlKHBheW1lbnRSZXF1ZXN0KSwgZG9jdW1lbnQucGFnZSgpLT5wYXltZW50Q29vcmRpbmF0
b3IoKSk7CiAgICAgaWYgKGNvbnZlcnRlZFBheW1lbnRSZXF1ZXN0Lmhhc0V4Y2VwdGlvbigpKQpA
QCAtNDEyLDcgKzQxMiw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEFwcGxlUGF5U2Vzc2lvbjo6b3Bl
blBheW1lbnRTZXR1cChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0CiAgICAgICAgIHJldHVy
biBjYW5DYWxsLnJlbGVhc2VFeGNlcHRpb24oKTsKIAogICAgIGlmICghVXNlckdlc3R1cmVJbmRp
Y2F0b3I6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9u
IHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiTXVzdCBjYWxsIEFwcGxlUGF5U2Vzc2lvbi5vcGVuUGF5
bWVudFNldHVwIGZyb20gYSB1c2VyIGdlc3R1cmUgaGFuZGxlci4iIH07CisgICAgICAgIHJldHVy
biBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJNdXN0IGNhbGwgQXBwbGVQYXlTZXNz
aW9uLm9wZW5QYXltZW50U2V0dXAgZnJvbSBhIHVzZXIgZ2VzdHVyZSBoYW5kbGVyLiJfcyB9Owog
CiAgICAgYXV0byogcGFnZSA9IGRvY3VtZW50LnBhZ2UoKTsKICAgICBpZiAoIXBhZ2UpCkBAIC00
MzEsMTMgKzQzMSwxMyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBBcHBsZVBheVNlc3Npb246Om9wZW5Q
YXltZW50U2V0dXAoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdAogRXhjZXB0aW9uT3I8dm9p
ZD4gQXBwbGVQYXlTZXNzaW9uOjpiZWdpbihEb2N1bWVudCYgZG9jdW1lbnQpCiB7CiAgICAgaWYg
KCFjYW5CZWdpbigpKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vy
cm9yLCAiUGF5bWVudCBzZXNzaW9uIGlzIGFscmVhZHkgYWN0aXZlLiIgfTsKKyAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwgIlBheW1lbnQgc2Vzc2lvbiBpcyBh
bHJlYWR5IGFjdGl2ZS4iX3MgfTsKIAogICAgIGlmIChwYXltZW50Q29vcmRpbmF0b3IoKS5oYXNB
Y3RpdmVTZXNzaW9uKCkpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNz
RXJyb3IsICJQYWdlIGFscmVhZHkgaGFzIGFuIGFjdGl2ZSBwYXltZW50IHNlc3Npb24uIiB9Owor
ICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiUGFnZSBhbHJl
YWR5IGhhcyBhbiBhY3RpdmUgcGF5bWVudCBzZXNzaW9uLiJfcyB9OwogCiAgICAgaWYgKCFwYXlt
ZW50Q29vcmRpbmF0b3IoKS5iZWdpblBheW1lbnRTZXNzaW9uKGRvY3VtZW50LCAqdGhpcywgbV9w
YXltZW50UmVxdWVzdCkpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNz
RXJyb3IsICJUaGVyZSBpcyBhbHJlYWR5IGhhcyBhbiBhY3RpdmUgcGF5bWVudCBzZXNzaW9uLiIg
fTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwgIlRoZXJl
IGlzIGFscmVhZHkgaGFzIGFuIGFjdGl2ZSBwYXltZW50IHNlc3Npb24uIl9zIH07CiAKICAgICBt
X3N0YXRlID0gU3RhdGU6OkFjdGl2ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9hcHBsZXBheS9BcHBsZVBheVNldHVwLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
YXBwbGVwYXkvQXBwbGVQYXlTZXR1cC5jcHAKaW5kZXggZThiMTM2MTY5MGIyMGVhZjdlMWM2MTZh
NzcyYThmNjEzZGVmZjM0OC4uODllNGE0NTVmMTg1ZjgxOTBjN2VjMGQ3NjE3ODRkNTk0NmJjNjE2
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNl
dHVwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2V0
dXAuY3BwCkBAIC05MSw3ICs5MSw3IEBAIHZvaWQgQXBwbGVQYXlTZXR1cDo6YmVnaW4oRG9jdW1l
bnQmIGRvY3VtZW50LCBWZWN0b3I8UmVmUHRyPEFwcGxlUGF5U2V0dXBGZWF0dXJlCiAgICAgfQog
CiAgICAgaWYgKCFVc2VyR2VzdHVyZUluZGljYXRvcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkp
IHsKLSAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9y
LCAiTXVzdCBjYWxsIEFwcGxlUGF5U2V0dXAuYmVnaW4gZnJvbSBhIHVzZXIgZ2VzdHVyZSBoYW5k
bGVyLiIgfSk7CisgICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nl
c3NFcnJvciwgIk11c3QgY2FsbCBBcHBsZVBheVNldHVwLmJlZ2luIGZyb20gYSB1c2VyIGdlc3R1
cmUgaGFuZGxlci4iX3MgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvUGF5bWVudEluc3RhbGxtZW50Q29uZmln
dXJhdGlvbi5tbSBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvUGF5bWVudEluc3Rh
bGxtZW50Q29uZmlndXJhdGlvbi5tbQppbmRleCA2NGQxZGJiMjEyZTcwMmMwMmIyYjgyY2QxZTY4
ZTgwZTc3M2YwODcwLi45OWM3NGQ2ODkxNjQ5MDcyMjUwZGVjNDliOTZkMDBjY2E2YzZlMTdlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRJbnN0YWxs
bWVudENvbmZpZ3VyYXRpb24ubW0KKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBh
eS9QYXltZW50SW5zdGFsbG1lbnRDb25maWd1cmF0aW9uLm1tCkBAIC0yMDcsNyArMjA3LDcgQEAg
RXhjZXB0aW9uT3I8UGF5bWVudEluc3RhbGxtZW50Q29uZmlndXJhdGlvbj4gUGF5bWVudEluc3Rh
bGxtZW50Q29uZmlndXJhdGlvbjo6Y3IKICAgICAgICAgTlNEYXRhICphcHBsaWNhdGlvbk1ldGFk
YXRhID0gW2NvbmZpZ3VyYXRpb24uYXBwbGljYXRpb25NZXRhZGF0YSBkYXRhVXNpbmdFbmNvZGlu
ZzpOU1VURjhTdHJpbmdFbmNvZGluZ107CiAgICAgICAgIGFwcGxpY2F0aW9uTWV0YWRhdGFEaWN0
aW9uYXJ5ID0gZHluYW1pY19vYmpjX2Nhc3Q8TlNEaWN0aW9uYXJ5PihbTlNKU09OU2VyaWFsaXph
dGlvbiBKU09OT2JqZWN0V2l0aERhdGE6YXBwbGljYXRpb25NZXRhZGF0YSBvcHRpb25zOjAgZXJy
b3I6bmlsXSk7CiAgICAgICAgIGlmICghYXBwbGljYXRpb25NZXRhZGF0YURpY3Rpb25hcnkpCi0g
ICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiYXBwbGljYXRpb25NZXRh
ZGF0YSBtdXN0IGJlIGEgSlNPTiBvYmplY3QiIH07CisgICAgICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgVHlwZUVycm9yLCAiYXBwbGljYXRpb25NZXRhZGF0YSBtdXN0IGJlIGEgSlNPTiBvYmpl
Y3QiX3MgfTsKICAgICB9CiAKICAgICByZXR1cm4gUGF5bWVudEluc3RhbGxtZW50Q29uZmlndXJh
dGlvbihjb25maWd1cmF0aW9uLCBhcHBsaWNhdGlvbk1ldGFkYXRhRGljdGlvbmFyeSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRSZXF1ZXN0VmFs
aWRhdG9yLm1tIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50UmVxdWVz
dFZhbGlkYXRvci5tbQppbmRleCBmMTBjNTVkNDk0YTExYzMwYzBhMTA1ZTFiZmI2MTQzOTA4NjY4
YzQwLi5jNTJmZDkyZDA4ZDNkYzRlMzNhZjdlMGZkYmJlM2UwYzhlOGNlY2E4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRSZXF1ZXN0VmFsaWRhdG9y
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvUGF5bWVudFJlcXVlc3RW
YWxpZGF0b3IubW0KQEAgLTk1LDE4ICs5NSwxOCBAQCBFeGNlcHRpb25Pcjx2b2lkPiBQYXltZW50
UmVxdWVzdFZhbGlkYXRvcjo6dmFsaWRhdGUoY29uc3QgQXBwbGVQYXlTZXNzaW9uUGF5bWVudAog
RXhjZXB0aW9uT3I8dm9pZD4gUGF5bWVudFJlcXVlc3RWYWxpZGF0b3I6OnZhbGlkYXRlVG90YWwo
Y29uc3QgQXBwbGVQYXlMaW5lSXRlbSYgdG90YWwpCiB7CiAgICAgaWYgKCF0b3RhbC5sYWJlbCkK
LSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIk1pc3NpbmcgdG90YWwgbGFi
ZWwuIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiTWlzc2luZyB0
b3RhbCBsYWJlbC4iX3MgfTsKIAogICAgIGlmICghdG90YWwuYW1vdW50KQotICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiTWlzc2luZyB0b3RhbCBhbW91bnQuIiB9OworICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiTWlzc2luZyB0b3RhbCBhbW91bnQu
Il9zIH07CiAKICAgICBkb3VibGUgYW1vdW50ID0gW05TRGVjaW1hbE51bWJlciBkZWNpbWFsTnVt
YmVyV2l0aFN0cmluZzp0b3RhbC5hbW91bnQgbG9jYWxlOkB7IE5TTG9jYWxlRGVjaW1hbFNlcGFy
YXRvciA6IEAiLiIgfV0uZG91YmxlVmFsdWU7CiAKICAgICBpZiAoYW1vdW50IDwgMCkKLSAgICAg
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIlRvdGFsIGFtb3VudCBtdXN0IG5vdCBi
ZSBuZWdhdGl2ZS4iIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJU
b3RhbCBhbW91bnQgbXVzdCBub3QgYmUgbmVnYXRpdmUuIl9zIH07CiAKICAgICBpZiAoYW1vdW50
ID4gMTAwMDAwMDAwKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiVG90
YWwgYW1vdW50IGlzIHRvbyBiaWcuIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlw
ZUVycm9yLCAiVG90YWwgYW1vdW50IGlzIHRvbyBiaWcuIl9zIH07CiAKICAgICByZXR1cm4geyB9
OwogfQpAQCAtMTE0LDcgKzExNCw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFBheW1lbnRSZXF1ZXN0
VmFsaWRhdG9yOjp2YWxpZGF0ZVRvdGFsKGNvbnN0IEFwcGxlUGF5TGluZUl0ZW0mCiBzdGF0aWMg
RXhjZXB0aW9uT3I8dm9pZD4gdmFsaWRhdGVDb3VudHJ5Q29kZShjb25zdCBTdHJpbmcmIGNvdW50
cnlDb2RlKQogewogICAgIGlmICghY291bnRyeUNvZGUpCi0gICAgICAgIHJldHVybiBFeGNlcHRp
b24geyBUeXBlRXJyb3IsICJNaXNzaW5nIGNvdW50cnkgY29kZS4iIH07CisgICAgICAgIHJldHVy
biBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJNaXNzaW5nIGNvdW50cnkgY29kZS4iX3MgfTsKIAog
ICAgIGZvciAoYXV0byAqY291bnRyeUNvZGVQdHIgPSB1bG9jX2dldElTT0NvdW50cmllcygpOyAq
Y291bnRyeUNvZGVQdHI7ICsrY291bnRyeUNvZGVQdHIpIHsKICAgICAgICAgaWYgKGNvdW50cnlD
b2RlID09ICpjb3VudHJ5Q29kZVB0cikKQEAgLTEyNyw3ICsxMjcsNyBAQCBzdGF0aWMgRXhjZXB0
aW9uT3I8dm9pZD4gdmFsaWRhdGVDb3VudHJ5Q29kZShjb25zdCBTdHJpbmcmIGNvdW50cnlDb2Rl
KQogc3RhdGljIEV4Y2VwdGlvbk9yPHZvaWQ+IHZhbGlkYXRlQ3VycmVuY3lDb2RlKGNvbnN0IFN0
cmluZyYgY3VycmVuY3lDb2RlKQogewogICAgIGlmICghY3VycmVuY3lDb2RlKQotICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiTWlzc2luZyBjdXJyZW5jeSBjb2RlLiIgfTsK
KyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIk1pc3NpbmcgY3VycmVuY3kg
Y29kZS4iX3MgfTsKIAogICAgIFVFcnJvckNvZGUgZXJyb3JDb2RlID0gVV9aRVJPX0VSUk9SOwog
ICAgIGF1dG8gY3VycmVuY3lDb2RlcyA9IHN0ZDo6dW5pcXVlX3B0cjxVRW51bWVyYXRpb24sIElD
VURlbGV0ZXI8dWVudW1fY2xvc2U+Pih1Y3Vycl9vcGVuSVNPQ3VycmVuY2llcyhVQ1VSUl9BTEws
ICZlcnJvckNvZGUpKTsKQEAgLTE0NCw3ICsxNDQsNyBAQCBzdGF0aWMgRXhjZXB0aW9uT3I8dm9p
ZD4gdmFsaWRhdGVDdXJyZW5jeUNvZGUoY29uc3QgU3RyaW5nJiBjdXJyZW5jeUNvZGUpCiBzdGF0
aWMgRXhjZXB0aW9uT3I8dm9pZD4gdmFsaWRhdGVNZXJjaGFudENhcGFiaWxpdGllcyhjb25zdCBB
cHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6TWVyY2hhbnRDYXBhYmlsaXRpZXMmIG1lcmNo
YW50Q2FwYWJpbGl0aWVzKQogewogICAgIGlmICghbWVyY2hhbnRDYXBhYmlsaXRpZXMuc3VwcG9y
dHMzRFMgJiYgIW1lcmNoYW50Q2FwYWJpbGl0aWVzLnN1cHBvcnRzRU1WICYmICFtZXJjaGFudENh
cGFiaWxpdGllcy5zdXBwb3J0c0NyZWRpdCAmJiAhbWVyY2hhbnRDYXBhYmlsaXRpZXMuc3VwcG9y
dHNEZWJpdCkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIk1pc3Npbmcg
bWVyY2hhbnQgY2FwYWJpbGl0aWVzLiIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5
cGVFcnJvciwgIk1pc3NpbmcgbWVyY2hhbnQgY2FwYWJpbGl0aWVzLiJfcyB9OwogCiAgICAgcmV0
dXJuIHsgfTsKIH0KQEAgLTE1Miw3ICsxNTIsNyBAQCBzdGF0aWMgRXhjZXB0aW9uT3I8dm9pZD4g
dmFsaWRhdGVNZXJjaGFudENhcGFiaWxpdGllcyhjb25zdCBBcHBsZVBheVNlc3Npb25QYXltZQog
c3RhdGljIEV4Y2VwdGlvbk9yPHZvaWQ+IHZhbGlkYXRlU3VwcG9ydGVkTmV0d29ya3MoY29uc3Qg
VmVjdG9yPFN0cmluZz4mIHN1cHBvcnRlZE5ldHdvcmtzKQogewogICAgIGlmIChzdXBwb3J0ZWRO
ZXR3b3Jrcy5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3Is
ICJNaXNzaW5nIHN1cHBvcnRlZCBuZXR3b3Jrcy4iIH07CisgICAgICAgIHJldHVybiBFeGNlcHRp
b24geyBUeXBlRXJyb3IsICJNaXNzaW5nIHN1cHBvcnRlZCBuZXR3b3Jrcy4iX3MgfTsKIAogICAg
IHJldHVybiB7IH07CiB9CkBAIC0xNjEsNyArMTYxLDcgQEAgc3RhdGljIEV4Y2VwdGlvbk9yPHZv
aWQ+IHZhbGlkYXRlU2hpcHBpbmdNZXRob2QoY29uc3QgQXBwbGVQYXlTaGlwcGluZ01ldGhvZCYg
c2gKIHsKICAgICBOU0RlY2ltYWxOdW1iZXIgKmFtb3VudCA9IFtOU0RlY2ltYWxOdW1iZXIgZGVj
aW1hbE51bWJlcldpdGhTdHJpbmc6c2hpcHBpbmdNZXRob2QuYW1vdW50IGxvY2FsZTpAeyBOU0xv
Y2FsZURlY2ltYWxTZXBhcmF0b3IgOiBAIi4iIH1dOwogICAgIGlmIChhbW91bnQuaW50ZWdlclZh
bHVlIDwgMCkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIlNoaXBwaW5n
IG1ldGhvZCBhbW91bnQgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gemVyby4iIH07
CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJTaGlwcGluZyBtZXRob2Qg
YW1vdW50IG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHplcm8uIl9zIH07CiAKICAg
ICByZXR1cm4geyB9OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBs
ZXBheS9QYXltZW50U2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5
L1BheW1lbnRTZXNzaW9uLmNwcAppbmRleCA5NGY5NDU5YjliNDQ4YTk4NDJlYjBmNDAyM2M2NDJh
MDY4ZTgzYzcxLi4yZThmNjZlYTgzYzFkNDcyZGExODdjMDgzNmI1ODE3NmNiYWQ5MWEyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRTZXNzaW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRTZXNzaW9uLmNw
cApAQCAtNTIsMjQgKzUyLDI0IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFBheW1lbnRTZXNzaW9uOjpj
YW5DcmVhdGVTZXNzaW9uKERvY3VtZW50JiBkb2N1bWVudCkKICAgICAgICAgcmV0dXJuIEV4Y2Vw
dGlvbiB7IFNlY3VyaXR5RXJyb3IsICJUaGlyZC1wYXJ0eSBpZnJhbWVzIGFyZSBub3QgYWxsb3dl
ZCB0byByZXF1ZXN0IHBheW1lbnRzIHVubGVzcyBleHBsaWNpdGx5IGFsbG93ZWQgdmlhIEZlYXR1
cmUtUG9saWN5IChwYXltZW50KSJfcyB9OwogCiAgICAgaWYgKCFkb2N1bWVudC5mcmFtZSgpKQot
ICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiVHJ5aW5nIHRv
IHN0YXJ0IGFuIEFwcGxlIFBheSBzZXNzaW9uIGZyb20gYW4gaW5hY3RpdmUgZG9jdW1lbnQuIiB9
OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiVHJ5aW5n
IHRvIHN0YXJ0IGFuIEFwcGxlIFBheSBzZXNzaW9uIGZyb20gYW4gaW5hY3RpdmUgZG9jdW1lbnQu
Il9zIH07CiAKICAgICBpZiAoIWlzU2VjdXJlKCpkb2N1bWVudC5sb2FkZXIoKSkpCi0gICAgICAg
IHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJUcnlpbmcgdG8gc3RhcnQg
YW4gQXBwbGUgUGF5IHNlc3Npb24gZnJvbSBhbiBpbnNlY3VyZSBkb2N1bWVudC4iIH07CisgICAg
ICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJUcnlpbmcgdG8gc3Rh
cnQgYW4gQXBwbGUgUGF5IHNlc3Npb24gZnJvbSBhbiBpbnNlY3VyZSBkb2N1bWVudC4iX3MgfTsK
IAogICAgIGF1dG8mIHRvcERvY3VtZW50ID0gZG9jdW1lbnQudG9wRG9jdW1lbnQoKTsKICAgICBp
ZiAoJmRvY3VtZW50ICE9ICZ0b3BEb2N1bWVudCkgewogICAgICAgICBhdXRvJiB0b3BPcmlnaW4g
PSB0b3BEb2N1bWVudC50b3BPcmlnaW4oKTsKIAogICAgICAgICBpZiAoIWRvY3VtZW50LnNlY3Vy
aXR5T3JpZ2luKCkuaXNTYW1lU2NoZW1lSG9zdFBvcnQodG9wT3JpZ2luKSkKLSAgICAgICAgICAg
IHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJUcnlpbmcgdG8gc3RhcnQg
YW4gQXBwbGUgUGF5IHNlc3Npb24gZnJvbSBhIGRvY3VtZW50IHdpdGggYW4gZGlmZmVyZW50IHNl
Y3VyaXR5IG9yaWdpbiB0aGFuIGl0cyB0b3AtbGV2ZWwgZnJhbWUuIiB9OworICAgICAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwgIlRyeWluZyB0byBzdGFydCBh
biBBcHBsZSBQYXkgc2Vzc2lvbiBmcm9tIGEgZG9jdW1lbnQgd2l0aCBhbiBkaWZmZXJlbnQgc2Vj
dXJpdHkgb3JpZ2luIHRoYW4gaXRzIHRvcC1sZXZlbCBmcmFtZS4iX3MgfTsKIAogICAgICAgICBm
b3IgKGF1dG8qIGFuY2VzdG9yRG9jdW1lbnQgPSBkb2N1bWVudC5wYXJlbnREb2N1bWVudCgpOyBh
bmNlc3RvckRvY3VtZW50ICE9ICZ0b3BEb2N1bWVudDsgYW5jZXN0b3JEb2N1bWVudCA9IGFuY2Vz
dG9yRG9jdW1lbnQtPnBhcmVudERvY3VtZW50KCkpIHsKICAgICAgICAgICAgIGlmICghaXNTZWN1
cmUoKmFuY2VzdG9yRG9jdW1lbnQtPmxvYWRlcigpKSkKLSAgICAgICAgICAgICAgICByZXR1cm4g
RXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiVHJ5aW5nIHRvIHN0YXJ0IGFuIEFwcGxl
IFBheSBzZXNzaW9uIGZyb20gYSBkb2N1bWVudCB3aXRoIGFuIGluc2VjdXJlIHBhcmVudCBmcmFt
ZS4iIH07CisgICAgICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NF
cnJvciwgIlRyeWluZyB0byBzdGFydCBhbiBBcHBsZSBQYXkgc2Vzc2lvbiBmcm9tIGEgZG9jdW1l
bnQgd2l0aCBhbiBpbnNlY3VyZSBwYXJlbnQgZnJhbWUuIl9zIH07CiAKICAgICAgICAgICAgIGlm
ICghYW5jZXN0b3JEb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKS5pc1NhbWVTY2hlbWVIb3N0UG9y
dCh0b3BPcmlnaW4pKQotICAgICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlk
QWNjZXNzRXJyb3IsICJUcnlpbmcgdG8gc3RhcnQgYW4gQXBwbGUgUGF5IHNlc3Npb24gZnJvbSBh
IGRvY3VtZW50IHdpdGggYW4gZGlmZmVyZW50IHNlY3VyaXR5IG9yaWdpbiB0aGFuIGl0cyB0b3At
bGV2ZWwgZnJhbWUuIiB9OworICAgICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZh
bGlkQWNjZXNzRXJyb3IsICJUcnlpbmcgdG8gc3RhcnQgYW4gQXBwbGUgUGF5IHNlc3Npb24gZnJv
bSBhIGRvY3VtZW50IHdpdGggYW4gZGlmZmVyZW50IHNlY3VyaXR5IG9yaWdpbiB0aGFuIGl0cyB0
b3AtbGV2ZWwgZnJhbWUuIl9zIH07CiAgICAgICAgIH0KICAgICB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQYXlt
ZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L3BheW1lbnRy
ZXF1ZXN0L0FwcGxlUGF5UGF5bWVudEhhbmRsZXIuY3BwCmluZGV4IDcwNTUxYWU4NjQ0ODljOWU2
NzdjZDkyMTUzZjVkMWUyMjdhNDAyNTQuLmViNTZiOTFlNWZlZGFjNjZhNzlkMDQ2YTNiZmVjOGRi
MjkyNzVkN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvcGF5
bWVudHJlcXVlc3QvQXBwbGVQYXlQYXltZW50SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9hcHBsZXBheS9wYXltZW50cmVxdWVzdC9BcHBsZVBheVBheW1lbnRIYW5kbGVy
LmNwcApAQCAtODksNyArODksNyBAQCBzdGF0aWMgaW5saW5lIFBheW1lbnRDb29yZGluYXRvciYg
cGF5bWVudENvb3JkaW5hdG9yKERvY3VtZW50JiBkb2N1bWVudCkKIHN0YXRpYyBFeGNlcHRpb25P
cjxBcHBsZVBheVJlcXVlc3Q+IGNvbnZlcnRBbmRWYWxpZGF0ZUFwcGxlUGF5UmVxdWVzdChEb2N1
bWVudCYgZG9jdW1lbnQsIEpTQzo6SlNWYWx1ZSBkYXRhKQogewogICAgIGlmIChkYXRhLmlzRW1w
dHkoKSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIk1pc3NpbmcgcGF5
bWVudCBtZXRob2QgZGF0YS4iIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJy
b3IsICJNaXNzaW5nIHBheW1lbnQgbWV0aG9kIGRhdGEuIl9zIH07CiAKICAgICBhdXRvIHRocm93
U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKGRvY3VtZW50LnZtKCkpOwogICAgIGF1dG8gYXBw
bGVQYXlSZXF1ZXN0ID0gY29udmVydERpY3Rpb25hcnk8QXBwbGVQYXlSZXF1ZXN0PigqZG9jdW1l
bnQuZ2xvYmFsT2JqZWN0KCksIGRhdGEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9hcHBsaWNhdGlvbm1hbmlmZXN0L0FwcGxpY2F0aW9uTWFuaWZlc3RQYXJzZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsaWNhdGlvbm1hbmlmZXN0L0FwcGxpY2F0aW9uTWFu
aWZlc3RQYXJzZXIuY3BwCmluZGV4IDZkZmZmNDdiN2UyY2I4OWI1NGY5NWVjNDYyN2QzZDdjZTY5
MGY5MGIuLmM1ZDEzMDM4Y2ZjNjdmNDVhNDZlNjhjOWNjNDUyMTA3M2Q3NmE1NzQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGljYXRpb25tYW5pZmVzdC9BcHBsaWNhdGlv
bk1hbmlmZXN0UGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxpY2F0
aW9ubWFuaWZlc3QvQXBwbGljYXRpb25NYW5pZmVzdFBhcnNlci5jcHAKQEAgLTIzMSw3ICsyMzEs
NyBAQCBWZWN0b3I8QXBwbGljYXRpb25NYW5pZmVzdDo6SWNvbj4gQXBwbGljYXRpb25NYW5pZmVz
dFBhcnNlcjo6cGFyc2VJY29ucyhjb25zdCBKUwogICAgICAgICAgICAgICAgIGN1cnJlbnRJY29u
LnB1cnBvc2VzID0gcHVycG9zZXM7CiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAg
ICAgIHB1cnBvc2VTdHJpbmdWYWx1ZSA9IHB1cnBvc2VTdHJpbmdWYWx1ZS5zdHJpcFdoaXRlU3Bh
Y2UoKS5jb252ZXJ0VG9BU0NJSUxvd2VyY2FzZSgpOwotICAgICAgICAgICAgICAgIFZlY3RvcjxT
dHJpbmc+IGtleXdvcmRzID0gcHVycG9zZVN0cmluZ1ZhbHVlLnNwbGl0QWxsb3dpbmdFbXB0eUVu
dHJpZXMoIiAiKTsKKyAgICAgICAgICAgICAgICBWZWN0b3I8U3RyaW5nPiBrZXl3b3JkcyA9IHB1
cnBvc2VTdHJpbmdWYWx1ZS5zcGxpdEFsbG93aW5nRW1wdHlFbnRyaWVzKCIgIl9zKTsKIAogICAg
ICAgICAgICAgICAgIGZvciAoY29uc3QgYXV0byYga2V5d29yZCA6IGtleXdvcmRzKSB7CiAgICAg
ICAgICAgICAgICAgICAgIGlmIChrZXl3b3JkID09ICJtb25vY2hyb21lIikKQEAgLTI4Miw5ICsy
ODIsOSBAQCBzdGF0aWMgYm9vbCBpc0luU2NvcGUoY29uc3QgVVJMJiBzY29wZVVSTCwgY29uc3Qg
VVJMJiB0YXJnZXRVUkwpCiAKIFVSTCBBcHBsaWNhdGlvbk1hbmlmZXN0UGFyc2VyOjpwYXJzZVNj
b3BlKGNvbnN0IEpTT046Ok9iamVjdCYgbWFuaWZlc3QsIGNvbnN0IFVSTCYgZG9jdW1lbnRVUkws
IGNvbnN0IFVSTCYgc3RhcnRVUkwpCiB7Ci0gICAgVVJMIGRlZmF1bHRTY29wZSB7IHN0YXJ0VVJM
LCAiLi8iIH07CisgICAgVVJMIGRlZmF1bHRTY29wZSB7IHN0YXJ0VVJMLCAiLi8iX3MgfTsKIAot
ICAgIGF1dG8gdmFsdWUgPSBtYW5pZmVzdC5nZXRWYWx1ZSgic2NvcGUiKTsKKyAgICBhdXRvIHZh
bHVlID0gbWFuaWZlc3QuZ2V0VmFsdWUoInNjb3BlIl9zKTsKICAgICBpZiAoIXZhbHVlKQogICAg
ICAgICByZXR1cm4gZGVmYXVsdFNjb3BlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2NhY2hlL1dpbmRvd09yV29ya2VyR2xvYmFsU2NvcGVDYWNoZXMuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9XaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlQ2FjaGVzLmNw
cAppbmRleCBhMTc0OTVkNzY1OTY1NmZlMmRkOWNjYTNkMzcxMTIyMWZlNDhkMTA0Li5kZmUxODhm
YzBlZmZkYWMyYmVmMGU5YWNkZTk2YzNlZjYyYjg2YTYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2NhY2hlL1dpbmRvd09yV29ya2VyR2xvYmFsU2NvcGVDYWNoZXMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvV2luZG93T3JXb3JrZXJHbG9iYWxTY29w
ZUNhY2hlcy5jcHAKQEAgLTEyNyw3ICsxMjcsNyBAQCBET01DYWNoZVN0b3JhZ2UqIFdvcmtlckds
b2JhbFNjb3BlQ2FjaGVzOjpjYWNoZXMoKSBjb25zdAogRXhjZXB0aW9uT3I8RE9NQ2FjaGVTdG9y
YWdlKj4gV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZUNhY2hlczo6Y2FjaGVzKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQmIGNvbnRleHQsIERPTVdpbmRvdyYgd2luZG93KQogewogICAgIGlmIChkb3du
Y2FzdDxEb2N1bWVudD4oY29udGV4dCkuaXNTYW5kYm94ZWQoU2FuZGJveE9yaWdpbikpCi0gICAg
ICAgIHJldHVybiBFeGNlcHRpb24geyBTZWN1cml0eUVycm9yLCAiQ2FjaGUgc3RvcmFnZSBpcyBk
aXNhYmxlZCBiZWNhdXNlIHRoZSBjb250ZXh0IGlzIHNhbmRib3hlZCBhbmQgbGFja3MgdGhlICdh
bGxvdy1zYW1lLW9yaWdpbicgZmxhZyIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFNl
Y3VyaXR5RXJyb3IsICJDYWNoZSBzdG9yYWdlIGlzIGRpc2FibGVkIGJlY2F1c2UgdGhlIGNvbnRl
eHQgaXMgc2FuZGJveGVkIGFuZCBsYWNrcyB0aGUgJ2FsbG93LXNhbWUtb3JpZ2luJyBmbGFnIl9z
IH07CiAKICAgICBpZiAoIXdpbmRvdy5pc0N1cnJlbnRseURpc3BsYXllZEluRnJhbWUoKSkKICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2VuY3J5cHRlZG1lZGlhL0luaXREYXRhUmVnaXN0cnkuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9lbmNyeXB0ZWRtZWRpYS9Jbml0RGF0YVJlZ2lzdHJ5LmNwcAppbmRleCA2Zjg4OGUxNzg1
OGRkYTZkOTQ3MWVjMWY2ZWY1ZDA2NmRmMGU0OTkwLi44Y2RiY2E3N2FmMzgzMDdiMmI0YzBhNGQy
NWExZjBlOTExYWJiMWRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5
cHRlZG1lZGlhL0luaXREYXRhUmVnaXN0cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZW5jcnlwdGVkbWVkaWEvSW5pdERhdGFSZWdpc3RyeS5jcHAKQEAgLTEwNSw3ICsxMDUsNyBA
QCBzdGF0aWMgUmVmUHRyPEZyYWdtZW50ZWRTaGFyZWRCdWZmZXI+IHNhbml0aXplS2V5aWRzKGNv
bnN0IEZyYWdtZW50ZWRTaGFyZWRCdWZmZQogICAgIGF1dG8ga2lkc0FycmF5ID0gSlNPTjo6QXJy
YXk6OmNyZWF0ZSgpOwogICAgIGZvciAoYXV0byYgYnVmZmVyIDoga2V5SURCdWZmZXIudmFsdWUo
KSkKICAgICAgICAga2lkc0FycmF5LT5wdXNoU3RyaW5nKGJhc2U2NFVSTEVuY29kZVRvU3RyaW5n
KGJ1ZmZlci0+bWFrZUNvbnRpZ3VvdXMoKS0+ZGF0YSgpLCBidWZmZXItPnNpemUoKSkpOwotICAg
IG9iamVjdC0+c2V0QXJyYXkoImtpZHMiLCBXVEZNb3ZlKGtpZHNBcnJheSkpOworICAgIG9iamVj
dC0+c2V0QXJyYXkoImtpZHMiX3MsIFdURk1vdmUoa2lkc0FycmF5KSk7CiAKICAgICBDU3RyaW5n
IGpzb25EYXRhID0gb2JqZWN0LT50b0pTT05TdHJpbmcoKS51dGY4KCk7CiAgICAgcmV0dXJuIFNo
YXJlZEJ1ZmZlcjo6Y3JlYXRlKGpzb25EYXRhLmRhdGEoKSwganNvbkRhdGEubGVuZ3RoKCkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbnRyaWVzYXBpL0RPTUZpbGVTeXN0
ZW0uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbnRyaWVzYXBpL0RPTUZpbGVTeXN0ZW0u
Y3BwCmluZGV4IDlmNDgxZGM2MjlhYTc3YTYwZGE1YzVlZTA0NGE3MzZiZDQ2ZDNkMjAuLjlhY2E2
MThiNWQ2YzcyZTI0MjQ1OTRiOWExOWRlMWE0ZTA0ZjljOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZW50cmllc2FwaS9ET01GaWxlU3lzdGVtLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2VudHJpZXNhcGkvRE9NRmlsZVN5c3RlbS5jcHAKQEAgLTU5LDcgKzU5
LDcgQEAgc3RhdGljIEV4Y2VwdGlvbk9yPFZlY3RvcjxMaXN0ZWRDaGlsZD4+IGxpc3REaXJlY3Rv
cnlXaXRoTWV0YWRhdGEoY29uc3QgU3RyaW5nJgogewogICAgIEFTU0VSVCghaXNNYWluVGhyZWFk
KCkpOwogICAgIGlmIChGaWxlU3lzdGVtOjpmaWxlVHlwZShmdWxsUGF0aCkgIT0gRmlsZVN5c3Rl
bTo6RmlsZVR5cGU6OkRpcmVjdG9yeSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdEZv
dW5kRXJyb3IsICJQYXRoIG5vIGxvbmdlciBleGlzdHMgb3IgaXMgbm8gbG9uZ2VyIGEgZGlyZWN0
b3J5IiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90Rm91bmRFcnJvciwgIlBhdGgg
bm8gbG9uZ2VyIGV4aXN0cyBvciBpcyBubyBsb25nZXIgYSBkaXJlY3RvcnkiX3MgfTsKIAogICAg
IGF1dG8gY2hpbGROYW1lcyA9IEZpbGVTeXN0ZW06Omxpc3REaXJlY3RvcnkoZnVsbFBhdGgpOwog
ICAgIFZlY3RvcjxMaXN0ZWRDaGlsZD4gbGlzdGVkQ2hpbGRyZW47CkBAIC0xODMsNyArMTgzLDcg
QEAgc3RhdGljIEV4Y2VwdGlvbk9yPFN0cmluZz4gdmFsaWRhdGVQYXRoSXNFeHBlY3RlZFR5cGUo
Y29uc3QgU3RyaW5nJiBmdWxsUGF0aCwgU3QKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5v
dEZvdW5kRXJyb3IsICJQYXRoIGRvZXMgbm90IGV4aXN0Il9zIH07CiAKICAgICBpZiAoKmZpbGVU
eXBlICE9IGV4cGVjdGVkVHlwZSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVNaXNt
YXRjaEVycm9yLCAiRW50cnkgYXQgcGF0aCBkb2VzIG5vdCBoYXZlIGV4cGVjdGVkIHR5cGUiIH07
CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlTWlzbWF0Y2hFcnJvciwgIkVudHJ5IGF0
IHBhdGggZG9lcyBub3QgaGF2ZSBleHBlY3RlZCB0eXBlIl9zIH07CiAKICAgICByZXR1cm4gV1RG
TW92ZSh2aXJ0dWFsUGF0aCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2ZldGNoL0ZldGNoQm9keUNvbnN1bWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0
Y2gvRmV0Y2hCb2R5Q29uc3VtZXIuY3BwCmluZGV4IDkzNmE3ZTQzMDU2YzQ1NWUyOWIyNTUwZmI0
MDEwYmVlZWMzYjM1ZWIuLjZmNmRjNjdjYzM0YjhkNDA3YWJmNmRlNDY0YzUyOWM3NDIzNmQ1ZjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5Q29uc3Vt
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5Q29uc3Vt
ZXIuY3BwCkBAIC0xNTAsMTAgKzE1MCwxMCBAQCBSZWZQdHI8RE9NRm9ybURhdGE+IEZldGNoQm9k
eUNvbnN1bWVyOjpwYWNrYWdlRm9ybURhdGEoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogYwogICAg
ICAgICAgICAgY29udGVudERpc3Bvc2l0aW9uUGFyYW1ldGVyc0JlZ2luKys7CiAKICAgICAgICAg
YXV0byBwYXJhbWV0ZXJzID0gcGFyc2VQYXJhbWV0ZXJzKFN0cmluZ1ZpZXcoaGVhZGVyKS5zdWJz
dHJpbmcoY29udGVudERpc3Bvc2l0aW9uUGFyYW1ldGVyc0JlZ2luLCBjb250ZW50RGlzcG9zaXRp
b25FbmQgLSBjb250ZW50RGlzcG9zaXRpb25QYXJhbWV0ZXJzQmVnaW4pLCAwKTsKLSAgICAgICAg
U3RyaW5nIG5hbWUgPSBwYXJhbWV0ZXJzLmdldCgibmFtZSIpOworICAgICAgICBTdHJpbmcgbmFt
ZSA9IHBhcmFtZXRlcnMuZ2V0KCJuYW1lIl9zKTsKICAgICAgICAgaWYgKCFuYW1lKQogICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBTdHJpbmcgZmlsZW5hbWUgPSBwYXJhbWV0ZXJz
LmdldCgiZmlsZW5hbWUiKTsKKyAgICAgICAgU3RyaW5nIGZpbGVuYW1lID0gcGFyYW1ldGVycy5n
ZXQoImZpbGVuYW1lIl9zKTsKICAgICAgICAgaWYgKCFmaWxlbmFtZSkKICAgICAgICAgICAgIGZv
cm0uYXBwZW5kKG5hbWUsIFN0cmluZzo6ZnJvbVVURjgoYm9keUJlZ2luLCBib2R5TGVuZ3RoKSk7
CiAgICAgICAgIGVsc2UgewpAQCAtMTc2LDcgKzE3Niw3IEBAIFJlZlB0cjxET01Gb3JtRGF0YT4g
RmV0Y2hCb2R5Q29uc3VtZXI6OnBhY2thZ2VGb3JtRGF0YShTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBjCiAgICAgICAgIGlmICghbWltZVR5cGUpCiAgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OwogICAgICAgICBpZiAoZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShtaW1lVHlwZS0+dHlwZSwg
Im11bHRpcGFydCIpICYmIGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobWltZVR5cGUtPnN1YnR5cGUs
ICJmb3JtLWRhdGEiKSkgewotICAgICAgICAgICAgYXV0byBpdGVyYXRvciA9IG1pbWVUeXBlLT5w
YXJhbWV0ZXJzLmZpbmQoImJvdW5kYXJ5Iik7CisgICAgICAgICAgICBhdXRvIGl0ZXJhdG9yID0g
bWltZVR5cGUtPnBhcmFtZXRlcnMuZmluZCgiYm91bmRhcnkiX3MpOwogICAgICAgICAgICAgaWYg
KGl0ZXJhdG9yICE9IG1pbWVUeXBlLT5wYXJhbWV0ZXJzLmVuZCgpKQogICAgICAgICAgICAgICAg
IHJldHVybiBpdGVyYXRvci0+dmFsdWU7CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hIZWFkZXJzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZmV0Y2gvRmV0Y2hIZWFkZXJzLmNwcAppbmRleCAwOTBmNWNmNGQwZmYxMTVkODRiZjcz
M2I3YTdiMTViMzRmMmUzYTVmLi4yNmFmMDhmMWFkNWUxNGNiZDFhZWQ3NGVmZGVhM2YxYWQzOGJl
NjE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoSGVhZGVy
cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEhlYWRlcnMuY3Bw
CkBAIC0xMDIsNyArMTAyLDcgQEAgc3RhdGljIEV4Y2VwdGlvbk9yPHZvaWQ+IGZpbGxIZWFkZXJN
YXAoSFRUUEhlYWRlck1hcCYgaGVhZGVycywgY29uc3QgRmV0Y2hIZWFkZXIKICAgICAgICAgYXV0
byYgc2VxdWVuY2UgPSBzdGQ6OmdldDxWZWN0b3I8VmVjdG9yPFN0cmluZz4+PihoZWFkZXJzSW5p
dCk7CiAgICAgICAgIGZvciAoYXV0byYgaGVhZGVyIDogc2VxdWVuY2UpIHsKICAgICAgICAgICAg
IGlmIChoZWFkZXIuc2l6ZSgpICE9IDIpCi0gICAgICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlv
biB7IFR5cGVFcnJvciwgIkhlYWRlciBzdWItc2VxdWVuY2UgbXVzdCBjb250YWluIGV4YWN0bHkg
dHdvIGl0ZW1zIiB9OworICAgICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJy
b3IsICJIZWFkZXIgc3ViLXNlcXVlbmNlIG11c3QgY29udGFpbiBleGFjdGx5IHR3byBpdGVtcyJf
cyB9OwogICAgICAgICAgICAgYXV0byByZXN1bHQgPSBhcHBlbmRUb0hlYWRlck1hcChoZWFkZXJb
MF0sIGhlYWRlclsxXSwgaGVhZGVycywgZ3VhcmQpOwogICAgICAgICAgICAgaWYgKHJlc3VsdC5o
YXNFeGNlcHRpb24oKSkKICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2VFeGNl
cHRpb24oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hM
b2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaExvYWRlci5jcHAK
aW5kZXggN2NlYTMyYTk1OGYxNGJkOGM4NzhiYzUxZjQ5YzFkMWFkYTZkNmEzNy4uZjc0MzM4ZThk
MzIyMjcwYTM4MGYyNDlhNjQyZTRlYTBmOTIyODZlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9mZXRjaC9GZXRjaExvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9mZXRjaC9GZXRjaExvYWRlci5jcHAKQEAgLTY5LDcgKzY5LDcgQEAgdm9pZCBGZXRjaExv
YWRlcjo6c3RhcnRMb2FkaW5nQmxvYlVSTChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0
LCBjb25zdCBVUkwKIAogICAgIFJlc291cmNlUmVxdWVzdCByZXF1ZXN0KG1fdXJsRm9yUmVhZGlu
Zyk7CiAgICAgcmVxdWVzdC5zZXRJbml0aWF0b3JJZGVudGlmaWVyKGNvbnRleHQucmVzb3VyY2VS
ZXF1ZXN0SWRlbnRpZmllcigpKTsKLSAgICByZXF1ZXN0LnNldEhUVFBNZXRob2QoIkdFVCIpOwor
ICAgIHJlcXVlc3Quc2V0SFRUUE1ldGhvZCgiR0VUIl9zKTsKIAogICAgIFRocmVhZGFibGVMb2Fk
ZXJPcHRpb25zIG9wdGlvbnM7CiAgICAgb3B0aW9ucy5zZW5kTG9hZENhbGxiYWNrcyA9IFNlbmRD
YWxsYmFja1BvbGljeTo6U2VuZENhbGxiYWNrczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUu
Y3BwCmluZGV4IDBlOTVmZmRlZTRhZjg1NGU4N2UyNTNhOWNkZTg2MzQyZjVhMmVkZjguLmFhMzJh
OWJiMjJmYjRiYmY5M2JhZGQ2MWQxMjg4YmJmOTA4ZDNkNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1G
aWxlSGFuZGxlLmNwcApAQCAtNTUsNyArNTUsNyBAQCBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Rmls
ZVN5c3RlbUZpbGVIYW5kbGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgU3RyaQog
dm9pZCBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Z2V0RmlsZShET01Qcm9taXNlRGVmZXJyZWQ8SURM
SW50ZXJmYWNlPEZpbGU+PiYmIHByb21pc2UpCiB7CiAgICAgaWYgKGlzQ2xvc2VkKCkpCi0gICAg
ICAgIHJldHVybiBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwg
IkhhbmRsZSBpcyBjbG9zZWQiIH0pOworICAgICAgICByZXR1cm4gcHJvbWlzZS5yZWplY3QoRXhj
ZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJIYW5kbGUgaXMgY2xvc2VkIl9zIH0pOwogCiAg
ICAgY29ubmVjdGlvbigpLmdldEZpbGUoaWRlbnRpZmllcigpLCBbcHJvdGVjdGVkVGhpcyA9IFJl
ZiB7ICp0aGlzIH0sIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0
YWJsZSB7CiAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCkBAIC03Miw3ICs3Miw3
IEBAIHZvaWQgRmlsZVN5c3RlbUZpbGVIYW5kbGU6OmdldEZpbGUoRE9NUHJvbWlzZURlZmVycmVk
PElETEludGVyZmFjZTxGaWxlPj4mJiBwcm9tCiB2b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpj
cmVhdGVTeW5jQWNjZXNzSGFuZGxlKERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8Rmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU+PiYmIHByb21pc2UpCiB7CiAgICAgaWYgKGlzQ2xvc2Vk
KCkpCi0gICAgICAgIHJldHVybiBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3Rh
dGVFcnJvciwgIkhhbmRsZSBpcyBjbG9zZWQiIH0pOworICAgICAgICByZXR1cm4gcHJvbWlzZS5y
ZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJIYW5kbGUgaXMgY2xvc2VkIl9z
IH0pOwogCiAgICAgY29ubmVjdGlvbigpLmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoaWRlbnRpZmll
cigpLCBbcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH0sIHByb21pc2UgPSBXVEZNb3ZlKHBy
b21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CiAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhj
ZXB0aW9uKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1h
Y2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVz
eXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5jcHAKaW5kZXggMGI5Zjc4OGU0OTAzZmE3ZTdh
ZTQyODk3YTAwMmI5NmU4ZGZlMTNkNy4uOWUwY2M4NzRiMGM3MzQ0NTdjNDljNGMzODZkYWMyYjNi
ZjRkZTU5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmls
ZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmNwcApAQCAtNjAsNyArNjAsNyBAQCB2b2lk
IEZpbGVTeXN0ZW1IYW5kbGU6OmNsb3NlKCkKIHZvaWQgRmlsZVN5c3RlbUhhbmRsZTo6aXNTYW1l
RW50cnkoRmlsZVN5c3RlbUhhbmRsZSYgaGFuZGxlLCBET01Qcm9taXNlRGVmZXJyZWQ8SURMQm9v
bGVhbj4mJiBwcm9taXNlKSBjb25zdAogewogICAgIGlmIChpc0Nsb3NlZCgpKQotICAgICAgICBy
ZXR1cm4gcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJIYW5k
bGUgaXMgY2xvc2VkIiB9KTsKKyAgICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0KEV4Y2VwdGlv
biB7IEludmFsaWRTdGF0ZUVycm9yLCAiSGFuZGxlIGlzIGNsb3NlZCJfcyB9KTsKIAogICAgIGlm
IChtX2tpbmQgIT0gaGFuZGxlLmtpbmQoKSB8fCBtX25hbWUgIT0gaGFuZGxlLm5hbWUoKSkKICAg
ICAgICAgcmV0dXJuIHByb21pc2UucmVzb2x2ZShmYWxzZSk7CkBAIC03Myw3ICs3Myw3IEBAIHZv
aWQgRmlsZVN5c3RlbUhhbmRsZTo6aXNTYW1lRW50cnkoRmlsZVN5c3RlbUhhbmRsZSYgaGFuZGxl
LCBET01Qcm9taXNlRGVmZXJyZWQ8CiB2b2lkIEZpbGVTeXN0ZW1IYW5kbGU6Om1vdmUoRmlsZVN5
c3RlbUhhbmRsZSYgZGVzdGluYXRpb25IYW5kbGUsIGNvbnN0IFN0cmluZyYgbmV3TmFtZSwgRE9N
UHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKIHsKICAgICBpZiAoaXNDbG9zZWQoKSkK
LSAgICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVy
cm9yLCAiSGFuZGxlIGlzIGNsb3NlZCIgfSk7CisgICAgICAgIHJldHVybiBwcm9taXNlLnJlamVj
dChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkhhbmRsZSBpcyBjbG9zZWQiX3MgfSk7
CiAKICAgICBpZiAoZGVzdGluYXRpb25IYW5kbGUua2luZCgpICE9IEtpbmQ6OkRpcmVjdG9yeSkK
ICAgICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IFR5cGVNaXNtYXRjaEVy
cm9yIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
RGF0YWJhc2VJZGVudGlmaWVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9J
REJEYXRhYmFzZUlkZW50aWZpZXIuaAppbmRleCAyNzFkZWQ0ZGVlOGI4ODhkMzFlNGM0YzExZTFk
MWZjODg5ZGJhNmFiLi40NjU3NjhkOGU1ZTRmZTRkZmFiMTg5M2I3OWNlNmFjNmQ3N2U1NTY2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUlk
ZW50aWZpZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRh
YmFzZUlkZW50aWZpZXIuaApAQCAtNzAsNyArNzAsNyBAQCBwdWJsaWM6CiAgICAgY29uc3QgQ2xp
ZW50T3JpZ2luJiBvcmlnaW4oKSBjb25zdCB7IHJldHVybiBtX29yaWdpbjsgfQogICAgIGJvb2wg
aXNUcmFuc2llbnQoKSBjb25zdCB7IHJldHVybiBtX2lzVHJhbnNpZW50OyB9CiAKLSAgICBTdHJp
bmcgZGF0YWJhc2VEaXJlY3RvcnlSZWxhdGl2ZVRvUm9vdChjb25zdCBTdHJpbmcmIHJvb3REaXJl
Y3RvcnksIGNvbnN0IFN0cmluZyYgdmVyc2lvblN0cmluZz0idjEiKSBjb25zdDsKKyAgICBTdHJp
bmcgZGF0YWJhc2VEaXJlY3RvcnlSZWxhdGl2ZVRvUm9vdChjb25zdCBTdHJpbmcmIHJvb3REaXJl
Y3RvcnksIGNvbnN0IFN0cmluZyYgdmVyc2lvblN0cmluZyA9ICJ2MSJfcykgY29uc3Q7CiAgICAg
V0VCQ09SRV9FWFBPUlQgc3RhdGljIFN0cmluZyBkYXRhYmFzZURpcmVjdG9yeVJlbGF0aXZlVG9S
b290KGNvbnN0IENsaWVudE9yaWdpbiYsIGNvbnN0IFN0cmluZyYgcm9vdERpcmVjdG9yeSwgY29u
c3QgU3RyaW5nJiB2ZXJzaW9uU3RyaW5nKTsKIAogICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+
IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL0lEQktleURhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvSURCS2V5RGF0YS5jcHAKaW5kZXggMmEzN2M1MjhlZjViZjlkOTU3NzNhMGIx
MGYwMjUyMjliZGU1YTQxOC4uNDYwZjE3NGEzODFhYjZhYmE0Y2EyOTgzMTQ1MjY5OGI1ZDUyOTBk
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5RGF0
YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5RGF0YS5j
cHAKQEAgLTE0OSwzNSArMTQ5LDM1IEBAIHZvaWQgSURCS2V5RGF0YTo6aXNvbGF0ZWRDb3B5KGNv
bnN0IElEQktleURhdGEmIHNvdXJjZSwgSURCS2V5RGF0YSYgZGVzdGluYXRpb24pCiAKIHZvaWQg
SURCS2V5RGF0YTo6ZW5jb2RlKEtleWVkRW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBl
bmNvZGVyLmVuY29kZUJvb2woIm51bGwiLCBtX2lzTnVsbCk7CisgICAgZW5jb2Rlci5lbmNvZGVC
b29sKCJudWxsIl9zLCBtX2lzTnVsbCk7CiAgICAgaWYgKG1faXNOdWxsKQogICAgICAgICByZXR1
cm47CiAKLSAgICBlbmNvZGVyLmVuY29kZUVudW0oInR5cGUiLCBtX3R5cGUpOworICAgIGVuY29k
ZXIuZW5jb2RlRW51bSgidHlwZSJfcywgbV90eXBlKTsKIAogICAgIHN3aXRjaCAobV90eXBlKSB7
CiAgICAgY2FzZSBJbmRleGVkREI6OktleVR5cGU6OkludmFsaWQ6CiAgICAgICAgIHJldHVybjsK
ICAgICBjYXNlIEluZGV4ZWREQjo6S2V5VHlwZTo6QXJyYXk6IHsKICAgICAgICAgYXV0byYgYXJy
YXkgPSBzdGQ6OmdldDxWZWN0b3I8SURCS2V5RGF0YT4+KG1fdmFsdWUpOwotICAgICAgICBlbmNv
ZGVyLmVuY29kZU9iamVjdHMoImFycmF5IiwgYXJyYXkuYmVnaW4oKSwgYXJyYXkuZW5kKCksIFtd
KEtleWVkRW5jb2RlciYgZW5jb2RlciwgY29uc3QgSURCS2V5RGF0YSYga2V5KSB7CisgICAgICAg
IGVuY29kZXIuZW5jb2RlT2JqZWN0cygiYXJyYXkiX3MsIGFycmF5LmJlZ2luKCksIGFycmF5LmVu
ZCgpLCBbXShLZXllZEVuY29kZXImIGVuY29kZXIsIGNvbnN0IElEQktleURhdGEmIGtleSkgewog
ICAgICAgICAgICAga2V5LmVuY29kZShlbmNvZGVyKTsKICAgICAgICAgfSk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAgICAgY2FzZSBJbmRleGVkREI6OktleVR5cGU6OkJpbmFyeTogewogICAg
ICAgICBhdXRvKiBkYXRhID0gc3RkOjpnZXQ8VGhyZWFkU2FmZURhdGFCdWZmZXI+KG1fdmFsdWUp
LmRhdGEoKTsKLSAgICAgICAgZW5jb2Rlci5lbmNvZGVCb29sKCJoYXNCaW5hcnkiLCAhIWRhdGEp
OworICAgICAgICBlbmNvZGVyLmVuY29kZUJvb2woImhhc0JpbmFyeSJfcywgISFkYXRhKTsKICAg
ICAgICAgaWYgKGRhdGEpCi0gICAgICAgICAgICBlbmNvZGVyLmVuY29kZUJ5dGVzKCJiaW5hcnki
LCBkYXRhLT5kYXRhKCksIGRhdGEtPnNpemUoKSk7CisgICAgICAgICAgICBlbmNvZGVyLmVuY29k
ZUJ5dGVzKCJiaW5hcnkiX3MsIGRhdGEtPmRhdGEoKSwgZGF0YS0+c2l6ZSgpKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KICAgICBjYXNlIEluZGV4ZWREQjo6S2V5VHlwZTo6U3RyaW5nOgotICAg
ICAgICBlbmNvZGVyLmVuY29kZVN0cmluZygic3RyaW5nIiwgc3RkOjpnZXQ8U3RyaW5nPihtX3Zh
bHVlKSk7CisgICAgICAgIGVuY29kZXIuZW5jb2RlU3RyaW5nKCJzdHJpbmciX3MsIHN0ZDo6Z2V0
PFN0cmluZz4obV92YWx1ZSkpOwogICAgICAgICByZXR1cm47CiAgICAgY2FzZSBJbmRleGVkREI6
OktleVR5cGU6OkRhdGU6CiAgICAgY2FzZSBJbmRleGVkREI6OktleVR5cGU6Ok51bWJlcjoKLSAg
ICAgICAgZW5jb2Rlci5lbmNvZGVEb3VibGUoIm51bWJlciIsIHN0ZDo6Z2V0PGRvdWJsZT4obV92
YWx1ZSkpOworICAgICAgICBlbmNvZGVyLmVuY29kZURvdWJsZSgibnVtYmVyIl9zLCBzdGQ6Omdl
dDxkb3VibGU+KG1fdmFsdWUpKTsKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgSW5kZXhlZERC
OjpLZXlUeXBlOjpNYXg6CiAgICAgY2FzZSBJbmRleGVkREI6OktleVR5cGU6Ok1pbjoKQEAgLTE4
OSw3ICsxODksNyBAQCB2b2lkIElEQktleURhdGE6OmVuY29kZShLZXllZEVuY29kZXImIGVuY29k
ZXIpIGNvbnN0CiAKIGJvb2wgSURCS2V5RGF0YTo6ZGVjb2RlKEtleWVkRGVjb2RlciYgZGVjb2Rl
ciwgSURCS2V5RGF0YSYgcmVzdWx0KQogewotICAgIGlmICghZGVjb2Rlci5kZWNvZGVCb29sKCJu
dWxsIiwgcmVzdWx0Lm1faXNOdWxsKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlQm9vbCgibnVs
bCJfcywgcmVzdWx0Lm1faXNOdWxsKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYg
KHJlc3VsdC5tX2lzTnVsbCkKQEAgLTIwNSw3ICsyMDUsNyBAQCBib29sIElEQktleURhdGE6OmRl
Y29kZShLZXllZERlY29kZXImIGRlY29kZXIsIElEQktleURhdGEmIHJlc3VsdCkKICAgICAgICAg
ICAgIHx8IHZhbHVlID09IEluZGV4ZWREQjo6S2V5VHlwZTo6TnVtYmVyCiAgICAgICAgICAgICB8
fCB2YWx1ZSA9PSBJbmRleGVkREI6OktleVR5cGU6Ok1pbjsKICAgICB9OwotICAgIGlmICghZGVj
b2Rlci5kZWNvZGVFbnVtKCJ0eXBlIiwgcmVzdWx0Lm1fdHlwZSwgZW51bUZ1bmN0aW9uKSkKKyAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlRW51bSgidHlwZSJfcywgcmVzdWx0Lm1fdHlwZSwgZW51bUZ1
bmN0aW9uKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYgKHJlc3VsdC5tX3R5cGUg
PT0gSW5kZXhlZERCOjpLZXlUeXBlOjpJbnZhbGlkKQpAQCAtMjE5LDI2ICsyMTksMjYgQEAgYm9v
bCBJREJLZXlEYXRhOjpkZWNvZGUoS2V5ZWREZWNvZGVyJiBkZWNvZGVyLCBJREJLZXlEYXRhJiBy
ZXN1bHQpCiAKICAgICBpZiAocmVzdWx0Lm1fdHlwZSA9PSBJbmRleGVkREI6OktleVR5cGU6OlN0
cmluZykgewogICAgICAgICByZXN1bHQubV92YWx1ZSA9IFN0cmluZygpOwotICAgICAgICByZXR1
cm4gZGVjb2Rlci5kZWNvZGVTdHJpbmcoInN0cmluZyIsIHN0ZDo6Z2V0PFN0cmluZz4ocmVzdWx0
Lm1fdmFsdWUpKTsKKyAgICAgICAgcmV0dXJuIGRlY29kZXIuZGVjb2RlU3RyaW5nKCJzdHJpbmci
X3MsIHN0ZDo6Z2V0PFN0cmluZz4ocmVzdWx0Lm1fdmFsdWUpKTsKICAgICB9CiAKICAgICBpZiAo
cmVzdWx0Lm1fdHlwZSA9PSBJbmRleGVkREI6OktleVR5cGU6Ok51bWJlciB8fCByZXN1bHQubV90
eXBlID09IEluZGV4ZWREQjo6S2V5VHlwZTo6RGF0ZSkgewogICAgICAgICByZXN1bHQubV92YWx1
ZSA9IDAuMDsKLSAgICAgICAgcmV0dXJuIGRlY29kZXIuZGVjb2RlRG91YmxlKCJudW1iZXIiLCBz
dGQ6OmdldDxkb3VibGU+KHJlc3VsdC5tX3ZhbHVlKSk7CisgICAgICAgIHJldHVybiBkZWNvZGVy
LmRlY29kZURvdWJsZSgibnVtYmVyIl9zLCBzdGQ6OmdldDxkb3VibGU+KHJlc3VsdC5tX3ZhbHVl
KSk7CiAgICAgfQogCiAgICAgaWYgKHJlc3VsdC5tX3R5cGUgPT0gSW5kZXhlZERCOjpLZXlUeXBl
OjpCaW5hcnkpIHsKICAgICAgICAgcmVzdWx0Lm1fdmFsdWUgPSBUaHJlYWRTYWZlRGF0YUJ1ZmZl
cigpOwogCiAgICAgICAgIGJvb2wgaGFzQmluYXJ5RGF0YTsKLSAgICAgICAgaWYgKCFkZWNvZGVy
LmRlY29kZUJvb2woImhhc0JpbmFyeSIsIGhhc0JpbmFyeURhdGEpKQorICAgICAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlQm9vbCgiaGFzQmluYXJ5Il9zLCBoYXNCaW5hcnlEYXRhKSkKICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAogICAgICAgICBpZiAoIWhhc0JpbmFyeURhdGEpCiAgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKIAogICAgICAgICBWZWN0b3I8dWludDhfdD4gYnl0ZXM7Ci0gICAg
ICAgIGlmICghZGVjb2Rlci5kZWNvZGVCeXRlcygiYmluYXJ5IiwgYnl0ZXMpKQorICAgICAgICBp
ZiAoIWRlY29kZXIuZGVjb2RlQnl0ZXMoImJpbmFyeSJfcywgYnl0ZXMpKQogICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCiAgICAgICAgIHJlc3VsdC5tX3ZhbHVlID0gVGhyZWFkU2FmZURhdGFC
dWZmZXI6OmNyZWF0ZShXVEZNb3ZlKGJ5dGVzKSk7CkBAIC0yNTIsNyArMjUyLDcgQEAgYm9vbCBJ
REJLZXlEYXRhOjpkZWNvZGUoS2V5ZWREZWNvZGVyJiBkZWNvZGVyLCBJREJLZXlEYXRhJiByZXN1
bHQpCiAgICAgfTsKICAgICAKICAgICByZXN1bHQubV92YWx1ZSA9IFZlY3RvcjxJREJLZXlEYXRh
PigpOwotICAgIHJldHVybiBkZWNvZGVyLmRlY29kZU9iamVjdHMoImFycmF5Iiwgc3RkOjpnZXQ8
VmVjdG9yPElEQktleURhdGE+PihyZXN1bHQubV92YWx1ZSksIGFycmF5RnVuY3Rpb24pOworICAg
IHJldHVybiBkZWNvZGVyLmRlY29kZU9iamVjdHMoImFycmF5Il9zLCBzdGQ6OmdldDxWZWN0b3I8
SURCS2V5RGF0YT4+KHJlc3VsdC5tX3ZhbHVlKSwgYXJyYXlGdW5jdGlvbik7CiB9CiAKIGludCBJ
REJLZXlEYXRhOjpjb21wYXJlKGNvbnN0IElEQktleURhdGEmIG90aGVyKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5UmFuZ2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5UmFuZ2UuY3BwCmluZGV4IDE0
ZjMwM2EwNGMyM2E4YmY0N2JmMDY1OWY5Mjg3OTI0Zjk2MTNhZmIuLmRlZjUwNDgxN2FkMDM4MjI0
NzRkZDJmNWQxNmQzNjkwYmI5N2Y0YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQktleVJhbmdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJLZXlSYW5nZS5jcHAKQEAgLTEzNyw3ICsxMzcsNyBAQCBFeGNlcHRpb25P
cjxib29sPiBJREJLZXlSYW5nZTo6aW5jbHVkZXMoSlNDOjpKU0dsb2JhbE9iamVjdCYgc3RhdGUs
IEpTQzo6SlNWYWx1ZQogICAgIGF1dG8ga2V5ID0gc2NyaXB0VmFsdWVUb0lEQktleShzdGF0ZSwg
a2V5VmFsdWUpOwogICAgIEVYQ0VQVElPTl9BU1NFUlRfVU5VU0VEKHNjb3BlLCAhc2NvcGUuZXhj
ZXB0aW9uKCkgfHwgIWtleS0+aXNWYWxpZCgpKTsKICAgICBpZiAoIWtleS0+aXNWYWxpZCgpKQot
ICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgRGF0YUVycm9yLCAiRmFpbGVkIHRvIGV4ZWN1dGUg
J2luY2x1ZGVzJyBvbiAnSURCS2V5UmFuZ2UnOiBUaGUgcGFzc2VkLWluIHZhbHVlIGlzIG5vdCBh
IHZhbGlkIEluZGV4ZWREQiBrZXkuIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgRGF0
YUVycm9yLCAiRmFpbGVkIHRvIGV4ZWN1dGUgJ2luY2x1ZGVzJyBvbiAnSURCS2V5UmFuZ2UnOiBU
aGUgcGFzc2VkLWluIHZhbHVlIGlzIG5vdCBhIHZhbGlkIEluZGV4ZWREQiBrZXkuIl9zIH07CiAK
ICAgICBpZiAobV9sb3dlcikgewogICAgICAgICBpbnQgY29tcGFyZSA9IG1fbG93ZXItPmNvbXBh
cmUoa2V5LmdldCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NlcnZlci9JREJTZXJpYWxpemF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL3NlcnZlci9JREJTZXJpYWxpemF0aW9uLmNwcAppbmRleCAyYTJjMWZjMzI5NTgw
NWQ1MmZkNTZhZjMwYjQ1NWFlMmNjY2M0ODc3Li4zM2Q0ZDQxYzkyNzdiZmYyOTcxMzc1MmM4OTFk
MmM5MDkxYWQzNWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9zZXJ2ZXIvSURCU2VyaWFsaXphdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcmlhbGl6YXRpb24uY3BwCkBAIC00NSwxNyArNDUsMTcg
QEAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gc2VyaWFsaXplSURCS2V5UGF0aChjb25zdCBzdGQ6Om9w
dGlvbmFsPElEQktleVBhdGg+JiBrZXlQYXQKIAogICAgIGlmIChrZXlQYXRoKSB7CiAgICAgICAg
IGF1dG8gdmlzaXRvciA9IFdURjo6bWFrZVZpc2l0b3IoWyZdKGNvbnN0IFN0cmluZyYgc3RyaW5n
KSB7Ci0gICAgICAgICAgICBlbmNvZGVyLT5lbmNvZGVFbnVtKCJ0eXBlIiwgS2V5UGF0aFR5cGU6
OlN0cmluZyk7Ci0gICAgICAgICAgICBlbmNvZGVyLT5lbmNvZGVTdHJpbmcoInN0cmluZyIsIHN0
cmluZyk7CisgICAgICAgICAgICBlbmNvZGVyLT5lbmNvZGVFbnVtKCJ0eXBlIl9zLCBLZXlQYXRo
VHlwZTo6U3RyaW5nKTsKKyAgICAgICAgICAgIGVuY29kZXItPmVuY29kZVN0cmluZygic3RyaW5n
Il9zLCBzdHJpbmcpOwogICAgICAgICB9LCBbJl0oY29uc3QgVmVjdG9yPFN0cmluZz4mIHZlY3Rv
cikgewotICAgICAgICAgICAgZW5jb2Rlci0+ZW5jb2RlRW51bSgidHlwZSIsIEtleVBhdGhUeXBl
OjpBcnJheSk7Ci0gICAgICAgICAgICBlbmNvZGVyLT5lbmNvZGVPYmplY3RzKCJhcnJheSIsIHZl
Y3Rvci5iZWdpbigpLCB2ZWN0b3IuZW5kKCksIFtdKFdlYkNvcmU6OktleWVkRW5jb2RlciYgZW5j
b2RlciwgY29uc3QgU3RyaW5nJiBzdHJpbmcpIHsKLSAgICAgICAgICAgICAgICBlbmNvZGVyLmVu
Y29kZVN0cmluZygic3RyaW5nIiwgc3RyaW5nKTsKKyAgICAgICAgICAgIGVuY29kZXItPmVuY29k
ZUVudW0oInR5cGUiX3MsIEtleVBhdGhUeXBlOjpBcnJheSk7CisgICAgICAgICAgICBlbmNvZGVy
LT5lbmNvZGVPYmplY3RzKCJhcnJheSJfcywgdmVjdG9yLmJlZ2luKCksIHZlY3Rvci5lbmQoKSwg
W10oV2ViQ29yZTo6S2V5ZWRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBTdHJpbmcmIHN0cmluZykg
eworICAgICAgICAgICAgICAgIGVuY29kZXIuZW5jb2RlU3RyaW5nKCJzdHJpbmciX3MsIHN0cmlu
Zyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfSk7CiAgICAgICAgIHN0ZDo6dmlzaXQodmlz
aXRvciwga2V5UGF0aC52YWx1ZSgpKTsKICAgICB9IGVsc2UKLSAgICAgICAgZW5jb2Rlci0+ZW5j
b2RlRW51bSgidHlwZSIsIEtleVBhdGhUeXBlOjpOdWxsKTsKKyAgICAgICAgZW5jb2Rlci0+ZW5j
b2RlRW51bSgidHlwZSJfcywgS2V5UGF0aFR5cGU6Ok51bGwpOwogCiAgICAgcmV0dXJuIGVuY29k
ZXItPmZpbmlzaEVuY29kaW5nKCk7CiB9CkBAIC02OCw3ICs2OCw3IEBAIGJvb2wgZGVzZXJpYWxp
emVJREJLZXlQYXRoKGNvbnN0IHVpbnQ4X3QqIGRhdGEsIHNpemVfdCBzaXplLCBzdGQ6Om9wdGlv
bmFsPElEQktlCiAgICAgYXV0byBkZWNvZGVyID0gS2V5ZWREZWNvZGVyOjpkZWNvZGVyKGRhdGEs
IHNpemUpOwogCiAgICAgS2V5UGF0aFR5cGUgdHlwZTsKLSAgICBib29sIHN1Y2NlZWRlZCA9IGRl
Y29kZXItPmRlY29kZUVudW0oInR5cGUiLCB0eXBlLCBbXShLZXlQYXRoVHlwZSB2YWx1ZSkgewor
ICAgIGJvb2wgc3VjY2VlZGVkID0gZGVjb2Rlci0+ZGVjb2RlRW51bSgidHlwZSJfcywgdHlwZSwg
W10oS2V5UGF0aFR5cGUgdmFsdWUpIHsKICAgICAgICAgcmV0dXJuIHZhbHVlID09IEtleVBhdGhU
eXBlOjpOdWxsIHx8IHZhbHVlID09IEtleVBhdGhUeXBlOjpTdHJpbmcgfHwgdmFsdWUgPT0gS2V5
UGF0aFR5cGU6OkFycmF5OwogICAgIH0pOwogICAgIGlmICghc3VjY2VlZGVkKQpAQCAtNzksMTUg
Kzc5LDE1IEBAIGJvb2wgZGVzZXJpYWxpemVJREJLZXlQYXRoKGNvbnN0IHVpbnQ4X3QqIGRhdGEs
IHNpemVfdCBzaXplLCBzdGQ6Om9wdGlvbmFsPElEQktlCiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgS2V5UGF0aFR5cGU6OlN0cmluZzogewogICAgICAgICBTdHJpbmcgc3RyaW5nOwotICAgICAg
ICBpZiAoIWRlY29kZXItPmRlY29kZVN0cmluZygic3RyaW5nIiwgc3RyaW5nKSkKKyAgICAgICAg
aWYgKCFkZWNvZGVyLT5kZWNvZGVTdHJpbmcoInN0cmluZyJfcywgc3RyaW5nKSkKICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgcmVzdWx0ID0gSURCS2V5UGF0aChXVEZNb3ZlKHN0
cmluZykpOwogICAgICAgICBicmVhazsKICAgICB9CiAgICAgY2FzZSBLZXlQYXRoVHlwZTo6QXJy
YXk6IHsKICAgICAgICAgVmVjdG9yPFN0cmluZz4gdmVjdG9yOwotICAgICAgICBzdWNjZWVkZWQg
PSBkZWNvZGVyLT5kZWNvZGVPYmplY3RzKCJhcnJheSIsIHZlY3RvciwgW10oS2V5ZWREZWNvZGVy
JiBkZWNvZGVyLCBTdHJpbmcmIHJlc3VsdCkgewotICAgICAgICAgICAgcmV0dXJuIGRlY29kZXIu
ZGVjb2RlU3RyaW5nKCJzdHJpbmciLCByZXN1bHQpOworICAgICAgICBzdWNjZWVkZWQgPSBkZWNv
ZGVyLT5kZWNvZGVPYmplY3RzKCJhcnJheSJfcywgdmVjdG9yLCBbXShLZXllZERlY29kZXImIGRl
Y29kZXIsIFN0cmluZyYgcmVzdWx0KSB7CisgICAgICAgICAgICByZXR1cm4gZGVjb2Rlci5kZWNv
ZGVTdHJpbmcoInN0cmluZyJfcywgcmVzdWx0KTsKICAgICAgICAgfSk7CiAgICAgICAgIGlmICgh
c3VjY2VlZGVkKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmNwcAppbmRleCA3N2Rm
NjY3ZDQwOTlkNmZiN2Q4NWEwNTVjMjAwNGU2N2IyYWI1YjFkLi40ODYwMTVmN2I5NmMyNmJlNmJh
YTQyYWE1ZmJkNzg4NmYxNDhiNDczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmNwcApAQCAtNTMwLDEwICs1MzAsMTAgQEAg
dm9pZCBJREJTZXJ2ZXI6OmdldEFsbERhdGFiYXNlTmFtZXNBbmRWZXJzaW9ucyhJREJDb25uZWN0
aW9uSWRlbnRpZmllciBzZXJ2ZXJDb24KICAgICAgICAgICAgIHJlc3VsdC5hcHBlbmQoV1RGTW92
ZSgqbmFtZUFuZFZlcnNpb24pKTsKICAgICB9CiAKLSAgICBhdXRvIG9sZERpcmVjdG9yeSA9IElE
QkRhdGFiYXNlSWRlbnRpZmllcjo6ZGF0YWJhc2VEaXJlY3RvcnlSZWxhdGl2ZVRvUm9vdChvcmln
aW4sIG1fZGF0YWJhc2VEaXJlY3RvcnlQYXRoLCAidjAiKTsKKyAgICBhdXRvIG9sZERpcmVjdG9y
eSA9IElEQkRhdGFiYXNlSWRlbnRpZmllcjo6ZGF0YWJhc2VEaXJlY3RvcnlSZWxhdGl2ZVRvUm9v
dChvcmlnaW4sIG1fZGF0YWJhc2VEaXJlY3RvcnlQYXRoLCAidjAiX3MpOwogICAgIGdldERhdGFi
YXNlTmFtZUFuZFZlcnNpb25Gcm9tT3JpZ2luRGlyZWN0b3J5KG9sZERpcmVjdG9yeSwgdmlzaXRl
ZERhdGFiYXNlUGF0aHMsIHJlc3VsdCk7CiAKLSAgICBhdXRvIGRpcmVjdG9yeSA9IElEQkRhdGFi
YXNlSWRlbnRpZmllcjo6ZGF0YWJhc2VEaXJlY3RvcnlSZWxhdGl2ZVRvUm9vdChvcmlnaW4sIG1f
ZGF0YWJhc2VEaXJlY3RvcnlQYXRoLCAidjEiKTsKKyAgICBhdXRvIGRpcmVjdG9yeSA9IElEQkRh
dGFiYXNlSWRlbnRpZmllcjo6ZGF0YWJhc2VEaXJlY3RvcnlSZWxhdGl2ZVRvUm9vdChvcmlnaW4s
IG1fZGF0YWJhc2VEaXJlY3RvcnlQYXRoLCAidjEiX3MpOwogICAgIGdldERhdGFiYXNlTmFtZUFu
ZFZlcnNpb25Gcm9tT3JpZ2luRGlyZWN0b3J5KGRpcmVjdG9yeSwgdmlzaXRlZERhdGFiYXNlUGF0
aHMsIHJlc3VsdCk7CiAKICAgICBhdXRvIGNvbm5lY3Rpb24gPSBtX2Nvbm5lY3Rpb25NYXAuZ2V0
KHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyKTsKQEAgLTU2Niw4ICs1NjYsOCBAQCBIYXNoU2V0
PFNlY3VyaXR5T3JpZ2luRGF0YT4gSURCU2VydmVyOjpnZXRPcmlnaW5zKCkgY29uc3QKICAgICAg
ICAgcmV0dXJuIHsgfTsKIAogICAgIEhhc2hTZXQ8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRh
PiBzZWN1cml0eU9yaWdpbnM7Ci0gICAgY29sbGVjdE9yaWdpbnNGb3JWZXJzaW9uKEZpbGVTeXN0
ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChtX2RhdGFiYXNlRGlyZWN0b3J5UGF0aCwgInYw
IiksIHNlY3VyaXR5T3JpZ2lucyk7Ci0gICAgY29sbGVjdE9yaWdpbnNGb3JWZXJzaW9uKEZpbGVT
eXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChtX2RhdGFiYXNlRGlyZWN0b3J5UGF0aCwg
InYxIiksIHNlY3VyaXR5T3JpZ2lucyk7CisgICAgY29sbGVjdE9yaWdpbnNGb3JWZXJzaW9uKEZp
bGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChtX2RhdGFiYXNlRGlyZWN0b3J5UGF0
aCwgInYwIl9zKSwgc2VjdXJpdHlPcmlnaW5zKTsKKyAgICBjb2xsZWN0T3JpZ2luc0ZvclZlcnNp
b24oRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KG1fZGF0YWJhc2VEaXJlY3Rv
cnlQYXRoLCAidjEiX3MpLCBzZWN1cml0eU9yaWdpbnMpOwogCiAgICAgcmV0dXJuIHNlY3VyaXR5
T3JpZ2luczsKIH0KQEAgLTU4OCw4ICs1ODgsOCBAQCB2b2lkIElEQlNlcnZlcjo6Y2xvc2VBbmRE
ZWxldGVEYXRhYmFzZXNNb2RpZmllZFNpbmNlKFdhbGxUaW1lIG1vZGlmaWNhdGlvblRpbWUpCiAg
ICAgbV91bmlxdWVJREJEYXRhYmFzZU1hcC5jbGVhcigpOwogCiAgICAgaWYgKCFtX2RhdGFiYXNl
RGlyZWN0b3J5UGF0aC5pc0VtcHR5KCkpIHsKLSAgICAgICAgcmVtb3ZlRGF0YWJhc2VzTW9kaWZp
ZWRTaW5jZUZvclZlcnNpb24obW9kaWZpY2F0aW9uVGltZSwgInYwIik7Ci0gICAgICAgIHJlbW92
ZURhdGFiYXNlc01vZGlmaWVkU2luY2VGb3JWZXJzaW9uKG1vZGlmaWNhdGlvblRpbWUsICJ2MSIp
OworICAgICAgICByZW1vdmVEYXRhYmFzZXNNb2RpZmllZFNpbmNlRm9yVmVyc2lvbihtb2RpZmlj
YXRpb25UaW1lLCAidjAiX3MpOworICAgICAgICByZW1vdmVEYXRhYmFzZXNNb2RpZmllZFNpbmNl
Rm9yVmVyc2lvbihtb2RpZmljYXRpb25UaW1lLCAidjEiX3MpOwogICAgIH0KIH0KIApAQCAtNjI0
LDggKzYyNCw4IEBAIHZvaWQgSURCU2VydmVyOjpjbG9zZUFuZERlbGV0ZURhdGFiYXNlc0Zvck9y
aWdpbnMoY29uc3QgVmVjdG9yPFNlY3VyaXR5T3JpZ2luRGF0CiAgICAgfSk7CiAKICAgICBpZiAo
IW1fZGF0YWJhc2VEaXJlY3RvcnlQYXRoLmlzRW1wdHkoKSkgewotICAgICAgICByZW1vdmVEYXRh
YmFzZXNXaXRoT3JpZ2luc0ZvclZlcnNpb24ob3JpZ2lucywgInYwIik7Ci0gICAgICAgIHJlbW92
ZURhdGFiYXNlc1dpdGhPcmlnaW5zRm9yVmVyc2lvbihvcmlnaW5zLCAidjEiKTsKKyAgICAgICAg
cmVtb3ZlRGF0YWJhc2VzV2l0aE9yaWdpbnNGb3JWZXJzaW9uKG9yaWdpbnMsICJ2MCJfcyk7Cisg
ICAgICAgIHJlbW92ZURhdGFiYXNlc1dpdGhPcmlnaW5zRm9yVmVyc2lvbihvcmlnaW5zLCAidjEi
X3MpOwogICAgIH0KIH0KIApAQCAtNjM2LDcgKzYzNiw3IEBAIHN0YXRpYyB2b2lkIHJlbW92ZUFs
bERhdGFiYXNlc0ZvckZ1bGxPcmlnaW5QYXRoKGNvbnN0IFN0cmluZyYgb3JpZ2luUGF0aCwgV2Fs
bFRpCiAKICAgICBmb3IgKGF1dG8mIGRhdGFiYXNlTmFtZSA6IGRhdGFiYXNlTmFtZXMpIHsKICAg
ICAgICAgYXV0byBkYXRhYmFzZVBhdGggPSBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21w
b25lbnQob3JpZ2luUGF0aCwgZGF0YWJhc2VOYW1lKTsKLSAgICAgICAgU3RyaW5nIGRhdGFiYXNl
RmlsZSA9IEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChkYXRhYmFzZVBhdGgs
ICJJbmRleGVkREIuc3FsaXRlMyIpOworICAgICAgICBTdHJpbmcgZGF0YWJhc2VGaWxlID0gRmls
ZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KGRhdGFiYXNlUGF0aCwgIkluZGV4ZWRE
Qi5zcWxpdGUzIl9zKTsKICAgICAgICAgaWYgKG1vZGlmaWVkU2luY2UgPiAtV2FsbFRpbWU6Omlu
ZmluaXR5KCkgJiYgRmlsZVN5c3RlbTo6ZmlsZUV4aXN0cyhkYXRhYmFzZUZpbGUpKSB7CiAgICAg
ICAgICAgICBhdXRvIG1vZGlmaWNhdGlvblRpbWUgPSBGaWxlU3lzdGVtOjpmaWxlTW9kaWZpY2F0
aW9uVGltZShkYXRhYmFzZUZpbGUpOwogICAgICAgICAgICAgaWYgKCFtb2RpZmljYXRpb25UaW1l
KQpAQCAtNzMyLDcgKzczMiw3IEBAIHZvaWQgSURCU2VydmVyOjpyZW5hbWVPcmlnaW4oY29uc3Qg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiBvbGRPcmlnaW4sIGNvbnN0CiAgICAgICAgIHJl
dHVybiBkYXRhYmFzZU9yaWdpbi50b3BPcmlnaW4gPT0gdGFyZ2V0T3JpZ2luOwogICAgIH0pOwog
Ci0gICAgYXV0byB2ZXJzaW9uUGF0aCA9IEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBv
bmVudChtX2RhdGFiYXNlRGlyZWN0b3J5UGF0aCwgInYxIik7CisgICAgYXV0byB2ZXJzaW9uUGF0
aCA9IEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChtX2RhdGFiYXNlRGlyZWN0
b3J5UGF0aCwgInYxIl9zKTsKICAgICBhdXRvIG9sZE9yaWdpblBhdGggPSBGaWxlU3lzdGVtOjpw
YXRoQnlBcHBlbmRpbmdDb21wb25lbnQodmVyc2lvblBhdGgsIG9sZE9yaWdpbi5kYXRhYmFzZUlk
ZW50aWZpZXIoKSk7CiAgICAgYXV0byBuZXdPcmlnaW5QYXRoID0gRmlsZVN5c3RlbTo6cGF0aEJ5
QXBwZW5kaW5nQ29tcG9uZW50KHZlcnNpb25QYXRoLCBuZXdPcmlnaW4uZGF0YWJhc2VJZGVudGlm
aWVyKCkpOwogICAgIGlmIChGaWxlU3lzdGVtOjpmaWxlRXhpc3RzKG9sZE9yaWdpblBhdGgpKQpA
QCAtNzY4LDE2ICs3NjgsMTYgQEAgdm9pZCBJREJTZXJ2ZXI6OnVwZ3JhZGVGaWxlc0lmTmVjZXNz
YXJ5KCkKICAgICBpZiAobV9kYXRhYmFzZURpcmVjdG9yeVBhdGguaXNFbXB0eSgpIHx8ICFGaWxl
U3lzdGVtOjpmaWxlRXhpc3RzKG1fZGF0YWJhc2VEaXJlY3RvcnlQYXRoKSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgU3RyaW5nIG5ld1ZlcnNpb25EaXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpwYXRo
QnlBcHBlbmRpbmdDb21wb25lbnQobV9kYXRhYmFzZURpcmVjdG9yeVBhdGgsICJ2MSIpOworICAg
IFN0cmluZyBuZXdWZXJzaW9uRGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5n
Q29tcG9uZW50KG1fZGF0YWJhc2VEaXJlY3RvcnlQYXRoLCAidjEiX3MpOwogICAgIGlmICghRmls
ZVN5c3RlbTo6ZmlsZUV4aXN0cyhuZXdWZXJzaW9uRGlyZWN0b3J5KSkKICAgICAgICAgRmlsZVN5
c3RlbTo6bWFrZUFsbERpcmVjdG9yaWVzKG5ld1ZlcnNpb25EaXJlY3RvcnkpOwogfQogCiBTdHJp
bmcgSURCU2VydmVyOjp1cGdyYWRlZERhdGFiYXNlRGlyZWN0b3J5KGNvbnN0IFdlYkNvcmU6OklE
QkRhdGFiYXNlSWRlbnRpZmllciYgaWRlbnRpZmllcikKIHsKLSAgICBTdHJpbmcgb2xkT3JpZ2lu
RGlyZWN0b3J5ID0gaWRlbnRpZmllci5kYXRhYmFzZURpcmVjdG9yeVJlbGF0aXZlVG9Sb290KG1f
ZGF0YWJhc2VEaXJlY3RvcnlQYXRoLCAidjAiKTsKKyAgICBTdHJpbmcgb2xkT3JpZ2luRGlyZWN0
b3J5ID0gaWRlbnRpZmllci5kYXRhYmFzZURpcmVjdG9yeVJlbGF0aXZlVG9Sb290KG1fZGF0YWJh
c2VEaXJlY3RvcnlQYXRoLCAidjAiX3MpOwogICAgIFN0cmluZyBvbGREYXRhYmFzZURpcmVjdG9y
eSA9IEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChvbGRPcmlnaW5EaXJlY3Rv
cnksIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6ZW5jb2RlRGF0YWJhc2VOYW1lKGlkZW50aWZpZXIu
ZGF0YWJhc2VOYW1lKCkpKTsKLSAgICBTdHJpbmcgbmV3T3JpZ2luRGlyZWN0b3J5ID0gaWRlbnRp
Zmllci5kYXRhYmFzZURpcmVjdG9yeVJlbGF0aXZlVG9Sb290KG1fZGF0YWJhc2VEaXJlY3RvcnlQ
YXRoLCAidjEiKTsKKyAgICBTdHJpbmcgbmV3T3JpZ2luRGlyZWN0b3J5ID0gaWRlbnRpZmllci5k
YXRhYmFzZURpcmVjdG9yeVJlbGF0aXZlVG9Sb290KG1fZGF0YWJhc2VEaXJlY3RvcnlQYXRoLCAi
djEiX3MpOwogICAgIFN0cmluZyBmaWxlTmFtZUhhc2ggPSBTUUxpdGVGaWxlU3lzdGVtOjpjb21w
dXRlSGFzaEZvckZpbGVOYW1lKGlkZW50aWZpZXIuZGF0YWJhc2VOYW1lKCkpOwogICAgIFN0cmlu
ZyBuZXdEYXRhYmFzZURpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBv
bmVudChuZXdPcmlnaW5EaXJlY3RvcnksIGZpbGVOYW1lSGFzaCk7CiAgICAgRmlsZVN5c3RlbTo6
bWFrZUFsbERpcmVjdG9yaWVzKG5ld0RhdGFiYXNlRGlyZWN0b3J5KTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlJREJCYWNraW5nU3Rv
cmUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUlE
QkJhY2tpbmdTdG9yZS5jcHAKaW5kZXggZDYzMzUwMzA5OTMwNTViOWIxMmI3ODQ1NjU1ZGE4MzM3
MmIxYTU1MC4uMWMyN2FkNjE3OWYxYmVhZDBmZjFhNmRlY2ZiOWFlMmI1ZTk1M2Y5YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUlEQkJh
Y2tpbmdTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2Vy
dmVyL01lbW9yeUlEQkJhY2tpbmdTdG9yZS5jcHAKQEAgLTc4LDcgKzc4LDcgQEAgSURCRXJyb3Ig
TWVtb3J5SURCQmFja2luZ1N0b3JlOjpiZWdpblRyYW5zYWN0aW9uKGNvbnN0IElEQlRyYW5zYWN0
aW9uSW5mbyYgaW5mbykKICAgICBMT0coSW5kZXhlZERCLCAiTWVtb3J5SURCQmFja2luZ1N0b3Jl
OjpiZWdpblRyYW5zYWN0aW9uIik7CiAKICAgICBpZiAobV90cmFuc2FjdGlvbnMuY29udGFpbnMo
aW5mby5pZGVudGlmaWVyKCkpKQotICAgICAgICByZXR1cm4gSURCRXJyb3IgeyBJbnZhbGlkU3Rh
dGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgYXNrZWQgdG8gY3JlYXRlIHRyYW5zYWN0aW9uIGl0IGFs
cmVhZHkgaGFzIGEgcmVjb3JkIG9mIiB9OworICAgICAgICByZXR1cm4gSURCRXJyb3IgeyBJbnZh
bGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgYXNrZWQgdG8gY3JlYXRlIHRyYW5zYWN0aW9u
IGl0IGFscmVhZHkgaGFzIGEgcmVjb3JkIG9mIl9zIH07CiAKICAgICBhdXRvIHRyYW5zYWN0aW9u
ID0gTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb246OmNyZWF0ZSgqdGhpcywgaW5mbyk7CiAK
QEAgLTEwNCw3ICsxMDQsNyBAQCBJREJFcnJvciBNZW1vcnlJREJCYWNraW5nU3RvcmU6OmFib3J0
VHJhbnNhY3Rpb24oY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cgogCiAgICAgYXV0byB0
cmFuc2FjdGlvbiA9IG1fdHJhbnNhY3Rpb25zLnRha2UodHJhbnNhY3Rpb25JZGVudGlmaWVyKTsK
ICAgICBpZiAoIXRyYW5zYWN0aW9uKQotICAgICAgICByZXR1cm4gSURCRXJyb3IgeyBJbnZhbGlk
U3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgYXNrZWQgdG8gYWJvcnQgdHJhbnNhY3Rpb24gaXQg
ZGlkbid0IGhhdmUgcmVjb3JkIG9mIiB9OworICAgICAgICByZXR1cm4gSURCRXJyb3IgeyBJbnZh
bGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgYXNrZWQgdG8gYWJvcnQgdHJhbnNhY3Rpb24g
aXQgZGlkbid0IGhhdmUgcmVjb3JkIG9mIl9zIH07CiAKICAgICB0cmFuc2FjdGlvbi0+YWJvcnQo
KTsKIApAQCAtMTE3LDcgKzExNyw3IEBAIElEQkVycm9yIE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6
Y29tbWl0VHJhbnNhY3Rpb24oY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0CiAKICAgICBh
dXRvIHRyYW5zYWN0aW9uID0gbV90cmFuc2FjdGlvbnMudGFrZSh0cmFuc2FjdGlvbklkZW50aWZp
ZXIpOwogICAgIGlmICghdHJhbnNhY3Rpb24pCi0gICAgICAgIHJldHVybiBJREJFcnJvciB7IElu
dmFsaWRTdGF0ZUVycm9yLCAiQmFja2luZyBzdG9yZSBhc2tlZCB0byBjb21taXQgdHJhbnNhY3Rp
b24gaXQgZGlkbid0IGhhdmUgcmVjb3JkIG9mIiB9OworICAgICAgICByZXR1cm4gSURCRXJyb3Ig
eyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgYXNrZWQgdG8gY29tbWl0IHRyYW5z
YWN0aW9uIGl0IGRpZG4ndCBoYXZlIHJlY29yZCBvZiJfcyB9OwogCiAgICAgdHJhbnNhY3Rpb24t
PmNvbW1pdCgpOwogCkBAIC00NzMsNyArNDczLDcgQEAgSURCRXJyb3IgTWVtb3J5SURCQmFja2lu
Z1N0b3JlOjpnZW5lcmF0ZUtleU51bWJlcihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHQK
IAogICAgIGtleU51bWJlciA9IG9iamVjdFN0b3JlLT5jdXJyZW50S2V5R2VuZXJhdG9yVmFsdWUo
KTsKICAgICBpZiAoa2V5TnVtYmVyID4gbWF4R2VuZXJhdGVkS2V5VmFsdWUpCi0gICAgICAgIHJl
dHVybiBJREJFcnJvciB7IENvbnN0cmFpbnRFcnJvciwgIkNhbm5vdCBnZW5lcmF0ZSBuZXcga2V5
IHZhbHVlIG92ZXIgMl41MyBmb3Igb2JqZWN0IHN0b3JlIG9wZXJhdGlvbiIgfTsKKyAgICAgICAg
cmV0dXJuIElEQkVycm9yIHsgQ29uc3RyYWludEVycm9yLCAiQ2Fubm90IGdlbmVyYXRlIG5ldyBr
ZXkgdmFsdWUgb3ZlciAyXjUzIGZvciBvYmplY3Qgc3RvcmUgb3BlcmF0aW9uIl9zIH07CiAKICAg
ICBvYmplY3RTdG9yZS0+c2V0S2V5R2VuZXJhdG9yVmFsdWUoa2V5TnVtYmVyICsgMSk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlP
YmplY3RTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIv
TWVtb3J5T2JqZWN0U3RvcmUuY3BwCmluZGV4IDdlZjlkMGEzODdmNzI3ZDg1ZWMwZGVlZjZkM2Nh
ZTBkZWQwMTU4Y2YuLjg5MjMxYjRhZTI0OTY4ZTg5YjBkNzU4MTE1MWY1MjhlZTNlMmZiNGUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlP
YmplY3RTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2Vy
dmVyL01lbW9yeU9iamVjdFN0b3JlLmNwcApAQCAtMzEwLDcgKzMxMCw3IEBAIElEQkVycm9yIE1l
bW9yeU9iamVjdFN0b3JlOjp1cGRhdGVJbmRleGVzRm9yUHV0UmVjb3JkKGNvbnN0IElEQktleURh
dGEmIGtleSwgY29uCiAgICAgICAgIGF1dG8qIGluZGV4ID0gbV9pbmRleGVzQnlJZGVudGlmaWVy
LmdldChpbmRleElEKTsKICAgICAgICAgQVNTRVJUKGluZGV4KTsKICAgICAgICAgaWYgKCFpbmRl
eCkgewotICAgICAgICAgICAgZXJyb3IgPSBJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAi
TWlzc2luZyBpbmRleCBtZXRhZGF0YSIgfTsKKyAgICAgICAgICAgIGVycm9yID0gSURCRXJyb3Ig
eyBJbnZhbGlkU3RhdGVFcnJvciwgIk1pc3NpbmcgaW5kZXggbWV0YWRhdGEiX3MgfTsKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5j
cHAKaW5kZXggMmZhZjNlOTVkMzFjOTg5ZmNlMTJlMDU3ZjA2YzIyZTJmZjczYzQ2ZS4uY2JkNDYy
NzkwNzg3NzgwMmYzOGM2YTRkZmI2NmMxYTIyMzFkYjNjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJh
Y2tpbmdTdG9yZS5jcHAKQEAgLTk4LDM3ICs5OCwzNyBAQCBzdGF0aWMgaW50IGlkYktleUNvbGxh
dGUoaW50IGFMZW5ndGgsIGNvbnN0IHZvaWQqIGFCdWZmZXIsIGludCBiTGVuZ3RoLCBjb25zdCB2
bwogICAgIHJldHVybiBhLmNvbXBhcmUoYik7CiB9CiAKLXN0YXRpYyBjb25zdCBTdHJpbmcgdjFS
ZWNvcmRzVGFibGVTY2hlbWEoY29uc3QgU3RyaW5nJiB0YWJsZU5hbWUpCitzdGF0aWMgY29uc3Qg
U3RyaW5nIHYxUmVjb3Jkc1RhYmxlU2NoZW1hKEFTQ0lJTGl0ZXJhbCB0YWJsZU5hbWUpCiB7CiAg
ICAgcmV0dXJuIG1ha2VTdHJpbmcoIkNSRUFURSBUQUJMRSAiLCB0YWJsZU5hbWUsICIgKG9iamVj
dFN0b3JlSUQgSU5URUdFUiBOT1QgTlVMTCBPTiBDT05GTElDVCBGQUlMLCBrZXkgVEVYVCBDT0xM
QVRFIElEQktFWSBOT1QgTlVMTCBPTiBDT05GTElDVCBGQUlMIFVOSVFVRSBPTiBDT05GTElDVCBS
RVBMQUNFLCB2YWx1ZSBOT1QgTlVMTCBPTiBDT05GTElDVCBGQUlMKSIpOwogfQogCiBzdGF0aWMg
Y29uc3QgU3RyaW5nJiB2MVJlY29yZHNUYWJsZVNjaGVtYSgpCiB7Ci0gICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPFN0cmluZz4gdjFSZWNvcmRzVGFibGVTY2hlbWFTdHJpbmcodjFSZWNvcmRzVGFi
bGVTY2hlbWEoIlJlY29yZHMiKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4g
djFSZWNvcmRzVGFibGVTY2hlbWFTdHJpbmcodjFSZWNvcmRzVGFibGVTY2hlbWEoIlJlY29yZHMi
X3MpKTsKICAgICByZXR1cm4gdjFSZWNvcmRzVGFibGVTY2hlbWFTdHJpbmc7CiB9CiAKIHN0YXRp
YyBjb25zdCBTdHJpbmcmIHYxUmVjb3Jkc1RhYmxlU2NoZW1hQWx0ZXJuYXRlKCkKIHsKLSAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiB2MVJlY29yZHNUYWJsZVNjaGVtYVN0cmluZyh2
MVJlY29yZHNUYWJsZVNjaGVtYSgiXCJSZWNvcmRzXCIiKSk7CisgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPFN0cmluZz4gdjFSZWNvcmRzVGFibGVTY2hlbWFTdHJpbmcodjFSZWNvcmRzVGFibGVT
Y2hlbWEoIlwiUmVjb3Jkc1wiIl9zKSk7CiAgICAgcmV0dXJuIHYxUmVjb3Jkc1RhYmxlU2NoZW1h
U3RyaW5nOwogfQogCi1zdGF0aWMgY29uc3QgU3RyaW5nIHYyUmVjb3Jkc1RhYmxlU2NoZW1hKGNv
bnN0IFN0cmluZyYgdGFibGVOYW1lKQorc3RhdGljIGNvbnN0IFN0cmluZyB2MlJlY29yZHNUYWJs
ZVNjaGVtYShBU0NJSUxpdGVyYWwgdGFibGVOYW1lKQogewogICAgIHJldHVybiBtYWtlU3RyaW5n
KCJDUkVBVEUgVEFCTEUgIiwgdGFibGVOYW1lLCAiIChvYmplY3RTdG9yZUlEIElOVEVHRVIgTk9U
IE5VTEwgT04gQ09ORkxJQ1QgRkFJTCwga2V5IFRFWFQgQ09MTEFURSBJREJLRVkgTk9UIE5VTEwg
T04gQ09ORkxJQ1QgRkFJTCwgdmFsdWUgTk9UIE5VTEwgT04gQ09ORkxJQ1QgRkFJTCkiKTsKIH0K
IAogc3RhdGljIGNvbnN0IFN0cmluZyYgdjJSZWNvcmRzVGFibGVTY2hlbWEoKQogewotICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHYyUmVjb3Jkc1RhYmxlU2NoZW1hU3RyaW5nKHYy
UmVjb3Jkc1RhYmxlU2NoZW1hKCJSZWNvcmRzIikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxTdHJpbmc+IHYyUmVjb3Jkc1RhYmxlU2NoZW1hU3RyaW5nKHYyUmVjb3Jkc1RhYmxlU2NoZW1h
KCJSZWNvcmRzIl9zKSk7CiAgICAgcmV0dXJuIHYyUmVjb3Jkc1RhYmxlU2NoZW1hU3RyaW5nOwog
fQogCiBzdGF0aWMgY29uc3QgU3RyaW5nJiB2MlJlY29yZHNUYWJsZVNjaGVtYUFsdGVybmF0ZSgp
CiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gdjJSZWNvcmRzVGFibGVTY2hl
bWFTdHJpbmcodjJSZWNvcmRzVGFibGVTY2hlbWEoIlwiUmVjb3Jkc1wiIikpOworICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHYyUmVjb3Jkc1RhYmxlU2NoZW1hU3RyaW5nKHYyUmVj
b3Jkc1RhYmxlU2NoZW1hKCJcIlJlY29yZHNcIiJfcykpOwogICAgIHJldHVybiB2MlJlY29yZHNU
YWJsZVNjaGVtYVN0cmluZzsKIH0KIApAQCAtMTQ3LDM3ICsxNDcsMzcgQEAgc3RhdGljIEFTQ0lJ
TGl0ZXJhbCB2M1JlY29yZHNUYWJsZVNjaGVtYVRlbXAoKQogICAgIHJldHVybiBUQUJMRV9TQ0hF
TUFfUFJFRklYICJfVGVtcF9SZWNvcmRzIiBWM19SRUNPUkRTX1RBQkxFX1NDSEVNQV9TVUZGSVg7
CiB9CiAKLXN0YXRpYyBjb25zdCBTdHJpbmcgdjFJbmRleFJlY29yZHNUYWJsZVNjaGVtYShjb25z
dCBTdHJpbmcmIHRhYmxlTmFtZSkKK3N0YXRpYyBjb25zdCBTdHJpbmcgdjFJbmRleFJlY29yZHNU
YWJsZVNjaGVtYShBU0NJSUxpdGVyYWwgdGFibGVOYW1lKQogewogICAgIHJldHVybiBtYWtlU3Ry
aW5nKCJDUkVBVEUgVEFCTEUgIiwgdGFibGVOYW1lLCAiIChpbmRleElEIElOVEVHRVIgTk9UIE5V
TEwgT04gQ09ORkxJQ1QgRkFJTCwgb2JqZWN0U3RvcmVJRCBJTlRFR0VSIE5PVCBOVUxMIE9OIENP
TkZMSUNUIEZBSUwsIGtleSBURVhUIENPTExBVEUgSURCS0VZIE5PVCBOVUxMIE9OIENPTkZMSUNU
IEZBSUwsIHZhbHVlIE5PVCBOVUxMIE9OIENPTkZMSUNUIEZBSUwpIik7CiB9CiAKIHN0YXRpYyBj
b25zdCBTdHJpbmcmIHYxSW5kZXhSZWNvcmRzVGFibGVTY2hlbWEoKQogewotICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxTdHJpbmc+IHYxSW5kZXhSZWNvcmRzVGFibGVTY2hlbWFTdHJpbmcodjFJ
bmRleFJlY29yZHNUYWJsZVNjaGVtYSgiSW5kZXhSZWNvcmRzIikpOworICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxTdHJpbmc+IHYxSW5kZXhSZWNvcmRzVGFibGVTY2hlbWFTdHJpbmcodjFJbmRl
eFJlY29yZHNUYWJsZVNjaGVtYSgiSW5kZXhSZWNvcmRzIl9zKSk7CiAgICAgcmV0dXJuIHYxSW5k
ZXhSZWNvcmRzVGFibGVTY2hlbWFTdHJpbmc7CiB9CiAKIHN0YXRpYyBjb25zdCBTdHJpbmcmIHYx
SW5kZXhSZWNvcmRzVGFibGVTY2hlbWFBbHRlcm5hdGUoKQogewotICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxTdHJpbmc+IHYxSW5kZXhSZWNvcmRzVGFibGVTY2hlbWFTdHJpbmcodjFJbmRleFJl
Y29yZHNUYWJsZVNjaGVtYSgiXCJJbmRleFJlY29yZHNcIiIpKTsKKyAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8U3RyaW5nPiB2MUluZGV4UmVjb3Jkc1RhYmxlU2NoZW1hU3RyaW5nKHYxSW5kZXhS
ZWNvcmRzVGFibGVTY2hlbWEoIlwiSW5kZXhSZWNvcmRzXCIiX3MpKTsKICAgICByZXR1cm4gdjFJ
bmRleFJlY29yZHNUYWJsZVNjaGVtYVN0cmluZzsKIH0KIAotc3RhdGljIGNvbnN0IFN0cmluZyB2
MkluZGV4UmVjb3Jkc1RhYmxlU2NoZW1hKGNvbnN0IFN0cmluZyYgdGFibGVOYW1lKQorc3RhdGlj
IGNvbnN0IFN0cmluZyB2MkluZGV4UmVjb3Jkc1RhYmxlU2NoZW1hKEFTQ0lJTGl0ZXJhbCB0YWJs
ZU5hbWUpCiB7CiAgICAgcmV0dXJuIG1ha2VTdHJpbmcoIkNSRUFURSBUQUJMRSAiLCB0YWJsZU5h
bWUsICIgKGluZGV4SUQgSU5URUdFUiBOT1QgTlVMTCBPTiBDT05GTElDVCBGQUlMLCBvYmplY3RT
dG9yZUlEIElOVEVHRVIgTk9UIE5VTEwgT04gQ09ORkxJQ1QgRkFJTCwga2V5IFRFWFQgQ09MTEFU
RSBJREJLRVkgTk9UIE5VTEwgT04gQ09ORkxJQ1QgRkFJTCwgdmFsdWUgVEVYVCBDT0xMQVRFIElE
QktFWSBOT1QgTlVMTCBPTiBDT05GTElDVCBGQUlMKSIpOwogfQogCiBzdGF0aWMgY29uc3QgU3Ry
aW5nJiB2MkluZGV4UmVjb3Jkc1RhYmxlU2NoZW1hKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8U3RyaW5nPiB2MkluZGV4UmVjb3Jkc1RhYmxlU2NoZW1hU3RyaW5nKHYySW5kZXhSZWNv
cmRzVGFibGVTY2hlbWEoIkluZGV4UmVjb3JkcyIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8U3RyaW5nPiB2MkluZGV4UmVjb3Jkc1RhYmxlU2NoZW1hU3RyaW5nKHYySW5kZXhSZWNvcmRz
VGFibGVTY2hlbWEoIkluZGV4UmVjb3JkcyJfcykpOwogICAgIHJldHVybiB2MkluZGV4UmVjb3Jk
c1RhYmxlU2NoZW1hU3RyaW5nOwogfQogCiBzdGF0aWMgY29uc3QgU3RyaW5nJiB2MkluZGV4UmVj
b3Jkc1RhYmxlU2NoZW1hQWx0ZXJuYXRlKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
U3RyaW5nPiB2MkluZGV4UmVjb3Jkc1RhYmxlU2NoZW1hU3RyaW5nKHYySW5kZXhSZWNvcmRzVGFi
bGVTY2hlbWEoIlwiSW5kZXhSZWNvcmRzXCIiKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PFN0cmluZz4gdjJJbmRleFJlY29yZHNUYWJsZVNjaGVtYVN0cmluZyh2MkluZGV4UmVjb3Jkc1Rh
YmxlU2NoZW1hKCJcIkluZGV4UmVjb3Jkc1wiIl9zKSk7CiAgICAgcmV0dXJuIHYySW5kZXhSZWNv
cmRzVGFibGVTY2hlbWFTdHJpbmc7CiB9CiAKQEAgLTkxNCw3ICs5MTQsNyBAQCBTdHJpbmcgU1FM
aXRlSURCQmFja2luZ1N0b3JlOjplbmNvZGVEYXRhYmFzZU5hbWUoY29uc3QgU3RyaW5nJiBkYXRh
YmFzZU5hbWUpCiB7CiAgICAgQVNTRVJUKCFkYXRhYmFzZU5hbWUuaXNFbXB0eSgpKTsKICAgICBp
ZiAoZGF0YWJhc2VOYW1lLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuICIlMDAiOworICAgICAg
ICByZXR1cm4gIiUwMCJfczsKIAogICAgIFN0cmluZyBmaWxlbmFtZSA9IEZpbGVTeXN0ZW06OmVu
Y29kZUZvckZpbGVOYW1lKGRhdGFiYXNlTmFtZSk7CiAgICAgZmlsZW5hbWUucmVwbGFjZVdpdGhM
aXRlcmFsKCcuJywgIiUyRSIpOwpAQCAtOTM1LDcgKzkzNSw3IEBAIFN0cmluZyBTUUxpdGVJREJC
YWNraW5nU3RvcmU6OmRlY29kZURhdGFiYXNlTmFtZShjb25zdCBTdHJpbmcmIGVuY29kZWROYW1l
KQogCiBTdHJpbmcgU1FMaXRlSURCQmFja2luZ1N0b3JlOjpmdWxsRGF0YWJhc2VQYXRoRm9yRGly
ZWN0b3J5KGNvbnN0IFN0cmluZyYgZnVsbERhdGFiYXNlRGlyZWN0b3J5KQogewotICAgIHJldHVy
biBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoZnVsbERhdGFiYXNlRGlyZWN0
b3J5LCAiSW5kZXhlZERCLnNxbGl0ZTMiKTsKKyAgICByZXR1cm4gRmlsZVN5c3RlbTo6cGF0aEJ5
QXBwZW5kaW5nQ29tcG9uZW50KGZ1bGxEYXRhYmFzZURpcmVjdG9yeSwgIkluZGV4ZWREQi5zcWxp
dGUzIl9zKTsKIH0KIAogU3RyaW5nIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6ZnVsbERhdGFiYXNl
UGF0aCgpIGNvbnN0CkBAIC05OTYsNyArOTk2LDcgQEAgSURCRXJyb3IgU1FMaXRlSURCQmFja2lu
Z1N0b3JlOjpnZXRPckVzdGFibGlzaERhdGFiYXNlSW5mbyhJREJEYXRhYmFzZUluZm8mIGluZm8K
ICAgICBtX3NxbGl0ZURCLT5kaXNhYmxlVGhyZWFkaW5nQ2hlY2tzKCk7CiAgICAgbV9zcWxpdGVE
Qi0+ZW5hYmxlQXV0b21hdGljV0FMVHJ1bmNhdGlvbigpOwogCi0gICAgbV9zcWxpdGVEQi0+c2V0
Q29sbGF0aW9uRnVuY3Rpb24oIklEQktFWSIsIFtdKGludCBhTGVuZ3RoLCBjb25zdCB2b2lkKiBh
LCBpbnQgYkxlbmd0aCwgY29uc3Qgdm9pZCogYikgeworICAgIG1fc3FsaXRlREItPnNldENvbGxh
dGlvbkZ1bmN0aW9uKCJJREJLRVkiX3MsIFtdKGludCBhTGVuZ3RoLCBjb25zdCB2b2lkKiBhLCBp
bnQgYkxlbmd0aCwgY29uc3Qgdm9pZCogYikgewogICAgICAgICByZXR1cm4gaWRiS2V5Q29sbGF0
ZShhTGVuZ3RoLCBhLCBiTGVuZ3RoLCBiKTsKICAgICB9KTsKIApAQCAtMTkwOSw3ICsxOTA5LDcg
QEAgSURCRXJyb3IgU1FMaXRlSURCQmFja2luZ1N0b3JlOjp1cGRhdGVBbGxJbmRleGVzRm9yQWRk
UmVjb3JkKGNvbnN0IElEQk9iamVjdFN0b3IKICAgICAgICAgQVNTRVJUKGluZGV4SXRlcmF0b3Ig
IT0gaW5kZXhNYXAuZW5kKCkpOwogCiAgICAgICAgIGlmIChpbmRleEl0ZXJhdG9yID09IGluZGV4
TWFwLmVuZCgpKSB7Ci0gICAgICAgICAgICBlcnJvciA9IElEQkVycm9yIHsgSW52YWxpZFN0YXRl
RXJyb3IsICJNaXNzaW5nIGluZGV4IG1ldGFkYXRhIiB9OworICAgICAgICAgICAgZXJyb3IgPSBJ
REJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiTWlzc2luZyBpbmRleCBtZXRhZGF0YSJfcyB9
OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIApAQCAtMjU3Myw3ICsyNTczLDcgQEAg
SURCRXJyb3IgU1FMaXRlSURCQmFja2luZ1N0b3JlOjp1bmNoZWNrZWRHZXRLZXlHZW5lcmF0b3JW
YWx1ZShpbnQ2NF90IG9iamVjdFN0b3IKIAogICAgIGludDY0X3QgdmFsdWUgPSBzcWwtPmNvbHVt
bkludDY0KDApOwogICAgIGlmICh2YWx1ZSA8IDApCi0gICAgICAgIHJldHVybiBJREJFcnJvciB7
IENvbnN0cmFpbnRFcnJvciwgIkN1cnJlbnQga2V5IGdlbmVyYXRvciB2YWx1ZSBmcm9tIGRhdGFi
YXNlIGlzIGludmFsaWQiIH07CisgICAgICAgIHJldHVybiBJREJFcnJvciB7IENvbnN0cmFpbnRF
cnJvciwgIkN1cnJlbnQga2V5IGdlbmVyYXRvciB2YWx1ZSBmcm9tIGRhdGFiYXNlIGlzIGludmFs
aWQiX3MgfTsKIAogICAgIG91dFZhbHVlID0gdmFsdWU7CiAgICAgcmV0dXJuIElEQkVycm9yIHsg
fTsKQEAgLTI1ODcsNyArMjU4Nyw3IEBAIElEQkVycm9yIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6
dW5jaGVja2VkU2V0S2V5R2VuZXJhdG9yVmFsdWUoaW50NjRfdCBvYmplY3RTdG9yCiAgICAgICAg
IHx8IHNxbC0+YmluZEludDY0KDIsIHZhbHVlKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgc3Fs
LT5zdGVwKCkgIT0gU1FMSVRFX0RPTkUpIHsKICAgICAgICAgTE9HX0VSUk9SKCJDb3VsZCBub3Qg
dXBkYXRlIGtleSBnZW5lcmF0b3IgdmFsdWUgKCVpKSAtICVzIiwgbV9zcWxpdGVEQi0+bGFzdEVy
cm9yKCksIG1fc3FsaXRlREItPmxhc3RFcnJvck1zZygpKTsKLSAgICAgICAgcmV0dXJuIElEQkVy
cm9yIHsgQ29uc3RyYWludEVycm9yLCAiRXJyb3Igc3RvcmluZyBuZXcga2V5IGdlbmVyYXRvciB2
YWx1ZSBpbiBkYXRhYmFzZSIgfTsKKyAgICAgICAgcmV0dXJuIElEQkVycm9yIHsgQ29uc3RyYWlu
dEVycm9yLCAiRXJyb3Igc3RvcmluZyBuZXcga2V5IGdlbmVyYXRvciB2YWx1ZSBpbiBkYXRhYmFz
ZSJfcyB9OwogICAgIH0KIAogICAgIHJldHVybiBJREJFcnJvciB7IH07CkBAIC0yNjE1LDcgKzI2
MTUsNyBAQCBJREJFcnJvciBTUUxpdGVJREJCYWNraW5nU3RvcmU6OmdlbmVyYXRlS2V5TnVtYmVy
KGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdAogICAgICAgICByZXR1cm4gZXJyb3I7CiAK
ICAgICBpZiAoY3VycmVudFZhbHVlICsgMSA+IG1heEdlbmVyYXRvclZhbHVlKQotICAgICAgICBy
ZXR1cm4gSURCRXJyb3IgeyBDb25zdHJhaW50RXJyb3IsICJDYW5ub3QgZ2VuZXJhdGUgbmV3IGtl
eSB2YWx1ZSBvdmVyIDJeNTMgZm9yIG9iamVjdCBzdG9yZSBvcGVyYXRpb24iIH07CisgICAgICAg
IHJldHVybiBJREJFcnJvciB7IENvbnN0cmFpbnRFcnJvciwgIkNhbm5vdCBnZW5lcmF0ZSBuZXcg
a2V5IHZhbHVlIG92ZXIgMl41MyBmb3Igb2JqZWN0IHN0b3JlIG9wZXJhdGlvbiJfcyB9OwogCiAg
ICAgZ2VuZXJhdGVkS2V5ID0gY3VycmVudFZhbHVlICsgMTsKICAgICByZXR1cm4gdW5jaGVja2Vk
U2V0S2V5R2VuZXJhdG9yVmFsdWUob2JqZWN0U3RvcmVJRCwgZ2VuZXJhdGVkS2V5KTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJE
YXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5p
cXVlSURCRGF0YWJhc2UuY3BwCmluZGV4IDIzZTZkM2Y1YzhiYzYzNzZjMzBjNjVjNGY2NzJlZTY0
YzNmYWY2ZjEuLjc0YWRlZWUzZTMxYWFhZDJkM2Q5NWMyODU1ZDUwOGI4YTU3NmQwYjMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJE
YXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVy
L1VuaXF1ZUlEQkRhdGFiYXNlLmNwcApAQCAtNTg5LDcgKzU4OSw3IEBAIHZvaWQgVW5pcXVlSURC
RGF0YWJhc2U6OmNyZWF0ZU9iamVjdFN0b3JlKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24m
IHRyYW5zYWN0CiAgICAgICAgIGF1dG8gdGFza1NpemUgPSBkZWZhdWx0V3JpdGVPcGVyYXRpb25D
b3N0ICsgZXN0aW1hdGVTaXplKGluZm8pOwogICAgICAgICBtX21hbmFnZXItPnJlcXVlc3RTcGFj
ZShtX2lkZW50aWZpZXIub3JpZ2luKCksIHRhc2tTaXplLCBbdGhpcywgd2Vha1RoaXMgPSBXZWFr
UHRyIHsgKnRoaXMgfSwgd2Vha1RyYW5zYWN0aW9uID0gV2Vha1B0ciB7IHRyYW5zYWN0aW9uIH0s
IGluZm8sIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKGJvb2wgZ3JhbnRlZCkgbXV0YWJs
ZSB7CiAgICAgICAgICAgICBpZiAoIXdlYWtUaGlzIHx8ICF3ZWFrVHJhbnNhY3Rpb24pCi0gICAg
ICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3Is
ICJEYXRhYmFzZSBvciB0cmFuc2FjdGlvbiBpcyBjbG9zZWQiIH0pOworICAgICAgICAgICAgICAg
IHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJhc2Ug
b3IgdHJhbnNhY3Rpb24gaXMgY2xvc2VkIl9zIH0pOwogICAgICAgICAgICAgY3JlYXRlT2JqZWN0
U3RvcmUoKndlYWtUcmFuc2FjdGlvbiwgaW5mbywgV1RGTW92ZShjYWxsYmFjayksIGdyYW50ZWQg
PyBTcGFjZUNoZWNrUmVzdWx0OjpQYXNzIDogU3BhY2VDaGVja1Jlc3VsdDo6RmFpbCk7CiAgICAg
ICAgIH0pOwogICAgICAgICByZXR1cm47CkBAIC02MDEsNyArNjAxLDcgQEAgdm9pZCBVbmlxdWVJ
REJEYXRhYmFzZTo6Y3JlYXRlT2JqZWN0U3RvcmUoVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlv
biYgdHJhbnNhY3QKICAgICB9CiAKICAgICBpZiAoIW1fYmFja2luZ1N0b3JlKQotICAgICAgICBy
ZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3Rv
cmUgaGFzIGNsb3NlZCIgfSk7CisgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IElu
dmFsaWRTdGF0ZUVycm9yLCAiQmFja2luZyBzdG9yZSBoYXMgY2xvc2VkIl9zIH0pOwogCiAgICAg
YXV0byBlcnJvciA9IG1fYmFja2luZ1N0b3JlLT5jcmVhdGVPYmplY3RTdG9yZSh0cmFuc2FjdGlv
bi5pbmZvKCkuaWRlbnRpZmllcigpLCBpbmZvKTsKICAgICBpZiAoZXJyb3IuaXNOdWxsKCkpCkBA
IC02MjEsNyArNjIxLDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6ZGVsZXRlT2JqZWN0U3Rv
cmUoVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbiYgdHJhbnNhY3QKIAogICAgICAgICBtX21h
bmFnZXItPnJlcXVlc3RTcGFjZShtX2lkZW50aWZpZXIub3JpZ2luKCksIDAsIFt0aGlzLCB3ZWFr
VGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCB3ZWFrVHJhbnNhY3Rpb24gPSBXZWFrUHRyIHsgdHJh
bnNhY3Rpb24gfSwgb2JqZWN0U3RvcmVOYW1lLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2sp
XShib29sIGdyYW50ZWQpIG11dGFibGUgewogICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcyB8fCAh
d2Vha1RyYW5zYWN0aW9uKQotICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJv
ciB7IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJhc2Ugb3IgdHJhbnNhY3Rpb24gaXMgY2xvc2Vk
IiB9KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlk
U3RhdGVFcnJvciwgIkRhdGFiYXNlIG9yIHRyYW5zYWN0aW9uIGlzIGNsb3NlZCJfcyB9KTsKIAog
ICAgICAgICAgICAgZGVsZXRlT2JqZWN0U3RvcmUoKndlYWtUcmFuc2FjdGlvbiwgb2JqZWN0U3Rv
cmVOYW1lLCBXVEZNb3ZlKGNhbGxiYWNrKSwgZ3JhbnRlZCA/IFNwYWNlQ2hlY2tSZXN1bHQ6OlBh
c3MgOiBTcGFjZUNoZWNrUmVzdWx0OjpGYWlsKTsKICAgICAgICAgfSk7CkBAIC02MzYsNyArNjM2
LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6ZGVsZXRlT2JqZWN0U3RvcmUoVW5pcXVlSURC
RGF0YWJhc2VUcmFuc2FjdGlvbiYgdHJhbnNhY3QKICAgICB9CiAKICAgICBpZiAoIW1fYmFja2lu
Z1N0b3JlKQotICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVF
cnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xvc2VkIiB9KTsKKyAgICAgICAgcmV0dXJuIGNhbGxi
YWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3JlIGlzIGNsb3Nl
ZCJfcyB9KTsKIAogICAgIGF1dG8gZXJyb3IgPSBtX2JhY2tpbmdTdG9yZS0+ZGVsZXRlT2JqZWN0
U3RvcmUodHJhbnNhY3Rpb24uaW5mbygpLmlkZW50aWZpZXIoKSwgaW5mby0+aWRlbnRpZmllcigp
KTsKICAgICBpZiAoZXJyb3IuaXNOdWxsKCkpCkBAIC02NTcsNyArNjU3LDcgQEAgdm9pZCBVbmlx
dWVJREJEYXRhYmFzZTo6cmVuYW1lT2JqZWN0U3RvcmUoVW5pcXVlSURCRGF0YWJhc2VUcmFuc2Fj
dGlvbiYgdHJhbnNhY3QKICAgICAgICAgYXV0byB0YXNrU2l6ZSA9IGRlZmF1bHRXcml0ZU9wZXJh
dGlvbkNvc3QgKyBuZXdOYW1lLnNpemVJbkJ5dGVzKCk7CiAgICAgICAgIG1fbWFuYWdlci0+cmVx
dWVzdFNwYWNlKG1faWRlbnRpZmllci5vcmlnaW4oKSwgdGFza1NpemUsIFt0aGlzLCB3ZWFrVGhp
cyA9IFdlYWtQdHIgeyAqdGhpcyB9LCB3ZWFrVHJhbnNhY3Rpb24gPSBXZWFrUHRyIHsgdHJhbnNh
Y3Rpb24gfSwgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBuZXdOYW1lLCBjYWxsYmFjayA9IFdURk1v
dmUoY2FsbGJhY2spXShib29sIGdyYW50ZWQpIG11dGFibGUgewogICAgICAgICAgICAgaWYgKCF3
ZWFrVGhpcyB8fCAhd2Vha1RyYW5zYWN0aW9uKQotICAgICAgICAgICAgICAgIHJldHVybiBjYWxs
YmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJhc2Ugb3IgdHJhbnNhY3Rp
b24gaXMgY2xvc2VkIiB9KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJy
b3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkRhdGFiYXNlIG9yIHRyYW5zYWN0aW9uIGlzIGNsb3Nl
ZCJfcyB9KTsKIAogICAgICAgICAgICAgcmVuYW1lT2JqZWN0U3RvcmUoKndlYWtUcmFuc2FjdGlv
biwgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBuZXdOYW1lLCBXVEZNb3ZlKGNhbGxiYWNrKSwgZ3Jh
bnRlZCA/IFNwYWNlQ2hlY2tSZXN1bHQ6OlBhc3MgOiBTcGFjZUNoZWNrUmVzdWx0OjpGYWlsKTsK
ICAgICAgICAgfSk7CkBAIC02NzYsNyArNjc2LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6
cmVuYW1lT2JqZWN0U3RvcmUoVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbiYgdHJhbnNhY3QK
ICAgICB9CiAKICAgICBpZiAoIW1fYmFja2luZ1N0b3JlKQotICAgICAgICByZXR1cm4gY2FsbGJh
Y2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xvc2Vk
IiB9KTsKKyAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJy
b3IsICJCYWNraW5nIHN0b3JlIGlzIGNsb3NlZCJfcyB9KTsKIAogICAgIGF1dG8gZXJyb3IgPSBt
X2JhY2tpbmdTdG9yZS0+cmVuYW1lT2JqZWN0U3RvcmUodHJhbnNhY3Rpb24uaW5mbygpLmlkZW50
aWZpZXIoKSwgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBuZXdOYW1lKTsKICAgICBpZiAoZXJyb3Iu
aXNOdWxsKCkpCkBAIC02OTYsNyArNjk2LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6Y2xl
YXJPYmplY3RTdG9yZShVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uJiB0cmFuc2FjdGkKIAog
ICAgICAgICBtX21hbmFnZXItPnJlcXVlc3RTcGFjZShtX2lkZW50aWZpZXIub3JpZ2luKCksIDAs
IFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCB3ZWFrVHJhbnNhY3Rpb24gPSBX
ZWFrUHRyIHsgdHJhbnNhY3Rpb24gfSwgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBjYWxsYmFjayA9
IFdURk1vdmUoY2FsbGJhY2spXShib29sIGdyYW50ZWQpIG11dGFibGUgewogICAgICAgICAgICAg
aWYgKCF3ZWFrVGhpcyB8fCAhd2Vha1RyYW5zYWN0aW9uKQotICAgICAgICAgICAgICAgIHJldHVy
biBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJhc2Ugb3IgdHJh
bnNhY3Rpb24gaXMgY2xvc2VkIiB9KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2so
SURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkRhdGFiYXNlIG9yIHRyYW5zYWN0aW9uIGlz
IGNsb3NlZCJfcyB9KTsKIAogICAgICAgICAgICAgY2xlYXJPYmplY3RTdG9yZSgqd2Vha1RyYW5z
YWN0aW9uLCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIFdURk1vdmUoY2FsbGJhY2spLCBncmFudGVk
ID8gU3BhY2VDaGVja1Jlc3VsdDo6UGFzcyA6IFNwYWNlQ2hlY2tSZXN1bHQ6OkZhaWwpOwogICAg
ICAgICB9KTsKQEAgLTcwNSw3ICs3MDUsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpjbGVh
ck9iamVjdFN0b3JlKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mIHRyYW5zYWN0aQogCiAg
ICAgQVNTRVJUKHNwYWNlQ2hlY2tSZXN1bHQgPT0gU3BhY2VDaGVja1Jlc3VsdDo6UGFzcyk7CiAg
ICAgaWYgKCFtX2JhY2tpbmdTdG9yZSkKLSAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9y
IHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3JlIGlzIGNsb3NlZCIgfSk7CisgICAg
ICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiQmFja2lu
ZyBzdG9yZSBpcyBjbG9zZWQiX3MgfSk7CiAKICAgICBhdXRvIGVycm9yID0gbV9iYWNraW5nU3Rv
cmUtPmNsZWFyT2JqZWN0U3RvcmUodHJhbnNhY3Rpb24uaW5mbygpLmlkZW50aWZpZXIoKSwgb2Jq
ZWN0U3RvcmVJZGVudGlmaWVyKTsKICAgICBjYWxsYmFjayhlcnJvcik7CkBAIC03MjMsNyArNzIz
LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6Y3JlYXRlSW5kZXgoVW5pcXVlSURCRGF0YWJh
c2VUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24sIGMKICAgICAgICAgYXV0byB0YXNrU2l6ZSA9IGRl
ZmF1bHRXcml0ZU9wZXJhdGlvbkNvc3QgKyBlc3RpbWF0ZVNpemUoaW5mbyk7CiAgICAgICAgIG1f
bWFuYWdlci0+cmVxdWVzdFNwYWNlKG1faWRlbnRpZmllci5vcmlnaW4oKSwgdGFza1NpemUsIFt0
aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCB3ZWFrVHJhbnNhY3Rpb24gPSBXZWFr
UHRyIHsgdHJhbnNhY3Rpb24gfSwgaW5mbywgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0o
Ym9vbCBncmFudGVkKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlmICghd2Vha1RoaXMgfHwgIXdl
YWtUcmFuc2FjdGlvbikKLSAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3Ig
eyBJbnZhbGlkU3RhdGVFcnJvciwgIkRhdGFiYXNlIG9yIHRyYW5zYWN0aW9uIGlzIGNsb3NlZCIg
fSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0
YXRlRXJyb3IsICJEYXRhYmFzZSBvciB0cmFuc2FjdGlvbiBpcyBjbG9zZWQiX3MgfSk7CiAKICAg
ICAgICAgICAgIGNyZWF0ZUluZGV4KCp3ZWFrVHJhbnNhY3Rpb24sIGluZm8sIFdURk1vdmUoY2Fs
bGJhY2spLCBncmFudGVkID8gU3BhY2VDaGVja1Jlc3VsdDo6UGFzcyA6IFNwYWNlQ2hlY2tSZXN1
bHQ6OkZhaWwpOwogICAgICAgICB9KTsKQEAgLTczNiw3ICs3MzYsNyBAQCB2b2lkIFVuaXF1ZUlE
QkRhdGFiYXNlOjpjcmVhdGVJbmRleChVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uJiB0cmFu
c2FjdGlvbiwgYwogICAgIH0KIAogICAgIGlmICghbV9iYWNraW5nU3RvcmUpCi0gICAgICAgIHJl
dHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiQmFja2luZyBzdG9y
ZSBpcyBjbG9zZWQiIH0pOworICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZh
bGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xvc2VkIl9zIH0pOwogCiAgICAgYXV0
byBlcnJvciA9IG1fYmFja2luZ1N0b3JlLT5jcmVhdGVJbmRleCh0cmFuc2FjdGlvbi5pbmZvKCku
aWRlbnRpZmllcigpLCBpbmZvKTsKICAgICBpZiAoZXJyb3IuaXNOdWxsKCkpIHsKQEAgLTc2MSw3
ICs3NjEsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpkZWxldGVJbmRleChVbmlxdWVJREJE
YXRhYmFzZVRyYW5zYWN0aW9uJiB0cmFuc2FjdGlvbiwgdQogCiAgICAgICAgIG1fbWFuYWdlci0+
cmVxdWVzdFNwYWNlKG1faWRlbnRpZmllci5vcmlnaW4oKSwgMCwgW3RoaXMsIHdlYWtUaGlzID0g
V2Vha1B0ciB7ICp0aGlzIH0sIHdlYWtUcmFuc2FjdGlvbiA9IFdlYWtQdHIgeyB0cmFuc2FjdGlv
biB9LCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGluZGV4TmFtZSwgY2FsbGJhY2sgPSBXVEZNb3Zl
KGNhbGxiYWNrKV0oYm9vbCBncmFudGVkKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlmICghd2Vh
a1RoaXMgfHwgIXdlYWtUcmFuc2FjdGlvbikKLSAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJh
Y2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkRhdGFiYXNlIG9yIHRyYW5zYWN0aW9u
IGlzIGNsb3NlZCIgfSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9y
IHsgSW52YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBvciB0cmFuc2FjdGlvbiBpcyBjbG9zZWQi
X3MgfSk7CiAKICAgICAgICAgICAgIGRlbGV0ZUluZGV4KCp3ZWFrVHJhbnNhY3Rpb24sIG9iamVj
dFN0b3JlSWRlbnRpZmllciwgaW5kZXhOYW1lLCBXVEZNb3ZlKGNhbGxiYWNrKSwgZ3JhbnRlZCA/
IFNwYWNlQ2hlY2tSZXN1bHQ6OlBhc3MgOiBTcGFjZUNoZWNrUmVzdWx0OjpGYWlsKTsKICAgICAg
ICAgfSk7CkBAIC03NzAsNyArNzcwLDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6ZGVsZXRl
SW5kZXgoVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24sIHUKIAogICAg
IEFTU0VSVChzcGFjZUNoZWNrUmVzdWx0ID09IFNwYWNlQ2hlY2tSZXN1bHQ6OlBhc3MpOwogICAg
IGlmICghbV9iYWNraW5nU3RvcmUpCi0gICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7
IEludmFsaWRTdGF0ZUVycm9yLCAiQmFja2luZyBzdG9yZSBpcyBjbG9zZWQiIH0pOworICAgICAg
ICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcg
c3RvcmUgaXMgY2xvc2VkIl9zIH0pOwogCiAgICAgYXV0byogb2JqZWN0U3RvcmVJbmZvID0gbV9k
YXRhYmFzZUluZm8tPmluZm9Gb3JFeGlzdGluZ09iamVjdFN0b3JlKG9iamVjdFN0b3JlSWRlbnRp
Zmllcik7CiAgICAgaWYgKCFvYmplY3RTdG9yZUluZm8pIHsKQEAgLTgwNCw3ICs4MDQsNyBAQCB2
b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpyZW5hbWVJbmRleChVbmlxdWVJREJEYXRhYmFzZVRyYW5z
YWN0aW9uJiB0cmFuc2FjdGlvbiwgdQogICAgICAgICBhdXRvIHRhc2tTaXplID0gZGVmYXVsdFdy
aXRlT3BlcmF0aW9uQ29zdCArIG5ld05hbWUuc2l6ZUluQnl0ZXMoKTsKICAgICAgICAgbV9tYW5h
Z2VyLT5yZXF1ZXN0U3BhY2UobV9pZGVudGlmaWVyLm9yaWdpbigpLCB0YXNrU2l6ZSwgW3RoaXMs
IHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHdlYWtUcmFuc2FjdGlvbiA9IFdlYWtQdHIg
eyB0cmFuc2FjdGlvbiB9LCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGluZGV4SWRlbnRpZmllciwg
bmV3TmFtZSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oYm9vbCBncmFudGVkKSBtdXRh
YmxlIHsKICAgICAgICAgICAgIGlmICghd2Vha1RoaXMgfHwgIXdlYWtUcmFuc2FjdGlvbikKLSAg
ICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJv
ciwgIkRhdGFiYXNlIG9yIHRyYW5zYWN0aW9uIGlzIGNsb3NlZCIgfSk7CisgICAgICAgICAgICAg
ICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFz
ZSBvciB0cmFuc2FjdGlvbiBpcyBjbG9zZWQiX3MgfSk7CiAKICAgICAgICAgICAgIHJlbmFtZUlu
ZGV4KCp3ZWFrVHJhbnNhY3Rpb24sIG9iamVjdFN0b3JlSWRlbnRpZmllciwgaW5kZXhJZGVudGlm
aWVyLCBuZXdOYW1lLCBXVEZNb3ZlKGNhbGxiYWNrKSwgZ3JhbnRlZCA/IFNwYWNlQ2hlY2tSZXN1
bHQ6OlBhc3MgOiBTcGFjZUNoZWNrUmVzdWx0OjpGYWlsKTsKICAgICAgICAgfSk7CkBAIC04MTcs
NyArODE3LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6cmVuYW1lSW5kZXgoVW5pcXVlSURC
RGF0YWJhc2VUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24sIHUKICAgICB9CiAKICAgICBpZiAoIW1f
YmFja2luZ1N0b3JlKQotICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlk
U3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xvc2VkIiB9KTsKKyAgICAgICAgcmV0dXJu
IGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3JlIGlz
IGNsb3NlZCJfcyB9KTsKIAogICAgIGF1dG8qIG9iamVjdFN0b3JlSW5mbyA9IG1fZGF0YWJhc2VJ
bmZvLT5pbmZvRm9yRXhpc3RpbmdPYmplY3RTdG9yZShvYmplY3RTdG9yZUlkZW50aWZpZXIpOwog
ICAgIGlmICghb2JqZWN0U3RvcmVJbmZvKSB7CkBAIC04NDYsNyArODQ2LDcgQEAgdm9pZCBVbmlx
dWVJREJEYXRhYmFzZTo6cHV0T3JBZGQoY29uc3QgSURCUmVxdWVzdERhdGEmIHJlcXVlc3REYXRh
LCBjb25zdCBJREJLZXkKICAgICBBU1NFUlQobV9kYXRhYmFzZUluZm8pOwogCiAgICAgaWYgKCFt
X2JhY2tpbmdTdG9yZSkKLSAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxp
ZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3JlIGlzIGNsb3NlZCIgfSwga2V5RGF0YSk7CisgICAg
ICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiQmFja2lu
ZyBzdG9yZSBpcyBjbG9zZWQiX3MgfSwga2V5RGF0YSk7CiAKICAgICBhdXRvIG9iamVjdFN0b3Jl
SWRlbnRpZmllciA9IHJlcXVlc3REYXRhLm9iamVjdFN0b3JlSWRlbnRpZmllcigpOwogICAgIGF1
dG8qIG9iamVjdFN0b3JlSW5mbyA9IG1fYmFja2luZ1N0b3JlLT5pbmZvRm9yT2JqZWN0U3RvcmUo
b2JqZWN0U3RvcmVJZGVudGlmaWVyKTsKQEAgLTkwMSw3ICs5MDEsNyBAQCB2b2lkIFVuaXF1ZUlE
QkRhdGFiYXNlOjpwdXRPckFkZChjb25zdCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdERhdGEsIGNv
bnN0IElEQktleQogICAgIExPRyhJbmRleGVkREIsICJVbmlxdWVJREJEYXRhYmFzZTo6cHV0T3JB
ZGQgcXVvdGEgY2hlY2sgd2l0aCB0YXNrIHNpemU6ICUiIFBSSXU2NCAiIGtleSBzaXplOiAlIiBQ
Ukl1NjQgIiB2YWx1ZSBzaXplOiAlIiBQUkl1NjQgIiBpbmRleCBzaXplOiAlIiBQUkl1NjQsIHRh
c2tTaXplLCBrZXlTaXplLCB2YWx1ZVNpemUsIGluZGV4U2l6ZSk7CiAgICAgbV9tYW5hZ2VyLT5y
ZXF1ZXN0U3BhY2UobV9pZGVudGlmaWVyLm9yaWdpbigpLCB0YXNrU2l6ZSwgW3RoaXMsIHdlYWtU
aGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHJlcXVlc3REYXRhLCB1c2VkS2V5LCB2YWx1ZSwgb3Zl
cndyaXRlTW9kZSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKSwgdXNlZEtleUlzR2VuZXJh
dGVkLCBpbmRleEtleXMsIG9iamVjdFN0b3JlSW5mbyA9ICpvYmplY3RTdG9yZUluZm9dKGJvb2wg
Z3JhbnRlZCkgbXV0YWJsZSB7CiAgICAgICAgIGlmICghd2Vha1RoaXMpCi0gICAgICAgICAgICBy
ZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkRhdGFiYXNlIGlz
IGNsb3NlZCIgfSwgdXNlZEtleSk7CisgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJy
b3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkRhdGFiYXNlIGlzIGNsb3NlZCJfcyB9LCB1c2VkS2V5
KTsKIAogICAgICAgICBwdXRPckFkZEFmdGVyU3BhY2VDaGVjayhyZXF1ZXN0RGF0YSwgdXNlZEtl
eSwgdmFsdWUsIG92ZXJ3cml0ZU1vZGUsIFdURk1vdmUoY2FsbGJhY2spLCB1c2VkS2V5SXNHZW5l
cmF0ZWQsIGluZGV4S2V5cywgb2JqZWN0U3RvcmVJbmZvLCBncmFudGVkID8gU3BhY2VDaGVja1Jl
c3VsdDo6UGFzcyA6IFNwYWNlQ2hlY2tSZXN1bHQ6OkZhaWwpOwogICAgIH0pOwpAQCAtOTEzLDcg
KzkxMyw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OnB1dE9yQWRkQWZ0ZXJTcGFjZUNoZWNr
KGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0CiAgICAgQVNTRVJUKG1fZGF0YWJhc2VJ
bmZvKTsKIAogICAgIGlmICghbV9iYWNraW5nU3RvcmUpCi0gICAgICAgIHJldHVybiBjYWxsYmFj
ayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiQmFja2luZyBzdG9yZSBpcyBjbG9zZWQi
IH0sIGtleURhdGEpOworICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlk
U3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xvc2VkIl9zIH0sIGtleURhdGEpOwogCiAg
ICAgdWludDY0X3Qga2V5TnVtYmVyID0gaXNLZXlHZW5lcmF0ZWQgPyBrZXlEYXRhLm51bWJlcigp
IDogMDsKICAgICBhdXRvIG9iamVjdFN0b3JlSWRlbnRpZmllciA9IG9iamVjdFN0b3JlSW5mby5p
ZGVudGlmaWVyKCk7CkBAIC05NTMsNyArOTUzLDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6
Z2V0UmVjb3JkKGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0YSwgY29uc3QgSURCR2UK
IAogICAgICAgICBtX21hbmFnZXItPnJlcXVlc3RTcGFjZShtX2lkZW50aWZpZXIub3JpZ2luKCks
IDAsIFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCByZXF1ZXN0RGF0YSwgZ2V0
UmVjb3JkRGF0YSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oYm9vbCBncmFudGVkKSBt
dXRhYmxlIHsKICAgICAgICAgICAgIGlmICghd2Vha1RoaXMpCi0gICAgICAgICAgICAgICAgcmV0
dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBpcyBj
bG9zZWQiIH0sIElEQkdldFJlc3VsdCB7IH0pOworICAgICAgICAgICAgICAgIHJldHVybiBjYWxs
YmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJhc2UgaXMgY2xvc2VkIl9z
IH0sIElEQkdldFJlc3VsdCB7IH0pOwogCiAgICAgICAgICAgICBnZXRSZWNvcmQocmVxdWVzdERh
dGEsIGdldFJlY29yZERhdGEsIFdURk1vdmUoY2FsbGJhY2spLCBncmFudGVkID8gU3BhY2VDaGVj
a1Jlc3VsdDo6UGFzcyA6IFNwYWNlQ2hlY2tSZXN1bHQ6OkZhaWwpOwogICAgICAgICB9KTsKQEAg
LTk2Miw3ICs5NjIsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpnZXRSZWNvcmQoY29uc3Qg
SURCUmVxdWVzdERhdGEmIHJlcXVlc3REYXRhLCBjb25zdCBJREJHZQogCiAgICAgQVNTRVJUKHNw
YWNlQ2hlY2tSZXN1bHQgPT0gU3BhY2VDaGVja1Jlc3VsdDo6UGFzcyk7CiAgICAgaWYgKCFtX2Jh
Y2tpbmdTdG9yZSkKLSAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0
YXRlRXJyb3IsICJCYWNraW5nIHN0b3JlIGlzIGNsb3NlZCIgfSwgSURCR2V0UmVzdWx0IHsgfSk7
CisgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAi
QmFja2luZyBzdG9yZSBpcyBjbG9zZWQiX3MgfSwgSURCR2V0UmVzdWx0IHsgfSk7CiAKICAgICBJ
REJHZXRSZXN1bHQgcmVzdWx0OwogICAgIElEQkVycm9yIGVycm9yOwpAQCAtOTg2LDcgKzk4Niw3
IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmdldEFsbFJlY29yZHMoY29uc3QgSURCUmVxdWVz
dERhdGEmIHJlcXVlc3REYXRhLCBjb25zdCBJCiAKICAgICAgICAgbV9tYW5hZ2VyLT5yZXF1ZXN0
U3BhY2UobV9pZGVudGlmaWVyLm9yaWdpbigpLCAwLCBbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRy
IHsgKnRoaXMgfSwgcmVxdWVzdERhdGEsIGdldEFsbFJlY29yZHNEYXRhLCBjYWxsYmFjayA9IFdU
Rk1vdmUoY2FsbGJhY2spXShib29sIGdyYW50ZWQpIG11dGFibGUgewogICAgICAgICAgICAgaWYg
KCF3ZWFrVGhpcykKLSAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJ
bnZhbGlkU3RhdGVFcnJvciwgIkRhdGFiYXNlIGlzIGNsb3NlZCIgfSwgSURCR2V0QWxsUmVzdWx0
IHsgfSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxp
ZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBpcyBjbG9zZWQiX3MgfSwgSURCR2V0QWxsUmVzdWx0IHsg
fSk7CiAKICAgICAgICAgICAgIGdldEFsbFJlY29yZHMocmVxdWVzdERhdGEsIGdldEFsbFJlY29y
ZHNEYXRhLCBXVEZNb3ZlKGNhbGxiYWNrKSwgZ3JhbnRlZCA/IFNwYWNlQ2hlY2tSZXN1bHQ6OlBh
c3MgOiBTcGFjZUNoZWNrUmVzdWx0OjpGYWlsKTsKICAgICAgICAgfSk7CkBAIC05OTUsNyArOTk1
LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6Z2V0QWxsUmVjb3Jkcyhjb25zdCBJREJSZXF1
ZXN0RGF0YSYgcmVxdWVzdERhdGEsIGNvbnN0IEkKIAogICAgIEFTU0VSVChzcGFjZUNoZWNrUmVz
dWx0ID09IFNwYWNlQ2hlY2tSZXN1bHQ6OlBhc3MpOwogICAgIGlmICghbV9iYWNraW5nU3RvcmUp
Ci0gICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAi
QmFja2luZyBzdG9yZSBpcyBjbG9zZWQiIH0sIElEQkdldEFsbFJlc3VsdCB7IH0pOworICAgICAg
ICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcg
c3RvcmUgaXMgY2xvc2VkIl9zIH0sIElEQkdldEFsbFJlc3VsdCB7IH0pOwogCiAgICAgSURCR2V0
QWxsUmVzdWx0IHJlc3VsdDsKICAgICBhdXRvIGVycm9yID0gbV9iYWNraW5nU3RvcmUtPmdldEFs
bFJlY29yZHMocmVxdWVzdERhdGEudHJhbnNhY3Rpb25JZGVudGlmaWVyKCksIGdldEFsbFJlY29y
ZHNEYXRhLCByZXN1bHQpOwpAQCAtMTAxNCw3ICsxMDE0LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRh
YmFzZTo6Z2V0Q291bnQoY29uc3QgSURCUmVxdWVzdERhdGEmIHJlcXVlc3REYXRhLCBjb25zdCBJ
REJLZXkKIAogICAgICAgICBtX21hbmFnZXItPnJlcXVlc3RTcGFjZShtX2lkZW50aWZpZXIub3Jp
Z2luKCksIDAsIFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCByZXF1ZXN0RGF0
YSwgcmFuZ2UsIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKGJvb2wgZ3JhbnRlZCkgbXV0
YWJsZSB7CiAgICAgICAgICAgICBpZiAoIXdlYWtUaGlzKQotICAgICAgICAgICAgICAgIHJldHVy
biBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJhc2UgaXMgY2xv
c2VkIiB9LCAwKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJ
bnZhbGlkU3RhdGVFcnJvciwgIkRhdGFiYXNlIGlzIGNsb3NlZCJfcyB9LCAwKTsKIAogICAgICAg
ICAgICAgZ2V0Q291bnQocmVxdWVzdERhdGEsIHJhbmdlLCBXVEZNb3ZlKGNhbGxiYWNrKSwgZ3Jh
bnRlZCA/IFNwYWNlQ2hlY2tSZXN1bHQ6OlBhc3MgOiBTcGFjZUNoZWNrUmVzdWx0OjpGYWlsKTsK
ICAgICAgICAgfSk7CkBAIC0xMDIzLDcgKzEwMjMsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNl
OjpnZXRDb3VudChjb25zdCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdERhdGEsIGNvbnN0IElEQktl
eQogCiAgICAgQVNTRVJUKHNwYWNlQ2hlY2tSZXN1bHQgPT0gU3BhY2VDaGVja1Jlc3VsdDo6UGFz
cyk7CiAgICAgaWYgKCFtX2JhY2tpbmdTdG9yZSkKLSAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElE
QkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3JlIGlzIGNsb3NlZCIgfSwg
MCk7CisgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9y
LCAiQmFja2luZyBzdG9yZSBpcyBjbG9zZWQiX3MgfSwgMCk7CiAKICAgICB1aW50NjRfdCBjb3Vu
dCA9IDA7CiAgICAgYXV0byBlcnJvciA9IG1fYmFja2luZ1N0b3JlLT5nZXRDb3VudChyZXF1ZXN0
RGF0YS50cmFuc2FjdGlvbklkZW50aWZpZXIoKSwgcmVxdWVzdERhdGEub2JqZWN0U3RvcmVJZGVu
dGlmaWVyKCksIHJlcXVlc3REYXRhLmluZGV4SWRlbnRpZmllcigpLCByYW5nZSwgY291bnQpOwpA
QCAtMTA0Miw3ICsxMDQyLDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6ZGVsZXRlUmVjb3Jk
KGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0YSwgY29uc3QgSUQKIAogICAgICAgICBt
X21hbmFnZXItPnJlcXVlc3RTcGFjZShtX2lkZW50aWZpZXIub3JpZ2luKCksIDAsIFt0aGlzLCB3
ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCByZXF1ZXN0RGF0YSwga2V5UmFuZ2VEYXRhLCBj
YWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXShib29sIGdyYW50ZWQpIG11dGFibGUgewogICAg
ICAgICAgICAgaWYgKCF3ZWFrVGhpcykKLSAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2so
SURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkRhdGFiYXNlIGlzIGNsb3NlZCIgfSk7Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJy
b3IsICJEYXRhYmFzZSBpcyBjbG9zZWQiX3MgfSk7CiAKICAgICAgICAgICAgIGRlbGV0ZVJlY29y
ZChyZXF1ZXN0RGF0YSwga2V5UmFuZ2VEYXRhLCBXVEZNb3ZlKGNhbGxiYWNrKSwgZ3JhbnRlZCA/
IFNwYWNlQ2hlY2tSZXN1bHQ6OlBhc3MgOiBTcGFjZUNoZWNrUmVzdWx0OjpGYWlsKTsKICAgICAg
ICAgfSk7CkBAIC0xMDUxLDcgKzEwNTEsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpkZWxl
dGVSZWNvcmQoY29uc3QgSURCUmVxdWVzdERhdGEmIHJlcXVlc3REYXRhLCBjb25zdCBJRAogCiAg
ICAgQVNTRVJUKHNwYWNlQ2hlY2tSZXN1bHQgPT0gU3BhY2VDaGVja1Jlc3VsdDo6UGFzcyk7CiAg
ICAgaWYgKCFtX2JhY2tpbmdTdG9yZSkKLSAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9y
IHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3JlIGlzIGNsb3NlZCIgfSk7CisgICAg
ICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiQmFja2lu
ZyBzdG9yZSBpcyBjbG9zZWQiX3MgfSk7CiAKICAgICBhdXRvIGVycm9yID0gbV9iYWNraW5nU3Rv
cmUtPmRlbGV0ZVJhbmdlKHJlcXVlc3REYXRhLnRyYW5zYWN0aW9uSWRlbnRpZmllcigpLCByZXF1
ZXN0RGF0YS5vYmplY3RTdG9yZUlkZW50aWZpZXIoKSwga2V5UmFuZ2VEYXRhKTsKIApAQCAtMTA2
OSw3ICsxMDY5LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6b3BlbkN1cnNvcihjb25zdCBJ
REJSZXF1ZXN0RGF0YSYgcmVxdWVzdERhdGEsIGNvbnN0IElEQkMKIAogICAgICAgICBtX21hbmFn
ZXItPnJlcXVlc3RTcGFjZShtX2lkZW50aWZpZXIub3JpZ2luKCksIDAsIFt0aGlzLCB3ZWFrVGhp
cyA9IFdlYWtQdHIgeyAqdGhpcyB9LCByZXF1ZXN0RGF0YSwgaW5mbywgY2FsbGJhY2sgPSBXVEZN
b3ZlKGNhbGxiYWNrKV0oYm9vbCBncmFudGVkKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlmICgh
d2Vha1RoaXMpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52
YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBvciB0cmFuc2FjdGlvbiBpcyBjbG9zZWQiIH0sIElE
QkdldFJlc3VsdCB7IH0pOworICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJv
ciB7IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJhc2Ugb3IgdHJhbnNhY3Rpb24gaXMgY2xvc2Vk
Il9zIH0sIElEQkdldFJlc3VsdCB7IH0pOwogCiAgICAgICAgICAgICBvcGVuQ3Vyc29yKHJlcXVl
c3REYXRhLCBpbmZvLCBXVEZNb3ZlKGNhbGxiYWNrKSwgZ3JhbnRlZCA/IFNwYWNlQ2hlY2tSZXN1
bHQ6OlBhc3MgOiBTcGFjZUNoZWNrUmVzdWx0OjpGYWlsKTsKICAgICAgICAgfSk7CkBAIC0xMDc4
LDcgKzEwNzgsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpvcGVuQ3Vyc29yKGNvbnN0IElE
QlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0YSwgY29uc3QgSURCQwogCiAgICAgQVNTRVJUKHNwYWNl
Q2hlY2tSZXN1bHQgPT0gU3BhY2VDaGVja1Jlc3VsdDo6UGFzcyk7CiAgICAgaWYgKCFtX2JhY2tp
bmdTdG9yZSkKLSAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRl
RXJyb3IsICJCYWNraW5nIHN0b3JlIGlzIGNsb3NlZCIgfSwgSURCR2V0UmVzdWx0IHsgfSk7Cisg
ICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiQmFj
a2luZyBzdG9yZSBpcyBjbG9zZWQiX3MgfSwgSURCR2V0UmVzdWx0IHsgfSk7CiAKICAgICBJREJH
ZXRSZXN1bHQgcmVzdWx0OwogICAgIGF1dG8gZXJyb3IgPSBtX2JhY2tpbmdTdG9yZS0+b3BlbkN1
cnNvcihyZXF1ZXN0RGF0YS50cmFuc2FjdGlvbklkZW50aWZpZXIoKSwgaW5mbywgcmVzdWx0KTsK
QEAgLTEwOTcsNyArMTA5Nyw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6Oml0ZXJhdGVDdXJz
b3IoY29uc3QgSURCUmVxdWVzdERhdGEmIHJlcXVlc3REYXRhLCBjb25zdCBJCiAKICAgICAgICAg
bV9tYW5hZ2VyLT5yZXF1ZXN0U3BhY2UobV9pZGVudGlmaWVyLm9yaWdpbigpLCAwLCBbdGhpcywg
d2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgcmVxdWVzdERhdGEsIGRhdGEsIGNhbGxiYWNr
ID0gV1RGTW92ZShjYWxsYmFjayldKGJvb2wgZ3JhbnRlZCkgbXV0YWJsZSB7CiAgICAgICAgICAg
ICBpZiAoIXdlYWtUaGlzKQotICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJv
ciB7IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJhc2Ugb3IgdHJhbnNhY3Rpb24gaXMgY2xvc2Vk
IiB9LCBJREJHZXRSZXN1bHQgeyB9KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2so
SURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkRhdGFiYXNlIG9yIHRyYW5zYWN0aW9uIGlz
IGNsb3NlZCJfcyB9LCBJREJHZXRSZXN1bHQgeyB9KTsKIAogICAgICAgICAgICAgaXRlcmF0ZUN1
cnNvcihyZXF1ZXN0RGF0YSwgZGF0YSwgV1RGTW92ZShjYWxsYmFjayksIGdyYW50ZWQgPyBTcGFj
ZUNoZWNrUmVzdWx0OjpQYXNzIDogU3BhY2VDaGVja1Jlc3VsdDo6RmFpbCk7CiAgICAgICAgIH0p
OwpAQCAtMTEwNiw3ICsxMTA2LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6aXRlcmF0ZUN1
cnNvcihjb25zdCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdERhdGEsIGNvbnN0IEkKIAogICAgIEFT
U0VSVChzcGFjZUNoZWNrUmVzdWx0ID09IFNwYWNlQ2hlY2tSZXN1bHQ6OlBhc3MpOwogICAgIGlm
ICghbV9iYWNraW5nU3RvcmUpCi0gICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IElu
dmFsaWRTdGF0ZUVycm9yLCAiQmFja2luZyBzdG9yZSBpcyBjbG9zZWQiIH0sIElEQkdldFJlc3Vs
dCB7IH0pOworICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVF
cnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xvc2VkIl9zIH0sIElEQkdldFJlc3VsdCB7IH0pOwog
CiAgICAgSURCR2V0UmVzdWx0IHJlc3VsdDsKICAgICBhdXRvIHRyYW5zYWN0aW9uSWRlbnRpZmll
ciA9IHJlcXVlc3REYXRhLnRyYW5zYWN0aW9uSWRlbnRpZmllcigpOwpAQCAtMTEyNyw3ICsxMTI3
LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6Y29tbWl0VHJhbnNhY3Rpb24oVW5pcXVlSURC
RGF0YWJhc2VUcmFuc2FjdGlvbiYgdHJhbnNhY3QKIAogICAgICAgICBtX21hbmFnZXItPnJlcXVl
c3RTcGFjZShtX2lkZW50aWZpZXIub3JpZ2luKCksIDAsIFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQ
dHIgeyAqdGhpcyB9LCB3ZWFrVHJhbnNhY3Rpb24gPSBXZWFrUHRyIHsgdHJhbnNhY3Rpb24gfSwg
Y2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oYm9vbCBncmFudGVkKSBtdXRhYmxlIHsKICAg
ICAgICAgICAgIGlmICghd2Vha1RoaXMgfHwgIXdlYWtUcmFuc2FjdGlvbikKLSAgICAgICAgICAg
ICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkRhdGFi
YXNlIG9yIHRyYW5zYWN0aW9uIGlzIGNsb3NlZCIgfSk7CisgICAgICAgICAgICAgICAgcmV0dXJu
IGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBvciB0cmFu
c2FjdGlvbiBpcyBjbG9zZWQiX3MgfSk7CiAKICAgICAgICAgICAgIGNvbW1pdFRyYW5zYWN0aW9u
KCp3ZWFrVHJhbnNhY3Rpb24sIFdURk1vdmUoY2FsbGJhY2spLCBncmFudGVkID8gU3BhY2VDaGVj
a1Jlc3VsdDo6UGFzcyA6IFNwYWNlQ2hlY2tSZXN1bHQ6OkZhaWwpOwogICAgICAgICB9KTsKQEAg
LTExMzgsNyArMTEzOCw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmNvbW1pdFRyYW5zYWN0
aW9uKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mIHRyYW5zYWN0CiAgICAgQVNTRVJUKHRy
YW5zYWN0aW9uLmRhdGFiYXNlQ29ubmVjdGlvbigpLmRhdGFiYXNlKCkgPT0gdGhpcyk7CiAKICAg
ICBpZiAoIW1fYmFja2luZ1N0b3JlKQotICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3Ig
eyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xvc2VkIiB9KTsKKyAgICAg
ICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5n
IHN0b3JlIGlzIGNsb3NlZCJfcyB9KTsKIAogICAgIGF1dG8gdGFrZW5UcmFuc2FjdGlvbiA9IG1f
aW5Qcm9ncmVzc1RyYW5zYWN0aW9ucy50YWtlKHRyYW5zYWN0aW9uLmluZm8oKS5pZGVudGlmaWVy
KCkpOwogICAgIGlmICghdGFrZW5UcmFuc2FjdGlvbikgewpAQCAtMTE2Niw3ICsxMTY2LDcgQEAg
dm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6YWJvcnRUcmFuc2FjdGlvbihVbmlxdWVJREJEYXRhYmFz
ZVRyYW5zYWN0aW9uJiB0cmFuc2FjdGkKIAogICAgICAgICBtX21hbmFnZXItPnJlcXVlc3RTcGFj
ZShtX2lkZW50aWZpZXIub3JpZ2luKCksIDAsIFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAq
dGhpcyB9LCB3ZWFrVHJhbnNhY3Rpb24gPSBXZWFrUHRyIHsgdHJhbnNhY3Rpb24gfSwgY2FsbGJh
Y2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oYm9vbCBncmFudGVkKSBtdXRhYmxlIHsKICAgICAgICAg
ICAgIGlmICghd2Vha1RoaXMgfHwgIXdlYWtUcmFuc2FjdGlvbikKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkRhdGFiYXNlIG9y
IHRyYW5zYWN0aW9uIGlzIGNsb3NlZCIgfSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxi
YWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBvciB0cmFuc2FjdGlv
biBpcyBjbG9zZWQiX3MgfSk7CiAKICAgICAgICAgICAgIGFib3J0VHJhbnNhY3Rpb24oKndlYWtU
cmFuc2FjdGlvbiwgV1RGTW92ZShjYWxsYmFjayksIGdyYW50ZWQgPyBTcGFjZUNoZWNrUmVzdWx0
OjpQYXNzIDogU3BhY2VDaGVja1Jlc3VsdDo6RmFpbCk7CiAgICAgICAgIH0pOwpAQCAtMTIwMiw3
ICsxMjAyLDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6YWJvcnRUcmFuc2FjdGlvbihVbmlx
dWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uJiB0cmFuc2FjdGkKIAogICAgIElEQkVycm9yIGVycm9y
OwogICAgIGlmICghbV9iYWNraW5nU3RvcmUpCi0gICAgICAgIGVycm9yID0gSURCRXJyb3IgeyBJ
bnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xvc2VkIiB9OworICAgICAgICBl
cnJvciA9IElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3JlIGlzIGNs
b3NlZCJfcyB9OwogICAgIGVsc2UKICAgICAgICAgZXJyb3IgPSBtX2JhY2tpbmdTdG9yZS0+YWJv
cnRUcmFuc2FjdGlvbih0cmFuc2FjdGlvbklkZW50aWZpZXIpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCSW5kZXhJbmZvLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJJbmRleEluZm8uY3BwCmlu
ZGV4IGU3MWQyZWJmMjFjNGFkZmVmMjhhMmJkYWZhMWZmODRiM2Y3ZjAzOTguLjdhYmE4MzFkNzAw
ZWE5OGZlYjJjYzlhYTQ0Yzk2MmM0YjU5NDQ3YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJJbmRleEluZm8uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJJbmRleEluZm8uY3BwCkBAIC02MSw3
ICs2MSw3IEBAIFN0cmluZyBJREJJbmRleEluZm86OmxvZ2dpbmdTdHJpbmcoaW50IGluZGVudCkg
Y29uc3QKIHsKICAgICBTdHJpbmcgaW5kZW50U3RyaW5nOwogICAgIGZvciAoaW50IGkgPSAwOyBp
IDwgaW5kZW50OyArK2kpCi0gICAgICAgIGluZGVudFN0cmluZy5hcHBlbmQoIiAiKTsKKyAgICAg
ICAgaW5kZW50U3RyaW5nLmFwcGVuZCgnICcpOwogICAgIHJldHVybiBtYWtlU3RyaW5nKGluZGVu
dFN0cmluZywgIkluZGV4OiAiLCBtX25hbWUsICIgKCIsIG1faWRlbnRpZmllciwgIikga2V5UGF0
aDogIiwgV2ViQ29yZTo6bG9nZ2luZ1N0cmluZyhtX2tleVBhdGgpLCAnXG4nKTsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJv
bHNIb3N0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNv
bnRyb2xzSG9zdC5jcHAKaW5kZXggYjgyNWVjODAwNTE0ODAyOGUyYjA3YjE5ZGM3ODM5MmE0M2E4
Y2JhNS4uMzMyZjQ2MjZiZDMyZTgzMWFkOTA4YTQ2YWM0ZGMxNDZlNmVjY2E4NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250
cm9sc0hvc3QuY3BwCkBAIC0xMTgsMTQgKzExOCwxNCBAQCBNZWRpYUNvbnRyb2xzSG9zdDo6fk1l
ZGlhQ29udHJvbHNIb3N0KCkKIFN0cmluZyBNZWRpYUNvbnRyb2xzSG9zdDo6bGF5b3V0VHJhaXRz
Q2xhc3NOYW1lKCkgY29uc3QKIHsKICNpZiBkZWZpbmVkKE1FRElBX0NPTlRST0xTX0hPU1RfTEFZ
T1VUX1RSQUlUU19DTEFTU19OQU1FX09WRVJSSURFKQotICAgIHJldHVybiBNRURJQV9DT05UUk9M
U19IT1NUX0xBWU9VVF9UUkFJVFNfQ0xBU1NfTkFNRV9PVkVSUklERTsKKyAgICByZXR1cm4gTUVE
SUFfQ09OVFJPTFNfSE9TVF9MQVlPVVRfVFJBSVRTX0NMQVNTX05BTUVfT1ZFUlJJREUiIl9zOwog
I2Vsc2UKICNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKE1BQ0NBVEFMWVNUKQotICAgIHJl
dHVybiAiTWFjT1NMYXlvdXRUcmFpdHMiOworICAgIHJldHVybiAiTWFjT1NMYXlvdXRUcmFpdHMi
X3M7CiAjZWxpZiBQTEFURk9STShJT1MpCi0gICAgcmV0dXJuICJJT1NMYXlvdXRUcmFpdHMiOwor
ICAgIHJldHVybiAiSU9TTGF5b3V0VHJhaXRzIl9zOwogI2VsaWYgUExBVEZPUk0oV0FUQ0hPUykK
LSAgICByZXR1cm4gIldhdGNoT1NMYXlvdXRUcmFpdHMiOworICAgIHJldHVybiAiV2F0Y2hPU0xh
eW91dFRyYWl0cyJfczsKICNlbHNlCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgcmV0
dXJuIG51bGxTdHJpbmcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmNwcAppbmRleCBhOTFlNjY5MDAwNDgzMTZhOWE5MTNj
YTBkNTEyOGVhYTE1MWQ5Y2NlLi5mZjk0OTk5YzIwMmEzMjA1NGM2MTZiZjM2NmM2NzNhZWI0Mjdm
NjUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVk
aWFSZWNvcmRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVy
L01lZGlhUmVjb3JkZXIuY3BwCkBAIC02Niw3ICs2Niw3IEBAIEV4Y2VwdGlvbk9yPFJlZjxNZWRp
YVJlY29yZGVyPj4gTWVkaWFSZWNvcmRlcjo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwgUmVm
PE1lCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9OwogCiAg
ICAgaWYgKCFpc1R5cGVTdXBwb3J0ZWQoZG9jdW1lbnQsIG9wdGlvbnMubWltZVR5cGUpKQotICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IsICJtaW1lVHlwZSBpcyBu
b3Qgc3VwcG9ydGVkIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVk
RXJyb3IsICJtaW1lVHlwZSBpcyBub3Qgc3VwcG9ydGVkIl9zIH07CiAKICAgICBhdXRvIHJlY29y
ZGVyID0gYWRvcHRSZWYoKm5ldyBNZWRpYVJlY29yZGVyKGRvY3VtZW50LCBXVEZNb3ZlKHN0cmVh
bSksIFdURk1vdmUob3B0aW9ucykpKTsKICAgICByZWNvcmRlci0+c3VzcGVuZElmTmVlZGVkKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291
cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2Uu
Y3BwCmluZGV4IGE1OTAzN2E0MDU4NjMxOGYyMTZhNmVhMDE5ZGIyNGE5YjAzOTcyNDguLjhjYjZk
NWNmYzM4ZDZlZjgwZjdlMzk0MWZiOTU4YTM0ZDUzNWZjYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwCkBAIC02NTAsNyArNjUw
LDcgQEAgc3RhdGljIENvbnRlbnRUeXBlIGFkZFZQOUZ1bGxSYW5nZVZpZGVvRmxhZ1RvQ29udGVu
dFR5cGUoY29uc3QgQ29udGVudFR5cGUmIHR5cGUKICAgICAgICAgaWYgKHBvc2l0aW9uID09IG5v
dEZvdW5kKQogICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgcmF3VHlwZS5pbnNlcnQo
Ii4wMCIsIHBvc2l0aW9uICsgY29kZWMubGVuZ3RoKCkpOworICAgICAgICByYXdUeXBlLmluc2Vy
dCgiLjAwIl9zLCBwb3NpdGlvbiArIGNvZGVjLmxlbmd0aCgpKTsKICAgICAgICAgcmV0dXJuIENv
bnRlbnRUeXBlKHJhd1R5cGUpOwogICAgIH0KICAgICByZXR1cm4gdHlwZTsKQEAgLTg5NSw3ICs4
OTUsNyBAQCBib29sIE1lZGlhU291cmNlOjppc1R5cGVTdXBwb3J0ZWQoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYgY29udGV4dCwgY29uc3QgU3RyaW5nJgogICAgIGlmIChjb250ZXh0LmlzRG9jdW1l
bnQoKSAmJiBkb3duY2FzdDxEb2N1bWVudD4oY29udGV4dCkucXVpcmtzKCkubmVlZHNWUDlGdWxs
UmFuZ2VGbGFnUXVpcmsoKSkKICAgICAgICAgY29udGVudFR5cGUgPSBhZGRWUDlGdWxsUmFuZ2VW
aWRlb0ZsYWdUb0NvbnRlbnRUeXBlKGNvbnRlbnRUeXBlKTsKIAotICAgIFN0cmluZyBjb2RlY3Mg
PSBjb250ZW50VHlwZS5wYXJhbWV0ZXIoImNvZGVjcyIpOworICAgIFN0cmluZyBjb2RlY3MgPSBj
b250ZW50VHlwZS5wYXJhbWV0ZXIoImNvZGVjcyJfcyk7CiAKICAgICAvLyAyLiBJZiB0eXBlIGRv
ZXMgbm90IGNvbnRhaW4gYSB2YWxpZCBNSU1FIHR5cGUgc3RyaW5nLCB0aGVuIHJldHVybiBmYWxz
ZS4KICAgICBpZiAoY29udGVudFR5cGUuY29udGFpbmVyVHlwZSgpLmlzRW1wdHkoKSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFUcmFja0NvbnN0
cmFpbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFUcmFj
a0NvbnN0cmFpbnRzLmNwcAppbmRleCAzMTEzODQ3ZGI3NTQ4NDdkNjE2MmZhMmQ2MWU2NzM0YTZh
ODg4NWIzLi4yZjhkOGJkMjdkNzM1NTQ2YmE4NGI2MTgwOGE2Y2RhYjNmMzI4ZTE2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhVHJhY2tDb25zdHJh
aW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVRy
YWNrQ29uc3RyYWludHMuY3BwCkBAIC0zMyw3ICszMyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAogZW51bSBjbGFzcyBDb25zdHJhaW50U2V0VHlwZSB7IE1hbmRhdG9yeSwgQWR2YW5jZWQgfTsK
IAotc3RhdGljIHZvaWQgc2V0KE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwJiBtYXAsIENvbnN0
cmFpbnRTZXRUeXBlIHNldFR5cGUsIGNvbnN0IGNoYXIqIHR5cGVBc1N0cmluZywgTWVkaWFDb25z
dHJhaW50VHlwZSB0eXBlLCBjb25zdCBDb25zdHJhaW5Mb25nJiB2YWx1ZSkKK3N0YXRpYyB2b2lk
IHNldChNZWRpYVRyYWNrQ29uc3RyYWludFNldE1hcCYgbWFwLCBDb25zdHJhaW50U2V0VHlwZSBz
ZXRUeXBlLCBBU0NJSUxpdGVyYWwgdHlwZUFzU3RyaW5nLCBNZWRpYUNvbnN0cmFpbnRUeXBlIHR5
cGUsIGNvbnN0IENvbnN0cmFpbkxvbmcmIHZhbHVlKQogewogICAgIEludENvbnN0cmFpbnQgY29u
c3RyYWludCh0eXBlQXNTdHJpbmcsIHR5cGUpOwogICAgIFdURjo6c3dpdGNoT24odmFsdWUsCkBA
IC01Nyw3ICs1Nyw3IEBAIHN0YXRpYyB2b2lkIHNldChNZWRpYVRyYWNrQ29uc3RyYWludFNldE1h
cCYgbWFwLCBDb25zdHJhaW50U2V0VHlwZSBzZXRUeXBlLCBjb25zCiAgICAgbWFwLnNldCh0eXBl
LCBXVEZNb3ZlKGNvbnN0cmFpbnQpKTsKIH0KIAotc3RhdGljIHZvaWQgc2V0KE1lZGlhVHJhY2tD
b25zdHJhaW50U2V0TWFwJiBtYXAsIENvbnN0cmFpbnRTZXRUeXBlIHNldFR5cGUsIGNvbnN0IGNo
YXIqIHR5cGVBc1N0cmluZywgTWVkaWFDb25zdHJhaW50VHlwZSB0eXBlLCBjb25zdCBDb25zdHJh
aW5Eb3VibGUmIHZhbHVlKQorc3RhdGljIHZvaWQgc2V0KE1lZGlhVHJhY2tDb25zdHJhaW50U2V0
TWFwJiBtYXAsIENvbnN0cmFpbnRTZXRUeXBlIHNldFR5cGUsIEFTQ0lJTGl0ZXJhbCB0eXBlQXNT
dHJpbmcsIE1lZGlhQ29uc3RyYWludFR5cGUgdHlwZSwgY29uc3QgQ29uc3RyYWluRG91YmxlJiB2
YWx1ZSkKIHsKICAgICBEb3VibGVDb25zdHJhaW50IGNvbnN0cmFpbnQodHlwZUFzU3RyaW5nLCB0
eXBlKTsKICAgICBXVEY6OnN3aXRjaE9uKHZhbHVlLApAQCAtODEsNyArODEsNyBAQCBzdGF0aWMg
dm9pZCBzZXQoTWVkaWFUcmFja0NvbnN0cmFpbnRTZXRNYXAmIG1hcCwgQ29uc3RyYWludFNldFR5
cGUgc2V0VHlwZSwgY29ucwogICAgIG1hcC5zZXQodHlwZSwgV1RGTW92ZShjb25zdHJhaW50KSk7
CiB9CiAKLXN0YXRpYyB2b2lkIHNldChNZWRpYVRyYWNrQ29uc3RyYWludFNldE1hcCYgbWFwLCBD
b25zdHJhaW50U2V0VHlwZSBzZXRUeXBlLCBjb25zdCBjaGFyKiB0eXBlQXNTdHJpbmcsIE1lZGlh
Q29uc3RyYWludFR5cGUgdHlwZSwgY29uc3QgQ29uc3RyYWluQm9vbGVhbiYgdmFsdWUpCitzdGF0
aWMgdm9pZCBzZXQoTWVkaWFUcmFja0NvbnN0cmFpbnRTZXRNYXAmIG1hcCwgQ29uc3RyYWludFNl
dFR5cGUgc2V0VHlwZSwgQVNDSUlMaXRlcmFsIHR5cGVBc1N0cmluZywgTWVkaWFDb25zdHJhaW50
VHlwZSB0eXBlLCBjb25zdCBDb25zdHJhaW5Cb29sZWFuJiB2YWx1ZSkKIHsKICAgICBCb29sZWFu
Q29uc3RyYWludCBjb25zdHJhaW50KHR5cGVBc1N0cmluZywgdHlwZSk7CiAgICAgV1RGOjpzd2l0
Y2hPbih2YWx1ZSwKQEAgLTEwMSw3ICsxMDEsNyBAQCBzdGF0aWMgdm9pZCBzZXQoTWVkaWFUcmFj
a0NvbnN0cmFpbnRTZXRNYXAmIG1hcCwgQ29uc3RyYWludFNldFR5cGUgc2V0VHlwZSwgY29ucwog
ICAgIG1hcC5zZXQodHlwZSwgV1RGTW92ZShjb25zdHJhaW50KSk7CiB9CiAKLXN0YXRpYyB2b2lk
IHNldChNZWRpYVRyYWNrQ29uc3RyYWludFNldE1hcCYgbWFwLCBDb25zdHJhaW50U2V0VHlwZSBz
ZXRUeXBlLCBjb25zdCBjaGFyKiB0eXBlQXNTdHJpbmcsIE1lZGlhQ29uc3RyYWludFR5cGUgdHlw
ZSwgY29uc3QgQ29uc3RyYWluRE9NU3RyaW5nJiB2YWx1ZSkKK3N0YXRpYyB2b2lkIHNldChNZWRp
YVRyYWNrQ29uc3RyYWludFNldE1hcCYgbWFwLCBDb25zdHJhaW50U2V0VHlwZSBzZXRUeXBlLCBB
U0NJSUxpdGVyYWwgdHlwZUFzU3RyaW5nLCBNZWRpYUNvbnN0cmFpbnRUeXBlIHR5cGUsIGNvbnN0
IENvbnN0cmFpbkRPTVN0cmluZyYgdmFsdWUpCiB7CiAgICAgU3RyaW5nQ29uc3RyYWludCBjb25z
dHJhaW50KHR5cGVBc1N0cmluZywgdHlwZSk7CiAgICAgV1RGOjpzd2l0Y2hPbih2YWx1ZSwKQEAg
LTE0OCw3ICsxNDgsNyBAQCBzdGF0aWMgdm9pZCBzZXQoTWVkaWFUcmFja0NvbnN0cmFpbnRTZXRN
YXAmIG1hcCwgQ29uc3RyYWludFNldFR5cGUgc2V0VHlwZSwgY29ucwogICAgIG1hcC5zZXQodHlw
ZSwgV1RGTW92ZShjb25zdHJhaW50KSk7CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0YXRp
YyBpbmxpbmUgdm9pZCBzZXQoTWVkaWFUcmFja0NvbnN0cmFpbnRTZXRNYXAmIG1hcCwgQ29uc3Ry
YWludFNldFR5cGUgc2V0VHlwZSwgY29uc3QgY2hhciogdHlwZUFzU3RyaW5nLCBNZWRpYUNvbnN0
cmFpbnRUeXBlIHR5cGUsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VD4mIHZhbHVlKQordGVtcGxhdGU8
dHlwZW5hbWUgVD4gc3RhdGljIGlubGluZSB2b2lkIHNldChNZWRpYVRyYWNrQ29uc3RyYWludFNl
dE1hcCYgbWFwLCBDb25zdHJhaW50U2V0VHlwZSBzZXRUeXBlLCBBU0NJSUxpdGVyYWwgdHlwZUFz
U3RyaW5nLCBNZWRpYUNvbnN0cmFpbnRUeXBlIHR5cGUsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VD4m
IHZhbHVlKQogewogICAgIGlmICghdmFsdWUpCiAgICAgICAgIHJldHVybjsKQEAgLTE1OCwyMSAr
MTU4LDIxIEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0YXRpYyBpbmxpbmUgdm9pZCBzZXQoTWVk
aWFUcmFja0NvbnN0cmFpbnRTZXRNYXAmIG1hcCwgQ29uCiBzdGF0aWMgTWVkaWFUcmFja0NvbnN0
cmFpbnRTZXRNYXAgY29udmVydFRvSW50ZXJuYWxGb3JtKENvbnN0cmFpbnRTZXRUeXBlIHNldFR5
cGUsIGNvbnN0IE1lZGlhVHJhY2tDb25zdHJhaW50U2V0JiBjb25zdHJhaW50U2V0KQogewogICAg
IE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwIHJlc3VsdDsKLSAgICBzZXQocmVzdWx0LCBzZXRU
eXBlLCAid2lkdGgiLCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpXaWR0aCwgY29uc3RyYWludFNldC53
aWR0aCk7Ci0gICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgImhlaWdodCIsIE1lZGlhQ29uc3RyYWlu
dFR5cGU6OkhlaWdodCwgY29uc3RyYWludFNldC5oZWlnaHQpOwotICAgIHNldChyZXN1bHQsIHNl
dFR5cGUsICJhc3BlY3RSYXRpbyIsIE1lZGlhQ29uc3RyYWludFR5cGU6OkFzcGVjdFJhdGlvLCBj
b25zdHJhaW50U2V0LmFzcGVjdFJhdGlvKTsKLSAgICBzZXQocmVzdWx0LCBzZXRUeXBlLCAiZnJh
bWVSYXRlIiwgTWVkaWFDb25zdHJhaW50VHlwZTo6RnJhbWVSYXRlLCBjb25zdHJhaW50U2V0LmZy
YW1lUmF0ZSk7Ci0gICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgImZhY2luZ01vZGUiLCBNZWRpYUNv
bnN0cmFpbnRUeXBlOjpGYWNpbmdNb2RlLCBjb25zdHJhaW50U2V0LmZhY2luZ01vZGUpOwotICAg
IHNldChyZXN1bHQsIHNldFR5cGUsICJ2b2x1bWUiLCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpWb2x1
bWUsIGNvbnN0cmFpbnRTZXQudm9sdW1lKTsKLSAgICBzZXQocmVzdWx0LCBzZXRUeXBlLCAic2Ft
cGxlUmF0ZSIsIE1lZGlhQ29uc3RyYWludFR5cGU6OlNhbXBsZVJhdGUsIGNvbnN0cmFpbnRTZXQu
c2FtcGxlUmF0ZSk7Ci0gICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgInNhbXBsZVNpemUiLCBNZWRp
YUNvbnN0cmFpbnRUeXBlOjpTYW1wbGVTaXplLCBjb25zdHJhaW50U2V0LnNhbXBsZVNpemUpOwot
ICAgIHNldChyZXN1bHQsIHNldFR5cGUsICJlY2hvQ2FuY2VsbGF0aW9uIiwgTWVkaWFDb25zdHJh
aW50VHlwZTo6RWNob0NhbmNlbGxhdGlvbiwgY29uc3RyYWludFNldC5lY2hvQ2FuY2VsbGF0aW9u
KTsKKyAgICBzZXQocmVzdWx0LCBzZXRUeXBlLCAid2lkdGgiX3MsIE1lZGlhQ29uc3RyYWludFR5
cGU6OldpZHRoLCBjb25zdHJhaW50U2V0LndpZHRoKTsKKyAgICBzZXQocmVzdWx0LCBzZXRUeXBl
LCAiaGVpZ2h0Il9zLCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpIZWlnaHQsIGNvbnN0cmFpbnRTZXQu
aGVpZ2h0KTsKKyAgICBzZXQocmVzdWx0LCBzZXRUeXBlLCAiYXNwZWN0UmF0aW8iX3MsIE1lZGlh
Q29uc3RyYWludFR5cGU6OkFzcGVjdFJhdGlvLCBjb25zdHJhaW50U2V0LmFzcGVjdFJhdGlvKTsK
KyAgICBzZXQocmVzdWx0LCBzZXRUeXBlLCAiZnJhbWVSYXRlIl9zLCBNZWRpYUNvbnN0cmFpbnRU
eXBlOjpGcmFtZVJhdGUsIGNvbnN0cmFpbnRTZXQuZnJhbWVSYXRlKTsKKyAgICBzZXQocmVzdWx0
LCBzZXRUeXBlLCAiZmFjaW5nTW9kZSJfcywgTWVkaWFDb25zdHJhaW50VHlwZTo6RmFjaW5nTW9k
ZSwgY29uc3RyYWludFNldC5mYWNpbmdNb2RlKTsKKyAgICBzZXQocmVzdWx0LCBzZXRUeXBlLCAi
dm9sdW1lIl9zLCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpWb2x1bWUsIGNvbnN0cmFpbnRTZXQudm9s
dW1lKTsKKyAgICBzZXQocmVzdWx0LCBzZXRUeXBlLCAic2FtcGxlUmF0ZSJfcywgTWVkaWFDb25z
dHJhaW50VHlwZTo6U2FtcGxlUmF0ZSwgY29uc3RyYWludFNldC5zYW1wbGVSYXRlKTsKKyAgICBz
ZXQocmVzdWx0LCBzZXRUeXBlLCAic2FtcGxlU2l6ZSJfcywgTWVkaWFDb25zdHJhaW50VHlwZTo6
U2FtcGxlU2l6ZSwgY29uc3RyYWludFNldC5zYW1wbGVTaXplKTsKKyAgICBzZXQocmVzdWx0LCBz
ZXRUeXBlLCAiZWNob0NhbmNlbGxhdGlvbiJfcywgTWVkaWFDb25zdHJhaW50VHlwZTo6RWNob0Nh
bmNlbGxhdGlvbiwgY29uc3RyYWludFNldC5lY2hvQ2FuY2VsbGF0aW9uKTsKICAgICAvLyBGSVhN
RTogYWRkIGxhdGVuY3kKICAgICAvLyBGSVhNRTogYWRkIGNoYW5uZWxDb3VudAotICAgIHNldChy
ZXN1bHQsIHNldFR5cGUsICJkZXZpY2VJZCIsIE1lZGlhQ29uc3RyYWludFR5cGU6OkRldmljZUlk
LCBjb25zdHJhaW50U2V0LmRldmljZUlkKTsKLSAgICBzZXQocmVzdWx0LCBzZXRUeXBlLCAiZ3Jv
dXBJZCIsIE1lZGlhQ29uc3RyYWludFR5cGU6Okdyb3VwSWQsIGNvbnN0cmFpbnRTZXQuZ3JvdXBJ
ZCk7Ci0gICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgImRpc3BsYXlTdXJmYWNlIiwgTWVkaWFDb25z
dHJhaW50VHlwZTo6RGlzcGxheVN1cmZhY2UsIGNvbnN0cmFpbnRTZXQuZGlzcGxheVN1cmZhY2Up
OwotICAgIHNldChyZXN1bHQsIHNldFR5cGUsICJsb2dpY2FsU3VyZmFjZSIsIE1lZGlhQ29uc3Ry
YWludFR5cGU6OkxvZ2ljYWxTdXJmYWNlLCBjb25zdHJhaW50U2V0LmxvZ2ljYWxTdXJmYWNlKTsK
KyAgICBzZXQocmVzdWx0LCBzZXRUeXBlLCAiZGV2aWNlSWQiX3MsIE1lZGlhQ29uc3RyYWludFR5
cGU6OkRldmljZUlkLCBjb25zdHJhaW50U2V0LmRldmljZUlkKTsKKyAgICBzZXQocmVzdWx0LCBz
ZXRUeXBlLCAiZ3JvdXBJZCJfcywgTWVkaWFDb25zdHJhaW50VHlwZTo6R3JvdXBJZCwgY29uc3Ry
YWludFNldC5ncm91cElkKTsKKyAgICBzZXQocmVzdWx0LCBzZXRUeXBlLCAiZGlzcGxheVN1cmZh
Y2UiX3MsIE1lZGlhQ29uc3RyYWludFR5cGU6OkRpc3BsYXlTdXJmYWNlLCBjb25zdHJhaW50U2V0
LmRpc3BsYXlTdXJmYWNlKTsKKyAgICBzZXQocmVzdWx0LCBzZXRUeXBlLCAibG9naWNhbFN1cmZh
Y2UiX3MsIE1lZGlhQ29uc3RyYWludFR5cGU6OkxvZ2ljYWxTdXJmYWNlLCBjb25zdHJhaW50U2V0
LmxvZ2ljYWxTdXJmYWNlKTsKICAgICByZXR1cm4gcmVzdWx0OwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0ljZUNhbmRpZGF0ZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0ljZUNhbmRpZGF0ZS5jcHAKaW5k
ZXggOWY3MDZkZjZkZjY1ZTdmOTU4MTU3NTE0MDIyNDhlMDhjN2EyM2ZhMC4uYmI3ZWY3NDEyNjE5
YzA1OWRjZWM3NGQ2OGVlMmRiZTBjOTNhYmMyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENJY2VDYW5kaWRhdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDSWNlQ2FuZGlkYXRlLmNwcApAQCAtNTQsNyArNTQs
NyBAQCBSVENJY2VDYW5kaWRhdGU6OlJUQ0ljZUNhbmRpZGF0ZShjb25zdCBTdHJpbmcmIGNhbmRp
ZGF0ZSwgY29uc3QgU3RyaW5nJiBzZHBNaWQsCiBFeGNlcHRpb25PcjxSZWY8UlRDSWNlQ2FuZGlk
YXRlPj4gUlRDSWNlQ2FuZGlkYXRlOjpjcmVhdGUoY29uc3QgUlRDSWNlQ2FuZGlkYXRlSW5pdCYg
ZGljdGlvbmFyeSkKIHsKICAgICBpZiAoZGljdGlvbmFyeS5zZHBNaWQuaXNOdWxsKCkgJiYgIWRp
Y3Rpb25hcnkuc2RwTUxpbmVJbmRleCkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVF
cnJvciwgIkNhbmRpZGF0ZSBtdXN0IG5vdCBoYXZlIGJvdGggbnVsbCBzZHBNaWQgYW5kIHNkcE1M
aW5lSW5kZXgiIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJDYW5k
aWRhdGUgbXVzdCBub3QgaGF2ZSBib3RoIG51bGwgc2RwTWlkIGFuZCBzZHBNTGluZUluZGV4Il9z
IH07CiAKICAgICBhdXRvIGZpZWxkcyA9IHZhbHVlT3JEZWZhdWx0KHBhcnNlSWNlQ2FuZGlkYXRl
U0RQKGRpY3Rpb25hcnkuY2FuZGlkYXRlKSk7CiAgICAgZmllbGRzLnVzZXJuYW1lRnJhZ21lbnQg
PSBkaWN0aW9uYXJ5LnVzZXJuYW1lRnJhZ21lbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwCmluZGV4IDkwZGU2
Mzk5MzRlZDYxYzVjMGIxMDEyYzBhYTUzOTdkZDBkOGIzMmEuLjQxNTY2YTU1NWY2MmVlNTA4ZTBk
ZDFhMWRkNzA4ODRlZjc1MGY1YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwCkBAIC0yNzMsNyArMjczLDcg
QEAgdm9pZCBSVENQZWVyQ29ubmVjdGlvbjo6c2V0TG9jYWxEZXNjcmlwdGlvbihzdGQ6Om9wdGlv
bmFsPFJUQ0xvY2FsU2Vzc2lvbkRlc2NyaXAKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAg
IEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgIlNldHRpbmcgbG9jYWwgZGVzY3JpcHRpb24gdG86
XG4iLCBsb2NhbERlc2NyaXB0aW9uID8gbG9jYWxEZXNjcmlwdGlvbi0+c2RwIDogIicnIik7Cisg
ICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCAiU2V0dGluZyBsb2NhbCBkZXNjcmlwdGlvbiB0
bzpcbiIsIGxvY2FsRGVzY3JpcHRpb24gPyBsb2NhbERlc2NyaXB0aW9uLT5zZHAgOiAiJyciX3Mp
OwogICAgIGNoYWluT3BlcmF0aW9uKFdURk1vdmUocHJvbWlzZSksIFt0aGlzLCBsb2NhbERlc2Ny
aXB0aW9uID0gV1RGTW92ZShsb2NhbERlc2NyaXB0aW9uKV0oYXV0byYmIHByb21pc2UpIG11dGFi
bGUgewogICAgICAgICBhdXRvIHR5cGUgPSB0eXBlRm9yU2V0TG9jYWxEZXNjcmlwdGlvbihsb2Nh
bERlc2NyaXB0aW9uLCBtX3NpZ25hbGluZ1N0YXRlKTsKICAgICAgICAgU3RyaW5nIHNkcDsKQEAg
LTM0NCw3ICszNDQsNyBAQCB2b2lkIFJUQ1BlZXJDb25uZWN0aW9uOjphZGRJY2VDYW5kaWRhdGUo
Q2FuZGlkYXRlJiYgcnRjQ2FuZGlkYXRlLCBSZWY8RGVmZXJyZWRQcgogICAgICAgICB9KTsKICAg
ICB9CiAKLSAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIsICJSZWNlaXZlZCBpY2UgY2FuZGlk
YXRlOlxuIiwgY2FuZGlkYXRlID8gY2FuZGlkYXRlLT5jYW5kaWRhdGUoKSA6ICJudWxsIik7Cisg
ICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCAiUmVjZWl2ZWQgaWNlIGNhbmRpZGF0ZTpcbiIs
IGNhbmRpZGF0ZSA/IGNhbmRpZGF0ZS0+Y2FuZGlkYXRlKCkgOiAibnVsbCJfcyk7CiAKICAgICBp
ZiAoZXhjZXB0aW9uKSB7CiAgICAgICAgIHByb21pc2UtPnJlamVjdCgqZXhjZXB0aW9uKTsKQEAg
LTM3OSwxMyArMzc5LDEzIEBAIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gUlRDUGVlckNvbm5lY3Rpb246
OmNhblRyaWNrbGVJY2VDYW5kaWRhdGVzKCkgY29uc3QKIEV4Y2VwdGlvbk9yPFZlY3RvcjxNZWRp
YUVuZHBvaW50Q29uZmlndXJhdGlvbjo6SWNlU2VydmVySW5mbz4+IFJUQ1BlZXJDb25uZWN0aW9u
OjppY2VTZXJ2ZXJzRnJvbUNvbmZpZ3VyYXRpb24oUlRDQ29uZmlndXJhdGlvbiYgbmV3Q29uZmln
dXJhdGlvbiwgY29uc3QgUlRDQ29uZmlndXJhdGlvbiogZXhpc3RpbmdDb25maWd1cmF0aW9uLCBi
b29sIGlzTG9jYWxEZXNjcmlwdGlvblNldCkKIHsKICAgICBpZiAoZXhpc3RpbmdDb25maWd1cmF0
aW9uICYmIG5ld0NvbmZpZ3VyYXRpb24uYnVuZGxlUG9saWN5ICE9IGV4aXN0aW5nQ29uZmlndXJh
dGlvbi0+YnVuZGxlUG9saWN5KQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZE1v
ZGlmaWNhdGlvbkVycm9yLCAiQnVuZGxlUG9saWN5IGRvZXMgbm90IG1hdGNoIGV4aXN0aW5nIHBv
bGljeSIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRNb2RpZmljYXRpb25F
cnJvciwgIkJ1bmRsZVBvbGljeSBkb2VzIG5vdCBtYXRjaCBleGlzdGluZyBwb2xpY3kiX3MgfTsK
IAogICAgIGlmIChleGlzdGluZ0NvbmZpZ3VyYXRpb24gJiYgbmV3Q29uZmlndXJhdGlvbi5ydGNw
TXV4UG9saWN5ICE9IGV4aXN0aW5nQ29uZmlndXJhdGlvbi0+cnRjcE11eFBvbGljeSkKLSAgICAg
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRNb2RpZmljYXRpb25FcnJvciwgIlJUQ1BNdXhQ
b2xpY3kgZG9lcyBub3QgbWF0Y2ggZXhpc3RpbmcgcG9saWN5IiB9OworICAgICAgICByZXR1cm4g
RXhjZXB0aW9uIHsgSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yLCAiUlRDUE11eFBvbGljeSBkb2Vz
IG5vdCBtYXRjaCBleGlzdGluZyBwb2xpY3kiX3MgfTsKIAogICAgIGlmIChleGlzdGluZ0NvbmZp
Z3VyYXRpb24gJiYgbmV3Q29uZmlndXJhdGlvbi5pY2VDYW5kaWRhdGVQb29sU2l6ZSAhPSBleGlz
dGluZ0NvbmZpZ3VyYXRpb24tPmljZUNhbmRpZGF0ZVBvb2xTaXplICYmIGlzTG9jYWxEZXNjcmlw
dGlvblNldCkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRNb2RpZmljYXRpb25F
cnJvciwgIkljZVRyYW5zcG9ydFBvbGljeSBwb29sIHNpemUgZG9lcyBub3QgbWF0Y2ggZXhpc3Rp
bmcgcG9vbCBzaXplIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZE1vZGlm
aWNhdGlvbkVycm9yLCAiSWNlVHJhbnNwb3J0UG9saWN5IHBvb2wgc2l6ZSBkb2VzIG5vdCBtYXRj
aCBleGlzdGluZyBwb29sIHNpemUiX3MgfTsKIAogICAgIFZlY3RvcjxNZWRpYUVuZHBvaW50Q29u
ZmlndXJhdGlvbjo6SWNlU2VydmVySW5mbz4gc2VydmVyczsKICAgICBpZiAobmV3Q29uZmlndXJh
dGlvbi5pY2VTZXJ2ZXJzKSB7CkBAIC00MTQsMTggKzQxNCwxOCBAQCBFeGNlcHRpb25PcjxWZWN0
b3I8TWVkaWFFbmRwb2ludENvbmZpZ3VyYXRpb246OkljZVNlcnZlckluZm8+PiBSVENQZWVyQ29u
bmVjdGlvbgogCiAgICAgICAgICAgICBmb3IgKGF1dG8mIHNlcnZlclVSTCA6IHNlcnZlclVSTHMp
IHsKICAgICAgICAgICAgICAgICBpZiAoc2VydmVyVVJMLmlzTnVsbCgpKQotICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiQmFkIElDRSBzZXJ2ZXIgVVJM
IiB9OworICAgICAgICAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAi
QmFkIElDRSBzZXJ2ZXIgVVJMIl9zIH07CiAgICAgICAgICAgICAgICAgaWYgKHNlcnZlclVSTC5w
cm90b2NvbElzKCJ0dXJuIikgfHwgc2VydmVyVVJMLnByb3RvY29sSXMoInR1cm5zIikpIHsKICAg
ICAgICAgICAgICAgICAgICAgaWYgKHNlcnZlci5jcmVkZW50aWFsLmlzTnVsbCgpIHx8IHNlcnZl
ci51c2VybmFtZS5pc051bGwoKSkKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJUVVJOL1RVUk5TIHNlcnZlciByZXF1aXJlcyBi
b3RoIHVzZXJuYW1lIGFuZCBjcmVkZW50aWFsIiB9OworICAgICAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwgIlRVUk4vVFVSTlMgc2VydmVy
IHJlcXVpcmVzIGJvdGggdXNlcm5hbWUgYW5kIGNyZWRlbnRpYWwiX3MgfTsKICAgICAgICAgICAg
ICAgICAgICAgLy8gaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzg0ODkjc2VjdGlvbi0x
NC4zCiAgICAgICAgICAgICAgICAgICAgIGlmIChzZXJ2ZXIuY3JlZGVudGlhbC5sZW5ndGgoKSA+
IDY0IHx8IHNlcnZlci51c2VybmFtZS5sZW5ndGgoKSA+IDY0KSB7CiAgICAgICAgICAgICAgICAg
ICAgICAgICBjb25zdGV4cHIgc2l6ZV90IE1heFR1cm5Vc2VybmFtZUxlbmd0aCA9IDUwOTsKICAg
ICAgICAgICAgICAgICAgICAgICAgIGlmIChzZXJ2ZXIuY3JlZGVudGlhbC51dGY4KCkubGVuZ3Ro
KCkgPiBNYXhUdXJuVXNlcm5hbWVMZW5ndGggfHwgc2VydmVyLnVzZXJuYW1lLnV0ZjgoKS5sZW5n
dGgoKSA+IE1heFR1cm5Vc2VybmFtZUxlbmd0aCkKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiVFVSTi9UVVJOUyB1c2VybmFtZSBhbmQv
b3IgY3JlZGVudGlhbCBhcmUgdG9vIGxvbmciIH07CisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIlRVUk4vVFVSTlMgdXNlcm5hbWUgYW5k
L29yIGNyZWRlbnRpYWwgYXJlIHRvbyBsb25nIl9zIH07CiAgICAgICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFzZXJ2ZXJVUkwucHJvdG9jb2xJcygic3R1biIp
KQotICAgICAgICAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJy
b3IsICJJQ0Ugc2VydmVyIHByb3RvY29sIG5vdCBzdXBwb3J0ZWQiIH07CisgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciwgIklDRSBzZXJ2ZXIg
cHJvdG9jb2wgbm90IHN1cHBvcnRlZCJfcyB9OwogICAgICAgICAgICAgfQogICAgICAgICAgICAg
aWYgKHNlcnZlclVSTHMuc2l6ZSgpKQogICAgICAgICAgICAgICAgIHNlcnZlcnMudW5jaGVja2Vk
QXBwZW5kKHsgV1RGTW92ZShzZXJ2ZXJVUkxzKSwgc2VydmVyLmNyZWRlbnRpYWwsIHNlcnZlci51
c2VybmFtZSB9KTsKQEAgLTQ0Myw3ICs0NDMsNyBAQCBFeGNlcHRpb25PcjxWZWN0b3I8TWVkaWFF
bmRwb2ludENvbmZpZ3VyYXRpb246OkNlcnRpZmljYXRlUEVNPj4gUlRDUGVlckNvbm5lY3Rpbwog
ICAgIGNlcnRpZmljYXRlcy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KGNvbmZpZ3VyYXRpb24uY2Vy
dGlmaWNhdGVzLnNpemUoKSk7CiAgICAgZm9yIChhdXRvJiBjZXJ0aWZpY2F0ZSA6IGNvbmZpZ3Vy
YXRpb24uY2VydGlmaWNhdGVzKSB7CiAgICAgICAgIGlmICghb3JpZ2luLmlzU2FtZU9yaWdpbkFz
KGNlcnRpZmljYXRlLT5vcmlnaW4oKSkpCi0gICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
SW52YWxpZEFjY2Vzc0Vycm9yLCAiQ2VydGlmaWNhdGUgZG9lcyBub3QgaGF2ZSBhIHZhbGlkIG9y
aWdpbiIgfTsKKyAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJy
b3IsICJDZXJ0aWZpY2F0ZSBkb2VzIG5vdCBoYXZlIGEgdmFsaWQgb3JpZ2luIl9zIH07CiAKICAg
ICAgICAgaWYgKGN1cnJlbnRNaWxsaVNlY29uZHMgPiBjZXJ0aWZpY2F0ZS0+ZXhwaXJlcygpKQog
ICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwgIkNlcnRp
ZmljYXRlIGhhcyBleHBpcmVkIl9zIH07CkBAIC00NjYsNyArNDY2LDcgQEAgRXhjZXB0aW9uT3I8
dm9pZD4gUlRDUGVlckNvbm5lY3Rpb246OmluaXRpYWxpemVDb25maWd1cmF0aW9uKFJUQ0NvbmZp
Z3VyYXRpb24mJgogICAgICAgICByZXR1cm4gY2VydGlmaWNhdGVzLnJlbGVhc2VFeGNlcHRpb24o
KTsKIAogICAgIGlmICghbV9iYWNrZW5kLT5zZXRDb25maWd1cmF0aW9uKHsgc2VydmVycy5yZWxl
YXNlUmV0dXJuVmFsdWUoKSwgY29uZmlndXJhdGlvbi5pY2VUcmFuc3BvcnRQb2xpY3ksIGNvbmZp
Z3VyYXRpb24uYnVuZGxlUG9saWN5LCBjb25maWd1cmF0aW9uLnJ0Y3BNdXhQb2xpY3ksIGNvbmZp
Z3VyYXRpb24uaWNlQ2FuZGlkYXRlUG9vbFNpemUsIGNlcnRpZmljYXRlcy5yZWxlYXNlUmV0dXJu
VmFsdWUoKSB9KSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJv
ciwgIkJhZCBDb25maWd1cmF0aW9uIFBhcmFtZXRlcnMiIH07CisgICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJCYWQgQ29uZmlndXJhdGlvbiBQYXJhbWV0ZXJz
Il9zIH07CiAKICAgICBtX2NvbmZpZ3VyYXRpb24gPSBXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pOwog
ICAgIHJldHVybiB7IH07CkBAIC00ODUsMTkgKzQ4NSwxOSBAQCBFeGNlcHRpb25Pcjx2b2lkPiBS
VENQZWVyQ29ubmVjdGlvbjo6c2V0Q29uZmlndXJhdGlvbihSVENDb25maWd1cmF0aW9uJiYgY29u
ZmlndQogCiAgICAgaWYgKGNvbmZpZ3VyYXRpb24uY2VydGlmaWNhdGVzLnNpemUoKSkgewogICAg
ICAgICBpZiAoY29uZmlndXJhdGlvbi5jZXJ0aWZpY2F0ZXMuc2l6ZSgpICE9IG1fY29uZmlndXJh
dGlvbi5jZXJ0aWZpY2F0ZXMuc2l6ZSgpKQotICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7
IEludmFsaWRNb2RpZmljYXRpb25FcnJvciwgIkNlcnRpZmljYXRlcyBwYXJhbWV0ZXJzIGFyZSBk
aWZmZXJlbnQiIH07CisgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZE1vZGlm
aWNhdGlvbkVycm9yLCAiQ2VydGlmaWNhdGVzIHBhcmFtZXRlcnMgYXJlIGRpZmZlcmVudCJfcyB9
OwogCiAgICAgICAgIGZvciAoYXV0byYgY2VydGlmaWNhdGUgOiBjb25maWd1cmF0aW9uLmNlcnRp
ZmljYXRlcykgewogICAgICAgICAgICAgYm9vbCBpc1RoZXJlID0gbV9jb25maWd1cmF0aW9uLmNl
cnRpZmljYXRlcy5maW5kSWYoWyZjZXJ0aWZpY2F0ZV0oY29uc3QgYXV0byYgaXRlbSkgewogICAg
ICAgICAgICAgICAgIHJldHVybiBpdGVtLmdldCgpID09IGNlcnRpZmljYXRlLmdldCgpOwogICAg
ICAgICAgICAgfSkgIT0gbm90Rm91bmQ7CiAgICAgICAgICAgICBpZiAoIWlzVGhlcmUpCi0gICAg
ICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRNb2RpZmljYXRpb25FcnJvciwg
IkEgY2VydGlmaWNhdGUgZ2l2ZW4gaW4gY29uc3RydWN0b3IgaXMgbm90IHByZXNlbnQiIH07Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRNb2RpZmljYXRpb25FcnJv
ciwgIkEgY2VydGlmaWNhdGUgZ2l2ZW4gaW4gY29uc3RydWN0b3IgaXMgbm90IHByZXNlbnQiX3Mg
fTsKICAgICAgICAgfQogICAgIH0KIAogICAgIGlmICghbV9iYWNrZW5kLT5zZXRDb25maWd1cmF0
aW9uKHsgc2VydmVycy5yZWxlYXNlUmV0dXJuVmFsdWUoKSwgY29uZmlndXJhdGlvbi5pY2VUcmFu
c3BvcnRQb2xpY3ksIGNvbmZpZ3VyYXRpb24uYnVuZGxlUG9saWN5LCBjb25maWd1cmF0aW9uLnJ0
Y3BNdXhQb2xpY3ksIGNvbmZpZ3VyYXRpb24uaWNlQ2FuZGlkYXRlUG9vbFNpemUsIHsgfSB9KSkK
LSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwgIkJhZCBDb25m
aWd1cmF0aW9uIFBhcmFtZXRlcnMiIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZh
bGlkQWNjZXNzRXJyb3IsICJCYWQgQ29uZmlndXJhdGlvbiBQYXJhbWV0ZXJzIl9zIH07CiAKICAg
ICBtX2NvbmZpZ3VyYXRpb24gPSBXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pOwogICAgIHJldHVybiB7
IH07CkBAIC05MTksNyArOTE5LDcgQEAgY29uc3QgVmVjdG9yPFJlZlB0cjxSVENSdHBUcmFuc2Nl
aXZlcj4+JiBSVENQZWVyQ29ubmVjdGlvbjo6Z2V0VHJhbnNjZWl2ZXJzKCkgY28KIHZvaWQgUlRD
UGVlckNvbm5lY3Rpb246OmNoYWluT3BlcmF0aW9uKFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJv
bWlzZSwgRnVuY3Rpb248dm9pZChSZWY8RGVmZXJyZWRQcm9taXNlPiYmKT4mJiBvcGVyYXRpb24p
CiB7CiAgICAgaWYgKGlzQ2xvc2VkKCkpIHsKLSAgICAgICAgcHJvbWlzZS0+cmVqZWN0KEludmFs
aWRTdGF0ZUVycm9yLCAiUlRDUGVlckNvbm5lY3Rpb24gaXMgY2xvc2VkIik7CisgICAgICAgIHBy
b21pc2UtPnJlamVjdChJbnZhbGlkU3RhdGVFcnJvciwgIlJUQ1BlZXJDb25uZWN0aW9uIGlzIGNs
b3NlZCJfcyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTkyNyw3ICs5MjcsNyBAQCB2
b2lkIFJUQ1BlZXJDb25uZWN0aW9uOjpjaGFpbk9wZXJhdGlvbihSZWY8RGVmZXJyZWRQcm9taXNl
PiYmIHByb21pc2UsIEZ1bmN0aW9uPAogICAgICAgICBBU1NFUlQobV9oYXNQZW5kaW5nT3BlcmF0
aW9uKTsKICAgICAgICAgaWYgKGlzQ2xvc2VkKCkpIHsKICAgICAgICAgICAgIGZvciAoYXV0byYg
b3BlcmF0aW9uIDogc3RkOjpleGNoYW5nZShtX29wZXJhdGlvbnMsIHsgfSkpCi0gICAgICAgICAg
ICAgICAgb3BlcmF0aW9uLmZpcnN0LT5yZWplY3QoSW52YWxpZFN0YXRlRXJyb3IsICJSVENQZWVy
Q29ubmVjdGlvbiBpcyBjbG9zZWQiKTsKKyAgICAgICAgICAgICAgICBvcGVyYXRpb24uZmlyc3Qt
PnJlamVjdChJbnZhbGlkU3RhdGVFcnJvciwgIlJUQ1BlZXJDb25uZWN0aW9uIGlzIGNsb3NlZCJf
cyk7CiAgICAgICAgICAgICBtX2hhc1BlbmRpbmdPcGVyYXRpb24gPSBmYWxzZTsKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm1lci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyLmNwcAppbmRleCBj
YjNmN2NkOWJmMjEyM2U5MWQyZGY3YTQ1MWQxYzZlODE4OWVkNDRkLi40ZjI5YWIxNWU2YjU2Nzcx
NzMwYWY5NDQyY2UwYjQxNDI3MGUxNmM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyLmNwcApA
QCAtMzQ2LDcgKzM0Niw3IEBAIFJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyOjpUcmFuc2Zvcm1SZXN1
bHQgUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI6OmVuY3J5cHRGcmFtZShTCiBSVENSdHBTRnJhbWVU
cmFuc2Zvcm1lcjo6VHJhbnNmb3JtUmVzdWx0IFJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyOjp0cmFu
c2Zvcm0oU3Bhbjxjb25zdCB1aW50OF90PiBkYXRhKQogewogICAgIGlmICghbV9oYXNLZXkpCi0g
ICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChFcnJvckluZm9ybWF0aW9uIHsgRXJyb3I6Oktl
eUlELCAgIktleSBpcyBub3QgaW5pdGlhbGl6ZWQiLCAwIH0pOworICAgICAgICByZXR1cm4gbWFr
ZVVuZXhwZWN0ZWQoRXJyb3JJbmZvcm1hdGlvbiB7IEVycm9yOjpLZXlJRCwgICJLZXkgaXMgbm90
IGluaXRpYWxpemVkIl9zLCAwIH0pOwogCiAgICAgcmV0dXJuIG1faXNFbmNyeXB0aW5nID8gZW5j
cnlwdEZyYW1lKGRhdGEpIDogZGVjcnlwdEZyYW1lKGRhdGEpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUGVlckNv
bm5lY3Rpb25CYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
bGlid2VicnRjL0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAKaW5kZXggMTMzMzFh
Y2MwNDQwY2QwMTc4OWM3MzE1ODBlYjU2OTA0MWMzODFjZC4uMzIzYzI4MTNjMzI0ZWZlZTY5OGY0
YzBlNGI5ZmZmY2M3OWQ0ZDZiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJS
VENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwCkBAIC0yNjAsNyArMjYwLDcgQEAgdm9pZCBMaWJX
ZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OmRvQ3JlYXRlT2ZmZXIoUlRDT2ZmZXJPcHRpb25z
JiYgb3B0aW9ucykKIHZvaWQgTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpkb0NyZWF0
ZUFuc3dlcihSVENBbnN3ZXJPcHRpb25zJiYpCiB7CiAgICAgaWYgKCFtX2lzUmVtb3RlRGVzY3Jp
cHRpb25TZXQpIHsKLSAgICAgICAgY3JlYXRlQW5zd2VyRmFpbGVkKEV4Y2VwdGlvbiB7IEludmFs
aWRTdGF0ZUVycm9yLCAiTm8gcmVtb3RlIGRlc2NyaXB0aW9uIHNldCIgfSk7CisgICAgICAgIGNy
ZWF0ZUFuc3dlckZhaWxlZChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIk5vIHJlbW90
ZSBkZXNjcmlwdGlvbiBzZXQiX3MgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgbV9l
bmRwb2ludC0+ZG9DcmVhdGVBbnN3ZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1J0cFRyYW5zY2VpdmVyQmFja2Vu
ZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJX
ZWJSVENSdHBUcmFuc2NlaXZlckJhY2tlbmQuY3BwCmluZGV4IGQxZjczYWQ3ZjQ3OGY2MDQ3MjVi
MDYwOTlmZGU2OTBjNzNlZDViNDUuLjQxNzZlOGQ2Zjc4M2E1MjVhODBmN2E2MGVhZGM2N2Y2YmZk
NzAxNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGli
d2VicnRjL0xpYldlYlJUQ1J0cFRyYW5zY2VpdmVyQmFja2VuZC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUnRwVHJhbnNjZWl2
ZXJCYWNrZW5kLmNwcApAQCAtODksNyArODksNyBAQCBzdGF0aWMgaW5saW5lIEV4Y2VwdGlvbk9y
PHdlYnJ0Yzo6UnRwQ29kZWNDYXBhYmlsaXR5PiB0b1J0cENvZGVjQ2FwYWJpbGl0eShjb25zdAog
ICAgIGVsc2UgaWYgKGNvZGVjLm1pbWVUeXBlLnN0YXJ0c1dpdGgoImF1ZGlvLyIpKQogICAgICAg
ICBydGNDb2RlYy5raW5kID0gY3JpY2tldDo6TUVESUFfVFlQRV9BVURJTzsKICAgICBlbHNlCi0g
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3IsICJSVENS
dHBDb2RlY0NhcGFiaWxpdHkgYmFkIG1pbWVUeXBlIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yLCAiUlRDUnRwQ29kZWNDYXBhYmlsaXR5IGJh
ZCBtaW1lVHlwZSJfcyB9OwogCiAgICAgcnRjQ29kZWMubmFtZSA9IGNvZGVjLm1pbWVUeXBlLnN1
YnN0cmluZyg2KS51dGY4KCkuZGF0YSgpOwogICAgIHJ0Y0NvZGVjLmNsb2NrX3JhdGUgPSBjb2Rl
Yy5jbG9ja1JhdGU7CkBAIC05OSw3ICs5OSw3IEBAIHN0YXRpYyBpbmxpbmUgRXhjZXB0aW9uT3I8
d2VicnRjOjpSdHBDb2RlY0NhcGFiaWxpdHk+IHRvUnRwQ29kZWNDYXBhYmlsaXR5KGNvbnN0CiAg
ICAgZm9yIChhdXRvIHBhcmFtZXRlciA6IFN0cmluZ1ZpZXcoY29kZWMuc2RwRm10cExpbmUpLnNw
bGl0KCc7JykpIHsKICAgICAgICAgYXV0byBwb3NpdGlvbiA9IHBhcmFtZXRlci5maW5kKCc9Jyk7
CiAgICAgICAgIGlmIChwb3NpdGlvbiA9PSBub3RGb3VuZCkKLSAgICAgICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3IsICJSVENSdHBDb2RlY0NhcGFiaWxp
dHkgc2RwRm10TGluZSBiYWRseSBmb3JtYXRlZCIgfTsKKyAgICAgICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3IsICJSVENSdHBDb2RlY0NhcGFiaWxpdHkg
c2RwRm10TGluZSBiYWRseSBmb3JtYXRlZCJfcyB9OwogICAgICAgICBydGNDb2RlYy5wYXJhbWV0
ZXJzLmVtcGxhY2UocGFyYW1ldGVyLnN1YnN0cmluZygwLCBwb3NpdGlvbikudXRmOCgpLmRhdGEo
KSwgcGFyYW1ldGVyLnN1YnN0cmluZyhwb3NpdGlvbiArIDEpLnV0ZjgoKS5kYXRhKCkpOwogICAg
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3
ZWJydGMvTGliV2ViUlRDVXRpbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDVXRpbHMuY3BwCmluZGV4IDQ1ZTRkMTczNjNmZjFiNjQw
N2UzYzA5OWMwZmM3ZjQyODJmYTY4YjAuLjlmMTk2ZjM3OGJiNzc3NjczY2Y3MTIwY2FhNGZiNDY0
NTAxZjRhODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
bGlid2VicnRjL0xpYldlYlJUQ1V0aWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENVdGlscy5jcHAKQEAgLTM2MCw3ICszNjAs
NyBAQCBFeGNlcHRpb24gdG9FeGNlcHRpb24oY29uc3Qgd2VicnRjOjpSVENFcnJvciYgZXJyb3Ip
CiB7CiAgICAgQVNTRVJUKCFlcnJvci5vaygpKTsKIAotICAgIHJldHVybiBFeGNlcHRpb24geyB0
b0V4Y2VwdGlvbkNvZGUoZXJyb3IudHlwZSgpKSwgZXJyb3IubWVzc2FnZSgpIH07CisgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IHRvRXhjZXB0aW9uQ29kZShlcnJvci50eXBlKCkpLCBTdHJpbmcgeyBl
cnJvci5tZXNzYWdlKCkgfSB9OwogfQogCiBzdGF0aWMgaW5saW5lIFJUQ0ljZUNvbXBvbmVudCB0
b1JUQ0ljZUNvbXBvbmVudChpbnQgY29tcG9uZW50KQpAQCAtNDU1LDcgKzQ1NSw3IEBAIFJlZlB0
cjxSVENFcnJvcj4gdG9SVENFcnJvcihjb25zdCB3ZWJydGM6OlJUQ0Vycm9yJiBydGNFcnJvcikK
ICAgICBhdXRvIGRldGFpbCA9IHRvUlRDRXJyb3JEZXRhaWxUeXBlKHJ0Y0Vycm9yLmVycm9yX2Rl
dGFpbCgpKTsKICAgICBpZiAoIWRldGFpbCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAg
cmV0dXJuIFJUQ0Vycm9yOjpjcmVhdGUoKmRldGFpbCwgcnRjRXJyb3IubWVzc2FnZSgpKTsKKyAg
ICByZXR1cm4gUlRDRXJyb3I6OmNyZWF0ZSgqZGV0YWlsLCBTdHJpbmcgeyBydGNFcnJvci5tZXNz
YWdlKCkgfSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9zY2VuZWtpdC9TY2VuZUtpdE1vZGVsTG9h
ZGVyVVNELm1tIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L3NjZW5la2l0
L1NjZW5lS2l0TW9kZWxMb2FkZXJVU0QubW0KaW5kZXggMDllYzhmNjAzZTlkMDIyYjM3OGRkYTBl
NDI3ZmVjNTIxZmRkNTJkMi4uY2FiNGI4ZGUyMDJlNzdkNzAyODJiNTk0YTFiZWZiZDc1YjA2Y2Iy
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L3NjZW5l
a2l0L1NjZW5lS2l0TW9kZWxMb2FkZXJVU0QubW0KKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tb2RlbC1lbGVtZW50L3NjZW5la2l0L1NjZW5lS2l0TW9kZWxMb2FkZXJVU0QubW0KQEAgLTEw
Miw3ICsxMDIsNyBAQCBzdGF0aWMgUmV0YWluUHRyPE5TVVJMPiB3cml0ZVRvVGVtcG9yYXJ5Rmls
ZShXZWJDb3JlOjpNb2RlbCYgbW9kZWxTb3VyY2UpCiAgICAgLy8gaW5pdGlhbGl6ZXIgYnV0IGN1
cnJlbnRseSB0aGF0IGRvZXMgbm90IHdvcmsuCiAKICAgICBGaWxlU3lzdGVtOjpQbGF0Zm9ybUZp
bGVIYW5kbGUgZmlsZUhhbmRsZTsKLSAgICBhdXRvIGZpbGVQYXRoID0gRmlsZVN5c3RlbTo6b3Bl
blRlbXBvcmFyeUZpbGUoIk1vZGVsRmlsZSIsIGZpbGVIYW5kbGUsICIudXNkeiIpOworICAgIGF1
dG8gZmlsZVBhdGggPSBGaWxlU3lzdGVtOjpvcGVuVGVtcG9yYXJ5RmlsZSgiTW9kZWxGaWxlIl9z
LCBmaWxlSGFuZGxlLCAiLnVzZHoiX3MpOwogICAgIEFTU0VSVChGaWxlU3lzdGVtOjppc0hhbmRs
ZVZhbGlkKGZpbGVIYW5kbGUpKTsKIAogICAgIHNpemVfdCBieXRlQ291bnQgPSBGaWxlU3lzdGVt
Ojp3cml0ZVRvRmlsZShmaWxlSGFuZGxlLCBtb2RlbFNvdXJjZS5kYXRhKCktPm1ha2VDb250aWd1
b3VzKCktPmRhdGEoKSwgbW9kZWxTb3VyY2UuZGF0YSgpLT5zaXplKCkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXF1ZXN0LmNw
cAppbmRleCBkZjJiNWMyNjRmM2E1Y2UyYzFlMWNiNmI3NjM0MGEwMGZhNDBjY2UwLi40MjIzNWVl
YTFiZmQxY2QxYjcwNzBiNjkwOTQ4NDJjZjZlOTM1NGI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXF1ZXN0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXF1ZXN0LmNwcApAQCAt
MjE2LDcgKzIxNiw3IEBAIHN0YXRpYyBFeGNlcHRpb25PcjxzdGQ6OnR1cGxlPFN0cmluZywgVmVj
dG9yPFN0cmluZz4+PiBjaGVja0FuZENhbm9uaWNhbGl6ZURldGFpCiAKICAgICAgICAgICAgICAg
ICBhdXRvIGFkZFJlc3VsdCA9IHNlZW5TaGlwcGluZ09wdGlvbklEcy5hZGQoc2hpcHBpbmdPcHRp
b24uaWQpOwogICAgICAgICAgICAgICAgIGlmICghYWRkUmVzdWx0LmlzTmV3RW50cnkpCi0gICAg
ICAgICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJTaGlwcGluZyBv
cHRpb24gSURzIG11c3QgYmUgdW5pcXVlLiIgfTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIlNoaXBwaW5nIG9wdGlvbiBJRHMgbXVzdCBiZSB1bmlx
dWUuIl9zIH07CiAKICNpZiBFTkFCTEUoUEFZTUVOVF9SRVFVRVNUX1NFTEVDVEVEX1NISVBQSU5H
X09QVElPTikKICAgICAgICAgICAgICAgICBpZiAoc2hpcHBpbmdPcHRpb24uc2VsZWN0ZWQpCkBA
IC0zNzUsNyArMzc1LDcgQEAgdm9pZCBQYXltZW50UmVxdWVzdDo6c2hvdyhEb2N1bWVudCYgZG9j
dW1lbnQsIFJlZlB0cjxET01Qcm9taXNlPiYmIGRldGFpbHNQcm9taXMKIAogICAgIGF1dG8qIHdp
bmRvdyA9IGRvY3VtZW50LmZyYW1lKCktPndpbmRvdygpOwogICAgIGlmICghd2luZG93IHx8ICF3
aW5kb3ctPmNvbnN1bWVUcmFuc2llbnRBY3RpdmF0aW9uKCkpIHsKLSAgICAgICAgcHJvbWlzZS5y
ZWplY3QoRXhjZXB0aW9uIHsgU2VjdXJpdHlFcnJvciwgInNob3coKSBtdXN0IGJlIHRyaWdnZXJl
ZCBieSB1c2VyIGFjdGl2YXRpb24uIiB9KTsKKyAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0
aW9uIHsgU2VjdXJpdHlFcnJvciwgInNob3coKSBtdXN0IGJlIHRyaWdnZXJlZCBieSB1c2VyIGFj
dGl2YXRpb24uIl9zIH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BpY3R1cmVpbnBpY3R1cmUvSFRNTFZpZGVvRWxlbWVudFBp
Y3R1cmVJblBpY3R1cmUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9waWN0dXJlaW5waWN0
dXJlL0hUTUxWaWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJlLmNwcAppbmRleCBmMmYwMjMxMDI3
NDViOWZkMjNlOGU5NDJkNjA5YTdlOWJlMDYxMGQ4Li5iYmUyY2JjOGI5Y2JhZTRmMmZiMGViZGU5
NGQ1OTVhZjlkOGZjYmJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BpY3R1
cmVpbnBpY3R1cmUvSFRNTFZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvcGljdHVyZWlucGljdHVyZS9IVE1MVmlkZW9FbGVtZW50UGlj
dHVyZUluUGljdHVyZS5jcHAKQEAgLTgxLDIzICs4MSwyMyBAQCB2b2lkIEhUTUxWaWRlb0VsZW1l
bnRQaWN0dXJlSW5QaWN0dXJlOjpwcm92aWRlUGljdHVyZUluUGljdHVyZVRvKEhUTUxWaWRlb0Vs
ZW1lbgogdm9pZCBIVE1MVmlkZW9FbGVtZW50UGljdHVyZUluUGljdHVyZTo6cmVxdWVzdFBpY3R1
cmVJblBpY3R1cmUoSFRNTFZpZGVvRWxlbWVudCYgdmlkZW9FbGVtZW50LCBSZWY8RGVmZXJyZWRQ
cm9taXNlPiYmIHByb21pc2UpCiB7CiAgICAgaWYgKCFzdXBwb3J0c1BpY3R1cmVJblBpY3R1cmUo
KSkgewotICAgICAgICBwcm9taXNlLT5yZWplY3QoTm90U3VwcG9ydGVkRXJyb3IsICJUaGUgUGlj
dHVyZS1pbi1QaWN0dXJlIG1vZGUgaXMgbm90IHN1cHBvcnRlZC4iKTsKKyAgICAgICAgcHJvbWlz
ZS0+cmVqZWN0KE5vdFN1cHBvcnRlZEVycm9yLCAiVGhlIFBpY3R1cmUtaW4tUGljdHVyZSBtb2Rl
IGlzIG5vdCBzdXBwb3J0ZWQuIl9zKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGlm
ICh2aWRlb0VsZW1lbnQucmVhZHlTdGF0ZSgpID09IEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6SEFW
RV9OT1RISU5HKSB7Ci0gICAgICAgIHByb21pc2UtPnJlamVjdChJbnZhbGlkU3RhdGVFcnJvciwg
IlRoZSB2aWRlbyBlbGVtZW50IGlzIG5vdCByZWFkeSB0byBlbnRlciB0aGUgUGljdHVyZS1pbi1Q
aWN0dXJlIG1vZGUuIik7CisgICAgICAgIHByb21pc2UtPnJlamVjdChJbnZhbGlkU3RhdGVFcnJv
ciwgIlRoZSB2aWRlbyBlbGVtZW50IGlzIG5vdCByZWFkeSB0byBlbnRlciB0aGUgUGljdHVyZS1p
bi1QaWN0dXJlIG1vZGUuIl9zKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGlmICgh
dmlkZW9FbGVtZW50LnZpZGVvVHJhY2tzKCkgfHwgIXZpZGVvRWxlbWVudC52aWRlb1RyYWNrcygp
LT5sZW5ndGgoKSkgewotICAgICAgICBwcm9taXNlLT5yZWplY3QoSW52YWxpZFN0YXRlRXJyb3Is
ICJUaGUgdmlkZW8gZWxlbWVudCBkb2VzIG5vdCBoYXZlIGEgdmlkZW8gdHJhY2sgb3IgaXQgaGFz
IG5vdCBkZXRlY3RlZCBhIHZpZGVvIHRyYWNrIHlldC4iKTsKKyAgICAgICAgcHJvbWlzZS0+cmVq
ZWN0KEludmFsaWRTdGF0ZUVycm9yLCAiVGhlIHZpZGVvIGVsZW1lbnQgZG9lcyBub3QgaGF2ZSBh
IHZpZGVvIHRyYWNrIG9yIGl0IGhhcyBub3QgZGV0ZWN0ZWQgYSB2aWRlbyB0cmFjayB5ZXQuIl9z
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGJvb2wgdXNlckFjdGl2YXRpb25SZXF1
aXJlZCA9ICF2aWRlb0VsZW1lbnQuZG9jdW1lbnQoKS5waWN0dXJlSW5QaWN0dXJlRWxlbWVudCgp
OwogICAgIGlmICh1c2VyQWN0aXZhdGlvblJlcXVpcmVkICYmICFVc2VyR2VzdHVyZUluZGljYXRv
cjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkpIHsKLSAgICAgICAgcHJvbWlzZS0+cmVqZWN0KE5v
dEFsbG93ZWRFcnJvciwgIlRoZSByZXF1ZXN0IGlzIG5vdCB0cmlnZ2VyZWQgYnkgYSB1c2VyIGFj
dGl2YXRpb24uIik7CisgICAgICAgIHByb21pc2UtPnJlamVjdChOb3RBbGxvd2VkRXJyb3IsICJU
aGUgcmVxdWVzdCBpcyBub3QgdHJpZ2dlcmVkIGJ5IGEgdXNlciBhY3RpdmF0aW9uLiJfcyk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTEwOCw3ICsxMDgsNyBAQCB2b2lkIEhUTUxWaWRl
b0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJlOjpyZXF1ZXN0UGljdHVyZUluUGljdHVyZShIVE1MVmlk
ZW9FbGVtZW50JgogICAgIH0KIAogICAgIGlmICh2aWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJl
LT5tX2VudGVyUGljdHVyZUluUGljdHVyZVByb21pc2UgfHwgdmlkZW9FbGVtZW50UGljdHVyZUlu
UGljdHVyZS0+bV9leGl0UGljdHVyZUluUGljdHVyZVByb21pc2UpIHsKLSAgICAgICAgcHJvbWlz
ZS0+cmVqZWN0KE5vdEFsbG93ZWRFcnJvciwgIlRoZSB2aWRlbyBlbGVtZW50IGlzIHByb2Nlc3Np
bmcgYSBQaWN0dXJlLWluLVBpY3R1cmUgcmVxdWVzdC4iKTsKKyAgICAgICAgcHJvbWlzZS0+cmVq
ZWN0KE5vdEFsbG93ZWRFcnJvciwgIlRoZSB2aWRlbyBlbGVtZW50IGlzIHByb2Nlc3NpbmcgYSBQ
aWN0dXJlLWluLVBpY3R1cmUgcmVxdWVzdC4iX3MpOwogICAgICAgICByZXR1cm47CiAgICAgfQog
CkBAIC0xMTYsNyArMTE2LDcgQEAgdm9pZCBIVE1MVmlkZW9FbGVtZW50UGljdHVyZUluUGljdHVy
ZTo6cmVxdWVzdFBpY3R1cmVJblBpY3R1cmUoSFRNTFZpZGVvRWxlbWVudCYKICAgICAgICAgdmlk
ZW9FbGVtZW50UGljdHVyZUluUGljdHVyZS0+bV9lbnRlclBpY3R1cmVJblBpY3R1cmVQcm9taXNl
ID0gV1RGTW92ZShwcm9taXNlKTsKICAgICAgICAgdmlkZW9FbGVtZW50LndlYmtpdFNldFByZXNl
bnRhdGlvbk1vZGUoSFRNTFZpZGVvRWxlbWVudDo6VmlkZW9QcmVzZW50YXRpb25Nb2RlOjpQaWN0
dXJlSW5QaWN0dXJlKTsKICAgICB9IGVsc2UKLSAgICAgICAgcHJvbWlzZS0+cmVqZWN0KE5vdFN1
cHBvcnRlZEVycm9yLCAiVGhlIHZpZGVvIGVsZW1lbnQgZG9lcyBub3Qgc3VwcG9ydCB0aGUgUGlj
dHVyZS1pbi1QaWN0dXJlIG1vZGUuIik7CisgICAgICAgIHByb21pc2UtPnJlamVjdChOb3RTdXBw
b3J0ZWRFcnJvciwgIlRoZSB2aWRlbyBlbGVtZW50IGRvZXMgbm90IHN1cHBvcnQgdGhlIFBpY3R1
cmUtaW4tUGljdHVyZSBtb2RlLiJfcyk7CiB9CiAKIGJvb2wgSFRNTFZpZGVvRWxlbWVudFBpY3R1
cmVJblBpY3R1cmU6OmF1dG9QaWN0dXJlSW5QaWN0dXJlKEhUTUxWaWRlb0VsZW1lbnQmIHZpZGVv
RWxlbWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9Zb3VU
dWJlUGx1Z2luUmVwbGFjZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5z
L1lvdVR1YmVQbHVnaW5SZXBsYWNlbWVudC5jcHAKaW5kZXggOTc5ZjIyNDU5MDcyMGY4MjkzMzVk
NjBhM2E4ZDhhZTVjM2I3MjI0My4uZGQxNmY4OTNmMmQ2OTUyY2M1ZjAwMzA4ZjlkMGQ5OWFiOGIw
ZThhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5zL1lvdVR1YmVQ
bHVnaW5SZXBsYWNlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5z
L1lvdVR1YmVQbHVnaW5SZXBsYWNlbWVudC5jcHAKQEAgLTg0LDE2ICs4NCwxNiBAQCBhdXRvIFlv
dVR1YmVQbHVnaW5SZXBsYWNlbWVudDo6aW5zdGFsbFJlcGxhY2VtZW50KFNoYWRvd1Jvb3QmIHJv
b3QpIC0+IEluc3RhbGxSZQogICAgIHJvb3QuYXBwZW5kQ2hpbGQoKm1fZW1iZWRTaGFkb3dFbGVt
ZW50KTsKIAogICAgIGF1dG8gaWZyYW1lRWxlbWVudCA9IEhUTUxJRnJhbWVFbGVtZW50OjpjcmVh
dGUoSFRNTE5hbWVzOjppZnJhbWVUYWcsIG1fcGFyZW50RWxlbWVudC0+ZG9jdW1lbnQoKSk7Ci0g
ICAgaWYgKG1fYXR0cmlidXRlcy5jb250YWlucygid2lkdGgiKSkKKyAgICBpZiAobV9hdHRyaWJ1
dGVzLmNvbnRhaW5zKCJ3aWR0aCJfcykpCiAgICAgICAgIGlmcmFtZUVsZW1lbnQtPnNldEF0dHJp
YnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oSFRNTE5hbWVzOjp3aWR0aEF0dHIsIEF0b21TdHJp
bmcoIjEwMCUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogCi0gICAgY29u
c3QgYXV0byYgaGVpZ2h0VmFsdWUgPSBtX2F0dHJpYnV0ZXMuZmluZCgiaGVpZ2h0Iik7CisgICAg
Y29uc3QgYXV0byYgaGVpZ2h0VmFsdWUgPSBtX2F0dHJpYnV0ZXMuZmluZCgiaGVpZ2h0Il9zKTsK
ICAgICBpZiAoaGVpZ2h0VmFsdWUgIT0gbV9hdHRyaWJ1dGVzLmVuZCgpKSB7CiAgICAgICAgIGlm
cmFtZUVsZW1lbnQtPnNldEF0dHJpYnV0ZShIVE1MTmFtZXM6OnN0eWxlQXR0ciwgQXRvbVN0cmlu
ZygibWF4LWhlaWdodDogMTAwJSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7
CiAgICAgICAgIGlmcmFtZUVsZW1lbnQtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRp
b24oSFRNTE5hbWVzOjpoZWlnaHRBdHRyLCBoZWlnaHRWYWx1ZS0+dmFsdWUpOwogICAgIH0KIAot
ICAgIGlmcmFtZUVsZW1lbnQtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oSFRN
TE5hbWVzOjpzcmNBdHRyLCB5b3VUdWJlVVJMKG1fYXR0cmlidXRlcy5nZXQoInNyYyIpKSk7Cisg
ICAgaWZyYW1lRWxlbWVudC0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihIVE1M
TmFtZXM6OnNyY0F0dHIsIHlvdVR1YmVVUkwobV9hdHRyaWJ1dGVzLmdldCgic3JjIl9zKSkpOwog
ICAgIGlmcmFtZUVsZW1lbnQtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oSFRN
TE5hbWVzOjpmcmFtZWJvcmRlckF0dHIsIEF0b21TdHJpbmcoIjAiLCBBdG9tU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIAogICAgIC8vIERpc2FibGUgZnJhbWUgZmxhdHRlbmlu
ZyBmb3IgdGhpcyBpZnJhbWUuCkBAIC0yMzEsMTEgKzIzMSwxMSBAQCBzdGF0aWMgVVJMIHByb2Nl
c3NBbmRDcmVhdGVZb3VUdWJlVVJMKGNvbnN0IFVSTCYgdXJsLCBib29sJiBpc1lvdVR1YmVTaG9y
dGVuZWRVUgogICAgIGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShwYXRoLCAiL3dh
dGNoIikpIHsKICAgICAgICAgaWYgKCFxdWVyeS5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgIGNv
bnN0IGF1dG8mIHF1ZXJ5RGljdGlvbmFyeSA9IHF1ZXJ5S2V5c0FuZFZhbHVlcyhxdWVyeSk7Ci0g
ICAgICAgICAgICBTdHJpbmcgdmlkZW9JRCA9IHZhbHVlRm9yS2V5KHF1ZXJ5RGljdGlvbmFyeSwg
InYiKTsKKyAgICAgICAgICAgIFN0cmluZyB2aWRlb0lEID0gdmFsdWVGb3JLZXkocXVlcnlEaWN0
aW9uYXJ5LCAidiJfcyk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGlmICghdmlkZW9JRC5p
c0VtcHR5KCkpIHsKICAgICAgICAgICAgICAgICBjb25zdCBhdXRvJiBmcmFnbWVudERpY3Rpb25h
cnkgPSBxdWVyeUtleXNBbmRWYWx1ZXModXJsLmZyYWdtZW50SWRlbnRpZmllcigpKTsKLSAgICAg
ICAgICAgICAgICBTdHJpbmcgdGltZUlEID0gdmFsdWVGb3JLZXkoZnJhZ21lbnREaWN0aW9uYXJ5
LCAidCIpOworICAgICAgICAgICAgICAgIFN0cmluZyB0aW1lSUQgPSB2YWx1ZUZvcktleShmcmFn
bWVudERpY3Rpb25hcnksICJ0Il9zKTsKICAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlWW91
VHViZVVSTCh2aWRlb0lELCB0aW1lSUQpOwogICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC0y
NDYsMTAgKzI0NiwxMCBAQCBzdGF0aWMgVVJMIHByb2Nlc3NBbmRDcmVhdGVZb3VUdWJlVVJMKGNv
bnN0IFVSTCYgdXJsLCBib29sJiBpc1lvdVR1YmVTaG9ydGVuZWRVUgogICAgICAgICAgICAgCiAg
ICAgICAgICAgICBpZiAoIXF1ZXJ5LmlzRW1wdHkoKSkgewogICAgICAgICAgICAgICAgIGNvbnN0
IGF1dG8mIHF1ZXJ5RGljdGlvbmFyeSA9IHF1ZXJ5S2V5c0FuZFZhbHVlcyhxdWVyeSk7Ci0gICAg
ICAgICAgICAgICAgU3RyaW5nIHZpZGVvSUQgPSB2YWx1ZUZvcktleShxdWVyeURpY3Rpb25hcnks
ICJ2Iik7CisgICAgICAgICAgICAgICAgU3RyaW5nIHZpZGVvSUQgPSB2YWx1ZUZvcktleShxdWVy
eURpY3Rpb25hcnksICJ2Il9zKTsKICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICBp
ZiAoIXZpZGVvSUQuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICAgICAgICAgIFN0cmluZyB0aW1l
SUQgPSB2YWx1ZUZvcktleShxdWVyeURpY3Rpb25hcnksICJ0Iik7CisgICAgICAgICAgICAgICAg
ICAgIFN0cmluZyB0aW1lSUQgPSB2YWx1ZUZvcktleShxdWVyeURpY3Rpb25hcnksICJ0Il9zKTsK
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVlvdVR1YmVVUkwodmlkZW9JRCwgdGlt
ZUlEKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJ
bXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZUltcGwuY3BwCmluZGV4IGMyM2E4ZDY3Y2I0ODEyMzNmN2NiNGI1MTliMTM2
YjIyMTkwNmJlYmUuLjYwNzUzZmVjZTM1YTI5Zjg4ZTkyNjIwYTIwYjgwOWFmZTk2Y2M3MjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9u
Q2FwdHVyZVNvdXJjZUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNo
L1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuY3BwCkBAIC05Miw3ICs5Miw3IEBA
IGJvb2wgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbDo6dXBkYXRlRGF0YVNvdXJj
ZShjb25zdCBDQUF1ZGlvU3RyZWFtRGVzCiAgICAgaWYgKGRhdGFTb3VyY2UtPnNldElucHV0Rm9y
bWF0KGF1ZGlvRGVzY3JpcHRpb24pKSB7CiAgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3RoaXMs
IHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH1dIHsKICAgICAgICAgICAgIGlmICh3ZWFrVGhp
cykKLSAgICAgICAgICAgICAgICBtX3N0YXRlVXBkYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRp
b25VcGRhdGU6OmNyZWF0ZUVycm9yKG1fY2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRp
b25FcnJvciB7IFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpBdWRpb0NhcHR1cmUsICJVbmFi
bGUgdG8gc2V0IGlucHV0IGZvcm1hdCIgfSkpOworICAgICAgICAgICAgICAgIG1fc3RhdGVVcGRh
dGVDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IobV9jbGllbnRJ
ZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25FcnJv
clR5cGU6OkF1ZGlvQ2FwdHVyZSwgIlVuYWJsZSB0byBzZXQgaW5wdXQgZm9ybWF0Il9zIH0pKTsK
ICAgICAgICAgfSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CkBAIC0xMDAsNyArMTAw
LDcgQEAgYm9vbCBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjp1cGRhdGVEYXRh
U291cmNlKGNvbnN0IENBQXVkaW9TdHJlYW1EZXMKICAgICBpZiAoZGF0YVNvdXJjZS0+c2V0T3V0
cHV0Rm9ybWF0KGF1ZGlvRGVzY3JpcHRpb24pKSB7CiAgICAgICAgIGNhbGxPbk1haW5UaHJlYWQo
W3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH1dIHsKICAgICAgICAgICAgIGlmICh3
ZWFrVGhpcykKLSAgICAgICAgICAgICAgICBtX3N0YXRlVXBkYXRlQ2FsbGJhY2soU3BlZWNoUmVj
b2duaXRpb25VcGRhdGU6OmNyZWF0ZUVycm9yKG1fY2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVj
b2duaXRpb25FcnJvciB7IFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpBdWRpb0NhcHR1cmUs
ICJVbmFibGUgdG8gc2V0IG91dHB1dCBmb3JtYXQiIH0pKTsKKyAgICAgICAgICAgICAgICBtX3N0
YXRlVXBkYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZUVycm9yKG1f
Y2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25FcnJvciB7IFNwZWVjaFJlY29nbml0
aW9uRXJyb3JUeXBlOjpBdWRpb0NhcHR1cmUsICJVbmFibGUgdG8gc2V0IG91dHB1dCBmb3JtYXQi
X3MgfSkpOwogICAgICAgICB9KTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KQEAgLTE1
NywxMyArMTU3LDEzIEBAIHZvaWQgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbDo6
c291cmNlU3RvcHBlZCgpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBBU1NF
UlQobV9zb3VyY2UtPmNhcHR1cmVEaWRGYWlsKCkpOwotICAgIG1fc3RhdGVVcGRhdGVDYWxsYmFj
ayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IobV9jbGllbnRJZGVudGlmaWVy
LCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1
ZGlvQ2FwdHVyZSwgIlNvdXJjZSBpcyBzdG9wcGVkIiB9KSk7CisgICAgbV9zdGF0ZVVwZGF0ZUNh
bGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihtX2NsaWVudElkZW50
aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlw
ZTo6QXVkaW9DYXB0dXJlLCAiU291cmNlIGlzIHN0b3BwZWQiX3MgfSkpOwogfQogCiB2b2lkIFNw
ZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6OnNvdXJjZU11dGVkQ2hhbmdlZCgpCiB7
CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLSAgICBtX3N0YXRlVXBkYXRlQ2FsbGJhY2so
U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZUVycm9yKG1fY2xpZW50SWRlbnRpZmllciwg
U3BlZWNoUmVjb2duaXRpb25FcnJvciB7IFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpBdWRp
b0NhcHR1cmUsICJTb3VyY2UgaXMgbXV0ZWQiIH0pKTsKKyAgICBtX3N0YXRlVXBkYXRlQ2FsbGJh
Y2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZUVycm9yKG1fY2xpZW50SWRlbnRpZmll
ciwgU3BlZWNoUmVjb2duaXRpb25FcnJvciB7IFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpB
dWRpb0NhcHR1cmUsICJTb3VyY2UgaXMgbXV0ZWQiX3MgfSkpOwogfQogCiB2b2lkIFNwZWVjaFJl
Y29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6Om11dGUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zcGVlY2gvY29jb2EvV2ViU3BlZWNoUmVjb2duaXplclRhc2tNb2NrLm1t
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvY29jb2EvV2ViU3BlZWNoUmVjb2duaXpl
clRhc2tNb2NrLm1tCmluZGV4IDJkMzQ4ZWQyMGMyMWI1MTAzNDg4NzlkNWMyNjNmYzBlM2NmZWQ4
NmIuLmJlZjNhNTIyNTE3ZjRjMmUzMmY1ODMyM2RhOTg0MzBiYjBkMTk1YjYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL2NvY29hL1dlYlNwZWVjaFJlY29nbml6ZXJU
YXNrTW9jay5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9jb2NvYS9XZWJT
cGVlY2hSZWNvZ25pemVyVGFza01vY2subW0KQEAgLTYxLDcgKzYxLDcgQEAgLSAodm9pZClhdWRp
b1NhbXBsZXNBdmFpbGFibGU6KENNU2FtcGxlQnVmZmVyUmVmKXNhbXBsZUJ1ZmZlcgogICAgIH0K
IAogICAgIC8vIEZha2Ugc29tZSByZWNvZ25pdGlvbiByZXN1bHRzLgotICAgIFdlYkNvcmU6OlNw
ZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmVEYXRhIGFsdGVybmF0aXZlIHsgIlRlc3QiLCAxLjAg
fTsKKyAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0YSBhbHRlcm5h
dGl2ZSB7ICJUZXN0Il9zLCAxLjAgfTsKICAgICBfZGVsZWdhdGVDYWxsYmFjayhXZWJDb3JlOjpT
cGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlUmVzdWx0KF9pZGVudGlmaWVyLCB7IFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YSB7IHsgV1RGTW92ZShhbHRlcm5hdGl2ZSkg
fSwgdHJ1ZSB9IH0pKTsKIAogICAgIGlmICghX2RvTXVsdGlwbGVSZWNvZ25pdGlvbnMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0b3JhZ2UvU3RvcmFnZU1hbmFnZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmNwcAppbmRl
eCAxODhkMzBiNjE5OGIxNjFlMWI0N2FlOTc2OGUwYzFlOTU3NjY1M2FiLi42MzZiNDhjOWYwNDc5
YmM1YWUzMTk0ZWExZTg5MDU2OTY1NzE3YTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3N0b3JhZ2UvU3RvcmFnZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3RvcmFnZS9TdG9yYWdlTWFuYWdlci5jcHAKQEAgLTcyLDcgKzcyLDcgQEAgc3RhdGlj
IEV4Y2VwdGlvbk9yPENvbm5lY3Rpb25JbmZvPiBjb25uZWN0aW9uSW5mbyhOYXZpZ2F0b3JCYXNl
KiBuYXZpZ2F0b3IpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJv
ciwgIk9yaWdpbiBpcyBpbnZhbGlkIl9zIH07CiAKICAgICBpZiAoIW9yaWdpbi0+Y2FuQWNjZXNz
U3RvcmFnZU1hbmFnZXIoKSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwg
Ik9yaWdpbiBzaG91bGQgbm90IGFjY2VzcyBzdG9yYWdlIiB9OworICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgVHlwZUVycm9yLCAiT3JpZ2luIHNob3VsZCBub3QgYWNjZXNzIHN0b3JhZ2UiX3Mg
fTsKIAogICAgIGlmIChpczxEb2N1bWVudD4oY29udGV4dCkpIHsKICAgICAgICAgaWYgKGF1dG8q
IGNvbm5lY3Rpb24gPSBkb3duY2FzdDxEb2N1bWVudD4oY29udGV4dCktPnN0b3JhZ2VDb25uZWN0
aW9uKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJM
b2NrTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2Nr
TWFuYWdlci5jcHAKaW5kZXggMjE5OTkyZjZiNWIxNGM1YjYwMjc1NDU2YWRkYjA4NTc3ODZlMTI1
Zi4uYTE2MWIzZDJjMDVjM2Y0OWM5YjBhOGY5ZTY5NjZkNDViYWFkZWZlZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja01hbmFnZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNYW5hZ2VyLmNwcApAQCAt
MzM4LDcgKzMzOCw3IEBAIHZvaWQgV2ViTG9ja01hbmFnZXI6OnNpZ25hbFRvQWJvcnRUaGVSZXF1
ZXN0KFdlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyKQogICAgICAgICBpZiAod2FzQWJv
cnRlZCAmJiB3ZWFrVGhpcykKICAgICAgICAgICAgIHdlYWtUaGlzLT5tX3BlbmRpbmdSZXF1ZXN0
cy5yZW1vdmUobG9ja0lkZW50aWZpZXIpOwogICAgIH0pOwotICAgIHNldHRsZVJlbGVhc2VQcm9t
aXNlKGxvY2tJZGVudGlmaWVyLCBFeGNlcHRpb24geyBBYm9ydEVycm9yLCAiTG9jayByZXF1ZXN0
IHdhcyBhYm9ydGVkIHZpYSBBYm9ydFNpZ25hbCIgfSk7CisgICAgc2V0dGxlUmVsZWFzZVByb21p
c2UobG9ja0lkZW50aWZpZXIsIEV4Y2VwdGlvbiB7IEFib3J0RXJyb3IsICJMb2NrIHJlcXVlc3Qg
d2FzIGFib3J0ZWQgdmlhIEFib3J0U2lnbmFsIl9zIH0pOwogfQogCiB2b2lkIFdlYkxvY2tNYW5h
Z2VyOjpzZXR0bGVSZWxlYXNlUHJvbWlzZShXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmll
ciwgRXhjZXB0aW9uT3I8SlNDOjpKU1ZhbHVlPiYmIHJlc3VsdCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9MaXN0ZW5lci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTGlzdGVuZXIuY3BwCmluZGV4IDAyMGU3NmY0MzY0
ZTZkZWY4ZjgxNzI0ZGI3YzJmZDhhZTU3MDIxNzkuLjc2Yzc2ZDc1NDRlNzBjOWFjZDNiZGRmOTZm
MzRjOGFjNmJhOWZkZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9MaXN0ZW5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb0xpc3RlbmVyLmNwcApAQCAtNDAsMTUgKzQwLDE1IEBACiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIEF1ZGlvTGlzdGVuZXI6OkF1ZGlvTGlzdGVuZXIoQmFzZUF1ZGlvQ29udGV4dCYgY29u
dGV4dCkKLSAgICA6IG1fcG9zaXRpb25YKEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0LCAicG9z
aXRpb25YIiwgMC4wLCAtRkxUX01BWCwgRkxUX01BWCwgQXV0b21hdGlvblJhdGU6OkFSYXRlKSkK
LSAgICAsIG1fcG9zaXRpb25ZKEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0LCAicG9zaXRpb25Z
IiwgMC4wLCAtRkxUX01BWCwgRkxUX01BWCwgQXV0b21hdGlvblJhdGU6OkFSYXRlKSkKLSAgICAs
IG1fcG9zaXRpb25aKEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0LCAicG9zaXRpb25aIiwgMC4w
LCAtRkxUX01BWCwgRkxUX01BWCwgQXV0b21hdGlvblJhdGU6OkFSYXRlKSkKLSAgICAsIG1fZm9y
d2FyZFgoQXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJmb3J3YXJkWCIsIDAuMCwgLUZMVF9N
QVgsIEZMVF9NQVgsIEF1dG9tYXRpb25SYXRlOjpBUmF0ZSkpCi0gICAgLCBtX2ZvcndhcmRZKEF1
ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0LCAiZm9yd2FyZFkiLCAwLjAsIC1GTFRfTUFYLCBGTFRf
TUFYLCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQotICAgICwgbV9mb3J3YXJkWihBdWRpb1BhcmFt
OjpjcmVhdGUoY29udGV4dCwgImZvcndhcmRaIiwgLTEuMCwgLUZMVF9NQVgsIEZMVF9NQVgsIEF1
dG9tYXRpb25SYXRlOjpBUmF0ZSkpCi0gICAgLCBtX3VwWChBdWRpb1BhcmFtOjpjcmVhdGUoY29u
dGV4dCwgInVwWCIsIDAuMCwgLUZMVF9NQVgsIEZMVF9NQVgsIEF1dG9tYXRpb25SYXRlOjpBUmF0
ZSkpCi0gICAgLCBtX3VwWShBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCwgInVwWSIsIDEuMCwg
LUZMVF9NQVgsIEZMVF9NQVgsIEF1dG9tYXRpb25SYXRlOjpBUmF0ZSkpCi0gICAgLCBtX3VwWihB
dWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCwgInVwWiIsIDAuMCwgLUZMVF9NQVgsIEZMVF9NQVgs
IEF1dG9tYXRpb25SYXRlOjpBUmF0ZSkpCisgICAgOiBtX3Bvc2l0aW9uWChBdWRpb1BhcmFtOjpj
cmVhdGUoY29udGV4dCwgInBvc2l0aW9uWCJfcywgMC4wLCAtRkxUX01BWCwgRkxUX01BWCwgQXV0
b21hdGlvblJhdGU6OkFSYXRlKSkKKyAgICAsIG1fcG9zaXRpb25ZKEF1ZGlvUGFyYW06OmNyZWF0
ZShjb250ZXh0LCAicG9zaXRpb25ZIl9zLCAwLjAsIC1GTFRfTUFYLCBGTFRfTUFYLCBBdXRvbWF0
aW9uUmF0ZTo6QVJhdGUpKQorICAgICwgbV9wb3NpdGlvblooQXVkaW9QYXJhbTo6Y3JlYXRlKGNv
bnRleHQsICJwb3NpdGlvbloiX3MsIDAuMCwgLUZMVF9NQVgsIEZMVF9NQVgsIEF1dG9tYXRpb25S
YXRlOjpBUmF0ZSkpCisgICAgLCBtX2ZvcndhcmRYKEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0
LCAiZm9yd2FyZFgiX3MsIDAuMCwgLUZMVF9NQVgsIEZMVF9NQVgsIEF1dG9tYXRpb25SYXRlOjpB
UmF0ZSkpCisgICAgLCBtX2ZvcndhcmRZKEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0LCAiZm9y
d2FyZFkiX3MsIDAuMCwgLUZMVF9NQVgsIEZMVF9NQVgsIEF1dG9tYXRpb25SYXRlOjpBUmF0ZSkp
CisgICAgLCBtX2ZvcndhcmRaKEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0LCAiZm9yd2FyZFoi
X3MsIC0xLjAsIC1GTFRfTUFYLCBGTFRfTUFYLCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQorICAg
ICwgbV91cFgoQXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJ1cFgiX3MsIDAuMCwgLUZMVF9N
QVgsIEZMVF9NQVgsIEF1dG9tYXRpb25SYXRlOjpBUmF0ZSkpCisgICAgLCBtX3VwWShBdWRpb1Bh
cmFtOjpjcmVhdGUoY29udGV4dCwgInVwWSJfcywgMS4wLCAtRkxUX01BWCwgRkxUX01BWCwgQXV0
b21hdGlvblJhdGU6OkFSYXRlKSkKKyAgICAsIG1fdXBaKEF1ZGlvUGFyYW06OmNyZWF0ZShjb250
ZXh0LCAidXBaIl9zLCAwLjAsIC1GTFRfTUFYLCBGTFRfTUFYLCBBdXRvbWF0aW9uUmF0ZTo6QVJh
dGUpKQogICAgICwgbV9wb3NpdGlvblhWYWx1ZXMoQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1YW50
dW1TaXplKQogICAgICwgbV9wb3NpdGlvbllWYWx1ZXMoQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1
YW50dW1TaXplKQogICAgICwgbV9wb3NpdGlvblpWYWx1ZXMoQXVkaW9VdGlsaXRpZXM6OnJlbmRl
clF1YW50dW1TaXplKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9BdWRpb1BhcmFtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9Q
YXJhbS5jcHAKaW5kZXggYmUxMmJiNWFhMDI3ZTUzYTEzNDY4NDdlNmM5OTNjMjNmOWYwMTg5OC4u
MGQ0NmEzZjkwNGNjNGQwOTM4OGI0ZmIwMTIzM2NiNjA4ZWM3ZjZkMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0uY3BwCkBAIC0xMDksNyArMTA5LDcg
QEAgRXhjZXB0aW9uT3I8dm9pZD4gQXVkaW9QYXJhbTo6c2V0VmFsdWVGb3JCaW5kaW5ncyhmbG9h
dCB2YWx1ZSkKIEV4Y2VwdGlvbk9yPHZvaWQ+IEF1ZGlvUGFyYW06OnNldEF1dG9tYXRpb25SYXRl
KEF1dG9tYXRpb25SYXRlIGF1dG9tYXRpb25SYXRlKQogewogICAgIGlmIChtX2F1dG9tYXRpb25S
YXRlTW9kZSA9PSBBdXRvbWF0aW9uUmF0ZU1vZGU6OkZpeGVkKQotICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJhdXRvbWF0aW9uUmF0ZSBjYW5ub3QgYmUgY2hh
bmdlZCBmb3IgdGhpcyBub2RlIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxp
ZFN0YXRlRXJyb3IsICJhdXRvbWF0aW9uUmF0ZSBjYW5ub3QgYmUgY2hhbmdlZCBmb3IgdGhpcyBu
b2RlIl9zIH07CiAKICAgICBtX2F1dG9tYXRpb25SYXRlID0gYXV0b21hdGlvblJhdGU7CiAgICAg
cmV0dXJuIHsgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
QXVkaW9QYXJhbVRpbWVsaW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
QXVkaW9QYXJhbVRpbWVsaW5lLmNwcAppbmRleCBlNTlhYTdlNmQ4NDJmYWViZmRjMzhhMDU5ZWM5
NWM4MTkzZTU0NmE2Li5jYzM0ZGMzNGU1MDcxZDc0YmQ1MmMxZGI2ODhiYzlmMjE0OGU1M2Q3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW1UaW1l
bGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFt
VGltZWxpbmUuY3BwCkBAIC0xNzIsNyArMTcyLDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gQXVkaW9Q
YXJhbVRpbWVsaW5lOjppbnNlcnRFdmVudChQYXJhbUV2ZW50JiYgZXZlbnQpCiAgICAgICAgICAg
ICAvLyBPdGhlcndpc2UsIG1ha2Ugc3VyZSB0aGlzIGV2ZW50IGRvZXNuJ3Qgb3ZlcmxhcCBhbnkg
ZXhpc3RpbmcgU2V0VmFsdWVDdXJ2ZSBldmVudC4KICAgICAgICAgICAgIGF1dG8gcGFyZW50RXZl
bnRFbmRUaW1lID0gcGFyYW1FdmVudC50aW1lKCkgKyBwYXJhbUV2ZW50LmR1cmF0aW9uKCk7CiAg
ICAgICAgICAgICBpZiAoZXZlbnQudGltZSgpID49IHBhcmFtRXZlbnQudGltZSgpICYmIGV2ZW50
LnRpbWUoKSA8IHBhcmVudEV2ZW50RW5kVGltZSkKLSAgICAgICAgICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IsICJFdmVudHMgYXJlIG92ZXJsYXBwaW5nIiB9Owor
ICAgICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciwgIkV2
ZW50cyBhcmUgb3ZlcmxhcHBpbmciX3MgfTsKICAgICAgICAgfQogCiAgICAgICAgIGlmIChwYXJh
bUV2ZW50LnRpbWUoKSA+IGluc2VydFRpbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0JpcXVhZEZpbHRlck5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9CaXF1YWRGaWx0ZXJOb2RlLmNwcAppbmRleCAxNDBlZDBhMjZlNTc1NTE3
MDE0YWMzM2E2NDMxNTU4OTA5YzAyNzJjLi41ZDczNmNmY2IyNTU5MThmODk3NWQ3YjNiMWY3OGZi
MGIwMzQ1MTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jp
cXVhZEZpbHRlck5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
QmlxdWFkRmlsdGVyTm9kZS5jcHAKQEAgLTc0LDcgKzc0LDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4g
QmlxdWFkRmlsdGVyTm9kZTo6Z2V0RnJlcXVlbmN5UmVzcG9uc2UoY29uc3QgUmVmPEZsb2F0MzJB
cnJheT4KIHsKICAgICB1bnNpZ25lZCBsZW5ndGggPSBmcmVxdWVuY3lIei0+bGVuZ3RoKCk7CiAg
ICAgaWYgKG1hZ1Jlc3BvbnNlLT5sZW5ndGgoKSAhPSBsZW5ndGggfHwgcGhhc2VSZXNwb25zZS0+
bGVuZ3RoKCkgIT0gbGVuZ3RoKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFj
Y2Vzc0Vycm9yLCAiVGhlIGFycmF5cyBwYXNzZWQgYXMgYXJndW1lbnRzIG11c3QgaGF2ZSB0aGUg
c2FtZSBsZW5ndGgiIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNz
RXJyb3IsICJUaGUgYXJyYXlzIHBhc3NlZCBhcyBhcmd1bWVudHMgbXVzdCBoYXZlIHRoZSBzYW1l
IGxlbmd0aCJfcyB9OwogCiAgICAgaWYgKGxlbmd0aCkKICAgICAgICAgYmlxdWFkUHJvY2Vzc29y
KCktPmdldEZyZXF1ZW5jeVJlc3BvbnNlKGxlbmd0aCwgZnJlcXVlbmN5SHotPmRhdGEoKSwgbWFn
UmVzcG9uc2UtPmRhdGEoKSwgcGhhc2VSZXNwb25zZS0+ZGF0YSgpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmlxdWFkUHJvY2Vzc29yLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmlxdWFkUHJvY2Vzc29yLmNwcAppbmRleCA5ZGY2
MjlkN2ViZmRkNmZiNzQxNWYzZWI3Nzk3MjZiYmFiY2E4ZjFjLi5mOWE1NDM0ZTg4MDVkN2RlNDkx
OGE2ZmJkODc1NGQxYTVlZDI3MjE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL0JpcXVhZFByb2Nlc3Nvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9CaXF1YWRQcm9jZXNzb3IuY3BwCkBAIC0zNSwxMCArMzUsMTAgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgIAogQmlxdWFkUHJvY2Vzc29yOjpCaXF1YWRQcm9jZXNzb3IoQmFz
ZUF1ZGlvQ29udGV4dCYgY29udGV4dCwgZmxvYXQgc2FtcGxlUmF0ZSwgc2l6ZV90IG51bWJlck9m
Q2hhbm5lbHMsIGJvb2wgYXV0b0luaXRpYWxpemUpCiAgICAgOiBBdWRpb0RTUEtlcm5lbFByb2Nl
c3NvcihzYW1wbGVSYXRlLCBudW1iZXJPZkNoYW5uZWxzKQotICAgICwgbV9wYXJhbWV0ZXIxKEF1
ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0LCAiZnJlcXVlbmN5IiwgMzUwLjAsIDAuMCwgMC41ICog
c2FtcGxlUmF0ZSwgQXV0b21hdGlvblJhdGU6OkFSYXRlKSkKLSAgICAsIG1fcGFyYW1ldGVyMihB
dWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCwgIlEiLCAxLCAtRkxUX01BWCwgRkxUX01BWCwgQXV0
b21hdGlvblJhdGU6OkFSYXRlKSkKLSAgICAsIG1fcGFyYW1ldGVyMyhBdWRpb1BhcmFtOjpjcmVh
dGUoY29udGV4dCwgImdhaW4iLCAwLjAsIC1GTFRfTUFYLCA0MCAqIHN0ZDo6bG9nMTAoc3RkOjpu
dW1lcmljX2xpbWl0czxmbG9hdD46Om1heCgpKSwgQXV0b21hdGlvblJhdGU6OkFSYXRlKSkKLSAg
ICAsIG1fcGFyYW1ldGVyNChBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCwgImRldHVuZSIsIDAu
MCwgLTE1MzYwMCwgMTUzNjAwLCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQorICAgICwgbV9wYXJh
bWV0ZXIxKEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0LCAiZnJlcXVlbmN5Il9zLCAzNTAuMCwg
MC4wLCAwLjUgKiBzYW1wbGVSYXRlLCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQorICAgICwgbV9w
YXJhbWV0ZXIyKEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0LCAiUSJfcywgMSwgLUZMVF9NQVgs
IEZMVF9NQVgsIEF1dG9tYXRpb25SYXRlOjpBUmF0ZSkpCisgICAgLCBtX3BhcmFtZXRlcjMoQXVk
aW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJnYWluIl9zLCAwLjAsIC1GTFRfTUFYLCA0MCAqIHN0
ZDo6bG9nMTAoc3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46Om1heCgpKSwgQXV0b21hdGlvblJh
dGU6OkFSYXRlKSkKKyAgICAsIG1fcGFyYW1ldGVyNChBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4
dCwgImRldHVuZSJfcywgMC4wLCAtMTUzNjAwLCAxNTM2MDAsIEF1dG9tYXRpb25SYXRlOjpBUmF0
ZSkpCiB7CiAgICAgaWYgKGF1dG9Jbml0aWFsaXplKQogICAgICAgICBpbml0aWFsaXplKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlbGF5UHJvY2Vzc29y
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRGVsYXlQcm9jZXNzb3IuY3Bw
CmluZGV4IGFlZTQwZTk0ZTY1ZGVlNGJmODQ0MjUxMjk0ZTMxNDM3OGFkMDQyYTUuLjFmOTBjYmM5
ZjE5NzA3YTliYzE3YTExM2JjYzRiMWQ1OGY5NDA1MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vRGVsYXlQcm9jZXNzb3IuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vRGVsYXlQcm9jZXNzb3IuY3BwCkBAIC0zNCw3ICszNCw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogRGVsYXlQcm9jZXNzb3I6OkRlbGF5UHJvY2Vzc29yKEJh
c2VBdWRpb0NvbnRleHQmIGNvbnRleHQsIGZsb2F0IHNhbXBsZVJhdGUsIHVuc2lnbmVkIG51bWJl
ck9mQ2hhbm5lbHMsIGRvdWJsZSBtYXhEZWxheVRpbWUpCiAgICAgOiBBdWRpb0RTUEtlcm5lbFBy
b2Nlc3NvcihzYW1wbGVSYXRlLCBudW1iZXJPZkNoYW5uZWxzKQotICAgICwgbV9kZWxheVRpbWUo
QXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJkZWxheVRpbWUiLCAwLjAsIDAuMCwgbWF4RGVs
YXlUaW1lLCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQorICAgICwgbV9kZWxheVRpbWUoQXVkaW9Q
YXJhbTo6Y3JlYXRlKGNvbnRleHQsICJkZWxheVRpbWUiX3MsIDAuMCwgMC4wLCBtYXhEZWxheVRp
bWUsIEF1dG9tYXRpb25SYXRlOjpBUmF0ZSkpCiB7CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vV2F2ZVNoYXBlck5vZGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9XYXZlU2hhcGVyTm9kZS5jcHAKaW5kZXggZmMxNTI4MjdiM2Ew
Y2MyN2E4ZDQzYjU0NTQ0ZmY0YmM1YmM0OWM5Yi4uNjQyOWMzMDUxNjEyYWZlZTgyYjNmY2JkNThi
MmY2MDc0MGZmOTQ4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9XYXZlU2hhcGVyTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9XYXZlU2hhcGVyTm9kZS5jcHAKQEAgLTQzLDcgKzQzLDcgQEAgRXhjZXB0aW9uT3I8UmVmPFdh
dmVTaGFwZXJOb2RlPj4gV2F2ZVNoYXBlck5vZGU6OmNyZWF0ZShCYXNlQXVkaW9Db250ZXh0JiBj
b250ZXgKICAgICBpZiAob3B0aW9ucy5jdXJ2ZSkgewogICAgICAgICBjdXJ2ZSA9IEZsb2F0MzJB
cnJheTo6dHJ5Q3JlYXRlKG9wdGlvbnMuY3VydmUtPmRhdGEoKSwgb3B0aW9ucy5jdXJ2ZS0+c2l6
ZSgpKTsKICAgICAgICAgaWYgKCFjdXJ2ZSkKLSAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBJbnZhbGlkU3RhdGVFcnJvciwgIkludmFsaWQgY3VydmUgcGFyYW1ldGVyIiB9OworICAgICAg
ICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiSW52YWxpZCBjdXJ2
ZSBwYXJhbWV0ZXIiX3MgfTsKICAgICB9CiAKICAgICBhdXRvIG5vZGUgPSBhZG9wdFJlZigqbmV3
IFdhdmVTaGFwZXJOb2RlKGNvbnRleHQpKTsKQEAgLTc2LDcgKzc2LDcgQEAgRXhjZXB0aW9uT3I8
dm9pZD4gV2F2ZVNoYXBlck5vZGU6OnNldEN1cnZlRm9yQmluZGluZ3MoUmVmUHRyPEZsb2F0MzJB
cnJheT4mJiBjdXIKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOyAKICAgICBERUJVR19MT0co
TE9HSURFTlRJRklFUik7CiAgICAgaWYgKGN1cnZlICYmIGN1cnZlLT5sZW5ndGgoKSA8IDIpCi0g
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkxlbmd0aCBvZiBj
dXJ2ZSBhcnJheSBjYW5ub3QgYmUgbGVzcyB0aGFuIDIiIH07CisgICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkxlbmd0aCBvZiBjdXJ2ZSBhcnJheSBjYW5ub3Qg
YmUgbGVzcyB0aGFuIDIiX3MgfTsKIAogICAgIGlmIChjdXJ2ZSkgewogICAgICAgICAvLyBUaGUg
c3BlY2lmaWNhdGlvbiBzdGF0ZXMgdGhhdCB3ZSBzaG91bGQgbWFpbnRhaW4gYW4gaW50ZXJuYWwg
Y29weSBvZiB0aGUgY3VydmUgc28gdGhhdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuY3BwCmluZGV4IGJj
NWJlZGY3MzQyOWEwYjUyZWRjMGVkMWQ0ZTc0NWE5Mzk4ZmVlOTUuLmE3N2NkYWQ0ZDVjZGJiNTQz
MTQ2OGQ1NWRhM2VjMzk2NGMxYzY3M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXV0aG4vQXV0aGVudGljYXRvckNvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JDb29yZGluYXRvci5jcHAKQEAgLTU4
LDcgKzU4LDcgQEAgc3RhdGljIGJvb2wgbmVlZHNBcHBJZFF1aXJrcyhjb25zdCBTdHJpbmcmIGhv
c3QsIGNvbnN0IFN0cmluZyYgYXBwSWQpCiAgICAgLy8gZXhpc3RpbmcgZGV2aWNlIHJlZ2lzdHJh
dGlvbnMgdGhhdCBhdXRoZW50aWNhdGUgJ2dvb2dsZS5jb20nIGFnYWluc3QgJ2dzdGF0aWMuY29t
Jy4gRmlyZWZveCBhbmQgb3RoZXIgYnJvd3NlcnMKICAgICAvLyBoYXZlIGFncmVlZCB0byBncmFu
dCBhbiBleGNlcHRpb24gdG8gdGhlIEFwcElkIHJ1bGVzIGZvciBhIGxpbWl0ZWQgdGltZSBwZXJp
b2QgKDUgeWVhcnMgZnJvbSBKYW51YXJ5LCAyMDE4KSB0bwogICAgIC8vIGFsbG93IGV4aXN0aW5n
IEdvb2dsZSB1c2VycyB0byBzZWFtbGVzc2x5IHRyYW5zaXRpb24gdG8gcHJvcGVyIFdlYkF1dGhO
IGJlaGF2aW9yLgotICAgIGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShob3N0LCAi
Z29vZ2xlLmNvbSIpIHx8IGhvc3QuZW5kc1dpdGhJZ25vcmluZ0FTQ0lJQ2FzZSgiLmdvb2dsZS5j
b20iKSkKKyAgICBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoaG9zdCwgImdvb2ds
ZS5jb20iKSB8fCBob3N0LmVuZHNXaXRoSWdub3JpbmdBU0NJSUNhc2UoIi5nb29nbGUuY29tIl9z
KSkKICAgICAgICAgcmV0dXJuIChhcHBJZCA9PSAiaHR0cHM6Ly93d3cuZ3N0YXRpYy5jb20vc2Vj
dXJpdHlrZXkvb3JpZ2lucy5qc29uIl9zKSB8fCAoYXBwSWQgPT0gImh0dHBzOi8vd3d3LmdzdGF0
aWMuY29tL3NlY3VyaXR5a2V5L2EvZ29vZ2xlLmNvbS9vcmlnaW5zLmpzb24iX3MpOwogICAgIHJl
dHVybiBmYWxzZTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0
aG4vV2ViQXV0aGVudGljYXRpb25VdGlscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1dGhuL1dlYkF1dGhlbnRpY2F0aW9uVXRpbHMuY3BwCmluZGV4IGMxZmJmMDU2Y2M2YWI1ZTE4
Mjk4ODIyNDYzNDQxYjRhODVlYWJkNGMuLjMzMmUyYmU3OTVhMDFmMWUwNDY2MmRjNDExM2JhZWFj
NDQwNzFlNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vV2Vi
QXV0aGVudGljYXRpb25VdGlscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dXRobi9XZWJBdXRoZW50aWNhdGlvblV0aWxzLmNwcApAQCAtMTM4LDcgKzEzOCw3IEBAIGNib3I6
OkNCT1JWYWx1ZTo6TWFwVmFsdWUgYnVpbGRBdHRlc3RhdGlvbk1hcChWZWN0b3I8dWludDhfdD4m
JiBhdXRoRGF0YSwgU3RyaW5nCiAgICAgICAgIGNvbnN0IHNpemVfdCBhYWd1aWRPZmZzZXQgPSBy
cElkSGFzaExlbmd0aCArIGZsYWdzTGVuZ3RoICsgc2lnbkNvdW50ZXJMZW5ndGg7CiAgICAgICAg
IGlmIChhdXRoRGF0YS5zaXplKCkgPj0gYWFndWlkT2Zmc2V0ICsgYWFndWlkTGVuZ3RoKQogICAg
ICAgICAgICAgbWVtc2V0KGF1dGhEYXRhLmRhdGEoKSArIGFhZ3VpZE9mZnNldCwgMCwgYWFndWlk
TGVuZ3RoKTsKLSAgICAgICAgZm9ybWF0ID0gbm9uZUF0dGVzdGF0aW9uVmFsdWU7CisgICAgICAg
IGZvcm1hdCA9IFN0cmluZyB7IG5vbmVBdHRlc3RhdGlvblZhbHVlIH07CiAgICAgICAgIHN0YXRl
bWVudE1hcC5jbGVhcigpOwogICAgIH0KICAgICBhdHRlc3RhdGlvbk9iamVjdE1hcFtjYm9yOjpD
Qk9SVmFsdWUoImF1dGhEYXRhIildID0gY2Jvcjo6Q0JPUlZhbHVlKFdURk1vdmUoYXV0aERhdGEp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9EZXZp
Y2VSZXNwb25zZUNvbnZlcnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhu
L2ZpZG8vRGV2aWNlUmVzcG9uc2VDb252ZXJ0ZXIuY3BwCmluZGV4IGYyMWM1ZWU3YTI1ZjVlOTI3
NTQ0MzFkMzU0YTg3YThkMjFjNTgzYzguLjczNWE5YmY4ZTAzYTg0MmE5N2Q0Njk0YWNjYzZiMjJl
MTNlZmUwNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlk
by9EZXZpY2VSZXNwb25zZUNvbnZlcnRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdXRobi9maWRvL0RldmljZVJlc3BvbnNlQ29udmVydGVyLmNwcApAQCAtMTI2LDcgKzEy
Niw3IEBAIFJlZlB0cjxBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZT4gcmVhZENUQVBN
YWtlQ3JlZGVudGlhbFJlc3BvbnNlKGNvbnN0IFZlCiAgICAgICAgIC8vIFRoZSByZWFzb24gd2h5
IHdlIGNhbid0IGRpcmVjdGx5IHBhc3MgYXV0aGVudGljYXRvckRhdGEvZm9ybWF0L2F0dFN0bXQg
dG8gYnVpbGRBdHRlc3RhdGlvbk9iamVjdAogICAgICAgICAvLyBpcyB0aGF0IHRoZXkgYXJlIENC
T1JWYWx1ZSBpbnN0ZWFkIG9mIHRoZSByYXcgdHlwZS4KICAgICAgICAgLy8gQWxzbywgZm9ybWF0
IGFuZCBhdHRTdG10IGFyZSBvbWl0dGVkIGFzIHRoZXkgYXJlIG5vdCB1c2VmdWwgaW4gbm9uZSBh
dHRlc3RhdGlvbi4KLSAgICAgICAgYXR0ZXN0YXRpb25PYmplY3QgPSBidWlsZEF0dGVzdGF0aW9u
T2JqZWN0KFZlY3Rvcjx1aW50OF90PihhdXRoZW50aWNhdG9yRGF0YS5nZXRCeXRlU3RyaW5nKCkp
LCAiIiwgeyB9LCBhdHRlc3RhdGlvbik7CisgICAgICAgIGF0dGVzdGF0aW9uT2JqZWN0ID0gYnVp
bGRBdHRlc3RhdGlvbk9iamVjdChWZWN0b3I8dWludDhfdD4oYXV0aGVudGljYXRvckRhdGEuZ2V0
Qnl0ZVN0cmluZygpKSwgU3RyaW5nIHsgZW1wdHlTdHJpbmcoKSB9LCB7IH0sIGF0dGVzdGF0aW9u
KTsKICAgICB9IGVsc2UgewogICAgICAgICBDQk9SOjpNYXBWYWx1ZSBhdHRlc3RhdGlvbk9iamVj
dE1hcDsKICAgICAgICAgYXR0ZXN0YXRpb25PYmplY3RNYXBbQ0JPUigiYXV0aERhdGEiKV0gPSBX
VEZNb3ZlKGF1dGhlbnRpY2F0b3JEYXRhKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXV0aG4vZmlkby9QaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dXRobi9maWRvL1Bpbi5jcHAKaW5kZXggOWZhNjczZjE4MmNjY2IwNDYyMTczM2FlMzhjNTIzNmQz
NjJiNWM4OC4uYjQ0ZjkwYjAxNDM0MjdkMTUyNjdkN2M5ZjY3ZjBjZmIwMmMzZmIzZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL1Bpbi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL1Bpbi5jcHAKQEAgLTE3MSw3ICsx
NzEsNyBAQCBzdGQ6Om9wdGlvbmFsPEtleUFncmVlbWVudFJlc3BvbnNlPiBLZXlBZ3JlZW1lbnRS
ZXNwb25zZTo6cGFyc2VGcm9tQ09TRShjb25zdCBDQgogCiAgICAgY29uc3QgYXV0byYgeCA9IHhJ
dC0+c2Vjb25kLmdldEJ5dGVTdHJpbmcoKTsKICAgICBjb25zdCBhdXRvJiB5ID0geUl0LT5zZWNv
bmQuZ2V0Qnl0ZVN0cmluZygpOwotICAgIGF1dG8gcGVlcktleSA9IENyeXB0b0tleUVDOjppbXBv
cnRSYXcoQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6RUNESCwgIlAtMjU2IiwgZW5jb2RlUmF3
UHVibGljS2V5KHgsIHkpLCB0cnVlLCBDcnlwdG9LZXlVc2FnZURlcml2ZUJpdHMpOworICAgIGF1
dG8gcGVlcktleSA9IENyeXB0b0tleUVDOjppbXBvcnRSYXcoQ3J5cHRvQWxnb3JpdGhtSWRlbnRp
Zmllcjo6RUNESCwgIlAtMjU2Il9zLCBlbmNvZGVSYXdQdWJsaWNLZXkoeCwgeSksIHRydWUsIENy
eXB0b0tleVVzYWdlRGVyaXZlQml0cyk7CiAgICAgaWYgKCFwZWVyS2V5KQogICAgICAgICByZXR1
cm4gc3RkOjpudWxsb3B0OwogCkBAIC0yNDcsNyArMjQ3LDcgQEAgc3RkOjpvcHRpb25hbDxUb2tl
blJlcXVlc3Q+IFRva2VuUmVxdWVzdDo6dHJ5Q3JlYXRlKGNvbnN0IENTdHJpbmcmIHBpbiwgY29u
c3QgQ3IKICAgICAvLyBUaGUgZm9sbG93aW5nIGltcGxlbWVudHMgU2VjdGlvbiA1LjUuNCBHZXR0
aW5nIHNoYXJlZFNlY3JldCBmcm9tIEF1dGhlbnRpY2F0b3IuCiAgICAgLy8gaHR0cHM6Ly9maWRv
YWxsaWFuY2Uub3JnL3NwZWNzL2ZpZG8tdjIuMC1wcy0yMDE5MDEzMC9maWRvLWNsaWVudC10by1h
dXRoZW50aWNhdG9yLXByb3RvY29sLXYyLjAtcHMtMjAxOTAxMzAuaHRtbCNnZXR0aW5nU2hhcmVk
U2VjcmV0CiAgICAgLy8gMS4gR2VuZXJhdGUgYSBQMjU2IGtleSBwYWlyLgotICAgIGF1dG8ga2V5
UGFpclJlc3VsdCA9IENyeXB0b0tleUVDOjpnZW5lcmF0ZVBhaXIoQ3J5cHRvQWxnb3JpdGhtSWRl
bnRpZmllcjo6RUNESCwgIlAtMjU2IiwgdHJ1ZSwgQ3J5cHRvS2V5VXNhZ2VEZXJpdmVCaXRzKTsK
KyAgICBhdXRvIGtleVBhaXJSZXN1bHQgPSBDcnlwdG9LZXlFQzo6Z2VuZXJhdGVQYWlyKENyeXB0
b0FsZ29yaXRobUlkZW50aWZpZXI6OkVDREgsICJQLTI1NiJfcywgdHJ1ZSwgQ3J5cHRvS2V5VXNh
Z2VEZXJpdmVCaXRzKTsKICAgICBBU1NFUlQoIWtleVBhaXJSZXN1bHQuaGFzRXhjZXB0aW9uKCkp
OwogICAgIGF1dG8ga2V5UGFpciA9IGtleVBhaXJSZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9VMmZS
ZXNwb25zZUNvbnZlcnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2Zp
ZG8vVTJmUmVzcG9uc2VDb252ZXJ0ZXIuY3BwCmluZGV4IDNmMzY2YWEyNzA2ODQ5NzQ1YWNhMjgx
NzliNTk5NmU2NjZlZTI2ZWQuLmE0ZmRlMTVmZmJmZDU1NTc3YjIyOWQ4NjQ5YzY3NjQ4Y2U3ZWI5
NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9VMmZS
ZXNwb25zZUNvbnZlcnRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRo
bi9maWRvL1UyZlJlc3BvbnNlQ29udmVydGVyLmNwcApAQCAtMTU4LDcgKzE1OCw3IEBAIFJlZlB0
cjxBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZT4gcmVhZFUyZlJlZ2lzdGVyUmVzcG9u
c2UoY29uc3QgU3RyaW5nJiByCiAgICAgaWYgKGZpZG9BdHRlc3RhdGlvblN0YXRlbWVudC5lbXB0
eSgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIGF1dG8gYXR0ZXN0YXRpb25PYmpl
Y3QgPSBidWlsZEF0dGVzdGF0aW9uT2JqZWN0KFdURk1vdmUoYXV0aERhdGEpLCAiZmlkby11MmYi
LCBXVEZNb3ZlKGZpZG9BdHRlc3RhdGlvblN0YXRlbWVudCksIGF0dGVzdGF0aW9uKTsKKyAgICBh
dXRvIGF0dGVzdGF0aW9uT2JqZWN0ID0gYnVpbGRBdHRlc3RhdGlvbk9iamVjdChXVEZNb3ZlKGF1
dGhEYXRhKSwgImZpZG8tdTJmIl9zLCBXVEZNb3ZlKGZpZG9BdHRlc3RhdGlvblN0YXRlbWVudCks
IGF0dGVzdGF0aW9uKTsKIAogICAgIHJldHVybiBBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNw
b25zZTo6Y3JlYXRlKGNyZWRlbnRpYWxJZCwgYXR0ZXN0YXRpb25PYmplY3QsIGF0dGFjaG1lbnQp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9DaGFu
Z2VWZXJzaW9uV3JhcHBlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNl
L0NoYW5nZVZlcnNpb25XcmFwcGVyLmNwcAppbmRleCA5NGVmNTA5NTU4YjZjMjY1OWZkZmEzZDY4
OWI0YjBkMjgzNzNkOGE4Li4zNWMwZTE2ZTNlMzUxMzIzM2MyMmQ4ZjNhYTU2NDUyMDNkOTg0NzQ3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0NoYW5nZVZl
cnNpb25XcmFwcGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNl
L0NoYW5nZVZlcnNpb25XcmFwcGVyLmNwcApAQCAtNTMsNyArNTMsNyBAQCBib29sIENoYW5nZVZl
cnNpb25XcmFwcGVyOjpwZXJmb3JtUHJlZmxpZ2h0KFNRTFRyYW5zYWN0aW9uJiB0cmFuc2FjdGlv
bikKICAgICB9CiAKICAgICBpZiAoYWN0dWFsVmVyc2lvbiAhPSBtX29sZFZlcnNpb24pIHsKLSAg
ICAgICAgbV9zcWxFcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OlZFUlNJT05fRVJS
LCAiY3VycmVudCB2ZXJzaW9uIG9mIHRoZSBkYXRhYmFzZSBhbmQgYG9sZFZlcnNpb25gIGFyZ3Vt
ZW50IGRvIG5vdCBtYXRjaCIpOworICAgICAgICBtX3NxbEVycm9yID0gU1FMRXJyb3I6OmNyZWF0
ZShTUUxFcnJvcjo6VkVSU0lPTl9FUlIsICJjdXJyZW50IHZlcnNpb24gb2YgdGhlIGRhdGFiYXNl
IGFuZCBgb2xkVmVyc2lvbmAgYXJndW1lbnQgZG8gbm90IG1hdGNoIl9zKTsKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJkYXRhYmFzZS9ET01XaW5kb3dXZWJEYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmRhdGFiYXNlL0RPTVdpbmRvd1dlYkRhdGFiYXNlLmNwcAppbmRleCA4YWMyYWQ2YWY1
ZTRhM2JmZjg0YzI2NzZjMGUyNGU2YmJjMmYzYjVjLi41NmFjMGU0MjJkZDRkZjkzNmUzY2NiMDBj
ZTVmNDVjM2Q2NTU0MTViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRh
dGFiYXNlL0RPTVdpbmRvd1dlYkRhdGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmRhdGFiYXNlL0RPTVdpbmRvd1dlYkRhdGFiYXNlLmNwcApAQCAtNDUsNyArNDUsNyBA
QCBFeGNlcHRpb25PcjxSZWZQdHI8RGF0YWJhc2U+PiBET01XaW5kb3dXZWJEYXRhYmFzZTo6b3Bl
bkRhdGFiYXNlKERPTVdpbmRvdyYgd2luZAogICAgIGF1dG8qIGRvY3VtZW50ID0gd2luZG93LmRv
Y3VtZW50KCk7CiAgICAgaWYgKCFkb2N1bWVudCkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7
IFNlY3VyaXR5RXJyb3IgfTsKLSAgICBkb2N1bWVudC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2Fn
ZVNvdXJjZTo6U3RvcmFnZSwgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCAiV2ViIFNRTCBpcyBkZXBy
ZWNhdGVkLiBQbGVhc2UgdXNlIEluZGV4ZWREQiBpbnN0ZWFkLiIpOworICAgIGRvY3VtZW50LT5h
ZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpTdG9yYWdlLCBNZXNzYWdlTGV2ZWw6Oldh
cm5pbmcsICJXZWIgU1FMIGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgSW5kZXhlZERCIGluc3Rl
YWQuIl9zKTsKIAogICAgIGF1dG8mIHNlY3VyaXR5T3JpZ2luID0gZG9jdW1lbnQtPnNlY3VyaXR5
T3JpZ2luKCk7CiAgICAgaWYgKCFzZWN1cml0eU9yaWdpbi5jYW5BY2Nlc3NEYXRhYmFzZSgmZG9j
dW1lbnQtPnRvcE9yaWdpbigpKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRh
YmFzZS9EYXRhYmFzZS5jcHAKaW5kZXggN2NmYjFjNDEwZTY3ZDBiMDdmN2UzNDk0ODJkYzBlZTlm
NmIxMTZkZi4uY2QwYzQxNGZiMzEwMDI0MTNlYTJiZmRkMDk4MzA1ZDUxYjlmMWZkMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5jcHAKQEAgLTE5
OCw3ICsxOTgsNyBAQCBEYXRhYmFzZTo6RGF0YWJhc2UoRGF0YWJhc2VDb250ZXh0JiBjb250ZXh0
LCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgZQogICAgICwgbV9kaXNwbGF5TmFt
ZShkaXNwbGF5TmFtZS5pc29sYXRlZENvcHkoKSkKICAgICAsIG1fZXN0aW1hdGVkU2l6ZShlc3Rp
bWF0ZWRTaXplKQogICAgICwgbV9maWxlbmFtZShEYXRhYmFzZU1hbmFnZXI6OnNpbmdsZXRvbigp
LmZ1bGxQYXRoRm9yRGF0YWJhc2UobV9kb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKSwgbV9uYW1l
KSkKLSAgICAsIG1fZGF0YWJhc2VBdXRob3JpemVyKERhdGFiYXNlQXV0aG9yaXplcjo6Y3JlYXRl
KHVucXVhbGlmaWVkSW5mb1RhYmxlTmFtZSkpCisgICAgLCBtX2RhdGFiYXNlQXV0aG9yaXplcihE
YXRhYmFzZUF1dGhvcml6ZXI6OmNyZWF0ZShTdHJpbmcgeyB1bnF1YWxpZmllZEluZm9UYWJsZU5h
bWUgfSkpCiB7CiAgICAgewogICAgICAgICBMb2NrZXIgbG9ja2VyIHsgZ3VpZExvY2sgfTsKQEAg
LTY4Nyw3ICs2ODcsNyBAQCB2b2lkIERhdGFiYXNlOjpydW5UcmFuc2FjdGlvbihSZWZQdHI8U1FM
VHJhbnNhY3Rpb25DYWxsYmFjaz4mJiBjYWxsYmFjaywgUmVmUHRyPAogICAgIGlmICghbV9pc1Ry
YW5zYWN0aW9uUXVldWVFbmFibGVkKSB7CiAgICAgICAgIGlmIChlcnJvckNhbGxiYWNrKSB7CiAg
ICAgICAgICAgICBtX2RvY3VtZW50LT5ldmVudExvb3AoKS5xdWV1ZVRhc2soVGFza1NvdXJjZTo6
TmV0d29ya2luZywgW2Vycm9yQ2FsbGJhY2sgPSBSZWYgeyAqZXJyb3JDYWxsYmFjayB9XSgpIHsK
LSAgICAgICAgICAgICAgICBlcnJvckNhbGxiYWNrLT5oYW5kbGVFdmVudChTUUxFcnJvcjo6Y3Jl
YXRlKFNRTEVycm9yOjpVTktOT1dOX0VSUiwgImRhdGFiYXNlIGhhcyBiZWVuIGNsb3NlZCIpKTsK
KyAgICAgICAgICAgICAgICBlcnJvckNhbGxiYWNrLT5oYW5kbGVFdmVudChTUUxFcnJvcjo6Y3Jl
YXRlKFNRTEVycm9yOjpVTktOT1dOX0VSUiwgImRhdGFiYXNlIGhhcyBiZWVuIGNsb3NlZCJfcykp
OwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZUF1dGhvcml6ZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZUF1dGhvcml6
ZXIuY3BwCmluZGV4IGUyZGM3MDZmNWQ5NjVkMmQ3YTVjYmE4NzIxNjZjZjUzYTk4MDhhMWYuLmRj
ZjllYjk1MmRkZDAzYjRiMGQ3YWQ4NmE2Y2NkNWZiNDNlM2RjZWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VBdXRob3JpemVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlQXV0aG9yaXplci5j
cHAKQEAgLTYyLDY0ICs2Miw2NCBAQCB2b2lkIERhdGFiYXNlQXV0aG9yaXplcjo6YWRkQWxsb3dl
ZEZ1bmN0aW9ucygpCiB7CiAgICAgLy8gU1FMaXRlIGZ1bmN0aW9ucyB1c2VkIHRvIGhlbHAgaW1w
bGVtZW50IHNvbWUgb3BlcmF0aW9ucwogICAgIC8vIEFMVEVSIFRBQkxFIGhlbHBlcnMKLSAgICBt
X2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJzcWxpdGVfcmVuYW1lX3RhYmxlIik7Ci0gICAgbV9hbGxv
d2VkRnVuY3Rpb25zLmFkZCgic3FsaXRlX3JlbmFtZV90cmlnZ2VyIik7CisgICAgbV9hbGxvd2Vk
RnVuY3Rpb25zLmFkZCgic3FsaXRlX3JlbmFtZV90YWJsZSJfcyk7CisgICAgbV9hbGxvd2VkRnVu
Y3Rpb25zLmFkZCgic3FsaXRlX3JlbmFtZV90cmlnZ2VyIl9zKTsKICAgICAvLyBHTE9CIGhlbHBl
cnMKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJnbG9iIik7CisgICAgbV9hbGxvd2VkRnVu
Y3Rpb25zLmFkZCgiZ2xvYiJfcyk7CiAKICAgICAvLyBTUUxpdGUgY29yZSBmdW5jdGlvbnMKLSAg
ICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJhYnMiKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMu
YWRkKCJjaGFuZ2VzIik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgiY29hbGVzY2UiKTsK
LSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJnbG9iIik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rp
b25zLmFkZCgiaWZudWxsIik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgiaGV4Iik7Ci0g
ICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgibGFzdF9pbnNlcnRfcm93aWQiKTsKLSAgICBtX2Fs
bG93ZWRGdW5jdGlvbnMuYWRkKCJsZW5ndGgiKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRk
KCJsaWtlIik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgibG93ZXIiKTsKLSAgICBtX2Fs
bG93ZWRGdW5jdGlvbnMuYWRkKCJsdHJpbSIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQo
Im1heCIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoIm1pbiIpOwotICAgIG1fYWxsb3dl
ZEZ1bmN0aW9ucy5hZGQoIm51bGxpZiIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInF1
b3RlIik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgicmVwbGFjZSIpOwotICAgIG1fYWxs
b3dlZEZ1bmN0aW9ucy5hZGQoInJvdW5kIik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgi
cnRyaW0iKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJzb3VuZGV4Iik7Ci0gICAgbV9h
bGxvd2VkRnVuY3Rpb25zLmFkZCgic3FsaXRlX3NvdXJjZV9pZCIpOwotICAgIG1fYWxsb3dlZEZ1
bmN0aW9ucy5hZGQoInNxbGl0ZV92ZXJzaW9uIik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFk
ZCgic3Vic3RyIik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgidG90YWxfY2hhbmdlcyIp
OwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInRyaW0iKTsKLSAgICBtX2FsbG93ZWRGdW5j
dGlvbnMuYWRkKCJ0eXBlb2YiKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJ1cHBlciIp
OwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInplcm9ibG9iIik7CisgICAgbV9hbGxvd2Vk
RnVuY3Rpb25zLmFkZCgiYWJzIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJjaGFu
Z2VzIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJjb2FsZXNjZSJfcyk7CisgICAg
bV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgiZ2xvYiJfcyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25z
LmFkZCgiaWZudWxsIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJoZXgiX3MpOwor
ICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoImxhc3RfaW5zZXJ0X3Jvd2lkIl9zKTsKKyAgICBt
X2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJsZW5ndGgiX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9u
cy5hZGQoImxpa2UiX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoImxvd2VyIl9zKTsK
KyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJsdHJpbSJfcyk7CisgICAgbV9hbGxvd2VkRnVu
Y3Rpb25zLmFkZCgibWF4Il9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJtaW4iX3Mp
OworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoIm51bGxpZiJfcyk7CisgICAgbV9hbGxvd2Vk
RnVuY3Rpb25zLmFkZCgicXVvdGUiX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInJl
cGxhY2UiX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInJvdW5kIl9zKTsKKyAgICBt
X2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJydHJpbSJfcyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25z
LmFkZCgic291bmRleCJfcyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgic3FsaXRlX3Nv
dXJjZV9pZCJfcyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgic3FsaXRlX3ZlcnNpb24i
X3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInN1YnN0ciJfcyk7CisgICAgbV9hbGxv
d2VkRnVuY3Rpb25zLmFkZCgidG90YWxfY2hhbmdlcyJfcyk7CisgICAgbV9hbGxvd2VkRnVuY3Rp
b25zLmFkZCgidHJpbSJfcyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgidHlwZW9mIl9z
KTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJ1cHBlciJfcyk7CisgICAgbV9hbGxvd2Vk
RnVuY3Rpb25zLmFkZCgiemVyb2Jsb2IiX3MpOwogCiAgICAgLy8gU1FMaXRlIGRhdGUgYW5kIHRp
bWUgZnVuY3Rpb25zCi0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgiZGF0ZSIpOwotICAgIG1f
YWxsb3dlZEZ1bmN0aW9ucy5hZGQoInRpbWUiKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRk
KCJkYXRldGltZSIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoImp1bGlhbmRheSIpOwot
ICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInN0cmZ0aW1lIik7CisgICAgbV9hbGxvd2VkRnVu
Y3Rpb25zLmFkZCgiZGF0ZSJfcyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgidGltZSJf
cyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgiZGF0ZXRpbWUiX3MpOworICAgIG1fYWxs
b3dlZEZ1bmN0aW9ucy5hZGQoImp1bGlhbmRheSJfcyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25z
LmFkZCgic3RyZnRpbWUiX3MpOwogCiAgICAgLy8gU1FMaXRlIGFnZ3JlZ2F0ZSBmdW5jdGlvbnMK
ICAgICAvLyBtYXgoKSBhbmQgbWluKCkgYXJlIGFscmVhZHkgaW4gdGhlIGxpc3QKLSAgICBtX2Fs
bG93ZWRGdW5jdGlvbnMuYWRkKCJhdmciKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJj
b3VudCIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoImdyb3VwX2NvbmNhdCIpOwotICAg
IG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInN1bSIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5h
ZGQoInRvdGFsIik7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgiYXZnIl9zKTsKKyAgICBt
X2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJjb3VudCJfcyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25z
LmFkZCgiZ3JvdXBfY29uY2F0Il9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJzdW0i
X3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInRvdGFsIl9zKTsKIAogICAgIC8vIFNR
TGl0ZSBGVFMgZnVuY3Rpb25zCi0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgibWF0Y2giKTsK
LSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJzbmlwcGV0Iik7Ci0gICAgbV9hbGxvd2VkRnVu
Y3Rpb25zLmFkZCgib2Zmc2V0cyIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoIm9wdGlt
aXplIik7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgibWF0Y2giX3MpOworICAgIG1fYWxs
b3dlZEZ1bmN0aW9ucy5hZGQoInNuaXBwZXQiX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5h
ZGQoIm9mZnNldHMiX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoIm9wdGltaXplIl9z
KTsKIAogICAgIC8vIFNRTGl0ZSBJQ1UgZnVuY3Rpb25zCiAgICAgLy8gbGlrZSgpLCBsb3dlcigp
IGFuZCB1cHBlcigpIGFyZSBhbHJlYWR5IGluIHRoZSBsaXN0Ci0gICAgbV9hbGxvd2VkRnVuY3Rp
b25zLmFkZCgicmVnZXhwIik7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgicmVnZXhwIl9z
KTsKIH0KIAogaW50IERhdGFiYXNlQXV0aG9yaXplcjo6Y3JlYXRlVGFibGUoY29uc3QgU3RyaW5n
JiB0YWJsZU5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFi
YXNlL0RhdGFiYXNlVHJhY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFi
YXNlL0RhdGFiYXNlVHJhY2tlci5jcHAKaW5kZXggOWViMzkxYzZkMGJkNmQ0ODYwNTEwZWRhYjcy
ODkzMzk5NTA2YmM3Mi4uYTRmMGM3NDQ1MjM3MWE0ZGJkOGRmMDg2MDY5ZWNkMTBhYmEzMjI5ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZVRy
YWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJh
c2VUcmFja2VyLmNwcApAQCAtOTEsNyArOTEsNyBAQCBEYXRhYmFzZVRyYWNrZXI6OkRhdGFiYXNl
VHJhY2tlcihjb25zdCBTdHJpbmcmIGRhdGFiYXNlUGF0aCkKIAogU3RyaW5nIERhdGFiYXNlVHJh
Y2tlcjo6dHJhY2tlckRhdGFiYXNlUGF0aCgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIFNRTGl0ZUZp
bGVTeXN0ZW06OmFwcGVuZERhdGFiYXNlRmlsZU5hbWVUb1BhdGgobV9kYXRhYmFzZURpcmVjdG9y
eVBhdGguaXNvbGF0ZWRDb3B5KCksICJEYXRhYmFzZXMuZGIiKTsKKyAgICByZXR1cm4gU1FMaXRl
RmlsZVN5c3RlbTo6YXBwZW5kRGF0YWJhc2VGaWxlTmFtZVRvUGF0aChtX2RhdGFiYXNlRGlyZWN0
b3J5UGF0aC5pc29sYXRlZENvcHkoKSwgIkRhdGFiYXNlcy5kYiJfcyk7CiB9CiAKIHZvaWQgRGF0
YWJhc2VUcmFja2VyOjpvcGVuVHJhY2tlckRhdGFiYXNlKFRyYWNrZXJDcmVhdGlvbkFjdGlvbiBj
cmVhdGVBY3Rpb24pCkBAIC0xMTgsMTQgKzExOCwxNCBAQCB2b2lkIERhdGFiYXNlVHJhY2tlcjo6
b3BlblRyYWNrZXJEYXRhYmFzZShUcmFja2VyQ3JlYXRpb25BY3Rpb24gY3JlYXRlQWN0aW9uKQog
ICAgIH0KICAgICBtX2RhdGFiYXNlLmRpc2FibGVUaHJlYWRpbmdDaGVja3MoKTsKIAotICAgIGlm
ICghbV9kYXRhYmFzZS50YWJsZUV4aXN0cygiT3JpZ2lucyIpKSB7CisgICAgaWYgKCFtX2RhdGFi
YXNlLnRhYmxlRXhpc3RzKCJPcmlnaW5zIl9zKSkgewogICAgICAgICBpZiAoIW1fZGF0YWJhc2Uu
ZXhlY3V0ZUNvbW1hbmQoIkNSRUFURSBUQUJMRSBPcmlnaW5zIChvcmlnaW4gVEVYVCBVTklRVUUg
T04gQ09ORkxJQ1QgUkVQTEFDRSwgcXVvdGEgSU5URUdFUiBOT1QgTlVMTCBPTiBDT05GTElDVCBG
QUlMKTsiX3MpKSB7CiAgICAgICAgICAgICAvLyBGSVhNRTogYW5kIGhlcmUKICAgICAgICAgICAg
IExPR19FUlJPUigiRmFpbGVkIHRvIGNyZWF0ZSBPcmlnaW5zIHRhYmxlIik7CiAgICAgICAgIH0K
ICAgICB9CiAKLSAgICBpZiAoIW1fZGF0YWJhc2UudGFibGVFeGlzdHMoIkRhdGFiYXNlcyIpKSB7
CisgICAgaWYgKCFtX2RhdGFiYXNlLnRhYmxlRXhpc3RzKCJEYXRhYmFzZXMiX3MpKSB7CiAgICAg
ICAgIGlmICghbV9kYXRhYmFzZS5leGVjdXRlQ29tbWFuZCgiQ1JFQVRFIFRBQkxFIERhdGFiYXNl
cyAoZ3VpZCBJTlRFR0VSIFBSSU1BUlkgS0VZIEFVVE9JTkNSRU1FTlQsIG9yaWdpbiBURVhULCBu
YW1lIFRFWFQsIGRpc3BsYXlOYW1lIFRFWFQsIGVzdGltYXRlZFNpemUgSU5URUdFUiwgcGF0aCBU
RVhUKTsiX3MpKSB7CiAgICAgICAgICAgICAvLyBGSVhNRTogYW5kIGhlcmUKICAgICAgICAgICAg
IExPR19FUlJPUigiRmFpbGVkIHRvIGNyZWF0ZSBEYXRhYmFzZXMgdGFibGUiKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMU3RhdGVtZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMU3RhdGVtZW50LmNwcAppbmRl
eCBiNzgwNTgyZGM5Nzk1OTIzMzQ2M2Y4ZmQ4YWMxOWQwMzlhZWI4ODIwLi5kOTFkMDMxNDU5MTVi
MjFhMzU3ZTg1ZjA1Y2NiYTQwZTVkYmVhMTFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmRhdGFiYXNlL1NRTFN0YXRlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxTdGF0ZW1lbnQuY3BwCkBAIC0xMjYsNyArMTI2LDcgQEAg
Ym9vbCBTUUxTdGF0ZW1lbnQ6OmV4ZWN1dGUoRGF0YWJhc2UmIGRiKQogICAgIC8vIElmIHRoaXMg
aXMgdGhlIGNhc2UsIHRoZXkgbWlnaHQgYmUgdHJ5aW5nIHRvIGRvIHNvbWV0aGluZyBmaXNoeSBv
ciBtYWxpY2lvdXMKICAgICBpZiAoc3RhdGVtZW50LT5iaW5kUGFyYW1ldGVyQ291bnQoKSAhPSBt
X2FyZ3VtZW50cy5zaXplKCkpIHsKICAgICAgICAgTE9HKFN0b3JhZ2VBUEksICJCaW5kIHBhcmFt
ZXRlciBjb3VudCBkb2Vzbid0IG1hdGNoIG51bWJlciBvZiBxdWVzdGlvbiBtYXJrcyIpOwotICAg
ICAgICBtX2Vycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6U1lOVEFYX0VSUiwgIm51
bWJlciBvZiAnPydzIGluIHN0YXRlbWVudCBzdHJpbmcgZG9lcyBub3QgbWF0Y2ggYXJndW1lbnQg
Y291bnQiKTsKKyAgICAgICAgbV9lcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OlNZ
TlRBWF9FUlIsICJudW1iZXIgb2YgJz8ncyBpbiBzdGF0ZW1lbnQgc3RyaW5nIGRvZXMgbm90IG1h
dGNoIGFyZ3VtZW50IGNvdW50Il9zKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApA
QCAtMjM0LDE5ICsyMzQsMTkgQEAgYm9vbCBTUUxTdGF0ZW1lbnQ6OnBlcmZvcm1DYWxsYmFjayhT
UUxUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24pCiB2b2lkIFNRTFN0YXRlbWVudDo6c2V0RGF0YWJh
c2VEZWxldGVkRXJyb3IoKQogewogICAgIEFTU0VSVCghbV9lcnJvciAmJiAhbV9yZXN1bHRTZXQp
OwotICAgIG1fZXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpVTktOT1dOX0VSUiwg
InVuYWJsZSB0byBleGVjdXRlIHN0YXRlbWVudCwgYmVjYXVzZSB0aGUgdXNlciBkZWxldGVkIHRo
ZSBkYXRhYmFzZSIpOworICAgIG1fZXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpV
TktOT1dOX0VSUiwgInVuYWJsZSB0byBleGVjdXRlIHN0YXRlbWVudCwgYmVjYXVzZSB0aGUgdXNl
ciBkZWxldGVkIHRoZSBkYXRhYmFzZSJfcyk7CiB9CiAKIHZvaWQgU1FMU3RhdGVtZW50OjpzZXRW
ZXJzaW9uTWlzbWF0Y2hlZEVycm9yKCkKIHsKICAgICBBU1NFUlQoIW1fZXJyb3IgJiYgIW1fcmVz
dWx0U2V0KTsKLSAgICBtX2Vycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6VkVSU0lP
Tl9FUlIsICJjdXJyZW50IHZlcnNpb24gb2YgdGhlIGRhdGFiYXNlIGFuZCBgb2xkVmVyc2lvbmAg
YXJndW1lbnQgZG8gbm90IG1hdGNoIik7CisgICAgbV9lcnJvciA9IFNRTEVycm9yOjpjcmVhdGUo
U1FMRXJyb3I6OlZFUlNJT05fRVJSLCAiY3VycmVudCB2ZXJzaW9uIG9mIHRoZSBkYXRhYmFzZSBh
bmQgYG9sZFZlcnNpb25gIGFyZ3VtZW50IGRvIG5vdCBtYXRjaCJfcyk7CiB9CiAKIHZvaWQgU1FM
U3RhdGVtZW50OjpzZXRGYWlsdXJlRHVlVG9RdW90YSgpCiB7CiAgICAgQVNTRVJUKCFtX2Vycm9y
ICYmICFtX3Jlc3VsdFNldCk7Ci0gICAgbV9lcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJy
b3I6OlFVT1RBX0VSUiwgInRoZXJlIHdhcyBub3QgZW5vdWdoIHJlbWFpbmluZyBzdG9yYWdlIHNw
YWNlLCBvciB0aGUgc3RvcmFnZSBxdW90YSB3YXMgcmVhY2hlZCBhbmQgdGhlIHVzZXIgZGVjbGlu
ZWQgdG8gYWxsb3cgbW9yZSBzcGFjZSIpOworICAgIG1fZXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRl
KFNRTEVycm9yOjpRVU9UQV9FUlIsICJ0aGVyZSB3YXMgbm90IGVub3VnaCByZW1haW5pbmcgc3Rv
cmFnZSBzcGFjZSwgb3IgdGhlIHN0b3JhZ2UgcXVvdGEgd2FzIHJlYWNoZWQgYW5kIHRoZSB1c2Vy
IGRlY2xpbmVkIHRvIGFsbG93IG1vcmUgc3BhY2UiX3MpOwogfQogCiB2b2lkIFNRTFN0YXRlbWVu
dDo6Y2xlYXJGYWlsdXJlRHVlVG9RdW90YSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb24uY3BwCmluZGV4IDY4MzJhY2E5MGVkNmQ5
ZWI4MWFiOWYzNTU5NTkzYmY0NjQzMGZkMGYuLmU5YWQ3OWYzMjgyZTg0NTlkZDdkMzNlZmYwMmI2
YjU3OWYwMjZjMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJh
c2UvU1FMVHJhbnNhY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0
YWJhc2UvU1FMVHJhbnNhY3Rpb24uY3BwCkBAIC0xMzcsNyArMTM3LDcgQEAgdm9pZCBTUUxUcmFu
c2FjdGlvbjo6Y2FsbEVycm9yQ2FsbGJhY2tEdWVUb0ludGVycnVwdGlvbigpCiAgICAgICAgIHJl
dHVybjsKIAogICAgIG1fZGF0YWJhc2UtPmRvY3VtZW50KCkuZXZlbnRMb29wKCkucXVldWVUYXNr
KFRhc2tTb3VyY2U6Ok5ldHdvcmtpbmcsIFtlcnJvckNhbGxiYWNrID0gV1RGTW92ZShlcnJvckNh
bGxiYWNrKV0oKSBtdXRhYmxlIHsKLSAgICAgICAgZXJyb3JDYWxsYmFjay0+aGFuZGxlRXZlbnQo
U1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6REFUQUJBU0VfRVJSLCAidGhlIGRhdGFiYXNlIHdh
cyBjbG9zZWQiKSk7CisgICAgICAgIGVycm9yQ2FsbGJhY2stPmhhbmRsZUV2ZW50KFNRTEVycm9y
OjpjcmVhdGUoU1FMRXJyb3I6OkRBVEFCQVNFX0VSUiwgInRoZSBkYXRhYmFzZSB3YXMgY2xvc2Vk
Il9zKSk7CiAgICAgfSk7CiB9CiAKQEAgLTIzNiw3ICsyMzYsNyBAQCB2b2lkIFNRTFRyYW5zYWN0
aW9uOjpvcGVuVHJhbnNhY3Rpb25BbmRQcmVmbGlnaHQoKQogCiAgICAgLy8gSWYgdGhlIGRhdGFi
YXNlIHdhcyBkZWxldGVkLCBqdW1wIHRvIHRoZSBlcnJvciBjYWxsYmFjawogICAgIGlmIChtX2Rh
dGFiYXNlLT5kZWxldGVkKCkpIHsKLSAgICAgICAgbV90cmFuc2FjdGlvbkVycm9yID0gU1FMRXJy
b3I6OmNyZWF0ZShTUUxFcnJvcjo6VU5LTk9XTl9FUlIsICJ1bmFibGUgdG8gb3BlbiBhIHRyYW5z
YWN0aW9uLCBiZWNhdXNlIHRoZSB1c2VyIGRlbGV0ZWQgdGhlIGRhdGFiYXNlIik7CisgICAgICAg
IG1fdHJhbnNhY3Rpb25FcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OlVOS05PV05f
RVJSLCAidW5hYmxlIHRvIG9wZW4gYSB0cmFuc2FjdGlvbiwgYmVjYXVzZSB0aGUgdXNlciBkZWxl
dGVkIHRoZSBkYXRhYmFzZSJfcyk7CiAKICAgICAgICAgaGFuZGxlVHJhbnNhY3Rpb25FcnJvcigp
OwogICAgICAgICByZXR1cm47CkBAIC0yOTAsNyArMjkwLDcgQEAgdm9pZCBTUUxUcmFuc2FjdGlv
bjo6b3BlblRyYW5zYWN0aW9uQW5kUHJlZmxpZ2h0KCkKICAgICAgICAgbV9kYXRhYmFzZS0+ZW5h
YmxlQXV0aG9yaXplcigpOwogICAgICAgICBtX3RyYW5zYWN0aW9uRXJyb3IgPSBtX3dyYXBwZXIt
PnNxbEVycm9yKCk7CiAgICAgICAgIGlmICghbV90cmFuc2FjdGlvbkVycm9yKQotICAgICAgICAg
ICAgbV90cmFuc2FjdGlvbkVycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6VU5LTk9X
Tl9FUlIsICJ1bmtub3duIGVycm9yIG9jY3VycmVkIGR1cmluZyB0cmFuc2FjdGlvbiBwcmVmbGln
aHQiKTsKKyAgICAgICAgICAgIG1fdHJhbnNhY3Rpb25FcnJvciA9IFNRTEVycm9yOjpjcmVhdGUo
U1FMRXJyb3I6OlVOS05PV05fRVJSLCAidW5rbm93biBlcnJvciBvY2N1cnJlZCBkdXJpbmcgdHJh
bnNhY3Rpb24gcHJlZmxpZ2h0Il9zKTsKIAogICAgICAgICBoYW5kbGVUcmFuc2FjdGlvbkVycm9y
KCk7CiAgICAgICAgIHJldHVybjsKQEAgLTM5NSw3ICszOTUsNyBAQCB2b2lkIFNRTFRyYW5zYWN0
aW9uOjpkZWxpdmVyVHJhbnNhY3Rpb25DYWxsYmFjaygpCiAKICAgICAvLyBTcGVjIDQuMy4yIDU6
IElmIHRoZSB0cmFuc2FjdGlvbiBjYWxsYmFjayB3YXMgbnVsbCBvciByYWlzZWQgYW4gZXhjZXB0
aW9uLCBqdW1wIHRvIHRoZSBlcnJvciBjYWxsYmFjawogICAgIGlmIChzaG91bGREZWxpdmVyRXJy
b3JDYWxsYmFjaykgewotICAgICAgICBtX3RyYW5zYWN0aW9uRXJyb3IgPSBTUUxFcnJvcjo6Y3Jl
YXRlKFNRTEVycm9yOjpVTktOT1dOX0VSUiwgInRoZSBTUUxUcmFuc2FjdGlvbkNhbGxiYWNrIHdh
cyBudWxsIG9yIHRocmV3IGFuIGV4Y2VwdGlvbiIpOworICAgICAgICBtX3RyYW5zYWN0aW9uRXJy
b3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpVTktOT1dOX0VSUiwgInRoZSBTUUxUcmFu
c2FjdGlvbkNhbGxiYWNrIHdhcyBudWxsIG9yIHRocmV3IGFuIGV4Y2VwdGlvbiJfcyk7CiAgICAg
ICAgIHJldHVybiBkZWxpdmVyVHJhbnNhY3Rpb25FcnJvckNhbGxiYWNrKCk7CiAgICAgfQogCkBA
IC00MzIsNyArNDMyLDcgQEAgdm9pZCBTUUxUcmFuc2FjdGlvbjo6ZGVsaXZlclN0YXRlbWVudENh
bGxiYWNrKCkKICAgICBtX2V4ZWN1dGVTcWxBbGxvd2VkID0gZmFsc2U7CiAKICAgICBpZiAocmVz
dWx0KSB7Ci0gICAgICAgIG1fdHJhbnNhY3Rpb25FcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FM
RXJyb3I6OlVOS05PV05fRVJSLCAidGhlIHN0YXRlbWVudCBjYWxsYmFjayByYWlzZWQgYW4gZXhj
ZXB0aW9uIG9yIHN0YXRlbWVudCBlcnJvciBjYWxsYmFjayBkaWQgbm90IHJldHVybiBmYWxzZSIp
OworICAgICAgICBtX3RyYW5zYWN0aW9uRXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9y
OjpVTktOT1dOX0VSUiwgInRoZSBzdGF0ZW1lbnQgY2FsbGJhY2sgcmFpc2VkIGFuIGV4Y2VwdGlv
biBvciBzdGF0ZW1lbnQgZXJyb3IgY2FsbGJhY2sgZGlkIG5vdCByZXR1cm4gZmFsc2UiX3MpOwog
CiAgICAgICAgIGlmIChtX2Vycm9yQ2FsbGJhY2tXcmFwcGVyLmhhc0NhbGxiYWNrKCkpCiAgICAg
ICAgICAgICByZXR1cm4gZGVsaXZlclRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjaygpOwpAQCAtNTY4
LDcgKzU2OCw3IEBAIHZvaWQgU1FMVHJhbnNhY3Rpb246OmhhbmRsZUN1cnJlbnRTdGF0ZW1lbnRF
cnJvcigpCiAKICAgICBtX3RyYW5zYWN0aW9uRXJyb3IgPSBtX2N1cnJlbnRTdGF0ZW1lbnQtPnNx
bEVycm9yKCk7CiAgICAgaWYgKCFtX3RyYW5zYWN0aW9uRXJyb3IpCi0gICAgICAgIG1fdHJhbnNh
Y3Rpb25FcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OkRBVEFCQVNFX0VSUiwgInRo
ZSBzdGF0ZW1lbnQgZmFpbGVkIHRvIGV4ZWN1dGUiKTsKKyAgICAgICAgbV90cmFuc2FjdGlvbkVy
cm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6REFUQUJBU0VfRVJSLCAidGhlIHN0YXRl
bWVudCBmYWlsZWQgdG8gZXhlY3V0ZSJfcyk7CiAKICAgICBoYW5kbGVUcmFuc2FjdGlvbkVycm9y
KCk7CiB9CkBAIC01OTQsNyArNTk0LDcgQEAgdm9pZCBTUUxUcmFuc2FjdGlvbjo6cG9zdGZsaWdo
dEFuZENvbW1pdCgpCiAgICAgaWYgKG1fd3JhcHBlciAmJiAhbV93cmFwcGVyLT5wZXJmb3JtUG9z
dGZsaWdodCgqdGhpcykpIHsKICAgICAgICAgbV90cmFuc2FjdGlvbkVycm9yID0gbV93cmFwcGVy
LT5zcWxFcnJvcigpOwogICAgICAgICBpZiAoIW1fdHJhbnNhY3Rpb25FcnJvcikKLSAgICAgICAg
ICAgIG1fdHJhbnNhY3Rpb25FcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OlVOS05P
V05fRVJSLCAidW5rbm93biBlcnJvciBvY2N1cnJlZCBkdXJpbmcgdHJhbnNhY3Rpb24gcG9zdGZs
aWdodCIpOworICAgICAgICAgICAgbV90cmFuc2FjdGlvbkVycm9yID0gU1FMRXJyb3I6OmNyZWF0
ZShTUUxFcnJvcjo6VU5LTk9XTl9FUlIsICJ1bmtub3duIGVycm9yIG9jY3VycmVkIGR1cmluZyB0
cmFuc2FjdGlvbiBwb3N0ZmxpZ2h0Il9zKTsKIAogICAgICAgICBoYW5kbGVUcmFuc2FjdGlvbkVy
cm9yKCk7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJz
b2NrZXRzL1dlYlNvY2tldC5jcHAKaW5kZXggZjk3M2U1YmQzYjkwZTNhNGNjNzM1MjE0ZDlhMzE5
YWRmOTIxZTRiNi4uNjlkMmU1NDczNWEzMDY0NjM4NGM3ZWZiN2VhNjQ5ODdlYzM0MDJjYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAKQEAg
LTEzNyw5ICsxMzcsOSBAQCBzdGF0aWMgdW5zaWduZWQgc2F0dXJhdGVBZGQodW5zaWduZWQgYSwg
dW5zaWduZWQgYikKICAgICByZXR1cm4gYSArIGI7CiB9CiAKLWNvbnN0IGNoYXIqIFdlYlNvY2tl
dDo6c3VicHJvdG9jb2xTZXBhcmF0b3IoKQorQVNDSUlMaXRlcmFsIFdlYlNvY2tldDo6c3VicHJv
dG9jb2xTZXBhcmF0b3IoKQogewotICAgIHJldHVybiAiLCAiOworICAgIHJldHVybiAiLCAiX3M7
CiB9CiAKIFdlYlNvY2tldDo6V2ViU29ja2V0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRl
eHQpCkBAIC00MzAsNyArNDMwLDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gV2ViU29ja2V0OjpjbG9z
ZShzdGQ6Om9wdGlvbmFsPHVuc2lnbmVkIHNob3J0PiBvcHRpb25hbENvZGUsIGMKICAgICAgICAg
cmV0dXJuIHsgfTsKICAgICBpZiAobV9zdGF0ZSA9PSBDT05ORUNUSU5HKSB7CiAgICAgICAgIG1f
c3RhdGUgPSBDTE9TSU5HOwotICAgICAgICBtX2NoYW5uZWwtPmZhaWwoIldlYlNvY2tldCBpcyBj
bG9zZWQgYmVmb3JlIHRoZSBjb25uZWN0aW9uIGlzIGVzdGFibGlzaGVkLiIpOworICAgICAgICBt
X2NoYW5uZWwtPmZhaWwoIldlYlNvY2tldCBpcyBjbG9zZWQgYmVmb3JlIHRoZSBjb25uZWN0aW9u
IGlzIGVzdGFibGlzaGVkLiJfcyk7CiAgICAgICAgIHJldHVybiB7IH07CiAgICAgfQogICAgIG1f
c3RhdGUgPSBDTE9TSU5HOwpAQCAtNTIwLDcgKzUyMCw3IEBAIHZvaWQgV2ViU29ja2V0OjpzdXNw
ZW5kKFJlYXNvbkZvclN1c3BlbnNpb24gcmVhc29uKQogCiAgICAgaWYgKHJlYXNvbiA9PSBSZWFz
b25Gb3JTdXNwZW5zaW9uOjpCYWNrRm9yd2FyZENhY2hlKSB7CiAgICAgICAgIC8vIFRoaXMgd2ls
bCBjYXVzZSBkaWRDbG9zZSgpIHRvIGJlIGNhbGxlZC4KLSAgICAgICAgbV9jaGFubmVsLT5mYWls
KCJXZWJTb2NrZXQgaXMgY2xvc2VkIGR1ZSB0byBzdXNwZW5zaW9uLiIpOworICAgICAgICBtX2No
YW5uZWwtPmZhaWwoIldlYlNvY2tldCBpcyBjbG9zZWQgZHVlIHRvIHN1c3BlbnNpb24uIl9zKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJz
b2NrZXRzL1dlYlNvY2tldC5oCmluZGV4IGU2ODYzZTQ2ZGEwN2QxOGI2ZDkxNWViMTVjMjRjZGYy
MmRiNmE2Y2IuLmVmZmMwNjhiYmY2MjY1ZTdhM2IxNTVjOTRmZjQ0OGU3NjZkMWUzNjUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmgKQEAgLTUxLDcg
KzUxLDcgQEAgY2xhc3MgVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw7CiBjbGFzcyBXZWJTb2Nr
ZXQgZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJTb2NrZXQ+LCBwdWJsaWMgRXZlbnRUYXJn
ZXRXaXRoSW5saW5lRGF0YSwgcHVibGljIEFjdGl2ZURPTU9iamVjdCwgcHJpdmF0ZSBXZWJTb2Nr
ZXRDaGFubmVsQ2xpZW50IHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFdlYlNvY2tldCk7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0IGNoYXIqIHN1YnByb3RvY29sU2VwYXJhdG9yKCk7
CisgICAgc3RhdGljIEFTQ0lJTGl0ZXJhbCBzdWJwcm90b2NvbFNlcGFyYXRvcigpOwogCiAgICAg
c3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxXZWJTb2NrZXQ+PiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYsIGNvbnN0IFN0cmluZyYgdXJsKTsKICAgICBzdGF0aWMgRXhjZXB0aW9uT3I8UmVm
PFdlYlNvY2tldD4+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgY29uc3QgU3RyaW5n
JiB1cmwsIGNvbnN0IFN0cmluZyYgcHJvdG9jb2wpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwCmluZGV4IGRmNTYzNTlj
NmZkYTA1MjEwM2Q5N2IzZDhhNWQxMDg0OTE5NzVmNWIuLjY5YjhlMmE3NzU0YTg5NzhjMTk1NDg1
MWZmMjZjOTk2MTUyZjVkYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
c29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAKQEAgLTI4Nyw3ICsyODcsNyBAQCB2b2lk
IFdlYlNvY2tldENoYW5uZWw6OmRpZE9wZW5Tb2NrZXRTdHJlYW0oU29ja2V0U3RyZWFtSGFuZGxl
JiBoYW5kbGUpCiAgICAgICAgIGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5ID0gQ29va2ll
SmFyOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94eSgqbV9kb2N1bWVudCwgbV9oYW5kc2hh
a2UtPmh0dHBVUkxGb3JBdXRoZW50aWNhdGlvbkFuZENvb2tpZXMoKSk7CiAgICAgaGFuZGxlLnNl
bmRIYW5kc2hha2UoV1RGTW92ZShoYW5kc2hha2VNZXNzYWdlKSwgV1RGTW92ZShjb29raWVSZXF1
ZXN0SGVhZGVyRmllbGRQcm94eSksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMg
fV0gKGJvb2wgc3VjY2VzcywgYm9vbCBkaWRBY2Nlc3NTZWN1cmVDb29raWVzKSB7CiAgICAgICAg
IGlmICghc3VjY2VzcykKLSAgICAgICAgICAgIGZhaWwoIkZhaWxlZCB0byBzZW5kIFdlYlNvY2tl
dCBoYW5kc2hha2UuIik7CisgICAgICAgICAgICBmYWlsKCJGYWlsZWQgdG8gc2VuZCBXZWJTb2Nr
ZXQgaGFuZHNoYWtlLiJfcyk7CiAKICAgICAgICAgaWYgKGRpZEFjY2Vzc1NlY3VyZUNvb2tpZXMg
JiYgbV9kb2N1bWVudCkKICAgICAgICAgICAgIG1fZG9jdW1lbnQtPnNldFNlY3VyZUNvb2tpZXNB
Y2Nlc3NlZCgpOwpAQCAtMzQwLDcgKzM0MCw3IEBAIHZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6ZGlk
UmVjZWl2ZVNvY2tldFN0cmVhbURhdGEoU29ja2V0U3RyZWFtSGFuZGxlJiBoYW5kbGUsIGNvCiAg
ICAgICAgIHJldHVybjsKICAgICBpZiAoIWFwcGVuZFRvQnVmZmVyKGRhdGEsIGxlbmd0aCkpIHsK
ICAgICAgICAgbV9zaG91bGREaXNjYXJkUmVjZWl2ZWREYXRhID0gdHJ1ZTsKLSAgICAgICAgZmFp
bCgiUmFuIG91dCBvZiBtZW1vcnkgd2hpbGUgcmVjZWl2aW5nIFdlYlNvY2tldCBkYXRhLiIpOwor
ICAgICAgICBmYWlsKCJSYW4gb3V0IG9mIG1lbW9yeSB3aGlsZSByZWNlaXZpbmcgV2ViU29ja2V0
IGRhdGEuIl9zKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICB3aGlsZSAoIW1fc3VzcGVu
ZGVkICYmIG1fY2xpZW50ICYmICFtX2J1ZmZlci5pc0VtcHR5KCkpIHsKQEAgLTU3MSw3ICs1NzEs
NyBAQCBib29sIFdlYlNvY2tldENoYW5uZWw6OnByb2Nlc3NGcmFtZSgpCiAgICAgfQogCiAgICAg
aWYgKGZyYW1lLm1hc2tlZCkgewotICAgICAgICBmYWlsKCJBIHNlcnZlciBtdXN0IG5vdCBtYXNr
IGFueSBmcmFtZXMgdGhhdCBpdCBzZW5kcyB0byB0aGUgY2xpZW50LiIpOworICAgICAgICBmYWls
KCJBIHNlcnZlciBtdXN0IG5vdCBtYXNrIGFueSBmcmFtZXMgdGhhdCBpdCBzZW5kcyB0byB0aGUg
Y2xpZW50LiJfcyk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKQEAgLTU5MSw3ICs1
OTEsNyBAQCBib29sIFdlYlNvY2tldENoYW5uZWw6OnByb2Nlc3NGcmFtZSgpCiAgICAgLy8gQSBu
ZXcgZGF0YSBmcmFtZSBpcyByZWNlaXZlZCBiZWZvcmUgdGhlIHByZXZpb3VzIGNvbnRpbnVvdXMg
ZnJhbWUgZmluaXNoZXMuCiAgICAgLy8gTm90ZSB0aGF0IGNvbnRyb2wgZnJhbWVzIGFyZSBhbGxv
d2VkIHRvIGNvbWUgaW4gdGhlIG1pZGRsZSBvZiBjb250aW51b3VzIGZyYW1lcy4KICAgICBpZiAo
bV9oYXNDb250aW51b3VzRnJhbWUgJiYgZnJhbWUub3BDb2RlICE9IFdlYlNvY2tldEZyYW1lOjpP
cENvZGVDb250aW51YXRpb24gJiYgIVdlYlNvY2tldEZyYW1lOjppc0NvbnRyb2xPcENvZGUoZnJh
bWUub3BDb2RlKSkgewotICAgICAgICBmYWlsKCJSZWNlaXZlZCBuZXcgZGF0YSBmcmFtZSBidXQg
cHJldmlvdXMgY29udGludW91cyBmcmFtZSBpcyB1bmZpbmlzaGVkLiIpOworICAgICAgICBmYWls
KCJSZWNlaXZlZCBuZXcgZGF0YSBmcmFtZSBidXQgcHJldmlvdXMgY29udGludW91cyBmcmFtZSBp
cyB1bmZpbmlzaGVkLiJfcyk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKQEAgLTYw
MSw3ICs2MDEsNyBAQCBib29sIFdlYlNvY2tldENoYW5uZWw6OnByb2Nlc3NGcmFtZSgpCiAgICAg
Y2FzZSBXZWJTb2NrZXRGcmFtZTo6T3BDb2RlQ29udGludWF0aW9uOgogICAgICAgICAvLyBBbiB1
bmV4cGVjdGVkIGNvbnRpbnVhdGlvbiBmcmFtZSBpcyByZWNlaXZlZCB3aXRob3V0IGFueSBsZWFk
aW5nIGZyYW1lLgogICAgICAgICBpZiAoIW1faGFzQ29udGludW91c0ZyYW1lKSB7Ci0gICAgICAg
ICAgICBmYWlsKCJSZWNlaXZlZCB1bmV4cGVjdGVkIGNvbnRpbnVhdGlvbiBmcmFtZS4iKTsKKyAg
ICAgICAgICAgIGZhaWwoIlJlY2VpdmVkIHVuZXhwZWN0ZWQgY29udGludWF0aW9uIGZyYW1lLiJf
cyk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KICAgICAgICAgbV9jb250
aW51b3VzRnJhbWVEYXRhLmFwcGVuZChmcmFtZS5wYXlsb2FkLCBmcmFtZS5wYXlsb2FkTGVuZ3Ro
KTsKQEAgLTYyMCw3ICs2MjAsNyBAQCBib29sIFdlYlNvY2tldENoYW5uZWw6OnByb2Nlc3NGcmFt
ZSgpCiAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICBtZXNzYWdlID0g
ZW1wdHlTdHJpbmcoKTsKICAgICAgICAgICAgICAgICBpZiAobWVzc2FnZS5pc051bGwoKSkKLSAg
ICAgICAgICAgICAgICAgICAgZmFpbCgiQ291bGQgbm90IGRlY29kZSBhIHRleHQgZnJhbWUgYXMg
VVRGLTguIik7CisgICAgICAgICAgICAgICAgICAgIGZhaWwoIkNvdWxkIG5vdCBkZWNvZGUgYSB0
ZXh0IGZyYW1lIGFzIFVURi04LiJfcyk7CiAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAg
ICAgICAgICAgICBtX2NsaWVudC0+ZGlkUmVjZWl2ZU1lc3NhZ2UoV1RGTW92ZShtZXNzYWdlKSk7
CiAgICAgICAgICAgICB9IGVsc2UgaWYgKG1fY29udGludW91c0ZyYW1lT3BDb2RlID09IFdlYlNv
Y2tldEZyYW1lOjpPcENvZGVCaW5hcnkpCkBAIC02MzcsNyArNjM3LDcgQEAgYm9vbCBXZWJTb2Nr
ZXRDaGFubmVsOjpwcm9jZXNzRnJhbWUoKQogICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSBlbXB0
eVN0cmluZygpOwogICAgICAgICAgICAgc2tpcEJ1ZmZlcihmcmFtZUVuZCAtIG1fYnVmZmVyLmRh
dGEoKSk7CiAgICAgICAgICAgICBpZiAobWVzc2FnZS5pc051bGwoKSkKLSAgICAgICAgICAgICAg
ICBmYWlsKCJDb3VsZCBub3QgZGVjb2RlIGEgdGV4dCBmcmFtZSBhcyBVVEYtOC4iKTsKKyAgICAg
ICAgICAgICAgICBmYWlsKCJDb3VsZCBub3QgZGVjb2RlIGEgdGV4dCBmcmFtZSBhcyBVVEYtOC4i
X3MpOwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgIG1fY2xpZW50LT5kaWRSZWNl
aXZlTWVzc2FnZShXVEZNb3ZlKG1lc3NhZ2UpKTsKICAgICAgICAgfSBlbHNlIHsKQEAgLTY2OSwx
MyArNjY5LDEzIEBAIGJvb2wgV2ViU29ja2V0Q2hhbm5lbDo6cHJvY2Vzc0ZyYW1lKCkKICAgICAg
ICAgICAgIG1fY2xvc2VFdmVudENvZGUgPSBDbG9zZUV2ZW50Q29kZU5vU3RhdHVzUmN2ZDsKICAg
ICAgICAgZWxzZSBpZiAoZnJhbWUucGF5bG9hZExlbmd0aCA9PSAxKSB7CiAgICAgICAgICAgICBt
X2Nsb3NlRXZlbnRDb2RlID0gQ2xvc2VFdmVudENvZGVBYm5vcm1hbENsb3N1cmU7Ci0gICAgICAg
ICAgICBmYWlsKCJSZWNlaXZlZCBhIGJyb2tlbiBjbG9zZSBmcmFtZSBjb250YWluaW5nIGFuIGlu
dmFsaWQgc2l6ZSBib2R5LiIpOworICAgICAgICAgICAgZmFpbCgiUmVjZWl2ZWQgYSBicm9rZW4g
Y2xvc2UgZnJhbWUgY29udGFpbmluZyBhbiBpbnZhbGlkIHNpemUgYm9keS4iX3MpOwogICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgbV9jbG9z
ZUV2ZW50Q29kZSA9IGZyYW1lLnBheWxvYWRbMF0gPDwgOCB8IGZyYW1lLnBheWxvYWRbMV07CiAg
ICAgICAgICAgICBpZiAobV9jbG9zZUV2ZW50Q29kZSA9PSBDbG9zZUV2ZW50Q29kZU5vU3RhdHVz
UmN2ZCB8fCBtX2Nsb3NlRXZlbnRDb2RlID09IENsb3NlRXZlbnRDb2RlQWJub3JtYWxDbG9zdXJl
IHx8IG1fY2xvc2VFdmVudENvZGUgPT0gQ2xvc2VFdmVudENvZGVUTFNIYW5kc2hha2UpIHsKICAg
ICAgICAgICAgICAgICBtX2Nsb3NlRXZlbnRDb2RlID0gQ2xvc2VFdmVudENvZGVBYm5vcm1hbENs
b3N1cmU7Ci0gICAgICAgICAgICAgICAgZmFpbCgiUmVjZWl2ZWQgYSBicm9rZW4gY2xvc2UgZnJh
bWUgY29udGFpbmluZyBhIHJlc2VydmVkIHN0YXR1cyBjb2RlLiIpOworICAgICAgICAgICAgICAg
IGZhaWwoIlJlY2VpdmVkIGEgYnJva2VuIGNsb3NlIGZyYW1lIGNvbnRhaW5pbmcgYSByZXNlcnZl
ZCBzdGF0dXMgY29kZS4iX3MpOwogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAg
ICAgICAgIH0KICAgICAgICAgfQpAQCAtNzYxLDcgKzc2MSw3IEBAIHZvaWQgV2ViU29ja2V0Q2hh
bm5lbDo6cHJvY2Vzc091dGdvaW5nRnJhbWVRdWV1ZSgpCiAgICAgICAgIGNhc2UgUXVldWVkRnJh
bWVUeXBlU3RyaW5nOiB7CiAgICAgICAgICAgICBzZW5kRnJhbWUoZnJhbWUtPm9wQ29kZSwgZnJh
bWUtPnN0cmluZ0RhdGEuZGF0YUFzVUludDhQdHIoKSwgZnJhbWUtPnN0cmluZ0RhdGEubGVuZ3Ro
KCksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfV0gKGJvb2wgc3VjY2Vzcykg
ewogICAgICAgICAgICAgICAgIGlmICghc3VjY2VzcykKLSAgICAgICAgICAgICAgICAgICAgZmFp
bCgiRmFpbGVkIHRvIHNlbmQgV2ViU29ja2V0IGZyYW1lLiIpOworICAgICAgICAgICAgICAgICAg
ICBmYWlsKCJGYWlsZWQgdG8gc2VuZCBXZWJTb2NrZXQgZnJhbWUuIl9zKTsKICAgICAgICAgICAg
IH0pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAgLTc2OSw3ICs3NjksNyBAQCB2
b2lkIFdlYlNvY2tldENoYW5uZWw6OnByb2Nlc3NPdXRnb2luZ0ZyYW1lUXVldWUoKQogICAgICAg
ICBjYXNlIFF1ZXVlZEZyYW1lVHlwZVZlY3RvcjoKICAgICAgICAgICAgIHNlbmRGcmFtZShmcmFt
ZS0+b3BDb2RlLCBmcmFtZS0+dmVjdG9yRGF0YS5kYXRhKCksIGZyYW1lLT52ZWN0b3JEYXRhLnNp
emUoKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9XSAoYm9vbCBzdWNjZXNz
KSB7CiAgICAgICAgICAgICAgICAgaWYgKCFzdWNjZXNzKQotICAgICAgICAgICAgICAgICAgICBm
YWlsKCJGYWlsZWQgdG8gc2VuZCBXZWJTb2NrZXQgZnJhbWUuIik7CisgICAgICAgICAgICAgICAg
ICAgIGZhaWwoIkZhaWxlZCB0byBzZW5kIFdlYlNvY2tldCBmcmFtZS4iX3MpOwogICAgICAgICAg
ICAgfSk7CiAgICAgICAgICAgICBicmVhazsKIApAQCAtNzk2LDcgKzc5Niw3IEBAIHZvaWQgV2Vi
U29ja2V0Q2hhbm5lbDo6cHJvY2Vzc091dGdvaW5nRnJhbWVRdWV1ZSgpCiAgICAgICAgICAgICAg
ICAgbV9ibG9iTG9hZGVyU3RhdHVzID0gQmxvYkxvYWRlck5vdFN0YXJ0ZWQ7CiAgICAgICAgICAg
ICAgICAgc2VuZEZyYW1lKGZyYW1lLT5vcENvZGUsIHN0YXRpY19jYXN0PGNvbnN0IHVpbnQ4X3Qq
PihyZXN1bHQtPmRhdGEoKSksIHJlc3VsdC0+Ynl0ZUxlbmd0aCgpLCBbdGhpcywgcHJvdGVjdGVk
VGhpcyA9IFJlZiB7ICp0aGlzIH1dIChib29sIHN1Y2Nlc3MpIHsKICAgICAgICAgICAgICAgICAg
ICAgaWYgKCFzdWNjZXNzKQotICAgICAgICAgICAgICAgICAgICAgICAgZmFpbCgiRmFpbGVkIHRv
IHNlbmQgV2ViU29ja2V0IGZyYW1lLiIpOworICAgICAgICAgICAgICAgICAgICAgICAgZmFpbCgi
RmFpbGVkIHRvIHNlbmQgV2ViU29ja2V0IGZyYW1lLiJfcyk7CiAgICAgICAgICAgICAgICAgfSk7
CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RGVmbGF0ZUZyYW1lci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RGVmbGF0ZUZyYW1l
ci5jcHAKaW5kZXggMDFmZGZlMDI5ZTQ2ZmNlODYyZDVlNjE2Y2ZjNDk1ZDY5Y2M2MTQ2NS4uYTg3
ZmU1ZDdhYWU1ZTgwZDM5NzU0OTljNGM1NmE2ZTAxN2RmMTFkYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldERlZmxhdGVGcmFtZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXREZWZsYXRlRnJh
bWVyLmNwcApAQCAtNzYsNyArNzYsNyBAQCBib29sIFdlYlNvY2tldEV4dGVuc2lvbkRlZmxhdGVG
cmFtZTo6cHJvY2Vzc1Jlc3BvbnNlKGNvbnN0IEhhc2hNYXA8U3RyaW5nLCBTdHJpbgogCiAgICAg
dW5zaWduZWQgZXhwZWN0ZWROdW1QYXJhbWV0ZXJzID0gMDsKICAgICBpbnQgd2luZG93Qml0cyA9
IDE1OwotICAgIGF1dG8gcGFyYW1ldGVyID0gc2VydmVyUGFyYW1ldGVycy5maW5kKCJtYXhfd2lu
ZG93X2JpdHMiKTsKKyAgICBhdXRvIHBhcmFtZXRlciA9IHNlcnZlclBhcmFtZXRlcnMuZmluZCgi
bWF4X3dpbmRvd19iaXRzIl9zKTsKICAgICBpZiAocGFyYW1ldGVyICE9IHNlcnZlclBhcmFtZXRl
cnMuZW5kKCkpIHsKICAgICAgICAgd2luZG93Qml0cyA9IHBhcnNlSW50ZWdlckFsbG93aW5nVHJh
aWxpbmdKdW5rPGludD4ocGFyYW1ldGVyLT52YWx1ZSkudmFsdWVfb3IoMCk7CiAgICAgICAgIGlm
ICh3aW5kb3dCaXRzIDwgOCB8fCB3aW5kb3dCaXRzID4gMTUpIHsKQEAgLTg3LDcgKzg3LDcgQEAg
Ym9vbCBXZWJTb2NrZXRFeHRlbnNpb25EZWZsYXRlRnJhbWU6OnByb2Nlc3NSZXNwb25zZShjb25z
dCBIYXNoTWFwPFN0cmluZywgU3RyaW4KICAgICB9CiAKICAgICBXZWJTb2NrZXREZWZsYXRlcjo6
Q29udGV4dFRha2VPdmVyTW9kZSBtb2RlID0gV2ViU29ja2V0RGVmbGF0ZXI6OlRha2VPdmVyQ29u
dGV4dDsKLSAgICBwYXJhbWV0ZXIgPSBzZXJ2ZXJQYXJhbWV0ZXJzLmZpbmQoIm5vX2NvbnRleHRf
dGFrZW92ZXIiKTsKKyAgICBwYXJhbWV0ZXIgPSBzZXJ2ZXJQYXJhbWV0ZXJzLmZpbmQoIm5vX2Nv
bnRleHRfdGFrZW92ZXIiX3MpOwogICAgIGlmIChwYXJhbWV0ZXIgIT0gc2VydmVyUGFyYW1ldGVy
cy5lbmQoKSkgewogICAgICAgICBpZiAoIXBhcmFtZXRlci0+dmFsdWUuaXNOdWxsKCkpIHsKICAg
ICAgICAgICAgIG1fZmFpbHVyZVJlYXNvbiA9ICJSZWNlaXZlZCBpbnZhbGlkIG5vX2NvbnRleHRf
dGFrZW92ZXIgcGFyYW1ldGVyIl9zOwpAQCAtMTYxLDcgKzE2MSw3IEBAIHN0ZDo6dW5pcXVlX3B0
cjxEZWZsYXRlUmVzdWx0SG9sZGVyPiBXZWJTb2NrZXREZWZsYXRlRnJhbWVyOjpkZWZsYXRlKFdl
YlNvY2tldEZyCiAgICAgaWYgKCFlbmFibGVkKCkgfHwgIVdlYlNvY2tldEZyYW1lOjppc05vbkNv
bnRyb2xPcENvZGUoZnJhbWUub3BDb2RlKSB8fCAhZnJhbWUucGF5bG9hZExlbmd0aCkKICAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKICAgICBpZiAoIW1fZGVmbGF0ZXItPmFkZEJ5dGVzKGZyYW1lLnBh
eWxvYWQsIGZyYW1lLnBheWxvYWRMZW5ndGgpIHx8ICFtX2RlZmxhdGVyLT5maW5pc2goKSkgewot
ICAgICAgICByZXN1bHQtPmZhaWwoIkZhaWxlZCB0byBjb21wcmVzcyBmcmFtZSIpOworICAgICAg
ICByZXN1bHQtPmZhaWwoIkZhaWxlZCB0byBjb21wcmVzcyBmcmFtZSJfcyk7CiAgICAgICAgIHJl
dHVybiByZXN1bHQ7CiAgICAgfQogICAgIGZyYW1lLmNvbXByZXNzID0gdHJ1ZTsKQEAgLTE4MCwx
NyArMTgwLDE3IEBAIHN0ZDo6dW5pcXVlX3B0cjxJbmZsYXRlUmVzdWx0SG9sZGVyPiBXZWJTb2Nr
ZXREZWZsYXRlRnJhbWVyOjppbmZsYXRlKFdlYlNvY2tldEZyCiB7CiAgICAgYXV0byByZXN1bHQg
PSBtYWtlVW5pcXVlPEluZmxhdGVSZXN1bHRIb2xkZXI+KCp0aGlzKTsKICAgICBpZiAoIWVuYWJs
ZWQoKSAmJiBmcmFtZS5jb21wcmVzcykgewotICAgICAgICByZXN1bHQtPmZhaWwoIkNvbXByZXNz
ZWQgYml0IG11c3QgYmUgMCBpZiBubyBuZWdvdGlhdGVkIGRlZmxhdGUtZnJhbWUgZXh0ZW5zaW9u
Iik7CisgICAgICAgIHJlc3VsdC0+ZmFpbCgiQ29tcHJlc3NlZCBiaXQgbXVzdCBiZSAwIGlmIG5v
IG5lZ290aWF0ZWQgZGVmbGF0ZS1mcmFtZSBleHRlbnNpb24iX3MpOwogICAgICAgICByZXR1cm4g
cmVzdWx0OwogICAgIH0KICAgICBpZiAoIWZyYW1lLmNvbXByZXNzKQogICAgICAgICByZXR1cm4g
cmVzdWx0OwogICAgIGlmICghV2ViU29ja2V0RnJhbWU6OmlzTm9uQ29udHJvbE9wQ29kZShmcmFt
ZS5vcENvZGUpKSB7Ci0gICAgICAgIHJlc3VsdC0+ZmFpbCgiUmVjZWl2ZWQgdW5leHBlY3RlZCBj
b21wcmVzc2VkIGZyYW1lIik7CisgICAgICAgIHJlc3VsdC0+ZmFpbCgiUmVjZWl2ZWQgdW5leHBl
Y3RlZCBjb21wcmVzc2VkIGZyYW1lIl9zKTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9
CiAgICAgaWYgKCFtX2luZmxhdGVyLT5hZGRCeXRlcyhmcmFtZS5wYXlsb2FkLCBmcmFtZS5wYXls
b2FkTGVuZ3RoKSB8fCAhbV9pbmZsYXRlci0+ZmluaXNoKCkpIHsKLSAgICAgICAgcmVzdWx0LT5m
YWlsKCJGYWlsZWQgdG8gZGVjb21wcmVzcyBmcmFtZSIpOworICAgICAgICByZXN1bHQtPmZhaWwo
IkZhaWxlZCB0byBkZWNvbXByZXNzIGZyYW1lIl9zKTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsK
ICAgICB9CiAgICAgZnJhbWUuY29tcHJlc3MgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRFeHRlbnNpb25EaXNwYXRjaGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRFeHRlbnNpb25E
aXNwYXRjaGVyLmNwcAppbmRleCA3YWYyYzM3OTFhMGFlOGQ2ZWU5ZTkyOTk4MzU3ZTg2MGFmYmI3
NWRkLi5lNWNmMTI1MTFlZjNlNTY0ZjYzYjg1ZDhjYjBiYjFlZTQwYzVkYTNmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RXh0ZW5zaW9uRGlz
cGF0Y2hlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNv
Y2tldEV4dGVuc2lvbkRpc3BhdGNoZXIuY3BwCkBAIC05Myw3ICs5Myw3IEBAIGJvb2wgV2ViU29j
a2V0RXh0ZW5zaW9uRGlzcGF0Y2hlcjo6cHJvY2Vzc0hlYWRlclZhbHVlKGNvbnN0IFN0cmluZyYg
aGVhZGVyVmFsdWUpCiAKICAgICAvLyBJZiB3ZSBkb24ndCBzZW5kIFNlYy1XZWJTb2NrZXQtRXh0
ZW5zaW9ucyBoZWFkZXIsIHRoZSBzZXJ2ZXIgc2hvdWxkIG5vdCByZXR1cm4gdGhlIGhlYWRlci4K
ICAgICBpZiAoIW1fcHJvY2Vzc29ycy5zaXplKCkpIHsKLSAgICAgICAgZmFpbCgiUmVjZWl2ZWQg
dW5leHBlY3RlZCBTZWMtV2ViU29ja2V0LUV4dGVuc2lvbnMgaGVhZGVyIik7CisgICAgICAgIGZh
aWwoIlJlY2VpdmVkIHVuZXhwZWN0ZWQgU2VjLVdlYlNvY2tldC1FeHRlbnNpb25zIGhlYWRlciJf
cyk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKQEAgLTEwMyw3ICsxMDMsNyBAQCBi
b29sIFdlYlNvY2tldEV4dGVuc2lvbkRpc3BhdGNoZXI6OnByb2Nlc3NIZWFkZXJWYWx1ZShjb25z
dCBTdHJpbmcmIGhlYWRlclZhbHVlKQogICAgICAgICBTdHJpbmcgZXh0ZW5zaW9uVG9rZW47CiAg
ICAgICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IGV4dGVuc2lvblBhcmFtZXRlcnM7CiAgICAg
ICAgIGlmICghcGFyc2VyLnBhcnNlRXh0ZW5zaW9uKGV4dGVuc2lvblRva2VuLCBleHRlbnNpb25Q
YXJhbWV0ZXJzKSkgewotICAgICAgICAgICAgZmFpbCgiU2VjLVdlYlNvY2tldC1FeHRlbnNpb25z
IGhlYWRlciBpcyBpbnZhbGlkIik7CisgICAgICAgICAgICBmYWlsKCJTZWMtV2ViU29ja2V0LUV4
dGVuc2lvbnMgaGVhZGVyIGlzIGludmFsaWQiX3MpOwogICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29j
a2V0cy9XZWJTb2NrZXRGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tl
dHMvV2ViU29ja2V0RnJhbWUuY3BwCmluZGV4IGUzOWUwMTlhZTAyZDk2NzIzOGY5NjU3MmQ1M2Vl
MjNjMzQ1NmYyMzMuLmJhMWU2MjU0OTE3YWZmNGZhN2I4MmM2ODg0ZmViMmFjOTA3MGQzYWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRGcmFt
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEZy
YW1lLmNwcApAQCAtODIsMTEgKzgyLDExIEBAIFdlYlNvY2tldEZyYW1lOjpQYXJzZUZyYW1lUmVz
dWx0IFdlYlNvY2tldEZyYW1lOjpwYXJzZUZyYW1lKHVpbnQ4X3QqIGRhdGEsIHNpemVfCiAgICAg
ICAgICAgICBwYXlsb2FkTGVuZ3RoNjQgfD0gc3RhdGljX2Nhc3Q8dWludDhfdD4oKnArKyk7CiAg
ICAgICAgIH0KICAgICAgICAgaWYgKGV4dGVuZGVkUGF5bG9hZExlbmd0aFNpemUgPT0gMiAmJiBw
YXlsb2FkTGVuZ3RoNjQgPD0gbWF4UGF5bG9hZExlbmd0aFdpdGhvdXRFeHRlbmRlZExlbmd0aEZp
ZWxkKSB7Ci0gICAgICAgICAgICBlcnJvclN0cmluZyA9ICJUaGUgbWluaW1hbCBudW1iZXIgb2Yg
Ynl0ZXMgTVVTVCBiZSB1c2VkIHRvIGVuY29kZSB0aGUgbGVuZ3RoIjsKKyAgICAgICAgICAgIGVy
cm9yU3RyaW5nID0gIlRoZSBtaW5pbWFsIG51bWJlciBvZiBieXRlcyBNVVNUIGJlIHVzZWQgdG8g
ZW5jb2RlIHRoZSBsZW5ndGgiX3M7CiAgICAgICAgICAgICByZXR1cm4gRnJhbWVFcnJvcjsKICAg
ICAgICAgfQogICAgICAgICBpZiAoZXh0ZW5kZWRQYXlsb2FkTGVuZ3RoU2l6ZSA9PSA4ICYmIHBh
eWxvYWRMZW5ndGg2NCA8PSAweEZGRkYpIHsKLSAgICAgICAgICAgIGVycm9yU3RyaW5nID0gIlRo
ZSBtaW5pbWFsIG51bWJlciBvZiBieXRlcyBNVVNUIGJlIHVzZWQgdG8gZW5jb2RlIHRoZSBsZW5n
dGgiOworICAgICAgICAgICAgZXJyb3JTdHJpbmcgPSAiVGhlIG1pbmltYWwgbnVtYmVyIG9mIGJ5
dGVzIE1VU1QgYmUgdXNlZCB0byBlbmNvZGUgdGhlIGxlbmd0aCJfczsKICAgICAgICAgICAgIHJl
dHVybiBGcmFtZUVycm9yOwogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUldlYkdMTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJ4ci9XZWJYUldlYkdMTGF5ZXIuY3BwCmluZGV4IDgyNmRlMTZhNzA2OTFkNDIw
YzU5NDY3ZGM0YTcxZGVkZmIwYjY1YzYuLmQ3NDBmYmI4ODNkMjU4YWQxZTVkYjdmNmJiZmQxNjY1
YjQ0OWI5ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJX
ZWJHTExheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSV2Vi
R0xMYXllci5jcHAKQEAgLTY0LDcgKzY0LDcgQEAgc3RhdGljIEV4Y2VwdGlvbk9yPHN0ZDo6dW5p
cXVlX3B0cjxXZWJYUk9wYXF1ZUZyYW1lYnVmZmVyPj4gY3JlYXRlT3BhcXVlRnJhbWVidWYKIHsK
ICAgICBhdXRvIGRldmljZSA9IHNlc3Npb24uZGV2aWNlKCk7CiAgICAgaWYgKCFkZXZpY2UpCi0g
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBPcGVyYXRpb25FcnJvciwgIkNhbm5vdCBjcmVhdGUg
YW4gWFJXZWJHTExheWVyIHdpdGggYW4gWFJTZXNzaW9uIHRoYXQgaGFzIGVuZGVkLiIgfTsKKyAg
ICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE9wZXJhdGlvbkVycm9yLCAiQ2Fubm90IGNyZWF0ZSBh
biBYUldlYkdMTGF5ZXIgd2l0aCBhbiBYUlNlc3Npb24gdGhhdCBoYXMgZW5kZWQuIl9zIH07CiAK
ICAgICAvLyA5LjEuIEluaXRpYWxpemUgbGF5ZXLigJlzIGFudGlhbGlhcyB0byBsYXllckluaXTi
gJlzIGFudGlhbGlhcyB2YWx1ZS4KICAgICAvLyA5LjIuIExldCBmcmFtZWJ1ZmZlclNpemUgYmUg
dGhlIHJlY29tbWVuZGVkIFdlYkdMIGZyYW1lYnVmZmVyIHJlc29sdXRpb24gbXVsdGlwbGllZCBi
eSBsYXllckluaXQncyBmcmFtZWJ1ZmZlclNjYWxlRmFjdG9yLgpAQCAtODIsNyArODIsNyBAQCBz
dGF0aWMgRXhjZXB0aW9uT3I8c3RkOjp1bmlxdWVfcHRyPFdlYlhST3BhcXVlRnJhbWVidWZmZXI+
PiBjcmVhdGVPcGFxdWVGcmFtZWJ1ZgogICAgIC8vIDkuNS4gSWYgbGF5ZXLigJlzIHJlc291cmNl
cyB3ZXJlIHVuYWJsZSB0byBiZSBjcmVhdGVkIGZvciBhbnkgcmVhc29uLCB0aHJvdyBhbiBPcGVy
YXRpb25FcnJvciBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCiAgICAgYXV0byBsYXllckhhbmRsZSA9
IGRldmljZS0+Y3JlYXRlTGF5ZXJQcm9qZWN0aW9uKHdpZHRoLCBoZWlnaHQsIGluaXQuYWxwaGEp
OwogICAgIGlmICghbGF5ZXJIYW5kbGUpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBPcGVy
YXRpb25FcnJvciwgIlVuYWJsZSB0byBhbGxvY2F0ZSBYUldlYkdMTGF5ZXIgR1BVIHJlc291cmNl
cy4ifTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE9wZXJhdGlvbkVycm9yLCAiVW5hYmxl
IHRvIGFsbG9jYXRlIFhSV2ViR0xMYXllciBHUFUgcmVzb3VyY2VzLiJfcyB9OwogCiAgICAgV2Vi
WFJPcGFxdWVGcmFtZWJ1ZmZlcjo6QXR0cmlidXRlcyBhdHRyaWJ1dGVzIHsKICAgICAgICAgLmFs
cGhhID0gaW5pdC5hbHBoYSwKQEAgLTkzLDcgKzkzLDcgQEAgc3RhdGljIEV4Y2VwdGlvbk9yPHN0
ZDo6dW5pcXVlX3B0cjxXZWJYUk9wYXF1ZUZyYW1lYnVmZmVyPj4gY3JlYXRlT3BhcXVlRnJhbWVi
dWYKIAogICAgIGF1dG8gZnJhbWVidWZmZXIgPSBXZWJYUk9wYXF1ZUZyYW1lYnVmZmVyOjpjcmVh
dGUoKmxheWVySGFuZGxlLCBjb250ZXh0LCBXVEZNb3ZlKGF0dHJpYnV0ZXMpLCB3aWR0aCwgaGVp
Z2h0KTsKICAgICBpZiAoIWZyYW1lYnVmZmVyKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
T3BlcmF0aW9uRXJyb3IsICJVbmFibGUgdG8gY3JlYXRlIGEgZnJhbWVidWZmZXIuIiB9OworICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgT3BlcmF0aW9uRXJyb3IsICJVbmFibGUgdG8gY3JlYXRl
IGEgZnJhbWVidWZmZXIuIl9zIH07CiAgICAgCiAgICAgcmV0dXJuIGZyYW1lYnVmZmVyOwogfQpA
QCAtMTA0LDcgKzEwNCw3IEBAIEV4Y2VwdGlvbk9yPFJlZjxXZWJYUldlYkdMTGF5ZXI+PiBXZWJY
UldlYkdMTGF5ZXI6OmNyZWF0ZShSZWY8V2ViWFJTZXNzaW9uPiYmIHNlCiAgICAgLy8gMS4gTGV0
IGxheWVyIGJlIGEgbmV3IFhSV2ViR0xMYXllcgogICAgIC8vIDIuIElmIHNlc3Npb27igJlzIGVu
ZGVkIHZhbHVlIGlzIHRydWUsIHRocm93IGFuIEludmFsaWRTdGF0ZUVycm9yIGFuZCBhYm9ydCB0
aGVzZSBzdGVwcy4KICAgICBpZiAoc2Vzc2lvbi0+ZW5kZWQoKSkKLSAgICAgICAgcmV0dXJuIEV4
Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiQ2Fubm90IGNyZWF0ZSBhbiBYUldlYkdMTGF5
ZXIgd2l0aCBhbiBYUlNlc3Npb24gdGhhdCBoYXMgZW5kZWQuIiB9OworICAgICAgICByZXR1cm4g
RXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJDYW5ub3QgY3JlYXRlIGFuIFhSV2ViR0xM
YXllciB3aXRoIGFuIFhSU2Vzc2lvbiB0aGF0IGhhcyBlbmRlZC4iX3MgfTsKIAogICAgIC8vIDMu
IElmIGNvbnRleHQgaXMgbG9zdCwgdGhyb3cgYW4gSW52YWxpZFN0YXRlRXJyb3IgYW5kIGFib3J0
IHRoZXNlIHN0ZXBzLgogICAgIC8vIDQuIElmIHNlc3Npb24gaXMgYW4gaW1tZXJzaXZlIHNlc3Np
b24gYW5kIGNvbnRleHTigJlzIFhSIGNvbXBhdGlibGUgYm9vbGVhbiBpcyBmYWxzZSwgdGhyb3cK
QEAgLTExMywxMSArMTEzLDExIEBAIEV4Y2VwdGlvbk9yPFJlZjxXZWJYUldlYkdMTGF5ZXI+PiBX
ZWJYUldlYkdMTGF5ZXI6OmNyZWF0ZShSZWY8V2ViWFJTZXNzaW9uPiYmIHNlCiAgICAgICAgIFsm
XShjb25zdCBSZWZQdHI8V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZT4mIGJhc2VDb250ZXh0KSAt
PiBFeGNlcHRpb25PcjxSZWY8V2ViWFJXZWJHTExheWVyPj4KICAgICAgICAgewogICAgICAgICAg
ICAgaWYgKGJhc2VDb250ZXh0LT5pc0NvbnRleHRMb3N0KCkpCi0gICAgICAgICAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiQ2Fubm90IGNyZWF0ZSBhbiBYUldl
YkdMTGF5ZXIgd2l0aCBhIGxvc3QgV2ViR0wgY29udGV4dC4iIH07CisgICAgICAgICAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiQ2Fubm90IGNyZWF0ZSBhbiBY
UldlYkdMTGF5ZXIgd2l0aCBhIGxvc3QgV2ViR0wgY29udGV4dC4iX3MgfTsKIAogICAgICAgICAg
ICAgYXV0byBtb2RlID0gc2Vzc2lvbi0+bW9kZSgpOwogICAgICAgICAgICAgaWYgKChtb2RlID09
IFhSU2Vzc2lvbk1vZGU6OkltbWVyc2l2ZUFyIHx8IG1vZGUgPT0gWFJTZXNzaW9uTW9kZTo6SW1t
ZXJzaXZlVnIpICYmICFiYXNlQ29udGV4dC0+aXNYUkNvbXBhdGlibGUoKSkKLSAgICAgICAgICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJDYW5ub3QgY3JlYXRl
IGFuIFhSV2ViR0xMYXllciB3aXRoIFdlYkdMIGNvbnRleHQgbm90IG1hcmtlZCBhcyBYUiBjb21w
YXRpYmxlLiIgfTsKKyAgICAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0
YXRlRXJyb3IsICJDYW5ub3QgY3JlYXRlIGFuIFhSV2ViR0xMYXllciB3aXRoIFdlYkdMIGNvbnRl
eHQgbm90IG1hcmtlZCBhcyBYUiBjb21wYXRpYmxlLiJfcyB9OwogCiAKICAgICAgICAgICAgIC8v
IDUuIEluaXRpYWxpemUgbGF5ZXLigJlzIGNvbnRleHQgdG8gY29udGV4dC4gKHNlZSBjb25zdHJ1
Y3RvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhJbWFnZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYSW1hZ2UuY3BwCmluZGV4IDc1ZmVh
OGIxNTJiMTZlNjk1ZDY0ZTI5OTJkOTM4M2E4NmNmZTIyZGEuLjI2M2I3OTY5MGI5NzI5MzcwMjU3
OWNmMGQwZTc4MjgwZDJmZmY3YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQVhJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWElt
YWdlLmNwcApAQCAtNTcsNyArNTcsNyBAQCBBY2Nlc3NpYmlsaXR5Um9sZSBBWEltYWdlOjpyb2xl
VmFsdWUoKSBjb25zdAogCiBzdGQ6Om9wdGlvbmFsPEFYQ29yZU9iamVjdDo6QWNjZXNzaWJpbGl0
eUNoaWxkcmVuVmVjdG9yPiBBWEltYWdlOjppbWFnZU92ZXJsYXlFbGVtZW50cygpCiB7Ci0gICAg
QVhUUkFDRSgiQVhJbWFnZTo6aW1hZ2VPdmVybGF5RWxlbWVudHMiKTsKKyAgICBBWFRSQUNFKCJB
WEltYWdlOjppbWFnZU92ZXJsYXlFbGVtZW50cyJfcyk7CiAKICAgICBhdXRvJiBjaGlsZHJlbiA9
IHRoaXMtPmNoaWxkcmVuKCk7CiAgICAgaWYgKGNoaWxkcmVuLnNpemUoKSkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhMb2dnZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BWExvZ2dlci5jcHAKaW5kZXggMGI2Y2NkM2I3ZTkyOGNlODc4MGJk
YzdmMjFiMDhlNzNlNjQyOWUzMy4uOTQxNDYxODJhNWFiZGRiMmM5MGU2MTYxYjBmZGZhMGY2YzNl
ZTU0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWExvZ2dlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWExvZ2dlci5jcHAKQEAgLTU1
LDcgKzU1LDcgQEAgc3RhdGljIGJvb2wgc2hvdWxkTG9nKCkKIEFYTG9nZ2VyOjpBWExvZ2dlcihj
b25zdCBTdHJpbmcmIG1ldGhvZE5hbWUpCiAgICAgOiBtX21ldGhvZE5hbWUobWV0aG9kTmFtZSkK
IHsKLSAgICBpZiAoYXV0byogY2hhbm5lbCA9IGdldExvZ0NoYW5uZWwoIkFjY2Vzc2liaWxpdHki
KSkKKyAgICBpZiAoYXV0byogY2hhbm5lbCA9IGdldExvZ0NoYW5uZWwoIkFjY2Vzc2liaWxpdHki
X3MpKQogICAgICAgICBjaGFubmVsLT5sZXZlbCA9IFdURkxvZ0xldmVsOjpEZWJ1ZzsKIAogICAg
IGlmIChzaG91bGRMb2coKSkgewpAQCAtNzgsNiArNzgsMTIgQEAgdm9pZCBBWExvZ2dlcjo6bG9n
KGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKICAgICAgICAgTE9HKEFjY2Vzc2liaWxpdHksICIlcyIs
IG1lc3NhZ2UudXRmOCgpLmRhdGEoKSk7CiB9CiAKK3ZvaWQgQVhMb2dnZXI6OmxvZyhjb25zdCBj
aGFyKiBtZXNzYWdlKQoreworICAgIGlmIChzaG91bGRMb2coKSkKKyAgICAgICAgTE9HKEFjY2Vz
c2liaWxpdHksICIlcyIsIG1lc3NhZ2UpOworfQorCiB2b2lkIEFYTG9nZ2VyOjpsb2coUmVmUHRy
PEFYQ29yZU9iamVjdD4gb2JqZWN0KQogewogICAgIGlmIChzaG91bGRMb2coKSkgewpAQCAtMzI4
LDE1ICszMzQsMTUgQEAgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiBzdHJlYW0s
IEFjY2Vzc2liaWxpdHlTZWFyY2hLZXkgc2VhcmNoS2V5KQogVGV4dFN0cmVhbSYgb3BlcmF0b3I8
PChUZXh0U3RyZWFtJiBzdHJlYW0sIGNvbnN0IEFjY2Vzc2liaWxpdHlTZWFyY2hDcml0ZXJpYSYg
Y3JpdGVyaWEpCiB7CiAgICAgVGV4dFN0cmVhbTo6R3JvdXBTY29wZSBncm91cFNjb3BlKHN0cmVh
bSk7Ci0gICAgYXV0byBzdHJlYW1Dcml0ZXJpYU9iamVjdCA9IFsmc3RyZWFtXSAoU3RyaW5nIG9i
amVjdExhYmVsLCBhdXRvKiBheE9iamVjdCkgeworICAgIGF1dG8gc3RyZWFtQ3JpdGVyaWFPYmpl
Y3QgPSBbJnN0cmVhbV0gKEFTQ0lJTGl0ZXJhbCBvYmplY3RMYWJlbCwgYXV0byogYXhPYmplY3Qp
IHsKICAgICAgICAgc3RyZWFtLnN0YXJ0R3JvdXAoKTsKLSAgICAgICAgc3RyZWFtIDw8IG9iamVj
dExhYmVsIDw8ICIgIiA8PCBheE9iamVjdCA8PCAiLCBJRCAiIDw8IChheE9iamVjdCA/IGF4T2Jq
ZWN0LT5vYmplY3RJRCgpIDogQVhJRCgpKTsKKyAgICAgICAgc3RyZWFtIDw8IG9iamVjdExhYmVs
LmNoYXJhY3RlcnMoKSA8PCAiICIgPDwgYXhPYmplY3QgPDwgIiwgSUQgIiA8PCAoYXhPYmplY3Qg
PyBheE9iamVjdC0+b2JqZWN0SUQoKSA6IEFYSUQoKSk7CiAgICAgICAgIHN0cmVhbS5lbmRHcm91
cCgpOwogICAgIH07CiAKICAgICBzdHJlYW0gPDwgIlNlYXJjaENyaXRlcmlhICIgPDwgJmNyaXRl
cmlhOwotICAgIHN0cmVhbUNyaXRlcmlhT2JqZWN0KCJhbmNob3JPYmplY3QiLCBjcml0ZXJpYS5h
bmNob3JPYmplY3QpOwotICAgIHN0cmVhbUNyaXRlcmlhT2JqZWN0KCJzdGFydE9iamVjdCIsIGNy
aXRlcmlhLnN0YXJ0T2JqZWN0KTsKKyAgICBzdHJlYW1Dcml0ZXJpYU9iamVjdCgiYW5jaG9yT2Jq
ZWN0Il9zLCBjcml0ZXJpYS5hbmNob3JPYmplY3QpOworICAgIHN0cmVhbUNyaXRlcmlhT2JqZWN0
KCJzdGFydE9iamVjdCJfcywgY3JpdGVyaWEuc3RhcnRPYmplY3QpOwogICAgIHN0cmVhbS5kdW1w
UHJvcGVydHkoInNlYXJjaERpcmVjdGlvbiIsIGNyaXRlcmlhLnNlYXJjaERpcmVjdGlvbik7CiAK
ICAgICBzdHJlYW0ubmV4dExpbmUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQVhMb2dnZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhMb2dn
ZXIuaAppbmRleCBlYTg5MmYyZjk2NmM1NGRjMGNlY2UxZGE3OTI4NGU3OTgxYTBjOTU2Li5kMWZi
YWZiMTdjYmJlYzMyNGFlMjBiOWYxNmNjMDJmNzBjYTA1ZjA4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYTG9nZ2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BWExvZ2dlci5oCkBAIC00Myw2ICs0Myw3IEBAIHB1YmxpYzoKICAgICBBWExv
Z2dlcihjb25zdCBTdHJpbmcmIG1ldGhvZE5hbWUpOwogICAgIH5BWExvZ2dlcigpOwogICAgIHN0
YXRpYyB2b2lkIGxvZyhjb25zdCBTdHJpbmcmKTsKKyAgICBzdGF0aWMgdm9pZCBsb2coY29uc3Qg
Y2hhciopOwogICAgIHN0YXRpYyB2b2lkIGxvZyhSZWZQdHI8QVhDb3JlT2JqZWN0Pik7CiAgICAg
c3RhdGljIHZvaWQgbG9nKGNvbnN0IFZlY3RvcjxSZWZQdHI8QVhDb3JlT2JqZWN0Pj4mKTsKICAg
ICBzdGF0aWMgdm9pZCBsb2coY29uc3Qgc3RkOjpwYWlyPFJlZlB0cjxBWENvcmVPYmplY3Q+LCBB
WE9iamVjdENhY2hlOjpBWE5vdGlmaWNhdGlvbj4mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCmluZGV4IDc3MjJjNmQwZDI5Nzk5OWUyYzU5OTZm
YzJhZDA4ZWI5MjBiMDJjOGEuLjUzY2MwN2Y0MDAxZmFiNzI4MjRiMmQxOWQxZWZmMDY2Mjk3YTlh
ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNo
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNw
cApAQCAtMjUyLDcgKzI1Miw3IEBAIEFYT2JqZWN0Q2FjaGU6On5BWE9iamVjdENhY2hlKCkKIAog
Ym9vbCBBWE9iamVjdENhY2hlOjppc01vZGFsRWxlbWVudChFbGVtZW50JiBlbGVtZW50KSBjb25z
dAogewotICAgIGJvb2wgaGFzRGlhbG9nUm9sZSA9IG5vZGVIYXNSb2xlKCZlbGVtZW50LCAiZGlh
bG9nIikgfHwgbm9kZUhhc1JvbGUoJmVsZW1lbnQsICJhbGVydGRpYWxvZyIpOworICAgIGJvb2wg
aGFzRGlhbG9nUm9sZSA9IG5vZGVIYXNSb2xlKCZlbGVtZW50LCAiZGlhbG9nIl9zKSB8fCBub2Rl
SGFzUm9sZSgmZWxlbWVudCwgImFsZXJ0ZGlhbG9nIl9zKTsKICAgICBib29sIGlzQXJpYU1vZGFs
ID0gZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoZWxlbWVudC5hdHRyaWJ1dGVXaXRob3V0
U3luY2hyb25pemF0aW9uKGFyaWFfbW9kYWxBdHRyKSwgInRydWUiKTsKIAogICAgIHJldHVybiAo
aGFzRGlhbG9nUm9sZSAmJiBpc0FyaWFNb2RhbCkgfHwgKGlzPEhUTUxEaWFsb2dFbGVtZW50Pihl
bGVtZW50KSAmJiBkb3duY2FzdDxIVE1MRGlhbG9nRWxlbWVudD4oZWxlbWVudCkuaXNNb2RhbCgp
KTsKQEAgLTU2MCwyMiArNTYwLDIyIEBAIHN0YXRpYyBSZWY8QWNjZXNzaWJpbGl0eU9iamVjdD4g
Y3JlYXRlRnJvbVJlbmRlcmVyKFJlbmRlck9iamVjdCogcmVuZGVyZXIpCiAKICAgICAvLyBJZiB0
aGUgbm9kZSBpcyBhcmlhIHJvbGU9Imxpc3QiIG9yIHRoZSBhcmlhIHJvbGUgaXMgZW1wdHkgYW5k
IGl0cyBhCiAgICAgLy8gdWwvb2wvZGwgdHlwZSAoaXQgc2hvdWxkbid0IGJlIGEgbGlzdCBpZiBh
cmlhIHNheXMgb3RoZXJ3aXNlKS4KLSAgICBpZiAobm9kZSAmJiAoKG5vZGVIYXNSb2xlKG5vZGUs
ICJsaXN0IikgfHwgbm9kZUhhc1JvbGUobm9kZSwgImRpcmVjdG9yeSIpKQorICAgIGlmIChub2Rl
ICYmICgobm9kZUhhc1JvbGUobm9kZSwgImxpc3QiX3MpIHx8IG5vZGVIYXNSb2xlKG5vZGUsICJk
aXJlY3RvcnkiX3MpKQogICAgICAgICAgICAgICAgICAgICAgIHx8IChub2RlSGFzUm9sZShub2Rl
LCBudWxsQXRvbSgpKSAmJiAobm9kZS0+aGFzVGFnTmFtZSh1bFRhZykgfHwgbm9kZS0+aGFzVGFn
TmFtZShvbFRhZykgfHwgbm9kZS0+aGFzVGFnTmFtZShkbFRhZykpKSkpCiAgICAgICAgIHJldHVy
biBBY2Nlc3NpYmlsaXR5TGlzdDo6Y3JlYXRlKHJlbmRlcmVyKTsKIAogICAgIC8vIGFyaWEgdGFi
bGVzCi0gICAgaWYgKG5vZGVIYXNSb2xlKG5vZGUsICJncmlkIikgfHwgbm9kZUhhc1JvbGUobm9k
ZSwgInRyZWVncmlkIikgfHwgbm9kZUhhc1JvbGUobm9kZSwgInRhYmxlIikpCisgICAgaWYgKG5v
ZGVIYXNSb2xlKG5vZGUsICJncmlkIl9zKSB8fCBub2RlSGFzUm9sZShub2RlLCAidHJlZWdyaWQi
X3MpIHx8IG5vZGVIYXNSb2xlKG5vZGUsICJ0YWJsZSJfcykpCiAgICAgICAgIHJldHVybiBBY2Nl
c3NpYmlsaXR5QVJJQUdyaWQ6OmNyZWF0ZShyZW5kZXJlcik7Ci0gICAgaWYgKG5vZGVIYXNSb2xl
KG5vZGUsICJyb3ciKSkKKyAgICBpZiAobm9kZUhhc1JvbGUobm9kZSwgInJvdyJfcykpCiAgICAg
ICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5QVJJQUdyaWRSb3c6OmNyZWF0ZShyZW5kZXJlcik7Ci0g
ICAgaWYgKG5vZGVIYXNSb2xlKG5vZGUsICJncmlkY2VsbCIpIHx8IG5vZGVIYXNSb2xlKG5vZGUs
ICJjZWxsIikgfHwgbm9kZUhhc1JvbGUobm9kZSwgImNvbHVtbmhlYWRlciIpIHx8IG5vZGVIYXNS
b2xlKG5vZGUsICJyb3doZWFkZXIiKSkKKyAgICBpZiAobm9kZUhhc1JvbGUobm9kZSwgImdyaWRj
ZWxsIl9zKSB8fCBub2RlSGFzUm9sZShub2RlLCAiY2VsbCJfcykgfHwgbm9kZUhhc1JvbGUobm9k
ZSwgImNvbHVtbmhlYWRlciJfcykgfHwgbm9kZUhhc1JvbGUobm9kZSwgInJvd2hlYWRlciJfcykp
CiAgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5QVJJQUdyaWRDZWxsOjpjcmVhdGUocmVuZGVy
ZXIpOwogCiAgICAgLy8gYXJpYSB0cmVlCi0gICAgaWYgKG5vZGVIYXNSb2xlKG5vZGUsICJ0cmVl
IikpCisgICAgaWYgKG5vZGVIYXNSb2xlKG5vZGUsICJ0cmVlIl9zKSkKICAgICAgICAgcmV0dXJu
IEFjY2Vzc2liaWxpdHlUcmVlOjpjcmVhdGUocmVuZGVyZXIpOwotICAgIGlmIChub2RlSGFzUm9s
ZShub2RlLCAidHJlZWl0ZW0iKSkKKyAgICBpZiAobm9kZUhhc1JvbGUobm9kZSwgInRyZWVpdGVt
Il9zKSkKICAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlUcmVlSXRlbTo6Y3JlYXRlKHJlbmRl
cmVyKTsKIAogICAgIGlmIChub2RlICYmIGlzPEhUTUxMYWJlbEVsZW1lbnQ+KG5vZGUpICYmIG5v
ZGVIYXNSb2xlKG5vZGUsIG51bGxBdG9tKCkpKQpAQCAtODY1LDcgKzg2NSw3IEBAIEFjY2Vzc2li
aWxpdHlPYmplY3QqIEFYT2JqZWN0Q2FjaGU6OmNyZWF0ZShBY2Nlc3NpYmlsaXR5Um9sZSByb2xl
KQogCiB2b2lkIEFYT2JqZWN0Q2FjaGU6OnJlbW92ZShBWElEIGF4SUQpCiB7Ci0gICAgQVhUUkFD
RSgiQVhPYmplY3RDYWNoZTo6cmVtb3ZlIik7CisgICAgQVhUUkFDRSgiQVhPYmplY3RDYWNoZTo6
cmVtb3ZlIl9zKTsKICAgICBBWExPRyhtYWtlU3RyaW5nKCJBWElEICIsIGF4SUQubG9nZ2luZ1N0
cmluZygpKSk7CiAKICAgICBpZiAoIWF4SUQpCkBAIC05NzcsNyArOTc3LDcgQEAgdm9pZCBBWE9i
amVjdENhY2hlOjp0ZXh0Q2hhbmdlZChOb2RlKiBub2RlKQogCiB2b2lkIEFYT2JqZWN0Q2FjaGU6
OnRleHRDaGFuZ2VkKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCkKIHsKLSAgICBBWFRSQUNF
KCJBWE9iamVjdENhY2hlOjp0ZXh0Q2hhbmdlZCIpOworICAgIEFYVFJBQ0UoIkFYT2JqZWN0Q2Fj
aGU6OnRleHRDaGFuZ2VkIl9zKTsKICAgICBBWExPRyhvYmplY3QpOwogCiAgICAgaWYgKCFvYmpl
Y3QpCkBAIC0xMDgyLDcgKzEwODIsNyBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZUNoaWxk
cmVuQ2hhbmdlZChBY2Nlc3NpYmlsaXR5T2JqZWN0JiBvYmplY3QpCiAKIHZvaWQgQVhPYmplY3RD
YWNoZTo6aGFuZGxlTWVudU9wZW5lZChOb2RlKiBub2RlKQogewotICAgIGlmICghbm9kZSB8fCAh
bm9kZS0+cmVuZGVyZXIoKSB8fCAhbm9kZUhhc1JvbGUobm9kZSwgIm1lbnUiKSkKKyAgICBpZiAo
IW5vZGUgfHwgIW5vZGUtPnJlbmRlcmVyKCkgfHwgIW5vZGVIYXNSb2xlKG5vZGUsICJtZW51Il9z
KSkKICAgICAgICAgcmV0dXJuOwogICAgIAogICAgIHBvc3ROb3RpZmljYXRpb24oZ2V0T3JDcmVh
dGUobm9kZSksICZkb2N1bWVudCgpLCBBWE1lbnVPcGVuZWQpOwpAQCAtMTEzNCw3ICsxMTM0LDcg
QEAgdm9pZCBBWE9iamVjdENhY2hlOjpjaGlsZHJlbkNoYW5nZWQoQWNjZXNzaWJpbGl0eU9iamVj
dCogb2JqZWN0KQogCiB2b2lkIEFYT2JqZWN0Q2FjaGU6Om5vdGlmaWNhdGlvblBvc3RUaW1lckZp
cmVkKCkKIHsKLSAgICBBWFRSQUNFKCJBWE9iamVjdENhY2hlOjpub3RpZmljYXRpb25Qb3N0VGlt
ZXJGaXJlZCIpOworICAgIEFYVFJBQ0UoIkFYT2JqZWN0Q2FjaGU6Om5vdGlmaWNhdGlvblBvc3RU
aW1lckZpcmVkIl9zKTsKICAgICAvLyBEdXJpbmcgTGF5b3V0VGVzdHMsIGFjY2Vzc2liaWxpdHkg
bWF5IGJlIGRpc2FibGVkIGJldHdlZW4gdGhlIHRpbWUgdGhlIG5vdGlmaWNhdGlvbnMgYXJlIHF1
ZXVlZCBhbmQgdGhlIHRpbWVyIGZpcmVzLgogICAgIC8vIFRodXMgY2hlY2sgaGVyZSBhbmQgcmV0
dXJuIGlmIGFjY2Vzc2liaWxpdHkgaXMgZGlzYWJsZWQuCiAgICAgaWYgKCFhY2Nlc3NpYmlsaXR5
RW5hYmxlZCgpKQpAQCAtMTE5NSw3ICsxMTk1LDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwYXNz
d29yZE5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKCkKICAgICBhdXRvIG5vdGlmaWNhdGlvbnMg
PSBzdGQ6OmV4Y2hhbmdlKG1fcGFzc3dvcmROb3RpZmljYXRpb25zVG9Qb3N0LCB7IH0pOwogCiAg
ICAgZm9yIChhdXRvJiBub3RpZmljYXRpb24gOiBub3RpZmljYXRpb25zKQotICAgICAgICBwb3N0
VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24obm90aWZpY2F0aW9uLmdldCgpLCBB
WFRleHRFZGl0VHlwZUluc2VydCwgIiAiLCBWaXNpYmxlUG9zaXRpb24oKSk7CisgICAgICAgIHBv
c3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihub3RpZmljYXRpb24uZ2V0KCks
IEFYVGV4dEVkaXRUeXBlSW5zZXJ0LCAiICJfcywgVmlzaWJsZVBvc2l0aW9uKCkpOwogI2VuZGlm
CiB9CiAKQEAgLTEyNDMsNyArMTI0Myw3IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdE5vdGlm
aWNhdGlvbihOb2RlKiBub2RlLCBBWE5vdGlmaWNhdGlvbiBub3RpZmljYXRpb24sIFBvCiAKIHZv
aWQgQVhPYmplY3RDYWNoZTo6cG9zdE5vdGlmaWNhdGlvbihBWENvcmVPYmplY3QqIG9iamVjdCwg
RG9jdW1lbnQqIGRvY3VtZW50LCBBWE5vdGlmaWNhdGlvbiBub3RpZmljYXRpb24sIFBvc3RUYXJn
ZXQgcG9zdFRhcmdldCkKIHsKLSAgICBBWFRSQUNFKCJBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZp
Y2F0aW9uIik7CisgICAgQVhUUkFDRSgiQVhPYmplY3RDYWNoZTo6cG9zdE5vdGlmaWNhdGlvbiJf
cyk7CiAgICAgQVhMT0coc3RkOjptYWtlX3BhaXIob2JqZWN0LCBub3RpZmljYXRpb24pKTsKICAg
ICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogCkBAIC0xMjczLDcgKzEyNzMsNyBAQCB2b2lkIEFY
T2JqZWN0Q2FjaGU6OmhhbmRsZU1lbnVJdGVtU2VsZWN0ZWQoTm9kZSogbm9kZSkKICAgICBpZiAo
IW5vZGUpCiAgICAgICAgIHJldHVybjsKICAgICAKLSAgICBpZiAoIW5vZGVIYXNSb2xlKG5vZGUs
ICJtZW51aXRlbSIpICYmICFub2RlSGFzUm9sZShub2RlLCAibWVudWl0ZW1yYWRpbyIpICYmICFu
b2RlSGFzUm9sZShub2RlLCAibWVudWl0ZW1jaGVja2JveCIpKQorICAgIGlmICghbm9kZUhhc1Jv
bGUobm9kZSwgIm1lbnVpdGVtIl9zKSAmJiAhbm9kZUhhc1JvbGUobm9kZSwgIm1lbnVpdGVtcmFk
aW8iX3MpICYmICFub2RlSGFzUm9sZShub2RlLCAibWVudWl0ZW1jaGVja2JveCJfcykpCiAgICAg
ICAgIHJldHVybjsKICAgICAKICAgICBpZiAoIWRvd25jYXN0PEVsZW1lbnQ+KCpub2RlKS5mb2N1
c2VkKCkgJiYgIWVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGRvd25jYXN0PEVsZW1lbnQ+
KCpub2RlKS5hdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKGFyaWFfc2VsZWN0ZWRBdHRy
KSwgInRydWUiKSkKQEAgLTEzNDcsOCArMTM0Nyw4IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6c2Vs
ZWN0ZWRTdGF0ZUNoYW5nZWQoTm9kZSogbm9kZSkKIHsKICAgICAvLyBGb3IgYSB0YWJsZSBjZWxs
LCBwb3N0IEFYU2VsZWN0ZWRTdGF0ZUNoYW5nZWQgb24gdGhlIGNlbGwgaXRzZWxmLgogICAgIC8v
IEZvciBhbnkgb3RoZXIgZWxlbWVudCwgcG9zdCBBWFNlbGVjdGVkQ2hpbGRyZW5DaGFuZ2VkIG9u
IHRoZSBwYXJlbnQuCi0gICAgaWYgKG5vZGVIYXNSb2xlKG5vZGUsICJncmlkY2VsbCIpIHx8IG5v
ZGVIYXNSb2xlKG5vZGUsICJjZWxsIikKLSAgICAgICAgfHwgbm9kZUhhc1JvbGUobm9kZSwgImNv
bHVtbmhlYWRlciIpIHx8IG5vZGVIYXNSb2xlKG5vZGUsICJyb3doZWFkZXIiKSkKKyAgICBpZiAo
bm9kZUhhc1JvbGUobm9kZSwgImdyaWRjZWxsIl9zKSB8fCBub2RlSGFzUm9sZShub2RlLCAiY2Vs
bCJfcykKKyAgICAgICAgfHwgbm9kZUhhc1JvbGUobm9kZSwgImNvbHVtbmhlYWRlciJfcykgfHwg
bm9kZUhhc1JvbGUobm9kZSwgInJvd2hlYWRlciJfcykpCiAgICAgICAgIHBvc3ROb3RpZmljYXRp
b24obm9kZSwgQVhTZWxlY3RlZFN0YXRlQ2hhbmdlZCk7CiAgICAgZWxzZQogICAgICAgICBzZWxl
Y3RlZENoaWxkcmVuQ2hhbmdlZChub2RlKTsKQEAgLTE1NDIsNyArMTU0Miw3IEBAIHZvaWQgQVhP
YmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihjb25zdCBQb3NpdGlv
biYgcG9zaXRpb24sIGNvCiAKIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5n
ZU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3QsIGNvbnN0IEFYVGV4dFN0
YXRlQ2hhbmdlSW50ZW50JiBpbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlv
bikKIHsKLSAgICBBWFRSQUNFKCJBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90
aWZpY2F0aW9uIik7CisgICAgQVhUUkFDRSgiQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNo
YW5nZU5vdGlmaWNhdGlvbiJfcyk7CiAgICAgc3RvcENhY2hpbmdDb21wdXRlZE9iamVjdEF0dHJp
YnV0ZXMoKTsKIAogI2lmIFBMQVRGT1JNKENPQ09BKSB8fCBVU0UoQVRTUEkpCkBAIC0xNTc0LDcg
KzE1NzQsNyBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmlj
YXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0LAogCiB2b2lkIEFYT2JqZWN0Q2FjaGU6
OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSogbm9kZSwgQVhUZXh0RWRpdFR5
cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0
aW9uKQogewotICAgIEFYVFJBQ0UoIkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VO
b3RpZmljYXRpb24iKTsKKyAgICBBWFRSQUNFKCJBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRl
Q2hhbmdlTm90aWZpY2F0aW9uIl9zKTsKICAgICBpZiAoIW5vZGUgfHwgdHlwZSA9PSBBWFRleHRF
ZGl0VHlwZVVua25vd24pCiAgICAgICAgIHJldHVybjsKIApAQCAtMTkxMiw3ICsxOTEyLDcgQEAg
dm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVBdHRyaWJ1dGVDaGFuZ2UoY29uc3QgUXVhbGlmaWVk
TmFtZSYgYXR0ck5hbWUsIEVsZW1lbnQKIAogdm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVNb2Rh
bENoYW5nZShFbGVtZW50JiBlbGVtZW50KQogewotICAgIGlmICghaXM8SFRNTERpYWxvZ0VsZW1l
bnQ+KGVsZW1lbnQpICYmICFub2RlSGFzUm9sZSgmZWxlbWVudCwgImRpYWxvZyIpICYmICFub2Rl
SGFzUm9sZSgmZWxlbWVudCwgImFsZXJ0ZGlhbG9nIikpCisgICAgaWYgKCFpczxIVE1MRGlhbG9n
RWxlbWVudD4oZWxlbWVudCkgJiYgIW5vZGVIYXNSb2xlKCZlbGVtZW50LCAiZGlhbG9nIl9zKSAm
JiAhbm9kZUhhc1JvbGUoJmVsZW1lbnQsICJhbGVydGRpYWxvZyJfcykpCiAgICAgICAgIHJldHVy
bjsKIAogICAgIHN0b3BDYWNoaW5nQ29tcHV0ZWRPYmplY3RBdHRyaWJ1dGVzKCk7CkBAIC0zMjc3
LDcgKzMyNzcsNyBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnByb2Nlc3NEZWZlcnJlZENoaWxkcmVu
Q2hhbmdlZExpc3QoKQogCiB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBlcmZvcm1EZWZlcnJlZENhY2hl
VXBkYXRlKCkKIHsKLSAgICBBWFRSQUNFKCJBWE9iamVjdENhY2hlOjpwZXJmb3JtRGVmZXJyZWRD
YWNoZVVwZGF0ZSIpOworICAgIEFYVFJBQ0UoIkFYT2JqZWN0Q2FjaGU6OnBlcmZvcm1EZWZlcnJl
ZENhY2hlVXBkYXRlIl9zKTsKICAgICBpZiAobV9wZXJmb3JtaW5nRGVmZXJyZWRDYWNoZVVwZGF0
ZSkKICAgICAgICAgcmV0dXJuOwogICAgIFNldEZvclNjb3BlIHBlcmZvcm1pbmdEZWZlcnJlZENh
Y2hlVXBkYXRlKG1fcGVyZm9ybWluZ0RlZmVycmVkQ2FjaGVVcGRhdGUsIHRydWUpOwpAQCAtMzM3
Myw3ICszMzczLDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjp1cGRhdGVJc29sYXRlZFRyZWUoQVhD
b3JlT2JqZWN0JiBvYmplY3QsIEFYTm90aWZpY2F0aW9uIG5vdGkKIAogdm9pZCBBWE9iamVjdENh
Y2hlOjp1cGRhdGVJc29sYXRlZFRyZWUoY29uc3QgVmVjdG9yPHN0ZDo6cGFpcjxSZWZQdHI8QVhD
b3JlT2JqZWN0PiwgQVhOb3RpZmljYXRpb24+PiYgbm90aWZpY2F0aW9ucykKIHsKLSAgICBBWFRS
QUNFKCJBWE9iamVjdENhY2hlOjp1cGRhdGVJc29sYXRlZFRyZWUiKTsKKyAgICBBWFRSQUNFKCJB
WE9iamVjdENhY2hlOjp1cGRhdGVJc29sYXRlZFRyZWUiX3MpOwogICAgIEFYTE9HKCp0aGlzKTsK
IAogICAgIGlmICghbV9wYWdlSUQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKaW5kZXggMTQyOTEzNzJjZmM0
NmMxZGUyMmU4MzhjZDIyNTlmNzA5M2ZkYTQwOC4uYjJkOGM0OTcwZjJhZDZlMzQwZWRhNWQ3M2Y5
NDFhMTI4NjU2ZjIzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKQEAgLTIzNyw3ICsyMzcsNyBAQCBEb2N1
bWVudCogQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmRvY3VtZW50KCkgY29uc3QKIAogQWNjZXNz
aWJpbGl0eVJvbGUgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmRldGVybWluZUFjY2Vzc2liaWxp
dHlSb2xlKCkKIHsKLSAgICBBWFRSQUNFKCJBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6ZGV0ZXJt
aW5lQWNjZXNzaWJpbGl0eVJvbGUiKTsKKyAgICBBWFRSQUNFKCJBY2Nlc3NpYmlsaXR5Tm9kZU9i
amVjdDo6ZGV0ZXJtaW5lQWNjZXNzaWJpbGl0eVJvbGUiX3MpOwogICAgIGlmICgobV9hcmlhUm9s
ZSA9IGRldGVybWluZUFyaWFSb2xlQXR0cmlidXRlKCkpICE9IEFjY2Vzc2liaWxpdHlSb2xlOjpV
bmtub3duKQogICAgICAgICByZXR1cm4gbV9hcmlhUm9sZTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKaW5kZXggMzRmMTVm
MjU2NDU2M2Y5YzkyMzM1ODIxYmVhZWRmYjA5OTRiOGJhZS4uYmZiZTQyZjNkOGMyZGMzN2U5ZTc1
ZmQ2MzYzNjQxZjNjOTc5MWU4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCkBAIC0xNzI5LDcgKzE3MjksNyBAQCBib29s
IEFjY2Vzc2liaWxpdHlPYmplY3Q6OnN1cHBvcnRzUmVhZE9ubHkoKSBjb25zdAogU3RyaW5nIEFj
Y2Vzc2liaWxpdHlPYmplY3Q6OnJlYWRPbmx5VmFsdWUoKSBjb25zdAogewogICAgIGlmICghaGFz
QXR0cmlidXRlKGFyaWFfcmVhZG9ubHlBdHRyKSkKLSAgICAgICAgcmV0dXJuIGFyaWFSb2xlQXR0
cmlidXRlKCkgIT0gQWNjZXNzaWJpbGl0eVJvbGU6OlVua25vd24gJiYgc3VwcG9ydHNSZWFkT25s
eSgpID8gImZhbHNlIiA6IFN0cmluZygpOworICAgICAgICByZXR1cm4gYXJpYVJvbGVBdHRyaWJ1
dGUoKSAhPSBBY2Nlc3NpYmlsaXR5Um9sZTo6VW5rbm93biAmJiBzdXBwb3J0c1JlYWRPbmx5KCkg
PyAiZmFsc2UiX3MgOiBTdHJpbmcoKTsKIAogICAgIHJldHVybiBnZXRBdHRyaWJ1dGUoYXJpYV9y
ZWFkb25seUF0dHIpLnN0cmluZygpLmNvbnZlcnRUb0FTQ0lJTG93ZXJjYXNlKCk7CiB9CkBAIC0x
NzU3LDcgKzE3NTcsNyBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0eU9iamVjdDo6YXV0b0NvbXBsZXRl
VmFsdWUoKSBjb25zdAogICAgICAgICB8fCBlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShh
dXRvQ29tcGxldGUsICJib3RoIikpCiAgICAgICAgIHJldHVybiBhdXRvQ29tcGxldGU7CiAKLSAg
ICByZXR1cm4gIm5vbmUiOworICAgIHJldHVybiAibm9uZSJfczsKIH0KIAogYm9vbCBBY2Nlc3Np
YmlsaXR5T2JqZWN0Ojpjb250ZW50RWRpdGFibGVBdHRyaWJ1dGVJc0VuYWJsZWQoRWxlbWVudCog
ZWxlbWVudCkKQEAgLTIyMzMsMjAgKzIyMzMsMjAgQEAgU3RyaW5nIEFjY2Vzc2liaWxpdHlPYmpl
Y3Q6OmN1cnJlbnRWYWx1ZSgpIGNvbnN0CiB7CiAgICAgc3dpdGNoIChjdXJyZW50U3RhdGUoKSkg
ewogICAgIGNhc2UgQWNjZXNzaWJpbGl0eUN1cnJlbnRTdGF0ZTo6RmFsc2U6Ci0gICAgICAgIHJl
dHVybiAiZmFsc2UiOworICAgICAgICByZXR1cm4gImZhbHNlIl9zOwogICAgIGNhc2UgQWNjZXNz
aWJpbGl0eUN1cnJlbnRTdGF0ZTo6UGFnZToKLSAgICAgICAgcmV0dXJuICJwYWdlIjsKKyAgICAg
ICAgcmV0dXJuICJwYWdlIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eUN1cnJlbnRTdGF0ZTo6
U3RlcDoKLSAgICAgICAgcmV0dXJuICJzdGVwIjsKKyAgICAgICAgcmV0dXJuICJzdGVwIl9zOwog
ICAgIGNhc2UgQWNjZXNzaWJpbGl0eUN1cnJlbnRTdGF0ZTo6TG9jYXRpb246Ci0gICAgICAgIHJl
dHVybiAibG9jYXRpb24iOworICAgICAgICByZXR1cm4gImxvY2F0aW9uIl9zOwogICAgIGNhc2Ug
QWNjZXNzaWJpbGl0eUN1cnJlbnRTdGF0ZTo6VGltZToKLSAgICAgICAgcmV0dXJuICJ0aW1lIjsK
KyAgICAgICAgcmV0dXJuICJ0aW1lIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eUN1cnJlbnRT
dGF0ZTo6RGF0ZToKLSAgICAgICAgcmV0dXJuICJkYXRlIjsKKyAgICAgICAgcmV0dXJuICJkYXRl
Il9zOwogICAgIGRlZmF1bHQ6CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Q3VycmVudFN0YXRlOjpU
cnVlOgotICAgICAgICByZXR1cm4gInRydWUiOworICAgICAgICByZXR1cm4gInRydWUiX3M7CiAg
ICAgfQogfQogCkBAIC0yMzU1LDExICsyMzU1LDExIEBAIGJvb2wgQWNjZXNzaWJpbGl0eU9iamVj
dDo6cmVwbGFjZVRleHRJblJhbmdlKGNvbnN0IFN0cmluZyYgcmVwbGFjZW1lbnRTdHJpbmcsIGNv
CiAgICAgfQogICAgIAogICAgIGlmIChpczxIVE1MSW5wdXRFbGVtZW50PihlbGVtZW50KSkgewot
ICAgICAgICBkb3duY2FzdDxIVE1MSW5wdXRFbGVtZW50PihlbGVtZW50KS5zZXRSYW5nZVRleHQo
cmVwbGFjZW1lbnRTdHJpbmcsIHJhbmdlLnN0YXJ0LCByYW5nZS5sZW5ndGgsICIiKTsKKyAgICAg
ICAgZG93bmNhc3Q8SFRNTElucHV0RWxlbWVudD4oZWxlbWVudCkuc2V0UmFuZ2VUZXh0KHJlcGxh
Y2VtZW50U3RyaW5nLCByYW5nZS5zdGFydCwgcmFuZ2UubGVuZ3RoLCBlbXB0eVN0cmluZygpKTsK
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogICAgIGlmIChpczxIVE1MVGV4dEFyZWFFbGVt
ZW50PihlbGVtZW50KSkgewotICAgICAgICBkb3duY2FzdDxIVE1MVGV4dEFyZWFFbGVtZW50Pihl
bGVtZW50KS5zZXRSYW5nZVRleHQocmVwbGFjZW1lbnRTdHJpbmcsIHJhbmdlLnN0YXJ0LCByYW5n
ZS5sZW5ndGgsICIiKTsKKyAgICAgICAgZG93bmNhc3Q8SFRNTFRleHRBcmVhRWxlbWVudD4oZWxl
bWVudCkuc2V0UmFuZ2VUZXh0KHJlcGxhY2VtZW50U3RyaW5nLCByYW5nZS5zdGFydCwgcmFuZ2Uu
bGVuZ3RoLCBlbXB0eVN0cmluZygpKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCkBA
IC0yNTk0LDcgKzI1OTQsNyBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0eU9iamVjdDo6Y29tcHV0ZWRS
b2xlU3RyaW5nKCkgY29uc3QKIAogICAgIC8vIFdlIGRvIG5vdCBjb21wdXRlIGEgcm9sZSBzdHJp
bmcgZm9yIGdlbmVyaWMgYmxvY2sgZWxlbWVudHMgd2l0aCB1c2VyLWFnZW50IGFzc2lnbmVkIHJv
bGVzLgogICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpHcm91cCB8fCByb2xlID09
IEFjY2Vzc2liaWxpdHlSb2xlOjpUZXh0R3JvdXApCi0gICAgICAgIHJldHVybiAiIjsKKyAgICAg
ICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CiAKICAgICAvLyBXZSBkbyBjb21wdXRlIGEgcm9sZSBz
dHJpbmcgZm9yIGJsb2NrIGVsZW1lbnRzIHdpdGggYXV0aG9yLXByb3ZpZGVkIHJvbGVzLgogICAg
IGlmIChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvblRleHRHcm91cApAQCAt
MjcyNSw3ICsyNzI1LDcgQEAgU3RyaW5nIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnJvbGVEZXNjcmlw
dGlvbigpIGNvbnN0CiAKIGJvb2wgbm9kZUhhc1ByZXNlbnRhdGlvblJvbGUoTm9kZSogbm9kZSkK
IHsKLSAgICByZXR1cm4gbm9kZUhhc1JvbGUobm9kZSwgInByZXNlbnRhdGlvbiIpIHx8IG5vZGVI
YXNSb2xlKG5vZGUsICJub25lIik7CisgICAgcmV0dXJuIG5vZGVIYXNSb2xlKG5vZGUsICJwcmVz
ZW50YXRpb24iX3MpIHx8IG5vZGVIYXNSb2xlKG5vZGUsICJub25lIl9zKTsKIH0KICAgICAKIGJv
b2wgQWNjZXNzaWJpbGl0eU9iamVjdDo6c3VwcG9ydHNQcmVzc0FjdGlvbigpIGNvbnN0CkBAIC0z
MjEwLDEwICszMjEwLDEwIEBAIEhhc2hNYXA8U3RyaW5nLCBBWEVkaXRpbmdTdHlsZVZhbHVlVmFy
aWFudD4gQWNjZXNzaWJpbGl0eU9iamVjdDo6cmVzb2x2ZWRFZGl0aW5nCiAgICAgICAgIHJldHVy
biB7IH07CiAKICAgICBIYXNoTWFwPFN0cmluZywgQVhFZGl0aW5nU3R5bGVWYWx1ZVZhcmlhbnQ+
IHN0eWxlczsKLSAgICBzdHlsZXMuYWRkKCJib2xkIiwgc2VsZWN0aW9uU3R5bGUtPmhhc1N0eWxl
KENTU1Byb3BlcnR5Rm9udFdlaWdodCwgImJvbGQiKSk7Ci0gICAgc3R5bGVzLmFkZCgiaXRhbGlj
Iiwgc2VsZWN0aW9uU3R5bGUtPmhhc1N0eWxlKENTU1Byb3BlcnR5Rm9udFN0eWxlLCAiaXRhbGlj
IikpOwotICAgIHN0eWxlcy5hZGQoInVuZGVybGluZSIsIHNlbGVjdGlvblN0eWxlLT5oYXNTdHls
ZShDU1NQcm9wZXJ0eVdlYmtpdFRleHREZWNvcmF0aW9uc0luRWZmZWN0LCAidW5kZXJsaW5lIikp
OwotICAgIHN0eWxlcy5hZGQoImZvbnRzaXplIiwgc2VsZWN0aW9uU3R5bGUtPmxlZ2FjeUZvbnRT
aXplKCpkb2N1bWVudCkpOworICAgIHN0eWxlcy5hZGQoImJvbGQiX3MsIHNlbGVjdGlvblN0eWxl
LT5oYXNTdHlsZShDU1NQcm9wZXJ0eUZvbnRXZWlnaHQsICJib2xkIl9zKSk7CisgICAgc3R5bGVz
LmFkZCgiaXRhbGljIl9zLCBzZWxlY3Rpb25TdHlsZS0+aGFzU3R5bGUoQ1NTUHJvcGVydHlGb250
U3R5bGUsICJpdGFsaWMiX3MpKTsKKyAgICBzdHlsZXMuYWRkKCJ1bmRlcmxpbmUiX3MsIHNlbGVj
dGlvblN0eWxlLT5oYXNTdHlsZShDU1NQcm9wZXJ0eVdlYmtpdFRleHREZWNvcmF0aW9uc0luRWZm
ZWN0LCAidW5kZXJsaW5lIl9zKSk7CisgICAgc3R5bGVzLmFkZCgiZm9udHNpemUiX3MsIHNlbGVj
dGlvblN0eWxlLT5sZWdhY3lGb250U2l6ZSgqZG9jdW1lbnQpKTsKICAgICByZXR1cm4gc3R5bGVz
OwogfQogCkBAIC00MDg4LDcgKzQwODgsNyBAQCBzdGF0aWMgYm9vbCBpc1JhZGlvQnV0dG9uSW5E
aWZmZXJlbnRBZGhvY0dyb3VwKFJlZlB0cjxBWENvcmVPYmplY3Q+IGF4T2JqZWN0LCBBWAogICAg
IGlmICghcmVmZXJlbmNlT2JqZWN0IHx8ICFyZWZlcmVuY2VPYmplY3QtPmlzUmFkaW9CdXR0b24o
KSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICByZXR1cm4gYXhPYmplY3QtPmF0dHJpYnV0
ZVZhbHVlKCJuYW1lIikgIT0gcmVmZXJlbmNlT2JqZWN0LT5hdHRyaWJ1dGVWYWx1ZSgibmFtZSIp
OworICAgIHJldHVybiBheE9iamVjdC0+YXR0cmlidXRlVmFsdWUoIm5hbWUiX3MpICE9IHJlZmVy
ZW5jZU9iamVjdC0+YXR0cmlidXRlVmFsdWUoIm5hbWUiX3MpOwogfQogCiBzdGF0aWMgYm9vbCBp
c0FjY2Vzc2liaWxpdHlPYmplY3RTZWFyY2hNYXRjaEF0SW5kZXgoUmVmUHRyPEFYQ29yZU9iamVj
dD4gYXhPYmplY3QsIEFjY2Vzc2liaWxpdHlTZWFyY2hDcml0ZXJpYSBjb25zdCYgY3JpdGVyaWEs
IHNpemVfdCBpbmRleCkKQEAgLTQyOTUsNyArNDI5NSw3IEBAIHN0YXRpYyB2b2lkIGFwcGVuZENo
aWxkcmVuVG9BcnJheShSZWZQdHI8QVhDb3JlT2JqZWN0PiBvYmplY3QsIGJvb2wgaXNGb3J3YXJk
LCBSCiAKIHZvaWQgZmluZE1hdGNoaW5nT2JqZWN0cyhBY2Nlc3NpYmlsaXR5U2VhcmNoQ3JpdGVy
aWEgY29uc3QmIGNyaXRlcmlhLCBBWENvcmVPYmplY3Q6OkFjY2Vzc2liaWxpdHlDaGlsZHJlblZl
Y3RvciYgcmVzdWx0cykKIHsKLSAgICBBWFRSQUNFKCJBY2Nlc3NpYmlsaXR5OjpmaW5kTWF0Y2hp
bmdPYmplY3RzIik7CisgICAgQVhUUkFDRSgiQWNjZXNzaWJpbGl0eTo6ZmluZE1hdGNoaW5nT2Jq
ZWN0cyJfcyk7CiAgICAgQVhMT0coY3JpdGVyaWEpOwogCiAgICAgLy8gVGhpcyBzZWFyY2ggYWxn
b3JpdGhtIG9ubHkgc2VhcmNoZXMgdGhlIGVsZW1lbnRzIGJlZm9yZS9hZnRlciB0aGUgc3RhcnRp
bmcgb2JqZWN0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaAppbmRleCA0NmY2MDI4MDJhNzYyMWMwODZm
NTE0NWQwYTcwZWNlNmJmYjgyN2NmLi5lMGJkZGQ5MzFjNGQyNDFlZDc3ODA0M2U5YjI0MWYxMjll
M2ZlZDcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlPYmplY3RJbnRlcmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaApAQCAtMjY0LDMxMiArMjY0LDMxMiBAQCBB
TFdBWVNfSU5MSU5FIFN0cmluZyBhY2Nlc3NpYmlsaXR5Um9sZVRvU3RyaW5nKEFjY2Vzc2liaWxp
dHlSb2xlIHJvbGUpCiB7CiAgICAgc3dpdGNoIChyb2xlKSB7CiAgICAgY2FzZSBBY2Nlc3NpYmls
aXR5Um9sZTo6QW5ub3RhdGlvbjoKLSAgICAgICAgcmV0dXJuICJBbm5vdGF0aW9uIjsKKyAgICAg
ICAgcmV0dXJuICJBbm5vdGF0aW9uIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkFw
cGxpY2F0aW9uOgotICAgICAgICByZXR1cm4gIkFwcGxpY2F0aW9uIjsKKyAgICAgICAgcmV0dXJu
ICJBcHBsaWNhdGlvbiJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNhdGlv
bkFsZXJ0OgotICAgICAgICByZXR1cm4gIkFwcGxpY2F0aW9uQWxlcnQiOworICAgICAgICByZXR1
cm4gIkFwcGxpY2F0aW9uQWxlcnQiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBw
bGljYXRpb25BbGVydERpYWxvZzoKLSAgICAgICAgcmV0dXJuICJBcHBsaWNhdGlvbkFsZXJ0RGlh
bG9nIjsKKyAgICAgICAgcmV0dXJuICJBcHBsaWNhdGlvbkFsZXJ0RGlhbG9nIl9zOwogICAgIGNh
c2UgQWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uRGlhbG9nOgotICAgICAgICByZXR1cm4g
IkFwcGxpY2F0aW9uRGlhbG9nIjsKKyAgICAgICAgcmV0dXJuICJBcHBsaWNhdGlvbkRpYWxvZyJf
czsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvbkdyb3VwOgotICAgICAg
ICByZXR1cm4gIkFwcGxpY2F0aW9uR3JvdXAiOworICAgICAgICByZXR1cm4gIkFwcGxpY2F0aW9u
R3JvdXAiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb25Mb2c6Ci0g
ICAgICAgIHJldHVybiAiQXBwbGljYXRpb25Mb2ciOworICAgICAgICByZXR1cm4gIkFwcGxpY2F0
aW9uTG9nIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uTWFycXVl
ZToKLSAgICAgICAgcmV0dXJuICJBcHBsaWNhdGlvbk1hcnF1ZWUiOworICAgICAgICByZXR1cm4g
IkFwcGxpY2F0aW9uTWFycXVlZSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBs
aWNhdGlvblN0YXR1czoKLSAgICAgICAgcmV0dXJuICJBcHBsaWNhdGlvblN0YXR1cyI7CisgICAg
ICAgIHJldHVybiAiQXBwbGljYXRpb25TdGF0dXMiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5
Um9sZTo6QXBwbGljYXRpb25UZXh0R3JvdXA6Ci0gICAgICAgIHJldHVybiAiQXBwbGljYXRpb25U
ZXh0R3JvdXAiOworICAgICAgICByZXR1cm4gIkFwcGxpY2F0aW9uVGV4dEdyb3VwIl9zOwogICAg
IGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uVGltZXI6Ci0gICAgICAgIHJldHVy
biAiQXBwbGljYXRpb25UaW1lciI7CisgICAgICAgIHJldHVybiAiQXBwbGljYXRpb25UaW1lciJf
czsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpBdWRpbzoKLSAgICAgICAgcmV0dXJuICJB
dWRpbyI7CisgICAgICAgIHJldHVybiAiQXVkaW8iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5
Um9sZTo6QmxvY2txdW90ZToKLSAgICAgICAgcmV0dXJuICJCbG9ja3F1b3RlIjsKKyAgICAgICAg
cmV0dXJuICJCbG9ja3F1b3RlIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkJyb3dz
ZXI6Ci0gICAgICAgIHJldHVybiAiQnJvd3NlciI7CisgICAgICAgIHJldHVybiAiQnJvd3NlciJf
czsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpCdXN5SW5kaWNhdG9yOgotICAgICAgICBy
ZXR1cm4gIkJ1c3lJbmRpY2F0b3IiOworICAgICAgICByZXR1cm4gIkJ1c3lJbmRpY2F0b3IiX3M7
CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QnV0dG9uOgotICAgICAgICByZXR1cm4gIkJ1
dHRvbiI7CisgICAgICAgIHJldHVybiAiQnV0dG9uIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0
eVJvbGU6OkNhbnZhczoKLSAgICAgICAgcmV0dXJuICJDYW52YXMiOworICAgICAgICByZXR1cm4g
IkNhbnZhcyJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpDYXB0aW9uOgotICAgICAg
ICByZXR1cm4gIkNhcHRpb24iOworICAgICAgICByZXR1cm4gIkNhcHRpb24iX3M7CiAgICAgY2Fz
ZSBBY2Nlc3NpYmlsaXR5Um9sZTo6Q2VsbDoKLSAgICAgICAgcmV0dXJuICJDZWxsIjsKKyAgICAg
ICAgcmV0dXJuICJDZWxsIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkNoZWNrQm94
OgotICAgICAgICByZXR1cm4gIkNoZWNrQm94IjsKKyAgICAgICAgcmV0dXJuICJDaGVja0JveCJf
czsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpDb2xvcldlbGw6Ci0gICAgICAgIHJldHVy
biAiQ29sb3JXZWxsIjsKKyAgICAgICAgcmV0dXJuICJDb2xvcldlbGwiX3M7CiAgICAgY2FzZSBB
Y2Nlc3NpYmlsaXR5Um9sZTo6Q29sdW1uOgotICAgICAgICByZXR1cm4gIkNvbHVtbiI7CisgICAg
ICAgIHJldHVybiAiQ29sdW1uIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkNvbHVt
bkhlYWRlcjoKLSAgICAgICAgcmV0dXJuICJDb2x1bW5IZWFkZXIiOworICAgICAgICByZXR1cm4g
IkNvbHVtbkhlYWRlciJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpDb21ib0JveDoK
LSAgICAgICAgcmV0dXJuICJDb21ib0JveCI7CisgICAgICAgIHJldHVybiAiQ29tYm9Cb3giX3M7
CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RGVmaW5pdGlvbjoKLSAgICAgICAgcmV0dXJu
ICJEZWZpbml0aW9uIjsKKyAgICAgICAgcmV0dXJuICJEZWZpbml0aW9uIl9zOwogICAgIGNhc2Ug
QWNjZXNzaWJpbGl0eVJvbGU6OkRlbGV0aW9uOgotICAgICAgICByZXR1cm4gIkRlbGV0aW9uIjsK
KyAgICAgICAgcmV0dXJuICJEZWxldGlvbiJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xl
OjpEZXNjcmlwdGlvbkxpc3Q6Ci0gICAgICAgIHJldHVybiAiRGVzY3JpcHRpb25MaXN0IjsKKyAg
ICAgICAgcmV0dXJuICJEZXNjcmlwdGlvbkxpc3QiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5
Um9sZTo6RGVzY3JpcHRpb25MaXN0VGVybToKLSAgICAgICAgcmV0dXJuICJEZXNjcmlwdGlvbkxp
c3RUZXJtIjsKKyAgICAgICAgcmV0dXJuICJEZXNjcmlwdGlvbkxpc3RUZXJtIl9zOwogICAgIGNh
c2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRlc2NyaXB0aW9uTGlzdERldGFpbDoKLSAgICAgICAgcmV0
dXJuICJEZXNjcmlwdGlvbkxpc3REZXRhaWwiOworICAgICAgICByZXR1cm4gIkRlc2NyaXB0aW9u
TGlzdERldGFpbCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpEZXRhaWxzOgotICAg
ICAgICByZXR1cm4gIkRldGFpbHMiOworICAgICAgICByZXR1cm4gIkRldGFpbHMiX3M7CiAgICAg
Y2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RGlyZWN0b3J5OgotICAgICAgICByZXR1cm4gIkRpcmVj
dG9yeSI7CisgICAgICAgIHJldHVybiAiRGlyZWN0b3J5Il9zOwogICAgIGNhc2UgQWNjZXNzaWJp
bGl0eVJvbGU6OkRpc2Nsb3N1cmVUcmlhbmdsZToKLSAgICAgICAgcmV0dXJuICJEaXNjbG9zdXJl
VHJpYW5nbGUiOworICAgICAgICByZXR1cm4gIkRpc2Nsb3N1cmVUcmlhbmdsZSJfczsKICAgICBj
YXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpEaXY6Ci0gICAgICAgIHJldHVybiAiRGl2IjsKKyAgICAg
ICAgcmV0dXJuICJEaXYiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RG9jdW1lbnQ6
Ci0gICAgICAgIHJldHVybiAiRG9jdW1lbnQiOworICAgICAgICByZXR1cm4gIkRvY3VtZW50Il9z
OwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRvY3VtZW50QXJ0aWNsZToKLSAgICAgICAg
cmV0dXJuICJEb2N1bWVudEFydGljbGUiOworICAgICAgICByZXR1cm4gIkRvY3VtZW50QXJ0aWNs
ZSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpEb2N1bWVudE1hdGg6Ci0gICAgICAg
IHJldHVybiAiRG9jdW1lbnRNYXRoIjsKKyAgICAgICAgcmV0dXJuICJEb2N1bWVudE1hdGgiX3M7
CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RG9jdW1lbnROb3RlOgotICAgICAgICByZXR1
cm4gIkRvY3VtZW50Tm90ZSI7CisgICAgICAgIHJldHVybiAiRG9jdW1lbnROb3RlIl9zOwogICAg
IGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRyYXdlcjoKLSAgICAgICAgcmV0dXJuICJEcmF3ZXIi
OworICAgICAgICByZXR1cm4gIkRyYXdlciJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xl
OjpFZGl0YWJsZVRleHQ6Ci0gICAgICAgIHJldHVybiAiRWRpdGFibGVUZXh0IjsKKyAgICAgICAg
cmV0dXJuICJFZGl0YWJsZVRleHQiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RmVl
ZDoKLSAgICAgICAgcmV0dXJuICJGZWVkIjsKKyAgICAgICAgcmV0dXJuICJGZWVkIl9zOwogICAg
IGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkZpZ3VyZToKLSAgICAgICAgcmV0dXJuICJGaWd1cmUi
OworICAgICAgICByZXR1cm4gIkZpZ3VyZSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xl
OjpGb290ZXI6Ci0gICAgICAgIHJldHVybiAiRm9vdGVyIjsKKyAgICAgICAgcmV0dXJuICJGb290
ZXIiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6Rm9vdG5vdGU6Ci0gICAgICAgIHJl
dHVybiAiRm9vdG5vdGUiOworICAgICAgICByZXR1cm4gIkZvb3Rub3RlIl9zOwogICAgIGNhc2Ug
QWNjZXNzaWJpbGl0eVJvbGU6OkZvcm06Ci0gICAgICAgIHJldHVybiAiRm9ybSI7CisgICAgICAg
IHJldHVybiAiRm9ybSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpHcmFwaGljc0Rv
Y3VtZW50OgotICAgICAgICByZXR1cm4gIkdyYXBoaWNzRG9jdW1lbnQiOworICAgICAgICByZXR1
cm4gIkdyYXBoaWNzRG9jdW1lbnQiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6R3Jh
cGhpY3NPYmplY3Q6Ci0gICAgICAgIHJldHVybiAiR3JhcGhpY3NPYmplY3QiOworICAgICAgICBy
ZXR1cm4gIkdyYXBoaWNzT2JqZWN0Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Okdy
YXBoaWNzU3ltYm9sOgotICAgICAgICByZXR1cm4gIkdyYXBoaWNzU3ltYm9sIjsKKyAgICAgICAg
cmV0dXJuICJHcmFwaGljc1N5bWJvbCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpH
cmlkOgotICAgICAgICByZXR1cm4gIkdyaWQiOworICAgICAgICByZXR1cm4gIkdyaWQiX3M7CiAg
ICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6R3JpZENlbGw6Ci0gICAgICAgIHJldHVybiAiR3Jp
ZENlbGwiOworICAgICAgICByZXR1cm4gIkdyaWRDZWxsIl9zOwogICAgIGNhc2UgQWNjZXNzaWJp
bGl0eVJvbGU6Okdyb3VwOgotICAgICAgICByZXR1cm4gIkdyb3VwIjsKKyAgICAgICAgcmV0dXJu
ICJHcm91cCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpHcm93QXJlYToKLSAgICAg
ICAgcmV0dXJuICJHcm93QXJlYSI7CisgICAgICAgIHJldHVybiAiR3Jvd0FyZWEiX3M7CiAgICAg
Y2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6SGVhZGluZzoKLSAgICAgICAgcmV0dXJuICJIZWFkaW5n
IjsKKyAgICAgICAgcmV0dXJuICJIZWFkaW5nIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJv
bGU6OkhlbHBUYWc6Ci0gICAgICAgIHJldHVybiAiSGVscFRhZyI7CisgICAgICAgIHJldHVybiAi
SGVscFRhZyJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpIb3Jpem9udGFsUnVsZToK
LSAgICAgICAgcmV0dXJuICJIb3Jpem9udGFsUnVsZSI7CisgICAgICAgIHJldHVybiAiSG9yaXpv
bnRhbFJ1bGUiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6SWdub3JlZDoKLSAgICAg
ICAgcmV0dXJuICJJZ25vcmVkIjsKKyAgICAgICAgcmV0dXJuICJJZ25vcmVkIl9zOwogICAgIGNh
c2UgQWNjZXNzaWJpbGl0eVJvbGU6OklubGluZToKLSAgICAgICAgcmV0dXJuICJJbmxpbmUiOwor
ICAgICAgICByZXR1cm4gIklubGluZSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpJ
bWFnZToKLSAgICAgICAgcmV0dXJuICJJbWFnZSI7CisgICAgICAgIHJldHVybiAiSW1hZ2UiX3M7
CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6SW1hZ2VNYXA6Ci0gICAgICAgIHJldHVybiAi
SW1hZ2VNYXAiOworICAgICAgICByZXR1cm4gIkltYWdlTWFwIl9zOwogICAgIGNhc2UgQWNjZXNz
aWJpbGl0eVJvbGU6OkltYWdlTWFwTGluazoKLSAgICAgICAgcmV0dXJuICJJbWFnZU1hcExpbmsi
OworICAgICAgICByZXR1cm4gIkltYWdlTWFwTGluayJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxp
dHlSb2xlOjpJbmNyZW1lbnRvcjoKLSAgICAgICAgcmV0dXJuICJJbmNyZW1lbnRvciI7CisgICAg
ICAgIHJldHVybiAiSW5jcmVtZW50b3IiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6
SW5zZXJ0aW9uOgotICAgICAgICByZXR1cm4gIkluc2VydGlvbiI7CisgICAgICAgIHJldHVybiAi
SW5zZXJ0aW9uIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkxhYmVsOgotICAgICAg
ICByZXR1cm4gIkxhYmVsIjsKKyAgICAgICAgcmV0dXJuICJMYWJlbCJfczsKICAgICBjYXNlIEFj
Y2Vzc2liaWxpdHlSb2xlOjpMYW5kbWFya0Jhbm5lcjoKLSAgICAgICAgcmV0dXJuICJMYW5kbWFy
a0Jhbm5lciI7CisgICAgICAgIHJldHVybiAiTGFuZG1hcmtCYW5uZXIiX3M7CiAgICAgY2FzZSBB
Y2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtDb21wbGVtZW50YXJ5OgotICAgICAgICByZXR1cm4g
IkxhbmRtYXJrQ29tcGxlbWVudGFyeSI7CisgICAgICAgIHJldHVybiAiTGFuZG1hcmtDb21wbGVt
ZW50YXJ5Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJrQ29udGVudElu
Zm86Ci0gICAgICAgIHJldHVybiAiTGFuZG1hcmtDb250ZW50SW5mbyI7CisgICAgICAgIHJldHVy
biAiTGFuZG1hcmtDb250ZW50SW5mbyJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpM
YW5kbWFya0RvY1JlZ2lvbjoKLSAgICAgICAgcmV0dXJuICJMYW5kbWFya0RvY1JlZ2lvbiI7Cisg
ICAgICAgIHJldHVybiAiTGFuZG1hcmtEb2NSZWdpb24iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmls
aXR5Um9sZTo6TGFuZG1hcmtNYWluOgotICAgICAgICByZXR1cm4gIkxhbmRtYXJrTWFpbiI7Cisg
ICAgICAgIHJldHVybiAiTGFuZG1hcmtNYWluIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJv
bGU6OkxhbmRtYXJrTmF2aWdhdGlvbjoKLSAgICAgICAgcmV0dXJuICJMYW5kbWFya05hdmlnYXRp
b24iOworICAgICAgICByZXR1cm4gIkxhbmRtYXJrTmF2aWdhdGlvbiJfczsKICAgICBjYXNlIEFj
Y2Vzc2liaWxpdHlSb2xlOjpMYW5kbWFya1JlZ2lvbjoKLSAgICAgICAgcmV0dXJuICJMYW5kbWFy
a1JlZ2lvbiI7CisgICAgICAgIHJldHVybiAiTGFuZG1hcmtSZWdpb24iX3M7CiAgICAgY2FzZSBB
Y2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtTZWFyY2g6Ci0gICAgICAgIHJldHVybiAiTGFuZG1h
cmtTZWFyY2giOworICAgICAgICByZXR1cm4gIkxhbmRtYXJrU2VhcmNoIl9zOwogICAgIGNhc2Ug
QWNjZXNzaWJpbGl0eVJvbGU6OkxlZ2VuZDoKLSAgICAgICAgcmV0dXJuICJMZWdlbmQiOworICAg
ICAgICByZXR1cm4gIkxlZ2VuZCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpMaW5r
OgotICAgICAgICByZXR1cm4gIkxpbmsiOworICAgICAgICByZXR1cm4gIkxpbmsiX3M7CiAgICAg
Y2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGlzdDoKLSAgICAgICAgcmV0dXJuICJMaXN0IjsKKyAg
ICAgICAgcmV0dXJuICJMaXN0Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Okxpc3RC
b3g6Ci0gICAgICAgIHJldHVybiAiTGlzdEJveCI7CisgICAgICAgIHJldHVybiAiTGlzdEJveCJf
czsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpMaXN0Qm94T3B0aW9uOgotICAgICAgICBy
ZXR1cm4gIkxpc3RCb3hPcHRpb24iOworICAgICAgICByZXR1cm4gIkxpc3RCb3hPcHRpb24iX3M7
CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGlzdEl0ZW06Ci0gICAgICAgIHJldHVybiAi
TGlzdEl0ZW0iOworICAgICAgICByZXR1cm4gIkxpc3RJdGVtIl9zOwogICAgIGNhc2UgQWNjZXNz
aWJpbGl0eVJvbGU6Okxpc3RNYXJrZXI6Ci0gICAgICAgIHJldHVybiAiTGlzdE1hcmtlciI7Cisg
ICAgICAgIHJldHVybiAiTGlzdE1hcmtlciJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xl
OjpNYXJrOgotICAgICAgICByZXR1cm4gIk1hcmsiOworICAgICAgICByZXR1cm4gIk1hcmsiX3M7
CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TWF0aEVsZW1lbnQ6Ci0gICAgICAgIHJldHVy
biAiTWF0aEVsZW1lbnQiOworICAgICAgICByZXR1cm4gIk1hdGhFbGVtZW50Il9zOwogICAgIGNh
c2UgQWNjZXNzaWJpbGl0eVJvbGU6Ok1hdHRlOgotICAgICAgICByZXR1cm4gIk1hdHRlIjsKKyAg
ICAgICAgcmV0dXJuICJNYXR0ZSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpNZW51
OgotICAgICAgICByZXR1cm4gIk1lbnUiOworICAgICAgICByZXR1cm4gIk1lbnUiX3M7CiAgICAg
Y2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TWVudUJhcjoKLSAgICAgICAgcmV0dXJuICJNZW51QmFy
IjsKKyAgICAgICAgcmV0dXJuICJNZW51QmFyIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJv
bGU6Ok1lbnVCdXR0b246Ci0gICAgICAgIHJldHVybiAiTWVudUJ1dHRvbiI7CisgICAgICAgIHJl
dHVybiAiTWVudUJ1dHRvbiJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpNZW51SXRl
bToKLSAgICAgICAgcmV0dXJuICJNZW51SXRlbSI7CisgICAgICAgIHJldHVybiAiTWVudUl0ZW0i
X3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TWVudUl0ZW1DaGVja2JveDoKLSAgICAg
ICAgcmV0dXJuICJNZW51SXRlbUNoZWNrYm94IjsKKyAgICAgICAgcmV0dXJuICJNZW51SXRlbUNo
ZWNrYm94Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Ok1lbnVJdGVtUmFkaW86Ci0g
ICAgICAgIHJldHVybiAiTWVudUl0ZW1SYWRpbyI7CisgICAgICAgIHJldHVybiAiTWVudUl0ZW1S
YWRpbyJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpNZW51TGlzdFBvcHVwOgotICAg
ICAgICByZXR1cm4gIk1lbnVMaXN0UG9wdXAiOworICAgICAgICByZXR1cm4gIk1lbnVMaXN0UG9w
dXAiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TWVudUxpc3RPcHRpb246Ci0gICAg
ICAgIHJldHVybiAiTWVudUxpc3RPcHRpb24iOworICAgICAgICByZXR1cm4gIk1lbnVMaXN0T3B0
aW9uIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Ok1ldGVyOgotICAgICAgICByZXR1
cm4gIk1ldGVyIjsKKyAgICAgICAgcmV0dXJuICJNZXRlciJfczsKICAgICBjYXNlIEFjY2Vzc2li
aWxpdHlSb2xlOjpNb2RlbDoKLSAgICAgICAgcmV0dXJuICJNb2RlbCI7CisgICAgICAgIHJldHVy
biAiTW9kZWwiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6T3V0bGluZToKLSAgICAg
ICAgcmV0dXJuICJPdXRsaW5lIjsKKyAgICAgICAgcmV0dXJuICJPdXRsaW5lIl9zOwogICAgIGNh
c2UgQWNjZXNzaWJpbGl0eVJvbGU6OlBhcmFncmFwaDoKLSAgICAgICAgcmV0dXJuICJQYXJhZ3Jh
cGgiOworICAgICAgICByZXR1cm4gIlBhcmFncmFwaCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxp
dHlSb2xlOjpQb3BVcEJ1dHRvbjoKLSAgICAgICAgcmV0dXJuICJQb3BVcEJ1dHRvbiI7CisgICAg
ICAgIHJldHVybiAiUG9wVXBCdXR0b24iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6
UHJlOgotICAgICAgICByZXR1cm4gIlByZSI7CisgICAgICAgIHJldHVybiAiUHJlIl9zOwogICAg
IGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlByZXNlbnRhdGlvbmFsOgotICAgICAgICByZXR1cm4g
IlByZXNlbnRhdGlvbmFsIjsKKyAgICAgICAgcmV0dXJuICJQcmVzZW50YXRpb25hbCJfczsKICAg
ICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpQcm9ncmVzc0luZGljYXRvcjoKLSAgICAgICAgcmV0
dXJuICJQcm9ncmVzc0luZGljYXRvciI7CisgICAgICAgIHJldHVybiAiUHJvZ3Jlc3NJbmRpY2F0
b3IiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6UmFkaW9CdXR0b246Ci0gICAgICAg
IHJldHVybiAiUmFkaW9CdXR0b24iOworICAgICAgICByZXR1cm4gIlJhZGlvQnV0dG9uIl9zOwog
ICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlJhZGlvR3JvdXA6Ci0gICAgICAgIHJldHVybiAi
UmFkaW9Hcm91cCI7CisgICAgICAgIHJldHVybiAiUmFkaW9Hcm91cCJfczsKICAgICBjYXNlIEFj
Y2Vzc2liaWxpdHlSb2xlOjpSb3dIZWFkZXI6Ci0gICAgICAgIHJldHVybiAiUm93SGVhZGVyIjsK
KyAgICAgICAgcmV0dXJuICJSb3dIZWFkZXIiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9s
ZTo6Um93OgotICAgICAgICByZXR1cm4gIlJvdyI7CisgICAgICAgIHJldHVybiAiUm93Il9zOwog
ICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlJvd0dyb3VwOgotICAgICAgICByZXR1cm4gIlJv
d0dyb3VwIjsKKyAgICAgICAgcmV0dXJuICJSb3dHcm91cCJfczsKICAgICBjYXNlIEFjY2Vzc2li
aWxpdHlSb2xlOjpSdWJ5QmFzZToKLSAgICAgICAgcmV0dXJuICJSdWJ5QmFzZSI7CisgICAgICAg
IHJldHVybiAiUnVieUJhc2UiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6UnVieUJs
b2NrOgotICAgICAgICByZXR1cm4gIlJ1YnlCbG9jayI7CisgICAgICAgIHJldHVybiAiUnVieUJs
b2NrIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlJ1YnlJbmxpbmU6Ci0gICAgICAg
IHJldHVybiAiUnVieUlubGluZSI7CisgICAgICAgIHJldHVybiAiUnVieUlubGluZSJfczsKICAg
ICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpSdWJ5UnVuOgotICAgICAgICByZXR1cm4gIlJ1YnlS
dW4iOworICAgICAgICByZXR1cm4gIlJ1YnlSdW4iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5
Um9sZTo6UnVieVRleHQ6Ci0gICAgICAgIHJldHVybiAiUnVieVRleHQiOworICAgICAgICByZXR1
cm4gIlJ1YnlUZXh0Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlJ1bGVyOgotICAg
ICAgICByZXR1cm4gIlJ1bGVyIjsKKyAgICAgICAgcmV0dXJuICJSdWxlciJfczsKICAgICBjYXNl
IEFjY2Vzc2liaWxpdHlSb2xlOjpSdWxlck1hcmtlcjoKLSAgICAgICAgcmV0dXJuICJSdWxlck1h
cmtlciI7CisgICAgICAgIHJldHVybiAiUnVsZXJNYXJrZXIiX3M7CiAgICAgY2FzZSBBY2Nlc3Np
YmlsaXR5Um9sZTo6U2Nyb2xsQXJlYToKLSAgICAgICAgcmV0dXJuICJTY3JvbGxBcmVhIjsKKyAg
ICAgICAgcmV0dXJuICJTY3JvbGxBcmVhIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6
OlNjcm9sbEJhcjoKLSAgICAgICAgcmV0dXJuICJTY3JvbGxCYXIiOworICAgICAgICByZXR1cm4g
IlNjcm9sbEJhciJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpTZWFyY2hGaWVsZDoK
LSAgICAgICAgcmV0dXJuICJTZWFyY2hGaWVsZCI7CisgICAgICAgIHJldHVybiAiU2VhcmNoRmll
bGQiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6U2hlZXQ6Ci0gICAgICAgIHJldHVy
biAiU2hlZXQiOworICAgICAgICByZXR1cm4gIlNoZWV0Il9zOwogICAgIGNhc2UgQWNjZXNzaWJp
bGl0eVJvbGU6OlNsaWRlcjoKLSAgICAgICAgcmV0dXJuICJTbGlkZXIiOworICAgICAgICByZXR1
cm4gIlNsaWRlciJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpTbGlkZXJUaHVtYjoK
LSAgICAgICAgcmV0dXJuICJTbGlkZXJUaHVtYiI7CisgICAgICAgIHJldHVybiAiU2xpZGVyVGh1
bWIiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6U3BpbkJ1dHRvbjoKLSAgICAgICAg
cmV0dXJuICJTcGluQnV0dG9uIjsKKyAgICAgICAgcmV0dXJuICJTcGluQnV0dG9uIl9zOwogICAg
IGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlNwaW5CdXR0b25QYXJ0OgotICAgICAgICByZXR1cm4g
IlNwaW5CdXR0b25QYXJ0IjsKKyAgICAgICAgcmV0dXJuICJTcGluQnV0dG9uUGFydCJfczsKICAg
ICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpTcGxpdEdyb3VwOgotICAgICAgICByZXR1cm4gIlNw
bGl0R3JvdXAiOworICAgICAgICByZXR1cm4gIlNwbGl0R3JvdXAiX3M7CiAgICAgY2FzZSBBY2Nl
c3NpYmlsaXR5Um9sZTo6U3BsaXR0ZXI6Ci0gICAgICAgIHJldHVybiAiU3BsaXR0ZXIiOworICAg
ICAgICByZXR1cm4gIlNwbGl0dGVyIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlN0
YXRpY1RleHQ6Ci0gICAgICAgIHJldHVybiAiU3RhdGljVGV4dCI7CisgICAgICAgIHJldHVybiAi
U3RhdGljVGV4dCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpTdWJzY3JpcHQ6Ci0g
ICAgICAgIHJldHVybiAiU3Vic2NyaXB0IjsKKyAgICAgICAgcmV0dXJuICJTdWJzY3JpcHQiX3M7
CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6U3VtbWFyeToKLSAgICAgICAgcmV0dXJuICJT
dW1tYXJ5IjsKKyAgICAgICAgcmV0dXJuICJTdW1tYXJ5Il9zOwogICAgIGNhc2UgQWNjZXNzaWJp
bGl0eVJvbGU6OlN1cGVyc2NyaXB0OgotICAgICAgICByZXR1cm4gIlN1cGVyc2NyaXB0IjsKKyAg
ICAgICAgcmV0dXJuICJTdXBlcnNjcmlwdCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xl
OjpTd2l0Y2g6Ci0gICAgICAgIHJldHVybiAiU3dpdGNoIjsKKyAgICAgICAgcmV0dXJuICJTd2l0
Y2giX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6U3lzdGVtV2lkZToKLSAgICAgICAg
cmV0dXJuICJTeXN0ZW1XaWRlIjsKKyAgICAgICAgcmV0dXJuICJTeXN0ZW1XaWRlIl9zOwogICAg
IGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlNWR1Jvb3Q6Ci0gICAgICAgIHJldHVybiAiU1ZHUm9v
dCI7CisgICAgICAgIHJldHVybiAiU1ZHUm9vdCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlS
b2xlOjpTVkdUZXh0OgotICAgICAgICByZXR1cm4gIlNWR1RleHQiOworICAgICAgICByZXR1cm4g
IlNWR1RleHQiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6U1ZHVFNwYW46Ci0gICAg
ICAgIHJldHVybiAiU1ZHVFNwYW4iOworICAgICAgICByZXR1cm4gIlNWR1RTcGFuIl9zOwogICAg
IGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlNWR1RleHRQYXRoOgotICAgICAgICByZXR1cm4gIlNW
R1RleHRQYXRoIjsKKyAgICAgICAgcmV0dXJuICJTVkdUZXh0UGF0aCJfczsKICAgICBjYXNlIEFj
Y2Vzc2liaWxpdHlSb2xlOjpUYWJHcm91cDoKLSAgICAgICAgcmV0dXJuICJUYWJHcm91cCI7Cisg
ICAgICAgIHJldHVybiAiVGFiR3JvdXAiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6
VGFiTGlzdDoKLSAgICAgICAgcmV0dXJuICJUYWJMaXN0IjsKKyAgICAgICAgcmV0dXJuICJUYWJM
aXN0Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlRhYlBhbmVsOgotICAgICAgICBy
ZXR1cm4gIlRhYlBhbmVsIjsKKyAgICAgICAgcmV0dXJuICJUYWJQYW5lbCJfczsKICAgICBjYXNl
IEFjY2Vzc2liaWxpdHlSb2xlOjpUYWI6Ci0gICAgICAgIHJldHVybiAiVGFiIjsKKyAgICAgICAg
cmV0dXJuICJUYWIiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VGFibGU6Ci0gICAg
ICAgIHJldHVybiAiVGFibGUiOworICAgICAgICByZXR1cm4gIlRhYmxlIl9zOwogICAgIGNhc2Ug
QWNjZXNzaWJpbGl0eVJvbGU6OlRhYmxlSGVhZGVyQ29udGFpbmVyOgotICAgICAgICByZXR1cm4g
IlRhYmxlSGVhZGVyQ29udGFpbmVyIjsKKyAgICAgICAgcmV0dXJuICJUYWJsZUhlYWRlckNvbnRh
aW5lciJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpUZXJtOgotICAgICAgICByZXR1
cm4gIlRlcm0iOworICAgICAgICByZXR1cm4gIlRlcm0iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmls
aXR5Um9sZTo6VGV4dEFyZWE6Ci0gICAgICAgIHJldHVybiAiVGV4dEFyZWEiOworICAgICAgICBy
ZXR1cm4gIlRleHRBcmVhIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlRleHRGaWVs
ZDoKLSAgICAgICAgcmV0dXJuICJUZXh0RmllbGQiOworICAgICAgICByZXR1cm4gIlRleHRGaWVs
ZCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpUZXh0R3JvdXA6Ci0gICAgICAgIHJl
dHVybiAiVGV4dEdyb3VwIjsKKyAgICAgICAgcmV0dXJuICJUZXh0R3JvdXAiX3M7CiAgICAgY2Fz
ZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VGltZToKLSAgICAgICAgcmV0dXJuICJUaW1lIjsKKyAgICAg
ICAgcmV0dXJuICJUaW1lIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlRyZWU6Ci0g
ICAgICAgIHJldHVybiAiVHJlZSI7CisgICAgICAgIHJldHVybiAiVHJlZSJfczsKICAgICBjYXNl
IEFjY2Vzc2liaWxpdHlSb2xlOjpUcmVlR3JpZDoKLSAgICAgICAgcmV0dXJuICJUcmVlR3JpZCI7
CisgICAgICAgIHJldHVybiAiVHJlZUdyaWQiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9s
ZTo6VHJlZUl0ZW06Ci0gICAgICAgIHJldHVybiAiVHJlZUl0ZW0iOworICAgICAgICByZXR1cm4g
IlRyZWVJdGVtIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlRvZ2dsZUJ1dHRvbjoK
LSAgICAgICAgcmV0dXJuICJUb2dnbGVCdXR0b24iOworICAgICAgICByZXR1cm4gIlRvZ2dsZUJ1
dHRvbiJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpUb29sYmFyOgotICAgICAgICBy
ZXR1cm4gIlRvb2xiYXIiOworICAgICAgICByZXR1cm4gIlRvb2xiYXIiX3M7CiAgICAgY2FzZSBB
Y2Nlc3NpYmlsaXR5Um9sZTo6VW5rbm93bjoKLSAgICAgICAgcmV0dXJuICJVbmtub3duIjsKKyAg
ICAgICAgcmV0dXJuICJVbmtub3duIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlVz
ZXJJbnRlcmZhY2VUb29sdGlwOgotICAgICAgICByZXR1cm4gIlVzZXJJbnRlcmZhY2VUb29sdGlw
IjsKKyAgICAgICAgcmV0dXJuICJVc2VySW50ZXJmYWNlVG9vbHRpcCJfczsKICAgICBjYXNlIEFj
Y2Vzc2liaWxpdHlSb2xlOjpWYWx1ZUluZGljYXRvcjoKLSAgICAgICAgcmV0dXJuICJWYWx1ZUlu
ZGljYXRvciI7CisgICAgICAgIHJldHVybiAiVmFsdWVJbmRpY2F0b3IiX3M7CiAgICAgY2FzZSBB
Y2Nlc3NpYmlsaXR5Um9sZTo6VmlkZW86Ci0gICAgICAgIHJldHVybiAiVmlkZW8iOworICAgICAg
ICByZXR1cm4gIlZpZGVvIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OldlYkFwcGxp
Y2F0aW9uOgotICAgICAgICByZXR1cm4gIldlYkFwcGxpY2F0aW9uIjsKKyAgICAgICAgcmV0dXJu
ICJXZWJBcHBsaWNhdGlvbiJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpXZWJBcmVh
OgotICAgICAgICByZXR1cm4gIldlYkFyZWEiOworICAgICAgICByZXR1cm4gIldlYkFyZWEiX3M7
CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6V2ViQ29yZUxpbms6Ci0gICAgICAgIHJldHVy
biAiV2ViQ29yZUxpbmsiOworICAgICAgICByZXR1cm4gIldlYkNvcmVMaW5rIl9zOwogICAgIGNh
c2UgQWNjZXNzaWJpbGl0eVJvbGU6OldpbmRvdzoKLSAgICAgICAgcmV0dXJuICJXaW5kb3ciOwor
ICAgICAgICByZXR1cm4gIldpbmRvdyJfczsKICAgICB9CiAgICAgVU5SRUFDSEFCTEUoKTsKLSAg
ICByZXR1cm4gIiI7CisgICAgcmV0dXJuICIiX3M7CiB9CiAKIGVudW0gY2xhc3MgQWNjZXNzaWJp
bGl0eURldGFjaG1lbnRUeXBlIHsgQ2FjaGVEZXN0cm95ZWQsIEVsZW1lbnREZXN0cm95ZWQsIEVs
ZW1lbnRDaGFuZ2VkIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAppbmRleCA0NDIyOTU1YTM4NjVkYmM1
ZGQ3MjM1NGNiYmZiZjIwMjc2NzE1YjA2Li5hNmQzMTAyYzg4MmE2MDk4ZjQ3OTJiN2JjZDA2YmEy
NmQ0Mjg3ZDhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKQEAgLTI3ODcsMTEgKzI3ODcsMTEgQEAg
Ym9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpyZW5kZXJPYmplY3RJc09ic2VydmFibGUo
UmVuZGVyT2JqZWN0JiByZW5kZXJlcikKICAgICBpZiAoIW5vZGUpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICAKLSAgICBpZiAobm9kZUhhc1JvbGUobm9kZSwgImxpc3Rib3giKSB8fCAoaXM8
UmVuZGVyQm94TW9kZWxPYmplY3Q+KHJlbmRlcmVyKSAmJiBkb3duY2FzdDxSZW5kZXJCb3hNb2Rl
bE9iamVjdD4ocmVuZGVyZXIpLmlzTGlzdEJveCgpKSkKKyAgICBpZiAobm9kZUhhc1JvbGUobm9k
ZSwgImxpc3Rib3giX3MpIHx8IChpczxSZW5kZXJCb3hNb2RlbE9iamVjdD4ocmVuZGVyZXIpICYm
IGRvd25jYXN0PFJlbmRlckJveE1vZGVsT2JqZWN0PihyZW5kZXJlcikuaXNMaXN0Qm94KCkpKQog
ICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIC8vIFRleHRib3hlcyBzaG91bGQgc2VuZCBvdXQg
bm90aWZpY2F0aW9ucy4KLSAgICBpZiAobm9kZUhhc1JvbGUobm9kZSwgInRleHRib3giKSB8fCAo
aXM8RWxlbWVudD4oKm5vZGUpICYmIGNvbnRlbnRFZGl0YWJsZUF0dHJpYnV0ZUlzRW5hYmxlZChk
b3duY2FzdDxFbGVtZW50Pihub2RlKSkpKQorICAgIGlmIChub2RlSGFzUm9sZShub2RlLCAidGV4
dGJveCJfcykgfHwgKGlzPEVsZW1lbnQ+KCpub2RlKSAmJiBjb250ZW50RWRpdGFibGVBdHRyaWJ1
dGVJc0VuYWJsZWQoZG93bmNhc3Q8RWxlbWVudD4obm9kZSkpKSkKICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgCiAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMjg0MCw3ICsyODQwLDcgQEAgYm9vbCBB
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzaG91bGRJZ25vcmVBdHRyaWJ1dGVSb2xlKCkgY29u
c3QKIAogQWNjZXNzaWJpbGl0eVJvbGUgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6ZGV0ZXJt
aW5lQWNjZXNzaWJpbGl0eVJvbGUoKQogewotICAgIEFYVFJBQ0UoIkFjY2Vzc2liaWxpdHlSZW5k
ZXJPYmplY3Q6OmRldGVybWluZUFjY2Vzc2liaWxpdHlSb2xlIik7CisgICAgQVhUUkFDRSgiQWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6ZGV0ZXJtaW5lQWNjZXNzaWJpbGl0eVJvbGUiX3MpOwog
ICAgIGlmICghbV9yZW5kZXJlcikKICAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlSb2xlOjpV
bmtub3duOwogCkBAIC0zMjgwLDcgKzMyODAsNyBAQCB2b2lkIEFjY2Vzc2liaWxpdHlSZW5kZXJP
YmplY3Q6OmFkZExpc3RJdGVtTWFya2VyKCkKIAogdm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0Ojp1cGRhdGVSb2xlQWZ0ZXJDaGlsZHJlbkNyZWF0aW9uKCkKIHsKLSAgICBBWFRSQUNFKCJB
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojp1cGRhdGVSb2xlQWZ0ZXJDaGlsZHJlbkNyZWF0aW9u
Iik7CisgICAgQVhUUkFDRSgiQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6dXBkYXRlUm9sZUFm
dGVyQ2hpbGRyZW5DcmVhdGlvbiJfcyk7CiAgICAgLy8gSWYgYSBtZW51IGRvZXMgbm90IGhhdmUg
dmFsaWQgbWVudWl0ZW0gY2hpbGRyZW4sIGl0IHNob3VsZCBub3QgYmUgZXhwb3NlZCBhcyBhIG1l
bnUuCiAgICAgYXV0byByb2xlID0gcm9sZVZhbHVlKCk7CiAgICAgaWYgKHJvbGUgPT0gQWNjZXNz
aWJpbGl0eVJvbGU6Ok1lbnUpIHsKQEAgLTMzNjQsNyArMzM2NCw3IEBAIGNvbnN0IFN0cmluZyBB
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpsaXZlUmVnaW9uUmVsZXZhbnQoKSBjb25zdAogCiAg
ICAgLy8gRGVmYXVsdCBhcmlhLXJlbGV2YW50ID0gImFkZGl0aW9ucyB0ZXh0Ii4KICAgICBpZiAo
cmVsZXZhbnQuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gImFkZGl0aW9ucyB0ZXh0IjsKKyAg
ICAgICAgcmV0dXJuICJhZGRpdGlvbnMgdGV4dCJfczsKICAgICAKICAgICByZXR1cm4gcmVsZXZh
bnQ7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlUYWJsZUNlbGwuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5VGFibGVDZWxsLmNwcAppbmRleCAyN2NmODY5ZjRkNTc3MWM5ODRiMmJlM2Y0NjEyNmI5
ODc3YjYwMDE1Li4zNGE3YmE3Y2NkYjRlNTNhYTU1NDYxOTgwZjE1NGQzODhjMmFmNDNlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUNl
bGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRh
YmxlQ2VsbC5jcHAKQEAgLTY1LDcgKzY1LDcgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5VGFibGVDZWxs
Ojpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0CiAgICAgCiAgICAgLy8gSWdu
b3JlIGFub255bW91cyB0YWJsZSBjZWxscyBhcyBsb25nIGFzIHRoZXkncmUgbm90IGluIGEgdGFi
bGUgKGllLiB3aGVuIGRpc3BsYXk6dGFibGUgaXMgdXNlZCkuCiAgICAgUmVuZGVyT2JqZWN0KiBy
ZW5kZXJUYWJsZSA9IGlzPFJlbmRlclRhYmxlQ2VsbD4ocmVuZGVyZXIoKSkgPyBkb3duY2FzdDxS
ZW5kZXJUYWJsZUNlbGw+KCptX3JlbmRlcmVyKS50YWJsZSgpIDogbnVsbHB0cjsKLSAgICBib29s
IGluVGFibGUgPSByZW5kZXJUYWJsZSAmJiByZW5kZXJUYWJsZS0+bm9kZSgpICYmIChyZW5kZXJU
YWJsZS0+bm9kZSgpLT5oYXNUYWdOYW1lKHRhYmxlVGFnKSB8fCBub2RlSGFzUm9sZShyZW5kZXJU
YWJsZS0+bm9kZSgpLCAiZ3JpZCIpKTsKKyAgICBib29sIGluVGFibGUgPSByZW5kZXJUYWJsZSAm
JiByZW5kZXJUYWJsZS0+bm9kZSgpICYmIChyZW5kZXJUYWJsZS0+bm9kZSgpLT5oYXNUYWdOYW1l
KHRhYmxlVGFnKSB8fCBub2RlSGFzUm9sZShyZW5kZXJUYWJsZS0+bm9kZSgpLCAiZ3JpZCJfcykp
OwogICAgIGlmICghbm9kZSgpICYmICFpblRhYmxlKQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlUcmVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eVRyZWUuY3BwCmluZGV4IDU5MGM5NjE1OTYwNjBkYjZkYjE1NTM4OThlYjE2ZjMwYjQ1NGU2OGQu
LjFjMDBiYzk1NDIzZTI5NmFkNTEyNjM3N2U0ODFjN2NlNzlkZmJkMDMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRyZWUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRyZWUuY3BwCkBAIC02OCw3
ICs2OCw3IEBAIEFjY2Vzc2liaWxpdHlSb2xlIEFjY2Vzc2liaWxpdHlUcmVlOjpkZXRlcm1pbmVB
Y2Nlc3NpYmlsaXR5Um9sZSgpCiBib29sIEFjY2Vzc2liaWxpdHlUcmVlOjpub2RlSGFzVHJlZUl0
ZW1DaGlsZChOb2RlJiBub2RlKSBjb25zdAogewogICAgIGZvciAoYXV0byogY2hpbGQgPSBub2Rl
LmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpIHsKLSAg
ICAgICAgaWYgKG5vZGVIYXNSb2xlKGNoaWxkLCAidHJlZWl0ZW0iKSkKKyAgICAgICAgaWYgKG5v
ZGVIYXNSb2xlKGNoaWxkLCAidHJlZWl0ZW0iX3MpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgfQogICAgIHJldHVybiBmYWxzZTsKQEAgLTkyLDE0ICs5MiwxNCBAQCBib29sIEFjY2Vz
c2liaWxpdHlUcmVlOjppc1RyZWVWYWxpZCgpIGNvbnN0CiAKICAgICAgICAgaWYgKCFpczxFbGVt
ZW50PigqY2hpbGQpKQogICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIGlmIChub2RlSGFz
Um9sZShjaGlsZCwgInRyZWVpdGVtIikpCisgICAgICAgIGlmIChub2RlSGFzUm9sZShjaGlsZCwg
InRyZWVpdGVtIl9zKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBpZiAobm9kZUhh
c1JvbGUoY2hpbGQsICJwcmVzZW50YXRpb24iKSkgeworICAgICAgICBpZiAobm9kZUhhc1JvbGUo
Y2hpbGQsICJwcmVzZW50YXRpb24iX3MpKSB7CiAgICAgICAgICAgICBpZiAoIW5vZGVIYXNUcmVl
SXRlbUNoaWxkKCpjaGlsZCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAg
ICAgICAgY29udGludWU7CiAgICAgICAgIH0KLSAgICAgICAgaWYgKCFub2RlSGFzUm9sZShjaGls
ZCwgImdyb3VwIikpCisgICAgICAgIGlmICghbm9kZUhhc1JvbGUoY2hpbGQsICJncm91cCJfcykp
CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAgICAgZm9yIChhdXRvKiBncm91cENo
aWxkID0gY2hpbGQtPmZpcnN0Q2hpbGQoKTsgZ3JvdXBDaGlsZDsgZ3JvdXBDaGlsZCA9IGdyb3Vw
Q2hpbGQtPm5leHRTaWJsaW5nKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwCmluZGV4IGEx
MzRhZTc1MmZhMjAxMmU3ODBkOTlmYTEwOGMzZjQ4Nzk2YzExMWMuLjVmMDIwMWYwN2I1MzUwNWI3
MGRkZTMzOWEyY2IyOTY1N2NmNzg0NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwCkBA
IC0zMDUsNyArMzA1LDcgQEAgdm9pZCBBWElzb2xhdGVkT2JqZWN0Ojppbml0aWFsaXplQXR0cmli
dXRlRGF0YShBWENvcmVPYmplY3QmIGNvcmVPYmplY3QsIGJvb2wgaXMKICAgICAgICAgc2V0UHJv
cGVydHkoQVhQcm9wZXJ0eU5hbWU6OlRleHRMZW5ndGgsIG9iamVjdC50ZXh0TGVuZ3RoKCkpOwog
CiAgICAgaWYgKG9iamVjdC5pc1JhZGlvQnV0dG9uKCkpIHsKLSAgICAgICAgaWYgKGF1dG8gbmFt
ZUF0dHJpYnV0ZSA9IG9iamVjdC5hdHRyaWJ1dGVWYWx1ZSgibmFtZSIpKQorICAgICAgICBpZiAo
YXV0byBuYW1lQXR0cmlidXRlID0gb2JqZWN0LmF0dHJpYnV0ZVZhbHVlKCJuYW1lIl9zKSkKICAg
ICAgICAgICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpOYW1lQXR0cmlidXRlLCBuYW1l
QXR0cmlidXRlLT5pc29sYXRlZENvcHkoKSk7CiAgICAgfQogCkBAIC0zNjIsNyArMzYyLDcgQEAg
dm9pZCBBWElzb2xhdGVkT2JqZWN0Ojppbml0aWFsaXplQXR0cmlidXRlRGF0YShBWENvcmVPYmpl
Y3QmIGNvcmVPYmplY3QsIGJvb2wgaXMKICAgICBTdHJpbmcgY29tYmluZWRDbGFzc0xpc3Q7CiAg
ICAgZm9yIChhdXRvIGl0ID0gY2xhc3NMaXN0LmJlZ2luKCksIGVuZCA9IGNsYXNzTGlzdC5lbmQo
KTsgaXQgIT0gZW5kOyArK2l0KSB7CiAgICAgICAgIGNvbWJpbmVkQ2xhc3NMaXN0LmFwcGVuZCgq
aXQpOwotICAgICAgICBjb21iaW5lZENsYXNzTGlzdC5hcHBlbmQoIiAiKTsKKyAgICAgICAgY29t
YmluZWRDbGFzc0xpc3QuYXBwZW5kKCIgIl9zKTsKICAgICB9CiAgICAgc2V0UHJvcGVydHkoQVhQ
cm9wZXJ0eU5hbWU6OkNsYXNzTGlzdCwgY29tYmluZWRDbGFzc0xpc3QpOwogCkBAIC02MDAsNyAr
NjAwLDcgQEAgdm9pZCBBWElzb2xhdGVkT2JqZWN0OjphY2Nlc3NpYmlsaXR5VGV4dChWZWN0b3I8
QWNjZXNzaWJpbGl0eVRleHQ+JiB0ZXh0cykgY29uc3QKIHZvaWQgQVhJc29sYXRlZE9iamVjdDo6
Y2xhc3NMaXN0KFZlY3RvcjxTdHJpbmc+JiBsaXN0KSBjb25zdAogewogICAgIFN0cmluZyBjbGFz
c0xpc3QgPSBzdHJpbmdBdHRyaWJ1dGVWYWx1ZShBWFByb3BlcnR5TmFtZTo6Q2xhc3NMaXN0KTsK
LSAgICBsaXN0LmFwcGVuZFZlY3RvcihjbGFzc0xpc3Quc3BsaXQoIiAiKSk7CisgICAgbGlzdC5h
cHBlbmRWZWN0b3IoY2xhc3NMaXN0LnNwbGl0KCIgIl9zKSk7CiB9CiAKIFBBTDo6U2Vzc2lvbklE
IEFYSXNvbGF0ZWRPYmplY3Q6OnNlc3Npb25JRCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5j
cHAKaW5kZXggNjdmNWIxZGVmZDljNDc4ZWRlYmIwNzkzYzY1MGUzOGNmMzlhM2M0Yi4uMWNlNzg1
MDJkMmVjNzcyMjdjYmYzZGIyNzUwYzA3YWJjZTgzOWNlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVl
LmNwcApAQCAtNjIsMTggKzYyLDE4IEBAIEFYSXNvbGF0ZWRUcmVlOjpBWElzb2xhdGVkVHJlZShB
WE9iamVjdENhY2hlKiBheE9iamVjdENhY2hlKQogICAgICwgbV9heE9iamVjdENhY2hlKGF4T2Jq
ZWN0Q2FjaGUpCiAgICAgLCBtX3VzZWRPbkFYVGhyZWFkKGF4T2JqZWN0Q2FjaGUtPnVzZWRPbkFY
VGhyZWFkKCkpCiB7Ci0gICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OkFYSXNvbGF0ZWRUcmVl
Iik7CisgICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OkFYSXNvbGF0ZWRUcmVlIl9zKTsKICAg
ICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogfQogCiBBWElzb2xhdGVkVHJlZTo6fkFYSXNvbGF0
ZWRUcmVlKCkKIHsKLSAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6fkFYSXNvbGF0ZWRUcmVl
Iik7CisgICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6On5BWElzb2xhdGVkVHJlZSJfcyk7CiB9
CiAKIHZvaWQgQVhJc29sYXRlZFRyZWU6OmNsZWFyKCkKIHsKLSAgICBBWFRSQUNFKCJBWElzb2xh
dGVkVHJlZTo6Y2xlYXIiKTsKKyAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6Y2xlYXIiX3Mp
OwogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgbV9heE9iamVjdENhY2hlID0gbnVs
bHB0cjsKICAgICBtX25vZGVNYXAuY2xlYXIoKTsKQEAgLTg1LDE0ICs4NSwxNCBAQCB2b2lkIEFY
SXNvbGF0ZWRUcmVlOjpjbGVhcigpCiAKIFJlZlB0cjxBWElzb2xhdGVkVHJlZT4gQVhJc29sYXRl
ZFRyZWU6OnRyZWVGb3JJRChBWElzb2xhdGVkVHJlZUlEIHRyZWVJRCkKIHsKLSAgICBBWFRSQUNF
KCJBWElzb2xhdGVkVHJlZTo6dHJlZUZvcklEIik7CisgICAgQVhUUkFDRSgiQVhJc29sYXRlZFRy
ZWU6OnRyZWVGb3JJRCJfcyk7CiAgICAgTG9ja2VyIGxvY2tlciB7IHNfY2FjaGVMb2NrIH07CiAg
ICAgcmV0dXJuIHRyZWVJRENhY2hlKCkuZ2V0KHRyZWVJRCk7CiB9CiAKIFJlZjxBWElzb2xhdGVk
VHJlZT4gQVhJc29sYXRlZFRyZWU6OmNyZWF0ZShBWE9iamVjdENhY2hlKiBheE9iamVjdENhY2hl
KQogewotICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjpjcmVhdGUiKTsKKyAgICBBWFRSQUNF
KCJBWElzb2xhdGVkVHJlZTo6Y3JlYXRlIl9zKTsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkp
OwogICAgIEFTU0VSVChheE9iamVjdENhY2hlICYmIGF4T2JqZWN0Q2FjaGUtPnBhZ2VJRCgpKTsK
IApAQCAtMTI1LDcgKzEyNSw3IEBAIFJlZjxBWElzb2xhdGVkVHJlZT4gQVhJc29sYXRlZFRyZWU6
OmNyZWF0ZShBWE9iamVjdENhY2hlKiBheE9iamVjdENhY2hlKQogCiB2b2lkIEFYSXNvbGF0ZWRU
cmVlOjpyZW1vdmVUcmVlRm9yUGFnZUlEKFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCkKIHsKLSAgICBB
WFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6cmVtb3ZlVHJlZUZvclBhZ2VJRCIpOworICAgIEFYVFJB
Q0UoIkFYSXNvbGF0ZWRUcmVlOjpyZW1vdmVUcmVlRm9yUGFnZUlEIl9zKTsKICAgICBBU1NFUlQo
aXNNYWluVGhyZWFkKCkpOwogICAgIExvY2tlciBsb2NrZXIgeyBzX2NhY2hlTG9jayB9OwogCkBA
IC0xNTcsNyArMTU3LDcgQEAgUmVmUHRyPEFYSXNvbGF0ZWRPYmplY3Q+IEFYSXNvbGF0ZWRUcmVl
Ojpub2RlRm9ySUQoQVhJRCBheElEKSBjb25zdAogCiBWZWN0b3I8UmVmUHRyPEFYQ29yZU9iamVj
dD4+IEFYSXNvbGF0ZWRUcmVlOjpvYmplY3RzRm9ySURzKGNvbnN0IFZlY3RvcjxBWElEPiYgYXhJ
RHMpIGNvbnN0CiB7Ci0gICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6Om9iamVjdHNGb3JJRHMi
KTsKKyAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6b2JqZWN0c0ZvcklEcyJfcyk7CiAgICAg
VmVjdG9yPFJlZlB0cjxBWENvcmVPYmplY3Q+PiByZXN1bHQ7CiAgICAgcmVzdWx0LnJlc2VydmVJ
bml0aWFsQ2FwYWNpdHkoYXhJRHMuc2l6ZSgpKTsKICAgICBmb3IgKGF1dG8mIGF4SUQgOiBheElE
cykgewpAQCAtMTc4LDcgKzE3OCw3IEBAIFZlY3RvcjxBWElEPiBBWElzb2xhdGVkVHJlZTo6aWRz
Rm9yT2JqZWN0cyhjb25zdCBWZWN0b3I8UmVmUHRyPEFYQ29yZU9iamVjdD4+JiBvCiAKIHZvaWQg
QVhJc29sYXRlZFRyZWU6OmdlbmVyYXRlU3VidHJlZShBWENvcmVPYmplY3QmIGF4T2JqZWN0LCBB
WENvcmVPYmplY3QqIGF4UGFyZW50LCBib29sIGF0dGFjaFdyYXBwZXIpCiB7Ci0gICAgQVhUUkFD
RSgiQVhJc29sYXRlZFRyZWU6OmdlbmVyYXRlU3VidHJlZSIpOworICAgIEFYVFJBQ0UoIkFYSXNv
bGF0ZWRUcmVlOjpnZW5lcmF0ZVN1YnRyZWUiX3MpOwogICAgIEFTU0VSVChpc01haW5UaHJlYWQo
KSk7CiAKICAgICBpZiAoIWF4T2JqZWN0Lm9iamVjdElEKCkuaXNWYWxpZCgpKQpAQCAtMjc3LDcg
KzI3Nyw3IEBAIHZvaWQgQVhJc29sYXRlZFRyZWU6OnF1ZXVlQ2hhbmdlc0FuZFJlbW92YWxzKGNv
bnN0IFZlY3RvcjxOb2RlQ2hhbmdlPiYgY2hhbmdlcywKIAogdm9pZCBBWElzb2xhdGVkVHJlZTo6
Y29sbGVjdE5vZGVDaGFuZ2VzRm9yU3VidHJlZShBWENvcmVPYmplY3QmIGF4T2JqZWN0LCBBWElE
IHBhcmVudElELCBib29sIGF0dGFjaFdyYXBwZXIsIFZlY3RvcjxOb2RlQ2hhbmdlPiYgY2hhbmdl
cywgSGFzaFNldDxBWElEPiogaWRzQmVpbmdDaGFuZ2VkKQogewotICAgIEFYVFJBQ0UoIkFYSXNv
bGF0ZWRUcmVlOjpjb2xsZWN0Tm9kZUNoYW5nZXNGb3JTdWJ0cmVlIik7CisgICAgQVhUUkFDRSgi
QVhJc29sYXRlZFRyZWU6OmNvbGxlY3ROb2RlQ2hhbmdlc0ZvclN1YnRyZWUiX3MpOwogICAgIEFT
U0VSVChpc01haW5UaHJlYWQoKSk7CiAKICAgICBhdXRvIG5vZGVDaGFuZ2UgPSBub2RlQ2hhbmdl
Rm9yT2JqZWN0KGF4T2JqZWN0LCBwYXJlbnRJRCwgYXR0YWNoV3JhcHBlcik7CkBAIC0yOTUsNyAr
Mjk1LDcgQEAgdm9pZCBBWElzb2xhdGVkVHJlZTo6Y29sbGVjdE5vZGVDaGFuZ2VzRm9yU3VidHJl
ZShBWENvcmVPYmplY3QmIGF4T2JqZWN0LCBBWElEIHAKIAogdm9pZCBBWElzb2xhdGVkVHJlZTo6
dXBkYXRlTm9kZShBWENvcmVPYmplY3QmIGF4T2JqZWN0KQogewotICAgIEFYVFJBQ0UoIkFYSXNv
bGF0ZWRUcmVlOjp1cGRhdGVOb2RlIik7CisgICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OnVw
ZGF0ZU5vZGUiX3MpOwogICAgIEFYTE9HKCZheE9iamVjdCk7CiAgICAgQVNTRVJUKGlzTWFpblRo
cmVhZCgpKTsKIApAQCAtMzEzLDcgKzMxMyw3IEBAIHZvaWQgQVhJc29sYXRlZFRyZWU6OnVwZGF0
ZU5vZGUoQVhDb3JlT2JqZWN0JiBheE9iamVjdCkKIAogdm9pZCBBWElzb2xhdGVkVHJlZTo6dXBk
YXRlTm9kZVByb3BlcnR5KGNvbnN0IEFYQ29yZU9iamVjdCYgYXhPYmplY3QsIEFYUHJvcGVydHlO
YW1lIHByb3BlcnR5KQogewotICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVOb2Rl
UHJvcGVydHkiKTsKKyAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6dXBkYXRlTm9kZVByb3Bl
cnR5Il9zKTsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogCiAgICAgQVhQcm9wZXJ0eU1h
cCBwcm9wZXJ0eU1hcDsKQEAgLTM0OCw3ICszNDgsNyBAQCB2b2lkIEFYSXNvbGF0ZWRUcmVlOjp1
cGRhdGVOb2RlUHJvcGVydHkoY29uc3QgQVhDb3JlT2JqZWN0JiBheE9iamVjdCwgQVhQcm9wZXJ0
eQogCiB2b2lkIEFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVDaGlsZHJlbihBWENvcmVPYmplY3QmIGF4
T2JqZWN0KQogewotICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVDaGlsZHJlbiIp
OworICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVDaGlsZHJlbiJfcyk7CiAgICAg
QVhMT0coIkZvciBBWE9iamVjdDoiKTsKICAgICBBWExPRygmYXhPYmplY3QpOwogICAgIEFTU0VS
VChpc01haW5UaHJlYWQoKSk7CkBAIC00MjIsNyArNDIyLDcgQEAgdm9pZCBBWElzb2xhdGVkVHJl
ZTo6dXBkYXRlQ2hpbGRyZW4oQVhDb3JlT2JqZWN0JiBheE9iamVjdCkKIAogUmVmUHRyPEFYSXNv
bGF0ZWRPYmplY3Q+IEFYSXNvbGF0ZWRUcmVlOjpmb2N1c2VkTm9kZSgpCiB7Ci0gICAgQVhUUkFD
RSgiQVhJc29sYXRlZFRyZWU6OmZvY3VzZWROb2RlIik7CisgICAgQVhUUkFDRSgiQVhJc29sYXRl
ZFRyZWU6OmZvY3VzZWROb2RlIl9zKTsKICAgICBSRUxFQVNFX0FTU0VSVCghaXNNYWluVGhyZWFk
KCkpOwogICAgIC8vIEFwcGx5IHBlbmRpbmcgY2hhbmdlcyBpbiBjYXNlIGZvY3VzIGhhcyBjaGFu
Z2VkIGFuZCBoYXNuJ3QgYmVlbiB1cGRhdGVkLgogICAgIGFwcGx5UGVuZGluZ0NoYW5nZXMoKTsK
QEAgLTQzNCwxNCArNDM0LDE0IEBAIFJlZlB0cjxBWElzb2xhdGVkT2JqZWN0PiBBWElzb2xhdGVk
VHJlZTo6Zm9jdXNlZE5vZGUoKQogCiBSZWZQdHI8QVhJc29sYXRlZE9iamVjdD4gQVhJc29sYXRl
ZFRyZWU6OnJvb3ROb2RlKCkKIHsKLSAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6cm9vdE5v
ZGUiKTsKKyAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6cm9vdE5vZGUiX3MpOwogICAgIExv
Y2tlciBsb2NrZXIgeyBtX2NoYW5nZUxvZ0xvY2sgfTsKICAgICByZXR1cm4gbV9yb290Tm9kZTsK
IH0KIAogdm9pZCBBWElzb2xhdGVkVHJlZTo6c2V0Um9vdE5vZGUoQVhJc29sYXRlZE9iamVjdCog
cm9vdCkKIHsKLSAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6c2V0Um9vdE5vZGUiKTsKKyAg
ICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6c2V0Um9vdE5vZGUiX3MpOwogICAgIEFTU0VSVChp
c01haW5UaHJlYWQoKSk7CiAgICAgQVNTRVJUKG1fY2hhbmdlTG9nTG9jay5pc0xvY2tlZCgpKTsK
ICAgICBBU1NFUlQoIW1fcm9vdE5vZGUpOwpAQCAtNDUyLDcgKzQ1Miw3IEBAIHZvaWQgQVhJc29s
YXRlZFRyZWU6OnNldFJvb3ROb2RlKEFYSXNvbGF0ZWRPYmplY3QqIHJvb3QpCiAKIHZvaWQgQVhJ
c29sYXRlZFRyZWU6OnNldEZvY3VzZWROb2RlSUQoQVhJRCBheElEKQogewotICAgIEFYVFJBQ0Uo
IkFYSXNvbGF0ZWRUcmVlOjpzZXRGb2N1c2VkTm9kZUlEIik7CisgICAgQVhUUkFDRSgiQVhJc29s
YXRlZFRyZWU6OnNldEZvY3VzZWROb2RlSUQiX3MpOwogICAgIEFYTE9HKG1ha2VTdHJpbmcoImF4
SUQgIiwgYXhJRC5sb2dnaW5nU3RyaW5nKCkpKTsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkp
OwogCkBAIC00NjYsNyArNDY2LDcgQEAgdm9pZCBBWElzb2xhdGVkVHJlZTo6c2V0Rm9jdXNlZE5v
ZGVJRChBWElEIGF4SUQpCiAKIHZvaWQgQVhJc29sYXRlZFRyZWU6OnVwZGF0ZUxvYWRpbmdQcm9n
cmVzcyhkb3VibGUgbmV3UHJvZ3Jlc3NWYWx1ZSkKIHsKLSAgICBBWFRSQUNFKCJBWElzb2xhdGVk
VHJlZTo6dXBkYXRlTG9hZGluZ1Byb2dyZXNzIik7CisgICAgQVhUUkFDRSgiQVhJc29sYXRlZFRy
ZWU6OnVwZGF0ZUxvYWRpbmdQcm9ncmVzcyJfcyk7CiAgICAgQVhMT0cobWFrZVN0cmluZygiVXBk
YXRpbmcgbG9hZGluZyBwcm9ncmVzcyB0byAiLCBuZXdQcm9ncmVzc1ZhbHVlLCAiIGZvciB0cmVl
SUQgIiwgdHJlZUlEKCkpKTsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogCkBAIC00NzUs
NyArNDc1LDcgQEAgdm9pZCBBWElzb2xhdGVkVHJlZTo6dXBkYXRlTG9hZGluZ1Byb2dyZXNzKGRv
dWJsZSBuZXdQcm9ncmVzc1ZhbHVlKQogCiB2b2lkIEFYSXNvbGF0ZWRUcmVlOjpyZW1vdmVOb2Rl
KGNvbnN0IEFYQ29yZU9iamVjdCYgYXhPYmplY3QpCiB7Ci0gICAgQVhUUkFDRSgiQVhJc29sYXRl
ZFRyZWU6OnJlbW92ZU5vZGUiKTsKKyAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6cmVtb3Zl
Tm9kZSJfcyk7CiAgICAgQVhMT0cobWFrZVN0cmluZygib2JqZWN0SUQgIiwgYXhPYmplY3Qub2Jq
ZWN0SUQoKS5sb2dnaW5nU3RyaW5nKCkpKTsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwog
CkBAIC00ODUsNyArNDg1LDcgQEAgdm9pZCBBWElzb2xhdGVkVHJlZTo6cmVtb3ZlTm9kZShjb25z
dCBBWENvcmVPYmplY3QmIGF4T2JqZWN0KQogCiB2b2lkIEFYSXNvbGF0ZWRUcmVlOjpyZW1vdmVT
dWJ0cmVlRnJvbU5vZGVNYXAoQVhJRCBvYmplY3RJRCwgQVhDb3JlT2JqZWN0KiBheFBhcmVudCwg
Y29uc3QgSGFzaFNldDxBWElEPiYgaWRzVG9LZWVwKQogewotICAgIEFYVFJBQ0UoIkFYSXNvbGF0
ZWRUcmVlOjpyZW1vdmVTdWJ0cmVlRnJvbU5vZGVNYXAiKTsKKyAgICBBWFRSQUNFKCJBWElzb2xh
dGVkVHJlZTo6cmVtb3ZlU3VidHJlZUZyb21Ob2RlTWFwIl9zKTsKICAgICBBWExPRyhtYWtlU3Ry
aW5nKCJSZW1vdmluZyBzdWJ0cmVlIGZvciBvYmplY3RJRCAiLCBvYmplY3RJRC5sb2dnaW5nU3Ry
aW5nKCkpKTsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogCkBAIC01MjMsNyArNTIzLDcg
QEAgdm9pZCBBWElzb2xhdGVkVHJlZTo6cmVtb3ZlU3VidHJlZUZyb21Ob2RlTWFwKEFYSUQgb2Jq
ZWN0SUQsIEFYQ29yZU9iamVjdCogYXhQYXIKIAogdm9pZCBBWElzb2xhdGVkVHJlZTo6YXBwbHlQ
ZW5kaW5nQ2hhbmdlcygpCiB7Ci0gICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OmFwcGx5UGVu
ZGluZ0NoYW5nZXMiKTsKKyAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6YXBwbHlQZW5kaW5n
Q2hhbmdlcyJfcyk7CiAKICAgICAvLyBJbiBpc29sYXRlZCB0cmVlIG1vZGUgMiwgb25seSBhcHBs
eSBwZW5kaW5nIGNoYW5nZXMgb24gdGhlIEFYIHRocmVhZC4KICAgICBBU1NFUlQobV91c2VkT25B
WFRocmVhZCA/ICFpc01haW5UaHJlYWQoKSA6IGlzTWFpblRocmVhZCgpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FjY2Vzc2liaWxpdHlPYmplY3RNYWMu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0
TWFjLm1tCmluZGV4IGEyODk1Mzg3NGM4MDU1MTI3ZjgwYjJmYzM2MmQ5Y2U4MjFlNzAxYzQuLmZj
NmU0MDhjZmM3YTkyNTNhMWU4OTUwN2UwMDU0OTQwMzhjOWZiM2IgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FjY2Vzc2liaWxpdHlPYmplY3RNYWMubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQWNjZXNzaWJpbGl0eU9iamVjdE1h
Yy5tbQpAQCAtMjIyLDIwICsyMjIsMjAgQEAgU3RyaW5nIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnN1
YnJvbGVQbGF0Zm9ybVN0cmluZygpIGNvbnN0CiAgICAgfQogCiAgICAgaWYgKGlzTWV0ZXIoKSkK
LSAgICAgICAgcmV0dXJuICJBWE1ldGVyIjsKKyAgICAgICAgcmV0dXJuICJBWE1ldGVyIl9zOwog
CiAjaWYgRU5BQkxFKE1PREVMX0VMRU1FTlQpCiAgICAgaWYgKGlzTW9kZWwoKSkKLSAgICAgICAg
cmV0dXJuICJBWE1vZGVsIjsKKyAgICAgICAgcmV0dXJuICJBWE1vZGVsIl9zOwogI2VuZGlmCiAK
ICAgICBBY2Nlc3NpYmlsaXR5Um9sZSByb2xlID0gcm9sZVZhbHVlKCk7CiAgICAgaWYgKHJvbGUg
PT0gQWNjZXNzaWJpbGl0eVJvbGU6Okhvcml6b250YWxSdWxlKQotICAgICAgICByZXR1cm4gIkFY
Q29udGVudFNlcGFyYXRvciI7CisgICAgICAgIHJldHVybiAiQVhDb250ZW50U2VwYXJhdG9yIl9z
OwogICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpUb2dnbGVCdXR0b24pCiAgICAg
ICAgIHJldHVybiBOU0FjY2Vzc2liaWxpdHlUb2dnbGVTdWJyb2xlOwogICAgIGlmIChyb2xlID09
IEFjY2Vzc2liaWxpdHlSb2xlOjpGb290ZXIpCi0gICAgICAgIHJldHVybiAiQVhGb290ZXIiOwor
ICAgICAgICByZXR1cm4gIkFYRm9vdGVyIl9zOwogICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxp
dHlSb2xlOjpTcGluQnV0dG9uUGFydCkgewogICAgICAgICBpZiAoaXNJbmNyZW1lbnRvcigpKQog
ICAgICAgICAgICAgcmV0dXJuIE5TQWNjZXNzaWJpbGl0eUluY3JlbWVudEFycm93U3Vicm9sZTsK
QEAgLTI0Myw3OSArMjQzLDc5IEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzdWJyb2xl
UGxhdGZvcm1TdHJpbmcoKSBjb25zdAogICAgIH0KIAogICAgIGlmIChpc0ZpbGVVcGxvYWRCdXR0
b24oKSkKLSAgICAgICAgcmV0dXJuICJBWEZpbGVVcGxvYWRCdXR0b24iOworICAgICAgICByZXR1
cm4gIkFYRmlsZVVwbG9hZEJ1dHRvbiJfczsKIAogICAgIGlmIChpc1RyZWVJdGVtKCkpCiAgICAg
ICAgIHJldHVybiBOU0FjY2Vzc2liaWxpdHlPdXRsaW5lUm93U3Vicm9sZTsKIAogICAgIGlmIChp
c0ZpZWxkc2V0KCkpCi0gICAgICAgIHJldHVybiAiQVhGaWVsZHNldCI7CisgICAgICAgIHJldHVy
biAiQVhGaWVsZHNldCJfczsKIAogICAgIGlmIChpc0xpc3QoKSkgewogICAgICAgICBpZiAoaXNV
bm9yZGVyZWRMaXN0KCkgfHwgaXNPcmRlcmVkTGlzdCgpKQotICAgICAgICAgICAgcmV0dXJuICJB
WENvbnRlbnRMaXN0IjsKKyAgICAgICAgICAgIHJldHVybiAiQVhDb250ZW50TGlzdCJfczsKICAg
ICAgICAgaWYgKGlzRGVzY3JpcHRpb25MaXN0KCkpCi0gICAgICAgICAgICByZXR1cm4gIkFYRGVz
Y3JpcHRpb25MaXN0IjsKKyAgICAgICAgICAgIHJldHVybiAiQVhEZXNjcmlwdGlvbkxpc3QiX3M7
CiAgICAgfQogCiAgICAgLy8gQVJJQSBjb250ZW50IHN1YnJvbGVzLgogICAgIHN3aXRjaCAocm9s
ZSkgewogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJrQmFubmVyOgotICAgICAg
ICByZXR1cm4gIkFYTGFuZG1hcmtCYW5uZXIiOworICAgICAgICByZXR1cm4gIkFYTGFuZG1hcmtC
YW5uZXIiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtDb21wbGVtZW50
YXJ5OgotICAgICAgICByZXR1cm4gIkFYTGFuZG1hcmtDb21wbGVtZW50YXJ5IjsKKyAgICAgICAg
cmV0dXJuICJBWExhbmRtYXJrQ29tcGxlbWVudGFyeSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxp
dHlSb2xlOjpMYW5kbWFya0NvbnRlbnRJbmZvOgotICAgICAgICByZXR1cm4gIkFYTGFuZG1hcmtD
b250ZW50SW5mbyI7CisgICAgICAgIHJldHVybiAiQVhMYW5kbWFya0NvbnRlbnRJbmZvIl9zOwog
ICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJrTWFpbjoKLSAgICAgICAgcmV0dXJu
ICJBWExhbmRtYXJrTWFpbiI7CisgICAgICAgIHJldHVybiAiQVhMYW5kbWFya01haW4iX3M7CiAg
ICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtOYXZpZ2F0aW9uOgotICAgICAgICBy
ZXR1cm4gIkFYTGFuZG1hcmtOYXZpZ2F0aW9uIjsKKyAgICAgICAgcmV0dXJuICJBWExhbmRtYXJr
TmF2aWdhdGlvbiJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpMYW5kbWFya0RvY1Jl
Z2lvbjoKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpMYW5kbWFya1JlZ2lvbjoKLSAgICAg
ICAgcmV0dXJuICJBWExhbmRtYXJrUmVnaW9uIjsKKyAgICAgICAgcmV0dXJuICJBWExhbmRtYXJr
UmVnaW9uIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJrU2VhcmNoOgot
ICAgICAgICByZXR1cm4gIkFYTGFuZG1hcmtTZWFyY2giOworICAgICAgICByZXR1cm4gIkFYTGFu
ZG1hcmtTZWFyY2giX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb25B
bGVydDoKLSAgICAgICAgcmV0dXJuICJBWEFwcGxpY2F0aW9uQWxlcnQiOworICAgICAgICByZXR1
cm4gIkFYQXBwbGljYXRpb25BbGVydCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpB
cHBsaWNhdGlvbkFsZXJ0RGlhbG9nOgotICAgICAgICByZXR1cm4gIkFYQXBwbGljYXRpb25BbGVy
dERpYWxvZyI7CisgICAgICAgIHJldHVybiAiQVhBcHBsaWNhdGlvbkFsZXJ0RGlhbG9nIl9zOwog
ICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uRGlhbG9nOgotICAgICAgICBy
ZXR1cm4gIkFYQXBwbGljYXRpb25EaWFsb2ciOworICAgICAgICByZXR1cm4gIkFYQXBwbGljYXRp
b25EaWFsb2ciX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb25Hcm91
cDoKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvblRleHRHcm91cDoKICAg
ICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpGZWVkOgogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJv
bGU6OkZvb3Rub3RlOgotICAgICAgICByZXR1cm4gIkFYQXBwbGljYXRpb25Hcm91cCI7CisgICAg
ICAgIHJldHVybiAiQVhBcHBsaWNhdGlvbkdyb3VwIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0
eVJvbGU6OkFwcGxpY2F0aW9uTG9nOgotICAgICAgICByZXR1cm4gIkFYQXBwbGljYXRpb25Mb2ci
OworICAgICAgICByZXR1cm4gIkFYQXBwbGljYXRpb25Mb2ciX3M7CiAgICAgY2FzZSBBY2Nlc3Np
YmlsaXR5Um9sZTo6QXBwbGljYXRpb25NYXJxdWVlOgotICAgICAgICByZXR1cm4gIkFYQXBwbGlj
YXRpb25NYXJxdWVlIjsKKyAgICAgICAgcmV0dXJuICJBWEFwcGxpY2F0aW9uTWFycXVlZSJfczsK
ICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvblN0YXR1czoKLSAgICAgICAg
cmV0dXJuICJBWEFwcGxpY2F0aW9uU3RhdHVzIjsKKyAgICAgICAgcmV0dXJuICJBWEFwcGxpY2F0
aW9uU3RhdHVzIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uVGlt
ZXI6Ci0gICAgICAgIHJldHVybiAiQVhBcHBsaWNhdGlvblRpbWVyIjsKKyAgICAgICAgcmV0dXJu
ICJBWEFwcGxpY2F0aW9uVGltZXIiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RG9j
dW1lbnQ6CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6R3JhcGhpY3NEb2N1bWVudDoKLSAg
ICAgICAgcmV0dXJuICJBWERvY3VtZW50IjsKKyAgICAgICAgcmV0dXJuICJBWERvY3VtZW50Il9z
OwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRvY3VtZW50QXJ0aWNsZToKLSAgICAgICAg
cmV0dXJuICJBWERvY3VtZW50QXJ0aWNsZSI7CisgICAgICAgIHJldHVybiAiQVhEb2N1bWVudEFy
dGljbGUiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RG9jdW1lbnRNYXRoOgotICAg
ICAgICByZXR1cm4gIkFYRG9jdW1lbnRNYXRoIjsKKyAgICAgICAgcmV0dXJuICJBWERvY3VtZW50
TWF0aCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpEb2N1bWVudE5vdGU6Ci0gICAg
ICAgIHJldHVybiAiQVhEb2N1bWVudE5vdGUiOworICAgICAgICByZXR1cm4gIkFYRG9jdW1lbnRO
b3RlIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlVzZXJJbnRlcmZhY2VUb29sdGlw
OgotICAgICAgICByZXR1cm4gIkFYVXNlckludGVyZmFjZVRvb2x0aXAiOworICAgICAgICByZXR1
cm4gIkFYVXNlckludGVyZmFjZVRvb2x0aXAiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9s
ZTo6VGFiUGFuZWw6Ci0gICAgICAgIHJldHVybiAiQVhUYWJQYW5lbCI7CisgICAgICAgIHJldHVy
biAiQVhUYWJQYW5lbCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpEZWZpbml0aW9u
OgotICAgICAgICByZXR1cm4gIkFYRGVmaW5pdGlvbiI7CisgICAgICAgIHJldHVybiAiQVhEZWZp
bml0aW9uIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRlc2NyaXB0aW9uTGlzdFRl
cm06CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VGVybToKLSAgICAgICAgcmV0dXJuICJB
WFRlcm0iOworICAgICAgICByZXR1cm4gIkFYVGVybSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxp
dHlSb2xlOjpEZXNjcmlwdGlvbkxpc3REZXRhaWw6Ci0gICAgICAgIHJldHVybiAiQVhEZXNjcmlw
dGlvbiI7CisgICAgICAgIHJldHVybiAiQVhEZXNjcmlwdGlvbiJfczsKICAgICBjYXNlIEFjY2Vz
c2liaWxpdHlSb2xlOjpXZWJBcHBsaWNhdGlvbjoKLSAgICAgICAgcmV0dXJuICJBWFdlYkFwcGxp
Y2F0aW9uIjsKKyAgICAgICAgcmV0dXJuICJBWFdlYkFwcGxpY2F0aW9uIl9zOwogICAgICAgICAv
LyBEZWZhdWx0IGRvZXNuJ3QgcmV0dXJuIGFueXRoaW5nLCBzbyByb2xlcyBkZWZpbmVkIGJlbG93
IGNhbiBiZSBjaG9zZW4uCiAgICAgZGVmYXVsdDoKICAgICAgICAgYnJlYWs7CkBAIC0zMjMsNTEg
KzMyMyw1MSBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0eU9iamVjdDo6c3Vicm9sZVBsYXRmb3JtU3Ry
aW5nKCkgY29uc3QKIAogICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpNYXRoRWxl
bWVudCkgewogICAgICAgICBpZiAoaXNNYXRoRnJhY3Rpb24oKSkKLSAgICAgICAgICAgIHJldHVy
biAiQVhNYXRoRnJhY3Rpb24iOworICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhGcmFjdGlvbiJf
czsKICAgICAgICAgaWYgKGlzTWF0aEZlbmNlZCgpKQotICAgICAgICAgICAgcmV0dXJuICJBWE1h
dGhGZW5jZWQiOworICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhGZW5jZWQiX3M7CiAgICAgICAg
IGlmIChpc01hdGhTdWJzY3JpcHRTdXBlcnNjcmlwdCgpKQotICAgICAgICAgICAgcmV0dXJuICJB
WE1hdGhTdWJzY3JpcHRTdXBlcnNjcmlwdCI7CisgICAgICAgICAgICByZXR1cm4gIkFYTWF0aFN1
YnNjcmlwdFN1cGVyc2NyaXB0Il9zOwogICAgICAgICBpZiAoaXNNYXRoUm93KCkpCi0gICAgICAg
ICAgICByZXR1cm4gIkFYTWF0aFJvdyI7CisgICAgICAgICAgICByZXR1cm4gIkFYTWF0aFJvdyJf
czsKICAgICAgICAgaWYgKGlzTWF0aFVuZGVyT3ZlcigpKQotICAgICAgICAgICAgcmV0dXJuICJB
WE1hdGhVbmRlck92ZXIiOworICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhVbmRlck92ZXIiX3M7
CiAgICAgICAgIGlmIChpc01hdGhTcXVhcmVSb290KCkpCi0gICAgICAgICAgICByZXR1cm4gIkFY
TWF0aFNxdWFyZVJvb3QiOworICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhTcXVhcmVSb290Il9z
OwogICAgICAgICBpZiAoaXNNYXRoUm9vdCgpKQotICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhS
b290IjsKKyAgICAgICAgICAgIHJldHVybiAiQVhNYXRoUm9vdCJfczsKICAgICAgICAgaWYgKGlz
TWF0aFRleHQoKSkKLSAgICAgICAgICAgIHJldHVybiAiQVhNYXRoVGV4dCI7CisgICAgICAgICAg
ICByZXR1cm4gIkFYTWF0aFRleHQiX3M7CiAgICAgICAgIGlmIChpc01hdGhOdW1iZXIoKSkKLSAg
ICAgICAgICAgIHJldHVybiAiQVhNYXRoTnVtYmVyIjsKKyAgICAgICAgICAgIHJldHVybiAiQVhN
YXRoTnVtYmVyIl9zOwogICAgICAgICBpZiAoaXNNYXRoSWRlbnRpZmllcigpKQotICAgICAgICAg
ICAgcmV0dXJuICJBWE1hdGhJZGVudGlmaWVyIjsKKyAgICAgICAgICAgIHJldHVybiAiQVhNYXRo
SWRlbnRpZmllciJfczsKICAgICAgICAgaWYgKGlzTWF0aFRhYmxlKCkpCi0gICAgICAgICAgICBy
ZXR1cm4gIkFYTWF0aFRhYmxlIjsKKyAgICAgICAgICAgIHJldHVybiAiQVhNYXRoVGFibGUiX3M7
CiAgICAgICAgIGlmIChpc01hdGhUYWJsZVJvdygpKQotICAgICAgICAgICAgcmV0dXJuICJBWE1h
dGhUYWJsZVJvdyI7CisgICAgICAgICAgICByZXR1cm4gIkFYTWF0aFRhYmxlUm93Il9zOwogICAg
ICAgICBpZiAoaXNNYXRoVGFibGVDZWxsKCkpCi0gICAgICAgICAgICByZXR1cm4gIkFYTWF0aFRh
YmxlQ2VsbCI7CisgICAgICAgICAgICByZXR1cm4gIkFYTWF0aFRhYmxlQ2VsbCJfczsKICAgICAg
ICAgaWYgKGlzTWF0aEZlbmNlT3BlcmF0b3IoKSkKLSAgICAgICAgICAgIHJldHVybiAiQVhNYXRo
RmVuY2VPcGVyYXRvciI7CisgICAgICAgICAgICByZXR1cm4gIkFYTWF0aEZlbmNlT3BlcmF0b3Ii
X3M7CiAgICAgICAgIGlmIChpc01hdGhTZXBhcmF0b3JPcGVyYXRvcigpKQotICAgICAgICAgICAg
cmV0dXJuICJBWE1hdGhTZXBhcmF0b3JPcGVyYXRvciI7CisgICAgICAgICAgICByZXR1cm4gIkFY
TWF0aFNlcGFyYXRvck9wZXJhdG9yIl9zOwogICAgICAgICBpZiAoaXNNYXRoT3BlcmF0b3IoKSkK
LSAgICAgICAgICAgIHJldHVybiAiQVhNYXRoT3BlcmF0b3IiOworICAgICAgICAgICAgcmV0dXJu
ICJBWE1hdGhPcGVyYXRvciJfczsKICAgICAgICAgaWYgKGlzTWF0aE11bHRpc2NyaXB0KCkpCi0g
ICAgICAgICAgICByZXR1cm4gIkFYTWF0aE11bHRpc2NyaXB0IjsKKyAgICAgICAgICAgIHJldHVy
biAiQVhNYXRoTXVsdGlzY3JpcHQiX3M7CiAgICAgfQogCiAgICAgaWYgKHJvbGUgPT0gQWNjZXNz
aWJpbGl0eVJvbGU6OlZpZGVvKQotICAgICAgICByZXR1cm4gIkFYVmlkZW8iOworICAgICAgICBy
ZXR1cm4gIkFYVmlkZW8iX3M7CiAgICAgaWYgKHJvbGUgPT0gQWNjZXNzaWJpbGl0eVJvbGU6OkF1
ZGlvKQotICAgICAgICByZXR1cm4gIkFYQXVkaW8iOworICAgICAgICByZXR1cm4gIkFYQXVkaW8i
X3M7CiAgICAgaWYgKHJvbGUgPT0gQWNjZXNzaWJpbGl0eVJvbGU6OkRldGFpbHMpCi0gICAgICAg
IHJldHVybiAiQVhEZXRhaWxzIjsKKyAgICAgICAgcmV0dXJuICJBWERldGFpbHMiX3M7CiAgICAg
aWYgKHJvbGUgPT0gQWNjZXNzaWJpbGl0eVJvbGU6OlN1bW1hcnkpCi0gICAgICAgIHJldHVybiAi
QVhTdW1tYXJ5IjsKKyAgICAgICAgcmV0dXJuICJBWFN1bW1hcnkiX3M7CiAgICAgaWYgKHJvbGUg
PT0gQWNjZXNzaWJpbGl0eVJvbGU6OlRpbWUpCi0gICAgICAgIHJldHVybiAiQVhUaW1lR3JvdXAi
OworICAgICAgICByZXR1cm4gIkFYVGltZUdyb3VwIl9zOwogCiAgICAgaWYgKGlzTWVkaWFUaW1l
bGluZSgpKQogICAgICAgICByZXR1cm4gTlNBY2Nlc3NpYmlsaXR5VGltZWxpbmVTdWJyb2xlOwpA
QCAtMzc2LDI1ICszNzYsMjUgQEAgU3RyaW5nIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnN1YnJvbGVQ
bGF0Zm9ybVN0cmluZygpIGNvbnN0CiAgICAgICAgIHJldHVybiBOU0FjY2Vzc2liaWxpdHlTd2l0
Y2hTdWJyb2xlOwogCiAgICAgaWYgKHJvbGUgPT0gQWNjZXNzaWJpbGl0eVJvbGU6Okluc2VydGlv
bikKLSAgICAgICAgcmV0dXJuICJBWEluc2VydFN0eWxlR3JvdXAiOworICAgICAgICByZXR1cm4g
IkFYSW5zZXJ0U3R5bGVHcm91cCJfczsKICAgICBpZiAocm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9s
ZTo6RGVsZXRpb24pCi0gICAgICAgIHJldHVybiAiQVhEZWxldGVTdHlsZUdyb3VwIjsKKyAgICAg
ICAgcmV0dXJuICJBWERlbGV0ZVN0eWxlR3JvdXAiX3M7CiAgICAgaWYgKHJvbGUgPT0gQWNjZXNz
aWJpbGl0eVJvbGU6OlN1cGVyc2NyaXB0KQotICAgICAgICByZXR1cm4gIkFYU3VwZXJzY3JpcHRT
dHlsZUdyb3VwIjsKKyAgICAgICAgcmV0dXJuICJBWFN1cGVyc2NyaXB0U3R5bGVHcm91cCJfczsK
ICAgICBpZiAocm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6U3Vic2NyaXB0KQotICAgICAgICBy
ZXR1cm4gIkFYU3Vic2NyaXB0U3R5bGVHcm91cCI7CisgICAgICAgIHJldHVybiAiQVhTdWJzY3Jp
cHRTdHlsZUdyb3VwIl9zOwogCiAgICAgc3dpdGNoIChyb2xlKSB7CiAgICAgY2FzZSBBY2Nlc3Np
YmlsaXR5Um9sZTo6UnVieUJhc2U6Ci0gICAgICAgIHJldHVybiAiQVhSdWJ5QmFzZSI7CisgICAg
ICAgIHJldHVybiAiQVhSdWJ5QmFzZSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpS
dWJ5QmxvY2s6Ci0gICAgICAgIHJldHVybiAiQVhSdWJ5QmxvY2siOworICAgICAgICByZXR1cm4g
IkFYUnVieUJsb2NrIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlJ1YnlJbmxpbmU6
Ci0gICAgICAgIHJldHVybiAiQVhSdWJ5SW5saW5lIjsKKyAgICAgICAgcmV0dXJuICJBWFJ1YnlJ
bmxpbmUiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6UnVieVJ1bjoKLSAgICAgICAg
cmV0dXJuICJBWFJ1YnlSdW4iOworICAgICAgICByZXR1cm4gIkFYUnVieVJ1biJfczsKICAgICBj
YXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpSdWJ5VGV4dDoKLSAgICAgICAgcmV0dXJuICJBWFJ1YnlU
ZXh0IjsKKyAgICAgICAgcmV0dXJuICJBWFJ1YnlUZXh0Il9zOwogICAgIGRlZmF1bHQ6CiAgICAg
ICAgIGJyZWFrOwogICAgIH0KQEAgLTQwMywxNyArNDAzLDE3IEBAIFN0cmluZyBBY2Nlc3NpYmls
aXR5T2JqZWN0OjpzdWJyb2xlUGxhdGZvcm1TdHJpbmcoKSBjb25zdAogICAgICAgICB1c2luZyBu
YW1lc3BhY2UgSFRNTE5hbWVzOwogICAgICAgICBhdXRvIHRhZyA9IHRhZ05hbWUoKTsKICAgICAg
ICAgaWYgKHRhZyA9PSBrYmRUYWcpCi0gICAgICAgICAgICByZXR1cm4gQCJBWEtleWJvYXJkSW5w
dXRTdHlsZUdyb3VwIjsKKyAgICAgICAgICAgIHJldHVybiAiQVhLZXlib2FyZElucHV0U3R5bGVH
cm91cCJfczsKICAgICAgICAgaWYgKHRhZyA9PSBjb2RlVGFnKQotICAgICAgICAgICAgcmV0dXJu
IEAiQVhDb2RlU3R5bGVHcm91cCI7CisgICAgICAgICAgICByZXR1cm4gIkFYQ29kZVN0eWxlR3Jv
dXAiX3M7CiAgICAgICAgIGlmICh0YWcgPT0gcHJlVGFnKQotICAgICAgICAgICAgcmV0dXJuIEAi
QVhQcmVmb3JtYXR0ZWRTdHlsZUdyb3VwIjsKKyAgICAgICAgICAgIHJldHVybiAiQVhQcmVmb3Jt
YXR0ZWRTdHlsZUdyb3VwIl9zOwogICAgICAgICBpZiAodGFnID09IHNhbXBUYWcpCi0gICAgICAg
ICAgICByZXR1cm4gQCJBWFNhbXBsZVN0eWxlR3JvdXAiOworICAgICAgICAgICAgcmV0dXJuICJB
WFNhbXBsZVN0eWxlR3JvdXAiX3M7CiAgICAgICAgIGlmICh0YWcgPT0gdmFyVGFnKQotICAgICAg
ICAgICAgcmV0dXJuIEAiQVhWYXJpYWJsZVN0eWxlR3JvdXAiOworICAgICAgICAgICAgcmV0dXJu
ICJBWFZhcmlhYmxlU3R5bGVHcm91cCJfczsKICAgICAgICAgaWYgKHRhZyA9PSBjaXRlVGFnKQot
ICAgICAgICAgICAgcmV0dXJuIEAiQVhDaXRlU3R5bGVHcm91cCI7CisgICAgICAgICAgICByZXR1
cm4gIkFYQ2l0ZVN0eWxlR3JvdXAiX3M7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwog
ICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAgICAgfQpAQCAtNDM2LDcgKzQzNiw3IEBAIFN0cmlu
ZyBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojpyb2xlUGxhdGZvcm1EZXNjcmlwdGlvbigpIGNvbnN0CiAK
ICAgICAgICAgc3dpdGNoIChyb2xlKSB7CiAgICAgICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6
OkF1ZGlvOgotICAgICAgICAgICAgcmV0dXJuIGxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRT
dHJpbmcoIkF1ZGlvRWxlbWVudCIpOworICAgICAgICAgICAgcmV0dXJuIGxvY2FsaXplZE1lZGlh
Q29udHJvbEVsZW1lbnRTdHJpbmcoIkF1ZGlvRWxlbWVudCJfcyk7CiAgICAgICAgIGNhc2UgQWNj
ZXNzaWJpbGl0eVJvbGU6OkRlZmluaXRpb246CiAgICAgICAgICAgICByZXR1cm4gQVhEZWZpbml0
aW9uVGV4dCgpOwogICAgICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpEZXNjcmlwdGlvbkxp
c3RUZXJtOgpAQCAtNDUzLDkgKzQ1Myw5IEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojpy
b2xlUGxhdGZvcm1EZXNjcmlwdGlvbigpIGNvbnN0CiAgICAgICAgIGNhc2UgQWNjZXNzaWJpbGl0
eVJvbGU6Ok1hcms6CiAgICAgICAgICAgICByZXR1cm4gQVhNYXJrVGV4dCgpOwogICAgICAgICBj
YXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpWaWRlbzoKLSAgICAgICAgICAgIHJldHVybiBsb2NhbGl6
ZWRNZWRpYUNvbnRyb2xFbGVtZW50U3RyaW5nKCJWaWRlb0VsZW1lbnQiKTsKKyAgICAgICAgICAg
IHJldHVybiBsb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVtZW50U3RyaW5nKCJWaWRlb0VsZW1lbnQi
X3MpOwogICAgICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpHcmFwaGljc0RvY3VtZW50Ogot
ICAgICAgICAgICAgcmV0dXJuIEFYQVJJQUNvbnRlbnRHcm91cFRleHQoQCJBUklBRG9jdW1lbnQi
KTsKKyAgICAgICAgICAgIHJldHVybiBBWEFSSUFDb250ZW50R3JvdXBUZXh0KCJBUklBRG9jdW1l
bnQiKTsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKICAg
ICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0FuaW1hdGlvbkVm
ZmVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQW5pbWF0aW9uRWZmZWN0LmNwcApp
bmRleCAyMzliZDA0NWY4MGFlYThkY2RmMzFjNWUwYzQzODhhMDJiNTI5NTUyLi40MzFmZGVhMTU3
MjYyNzJhMmI2OGY5NzRiMjZlMGFlNmE1NWZjMGFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9hbmltYXRpb24vQW5pbWF0aW9uRWZmZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmlt
YXRpb24vQW5pbWF0aW9uRWZmZWN0LmNwcApAQCAtNjksNyArNjksNyBAQCBFZmZlY3RUaW1pbmcg
QW5pbWF0aW9uRWZmZWN0OjpnZXRUaW1pbmcoKSBjb25zdAogICAgIHRpbWluZy5pdGVyYXRpb25T
dGFydCA9IG1faXRlcmF0aW9uU3RhcnQ7CiAgICAgdGltaW5nLml0ZXJhdGlvbnMgPSBtX2l0ZXJh
dGlvbnM7CiAgICAgaWYgKG1faXRlcmF0aW9uRHVyYXRpb24gPT0gMF9zKQotICAgICAgICB0aW1p
bmcuZHVyYXRpb24gPSAiYXV0byI7CisgICAgICAgIHRpbWluZy5kdXJhdGlvbiA9ICJhdXRvIl9z
OwogICAgIGVsc2UKICAgICAgICAgdGltaW5nLmR1cmF0aW9uID0gc2Vjb25kc1RvV2ViQW5pbWF0
aW9uc0FQSVRpbWUobV9pdGVyYXRpb25EdXJhdGlvbik7CiAgICAgdGltaW5nLmRpcmVjdGlvbiA9
IG1fZGlyZWN0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RvY3Vt
ZW50VGltZWxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RvY3VtZW50VGltZWxp
bmUuY3BwCmluZGV4IDNjOTU5ZTljYmQ0YTg3MTI0NGVlMmY0NWIwYjVhYTA2ZTFjNWZkNDUuLmM4
NmYyYWQ1NWM0YjEyOGVlY2VkYjgwMTBmNGM0NzEzYmFmNDY3NjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FuaW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hbmltYXRpb24vRG9jdW1lbnRUaW1lbGluZS5jcHAKQEAgLTQ1Miw3ICs0NTIsNyBAQCBF
eGNlcHRpb25PcjxSZWY8V2ViQW5pbWF0aW9uPj4gRG9jdW1lbnRUaW1lbGluZTo6YW5pbWF0ZShS
ZWY8Q3VzdG9tRWZmZWN0Q2FsbGJhYwogICAgIGlmICghbV9kb2N1bWVudCkKICAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07CiAKLSAgICBTdHJpbmcgaWQgPSAi
IjsKKyAgICBTdHJpbmcgaWQgPSBlbXB0eVN0cmluZygpOwogICAgIHN0ZDo6dmFyaWFudDxGcmFt
ZXNQZXJTZWNvbmQsIEFuaW1hdGlvbkZyYW1lUmF0ZVByZXNldD4gZnJhbWVSYXRlID0gQW5pbWF0
aW9uRnJhbWVSYXRlUHJlc2V0OjpBdXRvOwogICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjp2YXJpYW50
PGRvdWJsZSwgRWZmZWN0VGltaW5nPj4gY3VzdG9tRWZmZWN0T3B0aW9uczsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0VmZmVjdFRpbWluZy5oIGIvU291cmNlL1dlYkNv
cmUvYW5pbWF0aW9uL0VmZmVjdFRpbWluZy5oCmluZGV4IDRkZDVkY2MzNzNjY2Q4MzMwZGVjYTM2
MTdkOTk4ZTYxMzM5MzJlNjEuLjIxMDczZmE0NzMwM2Y2NGZkMmJhMjYxOWFlOTE4N2Y1ODE1OTUw
NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9FZmZlY3RUaW1pbmcuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRWZmZWN0VGltaW5nLmgKQEAgLTMzLDEyICsz
MywxMiBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdHJ1Y3QgRWZmZWN0VGltaW5nIHsKLSAg
ICBzdGQ6OnZhcmlhbnQ8ZG91YmxlLCBTdHJpbmc+IGR1cmF0aW9uIHsgImF1dG8iIH07CisgICAg
c3RkOjp2YXJpYW50PGRvdWJsZSwgU3RyaW5nPiBkdXJhdGlvbiB7ICJhdXRvIl9zIH07CiAgICAg
ZG91YmxlIGRlbGF5IHsgMCB9OwogICAgIGRvdWJsZSBlbmREZWxheSB7IDAgfTsKICAgICBkb3Vi
bGUgaXRlcmF0aW9uU3RhcnQgeyAwIH07CiAgICAgZG91YmxlIGl0ZXJhdGlvbnMgeyAxIH07Ci0g
ICAgU3RyaW5nIGVhc2luZyB7ICJsaW5lYXIiIH07CisgICAgU3RyaW5nIGVhc2luZyB7ICJsaW5l
YXIiX3MgfTsKICAgICBGaWxsTW9kZSBmaWxsIHsgRmlsbE1vZGU6OkF1dG8gfTsKICAgICBQbGF5
YmFja0RpcmVjdGlvbiBkaXJlY3Rpb24geyBQbGF5YmFja0RpcmVjdGlvbjo6Tm9ybWFsIH07CiB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5jcHAKaW5kZXggNzIz
NzY4NTAzZDEwZGI0OTY3YjJmOGM2MGViOTE0MTg5NzY2YmY3ZC4uZDg0MTFjOTNlNDc3MDJmNTY3
YWQ2MTQwMzY2ZWNlNzY2MzVjMDQ1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0
aW9uL0tleWZyYW1lRWZmZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5
ZnJhbWVFZmZlY3QuY3BwCkBAIC04MiwxMSArODIsMTEgQEAgU3RyaW5nIEtleWZyYW1lRWZmZWN0
OjpDU1NQcm9wZXJ0eUlEVG9JRExBdHRyaWJ1dGVOYW1lKENTU1Byb3BlcnR5SUQgY3NzUHJvcGVy
dHkKIAogICAgIC8vIDIuIElmIHByb3BlcnR5IHJlZmVycyB0byB0aGUgQ1NTIGZsb2F0IHByb3Bl
cnR5LCByZXR1cm4gdGhlIHN0cmluZyAiY3NzRmxvYXQiLgogICAgIGlmIChjc3NQcm9wZXJ0eUlk
ID09IENTU1Byb3BlcnR5RmxvYXQpCi0gICAgICAgIHJldHVybiAiY3NzRmxvYXQiOworICAgICAg
ICByZXR1cm4gImNzc0Zsb2F0Il9zOwogCiAgICAgLy8gMy4gSWYgcHJvcGVydHkgcmVmZXJzIHRv
IHRoZSBDU1Mgb2Zmc2V0IHByb3BlcnR5LCByZXR1cm4gdGhlIHN0cmluZyAiY3NzT2Zmc2V0Ii4K
ICAgICBpZiAoY3NzUHJvcGVydHlJZCA9PSBDU1NQcm9wZXJ0eU9mZnNldCkKLSAgICAgICAgcmV0
dXJuICJjc3NPZmZzZXQiOworICAgICAgICByZXR1cm4gImNzc09mZnNldCJfczsKIAogICAgIC8v
IDQuIE90aGVyd2lzZSwgcmV0dXJuIHRoZSByZXN1bHQgb2YgYXBwbHlpbmcgdGhlIENTUyBwcm9w
ZXJ0eSB0byBJREwgYXR0cmlidXRlIGFsZ29yaXRobSBbQ1NTT01dIHRvIHByb3BlcnR5LgogICAg
IHJldHVybiBnZXRKU1Byb3BlcnR5TmFtZShjc3NQcm9wZXJ0eUlkKTsKQEAgLTY2MCw3ICs2NjAs
NyBAQCBhdXRvIEtleWZyYW1lRWZmZWN0OjpnZXRLZXlmcmFtZXMoRG9jdW1lbnQmIGRvY3VtZW50
KSAtPiBWZWN0b3I8Q29tcHV0ZWRLZXlmcmFtZQogICAgICAgICBjb21wdXRlZEtleWZyYW1lLm9m
ZnNldCA9IGtleWZyYW1lLmtleSgpOwogICAgICAgICBjb21wdXRlZEtleWZyYW1lLmNvbXB1dGVk
T2Zmc2V0ID0ga2V5ZnJhbWUua2V5KCk7CiAgICAgICAgIC8vIEZvciBDU1MgdHJhbnNpdGlvbnMs
IGFsbCBrZXlmcmFtZXMgc2hvdWxkIHJldHVybiAibGluZWFyIiBzaW5jZSB0aGUgZWZmZWN0J3Mg
Z2xvYmFsIHRpbWluZyBmdW5jdGlvbiBhcHBsaWVzLgotICAgICAgICBjb21wdXRlZEtleWZyYW1l
LmVhc2luZyA9IGlzPENTU1RyYW5zaXRpb24+KGFuaW1hdGlvbigpKSA/ICJsaW5lYXIiIDogdGlt
aW5nRnVuY3Rpb25Gb3JCbGVuZGluZ0tleWZyYW1lKGtleWZyYW1lKS0+Y3NzVGV4dCgpOworICAg
ICAgICBjb21wdXRlZEtleWZyYW1lLmVhc2luZyA9IGlzPENTU1RyYW5zaXRpb24+KGFuaW1hdGlv
bigpKSA/ICJsaW5lYXIiX3MgOiB0aW1pbmdGdW5jdGlvbkZvckJsZW5kaW5nS2V5ZnJhbWUoa2V5
ZnJhbWUpLT5jc3NUZXh0KCk7CiAKICAgICAgICAgaWYgKGRvY3VtZW50LnNldHRpbmdzKCkud2Vi
QW5pbWF0aW9uc0NvbXBvc2l0ZU9wZXJhdGlvbnNFbmFibGVkKCkpIHsKICAgICAgICAgICAgIGlm
IChhdXRvIGNvbXBvc2l0ZU9wZXJhdGlvbiA9IGtleWZyYW1lLmNvbXBvc2l0ZU9wZXJhdGlvbigp
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvR0NDb250cm9sbGVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0dDQ29udHJvbGxlci5jcHAKaW5kZXggNWYx
MWUwYzYzNDg3NDE0M2FiMzE4NWEwMWRmOWZiMmVlMzZmMjVhZC4uNWY5MzQ5MTc1NmYyN2VjMDRk
NGRlYTlkMzgxYjdhNjRjNmM3OTIwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvR0NDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9H
Q0NvbnRyb2xsZXIuY3BwCkBAIC01OSw3ICs1OSw3IEBAIEdDQ29udHJvbGxlcjo6R0NDb250cm9s
bGVyKCkKIHsKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZUZsYWc7CiAgICAgc3RkOjpj
YWxsX29uY2Uob25jZUZsYWcsIFtdIHsKLSAgICAgICAgUEFMOjpyZWdpc3Rlck5vdGlmeUNhbGxi
YWNrKCJjb20uYXBwbGUuV2ViS2l0LmR1bXBHQ0hlYXAiLCBbXSB7CisgICAgICAgIFBBTDo6cmVn
aXN0ZXJOb3RpZnlDYWxsYmFjaygiY29tLmFwcGxlLldlYktpdC5kdW1wR0NIZWFwIl9zLCBbXSB7
CiAgICAgICAgICAgICBHQ0NvbnRyb2xsZXI6OnNpbmdsZXRvbigpLmR1bXBIZWFwKCk7CiAgICAg
ICAgIH0pOwogICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNDdXN0b21FbGVtZW50SW50ZXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTQ3VzdG9tRWxlbWVudEludGVyZmFjZS5jcHAKaW5kZXggNGUxZDI0ZWU5NDE3NGM5ZGY3NmQy
YjJlNTA3OWI3N2RkMGUyNmY5OC4uYTkxZTAyZjIzZDc1MDMwYTliOWFiZjg5YTM2Zjg0YWIxOWJh
ODhiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21FbGVt
ZW50SW50ZXJmYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3Rv
bUVsZW1lbnRJbnRlcmZhY2UuY3BwCkBAIC0yMTAsNyArMjEwLDcgQEAgdm9pZCBKU0N1c3RvbUVs
ZW1lbnRJbnRlcmZhY2U6OnVwZ3JhZGVFbGVtZW50KEVsZW1lbnQmIGVsZW1lbnQpCiAKICAgICBp
ZiAobV9pc1NoYWRvd0Rpc2FibGVkICYmIGVsZW1lbnQuc2hhZG93Um9vdCgpKSB7CiAgICAgICAg
IGVsZW1lbnQuY2xlYXJSZWFjdGlvblF1ZXVlRnJvbUZhaWxlZEN1c3RvbUVsZW1lbnQoKTsKLSAg
ICAgICAgcmVwb3J0RXhjZXB0aW9uKGxleGljYWxHbG9iYWxPYmplY3QsIGNyZWF0ZURPTUV4Y2Vw
dGlvbihsZXhpY2FsR2xvYmFsT2JqZWN0LCBOb3RTdXBwb3J0ZWRFcnJvciwgIkZhaWxlZCB0byB1
cGdyYWRlIGFuIGVsZW1lbnQgd2l0aCBzaGFkb3cgcm9vdDogdGhlIGN1c3RvbSBlbGVtZW50IGRl
ZmluaXRpb24gZGlzYWxsb3dzIHNoYWRvdyByb290cy4iKSk7CisgICAgICAgIHJlcG9ydEV4Y2Vw
dGlvbihsZXhpY2FsR2xvYmFsT2JqZWN0LCBjcmVhdGVET01FeGNlcHRpb24obGV4aWNhbEdsb2Jh
bE9iamVjdCwgTm90U3VwcG9ydGVkRXJyb3IsICJGYWlsZWQgdG8gdXBncmFkZSBhbiBlbGVtZW50
IHdpdGggc2hhZG93IHJvb3Q6IHRoZSBjdXN0b20gZWxlbWVudCBkZWZpbml0aW9uIGRpc2FsbG93
cyBzaGFkb3cgcm9vdHMuIl9zKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTIzMSw3
ICsyMzEsNyBAQCB2b2lkIEpTQ3VzdG9tRWxlbWVudEludGVyZmFjZTo6dXBncmFkZUVsZW1lbnQo
RWxlbWVudCYgZWxlbWVudCkKICAgICBFbGVtZW50KiB3cmFwcGVkRWxlbWVudCA9IEpTRWxlbWVu
dDo6dG9XcmFwcGVkKHZtLCByZXR1cm5lZEVsZW1lbnQpOwogICAgIGlmICghd3JhcHBlZEVsZW1l
bnQgfHwgd3JhcHBlZEVsZW1lbnQgIT0gJmVsZW1lbnQpIHsKICAgICAgICAgZWxlbWVudC5jbGVh
clJlYWN0aW9uUXVldWVGcm9tRmFpbGVkQ3VzdG9tRWxlbWVudCgpOwotICAgICAgICByZXBvcnRF
eGNlcHRpb24obGV4aWNhbEdsb2JhbE9iamVjdCwgY3JlYXRlRE9NRXhjZXB0aW9uKGxleGljYWxH
bG9iYWxPYmplY3QsIFR5cGVFcnJvciwgIkN1c3RvbSBlbGVtZW50IGNvbnN0cnVjdG9yIHJldHVy
bmVkIGEgd3JvbmcgZWxlbWVudCIpKTsKKyAgICAgICAgcmVwb3J0RXhjZXB0aW9uKGxleGljYWxH
bG9iYWxPYmplY3QsIGNyZWF0ZURPTUV4Y2VwdGlvbihsZXhpY2FsR2xvYmFsT2JqZWN0LCBUeXBl
RXJyb3IsICJDdXN0b20gZWxlbWVudCBjb25zdHJ1Y3RvciByZXR1cm5lZCBhIHdyb25nIGVsZW1l
bnQiX3MpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBlbGVtZW50LnNldElzRGVmaW5l
ZEN1c3RvbUVsZW1lbnQoKnRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01Db252ZXJ0TnVtYmVycy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNET01Db252ZXJ0TnVtYmVycy5oCmluZGV4IGI3YjYxM2RkNmMzN2VkMTE3YjkyMjAyMGFjMTNh
M2Q3YzU1YmJjYWQuLjI5NDEzZDhkOTg5NjkwMTBmYWExYzM1NGVhM2E4OWJhYzQwMGIwNzIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydE51bWJlcnMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnROdW1iZXJzLmgK
QEAgLTI5Myw3ICsyOTMsNyBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBDb252ZXJ0ZXI8SURMRmxvYXQ+
IDogRGVmYXVsdENvbnZlcnRlcjxJRExGbG9hdD4gewogICAgICAgICBkb3VibGUgbnVtYmVyID0g
dmFsdWUudG9OdW1iZXIoJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAgICAgICBSRVRVUk5fSUZf
RVhDRVBUSU9OKHNjb3BlLCAwLjApOwogICAgICAgICBpZiAoVU5MSUtFTFkobnVtYmVyIDwgc3Rk
OjpudW1lcmljX2xpbWl0czxmbG9hdD46Omxvd2VzdCgpIHx8IG51bWJlciA+IHN0ZDo6bnVtZXJp
Y19saW1pdHM8ZmxvYXQ+OjptYXgoKSkpCi0gICAgICAgICAgICB0aHJvd1R5cGVFcnJvcigmbGV4
aWNhbEdsb2JhbE9iamVjdCwgc2NvcGUsICJUaGUgcHJvdmlkZWQgdmFsdWUgaXMgb3V0c2lkZSB0
aGUgcmFuZ2Ugb2YgYSBmbG9hdCIpOworICAgICAgICAgICAgdGhyb3dUeXBlRXJyb3IoJmxleGlj
YWxHbG9iYWxPYmplY3QsIHNjb3BlLCAiVGhlIHByb3ZpZGVkIHZhbHVlIGlzIG91dHNpZGUgdGhl
IHJhbmdlIG9mIGEgZmxvYXQiX3MpOwogICAgICAgICBpZiAoVU5MSUtFTFkoIXN0ZDo6aXNmaW5p
dGUobnVtYmVyKSkpCiAgICAgICAgICAgICB0aHJvd05vbkZpbml0ZVR5cGVFcnJvcihsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBzY29wZSk7CiAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxmbG9hdD4o
bnVtYmVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXhlY1N0
YXRlSW5zdHJ1bWVudGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V4ZWNT
dGF0ZUluc3RydW1lbnRhdGlvbi5oCmluZGV4IGMwNDRiMDdhYmZjN2I2OWUzMTkxMjgzM2I0OTQ0
NjgxYmMzMjgwNTMuLjMxMDBmYWJmMmQ4NTcxMzVjOGE1M2U5NDY3YmUyMWM3Nzg5ZTY0Y2QgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXhlY1N0YXRlSW5zdHJ1bWVu
dGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFeGVjU3RhdGVJbnN0
cnVtZW50YXRpb24uaApAQCAtNDUsNyArNDUsNyBAQCBpbmxpbmUgdm9pZCBKU0V4ZWNTdGF0ZTo6
aW5zdHJ1bWVudEZ1bmN0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbgog
ICAgICAgICBsaW5lTnVtYmVyID0gY2FsbERhdGEuanMuZnVuY3Rpb25FeGVjdXRhYmxlLT5maXJz
dExpbmUoKTsKICAgICAgICAgY29sdW1uTnVtYmVyID0gY2FsbERhdGEuanMuZnVuY3Rpb25FeGVj
dXRhYmxlLT5zdGFydENvbHVtbigpOwogICAgIH0gZWxzZQotICAgICAgICByZXNvdXJjZU5hbWUg
PSAidW5kZWZpbmVkIjsKKyAgICAgICAgcmVzb3VyY2VOYW1lID0gInVuZGVmaW5lZCJfczsKICAg
ICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxDYWxsRnVuY3Rpb24oY29udGV4dCwgcmVz
b3VyY2VOYW1lLCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIpOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwCmluZGV4IGNkNGIzZjA3NmRm
NzM5OTA1NmYyNzhjNjVlNzJkMzJkMjQ3OWQ0NjAuLjQ4NGQ4YzJkZjM3YmVmN2QxN2RhNDFiNzAz
MjI5NGIxZDljZmZiMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Nj
cmlwdENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Njcmlw
dENvbnRyb2xsZXIuY3BwCkBAIC02MzMsNyArNjMzLDcgQEAgVmFsdWVPckV4Y2VwdGlvbiBTY3Jp
cHRDb250cm9sbGVyOjpjYWxsSW5Xb3JsZChSdW5KYXZhU2NyaXB0UGFyYW1ldGVycyYmIHBhcmFt
ZXQKICAgICAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfQ0FUQ0hfU0NPUEUoZ2xvYmFsT2JqZWN0
LnZtKCkpOwogICAgICAgICBhdXRvIGpzQXJndW1lbnQgPSBzZXJpYWxpemVkQXJndW1lbnQtPmRl
c2VyaWFsaXplKGdsb2JhbE9iamVjdCwgJmdsb2JhbE9iamVjdCk7CiAgICAgICAgIGlmIChVTkxJ
S0VMWShzY29wZS5leGNlcHRpb24oKSkpIHsKLSAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9ICJV
bmFibGUgdG8gZGVzZXJpYWxpemUgYXJndW1lbnQgdG8gZXhlY3V0ZSBhc3luY2hyb25vdXMgSmF2
YVNjcmlwdCBmdW5jdGlvbiI7CisgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSAiVW5hYmxlIHRv
IGRlc2VyaWFsaXplIGFyZ3VtZW50IHRvIGV4ZWN1dGUgYXN5bmNocm9ub3VzIEphdmFTY3JpcHQg
ZnVuY3Rpb24iX3M7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUubW0KaW5kZXggMTVjYjZhMDhlNWMzNWMxNzIy
Y2RkMzdjYTM4YWM1Y2E5NDRmYTE1OS4uYWU0MjIxMTQxZWVjYjg5MTUxYzYzMTYxMGUyMjIyMjRj
Y2ZkZGZjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50
aW1lLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5tbQpA
QCAtMTc2LDcgKzE3Niw3IEBAIGJvb2wgT2JqY0FycmF5OjpzZXRWYWx1ZUF0KEpTR2xvYmFsT2Jq
ZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCB1bnNpZ25lZCBpbnQgaW5kCiAgICAgfQogCiAgICAg
aWYgKGluZGV4ID4gW19hcnJheSBjb3VudF0pIHsKLSAgICAgICAgdGhyb3dFeGNlcHRpb24obGV4
aWNhbEdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZVJhbmdlRXJyb3IobGV4aWNhbEdsb2JhbE9i
amVjdCwgIkluZGV4IGV4Y2VlZHMgYXJyYXkgc2l6ZS4iKSk7CisgICAgICAgIHRocm93RXhjZXB0
aW9uKGxleGljYWxHbG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVSYW5nZUVycm9yKGxleGljYWxH
bG9iYWxPYmplY3QsICJJbmRleCBleGNlZWRzIGFycmF5IHNpemUuIl9zKSk7CiAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICB9CiAgICAgCkBAIC0xODgsNyArMTg4LDcgQEAgYm9vbCBPYmpjQXJy
YXk6OnNldFZhbHVlQXQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIHVuc2ln
bmVkIGludCBpbmQKICAgICAgICAgW19hcnJheSBpbnNlcnRPYmplY3Q6KF9fYnJpZGdlIGlkKW9W
YWx1ZS5vYmplY3RWYWx1ZSBhdEluZGV4OmluZGV4XTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgfSBAY2F0Y2goTlNFeGNlcHRpb24qIGxvY2FsRXhjZXB0aW9uKSB7Ci0gICAgICAgIHRocm93
RXhjZXB0aW9uKGxleGljYWxHbG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVFcnJvcihsZXhpY2Fs
R2xvYmFsT2JqZWN0LCAiT2JqZWN0aXZlLUMgZXhjZXB0aW9uLiIpKTsKKyAgICAgICAgdGhyb3dF
eGNlcHRpb24obGV4aWNhbEdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZUVycm9yKGxleGljYWxH
bG9iYWxPYmplY3QsICJPYmplY3RpdmUtQyBleGNlcHRpb24uIl9zKSk7CiAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICB9CiB9CkBAIC0xOTksMTMgKzE5OSwxMyBAQCBKU1ZhbHVlIE9iamNBcnJh
eTo6dmFsdWVBdChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgdW5zaWduZWQg
aW50IGluZAogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAogICAg
IGlmIChpbmRleCA+IFtfYXJyYXkgY291bnRdKQotICAgICAgICByZXR1cm4gdGhyb3dFeGNlcHRp
b24obGV4aWNhbEdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZVJhbmdlRXJyb3IobGV4aWNhbEds
b2JhbE9iamVjdCwgIkluZGV4IGV4Y2VlZHMgYXJyYXkgc2l6ZS4iKSk7CisgICAgICAgIHJldHVy
biB0aHJvd0V4Y2VwdGlvbihsZXhpY2FsR2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlUmFuZ2VF
cnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCAiSW5kZXggZXhjZWVkcyBhcnJheSBzaXplLiJfcykp
OwogICAgIEB0cnkgewogICAgICAgICBpZCBvYmogPSBbX2FycmF5IG9iamVjdEF0SW5kZXg6aW5k
ZXhdOwogICAgICAgICBpZiAob2JqKQogICAgICAgICAgICAgcmV0dXJuIGNvbnZlcnRPYmpjVmFs
dWVUb1ZhbHVlIChsZXhpY2FsR2xvYmFsT2JqZWN0LCAmb2JqLCBPYmpjT2JqZWN0VHlwZSwgbV9y
b290T2JqZWN0LmdldCgpKTsKICAgICB9IEBjYXRjaChOU0V4Y2VwdGlvbiogbG9jYWxFeGNlcHRp
b24pIHsKLSAgICAgICAgcmV0dXJuIHRocm93RXhjZXB0aW9uKGxleGljYWxHbG9iYWxPYmplY3Qs
IHNjb3BlLCBjcmVhdGVFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCAiT2JqZWN0aXZlLUMgZXhj
ZXB0aW9uLiIpKTsKKyAgICAgICAgcmV0dXJuIHRocm93RXhjZXB0aW9uKGxleGljYWxHbG9iYWxP
YmplY3QsIHNjb3BlLCBjcmVhdGVFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCAiT2JqZWN0aXZl
LUMgZXhjZXB0aW9uLiJfcykpOwogICAgIH0KICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmNwcAppbmRleCBjMDVlM2E0MGU4MDU2
NjVkYzBmZGVkMDJjMzA1MThlZDk2Mjg2MGMzLi5hZjM5YmExMTQwZGEwMzA0Mzg4NWEzYTg1NWEx
MzMxZTRmNTY1YTlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9h
cnJheS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwCkBA
IC0xMjcsNyArMTI3LDcgQEAgYm9vbCBSdW50aW1lQXJyYXk6OnB1dChKU0NlbGwqIGNlbGwsIEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBQcm9wZXIKIAogICAgIFJ1bnRpbWVB
cnJheSogdGhpc09iamVjdCA9IGpzQ2FzdDxSdW50aW1lQXJyYXkqPihjZWxsKTsKICAgICBpZiAo
cHJvcGVydHlOYW1lID09IHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCkgewotICAgICAgICB0aHJv
d0V4Y2VwdGlvbihsZXhpY2FsR2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlUmFuZ2VFcnJvcihs
ZXhpY2FsR2xvYmFsT2JqZWN0LCAiUmFuZ2UgZXJyb3IiKSk7CisgICAgICAgIHRocm93RXhjZXB0
aW9uKGxleGljYWxHbG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVSYW5nZUVycm9yKGxleGljYWxH
bG9iYWxPYmplY3QsICJSYW5nZSBlcnJvciJfcykpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgfQogICAgIApAQCAtMTQ0LDcgKzE0NCw3IEBAIGJvb2wgUnVudGltZUFycmF5OjpwdXRCeUlu
ZGV4KEpTQ2VsbCogY2VsbCwgSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsCiAK
ICAgICBSdW50aW1lQXJyYXkqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8UnVudGltZUFycmF5Kj4oY2Vs
bCk7CiAgICAgaWYgKGluZGV4ID49IHRoaXNPYmplY3QtPmdldExlbmd0aCgpKSB7Ci0gICAgICAg
IHRocm93RXhjZXB0aW9uKGxleGljYWxHbG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVSYW5nZUVy
cm9yKGxleGljYWxHbG9iYWxPYmplY3QsICJSYW5nZSBlcnJvciIpKTsKKyAgICAgICAgdGhyb3dF
eGNlcHRpb24obGV4aWNhbEdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZVJhbmdlRXJyb3IobGV4
aWNhbEdsb2JhbE9iamVjdCwgIlJhbmdlIGVycm9yIl9zKSk7CiAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGlt
ZV9vYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcApp
bmRleCBiMjRmMmFlZjE5NGJhZDI1YjNhNjFlYjg4ZTc0MTQ3ZGNlOTMxMGM3Li4yMGJlMWVlMmZm
MjUwNDJmMzg4MTVlZGEwNjhmZDlhNDg4OTU1ZTcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9icmlkZ2UvcnVudGltZV9vYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9y
dW50aW1lX29iamVjdC5jcHAKQEAgLTMxMCw3ICszMTAsNyBAQCB2b2lkIFJ1bnRpbWVPYmplY3Q6
OmdldE93blByb3BlcnR5TmFtZXMoSlNPYmplY3QqIG9iamVjdCwgSlNHbG9iYWxPYmplY3QqIGxl
eGljYQogCiBFeGNlcHRpb24qIHRocm93UnVudGltZU9iamVjdEludmFsaWRBY2Nlc3NFcnJvcihK
U0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgVGhyb3dTY29wZSYgc2NvcGUpCiB7
Ci0gICAgcmV0dXJuIHRocm93RXhjZXB0aW9uKGxleGljYWxHbG9iYWxPYmplY3QsIHNjb3BlLCBj
cmVhdGVSZWZlcmVuY2VFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCAiVHJ5aW5nIHRvIGFjY2Vz
cyBvYmplY3QgZnJvbSBkZXN0cm95ZWQgcGx1Zy1pbi4iKSk7CisgICAgcmV0dXJuIHRocm93RXhj
ZXB0aW9uKGxleGljYWxHbG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVSZWZlcmVuY2VFcnJvcihs
ZXhpY2FsR2xvYmFsT2JqZWN0LCAiVHJ5aW5nIHRvIGFjY2VzcyBvYmplY3QgZnJvbSBkZXN0cm95
ZWQgcGx1Zy1pbi4iX3MpKTsKIH0KIAogSlNDOjpHQ0NsaWVudDo6SXNvU3Vic3BhY2UqIFJ1bnRp
bWVPYmplY3Q6OnN1YnNwYWNlRm9ySW1wbChKU0M6OlZNJiB2bSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25BY3Rpb25zLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25BY3Rpb25z
LmNwcAppbmRleCAwY2E2MWMxMDE0ZDI0MzVlODRhYTBkYWZlMzAyMGZmYjA3OGU4Mzc5Li43YjI2
NTlmYzY3M2Q1MzYwOWU1ZDFiNWU0N2ZiNjgzYTE2M2FmMDliIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uQWN0aW9ucy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkFjdGlv
bnMuY3BwCkBAIC0yMDEsMTUgKzIwMSwxNSBAQCBhdXRvIE1vZGlmeUhlYWRlcnNBY3Rpb246Ok1v
ZGlmeUhlYWRlckluZm86OnBhcnNlKGNvbnN0IEpTT046OlZhbHVlJiBpbmZvVmFsdWUpCiAgICAg
aWYgKCFvYmplY3QpCiAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50RXh0ZW5z
aW9uRXJyb3I6OkpTT05Nb2RpZnlIZWFkZXJzSW5mb05vdEFEaWN0aW9uYXJ5KTsKIAotICAgIFN0
cmluZyBvcGVyYXRpb24gPSBvYmplY3QtPmdldFN0cmluZygib3BlcmF0aW9uIik7CisgICAgU3Ry
aW5nIG9wZXJhdGlvbiA9IG9iamVjdC0+Z2V0U3RyaW5nKCJvcGVyYXRpb24iX3MpOwogICAgIGlm
ICghb3BlcmF0aW9uKQogICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoQ29udGVudEV4dGVu
c2lvbkVycm9yOjpKU09OTW9kaWZ5SGVhZGVyc01pc3NpbmdPcGVyYXRpb24pOwogCi0gICAgU3Ry
aW5nIGhlYWRlciA9IG9iamVjdC0+Z2V0U3RyaW5nKCJoZWFkZXIiKTsKKyAgICBTdHJpbmcgaGVh
ZGVyID0gb2JqZWN0LT5nZXRTdHJpbmcoImhlYWRlciJfcyk7CiAgICAgaWYgKCFoZWFkZXIpCiAg
ICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05N
b2RpZnlIZWFkZXJzTWlzc2luZ0hlYWRlcik7CiAKLSAgICBTdHJpbmcgdmFsdWUgPSBvYmplY3Qt
PmdldFN0cmluZygidmFsdWUiKTsKKyAgICBTdHJpbmcgdmFsdWUgPSBvYmplY3QtPmdldFN0cmlu
ZygidmFsdWUiX3MpOwogCiAgICAgaWYgKG9wZXJhdGlvbiA9PSAic2V0IikgewogICAgICAgICBp
ZiAoIXZhbHVlKQpAQCAtMjg5LDI3ICsyODksMjcgQEAgc2l6ZV90IE1vZGlmeUhlYWRlcnNBY3Rp
b246Ok1vZGlmeUhlYWRlckluZm86OnNlcmlhbGl6ZWRMZW5ndGgoU3Bhbjxjb25zdCB1aW50OF8K
IAogRXhwZWN0ZWQ8UmVkaXJlY3RBY3Rpb24sIHN0ZDo6ZXJyb3JfY29kZT4gUmVkaXJlY3RBY3Rp
b246OnBhcnNlKGNvbnN0IEpTT046Ok9iamVjdCYgcmVkaXJlY3RPYmplY3QsIGNvbnN0IFN0cmlu
ZyYgdXJsRmlsdGVyKQogewotICAgIGF1dG8gcmVkaXJlY3QgPSByZWRpcmVjdE9iamVjdC5nZXRP
YmplY3QoInJlZGlyZWN0Iik7CisgICAgYXV0byByZWRpcmVjdCA9IHJlZGlyZWN0T2JqZWN0Lmdl
dE9iamVjdCgicmVkaXJlY3QiX3MpOwogICAgIGlmICghcmVkaXJlY3QpCiAgICAgICAgIHJldHVy
biBtYWtlVW5leHBlY3RlZChDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05SZWRpcmVjdE1pc3Np
bmcpOwogCi0gICAgaWYgKGF1dG8gZXh0ZW5zaW9uUGF0aCA9IHJlZGlyZWN0LT5nZXRTdHJpbmco
ImV4dGVuc2lvbi1wYXRoIik7ICEhZXh0ZW5zaW9uUGF0aCkgeworICAgIGlmIChhdXRvIGV4dGVu
c2lvblBhdGggPSByZWRpcmVjdC0+Z2V0U3RyaW5nKCJleHRlbnNpb24tcGF0aCJfcyk7ICEhZXh0
ZW5zaW9uUGF0aCkgewogICAgICAgICBpZiAoIWV4dGVuc2lvblBhdGguc3RhcnRzV2l0aCgnLycp
KQogICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKENvbnRlbnRFeHRlbnNpb25FcnJv
cjo6SlNPTlJlZGlyZWN0RXh0ZW5zaW9uUGF0aERvZXNOb3RTdGFydFdpdGhTbGFzaCk7CiAgICAg
ICAgIHJldHVybiBSZWRpcmVjdEFjdGlvbiB7IEV4dGVuc2lvblBhdGhBY3Rpb24geyBXVEZNb3Zl
KGV4dGVuc2lvblBhdGgpIH0gfTsKICAgICB9CiAKLSAgICBpZiAoYXV0byByZWdleFN1YnN0aXR1
dGlvbiA9IHJlZGlyZWN0LT5nZXRTdHJpbmcoInJlZ2V4LXN1YnN0aXR1dGlvbiIpOyAhIXJlZ2V4
U3Vic3RpdHV0aW9uKQorICAgIGlmIChhdXRvIHJlZ2V4U3Vic3RpdHV0aW9uID0gcmVkaXJlY3Qt
PmdldFN0cmluZygicmVnZXgtc3Vic3RpdHV0aW9uIl9zKTsgISFyZWdleFN1YnN0aXR1dGlvbikK
ICAgICAgICAgcmV0dXJuIFJlZGlyZWN0QWN0aW9uIHsgUmVnZXhTdWJzdGl0dXRpb25BY3Rpb24g
eyBXVEZNb3ZlKHJlZ2V4U3Vic3RpdHV0aW9uKSwgdXJsRmlsdGVyIH0gfTsKIAotICAgIGlmIChh
dXRvIHRyYW5zZm9ybSA9IHJlZGlyZWN0LT5nZXRPYmplY3QoInRyYW5zZm9ybSIpKSB7CisgICAg
aWYgKGF1dG8gdHJhbnNmb3JtID0gcmVkaXJlY3QtPmdldE9iamVjdCgidHJhbnNmb3JtIl9zKSkg
ewogICAgICAgICBhdXRvIHBhcnNlZFRyYW5zZm9ybSA9IFVSTFRyYW5zZm9ybUFjdGlvbjo6cGFy
c2UoKnRyYW5zZm9ybSk7CiAgICAgICAgIGlmICghcGFyc2VkVHJhbnNmb3JtKQogICAgICAgICAg
ICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKHBhcnNlZFRyYW5zZm9ybS5lcnJvcigpKTsKICAgICAg
ICAgcmV0dXJuIFJlZGlyZWN0QWN0aW9uIHsgV1RGTW92ZSgqcGFyc2VkVHJhbnNmb3JtKSB9Owog
ICAgIH0KIAotICAgIGlmIChhdXRvIHVybFN0cmluZyA9IHJlZGlyZWN0LT5nZXRTdHJpbmcoInVy
bCIpOyAhIXVybFN0cmluZykgeworICAgIGlmIChhdXRvIHVybFN0cmluZyA9IHJlZGlyZWN0LT5n
ZXRTdHJpbmcoInVybCJfcyk7ICEhdXJsU3RyaW5nKSB7CiAgICAgICAgIFVSTCB1cmwgeyB1cmxT
dHJpbmcgfTsKICAgICAgICAgaWYgKCF1cmwuaXNWYWxpZCgpKQogICAgICAgICAgICAgcmV0dXJu
IG1ha2VVbmV4cGVjdGVkKENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTlJlZGlyZWN0VVJMSW52
YWxpZCk7CkBAIC00ODMsMTUgKzQ4MywxNSBAQCB2b2lkIFJlZGlyZWN0QWN0aW9uOjpSZWdleFN1
YnN0aXR1dGlvbkFjdGlvbjo6YXBwbHlUb1VSTChVUkwmIHVybCkgY29uc3QKIGF1dG8gUmVkaXJl
Y3RBY3Rpb246OlVSTFRyYW5zZm9ybUFjdGlvbjo6cGFyc2UoY29uc3QgSlNPTjo6T2JqZWN0JiB0
cmFuc2Zvcm0pIC0+IEV4cGVjdGVkPFVSTFRyYW5zZm9ybUFjdGlvbiwgc3RkOjplcnJvcl9jb2Rl
PgogewogICAgIFVSTFRyYW5zZm9ybUFjdGlvbiBhY3Rpb247Ci0gICAgaWYgKGF1dG8gZnJhZ21l
bnQgPSB0cmFuc2Zvcm0uZ2V0U3RyaW5nKCJmcmFnbWVudCIpOyAhIWZyYWdtZW50KSB7CisgICAg
aWYgKGF1dG8gZnJhZ21lbnQgPSB0cmFuc2Zvcm0uZ2V0U3RyaW5nKCJmcmFnbWVudCJfcyk7ICEh
ZnJhZ21lbnQpIHsKICAgICAgICAgaWYgKCFmcmFnbWVudC5pc0VtcHR5KCkgJiYgIWZyYWdtZW50
LnN0YXJ0c1dpdGgoJyMnKSkKICAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChDb250
ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05SZWRpcmVjdEludmFsaWRGcmFnbWVudCk7CiAgICAgICAg
IGFjdGlvbi5mcmFnbWVudCA9IFdURk1vdmUoZnJhZ21lbnQpOwogICAgIH0KLSAgICBhY3Rpb24u
aG9zdCA9IHRyYW5zZm9ybS5nZXRTdHJpbmcoImhvc3QiKTsKLSAgICBhY3Rpb24ucGFzc3dvcmQg
PSB0cmFuc2Zvcm0uZ2V0U3RyaW5nKCJwYXNzd29yZCIpOwotICAgIGFjdGlvbi5wYXRoID0gdHJh
bnNmb3JtLmdldFN0cmluZygicGF0aCIpOwotICAgIGF1dG8gcG9ydCA9IHRyYW5zZm9ybS5nZXRT
dHJpbmcoInBvcnQiKTsKKyAgICBhY3Rpb24uaG9zdCA9IHRyYW5zZm9ybS5nZXRTdHJpbmcoImhv
c3QiX3MpOworICAgIGFjdGlvbi5wYXNzd29yZCA9IHRyYW5zZm9ybS5nZXRTdHJpbmcoInBhc3N3
b3JkIl9zKTsKKyAgICBhY3Rpb24ucGF0aCA9IHRyYW5zZm9ybS5nZXRTdHJpbmcoInBhdGgiX3Mp
OworICAgIGF1dG8gcG9ydCA9IHRyYW5zZm9ybS5nZXRTdHJpbmcoInBvcnQiX3MpOwogICAgIGlm
ICghIXBvcnQpIHsKICAgICAgICAgaWYgKHBvcnQuaXNFbXB0eSgpKQogICAgICAgICAgICAgYWN0
aW9uLnBvcnQgPSB7IHN0ZDo6b3B0aW9uYWw8dWludDE2X3Q+IHsgfSB9OwpAQCAtNTAzLDcgKzUw
Myw3IEBAIGF1dG8gUmVkaXJlY3RBY3Rpb246OlVSTFRyYW5zZm9ybUFjdGlvbjo6cGFyc2UoY29u
c3QgSlNPTjo6T2JqZWN0JiB0cmFuc2Zvcm0pIC0+CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBp
ZiAoYXV0byB1bmNhbm9uaWNhbGl6ZWRTY2hlbWUgPSB0cmFuc2Zvcm0uZ2V0U3RyaW5nKCJzY2hl
bWUiKTsgISF1bmNhbm9uaWNhbGl6ZWRTY2hlbWUpIHsKKyAgICBpZiAoYXV0byB1bmNhbm9uaWNh
bGl6ZWRTY2hlbWUgPSB0cmFuc2Zvcm0uZ2V0U3RyaW5nKCJzY2hlbWUiX3MpOyAhIXVuY2Fub25p
Y2FsaXplZFNjaGVtZSkgewogICAgICAgICBhdXRvIHNjaGVtZSA9IFdURjo6VVJMUGFyc2VyOjpt
YXliZUNhbm9uaWNhbGl6ZVNjaGVtZSh1bmNhbm9uaWNhbGl6ZWRTY2hlbWUpOwogICAgICAgICBp
ZiAoIXNjaGVtZSkKICAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50RXh0
ZW5zaW9uRXJyb3I6OkpTT05SZWRpcmVjdFVSTFNjaGVtZUludmFsaWQpOwpAQCAtNTExLDE0ICs1
MTEsMTQgQEAgYXV0byBSZWRpcmVjdEFjdGlvbjo6VVJMVHJhbnNmb3JtQWN0aW9uOjpwYXJzZShj
b25zdCBKU09OOjpPYmplY3QmIHRyYW5zZm9ybSkgLT4KICAgICAgICAgICAgIHJldHVybiBtYWtl
VW5leHBlY3RlZChDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05SZWRpcmVjdFRvSmF2YVNjcmlw
dFVSTCk7CiAgICAgICAgIGFjdGlvbi5zY2hlbWUgPSBXVEZNb3ZlKCpzY2hlbWUpOwogICAgIH0K
LSAgICBhY3Rpb24udXNlcm5hbWUgPSB0cmFuc2Zvcm0uZ2V0U3RyaW5nKCJ1c2VybmFtZSIpOwot
ICAgIGlmIChhdXRvIHF1ZXJ5VHJhbnNmb3JtID0gdHJhbnNmb3JtLmdldE9iamVjdCgicXVlcnkt
dHJhbnNmb3JtIikpIHsKKyAgICBhY3Rpb24udXNlcm5hbWUgPSB0cmFuc2Zvcm0uZ2V0U3RyaW5n
KCJ1c2VybmFtZSJfcyk7CisgICAgaWYgKGF1dG8gcXVlcnlUcmFuc2Zvcm0gPSB0cmFuc2Zvcm0u
Z2V0T2JqZWN0KCJxdWVyeS10cmFuc2Zvcm0iX3MpKSB7CiAgICAgICAgIGF1dG8gcGFyc2VkUXVl
cnlUcmFuc2Zvcm0gPSBRdWVyeVRyYW5zZm9ybTo6cGFyc2UoKnF1ZXJ5VHJhbnNmb3JtKTsKICAg
ICAgICAgaWYgKCFwYXJzZWRRdWVyeVRyYW5zZm9ybSkKICAgICAgICAgICAgIHJldHVybiBtYWtl
VW5leHBlY3RlZChwYXJzZWRRdWVyeVRyYW5zZm9ybS5lcnJvcigpKTsKICAgICAgICAgYWN0aW9u
LnF1ZXJ5VHJhbnNmb3JtID0gKnBhcnNlZFF1ZXJ5VHJhbnNmb3JtOwogICAgIH0gZWxzZSB7Ci0g
ICAgICAgIGF1dG8gcXVlcnkgPSB0cmFuc2Zvcm0uZ2V0U3RyaW5nKCJxdWVyeSIpOworICAgICAg
ICBhdXRvIHF1ZXJ5ID0gdHJhbnNmb3JtLmdldFN0cmluZygicXVlcnkiX3MpOwogICAgICAgICBp
ZiAoIXF1ZXJ5LmlzRW1wdHkoKSAmJiAhcXVlcnkuc3RhcnRzV2l0aCgnPycpKQogICAgICAgICAg
ICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTlJlZGly
ZWN0SW52YWxpZFF1ZXJ5KTsKICAgICAgICAgYWN0aW9uLnF1ZXJ5VHJhbnNmb3JtID0gV1RGTW92
ZShxdWVyeSk7CkBAIC02OTksNyArNjk5LDcgQEAgYXV0byBSZWRpcmVjdEFjdGlvbjo6VVJMVHJh
bnNmb3JtQWN0aW9uOjpRdWVyeVRyYW5zZm9ybTo6cGFyc2UoY29uc3QgSlNPTjo6T2JqZWMKIHsK
ICAgICBRdWVyeVRyYW5zZm9ybSBwYXJzZWRRdWVyeVRyYW5zZm9ybTsKIAotICAgIGlmIChhdXRv
IHJlbW92ZVBhcmFtZXRlcnNWYWx1ZSA9IHF1ZXJ5VHJhbnNmb3JtLmdldFZhbHVlKCJyZW1vdmUt
cGFyYW1ldGVycyIpKSB7CisgICAgaWYgKGF1dG8gcmVtb3ZlUGFyYW1ldGVyc1ZhbHVlID0gcXVl
cnlUcmFuc2Zvcm0uZ2V0VmFsdWUoInJlbW92ZS1wYXJhbWV0ZXJzIl9zKSkgewogICAgICAgICBh
dXRvIHJlbW92ZVBhcmFtZXRlcnNBcnJheSA9IHJlbW92ZVBhcmFtZXRlcnNWYWx1ZS0+YXNBcnJh
eSgpOwogICAgICAgICBpZiAoIXJlbW92ZVBhcmFtZXRlcnNBcnJheSkKICAgICAgICAgICAgIHJl
dHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05SZW1vdmVQYXJh
bWV0ZXJzTm90U3RyaW5nQXJyYXkpOwpAQCAtNzEzLDcgKzcxMyw3IEBAIGF1dG8gUmVkaXJlY3RB
Y3Rpb246OlVSTFRyYW5zZm9ybUFjdGlvbjo6UXVlcnlUcmFuc2Zvcm06OnBhcnNlKGNvbnN0IEpT
T046Ok9iamVjCiAgICAgICAgIHBhcnNlZFF1ZXJ5VHJhbnNmb3JtLnJlbW92ZVBhcmFtcyA9IFdU
Rk1vdmUocmVtb3ZlUGFyYW1ldGVyc1ZlY3Rvcik7CiAgICAgfQogCi0gICAgaWYgKGF1dG8gYWRk
T3JSZXBsYWNlUGFyYW1ldGVyc1ZhbHVlID0gcXVlcnlUcmFuc2Zvcm0uZ2V0VmFsdWUoImFkZC1v
ci1yZXBsYWNlLXBhcmFtZXRlcnMiKSkgeworICAgIGlmIChhdXRvIGFkZE9yUmVwbGFjZVBhcmFt
ZXRlcnNWYWx1ZSA9IHF1ZXJ5VHJhbnNmb3JtLmdldFZhbHVlKCJhZGQtb3ItcmVwbGFjZS1wYXJh
bWV0ZXJzIl9zKSkgewogICAgICAgICBhdXRvIGFkZE9yUmVwbGFjZVBhcmFtZXRlcnNBcnJheSA9
IGFkZE9yUmVwbGFjZVBhcmFtZXRlcnNWYWx1ZS0+YXNBcnJheSgpOwogICAgICAgICBpZiAoIWFk
ZE9yUmVwbGFjZVBhcmFtZXRlcnNBcnJheSkKICAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBl
Y3RlZChDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05BZGRPclJlcGxhY2VQYXJhbWV0ZXJzTm90
QXJyYXkpOwpAQCAtODU4LDE2ICs4NTgsMTYgQEAgYXV0byBSZWRpcmVjdEFjdGlvbjo6VVJMVHJh
bnNmb3JtQWN0aW9uOjpRdWVyeVRyYW5zZm9ybTo6UXVlcnlLZXlWYWx1ZTo6cGFyc2UoY28KICAg
ICBpZiAoIWtleVZhbHVlKQogICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoQ29udGVudEV4
dGVuc2lvbkVycm9yOjpKU09OQWRkT3JSZXBsYWNlUGFyYW1ldGVyc0tleVZhbHVlTm90QURpY3Rp
b25hcnkpOwogCi0gICAgU3RyaW5nIGtleSA9IGtleVZhbHVlLT5nZXRTdHJpbmcoImtleSIpOwor
ICAgIFN0cmluZyBrZXkgPSBrZXlWYWx1ZS0+Z2V0U3RyaW5nKCJrZXkiX3MpOwogICAgIGlmICgh
a2V5KQogICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoQ29udGVudEV4dGVuc2lvbkVycm9y
OjpKU09OQWRkT3JSZXBsYWNlUGFyYW1ldGVyc0tleVZhbHVlTWlzc2luZ0tleVN0cmluZyk7CiAK
LSAgICBTdHJpbmcgdmFsdWUgPSBrZXlWYWx1ZS0+Z2V0U3RyaW5nKCJ2YWx1ZSIpOworICAgIFN0
cmluZyB2YWx1ZSA9IGtleVZhbHVlLT5nZXRTdHJpbmcoInZhbHVlIl9zKTsKICAgICBpZiAoIXZh
bHVlKQogICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoQ29udGVudEV4dGVuc2lvbkVycm9y
OjpKU09OQWRkT3JSZXBsYWNlUGFyYW1ldGVyc0tleVZhbHVlTWlzc2luZ1ZhbHVlU3RyaW5nKTsK
IAogICAgIGJvb2wgcmVwbGFjZU9ubHkgeyBmYWxzZSB9OwotICAgIGlmIChhdXRvIGJvb2xlYW4g
PSBrZXlWYWx1ZS0+Z2V0Qm9vbGVhbigicmVwbGFjZS1vbmx5IikpCisgICAgaWYgKGF1dG8gYm9v
bGVhbiA9IGtleVZhbHVlLT5nZXRCb29sZWFuKCJyZXBsYWNlLW9ubHkiX3MpKQogICAgICAgICBy
ZXBsYWNlT25seSA9ICpib29sZWFuOwogCiAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKGtleSksIHJl
cGxhY2VPbmx5LCBXVEZNb3ZlKHZhbHVlKSB9IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uQ29tcGlsZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkNvbXBpbGVyLmNwcApp
bmRleCBjZmViZjVjMzA3OGE5NDFkMTljNzlhMjkyYzQ3MGM5ZWJiZjI4MmNmLi5lODcyMWQ0YTc0
NzllZDY4MzAxN2YwYTQ4NWU4NDZhMzI5YzkwZTAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uQ29tcGlsZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25Db21waWxlci5j
cHAKQEAgLTMxNiw3ICszMTYsNyBAQCBzdGQ6OmVycm9yX2NvZGUgY29tcGlsZVJ1bGVMaXN0KENv
bnRlbnRFeHRlbnNpb25Db21waWxhdGlvbkNsaWVudCYgY2xpZW50LCBTdHJpbgogICAgICAgICAg
ICAgc3RhdHVzID0gVVJMRmlsdGVyUGFyc2VyOjpPazsKICAgICAgICAgfQogICAgICAgICBpZiAo
c3RhdHVzICE9IFVSTEZpbHRlclBhcnNlcjo6T2spIHsKLSAgICAgICAgICAgIGRhdGFMb2dGKCJF
cnJvciB3aGlsZSBwYXJzaW5nICVzOiAlc1xuIiwgdHJpZ2dlci51cmxGaWx0ZXIudXRmOCgpLmRh
dGEoKSwgVVJMRmlsdGVyUGFyc2VyOjpzdGF0dXNTdHJpbmcoc3RhdHVzKS51dGY4KCkuZGF0YSgp
KTsKKyAgICAgICAgICAgIGRhdGFMb2dGKCJFcnJvciB3aGlsZSBwYXJzaW5nICVzOiAlc1xuIiwg
dHJpZ2dlci51cmxGaWx0ZXIudXRmOCgpLmRhdGEoKSwgVVJMRmlsdGVyUGFyc2VyOjpzdGF0dXNT
dHJpbmcoc3RhdHVzKS5jaGFyYWN0ZXJzKCkpOwogICAgICAgICAgICAgcmV0dXJuIENvbnRlbnRF
eHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWRSZWdleDsKICAgICAgICAgfQogCkBAIC0zMzMsNyAr
MzMzLDcgQEAgc3RkOjplcnJvcl9jb2RlIGNvbXBpbGVSdWxlTGlzdChDb250ZW50RXh0ZW5zaW9u
Q29tcGlsYXRpb25DbGllbnQmIGNsaWVudCwgU3RyaW4KICAgICAgICAgICAgICAgICAgICAgc3Rh
dHVzID0gVVJMRmlsdGVyUGFyc2VyOjpPazsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg
ICAgICAgaWYgKHN0YXR1cyAhPSBVUkxGaWx0ZXJQYXJzZXI6Ok9rKSB7Ci0gICAgICAgICAgICAg
ICAgICAgIGRhdGFMb2dGKCJFcnJvciB3aGlsZSBwYXJzaW5nICVzOiAlc1xuIiwgY29uZGl0aW9u
LnV0ZjgoKS5kYXRhKCksIFVSTEZpbHRlclBhcnNlcjo6c3RhdHVzU3RyaW5nKHN0YXR1cykudXRm
OCgpLmRhdGEoKSk7CisgICAgICAgICAgICAgICAgICAgIGRhdGFMb2dGKCJFcnJvciB3aGlsZSBw
YXJzaW5nICVzOiAlc1xuIiwgY29uZGl0aW9uLnV0ZjgoKS5kYXRhKCksIFVSTEZpbHRlclBhcnNl
cjo6c3RhdHVzU3RyaW5nKHN0YXR1cykuY2hhcmFjdGVycygpKTsKICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWRSZWdleDsKICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC0zNDQsNyArMzQ0LDcgQEAg
c3RkOjplcnJvcl9jb2RlIGNvbXBpbGVSdWxlTGlzdChDb250ZW50RXh0ZW5zaW9uQ29tcGlsYXRp
b25DbGllbnQmIGNsaWVudCwgU3RyaW4KICAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gVVJM
RmlsdGVyUGFyc2VyOjpPazsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgaWYg
KHN0YXR1cyAhPSBVUkxGaWx0ZXJQYXJzZXI6Ok9rKSB7Ci0gICAgICAgICAgICAgICAgICAgIGRh
dGFMb2dGKCJFcnJvciB3aGlsZSBwYXJzaW5nICVzOiAlc1xuIiwgY29uZGl0aW9uLnV0ZjgoKS5k
YXRhKCksIFVSTEZpbHRlclBhcnNlcjo6c3RhdHVzU3RyaW5nKHN0YXR1cykudXRmOCgpLmRhdGEo
KSk7CisgICAgICAgICAgICAgICAgICAgIGRhdGFMb2dGKCJFcnJvciB3aGlsZSBwYXJzaW5nICVz
OiAlc1xuIiwgY29uZGl0aW9uLnV0ZjgoKS5kYXRhKCksIFVSTEZpbHRlclBhcnNlcjo6c3RhdHVz
U3RyaW5nKHN0YXR1cykuY2hhcmFjdGVycygpKTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWRSZWdleDsKICAgICAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
b250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25QYXJzZXIuY3BwCmluZGV4IDUx
M2ZkOTM5ZTY2ZGI1Y2EyNTEyOWY1NzZiOTgyYjRmOGM5ODI0ZTEuLjc0NDE2NWYwYjUyMDE1Y2Nl
ZmQ3N2Y2ODdjZTUzY2MwNWMxYjE1NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NvbnRl
bnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25QYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25QYXJzZXIuY3BwCkBAIC05Myw3
ICs5Myw3IEBAIHN0YXRpYyBFeHBlY3RlZDxWZWN0b3I8U3RyaW5nPiwgc3RkOjplcnJvcl9jb2Rl
PiBnZXREb21haW5MaXN0KGNvbnN0IEpTT046OkFycmF5CiAgICAgICAgICAgICB7ICckJywgIlxc
JCIgfQogICAgICAgICB9IH07CiAgICAgICAgIGZvciAoYXV0byYgcGFpciA6IGVzY2FwZVRhYmxl
KQotICAgICAgICAgICAgZG9tYWluID0gZG9tYWluLnJlcGxhY2UocGFpci5maXJzdCwgcGFpci5z
ZWNvbmQpOworICAgICAgICAgICAgZG9tYWluID0gZG9tYWluLnJlcGxhY2UocGFpci5maXJzdCwg
U3RyaW5nIHsgcGFpci5zZWNvbmQgfSk7CiAKICAgICAgICAgY29uc3QgY2hhciogcHJvdG9jb2xS
ZWdleCA9ICJbYS16XVthLXorLi1dKjpcXC9cXC8iOwogICAgICAgICBjb25zdCBjaGFyKiBhbGxv
d1N1YmRvbWFpbnNSZWdleCA9ICIoLipcXC4pKiI7CkBAIC0xMTksMjcgKzExOSwyNyBAQCBzdGF0
aWMgc3RkOjplcnJvcl9jb2RlIGdldFR5cGVGbGFncyhjb25zdCBKU09OOjpBcnJheSYgYXJyYXks
IFJlc291cmNlRmxhZ3MmIGZsYQogICAgIAogc3RhdGljIEV4cGVjdGVkPFRyaWdnZXIsIHN0ZDo6
ZXJyb3JfY29kZT4gbG9hZFRyaWdnZXIoY29uc3QgSlNPTjo6T2JqZWN0JiBydWxlT2JqZWN0KQog
ewotICAgIGF1dG8gdHJpZ2dlck9iamVjdCA9IHJ1bGVPYmplY3QuZ2V0T2JqZWN0KCJ0cmlnZ2Vy
Iik7CisgICAgYXV0byB0cmlnZ2VyT2JqZWN0ID0gcnVsZU9iamVjdC5nZXRPYmplY3QoInRyaWdn
ZXIiX3MpOwogICAgIGlmICghdHJpZ2dlck9iamVjdCkKICAgICAgICAgcmV0dXJuIG1ha2VVbmV4
cGVjdGVkKENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWRUcmlnZ2VyKTsKIAotICAg
IFN0cmluZyB1cmxGaWx0ZXIgPSB0cmlnZ2VyT2JqZWN0LT5nZXRTdHJpbmcoInVybC1maWx0ZXIi
KTsKKyAgICBTdHJpbmcgdXJsRmlsdGVyID0gdHJpZ2dlck9iamVjdC0+Z2V0U3RyaW5nKCJ1cmwt
ZmlsdGVyIl9zKTsKICAgICBpZiAodXJsRmlsdGVyLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJu
IG1ha2VVbmV4cGVjdGVkKENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWRVUkxGaWx0
ZXJJblRyaWdnZXIpOwogCiAgICAgVHJpZ2dlciB0cmlnZ2VyOwogICAgIHRyaWdnZXIudXJsRmls
dGVyID0gdXJsRmlsdGVyOwogCi0gICAgaWYgKHN0ZDo6b3B0aW9uYWw8Ym9vbD4gdXJsRmlsdGVy
Q2FzZVNlbnNpdGl2ZVZhbHVlID0gdHJpZ2dlck9iamVjdC0+Z2V0Qm9vbGVhbigidXJsLWZpbHRl
ci1pcy1jYXNlLXNlbnNpdGl2ZSIpKQorICAgIGlmIChzdGQ6Om9wdGlvbmFsPGJvb2w+IHVybEZp
bHRlckNhc2VTZW5zaXRpdmVWYWx1ZSA9IHRyaWdnZXJPYmplY3QtPmdldEJvb2xlYW4oInVybC1m
aWx0ZXItaXMtY2FzZS1zZW5zaXRpdmUiX3MpKQogICAgICAgICB0cmlnZ2VyLnVybEZpbHRlcklz
Q2FzZVNlbnNpdGl2ZSA9ICp1cmxGaWx0ZXJDYXNlU2Vuc2l0aXZlVmFsdWU7CiAKLSAgICBpZiAo
c3RkOjpvcHRpb25hbDxib29sPiB0b3BVUkxGaWx0ZXJDYXNlU2Vuc2l0aXZlVmFsdWUgPSB0cmln
Z2VyT2JqZWN0LT5nZXRCb29sZWFuKCJ0b3AtdXJsLWZpbHRlci1pcy1jYXNlLXNlbnNpdGl2ZSIp
KQorICAgIGlmIChzdGQ6Om9wdGlvbmFsPGJvb2w+IHRvcFVSTEZpbHRlckNhc2VTZW5zaXRpdmVW
YWx1ZSA9IHRyaWdnZXJPYmplY3QtPmdldEJvb2xlYW4oInRvcC11cmwtZmlsdGVyLWlzLWNhc2Ut
c2Vuc2l0aXZlIl9zKSkKICAgICAgICAgdHJpZ2dlci50b3BVUkxGaWx0ZXJJc0Nhc2VTZW5zaXRp
dmUgPSAqdG9wVVJMRmlsdGVyQ2FzZVNlbnNpdGl2ZVZhbHVlOwogCi0gICAgaWYgKHN0ZDo6b3B0
aW9uYWw8Ym9vbD4gZnJhbWVVUkxGaWx0ZXJDYXNlU2Vuc2l0aXZlVmFsdWUgPSB0cmlnZ2VyT2Jq
ZWN0LT5nZXRCb29sZWFuKCJmcmFtZS11cmwtZmlsdGVyLWlzLWNhc2Utc2Vuc2l0aXZlIikpCisg
ICAgaWYgKHN0ZDo6b3B0aW9uYWw8Ym9vbD4gZnJhbWVVUkxGaWx0ZXJDYXNlU2Vuc2l0aXZlVmFs
dWUgPSB0cmlnZ2VyT2JqZWN0LT5nZXRCb29sZWFuKCJmcmFtZS11cmwtZmlsdGVyLWlzLWNhc2Ut
c2Vuc2l0aXZlIl9zKSkKICAgICAgICAgdHJpZ2dlci5mcmFtZVVSTEZpbHRlcklzQ2FzZVNlbnNp
dGl2ZSA9ICpmcmFtZVVSTEZpbHRlckNhc2VTZW5zaXRpdmVWYWx1ZTsKIAotICAgIGlmIChhdXRv
IHJlc291cmNlVHlwZVZhbHVlID0gdHJpZ2dlck9iamVjdC0+Z2V0VmFsdWUoInJlc291cmNlLXR5
cGUiKSkgeworICAgIGlmIChhdXRvIHJlc291cmNlVHlwZVZhbHVlID0gdHJpZ2dlck9iamVjdC0+
Z2V0VmFsdWUoInJlc291cmNlLXR5cGUiX3MpKSB7CiAgICAgICAgIGF1dG8gcmVzb3VyY2VUeXBl
QXJyYXkgPSByZXNvdXJjZVR5cGVWYWx1ZS0+YXNBcnJheSgpOwogICAgICAgICBpZiAoIXJlc291
cmNlVHlwZUFycmF5KQogICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKENvbnRlbnRF
eHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWRUcmlnZ2VyRmxhZ3NBcnJheSk7CkBAIC0xNDcsNyAr
MTQ3LDcgQEAgc3RhdGljIEV4cGVjdGVkPFRyaWdnZXIsIHN0ZDo6ZXJyb3JfY29kZT4gbG9hZFRy
aWdnZXIoY29uc3QgSlNPTjo6T2JqZWN0JiBydWxlT2IKICAgICAgICAgICAgIHJldHVybiBtYWtl
VW5leHBlY3RlZChlcnJvcik7CiAgICAgfQogCi0gICAgaWYgKGF1dG8gbG9hZFR5cGVWYWx1ZSA9
IHRyaWdnZXJPYmplY3QtPmdldFZhbHVlKCJsb2FkLXR5cGUiKSkgeworICAgIGlmIChhdXRvIGxv
YWRUeXBlVmFsdWUgPSB0cmlnZ2VyT2JqZWN0LT5nZXRWYWx1ZSgibG9hZC10eXBlIl9zKSkgewog
ICAgICAgICBhdXRvIGxvYWRUeXBlQXJyYXkgPSBsb2FkVHlwZVZhbHVlLT5hc0FycmF5KCk7CiAg
ICAgICAgIGlmICghbG9hZFR5cGVBcnJheSkKICAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBl
Y3RlZChDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkVHJpZ2dlckZsYWdzQXJyYXkp
OwpAQCAtMTU1LDcgKzE1NSw3IEBAIHN0YXRpYyBFeHBlY3RlZDxUcmlnZ2VyLCBzdGQ6OmVycm9y
X2NvZGU+IGxvYWRUcmlnZ2VyKGNvbnN0IEpTT046Ok9iamVjdCYgcnVsZU9iCiAgICAgICAgICAg
ICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoZXJyb3IpOwogICAgIH0KIAotICAgIGlmIChhdXRvIGxv
YWRDb250ZXh0VmFsdWUgPSB0cmlnZ2VyT2JqZWN0LT5nZXRWYWx1ZSgibG9hZC1jb250ZXh0Iikp
IHsKKyAgICBpZiAoYXV0byBsb2FkQ29udGV4dFZhbHVlID0gdHJpZ2dlck9iamVjdC0+Z2V0VmFs
dWUoImxvYWQtY29udGV4dCJfcykpIHsKICAgICAgICAgYXV0byBsb2FkQ29udGV4dEFycmF5ID0g
bG9hZENvbnRleHRWYWx1ZS0+YXNBcnJheSgpOwogICAgICAgICBpZiAoIWxvYWRDb250ZXh0QXJy
YXkpCiAgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoQ29udGVudEV4dGVuc2lvbkVy
cm9yOjpKU09OSW52YWxpZFRyaWdnZXJGbGFnc0FycmF5KTsKQEAgLTIxMiwxMSArMjEyLDExIEBA
IGJvb2wgaXNWYWxpZENTU1NlbGVjdG9yKGNvbnN0IFN0cmluZyYgc2VsZWN0b3IpCiAKIHN0YXRp
YyBzdGQ6Om9wdGlvbmFsPEV4cGVjdGVkPEFjdGlvbiwgc3RkOjplcnJvcl9jb2RlPj4gbG9hZEFj
dGlvbihjb25zdCBKU09OOjpPYmplY3QmIHJ1bGVPYmplY3QsIGNvbnN0IFN0cmluZyYgdXJsRmls
dGVyKQogewotICAgIGF1dG8gYWN0aW9uT2JqZWN0ID0gcnVsZU9iamVjdC5nZXRPYmplY3QoImFj
dGlvbiIpOworICAgIGF1dG8gYWN0aW9uT2JqZWN0ID0gcnVsZU9iamVjdC5nZXRPYmplY3QoImFj
dGlvbiJfcyk7CiAgICAgaWYgKCFhY3Rpb25PYmplY3QpCiAgICAgICAgIHJldHVybiBtYWtlVW5l
eHBlY3RlZChDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkQWN0aW9uKTsKIAotICAg
IFN0cmluZyBhY3Rpb25UeXBlID0gYWN0aW9uT2JqZWN0LT5nZXRTdHJpbmcoInR5cGUiKTsKKyAg
ICBTdHJpbmcgYWN0aW9uVHlwZSA9IGFjdGlvbk9iamVjdC0+Z2V0U3RyaW5nKCJ0eXBlIl9zKTsK
IAogICAgIGlmIChhY3Rpb25UeXBlID09ICJibG9jayIpCiAgICAgICAgIHJldHVybiBBY3Rpb24g
eyBCbG9ja0xvYWRBY3Rpb24oKSB9OwpAQCAtMjI1LDcgKzIyNSw3IEBAIHN0YXRpYyBzdGQ6Om9w
dGlvbmFsPEV4cGVjdGVkPEFjdGlvbiwgc3RkOjplcnJvcl9jb2RlPj4gbG9hZEFjdGlvbihjb25z
dCBKU09OOjpPCiAgICAgaWYgKGFjdGlvblR5cGUgPT0gImJsb2NrLWNvb2tpZXMiKQogICAgICAg
ICByZXR1cm4gQWN0aW9uIHsgQmxvY2tDb29raWVzQWN0aW9uKCkgfTsKICAgICBpZiAoYWN0aW9u
VHlwZSA9PSAiY3NzLWRpc3BsYXktbm9uZSIpIHsKLSAgICAgICAgU3RyaW5nIHNlbGVjdG9yU3Ry
aW5nID0gYWN0aW9uT2JqZWN0LT5nZXRTdHJpbmcoInNlbGVjdG9yIik7CisgICAgICAgIFN0cmlu
ZyBzZWxlY3RvclN0cmluZyA9IGFjdGlvbk9iamVjdC0+Z2V0U3RyaW5nKCJzZWxlY3RvciJfcyk7
CiAgICAgICAgIGlmICghc2VsZWN0b3JTdHJpbmcpCiAgICAgICAgICAgICByZXR1cm4gbWFrZVVu
ZXhwZWN0ZWQoQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZENTU0Rpc3BsYXlOb25l
QWN0aW9uVHlwZSk7CiAgICAgICAgIGlmICghaXNWYWxpZENTU1NlbGVjdG9yKHNlbGVjdG9yU3Ry
aW5nKSkKQEAgLTIzNSw3ICsyMzUsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxFeHBlY3RlZDxB
Y3Rpb24sIHN0ZDo6ZXJyb3JfY29kZT4+IGxvYWRBY3Rpb24oY29uc3QgSlNPTjo6TwogICAgIGlm
IChhY3Rpb25UeXBlID09ICJtYWtlLWh0dHBzIikKICAgICAgICAgcmV0dXJuIEFjdGlvbiB7IE1h
a2VIVFRQU0FjdGlvbigpIH07CiAgICAgaWYgKGFjdGlvblR5cGUgPT0gIm5vdGlmeSIpIHsKLSAg
ICAgICAgU3RyaW5nIG5vdGlmaWNhdGlvbiA9IGFjdGlvbk9iamVjdC0+Z2V0U3RyaW5nKCJub3Rp
ZmljYXRpb24iKTsKKyAgICAgICAgU3RyaW5nIG5vdGlmaWNhdGlvbiA9IGFjdGlvbk9iamVjdC0+
Z2V0U3RyaW5nKCJub3RpZmljYXRpb24iX3MpOwogICAgICAgICBpZiAoIW5vdGlmaWNhdGlvbikK
ICAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50RXh0ZW5zaW9uRXJyb3I6
OkpTT05JbnZhbGlkTm90aWZpY2F0aW9uKTsKICAgICAgICAgcmV0dXJuIEFjdGlvbiB7IE5vdGlm
eUFjdGlvbiB7IHsgV1RGTW92ZShub3RpZmljYXRpb24pIH0gfSB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvU2VyaWFsaXplZE5GQS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9TZXJpYWxpemVkTkZBLmNwcAppbmRleCAwNGM2ZGE1
YTg0OGQwODkxZjMzZjRmODM5ZGE5NTJiOGM3Njc5YTA5Li4wNTJiNTk3YmNmYjkyYTc0Mzc5M2Y5
MTVlZDY5NmU3YTBlOWU0OGYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0
ZW5zaW9ucy9TZXJpYWxpemVkTkZBLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0
ZW5zaW9ucy9TZXJpYWxpemVkTkZBLmNwcApAQCAtNTIsNyArNTIsNyBAQCBib29sIHdyaXRlQWxs
VG9GaWxlKEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSBmaWxlLCBjb25zdCBUJiBjb250
YWluZXIpCiBzdGQ6Om9wdGlvbmFsPFNlcmlhbGl6ZWRORkE+IFNlcmlhbGl6ZWRORkE6OnNlcmlh
bGl6ZShORkEmJiBuZmEpCiB7CiAgICAgYXV0byBmaWxlID0gRmlsZVN5c3RlbTo6aW52YWxpZFBs
YXRmb3JtRmlsZUhhbmRsZTsKLSAgICBhdXRvIGZpbGVuYW1lID0gRmlsZVN5c3RlbTo6b3BlblRl
bXBvcmFyeUZpbGUoIlNlcmlhbGl6ZWRORkEiLCBmaWxlKTsKKyAgICBhdXRvIGZpbGVuYW1lID0g
RmlsZVN5c3RlbTo6b3BlblRlbXBvcmFyeUZpbGUoIlNlcmlhbGl6ZWRORkEiX3MsIGZpbGUpOwog
ICAgIGlmICghRmlsZVN5c3RlbTo6aXNIYW5kbGVWYWxpZChmaWxlKSkKICAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVu
c2lvbnMvVVJMRmlsdGVyUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNp
b25zL1VSTEZpbHRlclBhcnNlci5jcHAKaW5kZXggZDg3MjlkMzkwZDkwNzMwYTBlYjdkYjNhOGM5
ZjE3MThjODZmN2EzYS4uNGZmMTIyNWZhYTgyMjg1YjMxY2VkNTc1OWRiODk3NzY5MTg5ZTc0YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvVVJMRmlsdGVyUGFy
c2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9VUkxGaWx0ZXJQ
YXJzZXIuY3BwCkBAIC0zNjksMzkgKzM2OSwzOSBAQCBVUkxGaWx0ZXJQYXJzZXI6OlBhcnNlU3Rh
dHVzIFVSTEZpbHRlclBhcnNlcjo6YWRkUGF0dGVybihjb25zdCBTdHJpbmcmIHBhdHRlcm4sCiAg
ICAgcmV0dXJuIHN0YXR1czsKIH0KIAotU3RyaW5nIFVSTEZpbHRlclBhcnNlcjo6c3RhdHVzU3Ry
aW5nKFBhcnNlU3RhdHVzIHN0YXR1cykKK0FTQ0lJTGl0ZXJhbCBVUkxGaWx0ZXJQYXJzZXI6OnN0
YXR1c1N0cmluZyhQYXJzZVN0YXR1cyBzdGF0dXMpCiB7CiAgICAgc3dpdGNoIChzdGF0dXMpIHsK
ICAgICBjYXNlIE9rOgotICAgICAgICByZXR1cm4gIk9rIjsKKyAgICAgICAgcmV0dXJuICJPayJf
czsKICAgICBjYXNlIE1hdGNoZXNFdmVyeXRoaW5nOgotICAgICAgICByZXR1cm4gIk1hdGNoZXMg
ZXZlcnl0aGluZy4iOworICAgICAgICByZXR1cm4gIk1hdGNoZXMgZXZlcnl0aGluZy4iX3M7CiAg
ICAgY2FzZSBOb25BU0NJSToKLSAgICAgICAgcmV0dXJuICJPbmx5IEFTQ0lJIGNoYXJhY3RlcnMg
YXJlIHN1cHBvcnRlZCBpbiBwYXR0ZXJuLiI7CisgICAgICAgIHJldHVybiAiT25seSBBU0NJSSBj
aGFyYWN0ZXJzIGFyZSBzdXBwb3J0ZWQgaW4gcGF0dGVybi4iX3M7CiAgICAgY2FzZSBVbnN1cHBv
cnRlZENoYXJhY3RlckNsYXNzOgotICAgICAgICByZXR1cm4gIkNoYXJhY3RlciBjbGFzcyBpcyBu
b3Qgc3VwcG9ydGVkLiI7CisgICAgICAgIHJldHVybiAiQ2hhcmFjdGVyIGNsYXNzIGlzIG5vdCBz
dXBwb3J0ZWQuIl9zOwogICAgIGNhc2UgQmFja1JlZmVyZW5jZToKLSAgICAgICAgcmV0dXJuICJQ
YXR0ZXJucyBjYW5ub3QgY29udGFpbiBiYWNrcmVmZXJlbmNlcy4iOworICAgICAgICByZXR1cm4g
IlBhdHRlcm5zIGNhbm5vdCBjb250YWluIGJhY2tyZWZlcmVuY2VzLiJfczsKICAgICBjYXNlIEZv
cndhcmRSZWZlcmVuY2U6Ci0gICAgICAgIHJldHVybiAiUGF0dGVybnMgY2Fubm90IGNvbnRhaW4g
Zm9yd2FyZCByZWZlcmVuY2VzLiI7CisgICAgICAgIHJldHVybiAiUGF0dGVybnMgY2Fubm90IGNv
bnRhaW4gZm9yd2FyZCByZWZlcmVuY2VzLiJfczsKICAgICBjYXNlIE1pc3BsYWNlZFN0YXJ0T2ZM
aW5lOgotICAgICAgICByZXR1cm4gIlN0YXJ0IG9mIGxpbmUgYXNzZXJ0aW9uIGNhbiBvbmx5IGFw
cGVhciBhcyB0aGUgZmlyc3QgdGVybSBpbiBhIGZpbHRlci4iOworICAgICAgICByZXR1cm4gIlN0
YXJ0IG9mIGxpbmUgYXNzZXJ0aW9uIGNhbiBvbmx5IGFwcGVhciBhcyB0aGUgZmlyc3QgdGVybSBp
biBhIGZpbHRlci4iX3M7CiAgICAgY2FzZSBXb3JkQm91bmRhcnk6Ci0gICAgICAgIHJldHVybiAi
V29yZCBib3VuZGFyaWVzIGFzc2VydGlvbnMgYXJlIG5vdCBzdXBwb3J0ZWQgeWV0LiI7CisgICAg
ICAgIHJldHVybiAiV29yZCBib3VuZGFyaWVzIGFzc2VydGlvbnMgYXJlIG5vdCBzdXBwb3J0ZWQg
eWV0LiJfczsKICAgICBjYXNlIEF0b21DaGFyYWN0ZXI6Ci0gICAgICAgIHJldHVybiAiQnVpbHRp
bnMgY2hhcmFjdGVyIGNsYXNzIGF0b21zIGFyZSBub3Qgc3VwcG9ydGVkIHlldC4iOworICAgICAg
ICByZXR1cm4gIkJ1aWx0aW5zIGNoYXJhY3RlciBjbGFzcyBhdG9tcyBhcmUgbm90IHN1cHBvcnRl
ZCB5ZXQuIl9zOwogICAgIGNhc2UgR3JvdXA6Ci0gICAgICAgIHJldHVybiAiR3JvdXBzIGFyZSBu
b3Qgc3VwcG9ydGVkIHlldC4iOworICAgICAgICByZXR1cm4gIkdyb3VwcyBhcmUgbm90IHN1cHBv
cnRlZCB5ZXQuIl9zOwogICAgIGNhc2UgRGlzanVuY3Rpb246Ci0gICAgICAgIHJldHVybiAiRGlz
anVuY3Rpb25zIGFyZSBub3Qgc3VwcG9ydGVkIHlldC4iOworICAgICAgICByZXR1cm4gIkRpc2p1
bmN0aW9ucyBhcmUgbm90IHN1cHBvcnRlZCB5ZXQuIl9zOwogICAgIGNhc2UgTWlzcGxhY2VkRW5k
T2ZMaW5lOgotICAgICAgICByZXR1cm4gIlRoZSBlbmQgb2YgbGluZSBhc3NlcnRpb24gbXVzdCBi
ZSB0aGUgbGFzdCB0ZXJtIGluIGFuIGV4cHJlc3Npb24uIjsKKyAgICAgICAgcmV0dXJuICJUaGUg
ZW5kIG9mIGxpbmUgYXNzZXJ0aW9uIG11c3QgYmUgdGhlIGxhc3QgdGVybSBpbiBhbiBleHByZXNz
aW9uLiJfczsKICAgICBjYXNlIEVtcHR5UGF0dGVybjoKLSAgICAgICAgcmV0dXJuICJFbXB0eSBw
YXR0ZXJuLiI7CisgICAgICAgIHJldHVybiAiRW1wdHkgcGF0dGVybi4iX3M7CiAgICAgY2FzZSBZ
YXJyRXJyb3I6Ci0gICAgICAgIHJldHVybiAiSW50ZXJuYWwgZXJyb3IgaW4gWUFSUi4iOworICAg
ICAgICByZXR1cm4gIkludGVybmFsIGVycm9yIGluIFlBUlIuIl9zOwogICAgIGNhc2UgSW52YWxp
ZFF1YW50aWZpZXI6Ci0gICAgICAgIHJldHVybiAiQXJiaXRyYXJ5IGF0b20gcmVwZXRpdGlvbnMg
YXJlIG5vdCBzdXBwb3J0ZWQuIjsKKyAgICAgICAgcmV0dXJuICJBcmJpdHJhcnkgYXRvbSByZXBl
dGl0aW9ucyBhcmUgbm90IHN1cHBvcnRlZC4iX3M7CiAgICAgfQogCiAgICAgUkVMRUFTRV9BU1NF
UlRfTk9UX1JFQUNIRUQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRl
bnNpb25zL1VSTEZpbHRlclBhcnNlci5oIGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lv
bnMvVVJMRmlsdGVyUGFyc2VyLmgKaW5kZXggYjVjMWY2ZDlmZDJlN2M5NGNiMjU2NTc1Njg5ZGY0
YjcwNzA3OWE5ZC4uODg5ODNiNTVjM2NiZWQ1OWY0YTRhMDFhZWQyNWE0MzJjODAyOGI0MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvVVJMRmlsdGVyUGFyc2Vy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvVVJMRmlsdGVyUGFyc2Vy
LmgKQEAgLTU0LDcgKzU0LDcgQEAgcHVibGljOgogICAgICAgICBZYXJyRXJyb3IsCiAgICAgICAg
IEludmFsaWRRdWFudGlmaWVyLAogICAgIH07Ci0gICAgc3RhdGljIFN0cmluZyBzdGF0dXNTdHJp
bmcoUGFyc2VTdGF0dXMpOworICAgIHN0YXRpYyBBU0NJSUxpdGVyYWwgc3RhdHVzU3RyaW5nKFBh
cnNlU3RhdHVzKTsKICAgICBleHBsaWNpdCBVUkxGaWx0ZXJQYXJzZXIoQ29tYmluZWRVUkxGaWx0
ZXJzJik7CiAgICAgflVSTEZpbHRlclBhcnNlcigpOwogICAgIFBhcnNlU3RhdHVzIGFkZFBhdHRl
cm4oY29uc3QgU3RyaW5nJiBwYXR0ZXJuLCBib29sIHBhdHRlcm5Jc0Nhc2VTZW5zaXRpdmUsIHVp
bnQ2NF90IHBhdHRlcm5JZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vU3Vi
dGxlQ3J5cHRvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9TdWJ0bGVDcnlwdG8uY3BwCmlu
ZGV4IGVhYTMyMThmY2Y3Yjc3ODU0ZmIyMzg1ZTUwMWE5OTk0MzZmYmViNTguLjlkNmY0MzAzNjU5
ODJkNmU5NTBlOWMxYTZhMWQ2YjJjMWE3ZDM5NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2NyeXB0by9TdWJ0bGVDcnlwdG8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9TdWJ0
bGVDcnlwdG8uY3BwCkBAIC01MzQsNyArNTM0LDcgQEAgdm9pZCBTdWJ0bGVDcnlwdG86OmFkZEF1
dGhlbnRpY2F0ZWRFbmNyeXB0aW9uV2FybmluZ0lmTmVjZXNzYXJ5KENyeXB0b0FsZ29yaXRobUkK
IHsKICAgICBpZiAoYWxnb3JpdGhtSWRlbnRpZmllciA9PSBDcnlwdG9BbGdvcml0aG1JZGVudGlm
aWVyOjpBRVNfQ0JDIHx8IGFsZ29yaXRobUlkZW50aWZpZXIgPT0gQ3J5cHRvQWxnb3JpdGhtSWRl
bnRpZmllcjo6QUVTX0NUUikgewogICAgICAgICBpZiAoIXNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KS0+aGFzTG9nZ2VkQXV0aGVudGljYXRlZEVuY3J5cHRpb25XYXJuaW5nKCkpIHsKLSAgICAgICAg
ICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNv
dXJjZTo6U2VjdXJpdHksIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgIkFFUy1DQkMgYW5kIEFFUy1D
VFIgZG8gbm90IHByb3ZpZGUgYXV0aGVudGljYXRpb24gYnkgZGVmYXVsdCwgYW5kIGltcGxlbWVu
dGluZyBpdCBtYW51YWxseSBjYW4gcmVzdWx0IGluIG1pbm9yLCBidXQgc2VyaW91cyBtaXN0YWtl
cy4gV2UgcmVjb21tZW5kZWQgdXNpbmcgYXV0aGVudGljYXRlZCBlbmNyeXB0aW9uIGxpa2UgQUVT
LUdDTSB0byBwcm90ZWN0IGFnYWluc3QgY2hvc2VuLWNpcGhlcnRleHQgYXR0YWNrcy4iKTsKKyAg
ICAgICAgICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+YWRkQ29uc29sZU1lc3NhZ2UoTWVz
c2FnZVNvdXJjZTo6U2VjdXJpdHksIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgIkFFUy1DQkMgYW5k
IEFFUy1DVFIgZG8gbm90IHByb3ZpZGUgYXV0aGVudGljYXRpb24gYnkgZGVmYXVsdCwgYW5kIGlt
cGxlbWVudGluZyBpdCBtYW51YWxseSBjYW4gcmVzdWx0IGluIG1pbm9yLCBidXQgc2VyaW91cyBt
aXN0YWtlcy4gV2UgcmVjb21tZW5kZWQgdXNpbmcgYXV0aGVudGljYXRlZCBlbmNyeXB0aW9uIGxp
a2UgQUVTLUdDTSB0byBwcm90ZWN0IGFnYWluc3QgY2hvc2VuLWNpcGhlcnRleHQgYXR0YWNrcy4i
X3MpOwogICAgICAgICAgICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5zZXRIYXNMb2dnZWRB
dXRoZW50aWNhdGVkRW5jcnlwdGlvbldhcm5pbmcodHJ1ZSk7CiAgICAgICAgIH0KICAgICB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0
aG1BRVNfQ0JDLmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdv
cml0aG1BRVNfQ0JDLmgKaW5kZXggMjczMjk4NWI3N2ZlZGZjMzk2NzRkNDc0OWQ4OTU1MGEwYTE3
MWMyNi4uYjc0NDNhNzMzOTg0MjA4OGY4M2NjYzZmMzVjYTI5NzcxNjA4Y2NmYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NC
Qy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRo
bUFFU19DQkMuaApAQCAtNDEsNyArNDEsNyBAQCBwdWJsaWM6CiAgICAgICAgIE5vCiAgICAgfTsK
IAotICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3QgY2hhciogc19uYW1lID0gIkFFUy1DQkMiOwor
ICAgIHN0YXRpYyBjb25zdGV4cHIgQVNDSUlMaXRlcmFsIHNfbmFtZSA9ICJBRVMtQ0JDIl9zOwog
ICAgIHN0YXRpYyBjb25zdGV4cHIgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBzX2lkZW50aWZp
ZXIgPSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpBRVNfQ0JDOwogICAgIHN0YXRpYyBSZWY8
Q3J5cHRvQWxnb3JpdGhtPiBjcmVhdGUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NGQi5oIGIvU291cmNlL1dlYkNv
cmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NGQi5oCmluZGV4IGMyMjc0
MTkxZjYzNWI4MzNhNDkxZTgyY2IxZGU3ZGE4MTAzYzZkOWEuLjUwOGEyMDMzNjRhY2JhY2ZjMGZm
Yzg1NzI3NTI3OWVmNTQ2Y2ZjODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9h
bGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DRkIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
cnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfQ0ZCLmgKQEAgLTM2LDcgKzM2LDcg
QEAgY2xhc3MgQ3J5cHRvS2V5QUVTOwogCiBjbGFzcyBDcnlwdG9BbGdvcml0aG1BRVNfQ0ZCIGZp
bmFsIDogcHVibGljIENyeXB0b0FsZ29yaXRobSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0
ZXhwciBjb25zdCBjaGFyKiBzX25hbWUgPSAiQUVTLUNGQi04IjsKKyAgICBzdGF0aWMgY29uc3Rl
eHByIEFTQ0lJTGl0ZXJhbCBzX25hbWUgPSAiQUVTLUNGQi04Il9zOwogICAgIHN0YXRpYyBjb25z
dGV4cHIgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBzX2lkZW50aWZpZXIgPSBDcnlwdG9BbGdv
cml0aG1JZGVudGlmaWVyOjpBRVNfQ0ZCOwogICAgIHN0YXRpYyBSZWY8Q3J5cHRvQWxnb3JpdGht
PiBjcmVhdGUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRo
bXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NUUi5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29y
aXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NUUi5oCmluZGV4IDcxOGY2ZTBlMzM4NmU2ZmU2MjUz
OTVhZmJiNzlhZDMwYzRmYTQxNGEuLjhiZDM5MzM5ZGMzNjAwZjZjNDg2ZWE2MTBjMWI4MjQ2Yjhj
MjI3MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0
b0FsZ29yaXRobUFFU19DVFIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGht
cy9DcnlwdG9BbGdvcml0aG1BRVNfQ1RSLmgKQEAgLTY0LDcgKzY0LDcgQEAgcHVibGljOgogICAg
ICAgICBjb25zdCBzaXplX3QgbV9jb3VudGVyTGVuZ3RoOwogICAgIH07CiAKLSAgICBzdGF0aWMg
Y29uc3RleHByIGNvbnN0IGNoYXIqIHNfbmFtZSA9ICJBRVMtQ1RSIjsKKyAgICBzdGF0aWMgY29u
c3RleHByIEFTQ0lJTGl0ZXJhbCBzX25hbWUgPSAiQUVTLUNUUiJfczsKICAgICBzdGF0aWMgY29u
c3RleHByIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgc19pZGVudGlmaWVyID0gQ3J5cHRvQWxn
b3JpdGhtSWRlbnRpZmllcjo6QUVTX0NUUjsKICAgICBzdGF0aWMgUmVmPENyeXB0b0FsZ29yaXRo
bT4gY3JlYXRlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0
aG1zL0NyeXB0b0FsZ29yaXRobUFFU19HQ00uaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdv
cml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19HQ00uaAppbmRleCBkMGFkMWYxM2MxNzhiNWNjOWIx
NzZlYjMwZTZjZWMyYTFiY2I0NjU4Li41MzMxMGUxMTEwNzVlMTYzNGVmM2UwNTdiNGFkZjZhMTNj
NjkyMzFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9Dcnlw
dG9BbGdvcml0aG1BRVNfR0NNLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRo
bXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0dDTS5oCkBAIC0zNiw3ICszNiw3IEBAIGNsYXNzIENyeXB0
b0tleUFFUzsKIAogY2xhc3MgQ3J5cHRvQWxnb3JpdGhtQUVTX0dDTSBmaW5hbCA6IHB1YmxpYyBD
cnlwdG9BbGdvcml0aG0gewogcHVibGljOgotICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3QgY2hh
ciogc19uYW1lID0gIkFFUy1HQ00iOworICAgIHN0YXRpYyBjb25zdGV4cHIgQVNDSUlMaXRlcmFs
IHNfbmFtZSA9ICJBRVMtR0NNIl9zOwogICAgIHN0YXRpYyBjb25zdGV4cHIgQ3J5cHRvQWxnb3Jp
dGhtSWRlbnRpZmllciBzX2lkZW50aWZpZXIgPSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpB
RVNfR0NNOwogICAgIHN0YXRpYyBSZWY8Q3J5cHRvQWxnb3JpdGhtPiBjcmVhdGUoKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGht
QUVTX0tXLmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0
aG1BRVNfS1cuaAppbmRleCA1N2U2OWMxNWMxMmM3ZWUxOGViNzY1MThkZmY4N2JmNGI1NzI0Yjk5
Li5hMDhkZWMzZjI2Y2JiNTk5MTU0YTIzNTY1OTBlZjBmZDE3N2M2M2RiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfS1cuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNf
S1cuaApAQCAtMzUsNyArMzUsNyBAQCBjbGFzcyBDcnlwdG9LZXlBRVM7CiAKIGNsYXNzIENyeXB0
b0FsZ29yaXRobUFFU19LVyBmaW5hbCA6IHB1YmxpYyBDcnlwdG9BbGdvcml0aG0gewogcHVibGlj
OgotICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3QgY2hhciogc19uYW1lID0gIkFFUy1LVyI7Cisg
ICAgc3RhdGljIGNvbnN0ZXhwciBBU0NJSUxpdGVyYWwgc19uYW1lID0gIkFFUy1LVyJfczsKICAg
ICBzdGF0aWMgY29uc3RleHByIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgc19pZGVudGlmaWVy
ID0gQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6QUVTX0tXOwogICAgIHN0YXRpYyBSZWY8Q3J5
cHRvQWxnb3JpdGhtPiBjcmVhdGUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5
cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtRUNESC5oIGIvU291cmNlL1dlYkNvcmUvY3J5
cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtRUNESC5oCmluZGV4IDkzYTE1YTJkYTM1MWRj
ZTcyNzQzMzgxOTdkMjY2MzEwNTg1ZjdiZjUuLjMyZDU1NDU2Yzk3MDgyNWNjZTU1MmQ3ZGUwNDNh
NDI5NTBkMGUyM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1z
L0NyeXB0b0FsZ29yaXRobUVDREguaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3Jp
dGhtcy9DcnlwdG9BbGdvcml0aG1FQ0RILmgKQEAgLTM1LDcgKzM1LDcgQEAgY2xhc3MgQ3J5cHRv
S2V5RUM7CiAKIGNsYXNzIENyeXB0b0FsZ29yaXRobUVDREggZmluYWwgOiBwdWJsaWMgQ3J5cHRv
QWxnb3JpdGhtIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3RleHByIGNvbnN0IGNoYXIqIHNf
bmFtZSA9ICJFQ0RIIjsKKyAgICBzdGF0aWMgY29uc3RleHByIEFTQ0lJTGl0ZXJhbCBzX25hbWUg
PSAiRUNESCJfczsKICAgICBzdGF0aWMgY29uc3RleHByIENyeXB0b0FsZ29yaXRobUlkZW50aWZp
ZXIgc19pZGVudGlmaWVyID0gQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6RUNESDsKICAgICBz
dGF0aWMgUmVmPENyeXB0b0FsZ29yaXRobT4gY3JlYXRlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUVDRFNBLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1FQ0RTQS5oCmluZGV4
IDNhNTkxYmRmYWYyMjg4NTBkZThjMDgyYmYyNzdhMTkwMDYzODllNjYuLmI3Yzc4ODlmOGUwMzIx
MzRjM2RlMDNiN2FhYmY3NWM1MmY4MmJkM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Ny
eXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUVDRFNBLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtRUNEU0EuaApAQCAtMzYsNyArMzYs
NyBAQCBjbGFzcyBDcnlwdG9LZXlFQzsKIAogY2xhc3MgQ3J5cHRvQWxnb3JpdGhtRUNEU0EgZmlu
YWwgOiBwdWJsaWMgQ3J5cHRvQWxnb3JpdGhtIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3Rl
eHByIGNvbnN0IGNoYXIqIHNfbmFtZSA9ICJFQ0RTQSI7CisgICAgc3RhdGljIGNvbnN0ZXhwciBB
U0NJSUxpdGVyYWwgc19uYW1lID0gIkVDRFNBIl9zOwogICAgIHN0YXRpYyBjb25zdGV4cHIgQ3J5
cHRvQWxnb3JpdGhtSWRlbnRpZmllciBzX2lkZW50aWZpZXIgPSBDcnlwdG9BbGdvcml0aG1JZGVu
dGlmaWVyOjpFQ0RTQTsKICAgICBzdGF0aWMgUmVmPENyeXB0b0FsZ29yaXRobT4gY3JlYXRlKCk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0Fs
Z29yaXRobUhLREYuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0Fs
Z29yaXRobUhLREYuaAppbmRleCAxZGRjZDlkMWExNDYzMTYwMzIxYjExNmFlNzRkOWEzNmQ5Y2Ix
ZDZhLi44ZjM5MzliMTliNGVjOTI4Njc4MDczZjI3NDZhOTViMGVmM2IzNWEyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1IS0RGLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtSEtE
Ri5oCkBAIC0zNiw3ICszNiw3IEBAIGNsYXNzIENyeXB0b0tleVJhdzsKIAogY2xhc3MgQ3J5cHRv
QWxnb3JpdGhtSEtERiBmaW5hbCA6IHB1YmxpYyBDcnlwdG9BbGdvcml0aG0gewogcHVibGljOgot
ICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3QgY2hhciogc19uYW1lID0gIkhLREYiOworICAgIHN0
YXRpYyBjb25zdGV4cHIgQVNDSUlMaXRlcmFsIHNfbmFtZSA9ICJIS0RGIl9zOwogICAgIHN0YXRp
YyBjb25zdGV4cHIgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBzX2lkZW50aWZpZXIgPSBDcnlw
dG9BbGdvcml0aG1JZGVudGlmaWVyOjpIS0RGOwogICAgIHN0YXRpYyBSZWY8Q3J5cHRvQWxnb3Jp
dGhtPiBjcmVhdGUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29y
aXRobXMvQ3J5cHRvQWxnb3JpdGhtSE1BQy5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29y
aXRobXMvQ3J5cHRvQWxnb3JpdGhtSE1BQy5oCmluZGV4IGZhOGYwYWRkY2NlMTI4ZjI0NzE1MTcz
ZmFmYmZhOTI3MzI1MjUwZDMuLjlmMTA4NDY5OGFiNDNmN2U1ZWQ5OWJiY2FkODVmODExYWFiYjVj
MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0Fs
Z29yaXRobUhNQUMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9Dcnlw
dG9BbGdvcml0aG1ITUFDLmgKQEAgLTM1LDcgKzM1LDcgQEAgY2xhc3MgQ3J5cHRvS2V5SE1BQzsK
IAogY2xhc3MgQ3J5cHRvQWxnb3JpdGhtSE1BQyBmaW5hbCA6IHB1YmxpYyBDcnlwdG9BbGdvcml0
aG0gewogcHVibGljOgotICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3QgY2hhciogc19uYW1lID0g
IkhNQUMiOworICAgIHN0YXRpYyBjb25zdGV4cHIgQVNDSUlMaXRlcmFsIHNfbmFtZSA9ICJITUFD
Il9zOwogICAgIHN0YXRpYyBjb25zdGV4cHIgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBzX2lk
ZW50aWZpZXIgPSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpITUFDOwogICAgIHN0YXRpYyBS
ZWY8Q3J5cHRvQWxnb3JpdGhtPiBjcmVhdGUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUEJLREYyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1QQktERjIuaAppbmRleCBiZDk3
NDVjNzAzNThlNzhkNTNiNDgwY2MyNjZkYzQ0OTc3OGZiODQyLi4zNDA2OWU1MWZhYWU2YTIwNzIy
Mjk4MjhkMTZkOWEzMjlkNWE4YmY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8v
YWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1QQktERjIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
cnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1QQktERjIuaApAQCAtMzYsNyArMzYsNyBA
QCBjbGFzcyBDcnlwdG9LZXlSYXc7CiAKIGNsYXNzIENyeXB0b0FsZ29yaXRobVBCS0RGMiBmaW5h
bCA6IHB1YmxpYyBDcnlwdG9BbGdvcml0aG0gewogcHVibGljOgotICAgIHN0YXRpYyBjb25zdGV4
cHIgY29uc3QgY2hhciogc19uYW1lID0gIlBCS0RGMiI7CisgICAgc3RhdGljIGNvbnN0ZXhwciBB
U0NJSUxpdGVyYWwgc19uYW1lID0gIlBCS0RGMiJfczsKICAgICBzdGF0aWMgY29uc3RleHByIENy
eXB0b0FsZ29yaXRobUlkZW50aWZpZXIgc19pZGVudGlmaWVyID0gQ3J5cHRvQWxnb3JpdGhtSWRl
bnRpZmllcjo6UEJLREYyOwogICAgIHN0YXRpYyBSZWY8Q3J5cHRvQWxnb3JpdGhtPiBjcmVhdGUo
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRv
QWxnb3JpdGhtUlNBRVNfUEtDUzFfdjFfNS5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29y
aXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBRVNfUEtDUzFfdjFfNS5oCmluZGV4IDhiNTFiNDFlN2Mw
YTU3ZjY2OGY1ODQ3OWZhMjllNjM4ZTllMWFkMGIuLmQyMWU2YzFlZTI4NmY3ZGM2Mzg3NWE5ODRh
YjIzZTcwMDRlZTE4ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0
aG1zL0NyeXB0b0FsZ29yaXRobVJTQUVTX1BLQ1MxX3YxXzUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FFU19QS0NTMV92MV81LmgKQEAg
LTM1LDcgKzM1LDcgQEAgY2xhc3MgQ3J5cHRvS2V5UlNBOwogCiBjbGFzcyBDcnlwdG9BbGdvcml0
aG1SU0FFU19QS0NTMV92MV81IGZpbmFsIDogcHVibGljIENyeXB0b0FsZ29yaXRobSB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBjb25zdCBjaGFyKiBzX25hbWUgPSAiUlNBRVMtUEtD
UzEtdjFfNSI7CisgICAgc3RhdGljIGNvbnN0ZXhwciBBU0NJSUxpdGVyYWwgc19uYW1lID0gIlJT
QUVTLVBLQ1MxLXYxXzUiX3M7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBDcnlwdG9BbGdvcml0aG1J
ZGVudGlmaWVyIHNfaWRlbnRpZmllciA9IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlJTQUVT
X1BLQ1MxX3YxXzU7CiAgICAgc3RhdGljIFJlZjxDcnlwdG9BbGdvcml0aG0+IGNyZWF0ZSgpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdv
cml0aG1SU0FTU0FfUEtDUzFfdjFfNS5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRo
bXMvQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzUuaAppbmRleCBkOWI3YjQ1MDcyM2Fm
Y2RhOTk5OTVjYjg4M2NkYTM5Y2FmMzI4ZGNlLi5kMTg1ZDNhNGJkYTJkYTM3Y2RiMGRmMjhmNjhh
MjczZGRlOTliODYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGht
cy9DcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81LmgKQEAg
LTM1LDcgKzM1LDcgQEAgY2xhc3MgQ3J5cHRvS2V5UlNBOwogCiBjbGFzcyBDcnlwdG9BbGdvcml0
aG1SU0FTU0FfUEtDUzFfdjFfNSBmaW5hbCA6IHB1YmxpYyBDcnlwdG9BbGdvcml0aG0gewogcHVi
bGljOgotICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3QgY2hhciogc19uYW1lID0gIlJTQVNTQS1Q
S0NTMS12MV81IjsKKyAgICBzdGF0aWMgY29uc3RleHByIEFTQ0lJTGl0ZXJhbCBzX25hbWUgPSAi
UlNBU1NBLVBLQ1MxLXYxXzUiX3M7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBDcnlwdG9BbGdvcml0
aG1JZGVudGlmaWVyIHNfaWRlbnRpZmllciA9IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlJT
QVNTQV9QS0NTMV92MV81OwogICAgIHN0YXRpYyBSZWY8Q3J5cHRvQWxnb3JpdGhtPiBjcmVhdGUo
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRv
QWxnb3JpdGhtUlNBX09BRVAuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0Ny
eXB0b0FsZ29yaXRobVJTQV9PQUVQLmgKaW5kZXggMDk2YWYzY2EyMzA3OTU5ZjI0NTRlZTNjZmQy
YjNmMGUyMmI0NzNmMi4uZGJhN2VhOWQ1ZDcyMmU0MjdhM2IwYWE0ZjlkY2QzMmZmNDQ1OWYyYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3Jp
dGhtUlNBX09BRVAuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9Dcnlw
dG9BbGdvcml0aG1SU0FfT0FFUC5oCkBAIC0zNiw3ICszNiw3IEBAIGNsYXNzIENyeXB0b0tleVJT
QTsKIAogY2xhc3MgQ3J5cHRvQWxnb3JpdGhtUlNBX09BRVAgZmluYWwgOiBwdWJsaWMgQ3J5cHRv
QWxnb3JpdGhtIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3RleHByIGNvbnN0IGNoYXIqIHNf
bmFtZSA9ICJSU0EtT0FFUCI7CisgICAgc3RhdGljIGNvbnN0ZXhwciBBU0NJSUxpdGVyYWwgc19u
YW1lID0gIlJTQS1PQUVQIl9zOwogICAgIHN0YXRpYyBjb25zdGV4cHIgQ3J5cHRvQWxnb3JpdGht
SWRlbnRpZmllciBzX2lkZW50aWZpZXIgPSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpSU0Ff
T0FFUDsKICAgICBzdGF0aWMgUmVmPENyeXB0b0FsZ29yaXRobT4gY3JlYXRlKCk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJT
QV9QU1MuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRo
bVJTQV9QU1MuaAppbmRleCA1ODc5YTU2N2NjY2M3YjBhMWM5YWQ0ZDkxNzg5ZDlkMDU0YjAwOTc0
Li5iMWY3Zjc3MmNlNDIyNzhkNGQ5NGQ1YzBhNzZjYWU1ZWRmMGU0MGVhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FfUFNTLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNB
X1BTUy5oCkBAIC0zNiw3ICszNiw3IEBAIGNsYXNzIENyeXB0b0tleVJTQTsKIAogY2xhc3MgQ3J5
cHRvQWxnb3JpdGhtUlNBX1BTUyBmaW5hbCA6IHB1YmxpYyBDcnlwdG9BbGdvcml0aG0gewogcHVi
bGljOgotICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3QgY2hhciogc19uYW1lID0gIlJTQS1QU1Mi
OworICAgIHN0YXRpYyBjb25zdGV4cHIgQVNDSUlMaXRlcmFsIHNfbmFtZSA9ICJSU0EtUFNTIl9z
OwogICAgIHN0YXRpYyBjb25zdGV4cHIgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBzX2lkZW50
aWZpZXIgPSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpSU0FfUFNTOwogICAgIHN0YXRpYyBS
ZWY8Q3J5cHRvQWxnb3JpdGhtPiBjcmVhdGUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMS5oIGIvU291cmNlL1dlYkNv
cmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMS5oCmluZGV4IGQ4MDdhYmI5
NzRjYmFhYzNiMGE3YmM3YWQ4NjU4ZmNhZmI1YWQ2YWUuLjFmZDc3NWE4MTM2NDNjMWIyZmFjYzdk
M2M5NDA5ZDMyZmUxY2U4NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdv
cml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8v
YWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEExLmgKQEAgLTMzLDcgKzMzLDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjbGFzcyBDcnlwdG9BbGdvcml0aG1TSEExIGZpbmFsIDogcHVibGlj
IENyeXB0b0FsZ29yaXRobSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBjb25zdCBj
aGFyKiBzX25hbWUgPSAiU0hBLTEiOworICAgIHN0YXRpYyBjb25zdGV4cHIgQVNDSUlMaXRlcmFs
IHNfbmFtZSA9ICJTSEEtMSJfczsKICAgICBzdGF0aWMgY29uc3RleHByIENyeXB0b0FsZ29yaXRo
bUlkZW50aWZpZXIgc19pZGVudGlmaWVyID0gQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6U0hB
XzE7CiAgICAgc3RhdGljIFJlZjxDcnlwdG9BbGdvcml0aG0+IGNyZWF0ZSgpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEy
MjQuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNI
QTIyNC5oCmluZGV4IDc4MDRiYWNmZjI1NzJkOGRjNjUxMTAwNDA0ZjkwNWJmOTNiZmM0YzYuLjQ5
M2UxNjJhYjM2NTJlNjZjMzUwNGE4ZDc5NWMyODY5ZDRkZGNlYzkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTIyNC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTIyNC5o
CkBAIC0zMyw3ICszMyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ3J5cHRvQWxn
b3JpdGhtU0hBMjI0IGZpbmFsIDogcHVibGljIENyeXB0b0FsZ29yaXRobSB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIGNvbnN0ZXhwciBjb25zdCBjaGFyKiBzX25hbWUgPSAiU0hBLTIyNCI7CisgICAg
c3RhdGljIGNvbnN0ZXhwciBBU0NJSUxpdGVyYWwgc19uYW1lID0gIlNIQS0yMjQiX3M7CiAgICAg
c3RhdGljIGNvbnN0ZXhwciBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIHNfaWRlbnRpZmllciA9
IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlNIQV8yMjQ7CiAgICAgc3RhdGljIFJlZjxDcnlw
dG9BbGdvcml0aG0+IGNyZWF0ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlw
dG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEyNTYuaCBiL1NvdXJjZS9XZWJDb3JlL2Ny
eXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTI1Ni5oCmluZGV4IGNlMjQwNGM3NGQ1
NWM4ZjI3NDQwNWU1NmY0ZDU4YTdmZjYxNjE1ZjkuLmY1YTg1NDNjODJjNTU0OGVlNDJiM2I5MzI3
MTFlNjg1NWVmOGYwZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0
aG1zL0NyeXB0b0FsZ29yaXRobVNIQTI1Ni5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9h
bGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTI1Ni5oCkBAIC0zMyw3ICszMyw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ3J5cHRvQWxnb3JpdGhtU0hBMjU2IGZpbmFsIDogcHVi
bGljIENyeXB0b0FsZ29yaXRobSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBjb25z
dCBjaGFyKiBzX25hbWUgPSAiU0hBLTI1NiI7CisgICAgc3RhdGljIGNvbnN0ZXhwciBBU0NJSUxp
dGVyYWwgc19uYW1lID0gIlNIQS0yNTYiX3M7CiAgICAgc3RhdGljIGNvbnN0IENyeXB0b0FsZ29y
aXRobUlkZW50aWZpZXIgc19pZGVudGlmaWVyID0gQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6
U0hBXzI1NjsKICAgICBzdGF0aWMgUmVmPENyeXB0b0FsZ29yaXRobT4gY3JlYXRlKCk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRo
bVNIQTM4NC5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3Jp
dGhtU0hBMzg0LmgKaW5kZXggNmNjNTc0OTEzMjZhMDA4ZTQyNmYyNjkyMTM4OWFkNmY0YzRiZjg0
OS4uZTViZjIyMzJhY2YyZGE2YTEwMDZlYTUyMDE5MzQwOGIxODA1ZjJjMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMzg0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hB
Mzg0LmgKQEAgLTMzLDcgKzMzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDcnlw
dG9BbGdvcml0aG1TSEEzODQgZmluYWwgOiBwdWJsaWMgQ3J5cHRvQWxnb3JpdGhtIHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgY29uc3RleHByIGNvbnN0IGNoYXIqIHNfbmFtZSA9ICJTSEEtMzg0IjsK
KyAgICBzdGF0aWMgY29uc3RleHByIEFTQ0lJTGl0ZXJhbCBzX25hbWUgPSAiU0hBLTM4NCJfczsK
ICAgICBzdGF0aWMgY29uc3RleHByIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgc19pZGVudGlm
aWVyID0gQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6U0hBXzM4NDsKICAgICBzdGF0aWMgUmVm
PENyeXB0b0FsZ29yaXRobT4gY3JlYXRlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTUxMi5oIGIvU291cmNlL1dlYkNv
cmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBNTEyLmgKaW5kZXggMGQ0YTBi
OTZiNjQyYTRjZGZhN2JmOTkwYTk3ZWY3M2I4Yjc2MTNmOC4uMDVmOThmYzRhODY2NmRhZmRhNjA1
OWExNGZlNWUxNzM3YTRhNzQyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2Fs
Z29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBNTEyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5
cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBNTEyLmgKQEAgLTMzLDcgKzMzLDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDcnlwdG9BbGdvcml0aG1TSEE1MTIgZmluYWwg
OiBwdWJsaWMgQ3J5cHRvQWxnb3JpdGhtIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3RleHBy
IGNvbnN0IGNoYXIqIHNfbmFtZSA9ICJTSEEtNTEyIjsKKyAgICBzdGF0aWMgY29uc3RleHByIEFT
Q0lJTGl0ZXJhbCBzX25hbWUgPSAiU0hBLTUxMiJfczsKICAgICBzdGF0aWMgY29uc3RleHByIENy
eXB0b0FsZ29yaXRobUlkZW50aWZpZXIgc19pZGVudGlmaWVyID0gQ3J5cHRvQWxnb3JpdGhtSWRl
bnRpZmllcjo6U0hBXzUxMjsKICAgICBzdGF0aWMgUmVmPENyeXB0b0FsZ29yaXRobT4gY3JlYXRl
KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleUFF
Uy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlBRVMuY3BwCmluZGV4
IDQyZmUzYTRiZTUyMTgxOTk3MzRkZWRkMDNhYjdjOTcxZjMwMTFhZDQuLmM3NmM4NjNkNWFmYzVh
NDE1YjA2NTU4ODUwZDMwNzUyMGMwYzY3Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Ny
eXB0by9rZXlzL0NyeXB0b0tleUFFUy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tl
eXMvQ3J5cHRvS2V5QUVTLmNwcApAQCAtMTA2LDcgKzEwNiw3IEBAIFJlZlB0cjxDcnlwdG9LZXlB
RVM+IENyeXB0b0tleUFFUzo6aW1wb3J0SndrKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgYWxn
b3JpdGhtCiBKc29uV2ViS2V5IENyeXB0b0tleUFFUzo6ZXhwb3J0SndrKCkgY29uc3QKIHsKICAg
ICBKc29uV2ViS2V5IHJlc3VsdDsKLSAgICByZXN1bHQua3R5ID0gIm9jdCI7CisgICAgcmVzdWx0
Lmt0eSA9ICJvY3QiX3M7CiAgICAgcmVzdWx0LmsgPSBiYXNlNjRVUkxFbmNvZGVUb1N0cmluZyht
X2tleSk7CiAgICAgcmVzdWx0LmtleV9vcHMgPSB1c2FnZXMoKTsKICAgICByZXN1bHQuZXh0ID0g
ZXh0cmFjdGFibGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0Ny
eXB0b0tleUVDLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleUVDLmNw
cAppbmRleCBkMzZkMzQwZjcwYThmNGExN2ZmNWY2MTljZWIxZDlkODQ1Y2EyYTMzLi5mY2U4MmJl
ZTkxY2FiNzQyNjIwNDAwZGNhNzczMDVjMTdmNjg1MjAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlFQy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5
cHRvL2tleXMvQ3J5cHRvS2V5RUMuY3BwCkBAIC0xNDgsNyArMTQ4LDcgQEAgRXhjZXB0aW9uT3I8
VmVjdG9yPHVpbnQ4X3Q+PiBDcnlwdG9LZXlFQzo6ZXhwb3J0UmF3KCkgY29uc3QKIEV4Y2VwdGlv
bk9yPEpzb25XZWJLZXk+IENyeXB0b0tleUVDOjpleHBvcnRKd2soKSBjb25zdAogewogICAgIEpz
b25XZWJLZXkgcmVzdWx0OwotICAgIHJlc3VsdC5rdHkgPSAiRUMiOworICAgIHJlc3VsdC5rdHkg
PSAiRUMiX3M7CiAgICAgc3dpdGNoIChtX2N1cnZlKSB7CiAgICAgY2FzZSBOYW1lZEN1cnZlOjpQ
MjU2OgogICAgICAgICByZXN1bHQuY3J2ID0gUDI1NjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleUhNQUMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3J5cHRv
L2tleXMvQ3J5cHRvS2V5SE1BQy5jcHAKaW5kZXggNDM0ZjI0MDQ1NWRjOGNlMzQxZTAwNTQwM2Jm
MDVjYjkwMDM3ZDE0OS4uMjU0M2VkNTQ2NTdlN2FlM2YyZjc5OTZjNzg0NDNkZmIwOWE3MjdhMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5SE1BQy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5SE1BQy5jcHAKQEAgLTEy
MSw3ICsxMjEsNyBAQCBSZWZQdHI8Q3J5cHRvS2V5SE1BQz4gQ3J5cHRvS2V5SE1BQzo6aW1wb3J0
SndrKHNpemVfdCBsZW5ndGhCaXRzLCBDcnlwdG9BbGdvcml0aAogSnNvbldlYktleSBDcnlwdG9L
ZXlITUFDOjpleHBvcnRKd2soKSBjb25zdAogewogICAgIEpzb25XZWJLZXkgcmVzdWx0OwotICAg
IHJlc3VsdC5rdHkgPSAib2N0IjsKKyAgICByZXN1bHQua3R5ID0gIm9jdCJfczsKICAgICByZXN1
bHQuayA9IGJhc2U2NFVSTEVuY29kZVRvU3RyaW5nKG1fa2V5KTsKICAgICByZXN1bHQua2V5X29w
cyA9IHVzYWdlcygpOwogICAgIHJlc3VsdC5leHQgPSBleHRyYWN0YWJsZSgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5UlNBLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleVJTQS5jcHAKaW5kZXggNmJiZjE0ZjI0NjBiM2Qx
ZjUwNDg4YWYzOTI5NzA5Zjc0MjE2ZWUyNC4uMDU4MWQ2NzA3MmNiOTM2NmQzNzc1NDIyNjhhNDhm
ZmRhMDYzOWE3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRv
S2V5UlNBLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlSU0Eu
Y3BwCkBAIC0xMzMsNyArMTMzLDcgQEAgUmVmUHRyPENyeXB0b0tleVJTQT4gQ3J5cHRvS2V5UlNB
OjppbXBvcnRKd2soQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBhbGdvcml0aG0KIEpzb25XZWJL
ZXkgQ3J5cHRvS2V5UlNBOjpleHBvcnRKd2soKSBjb25zdAogewogICAgIEpzb25XZWJLZXkgcmVz
dWx0OwotICAgIHJlc3VsdC5rdHkgPSAiUlNBIjsKKyAgICByZXN1bHQua3R5ID0gIlJTQSJfczsK
ICAgICByZXN1bHQua2V5X29wcyA9IHVzYWdlcygpOwogICAgIHJlc3VsdC5leHQgPSBleHRyYWN0
YWJsZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTcmNW
YWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTcmNWYWx1ZS5jcHAKaW5k
ZXggMzA1YzMyZWE4MGNjZTU5MGI0YjYxZDA1ZDlhNTBjMmY2MmU5ZDZlNi4uZWI2ODY2MzU3NTVj
M2UxMTlkMGI4YWU2ODVjNWI2ZWQzMjgwNTg5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0ZvbnRGYWNlU3JjVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NG
b250RmFjZVNyY1ZhbHVlLmNwcApAQCAtNTYsNyArNTYsNyBAQCBib29sIENTU0ZvbnRGYWNlU3Jj
VmFsdWU6OmlzU3VwcG9ydGVkRm9ybWF0KCkgY29uc3QKICAgICAvLyB3ZSB3aWxsIGFsc28gY2hl
Y2sgdG8gc2VlIGlmIHRoZSBVUkwgZW5kcyB3aXRoIC5lb3QuIElmIHNvLCB3ZSdsbCBhc3N1bWUg
dGhhdCB3ZSBzaG91bGRuJ3QgbG9hZCBpdC4KICAgICBpZiAobV9mb3JtYXQuaXNFbXB0eSgpKSB7
CiAgICAgICAgIC8vIENoZWNrIGZvciAuZW90LgotICAgICAgICBpZiAoIXByb3RvY29sSXMobV9y
ZXNvdXJjZSwgImRhdGEiKSAmJiBtX3Jlc291cmNlLmVuZHNXaXRoSWdub3JpbmdBU0NJSUNhc2Uo
Ii5lb3QiKSkKKyAgICAgICAgaWYgKCFwcm90b2NvbElzKG1fcmVzb3VyY2UsICJkYXRhIikgJiYg
bV9yZXNvdXJjZS5lbmRzV2l0aElnbm9yaW5nQVNDSUlDYXNlKCIuZW90Il9zKSkKICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyaWRUZW1wbGF0ZUFyZWFzVmFsdWUuY3BwIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU0dyaWRUZW1wbGF0ZUFyZWFzVmFsdWUuY3BwCmluZGV4IGUwYjc4
NjU5YWRiZDAxNDgzOWU1N2MwNjIxZGMxNjE5ZWY4MTMxMDkuLmRmZDcyNTEzYmNkZjU0NjEwOWU2
OTAyYjViZTliOTc5MmU2YTI3NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NH
cmlkVGVtcGxhdGVBcmVhc1ZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3Jp
ZFRlbXBsYXRlQXJlYXNWYWx1ZS5jcHAKQEAgLTYzLDcgKzYzLDcgQEAgc3RhdGljIFN0cmluZyBz
dHJpbmdGb3JQb3NpdGlvbihjb25zdCBOYW1lZEdyaWRBcmVhTWFwJiBncmlkQXJlYU1hcCwgc2l6
ZV90IHJvdywKICAgICAgICAgICAgIHJldHVybiBpdC5rZXk7CiAgICAgfQogCi0gICAgcmV0dXJu
ICIuIjsKKyAgICByZXR1cm4gIi4iX3M7CiB9CiAKIFN0cmluZyBDU1NHcmlkVGVtcGxhdGVBcmVh
c1ZhbHVlOjpjdXN0b21DU1NUZXh0KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0
aXZlVmFsdWUuY3BwCmluZGV4IDc4OWM2MzQ5N2YyMjEwNjQ5YjQ0YWE4ODJhZTAxYjY4ZWJiOGRh
MjkuLjlmZTY0YjViZTk0NTZhNDQ4ZWNmNTA0OTdhNDEzNTc5NGY4YmQ5YjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcApAQCAtMTIzMSw2NCArMTIzMSw2NCBAQCBO
RVZFUl9JTkxJTkUgU3RyaW5nIENTU1ByaW1pdGl2ZVZhbHVlOjpmb3JtYXRJbnRlZ2VyVmFsdWUo
U3RyaW5nVmlldyBzdWZmaXgpIGNvbgogU3RyaW5nIENTU1ByaW1pdGl2ZVZhbHVlOjp1bml0VHlw
ZVN0cmluZyhDU1NVbml0VHlwZSB1bml0VHlwZSkKIHsKICAgICBzd2l0Y2ggKHVuaXRUeXBlKSB7
Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19QRVJDRU5UQUdFOiByZXR1cm4gIiUiOwot
ICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRU1TOiByZXR1cm4gImVtIjsKLSAgICAgICAg
Y2FzZSBDU1NVbml0VHlwZTo6Q1NTX0VYUzogcmV0dXJuICJleCI7Ci0gICAgICAgIGNhc2UgQ1NT
VW5pdFR5cGU6OkNTU19QWDogcmV0dXJuICJweCI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6
OkNTU19DTTogcmV0dXJuICJjbSI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19NTTog
cmV0dXJuICJtbSI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19JTjogcmV0dXJuICJp
biI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19QVDogcmV0dXJuICJwdCI7Ci0gICAg
ICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19QQzogcmV0dXJuICJwYyI7Ci0gICAgICAgIGNhc2Ug
Q1NTVW5pdFR5cGU6OkNTU19ERUc6IHJldHVybiAiZGVnIjsKLSAgICAgICAgY2FzZSBDU1NVbml0
VHlwZTo6Q1NTX1JBRDogcmV0dXJuICJyYWQiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpD
U1NfR1JBRDogcmV0dXJuICJncmFkIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX01T
OiByZXR1cm4gIm1zIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1M6IHJldHVybiAi
cyI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19IWjogcmV0dXJuICJoeiI7Ci0gICAg
ICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19LSFo6IHJldHVybiAia2h6IjsKLSAgICAgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX1ZXOiByZXR1cm4gInZ3IjsKLSAgICAgICAgY2FzZSBDU1NVbml0
VHlwZTo6Q1NTX1ZIOiByZXR1cm4gInZoIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NT
X1ZNSU46IHJldHVybiAidm1pbiI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WTUFY
OiByZXR1cm4gInZtYXgiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVkI6IHJldHVy
biAidmIiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVkk6IHJldHVybiAidmkiOwot
ICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZXOiByZXR1cm4gInN2dyI7Ci0gICAgICAg
IGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVkg6IHJldHVybiAic3ZoIjsKLSAgICAgICAgY2FzZSBD
U1NVbml0VHlwZTo6Q1NTX1NWTUlOOiByZXR1cm4gInN2bWluIjsKLSAgICAgICAgY2FzZSBDU1NV
bml0VHlwZTo6Q1NTX1NWTUFYOiByZXR1cm4gInN2bWF4IjsKLSAgICAgICAgY2FzZSBDU1NVbml0
VHlwZTo6Q1NTX1NWQjogcmV0dXJuICJzdmIiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpD
U1NfU1ZJOiByZXR1cm4gInN2aSI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVlc6
IHJldHVybiAibHZ3IjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWSDogcmV0dXJu
ICJsdmgiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZNSU46IHJldHVybiAibHZt
aW4iOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZNQVg6IHJldHVybiAibHZtYXgi
OwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZCOiByZXR1cm4gImx2YiI7Ci0gICAg
ICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVkk6IHJldHVybiAibHZpIjsKLSAgICAgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX0RWVzogcmV0dXJuICJkdnciOwotICAgICAgICBjYXNlIENTU1Vu
aXRUeXBlOjpDU1NfRFZIOiByZXR1cm4gImR2aCI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6
OkNTU19EVk1JTjogcmV0dXJuICJkdm1pbiI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNT
U19EVk1BWDogcmV0dXJuICJkdm1heCI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19E
VkI6IHJldHVybiAiZHZiIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWSTogcmV0
dXJuICJkdmkiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFBQWDogcmV0dXJuICJk
cHB4IjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1g6IHJldHVybiAieCI7Ci0gICAg
ICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EUEk6IHJldHVybiAiZHBpIjsKLSAgICAgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX0RQQ006IHJldHVybiAiZHBjbSI7Ci0gICAgICAgIGNhc2UgQ1NT
VW5pdFR5cGU6OkNTU19GUjogcmV0dXJuICJmciI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6
OkNTU19ROiByZXR1cm4gInEiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTEhTOiBy
ZXR1cm4gImxoIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1JMSFM6IHJldHVybiAi
cmxoIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1RVUk46IHJldHVybiAidHVybiI7
Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19SRU1TOiByZXR1cm4gInJlbSI7Ci0gICAg
ICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19DSFM6IHJldHVybiAiY2giOwotICAgICAgICBjYXNl
IENTU1VuaXRUeXBlOjpDU1NfSUM6IHJldHVybiAiaWMiOwotICAgICAgICBjYXNlIENTU1VuaXRU
eXBlOjpDU1NfQ1FXOiByZXR1cm4gImNxdyI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNT
U19DUUg6IHJldHVybiAiY3FoIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0NRSTog
cmV0dXJuICJjcWkiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfQ1FCOiByZXR1cm4g
ImNxYiI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19DUU1BWDogcmV0dXJuICJjcW1h
eCI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19DUU1JTjogcmV0dXJuICJjcW1pbiI7
CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19QRVJDRU5UQUdFOiByZXR1cm4gIiUiX3M7
CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19FTVM6IHJldHVybiAiZW0iX3M7CisgICAg
ICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19FWFM6IHJldHVybiAiZXgiX3M7CisgICAgICAgIGNh
c2UgQ1NTVW5pdFR5cGU6OkNTU19QWDogcmV0dXJuICJweCJfczsKKyAgICAgICAgY2FzZSBDU1NV
bml0VHlwZTo6Q1NTX0NNOiByZXR1cm4gImNtIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfTU06IHJldHVybiAibW0iX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19J
TjogcmV0dXJuICJpbiJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1BUOiByZXR1
cm4gInB0Il9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfUEM6IHJldHVybiAicGMi
X3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19ERUc6IHJldHVybiAiZGVnIl9zOwor
ICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfUkFEOiByZXR1cm4gInJhZCJfczsKKyAgICAg
ICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0dSQUQ6IHJldHVybiAiZ3JhZCJfczsKKyAgICAgICAg
Y2FzZSBDU1NVbml0VHlwZTo6Q1NTX01TOiByZXR1cm4gIm1zIl9zOworICAgICAgICBjYXNlIENT
U1VuaXRUeXBlOjpDU1NfUzogcmV0dXJuICJzIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfSFo6IHJldHVybiAiaHoiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19L
SFo6IHJldHVybiAia2h6Il9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVlc6IHJl
dHVybiAidnciX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WSDogcmV0dXJuICJ2
aCJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZNSU46IHJldHVybiAidm1pbiJf
czsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZNQVg6IHJldHVybiAidm1heCJfczsK
KyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZCOiByZXR1cm4gInZiIl9zOworICAgICAg
ICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVkk6IHJldHVybiAidmkiX3M7CisgICAgICAgIGNhc2Ug
Q1NTVW5pdFR5cGU6OkNTU19TVlc6IHJldHVybiAic3Z3Il9zOworICAgICAgICBjYXNlIENTU1Vu
aXRUeXBlOjpDU1NfU1ZIOiByZXR1cm4gInN2aCJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlw
ZTo6Q1NTX1NWTUlOOiByZXR1cm4gInN2bWluIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfU1ZNQVg6IHJldHVybiAic3ZtYXgiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6
OkNTU19TVkI6IHJldHVybiAic3ZiIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1Nf
U1ZJOiByZXR1cm4gInN2aSJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWVzog
cmV0dXJuICJsdnciX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVkg6IHJldHVy
biAibHZoIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZNSU46IHJldHVybiAi
bHZtaW4iX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVk1BWDogcmV0dXJuICJs
dm1heCJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWQjogcmV0dXJuICJsdmIi
X3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVkk6IHJldHVybiAibHZpIl9zOwor
ICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZXOiByZXR1cm4gImR2dyJfczsKKyAgICAg
ICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWSDogcmV0dXJuICJkdmgiX3M7CisgICAgICAgIGNh
c2UgQ1NTVW5pdFR5cGU6OkNTU19EVk1JTjogcmV0dXJuICJkdm1pbiJfczsKKyAgICAgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX0RWTUFYOiByZXR1cm4gImR2bWF4Il9zOworICAgICAgICBjYXNl
IENTU1VuaXRUeXBlOjpDU1NfRFZCOiByZXR1cm4gImR2YiJfczsKKyAgICAgICAgY2FzZSBDU1NV
bml0VHlwZTo6Q1NTX0RWSTogcmV0dXJuICJkdmkiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5
cGU6OkNTU19EUFBYOiByZXR1cm4gImRwcHgiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6
OkNTU19YOiByZXR1cm4gIngiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EUEk6
IHJldHVybiAiZHBpIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFBDTTogcmV0
dXJuICJkcGNtIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRlI6IHJldHVybiAi
ZnIiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19ROiByZXR1cm4gInEiX3M7Cisg
ICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MSFM6IHJldHVybiAibGgiX3M7CisgICAgICAg
IGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19STEhTOiByZXR1cm4gInJsaCJfczsKKyAgICAgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX1RVUk46IHJldHVybiAidHVybiJfczsKKyAgICAgICAgY2FzZSBD
U1NVbml0VHlwZTo6Q1NTX1JFTVM6IHJldHVybiAicmVtIl9zOworICAgICAgICBjYXNlIENTU1Vu
aXRUeXBlOjpDU1NfQ0hTOiByZXR1cm4gImNoIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfSUM6IHJldHVybiAiaWMiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19D
UVc6IHJldHVybiAiY3F3Il9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfQ1FIOiBy
ZXR1cm4gImNxaCJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0NRSTogcmV0dXJu
ICJjcWkiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19DUUI6IHJldHVybiAiY3Fi
Il9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfQ1FNQVg6IHJldHVybiAiY3FtYXgi
X3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19DUU1JTjogcmV0dXJuICJjcW1pbiJf
czsKIAogICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVU5LTk9XTjoKICAgICAgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX05VTUJFUjoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NTdWJncmlkVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N1YmdyaWRWYWx1
ZS5jcHAKaW5kZXggNGY5ZDRhNjA0OGM2MTRjOGQwZmFmNTQ4YmZjY2JhYWU0OGEwYzg2NS4uNmE3
OTg1OWRhMjdkYWVhYWFhN2JjZjVmOTkxMmQzZTc3YzViZDJiYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1N1YmdyaWRWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1N1YmdyaWRWYWx1ZS5jcHAKQEAgLTM2LDcgKzM2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogU3RyaW5nIENTU1N1YmdyaWRWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0CiB7CiAgICAg
aWYgKCFsZW5ndGgoKSkKLSAgICAgICAgcmV0dXJuICJzdWJncmlkIjsKKyAgICAgICAgcmV0dXJu
ICJzdWJncmlkIl9zOwogICAgIHJldHVybiAic3ViZ3JpZCAiICsgQ1NTVmFsdWVMaXN0OjpjdXN0
b21DU1NUZXh0KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01DU1NO
YW1lc3BhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0RPTUNTU05hbWVzcGFjZS5jcHAKaW5k
ZXggZjdmY2Y1ZTI3ZGRjNjBiMmZkNDVkNWMzNTFkNDQ3ZjZmMWYxMGFjYi4uODAwNzg3MjEzZDMz
YjA3MjM5ZDExODJjNzQzNTllNDljNjVjMTg2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL0RPTUNTU05hbWVzcGFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0RPTUNTU05h
bWVzcGFjZS5jcHAKQEAgLTQzLDcgKzQzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdGF0
aWMgU3RyaW5nIHZhbHVlV2l0aG91dEltcG9ydGFudChjb25zdCBTdHJpbmcmIHZhbHVlKQogewot
ICAgIGlmICghdmFsdWUuZW5kc1dpdGhJZ25vcmluZ0FTQ0lJQ2FzZSgiaW1wb3J0YW50IikpCisg
ICAgaWYgKCF2YWx1ZS5lbmRzV2l0aElnbm9yaW5nQVNDSUlDYXNlKCJpbXBvcnRhbnQiX3MpKQog
ICAgICAgICByZXR1cm4gdmFsdWU7CiAKICAgICBTdHJpbmcgbmV3VmFsdWUgPSB2YWx1ZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01DU1NSZWdpc3RlckN1c3RvbVByb3BlcnR5
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01DU1NSZWdpc3RlckN1c3RvbVByb3BlcnR5LmNw
cAppbmRleCBjMmM4MjUwYWIyMmQ4M2VkZDgyMjAwMTBiODJmNjI1MWRlN2I4OWY3Li45MmEyY2Jj
NDBmZDMxNjFlMGY5ZmM3NWIxODhhMmQ5OGQzZTcxOTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvRE9NQ1NTUmVnaXN0ZXJDdXN0b21Qcm9wZXJ0eS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL0RPTUNTU1JlZ2lzdGVyQ3VzdG9tUHJvcGVydHkuY3BwCkBAIC00NCw3ICs0NCw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIEV4Y2VwdGlvbk9yPHZvaWQ+IERPTUNTU1JlZ2lzdGVy
Q3VzdG9tUHJvcGVydHk6OnJlZ2lzdGVyUHJvcGVydHkoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25z
dCBET01DU1NDdXN0b21Qcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCiB7CiAgICAgaWYg
KCFpc0N1c3RvbVByb3BlcnR5TmFtZShkZXNjcmlwdG9yLm5hbWUpKQotICAgICAgICByZXR1cm4g
RXhjZXB0aW9uIHsgU3ludGF4RXJyb3IsICJUaGUgbmFtZSBvZiB0aGlzIHByb3BlcnR5IGlzIG5v
dCBhIGN1c3RvbSBwcm9wZXJ0eSBuYW1lLiIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7
IFN5bnRheEVycm9yLCAiVGhlIG5hbWUgb2YgdGhpcyBwcm9wZXJ0eSBpcyBub3QgYSBjdXN0b20g
cHJvcGVydHkgbmFtZS4iX3MgfTsKIAogICAgIFJlZlB0cjxDU1NDdXN0b21Qcm9wZXJ0eVZhbHVl
PiBpbml0aWFsVmFsdWU7CiAgICAgaWYgKCFkZXNjcmlwdG9yLmluaXRpYWxWYWx1ZS5pc0VtcHR5
KCkpIHsKQEAgLTU5LDcgKzU5LDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gRE9NQ1NTUmVnaXN0ZXJD
dXN0b21Qcm9wZXJ0eTo6cmVnaXN0ZXJQcm9wZXJ0eShEb2N1bWVudCYgZG9jdW0KICAgICAgICAg
Q1NTUHJvcGVydHlQYXJzZXI6OmNvbGxlY3RQYXJzZWRDdXN0b21Qcm9wZXJ0eVZhbHVlRGVwZW5k
ZW5jaWVzKGRlc2NyaXB0b3Iuc3ludGF4LCBmYWxzZSwgZGVwZW5kZW5jaWVzLCB0b2tlbml6ZXIu
dG9rZW5SYW5nZSgpLCBzdHJpY3RDU1NQYXJzZXJDb250ZXh0KCkpOwogCiAgICAgICAgIGlmICgh
ZGVwZW5kZW5jaWVzLmlzRW1wdHkoKSkKLSAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBT
eW50YXhFcnJvciwgIlRoZSBnaXZlbiBpbml0aWFsIHZhbHVlIG11c3QgYmUgY29tcHV0YXRpb25h
bGx5IGluZGVwZW5kZW50LiIgfTsKKyAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBTeW50
YXhFcnJvciwgIlRoZSBnaXZlbiBpbml0aWFsIHZhbHVlIG11c3QgYmUgY29tcHV0YXRpb25hbGx5
IGluZGVwZW5kZW50LiJfcyB9OwogCiAKICAgICAgICAgU3R5bGU6Ok1hdGNoUmVzdWx0IG1hdGNo
UmVzdWx0OwpAQCAtNzAsMTggKzcwLDE4IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IERPTUNTU1JlZ2lz
dGVyQ3VzdG9tUHJvcGVydHk6OnJlZ2lzdGVyUHJvcGVydHkoRG9jdW1lbnQmIGRvY3VtCiAgICAg
ICAgIGluaXRpYWxWYWx1ZSA9IENTU1Byb3BlcnR5UGFyc2VyOjpwYXJzZVR5cGVkQ3VzdG9tUHJv
cGVydHlWYWx1ZShkZXNjcmlwdG9yLm5hbWUsIGRlc2NyaXB0b3Iuc3ludGF4LCB0b2tlbml6ZXIu
dG9rZW5SYW5nZSgpLCBkdW1teUJ1aWxkZXIuc3RhdGUoKSwgc3RyaWN0Q1NTUGFyc2VyQ29udGV4
dCgpKTsKIAogICAgICAgICBpZiAoIWluaXRpYWxWYWx1ZSB8fCAhaW5pdGlhbFZhbHVlLT5pc1Jl
c29sdmVkKCkpCi0gICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgU3ludGF4RXJyb3IsICJU
aGUgZ2l2ZW4gaW5pdGlhbCB2YWx1ZSBkb2VzIG5vdCBwYXJzZSBmb3IgdGhlIGdpdmVuIHN5bnRh
eC4iIH07CisgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgU3ludGF4RXJyb3IsICJUaGUg
Z2l2ZW4gaW5pdGlhbCB2YWx1ZSBkb2VzIG5vdCBwYXJzZSBmb3IgdGhlIGdpdmVuIHN5bnRheC4i
X3MgfTsKIAogICAgICAgICBpbml0aWFsVmFsdWUtPmNvbGxlY3REaXJlY3RDb21wdXRhdGlvbmFs
RGVwZW5kZW5jaWVzKGRlcGVuZGVuY2llcyk7CiAgICAgICAgIGluaXRpYWxWYWx1ZS0+Y29sbGVj
dERpcmVjdFJvb3RDb21wdXRhdGlvbmFsRGVwZW5kZW5jaWVzKGRlcGVuZGVuY2llcyk7CiAKICAg
ICAgICAgaWYgKCFkZXBlbmRlbmNpZXMuaXNFbXB0eSgpKQotICAgICAgICAgICAgcmV0dXJuIEV4
Y2VwdGlvbiB7IFN5bnRheEVycm9yLCAiVGhlIGdpdmVuIGluaXRpYWwgdmFsdWUgbXVzdCBiZSBj
b21wdXRhdGlvbmFsbHkgaW5kZXBlbmRlbnQuIiB9OworICAgICAgICAgICAgcmV0dXJuIEV4Y2Vw
dGlvbiB7IFN5bnRheEVycm9yLCAiVGhlIGdpdmVuIGluaXRpYWwgdmFsdWUgbXVzdCBiZSBjb21w
dXRhdGlvbmFsbHkgaW5kZXBlbmRlbnQuIl9zIH07CiAgICAgfQogCiAgICAgQ1NTUmVnaXN0ZXJl
ZEN1c3RvbVByb3BlcnR5IHByb3BlcnR5IHsgZGVzY3JpcHRvci5uYW1lLCBkZXNjcmlwdG9yLnN5
bnRheCwgZGVzY3JpcHRvci5pbmhlcml0cywgV1RGTW92ZShpbml0aWFsVmFsdWUpIH07CiAgICAg
aWYgKCFkb2N1bWVudC5yZWdpc3RlckNTU1Byb3BlcnR5KFdURk1vdmUocHJvcGVydHkpKSkKLSAg
ICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRNb2RpZmljYXRpb25FcnJvciwgIlRoaXMg
cHJvcGVydHkgaGFzIGFscmVhZHkgYmVlbiByZWdpc3RlcmVkLiIgfTsKKyAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IEludmFsaWRNb2RpZmljYXRpb25FcnJvciwgIlRoaXMgcHJvcGVydHkgaGFz
IGFscmVhZHkgYmVlbiByZWdpc3RlcmVkLiJfcyB9OwogCiAgICAgZG9jdW1lbnQuc3R5bGVTY29w
ZSgpLmRpZENoYW5nZVN0eWxlU2hlZXRFbnZpcm9ubWVudCgpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZENTU09NVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0RlcHJlY2F0ZWRDU1NPTVZhbHVlLmNwcAppbmRleCAyMzI1MDg0NWFiYTZiYzUzMjJiM2Iz
NzY5ZmI5M2MwZTY0MGM3ZDgyLi41MDY3ZDBlNmM2MDFiZTJhMTMxM2YwODlhNjQwYWMxYTYyNmI5
YjM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZENTU09NVmFsdWUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01WYWx1ZS5jcHAKQEAg
LTc2LDcgKzc2LDcgQEAgU3RyaW5nIERlcHJlY2F0ZWRDU1NPTVZhbHVlOjpjc3NUZXh0KCkgY29u
c3QKICAgICAgICAgcmV0dXJuIGRvd25jYXN0PERlcHJlY2F0ZWRDU1NPTVZhbHVlTGlzdD4oKnRo
aXMpLmNzc1RleHQoKTsKICAgICB9CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0
dXJuICIiOworICAgIHJldHVybiBlbXB0eVN0cmluZygpOwogfQogCiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvRm9udEZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0ZvbnRG
YWNlLmNwcAppbmRleCBlZmZkNjA3YzM0NmY5YmNmYmM5YzI4ODliZjgzMTY5NGRhMzQwMzA1Li40
ZDUxMWI1ZTY4NTQxMzA1ZDQwYzFjMzNiNzkwOWE2NTA2NTU2ZjYyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvRm9udEZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9Gb250
RmFjZS5jcHAKQEAgLTM3NSw3ICszNzUsNyBAQCBTdHJpbmcgRm9udEZhY2U6OnVuaWNvZGVSYW5n
ZSgpIGNvbnN0CiAgICAgbV9iYWNraW5nLT51cGRhdGVTdHlsZUlmTmVlZGVkKCk7CiAgICAgY29u
c3QgYXV0byYgcmFuZ2VzV3JhcHBlZCA9IG1fYmFja2luZy0+cmFuZ2VzKCk7CiAgICAgaWYgKCFy
YW5nZXNXcmFwcGVkKQotICAgICAgICByZXR1cm4gIlUrMC0xMEZGRkYiOworICAgICAgICByZXR1
cm4gIlUrMC0xMEZGRkYiX3M7CiAgICAgYXV0byByYW5nZXMgPSByYW5nZXNXcmFwcGVkLnZhbHVl
KCk7CiAgICAgaWYgKCFyYW5nZXMuc2l6ZSgpKQogICAgICAgICByZXR1cm4gIlUrMC0xMEZGRkYi
X3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV4cHJlc3Npb24u
Y3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFeHByZXNzaW9uLmNwcAppbmRleCAw
OGI3MDcwNjZiYTZkZmIyMTI3ZmNkYTkwODg5Mzc5MzUxMDgxNGU4Li4xYmRkYjU1M2U4ZmJhMmMy
MjUzZTRkMTQ1NmY3ODY5M2YzNjY5MzI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
TWVkaWFRdWVyeUV4cHJlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1
ZXJ5RXhwcmVzc2lvbi5jcHAKQEAgLTI3NCw3ICsyNzQsNyBAQCBNZWRpYVF1ZXJ5RXhwcmVzc2lv
bjo6TWVkaWFRdWVyeUV4cHJlc3Npb24oY29uc3QgU3RyaW5nJiBmZWF0dXJlLCBDU1NQYXJzZXJU
b2tlbgogU3RyaW5nIE1lZGlhUXVlcnlFeHByZXNzaW9uOjpzZXJpYWxpemUoKSBjb25zdAogewog
ICAgIGlmIChtX3NlcmlhbGl6YXRpb25DYWNoZS5pc051bGwoKSkKLSAgICAgICAgbV9zZXJpYWxp
emF0aW9uQ2FjaGUgPSBtYWtlU3RyaW5nKCcoJywgbV9tZWRpYUZlYXR1cmUuY29udmVydFRvQVND
SUlMb3dlcmNhc2UoKSwgbV92YWx1ZSA/ICI6ICIgOiAiIiwgbV92YWx1ZSA/IG1fdmFsdWUtPmNz
c1RleHQoKSA6ICIiLCAnKScpOworICAgICAgICBtX3NlcmlhbGl6YXRpb25DYWNoZSA9IG1ha2VT
dHJpbmcoJygnLCBtX21lZGlhRmVhdHVyZS5jb252ZXJ0VG9BU0NJSUxvd2VyY2FzZSgpLCBtX3Zh
bHVlID8gIjogIiA6ICIiLCBtX3ZhbHVlID8gbV92YWx1ZS0+Y3NzVGV4dCgpIDogZW1wdHlTdHJp
bmcoKSwgJyknKTsKICAgICByZXR1cm4gbV9zZXJpYWxpemF0aW9uQ2FjaGU7CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnRpZXMuY3BwIGIvU291cmNlL1dl
YkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5jcHAKaW5kZXggZjA0MTNjMTdmZmZhMjgzODExZmUy
NTE3ZmRmZDYxYmNkY2Y4YjI1OS4uYTkyM2M3YTRmOTRmY2YzMmIwN2Y4MTEzYTJjYmVhMjRiOWRm
ODkwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5jcHAKQEAgLTc2OCw3ICs3
NjgsNyBAQCBTdHJpbmcgU3R5bGVQcm9wZXJ0aWVzOjpnZXRMYXllcmVkU2hvcnRoYW5kVmFsdWUo
Y29uc3QgU3R5bGVQcm9wZXJ0eVNob3J0aGFuZCYgcwogCiAgICAgICAgICAgICAgICAgICAgICAg
ICBhdXRvIG1hc2tJZCA9IGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPigqdmFsdWUpLnZhbHVl
SUQoKTsKICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gb3JpZ2luSWQgPSBkb3duY2FzdDxD
U1NQcmltaXRpdmVWYWx1ZT4oKm9yaWdpblZhbHVlKS52YWx1ZUlEKCk7Ci0gICAgICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gbWFza0lkID09IG9yaWdpbklkICYmICghaXNDU1NXaWRlVmFsdWVL
ZXl3b3JkKGdldFZhbHVlTmFtZShtYXNrSWQpKSB8fCB2YWx1ZS0+aXNJbXBsaWNpdEluaXRpYWxW
YWx1ZSgpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBtYXNrSWQgPT0gb3JpZ2lu
SWQgJiYgKCFpc0NTU1dpZGVWYWx1ZUtleXdvcmQoU3RyaW5nVmlldyB7IGdldFZhbHVlTmFtZSht
YXNrSWQpIH0pIHx8IHZhbHVlLT5pc0ltcGxpY2l0SW5pdGlhbFZhbHVlKCkpOwogICAgICAgICAg
ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIGlmIChwcm9wZXJ0eSA9PSBDU1NQcm9w
ZXJ0eU1hc2tPcmlnaW4pIHsKICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdlIGNhbiBza2lw
IHNlcmlhbGl6aW5nIG1hc2stb3JpZ2luIGlmIGl0J3MgdGhlIGluaXRpYWwgdmFsdWUsIGJ1dCBv
bmx5IGlmIHdlJ3JlIGFsc28gZ29pbmcgdG8gc2tpcCBzZXJpYWxpemluZwpAQCAtMTE1NCw3ICsx
MTU0LDcgQEAgYm9vbCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzOjpzZXRDdXN0b21Qcm9wZXJ0eShj
b25zdCBEb2N1bWVudCogZG9jdW1lbnQsIGNvbnN0IFMKIAogICAgIHBhcnNlckNvbnRleHQubW9k
ZSA9IGNzc1BhcnNlck1vZGUoKTsKIAotICAgIFN0cmluZyBzeW50YXggPSAiKiI7CisgICAgU3Ry
aW5nIHN5bnRheCA9ICIqIl9zOwogICAgIGF1dG8qIHJlZ2lzdGVyZWQgPSBkb2N1bWVudCA/IGRv
Y3VtZW50LT5nZXRDU1NSZWdpc3RlcmVkQ3VzdG9tUHJvcGVydHlTZXQoKS5nZXQocHJvcGVydHlO
YW1lKSA6IG51bGxwdHI7CiAKICAgICBpZiAocmVnaXN0ZXJlZCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9tYWtldmFsdWVzLnBsIGIvU291cmNlL1dlYkNvcmUvY3NzL21ha2V2YWx1
ZXMucGwKaW5kZXggMGY4MjE5ZDRjY2I1MWVjYTUyNWQ4MjlhNzYwNmIyN2IwZmEyNzMwMy4uYWU5
YjMyNzgzMjcyNzM3M2M0Y2U3ZjAyMzMwNTIxMzZiMmQ5ODNkNSAxMDA3NTUKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL21ha2V2YWx1ZXMucGwKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL21ha2V2
YWx1ZXMucGwKQEAgLTExMSwxNiArMTExLDE2IEBAIGZvciBteSAkaSAoMCAuLiAkI25hbWVzKSB7
CiAKIHByaW50IEdQRVJGIDw8ICJFT0YiOwogJSUKLXN0YXRpYyBjb25zdCBjaGFyKiBjb25zdCB2
YWx1ZUxpc3RbXSA9IHsKLSAgICAiIiwKK3N0YXRpYyBjb25zdGV4cHIgQVNDSUlMaXRlcmFsIHZh
bHVlTGlzdFtdID0geworICAgICIiX3MsCiBFT0YKIAogZm9yZWFjaCBteSAkbmFtZSAoQG5hbWVz
KSB7Ci0gIHByaW50IEdQRVJGICIgICAgXCIiIC4gJG5hbWUgLiAiXCIsXG4iOworICBwcmludCBH
UEVSRiAiICAgIFwiIiAuICRuYW1lIC4gIlwiX3MsXG4iOwogfQogCiBwcmludCBHUEVSRiA8PCAi
RU9GIjsKLSAgICAwCisgICAgQVNDSUlMaXRlcmFsOjpudWxsKCkKIH07CiAKIGNvbnN0IFZhbHVl
KiBmaW5kVmFsdWUoY29uc3QgY2hhciogc3RyLCB1bnNpZ25lZCBpbnQgbGVuKQpAQCAtMTI4LDEw
ICsxMjgsMTAgQEAgY29uc3QgVmFsdWUqIGZpbmRWYWx1ZShjb25zdCBjaGFyKiBzdHIsIHVuc2ln
bmVkIGludCBsZW4pCiAgICAgcmV0dXJuIENTU1ZhbHVlS2V5d29yZHNIYXNoOjpmaW5kVmFsdWVJ
bXBsKHN0ciwgbGVuKTsKIH0KIAotY29uc3QgY2hhciogZ2V0VmFsdWVOYW1lKHVuc2lnbmVkIHNo
b3J0IGlkKQorQVNDSUlMaXRlcmFsIGdldFZhbHVlTmFtZSh1bnNpZ25lZCBzaG9ydCBpZCkKIHsK
ICAgICBpZiAoaWQgPiBsYXN0Q1NTVmFsdWVLZXl3b3JkKQotICAgICAgICByZXR1cm4gMDsKKyAg
ICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbDo6bnVsbCgpOwogICAgIHJldHVybiB2YWx1ZUxpc3Rb
aWRdOwogfQogCkBAIC0yMDMsNyArMjAzLDcgQEAgcHJpbnQgSEVBREVSICJjb25zdCBpbnQgbGFz
dENTU1ZhbHVlS2V5d29yZCA9ICRsYXN0O1xuIjsKIHByaW50IEhFQURFUiAiY29uc3Qgc2l6ZV90
IG1heENTU1ZhbHVlS2V5d29yZExlbmd0aCA9ICIgLiAkbWF4TGVuIC4gIjtcbiI7CiBwcmludCBI
RUFERVIgPDwgIkVPRiI7CiAKLWNvbnN0IGNoYXIqIGdldFZhbHVlTmFtZSh1bnNpZ25lZCBzaG9y
dCBpZCk7CitBU0NJSUxpdGVyYWwgZ2V0VmFsdWVOYW1lKHVuc2lnbmVkIHNob3J0IGlkKTsKIGNv
bnN0IEF0b21TdHJpbmcmIGdldFZhbHVlTmFtZUF0b21TdHJpbmcoQ1NTVmFsdWVJRCBpZCk7CiBT
dHJpbmcgZ2V0VmFsdWVOYW1lU3RyaW5nKENTU1ZhbHVlSUQgaWQpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL01lZGlhUXVlcnlQYXJzZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvY3NzL3BhcnNlci9NZWRpYVF1ZXJ5UGFyc2VyLmNwcAppbmRleCBjYjVhMDhhYTNlYjdk
NmI4YzgyNTdkYzg0OGRjZWMxMTM0MTljOWNkLi42MmMwMWU1YTMyNzc0MjI0MzY2MmZlYmMyMWVk
ZTA4MGQ5MjM2NTllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL01lZGlh
UXVlcnlQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvTWVkaWFRdWVy
eVBhcnNlci5jcHAKQEAgLTI0Nyw3ICsyNDcsNyBAQCB2b2lkIE1lZGlhUXVlcnlQYXJzZXI6OnNr
aXBVbnRpbENvbW1hKENTU1BhcnNlclRva2VuVHlwZSB0eXBlLCBjb25zdCBDU1NQYXJzZXJUbwog
ICAgIGlmICgodHlwZSA9PSBDb21tYVRva2VuICYmICFtX2Jsb2NrV2F0Y2hlci5ibG9ja0xldmVs
KCkpIHx8IHR5cGUgPT0gRU9GVG9rZW4pIHsKICAgICAgICAgbV9zdGF0ZSA9IFJlYWRSZXN0cmlj
dG9yOwogICAgICAgICBtX21lZGlhUXVlcnlEYXRhLmNsZWFyKCk7Ci0gICAgICAgIE1lZGlhUXVl
cnkgcXVlcnkgPSBNZWRpYVF1ZXJ5KE1lZGlhUXVlcnk6Ok5vdCwgImFsbCIsIFZlY3RvcjxNZWRp
YVF1ZXJ5RXhwcmVzc2lvbj4oKSk7CisgICAgICAgIE1lZGlhUXVlcnkgcXVlcnkgPSBNZWRpYVF1
ZXJ5KE1lZGlhUXVlcnk6Ok5vdCwgImFsbCJfcywgVmVjdG9yPE1lZGlhUXVlcnlFeHByZXNzaW9u
PigpKTsKICAgICAgICAgbV9xdWVyeVNldC0+YWRkTWVkaWFRdWVyeShXVEZNb3ZlKHF1ZXJ5KSk7
CiAgICAgfQogfQpAQCAtMzA5LDcgKzMwOSw3IEBAIFJlZlB0cjxNZWRpYVF1ZXJ5U2V0PiBNZWRp
YVF1ZXJ5UGFyc2VyOjpwYXJzZUludGVybmFsKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlCiAg
ICAgICAgIHByb2Nlc3NUb2tlbihDU1NQYXJzZXJUb2tlbihFT0ZUb2tlbiksIHJhbmdlKTsKIAog
ICAgIGlmIChtX3N0YXRlICE9IFJlYWRBbmQgJiYgbV9zdGF0ZSAhPSBSZWFkUmVzdHJpY3RvciAm
JiBtX3N0YXRlICE9IERvbmUgJiYgbV9zdGF0ZSAhPSBSZWFkTWVkaWFOb3QpIHsKLSAgICAgICAg
TWVkaWFRdWVyeSBxdWVyeSA9IE1lZGlhUXVlcnkoTWVkaWFRdWVyeTo6Tm90LCAiYWxsIiwgVmVj
dG9yPE1lZGlhUXVlcnlFeHByZXNzaW9uPigpKTsKKyAgICAgICAgTWVkaWFRdWVyeSBxdWVyeSA9
IE1lZGlhUXVlcnkoTWVkaWFRdWVyeTo6Tm90LCAiYWxsIl9zLCBWZWN0b3I8TWVkaWFRdWVyeUV4
cHJlc3Npb24+KCkpOwogICAgICAgICBtX3F1ZXJ5U2V0LT5hZGRNZWRpYVF1ZXJ5KFdURk1vdmUo
cXVlcnkpKTsKICAgICB9IGVsc2UgaWYgKG1fbWVkaWFRdWVyeURhdGEuY3VycmVudE1lZGlhUXVl
cnlDaGFuZ2VkKCkpCiAgICAgICAgIGNvbW1pdE1lZGlhUXVlcnkoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvU2l6ZXNBdHRyaWJ1dGVQYXJzZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL3BhcnNlci9TaXplc0F0dHJpYnV0ZVBhcnNlci5jcHAKaW5kZXggZDZlNDhh
MjNmZjk3ZTBhOGI3MzZkODAzNzk3NDI0NzUwNWMzN2ZmOC4uNGRhNDAxNmU2MDY1N2ZiMzc0NTJl
ZTFiOTFhNjFkNTZlMDg4NDg4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNl
ci9TaXplc0F0dHJpYnV0ZVBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNl
ci9TaXplc0F0dHJpYnV0ZVBhcnNlci5jcHAKQEAgLTExMiw3ICsxMTIsNyBAQCBib29sIFNpemVz
QXR0cmlidXRlUGFyc2VyOjptZWRpYUNvbmRpdGlvbk1hdGNoZXMoY29uc3QgTWVkaWFRdWVyeVNl
dCYgbWVkaWFDb25kaQogICAgIGlmICghcmVuZGVyZXIpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICBhdXRvJiBzdHlsZSA9IHJlbmRlcmVyLT5zdHlsZSgpOwotICAgIHJldHVybiBNZWRpYVF1
ZXJ5RXZhbHVhdG9yIHsgInNjcmVlbiIsIG1fZG9jdW1lbnQsICZzdHlsZSB9LmV2YWx1YXRlKG1l
ZGlhQ29uZGl0aW9uLCBtX21lZGlhUXVlcnlEeW5hbWljUmVzdWx0cyk7CisgICAgcmV0dXJuIE1l
ZGlhUXVlcnlFdmFsdWF0b3IgeyAic2NyZWVuIl9zLCBtX2RvY3VtZW50LCAmc3R5bGUgfS5ldmFs
dWF0ZShtZWRpYUNvbmRpdGlvbiwgbV9tZWRpYVF1ZXJ5RHluYW1pY1Jlc3VsdHMpOwogfQogCiBi
b29sIFNpemVzQXR0cmlidXRlUGFyc2VyOjpwYXJzZShDU1NQYXJzZXJUb2tlblJhbmdlIHJhbmdl
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTTnVtZXJpY0ZhY3Rv
cnkuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU051bWVyaWNGYWN0b3J5LmgKaW5k
ZXggODIzNTBiOTlkODc0YjBmYTkwNjVmNjRkZGQ1OTkzZGQ2ZDgzMGIzOS4uMzUzNjJiMjE2ZDAy
YmI3MjNiNzg2YTJjNzIxMzNkMTU2M2JiMjBmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3NzL3R5cGVkb20vQ1NTTnVtZXJpY0ZhY3RvcnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
dHlwZWRvbS9DU1NOdW1lcmljRmFjdG9yeS5oCkBAIC00Myw2NCArNDMsNjQgQEAgY2xhc3MgQ1NT
TnVtZXJpY0ZhY3RvcnkgZmluYWwgOiBwdWJsaWMgU3VwcGxlbWVudDxET01DU1NOYW1lc3BhY2U+
IHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBDU1NOdW1lcmljRmFjdG9yeShET01DU1NOYW1lc3Bh
Y2UmKSB7IH0KIAotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBudW1iZXIoZG91YmxlIHZh
bHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgIm51bWJlciIpOyB9Ci0g
ICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHBlcmNlbnQoZG91YmxlIHZhbHVlKSB7IHJldHVy
biBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInBlcmNlbnQiKTsgfQorICAgIHN0YXRpYyBS
ZWY8Q1NTVW5pdFZhbHVlPiBudW1iZXIoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFs
dWU6OmNyZWF0ZSh2YWx1ZSwgIm51bWJlciJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRW
YWx1ZT4gcGVyY2VudChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRl
KHZhbHVlLCAicGVyY2VudCJfcyk7IH0KIAogCiAgICAgLy8gPGxlbmd0aD4KLSAgICBzdGF0aWMg
UmVmPENTU1VuaXRWYWx1ZT4gZW0oZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6
OmNyZWF0ZSh2YWx1ZSwgImVtIik7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gZXgo
ZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImV4Iik7
IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gY2goZG91YmxlIHZhbHVlKSB7IHJldHVy
biBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImNoIik7IH0KLSAgICBzdGF0aWMgUmVmPENT
U1VuaXRWYWx1ZT4gaWMoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0
ZSh2YWx1ZSwgImljIik7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gcmVtKGRvdWJs
ZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJyZW0iKTsgfQot
ICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBsaChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENT
U1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAibGgiKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5p
dFZhbHVlPiBybGgoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2
YWx1ZSwgInJsaCIpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHZ3KGRvdWJsZSB2
YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJ2dyIpOyB9Ci0gICAg
c3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHZoKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5p
dFZhbHVlOjpjcmVhdGUodmFsdWUsICJ2aCIpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFs
dWU+IHZpKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUs
ICJ2aSIpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHZiKGRvdWJsZSB2YWx1ZSkg
eyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJ2YiIpOyB9Ci0gICAgc3RhdGlj
IFJlZjxDU1NVbml0VmFsdWU+IHZtaW4oZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFs
dWU6OmNyZWF0ZSh2YWx1ZSwgInZtaW4iKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVl
PiB2bWF4KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUs
ICJ2bWF4Iik7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gY20oZG91YmxlIHZhbHVl
KSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImNtIik7IH0KLSAgICBzdGF0
aWMgUmVmPENTU1VuaXRWYWx1ZT4gbW0oZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFs
dWU6OmNyZWF0ZSh2YWx1ZSwgIm1tIik7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4g
cShkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAicSIp
OyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGluKGRvdWJsZSB2YWx1ZSkgeyByZXR1
cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJpbiIpOyB9Ci0gICAgc3RhdGljIFJlZjxD
U1NVbml0VmFsdWU+IHB0KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVh
dGUodmFsdWUsICJwdCIpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHBjKGRvdWJs
ZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJwYyIpOyB9Ci0g
ICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHB4KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NT
VW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJweCIpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0
VmFsdWU+IGNxdyhkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZh
bHVlLCAiY3F3Iik7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gY3FoKGRvdWJsZSB2
YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJjcWgiKTsgfQotICAg
IHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBjcWkoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NV
bml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImNxaSIpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0
VmFsdWU+IGNxYihkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZh
bHVlLCAiY3FiIik7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gY3FtaW4oZG91Ymxl
IHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImNxbWluIik7IH0K
LSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gY3FtYXgoZG91YmxlIHZhbHVlKSB7IHJldHVy
biBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImNxbWF4Iik7IH0KKyAgICBzdGF0aWMgUmVm
PENTU1VuaXRWYWx1ZT4gZW0oZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNy
ZWF0ZSh2YWx1ZSwgImVtIl9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBleChk
b3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiZXgiX3Mp
OyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGNoKGRvdWJsZSB2YWx1ZSkgeyByZXR1
cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJjaCJfcyk7IH0KKyAgICBzdGF0aWMgUmVm
PENTU1VuaXRWYWx1ZT4gaWMoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNy
ZWF0ZSh2YWx1ZSwgImljIl9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiByZW0o
ZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInJlbSJf
cyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gbGgoZG91YmxlIHZhbHVlKSB7IHJl
dHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImxoIl9zKTsgfQorICAgIHN0YXRpYyBS
ZWY8Q1NTVW5pdFZhbHVlPiBybGgoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6
OmNyZWF0ZSh2YWx1ZSwgInJsaCJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4g
dncoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInZ3
Il9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiB2aChkb3VibGUgdmFsdWUpIHsg
cmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAidmgiX3MpOyB9CisgICAgc3RhdGlj
IFJlZjxDU1NVbml0VmFsdWU+IHZpKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVl
OjpjcmVhdGUodmFsdWUsICJ2aSJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4g
dmIoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInZi
Il9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiB2bWluKGRvdWJsZSB2YWx1ZSkg
eyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJ2bWluIl9zKTsgfQorICAgIHN0
YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiB2bWF4KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5p
dFZhbHVlOjpjcmVhdGUodmFsdWUsICJ2bWF4Il9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5p
dFZhbHVlPiBjbShkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZh
bHVlLCAiY20iX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IG1tKGRvdWJsZSB2
YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJtbSJfcyk7IH0KKyAg
ICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gcShkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1Vu
aXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAicSJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRW
YWx1ZT4gaW4oZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1
ZSwgImluIl9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBwdChkb3VibGUgdmFs
dWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAicHQiX3MpOyB9CisgICAg
c3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHBjKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5p
dFZhbHVlOjpjcmVhdGUodmFsdWUsICJwYyJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRW
YWx1ZT4gcHgoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1
ZSwgInB4Il9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBjcXcoZG91YmxlIHZh
bHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImNxdyJfcyk7IH0KKyAg
ICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gY3FoKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NT
VW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJjcWgiX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NV
bml0VmFsdWU+IGNxaShkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRl
KHZhbHVlLCAiY3FpIl9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBjcWIoZG91
YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImNxYiJfcyk7
IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gY3FtaW4oZG91YmxlIHZhbHVlKSB7IHJl
dHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImNxbWluIl9zKTsgfQorICAgIHN0YXRp
YyBSZWY8Q1NTVW5pdFZhbHVlPiBjcW1heChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRW
YWx1ZTo6Y3JlYXRlKHZhbHVlLCAiY3FtYXgiX3MpOyB9CiAKIAogICAgIC8vIDxhbmdsZT4KLSAg
ICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gZGVnKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NT
VW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJkZWciKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5p
dFZhbHVlPiBncmFkKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUo
dmFsdWUsICJncmFkIik7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gcmFkKGRvdWJs
ZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJyYWQiKTsgfQot
ICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiB0dXJuKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4g
Q1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJ0dXJuIik7IH0KKyAgICBzdGF0aWMgUmVmPENT
U1VuaXRWYWx1ZT4gZGVnKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVh
dGUodmFsdWUsICJkZWciX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGdyYWQo
ZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImdyYWQi
X3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHJhZChkb3VibGUgdmFsdWUpIHsg
cmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAicmFkIl9zKTsgfQorICAgIHN0YXRp
YyBSZWY8Q1NTVW5pdFZhbHVlPiB0dXJuKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZh
bHVlOjpjcmVhdGUodmFsdWUsICJ0dXJuIl9zKTsgfQogCiAKICAgICAvLyA8dGltZT4KLSAgICBz
dGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gcyhkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRW
YWx1ZTo6Y3JlYXRlKHZhbHVlLCAicyIpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+
IG1zKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJt
cyIpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHMoZG91YmxlIHZhbHVlKSB7IHJl
dHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInMiX3MpOyB9CisgICAgc3RhdGljIFJl
ZjxDU1NVbml0VmFsdWU+IG1zKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpj
cmVhdGUodmFsdWUsICJtcyJfcyk7IH0KIAogCiAgICAgLy8gPGZyZXF1ZW5jeT4KLSAgICBzdGF0
aWMgUmVmPENTU1VuaXRWYWx1ZT4gaHooZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFs
dWU6OmNyZWF0ZSh2YWx1ZSwgImh6Iik7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4g
a0h6KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJr
aHoiKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBoeihkb3VibGUgdmFsdWUpIHsg
cmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiaHoiX3MpOyB9CisgICAgc3RhdGlj
IFJlZjxDU1NVbml0VmFsdWU+IGtIeihkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1
ZTo6Y3JlYXRlKHZhbHVlLCAia2h6Il9zKTsgfQogCiAKICAgICAvLyA8cmVzb2x1dGlvbj4KLSAg
ICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gZHBpKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NT
VW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJkcGkiKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5p
dFZhbHVlPiBkcGNtKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUo
dmFsdWUsICJkcGNtIik7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gZHBweChkb3Vi
bGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiZHBweCIpOyB9
CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGRwaShkb3VibGUgdmFsdWUpIHsgcmV0dXJu
IENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiZHBpIl9zKTsgfQorICAgIHN0YXRpYyBSZWY8
Q1NTVW5pdFZhbHVlPiBkcGNtKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpj
cmVhdGUodmFsdWUsICJkcGNtIl9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBk
cHB4KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJk
cHB4Il9zKTsgfQogCiAKICAgICAvLyA8ZmxleD4KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1
ZT4gZnIoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwg
ImZyIik7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gZnIoZG91YmxlIHZhbHVlKSB7
IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImZyIl9zKTsgfQogCiAKIHByaXZh
dGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NOdW1lcmljVmFs
dWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTTnVtZXJpY1ZhbHVlLmNwcApp
bmRleCBjZWUxN2M4NzA4ZjhjYjYzOGFlMTEzYTM0ZTcxMmM1NDEyMzEwY2FmLi5lZDdiZjk4Mzhi
MjgzNmYwMGZkZDVhOTVhNDliN2IwYzAzNjY2ZWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvdHlwZWRvbS9DU1NOdW1lcmljVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy90eXBlZG9tL0NTU051bWVyaWNWYWx1ZS5jcHAKQEAgLTE1Nyw3ICsxNTcsNyBAQCBSZWY8Q1NT
TnVtZXJpY1ZhbHVlPiBDU1NOdW1lcmljVmFsdWU6Om11bHRpcGx5SW50ZXJuYWwoVmVjdG9yPFJl
ZjxDU1NOdW1lcmljVmFsdQogICAgICAgICAgICAgZG91YmxlIHByb2R1Y3QgPSAxOwogICAgICAg
ICAgICAgZm9yIChjb25zdCBSZWY8Q1NTTnVtZXJpY1ZhbHVlPiYgdmFsdWUgOiB2YWx1ZXMpCiAg
ICAgICAgICAgICAgICAgcHJvZHVjdCAqPSBkb3duY2FzdDxDU1NVbml0VmFsdWU+KHZhbHVlLmdl
dCgpKS52YWx1ZSgpOwotICAgICAgICAgICAgU3RyaW5nIHVuaXQgPSBub25OdW1iZXJVbml0SW5k
ZXggPyBkb3duY2FzdDxDU1NVbml0VmFsdWU+KHZhbHVlc1sqbm9uTnVtYmVyVW5pdEluZGV4XS5n
ZXQoKSkudW5pdCgpIDogIm51bWJlciI7CisgICAgICAgICAgICBTdHJpbmcgdW5pdCA9IG5vbk51
bWJlclVuaXRJbmRleCA/IGRvd25jYXN0PENTU1VuaXRWYWx1ZT4odmFsdWVzWypub25OdW1iZXJV
bml0SW5kZXhdLmdldCgpKS51bml0KCkgOiAibnVtYmVyIl9zOwogICAgICAgICAgICAgcmV0dXJu
IENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHByb2R1Y3QsIHVuaXQpOwogICAgICAgICB9CiAgICAgfQpA
QCAtMjM1LDcgKzIzNSw3IEBAIFJlZjxDU1NVbml0VmFsdWU+IENTU051bWVyaWNWYWx1ZTo6dG8o
U3RyaW5nJiYgdW5pdCkKICAgICBVTlVTRURfUEFSQU0odW5pdCk7CiAgICAgLy8gaHR0cHM6Ly9k
cmFmdHMuY3NzLWhvdWRpbmkub3JnL2Nzcy10eXBlZC1vbS8jZG9tLWNzc251bWVyaWN2YWx1ZS10
bwogICAgIC8vIEZJWE1FOiBhZGQgaW1wbC4KLSAgICByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVh
dGUoMS4wLCAibnVtYmVyIik7CisgICAgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKDEuMCwg
Im51bWJlciJfcyk7CiB9CiAKIFJlZjxDU1NNYXRoU3VtPiBDU1NOdW1lcmljVmFsdWU6OnRvU3Vt
KEZpeGVkVmVjdG9yPFN0cmluZz4mJiB1bml0cykKQEAgLTI1OCw3ICsyNTgsNyBAQCBFeGNlcHRp
b25PcjxSZWY8Q1NTTnVtZXJpY1ZhbHVlPj4gQ1NTTnVtZXJpY1ZhbHVlOjpwYXJzZShTdHJpbmcm
JiBjc3NUZXh0KQogICAgIFVOVVNFRF9QQVJBTShjc3NUZXh0KTsKICAgICAvLyBodHRwczovL2Ry
YWZ0cy5jc3MtaG91ZGluaS5vcmcvY3NzLXR5cGVkLW9tLyNkb20tY3NzbnVtZXJpY3ZhbHVlLXBh
cnNlCiAgICAgLy8gRklYTUU6IGFkZCBpbXBsLgotICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RT
dXBwb3J0ZWRFcnJvciwgIk5vdCBpbXBsZW1lbnRlZCBFcnJvciIgfTsKKyAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IsICJOb3QgaW1wbGVtZW50ZWQgRXJyb3IiX3MgfTsK
IH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL3R5cGVkb20vQ1NTU3R5bGVWYWx1ZUZhY3RvcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nz
L3R5cGVkb20vQ1NTU3R5bGVWYWx1ZUZhY3RvcnkuY3BwCmluZGV4IDlmYzcwZmIxMDI3MTY4NzE0
NzQ1MzY2NTJkNGNjMTMxMDRkZjM0MjQuLjBhYmIzYTQ4Mjg1MmRiZDRkZDMxNzhmMjQ5ODMyZjU4
NzhiNzFiYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU1N0eWxl
VmFsdWVGYWN0b3J5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NTdHls
ZVZhbHVlRmFjdG9yeS5jcHAKQEAgLTI2NCw3ICsyNjQsNyBAQCBFeGNlcHRpb25PcjxSZWY8Q1NT
U3R5bGVWYWx1ZT4+IENTU1N0eWxlVmFsdWVGYWN0b3J5OjpyZWlmeVZhbHVlKFJlZjxDU1NWYWx1
ZT4mJgogICAgICAgICAvLyBSZWZlciB0byBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtdHlwZWQtb20vdGhlLXN0eWxlcHJvcGVydHltYXAvaW5saW5l
L2dldC5odG1sCiAgICAgICAgIGF1dG8gdmFsdWVMaXN0ID0gZG93bmNhc3Q8Q1NTVmFsdWVMaXN0
Pihjc3NWYWx1ZS5wdHIoKSk7CiAgICAgICAgIGlmICghdmFsdWVMaXN0LT5sZW5ndGgoKSkKLSAg
ICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJUaGUgQ1NTVmFsdWVMaXN0
IHNob3VsZCBub3QgYmUgZW1wdHkuIiB9OworICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7
IFR5cGVFcnJvciwgIlRoZSBDU1NWYWx1ZUxpc3Qgc2hvdWxkIG5vdCBiZSBlbXB0eS4iX3MgfTsK
ICAgICAgICAgCiAgICAgICAgIHJldHVybiByZWlmeVZhbHVlKFdURk1vdmUoKnZhbHVlTGlzdC0+
YmVnaW4oKSksIGRvY3VtZW50KTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL2NvY29hL0hUTUxDb252ZXJ0ZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2Nv
Y29hL0hUTUxDb252ZXJ0ZXIubW0KaW5kZXggYjY3YTYzNDk3MzdiODViYWMyOTMyY2UxOGFiODNm
NzNmODEzMWFiMy4uMmQ1MzllZDJjNzFmMjJiZjI4YmY5ZGY4NTQ0YTliZTk4OGVhODdlZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9IVE1MQ29udmVydGVyLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvSFRNTENvbnZlcnRlci5tbQpAQCAtNTk2
LDcgKzU5Niw3IEBAIFN0cmluZyBIVE1MQ29udmVydGVyQ2FjaGVzOjpwcm9wZXJ0eVZhbHVlRm9y
Tm9kZShOb2RlJiBub2RlLCBDU1NQcm9wZXJ0eUlEIHByb3BlCiAgICAgc3dpdGNoIChwcm9wZXJ0
eUlkKSB7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eURpc3BsYXk6CiAgICAgICAgIGlmIChlbGVtZW50
Lmhhc1RhZ05hbWUoaGVhZFRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKHNjcmlwdFRhZykgfHwg
ZWxlbWVudC5oYXNUYWdOYW1lKGFwcGxldFRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKG5vZnJh
bWVzVGFnKSkKLSAgICAgICAgICAgIHJldHVybiAibm9uZSI7CisgICAgICAgICAgICByZXR1cm4g
Im5vbmUiX3M7CiAgICAgICAgIGVsc2UgaWYgKGVsZW1lbnQuaGFzVGFnTmFtZShhZGRyZXNzVGFn
KSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoYmxvY2txdW90ZVRhZykgfHwgZWxlbWVudC5oYXNUYWdO
YW1lKGJvZHlUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZShjZW50ZXJUYWcpCiAgICAgICAgICAg
ICAgfHwgZWxlbWVudC5oYXNUYWdOYW1lKGRkVGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoZGly
VGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoZGl2VGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUo
ZGxUYWcpCiAgICAgICAgICAgICAgfHwgZWxlbWVudC5oYXNUYWdOYW1lKGR0VGFnKSB8fCBlbGVt
ZW50Lmhhc1RhZ05hbWUoZmllbGRzZXRUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZShmb3JtVGFn
KSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoZnJhbWVUYWcpCkBAIC02MDQsNjIgKzYwNCw2MiBAQCBT
dHJpbmcgSFRNTENvbnZlcnRlckNhY2hlczo6cHJvcGVydHlWYWx1ZUZvck5vZGUoTm9kZSYgbm9k
ZSwgQ1NTUHJvcGVydHlJRCBwcm9wZQogICAgICAgICAgICAgIHx8IGVsZW1lbnQuaGFzVGFnTmFt
ZShoMlRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKGgzVGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05h
bWUoaDRUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZShoNVRhZykKICAgICAgICAgICAgICB8fCBl
bGVtZW50Lmhhc1RhZ05hbWUoaDZUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZShpZnJhbWVUYWcp
IHx8IGVsZW1lbnQuaGFzVGFnTmFtZShtZW51VGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUobm9z
Y3JpcHRUYWcpCiAgICAgICAgICAgICAgfHwgZWxlbWVudC5oYXNUYWdOYW1lKG9sVGFnKSB8fCBl
bGVtZW50Lmhhc1RhZ05hbWUocFRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKHByZVRhZykgfHwg
ZWxlbWVudC5oYXNUYWdOYW1lKHVsVGFnKSkKLSAgICAgICAgICAgIHJldHVybiAiYmxvY2siOwor
ICAgICAgICAgICAgcmV0dXJuICJibG9jayJfczsKICAgICAgICAgZWxzZSBpZiAoZWxlbWVudC5o
YXNUYWdOYW1lKGxpVGFnKSkKLSAgICAgICAgICAgIHJldHVybiAibGlzdC1pdGVtIjsKKyAgICAg
ICAgICAgIHJldHVybiAibGlzdC1pdGVtIl9zOwogICAgICAgICBlbHNlIGlmIChlbGVtZW50Lmhh
c1RhZ05hbWUodGFibGVUYWcpKQotICAgICAgICAgICAgcmV0dXJuICJ0YWJsZSI7CisgICAgICAg
ICAgICByZXR1cm4gInRhYmxlIl9zOwogICAgICAgICBlbHNlIGlmIChlbGVtZW50Lmhhc1RhZ05h
bWUodHJUYWcpKQotICAgICAgICAgICAgcmV0dXJuICJ0YWJsZS1yb3ciOworICAgICAgICAgICAg
cmV0dXJuICJ0YWJsZS1yb3ciX3M7CiAgICAgICAgIGVsc2UgaWYgKGVsZW1lbnQuaGFzVGFnTmFt
ZSh0aFRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKHRkVGFnKSkKLSAgICAgICAgICAgIHJldHVy
biAidGFibGUtY2VsbCI7CisgICAgICAgICAgICByZXR1cm4gInRhYmxlLWNlbGwiX3M7CiAgICAg
ICAgIGVsc2UgaWYgKGVsZW1lbnQuaGFzVGFnTmFtZSh0aGVhZFRhZykpCi0gICAgICAgICAgICBy
ZXR1cm4gInRhYmxlLWhlYWRlci1ncm91cCI7CisgICAgICAgICAgICByZXR1cm4gInRhYmxlLWhl
YWRlci1ncm91cCJfczsKICAgICAgICAgZWxzZSBpZiAoZWxlbWVudC5oYXNUYWdOYW1lKHRib2R5
VGFnKSkKLSAgICAgICAgICAgIHJldHVybiAidGFibGUtcm93LWdyb3VwIjsKKyAgICAgICAgICAg
IHJldHVybiAidGFibGUtcm93LWdyb3VwIl9zOwogICAgICAgICBlbHNlIGlmIChlbGVtZW50Lmhh
c1RhZ05hbWUodGZvb3RUYWcpKQotICAgICAgICAgICAgcmV0dXJuICJ0YWJsZS1mb290ZXItZ3Jv
dXAiOworICAgICAgICAgICAgcmV0dXJuICJ0YWJsZS1mb290ZXItZ3JvdXAiX3M7CiAgICAgICAg
IGVsc2UgaWYgKGVsZW1lbnQuaGFzVGFnTmFtZShjb2xUYWcpKQotICAgICAgICAgICAgcmV0dXJu
ICJ0YWJsZS1jb2x1bW4iOworICAgICAgICAgICAgcmV0dXJuICJ0YWJsZS1jb2x1bW4iX3M7CiAg
ICAgICAgIGVsc2UgaWYgKGVsZW1lbnQuaGFzVGFnTmFtZShjb2xncm91cFRhZykpCi0gICAgICAg
ICAgICByZXR1cm4gInRhYmxlLWNvbHVtbi1ncm91cCI7CisgICAgICAgICAgICByZXR1cm4gInRh
YmxlLWNvbHVtbi1ncm91cCJfczsKICAgICAgICAgZWxzZSBpZiAoZWxlbWVudC5oYXNUYWdOYW1l
KGNhcHRpb25UYWcpKQotICAgICAgICAgICAgcmV0dXJuICJ0YWJsZS1jYXB0aW9uIjsKKyAgICAg
ICAgICAgIHJldHVybiAidGFibGUtY2FwdGlvbiJfczsKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eVdoaXRlU3BhY2U6CiAgICAgICAgIGlmIChlbGVtZW50Lmhhc1RhZ05hbWUo
cHJlVGFnKSkKLSAgICAgICAgICAgIHJldHVybiAicHJlIjsKKyAgICAgICAgICAgIHJldHVybiAi
cHJlIl9zOwogICAgICAgICBpbmhlcml0ID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eUZvbnRTdHlsZToKICAgICAgICAgaWYgKGVsZW1lbnQuaGFzVGFnTmFtZShp
VGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoY2l0ZVRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1l
KGVtVGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUodmFyVGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05h
bWUoYWRkcmVzc1RhZykpCi0gICAgICAgICAgICByZXR1cm4gIml0YWxpYyI7CisgICAgICAgICAg
ICByZXR1cm4gIml0YWxpYyJfczsKICAgICAgICAgaW5oZXJpdCA9IHRydWU7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgQ1NTUHJvcGVydHlGb250V2VpZ2h0OgogICAgICAgICBpZiAoZWxlbWVu
dC5oYXNUYWdOYW1lKGJUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZShzdHJvbmdUYWcpIHx8IGVs
ZW1lbnQuaGFzVGFnTmFtZSh0aFRhZykpCi0gICAgICAgICAgICByZXR1cm4gImJvbGRlciI7Cisg
ICAgICAgICAgICByZXR1cm4gImJvbGRlciJfczsKICAgICAgICAgaW5oZXJpdCA9IHRydWU7CiAg
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTUHJvcGVydHlUZXh0RGVjb3JhdGlvbkxpbmU6CiAg
ICAgICAgIGlmIChlbGVtZW50Lmhhc1RhZ05hbWUodVRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1l
KGluc1RhZykpCi0gICAgICAgICAgICByZXR1cm4gInVuZGVybGluZSI7CisgICAgICAgICAgICBy
ZXR1cm4gInVuZGVybGluZSJfczsKICAgICAgICAgZWxzZSBpZiAoZWxlbWVudC5oYXNUYWdOYW1l
KHNUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZShzdHJpa2VUYWcpIHx8IGVsZW1lbnQuaGFzVGFn
TmFtZShkZWxUYWcpKQotICAgICAgICAgICAgcmV0dXJuICJsaW5lLXRocm91Z2giOworICAgICAg
ICAgICAgcmV0dXJuICJsaW5lLXRocm91Z2giX3M7CiAgICAgICAgIGluaGVyaXQgPSB0cnVlOyAv
LyBGSVhNRTogVGhpcyBpcyBub3Qgc3RyaWN0bHkgY29ycmVjdAogICAgICAgICBicmVhazsKICAg
ICBjYXNlIENTU1Byb3BlcnR5VGV4dEFsaWduOgogICAgICAgICBpZiAoZWxlbWVudC5oYXNUYWdO
YW1lKGNlbnRlclRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKGNhcHRpb25UYWcpIHx8IGVsZW1l
bnQuaGFzVGFnTmFtZSh0aFRhZykpCi0gICAgICAgICAgICByZXR1cm4gImNlbnRlciI7CisgICAg
ICAgICAgICByZXR1cm4gImNlbnRlciJfczsKICAgICAgICAgaW5oZXJpdCA9IHRydWU7CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTUHJvcGVydHlWZXJ0aWNhbEFsaWduOgogICAgICAgICBp
ZiAoZWxlbWVudC5oYXNUYWdOYW1lKHN1cFRhZykpCi0gICAgICAgICAgICByZXR1cm4gInN1cGVy
IjsKKyAgICAgICAgICAgIHJldHVybiAic3VwZXIiX3M7CiAgICAgICAgIGVsc2UgaWYgKGVsZW1l
bnQuaGFzVGFnTmFtZShzdWJUYWcpKQotICAgICAgICAgICAgcmV0dXJuICJzdWIiOworICAgICAg
ICAgICAgcmV0dXJuICJzdWIiX3M7CiAgICAgICAgIGVsc2UgaWYgKGVsZW1lbnQuaGFzVGFnTmFt
ZSh0aGVhZFRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKHRib2R5VGFnKSB8fCBlbGVtZW50Lmhh
c1RhZ05hbWUodGZvb3RUYWcpKQotICAgICAgICAgICAgcmV0dXJuICJtaWRkbGUiOworICAgICAg
ICAgICAgcmV0dXJuICJtaWRkbGUiX3M7CiAgICAgICAgIGVsc2UgaWYgKGVsZW1lbnQuaGFzVGFn
TmFtZSh0clRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKHRoVGFnKSB8fCBlbGVtZW50Lmhhc1Rh
Z05hbWUodGRUYWcpKQogICAgICAgICAgICAgaW5oZXJpdCA9IHRydWU7CiAgICAgICAgIGJyZWFr
OwpAQCAtMTg1Miw3ICsxODUyLDcgQEAgQk9PTCBIVE1MQ29udmVydGVyOjpfcHJvY2Vzc0VsZW1l
bnQoRWxlbWVudCYgZWxlbWVudCwgTlNJbnRlZ2VyIGRlcHRoKQogICAgICAgICBSZXRhaW5QdHI8
TlNUZXh0TGlzdD4gbGlzdDsKICAgICAgICAgU3RyaW5nIGxpc3RTdHlsZVR5cGUgPSBfY2FjaGVz
LT5wcm9wZXJ0eVZhbHVlRm9yTm9kZShlbGVtZW50LCBDU1NQcm9wZXJ0eUxpc3RTdHlsZVR5cGUp
OwogICAgICAgICBpZiAoIWxpc3RTdHlsZVR5cGUubGVuZ3RoKCkpCi0gICAgICAgICAgICBsaXN0
U3R5bGVUeXBlID0gImRlY2ltYWwiOworICAgICAgICAgICAgbGlzdFN0eWxlVHlwZSA9ICJkZWNp
bWFsIl9zOwogICAgICAgICBsaXN0ID0gYWRvcHROUyhbW1BsYXRmb3JtTlNUZXh0TGlzdCBhbGxv
Y10gaW5pdFdpdGhNYXJrZXJGb3JtYXQ6U3RyaW5nKCJ7IiArIGxpc3RTdHlsZVR5cGUgKyAifSIp
IG9wdGlvbnM6MF0pOwogICAgICAgICBpZiAoaXM8SFRNTE9MaXN0RWxlbWVudD4oZWxlbWVudCkp
IHsKICAgICAgICAgICAgIE5TSW50ZWdlciBzdGFydGluZ0l0ZW1OdW1iZXIgPSBkb3duY2FzdDxI
VE1MT0xpc3RFbGVtZW50PihlbGVtZW50KS5zdGFydCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9jb2NvYS9XZWJDb250ZW50UmVhZGVyQ29jb2EubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9lZGl0aW5nL2NvY29hL1dlYkNvbnRlbnRSZWFkZXJDb2NvYS5tbQppbmRleCBlODg2YTI3
ZGJkNjIyNDBhZDk4NDIwNDVjZWI4MzA1MGEyZmMwM2RmLi5kOGQxNDBkZWY3ZDNhMzhiMDI0YTQx
MTM0YjY1OGU3ZjMxNDE0ZTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2Nv
Y29hL1dlYkNvbnRlbnRSZWFkZXJDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L2NvY29hL1dlYkNvbnRlbnRSZWFkZXJDb2NvYS5tbQpAQCAtNzYyLDcgKzc2Miw3IEBAIHN0YXRp
YyBSZWY8SFRNTEVsZW1lbnQ+IGF0dGFjaG1lbnRGb3JEYXRhKEZyYW1lJiBmcmFtZSwgRnJhZ21l
bnRlZFNoYXJlZEJ1ZmZlciYKICAgICBhdXRvIGF0dGFjaG1lbnRUeXBlID0gdHlwZUZvckF0dGFj
aG1lbnRFbGVtZW50KGNvbnRlbnRUeXBlKTsKIAogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgaW5z
dGVhZCBhc2sgQ29yZVNlcnZpY2VzIGZvciBhIHByZWZlcnJlZCBuYW1lIGNvcnJlc3BvbmRpbmcg
dG8gdGhlIGdpdmVuIGNvbnRlbnQgdHlwZS4KLSAgICBzdGF0aWMgY29uc3QgY2hhciogZGVmYXVs
dEF0dGFjaG1lbnROYW1lID0gImZpbGUiOworICAgIHN0YXRpYyBjb25zdGV4cHIgQVNDSUlMaXRl
cmFsIGRlZmF1bHRBdHRhY2htZW50TmFtZSA9ICJmaWxlIl9zOwogCiAgICAgU3RyaW5nIGZpbGVO
YW1lOwogICAgIGlmIChuYW1lLmlzRW1wdHkoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9jb2NvYS9CdW5kbGVSZXNvdXJjZUxvYWRlci5tbSBiL1NvdXJjZS9XZWJDb3JlL2xv
YWRlci9jb2NvYS9CdW5kbGVSZXNvdXJjZUxvYWRlci5tbQppbmRleCBjM2I3YjdmZTU1ZGMzMzA0
M2NjOGFlMzljY2ZhNDdkYjc2OTYzZWNmLi45YzI3OTExMzk1NzllMGQ0NjdjMzgwYTUyM2Q1NTE1
MTQyMjMxYWIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY29jb2EvQnVuZGxl
UmVzb3VyY2VMb2FkZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NvY29hL0J1bmRs
ZVJlc291cmNlTG9hZGVyLm1tCkBAIC02NSwxMyArNjUsMTMgQEAgdm9pZCBsb2FkUmVzb3VyY2VG
cm9tQnVuZGxlKFJlc291cmNlTG9hZGVyJiBsb2FkZXIsIGNvbnN0IFN0cmluZyYgc3ViZGlyZWN0
b3J5KQogCiAgICAgICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbcHJvdGVjdGVkTG9hZGVy
ID0gV1RGTW92ZShwcm90ZWN0ZWRMb2FkZXIpLCB1cmwgPSBXVEZNb3ZlKHVybCkuaXNvbGF0ZWRD
b3B5KCksIGJ1ZmZlciA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGRhdGEpXSgpIG11dGFibGUgewog
ICAgICAgICAgICAgYXV0byBtaW1lVHlwZSA9IE1JTUVUeXBlUmVnaXN0cnk6Om1pbWVUeXBlRm9y
UGF0aCh1cmwucGF0aCgpKTsKLSAgICAgICAgICAgIFJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2Ug
eyB1cmwsIG1pbWVUeXBlLCBzdGF0aWNfY2FzdDxsb25nIGxvbmc+KGJ1ZmZlci0+c2l6ZSgpKSwg
TUlNRVR5cGVSZWdpc3RyeTo6aXNUZXh0TUlNRVR5cGUobWltZVR5cGUpID8gIlVURi04Il9zIDog
bnVsbHB0ciB9OworICAgICAgICAgICAgUmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSB7IHVybCwg
bWltZVR5cGUsIHN0YXRpY19jYXN0PGxvbmcgbG9uZz4oYnVmZmVyLT5zaXplKCkpLCBNSU1FVHlw
ZVJlZ2lzdHJ5Ojppc1RleHRNSU1FVHlwZShtaW1lVHlwZSkgPyAiVVRGLTgiX3MgOiBTdHJpbmco
KSB9OwogICAgICAgICAgICAgcmVzcG9uc2Uuc2V0SFRUUFN0YXR1c0NvZGUoMjAwKTsKICAgICAg
ICAgICAgIHJlc3BvbnNlLnNldEhUVFBTdGF0dXNUZXh0KCJPSyJfcyk7CiAgICAgICAgICAgICBy
ZXNwb25zZS5zZXRTb3VyY2UoUmVzb3VyY2VSZXNwb25zZTo6U291cmNlOjpOZXR3b3JrKTsKIAog
ICAgICAgICAgICAgLy8gQWxsb3cgaW1hZ2VzIHRvIGxvYWQuCi0gICAgICAgICAgICByZXNwb25z
ZS5hZGRIVFRQSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OkFjY2Vzc0NvbnRyb2xBbGxvd09y
aWdpbiwgIioiKTsKKyAgICAgICAgICAgIHJlc3BvbnNlLmFkZEhUVFBIZWFkZXJGaWVsZChIVFRQ
SGVhZGVyTmFtZTo6QWNjZXNzQ29udHJvbEFsbG93T3JpZ2luLCAiKiJfcyk7CiAKICAgICAgICAg
ICAgIHByb3RlY3RlZExvYWRlci0+ZGVsaXZlclJlc3BvbnNlQW5kRGF0YShyZXNwb25zZSwgV1RG
TW92ZShidWZmZXIpKTsKICAgICAgICAgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvbWFjL0xvYWRlck5TVVJMRXh0cmFzLm1tIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL21h
Yy9Mb2FkZXJOU1VSTEV4dHJhcy5tbQppbmRleCA1NTBkYWI4MGVlM2FhNDYwNzIxZGViNmMzMGM4
NWE4ZTZkZjBhMDQ3Li5lNThmNDU1NGZlNDA0NmUxZDMyMTRjOWYxNmEwZjFlYjdiMmJhYjkzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvbWFjL0xvYWRlck5TVVJMRXh0cmFzLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9tYWMvTG9hZGVyTlNVUkxFeHRyYXMubW0KQEAg
LTY0LDcgKzY0LDcgQEAgTlNTdHJpbmcgKnN1Z2dlc3RlZEZpbGVuYW1lV2l0aE1JTUVUeXBlKE5T
VVJMICp1cmwsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUpCiAgICAgLy8gaGF2ZSBhIGZpbGVuYW1l
IHdoaWNoIGhhcyAudGFyIGluIGl0IG9yIGVuZHMgaW4gLnRnegogICAgIGlmICgobWltZVR5cGUg
PT0gImFwcGxpY2F0aW9uL3RhciIgfHwgbWltZVR5cGUgPT0gImFwcGxpY2F0aW9uL3gtdGFyIikK
ICAgICAgICAgJiYgKFN0cmluZyhmaWxlbmFtZSkuY29udGFpbnNJZ25vcmluZ0FTQ0lJQ2FzZSgi
LnRhciIpCi0gICAgICAgIHx8IFN0cmluZyhmaWxlbmFtZSkuZW5kc1dpdGhJZ25vcmluZ0FTQ0lJ
Q2FzZSgiLnRneiIpKSkgeworICAgICAgICB8fCBTdHJpbmcoZmlsZW5hbWUpLmVuZHNXaXRoSWdu
b3JpbmdBU0NJSUNhc2UoIi50Z3oiX3MpKSkgewogICAgICAgICByZXR1cm4gZmlsZW5hbWU7CiAg
ICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL1Jlc291cmNlVXNh
Z2VPdmVybGF5Q29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL1Jlc291cmNlVXNh
Z2VPdmVybGF5Q29jb2EubW0KaW5kZXggMTE0ODRkMGM1OTJjMDdmZjk0ZWMxNzdhMDEyODAxMDc5
YzM5NTk3MS4uZTFkYzI5Yjg2MmQ0MjI0M2E5YTI5MWEwZWQxZjVmNDMzZmNkYTFlYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9SZXNvdXJjZVVzYWdlT3ZlcmxheUNvY29h
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvUmVzb3VyY2VVc2FnZU92ZXJsYXlD
b2NvYS5tbQpAQCAtMTYxLDE4ICsxNjEsMTggQEAgc3RydWN0IEhpc3RvcmljUmVzb3VyY2VVc2Fn
ZURhdGEgewogSGlzdG9yaWNSZXNvdXJjZVVzYWdlRGF0YTo6SGlzdG9yaWNSZXNvdXJjZVVzYWdl
RGF0YSgpCiB7CiAgICAgLy8gVk0gdGFnIGNhdGVnb3JpZXMuCi0gICAgY2F0ZWdvcmllc1tNZW1v
cnlDYXRlZ29yeTo6SlNKSVRdID0gSGlzdG9yaWNNZW1vcnlDYXRlZ29yeUluZm8oTWVtb3J5Q2F0
ZWdvcnk6OkpTSklULCB7IDI1NSwgOTYsIDI1NSB9LCAiSlMgSklUIik7Ci0gICAgY2F0ZWdvcmll
c1tNZW1vcnlDYXRlZ29yeTo6R2lnYWNhZ2VdID0gSGlzdG9yaWNNZW1vcnlDYXRlZ29yeUluZm8o
TWVtb3J5Q2F0ZWdvcnk6OkdpZ2FjYWdlLCB7IDEwMSwgNzksIDI0MCB9LCAiR2lnYWNhZ2UiKTsK
LSAgICBjYXRlZ29yaWVzW01lbW9yeUNhdGVnb3J5OjpJbWFnZXNdID0gSGlzdG9yaWNNZW1vcnlD
YXRlZ29yeUluZm8oTWVtb3J5Q2F0ZWdvcnk6OkltYWdlcywgQ29sb3I6OnllbGxvdywgIkltYWdl
cyIpOwotICAgIGNhdGVnb3JpZXNbTWVtb3J5Q2F0ZWdvcnk6OkxheWVyc10gPSBIaXN0b3JpY01l
bW9yeUNhdGVnb3J5SW5mbyhNZW1vcnlDYXRlZ29yeTo6TGF5ZXJzLCBDb2xvcjo6Y3lhbiwgIkxh
eWVycyIpOwotICAgIGNhdGVnb3JpZXNbTWVtb3J5Q2F0ZWdvcnk6OkxpYmNNYWxsb2NdID0gSGlz
dG9yaWNNZW1vcnlDYXRlZ29yeUluZm8oTWVtb3J5Q2F0ZWdvcnk6OkxpYmNNYWxsb2MsIENvbG9y
OjpncmVlbiwgImxpYmMgbWFsbG9jIik7Ci0gICAgY2F0ZWdvcmllc1tNZW1vcnlDYXRlZ29yeTo6
Ym1hbGxvY10gPSBIaXN0b3JpY01lbW9yeUNhdGVnb3J5SW5mbyhNZW1vcnlDYXRlZ29yeTo6Ym1h
bGxvYywgeyAyNTUsIDk2LCA5NiB9LCAiYm1hbGxvYyIpOwotICAgIGNhdGVnb3JpZXNbTWVtb3J5
Q2F0ZWdvcnk6Oklzb0hlYXBdID0gSGlzdG9yaWNNZW1vcnlDYXRlZ29yeUluZm8oTWVtb3J5Q2F0
ZWdvcnk6Oklzb0hlYXAsIHsgMTI4LCAxNTksIDY0IH0sICJJc29IZWFwIik7Ci0gICAgY2F0ZWdv
cmllc1tNZW1vcnlDYXRlZ29yeTo6T3RoZXJdID0gSGlzdG9yaWNNZW1vcnlDYXRlZ29yeUluZm8o
TWVtb3J5Q2F0ZWdvcnk6Ok90aGVyLCB7IDE5MiwgMjU1LCAwIH0sICJPdGhlciIpOworICAgIGNh
dGVnb3JpZXNbTWVtb3J5Q2F0ZWdvcnk6OkpTSklUXSA9IEhpc3RvcmljTWVtb3J5Q2F0ZWdvcnlJ
bmZvKE1lbW9yeUNhdGVnb3J5OjpKU0pJVCwgeyAyNTUsIDk2LCAyNTUgfSwgIkpTIEpJVCJfcyk7
CisgICAgY2F0ZWdvcmllc1tNZW1vcnlDYXRlZ29yeTo6R2lnYWNhZ2VdID0gSGlzdG9yaWNNZW1v
cnlDYXRlZ29yeUluZm8oTWVtb3J5Q2F0ZWdvcnk6OkdpZ2FjYWdlLCB7IDEwMSwgNzksIDI0MCB9
LCAiR2lnYWNhZ2UiX3MpOworICAgIGNhdGVnb3JpZXNbTWVtb3J5Q2F0ZWdvcnk6OkltYWdlc10g
PSBIaXN0b3JpY01lbW9yeUNhdGVnb3J5SW5mbyhNZW1vcnlDYXRlZ29yeTo6SW1hZ2VzLCBDb2xv
cjo6eWVsbG93LCAiSW1hZ2VzIl9zKTsKKyAgICBjYXRlZ29yaWVzW01lbW9yeUNhdGVnb3J5OjpM
YXllcnNdID0gSGlzdG9yaWNNZW1vcnlDYXRlZ29yeUluZm8oTWVtb3J5Q2F0ZWdvcnk6OkxheWVy
cywgQ29sb3I6OmN5YW4sICJMYXllcnMiX3MpOworICAgIGNhdGVnb3JpZXNbTWVtb3J5Q2F0ZWdv
cnk6OkxpYmNNYWxsb2NdID0gSGlzdG9yaWNNZW1vcnlDYXRlZ29yeUluZm8oTWVtb3J5Q2F0ZWdv
cnk6OkxpYmNNYWxsb2MsIENvbG9yOjpncmVlbiwgImxpYmMgbWFsbG9jIl9zKTsKKyAgICBjYXRl
Z29yaWVzW01lbW9yeUNhdGVnb3J5OjpibWFsbG9jXSA9IEhpc3RvcmljTWVtb3J5Q2F0ZWdvcnlJ
bmZvKE1lbW9yeUNhdGVnb3J5OjpibWFsbG9jLCB7IDI1NSwgOTYsIDk2IH0sICJibWFsbG9jIl9z
KTsKKyAgICBjYXRlZ29yaWVzW01lbW9yeUNhdGVnb3J5OjpJc29IZWFwXSA9IEhpc3RvcmljTWVt
b3J5Q2F0ZWdvcnlJbmZvKE1lbW9yeUNhdGVnb3J5OjpJc29IZWFwLCB7IDEyOCwgMTU5LCA2NCB9
LCAiSXNvSGVhcCJfcyk7CisgICAgY2F0ZWdvcmllc1tNZW1vcnlDYXRlZ29yeTo6T3RoZXJdID0g
SGlzdG9yaWNNZW1vcnlDYXRlZ29yeUluZm8oTWVtb3J5Q2F0ZWdvcnk6Ok90aGVyLCB7IDE5Miwg
MjU1LCAwIH0sICJPdGhlciJfcyk7CiAKICAgICAvLyBTdWIgY2F0ZWdvcmllcyAoZS5nIGJyZWFr
ZG93biBvZiBibWFsbG9jIHRhZy4pCi0gICAgY2F0ZWdvcmllc1tNZW1vcnlDYXRlZ29yeTo6R0NI
ZWFwXSA9IEhpc3RvcmljTWVtb3J5Q2F0ZWdvcnlJbmZvKE1lbW9yeUNhdGVnb3J5OjpHQ0hlYXAs
IHsgMTYwLCAxNjAsIDI1NSB9LCAiR0MgaGVhcCIsIHRydWUpOwotICAgIGNhdGVnb3JpZXNbTWVt
b3J5Q2F0ZWdvcnk6OkdDT3duZWRdID0gSGlzdG9yaWNNZW1vcnlDYXRlZ29yeUluZm8oTWVtb3J5
Q2F0ZWdvcnk6OkdDT3duZWQsIHsgMjU1LCAxOTIsIDk2IH0sICJHQyBvd25lZCIsIHRydWUpOwor
ICAgIGNhdGVnb3JpZXNbTWVtb3J5Q2F0ZWdvcnk6OkdDSGVhcF0gPSBIaXN0b3JpY01lbW9yeUNh
dGVnb3J5SW5mbyhNZW1vcnlDYXRlZ29yeTo6R0NIZWFwLCB7IDE2MCwgMTYwLCAyNTUgfSwgIkdD
IGhlYXAiX3MsIHRydWUpOworICAgIGNhdGVnb3JpZXNbTWVtb3J5Q2F0ZWdvcnk6OkdDT3duZWRd
ID0gSGlzdG9yaWNNZW1vcnlDYXRlZ29yeUluZm8oTWVtb3J5Q2F0ZWdvcnk6OkdDT3duZWQsIHsg
MjU1LCAxOTIsIDk2IH0sICJHQyBvd25lZCJfcywgdHJ1ZSk7CiAKICNpZm5kZWYgTkRFQlVHCiAg
ICAgLy8gRW5zdXJlIHRoaXMgYWxpZ25zIHdpdGggUmVzb3VyY2VVc2FnZURhdGEncyBjYXRlZ29y
eSBvcmRlci4KQEAgLTMxMSw3ICszMTEsNyBAQCBzdGF0aWMgdm9pZCBkcmF3Q3B1SGlzdG9yeShD
R0NvbnRleHRSZWYgY29udGV4dCwgZmxvYXQgeDEsIGZsb2F0IHkxLCBmbG9hdCB5MiwgUgogICAg
ICAgICBpKys7CiAgICAgfSk7CiAKLSAgICBkcmF3R3JhcGhMYWJlbChjb250ZXh0LCB4MSwgeTIs
ICJDUFUiKTsKKyAgICBkcmF3R3JhcGhMYWJlbChjb250ZXh0LCB4MSwgeTIsICJDUFUiX3MpOwog
fQogCiBzdGF0aWMgdm9pZCBkcmF3R0NIaXN0b3J5KENHQ29udGV4dFJlZiBjb250ZXh0LCBmbG9h
dCB4MSwgZmxvYXQgeTEsIGZsb2F0IHkyLCBSaW5nQnVmZmVyPHNpemVfdD4mIHNpemVIaXN0b3J5
LCBSaW5nQnVmZmVyPHNpemVfdD4mIGNhcGFjaXR5SGlzdG9yeSkKQEAgLTM1NCw3ICszNTQsNyBA
QCBzdGF0aWMgdm9pZCBkcmF3R0NIaXN0b3J5KENHQ29udGV4dFJlZiBjb250ZXh0LCBmbG9hdCB4
MSwgZmxvYXQgeTEsIGZsb2F0IHkyLCBSaQogICAgICAgICBpKys7CiAgICAgfSk7CiAKLSAgICBk
cmF3R3JhcGhMYWJlbChjb250ZXh0LCB4MSwgeTIsICJHQyIpOworICAgIGRyYXdHcmFwaExhYmVs
KGNvbnRleHQsIHgxLCB5MiwgIkdDIl9zKTsKIH0KIAogc3RhdGljIHZvaWQgZHJhd01lbUhpc3Rv
cnkoQ0dDb250ZXh0UmVmIGNvbnRleHQsIGZsb2F0IHgxLCBmbG9hdCB5MSwgZmxvYXQgeTIsIEhp
c3RvcmljUmVzb3VyY2VVc2FnZURhdGEmIGRhdGEpCkBAIC00MDAsNyArNDAwLDcgQEAgc3RhdGlj
IHZvaWQgZHJhd01lbUhpc3RvcnkoQ0dDb250ZXh0UmVmIGNvbnRleHQsIGZsb2F0IHgxLCBmbG9h
dCB5MSwgZmxvYXQgeTIsIEgKICAgICAgICAgKytpOwogICAgIH0KIAotICAgIGRyYXdHcmFwaExh
YmVsKGNvbnRleHQsIHgxLCB5MiwgIk1lbSIpOworICAgIGRyYXdHcmFwaExhYmVsKGNvbnRleHQs
IHgxLCB5MiwgIk1lbSJfcyk7CiB9CiAKIHN0YXRpYyBjb25zdCBmbG9hdCBmdWxsQ2lyY2xlSW5S
YWRpYW5zID0gcGlGbG9hdCAqIDI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2Nv
Y29hL1NldHRpbmdzQmFzZUNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9TZXR0
aW5nc0Jhc2VDb2NvYS5tbQppbmRleCBkMjFkOTlkODYxYjhmYTkyODJlOTFhOWFhNGEzMDFmOGZi
NjRkMTc3Li40Nzc0Y2UwOGE1YjhiNTBmNjRhMTYyMDJmNTM4YjRmNGY3ZWYyZTQ4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL1NldHRpbmdzQmFzZUNvY29hLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvU2V0dGluZ3NCYXNlQ29jb2EubW0KQEAgLTQzLDE1
ICs0MywxNSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHZvaWQgU2V0dGluZ3NCYXNlOjppbml0
aWFsaXplRGVmYXVsdEZvbnRGYW1pbGllcygpCiB7Ci0gICAgc2V0U3RhbmRhcmRGb250RmFtaWx5
KCJTb25ndGkgVEMiLCBVU0NSSVBUX1RSQURJVElPTkFMX0hBTik7Ci0gICAgc2V0U3RhbmRhcmRG
b250RmFtaWx5KCJTb25ndGkgU0MiLCBVU0NSSVBUX1NJTVBMSUZJRURfSEFOKTsKLSAgICBzZXRT
dGFuZGFyZEZvbnRGYW1pbHkoIkhpcmFnaW5vIE1pbmNobyBQcm9OIiwgVVNDUklQVF9LQVRBS0FO
QV9PUl9ISVJBR0FOQSk7Ci0gICAgc2V0U3RhbmRhcmRGb250RmFtaWx5KCJBcHBsZU15dW5nam8i
LCBVU0NSSVBUX0hBTkdVTCk7Ci0KLSAgICBzZXRTdGFuZGFyZEZvbnRGYW1pbHkoIlRpbWVzIiwg
VVNDUklQVF9DT01NT04pOwotICAgIHNldEZpeGVkRm9udEZhbWlseSgiQ291cmllciIsIFVTQ1JJ
UFRfQ09NTU9OKTsKLSAgICBzZXRTZXJpZkZvbnRGYW1pbHkoIlRpbWVzIiwgVVNDUklQVF9DT01N
T04pOwotICAgIHNldFNhbnNTZXJpZkZvbnRGYW1pbHkoIkhlbHZldGljYSIsIFVTQ1JJUFRfQ09N
TU9OKTsKKyAgICBzZXRTdGFuZGFyZEZvbnRGYW1pbHkoIlNvbmd0aSBUQyJfcywgVVNDUklQVF9U
UkFESVRJT05BTF9IQU4pOworICAgIHNldFN0YW5kYXJkRm9udEZhbWlseSgiU29uZ3RpIFNDIl9z
LCBVU0NSSVBUX1NJTVBMSUZJRURfSEFOKTsKKyAgICBzZXRTdGFuZGFyZEZvbnRGYW1pbHkoIkhp
cmFnaW5vIE1pbmNobyBQcm9OIl9zLCBVU0NSSVBUX0tBVEFLQU5BX09SX0hJUkFHQU5BKTsKKyAg
ICBzZXRTdGFuZGFyZEZvbnRGYW1pbHkoIkFwcGxlTXl1bmdqbyJfcywgVVNDUklQVF9IQU5HVUwp
OworCisgICAgc2V0U3RhbmRhcmRGb250RmFtaWx5KCJUaW1lcyJfcywgVVNDUklQVF9DT01NT04p
OworICAgIHNldEZpeGVkRm9udEZhbWlseSgiQ291cmllciJfcywgVVNDUklQVF9DT01NT04pOwor
ICAgIHNldFNlcmlmRm9udEZhbWlseSgiVGltZXMiX3MsIFVTQ1JJUFRfQ09NTU9OKTsKKyAgICBz
ZXRTYW5zU2VyaWZGb250RmFtaWx5KCJIZWx2ZXRpY2EiX3MsIFVTQ1JJUFRfQ09NTU9OKTsKIH0K
IAogYm9vbCBTZXR0aW5nc0Jhc2U6OnBsYXRmb3JtRGVmYXVsdE1lZGlhU291cmNlRW5hYmxlZCgp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9QYWdlTWFjLm1tIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9tYWMvUGFnZU1hYy5tbQppbmRleCA0NDlhOGZmNmNkNjk0ZDI0YzVhZjE0
YmRlYWY1NGM2MjRjMjJjMTFiLi45ZjJkM2Y1ZmQzZGY3ZmM2NWI4ZjJiZDUyY2M2OWYyMmJiMWJh
Y2U3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9QYWdlTWFjLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1BhZ2VNYWMubW0KQEAgLTU3LDE1ICs1NywxNSBAQCB2
b2lkIFBhZ2U6OnBsYXRmb3JtSW5pdGlhbGl6ZSgpCiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFn
IG9uY2VGbGFnOwogICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbXSB7CiAjaWYgRU5BQkxF
KFRSRUVfREVCVUdHSU5HKQotICAgICAgICBQQUw6OnJlZ2lzdGVyTm90aWZ5Q2FsbGJhY2soImNv
bS5hcHBsZS5XZWJLaXQuc2hvd1JlbmRlclRyZWUiLCBwcmludFJlbmRlclRyZWVGb3JMaXZlRG9j
dW1lbnRzKTsKLSAgICAgICAgUEFMOjpyZWdpc3Rlck5vdGlmeUNhbGxiYWNrKCJjb20uYXBwbGUu
V2ViS2l0LnNob3dMYXllclRyZWUiLCBwcmludExheWVyVHJlZUZvckxpdmVEb2N1bWVudHMpOwot
ICAgICAgICBQQUw6OnJlZ2lzdGVyTm90aWZ5Q2FsbGJhY2soImNvbS5hcHBsZS5XZWJLaXQuc2hv
d0dyYXBoaWNzTGF5ZXJUcmVlIiwgcHJpbnRHcmFwaGljc0xheWVyVHJlZUZvckxpdmVEb2N1bWVu
dHMpOworICAgICAgICBQQUw6OnJlZ2lzdGVyTm90aWZ5Q2FsbGJhY2soImNvbS5hcHBsZS5XZWJL
aXQuc2hvd1JlbmRlclRyZWUiX3MsIHByaW50UmVuZGVyVHJlZUZvckxpdmVEb2N1bWVudHMpOwor
ICAgICAgICBQQUw6OnJlZ2lzdGVyTm90aWZ5Q2FsbGJhY2soImNvbS5hcHBsZS5XZWJLaXQuc2hv
d0xheWVyVHJlZSJfcywgcHJpbnRMYXllclRyZWVGb3JMaXZlRG9jdW1lbnRzKTsKKyAgICAgICAg
UEFMOjpyZWdpc3Rlck5vdGlmeUNhbGxiYWNrKCJjb20uYXBwbGUuV2ViS2l0LnNob3dHcmFwaGlj
c0xheWVyVHJlZSJfcywgcHJpbnRHcmFwaGljc0xheWVyVHJlZUZvckxpdmVEb2N1bWVudHMpOwog
I2lmIEVOQUJMRShMQVlPVVRfRk9STUFUVElOR19DT05URVhUKQotICAgICAgICBQQUw6OnJlZ2lz
dGVyTm90aWZ5Q2FsbGJhY2soImNvbS5hcHBsZS5XZWJLaXQuc2hvd0xheW91dFRyZWUiLCBMYXlv
dXQ6OnByaW50TGF5b3V0VHJlZUZvckxpdmVEb2N1bWVudHMpOworICAgICAgICBQQUw6OnJlZ2lz
dGVyTm90aWZ5Q2FsbGJhY2soImNvbS5hcHBsZS5XZWJLaXQuc2hvd0xheW91dFRyZWUiX3MsIExh
eW91dDo6cHJpbnRMYXlvdXRUcmVlRm9yTGl2ZURvY3VtZW50cyk7CiAjZW5kaWYKICNlbmRpZiAv
LyBFTkFCTEUoVFJFRV9ERUJVR0dJTkcpCiAKLSAgICAgICAgUEFMOjpyZWdpc3Rlck5vdGlmeUNh
bGxiYWNrKCJjb20uYXBwbGUuV2ViS2l0LnNob3dBbGxEb2N1bWVudHMiLCBbXSB7CisgICAgICAg
IFBBTDo6cmVnaXN0ZXJOb3RpZnlDYWxsYmFjaygiY29tLmFwcGxlLldlYktpdC5zaG93QWxsRG9j
dW1lbnRzIl9zLCBbXSB7CiAgICAgICAgICAgICB1bnNpZ25lZCBudW1QYWdlcyA9IDA7CiAgICAg
ICAgICAgICBQYWdlOjpmb3JFYWNoUGFnZShbJm51bVBhZ2VzXShQYWdlJikgewogICAgICAgICAg
ICAgICAgICsrbnVtUGFnZXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9M
b2NhbGl6ZWRTdHJpbmdzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0
cmluZ3MuY3BwCmluZGV4IGNmNWQwZTAyNmNkZjgzMzcyMmU1MWNhYzBiY2M3ZjEzNGE2MjVlOWUu
LjhhN2U4ZWY2YmNlMjNjMWY4NGFkNDAzMDZjZDZmNWY1YzkwZTU4ZGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwCkBAIC02NTUsNyArNjU1LDcgQEAg
U3RyaW5nIEFYV2Vla0ZpZWxkVGV4dCgpCiAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIndlZWsg
YW5kIHllYXIgZmllbGQiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBhIHRp
bWUgZmllbGQuIik7CiB9CiAKLVN0cmluZyBBWEFSSUFDb250ZW50R3JvdXBUZXh0KGNvbnN0IFN0
cmluZyYgYXJpYVR5cGUpCitTdHJpbmcgQVhBUklBQ29udGVudEdyb3VwVGV4dChTdHJpbmdWaWV3
IGFyaWFUeXBlKQogewogICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQUFwcGxpY2F0aW9uQWxlcnQi
KQogICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiYWxlcnQiLCAiQW4gQVJJQSBhY2Nlc3Np
YmlsaXR5IGdyb3VwIHRoYXQgYWN0cyBhcyBhbiBhbGVydC4iKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaAppbmRleCBiMTgxZjFlZDhhMGI4OGMxZmNmY2QwZTg2
MTcyMzRiYjI5NDkzZGFlLi5hMjBiNTg4ZTY5MzcxNjlhMTA2N2QzOWQ3YzEwOWYzNDU5ZThjMzk2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oCkBAIC0xOTUs
NyArMTk1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIFN0cmluZyBBWE1vbnRoRmllbGRU
ZXh0KCk7CiAgICAgU3RyaW5nIEFYTnVtYmVyRmllbGRUZXh0KCk7CiAgICAgU3RyaW5nIEFYV2Vl
a0ZpZWxkVGV4dCgpOwotICAgIFN0cmluZyBBWEFSSUFDb250ZW50R3JvdXBUZXh0KGNvbnN0IFN0
cmluZyYgYXJpYVR5cGUpOworICAgIFN0cmluZyBBWEFSSUFDb250ZW50R3JvdXBUZXh0KFN0cmlu
Z1ZpZXcgYXJpYVR5cGUpOwogICAgIFN0cmluZyBBWEhvcml6b250YWxSdWxlRGVzY3JpcHRpb25U
ZXh0KCk7CiAgICAgU3RyaW5nIEFYTWFya1RleHQoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFz
dGVib2FyZC5oCmluZGV4IGFlYmEwYTNiNDRkODY2NmVjZGIyMjFiMzM1NzBkNGNjZGE1NjY0Mjku
LjFjZjQxMDhmMDhlNjMwNjU4ZjlhM2UzMWZlNGJjZTk2M2UzZTRjY2EgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9QYXN0ZWJvYXJkLmgKQEAgLTM3NSw5ICszNzUsOSBAQCBleHRlcm4gTlNTdHJpbmcg
KlVJQ29sb3JQYm9hcmRUeXBlOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShNQUMpCi1leHRlcm4g
Y29uc3QgY2hhciogY29uc3QgV2ViQXJjaGl2ZVBib2FyZFR5cGU7Ci1leHRlcm4gY29uc3QgY2hh
ciogY29uc3QgV2ViVVJMTmFtZVBib2FyZFR5cGU7Ci1leHRlcm4gY29uc3QgY2hhciogY29uc3Qg
V2ViVVJMc1dpdGhUaXRsZXNQYm9hcmRUeXBlOworZXh0ZXJuIGNvbnN0IEFTQ0lJTGl0ZXJhbCBX
ZWJBcmNoaXZlUGJvYXJkVHlwZTsKK2V4dGVybiBjb25zdCBBU0NJSUxpdGVyYWwgV2ViVVJMTmFt
ZVBib2FyZFR5cGU7CitleHRlcm4gY29uc3QgQVNDSUlMaXRlcmFsIFdlYlVSTHNXaXRoVGl0bGVz
UGJvYXJkVHlwZTsKICNlbmRpZgogCiAjaWYgIVBMQVRGT1JNKEdUSykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmRDdXN0b21EYXRhLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkQ3VzdG9tRGF0YS5oCmluZGV4IDJiZTgxZDI5MzhhM2Ri
ZDA5MDI2Y2E2ZWM2NGFjMzI4N2U2YWJjMDMuLjI1NmY0NDU0MjkwMzJiYjQyZjMxM2Q5MjBhZmJm
ZmQxYjAyM2E3N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9h
cmRDdXN0b21EYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZEN1
c3RvbURhdGEuaApAQCAtNzYsNyArNzYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjbGVhcihjb25z
dCBTdHJpbmcmIHR5cGUpOwogCiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgV0VCQ09SRV9FWFBP
UlQgc3RhdGljIGNvbnN0IGNoYXIqIGNvY29hVHlwZSgpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0
YXRpYyBBU0NJSUxpdGVyYWwgY29jb2FUeXBlKCk7CiAjZWxpZiBQTEFURk9STShHVEspCiAgICAg
c3RhdGljIGNvbnN0IGNoYXIqIGd0a1R5cGUoKSB7IHJldHVybiAib3JnLndlYmtpdGd0ay5XZWJL
aXQuY3VzdG9tLXBhc3RlYm9hcmQtZGF0YSI7IH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvTWVkaWFTZXNzaW9uTWFuYWdl
ckNvY29hLm1tCmluZGV4IGEwZTkwMmYxMmNlN2ViMTdjNzc2ZDQzYzEzNWM4NTMyNmM3NWNmZTAu
Ljk2Y2RmYWEzNjIxYzVjOTYyZGEwZTA1MzAyZDRlYTlkOWNkNzA4N2MgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL01lZGlhU2Vzc2lvbk1hbmFnZXJDb2Nv
YS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9NZWRpYVNlc3Np
b25NYW5hZ2VyQ29jb2EubW0KQEAgLTQ1Miw4ICs0NTIsOCBAQCB2b2lkIE1lZGlhU2Vzc2lvbk1h
bmFnZXJDb2NvYTo6dXBkYXRlTm93UGxheWluZ0luZm8oKQogCiAgICAgaWYgKG1fbm93UGxheWlu
Z01hbmFnZXItPnNldE5vd1BsYXlpbmdJbmZvKCpub3dQbGF5aW5nSW5mbykpIHsKICNpZmRlZiBM
T0dfRElTQUJMRUQKLSAgICAgICAgU3RyaW5nIHNyYyA9ICJzcmMiOwotICAgICAgICBTdHJpbmcg
dGl0bGUgPSAidGl0bGUiOworICAgICAgICBTdHJpbmcgc3JjID0gInNyYyJfczsKKyAgICAgICAg
U3RyaW5nIHRpdGxlID0gInRpdGxlIl9zOwogI2Vsc2UKICAgICAgICAgU3RyaW5nIHNyYyA9IG5v
d1BsYXlpbmdJbmZvLT5hcnR3b3JrID8gbm93UGxheWluZ0luZm8tPmFydHdvcmstPnNyYyA6IFN0
cmluZygpOwogICAgICAgICBTdHJpbmcgdGl0bGUgPSBub3dQbGF5aW5nSW5mby0+dGl0bGU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9LZXlFdmVudENvY29hLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvS2V5RXZlbnRDb2NvYS5tbQppbmRleCBm
NGVlZTY1ZjA5OTNiOWQ0ZDliZDZmZTllZGE3YWQwYTYxNTM3MzUyLi4xYzVlMjQzYzg1MmEzODUw
OWM4OWNjNTkxOWNmYzE0MjA2NzE5OWMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jb2NvYS9LZXlFdmVudENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2NvY29hL0tleUV2ZW50Q29jb2EubW0KQEAgLTIyMCw3ICsyMjAsNyBAQCBTdHJpbmcga2V5SWRl
bnRpZmllckZvckNoYXJDb2RlKHVuaWNoYXIgY2hhckNvZGUpCiAKICAgICAgICAgLy8gIkFsdCIK
ICAgICAgICAgY2FzZSBOU01lbnVGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiQWx0
IjsKKyAgICAgICAgICAgIHJldHVybiAiQWx0Il9zOwogCiAgICAgICAgIC8vICJBcHBzIgogICAg
ICAgICAvLyAiQnJvd3NlckJhY2siCkBAIC0yMzMsNyArMjMzLDcgQEAgU3RyaW5nIGtleUlkZW50
aWZpZXJGb3JDaGFyQ29kZSh1bmljaGFyIGNoYXJDb2RlKQogCiAgICAgICAgIC8vICJDbGVhciIK
ICAgICAgICAgY2FzZSBOU0NsZWFyTGluZUZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJu
ICJDbGVhciI7CisgICAgICAgICAgICByZXR1cm4gIkNsZWFyIl9zOwogCiAgICAgICAgIC8vICJD
b2RlSW5wdXQiCiAgICAgICAgIC8vICJDb21wb3NlIgpAQCAtMjQ1LDEwMCArMjQ1LDEwMCBAQCBT
dHJpbmcga2V5SWRlbnRpZmllckZvckNoYXJDb2RlKHVuaWNoYXIgY2hhckNvZGUpCiAKICAgICAg
ICAgLy8gIkRvd24iCiAgICAgICAgIGNhc2UgTlNEb3duQXJyb3dGdW5jdGlvbktleToKLSAgICAg
ICAgICAgIHJldHVybiAiRG93biI7CisgICAgICAgICAgICByZXR1cm4gIkRvd24iX3M7CiAgICAg
ICAgIC8vICJFbmQiCiAgICAgICAgIGNhc2UgTlNFbmRGdW5jdGlvbktleToKLSAgICAgICAgICAg
IHJldHVybiAiRW5kIjsKKyAgICAgICAgICAgIHJldHVybiAiRW5kIl9zOwogICAgICAgICAvLyAi
RW50ZXIiCiAgICAgICAgIGNhc2UgMHgzOiBjYXNlIDB4QTogY2FzZSAweEQ6IC8vIE1hY2ludG9z
aCBjYWxscyB0aGUgb25lIG9uIHRoZSBtYWluIGtleWJvYXJkIFJldHVybiwgYnV0IFdpbmRvd3Mg
Y2FsbHMgaXQgRW50ZXIsIHNvIHdlJ2xsIGRvIHRoZSBzYW1lIGZvciB0aGUgRE9NCi0gICAgICAg
ICAgICByZXR1cm4gIkVudGVyIjsKKyAgICAgICAgICAgIHJldHVybiAiRW50ZXIiX3M7CiAKICAg
ICAgICAgLy8gIkVyYXNlRW9mIgogCiAgICAgICAgIC8vICJFeGVjdXRlIgogICAgICAgICBjYXNl
IE5TRXhlY3V0ZUZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJFeGVjdXRlIjsKKyAg
ICAgICAgICAgIHJldHVybiAiRXhlY3V0ZSJfczsKIAogICAgICAgICAvLyAiRXhzZWwiCiAKICAg
ICAgICAgLy8gIkYxIgogICAgICAgICBjYXNlIE5TRjFGdW5jdGlvbktleToKLSAgICAgICAgICAg
IHJldHVybiAiRjEiOworICAgICAgICAgICAgcmV0dXJuICJGMSJfczsKICAgICAgICAgLy8gIkYy
IgogICAgICAgICBjYXNlIE5TRjJGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiRjIi
OworICAgICAgICAgICAgcmV0dXJuICJGMiJfczsKICAgICAgICAgLy8gIkYzIgogICAgICAgICBj
YXNlIE5TRjNGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiRjMiOworICAgICAgICAg
ICAgcmV0dXJuICJGMyJfczsKICAgICAgICAgLy8gIkY0IgogICAgICAgICBjYXNlIE5TRjRGdW5j
dGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiRjQiOworICAgICAgICAgICAgcmV0dXJuICJG
NCJfczsKICAgICAgICAgLy8gIkY1IgogICAgICAgICBjYXNlIE5TRjVGdW5jdGlvbktleToKLSAg
ICAgICAgICAgIHJldHVybiAiRjUiOworICAgICAgICAgICAgcmV0dXJuICJGNSJfczsKICAgICAg
ICAgLy8gIkY2IgogICAgICAgICBjYXNlIE5TRjZGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJl
dHVybiAiRjYiOworICAgICAgICAgICAgcmV0dXJuICJGNiJfczsKICAgICAgICAgLy8gIkY3Igog
ICAgICAgICBjYXNlIE5TRjdGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiRjciOwor
ICAgICAgICAgICAgcmV0dXJuICJGNyJfczsKICAgICAgICAgLy8gIkY4IgogICAgICAgICBjYXNl
IE5TRjhGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiRjgiOworICAgICAgICAgICAg
cmV0dXJuICJGOCJfczsKICAgICAgICAgLy8gIkY5IgogICAgICAgICBjYXNlIE5TRjlGdW5jdGlv
bktleToKLSAgICAgICAgICAgIHJldHVybiAiRjkiOworICAgICAgICAgICAgcmV0dXJuICJGOSJf
czsKICAgICAgICAgLy8gIkYxMCIKICAgICAgICAgY2FzZSBOU0YxMEZ1bmN0aW9uS2V5OgotICAg
ICAgICAgICAgcmV0dXJuICJGMTAiOworICAgICAgICAgICAgcmV0dXJuICJGMTAiX3M7CiAgICAg
ICAgIC8vICJGMTEiCiAgICAgICAgIGNhc2UgTlNGMTFGdW5jdGlvbktleToKLSAgICAgICAgICAg
IHJldHVybiAiRjExIjsKKyAgICAgICAgICAgIHJldHVybiAiRjExIl9zOwogICAgICAgICAvLyAi
RjEyIgogICAgICAgICBjYXNlIE5TRjEyRnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4g
IkYxMiI7CisgICAgICAgICAgICByZXR1cm4gIkYxMiJfczsKICAgICAgICAgLy8gIkYxMyIKICAg
ICAgICAgY2FzZSBOU0YxM0Z1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJGMTMiOwor
ICAgICAgICAgICAgcmV0dXJuICJGMTMiX3M7CiAgICAgICAgIC8vICJGMTQiCiAgICAgICAgIGNh
c2UgTlNGMTRGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiRjE0IjsKKyAgICAgICAg
ICAgIHJldHVybiAiRjE0Il9zOwogICAgICAgICAvLyAiRjE1IgogICAgICAgICBjYXNlIE5TRjE1
RnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkYxNSI7CisgICAgICAgICAgICByZXR1
cm4gIkYxNSJfczsKICAgICAgICAgLy8gIkYxNiIKICAgICAgICAgY2FzZSBOU0YxNkZ1bmN0aW9u
S2V5OgotICAgICAgICAgICAgcmV0dXJuICJGMTYiOworICAgICAgICAgICAgcmV0dXJuICJGMTYi
X3M7CiAgICAgICAgIC8vICJGMTciCiAgICAgICAgIGNhc2UgTlNGMTdGdW5jdGlvbktleToKLSAg
ICAgICAgICAgIHJldHVybiAiRjE3IjsKKyAgICAgICAgICAgIHJldHVybiAiRjE3Il9zOwogICAg
ICAgICAvLyAiRjE4IgogICAgICAgICBjYXNlIE5TRjE4RnVuY3Rpb25LZXk6Ci0gICAgICAgICAg
ICByZXR1cm4gIkYxOCI7CisgICAgICAgICAgICByZXR1cm4gIkYxOCJfczsKICAgICAgICAgLy8g
IkYxOSIKICAgICAgICAgY2FzZSBOU0YxOUZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJu
ICJGMTkiOworICAgICAgICAgICAgcmV0dXJuICJGMTkiX3M7CiAgICAgICAgIC8vICJGMjAiCiAg
ICAgICAgIGNhc2UgTlNGMjBGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiRjIwIjsK
KyAgICAgICAgICAgIHJldHVybiAiRjIwIl9zOwogICAgICAgICAvLyAiRjIxIgogICAgICAgICBj
YXNlIE5TRjIxRnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkYyMSI7CisgICAgICAg
ICAgICByZXR1cm4gIkYyMSJfczsKICAgICAgICAgLy8gIkYyMiIKICAgICAgICAgY2FzZSBOU0Yy
MkZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJGMjIiOworICAgICAgICAgICAgcmV0
dXJuICJGMjIiX3M7CiAgICAgICAgIC8vICJGMjMiCiAgICAgICAgIGNhc2UgTlNGMjNGdW5jdGlv
bktleToKLSAgICAgICAgICAgIHJldHVybiAiRjIzIjsKKyAgICAgICAgICAgIHJldHVybiAiRjIz
Il9zOwogICAgICAgICAvLyAiRjI0IgogICAgICAgICBjYXNlIE5TRjI0RnVuY3Rpb25LZXk6Ci0g
ICAgICAgICAgICByZXR1cm4gIkYyNCI7CisgICAgICAgICAgICByZXR1cm4gIkYyNCJfczsKIAog
ICAgICAgICAvLyAiRmluYWxNb2RlIgogCiAgICAgICAgIC8vICJGaW5kIgogICAgICAgICBjYXNl
IE5TRmluZEZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJGaW5kIjsKKyAgICAgICAg
ICAgIHJldHVybiAiRmluZCJfczsKIAogICAgICAgICAvLyAiRnVsbFdpZHRoIgogICAgICAgICAv
LyAiSGFsZldpZHRoIgpAQCAtMzQ3LDE2ICszNDcsMTYgQEAgU3RyaW5nIGtleUlkZW50aWZpZXJG
b3JDaGFyQ29kZSh1bmljaGFyIGNoYXJDb2RlKQogCiAgICAgICAgIC8vICJIZWxwIgogICAgICAg
ICBjYXNlIE5TSGVscEZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJIZWxwIjsKKyAg
ICAgICAgICAgIHJldHVybiAiSGVscCJfczsKIAogICAgICAgICAvLyAiSGlyYWdhbmEiCiAKICAg
ICAgICAgLy8gIkhvbWUiCiAgICAgICAgIGNhc2UgTlNIb21lRnVuY3Rpb25LZXk6Ci0gICAgICAg
ICAgICByZXR1cm4gIkhvbWUiOworICAgICAgICAgICAgcmV0dXJuICJIb21lIl9zOwogICAgICAg
ICAvLyAiSW5zZXJ0IgogICAgICAgICBjYXNlIE5TSW5zZXJ0RnVuY3Rpb25LZXk6Ci0gICAgICAg
ICAgICByZXR1cm4gIkluc2VydCI7CisgICAgICAgICAgICByZXR1cm4gIkluc2VydCJfczsKIAog
ICAgICAgICAvLyAiSmFwYW5lc2VIaXJhZ2FuYSIKICAgICAgICAgLy8gIkphcGFuZXNlS2F0YWth
bmEiCkBAIC0zNzEsNyArMzcxLDcgQEAgU3RyaW5nIGtleUlkZW50aWZpZXJGb3JDaGFyQ29kZSh1
bmljaGFyIGNoYXJDb2RlKQogCiAgICAgICAgIC8vICJMZWZ0IgogICAgICAgICBjYXNlIE5TTGVm
dEFycm93RnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkxlZnQiOworICAgICAgICAg
ICAgcmV0dXJuICJMZWZ0Il9zOwogCiAgICAgICAgIC8vICJNZXRhIgogICAgICAgICAvLyAiTWVk
aWFOZXh0VHJhY2siCkBAIC0zODEsNTkgKzM4MSw1OSBAQCBTdHJpbmcga2V5SWRlbnRpZmllckZv
ckNoYXJDb2RlKHVuaWNoYXIgY2hhckNvZGUpCiAKICAgICAgICAgLy8gIk1vZGVDaGFuZ2UiCiAg
ICAgICAgIGNhc2UgTlNNb2RlU3dpdGNoRnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4g
Ik1vZGVDaGFuZ2UiOworICAgICAgICAgICAgcmV0dXJuICJNb2RlQ2hhbmdlIl9zOwogCiAgICAg
ICAgIC8vICJOb25jb252ZXJ0IgogICAgICAgICAvLyAiTnVtTG9jayIKIAogICAgICAgICAvLyAi
UGFnZURvd24iCiAgICAgICAgIGNhc2UgTlNQYWdlRG93bkZ1bmN0aW9uS2V5OgotICAgICAgICAg
ICAgcmV0dXJuICJQYWdlRG93biI7CisgICAgICAgICAgICByZXR1cm4gIlBhZ2VEb3duIl9zOwog
ICAgICAgICAvLyAiUGFnZVVwIgogICAgICAgICBjYXNlIE5TUGFnZVVwRnVuY3Rpb25LZXk6Ci0g
ICAgICAgICAgICByZXR1cm4gIlBhZ2VVcCI7CisgICAgICAgICAgICByZXR1cm4gIlBhZ2VVcCJf
czsKIAogICAgICAgICAvLyAiUGFzdGUiCiAKICAgICAgICAgLy8gIlBhdXNlIgogICAgICAgICBj
YXNlIE5TUGF1c2VGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiUGF1c2UiOworICAg
ICAgICAgICAgcmV0dXJuICJQYXVzZSJfczsKIAogICAgICAgICAvLyAiUGxheSIKICAgICAgICAg
Ly8gIlByZXZpb3VzQ2FuZGlkYXRlIgogCiAgICAgICAgIC8vICJQcmludFNjcmVlbiIKICAgICAg
ICAgY2FzZSBOU1ByaW50U2NyZWVuRnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIlBy
aW50U2NyZWVuIjsKKyAgICAgICAgICAgIHJldHVybiAiUHJpbnRTY3JlZW4iX3M7CiAKICAgICAg
ICAgLy8gIlByb2Nlc3MiCiAgICAgICAgIC8vICJQcm9wcyIKIAogICAgICAgICAvLyAiUmlnaHQi
CiAgICAgICAgIGNhc2UgTlNSaWdodEFycm93RnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1
cm4gIlJpZ2h0IjsKKyAgICAgICAgICAgIHJldHVybiAiUmlnaHQiX3M7CiAKICAgICAgICAgLy8g
IlJvbWFuQ2hhcmFjdGVycyIKIAogICAgICAgICAvLyAiU2Nyb2xsIgogICAgICAgICBjYXNlIE5T
U2Nyb2xsTG9ja0Z1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJTY3JvbGwiOworICAg
ICAgICAgICAgcmV0dXJuICJTY3JvbGwiX3M7CiAgICAgICAgIC8vICJTZWxlY3QiCiAgICAgICAg
IGNhc2UgTlNTZWxlY3RGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiU2VsZWN0IjsK
KyAgICAgICAgICAgIHJldHVybiAiU2VsZWN0Il9zOwogCiAgICAgICAgIC8vICJTZWxlY3RNZWRp
YSIKICAgICAgICAgLy8gIlNoaWZ0IgogCiAgICAgICAgIC8vICJTdG9wIgogICAgICAgICBjYXNl
IE5TU3RvcEZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJTdG9wIjsKKyAgICAgICAg
ICAgIHJldHVybiAiU3RvcCJfczsKICAgICAgICAgLy8gIlVwIgogICAgICAgICBjYXNlIE5TVXBB
cnJvd0Z1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJVcCI7CisgICAgICAgICAgICBy
ZXR1cm4gIlVwIl9zOwogICAgICAgICAvLyAiVW5kbyIKICAgICAgICAgY2FzZSBOU1VuZG9GdW5j
dGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiVW5kbyI7CisgICAgICAgICAgICByZXR1cm4g
IlVuZG8iX3M7CiAKICAgICAgICAgLy8gIlZvbHVtZURvd24iCiAgICAgICAgIC8vICJWb2x1bWVN
dXRlIgpAQCAtNDQzLDM4ICs0NDMsMzggQEAgU3RyaW5nIGtleUlkZW50aWZpZXJGb3JDaGFyQ29k
ZSh1bmljaGFyIGNoYXJDb2RlKQogCiAgICAgICAgIC8vIE1vcmUgZnVuY3Rpb24ga2V5cywgbm90
IGluIHRoZSBrZXkgaWRlbnRpZmllciBzcGVjaWZpY2F0aW9uLgogICAgICAgICBjYXNlIE5TRjI1
RnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkYyNSI7CisgICAgICAgICAgICByZXR1
cm4gIkYyNSJfczsKICAgICAgICAgY2FzZSBOU0YyNkZ1bmN0aW9uS2V5OgotICAgICAgICAgICAg
cmV0dXJuICJGMjYiOworICAgICAgICAgICAgcmV0dXJuICJGMjYiX3M7CiAgICAgICAgIGNhc2Ug
TlNGMjdGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiRjI3IjsKKyAgICAgICAgICAg
IHJldHVybiAiRjI3Il9zOwogICAgICAgICBjYXNlIE5TRjI4RnVuY3Rpb25LZXk6Ci0gICAgICAg
ICAgICByZXR1cm4gIkYyOCI7CisgICAgICAgICAgICByZXR1cm4gIkYyOCJfczsKICAgICAgICAg
Y2FzZSBOU0YyOUZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJGMjkiOworICAgICAg
ICAgICAgcmV0dXJuICJGMjkiX3M7CiAgICAgICAgIGNhc2UgTlNGMzBGdW5jdGlvbktleToKLSAg
ICAgICAgICAgIHJldHVybiAiRjMwIjsKKyAgICAgICAgICAgIHJldHVybiAiRjMwIl9zOwogICAg
ICAgICBjYXNlIE5TRjMxRnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkYzMSI7Cisg
ICAgICAgICAgICByZXR1cm4gIkYzMSJfczsKICAgICAgICAgY2FzZSBOU0YzMkZ1bmN0aW9uS2V5
OgotICAgICAgICAgICAgcmV0dXJuICJGMzIiOworICAgICAgICAgICAgcmV0dXJuICJGMzIiX3M7
CiAgICAgICAgIGNhc2UgTlNGMzNGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiRjMz
IjsKKyAgICAgICAgICAgIHJldHVybiAiRjMzIl9zOwogICAgICAgICBjYXNlIE5TRjM0RnVuY3Rp
b25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkYzNCI7CisgICAgICAgICAgICByZXR1cm4gIkYz
NCJfczsKICAgICAgICAgY2FzZSBOU0YzNUZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJu
ICJGMzUiOworICAgICAgICAgICAgcmV0dXJuICJGMzUiX3M7CiAKICAgICAgICAgLy8gVHVybiAw
eDdGIGludG8gMHgwOCwgYmVjYXVzZSBiYWNrc3BhY2UgbmVlZHMgdG8gYWx3YXlzIGJlIDB4MDgu
CiAgICAgICAgIGNhc2UgMHg3RjoKLSAgICAgICAgICAgIHJldHVybiAiVSswMDA4IjsKKyAgICAg
ICAgICAgIHJldHVybiAiVSswMDA4Il9zOwogICAgICAgICAvLyBTdGFuZGFyZCBzYXlzIHRoYXQg
REVMIGJlY29tZXMgVSswMDdGLgogICAgICAgICBjYXNlIE5TRGVsZXRlRnVuY3Rpb25LZXk6Ci0g
ICAgICAgICAgICByZXR1cm4gIlUrMDA3RiI7CisgICAgICAgICAgICByZXR1cm4gIlUrMDA3RiJf
czsKIAogICAgICAgICAvLyBBbHdheXMgdXNlIDB4MDkgZm9yIHRhYiBpbnN0ZWFkIG9mIEFwcEtp
dCdzIGJhY2t0YWIgY2hhcmFjdGVyLgogICAgICAgICBjYXNlIE5TQmFja1RhYkNoYXJhY3RlcjoK
LSAgICAgICAgICAgIHJldHVybiAiVSswMDA5IjsKKyAgICAgICAgICAgIHJldHVybiAiVSswMDA5
Il9zOwogCiAgICAgICAgIGNhc2UgTlNCZWdpbkZ1bmN0aW9uS2V5OgogICAgICAgICBjYXNlIE5T
QnJlYWtGdW5jdGlvbktleToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nv
Y29hL1Bhc3RlYm9hcmRDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Bh
c3RlYm9hcmRDb2NvYS5tbQppbmRleCAwNjk2MWZiYTQ4YWQ5MWI0MjNiY2E5ODViNmMyZTVjNjIx
MDFmYzJmLi41OTg0MmYxMjY5YzViNWVkZjA5NWJkOWNiOGVlMzMyNmQ2ODdhZTFiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9QYXN0ZWJvYXJkQ29jb2EubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvUGFzdGVib2FyZENvY29hLm1tCkBAIC0x
MDQsMjUgKzEwNCwyNSBAQCBzdGF0aWMgY29uc3QgY2hhciogaW1hZ2VUeXBlVG9NSU1FVHlwZShJ
bWFnZVR5cGUgdHlwZSkKICAgICB9CiB9CiAKLXN0YXRpYyBjb25zdCBjaGFyKiBpbWFnZVR5cGVU
b0Zha2VGaWxlbmFtZShJbWFnZVR5cGUgdHlwZSkKK3N0YXRpYyBBU0NJSUxpdGVyYWwgaW1hZ2VU
eXBlVG9GYWtlRmlsZW5hbWUoSW1hZ2VUeXBlIHR5cGUpCiB7CiAgICAgc3dpdGNoICh0eXBlKSB7
CiAgICAgY2FzZSBJbWFnZVR5cGU6OkludmFsaWQ6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJh
bDo6bnVsbCgpOwogICAgIGNhc2UgSW1hZ2VUeXBlOjpUSUZGOgogI2lmIFBMQVRGT1JNKE1BQykK
LSAgICAgICAgcmV0dXJuICJpbWFnZS5wbmciOyAvLyBGb3IgV2ViIGNvbXBhdGliaWxpdHksIHdl
IHByZXRlbmQgdG8gaGF2ZSBQTkcgaW5zdGVhZC4KKyAgICAgICAgcmV0dXJuICJpbWFnZS5wbmci
X3M7IC8vIEZvciBXZWIgY29tcGF0aWJpbGl0eSwgd2UgcHJldGVuZCB0byBoYXZlIFBORyBpbnN0
ZWFkLgogI2Vsc2UKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHJldHVy
biBudWxscHRyOworICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsOjpudWxsKCk7CiAjZW5kaWYK
ICAgICBjYXNlIEltYWdlVHlwZTo6UE5HOgotICAgICAgICByZXR1cm4gImltYWdlLnBuZyI7Cisg
ICAgICAgIHJldHVybiAiaW1hZ2UucG5nIl9zOwogICAgIGNhc2UgSW1hZ2VUeXBlOjpKUEVHOgot
ICAgICAgICByZXR1cm4gImltYWdlLmpwZWciOworICAgICAgICByZXR1cm4gImltYWdlLmpwZWci
X3M7CiAgICAgY2FzZSBJbWFnZVR5cGU6OkdJRjoKLSAgICAgICAgcmV0dXJuICJpbWFnZS5naWYi
OworICAgICAgICByZXR1cm4gImltYWdlLmdpZiJfczsKICAgICB9CiB9CiAKQEAgLTIzNCw3ICsy
MzQsNyBAQCB2b2lkIFBhc3RlYm9hcmQ6OnJlYWQoUGFzdGVib2FyZEZpbGVSZWFkZXImIHJlYWRl
ciwgc3RkOjpvcHRpb25hbDxzaXplX3Q+IGl0ZW1JbgogICAgICAgICBmb3IgKGF1dG8gY29jb2FU
eXBlIDogaW5mby5wbGF0Zm9ybVR5cGVzQnlGaWRlbGl0eSkgewogICAgICAgICAgICAgYXV0byBp
bWFnZVR5cGUgPSBjb2NvYVR5cGVUb0ltYWdlVHlwZShjb2NvYVR5cGUpOwogICAgICAgICAgICAg
YXV0byogbWltZVR5cGUgPSBpbWFnZVR5cGVUb01JTUVUeXBlKGltYWdlVHlwZSk7Ci0gICAgICAg
ICAgICBpZiAoIW1pbWVUeXBlIHx8ICFyZWFkZXIuc2hvdWxkUmVhZEJ1ZmZlcihtaW1lVHlwZSkp
CisgICAgICAgICAgICBpZiAoIW1pbWVUeXBlIHx8ICFyZWFkZXIuc2hvdWxkUmVhZEJ1ZmZlcihT
dHJpbmcgeyBtaW1lVHlwZSB9KSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAg
ICAgIGF1dG8gYnVmZmVyID0gcmVhZEJ1ZmZlcihpdGVtSW5kZXgsIGNvY29hVHlwZSk7CiAjaWYg
UExBVEZPUk0oTUFDKQpAQCAtMjQyLDcgKzI0Miw3IEBAIHZvaWQgUGFzdGVib2FyZDo6cmVhZChQ
YXN0ZWJvYXJkRmlsZVJlYWRlciYgcmVhZGVyLCBzdGQ6Om9wdGlvbmFsPHNpemVfdD4gaXRlbUlu
CiAgICAgICAgICAgICAgICAgYnVmZmVyID0gY29udmVydFRJRkZUb1BORyhidWZmZXIucmVsZWFz
ZU5vbk51bGwoKSk7CiAjZW5kaWYKICAgICAgICAgICAgIGlmIChidWZmZXIpIHsKLSAgICAgICAg
ICAgICAgICByZWFkZXIucmVhZEJ1ZmZlcihpbWFnZVR5cGVUb0Zha2VGaWxlbmFtZShpbWFnZVR5
cGUpLCBtaW1lVHlwZSwgYnVmZmVyLnJlbGVhc2VOb25OdWxsKCkpOworICAgICAgICAgICAgICAg
IHJlYWRlci5yZWFkQnVmZmVyKGltYWdlVHlwZVRvRmFrZUZpbGVuYW1lKGltYWdlVHlwZSksIFN0
cmluZyB7IG1pbWVUeXBlIH0sIGJ1ZmZlci5yZWxlYXNlTm9uTnVsbCgpKTsKICAgICAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvUGFzdGVib2FyZEN1c3RvbURhdGFDb2NvYS5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Bhc3RlYm9hcmRDdXN0b21EYXRhQ29jb2EubW0K
aW5kZXggMjYyMTI4NDRmMjEwNGE3NzdjZjY1NTZkNzVhNmU1Y2FlYzk3M2RlOC4uM2RlNTBhMGU5
MmMyOTA0YzE5ZWI2ZGViZGE3MTY4MmVmYjZkNjc1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vY29jb2EvUGFzdGVib2FyZEN1c3RvbURhdGFDb2NvYS5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9QYXN0ZWJvYXJkQ3VzdG9tRGF0YUNvY29hLm1tCkBA
IC0zMCw5ICszMCw5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY29uc3QgY2hhciogUGFz
dGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpCitBU0NJSUxpdGVyYWwgUGFzdGVib2FyZEN1
c3RvbURhdGE6OmNvY29hVHlwZSgpCiB7Ci0gICAgcmV0dXJuICJjb20uYXBwbGUuV2ViS2l0LmN1
c3RvbS1wYXN0ZWJvYXJkLWRhdGEiOworICAgIHJldHVybiAiY29tLmFwcGxlLldlYktpdC5jdXN0
b20tcGFzdGVib2FyZC1kYXRhIl9zOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb3VyQ0MuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvdXJDQy5oCmluZGV4IGIzN2QwNTBlOWMwYzM2
NzcwN2RhZTBiNmFjY2IxYmMzN2Y4ZWFjMTMuLjY2ZmIzZGUwNzExNTEzMDY3ODhkYzEyNmMyM2Y0
YmM4NjEyNTgzNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ZvdXJDQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvdXJDQy5o
CkBAIC04NSw3ICs4NSw3IEBAIG5hbWVzcGFjZSBXVEYgewogdGVtcGxhdGU8dHlwZW5hbWU+IHN0
cnVjdCBMb2dBcmd1bWVudDsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgTG9nQXJndW1lbnQ8V2ViQ29y
ZTo6Rm91ckNDPiB7Ci0gICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhjb25zdCBXZWJDb3JlOjpG
b3VyQ0MmIGNvZGUpIHsgcmV0dXJuIGNvZGUuc3RyaW5nKCkuZGF0YSgpOyB9CisgICAgc3RhdGlj
IFN0cmluZyB0b1N0cmluZyhjb25zdCBXZWJDb3JlOjpGb3VyQ0MmIGNvZGUpIHsgcmV0dXJuIFN0
cmluZyB7IGNvZGUuc3RyaW5nKCkuZGF0YSgpIH07IH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdU
RgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3Jh
cGhpY3NDb250ZXh0R0xBTkdMRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmNwcAppbmRleCBjYzI5Y2ZiNDY3M2M2NjIx
MWRlMWE0MWVlMmJmNmEyZThiYTExZmQ1Li5lMmM5NjE1ZGQ0YWY4ZTUxMjdhOTE0ZjEwNzg5NDI2
YmY1ZWMwZGQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
bmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmNwcApAQCAtNTEwLDgg
KzUxMCw5IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6dmFsaWRhdGVEZXB0aFN0ZW5j
aWwoY29uc3QgY2hhciogcGFja2VkRGVwdGhTdGVuY2lsCiAgICAgLy8gRklYTUU6IFNpbmNlIHRo
ZSBjb25zdHJ1Y3RvcnMgb2YgdmFyaW91cyBwbGF0Zm9ybXMgYXJlIG5vdCBzaGFyZWQsIHdlIGlu
aXRpYWxpemUgdGhpcyBoZXJlLgogICAgIC8vIFVwb24gY29uc3RydWN0aW5nIHRoZSBjb250ZXh0
LCBhbHdheXMgaW5pdGlhbGl6ZSB0aGUgZXh0ZW5zaW9ucyB0aGF0IHRoZSBXZWJHTFJlbmRlcmlu
Z0NvbnRleHQqIHdpbGwKICAgICAvLyB1c2UgdG8gdHVybiBvbiBmZWF0dXJlIGZsYWdzLgotICAg
IGlmIChzdXBwb3J0c0V4dGVuc2lvbihwYWNrZWREZXB0aFN0ZW5jaWxFeHRlbnNpb24pKSB7Ci0g
ICAgICAgIGVuc3VyZUV4dGVuc2lvbkVuYWJsZWQocGFja2VkRGVwdGhTdGVuY2lsRXh0ZW5zaW9u
KTsKKyAgICBTdHJpbmcgcGFja2VkRGVwdGhTdGVuY2lsRXh0ZW5zaW9uU3RyaW5nIHsgcGFja2Vk
RGVwdGhTdGVuY2lsRXh0ZW5zaW9uIH07CisgICAgaWYgKHN1cHBvcnRzRXh0ZW5zaW9uKHBhY2tl
ZERlcHRoU3RlbmNpbEV4dGVuc2lvblN0cmluZykpIHsKKyAgICAgICAgZW5zdXJlRXh0ZW5zaW9u
RW5hYmxlZChwYWNrZWREZXB0aFN0ZW5jaWxFeHRlbnNpb25TdHJpbmcpOwogICAgICAgICBtX2lu
dGVybmFsRGVwdGhTdGVuY2lsRm9ybWF0ID0gR0xfREVQVEgyNF9TVEVOQ0lMOF9PRVM7CiAgICAg
fSBlbHNlCiAgICAgICAgIG1faW50ZXJuYWxEZXB0aFN0ZW5jaWxGb3JtYXQgPSBHTF9ERVBUSF9D
T01QT05FTlQxNjsKQEAgLTUyOCwxNyArNTI5LDE3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0R0xB
TkdMRTo6dmFsaWRhdGVEZXB0aFN0ZW5jaWwoY29uc3QgY2hhciogcGFja2VkRGVwdGhTdGVuY2ls
CiAKICAgICBpZiAoYXR0cnMuYW50aWFsaWFzKSB7CiAgICAgICAgIC8vIEZJWE1FOiBtdXN0IGFk
anVzdCB0aGlzIHdoZW4gdXBncmFkaW5nIHRvIFdlYkdMIDIuMCAvIE9wZW5HTCBFUyAzLjAgc3Vw
cG9ydC4KLSAgICAgICAgaWYgKCFzdXBwb3J0c0V4dGVuc2lvbigiR0xfQU5HTEVfZnJhbWVidWZm
ZXJfbXVsdGlzYW1wbGUiKSB8fCAhc3VwcG9ydHNFeHRlbnNpb24oIkdMX0FOR0xFX2ZyYW1lYnVm
ZmVyX2JsaXQiKSB8fCAhc3VwcG9ydHNFeHRlbnNpb24oIkdMX09FU19yZ2I4X3JnYmE4IikpIHsK
KyAgICAgICAgaWYgKCFzdXBwb3J0c0V4dGVuc2lvbigiR0xfQU5HTEVfZnJhbWVidWZmZXJfbXVs
dGlzYW1wbGUiX3MpIHx8ICFzdXBwb3J0c0V4dGVuc2lvbigiR0xfQU5HTEVfZnJhbWVidWZmZXJf
YmxpdCJfcykgfHwgIXN1cHBvcnRzRXh0ZW5zaW9uKCJHTF9PRVNfcmdiOF9yZ2JhOCJfcykpIHsK
ICAgICAgICAgICAgIGF0dHJzLmFudGlhbGlhcyA9IGZhbHNlOwogICAgICAgICAgICAgc2V0Q29u
dGV4dEF0dHJpYnV0ZXMoYXR0cnMpOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgZW5z
dXJlRXh0ZW5zaW9uRW5hYmxlZCgiR0xfQU5HTEVfZnJhbWVidWZmZXJfbXVsdGlzYW1wbGUiKTsK
LSAgICAgICAgICAgIGVuc3VyZUV4dGVuc2lvbkVuYWJsZWQoIkdMX0FOR0xFX2ZyYW1lYnVmZmVy
X2JsaXQiKTsKLSAgICAgICAgICAgIGVuc3VyZUV4dGVuc2lvbkVuYWJsZWQoIkdMX09FU19yZ2I4
X3JnYmE4Iik7CisgICAgICAgICAgICBlbnN1cmVFeHRlbnNpb25FbmFibGVkKCJHTF9BTkdMRV9m
cmFtZWJ1ZmZlcl9tdWx0aXNhbXBsZSJfcyk7CisgICAgICAgICAgICBlbnN1cmVFeHRlbnNpb25F
bmFibGVkKCJHTF9BTkdMRV9mcmFtZWJ1ZmZlcl9ibGl0Il9zKTsKKyAgICAgICAgICAgIGVuc3Vy
ZUV4dGVuc2lvbkVuYWJsZWQoIkdMX09FU19yZ2I4X3JnYmE4Il9zKTsKICAgICAgICAgfQogICAg
IH0gZWxzZSBpZiAoYXR0cnMucHJlc2VydmVEcmF3aW5nQnVmZmVyKSB7CiAgICAgICAgIC8vIE5l
ZWRlZCBmb3IgcHJlc2VydmVEcmF3aW5nQnVmZmVyOnRydWUgc3VwcG9ydCB3aXRob3V0IGFudGlh
bGlhc2luZy4KLSAgICAgICAgZW5zdXJlRXh0ZW5zaW9uRW5hYmxlZCgiR0xfQU5HTEVfZnJhbWVi
dWZmZXJfYmxpdCIpOworICAgICAgICBlbnN1cmVFeHRlbnNpb25FbmFibGVkKCJHTF9BTkdMRV9m
cmFtZWJ1ZmZlcl9ibGl0Il9zKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9DRE1Qcml2YXRlTWVkaWFTb3VyY2VB
VkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L0NETVByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KaW5kZXggMmRhZjhlYWFjOTA4Y2ViYmI5
NGRhMzMwNjQ0YTVlNzcxN2IzNjczOS4uYWVhMmU4YWI5OTAxOTU4MmU0ZGQ0OTM4ZTIwMzdmMDIw
NjVkMjQyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL0NETVByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0NETVByaXZhdGVNZWRpYVNvdXJj
ZUFWRk9iakMubW0KQEAgLTQ2LDcgKzQ2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBhdXRv
IENETVByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnBhcnNlS2V5U3lzdGVtKGNvbnN0IFN0cmlu
ZyYga2V5U3lzdGVtKSAtPiBzdGQ6Om9wdGlvbmFsPEtleVN5c3RlbVBhcmFtZXRlcnM+CiB7Ci0g
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJlZ3VsYXJFeHByZXNzaW9uPiBrZXlTeXN0ZW1SRSgi
XmNvbVxcLmFwcGxlXFwuZnBzXFwuWzIzXV9cXGQrKD86LFxcZCspKiQiLCBKU0M6OllhcnI6OlRl
eHRDYXNlSW5zZW5zaXRpdmUpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxSZWd1bGFyRXhw
cmVzc2lvbj4ga2V5U3lzdGVtUkUoIl5jb21cXC5hcHBsZVxcLmZwc1xcLlsyM11fXFxkKyg/Oixc
XGQrKSokIl9zLCBKU0M6OllhcnI6OlRleHRDYXNlSW5zZW5zaXRpdmUpOwogCiAgICAgaWYgKGtl
eVN5c3RlbVJFLmdldCgpLm1hdGNoKGtleVN5c3RlbSkgPCAwKQogICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbi5oCmluZGV4IGE4MWI4ZTIyNjlhNjhiNDM2YTUzMjYwNTViZTBmYWYxMDU3MDJj
MjEuLjAxMzJhMmY4NDc4YTZkZWE5N2U4ZWI5ZDdjYzc2YzBhYzVlZGY2NDcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgKQEAgLTMx
MSw3ICszMTEsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgTWVkaWFQbGF5ZXIqIHBsYXllcigpIHsgcmV0
dXJuIG1fcGxheWVyOyB9CiAgICAgY29uc3QgTWVkaWFQbGF5ZXIqIHBsYXllcigpIGNvbnN0IHsg
cmV0dXJuIG1fcGxheWVyOyB9CiAKLSAgICBTdHJpbmcgZW5naW5lRGVzY3JpcHRpb24oKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiAiQVZGb3VuZGF0aW9uIjsgfQorICAgIFN0cmluZyBlbmdpbmVE
ZXNjcmlwdGlvbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJBVkZvdW5kYXRpb24iX3M7IH0K
ICAgICBsb25nIHBsYXRmb3JtRXJyb3JDb2RlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gYXNz
ZXRFcnJvckNvZGUoKTsgfQogCiAgICAgdm9pZCB0cmFja01vZGVDaGFuZ2VkKCkgb3ZlcnJpZGU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9DRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETUluc3RhbmNlRmFp
clBsYXlTdHJlYW1pbmdBVkZPYmpDLm1tCmluZGV4IDIxYTI3OTkyZDIyNzA5ODk5ZDBkM2ViNjBi
NThkZmNlMmNhZDBjMGEuLjI2ZGNiZmM1N2Q0OWFlYTU3YmYzNjNlMGU3NzZkYWZlZmM5NGUwNmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL0NETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETUluc3RhbmNl
RmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDLm1tCkBAIC0zOTgsNyArMzk4LDcgQEAgdm9pZCBDRE1J
bnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQzo6c2V0U3RvcmFnZURpcmVjdG9yeShjb25z
dCBTdHJpbmcmIHN0b3IKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGF1dG8gc3RvcmFn
ZVBhdGggPSBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoc3RvcmFnZURpcmVj
dG9yeSwgIlNlY3VyZVN0b3AucGxpc3QiKTsKKyAgICBhdXRvIHN0b3JhZ2VQYXRoID0gRmlsZVN5
c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KHN0b3JhZ2VEaXJlY3RvcnksICJTZWN1cmVT
dG9wLnBsaXN0Il9zKTsKIAogICAgIGF1dG8gZmlsZVR5cGUgPSBGaWxlU3lzdGVtOjpmaWxlVHlw
ZUZvbGxvd2luZ1N5bWxpbmtzKHN0b3JhZ2VEaXJlY3RvcnkpOwogICAgIGlmICghZmlsZVR5cGUp
IHsKQEAgLTg5MSw3ICs4OTEsNyBAQCB2b2lkIENETUluc3RhbmNlU2Vzc2lvbkZhaXJQbGF5U3Ry
ZWFtaW5nQVZGT2JqQzo6dXBkYXRlTGljZW5zZShjb25zdCBTdHJpbmcmLCBMaQogICAgICAgICAg
ICAgaWYgKCFvYmplY3QpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgICAg
ICAgICBhdXRvIGtleUlEU3RyaW5nID0gb2JqZWN0LT5nZXRTdHJpbmcoImtleUlEIik7CisgICAg
ICAgICAgICBhdXRvIGtleUlEU3RyaW5nID0gb2JqZWN0LT5nZXRTdHJpbmcoImtleUlEIl9zKTsK
ICAgICAgICAgICAgIGlmICgha2V5SURTdHJpbmcpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCkBAIC05MTEsOCArOTExLDggQEAgdm9pZCBDRE1JbnN0YW5jZVNlc3Npb25GYWlyUGxh
eVN0cmVhbWluZ0FWRk9iakM6OnVwZGF0ZUxpY2Vuc2UoY29uc3QgU3RyaW5nJiwgTGkKIAogICAg
ICAgICAgICAgYXV0byYgcmVxdWVzdCA9IG1fY3VycmVudFJlcXVlc3QudmFsdWUoKS5yZXF1ZXN0
c1tmb3VuZEluZGV4XTsKIAotICAgICAgICAgICAgYXV0byBwYXlsb2FkRmluZFJlc3VsdHMgPSBv
YmplY3QtPmZpbmQoInBheWxvYWQiKTsKLSAgICAgICAgICAgIGF1dG8gZXJyb3JGaW5kUmVzdWx0
cyA9IG9iamVjdC0+ZmluZCgiZXJyb3IiKTsKKyAgICAgICAgICAgIGF1dG8gcGF5bG9hZEZpbmRS
ZXN1bHRzID0gb2JqZWN0LT5maW5kKCJwYXlsb2FkIl9zKTsKKyAgICAgICAgICAgIGF1dG8gZXJy
b3JGaW5kUmVzdWx0cyA9IG9iamVjdC0+ZmluZCgiZXJyb3IiX3MpOwogICAgICAgICAgICAgYm9v
bCBoYXNQYXlsb2FkID0gcGF5bG9hZEZpbmRSZXN1bHRzICE9IG9iamVjdC0+ZW5kKCk7CiAgICAg
ICAgICAgICBib29sIGhhc0Vycm9yID0gZXJyb3JGaW5kUmVzdWx0cyAhPSBvYmplY3QtPmVuZCgp
OwogCkBAIC0xMjUzLDggKzEyNTMsOCBAQCB2b2lkIENETUluc3RhbmNlU2Vzc2lvbkZhaXJQbGF5
U3RyZWFtaW5nQVZGT2JqQzo6ZGlkUHJvdmlkZVJlcXVlc3RzKFZlY3RvcjxSZXRhaQogICAgICAg
ICAgICAgYXV0byBlbnRyeSA9IEpTT046Ok9iamVjdDo6Y3JlYXRlKCk7CiAgICAgICAgICAgICBh
dXRvJiBrZXlJRCA9IHJlcXVlc3REYXRhLmZpcnN0OwogICAgICAgICAgICAgYXV0byYgcGF5bG9h
ZCA9IHJlcXVlc3REYXRhLnNlY29uZDsKLSAgICAgICAgICAgIGVudHJ5LT5zZXRTdHJpbmcoImtl
eUlEIiwgYmFzZTY0RW5jb2RlVG9TdHJpbmcoa2V5SUQtPm1ha2VDb250aWd1b3VzKCktPmRhdGEo
KSwga2V5SUQtPnNpemUoKSkpOwotICAgICAgICAgICAgZW50cnktPnNldFN0cmluZygicGF5bG9h
ZCIsIGJhc2U2NEVuY29kZVRvU3RyaW5nKHBheWxvYWQuZ2V0KCkuYnl0ZXMsIHBheWxvYWQuZ2V0
KCkubGVuZ3RoKSk7CisgICAgICAgICAgICBlbnRyeS0+c2V0U3RyaW5nKCJrZXlJRCJfcywgYmFz
ZTY0RW5jb2RlVG9TdHJpbmcoa2V5SUQtPm1ha2VDb250aWd1b3VzKCktPmRhdGEoKSwga2V5SUQt
PnNpemUoKSkpOworICAgICAgICAgICAgZW50cnktPnNldFN0cmluZygicGF5bG9hZCJfcywgYmFz
ZTY0RW5jb2RlVG9TdHJpbmcocGF5bG9hZC5nZXQoKS5ieXRlcywgcGF5bG9hZC5nZXQoKS5sZW5n
dGgpKTsKICAgICAgICAgICAgIHJlcXVlc3RKU09OLT5wdXNoT2JqZWN0KFdURk1vdmUoZW50cnkp
KTsKICAgICAgICAgfQogICAgICAgICBhdXRvIHJlcXVlc3RCdWZmZXIgPSB1dGY4QnVmZmVyKHJl
cXVlc3RKU09OLT50b0pTT05TdHJpbmcoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uTWVkaWFTb3VyY2VB
VkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQy5tbQppbmRleCAyODZhNWE0ODg3ZThk
OTU2MDBlN2M4YmFjM2FmYmU2Njc2MTYwNTU0Li5hMGM2YTNlNTI2Y2FjYTRhZDFjNzg4ZTNjMjIy
ZThhNGU1MWMyNGZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNl
c3Npb25NZWRpYVNvdXJjZUFWRk9iakMubW0KQEAgLTExMyw3ICsxMTMsNyBAQCBTdHJpbmcgQ0RN
U2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQzo6c3RvcmFnZVBhdGgoKSBjb25zdAogICAgIGlmIChz
dG9yYWdlRGlyZWN0b3J5LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7
CiAKLSAgICByZXR1cm4gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KHN0b3Jh
Z2VEaXJlY3RvcnksICJTZWN1cmVTdG9wLnBsaXN0Iik7CisgICAgcmV0dXJuIEZpbGVTeXN0ZW06
OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChzdG9yYWdlRGlyZWN0b3J5LCAiU2VjdXJlU3RvcC5w
bGlzdCJfcyk7CiB9CiAKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNl
QVZGT2JqQy5tbQppbmRleCAwOTk3ZDc4YjY2YjU0ZTE1OTY1ZjZiOGY2NWZhZGNjM2NmYTM5M2Yy
Li45ZWQwMjM2MzM2MDk4N2RlMjE2M2RiMGRmMzMxOTBlN2M4MTI0NTJjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDLm1tCkBAIC0xMDk2LDcgKzEwOTYsNyBAQCBBVlN0cmVhbVNlc3Npb24qIE1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6c3RyZWFtU2Vzc2lvbigpCiAgICAg
ICAgICAgICAgICAgcmV0dXJuIG5pbDsKICAgICAgICAgfQogCi0gICAgICAgIFN0cmluZyBzdG9y
YWdlUGF0aCA9IEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChzdG9yYWdlRGly
ZWN0b3J5LCAiU2VjdXJlU3RvcC5wbGlzdCIpOworICAgICAgICBTdHJpbmcgc3RvcmFnZVBhdGgg
PSBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoc3RvcmFnZURpcmVjdG9yeSwg
IlNlY3VyZVN0b3AucGxpc3QiX3MpOwogICAgICAgICBtX3N0cmVhbVNlc3Npb24gPSBhZG9wdE5T
KFtQQUw6OmFsbG9jQVZTdHJlYW1TZXNzaW9uSW5zdGFuY2UoKSBpbml0V2l0aFN0b3JhZ2VEaXJl
Y3RvcnlBdFVSTDpbTlNVUkwgZmlsZVVSTFdpdGhQYXRoOnN0b3JhZ2VQYXRoXV0pOwogICAgIH0K
ICAgICByZXR1cm4gbV9zdHJlYW1TZXNzaW9uLmdldCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJp
dmF0ZUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbQppbmRleCA2YmE2YjliZjEy
YWQzYzlmMzg5MDdjMmZkMzZmZTg3YTU1M2IyYTQ0Li4wZThlYTY0ZjA4MzhlNjJhZGU1Y2Y4OTcy
Y2FkMTg5YWM1NWQzNTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3Vy
Y2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbQpAQCAtNjAwLDcgKzYwMCw3IEBAIHZvaWQgU291cmNl
QnVmZmVyUHJpdmF0ZUFWRk9iakM6OmRpZFByb3ZpZGVDb250ZW50S2V5UmVxdWVzdEluaXRpYWxp
emF0aW9uRGF0YUZvCiAgICAgfQogCiAgICAgbV9rZXlJRHMgPSBXVEZNb3ZlKGtleUlEcy52YWx1
ZSgpKTsKLSAgICBwbGF5ZXItPmluaXRpYWxpemF0aW9uRGF0YUVuY291bnRlcmVkKCJzaW5mIiwg
bV9pbml0RGF0YS0+dHJ5Q3JlYXRlQXJyYXlCdWZmZXIoKSk7CisgICAgcGxheWVyLT5pbml0aWFs
aXphdGlvbkRhdGFFbmNvdW50ZXJlZCgic2luZiJfcywgbV9pbml0RGF0YS0+dHJ5Q3JlYXRlQXJy
YXlCdWZmZXIoKSk7CiAKICAgICBtX3dhaXRpbmdGb3JLZXkgPSB0cnVlOwogICAgIHBsYXllci0+
d2FpdGluZ0ZvcktleUNoYW5nZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2lvcy9QbGF0Zm9ybVBhc3RlYm9hcmRJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9pb3MvUGxhdGZvcm1QYXN0ZWJvYXJkSU9TLm1tCmluZGV4IGQ2NGI5NjgzNDczNzgzMmQyZWVk
Njg4MjM2MDEyMjcwNjU1ODUzZmMuLjJlMDY4NTdlZjI2YjhiZmZmOWFhMTkxODA3ODRmZGFjMWEy
YjI3NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF0Zm9ybVBh
c3RlYm9hcmRJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1BsYXRmb3Jt
UGFzdGVib2FyZElPUy5tbQpAQCAtMTU5LDcgKzE1OSw3IEBAIHN0YXRpYyBWZWN0b3I8U3RyaW5n
PiB3ZWJTYWZlVHlwZXMoTlNBcnJheTxOU1N0cmluZyAqPiAqcGxhdGZvcm1UeXBlcywgUGxhdGZv
cm1QCiB7CiAgICAgTGlzdEhhc2hTZXQ8U3RyaW5nPiBkb21QYXN0ZWJvYXJkVHlwZXM7CiAgICAg
Zm9yIChOU1N0cmluZyAqdHlwZSBpbiBwbGF0Zm9ybVR5cGVzKSB7Ci0gICAgICAgIGlmIChbdHlw
ZSBpc0VxdWFsVG9TdHJpbmc6QChQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkpXSkK
KyAgICAgICAgaWYgKFt0eXBlIGlzRXF1YWxUb1N0cmluZzpAKFBhc3RlYm9hcmRDdXN0b21EYXRh
Ojpjb2NvYVR5cGUoKS5jaGFyYWN0ZXJzKCkpXSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAg
ICAgICAgIGlmIChQYXN0ZWJvYXJkOjppc1NhZmVUeXBlRm9yRE9NVG9SZWFkQW5kV3JpdGUodHlw
ZSkpIHsKQEAgLTUwMSw3ICs1MDEsNyBAQCBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19F
TkQKIAogICAgIFBhc3RlYm9hcmRDdXN0b21EYXRhIGN1c3RvbURhdGE7CiAgICAgY3VzdG9tRGF0
YS5zZXRPcmlnaW4oY29udGVudC5jb250ZW50T3JpZ2luKTsKLSAgICBbcmVwcmVzZW50YXRpb25z
VG9SZWdpc3RlciBhZGREYXRhOmN1c3RvbURhdGEuY3JlYXRlU2hhcmVkQnVmZmVyKCktPmNyZWF0
ZU5TRGF0YSgpLmdldCgpIGZvclR5cGU6QChQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBl
KCkpXTsKKyAgICBbcmVwcmVzZW50YXRpb25zVG9SZWdpc3RlciBhZGREYXRhOmN1c3RvbURhdGEu
Y3JlYXRlU2hhcmVkQnVmZmVyKCktPmNyZWF0ZU5TRGF0YSgpLmdldCgpIGZvclR5cGU6QChQYXN0
ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkuY2hhcmFjdGVycygpKV07CiAKICAgICByZWdp
c3Rlckl0ZW1Ub1Bhc3RlYm9hcmQocmVwcmVzZW50YXRpb25zVG9SZWdpc3Rlci5nZXQoKSwgbV9w
YXN0ZWJvYXJkLmdldCgpKTsKIH0KQEAgLTYwOCw3ICs2MDgsNyBAQCBWZWN0b3I8U3RyaW5nPiBQ
bGF0Zm9ybVBhc3RlYm9hcmQ6OnR5cGVzU2FmZUZvckRPTVRvUmVhZEFuZFdyaXRlKGNvbnN0IFN0
cmluZyYgbwogICAgIH0KICNlbmRpZiAvLyBQQVNURUJPQVJEX1NVUFBPUlRTX1BSRVNFTlRBVElP
Tl9TVFlMRV9BTkRfVEVBTV9EQVRBCiAKLSAgICBpZiAoTlNEYXRhICpzZXJpYWxpemVkQ3VzdG9t
RGF0YSA9IFttX3Bhc3RlYm9hcmQgZGF0YUZvclBhc3RlYm9hcmRUeXBlOkAoUGFzdGVib2FyZEN1
c3RvbURhdGE6OmNvY29hVHlwZSgpKV0pIHsKKyAgICBpZiAoTlNEYXRhICpzZXJpYWxpemVkQ3Vz
dG9tRGF0YSA9IFttX3Bhc3RlYm9hcmQgZGF0YUZvclBhc3RlYm9hcmRUeXBlOkAoUGFzdGVib2Fy
ZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpLmNoYXJhY3RlcnMoKSldKSB7CiAgICAgICAgIGF1dG8g
ZGF0YSA9IFBhc3RlYm9hcmRDdXN0b21EYXRhOjpmcm9tU2hhcmVkQnVmZmVyKFNoYXJlZEJ1ZmZl
cjo6Y3JlYXRlKHNlcmlhbGl6ZWRDdXN0b21EYXRhKS5nZXQoKSk7CiAgICAgICAgIGlmIChkYXRh
Lm9yaWdpbigpID09IG9yaWdpbikgewogICAgICAgICAgICAgZm9yIChhdXRvJiB0eXBlIDogZGF0
YS5vcmRlcmVkVHlwZXMoKSkKQEAgLTY0NSw3ICs2NDUsNyBAQCBzdGF0aWMgUmV0YWluUHRyPFdl
Ykl0ZW1Qcm92aWRlclJlZ2lzdHJhdGlvbkluZm9MaXN0PiBjcmVhdGVJdGVtUHJvdmlkZXJSZWdp
c3RyYQogICAgICAgICAgICAgTlNEaWN0aW9uYXJ5ICp0ZWFtRGF0YURpY3Rpb25hcnkgPSBAeyBA
KG9yaWdpbktleUZvclRlYW1EYXRhKSA6IGRhdGEub3JpZ2luKCksIEAoY3VzdG9tVHlwZXNLZXlG
b3JUZWFtRGF0YSkgOiBjcmVhdGVOU0FycmF5KGRhdGEub3JkZXJlZFR5cGVzKCkpLmdldCgpIH07
CiAgICAgICAgICAgICBpZiAoTlNEYXRhICp0ZWFtRGF0YSA9IFtOU0tleWVkQXJjaGl2ZXIgYXJj
aGl2ZWREYXRhV2l0aFJvb3RPYmplY3Q6dGVhbURhdGFEaWN0aW9uYXJ5IHJlcXVpcmluZ1NlY3Vy
ZUNvZGluZzpZRVMgZXJyb3I6bnVsbHB0cl0pIHsKICAgICAgICAgICAgICAgICBbcmVwcmVzZW50
YXRpb25zVG9SZWdpc3RlciBzZXRUZWFtRGF0YTp0ZWFtRGF0YV07Ci0gICAgICAgICAgICAgICAg
W3JlcHJlc2VudGF0aW9uc1RvUmVnaXN0ZXIgYWRkRGF0YTpzZXJpYWxpemVkU2hhcmVkQnVmZmVy
LmdldCgpIGZvclR5cGU6QChQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkpXTsKKyAg
ICAgICAgICAgICAgICBbcmVwcmVzZW50YXRpb25zVG9SZWdpc3RlciBhZGREYXRhOnNlcmlhbGl6
ZWRTaGFyZWRCdWZmZXIuZ2V0KCkgZm9yVHlwZTpAKFBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2Nv
YVR5cGUoKS5jaGFyYWN0ZXJzKCkpXTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJJdGVtUHJvdmlkZXJQ
YXN0ZWJvYXJkLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkl0ZW1Qcm92aWRl
clBhc3RlYm9hcmQubW0KaW5kZXggZDJhMWRiYzNhODlmOTFhZWMyYTMyMjAzODY0YTBjZWYzMTky
MzJkMy4uNzVhNzZmNDM5OTRlZTY1ZTgxMzljODc3NjZjMzNiNzhhNGEzZDIyZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkl0ZW1Qcm92aWRlclBhc3Rl
Ym9hcmQubW0KQEAgLTc2MSw3ICs3NjEsNyBAQCBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19CRUdJTgogCiAgICAgLy8gRm9yIGNvbXBhdGliaWxpdHkgd2l0aCBEYXRhVHJhbnNmZXIgQVBJ
cywgYWRkaXRpb25hbGx5IGxvYWQgd2ViLWV4cG9zZWQgdHlwZXMuIFNpbmNlIHRoaXMgaXMgdGhl
IG9ubHkgY2hhbmNlIHRvCiAgICAgLy8gZmF1bHQgaW4gYW55IGRhdGEgYXQgYWxsLCB3ZSBuZWVk
IHRvIGxvYWQgdXAgZnJvbnQgYW55IGluZm9ybWF0aW9uIHRoYXQgdGhlIHBhZ2UgbWF5IGFzayBm
b3IgbGF0ZXIgZG93biB0aGUgbGluZS4KLSAgICBOU1N0cmluZyAqY3VzdG9tUGFzdGVib2FyZERh
dGFVVEkgPSBAKFBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKSk7CisgICAgTlNTdHJp
bmcgKmN1c3RvbVBhc3RlYm9hcmREYXRhVVRJID0gQChQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29j
b2FUeXBlKCkuY2hhcmFjdGVycygpKTsKICAgICBmb3IgKE5TU3RyaW5nICpyZWdpc3RlcmVkVHlw
ZUlkZW50aWZpZXIgaW4gcmVnaXN0ZXJlZFR5cGVJZGVudGlmaWVycykgewogICAgICAgICBpZiAo
W3JlZ2lzdGVyZWRUeXBlSWRlbnRpZmllciBpc0VxdWFsVG9TdHJpbmc6aGlnaGVzdEZpZGVsaXR5
Q29udGVudFR5cGVdCiAgICAgICAgICAgICB8fCBbcmVnaXN0ZXJlZFR5cGVJZGVudGlmaWVyIGlz
RXF1YWxUb1N0cmluZzpoaWdoZXN0RmlkZWxpdHlTdXBwb3J0ZWRUeXBlXQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RhdGFEZXRlY3RvckhpZ2hsaWdodC5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9EYXRhRGV0ZWN0b3JIaWdobGlnaHQubW0KaW5kZXgg
M2YwNjk0MDQ2MDI5NGRjZmU4YTgzMDI4ZDFmZDdkNDY2ZGE4NTM5NS4uMTVkYjg3YjFkOThiYTM4
MWVhOTUxYjFmMzRmOGU2MDA4Mjk4MjVhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL0RhdGFEZXRlY3RvckhpZ2hsaWdodC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvRGF0YURldGVjdG9ySGlnaGxpZ2h0Lm1tCkBAIC0xNTMsNyArMTUzLDcgQEAg
dm9pZCBEYXRhRGV0ZWN0b3JIaWdobGlnaHQ6OmZhZGVJbigpCiAgICAgW2FuaW1hdGlvbiBzZXRU
b1ZhbHVlOkAxXTsKIAogICAgIGF1dG8gcGxhdGZvcm1BbmltYXRpb24gPSBQbGF0Zm9ybUNBQW5p
bWF0aW9uQ29jb2E6OmNyZWF0ZShhbmltYXRpb24uZ2V0KCkpOwotICAgIGRvd25jYXN0PEdyYXBo
aWNzTGF5ZXJDQT4obGF5ZXIoKSkucGxhdGZvcm1DQUxheWVyKCktPmFkZEFuaW1hdGlvbkZvcktl
eSgiRmFkZUhpZ2hsaWdodEluIiwgcGxhdGZvcm1BbmltYXRpb24uZ2V0KCkpOworICAgIGRvd25j
YXN0PEdyYXBoaWNzTGF5ZXJDQT4obGF5ZXIoKSkucGxhdGZvcm1DQUxheWVyKCktPmFkZEFuaW1h
dGlvbkZvcktleSgiRmFkZUhpZ2hsaWdodEluIl9zLCBwbGF0Zm9ybUFuaW1hdGlvbi5nZXQoKSk7
CiB9CiAKIHZvaWQgRGF0YURldGVjdG9ySGlnaGxpZ2h0OjpmYWRlT3V0KCkKQEAgLTE3MCw3ICsx
NzAsNyBAQCB2b2lkIERhdGFEZXRlY3RvckhpZ2hsaWdodDo6ZmFkZU91dCgpCiAgICAgfV07CiAK
ICAgICBhdXRvIHBsYXRmb3JtQW5pbWF0aW9uID0gUGxhdGZvcm1DQUFuaW1hdGlvbkNvY29hOjpj
cmVhdGUoYW5pbWF0aW9uLmdldCgpKTsKLSAgICBkb3duY2FzdDxHcmFwaGljc0xheWVyQ0E+KGxh
eWVyKCkpLnBsYXRmb3JtQ0FMYXllcigpLT5hZGRBbmltYXRpb25Gb3JLZXkoIkZhZGVIaWdobGln
aHRPdXQiLCBwbGF0Zm9ybUFuaW1hdGlvbi5nZXQoKSk7CisgICAgZG93bmNhc3Q8R3JhcGhpY3NM
YXllckNBPihsYXllcigpKS5wbGF0Zm9ybUNBTGF5ZXIoKS0+YWRkQW5pbWF0aW9uRm9yS2V5KCJG
YWRlSGlnaGxpZ2h0T3V0Il9zLCBwbGF0Zm9ybUFuaW1hdGlvbi5nZXQoKSk7CiAgICAgW0NBVHJh
bnNhY3Rpb24gY29tbWl0XTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1Bhc3RlYm9hcmRNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFz
dGVib2FyZE1hYy5tbQppbmRleCBhMmMyNTBhYTJiZWY4ZGU5NjRiYWYwOTI0MGQ1ZTBlYzQxNTBl
Zjg0Li5kYzJmNWM1M2M2NTQxZTE5OGIzYTg0ZTZjNWE4MDVkMWRkZmUwZDhiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbQpAQCAtNTAsMTIgKzUwLDEy
IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY29uc3QgY2hhciogY29uc3QgV2ViQXJjaGl2
ZVBib2FyZFR5cGUgPSAiQXBwbGUgV2ViIEFyY2hpdmUgcGFzdGVib2FyZCB0eXBlIjsKLWNvbnN0
IGNoYXIqIGNvbnN0IFdlYlVSTE5hbWVQYm9hcmRUeXBlID0gInB1YmxpYy51cmwtbmFtZSI7Ci1j
b25zdCBjaGFyKiBjb25zdCBXZWJVUkxzV2l0aFRpdGxlc1Bib2FyZFR5cGUgPSAiV2ViVVJMc1dp
dGhUaXRsZXNQYm9hcmRUeXBlIjsKK2NvbnN0IEFTQ0lJTGl0ZXJhbCBXZWJBcmNoaXZlUGJvYXJk
VHlwZSA9ICJBcHBsZSBXZWIgQXJjaGl2ZSBwYXN0ZWJvYXJkIHR5cGUiX3M7Citjb25zdCBBU0NJ
SUxpdGVyYWwgV2ViVVJMTmFtZVBib2FyZFR5cGUgPSAicHVibGljLnVybC1uYW1lIl9zOworY29u
c3QgQVNDSUlMaXRlcmFsIFdlYlVSTHNXaXRoVGl0bGVzUGJvYXJkVHlwZSA9ICJXZWJVUkxzV2l0
aFRpdGxlc1Bib2FyZFR5cGUiX3M7CiAKLWNvbnN0IGNoYXIgV2ViU21hcnRQYXN0ZVBib2FyZFR5
cGVbXSA9ICJOZVhUIHNtYXJ0IHBhc3RlIHBhc3RlYm9hcmQgdHlwZSI7Ci1jb25zdCBjaGFyIFdl
YlVSTFBib2FyZFR5cGVbXSA9ICJwdWJsaWMudXJsIjsKK2NvbnN0IEFTQ0lJTGl0ZXJhbCBXZWJT
bWFydFBhc3RlUGJvYXJkVHlwZSA9ICJOZVhUIHNtYXJ0IHBhc3RlIHBhc3RlYm9hcmQgdHlwZSJf
czsKK2NvbnN0IEFTQ0lJTGl0ZXJhbCBXZWJVUkxQYm9hcmRUeXBlID0gInB1YmxpYy51cmwiX3M7
CiAKIHN0YXRpYyBjb25zdCBWZWN0b3I8U3RyaW5nPiB3cml0YWJsZVR5cGVzRm9yVVJMKCkKIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFj
dG9yeU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFj
dG9yeU1hYy5tbQppbmRleCAzNWZjNmFmNTliNmFmY2I0Zjk1NTRjMGYyYTg0YTMzNDI4Mzk2ZTVl
Li5iN2I2ZTM3NDdiMGZjZDk3OGM4NzRlMDE4MmYyMzU2M2NlNWQyZDg2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLm1t
CkBAIC01MDIsNyArNTAyLDcgQEAgU3RyaW5nIGtleUlkZW50aWZpZXJGb3JLZXlFdmVudChOU0V2
ZW50KiBldmVudCkKICAgICBOU1N0cmluZyAqcyA9IFtldmVudCBjaGFyYWN0ZXJzSWdub3JpbmdN
b2RpZmllcnNdOwogICAgIGlmIChbcyBsZW5ndGhdICE9IDEpIHsKICAgICAgICAgTE9HKEV2ZW50
cywgInJlY2VpdmVkIGFuIHVuZXhwZWN0ZWQgbnVtYmVyIG9mIGNoYXJhY3RlcnMgaW4ga2V5IGV2
ZW50OiAldSIsIFtzIGxlbmd0aF0pOwotICAgICAgICByZXR1cm4gIlVuaWRlbnRpZmllZCI7Cisg
ICAgICAgIHJldHVybiAiVW5pZGVudGlmaWVkIl9zOwogICAgIH0KICAgICByZXR1cm4ga2V5SWRl
bnRpZmllckZvckNoYXJDb2RlKFtzIGNoYXJhY3RlckF0SW5kZXg6MF0pOwogfQpAQCAtODA5LDIw
ICs4MDksMjAgQEAgcHVibGljOgogCiAgICAgICAgIC8vIEFsd2F5cyB1c2UgMTMgZm9yIEVudGVy
L1JldHVybiAtLSB3ZSBkb24ndCB3YW50IHRvIHVzZSBBcHBLaXQncyBkaWZmZXJlbnQgY2hhcmFj
dGVyIGZvciBFbnRlci4KICAgICAgICAgaWYgKG1fd2luZG93c1ZpcnR1YWxLZXlDb2RlID09IFZL
X1JFVFVSTikgewotICAgICAgICAgICAgbV90ZXh0ID0gIlxyIjsKLSAgICAgICAgICAgIG1fdW5t
b2RpZmllZFRleHQgPSAiXHIiOworICAgICAgICAgICAgbV90ZXh0ID0gIlxyIl9zOworICAgICAg
ICAgICAgbV91bm1vZGlmaWVkVGV4dCA9IG1fdGV4dDsKICAgICAgICAgfQogCiAgICAgICAgIC8v
IEFwcEtpdCBzZXRzIHRleHQgdG8gIlx4N0YiIGZvciBiYWNrc3BhY2UsIGJ1dCB0aGUgY29ycmVj
dCBLZXlib2FyZEV2ZW50IGNoYXJhY3RlciBjb2RlIGlzIDguCiAgICAgICAgIGlmIChtX3dpbmRv
d3NWaXJ0dWFsS2V5Q29kZSA9PSBWS19CQUNLKSB7Ci0gICAgICAgICAgICBtX3RleHQgPSAiXHg4
IjsKLSAgICAgICAgICAgIG1fdW5tb2RpZmllZFRleHQgPSAiXHg4IjsKKyAgICAgICAgICAgIG1f
dGV4dCA9ICJceDgiX3M7CisgICAgICAgICAgICBtX3VubW9kaWZpZWRUZXh0ID0gbV90ZXh0Owog
ICAgICAgICB9CiAKICAgICAgICAgLy8gQWx3YXlzIHVzZSA5IGZvciBUYWIgLS0gd2UgZG9uJ3Qg
d2FudCB0byB1c2UgQXBwS2l0J3MgZGlmZmVyZW50IGNoYXJhY3RlciBmb3Igc2hpZnQtdGFiLgog
ICAgICAgICBpZiAobV93aW5kb3dzVmlydHVhbEtleUNvZGUgPT0gVktfVEFCKSB7Ci0gICAgICAg
ICAgICBtX3RleHQgPSAiXHg5IjsKLSAgICAgICAgICAgIG1fdW5tb2RpZmllZFRleHQgPSAiXHg5
IjsKKyAgICAgICAgICAgIG1fdGV4dCA9ICJceDkiX3M7CisgICAgICAgICAgICBtX3VubW9kaWZp
ZWRUZXh0ID0gbV90ZXh0OwogICAgICAgICB9CiAKICAgICAgICAgLy8gTWFjIHNwZWNpZmljLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtUGFzdGVib2Fy
ZE1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybVBhc3RlYm9hcmRN
YWMubW0KaW5kZXggYTdmZTcyNTU0Mzc2NjVlOGI4YTBjNzQ1M2QzMDQ3NDlkNDU2MmY2Ny4uNDZk
YjU3ZGVlYTlkNzI2OWFlYjRkODc3ZDE5MTdkNWQ2MzAzZGEzMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtUGFzdGVib2FyZE1hYy5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1QYXN0ZWJvYXJkTWFjLm1tCkBAIC0yMTcs
NyArMjE3LDcgQEAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiBWZWN0b3I8U3Ry
aW5nPiBQbGF0Zm9ybVBhc3RlYm9hcmQ6OnR5cGVzU2FmZUZvckRPTVRvUmVhZEFuZFdyaXRlKGNv
bnN0IFN0cmluZyYgb3JpZ2luKSBjb25zdAogewogICAgIExpc3RIYXNoU2V0PFN0cmluZz4gZG9t
UGFzdGVib2FyZFR5cGVzOwotICAgIGlmIChOU0RhdGEgKnNlcmlhbGl6ZWRDdXN0b21EYXRhID0g
W21fcGFzdGVib2FyZCBkYXRhRm9yVHlwZTpAKFBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5
cGUoKSldKSB7CisgICAgaWYgKE5TRGF0YSAqc2VyaWFsaXplZEN1c3RvbURhdGEgPSBbbV9wYXN0
ZWJvYXJkIGRhdGFGb3JUeXBlOkAoUGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpLmNo
YXJhY3RlcnMoKSldKSB7CiAgICAgICAgIGF1dG8gZGF0YSA9IFBhc3RlYm9hcmRDdXN0b21EYXRh
Ojpmcm9tU2hhcmVkQnVmZmVyKFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKHNlcmlhbGl6ZWRDdXN0b21E
YXRhKS5nZXQoKSk7CiAgICAgICAgIGlmIChkYXRhLm9yaWdpbigpID09IG9yaWdpbikgewogICAg
ICAgICAgICAgZm9yIChhdXRvJiB0eXBlIDogZGF0YS5vcmRlcmVkVHlwZXMoKSkKQEAgLTIyNyw3
ICsyMjcsNyBAQCBWZWN0b3I8U3RyaW5nPiBQbGF0Zm9ybVBhc3RlYm9hcmQ6OnR5cGVzU2FmZUZv
ckRPTVRvUmVhZEFuZFdyaXRlKGNvbnN0IFN0cmluZyYgbwogCiAgICAgTlNBcnJheTxOU1N0cmlu
ZyAqPiAqYWxsVHlwZXMgPSBbbV9wYXN0ZWJvYXJkIHR5cGVzXTsKICAgICBmb3IgKE5TU3RyaW5n
ICp0eXBlIGluIGFsbFR5cGVzKSB7Ci0gICAgICAgIGlmIChbdHlwZSBpc0VxdWFsVG9TdHJpbmc6
QChQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkpXSkKKyAgICAgICAgaWYgKFt0eXBl
IGlzRXF1YWxUb1N0cmluZzpAKFBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKS5jaGFy
YWN0ZXJzKCkpXSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgIGlmIChQYXN0ZWJv
YXJkOjppc1NhZmVUeXBlRm9yRE9NVG9SZWFkQW5kV3JpdGUodHlwZSkpCkBAIC0yNTQsNyArMjU0
LDcgQEAgaW50NjRfdCBQbGF0Zm9ybVBhc3RlYm9hcmQ6OndyaXRlKGNvbnN0IFBhc3RlYm9hcmRD
dXN0b21EYXRhJiBkYXRhKQogCiAgICAgYm9vbCBzaG91bGRXcml0ZUN1c3RvbURhdGEgPSBkYXRh
Lmhhc1NhbWVPcmlnaW5DdXN0b21EYXRhKCkgfHwgIWRhdGEub3JpZ2luKCkuaXNFbXB0eSgpOwog
ICAgIGlmIChzaG91bGRXcml0ZUN1c3RvbURhdGEpCi0gICAgICAgIFt0eXBlcyBhZGRPYmplY3Q6
QChQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkpXTsKKyAgICAgICAgW3R5cGVzIGFk
ZE9iamVjdDpAKFBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKS5jaGFyYWN0ZXJzKCkp
XTsKIAogICAgIFttX3Bhc3RlYm9hcmQgZGVjbGFyZVR5cGVzOnR5cGVzIG93bmVyOm5pbF07CiAK
QEAgLTI3NSw3ICsyNzUsNyBAQCBpbnQ2NF90IFBsYXRmb3JtUGFzdGVib2FyZDo6d3JpdGUoY29u
c3QgUGFzdGVib2FyZEN1c3RvbURhdGEmIGRhdGEpCiAKICAgICBpZiAoc2hvdWxkV3JpdGVDdXN0
b21EYXRhKSB7CiAgICAgICAgIGlmIChhdXRvIHNlcmlhbGl6ZWRDdXN0b21EYXRhID0gZGF0YS5j
cmVhdGVTaGFyZWRCdWZmZXIoKS0+Y3JlYXRlTlNEYXRhKCkpCi0gICAgICAgICAgICBbbV9wYXN0
ZWJvYXJkIHNldERhdGE6c2VyaWFsaXplZEN1c3RvbURhdGEuZ2V0KCkgZm9yVHlwZTpAKFBhc3Rl
Ym9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKSldOworICAgICAgICAgICAgW21fcGFzdGVib2Fy
ZCBzZXREYXRhOnNlcmlhbGl6ZWRDdXN0b21EYXRhLmdldCgpIGZvclR5cGU6QChQYXN0ZWJvYXJk
Q3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkuY2hhcmFjdGVycygpKV07CiAgICAgfQogCiAgICAgcmV0
dXJuIGNoYW5nZUNvdW50KCk7CkBAIC00OTksNyArNDk5LDcgQEAgc3RhdGljIFJldGFpblB0cjxO
U1Bhc3RlYm9hcmRJdGVtPiBjcmVhdGVQYXN0ZWJvYXJkSXRlbShjb25zdCBQYXN0ZWJvYXJkQ3Vz
dG9tRGEKIAogICAgIGlmIChkYXRhLmhhc1NhbWVPcmlnaW5DdXN0b21EYXRhKCkgfHwgIWRhdGEu
b3JpZ2luKCkuaXNFbXB0eSgpKSB7CiAgICAgICAgIGlmIChhdXRvIHNlcmlhbGl6ZWRDdXN0b21E
YXRhID0gZGF0YS5jcmVhdGVTaGFyZWRCdWZmZXIoKS0+Y3JlYXRlTlNEYXRhKCkpCi0gICAgICAg
ICAgICBbaXRlbSBzZXREYXRhOnNlcmlhbGl6ZWRDdXN0b21EYXRhLmdldCgpIGZvclR5cGU6QChQ
YXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkpXTsKKyAgICAgICAgICAgIFtpdGVtIHNl
dERhdGE6c2VyaWFsaXplZEN1c3RvbURhdGEuZ2V0KCkgZm9yVHlwZTpAKFBhc3RlYm9hcmRDdXN0
b21EYXRhOjpjb2NvYVR5cGUoKS5jaGFyYWN0ZXJzKCkpXTsKICAgICB9CiAKICAgICBkYXRhLmZv
ckVhY2hQbGF0Zm9ybVN0cmluZ09yQnVmZmVyKFsmXSAoYXV0byYgdHlwZSwgYXV0byYgc3RyaW5n
T3JCdWZmZXIpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TdHJp
bmdVdGlsaXRpZXMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU3RyaW5nVXRpbGl0
aWVzLm1tCmluZGV4IDdjZDFiZDgwYWU5ZTMzZTc1NmY2NTkxMjI0MGY3ZWQ2Y2MzM2M1YjUuLjky
YmU2NjdlNjNlYjMxZjQxZDc3OWE5NjYyZjFmYjc1NmY0NjU0M2UgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TdHJpbmdVdGlsaXRpZXMubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL1N0cmluZ1V0aWxpdGllcy5tbQpAQCAtMzMsNyArMzMsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgCiBzdGF0aWMgU3RyaW5nIHdpbGRjYXJkUmVnZXhQYXR0
ZXJuU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewotICAgIFN0cmluZyBtZXRhQ2hhcmFj
dGVycyA9ICIufCs/KClbXXt9XiQiOworICAgIFN0cmluZyBtZXRhQ2hhcmFjdGVycyA9ICIufCs/
KClbXXt9XiQiX3M7CiAgICAgVUNoYXIgZXNjYXBlQ2hhcmFjdGVyID0gJ1xcJzsKICAgICBVQ2hh
ciB3aWxkY2FyZENoYXJhY3RlciA9ICcqJzsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9UaHJlYWRDaGVjay5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9UaHJlYWRDaGVjay5tbQppbmRleCBmMTUxMDg4Y2U5MjVhNTA2ZWI0NjhiMjIyMWZhZjMy
NzUwMzJiYTQyLi5iYmQ3MzQ0MWUwNTBiOTY4NzU3YTRmNWE2YWQxMzQ2NmIxYWQwNmQwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVGhyZWFkQ2hlY2subW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1RocmVhZENoZWNrLm1tCkBAIC0xMDYsNyArMTA2
LDcgQEAgdm9pZCBXZWJDb3JlUmVwb3J0VGhyZWFkVmlvbGF0aW9uKGNvbnN0IGNoYXIqIGZ1bmN0
aW9uLCBXZWJDb3JlOjpUaHJlYWRWaW9sYXRpb24KICAgICAgICAgY2FzZSBOb1RocmVhZENoZWNr
OgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgTG9nT25GaXJzdFRocmVhZFZpb2xh
dGlvbjoKLSAgICAgICAgICAgIGlmIChsb2dnZWRGdW5jdGlvbnMuZ2V0KCkuYWRkKGZ1bmN0aW9u
KS5pc05ld0VudHJ5KSB7CisgICAgICAgICAgICBpZiAobG9nZ2VkRnVuY3Rpb25zLmdldCgpLmFk
ZChTdHJpbmcgeyBmdW5jdGlvbiB9KS5pc05ld0VudHJ5KSB7CiAgICAgICAgICAgICAgICAgTlNM
b2coQCJXZWJLaXQgVGhyZWFkaW5nIFZpb2xhdGlvbiAtICVzIGNhbGxlZCBmcm9tIHNlY29uZGFy
eSB0aHJlYWQiLCBmdW5jdGlvbik7CiAgICAgICAgICAgICAgICAgTlNMb2coQCJBZGRpdGlvbmFs
IHRocmVhZGluZyB2aW9sYXRpb25zIGZvciB0aGlzIGZ1bmN0aW9uIHdpbGwgbm90IGJlIGxvZ2dl
ZC4iKTsKICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9Vc2VyQWdlbnRNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVXNlckFn
ZW50TWFjLm1tCmluZGV4IGU2MmE5N2YxOTlhYWNjM2NhNjkyZDhkYTRiMjA5ZDI5OTRlM2EwZDEu
LmVkYzA3OWY0ZTAyNGFmMzAxZTQ1ZmFhMTA5MzVhOGRiM2EyYjJjNzUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9Vc2VyQWdlbnRNYWMubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL1VzZXJBZ2VudE1hYy5tbQpAQCAtMzgsNyArMzgsNyBAQCBTdHJp
bmcgc3RhbmRhcmRVc2VyQWdlbnRXaXRoQXBwbGljYXRpb25OYW1lKGNvbnN0IFN0cmluZyYgYXBw
bGljYXRpb25OYW1lLCBjb25zdAogICAgIGlmICghb3NWZXJzaW9uLnN0YXJ0c1dpdGgoIjEwIikp
CiAgICAgICAgIG9zVmVyc2lvbiA9ICIxMF8xNV83Il9zOwogICAgIAotICAgIFN0cmluZyBhcHBO
YW1lU3VmZml4ID0gYXBwbGljYXRpb25OYW1lLmlzRW1wdHkoKSA/ICIiIDogbWFrZVN0cmluZygi
ICIsIGFwcGxpY2F0aW9uTmFtZSk7CisgICAgU3RyaW5nIGFwcE5hbWVTdWZmaXggPSBhcHBsaWNh
dGlvbk5hbWUuaXNFbXB0eSgpID8gZW1wdHlTdHJpbmcoKSA6IG1ha2VTdHJpbmcoIiAiLCBhcHBs
aWNhdGlvbk5hbWUpOwogCiAgICAgcmV0dXJuIG1ha2VTdHJpbmcoIk1vemlsbGEvNS4wIChNYWNp
bnRvc2g7IEludGVsIE1hYyBPUyBYICIsIG9zVmVyc2lvbiwgIikgQXBwbGVXZWJLaXQvNjA1LjEu
MTUgKEtIVE1MLCBsaWtlIEdlY2tvKSIsIGFwcE5hbWVTdWZmaXgpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUVycm9yQmFzZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlRXJyb3JCYXNlLmNwcAppbmRl
eCA2N2QyZWFjMDhmYTdiNGJmMDY0Y2NkZmFiYzI0OWZjYzQ2MjUxY2ZkLi5kMDE5M2FjNmM5Yjk3
NGFhMmJmMWQ3MTk3OWQzZTcwMTViYzMwZDlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlRXJyb3JCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlRXJyb3JCYXNlLmNwcApAQCAtMzIsOCArMzIsOCBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNvbnN0IGNoYXIqIGNvbnN0IGVycm9yRG9tYWlu
V2ViS2l0SW50ZXJuYWwgPSAiV2ViS2l0SW50ZXJuYWwiOwotY29uc3QgY2hhciogY29uc3QgZXJy
b3JEb21haW5XZWJLaXRTZXJ2aWNlV29ya2VyID0gIldlYktpdFNlcnZpY2VXb3JrZXIiOworY29u
c3QgQVNDSUlMaXRlcmFsIGVycm9yRG9tYWluV2ViS2l0SW50ZXJuYWwgPSAiV2ViS2l0SW50ZXJu
YWwiX3M7Citjb25zdCBBU0NJSUxpdGVyYWwgZXJyb3JEb21haW5XZWJLaXRTZXJ2aWNlV29ya2Vy
ID0gIldlYktpdFNlcnZpY2VXb3JrZXIiX3M7CiAKIGlubGluZSBjb25zdCBSZXNvdXJjZUVycm9y
JiBSZXNvdXJjZUVycm9yQmFzZTo6YXNSZXNvdXJjZUVycm9yKCkgY29uc3QKIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VFcnJvckJhc2UuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VFcnJvckJhc2UuaAppbmRl
eCA0ODhkZWJjMTQzZDYzZjQ1N2U4ZDM4ZTljNmRjMjNhOWQyMGJhODE2Li5lMTIxYzUxNGY0ODk0
MjZhMzQzZDM0NDg5MGI5NjYzMDI1MGNkN2NhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlRXJyb3JCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUVycm9yQmFzZS5oCkBAIC0zNCw4ICszNCw4IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUmVzb3VyY2VFcnJvcjsKIAotV0VCQ09SRV9FWFBP
UlQgZXh0ZXJuIGNvbnN0IGNoYXIqIGNvbnN0IGVycm9yRG9tYWluV2ViS2l0SW50ZXJuYWw7IC8v
IFVzZWQgZm9yIGVycm9ycyB0aGF0IHdvbid0IGJlIGV4cG9zZWQgdG8gY2xpZW50cy4KLVdFQkNP
UkVfRVhQT1JUIGV4dGVybiBjb25zdCBjaGFyKiBjb25zdCBlcnJvckRvbWFpbldlYktpdFNlcnZp
Y2VXb3JrZXI7IC8vIFVzZWQgZm9yIGVycm9ycyB0aGF0IGhhcHBlbiB3aGVuIGxvYWRpbmcgYSBy
ZXNvdXJjZSBmcm9tIGEgc2VydmljZSB3b3JrZXIuCitXRUJDT1JFX0VYUE9SVCBleHRlcm4gY29u
c3QgQVNDSUlMaXRlcmFsIGVycm9yRG9tYWluV2ViS2l0SW50ZXJuYWw7IC8vIFVzZWQgZm9yIGVy
cm9ycyB0aGF0IHdvbid0IGJlIGV4cG9zZWQgdG8gY2xpZW50cy4KK1dFQkNPUkVfRVhQT1JUIGV4
dGVybiBjb25zdCBBU0NJSUxpdGVyYWwgZXJyb3JEb21haW5XZWJLaXRTZXJ2aWNlV29ya2VyOyAv
LyBVc2VkIGZvciBlcnJvcnMgdGhhdCBoYXBwZW4gd2hlbiBsb2FkaW5nIGEgcmVzb3VyY2UgZnJv
bSBhIHNlcnZpY2Ugd29ya2VyLgogCiBjbGFzcyBSZXNvdXJjZUVycm9yQmFzZSB7CiAgICAgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2NvY29hL1JhbmdlUmVzcG9uc2VHZW5lcmF0b3IubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1JhbmdlUmVzcG9uc2VHZW5lcmF0b3IubW0KaW5kZXgg
MTk4MTRhMzY1YzlmNjYxYTIxYzIyOWFkYmQwNDYxMWMyMDk0N2U2NC4uMDRlZmRiNGRmZjFkMTY0
MWMzZDYwNWFmMzAxNGQxYTEwYzI0NjQzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jb2NvYS9SYW5nZVJlc3BvbnNlR2VuZXJhdG9yLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvUmFuZ2VSZXNwb25zZUdlbmVyYXRvci5t
bQpAQCAtNzgsNyArNzgsNyBAQCBzdGF0aWMgUmVzb3VyY2VSZXNwb25zZSBzeW50aGVzaXplZFJl
c3BvbnNlRm9yUmFuZ2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgb3JpZwogICAgIGF1dG8gYmVn
aW4gPSBwYXJzZWRSZXF1ZXN0UmFuZ2UuYmVnaW47CiAgICAgYXV0byBlbmQgPSBwYXJzZWRSZXF1
ZXN0UmFuZ2UuZW5kOwogCi0gICAgYXV0byBuZXdDb250ZW50UmFuZ2UgPSBtYWtlU3RyaW5nKCJi
eXRlcyAiLCBiZWdpbiwgIi0iLCBlbmQsICIvIiwgKHRvdGFsQ29udGVudExlbmd0aCA/IG1ha2VT
dHJpbmcoKnRvdGFsQ29udGVudExlbmd0aCkgOiAiKiIpKTsKKyAgICBhdXRvIG5ld0NvbnRlbnRS
YW5nZSA9IG1ha2VTdHJpbmcoImJ5dGVzICIsIGJlZ2luLCAiLSIsIGVuZCwgIi8iLCAodG90YWxD
b250ZW50TGVuZ3RoID8gbWFrZVN0cmluZygqdG90YWxDb250ZW50TGVuZ3RoKSA6ICIqIl9zKSk7
CiAgICAgYXV0byBuZXdDb250ZW50TGVuZ3RoID0gbWFrZVN0cmluZyhlbmQgLSBiZWdpbiArIDEp
OwogCiAgICAgUmVzb3VyY2VSZXNwb25zZSBuZXdSZXNwb25zZSA9IG9yaWdpbmFsUmVzcG9uc2U7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KaW5kZXggMDEwZWNi
YWVkODdhNzNhNDIwYWZiOTdlOGU4MGZlYTYzNzlmZWQzZS4uOGU5ZDQ2YTFiMzRjYWIwNDdmYmEz
NDNkMWI1N2EyYzViMmRjMTA4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZU1hYy5tbQpAQCAtMjYxOSw3ICsyNjE5LDcgQEAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfRU5ECiAgICAgICAgICAgICByZXR1cm4gaWNvbjsKICAgICB9CiAKLSAgICByZXR1cm4g
SWNvbjo6Y3JlYXRlSWNvbkZvclVUSSgicHVibGljLmRhdGEiKTsKKyAgICByZXR1cm4gSWNvbjo6
Y3JlYXRlSWNvbkZvclVUSSgicHVibGljLmRhdGEiX3MpOwogfQogCiBSZXRhaW5QdHI8TlNJbWFn
ZT4gUmVuZGVyVGhlbWVNYWM6Omljb25Gb3JBdHRhY2htZW50KGNvbnN0IFN0cmluZyYgZmlsZU5h
bWUsIGNvbnN0IFN0cmluZyYgYXR0YWNobWVudFR5cGUsIGNvbnN0IFN0cmluZyYgdGl0bGUpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25z
dGFudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29u
c3RhbnRzLmNwcAppbmRleCA5MmJjNmE4MTJhMTE4YTUxOWYwYjQ2Yzk0Zjk3MmUzMmIzYTVlZTU2
Li40YzUyYzY3MWJkYmNlNjRjOTNlY2MyNGY1ODMwMTUyY2ZmMDUwNmZiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5j
cHAKQEAgLTY3MSw3ICs2NzEsNyBAQCBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0m
IHRzLCBMaXN0U3R5bGVQb3NpdGlvbiBwb3NpdGlvbikKIAogVGV4dFN0cmVhbSYgb3BlcmF0b3I8
PChUZXh0U3RyZWFtJiB0cywgTGlzdFN0eWxlVHlwZSBzdHlsZVR5cGUpCiB7Ci0gICAgcmV0dXJu
IHRzIDw8IGdldFZhbHVlTmFtZSh0b0NTU1ZhbHVlSUQoc3R5bGVUeXBlKSk7CisgICAgcmV0dXJu
IHRzIDw8IGdldFZhbHVlTmFtZSh0b0NTU1ZhbHVlSUQoc3R5bGVUeXBlKSkuY2hhcmFjdGVycygp
OwogfQogCiBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBNYXJxdWVlQmVo
YXZpb3IgbWFycXVlZUJlaGF2aW9yKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZpbHRlckVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmgK
aW5kZXggMWFjZDJhZTk1YTE1OTRlOWYzMzc5ZDJlOTM5ZjkxNmRkMTUwNDZmZC4uMDBjNzYxMGEx
MGNlYmE0NTM0MjRkYTc5NDA5NmUxYTZmZDMzNTI5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmls
dGVyRWxlbWVudC5oCkBAIC02OCwxMCArNjgsMTAgQEAgcHJpdmF0ZToKICAgICBQcm9wZXJ0eVJl
Z2lzdHJ5IG1fcHJvcGVydHlSZWdpc3RyeSB7ICp0aGlzIH07CiAgICAgUmVmPFNWR0FuaW1hdGVk
RW51bWVyYXRpb24+IG1fZmlsdGVyVW5pdHMgeyBTVkdBbmltYXRlZEVudW1lcmF0aW9uOjpjcmVh
dGUodGhpcywgU1ZHVW5pdFR5cGVzOjpTVkdfVU5JVF9UWVBFX09CSkVDVEJPVU5ESU5HQk9YKSB9
OwogICAgIFJlZjxTVkdBbmltYXRlZEVudW1lcmF0aW9uPiBtX3ByaW1pdGl2ZVVuaXRzIHsgU1ZH
QW5pbWF0ZWRFbnVtZXJhdGlvbjo6Y3JlYXRlKHRoaXMsIFNWR1VuaXRUeXBlczo6U1ZHX1VOSVRf
VFlQRV9VU0VSU1BBQ0VPTlVTRSkgfTsKLSAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1feCB7
IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6V2lkdGgsICIt
MTAlIikgfTsKLSAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1feSB7IFNWR0FuaW1hdGVkTGVu
Z3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6SGVpZ2h0LCAiLTEwJSIpIH07Ci0gICAg
UmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX3dpZHRoIHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0
ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpXaWR0aCwgIjEyMCUiKSB9OwotICAgIFJlZjxTVkdBbmlt
YXRlZExlbmd0aD4gbV9oZWlnaHQgeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNW
R0xlbmd0aE1vZGU6OkhlaWdodCwgIjEyMCUiKSB9OworICAgIFJlZjxTVkdBbmltYXRlZExlbmd0
aD4gbV94IHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpX
aWR0aCwgIi0xMCUiX3MpIH07CisgICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX3kgeyBTVkdB
bmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OkhlaWdodCwgIi0xMCUi
X3MpIH07CisgICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX3dpZHRoIHsgU1ZHQW5pbWF0ZWRM
ZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpXaWR0aCwgIjEyMCUiX3MpIH07Cisg
ICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX2hlaWdodCB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpj
cmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6SGVpZ2h0LCAiMTIwJSJfcykgfTsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
aWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMuaAppbmRleCAzMTAzY2M2YWMyMzNl
MGZkM2IyZmIxZTk3OTA0OWEyOGI3YjZmOGJiLi43OGUyYWEyYzFlODE0ZTY5OGVkNDQ0ZWVjNzdm
OWIyMDc2ZTNmOTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyUHJp
bWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Zp
bHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5oCkBAIC03NSwxMCArNzUsMTAgQEAgcHJp
dmF0ZToKIAogICAgIC8vIFNwZWM6IElmIHRoZSB4L3kgYXR0cmlidXRlIGlzIG5vdCBzcGVjaWZp
ZWQsIHRoZSBlZmZlY3QgaXMgYXMgaWYgYSB2YWx1ZSBvZiAiMCUiIHdlcmUgc3BlY2lmaWVkLgog
ICAgIC8vIFNwZWM6IElmIHRoZSB3aWR0aC9oZWlnaHQgYXR0cmlidXRlIGlzIG5vdCBzcGVjaWZp
ZWQsIHRoZSBlZmZlY3QgaXMgYXMgaWYgYSB2YWx1ZSBvZiAiMTAwJSIgd2VyZSBzcGVjaWZpZWQu
Ci0gICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX3ggeyBTVkdBbmltYXRlZExlbmd0aDo6Y3Jl
YXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OldpZHRoLCAiMCUiKSB9OwotICAgIFJlZjxTVkdBbmlt
YXRlZExlbmd0aD4gbV95IHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5n
dGhNb2RlOjpIZWlnaHQsICIwJSIpIH07Ci0gICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX3dp
ZHRoIHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpXaWR0
aCwgIjEwMCUiKSB9OwotICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV9oZWlnaHQgeyBTVkdB
bmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OkhlaWdodCwgIjEwMCUi
KSB9OworICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV94IHsgU1ZHQW5pbWF0ZWRMZW5ndGg6
OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpXaWR0aCwgIjAlIl9zKSB9OworICAgIFJlZjxT
VkdBbmltYXRlZExlbmd0aD4gbV95IHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBT
VkdMZW5ndGhNb2RlOjpIZWlnaHQsICIwJSJfcykgfTsKKyAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5n
dGg+IG1fd2lkdGggeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1v
ZGU6OldpZHRoLCAiMTAwJSJfcykgfTsKKyAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1faGVp
Z2h0IHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpIZWln
aHQsICIxMDAlIl9zKSB9OwogICAgIFJlZjxTVkdBbmltYXRlZFN0cmluZz4gbV9yZXN1bHQgeyBT
VkdBbmltYXRlZFN0cmluZzo6Y3JlYXRlKHRoaXMpIH07CiB9OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmgKaW5kZXggYWVmZTY0Y2UxNDY3Njc4NGMw
ZDFhOTI0Y2UzZGZlYWQ3YmFjYzM3My4uZGYyMGJkMDU5ZmFjNzNiMjNkNzY5ZTg5YzkyZGVmMGZi
ZWM5NzhhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVhckdyYWRpZW50
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1l
bnQuaApAQCAtNjEsNyArNjEsNyBAQCBwcml2YXRlOgogICAgIFByb3BlcnR5UmVnaXN0cnkgbV9w
cm9wZXJ0eVJlZ2lzdHJ5IHsgKnRoaXMgfTsKICAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1f
eDEgeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OldpZHRo
KSB9OwogICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV95MSB7IFNWR0FuaW1hdGVkTGVuZ3Ro
OjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6SGVpZ2h0KSB9OwotICAgIFJlZjxTVkdBbmlt
YXRlZExlbmd0aD4gbV94MiB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVu
Z3RoTW9kZTo6V2lkdGgsICIxMDAlIikgfTsKKyAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1f
eDIgeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OldpZHRo
LCAiMTAwJSJfcykgfTsKICAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1feTIgeyBTVkdBbmlt
YXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OkhlaWdodCkgfTsKIH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5oCmluZGV4IDVhMTM2ZTNlZjQ1YTU3YTUx
YzkyZmY3NjU5YmE2YWY3NjJmMmFlOTMuLmUxZjdlZTlhYzQ3MWFhNGY2ODBmYjU0YzI0M2FmZDA3
NzM3Mjc1ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQuaApAQCAtODksOCAr
ODksOCBAQCBwcml2YXRlOgogICAgIFByb3BlcnR5UmVnaXN0cnkgbV9wcm9wZXJ0eVJlZ2lzdHJ5
IHsgKnRoaXMgfTsKICAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1fcmVmWCB7IFNWR0FuaW1h
dGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6V2lkdGgpIH07CiAgICAgUmVm
PFNWR0FuaW1hdGVkTGVuZ3RoPiBtX3JlZlkgeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRo
aXMsIFNWR0xlbmd0aE1vZGU6OkhlaWdodCkgfTsKLSAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+
IG1fbWFya2VyV2lkdGggeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0
aE1vZGU6OldpZHRoLCAiMyIpIH07Ci0gICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX21hcmtl
ckhlaWdodCB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6
SGVpZ2h0LCAiMyIpIH07CisgICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX21hcmtlcldpZHRo
IHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpXaWR0aCwg
IjMiX3MpIH07CisgICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX21hcmtlckhlaWdodCB7IFNW
R0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6SGVpZ2h0LCAiMyJf
cykgfTsKICAgICBSZWY8U1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbj4gbV9tYXJrZXJVbml0cyB7IFNW
R0FuaW1hdGVkRW51bWVyYXRpb246OmNyZWF0ZSh0aGlzLCBTVkdNYXJrZXJVbml0c1N0cm9rZVdp
ZHRoKSB9OwogICAgIFJlZjxTVkdBbmltYXRlZEFuZ2xlPiBtX29yaWVudEFuZ2xlIHsgU1ZHQW5p
bWF0ZWRBbmdsZTo6Y3JlYXRlKHRoaXMpIH07CiAgICAgUmVmPFNWR0FuaW1hdGVkT3JpZW50VHlw
ZT4gbV9vcmllbnRUeXBlIHsgU1ZHQW5pbWF0ZWRPcmllbnRUeXBlOjpjcmVhdGUodGhpcywgU1ZH
TWFya2VyT3JpZW50QW5nbGUpIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
TWFza0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5oCmluZGV4
IDQ5MGRjMjIxYWIyNDRhM2VmNWZkZGQyODVkZjM3YTZlNDYwMDM0MmQuLmRiZDA0MmQwZDNhZjgx
MjBlMDBmNTk5Yjk1YjAxZDExMzhjZTIxZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdNYXNrRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVu
dC5oCkBAIC02MywxMCArNjMsMTAgQEAgcHJpdmF0ZToKICAgICBib29sIHNlbGZIYXNSZWxhdGl2
ZUxlbmd0aHMoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAKICAgICBQcm9wZXJ0eVJl
Z2lzdHJ5IG1fcHJvcGVydHlSZWdpc3RyeSB7ICp0aGlzIH07Ci0gICAgUmVmPFNWR0FuaW1hdGVk
TGVuZ3RoPiBtX3ggeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1v
ZGU6OldpZHRoLCAiLTEwJSIpIH07Ci0gICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX3kgeyBT
VkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OkhlaWdodCwgIi0x
MCUiKSB9OwotICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV93aWR0aCB7IFNWR0FuaW1hdGVk
TGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6V2lkdGgsICIxMjAlIikgfTsKLSAg
ICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1faGVpZ2h0IHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNy
ZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpIZWlnaHQsICIxMjAlIikgfTsKKyAgICBSZWY8U1ZH
QW5pbWF0ZWRMZW5ndGg+IG1feCB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZH
TGVuZ3RoTW9kZTo6V2lkdGgsICItMTAlIl9zKSB9OworICAgIFJlZjxTVkdBbmltYXRlZExlbmd0
aD4gbV95IHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpI
ZWlnaHQsICItMTAlIl9zKSB9OworICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV93aWR0aCB7
IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6V2lkdGgsICIx
MjAlIl9zKSB9OworICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV9oZWlnaHQgeyBTVkdBbmlt
YXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OkhlaWdodCwgIjEyMCUiX3Mp
IH07CiAgICAgUmVmPFNWR0FuaW1hdGVkRW51bWVyYXRpb24+IG1fbWFza1VuaXRzIHsgU1ZHQW5p
bWF0ZWRFbnVtZXJhdGlvbjo6Y3JlYXRlKHRoaXMsIFNWR1VuaXRUeXBlczo6U1ZHX1VOSVRfVFlQ
RV9PQkpFQ1RCT1VORElOR0JPWCkgfTsKICAgICBSZWY8U1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbj4g
bV9tYXNrQ29udGVudFVuaXRzIHsgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbjo6Y3JlYXRlKHRoaXMs
IFNWR1VuaXRUeXBlczo6U1ZHX1VOSVRfVFlQRV9VU0VSU1BBQ0VPTlVTRSkgfTsKIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0ltcGwuaCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdQYXRoU2VnSW1wbC5oCmluZGV4IGE2MzYxNTQyOTRmZWEzYTViMDViZjlmZThm
MmY5MGMxOGVhMTA4MzQuLjM0ZjIzYzUxNWY5NGI5MzkxNzBmM2E1Y2U5YWU4ZmI1Mjg4NjYxOTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnSW1wbC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnSW1wbC5oCkBAIC0zNSw3ICszNSw3IEBAIHB1Ymxp
YzoKIHByaXZhdGU6CiAgICAgdXNpbmcgU1ZHUGF0aFNlZzo6U1ZHUGF0aFNlZzsKICAgICB1bnNp
Z25lZCBzaG9ydCBwYXRoU2VnVHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFBBVEhTRUdfQ0xP
U0VQQVRIOyB9Ci0gICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7
IHJldHVybiAiWiI7IH0KKyAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuICJaIl9zOyB9CiAgICAgUmVmPFNWR1BhdGhTZWc+IGNsb25lKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdQYXRoU2VnQ2xvc2VQYXRoKCkpOyB9CiB9
OwogCkBAIC00NSw3ICs0NSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdXNpbmcgU1ZHUGF0
aFNlZ0xpbmV0b0hvcml6b250YWw6OlNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsOwogICAgIHVu
c2lnbmVkIHNob3J0IHBhdGhTZWdUeXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gUEFUSFNFR19M
SU5FVE9fSE9SSVpPTlRBTF9BQlM7IH0KLSAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuICJIIjsgfQorICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0
dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIkgiX3M7IH0KICAgICBSZWY8U1ZHUGF0aFNlZz4g
Y2xvbmUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBTVkdQYXRoU2VnVmFsdWU6OmNsb25lPFNWR1Bh
dGhTZWdMaW5ldG9Ib3Jpem9udGFsQWJzPigpOyB9CiB9OwogCkBAIC01NSw3ICs1NSw3IEBAIHB1
YmxpYzoKIHByaXZhdGU6CiAgICAgdXNpbmcgU1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWw6OlNW
R1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsOwogICAgIHVuc2lnbmVkIHNob3J0IHBhdGhTZWdUeXBl
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gUEFUSFNFR19MSU5FVE9fSE9SSVpPTlRBTF9SRUw7IH0K
LSAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJo
IjsgfQorICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gImgiX3M7IH0KICAgICBSZWY8U1ZHUGF0aFNlZz4gY2xvbmUoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiBTVkdQYXRoU2VnVmFsdWU6OmNsb25lPFNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsUmVs
PigpOyB9CiB9OwogCkBAIC02NSw3ICs2NSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdXNp
bmcgU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsOjpTVkdQYXRoU2VnTGluZXRvVmVydGljYWw7CiAg
ICAgdW5zaWduZWQgc2hvcnQgcGF0aFNlZ1R5cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBQQVRI
U0VHX0xJTkVUT19WRVJUSUNBTF9BQlM7IH0KLSAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRl
cigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJWIjsgfQorICAgIFN0cmluZyBwYXRoU2VnVHlwZUFz
TGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIlYiX3M7IH0KICAgICBSZWY8U1ZHUGF0aFNl
Zz4gY2xvbmUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBTVkdQYXRoU2VnVmFsdWU6OmNsb25lPFNW
R1BhdGhTZWdMaW5ldG9WZXJ0aWNhbEFicz4oKTsgfQogfTsKIApAQCAtNzUsNyArNzUsNyBAQCBw
dWJsaWM6CiBwcml2YXRlOgogICAgIHVzaW5nIFNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbDo6U1ZH
UGF0aFNlZ0xpbmV0b1ZlcnRpY2FsOwogICAgIHVuc2lnbmVkIHNob3J0IHBhdGhTZWdUeXBlKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gUEFUSFNFR19MSU5FVE9fVkVSVElDQUxfUkVMOyB9Ci0gICAg
U3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAidiI7IH0K
KyAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJ2
Il9zOyB9CiAgICAgUmVmPFNWR1BhdGhTZWc+IGNsb25lKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
U1ZHUGF0aFNlZ1ZhbHVlOjpjbG9uZTxTVkdQYXRoU2VnTGluZXRvVmVydGljYWxSZWw+KCk7IH0K
IH07CiAKQEAgLTg1LDcgKzg1LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB1c2luZyBTVkdQ
YXRoU2VnU2luZ2xlQ29vcmRpbmF0ZTo6U1ZHUGF0aFNlZ1NpbmdsZUNvb3JkaW5hdGU7CiAgICAg
dW5zaWduZWQgc2hvcnQgcGF0aFNlZ1R5cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBQQVRIU0VH
X01PVkVUT19BQlM7IH0KLSAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuICJNIjsgfQorICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29u
c3QgZmluYWwgeyByZXR1cm4gIk0iX3M7IH0KICAgICBSZWY8U1ZHUGF0aFNlZz4gY2xvbmUoKSBj
b25zdCBmaW5hbCB7IHJldHVybiBTVkdQYXRoU2VnVmFsdWU6OmNsb25lPFNWR1BhdGhTZWdNb3Zl
dG9BYnM+KCk7IH0KIH07CiAKQEAgLTk1LDcgKzk1LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAg
ICB1c2luZyBTVkdQYXRoU2VnU2luZ2xlQ29vcmRpbmF0ZTo6U1ZHUGF0aFNlZ1NpbmdsZUNvb3Jk
aW5hdGU7CiAgICAgdW5zaWduZWQgc2hvcnQgcGF0aFNlZ1R5cGUoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiBQQVRIU0VHX01PVkVUT19SRUw7IH0KLSAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRl
cigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJtIjsgfQorICAgIFN0cmluZyBwYXRoU2VnVHlwZUFz
TGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIm0iX3M7IH0KICAgICBSZWY8U1ZHUGF0aFNl
Zz4gY2xvbmUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBTVkdQYXRoU2VnVmFsdWU6OmNsb25lPFNW
R1BhdGhTZWdNb3ZldG9SZWw+KCk7IH0KIH07CiAKQEAgLTEwNSw3ICsxMDUsNyBAQCBwdWJsaWM6
CiBwcml2YXRlOgogICAgIHVzaW5nIFNWR1BhdGhTZWdTaW5nbGVDb29yZGluYXRlOjpTVkdQYXRo
U2VnU2luZ2xlQ29vcmRpbmF0ZTsKICAgICB1bnNpZ25lZCBzaG9ydCBwYXRoU2VnVHlwZSgpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIFBBVEhTRUdfTElORVRPX0FCUzsgfQotICAgIFN0cmluZyBwYXRo
U2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIkwiOyB9CisgICAgU3RyaW5n
IHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiTCJfczsgfQogICAg
IFJlZjxTVkdQYXRoU2VnPiBjbG9uZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFNWR1BhdGhTZWdW
YWx1ZTo6Y2xvbmU8U1ZHUGF0aFNlZ0xpbmV0b0Ficz4oKTsgfQogfTsKIApAQCAtMTE1LDcgKzEx
NSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdXNpbmcgU1ZHUGF0aFNlZ1NpbmdsZUNvb3Jk
aW5hdGU6OlNWR1BhdGhTZWdTaW5nbGVDb29yZGluYXRlOwogICAgIHVuc2lnbmVkIHNob3J0IHBh
dGhTZWdUeXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gUEFUSFNFR19MSU5FVE9fUkVMOyB9Ci0g
ICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAibCI7
IH0KKyAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
ICJsIl9zOyB9CiAgICAgUmVmPFNWR1BhdGhTZWc+IGNsb25lKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gU1ZHUGF0aFNlZ1ZhbHVlOjpjbG9uZTxTVkdQYXRoU2VnTGluZXRvUmVsPigpOyB9CiB9Owog
CkBAIC0xMjUsNyArMTI1LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB1c2luZyBTVkdQYXRo
U2VnQ3VydmV0b1F1YWRyYXRpYzo6U1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWM7CiAgICAgdW5z
aWduZWQgc2hvcnQgcGF0aFNlZ1R5cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBQQVRIU0VHX0NV
UlZFVE9fUVVBRFJBVElDX0FCUzsgfQotICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gIlEiOyB9CisgICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0
ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiUSJfczsgfQogICAgIFJlZjxTVkdQYXRoU2VnPiBj
bG9uZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFNWR1BhdGhTZWdWYWx1ZTo6Y2xvbmU8U1ZHUGF0
aFNlZ0N1cnZldG9RdWFkcmF0aWNBYnM+KCk7IH0KIH07CiAKQEAgLTEzNSw3ICsxMzUsNyBAQCBw
dWJsaWM6CiBwcml2YXRlOgogICAgIHVzaW5nIFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljOjpT
VkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpYzsKICAgICB1bnNpZ25lZCBzaG9ydCBwYXRoU2VnVHlw
ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFBBVEhTRUdfQ1VSVkVUT19RVUFEUkFUSUNfUkVMOyB9
Ci0gICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAi
cSI7IH0KKyAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuICJxIl9zOyB9CiAgICAgUmVmPFNWR1BhdGhTZWc+IGNsb25lKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gU1ZHUGF0aFNlZ1ZhbHVlOjpjbG9uZTxTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Jl
bD4oKTsgfQogfTsKIApAQCAtMTQ1LDcgKzE0NSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAg
dXNpbmcgU1ZHUGF0aFNlZ0N1cnZldG9DdWJpYzo6U1ZHUGF0aFNlZ0N1cnZldG9DdWJpYzsKICAg
ICB1bnNpZ25lZCBzaG9ydCBwYXRoU2VnVHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFBBVEhT
RUdfQ1VSVkVUT19DVUJJQ19BQlM7IH0KLSAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuICJDIjsgfQorICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0
dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIkMiX3M7IH0KICAgICBSZWY8U1ZHUGF0aFNlZz4g
Y2xvbmUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBTVkdQYXRoU2VnVmFsdWU6OmNsb25lPFNWR1Bh
dGhTZWdDdXJ2ZXRvQ3ViaWNBYnM+KCk7IH0KIH07CiAKQEAgLTE1NSw3ICsxNTUsNyBAQCBwdWJs
aWM6CiBwcml2YXRlOgogICAgIHVzaW5nIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWM6OlNWR1BhdGhT
ZWdDdXJ2ZXRvQ3ViaWM7CiAgICAgdW5zaWduZWQgc2hvcnQgcGF0aFNlZ1R5cGUoKSBjb25zdCBm
aW5hbCB7IHJldHVybiBQQVRIU0VHX0NVUlZFVE9fQ1VCSUNfUkVMOyB9Ci0gICAgU3RyaW5nIHBh
dGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiYyI7IH0KKyAgICBTdHJp
bmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJjIl9zOyB9CiAg
ICAgUmVmPFNWR1BhdGhTZWc+IGNsb25lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gU1ZHUGF0aFNl
Z1ZhbHVlOjpjbG9uZTxTVkdQYXRoU2VnQ3VydmV0b0N1YmljUmVsPigpOyB9CiB9OwogCkBAIC0x
NjUsNyArMTY1LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB1c2luZyBTVkdQYXRoU2VnQXJj
OjpTVkdQYXRoU2VnQXJjOwogICAgIHVuc2lnbmVkIHNob3J0IHBhdGhTZWdUeXBlKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gUEFUSFNFR19BUkNfQUJTOyB9Ci0gICAgU3RyaW5nIHBhdGhTZWdUeXBl
QXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiQSI7IH0KKyAgICBTdHJpbmcgcGF0aFNl
Z1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJBIl9zOyB9CiAgICAgUmVmPFNW
R1BhdGhTZWc+IGNsb25lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gU1ZHUGF0aFNlZ1ZhbHVlOjpj
bG9uZTxTVkdQYXRoU2VnQXJjQWJzPigpOyB9CiB9OwogCkBAIC0xNzUsNyArMTc1LDcgQEAgcHVi
bGljOgogcHJpdmF0ZToKICAgICB1c2luZyBTVkdQYXRoU2VnQXJjOjpTVkdQYXRoU2VnQXJjOwog
ICAgIHVuc2lnbmVkIHNob3J0IHBhdGhTZWdUeXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gUEFU
SFNFR19BUkNfUkVMOyB9Ci0gICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBm
aW5hbCB7IHJldHVybiAiYSI7IH0KKyAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuICJhIl9zOyB9CiAgICAgUmVmPFNWR1BhdGhTZWc+IGNsb25lKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gU1ZHUGF0aFNlZ1ZhbHVlOjpjbG9uZTxTVkdQYXRoU2VnQXJj
UmVsPigpOyB9CiB9OwogCkBAIC0xODUsNyArMTg1LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAg
ICB1c2luZyBTVkdQYXRoU2VnU2luZ2xlQ29vcmRpbmF0ZTo6U1ZHUGF0aFNlZ1NpbmdsZUNvb3Jk
aW5hdGU7CiAgICAgdW5zaWduZWQgc2hvcnQgcGF0aFNlZ1R5cGUoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiBQQVRIU0VHX0NVUlZFVE9fUVVBRFJBVElDX1NNT09USF9BQlM7IH0KLSAgICBTdHJpbmcg
cGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJUIjsgfQorICAgIFN0
cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIlQiX3M7IH0K
ICAgICBSZWY8U1ZHUGF0aFNlZz4gY2xvbmUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBTVkdQYXRo
U2VnVmFsdWU6OmNsb25lPFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoQWJzPigpOyB9
CiB9OwogCkBAIC0xOTUsNyArMTk1LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB1c2luZyBT
VkdQYXRoU2VnU2luZ2xlQ29vcmRpbmF0ZTo6U1ZHUGF0aFNlZ1NpbmdsZUNvb3JkaW5hdGU7CiAg
ICAgdW5zaWduZWQgc2hvcnQgcGF0aFNlZ1R5cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBQQVRI
U0VHX0NVUlZFVE9fUVVBRFJBVElDX1NNT09USF9SRUw7IH0KLSAgICBTdHJpbmcgcGF0aFNlZ1R5
cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJ0IjsgfQorICAgIFN0cmluZyBwYXRo
U2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gInQiX3M7IH0KICAgICBSZWY8
U1ZHUGF0aFNlZz4gY2xvbmUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBTVkdQYXRoU2VnVmFsdWU6
OmNsb25lPFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoUmVsPigpOyB9CiB9OwogCkBA
IC0yMDUsNyArMjA1LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB1c2luZyBTVkdQYXRoU2Vn
Q3VydmV0b0N1YmljU21vb3RoOjpTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoOwogICAgIHVu
c2lnbmVkIHNob3J0IHBhdGhTZWdUeXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gUEFUSFNFR19D
VVJWRVRPX0NVQklDX1NNT09USF9BQlM7IH0KLSAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRl
cigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJTIjsgfQorICAgIFN0cmluZyBwYXRoU2VnVHlwZUFz
TGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIlMiX3M7IH0KICAgICBSZWY8U1ZHUGF0aFNl
Zz4gY2xvbmUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBTVkdQYXRoU2VnVmFsdWU6OmNsb25lPFNW
R1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhBYnM+KCk7IH0KIH07CiAKQEAgLTIxNSw3ICsyMTUs
NyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHVzaW5nIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNT
bW9vdGg6OlNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGg7CiAgICAgdW5zaWduZWQgc2hvcnQg
cGF0aFNlZ1R5cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBQQVRIU0VHX0NVUlZFVE9fQ1VCSUNf
U01PT1RIX1JFTDsgfQotICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gInMiOyB9CisgICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25z
dCBmaW5hbCB7IHJldHVybiAicyJfczsgfQogICAgIFJlZjxTVkdQYXRoU2VnPiBjbG9uZSgpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIFNWR1BhdGhTZWdWYWx1ZTo6Y2xvbmU8U1ZHUGF0aFNlZ0N1cnZl
dG9DdWJpY1Ntb290aFJlbD4oKTsgfQogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Jh
ZGlhbEdyYWRpZW50RWxlbWVudC5oCmluZGV4IDg0ZjExNTg4ZjNlMjgxZTZmNmUwN2E2MDlkMDg5
YTk3ODcwOGEzOWUuLjI0MTk3Zjc0NTc3MTY1N2MxN2Q4ZDA3YjJjZDI0ZTU0ZTM0YzgwOGUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmgKQEAgLTYz
LDEyICs2MywxMiBAQCBwcml2YXRlOgogICAgIGJvb2wgc2VsZkhhc1JlbGF0aXZlTGVuZ3Rocygp
IGNvbnN0IG92ZXJyaWRlOwogCiAgICAgUHJvcGVydHlSZWdpc3RyeSBtX3Byb3BlcnR5UmVnaXN0
cnkgeyAqdGhpcyB9OwotICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV9jeCB7IFNWR0FuaW1h
dGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6V2lkdGgsICI1MCUiKSB9Owot
ICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV9jeSB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVh
dGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6SGVpZ2h0LCAiNTAlIikgfTsKLSAgICBSZWY8U1ZHQW5p
bWF0ZWRMZW5ndGg+IG1fciB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVu
Z3RoTW9kZTo6T3RoZXIsICI1MCUiKSB9OworICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV9j
eCB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6V2lkdGgs
ICI1MCUiX3MpIH07CisgICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX2N5IHsgU1ZHQW5pbWF0
ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpIZWlnaHQsICI1MCUiX3MpIH07
CisgICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX3IgeyBTVkdBbmltYXRlZExlbmd0aDo6Y3Jl
YXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6Ok90aGVyLCAiNTAlIl9zKSB9OwogICAgIFJlZjxTVkdB
bmltYXRlZExlbmd0aD4gbV9meCB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZH
TGVuZ3RoTW9kZTo6V2lkdGgpIH07CiAgICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX2Z5IHsg
U1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpIZWlnaHQpIH07
Ci0gICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX2ZyIHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNy
ZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpPdGhlciwgIjAlIikgfTsKKyAgICBSZWY8U1ZHQW5p
bWF0ZWRMZW5ndGg+IG1fZnIgeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xl
bmd0aE1vZGU6Ok90aGVyLCAiMCUiX3MpIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRy
YWl0cy5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlUcmFpdHMu
aAppbmRleCA0Mzk5NzA0MzBmNjU2YTk4NjVlNmU5YzlkOWVmNWVhMjRiYmE1MzA0Li44NDVhYjRh
YmZmYjc4OTU4NDg2OWY5ZmYxYWE1ZTgzMjAxMjgwYTYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRyYWl0cy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5VHJhaXRzLmgKQEAgLTM5LDcgKzM5LDcgQEAg
c3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPGJvb2w+IHsKICAgICBzdGF0aWMgYm9vbCBpbml0aWFs
VmFsdWUoKSB7IHJldHVybiBmYWxzZTsgfQogICAgIHN0YXRpYyBib29sIGZyb21TdHJpbmcoY29u
c3QgU3RyaW5nJiBzdHJpbmcpIHsgcmV0dXJuIHN0cmluZyA9PSAidHJ1ZSI7IH0KICAgICBzdGF0
aWMgc3RkOjpvcHRpb25hbDxib29sPiBwYXJzZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3Qg
U3RyaW5nJikgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgcmV0dXJuIGluaXRpYWxWYWx1ZSgpOyB9
Ci0gICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhib29sIHR5cGUpIHsgcmV0dXJuIHR5cGUgPyAi
dHJ1ZSIgOiAiZmFsc2UiOyB9CisgICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhib29sIHR5cGUp
IHsgcmV0dXJuIHR5cGUgPyAidHJ1ZSJfcyA6ICJmYWxzZSJfczsgfQogfTsKIAogdGVtcGxhdGU8
PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrQ29udGVudEZpbHRlclNl
dHRpbmdzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDb250ZW50RmlsdGVyU2V0dGlu
Z3MuaAppbmRleCAxODFlZmY1YjViOGVhMDAxOGU5ZjNiMGMyNDNhYzdkNGUzZTlkY2E3Li5mM2M5
N2YzZjhlMTNhYTBmMTI3ZGVlODQzOWQ2YjVjMGQwZTNjMWUzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL01vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL01vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MuaApAQCAtNDgsNyArNDgs
NyBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX1RFU1RTVVBQT1JUX0VYUE9SVCBzdGF0aWMgTW9j
a0NvbnRlbnRGaWx0ZXJTZXR0aW5ncyYgc2luZ2xldG9uKCk7CiAgICAgV0VCQ09SRV9URVNUU1VQ
UE9SVF9FWFBPUlQgc3RhdGljIHZvaWQgcmVzZXQoKTsKLSAgICBzdGF0aWMgY29uc3QgY2hhciog
dW5ibG9ja1VSTEhvc3QoKSB7IHJldHVybiAibW9jay11bmJsb2NrIjsgfQorICAgIHN0YXRpYyBB
U0NJSUxpdGVyYWwgdW5ibG9ja1VSTEhvc3QoKSB7IHJldHVybiAibW9jay11bmJsb2NrIl9zOyB9
CiAKICAgICAvLyBUcmljayB0aGUgZ2VuZXJhdGVkIGJpbmRpbmdzIGludG8gdGhpbmtpbmcgd2Un
cmUgUmVmQ291bnRlZC4KICAgICB2b2lkIHJlZigpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUveG1sL1hQYXRoVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aFZhbHVlLmgK
aW5kZXggZDkxYzc3ZDEwMmQyNGFkMjNlNTkzOTg2ZTA0MGJhMjVjMDlkYjM2Yi4uZWE4M2Y3ZDBi
YjFhYWYxNGE3YmE3MjEwOTRmM2IyMTlhMjJiMjNiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUveG1sL1hQYXRoVmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhWYWx1ZS5o
CkBAIC00MCw3ICs0MCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgIFZhbHVl
KGRvdWJsZSB2YWx1ZSkgOiBtX3R5cGUoTnVtYmVyVmFsdWUpLCBtX251bWJlcih2YWx1ZSkgeyB9
CiAKICAgICAgICAgICAgIFZhbHVlKGNvbnN0IFN0cmluZyYgdmFsdWUpIDogbV90eXBlKFN0cmlu
Z1ZhbHVlKSwgbV9kYXRhKERhdGE6OmNyZWF0ZSh2YWx1ZSkpIHsgfQotICAgICAgICAgICAgVmFs
dWUoY29uc3QgY2hhciogdmFsdWUpIDogbV90eXBlKFN0cmluZ1ZhbHVlKSwgbV9kYXRhKERhdGE6
OmNyZWF0ZSh2YWx1ZSkpIHsgfQorICAgICAgICAgICAgVmFsdWUoY29uc3QgY2hhciogdmFsdWUp
IDogbV90eXBlKFN0cmluZ1ZhbHVlKSwgbV9kYXRhKERhdGE6OmNyZWF0ZShTdHJpbmcgeyB2YWx1
ZSB9KSkgeyB9CiAKICAgICAgICAgICAgIGV4cGxpY2l0IFZhbHVlKE5vZGVTZXQmJiB2YWx1ZSkK
ICAgICAgICAgICAgICAgICA6IG1fdHlwZShOb2RlU2V0VmFsdWUpLCBtX2RhdGEoRGF0YTo6Y3Jl
YXRlKFdURk1vdmUodmFsdWUpKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xT
dHlsZVNoZWV0LmggYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMU3R5bGVTaGVldC5oCmluZGV4IGEy
YmY4ZTMzNDlhYjU2MzZmNTI3NGU0NTI0YzMwYmIxODZjNmZkZWQuLjVmYmQ2ZWJhNDc5ZDg3ZTli
N2U4MjFhZjllYTMyZjAzMGY0Njg1MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9Y
U0xTdHlsZVNoZWV0LmgKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hTTFN0eWxlU2hlZXQuaApA
QCAtODQsNyArODQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBtYXJrQXNQcm9jZXNzZWQoKTsKICAg
ICBib29sIHByb2Nlc3NlZCgpIGNvbnN0IHsgcmV0dXJuIG1fcHJvY2Vzc2VkOyB9CiAgICAgCi0g
ICAgU3RyaW5nIHR5cGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAidGV4dC94bWwiOyB9Cisg
ICAgU3RyaW5nIHR5cGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAidGV4dC94bWwiX3M7IH0K
ICAgICBib29sIGRpc2FibGVkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9pc0Rpc2FibGVk
OyB9CiAgICAgdm9pZCBzZXREaXNhYmxlZChib29sIGIpIG92ZXJyaWRlIHsgbV9pc0Rpc2FibGVk
ID0gYjsgfQogICAgIE5vZGUqIG93bmVyTm9kZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1f
b3duZXJOb2RlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViR1BVL1dHU0wvUGFyc2VyLmNwcCBi
L1NvdXJjZS9XZWJHUFUvV0dTTC9QYXJzZXIuY3BwCmluZGV4IDYyNTQ4N2RlMTg1ZmVlY2Y5NGEx
ZDFiM2YwYmM5ODQ2ZTNkYjhhMGEuLmU2MmYzZTBjMDg3ZWZhMWMxYmMyZDA4YjFmMmQ3ODFhYTlj
NWNjNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJHUFUvV0dTTC9QYXJzZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJHUFUvV0dTTC9QYXJzZXIuY3BwCkBAIC0yMzQsNyArMjM0LDcgQEAgRXhwZWN0ZWQ8
VW5pcXVlUmVmPEFTVDo6R2xvYmFsRGVjbD4sIEVycm9yPiBQYXJzZXI8TGV4ZXI+OjpwYXJzZUds
b2JhbERlY2woKQogICAgICAgICByZXR1cm4geyBtYWtlVW5pcXVlUmVmPEFTVDo6RnVuY3Rpb25E
ZWNsPihXVEZNb3ZlKGZuKSkgfTsKICAgICB9CiAgICAgZGVmYXVsdDoKLSAgICAgICAgRkFJTCgi
VHJ5aW5nIHRvIHBhcnNlIGEgR2xvYmFsRGVjbCwgZXhwZWN0ZWQgJ3ZhcicsICdmbicsIG9yICdz
dHJ1Y3QnLiIpOworICAgICAgICBGQUlMKCJUcnlpbmcgdG8gcGFyc2UgYSBHbG9iYWxEZWNsLCBl
eHBlY3RlZCAndmFyJywgJ2ZuJywgb3IgJ3N0cnVjdCcuIl9zKTsKICAgICB9CiB9CiAKQEAgLTI4
Miw3ICsyODIsNyBAQCBFeHBlY3RlZDxVbmlxdWVSZWY8QVNUOjpBdHRyaWJ1dGU+LCBFcnJvcj4g
UGFyc2VyPExleGVyPjo6cGFyc2VBdHRyaWJ1dGUoKQogICAgICAgICAgICAgUkVUVVJOX05PREVf
UkVGKFN0YWdlQXR0cmlidXRlLCBBU1Q6OlN0YWdlQXR0cmlidXRlOjpTdGFnZTo6VmVydGV4KTsK
ICAgICAgICAgaWYgKHN0YWdlLm1faWRlbnQgPT0gImZyYWdtZW50IikKICAgICAgICAgICAgIFJF
VFVSTl9OT0RFX1JFRihTdGFnZUF0dHJpYnV0ZSwgQVNUOjpTdGFnZUF0dHJpYnV0ZTo6U3RhZ2U6
OkZyYWdtZW50KTsKLSAgICAgICAgRkFJTCgiSW52YWxpZCBzdGFnZSBhdHRyaWJ1dGUsIHRoZSBv
bmx5IG9wdGlvbnMgYXJlICdjb21wdXRlJywgJ3ZlcnRleCcsICdmcmFnbWVudCcuIik7CisgICAg
ICAgIEZBSUwoIkludmFsaWQgc3RhZ2UgYXR0cmlidXRlLCB0aGUgb25seSBvcHRpb25zIGFyZSAn
Y29tcHV0ZScsICd2ZXJ0ZXgnLCAnZnJhZ21lbnQnLiJfcyk7CiAgICAgfQogICAgIGlmIChpZGVu
dC5tX2lkZW50ID09ICJsb2NhdGlvbiIpIHsKICAgICAgICAgQ09OU1VNRV9UWVBFKFBhcmVuTGVm
dCk7CkBAIC0yOTcsNyArMjk3LDcgQEAgRXhwZWN0ZWQ8VW5pcXVlUmVmPEFTVDo6QXR0cmlidXRl
PiwgRXJyb3I+IFBhcnNlcjxMZXhlcj46OnBhcnNlQXR0cmlidXRlKCkKICAgICAgICAgQ09OU1VN
RV9UWVBFKFBhcmVuUmlnaHQpOwogICAgICAgICBSRVRVUk5fTk9ERV9SRUYoQnVpbHRpbkF0dHJp
YnV0ZSwgbmFtZS5tX2lkZW50KTsKICAgICB9Ci0gICAgRkFJTCgiVW5rbm93biBhdHRyaWJ1dGUs
IHRoZSBvbmx5IHN1cHBvcnRlZCBhdHRyaWJ1dGVzIGFyZSAnZ3JvdXAnLCAnYmluZGluZycsICdz
dGFnZScuIik7CisgICAgRkFJTCgiVW5rbm93biBhdHRyaWJ1dGUsIHRoZSBvbmx5IHN1cHBvcnRl
ZCBhdHRyaWJ1dGVzIGFyZSAnZ3JvdXAnLCAnYmluZGluZycsICdzdGFnZScuIl9zKTsKIH0KIAog
dGVtcGxhdGU8dHlwZW5hbWUgTGV4ZXI+CkBAIC0zNjAsNyArMzYwLDcgQEAgRXhwZWN0ZWQ8VW5p
cXVlUmVmPEFTVDo6VHlwZURlY2w+LCBFcnJvcj4gUGFyc2VyPExleGVyPjo6cGFyc2VUeXBlRGVj
bCgpCiAgICAgICAgIHJldHVybiBwYXJzZVR5cGVEZWNsQWZ0ZXJJZGVudGlmaWVyKFdURk1vdmUo
bmFtZS5tX2lkZW50KSwgX3N0YXJ0T2ZFbGVtZW50UG9zaXRpb24pOwogICAgIH0KIAotICAgIEZB
SUwoIlRyaWVkIHBhcnNpbmcgYSB0eXBlIGFuZCBpdCBkaWQgbm90IHN0YXJ0IHdpdGggYW4gaWRl
bnRpZmllciIpOworICAgIEZBSUwoIlRyaWVkIHBhcnNpbmcgYSB0eXBlIGFuZCBpdCBkaWQgbm90
IHN0YXJ0IHdpdGggYW4gaWRlbnRpZmllciJfcyk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIExl
eGVyPgpAQCAtNDUwLDcgKzQ1MCw3IEBAIEV4cGVjdGVkPEFTVDo6U3RvcmFnZUNsYXNzLCBFcnJv
cj4gUGFyc2VyPExleGVyPjo6cGFyc2VTdG9yYWdlQ2xhc3MoKQogICAgICAgICByZXR1cm4geyBB
U1Q6OlN0b3JhZ2VDbGFzczo6U3RvcmFnZSB9OwogICAgIH0KIAotICAgIEZBSUwoIkV4cGVjdGVk
IG9uZSBvZiAnZnVuY3Rpb24nLydwcml2YXRlJy8nc3RvcmFnZScvJ3VuaWZvcm0nLyd3b3JrZ3Jv
dXAnIik7CisgICAgRkFJTCgiRXhwZWN0ZWQgb25lIG9mICdmdW5jdGlvbicvJ3ByaXZhdGUnLydz
dG9yYWdlJy8ndW5pZm9ybScvJ3dvcmtncm91cCciX3MpOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFt
ZSBMZXhlcj4KQEAgLTQ3MSw3ICs0NzEsNyBAQCBFeHBlY3RlZDxBU1Q6OkFjY2Vzc01vZGUsIEVy
cm9yPiBQYXJzZXI8TGV4ZXI+OjpwYXJzZUFjY2Vzc01vZGUoKQogICAgICAgICByZXR1cm4geyBB
U1Q6OkFjY2Vzc01vZGU6OlJlYWRXcml0ZSB9OwogICAgIH0KIAotICAgIEZBSUwoIkV4cGVjdGVk
IG9uZSBvZiAncmVhZCcvJ3dyaXRlJy8ncmVhZF93cml0ZSciKTsKKyAgICBGQUlMKCJFeHBlY3Rl
ZCBvbmUgb2YgJ3JlYWQnLyd3cml0ZScvJ3JlYWRfd3JpdGUnIl9zKTsKIH0KIAogdGVtcGxhdGU8
dHlwZW5hbWUgTGV4ZXI+CkBAIC01NDcsNyArNTQ3LDcgQEAgRXhwZWN0ZWQ8VW5pcXVlUmVmPEFT
VDo6U3RhdGVtZW50PiwgRXJyb3I+IFBhcnNlcjxMZXhlcj46OnBhcnNlU3RhdGVtZW50KCkKICAg
ICAgICAgUkVUVVJOX05PREVfUkVGKEFzc2lnbm1lbnRTdGF0ZW1lbnQsIGxocy5tb3ZlVG9Vbmlx
dWVQdHIoKSwgV1RGTW92ZShyaHMpKTsKICAgICB9CiAgICAgZGVmYXVsdDoKLSAgICAgICAgRkFJ
TCgiTm90IGEgdmFsaWQgc3RhdGVtZW50Iik7CisgICAgICAgIEZBSUwoIk5vdCBhIHZhbGlkIHN0
YXRlbWVudCJfcyk7CiAgICAgfQogfQogCkBAIC02OTQsNyArNjk0LDcgQEAgRXhwZWN0ZWQ8VW5p
cXVlUmVmPEFTVDo6RXhwcmVzc2lvbj4sIEVycm9yPiBQYXJzZXI8TGV4ZXI+OjpwYXJzZVByaW1h
cnlFeHByZXNzaW8KICAgICBkZWZhdWx0OgogICAgICAgICBicmVhazsKICAgICB9Ci0gICAgRkFJ
TCgiRXhwZWN0ZWQgb25lIG9mICcoJywgYSBsaXRlcmFsLCBvciBhbiBpZGVudGlmaWVyIik7Cisg
ICAgRkFJTCgiRXhwZWN0ZWQgb25lIG9mICcoJywgYSBsaXRlcmFsLCBvciBhbiBpZGVudGlmaWVy
Il9zKTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgTGV4ZXI+CkBAIC03MzQsNyArNzM0LDcgQEAg
RXhwZWN0ZWQ8VW5pcXVlUmVmPEFTVDo6RXhwcmVzc2lvbj4sIEVycm9yPiBQYXJzZXI8TGV4ZXI+
OjpwYXJzZUNvcmVMSFNFeHByZXNzaW8KICAgICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAgRkFJ
TCgiVHJpZWQgdG8gcGFyc2UgdGhlIGxlZnQtaGFuZCBzaWRlIG9mIGFuIGFzc2lnbm1lbnQgYW5k
IGZhaWxlZCIpOworICAgIEZBSUwoIlRyaWVkIHRvIHBhcnNlIHRoZSBsZWZ0LWhhbmQgc2lkZSBv
ZiBhbiBhc3NpZ25tZW50IGFuZCBmYWlsZWQiX3MpOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBM
ZXhlcj4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJHUFUvV0dTTC9Ub2tlbi5jcHAgYi9Tb3VyY2Uv
V2ViR1BVL1dHU0wvVG9rZW4uY3BwCmluZGV4IGRiM2MwYTQzZTEwMzcyZWI5OTQxZmNmMTZkOGIy
MGVkZTdmMDg5MTIuLjY3MzFhYTIyYzEyYTMzMDM2OGNmYjFiNzYwYzk2NmVlMTBmMWFjMTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJHUFUvV0dTTC9Ub2tlbi5jcHAKKysrIGIvU291cmNlL1dlYkdQ
VS9XR1NML1Rva2VuLmNwcApAQCAtMzIsODkgKzMyLDg5IEBAIFN0cmluZyB0b1N0cmluZyhUb2tl
blR5cGUgdHlwZSkKIHsKICAgICBzd2l0Y2ggKHR5cGUpIHsKICAgICBjYXNlIFRva2VuVHlwZTo6
SW52YWxpZDoKLSAgICAgICAgcmV0dXJuICJJbnZhbGlkIjsKKyAgICAgICAgcmV0dXJuICJJbnZh
bGlkIl9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpFbmRPZkZpbGU6Ci0gICAgICAgIHJldHVybiAi
RU9GIjsKKyAgICAgICAgcmV0dXJuICJFT0YiX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6OkludGVn
ZXJMaXRlcmFsOgotICAgICAgICByZXR1cm4gIkludGVnZXJMaXRlcmFsIjsKKyAgICAgICAgcmV0
dXJuICJJbnRlZ2VyTGl0ZXJhbCJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6SW50ZWdlckxpdGVy
YWxTaWduZWQ6Ci0gICAgICAgIHJldHVybiAiSW50ZWdlckxpdGVyYWxTaWduZWQiOworICAgICAg
ICByZXR1cm4gIkludGVnZXJMaXRlcmFsU2lnbmVkIl9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpJ
bnRlZ2VyTGl0ZXJhbFVuc2lnbmVkOgotICAgICAgICByZXR1cm4gIkludGVnZXJMaXRlcmFsVW5z
aWduZWQiOworICAgICAgICByZXR1cm4gIkludGVnZXJMaXRlcmFsVW5zaWduZWQiX3M7CiAgICAg
Y2FzZSBUb2tlblR5cGU6OkRlY2ltYWxGbG9hdExpdGVyYWw6Ci0gICAgICAgIHJldHVybiAiRGVj
aW1hbEZsb2F0TGl0ZXJhbCI7CisgICAgICAgIHJldHVybiAiRGVjaW1hbEZsb2F0TGl0ZXJhbCJf
czsKICAgICBjYXNlIFRva2VuVHlwZTo6SGV4RmxvYXRMaXRlcmFsOgotICAgICAgICByZXR1cm4g
IkhleEZsb2F0TGl0ZXJhbCI7CisgICAgICAgIHJldHVybiAiSGV4RmxvYXRMaXRlcmFsIl9zOwog
ICAgIGNhc2UgVG9rZW5UeXBlOjpJZGVudGlmaWVyOgotICAgICAgICByZXR1cm4gIklkZW50aWZp
ZXIiOworICAgICAgICByZXR1cm4gIklkZW50aWZpZXIiX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6
OlJlc2VydmVkV29yZDoKLSAgICAgICAgcmV0dXJuICJSZXNlcnZlZFdvcmQiOworICAgICAgICBy
ZXR1cm4gIlJlc2VydmVkV29yZCJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6S2V5d29yZFN0cnVj
dDoKLSAgICAgICAgcmV0dXJuICJzdHJ1Y3QiOworICAgICAgICByZXR1cm4gInN0cnVjdCJfczsK
ICAgICBjYXNlIFRva2VuVHlwZTo6S2V5d29yZEZuOgotICAgICAgICByZXR1cm4gImZuIjsKKyAg
ICAgICAgcmV0dXJuICJmbiJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6S2V5d29yZEZ1bmN0aW9u
OgotICAgICAgICByZXR1cm4gImZ1bmN0aW9uIjsKKyAgICAgICAgcmV0dXJuICJmdW5jdGlvbiJf
czsKICAgICBjYXNlIFRva2VuVHlwZTo6S2V5d29yZFByaXZhdGU6Ci0gICAgICAgIHJldHVybiAi
cHJpdmF0ZSI7CisgICAgICAgIHJldHVybiAicHJpdmF0ZSJfczsKICAgICBjYXNlIFRva2VuVHlw
ZTo6S2V5d29yZFJlYWQ6Ci0gICAgICAgIHJldHVybiAicmVhZCI7CisgICAgICAgIHJldHVybiAi
cmVhZCJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6S2V5d29yZFJlYWRXcml0ZToKLSAgICAgICAg
cmV0dXJuICJyZWFkX3dyaXRlIjsKKyAgICAgICAgcmV0dXJuICJyZWFkX3dyaXRlIl9zOwogICAg
IGNhc2UgVG9rZW5UeXBlOjpLZXl3b3JkUmV0dXJuOgotICAgICAgICByZXR1cm4gInJldHVybiI7
CisgICAgICAgIHJldHVybiAicmV0dXJuIl9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpLZXl3b3Jk
U3RvcmFnZToKLSAgICAgICAgcmV0dXJuICJzdG9yYWdlIjsKKyAgICAgICAgcmV0dXJuICJzdG9y
YWdlIl9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpLZXl3b3JkVW5pZm9ybToKLSAgICAgICAgcmV0
dXJuICJ1bmlmb3JtIjsKKyAgICAgICAgcmV0dXJuICJ1bmlmb3JtIl9zOwogICAgIGNhc2UgVG9r
ZW5UeXBlOjpLZXl3b3JkVmFyOgotICAgICAgICByZXR1cm4gInZhciI7CisgICAgICAgIHJldHVy
biAidmFyIl9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpLZXl3b3JkV29ya2dyb3VwOgotICAgICAg
ICByZXR1cm4gIndvcmtncm91cCI7CisgICAgICAgIHJldHVybiAid29ya2dyb3VwIl9zOwogICAg
IGNhc2UgVG9rZW5UeXBlOjpLZXl3b3JkV3JpdGU6Ci0gICAgICAgIHJldHVybiAid3JpdGUiOwor
ICAgICAgICByZXR1cm4gIndyaXRlIl9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpLZXl3b3JkSTMy
OgotICAgICAgICByZXR1cm4gImkzMiI7CisgICAgICAgIHJldHVybiAiaTMyIl9zOwogICAgIGNh
c2UgVG9rZW5UeXBlOjpLZXl3b3JkVTMyOgotICAgICAgICByZXR1cm4gInUzMiI7CisgICAgICAg
IHJldHVybiAidTMyIl9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpLZXl3b3JkRjMyOgotICAgICAg
ICByZXR1cm4gImYzMiI7CisgICAgICAgIHJldHVybiAiZjMyIl9zOwogICAgIGNhc2UgVG9rZW5U
eXBlOjpLZXl3b3JkQm9vbDoKLSAgICAgICAgcmV0dXJuICJib29sIjsKKyAgICAgICAgcmV0dXJu
ICJib29sIl9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpMaXRlcmFsVHJ1ZToKLSAgICAgICAgcmV0
dXJuICJ0cnVlIjsKKyAgICAgICAgcmV0dXJuICJ0cnVlIl9zOwogICAgIGNhc2UgVG9rZW5UeXBl
OjpMaXRlcmFsRmFsc2U6Ci0gICAgICAgIHJldHVybiAiZmFsc2UiOworICAgICAgICByZXR1cm4g
ImZhbHNlIl9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpBcnJvdzoKLSAgICAgICAgcmV0dXJuICIt
PiI7CisgICAgICAgIHJldHVybiAiLT4iX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6OkF0dHJpYnV0
ZToKLSAgICAgICAgcmV0dXJuICJAIjsKKyAgICAgICAgcmV0dXJuICJAIl9zOwogICAgIGNhc2Ug
VG9rZW5UeXBlOjpCcmFja2V0TGVmdDoKLSAgICAgICAgcmV0dXJuICJbIjsKKyAgICAgICAgcmV0
dXJuICJbIl9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpCcmFja2V0UmlnaHQ6Ci0gICAgICAgIHJl
dHVybiAiXSI7CisgICAgICAgIHJldHVybiAiXSJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6QnJh
Y2VMZWZ0OgotICAgICAgICByZXR1cm4gInsiOworICAgICAgICByZXR1cm4gInsiX3M7CiAgICAg
Y2FzZSBUb2tlblR5cGU6OkJyYWNlUmlnaHQ6Ci0gICAgICAgIHJldHVybiAifSI7CisgICAgICAg
IHJldHVybiAifSJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6Q29sb246Ci0gICAgICAgIHJldHVy
biAiOiI7CisgICAgICAgIHJldHVybiAiOiJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6Q29tbWE6
Ci0gICAgICAgIHJldHVybiAiLCI7CisgICAgICAgIHJldHVybiAiLCJfczsKICAgICBjYXNlIFRv
a2VuVHlwZTo6RXF1YWw6Ci0gICAgICAgIHJldHVybiAiPSI7CisgICAgICAgIHJldHVybiAiPSJf
czsKICAgICBjYXNlIFRva2VuVHlwZTo6R1Q6Ci0gICAgICAgIHJldHVybiAiPiI7CisgICAgICAg
IHJldHVybiAiPiJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6TFQ6Ci0gICAgICAgIHJldHVybiAi
PCI7CisgICAgICAgIHJldHVybiAiPCJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6UGVyaW9kOgot
ICAgICAgICByZXR1cm4gIi4iOworICAgICAgICByZXR1cm4gIi4iX3M7CiAgICAgY2FzZSBUb2tl
blR5cGU6OlBhcmVuTGVmdDoKLSAgICAgICAgcmV0dXJuICIoIjsKKyAgICAgICAgcmV0dXJuICIo
Il9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpQYXJlblJpZ2h0OgotICAgICAgICByZXR1cm4gIiki
OworICAgICAgICByZXR1cm4gIikiX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6OlNlbWljb2xvbjoK
LSAgICAgICAgcmV0dXJuICI7IjsKKyAgICAgICAgcmV0dXJuICI7Il9zOwogICAgIH0KIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkdQVS9XZWJHUFUvQWRhcHRlci5tbSBiL1NvdXJjZS9XZWJH
UFUvV2ViR1BVL0FkYXB0ZXIubW0KaW5kZXggMWJiYWQ2MWE2Y2U3ZTI5NzU2ZGUxNTYxYWE0NjJk
ZTVkMWE2ODI2OC4uNjAwZDFkNmU3YmYwZjc3YmRkMmY1MThmZjk0MzUwNzgxMjUyZmEzOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkdQVS9XZWJHUFUvQWRhcHRlci5tbQorKysgYi9Tb3VyY2UvV2Vi
R1BVL1dlYkdQVS9BZGFwdGVyLm1tCkBAIC0xMjMsNyArMTIzLDcgQEAgdm9pZCBBZGFwdGVyOjpy
ZXF1ZXN0RGV2aWNlKGNvbnN0IFdHUFVEZXZpY2VEZXNjcmlwdG9yJiBkZXNjcmlwdG9yLCBDb21w
bGV0aW9uSGEKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGNhbGxiYWNrKFdHUFVSZXF1
ZXN0RGV2aWNlU3RhdHVzX1N1Y2Nlc3MsIERldmljZTo6Y3JlYXRlKG1fZGV2aWNlLCBkZXNjcmlw
dG9yLmxhYmVsLCBtX2luc3RhbmNlKSwgeyB9KTsKKyAgICBjYWxsYmFjayhXR1BVUmVxdWVzdERl
dmljZVN0YXR1c19TdWNjZXNzLCBEZXZpY2U6OmNyZWF0ZShtX2RldmljZSwgU3RyaW5nIHsgZGVz
Y3JpcHRvci5sYWJlbCB9LCBtX2luc3RhbmNlKSwgeyB9KTsKIH0KIAogfSAvLyBuYW1lc3BhY2Ug
V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9CdWZmZXIubW0gYi9Tb3Vy
Y2UvV2ViR1BVL1dlYkdQVS9CdWZmZXIubW0KaW5kZXggZmJiMmY0NGRmOWU1MzZjZTVjZmVkZTEx
Zjc4NWRjOGNkYTFmYmRjNS4uM2I5MjIwMDMxOGRjNTE3ZDJhMGViNmVjMzk5ZWE1NTQxYzZhNTE2
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkdQVS9XZWJHUFUvQnVmZmVyLm1tCisrKyBiL1NvdXJj
ZS9XZWJHUFUvV2ViR1BVL0J1ZmZlci5tbQpAQCAtMjkxLDcgKzI5MSw3IEBAIHZvaWQgQnVmZmVy
OjptYXBBc3luYyhXR1BVTWFwTW9kZUZsYWdzIG1vZGUsIHNpemVfdCBvZmZzZXQsIHNpemVfdCBz
aXplLCBDb21wbGV0CiAgICAgLy8gIklmIGFueSBvZiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlIHVuc2F0aXNmaWVkOiIKICAgICBpZiAoIXZhbGlkYXRlTWFwQXN5bmMobW9kZSwgb2Zmc2V0
LCByYW5nZVNpemUpKSB7CiAgICAgICAgIC8vICJSZWNvcmQgYSB2YWxpZGF0aW9uIGVycm9yIG9u
IHRoZSBjdXJyZW50IHNjb3BlLiIKLSAgICAgICAgbV9kZXZpY2UtPmdlbmVyYXRlQVZhbGlkYXRp
b25FcnJvcigiVmFsaWRhdGlvbiBmYWlsdXJlLiIpOworICAgICAgICBtX2RldmljZS0+Z2VuZXJh
dGVBVmFsaWRhdGlvbkVycm9yKCJWYWxpZGF0aW9uIGZhaWx1cmUuIl9zKTsKIAogICAgICAgICAv
LyAiUmV0dXJuIGEgcHJvbWlzZSByZWplY3RlZCB3aXRoIGFuIE9wZXJhdGlvbkVycm9yIG9uIHRo
ZSBEZXZpY2UgdGltZWxpbmUuIgogICAgICAgICBjYWxsYmFjayhXR1BVQnVmZmVyTWFwQXN5bmNT
dGF0dXNfRXJyb3IpOwpAQCAtMzY1LDcgKzM2NSw3IEBAIHZvaWQgQnVmZmVyOjp1bm1hcCgpCiAg
ICAgLy8gIklmIGFueSBvZiB0aGUgZm9sbG93aW5nIHJlcXVpcmVtZW50cyBhcmUgdW5tZXQiCiAg
ICAgaWYgKCF2YWxpZGF0ZVVubWFwKCkpIHsKICAgICAgICAgLy8gImdlbmVyYXRlIGEgdmFsaWRh
dGlvbiBlcnJvciBhbmQgc3RvcC4iCi0gICAgICAgIG1fZGV2aWNlLT5nZW5lcmF0ZUFWYWxpZGF0
aW9uRXJyb3IoIlZhbGlkYXRpb24gZmFpbHVyZS4iKTsKKyAgICAgICAgbV9kZXZpY2UtPmdlbmVy
YXRlQVZhbGlkYXRpb25FcnJvcigiVmFsaWRhdGlvbiBmYWlsdXJlLiJfcyk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL0NvbW1hbmRF
bmNvZGVyLm1tIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvQ29tbWFuZEVuY29kZXIubW0KaW5kZXgg
YWU0YmFjNjA4NWI0YzVmMmVlNGNkOWM3YzNhM2UwYjAzZDc2ZDc5Mi4uOTY5OGM4YTA5OWZmZDZj
MDkzNzg0Mzk0YTgxMmMxODJmMGViN2Q1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkdQVS9XZWJH
UFUvQ29tbWFuZEVuY29kZXIubW0KKysrIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvQ29tbWFuZEVu
Y29kZXIubW0KQEAgLTE0OSw3ICsxNDksNyBAQCB2b2lkIENvbW1hbmRFbmNvZGVyOjpjb3B5QnVm
ZmVyVG9CdWZmZXIoY29uc3QgQnVmZmVyJiBzb3VyY2UsIHVpbnQ2NF90IHNvdXJjZU9mZgogICAg
IC8vICJJZiBhbnkgb2YgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSB1bnNhdGlzZmllZAog
ICAgIGlmICghdmFsaWRhdGVDb3B5QnVmZmVyVG9CdWZmZXIoc291cmNlLCBzb3VyY2VPZmZzZXQs
IGRlc3RpbmF0aW9uLCBkZXN0aW5hdGlvbk9mZnNldCwgc2l6ZSkpIHsKICAgICAgICAgLy8gImdl
bmVyYXRlIGEgdmFsaWRhdGlvbiBlcnJvciBhbmQgc3RvcC4iCi0gICAgICAgIG1fZGV2aWNlLT5n
ZW5lcmF0ZUFWYWxpZGF0aW9uRXJyb3IoIlZhbGlkYXRpb24gZmFpbHVyZS4iKTsKKyAgICAgICAg
bV9kZXZpY2UtPmdlbmVyYXRlQVZhbGlkYXRpb25FcnJvcigiVmFsaWRhdGlvbiBmYWlsdXJlLiJf
cyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTIyMCw3ICsyMjAsNyBAQCB2b2lkIENv
bW1hbmRFbmNvZGVyOjpjbGVhckJ1ZmZlcihjb25zdCBCdWZmZXImIGJ1ZmZlciwgdWludDY0X3Qg
b2Zmc2V0LCB1aW50NjRfdAogICAgIC8vICJJZiBhbnkgb2YgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZSB1bnNhdGlzZmllZCIKICAgICBpZiAoIXZhbGlkYXRlQ2xlYXJCdWZmZXIoYnVmZmVy
LCBvZmZzZXQsIHNpemUpKSB7CiAgICAgICAgIC8vICJnZW5lcmF0ZSBhIHZhbGlkYXRpb24gZXJy
b3IgYW5kIHN0b3AuIgotICAgICAgICBtX2RldmljZS0+Z2VuZXJhdGVBVmFsaWRhdGlvbkVycm9y
KCJWYWxpZGF0aW9uIGZhaWx1cmUuIik7CisgICAgICAgIG1fZGV2aWNlLT5nZW5lcmF0ZUFWYWxp
ZGF0aW9uRXJyb3IoIlZhbGlkYXRpb24gZmFpbHVyZS4iX3MpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogCkBAIC0yNjIsNyArMjYyLDcgQEAgUmVmUHRyPENvbW1hbmRCdWZmZXI+IENvbW1hbmRF
bmNvZGVyOjpmaW5pc2goY29uc3QgV0dQVUNvbW1hbmRCdWZmZXJEZXNjcmlwdG9yJgogICAgIC8v
ICJJZiB2YWxpZGF0aW9uU3VjY2VlZGVkIGlzIGZhbHNlLCB0aGVuOiIKICAgICBpZiAodmFsaWRh
dGlvbkZhaWxlZCkgewogICAgICAgICAvLyAiR2VuZXJhdGUgYSB2YWxpZGF0aW9uIGVycm9yLiIK
LSAgICAgICAgbV9kZXZpY2UtPmdlbmVyYXRlQVZhbGlkYXRpb25FcnJvcigiVmFsaWRhdGlvbiBm
YWlsdXJlLiIpOworICAgICAgICBtX2RldmljZS0+Z2VuZXJhdGVBVmFsaWRhdGlvbkVycm9yKCJW
YWxpZGF0aW9uIGZhaWx1cmUuIl9zKTsKIAogICAgICAgICAvLyBGSVhNRTogIlJldHVybiBhIG5l
dyBpbnZhbGlkIEdQVUNvbW1hbmRCdWZmZXIuIgogICAgICAgICByZXR1cm4gbnVsbHB0cjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL0NvbXB1dGVQaXBlbGluZS5tbSBiL1NvdXJj
ZS9XZWJHUFUvV2ViR1BVL0NvbXB1dGVQaXBlbGluZS5tbQppbmRleCBlZDliOGNmZjY0MTQzMDEy
ZTc3YjNlMjFmYzVlOWNhYjA3NTkzNjRjLi5lNGFkNzdhZjk3YTNjMTM4OTIxYjQ3ZDAyNjU5OGI4
YmM3NmRhNGEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9Db21wdXRlUGlwZWxp
bmUubW0KKysrIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvQ29tcHV0ZVBpcGVsaW5lLm1tCkBAIC03
MSw3ICs3MSw3IEBAIHN0YXRpYyBNVExGdW5jdGlvbkNvbnN0YW50VmFsdWVzICpjcmVhdGVDb25z
dGFudFZhbHVlcyh1aW50MzJfdCBjb25zdGFudENvdW50LCBjCiAgICAgYXV0byBjb25zdGFudFZh
bHVlcyA9IFtNVExGdW5jdGlvbkNvbnN0YW50VmFsdWVzIG5ld107CiAgICAgZm9yICh1aW50MzJf
dCBpID0gMDsgaSA8IGNvbnN0YW50Q291bnQ7ICsraSkgewogICAgICAgICBjb25zdCBhdXRvJiBl
bnRyeSA9IGNvbnN0YW50c1tpXTsKLSAgICAgICAgYXV0byBuYW1lSXRlcmF0b3IgPSBlbnRyeVBv
aW50SW5mb3JtYXRpb24uc3BlY2lhbGl6YXRpb25Db25zdGFudEluZGljZXMuZmluZChlbnRyeS5r
ZXkpOworICAgICAgICBhdXRvIG5hbWVJdGVyYXRvciA9IGVudHJ5UG9pbnRJbmZvcm1hdGlvbi5z
cGVjaWFsaXphdGlvbkNvbnN0YW50SW5kaWNlcy5maW5kKFN0cmluZyB7IGVudHJ5LmtleSB9KTsK
ICAgICAgICAgaWYgKG5hbWVJdGVyYXRvciA9PSBlbnRyeVBvaW50SW5mb3JtYXRpb24uc3BlY2lh
bGl6YXRpb25Db25zdGFudEluZGljZXMuZW5kKCkpCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0
cjsKICAgICAgICAgYXV0byBzcGVjaWFsaXphdGlvbkNvbnN0YW50SW5kZXggPSBuYW1lSXRlcmF0
b3ItPnZhbHVlOwpAQCAtMTUwLDcgKzE1MCw3IEBAIFJlZlB0cjxDb21wdXRlUGlwZWxpbmU+IERl
dmljZTo6Y3JlYXRlQ29tcHV0ZVBpcGVsaW5lKGNvbnN0IFdHUFVDb21wdXRlUGlwZWxpbmVECiAg
ICAgY29uc3QgUGlwZWxpbmVMYXlvdXQmIHBpcGVsaW5lTGF5b3V0ID0gV2ViR1BVOjpmcm9tQVBJ
KGRlc2NyaXB0b3IubGF5b3V0KTsKICAgICBhdXRvIGxhYmVsID0gZnJvbUFQSShkZXNjcmlwdG9y
LmxhYmVsKTsKIAotICAgIGF1dG8gbGlicmFyeUNyZWF0aW9uUmVzdWx0ID0gY3JlYXRlTGlicmFy
eShtX2RldmljZSwgc2hhZGVyTW9kdWxlLCBwaXBlbGluZUxheW91dCwgZGVzY3JpcHRvci5jb21w
dXRlLmVudHJ5UG9pbnQsIGxhYmVsKTsKKyAgICBhdXRvIGxpYnJhcnlDcmVhdGlvblJlc3VsdCA9
IGNyZWF0ZUxpYnJhcnkobV9kZXZpY2UsIHNoYWRlck1vZHVsZSwgcGlwZWxpbmVMYXlvdXQsIFN0
cmluZyB7IGRlc2NyaXB0b3IuY29tcHV0ZS5lbnRyeVBvaW50IH0sIGxhYmVsKTsKICAgICBpZiAo
IWxpYnJhcnlDcmVhdGlvblJlc3VsdCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1F1ZXVlLm1tIGIvU291cmNlL1dlYkdQVS9XZWJH
UFUvUXVldWUubW0KaW5kZXggYjdiZDU3Y2Y1YTQyNmVjMjZlNmY5YjFlMjlkOTlmZGVhZGY3MDVj
NC4uMGQxYjM5YTg0ZjY0MjM1NzlhOWVjMDNiNWFhMjQxYmRlNjMxZDY2MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkdQVS9XZWJHUFUvUXVldWUubW0KKysrIGIvU291cmNlL1dlYkdQVS9XZWJHUFUv
UXVldWUubW0KQEAgLTEzMSw3ICsxMzEsNyBAQCB2b2lkIFF1ZXVlOjpzdWJtaXQoVmVjdG9yPHN0
ZDo6cmVmZXJlbmNlX3dyYXBwZXI8Y29uc3QgQ29tbWFuZEJ1ZmZlcj4+JiYgY29tbWFuZAogICAg
IC8vICJJZiBhbnkgb2YgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSB1bnNhdGlzZmllZCIK
ICAgICBpZiAoIXZhbGlkYXRlU3VibWl0KCkpIHsKICAgICAgICAgLy8gImdlbmVyYXRlIGEgdmFs
aWRhdGlvbiBlcnJvciBhbmQgc3RvcC4iCi0gICAgICAgIG1fZGV2aWNlLmdlbmVyYXRlQVZhbGlk
YXRpb25FcnJvcigiVmFsaWRhdGlvbiBmYWlsdXJlLiIpOworICAgICAgICBtX2RldmljZS5nZW5l
cmF0ZUFWYWxpZGF0aW9uRXJyb3IoIlZhbGlkYXRpb24gZmFpbHVyZS4iX3MpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9TYW1wbGVy
Lm1tIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvU2FtcGxlci5tbQppbmRleCAyZjdmNzI3ZjE3ZDk3
M2QwYTQ5Y2UzNGVlZmFjNzEzODU3MzM3NmI2Li44MjczOTA0OTk0Y2I3MDlmMDk0ZTI0NTg3OTlh
Y2VjNjc3NTg5YjcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9TYW1wbGVyLm1t
CisrKyBiL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1NhbXBsZXIubW0KQEAgLTEzNiw3ICsxMzYsNyBA
QCBSZWZQdHI8U2FtcGxlcj4gRGV2aWNlOjpjcmVhdGVTYW1wbGVyKGNvbnN0IFdHUFVTYW1wbGVy
RGVzY3JpcHRvciYgZGVzY3JpcHRvcikKICAgICAvLyAiSWYgdmFsaWRhdGluZyBHUFVTYW1wbGVy
RGVzY3JpcHRvcih0aGlzLCBkZXNjcmlwdG9yKSByZXR1cm5zIGZhbHNlOiIKICAgICBpZiAoIXZh
bGlkYXRlQ3JlYXRlU2FtcGxlcigqdGhpcywgZGVzY3JpcHRvcikpIHsKICAgICAgICAgLy8gIkdl
bmVyYXRlIGEgdmFsaWRhdGlvbiBlcnJvci4iCi0gICAgICAgIGdlbmVyYXRlQVZhbGlkYXRpb25F
cnJvcigiVmFsaWRhdGlvbiBmYWlsdXJlLiIpOworICAgICAgICBnZW5lcmF0ZUFWYWxpZGF0aW9u
RXJyb3IoIlZhbGlkYXRpb24gZmFpbHVyZS4iX3MpOwogCiAgICAgICAgIC8vICJDcmVhdGUgYSBu
ZXcgaW52YWxpZCBHUFVTYW1wbGVyIGFuZCByZXR1cm4gdGhlIHJlc3VsdC4iCiAgICAgICAgIHJl
dHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkdQVS9XZWJHUFUvU2hhZGVyTW9k
dWxlLm1tIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvU2hhZGVyTW9kdWxlLm1tCmluZGV4IGUwMDc1
NWNmYjU1YjRjNjZhODkyN2RkM2U1ZTAyZWE5MTAxNzBjNDQuLjYwNWUzNzIzMzYxMDVhZTA4NzEz
N2RiNjE2NDY5ODExMmJjZmY4N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1No
YWRlck1vZHVsZS5tbQorKysgYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9TaGFkZXJNb2R1bGUubW0K
QEAgLTg4LDkgKzg4LDEwIEBAIHN0YXRpYyBSZWZQdHI8U2hhZGVyTW9kdWxlPiBlYXJseUNvbXBp
bGVTaGFkZXJNb2R1bGUoaWQ8TVRMRGV2aWNlPiBkZXZpY2UsIHN0ZDo6CiAgICAgICAgIGNvbnN0
IGF1dG8mIGhpbnQgPSBzdXBwbGllZEhpbnRzLmhpbnRzW2ldOwogICAgICAgICBpZiAoaGludC5u
ZXh0SW5DaGFpbikKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgICAgICBoaW50cy5h
ZGQoaGludC5rZXksIFdlYkdQVTo6ZnJvbUFQSShoaW50LmhpbnQubGF5b3V0KSk7CisgICAgICAg
IFN0cmluZyBoaW50S2V5IHsgaGludC5rZXkgfTsKKyAgICAgICAgaGludHMuYWRkKGhpbnRLZXks
IFdlYkdQVTo6ZnJvbUFQSShoaW50LmhpbnQubGF5b3V0KSk7CiAgICAgICAgIGF1dG8gY29udmVy
dGVkUGlwZWxpbmVMYXlvdXQgPSBTaGFkZXJNb2R1bGU6OmNvbnZlcnRQaXBlbGluZUxheW91dChX
ZWJHUFU6OmZyb21BUEkoaGludC5oaW50LmxheW91dCkpOwotICAgICAgICB3Z3NsSGludHMuYWRk
KGhpbnQua2V5LCBXVEZNb3ZlKGNvbnZlcnRlZFBpcGVsaW5lTGF5b3V0KSk7CisgICAgICAgIHdn
c2xIaW50cy5hZGQoaGludEtleSwgV1RGTW92ZShjb252ZXJ0ZWRQaXBlbGluZUxheW91dCkpOwog
ICAgIH0KICAgICBhdXRvIHByZXBhcmVSZXN1bHQgPSBXR1NMOjpwcmVwYXJlKHN0ZDo6Z2V0PFdH
U0w6OlN1Y2Nlc3NmdWxDaGVjaz4oY2hlY2tSZXN1bHQpLmFzdCwgd2dzbEhpbnRzKTsKICAgICBh
dXRvIGxpYnJhcnkgPSBTaGFkZXJNb2R1bGU6OmNyZWF0ZUxpYnJhcnkoZGV2aWNlLCBwcmVwYXJl
UmVzdWx0Lm1zbCwgV1RGTW92ZShsYWJlbCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9XZWJWaWV3SW1wbC5tbQppbmRleCA0N2U5ZGNhNTAwYjEwNjQwMWVkY2JkZmNiZWE4MjBi
MzViZTk2NTQyLi5mZjM4ZTFmNzY4MzcwNjMxZmU0YWViMTFkMDBkMGFjNjcwYTlhMzcwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQpAQCAtNDQ3OCw3
ICs0NDc4LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6c2V0UHJvbWlzZWREYXRhRm9ySW1hZ2UoV2Vi
Q29yZTo6SW1hZ2UqIGltYWdlLCBOU1N0cmluZyAqZmlsZW4KIAogICAgIFJldGFpblB0cjxOU0Rh
dGE+IGN1c3RvbURhdGFCdWZmZXI7CiAgICAgaWYgKG9yaWdpbklkZW50aWZpZXIubGVuZ3RoKSB7
Ci0gICAgICAgIFt0eXBlcyBhZGRPYmplY3Q6QChXZWJDb3JlOjpQYXN0ZWJvYXJkQ3VzdG9tRGF0
YTo6Y29jb2FUeXBlKCkpXTsKKyAgICAgICAgW3R5cGVzIGFkZE9iamVjdDpAKFdlYkNvcmU6OlBh
c3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKS5jaGFyYWN0ZXJzKCkpXTsKICAgICAgICAg
V2ViQ29yZTo6UGFzdGVib2FyZEN1c3RvbURhdGEgY3VzdG9tRGF0YTsKICAgICAgICAgY3VzdG9t
RGF0YS5zZXRPcmlnaW4ob3JpZ2luSWRlbnRpZmllcik7CiAgICAgICAgIGN1c3RvbURhdGFCdWZm
ZXIgPSBjdXN0b21EYXRhLmNyZWF0ZVNoYXJlZEJ1ZmZlcigpLT5jcmVhdGVOU0RhdGEoKTsKQEAg
LTQ0OTcsNyArNDQ5Nyw3IEBAIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAg
IH0KIAogICAgIGlmIChjdXN0b21EYXRhQnVmZmVyKQotICAgICAgICBbcGFzdGVib2FyZCBzZXRE
YXRhOmN1c3RvbURhdGFCdWZmZXIuZ2V0KCkgZm9yVHlwZTpAKFdlYkNvcmU6OlBhc3RlYm9hcmRD
dXN0b21EYXRhOjpjb2NvYVR5cGUoKSldOworICAgICAgICBbcGFzdGVib2FyZCBzZXREYXRhOmN1
c3RvbURhdGFCdWZmZXIuZ2V0KCkgZm9yVHlwZTpAKFdlYkNvcmU6OlBhc3RlYm9hcmRDdXN0b21E
YXRhOjpjb2NvYVR5cGUoKS5jaGFyYWN0ZXJzKCkpXTsKIAogICAgIG1fcHJvbWlzZWRJbWFnZSA9
IGltYWdlOwogfQpAQCAtNDYyNCw3ICs0NjI0LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6cmVxdWVz
dERPTVBhc3RlQWNjZXNzKFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzQ2F0ZWdvcnkgcGFzdGVBY2MK
ICAgICBBU1NFUlQoIW1fZG9tUGFzdGVSZXF1ZXN0SGFuZGxlcik7CiAgICAgaGlkZURPTVBhc3Rl
TWVudVdpdGhSZXN1bHQoV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZTo6RGVuaWVkRm9y
R2VzdHVyZSk7CiAKLSAgICBOU0RhdGEgKmRhdGEgPSBbcGFzdGVib2FyZEZvckFjY2Vzc0NhdGVn
b3J5KHBhc3RlQWNjZXNzQ2F0ZWdvcnkpIGRhdGFGb3JUeXBlOkAoV2ViQ29yZTo6UGFzdGVib2Fy
ZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpKV07CisgICAgTlNEYXRhICpkYXRhID0gW3Bhc3RlYm9h
cmRGb3JBY2Nlc3NDYXRlZ29yeShwYXN0ZUFjY2Vzc0NhdGVnb3J5KSBkYXRhRm9yVHlwZTpAKFdl
YkNvcmU6OlBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKS5jaGFyYWN0ZXJzKCkpXTsK
ICAgICBhdXRvIGJ1ZmZlciA9IFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGRhdGEpOwog
ICAgIGlmIChXZWJDb3JlOjpQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6ZnJvbVNoYXJlZEJ1ZmZlcihi
dWZmZXIuZ2V0KCkpLm9yaWdpbigpID09IG9yaWdpbklkZW50aWZpZXIpIHsKICAgICAgICAgbV9w
YWdlLT5ncmFudEFjY2Vzc1RvQ3VycmVudFBhc3RlYm9hcmREYXRhKHBhc3RlYm9hcmROYW1lRm9y
QWNjZXNzQ2F0ZWdvcnkocGFzdGVBY2Nlc3NDYXRlZ29yeSkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvTG9jYWxBdXRoZW50aWNh
dG9yLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2Ev
TG9jYWxBdXRoZW50aWNhdG9yLm1tCmluZGV4IGJlZTZiOTIzODJjYWFmM2I0ZjlmMGU3Y2U4MmMw
MWE3NjczMzI4MmMuLjJhMDVjZjQwM2RlZmMzYjQ1MDQ4OTE4YTdlNDRkMDkwMzliODRmMDQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29h
L0xvY2FsQXV0aGVudGljYXRvci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJB
dXRoZW50aWNhdGlvbi9Db2NvYS9Mb2NhbEF1dGhlbnRpY2F0b3IubW0KQEAgLTQ0NCw3ICs0NDQs
NyBAQCB2b2lkIExvY2FsQXV0aGVudGljYXRvcjo6Y29udGludWVNYWtlQ3JlZGVudGlhbEFmdGVy
VXNlclZlcmlmaWNhdGlvbihTZWNBY2Nlc3NDbwogICAgICAgICBkZWxldGVEdXBsaWNhdGVDcmVk
ZW50aWFsKCk7CiAKICAgICAgICAgYXV0byBhdXRoRGF0YSA9IGJ1aWxkQXV0aERhdGEoY3JlYXRp
b25PcHRpb25zLnJwLmlkLCBmbGFncywgY291bnRlciwgYnVpbGRBdHRlc3RlZENyZWRlbnRpYWxE
YXRhKFZlY3Rvcjx1aW50OF90PihhYWd1aWRMZW5ndGgsIDApLCBjcmVkZW50aWFsSWQsIGNvc2VQ
dWJsaWNLZXkpKTsKLSAgICAgICAgYXV0byBhdHRlc3RhdGlvbk9iamVjdCA9IGJ1aWxkQXR0ZXN0
YXRpb25PYmplY3QoV1RGTW92ZShhdXRoRGF0YSksICIiLCB7IH0sIEF0dGVzdGF0aW9uQ29udmV5
YW5jZVByZWZlcmVuY2U6Ok5vbmUpOworICAgICAgICBhdXRvIGF0dGVzdGF0aW9uT2JqZWN0ID0g
YnVpbGRBdHRlc3RhdGlvbk9iamVjdChXVEZNb3ZlKGF1dGhEYXRhKSwgU3RyaW5nIHsgZW1wdHlT
dHJpbmcoKSB9LCB7IH0sIEF0dGVzdGF0aW9uQ29udmV5YW5jZVByZWZlcmVuY2U6Ok5vbmUpOwog
ICAgICAgICByZWNlaXZlUmVzcG9uZChBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZTo6
Y3JlYXRlKGNyZWRlbnRpYWxJZCwgYXR0ZXN0YXRpb25PYmplY3QsIEF1dGhlbnRpY2F0b3JBdHRh
Y2htZW50OjpQbGF0Zm9ybSkpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtNDcxLDcgKzQ3
MSw3IEBAIHZvaWQgTG9jYWxBdXRoZW50aWNhdG9yOjpjb250aW51ZU1ha2VDcmVkZW50aWFsQWZ0
ZXJBdHRlc3RlZChWZWN0b3I8dWludDhfdD4mJiBjCiAKICAgICBpZiAoZXJyb3IpIHsKICAgICAg
ICAgTE9HX0VSUk9SKCJDb3VsZG4ndCBhdHRlc3Q6ICVzIiwgU3RyaW5nKGVycm9yLmxvY2FsaXpl
ZERlc2NyaXB0aW9uKS51dGY4KCkuZGF0YSgpKTsKLSAgICAgICAgYXV0byBhdHRlc3RhdGlvbk9i
amVjdCA9IGJ1aWxkQXR0ZXN0YXRpb25PYmplY3QoV1RGTW92ZShhdXRoRGF0YSksICIiLCB7IH0s
IEF0dGVzdGF0aW9uQ29udmV5YW5jZVByZWZlcmVuY2U6Ok5vbmUpOworICAgICAgICBhdXRvIGF0
dGVzdGF0aW9uT2JqZWN0ID0gYnVpbGRBdHRlc3RhdGlvbk9iamVjdChXVEZNb3ZlKGF1dGhEYXRh
KSwgU3RyaW5nIHsgZW1wdHlTdHJpbmcoKSB9LCB7IH0sIEF0dGVzdGF0aW9uQ29udmV5YW5jZVBy
ZWZlcmVuY2U6Ok5vbmUpOwogICAgICAgICByZWNlaXZlUmVzcG9uZChBdXRoZW50aWNhdG9yQXR0
ZXN0YXRpb25SZXNwb25zZTo6Y3JlYXRlKGNyZWRlbnRpYWxJZCwgYXR0ZXN0YXRpb25PYmplY3Qs
IEF1dGhlbnRpY2F0b3JBdHRhY2htZW50OjpQbGF0Zm9ybSkpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQpAQCAtNDg4LDcgKzQ4OCw3IEBAIHZvaWQgTG9jYWxBdXRoZW50aWNhdG9yOjpjb250aW51
ZU1ha2VDcmVkZW50aWFsQWZ0ZXJBdHRlc3RlZChWZWN0b3I8dWludDhfdD4mJiBjCiAgICAgICAg
ICAgICBjYm9yQXJyYXkuYXBwZW5kKGNib3I6OkNCT1JWYWx1ZSh2ZWN0b3JGcm9tTlNEYXRhKChO
U0RhdGEgKilhZG9wdENGKFNlY0NlcnRpZmljYXRlQ29weURhdGEoKF9fYnJpZGdlIFNlY0NlcnRp
ZmljYXRlUmVmKWNlcnRpZmljYXRlc1tpXSkpLmdldCgpKSkpOwogICAgICAgICBhdHRlc3RhdGlv
blN0YXRlbWVudE1hcFtjYm9yOjpDQk9SVmFsdWUoIng1YyIpXSA9IGNib3I6OkNCT1JWYWx1ZShX
VEZNb3ZlKGNib3JBcnJheSkpOwogICAgIH0KLSAgICBhdXRvIGF0dGVzdGF0aW9uT2JqZWN0ID0g
YnVpbGRBdHRlc3RhdGlvbk9iamVjdChXVEZNb3ZlKGF1dGhEYXRhKSwgImFwcGxlIiwgV1RGTW92
ZShhdHRlc3RhdGlvblN0YXRlbWVudE1hcCksIGNyZWF0aW9uT3B0aW9ucy5hdHRlc3RhdGlvbik7
CisgICAgYXV0byBhdHRlc3RhdGlvbk9iamVjdCA9IGJ1aWxkQXR0ZXN0YXRpb25PYmplY3QoV1RG
TW92ZShhdXRoRGF0YSksICJhcHBsZSJfcywgV1RGTW92ZShhdHRlc3RhdGlvblN0YXRlbWVudE1h
cCksIGNyZWF0aW9uT3B0aW9ucy5hdHRlc3RhdGlvbik7CiAKICAgICBkZWxldGVEdXBsaWNhdGVD
cmVkZW50aWFsKCk7CiAgICAgcmVjZWl2ZVJlc3BvbmQoQXV0aGVudGljYXRvckF0dGVzdGF0aW9u
UmVzcG9uc2U6OmNyZWF0ZShjcmVkZW50aWFsSWQsIGF0dGVzdGF0aW9uT2JqZWN0LCBBdXRoZW50
aWNhdG9yQXR0YWNobWVudDo6UGxhdGZvcm0pKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4IGViN2M2OTFm
OWM5OTBmODQ3NWYwOTAyNzRkOWI2ZWUyMDFjMzkwYjAuLjllOGJmNDViYWI1MTNhNTEyMTA0OWQw
NTMxMTIyZTQ1NjNmMGE2ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtMzk4MCw3ICszOTgwLDcgQEAg
LSAoQk9PTCljYW5QZXJmb3JtQWN0aW9uRm9yV2ViVmlldzooU0VMKWFjdGlvbiB3aXRoU2VuZGVy
OihpZClzZW5kZXIKICAgICAgICAgaWYgKGZvY3VzZWREb2N1bWVudE9yaWdpbi5pc0VtcHR5KCkp
CiAgICAgICAgICAgICByZXR1cm4gTk87CiAKLSAgICAgICAgTlNBcnJheSAqYWxsQ3VzdG9tUGFz
dGVib2FyZERhdGEgPSBbcGFzdGVib2FyZCBkYXRhRm9yUGFzdGVib2FyZFR5cGU6QChXZWJDb3Jl
OjpQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkpIGluSXRlbVNldDppbmRpY2VzXTsK
KyAgICAgICAgTlNBcnJheSAqYWxsQ3VzdG9tUGFzdGVib2FyZERhdGEgPSBbcGFzdGVib2FyZCBk
YXRhRm9yUGFzdGVib2FyZFR5cGU6QChXZWJDb3JlOjpQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29j
b2FUeXBlKCkuY2hhcmFjdGVycygpKSBpbkl0ZW1TZXQ6aW5kaWNlc107CiAgICAgICAgIGZvciAo
TlNEYXRhICpkYXRhIGluIGFsbEN1c3RvbVBhc3RlYm9hcmREYXRhKSB7CiAgICAgICAgICAgICBh
dXRvIGJ1ZmZlciA9IFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGRhdGEpOwogICAgICAg
ICAgICAgaWYgKFdlYkNvcmU6OlBhc3RlYm9hcmRDdXN0b21EYXRhOjpmcm9tU2hhcmVkQnVmZmVy
KGJ1ZmZlci5nZXQoKSkub3JpZ2luKCkgPT0gZm9jdXNlZERvY3VtZW50T3JpZ2luKQpAQCAtNjk0
NSw3ICs2OTQ1LDcgQEAgc3RhdGljIEJPT0wgYWxsUGFzdGVib2FyZEl0ZW1PcmlnaW5zTWF0Y2hP
cmlnaW4oVUlQYXN0ZWJvYXJkICpwYXN0ZWJvYXJkLCBjb25zdAogICAgICAgICByZXR1cm4gTk87
CiAKICAgICBhdXRvICppbmRpY2VzID0gW05TSW5kZXhTZXQgaW5kZXhTZXRXaXRoSW5kZXhlc0lu
UmFuZ2U6TlNNYWtlUmFuZ2UoMCwgW3Bhc3RlYm9hcmQgbnVtYmVyT2ZJdGVtc10pXTsKLSAgICBh
dXRvICphbGxDdXN0b21EYXRhID0gW3Bhc3RlYm9hcmQgZGF0YUZvclBhc3RlYm9hcmRUeXBlOkAo
V2ViQ29yZTo6UGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpKSBpbkl0ZW1TZXQ6aW5k
aWNlc107CisgICAgYXV0byAqYWxsQ3VzdG9tRGF0YSA9IFtwYXN0ZWJvYXJkIGRhdGFGb3JQYXN0
ZWJvYXJkVHlwZTpAKFdlYkNvcmU6OlBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKS5j
aGFyYWN0ZXJzKCkpIGluSXRlbVNldDppbmRpY2VzXTsKICAgICBpZiAoIWFsbEN1c3RvbURhdGEu
Y291bnQpCiAgICAgICAgIHJldHVybiBOTzsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvTWlzYy9XZWJOU1Bhc3RlYm9hcmRFeHRyYXMubW0gYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9NaXNjL1dlYk5TUGFzdGVib2FyZEV4dHJhcy5tbQppbmRleCBlNWI0NDRiZmE1YzI4
NzI4Mzg3YzcyMzMyODI5MWE4MjAzZDFiMjU0Li4zZTUyZjFiYmFjZGI1MWI4ZWE1NDc3YzZiMGQ5
OWI5NWNiYWQwYmMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dl
Yk5TUGFzdGVib2FyZEV4dHJhcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9NaXNj
L1dlYk5TUGFzdGVib2FyZEV4dHJhcy5tbQpAQCAtMjc2LDcgKzI3Niw3IEBAIC0gKGlkKV93ZWJf
ZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlRm9yRWxlbWVudDooRE9NRWxlbWVudCAqKWVsZW1lbnQK
ICAgICBOU1N0cmluZyAqb3JpZ2luSWRlbnRpZmllciA9IGNvcmUoZWxlbWVudCktPmRvY3VtZW50
KCkub3JpZ2luSWRlbnRpZmllckZvclBhc3RlYm9hcmQoKTsKICAgICBSZXRhaW5QdHI8TlNEYXRh
PiBjdXN0b21EYXRhQnVmZmVyOwogICAgIGlmIChvcmlnaW5JZGVudGlmaWVyLmxlbmd0aCkgewot
ICAgICAgICBbdHlwZXMgYWRkT2JqZWN0OkAoUGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlw
ZSgpKV07CisgICAgICAgIFt0eXBlcyBhZGRPYmplY3Q6QChQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6
Y29jb2FUeXBlKCkuY2hhcmFjdGVycygpKV07CiAgICAgICAgIFBhc3RlYm9hcmRDdXN0b21EYXRh
IGN1c3RvbURhdGE7CiAgICAgICAgIGN1c3RvbURhdGEuc2V0T3JpZ2luKG9yaWdpbklkZW50aWZp
ZXIpOwogICAgICAgICBjdXN0b21EYXRhQnVmZmVyID0gY3VzdG9tRGF0YS5jcmVhdGVTaGFyZWRC
dWZmZXIoKS0+Y3JlYXRlTlNEYXRhKCk7CkBAIC0zMDUsNyArMzA1LDcgQEAgLSAoaWQpX3dlYl9k
ZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2VGb3JFbGVtZW50OihET01FbGVtZW50ICopZWxlbWVudAog
CiAgICAgW3NlbGYgX3dlYl93cml0ZUltYWdlOm5pbCBlbGVtZW50OmVsZW1lbnQgVVJMOlVSTCB0
aXRsZTp0aXRsZSBhcmNoaXZlOmFyY2hpdmUgdHlwZXM6dHlwZXMuZ2V0KCkgc291cmNlOnNvdXJj
ZV07CiAgICAgaWYgKGN1c3RvbURhdGFCdWZmZXIpCi0gICAgICAgIFtzZWxmIHNldERhdGE6Y3Vz
dG9tRGF0YUJ1ZmZlci5nZXQoKSBmb3JUeXBlOkAoUGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29h
VHlwZSgpKV07CisgICAgICAgIFtzZWxmIHNldERhdGE6Y3VzdG9tRGF0YUJ1ZmZlci5nZXQoKSBm
b3JUeXBlOkAoUGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpLmNoYXJhY3RlcnMoKSld
OwogCiAgICAgW3NlbGYgc2V0UHJvcGVydHlMaXN0OkBbZXh0ZW5zaW9uXSBmb3JUeXBlOmxlZ2Fj
eUZpbGVzUHJvbWlzZVBhc3RlYm9hcmRUeXBlKCldOwogCmRpZmYgLS1naXQgYS9Ub29scy9DaGFu
Z2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggODk0MDAyOTc4MjQ3N2EzZWYyNjMyZTkwOGM2
ZWM5NjlhNzUzNjg1ZS4uZDJkN2FiZWE1MDdiMzMzYjhkNDI2OTU4YzJlNWRmYjViZTY0ZDFjNyAx
MDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE3IEBACisyMDIyLTAzLTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisK
KyAgICAgICAgU3RhcnQgcHJlcGFyaW5nIFdlYkNvcmUgZm9yIG1ha2luZyB0aGUgU3RyaW5nKGNv
bnN0IGNoYXIqKSBjb25zdHJ1Y3RvciBleHBsaWNpdAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4MzM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgU3RhcnQgcHJlcGFyaW5nIFdlYkNvcmUgZm9yIG1ha2lu
ZyB0aGUgU3RyaW5nKGNvbnN0IGNoYXIqKSBjb25zdHJ1Y3RvciBleHBsaWNpdC4KKyAgICAgICAg
TWFraW5nIHRoaXMgY29uc3RydWN0b3IgZXhwbGljaXQgaGVscHMgY2F0Y2ggYXQgY29tcGlsZSB0
aW1lIGNhc2VzIHdoZXJlIHRoZSAiIl9zCisgICAgICAgIHByZWZpeCBpcyBtaXNzaW5nIG9uIFN0
cmluZyBsaXRlcmFscy4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0RyYWdB
bmREcm9wVGVzdHNNYWMubW06CisgICAgICAgIChURVNUKToKKwogMjAyMi0wMy0yNCAgQnJlbnQg
RnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBEaXNhYmxlIFJUQ1J0cFNj
cmlwdFRyYW5zZm9ybSBpbiBDYXB0aXZlUG9ydGFsIG1vZGUKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvbWFjL0RyYWdBbmREcm9wVGVzdHNNYWMubW0gYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL21hYy9EcmFnQW5kRHJvcFRlc3RzTWFjLm1tCmluZGV4IDUyMTljOTRk
ZDM5ZGI0ODlmYjNhNDZhMTRkOGE5MzUxM2QyODRlZmMuLjgxOGIwMGYzYjVmNjQ4ODc5ZTM1MzUx
M2M1MzQzOWY3NGVkYmFlZTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
bWFjL0RyYWdBbmREcm9wVGVzdHNNYWMubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9tYWMvRHJhZ0FuZERyb3BUZXN0c01hYy5tbQpAQCAtMTgxLDcgKzE4MSw3IEBAIEFMTE9XX0RF
UFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgIEVYUEVDVF9FUShpbWFnZUZyb21VbmlxdWVQ
YXN0ZWJvYXJkLlRJRkZSZXByZXNlbnRhdGlvbi5sZW5ndGgsIGltYWdlRnJvbURyYWdQYXN0ZWJv
YXJkLlRJRkZSZXByZXNlbnRhdGlvbi5sZW5ndGgpOwogICAgIEVYUEVDVF9UUlVFKE5TRXF1YWxT
aXplcyhpbWFnZUZyb21EcmFnUGFzdGVib2FyZC5zaXplLCBpbWFnZUZyb21VbmlxdWVQYXN0ZWJv
YXJkLnNpemUpKTsKICAgICBFWFBFQ1RfRkFMU0UoTlNFcXVhbFNpemVzKE5TWmVyb1NpemUsIGlt
YWdlRnJvbVVuaXF1ZVBhc3RlYm9hcmQuc2l6ZSkpOwotICAgIEVYUEVDVF9HVChbZHJhZ1Bhc3Rl
Ym9hcmQgZGF0YUZvclR5cGU6QChXZWJDb3JlOjpQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FU
eXBlKCkpXS5sZW5ndGgsIDB1KTsKKyAgICBFWFBFQ1RfR1QoW2RyYWdQYXN0ZWJvYXJkIGRhdGFG
b3JUeXBlOkAoV2ViQ29yZTo6UGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpLmNoYXJh
Y3RlcnMoKSldLmxlbmd0aCwgMHUpOwogfQogCiBURVNUKERyYWdBbmREcm9wVGVzdHMsIFByb3Zp
ZGVJbWFnZURhdGFBc1R5cGVJZGVudGlmaWVycykK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455713</attachid>
            <date>2022-03-24 17:44:36 -0700</date>
            <delta_ts>2022-03-24 19:48:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238336-20220324174435.patch</filename>
            <type>text/plain</type>
            <size>429631</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxODM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBh
Y2RkNWY3ZDdiMjAzYzQxNjk2YTc4ZjU0NjUwMTE3ZjExZGRjYTU3Li44OWE2MDY0NTE5MDY2OTI5
MTQ3MDkxYzFiMzA4MWMwOWFjMWNjOGUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMiBAQAorMjAyMi0wMy0yNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFN0YXJ0IHByZXBhcmluZyBXZWJDb3JlIGZvciBtYWtpbmcgdGhlIFN0cmluZyhj
b25zdCBjaGFyKikgY29uc3RydWN0b3IgZXhwbGljaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODMzNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0YXJ0IHByZXBhcmluZyBXZWJDb3JlIGZvciBtYWtp
bmcgdGhlIFN0cmluZyhjb25zdCBjaGFyKikgY29uc3RydWN0b3IgZXhwbGljaXQuCisgICAgICAg
IE1ha2luZyB0aGlzIGNvbnN0cnVjdG9yIGV4cGxpY2l0IGhlbHBzIGNhdGNoIGF0IGNvbXBpbGUg
dGltZSBjYXNlcyB3aGVyZSB0aGUgIiJfcworICAgICAgICBwcmVmaXggaXMgbWlzc2luZyBvbiBT
dHJpbmcgbGl0ZXJhbHMuCisKKyAgICAgICAgKiBBUEkvSlNWYWx1ZS5tbToKKyAgICAgICAgKGNy
ZWF0ZVN0cnVjdEhhbmRsZXJNYXApOgorICAgICAgICAoaGFuZGVyRm9yU3RydWN0VGFnKToKKyAg
ICAgICAgKiBBUEkvSlNXcmFwcGVyTWFwLm1tOgorICAgICAgICAoYWxsb2NhdGVDb25zdHJ1Y3Rv
ckZvckN1c3RvbUNsYXNzKToKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckF1
ZGl0QWdlbnQuY3BwOgorICAgICAgICAoSW5zcGVjdG9yOjpJbnNwZWN0b3JBdWRpdEFnZW50Ojpy
dW4pOgorCiAyMDIyLTAzLTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAg
ICAgICAgU3RyaW5nJ3Mgc3RhcnRzV2l0aCgpIC8gZW5kc1dpdGgoKSAvIHJlcGxhY2UoKSBzaG91
bGQgdGFrZSBpbiBhIFN0cmluZ1ZpZXcgaW5zdGVhZCBvZiBhIFN0cmluZwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCA3OWE3MTJi
MmRhNDhiNDkzZmE1NjY1ZTQ1ZjRmZGQ4Y2FiMzU2NjljLi5iYTEzMGYxMWUxYjQxOWYyMjczZTAw
MjgyN2E1ZGIzNTE0NzE3ZTcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysg
Yi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIyLTAzLTI0ICBDaHJp
cyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgU3RhcnQgcHJlcGFyaW5nIFdl
YkNvcmUgZm9yIG1ha2luZyB0aGUgU3RyaW5nKGNvbnN0IGNoYXIqKSBjb25zdHJ1Y3RvciBleHBs
aWNpdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4
MzM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3Rh
cnQgcHJlcGFyaW5nIFdlYkNvcmUgZm9yIG1ha2luZyB0aGUgU3RyaW5nKGNvbnN0IGNoYXIqKSBj
b25zdHJ1Y3RvciBleHBsaWNpdC4KKyAgICAgICAgTWFraW5nIHRoaXMgY29uc3RydWN0b3IgZXhw
bGljaXQgaGVscHMgY2F0Y2ggYXQgY29tcGlsZSB0aW1lIGNhc2VzIHdoZXJlIHRoZSAiIl9zCisg
ICAgICAgIHByZWZpeCBpcyBtaXNzaW5nIG9uIFN0cmluZyBsaXRlcmFscy4KKworICAgICAgICAq
IHd0Zi90ZXh0L1RleHRTdHJlYW0uaDoKKyAgICAgICAgKFdURjo6VGV4dFN0cmVhbTo6ZHVtcFBy
b3BlcnR5KToKKwogMjAyMi0wMy0yNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgog
CiAgICAgICAgIFN0cmluZydzIHN0YXJ0c1dpdGgoKSAvIGVuZHNXaXRoKCkgLyByZXBsYWNlKCkg
c2hvdWxkIHRha2UgaW4gYSBTdHJpbmdWaWV3IGluc3RlYWQgb2YgYSBTdHJpbmcKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpp
bmRleCBmYWExODllOWY5ZDI1MzAyMjkzMDhlMDBmM2QwM2Q0YmI0N2U3OWZiLi45ZjgzYmQzM2Qz
NTU1NmMyZmU1YTI2ZDJjMzZlZWRlY2M5MGNmYzAzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTEx
IEBACisyMDIyLTAzLTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAg
ICAgU3RhcnQgcHJlcGFyaW5nIFdlYkNvcmUgZm9yIG1ha2luZyB0aGUgU3RyaW5nKGNvbnN0IGNo
YXIqKSBjb25zdHJ1Y3RvciBleHBsaWNpdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjM4MzM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgU3RhcnQgcHJlcGFyaW5nIFdlYkNvcmUgZm9yIG1ha2luZyB0aGUg
U3RyaW5nKGNvbnN0IGNoYXIqKSBjb25zdHJ1Y3RvciBleHBsaWNpdC4KKyAgICAgICAgTWFraW5n
IHRoaXMgY29uc3RydWN0b3IgZXhwbGljaXQgaGVscHMgY2F0Y2ggYXQgY29tcGlsZSB0aW1lIGNh
c2VzIHdoZXJlIHRoZSAiIl9zCisgICAgICAgIHByZWZpeCBpcyBtaXNzaW5nIG9uIFN0cmluZyBs
aXRlcmFscy4KKworICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXktYW1zLXVpL0FwcGxlUGF5QU1T
VUlQYXltZW50SGFuZGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0QW5kVmFsaWRh
dGVBcHBsZVBheUFNU1VJUmVxdWVzdCk6CisgICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9BcHBs
ZVBheUNvbnRhY3RGaWVsZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0QW5kVmFsaWRh
dGUpOgorICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlNZXJjaGFudENhcGFiaWxp
dHkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydEFuZFZhbGlkYXRlKToKKyAgICAgICAg
KiBNb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5UmVxdWVzdEJhc2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Y29udmVydEFuZFZhbGlkYXRlKToKKyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5L0Fw
cGxlUGF5U2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheVNlc3Npb246OmNy
ZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheVNlc3Npb246Om9wZW5QYXltZW50U2V0
dXApOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9uOjpiZWdpbik6CisgICAgICAg
ICogTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNldHVwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkFwcGxlUGF5U2V0dXA6OmJlZ2luKToKKyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5L1BheW1l
bnRJbnN0YWxsbWVudENvbmZpZ3VyYXRpb24ubW06CisgICAgICAgIChXZWJDb3JlOjpQYXltZW50
SW5zdGFsbG1lbnRDb25maWd1cmF0aW9uOjpjcmVhdGUpOgorICAgICAgICAqIE1vZHVsZXMvYXBw
bGVwYXkvUGF5bWVudFJlcXVlc3RWYWxpZGF0b3IubW06CisgICAgICAgIChXZWJDb3JlOjpQYXlt
ZW50UmVxdWVzdFZhbGlkYXRvcjo6dmFsaWRhdGVUb3RhbCk6CisgICAgICAgIChXZWJDb3JlOjp2
YWxpZGF0ZUNvdW50cnlDb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRlQ3VycmVuY3lD
b2RlKToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRlTWVyY2hhbnRDYXBhYmlsaXRpZXMpOgor
ICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGVTdXBwb3J0ZWROZXR3b3Jrcyk6CisgICAgICAgIChX
ZWJDb3JlOjp2YWxpZGF0ZVNoaXBwaW5nTWV0aG9kKToKKyAgICAgICAgKiBNb2R1bGVzL2FwcGxl
cGF5L1BheW1lbnRTZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBheW1lbnRTZXNzaW9u
OjpjYW5DcmVhdGVTZXNzaW9uKToKKyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5L3BheW1lbnRy
ZXF1ZXN0L0FwcGxlUGF5UGF5bWVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29u
dmVydEFuZFZhbGlkYXRlQXBwbGVQYXlSZXF1ZXN0KToKKyAgICAgICAgKiBNb2R1bGVzL2FwcGxp
Y2F0aW9ubWFuaWZlc3QvQXBwbGljYXRpb25NYW5pZmVzdFBhcnNlci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpBcHBsaWNhdGlvbk1hbmlmZXN0UGFyc2VyOjpwYXJzZUljb25zKToKKyAgICAgICAg
KFdlYkNvcmU6OkFwcGxpY2F0aW9uTWFuaWZlc3RQYXJzZXI6OnBhcnNlU2NvcGUpOgorICAgICAg
ICAqIE1vZHVsZXMvY2FjaGUvV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZUNhY2hlcy5jcHA6Cisg
ICAgICAgICogTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9Jbml0RGF0YVJlZ2lzdHJ5LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnNhbml0aXplS2V5aWRzKToKKyAgICAgICAgKiBNb2R1bGVzL2VudHJp
ZXNhcGkvRE9NRmlsZVN5c3RlbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpsaXN0RGlyZWN0b3J5
V2l0aE1ldGFkYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRlUGF0aElzRXhwZWN0ZWRU
eXBlKToKKyAgICAgICAgKiBNb2R1bGVzL2ZldGNoL0ZldGNoQm9keUNvbnN1bWVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkZldGNoQm9keUNvbnN1bWVyOjpwYWNrYWdlRm9ybURhdGEpOgorICAg
ICAgICAqIE1vZHVsZXMvZmV0Y2gvRmV0Y2hIZWFkZXJzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmZpbGxIZWFkZXJNYXApOgorICAgICAgICAqIE1vZHVsZXMvZmV0Y2gvRmV0Y2hMb2FkZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RmV0Y2hMb2FkZXI6OnN0YXJ0TG9hZGluZ0Jsb2JVUkwpOgor
ICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Z2V0RmlsZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Y3JlYXRlU3luY0FjY2Vzc0hh
bmRsZSk6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5k
bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZTo6aXNTYW1lRW50cnkg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZTo6bW92ZSk6CisgICAg
ICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURCRGF0YWJhc2VJZGVudGlmaWVyLmg6CisgICAgICAg
ICogTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5RGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
REJLZXlEYXRhOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SURCS2V5RGF0YTo6
ZGVjb2RlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlSYW5nZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJLZXlSYW5nZTo6aW5jbHVkZXMpOgorICAgICAgICAqIE1vZHVs
ZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJpYWxpemF0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OnNlcmlhbGl6ZUlEQktleVBhdGgpOgorICAgICAgICAoV2ViQ29yZTo6ZGVzZXJpYWxpemVJ
REJLZXlQYXRoKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVyOjpnZXRBbGxEYXRh
YmFzZU5hbWVzQW5kVmVyc2lvbnMpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpJREJT
ZXJ2ZXI6OmdldE9yaWdpbnMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpJ
REJTZXJ2ZXI6OmNsb3NlQW5kRGVsZXRlRGF0YWJhc2VzTW9kaWZpZWRTaW5jZSk6CisgICAgICAg
IChXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQlNlcnZlcjo6Y2xvc2VBbmREZWxldGVEYXRhYmFzZXNG
b3JPcmlnaW5zKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6cmVtb3ZlQWxsRGF0YWJh
c2VzRm9yRnVsbE9yaWdpblBhdGgpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpJREJT
ZXJ2ZXI6OnJlbmFtZU9yaWdpbik6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQlNl
cnZlcjo6dXBncmFkZUZpbGVzSWZOZWNlc3NhcnkpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2Vy
dmVyOjpJREJTZXJ2ZXI6OnVwZ3JhZGVkRGF0YWJhc2VEaXJlY3RvcnkpOgorICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlJREJCYWNraW5nU3RvcmUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SURCU2VydmVyOjpNZW1vcnlJREJCYWNraW5nU3RvcmU6OmJlZ2luVHJhbnNh
Y3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpNZW1vcnlJREJCYWNraW5nU3Rv
cmU6OmFib3J0VHJhbnNhY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpNZW1v
cnlJREJCYWNraW5nU3RvcmU6OmNvbW1pdFRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OklEQlNlcnZlcjo6TWVtb3J5SURCQmFja2luZ1N0b3JlOjpnZW5lcmF0ZUtleU51bWJlcik6Cisg
ICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeU9iamVjdFN0b3JlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6TWVtb3J5T2JqZWN0U3RvcmU6OnVwZGF0ZUlu
ZGV4ZXNGb3JQdXRSZWNvcmQpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9T
UUxpdGVJREJCYWNraW5nU3RvcmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjp2
MVJlY29yZHNUYWJsZVNjaGVtYSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OnYxUmVj
b3Jkc1RhYmxlU2NoZW1hQWx0ZXJuYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6
djJSZWNvcmRzVGFibGVTY2hlbWEpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjp2MlJl
Y29yZHNUYWJsZVNjaGVtYUFsdGVybmF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6
OnYxSW5kZXhSZWNvcmRzVGFibGVTY2hlbWEpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVy
Ojp2MUluZGV4UmVjb3Jkc1RhYmxlU2NoZW1hQWx0ZXJuYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OklEQlNlcnZlcjo6djJJbmRleFJlY29yZHNUYWJsZVNjaGVtYSk6CisgICAgICAgIChXZWJDb3Jl
OjpJREJTZXJ2ZXI6OnYySW5kZXhSZWNvcmRzVGFibGVTY2hlbWFBbHRlcm5hdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6SURCU2VydmVyOjpTUUxpdGVJREJCYWNraW5nU3RvcmU6OmVuY29kZURhdGFi
YXNlTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlNRTGl0ZUlEQkJhY2tpbmdT
dG9yZTo6ZnVsbERhdGFiYXNlUGF0aEZvckRpcmVjdG9yeSk6CisgICAgICAgIChXZWJDb3JlOjpJ
REJTZXJ2ZXI6OlNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6Z2V0T3JFc3RhYmxpc2hEYXRhYmFzZUlu
Zm8pOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpTUUxpdGVJREJCYWNraW5nU3RvcmU6
OnVwZGF0ZUFsbEluZGV4ZXNGb3JBZGRSZWNvcmQpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2Vy
dmVyOjpTUUxpdGVJREJCYWNraW5nU3RvcmU6OnVuY2hlY2tlZEdldEtleUdlbmVyYXRvclZhbHVl
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6U1FMaXRlSURCQmFja2luZ1N0b3JlOjp1
bmNoZWNrZWRTZXRLZXlHZW5lcmF0b3JWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2
ZXI6OlNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6Z2VuZXJhdGVLZXlOdW1iZXIpOgorICAgICAgICAq
IE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpjcmVhdGVPYmplY3RTdG9y
ZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpkZWxl
dGVPYmplY3RTdG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRh
dGFiYXNlOjpyZW5hbWVPYmplY3RTdG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6
OlVuaXF1ZUlEQkRhdGFiYXNlOjpjbGVhck9iamVjdFN0b3JlKToKKyAgICAgICAgKFdlYkNvcmU6
OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OmNyZWF0ZUluZGV4KToKKyAgICAgICAgKFdl
YkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OmRlbGV0ZUluZGV4KToKKyAgICAg
ICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OnJlbmFtZUluZGV4KToK
KyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OnB1dE9yQWRk
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OnB1dE9y
QWRkQWZ0ZXJTcGFjZUNoZWNrKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVl
SURCRGF0YWJhc2U6OmdldFJlY29yZCk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVu
aXF1ZUlEQkRhdGFiYXNlOjpnZXRBbGxSZWNvcmRzKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNl
cnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OmdldENvdW50KToKKyAgICAgICAgKFdlYkNvcmU6OklE
QlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OmRlbGV0ZVJlY29yZCk6CisgICAgICAgIChXZWJD
b3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpvcGVuQ3Vyc29yKToKKyAgICAgICAg
KFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6Oml0ZXJhdGVDdXJzb3IpOgor
ICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6Y29tbWl0VHJh
bnNhY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFz
ZTo6YWJvcnRUcmFuc2FjdGlvbik6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVk
L0lEQkluZGV4SW5mby5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJJbmRleEluZm86OmxvZ2dp
bmdTdHJpbmcgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNv
bnRyb2xzSG9zdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYUNvbnRyb2xzSG9zdDo6bGF5
b3V0VHJhaXRzQ2xhc3NOYW1lIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhcmVjb3Jk
ZXIvTWVkaWFSZWNvcmRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVJlY29yZGVyOjpj
cmVhdGUpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6YWRkVlA5RnVsbFJhbmdlVmlkZW9GbGFnVG9Db250ZW50VHlwZSk6
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNvdXJjZTo6aXNUeXBlU3VwcG9ydGVkKToKKyAgICAg
ICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhVHJhY2tDb25zdHJhaW50cy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpzZXQpOgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydFRvSW50ZXJuYWxG
b3JtKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0ljZUNhbmRpZGF0ZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSVENJY2VDYW5kaWRhdGU6OmNyZWF0ZSk6CisgICAgICAgICog
TW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSVENQZWVyQ29ubmVjdGlvbjo6c2V0TG9jYWxEZXNjcmlwdGlvbik6CisgICAgICAgIChX
ZWJDb3JlOjpSVENQZWVyQ29ubmVjdGlvbjo6YWRkSWNlQ2FuZGlkYXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OlJUQ1BlZXJDb25uZWN0aW9uOjppY2VTZXJ2ZXJzRnJvbUNvbmZpZ3VyYXRpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6UlRDUGVlckNvbm5lY3Rpb246OmNlcnRpZmljYXRlc0Zyb21Db25m
aWd1cmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1BlZXJDb25uZWN0aW9uOjppbml0aWFs
aXplQ29uZmlndXJhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpSVENQZWVyQ29ubmVjdGlvbjo6
c2V0Q29uZmlndXJhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpSVENQZWVyQ29ubmVjdGlvbjo6
Y2hhaW5PcGVyYXRpb24pOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0Zy
YW1lVHJhbnNmb3JtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UlRDUnRwU0ZyYW1lVHJhbnNm
b3JtZXI6OnRyYW5zZm9ybSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJy
dGMvTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkxpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZDo6ZG9DcmVhdGVBbnN3ZXIpOgorICAgICAg
ICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1J0cFRyYW5zY2VpdmVy
QmFja2VuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjp0b1J0cENvZGVjQ2FwYWJpbGl0eSk6Cisg
ICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDVXRpbHMuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6dG9FeGNlcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6dG9S
VENFcnJvcik6CisgICAgICAgICogTW9kdWxlcy9tb2RlbC1lbGVtZW50L3NjZW5la2l0L1NjZW5l
S2l0TW9kZWxMb2FkZXJVU0QubW06CisgICAgICAgIChXZWJDb3JlOjp3cml0ZVRvVGVtcG9yYXJ5
RmlsZSk6CisgICAgICAgICogTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpjaGVja0FuZENhbm9uaWNhbGl6ZURldGFpbHMpOgorICAg
ICAgICAoV2ViQ29yZTo6UGF5bWVudFJlcXVlc3Q6OnNob3cpOgorICAgICAgICAqIE1vZHVsZXMv
cGljdHVyZWlucGljdHVyZS9IVE1MVmlkZW9FbGVtZW50UGljdHVyZUluUGljdHVyZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpIVE1MVmlkZW9FbGVtZW50UGljdHVyZUluUGljdHVyZTo6cmVxdWVz
dFBpY3R1cmVJblBpY3R1cmUpOgorICAgICAgICAqIE1vZHVsZXMvcGx1Z2lucy9Zb3VUdWJlUGx1
Z2luUmVwbGFjZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6WW91VHViZVBsdWdpblJlcGxh
Y2VtZW50OjppbnN0YWxsUmVwbGFjZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6cHJvY2Vzc0Fu
ZENyZWF0ZVlvdVR1YmVVUkwpOgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29n
bml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25DYXB0dXJlU291cmNlSW1wbDo6dXBkYXRlRGF0YVNvdXJjZSk6CisgICAgICAgIChX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjpzb3VyY2VTdG9wcGVk
KToKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6
OnNvdXJjZU11dGVkQ2hhbmdlZCk6CisgICAgICAgICogTW9kdWxlcy9zcGVlY2gvY29jb2EvV2Vi
U3BlZWNoUmVjb2duaXplclRhc2tNb2NrLm1tOgorICAgICAgICAoLVtXZWJTcGVlY2hSZWNvZ25p
emVyVGFza01vY2sgYXVkaW9TYW1wbGVzQXZhaWxhYmxlOl0pOgorICAgICAgICAqIE1vZHVsZXMv
c3RvcmFnZS9TdG9yYWdlTWFuYWdlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjb25uZWN0aW9u
SW5mbyk6CisgICAgICAgICogTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja01hbmFnZXIuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6V2ViTG9ja01hbmFnZXI6OnNpZ25hbFRvQWJvcnRUaGVSZXF1ZXN0
KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTGlzdGVuZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6QXVkaW9MaXN0ZW5lcjo6QXVkaW9MaXN0ZW5lcik6CisgICAgICAgICogTW9k
dWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvUGFy
YW06OnNldEF1dG9tYXRpb25SYXRlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
UGFyYW1UaW1lbGluZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1BhcmFtVGltZWxpbmU6
Omluc2VydEV2ZW50KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0JpcXVhZEZpbHRlck5v
ZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QmlxdWFkRmlsdGVyTm9kZTo6Z2V0RnJlcXVlbmN5
UmVzcG9uc2UpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQmlxdWFkUHJvY2Vzc29yLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkJpcXVhZFByb2Nlc3Nvcjo6QmlxdWFkUHJvY2Vzc29yKToK
KyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0RlbGF5UHJvY2Vzc29yLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkRlbGF5UHJvY2Vzc29yOjpEZWxheVByb2Nlc3Nvcik6CisgICAgICAgICogTW9k
dWxlcy93ZWJhdWRpby9XYXZlU2hhcGVyTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXYXZl
U2hhcGVyTm9kZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OldhdmVTaGFwZXJOb2RlOjpz
ZXRDdXJ2ZUZvckJpbmRpbmdzKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRp
Y2F0b3JDb29yZGluYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdXRoZW50aWNhdG9yQ29v
cmRpbmF0b3JJbnRlcm5hbDo6bmVlZHNBcHBJZFF1aXJrcyk6CisgICAgICAgICogTW9kdWxlcy93
ZWJhdXRobi9XZWJBdXRoZW50aWNhdGlvblV0aWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmJ1
aWxkQXR0ZXN0YXRpb25NYXApOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vZmlkby9EZXZp
Y2VSZXNwb25zZUNvbnZlcnRlci5jcHA6CisgICAgICAgIChmaWRvOjpyZWFkQ1RBUE1ha2VDcmVk
ZW50aWFsUmVzcG9uc2UpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vZmlkby9QaW4uY3Bw
OgorICAgICAgICAoZmlkbzo6cGluOjpLZXlBZ3JlZW1lbnRSZXNwb25zZTo6cGFyc2VGcm9tQ09T
RSk6CisgICAgICAgIChmaWRvOjpwaW46OlRva2VuUmVxdWVzdDo6dHJ5Q3JlYXRlKToKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYmF1dGhuL2ZpZG8vVTJmUmVzcG9uc2VDb252ZXJ0ZXIuY3BwOgorICAg
ICAgICAoZmlkbzo6cmVhZFUyZlJlZ2lzdGVyUmVzcG9uc2UpOgorICAgICAgICAqIE1vZHVsZXMv
d2ViZGF0YWJhc2UvQ2hhbmdlVmVyc2lvbldyYXBwZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q2hhbmdlVmVyc2lvbldyYXBwZXI6OnBlcmZvcm1QcmVmbGlnaHQpOgorICAgICAgICAqIE1vZHVs
ZXMvd2ViZGF0YWJhc2UvRE9NV2luZG93V2ViRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RE9NV2luZG93V2ViRGF0YWJhc2U6Om9wZW5EYXRhYmFzZSk6CisgICAgICAgICogTW9kdWxl
cy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZTo6
RGF0YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2U6OnJ1blRyYW5zYWN0aW9uKToK
KyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlQXV0aG9yaXplci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZUF1dGhvcml6ZXI6OmFkZEFsbG93ZWRGdW5jdGlvbnMp
OgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlVHJhY2tlcjo6dHJhY2tlckRhdGFiYXNlUGF0aCBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZVRyYWNrZXI6Om9wZW5UcmFja2VyRGF0YWJh
c2UpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvU1FMU3RhdGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNRTFN0YXRlbWVudDo6ZXhlY3V0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpTUUxTdGF0ZW1lbnQ6OnNldERhdGFiYXNlRGVsZXRlZEVycm9yKToKKyAgICAgICAgKFdlYkNv
cmU6OlNRTFN0YXRlbWVudDo6c2V0VmVyc2lvbk1pc21hdGNoZWRFcnJvcik6CisgICAgICAgIChX
ZWJDb3JlOjpTUUxTdGF0ZW1lbnQ6OnNldEZhaWx1cmVEdWVUb1F1b3RhKToKKyAgICAgICAgKiBN
b2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlNRTFRyYW5zYWN0aW9uOjpjYWxsRXJyb3JDYWxsYmFja0R1ZVRvSW50ZXJydXB0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNRTFRyYW5zYWN0aW9uOjpvcGVuVHJhbnNhY3Rpb25BbmRQcmVmbGln
aHQpOgorICAgICAgICAoV2ViQ29yZTo6U1FMVHJhbnNhY3Rpb246OmRlbGl2ZXJUcmFuc2FjdGlv
bkNhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlNRTFRyYW5zYWN0aW9uOjpkZWxpdmVyU3Rh
dGVtZW50Q2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZTo6U1FMVHJhbnNhY3Rpb246OmhhbmRs
ZUN1cnJlbnRTdGF0ZW1lbnRFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpTUUxUcmFuc2FjdGlv
bjo6cG9zdGZsaWdodEFuZENvbW1pdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dl
YlNvY2tldC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXQ6OnN1YnByb3RvY29sU2Vw
YXJhdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldDo6Y2xvc2UpOgorICAgICAgICAo
V2ViQ29yZTo6V2ViU29ja2V0OjpzdXNwZW5kKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tl
dHMvV2ViU29ja2V0Lmg6CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENo
YW5uZWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6ZGlkT3BlblNv
Y2tldFN0cmVhbSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsOjpkaWRSZWNl
aXZlU29ja2V0U3RyZWFtRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVs
Ojpwcm9jZXNzRnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6cHJv
Y2Vzc091dGdvaW5nRnJhbWVRdWV1ZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dl
YlNvY2tldERlZmxhdGVGcmFtZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0RXh0
ZW5zaW9uRGVmbGF0ZUZyYW1lOjpwcm9jZXNzUmVzcG9uc2UpOgorICAgICAgICAoV2ViQ29yZTo6
V2ViU29ja2V0RGVmbGF0ZUZyYW1lcjo6ZGVmbGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJT
b2NrZXREZWZsYXRlRnJhbWVyOjppbmZsYXRlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tl
dHMvV2ViU29ja2V0RXh0ZW5zaW9uRGlzcGF0Y2hlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJTb2NrZXRFeHRlbnNpb25EaXNwYXRjaGVyOjpwcm9jZXNzSGVhZGVyVmFsdWUpOgorICAgICAg
ICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRGcmFtZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpXZWJTb2NrZXRGcmFtZTo6cGFyc2VGcmFtZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJ4
ci9XZWJYUldlYkdMTGF5ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y3JlYXRlT3BhcXVlRnJh
bWVidWZmZXIpOgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJXZWJHTExheWVyOjpjcmVhdGUpOgor
ICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQVhJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpB
WEltYWdlOjppbWFnZU92ZXJsYXlFbGVtZW50cyk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9B
WExvZ2dlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBWExvZ2dlcjo6QVhMb2dnZXIpOgorICAg
ICAgICAoV2ViQ29yZTo6QVhMb2dnZXI6OmxvZyk6CisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRv
cjw8KToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYTG9nZ2VyLmg6CisgICAgICAgICogYWNj
ZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0
Q2FjaGU6OmlzTW9kYWxFbGVtZW50IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZUZy
b21SZW5kZXJlcik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpyZW1vdmUpOgor
ICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6dGV4dENoYW5nZWQpOgorICAgICAgICAo
V2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6aGFuZGxlTWVudU9wZW5lZCk6CisgICAgICAgIChXZWJD
b3JlOjpBWE9iamVjdENhY2hlOjpub3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCk6CisgICAgICAg
IChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lckZp
cmVkKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24p
OgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6aGFuZGxlTWVudUl0ZW1TZWxlY3Rl
ZCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpzZWxlY3RlZFN0YXRlQ2hhbmdl
ZCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdl
Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmhhbmRsZU1v
ZGFsQ2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnBlcmZvcm1EZWZl
cnJlZENhY2hlVXBkYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnVwZGF0
ZUlzb2xhdGVkVHJlZSk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9k
ZU9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6
ZGV0ZXJtaW5lQWNjZXNzaWJpbGl0eVJvbGUpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2Jq
ZWN0OjpyZWFkT25seVZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxp
dHlPYmplY3Q6OmF1dG9Db21wbGV0ZVZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFj
Y2Vzc2liaWxpdHlPYmplY3Q6OmN1cnJlbnRWYWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjpyZXBsYWNlVGV4dEluUmFuZ2UpOgorICAgICAgICAoV2Vi
Q29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6Y29tcHV0ZWRSb2xlU3RyaW5nIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6Om5vZGVIYXNQcmVzZW50YXRpb25Sb2xlKToKKyAgICAgICAgKFdlYkNv
cmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnJlc29sdmVkRWRpdGluZ1N0eWxlcyBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5Ojppc1JhZGlvQnV0dG9uSW5EaWZmZXJlbnRB
ZGhvY0dyb3VwKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHk6OmZpbmRNYXRjaGlu
Z09iamVjdHMpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdElu
dGVyZmFjZS5oOgorICAgICAgICAoV2ViQ29yZTo6YWNjZXNzaWJpbGl0eVJvbGVUb1N0cmluZyk6
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnJlbmRlck9iamVj
dElzT2JzZXJ2YWJsZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0OjpkZXRlcm1pbmVBY2Nlc3NpYmlsaXR5Um9sZSk6CisgICAgICAgIChXZWJDb3Jl
OjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojp1cGRhdGVSb2xlQWZ0ZXJDaGlsZHJlbkNyZWF0
aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmxpdmVS
ZWdpb25SZWxldmFudCBjb25zdCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5VGFibGVDZWxsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlUYWJsZUNl
bGw6OmNvbXB1dGVBY2Nlc3NpYmlsaXR5SXNJZ25vcmVkIGNvbnN0KToKKyAgICAgICAgKiBhY2Nl
c3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUcmVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vz
c2liaWxpdHlUcmVlOjpub2RlSGFzVHJlZUl0ZW1DaGlsZCBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpBY2Nlc3NpYmlsaXR5VHJlZTo6aXNUcmVlVmFsaWQgY29uc3QpOgorICAgICAgICAqIGFj
Y2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6QVhJc29sYXRlZE9iamVjdDo6aW5pdGlhbGl6ZUF0dHJpYnV0ZURhdGEpOgorICAg
ICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZE9iamVjdDo6Y2xhc3NMaXN0IGNvbnN0KToKKyAgICAg
ICAgKiBhY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpBWElzb2xhdGVkVHJlZTo6QVhJc29sYXRlZFRyZWUpOgorICAgICAgICAo
V2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6On5BWElzb2xhdGVkVHJlZSk6CisgICAgICAgIChXZWJD
b3JlOjpBWElzb2xhdGVkVHJlZTo6Y2xlYXIpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRl
ZFRyZWU6OnRyZWVGb3JJRCk6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkVHJlZTo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjpyZW1vdmVUcmVlRm9yUGFn
ZUlEKToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjpvYmplY3RzRm9ySURzIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjpnZW5lcmF0ZVN1YnRyZWUp
OgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OmNvbGxlY3ROb2RlQ2hhbmdlc0Zv
clN1YnRyZWUpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OnVwZGF0ZU5vZGUp
OgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OnVwZGF0ZU5vZGVQcm9wZXJ0eSk6
CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkVHJlZTo6dXBkYXRlQ2hpbGRyZW4pOgorICAg
ICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OmZvY3VzZWROb2RlKToKKyAgICAgICAgKFdl
YkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjpyb290Tm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpBWElz
b2xhdGVkVHJlZTo6c2V0Um9vdE5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRy
ZWU6OnNldEZvY3VzZWROb2RlSUQpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6
OnVwZGF0ZUxvYWRpbmdQcm9ncmVzcyk6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkVHJl
ZTo6cmVtb3ZlTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkVHJlZTo6cmVtb3Zl
U3VidHJlZUZyb21Ob2RlTWFwKToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjph
cHBseVBlbmRpbmdDaGFuZ2VzKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3Np
YmlsaXR5T2JqZWN0TWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVj
dDo6c3Vicm9sZVBsYXRmb3JtU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vz
c2liaWxpdHlPYmplY3Q6OnJvbGVQbGF0Zm9ybURlc2NyaXB0aW9uIGNvbnN0KToKKyAgICAgICAg
KiBhbmltYXRpb24vQW5pbWF0aW9uRWZmZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFuaW1h
dGlvbkVmZmVjdDo6Z2V0VGltaW5nIGNvbnN0KToKKyAgICAgICAgKiBhbmltYXRpb24vRG9jdW1l
bnRUaW1lbGluZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudFRpbWVsaW5lOjphbmlt
YXRlKToKKyAgICAgICAgKiBhbmltYXRpb24vRWZmZWN0VGltaW5nLmg6CisgICAgICAgICogYW5p
bWF0aW9uL0tleWZyYW1lRWZmZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OktleWZyYW1lRWZm
ZWN0OjpDU1NQcm9wZXJ0eUlEVG9JRExBdHRyaWJ1dGVOYW1lKToKKyAgICAgICAgKFdlYkNvcmU6
OktleWZyYW1lRWZmZWN0OjpnZXRLZXlmcmFtZXMpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0dD
Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpHQ0NvbnRyb2xsZXI6OkdDQ29udHJv
bGxlcik6CisgICAgICAgICogYmluZGluZ3MvanMvSlNDdXN0b21FbGVtZW50SW50ZXJmYWNlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkpTQ3VzdG9tRWxlbWVudEludGVyZmFjZTo6dXBncmFkZUVs
ZW1lbnQpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NQ29udmVydE51bWJlcnMuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNvbnZlcnRlcjxJRExGbG9hdD46OmNvbnZlcnQpOgorICAgICAgICAq
IGJpbmRpbmdzL2pzL0pTRXhlY1N0YXRlSW5zdHJ1bWVudGF0aW9uLmg6CisgICAgICAgIChXZWJD
b3JlOjpKU0V4ZWNTdGF0ZTo6aW5zdHJ1bWVudEZ1bmN0aW9uKToKKyAgICAgICAgKiBiaW5kaW5n
cy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcmlwdENvbnRy
b2xsZXI6OmNhbGxJbldvcmxkKToKKyAgICAgICAgKiBicmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUu
bW06CisgICAgICAgIChKU0M6OkJpbmRpbmdzOjpPYmpjQXJyYXk6OnNldFZhbHVlQXQgY29uc3Qp
OgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6T2JqY0FycmF5Ojp2YWx1ZUF0IGNvbnN0KToKKyAg
ICAgICAgKiBicmlkZ2UvcnVudGltZV9hcnJheS5jcHA6CisgICAgICAgIChKU0M6OlJ1bnRpbWVB
cnJheTo6cHV0KToKKyAgICAgICAgKEpTQzo6UnVudGltZUFycmF5OjpwdXRCeUluZGV4KToKKyAg
ICAgICAgKiBicmlkZ2UvcnVudGltZV9vYmplY3QuY3BwOgorICAgICAgICAoSlNDOjpCaW5kaW5n
czo6dGhyb3dSdW50aW1lT2JqZWN0SW52YWxpZEFjY2Vzc0Vycm9yKToKKyAgICAgICAgKiBjb250
ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uQWN0aW9ucy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDb250ZW50RXh0ZW5zaW9uczo6TW9kaWZ5SGVhZGVyc0FjdGlvbjo6TW9kaWZ5SGVhZGVy
SW5mbzo6cGFyc2UpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OlJlZGly
ZWN0QWN0aW9uOjpwYXJzZSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9uczo6
UmVkaXJlY3RBY3Rpb246OlVSTFRyYW5zZm9ybUFjdGlvbjo6cGFyc2UpOgorICAgICAgICAoV2Vi
Q29yZTo6Q29udGVudEV4dGVuc2lvbnM6OlJlZGlyZWN0QWN0aW9uOjpVUkxUcmFuc2Zvcm1BY3Rp
b246OlF1ZXJ5VHJhbnNmb3JtOjpwYXJzZSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0
ZW5zaW9uczo6UmVkaXJlY3RBY3Rpb246OlVSTFRyYW5zZm9ybUFjdGlvbjo6UXVlcnlUcmFuc2Zv
cm06OlF1ZXJ5S2V5VmFsdWU6OnBhcnNlKToKKyAgICAgICAgKiBjb250ZW50ZXh0ZW5zaW9ucy9D
b250ZW50RXh0ZW5zaW9uQ29tcGlsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4
dGVuc2lvbnM6OmNvbXBpbGVSdWxlTGlzdCk6CisgICAgICAgICogY29udGVudGV4dGVuc2lvbnMv
Q29udGVudEV4dGVuc2lvblBhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0
ZW5zaW9uczo6Z2V0RG9tYWluTGlzdCk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5z
aW9uczo6bG9hZFRyaWdnZXIpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6
OmxvYWRBY3Rpb24pOgorICAgICAgICAqIGNvbnRlbnRleHRlbnNpb25zL1NlcmlhbGl6ZWRORkEu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OlNlcmlhbGl6ZWRORkE6
OnNlcmlhbGl6ZSk6CisgICAgICAgICogY29udGVudGV4dGVuc2lvbnMvVVJMRmlsdGVyUGFyc2Vy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpVUkxGaWx0ZXJQYXJz
ZXI6OnN0YXR1c1N0cmluZyk6CisgICAgICAgICogY29udGVudGV4dGVuc2lvbnMvVVJMRmlsdGVy
UGFyc2VyLmg6CisgICAgICAgICogY3J5cHRvL1N1YnRsZUNyeXB0by5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpTdWJ0bGVDcnlwdG86OmFkZEF1dGhlbnRpY2F0ZWRFbmNyeXB0aW9uV2FybmluZ0lm
TmVjZXNzYXJ5KToKKyAgICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1B
RVNfQ0JDLmg6CisgICAgICAgICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVT
X0NGQi5oOgorICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19D
VFIuaDoKKyAgICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfR0NN
Lmg6CisgICAgICAgICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0tXLmg6
CisgICAgICAgICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtRUNESC5oOgorICAg
ICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUVDRFNBLmg6CisgICAgICAg
ICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtSEtERi5oOgorICAgICAgICAqIGNy
eXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUhNQUMuaDoKKyAgICAgICAgKiBjcnlwdG8v
YWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1QQktERjIuaDoKKyAgICAgICAgKiBjcnlwdG8vYWxn
b3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FFU19QS0NTMV92MV81Lmg6CisgICAgICAgICogY3J5
cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzUuaDoKKyAgICAg
ICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FfT0FFUC5oOgorICAgICAg
ICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQV9QU1MuaDoKKyAgICAgICAg
KiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEExLmg6CisgICAgICAgICogY3J5
cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMjI0Lmg6CisgICAgICAgICogY3J5cHRv
L2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMjU2Lmg6CisgICAgICAgICogY3J5cHRvL2Fs
Z29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMzg0Lmg6CisgICAgICAgICogY3J5cHRvL2FsZ29y
aXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBNTEyLmg6CisgICAgICAgICogY3J5cHRvL2tleXMvQ3J5
cHRvS2V5QUVTLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0tleUFFUzo6ZXhwb3J0Sndr
IGNvbnN0KToKKyAgICAgICAgKiBjcnlwdG8va2V5cy9DcnlwdG9LZXlFQy5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDcnlwdG9LZXlFQzo6ZXhwb3J0SndrIGNvbnN0KToKKyAgICAgICAgKiBjcnlw
dG8va2V5cy9DcnlwdG9LZXlITUFDLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0tleUhN
QUM6OmV4cG9ydEp3ayBjb25zdCk6CisgICAgICAgICogY3J5cHRvL2tleXMvQ3J5cHRvS2V5UlNB
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNyeXB0b0tleVJTQTo6ZXhwb3J0SndrIGNvbnN0KToK
KyAgICAgICAgKiBjc3MvQ1NTRm9udEZhY2VTcmNWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NGb250RmFjZVNyY1ZhbHVlOjppc1N1cHBvcnRlZEZvcm1hdCBjb25zdCk6CisgICAgICAg
ICogY3NzL0NTU0dyaWRUZW1wbGF0ZUFyZWFzVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
c3RyaW5nRm9yUG9zaXRpb24pOgorICAgICAgICAqIGNzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDU1NQcmltaXRpdmVWYWx1ZTo6dW5pdFR5cGVTdHJpbmcpOgor
ICAgICAgICAqIGNzcy9DU1NTdWJncmlkVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NT
U3ViZ3JpZFZhbHVlOjpjdXN0b21DU1NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBjc3MvRE9NQ1NT
TmFtZXNwYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnZhbHVlV2l0aG91dEltcG9ydGFudCk6
CisgICAgICAgICogY3NzL0RPTUNTU1JlZ2lzdGVyQ3VzdG9tUHJvcGVydHkuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6RE9NQ1NTUmVnaXN0ZXJDdXN0b21Qcm9wZXJ0eTo6cmVnaXN0ZXJQcm9wZXJ0
eSk6CisgICAgICAgICogY3NzL0RlcHJlY2F0ZWRDU1NPTVZhbHVlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkRlcHJlY2F0ZWRDU1NPTVZhbHVlOjpjc3NUZXh0IGNvbnN0KToKKyAgICAgICAgKiBj
c3MvRm9udEZhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udEZhY2U6OnVuaWNvZGVSYW5n
ZSBjb25zdCk6CisgICAgICAgICogY3NzL01lZGlhUXVlcnlFeHByZXNzaW9uLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Ok1lZGlhUXVlcnlFeHByZXNzaW9uOjpzZXJpYWxpemUgY29uc3QpOgorICAg
ICAgICAqIGNzcy9TdHlsZVByb3BlcnRpZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGVQ
cm9wZXJ0aWVzOjpnZXRMYXllcmVkU2hvcnRoYW5kVmFsdWUgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6TXV0YWJsZVN0eWxlUHJvcGVydGllczo6c2V0Q3VzdG9tUHJvcGVydHkpOgorICAgICAg
ICAqIGNzcy9tYWtldmFsdWVzLnBsOgorICAgICAgICAqIGNzcy9wYXJzZXIvTWVkaWFRdWVyeVBh
cnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5UGFyc2VyOjpza2lwVW50aWxD
b21tYSk6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5UGFyc2VyOjpwYXJzZUludGVybmFs
KToKKyAgICAgICAgKiBjc3MvcGFyc2VyL1NpemVzQXR0cmlidXRlUGFyc2VyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlNpemVzQXR0cmlidXRlUGFyc2VyOjptZWRpYUNvbmRpdGlvbk1hdGNoZXMp
OgorICAgICAgICAqIGNzcy90eXBlZG9tL0NTU051bWVyaWNGYWN0b3J5Lmg6CisgICAgICAgICog
Y3NzL3R5cGVkb20vQ1NTTnVtZXJpY1ZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU051
bWVyaWNWYWx1ZTo6bXVsdGlwbHlJbnRlcm5hbCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NOdW1l
cmljVmFsdWU6OnRvKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU051bWVyaWNWYWx1ZTo6cGFyc2Up
OgorICAgICAgICAqIGNzcy90eXBlZG9tL0NTU1N0eWxlVmFsdWVGYWN0b3J5LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1N0eWxlVmFsdWVGYWN0b3J5OjpyZWlmeVZhbHVlKToKKyAgICAgICAg
KiBlZGl0aW5nL2NvY29hL0hUTUxDb252ZXJ0ZXIubW06CisgICAgICAgIChIVE1MQ29udmVydGVy
Q2FjaGVzOjpwcm9wZXJ0eVZhbHVlRm9yTm9kZSk6CisgICAgICAgIChIVE1MQ29udmVydGVyOjpf
cHJvY2Vzc0VsZW1lbnQpOgorICAgICAgICAqIGVkaXRpbmcvY29jb2EvV2ViQ29udGVudFJlYWRl
ckNvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6YXR0YWNobWVudEZvckRhdGEpOgorICAgICAg
ICAqIGxvYWRlci9jb2NvYS9CdW5kbGVSZXNvdXJjZUxvYWRlci5tbToKKyAgICAgICAgKFdlYkNv
cmU6OkJ1bmRsZVJlc291cmNlTG9hZGVyOjpsb2FkUmVzb3VyY2VGcm9tQnVuZGxlKToKKyAgICAg
ICAgKiBsb2FkZXIvbWFjL0xvYWRlck5TVVJMRXh0cmFzLm1tOgorICAgICAgICAoc3VnZ2VzdGVk
RmlsZW5hbWVXaXRoTUlNRVR5cGUpOgorICAgICAgICAqIHBhZ2UvY29jb2EvUmVzb3VyY2VVc2Fn
ZU92ZXJsYXlDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6Okhpc3RvcmljUmVzb3VyY2VVc2Fn
ZURhdGE6Okhpc3RvcmljUmVzb3VyY2VVc2FnZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6ZHJh
d0NwdUhpc3RvcnkpOgorICAgICAgICAoV2ViQ29yZTo6ZHJhd0dDSGlzdG9yeSk6CisgICAgICAg
IChXZWJDb3JlOjpkcmF3TWVtSGlzdG9yeSk6CisgICAgICAgICogcGFnZS9jb2NvYS9TZXR0aW5n
c0Jhc2VDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzQmFzZTo6aW5pdGlhbGl6
ZURlZmF1bHRGb250RmFtaWxpZXMpOgorICAgICAgICAqIHBhZ2UvbWFjL1BhZ2VNYWMubW06Cisg
ICAgICAgIChXZWJDb3JlOjpQYWdlOjpwbGF0Zm9ybUluaXRpYWxpemUpOgorICAgICAgICAqIHBs
YXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QVhBUklBQ29u
dGVudEdyb3VwVGV4dCk6CisgICAgICAgICogcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oOgor
ICAgICAgICAqIHBsYXRmb3JtL1Bhc3RlYm9hcmQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9QYXN0
ZWJvYXJkQ3VzdG9tRGF0YS5oOgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlvL2NvY29hL01lZGlh
U2Vzc2lvbk1hbmFnZXJDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU2Vzc2lvbk1h
bmFnZXJDb2NvYTo6dXBkYXRlTm93UGxheWluZ0luZm8pOgorICAgICAgICAqIHBsYXRmb3JtL2Nv
Y29hL0tleUV2ZW50Q29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjprZXlJZGVudGlmaWVyRm9y
Q2hhckNvZGUpOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL1Bhc3RlYm9hcmRDb2NvYS5tbToK
KyAgICAgICAgKFdlYkNvcmU6OmltYWdlVHlwZVRvRmFrZUZpbGVuYW1lKToKKyAgICAgICAgKFdl
YkNvcmU6OlBhc3RlYm9hcmQ6OnJlYWQpOgorICAgICAgICAqIHBsYXRmb3JtL2NvY29hL1Bhc3Rl
Ym9hcmRDdXN0b21EYXRhQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkQ3Vz
dG9tRGF0YTo6Y29jb2FUeXBlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb3VyQ0Mu
aDoKKyAgICAgICAgKFdURjo6TG9nQXJndW1lbnQ8V2ViQ29yZTo6Rm91ckNDPjo6dG9TdHJpbmcp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dEdMQU5H
TEUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6dmFsaWRh
dGVEZXB0aFN0ZW5jaWwpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9DRE1Qcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6Q0RN
UHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6cGFyc2VLZXlTeXN0ZW0pOgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRp
b24uaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1J
bnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkNE
TUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDOjpzZXRTdG9yYWdlRGlyZWN0b3J5KToK
KyAgICAgICAgKFdlYkNvcmU6OkNETUluc3RhbmNlU2Vzc2lvbkZhaXJQbGF5U3RyZWFtaW5nQVZG
T2JqQzo6dXBkYXRlTGljZW5zZSk6CisgICAgICAgIChXZWJDb3JlOjpDRE1JbnN0YW5jZVNlc3Np
b25GYWlyUGxheVN0cmVhbWluZ0FWRk9iakM6OmRpZFByb3ZpZGVSZXF1ZXN0cyk6CisgICAgICAg
ICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbk1lZGlhU291
cmNlQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkNETVNlc3Npb25NZWRpYVNvdXJjZUFW
Rk9iakM6OnN0b3JhZ2VQYXRoIGNvbnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW06
CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6
OnN0cmVhbVNlc3Npb24pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6
U291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmRpZFByb3ZpZGVDb250ZW50S2V5UmVxdWVzdElu
aXRpYWxpemF0aW9uRGF0YUZvclRyYWNrSUQpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9EYXRh
RGV0ZWN0b3JIaWdobGlnaHQubW06CisgICAgICAgIChXZWJDb3JlOjpEYXRhRGV0ZWN0b3JIaWdo
bGlnaHQ6OmZhZGVJbik6CisgICAgICAgIChXZWJDb3JlOjpEYXRhRGV0ZWN0b3JIaWdobGlnaHQ6
OmZhZGVPdXQpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tOgorICAg
ICAgICAqIHBsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbToKKyAgICAgICAg
KFdlYkNvcmU6OmtleUlkZW50aWZpZXJGb3JLZXlFdmVudCk6CisgICAgICAgIChXZWJDb3JlOjpQ
bGF0Zm9ybUtleWJvYXJkRXZlbnRCdWlsZGVyOjpQbGF0Zm9ybUtleWJvYXJkRXZlbnRCdWlsZGVy
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvUGxhdGZvcm1QYXN0ZWJvYXJkTWFjLm1tOgorICAg
ICAgICAoV2ViQ29yZTo6UGxhdGZvcm1QYXN0ZWJvYXJkOjp0eXBlc1NhZmVGb3JET01Ub1JlYWRB
bmRXcml0ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQbGF0Zm9ybVBhc3RlYm9hcmQ6Ondy
aXRlKToKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVBhc3RlYm9hcmRJdGVtKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9tYWMvU3RyaW5nVXRpbGl0aWVzLm1tOgorICAgICAgICAoV2ViQ29yZTo6d2ls
ZGNhcmRSZWdleFBhdHRlcm5TdHJpbmcpOgorICAgICAgICAqIHBsYXRmb3JtL21hYy9UaHJlYWRD
aGVjay5tbToKKyAgICAgICAgKFdlYkNvcmVSZXBvcnRUaHJlYWRWaW9sYXRpb24pOgorICAgICAg
ICAqIHBsYXRmb3JtL21hYy9Vc2VyQWdlbnRNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpzdGFu
ZGFyZFVzZXJBZ2VudFdpdGhBcHBsaWNhdGlvbk5hbWUpOgorICAgICAgICAqIHBsYXRmb3JtL25l
dHdvcmsvUmVzb3VyY2VFcnJvckJhc2UuY3BwOgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsv
UmVzb3VyY2VFcnJvckJhc2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1Jh
bmdlUmVzcG9uc2VHZW5lcmF0b3IubW06CisgICAgICAgIChXZWJDb3JlOjpzeW50aGVzaXplZFJl
c3BvbnNlRm9yUmFuZ2UpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbToK
KyAgICAgICAgKFdlYkNvcmU6Omljb25Gb3JBdHRhY2htZW50KToKKyAgICAgICAgKiByZW5kZXJp
bmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6b3Bl
cmF0b3I8PCk6CisgICAgICAgICogc3ZnL1NWR0ZpbHRlckVsZW1lbnQuaDoKKyAgICAgICAgKiBz
dmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmg6CisgICAgICAgICogc3Zn
L1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdNYXJrZXJFbGVt
ZW50Lmg6CisgICAgICAgICogc3ZnL1NWR01hc2tFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NW
R1BhdGhTZWdJbXBsLmg6CisgICAgICAgICogc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5o
OgorICAgICAgICAqIHN2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5VHJhaXRzLmg6CisgICAgICAg
IChXZWJDb3JlOjpTVkdQcm9wZXJ0eVRyYWl0czxib29sPjo6dG9TdHJpbmcpOgorICAgICAgICAq
IHRlc3RpbmcvTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5ncy5oOgorICAgICAgICAoV2ViQ29yZTo6
TW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5nczo6dW5ibG9ja1VSTEhvc3QpOgorICAgICAgICAqIHht
bC9YUGF0aFZhbHVlLmg6CisgICAgICAgIChXZWJDb3JlOjpYUGF0aDo6VmFsdWU6OlZhbHVlKToK
KyAgICAgICAgKiB4bWwvWFNMU3R5bGVTaGVldC5oOgorCiAyMDIyLTAzLTI0ICBDaHJpcyBEdW1l
eiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgU3RyaW5nJ3Mgc3RhcnRzV2l0aCgpIC8g
ZW5kc1dpdGgoKSAvIHJlcGxhY2UoKSBzaG91bGQgdGFrZSBpbiBhIFN0cmluZ1ZpZXcgaW5zdGVh
ZCBvZiBhIFN0cmluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkdQVS9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViR1BVL0NoYW5nZUxvZwppbmRleCA3ZjhlYzNlYzdjN2VkZjEzOWQ2NzUzN2Q5OTI2MWI2
ODRlMmJkNDNlLi41ZTMyYjU3ZmRmZDE4NTlhNGM2NTc1OWEwNGJmMDY4YzA3ZGI3MWFlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViR1BVL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViR1BVL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDIyLTAzLTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBh
cHBsZS5jb20+CisKKyAgICAgICAgU3RhcnQgcHJlcGFyaW5nIFdlYkNvcmUgZm9yIG1ha2luZyB0
aGUgU3RyaW5nKGNvbnN0IGNoYXIqKSBjb25zdHJ1Y3RvciBleHBsaWNpdAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4MzM2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3RhcnQgcHJlcGFyaW5nIFdlYkNv
cmUgZm9yIG1ha2luZyB0aGUgU3RyaW5nKGNvbnN0IGNoYXIqKSBjb25zdHJ1Y3RvciBleHBsaWNp
dC4KKyAgICAgICAgTWFraW5nIHRoaXMgY29uc3RydWN0b3IgZXhwbGljaXQgaGVscHMgY2F0Y2gg
YXQgY29tcGlsZSB0aW1lIGNhc2VzIHdoZXJlIHRoZSAiIl9zCisgICAgICAgIHByZWZpeCBpcyBt
aXNzaW5nIG9uIFN0cmluZyBsaXRlcmFscy4KKworICAgICAgICAqIFdHU0wvUGFyc2VyLmNwcDoK
KyAgICAgICAgKFdHU0w6OlBhcnNlcjxMZXhlcj46OnBhcnNlR2xvYmFsRGVjbCk6CisgICAgICAg
IChXR1NMOjpQYXJzZXI8TGV4ZXI+OjpwYXJzZUF0dHJpYnV0ZSk6CisgICAgICAgIChXR1NMOjpQ
YXJzZXI8TGV4ZXI+OjpwYXJzZVR5cGVEZWNsKToKKyAgICAgICAgKFdHU0w6OlBhcnNlcjxMZXhl
cj46OnBhcnNlU3RvcmFnZUNsYXNzKToKKyAgICAgICAgKFdHU0w6OlBhcnNlcjxMZXhlcj46OnBh
cnNlQWNjZXNzTW9kZSk6CisgICAgICAgIChXR1NMOjpQYXJzZXI8TGV4ZXI+OjpwYXJzZVN0YXRl
bWVudCk6CisgICAgICAgIChXR1NMOjpQYXJzZXI8TGV4ZXI+OjpwYXJzZVByaW1hcnlFeHByZXNz
aW9uKToKKyAgICAgICAgKFdHU0w6OlBhcnNlcjxMZXhlcj46OnBhcnNlQ29yZUxIU0V4cHJlc3Np
b24pOgorICAgICAgICAqIFdHU0wvVG9rZW4uY3BwOgorICAgICAgICAoV0dTTDo6dG9TdHJpbmcp
OgorICAgICAgICAqIFdlYkdQVS9BZGFwdGVyLm1tOgorICAgICAgICAoV2ViR1BVOjpBZGFwdGVy
OjpyZXF1ZXN0RGV2aWNlKToKKyAgICAgICAgKiBXZWJHUFUvQnVmZmVyLm1tOgorICAgICAgICAo
V2ViR1BVOjpCdWZmZXI6Om1hcEFzeW5jKToKKyAgICAgICAgKFdlYkdQVTo6QnVmZmVyOjp1bm1h
cCk6CisgICAgICAgICogV2ViR1BVL0NvbW1hbmRFbmNvZGVyLm1tOgorICAgICAgICAoV2ViR1BV
OjpDb21tYW5kRW5jb2Rlcjo6Y29weUJ1ZmZlclRvQnVmZmVyKToKKyAgICAgICAgKFdlYkdQVTo6
Q29tbWFuZEVuY29kZXI6OmNsZWFyQnVmZmVyKToKKyAgICAgICAgKFdlYkdQVTo6Q29tbWFuZEVu
Y29kZXI6OmZpbmlzaCk6CisgICAgICAgICogV2ViR1BVL0NvbXB1dGVQaXBlbGluZS5tbToKKyAg
ICAgICAgKFdlYkdQVTo6Y3JlYXRlQ29uc3RhbnRWYWx1ZXMpOgorICAgICAgICAoV2ViR1BVOjpE
ZXZpY2U6OmNyZWF0ZUNvbXB1dGVQaXBlbGluZSk6CisgICAgICAgICogV2ViR1BVL1F1ZXVlLm1t
OgorICAgICAgICAoV2ViR1BVOjpRdWV1ZTo6c3VibWl0KToKKyAgICAgICAgKiBXZWJHUFUvU2Ft
cGxlci5tbToKKyAgICAgICAgKFdlYkdQVTo6RGV2aWNlOjpjcmVhdGVTYW1wbGVyKToKKyAgICAg
ICAgKiBXZWJHUFUvU2hhZGVyTW9kdWxlLm1tOgorICAgICAgICAoV2ViR1BVOjplYXJseUNvbXBp
bGVTaGFkZXJNb2R1bGUpOgorCiAyMDIyLTAzLTI0ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhm
aWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgW1dlYkdQVV0gRml4IHRoZSB3YXRjaE9TIGJ1aWxk
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCmluZGV4IDU4YTZmZGM4YmUwNGY0OTI0YjVmMjBmNTNjMDc4Yjc5NjE2YTQ3ZWMuLmRh
NGUzZjRkNzQxMTBiOGMzNTFhNGNlZGIyYjA1YzcxNTAyYmQwMjggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTggQEAKKzIwMjItMDMtMjQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKwor
ICAgICAgICBTdGFydCBwcmVwYXJpbmcgV2ViQ29yZSBmb3IgbWFraW5nIHRoZSBTdHJpbmcoY29u
c3QgY2hhciopIGNvbnN0cnVjdG9yIGV4cGxpY2l0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzgzMzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBTdGFydCBwcmVwYXJpbmcgV2ViQ29yZSBmb3IgbWFraW5n
IHRoZSBTdHJpbmcoY29uc3QgY2hhciopIGNvbnN0cnVjdG9yIGV4cGxpY2l0LgorICAgICAgICBN
YWtpbmcgdGhpcyBjb25zdHJ1Y3RvciBleHBsaWNpdCBoZWxwcyBjYXRjaCBhdCBjb21waWxlIHRp
bWUgY2FzZXMgd2hlcmUgdGhlICIiX3MKKyAgICAgICAgcHJlZml4IGlzIG1pc3Npbmcgb24gU3Ry
aW5nIGxpdGVyYWxzLgorCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1t
OgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6c2V0UHJvbWlzZWREYXRhRm9ySW1hZ2Up
OgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6cmVxdWVzdERPTVBhc3RlQWNjZXNzKToK
KwogMjAyMi0wMy0yNCAgRG9uIE9sbXN0ZWFkICA8ZG9uLm9sbXN0ZWFkQHNvbnkuY29tPgogCiAg
ICAgICAgIFtHTGliXSBBZGQgdXNlciBkaXJlY3RvcmllcyB0byBXVEY6OkZpbGVTeXN0ZW0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJL
aXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRleCBhYzllMzllMjZmNzUxZTg1NTg5NWUzYmFlOWFj
NDczM2UxODY2YmMxLi5lMGNjMzJjYjYxMDI1OWMzNTE1M2NlZjkwY2FmNjA1MzgxYzdlMDJhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjItMDMtMjQg
IENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBTdGFydCBwcmVwYXJp
bmcgV2ViQ29yZSBmb3IgbWFraW5nIHRoZSBTdHJpbmcoY29uc3QgY2hhciopIGNvbnN0cnVjdG9y
IGV4cGxpY2l0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzgzMzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBTdGFydCBwcmVwYXJpbmcgV2ViQ29yZSBmb3IgbWFraW5nIHRoZSBTdHJpbmcoY29uc3QgY2hh
ciopIGNvbnN0cnVjdG9yIGV4cGxpY2l0LgorICAgICAgICBNYWtpbmcgdGhpcyBjb25zdHJ1Y3Rv
ciBleHBsaWNpdCBoZWxwcyBjYXRjaCBhdCBjb21waWxlIHRpbWUgY2FzZXMgd2hlcmUgdGhlICIi
X3MKKyAgICAgICAgcHJlZml4IGlzIG1pc3Npbmcgb24gU3RyaW5nIGxpdGVyYWxzLgorCisgICAg
ICAgICogTWlzYy9XZWJOU1Bhc3RlYm9hcmRFeHRyYXMubW06CisgICAgICAgICgtW05TUGFzdGVi
b2FyZCBfd2ViX2RlY2xhcmVBbmRXcml0ZURyYWdJbWFnZUZvckVsZW1lbnQ6VVJMOnRpdGxlOmFy
Y2hpdmU6c291cmNlOl0pOgorCiAyMDIyLTAzLTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CiAKICAgICAgICAgU3RyaW5nJ3Mgc3RhcnRzV2l0aCgpIC8gZW5kc1dpdGgoKSAvIHJl
cGxhY2UoKSBzaG91bGQgdGFrZSBpbiBhIFN0cmluZ1ZpZXcgaW5zdGVhZCBvZiBhIFN0cmluZwpk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlLm1tIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlLm1tCmluZGV4IGQzYWQwODBlMWRkZjRmZTZlZmJh
OTEzNWJhMjY4NzZjNzdkY2JjMjYuLmYxMmEyYzQ5NTNmMDAzMmRmYjRiNzJmNjhmZjgwZmVkZGI2
OTAzNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWYWx1ZS5tbQor
KysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmFsdWUubW0KQEAgLTExNzksNyArMTE3
OSw3IEBAIHN0YXRpYyBTdHJ1Y3RIYW5kbGVycyogY3JlYXRlU3RydWN0SGFuZGxlck1hcCgpCiAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIC8vIFRyeSB0byBmaW5kIGEgbWF0Y2hpbmcgdmFs
dWVXaXRoPEZvbz46Y29udGV4dDogbWV0aG9kLgogICAgICAgICBhdXRvIHR5cGUgPSBhZG9wdFN5
c3RlbTxjaGFyW10+KG1ldGhvZF9jb3B5UmV0dXJuVHlwZShtZXRob2QpKTsKLSAgICAgICAgU3Ry
dWN0SGFuZGxlcnM6Oml0ZXJhdG9yIGl0ZXIgPSBzdHJ1Y3RIYW5kbGVycy0+ZmluZCh0eXBlLmdl
dCgpKTsKKyAgICAgICAgU3RydWN0SGFuZGxlcnM6Oml0ZXJhdG9yIGl0ZXIgPSBzdHJ1Y3RIYW5k
bGVycy0+ZmluZChTdHJpbmcgeyB0eXBlLmdldCgpIH0pOwogICAgICAgICBpZiAoaXRlciA9PSBz
dHJ1Y3RIYW5kbGVycy0+ZW5kKCkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIFN0cnVj
dFRhZ0hhbmRsZXImIGhhbmRsZXIgPSBpdGVyLT52YWx1ZTsKQEAgLTEyMTcsNyArMTIxNyw3IEBA
IHN0YXRpYyBTdHJ1Y3RUYWdIYW5kbGVyKiBoYW5kZXJGb3JTdHJ1Y3RUYWcoY29uc3QgY2hhciog
ZW5jb2RlZFR5cGUpCiAKICAgICBzdGF0aWMgU3RydWN0SGFuZGxlcnMqIHN0cnVjdEhhbmRsZXJz
ID0gY3JlYXRlU3RydWN0SGFuZGxlck1hcCgpOwogCi0gICAgU3RydWN0SGFuZGxlcnM6Oml0ZXJh
dG9yIGl0ZXIgPSBzdHJ1Y3RIYW5kbGVycy0+ZmluZChlbmNvZGVkVHlwZSk7CisgICAgU3RydWN0
SGFuZGxlcnM6Oml0ZXJhdG9yIGl0ZXIgPSBzdHJ1Y3RIYW5kbGVycy0+ZmluZChTdHJpbmcgeyBl
bmNvZGVkVHlwZSB9KTsKICAgICBpZiAoaXRlciA9PSBzdHJ1Y3RIYW5kbGVycy0+ZW5kKCkpCiAg
ICAgICAgIHJldHVybiAwOwogICAgIHJldHVybiAmaXRlci0+dmFsdWU7CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTV3JhcHBlck1hcC5tbSBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9BUEkvSlNXcmFwcGVyTWFwLm1tCmluZGV4IDk2ZTQ0Nzg4NzBjZDgxYTU4OTk3ZDAy
ZGE2ZmE0ZmJhMzQ2YWYxOTUuLmY4MjFkZjhlM2ViZWQ1N2Y1NDBjZDJmMDFkNjRlYzk2ZGNmYTg2
Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNXcmFwcGVyTWFwLm1t
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNXcmFwcGVyTWFwLm1tCkBAIC00NTEs
NyArNDUxLDcgQEAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGFsbG9jYXRlQ29uc3RydWN0b3JGb3JD
dXN0b21DbGFzcyhKU0NvbnRleHQgKmNvbnRleHQsIGNvbnMKICAgICAgICAgZm9yRWFjaE1ldGhv
ZEluQ2xhc3MoY3VycmVudENsYXNzLCBeKE1ldGhvZCBtZXRob2QpIHsKICAgICAgICAgICAgIFNF
TCBzZWxlY3RvciA9IG1ldGhvZF9nZXROYW1lKG1ldGhvZCk7CiAgICAgICAgICAgICBjb25zdCBj
aGFyKiBuYW1lID0gc2VsX2dldE5hbWUoc2VsZWN0b3IpOwotICAgICAgICAgICAgYXV0byBpdGVy
ID0gaW5pdFRhYmxlLmZpbmQobmFtZSk7CisgICAgICAgICAgICBhdXRvIGl0ZXIgPSBpbml0VGFi
bGUuZmluZChTdHJpbmcgeyBuYW1lIH0pOwogCiAgICAgICAgICAgICBpZiAoaXRlciA9PSBpbml0
VGFibGUuZW5kKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dURi93dGYvdGV4dC9UZXh0U3RyZWFtLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRTdHJl
YW0uaAppbmRleCBjODVkYTY2NDFlMTMxNzNjOTcxMTU3YmE0YTk4M2I0NGY1NDY1YmE1Li5kZjcx
MmVkMjA1ZjQ3OTc5N2JiNmQ5ZjUwNjdkNjE0MzExYzY1MGEzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V1RGL3d0Zi90ZXh0L1RleHRTdHJlYW0uaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRT
dHJlYW0uaApAQCAtMTAwLDYgKzEwMCwxNSBAQCBwdWJsaWM6CiAgICAgICAgIHRzLmVuZEdyb3Vw
KCk7CiAgICAgfQogCisgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICB2b2lkIGR1bXBQcm9w
ZXJ0eShjb25zdCBjaGFyKiBuYW1lLCBjb25zdCBUJiB2YWx1ZSkKKyAgICB7CisgICAgICAgIFRl
eHRTdHJlYW0mIHRzID0gKnRoaXM7CisgICAgICAgIHRzLnN0YXJ0R3JvdXAoKTsKKyAgICAgICAg
dHMgPDwgbmFtZSA8PCAiICIgPDwgdmFsdWU7CisgICAgICAgIHRzLmVuZEdyb3VwKCk7CisgICAg
fQorCiAgICAgV1RGX0VYUE9SVF9QUklWQVRFIFN0cmluZyByZWxlYXNlKCk7CiAgICAgCiAgICAg
V1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgc3RhcnRHcm91cCgpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS1hbXMtdWkvQXBwbGVQYXlBTVNVSVBheW1lbnRIYW5k
bGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXktYW1zLXVpL0FwcGxlUGF5
QU1TVUlQYXltZW50SGFuZGxlci5jcHAKaW5kZXggZjRkYWY4ZDE4YWVjNDk5Nzc1ZDVjMDNjMDhl
YWEwNDMyNDExNDNmYi4uNGEzMjI1Y2U5Y2E0MDZjMDBmZTE2ODQ2MGE1ZDZkMDMwMDQyODU1OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS1hbXMtdWkvQXBwbGVQ
YXlBTVNVSVBheW1lbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Fw
cGxlcGF5LWFtcy11aS9BcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXIuY3BwCkBAIC0zOSw3ICsz
OSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHN0YXRpYyBFeGNlcHRpb25PcjxBcHBsZVBheUFN
U1VJUmVxdWVzdD4gY29udmVydEFuZFZhbGlkYXRlQXBwbGVQYXlBTVNVSVJlcXVlc3QoRG9jdW1l
bnQmIGRvY3VtZW50LCBKU0M6OkpTVmFsdWUgZGF0YSkKIHsKICAgICBpZiAoZGF0YS5pc0VtcHR5
KCkpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJNaXNzaW5nIHBheW1l
bnQgbWV0aG9kIGRhdGEuIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9y
LCAiTWlzc2luZyBwYXltZW50IG1ldGhvZCBkYXRhLiJfcyB9OwogCiAgICAgYXV0byB0aHJvd1Nj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRShkb2N1bWVudC52bSgpKTsKICAgICBhdXRvIGFwcGxl
UGF5QU1TVUlSZXF1ZXN0ID0gY29udmVydERpY3Rpb25hcnk8QXBwbGVQYXlBTVNVSVJlcXVlc3Q+
KCpkb2N1bWVudC5nbG9iYWxPYmplY3QoKSwgZGF0YSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5Q29udGFjdEZpZWxkLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlDb250YWN0RmllbGQuY3BwCmluZGV4IGRk
M2RjYjRlYzdkZDRhNmFmMzkwYmVkNmMxYTdmMmExNDIzMTM1MjQuLjM3MWI5ZWQ0MjMyODdkOTc3
MzU1OWE1Y2Y4YTUxYjY3OTdlZjNhYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvYXBwbGVwYXkvQXBwbGVQYXlDb250YWN0RmllbGQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlDb250YWN0RmllbGQuY3BwCkBAIC00NCw3ICs0NCw3
IEBAIEV4Y2VwdGlvbk9yPEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpDb250YWN0Rmll
bGRzPiBjb252ZXJ0QW5kVmFsaWRhdGUodW5zCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
Y2FzZSBBcHBsZVBheUNvbnRhY3RGaWVsZDo6UGhvbmV0aWNOYW1lOgogICAgICAgICAgICAgaWYg
KHZlcnNpb24gPCAzKQotICAgICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJy
b3IsICJcInBob25ldGljTmFtZVwiIGlzIG5vdCBhIHZhbGlkIGNvbnRhY3QgZmllbGQuIiB9Owor
ICAgICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJcInBob25ldGlj
TmFtZVwiIGlzIG5vdCBhIHZhbGlkIGNvbnRhY3QgZmllbGQuIl9zIH07CiAgICAgICAgICAgICBy
ZXN1bHQucGhvbmV0aWNOYW1lID0gdHJ1ZTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBj
YXNlIEFwcGxlUGF5Q29udGFjdEZpZWxkOjpQaG9uZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlNZXJjaGFudENhcGFiaWxpdHkuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheU1lcmNoYW50Q2FwYWJpbGl0eS5j
cHAKaW5kZXggYTYyYTJjNzNlYTMwNjU1MWJlZTg1ZGM5NTYxN2MxMTYyNTY1M2JjMi4uZjY4NGJj
OWFjNjFkNDk5YTU1Y2E0ZTE4MWY1N2I0NjkxNzI1NzlhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheU1lcmNoYW50Q2FwYWJpbGl0eS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheU1lcmNoYW50Q2FwYWJp
bGl0eS5jcHAKQEAgLTMzLDcgKzMzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogRXhjZXB0aW9u
T3I8QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6Ok1lcmNoYW50Q2FwYWJpbGl0aWVzPiBj
b252ZXJ0QW5kVmFsaWRhdGUoY29uc3QgVmVjdG9yPEFwcGxlUGF5TWVyY2hhbnRDYXBhYmlsaXR5
PiYgbWVyY2hhbnRDYXBhYmlsaXRpZXMpCiB7CiAgICAgaWYgKG1lcmNoYW50Q2FwYWJpbGl0aWVz
LmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIkF0IGxl
YXN0IG9uZSBtZXJjaGFudCBjYXBhYmlsaXR5IG11c3QgYmUgcHJvdmlkZWQuIiB9OworICAgICAg
ICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiQXQgbGVhc3Qgb25lIG1lcmNoYW50IGNh
cGFiaWxpdHkgbXVzdCBiZSBwcm92aWRlZC4iX3MgfTsKIAogICAgIEFwcGxlUGF5U2Vzc2lvblBh
eW1lbnRSZXF1ZXN0OjpNZXJjaGFudENhcGFiaWxpdGllcyByZXN1bHQ7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlSZXF1ZXN0QmFzZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5UmVxdWVzdEJhc2UuY3Bw
CmluZGV4IDI0NTg2ZDVkZDQ3OWM5MDkzZDQ5Zjk2MTAxMTkxY2FhOGU4NTA5N2UuLjhkMzYyN2E2
ZjZhMjdmYjhjODJjOTNhZDU0NmQ2YWFmMDY5YmYxMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlSZXF1ZXN0QmFzZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVJlcXVlc3RCYXNlLmNwcApAQCAtNzMs
NyArNzMsNyBAQCBFeGNlcHRpb25PcjxBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdD4gY29u
dmVydEFuZFZhbGlkYXRlKERvY3VtZW50JiBkb2N1bWVudAogICAgIHJlc3VsdC5zZXRNZXJjaGFu
dENhcGFiaWxpdGllcyhtZXJjaGFudENhcGFiaWxpdGllcy5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7
CiAKICAgICBpZiAocmVxdWlyZXNTdXBwb3J0ZWROZXR3b3Jrcyh2ZXJzaW9uLCByZXF1ZXN0KSAm
JiByZXF1ZXN0LnN1cHBvcnRlZE5ldHdvcmtzLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIEV4
Y2VwdGlvbiB7IFR5cGVFcnJvciwgIkF0IGxlYXN0IG9uZSBzdXBwb3J0ZWQgbmV0d29yayBtdXN0
IGJlIHByb3ZpZGVkLiIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwg
IkF0IGxlYXN0IG9uZSBzdXBwb3J0ZWQgbmV0d29yayBtdXN0IGJlIHByb3ZpZGVkLiJfcyB9Owog
CiAgICAgYXV0byBzdXBwb3J0ZWROZXR3b3JrcyA9IGNvbnZlcnRBbmRWYWxpZGF0ZShkb2N1bWVu
dCwgdmVyc2lvbiwgcmVxdWVzdC5zdXBwb3J0ZWROZXR3b3JrcywgcGF5bWVudENvb3JkaW5hdG9y
KTsKICAgICBpZiAoc3VwcG9ydGVkTmV0d29ya3MuaGFzRXhjZXB0aW9uKCkpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2Vzc2lvbi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2Vzc2lvbi5jcHAKaW5kZXgg
NmNiZmNmMDc5NzUwMWE5OTYyOWZjYzY5MzZiNmYwNTBmMGNmYzg5YS4uNTllMzAwYmViNzA5MjZl
Zjk4M2FlY2JhNmQ0YWU1YjZlN2IwNjVjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9hcHBsZXBheS9BcHBsZVBheVNlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTZXNzaW9uLmNwcApAQCAtMzEwLDEwICszMTAsMTAgQEAg
RXhjZXB0aW9uT3I8UmVmPEFwcGxlUGF5U2Vzc2lvbj4+IEFwcGxlUGF5U2Vzc2lvbjo6Y3JlYXRl
KERvY3VtZW50JiBkb2N1bWVudCwgdW4KICAgICAgICAgcmV0dXJuIGNhbkNhbGwucmVsZWFzZUV4
Y2VwdGlvbigpOwogCiAgICAgaWYgKCFVc2VyR2VzdHVyZUluZGljYXRvcjo6cHJvY2Vzc2luZ1Vz
ZXJHZXN0dXJlKCkpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJy
b3IsICJNdXN0IGNyZWF0ZSBhIG5ldyBBcHBsZVBheVNlc3Npb24gZnJvbSBhIHVzZXIgZ2VzdHVy
ZSBoYW5kbGVyLiIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NF
cnJvciwgIk11c3QgY3JlYXRlIGEgbmV3IEFwcGxlUGF5U2Vzc2lvbiBmcm9tIGEgdXNlciBnZXN0
dXJlIGhhbmRsZXIuIl9zIH07CiAKICAgICBpZiAoIWRvY3VtZW50LnBhZ2UoKSkKLSAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwgIkZyYW1lIGlzIGRldGFjaGVk
IiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiRnJh
bWUgaXMgZGV0YWNoZWQiX3MgfTsKIAogICAgIGF1dG8gY29udmVydGVkUGF5bWVudFJlcXVlc3Qg
PSBjb252ZXJ0QW5kVmFsaWRhdGUoZG9jdW1lbnQsIHZlcnNpb24sIFdURk1vdmUocGF5bWVudFJl
cXVlc3QpLCBkb2N1bWVudC5wYWdlKCktPnBheW1lbnRDb29yZGluYXRvcigpKTsKICAgICBpZiAo
Y29udmVydGVkUGF5bWVudFJlcXVlc3QuaGFzRXhjZXB0aW9uKCkpCkBAIC00MTIsNyArNDEyLDcg
QEAgRXhjZXB0aW9uT3I8dm9pZD4gQXBwbGVQYXlTZXNzaW9uOjpvcGVuUGF5bWVudFNldHVwKERv
Y3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3QKICAgICAgICAgcmV0dXJuIGNhbkNhbGwucmVsZWFz
ZUV4Y2VwdGlvbigpOwogCiAgICAgaWYgKCFVc2VyR2VzdHVyZUluZGljYXRvcjo6cHJvY2Vzc2lu
Z1VzZXJHZXN0dXJlKCkpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNz
RXJyb3IsICJNdXN0IGNhbGwgQXBwbGVQYXlTZXNzaW9uLm9wZW5QYXltZW50U2V0dXAgZnJvbSBh
IHVzZXIgZ2VzdHVyZSBoYW5kbGVyLiIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElu
dmFsaWRBY2Nlc3NFcnJvciwgIk11c3QgY2FsbCBBcHBsZVBheVNlc3Npb24ub3BlblBheW1lbnRT
ZXR1cCBmcm9tIGEgdXNlciBnZXN0dXJlIGhhbmRsZXIuIl9zIH07CiAKICAgICBhdXRvKiBwYWdl
ID0gZG9jdW1lbnQucGFnZSgpOwogICAgIGlmICghcGFnZSkKQEAgLTQzMSwxMyArNDMxLDEzIEBA
IEV4Y2VwdGlvbk9yPHZvaWQ+IEFwcGxlUGF5U2Vzc2lvbjo6b3BlblBheW1lbnRTZXR1cChEb2N1
bWVudCYgZG9jdW1lbnQsIGNvbnN0IFN0CiBFeGNlcHRpb25Pcjx2b2lkPiBBcHBsZVBheVNlc3Np
b246OmJlZ2luKERvY3VtZW50JiBkb2N1bWVudCkKIHsKICAgICBpZiAoIWNhbkJlZ2luKCkpCi0g
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJQYXltZW50IHNl
c3Npb24gaXMgYWxyZWFkeSBhY3RpdmUuIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
SW52YWxpZEFjY2Vzc0Vycm9yLCAiUGF5bWVudCBzZXNzaW9uIGlzIGFscmVhZHkgYWN0aXZlLiJf
cyB9OwogCiAgICAgaWYgKHBheW1lbnRDb29yZGluYXRvcigpLmhhc0FjdGl2ZVNlc3Npb24oKSkK
LSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwgIlBhZ2UgYWxy
ZWFkeSBoYXMgYW4gYWN0aXZlIHBheW1lbnQgc2Vzc2lvbi4iIH07CisgICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJQYWdlIGFscmVhZHkgaGFzIGFuIGFjdGl2
ZSBwYXltZW50IHNlc3Npb24uIl9zIH07CiAKICAgICBpZiAoIXBheW1lbnRDb29yZGluYXRvcigp
LmJlZ2luUGF5bWVudFNlc3Npb24oZG9jdW1lbnQsICp0aGlzLCBtX3BheW1lbnRSZXF1ZXN0KSkK
LSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwgIlRoZXJlIGlz
IGFscmVhZHkgaGFzIGFuIGFjdGl2ZSBwYXltZW50IHNlc3Npb24uIiB9OworICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiVGhlcmUgaXMgYWxyZWFkeSBoYXMg
YW4gYWN0aXZlIHBheW1lbnQgc2Vzc2lvbi4iX3MgfTsKIAogICAgIG1fc3RhdGUgPSBTdGF0ZTo6
QWN0aXZlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0Fw
cGxlUGF5U2V0dXAuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBh
eVNldHVwLmNwcAppbmRleCBlOGIxMzYxNjkwYjIwZWFmN2UxYzYxNmE3NzJhOGY2MTNkZWZmMzQ4
Li44OWU0YTQ1NWYxODVmODE5MGM3ZWMwZDc2MTc4NGQ1OTQ2YmM2MTYzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2V0dXAuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTZXR1cC5jcHAKQEAgLTkxLDcg
KzkxLDcgQEAgdm9pZCBBcHBsZVBheVNldHVwOjpiZWdpbihEb2N1bWVudCYgZG9jdW1lbnQsIFZl
Y3RvcjxSZWZQdHI8QXBwbGVQYXlTZXR1cEZlYXR1cmUKICAgICB9CiAKICAgICBpZiAoIVVzZXJH
ZXN0dXJlSW5kaWNhdG9yOjpwcm9jZXNzaW5nVXNlckdlc3R1cmUoKSkgewotICAgICAgICBwcm9t
aXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJNdXN0IGNhbGwgQXBw
bGVQYXlTZXR1cC5iZWdpbiBmcm9tIGEgdXNlciBnZXN0dXJlIGhhbmRsZXIuIiB9KTsKKyAgICAg
ICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiTXVzdCBj
YWxsIEFwcGxlUGF5U2V0dXAuYmVnaW4gZnJvbSBhIHVzZXIgZ2VzdHVyZSBoYW5kbGVyLiJfcyB9
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9hcHBsZXBheS9QYXltZW50SW5zdGFsbG1lbnRDb25maWd1cmF0aW9uLm1tIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50SW5zdGFsbG1lbnRDb25maWd1cmF0
aW9uLm1tCmluZGV4IDY0ZDFkYmIyMTJlNzAyYzAyYjJiODJjZDFlNjhlODBlNzczZjA4NzAuLjk5
Yzc0ZDY4OTE2NDkwNzIyNTBkZWM0OWI5NmQwMGNjYTZjNmUxN2UgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvUGF5bWVudEluc3RhbGxtZW50Q29uZmlndXJhdGlv
bi5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRJbnN0YWxs
bWVudENvbmZpZ3VyYXRpb24ubW0KQEAgLTIwNyw3ICsyMDcsNyBAQCBFeGNlcHRpb25PcjxQYXlt
ZW50SW5zdGFsbG1lbnRDb25maWd1cmF0aW9uPiBQYXltZW50SW5zdGFsbG1lbnRDb25maWd1cmF0
aW9uOjpjcgogICAgICAgICBOU0RhdGEgKmFwcGxpY2F0aW9uTWV0YWRhdGEgPSBbY29uZmlndXJh
dGlvbi5hcHBsaWNhdGlvbk1ldGFkYXRhIGRhdGFVc2luZ0VuY29kaW5nOk5TVVRGOFN0cmluZ0Vu
Y29kaW5nXTsKICAgICAgICAgYXBwbGljYXRpb25NZXRhZGF0YURpY3Rpb25hcnkgPSBkeW5hbWlj
X29iamNfY2FzdDxOU0RpY3Rpb25hcnk+KFtOU0pTT05TZXJpYWxpemF0aW9uIEpTT05PYmplY3RX
aXRoRGF0YTphcHBsaWNhdGlvbk1ldGFkYXRhIG9wdGlvbnM6MCBlcnJvcjpuaWxdKTsKICAgICAg
ICAgaWYgKCFhcHBsaWNhdGlvbk1ldGFkYXRhRGljdGlvbmFyeSkKLSAgICAgICAgICAgIHJldHVy
biBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJhcHBsaWNhdGlvbk1ldGFkYXRhIG11c3QgYmUgYSBK
U09OIG9iamVjdCIgfTsKKyAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3Is
ICJhcHBsaWNhdGlvbk1ldGFkYXRhIG11c3QgYmUgYSBKU09OIG9iamVjdCJfcyB9OwogICAgIH0K
IAogICAgIHJldHVybiBQYXltZW50SW5zdGFsbG1lbnRDb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRp
b24sIGFwcGxpY2F0aW9uTWV0YWRhdGFEaWN0aW9uYXJ5KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvUGF5bWVudFJlcXVlc3RWYWxpZGF0b3IubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRSZXF1ZXN0VmFsaWRhdG9yLm1tCmlu
ZGV4IGYxMGM1NWQ0OTRhMTFjMzBjMGExMDVlMWJmYjYxNDM5MDg2NjhjNDAuLmM1MmZkOTJkMDhk
M2RjNGUzM2FmN2UwZmRiYmUzZTBjOGU4Y2VjYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvYXBwbGVwYXkvUGF5bWVudFJlcXVlc3RWYWxpZGF0b3IubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50UmVxdWVzdFZhbGlkYXRvci5tbQpAQCAt
OTUsMTggKzk1LDE4IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFBheW1lbnRSZXF1ZXN0VmFsaWRhdG9y
Ojp2YWxpZGF0ZShjb25zdCBBcHBsZVBheVNlc3Npb25QYXltZW50CiBFeGNlcHRpb25Pcjx2b2lk
PiBQYXltZW50UmVxdWVzdFZhbGlkYXRvcjo6dmFsaWRhdGVUb3RhbChjb25zdCBBcHBsZVBheUxp
bmVJdGVtJiB0b3RhbCkKIHsKICAgICBpZiAoIXRvdGFsLmxhYmVsKQotICAgICAgICByZXR1cm4g
RXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiTWlzc2luZyB0b3RhbCBsYWJlbC4iIH07CisgICAgICAg
IHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJNaXNzaW5nIHRvdGFsIGxhYmVsLiJfcyB9
OwogCiAgICAgaWYgKCF0b3RhbC5hbW91bnQpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBU
eXBlRXJyb3IsICJNaXNzaW5nIHRvdGFsIGFtb3VudC4iIH07CisgICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBUeXBlRXJyb3IsICJNaXNzaW5nIHRvdGFsIGFtb3VudC4iX3MgfTsKIAogICAgIGRv
dWJsZSBhbW91bnQgPSBbTlNEZWNpbWFsTnVtYmVyIGRlY2ltYWxOdW1iZXJXaXRoU3RyaW5nOnRv
dGFsLmFtb3VudCBsb2NhbGU6QHsgTlNMb2NhbGVEZWNpbWFsU2VwYXJhdG9yIDogQCIuIiB9XS5k
b3VibGVWYWx1ZTsKIAogICAgIGlmIChhbW91bnQgPCAwKQotICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgVHlwZUVycm9yLCAiVG90YWwgYW1vdW50IG11c3Qgbm90IGJlIG5lZ2F0aXZlLiIgfTsK
KyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIlRvdGFsIGFtb3VudCBtdXN0
IG5vdCBiZSBuZWdhdGl2ZS4iX3MgfTsKIAogICAgIGlmIChhbW91bnQgPiAxMDAwMDAwMDApCi0g
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJUb3RhbCBhbW91bnQgaXMgdG9v
IGJpZy4iIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJUb3RhbCBh
bW91bnQgaXMgdG9vIGJpZy4iX3MgfTsKIAogICAgIHJldHVybiB7IH07CiB9CkBAIC0xMTQsNyAr
MTE0LDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gUGF5bWVudFJlcXVlc3RWYWxpZGF0b3I6OnZhbGlk
YXRlVG90YWwoY29uc3QgQXBwbGVQYXlMaW5lSXRlbSYKIHN0YXRpYyBFeGNlcHRpb25Pcjx2b2lk
PiB2YWxpZGF0ZUNvdW50cnlDb2RlKGNvbnN0IFN0cmluZyYgY291bnRyeUNvZGUpCiB7CiAgICAg
aWYgKCFjb3VudHJ5Q29kZSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwg
Ik1pc3NpbmcgY291bnRyeSBjb2RlLiIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5
cGVFcnJvciwgIk1pc3NpbmcgY291bnRyeSBjb2RlLiJfcyB9OwogCiAgICAgZm9yIChhdXRvICpj
b3VudHJ5Q29kZVB0ciA9IHVsb2NfZ2V0SVNPQ291bnRyaWVzKCk7ICpjb3VudHJ5Q29kZVB0cjsg
Kytjb3VudHJ5Q29kZVB0cikgewogICAgICAgICBpZiAoY291bnRyeUNvZGUgPT0gKmNvdW50cnlD
b2RlUHRyKQpAQCAtMTI3LDcgKzEyNyw3IEBAIHN0YXRpYyBFeGNlcHRpb25Pcjx2b2lkPiB2YWxp
ZGF0ZUNvdW50cnlDb2RlKGNvbnN0IFN0cmluZyYgY291bnRyeUNvZGUpCiBzdGF0aWMgRXhjZXB0
aW9uT3I8dm9pZD4gdmFsaWRhdGVDdXJyZW5jeUNvZGUoY29uc3QgU3RyaW5nJiBjdXJyZW5jeUNv
ZGUpCiB7CiAgICAgaWYgKCFjdXJyZW5jeUNvZGUpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBUeXBlRXJyb3IsICJNaXNzaW5nIGN1cnJlbmN5IGNvZGUuIiB9OworICAgICAgICByZXR1cm4g
RXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiTWlzc2luZyBjdXJyZW5jeSBjb2RlLiJfcyB9OwogCiAg
ICAgVUVycm9yQ29kZSBlcnJvckNvZGUgPSBVX1pFUk9fRVJST1I7CiAgICAgYXV0byBjdXJyZW5j
eUNvZGVzID0gc3RkOjp1bmlxdWVfcHRyPFVFbnVtZXJhdGlvbiwgSUNVRGVsZXRlcjx1ZW51bV9j
bG9zZT4+KHVjdXJyX29wZW5JU09DdXJyZW5jaWVzKFVDVVJSX0FMTCwgJmVycm9yQ29kZSkpOwpA
QCAtMTQ0LDcgKzE0NCw3IEBAIHN0YXRpYyBFeGNlcHRpb25Pcjx2b2lkPiB2YWxpZGF0ZUN1cnJl
bmN5Q29kZShjb25zdCBTdHJpbmcmIGN1cnJlbmN5Q29kZSkKIHN0YXRpYyBFeGNlcHRpb25Pcjx2
b2lkPiB2YWxpZGF0ZU1lcmNoYW50Q2FwYWJpbGl0aWVzKGNvbnN0IEFwcGxlUGF5U2Vzc2lvblBh
eW1lbnRSZXF1ZXN0OjpNZXJjaGFudENhcGFiaWxpdGllcyYgbWVyY2hhbnRDYXBhYmlsaXRpZXMp
CiB7CiAgICAgaWYgKCFtZXJjaGFudENhcGFiaWxpdGllcy5zdXBwb3J0czNEUyAmJiAhbWVyY2hh
bnRDYXBhYmlsaXRpZXMuc3VwcG9ydHNFTVYgJiYgIW1lcmNoYW50Q2FwYWJpbGl0aWVzLnN1cHBv
cnRzQ3JlZGl0ICYmICFtZXJjaGFudENhcGFiaWxpdGllcy5zdXBwb3J0c0RlYml0KQotICAgICAg
ICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiTWlzc2luZyBtZXJjaGFudCBjYXBhYmls
aXRpZXMuIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiTWlzc2lu
ZyBtZXJjaGFudCBjYXBhYmlsaXRpZXMuIl9zIH07CiAKICAgICByZXR1cm4geyB9OwogfQpAQCAt
MTUyLDcgKzE1Miw3IEBAIHN0YXRpYyBFeGNlcHRpb25Pcjx2b2lkPiB2YWxpZGF0ZU1lcmNoYW50
Q2FwYWJpbGl0aWVzKGNvbnN0IEFwcGxlUGF5U2Vzc2lvblBheW1lCiBzdGF0aWMgRXhjZXB0aW9u
T3I8dm9pZD4gdmFsaWRhdGVTdXBwb3J0ZWROZXR3b3Jrcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYg
c3VwcG9ydGVkTmV0d29ya3MpCiB7CiAgICAgaWYgKHN1cHBvcnRlZE5ldHdvcmtzLmlzRW1wdHko
KSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIk1pc3Npbmcgc3VwcG9y
dGVkIG5ldHdvcmtzLiIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwg
Ik1pc3Npbmcgc3VwcG9ydGVkIG5ldHdvcmtzLiJfcyB9OwogCiAgICAgcmV0dXJuIHsgfTsKIH0K
QEAgLTE2MSw3ICsxNjEsNyBAQCBzdGF0aWMgRXhjZXB0aW9uT3I8dm9pZD4gdmFsaWRhdGVTaGlw
cGluZ01ldGhvZChjb25zdCBBcHBsZVBheVNoaXBwaW5nTWV0aG9kJiBzaAogewogICAgIE5TRGVj
aW1hbE51bWJlciAqYW1vdW50ID0gW05TRGVjaW1hbE51bWJlciBkZWNpbWFsTnVtYmVyV2l0aFN0
cmluZzpzaGlwcGluZ01ldGhvZC5hbW91bnQgbG9jYWxlOkB7IE5TTG9jYWxlRGVjaW1hbFNlcGFy
YXRvciA6IEAiLiIgfV07CiAgICAgaWYgKGFtb3VudC5pbnRlZ2VyVmFsdWUgPCAwKQotICAgICAg
ICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiU2hpcHBpbmcgbWV0aG9kIGFtb3VudCBt
dXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB6ZXJvLiIgfTsKKyAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIlNoaXBwaW5nIG1ldGhvZCBhbW91bnQgbXVzdCBiZSBn
cmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gemVyby4iX3MgfTsKIAogICAgIHJldHVybiB7IH07CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRTZXNz
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvUGF5bWVudFNlc3Npb24u
Y3BwCmluZGV4IDk0Zjk0NTliOWI0NDhhOTg0MmViMGY0MDIzYzY0MmEwNjhlODNjNzEuLjJlOGY2
NmVhODNjMWQ0NzJkYTE4N2MwODM2YjU4MTc2Y2JhZDkxYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvUGF5bWVudFNlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvUGF5bWVudFNlc3Npb24uY3BwCkBAIC01MiwyNCArNTIs
MjQgQEAgRXhjZXB0aW9uT3I8dm9pZD4gUGF5bWVudFNlc3Npb246OmNhbkNyZWF0ZVNlc3Npb24o
RG9jdW1lbnQmIGRvY3VtZW50KQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgU2VjdXJpdHlF
cnJvciwgIlRoaXJkLXBhcnR5IGlmcmFtZXMgYXJlIG5vdCBhbGxvd2VkIHRvIHJlcXVlc3QgcGF5
bWVudHMgdW5sZXNzIGV4cGxpY2l0bHkgYWxsb3dlZCB2aWEgRmVhdHVyZS1Qb2xpY3kgKHBheW1l
bnQpIl9zIH07CiAKICAgICBpZiAoIWRvY3VtZW50LmZyYW1lKCkpCi0gICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJUcnlpbmcgdG8gc3RhcnQgYW4gQXBwbGUg
UGF5IHNlc3Npb24gZnJvbSBhbiBpbmFjdGl2ZSBkb2N1bWVudC4iIH07CisgICAgICAgIHJldHVy
biBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJUcnlpbmcgdG8gc3RhcnQgYW4gQXBw
bGUgUGF5IHNlc3Npb24gZnJvbSBhbiBpbmFjdGl2ZSBkb2N1bWVudC4iX3MgfTsKIAogICAgIGlm
ICghaXNTZWN1cmUoKmRvY3VtZW50LmxvYWRlcigpKSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlv
biB7IEludmFsaWRBY2Nlc3NFcnJvciwgIlRyeWluZyB0byBzdGFydCBhbiBBcHBsZSBQYXkgc2Vz
c2lvbiBmcm9tIGFuIGluc2VjdXJlIGRvY3VtZW50LiIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2Vw
dGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwgIlRyeWluZyB0byBzdGFydCBhbiBBcHBsZSBQYXkg
c2Vzc2lvbiBmcm9tIGFuIGluc2VjdXJlIGRvY3VtZW50LiJfcyB9OwogCiAgICAgYXV0byYgdG9w
RG9jdW1lbnQgPSBkb2N1bWVudC50b3BEb2N1bWVudCgpOwogICAgIGlmICgmZG9jdW1lbnQgIT0g
JnRvcERvY3VtZW50KSB7CiAgICAgICAgIGF1dG8mIHRvcE9yaWdpbiA9IHRvcERvY3VtZW50LnRv
cE9yaWdpbigpOwogCiAgICAgICAgIGlmICghZG9jdW1lbnQuc2VjdXJpdHlPcmlnaW4oKS5pc1Nh
bWVTY2hlbWVIb3N0UG9ydCh0b3BPcmlnaW4pKQotICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlv
biB7IEludmFsaWRBY2Nlc3NFcnJvciwgIlRyeWluZyB0byBzdGFydCBhbiBBcHBsZSBQYXkgc2Vz
c2lvbiBmcm9tIGEgZG9jdW1lbnQgd2l0aCBhbiBkaWZmZXJlbnQgc2VjdXJpdHkgb3JpZ2luIHRo
YW4gaXRzIHRvcC1sZXZlbCBmcmFtZS4iIH07CisgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9u
IHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiVHJ5aW5nIHRvIHN0YXJ0IGFuIEFwcGxlIFBheSBzZXNz
aW9uIGZyb20gYSBkb2N1bWVudCB3aXRoIGFuIGRpZmZlcmVudCBzZWN1cml0eSBvcmlnaW4gdGhh
biBpdHMgdG9wLWxldmVsIGZyYW1lLiJfcyB9OwogCiAgICAgICAgIGZvciAoYXV0byogYW5jZXN0
b3JEb2N1bWVudCA9IGRvY3VtZW50LnBhcmVudERvY3VtZW50KCk7IGFuY2VzdG9yRG9jdW1lbnQg
IT0gJnRvcERvY3VtZW50OyBhbmNlc3RvckRvY3VtZW50ID0gYW5jZXN0b3JEb2N1bWVudC0+cGFy
ZW50RG9jdW1lbnQoKSkgewogICAgICAgICAgICAgaWYgKCFpc1NlY3VyZSgqYW5jZXN0b3JEb2N1
bWVudC0+bG9hZGVyKCkpKQotICAgICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZh
bGlkQWNjZXNzRXJyb3IsICJUcnlpbmcgdG8gc3RhcnQgYW4gQXBwbGUgUGF5IHNlc3Npb24gZnJv
bSBhIGRvY3VtZW50IHdpdGggYW4gaW5zZWN1cmUgcGFyZW50IGZyYW1lLiIgfTsKKyAgICAgICAg
ICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiVHJ5aW5nIHRv
IHN0YXJ0IGFuIEFwcGxlIFBheSBzZXNzaW9uIGZyb20gYSBkb2N1bWVudCB3aXRoIGFuIGluc2Vj
dXJlIHBhcmVudCBmcmFtZS4iX3MgfTsKIAogICAgICAgICAgICAgaWYgKCFhbmNlc3RvckRvY3Vt
ZW50LT5zZWN1cml0eU9yaWdpbigpLmlzU2FtZVNjaGVtZUhvc3RQb3J0KHRvcE9yaWdpbikpCi0g
ICAgICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwgIlRy
eWluZyB0byBzdGFydCBhbiBBcHBsZSBQYXkgc2Vzc2lvbiBmcm9tIGEgZG9jdW1lbnQgd2l0aCBh
biBkaWZmZXJlbnQgc2VjdXJpdHkgb3JpZ2luIHRoYW4gaXRzIHRvcC1sZXZlbCBmcmFtZS4iIH07
CisgICAgICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwg
IlRyeWluZyB0byBzdGFydCBhbiBBcHBsZSBQYXkgc2Vzc2lvbiBmcm9tIGEgZG9jdW1lbnQgd2l0
aCBhbiBkaWZmZXJlbnQgc2VjdXJpdHkgb3JpZ2luIHRoYW4gaXRzIHRvcC1sZXZlbCBmcmFtZS4i
X3MgfTsKICAgICAgICAgfQogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9hcHBsZXBheS9wYXltZW50cmVxdWVzdC9BcHBsZVBheVBheW1lbnRIYW5kbGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQ
YXltZW50SGFuZGxlci5jcHAKaW5kZXggNzA1NTFhZTg2NDQ4OWM5ZTY3N2NkOTIxNTNmNWQxZTIy
N2E0MDI1NC4uZWI1NmI5MWU1ZmVkYWM2NmE3OWQwNDZhM2JmZWM4ZGIyOTI3NWQ3ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9wYXltZW50cmVxdWVzdC9BcHBs
ZVBheVBheW1lbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxl
cGF5L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVudEhhbmRsZXIuY3BwCkBAIC04OSw3ICs4
OSw3IEBAIHN0YXRpYyBpbmxpbmUgUGF5bWVudENvb3JkaW5hdG9yJiBwYXltZW50Q29vcmRpbmF0
b3IoRG9jdW1lbnQmIGRvY3VtZW50KQogc3RhdGljIEV4Y2VwdGlvbk9yPEFwcGxlUGF5UmVxdWVz
dD4gY29udmVydEFuZFZhbGlkYXRlQXBwbGVQYXlSZXF1ZXN0KERvY3VtZW50JiBkb2N1bWVudCwg
SlNDOjpKU1ZhbHVlIGRhdGEpCiB7CiAgICAgaWYgKGRhdGEuaXNFbXB0eSgpKQotICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiTWlzc2luZyBwYXltZW50IG1ldGhvZCBkYXRh
LiIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIk1pc3NpbmcgcGF5
bWVudCBtZXRob2QgZGF0YS4iX3MgfTsKIAogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUoZG9jdW1lbnQudm0oKSk7CiAgICAgYXV0byBhcHBsZVBheVJlcXVlc3QgPSBj
b252ZXJ0RGljdGlvbmFyeTxBcHBsZVBheVJlcXVlc3Q+KCpkb2N1bWVudC5nbG9iYWxPYmplY3Qo
KSwgZGF0YSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxpY2F0aW9u
bWFuaWZlc3QvQXBwbGljYXRpb25NYW5pZmVzdFBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2FwcGxpY2F0aW9ubWFuaWZlc3QvQXBwbGljYXRpb25NYW5pZmVzdFBhcnNlci5jcHAK
aW5kZXggNmRmZmY0N2I3ZTJjYjg5YjU0Zjk1ZWM0NjI3ZDNkN2NlNjkwZjkwYi4uYzVkMTMwMzhj
ZmM2N2Y0NWE0NmU2OGM5Y2M0NTIxMDczZDc2YTU3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9hcHBsaWNhdGlvbm1hbmlmZXN0L0FwcGxpY2F0aW9uTWFuaWZlc3RQYXJzZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGljYXRpb25tYW5pZmVzdC9BcHBs
aWNhdGlvbk1hbmlmZXN0UGFyc2VyLmNwcApAQCAtMjMxLDcgKzIzMSw3IEBAIFZlY3RvcjxBcHBs
aWNhdGlvbk1hbmlmZXN0OjpJY29uPiBBcHBsaWNhdGlvbk1hbmlmZXN0UGFyc2VyOjpwYXJzZUlj
b25zKGNvbnN0IEpTCiAgICAgICAgICAgICAgICAgY3VycmVudEljb24ucHVycG9zZXMgPSBwdXJw
b3NlczsKICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgcHVycG9zZVN0cmlu
Z1ZhbHVlID0gcHVycG9zZVN0cmluZ1ZhbHVlLnN0cmlwV2hpdGVTcGFjZSgpLmNvbnZlcnRUb0FT
Q0lJTG93ZXJjYXNlKCk7Ci0gICAgICAgICAgICAgICAgVmVjdG9yPFN0cmluZz4ga2V5d29yZHMg
PSBwdXJwb3NlU3RyaW5nVmFsdWUuc3BsaXRBbGxvd2luZ0VtcHR5RW50cmllcygiICIpOworICAg
ICAgICAgICAgICAgIFZlY3RvcjxTdHJpbmc+IGtleXdvcmRzID0gcHVycG9zZVN0cmluZ1ZhbHVl
LnNwbGl0QWxsb3dpbmdFbXB0eUVudHJpZXMoIiAiX3MpOwogCiAgICAgICAgICAgICAgICAgZm9y
IChjb25zdCBhdXRvJiBrZXl3b3JkIDoga2V5d29yZHMpIHsKICAgICAgICAgICAgICAgICAgICAg
aWYgKGtleXdvcmQgPT0gIm1vbm9jaHJvbWUiKQpAQCAtMjgyLDkgKzI4Miw5IEBAIHN0YXRpYyBi
b29sIGlzSW5TY29wZShjb25zdCBVUkwmIHNjb3BlVVJMLCBjb25zdCBVUkwmIHRhcmdldFVSTCkK
IAogVVJMIEFwcGxpY2F0aW9uTWFuaWZlc3RQYXJzZXI6OnBhcnNlU2NvcGUoY29uc3QgSlNPTjo6
T2JqZWN0JiBtYW5pZmVzdCwgY29uc3QgVVJMJiBkb2N1bWVudFVSTCwgY29uc3QgVVJMJiBzdGFy
dFVSTCkKIHsKLSAgICBVUkwgZGVmYXVsdFNjb3BlIHsgc3RhcnRVUkwsICIuLyIgfTsKKyAgICBV
UkwgZGVmYXVsdFNjb3BlIHsgc3RhcnRVUkwsICIuLyJfcyB9OwogCi0gICAgYXV0byB2YWx1ZSA9
IG1hbmlmZXN0LmdldFZhbHVlKCJzY29wZSIpOworICAgIGF1dG8gdmFsdWUgPSBtYW5pZmVzdC5n
ZXRWYWx1ZSgic2NvcGUiX3MpOwogICAgIGlmICghdmFsdWUpCiAgICAgICAgIHJldHVybiBkZWZh
dWx0U2NvcGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvV2lu
ZG93T3JXb3JrZXJHbG9iYWxTY29wZUNhY2hlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2NhY2hlL1dpbmRvd09yV29ya2VyR2xvYmFsU2NvcGVDYWNoZXMuY3BwCmluZGV4IGExNzQ5NWQ3
NjU5NjU2ZmUyZGQ5Y2NhM2QzNzExMjIxZmU0OGQxMDQuLmRmZTE4OGZjMGVmZmRhYzJiZWYwZTlh
Y2RlOTZjM2VmNjJiODZhNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2Fj
aGUvV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZUNhY2hlcy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9jYWNoZS9XaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlQ2FjaGVzLmNwcApAQCAt
MTI3LDcgKzEyNyw3IEBAIERPTUNhY2hlU3RvcmFnZSogV29ya2VyR2xvYmFsU2NvcGVDYWNoZXM6
OmNhY2hlcygpIGNvbnN0CiBFeGNlcHRpb25PcjxET01DYWNoZVN0b3JhZ2UqPiBXaW5kb3dPcldv
cmtlckdsb2JhbFNjb3BlQ2FjaGVzOjpjYWNoZXMoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29u
dGV4dCwgRE9NV2luZG93JiB3aW5kb3cpCiB7CiAgICAgaWYgKGRvd25jYXN0PERvY3VtZW50Pihj
b250ZXh0KS5pc1NhbmRib3hlZChTYW5kYm94T3JpZ2luKSkKLSAgICAgICAgcmV0dXJuIEV4Y2Vw
dGlvbiB7IFNlY3VyaXR5RXJyb3IsICJDYWNoZSBzdG9yYWdlIGlzIGRpc2FibGVkIGJlY2F1c2Ug
dGhlIGNvbnRleHQgaXMgc2FuZGJveGVkIGFuZCBsYWNrcyB0aGUgJ2FsbG93LXNhbWUtb3JpZ2lu
JyBmbGFnIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgU2VjdXJpdHlFcnJvciwgIkNh
Y2hlIHN0b3JhZ2UgaXMgZGlzYWJsZWQgYmVjYXVzZSB0aGUgY29udGV4dCBpcyBzYW5kYm94ZWQg
YW5kIGxhY2tzIHRoZSAnYWxsb3ctc2FtZS1vcmlnaW4nIGZsYWciX3MgfTsKIAogICAgIGlmICgh
d2luZG93LmlzQ3VycmVudGx5RGlzcGxheWVkSW5GcmFtZSgpKQogICAgICAgICByZXR1cm4gbnVs
bHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEv
SW5pdERhdGFSZWdpc3RyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1l
ZGlhL0luaXREYXRhUmVnaXN0cnkuY3BwCmluZGV4IDZmODg4ZTE3ODU4ZGRhNmQ5NDcxZWMxZjZl
ZjVkMDY2ZGYwZTQ5OTAuLjhjZGJjYTc3YWYzODMwN2IyYjRjMGE0ZDI1YTFmMGU5MTFhYmIxZGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvSW5pdERh
dGFSZWdpc3RyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRp
YS9Jbml0RGF0YVJlZ2lzdHJ5LmNwcApAQCAtMTA1LDcgKzEwNSw3IEBAIHN0YXRpYyBSZWZQdHI8
RnJhZ21lbnRlZFNoYXJlZEJ1ZmZlcj4gc2FuaXRpemVLZXlpZHMoY29uc3QgRnJhZ21lbnRlZFNo
YXJlZEJ1ZmZlCiAgICAgYXV0byBraWRzQXJyYXkgPSBKU09OOjpBcnJheTo6Y3JlYXRlKCk7CiAg
ICAgZm9yIChhdXRvJiBidWZmZXIgOiBrZXlJREJ1ZmZlci52YWx1ZSgpKQogICAgICAgICBraWRz
QXJyYXktPnB1c2hTdHJpbmcoYmFzZTY0VVJMRW5jb2RlVG9TdHJpbmcoYnVmZmVyLT5tYWtlQ29u
dGlndW91cygpLT5kYXRhKCksIGJ1ZmZlci0+c2l6ZSgpKSk7Ci0gICAgb2JqZWN0LT5zZXRBcnJh
eSgia2lkcyIsIFdURk1vdmUoa2lkc0FycmF5KSk7CisgICAgb2JqZWN0LT5zZXRBcnJheSgia2lk
cyJfcywgV1RGTW92ZShraWRzQXJyYXkpKTsKIAogICAgIENTdHJpbmcganNvbkRhdGEgPSBvYmpl
Y3QtPnRvSlNPTlN0cmluZygpLnV0ZjgoKTsKICAgICByZXR1cm4gU2hhcmVkQnVmZmVyOjpjcmVh
dGUoanNvbkRhdGEuZGF0YSgpLCBqc29uRGF0YS5sZW5ndGgoKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2VudHJpZXNhcGkvRE9NRmlsZVN5c3RlbS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2VudHJpZXNhcGkvRE9NRmlsZVN5c3RlbS5jcHAKaW5kZXggOWY0ODFk
YzYyOWFhNzdhNjBkYTVjNWVlMDQ0YTczNmJkNDZkM2QyMC4uOWFjYTYxOGI1ZDZjNzJlMjQyNDU5
NGI5YTE5ZGUxYTRlMDRmOWM4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9l
bnRyaWVzYXBpL0RPTUZpbGVTeXN0ZW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZW50cmllc2FwaS9ET01GaWxlU3lzdGVtLmNwcApAQCAtNTksNyArNTksNyBAQCBzdGF0aWMgRXhj
ZXB0aW9uT3I8VmVjdG9yPExpc3RlZENoaWxkPj4gbGlzdERpcmVjdG9yeVdpdGhNZXRhZGF0YShj
b25zdCBTdHJpbmcmCiB7CiAgICAgQVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CiAgICAgaWYgKEZp
bGVTeXN0ZW06OmZpbGVUeXBlKGZ1bGxQYXRoKSAhPSBGaWxlU3lzdGVtOjpGaWxlVHlwZTo6RGly
ZWN0b3J5KQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90Rm91bmRFcnJvciwgIlBhdGgg
bm8gbG9uZ2VyIGV4aXN0cyBvciBpcyBubyBsb25nZXIgYSBkaXJlY3RvcnkiIH07CisgICAgICAg
IHJldHVybiBFeGNlcHRpb24geyBOb3RGb3VuZEVycm9yLCAiUGF0aCBubyBsb25nZXIgZXhpc3Rz
IG9yIGlzIG5vIGxvbmdlciBhIGRpcmVjdG9yeSJfcyB9OwogCiAgICAgYXV0byBjaGlsZE5hbWVz
ID0gRmlsZVN5c3RlbTo6bGlzdERpcmVjdG9yeShmdWxsUGF0aCk7CiAgICAgVmVjdG9yPExpc3Rl
ZENoaWxkPiBsaXN0ZWRDaGlsZHJlbjsKQEAgLTE4Myw3ICsxODMsNyBAQCBzdGF0aWMgRXhjZXB0
aW9uT3I8U3RyaW5nPiB2YWxpZGF0ZVBhdGhJc0V4cGVjdGVkVHlwZShjb25zdCBTdHJpbmcmIGZ1
bGxQYXRoLCBTdAogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90Rm91bmRFcnJvciwgIlBh
dGggZG9lcyBub3QgZXhpc3QiX3MgfTsKIAogICAgIGlmICgqZmlsZVR5cGUgIT0gZXhwZWN0ZWRU
eXBlKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZU1pc21hdGNoRXJyb3IsICJFbnRy
eSBhdCBwYXRoIGRvZXMgbm90IGhhdmUgZXhwZWN0ZWQgdHlwZSIgfTsKKyAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IFR5cGVNaXNtYXRjaEVycm9yLCAiRW50cnkgYXQgcGF0aCBkb2VzIG5vdCBo
YXZlIGV4cGVjdGVkIHR5cGUiX3MgfTsKIAogICAgIHJldHVybiBXVEZNb3ZlKHZpcnR1YWxQYXRo
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5
Q29uc3VtZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlDb25z
dW1lci5jcHAKaW5kZXggOTM2YTdlNDMwNTZjNDU1ZTI5YjI1NTBmYjQwMTBiZWVlYzNiMzVlYi4u
NmY2ZGM2N2NjMzRiOGQ0MDdhYmY2ZGU0NjRjNTI5Yzc0MjM2ZDVmMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlDb25zdW1lci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlDb25zdW1lci5jcHAKQEAgLTE1MCwx
MCArMTUwLDEwIEBAIFJlZlB0cjxET01Gb3JtRGF0YT4gRmV0Y2hCb2R5Q29uc3VtZXI6OnBhY2th
Z2VGb3JtRGF0YShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjCiAgICAgICAgICAgICBjb250ZW50
RGlzcG9zaXRpb25QYXJhbWV0ZXJzQmVnaW4rKzsKIAogICAgICAgICBhdXRvIHBhcmFtZXRlcnMg
PSBwYXJzZVBhcmFtZXRlcnMoU3RyaW5nVmlldyhoZWFkZXIpLnN1YnN0cmluZyhjb250ZW50RGlz
cG9zaXRpb25QYXJhbWV0ZXJzQmVnaW4sIGNvbnRlbnREaXNwb3NpdGlvbkVuZCAtIGNvbnRlbnRE
aXNwb3NpdGlvblBhcmFtZXRlcnNCZWdpbiksIDApOwotICAgICAgICBTdHJpbmcgbmFtZSA9IHBh
cmFtZXRlcnMuZ2V0KCJuYW1lIik7CisgICAgICAgIFN0cmluZyBuYW1lID0gcGFyYW1ldGVycy5n
ZXQoIm5hbWUiX3MpOwogICAgICAgICBpZiAoIW5hbWUpCiAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7Ci0gICAgICAgIFN0cmluZyBmaWxlbmFtZSA9IHBhcmFtZXRlcnMuZ2V0KCJmaWxlbmFtZSIp
OworICAgICAgICBTdHJpbmcgZmlsZW5hbWUgPSBwYXJhbWV0ZXJzLmdldCgiZmlsZW5hbWUiX3Mp
OwogICAgICAgICBpZiAoIWZpbGVuYW1lKQogICAgICAgICAgICAgZm9ybS5hcHBlbmQobmFtZSwg
U3RyaW5nOjpmcm9tVVRGOChib2R5QmVnaW4sIGJvZHlMZW5ndGgpKTsKICAgICAgICAgZWxzZSB7
CkBAIC0xNzYsNyArMTc2LDcgQEAgUmVmUHRyPERPTUZvcm1EYXRhPiBGZXRjaEJvZHlDb25zdW1l
cjo6cGFja2FnZUZvcm1EYXRhKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGMKICAgICAgICAgaWYg
KCFtaW1lVHlwZSkKICAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgICAgIGlm
IChlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG1pbWVUeXBlLT50eXBlLCAibXVsdGlwYXJ0IikgJiYg
ZXF1YWxJZ25vcmluZ0FTQ0lJQ2FzZShtaW1lVHlwZS0+c3VidHlwZSwgImZvcm0tZGF0YSIpKSB7
Ci0gICAgICAgICAgICBhdXRvIGl0ZXJhdG9yID0gbWltZVR5cGUtPnBhcmFtZXRlcnMuZmluZCgi
Ym91bmRhcnkiKTsKKyAgICAgICAgICAgIGF1dG8gaXRlcmF0b3IgPSBtaW1lVHlwZS0+cGFyYW1l
dGVycy5maW5kKCJib3VuZGFyeSJfcyk7CiAgICAgICAgICAgICBpZiAoaXRlcmF0b3IgIT0gbWlt
ZVR5cGUtPnBhcmFtZXRlcnMuZW5kKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGl0ZXJhdG9y
LT52YWx1ZTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
ZXRjaC9GZXRjaEhlYWRlcnMuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRj
aEhlYWRlcnMuY3BwCmluZGV4IDA5MGY1Y2Y0ZDBmZjExNWQ4NGJmNzMzYjdhN2IxNWIzNGYyZTNh
NWYuLjI2YWYwOGYxYWQ1ZTE0Y2JkMWFlZDc0ZWZkZWEzZjFhZDM4YmU2MTUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hIZWFkZXJzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoSGVhZGVycy5jcHAKQEAgLTEwMiw3ICsxMDIs
NyBAQCBzdGF0aWMgRXhjZXB0aW9uT3I8dm9pZD4gZmlsbEhlYWRlck1hcChIVFRQSGVhZGVyTWFw
JiBoZWFkZXJzLCBjb25zdCBGZXRjaEhlYWRlcgogICAgICAgICBhdXRvJiBzZXF1ZW5jZSA9IHN0
ZDo6Z2V0PFZlY3RvcjxWZWN0b3I8U3RyaW5nPj4+KGhlYWRlcnNJbml0KTsKICAgICAgICAgZm9y
IChhdXRvJiBoZWFkZXIgOiBzZXF1ZW5jZSkgewogICAgICAgICAgICAgaWYgKGhlYWRlci5zaXpl
KCkgIT0gMikKLSAgICAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAi
SGVhZGVyIHN1Yi1zZXF1ZW5jZSBtdXN0IGNvbnRhaW4gZXhhY3RseSB0d28gaXRlbXMiIH07Cisg
ICAgICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIkhlYWRlciBzdWIt
c2VxdWVuY2UgbXVzdCBjb250YWluIGV4YWN0bHkgdHdvIGl0ZW1zIl9zIH07CiAgICAgICAgICAg
ICBhdXRvIHJlc3VsdCA9IGFwcGVuZFRvSGVhZGVyTWFwKGhlYWRlclswXSwgaGVhZGVyWzFdLCBo
ZWFkZXJzLCBndWFyZCk7CiAgICAgICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQog
ICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaExvYWRlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoTG9hZGVyLmNwcAppbmRleCA3Y2VhMzJhOTU4
ZjE0YmQ4Yzg3OGJjNTFmNDljMWQxYWRhNmQ2YTM3Li5mNzQzMzhlOGQzMjIyNzBhMzgwZjI0OWE2
NDJlNGVhMGY5MjI4NmUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNo
L0ZldGNoTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNo
TG9hZGVyLmNwcApAQCAtNjksNyArNjksNyBAQCB2b2lkIEZldGNoTG9hZGVyOjpzdGFydExvYWRp
bmdCbG9iVVJMKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIGNvbnN0IFVSTAogCiAg
ICAgUmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QobV91cmxGb3JSZWFkaW5nKTsKICAgICByZXF1ZXN0
LnNldEluaXRpYXRvcklkZW50aWZpZXIoY29udGV4dC5yZXNvdXJjZVJlcXVlc3RJZGVudGlmaWVy
KCkpOwotICAgIHJlcXVlc3Quc2V0SFRUUE1ldGhvZCgiR0VUIik7CisgICAgcmVxdWVzdC5zZXRI
VFRQTWV0aG9kKCJHRVQiX3MpOwogCiAgICAgVGhyZWFkYWJsZUxvYWRlck9wdGlvbnMgb3B0aW9u
czsKICAgICBvcHRpb25zLnNlbmRMb2FkQ2FsbGJhY2tzID0gU2VuZENhbGxiYWNrUG9saWN5OjpT
ZW5kQ2FsbGJhY2tzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lz
dGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAKaW5kZXggMGU5NWZm
ZGVlNGFmODU0ZTg3ZTI1M2E5Y2RlODYzNDJmNWEyZWRmOC4uYWEzMmE5YmIyMmZiNGJiZjkzYmFk
ZDYxZDEyODhiYmY5MDhkM2Q1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
aWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuY3BwCkBA
IC01NSw3ICs1NSw3IEBAIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpGaWxlU3lzdGVtRmlsZUhhbmRs
ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBTdHJpCiB2b2lkIEZpbGVTeXN0ZW1G
aWxlSGFuZGxlOjpnZXRGaWxlKERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8RmlsZT4+
JiYgcHJvbWlzZSkKIHsKICAgICBpZiAoaXNDbG9zZWQoKSkKLSAgICAgICAgcmV0dXJuIHByb21p
c2UucmVqZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiSGFuZGxlIGlzIGNsb3Nl
ZCIgfSk7CisgICAgICAgIHJldHVybiBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlk
U3RhdGVFcnJvciwgIkhhbmRsZSBpcyBjbG9zZWQiX3MgfSk7CiAKICAgICBjb25uZWN0aW9uKCku
Z2V0RmlsZShpZGVudGlmaWVyKCksIFtwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwgcHJv
bWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKICAgICAgICAg
aWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKQEAgLTcyLDcgKzcyLDcgQEAgdm9pZCBGaWxlU3lz
dGVtRmlsZUhhbmRsZTo6Z2V0RmlsZShET01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNlPEZp
bGU+PiYmIHByb20KIHZvaWQgRmlsZVN5c3RlbUZpbGVIYW5kbGU6OmNyZWF0ZVN5bmNBY2Nlc3NI
YW5kbGUoRE9NUHJvbWlzZURlZmVycmVkPElETEludGVyZmFjZTxGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZT4+JiYgcHJvbWlzZSkKIHsKICAgICBpZiAoaXNDbG9zZWQoKSkKLSAgICAgICAgcmV0
dXJuIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiSGFuZGxl
IGlzIGNsb3NlZCIgfSk7CisgICAgICAgIHJldHVybiBwcm9taXNlLnJlamVjdChFeGNlcHRpb24g
eyBJbnZhbGlkU3RhdGVFcnJvciwgIkhhbmRsZSBpcyBjbG9zZWQiX3MgfSk7CiAKICAgICBjb25u
ZWN0aW9uKCkuY3JlYXRlU3luY0FjY2Vzc0hhbmRsZShpZGVudGlmaWVyKCksIFtwcm90ZWN0ZWRU
aGlzID0gUmVmIHsgKnRoaXMgfSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGF1dG8gcmVz
dWx0KSBtdXRhYmxlIHsKICAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVt
SGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxl
U3lzdGVtSGFuZGxlLmNwcAppbmRleCAwYjlmNzg4ZTQ5MDNmYTdlN2FlNDI4OTdhMDAyYjk2ZThk
ZmUxM2Q3Li45ZTBjYzg3NGIwYzczNDQ1N2M0OWM0YzM4NmRhYzJiM2JmNGRlNTk4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhh
bmRsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0Zp
bGVTeXN0ZW1IYW5kbGUuY3BwCkBAIC02MCw3ICs2MCw3IEBAIHZvaWQgRmlsZVN5c3RlbUhhbmRs
ZTo6Y2xvc2UoKQogdm9pZCBGaWxlU3lzdGVtSGFuZGxlOjppc1NhbWVFbnRyeShGaWxlU3lzdGVt
SGFuZGxlJiBoYW5kbGUsIERPTVByb21pc2VEZWZlcnJlZDxJRExCb29sZWFuPiYmIHByb21pc2Up
IGNvbnN0CiB7CiAgICAgaWYgKGlzQ2xvc2VkKCkpCi0gICAgICAgIHJldHVybiBwcm9taXNlLnJl
amVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkhhbmRsZSBpcyBjbG9zZWQiIH0p
OworICAgICAgICByZXR1cm4gcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRl
RXJyb3IsICJIYW5kbGUgaXMgY2xvc2VkIl9zIH0pOwogCiAgICAgaWYgKG1fa2luZCAhPSBoYW5k
bGUua2luZCgpIHx8IG1fbmFtZSAhPSBoYW5kbGUubmFtZSgpKQogICAgICAgICByZXR1cm4gcHJv
bWlzZS5yZXNvbHZlKGZhbHNlKTsKQEAgLTczLDcgKzczLDcgQEAgdm9pZCBGaWxlU3lzdGVtSGFu
ZGxlOjppc1NhbWVFbnRyeShGaWxlU3lzdGVtSGFuZGxlJiBoYW5kbGUsIERPTVByb21pc2VEZWZl
cnJlZDwKIHZvaWQgRmlsZVN5c3RlbUhhbmRsZTo6bW92ZShGaWxlU3lzdGVtSGFuZGxlJiBkZXN0
aW5hdGlvbkhhbmRsZSwgY29uc3QgU3RyaW5nJiBuZXdOYW1lLCBET01Qcm9taXNlRGVmZXJyZWQ8
dm9pZD4mJiBwcm9taXNlKQogewogICAgIGlmIChpc0Nsb3NlZCgpKQotICAgICAgICByZXR1cm4g
cHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJIYW5kbGUgaXMg
Y2xvc2VkIiB9KTsKKyAgICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IElu
dmFsaWRTdGF0ZUVycm9yLCAiSGFuZGxlIGlzIGNsb3NlZCJfcyB9KTsKIAogICAgIGlmIChkZXN0
aW5hdGlvbkhhbmRsZS5raW5kKCkgIT0gS2luZDo6RGlyZWN0b3J5KQogICAgICAgICByZXR1cm4g
cHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgVHlwZU1pc21hdGNoRXJyb3IgfSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJEYXRhYmFzZUlkZW50aWZp
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlSWRlbnRp
Zmllci5oCmluZGV4IDI3MWRlZDRkZWU4Yjg4OGQzMWU0YzRjMTFlMWQxZmM4ODlkYmE2YWIuLjQ2
NTc2OGQ4ZTVlNGZlNGRmYWIxODkzYjc5Y2U2YWM2ZDc3ZTU1NjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlSWRlbnRpZmllci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlSWRlbnRpZmllci5o
CkBAIC03MCw3ICs3MCw3IEBAIHB1YmxpYzoKICAgICBjb25zdCBDbGllbnRPcmlnaW4mIG9yaWdp
bigpIGNvbnN0IHsgcmV0dXJuIG1fb3JpZ2luOyB9CiAgICAgYm9vbCBpc1RyYW5zaWVudCgpIGNv
bnN0IHsgcmV0dXJuIG1faXNUcmFuc2llbnQ7IH0KIAotICAgIFN0cmluZyBkYXRhYmFzZURpcmVj
dG9yeVJlbGF0aXZlVG9Sb290KGNvbnN0IFN0cmluZyYgcm9vdERpcmVjdG9yeSwgY29uc3QgU3Ry
aW5nJiB2ZXJzaW9uU3RyaW5nPSJ2MSIpIGNvbnN0OworICAgIFN0cmluZyBkYXRhYmFzZURpcmVj
dG9yeVJlbGF0aXZlVG9Sb290KGNvbnN0IFN0cmluZyYgcm9vdERpcmVjdG9yeSwgY29uc3QgU3Ry
aW5nJiB2ZXJzaW9uU3RyaW5nID0gInYxIl9zKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCBz
dGF0aWMgU3RyaW5nIGRhdGFiYXNlRGlyZWN0b3J5UmVsYXRpdmVUb1Jvb3QoY29uc3QgQ2xpZW50
T3JpZ2luJiwgY29uc3QgU3RyaW5nJiByb290RGlyZWN0b3J5LCBjb25zdCBTdHJpbmcmIHZlcnNp
b25TdHJpbmcpOwogCiAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5j
b2RlciYpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvSURCS2V5RGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJL
ZXlEYXRhLmNwcAppbmRleCAyYTM3YzUyOGVmNWJmOWQ5NTc3M2EwYjEwZjAyNTIyOWJkZTVhNDE4
Li40NjBmMTc0YTM4MWFiNmFiYTRjYTI5ODMxNDUyNjk4YjVkNTI5MGQwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlEYXRhLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlEYXRhLmNwcApAQCAtMTQ5LDM1ICsx
NDksMzUgQEAgdm9pZCBJREJLZXlEYXRhOjppc29sYXRlZENvcHkoY29uc3QgSURCS2V5RGF0YSYg
c291cmNlLCBJREJLZXlEYXRhJiBkZXN0aW5hdGlvbikKIAogdm9pZCBJREJLZXlEYXRhOjplbmNv
ZGUoS2V5ZWRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXIuZW5jb2RlQm9v
bCgibnVsbCIsIG1faXNOdWxsKTsKKyAgICBlbmNvZGVyLmVuY29kZUJvb2woIm51bGwiX3MsIG1f
aXNOdWxsKTsKICAgICBpZiAobV9pc051bGwpCiAgICAgICAgIHJldHVybjsKIAotICAgIGVuY29k
ZXIuZW5jb2RlRW51bSgidHlwZSIsIG1fdHlwZSk7CisgICAgZW5jb2Rlci5lbmNvZGVFbnVtKCJ0
eXBlIl9zLCBtX3R5cGUpOwogCiAgICAgc3dpdGNoIChtX3R5cGUpIHsKICAgICBjYXNlIEluZGV4
ZWREQjo6S2V5VHlwZTo6SW52YWxpZDoKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgSW5kZXhl
ZERCOjpLZXlUeXBlOjpBcnJheTogewogICAgICAgICBhdXRvJiBhcnJheSA9IHN0ZDo6Z2V0PFZl
Y3RvcjxJREJLZXlEYXRhPj4obV92YWx1ZSk7Ci0gICAgICAgIGVuY29kZXIuZW5jb2RlT2JqZWN0
cygiYXJyYXkiLCBhcnJheS5iZWdpbigpLCBhcnJheS5lbmQoKSwgW10oS2V5ZWRFbmNvZGVyJiBl
bmNvZGVyLCBjb25zdCBJREJLZXlEYXRhJiBrZXkpIHsKKyAgICAgICAgZW5jb2Rlci5lbmNvZGVP
YmplY3RzKCJhcnJheSJfcywgYXJyYXkuYmVnaW4oKSwgYXJyYXkuZW5kKCksIFtdKEtleWVkRW5j
b2RlciYgZW5jb2RlciwgY29uc3QgSURCS2V5RGF0YSYga2V5KSB7CiAgICAgICAgICAgICBrZXku
ZW5jb2RlKGVuY29kZXIpOwogICAgICAgICB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAg
ICBjYXNlIEluZGV4ZWREQjo6S2V5VHlwZTo6QmluYXJ5OiB7CiAgICAgICAgIGF1dG8qIGRhdGEg
PSBzdGQ6OmdldDxUaHJlYWRTYWZlRGF0YUJ1ZmZlcj4obV92YWx1ZSkuZGF0YSgpOwotICAgICAg
ICBlbmNvZGVyLmVuY29kZUJvb2woImhhc0JpbmFyeSIsICEhZGF0YSk7CisgICAgICAgIGVuY29k
ZXIuZW5jb2RlQm9vbCgiaGFzQmluYXJ5Il9zLCAhIWRhdGEpOwogICAgICAgICBpZiAoZGF0YSkK
LSAgICAgICAgICAgIGVuY29kZXIuZW5jb2RlQnl0ZXMoImJpbmFyeSIsIGRhdGEtPmRhdGEoKSwg
ZGF0YS0+c2l6ZSgpKTsKKyAgICAgICAgICAgIGVuY29kZXIuZW5jb2RlQnl0ZXMoImJpbmFyeSJf
cywgZGF0YS0+ZGF0YSgpLCBkYXRhLT5zaXplKCkpOwogICAgICAgICByZXR1cm47CiAgICAgfQog
ICAgIGNhc2UgSW5kZXhlZERCOjpLZXlUeXBlOjpTdHJpbmc6Ci0gICAgICAgIGVuY29kZXIuZW5j
b2RlU3RyaW5nKCJzdHJpbmciLCBzdGQ6OmdldDxTdHJpbmc+KG1fdmFsdWUpKTsKKyAgICAgICAg
ZW5jb2Rlci5lbmNvZGVTdHJpbmcoInN0cmluZyJfcywgc3RkOjpnZXQ8U3RyaW5nPihtX3ZhbHVl
KSk7CiAgICAgICAgIHJldHVybjsKICAgICBjYXNlIEluZGV4ZWREQjo6S2V5VHlwZTo6RGF0ZToK
ICAgICBjYXNlIEluZGV4ZWREQjo6S2V5VHlwZTo6TnVtYmVyOgotICAgICAgICBlbmNvZGVyLmVu
Y29kZURvdWJsZSgibnVtYmVyIiwgc3RkOjpnZXQ8ZG91YmxlPihtX3ZhbHVlKSk7CisgICAgICAg
IGVuY29kZXIuZW5jb2RlRG91YmxlKCJudW1iZXIiX3MsIHN0ZDo6Z2V0PGRvdWJsZT4obV92YWx1
ZSkpOwogICAgICAgICByZXR1cm47CiAgICAgY2FzZSBJbmRleGVkREI6OktleVR5cGU6Ok1heDoK
ICAgICBjYXNlIEluZGV4ZWREQjo6S2V5VHlwZTo6TWluOgpAQCAtMTg5LDcgKzE4OSw3IEBAIHZv
aWQgSURCS2V5RGF0YTo6ZW5jb2RlKEtleWVkRW5jb2RlciYgZW5jb2RlcikgY29uc3QKIAogYm9v
bCBJREJLZXlEYXRhOjpkZWNvZGUoS2V5ZWREZWNvZGVyJiBkZWNvZGVyLCBJREJLZXlEYXRhJiBy
ZXN1bHQpCiB7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZUJvb2woIm51bGwiLCByZXN1bHQubV9p
c051bGwpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGVCb29sKCJudWxsIl9zLCByZXN1bHQubV9p
c051bGwpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAocmVzdWx0Lm1faXNOdWxs
KQpAQCAtMjA1LDcgKzIwNSw3IEBAIGJvb2wgSURCS2V5RGF0YTo6ZGVjb2RlKEtleWVkRGVjb2Rl
ciYgZGVjb2RlciwgSURCS2V5RGF0YSYgcmVzdWx0KQogICAgICAgICAgICAgfHwgdmFsdWUgPT0g
SW5kZXhlZERCOjpLZXlUeXBlOjpOdW1iZXIKICAgICAgICAgICAgIHx8IHZhbHVlID09IEluZGV4
ZWREQjo6S2V5VHlwZTo6TWluOwogICAgIH07Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZUVudW0o
InR5cGUiLCByZXN1bHQubV90eXBlLCBlbnVtRnVuY3Rpb24pKQorICAgIGlmICghZGVjb2Rlci5k
ZWNvZGVFbnVtKCJ0eXBlIl9zLCByZXN1bHQubV90eXBlLCBlbnVtRnVuY3Rpb24pKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAocmVzdWx0Lm1fdHlwZSA9PSBJbmRleGVkREI6Oktl
eVR5cGU6OkludmFsaWQpCkBAIC0yMTksMjYgKzIxOSwyNiBAQCBib29sIElEQktleURhdGE6OmRl
Y29kZShLZXllZERlY29kZXImIGRlY29kZXIsIElEQktleURhdGEmIHJlc3VsdCkKIAogICAgIGlm
IChyZXN1bHQubV90eXBlID09IEluZGV4ZWREQjo6S2V5VHlwZTo6U3RyaW5nKSB7CiAgICAgICAg
IHJlc3VsdC5tX3ZhbHVlID0gU3RyaW5nKCk7Ci0gICAgICAgIHJldHVybiBkZWNvZGVyLmRlY29k
ZVN0cmluZygic3RyaW5nIiwgc3RkOjpnZXQ8U3RyaW5nPihyZXN1bHQubV92YWx1ZSkpOworICAg
ICAgICByZXR1cm4gZGVjb2Rlci5kZWNvZGVTdHJpbmcoInN0cmluZyJfcywgc3RkOjpnZXQ8U3Ry
aW5nPihyZXN1bHQubV92YWx1ZSkpOwogICAgIH0KIAogICAgIGlmIChyZXN1bHQubV90eXBlID09
IEluZGV4ZWREQjo6S2V5VHlwZTo6TnVtYmVyIHx8IHJlc3VsdC5tX3R5cGUgPT0gSW5kZXhlZERC
OjpLZXlUeXBlOjpEYXRlKSB7CiAgICAgICAgIHJlc3VsdC5tX3ZhbHVlID0gMC4wOwotICAgICAg
ICByZXR1cm4gZGVjb2Rlci5kZWNvZGVEb3VibGUoIm51bWJlciIsIHN0ZDo6Z2V0PGRvdWJsZT4o
cmVzdWx0Lm1fdmFsdWUpKTsKKyAgICAgICAgcmV0dXJuIGRlY29kZXIuZGVjb2RlRG91YmxlKCJu
dW1iZXIiX3MsIHN0ZDo6Z2V0PGRvdWJsZT4ocmVzdWx0Lm1fdmFsdWUpKTsKICAgICB9CiAKICAg
ICBpZiAocmVzdWx0Lm1fdHlwZSA9PSBJbmRleGVkREI6OktleVR5cGU6OkJpbmFyeSkgewogICAg
ICAgICByZXN1bHQubV92YWx1ZSA9IFRocmVhZFNhZmVEYXRhQnVmZmVyKCk7CiAKICAgICAgICAg
Ym9vbCBoYXNCaW5hcnlEYXRhOwotICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlQm9vbCgiaGFz
QmluYXJ5IiwgaGFzQmluYXJ5RGF0YSkpCisgICAgICAgIGlmICghZGVjb2Rlci5kZWNvZGVCb29s
KCJoYXNCaW5hcnkiX3MsIGhhc0JpbmFyeURhdGEpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCiAgICAgICAgIGlmICghaGFzQmluYXJ5RGF0YSkKICAgICAgICAgICAgIHJldHVybiB0cnVl
OwogCiAgICAgICAgIFZlY3Rvcjx1aW50OF90PiBieXRlczsKLSAgICAgICAgaWYgKCFkZWNvZGVy
LmRlY29kZUJ5dGVzKCJiaW5hcnkiLCBieXRlcykpCisgICAgICAgIGlmICghZGVjb2Rlci5kZWNv
ZGVCeXRlcygiYmluYXJ5Il9zLCBieXRlcykpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAK
ICAgICAgICAgcmVzdWx0Lm1fdmFsdWUgPSBUaHJlYWRTYWZlRGF0YUJ1ZmZlcjo6Y3JlYXRlKFdU
Rk1vdmUoYnl0ZXMpKTsKQEAgLTI1Miw3ICsyNTIsNyBAQCBib29sIElEQktleURhdGE6OmRlY29k
ZShLZXllZERlY29kZXImIGRlY29kZXIsIElEQktleURhdGEmIHJlc3VsdCkKICAgICB9OwogICAg
IAogICAgIHJlc3VsdC5tX3ZhbHVlID0gVmVjdG9yPElEQktleURhdGE+KCk7Ci0gICAgcmV0dXJu
IGRlY29kZXIuZGVjb2RlT2JqZWN0cygiYXJyYXkiLCBzdGQ6OmdldDxWZWN0b3I8SURCS2V5RGF0
YT4+KHJlc3VsdC5tX3ZhbHVlKSwgYXJyYXlGdW5jdGlvbik7CisgICAgcmV0dXJuIGRlY29kZXIu
ZGVjb2RlT2JqZWN0cygiYXJyYXkiX3MsIHN0ZDo6Z2V0PFZlY3RvcjxJREJLZXlEYXRhPj4ocmVz
dWx0Lm1fdmFsdWUpLCBhcnJheUZ1bmN0aW9uKTsKIH0KIAogaW50IElEQktleURhdGE6OmNvbXBh
cmUoY29uc3QgSURCS2V5RGF0YSYgb3RoZXIpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlSYW5nZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJLZXlSYW5nZS5jcHAKaW5kZXggMTRmMzAzYTA0YzIzYThiZjQ3
YmYwNjU5ZjkyODc5MjRmOTYxM2FmYi4uZGVmNTA0ODE3YWQwMzgyMjQ3NGRkMmY1ZDE2ZDM2OTBi
Yjk3ZjRhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURC
S2V5UmFuZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktl
eVJhbmdlLmNwcApAQCAtMTM3LDcgKzEzNyw3IEBAIEV4Y2VwdGlvbk9yPGJvb2w+IElEQktleVJh
bmdlOjppbmNsdWRlcyhKU0M6OkpTR2xvYmFsT2JqZWN0JiBzdGF0ZSwgSlNDOjpKU1ZhbHVlCiAg
ICAgYXV0byBrZXkgPSBzY3JpcHRWYWx1ZVRvSURCS2V5KHN0YXRlLCBrZXlWYWx1ZSk7CiAgICAg
RVhDRVBUSU9OX0FTU0VSVF9VTlVTRUQoc2NvcGUsICFzY29wZS5leGNlcHRpb24oKSB8fCAha2V5
LT5pc1ZhbGlkKCkpOwogICAgIGlmICgha2V5LT5pc1ZhbGlkKCkpCi0gICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBEYXRhRXJyb3IsICJGYWlsZWQgdG8gZXhlY3V0ZSAnaW5jbHVkZXMnIG9uICdJ
REJLZXlSYW5nZSc6IFRoZSBwYXNzZWQtaW4gdmFsdWUgaXMgbm90IGEgdmFsaWQgSW5kZXhlZERC
IGtleS4iIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBEYXRhRXJyb3IsICJGYWlsZWQg
dG8gZXhlY3V0ZSAnaW5jbHVkZXMnIG9uICdJREJLZXlSYW5nZSc6IFRoZSBwYXNzZWQtaW4gdmFs
dWUgaXMgbm90IGEgdmFsaWQgSW5kZXhlZERCIGtleS4iX3MgfTsKIAogICAgIGlmIChtX2xvd2Vy
KSB7CiAgICAgICAgIGludCBjb21wYXJlID0gbV9sb3dlci0+Y29tcGFyZShrZXkuZ2V0KCkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNl
cmlhbGl6YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVy
L0lEQlNlcmlhbGl6YXRpb24uY3BwCmluZGV4IDJhMmMxZmMzMjk1ODA1ZDUyZmQ1NmFmMzBiNDU1
YWUyY2NjYzQ4NzcuLjMzZDRkNDFjOTI3N2JmZjI5NzEzNzUyYzg5MWQyYzkwOTFhZDM1Y2IgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJp
YWxpemF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2
ZXIvSURCU2VyaWFsaXphdGlvbi5jcHAKQEAgLTQ1LDE3ICs0NSwxNyBAQCBSZWZQdHI8U2hhcmVk
QnVmZmVyPiBzZXJpYWxpemVJREJLZXlQYXRoKGNvbnN0IHN0ZDo6b3B0aW9uYWw8SURCS2V5UGF0
aD4mIGtleVBhdAogCiAgICAgaWYgKGtleVBhdGgpIHsKICAgICAgICAgYXV0byB2aXNpdG9yID0g
V1RGOjptYWtlVmlzaXRvcihbJl0oY29uc3QgU3RyaW5nJiBzdHJpbmcpIHsKLSAgICAgICAgICAg
IGVuY29kZXItPmVuY29kZUVudW0oInR5cGUiLCBLZXlQYXRoVHlwZTo6U3RyaW5nKTsKLSAgICAg
ICAgICAgIGVuY29kZXItPmVuY29kZVN0cmluZygic3RyaW5nIiwgc3RyaW5nKTsKKyAgICAgICAg
ICAgIGVuY29kZXItPmVuY29kZUVudW0oInR5cGUiX3MsIEtleVBhdGhUeXBlOjpTdHJpbmcpOwor
ICAgICAgICAgICAgZW5jb2Rlci0+ZW5jb2RlU3RyaW5nKCJzdHJpbmciX3MsIHN0cmluZyk7CiAg
ICAgICAgIH0sIFsmXShjb25zdCBWZWN0b3I8U3RyaW5nPiYgdmVjdG9yKSB7Ci0gICAgICAgICAg
ICBlbmNvZGVyLT5lbmNvZGVFbnVtKCJ0eXBlIiwgS2V5UGF0aFR5cGU6OkFycmF5KTsKLSAgICAg
ICAgICAgIGVuY29kZXItPmVuY29kZU9iamVjdHMoImFycmF5IiwgdmVjdG9yLmJlZ2luKCksIHZl
Y3Rvci5lbmQoKSwgW10oV2ViQ29yZTo6S2V5ZWRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBTdHJp
bmcmIHN0cmluZykgewotICAgICAgICAgICAgICAgIGVuY29kZXIuZW5jb2RlU3RyaW5nKCJzdHJp
bmciLCBzdHJpbmcpOworICAgICAgICAgICAgZW5jb2Rlci0+ZW5jb2RlRW51bSgidHlwZSJfcywg
S2V5UGF0aFR5cGU6OkFycmF5KTsKKyAgICAgICAgICAgIGVuY29kZXItPmVuY29kZU9iamVjdHMo
ImFycmF5Il9zLCB2ZWN0b3IuYmVnaW4oKSwgdmVjdG9yLmVuZCgpLCBbXShXZWJDb3JlOjpLZXll
ZEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFN0cmluZyYgc3RyaW5nKSB7CisgICAgICAgICAgICAg
ICAgZW5jb2Rlci5lbmNvZGVTdHJpbmcoInN0cmluZyJfcywgc3RyaW5nKTsKICAgICAgICAgICAg
IH0pOwogICAgICAgICB9KTsKICAgICAgICAgc3RkOjp2aXNpdCh2aXNpdG9yLCBrZXlQYXRoLnZh
bHVlKCkpOwogICAgIH0gZWxzZQotICAgICAgICBlbmNvZGVyLT5lbmNvZGVFbnVtKCJ0eXBlIiwg
S2V5UGF0aFR5cGU6Ok51bGwpOworICAgICAgICBlbmNvZGVyLT5lbmNvZGVFbnVtKCJ0eXBlIl9z
LCBLZXlQYXRoVHlwZTo6TnVsbCk7CiAKICAgICByZXR1cm4gZW5jb2Rlci0+ZmluaXNoRW5jb2Rp
bmcoKTsKIH0KQEAgLTY4LDcgKzY4LDcgQEAgYm9vbCBkZXNlcmlhbGl6ZUlEQktleVBhdGgoY29u
c3QgdWludDhfdCogZGF0YSwgc2l6ZV90IHNpemUsIHN0ZDo6b3B0aW9uYWw8SURCS2UKICAgICBh
dXRvIGRlY29kZXIgPSBLZXllZERlY29kZXI6OmRlY29kZXIoZGF0YSwgc2l6ZSk7CiAKICAgICBL
ZXlQYXRoVHlwZSB0eXBlOwotICAgIGJvb2wgc3VjY2VlZGVkID0gZGVjb2Rlci0+ZGVjb2RlRW51
bSgidHlwZSIsIHR5cGUsIFtdKEtleVBhdGhUeXBlIHZhbHVlKSB7CisgICAgYm9vbCBzdWNjZWVk
ZWQgPSBkZWNvZGVyLT5kZWNvZGVFbnVtKCJ0eXBlIl9zLCB0eXBlLCBbXShLZXlQYXRoVHlwZSB2
YWx1ZSkgewogICAgICAgICByZXR1cm4gdmFsdWUgPT0gS2V5UGF0aFR5cGU6Ok51bGwgfHwgdmFs
dWUgPT0gS2V5UGF0aFR5cGU6OlN0cmluZyB8fCB2YWx1ZSA9PSBLZXlQYXRoVHlwZTo6QXJyYXk7
CiAgICAgfSk7CiAgICAgaWYgKCFzdWNjZWVkZWQpCkBAIC03OSwxNSArNzksMTUgQEAgYm9vbCBk
ZXNlcmlhbGl6ZUlEQktleVBhdGgoY29uc3QgdWludDhfdCogZGF0YSwgc2l6ZV90IHNpemUsIHN0
ZDo6b3B0aW9uYWw8SURCS2UKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBLZXlQYXRoVHlwZTo6
U3RyaW5nOiB7CiAgICAgICAgIFN0cmluZyBzdHJpbmc7Ci0gICAgICAgIGlmICghZGVjb2Rlci0+
ZGVjb2RlU3RyaW5nKCJzdHJpbmciLCBzdHJpbmcpKQorICAgICAgICBpZiAoIWRlY29kZXItPmRl
Y29kZVN0cmluZygic3RyaW5nIl9zLCBzdHJpbmcpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgICAgICByZXN1bHQgPSBJREJLZXlQYXRoKFdURk1vdmUoc3RyaW5nKSk7CiAgICAgICAg
IGJyZWFrOwogICAgIH0KICAgICBjYXNlIEtleVBhdGhUeXBlOjpBcnJheTogewogICAgICAgICBW
ZWN0b3I8U3RyaW5nPiB2ZWN0b3I7Ci0gICAgICAgIHN1Y2NlZWRlZCA9IGRlY29kZXItPmRlY29k
ZU9iamVjdHMoImFycmF5IiwgdmVjdG9yLCBbXShLZXllZERlY29kZXImIGRlY29kZXIsIFN0cmlu
ZyYgcmVzdWx0KSB7Ci0gICAgICAgICAgICByZXR1cm4gZGVjb2Rlci5kZWNvZGVTdHJpbmcoInN0
cmluZyIsIHJlc3VsdCk7CisgICAgICAgIHN1Y2NlZWRlZCA9IGRlY29kZXItPmRlY29kZU9iamVj
dHMoImFycmF5Il9zLCB2ZWN0b3IsIFtdKEtleWVkRGVjb2RlciYgZGVjb2RlciwgU3RyaW5nJiBy
ZXN1bHQpIHsKKyAgICAgICAgICAgIHJldHVybiBkZWNvZGVyLmRlY29kZVN0cmluZygic3RyaW5n
Il9zLCByZXN1bHQpOwogICAgICAgICB9KTsKICAgICAgICAgaWYgKCFzdWNjZWVkZWQpCiAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwCmluZGV4IDc3ZGY2NjdkNDA5OWQ2ZmI3ZDg1
YTA1NWMyMDA0ZTY3YjJhYjViMWQuLjQ4NjAxNWY3Yjk2YzI2YmU2YmFhNDJhYTVmYmQ3ODg2ZjE0
OGI0NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZl
ci9JREJTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3Nl
cnZlci9JREJTZXJ2ZXIuY3BwCkBAIC01MzAsMTAgKzUzMCwxMCBAQCB2b2lkIElEQlNlcnZlcjo6
Z2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKElEQkNvbm5lY3Rpb25JZGVudGlmaWVyIHNl
cnZlckNvbgogICAgICAgICAgICAgcmVzdWx0LmFwcGVuZChXVEZNb3ZlKCpuYW1lQW5kVmVyc2lv
bikpOwogICAgIH0KIAotICAgIGF1dG8gb2xkRGlyZWN0b3J5ID0gSURCRGF0YWJhc2VJZGVudGlm
aWVyOjpkYXRhYmFzZURpcmVjdG9yeVJlbGF0aXZlVG9Sb290KG9yaWdpbiwgbV9kYXRhYmFzZURp
cmVjdG9yeVBhdGgsICJ2MCIpOworICAgIGF1dG8gb2xkRGlyZWN0b3J5ID0gSURCRGF0YWJhc2VJ
ZGVudGlmaWVyOjpkYXRhYmFzZURpcmVjdG9yeVJlbGF0aXZlVG9Sb290KG9yaWdpbiwgbV9kYXRh
YmFzZURpcmVjdG9yeVBhdGgsICJ2MCJfcyk7CiAgICAgZ2V0RGF0YWJhc2VOYW1lQW5kVmVyc2lv
bkZyb21PcmlnaW5EaXJlY3Rvcnkob2xkRGlyZWN0b3J5LCB2aXNpdGVkRGF0YWJhc2VQYXRocywg
cmVzdWx0KTsKIAotICAgIGF1dG8gZGlyZWN0b3J5ID0gSURCRGF0YWJhc2VJZGVudGlmaWVyOjpk
YXRhYmFzZURpcmVjdG9yeVJlbGF0aXZlVG9Sb290KG9yaWdpbiwgbV9kYXRhYmFzZURpcmVjdG9y
eVBhdGgsICJ2MSIpOworICAgIGF1dG8gZGlyZWN0b3J5ID0gSURCRGF0YWJhc2VJZGVudGlmaWVy
OjpkYXRhYmFzZURpcmVjdG9yeVJlbGF0aXZlVG9Sb290KG9yaWdpbiwgbV9kYXRhYmFzZURpcmVj
dG9yeVBhdGgsICJ2MSJfcyk7CiAgICAgZ2V0RGF0YWJhc2VOYW1lQW5kVmVyc2lvbkZyb21Pcmln
aW5EaXJlY3RvcnkoZGlyZWN0b3J5LCB2aXNpdGVkRGF0YWJhc2VQYXRocywgcmVzdWx0KTsKIAog
ICAgIGF1dG8gY29ubmVjdGlvbiA9IG1fY29ubmVjdGlvbk1hcC5nZXQoc2VydmVyQ29ubmVjdGlv
bklkZW50aWZpZXIpOwpAQCAtNTY2LDggKzU2Niw4IEBAIEhhc2hTZXQ8U2VjdXJpdHlPcmlnaW5E
YXRhPiBJREJTZXJ2ZXI6OmdldE9yaWdpbnMoKSBjb25zdAogICAgICAgICByZXR1cm4geyB9Owog
CiAgICAgSGFzaFNldDxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+IHNlY3VyaXR5T3JpZ2lu
czsKLSAgICBjb2xsZWN0T3JpZ2luc0ZvclZlcnNpb24oRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5k
aW5nQ29tcG9uZW50KG1fZGF0YWJhc2VEaXJlY3RvcnlQYXRoLCAidjAiKSwgc2VjdXJpdHlPcmln
aW5zKTsKLSAgICBjb2xsZWN0T3JpZ2luc0ZvclZlcnNpb24oRmlsZVN5c3RlbTo6cGF0aEJ5QXBw
ZW5kaW5nQ29tcG9uZW50KG1fZGF0YWJhc2VEaXJlY3RvcnlQYXRoLCAidjEiKSwgc2VjdXJpdHlP
cmlnaW5zKTsKKyAgICBjb2xsZWN0T3JpZ2luc0ZvclZlcnNpb24oRmlsZVN5c3RlbTo6cGF0aEJ5
QXBwZW5kaW5nQ29tcG9uZW50KG1fZGF0YWJhc2VEaXJlY3RvcnlQYXRoLCAidjAiX3MpLCBzZWN1
cml0eU9yaWdpbnMpOworICAgIGNvbGxlY3RPcmlnaW5zRm9yVmVyc2lvbihGaWxlU3lzdGVtOjpw
YXRoQnlBcHBlbmRpbmdDb21wb25lbnQobV9kYXRhYmFzZURpcmVjdG9yeVBhdGgsICJ2MSJfcyks
IHNlY3VyaXR5T3JpZ2lucyk7CiAKICAgICByZXR1cm4gc2VjdXJpdHlPcmlnaW5zOwogfQpAQCAt
NTg4LDggKzU4OCw4IEBAIHZvaWQgSURCU2VydmVyOjpjbG9zZUFuZERlbGV0ZURhdGFiYXNlc01v
ZGlmaWVkU2luY2UoV2FsbFRpbWUgbW9kaWZpY2F0aW9uVGltZSkKICAgICBtX3VuaXF1ZUlEQkRh
dGFiYXNlTWFwLmNsZWFyKCk7CiAKICAgICBpZiAoIW1fZGF0YWJhc2VEaXJlY3RvcnlQYXRoLmlz
RW1wdHkoKSkgewotICAgICAgICByZW1vdmVEYXRhYmFzZXNNb2RpZmllZFNpbmNlRm9yVmVyc2lv
bihtb2RpZmljYXRpb25UaW1lLCAidjAiKTsKLSAgICAgICAgcmVtb3ZlRGF0YWJhc2VzTW9kaWZp
ZWRTaW5jZUZvclZlcnNpb24obW9kaWZpY2F0aW9uVGltZSwgInYxIik7CisgICAgICAgIHJlbW92
ZURhdGFiYXNlc01vZGlmaWVkU2luY2VGb3JWZXJzaW9uKG1vZGlmaWNhdGlvblRpbWUsICJ2MCJf
cyk7CisgICAgICAgIHJlbW92ZURhdGFiYXNlc01vZGlmaWVkU2luY2VGb3JWZXJzaW9uKG1vZGlm
aWNhdGlvblRpbWUsICJ2MSJfcyk7CiAgICAgfQogfQogCkBAIC02MjQsOCArNjI0LDggQEAgdm9p
ZCBJREJTZXJ2ZXI6OmNsb3NlQW5kRGVsZXRlRGF0YWJhc2VzRm9yT3JpZ2lucyhjb25zdCBWZWN0
b3I8U2VjdXJpdHlPcmlnaW5EYXQKICAgICB9KTsKIAogICAgIGlmICghbV9kYXRhYmFzZURpcmVj
dG9yeVBhdGguaXNFbXB0eSgpKSB7Ci0gICAgICAgIHJlbW92ZURhdGFiYXNlc1dpdGhPcmlnaW5z
Rm9yVmVyc2lvbihvcmlnaW5zLCAidjAiKTsKLSAgICAgICAgcmVtb3ZlRGF0YWJhc2VzV2l0aE9y
aWdpbnNGb3JWZXJzaW9uKG9yaWdpbnMsICJ2MSIpOworICAgICAgICByZW1vdmVEYXRhYmFzZXNX
aXRoT3JpZ2luc0ZvclZlcnNpb24ob3JpZ2lucywgInYwIl9zKTsKKyAgICAgICAgcmVtb3ZlRGF0
YWJhc2VzV2l0aE9yaWdpbnNGb3JWZXJzaW9uKG9yaWdpbnMsICJ2MSJfcyk7CiAgICAgfQogfQog
CkBAIC02MzYsNyArNjM2LDcgQEAgc3RhdGljIHZvaWQgcmVtb3ZlQWxsRGF0YWJhc2VzRm9yRnVs
bE9yaWdpblBhdGgoY29uc3QgU3RyaW5nJiBvcmlnaW5QYXRoLCBXYWxsVGkKIAogICAgIGZvciAo
YXV0byYgZGF0YWJhc2VOYW1lIDogZGF0YWJhc2VOYW1lcykgewogICAgICAgICBhdXRvIGRhdGFi
YXNlUGF0aCA9IEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChvcmlnaW5QYXRo
LCBkYXRhYmFzZU5hbWUpOwotICAgICAgICBTdHJpbmcgZGF0YWJhc2VGaWxlID0gRmlsZVN5c3Rl
bTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KGRhdGFiYXNlUGF0aCwgIkluZGV4ZWREQi5zcWxp
dGUzIik7CisgICAgICAgIFN0cmluZyBkYXRhYmFzZUZpbGUgPSBGaWxlU3lzdGVtOjpwYXRoQnlB
cHBlbmRpbmdDb21wb25lbnQoZGF0YWJhc2VQYXRoLCAiSW5kZXhlZERCLnNxbGl0ZTMiX3MpOwog
ICAgICAgICBpZiAobW9kaWZpZWRTaW5jZSA+IC1XYWxsVGltZTo6aW5maW5pdHkoKSAmJiBGaWxl
U3lzdGVtOjpmaWxlRXhpc3RzKGRhdGFiYXNlRmlsZSkpIHsKICAgICAgICAgICAgIGF1dG8gbW9k
aWZpY2F0aW9uVGltZSA9IEZpbGVTeXN0ZW06OmZpbGVNb2RpZmljYXRpb25UaW1lKGRhdGFiYXNl
RmlsZSk7CiAgICAgICAgICAgICBpZiAoIW1vZGlmaWNhdGlvblRpbWUpCkBAIC03MzIsNyArNzMy
LDcgQEAgdm9pZCBJREJTZXJ2ZXI6OnJlbmFtZU9yaWdpbihjb25zdCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGEmIG9sZE9yaWdpbiwgY29uc3QKICAgICAgICAgcmV0dXJuIGRhdGFiYXNlT3Jp
Z2luLnRvcE9yaWdpbiA9PSB0YXJnZXRPcmlnaW47CiAgICAgfSk7CiAKLSAgICBhdXRvIHZlcnNp
b25QYXRoID0gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KG1fZGF0YWJhc2VE
aXJlY3RvcnlQYXRoLCAidjEiKTsKKyAgICBhdXRvIHZlcnNpb25QYXRoID0gRmlsZVN5c3RlbTo6
cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KG1fZGF0YWJhc2VEaXJlY3RvcnlQYXRoLCAidjEiX3Mp
OwogICAgIGF1dG8gb2xkT3JpZ2luUGF0aCA9IEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0Nv
bXBvbmVudCh2ZXJzaW9uUGF0aCwgb2xkT3JpZ2luLmRhdGFiYXNlSWRlbnRpZmllcigpKTsKICAg
ICBhdXRvIG5ld09yaWdpblBhdGggPSBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25l
bnQodmVyc2lvblBhdGgsIG5ld09yaWdpbi5kYXRhYmFzZUlkZW50aWZpZXIoKSk7CiAgICAgaWYg
KEZpbGVTeXN0ZW06OmZpbGVFeGlzdHMob2xkT3JpZ2luUGF0aCkpCkBAIC03NjgsMTYgKzc2OCwx
NiBAQCB2b2lkIElEQlNlcnZlcjo6dXBncmFkZUZpbGVzSWZOZWNlc3NhcnkoKQogICAgIGlmICht
X2RhdGFiYXNlRGlyZWN0b3J5UGF0aC5pc0VtcHR5KCkgfHwgIUZpbGVTeXN0ZW06OmZpbGVFeGlz
dHMobV9kYXRhYmFzZURpcmVjdG9yeVBhdGgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBTdHJp
bmcgbmV3VmVyc2lvbkRpcmVjdG9yeSA9IEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBv
bmVudChtX2RhdGFiYXNlRGlyZWN0b3J5UGF0aCwgInYxIik7CisgICAgU3RyaW5nIG5ld1ZlcnNp
b25EaXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQobV9kYXRh
YmFzZURpcmVjdG9yeVBhdGgsICJ2MSJfcyk7CiAgICAgaWYgKCFGaWxlU3lzdGVtOjpmaWxlRXhp
c3RzKG5ld1ZlcnNpb25EaXJlY3RvcnkpKQogICAgICAgICBGaWxlU3lzdGVtOjptYWtlQWxsRGly
ZWN0b3JpZXMobmV3VmVyc2lvbkRpcmVjdG9yeSk7CiB9CiAKIFN0cmluZyBJREJTZXJ2ZXI6OnVw
Z3JhZGVkRGF0YWJhc2VEaXJlY3RvcnkoY29uc3QgV2ViQ29yZTo6SURCRGF0YWJhc2VJZGVudGlm
aWVyJiBpZGVudGlmaWVyKQogewotICAgIFN0cmluZyBvbGRPcmlnaW5EaXJlY3RvcnkgPSBpZGVu
dGlmaWVyLmRhdGFiYXNlRGlyZWN0b3J5UmVsYXRpdmVUb1Jvb3QobV9kYXRhYmFzZURpcmVjdG9y
eVBhdGgsICJ2MCIpOworICAgIFN0cmluZyBvbGRPcmlnaW5EaXJlY3RvcnkgPSBpZGVudGlmaWVy
LmRhdGFiYXNlRGlyZWN0b3J5UmVsYXRpdmVUb1Jvb3QobV9kYXRhYmFzZURpcmVjdG9yeVBhdGgs
ICJ2MCJfcyk7CiAgICAgU3RyaW5nIG9sZERhdGFiYXNlRGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6
cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KG9sZE9yaWdpbkRpcmVjdG9yeSwgU1FMaXRlSURCQmFj
a2luZ1N0b3JlOjplbmNvZGVEYXRhYmFzZU5hbWUoaWRlbnRpZmllci5kYXRhYmFzZU5hbWUoKSkp
OwotICAgIFN0cmluZyBuZXdPcmlnaW5EaXJlY3RvcnkgPSBpZGVudGlmaWVyLmRhdGFiYXNlRGly
ZWN0b3J5UmVsYXRpdmVUb1Jvb3QobV9kYXRhYmFzZURpcmVjdG9yeVBhdGgsICJ2MSIpOworICAg
IFN0cmluZyBuZXdPcmlnaW5EaXJlY3RvcnkgPSBpZGVudGlmaWVyLmRhdGFiYXNlRGlyZWN0b3J5
UmVsYXRpdmVUb1Jvb3QobV9kYXRhYmFzZURpcmVjdG9yeVBhdGgsICJ2MSJfcyk7CiAgICAgU3Ry
aW5nIGZpbGVOYW1lSGFzaCA9IFNRTGl0ZUZpbGVTeXN0ZW06OmNvbXB1dGVIYXNoRm9yRmlsZU5h
bWUoaWRlbnRpZmllci5kYXRhYmFzZU5hbWUoKSk7CiAgICAgU3RyaW5nIG5ld0RhdGFiYXNlRGly
ZWN0b3J5ID0gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KG5ld09yaWdpbkRp
cmVjdG9yeSwgZmlsZU5hbWVIYXNoKTsKICAgICBGaWxlU3lzdGVtOjptYWtlQWxsRGlyZWN0b3Jp
ZXMobmV3RGF0YWJhc2VEaXJlY3RvcnkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUlEQkJhY2tpbmdTdG9yZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5SURCQmFja2luZ1N0b3JlLmNw
cAppbmRleCBkNjMzNTAzMDk5MzA1NWI5YjEyYjc4NDU2NTVkYTgzMzcyYjFhNTUwLi4xYzI3YWQ2
MTc5ZjFiZWFkMGZmMWE2ZGVjZmI5YWUyYjVlOTUzZjljIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5SURCQmFja2luZ1N0b3JlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5SURCQmFj
a2luZ1N0b3JlLmNwcApAQCAtNzgsNyArNzgsNyBAQCBJREJFcnJvciBNZW1vcnlJREJCYWNraW5n
U3RvcmU6OmJlZ2luVHJhbnNhY3Rpb24oY29uc3QgSURCVHJhbnNhY3Rpb25JbmZvJiBpbmZvKQog
ICAgIExPRyhJbmRleGVkREIsICJNZW1vcnlJREJCYWNraW5nU3RvcmU6OmJlZ2luVHJhbnNhY3Rp
b24iKTsKIAogICAgIGlmIChtX3RyYW5zYWN0aW9ucy5jb250YWlucyhpbmZvLmlkZW50aWZpZXIo
KSkpCi0gICAgICAgIHJldHVybiBJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiQmFja2lu
ZyBzdG9yZSBhc2tlZCB0byBjcmVhdGUgdHJhbnNhY3Rpb24gaXQgYWxyZWFkeSBoYXMgYSByZWNv
cmQgb2YiIH07CisgICAgICAgIHJldHVybiBJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAi
QmFja2luZyBzdG9yZSBhc2tlZCB0byBjcmVhdGUgdHJhbnNhY3Rpb24gaXQgYWxyZWFkeSBoYXMg
YSByZWNvcmQgb2YiX3MgfTsKIAogICAgIGF1dG8gdHJhbnNhY3Rpb24gPSBNZW1vcnlCYWNraW5n
U3RvcmVUcmFuc2FjdGlvbjo6Y3JlYXRlKCp0aGlzLCBpbmZvKTsKIApAQCAtMTA0LDcgKzEwNCw3
IEBAIElEQkVycm9yIE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6YWJvcnRUcmFuc2FjdGlvbihjb25z
dCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyCiAKICAgICBhdXRvIHRyYW5zYWN0aW9uID0gbV90
cmFuc2FjdGlvbnMudGFrZSh0cmFuc2FjdGlvbklkZW50aWZpZXIpOwogICAgIGlmICghdHJhbnNh
Y3Rpb24pCi0gICAgICAgIHJldHVybiBJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiQmFj
a2luZyBzdG9yZSBhc2tlZCB0byBhYm9ydCB0cmFuc2FjdGlvbiBpdCBkaWRuJ3QgaGF2ZSByZWNv
cmQgb2YiIH07CisgICAgICAgIHJldHVybiBJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAi
QmFja2luZyBzdG9yZSBhc2tlZCB0byBhYm9ydCB0cmFuc2FjdGlvbiBpdCBkaWRuJ3QgaGF2ZSBy
ZWNvcmQgb2YiX3MgfTsKIAogICAgIHRyYW5zYWN0aW9uLT5hYm9ydCgpOwogCkBAIC0xMTcsNyAr
MTE3LDcgQEAgSURCRXJyb3IgTWVtb3J5SURCQmFja2luZ1N0b3JlOjpjb21taXRUcmFuc2FjdGlv
bihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHQKIAogICAgIGF1dG8gdHJhbnNhY3Rpb24g
PSBtX3RyYW5zYWN0aW9ucy50YWtlKHRyYW5zYWN0aW9uSWRlbnRpZmllcik7CiAgICAgaWYgKCF0
cmFuc2FjdGlvbikKLSAgICAgICAgcmV0dXJuIElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3Is
ICJCYWNraW5nIHN0b3JlIGFza2VkIHRvIGNvbW1pdCB0cmFuc2FjdGlvbiBpdCBkaWRuJ3QgaGF2
ZSByZWNvcmQgb2YiIH07CisgICAgICAgIHJldHVybiBJREJFcnJvciB7IEludmFsaWRTdGF0ZUVy
cm9yLCAiQmFja2luZyBzdG9yZSBhc2tlZCB0byBjb21taXQgdHJhbnNhY3Rpb24gaXQgZGlkbid0
IGhhdmUgcmVjb3JkIG9mIl9zIH07CiAKICAgICB0cmFuc2FjdGlvbi0+Y29tbWl0KCk7CiAKQEAg
LTQ3Myw3ICs0NzMsNyBAQCBJREJFcnJvciBNZW1vcnlJREJCYWNraW5nU3RvcmU6OmdlbmVyYXRl
S2V5TnVtYmVyKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdAogCiAgICAga2V5TnVtYmVy
ID0gb2JqZWN0U3RvcmUtPmN1cnJlbnRLZXlHZW5lcmF0b3JWYWx1ZSgpOwogICAgIGlmIChrZXlO
dW1iZXIgPiBtYXhHZW5lcmF0ZWRLZXlWYWx1ZSkKLSAgICAgICAgcmV0dXJuIElEQkVycm9yIHsg
Q29uc3RyYWludEVycm9yLCAiQ2Fubm90IGdlbmVyYXRlIG5ldyBrZXkgdmFsdWUgb3ZlciAyXjUz
IGZvciBvYmplY3Qgc3RvcmUgb3BlcmF0aW9uIiB9OworICAgICAgICByZXR1cm4gSURCRXJyb3Ig
eyBDb25zdHJhaW50RXJyb3IsICJDYW5ub3QgZ2VuZXJhdGUgbmV3IGtleSB2YWx1ZSBvdmVyIDJe
NTMgZm9yIG9iamVjdCBzdG9yZSBvcGVyYXRpb24iX3MgfTsKIAogICAgIG9iamVjdFN0b3JlLT5z
ZXRLZXlHZW5lcmF0b3JWYWx1ZShrZXlOdW1iZXIgKyAxKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeU9iamVjdFN0b3JlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlPYmplY3RTdG9y
ZS5jcHAKaW5kZXggN2VmOWQwYTM4N2Y3MjdkODVlYzBkZWVmNmQzY2FlMGRlZDAxNThjZi4uODky
MzFiNGFlMjQ5NjhlODliMGQ3NTgxMTUxZjUyOGVlM2UyZmI0ZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeU9iamVjdFN0b3JlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5T2JqZWN0
U3RvcmUuY3BwCkBAIC0zMTAsNyArMzEwLDcgQEAgSURCRXJyb3IgTWVtb3J5T2JqZWN0U3RvcmU6
OnVwZGF0ZUluZGV4ZXNGb3JQdXRSZWNvcmQoY29uc3QgSURCS2V5RGF0YSYga2V5LCBjb24KICAg
ICAgICAgYXV0byogaW5kZXggPSBtX2luZGV4ZXNCeUlkZW50aWZpZXIuZ2V0KGluZGV4SUQpOwog
ICAgICAgICBBU1NFUlQoaW5kZXgpOwogICAgICAgICBpZiAoIWluZGV4KSB7Ci0gICAgICAgICAg
ICBlcnJvciA9IElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJNaXNzaW5nIGluZGV4IG1l
dGFkYXRhIiB9OworICAgICAgICAgICAgZXJyb3IgPSBJREJFcnJvciB7IEludmFsaWRTdGF0ZUVy
cm9yLCAiTWlzc2luZyBpbmRleCBtZXRhZGF0YSJfcyB9OwogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmNwcAppbmRleCAyZmFmM2U5
NWQzMWM5ODlmY2UxMmUwNTdmMDZjMjJlMmZmNzNjNDZlLi5jYmQ0NjI3OTA3ODc3ODAyZjM4YzZh
NGRmYjY2YzFhMjIzMWRiM2NmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmNwcApA
QCAtOTgsMzcgKzk4LDM3IEBAIHN0YXRpYyBpbnQgaWRiS2V5Q29sbGF0ZShpbnQgYUxlbmd0aCwg
Y29uc3Qgdm9pZCogYUJ1ZmZlciwgaW50IGJMZW5ndGgsIGNvbnN0IHZvCiAgICAgcmV0dXJuIGEu
Y29tcGFyZShiKTsKIH0KIAotc3RhdGljIGNvbnN0IFN0cmluZyB2MVJlY29yZHNUYWJsZVNjaGVt
YShjb25zdCBTdHJpbmcmIHRhYmxlTmFtZSkKK3N0YXRpYyBjb25zdCBTdHJpbmcgdjFSZWNvcmRz
VGFibGVTY2hlbWEoQVNDSUlMaXRlcmFsIHRhYmxlTmFtZSkKIHsKICAgICByZXR1cm4gbWFrZVN0
cmluZygiQ1JFQVRFIFRBQkxFICIsIHRhYmxlTmFtZSwgIiAob2JqZWN0U3RvcmVJRCBJTlRFR0VS
IE5PVCBOVUxMIE9OIENPTkZMSUNUIEZBSUwsIGtleSBURVhUIENPTExBVEUgSURCS0VZIE5PVCBO
VUxMIE9OIENPTkZMSUNUIEZBSUwgVU5JUVVFIE9OIENPTkZMSUNUIFJFUExBQ0UsIHZhbHVlIE5P
VCBOVUxMIE9OIENPTkZMSUNUIEZBSUwpIik7CiB9CiAKIHN0YXRpYyBjb25zdCBTdHJpbmcmIHYx
UmVjb3Jkc1RhYmxlU2NoZW1hKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5n
PiB2MVJlY29yZHNUYWJsZVNjaGVtYVN0cmluZyh2MVJlY29yZHNUYWJsZVNjaGVtYSgiUmVjb3Jk
cyIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiB2MVJlY29yZHNUYWJsZVNj
aGVtYVN0cmluZyh2MVJlY29yZHNUYWJsZVNjaGVtYSgiUmVjb3JkcyJfcykpOwogICAgIHJldHVy
biB2MVJlY29yZHNUYWJsZVNjaGVtYVN0cmluZzsKIH0KIAogc3RhdGljIGNvbnN0IFN0cmluZyYg
djFSZWNvcmRzVGFibGVTY2hlbWFBbHRlcm5hdGUoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxTdHJpbmc+IHYxUmVjb3Jkc1RhYmxlU2NoZW1hU3RyaW5nKHYxUmVjb3Jkc1RhYmxlU2No
ZW1hKCJcIlJlY29yZHNcIiIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiB2
MVJlY29yZHNUYWJsZVNjaGVtYVN0cmluZyh2MVJlY29yZHNUYWJsZVNjaGVtYSgiXCJSZWNvcmRz
XCIiX3MpKTsKICAgICByZXR1cm4gdjFSZWNvcmRzVGFibGVTY2hlbWFTdHJpbmc7CiB9CiAKLXN0
YXRpYyBjb25zdCBTdHJpbmcgdjJSZWNvcmRzVGFibGVTY2hlbWEoY29uc3QgU3RyaW5nJiB0YWJs
ZU5hbWUpCitzdGF0aWMgY29uc3QgU3RyaW5nIHYyUmVjb3Jkc1RhYmxlU2NoZW1hKEFTQ0lJTGl0
ZXJhbCB0YWJsZU5hbWUpCiB7CiAgICAgcmV0dXJuIG1ha2VTdHJpbmcoIkNSRUFURSBUQUJMRSAi
LCB0YWJsZU5hbWUsICIgKG9iamVjdFN0b3JlSUQgSU5URUdFUiBOT1QgTlVMTCBPTiBDT05GTElD
VCBGQUlMLCBrZXkgVEVYVCBDT0xMQVRFIElEQktFWSBOT1QgTlVMTCBPTiBDT05GTElDVCBGQUlM
LCB2YWx1ZSBOT1QgTlVMTCBPTiBDT05GTElDVCBGQUlMKSIpOwogfQogCiBzdGF0aWMgY29uc3Qg
U3RyaW5nJiB2MlJlY29yZHNUYWJsZVNjaGVtYSgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPFN0cmluZz4gdjJSZWNvcmRzVGFibGVTY2hlbWFTdHJpbmcodjJSZWNvcmRzVGFibGVTY2hl
bWEoIlJlY29yZHMiKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gdjJSZWNv
cmRzVGFibGVTY2hlbWFTdHJpbmcodjJSZWNvcmRzVGFibGVTY2hlbWEoIlJlY29yZHMiX3MpKTsK
ICAgICByZXR1cm4gdjJSZWNvcmRzVGFibGVTY2hlbWFTdHJpbmc7CiB9CiAKIHN0YXRpYyBjb25z
dCBTdHJpbmcmIHYyUmVjb3Jkc1RhYmxlU2NoZW1hQWx0ZXJuYXRlKCkKIHsKLSAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiB2MlJlY29yZHNUYWJsZVNjaGVtYVN0cmluZyh2MlJlY29y
ZHNUYWJsZVNjaGVtYSgiXCJSZWNvcmRzXCIiKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PFN0cmluZz4gdjJSZWNvcmRzVGFibGVTY2hlbWFTdHJpbmcodjJSZWNvcmRzVGFibGVTY2hlbWEo
IlwiUmVjb3Jkc1wiIl9zKSk7CiAgICAgcmV0dXJuIHYyUmVjb3Jkc1RhYmxlU2NoZW1hU3RyaW5n
OwogfQogCkBAIC0xNDcsMzcgKzE0NywzNyBAQCBzdGF0aWMgQVNDSUlMaXRlcmFsIHYzUmVjb3Jk
c1RhYmxlU2NoZW1hVGVtcCgpCiAgICAgcmV0dXJuIFRBQkxFX1NDSEVNQV9QUkVGSVggIl9UZW1w
X1JlY29yZHMiIFYzX1JFQ09SRFNfVEFCTEVfU0NIRU1BX1NVRkZJWDsKIH0KIAotc3RhdGljIGNv
bnN0IFN0cmluZyB2MUluZGV4UmVjb3Jkc1RhYmxlU2NoZW1hKGNvbnN0IFN0cmluZyYgdGFibGVO
YW1lKQorc3RhdGljIGNvbnN0IFN0cmluZyB2MUluZGV4UmVjb3Jkc1RhYmxlU2NoZW1hKEFTQ0lJ
TGl0ZXJhbCB0YWJsZU5hbWUpCiB7CiAgICAgcmV0dXJuIG1ha2VTdHJpbmcoIkNSRUFURSBUQUJM
RSAiLCB0YWJsZU5hbWUsICIgKGluZGV4SUQgSU5URUdFUiBOT1QgTlVMTCBPTiBDT05GTElDVCBG
QUlMLCBvYmplY3RTdG9yZUlEIElOVEVHRVIgTk9UIE5VTEwgT04gQ09ORkxJQ1QgRkFJTCwga2V5
IFRFWFQgQ09MTEFURSBJREJLRVkgTk9UIE5VTEwgT04gQ09ORkxJQ1QgRkFJTCwgdmFsdWUgTk9U
IE5VTEwgT04gQ09ORkxJQ1QgRkFJTCkiKTsKIH0KIAogc3RhdGljIGNvbnN0IFN0cmluZyYgdjFJ
bmRleFJlY29yZHNUYWJsZVNjaGVtYSgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0
cmluZz4gdjFJbmRleFJlY29yZHNUYWJsZVNjaGVtYVN0cmluZyh2MUluZGV4UmVjb3Jkc1RhYmxl
U2NoZW1hKCJJbmRleFJlY29yZHMiKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmlu
Zz4gdjFJbmRleFJlY29yZHNUYWJsZVNjaGVtYVN0cmluZyh2MUluZGV4UmVjb3Jkc1RhYmxlU2No
ZW1hKCJJbmRleFJlY29yZHMiX3MpKTsKICAgICByZXR1cm4gdjFJbmRleFJlY29yZHNUYWJsZVNj
aGVtYVN0cmluZzsKIH0KIAogc3RhdGljIGNvbnN0IFN0cmluZyYgdjFJbmRleFJlY29yZHNUYWJs
ZVNjaGVtYUFsdGVybmF0ZSgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4g
djFJbmRleFJlY29yZHNUYWJsZVNjaGVtYVN0cmluZyh2MUluZGV4UmVjb3Jkc1RhYmxlU2NoZW1h
KCJcIkluZGV4UmVjb3Jkc1wiIikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+
IHYxSW5kZXhSZWNvcmRzVGFibGVTY2hlbWFTdHJpbmcodjFJbmRleFJlY29yZHNUYWJsZVNjaGVt
YSgiXCJJbmRleFJlY29yZHNcIiJfcykpOwogICAgIHJldHVybiB2MUluZGV4UmVjb3Jkc1RhYmxl
U2NoZW1hU3RyaW5nOwogfQogCi1zdGF0aWMgY29uc3QgU3RyaW5nIHYySW5kZXhSZWNvcmRzVGFi
bGVTY2hlbWEoY29uc3QgU3RyaW5nJiB0YWJsZU5hbWUpCitzdGF0aWMgY29uc3QgU3RyaW5nIHYy
SW5kZXhSZWNvcmRzVGFibGVTY2hlbWEoQVNDSUlMaXRlcmFsIHRhYmxlTmFtZSkKIHsKICAgICBy
ZXR1cm4gbWFrZVN0cmluZygiQ1JFQVRFIFRBQkxFICIsIHRhYmxlTmFtZSwgIiAoaW5kZXhJRCBJ
TlRFR0VSIE5PVCBOVUxMIE9OIENPTkZMSUNUIEZBSUwsIG9iamVjdFN0b3JlSUQgSU5URUdFUiBO
T1QgTlVMTCBPTiBDT05GTElDVCBGQUlMLCBrZXkgVEVYVCBDT0xMQVRFIElEQktFWSBOT1QgTlVM
TCBPTiBDT05GTElDVCBGQUlMLCB2YWx1ZSBURVhUIENPTExBVEUgSURCS0VZIE5PVCBOVUxMIE9O
IENPTkZMSUNUIEZBSUwpIik7CiB9CiAKIHN0YXRpYyBjb25zdCBTdHJpbmcmIHYySW5kZXhSZWNv
cmRzVGFibGVTY2hlbWEoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHYy
SW5kZXhSZWNvcmRzVGFibGVTY2hlbWFTdHJpbmcodjJJbmRleFJlY29yZHNUYWJsZVNjaGVtYSgi
SW5kZXhSZWNvcmRzIikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHYySW5k
ZXhSZWNvcmRzVGFibGVTY2hlbWFTdHJpbmcodjJJbmRleFJlY29yZHNUYWJsZVNjaGVtYSgiSW5k
ZXhSZWNvcmRzIl9zKSk7CiAgICAgcmV0dXJuIHYySW5kZXhSZWNvcmRzVGFibGVTY2hlbWFTdHJp
bmc7CiB9CiAKIHN0YXRpYyBjb25zdCBTdHJpbmcmIHYySW5kZXhSZWNvcmRzVGFibGVTY2hlbWFB
bHRlcm5hdGUoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHYySW5kZXhS
ZWNvcmRzVGFibGVTY2hlbWFTdHJpbmcodjJJbmRleFJlY29yZHNUYWJsZVNjaGVtYSgiXCJJbmRl
eFJlY29yZHNcIiIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiB2MkluZGV4
UmVjb3Jkc1RhYmxlU2NoZW1hU3RyaW5nKHYySW5kZXhSZWNvcmRzVGFibGVTY2hlbWEoIlwiSW5k
ZXhSZWNvcmRzXCIiX3MpKTsKICAgICByZXR1cm4gdjJJbmRleFJlY29yZHNUYWJsZVNjaGVtYVN0
cmluZzsKIH0KIApAQCAtOTE0LDcgKzkxNCw3IEBAIFN0cmluZyBTUUxpdGVJREJCYWNraW5nU3Rv
cmU6OmVuY29kZURhdGFiYXNlTmFtZShjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSkKIHsKICAg
ICBBU1NFUlQoIWRhdGFiYXNlTmFtZS5pc0VtcHR5KCkpOwogICAgIGlmIChkYXRhYmFzZU5hbWUu
aXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gIiUwMCI7CisgICAgICAgIHJldHVybiAiJTAwIl9z
OwogCiAgICAgU3RyaW5nIGZpbGVuYW1lID0gRmlsZVN5c3RlbTo6ZW5jb2RlRm9yRmlsZU5hbWUo
ZGF0YWJhc2VOYW1lKTsKICAgICBmaWxlbmFtZS5yZXBsYWNlV2l0aExpdGVyYWwoJy4nLCAiJTJF
Iik7CkBAIC05MzUsNyArOTM1LDcgQEAgU3RyaW5nIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6ZGVj
b2RlRGF0YWJhc2VOYW1lKGNvbnN0IFN0cmluZyYgZW5jb2RlZE5hbWUpCiAKIFN0cmluZyBTUUxp
dGVJREJCYWNraW5nU3RvcmU6OmZ1bGxEYXRhYmFzZVBhdGhGb3JEaXJlY3RvcnkoY29uc3QgU3Ry
aW5nJiBmdWxsRGF0YWJhc2VEaXJlY3RvcnkpCiB7Ci0gICAgcmV0dXJuIEZpbGVTeXN0ZW06OnBh
dGhCeUFwcGVuZGluZ0NvbXBvbmVudChmdWxsRGF0YWJhc2VEaXJlY3RvcnksICJJbmRleGVkREIu
c3FsaXRlMyIpOworICAgIHJldHVybiBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25l
bnQoZnVsbERhdGFiYXNlRGlyZWN0b3J5LCAiSW5kZXhlZERCLnNxbGl0ZTMiX3MpOwogfQogCiBT
dHJpbmcgU1FMaXRlSURCQmFja2luZ1N0b3JlOjpmdWxsRGF0YWJhc2VQYXRoKCkgY29uc3QKQEAg
LTk5Niw3ICs5OTYsNyBAQCBJREJFcnJvciBTUUxpdGVJREJCYWNraW5nU3RvcmU6OmdldE9yRXN0
YWJsaXNoRGF0YWJhc2VJbmZvKElEQkRhdGFiYXNlSW5mbyYgaW5mbwogICAgIG1fc3FsaXRlREIt
PmRpc2FibGVUaHJlYWRpbmdDaGVja3MoKTsKICAgICBtX3NxbGl0ZURCLT5lbmFibGVBdXRvbWF0
aWNXQUxUcnVuY2F0aW9uKCk7CiAKLSAgICBtX3NxbGl0ZURCLT5zZXRDb2xsYXRpb25GdW5jdGlv
bigiSURCS0VZIiwgW10oaW50IGFMZW5ndGgsIGNvbnN0IHZvaWQqIGEsIGludCBiTGVuZ3RoLCBj
b25zdCB2b2lkKiBiKSB7CisgICAgbV9zcWxpdGVEQi0+c2V0Q29sbGF0aW9uRnVuY3Rpb24oIklE
QktFWSJfcywgW10oaW50IGFMZW5ndGgsIGNvbnN0IHZvaWQqIGEsIGludCBiTGVuZ3RoLCBjb25z
dCB2b2lkKiBiKSB7CiAgICAgICAgIHJldHVybiBpZGJLZXlDb2xsYXRlKGFMZW5ndGgsIGEsIGJM
ZW5ndGgsIGIpOwogICAgIH0pOwogCkBAIC0xOTA5LDcgKzE5MDksNyBAQCBJREJFcnJvciBTUUxp
dGVJREJCYWNraW5nU3RvcmU6OnVwZGF0ZUFsbEluZGV4ZXNGb3JBZGRSZWNvcmQoY29uc3QgSURC
T2JqZWN0U3RvcgogICAgICAgICBBU1NFUlQoaW5kZXhJdGVyYXRvciAhPSBpbmRleE1hcC5lbmQo
KSk7CiAKICAgICAgICAgaWYgKGluZGV4SXRlcmF0b3IgPT0gaW5kZXhNYXAuZW5kKCkpIHsKLSAg
ICAgICAgICAgIGVycm9yID0gSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIk1pc3Npbmcg
aW5kZXggbWV0YWRhdGEiIH07CisgICAgICAgICAgICBlcnJvciA9IElEQkVycm9yIHsgSW52YWxp
ZFN0YXRlRXJyb3IsICJNaXNzaW5nIGluZGV4IG1ldGFkYXRhIl9zIH07CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgfQogCkBAIC0yNTczLDcgKzI1NzMsNyBAQCBJREJFcnJvciBTUUxpdGVJ
REJCYWNraW5nU3RvcmU6OnVuY2hlY2tlZEdldEtleUdlbmVyYXRvclZhbHVlKGludDY0X3Qgb2Jq
ZWN0U3RvcgogCiAgICAgaW50NjRfdCB2YWx1ZSA9IHNxbC0+Y29sdW1uSW50NjQoMCk7CiAgICAg
aWYgKHZhbHVlIDwgMCkKLSAgICAgICAgcmV0dXJuIElEQkVycm9yIHsgQ29uc3RyYWludEVycm9y
LCAiQ3VycmVudCBrZXkgZ2VuZXJhdG9yIHZhbHVlIGZyb20gZGF0YWJhc2UgaXMgaW52YWxpZCIg
fTsKKyAgICAgICAgcmV0dXJuIElEQkVycm9yIHsgQ29uc3RyYWludEVycm9yLCAiQ3VycmVudCBr
ZXkgZ2VuZXJhdG9yIHZhbHVlIGZyb20gZGF0YWJhc2UgaXMgaW52YWxpZCJfcyB9OwogCiAgICAg
b3V0VmFsdWUgPSB2YWx1ZTsKICAgICByZXR1cm4gSURCRXJyb3IgeyB9OwpAQCAtMjU4Nyw3ICsy
NTg3LDcgQEAgSURCRXJyb3IgU1FMaXRlSURCQmFja2luZ1N0b3JlOjp1bmNoZWNrZWRTZXRLZXlH
ZW5lcmF0b3JWYWx1ZShpbnQ2NF90IG9iamVjdFN0b3IKICAgICAgICAgfHwgc3FsLT5iaW5kSW50
NjQoMiwgdmFsdWUpICE9IFNRTElURV9PSwogICAgICAgICB8fCBzcWwtPnN0ZXAoKSAhPSBTUUxJ
VEVfRE9ORSkgewogICAgICAgICBMT0dfRVJST1IoIkNvdWxkIG5vdCB1cGRhdGUga2V5IGdlbmVy
YXRvciB2YWx1ZSAoJWkpIC0gJXMiLCBtX3NxbGl0ZURCLT5sYXN0RXJyb3IoKSwgbV9zcWxpdGVE
Qi0+bGFzdEVycm9yTXNnKCkpOwotICAgICAgICByZXR1cm4gSURCRXJyb3IgeyBDb25zdHJhaW50
RXJyb3IsICJFcnJvciBzdG9yaW5nIG5ldyBrZXkgZ2VuZXJhdG9yIHZhbHVlIGluIGRhdGFiYXNl
IiB9OworICAgICAgICByZXR1cm4gSURCRXJyb3IgeyBDb25zdHJhaW50RXJyb3IsICJFcnJvciBz
dG9yaW5nIG5ldyBrZXkgZ2VuZXJhdG9yIHZhbHVlIGluIGRhdGFiYXNlIl9zIH07CiAgICAgfQog
CiAgICAgcmV0dXJuIElEQkVycm9yIHsgfTsKQEAgLTI2MTUsNyArMjYxNSw3IEBAIElEQkVycm9y
IFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6Z2VuZXJhdGVLZXlOdW1iZXIoY29uc3QgSURCUmVzb3Vy
Y2VJZGVudGlmaWVyJiB0CiAgICAgICAgIHJldHVybiBlcnJvcjsKIAogICAgIGlmIChjdXJyZW50
VmFsdWUgKyAxID4gbWF4R2VuZXJhdG9yVmFsdWUpCi0gICAgICAgIHJldHVybiBJREJFcnJvciB7
IENvbnN0cmFpbnRFcnJvciwgIkNhbm5vdCBnZW5lcmF0ZSBuZXcga2V5IHZhbHVlIG92ZXIgMl41
MyBmb3Igb2JqZWN0IHN0b3JlIG9wZXJhdGlvbiIgfTsKKyAgICAgICAgcmV0dXJuIElEQkVycm9y
IHsgQ29uc3RyYWludEVycm9yLCAiQ2Fubm90IGdlbmVyYXRlIG5ldyBrZXkgdmFsdWUgb3ZlciAy
XjUzIGZvciBvYmplY3Qgc3RvcmUgb3BlcmF0aW9uIl9zIH07CiAKICAgICBnZW5lcmF0ZWRLZXkg
PSBjdXJyZW50VmFsdWUgKyAxOwogICAgIHJldHVybiB1bmNoZWNrZWRTZXRLZXlHZW5lcmF0b3JW
YWx1ZShvYmplY3RTdG9yZUlELCBnZW5lcmF0ZWRLZXkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5j
cHAKaW5kZXggMjNlNmQzZjVjOGJjNjM3NmMzMGM2NWM0ZjY3MmVlNjRjM2ZhZjZmMS4uNzRhZGVl
ZTNlMzFhYWFkMmQzZDk1YzI4NTVkNTA4YjhhNTc2ZDBiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJh
c2UuY3BwCkBAIC01ODksNyArNTg5LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6Y3JlYXRl
T2JqZWN0U3RvcmUoVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbiYgdHJhbnNhY3QKICAgICAg
ICAgYXV0byB0YXNrU2l6ZSA9IGRlZmF1bHRXcml0ZU9wZXJhdGlvbkNvc3QgKyBlc3RpbWF0ZVNp
emUoaW5mbyk7CiAgICAgICAgIG1fbWFuYWdlci0+cmVxdWVzdFNwYWNlKG1faWRlbnRpZmllci5v
cmlnaW4oKSwgdGFza1NpemUsIFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCB3
ZWFrVHJhbnNhY3Rpb24gPSBXZWFrUHRyIHsgdHJhbnNhY3Rpb24gfSwgaW5mbywgY2FsbGJhY2sg
PSBXVEZNb3ZlKGNhbGxiYWNrKV0oYm9vbCBncmFudGVkKSBtdXRhYmxlIHsKICAgICAgICAgICAg
IGlmICghd2Vha1RoaXMgfHwgIXdlYWtUcmFuc2FjdGlvbikKLSAgICAgICAgICAgICAgICByZXR1
cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkRhdGFiYXNlIG9yIHRy
YW5zYWN0aW9uIGlzIGNsb3NlZCIgfSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNr
KElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBvciB0cmFuc2FjdGlvbiBp
cyBjbG9zZWQiX3MgfSk7CiAgICAgICAgICAgICBjcmVhdGVPYmplY3RTdG9yZSgqd2Vha1RyYW5z
YWN0aW9uLCBpbmZvLCBXVEZNb3ZlKGNhbGxiYWNrKSwgZ3JhbnRlZCA/IFNwYWNlQ2hlY2tSZXN1
bHQ6OlBhc3MgOiBTcGFjZUNoZWNrUmVzdWx0OjpGYWlsKTsKICAgICAgICAgfSk7CiAgICAgICAg
IHJldHVybjsKQEAgLTYwMSw3ICs2MDEsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpjcmVh
dGVPYmplY3RTdG9yZShVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uJiB0cmFuc2FjdAogICAg
IH0KIAogICAgIGlmICghbV9iYWNraW5nU3RvcmUpCi0gICAgICAgIHJldHVybiBjYWxsYmFjayhJ
REJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiQmFja2luZyBzdG9yZSBoYXMgY2xvc2VkIiB9
KTsKKyAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3Is
ICJCYWNraW5nIHN0b3JlIGhhcyBjbG9zZWQiX3MgfSk7CiAKICAgICBhdXRvIGVycm9yID0gbV9i
YWNraW5nU3RvcmUtPmNyZWF0ZU9iamVjdFN0b3JlKHRyYW5zYWN0aW9uLmluZm8oKS5pZGVudGlm
aWVyKCksIGluZm8pOwogICAgIGlmIChlcnJvci5pc051bGwoKSkKQEAgLTYyMSw3ICs2MjEsNyBA
QCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpkZWxldGVPYmplY3RTdG9yZShVbmlxdWVJREJEYXRh
YmFzZVRyYW5zYWN0aW9uJiB0cmFuc2FjdAogCiAgICAgICAgIG1fbWFuYWdlci0+cmVxdWVzdFNw
YWNlKG1faWRlbnRpZmllci5vcmlnaW4oKSwgMCwgW3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7
ICp0aGlzIH0sIHdlYWtUcmFuc2FjdGlvbiA9IFdlYWtQdHIgeyB0cmFuc2FjdGlvbiB9LCBvYmpl
Y3RTdG9yZU5hbWUsIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKGJvb2wgZ3JhbnRlZCkg
bXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAoIXdlYWtUaGlzIHx8ICF3ZWFrVHJhbnNhY3Rpb24p
Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRl
RXJyb3IsICJEYXRhYmFzZSBvciB0cmFuc2FjdGlvbiBpcyBjbG9zZWQiIH0pOworICAgICAgICAg
ICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0
YWJhc2Ugb3IgdHJhbnNhY3Rpb24gaXMgY2xvc2VkIl9zIH0pOwogCiAgICAgICAgICAgICBkZWxl
dGVPYmplY3RTdG9yZSgqd2Vha1RyYW5zYWN0aW9uLCBvYmplY3RTdG9yZU5hbWUsIFdURk1vdmUo
Y2FsbGJhY2spLCBncmFudGVkID8gU3BhY2VDaGVja1Jlc3VsdDo6UGFzcyA6IFNwYWNlQ2hlY2tS
ZXN1bHQ6OkZhaWwpOwogICAgICAgICB9KTsKQEAgLTYzNiw3ICs2MzYsNyBAQCB2b2lkIFVuaXF1
ZUlEQkRhdGFiYXNlOjpkZWxldGVPYmplY3RTdG9yZShVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0
aW9uJiB0cmFuc2FjdAogICAgIH0KIAogICAgIGlmICghbV9iYWNraW5nU3RvcmUpCi0gICAgICAg
IHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiQmFja2luZyBz
dG9yZSBpcyBjbG9zZWQiIH0pOworICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJ
bnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xvc2VkIl9zIH0pOwogCiAgICAg
YXV0byBlcnJvciA9IG1fYmFja2luZ1N0b3JlLT5kZWxldGVPYmplY3RTdG9yZSh0cmFuc2FjdGlv
bi5pbmZvKCkuaWRlbnRpZmllcigpLCBpbmZvLT5pZGVudGlmaWVyKCkpOwogICAgIGlmIChlcnJv
ci5pc051bGwoKSkKQEAgLTY1Nyw3ICs2NTcsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpy
ZW5hbWVPYmplY3RTdG9yZShVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uJiB0cmFuc2FjdAog
ICAgICAgICBhdXRvIHRhc2tTaXplID0gZGVmYXVsdFdyaXRlT3BlcmF0aW9uQ29zdCArIG5ld05h
bWUuc2l6ZUluQnl0ZXMoKTsKICAgICAgICAgbV9tYW5hZ2VyLT5yZXF1ZXN0U3BhY2UobV9pZGVu
dGlmaWVyLm9yaWdpbigpLCB0YXNrU2l6ZSwgW3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0
aGlzIH0sIHdlYWtUcmFuc2FjdGlvbiA9IFdlYWtQdHIgeyB0cmFuc2FjdGlvbiB9LCBvYmplY3RT
dG9yZUlkZW50aWZpZXIsIG5ld05hbWUsIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKGJv
b2wgZ3JhbnRlZCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAoIXdlYWtUaGlzIHx8ICF3ZWFr
VHJhbnNhY3Rpb24pCi0gICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsg
SW52YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBvciB0cmFuc2FjdGlvbiBpcyBjbG9zZWQiIH0p
OworICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0
ZUVycm9yLCAiRGF0YWJhc2Ugb3IgdHJhbnNhY3Rpb24gaXMgY2xvc2VkIl9zIH0pOwogCiAgICAg
ICAgICAgICByZW5hbWVPYmplY3RTdG9yZSgqd2Vha1RyYW5zYWN0aW9uLCBvYmplY3RTdG9yZUlk
ZW50aWZpZXIsIG5ld05hbWUsIFdURk1vdmUoY2FsbGJhY2spLCBncmFudGVkID8gU3BhY2VDaGVj
a1Jlc3VsdDo6UGFzcyA6IFNwYWNlQ2hlY2tSZXN1bHQ6OkZhaWwpOwogICAgICAgICB9KTsKQEAg
LTY3Niw3ICs2NzYsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpyZW5hbWVPYmplY3RTdG9y
ZShVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uJiB0cmFuc2FjdAogICAgIH0KIAogICAgIGlm
ICghbV9iYWNraW5nU3RvcmUpCi0gICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IElu
dmFsaWRTdGF0ZUVycm9yLCAiQmFja2luZyBzdG9yZSBpcyBjbG9zZWQiIH0pOworICAgICAgICBy
ZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3Rv
cmUgaXMgY2xvc2VkIl9zIH0pOwogCiAgICAgYXV0byBlcnJvciA9IG1fYmFja2luZ1N0b3JlLT5y
ZW5hbWVPYmplY3RTdG9yZSh0cmFuc2FjdGlvbi5pbmZvKCkuaWRlbnRpZmllcigpLCBvYmplY3RT
dG9yZUlkZW50aWZpZXIsIG5ld05hbWUpOwogICAgIGlmIChlcnJvci5pc051bGwoKSkKQEAgLTY5
Niw3ICs2OTYsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpjbGVhck9iamVjdFN0b3JlKFVu
aXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mIHRyYW5zYWN0aQogCiAgICAgICAgIG1fbWFuYWdl
ci0+cmVxdWVzdFNwYWNlKG1faWRlbnRpZmllci5vcmlnaW4oKSwgMCwgW3RoaXMsIHdlYWtUaGlz
ID0gV2Vha1B0ciB7ICp0aGlzIH0sIHdlYWtUcmFuc2FjdGlvbiA9IFdlYWtQdHIgeyB0cmFuc2Fj
dGlvbiB9LCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFj
ayldKGJvb2wgZ3JhbnRlZCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAoIXdlYWtUaGlzIHx8
ICF3ZWFrVHJhbnNhY3Rpb24pCi0gICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVy
cm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBvciB0cmFuc2FjdGlvbiBpcyBjbG9z
ZWQiIH0pOworICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFs
aWRTdGF0ZUVycm9yLCAiRGF0YWJhc2Ugb3IgdHJhbnNhY3Rpb24gaXMgY2xvc2VkIl9zIH0pOwog
CiAgICAgICAgICAgICBjbGVhck9iamVjdFN0b3JlKCp3ZWFrVHJhbnNhY3Rpb24sIG9iamVjdFN0
b3JlSWRlbnRpZmllciwgV1RGTW92ZShjYWxsYmFjayksIGdyYW50ZWQgPyBTcGFjZUNoZWNrUmVz
dWx0OjpQYXNzIDogU3BhY2VDaGVja1Jlc3VsdDo6RmFpbCk7CiAgICAgICAgIH0pOwpAQCAtNzA1
LDcgKzcwNSw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmNsZWFyT2JqZWN0U3RvcmUoVW5p
cXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbiYgdHJhbnNhY3RpCiAKICAgICBBU1NFUlQoc3BhY2VD
aGVja1Jlc3VsdCA9PSBTcGFjZUNoZWNrUmVzdWx0OjpQYXNzKTsKICAgICBpZiAoIW1fYmFja2lu
Z1N0b3JlKQotICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVF
cnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xvc2VkIiB9KTsKKyAgICAgICAgcmV0dXJuIGNhbGxi
YWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3JlIGlzIGNsb3Nl
ZCJfcyB9KTsKIAogICAgIGF1dG8gZXJyb3IgPSBtX2JhY2tpbmdTdG9yZS0+Y2xlYXJPYmplY3RT
dG9yZSh0cmFuc2FjdGlvbi5pbmZvKCkuaWRlbnRpZmllcigpLCBvYmplY3RTdG9yZUlkZW50aWZp
ZXIpOwogICAgIGNhbGxiYWNrKGVycm9yKTsKQEAgLTcyMyw3ICs3MjMsNyBAQCB2b2lkIFVuaXF1
ZUlEQkRhdGFiYXNlOjpjcmVhdGVJbmRleChVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uJiB0
cmFuc2FjdGlvbiwgYwogICAgICAgICBhdXRvIHRhc2tTaXplID0gZGVmYXVsdFdyaXRlT3BlcmF0
aW9uQ29zdCArIGVzdGltYXRlU2l6ZShpbmZvKTsKICAgICAgICAgbV9tYW5hZ2VyLT5yZXF1ZXN0
U3BhY2UobV9pZGVudGlmaWVyLm9yaWdpbigpLCB0YXNrU2l6ZSwgW3RoaXMsIHdlYWtUaGlzID0g
V2Vha1B0ciB7ICp0aGlzIH0sIHdlYWtUcmFuc2FjdGlvbiA9IFdlYWtQdHIgeyB0cmFuc2FjdGlv
biB9LCBpbmZvLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXShib29sIGdyYW50ZWQpIG11
dGFibGUgewogICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcyB8fCAhd2Vha1RyYW5zYWN0aW9uKQot
ICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVy
cm9yLCAiRGF0YWJhc2Ugb3IgdHJhbnNhY3Rpb24gaXMgY2xvc2VkIiB9KTsKKyAgICAgICAgICAg
ICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkRhdGFi
YXNlIG9yIHRyYW5zYWN0aW9uIGlzIGNsb3NlZCJfcyB9KTsKIAogICAgICAgICAgICAgY3JlYXRl
SW5kZXgoKndlYWtUcmFuc2FjdGlvbiwgaW5mbywgV1RGTW92ZShjYWxsYmFjayksIGdyYW50ZWQg
PyBTcGFjZUNoZWNrUmVzdWx0OjpQYXNzIDogU3BhY2VDaGVja1Jlc3VsdDo6RmFpbCk7CiAgICAg
ICAgIH0pOwpAQCAtNzM2LDcgKzczNiw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmNyZWF0
ZUluZGV4KFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uLCBjCiAgICAg
fQogCiAgICAgaWYgKCFtX2JhY2tpbmdTdG9yZSkKLSAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElE
QkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3JlIGlzIGNsb3NlZCIgfSk7
CisgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAi
QmFja2luZyBzdG9yZSBpcyBjbG9zZWQiX3MgfSk7CiAKICAgICBhdXRvIGVycm9yID0gbV9iYWNr
aW5nU3RvcmUtPmNyZWF0ZUluZGV4KHRyYW5zYWN0aW9uLmluZm8oKS5pZGVudGlmaWVyKCksIGlu
Zm8pOwogICAgIGlmIChlcnJvci5pc051bGwoKSkgewpAQCAtNzYxLDcgKzc2MSw3IEBAIHZvaWQg
VW5pcXVlSURCRGF0YWJhc2U6OmRlbGV0ZUluZGV4KFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rp
b24mIHRyYW5zYWN0aW9uLCB1CiAKICAgICAgICAgbV9tYW5hZ2VyLT5yZXF1ZXN0U3BhY2UobV9p
ZGVudGlmaWVyLm9yaWdpbigpLCAwLCBbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMg
fSwgd2Vha1RyYW5zYWN0aW9uID0gV2Vha1B0ciB7IHRyYW5zYWN0aW9uIH0sIG9iamVjdFN0b3Jl
SWRlbnRpZmllciwgaW5kZXhOYW1lLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXShib29s
IGdyYW50ZWQpIG11dGFibGUgewogICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcyB8fCAhd2Vha1Ry
YW5zYWN0aW9uKQotICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IElu
dmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJhc2Ugb3IgdHJhbnNhY3Rpb24gaXMgY2xvc2VkIiB9KTsK
KyAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVF
cnJvciwgIkRhdGFiYXNlIG9yIHRyYW5zYWN0aW9uIGlzIGNsb3NlZCJfcyB9KTsKIAogICAgICAg
ICAgICAgZGVsZXRlSW5kZXgoKndlYWtUcmFuc2FjdGlvbiwgb2JqZWN0U3RvcmVJZGVudGlmaWVy
LCBpbmRleE5hbWUsIFdURk1vdmUoY2FsbGJhY2spLCBncmFudGVkID8gU3BhY2VDaGVja1Jlc3Vs
dDo6UGFzcyA6IFNwYWNlQ2hlY2tSZXN1bHQ6OkZhaWwpOwogICAgICAgICB9KTsKQEAgLTc3MCw3
ICs3NzAsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpkZWxldGVJbmRleChVbmlxdWVJREJE
YXRhYmFzZVRyYW5zYWN0aW9uJiB0cmFuc2FjdGlvbiwgdQogCiAgICAgQVNTRVJUKHNwYWNlQ2hl
Y2tSZXN1bHQgPT0gU3BhY2VDaGVja1Jlc3VsdDo6UGFzcyk7CiAgICAgaWYgKCFtX2JhY2tpbmdT
dG9yZSkKLSAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJy
b3IsICJCYWNraW5nIHN0b3JlIGlzIGNsb3NlZCIgfSk7CisgICAgICAgIHJldHVybiBjYWxsYmFj
ayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiQmFja2luZyBzdG9yZSBpcyBjbG9zZWQi
X3MgfSk7CiAKICAgICBhdXRvKiBvYmplY3RTdG9yZUluZm8gPSBtX2RhdGFiYXNlSW5mby0+aW5m
b0ZvckV4aXN0aW5nT2JqZWN0U3RvcmUob2JqZWN0U3RvcmVJZGVudGlmaWVyKTsKICAgICBpZiAo
IW9iamVjdFN0b3JlSW5mbykgewpAQCAtODA0LDcgKzgwNCw3IEBAIHZvaWQgVW5pcXVlSURCRGF0
YWJhc2U6OnJlbmFtZUluZGV4KFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mIHRyYW5zYWN0
aW9uLCB1CiAgICAgICAgIGF1dG8gdGFza1NpemUgPSBkZWZhdWx0V3JpdGVPcGVyYXRpb25Db3N0
ICsgbmV3TmFtZS5zaXplSW5CeXRlcygpOwogICAgICAgICBtX21hbmFnZXItPnJlcXVlc3RTcGFj
ZShtX2lkZW50aWZpZXIub3JpZ2luKCksIHRhc2tTaXplLCBbdGhpcywgd2Vha1RoaXMgPSBXZWFr
UHRyIHsgKnRoaXMgfSwgd2Vha1RyYW5zYWN0aW9uID0gV2Vha1B0ciB7IHRyYW5zYWN0aW9uIH0s
IG9iamVjdFN0b3JlSWRlbnRpZmllciwgaW5kZXhJZGVudGlmaWVyLCBuZXdOYW1lLCBjYWxsYmFj
ayA9IFdURk1vdmUoY2FsbGJhY2spXShib29sIGdyYW50ZWQpIG11dGFibGUgewogICAgICAgICAg
ICAgaWYgKCF3ZWFrVGhpcyB8fCAhd2Vha1RyYW5zYWN0aW9uKQotICAgICAgICAgICAgICAgIHJl
dHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJhc2Ugb3Ig
dHJhbnNhY3Rpb24gaXMgY2xvc2VkIiB9KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJh
Y2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkRhdGFiYXNlIG9yIHRyYW5zYWN0aW9u
IGlzIGNsb3NlZCJfcyB9KTsKIAogICAgICAgICAgICAgcmVuYW1lSW5kZXgoKndlYWtUcmFuc2Fj
dGlvbiwgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBpbmRleElkZW50aWZpZXIsIG5ld05hbWUsIFdU
Rk1vdmUoY2FsbGJhY2spLCBncmFudGVkID8gU3BhY2VDaGVja1Jlc3VsdDo6UGFzcyA6IFNwYWNl
Q2hlY2tSZXN1bHQ6OkZhaWwpOwogICAgICAgICB9KTsKQEAgLTgxNyw3ICs4MTcsNyBAQCB2b2lk
IFVuaXF1ZUlEQkRhdGFiYXNlOjpyZW5hbWVJbmRleChVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0
aW9uJiB0cmFuc2FjdGlvbiwgdQogICAgIH0KIAogICAgIGlmICghbV9iYWNraW5nU3RvcmUpCi0g
ICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiQmFj
a2luZyBzdG9yZSBpcyBjbG9zZWQiIH0pOworICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJy
b3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xvc2VkIl9zIH0pOwog
CiAgICAgYXV0byogb2JqZWN0U3RvcmVJbmZvID0gbV9kYXRhYmFzZUluZm8tPmluZm9Gb3JFeGlz
dGluZ09iamVjdFN0b3JlKG9iamVjdFN0b3JlSWRlbnRpZmllcik7CiAgICAgaWYgKCFvYmplY3RT
dG9yZUluZm8pIHsKQEAgLTg0Niw3ICs4NDYsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpw
dXRPckFkZChjb25zdCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdERhdGEsIGNvbnN0IElEQktleQog
ICAgIEFTU0VSVChtX2RhdGFiYXNlSW5mbyk7CiAKICAgICBpZiAoIW1fYmFja2luZ1N0b3JlKQot
ICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJh
Y2tpbmcgc3RvcmUgaXMgY2xvc2VkIiB9LCBrZXlEYXRhKTsKKyAgICAgICAgcmV0dXJuIGNhbGxi
YWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3JlIGlzIGNsb3Nl
ZCJfcyB9LCBrZXlEYXRhKTsKIAogICAgIGF1dG8gb2JqZWN0U3RvcmVJZGVudGlmaWVyID0gcmVx
dWVzdERhdGEub2JqZWN0U3RvcmVJZGVudGlmaWVyKCk7CiAgICAgYXV0byogb2JqZWN0U3RvcmVJ
bmZvID0gbV9iYWNraW5nU3RvcmUtPmluZm9Gb3JPYmplY3RTdG9yZShvYmplY3RTdG9yZUlkZW50
aWZpZXIpOwpAQCAtOTAxLDcgKzkwMSw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OnB1dE9y
QWRkKGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0YSwgY29uc3QgSURCS2V5CiAgICAg
TE9HKEluZGV4ZWREQiwgIlVuaXF1ZUlEQkRhdGFiYXNlOjpwdXRPckFkZCBxdW90YSBjaGVjayB3
aXRoIHRhc2sgc2l6ZTogJSIgUFJJdTY0ICIga2V5IHNpemU6ICUiIFBSSXU2NCAiIHZhbHVlIHNp
emU6ICUiIFBSSXU2NCAiIGluZGV4IHNpemU6ICUiIFBSSXU2NCwgdGFza1NpemUsIGtleVNpemUs
IHZhbHVlU2l6ZSwgaW5kZXhTaXplKTsKICAgICBtX21hbmFnZXItPnJlcXVlc3RTcGFjZShtX2lk
ZW50aWZpZXIub3JpZ2luKCksIHRhc2tTaXplLCBbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsg
KnRoaXMgfSwgcmVxdWVzdERhdGEsIHVzZWRLZXksIHZhbHVlLCBvdmVyd3JpdGVNb2RlLCBjYWxs
YmFjayA9IFdURk1vdmUoY2FsbGJhY2spLCB1c2VkS2V5SXNHZW5lcmF0ZWQsIGluZGV4S2V5cywg
b2JqZWN0U3RvcmVJbmZvID0gKm9iamVjdFN0b3JlSW5mb10oYm9vbCBncmFudGVkKSBtdXRhYmxl
IHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcykKLSAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhJ
REJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJhc2UgaXMgY2xvc2VkIiB9LCB1c2Vk
S2V5KTsKKyAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0
ZUVycm9yLCAiRGF0YWJhc2UgaXMgY2xvc2VkIl9zIH0sIHVzZWRLZXkpOwogCiAgICAgICAgIHB1
dE9yQWRkQWZ0ZXJTcGFjZUNoZWNrKHJlcXVlc3REYXRhLCB1c2VkS2V5LCB2YWx1ZSwgb3Zlcndy
aXRlTW9kZSwgV1RGTW92ZShjYWxsYmFjayksIHVzZWRLZXlJc0dlbmVyYXRlZCwgaW5kZXhLZXlz
LCBvYmplY3RTdG9yZUluZm8sIGdyYW50ZWQgPyBTcGFjZUNoZWNrUmVzdWx0OjpQYXNzIDogU3Bh
Y2VDaGVja1Jlc3VsdDo6RmFpbCk7CiAgICAgfSk7CkBAIC05MTMsNyArOTEzLDcgQEAgdm9pZCBV
bmlxdWVJREJEYXRhYmFzZTo6cHV0T3JBZGRBZnRlclNwYWNlQ2hlY2soY29uc3QgSURCUmVxdWVz
dERhdGEmIHJlcXVlc3REYXQKICAgICBBU1NFUlQobV9kYXRhYmFzZUluZm8pOwogCiAgICAgaWYg
KCFtX2JhY2tpbmdTdG9yZSkKLSAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52
YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3JlIGlzIGNsb3NlZCIgfSwga2V5RGF0YSk7Cisg
ICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiQmFj
a2luZyBzdG9yZSBpcyBjbG9zZWQiX3MgfSwga2V5RGF0YSk7CiAKICAgICB1aW50NjRfdCBrZXlO
dW1iZXIgPSBpc0tleUdlbmVyYXRlZCA/IGtleURhdGEubnVtYmVyKCkgOiAwOwogICAgIGF1dG8g
b2JqZWN0U3RvcmVJZGVudGlmaWVyID0gb2JqZWN0U3RvcmVJbmZvLmlkZW50aWZpZXIoKTsKQEAg
LTk1Myw3ICs5NTMsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpnZXRSZWNvcmQoY29uc3Qg
SURCUmVxdWVzdERhdGEmIHJlcXVlc3REYXRhLCBjb25zdCBJREJHZQogCiAgICAgICAgIG1fbWFu
YWdlci0+cmVxdWVzdFNwYWNlKG1faWRlbnRpZmllci5vcmlnaW4oKSwgMCwgW3RoaXMsIHdlYWtU
aGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHJlcXVlc3REYXRhLCBnZXRSZWNvcmREYXRhLCBjYWxs
YmFjayA9IFdURk1vdmUoY2FsbGJhY2spXShib29sIGdyYW50ZWQpIG11dGFibGUgewogICAgICAg
ICAgICAgaWYgKCF3ZWFrVGhpcykKLSAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soSURC
RXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkRhdGFiYXNlIGlzIGNsb3NlZCIgfSwgSURCR2V0
UmVzdWx0IHsgfSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsg
SW52YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBpcyBjbG9zZWQiX3MgfSwgSURCR2V0UmVzdWx0
IHsgfSk7CiAKICAgICAgICAgICAgIGdldFJlY29yZChyZXF1ZXN0RGF0YSwgZ2V0UmVjb3JkRGF0
YSwgV1RGTW92ZShjYWxsYmFjayksIGdyYW50ZWQgPyBTcGFjZUNoZWNrUmVzdWx0OjpQYXNzIDog
U3BhY2VDaGVja1Jlc3VsdDo6RmFpbCk7CiAgICAgICAgIH0pOwpAQCAtOTYyLDcgKzk2Miw3IEBA
IHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmdldFJlY29yZChjb25zdCBJREJSZXF1ZXN0RGF0YSYg
cmVxdWVzdERhdGEsIGNvbnN0IElEQkdlCiAKICAgICBBU1NFUlQoc3BhY2VDaGVja1Jlc3VsdCA9
PSBTcGFjZUNoZWNrUmVzdWx0OjpQYXNzKTsKICAgICBpZiAoIW1fYmFja2luZ1N0b3JlKQotICAg
ICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tp
bmcgc3RvcmUgaXMgY2xvc2VkIiB9LCBJREJHZXRSZXN1bHQgeyB9KTsKKyAgICAgICAgcmV0dXJu
IGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3JlIGlz
IGNsb3NlZCJfcyB9LCBJREJHZXRSZXN1bHQgeyB9KTsKIAogICAgIElEQkdldFJlc3VsdCByZXN1
bHQ7CiAgICAgSURCRXJyb3IgZXJyb3I7CkBAIC05ODYsNyArOTg2LDcgQEAgdm9pZCBVbmlxdWVJ
REJEYXRhYmFzZTo6Z2V0QWxsUmVjb3Jkcyhjb25zdCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdERh
dGEsIGNvbnN0IEkKIAogICAgICAgICBtX21hbmFnZXItPnJlcXVlc3RTcGFjZShtX2lkZW50aWZp
ZXIub3JpZ2luKCksIDAsIFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCByZXF1
ZXN0RGF0YSwgZ2V0QWxsUmVjb3Jkc0RhdGEsIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayld
KGJvb2wgZ3JhbnRlZCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAoIXdlYWtUaGlzKQotICAg
ICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9y
LCAiRGF0YWJhc2UgaXMgY2xvc2VkIiB9LCBJREJHZXRBbGxSZXN1bHQgeyB9KTsKKyAgICAgICAg
ICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkRh
dGFiYXNlIGlzIGNsb3NlZCJfcyB9LCBJREJHZXRBbGxSZXN1bHQgeyB9KTsKIAogICAgICAgICAg
ICAgZ2V0QWxsUmVjb3JkcyhyZXF1ZXN0RGF0YSwgZ2V0QWxsUmVjb3Jkc0RhdGEsIFdURk1vdmUo
Y2FsbGJhY2spLCBncmFudGVkID8gU3BhY2VDaGVja1Jlc3VsdDo6UGFzcyA6IFNwYWNlQ2hlY2tS
ZXN1bHQ6OkZhaWwpOwogICAgICAgICB9KTsKQEAgLTk5NSw3ICs5OTUsNyBAQCB2b2lkIFVuaXF1
ZUlEQkRhdGFiYXNlOjpnZXRBbGxSZWNvcmRzKGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0
RGF0YSwgY29uc3QgSQogCiAgICAgQVNTRVJUKHNwYWNlQ2hlY2tSZXN1bHQgPT0gU3BhY2VDaGVj
a1Jlc3VsdDo6UGFzcyk7CiAgICAgaWYgKCFtX2JhY2tpbmdTdG9yZSkKLSAgICAgICAgcmV0dXJu
IGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3JlIGlz
IGNsb3NlZCIgfSwgSURCR2V0QWxsUmVzdWx0IHsgfSk7CisgICAgICAgIHJldHVybiBjYWxsYmFj
ayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiQmFja2luZyBzdG9yZSBpcyBjbG9zZWQi
X3MgfSwgSURCR2V0QWxsUmVzdWx0IHsgfSk7CiAKICAgICBJREJHZXRBbGxSZXN1bHQgcmVzdWx0
OwogICAgIGF1dG8gZXJyb3IgPSBtX2JhY2tpbmdTdG9yZS0+Z2V0QWxsUmVjb3JkcyhyZXF1ZXN0
RGF0YS50cmFuc2FjdGlvbklkZW50aWZpZXIoKSwgZ2V0QWxsUmVjb3Jkc0RhdGEsIHJlc3VsdCk7
CkBAIC0xMDE0LDcgKzEwMTQsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpnZXRDb3VudChj
b25zdCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdERhdGEsIGNvbnN0IElEQktleQogCiAgICAgICAg
IG1fbWFuYWdlci0+cmVxdWVzdFNwYWNlKG1faWRlbnRpZmllci5vcmlnaW4oKSwgMCwgW3RoaXMs
IHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHJlcXVlc3REYXRhLCByYW5nZSwgY2FsbGJh
Y2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oYm9vbCBncmFudGVkKSBtdXRhYmxlIHsKICAgICAgICAg
ICAgIGlmICghd2Vha1RoaXMpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVy
cm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBpcyBjbG9zZWQiIH0sIDApOworICAg
ICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9y
LCAiRGF0YWJhc2UgaXMgY2xvc2VkIl9zIH0sIDApOwogCiAgICAgICAgICAgICBnZXRDb3VudChy
ZXF1ZXN0RGF0YSwgcmFuZ2UsIFdURk1vdmUoY2FsbGJhY2spLCBncmFudGVkID8gU3BhY2VDaGVj
a1Jlc3VsdDo6UGFzcyA6IFNwYWNlQ2hlY2tSZXN1bHQ6OkZhaWwpOwogICAgICAgICB9KTsKQEAg
LTEwMjMsNyArMTAyMyw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmdldENvdW50KGNvbnN0
IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0YSwgY29uc3QgSURCS2V5CiAKICAgICBBU1NFUlQo
c3BhY2VDaGVja1Jlc3VsdCA9PSBTcGFjZUNoZWNrUmVzdWx0OjpQYXNzKTsKICAgICBpZiAoIW1f
YmFja2luZ1N0b3JlKQotICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlk
U3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xvc2VkIiB9LCAwKTsKKyAgICAgICAgcmV0
dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3Jl
IGlzIGNsb3NlZCJfcyB9LCAwKTsKIAogICAgIHVpbnQ2NF90IGNvdW50ID0gMDsKICAgICBhdXRv
IGVycm9yID0gbV9iYWNraW5nU3RvcmUtPmdldENvdW50KHJlcXVlc3REYXRhLnRyYW5zYWN0aW9u
SWRlbnRpZmllcigpLCByZXF1ZXN0RGF0YS5vYmplY3RTdG9yZUlkZW50aWZpZXIoKSwgcmVxdWVz
dERhdGEuaW5kZXhJZGVudGlmaWVyKCksIHJhbmdlLCBjb3VudCk7CkBAIC0xMDQyLDcgKzEwNDIs
NyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpkZWxldGVSZWNvcmQoY29uc3QgSURCUmVxdWVz
dERhdGEmIHJlcXVlc3REYXRhLCBjb25zdCBJRAogCiAgICAgICAgIG1fbWFuYWdlci0+cmVxdWVz
dFNwYWNlKG1faWRlbnRpZmllci5vcmlnaW4oKSwgMCwgW3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0
ciB7ICp0aGlzIH0sIHJlcXVlc3REYXRhLCBrZXlSYW5nZURhdGEsIGNhbGxiYWNrID0gV1RGTW92
ZShjYWxsYmFjayldKGJvb2wgZ3JhbnRlZCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAoIXdl
YWtUaGlzKQotICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFs
aWRTdGF0ZUVycm9yLCAiRGF0YWJhc2UgaXMgY2xvc2VkIiB9KTsKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkRhdGFiYXNlIGlz
IGNsb3NlZCJfcyB9KTsKIAogICAgICAgICAgICAgZGVsZXRlUmVjb3JkKHJlcXVlc3REYXRhLCBr
ZXlSYW5nZURhdGEsIFdURk1vdmUoY2FsbGJhY2spLCBncmFudGVkID8gU3BhY2VDaGVja1Jlc3Vs
dDo6UGFzcyA6IFNwYWNlQ2hlY2tSZXN1bHQ6OkZhaWwpOwogICAgICAgICB9KTsKQEAgLTEwNTEs
NyArMTA1MSw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmRlbGV0ZVJlY29yZChjb25zdCBJ
REJSZXF1ZXN0RGF0YSYgcmVxdWVzdERhdGEsIGNvbnN0IElECiAKICAgICBBU1NFUlQoc3BhY2VD
aGVja1Jlc3VsdCA9PSBTcGFjZUNoZWNrUmVzdWx0OjpQYXNzKTsKICAgICBpZiAoIW1fYmFja2lu
Z1N0b3JlKQotICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVF
cnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xvc2VkIiB9KTsKKyAgICAgICAgcmV0dXJuIGNhbGxi
YWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3JlIGlzIGNsb3Nl
ZCJfcyB9KTsKIAogICAgIGF1dG8gZXJyb3IgPSBtX2JhY2tpbmdTdG9yZS0+ZGVsZXRlUmFuZ2Uo
cmVxdWVzdERhdGEudHJhbnNhY3Rpb25JZGVudGlmaWVyKCksIHJlcXVlc3REYXRhLm9iamVjdFN0
b3JlSWRlbnRpZmllcigpLCBrZXlSYW5nZURhdGEpOwogCkBAIC0xMDY5LDcgKzEwNjksNyBAQCB2
b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpvcGVuQ3Vyc29yKGNvbnN0IElEQlJlcXVlc3REYXRhJiBy
ZXF1ZXN0RGF0YSwgY29uc3QgSURCQwogCiAgICAgICAgIG1fbWFuYWdlci0+cmVxdWVzdFNwYWNl
KG1faWRlbnRpZmllci5vcmlnaW4oKSwgMCwgW3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0
aGlzIH0sIHJlcXVlc3REYXRhLCBpbmZvLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXShi
b29sIGdyYW50ZWQpIG11dGFibGUgewogICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcykKLSAgICAg
ICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwg
IkRhdGFiYXNlIG9yIHRyYW5zYWN0aW9uIGlzIGNsb3NlZCIgfSwgSURCR2V0UmVzdWx0IHsgfSk7
CisgICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRl
RXJyb3IsICJEYXRhYmFzZSBvciB0cmFuc2FjdGlvbiBpcyBjbG9zZWQiX3MgfSwgSURCR2V0UmVz
dWx0IHsgfSk7CiAKICAgICAgICAgICAgIG9wZW5DdXJzb3IocmVxdWVzdERhdGEsIGluZm8sIFdU
Rk1vdmUoY2FsbGJhY2spLCBncmFudGVkID8gU3BhY2VDaGVja1Jlc3VsdDo6UGFzcyA6IFNwYWNl
Q2hlY2tSZXN1bHQ6OkZhaWwpOwogICAgICAgICB9KTsKQEAgLTEwNzgsNyArMTA3OCw3IEBAIHZv
aWQgVW5pcXVlSURCRGF0YWJhc2U6Om9wZW5DdXJzb3IoY29uc3QgSURCUmVxdWVzdERhdGEmIHJl
cXVlc3REYXRhLCBjb25zdCBJREJDCiAKICAgICBBU1NFUlQoc3BhY2VDaGVja1Jlc3VsdCA9PSBT
cGFjZUNoZWNrUmVzdWx0OjpQYXNzKTsKICAgICBpZiAoIW1fYmFja2luZ1N0b3JlKQotICAgICAg
ICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcg
c3RvcmUgaXMgY2xvc2VkIiB9LCBJREJHZXRSZXN1bHQgeyB9KTsKKyAgICAgICAgcmV0dXJuIGNh
bGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3JlIGlzIGNs
b3NlZCJfcyB9LCBJREJHZXRSZXN1bHQgeyB9KTsKIAogICAgIElEQkdldFJlc3VsdCByZXN1bHQ7
CiAgICAgYXV0byBlcnJvciA9IG1fYmFja2luZ1N0b3JlLT5vcGVuQ3Vyc29yKHJlcXVlc3REYXRh
LnRyYW5zYWN0aW9uSWRlbnRpZmllcigpLCBpbmZvLCByZXN1bHQpOwpAQCAtMTA5Nyw3ICsxMDk3
LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6aXRlcmF0ZUN1cnNvcihjb25zdCBJREJSZXF1
ZXN0RGF0YSYgcmVxdWVzdERhdGEsIGNvbnN0IEkKIAogICAgICAgICBtX21hbmFnZXItPnJlcXVl
c3RTcGFjZShtX2lkZW50aWZpZXIub3JpZ2luKCksIDAsIFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQ
dHIgeyAqdGhpcyB9LCByZXF1ZXN0RGF0YSwgZGF0YSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxi
YWNrKV0oYm9vbCBncmFudGVkKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlmICghd2Vha1RoaXMp
Ci0gICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRl
RXJyb3IsICJEYXRhYmFzZSBvciB0cmFuc2FjdGlvbiBpcyBjbG9zZWQiIH0sIElEQkdldFJlc3Vs
dCB7IH0pOworICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFs
aWRTdGF0ZUVycm9yLCAiRGF0YWJhc2Ugb3IgdHJhbnNhY3Rpb24gaXMgY2xvc2VkIl9zIH0sIElE
QkdldFJlc3VsdCB7IH0pOwogCiAgICAgICAgICAgICBpdGVyYXRlQ3Vyc29yKHJlcXVlc3REYXRh
LCBkYXRhLCBXVEZNb3ZlKGNhbGxiYWNrKSwgZ3JhbnRlZCA/IFNwYWNlQ2hlY2tSZXN1bHQ6OlBh
c3MgOiBTcGFjZUNoZWNrUmVzdWx0OjpGYWlsKTsKICAgICAgICAgfSk7CkBAIC0xMTA2LDcgKzEx
MDYsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjppdGVyYXRlQ3Vyc29yKGNvbnN0IElEQlJl
cXVlc3REYXRhJiByZXF1ZXN0RGF0YSwgY29uc3QgSQogCiAgICAgQVNTRVJUKHNwYWNlQ2hlY2tS
ZXN1bHQgPT0gU3BhY2VDaGVja1Jlc3VsdDo6UGFzcyk7CiAgICAgaWYgKCFtX2JhY2tpbmdTdG9y
ZSkKLSAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3Is
ICJCYWNraW5nIHN0b3JlIGlzIGNsb3NlZCIgfSwgSURCR2V0UmVzdWx0IHsgfSk7CisgICAgICAg
IHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiQmFja2luZyBz
dG9yZSBpcyBjbG9zZWQiX3MgfSwgSURCR2V0UmVzdWx0IHsgfSk7CiAKICAgICBJREJHZXRSZXN1
bHQgcmVzdWx0OwogICAgIGF1dG8gdHJhbnNhY3Rpb25JZGVudGlmaWVyID0gcmVxdWVzdERhdGEu
dHJhbnNhY3Rpb25JZGVudGlmaWVyKCk7CkBAIC0xMTI3LDcgKzExMjcsNyBAQCB2b2lkIFVuaXF1
ZUlEQkRhdGFiYXNlOjpjb21taXRUcmFuc2FjdGlvbihVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0
aW9uJiB0cmFuc2FjdAogCiAgICAgICAgIG1fbWFuYWdlci0+cmVxdWVzdFNwYWNlKG1faWRlbnRp
Zmllci5vcmlnaW4oKSwgMCwgW3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHdl
YWtUcmFuc2FjdGlvbiA9IFdlYWtQdHIgeyB0cmFuc2FjdGlvbiB9LCBjYWxsYmFjayA9IFdURk1v
dmUoY2FsbGJhY2spXShib29sIGdyYW50ZWQpIG11dGFibGUgewogICAgICAgICAgICAgaWYgKCF3
ZWFrVGhpcyB8fCAhd2Vha1RyYW5zYWN0aW9uKQotICAgICAgICAgICAgICAgIHJldHVybiBjYWxs
YmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJhc2Ugb3IgdHJhbnNhY3Rp
b24gaXMgY2xvc2VkIiB9KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJy
b3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkRhdGFiYXNlIG9yIHRyYW5zYWN0aW9uIGlzIGNsb3Nl
ZCJfcyB9KTsKIAogICAgICAgICAgICAgY29tbWl0VHJhbnNhY3Rpb24oKndlYWtUcmFuc2FjdGlv
biwgV1RGTW92ZShjYWxsYmFjayksIGdyYW50ZWQgPyBTcGFjZUNoZWNrUmVzdWx0OjpQYXNzIDog
U3BhY2VDaGVja1Jlc3VsdDo6RmFpbCk7CiAgICAgICAgIH0pOwpAQCAtMTEzOCw3ICsxMTM4LDcg
QEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6Y29tbWl0VHJhbnNhY3Rpb24oVW5pcXVlSURCRGF0
YWJhc2VUcmFuc2FjdGlvbiYgdHJhbnNhY3QKICAgICBBU1NFUlQodHJhbnNhY3Rpb24uZGF0YWJh
c2VDb25uZWN0aW9uKCkuZGF0YWJhc2UoKSA9PSB0aGlzKTsKIAogICAgIGlmICghbV9iYWNraW5n
U3RvcmUpCi0gICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVy
cm9yLCAiQmFja2luZyBzdG9yZSBpcyBjbG9zZWQiIH0pOworICAgICAgICByZXR1cm4gY2FsbGJh
Y2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xvc2Vk
Il9zIH0pOwogCiAgICAgYXV0byB0YWtlblRyYW5zYWN0aW9uID0gbV9pblByb2dyZXNzVHJhbnNh
Y3Rpb25zLnRha2UodHJhbnNhY3Rpb24uaW5mbygpLmlkZW50aWZpZXIoKSk7CiAgICAgaWYgKCF0
YWtlblRyYW5zYWN0aW9uKSB7CkBAIC0xMTY2LDcgKzExNjYsNyBAQCB2b2lkIFVuaXF1ZUlEQkRh
dGFiYXNlOjphYm9ydFRyYW5zYWN0aW9uKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mIHRy
YW5zYWN0aQogCiAgICAgICAgIG1fbWFuYWdlci0+cmVxdWVzdFNwYWNlKG1faWRlbnRpZmllci5v
cmlnaW4oKSwgMCwgW3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHdlYWtUcmFu
c2FjdGlvbiA9IFdlYWtQdHIgeyB0cmFuc2FjdGlvbiB9LCBjYWxsYmFjayA9IFdURk1vdmUoY2Fs
bGJhY2spXShib29sIGdyYW50ZWQpIG11dGFibGUgewogICAgICAgICAgICAgaWYgKCF3ZWFrVGhp
cyB8fCAhd2Vha1RyYW5zYWN0aW9uKQotICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhJ
REJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJhc2Ugb3IgdHJhbnNhY3Rpb24gaXMg
Y2xvc2VkIiB9KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJ
bnZhbGlkU3RhdGVFcnJvciwgIkRhdGFiYXNlIG9yIHRyYW5zYWN0aW9uIGlzIGNsb3NlZCJfcyB9
KTsKIAogICAgICAgICAgICAgYWJvcnRUcmFuc2FjdGlvbigqd2Vha1RyYW5zYWN0aW9uLCBXVEZN
b3ZlKGNhbGxiYWNrKSwgZ3JhbnRlZCA/IFNwYWNlQ2hlY2tSZXN1bHQ6OlBhc3MgOiBTcGFjZUNo
ZWNrUmVzdWx0OjpGYWlsKTsKICAgICAgICAgfSk7CkBAIC0xMjAyLDcgKzEyMDIsNyBAQCB2b2lk
IFVuaXF1ZUlEQkRhdGFiYXNlOjphYm9ydFRyYW5zYWN0aW9uKFVuaXF1ZUlEQkRhdGFiYXNlVHJh
bnNhY3Rpb24mIHRyYW5zYWN0aQogCiAgICAgSURCRXJyb3IgZXJyb3I7CiAgICAgaWYgKCFtX2Jh
Y2tpbmdTdG9yZSkKLSAgICAgICAgZXJyb3IgPSBJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9y
LCAiQmFja2luZyBzdG9yZSBpcyBjbG9zZWQiIH07CisgICAgICAgIGVycm9yID0gSURCRXJyb3Ig
eyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xvc2VkIl9zIH07CiAgICAg
ZWxzZQogICAgICAgICBlcnJvciA9IG1fYmFja2luZ1N0b3JlLT5hYm9ydFRyYW5zYWN0aW9uKHRy
YW5zYWN0aW9uSWRlbnRpZmllcik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJJbmRleEluZm8uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkluZGV4SW5mby5jcHAKaW5kZXggZTcxZDJlYmYyMWM0
YWRmZWYyOGEyYmRhZmExZmY4NGIzZjdmMDM5OC4uN2FiYTgzMWQ3MDBlYTk4ZmViMmNjOWFhNDRj
OTYyYzRiNTk0NDdiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvc2hhcmVkL0lEQkluZGV4SW5mby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvc2hhcmVkL0lEQkluZGV4SW5mby5jcHAKQEAgLTYxLDcgKzYxLDcgQEAgU3RyaW5n
IElEQkluZGV4SW5mbzo6bG9nZ2luZ1N0cmluZyhpbnQgaW5kZW50KSBjb25zdAogewogICAgIFN0
cmluZyBpbmRlbnRTdHJpbmc7CiAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBpbmRlbnQ7ICsraSkK
LSAgICAgICAgaW5kZW50U3RyaW5nLmFwcGVuZCgiICIpOworICAgICAgICBpbmRlbnRTdHJpbmcu
YXBwZW5kKCcgJyk7CiAgICAgcmV0dXJuIG1ha2VTdHJpbmcoaW5kZW50U3RyaW5nLCAiSW5kZXg6
ICIsIG1fbmFtZSwgIiAoIiwgbV9pZGVudGlmaWVyLCAiKSBrZXlQYXRoOiAiLCBXZWJDb3JlOjps
b2dnaW5nU3RyaW5nKG1fa2V5UGF0aCksICdcbicpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0LmNwcApp
bmRleCBiODI1ZWM4MDA1MTQ4MDI4ZTJiMDdiMTlkYzc4MzkyYTQzYThjYmE1Li4zMzJmNDYyNmJk
MzJlODMxYWQ5MDhhNDZhYzRkYzE0NmU2ZWNjYTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5jcHAKQEAg
LTExOCwxNCArMTE4LDE0IEBAIE1lZGlhQ29udHJvbHNIb3N0Ojp+TWVkaWFDb250cm9sc0hvc3Qo
KQogU3RyaW5nIE1lZGlhQ29udHJvbHNIb3N0OjpsYXlvdXRUcmFpdHNDbGFzc05hbWUoKSBjb25z
dAogewogI2lmIGRlZmluZWQoTUVESUFfQ09OVFJPTFNfSE9TVF9MQVlPVVRfVFJBSVRTX0NMQVNT
X05BTUVfT1ZFUlJJREUpCi0gICAgcmV0dXJuIE1FRElBX0NPTlRST0xTX0hPU1RfTEFZT1VUX1RS
QUlUU19DTEFTU19OQU1FX09WRVJSSURFOworICAgIHJldHVybiBNRURJQV9DT05UUk9MU19IT1NU
X0xBWU9VVF9UUkFJVFNfQ0xBU1NfTkFNRV9PVkVSUklERSIiX3M7CiAjZWxzZQogI2lmIFBMQVRG
T1JNKE1BQykgfHwgUExBVEZPUk0oTUFDQ0FUQUxZU1QpCi0gICAgcmV0dXJuICJNYWNPU0xheW91
dFRyYWl0cyI7CisgICAgcmV0dXJuICJNYWNPU0xheW91dFRyYWl0cyJfczsKICNlbGlmIFBMQVRG
T1JNKElPUykKLSAgICByZXR1cm4gIklPU0xheW91dFRyYWl0cyI7CisgICAgcmV0dXJuICJJT1NM
YXlvdXRUcmFpdHMiX3M7CiAjZWxpZiBQTEFURk9STShXQVRDSE9TKQotICAgIHJldHVybiAiV2F0
Y2hPU0xheW91dFRyYWl0cyI7CisgICAgcmV0dXJuICJXYXRjaE9TTGF5b3V0VHJhaXRzIl9zOwog
I2Vsc2UKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gbnVsbFN0cmluZygp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlh
UmVjb3JkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlh
UmVjb3JkZXIuY3BwCmluZGV4IGE5MWU2NjkwMDA0ODMxNmE5YTkxM2NhMGQ1MTI4ZWFhMTUxZDlj
Y2UuLmZmOTQ5OTljMjAyYTMyMDU0YzYxNmJmMzY2YzY3M2FlYjQyN2Y2NTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5j
cHAKQEAgLTY2LDcgKzY2LDcgQEAgRXhjZXB0aW9uT3I8UmVmPE1lZGlhUmVjb3JkZXI+PiBNZWRp
YVJlY29yZGVyOjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBSZWY8TWUKICAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07CiAKICAgICBpZiAoIWlzVHlwZVN1
cHBvcnRlZChkb2N1bWVudCwgb3B0aW9ucy5taW1lVHlwZSkpCi0gICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciwgIm1pbWVUeXBlIGlzIG5vdCBzdXBwb3J0ZWQiIH07
CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciwgIm1pbWVUeXBl
IGlzIG5vdCBzdXBwb3J0ZWQiX3MgfTsKIAogICAgIGF1dG8gcmVjb3JkZXIgPSBhZG9wdFJlZigq
bmV3IE1lZGlhUmVjb3JkZXIoZG9jdW1lbnQsIFdURk1vdmUoc3RyZWFtKSwgV1RGTW92ZShvcHRp
b25zKSkpOwogICAgIHJlY29yZGVyLT5zdXNwZW5kSWZOZWVkZWQoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHAKaW5kZXggYTU5MDM3
YTQwNTg2MzE4ZjIxNmE2ZWEwMTlkYjI0YTliMDM5NzI0OC4uOGNiNmQ1Y2ZjMzhkNmVmODBmN2Uz
OTQxZmI5NThhMzRkNTM1ZmNjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHAKQEAgLTY1MCw3ICs2NTAsNyBAQCBzdGF0aWMgQ29u
dGVudFR5cGUgYWRkVlA5RnVsbFJhbmdlVmlkZW9GbGFnVG9Db250ZW50VHlwZShjb25zdCBDb250
ZW50VHlwZSYgdHlwZQogICAgICAgICBpZiAocG9zaXRpb24gPT0gbm90Rm91bmQpCiAgICAgICAg
ICAgICBjb250aW51ZTsKIAotICAgICAgICByYXdUeXBlLmluc2VydCgiLjAwIiwgcG9zaXRpb24g
KyBjb2RlYy5sZW5ndGgoKSk7CisgICAgICAgIHJhd1R5cGUuaW5zZXJ0KCIuMDAiX3MsIHBvc2l0
aW9uICsgY29kZWMubGVuZ3RoKCkpOwogICAgICAgICByZXR1cm4gQ29udGVudFR5cGUocmF3VHlw
ZSk7CiAgICAgfQogICAgIHJldHVybiB0eXBlOwpAQCAtODk1LDcgKzg5NSw3IEBAIGJvb2wgTWVk
aWFTb3VyY2U6OmlzVHlwZVN1cHBvcnRlZChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0
LCBjb25zdCBTdHJpbmcmCiAgICAgaWYgKGNvbnRleHQuaXNEb2N1bWVudCgpICYmIGRvd25jYXN0
PERvY3VtZW50Pihjb250ZXh0KS5xdWlya3MoKS5uZWVkc1ZQOUZ1bGxSYW5nZUZsYWdRdWlyaygp
KQogICAgICAgICBjb250ZW50VHlwZSA9IGFkZFZQOUZ1bGxSYW5nZVZpZGVvRmxhZ1RvQ29udGVu
dFR5cGUoY29udGVudFR5cGUpOwogCi0gICAgU3RyaW5nIGNvZGVjcyA9IGNvbnRlbnRUeXBlLnBh
cmFtZXRlcigiY29kZWNzIik7CisgICAgU3RyaW5nIGNvZGVjcyA9IGNvbnRlbnRUeXBlLnBhcmFt
ZXRlcigiY29kZWNzIl9zKTsKIAogICAgIC8vIDIuIElmIHR5cGUgZG9lcyBub3QgY29udGFpbiBh
IHZhbGlkIE1JTUUgdHlwZSBzdHJpbmcsIHRoZW4gcmV0dXJuIGZhbHNlLgogICAgIGlmIChjb250
ZW50VHlwZS5jb250YWluZXJUeXBlKCkuaXNFbXB0eSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVRyYWNrQ29uc3RyYWludHMuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVRyYWNrQ29uc3RyYWludHMuY3Bw
CmluZGV4IDMxMTM4NDdkYjc1NDg0N2Q2MTYyZmEyZDYxZTY3MzRhNmE4ODg1YjMuLjJmOGQ4YmQy
N2Q3MzU1NDZiYTg0YjYxODA4YTZjZGFiM2YzMjhlMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFUcmFja0NvbnN0cmFpbnRzLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhVHJhY2tDb25zdHJhaW50cy5j
cHAKQEAgLTMzLDcgKzMzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBlbnVtIGNsYXNzIENv
bnN0cmFpbnRTZXRUeXBlIHsgTWFuZGF0b3J5LCBBZHZhbmNlZCB9OwogCi1zdGF0aWMgdm9pZCBz
ZXQoTWVkaWFUcmFja0NvbnN0cmFpbnRTZXRNYXAmIG1hcCwgQ29uc3RyYWludFNldFR5cGUgc2V0
VHlwZSwgY29uc3QgY2hhciogdHlwZUFzU3RyaW5nLCBNZWRpYUNvbnN0cmFpbnRUeXBlIHR5cGUs
IGNvbnN0IENvbnN0cmFpbkxvbmcmIHZhbHVlKQorc3RhdGljIHZvaWQgc2V0KE1lZGlhVHJhY2tD
b25zdHJhaW50U2V0TWFwJiBtYXAsIENvbnN0cmFpbnRTZXRUeXBlIHNldFR5cGUsIEFTQ0lJTGl0
ZXJhbCB0eXBlQXNTdHJpbmcsIE1lZGlhQ29uc3RyYWludFR5cGUgdHlwZSwgY29uc3QgQ29uc3Ry
YWluTG9uZyYgdmFsdWUpCiB7CiAgICAgSW50Q29uc3RyYWludCBjb25zdHJhaW50KHR5cGVBc1N0
cmluZywgdHlwZSk7CiAgICAgV1RGOjpzd2l0Y2hPbih2YWx1ZSwKQEAgLTU3LDcgKzU3LDcgQEAg
c3RhdGljIHZvaWQgc2V0KE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwJiBtYXAsIENvbnN0cmFp
bnRTZXRUeXBlIHNldFR5cGUsIGNvbnMKICAgICBtYXAuc2V0KHR5cGUsIFdURk1vdmUoY29uc3Ry
YWludCkpOwogfQogCi1zdGF0aWMgdm9pZCBzZXQoTWVkaWFUcmFja0NvbnN0cmFpbnRTZXRNYXAm
IG1hcCwgQ29uc3RyYWludFNldFR5cGUgc2V0VHlwZSwgY29uc3QgY2hhciogdHlwZUFzU3RyaW5n
LCBNZWRpYUNvbnN0cmFpbnRUeXBlIHR5cGUsIGNvbnN0IENvbnN0cmFpbkRvdWJsZSYgdmFsdWUp
CitzdGF0aWMgdm9pZCBzZXQoTWVkaWFUcmFja0NvbnN0cmFpbnRTZXRNYXAmIG1hcCwgQ29uc3Ry
YWludFNldFR5cGUgc2V0VHlwZSwgQVNDSUlMaXRlcmFsIHR5cGVBc1N0cmluZywgTWVkaWFDb25z
dHJhaW50VHlwZSB0eXBlLCBjb25zdCBDb25zdHJhaW5Eb3VibGUmIHZhbHVlKQogewogICAgIERv
dWJsZUNvbnN0cmFpbnQgY29uc3RyYWludCh0eXBlQXNTdHJpbmcsIHR5cGUpOwogICAgIFdURjo6
c3dpdGNoT24odmFsdWUsCkBAIC04MSw3ICs4MSw3IEBAIHN0YXRpYyB2b2lkIHNldChNZWRpYVRy
YWNrQ29uc3RyYWludFNldE1hcCYgbWFwLCBDb25zdHJhaW50U2V0VHlwZSBzZXRUeXBlLCBjb25z
CiAgICAgbWFwLnNldCh0eXBlLCBXVEZNb3ZlKGNvbnN0cmFpbnQpKTsKIH0KIAotc3RhdGljIHZv
aWQgc2V0KE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwJiBtYXAsIENvbnN0cmFpbnRTZXRUeXBl
IHNldFR5cGUsIGNvbnN0IGNoYXIqIHR5cGVBc1N0cmluZywgTWVkaWFDb25zdHJhaW50VHlwZSB0
eXBlLCBjb25zdCBDb25zdHJhaW5Cb29sZWFuJiB2YWx1ZSkKK3N0YXRpYyB2b2lkIHNldChNZWRp
YVRyYWNrQ29uc3RyYWludFNldE1hcCYgbWFwLCBDb25zdHJhaW50U2V0VHlwZSBzZXRUeXBlLCBB
U0NJSUxpdGVyYWwgdHlwZUFzU3RyaW5nLCBNZWRpYUNvbnN0cmFpbnRUeXBlIHR5cGUsIGNvbnN0
IENvbnN0cmFpbkJvb2xlYW4mIHZhbHVlKQogewogICAgIEJvb2xlYW5Db25zdHJhaW50IGNvbnN0
cmFpbnQodHlwZUFzU3RyaW5nLCB0eXBlKTsKICAgICBXVEY6OnN3aXRjaE9uKHZhbHVlLApAQCAt
MTAxLDcgKzEwMSw3IEBAIHN0YXRpYyB2b2lkIHNldChNZWRpYVRyYWNrQ29uc3RyYWludFNldE1h
cCYgbWFwLCBDb25zdHJhaW50U2V0VHlwZSBzZXRUeXBlLCBjb25zCiAgICAgbWFwLnNldCh0eXBl
LCBXVEZNb3ZlKGNvbnN0cmFpbnQpKTsKIH0KIAotc3RhdGljIHZvaWQgc2V0KE1lZGlhVHJhY2tD
b25zdHJhaW50U2V0TWFwJiBtYXAsIENvbnN0cmFpbnRTZXRUeXBlIHNldFR5cGUsIGNvbnN0IGNo
YXIqIHR5cGVBc1N0cmluZywgTWVkaWFDb25zdHJhaW50VHlwZSB0eXBlLCBjb25zdCBDb25zdHJh
aW5ET01TdHJpbmcmIHZhbHVlKQorc3RhdGljIHZvaWQgc2V0KE1lZGlhVHJhY2tDb25zdHJhaW50
U2V0TWFwJiBtYXAsIENvbnN0cmFpbnRTZXRUeXBlIHNldFR5cGUsIEFTQ0lJTGl0ZXJhbCB0eXBl
QXNTdHJpbmcsIE1lZGlhQ29uc3RyYWludFR5cGUgdHlwZSwgY29uc3QgQ29uc3RyYWluRE9NU3Ry
aW5nJiB2YWx1ZSkKIHsKICAgICBTdHJpbmdDb25zdHJhaW50IGNvbnN0cmFpbnQodHlwZUFzU3Ry
aW5nLCB0eXBlKTsKICAgICBXVEY6OnN3aXRjaE9uKHZhbHVlLApAQCAtMTQ4LDcgKzE0OCw3IEBA
IHN0YXRpYyB2b2lkIHNldChNZWRpYVRyYWNrQ29uc3RyYWludFNldE1hcCYgbWFwLCBDb25zdHJh
aW50U2V0VHlwZSBzZXRUeXBlLCBjb25zCiAgICAgbWFwLnNldCh0eXBlLCBXVEZNb3ZlKGNvbnN0
cmFpbnQpKTsKIH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RhdGljIGlubGluZSB2b2lkIHNl
dChNZWRpYVRyYWNrQ29uc3RyYWludFNldE1hcCYgbWFwLCBDb25zdHJhaW50U2V0VHlwZSBzZXRU
eXBlLCBjb25zdCBjaGFyKiB0eXBlQXNTdHJpbmcsIE1lZGlhQ29uc3RyYWludFR5cGUgdHlwZSwg
Y29uc3Qgc3RkOjpvcHRpb25hbDxUPiYgdmFsdWUpCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdGF0
aWMgaW5saW5lIHZvaWQgc2V0KE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwJiBtYXAsIENvbnN0
cmFpbnRTZXRUeXBlIHNldFR5cGUsIEFTQ0lJTGl0ZXJhbCB0eXBlQXNTdHJpbmcsIE1lZGlhQ29u
c3RyYWludFR5cGUgdHlwZSwgY29uc3Qgc3RkOjpvcHRpb25hbDxUPiYgdmFsdWUpCiB7CiAgICAg
aWYgKCF2YWx1ZSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTU4LDIxICsxNTgsMjEgQEAgdGVtcGxh
dGU8dHlwZW5hbWUgVD4gc3RhdGljIGlubGluZSB2b2lkIHNldChNZWRpYVRyYWNrQ29uc3RyYWlu
dFNldE1hcCYgbWFwLCBDb24KIHN0YXRpYyBNZWRpYVRyYWNrQ29uc3RyYWludFNldE1hcCBjb252
ZXJ0VG9JbnRlcm5hbEZvcm0oQ29uc3RyYWludFNldFR5cGUgc2V0VHlwZSwgY29uc3QgTWVkaWFU
cmFja0NvbnN0cmFpbnRTZXQmIGNvbnN0cmFpbnRTZXQpCiB7CiAgICAgTWVkaWFUcmFja0NvbnN0
cmFpbnRTZXRNYXAgcmVzdWx0OwotICAgIHNldChyZXN1bHQsIHNldFR5cGUsICJ3aWR0aCIsIE1l
ZGlhQ29uc3RyYWludFR5cGU6OldpZHRoLCBjb25zdHJhaW50U2V0LndpZHRoKTsKLSAgICBzZXQo
cmVzdWx0LCBzZXRUeXBlLCAiaGVpZ2h0IiwgTWVkaWFDb25zdHJhaW50VHlwZTo6SGVpZ2h0LCBj
b25zdHJhaW50U2V0LmhlaWdodCk7Ci0gICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgImFzcGVjdFJh
dGlvIiwgTWVkaWFDb25zdHJhaW50VHlwZTo6QXNwZWN0UmF0aW8sIGNvbnN0cmFpbnRTZXQuYXNw
ZWN0UmF0aW8pOwotICAgIHNldChyZXN1bHQsIHNldFR5cGUsICJmcmFtZVJhdGUiLCBNZWRpYUNv
bnN0cmFpbnRUeXBlOjpGcmFtZVJhdGUsIGNvbnN0cmFpbnRTZXQuZnJhbWVSYXRlKTsKLSAgICBz
ZXQocmVzdWx0LCBzZXRUeXBlLCAiZmFjaW5nTW9kZSIsIE1lZGlhQ29uc3RyYWludFR5cGU6OkZh
Y2luZ01vZGUsIGNvbnN0cmFpbnRTZXQuZmFjaW5nTW9kZSk7Ci0gICAgc2V0KHJlc3VsdCwgc2V0
VHlwZSwgInZvbHVtZSIsIE1lZGlhQ29uc3RyYWludFR5cGU6OlZvbHVtZSwgY29uc3RyYWludFNl
dC52b2x1bWUpOwotICAgIHNldChyZXN1bHQsIHNldFR5cGUsICJzYW1wbGVSYXRlIiwgTWVkaWFD
b25zdHJhaW50VHlwZTo6U2FtcGxlUmF0ZSwgY29uc3RyYWludFNldC5zYW1wbGVSYXRlKTsKLSAg
ICBzZXQocmVzdWx0LCBzZXRUeXBlLCAic2FtcGxlU2l6ZSIsIE1lZGlhQ29uc3RyYWludFR5cGU6
OlNhbXBsZVNpemUsIGNvbnN0cmFpbnRTZXQuc2FtcGxlU2l6ZSk7Ci0gICAgc2V0KHJlc3VsdCwg
c2V0VHlwZSwgImVjaG9DYW5jZWxsYXRpb24iLCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpFY2hvQ2Fu
Y2VsbGF0aW9uLCBjb25zdHJhaW50U2V0LmVjaG9DYW5jZWxsYXRpb24pOworICAgIHNldChyZXN1
bHQsIHNldFR5cGUsICJ3aWR0aCJfcywgTWVkaWFDb25zdHJhaW50VHlwZTo6V2lkdGgsIGNvbnN0
cmFpbnRTZXQud2lkdGgpOworICAgIHNldChyZXN1bHQsIHNldFR5cGUsICJoZWlnaHQiX3MsIE1l
ZGlhQ29uc3RyYWludFR5cGU6OkhlaWdodCwgY29uc3RyYWludFNldC5oZWlnaHQpOworICAgIHNl
dChyZXN1bHQsIHNldFR5cGUsICJhc3BlY3RSYXRpbyJfcywgTWVkaWFDb25zdHJhaW50VHlwZTo6
QXNwZWN0UmF0aW8sIGNvbnN0cmFpbnRTZXQuYXNwZWN0UmF0aW8pOworICAgIHNldChyZXN1bHQs
IHNldFR5cGUsICJmcmFtZVJhdGUiX3MsIE1lZGlhQ29uc3RyYWludFR5cGU6OkZyYW1lUmF0ZSwg
Y29uc3RyYWludFNldC5mcmFtZVJhdGUpOworICAgIHNldChyZXN1bHQsIHNldFR5cGUsICJmYWNp
bmdNb2RlIl9zLCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpGYWNpbmdNb2RlLCBjb25zdHJhaW50U2V0
LmZhY2luZ01vZGUpOworICAgIHNldChyZXN1bHQsIHNldFR5cGUsICJ2b2x1bWUiX3MsIE1lZGlh
Q29uc3RyYWludFR5cGU6OlZvbHVtZSwgY29uc3RyYWludFNldC52b2x1bWUpOworICAgIHNldChy
ZXN1bHQsIHNldFR5cGUsICJzYW1wbGVSYXRlIl9zLCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpTYW1w
bGVSYXRlLCBjb25zdHJhaW50U2V0LnNhbXBsZVJhdGUpOworICAgIHNldChyZXN1bHQsIHNldFR5
cGUsICJzYW1wbGVTaXplIl9zLCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpTYW1wbGVTaXplLCBjb25z
dHJhaW50U2V0LnNhbXBsZVNpemUpOworICAgIHNldChyZXN1bHQsIHNldFR5cGUsICJlY2hvQ2Fu
Y2VsbGF0aW9uIl9zLCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpFY2hvQ2FuY2VsbGF0aW9uLCBjb25z
dHJhaW50U2V0LmVjaG9DYW5jZWxsYXRpb24pOwogICAgIC8vIEZJWE1FOiBhZGQgbGF0ZW5jeQog
ICAgIC8vIEZJWE1FOiBhZGQgY2hhbm5lbENvdW50Ci0gICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwg
ImRldmljZUlkIiwgTWVkaWFDb25zdHJhaW50VHlwZTo6RGV2aWNlSWQsIGNvbnN0cmFpbnRTZXQu
ZGV2aWNlSWQpOwotICAgIHNldChyZXN1bHQsIHNldFR5cGUsICJncm91cElkIiwgTWVkaWFDb25z
dHJhaW50VHlwZTo6R3JvdXBJZCwgY29uc3RyYWludFNldC5ncm91cElkKTsKLSAgICBzZXQocmVz
dWx0LCBzZXRUeXBlLCAiZGlzcGxheVN1cmZhY2UiLCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpEaXNw
bGF5U3VyZmFjZSwgY29uc3RyYWludFNldC5kaXNwbGF5U3VyZmFjZSk7Ci0gICAgc2V0KHJlc3Vs
dCwgc2V0VHlwZSwgImxvZ2ljYWxTdXJmYWNlIiwgTWVkaWFDb25zdHJhaW50VHlwZTo6TG9naWNh
bFN1cmZhY2UsIGNvbnN0cmFpbnRTZXQubG9naWNhbFN1cmZhY2UpOworICAgIHNldChyZXN1bHQs
IHNldFR5cGUsICJkZXZpY2VJZCJfcywgTWVkaWFDb25zdHJhaW50VHlwZTo6RGV2aWNlSWQsIGNv
bnN0cmFpbnRTZXQuZGV2aWNlSWQpOworICAgIHNldChyZXN1bHQsIHNldFR5cGUsICJncm91cElk
Il9zLCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpHcm91cElkLCBjb25zdHJhaW50U2V0Lmdyb3VwSWQp
OworICAgIHNldChyZXN1bHQsIHNldFR5cGUsICJkaXNwbGF5U3VyZmFjZSJfcywgTWVkaWFDb25z
dHJhaW50VHlwZTo6RGlzcGxheVN1cmZhY2UsIGNvbnN0cmFpbnRTZXQuZGlzcGxheVN1cmZhY2Up
OworICAgIHNldChyZXN1bHQsIHNldFR5cGUsICJsb2dpY2FsU3VyZmFjZSJfcywgTWVkaWFDb25z
dHJhaW50VHlwZTo6TG9naWNhbFN1cmZhY2UsIGNvbnN0cmFpbnRTZXQubG9naWNhbFN1cmZhY2Up
OwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDSWNlQ2FuZGlkYXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vUlRDSWNlQ2FuZGlkYXRlLmNwcAppbmRleCA5ZjcwNmRmNmRmNjVl
N2Y5NTgxNTc1MTQwMjI0OGUwOGM3YTIzZmEwLi5iYjdlZjc0MTI2MTljMDU5ZGNlYzc0ZDY4ZWUy
ZGJlMGM5M2FiYzI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL1JUQ0ljZUNhbmRpZGF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENJY2VDYW5kaWRhdGUuY3BwCkBAIC01NCw3ICs1NCw3IEBAIFJUQ0ljZUNhbmRp
ZGF0ZTo6UlRDSWNlQ2FuZGlkYXRlKGNvbnN0IFN0cmluZyYgY2FuZGlkYXRlLCBjb25zdCBTdHJp
bmcmIHNkcE1pZCwKIEV4Y2VwdGlvbk9yPFJlZjxSVENJY2VDYW5kaWRhdGU+PiBSVENJY2VDYW5k
aWRhdGU6OmNyZWF0ZShjb25zdCBSVENJY2VDYW5kaWRhdGVJbml0JiBkaWN0aW9uYXJ5KQogewog
ICAgIGlmIChkaWN0aW9uYXJ5LnNkcE1pZC5pc051bGwoKSAmJiAhZGljdGlvbmFyeS5zZHBNTGlu
ZUluZGV4KQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiQ2FuZGlkYXRl
IG11c3Qgbm90IGhhdmUgYm90aCBudWxsIHNkcE1pZCBhbmQgc2RwTUxpbmVJbmRleCIgfTsKKyAg
ICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIkNhbmRpZGF0ZSBtdXN0IG5vdCBo
YXZlIGJvdGggbnVsbCBzZHBNaWQgYW5kIHNkcE1MaW5lSW5kZXgiX3MgfTsKIAogICAgIGF1dG8g
ZmllbGRzID0gdmFsdWVPckRlZmF1bHQocGFyc2VJY2VDYW5kaWRhdGVTRFAoZGljdGlvbmFyeS5j
YW5kaWRhdGUpKTsKICAgICBmaWVsZHMudXNlcm5hbWVGcmFnbWVudCA9IGRpY3Rpb25hcnkudXNl
cm5hbWVGcmFnbWVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAKaW5kZXggOTBkZTYzOTkzNGVkNjFjNWMwYjEw
MTJjMGFhNTM5N2RkMGQ4YjMyYS4uNDE1NjZhNTU1ZjYyZWU1MDhlMGRkMWExZGQ3MDg4NGVmNzUw
ZjVhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQ
ZWVyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9SVENQZWVyQ29ubmVjdGlvbi5jcHAKQEAgLTI3Myw3ICsyNzMsNyBAQCB2b2lkIFJUQ1BlZXJD
b25uZWN0aW9uOjpzZXRMb2NhbERlc2NyaXB0aW9uKHN0ZDo6b3B0aW9uYWw8UlRDTG9jYWxTZXNz
aW9uRGVzY3JpcAogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgQUxXQVlTX0xPRyhMT0dJ
REVOVElGSUVSLCAiU2V0dGluZyBsb2NhbCBkZXNjcmlwdGlvbiB0bzpcbiIsIGxvY2FsRGVzY3Jp
cHRpb24gPyBsb2NhbERlc2NyaXB0aW9uLT5zZHAgOiAiJyciKTsKKyAgICBBTFdBWVNfTE9HKExP
R0lERU5USUZJRVIsICJTZXR0aW5nIGxvY2FsIGRlc2NyaXB0aW9uIHRvOlxuIiwgbG9jYWxEZXNj
cmlwdGlvbiA/IGxvY2FsRGVzY3JpcHRpb24tPnNkcCA6ICInJyJfcyk7CiAgICAgY2hhaW5PcGVy
YXRpb24oV1RGTW92ZShwcm9taXNlKSwgW3RoaXMsIGxvY2FsRGVzY3JpcHRpb24gPSBXVEZNb3Zl
KGxvY2FsRGVzY3JpcHRpb24pXShhdXRvJiYgcHJvbWlzZSkgbXV0YWJsZSB7CiAgICAgICAgIGF1
dG8gdHlwZSA9IHR5cGVGb3JTZXRMb2NhbERlc2NyaXB0aW9uKGxvY2FsRGVzY3JpcHRpb24sIG1f
c2lnbmFsaW5nU3RhdGUpOwogICAgICAgICBTdHJpbmcgc2RwOwpAQCAtMzQ0LDcgKzM0NCw3IEBA
IHZvaWQgUlRDUGVlckNvbm5lY3Rpb246OmFkZEljZUNhbmRpZGF0ZShDYW5kaWRhdGUmJiBydGND
YW5kaWRhdGUsIFJlZjxEZWZlcnJlZFByCiAgICAgICAgIH0pOwogICAgIH0KIAotICAgIEFMV0FZ
U19MT0coTE9HSURFTlRJRklFUiwgIlJlY2VpdmVkIGljZSBjYW5kaWRhdGU6XG4iLCBjYW5kaWRh
dGUgPyBjYW5kaWRhdGUtPmNhbmRpZGF0ZSgpIDogIm51bGwiKTsKKyAgICBBTFdBWVNfTE9HKExP
R0lERU5USUZJRVIsICJSZWNlaXZlZCBpY2UgY2FuZGlkYXRlOlxuIiwgY2FuZGlkYXRlID8gY2Fu
ZGlkYXRlLT5jYW5kaWRhdGUoKSA6ICJudWxsIl9zKTsKIAogICAgIGlmIChleGNlcHRpb24pIHsK
ICAgICAgICAgcHJvbWlzZS0+cmVqZWN0KCpleGNlcHRpb24pOwpAQCAtMzc5LDEzICszNzksMTMg
QEAgc3RkOjpvcHRpb25hbDxib29sPiBSVENQZWVyQ29ubmVjdGlvbjo6Y2FuVHJpY2tsZUljZUNh
bmRpZGF0ZXMoKSBjb25zdAogRXhjZXB0aW9uT3I8VmVjdG9yPE1lZGlhRW5kcG9pbnRDb25maWd1
cmF0aW9uOjpJY2VTZXJ2ZXJJbmZvPj4gUlRDUGVlckNvbm5lY3Rpb246OmljZVNlcnZlcnNGcm9t
Q29uZmlndXJhdGlvbihSVENDb25maWd1cmF0aW9uJiBuZXdDb25maWd1cmF0aW9uLCBjb25zdCBS
VENDb25maWd1cmF0aW9uKiBleGlzdGluZ0NvbmZpZ3VyYXRpb24sIGJvb2wgaXNMb2NhbERlc2Ny
aXB0aW9uU2V0KQogewogICAgIGlmIChleGlzdGluZ0NvbmZpZ3VyYXRpb24gJiYgbmV3Q29uZmln
dXJhdGlvbi5idW5kbGVQb2xpY3kgIT0gZXhpc3RpbmdDb25maWd1cmF0aW9uLT5idW5kbGVQb2xp
Y3kpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3Is
ICJCdW5kbGVQb2xpY3kgZG9lcyBub3QgbWF0Y2ggZXhpc3RpbmcgcG9saWN5IiB9OworICAgICAg
ICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yLCAiQnVuZGxlUG9s
aWN5IGRvZXMgbm90IG1hdGNoIGV4aXN0aW5nIHBvbGljeSJfcyB9OwogCiAgICAgaWYgKGV4aXN0
aW5nQ29uZmlndXJhdGlvbiAmJiBuZXdDb25maWd1cmF0aW9uLnJ0Y3BNdXhQb2xpY3kgIT0gZXhp
c3RpbmdDb25maWd1cmF0aW9uLT5ydGNwTXV4UG9saWN5KQotICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yLCAiUlRDUE11eFBvbGljeSBkb2VzIG5vdCBt
YXRjaCBleGlzdGluZyBwb2xpY3kiIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZh
bGlkTW9kaWZpY2F0aW9uRXJyb3IsICJSVENQTXV4UG9saWN5IGRvZXMgbm90IG1hdGNoIGV4aXN0
aW5nIHBvbGljeSJfcyB9OwogCiAgICAgaWYgKGV4aXN0aW5nQ29uZmlndXJhdGlvbiAmJiBuZXdD
b25maWd1cmF0aW9uLmljZUNhbmRpZGF0ZVBvb2xTaXplICE9IGV4aXN0aW5nQ29uZmlndXJhdGlv
bi0+aWNlQ2FuZGlkYXRlUG9vbFNpemUgJiYgaXNMb2NhbERlc2NyaXB0aW9uU2V0KQotICAgICAg
ICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yLCAiSWNlVHJhbnNw
b3J0UG9saWN5IHBvb2wgc2l6ZSBkb2VzIG5vdCBtYXRjaCBleGlzdGluZyBwb29sIHNpemUiIH07
CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3IsICJJ
Y2VUcmFuc3BvcnRQb2xpY3kgcG9vbCBzaXplIGRvZXMgbm90IG1hdGNoIGV4aXN0aW5nIHBvb2wg
c2l6ZSJfcyB9OwogCiAgICAgVmVjdG9yPE1lZGlhRW5kcG9pbnRDb25maWd1cmF0aW9uOjpJY2VT
ZXJ2ZXJJbmZvPiBzZXJ2ZXJzOwogICAgIGlmIChuZXdDb25maWd1cmF0aW9uLmljZVNlcnZlcnMp
IHsKQEAgLTQxNCwxOCArNDE0LDE4IEBAIEV4Y2VwdGlvbk9yPFZlY3RvcjxNZWRpYUVuZHBvaW50
Q29uZmlndXJhdGlvbjo6SWNlU2VydmVySW5mbz4+IFJUQ1BlZXJDb25uZWN0aW9uCiAKICAgICAg
ICAgICAgIGZvciAoYXV0byYgc2VydmVyVVJMIDogc2VydmVyVVJMcykgewogICAgICAgICAgICAg
ICAgIGlmIChzZXJ2ZXJVUkwuaXNOdWxsKCkpCi0gICAgICAgICAgICAgICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBUeXBlRXJyb3IsICJCYWQgSUNFIHNlcnZlciBVUkwiIH07CisgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJCYWQgSUNFIHNlcnZlciBV
UkwiX3MgfTsKICAgICAgICAgICAgICAgICBpZiAoc2VydmVyVVJMLnByb3RvY29sSXMoInR1cm4i
KSB8fCBzZXJ2ZXJVUkwucHJvdG9jb2xJcygidHVybnMiKSkgewogICAgICAgICAgICAgICAgICAg
ICBpZiAoc2VydmVyLmNyZWRlbnRpYWwuaXNOdWxsKCkgfHwgc2VydmVyLnVzZXJuYW1lLmlzTnVs
bCgpKQotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRB
Y2Nlc3NFcnJvciwgIlRVUk4vVFVSTlMgc2VydmVyIHJlcXVpcmVzIGJvdGggdXNlcm5hbWUgYW5k
IGNyZWRlbnRpYWwiIH07CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9u
IHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiVFVSTi9UVVJOUyBzZXJ2ZXIgcmVxdWlyZXMgYm90aCB1
c2VybmFtZSBhbmQgY3JlZGVudGlhbCJfcyB9OwogICAgICAgICAgICAgICAgICAgICAvLyBodHRw
czovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjODQ4OSNzZWN0aW9uLTE0LjMKICAgICAgICAgICAg
ICAgICAgICAgaWYgKHNlcnZlci5jcmVkZW50aWFsLmxlbmd0aCgpID4gNjQgfHwgc2VydmVyLnVz
ZXJuYW1lLmxlbmd0aCgpID4gNjQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0ZXhw
ciBzaXplX3QgTWF4VHVyblVzZXJuYW1lTGVuZ3RoID0gNTA5OwogICAgICAgICAgICAgICAgICAg
ICAgICAgaWYgKHNlcnZlci5jcmVkZW50aWFsLnV0ZjgoKS5sZW5ndGgoKSA+IE1heFR1cm5Vc2Vy
bmFtZUxlbmd0aCB8fCBzZXJ2ZXIudXNlcm5hbWUudXRmOCgpLmxlbmd0aCgpID4gTWF4VHVyblVz
ZXJuYW1lTGVuZ3RoKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBFeGNlcHRp
b24geyBUeXBlRXJyb3IsICJUVVJOL1RVUk5TIHVzZXJuYW1lIGFuZC9vciBjcmVkZW50aWFsIGFy
ZSB0b28gbG9uZyIgfTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgVHlwZUVycm9yLCAiVFVSTi9UVVJOUyB1c2VybmFtZSBhbmQvb3IgY3JlZGVudGlhbCBh
cmUgdG9vIGxvbmciX3MgfTsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
IH0gZWxzZSBpZiAoIXNlcnZlclVSTC5wcm90b2NvbElzKCJzdHVuIikpCi0gICAgICAgICAgICAg
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciwgIklDRSBzZXJ2ZXIg
cHJvdG9jb2wgbm90IHN1cHBvcnRlZCIgfTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEV4
Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yLCAiSUNFIHNlcnZlciBwcm90b2NvbCBub3Qgc3Vw
cG9ydGVkIl9zIH07CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAoc2VydmVyVVJMcy5z
aXplKCkpCiAgICAgICAgICAgICAgICAgc2VydmVycy51bmNoZWNrZWRBcHBlbmQoeyBXVEZNb3Zl
KHNlcnZlclVSTHMpLCBzZXJ2ZXIuY3JlZGVudGlhbCwgc2VydmVyLnVzZXJuYW1lIH0pOwpAQCAt
NDQzLDcgKzQ0Myw3IEBAIEV4Y2VwdGlvbk9yPFZlY3RvcjxNZWRpYUVuZHBvaW50Q29uZmlndXJh
dGlvbjo6Q2VydGlmaWNhdGVQRU0+PiBSVENQZWVyQ29ubmVjdGlvCiAgICAgY2VydGlmaWNhdGVz
LnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoY29uZmlndXJhdGlvbi5jZXJ0aWZpY2F0ZXMuc2l6ZSgp
KTsKICAgICBmb3IgKGF1dG8mIGNlcnRpZmljYXRlIDogY29uZmlndXJhdGlvbi5jZXJ0aWZpY2F0
ZXMpIHsKICAgICAgICAgaWYgKCFvcmlnaW4uaXNTYW1lT3JpZ2luQXMoY2VydGlmaWNhdGUtPm9y
aWdpbigpKSkKLSAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJy
b3IsICJDZXJ0aWZpY2F0ZSBkb2VzIG5vdCBoYXZlIGEgdmFsaWQgb3JpZ2luIiB9OworICAgICAg
ICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwgIkNlcnRpZmljYXRl
IGRvZXMgbm90IGhhdmUgYSB2YWxpZCBvcmlnaW4iX3MgfTsKIAogICAgICAgICBpZiAoY3VycmVu
dE1pbGxpU2Vjb25kcyA+IGNlcnRpZmljYXRlLT5leHBpcmVzKCkpCiAgICAgICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiQ2VydGlmaWNhdGUgaGFzIGV4cGly
ZWQiX3MgfTsKQEAgLTQ2Niw3ICs0NjYsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBSVENQZWVyQ29u
bmVjdGlvbjo6aW5pdGlhbGl6ZUNvbmZpZ3VyYXRpb24oUlRDQ29uZmlndXJhdGlvbiYmCiAgICAg
ICAgIHJldHVybiBjZXJ0aWZpY2F0ZXMucmVsZWFzZUV4Y2VwdGlvbigpOwogCiAgICAgaWYgKCFt
X2JhY2tlbmQtPnNldENvbmZpZ3VyYXRpb24oeyBzZXJ2ZXJzLnJlbGVhc2VSZXR1cm5WYWx1ZSgp
LCBjb25maWd1cmF0aW9uLmljZVRyYW5zcG9ydFBvbGljeSwgY29uZmlndXJhdGlvbi5idW5kbGVQ
b2xpY3ksIGNvbmZpZ3VyYXRpb24ucnRjcE11eFBvbGljeSwgY29uZmlndXJhdGlvbi5pY2VDYW5k
aWRhdGVQb29sU2l6ZSwgY2VydGlmaWNhdGVzLnJlbGVhc2VSZXR1cm5WYWx1ZSgpIH0pKQotICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiQmFkIENvbmZpZ3Vy
YXRpb24gUGFyYW1ldGVycyIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRB
Y2Nlc3NFcnJvciwgIkJhZCBDb25maWd1cmF0aW9uIFBhcmFtZXRlcnMiX3MgfTsKIAogICAgIG1f
Y29uZmlndXJhdGlvbiA9IFdURk1vdmUoY29uZmlndXJhdGlvbik7CiAgICAgcmV0dXJuIHsgfTsK
QEAgLTQ4NSwxOSArNDg1LDE5IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFJUQ1BlZXJDb25uZWN0aW9u
OjpzZXRDb25maWd1cmF0aW9uKFJUQ0NvbmZpZ3VyYXRpb24mJiBjb25maWd1CiAKICAgICBpZiAo
Y29uZmlndXJhdGlvbi5jZXJ0aWZpY2F0ZXMuc2l6ZSgpKSB7CiAgICAgICAgIGlmIChjb25maWd1
cmF0aW9uLmNlcnRpZmljYXRlcy5zaXplKCkgIT0gbV9jb25maWd1cmF0aW9uLmNlcnRpZmljYXRl
cy5zaXplKCkpCi0gICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZE1vZGlmaWNh
dGlvbkVycm9yLCAiQ2VydGlmaWNhdGVzIHBhcmFtZXRlcnMgYXJlIGRpZmZlcmVudCIgfTsKKyAg
ICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3IsICJD
ZXJ0aWZpY2F0ZXMgcGFyYW1ldGVycyBhcmUgZGlmZmVyZW50Il9zIH07CiAKICAgICAgICAgZm9y
IChhdXRvJiBjZXJ0aWZpY2F0ZSA6IGNvbmZpZ3VyYXRpb24uY2VydGlmaWNhdGVzKSB7CiAgICAg
ICAgICAgICBib29sIGlzVGhlcmUgPSBtX2NvbmZpZ3VyYXRpb24uY2VydGlmaWNhdGVzLmZpbmRJ
ZihbJmNlcnRpZmljYXRlXShjb25zdCBhdXRvJiBpdGVtKSB7CiAgICAgICAgICAgICAgICAgcmV0
dXJuIGl0ZW0uZ2V0KCkgPT0gY2VydGlmaWNhdGUuZ2V0KCk7CiAgICAgICAgICAgICB9KSAhPSBu
b3RGb3VuZDsKICAgICAgICAgICAgIGlmICghaXNUaGVyZSkKLSAgICAgICAgICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yLCAiQSBjZXJ0aWZpY2F0ZSBn
aXZlbiBpbiBjb25zdHJ1Y3RvciBpcyBub3QgcHJlc2VudCIgfTsKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yLCAiQSBjZXJ0aWZpY2F0
ZSBnaXZlbiBpbiBjb25zdHJ1Y3RvciBpcyBub3QgcHJlc2VudCJfcyB9OwogICAgICAgICB9CiAg
ICAgfQogCiAgICAgaWYgKCFtX2JhY2tlbmQtPnNldENvbmZpZ3VyYXRpb24oeyBzZXJ2ZXJzLnJl
bGVhc2VSZXR1cm5WYWx1ZSgpLCBjb25maWd1cmF0aW9uLmljZVRyYW5zcG9ydFBvbGljeSwgY29u
ZmlndXJhdGlvbi5idW5kbGVQb2xpY3ksIGNvbmZpZ3VyYXRpb24ucnRjcE11eFBvbGljeSwgY29u
ZmlndXJhdGlvbi5pY2VDYW5kaWRhdGVQb29sU2l6ZSwgeyB9IH0pKQotICAgICAgICByZXR1cm4g
RXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiQmFkIENvbmZpZ3VyYXRpb24gUGFyYW1l
dGVycyIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwg
IkJhZCBDb25maWd1cmF0aW9uIFBhcmFtZXRlcnMiX3MgfTsKIAogICAgIG1fY29uZmlndXJhdGlv
biA9IFdURk1vdmUoY29uZmlndXJhdGlvbik7CiAgICAgcmV0dXJuIHsgfTsKQEAgLTkxOSw3ICs5
MTksNyBAQCBjb25zdCBWZWN0b3I8UmVmUHRyPFJUQ1J0cFRyYW5zY2VpdmVyPj4mIFJUQ1BlZXJD
b25uZWN0aW9uOjpnZXRUcmFuc2NlaXZlcnMoKSBjbwogdm9pZCBSVENQZWVyQ29ubmVjdGlvbjo6
Y2hhaW5PcGVyYXRpb24oUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlLCBGdW5jdGlvbjx2
b2lkKFJlZjxEZWZlcnJlZFByb21pc2U+JiYpPiYmIG9wZXJhdGlvbikKIHsKICAgICBpZiAoaXND
bG9zZWQoKSkgewotICAgICAgICBwcm9taXNlLT5yZWplY3QoSW52YWxpZFN0YXRlRXJyb3IsICJS
VENQZWVyQ29ubmVjdGlvbiBpcyBjbG9zZWQiKTsKKyAgICAgICAgcHJvbWlzZS0+cmVqZWN0KElu
dmFsaWRTdGF0ZUVycm9yLCAiUlRDUGVlckNvbm5lY3Rpb24gaXMgY2xvc2VkIl9zKTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIApAQCAtOTI3LDcgKzkyNyw3IEBAIHZvaWQgUlRDUGVlckNvbm5l
Y3Rpb246OmNoYWluT3BlcmF0aW9uKFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSwgRnVu
Y3Rpb248CiAgICAgICAgIEFTU0VSVChtX2hhc1BlbmRpbmdPcGVyYXRpb24pOwogICAgICAgICBp
ZiAoaXNDbG9zZWQoKSkgewogICAgICAgICAgICAgZm9yIChhdXRvJiBvcGVyYXRpb24gOiBzdGQ6
OmV4Y2hhbmdlKG1fb3BlcmF0aW9ucywgeyB9KSkKLSAgICAgICAgICAgICAgICBvcGVyYXRpb24u
Zmlyc3QtPnJlamVjdChJbnZhbGlkU3RhdGVFcnJvciwgIlJUQ1BlZXJDb25uZWN0aW9uIGlzIGNs
b3NlZCIpOworICAgICAgICAgICAgICAgIG9wZXJhdGlvbi5maXJzdC0+cmVqZWN0KEludmFsaWRT
dGF0ZUVycm9yLCAiUlRDUGVlckNvbm5lY3Rpb24gaXMgY2xvc2VkIl9zKTsKICAgICAgICAgICAg
IG1faGFzUGVuZGluZ09wZXJhdGlvbiA9IGZhbHNlOwogICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JU
Q1J0cFNGcmFtZVRyYW5zZm9ybWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXIuY3BwCmluZGV4IGNiM2Y3Y2Q5YmYyMTIzZTkx
ZDJkZjdhNDUxZDFjNmU4MTg5ZWQ0NGQuLjRmMjlhYjE1ZTZiNTY3NzE3MzBhZjk0NDJjZTBiNDE0
MjcwZTE2YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXIuY3BwCkBAIC0zNDYsNyArMzQ2LDcg
QEAgUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI6OlRyYW5zZm9ybVJlc3VsdCBSVENSdHBTRnJhbWVU
cmFuc2Zvcm1lcjo6ZW5jcnlwdEZyYW1lKFMKIFJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyOjpUcmFu
c2Zvcm1SZXN1bHQgUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI6OnRyYW5zZm9ybShTcGFuPGNvbnN0
IHVpbnQ4X3Q+IGRhdGEpCiB7CiAgICAgaWYgKCFtX2hhc0tleSkKLSAgICAgICAgcmV0dXJuIG1h
a2VVbmV4cGVjdGVkKEVycm9ySW5mb3JtYXRpb24geyBFcnJvcjo6S2V5SUQsICAiS2V5IGlzIG5v
dCBpbml0aWFsaXplZCIsIDAgfSk7CisgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChFcnJv
ckluZm9ybWF0aW9uIHsgRXJyb3I6OktleUlELCAgIktleSBpcyBub3QgaW5pdGlhbGl6ZWQiX3Ms
IDAgfSk7CiAKICAgICByZXR1cm4gbV9pc0VuY3J5cHRpbmcgPyBlbmNyeXB0RnJhbWUoZGF0YSkg
OiBkZWNyeXB0RnJhbWUoZGF0YSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2Vi
UlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcAppbmRleCAxMzMzMWFjYzA0NDBjZDAxNzg5Yzcz
MTU4MGViNTY5MDQxYzM4MWNkLi4zMjNjMjgxM2MzMjRlZmVlNjk4ZjRjMGU0YjlmZmZjYzc5ZDRk
NmI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndl
YnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1BlZXJDb25uZWN0aW9u
QmFja2VuZC5jcHAKQEAgLTI2MCw3ICsyNjAsNyBAQCB2b2lkIExpYldlYlJUQ1BlZXJDb25uZWN0
aW9uQmFja2VuZDo6ZG9DcmVhdGVPZmZlcihSVENPZmZlck9wdGlvbnMmJiBvcHRpb25zKQogdm9p
ZCBMaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OmRvQ3JlYXRlQW5zd2VyKFJUQ0Fuc3dl
ck9wdGlvbnMmJikKIHsKICAgICBpZiAoIW1faXNSZW1vdGVEZXNjcmlwdGlvblNldCkgewotICAg
ICAgICBjcmVhdGVBbnN3ZXJGYWlsZWQoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJO
byByZW1vdGUgZGVzY3JpcHRpb24gc2V0IiB9KTsKKyAgICAgICAgY3JlYXRlQW5zd2VyRmFpbGVk
KEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiTm8gcmVtb3RlIGRlc2NyaXB0aW9uIHNl
dCJfcyB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBtX2VuZHBvaW50LT5kb0NyZWF0
ZUFuc3dlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9saWJ3ZWJydGMvTGliV2ViUlRDUnRwVHJhbnNjZWl2ZXJCYWNrZW5kLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1J0cFRyYW5zY2Vp
dmVyQmFja2VuZC5jcHAKaW5kZXggZDFmNzNhZDdmNDc4ZjYwNDcyNWIwNjA5OWZkZTY5MGM3M2Vk
NWI0NS4uNDE3NmU4ZDZmNzgzYTUyNWE4MGY3YTYwZWFkYzY3ZjZiZmQ3MDE2YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRD
UnRwVHJhbnNjZWl2ZXJCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENSdHBUcmFuc2NlaXZlckJhY2tlbmQuY3BwCkBA
IC04OSw3ICs4OSw3IEBAIHN0YXRpYyBpbmxpbmUgRXhjZXB0aW9uT3I8d2VicnRjOjpSdHBDb2Rl
Y0NhcGFiaWxpdHk+IHRvUnRwQ29kZWNDYXBhYmlsaXR5KGNvbnN0CiAgICAgZWxzZSBpZiAoY29k
ZWMubWltZVR5cGUuc3RhcnRzV2l0aCgiYXVkaW8vIikpCiAgICAgICAgIHJ0Y0NvZGVjLmtpbmQg
PSBjcmlja2V0OjpNRURJQV9UWVBFX0FVRElPOwogICAgIGVsc2UKLSAgICAgICAgcmV0dXJuIEV4
Y2VwdGlvbiB7IEludmFsaWRNb2RpZmljYXRpb25FcnJvciwgIlJUQ1J0cENvZGVjQ2FwYWJpbGl0
eSBiYWQgbWltZVR5cGUiIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkTW9k
aWZpY2F0aW9uRXJyb3IsICJSVENSdHBDb2RlY0NhcGFiaWxpdHkgYmFkIG1pbWVUeXBlIl9zIH07
CiAKICAgICBydGNDb2RlYy5uYW1lID0gY29kZWMubWltZVR5cGUuc3Vic3RyaW5nKDYpLnV0Zjgo
KS5kYXRhKCk7CiAgICAgcnRjQ29kZWMuY2xvY2tfcmF0ZSA9IGNvZGVjLmNsb2NrUmF0ZTsKQEAg
LTk5LDcgKzk5LDcgQEAgc3RhdGljIGlubGluZSBFeGNlcHRpb25Pcjx3ZWJydGM6OlJ0cENvZGVj
Q2FwYWJpbGl0eT4gdG9SdHBDb2RlY0NhcGFiaWxpdHkoY29uc3QKICAgICBmb3IgKGF1dG8gcGFy
YW1ldGVyIDogU3RyaW5nVmlldyhjb2RlYy5zZHBGbXRwTGluZSkuc3BsaXQoJzsnKSkgewogICAg
ICAgICBhdXRvIHBvc2l0aW9uID0gcGFyYW1ldGVyLmZpbmQoJz0nKTsKICAgICAgICAgaWYgKHBv
c2l0aW9uID09IG5vdEZvdW5kKQotICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFs
aWRNb2RpZmljYXRpb25FcnJvciwgIlJUQ1J0cENvZGVjQ2FwYWJpbGl0eSBzZHBGbXRMaW5lIGJh
ZGx5IGZvcm1hdGVkIiB9OworICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRN
b2RpZmljYXRpb25FcnJvciwgIlJUQ1J0cENvZGVjQ2FwYWJpbGl0eSBzZHBGbXRMaW5lIGJhZGx5
IGZvcm1hdGVkIl9zIH07CiAgICAgICAgIHJ0Y0NvZGVjLnBhcmFtZXRlcnMuZW1wbGFjZShwYXJh
bWV0ZXIuc3Vic3RyaW5nKDAsIHBvc2l0aW9uKS51dGY4KCkuZGF0YSgpLCBwYXJhbWV0ZXIuc3Vi
c3RyaW5nKHBvc2l0aW9uICsgMSkudXRmOCgpLmRhdGEoKSk7CiAgICAgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENV
dGlscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9M
aWJXZWJSVENVdGlscy5jcHAKaW5kZXggNDVlNGQxNzM2M2ZmMWI2NDA3ZTNjMDk5YzBmYzdmNDI4
MmZhNjhiMC4uOWYxOTZmMzc4YmI3Nzc2NzNjZjcxMjBjYWE0ZmI0NjQ1MDFmNGE4NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2Vi
UlRDVXRpbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGli
d2VicnRjL0xpYldlYlJUQ1V0aWxzLmNwcApAQCAtMzYwLDcgKzM2MCw3IEBAIEV4Y2VwdGlvbiB0
b0V4Y2VwdGlvbihjb25zdCB3ZWJydGM6OlJUQ0Vycm9yJiBlcnJvcikKIHsKICAgICBBU1NFUlQo
IWVycm9yLm9rKCkpOwogCi0gICAgcmV0dXJuIEV4Y2VwdGlvbiB7IHRvRXhjZXB0aW9uQ29kZShl
cnJvci50eXBlKCkpLCBlcnJvci5tZXNzYWdlKCkgfTsKKyAgICByZXR1cm4gRXhjZXB0aW9uIHsg
dG9FeGNlcHRpb25Db2RlKGVycm9yLnR5cGUoKSksIFN0cmluZyB7IGVycm9yLm1lc3NhZ2UoKSB9
IH07CiB9CiAKIHN0YXRpYyBpbmxpbmUgUlRDSWNlQ29tcG9uZW50IHRvUlRDSWNlQ29tcG9uZW50
KGludCBjb21wb25lbnQpCkBAIC00NTUsNyArNDU1LDcgQEAgUmVmUHRyPFJUQ0Vycm9yPiB0b1JU
Q0Vycm9yKGNvbnN0IHdlYnJ0Yzo6UlRDRXJyb3ImIHJ0Y0Vycm9yKQogICAgIGF1dG8gZGV0YWls
ID0gdG9SVENFcnJvckRldGFpbFR5cGUocnRjRXJyb3IuZXJyb3JfZGV0YWlsKCkpOwogICAgIGlm
ICghZGV0YWlsKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICByZXR1cm4gUlRDRXJyb3I6
OmNyZWF0ZSgqZGV0YWlsLCBydGNFcnJvci5tZXNzYWdlKCkpOworICAgIHJldHVybiBSVENFcnJv
cjo6Y3JlYXRlKCpkZXRhaWwsIFN0cmluZyB7IHJ0Y0Vycm9yLm1lc3NhZ2UoKSB9KTsKIH0KIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tb2RlbC1lbGVtZW50L3NjZW5la2l0L1NjZW5lS2l0TW9kZWxMb2FkZXJVU0QubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvc2NlbmVraXQvU2NlbmVLaXRNb2RlbExv
YWRlclVTRC5tbQppbmRleCAwOWVjOGY2MDNlOWQwMjJiMzc4ZGRhMGU0MjdmZWM1MjFmZGQ1MmQy
Li5jYWI0YjhkZTIwMmU3N2Q3MDI4MmI1OTRhMWJlZmJkNzViMDZjYjJkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvc2NlbmVraXQvU2NlbmVLaXRNb2Rl
bExvYWRlclVTRC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQv
c2NlbmVraXQvU2NlbmVLaXRNb2RlbExvYWRlclVTRC5tbQpAQCAtMTAyLDcgKzEwMiw3IEBAIHN0
YXRpYyBSZXRhaW5QdHI8TlNVUkw+IHdyaXRlVG9UZW1wb3JhcnlGaWxlKFdlYkNvcmU6Ok1vZGVs
JiBtb2RlbFNvdXJjZSkKICAgICAvLyBpbml0aWFsaXplciBidXQgY3VycmVudGx5IHRoYXQgZG9l
cyBub3Qgd29yay4KIAogICAgIEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSBmaWxlSGFu
ZGxlOwotICAgIGF1dG8gZmlsZVBhdGggPSBGaWxlU3lzdGVtOjpvcGVuVGVtcG9yYXJ5RmlsZSgi
TW9kZWxGaWxlIiwgZmlsZUhhbmRsZSwgIi51c2R6Iik7CisgICAgYXV0byBmaWxlUGF0aCA9IEZp
bGVTeXN0ZW06Om9wZW5UZW1wb3JhcnlGaWxlKCJNb2RlbEZpbGUiX3MsIGZpbGVIYW5kbGUsICIu
dXNkeiJfcyk7CiAgICAgQVNTRVJUKEZpbGVTeXN0ZW06OmlzSGFuZGxlVmFsaWQoZmlsZUhhbmRs
ZSkpOwogCiAgICAgc2l6ZV90IGJ5dGVDb3VudCA9IEZpbGVTeXN0ZW06OndyaXRlVG9GaWxlKGZp
bGVIYW5kbGUsIG1vZGVsU291cmNlLmRhdGEoKS0+bWFrZUNvbnRpZ3VvdXMoKS0+ZGF0YSgpLCBt
b2RlbFNvdXJjZS5kYXRhKCktPnNpemUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3QuY3BwCmluZGV4IGRmMmI1YzI2
NGYzYTVjZTJjMWUxY2I2Yjc2MzQwYTAwZmE0MGNjZTAuLjQyMjM1ZWVhMWJmZDFjZDFiNzA3MGI2
OTA5NDg0MmNmNmU5MzU0YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5
bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3QuY3BwCkBAIC0yMTYsNyArMjE2LDcgQEAg
c3RhdGljIEV4Y2VwdGlvbk9yPHN0ZDo6dHVwbGU8U3RyaW5nLCBWZWN0b3I8U3RyaW5nPj4+IGNo
ZWNrQW5kQ2Fub25pY2FsaXplRGV0YWkKIAogICAgICAgICAgICAgICAgIGF1dG8gYWRkUmVzdWx0
ID0gc2VlblNoaXBwaW5nT3B0aW9uSURzLmFkZChzaGlwcGluZ09wdGlvbi5pZCk7CiAgICAgICAg
ICAgICAgICAgaWYgKCFhZGRSZXN1bHQuaXNOZXdFbnRyeSkKLSAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIlNoaXBwaW5nIG9wdGlvbiBJRHMgbXVzdCBi
ZSB1bmlxdWUuIiB9OworICAgICAgICAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlw
ZUVycm9yLCAiU2hpcHBpbmcgb3B0aW9uIElEcyBtdXN0IGJlIHVuaXF1ZS4iX3MgfTsKIAogI2lm
IEVOQUJMRShQQVlNRU5UX1JFUVVFU1RfU0VMRUNURURfU0hJUFBJTkdfT1BUSU9OKQogICAgICAg
ICAgICAgICAgIGlmIChzaGlwcGluZ09wdGlvbi5zZWxlY3RlZCkKQEAgLTM3NSw3ICszNzUsNyBA
QCB2b2lkIFBheW1lbnRSZXF1ZXN0OjpzaG93KERvY3VtZW50JiBkb2N1bWVudCwgUmVmUHRyPERP
TVByb21pc2U+JiYgZGV0YWlsc1Byb21pcwogCiAgICAgYXV0byogd2luZG93ID0gZG9jdW1lbnQu
ZnJhbWUoKS0+d2luZG93KCk7CiAgICAgaWYgKCF3aW5kb3cgfHwgIXdpbmRvdy0+Y29uc3VtZVRy
YW5zaWVudEFjdGl2YXRpb24oKSkgewotICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24g
eyBTZWN1cml0eUVycm9yLCAic2hvdygpIG11c3QgYmUgdHJpZ2dlcmVkIGJ5IHVzZXIgYWN0aXZh
dGlvbi4iIH0pOworICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBTZWN1cml0eUVy
cm9yLCAic2hvdygpIG11c3QgYmUgdHJpZ2dlcmVkIGJ5IHVzZXIgYWN0aXZhdGlvbi4iX3MgfSk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvcGljdHVyZWlucGljdHVyZS9IVE1MVmlkZW9FbGVtZW50UGljdHVyZUluUGljdHVyZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BpY3R1cmVpbnBpY3R1cmUvSFRNTFZpZGVvRWxl
bWVudFBpY3R1cmVJblBpY3R1cmUuY3BwCmluZGV4IGYyZjAyMzEwMjc0NWI5ZmQyM2U4ZTk0MmQ2
MDlhN2U5YmUwNjEwZDguLmJiZTJjYmM4YjljYmFlNGYyZmIwZWJkZTk0ZDU5NWFmOWQ4ZmNiYmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGljdHVyZWlucGljdHVyZS9IVE1M
VmlkZW9FbGVtZW50UGljdHVyZUluUGljdHVyZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9waWN0dXJlaW5waWN0dXJlL0hUTUxWaWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJlLmNw
cApAQCAtODEsMjMgKzgxLDIzIEBAIHZvaWQgSFRNTFZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1
cmU6OnByb3ZpZGVQaWN0dXJlSW5QaWN0dXJlVG8oSFRNTFZpZGVvRWxlbWVuCiB2b2lkIEhUTUxW
aWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJlOjpyZXF1ZXN0UGljdHVyZUluUGljdHVyZShIVE1M
VmlkZW9FbGVtZW50JiB2aWRlb0VsZW1lbnQsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlz
ZSkKIHsKICAgICBpZiAoIXN1cHBvcnRzUGljdHVyZUluUGljdHVyZSgpKSB7Ci0gICAgICAgIHBy
b21pc2UtPnJlamVjdChOb3RTdXBwb3J0ZWRFcnJvciwgIlRoZSBQaWN0dXJlLWluLVBpY3R1cmUg
bW9kZSBpcyBub3Qgc3VwcG9ydGVkLiIpOworICAgICAgICBwcm9taXNlLT5yZWplY3QoTm90U3Vw
cG9ydGVkRXJyb3IsICJUaGUgUGljdHVyZS1pbi1QaWN0dXJlIG1vZGUgaXMgbm90IHN1cHBvcnRl
ZC4iX3MpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgaWYgKHZpZGVvRWxlbWVudC5y
ZWFkeVN0YXRlKCkgPT0gSFRNTE1lZGlhRWxlbWVudEVudW1zOjpIQVZFX05PVEhJTkcpIHsKLSAg
ICAgICAgcHJvbWlzZS0+cmVqZWN0KEludmFsaWRTdGF0ZUVycm9yLCAiVGhlIHZpZGVvIGVsZW1l
bnQgaXMgbm90IHJlYWR5IHRvIGVudGVyIHRoZSBQaWN0dXJlLWluLVBpY3R1cmUgbW9kZS4iKTsK
KyAgICAgICAgcHJvbWlzZS0+cmVqZWN0KEludmFsaWRTdGF0ZUVycm9yLCAiVGhlIHZpZGVvIGVs
ZW1lbnQgaXMgbm90IHJlYWR5IHRvIGVudGVyIHRoZSBQaWN0dXJlLWluLVBpY3R1cmUgbW9kZS4i
X3MpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgaWYgKCF2aWRlb0VsZW1lbnQudmlk
ZW9UcmFja3MoKSB8fCAhdmlkZW9FbGVtZW50LnZpZGVvVHJhY2tzKCktPmxlbmd0aCgpKSB7Ci0g
ICAgICAgIHByb21pc2UtPnJlamVjdChJbnZhbGlkU3RhdGVFcnJvciwgIlRoZSB2aWRlbyBlbGVt
ZW50IGRvZXMgbm90IGhhdmUgYSB2aWRlbyB0cmFjayBvciBpdCBoYXMgbm90IGRldGVjdGVkIGEg
dmlkZW8gdHJhY2sgeWV0LiIpOworICAgICAgICBwcm9taXNlLT5yZWplY3QoSW52YWxpZFN0YXRl
RXJyb3IsICJUaGUgdmlkZW8gZWxlbWVudCBkb2VzIG5vdCBoYXZlIGEgdmlkZW8gdHJhY2sgb3Ig
aXQgaGFzIG5vdCBkZXRlY3RlZCBhIHZpZGVvIHRyYWNrIHlldC4iX3MpOwogICAgICAgICByZXR1
cm47CiAgICAgfQogCiAgICAgYm9vbCB1c2VyQWN0aXZhdGlvblJlcXVpcmVkID0gIXZpZGVvRWxl
bWVudC5kb2N1bWVudCgpLnBpY3R1cmVJblBpY3R1cmVFbGVtZW50KCk7CiAgICAgaWYgKHVzZXJB
Y3RpdmF0aW9uUmVxdWlyZWQgJiYgIVVzZXJHZXN0dXJlSW5kaWNhdG9yOjpwcm9jZXNzaW5nVXNl
ckdlc3R1cmUoKSkgewotICAgICAgICBwcm9taXNlLT5yZWplY3QoTm90QWxsb3dlZEVycm9yLCAi
VGhlIHJlcXVlc3QgaXMgbm90IHRyaWdnZXJlZCBieSBhIHVzZXIgYWN0aXZhdGlvbi4iKTsKKyAg
ICAgICAgcHJvbWlzZS0+cmVqZWN0KE5vdEFsbG93ZWRFcnJvciwgIlRoZSByZXF1ZXN0IGlzIG5v
dCB0cmlnZ2VyZWQgYnkgYSB1c2VyIGFjdGl2YXRpb24uIl9zKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIApAQCAtMTA4LDcgKzEwOCw3IEBAIHZvaWQgSFRNTFZpZGVvRWxlbWVudFBpY3R1cmVJ
blBpY3R1cmU6OnJlcXVlc3RQaWN0dXJlSW5QaWN0dXJlKEhUTUxWaWRlb0VsZW1lbnQmCiAgICAg
fQogCiAgICAgaWYgKHZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmUtPm1fZW50ZXJQaWN0dXJl
SW5QaWN0dXJlUHJvbWlzZSB8fCB2aWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJlLT5tX2V4aXRQ
aWN0dXJlSW5QaWN0dXJlUHJvbWlzZSkgewotICAgICAgICBwcm9taXNlLT5yZWplY3QoTm90QWxs
b3dlZEVycm9yLCAiVGhlIHZpZGVvIGVsZW1lbnQgaXMgcHJvY2Vzc2luZyBhIFBpY3R1cmUtaW4t
UGljdHVyZSByZXF1ZXN0LiIpOworICAgICAgICBwcm9taXNlLT5yZWplY3QoTm90QWxsb3dlZEVy
cm9yLCAiVGhlIHZpZGVvIGVsZW1lbnQgaXMgcHJvY2Vzc2luZyBhIFBpY3R1cmUtaW4tUGljdHVy
ZSByZXF1ZXN0LiJfcyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTExNiw3ICsxMTYs
NyBAQCB2b2lkIEhUTUxWaWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJlOjpyZXF1ZXN0UGljdHVy
ZUluUGljdHVyZShIVE1MVmlkZW9FbGVtZW50JgogICAgICAgICB2aWRlb0VsZW1lbnRQaWN0dXJl
SW5QaWN0dXJlLT5tX2VudGVyUGljdHVyZUluUGljdHVyZVByb21pc2UgPSBXVEZNb3ZlKHByb21p
c2UpOwogICAgICAgICB2aWRlb0VsZW1lbnQud2Via2l0U2V0UHJlc2VudGF0aW9uTW9kZShIVE1M
VmlkZW9FbGVtZW50OjpWaWRlb1ByZXNlbnRhdGlvbk1vZGU6OlBpY3R1cmVJblBpY3R1cmUpOwog
ICAgIH0gZWxzZQotICAgICAgICBwcm9taXNlLT5yZWplY3QoTm90U3VwcG9ydGVkRXJyb3IsICJU
aGUgdmlkZW8gZWxlbWVudCBkb2VzIG5vdCBzdXBwb3J0IHRoZSBQaWN0dXJlLWluLVBpY3R1cmUg
bW9kZS4iKTsKKyAgICAgICAgcHJvbWlzZS0+cmVqZWN0KE5vdFN1cHBvcnRlZEVycm9yLCAiVGhl
IHZpZGVvIGVsZW1lbnQgZG9lcyBub3Qgc3VwcG9ydCB0aGUgUGljdHVyZS1pbi1QaWN0dXJlIG1v
ZGUuIl9zKTsKIH0KIAogYm9vbCBIVE1MVmlkZW9FbGVtZW50UGljdHVyZUluUGljdHVyZTo6YXV0
b1BpY3R1cmVJblBpY3R1cmUoSFRNTFZpZGVvRWxlbWVudCYgdmlkZW9FbGVtZW50KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5zL1lvdVR1YmVQbHVnaW5SZXBsYWNl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvWW91VHViZVBsdWdpblJl
cGxhY2VtZW50LmNwcAppbmRleCA5NzlmMjI0NTkwNzIwZjgyOTMzNWQ2MGEzYThkOGFlNWMzYjcy
MjQzLi5kZDE2Zjg5M2YyZDY5NTJjYzVmMDAzMDhmOWQwZDk5YWI4YjBlOGEyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvWW91VHViZVBsdWdpblJlcGxhY2VtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvWW91VHViZVBsdWdpblJl
cGxhY2VtZW50LmNwcApAQCAtODQsMTYgKzg0LDE2IEBAIGF1dG8gWW91VHViZVBsdWdpblJlcGxh
Y2VtZW50OjppbnN0YWxsUmVwbGFjZW1lbnQoU2hhZG93Um9vdCYgcm9vdCkgLT4gSW5zdGFsbFJl
CiAgICAgcm9vdC5hcHBlbmRDaGlsZCgqbV9lbWJlZFNoYWRvd0VsZW1lbnQpOwogCiAgICAgYXV0
byBpZnJhbWVFbGVtZW50ID0gSFRNTElGcmFtZUVsZW1lbnQ6OmNyZWF0ZShIVE1MTmFtZXM6Omlm
cmFtZVRhZywgbV9wYXJlbnRFbGVtZW50LT5kb2N1bWVudCgpKTsKLSAgICBpZiAobV9hdHRyaWJ1
dGVzLmNvbnRhaW5zKCJ3aWR0aCIpKQorICAgIGlmIChtX2F0dHJpYnV0ZXMuY29udGFpbnMoIndp
ZHRoIl9zKSkKICAgICAgICAgaWZyYW1lRWxlbWVudC0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNo
cm9uaXphdGlvbihIVE1MTmFtZXM6OndpZHRoQXR0ciwgQXRvbVN0cmluZygiMTAwJSIsIEF0b21T
dHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAKLSAgICBjb25zdCBhdXRvJiBoZWlnaHRW
YWx1ZSA9IG1fYXR0cmlidXRlcy5maW5kKCJoZWlnaHQiKTsKKyAgICBjb25zdCBhdXRvJiBoZWln
aHRWYWx1ZSA9IG1fYXR0cmlidXRlcy5maW5kKCJoZWlnaHQiX3MpOwogICAgIGlmIChoZWlnaHRW
YWx1ZSAhPSBtX2F0dHJpYnV0ZXMuZW5kKCkpIHsKICAgICAgICAgaWZyYW1lRWxlbWVudC0+c2V0
QXR0cmlidXRlKEhUTUxOYW1lczo6c3R5bGVBdHRyLCBBdG9tU3RyaW5nKCJtYXgtaGVpZ2h0OiAx
MDAlIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICAgICAgaWZyYW1l
RWxlbWVudC0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihIVE1MTmFtZXM6Omhl
aWdodEF0dHIsIGhlaWdodFZhbHVlLT52YWx1ZSk7CiAgICAgfQogCi0gICAgaWZyYW1lRWxlbWVu
dC0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihIVE1MTmFtZXM6OnNyY0F0dHIs
IHlvdVR1YmVVUkwobV9hdHRyaWJ1dGVzLmdldCgic3JjIikpKTsKKyAgICBpZnJhbWVFbGVtZW50
LT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKEhUTUxOYW1lczo6c3JjQXR0ciwg
eW91VHViZVVSTChtX2F0dHJpYnV0ZXMuZ2V0KCJzcmMiX3MpKSk7CiAgICAgaWZyYW1lRWxlbWVu
dC0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihIVE1MTmFtZXM6OmZyYW1lYm9y
ZGVyQXR0ciwgQXRvbVN0cmluZygiMCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KSk7CiAgICAgCiAgICAgLy8gRGlzYWJsZSBmcmFtZSBmbGF0dGVuaW5nIGZvciB0aGlzIGlmcmFt
ZS4KQEAgLTIzMSwxMSArMjMxLDExIEBAIHN0YXRpYyBVUkwgcHJvY2Vzc0FuZENyZWF0ZVlvdVR1
YmVVUkwoY29uc3QgVVJMJiB1cmwsIGJvb2wmIGlzWW91VHViZVNob3J0ZW5lZFVSCiAgICAgaWYg
KGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHBhdGgsICIvd2F0Y2giKSkgewogICAgICAg
ICBpZiAoIXF1ZXJ5LmlzRW1wdHkoKSkgewogICAgICAgICAgICAgY29uc3QgYXV0byYgcXVlcnlE
aWN0aW9uYXJ5ID0gcXVlcnlLZXlzQW5kVmFsdWVzKHF1ZXJ5KTsKLSAgICAgICAgICAgIFN0cmlu
ZyB2aWRlb0lEID0gdmFsdWVGb3JLZXkocXVlcnlEaWN0aW9uYXJ5LCAidiIpOworICAgICAgICAg
ICAgU3RyaW5nIHZpZGVvSUQgPSB2YWx1ZUZvcktleShxdWVyeURpY3Rpb25hcnksICJ2Il9zKTsK
ICAgICAgICAgICAgIAogICAgICAgICAgICAgaWYgKCF2aWRlb0lELmlzRW1wdHkoKSkgewogICAg
ICAgICAgICAgICAgIGNvbnN0IGF1dG8mIGZyYWdtZW50RGljdGlvbmFyeSA9IHF1ZXJ5S2V5c0Fu
ZFZhbHVlcyh1cmwuZnJhZ21lbnRJZGVudGlmaWVyKCkpOwotICAgICAgICAgICAgICAgIFN0cmlu
ZyB0aW1lSUQgPSB2YWx1ZUZvcktleShmcmFnbWVudERpY3Rpb25hcnksICJ0Iik7CisgICAgICAg
ICAgICAgICAgU3RyaW5nIHRpbWVJRCA9IHZhbHVlRm9yS2V5KGZyYWdtZW50RGljdGlvbmFyeSwg
InQiX3MpOwogICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVZb3VUdWJlVVJMKHZpZGVvSUQs
IHRpbWVJRCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTI0NiwxMCArMjQ2LDEwIEBA
IHN0YXRpYyBVUkwgcHJvY2Vzc0FuZENyZWF0ZVlvdVR1YmVVUkwoY29uc3QgVVJMJiB1cmwsIGJv
b2wmIGlzWW91VHViZVNob3J0ZW5lZFVSCiAgICAgICAgICAgICAKICAgICAgICAgICAgIGlmICgh
cXVlcnkuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICAgICAgY29uc3QgYXV0byYgcXVlcnlEaWN0
aW9uYXJ5ID0gcXVlcnlLZXlzQW5kVmFsdWVzKHF1ZXJ5KTsKLSAgICAgICAgICAgICAgICBTdHJp
bmcgdmlkZW9JRCA9IHZhbHVlRm9yS2V5KHF1ZXJ5RGljdGlvbmFyeSwgInYiKTsKKyAgICAgICAg
ICAgICAgICBTdHJpbmcgdmlkZW9JRCA9IHZhbHVlRm9yS2V5KHF1ZXJ5RGljdGlvbmFyeSwgInYi
X3MpOwogICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIGlmICghdmlkZW9JRC5pc0Vt
cHR5KCkpIHsKLSAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHRpbWVJRCA9IHZhbHVlRm9yS2V5
KHF1ZXJ5RGljdGlvbmFyeSwgInQiKTsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHRpbWVJ
RCA9IHZhbHVlRm9yS2V5KHF1ZXJ5RGljdGlvbmFyeSwgInQiX3MpOwogICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gY3JlYXRlWW91VHViZVVSTCh2aWRlb0lELCB0aW1lSUQpOwogICAgICAgICAg
ICAgICAgIH0KICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1w
bC5jcHAKaW5kZXggYzIzYThkNjdjYjQ4MTIzM2Y3Y2I0YjUxOWIxMzZiMjIxOTA2YmViZS4uNjA3
NTNmZWNlMzVhMjlmODhlOTI2MjBhMjBiODA5YWZlOTZjYzcyMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1w
bC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlSW1wbC5jcHAKQEAgLTkyLDcgKzkyLDcgQEAgYm9vbCBTcGVlY2hSZWNv
Z25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjp1cGRhdGVEYXRhU291cmNlKGNvbnN0IENBQXVkaW9T
dHJlYW1EZXMKICAgICBpZiAoZGF0YVNvdXJjZS0+c2V0SW5wdXRGb3JtYXQoYXVkaW9EZXNjcmlw
dGlvbikpIHsKICAgICAgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgd2Vha1RoaXMgPSBXZWFr
UHRyIHsgKnRoaXMgfV0gewogICAgICAgICAgICAgaWYgKHdlYWtUaGlzKQotICAgICAgICAgICAg
ICAgIG1fc3RhdGVVcGRhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRl
RXJyb3IobV9jbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yIHsgU3BlZWNo
UmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlvQ2FwdHVyZSwgIlVuYWJsZSB0byBzZXQgaW5wdXQg
Zm9ybWF0IiB9KSk7CisgICAgICAgICAgICAgICAgbV9zdGF0ZVVwZGF0ZUNhbGxiYWNrKFNwZWVj
aFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihtX2NsaWVudElkZW50aWZpZXIsIFNwZWVj
aFJlY29nbml0aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0
dXJlLCAiVW5hYmxlIHRvIHNldCBpbnB1dCBmb3JtYXQiX3MgfSkpOwogICAgICAgICB9KTsKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KQEAgLTEwMCw3ICsxMDAsNyBAQCBib29sIFNwZWVj
aFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6OnVwZGF0ZURhdGFTb3VyY2UoY29uc3QgQ0FB
dWRpb1N0cmVhbURlcwogICAgIGlmIChkYXRhU291cmNlLT5zZXRPdXRwdXRGb3JtYXQoYXVkaW9E
ZXNjcmlwdGlvbikpIHsKICAgICAgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgd2Vha1RoaXMg
PSBXZWFrUHRyIHsgKnRoaXMgfV0gewogICAgICAgICAgICAgaWYgKHdlYWtUaGlzKQotICAgICAg
ICAgICAgICAgIG1fc3RhdGVVcGRhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6
Y3JlYXRlRXJyb3IobV9jbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yIHsg
U3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlvQ2FwdHVyZSwgIlVuYWJsZSB0byBzZXQg
b3V0cHV0IGZvcm1hdCIgfSkpOworICAgICAgICAgICAgICAgIG1fc3RhdGVVcGRhdGVDYWxsYmFj
ayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IobV9jbGllbnRJZGVudGlmaWVy
LCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1
ZGlvQ2FwdHVyZSwgIlVuYWJsZSB0byBzZXQgb3V0cHV0IGZvcm1hdCJfcyB9KSk7CiAgICAgICAg
IH0pOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpAQCAtMTU3LDEzICsxNTcsMTMgQEAg
dm9pZCBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjpzb3VyY2VTdG9wcGVkKCkK
IHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIEFTU0VSVChtX3NvdXJjZS0+Y2Fw
dHVyZURpZEZhaWwoKSk7Ci0gICAgbV9zdGF0ZVVwZGF0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0
aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihtX2NsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0
aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCAiU291
cmNlIGlzIHN0b3BwZWQiIH0pKTsKKyAgICBtX3N0YXRlVXBkYXRlQ2FsbGJhY2soU3BlZWNoUmVj
b2duaXRpb25VcGRhdGU6OmNyZWF0ZUVycm9yKG1fY2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVj
b2duaXRpb25FcnJvciB7IFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpBdWRpb0NhcHR1cmUs
ICJTb3VyY2UgaXMgc3RvcHBlZCJfcyB9KSk7CiB9CiAKIHZvaWQgU3BlZWNoUmVjb2duaXRpb25D
YXB0dXJlU291cmNlSW1wbDo6c291cmNlTXV0ZWRDaGFuZ2VkKCkKIHsKICAgICBBU1NFUlQoaXNN
YWluVGhyZWFkKCkpOwotICAgIG1fc3RhdGVVcGRhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlv
blVwZGF0ZTo6Y3JlYXRlRXJyb3IobV9jbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlv
bkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlvQ2FwdHVyZSwgIlNvdXJj
ZSBpcyBtdXRlZCIgfSkpOworICAgIG1fc3RhdGVVcGRhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IobV9jbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25p
dGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlvQ2FwdHVyZSwgIlNv
dXJjZSBpcyBtdXRlZCJfcyB9KSk7CiB9CiAKIHZvaWQgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJl
U291cmNlSW1wbDo6bXV0ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Nw
ZWVjaC9jb2NvYS9XZWJTcGVlY2hSZWNvZ25pemVyVGFza01vY2subW0gYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3NwZWVjaC9jb2NvYS9XZWJTcGVlY2hSZWNvZ25pemVyVGFza01vY2subW0KaW5k
ZXggMmQzNDhlZDIwYzIxYjUxMDM0ODg3OWQ1YzI2M2ZjMGUzY2ZlZDg2Yi4uYmVmM2E1MjI1MTdm
NGMyZTMyZjU4MzIzZGE5ODQzMGJiMGQxOTViNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9zcGVlY2gvY29jb2EvV2ViU3BlZWNoUmVjb2duaXplclRhc2tNb2NrLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL2NvY29hL1dlYlNwZWVjaFJlY29nbml6ZXJU
YXNrTW9jay5tbQpAQCAtNjEsNyArNjEsNyBAQCAtICh2b2lkKWF1ZGlvU2FtcGxlc0F2YWlsYWJs
ZTooQ01TYW1wbGVCdWZmZXJSZWYpc2FtcGxlQnVmZmVyCiAgICAgfQogCiAgICAgLy8gRmFrZSBz
b21lIHJlY29nbml0aW9uIHJlc3VsdHMuCi0gICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25B
bHRlcm5hdGl2ZURhdGEgYWx0ZXJuYXRpdmUgeyAiVGVzdCIsIDEuMCB9OworICAgIFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmVEYXRhIGFsdGVybmF0aXZlIHsgIlRlc3QiX3Ms
IDEuMCB9OwogICAgIF9kZWxlZ2F0ZUNhbGxiYWNrKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9u
VXBkYXRlOjpjcmVhdGVSZXN1bHQoX2lkZW50aWZpZXIsIHsgV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25SZXN1bHREYXRhIHsgeyBXVEZNb3ZlKGFsdGVybmF0aXZlKSB9LCB0cnVlIH0gfSkpOwog
CiAgICAgaWYgKCFfZG9NdWx0aXBsZVJlY29nbml0aW9ucykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvc3RvcmFnZS9TdG9yYWdlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3N0b3JhZ2UvU3RvcmFnZU1hbmFnZXIuY3BwCmluZGV4IDE4OGQzMGI2MTk4YjE2
MWUxYjQ3YWU5NzY4ZTBjMWU5NTc2NjUzYWIuLjYzNmI0OGM5ZjA0NzliYzVhZTMxOTRlYTFlODkw
NTY5NjU3MTdhNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RvcmFnZS9T
dG9yYWdlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdG9yYWdlL1N0
b3JhZ2VNYW5hZ2VyLmNwcApAQCAtNzIsNyArNzIsNyBAQCBzdGF0aWMgRXhjZXB0aW9uT3I8Q29u
bmVjdGlvbkluZm8+IGNvbm5lY3Rpb25JbmZvKE5hdmlnYXRvckJhc2UqIG5hdmlnYXRvcikKICAg
ICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiT3JpZ2luIGlzIGlu
dmFsaWQiX3MgfTsKIAogICAgIGlmICghb3JpZ2luLT5jYW5BY2Nlc3NTdG9yYWdlTWFuYWdlcigp
KQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiT3JpZ2luIHNob3VsZCBu
b3QgYWNjZXNzIHN0b3JhZ2UiIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJy
b3IsICJPcmlnaW4gc2hvdWxkIG5vdCBhY2Nlc3Mgc3RvcmFnZSJfcyB9OwogCiAgICAgaWYgKGlz
PERvY3VtZW50Pihjb250ZXh0KSkgewogICAgICAgICBpZiAoYXV0byogY29ubmVjdGlvbiA9IGRv
d25jYXN0PERvY3VtZW50Pihjb250ZXh0KS0+c3RvcmFnZUNvbm5lY3Rpb24oKSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNYW5hZ2VyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNYW5hZ2VyLmNwcAppbmRl
eCAyMTk5OTJmNmI1YjE0YzViNjAyNzU0NTZhZGRiMDg1Nzc4NmUxMjVmLi5hMTYxYjNkMmMwNWMz
ZjQ5YzliMGE4ZjllNjk2NmQ0NWJhYWRlZmVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja01hbmFnZXIuY3BwCkBAIC0zMzgsNyArMzM4LDcgQEAg
dm9pZCBXZWJMb2NrTWFuYWdlcjo6c2lnbmFsVG9BYm9ydFRoZVJlcXVlc3QoV2ViTG9ja0lkZW50
aWZpZXIgbG9ja0lkZW50aWZpZXIpCiAgICAgICAgIGlmICh3YXNBYm9ydGVkICYmIHdlYWtUaGlz
KQogICAgICAgICAgICAgd2Vha1RoaXMtPm1fcGVuZGluZ1JlcXVlc3RzLnJlbW92ZShsb2NrSWRl
bnRpZmllcik7CiAgICAgfSk7Ci0gICAgc2V0dGxlUmVsZWFzZVByb21pc2UobG9ja0lkZW50aWZp
ZXIsIEV4Y2VwdGlvbiB7IEFib3J0RXJyb3IsICJMb2NrIHJlcXVlc3Qgd2FzIGFib3J0ZWQgdmlh
IEFib3J0U2lnbmFsIiB9KTsKKyAgICBzZXR0bGVSZWxlYXNlUHJvbWlzZShsb2NrSWRlbnRpZmll
ciwgRXhjZXB0aW9uIHsgQWJvcnRFcnJvciwgIkxvY2sgcmVxdWVzdCB3YXMgYWJvcnRlZCB2aWEg
QWJvcnRTaWduYWwiX3MgfSk7CiB9CiAKIHZvaWQgV2ViTG9ja01hbmFnZXI6OnNldHRsZVJlbGVh
c2VQcm9taXNlKFdlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyLCBFeGNlcHRpb25PcjxK
U0M6OkpTVmFsdWU+JiYgcmVzdWx0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9BdWRpb0xpc3RlbmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9MaXN0ZW5lci5jcHAKaW5kZXggMDIwZTc2ZjQzNjRlNmRlZjhmODE3MjRkYjdj
MmZkOGFlNTcwMjE3OS4uNzZjNzZkNzU0NGU3MGM5YWNkM2JkZGY5NmYzNGM4YWM2YmE5ZmRmYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0xpc3RlbmVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTGlzdGVuZXIu
Y3BwCkBAIC00MCwxNSArNDAsMTUgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogQXVkaW9MaXN0
ZW5lcjo6QXVkaW9MaXN0ZW5lcihCYXNlQXVkaW9Db250ZXh0JiBjb250ZXh0KQotICAgIDogbV9w
b3NpdGlvblgoQXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJwb3NpdGlvblgiLCAwLjAsIC1G
TFRfTUFYLCBGTFRfTUFYLCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQotICAgICwgbV9wb3NpdGlv
blkoQXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJwb3NpdGlvblkiLCAwLjAsIC1GTFRfTUFY
LCBGTFRfTUFYLCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQotICAgICwgbV9wb3NpdGlvblooQXVk
aW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJwb3NpdGlvbloiLCAwLjAsIC1GTFRfTUFYLCBGTFRf
TUFYLCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQotICAgICwgbV9mb3J3YXJkWChBdWRpb1BhcmFt
OjpjcmVhdGUoY29udGV4dCwgImZvcndhcmRYIiwgMC4wLCAtRkxUX01BWCwgRkxUX01BWCwgQXV0
b21hdGlvblJhdGU6OkFSYXRlKSkKLSAgICAsIG1fZm9yd2FyZFkoQXVkaW9QYXJhbTo6Y3JlYXRl
KGNvbnRleHQsICJmb3J3YXJkWSIsIDAuMCwgLUZMVF9NQVgsIEZMVF9NQVgsIEF1dG9tYXRpb25S
YXRlOjpBUmF0ZSkpCi0gICAgLCBtX2ZvcndhcmRaKEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0
LCAiZm9yd2FyZFoiLCAtMS4wLCAtRkxUX01BWCwgRkxUX01BWCwgQXV0b21hdGlvblJhdGU6OkFS
YXRlKSkKLSAgICAsIG1fdXBYKEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0LCAidXBYIiwgMC4w
LCAtRkxUX01BWCwgRkxUX01BWCwgQXV0b21hdGlvblJhdGU6OkFSYXRlKSkKLSAgICAsIG1fdXBZ
KEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0LCAidXBZIiwgMS4wLCAtRkxUX01BWCwgRkxUX01B
WCwgQXV0b21hdGlvblJhdGU6OkFSYXRlKSkKLSAgICAsIG1fdXBaKEF1ZGlvUGFyYW06OmNyZWF0
ZShjb250ZXh0LCAidXBaIiwgMC4wLCAtRkxUX01BWCwgRkxUX01BWCwgQXV0b21hdGlvblJhdGU6
OkFSYXRlKSkKKyAgICA6IG1fcG9zaXRpb25YKEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0LCAi
cG9zaXRpb25YIl9zLCAwLjAsIC1GTFRfTUFYLCBGTFRfTUFYLCBBdXRvbWF0aW9uUmF0ZTo6QVJh
dGUpKQorICAgICwgbV9wb3NpdGlvblkoQXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJwb3Np
dGlvblkiX3MsIDAuMCwgLUZMVF9NQVgsIEZMVF9NQVgsIEF1dG9tYXRpb25SYXRlOjpBUmF0ZSkp
CisgICAgLCBtX3Bvc2l0aW9uWihBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCwgInBvc2l0aW9u
WiJfcywgMC4wLCAtRkxUX01BWCwgRkxUX01BWCwgQXV0b21hdGlvblJhdGU6OkFSYXRlKSkKKyAg
ICAsIG1fZm9yd2FyZFgoQXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJmb3J3YXJkWCJfcywg
MC4wLCAtRkxUX01BWCwgRkxUX01BWCwgQXV0b21hdGlvblJhdGU6OkFSYXRlKSkKKyAgICAsIG1f
Zm9yd2FyZFkoQXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJmb3J3YXJkWSJfcywgMC4wLCAt
RkxUX01BWCwgRkxUX01BWCwgQXV0b21hdGlvblJhdGU6OkFSYXRlKSkKKyAgICAsIG1fZm9yd2Fy
ZFooQXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJmb3J3YXJkWiJfcywgLTEuMCwgLUZMVF9N
QVgsIEZMVF9NQVgsIEF1dG9tYXRpb25SYXRlOjpBUmF0ZSkpCisgICAgLCBtX3VwWChBdWRpb1Bh
cmFtOjpjcmVhdGUoY29udGV4dCwgInVwWCJfcywgMC4wLCAtRkxUX01BWCwgRkxUX01BWCwgQXV0
b21hdGlvblJhdGU6OkFSYXRlKSkKKyAgICAsIG1fdXBZKEF1ZGlvUGFyYW06OmNyZWF0ZShjb250
ZXh0LCAidXBZIl9zLCAxLjAsIC1GTFRfTUFYLCBGTFRfTUFYLCBBdXRvbWF0aW9uUmF0ZTo6QVJh
dGUpKQorICAgICwgbV91cFooQXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJ1cFoiX3MsIDAu
MCwgLUZMVF9NQVgsIEZMVF9NQVgsIEF1dG9tYXRpb25SYXRlOjpBUmF0ZSkpCiAgICAgLCBtX3Bv
c2l0aW9uWFZhbHVlcyhBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUpCiAgICAgLCBt
X3Bvc2l0aW9uWVZhbHVlcyhBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUpCiAgICAg
LCBtX3Bvc2l0aW9uWlZhbHVlcyhBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0uY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtLmNwcAppbmRleCBi
ZTEyYmI1YWEwMjdlNTNhMTM0Njg0N2U2Yzk5M2MyM2Y5ZjAxODk4Li4wZDQ2YTNmOTA0Y2M0ZDA5
Mzg4YjRmYjAxMjMzY2I2MDhlYzdmNmQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9QYXJhbS5jcHAKQEAgLTEwOSw3ICsxMDksNyBAQCBFeGNlcHRpb25Pcjx2
b2lkPiBBdWRpb1BhcmFtOjpzZXRWYWx1ZUZvckJpbmRpbmdzKGZsb2F0IHZhbHVlKQogRXhjZXB0
aW9uT3I8dm9pZD4gQXVkaW9QYXJhbTo6c2V0QXV0b21hdGlvblJhdGUoQXV0b21hdGlvblJhdGUg
YXV0b21hdGlvblJhdGUpCiB7CiAgICAgaWYgKG1fYXV0b21hdGlvblJhdGVNb2RlID09IEF1dG9t
YXRpb25SYXRlTW9kZTo6Rml4ZWQpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlk
U3RhdGVFcnJvciwgImF1dG9tYXRpb25SYXRlIGNhbm5vdCBiZSBjaGFuZ2VkIGZvciB0aGlzIG5v
ZGUiIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgImF1
dG9tYXRpb25SYXRlIGNhbm5vdCBiZSBjaGFuZ2VkIGZvciB0aGlzIG5vZGUiX3MgfTsKIAogICAg
IG1fYXV0b21hdGlvblJhdGUgPSBhdXRvbWF0aW9uUmF0ZTsKICAgICByZXR1cm4geyB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtVGltZWxp
bmUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtVGltZWxp
bmUuY3BwCmluZGV4IGU1OWFhN2U2ZDg0MmZhZWJmZGMzOGEwNTllYzk1YzgxOTNlNTQ2YTYuLmNj
MzRkYzM0ZTUwNzFkNzRiZDUyYzFkYjY4OGJjOWYyMTQ4ZTUzZDcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbVRpbWVsaW5lLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW1UaW1lbGluZS5jcHAKQEAg
LTE3Miw3ICsxNzIsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBBdWRpb1BhcmFtVGltZWxpbmU6Omlu
c2VydEV2ZW50KFBhcmFtRXZlbnQmJiBldmVudCkKICAgICAgICAgICAgIC8vIE90aGVyd2lzZSwg
bWFrZSBzdXJlIHRoaXMgZXZlbnQgZG9lc24ndCBvdmVybGFwIGFueSBleGlzdGluZyBTZXRWYWx1
ZUN1cnZlIGV2ZW50LgogICAgICAgICAgICAgYXV0byBwYXJlbnRFdmVudEVuZFRpbWUgPSBwYXJh
bUV2ZW50LnRpbWUoKSArIHBhcmFtRXZlbnQuZHVyYXRpb24oKTsKICAgICAgICAgICAgIGlmIChl
dmVudC50aW1lKCkgPj0gcGFyYW1FdmVudC50aW1lKCkgJiYgZXZlbnQudGltZSgpIDwgcGFyZW50
RXZlbnRFbmRUaW1lKQotICAgICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RTdXBw
b3J0ZWRFcnJvciwgIkV2ZW50cyBhcmUgb3ZlcmxhcHBpbmciIH07CisgICAgICAgICAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yLCAiRXZlbnRzIGFyZSBvdmVybGFw
cGluZyJfcyB9OwogICAgICAgICB9CiAKICAgICAgICAgaWYgKHBhcmFtRXZlbnQudGltZSgpID4g
aW5zZXJ0VGltZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
QmlxdWFkRmlsdGVyTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jp
cXVhZEZpbHRlck5vZGUuY3BwCmluZGV4IDE0MGVkMGEyNmU1NzU1MTcwMTRhYzMzYTY0MzE1NTg5
MDljMDI3MmMuLjVkNzM2Y2ZjYjI1NTkxOGY4OTc1ZDdiM2IxZjc4ZmIwYjAzNDUxNjEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmlxdWFkRmlsdGVyTm9kZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CaXF1YWRGaWx0ZXJOb2Rl
LmNwcApAQCAtNzQsNyArNzQsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBCaXF1YWRGaWx0ZXJOb2Rl
OjpnZXRGcmVxdWVuY3lSZXNwb25zZShjb25zdCBSZWY8RmxvYXQzMkFycmF5PgogewogICAgIHVu
c2lnbmVkIGxlbmd0aCA9IGZyZXF1ZW5jeUh6LT5sZW5ndGgoKTsKICAgICBpZiAobWFnUmVzcG9u
c2UtPmxlbmd0aCgpICE9IGxlbmd0aCB8fCBwaGFzZVJlc3BvbnNlLT5sZW5ndGgoKSAhPSBsZW5n
dGgpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJUaGUg
YXJyYXlzIHBhc3NlZCBhcyBhcmd1bWVudHMgbXVzdCBoYXZlIHRoZSBzYW1lIGxlbmd0aCIgfTsK
KyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwgIlRoZSBhcnJh
eXMgcGFzc2VkIGFzIGFyZ3VtZW50cyBtdXN0IGhhdmUgdGhlIHNhbWUgbGVuZ3RoIl9zIH07CiAK
ICAgICBpZiAobGVuZ3RoKQogICAgICAgICBiaXF1YWRQcm9jZXNzb3IoKS0+Z2V0RnJlcXVlbmN5
UmVzcG9uc2UobGVuZ3RoLCBmcmVxdWVuY3lIei0+ZGF0YSgpLCBtYWdSZXNwb25zZS0+ZGF0YSgp
LCBwaGFzZVJlc3BvbnNlLT5kYXRhKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9CaXF1YWRQcm9jZXNzb3IuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9CaXF1YWRQcm9jZXNzb3IuY3BwCmluZGV4IDlkZjYyOWQ3ZWJmZGQ2ZmI3NDE1
ZjNlYjc3OTcyNmJiYWJjYThmMWMuLmY5YTU0MzRlODgwNWQ3ZGU0OTE4YTZmYmQ4NzU0ZDFhNWVk
MjcyMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmlxdWFk
UHJvY2Vzc29yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0JpcXVh
ZFByb2Nlc3Nvci5jcHAKQEAgLTM1LDEwICszNSwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgCiBCaXF1YWRQcm9jZXNzb3I6OkJpcXVhZFByb2Nlc3NvcihCYXNlQXVkaW9Db250ZXh0JiBj
b250ZXh0LCBmbG9hdCBzYW1wbGVSYXRlLCBzaXplX3QgbnVtYmVyT2ZDaGFubmVscywgYm9vbCBh
dXRvSW5pdGlhbGl6ZSkKICAgICA6IEF1ZGlvRFNQS2VybmVsUHJvY2Vzc29yKHNhbXBsZVJhdGUs
IG51bWJlck9mQ2hhbm5lbHMpCi0gICAgLCBtX3BhcmFtZXRlcjEoQXVkaW9QYXJhbTo6Y3JlYXRl
KGNvbnRleHQsICJmcmVxdWVuY3kiLCAzNTAuMCwgMC4wLCAwLjUgKiBzYW1wbGVSYXRlLCBBdXRv
bWF0aW9uUmF0ZTo6QVJhdGUpKQotICAgICwgbV9wYXJhbWV0ZXIyKEF1ZGlvUGFyYW06OmNyZWF0
ZShjb250ZXh0LCAiUSIsIDEsIC1GTFRfTUFYLCBGTFRfTUFYLCBBdXRvbWF0aW9uUmF0ZTo6QVJh
dGUpKQotICAgICwgbV9wYXJhbWV0ZXIzKEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0LCAiZ2Fp
biIsIDAuMCwgLUZMVF9NQVgsIDQwICogc3RkOjpsb2cxMChzdGQ6Om51bWVyaWNfbGltaXRzPGZs
b2F0Pjo6bWF4KCkpLCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQotICAgICwgbV9wYXJhbWV0ZXI0
KEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0LCAiZGV0dW5lIiwgMC4wLCAtMTUzNjAwLCAxNTM2
MDAsIEF1dG9tYXRpb25SYXRlOjpBUmF0ZSkpCisgICAgLCBtX3BhcmFtZXRlcjEoQXVkaW9QYXJh
bTo6Y3JlYXRlKGNvbnRleHQsICJmcmVxdWVuY3kiX3MsIDM1MC4wLCAwLjAsIDAuNSAqIHNhbXBs
ZVJhdGUsIEF1dG9tYXRpb25SYXRlOjpBUmF0ZSkpCisgICAgLCBtX3BhcmFtZXRlcjIoQXVkaW9Q
YXJhbTo6Y3JlYXRlKGNvbnRleHQsICJRIl9zLCAxLCAtRkxUX01BWCwgRkxUX01BWCwgQXV0b21h
dGlvblJhdGU6OkFSYXRlKSkKKyAgICAsIG1fcGFyYW1ldGVyMyhBdWRpb1BhcmFtOjpjcmVhdGUo
Y29udGV4dCwgImdhaW4iX3MsIDAuMCwgLUZMVF9NQVgsIDQwICogc3RkOjpsb2cxMChzdGQ6Om51
bWVyaWNfbGltaXRzPGZsb2F0Pjo6bWF4KCkpLCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQorICAg
ICwgbV9wYXJhbWV0ZXI0KEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0LCAiZGV0dW5lIl9zLCAw
LjAsIC0xNTM2MDAsIDE1MzYwMCwgQXV0b21hdGlvblJhdGU6OkFSYXRlKSkKIHsKICAgICBpZiAo
YXV0b0luaXRpYWxpemUpCiAgICAgICAgIGluaXRpYWxpemUoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRGVsYXlQcm9jZXNzb3IuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9EZWxheVByb2Nlc3Nvci5jcHAKaW5kZXggYWVlNDBlOTRl
NjVkZWU0YmY4NDQyNTEyOTRlMzE0Mzc4YWQwNDJhNS4uMWY5MGNiYzlmMTk3MDdhOWJjMTdhMTEz
YmNjNGIxZDU4Zjk0MDUwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9EZWxheVByb2Nlc3Nvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9EZWxheVByb2Nlc3Nvci5jcHAKQEAgLTM0LDcgKzM0LDcgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogCiBEZWxheVByb2Nlc3Nvcjo6RGVsYXlQcm9jZXNzb3IoQmFzZUF1ZGlvQ29udGV4dCYg
Y29udGV4dCwgZmxvYXQgc2FtcGxlUmF0ZSwgdW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscywgZG91
YmxlIG1heERlbGF5VGltZSkKICAgICA6IEF1ZGlvRFNQS2VybmVsUHJvY2Vzc29yKHNhbXBsZVJh
dGUsIG51bWJlck9mQ2hhbm5lbHMpCi0gICAgLCBtX2RlbGF5VGltZShBdWRpb1BhcmFtOjpjcmVh
dGUoY29udGV4dCwgImRlbGF5VGltZSIsIDAuMCwgMC4wLCBtYXhEZWxheVRpbWUsIEF1dG9tYXRp
b25SYXRlOjpBUmF0ZSkpCisgICAgLCBtX2RlbGF5VGltZShBdWRpb1BhcmFtOjpjcmVhdGUoY29u
dGV4dCwgImRlbGF5VGltZSJfcywgMC4wLCAwLjAsIG1heERlbGF5VGltZSwgQXV0b21hdGlvblJh
dGU6OkFSYXRlKSkKIHsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9XYXZlU2hhcGVyTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL1dhdmVTaGFwZXJOb2RlLmNwcAppbmRleCBmYzE1MjgyN2IzYTBjYzI3YThkNDNiNTQ1NDRm
ZjRiYzViYzQ5YzliLi42NDI5YzMwNTE2MTJhZmVlODJiM2ZjYmQ1OGIyZjYwNzQwZmY5NDg0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1dhdmVTaGFwZXJOb2Rl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1dhdmVTaGFwZXJOb2Rl
LmNwcApAQCAtNDMsNyArNDMsNyBAQCBFeGNlcHRpb25PcjxSZWY8V2F2ZVNoYXBlck5vZGU+PiBX
YXZlU2hhcGVyTm9kZTo6Y3JlYXRlKEJhc2VBdWRpb0NvbnRleHQmIGNvbnRleAogICAgIGlmIChv
cHRpb25zLmN1cnZlKSB7CiAgICAgICAgIGN1cnZlID0gRmxvYXQzMkFycmF5Ojp0cnlDcmVhdGUo
b3B0aW9ucy5jdXJ2ZS0+ZGF0YSgpLCBvcHRpb25zLmN1cnZlLT5zaXplKCkpOwogICAgICAgICBp
ZiAoIWN1cnZlKQotICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVy
cm9yLCAiSW52YWxpZCBjdXJ2ZSBwYXJhbWV0ZXIiIH07CisgICAgICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJJbnZhbGlkIGN1cnZlIHBhcmFtZXRlciJfcyB9
OwogICAgIH0KIAogICAgIGF1dG8gbm9kZSA9IGFkb3B0UmVmKCpuZXcgV2F2ZVNoYXBlck5vZGUo
Y29udGV4dCkpOwpAQCAtNzYsNyArNzYsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBXYXZlU2hhcGVy
Tm9kZTo6c2V0Q3VydmVGb3JCaW5kaW5ncyhSZWZQdHI8RmxvYXQzMkFycmF5PiYmIGN1cgogICAg
IEFTU0VSVChpc01haW5UaHJlYWQoKSk7IAogICAgIERFQlVHX0xPRyhMT0dJREVOVElGSUVSKTsK
ICAgICBpZiAoY3VydmUgJiYgY3VydmUtPmxlbmd0aCgpIDwgMikKLSAgICAgICAgcmV0dXJuIEV4
Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiTGVuZ3RoIG9mIGN1cnZlIGFycmF5IGNhbm5v
dCBiZSBsZXNzIHRoYW4gMiIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRT
dGF0ZUVycm9yLCAiTGVuZ3RoIG9mIGN1cnZlIGFycmF5IGNhbm5vdCBiZSBsZXNzIHRoYW4gMiJf
cyB9OwogCiAgICAgaWYgKGN1cnZlKSB7CiAgICAgICAgIC8vIFRoZSBzcGVjaWZpY2F0aW9uIHN0
YXRlcyB0aGF0IHdlIHNob3VsZCBtYWludGFpbiBhbiBpbnRlcm5hbCBjb3B5IG9mIHRoZSBjdXJ2
ZSBzbyB0aGF0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1dl
YkF1dGhlbnRpY2F0aW9uVXRpbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRo
bi9XZWJBdXRoZW50aWNhdGlvblV0aWxzLmNwcAppbmRleCBjMWZiZjA1NmNjNmFiNWUxODI5ODgy
MjQ2MzQ0MWI0YTg1ZWFiZDRjLi4zMzJlMmJlNzk1YTAxZjFlMDQ2NjJkYzQxMTNiYWVhYzQ0MDcx
ZTc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1dlYkF1dGhl
bnRpY2F0aW9uVXRpbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4v
V2ViQXV0aGVudGljYXRpb25VdGlscy5jcHAKQEAgLTEzOCw3ICsxMzgsNyBAQCBjYm9yOjpDQk9S
VmFsdWU6Ok1hcFZhbHVlIGJ1aWxkQXR0ZXN0YXRpb25NYXAoVmVjdG9yPHVpbnQ4X3Q+JiYgYXV0
aERhdGEsIFN0cmluZwogICAgICAgICBjb25zdCBzaXplX3QgYWFndWlkT2Zmc2V0ID0gcnBJZEhh
c2hMZW5ndGggKyBmbGFnc0xlbmd0aCArIHNpZ25Db3VudGVyTGVuZ3RoOwogICAgICAgICBpZiAo
YXV0aERhdGEuc2l6ZSgpID49IGFhZ3VpZE9mZnNldCArIGFhZ3VpZExlbmd0aCkKICAgICAgICAg
ICAgIG1lbXNldChhdXRoRGF0YS5kYXRhKCkgKyBhYWd1aWRPZmZzZXQsIDAsIGFhZ3VpZExlbmd0
aCk7Ci0gICAgICAgIGZvcm1hdCA9IG5vbmVBdHRlc3RhdGlvblZhbHVlOworICAgICAgICBmb3Jt
YXQgPSBTdHJpbmcgeyBub25lQXR0ZXN0YXRpb25WYWx1ZSB9OwogICAgICAgICBzdGF0ZW1lbnRN
YXAuY2xlYXIoKTsKICAgICB9CiAgICAgYXR0ZXN0YXRpb25PYmplY3RNYXBbY2Jvcjo6Q0JPUlZh
bHVlKCJhdXRoRGF0YSIpXSA9IGNib3I6OkNCT1JWYWx1ZShXVEZNb3ZlKGF1dGhEYXRhKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRGV2aWNlUmVz
cG9uc2VDb252ZXJ0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRv
L0RldmljZVJlc3BvbnNlQ29udmVydGVyLmNwcAppbmRleCBmMjFjNWVlN2EyNWY1ZTkyNzU0NDMx
ZDM1NGE4N2E4ZDIxYzU4M2M4Li43MzVhOWJmOGUwM2E4NDJhOTdkNDY5NGFjY2M2YjIyZTEzZWZl
MDQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRGV2
aWNlUmVzcG9uc2VDb252ZXJ0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXV0aG4vZmlkby9EZXZpY2VSZXNwb25zZUNvbnZlcnRlci5jcHAKQEAgLTEyNiw3ICsxMjYsNyBA
QCBSZWZQdHI8QXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2U+IHJlYWRDVEFQTWFrZUNy
ZWRlbnRpYWxSZXNwb25zZShjb25zdCBWZQogICAgICAgICAvLyBUaGUgcmVhc29uIHdoeSB3ZSBj
YW4ndCBkaXJlY3RseSBwYXNzIGF1dGhlbnRpY2F0b3JEYXRhL2Zvcm1hdC9hdHRTdG10IHRvIGJ1
aWxkQXR0ZXN0YXRpb25PYmplY3QKICAgICAgICAgLy8gaXMgdGhhdCB0aGV5IGFyZSBDQk9SVmFs
dWUgaW5zdGVhZCBvZiB0aGUgcmF3IHR5cGUuCiAgICAgICAgIC8vIEFsc28sIGZvcm1hdCBhbmQg
YXR0U3RtdCBhcmUgb21pdHRlZCBhcyB0aGV5IGFyZSBub3QgdXNlZnVsIGluIG5vbmUgYXR0ZXN0
YXRpb24uCi0gICAgICAgIGF0dGVzdGF0aW9uT2JqZWN0ID0gYnVpbGRBdHRlc3RhdGlvbk9iamVj
dChWZWN0b3I8dWludDhfdD4oYXV0aGVudGljYXRvckRhdGEuZ2V0Qnl0ZVN0cmluZygpKSwgIiIs
IHsgfSwgYXR0ZXN0YXRpb24pOworICAgICAgICBhdHRlc3RhdGlvbk9iamVjdCA9IGJ1aWxkQXR0
ZXN0YXRpb25PYmplY3QoVmVjdG9yPHVpbnQ4X3Q+KGF1dGhlbnRpY2F0b3JEYXRhLmdldEJ5dGVT
dHJpbmcoKSksIFN0cmluZyB7IGVtcHR5U3RyaW5nKCkgfSwgeyB9LCBhdHRlc3RhdGlvbik7CiAg
ICAgfSBlbHNlIHsKICAgICAgICAgQ0JPUjo6TWFwVmFsdWUgYXR0ZXN0YXRpb25PYmplY3RNYXA7
CiAgICAgICAgIGF0dGVzdGF0aW9uT2JqZWN0TWFwW0NCT1IoImF1dGhEYXRhIildID0gV1RGTW92
ZShhdXRoZW50aWNhdG9yRGF0YSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1dGhuL2ZpZG8vUGluLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4v
Zmlkby9QaW4uY3BwCmluZGV4IDlmYTY3M2YxODJjY2NiMDQ2MjE3MzNhZTM4YzUyMzZkMzYyYjVj
ODguLmI0NGY5MGIwMTQzNDI3ZDE1MjY3ZDdjOWY2N2YwY2ZiMDJjM2ZiM2QgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9QaW4uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9QaW4uY3BwCkBAIC0xNzEsNyArMTcxLDcg
QEAgc3RkOjpvcHRpb25hbDxLZXlBZ3JlZW1lbnRSZXNwb25zZT4gS2V5QWdyZWVtZW50UmVzcG9u
c2U6OnBhcnNlRnJvbUNPU0UoY29uc3QgQ0IKIAogICAgIGNvbnN0IGF1dG8mIHggPSB4SXQtPnNl
Y29uZC5nZXRCeXRlU3RyaW5nKCk7CiAgICAgY29uc3QgYXV0byYgeSA9IHlJdC0+c2Vjb25kLmdl
dEJ5dGVTdHJpbmcoKTsKLSAgICBhdXRvIHBlZXJLZXkgPSBDcnlwdG9LZXlFQzo6aW1wb3J0UmF3
KENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkVDREgsICJQLTI1NiIsIGVuY29kZVJhd1B1Ymxp
Y0tleSh4LCB5KSwgdHJ1ZSwgQ3J5cHRvS2V5VXNhZ2VEZXJpdmVCaXRzKTsKKyAgICBhdXRvIHBl
ZXJLZXkgPSBDcnlwdG9LZXlFQzo6aW1wb3J0UmF3KENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6
OkVDREgsICJQLTI1NiJfcywgZW5jb2RlUmF3UHVibGljS2V5KHgsIHkpLCB0cnVlLCBDcnlwdG9L
ZXlVc2FnZURlcml2ZUJpdHMpOwogICAgIGlmICghcGVlcktleSkKICAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKIApAQCAtMjQ3LDcgKzI0Nyw3IEBAIHN0ZDo6b3B0aW9uYWw8VG9rZW5SZXF1
ZXN0PiBUb2tlblJlcXVlc3Q6OnRyeUNyZWF0ZShjb25zdCBDU3RyaW5nJiBwaW4sIGNvbnN0IENy
CiAgICAgLy8gVGhlIGZvbGxvd2luZyBpbXBsZW1lbnRzIFNlY3Rpb24gNS41LjQgR2V0dGluZyBz
aGFyZWRTZWNyZXQgZnJvbSBBdXRoZW50aWNhdG9yLgogICAgIC8vIGh0dHBzOi8vZmlkb2FsbGlh
bmNlLm9yZy9zcGVjcy9maWRvLXYyLjAtcHMtMjAxOTAxMzAvZmlkby1jbGllbnQtdG8tYXV0aGVu
dGljYXRvci1wcm90b2NvbC12Mi4wLXBzLTIwMTkwMTMwLmh0bWwjZ2V0dGluZ1NoYXJlZFNlY3Jl
dAogICAgIC8vIDEuIEdlbmVyYXRlIGEgUDI1NiBrZXkgcGFpci4KLSAgICBhdXRvIGtleVBhaXJS
ZXN1bHQgPSBDcnlwdG9LZXlFQzo6Z2VuZXJhdGVQYWlyKENyeXB0b0FsZ29yaXRobUlkZW50aWZp
ZXI6OkVDREgsICJQLTI1NiIsIHRydWUsIENyeXB0b0tleVVzYWdlRGVyaXZlQml0cyk7CisgICAg
YXV0byBrZXlQYWlyUmVzdWx0ID0gQ3J5cHRvS2V5RUM6OmdlbmVyYXRlUGFpcihDcnlwdG9BbGdv
cml0aG1JZGVudGlmaWVyOjpFQ0RILCAiUC0yNTYiX3MsIHRydWUsIENyeXB0b0tleVVzYWdlRGVy
aXZlQml0cyk7CiAgICAgQVNTRVJUKCFrZXlQYWlyUmVzdWx0Lmhhc0V4Y2VwdGlvbigpKTsKICAg
ICBhdXRvIGtleVBhaXIgPSBrZXlQYWlyUmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vVTJmUmVzcG9u
c2VDb252ZXJ0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL1Uy
ZlJlc3BvbnNlQ29udmVydGVyLmNwcAppbmRleCAzZjM2NmFhMjcwNjg0OTc0NWFjYTI4MTc5YjU5
OTZlNjY2ZWUyNmVkLi5hNGZkZTE1ZmZiZmQ1NTU3N2IyMjlkODY0OWM2NzY0OGNlN2ViOTZkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vVTJmUmVzcG9u
c2VDb252ZXJ0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlk
by9VMmZSZXNwb25zZUNvbnZlcnRlci5jcHAKQEAgLTE1OCw3ICsxNTgsNyBAQCBSZWZQdHI8QXV0
aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2U+IHJlYWRVMmZSZWdpc3RlclJlc3BvbnNlKGNv
bnN0IFN0cmluZyYgcgogICAgIGlmIChmaWRvQXR0ZXN0YXRpb25TdGF0ZW1lbnQuZW1wdHkoKSkK
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBhdXRvIGF0dGVzdGF0aW9uT2JqZWN0ID0g
YnVpbGRBdHRlc3RhdGlvbk9iamVjdChXVEZNb3ZlKGF1dGhEYXRhKSwgImZpZG8tdTJmIiwgV1RG
TW92ZShmaWRvQXR0ZXN0YXRpb25TdGF0ZW1lbnQpLCBhdHRlc3RhdGlvbik7CisgICAgYXV0byBh
dHRlc3RhdGlvbk9iamVjdCA9IGJ1aWxkQXR0ZXN0YXRpb25PYmplY3QoV1RGTW92ZShhdXRoRGF0
YSksICJmaWRvLXUyZiJfcywgV1RGTW92ZShmaWRvQXR0ZXN0YXRpb25TdGF0ZW1lbnQpLCBhdHRl
c3RhdGlvbik7CiAKICAgICByZXR1cm4gQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2U6
OmNyZWF0ZShjcmVkZW50aWFsSWQsIGF0dGVzdGF0aW9uT2JqZWN0LCBhdHRhY2htZW50KTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvQ2hhbmdlVmVy
c2lvbldyYXBwZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9DaGFu
Z2VWZXJzaW9uV3JhcHBlci5jcHAKaW5kZXggOTRlZjUwOTU1OGI2YzI2NTlmZGZhM2Q2ODliNGIw
ZDI4MzczZDhhOC4uMzVjMGUxNmUzZTM1MTMyMzNjMjJkOGYzYWE1NjQ1MjAzZDk4NDc0NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9DaGFuZ2VWZXJzaW9u
V3JhcHBlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9DaGFu
Z2VWZXJzaW9uV3JhcHBlci5jcHAKQEAgLTUzLDcgKzUzLDcgQEAgYm9vbCBDaGFuZ2VWZXJzaW9u
V3JhcHBlcjo6cGVyZm9ybVByZWZsaWdodChTUUxUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24pCiAg
ICAgfQogCiAgICAgaWYgKGFjdHVhbFZlcnNpb24gIT0gbV9vbGRWZXJzaW9uKSB7Ci0gICAgICAg
IG1fc3FsRXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpWRVJTSU9OX0VSUiwgImN1
cnJlbnQgdmVyc2lvbiBvZiB0aGUgZGF0YWJhc2UgYW5kIGBvbGRWZXJzaW9uYCBhcmd1bWVudCBk
byBub3QgbWF0Y2giKTsKKyAgICAgICAgbV9zcWxFcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FM
RXJyb3I6OlZFUlNJT05fRVJSLCAiY3VycmVudCB2ZXJzaW9uIG9mIHRoZSBkYXRhYmFzZSBhbmQg
YG9sZFZlcnNpb25gIGFyZ3VtZW50IGRvIG5vdCBtYXRjaCJfcyk7CiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0
YWJhc2UvRE9NV2luZG93V2ViRGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJkYXRhYmFzZS9ET01XaW5kb3dXZWJEYXRhYmFzZS5jcHAKaW5kZXggOGFjMmFkNmFmNWU0YTNi
ZmY4NGMyNjc2YzBlMjRlNmJiYzJmM2I1Yy4uNTZhYzBlNDIyZGQ0ZGY5MzZlM2NjYjAwY2U1ZjQ1
YzNkNjU1NDE1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFz
ZS9ET01XaW5kb3dXZWJEYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJkYXRhYmFzZS9ET01XaW5kb3dXZWJEYXRhYmFzZS5jcHAKQEAgLTQ1LDcgKzQ1LDcgQEAgRXhj
ZXB0aW9uT3I8UmVmUHRyPERhdGFiYXNlPj4gRE9NV2luZG93V2ViRGF0YWJhc2U6Om9wZW5EYXRh
YmFzZShET01XaW5kb3cmIHdpbmQKICAgICBhdXRvKiBkb2N1bWVudCA9IHdpbmRvdy5kb2N1bWVu
dCgpOwogICAgIGlmICghZG9jdW1lbnQpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBTZWN1
cml0eUVycm9yIH07Ci0gICAgZG9jdW1lbnQtPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3Vy
Y2U6OlN0b3JhZ2UsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgIldlYiBTUUwgaXMgZGVwcmVjYXRl
ZC4gUGxlYXNlIHVzZSBJbmRleGVkREIgaW5zdGVhZC4iKTsKKyAgICBkb2N1bWVudC0+YWRkQ29u
c29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6U3RvcmFnZSwgTWVzc2FnZUxldmVsOjpXYXJuaW5n
LCAiV2ViIFNRTCBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlIEluZGV4ZWREQiBpbnN0ZWFkLiJf
cyk7CiAKICAgICBhdXRvJiBzZWN1cml0eU9yaWdpbiA9IGRvY3VtZW50LT5zZWN1cml0eU9yaWdp
bigpOwogICAgIGlmICghc2VjdXJpdHlPcmlnaW4uY2FuQWNjZXNzRGF0YWJhc2UoJmRvY3VtZW50
LT50b3BPcmlnaW4oKSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRh
dGFiYXNlL0RhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2Uv
RGF0YWJhc2UuY3BwCmluZGV4IDdjZmIxYzQxMGU2N2QwYjA3ZjdlMzQ5NDgyZGMwZWU5ZjZiMTE2
ZGYuLmNkMGM0MTRmYjMxMDAyNDEzZWEyYmZkZDA5ODMwNWQ1MWI5ZjFmZDIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwCkBAIC0xOTgsNyAr
MTk4LDcgQEAgRGF0YWJhc2U6OkRhdGFiYXNlKERhdGFiYXNlQ29udGV4dCYgY29udGV4dCwgY29u
c3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGUKICAgICAsIG1fZGlzcGxheU5hbWUoZGlz
cGxheU5hbWUuaXNvbGF0ZWRDb3B5KCkpCiAgICAgLCBtX2VzdGltYXRlZFNpemUoZXN0aW1hdGVk
U2l6ZSkKICAgICAsIG1fZmlsZW5hbWUoRGF0YWJhc2VNYW5hZ2VyOjpzaW5nbGV0b24oKS5mdWxs
UGF0aEZvckRhdGFiYXNlKG1fZG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCksIG1fbmFtZSkpCi0g
ICAgLCBtX2RhdGFiYXNlQXV0aG9yaXplcihEYXRhYmFzZUF1dGhvcml6ZXI6OmNyZWF0ZSh1bnF1
YWxpZmllZEluZm9UYWJsZU5hbWUpKQorICAgICwgbV9kYXRhYmFzZUF1dGhvcml6ZXIoRGF0YWJh
c2VBdXRob3JpemVyOjpjcmVhdGUoU3RyaW5nIHsgdW5xdWFsaWZpZWRJbmZvVGFibGVOYW1lIH0p
KQogewogICAgIHsKICAgICAgICAgTG9ja2VyIGxvY2tlciB7IGd1aWRMb2NrIH07CkBAIC02ODcs
NyArNjg3LDcgQEAgdm9pZCBEYXRhYmFzZTo6cnVuVHJhbnNhY3Rpb24oUmVmUHRyPFNRTFRyYW5z
YWN0aW9uQ2FsbGJhY2s+JiYgY2FsbGJhY2ssIFJlZlB0cjwKICAgICBpZiAoIW1faXNUcmFuc2Fj
dGlvblF1ZXVlRW5hYmxlZCkgewogICAgICAgICBpZiAoZXJyb3JDYWxsYmFjaykgewogICAgICAg
ICAgICAgbV9kb2N1bWVudC0+ZXZlbnRMb29wKCkucXVldWVUYXNrKFRhc2tTb3VyY2U6Ok5ldHdv
cmtpbmcsIFtlcnJvckNhbGxiYWNrID0gUmVmIHsgKmVycm9yQ2FsbGJhY2sgfV0oKSB7Ci0gICAg
ICAgICAgICAgICAgZXJyb3JDYWxsYmFjay0+aGFuZGxlRXZlbnQoU1FMRXJyb3I6OmNyZWF0ZShT
UUxFcnJvcjo6VU5LTk9XTl9FUlIsICJkYXRhYmFzZSBoYXMgYmVlbiBjbG9zZWQiKSk7CisgICAg
ICAgICAgICAgICAgZXJyb3JDYWxsYmFjay0+aGFuZGxlRXZlbnQoU1FMRXJyb3I6OmNyZWF0ZShT
UUxFcnJvcjo6VU5LTk9XTl9FUlIsICJkYXRhYmFzZSBoYXMgYmVlbiBjbG9zZWQiX3MpKTsKICAg
ICAgICAgICAgIH0pOwogICAgICAgICB9CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VBdXRob3JpemVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VBdXRob3JpemVyLmNw
cAppbmRleCBlMmRjNzA2ZjVkOTY1ZDJkN2E1Y2JhODcyMTY2Y2Y1M2E5ODA4YTFmLi5kY2Y5ZWI5
NTJkZGQwM2I0YjBkN2FkODZhNmNjZDVmYjQzZTNkY2VhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlQXV0aG9yaXplci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZUF1dGhvcml6ZXIuY3BwCkBA
IC02Miw2NCArNjIsNjQgQEAgdm9pZCBEYXRhYmFzZUF1dGhvcml6ZXI6OmFkZEFsbG93ZWRGdW5j
dGlvbnMoKQogewogICAgIC8vIFNRTGl0ZSBmdW5jdGlvbnMgdXNlZCB0byBoZWxwIGltcGxlbWVu
dCBzb21lIG9wZXJhdGlvbnMKICAgICAvLyBBTFRFUiBUQUJMRSBoZWxwZXJzCi0gICAgbV9hbGxv
d2VkRnVuY3Rpb25zLmFkZCgic3FsaXRlX3JlbmFtZV90YWJsZSIpOwotICAgIG1fYWxsb3dlZEZ1
bmN0aW9ucy5hZGQoInNxbGl0ZV9yZW5hbWVfdHJpZ2dlciIpOworICAgIG1fYWxsb3dlZEZ1bmN0
aW9ucy5hZGQoInNxbGl0ZV9yZW5hbWVfdGFibGUiX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9u
cy5hZGQoInNxbGl0ZV9yZW5hbWVfdHJpZ2dlciJfcyk7CiAgICAgLy8gR0xPQiBoZWxwZXJzCi0g
ICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgiZ2xvYiIpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9u
cy5hZGQoImdsb2IiX3MpOwogCiAgICAgLy8gU1FMaXRlIGNvcmUgZnVuY3Rpb25zCi0gICAgbV9h
bGxvd2VkRnVuY3Rpb25zLmFkZCgiYWJzIik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgi
Y2hhbmdlcyIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoImNvYWxlc2NlIik7Ci0gICAg
bV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgiZ2xvYiIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5h
ZGQoImlmbnVsbCIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoImhleCIpOwotICAgIG1f
YWxsb3dlZEZ1bmN0aW9ucy5hZGQoImxhc3RfaW5zZXJ0X3Jvd2lkIik7Ci0gICAgbV9hbGxvd2Vk
RnVuY3Rpb25zLmFkZCgibGVuZ3RoIik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgibGlr
ZSIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoImxvd2VyIik7Ci0gICAgbV9hbGxvd2Vk
RnVuY3Rpb25zLmFkZCgibHRyaW0iKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJtYXgi
KTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJtaW4iKTsKLSAgICBtX2FsbG93ZWRGdW5j
dGlvbnMuYWRkKCJudWxsaWYiKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJxdW90ZSIp
OwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInJlcGxhY2UiKTsKLSAgICBtX2FsbG93ZWRG
dW5jdGlvbnMuYWRkKCJyb3VuZCIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInJ0cmlt
Iik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgic291bmRleCIpOwotICAgIG1fYWxsb3dl
ZEZ1bmN0aW9ucy5hZGQoInNxbGl0ZV9zb3VyY2VfaWQiKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlv
bnMuYWRkKCJzcWxpdGVfdmVyc2lvbiIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInN1
YnN0ciIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInRvdGFsX2NoYW5nZXMiKTsKLSAg
ICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJ0cmltIik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25z
LmFkZCgidHlwZW9mIik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgidXBwZXIiKTsKLSAg
ICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJ6ZXJvYmxvYiIpOworICAgIG1fYWxsb3dlZEZ1bmN0
aW9ucy5hZGQoImFicyJfcyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgiY2hhbmdlcyJf
cyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgiY29hbGVzY2UiX3MpOworICAgIG1fYWxs
b3dlZEZ1bmN0aW9ucy5hZGQoImdsb2IiX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQo
ImlmbnVsbCJfcyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgiaGV4Il9zKTsKKyAgICBt
X2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJsYXN0X2luc2VydF9yb3dpZCJfcyk7CisgICAgbV9hbGxv
d2VkRnVuY3Rpb25zLmFkZCgibGVuZ3RoIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRk
KCJsaWtlIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJsb3dlciJfcyk7CisgICAg
bV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgibHRyaW0iX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9u
cy5hZGQoIm1heCJfcyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgibWluIl9zKTsKKyAg
ICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJudWxsaWYiX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0
aW9ucy5hZGQoInF1b3RlIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJyZXBsYWNl
Il9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJyb3VuZCJfcyk7CisgICAgbV9hbGxv
d2VkRnVuY3Rpb25zLmFkZCgicnRyaW0iX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQo
InNvdW5kZXgiX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInNxbGl0ZV9zb3VyY2Vf
aWQiX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInNxbGl0ZV92ZXJzaW9uIl9zKTsK
KyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJzdWJzdHIiX3MpOworICAgIG1fYWxsb3dlZEZ1
bmN0aW9ucy5hZGQoInRvdGFsX2NoYW5nZXMiX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5h
ZGQoInRyaW0iX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInR5cGVvZiJfcyk7Cisg
ICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgidXBwZXIiX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0
aW9ucy5hZGQoInplcm9ibG9iIl9zKTsKIAogICAgIC8vIFNRTGl0ZSBkYXRlIGFuZCB0aW1lIGZ1
bmN0aW9ucwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoImRhdGUiKTsKLSAgICBtX2FsbG93
ZWRGdW5jdGlvbnMuYWRkKCJ0aW1lIik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgiZGF0
ZXRpbWUiKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJqdWxpYW5kYXkiKTsKLSAgICBt
X2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJzdHJmdGltZSIpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9u
cy5hZGQoImRhdGUiX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInRpbWUiX3MpOwor
ICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoImRhdGV0aW1lIl9zKTsKKyAgICBtX2FsbG93ZWRG
dW5jdGlvbnMuYWRkKCJqdWxpYW5kYXkiX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQo
InN0cmZ0aW1lIl9zKTsKIAogICAgIC8vIFNRTGl0ZSBhZ2dyZWdhdGUgZnVuY3Rpb25zCiAgICAg
Ly8gbWF4KCkgYW5kIG1pbigpIGFyZSBhbHJlYWR5IGluIHRoZSBsaXN0Ci0gICAgbV9hbGxvd2Vk
RnVuY3Rpb25zLmFkZCgiYXZnIik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgiY291bnQi
KTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJncm91cF9jb25jYXQiKTsKLSAgICBtX2Fs
bG93ZWRGdW5jdGlvbnMuYWRkKCJzdW0iKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJ0
b3RhbCIpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoImF2ZyJfcyk7CisgICAgbV9hbGxv
d2VkRnVuY3Rpb25zLmFkZCgiY291bnQiX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQo
Imdyb3VwX2NvbmNhdCJfcyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgic3VtIl9zKTsK
KyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJ0b3RhbCJfcyk7CiAKICAgICAvLyBTUUxpdGUg
RlRTIGZ1bmN0aW9ucwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoIm1hdGNoIik7Ci0gICAg
bV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgic25pcHBldCIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9u
cy5hZGQoIm9mZnNldHMiKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJvcHRpbWl6ZSIp
OworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoIm1hdGNoIl9zKTsKKyAgICBtX2FsbG93ZWRG
dW5jdGlvbnMuYWRkKCJzbmlwcGV0Il9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJv
ZmZzZXRzIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJvcHRpbWl6ZSJfcyk7CiAK
ICAgICAvLyBTUUxpdGUgSUNVIGZ1bmN0aW9ucwogICAgIC8vIGxpa2UoKSwgbG93ZXIoKSBhbmQg
dXBwZXIoKSBhcmUgYWxyZWFkeSBpbiB0aGUgbGlzdAotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5h
ZGQoInJlZ2V4cCIpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInJlZ2V4cCJfcyk7CiB9
CiAKIGludCBEYXRhYmFzZUF1dGhvcml6ZXI6OmNyZWF0ZVRhYmxlKGNvbnN0IFN0cmluZyYgdGFi
bGVOYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9E
YXRhYmFzZVRyYWNrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9E
YXRhYmFzZVRyYWNrZXIuY3BwCmluZGV4IDllYjM5MWM2ZDBiZDZkNDg2MDUxMGVkYWI3Mjg5MzM5
OTUwNmJjNzIuLmE0ZjBjNzQ0NTIzNzFhNGRiZDhkZjA4NjA2OWVjZDEwYWJhMzIyOWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJh
Y2tlci5jcHAKQEAgLTkxLDcgKzkxLDcgQEAgRGF0YWJhc2VUcmFja2VyOjpEYXRhYmFzZVRyYWNr
ZXIoY29uc3QgU3RyaW5nJiBkYXRhYmFzZVBhdGgpCiAKIFN0cmluZyBEYXRhYmFzZVRyYWNrZXI6
OnRyYWNrZXJEYXRhYmFzZVBhdGgoKSBjb25zdAogewotICAgIHJldHVybiBTUUxpdGVGaWxlU3lz
dGVtOjphcHBlbmREYXRhYmFzZUZpbGVOYW1lVG9QYXRoKG1fZGF0YWJhc2VEaXJlY3RvcnlQYXRo
Lmlzb2xhdGVkQ29weSgpLCAiRGF0YWJhc2VzLmRiIik7CisgICAgcmV0dXJuIFNRTGl0ZUZpbGVT
eXN0ZW06OmFwcGVuZERhdGFiYXNlRmlsZU5hbWVUb1BhdGgobV9kYXRhYmFzZURpcmVjdG9yeVBh
dGguaXNvbGF0ZWRDb3B5KCksICJEYXRhYmFzZXMuZGIiX3MpOwogfQogCiB2b2lkIERhdGFiYXNl
VHJhY2tlcjo6b3BlblRyYWNrZXJEYXRhYmFzZShUcmFja2VyQ3JlYXRpb25BY3Rpb24gY3JlYXRl
QWN0aW9uKQpAQCAtMTE4LDE0ICsxMTgsMTQgQEAgdm9pZCBEYXRhYmFzZVRyYWNrZXI6Om9wZW5U
cmFja2VyRGF0YWJhc2UoVHJhY2tlckNyZWF0aW9uQWN0aW9uIGNyZWF0ZUFjdGlvbikKICAgICB9
CiAgICAgbV9kYXRhYmFzZS5kaXNhYmxlVGhyZWFkaW5nQ2hlY2tzKCk7CiAKLSAgICBpZiAoIW1f
ZGF0YWJhc2UudGFibGVFeGlzdHMoIk9yaWdpbnMiKSkgeworICAgIGlmICghbV9kYXRhYmFzZS50
YWJsZUV4aXN0cygiT3JpZ2lucyJfcykpIHsKICAgICAgICAgaWYgKCFtX2RhdGFiYXNlLmV4ZWN1
dGVDb21tYW5kKCJDUkVBVEUgVEFCTEUgT3JpZ2lucyAob3JpZ2luIFRFWFQgVU5JUVVFIE9OIENP
TkZMSUNUIFJFUExBQ0UsIHF1b3RhIElOVEVHRVIgTk9UIE5VTEwgT04gQ09ORkxJQ1QgRkFJTCk7
Il9zKSkgewogICAgICAgICAgICAgLy8gRklYTUU6IGFuZCBoZXJlCiAgICAgICAgICAgICBMT0df
RVJST1IoIkZhaWxlZCB0byBjcmVhdGUgT3JpZ2lucyB0YWJsZSIpOwogICAgICAgICB9CiAgICAg
fQogCi0gICAgaWYgKCFtX2RhdGFiYXNlLnRhYmxlRXhpc3RzKCJEYXRhYmFzZXMiKSkgeworICAg
IGlmICghbV9kYXRhYmFzZS50YWJsZUV4aXN0cygiRGF0YWJhc2VzIl9zKSkgewogICAgICAgICBp
ZiAoIW1fZGF0YWJhc2UuZXhlY3V0ZUNvbW1hbmQoIkNSRUFURSBUQUJMRSBEYXRhYmFzZXMgKGd1
aWQgSU5URUdFUiBQUklNQVJZIEtFWSBBVVRPSU5DUkVNRU5ULCBvcmlnaW4gVEVYVCwgbmFtZSBU
RVhULCBkaXNwbGF5TmFtZSBURVhULCBlc3RpbWF0ZWRTaXplIElOVEVHRVIsIHBhdGggVEVYVCk7
Il9zKSkgewogICAgICAgICAgICAgLy8gRklYTUU6IGFuZCBoZXJlCiAgICAgICAgICAgICBMT0df
RVJST1IoIkZhaWxlZCB0byBjcmVhdGUgRGF0YWJhc2VzIHRhYmxlIik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFN0YXRlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFN0YXRlbWVudC5jcHAKaW5kZXggYjc4
MDU4MmRjOTc5NTkyMzM0NjNmOGZkOGFjMTlkMDM5YWViODgyMC4uZDkxZDAzMTQ1OTE1YjIxYTM1
N2U4NWYwNWNjYmE0MGU1ZGJlYTExYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJkYXRhYmFzZS9TUUxTdGF0ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZGF0YWJhc2UvU1FMU3RhdGVtZW50LmNwcApAQCAtMTI2LDcgKzEyNiw3IEBAIGJvb2wg
U1FMU3RhdGVtZW50OjpleGVjdXRlKERhdGFiYXNlJiBkYikKICAgICAvLyBJZiB0aGlzIGlzIHRo
ZSBjYXNlLCB0aGV5IG1pZ2h0IGJlIHRyeWluZyB0byBkbyBzb21ldGhpbmcgZmlzaHkgb3IgbWFs
aWNpb3VzCiAgICAgaWYgKHN0YXRlbWVudC0+YmluZFBhcmFtZXRlckNvdW50KCkgIT0gbV9hcmd1
bWVudHMuc2l6ZSgpKSB7CiAgICAgICAgIExPRyhTdG9yYWdlQVBJLCAiQmluZCBwYXJhbWV0ZXIg
Y291bnQgZG9lc24ndCBtYXRjaCBudW1iZXIgb2YgcXVlc3Rpb24gbWFya3MiKTsKLSAgICAgICAg
bV9lcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OlNZTlRBWF9FUlIsICJudW1iZXIg
b2YgJz8ncyBpbiBzdGF0ZW1lbnQgc3RyaW5nIGRvZXMgbm90IG1hdGNoIGFyZ3VtZW50IGNvdW50
Iik7CisgICAgICAgIG1fZXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpTWU5UQVhf
RVJSLCAibnVtYmVyIG9mICc/J3MgaW4gc3RhdGVtZW50IHN0cmluZyBkb2VzIG5vdCBtYXRjaCBh
cmd1bWVudCBjb3VudCJfcyk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKQEAgLTIz
NCwxOSArMjM0LDE5IEBAIGJvb2wgU1FMU3RhdGVtZW50OjpwZXJmb3JtQ2FsbGJhY2soU1FMVHJh
bnNhY3Rpb24mIHRyYW5zYWN0aW9uKQogdm9pZCBTUUxTdGF0ZW1lbnQ6OnNldERhdGFiYXNlRGVs
ZXRlZEVycm9yKCkKIHsKICAgICBBU1NFUlQoIW1fZXJyb3IgJiYgIW1fcmVzdWx0U2V0KTsKLSAg
ICBtX2Vycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6VU5LTk9XTl9FUlIsICJ1bmFi
bGUgdG8gZXhlY3V0ZSBzdGF0ZW1lbnQsIGJlY2F1c2UgdGhlIHVzZXIgZGVsZXRlZCB0aGUgZGF0
YWJhc2UiKTsKKyAgICBtX2Vycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6VU5LTk9X
Tl9FUlIsICJ1bmFibGUgdG8gZXhlY3V0ZSBzdGF0ZW1lbnQsIGJlY2F1c2UgdGhlIHVzZXIgZGVs
ZXRlZCB0aGUgZGF0YWJhc2UiX3MpOwogfQogCiB2b2lkIFNRTFN0YXRlbWVudDo6c2V0VmVyc2lv
bk1pc21hdGNoZWRFcnJvcigpCiB7CiAgICAgQVNTRVJUKCFtX2Vycm9yICYmICFtX3Jlc3VsdFNl
dCk7Ci0gICAgbV9lcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OlZFUlNJT05fRVJS
LCAiY3VycmVudCB2ZXJzaW9uIG9mIHRoZSBkYXRhYmFzZSBhbmQgYG9sZFZlcnNpb25gIGFyZ3Vt
ZW50IGRvIG5vdCBtYXRjaCIpOworICAgIG1fZXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVy
cm9yOjpWRVJTSU9OX0VSUiwgImN1cnJlbnQgdmVyc2lvbiBvZiB0aGUgZGF0YWJhc2UgYW5kIGBv
bGRWZXJzaW9uYCBhcmd1bWVudCBkbyBub3QgbWF0Y2giX3MpOwogfQogCiB2b2lkIFNRTFN0YXRl
bWVudDo6c2V0RmFpbHVyZUR1ZVRvUXVvdGEoKQogewogICAgIEFTU0VSVCghbV9lcnJvciAmJiAh
bV9yZXN1bHRTZXQpOwotICAgIG1fZXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpR
VU9UQV9FUlIsICJ0aGVyZSB3YXMgbm90IGVub3VnaCByZW1haW5pbmcgc3RvcmFnZSBzcGFjZSwg
b3IgdGhlIHN0b3JhZ2UgcXVvdGEgd2FzIHJlYWNoZWQgYW5kIHRoZSB1c2VyIGRlY2xpbmVkIHRv
IGFsbG93IG1vcmUgc3BhY2UiKTsKKyAgICBtX2Vycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxF
cnJvcjo6UVVPVEFfRVJSLCAidGhlcmUgd2FzIG5vdCBlbm91Z2ggcmVtYWluaW5nIHN0b3JhZ2Ug
c3BhY2UsIG9yIHRoZSBzdG9yYWdlIHF1b3RhIHdhcyByZWFjaGVkIGFuZCB0aGUgdXNlciBkZWNs
aW5lZCB0byBhbGxvdyBtb3JlIHNwYWNlIl9zKTsKIH0KIAogdm9pZCBTUUxTdGF0ZW1lbnQ6OmNs
ZWFyRmFpbHVyZUR1ZVRvUXVvdGEoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uLmNwcAppbmRleCA2ODMyYWNhOTBlZDZkOWViODFh
YjlmMzU1OTU5M2JmNDY0MzBmZDBmLi5lOWFkNzlmMzI4MmU4NDU5ZGQ3ZDMzZWZmMDJiNmI1Nzlm
MDI2YzBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NR
TFRyYW5zYWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNl
L1NRTFRyYW5zYWN0aW9uLmNwcApAQCAtMTM3LDcgKzEzNyw3IEBAIHZvaWQgU1FMVHJhbnNhY3Rp
b246OmNhbGxFcnJvckNhbGxiYWNrRHVlVG9JbnRlcnJ1cHRpb24oKQogICAgICAgICByZXR1cm47
CiAKICAgICBtX2RhdGFiYXNlLT5kb2N1bWVudCgpLmV2ZW50TG9vcCgpLnF1ZXVlVGFzayhUYXNr
U291cmNlOjpOZXR3b3JraW5nLCBbZXJyb3JDYWxsYmFjayA9IFdURk1vdmUoZXJyb3JDYWxsYmFj
ayldKCkgbXV0YWJsZSB7Ci0gICAgICAgIGVycm9yQ2FsbGJhY2stPmhhbmRsZUV2ZW50KFNRTEVy
cm9yOjpjcmVhdGUoU1FMRXJyb3I6OkRBVEFCQVNFX0VSUiwgInRoZSBkYXRhYmFzZSB3YXMgY2xv
c2VkIikpOworICAgICAgICBlcnJvckNhbGxiYWNrLT5oYW5kbGVFdmVudChTUUxFcnJvcjo6Y3Jl
YXRlKFNRTEVycm9yOjpEQVRBQkFTRV9FUlIsICJ0aGUgZGF0YWJhc2Ugd2FzIGNsb3NlZCJfcykp
OwogICAgIH0pOwogfQogCkBAIC0yMzYsNyArMjM2LDcgQEAgdm9pZCBTUUxUcmFuc2FjdGlvbjo6
b3BlblRyYW5zYWN0aW9uQW5kUHJlZmxpZ2h0KCkKIAogICAgIC8vIElmIHRoZSBkYXRhYmFzZSB3
YXMgZGVsZXRlZCwganVtcCB0byB0aGUgZXJyb3IgY2FsbGJhY2sKICAgICBpZiAobV9kYXRhYmFz
ZS0+ZGVsZXRlZCgpKSB7Ci0gICAgICAgIG1fdHJhbnNhY3Rpb25FcnJvciA9IFNRTEVycm9yOjpj
cmVhdGUoU1FMRXJyb3I6OlVOS05PV05fRVJSLCAidW5hYmxlIHRvIG9wZW4gYSB0cmFuc2FjdGlv
biwgYmVjYXVzZSB0aGUgdXNlciBkZWxldGVkIHRoZSBkYXRhYmFzZSIpOworICAgICAgICBtX3Ry
YW5zYWN0aW9uRXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpVTktOT1dOX0VSUiwg
InVuYWJsZSB0byBvcGVuIGEgdHJhbnNhY3Rpb24sIGJlY2F1c2UgdGhlIHVzZXIgZGVsZXRlZCB0
aGUgZGF0YWJhc2UiX3MpOwogCiAgICAgICAgIGhhbmRsZVRyYW5zYWN0aW9uRXJyb3IoKTsKICAg
ICAgICAgcmV0dXJuOwpAQCAtMjkwLDcgKzI5MCw3IEBAIHZvaWQgU1FMVHJhbnNhY3Rpb246Om9w
ZW5UcmFuc2FjdGlvbkFuZFByZWZsaWdodCgpCiAgICAgICAgIG1fZGF0YWJhc2UtPmVuYWJsZUF1
dGhvcml6ZXIoKTsKICAgICAgICAgbV90cmFuc2FjdGlvbkVycm9yID0gbV93cmFwcGVyLT5zcWxF
cnJvcigpOwogICAgICAgICBpZiAoIW1fdHJhbnNhY3Rpb25FcnJvcikKLSAgICAgICAgICAgIG1f
dHJhbnNhY3Rpb25FcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OlVOS05PV05fRVJS
LCAidW5rbm93biBlcnJvciBvY2N1cnJlZCBkdXJpbmcgdHJhbnNhY3Rpb24gcHJlZmxpZ2h0Iik7
CisgICAgICAgICAgICBtX3RyYW5zYWN0aW9uRXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVy
cm9yOjpVTktOT1dOX0VSUiwgInVua25vd24gZXJyb3Igb2NjdXJyZWQgZHVyaW5nIHRyYW5zYWN0
aW9uIHByZWZsaWdodCJfcyk7CiAKICAgICAgICAgaGFuZGxlVHJhbnNhY3Rpb25FcnJvcigpOwog
ICAgICAgICByZXR1cm47CkBAIC0zOTUsNyArMzk1LDcgQEAgdm9pZCBTUUxUcmFuc2FjdGlvbjo6
ZGVsaXZlclRyYW5zYWN0aW9uQ2FsbGJhY2soKQogCiAgICAgLy8gU3BlYyA0LjMuMiA1OiBJZiB0
aGUgdHJhbnNhY3Rpb24gY2FsbGJhY2sgd2FzIG51bGwgb3IgcmFpc2VkIGFuIGV4Y2VwdGlvbiwg
anVtcCB0byB0aGUgZXJyb3IgY2FsbGJhY2sKICAgICBpZiAoc2hvdWxkRGVsaXZlckVycm9yQ2Fs
bGJhY2spIHsKLSAgICAgICAgbV90cmFuc2FjdGlvbkVycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShT
UUxFcnJvcjo6VU5LTk9XTl9FUlIsICJ0aGUgU1FMVHJhbnNhY3Rpb25DYWxsYmFjayB3YXMgbnVs
bCBvciB0aHJldyBhbiBleGNlcHRpb24iKTsKKyAgICAgICAgbV90cmFuc2FjdGlvbkVycm9yID0g
U1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6VU5LTk9XTl9FUlIsICJ0aGUgU1FMVHJhbnNhY3Rp
b25DYWxsYmFjayB3YXMgbnVsbCBvciB0aHJldyBhbiBleGNlcHRpb24iX3MpOwogICAgICAgICBy
ZXR1cm4gZGVsaXZlclRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjaygpOwogICAgIH0KIApAQCAtNDMy
LDcgKzQzMiw3IEBAIHZvaWQgU1FMVHJhbnNhY3Rpb246OmRlbGl2ZXJTdGF0ZW1lbnRDYWxsYmFj
aygpCiAgICAgbV9leGVjdXRlU3FsQWxsb3dlZCA9IGZhbHNlOwogCiAgICAgaWYgKHJlc3VsdCkg
ewotICAgICAgICBtX3RyYW5zYWN0aW9uRXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9y
OjpVTktOT1dOX0VSUiwgInRoZSBzdGF0ZW1lbnQgY2FsbGJhY2sgcmFpc2VkIGFuIGV4Y2VwdGlv
biBvciBzdGF0ZW1lbnQgZXJyb3IgY2FsbGJhY2sgZGlkIG5vdCByZXR1cm4gZmFsc2UiKTsKKyAg
ICAgICAgbV90cmFuc2FjdGlvbkVycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6VU5L
Tk9XTl9FUlIsICJ0aGUgc3RhdGVtZW50IGNhbGxiYWNrIHJhaXNlZCBhbiBleGNlcHRpb24gb3Ig
c3RhdGVtZW50IGVycm9yIGNhbGxiYWNrIGRpZCBub3QgcmV0dXJuIGZhbHNlIl9zKTsKIAogICAg
ICAgICBpZiAobV9lcnJvckNhbGxiYWNrV3JhcHBlci5oYXNDYWxsYmFjaygpKQogICAgICAgICAg
ICAgcmV0dXJuIGRlbGl2ZXJUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2soKTsKQEAgLTU2OCw3ICs1
NjgsNyBAQCB2b2lkIFNRTFRyYW5zYWN0aW9uOjpoYW5kbGVDdXJyZW50U3RhdGVtZW50RXJyb3Io
KQogCiAgICAgbV90cmFuc2FjdGlvbkVycm9yID0gbV9jdXJyZW50U3RhdGVtZW50LT5zcWxFcnJv
cigpOwogICAgIGlmICghbV90cmFuc2FjdGlvbkVycm9yKQotICAgICAgICBtX3RyYW5zYWN0aW9u
RXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpEQVRBQkFTRV9FUlIsICJ0aGUgc3Rh
dGVtZW50IGZhaWxlZCB0byBleGVjdXRlIik7CisgICAgICAgIG1fdHJhbnNhY3Rpb25FcnJvciA9
IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OkRBVEFCQVNFX0VSUiwgInRoZSBzdGF0ZW1lbnQg
ZmFpbGVkIHRvIGV4ZWN1dGUiX3MpOwogCiAgICAgaGFuZGxlVHJhbnNhY3Rpb25FcnJvcigpOwog
fQpAQCAtNTk0LDcgKzU5NCw3IEBAIHZvaWQgU1FMVHJhbnNhY3Rpb246OnBvc3RmbGlnaHRBbmRD
b21taXQoKQogICAgIGlmIChtX3dyYXBwZXIgJiYgIW1fd3JhcHBlci0+cGVyZm9ybVBvc3RmbGln
aHQoKnRoaXMpKSB7CiAgICAgICAgIG1fdHJhbnNhY3Rpb25FcnJvciA9IG1fd3JhcHBlci0+c3Fs
RXJyb3IoKTsKICAgICAgICAgaWYgKCFtX3RyYW5zYWN0aW9uRXJyb3IpCi0gICAgICAgICAgICBt
X3RyYW5zYWN0aW9uRXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpVTktOT1dOX0VS
UiwgInVua25vd24gZXJyb3Igb2NjdXJyZWQgZHVyaW5nIHRyYW5zYWN0aW9uIHBvc3RmbGlnaHQi
KTsKKyAgICAgICAgICAgIG1fdHJhbnNhY3Rpb25FcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FM
RXJyb3I6OlVOS05PV05fRVJSLCAidW5rbm93biBlcnJvciBvY2N1cnJlZCBkdXJpbmcgdHJhbnNh
Y3Rpb24gcG9zdGZsaWdodCJfcyk7CiAKICAgICAgICAgaGFuZGxlVHJhbnNhY3Rpb25FcnJvcigp
OwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnNvY2tldHMvV2ViU29ja2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0
cy9XZWJTb2NrZXQuY3BwCmluZGV4IGY5NzNlNWJkM2I5MGUzYTRjYzczNTIxNGQ5YTMxOWFkZjky
MWU0YjYuLjY5ZDJlNTQ3MzVhMzA2NDYzODRjN2VmYjdlYTY0OTg3ZWMzNDAyY2MgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwCkBAIC0xMzcs
OSArMTM3LDkgQEAgc3RhdGljIHVuc2lnbmVkIHNhdHVyYXRlQWRkKHVuc2lnbmVkIGEsIHVuc2ln
bmVkIGIpCiAgICAgcmV0dXJuIGEgKyBiOwogfQogCi1jb25zdCBjaGFyKiBXZWJTb2NrZXQ6OnN1
YnByb3RvY29sU2VwYXJhdG9yKCkKK0FTQ0lJTGl0ZXJhbCBXZWJTb2NrZXQ6OnN1YnByb3RvY29s
U2VwYXJhdG9yKCkKIHsKLSAgICByZXR1cm4gIiwgIjsKKyAgICByZXR1cm4gIiwgIl9zOwogfQog
CiBXZWJTb2NrZXQ6OldlYlNvY2tldChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KQpA
QCAtNDMwLDcgKzQzMCw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFdlYlNvY2tldDo6Y2xvc2Uoc3Rk
OjpvcHRpb25hbDx1bnNpZ25lZCBzaG9ydD4gb3B0aW9uYWxDb2RlLCBjCiAgICAgICAgIHJldHVy
biB7IH07CiAgICAgaWYgKG1fc3RhdGUgPT0gQ09OTkVDVElORykgewogICAgICAgICBtX3N0YXRl
ID0gQ0xPU0lORzsKLSAgICAgICAgbV9jaGFubmVsLT5mYWlsKCJXZWJTb2NrZXQgaXMgY2xvc2Vk
IGJlZm9yZSB0aGUgY29ubmVjdGlvbiBpcyBlc3RhYmxpc2hlZC4iKTsKKyAgICAgICAgbV9jaGFu
bmVsLT5mYWlsKCJXZWJTb2NrZXQgaXMgY2xvc2VkIGJlZm9yZSB0aGUgY29ubmVjdGlvbiBpcyBl
c3RhYmxpc2hlZC4iX3MpOwogICAgICAgICByZXR1cm4geyB9OwogICAgIH0KICAgICBtX3N0YXRl
ID0gQ0xPU0lORzsKQEAgLTUyMCw3ICs1MjAsNyBAQCB2b2lkIFdlYlNvY2tldDo6c3VzcGVuZChS
ZWFzb25Gb3JTdXNwZW5zaW9uIHJlYXNvbikKIAogICAgIGlmIChyZWFzb24gPT0gUmVhc29uRm9y
U3VzcGVuc2lvbjo6QmFja0ZvcndhcmRDYWNoZSkgewogICAgICAgICAvLyBUaGlzIHdpbGwgY2F1
c2UgZGlkQ2xvc2UoKSB0byBiZSBjYWxsZWQuCi0gICAgICAgIG1fY2hhbm5lbC0+ZmFpbCgiV2Vi
U29ja2V0IGlzIGNsb3NlZCBkdWUgdG8gc3VzcGVuc2lvbi4iKTsKKyAgICAgICAgbV9jaGFubmVs
LT5mYWlsKCJXZWJTb2NrZXQgaXMgY2xvc2VkIGR1ZSB0byBzdXNwZW5zaW9uLiJfcyk7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2Vic29ja2V0cy9XZWJTb2NrZXQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0
cy9XZWJTb2NrZXQuaAppbmRleCBlNjg2M2U0NmRhMDdkMThiNmQ5MTVlYjE1YzI0Y2RmMjJkYjZh
NmNiLi5lZmZjMDY4YmJmNjI2NWU3YTNiMTU1Yzk0ZmY0NDhlNzY2ZDFlMzY1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5oCkBAIC01MSw3ICs1MSw3
IEBAIGNsYXNzIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOwogY2xhc3MgV2ViU29ja2V0IGZp
bmFsIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViU29ja2V0PiwgcHVibGljIEV2ZW50VGFyZ2V0V2l0
aElubGluZURhdGEsIHB1YmxpYyBBY3RpdmVET01PYmplY3QsIHByaXZhdGUgV2ViU29ja2V0Q2hh
bm5lbENsaWVudCB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChXZWJTb2NrZXQpOwogcHVi
bGljOgotICAgIHN0YXRpYyBjb25zdCBjaGFyKiBzdWJwcm90b2NvbFNlcGFyYXRvcigpOworICAg
IHN0YXRpYyBBU0NJSUxpdGVyYWwgc3VicHJvdG9jb2xTZXBhcmF0b3IoKTsKIAogICAgIHN0YXRp
YyBFeGNlcHRpb25PcjxSZWY8V2ViU29ja2V0Pj4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmLCBjb25zdCBTdHJpbmcmIHVybCk7CiAgICAgc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxXZWJT
b2NrZXQ+PiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGNvbnN0IFN0cmluZyYgdXJs
LCBjb25zdCBTdHJpbmcmIHByb3RvY29sKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcAppbmRleCBkZjU2MzU5YzZmZGEw
NTIxMDNkOTdiM2Q4YTVkMTA4NDkxOTc1ZjViLi42OWI4ZTJhNzc1NGE4OTc4YzE5NTQ4NTFmZjI2
Yzk5NjE1MmY1ZGMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tl
dHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJz
b2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwCkBAIC0yODcsNyArMjg3LDcgQEAgdm9pZCBXZWJT
b2NrZXRDaGFubmVsOjpkaWRPcGVuU29ja2V0U3RyZWFtKFNvY2tldFN0cmVhbUhhbmRsZSYgaGFu
ZGxlKQogICAgICAgICBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94eSA9IENvb2tpZUphcjo6
Y29va2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHkoKm1fZG9jdW1lbnQsIG1faGFuZHNoYWtlLT5o
dHRwVVJMRm9yQXV0aGVudGljYXRpb25BbmRDb29raWVzKCkpOwogICAgIGhhbmRsZS5zZW5kSGFu
ZHNoYWtlKFdURk1vdmUoaGFuZHNoYWtlTWVzc2FnZSksIFdURk1vdmUoY29va2llUmVxdWVzdEhl
YWRlckZpZWxkUHJveHkpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH1dIChi
b29sIHN1Y2Nlc3MsIGJvb2wgZGlkQWNjZXNzU2VjdXJlQ29va2llcykgewogICAgICAgICBpZiAo
IXN1Y2Nlc3MpCi0gICAgICAgICAgICBmYWlsKCJGYWlsZWQgdG8gc2VuZCBXZWJTb2NrZXQgaGFu
ZHNoYWtlLiIpOworICAgICAgICAgICAgZmFpbCgiRmFpbGVkIHRvIHNlbmQgV2ViU29ja2V0IGhh
bmRzaGFrZS4iX3MpOwogCiAgICAgICAgIGlmIChkaWRBY2Nlc3NTZWN1cmVDb29raWVzICYmIG1f
ZG9jdW1lbnQpCiAgICAgICAgICAgICBtX2RvY3VtZW50LT5zZXRTZWN1cmVDb29raWVzQWNjZXNz
ZWQoKTsKQEAgLTM0MCw3ICszNDAsNyBAQCB2b2lkIFdlYlNvY2tldENoYW5uZWw6OmRpZFJlY2Vp
dmVTb2NrZXRTdHJlYW1EYXRhKFNvY2tldFN0cmVhbUhhbmRsZSYgaGFuZGxlLCBjbwogICAgICAg
ICByZXR1cm47CiAgICAgaWYgKCFhcHBlbmRUb0J1ZmZlcihkYXRhLCBsZW5ndGgpKSB7CiAgICAg
ICAgIG1fc2hvdWxkRGlzY2FyZFJlY2VpdmVkRGF0YSA9IHRydWU7Ci0gICAgICAgIGZhaWwoIlJh
biBvdXQgb2YgbWVtb3J5IHdoaWxlIHJlY2VpdmluZyBXZWJTb2NrZXQgZGF0YS4iKTsKKyAgICAg
ICAgZmFpbCgiUmFuIG91dCBvZiBtZW1vcnkgd2hpbGUgcmVjZWl2aW5nIFdlYlNvY2tldCBkYXRh
LiJfcyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgd2hpbGUgKCFtX3N1c3BlbmRlZCAm
JiBtX2NsaWVudCAmJiAhbV9idWZmZXIuaXNFbXB0eSgpKSB7CkBAIC01NzEsNyArNTcxLDcgQEAg
Ym9vbCBXZWJTb2NrZXRDaGFubmVsOjpwcm9jZXNzRnJhbWUoKQogICAgIH0KIAogICAgIGlmIChm
cmFtZS5tYXNrZWQpIHsKLSAgICAgICAgZmFpbCgiQSBzZXJ2ZXIgbXVzdCBub3QgbWFzayBhbnkg
ZnJhbWVzIHRoYXQgaXQgc2VuZHMgdG8gdGhlIGNsaWVudC4iKTsKKyAgICAgICAgZmFpbCgiQSBz
ZXJ2ZXIgbXVzdCBub3QgbWFzayBhbnkgZnJhbWVzIHRoYXQgaXQgc2VuZHMgdG8gdGhlIGNsaWVu
dC4iX3MpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCkBAIC01OTEsNyArNTkxLDcg
QEAgYm9vbCBXZWJTb2NrZXRDaGFubmVsOjpwcm9jZXNzRnJhbWUoKQogICAgIC8vIEEgbmV3IGRh
dGEgZnJhbWUgaXMgcmVjZWl2ZWQgYmVmb3JlIHRoZSBwcmV2aW91cyBjb250aW51b3VzIGZyYW1l
IGZpbmlzaGVzLgogICAgIC8vIE5vdGUgdGhhdCBjb250cm9sIGZyYW1lcyBhcmUgYWxsb3dlZCB0
byBjb21lIGluIHRoZSBtaWRkbGUgb2YgY29udGludW91cyBmcmFtZXMuCiAgICAgaWYgKG1faGFz
Q29udGludW91c0ZyYW1lICYmIGZyYW1lLm9wQ29kZSAhPSBXZWJTb2NrZXRGcmFtZTo6T3BDb2Rl
Q29udGludWF0aW9uICYmICFXZWJTb2NrZXRGcmFtZTo6aXNDb250cm9sT3BDb2RlKGZyYW1lLm9w
Q29kZSkpIHsKLSAgICAgICAgZmFpbCgiUmVjZWl2ZWQgbmV3IGRhdGEgZnJhbWUgYnV0IHByZXZp
b3VzIGNvbnRpbnVvdXMgZnJhbWUgaXMgdW5maW5pc2hlZC4iKTsKKyAgICAgICAgZmFpbCgiUmVj
ZWl2ZWQgbmV3IGRhdGEgZnJhbWUgYnV0IHByZXZpb3VzIGNvbnRpbnVvdXMgZnJhbWUgaXMgdW5m
aW5pc2hlZC4iX3MpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCkBAIC02MDEsNyAr
NjAxLDcgQEAgYm9vbCBXZWJTb2NrZXRDaGFubmVsOjpwcm9jZXNzRnJhbWUoKQogICAgIGNhc2Ug
V2ViU29ja2V0RnJhbWU6Ok9wQ29kZUNvbnRpbnVhdGlvbjoKICAgICAgICAgLy8gQW4gdW5leHBl
Y3RlZCBjb250aW51YXRpb24gZnJhbWUgaXMgcmVjZWl2ZWQgd2l0aG91dCBhbnkgbGVhZGluZyBm
cmFtZS4KICAgICAgICAgaWYgKCFtX2hhc0NvbnRpbnVvdXNGcmFtZSkgewotICAgICAgICAgICAg
ZmFpbCgiUmVjZWl2ZWQgdW5leHBlY3RlZCBjb250aW51YXRpb24gZnJhbWUuIik7CisgICAgICAg
ICAgICBmYWlsKCJSZWNlaXZlZCB1bmV4cGVjdGVkIGNvbnRpbnVhdGlvbiBmcmFtZS4iX3MpOwog
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAgICAgICAgIG1fY29udGludW91
c0ZyYW1lRGF0YS5hcHBlbmQoZnJhbWUucGF5bG9hZCwgZnJhbWUucGF5bG9hZExlbmd0aCk7CkBA
IC02MjAsNyArNjIwLDcgQEAgYm9vbCBXZWJTb2NrZXRDaGFubmVsOjpwcm9jZXNzRnJhbWUoKQog
ICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSA9IGVtcHR5
U3RyaW5nKCk7CiAgICAgICAgICAgICAgICAgaWYgKG1lc3NhZ2UuaXNOdWxsKCkpCi0gICAgICAg
ICAgICAgICAgICAgIGZhaWwoIkNvdWxkIG5vdCBkZWNvZGUgYSB0ZXh0IGZyYW1lIGFzIFVURi04
LiIpOworICAgICAgICAgICAgICAgICAgICBmYWlsKCJDb3VsZCBub3QgZGVjb2RlIGEgdGV4dCBm
cmFtZSBhcyBVVEYtOC4iX3MpOwogICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAg
ICAgICAgbV9jbGllbnQtPmRpZFJlY2VpdmVNZXNzYWdlKFdURk1vdmUobWVzc2FnZSkpOwogICAg
ICAgICAgICAgfSBlbHNlIGlmIChtX2NvbnRpbnVvdXNGcmFtZU9wQ29kZSA9PSBXZWJTb2NrZXRG
cmFtZTo6T3BDb2RlQmluYXJ5KQpAQCAtNjM3LDcgKzYzNyw3IEBAIGJvb2wgV2ViU29ja2V0Q2hh
bm5lbDo6cHJvY2Vzc0ZyYW1lKCkKICAgICAgICAgICAgICAgICBtZXNzYWdlID0gZW1wdHlTdHJp
bmcoKTsKICAgICAgICAgICAgIHNraXBCdWZmZXIoZnJhbWVFbmQgLSBtX2J1ZmZlci5kYXRhKCkp
OwogICAgICAgICAgICAgaWYgKG1lc3NhZ2UuaXNOdWxsKCkpCi0gICAgICAgICAgICAgICAgZmFp
bCgiQ291bGQgbm90IGRlY29kZSBhIHRleHQgZnJhbWUgYXMgVVRGLTguIik7CisgICAgICAgICAg
ICAgICAgZmFpbCgiQ291bGQgbm90IGRlY29kZSBhIHRleHQgZnJhbWUgYXMgVVRGLTguIl9zKTsK
ICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBtX2NsaWVudC0+ZGlkUmVjZWl2ZU1l
c3NhZ2UoV1RGTW92ZShtZXNzYWdlKSk7CiAgICAgICAgIH0gZWxzZSB7CkBAIC02NjksMTMgKzY2
OSwxMyBAQCBib29sIFdlYlNvY2tldENoYW5uZWw6OnByb2Nlc3NGcmFtZSgpCiAgICAgICAgICAg
ICBtX2Nsb3NlRXZlbnRDb2RlID0gQ2xvc2VFdmVudENvZGVOb1N0YXR1c1JjdmQ7CiAgICAgICAg
IGVsc2UgaWYgKGZyYW1lLnBheWxvYWRMZW5ndGggPT0gMSkgewogICAgICAgICAgICAgbV9jbG9z
ZUV2ZW50Q29kZSA9IENsb3NlRXZlbnRDb2RlQWJub3JtYWxDbG9zdXJlOwotICAgICAgICAgICAg
ZmFpbCgiUmVjZWl2ZWQgYSBicm9rZW4gY2xvc2UgZnJhbWUgY29udGFpbmluZyBhbiBpbnZhbGlk
IHNpemUgYm9keS4iKTsKKyAgICAgICAgICAgIGZhaWwoIlJlY2VpdmVkIGEgYnJva2VuIGNsb3Nl
IGZyYW1lIGNvbnRhaW5pbmcgYW4gaW52YWxpZCBzaXplIGJvZHkuIl9zKTsKICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIG1fY2xvc2VFdmVu
dENvZGUgPSBmcmFtZS5wYXlsb2FkWzBdIDw8IDggfCBmcmFtZS5wYXlsb2FkWzFdOwogICAgICAg
ICAgICAgaWYgKG1fY2xvc2VFdmVudENvZGUgPT0gQ2xvc2VFdmVudENvZGVOb1N0YXR1c1JjdmQg
fHwgbV9jbG9zZUV2ZW50Q29kZSA9PSBDbG9zZUV2ZW50Q29kZUFibm9ybWFsQ2xvc3VyZSB8fCBt
X2Nsb3NlRXZlbnRDb2RlID09IENsb3NlRXZlbnRDb2RlVExTSGFuZHNoYWtlKSB7CiAgICAgICAg
ICAgICAgICAgbV9jbG9zZUV2ZW50Q29kZSA9IENsb3NlRXZlbnRDb2RlQWJub3JtYWxDbG9zdXJl
OwotICAgICAgICAgICAgICAgIGZhaWwoIlJlY2VpdmVkIGEgYnJva2VuIGNsb3NlIGZyYW1lIGNv
bnRhaW5pbmcgYSByZXNlcnZlZCBzdGF0dXMgY29kZS4iKTsKKyAgICAgICAgICAgICAgICBmYWls
KCJSZWNlaXZlZCBhIGJyb2tlbiBjbG9zZSBmcmFtZSBjb250YWluaW5nIGEgcmVzZXJ2ZWQgc3Rh
dHVzIGNvZGUuIl9zKTsKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAg
ICB9CiAgICAgICAgIH0KQEAgLTc2MSw3ICs3NjEsNyBAQCB2b2lkIFdlYlNvY2tldENoYW5uZWw6
OnByb2Nlc3NPdXRnb2luZ0ZyYW1lUXVldWUoKQogICAgICAgICBjYXNlIFF1ZXVlZEZyYW1lVHlw
ZVN0cmluZzogewogICAgICAgICAgICAgc2VuZEZyYW1lKGZyYW1lLT5vcENvZGUsIGZyYW1lLT5z
dHJpbmdEYXRhLmRhdGFBc1VJbnQ4UHRyKCksIGZyYW1lLT5zdHJpbmdEYXRhLmxlbmd0aCgpLCBb
dGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH1dIChib29sIHN1Y2Nlc3MpIHsKICAg
ICAgICAgICAgICAgICBpZiAoIXN1Y2Nlc3MpCi0gICAgICAgICAgICAgICAgICAgIGZhaWwoIkZh
aWxlZCB0byBzZW5kIFdlYlNvY2tldCBmcmFtZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgZmFp
bCgiRmFpbGVkIHRvIHNlbmQgV2ViU29ja2V0IGZyYW1lLiJfcyk7CiAgICAgICAgICAgICB9KTsK
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC03NjksNyArNzY5LDcgQEAgdm9pZCBX
ZWJTb2NrZXRDaGFubmVsOjpwcm9jZXNzT3V0Z29pbmdGcmFtZVF1ZXVlKCkKICAgICAgICAgY2Fz
ZSBRdWV1ZWRGcmFtZVR5cGVWZWN0b3I6CiAgICAgICAgICAgICBzZW5kRnJhbWUoZnJhbWUtPm9w
Q29kZSwgZnJhbWUtPnZlY3RvckRhdGEuZGF0YSgpLCBmcmFtZS0+dmVjdG9yRGF0YS5zaXplKCks
IFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfV0gKGJvb2wgc3VjY2Vzcykgewog
ICAgICAgICAgICAgICAgIGlmICghc3VjY2VzcykKLSAgICAgICAgICAgICAgICAgICAgZmFpbCgi
RmFpbGVkIHRvIHNlbmQgV2ViU29ja2V0IGZyYW1lLiIpOworICAgICAgICAgICAgICAgICAgICBm
YWlsKCJGYWlsZWQgdG8gc2VuZCBXZWJTb2NrZXQgZnJhbWUuIl9zKTsKICAgICAgICAgICAgIH0p
OwogICAgICAgICAgICAgYnJlYWs7CiAKQEAgLTc5Niw3ICs3OTYsNyBAQCB2b2lkIFdlYlNvY2tl
dENoYW5uZWw6OnByb2Nlc3NPdXRnb2luZ0ZyYW1lUXVldWUoKQogICAgICAgICAgICAgICAgIG1f
YmxvYkxvYWRlclN0YXR1cyA9IEJsb2JMb2FkZXJOb3RTdGFydGVkOwogICAgICAgICAgICAgICAg
IHNlbmRGcmFtZShmcmFtZS0+b3BDb2RlLCBzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90Kj4ocmVz
dWx0LT5kYXRhKCkpLCByZXN1bHQtPmJ5dGVMZW5ndGgoKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMg
PSBSZWYgeyAqdGhpcyB9XSAoYm9vbCBzdWNjZXNzKSB7CiAgICAgICAgICAgICAgICAgICAgIGlm
ICghc3VjY2VzcykKLSAgICAgICAgICAgICAgICAgICAgICAgIGZhaWwoIkZhaWxlZCB0byBzZW5k
IFdlYlNvY2tldCBmcmFtZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZhaWwoIkZhaWxl
ZCB0byBzZW5kIFdlYlNvY2tldCBmcmFtZS4iX3MpOwogICAgICAgICAgICAgICAgIH0pOwogICAg
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldERlZmxhdGVGcmFtZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldERlZmxhdGVGcmFtZXIuY3Bw
CmluZGV4IDAxZmRmZTAyOWU0NmZjZTg2MmQ1ZTYxNmNmYzQ5NWQ2OWNjNjE0NjUuLmE4N2ZlNWQ3
YWFlNWU4MGQzOTc1NDk5YzRjNTZhNmUwMTdkZjExZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXREZWZsYXRlRnJhbWVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RGVmbGF0ZUZyYW1lci5j
cHAKQEAgLTc2LDcgKzc2LDcgQEAgYm9vbCBXZWJTb2NrZXRFeHRlbnNpb25EZWZsYXRlRnJhbWU6
OnByb2Nlc3NSZXNwb25zZShjb25zdCBIYXNoTWFwPFN0cmluZywgU3RyaW4KIAogICAgIHVuc2ln
bmVkIGV4cGVjdGVkTnVtUGFyYW1ldGVycyA9IDA7CiAgICAgaW50IHdpbmRvd0JpdHMgPSAxNTsK
LSAgICBhdXRvIHBhcmFtZXRlciA9IHNlcnZlclBhcmFtZXRlcnMuZmluZCgibWF4X3dpbmRvd19i
aXRzIik7CisgICAgYXV0byBwYXJhbWV0ZXIgPSBzZXJ2ZXJQYXJhbWV0ZXJzLmZpbmQoIm1heF93
aW5kb3dfYml0cyJfcyk7CiAgICAgaWYgKHBhcmFtZXRlciAhPSBzZXJ2ZXJQYXJhbWV0ZXJzLmVu
ZCgpKSB7CiAgICAgICAgIHdpbmRvd0JpdHMgPSBwYXJzZUludGVnZXJBbGxvd2luZ1RyYWlsaW5n
SnVuazxpbnQ+KHBhcmFtZXRlci0+dmFsdWUpLnZhbHVlX29yKDApOwogICAgICAgICBpZiAod2lu
ZG93Qml0cyA8IDggfHwgd2luZG93Qml0cyA+IDE1KSB7CkBAIC04Nyw3ICs4Nyw3IEBAIGJvb2wg
V2ViU29ja2V0RXh0ZW5zaW9uRGVmbGF0ZUZyYW1lOjpwcm9jZXNzUmVzcG9uc2UoY29uc3QgSGFz
aE1hcDxTdHJpbmcsIFN0cmluCiAgICAgfQogCiAgICAgV2ViU29ja2V0RGVmbGF0ZXI6OkNvbnRl
eHRUYWtlT3Zlck1vZGUgbW9kZSA9IFdlYlNvY2tldERlZmxhdGVyOjpUYWtlT3ZlckNvbnRleHQ7
Ci0gICAgcGFyYW1ldGVyID0gc2VydmVyUGFyYW1ldGVycy5maW5kKCJub19jb250ZXh0X3Rha2Vv
dmVyIik7CisgICAgcGFyYW1ldGVyID0gc2VydmVyUGFyYW1ldGVycy5maW5kKCJub19jb250ZXh0
X3Rha2VvdmVyIl9zKTsKICAgICBpZiAocGFyYW1ldGVyICE9IHNlcnZlclBhcmFtZXRlcnMuZW5k
KCkpIHsKICAgICAgICAgaWYgKCFwYXJhbWV0ZXItPnZhbHVlLmlzTnVsbCgpKSB7CiAgICAgICAg
ICAgICBtX2ZhaWx1cmVSZWFzb24gPSAiUmVjZWl2ZWQgaW52YWxpZCBub19jb250ZXh0X3Rha2Vv
dmVyIHBhcmFtZXRlciJfczsKQEAgLTE2MSw3ICsxNjEsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8RGVm
bGF0ZVJlc3VsdEhvbGRlcj4gV2ViU29ja2V0RGVmbGF0ZUZyYW1lcjo6ZGVmbGF0ZShXZWJTb2Nr
ZXRGcgogICAgIGlmICghZW5hYmxlZCgpIHx8ICFXZWJTb2NrZXRGcmFtZTo6aXNOb25Db250cm9s
T3BDb2RlKGZyYW1lLm9wQ29kZSkgfHwgIWZyYW1lLnBheWxvYWRMZW5ndGgpCiAgICAgICAgIHJl
dHVybiByZXN1bHQ7CiAgICAgaWYgKCFtX2RlZmxhdGVyLT5hZGRCeXRlcyhmcmFtZS5wYXlsb2Fk
LCBmcmFtZS5wYXlsb2FkTGVuZ3RoKSB8fCAhbV9kZWZsYXRlci0+ZmluaXNoKCkpIHsKLSAgICAg
ICAgcmVzdWx0LT5mYWlsKCJGYWlsZWQgdG8gY29tcHJlc3MgZnJhbWUiKTsKKyAgICAgICAgcmVz
dWx0LT5mYWlsKCJGYWlsZWQgdG8gY29tcHJlc3MgZnJhbWUiX3MpOwogICAgICAgICByZXR1cm4g
cmVzdWx0OwogICAgIH0KICAgICBmcmFtZS5jb21wcmVzcyA9IHRydWU7CkBAIC0xODAsMTcgKzE4
MCwxNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8SW5mbGF0ZVJlc3VsdEhvbGRlcj4gV2ViU29ja2V0RGVm
bGF0ZUZyYW1lcjo6aW5mbGF0ZShXZWJTb2NrZXRGcgogewogICAgIGF1dG8gcmVzdWx0ID0gbWFr
ZVVuaXF1ZTxJbmZsYXRlUmVzdWx0SG9sZGVyPigqdGhpcyk7CiAgICAgaWYgKCFlbmFibGVkKCkg
JiYgZnJhbWUuY29tcHJlc3MpIHsKLSAgICAgICAgcmVzdWx0LT5mYWlsKCJDb21wcmVzc2VkIGJp
dCBtdXN0IGJlIDAgaWYgbm8gbmVnb3RpYXRlZCBkZWZsYXRlLWZyYW1lIGV4dGVuc2lvbiIpOwor
ICAgICAgICByZXN1bHQtPmZhaWwoIkNvbXByZXNzZWQgYml0IG11c3QgYmUgMCBpZiBubyBuZWdv
dGlhdGVkIGRlZmxhdGUtZnJhbWUgZXh0ZW5zaW9uIl9zKTsKICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKICAgICB9CiAgICAgaWYgKCFmcmFtZS5jb21wcmVzcykKICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKICAgICBpZiAoIVdlYlNvY2tldEZyYW1lOjppc05vbkNvbnRyb2xPcENvZGUoZnJhbWUub3BD
b2RlKSkgewotICAgICAgICByZXN1bHQtPmZhaWwoIlJlY2VpdmVkIHVuZXhwZWN0ZWQgY29tcHJl
c3NlZCBmcmFtZSIpOworICAgICAgICByZXN1bHQtPmZhaWwoIlJlY2VpdmVkIHVuZXhwZWN0ZWQg
Y29tcHJlc3NlZCBmcmFtZSJfcyk7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogICAg
IGlmICghbV9pbmZsYXRlci0+YWRkQnl0ZXMoZnJhbWUucGF5bG9hZCwgZnJhbWUucGF5bG9hZExl
bmd0aCkgfHwgIW1faW5mbGF0ZXItPmZpbmlzaCgpKSB7Ci0gICAgICAgIHJlc3VsdC0+ZmFpbCgi
RmFpbGVkIHRvIGRlY29tcHJlc3MgZnJhbWUiKTsKKyAgICAgICAgcmVzdWx0LT5mYWlsKCJGYWls
ZWQgdG8gZGVjb21wcmVzcyBmcmFtZSJfcyk7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAg
fQogICAgIGZyYW1lLmNvbXByZXNzID0gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RXh0ZW5zaW9uRGlzcGF0Y2hlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RXh0ZW5zaW9uRGlzcGF0
Y2hlci5jcHAKaW5kZXggN2FmMmMzNzkxYTBhZThkNmVlOWU5Mjk5ODM1N2U4NjBhZmJiNzVkZC4u
ZTVjZjEyNTExZWYzZTU2NGY2M2I4NWQ4Y2IwYmIxZWU0MGM1ZGEzZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEV4dGVuc2lvbkRpc3BhdGNo
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRF
eHRlbnNpb25EaXNwYXRjaGVyLmNwcApAQCAtOTMsNyArOTMsNyBAQCBib29sIFdlYlNvY2tldEV4
dGVuc2lvbkRpc3BhdGNoZXI6OnByb2Nlc3NIZWFkZXJWYWx1ZShjb25zdCBTdHJpbmcmIGhlYWRl
clZhbHVlKQogCiAgICAgLy8gSWYgd2UgZG9uJ3Qgc2VuZCBTZWMtV2ViU29ja2V0LUV4dGVuc2lv
bnMgaGVhZGVyLCB0aGUgc2VydmVyIHNob3VsZCBub3QgcmV0dXJuIHRoZSBoZWFkZXIuCiAgICAg
aWYgKCFtX3Byb2Nlc3NvcnMuc2l6ZSgpKSB7Ci0gICAgICAgIGZhaWwoIlJlY2VpdmVkIHVuZXhw
ZWN0ZWQgU2VjLVdlYlNvY2tldC1FeHRlbnNpb25zIGhlYWRlciIpOworICAgICAgICBmYWlsKCJS
ZWNlaXZlZCB1bmV4cGVjdGVkIFNlYy1XZWJTb2NrZXQtRXh0ZW5zaW9ucyBoZWFkZXIiX3MpOwog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCkBAIC0xMDMsNyArMTAzLDcgQEAgYm9vbCBX
ZWJTb2NrZXRFeHRlbnNpb25EaXNwYXRjaGVyOjpwcm9jZXNzSGVhZGVyVmFsdWUoY29uc3QgU3Ry
aW5nJiBoZWFkZXJWYWx1ZSkKICAgICAgICAgU3RyaW5nIGV4dGVuc2lvblRva2VuOwogICAgICAg
ICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBleHRlbnNpb25QYXJhbWV0ZXJzOwogICAgICAgICBp
ZiAoIXBhcnNlci5wYXJzZUV4dGVuc2lvbihleHRlbnNpb25Ub2tlbiwgZXh0ZW5zaW9uUGFyYW1l
dGVycykpIHsKLSAgICAgICAgICAgIGZhaWwoIlNlYy1XZWJTb2NrZXQtRXh0ZW5zaW9ucyBoZWFk
ZXIgaXMgaW52YWxpZCIpOworICAgICAgICAgICAgZmFpbCgiU2VjLVdlYlNvY2tldC1FeHRlbnNp
b25zIGhlYWRlciBpcyBpbnZhbGlkIl9zKTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMv
V2ViU29ja2V0RnJhbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dl
YlNvY2tldEZyYW1lLmNwcAppbmRleCBlMzllMDE5YWUwMmQ5NjcyMzhmOTY1NzJkNTNlZTIzYzM0
NTZmMjMzLi5iYTFlNjI1NDkxN2FmZjRmYTdiODJjNjg4NGZlYjJhYzkwNzBkM2FkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RnJhbWUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRGcmFtZS5j
cHAKQEAgLTgyLDExICs4MiwxMSBAQCBXZWJTb2NrZXRGcmFtZTo6UGFyc2VGcmFtZVJlc3VsdCBX
ZWJTb2NrZXRGcmFtZTo6cGFyc2VGcmFtZSh1aW50OF90KiBkYXRhLCBzaXplXwogICAgICAgICAg
ICAgcGF5bG9hZExlbmd0aDY0IHw9IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KCpwKyspOwogICAgICAg
ICB9CiAgICAgICAgIGlmIChleHRlbmRlZFBheWxvYWRMZW5ndGhTaXplID09IDIgJiYgcGF5bG9h
ZExlbmd0aDY0IDw9IG1heFBheWxvYWRMZW5ndGhXaXRob3V0RXh0ZW5kZWRMZW5ndGhGaWVsZCkg
ewotICAgICAgICAgICAgZXJyb3JTdHJpbmcgPSAiVGhlIG1pbmltYWwgbnVtYmVyIG9mIGJ5dGVz
IE1VU1QgYmUgdXNlZCB0byBlbmNvZGUgdGhlIGxlbmd0aCI7CisgICAgICAgICAgICBlcnJvclN0
cmluZyA9ICJUaGUgbWluaW1hbCBudW1iZXIgb2YgYnl0ZXMgTVVTVCBiZSB1c2VkIHRvIGVuY29k
ZSB0aGUgbGVuZ3RoIl9zOwogICAgICAgICAgICAgcmV0dXJuIEZyYW1lRXJyb3I7CiAgICAgICAg
IH0KICAgICAgICAgaWYgKGV4dGVuZGVkUGF5bG9hZExlbmd0aFNpemUgPT0gOCAmJiBwYXlsb2Fk
TGVuZ3RoNjQgPD0gMHhGRkZGKSB7Ci0gICAgICAgICAgICBlcnJvclN0cmluZyA9ICJUaGUgbWlu
aW1hbCBudW1iZXIgb2YgYnl0ZXMgTVVTVCBiZSB1c2VkIHRvIGVuY29kZSB0aGUgbGVuZ3RoIjsK
KyAgICAgICAgICAgIGVycm9yU3RyaW5nID0gIlRoZSBtaW5pbWFsIG51bWJlciBvZiBieXRlcyBN
VVNUIGJlIHVzZWQgdG8gZW5jb2RlIHRoZSBsZW5ndGgiX3M7CiAgICAgICAgICAgICByZXR1cm4g
RnJhbWVFcnJvcjsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2VieHIvV2ViWFJXZWJHTExheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2VieHIvV2ViWFJXZWJHTExheWVyLmNwcAppbmRleCA4MjZkZTE2YTcwNjkxZDQyMGM1OTQ2
N2RjNGE3MWRlZGZiMGI2NWM2Li5kNzQwZmJiODgzZDI1OGFkMWU1ZGI3ZjZiYmZkMTY2NWI0NDli
OTg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSV2ViR0xM
YXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUldlYkdMTGF5
ZXIuY3BwCkBAIC02NCw3ICs2NCw3IEBAIHN0YXRpYyBFeGNlcHRpb25PcjxzdGQ6OnVuaXF1ZV9w
dHI8V2ViWFJPcGFxdWVGcmFtZWJ1ZmZlcj4+IGNyZWF0ZU9wYXF1ZUZyYW1lYnVmCiB7CiAgICAg
YXV0byBkZXZpY2UgPSBzZXNzaW9uLmRldmljZSgpOwogICAgIGlmICghZGV2aWNlKQotICAgICAg
ICByZXR1cm4gRXhjZXB0aW9uIHsgT3BlcmF0aW9uRXJyb3IsICJDYW5ub3QgY3JlYXRlIGFuIFhS
V2ViR0xMYXllciB3aXRoIGFuIFhSU2Vzc2lvbiB0aGF0IGhhcyBlbmRlZC4iIH07CisgICAgICAg
IHJldHVybiBFeGNlcHRpb24geyBPcGVyYXRpb25FcnJvciwgIkNhbm5vdCBjcmVhdGUgYW4gWFJX
ZWJHTExheWVyIHdpdGggYW4gWFJTZXNzaW9uIHRoYXQgaGFzIGVuZGVkLiJfcyB9OwogCiAgICAg
Ly8gOS4xLiBJbml0aWFsaXplIGxheWVy4oCZcyBhbnRpYWxpYXMgdG8gbGF5ZXJJbml04oCZcyBh
bnRpYWxpYXMgdmFsdWUuCiAgICAgLy8gOS4yLiBMZXQgZnJhbWVidWZmZXJTaXplIGJlIHRoZSBy
ZWNvbW1lbmRlZCBXZWJHTCBmcmFtZWJ1ZmZlciByZXNvbHV0aW9uIG11bHRpcGxpZWQgYnkgbGF5
ZXJJbml0J3MgZnJhbWVidWZmZXJTY2FsZUZhY3Rvci4KQEAgLTgyLDcgKzgyLDcgQEAgc3RhdGlj
IEV4Y2VwdGlvbk9yPHN0ZDo6dW5pcXVlX3B0cjxXZWJYUk9wYXF1ZUZyYW1lYnVmZmVyPj4gY3Jl
YXRlT3BhcXVlRnJhbWVidWYKICAgICAvLyA5LjUuIElmIGxheWVy4oCZcyByZXNvdXJjZXMgd2Vy
ZSB1bmFibGUgdG8gYmUgY3JlYXRlZCBmb3IgYW55IHJlYXNvbiwgdGhyb3cgYW4gT3BlcmF0aW9u
RXJyb3IgYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgogICAgIGF1dG8gbGF5ZXJIYW5kbGUgPSBkZXZp
Y2UtPmNyZWF0ZUxheWVyUHJvamVjdGlvbih3aWR0aCwgaGVpZ2h0LCBpbml0LmFscGhhKTsKICAg
ICBpZiAoIWxheWVySGFuZGxlKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgT3BlcmF0aW9u
RXJyb3IsICJVbmFibGUgdG8gYWxsb2NhdGUgWFJXZWJHTExheWVyIEdQVSByZXNvdXJjZXMuIn07
CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBPcGVyYXRpb25FcnJvciwgIlVuYWJsZSB0byBh
bGxvY2F0ZSBYUldlYkdMTGF5ZXIgR1BVIHJlc291cmNlcy4iX3MgfTsKIAogICAgIFdlYlhST3Bh
cXVlRnJhbWVidWZmZXI6OkF0dHJpYnV0ZXMgYXR0cmlidXRlcyB7CiAgICAgICAgIC5hbHBoYSA9
IGluaXQuYWxwaGEsCkBAIC05Myw3ICs5Myw3IEBAIHN0YXRpYyBFeGNlcHRpb25PcjxzdGQ6OnVu
aXF1ZV9wdHI8V2ViWFJPcGFxdWVGcmFtZWJ1ZmZlcj4+IGNyZWF0ZU9wYXF1ZUZyYW1lYnVmCiAK
ICAgICBhdXRvIGZyYW1lYnVmZmVyID0gV2ViWFJPcGFxdWVGcmFtZWJ1ZmZlcjo6Y3JlYXRlKCps
YXllckhhbmRsZSwgY29udGV4dCwgV1RGTW92ZShhdHRyaWJ1dGVzKSwgd2lkdGgsIGhlaWdodCk7
CiAgICAgaWYgKCFmcmFtZWJ1ZmZlcikKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE9wZXJh
dGlvbkVycm9yLCAiVW5hYmxlIHRvIGNyZWF0ZSBhIGZyYW1lYnVmZmVyLiIgfTsKKyAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IE9wZXJhdGlvbkVycm9yLCAiVW5hYmxlIHRvIGNyZWF0ZSBhIGZy
YW1lYnVmZmVyLiJfcyB9OwogICAgIAogICAgIHJldHVybiBmcmFtZWJ1ZmZlcjsKIH0KQEAgLTEw
NCw3ICsxMDQsNyBAQCBFeGNlcHRpb25PcjxSZWY8V2ViWFJXZWJHTExheWVyPj4gV2ViWFJXZWJH
TExheWVyOjpjcmVhdGUoUmVmPFdlYlhSU2Vzc2lvbj4mJiBzZQogICAgIC8vIDEuIExldCBsYXll
ciBiZSBhIG5ldyBYUldlYkdMTGF5ZXIKICAgICAvLyAyLiBJZiBzZXNzaW9u4oCZcyBlbmRlZCB2
YWx1ZSBpcyB0cnVlLCB0aHJvdyBhbiBJbnZhbGlkU3RhdGVFcnJvciBhbmQgYWJvcnQgdGhlc2Ug
c3RlcHMuCiAgICAgaWYgKHNlc3Npb24tPmVuZGVkKCkpCi0gICAgICAgIHJldHVybiBFeGNlcHRp
b24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkNhbm5vdCBjcmVhdGUgYW4gWFJXZWJHTExheWVyIHdp
dGggYW4gWFJTZXNzaW9uIHRoYXQgaGFzIGVuZGVkLiIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2Vw
dGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiQ2Fubm90IGNyZWF0ZSBhbiBYUldlYkdMTGF5ZXIg
d2l0aCBhbiBYUlNlc3Npb24gdGhhdCBoYXMgZW5kZWQuIl9zIH07CiAKICAgICAvLyAzLiBJZiBj
b250ZXh0IGlzIGxvc3QsIHRocm93IGFuIEludmFsaWRTdGF0ZUVycm9yIGFuZCBhYm9ydCB0aGVz
ZSBzdGVwcy4KICAgICAvLyA0LiBJZiBzZXNzaW9uIGlzIGFuIGltbWVyc2l2ZSBzZXNzaW9uIGFu
ZCBjb250ZXh04oCZcyBYUiBjb21wYXRpYmxlIGJvb2xlYW4gaXMgZmFsc2UsIHRocm93CkBAIC0x
MTMsMTEgKzExMywxMSBAQCBFeGNlcHRpb25PcjxSZWY8V2ViWFJXZWJHTExheWVyPj4gV2ViWFJX
ZWJHTExheWVyOjpjcmVhdGUoUmVmPFdlYlhSU2Vzc2lvbj4mJiBzZQogICAgICAgICBbJl0oY29u
c3QgUmVmUHRyPFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U+JiBiYXNlQ29udGV4dCkgLT4gRXhj
ZXB0aW9uT3I8UmVmPFdlYlhSV2ViR0xMYXllcj4+CiAgICAgICAgIHsKICAgICAgICAgICAgIGlm
IChiYXNlQ29udGV4dC0+aXNDb250ZXh0TG9zdCgpKQotICAgICAgICAgICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkNhbm5vdCBjcmVhdGUgYW4gWFJXZWJHTExh
eWVyIHdpdGggYSBsb3N0IFdlYkdMIGNvbnRleHQuIiB9OworICAgICAgICAgICAgICAgIHJldHVy
biBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkNhbm5vdCBjcmVhdGUgYW4gWFJXZWJH
TExheWVyIHdpdGggYSBsb3N0IFdlYkdMIGNvbnRleHQuIl9zIH07CiAKICAgICAgICAgICAgIGF1
dG8gbW9kZSA9IHNlc3Npb24tPm1vZGUoKTsKICAgICAgICAgICAgIGlmICgobW9kZSA9PSBYUlNl
c3Npb25Nb2RlOjpJbW1lcnNpdmVBciB8fCBtb2RlID09IFhSU2Vzc2lvbk1vZGU6OkltbWVyc2l2
ZVZyKSAmJiAhYmFzZUNvbnRleHQtPmlzWFJDb21wYXRpYmxlKCkpCi0gICAgICAgICAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiQ2Fubm90IGNyZWF0ZSBhbiBY
UldlYkdMTGF5ZXIgd2l0aCBXZWJHTCBjb250ZXh0IG5vdCBtYXJrZWQgYXMgWFIgY29tcGF0aWJs
ZS4iIH07CisgICAgICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVy
cm9yLCAiQ2Fubm90IGNyZWF0ZSBhbiBYUldlYkdMTGF5ZXIgd2l0aCBXZWJHTCBjb250ZXh0IG5v
dCBtYXJrZWQgYXMgWFIgY29tcGF0aWJsZS4iX3MgfTsKIAogCiAgICAgICAgICAgICAvLyA1LiBJ
bml0aWFsaXplIGxheWVy4oCZcyBjb250ZXh0IHRvIGNvbnRleHQuIChzZWUgY29uc3RydWN0b3Ip
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYSW1hZ2UuY3BwIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWEltYWdlLmNwcAppbmRleCA3NWZlYThiMTUy
YjE2ZTY5NWQ2NGUyOTkyZDkzODNhODZjZmUyMmRhLi4yNjNiNzk2OTBiOTcyOTM3MDI1NzljZjBk
MGU3ODI4MGQyZmZmN2I0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FYSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhJbWFnZS5j
cHAKQEAgLTU3LDcgKzU3LDcgQEAgQWNjZXNzaWJpbGl0eVJvbGUgQVhJbWFnZTo6cm9sZVZhbHVl
KCkgY29uc3QKIAogc3RkOjpvcHRpb25hbDxBWENvcmVPYmplY3Q6OkFjY2Vzc2liaWxpdHlDaGls
ZHJlblZlY3Rvcj4gQVhJbWFnZTo6aW1hZ2VPdmVybGF5RWxlbWVudHMoKQogewotICAgIEFYVFJB
Q0UoIkFYSW1hZ2U6OmltYWdlT3ZlcmxheUVsZW1lbnRzIik7CisgICAgQVhUUkFDRSgiQVhJbWFn
ZTo6aW1hZ2VPdmVybGF5RWxlbWVudHMiX3MpOwogCiAgICAgYXV0byYgY2hpbGRyZW4gPSB0aGlz
LT5jaGlsZHJlbigpOwogICAgIGlmIChjaGlsZHJlbi5zaXplKCkpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYTG9nZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQVhMb2dnZXIuY3BwCmluZGV4IDBiNmNjZDNiN2U5MjhjZTg3ODBiZGM3ZjIx
YjA4ZTczZTY0MjllMzMuLjk0MTQ2MTgyYTVhYmRkYjJjOTBlNjE2MWIwZmRmYTBmNmMzZWU1NGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhMb2dnZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhMb2dnZXIuY3BwCkBAIC01NSw3ICs1
NSw3IEBAIHN0YXRpYyBib29sIHNob3VsZExvZygpCiBBWExvZ2dlcjo6QVhMb2dnZXIoY29uc3Qg
U3RyaW5nJiBtZXRob2ROYW1lKQogICAgIDogbV9tZXRob2ROYW1lKG1ldGhvZE5hbWUpCiB7Ci0g
ICAgaWYgKGF1dG8qIGNoYW5uZWwgPSBnZXRMb2dDaGFubmVsKCJBY2Nlc3NpYmlsaXR5IikpCisg
ICAgaWYgKGF1dG8qIGNoYW5uZWwgPSBnZXRMb2dDaGFubmVsKCJBY2Nlc3NpYmlsaXR5Il9zKSkK
ICAgICAgICAgY2hhbm5lbC0+bGV2ZWwgPSBXVEZMb2dMZXZlbDo6RGVidWc7CiAKICAgICBpZiAo
c2hvdWxkTG9nKCkpIHsKQEAgLTc4LDYgKzc4LDEyIEBAIHZvaWQgQVhMb2dnZXI6OmxvZyhjb25z
dCBTdHJpbmcmIG1lc3NhZ2UpCiAgICAgICAgIExPRyhBY2Nlc3NpYmlsaXR5LCAiJXMiLCBtZXNz
YWdlLnV0ZjgoKS5kYXRhKCkpOwogfQogCit2b2lkIEFYTG9nZ2VyOjpsb2coY29uc3QgY2hhciog
bWVzc2FnZSkKK3sKKyAgICBpZiAoc2hvdWxkTG9nKCkpCisgICAgICAgIExPRyhBY2Nlc3NpYmls
aXR5LCAiJXMiLCBtZXNzYWdlKTsKK30KKwogdm9pZCBBWExvZ2dlcjo6bG9nKFJlZlB0cjxBWENv
cmVPYmplY3Q+IG9iamVjdCkKIHsKICAgICBpZiAoc2hvdWxkTG9nKCkpIHsKQEAgLTMyOCwxNSAr
MzM0LDE1IEBAIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgc3RyZWFtLCBBY2Nl
c3NpYmlsaXR5U2VhcmNoS2V5IHNlYXJjaEtleSkKIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4
dFN0cmVhbSYgc3RyZWFtLCBjb25zdCBBY2Nlc3NpYmlsaXR5U2VhcmNoQ3JpdGVyaWEmIGNyaXRl
cmlhKQogewogICAgIFRleHRTdHJlYW06Okdyb3VwU2NvcGUgZ3JvdXBTY29wZShzdHJlYW0pOwot
ICAgIGF1dG8gc3RyZWFtQ3JpdGVyaWFPYmplY3QgPSBbJnN0cmVhbV0gKFN0cmluZyBvYmplY3RM
YWJlbCwgYXV0byogYXhPYmplY3QpIHsKKyAgICBhdXRvIHN0cmVhbUNyaXRlcmlhT2JqZWN0ID0g
WyZzdHJlYW1dIChBU0NJSUxpdGVyYWwgb2JqZWN0TGFiZWwsIGF1dG8qIGF4T2JqZWN0KSB7CiAg
ICAgICAgIHN0cmVhbS5zdGFydEdyb3VwKCk7Ci0gICAgICAgIHN0cmVhbSA8PCBvYmplY3RMYWJl
bCA8PCAiICIgPDwgYXhPYmplY3QgPDwgIiwgSUQgIiA8PCAoYXhPYmplY3QgPyBheE9iamVjdC0+
b2JqZWN0SUQoKSA6IEFYSUQoKSk7CisgICAgICAgIHN0cmVhbSA8PCBvYmplY3RMYWJlbC5jaGFy
YWN0ZXJzKCkgPDwgIiAiIDw8IGF4T2JqZWN0IDw8ICIsIElEICIgPDwgKGF4T2JqZWN0ID8gYXhP
YmplY3QtPm9iamVjdElEKCkgOiBBWElEKCkpOwogICAgICAgICBzdHJlYW0uZW5kR3JvdXAoKTsK
ICAgICB9OwogCiAgICAgc3RyZWFtIDw8ICJTZWFyY2hDcml0ZXJpYSAiIDw8ICZjcml0ZXJpYTsK
LSAgICBzdHJlYW1Dcml0ZXJpYU9iamVjdCgiYW5jaG9yT2JqZWN0IiwgY3JpdGVyaWEuYW5jaG9y
T2JqZWN0KTsKLSAgICBzdHJlYW1Dcml0ZXJpYU9iamVjdCgic3RhcnRPYmplY3QiLCBjcml0ZXJp
YS5zdGFydE9iamVjdCk7CisgICAgc3RyZWFtQ3JpdGVyaWFPYmplY3QoImFuY2hvck9iamVjdCJf
cywgY3JpdGVyaWEuYW5jaG9yT2JqZWN0KTsKKyAgICBzdHJlYW1Dcml0ZXJpYU9iamVjdCgic3Rh
cnRPYmplY3QiX3MsIGNyaXRlcmlhLnN0YXJ0T2JqZWN0KTsKICAgICBzdHJlYW0uZHVtcFByb3Bl
cnR5KCJzZWFyY2hEaXJlY3Rpb24iLCBjcml0ZXJpYS5zZWFyY2hEaXJlY3Rpb24pOwogCiAgICAg
c3RyZWFtLm5leHRMaW5lKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FYTG9nZ2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYTG9nZ2VyLmgK
aW5kZXggZWE4OTJmMmY5NjZjNTRkYzBjZWNlMWRhNzkyODRlNzk4MWEwYzk1Ni4uZDFmYmFmYjE3
Y2JiZWMzMjRhZTIwYjlmMTZjYzAyZjcwY2EwNWYwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BWExvZ2dlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQVhMb2dnZXIuaApAQCAtNDMsNiArNDMsNyBAQCBwdWJsaWM6CiAgICAgQVhMb2dnZXIo
Y29uc3QgU3RyaW5nJiBtZXRob2ROYW1lKTsKICAgICB+QVhMb2dnZXIoKTsKICAgICBzdGF0aWMg
dm9pZCBsb2coY29uc3QgU3RyaW5nJik7CisgICAgc3RhdGljIHZvaWQgbG9nKGNvbnN0IGNoYXIq
KTsKICAgICBzdGF0aWMgdm9pZCBsb2coUmVmUHRyPEFYQ29yZU9iamVjdD4pOwogICAgIHN0YXRp
YyB2b2lkIGxvZyhjb25zdCBWZWN0b3I8UmVmUHRyPEFYQ29yZU9iamVjdD4+Jik7CiAgICAgc3Rh
dGljIHZvaWQgbG9nKGNvbnN0IHN0ZDo6cGFpcjxSZWZQdHI8QVhDb3JlT2JqZWN0PiwgQVhPYmpl
Y3RDYWNoZTo6QVhOb3RpZmljYXRpb24+Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BWE9iamVjdENhY2hlLmNwcAppbmRleCA3NzIyYzZkMGQyOTc5OTllMmM1OTk2ZmMyYWQw
OGViOTIwYjAyYzhhLi41M2NjMDdmNDAwMWZhYjcyODI0YjJkMTlkMWVmZjA2NjI5N2E5YWY1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKQEAg
LTI1Miw3ICsyNTIsNyBAQCBBWE9iamVjdENhY2hlOjp+QVhPYmplY3RDYWNoZSgpCiAKIGJvb2wg
QVhPYmplY3RDYWNoZTo6aXNNb2RhbEVsZW1lbnQoRWxlbWVudCYgZWxlbWVudCkgY29uc3QKIHsK
LSAgICBib29sIGhhc0RpYWxvZ1JvbGUgPSBub2RlSGFzUm9sZSgmZWxlbWVudCwgImRpYWxvZyIp
IHx8IG5vZGVIYXNSb2xlKCZlbGVtZW50LCAiYWxlcnRkaWFsb2ciKTsKKyAgICBib29sIGhhc0Rp
YWxvZ1JvbGUgPSBub2RlSGFzUm9sZSgmZWxlbWVudCwgImRpYWxvZyJfcykgfHwgbm9kZUhhc1Jv
bGUoJmVsZW1lbnQsICJhbGVydGRpYWxvZyJfcyk7CiAgICAgYm9vbCBpc0FyaWFNb2RhbCA9IGVx
dWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGVsZW1lbnQuYXR0cmlidXRlV2l0aG91dFN5bmNo
cm9uaXphdGlvbihhcmlhX21vZGFsQXR0ciksICJ0cnVlIik7CiAKICAgICByZXR1cm4gKGhhc0Rp
YWxvZ1JvbGUgJiYgaXNBcmlhTW9kYWwpIHx8IChpczxIVE1MRGlhbG9nRWxlbWVudD4oZWxlbWVu
dCkgJiYgZG93bmNhc3Q8SFRNTERpYWxvZ0VsZW1lbnQ+KGVsZW1lbnQpLmlzTW9kYWwoKSk7CkBA
IC01NjAsMjIgKzU2MCwyMiBAQCBzdGF0aWMgUmVmPEFjY2Vzc2liaWxpdHlPYmplY3Q+IGNyZWF0
ZUZyb21SZW5kZXJlcihSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQogCiAgICAgLy8gSWYgdGhlIG5v
ZGUgaXMgYXJpYSByb2xlPSJsaXN0IiBvciB0aGUgYXJpYSByb2xlIGlzIGVtcHR5IGFuZCBpdHMg
YQogICAgIC8vIHVsL29sL2RsIHR5cGUgKGl0IHNob3VsZG4ndCBiZSBhIGxpc3QgaWYgYXJpYSBz
YXlzIG90aGVyd2lzZSkuCi0gICAgaWYgKG5vZGUgJiYgKChub2RlSGFzUm9sZShub2RlLCAibGlz
dCIpIHx8IG5vZGVIYXNSb2xlKG5vZGUsICJkaXJlY3RvcnkiKSkKKyAgICBpZiAobm9kZSAmJiAo
KG5vZGVIYXNSb2xlKG5vZGUsICJsaXN0Il9zKSB8fCBub2RlSGFzUm9sZShub2RlLCAiZGlyZWN0
b3J5Il9zKSkKICAgICAgICAgICAgICAgICAgICAgICB8fCAobm9kZUhhc1JvbGUobm9kZSwgbnVs
bEF0b20oKSkgJiYgKG5vZGUtPmhhc1RhZ05hbWUodWxUYWcpIHx8IG5vZGUtPmhhc1RhZ05hbWUo
b2xUYWcpIHx8IG5vZGUtPmhhc1RhZ05hbWUoZGxUYWcpKSkpKQogICAgICAgICByZXR1cm4gQWNj
ZXNzaWJpbGl0eUxpc3Q6OmNyZWF0ZShyZW5kZXJlcik7CiAKICAgICAvLyBhcmlhIHRhYmxlcwot
ICAgIGlmIChub2RlSGFzUm9sZShub2RlLCAiZ3JpZCIpIHx8IG5vZGVIYXNSb2xlKG5vZGUsICJ0
cmVlZ3JpZCIpIHx8IG5vZGVIYXNSb2xlKG5vZGUsICJ0YWJsZSIpKQorICAgIGlmIChub2RlSGFz
Um9sZShub2RlLCAiZ3JpZCJfcykgfHwgbm9kZUhhc1JvbGUobm9kZSwgInRyZWVncmlkIl9zKSB8
fCBub2RlSGFzUm9sZShub2RlLCAidGFibGUiX3MpKQogICAgICAgICByZXR1cm4gQWNjZXNzaWJp
bGl0eUFSSUFHcmlkOjpjcmVhdGUocmVuZGVyZXIpOwotICAgIGlmIChub2RlSGFzUm9sZShub2Rl
LCAicm93IikpCisgICAgaWYgKG5vZGVIYXNSb2xlKG5vZGUsICJyb3ciX3MpKQogICAgICAgICBy
ZXR1cm4gQWNjZXNzaWJpbGl0eUFSSUFHcmlkUm93OjpjcmVhdGUocmVuZGVyZXIpOwotICAgIGlm
IChub2RlSGFzUm9sZShub2RlLCAiZ3JpZGNlbGwiKSB8fCBub2RlSGFzUm9sZShub2RlLCAiY2Vs
bCIpIHx8IG5vZGVIYXNSb2xlKG5vZGUsICJjb2x1bW5oZWFkZXIiKSB8fCBub2RlSGFzUm9sZShu
b2RlLCAicm93aGVhZGVyIikpCisgICAgaWYgKG5vZGVIYXNSb2xlKG5vZGUsICJncmlkY2VsbCJf
cykgfHwgbm9kZUhhc1JvbGUobm9kZSwgImNlbGwiX3MpIHx8IG5vZGVIYXNSb2xlKG5vZGUsICJj
b2x1bW5oZWFkZXIiX3MpIHx8IG5vZGVIYXNSb2xlKG5vZGUsICJyb3doZWFkZXIiX3MpKQogICAg
ICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbDo6Y3JlYXRlKHJlbmRlcmVyKTsK
IAogICAgIC8vIGFyaWEgdHJlZQotICAgIGlmIChub2RlSGFzUm9sZShub2RlLCAidHJlZSIpKQor
ICAgIGlmIChub2RlSGFzUm9sZShub2RlLCAidHJlZSJfcykpCiAgICAgICAgIHJldHVybiBBY2Nl
c3NpYmlsaXR5VHJlZTo6Y3JlYXRlKHJlbmRlcmVyKTsKLSAgICBpZiAobm9kZUhhc1JvbGUobm9k
ZSwgInRyZWVpdGVtIikpCisgICAgaWYgKG5vZGVIYXNSb2xlKG5vZGUsICJ0cmVlaXRlbSJfcykp
CiAgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5VHJlZUl0ZW06OmNyZWF0ZShyZW5kZXJlcik7
CiAKICAgICBpZiAobm9kZSAmJiBpczxIVE1MTGFiZWxFbGVtZW50Pihub2RlKSAmJiBub2RlSGFz
Um9sZShub2RlLCBudWxsQXRvbSgpKSkKQEAgLTg2NSw3ICs4NjUsNyBAQCBBY2Nlc3NpYmlsaXR5
T2JqZWN0KiBBWE9iamVjdENhY2hlOjpjcmVhdGUoQWNjZXNzaWJpbGl0eVJvbGUgcm9sZSkKIAog
dm9pZCBBWE9iamVjdENhY2hlOjpyZW1vdmUoQVhJRCBheElEKQogewotICAgIEFYVFJBQ0UoIkFY
T2JqZWN0Q2FjaGU6OnJlbW92ZSIpOworICAgIEFYVFJBQ0UoIkFYT2JqZWN0Q2FjaGU6OnJlbW92
ZSJfcyk7CiAgICAgQVhMT0cobWFrZVN0cmluZygiQVhJRCAiLCBheElELmxvZ2dpbmdTdHJpbmco
KSkpOwogCiAgICAgaWYgKCFheElEKQpAQCAtOTc3LDcgKzk3Nyw3IEBAIHZvaWQgQVhPYmplY3RD
YWNoZTo6dGV4dENoYW5nZWQoTm9kZSogbm9kZSkKIAogdm9pZCBBWE9iamVjdENhY2hlOjp0ZXh0
Q2hhbmdlZChBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3QpCiB7Ci0gICAgQVhUUkFDRSgiQVhP
YmplY3RDYWNoZTo6dGV4dENoYW5nZWQiKTsKKyAgICBBWFRSQUNFKCJBWE9iamVjdENhY2hlOjp0
ZXh0Q2hhbmdlZCJfcyk7CiAgICAgQVhMT0cob2JqZWN0KTsKIAogICAgIGlmICghb2JqZWN0KQpA
QCAtMTA4Miw3ICsxMDgyLDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVDaGlsZHJlbkNo
YW5nZWQoQWNjZXNzaWJpbGl0eU9iamVjdCYgb2JqZWN0KQogCiB2b2lkIEFYT2JqZWN0Q2FjaGU6
OmhhbmRsZU1lbnVPcGVuZWQoTm9kZSogbm9kZSkKIHsKLSAgICBpZiAoIW5vZGUgfHwgIW5vZGUt
PnJlbmRlcmVyKCkgfHwgIW5vZGVIYXNSb2xlKG5vZGUsICJtZW51IikpCisgICAgaWYgKCFub2Rl
IHx8ICFub2RlLT5yZW5kZXJlcigpIHx8ICFub2RlSGFzUm9sZShub2RlLCAibWVudSJfcykpCiAg
ICAgICAgIHJldHVybjsKICAgICAKICAgICBwb3N0Tm90aWZpY2F0aW9uKGdldE9yQ3JlYXRlKG5v
ZGUpLCAmZG9jdW1lbnQoKSwgQVhNZW51T3BlbmVkKTsKQEAgLTExMzQsNyArMTEzNCw3IEBAIHZv
aWQgQVhPYmplY3RDYWNoZTo6Y2hpbGRyZW5DaGFuZ2VkKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9i
amVjdCkKIAogdm9pZCBBWE9iamVjdENhY2hlOjpub3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCgp
CiB7Ci0gICAgQVhUUkFDRSgiQVhPYmplY3RDYWNoZTo6bm90aWZpY2F0aW9uUG9zdFRpbWVyRmly
ZWQiKTsKKyAgICBBWFRSQUNFKCJBWE9iamVjdENhY2hlOjpub3RpZmljYXRpb25Qb3N0VGltZXJG
aXJlZCJfcyk7CiAgICAgLy8gRHVyaW5nIExheW91dFRlc3RzLCBhY2Nlc3NpYmlsaXR5IG1heSBi
ZSBkaXNhYmxlZCBiZXR3ZWVuIHRoZSB0aW1lIHRoZSBub3RpZmljYXRpb25zIGFyZSBxdWV1ZWQg
YW5kIHRoZSB0aW1lciBmaXJlcy4KICAgICAvLyBUaHVzIGNoZWNrIGhlcmUgYW5kIHJldHVybiBp
ZiBhY2Nlc3NpYmlsaXR5IGlzIGRpc2FibGVkLgogICAgIGlmICghYWNjZXNzaWJpbGl0eUVuYWJs
ZWQoKSkKQEAgLTExOTUsNyArMTE5NSw3IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6cGFzc3dvcmRO
b3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCgpCiAgICAgYXV0byBub3RpZmljYXRpb25zID0gc3Rk
OjpleGNoYW5nZShtX3Bhc3N3b3JkTm90aWZpY2F0aW9uc1RvUG9zdCwgeyB9KTsKIAogICAgIGZv
ciAoYXV0byYgbm90aWZpY2F0aW9uIDogbm90aWZpY2F0aW9ucykKLSAgICAgICAgcG9zdFRleHRT
dGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbi5nZXQoKSwgQVhUZXh0
RWRpdFR5cGVJbnNlcnQsICIgIiwgVmlzaWJsZVBvc2l0aW9uKCkpOworICAgICAgICBwb3N0VGV4
dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24obm90aWZpY2F0aW9uLmdldCgpLCBBWFRl
eHRFZGl0VHlwZUluc2VydCwgIiAiX3MsIFZpc2libGVQb3NpdGlvbigpKTsKICNlbmRpZgogfQog
CkBAIC0xMjQzLDcgKzEyNDMsNyBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRp
b24oTm9kZSogbm9kZSwgQVhOb3RpZmljYXRpb24gbm90aWZpY2F0aW9uLCBQbwogCiB2b2lkIEFY
T2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oQVhDb3JlT2JqZWN0KiBvYmplY3QsIERvY3Vt
ZW50KiBkb2N1bWVudCwgQVhOb3RpZmljYXRpb24gbm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0IHBv
c3RUYXJnZXQpCiB7Ci0gICAgQVhUUkFDRSgiQVhPYmplY3RDYWNoZTo6cG9zdE5vdGlmaWNhdGlv
biIpOworICAgIEFYVFJBQ0UoIkFYT2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24iX3MpOwog
ICAgIEFYTE9HKHN0ZDo6bWFrZV9wYWlyKG9iamVjdCwgbm90aWZpY2F0aW9uKSk7CiAgICAgQVNT
RVJUKGlzTWFpblRocmVhZCgpKTsKIApAQCAtMTI3Myw3ICsxMjczLDcgQEAgdm9pZCBBWE9iamVj
dENhY2hlOjpoYW5kbGVNZW51SXRlbVNlbGVjdGVkKE5vZGUqIG5vZGUpCiAgICAgaWYgKCFub2Rl
KQogICAgICAgICByZXR1cm47CiAgICAgCi0gICAgaWYgKCFub2RlSGFzUm9sZShub2RlLCAibWVu
dWl0ZW0iKSAmJiAhbm9kZUhhc1JvbGUobm9kZSwgIm1lbnVpdGVtcmFkaW8iKSAmJiAhbm9kZUhh
c1JvbGUobm9kZSwgIm1lbnVpdGVtY2hlY2tib3giKSkKKyAgICBpZiAoIW5vZGVIYXNSb2xlKG5v
ZGUsICJtZW51aXRlbSJfcykgJiYgIW5vZGVIYXNSb2xlKG5vZGUsICJtZW51aXRlbXJhZGlvIl9z
KSAmJiAhbm9kZUhhc1JvbGUobm9kZSwgIm1lbnVpdGVtY2hlY2tib3giX3MpKQogICAgICAgICBy
ZXR1cm47CiAgICAgCiAgICAgaWYgKCFkb3duY2FzdDxFbGVtZW50Pigqbm9kZSkuZm9jdXNlZCgp
ICYmICFlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShkb3duY2FzdDxFbGVtZW50Pigqbm9k
ZSkuYXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihhcmlhX3NlbGVjdGVkQXR0ciksICJ0
cnVlIikpCkBAIC0xMzQ3LDggKzEzNDcsOCBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnNlbGVjdGVk
U3RhdGVDaGFuZ2VkKE5vZGUqIG5vZGUpCiB7CiAgICAgLy8gRm9yIGEgdGFibGUgY2VsbCwgcG9z
dCBBWFNlbGVjdGVkU3RhdGVDaGFuZ2VkIG9uIHRoZSBjZWxsIGl0c2VsZi4KICAgICAvLyBGb3Ig
YW55IG90aGVyIGVsZW1lbnQsIHBvc3QgQVhTZWxlY3RlZENoaWxkcmVuQ2hhbmdlZCBvbiB0aGUg
cGFyZW50LgotICAgIGlmIChub2RlSGFzUm9sZShub2RlLCAiZ3JpZGNlbGwiKSB8fCBub2RlSGFz
Um9sZShub2RlLCAiY2VsbCIpCi0gICAgICAgIHx8IG5vZGVIYXNSb2xlKG5vZGUsICJjb2x1bW5o
ZWFkZXIiKSB8fCBub2RlSGFzUm9sZShub2RlLCAicm93aGVhZGVyIikpCisgICAgaWYgKG5vZGVI
YXNSb2xlKG5vZGUsICJncmlkY2VsbCJfcykgfHwgbm9kZUhhc1JvbGUobm9kZSwgImNlbGwiX3Mp
CisgICAgICAgIHx8IG5vZGVIYXNSb2xlKG5vZGUsICJjb2x1bW5oZWFkZXIiX3MpIHx8IG5vZGVI
YXNSb2xlKG5vZGUsICJyb3doZWFkZXIiX3MpKQogICAgICAgICBwb3N0Tm90aWZpY2F0aW9uKG5v
ZGUsIEFYU2VsZWN0ZWRTdGF0ZUNoYW5nZWQpOwogICAgIGVsc2UKICAgICAgICAgc2VsZWN0ZWRD
aGlsZHJlbkNoYW5nZWQobm9kZSk7CkBAIC0xNTQyLDcgKzE1NDIsNyBAQCB2b2lkIEFYT2JqZWN0
Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oY29uc3QgUG9zaXRpb24mIHBv
c2l0aW9uLCBjbwogCiB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3Rp
ZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0LCBjb25zdCBBWFRleHRTdGF0ZUNo
YW5nZUludGVudCYgaW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24pCiB7
Ci0gICAgQVhUUkFDRSgiQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNh
dGlvbiIpOworICAgIEFYVFJBQ0UoIkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VO
b3RpZmljYXRpb24iX3MpOwogICAgIHN0b3BDYWNoaW5nQ29tcHV0ZWRPYmplY3RBdHRyaWJ1dGVz
KCk7CiAKICNpZiBQTEFURk9STShDT0NPQSkgfHwgVVNFKEFUU1BJKQpAQCAtMTU3NCw3ICsxNTc0
LDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9u
KEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCwKIAogdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0
VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqIG5vZGUsIEFYVGV4dEVkaXRUeXBlIHR5
cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlvbikK
IHsKLSAgICBBWFRSQUNFKCJBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZp
Y2F0aW9uIik7CisgICAgQVhUUkFDRSgiQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5n
ZU5vdGlmaWNhdGlvbiJfcyk7CiAgICAgaWYgKCFub2RlIHx8IHR5cGUgPT0gQVhUZXh0RWRpdFR5
cGVVbmtub3duKQogICAgICAgICByZXR1cm47CiAKQEAgLTE5MTIsNyArMTkxMiw3IEBAIHZvaWQg
QVhPYmplY3RDYWNoZTo6aGFuZGxlQXR0cmlidXRlQ2hhbmdlKGNvbnN0IFF1YWxpZmllZE5hbWUm
IGF0dHJOYW1lLCBFbGVtZW50CiAKIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlTW9kYWxDaGFu
Z2UoRWxlbWVudCYgZWxlbWVudCkKIHsKLSAgICBpZiAoIWlzPEhUTUxEaWFsb2dFbGVtZW50Pihl
bGVtZW50KSAmJiAhbm9kZUhhc1JvbGUoJmVsZW1lbnQsICJkaWFsb2ciKSAmJiAhbm9kZUhhc1Jv
bGUoJmVsZW1lbnQsICJhbGVydGRpYWxvZyIpKQorICAgIGlmICghaXM8SFRNTERpYWxvZ0VsZW1l
bnQ+KGVsZW1lbnQpICYmICFub2RlSGFzUm9sZSgmZWxlbWVudCwgImRpYWxvZyJfcykgJiYgIW5v
ZGVIYXNSb2xlKCZlbGVtZW50LCAiYWxlcnRkaWFsb2ciX3MpKQogICAgICAgICByZXR1cm47CiAK
ICAgICBzdG9wQ2FjaGluZ0NvbXB1dGVkT2JqZWN0QXR0cmlidXRlcygpOwpAQCAtMzI3Nyw3ICsz
Mjc3LDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwcm9jZXNzRGVmZXJyZWRDaGlsZHJlbkNoYW5n
ZWRMaXN0KCkKIAogdm9pZCBBWE9iamVjdENhY2hlOjpwZXJmb3JtRGVmZXJyZWRDYWNoZVVwZGF0
ZSgpCiB7Ci0gICAgQVhUUkFDRSgiQVhPYmplY3RDYWNoZTo6cGVyZm9ybURlZmVycmVkQ2FjaGVV
cGRhdGUiKTsKKyAgICBBWFRSQUNFKCJBWE9iamVjdENhY2hlOjpwZXJmb3JtRGVmZXJyZWRDYWNo
ZVVwZGF0ZSJfcyk7CiAgICAgaWYgKG1fcGVyZm9ybWluZ0RlZmVycmVkQ2FjaGVVcGRhdGUpCiAg
ICAgICAgIHJldHVybjsKICAgICBTZXRGb3JTY29wZSBwZXJmb3JtaW5nRGVmZXJyZWRDYWNoZVVw
ZGF0ZShtX3BlcmZvcm1pbmdEZWZlcnJlZENhY2hlVXBkYXRlLCB0cnVlKTsKQEAgLTMzNzMsNyAr
MzM3Myw3IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6dXBkYXRlSXNvbGF0ZWRUcmVlKEFYQ29yZU9i
amVjdCYgb2JqZWN0LCBBWE5vdGlmaWNhdGlvbiBub3RpCiAKIHZvaWQgQVhPYmplY3RDYWNoZTo6
dXBkYXRlSXNvbGF0ZWRUcmVlKGNvbnN0IFZlY3RvcjxzdGQ6OnBhaXI8UmVmUHRyPEFYQ29yZU9i
amVjdD4sIEFYTm90aWZpY2F0aW9uPj4mIG5vdGlmaWNhdGlvbnMpCiB7Ci0gICAgQVhUUkFDRSgi
QVhPYmplY3RDYWNoZTo6dXBkYXRlSXNvbGF0ZWRUcmVlIik7CisgICAgQVhUUkFDRSgiQVhPYmpl
Y3RDYWNoZTo6dXBkYXRlSXNvbGF0ZWRUcmVlIl9zKTsKICAgICBBWExPRygqdGhpcyk7CiAKICAg
ICBpZiAoIW1fcGFnZUlEKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCmluZGV4IDE0MjkxMzcyY2ZjNDZjMWRl
MjJlODM4Y2QyMjU5ZjcwOTNmZGE0MDguLmIyZDhjNDk3MGYyYWQ2ZTM0MGVkYTVkNzNmOTQxYTEy
ODY1NmYyM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eU5vZGVPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCkBAIC0yMzcsNyArMjM3LDcgQEAgRG9jdW1lbnQq
IEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojpkb2N1bWVudCgpIGNvbnN0CiAKIEFjY2Vzc2liaWxp
dHlSb2xlIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpkZXRlcm1pbmVBY2Nlc3NpYmlsaXR5Um9s
ZSgpCiB7Ci0gICAgQVhUUkFDRSgiQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmRldGVybWluZUFj
Y2Vzc2liaWxpdHlSb2xlIik7CisgICAgQVhUUkFDRSgiQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6
OmRldGVybWluZUFjY2Vzc2liaWxpdHlSb2xlIl9zKTsKICAgICBpZiAoKG1fYXJpYVJvbGUgPSBk
ZXRlcm1pbmVBcmlhUm9sZUF0dHJpYnV0ZSgpKSAhPSBBY2Nlc3NpYmlsaXR5Um9sZTo6VW5rbm93
bikKICAgICAgICAgcmV0dXJuIG1fYXJpYVJvbGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCmluZGV4IDM0ZjE1ZjI1NjQ1
NjNmOWM5MjMzNTgyMWJlYWVkZmIwOTk0YjhiYWUuLmJmYmU0MmYzZDhjMmRjMzdlOWU3NWZkNjM2
MzY0MWYzYzk3OTFlODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcApAQCAtMTcyOSw3ICsxNzI5LDcgQEAgYm9vbCBBY2Nl
c3NpYmlsaXR5T2JqZWN0OjpzdXBwb3J0c1JlYWRPbmx5KCkgY29uc3QKIFN0cmluZyBBY2Nlc3Np
YmlsaXR5T2JqZWN0OjpyZWFkT25seVZhbHVlKCkgY29uc3QKIHsKICAgICBpZiAoIWhhc0F0dHJp
YnV0ZShhcmlhX3JlYWRvbmx5QXR0cikpCi0gICAgICAgIHJldHVybiBhcmlhUm9sZUF0dHJpYnV0
ZSgpICE9IEFjY2Vzc2liaWxpdHlSb2xlOjpVbmtub3duICYmIHN1cHBvcnRzUmVhZE9ubHkoKSA/
ICJmYWxzZSIgOiBTdHJpbmcoKTsKKyAgICAgICAgcmV0dXJuIGFyaWFSb2xlQXR0cmlidXRlKCkg
IT0gQWNjZXNzaWJpbGl0eVJvbGU6OlVua25vd24gJiYgc3VwcG9ydHNSZWFkT25seSgpID8gImZh
bHNlIl9zIDogU3RyaW5nKCk7CiAKICAgICByZXR1cm4gZ2V0QXR0cmlidXRlKGFyaWFfcmVhZG9u
bHlBdHRyKS5zdHJpbmcoKS5jb252ZXJ0VG9BU0NJSUxvd2VyY2FzZSgpOwogfQpAQCAtMTc1Nyw3
ICsxNzU3LDcgQEAgU3RyaW5nIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmF1dG9Db21wbGV0ZVZhbHVl
KCkgY29uc3QKICAgICAgICAgfHwgZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoYXV0b0Nv
bXBsZXRlLCAiYm90aCIpKQogICAgICAgICByZXR1cm4gYXV0b0NvbXBsZXRlOwogCi0gICAgcmV0
dXJuICJub25lIjsKKyAgICByZXR1cm4gIm5vbmUiX3M7CiB9CiAKIGJvb2wgQWNjZXNzaWJpbGl0
eU9iamVjdDo6Y29udGVudEVkaXRhYmxlQXR0cmlidXRlSXNFbmFibGVkKEVsZW1lbnQqIGVsZW1l
bnQpCkBAIC0yMjMzLDIwICsyMjMzLDIwIEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojpj
dXJyZW50VmFsdWUoKSBjb25zdAogewogICAgIHN3aXRjaCAoY3VycmVudFN0YXRlKCkpIHsKICAg
ICBjYXNlIEFjY2Vzc2liaWxpdHlDdXJyZW50U3RhdGU6OkZhbHNlOgotICAgICAgICByZXR1cm4g
ImZhbHNlIjsKKyAgICAgICAgcmV0dXJuICJmYWxzZSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxp
dHlDdXJyZW50U3RhdGU6OlBhZ2U6Ci0gICAgICAgIHJldHVybiAicGFnZSI7CisgICAgICAgIHJl
dHVybiAicGFnZSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlDdXJyZW50U3RhdGU6OlN0ZXA6
Ci0gICAgICAgIHJldHVybiAic3RlcCI7CisgICAgICAgIHJldHVybiAic3RlcCJfczsKICAgICBj
YXNlIEFjY2Vzc2liaWxpdHlDdXJyZW50U3RhdGU6OkxvY2F0aW9uOgotICAgICAgICByZXR1cm4g
ImxvY2F0aW9uIjsKKyAgICAgICAgcmV0dXJuICJsb2NhdGlvbiJfczsKICAgICBjYXNlIEFjY2Vz
c2liaWxpdHlDdXJyZW50U3RhdGU6OlRpbWU6Ci0gICAgICAgIHJldHVybiAidGltZSI7CisgICAg
ICAgIHJldHVybiAidGltZSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlDdXJyZW50U3RhdGU6
OkRhdGU6Ci0gICAgICAgIHJldHVybiAiZGF0ZSI7CisgICAgICAgIHJldHVybiAiZGF0ZSJfczsK
ICAgICBkZWZhdWx0OgogICAgIGNhc2UgQWNjZXNzaWJpbGl0eUN1cnJlbnRTdGF0ZTo6VHJ1ZToK
LSAgICAgICAgcmV0dXJuICJ0cnVlIjsKKyAgICAgICAgcmV0dXJuICJ0cnVlIl9zOwogICAgIH0K
IH0KIApAQCAtMjM1NSwxMSArMjM1NSwxMSBAQCBib29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnJl
cGxhY2VUZXh0SW5SYW5nZShjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50U3RyaW5nLCBjbwogICAg
IH0KICAgICAKICAgICBpZiAoaXM8SFRNTElucHV0RWxlbWVudD4oZWxlbWVudCkpIHsKLSAgICAg
ICAgZG93bmNhc3Q8SFRNTElucHV0RWxlbWVudD4oZWxlbWVudCkuc2V0UmFuZ2VUZXh0KHJlcGxh
Y2VtZW50U3RyaW5nLCByYW5nZS5zdGFydCwgcmFuZ2UubGVuZ3RoLCAiIik7CisgICAgICAgIGRv
d25jYXN0PEhUTUxJbnB1dEVsZW1lbnQ+KGVsZW1lbnQpLnNldFJhbmdlVGV4dChyZXBsYWNlbWVu
dFN0cmluZywgcmFuZ2Uuc3RhcnQsIHJhbmdlLmxlbmd0aCwgZW1wdHlTdHJpbmcoKSk7CiAgICAg
ICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICBpZiAoaXM8SFRNTFRleHRBcmVhRWxlbWVudD4o
ZWxlbWVudCkpIHsKLSAgICAgICAgZG93bmNhc3Q8SFRNTFRleHRBcmVhRWxlbWVudD4oZWxlbWVu
dCkuc2V0UmFuZ2VUZXh0KHJlcGxhY2VtZW50U3RyaW5nLCByYW5nZS5zdGFydCwgcmFuZ2UubGVu
Z3RoLCAiIik7CisgICAgICAgIGRvd25jYXN0PEhUTUxUZXh0QXJlYUVsZW1lbnQ+KGVsZW1lbnQp
LnNldFJhbmdlVGV4dChyZXBsYWNlbWVudFN0cmluZywgcmFuZ2Uuc3RhcnQsIHJhbmdlLmxlbmd0
aCwgZW1wdHlTdHJpbmcoKSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIApAQCAtMjU5
NCw3ICsyNTk0LDcgQEAgU3RyaW5nIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmNvbXB1dGVkUm9sZVN0
cmluZygpIGNvbnN0CiAKICAgICAvLyBXZSBkbyBub3QgY29tcHV0ZSBhIHJvbGUgc3RyaW5nIGZv
ciBnZW5lcmljIGJsb2NrIGVsZW1lbnRzIHdpdGggdXNlci1hZ2VudCBhc3NpZ25lZCByb2xlcy4K
ICAgICBpZiAocm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6R3JvdXAgfHwgcm9sZSA9PSBBY2Nl
c3NpYmlsaXR5Um9sZTo6VGV4dEdyb3VwKQotICAgICAgICByZXR1cm4gIiI7CisgICAgICAgIHJl
dHVybiBlbXB0eVN0cmluZygpOwogCiAgICAgLy8gV2UgZG8gY29tcHV0ZSBhIHJvbGUgc3RyaW5n
IGZvciBibG9jayBlbGVtZW50cyB3aXRoIGF1dGhvci1wcm92aWRlZCByb2xlcy4KICAgICBpZiAo
cm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb25UZXh0R3JvdXAKQEAgLTI3MjUs
NyArMjcyNSw3IEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojpyb2xlRGVzY3JpcHRpb24o
KSBjb25zdAogCiBib29sIG5vZGVIYXNQcmVzZW50YXRpb25Sb2xlKE5vZGUqIG5vZGUpCiB7Ci0g
ICAgcmV0dXJuIG5vZGVIYXNSb2xlKG5vZGUsICJwcmVzZW50YXRpb24iKSB8fCBub2RlSGFzUm9s
ZShub2RlLCAibm9uZSIpOworICAgIHJldHVybiBub2RlSGFzUm9sZShub2RlLCAicHJlc2VudGF0
aW9uIl9zKSB8fCBub2RlSGFzUm9sZShub2RlLCAibm9uZSJfcyk7CiB9CiAgICAgCiBib29sIEFj
Y2Vzc2liaWxpdHlPYmplY3Q6OnN1cHBvcnRzUHJlc3NBY3Rpb24oKSBjb25zdApAQCAtMzIxMCwx
MCArMzIxMCwxMCBAQCBIYXNoTWFwPFN0cmluZywgQVhFZGl0aW5nU3R5bGVWYWx1ZVZhcmlhbnQ+
IEFjY2Vzc2liaWxpdHlPYmplY3Q6OnJlc29sdmVkRWRpdGluZwogICAgICAgICByZXR1cm4geyB9
OwogCiAgICAgSGFzaE1hcDxTdHJpbmcsIEFYRWRpdGluZ1N0eWxlVmFsdWVWYXJpYW50PiBzdHls
ZXM7Ci0gICAgc3R5bGVzLmFkZCgiYm9sZCIsIHNlbGVjdGlvblN0eWxlLT5oYXNTdHlsZShDU1NQ
cm9wZXJ0eUZvbnRXZWlnaHQsICJib2xkIikpOwotICAgIHN0eWxlcy5hZGQoIml0YWxpYyIsIHNl
bGVjdGlvblN0eWxlLT5oYXNTdHlsZShDU1NQcm9wZXJ0eUZvbnRTdHlsZSwgIml0YWxpYyIpKTsK
LSAgICBzdHlsZXMuYWRkKCJ1bmRlcmxpbmUiLCBzZWxlY3Rpb25TdHlsZS0+aGFzU3R5bGUoQ1NT
UHJvcGVydHlXZWJraXRUZXh0RGVjb3JhdGlvbnNJbkVmZmVjdCwgInVuZGVybGluZSIpKTsKLSAg
ICBzdHlsZXMuYWRkKCJmb250c2l6ZSIsIHNlbGVjdGlvblN0eWxlLT5sZWdhY3lGb250U2l6ZSgq
ZG9jdW1lbnQpKTsKKyAgICBzdHlsZXMuYWRkKCJib2xkIl9zLCBzZWxlY3Rpb25TdHlsZS0+aGFz
U3R5bGUoQ1NTUHJvcGVydHlGb250V2VpZ2h0LCAiYm9sZCJfcykpOworICAgIHN0eWxlcy5hZGQo
Iml0YWxpYyJfcywgc2VsZWN0aW9uU3R5bGUtPmhhc1N0eWxlKENTU1Byb3BlcnR5Rm9udFN0eWxl
LCAiaXRhbGljIl9zKSk7CisgICAgc3R5bGVzLmFkZCgidW5kZXJsaW5lIl9zLCBzZWxlY3Rpb25T
dHlsZS0+aGFzU3R5bGUoQ1NTUHJvcGVydHlXZWJraXRUZXh0RGVjb3JhdGlvbnNJbkVmZmVjdCwg
InVuZGVybGluZSJfcykpOworICAgIHN0eWxlcy5hZGQoImZvbnRzaXplIl9zLCBzZWxlY3Rpb25T
dHlsZS0+bGVnYWN5Rm9udFNpemUoKmRvY3VtZW50KSk7CiAgICAgcmV0dXJuIHN0eWxlczsKIH0K
IApAQCAtNDA4OCw3ICs0MDg4LDcgQEAgc3RhdGljIGJvb2wgaXNSYWRpb0J1dHRvbkluRGlmZmVy
ZW50QWRob2NHcm91cChSZWZQdHI8QVhDb3JlT2JqZWN0PiBheE9iamVjdCwgQVgKICAgICBpZiAo
IXJlZmVyZW5jZU9iamVjdCB8fCAhcmVmZXJlbmNlT2JqZWN0LT5pc1JhZGlvQnV0dG9uKCkpCiAg
ICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgcmV0dXJuIGF4T2JqZWN0LT5hdHRyaWJ1dGVWYWx1
ZSgibmFtZSIpICE9IHJlZmVyZW5jZU9iamVjdC0+YXR0cmlidXRlVmFsdWUoIm5hbWUiKTsKKyAg
ICByZXR1cm4gYXhPYmplY3QtPmF0dHJpYnV0ZVZhbHVlKCJuYW1lIl9zKSAhPSByZWZlcmVuY2VP
YmplY3QtPmF0dHJpYnV0ZVZhbHVlKCJuYW1lIl9zKTsKIH0KIAogc3RhdGljIGJvb2wgaXNBY2Nl
c3NpYmlsaXR5T2JqZWN0U2VhcmNoTWF0Y2hBdEluZGV4KFJlZlB0cjxBWENvcmVPYmplY3Q+IGF4
T2JqZWN0LCBBY2Nlc3NpYmlsaXR5U2VhcmNoQ3JpdGVyaWEgY29uc3QmIGNyaXRlcmlhLCBzaXpl
X3QgaW5kZXgpCkBAIC00Mjk1LDcgKzQyOTUsNyBAQCBzdGF0aWMgdm9pZCBhcHBlbmRDaGlsZHJl
blRvQXJyYXkoUmVmUHRyPEFYQ29yZU9iamVjdD4gb2JqZWN0LCBib29sIGlzRm9yd2FyZCwgUgog
CiB2b2lkIGZpbmRNYXRjaGluZ09iamVjdHMoQWNjZXNzaWJpbGl0eVNlYXJjaENyaXRlcmlhIGNv
bnN0JiBjcml0ZXJpYSwgQVhDb3JlT2JqZWN0OjpBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0b3Im
IHJlc3VsdHMpCiB7Ci0gICAgQVhUUkFDRSgiQWNjZXNzaWJpbGl0eTo6ZmluZE1hdGNoaW5nT2Jq
ZWN0cyIpOworICAgIEFYVFJBQ0UoIkFjY2Vzc2liaWxpdHk6OmZpbmRNYXRjaGluZ09iamVjdHMi
X3MpOwogICAgIEFYTE9HKGNyaXRlcmlhKTsKIAogICAgIC8vIFRoaXMgc2VhcmNoIGFsZ29yaXRo
bSBvbmx5IHNlYXJjaGVzIHRoZSBlbGVtZW50cyBiZWZvcmUvYWZ0ZXIgdGhlIHN0YXJ0aW5nIG9i
amVjdC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU9iamVjdEludGVyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgKaW5kZXggNDZmNjAyODAyYTc2MjFjMDg2ZjUxNDVk
MGE3MGVjZTZiZmI4MjdjZi4uZTBiZGRkOTMxYzRkMjQxZWQ3NzgwNDNlOWIyNDFmMTI5ZTNmZWQ3
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
T2JqZWN0SW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgKQEAgLTI2NCwzMTIgKzI2NCwzMTIgQEAgQUxXQVlT
X0lOTElORSBTdHJpbmcgYWNjZXNzaWJpbGl0eVJvbGVUb1N0cmluZyhBY2Nlc3NpYmlsaXR5Um9s
ZSByb2xlKQogewogICAgIHN3aXRjaCAocm9sZSkgewogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJv
bGU6OkFubm90YXRpb246Ci0gICAgICAgIHJldHVybiAiQW5ub3RhdGlvbiI7CisgICAgICAgIHJl
dHVybiAiQW5ub3RhdGlvbiJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNh
dGlvbjoKLSAgICAgICAgcmV0dXJuICJBcHBsaWNhdGlvbiI7CisgICAgICAgIHJldHVybiAiQXBw
bGljYXRpb24iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb25BbGVy
dDoKLSAgICAgICAgcmV0dXJuICJBcHBsaWNhdGlvbkFsZXJ0IjsKKyAgICAgICAgcmV0dXJuICJB
cHBsaWNhdGlvbkFsZXJ0Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0
aW9uQWxlcnREaWFsb2c6Ci0gICAgICAgIHJldHVybiAiQXBwbGljYXRpb25BbGVydERpYWxvZyI7
CisgICAgICAgIHJldHVybiAiQXBwbGljYXRpb25BbGVydERpYWxvZyJfczsKICAgICBjYXNlIEFj
Y2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvbkRpYWxvZzoKLSAgICAgICAgcmV0dXJuICJBcHBs
aWNhdGlvbkRpYWxvZyI7CisgICAgICAgIHJldHVybiAiQXBwbGljYXRpb25EaWFsb2ciX3M7CiAg
ICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb25Hcm91cDoKLSAgICAgICAgcmV0
dXJuICJBcHBsaWNhdGlvbkdyb3VwIjsKKyAgICAgICAgcmV0dXJuICJBcHBsaWNhdGlvbkdyb3Vw
Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uTG9nOgotICAgICAg
ICByZXR1cm4gIkFwcGxpY2F0aW9uTG9nIjsKKyAgICAgICAgcmV0dXJuICJBcHBsaWNhdGlvbkxv
ZyJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvbk1hcnF1ZWU6Ci0g
ICAgICAgIHJldHVybiAiQXBwbGljYXRpb25NYXJxdWVlIjsKKyAgICAgICAgcmV0dXJuICJBcHBs
aWNhdGlvbk1hcnF1ZWUiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRp
b25TdGF0dXM6Ci0gICAgICAgIHJldHVybiAiQXBwbGljYXRpb25TdGF0dXMiOworICAgICAgICBy
ZXR1cm4gIkFwcGxpY2F0aW9uU3RhdHVzIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6
OkFwcGxpY2F0aW9uVGV4dEdyb3VwOgotICAgICAgICByZXR1cm4gIkFwcGxpY2F0aW9uVGV4dEdy
b3VwIjsKKyAgICAgICAgcmV0dXJuICJBcHBsaWNhdGlvblRleHRHcm91cCJfczsKICAgICBjYXNl
IEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvblRpbWVyOgotICAgICAgICByZXR1cm4gIkFw
cGxpY2F0aW9uVGltZXIiOworICAgICAgICByZXR1cm4gIkFwcGxpY2F0aW9uVGltZXIiX3M7CiAg
ICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXVkaW86Ci0gICAgICAgIHJldHVybiAiQXVkaW8i
OworICAgICAgICByZXR1cm4gIkF1ZGlvIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6
OkJsb2NrcXVvdGU6Ci0gICAgICAgIHJldHVybiAiQmxvY2txdW90ZSI7CisgICAgICAgIHJldHVy
biAiQmxvY2txdW90ZSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpCcm93c2VyOgot
ICAgICAgICByZXR1cm4gIkJyb3dzZXIiOworICAgICAgICByZXR1cm4gIkJyb3dzZXIiX3M7CiAg
ICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QnVzeUluZGljYXRvcjoKLSAgICAgICAgcmV0dXJu
ICJCdXN5SW5kaWNhdG9yIjsKKyAgICAgICAgcmV0dXJuICJCdXN5SW5kaWNhdG9yIl9zOwogICAg
IGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkJ1dHRvbjoKLSAgICAgICAgcmV0dXJuICJCdXR0b24i
OworICAgICAgICByZXR1cm4gIkJ1dHRvbiJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xl
OjpDYW52YXM6Ci0gICAgICAgIHJldHVybiAiQ2FudmFzIjsKKyAgICAgICAgcmV0dXJuICJDYW52
YXMiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6Q2FwdGlvbjoKLSAgICAgICAgcmV0
dXJuICJDYXB0aW9uIjsKKyAgICAgICAgcmV0dXJuICJDYXB0aW9uIl9zOwogICAgIGNhc2UgQWNj
ZXNzaWJpbGl0eVJvbGU6OkNlbGw6Ci0gICAgICAgIHJldHVybiAiQ2VsbCI7CisgICAgICAgIHJl
dHVybiAiQ2VsbCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpDaGVja0JveDoKLSAg
ICAgICAgcmV0dXJuICJDaGVja0JveCI7CisgICAgICAgIHJldHVybiAiQ2hlY2tCb3giX3M7CiAg
ICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6Q29sb3JXZWxsOgotICAgICAgICByZXR1cm4gIkNv
bG9yV2VsbCI7CisgICAgICAgIHJldHVybiAiQ29sb3JXZWxsIl9zOwogICAgIGNhc2UgQWNjZXNz
aWJpbGl0eVJvbGU6OkNvbHVtbjoKLSAgICAgICAgcmV0dXJuICJDb2x1bW4iOworICAgICAgICBy
ZXR1cm4gIkNvbHVtbiJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpDb2x1bW5IZWFk
ZXI6Ci0gICAgICAgIHJldHVybiAiQ29sdW1uSGVhZGVyIjsKKyAgICAgICAgcmV0dXJuICJDb2x1
bW5IZWFkZXIiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6Q29tYm9Cb3g6Ci0gICAg
ICAgIHJldHVybiAiQ29tYm9Cb3giOworICAgICAgICByZXR1cm4gIkNvbWJvQm94Il9zOwogICAg
IGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRlZmluaXRpb246Ci0gICAgICAgIHJldHVybiAiRGVm
aW5pdGlvbiI7CisgICAgICAgIHJldHVybiAiRGVmaW5pdGlvbiJfczsKICAgICBjYXNlIEFjY2Vz
c2liaWxpdHlSb2xlOjpEZWxldGlvbjoKLSAgICAgICAgcmV0dXJuICJEZWxldGlvbiI7CisgICAg
ICAgIHJldHVybiAiRGVsZXRpb24iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RGVz
Y3JpcHRpb25MaXN0OgotICAgICAgICByZXR1cm4gIkRlc2NyaXB0aW9uTGlzdCI7CisgICAgICAg
IHJldHVybiAiRGVzY3JpcHRpb25MaXN0Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6
OkRlc2NyaXB0aW9uTGlzdFRlcm06Ci0gICAgICAgIHJldHVybiAiRGVzY3JpcHRpb25MaXN0VGVy
bSI7CisgICAgICAgIHJldHVybiAiRGVzY3JpcHRpb25MaXN0VGVybSJfczsKICAgICBjYXNlIEFj
Y2Vzc2liaWxpdHlSb2xlOjpEZXNjcmlwdGlvbkxpc3REZXRhaWw6Ci0gICAgICAgIHJldHVybiAi
RGVzY3JpcHRpb25MaXN0RGV0YWlsIjsKKyAgICAgICAgcmV0dXJuICJEZXNjcmlwdGlvbkxpc3RE
ZXRhaWwiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RGV0YWlsczoKLSAgICAgICAg
cmV0dXJuICJEZXRhaWxzIjsKKyAgICAgICAgcmV0dXJuICJEZXRhaWxzIl9zOwogICAgIGNhc2Ug
QWNjZXNzaWJpbGl0eVJvbGU6OkRpcmVjdG9yeToKLSAgICAgICAgcmV0dXJuICJEaXJlY3Rvcnki
OworICAgICAgICByZXR1cm4gIkRpcmVjdG9yeSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlS
b2xlOjpEaXNjbG9zdXJlVHJpYW5nbGU6Ci0gICAgICAgIHJldHVybiAiRGlzY2xvc3VyZVRyaWFu
Z2xlIjsKKyAgICAgICAgcmV0dXJuICJEaXNjbG9zdXJlVHJpYW5nbGUiX3M7CiAgICAgY2FzZSBB
Y2Nlc3NpYmlsaXR5Um9sZTo6RGl2OgotICAgICAgICByZXR1cm4gIkRpdiI7CisgICAgICAgIHJl
dHVybiAiRGl2Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRvY3VtZW50OgotICAg
ICAgICByZXR1cm4gIkRvY3VtZW50IjsKKyAgICAgICAgcmV0dXJuICJEb2N1bWVudCJfczsKICAg
ICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpEb2N1bWVudEFydGljbGU6Ci0gICAgICAgIHJldHVy
biAiRG9jdW1lbnRBcnRpY2xlIjsKKyAgICAgICAgcmV0dXJuICJEb2N1bWVudEFydGljbGUiX3M7
CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RG9jdW1lbnRNYXRoOgotICAgICAgICByZXR1
cm4gIkRvY3VtZW50TWF0aCI7CisgICAgICAgIHJldHVybiAiRG9jdW1lbnRNYXRoIl9zOwogICAg
IGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRvY3VtZW50Tm90ZToKLSAgICAgICAgcmV0dXJuICJE
b2N1bWVudE5vdGUiOworICAgICAgICByZXR1cm4gIkRvY3VtZW50Tm90ZSJfczsKICAgICBjYXNl
IEFjY2Vzc2liaWxpdHlSb2xlOjpEcmF3ZXI6Ci0gICAgICAgIHJldHVybiAiRHJhd2VyIjsKKyAg
ICAgICAgcmV0dXJuICJEcmF3ZXIiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RWRp
dGFibGVUZXh0OgotICAgICAgICByZXR1cm4gIkVkaXRhYmxlVGV4dCI7CisgICAgICAgIHJldHVy
biAiRWRpdGFibGVUZXh0Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkZlZWQ6Ci0g
ICAgICAgIHJldHVybiAiRmVlZCI7CisgICAgICAgIHJldHVybiAiRmVlZCJfczsKICAgICBjYXNl
IEFjY2Vzc2liaWxpdHlSb2xlOjpGaWd1cmU6Ci0gICAgICAgIHJldHVybiAiRmlndXJlIjsKKyAg
ICAgICAgcmV0dXJuICJGaWd1cmUiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6Rm9v
dGVyOgotICAgICAgICByZXR1cm4gIkZvb3RlciI7CisgICAgICAgIHJldHVybiAiRm9vdGVyIl9z
OwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkZvb3Rub3RlOgotICAgICAgICByZXR1cm4g
IkZvb3Rub3RlIjsKKyAgICAgICAgcmV0dXJuICJGb290bm90ZSJfczsKICAgICBjYXNlIEFjY2Vz
c2liaWxpdHlSb2xlOjpGb3JtOgotICAgICAgICByZXR1cm4gIkZvcm0iOworICAgICAgICByZXR1
cm4gIkZvcm0iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6R3JhcGhpY3NEb2N1bWVu
dDoKLSAgICAgICAgcmV0dXJuICJHcmFwaGljc0RvY3VtZW50IjsKKyAgICAgICAgcmV0dXJuICJH
cmFwaGljc0RvY3VtZW50Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkdyYXBoaWNz
T2JqZWN0OgotICAgICAgICByZXR1cm4gIkdyYXBoaWNzT2JqZWN0IjsKKyAgICAgICAgcmV0dXJu
ICJHcmFwaGljc09iamVjdCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpHcmFwaGlj
c1N5bWJvbDoKLSAgICAgICAgcmV0dXJuICJHcmFwaGljc1N5bWJvbCI7CisgICAgICAgIHJldHVy
biAiR3JhcGhpY3NTeW1ib2wiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6R3JpZDoK
LSAgICAgICAgcmV0dXJuICJHcmlkIjsKKyAgICAgICAgcmV0dXJuICJHcmlkIl9zOwogICAgIGNh
c2UgQWNjZXNzaWJpbGl0eVJvbGU6OkdyaWRDZWxsOgotICAgICAgICByZXR1cm4gIkdyaWRDZWxs
IjsKKyAgICAgICAgcmV0dXJuICJHcmlkQ2VsbCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlS
b2xlOjpHcm91cDoKLSAgICAgICAgcmV0dXJuICJHcm91cCI7CisgICAgICAgIHJldHVybiAiR3Jv
dXAiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6R3Jvd0FyZWE6Ci0gICAgICAgIHJl
dHVybiAiR3Jvd0FyZWEiOworICAgICAgICByZXR1cm4gIkdyb3dBcmVhIl9zOwogICAgIGNhc2Ug
QWNjZXNzaWJpbGl0eVJvbGU6OkhlYWRpbmc6Ci0gICAgICAgIHJldHVybiAiSGVhZGluZyI7Cisg
ICAgICAgIHJldHVybiAiSGVhZGluZyJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpI
ZWxwVGFnOgotICAgICAgICByZXR1cm4gIkhlbHBUYWciOworICAgICAgICByZXR1cm4gIkhlbHBU
YWciX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6SG9yaXpvbnRhbFJ1bGU6Ci0gICAg
ICAgIHJldHVybiAiSG9yaXpvbnRhbFJ1bGUiOworICAgICAgICByZXR1cm4gIkhvcml6b250YWxS
dWxlIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Oklnbm9yZWQ6Ci0gICAgICAgIHJl
dHVybiAiSWdub3JlZCI7CisgICAgICAgIHJldHVybiAiSWdub3JlZCJfczsKICAgICBjYXNlIEFj
Y2Vzc2liaWxpdHlSb2xlOjpJbmxpbmU6Ci0gICAgICAgIHJldHVybiAiSW5saW5lIjsKKyAgICAg
ICAgcmV0dXJuICJJbmxpbmUiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6SW1hZ2U6
Ci0gICAgICAgIHJldHVybiAiSW1hZ2UiOworICAgICAgICByZXR1cm4gIkltYWdlIl9zOwogICAg
IGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkltYWdlTWFwOgotICAgICAgICByZXR1cm4gIkltYWdl
TWFwIjsKKyAgICAgICAgcmV0dXJuICJJbWFnZU1hcCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxp
dHlSb2xlOjpJbWFnZU1hcExpbms6Ci0gICAgICAgIHJldHVybiAiSW1hZ2VNYXBMaW5rIjsKKyAg
ICAgICAgcmV0dXJuICJJbWFnZU1hcExpbmsiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9s
ZTo6SW5jcmVtZW50b3I6Ci0gICAgICAgIHJldHVybiAiSW5jcmVtZW50b3IiOworICAgICAgICBy
ZXR1cm4gIkluY3JlbWVudG9yIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Okluc2Vy
dGlvbjoKLSAgICAgICAgcmV0dXJuICJJbnNlcnRpb24iOworICAgICAgICByZXR1cm4gIkluc2Vy
dGlvbiJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpMYWJlbDoKLSAgICAgICAgcmV0
dXJuICJMYWJlbCI7CisgICAgICAgIHJldHVybiAiTGFiZWwiX3M7CiAgICAgY2FzZSBBY2Nlc3Np
YmlsaXR5Um9sZTo6TGFuZG1hcmtCYW5uZXI6Ci0gICAgICAgIHJldHVybiAiTGFuZG1hcmtCYW5u
ZXIiOworICAgICAgICByZXR1cm4gIkxhbmRtYXJrQmFubmVyIl9zOwogICAgIGNhc2UgQWNjZXNz
aWJpbGl0eVJvbGU6OkxhbmRtYXJrQ29tcGxlbWVudGFyeToKLSAgICAgICAgcmV0dXJuICJMYW5k
bWFya0NvbXBsZW1lbnRhcnkiOworICAgICAgICByZXR1cm4gIkxhbmRtYXJrQ29tcGxlbWVudGFy
eSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpMYW5kbWFya0NvbnRlbnRJbmZvOgot
ICAgICAgICByZXR1cm4gIkxhbmRtYXJrQ29udGVudEluZm8iOworICAgICAgICByZXR1cm4gIkxh
bmRtYXJrQ29udGVudEluZm8iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1h
cmtEb2NSZWdpb246Ci0gICAgICAgIHJldHVybiAiTGFuZG1hcmtEb2NSZWdpb24iOworICAgICAg
ICByZXR1cm4gIkxhbmRtYXJrRG9jUmVnaW9uIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJv
bGU6OkxhbmRtYXJrTWFpbjoKLSAgICAgICAgcmV0dXJuICJMYW5kbWFya01haW4iOworICAgICAg
ICByZXR1cm4gIkxhbmRtYXJrTWFpbiJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpM
YW5kbWFya05hdmlnYXRpb246Ci0gICAgICAgIHJldHVybiAiTGFuZG1hcmtOYXZpZ2F0aW9uIjsK
KyAgICAgICAgcmV0dXJuICJMYW5kbWFya05hdmlnYXRpb24iX3M7CiAgICAgY2FzZSBBY2Nlc3Np
YmlsaXR5Um9sZTo6TGFuZG1hcmtSZWdpb246Ci0gICAgICAgIHJldHVybiAiTGFuZG1hcmtSZWdp
b24iOworICAgICAgICByZXR1cm4gIkxhbmRtYXJrUmVnaW9uIl9zOwogICAgIGNhc2UgQWNjZXNz
aWJpbGl0eVJvbGU6OkxhbmRtYXJrU2VhcmNoOgotICAgICAgICByZXR1cm4gIkxhbmRtYXJrU2Vh
cmNoIjsKKyAgICAgICAgcmV0dXJuICJMYW5kbWFya1NlYXJjaCJfczsKICAgICBjYXNlIEFjY2Vz
c2liaWxpdHlSb2xlOjpMZWdlbmQ6Ci0gICAgICAgIHJldHVybiAiTGVnZW5kIjsKKyAgICAgICAg
cmV0dXJuICJMZWdlbmQiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGluazoKLSAg
ICAgICAgcmV0dXJuICJMaW5rIjsKKyAgICAgICAgcmV0dXJuICJMaW5rIl9zOwogICAgIGNhc2Ug
QWNjZXNzaWJpbGl0eVJvbGU6Okxpc3Q6Ci0gICAgICAgIHJldHVybiAiTGlzdCI7CisgICAgICAg
IHJldHVybiAiTGlzdCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpMaXN0Qm94Ogot
ICAgICAgICByZXR1cm4gIkxpc3RCb3giOworICAgICAgICByZXR1cm4gIkxpc3RCb3giX3M7CiAg
ICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGlzdEJveE9wdGlvbjoKLSAgICAgICAgcmV0dXJu
ICJMaXN0Qm94T3B0aW9uIjsKKyAgICAgICAgcmV0dXJuICJMaXN0Qm94T3B0aW9uIl9zOwogICAg
IGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Okxpc3RJdGVtOgotICAgICAgICByZXR1cm4gIkxpc3RJ
dGVtIjsKKyAgICAgICAgcmV0dXJuICJMaXN0SXRlbSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxp
dHlSb2xlOjpMaXN0TWFya2VyOgotICAgICAgICByZXR1cm4gIkxpc3RNYXJrZXIiOworICAgICAg
ICByZXR1cm4gIkxpc3RNYXJrZXIiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TWFy
azoKLSAgICAgICAgcmV0dXJuICJNYXJrIjsKKyAgICAgICAgcmV0dXJuICJNYXJrIl9zOwogICAg
IGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Ok1hdGhFbGVtZW50OgotICAgICAgICByZXR1cm4gIk1h
dGhFbGVtZW50IjsKKyAgICAgICAgcmV0dXJuICJNYXRoRWxlbWVudCJfczsKICAgICBjYXNlIEFj
Y2Vzc2liaWxpdHlSb2xlOjpNYXR0ZToKLSAgICAgICAgcmV0dXJuICJNYXR0ZSI7CisgICAgICAg
IHJldHVybiAiTWF0dGUiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TWVudToKLSAg
ICAgICAgcmV0dXJuICJNZW51IjsKKyAgICAgICAgcmV0dXJuICJNZW51Il9zOwogICAgIGNhc2Ug
QWNjZXNzaWJpbGl0eVJvbGU6Ok1lbnVCYXI6Ci0gICAgICAgIHJldHVybiAiTWVudUJhciI7Cisg
ICAgICAgIHJldHVybiAiTWVudUJhciJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpN
ZW51QnV0dG9uOgotICAgICAgICByZXR1cm4gIk1lbnVCdXR0b24iOworICAgICAgICByZXR1cm4g
Ik1lbnVCdXR0b24iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TWVudUl0ZW06Ci0g
ICAgICAgIHJldHVybiAiTWVudUl0ZW0iOworICAgICAgICByZXR1cm4gIk1lbnVJdGVtIl9zOwog
ICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Ok1lbnVJdGVtQ2hlY2tib3g6Ci0gICAgICAgIHJl
dHVybiAiTWVudUl0ZW1DaGVja2JveCI7CisgICAgICAgIHJldHVybiAiTWVudUl0ZW1DaGVja2Jv
eCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpNZW51SXRlbVJhZGlvOgotICAgICAg
ICByZXR1cm4gIk1lbnVJdGVtUmFkaW8iOworICAgICAgICByZXR1cm4gIk1lbnVJdGVtUmFkaW8i
X3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TWVudUxpc3RQb3B1cDoKLSAgICAgICAg
cmV0dXJuICJNZW51TGlzdFBvcHVwIjsKKyAgICAgICAgcmV0dXJuICJNZW51TGlzdFBvcHVwIl9z
OwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Ok1lbnVMaXN0T3B0aW9uOgotICAgICAgICBy
ZXR1cm4gIk1lbnVMaXN0T3B0aW9uIjsKKyAgICAgICAgcmV0dXJuICJNZW51TGlzdE9wdGlvbiJf
czsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpNZXRlcjoKLSAgICAgICAgcmV0dXJuICJN
ZXRlciI7CisgICAgICAgIHJldHVybiAiTWV0ZXIiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5
Um9sZTo6TW9kZWw6Ci0gICAgICAgIHJldHVybiAiTW9kZWwiOworICAgICAgICByZXR1cm4gIk1v
ZGVsIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Ok91dGxpbmU6Ci0gICAgICAgIHJl
dHVybiAiT3V0bGluZSI7CisgICAgICAgIHJldHVybiAiT3V0bGluZSJfczsKICAgICBjYXNlIEFj
Y2Vzc2liaWxpdHlSb2xlOjpQYXJhZ3JhcGg6Ci0gICAgICAgIHJldHVybiAiUGFyYWdyYXBoIjsK
KyAgICAgICAgcmV0dXJuICJQYXJhZ3JhcGgiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9s
ZTo6UG9wVXBCdXR0b246Ci0gICAgICAgIHJldHVybiAiUG9wVXBCdXR0b24iOworICAgICAgICBy
ZXR1cm4gIlBvcFVwQnV0dG9uIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlByZToK
LSAgICAgICAgcmV0dXJuICJQcmUiOworICAgICAgICByZXR1cm4gIlByZSJfczsKICAgICBjYXNl
IEFjY2Vzc2liaWxpdHlSb2xlOjpQcmVzZW50YXRpb25hbDoKLSAgICAgICAgcmV0dXJuICJQcmVz
ZW50YXRpb25hbCI7CisgICAgICAgIHJldHVybiAiUHJlc2VudGF0aW9uYWwiX3M7CiAgICAgY2Fz
ZSBBY2Nlc3NpYmlsaXR5Um9sZTo6UHJvZ3Jlc3NJbmRpY2F0b3I6Ci0gICAgICAgIHJldHVybiAi
UHJvZ3Jlc3NJbmRpY2F0b3IiOworICAgICAgICByZXR1cm4gIlByb2dyZXNzSW5kaWNhdG9yIl9z
OwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlJhZGlvQnV0dG9uOgotICAgICAgICByZXR1
cm4gIlJhZGlvQnV0dG9uIjsKKyAgICAgICAgcmV0dXJuICJSYWRpb0J1dHRvbiJfczsKICAgICBj
YXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpSYWRpb0dyb3VwOgotICAgICAgICByZXR1cm4gIlJhZGlv
R3JvdXAiOworICAgICAgICByZXR1cm4gIlJhZGlvR3JvdXAiX3M7CiAgICAgY2FzZSBBY2Nlc3Np
YmlsaXR5Um9sZTo6Um93SGVhZGVyOgotICAgICAgICByZXR1cm4gIlJvd0hlYWRlciI7CisgICAg
ICAgIHJldHVybiAiUm93SGVhZGVyIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlJv
dzoKLSAgICAgICAgcmV0dXJuICJSb3ciOworICAgICAgICByZXR1cm4gIlJvdyJfczsKICAgICBj
YXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpSb3dHcm91cDoKLSAgICAgICAgcmV0dXJuICJSb3dHcm91
cCI7CisgICAgICAgIHJldHVybiAiUm93R3JvdXAiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5
Um9sZTo6UnVieUJhc2U6Ci0gICAgICAgIHJldHVybiAiUnVieUJhc2UiOworICAgICAgICByZXR1
cm4gIlJ1YnlCYXNlIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlJ1YnlCbG9jazoK
LSAgICAgICAgcmV0dXJuICJSdWJ5QmxvY2siOworICAgICAgICByZXR1cm4gIlJ1YnlCbG9jayJf
czsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpSdWJ5SW5saW5lOgotICAgICAgICByZXR1
cm4gIlJ1YnlJbmxpbmUiOworICAgICAgICByZXR1cm4gIlJ1YnlJbmxpbmUiX3M7CiAgICAgY2Fz
ZSBBY2Nlc3NpYmlsaXR5Um9sZTo6UnVieVJ1bjoKLSAgICAgICAgcmV0dXJuICJSdWJ5UnVuIjsK
KyAgICAgICAgcmV0dXJuICJSdWJ5UnVuIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6
OlJ1YnlUZXh0OgotICAgICAgICByZXR1cm4gIlJ1YnlUZXh0IjsKKyAgICAgICAgcmV0dXJuICJS
dWJ5VGV4dCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpSdWxlcjoKLSAgICAgICAg
cmV0dXJuICJSdWxlciI7CisgICAgICAgIHJldHVybiAiUnVsZXIiX3M7CiAgICAgY2FzZSBBY2Nl
c3NpYmlsaXR5Um9sZTo6UnVsZXJNYXJrZXI6Ci0gICAgICAgIHJldHVybiAiUnVsZXJNYXJrZXIi
OworICAgICAgICByZXR1cm4gIlJ1bGVyTWFya2VyIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0
eVJvbGU6OlNjcm9sbEFyZWE6Ci0gICAgICAgIHJldHVybiAiU2Nyb2xsQXJlYSI7CisgICAgICAg
IHJldHVybiAiU2Nyb2xsQXJlYSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpTY3Jv
bGxCYXI6Ci0gICAgICAgIHJldHVybiAiU2Nyb2xsQmFyIjsKKyAgICAgICAgcmV0dXJuICJTY3Jv
bGxCYXIiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6U2VhcmNoRmllbGQ6Ci0gICAg
ICAgIHJldHVybiAiU2VhcmNoRmllbGQiOworICAgICAgICByZXR1cm4gIlNlYXJjaEZpZWxkIl9z
OwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlNoZWV0OgotICAgICAgICByZXR1cm4gIlNo
ZWV0IjsKKyAgICAgICAgcmV0dXJuICJTaGVldCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlS
b2xlOjpTbGlkZXI6Ci0gICAgICAgIHJldHVybiAiU2xpZGVyIjsKKyAgICAgICAgcmV0dXJuICJT
bGlkZXIiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6U2xpZGVyVGh1bWI6Ci0gICAg
ICAgIHJldHVybiAiU2xpZGVyVGh1bWIiOworICAgICAgICByZXR1cm4gIlNsaWRlclRodW1iIl9z
OwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlNwaW5CdXR0b246Ci0gICAgICAgIHJldHVy
biAiU3BpbkJ1dHRvbiI7CisgICAgICAgIHJldHVybiAiU3BpbkJ1dHRvbiJfczsKICAgICBjYXNl
IEFjY2Vzc2liaWxpdHlSb2xlOjpTcGluQnV0dG9uUGFydDoKLSAgICAgICAgcmV0dXJuICJTcGlu
QnV0dG9uUGFydCI7CisgICAgICAgIHJldHVybiAiU3BpbkJ1dHRvblBhcnQiX3M7CiAgICAgY2Fz
ZSBBY2Nlc3NpYmlsaXR5Um9sZTo6U3BsaXRHcm91cDoKLSAgICAgICAgcmV0dXJuICJTcGxpdEdy
b3VwIjsKKyAgICAgICAgcmV0dXJuICJTcGxpdEdyb3VwIl9zOwogICAgIGNhc2UgQWNjZXNzaWJp
bGl0eVJvbGU6OlNwbGl0dGVyOgotICAgICAgICByZXR1cm4gIlNwbGl0dGVyIjsKKyAgICAgICAg
cmV0dXJuICJTcGxpdHRlciJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpTdGF0aWNU
ZXh0OgotICAgICAgICByZXR1cm4gIlN0YXRpY1RleHQiOworICAgICAgICByZXR1cm4gIlN0YXRp
Y1RleHQiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6U3Vic2NyaXB0OgotICAgICAg
ICByZXR1cm4gIlN1YnNjcmlwdCI7CisgICAgICAgIHJldHVybiAiU3Vic2NyaXB0Il9zOwogICAg
IGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlN1bW1hcnk6Ci0gICAgICAgIHJldHVybiAiU3VtbWFy
eSI7CisgICAgICAgIHJldHVybiAiU3VtbWFyeSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlS
b2xlOjpTdXBlcnNjcmlwdDoKLSAgICAgICAgcmV0dXJuICJTdXBlcnNjcmlwdCI7CisgICAgICAg
IHJldHVybiAiU3VwZXJzY3JpcHQiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6U3dp
dGNoOgotICAgICAgICByZXR1cm4gIlN3aXRjaCI7CisgICAgICAgIHJldHVybiAiU3dpdGNoIl9z
OwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlN5c3RlbVdpZGU6Ci0gICAgICAgIHJldHVy
biAiU3lzdGVtV2lkZSI7CisgICAgICAgIHJldHVybiAiU3lzdGVtV2lkZSJfczsKICAgICBjYXNl
IEFjY2Vzc2liaWxpdHlSb2xlOjpTVkdSb290OgotICAgICAgICByZXR1cm4gIlNWR1Jvb3QiOwor
ICAgICAgICByZXR1cm4gIlNWR1Jvb3QiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6
U1ZHVGV4dDoKLSAgICAgICAgcmV0dXJuICJTVkdUZXh0IjsKKyAgICAgICAgcmV0dXJuICJTVkdU
ZXh0Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlNWR1RTcGFuOgotICAgICAgICBy
ZXR1cm4gIlNWR1RTcGFuIjsKKyAgICAgICAgcmV0dXJuICJTVkdUU3BhbiJfczsKICAgICBjYXNl
IEFjY2Vzc2liaWxpdHlSb2xlOjpTVkdUZXh0UGF0aDoKLSAgICAgICAgcmV0dXJuICJTVkdUZXh0
UGF0aCI7CisgICAgICAgIHJldHVybiAiU1ZHVGV4dFBhdGgiX3M7CiAgICAgY2FzZSBBY2Nlc3Np
YmlsaXR5Um9sZTo6VGFiR3JvdXA6Ci0gICAgICAgIHJldHVybiAiVGFiR3JvdXAiOworICAgICAg
ICByZXR1cm4gIlRhYkdyb3VwIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlRhYkxp
c3Q6Ci0gICAgICAgIHJldHVybiAiVGFiTGlzdCI7CisgICAgICAgIHJldHVybiAiVGFiTGlzdCJf
czsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpUYWJQYW5lbDoKLSAgICAgICAgcmV0dXJu
ICJUYWJQYW5lbCI7CisgICAgICAgIHJldHVybiAiVGFiUGFuZWwiX3M7CiAgICAgY2FzZSBBY2Nl
c3NpYmlsaXR5Um9sZTo6VGFiOgotICAgICAgICByZXR1cm4gIlRhYiI7CisgICAgICAgIHJldHVy
biAiVGFiIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlRhYmxlOgotICAgICAgICBy
ZXR1cm4gIlRhYmxlIjsKKyAgICAgICAgcmV0dXJuICJUYWJsZSJfczsKICAgICBjYXNlIEFjY2Vz
c2liaWxpdHlSb2xlOjpUYWJsZUhlYWRlckNvbnRhaW5lcjoKLSAgICAgICAgcmV0dXJuICJUYWJs
ZUhlYWRlckNvbnRhaW5lciI7CisgICAgICAgIHJldHVybiAiVGFibGVIZWFkZXJDb250YWluZXIi
X3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VGVybToKLSAgICAgICAgcmV0dXJuICJU
ZXJtIjsKKyAgICAgICAgcmV0dXJuICJUZXJtIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJv
bGU6OlRleHRBcmVhOgotICAgICAgICByZXR1cm4gIlRleHRBcmVhIjsKKyAgICAgICAgcmV0dXJu
ICJUZXh0QXJlYSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpUZXh0RmllbGQ6Ci0g
ICAgICAgIHJldHVybiAiVGV4dEZpZWxkIjsKKyAgICAgICAgcmV0dXJuICJUZXh0RmllbGQiX3M7
CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VGV4dEdyb3VwOgotICAgICAgICByZXR1cm4g
IlRleHRHcm91cCI7CisgICAgICAgIHJldHVybiAiVGV4dEdyb3VwIl9zOwogICAgIGNhc2UgQWNj
ZXNzaWJpbGl0eVJvbGU6OlRpbWU6Ci0gICAgICAgIHJldHVybiAiVGltZSI7CisgICAgICAgIHJl
dHVybiAiVGltZSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpUcmVlOgotICAgICAg
ICByZXR1cm4gIlRyZWUiOworICAgICAgICByZXR1cm4gIlRyZWUiX3M7CiAgICAgY2FzZSBBY2Nl
c3NpYmlsaXR5Um9sZTo6VHJlZUdyaWQ6Ci0gICAgICAgIHJldHVybiAiVHJlZUdyaWQiOworICAg
ICAgICByZXR1cm4gIlRyZWVHcmlkIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlRy
ZWVJdGVtOgotICAgICAgICByZXR1cm4gIlRyZWVJdGVtIjsKKyAgICAgICAgcmV0dXJuICJUcmVl
SXRlbSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpUb2dnbGVCdXR0b246Ci0gICAg
ICAgIHJldHVybiAiVG9nZ2xlQnV0dG9uIjsKKyAgICAgICAgcmV0dXJuICJUb2dnbGVCdXR0b24i
X3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VG9vbGJhcjoKLSAgICAgICAgcmV0dXJu
ICJUb29sYmFyIjsKKyAgICAgICAgcmV0dXJuICJUb29sYmFyIl9zOwogICAgIGNhc2UgQWNjZXNz
aWJpbGl0eVJvbGU6OlVua25vd246Ci0gICAgICAgIHJldHVybiAiVW5rbm93biI7CisgICAgICAg
IHJldHVybiAiVW5rbm93biJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpVc2VySW50
ZXJmYWNlVG9vbHRpcDoKLSAgICAgICAgcmV0dXJuICJVc2VySW50ZXJmYWNlVG9vbHRpcCI7Cisg
ICAgICAgIHJldHVybiAiVXNlckludGVyZmFjZVRvb2x0aXAiX3M7CiAgICAgY2FzZSBBY2Nlc3Np
YmlsaXR5Um9sZTo6VmFsdWVJbmRpY2F0b3I6Ci0gICAgICAgIHJldHVybiAiVmFsdWVJbmRpY2F0
b3IiOworICAgICAgICByZXR1cm4gIlZhbHVlSW5kaWNhdG9yIl9zOwogICAgIGNhc2UgQWNjZXNz
aWJpbGl0eVJvbGU6OlZpZGVvOgotICAgICAgICByZXR1cm4gIlZpZGVvIjsKKyAgICAgICAgcmV0
dXJuICJWaWRlbyJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpXZWJBcHBsaWNhdGlv
bjoKLSAgICAgICAgcmV0dXJuICJXZWJBcHBsaWNhdGlvbiI7CisgICAgICAgIHJldHVybiAiV2Vi
QXBwbGljYXRpb24iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6V2ViQXJlYToKLSAg
ICAgICAgcmV0dXJuICJXZWJBcmVhIjsKKyAgICAgICAgcmV0dXJuICJXZWJBcmVhIl9zOwogICAg
IGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OldlYkNvcmVMaW5rOgotICAgICAgICByZXR1cm4gIldl
YkNvcmVMaW5rIjsKKyAgICAgICAgcmV0dXJuICJXZWJDb3JlTGluayJfczsKICAgICBjYXNlIEFj
Y2Vzc2liaWxpdHlSb2xlOjpXaW5kb3c6Ci0gICAgICAgIHJldHVybiAiV2luZG93IjsKKyAgICAg
ICAgcmV0dXJuICJXaW5kb3ciX3M7CiAgICAgfQogICAgIFVOUkVBQ0hBQkxFKCk7Ci0gICAgcmV0
dXJuICIiOworICAgIHJldHVybiAiIl9zOwogfQogCiBlbnVtIGNsYXNzIEFjY2Vzc2liaWxpdHlE
ZXRhY2htZW50VHlwZSB7IENhY2hlRGVzdHJveWVkLCBFbGVtZW50RGVzdHJveWVkLCBFbGVtZW50
Q2hhbmdlZCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKaW5kZXggNDQyMjk1NWEzODY1ZGJjNWRkNzIz
NTRjYmJmYmYyMDI3NjcxNWIwNi4uYTZkMzEwMmM4ODJhNjA5OGY0NzkyYjdiY2QwNmJhMjZkNDI4
N2Q4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5UmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0Fj
Y2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCkBAIC0yNzg3LDExICsyNzg3LDExIEBAIGJvb2wg
QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6cmVuZGVyT2JqZWN0SXNPYnNlcnZhYmxlKFJlbmRl
ck9iamVjdCYgcmVuZGVyZXIpCiAgICAgaWYgKCFub2RlKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgCi0gICAgaWYgKG5vZGVIYXNSb2xlKG5vZGUsICJsaXN0Ym94IikgfHwgKGlzPFJlbmRl
ckJveE1vZGVsT2JqZWN0PihyZW5kZXJlcikgJiYgZG93bmNhc3Q8UmVuZGVyQm94TW9kZWxPYmpl
Y3Q+KHJlbmRlcmVyKS5pc0xpc3RCb3goKSkpCisgICAgaWYgKG5vZGVIYXNSb2xlKG5vZGUsICJs
aXN0Ym94Il9zKSB8fCAoaXM8UmVuZGVyQm94TW9kZWxPYmplY3Q+KHJlbmRlcmVyKSAmJiBkb3du
Y2FzdDxSZW5kZXJCb3hNb2RlbE9iamVjdD4ocmVuZGVyZXIpLmlzTGlzdEJveCgpKSkKICAgICAg
ICAgcmV0dXJuIHRydWU7CiAKICAgICAvLyBUZXh0Ym94ZXMgc2hvdWxkIHNlbmQgb3V0IG5vdGlm
aWNhdGlvbnMuCi0gICAgaWYgKG5vZGVIYXNSb2xlKG5vZGUsICJ0ZXh0Ym94IikgfHwgKGlzPEVs
ZW1lbnQ+KCpub2RlKSAmJiBjb250ZW50RWRpdGFibGVBdHRyaWJ1dGVJc0VuYWJsZWQoZG93bmNh
c3Q8RWxlbWVudD4obm9kZSkpKSkKKyAgICBpZiAobm9kZUhhc1JvbGUobm9kZSwgInRleHRib3gi
X3MpIHx8IChpczxFbGVtZW50Pigqbm9kZSkgJiYgY29udGVudEVkaXRhYmxlQXR0cmlidXRlSXNF
bmFibGVkKGRvd25jYXN0PEVsZW1lbnQ+KG5vZGUpKSkpCiAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgIAogICAgIHJldHVybiBmYWxzZTsKQEAgLTI4NDAsNyArMjg0MCw3IEBAIGJvb2wgQWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdDo6c2hvdWxkSWdub3JlQXR0cmlidXRlUm9sZSgpIGNvbnN0CiAK
IEFjY2Vzc2liaWxpdHlSb2xlIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmRldGVybWluZUFj
Y2Vzc2liaWxpdHlSb2xlKCkKIHsKLSAgICBBWFRSQUNFKCJBY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0OjpkZXRlcm1pbmVBY2Nlc3NpYmlsaXR5Um9sZSIpOworICAgIEFYVFJBQ0UoIkFjY2Vzc2li
aWxpdHlSZW5kZXJPYmplY3Q6OmRldGVybWluZUFjY2Vzc2liaWxpdHlSb2xlIl9zKTsKICAgICBp
ZiAoIW1fcmVuZGVyZXIpCiAgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5Um9sZTo6VW5rbm93
bjsKIApAQCAtMzI4MCw3ICszMjgwLDcgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0
OjphZGRMaXN0SXRlbU1hcmtlcigpCiAKIHZvaWQgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6
dXBkYXRlUm9sZUFmdGVyQ2hpbGRyZW5DcmVhdGlvbigpCiB7Ci0gICAgQVhUUkFDRSgiQWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdDo6dXBkYXRlUm9sZUFmdGVyQ2hpbGRyZW5DcmVhdGlvbiIpOwor
ICAgIEFYVFJBQ0UoIkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnVwZGF0ZVJvbGVBZnRlckNo
aWxkcmVuQ3JlYXRpb24iX3MpOwogICAgIC8vIElmIGEgbWVudSBkb2VzIG5vdCBoYXZlIHZhbGlk
IG1lbnVpdGVtIGNoaWxkcmVuLCBpdCBzaG91bGQgbm90IGJlIGV4cG9zZWQgYXMgYSBtZW51Lgog
ICAgIGF1dG8gcm9sZSA9IHJvbGVWYWx1ZSgpOwogICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxp
dHlSb2xlOjpNZW51KSB7CkBAIC0zMzY0LDcgKzMzNjQsNyBAQCBjb25zdCBTdHJpbmcgQWNjZXNz
aWJpbGl0eVJlbmRlck9iamVjdDo6bGl2ZVJlZ2lvblJlbGV2YW50KCkgY29uc3QKIAogICAgIC8v
IERlZmF1bHQgYXJpYS1yZWxldmFudCA9ICJhZGRpdGlvbnMgdGV4dCIuCiAgICAgaWYgKHJlbGV2
YW50LmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuICJhZGRpdGlvbnMgdGV4dCI7CisgICAgICAg
IHJldHVybiAiYWRkaXRpb25zIHRleHQiX3M7CiAgICAgCiAgICAgcmV0dXJuIHJlbGV2YW50Owog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
VGFibGVDZWxsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0
eVRhYmxlQ2VsbC5jcHAKaW5kZXggMjdjZjg2OWY0ZDU3NzFjOTg0YjJiZTNmNDYxMjZiOTg3N2I2
MDAxNS4uMzRhN2JhN2NjZGI0ZTUzYWE1NTQ2MTk4MGYxNTRkMzg4YzJhZjQzZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVDZWxsLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUNl
bGwuY3BwCkBAIC02NSw3ICs2NSw3IEBAIGJvb2wgQWNjZXNzaWJpbGl0eVRhYmxlQ2VsbDo6Y29t
cHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdAogICAgIAogICAgIC8vIElnbm9yZSBh
bm9ueW1vdXMgdGFibGUgY2VsbHMgYXMgbG9uZyBhcyB0aGV5J3JlIG5vdCBpbiBhIHRhYmxlIChp
ZS4gd2hlbiBkaXNwbGF5OnRhYmxlIGlzIHVzZWQpLgogICAgIFJlbmRlck9iamVjdCogcmVuZGVy
VGFibGUgPSBpczxSZW5kZXJUYWJsZUNlbGw+KHJlbmRlcmVyKCkpID8gZG93bmNhc3Q8UmVuZGVy
VGFibGVDZWxsPigqbV9yZW5kZXJlcikudGFibGUoKSA6IG51bGxwdHI7Ci0gICAgYm9vbCBpblRh
YmxlID0gcmVuZGVyVGFibGUgJiYgcmVuZGVyVGFibGUtPm5vZGUoKSAmJiAocmVuZGVyVGFibGUt
Pm5vZGUoKS0+aGFzVGFnTmFtZSh0YWJsZVRhZykgfHwgbm9kZUhhc1JvbGUocmVuZGVyVGFibGUt
Pm5vZGUoKSwgImdyaWQiKSk7CisgICAgYm9vbCBpblRhYmxlID0gcmVuZGVyVGFibGUgJiYgcmVu
ZGVyVGFibGUtPm5vZGUoKSAmJiAocmVuZGVyVGFibGUtPm5vZGUoKS0+aGFzVGFnTmFtZSh0YWJs
ZVRhZykgfHwgbm9kZUhhc1JvbGUocmVuZGVyVGFibGUtPm5vZGUoKSwgImdyaWQiX3MpKTsKICAg
ICBpZiAoIW5vZGUoKSAmJiAhaW5UYWJsZSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAg
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
VHJlZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUcmVl
LmNwcAppbmRleCA1OTBjOTYxNTk2MDYwZGI2ZGIxNTUzODk4ZWIxNmYzMGI0NTRlNjhkLi4xYzAw
YmM5NTQyM2UyOTZhZDUxMjYzNzdlNDgxYzdjZTc5ZGZiZDAzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUcmVlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUcmVlLmNwcApAQCAtNjgsNyArNjgs
NyBAQCBBY2Nlc3NpYmlsaXR5Um9sZSBBY2Nlc3NpYmlsaXR5VHJlZTo6ZGV0ZXJtaW5lQWNjZXNz
aWJpbGl0eVJvbGUoKQogYm9vbCBBY2Nlc3NpYmlsaXR5VHJlZTo6bm9kZUhhc1RyZWVJdGVtQ2hp
bGQoTm9kZSYgbm9kZSkgY29uc3QKIHsKICAgICBmb3IgKGF1dG8qIGNoaWxkID0gbm9kZS5maXJz
dENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpKSB7Ci0gICAgICAg
IGlmIChub2RlSGFzUm9sZShjaGlsZCwgInRyZWVpdGVtIikpCisgICAgICAgIGlmIChub2RlSGFz
Um9sZShjaGlsZCwgInRyZWVpdGVtIl9zKSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAg
IH0KICAgICByZXR1cm4gZmFsc2U7CkBAIC05MiwxNCArOTIsMTQgQEAgYm9vbCBBY2Nlc3NpYmls
aXR5VHJlZTo6aXNUcmVlVmFsaWQoKSBjb25zdAogCiAgICAgICAgIGlmICghaXM8RWxlbWVudD4o
KmNoaWxkKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBpZiAobm9kZUhhc1JvbGUo
Y2hpbGQsICJ0cmVlaXRlbSIpKQorICAgICAgICBpZiAobm9kZUhhc1JvbGUoY2hpbGQsICJ0cmVl
aXRlbSJfcykpCiAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgaWYgKG5vZGVIYXNSb2xl
KGNoaWxkLCAicHJlc2VudGF0aW9uIikpIHsKKyAgICAgICAgaWYgKG5vZGVIYXNSb2xlKGNoaWxk
LCAicHJlc2VudGF0aW9uIl9zKSkgewogICAgICAgICAgICAgaWYgKCFub2RlSGFzVHJlZUl0ZW1D
aGlsZCgqY2hpbGQpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAg
IGNvbnRpbnVlOwogICAgICAgICB9Ci0gICAgICAgIGlmICghbm9kZUhhc1JvbGUoY2hpbGQsICJn
cm91cCIpKQorICAgICAgICBpZiAoIW5vZGVIYXNSb2xlKGNoaWxkLCAiZ3JvdXAiX3MpKQogICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgICAgIGZvciAoYXV0byogZ3JvdXBDaGlsZCA9
IGNoaWxkLT5maXJzdENoaWxkKCk7IGdyb3VwQ2hpbGQ7IGdyb3VwQ2hpbGQgPSBncm91cENoaWxk
LT5uZXh0U2libGluZygpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcAppbmRleCBhMTM0YWU3
NTJmYTIwMTJlNzgwZDk5ZmExMDhjM2Y0ODc5NmMxMTFjLi41ZjAyMDFmMDdiNTM1MDViNzBkZGUz
MzlhMmNiMjk2NTdjZjc4NDVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcApAQCAtMzA1
LDcgKzMwNSw3IEBAIHZvaWQgQVhJc29sYXRlZE9iamVjdDo6aW5pdGlhbGl6ZUF0dHJpYnV0ZURh
dGEoQVhDb3JlT2JqZWN0JiBjb3JlT2JqZWN0LCBib29sIGlzCiAgICAgICAgIHNldFByb3BlcnR5
KEFYUHJvcGVydHlOYW1lOjpUZXh0TGVuZ3RoLCBvYmplY3QudGV4dExlbmd0aCgpKTsKIAogICAg
IGlmIChvYmplY3QuaXNSYWRpb0J1dHRvbigpKSB7Ci0gICAgICAgIGlmIChhdXRvIG5hbWVBdHRy
aWJ1dGUgPSBvYmplY3QuYXR0cmlidXRlVmFsdWUoIm5hbWUiKSkKKyAgICAgICAgaWYgKGF1dG8g
bmFtZUF0dHJpYnV0ZSA9IG9iamVjdC5hdHRyaWJ1dGVWYWx1ZSgibmFtZSJfcykpCiAgICAgICAg
ICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6TmFtZUF0dHJpYnV0ZSwgbmFtZUF0dHJp
YnV0ZS0+aXNvbGF0ZWRDb3B5KCkpOwogICAgIH0KIApAQCAtMzYyLDcgKzM2Miw3IEBAIHZvaWQg
QVhJc29sYXRlZE9iamVjdDo6aW5pdGlhbGl6ZUF0dHJpYnV0ZURhdGEoQVhDb3JlT2JqZWN0JiBj
b3JlT2JqZWN0LCBib29sIGlzCiAgICAgU3RyaW5nIGNvbWJpbmVkQ2xhc3NMaXN0OwogICAgIGZv
ciAoYXV0byBpdCA9IGNsYXNzTGlzdC5iZWdpbigpLCBlbmQgPSBjbGFzc0xpc3QuZW5kKCk7IGl0
ICE9IGVuZDsgKytpdCkgewogICAgICAgICBjb21iaW5lZENsYXNzTGlzdC5hcHBlbmQoKml0KTsK
LSAgICAgICAgY29tYmluZWRDbGFzc0xpc3QuYXBwZW5kKCIgIik7CisgICAgICAgIGNvbWJpbmVk
Q2xhc3NMaXN0LmFwcGVuZCgiICJfcyk7CiAgICAgfQogICAgIHNldFByb3BlcnR5KEFYUHJvcGVy
dHlOYW1lOjpDbGFzc0xpc3QsIGNvbWJpbmVkQ2xhc3NMaXN0KTsKIApAQCAtNjAwLDcgKzYwMCw3
IEBAIHZvaWQgQVhJc29sYXRlZE9iamVjdDo6YWNjZXNzaWJpbGl0eVRleHQoVmVjdG9yPEFjY2Vz
c2liaWxpdHlUZXh0PiYgdGV4dHMpIGNvbnN0CiB2b2lkIEFYSXNvbGF0ZWRPYmplY3Q6OmNsYXNz
TGlzdChWZWN0b3I8U3RyaW5nPiYgbGlzdCkgY29uc3QKIHsKICAgICBTdHJpbmcgY2xhc3NMaXN0
ID0gc3RyaW5nQXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6OkNsYXNzTGlzdCk7Ci0gICAg
bGlzdC5hcHBlbmRWZWN0b3IoY2xhc3NMaXN0LnNwbGl0KCIgIikpOworICAgIGxpc3QuYXBwZW5k
VmVjdG9yKGNsYXNzTGlzdC5zcGxpdCgiICJfcykpOwogfQogCiBQQUw6OlNlc3Npb25JRCBBWElz
b2xhdGVkT2JqZWN0OjpzZXNzaW9uSUQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuY3BwIGIvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuY3BwCmlu
ZGV4IDY3ZjViMWRlZmQ5YzQ3OGVkZWJiMDc5M2M2NTBlMzhjZjM5YTNjNGIuLjFjZTc4NTAyZDJl
Yzc3MjI3Y2JmM2RiMjc1MGMwN2FiY2U4MzljZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5jcHAK
QEAgLTYyLDE4ICs2MiwxOCBAQCBBWElzb2xhdGVkVHJlZTo6QVhJc29sYXRlZFRyZWUoQVhPYmpl
Y3RDYWNoZSogYXhPYmplY3RDYWNoZSkKICAgICAsIG1fYXhPYmplY3RDYWNoZShheE9iamVjdENh
Y2hlKQogICAgICwgbV91c2VkT25BWFRocmVhZChheE9iamVjdENhY2hlLT51c2VkT25BWFRocmVh
ZCgpKQogewotICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjpBWElzb2xhdGVkVHJlZSIpOwor
ICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjpBWElzb2xhdGVkVHJlZSJfcyk7CiAgICAgQVNT
RVJUKGlzTWFpblRocmVhZCgpKTsKIH0KIAogQVhJc29sYXRlZFRyZWU6On5BWElzb2xhdGVkVHJl
ZSgpCiB7Ci0gICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6On5BWElzb2xhdGVkVHJlZSIpOwor
ICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjp+QVhJc29sYXRlZFRyZWUiX3MpOwogfQogCiB2
b2lkIEFYSXNvbGF0ZWRUcmVlOjpjbGVhcigpCiB7Ci0gICAgQVhUUkFDRSgiQVhJc29sYXRlZFRy
ZWU6OmNsZWFyIik7CisgICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OmNsZWFyIl9zKTsKICAg
ICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIG1fYXhPYmplY3RDYWNoZSA9IG51bGxwdHI7
CiAgICAgbV9ub2RlTWFwLmNsZWFyKCk7CkBAIC04NSwxNCArODUsMTQgQEAgdm9pZCBBWElzb2xh
dGVkVHJlZTo6Y2xlYXIoKQogCiBSZWZQdHI8QVhJc29sYXRlZFRyZWU+IEFYSXNvbGF0ZWRUcmVl
Ojp0cmVlRm9ySUQoQVhJc29sYXRlZFRyZWVJRCB0cmVlSUQpCiB7Ci0gICAgQVhUUkFDRSgiQVhJ
c29sYXRlZFRyZWU6OnRyZWVGb3JJRCIpOworICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjp0
cmVlRm9ySUQiX3MpOwogICAgIExvY2tlciBsb2NrZXIgeyBzX2NhY2hlTG9jayB9OwogICAgIHJl
dHVybiB0cmVlSURDYWNoZSgpLmdldCh0cmVlSUQpOwogfQogCiBSZWY8QVhJc29sYXRlZFRyZWU+
IEFYSXNvbGF0ZWRUcmVlOjpjcmVhdGUoQVhPYmplY3RDYWNoZSogYXhPYmplY3RDYWNoZSkKIHsK
LSAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6Y3JlYXRlIik7CisgICAgQVhUUkFDRSgiQVhJ
c29sYXRlZFRyZWU6OmNyZWF0ZSJfcyk7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAg
ICBBU1NFUlQoYXhPYmplY3RDYWNoZSAmJiBheE9iamVjdENhY2hlLT5wYWdlSUQoKSk7CiAKQEAg
LTEyNSw3ICsxMjUsNyBAQCBSZWY8QVhJc29sYXRlZFRyZWU+IEFYSXNvbGF0ZWRUcmVlOjpjcmVh
dGUoQVhPYmplY3RDYWNoZSogYXhPYmplY3RDYWNoZSkKIAogdm9pZCBBWElzb2xhdGVkVHJlZTo6
cmVtb3ZlVHJlZUZvclBhZ2VJRChQYWdlSWRlbnRpZmllciBwYWdlSUQpCiB7Ci0gICAgQVhUUkFD
RSgiQVhJc29sYXRlZFRyZWU6OnJlbW92ZVRyZWVGb3JQYWdlSUQiKTsKKyAgICBBWFRSQUNFKCJB
WElzb2xhdGVkVHJlZTo6cmVtb3ZlVHJlZUZvclBhZ2VJRCJfcyk7CiAgICAgQVNTRVJUKGlzTWFp
blRocmVhZCgpKTsKICAgICBMb2NrZXIgbG9ja2VyIHsgc19jYWNoZUxvY2sgfTsKIApAQCAtMTU3
LDcgKzE1Nyw3IEBAIFJlZlB0cjxBWElzb2xhdGVkT2JqZWN0PiBBWElzb2xhdGVkVHJlZTo6bm9k
ZUZvcklEKEFYSUQgYXhJRCkgY29uc3QKIAogVmVjdG9yPFJlZlB0cjxBWENvcmVPYmplY3Q+PiBB
WElzb2xhdGVkVHJlZTo6b2JqZWN0c0ZvcklEcyhjb25zdCBWZWN0b3I8QVhJRD4mIGF4SURzKSBj
b25zdAogewotICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjpvYmplY3RzRm9ySURzIik7Cisg
ICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6Om9iamVjdHNGb3JJRHMiX3MpOwogICAgIFZlY3Rv
cjxSZWZQdHI8QVhDb3JlT2JqZWN0Pj4gcmVzdWx0OwogICAgIHJlc3VsdC5yZXNlcnZlSW5pdGlh
bENhcGFjaXR5KGF4SURzLnNpemUoKSk7CiAgICAgZm9yIChhdXRvJiBheElEIDogYXhJRHMpIHsK
QEAgLTE3OCw3ICsxNzgsNyBAQCBWZWN0b3I8QVhJRD4gQVhJc29sYXRlZFRyZWU6Omlkc0Zvck9i
amVjdHMoY29uc3QgVmVjdG9yPFJlZlB0cjxBWENvcmVPYmplY3Q+PiYgbwogCiB2b2lkIEFYSXNv
bGF0ZWRUcmVlOjpnZW5lcmF0ZVN1YnRyZWUoQVhDb3JlT2JqZWN0JiBheE9iamVjdCwgQVhDb3Jl
T2JqZWN0KiBheFBhcmVudCwgYm9vbCBhdHRhY2hXcmFwcGVyKQogewotICAgIEFYVFJBQ0UoIkFY
SXNvbGF0ZWRUcmVlOjpnZW5lcmF0ZVN1YnRyZWUiKTsKKyAgICBBWFRSQUNFKCJBWElzb2xhdGVk
VHJlZTo6Z2VuZXJhdGVTdWJ0cmVlIl9zKTsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwog
CiAgICAgaWYgKCFheE9iamVjdC5vYmplY3RJRCgpLmlzVmFsaWQoKSkKQEAgLTI3Nyw3ICsyNzcs
NyBAQCB2b2lkIEFYSXNvbGF0ZWRUcmVlOjpxdWV1ZUNoYW5nZXNBbmRSZW1vdmFscyhjb25zdCBW
ZWN0b3I8Tm9kZUNoYW5nZT4mIGNoYW5nZXMsCiAKIHZvaWQgQVhJc29sYXRlZFRyZWU6OmNvbGxl
Y3ROb2RlQ2hhbmdlc0ZvclN1YnRyZWUoQVhDb3JlT2JqZWN0JiBheE9iamVjdCwgQVhJRCBwYXJl
bnRJRCwgYm9vbCBhdHRhY2hXcmFwcGVyLCBWZWN0b3I8Tm9kZUNoYW5nZT4mIGNoYW5nZXMsIEhh
c2hTZXQ8QVhJRD4qIGlkc0JlaW5nQ2hhbmdlZCkKIHsKLSAgICBBWFRSQUNFKCJBWElzb2xhdGVk
VHJlZTo6Y29sbGVjdE5vZGVDaGFuZ2VzRm9yU3VidHJlZSIpOworICAgIEFYVFJBQ0UoIkFYSXNv
bGF0ZWRUcmVlOjpjb2xsZWN0Tm9kZUNoYW5nZXNGb3JTdWJ0cmVlIl9zKTsKICAgICBBU1NFUlQo
aXNNYWluVGhyZWFkKCkpOwogCiAgICAgYXV0byBub2RlQ2hhbmdlID0gbm9kZUNoYW5nZUZvck9i
amVjdChheE9iamVjdCwgcGFyZW50SUQsIGF0dGFjaFdyYXBwZXIpOwpAQCAtMjk1LDcgKzI5NSw3
IEBAIHZvaWQgQVhJc29sYXRlZFRyZWU6OmNvbGxlY3ROb2RlQ2hhbmdlc0ZvclN1YnRyZWUoQVhD
b3JlT2JqZWN0JiBheE9iamVjdCwgQVhJRCBwCiAKIHZvaWQgQVhJc29sYXRlZFRyZWU6OnVwZGF0
ZU5vZGUoQVhDb3JlT2JqZWN0JiBheE9iamVjdCkKIHsKLSAgICBBWFRSQUNFKCJBWElzb2xhdGVk
VHJlZTo6dXBkYXRlTm9kZSIpOworICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVO
b2RlIl9zKTsKICAgICBBWExPRygmYXhPYmplY3QpOwogICAgIEFTU0VSVChpc01haW5UaHJlYWQo
KSk7CiAKQEAgLTMxMyw3ICszMTMsNyBAQCB2b2lkIEFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVOb2Rl
KEFYQ29yZU9iamVjdCYgYXhPYmplY3QpCiAKIHZvaWQgQVhJc29sYXRlZFRyZWU6OnVwZGF0ZU5v
ZGVQcm9wZXJ0eShjb25zdCBBWENvcmVPYmplY3QmIGF4T2JqZWN0LCBBWFByb3BlcnR5TmFtZSBw
cm9wZXJ0eSkKIHsKLSAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6dXBkYXRlTm9kZVByb3Bl
cnR5Iik7CisgICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OnVwZGF0ZU5vZGVQcm9wZXJ0eSJf
cyk7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIAogICAgIEFYUHJvcGVydHlNYXAgcHJv
cGVydHlNYXA7CkBAIC0zNDgsNyArMzQ4LDcgQEAgdm9pZCBBWElzb2xhdGVkVHJlZTo6dXBkYXRl
Tm9kZVByb3BlcnR5KGNvbnN0IEFYQ29yZU9iamVjdCYgYXhPYmplY3QsIEFYUHJvcGVydHkKIAog
dm9pZCBBWElzb2xhdGVkVHJlZTo6dXBkYXRlQ2hpbGRyZW4oQVhDb3JlT2JqZWN0JiBheE9iamVj
dCkKIHsKLSAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6dXBkYXRlQ2hpbGRyZW4iKTsKKyAg
ICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6dXBkYXRlQ2hpbGRyZW4iX3MpOwogICAgIEFYTE9H
KCJGb3IgQVhPYmplY3Q6Iik7CiAgICAgQVhMT0coJmF4T2JqZWN0KTsKICAgICBBU1NFUlQoaXNN
YWluVGhyZWFkKCkpOwpAQCAtNDIyLDcgKzQyMiw3IEBAIHZvaWQgQVhJc29sYXRlZFRyZWU6OnVw
ZGF0ZUNoaWxkcmVuKEFYQ29yZU9iamVjdCYgYXhPYmplY3QpCiAKIFJlZlB0cjxBWElzb2xhdGVk
T2JqZWN0PiBBWElzb2xhdGVkVHJlZTo6Zm9jdXNlZE5vZGUoKQogewotICAgIEFYVFJBQ0UoIkFY
SXNvbGF0ZWRUcmVlOjpmb2N1c2VkTm9kZSIpOworICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVl
Ojpmb2N1c2VkTm9kZSJfcyk7CiAgICAgUkVMRUFTRV9BU1NFUlQoIWlzTWFpblRocmVhZCgpKTsK
ICAgICAvLyBBcHBseSBwZW5kaW5nIGNoYW5nZXMgaW4gY2FzZSBmb2N1cyBoYXMgY2hhbmdlZCBh
bmQgaGFzbid0IGJlZW4gdXBkYXRlZC4KICAgICBhcHBseVBlbmRpbmdDaGFuZ2VzKCk7CkBAIC00
MzQsMTQgKzQzNCwxNCBAQCBSZWZQdHI8QVhJc29sYXRlZE9iamVjdD4gQVhJc29sYXRlZFRyZWU6
OmZvY3VzZWROb2RlKCkKIAogUmVmUHRyPEFYSXNvbGF0ZWRPYmplY3Q+IEFYSXNvbGF0ZWRUcmVl
Ojpyb290Tm9kZSgpCiB7Ci0gICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OnJvb3ROb2RlIik7
CisgICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OnJvb3ROb2RlIl9zKTsKICAgICBMb2NrZXIg
bG9ja2VyIHsgbV9jaGFuZ2VMb2dMb2NrIH07CiAgICAgcmV0dXJuIG1fcm9vdE5vZGU7CiB9CiAK
IHZvaWQgQVhJc29sYXRlZFRyZWU6OnNldFJvb3ROb2RlKEFYSXNvbGF0ZWRPYmplY3QqIHJvb3Qp
CiB7Ci0gICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OnNldFJvb3ROb2RlIik7CisgICAgQVhU
UkFDRSgiQVhJc29sYXRlZFRyZWU6OnNldFJvb3ROb2RlIl9zKTsKICAgICBBU1NFUlQoaXNNYWlu
VGhyZWFkKCkpOwogICAgIEFTU0VSVChtX2NoYW5nZUxvZ0xvY2suaXNMb2NrZWQoKSk7CiAgICAg
QVNTRVJUKCFtX3Jvb3ROb2RlKTsKQEAgLTQ1Miw3ICs0NTIsNyBAQCB2b2lkIEFYSXNvbGF0ZWRU
cmVlOjpzZXRSb290Tm9kZShBWElzb2xhdGVkT2JqZWN0KiByb290KQogCiB2b2lkIEFYSXNvbGF0
ZWRUcmVlOjpzZXRGb2N1c2VkTm9kZUlEKEFYSUQgYXhJRCkKIHsKLSAgICBBWFRSQUNFKCJBWElz
b2xhdGVkVHJlZTo6c2V0Rm9jdXNlZE5vZGVJRCIpOworICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRU
cmVlOjpzZXRGb2N1c2VkTm9kZUlEIl9zKTsKICAgICBBWExPRyhtYWtlU3RyaW5nKCJheElEICIs
IGF4SUQubG9nZ2luZ1N0cmluZygpKSk7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIApA
QCAtNDY2LDcgKzQ2Niw3IEBAIHZvaWQgQVhJc29sYXRlZFRyZWU6OnNldEZvY3VzZWROb2RlSUQo
QVhJRCBheElEKQogCiB2b2lkIEFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVMb2FkaW5nUHJvZ3Jlc3Mo
ZG91YmxlIG5ld1Byb2dyZXNzVmFsdWUpCiB7Ci0gICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6
OnVwZGF0ZUxvYWRpbmdQcm9ncmVzcyIpOworICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjp1
cGRhdGVMb2FkaW5nUHJvZ3Jlc3MiX3MpOwogICAgIEFYTE9HKG1ha2VTdHJpbmcoIlVwZGF0aW5n
IGxvYWRpbmcgcHJvZ3Jlc3MgdG8gIiwgbmV3UHJvZ3Jlc3NWYWx1ZSwgIiBmb3IgdHJlZUlEICIs
IHRyZWVJRCgpKSk7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIApAQCAtNDc1LDcgKzQ3
NSw3IEBAIHZvaWQgQVhJc29sYXRlZFRyZWU6OnVwZGF0ZUxvYWRpbmdQcm9ncmVzcyhkb3VibGUg
bmV3UHJvZ3Jlc3NWYWx1ZSkKIAogdm9pZCBBWElzb2xhdGVkVHJlZTo6cmVtb3ZlTm9kZShjb25z
dCBBWENvcmVPYmplY3QmIGF4T2JqZWN0KQogewotICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVl
OjpyZW1vdmVOb2RlIik7CisgICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OnJlbW92ZU5vZGUi
X3MpOwogICAgIEFYTE9HKG1ha2VTdHJpbmcoIm9iamVjdElEICIsIGF4T2JqZWN0Lm9iamVjdElE
KCkubG9nZ2luZ1N0cmluZygpKSk7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIApAQCAt
NDg1LDcgKzQ4NSw3IEBAIHZvaWQgQVhJc29sYXRlZFRyZWU6OnJlbW92ZU5vZGUoY29uc3QgQVhD
b3JlT2JqZWN0JiBheE9iamVjdCkKIAogdm9pZCBBWElzb2xhdGVkVHJlZTo6cmVtb3ZlU3VidHJl
ZUZyb21Ob2RlTWFwKEFYSUQgb2JqZWN0SUQsIEFYQ29yZU9iamVjdCogYXhQYXJlbnQsIGNvbnN0
IEhhc2hTZXQ8QVhJRD4mIGlkc1RvS2VlcCkKIHsKLSAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJl
ZTo6cmVtb3ZlU3VidHJlZUZyb21Ob2RlTWFwIik7CisgICAgQVhUUkFDRSgiQVhJc29sYXRlZFRy
ZWU6OnJlbW92ZVN1YnRyZWVGcm9tTm9kZU1hcCJfcyk7CiAgICAgQVhMT0cobWFrZVN0cmluZygi
UmVtb3Zpbmcgc3VidHJlZSBmb3Igb2JqZWN0SUQgIiwgb2JqZWN0SUQubG9nZ2luZ1N0cmluZygp
KSk7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIApAQCAtNTIzLDcgKzUyMyw3IEBAIHZv
aWQgQVhJc29sYXRlZFRyZWU6OnJlbW92ZVN1YnRyZWVGcm9tTm9kZU1hcChBWElEIG9iamVjdElE
LCBBWENvcmVPYmplY3QqIGF4UGFyCiAKIHZvaWQgQVhJc29sYXRlZFRyZWU6OmFwcGx5UGVuZGlu
Z0NoYW5nZXMoKQogewotICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjphcHBseVBlbmRpbmdD
aGFuZ2VzIik7CisgICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OmFwcGx5UGVuZGluZ0NoYW5n
ZXMiX3MpOwogCiAgICAgLy8gSW4gaXNvbGF0ZWQgdHJlZSBtb2RlIDIsIG9ubHkgYXBwbHkgcGVu
ZGluZyBjaGFuZ2VzIG9uIHRoZSBBWCB0aHJlYWQuCiAgICAgQVNTRVJUKG1fdXNlZE9uQVhUaHJl
YWQgPyAhaXNNYWluVGhyZWFkKCkgOiBpc01haW5UaHJlYWQoKSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0TWFjLm1tIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQWNjZXNzaWJpbGl0eU9iamVjdE1hYy5t
bQppbmRleCBhMjg5NTM4NzRjODA1NTEyN2Y4MGIyZmMzNjJkOWNlODIxZTcwMWM0Li5mYzZlNDA4
Y2ZjN2E5MjUzYTFlODk1MDdlMDA1NDk0MDM4YzlmYjNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0TWFjLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FjY2Vzc2liaWxpdHlPYmplY3RNYWMubW0K
QEAgLTIyMiwyMCArMjIyLDIwIEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzdWJyb2xl
UGxhdGZvcm1TdHJpbmcoKSBjb25zdAogICAgIH0KIAogICAgIGlmIChpc01ldGVyKCkpCi0gICAg
ICAgIHJldHVybiAiQVhNZXRlciI7CisgICAgICAgIHJldHVybiAiQVhNZXRlciJfczsKIAogI2lm
IEVOQUJMRShNT0RFTF9FTEVNRU5UKQogICAgIGlmIChpc01vZGVsKCkpCi0gICAgICAgIHJldHVy
biAiQVhNb2RlbCI7CisgICAgICAgIHJldHVybiAiQVhNb2RlbCJfczsKICNlbmRpZgogCiAgICAg
QWNjZXNzaWJpbGl0eVJvbGUgcm9sZSA9IHJvbGVWYWx1ZSgpOwogICAgIGlmIChyb2xlID09IEFj
Y2Vzc2liaWxpdHlSb2xlOjpIb3Jpem9udGFsUnVsZSkKLSAgICAgICAgcmV0dXJuICJBWENvbnRl
bnRTZXBhcmF0b3IiOworICAgICAgICByZXR1cm4gIkFYQ29udGVudFNlcGFyYXRvciJfczsKICAg
ICBpZiAocm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6VG9nZ2xlQnV0dG9uKQogICAgICAgICBy
ZXR1cm4gTlNBY2Nlc3NpYmlsaXR5VG9nZ2xlU3Vicm9sZTsKICAgICBpZiAocm9sZSA9PSBBY2Nl
c3NpYmlsaXR5Um9sZTo6Rm9vdGVyKQotICAgICAgICByZXR1cm4gIkFYRm9vdGVyIjsKKyAgICAg
ICAgcmV0dXJuICJBWEZvb3RlciJfczsKICAgICBpZiAocm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9s
ZTo6U3BpbkJ1dHRvblBhcnQpIHsKICAgICAgICAgaWYgKGlzSW5jcmVtZW50b3IoKSkKICAgICAg
ICAgICAgIHJldHVybiBOU0FjY2Vzc2liaWxpdHlJbmNyZW1lbnRBcnJvd1N1YnJvbGU7CkBAIC0y
NDMsNzkgKzI0Myw3OSBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0eU9iamVjdDo6c3Vicm9sZVBsYXRm
b3JtU3RyaW5nKCkgY29uc3QKICAgICB9CiAKICAgICBpZiAoaXNGaWxlVXBsb2FkQnV0dG9uKCkp
Ci0gICAgICAgIHJldHVybiAiQVhGaWxlVXBsb2FkQnV0dG9uIjsKKyAgICAgICAgcmV0dXJuICJB
WEZpbGVVcGxvYWRCdXR0b24iX3M7CiAKICAgICBpZiAoaXNUcmVlSXRlbSgpKQogICAgICAgICBy
ZXR1cm4gTlNBY2Nlc3NpYmlsaXR5T3V0bGluZVJvd1N1YnJvbGU7CiAKICAgICBpZiAoaXNGaWVs
ZHNldCgpKQotICAgICAgICByZXR1cm4gIkFYRmllbGRzZXQiOworICAgICAgICByZXR1cm4gIkFY
RmllbGRzZXQiX3M7CiAKICAgICBpZiAoaXNMaXN0KCkpIHsKICAgICAgICAgaWYgKGlzVW5vcmRl
cmVkTGlzdCgpIHx8IGlzT3JkZXJlZExpc3QoKSkKLSAgICAgICAgICAgIHJldHVybiAiQVhDb250
ZW50TGlzdCI7CisgICAgICAgICAgICByZXR1cm4gIkFYQ29udGVudExpc3QiX3M7CiAgICAgICAg
IGlmIChpc0Rlc2NyaXB0aW9uTGlzdCgpKQotICAgICAgICAgICAgcmV0dXJuICJBWERlc2NyaXB0
aW9uTGlzdCI7CisgICAgICAgICAgICByZXR1cm4gIkFYRGVzY3JpcHRpb25MaXN0Il9zOwogICAg
IH0KIAogICAgIC8vIEFSSUEgY29udGVudCBzdWJyb2xlcy4KICAgICBzd2l0Y2ggKHJvbGUpIHsK
ICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpMYW5kbWFya0Jhbm5lcjoKLSAgICAgICAgcmV0
dXJuICJBWExhbmRtYXJrQmFubmVyIjsKKyAgICAgICAgcmV0dXJuICJBWExhbmRtYXJrQmFubmVy
Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJrQ29tcGxlbWVudGFyeToK
LSAgICAgICAgcmV0dXJuICJBWExhbmRtYXJrQ29tcGxlbWVudGFyeSI7CisgICAgICAgIHJldHVy
biAiQVhMYW5kbWFya0NvbXBsZW1lbnRhcnkiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9s
ZTo6TGFuZG1hcmtDb250ZW50SW5mbzoKLSAgICAgICAgcmV0dXJuICJBWExhbmRtYXJrQ29udGVu
dEluZm8iOworICAgICAgICByZXR1cm4gIkFYTGFuZG1hcmtDb250ZW50SW5mbyJfczsKICAgICBj
YXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpMYW5kbWFya01haW46Ci0gICAgICAgIHJldHVybiAiQVhM
YW5kbWFya01haW4iOworICAgICAgICByZXR1cm4gIkFYTGFuZG1hcmtNYWluIl9zOwogICAgIGNh
c2UgQWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJrTmF2aWdhdGlvbjoKLSAgICAgICAgcmV0dXJu
ICJBWExhbmRtYXJrTmF2aWdhdGlvbiI7CisgICAgICAgIHJldHVybiAiQVhMYW5kbWFya05hdmln
YXRpb24iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtEb2NSZWdpb246
CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtSZWdpb246Ci0gICAgICAgIHJl
dHVybiAiQVhMYW5kbWFya1JlZ2lvbiI7CisgICAgICAgIHJldHVybiAiQVhMYW5kbWFya1JlZ2lv
biJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpMYW5kbWFya1NlYXJjaDoKLSAgICAg
ICAgcmV0dXJuICJBWExhbmRtYXJrU2VhcmNoIjsKKyAgICAgICAgcmV0dXJuICJBWExhbmRtYXJr
U2VhcmNoIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uQWxlcnQ6
Ci0gICAgICAgIHJldHVybiAiQVhBcHBsaWNhdGlvbkFsZXJ0IjsKKyAgICAgICAgcmV0dXJuICJB
WEFwcGxpY2F0aW9uQWxlcnQiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGlj
YXRpb25BbGVydERpYWxvZzoKLSAgICAgICAgcmV0dXJuICJBWEFwcGxpY2F0aW9uQWxlcnREaWFs
b2ciOworICAgICAgICByZXR1cm4gIkFYQXBwbGljYXRpb25BbGVydERpYWxvZyJfczsKICAgICBj
YXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvbkRpYWxvZzoKLSAgICAgICAgcmV0dXJu
ICJBWEFwcGxpY2F0aW9uRGlhbG9nIjsKKyAgICAgICAgcmV0dXJuICJBWEFwcGxpY2F0aW9uRGlh
bG9nIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uR3JvdXA6CiAg
ICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb25UZXh0R3JvdXA6CiAgICAgY2Fz
ZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RmVlZDoKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpG
b290bm90ZToKLSAgICAgICAgcmV0dXJuICJBWEFwcGxpY2F0aW9uR3JvdXAiOworICAgICAgICBy
ZXR1cm4gIkFYQXBwbGljYXRpb25Hcm91cCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xl
OjpBcHBsaWNhdGlvbkxvZzoKLSAgICAgICAgcmV0dXJuICJBWEFwcGxpY2F0aW9uTG9nIjsKKyAg
ICAgICAgcmV0dXJuICJBWEFwcGxpY2F0aW9uTG9nIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0
eVJvbGU6OkFwcGxpY2F0aW9uTWFycXVlZToKLSAgICAgICAgcmV0dXJuICJBWEFwcGxpY2F0aW9u
TWFycXVlZSI7CisgICAgICAgIHJldHVybiAiQVhBcHBsaWNhdGlvbk1hcnF1ZWUiX3M7CiAgICAg
Y2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb25TdGF0dXM6Ci0gICAgICAgIHJldHVy
biAiQVhBcHBsaWNhdGlvblN0YXR1cyI7CisgICAgICAgIHJldHVybiAiQVhBcHBsaWNhdGlvblN0
YXR1cyJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvblRpbWVyOgot
ICAgICAgICByZXR1cm4gIkFYQXBwbGljYXRpb25UaW1lciI7CisgICAgICAgIHJldHVybiAiQVhB
cHBsaWNhdGlvblRpbWVyIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRvY3VtZW50
OgogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkdyYXBoaWNzRG9jdW1lbnQ6Ci0gICAgICAg
IHJldHVybiAiQVhEb2N1bWVudCI7CisgICAgICAgIHJldHVybiAiQVhEb2N1bWVudCJfczsKICAg
ICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpEb2N1bWVudEFydGljbGU6Ci0gICAgICAgIHJldHVy
biAiQVhEb2N1bWVudEFydGljbGUiOworICAgICAgICByZXR1cm4gIkFYRG9jdW1lbnRBcnRpY2xl
Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRvY3VtZW50TWF0aDoKLSAgICAgICAg
cmV0dXJuICJBWERvY3VtZW50TWF0aCI7CisgICAgICAgIHJldHVybiAiQVhEb2N1bWVudE1hdGgi
X3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RG9jdW1lbnROb3RlOgotICAgICAgICBy
ZXR1cm4gIkFYRG9jdW1lbnROb3RlIjsKKyAgICAgICAgcmV0dXJuICJBWERvY3VtZW50Tm90ZSJf
czsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpVc2VySW50ZXJmYWNlVG9vbHRpcDoKLSAg
ICAgICAgcmV0dXJuICJBWFVzZXJJbnRlcmZhY2VUb29sdGlwIjsKKyAgICAgICAgcmV0dXJuICJB
WFVzZXJJbnRlcmZhY2VUb29sdGlwIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlRh
YlBhbmVsOgotICAgICAgICByZXR1cm4gIkFYVGFiUGFuZWwiOworICAgICAgICByZXR1cm4gIkFY
VGFiUGFuZWwiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RGVmaW5pdGlvbjoKLSAg
ICAgICAgcmV0dXJuICJBWERlZmluaXRpb24iOworICAgICAgICByZXR1cm4gIkFYRGVmaW5pdGlv
biJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpEZXNjcmlwdGlvbkxpc3RUZXJtOgog
ICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlRlcm06Ci0gICAgICAgIHJldHVybiAiQVhUZXJt
IjsKKyAgICAgICAgcmV0dXJuICJBWFRlcm0iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9s
ZTo6RGVzY3JpcHRpb25MaXN0RGV0YWlsOgotICAgICAgICByZXR1cm4gIkFYRGVzY3JpcHRpb24i
OworICAgICAgICByZXR1cm4gIkFYRGVzY3JpcHRpb24iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmls
aXR5Um9sZTo6V2ViQXBwbGljYXRpb246Ci0gICAgICAgIHJldHVybiAiQVhXZWJBcHBsaWNhdGlv
biI7CisgICAgICAgIHJldHVybiAiQVhXZWJBcHBsaWNhdGlvbiJfczsKICAgICAgICAgLy8gRGVm
YXVsdCBkb2Vzbid0IHJldHVybiBhbnl0aGluZywgc28gcm9sZXMgZGVmaW5lZCBiZWxvdyBjYW4g
YmUgY2hvc2VuLgogICAgIGRlZmF1bHQ6CiAgICAgICAgIGJyZWFrOwpAQCAtMzIzLDUxICszMjMs
NTEgQEAgU3RyaW5nIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnN1YnJvbGVQbGF0Zm9ybVN0cmluZygp
IGNvbnN0CiAKICAgICBpZiAocm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6TWF0aEVsZW1lbnQp
IHsKICAgICAgICAgaWYgKGlzTWF0aEZyYWN0aW9uKCkpCi0gICAgICAgICAgICByZXR1cm4gIkFY
TWF0aEZyYWN0aW9uIjsKKyAgICAgICAgICAgIHJldHVybiAiQVhNYXRoRnJhY3Rpb24iX3M7CiAg
ICAgICAgIGlmIChpc01hdGhGZW5jZWQoKSkKLSAgICAgICAgICAgIHJldHVybiAiQVhNYXRoRmVu
Y2VkIjsKKyAgICAgICAgICAgIHJldHVybiAiQVhNYXRoRmVuY2VkIl9zOwogICAgICAgICBpZiAo
aXNNYXRoU3Vic2NyaXB0U3VwZXJzY3JpcHQoKSkKLSAgICAgICAgICAgIHJldHVybiAiQVhNYXRo
U3Vic2NyaXB0U3VwZXJzY3JpcHQiOworICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhTdWJzY3Jp
cHRTdXBlcnNjcmlwdCJfczsKICAgICAgICAgaWYgKGlzTWF0aFJvdygpKQotICAgICAgICAgICAg
cmV0dXJuICJBWE1hdGhSb3ciOworICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhSb3ciX3M7CiAg
ICAgICAgIGlmIChpc01hdGhVbmRlck92ZXIoKSkKLSAgICAgICAgICAgIHJldHVybiAiQVhNYXRo
VW5kZXJPdmVyIjsKKyAgICAgICAgICAgIHJldHVybiAiQVhNYXRoVW5kZXJPdmVyIl9zOwogICAg
ICAgICBpZiAoaXNNYXRoU3F1YXJlUm9vdCgpKQotICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhT
cXVhcmVSb290IjsKKyAgICAgICAgICAgIHJldHVybiAiQVhNYXRoU3F1YXJlUm9vdCJfczsKICAg
ICAgICAgaWYgKGlzTWF0aFJvb3QoKSkKLSAgICAgICAgICAgIHJldHVybiAiQVhNYXRoUm9vdCI7
CisgICAgICAgICAgICByZXR1cm4gIkFYTWF0aFJvb3QiX3M7CiAgICAgICAgIGlmIChpc01hdGhU
ZXh0KCkpCi0gICAgICAgICAgICByZXR1cm4gIkFYTWF0aFRleHQiOworICAgICAgICAgICAgcmV0
dXJuICJBWE1hdGhUZXh0Il9zOwogICAgICAgICBpZiAoaXNNYXRoTnVtYmVyKCkpCi0gICAgICAg
ICAgICByZXR1cm4gIkFYTWF0aE51bWJlciI7CisgICAgICAgICAgICByZXR1cm4gIkFYTWF0aE51
bWJlciJfczsKICAgICAgICAgaWYgKGlzTWF0aElkZW50aWZpZXIoKSkKLSAgICAgICAgICAgIHJl
dHVybiAiQVhNYXRoSWRlbnRpZmllciI7CisgICAgICAgICAgICByZXR1cm4gIkFYTWF0aElkZW50
aWZpZXIiX3M7CiAgICAgICAgIGlmIChpc01hdGhUYWJsZSgpKQotICAgICAgICAgICAgcmV0dXJu
ICJBWE1hdGhUYWJsZSI7CisgICAgICAgICAgICByZXR1cm4gIkFYTWF0aFRhYmxlIl9zOwogICAg
ICAgICBpZiAoaXNNYXRoVGFibGVSb3coKSkKLSAgICAgICAgICAgIHJldHVybiAiQVhNYXRoVGFi
bGVSb3ciOworICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhUYWJsZVJvdyJfczsKICAgICAgICAg
aWYgKGlzTWF0aFRhYmxlQ2VsbCgpKQotICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhUYWJsZUNl
bGwiOworICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhUYWJsZUNlbGwiX3M7CiAgICAgICAgIGlm
IChpc01hdGhGZW5jZU9wZXJhdG9yKCkpCi0gICAgICAgICAgICByZXR1cm4gIkFYTWF0aEZlbmNl
T3BlcmF0b3IiOworICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhGZW5jZU9wZXJhdG9yIl9zOwog
ICAgICAgICBpZiAoaXNNYXRoU2VwYXJhdG9yT3BlcmF0b3IoKSkKLSAgICAgICAgICAgIHJldHVy
biAiQVhNYXRoU2VwYXJhdG9yT3BlcmF0b3IiOworICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhT
ZXBhcmF0b3JPcGVyYXRvciJfczsKICAgICAgICAgaWYgKGlzTWF0aE9wZXJhdG9yKCkpCi0gICAg
ICAgICAgICByZXR1cm4gIkFYTWF0aE9wZXJhdG9yIjsKKyAgICAgICAgICAgIHJldHVybiAiQVhN
YXRoT3BlcmF0b3IiX3M7CiAgICAgICAgIGlmIChpc01hdGhNdWx0aXNjcmlwdCgpKQotICAgICAg
ICAgICAgcmV0dXJuICJBWE1hdGhNdWx0aXNjcmlwdCI7CisgICAgICAgICAgICByZXR1cm4gIkFY
TWF0aE11bHRpc2NyaXB0Il9zOwogICAgIH0KIAogICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxp
dHlSb2xlOjpWaWRlbykKLSAgICAgICAgcmV0dXJuICJBWFZpZGVvIjsKKyAgICAgICAgcmV0dXJu
ICJBWFZpZGVvIl9zOwogICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpBdWRpbykK
LSAgICAgICAgcmV0dXJuICJBWEF1ZGlvIjsKKyAgICAgICAgcmV0dXJuICJBWEF1ZGlvIl9zOwog
ICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpEZXRhaWxzKQotICAgICAgICByZXR1
cm4gIkFYRGV0YWlscyI7CisgICAgICAgIHJldHVybiAiQVhEZXRhaWxzIl9zOwogICAgIGlmIChy
b2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpTdW1tYXJ5KQotICAgICAgICByZXR1cm4gIkFYU3Vt
bWFyeSI7CisgICAgICAgIHJldHVybiAiQVhTdW1tYXJ5Il9zOwogICAgIGlmIChyb2xlID09IEFj
Y2Vzc2liaWxpdHlSb2xlOjpUaW1lKQotICAgICAgICByZXR1cm4gIkFYVGltZUdyb3VwIjsKKyAg
ICAgICAgcmV0dXJuICJBWFRpbWVHcm91cCJfczsKIAogICAgIGlmIChpc01lZGlhVGltZWxpbmUo
KSkKICAgICAgICAgcmV0dXJuIE5TQWNjZXNzaWJpbGl0eVRpbWVsaW5lU3Vicm9sZTsKQEAgLTM3
NiwyNSArMzc2LDI1IEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzdWJyb2xlUGxhdGZv
cm1TdHJpbmcoKSBjb25zdAogICAgICAgICByZXR1cm4gTlNBY2Nlc3NpYmlsaXR5U3dpdGNoU3Vi
cm9sZTsKIAogICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpJbnNlcnRpb24pCi0g
ICAgICAgIHJldHVybiAiQVhJbnNlcnRTdHlsZUdyb3VwIjsKKyAgICAgICAgcmV0dXJuICJBWElu
c2VydFN0eWxlR3JvdXAiX3M7CiAgICAgaWYgKHJvbGUgPT0gQWNjZXNzaWJpbGl0eVJvbGU6OkRl
bGV0aW9uKQotICAgICAgICByZXR1cm4gIkFYRGVsZXRlU3R5bGVHcm91cCI7CisgICAgICAgIHJl
dHVybiAiQVhEZWxldGVTdHlsZUdyb3VwIl9zOwogICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxp
dHlSb2xlOjpTdXBlcnNjcmlwdCkKLSAgICAgICAgcmV0dXJuICJBWFN1cGVyc2NyaXB0U3R5bGVH
cm91cCI7CisgICAgICAgIHJldHVybiAiQVhTdXBlcnNjcmlwdFN0eWxlR3JvdXAiX3M7CiAgICAg
aWYgKHJvbGUgPT0gQWNjZXNzaWJpbGl0eVJvbGU6OlN1YnNjcmlwdCkKLSAgICAgICAgcmV0dXJu
ICJBWFN1YnNjcmlwdFN0eWxlR3JvdXAiOworICAgICAgICByZXR1cm4gIkFYU3Vic2NyaXB0U3R5
bGVHcm91cCJfczsKIAogICAgIHN3aXRjaCAocm9sZSkgewogICAgIGNhc2UgQWNjZXNzaWJpbGl0
eVJvbGU6OlJ1YnlCYXNlOgotICAgICAgICByZXR1cm4gIkFYUnVieUJhc2UiOworICAgICAgICBy
ZXR1cm4gIkFYUnVieUJhc2UiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6UnVieUJs
b2NrOgotICAgICAgICByZXR1cm4gIkFYUnVieUJsb2NrIjsKKyAgICAgICAgcmV0dXJuICJBWFJ1
YnlCbG9jayJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpSdWJ5SW5saW5lOgotICAg
ICAgICByZXR1cm4gIkFYUnVieUlubGluZSI7CisgICAgICAgIHJldHVybiAiQVhSdWJ5SW5saW5l
Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlJ1YnlSdW46Ci0gICAgICAgIHJldHVy
biAiQVhSdWJ5UnVuIjsKKyAgICAgICAgcmV0dXJuICJBWFJ1YnlSdW4iX3M7CiAgICAgY2FzZSBB
Y2Nlc3NpYmlsaXR5Um9sZTo6UnVieVRleHQ6Ci0gICAgICAgIHJldHVybiAiQVhSdWJ5VGV4dCI7
CisgICAgICAgIHJldHVybiAiQVhSdWJ5VGV4dCJfczsKICAgICBkZWZhdWx0OgogICAgICAgICBi
cmVhazsKICAgICB9CkBAIC00MDMsMTcgKzQwMywxNyBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0eU9i
amVjdDo6c3Vicm9sZVBsYXRmb3JtU3RyaW5nKCkgY29uc3QKICAgICAgICAgdXNpbmcgbmFtZXNw
YWNlIEhUTUxOYW1lczsKICAgICAgICAgYXV0byB0YWcgPSB0YWdOYW1lKCk7CiAgICAgICAgIGlm
ICh0YWcgPT0ga2JkVGFnKQotICAgICAgICAgICAgcmV0dXJuIEAiQVhLZXlib2FyZElucHV0U3R5
bGVHcm91cCI7CisgICAgICAgICAgICByZXR1cm4gIkFYS2V5Ym9hcmRJbnB1dFN0eWxlR3JvdXAi
X3M7CiAgICAgICAgIGlmICh0YWcgPT0gY29kZVRhZykKLSAgICAgICAgICAgIHJldHVybiBAIkFY
Q29kZVN0eWxlR3JvdXAiOworICAgICAgICAgICAgcmV0dXJuICJBWENvZGVTdHlsZUdyb3VwIl9z
OwogICAgICAgICBpZiAodGFnID09IHByZVRhZykKLSAgICAgICAgICAgIHJldHVybiBAIkFYUHJl
Zm9ybWF0dGVkU3R5bGVHcm91cCI7CisgICAgICAgICAgICByZXR1cm4gIkFYUHJlZm9ybWF0dGVk
U3R5bGVHcm91cCJfczsKICAgICAgICAgaWYgKHRhZyA9PSBzYW1wVGFnKQotICAgICAgICAgICAg
cmV0dXJuIEAiQVhTYW1wbGVTdHlsZUdyb3VwIjsKKyAgICAgICAgICAgIHJldHVybiAiQVhTYW1w
bGVTdHlsZUdyb3VwIl9zOwogICAgICAgICBpZiAodGFnID09IHZhclRhZykKLSAgICAgICAgICAg
IHJldHVybiBAIkFYVmFyaWFibGVTdHlsZUdyb3VwIjsKKyAgICAgICAgICAgIHJldHVybiAiQVhW
YXJpYWJsZVN0eWxlR3JvdXAiX3M7CiAgICAgICAgIGlmICh0YWcgPT0gY2l0ZVRhZykKLSAgICAg
ICAgICAgIHJldHVybiBAIkFYQ2l0ZVN0eWxlR3JvdXAiOworICAgICAgICAgICAgcmV0dXJuICJB
WENpdGVTdHlsZUdyb3VwIl9zOwogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAg
ICAgcmV0dXJuIFN0cmluZygpOwogICAgIH0KQEAgLTQzNiw3ICs0MzYsNyBAQCBTdHJpbmcgQWNj
ZXNzaWJpbGl0eU9iamVjdDo6cm9sZVBsYXRmb3JtRGVzY3JpcHRpb24oKSBjb25zdAogCiAgICAg
ICAgIHN3aXRjaCAocm9sZSkgewogICAgICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpBdWRp
bzoKLSAgICAgICAgICAgIHJldHVybiBsb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVtZW50U3RyaW5n
KCJBdWRpb0VsZW1lbnQiKTsKKyAgICAgICAgICAgIHJldHVybiBsb2NhbGl6ZWRNZWRpYUNvbnRy
b2xFbGVtZW50U3RyaW5nKCJBdWRpb0VsZW1lbnQiX3MpOwogICAgICAgICBjYXNlIEFjY2Vzc2li
aWxpdHlSb2xlOjpEZWZpbml0aW9uOgogICAgICAgICAgICAgcmV0dXJuIEFYRGVmaW5pdGlvblRl
eHQoKTsKICAgICAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RGVzY3JpcHRpb25MaXN0VGVy
bToKQEAgLTQ1Myw5ICs0NTMsOSBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0eU9iamVjdDo6cm9sZVBs
YXRmb3JtRGVzY3JpcHRpb24oKSBjb25zdAogICAgICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xl
OjpNYXJrOgogICAgICAgICAgICAgcmV0dXJuIEFYTWFya1RleHQoKTsKICAgICAgICAgY2FzZSBB
Y2Nlc3NpYmlsaXR5Um9sZTo6VmlkZW86Ci0gICAgICAgICAgICByZXR1cm4gbG9jYWxpemVkTWVk
aWFDb250cm9sRWxlbWVudFN0cmluZygiVmlkZW9FbGVtZW50Iik7CisgICAgICAgICAgICByZXR1
cm4gbG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudFN0cmluZygiVmlkZW9FbGVtZW50Il9zKTsK
ICAgICAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6R3JhcGhpY3NEb2N1bWVudDoKLSAgICAg
ICAgICAgIHJldHVybiBBWEFSSUFDb250ZW50R3JvdXBUZXh0KEAiQVJJQURvY3VtZW50Iik7Cisg
ICAgICAgICAgICByZXR1cm4gQVhBUklBQ29udGVudEdyb3VwVGV4dCgiQVJJQURvY3VtZW50Iik7
CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAgICAgICAg
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9BbmltYXRpb25FZmZlY3Qu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0FuaW1hdGlvbkVmZmVjdC5jcHAKaW5kZXgg
MjM5YmQwNDVmODBhZWE4ZGNkZjMxYzVlMGM0Mzg4YTAyYjUyOTU1Mi4uNDMxZmRlYTE1NzI2Mjcy
YTJiNjhmOTc0YjI2ZTBhZTZhNTVmYzBhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5p
bWF0aW9uL0FuaW1hdGlvbkVmZmVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9u
L0FuaW1hdGlvbkVmZmVjdC5jcHAKQEAgLTY5LDcgKzY5LDcgQEAgRWZmZWN0VGltaW5nIEFuaW1h
dGlvbkVmZmVjdDo6Z2V0VGltaW5nKCkgY29uc3QKICAgICB0aW1pbmcuaXRlcmF0aW9uU3RhcnQg
PSBtX2l0ZXJhdGlvblN0YXJ0OwogICAgIHRpbWluZy5pdGVyYXRpb25zID0gbV9pdGVyYXRpb25z
OwogICAgIGlmIChtX2l0ZXJhdGlvbkR1cmF0aW9uID09IDBfcykKLSAgICAgICAgdGltaW5nLmR1
cmF0aW9uID0gImF1dG8iOworICAgICAgICB0aW1pbmcuZHVyYXRpb24gPSAiYXV0byJfczsKICAg
ICBlbHNlCiAgICAgICAgIHRpbWluZy5kdXJhdGlvbiA9IHNlY29uZHNUb1dlYkFuaW1hdGlvbnNB
UElUaW1lKG1faXRlcmF0aW9uRHVyYXRpb24pOwogICAgIHRpbWluZy5kaXJlY3Rpb24gPSBtX2Rp
cmVjdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9Eb2N1bWVudFRp
bWVsaW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lLmNw
cAppbmRleCAzYzk1OWU5Y2JkNGE4NzEyNDRlZTJmNDViMGI1YWEwNmUxYzVmZDQ1Li5jODZmMmFk
NTVjNGIxMjhlZWNlZGI4MDEwZjRjNDcxM2JhZjQ2NzY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9hbmltYXRpb24vRG9jdW1lbnRUaW1lbGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YW5pbWF0aW9uL0RvY3VtZW50VGltZWxpbmUuY3BwCkBAIC00NTIsNyArNDUyLDcgQEAgRXhjZXB0
aW9uT3I8UmVmPFdlYkFuaW1hdGlvbj4+IERvY3VtZW50VGltZWxpbmU6OmFuaW1hdGUoUmVmPEN1
c3RvbUVmZmVjdENhbGxiYWMKICAgICBpZiAoIW1fZG9jdW1lbnQpCiAgICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9OwogCi0gICAgU3RyaW5nIGlkID0gIiI7Cisg
ICAgU3RyaW5nIGlkID0gZW1wdHlTdHJpbmcoKTsKICAgICBzdGQ6OnZhcmlhbnQ8RnJhbWVzUGVy
U2Vjb25kLCBBbmltYXRpb25GcmFtZVJhdGVQcmVzZXQ+IGZyYW1lUmF0ZSA9IEFuaW1hdGlvbkZy
YW1lUmF0ZVByZXNldDo6QXV0bzsKICAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6dmFyaWFudDxkb3Vi
bGUsIEVmZmVjdFRpbWluZz4+IGN1c3RvbUVmZmVjdE9wdGlvbnM7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9FZmZlY3RUaW1pbmcuaCBiL1NvdXJjZS9XZWJDb3JlL2Fu
aW1hdGlvbi9FZmZlY3RUaW1pbmcuaAppbmRleCA0ZGQ1ZGNjMzczY2NkODMzMGRlY2EzNjE3ZDk5
OGU2MTMzOTMyZTYxLi4yMTA3M2ZhNDczMDNmNjRmZDJiYTI2MTlhZTkxODdmNTgxNTk1MDZlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRWZmZWN0VGltaW5nLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0VmZmVjdFRpbWluZy5oCkBAIC0zMywxMiArMzMsMTIg
QEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RydWN0IEVmZmVjdFRpbWluZyB7Ci0gICAgc3Rk
Ojp2YXJpYW50PGRvdWJsZSwgU3RyaW5nPiBkdXJhdGlvbiB7ICJhdXRvIiB9OworICAgIHN0ZDo6
dmFyaWFudDxkb3VibGUsIFN0cmluZz4gZHVyYXRpb24geyAiYXV0byJfcyB9OwogICAgIGRvdWJs
ZSBkZWxheSB7IDAgfTsKICAgICBkb3VibGUgZW5kRGVsYXkgeyAwIH07CiAgICAgZG91YmxlIGl0
ZXJhdGlvblN0YXJ0IHsgMCB9OwogICAgIGRvdWJsZSBpdGVyYXRpb25zIHsgMSB9OwotICAgIFN0
cmluZyBlYXNpbmcgeyAibGluZWFyIiB9OworICAgIFN0cmluZyBlYXNpbmcgeyAibGluZWFyIl9z
IH07CiAgICAgRmlsbE1vZGUgZmlsbCB7IEZpbGxNb2RlOjpBdXRvIH07CiAgICAgUGxheWJhY2tE
aXJlY3Rpb24gZGlyZWN0aW9uIHsgUGxheWJhY2tEaXJlY3Rpb246Ok5vcm1hbCB9OwogfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuY3BwCmluZGV4IDcyMzc2ODUw
M2QxMGRiNDk2N2IyZjhjNjBlYjkxNDE4OTc2NmJmN2QuLmQ4NDExYzkzZTQ3NzAyZjU2N2FkNjE0
MDM2NmVjZTc2NjM1YzA0NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9L
ZXlmcmFtZUVmZmVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tleWZyYW1l
RWZmZWN0LmNwcApAQCAtODIsMTEgKzgyLDExIEBAIFN0cmluZyBLZXlmcmFtZUVmZmVjdDo6Q1NT
UHJvcGVydHlJRFRvSURMQXR0cmlidXRlTmFtZShDU1NQcm9wZXJ0eUlEIGNzc1Byb3BlcnR5CiAK
ICAgICAvLyAyLiBJZiBwcm9wZXJ0eSByZWZlcnMgdG8gdGhlIENTUyBmbG9hdCBwcm9wZXJ0eSwg
cmV0dXJuIHRoZSBzdHJpbmcgImNzc0Zsb2F0Ii4KICAgICBpZiAoY3NzUHJvcGVydHlJZCA9PSBD
U1NQcm9wZXJ0eUZsb2F0KQotICAgICAgICByZXR1cm4gImNzc0Zsb2F0IjsKKyAgICAgICAgcmV0
dXJuICJjc3NGbG9hdCJfczsKIAogICAgIC8vIDMuIElmIHByb3BlcnR5IHJlZmVycyB0byB0aGUg
Q1NTIG9mZnNldCBwcm9wZXJ0eSwgcmV0dXJuIHRoZSBzdHJpbmcgImNzc09mZnNldCIuCiAgICAg
aWYgKGNzc1Byb3BlcnR5SWQgPT0gQ1NTUHJvcGVydHlPZmZzZXQpCi0gICAgICAgIHJldHVybiAi
Y3NzT2Zmc2V0IjsKKyAgICAgICAgcmV0dXJuICJjc3NPZmZzZXQiX3M7CiAKICAgICAvLyA0LiBP
dGhlcndpc2UsIHJldHVybiB0aGUgcmVzdWx0IG9mIGFwcGx5aW5nIHRoZSBDU1MgcHJvcGVydHkg
dG8gSURMIGF0dHJpYnV0ZSBhbGdvcml0aG0gW0NTU09NXSB0byBwcm9wZXJ0eS4KICAgICByZXR1
cm4gZ2V0SlNQcm9wZXJ0eU5hbWUoY3NzUHJvcGVydHlJZCk7CkBAIC02NjAsNyArNjYwLDcgQEAg
YXV0byBLZXlmcmFtZUVmZmVjdDo6Z2V0S2V5ZnJhbWVzKERvY3VtZW50JiBkb2N1bWVudCkgLT4g
VmVjdG9yPENvbXB1dGVkS2V5ZnJhbWUKICAgICAgICAgY29tcHV0ZWRLZXlmcmFtZS5vZmZzZXQg
PSBrZXlmcmFtZS5rZXkoKTsKICAgICAgICAgY29tcHV0ZWRLZXlmcmFtZS5jb21wdXRlZE9mZnNl
dCA9IGtleWZyYW1lLmtleSgpOwogICAgICAgICAvLyBGb3IgQ1NTIHRyYW5zaXRpb25zLCBhbGwg
a2V5ZnJhbWVzIHNob3VsZCByZXR1cm4gImxpbmVhciIgc2luY2UgdGhlIGVmZmVjdCdzIGdsb2Jh
bCB0aW1pbmcgZnVuY3Rpb24gYXBwbGllcy4KLSAgICAgICAgY29tcHV0ZWRLZXlmcmFtZS5lYXNp
bmcgPSBpczxDU1NUcmFuc2l0aW9uPihhbmltYXRpb24oKSkgPyAibGluZWFyIiA6IHRpbWluZ0Z1
bmN0aW9uRm9yQmxlbmRpbmdLZXlmcmFtZShrZXlmcmFtZSktPmNzc1RleHQoKTsKKyAgICAgICAg
Y29tcHV0ZWRLZXlmcmFtZS5lYXNpbmcgPSBpczxDU1NUcmFuc2l0aW9uPihhbmltYXRpb24oKSkg
PyAibGluZWFyIl9zIDogdGltaW5nRnVuY3Rpb25Gb3JCbGVuZGluZ0tleWZyYW1lKGtleWZyYW1l
KS0+Y3NzVGV4dCgpOwogCiAgICAgICAgIGlmIChkb2N1bWVudC5zZXR0aW5ncygpLndlYkFuaW1h
dGlvbnNDb21wb3NpdGVPcGVyYXRpb25zRW5hYmxlZCgpKSB7CiAgICAgICAgICAgICBpZiAoYXV0
byBjb21wb3NpdGVPcGVyYXRpb24gPSBrZXlmcmFtZS5jb21wb3NpdGVPcGVyYXRpb24oKSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0dDQ29udHJvbGxlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9HQ0NvbnRyb2xsZXIuY3BwCmluZGV4IDVmMTFlMGM2
MzQ4NzQxNDNhYjMxODVhMDFkZjlmYjJlZTM2ZjI1YWQuLjVmOTM0OTE3NTZmMjdlYzA0ZDRkZWE5
ZDM4MWI3YTY0YzZjNzkyMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0dDQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvR0NDb250
cm9sbGVyLmNwcApAQCAtNTksNyArNTksNyBAQCBHQ0NvbnRyb2xsZXI6OkdDQ29udHJvbGxlcigp
CiB7CiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VGbGFnOwogICAgIHN0ZDo6Y2FsbF9v
bmNlKG9uY2VGbGFnLCBbXSB7Ci0gICAgICAgIFBBTDo6cmVnaXN0ZXJOb3RpZnlDYWxsYmFjaygi
Y29tLmFwcGxlLldlYktpdC5kdW1wR0NIZWFwIiwgW10geworICAgICAgICBQQUw6OnJlZ2lzdGVy
Tm90aWZ5Q2FsbGJhY2soImNvbS5hcHBsZS5XZWJLaXQuZHVtcEdDSGVhcCJfcywgW10gewogICAg
ICAgICAgICAgR0NDb250cm9sbGVyOjpzaW5nbGV0b24oKS5kdW1wSGVhcCgpOwogICAgICAgICB9
KTsKICAgICB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3Vz
dG9tRWxlbWVudEludGVyZmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1
c3RvbUVsZW1lbnRJbnRlcmZhY2UuY3BwCmluZGV4IDRlMWQyNGVlOTQxNzRjOWRmNzZkMmIyZTUw
NzliNzdkZDBlMjZmOTguLmE5MWUwMmYyM2Q3NTAzMGE5YjlhYmY4OWEzNmY4NGFiMTliYTg4YjIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tRWxlbWVudElu
dGVyZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21FbGVt
ZW50SW50ZXJmYWNlLmNwcApAQCAtMjEwLDcgKzIxMCw3IEBAIHZvaWQgSlNDdXN0b21FbGVtZW50
SW50ZXJmYWNlOjp1cGdyYWRlRWxlbWVudChFbGVtZW50JiBlbGVtZW50KQogCiAgICAgaWYgKG1f
aXNTaGFkb3dEaXNhYmxlZCAmJiBlbGVtZW50LnNoYWRvd1Jvb3QoKSkgewogICAgICAgICBlbGVt
ZW50LmNsZWFyUmVhY3Rpb25RdWV1ZUZyb21GYWlsZWRDdXN0b21FbGVtZW50KCk7Ci0gICAgICAg
IHJlcG9ydEV4Y2VwdGlvbihsZXhpY2FsR2xvYmFsT2JqZWN0LCBjcmVhdGVET01FeGNlcHRpb24o
bGV4aWNhbEdsb2JhbE9iamVjdCwgTm90U3VwcG9ydGVkRXJyb3IsICJGYWlsZWQgdG8gdXBncmFk
ZSBhbiBlbGVtZW50IHdpdGggc2hhZG93IHJvb3Q6IHRoZSBjdXN0b20gZWxlbWVudCBkZWZpbml0
aW9uIGRpc2FsbG93cyBzaGFkb3cgcm9vdHMuIikpOworICAgICAgICByZXBvcnRFeGNlcHRpb24o
bGV4aWNhbEdsb2JhbE9iamVjdCwgY3JlYXRlRE9NRXhjZXB0aW9uKGxleGljYWxHbG9iYWxPYmpl
Y3QsIE5vdFN1cHBvcnRlZEVycm9yLCAiRmFpbGVkIHRvIHVwZ3JhZGUgYW4gZWxlbWVudCB3aXRo
IHNoYWRvdyByb290OiB0aGUgY3VzdG9tIGVsZW1lbnQgZGVmaW5pdGlvbiBkaXNhbGxvd3Mgc2hh
ZG93IHJvb3RzLiJfcykpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0yMzEsNyArMjMx
LDcgQEAgdm9pZCBKU0N1c3RvbUVsZW1lbnRJbnRlcmZhY2U6OnVwZ3JhZGVFbGVtZW50KEVsZW1l
bnQmIGVsZW1lbnQpCiAgICAgRWxlbWVudCogd3JhcHBlZEVsZW1lbnQgPSBKU0VsZW1lbnQ6OnRv
V3JhcHBlZCh2bSwgcmV0dXJuZWRFbGVtZW50KTsKICAgICBpZiAoIXdyYXBwZWRFbGVtZW50IHx8
IHdyYXBwZWRFbGVtZW50ICE9ICZlbGVtZW50KSB7CiAgICAgICAgIGVsZW1lbnQuY2xlYXJSZWFj
dGlvblF1ZXVlRnJvbUZhaWxlZEN1c3RvbUVsZW1lbnQoKTsKLSAgICAgICAgcmVwb3J0RXhjZXB0
aW9uKGxleGljYWxHbG9iYWxPYmplY3QsIGNyZWF0ZURPTUV4Y2VwdGlvbihsZXhpY2FsR2xvYmFs
T2JqZWN0LCBUeXBlRXJyb3IsICJDdXN0b20gZWxlbWVudCBjb25zdHJ1Y3RvciByZXR1cm5lZCBh
IHdyb25nIGVsZW1lbnQiKSk7CisgICAgICAgIHJlcG9ydEV4Y2VwdGlvbihsZXhpY2FsR2xvYmFs
T2JqZWN0LCBjcmVhdGVET01FeGNlcHRpb24obGV4aWNhbEdsb2JhbE9iamVjdCwgVHlwZUVycm9y
LCAiQ3VzdG9tIGVsZW1lbnQgY29uc3RydWN0b3IgcmV0dXJuZWQgYSB3cm9uZyBlbGVtZW50Il9z
KSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgZWxlbWVudC5zZXRJc0RlZmluZWRDdXN0
b21FbGVtZW50KCp0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NQ29udmVydE51bWJlcnMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
Q29udmVydE51bWJlcnMuaAppbmRleCBiN2I2MTNkZDZjMzdlZDExN2I5MjIwMjBhYzEzYTNkN2M1
NWJiY2FkLi4yOTQxM2Q4ZDk4OTY5MDEwZmFhMWMzNTRlYTNhODliYWM0MDBiMDcyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnROdW1iZXJzLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Db252ZXJ0TnVtYmVycy5oCkBAIC0y
OTMsNyArMjkzLDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQ29udmVydGVyPElETEZsb2F0PiA6IERl
ZmF1bHRDb252ZXJ0ZXI8SURMRmxvYXQ+IHsKICAgICAgICAgZG91YmxlIG51bWJlciA9IHZhbHVl
LnRvTnVtYmVyKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQ
VElPTihzY29wZSwgMC4wKTsKICAgICAgICAgaWYgKFVOTElLRUxZKG51bWJlciA8IHN0ZDo6bnVt
ZXJpY19saW1pdHM8ZmxvYXQ+Ojpsb3dlc3QoKSB8fCBudW1iZXIgPiBzdGQ6Om51bWVyaWNfbGlt
aXRzPGZsb2F0Pjo6bWF4KCkpKQotICAgICAgICAgICAgdGhyb3dUeXBlRXJyb3IoJmxleGljYWxH
bG9iYWxPYmplY3QsIHNjb3BlLCAiVGhlIHByb3ZpZGVkIHZhbHVlIGlzIG91dHNpZGUgdGhlIHJh
bmdlIG9mIGEgZmxvYXQiKTsKKyAgICAgICAgICAgIHRocm93VHlwZUVycm9yKCZsZXhpY2FsR2xv
YmFsT2JqZWN0LCBzY29wZSwgIlRoZSBwcm92aWRlZCB2YWx1ZSBpcyBvdXRzaWRlIHRoZSByYW5n
ZSBvZiBhIGZsb2F0Il9zKTsKICAgICAgICAgaWYgKFVOTElLRUxZKCFzdGQ6OmlzZmluaXRlKG51
bWJlcikpKQogICAgICAgICAgICAgdGhyb3dOb25GaW5pdGVUeXBlRXJyb3IobGV4aWNhbEdsb2Jh
bE9iamVjdCwgc2NvcGUpOwogICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8ZmxvYXQ+KG51bWJl
cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V4ZWNTdGF0ZUlu
c3RydW1lbnRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFeGVjU3RhdGVJ
bnN0cnVtZW50YXRpb24uaAppbmRleCBjMDQ0YjA3YWJmYzdiNjllMzE5MTI4MzNiNDk0NDY4MWJj
MzI4MDUzLi4zMTAwZmFiZjJkODU3MTM1YzhhNTNlOTQ2N2JlMjFjNzc4OWU2NGNkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V4ZWNTdGF0ZUluc3RydW1lbnRhdGlv
bi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXhlY1N0YXRlSW5zdHJ1bWVu
dGF0aW9uLmgKQEAgLTQ1LDcgKzQ1LDcgQEAgaW5saW5lIHZvaWQgSlNFeGVjU3RhdGU6Omluc3Ry
dW1lbnRGdW5jdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb24KICAgICAg
ICAgbGluZU51bWJlciA9IGNhbGxEYXRhLmpzLmZ1bmN0aW9uRXhlY3V0YWJsZS0+Zmlyc3RMaW5l
KCk7CiAgICAgICAgIGNvbHVtbk51bWJlciA9IGNhbGxEYXRhLmpzLmZ1bmN0aW9uRXhlY3V0YWJs
ZS0+c3RhcnRDb2x1bW4oKTsKICAgICB9IGVsc2UKLSAgICAgICAgcmVzb3VyY2VOYW1lID0gInVu
ZGVmaW5lZCI7CisgICAgICAgIHJlc291cmNlTmFtZSA9ICJ1bmRlZmluZWQiX3M7CiAgICAgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsQ2FsbEZ1bmN0aW9uKGNvbnRleHQsIHJlc291cmNl
TmFtZSwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcAppbmRleCBjZDRiM2YwNzZkZjczOTkw
NTZmMjc4YzY1ZTcyZDMyZDI0NzlkNDYwLi40ODRkOGMyZGYzN2JlZjdkMTdkYTQxYjcwMzIyOTRi
MWQ5Y2ZmYjE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRD
b250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250
cm9sbGVyLmNwcApAQCAtNjMzLDcgKzYzMyw3IEBAIFZhbHVlT3JFeGNlcHRpb24gU2NyaXB0Q29u
dHJvbGxlcjo6Y2FsbEluV29ybGQoUnVuSmF2YVNjcmlwdFBhcmFtZXRlcnMmJiBwYXJhbWV0CiAg
ICAgICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX0NBVENIX1NDT1BFKGdsb2JhbE9iamVjdC52bSgp
KTsKICAgICAgICAgYXV0byBqc0FyZ3VtZW50ID0gc2VyaWFsaXplZEFyZ3VtZW50LT5kZXNlcmlh
bGl6ZShnbG9iYWxPYmplY3QsICZnbG9iYWxPYmplY3QpOwogICAgICAgICBpZiAoVU5MSUtFTFko
c2NvcGUuZXhjZXB0aW9uKCkpKSB7Ci0gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSAiVW5hYmxl
IHRvIGRlc2VyaWFsaXplIGFyZ3VtZW50IHRvIGV4ZWN1dGUgYXN5bmNocm9ub3VzIEphdmFTY3Jp
cHQgZnVuY3Rpb24iOworICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gIlVuYWJsZSB0byBkZXNl
cmlhbGl6ZSBhcmd1bWVudCB0byBleGVjdXRlIGFzeW5jaHJvbm91cyBKYXZhU2NyaXB0IGZ1bmN0
aW9uIl9zOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLm1tIGIvU291cmNlL1dlYkNvcmUv
YnJpZGdlL29iamMvb2JqY19ydW50aW1lLm1tCmluZGV4IDE1Y2I2YTA4ZTVjMzVjMTcyMmNkZDM3
Y2EzOGFjNWNhOTQ0ZmExNTkuLmFlNDIyMTE0MWVlY2I4OTE1MWM2MzE2MTBlMjIyMjI0Y2NmZGRm
YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUubW0KQEAgLTE3
Niw3ICsxNzYsNyBAQCBib29sIE9iamNBcnJheTo6c2V0VmFsdWVBdChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgdW5zaWduZWQgaW50IGluZAogICAgIH0KIAogICAgIGlmIChp
bmRleCA+IFtfYXJyYXkgY291bnRdKSB7Ci0gICAgICAgIHRocm93RXhjZXB0aW9uKGxleGljYWxH
bG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVSYW5nZUVycm9yKGxleGljYWxHbG9iYWxPYmplY3Qs
ICJJbmRleCBleGNlZWRzIGFycmF5IHNpemUuIikpOworICAgICAgICB0aHJvd0V4Y2VwdGlvbihs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlUmFuZ2VFcnJvcihsZXhpY2FsR2xvYmFs
T2JqZWN0LCAiSW5kZXggZXhjZWVkcyBhcnJheSBzaXplLiJfcykpOwogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgfQogICAgIApAQCAtMTg4LDcgKzE4OCw3IEBAIGJvb2wgT2JqY0FycmF5Ojpz
ZXRWYWx1ZUF0KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCB1bnNpZ25lZCBp
bnQgaW5kCiAgICAgICAgIFtfYXJyYXkgaW5zZXJ0T2JqZWN0OihfX2JyaWRnZSBpZClvVmFsdWUu
b2JqZWN0VmFsdWUgYXRJbmRleDppbmRleF07CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0g
QGNhdGNoKE5TRXhjZXB0aW9uKiBsb2NhbEV4Y2VwdGlvbikgewotICAgICAgICB0aHJvd0V4Y2Vw
dGlvbihsZXhpY2FsR2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlRXJyb3IobGV4aWNhbEdsb2Jh
bE9iamVjdCwgIk9iamVjdGl2ZS1DIGV4Y2VwdGlvbi4iKSk7CisgICAgICAgIHRocm93RXhjZXB0
aW9uKGxleGljYWxHbG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVFcnJvcihsZXhpY2FsR2xvYmFs
T2JqZWN0LCAiT2JqZWN0aXZlLUMgZXhjZXB0aW9uLiJfcykpOwogICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgfQogfQpAQCAtMTk5LDEzICsxOTksMTMgQEAgSlNWYWx1ZSBPYmpjQXJyYXk6OnZh
bHVlQXQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIHVuc2lnbmVkIGludCBp
bmQKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBpZiAo
aW5kZXggPiBbX2FycmF5IGNvdW50XSkKLSAgICAgICAgcmV0dXJuIHRocm93RXhjZXB0aW9uKGxl
eGljYWxHbG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVSYW5nZUVycm9yKGxleGljYWxHbG9iYWxP
YmplY3QsICJJbmRleCBleGNlZWRzIGFycmF5IHNpemUuIikpOworICAgICAgICByZXR1cm4gdGhy
b3dFeGNlcHRpb24obGV4aWNhbEdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZVJhbmdlRXJyb3Io
bGV4aWNhbEdsb2JhbE9iamVjdCwgIkluZGV4IGV4Y2VlZHMgYXJyYXkgc2l6ZS4iX3MpKTsKICAg
ICBAdHJ5IHsKICAgICAgICAgaWQgb2JqID0gW19hcnJheSBvYmplY3RBdEluZGV4OmluZGV4XTsK
ICAgICAgICAgaWYgKG9iaikKICAgICAgICAgICAgIHJldHVybiBjb252ZXJ0T2JqY1ZhbHVlVG9W
YWx1ZSAobGV4aWNhbEdsb2JhbE9iamVjdCwgJm9iaiwgT2JqY09iamVjdFR5cGUsIG1fcm9vdE9i
amVjdC5nZXQoKSk7CiAgICAgfSBAY2F0Y2goTlNFeGNlcHRpb24qIGxvY2FsRXhjZXB0aW9uKSB7
Ci0gICAgICAgIHJldHVybiB0aHJvd0V4Y2VwdGlvbihsZXhpY2FsR2xvYmFsT2JqZWN0LCBzY29w
ZSwgY3JlYXRlRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgIk9iamVjdGl2ZS1DIGV4Y2VwdGlv
bi4iKSk7CisgICAgICAgIHJldHVybiB0aHJvd0V4Y2VwdGlvbihsZXhpY2FsR2xvYmFsT2JqZWN0
LCBzY29wZSwgY3JlYXRlRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgIk9iamVjdGl2ZS1DIGV4
Y2VwdGlvbi4iX3MpKTsKICAgICB9CiAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5jcHAKaW5kZXggYzA1ZTNhNDBlODA1NjY1ZGMw
ZmRlZDAyYzMwNTE4ZWQ5NjI4NjBjMy4uYWYzOWJhMTE0MGRhMDMwNDM4ODVhM2E4NTVhMTMzMWU0
ZjU2NWE5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXku
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmNwcApAQCAtMTI3
LDcgKzEyNyw3IEBAIGJvb2wgUnVudGltZUFycmF5OjpwdXQoSlNDZWxsKiBjZWxsLCBKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgUHJvcGVyCiAKICAgICBSdW50aW1lQXJyYXkq
IHRoaXNPYmplY3QgPSBqc0Nhc3Q8UnVudGltZUFycmF5Kj4oY2VsbCk7CiAgICAgaWYgKHByb3Bl
cnR5TmFtZSA9PSB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgpIHsKLSAgICAgICAgdGhyb3dFeGNl
cHRpb24obGV4aWNhbEdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZVJhbmdlRXJyb3IobGV4aWNh
bEdsb2JhbE9iamVjdCwgIlJhbmdlIGVycm9yIikpOworICAgICAgICB0aHJvd0V4Y2VwdGlvbihs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlUmFuZ2VFcnJvcihsZXhpY2FsR2xvYmFs
T2JqZWN0LCAiUmFuZ2UgZXJyb3IiX3MpKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0K
ICAgICAKQEAgLTE0NCw3ICsxNDQsNyBAQCBib29sIFJ1bnRpbWVBcnJheTo6cHV0QnlJbmRleChK
U0NlbGwqIGNlbGwsIEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LAogCiAgICAg
UnVudGltZUFycmF5KiB0aGlzT2JqZWN0ID0ganNDYXN0PFJ1bnRpbWVBcnJheSo+KGNlbGwpOwog
ICAgIGlmIChpbmRleCA+PSB0aGlzT2JqZWN0LT5nZXRMZW5ndGgoKSkgewotICAgICAgICB0aHJv
d0V4Y2VwdGlvbihsZXhpY2FsR2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlUmFuZ2VFcnJvcihs
ZXhpY2FsR2xvYmFsT2JqZWN0LCAiUmFuZ2UgZXJyb3IiKSk7CisgICAgICAgIHRocm93RXhjZXB0
aW9uKGxleGljYWxHbG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVSYW5nZUVycm9yKGxleGljYWxH
bG9iYWxPYmplY3QsICJSYW5nZSBlcnJvciJfcykpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgfQogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2Jq
ZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAKaW5kZXgg
YjI0ZjJhZWYxOTRiYWQyNWIzYTYxZWI4OGU3NDE0N2RjZTkzMTBjNy4uMjBiZTFlZTJmZjI1MDQy
ZjM4ODE1ZWRhMDY4ZmQ5YTQ4ODk1NWU3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJp
ZGdlL3J1bnRpbWVfb2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGlt
ZV9vYmplY3QuY3BwCkBAIC0zMTAsNyArMzEwLDcgQEAgdm9pZCBSdW50aW1lT2JqZWN0OjpnZXRP
d25Qcm9wZXJ0eU5hbWVzKEpTT2JqZWN0KiBvYmplY3QsIEpTR2xvYmFsT2JqZWN0KiBsZXhpY2EK
IAogRXhjZXB0aW9uKiB0aHJvd1J1bnRpbWVPYmplY3RJbnZhbGlkQWNjZXNzRXJyb3IoSlNHbG9i
YWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIFRocm93U2NvcGUmIHNjb3BlKQogewotICAg
IHJldHVybiB0aHJvd0V4Y2VwdGlvbihsZXhpY2FsR2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRl
UmVmZXJlbmNlRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgIlRyeWluZyB0byBhY2Nlc3Mgb2Jq
ZWN0IGZyb20gZGVzdHJveWVkIHBsdWctaW4uIikpOworICAgIHJldHVybiB0aHJvd0V4Y2VwdGlv
bihsZXhpY2FsR2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlUmVmZXJlbmNlRXJyb3IobGV4aWNh
bEdsb2JhbE9iamVjdCwgIlRyeWluZyB0byBhY2Nlc3Mgb2JqZWN0IGZyb20gZGVzdHJveWVkIHBs
dWctaW4uIl9zKSk7CiB9CiAKIEpTQzo6R0NDbGllbnQ6Oklzb1N1YnNwYWNlKiBSdW50aW1lT2Jq
ZWN0OjpzdWJzcGFjZUZvckltcGwoSlNDOjpWTSYgdm0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uQWN0aW9ucy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uQWN0aW9ucy5jcHAK
aW5kZXggMGNhNjFjMTAxNGQyNDM1ZTg0YWEwZGFmZTMwMjBmZmIwNzhlODM3OS4uN2IyNjU5ZmM2
NzNkNTM2MDllNWQxYjVlNDdmYjY4M2ExNjNhZjA5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkFjdGlvbnMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25BY3Rpb25zLmNw
cApAQCAtMjAxLDE1ICsyMDEsMTUgQEAgYXV0byBNb2RpZnlIZWFkZXJzQWN0aW9uOjpNb2RpZnlI
ZWFkZXJJbmZvOjpwYXJzZShjb25zdCBKU09OOjpWYWx1ZSYgaW5mb1ZhbHVlKQogICAgIGlmICgh
b2JqZWN0KQogICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoQ29udGVudEV4dGVuc2lvbkVy
cm9yOjpKU09OTW9kaWZ5SGVhZGVyc0luZm9Ob3RBRGljdGlvbmFyeSk7CiAKLSAgICBTdHJpbmcg
b3BlcmF0aW9uID0gb2JqZWN0LT5nZXRTdHJpbmcoIm9wZXJhdGlvbiIpOworICAgIFN0cmluZyBv
cGVyYXRpb24gPSBvYmplY3QtPmdldFN0cmluZygib3BlcmF0aW9uIl9zKTsKICAgICBpZiAoIW9w
ZXJhdGlvbikKICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKENvbnRlbnRFeHRlbnNpb25F
cnJvcjo6SlNPTk1vZGlmeUhlYWRlcnNNaXNzaW5nT3BlcmF0aW9uKTsKIAotICAgIFN0cmluZyBo
ZWFkZXIgPSBvYmplY3QtPmdldFN0cmluZygiaGVhZGVyIik7CisgICAgU3RyaW5nIGhlYWRlciA9
IG9iamVjdC0+Z2V0U3RyaW5nKCJoZWFkZXIiX3MpOwogICAgIGlmICghaGVhZGVyKQogICAgICAg
ICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OTW9kaWZ5
SGVhZGVyc01pc3NpbmdIZWFkZXIpOwogCi0gICAgU3RyaW5nIHZhbHVlID0gb2JqZWN0LT5nZXRT
dHJpbmcoInZhbHVlIik7CisgICAgU3RyaW5nIHZhbHVlID0gb2JqZWN0LT5nZXRTdHJpbmcoInZh
bHVlIl9zKTsKIAogICAgIGlmIChvcGVyYXRpb24gPT0gInNldCIpIHsKICAgICAgICAgaWYgKCF2
YWx1ZSkKQEAgLTI4OSwyNyArMjg5LDI3IEBAIHNpemVfdCBNb2RpZnlIZWFkZXJzQWN0aW9uOjpN
b2RpZnlIZWFkZXJJbmZvOjpzZXJpYWxpemVkTGVuZ3RoKFNwYW48Y29uc3QgdWludDhfCiAKIEV4
cGVjdGVkPFJlZGlyZWN0QWN0aW9uLCBzdGQ6OmVycm9yX2NvZGU+IFJlZGlyZWN0QWN0aW9uOjpw
YXJzZShjb25zdCBKU09OOjpPYmplY3QmIHJlZGlyZWN0T2JqZWN0LCBjb25zdCBTdHJpbmcmIHVy
bEZpbHRlcikKIHsKLSAgICBhdXRvIHJlZGlyZWN0ID0gcmVkaXJlY3RPYmplY3QuZ2V0T2JqZWN0
KCJyZWRpcmVjdCIpOworICAgIGF1dG8gcmVkaXJlY3QgPSByZWRpcmVjdE9iamVjdC5nZXRPYmpl
Y3QoInJlZGlyZWN0Il9zKTsKICAgICBpZiAoIXJlZGlyZWN0KQogICAgICAgICByZXR1cm4gbWFr
ZVVuZXhwZWN0ZWQoQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OUmVkaXJlY3RNaXNzaW5nKTsK
IAotICAgIGlmIChhdXRvIGV4dGVuc2lvblBhdGggPSByZWRpcmVjdC0+Z2V0U3RyaW5nKCJleHRl
bnNpb24tcGF0aCIpOyAhIWV4dGVuc2lvblBhdGgpIHsKKyAgICBpZiAoYXV0byBleHRlbnNpb25Q
YXRoID0gcmVkaXJlY3QtPmdldFN0cmluZygiZXh0ZW5zaW9uLXBhdGgiX3MpOyAhIWV4dGVuc2lv
blBhdGgpIHsKICAgICAgICAgaWYgKCFleHRlbnNpb25QYXRoLnN0YXJ0c1dpdGgoJy8nKSkKICAg
ICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpT
T05SZWRpcmVjdEV4dGVuc2lvblBhdGhEb2VzTm90U3RhcnRXaXRoU2xhc2gpOwogICAgICAgICBy
ZXR1cm4gUmVkaXJlY3RBY3Rpb24geyBFeHRlbnNpb25QYXRoQWN0aW9uIHsgV1RGTW92ZShleHRl
bnNpb25QYXRoKSB9IH07CiAgICAgfQogCi0gICAgaWYgKGF1dG8gcmVnZXhTdWJzdGl0dXRpb24g
PSByZWRpcmVjdC0+Z2V0U3RyaW5nKCJyZWdleC1zdWJzdGl0dXRpb24iKTsgISFyZWdleFN1YnN0
aXR1dGlvbikKKyAgICBpZiAoYXV0byByZWdleFN1YnN0aXR1dGlvbiA9IHJlZGlyZWN0LT5nZXRT
dHJpbmcoInJlZ2V4LXN1YnN0aXR1dGlvbiJfcyk7ICEhcmVnZXhTdWJzdGl0dXRpb24pCiAgICAg
ICAgIHJldHVybiBSZWRpcmVjdEFjdGlvbiB7IFJlZ2V4U3Vic3RpdHV0aW9uQWN0aW9uIHsgV1RG
TW92ZShyZWdleFN1YnN0aXR1dGlvbiksIHVybEZpbHRlciB9IH07CiAKLSAgICBpZiAoYXV0byB0
cmFuc2Zvcm0gPSByZWRpcmVjdC0+Z2V0T2JqZWN0KCJ0cmFuc2Zvcm0iKSkgeworICAgIGlmIChh
dXRvIHRyYW5zZm9ybSA9IHJlZGlyZWN0LT5nZXRPYmplY3QoInRyYW5zZm9ybSJfcykpIHsKICAg
ICAgICAgYXV0byBwYXJzZWRUcmFuc2Zvcm0gPSBVUkxUcmFuc2Zvcm1BY3Rpb246OnBhcnNlKCp0
cmFuc2Zvcm0pOwogICAgICAgICBpZiAoIXBhcnNlZFRyYW5zZm9ybSkKICAgICAgICAgICAgIHJl
dHVybiBtYWtlVW5leHBlY3RlZChwYXJzZWRUcmFuc2Zvcm0uZXJyb3IoKSk7CiAgICAgICAgIHJl
dHVybiBSZWRpcmVjdEFjdGlvbiB7IFdURk1vdmUoKnBhcnNlZFRyYW5zZm9ybSkgfTsKICAgICB9
CiAKLSAgICBpZiAoYXV0byB1cmxTdHJpbmcgPSByZWRpcmVjdC0+Z2V0U3RyaW5nKCJ1cmwiKTsg
ISF1cmxTdHJpbmcpIHsKKyAgICBpZiAoYXV0byB1cmxTdHJpbmcgPSByZWRpcmVjdC0+Z2V0U3Ry
aW5nKCJ1cmwiX3MpOyAhIXVybFN0cmluZykgewogICAgICAgICBVUkwgdXJsIHsgdXJsU3RyaW5n
IH07CiAgICAgICAgIGlmICghdXJsLmlzVmFsaWQoKSkKICAgICAgICAgICAgIHJldHVybiBtYWtl
VW5leHBlY3RlZChDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05SZWRpcmVjdFVSTEludmFsaWQp
OwpAQCAtNDgzLDE1ICs0ODMsMTUgQEAgdm9pZCBSZWRpcmVjdEFjdGlvbjo6UmVnZXhTdWJzdGl0
dXRpb25BY3Rpb246OmFwcGx5VG9VUkwoVVJMJiB1cmwpIGNvbnN0CiBhdXRvIFJlZGlyZWN0QWN0
aW9uOjpVUkxUcmFuc2Zvcm1BY3Rpb246OnBhcnNlKGNvbnN0IEpTT046Ok9iamVjdCYgdHJhbnNm
b3JtKSAtPiBFeHBlY3RlZDxVUkxUcmFuc2Zvcm1BY3Rpb24sIHN0ZDo6ZXJyb3JfY29kZT4KIHsK
ICAgICBVUkxUcmFuc2Zvcm1BY3Rpb24gYWN0aW9uOwotICAgIGlmIChhdXRvIGZyYWdtZW50ID0g
dHJhbnNmb3JtLmdldFN0cmluZygiZnJhZ21lbnQiKTsgISFmcmFnbWVudCkgeworICAgIGlmIChh
dXRvIGZyYWdtZW50ID0gdHJhbnNmb3JtLmdldFN0cmluZygiZnJhZ21lbnQiX3MpOyAhIWZyYWdt
ZW50KSB7CiAgICAgICAgIGlmICghZnJhZ21lbnQuaXNFbXB0eSgpICYmICFmcmFnbWVudC5zdGFy
dHNXaXRoKCcjJykpCiAgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoQ29udGVudEV4
dGVuc2lvbkVycm9yOjpKU09OUmVkaXJlY3RJbnZhbGlkRnJhZ21lbnQpOwogICAgICAgICBhY3Rp
b24uZnJhZ21lbnQgPSBXVEZNb3ZlKGZyYWdtZW50KTsKICAgICB9Ci0gICAgYWN0aW9uLmhvc3Qg
PSB0cmFuc2Zvcm0uZ2V0U3RyaW5nKCJob3N0Iik7Ci0gICAgYWN0aW9uLnBhc3N3b3JkID0gdHJh
bnNmb3JtLmdldFN0cmluZygicGFzc3dvcmQiKTsKLSAgICBhY3Rpb24ucGF0aCA9IHRyYW5zZm9y
bS5nZXRTdHJpbmcoInBhdGgiKTsKLSAgICBhdXRvIHBvcnQgPSB0cmFuc2Zvcm0uZ2V0U3RyaW5n
KCJwb3J0Iik7CisgICAgYWN0aW9uLmhvc3QgPSB0cmFuc2Zvcm0uZ2V0U3RyaW5nKCJob3N0Il9z
KTsKKyAgICBhY3Rpb24ucGFzc3dvcmQgPSB0cmFuc2Zvcm0uZ2V0U3RyaW5nKCJwYXNzd29yZCJf
cyk7CisgICAgYWN0aW9uLnBhdGggPSB0cmFuc2Zvcm0uZ2V0U3RyaW5nKCJwYXRoIl9zKTsKKyAg
ICBhdXRvIHBvcnQgPSB0cmFuc2Zvcm0uZ2V0U3RyaW5nKCJwb3J0Il9zKTsKICAgICBpZiAoISFw
b3J0KSB7CiAgICAgICAgIGlmIChwb3J0LmlzRW1wdHkoKSkKICAgICAgICAgICAgIGFjdGlvbi5w
b3J0ID0geyBzdGQ6Om9wdGlvbmFsPHVpbnQxNl90PiB7IH0gfTsKQEAgLTUwMyw3ICs1MDMsNyBA
QCBhdXRvIFJlZGlyZWN0QWN0aW9uOjpVUkxUcmFuc2Zvcm1BY3Rpb246OnBhcnNlKGNvbnN0IEpT
T046Ok9iamVjdCYgdHJhbnNmb3JtKSAtPgogICAgICAgICB9CiAgICAgfQogCi0gICAgaWYgKGF1
dG8gdW5jYW5vbmljYWxpemVkU2NoZW1lID0gdHJhbnNmb3JtLmdldFN0cmluZygic2NoZW1lIik7
ICEhdW5jYW5vbmljYWxpemVkU2NoZW1lKSB7CisgICAgaWYgKGF1dG8gdW5jYW5vbmljYWxpemVk
U2NoZW1lID0gdHJhbnNmb3JtLmdldFN0cmluZygic2NoZW1lIl9zKTsgISF1bmNhbm9uaWNhbGl6
ZWRTY2hlbWUpIHsKICAgICAgICAgYXV0byBzY2hlbWUgPSBXVEY6OlVSTFBhcnNlcjo6bWF5YmVD
YW5vbmljYWxpemVTY2hlbWUodW5jYW5vbmljYWxpemVkU2NoZW1lKTsKICAgICAgICAgaWYgKCFz
Y2hlbWUpCiAgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoQ29udGVudEV4dGVuc2lv
bkVycm9yOjpKU09OUmVkaXJlY3RVUkxTY2hlbWVJbnZhbGlkKTsKQEAgLTUxMSwxNCArNTExLDE0
IEBAIGF1dG8gUmVkaXJlY3RBY3Rpb246OlVSTFRyYW5zZm9ybUFjdGlvbjo6cGFyc2UoY29uc3Qg
SlNPTjo6T2JqZWN0JiB0cmFuc2Zvcm0pIC0+CiAgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhw
ZWN0ZWQoQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OUmVkaXJlY3RUb0phdmFTY3JpcHRVUkwp
OwogICAgICAgICBhY3Rpb24uc2NoZW1lID0gV1RGTW92ZSgqc2NoZW1lKTsKICAgICB9Ci0gICAg
YWN0aW9uLnVzZXJuYW1lID0gdHJhbnNmb3JtLmdldFN0cmluZygidXNlcm5hbWUiKTsKLSAgICBp
ZiAoYXV0byBxdWVyeVRyYW5zZm9ybSA9IHRyYW5zZm9ybS5nZXRPYmplY3QoInF1ZXJ5LXRyYW5z
Zm9ybSIpKSB7CisgICAgYWN0aW9uLnVzZXJuYW1lID0gdHJhbnNmb3JtLmdldFN0cmluZygidXNl
cm5hbWUiX3MpOworICAgIGlmIChhdXRvIHF1ZXJ5VHJhbnNmb3JtID0gdHJhbnNmb3JtLmdldE9i
amVjdCgicXVlcnktdHJhbnNmb3JtIl9zKSkgewogICAgICAgICBhdXRvIHBhcnNlZFF1ZXJ5VHJh
bnNmb3JtID0gUXVlcnlUcmFuc2Zvcm06OnBhcnNlKCpxdWVyeVRyYW5zZm9ybSk7CiAgICAgICAg
IGlmICghcGFyc2VkUXVlcnlUcmFuc2Zvcm0pCiAgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhw
ZWN0ZWQocGFyc2VkUXVlcnlUcmFuc2Zvcm0uZXJyb3IoKSk7CiAgICAgICAgIGFjdGlvbi5xdWVy
eVRyYW5zZm9ybSA9ICpwYXJzZWRRdWVyeVRyYW5zZm9ybTsKICAgICB9IGVsc2UgewotICAgICAg
ICBhdXRvIHF1ZXJ5ID0gdHJhbnNmb3JtLmdldFN0cmluZygicXVlcnkiKTsKKyAgICAgICAgYXV0
byBxdWVyeSA9IHRyYW5zZm9ybS5nZXRTdHJpbmcoInF1ZXJ5Il9zKTsKICAgICAgICAgaWYgKCFx
dWVyeS5pc0VtcHR5KCkgJiYgIXF1ZXJ5LnN0YXJ0c1dpdGgoJz8nKSkKICAgICAgICAgICAgIHJl
dHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05SZWRpcmVjdElu
dmFsaWRRdWVyeSk7CiAgICAgICAgIGFjdGlvbi5xdWVyeVRyYW5zZm9ybSA9IFdURk1vdmUocXVl
cnkpOwpAQCAtNjk5LDcgKzY5OSw3IEBAIGF1dG8gUmVkaXJlY3RBY3Rpb246OlVSTFRyYW5zZm9y
bUFjdGlvbjo6UXVlcnlUcmFuc2Zvcm06OnBhcnNlKGNvbnN0IEpTT046Ok9iamVjCiB7CiAgICAg
UXVlcnlUcmFuc2Zvcm0gcGFyc2VkUXVlcnlUcmFuc2Zvcm07CiAKLSAgICBpZiAoYXV0byByZW1v
dmVQYXJhbWV0ZXJzVmFsdWUgPSBxdWVyeVRyYW5zZm9ybS5nZXRWYWx1ZSgicmVtb3ZlLXBhcmFt
ZXRlcnMiKSkgeworICAgIGlmIChhdXRvIHJlbW92ZVBhcmFtZXRlcnNWYWx1ZSA9IHF1ZXJ5VHJh
bnNmb3JtLmdldFZhbHVlKCJyZW1vdmUtcGFyYW1ldGVycyJfcykpIHsKICAgICAgICAgYXV0byBy
ZW1vdmVQYXJhbWV0ZXJzQXJyYXkgPSByZW1vdmVQYXJhbWV0ZXJzVmFsdWUtPmFzQXJyYXkoKTsK
ICAgICAgICAgaWYgKCFyZW1vdmVQYXJhbWV0ZXJzQXJyYXkpCiAgICAgICAgICAgICByZXR1cm4g
bWFrZVVuZXhwZWN0ZWQoQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OUmVtb3ZlUGFyYW1ldGVy
c05vdFN0cmluZ0FycmF5KTsKQEAgLTcxMyw3ICs3MTMsNyBAQCBhdXRvIFJlZGlyZWN0QWN0aW9u
OjpVUkxUcmFuc2Zvcm1BY3Rpb246OlF1ZXJ5VHJhbnNmb3JtOjpwYXJzZShjb25zdCBKU09OOjpP
YmplYwogICAgICAgICBwYXJzZWRRdWVyeVRyYW5zZm9ybS5yZW1vdmVQYXJhbXMgPSBXVEZNb3Zl
KHJlbW92ZVBhcmFtZXRlcnNWZWN0b3IpOwogICAgIH0KIAotICAgIGlmIChhdXRvIGFkZE9yUmVw
bGFjZVBhcmFtZXRlcnNWYWx1ZSA9IHF1ZXJ5VHJhbnNmb3JtLmdldFZhbHVlKCJhZGQtb3ItcmVw
bGFjZS1wYXJhbWV0ZXJzIikpIHsKKyAgICBpZiAoYXV0byBhZGRPclJlcGxhY2VQYXJhbWV0ZXJz
VmFsdWUgPSBxdWVyeVRyYW5zZm9ybS5nZXRWYWx1ZSgiYWRkLW9yLXJlcGxhY2UtcGFyYW1ldGVy
cyJfcykpIHsKICAgICAgICAgYXV0byBhZGRPclJlcGxhY2VQYXJhbWV0ZXJzQXJyYXkgPSBhZGRP
clJlcGxhY2VQYXJhbWV0ZXJzVmFsdWUtPmFzQXJyYXkoKTsKICAgICAgICAgaWYgKCFhZGRPclJl
cGxhY2VQYXJhbWV0ZXJzQXJyYXkpCiAgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQo
Q29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OQWRkT3JSZXBsYWNlUGFyYW1ldGVyc05vdEFycmF5
KTsKQEAgLTg1OCwxNiArODU4LDE2IEBAIGF1dG8gUmVkaXJlY3RBY3Rpb246OlVSTFRyYW5zZm9y
bUFjdGlvbjo6UXVlcnlUcmFuc2Zvcm06OlF1ZXJ5S2V5VmFsdWU6OnBhcnNlKGNvCiAgICAgaWYg
KCFrZXlWYWx1ZSkKICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKENvbnRlbnRFeHRlbnNp
b25FcnJvcjo6SlNPTkFkZE9yUmVwbGFjZVBhcmFtZXRlcnNLZXlWYWx1ZU5vdEFEaWN0aW9uYXJ5
KTsKIAotICAgIFN0cmluZyBrZXkgPSBrZXlWYWx1ZS0+Z2V0U3RyaW5nKCJrZXkiKTsKKyAgICBT
dHJpbmcga2V5ID0ga2V5VmFsdWUtPmdldFN0cmluZygia2V5Il9zKTsKICAgICBpZiAoIWtleSkK
ICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNP
TkFkZE9yUmVwbGFjZVBhcmFtZXRlcnNLZXlWYWx1ZU1pc3NpbmdLZXlTdHJpbmcpOwogCi0gICAg
U3RyaW5nIHZhbHVlID0ga2V5VmFsdWUtPmdldFN0cmluZygidmFsdWUiKTsKKyAgICBTdHJpbmcg
dmFsdWUgPSBrZXlWYWx1ZS0+Z2V0U3RyaW5nKCJ2YWx1ZSJfcyk7CiAgICAgaWYgKCF2YWx1ZSkK
ICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNP
TkFkZE9yUmVwbGFjZVBhcmFtZXRlcnNLZXlWYWx1ZU1pc3NpbmdWYWx1ZVN0cmluZyk7CiAKICAg
ICBib29sIHJlcGxhY2VPbmx5IHsgZmFsc2UgfTsKLSAgICBpZiAoYXV0byBib29sZWFuID0ga2V5
VmFsdWUtPmdldEJvb2xlYW4oInJlcGxhY2Utb25seSIpKQorICAgIGlmIChhdXRvIGJvb2xlYW4g
PSBrZXlWYWx1ZS0+Z2V0Qm9vbGVhbigicmVwbGFjZS1vbmx5Il9zKSkKICAgICAgICAgcmVwbGFj
ZU9ubHkgPSAqYm9vbGVhbjsKIAogICAgIHJldHVybiB7IHsgV1RGTW92ZShrZXkpLCByZXBsYWNl
T25seSwgV1RGTW92ZSh2YWx1ZSkgfSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY29u
dGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkNvbXBpbGVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25Db21waWxlci5jcHAKaW5kZXgg
Y2ZlYmY1YzMwNzhhOTQxZDE5Yzc5YTI5MmM0NzBjOWViYmYyODJjZi4uZTg3MjFkNGE3NDc5ZWQ2
ODMwMTdmMGE0ODVlODQ2YTMyOWM5MGUwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY29u
dGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkNvbXBpbGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uQ29tcGlsZXIuY3BwCkBA
IC0zMTYsNyArMzE2LDcgQEAgc3RkOjplcnJvcl9jb2RlIGNvbXBpbGVSdWxlTGlzdChDb250ZW50
RXh0ZW5zaW9uQ29tcGlsYXRpb25DbGllbnQmIGNsaWVudCwgU3RyaW4KICAgICAgICAgICAgIHN0
YXR1cyA9IFVSTEZpbHRlclBhcnNlcjo6T2s7CiAgICAgICAgIH0KICAgICAgICAgaWYgKHN0YXR1
cyAhPSBVUkxGaWx0ZXJQYXJzZXI6Ok9rKSB7Ci0gICAgICAgICAgICBkYXRhTG9nRigiRXJyb3Ig
d2hpbGUgcGFyc2luZyAlczogJXNcbiIsIHRyaWdnZXIudXJsRmlsdGVyLnV0ZjgoKS5kYXRhKCks
IFVSTEZpbHRlclBhcnNlcjo6c3RhdHVzU3RyaW5nKHN0YXR1cykudXRmOCgpLmRhdGEoKSk7Cisg
ICAgICAgICAgICBkYXRhTG9nRigiRXJyb3Igd2hpbGUgcGFyc2luZyAlczogJXNcbiIsIHRyaWdn
ZXIudXJsRmlsdGVyLnV0ZjgoKS5kYXRhKCksIFVSTEZpbHRlclBhcnNlcjo6c3RhdHVzU3RyaW5n
KHN0YXR1cykuY2hhcmFjdGVycygpKTsKICAgICAgICAgICAgIHJldHVybiBDb250ZW50RXh0ZW5z
aW9uRXJyb3I6OkpTT05JbnZhbGlkUmVnZXg7CiAgICAgICAgIH0KIApAQCAtMzMzLDcgKzMzMyw3
IEBAIHN0ZDo6ZXJyb3JfY29kZSBjb21waWxlUnVsZUxpc3QoQ29udGVudEV4dGVuc2lvbkNvbXBp
bGF0aW9uQ2xpZW50JiBjbGllbnQsIFN0cmluCiAgICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9
IFVSTEZpbHRlclBhcnNlcjo6T2s7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
IGlmIChzdGF0dXMgIT0gVVJMRmlsdGVyUGFyc2VyOjpPaykgewotICAgICAgICAgICAgICAgICAg
ICBkYXRhTG9nRigiRXJyb3Igd2hpbGUgcGFyc2luZyAlczogJXNcbiIsIGNvbmRpdGlvbi51dGY4
KCkuZGF0YSgpLCBVUkxGaWx0ZXJQYXJzZXI6OnN0YXR1c1N0cmluZyhzdGF0dXMpLnV0ZjgoKS5k
YXRhKCkpOworICAgICAgICAgICAgICAgICAgICBkYXRhTG9nRigiRXJyb3Igd2hpbGUgcGFyc2lu
ZyAlczogJXNcbiIsIGNvbmRpdGlvbi51dGY4KCkuZGF0YSgpLCBVUkxGaWx0ZXJQYXJzZXI6OnN0
YXR1c1N0cmluZyhzdGF0dXMpLmNoYXJhY3RlcnMoKSk7CiAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkUmVnZXg7CiAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAtMzQ0LDcgKzM0NCw3IEBAIHN0ZDo6
ZXJyb3JfY29kZSBjb21waWxlUnVsZUxpc3QoQ29udGVudEV4dGVuc2lvbkNvbXBpbGF0aW9uQ2xp
ZW50JiBjbGllbnQsIFN0cmluCiAgICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9IFVSTEZpbHRl
clBhcnNlcjo6T2s7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGlmIChzdGF0
dXMgIT0gVVJMRmlsdGVyUGFyc2VyOjpPaykgewotICAgICAgICAgICAgICAgICAgICBkYXRhTG9n
RigiRXJyb3Igd2hpbGUgcGFyc2luZyAlczogJXNcbiIsIGNvbmRpdGlvbi51dGY4KCkuZGF0YSgp
LCBVUkxGaWx0ZXJQYXJzZXI6OnN0YXR1c1N0cmluZyhzdGF0dXMpLnV0ZjgoKS5kYXRhKCkpOwor
ICAgICAgICAgICAgICAgICAgICBkYXRhTG9nRigiRXJyb3Igd2hpbGUgcGFyc2luZyAlczogJXNc
biIsIGNvbmRpdGlvbi51dGY4KCkuZGF0YSgpLCBVUkxGaWx0ZXJQYXJzZXI6OnN0YXR1c1N0cmlu
ZyhzdGF0dXMpLmNoYXJhY3RlcnMoKSk7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBDb250
ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkUmVnZXg7CiAgICAgICAgICAgICAgICAgfQog
ICAgICAgICAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY29udGVu
dGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvblBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9j
b250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uUGFyc2VyLmNwcAppbmRleCA1MTNmZDkz
OWU2NmRiNWNhMjUxMjlmNTc2Yjk4MmI0ZjhjOTgyNGUxLi43NDQxNjVmMGI1MjAxNWNjZWZkNzdm
Njg3Y2U1M2NjMDVjMWIxNTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0
ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
b250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uUGFyc2VyLmNwcApAQCAtOTMsNyArOTMs
NyBAQCBzdGF0aWMgRXhwZWN0ZWQ8VmVjdG9yPFN0cmluZz4sIHN0ZDo6ZXJyb3JfY29kZT4gZ2V0
RG9tYWluTGlzdChjb25zdCBKU09OOjpBcnJheQogICAgICAgICAgICAgeyAnJCcsICJcXCQiIH0K
ICAgICAgICAgfSB9OwogICAgICAgICBmb3IgKGF1dG8mIHBhaXIgOiBlc2NhcGVUYWJsZSkKLSAg
ICAgICAgICAgIGRvbWFpbiA9IGRvbWFpbi5yZXBsYWNlKHBhaXIuZmlyc3QsIHBhaXIuc2Vjb25k
KTsKKyAgICAgICAgICAgIGRvbWFpbiA9IGRvbWFpbi5yZXBsYWNlKHBhaXIuZmlyc3QsIFN0cmlu
ZyB7IHBhaXIuc2Vjb25kIH0pOwogCiAgICAgICAgIGNvbnN0IGNoYXIqIHByb3RvY29sUmVnZXgg
PSAiW2Etel1bYS16Ky4tXSo6XFwvXFwvIjsKICAgICAgICAgY29uc3QgY2hhciogYWxsb3dTdWJk
b21haW5zUmVnZXggPSAiKC4qXFwuKSoiOwpAQCAtMTE5LDI3ICsxMTksMjcgQEAgc3RhdGljIHN0
ZDo6ZXJyb3JfY29kZSBnZXRUeXBlRmxhZ3MoY29uc3QgSlNPTjo6QXJyYXkmIGFycmF5LCBSZXNv
dXJjZUZsYWdzJiBmbGEKICAgICAKIHN0YXRpYyBFeHBlY3RlZDxUcmlnZ2VyLCBzdGQ6OmVycm9y
X2NvZGU+IGxvYWRUcmlnZ2VyKGNvbnN0IEpTT046Ok9iamVjdCYgcnVsZU9iamVjdCkKIHsKLSAg
ICBhdXRvIHRyaWdnZXJPYmplY3QgPSBydWxlT2JqZWN0LmdldE9iamVjdCgidHJpZ2dlciIpOwor
ICAgIGF1dG8gdHJpZ2dlck9iamVjdCA9IHJ1bGVPYmplY3QuZ2V0T2JqZWN0KCJ0cmlnZ2VyIl9z
KTsKICAgICBpZiAoIXRyaWdnZXJPYmplY3QpCiAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3Rl
ZChDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkVHJpZ2dlcik7CiAKLSAgICBTdHJp
bmcgdXJsRmlsdGVyID0gdHJpZ2dlck9iamVjdC0+Z2V0U3RyaW5nKCJ1cmwtZmlsdGVyIik7Cisg
ICAgU3RyaW5nIHVybEZpbHRlciA9IHRyaWdnZXJPYmplY3QtPmdldFN0cmluZygidXJsLWZpbHRl
ciJfcyk7CiAgICAgaWYgKHVybEZpbHRlci5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBtYWtl
VW5leHBlY3RlZChDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkVVJMRmlsdGVySW5U
cmlnZ2VyKTsKIAogICAgIFRyaWdnZXIgdHJpZ2dlcjsKICAgICB0cmlnZ2VyLnVybEZpbHRlciA9
IHVybEZpbHRlcjsKIAotICAgIGlmIChzdGQ6Om9wdGlvbmFsPGJvb2w+IHVybEZpbHRlckNhc2VT
ZW5zaXRpdmVWYWx1ZSA9IHRyaWdnZXJPYmplY3QtPmdldEJvb2xlYW4oInVybC1maWx0ZXItaXMt
Y2FzZS1zZW5zaXRpdmUiKSkKKyAgICBpZiAoc3RkOjpvcHRpb25hbDxib29sPiB1cmxGaWx0ZXJD
YXNlU2Vuc2l0aXZlVmFsdWUgPSB0cmlnZ2VyT2JqZWN0LT5nZXRCb29sZWFuKCJ1cmwtZmlsdGVy
LWlzLWNhc2Utc2Vuc2l0aXZlIl9zKSkKICAgICAgICAgdHJpZ2dlci51cmxGaWx0ZXJJc0Nhc2VT
ZW5zaXRpdmUgPSAqdXJsRmlsdGVyQ2FzZVNlbnNpdGl2ZVZhbHVlOwogCi0gICAgaWYgKHN0ZDo6
b3B0aW9uYWw8Ym9vbD4gdG9wVVJMRmlsdGVyQ2FzZVNlbnNpdGl2ZVZhbHVlID0gdHJpZ2dlck9i
amVjdC0+Z2V0Qm9vbGVhbigidG9wLXVybC1maWx0ZXItaXMtY2FzZS1zZW5zaXRpdmUiKSkKKyAg
ICBpZiAoc3RkOjpvcHRpb25hbDxib29sPiB0b3BVUkxGaWx0ZXJDYXNlU2Vuc2l0aXZlVmFsdWUg
PSB0cmlnZ2VyT2JqZWN0LT5nZXRCb29sZWFuKCJ0b3AtdXJsLWZpbHRlci1pcy1jYXNlLXNlbnNp
dGl2ZSJfcykpCiAgICAgICAgIHRyaWdnZXIudG9wVVJMRmlsdGVySXNDYXNlU2Vuc2l0aXZlID0g
KnRvcFVSTEZpbHRlckNhc2VTZW5zaXRpdmVWYWx1ZTsKIAotICAgIGlmIChzdGQ6Om9wdGlvbmFs
PGJvb2w+IGZyYW1lVVJMRmlsdGVyQ2FzZVNlbnNpdGl2ZVZhbHVlID0gdHJpZ2dlck9iamVjdC0+
Z2V0Qm9vbGVhbigiZnJhbWUtdXJsLWZpbHRlci1pcy1jYXNlLXNlbnNpdGl2ZSIpKQorICAgIGlm
IChzdGQ6Om9wdGlvbmFsPGJvb2w+IGZyYW1lVVJMRmlsdGVyQ2FzZVNlbnNpdGl2ZVZhbHVlID0g
dHJpZ2dlck9iamVjdC0+Z2V0Qm9vbGVhbigiZnJhbWUtdXJsLWZpbHRlci1pcy1jYXNlLXNlbnNp
dGl2ZSJfcykpCiAgICAgICAgIHRyaWdnZXIuZnJhbWVVUkxGaWx0ZXJJc0Nhc2VTZW5zaXRpdmUg
PSAqZnJhbWVVUkxGaWx0ZXJDYXNlU2Vuc2l0aXZlVmFsdWU7CiAKLSAgICBpZiAoYXV0byByZXNv
dXJjZVR5cGVWYWx1ZSA9IHRyaWdnZXJPYmplY3QtPmdldFZhbHVlKCJyZXNvdXJjZS10eXBlIikp
IHsKKyAgICBpZiAoYXV0byByZXNvdXJjZVR5cGVWYWx1ZSA9IHRyaWdnZXJPYmplY3QtPmdldFZh
bHVlKCJyZXNvdXJjZS10eXBlIl9zKSkgewogICAgICAgICBhdXRvIHJlc291cmNlVHlwZUFycmF5
ID0gcmVzb3VyY2VUeXBlVmFsdWUtPmFzQXJyYXkoKTsKICAgICAgICAgaWYgKCFyZXNvdXJjZVR5
cGVBcnJheSkKICAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50RXh0ZW5z
aW9uRXJyb3I6OkpTT05JbnZhbGlkVHJpZ2dlckZsYWdzQXJyYXkpOwpAQCAtMTQ3LDcgKzE0Nyw3
IEBAIHN0YXRpYyBFeHBlY3RlZDxUcmlnZ2VyLCBzdGQ6OmVycm9yX2NvZGU+IGxvYWRUcmlnZ2Vy
KGNvbnN0IEpTT046Ok9iamVjdCYgcnVsZU9iCiAgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhw
ZWN0ZWQoZXJyb3IpOwogICAgIH0KIAotICAgIGlmIChhdXRvIGxvYWRUeXBlVmFsdWUgPSB0cmln
Z2VyT2JqZWN0LT5nZXRWYWx1ZSgibG9hZC10eXBlIikpIHsKKyAgICBpZiAoYXV0byBsb2FkVHlw
ZVZhbHVlID0gdHJpZ2dlck9iamVjdC0+Z2V0VmFsdWUoImxvYWQtdHlwZSJfcykpIHsKICAgICAg
ICAgYXV0byBsb2FkVHlwZUFycmF5ID0gbG9hZFR5cGVWYWx1ZS0+YXNBcnJheSgpOwogICAgICAg
ICBpZiAoIWxvYWRUeXBlQXJyYXkpCiAgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQo
Q29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZFRyaWdnZXJGbGFnc0FycmF5KTsKQEAg
LTE1NSw3ICsxNTUsNyBAQCBzdGF0aWMgRXhwZWN0ZWQ8VHJpZ2dlciwgc3RkOjplcnJvcl9jb2Rl
PiBsb2FkVHJpZ2dlcihjb25zdCBKU09OOjpPYmplY3QmIHJ1bGVPYgogICAgICAgICAgICAgcmV0
dXJuIG1ha2VVbmV4cGVjdGVkKGVycm9yKTsKICAgICB9CiAKLSAgICBpZiAoYXV0byBsb2FkQ29u
dGV4dFZhbHVlID0gdHJpZ2dlck9iamVjdC0+Z2V0VmFsdWUoImxvYWQtY29udGV4dCIpKSB7Cisg
ICAgaWYgKGF1dG8gbG9hZENvbnRleHRWYWx1ZSA9IHRyaWdnZXJPYmplY3QtPmdldFZhbHVlKCJs
b2FkLWNvbnRleHQiX3MpKSB7CiAgICAgICAgIGF1dG8gbG9hZENvbnRleHRBcnJheSA9IGxvYWRD
b250ZXh0VmFsdWUtPmFzQXJyYXkoKTsKICAgICAgICAgaWYgKCFsb2FkQ29udGV4dEFycmF5KQog
ICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKENvbnRlbnRFeHRlbnNpb25FcnJvcjo6
SlNPTkludmFsaWRUcmlnZ2VyRmxhZ3NBcnJheSk7CkBAIC0yMTIsMTEgKzIxMiwxMSBAQCBib29s
IGlzVmFsaWRDU1NTZWxlY3Rvcihjb25zdCBTdHJpbmcmIHNlbGVjdG9yKQogCiBzdGF0aWMgc3Rk
OjpvcHRpb25hbDxFeHBlY3RlZDxBY3Rpb24sIHN0ZDo6ZXJyb3JfY29kZT4+IGxvYWRBY3Rpb24o
Y29uc3QgSlNPTjo6T2JqZWN0JiBydWxlT2JqZWN0LCBjb25zdCBTdHJpbmcmIHVybEZpbHRlcikK
IHsKLSAgICBhdXRvIGFjdGlvbk9iamVjdCA9IHJ1bGVPYmplY3QuZ2V0T2JqZWN0KCJhY3Rpb24i
KTsKKyAgICBhdXRvIGFjdGlvbk9iamVjdCA9IHJ1bGVPYmplY3QuZ2V0T2JqZWN0KCJhY3Rpb24i
X3MpOwogICAgIGlmICghYWN0aW9uT2JqZWN0KQogICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0
ZWQoQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZEFjdGlvbik7CiAKLSAgICBTdHJp
bmcgYWN0aW9uVHlwZSA9IGFjdGlvbk9iamVjdC0+Z2V0U3RyaW5nKCJ0eXBlIik7CisgICAgU3Ry
aW5nIGFjdGlvblR5cGUgPSBhY3Rpb25PYmplY3QtPmdldFN0cmluZygidHlwZSJfcyk7CiAKICAg
ICBpZiAoYWN0aW9uVHlwZSA9PSAiYmxvY2siKQogICAgICAgICByZXR1cm4gQWN0aW9uIHsgQmxv
Y2tMb2FkQWN0aW9uKCkgfTsKQEAgLTIyNSw3ICsyMjUsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25h
bDxFeHBlY3RlZDxBY3Rpb24sIHN0ZDo6ZXJyb3JfY29kZT4+IGxvYWRBY3Rpb24oY29uc3QgSlNP
Tjo6TwogICAgIGlmIChhY3Rpb25UeXBlID09ICJibG9jay1jb29raWVzIikKICAgICAgICAgcmV0
dXJuIEFjdGlvbiB7IEJsb2NrQ29va2llc0FjdGlvbigpIH07CiAgICAgaWYgKGFjdGlvblR5cGUg
PT0gImNzcy1kaXNwbGF5LW5vbmUiKSB7Ci0gICAgICAgIFN0cmluZyBzZWxlY3RvclN0cmluZyA9
IGFjdGlvbk9iamVjdC0+Z2V0U3RyaW5nKCJzZWxlY3RvciIpOworICAgICAgICBTdHJpbmcgc2Vs
ZWN0b3JTdHJpbmcgPSBhY3Rpb25PYmplY3QtPmdldFN0cmluZygic2VsZWN0b3IiX3MpOwogICAg
ICAgICBpZiAoIXNlbGVjdG9yU3RyaW5nKQogICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVj
dGVkKENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWRDU1NEaXNwbGF5Tm9uZUFjdGlv
blR5cGUpOwogICAgICAgICBpZiAoIWlzVmFsaWRDU1NTZWxlY3RvcihzZWxlY3RvclN0cmluZykp
CkBAIC0yMzUsNyArMjM1LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8RXhwZWN0ZWQ8QWN0aW9u
LCBzdGQ6OmVycm9yX2NvZGU+PiBsb2FkQWN0aW9uKGNvbnN0IEpTT046Ok8KICAgICBpZiAoYWN0
aW9uVHlwZSA9PSAibWFrZS1odHRwcyIpCiAgICAgICAgIHJldHVybiBBY3Rpb24geyBNYWtlSFRU
UFNBY3Rpb24oKSB9OwogICAgIGlmIChhY3Rpb25UeXBlID09ICJub3RpZnkiKSB7Ci0gICAgICAg
IFN0cmluZyBub3RpZmljYXRpb24gPSBhY3Rpb25PYmplY3QtPmdldFN0cmluZygibm90aWZpY2F0
aW9uIik7CisgICAgICAgIFN0cmluZyBub3RpZmljYXRpb24gPSBhY3Rpb25PYmplY3QtPmdldFN0
cmluZygibm90aWZpY2F0aW9uIl9zKTsKICAgICAgICAgaWYgKCFub3RpZmljYXRpb24pCiAgICAg
ICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09O
SW52YWxpZE5vdGlmaWNhdGlvbik7CiAgICAgICAgIHJldHVybiBBY3Rpb24geyBOb3RpZnlBY3Rp
b24geyB7IFdURk1vdmUobm90aWZpY2F0aW9uKSB9IH0gfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL1NlcmlhbGl6ZWRORkEuY3BwIGIvU291cmNlL1dlYkNv
cmUvY29udGVudGV4dGVuc2lvbnMvU2VyaWFsaXplZE5GQS5jcHAKaW5kZXggMDRjNmRhNWE4NDhk
MDg5MWYzM2Y0ZjgzOWRhOTUyYjhjNzY3OWEwOS4uMDUyYjU5N2JjZmI5MmE3NDM3OTNmOTE1ZWQ2
OTZlN2EwZTllNDhmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lv
bnMvU2VyaWFsaXplZE5GQS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lv
bnMvU2VyaWFsaXplZE5GQS5jcHAKQEAgLTUyLDcgKzUyLDcgQEAgYm9vbCB3cml0ZUFsbFRvRmls
ZShGaWxlU3lzdGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGUgZmlsZSwgY29uc3QgVCYgY29udGFpbmVy
KQogc3RkOjpvcHRpb25hbDxTZXJpYWxpemVkTkZBPiBTZXJpYWxpemVkTkZBOjpzZXJpYWxpemUo
TkZBJiYgbmZhKQogewogICAgIGF1dG8gZmlsZSA9IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9y
bUZpbGVIYW5kbGU7Ci0gICAgYXV0byBmaWxlbmFtZSA9IEZpbGVTeXN0ZW06Om9wZW5UZW1wb3Jh
cnlGaWxlKCJTZXJpYWxpemVkTkZBIiwgZmlsZSk7CisgICAgYXV0byBmaWxlbmFtZSA9IEZpbGVT
eXN0ZW06Om9wZW5UZW1wb3JhcnlGaWxlKCJTZXJpYWxpemVkTkZBIl9zLCBmaWxlKTsKICAgICBp
ZiAoIUZpbGVTeXN0ZW06OmlzSGFuZGxlVmFsaWQoZmlsZSkpCiAgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25z
L1VSTEZpbHRlclBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9V
UkxGaWx0ZXJQYXJzZXIuY3BwCmluZGV4IGQ4NzI5ZDM5MGQ5MDczMGEwZWI3ZGIzYThjOWYxNzE4
Yzg2ZjdhM2EuLjRmZjEyMjVmYWE4MjI4NWIzMWNlZDU3NTlkYjg5Nzc2OTE4OWU3NGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL1VSTEZpbHRlclBhcnNlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvVVJMRmlsdGVyUGFyc2Vy
LmNwcApAQCAtMzY5LDM5ICszNjksMzkgQEAgVVJMRmlsdGVyUGFyc2VyOjpQYXJzZVN0YXR1cyBV
UkxGaWx0ZXJQYXJzZXI6OmFkZFBhdHRlcm4oY29uc3QgU3RyaW5nJiBwYXR0ZXJuLAogICAgIHJl
dHVybiBzdGF0dXM7CiB9CiAKLVN0cmluZyBVUkxGaWx0ZXJQYXJzZXI6OnN0YXR1c1N0cmluZyhQ
YXJzZVN0YXR1cyBzdGF0dXMpCitBU0NJSUxpdGVyYWwgVVJMRmlsdGVyUGFyc2VyOjpzdGF0dXNT
dHJpbmcoUGFyc2VTdGF0dXMgc3RhdHVzKQogewogICAgIHN3aXRjaCAoc3RhdHVzKSB7CiAgICAg
Y2FzZSBPazoKLSAgICAgICAgcmV0dXJuICJPayI7CisgICAgICAgIHJldHVybiAiT2siX3M7CiAg
ICAgY2FzZSBNYXRjaGVzRXZlcnl0aGluZzoKLSAgICAgICAgcmV0dXJuICJNYXRjaGVzIGV2ZXJ5
dGhpbmcuIjsKKyAgICAgICAgcmV0dXJuICJNYXRjaGVzIGV2ZXJ5dGhpbmcuIl9zOwogICAgIGNh
c2UgTm9uQVNDSUk6Ci0gICAgICAgIHJldHVybiAiT25seSBBU0NJSSBjaGFyYWN0ZXJzIGFyZSBz
dXBwb3J0ZWQgaW4gcGF0dGVybi4iOworICAgICAgICByZXR1cm4gIk9ubHkgQVNDSUkgY2hhcmFj
dGVycyBhcmUgc3VwcG9ydGVkIGluIHBhdHRlcm4uIl9zOwogICAgIGNhc2UgVW5zdXBwb3J0ZWRD
aGFyYWN0ZXJDbGFzczoKLSAgICAgICAgcmV0dXJuICJDaGFyYWN0ZXIgY2xhc3MgaXMgbm90IHN1
cHBvcnRlZC4iOworICAgICAgICByZXR1cm4gIkNoYXJhY3RlciBjbGFzcyBpcyBub3Qgc3VwcG9y
dGVkLiJfczsKICAgICBjYXNlIEJhY2tSZWZlcmVuY2U6Ci0gICAgICAgIHJldHVybiAiUGF0dGVy
bnMgY2Fubm90IGNvbnRhaW4gYmFja3JlZmVyZW5jZXMuIjsKKyAgICAgICAgcmV0dXJuICJQYXR0
ZXJucyBjYW5ub3QgY29udGFpbiBiYWNrcmVmZXJlbmNlcy4iX3M7CiAgICAgY2FzZSBGb3J3YXJk
UmVmZXJlbmNlOgotICAgICAgICByZXR1cm4gIlBhdHRlcm5zIGNhbm5vdCBjb250YWluIGZvcndh
cmQgcmVmZXJlbmNlcy4iOworICAgICAgICByZXR1cm4gIlBhdHRlcm5zIGNhbm5vdCBjb250YWlu
IGZvcndhcmQgcmVmZXJlbmNlcy4iX3M7CiAgICAgY2FzZSBNaXNwbGFjZWRTdGFydE9mTGluZToK
LSAgICAgICAgcmV0dXJuICJTdGFydCBvZiBsaW5lIGFzc2VydGlvbiBjYW4gb25seSBhcHBlYXIg
YXMgdGhlIGZpcnN0IHRlcm0gaW4gYSBmaWx0ZXIuIjsKKyAgICAgICAgcmV0dXJuICJTdGFydCBv
ZiBsaW5lIGFzc2VydGlvbiBjYW4gb25seSBhcHBlYXIgYXMgdGhlIGZpcnN0IHRlcm0gaW4gYSBm
aWx0ZXIuIl9zOwogICAgIGNhc2UgV29yZEJvdW5kYXJ5OgotICAgICAgICByZXR1cm4gIldvcmQg
Ym91bmRhcmllcyBhc3NlcnRpb25zIGFyZSBub3Qgc3VwcG9ydGVkIHlldC4iOworICAgICAgICBy
ZXR1cm4gIldvcmQgYm91bmRhcmllcyBhc3NlcnRpb25zIGFyZSBub3Qgc3VwcG9ydGVkIHlldC4i
X3M7CiAgICAgY2FzZSBBdG9tQ2hhcmFjdGVyOgotICAgICAgICByZXR1cm4gIkJ1aWx0aW5zIGNo
YXJhY3RlciBjbGFzcyBhdG9tcyBhcmUgbm90IHN1cHBvcnRlZCB5ZXQuIjsKKyAgICAgICAgcmV0
dXJuICJCdWlsdGlucyBjaGFyYWN0ZXIgY2xhc3MgYXRvbXMgYXJlIG5vdCBzdXBwb3J0ZWQgeWV0
LiJfczsKICAgICBjYXNlIEdyb3VwOgotICAgICAgICByZXR1cm4gIkdyb3VwcyBhcmUgbm90IHN1
cHBvcnRlZCB5ZXQuIjsKKyAgICAgICAgcmV0dXJuICJHcm91cHMgYXJlIG5vdCBzdXBwb3J0ZWQg
eWV0LiJfczsKICAgICBjYXNlIERpc2p1bmN0aW9uOgotICAgICAgICByZXR1cm4gIkRpc2p1bmN0
aW9ucyBhcmUgbm90IHN1cHBvcnRlZCB5ZXQuIjsKKyAgICAgICAgcmV0dXJuICJEaXNqdW5jdGlv
bnMgYXJlIG5vdCBzdXBwb3J0ZWQgeWV0LiJfczsKICAgICBjYXNlIE1pc3BsYWNlZEVuZE9mTGlu
ZToKLSAgICAgICAgcmV0dXJuICJUaGUgZW5kIG9mIGxpbmUgYXNzZXJ0aW9uIG11c3QgYmUgdGhl
IGxhc3QgdGVybSBpbiBhbiBleHByZXNzaW9uLiI7CisgICAgICAgIHJldHVybiAiVGhlIGVuZCBv
ZiBsaW5lIGFzc2VydGlvbiBtdXN0IGJlIHRoZSBsYXN0IHRlcm0gaW4gYW4gZXhwcmVzc2lvbi4i
X3M7CiAgICAgY2FzZSBFbXB0eVBhdHRlcm46Ci0gICAgICAgIHJldHVybiAiRW1wdHkgcGF0dGVy
bi4iOworICAgICAgICByZXR1cm4gIkVtcHR5IHBhdHRlcm4uIl9zOwogICAgIGNhc2UgWWFyckVy
cm9yOgotICAgICAgICByZXR1cm4gIkludGVybmFsIGVycm9yIGluIFlBUlIuIjsKKyAgICAgICAg
cmV0dXJuICJJbnRlcm5hbCBlcnJvciBpbiBZQVJSLiJfczsKICAgICBjYXNlIEludmFsaWRRdWFu
dGlmaWVyOgotICAgICAgICByZXR1cm4gIkFyYml0cmFyeSBhdG9tIHJlcGV0aXRpb25zIGFyZSBu
b3Qgc3VwcG9ydGVkLiI7CisgICAgICAgIHJldHVybiAiQXJiaXRyYXJ5IGF0b20gcmVwZXRpdGlv
bnMgYXJlIG5vdCBzdXBwb3J0ZWQuIl9zOwogICAgIH0KIAogICAgIFJFTEVBU0VfQVNTRVJUX05P
VF9SRUFDSEVEKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9u
cy9VUkxGaWx0ZXJQYXJzZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL1VS
TEZpbHRlclBhcnNlci5oCmluZGV4IGI1YzFmNmQ5ZmQyZTdjOTRjYjI1NjU3NTY4OWRmNGI3MDcw
NzlhOWQuLjg4OTgzYjU1YzNjYmVkNTlmNGE0YTAxYWVkMjVhNDMyYzgwMjhiNDEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL1VSTEZpbHRlclBhcnNlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL1VSTEZpbHRlclBhcnNlci5oCkBA
IC01NCw3ICs1NCw3IEBAIHB1YmxpYzoKICAgICAgICAgWWFyckVycm9yLAogICAgICAgICBJbnZh
bGlkUXVhbnRpZmllciwKICAgICB9OwotICAgIHN0YXRpYyBTdHJpbmcgc3RhdHVzU3RyaW5nKFBh
cnNlU3RhdHVzKTsKKyAgICBzdGF0aWMgQVNDSUlMaXRlcmFsIHN0YXR1c1N0cmluZyhQYXJzZVN0
YXR1cyk7CiAgICAgZXhwbGljaXQgVVJMRmlsdGVyUGFyc2VyKENvbWJpbmVkVVJMRmlsdGVycyYp
OwogICAgIH5VUkxGaWx0ZXJQYXJzZXIoKTsKICAgICBQYXJzZVN0YXR1cyBhZGRQYXR0ZXJuKGNv
bnN0IFN0cmluZyYgcGF0dGVybiwgYm9vbCBwYXR0ZXJuSXNDYXNlU2Vuc2l0aXZlLCB1aW50NjRf
dCBwYXR0ZXJuSWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL1N1YnRsZUNy
eXB0by5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vU3VidGxlQ3J5cHRvLmNwcAppbmRleCBl
YWEzMjE4ZmNmN2I3Nzg1NGZiMjM4NWU1MDFhOTk5NDM2ZmJlYjU4Li45ZDZmNDMwMzY1OTgyZDZl
OTUwZTljMWE2YTFkNmIyYzFhN2QzOTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlw
dG8vU3VidGxlQ3J5cHRvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vU3VidGxlQ3J5
cHRvLmNwcApAQCAtNTM0LDcgKzUzNCw3IEBAIHZvaWQgU3VidGxlQ3J5cHRvOjphZGRBdXRoZW50
aWNhdGVkRW5jcnlwdGlvbldhcm5pbmdJZk5lY2Vzc2FyeShDcnlwdG9BbGdvcml0aG1JCiB7CiAg
ICAgaWYgKGFsZ29yaXRobUlkZW50aWZpZXIgPT0gQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6
QUVTX0NCQyB8fCBhbGdvcml0aG1JZGVudGlmaWVyID09IENyeXB0b0FsZ29yaXRobUlkZW50aWZp
ZXI6OkFFU19DVFIpIHsKICAgICAgICAgaWYgKCFzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmhh
c0xvZ2dlZEF1dGhlbnRpY2F0ZWRFbmNyeXB0aW9uV2FybmluZygpKSB7Ci0gICAgICAgICAgICBz
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6
OlNlY3VyaXR5LCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsICJBRVMtQ0JDIGFuZCBBRVMtQ1RSIGRv
IG5vdCBwcm92aWRlIGF1dGhlbnRpY2F0aW9uIGJ5IGRlZmF1bHQsIGFuZCBpbXBsZW1lbnRpbmcg
aXQgbWFudWFsbHkgY2FuIHJlc3VsdCBpbiBtaW5vciwgYnV0IHNlcmlvdXMgbWlzdGFrZXMuIFdl
IHJlY29tbWVuZGVkIHVzaW5nIGF1dGhlbnRpY2F0ZWQgZW5jcnlwdGlvbiBsaWtlIEFFUy1HQ00g
dG8gcHJvdGVjdCBhZ2FpbnN0IGNob3Nlbi1jaXBoZXJ0ZXh0IGF0dGFja3MuIik7CisgICAgICAg
ICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VT
b3VyY2U6OlNlY3VyaXR5LCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsICJBRVMtQ0JDIGFuZCBBRVMt
Q1RSIGRvIG5vdCBwcm92aWRlIGF1dGhlbnRpY2F0aW9uIGJ5IGRlZmF1bHQsIGFuZCBpbXBsZW1l
bnRpbmcgaXQgbWFudWFsbHkgY2FuIHJlc3VsdCBpbiBtaW5vciwgYnV0IHNlcmlvdXMgbWlzdGFr
ZXMuIFdlIHJlY29tbWVuZGVkIHVzaW5nIGF1dGhlbnRpY2F0ZWQgZW5jcnlwdGlvbiBsaWtlIEFF
Uy1HQ00gdG8gcHJvdGVjdCBhZ2FpbnN0IGNob3Nlbi1jaXBoZXJ0ZXh0IGF0dGFja3MuIl9zKTsK
ICAgICAgICAgICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+c2V0SGFzTG9nZ2VkQXV0aGVu
dGljYXRlZEVuY3J5cHRpb25XYXJuaW5nKHRydWUpOwogICAgICAgICB9CiAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVT
X0NCQy5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGht
QUVTX0NCQy5oCmluZGV4IDI3MzI5ODViNzdmZWRmYzM5Njc0ZDQ3NDlkODk1NTBhMGExNzFjMjYu
LmI3NDQzYTczMzk4NDIwODhmODNjY2M2ZjM1Y2EyOTc3MTYwOGNjZmEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DQkMuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNf
Q0JDLmgKQEAgLTQxLDcgKzQxLDcgQEAgcHVibGljOgogICAgICAgICBObwogICAgIH07CiAKLSAg
ICBzdGF0aWMgY29uc3RleHByIGNvbnN0IGNoYXIqIHNfbmFtZSA9ICJBRVMtQ0JDIjsKKyAgICBz
dGF0aWMgY29uc3RleHByIEFTQ0lJTGl0ZXJhbCBzX25hbWUgPSAiQUVTLUNCQyJfczsKICAgICBz
dGF0aWMgY29uc3RleHByIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgc19pZGVudGlmaWVyID0g
Q3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6QUVTX0NCQzsKICAgICBzdGF0aWMgUmVmPENyeXB0
b0FsZ29yaXRobT4gY3JlYXRlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0
by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DRkIuaCBiL1NvdXJjZS9XZWJDb3JlL2Ny
eXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DRkIuaAppbmRleCBjMjI3NDE5MWY2
MzViODMzYTQ5MWU4MmNiMWRlN2RhODEwM2M2ZDlhLi41MDhhMjAzMzY0YWNiYWNmYzBmZmM4NTcy
NzUyNzllZjU0NmNmYzg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3Jp
dGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfQ0ZCLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRv
L2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NGQi5oCkBAIC0zNiw3ICszNiw3IEBAIGNs
YXNzIENyeXB0b0tleUFFUzsKIAogY2xhc3MgQ3J5cHRvQWxnb3JpdGhtQUVTX0NGQiBmaW5hbCA6
IHB1YmxpYyBDcnlwdG9BbGdvcml0aG0gewogcHVibGljOgotICAgIHN0YXRpYyBjb25zdGV4cHIg
Y29uc3QgY2hhciogc19uYW1lID0gIkFFUy1DRkItOCI7CisgICAgc3RhdGljIGNvbnN0ZXhwciBB
U0NJSUxpdGVyYWwgc19uYW1lID0gIkFFUy1DRkItOCJfczsKICAgICBzdGF0aWMgY29uc3RleHBy
IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgc19pZGVudGlmaWVyID0gQ3J5cHRvQWxnb3JpdGht
SWRlbnRpZmllcjo6QUVTX0NGQjsKICAgICBzdGF0aWMgUmVmPENyeXB0b0FsZ29yaXRobT4gY3Jl
YXRlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0Ny
eXB0b0FsZ29yaXRobUFFU19DVFIuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1z
L0NyeXB0b0FsZ29yaXRobUFFU19DVFIuaAppbmRleCA3MThmNmUwZTMzODZlNmZlNjI1Mzk1YWZi
Yjc5YWQzMGM0ZmE0MTRhLi44YmQzOTMzOWRjMzYwMGY2YzQ4NmVhNjEwYzFiODI0NmI4YzIyNzAy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdv
cml0aG1BRVNfQ1RSLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5
cHRvQWxnb3JpdGhtQUVTX0NUUi5oCkBAIC02NCw3ICs2NCw3IEBAIHB1YmxpYzoKICAgICAgICAg
Y29uc3Qgc2l6ZV90IG1fY291bnRlckxlbmd0aDsKICAgICB9OwogCi0gICAgc3RhdGljIGNvbnN0
ZXhwciBjb25zdCBjaGFyKiBzX25hbWUgPSAiQUVTLUNUUiI7CisgICAgc3RhdGljIGNvbnN0ZXhw
ciBBU0NJSUxpdGVyYWwgc19uYW1lID0gIkFFUy1DVFIiX3M7CiAgICAgc3RhdGljIGNvbnN0ZXhw
ciBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIHNfaWRlbnRpZmllciA9IENyeXB0b0FsZ29yaXRo
bUlkZW50aWZpZXI6OkFFU19DVFI7CiAgICAgc3RhdGljIFJlZjxDcnlwdG9BbGdvcml0aG0+IGNy
ZWF0ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9D
cnlwdG9BbGdvcml0aG1BRVNfR0NNLmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGht
cy9DcnlwdG9BbGdvcml0aG1BRVNfR0NNLmgKaW5kZXggZDBhZDFmMTNjMTc4YjVjYzliMTc2ZWIz
MGU2Y2VjMmExYmNiNDY1OC4uNTMzMTBlMTExMDc1ZTE2MzRlZjNlMDU3YjRhZGY2YTEzYzY5MjMx
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxn
b3JpdGhtQUVTX0dDTS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0Ny
eXB0b0FsZ29yaXRobUFFU19HQ00uaApAQCAtMzYsNyArMzYsNyBAQCBjbGFzcyBDcnlwdG9LZXlB
RVM7CiAKIGNsYXNzIENyeXB0b0FsZ29yaXRobUFFU19HQ00gZmluYWwgOiBwdWJsaWMgQ3J5cHRv
QWxnb3JpdGhtIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3RleHByIGNvbnN0IGNoYXIqIHNf
bmFtZSA9ICJBRVMtR0NNIjsKKyAgICBzdGF0aWMgY29uc3RleHByIEFTQ0lJTGl0ZXJhbCBzX25h
bWUgPSAiQUVTLUdDTSJfczsKICAgICBzdGF0aWMgY29uc3RleHByIENyeXB0b0FsZ29yaXRobUlk
ZW50aWZpZXIgc19pZGVudGlmaWVyID0gQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6QUVTX0dD
TTsKICAgICBzdGF0aWMgUmVmPENyeXB0b0FsZ29yaXRobT4gY3JlYXRlKCk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19L
Vy5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVT
X0tXLmgKaW5kZXggNTdlNjljMTVjMTJjN2VlMThlYjc2NTE4ZGZmODdiZjRiNTcyNGI5OS4uYTA4
ZGVjM2YyNmNiYjU5OTE1NGEyMzU2NTkwZWYwZmQxNzdjNjNkYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0tXLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0tXLmgK
QEAgLTM1LDcgKzM1LDcgQEAgY2xhc3MgQ3J5cHRvS2V5QUVTOwogCiBjbGFzcyBDcnlwdG9BbGdv
cml0aG1BRVNfS1cgZmluYWwgOiBwdWJsaWMgQ3J5cHRvQWxnb3JpdGhtIHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgY29uc3RleHByIGNvbnN0IGNoYXIqIHNfbmFtZSA9ICJBRVMtS1ciOworICAgIHN0
YXRpYyBjb25zdGV4cHIgQVNDSUlMaXRlcmFsIHNfbmFtZSA9ICJBRVMtS1ciX3M7CiAgICAgc3Rh
dGljIGNvbnN0ZXhwciBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIHNfaWRlbnRpZmllciA9IENy
eXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkFFU19LVzsKICAgICBzdGF0aWMgUmVmPENyeXB0b0Fs
Z29yaXRobT4gY3JlYXRlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9h
bGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUVDREguaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9h
bGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUVDREguaAppbmRleCA5M2ExNWEyZGEzNTFkY2U3Mjc0
MzM4MTk3ZDI2NjMxMDU4NWY3YmY1Li4zMmQ1NTQ1NmM5NzA4MjVjY2U1NTJkN2RlMDQzYTQyOTUw
ZDBlMjNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9Dcnlw
dG9BbGdvcml0aG1FQ0RILmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMv
Q3J5cHRvQWxnb3JpdGhtRUNESC5oCkBAIC0zNSw3ICszNSw3IEBAIGNsYXNzIENyeXB0b0tleUVD
OwogCiBjbGFzcyBDcnlwdG9BbGdvcml0aG1FQ0RIIGZpbmFsIDogcHVibGljIENyeXB0b0FsZ29y
aXRobSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBjb25zdCBjaGFyKiBzX25hbWUg
PSAiRUNESCI7CisgICAgc3RhdGljIGNvbnN0ZXhwciBBU0NJSUxpdGVyYWwgc19uYW1lID0gIkVD
REgiX3M7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIHNf
aWRlbnRpZmllciA9IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkVDREg7CiAgICAgc3RhdGlj
IFJlZjxDcnlwdG9BbGdvcml0aG0+IGNyZWF0ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1FQ0RTQS5oIGIvU291cmNlL1dl
YkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtRUNEU0EuaAppbmRleCAzYTU5
MWJkZmFmMjI4ODUwZGU4YzA4MmJmMjc3YTE5MDA2Mzg5ZTY2Li5iN2M3ODg5ZjhlMDMyMTM0YzNk
ZTAzYjdhYWJmNzVjNTJmODJiZDNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8v
YWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1FQ0RTQS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Ny
eXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUVDRFNBLmgKQEAgLTM2LDcgKzM2LDcgQEAg
Y2xhc3MgQ3J5cHRvS2V5RUM7CiAKIGNsYXNzIENyeXB0b0FsZ29yaXRobUVDRFNBIGZpbmFsIDog
cHVibGljIENyeXB0b0FsZ29yaXRobSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBj
b25zdCBjaGFyKiBzX25hbWUgPSAiRUNEU0EiOworICAgIHN0YXRpYyBjb25zdGV4cHIgQVNDSUlM
aXRlcmFsIHNfbmFtZSA9ICJFQ0RTQSJfczsKICAgICBzdGF0aWMgY29uc3RleHByIENyeXB0b0Fs
Z29yaXRobUlkZW50aWZpZXIgc19pZGVudGlmaWVyID0gQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmll
cjo6RUNEU0E7CiAgICAgc3RhdGljIFJlZjxDcnlwdG9BbGdvcml0aG0+IGNyZWF0ZSgpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0
aG1IS0RGLmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0
aG1IS0RGLmgKaW5kZXggMWRkY2Q5ZDFhMTQ2MzE2MDMyMWIxMTZhZTc0ZDlhMzZkOWNiMWQ2YS4u
OGYzOTM5YjE5YjRlYzkyODY3ODA3M2YyNzQ2YTk1YjBlZjNiMzVhMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtSEtERi5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUhLREYuaApA
QCAtMzYsNyArMzYsNyBAQCBjbGFzcyBDcnlwdG9LZXlSYXc7CiAKIGNsYXNzIENyeXB0b0FsZ29y
aXRobUhLREYgZmluYWwgOiBwdWJsaWMgQ3J5cHRvQWxnb3JpdGhtIHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgY29uc3RleHByIGNvbnN0IGNoYXIqIHNfbmFtZSA9ICJIS0RGIjsKKyAgICBzdGF0aWMg
Y29uc3RleHByIEFTQ0lJTGl0ZXJhbCBzX25hbWUgPSAiSEtERiJfczsKICAgICBzdGF0aWMgY29u
c3RleHByIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgc19pZGVudGlmaWVyID0gQ3J5cHRvQWxn
b3JpdGhtSWRlbnRpZmllcjo6SEtERjsKICAgICBzdGF0aWMgUmVmPENyeXB0b0FsZ29yaXRobT4g
Y3JlYXRlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1z
L0NyeXB0b0FsZ29yaXRobUhNQUMuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1z
L0NyeXB0b0FsZ29yaXRobUhNQUMuaAppbmRleCBmYThmMGFkZGNjZTEyOGYyNDcxNTE3M2ZhZmJm
YTkyNzMyNTI1MGQzLi45ZjEwODQ2OThhYjQzZjdlNWVkOTliYmNhZDg1ZjgxMWFhYmI1YzIzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0
aG1ITUFDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxn
b3JpdGhtSE1BQy5oCkBAIC0zNSw3ICszNSw3IEBAIGNsYXNzIENyeXB0b0tleUhNQUM7CiAKIGNs
YXNzIENyeXB0b0FsZ29yaXRobUhNQUMgZmluYWwgOiBwdWJsaWMgQ3J5cHRvQWxnb3JpdGhtIHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3RleHByIGNvbnN0IGNoYXIqIHNfbmFtZSA9ICJITUFD
IjsKKyAgICBzdGF0aWMgY29uc3RleHByIEFTQ0lJTGl0ZXJhbCBzX25hbWUgPSAiSE1BQyJfczsK
ICAgICBzdGF0aWMgY29uc3RleHByIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgc19pZGVudGlm
aWVyID0gQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6SE1BQzsKICAgICBzdGF0aWMgUmVmPENy
eXB0b0FsZ29yaXRobT4gY3JlYXRlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Ny
eXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVBCS0RGMi5oIGIvU291cmNlL1dlYkNvcmUv
Y3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUEJLREYyLmgKaW5kZXggYmQ5NzQ1Yzcw
MzU4ZTc4ZDUzYjQ4MGNjMjY2ZGM0NDk3NzhmYjg0Mi4uMzQwNjllNTFmYWFlNmEyMDcyMjI5ODI4
ZDE2ZDlhMzI5ZDVhOGJmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29y
aXRobXMvQ3J5cHRvQWxnb3JpdGhtUEJLREYyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRv
L2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUEJLREYyLmgKQEAgLTM2LDcgKzM2LDcgQEAgY2xh
c3MgQ3J5cHRvS2V5UmF3OwogCiBjbGFzcyBDcnlwdG9BbGdvcml0aG1QQktERjIgZmluYWwgOiBw
dWJsaWMgQ3J5cHRvQWxnb3JpdGhtIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3RleHByIGNv
bnN0IGNoYXIqIHNfbmFtZSA9ICJQQktERjIiOworICAgIHN0YXRpYyBjb25zdGV4cHIgQVNDSUlM
aXRlcmFsIHNfbmFtZSA9ICJQQktERjIiX3M7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBDcnlwdG9B
bGdvcml0aG1JZGVudGlmaWVyIHNfaWRlbnRpZmllciA9IENyeXB0b0FsZ29yaXRobUlkZW50aWZp
ZXI6OlBCS0RGMjsKICAgICBzdGF0aWMgUmVmPENyeXB0b0FsZ29yaXRobT4gY3JlYXRlKCk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29y
aXRobVJTQUVTX1BLQ1MxX3YxXzUuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1z
L0NyeXB0b0FsZ29yaXRobVJTQUVTX1BLQ1MxX3YxXzUuaAppbmRleCA4YjUxYjQxZTdjMGE1N2Y2
NjhmNTg0NzlmYTI5ZTYzOGU5ZTFhZDBiLi5kMjFlNmMxZWUyODZmN2RjNjM4NzVhOTg0YWIyM2U3
MDA0ZWUxODgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9D
cnlwdG9BbGdvcml0aG1SU0FFU19QS0NTMV92MV81LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5
cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBRVNfUEtDUzFfdjFfNS5oCkBAIC0zNSw3
ICszNSw3IEBAIGNsYXNzIENyeXB0b0tleVJTQTsKIAogY2xhc3MgQ3J5cHRvQWxnb3JpdGhtUlNB
RVNfUEtDUzFfdjFfNSBmaW5hbCA6IHB1YmxpYyBDcnlwdG9BbGdvcml0aG0gewogcHVibGljOgot
ICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3QgY2hhciogc19uYW1lID0gIlJTQUVTLVBLQ1MxLXYx
XzUiOworICAgIHN0YXRpYyBjb25zdGV4cHIgQVNDSUlMaXRlcmFsIHNfbmFtZSA9ICJSU0FFUy1Q
S0NTMS12MV81Il9zOwogICAgIHN0YXRpYyBjb25zdGV4cHIgQ3J5cHRvQWxnb3JpdGhtSWRlbnRp
ZmllciBzX2lkZW50aWZpZXIgPSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpSU0FFU19QS0NT
MV92MV81OwogICAgIHN0YXRpYyBSZWY8Q3J5cHRvQWxnb3JpdGhtPiBjcmVhdGUoKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGht
UlNBU1NBX1BLQ1MxX3YxXzUuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0Ny
eXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81LmgKaW5kZXggZDliN2I0NTA3MjNhZmNkYTk5
OTk1Y2I4ODNjZGEzOWNhZjMyOGRjZS4uZDE4NWQzYTRiZGEyZGEzN2NkYjBkZjI4ZjY4YTI3M2Rk
ZTk5Yjg2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5
cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlw
dG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNS5oCkBAIC0zNSw3
ICszNSw3IEBAIGNsYXNzIENyeXB0b0tleVJTQTsKIAogY2xhc3MgQ3J5cHRvQWxnb3JpdGhtUlNB
U1NBX1BLQ1MxX3YxXzUgZmluYWwgOiBwdWJsaWMgQ3J5cHRvQWxnb3JpdGhtIHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgY29uc3RleHByIGNvbnN0IGNoYXIqIHNfbmFtZSA9ICJSU0FTU0EtUEtDUzEt
djFfNSI7CisgICAgc3RhdGljIGNvbnN0ZXhwciBBU0NJSUxpdGVyYWwgc19uYW1lID0gIlJTQVNT
QS1QS0NTMS12MV81Il9zOwogICAgIHN0YXRpYyBjb25zdGV4cHIgQ3J5cHRvQWxnb3JpdGhtSWRl
bnRpZmllciBzX2lkZW50aWZpZXIgPSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpSU0FTU0Ff
UEtDUzFfdjFfNTsKICAgICBzdGF0aWMgUmVmPENyeXB0b0FsZ29yaXRobT4gY3JlYXRlKCk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29y
aXRobVJTQV9PQUVQLmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9B
bGdvcml0aG1SU0FfT0FFUC5oCmluZGV4IDA5NmFmM2NhMjMwNzk1OWYyNDU0ZWUzY2ZkMmIzZjBl
MjJiNDczZjIuLmRiYTdlYTlkNWQ3MjJlNDI3YTNiMGFhNGY5ZGNkMzJmZjQ0NTlmMmIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJT
QV9PQUVQLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxn
b3JpdGhtUlNBX09BRVAuaApAQCAtMzYsNyArMzYsNyBAQCBjbGFzcyBDcnlwdG9LZXlSU0E7CiAK
IGNsYXNzIENyeXB0b0FsZ29yaXRobVJTQV9PQUVQIGZpbmFsIDogcHVibGljIENyeXB0b0FsZ29y
aXRobSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBjb25zdCBjaGFyKiBzX25hbWUg
PSAiUlNBLU9BRVAiOworICAgIHN0YXRpYyBjb25zdGV4cHIgQVNDSUlMaXRlcmFsIHNfbmFtZSA9
ICJSU0EtT0FFUCJfczsKICAgICBzdGF0aWMgY29uc3RleHByIENyeXB0b0FsZ29yaXRobUlkZW50
aWZpZXIgc19pZGVudGlmaWVyID0gQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6UlNBX09BRVA7
CiAgICAgc3RhdGljIFJlZjxDcnlwdG9BbGdvcml0aG0+IGNyZWF0ZSgpOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FfUFNT
LmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0Ff
UFNTLmgKaW5kZXggNTg3OWE1NjdjY2NjN2IwYTFjOWFkNGQ5MTc4OWQ5ZDA1NGIwMDk3NC4uYjFm
N2Y3NzJjZTQyMjc4ZDRkOTRkNWMwYTc2Y2FlNWVkZjBlNDBlYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBX1BTUy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQV9QU1Mu
aApAQCAtMzYsNyArMzYsNyBAQCBjbGFzcyBDcnlwdG9LZXlSU0E7CiAKIGNsYXNzIENyeXB0b0Fs
Z29yaXRobVJTQV9QU1MgZmluYWwgOiBwdWJsaWMgQ3J5cHRvQWxnb3JpdGhtIHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgY29uc3RleHByIGNvbnN0IGNoYXIqIHNfbmFtZSA9ICJSU0EtUFNTIjsKKyAg
ICBzdGF0aWMgY29uc3RleHByIEFTQ0lJTGl0ZXJhbCBzX25hbWUgPSAiUlNBLVBTUyJfczsKICAg
ICBzdGF0aWMgY29uc3RleHByIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgc19pZGVudGlmaWVy
ID0gQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6UlNBX1BTUzsKICAgICBzdGF0aWMgUmVmPENy
eXB0b0FsZ29yaXRobT4gY3JlYXRlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Ny
eXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTEuaCBiL1NvdXJjZS9XZWJDb3JlL2Ny
eXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTEuaAppbmRleCBkODA3YWJiOTc0Y2Jh
YWMzYjBhN2JjN2FkODY1OGZjYWZiNWFkNmFlLi4xZmQ3NzVhODEzNjQzYzFiMmZhY2M3ZDNjOTQw
OWQzMmZlMWNlODU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGht
cy9DcnlwdG9BbGdvcml0aG1TSEExLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29y
aXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMS5oCkBAIC0zMyw3ICszMyw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogY2xhc3MgQ3J5cHRvQWxnb3JpdGhtU0hBMSBmaW5hbCA6IHB1YmxpYyBDcnlw
dG9BbGdvcml0aG0gewogcHVibGljOgotICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3QgY2hhciog
c19uYW1lID0gIlNIQS0xIjsKKyAgICBzdGF0aWMgY29uc3RleHByIEFTQ0lJTGl0ZXJhbCBzX25h
bWUgPSAiU0hBLTEiX3M7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBDcnlwdG9BbGdvcml0aG1JZGVu
dGlmaWVyIHNfaWRlbnRpZmllciA9IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlNIQV8xOwog
ICAgIHN0YXRpYyBSZWY8Q3J5cHRvQWxnb3JpdGhtPiBjcmVhdGUoKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMjI0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEyMjQu
aAppbmRleCA3ODA0YmFjZmYyNTcyZDhkYzY1MTEwMDQwNGY5MDViZjkzYmZjNGM2Li40OTNlMTYy
YWIzNjUyZTY2YzM1MDRhOGQ3OTVjMjg2OWQ0ZGRjZWM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEyMjQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEyMjQuaApAQCAt
MzMsNyArMzMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENyeXB0b0FsZ29yaXRo
bVNIQTIyNCBmaW5hbCA6IHB1YmxpYyBDcnlwdG9BbGdvcml0aG0gewogcHVibGljOgotICAgIHN0
YXRpYyBjb25zdGV4cHIgY29uc3QgY2hhciogc19uYW1lID0gIlNIQS0yMjQiOworICAgIHN0YXRp
YyBjb25zdGV4cHIgQVNDSUlMaXRlcmFsIHNfbmFtZSA9ICJTSEEtMjI0Il9zOwogICAgIHN0YXRp
YyBjb25zdGV4cHIgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBzX2lkZW50aWZpZXIgPSBDcnlw
dG9BbGdvcml0aG1JZGVudGlmaWVyOjpTSEFfMjI0OwogICAgIHN0YXRpYyBSZWY8Q3J5cHRvQWxn
b3JpdGhtPiBjcmVhdGUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2Fs
Z29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMjU2LmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8v
YWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEyNTYuaAppbmRleCBjZTI0MDRjNzRkNTVjOGYy
NzQ0MDVlNTZmNGQ1OGE3ZmY2MTYxNWY5Li5mNWE4NTQzYzgyYzU1NDhlZTQyYjNiOTMyNzExZTY4
NTVlZjhmMGY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9D
cnlwdG9BbGdvcml0aG1TSEEyNTYuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3Jp
dGhtcy9DcnlwdG9BbGdvcml0aG1TSEEyNTYuaApAQCAtMzMsNyArMzMsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGNsYXNzIENyeXB0b0FsZ29yaXRobVNIQTI1NiBmaW5hbCA6IHB1YmxpYyBD
cnlwdG9BbGdvcml0aG0gewogcHVibGljOgotICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3QgY2hh
ciogc19uYW1lID0gIlNIQS0yNTYiOworICAgIHN0YXRpYyBjb25zdGV4cHIgQVNDSUlMaXRlcmFs
IHNfbmFtZSA9ICJTSEEtMjU2Il9zOwogICAgIHN0YXRpYyBjb25zdCBDcnlwdG9BbGdvcml0aG1J
ZGVudGlmaWVyIHNfaWRlbnRpZmllciA9IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlNIQV8y
NTY7CiAgICAgc3RhdGljIFJlZjxDcnlwdG9BbGdvcml0aG0+IGNyZWF0ZSgpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEz
ODQuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNI
QTM4NC5oCmluZGV4IDZjYzU3NDkxMzI2YTAwOGU0MjZmMjY5MjEzODlhZDZmNGM0YmY4NDkuLmU1
YmYyMjMyYWNmMmRhNmExMDA2ZWE1MjAxOTM0MDhiMTgwNWYyYzMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTM4NC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTM4NC5o
CkBAIC0zMyw3ICszMyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ3J5cHRvQWxn
b3JpdGhtU0hBMzg0IGZpbmFsIDogcHVibGljIENyeXB0b0FsZ29yaXRobSB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIGNvbnN0ZXhwciBjb25zdCBjaGFyKiBzX25hbWUgPSAiU0hBLTM4NCI7CisgICAg
c3RhdGljIGNvbnN0ZXhwciBBU0NJSUxpdGVyYWwgc19uYW1lID0gIlNIQS0zODQiX3M7CiAgICAg
c3RhdGljIGNvbnN0ZXhwciBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIHNfaWRlbnRpZmllciA9
IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlNIQV8zODQ7CiAgICAgc3RhdGljIFJlZjxDcnlw
dG9BbGdvcml0aG0+IGNyZWF0ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlw
dG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEE1MTIuaCBiL1NvdXJjZS9XZWJDb3JlL2Ny
eXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTUxMi5oCmluZGV4IDBkNGEwYjk2YjY0
MmE0Y2RmYTdiZjk5MGE5N2VmNzNiOGI3NjEzZjguLjA1Zjk4ZmM0YTg2NjZkYWZkYTYwNTlhMTRm
ZTVlMTczN2E0YTc0MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0
aG1zL0NyeXB0b0FsZ29yaXRobVNIQTUxMi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9h
bGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTUxMi5oCkBAIC0zMyw3ICszMyw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ3J5cHRvQWxnb3JpdGhtU0hBNTEyIGZpbmFsIDogcHVi
bGljIENyeXB0b0FsZ29yaXRobSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBjb25z
dCBjaGFyKiBzX25hbWUgPSAiU0hBLTUxMiI7CisgICAgc3RhdGljIGNvbnN0ZXhwciBBU0NJSUxp
dGVyYWwgc19uYW1lID0gIlNIQS01MTIiX3M7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBDcnlwdG9B
bGdvcml0aG1JZGVudGlmaWVyIHNfaWRlbnRpZmllciA9IENyeXB0b0FsZ29yaXRobUlkZW50aWZp
ZXI6OlNIQV81MTI7CiAgICAgc3RhdGljIFJlZjxDcnlwdG9BbGdvcml0aG0+IGNyZWF0ZSgpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlBRVMuY3Bw
IGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5QUVTLmNwcAppbmRleCA0MmZl
M2E0YmU1MjE4MTk5NzM0ZGVkZDAzYWI3Yzk3MWYzMDExYWQ0Li5jNzZjODYzZDVhZmM1YTQxNWIw
NjU1ODg1MGQzMDc1MjBjMGM2N2NlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8v
a2V5cy9DcnlwdG9LZXlBRVMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0Ny
eXB0b0tleUFFUy5jcHAKQEAgLTEwNiw3ICsxMDYsNyBAQCBSZWZQdHI8Q3J5cHRvS2V5QUVTPiBD
cnlwdG9LZXlBRVM6OmltcG9ydEp3ayhDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGFsZ29yaXRo
bQogSnNvbldlYktleSBDcnlwdG9LZXlBRVM6OmV4cG9ydEp3aygpIGNvbnN0CiB7CiAgICAgSnNv
bldlYktleSByZXN1bHQ7Ci0gICAgcmVzdWx0Lmt0eSA9ICJvY3QiOworICAgIHJlc3VsdC5rdHkg
PSAib2N0Il9zOwogICAgIHJlc3VsdC5rID0gYmFzZTY0VVJMRW5jb2RlVG9TdHJpbmcobV9rZXkp
OwogICAgIHJlc3VsdC5rZXlfb3BzID0gdXNhZ2VzKCk7CiAgICAgcmVzdWx0LmV4dCA9IGV4dHJh
Y3RhYmxlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9L
ZXlFQy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlFQy5jcHAKaW5k
ZXggZDM2ZDM0MGY3MGE4ZjRhMTdmZjVmNjE5Y2ViMWQ5ZDg0NWNhMmEzMy4uZmNlODJiZWU5MWNh
Yjc0MjYyMDQwMGRjYTc3MzA1YzE3ZjY4NTIwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3J5cHRvL2tleXMvQ3J5cHRvS2V5RUMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9r
ZXlzL0NyeXB0b0tleUVDLmNwcApAQCAtMTQ4LDcgKzE0OCw3IEBAIEV4Y2VwdGlvbk9yPFZlY3Rv
cjx1aW50OF90Pj4gQ3J5cHRvS2V5RUM6OmV4cG9ydFJhdygpIGNvbnN0CiBFeGNlcHRpb25PcjxK
c29uV2ViS2V5PiBDcnlwdG9LZXlFQzo6ZXhwb3J0SndrKCkgY29uc3QKIHsKICAgICBKc29uV2Vi
S2V5IHJlc3VsdDsKLSAgICByZXN1bHQua3R5ID0gIkVDIjsKKyAgICByZXN1bHQua3R5ID0gIkVD
Il9zOwogICAgIHN3aXRjaCAobV9jdXJ2ZSkgewogICAgIGNhc2UgTmFtZWRDdXJ2ZTo6UDI1NjoK
ICAgICAgICAgcmVzdWx0LmNydiA9IFAyNTY7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
cnlwdG8va2V5cy9DcnlwdG9LZXlITUFDLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlz
L0NyeXB0b0tleUhNQUMuY3BwCmluZGV4IDQzNGYyNDA0NTVkYzhjZTM0MWUwMDU0MDNiZjA1Y2I5
MDAzN2QxNDkuLjI1NDNlZDU0NjU3ZTdhZTNmMmY3OTk2Yzc4NDQzZGZiMDlhNzI3YTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleUhNQUMuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleUhNQUMuY3BwCkBAIC0xMjEsNyAr
MTIxLDcgQEAgUmVmUHRyPENyeXB0b0tleUhNQUM+IENyeXB0b0tleUhNQUM6OmltcG9ydEp3ayhz
aXplX3QgbGVuZ3RoQml0cywgQ3J5cHRvQWxnb3JpdGgKIEpzb25XZWJLZXkgQ3J5cHRvS2V5SE1B
Qzo6ZXhwb3J0SndrKCkgY29uc3QKIHsKICAgICBKc29uV2ViS2V5IHJlc3VsdDsKLSAgICByZXN1
bHQua3R5ID0gIm9jdCI7CisgICAgcmVzdWx0Lmt0eSA9ICJvY3QiX3M7CiAgICAgcmVzdWx0Lmsg
PSBiYXNlNjRVUkxFbmNvZGVUb1N0cmluZyhtX2tleSk7CiAgICAgcmVzdWx0LmtleV9vcHMgPSB1
c2FnZXMoKTsKICAgICByZXN1bHQuZXh0ID0gZXh0cmFjdGFibGUoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleVJTQS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlSU0EuY3BwCmluZGV4IDZiYmYxNGYyNDYwYjNkMWY1MDQ4
OGFmMzkyOTcwOWY3NDIxNmVlMjQuLjA1ODFkNjcwNzJjYjkzNjZkMzc3NTQyMjY4YTQ4ZmZkYTA2
MzlhNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleVJT
QS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5UlNBLmNwcApA
QCAtMTMzLDcgKzEzMyw3IEBAIFJlZlB0cjxDcnlwdG9LZXlSU0E+IENyeXB0b0tleVJTQTo6aW1w
b3J0SndrKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgYWxnb3JpdGhtCiBKc29uV2ViS2V5IENy
eXB0b0tleVJTQTo6ZXhwb3J0SndrKCkgY29uc3QKIHsKICAgICBKc29uV2ViS2V5IHJlc3VsdDsK
LSAgICByZXN1bHQua3R5ID0gIlJTQSI7CisgICAgcmVzdWx0Lmt0eSA9ICJSU0EiX3M7CiAgICAg
cmVzdWx0LmtleV9vcHMgPSB1c2FnZXMoKTsKICAgICByZXN1bHQuZXh0ID0gZXh0cmFjdGFibGUo
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyaWRUZW1wbGF0ZUFyZWFz
VmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyaWRUZW1wbGF0ZUFyZWFzVmFsdWUu
Y3BwCmluZGV4IGUwYjc4NjU5YWRiZDAxNDgzOWU1N2MwNjIxZGMxNjE5ZWY4MTMxMDkuLmRmZDcy
NTEzYmNkZjU0NjEwOWU2OTAyYjViZTliOTc5MmU2YTI3NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NHcmlkVGVtcGxhdGVBcmVhc1ZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTR3JpZFRlbXBsYXRlQXJlYXNWYWx1ZS5jcHAKQEAgLTYzLDcgKzYzLDcgQEAg
c3RhdGljIFN0cmluZyBzdHJpbmdGb3JQb3NpdGlvbihjb25zdCBOYW1lZEdyaWRBcmVhTWFwJiBn
cmlkQXJlYU1hcCwgc2l6ZV90IHJvdywKICAgICAgICAgICAgIHJldHVybiBpdC5rZXk7CiAgICAg
fQogCi0gICAgcmV0dXJuICIuIjsKKyAgICByZXR1cm4gIi4iX3M7CiB9CiAKIFN0cmluZyBDU1NH
cmlkVGVtcGxhdGVBcmVhc1ZhbHVlOjpjdXN0b21DU1NUZXh0KCkgY29uc3QKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwCmluZGV4IDc5ZWIyYTU2MjM3MDk0YzRkMWJkMzYx
YTBhNzNjYzU0OTU2NDhmN2UuLjZkYzgwYmEzMDJkYWVhYzczNWI4NzBlN2Y4MDcwYWQxMDM0YjQ0
MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcApAQCAtMTI0Myw2
NCArMTI0Myw2NCBAQCBORVZFUl9JTkxJTkUgU3RyaW5nIENTU1ByaW1pdGl2ZVZhbHVlOjpmb3Jt
YXRJbnRlZ2VyVmFsdWUoU3RyaW5nVmlldyBzdWZmaXgpIGNvbgogU3RyaW5nIENTU1ByaW1pdGl2
ZVZhbHVlOjp1bml0VHlwZVN0cmluZyhDU1NVbml0VHlwZSB1bml0VHlwZSkKIHsKICAgICBzd2l0
Y2ggKHVuaXRUeXBlKSB7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19QRVJDRU5UQUdF
OiByZXR1cm4gIiUiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRU1TOiByZXR1cm4g
ImVtIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0VYUzogcmV0dXJuICJleCI7Ci0g
ICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19QWDogcmV0dXJuICJweCI7Ci0gICAgICAgIGNh
c2UgQ1NTVW5pdFR5cGU6OkNTU19DTTogcmV0dXJuICJjbSI7Ci0gICAgICAgIGNhc2UgQ1NTVW5p
dFR5cGU6OkNTU19NTTogcmV0dXJuICJtbSI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNT
U19JTjogcmV0dXJuICJpbiI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19QVDogcmV0
dXJuICJwdCI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19QQzogcmV0dXJuICJwYyI7
Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19ERUc6IHJldHVybiAiZGVnIjsKLSAgICAg
ICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1JBRDogcmV0dXJuICJyYWQiOwotICAgICAgICBjYXNl
IENTU1VuaXRUeXBlOjpDU1NfR1JBRDogcmV0dXJuICJncmFkIjsKLSAgICAgICAgY2FzZSBDU1NV
bml0VHlwZTo6Q1NTX01TOiByZXR1cm4gIm1zIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6
Q1NTX1M6IHJldHVybiAicyI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19IWjogcmV0
dXJuICJoeiI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19LSFo6IHJldHVybiAia2h6
IjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZXOiByZXR1cm4gInZ3IjsKLSAgICAg
ICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZIOiByZXR1cm4gInZoIjsKLSAgICAgICAgY2FzZSBD
U1NVbml0VHlwZTo6Q1NTX1ZNSU46IHJldHVybiAidm1pbiI7Ci0gICAgICAgIGNhc2UgQ1NTVW5p
dFR5cGU6OkNTU19WTUFYOiByZXR1cm4gInZtYXgiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfVkI6IHJldHVybiAidmIiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVkk6
IHJldHVybiAidmkiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZXOiByZXR1cm4g
InN2dyI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVkg6IHJldHVybiAic3ZoIjsK
LSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWTUlOOiByZXR1cm4gInN2bWluIjsKLSAg
ICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWTUFYOiByZXR1cm4gInN2bWF4IjsKLSAgICAg
ICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWQjogcmV0dXJuICJzdmIiOwotICAgICAgICBjYXNl
IENTU1VuaXRUeXBlOjpDU1NfU1ZJOiByZXR1cm4gInN2aSI7Ci0gICAgICAgIGNhc2UgQ1NTVW5p
dFR5cGU6OkNTU19MVlc6IHJldHVybiAibHZ3IjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6
Q1NTX0xWSDogcmV0dXJuICJsdmgiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZN
SU46IHJldHVybiAibHZtaW4iOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZNQVg6
IHJldHVybiAibHZtYXgiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZCOiByZXR1
cm4gImx2YiI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVkk6IHJldHVybiAibHZp
IjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWVzogcmV0dXJuICJkdnciOwotICAg
ICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZIOiByZXR1cm4gImR2aCI7Ci0gICAgICAgIGNh
c2UgQ1NTVW5pdFR5cGU6OkNTU19EVk1JTjogcmV0dXJuICJkdm1pbiI7Ci0gICAgICAgIGNhc2Ug
Q1NTVW5pdFR5cGU6OkNTU19EVk1BWDogcmV0dXJuICJkdm1heCI7Ci0gICAgICAgIGNhc2UgQ1NT
VW5pdFR5cGU6OkNTU19EVkI6IHJldHVybiAiZHZiIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlw
ZTo6Q1NTX0RWSTogcmV0dXJuICJkdmkiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1Nf
RFBQWDogcmV0dXJuICJkcHB4IjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1g6IHJl
dHVybiAieCI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EUEk6IHJldHVybiAiZHBp
IjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RQQ006IHJldHVybiAiZHBjbSI7Ci0g
ICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19GUjogcmV0dXJuICJmciI7Ci0gICAgICAgIGNh
c2UgQ1NTVW5pdFR5cGU6OkNTU19ROiByZXR1cm4gInEiOwotICAgICAgICBjYXNlIENTU1VuaXRU
eXBlOjpDU1NfTEhTOiByZXR1cm4gImxoIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NT
X1JMSFM6IHJldHVybiAicmxoIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1RVUk46
IHJldHVybiAidHVybiI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19SRU1TOiByZXR1
cm4gInJlbSI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19DSFM6IHJldHVybiAiY2gi
OwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfSUM6IHJldHVybiAiaWMiOwotICAgICAg
ICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfQ1FXOiByZXR1cm4gImNxdyI7Ci0gICAgICAgIGNhc2Ug
Q1NTVW5pdFR5cGU6OkNTU19DUUg6IHJldHVybiAiY3FoIjsKLSAgICAgICAgY2FzZSBDU1NVbml0
VHlwZTo6Q1NTX0NRSTogcmV0dXJuICJjcWkiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpD
U1NfQ1FCOiByZXR1cm4gImNxYiI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19DUU1B
WDogcmV0dXJuICJjcW1heCI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19DUU1JTjog
cmV0dXJuICJjcW1pbiI7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19QRVJDRU5UQUdF
OiByZXR1cm4gIiUiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19FTVM6IHJldHVy
biAiZW0iX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19FWFM6IHJldHVybiAiZXgi
X3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19QWDogcmV0dXJuICJweCJfczsKKyAg
ICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0NNOiByZXR1cm4gImNtIl9zOworICAgICAgICBj
YXNlIENTU1VuaXRUeXBlOjpDU1NfTU06IHJldHVybiAibW0iX3M7CisgICAgICAgIGNhc2UgQ1NT
VW5pdFR5cGU6OkNTU19JTjogcmV0dXJuICJpbiJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlw
ZTo6Q1NTX1BUOiByZXR1cm4gInB0Il9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1Nf
UEM6IHJldHVybiAicGMiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19ERUc6IHJl
dHVybiAiZGVnIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfUkFEOiByZXR1cm4g
InJhZCJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0dSQUQ6IHJldHVybiAiZ3Jh
ZCJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX01TOiByZXR1cm4gIm1zIl9zOwor
ICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfUzogcmV0dXJuICJzIl9zOworICAgICAgICBj
YXNlIENTU1VuaXRUeXBlOjpDU1NfSFo6IHJldHVybiAiaHoiX3M7CisgICAgICAgIGNhc2UgQ1NT
VW5pdFR5cGU6OkNTU19LSFo6IHJldHVybiAia2h6Il9zOworICAgICAgICBjYXNlIENTU1VuaXRU
eXBlOjpDU1NfVlc6IHJldHVybiAidnciX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNT
U19WSDogcmV0dXJuICJ2aCJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZNSU46
IHJldHVybiAidm1pbiJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZNQVg6IHJl
dHVybiAidm1heCJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZCOiByZXR1cm4g
InZiIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVkk6IHJldHVybiAidmkiX3M7
CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVlc6IHJldHVybiAic3Z3Il9zOworICAg
ICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZIOiByZXR1cm4gInN2aCJfczsKKyAgICAgICAg
Y2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWTUlOOiByZXR1cm4gInN2bWluIl9zOworICAgICAgICBj
YXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZNQVg6IHJldHVybiAic3ZtYXgiX3M7CisgICAgICAgIGNh
c2UgQ1NTVW5pdFR5cGU6OkNTU19TVkI6IHJldHVybiAic3ZiIl9zOworICAgICAgICBjYXNlIENT
U1VuaXRUeXBlOjpDU1NfU1ZJOiByZXR1cm4gInN2aSJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0
VHlwZTo6Q1NTX0xWVzogcmV0dXJuICJsdnciX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6
OkNTU19MVkg6IHJldHVybiAibHZoIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1Nf
TFZNSU46IHJldHVybiAibHZtaW4iX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19M
Vk1BWDogcmV0dXJuICJsdm1heCJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xW
QjogcmV0dXJuICJsdmIiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVkk6IHJl
dHVybiAibHZpIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZXOiByZXR1cm4g
ImR2dyJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWSDogcmV0dXJuICJkdmgi
X3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVk1JTjogcmV0dXJuICJkdm1pbiJf
czsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWTUFYOiByZXR1cm4gImR2bWF4Il9z
OworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZCOiByZXR1cm4gImR2YiJfczsKKyAg
ICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWSTogcmV0dXJuICJkdmkiX3M7CisgICAgICAg
IGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EUFBYOiByZXR1cm4gImRwcHgiX3M7CisgICAgICAgIGNh
c2UgQ1NTVW5pdFR5cGU6OkNTU19YOiByZXR1cm4gIngiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5p
dFR5cGU6OkNTU19EUEk6IHJldHVybiAiZHBpIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfRFBDTTogcmV0dXJuICJkcGNtIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpD
U1NfRlI6IHJldHVybiAiZnIiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19ROiBy
ZXR1cm4gInEiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MSFM6IHJldHVybiAi
bGgiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19STEhTOiByZXR1cm4gInJsaCJf
czsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1RVUk46IHJldHVybiAidHVybiJfczsK
KyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1JFTVM6IHJldHVybiAicmVtIl9zOworICAg
ICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfQ0hTOiByZXR1cm4gImNoIl9zOworICAgICAgICBj
YXNlIENTU1VuaXRUeXBlOjpDU1NfSUM6IHJldHVybiAiaWMiX3M7CisgICAgICAgIGNhc2UgQ1NT
VW5pdFR5cGU6OkNTU19DUVc6IHJldHVybiAiY3F3Il9zOworICAgICAgICBjYXNlIENTU1VuaXRU
eXBlOjpDU1NfQ1FIOiByZXR1cm4gImNxaCJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6
Q1NTX0NRSTogcmV0dXJuICJjcWkiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19D
UUI6IHJldHVybiAiY3FiIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfQ1FNQVg6
IHJldHVybiAiY3FtYXgiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19DUU1JTjog
cmV0dXJuICJjcW1pbiJfczsKIAogICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVU5LTk9X
TjoKICAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX05VTUJFUjoKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NTdWJncmlkVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1N1YmdyaWRWYWx1ZS5jcHAKaW5kZXggNGY5ZDRhNjA0OGM2MTRjOGQwZmFmNTQ4YmZjY2Jh
YWU0OGEwYzg2NS4uNmE3OTg1OWRhMjdkYWVhYWFhN2JjZjVmOTkxMmQzZTc3YzViZDJiYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N1YmdyaWRWYWx1ZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1N1YmdyaWRWYWx1ZS5jcHAKQEAgLTM2LDcgKzM2LDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogU3RyaW5nIENTU1N1YmdyaWRWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCgp
IGNvbnN0CiB7CiAgICAgaWYgKCFsZW5ndGgoKSkKLSAgICAgICAgcmV0dXJuICJzdWJncmlkIjsK
KyAgICAgICAgcmV0dXJuICJzdWJncmlkIl9zOwogICAgIHJldHVybiAic3ViZ3JpZCAiICsgQ1NT
VmFsdWVMaXN0OjpjdXN0b21DU1NUZXh0KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9ET01DU1NSZWdpc3RlckN1c3RvbVByb3BlcnR5LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9ET01DU1NSZWdpc3RlckN1c3RvbVByb3BlcnR5LmNwcAppbmRleCBjMmM4MjUwYWIyMmQ4
M2VkZDgyMjAwMTBiODJmNjI1MWRlN2I4OWY3Li45MmEyY2JjNDBmZDMxNjFlMGY5ZmM3NWIxODhh
MmQ5OGQzZTcxOTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NTUmVnaXN0
ZXJDdXN0b21Qcm9wZXJ0eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0RPTUNTU1JlZ2lz
dGVyQ3VzdG9tUHJvcGVydHkuY3BwCkBAIC00NCw3ICs0NCw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIEV4Y2VwdGlvbk9yPHZvaWQ+IERPTUNTU1JlZ2lzdGVyQ3VzdG9tUHJvcGVydHk6OnJlZ2lz
dGVyUHJvcGVydHkoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBET01DU1NDdXN0b21Qcm9wZXJ0
eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCiB7CiAgICAgaWYgKCFpc0N1c3RvbVByb3BlcnR5TmFt
ZShkZXNjcmlwdG9yLm5hbWUpKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgU3ludGF4RXJy
b3IsICJUaGUgbmFtZSBvZiB0aGlzIHByb3BlcnR5IGlzIG5vdCBhIGN1c3RvbSBwcm9wZXJ0eSBu
YW1lLiIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFN5bnRheEVycm9yLCAiVGhlIG5h
bWUgb2YgdGhpcyBwcm9wZXJ0eSBpcyBub3QgYSBjdXN0b20gcHJvcGVydHkgbmFtZS4iX3MgfTsK
IAogICAgIFJlZlB0cjxDU1NDdXN0b21Qcm9wZXJ0eVZhbHVlPiBpbml0aWFsVmFsdWU7CiAgICAg
aWYgKCFkZXNjcmlwdG9yLmluaXRpYWxWYWx1ZS5pc0VtcHR5KCkpIHsKQEAgLTU5LDcgKzU5LDcg
QEAgRXhjZXB0aW9uT3I8dm9pZD4gRE9NQ1NTUmVnaXN0ZXJDdXN0b21Qcm9wZXJ0eTo6cmVnaXN0
ZXJQcm9wZXJ0eShEb2N1bWVudCYgZG9jdW0KICAgICAgICAgQ1NTUHJvcGVydHlQYXJzZXI6OmNv
bGxlY3RQYXJzZWRDdXN0b21Qcm9wZXJ0eVZhbHVlRGVwZW5kZW5jaWVzKGRlc2NyaXB0b3Iuc3lu
dGF4LCBmYWxzZSwgZGVwZW5kZW5jaWVzLCB0b2tlbml6ZXIudG9rZW5SYW5nZSgpLCBzdHJpY3RD
U1NQYXJzZXJDb250ZXh0KCkpOwogCiAgICAgICAgIGlmICghZGVwZW5kZW5jaWVzLmlzRW1wdHko
KSkKLSAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBTeW50YXhFcnJvciwgIlRoZSBnaXZl
biBpbml0aWFsIHZhbHVlIG11c3QgYmUgY29tcHV0YXRpb25hbGx5IGluZGVwZW5kZW50LiIgfTsK
KyAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBTeW50YXhFcnJvciwgIlRoZSBnaXZlbiBp
bml0aWFsIHZhbHVlIG11c3QgYmUgY29tcHV0YXRpb25hbGx5IGluZGVwZW5kZW50LiJfcyB9Owog
CiAKICAgICAgICAgU3R5bGU6Ok1hdGNoUmVzdWx0IG1hdGNoUmVzdWx0OwpAQCAtNzAsMTggKzcw
LDE4IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IERPTUNTU1JlZ2lzdGVyQ3VzdG9tUHJvcGVydHk6OnJl
Z2lzdGVyUHJvcGVydHkoRG9jdW1lbnQmIGRvY3VtCiAgICAgICAgIGluaXRpYWxWYWx1ZSA9IENT
U1Byb3BlcnR5UGFyc2VyOjpwYXJzZVR5cGVkQ3VzdG9tUHJvcGVydHlWYWx1ZShkZXNjcmlwdG9y
Lm5hbWUsIGRlc2NyaXB0b3Iuc3ludGF4LCB0b2tlbml6ZXIudG9rZW5SYW5nZSgpLCBkdW1teUJ1
aWxkZXIuc3RhdGUoKSwgc3RyaWN0Q1NTUGFyc2VyQ29udGV4dCgpKTsKIAogICAgICAgICBpZiAo
IWluaXRpYWxWYWx1ZSB8fCAhaW5pdGlhbFZhbHVlLT5pc1Jlc29sdmVkKCkpCi0gICAgICAgICAg
ICByZXR1cm4gRXhjZXB0aW9uIHsgU3ludGF4RXJyb3IsICJUaGUgZ2l2ZW4gaW5pdGlhbCB2YWx1
ZSBkb2VzIG5vdCBwYXJzZSBmb3IgdGhlIGdpdmVuIHN5bnRheC4iIH07CisgICAgICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgU3ludGF4RXJyb3IsICJUaGUgZ2l2ZW4gaW5pdGlhbCB2YWx1ZSBk
b2VzIG5vdCBwYXJzZSBmb3IgdGhlIGdpdmVuIHN5bnRheC4iX3MgfTsKIAogICAgICAgICBpbml0
aWFsVmFsdWUtPmNvbGxlY3REaXJlY3RDb21wdXRhdGlvbmFsRGVwZW5kZW5jaWVzKGRlcGVuZGVu
Y2llcyk7CiAgICAgICAgIGluaXRpYWxWYWx1ZS0+Y29sbGVjdERpcmVjdFJvb3RDb21wdXRhdGlv
bmFsRGVwZW5kZW5jaWVzKGRlcGVuZGVuY2llcyk7CiAKICAgICAgICAgaWYgKCFkZXBlbmRlbmNp
ZXMuaXNFbXB0eSgpKQotICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFN5bnRheEVycm9y
LCAiVGhlIGdpdmVuIGluaXRpYWwgdmFsdWUgbXVzdCBiZSBjb21wdXRhdGlvbmFsbHkgaW5kZXBl
bmRlbnQuIiB9OworICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFN5bnRheEVycm9yLCAi
VGhlIGdpdmVuIGluaXRpYWwgdmFsdWUgbXVzdCBiZSBjb21wdXRhdGlvbmFsbHkgaW5kZXBlbmRl
bnQuIl9zIH07CiAgICAgfQogCiAgICAgQ1NTUmVnaXN0ZXJlZEN1c3RvbVByb3BlcnR5IHByb3Bl
cnR5IHsgZGVzY3JpcHRvci5uYW1lLCBkZXNjcmlwdG9yLnN5bnRheCwgZGVzY3JpcHRvci5pbmhl
cml0cywgV1RGTW92ZShpbml0aWFsVmFsdWUpIH07CiAgICAgaWYgKCFkb2N1bWVudC5yZWdpc3Rl
ckNTU1Byb3BlcnR5KFdURk1vdmUocHJvcGVydHkpKSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlv
biB7IEludmFsaWRNb2RpZmljYXRpb25FcnJvciwgIlRoaXMgcHJvcGVydHkgaGFzIGFscmVhZHkg
YmVlbiByZWdpc3RlcmVkLiIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRN
b2RpZmljYXRpb25FcnJvciwgIlRoaXMgcHJvcGVydHkgaGFzIGFscmVhZHkgYmVlbiByZWdpc3Rl
cmVkLiJfcyB9OwogCiAgICAgZG9jdW1lbnQuc3R5bGVTY29wZSgpLmRpZENoYW5nZVN0eWxlU2hl
ZXRFbnZpcm9ubWVudCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVj
YXRlZENTU09NVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVZh
bHVlLmNwcAppbmRleCAyMzI1MDg0NWFiYTZiYzUzMjJiM2IzNzY5ZmI5M2MwZTY0MGM3ZDgyLi41
MDY3ZDBlNmM2MDFiZTJhMTMxM2YwODlhNjQwYWMxYTYyNmI5YjM1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZENTU09NVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01WYWx1ZS5jcHAKQEAgLTc2LDcgKzc2LDcgQEAgU3RyaW5n
IERlcHJlY2F0ZWRDU1NPTVZhbHVlOjpjc3NUZXh0KCkgY29uc3QKICAgICAgICAgcmV0dXJuIGRv
d25jYXN0PERlcHJlY2F0ZWRDU1NPTVZhbHVlTGlzdD4oKnRoaXMpLmNzc1RleHQoKTsKICAgICB9
CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuICIiOworICAgIHJldHVybiBl
bXB0eVN0cmluZygpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9u
dEZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0ZvbnRGYWNlLmNwcAppbmRleCBlZmZkNjA3
YzM0NmY5YmNmYmM5YzI4ODliZjgzMTY5NGRhMzQwMzA1Li40ZDUxMWI1ZTY4NTQxMzA1ZDQwYzFj
MzNiNzkwOWE2NTA2NTU2ZjYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9udEZh
Y2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9Gb250RmFjZS5jcHAKQEAgLTM3NSw3ICsz
NzUsNyBAQCBTdHJpbmcgRm9udEZhY2U6OnVuaWNvZGVSYW5nZSgpIGNvbnN0CiAgICAgbV9iYWNr
aW5nLT51cGRhdGVTdHlsZUlmTmVlZGVkKCk7CiAgICAgY29uc3QgYXV0byYgcmFuZ2VzV3JhcHBl
ZCA9IG1fYmFja2luZy0+cmFuZ2VzKCk7CiAgICAgaWYgKCFyYW5nZXNXcmFwcGVkKQotICAgICAg
ICByZXR1cm4gIlUrMC0xMEZGRkYiOworICAgICAgICByZXR1cm4gIlUrMC0xMEZGRkYiX3M7CiAg
ICAgYXV0byByYW5nZXMgPSByYW5nZXNXcmFwcGVkLnZhbHVlKCk7CiAgICAgaWYgKCFyYW5nZXMu
c2l6ZSgpKQogICAgICAgICByZXR1cm4gIlUrMC0xMEZGRkYiX3M7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV4cHJlc3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3NzL01lZGlhUXVlcnlFeHByZXNzaW9uLmNwcAppbmRleCAwOGI3MDcwNjZiYTZkZmIyMTI3ZmNk
YTkwODg5Mzc5MzUxMDgxNGU4Li4xYmRkYjU1M2U4ZmJhMmMyMjUzZTRkMTQ1NmY3ODY5M2YzNjY5
MzI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV4cHJlc3Npb24u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXhwcmVzc2lvbi5jcHAKQEAg
LTI3NCw3ICsyNzQsNyBAQCBNZWRpYVF1ZXJ5RXhwcmVzc2lvbjo6TWVkaWFRdWVyeUV4cHJlc3Np
b24oY29uc3QgU3RyaW5nJiBmZWF0dXJlLCBDU1NQYXJzZXJUb2tlbgogU3RyaW5nIE1lZGlhUXVl
cnlFeHByZXNzaW9uOjpzZXJpYWxpemUoKSBjb25zdAogewogICAgIGlmIChtX3NlcmlhbGl6YXRp
b25DYWNoZS5pc051bGwoKSkKLSAgICAgICAgbV9zZXJpYWxpemF0aW9uQ2FjaGUgPSBtYWtlU3Ry
aW5nKCcoJywgbV9tZWRpYUZlYXR1cmUuY29udmVydFRvQVNDSUlMb3dlcmNhc2UoKSwgbV92YWx1
ZSA/ICI6ICIgOiAiIiwgbV92YWx1ZSA/IG1fdmFsdWUtPmNzc1RleHQoKSA6ICIiLCAnKScpOwor
ICAgICAgICBtX3NlcmlhbGl6YXRpb25DYWNoZSA9IG1ha2VTdHJpbmcoJygnLCBtX21lZGlhRmVh
dHVyZS5jb252ZXJ0VG9BU0NJSUxvd2VyY2FzZSgpLCBtX3ZhbHVlID8gIjogIiA6ICIiLCBtX3Zh
bHVlID8gbV92YWx1ZS0+Y3NzVGV4dCgpIDogZW1wdHlTdHJpbmcoKSwgJyknKTsKICAgICByZXR1
cm4gbV9zZXJpYWxpemF0aW9uQ2FjaGU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9TdHlsZVByb3BlcnRpZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVy
dGllcy5jcHAKaW5kZXggZjA0MTNjMTdmZmZhMjgzODExZmUyNTE3ZmRmZDYxYmNkY2Y4YjI1OS4u
YTkyM2M3YTRmOTRmY2YzMmIwN2Y4MTEzYTJjYmVhMjRiOWRmODkwNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL1N0eWxlUHJvcGVydGllcy5jcHAKQEAgLTc2OCw3ICs3NjgsNyBAQCBTdHJpbmcgU3R5bGVQ
cm9wZXJ0aWVzOjpnZXRMYXllcmVkU2hvcnRoYW5kVmFsdWUoY29uc3QgU3R5bGVQcm9wZXJ0eVNo
b3J0aGFuZCYgcwogCiAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIG1hc2tJZCA9IGRvd25j
YXN0PENTU1ByaW1pdGl2ZVZhbHVlPigqdmFsdWUpLnZhbHVlSUQoKTsKICAgICAgICAgICAgICAg
ICAgICAgICAgIGF1dG8gb3JpZ2luSWQgPSBkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4oKm9y
aWdpblZhbHVlKS52YWx1ZUlEKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbWFz
a0lkID09IG9yaWdpbklkICYmICghaXNDU1NXaWRlVmFsdWVLZXl3b3JkKGdldFZhbHVlTmFtZSht
YXNrSWQpKSB8fCB2YWx1ZS0+aXNJbXBsaWNpdEluaXRpYWxWYWx1ZSgpKTsKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBtYXNrSWQgPT0gb3JpZ2luSWQgJiYgKCFpc0NTU1dpZGVWYWx1
ZUtleXdvcmQoU3RyaW5nVmlldyB7IGdldFZhbHVlTmFtZShtYXNrSWQpIH0pIHx8IHZhbHVlLT5p
c0ltcGxpY2l0SW5pdGlhbFZhbHVlKCkpOwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICAgICAgIGlmIChwcm9wZXJ0eSA9PSBDU1NQcm9wZXJ0eU1hc2tPcmlnaW4pIHsKICAg
ICAgICAgICAgICAgICAgICAgICAgIC8vIFdlIGNhbiBza2lwIHNlcmlhbGl6aW5nIG1hc2stb3Jp
Z2luIGlmIGl0J3MgdGhlIGluaXRpYWwgdmFsdWUsIGJ1dCBvbmx5IGlmIHdlJ3JlIGFsc28gZ29p
bmcgdG8gc2tpcCBzZXJpYWxpemluZwpAQCAtMTE1NCw3ICsxMTU0LDcgQEAgYm9vbCBNdXRhYmxl
U3R5bGVQcm9wZXJ0aWVzOjpzZXRDdXN0b21Qcm9wZXJ0eShjb25zdCBEb2N1bWVudCogZG9jdW1l
bnQsIGNvbnN0IFMKIAogICAgIHBhcnNlckNvbnRleHQubW9kZSA9IGNzc1BhcnNlck1vZGUoKTsK
IAotICAgIFN0cmluZyBzeW50YXggPSAiKiI7CisgICAgU3RyaW5nIHN5bnRheCA9ICIqIl9zOwog
ICAgIGF1dG8qIHJlZ2lzdGVyZWQgPSBkb2N1bWVudCA/IGRvY3VtZW50LT5nZXRDU1NSZWdpc3Rl
cmVkQ3VzdG9tUHJvcGVydHlTZXQoKS5nZXQocHJvcGVydHlOYW1lKSA6IG51bGxwdHI7CiAKICAg
ICBpZiAocmVnaXN0ZXJlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9tYWtldmFs
dWVzLnBsIGIvU291cmNlL1dlYkNvcmUvY3NzL21ha2V2YWx1ZXMucGwKaW5kZXggMGY4MjE5ZDRj
Y2I1MWVjYTUyNWQ4MjlhNzYwNmIyN2IwZmEyNzMwMy4uYWU5YjMyNzgzMjcyNzM3M2M0Y2U3ZjAy
MzMwNTIxMzZiMmQ5ODNkNSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL21ha2V2YWx1
ZXMucGwKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL21ha2V2YWx1ZXMucGwKQEAgLTExMSwxNiAr
MTExLDE2IEBAIGZvciBteSAkaSAoMCAuLiAkI25hbWVzKSB7CiAKIHByaW50IEdQRVJGIDw8ICJF
T0YiOwogJSUKLXN0YXRpYyBjb25zdCBjaGFyKiBjb25zdCB2YWx1ZUxpc3RbXSA9IHsKLSAgICAi
IiwKK3N0YXRpYyBjb25zdGV4cHIgQVNDSUlMaXRlcmFsIHZhbHVlTGlzdFtdID0geworICAgICIi
X3MsCiBFT0YKIAogZm9yZWFjaCBteSAkbmFtZSAoQG5hbWVzKSB7Ci0gIHByaW50IEdQRVJGICIg
ICAgXCIiIC4gJG5hbWUgLiAiXCIsXG4iOworICBwcmludCBHUEVSRiAiICAgIFwiIiAuICRuYW1l
IC4gIlwiX3MsXG4iOwogfQogCiBwcmludCBHUEVSRiA8PCAiRU9GIjsKLSAgICAwCisgICAgQVND
SUlMaXRlcmFsOjpudWxsKCkKIH07CiAKIGNvbnN0IFZhbHVlKiBmaW5kVmFsdWUoY29uc3QgY2hh
ciogc3RyLCB1bnNpZ25lZCBpbnQgbGVuKQpAQCAtMTI4LDEwICsxMjgsMTAgQEAgY29uc3QgVmFs
dWUqIGZpbmRWYWx1ZShjb25zdCBjaGFyKiBzdHIsIHVuc2lnbmVkIGludCBsZW4pCiAgICAgcmV0
dXJuIENTU1ZhbHVlS2V5d29yZHNIYXNoOjpmaW5kVmFsdWVJbXBsKHN0ciwgbGVuKTsKIH0KIAot
Y29uc3QgY2hhciogZ2V0VmFsdWVOYW1lKHVuc2lnbmVkIHNob3J0IGlkKQorQVNDSUlMaXRlcmFs
IGdldFZhbHVlTmFtZSh1bnNpZ25lZCBzaG9ydCBpZCkKIHsKICAgICBpZiAoaWQgPiBsYXN0Q1NT
VmFsdWVLZXl3b3JkKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIEFTQ0lJTGl0
ZXJhbDo6bnVsbCgpOwogICAgIHJldHVybiB2YWx1ZUxpc3RbaWRdOwogfQogCkBAIC0yMDMsNyAr
MjAzLDcgQEAgcHJpbnQgSEVBREVSICJjb25zdCBpbnQgbGFzdENTU1ZhbHVlS2V5d29yZCA9ICRs
YXN0O1xuIjsKIHByaW50IEhFQURFUiAiY29uc3Qgc2l6ZV90IG1heENTU1ZhbHVlS2V5d29yZExl
bmd0aCA9ICIgLiAkbWF4TGVuIC4gIjtcbiI7CiBwcmludCBIRUFERVIgPDwgIkVPRiI7CiAKLWNv
bnN0IGNoYXIqIGdldFZhbHVlTmFtZSh1bnNpZ25lZCBzaG9ydCBpZCk7CitBU0NJSUxpdGVyYWwg
Z2V0VmFsdWVOYW1lKHVuc2lnbmVkIHNob3J0IGlkKTsKIGNvbnN0IEF0b21TdHJpbmcmIGdldFZh
bHVlTmFtZUF0b21TdHJpbmcoQ1NTVmFsdWVJRCBpZCk7CiBTdHJpbmcgZ2V0VmFsdWVOYW1lU3Ry
aW5nKENTU1ZhbHVlSUQgaWQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFy
c2VyL01lZGlhUXVlcnlQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9NZWRp
YVF1ZXJ5UGFyc2VyLmNwcAppbmRleCBjYjVhMDhhYTNlYjdkNmI4YzgyNTdkYzg0OGRjZWMxMTM0
MTljOWNkLi42MmMwMWU1YTMyNzc0MjI0MzY2MmZlYmMyMWVkZTA4MGQ5MjM2NTllIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL01lZGlhUXVlcnlQYXJzZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvTWVkaWFRdWVyeVBhcnNlci5jcHAKQEAgLTI0Nyw3
ICsyNDcsNyBAQCB2b2lkIE1lZGlhUXVlcnlQYXJzZXI6OnNraXBVbnRpbENvbW1hKENTU1BhcnNl
clRva2VuVHlwZSB0eXBlLCBjb25zdCBDU1NQYXJzZXJUbwogICAgIGlmICgodHlwZSA9PSBDb21t
YVRva2VuICYmICFtX2Jsb2NrV2F0Y2hlci5ibG9ja0xldmVsKCkpIHx8IHR5cGUgPT0gRU9GVG9r
ZW4pIHsKICAgICAgICAgbV9zdGF0ZSA9IFJlYWRSZXN0cmljdG9yOwogICAgICAgICBtX21lZGlh
UXVlcnlEYXRhLmNsZWFyKCk7Ci0gICAgICAgIE1lZGlhUXVlcnkgcXVlcnkgPSBNZWRpYVF1ZXJ5
KE1lZGlhUXVlcnk6Ok5vdCwgImFsbCIsIFZlY3RvcjxNZWRpYVF1ZXJ5RXhwcmVzc2lvbj4oKSk7
CisgICAgICAgIE1lZGlhUXVlcnkgcXVlcnkgPSBNZWRpYVF1ZXJ5KE1lZGlhUXVlcnk6Ok5vdCwg
ImFsbCJfcywgVmVjdG9yPE1lZGlhUXVlcnlFeHByZXNzaW9uPigpKTsKICAgICAgICAgbV9xdWVy
eVNldC0+YWRkTWVkaWFRdWVyeShXVEZNb3ZlKHF1ZXJ5KSk7CiAgICAgfQogfQpAQCAtMzA5LDcg
KzMwOSw3IEBAIFJlZlB0cjxNZWRpYVF1ZXJ5U2V0PiBNZWRpYVF1ZXJ5UGFyc2VyOjpwYXJzZUlu
dGVybmFsKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlCiAgICAgICAgIHByb2Nlc3NUb2tlbihD
U1NQYXJzZXJUb2tlbihFT0ZUb2tlbiksIHJhbmdlKTsKIAogICAgIGlmIChtX3N0YXRlICE9IFJl
YWRBbmQgJiYgbV9zdGF0ZSAhPSBSZWFkUmVzdHJpY3RvciAmJiBtX3N0YXRlICE9IERvbmUgJiYg
bV9zdGF0ZSAhPSBSZWFkTWVkaWFOb3QpIHsKLSAgICAgICAgTWVkaWFRdWVyeSBxdWVyeSA9IE1l
ZGlhUXVlcnkoTWVkaWFRdWVyeTo6Tm90LCAiYWxsIiwgVmVjdG9yPE1lZGlhUXVlcnlFeHByZXNz
aW9uPigpKTsKKyAgICAgICAgTWVkaWFRdWVyeSBxdWVyeSA9IE1lZGlhUXVlcnkoTWVkaWFRdWVy
eTo6Tm90LCAiYWxsIl9zLCBWZWN0b3I8TWVkaWFRdWVyeUV4cHJlc3Npb24+KCkpOwogICAgICAg
ICBtX3F1ZXJ5U2V0LT5hZGRNZWRpYVF1ZXJ5KFdURk1vdmUocXVlcnkpKTsKICAgICB9IGVsc2Ug
aWYgKG1fbWVkaWFRdWVyeURhdGEuY3VycmVudE1lZGlhUXVlcnlDaGFuZ2VkKCkpCiAgICAgICAg
IGNvbW1pdE1lZGlhUXVlcnkoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJz
ZXIvU2l6ZXNBdHRyaWJ1dGVQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9T
aXplc0F0dHJpYnV0ZVBhcnNlci5jcHAKaW5kZXggZDZlNDhhMjNmZjk3ZTBhOGI3MzZkODAzNzk3
NDI0NzUwNWMzN2ZmOC4uNGRhNDAxNmU2MDY1N2ZiMzc0NTJlZTFiOTFhNjFkNTZlMDg4NDg4OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9TaXplc0F0dHJpYnV0ZVBhcnNl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9TaXplc0F0dHJpYnV0ZVBhcnNl
ci5jcHAKQEAgLTExMiw3ICsxMTIsNyBAQCBib29sIFNpemVzQXR0cmlidXRlUGFyc2VyOjptZWRp
YUNvbmRpdGlvbk1hdGNoZXMoY29uc3QgTWVkaWFRdWVyeVNldCYgbWVkaWFDb25kaQogICAgIGlm
ICghcmVuZGVyZXIpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBhdXRvJiBzdHlsZSA9IHJl
bmRlcmVyLT5zdHlsZSgpOwotICAgIHJldHVybiBNZWRpYVF1ZXJ5RXZhbHVhdG9yIHsgInNjcmVl
biIsIG1fZG9jdW1lbnQsICZzdHlsZSB9LmV2YWx1YXRlKG1lZGlhQ29uZGl0aW9uLCBtX21lZGlh
UXVlcnlEeW5hbWljUmVzdWx0cyk7CisgICAgcmV0dXJuIE1lZGlhUXVlcnlFdmFsdWF0b3IgeyAi
c2NyZWVuIl9zLCBtX2RvY3VtZW50LCAmc3R5bGUgfS5ldmFsdWF0ZShtZWRpYUNvbmRpdGlvbiwg
bV9tZWRpYVF1ZXJ5RHluYW1pY1Jlc3VsdHMpOwogfQogCiBib29sIFNpemVzQXR0cmlidXRlUGFy
c2VyOjpwYXJzZShDU1NQYXJzZXJUb2tlblJhbmdlIHJhbmdlKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTTnVtZXJpY0ZhY3RvcnkuaCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy90eXBlZG9tL0NTU051bWVyaWNGYWN0b3J5LmgKaW5kZXggODIzNTBiOTlkODc0YjBmYTkw
NjVmNjRkZGQ1OTkzZGQ2ZDgzMGIzOS4uMzUzNjJiMjE2ZDAyYmI3MjNiNzg2YTJjNzIxMzNkMTU2
M2JiMjBmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTTnVtZXJp
Y0ZhY3RvcnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NOdW1lcmljRmFj
dG9yeS5oCkBAIC00Myw2NCArNDMsNjQgQEAgY2xhc3MgQ1NTTnVtZXJpY0ZhY3RvcnkgZmluYWwg
OiBwdWJsaWMgU3VwcGxlbWVudDxET01DU1NOYW1lc3BhY2U+IHsKIHB1YmxpYzoKICAgICBleHBs
aWNpdCBDU1NOdW1lcmljRmFjdG9yeShET01DU1NOYW1lc3BhY2UmKSB7IH0KIAotICAgIHN0YXRp
YyBSZWY8Q1NTVW5pdFZhbHVlPiBudW1iZXIoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0
VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgIm51bWJlciIpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0
VmFsdWU+IHBlcmNlbnQoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0
ZSh2YWx1ZSwgInBlcmNlbnQiKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBudW1i
ZXIoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgIm51
bWJlciJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gcGVyY2VudChkb3VibGUg
dmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAicGVyY2VudCJfcyk7
IH0KIAogCiAgICAgLy8gPGxlbmd0aD4KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gZW0o
ZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImVtIik7
IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gZXgoZG91YmxlIHZhbHVlKSB7IHJldHVy
biBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImV4Iik7IH0KLSAgICBzdGF0aWMgUmVmPENT
U1VuaXRWYWx1ZT4gY2goZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0
ZSh2YWx1ZSwgImNoIik7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gaWMoZG91Ymxl
IHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImljIik7IH0KLSAg
ICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gcmVtKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NT
VW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJyZW0iKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5p
dFZhbHVlPiBsaChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZh
bHVlLCAibGgiKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBybGgoZG91YmxlIHZh
bHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInJsaCIpOyB9Ci0gICAg
c3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHZ3KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5p
dFZhbHVlOjpjcmVhdGUodmFsdWUsICJ2dyIpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFs
dWU+IHZoKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUs
ICJ2aCIpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHZpKGRvdWJsZSB2YWx1ZSkg
eyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJ2aSIpOyB9Ci0gICAgc3RhdGlj
IFJlZjxDU1NVbml0VmFsdWU+IHZiKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVl
OjpjcmVhdGUodmFsdWUsICJ2YiIpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHZt
aW4oZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInZt
aW4iKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiB2bWF4KGRvdWJsZSB2YWx1ZSkg
eyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJ2bWF4Iik7IH0KLSAgICBzdGF0
aWMgUmVmPENTU1VuaXRWYWx1ZT4gY20oZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFs
dWU6OmNyZWF0ZSh2YWx1ZSwgImNtIik7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4g
bW0oZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgIm1t
Iik7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gcShkb3VibGUgdmFsdWUpIHsgcmV0
dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAicSIpOyB9Ci0gICAgc3RhdGljIFJlZjxD
U1NVbml0VmFsdWU+IGluKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVh
dGUodmFsdWUsICJpbiIpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHB0KGRvdWJs
ZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJwdCIpOyB9Ci0g
ICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHBjKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NT
VW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJwYyIpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0
VmFsdWU+IHB4KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFs
dWUsICJweCIpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGNxdyhkb3VibGUgdmFs
dWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiY3F3Iik7IH0KLSAgICBz
dGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gY3FoKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5p
dFZhbHVlOjpjcmVhdGUodmFsdWUsICJjcWgiKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZh
bHVlPiBjcWkoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1
ZSwgImNxaSIpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGNxYihkb3VibGUgdmFs
dWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiY3FiIik7IH0KLSAgICBz
dGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gY3FtaW4oZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NV
bml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImNxbWluIik7IH0KLSAgICBzdGF0aWMgUmVmPENTU1Vu
aXRWYWx1ZT4gY3FtYXgoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0
ZSh2YWx1ZSwgImNxbWF4Iik7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gZW0oZG91
YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImVtIl9zKTsg
fQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBleChkb3VibGUgdmFsdWUpIHsgcmV0dXJu
IENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiZXgiX3MpOyB9CisgICAgc3RhdGljIFJlZjxD
U1NVbml0VmFsdWU+IGNoKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVh
dGUodmFsdWUsICJjaCJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gaWMoZG91
YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImljIl9zKTsg
fQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiByZW0oZG91YmxlIHZhbHVlKSB7IHJldHVy
biBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInJlbSJfcyk7IH0KKyAgICBzdGF0aWMgUmVm
PENTU1VuaXRWYWx1ZT4gbGgoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNy
ZWF0ZSh2YWx1ZSwgImxoIl9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBybGgo
ZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInJsaCJf
cyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gdncoZG91YmxlIHZhbHVlKSB7IHJl
dHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInZ3Il9zKTsgfQorICAgIHN0YXRpYyBS
ZWY8Q1NTVW5pdFZhbHVlPiB2aChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6
Y3JlYXRlKHZhbHVlLCAidmgiX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHZp
KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJ2aSJf
cyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gdmIoZG91YmxlIHZhbHVlKSB7IHJl
dHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInZiIl9zKTsgfQorICAgIHN0YXRpYyBS
ZWY8Q1NTVW5pdFZhbHVlPiB2bWluKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVl
OjpjcmVhdGUodmFsdWUsICJ2bWluIl9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVl
PiB2bWF4KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUs
ICJ2bWF4Il9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBjbShkb3VibGUgdmFs
dWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiY20iX3MpOyB9CisgICAg
c3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IG1tKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5p
dFZhbHVlOjpjcmVhdGUodmFsdWUsICJtbSJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRW
YWx1ZT4gcShkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVl
LCAicSJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gaW4oZG91YmxlIHZhbHVl
KSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImluIl9zKTsgfQorICAgIHN0
YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBwdChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRW
YWx1ZTo6Y3JlYXRlKHZhbHVlLCAicHQiX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFs
dWU+IHBjKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUs
ICJwYyJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gcHgoZG91YmxlIHZhbHVl
KSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInB4Il9zKTsgfQorICAgIHN0
YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBjcXcoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0
VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImNxdyJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRW
YWx1ZT4gY3FoKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFs
dWUsICJjcWgiX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGNxaShkb3VibGUg
dmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiY3FpIl9zKTsgfQor
ICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBjcWIoZG91YmxlIHZhbHVlKSB7IHJldHVybiBD
U1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImNxYiJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENT
U1VuaXRWYWx1ZT4gY3FtaW4oZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNy
ZWF0ZSh2YWx1ZSwgImNxbWluIl9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBj
cW1heChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAi
Y3FtYXgiX3MpOyB9CiAKIAogICAgIC8vIDxhbmdsZT4KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRW
YWx1ZT4gZGVnKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFs
dWUsICJkZWciKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBncmFkKGRvdWJsZSB2
YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJncmFkIik7IH0KLSAg
ICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gcmFkKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NT
VW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJyYWQiKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5p
dFZhbHVlPiB0dXJuKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUo
dmFsdWUsICJ0dXJuIik7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gZGVnKGRvdWJs
ZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJkZWciX3MpOyB9
CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGdyYWQoZG91YmxlIHZhbHVlKSB7IHJldHVy
biBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImdyYWQiX3MpOyB9CisgICAgc3RhdGljIFJl
ZjxDU1NVbml0VmFsdWU+IHJhZChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6
Y3JlYXRlKHZhbHVlLCAicmFkIl9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiB0
dXJuKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJ0
dXJuIl9zKTsgfQogCiAKICAgICAvLyA8dGltZT4KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1
ZT4gcyhkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAi
cyIpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IG1zKGRvdWJsZSB2YWx1ZSkgeyBy
ZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJtcyIpOyB9CisgICAgc3RhdGljIFJl
ZjxDU1NVbml0VmFsdWU+IHMoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNy
ZWF0ZSh2YWx1ZSwgInMiX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IG1zKGRv
dWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJtcyJfcyk7
IH0KIAogCiAgICAgLy8gPGZyZXF1ZW5jeT4KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4g
aHooZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImh6
Iik7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4ga0h6KGRvdWJsZSB2YWx1ZSkgeyBy
ZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJraHoiKTsgfQorICAgIHN0YXRpYyBS
ZWY8Q1NTVW5pdFZhbHVlPiBoeihkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6
Y3JlYXRlKHZhbHVlLCAiaHoiX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGtI
eihkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAia2h6
Il9zKTsgfQogCiAKICAgICAvLyA8cmVzb2x1dGlvbj4KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRW
YWx1ZT4gZHBpKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFs
dWUsICJkcGkiKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBkcGNtKGRvdWJsZSB2
YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJkcGNtIik7IH0KLSAg
ICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gZHBweChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENT
U1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiZHBweCIpOyB9CisgICAgc3RhdGljIFJlZjxDU1NV
bml0VmFsdWU+IGRwaShkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRl
KHZhbHVlLCAiZHBpIl9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBkcGNtKGRv
dWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJkcGNtIl9z
KTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBkcHB4KGRvdWJsZSB2YWx1ZSkgeyBy
ZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJkcHB4Il9zKTsgfQogCiAKICAgICAv
LyA8ZmxleD4KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gZnIoZG91YmxlIHZhbHVlKSB7
IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImZyIik7IH0KKyAgICBzdGF0aWMg
UmVmPENTU1VuaXRWYWx1ZT4gZnIoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6
OmNyZWF0ZSh2YWx1ZSwgImZyIl9zKTsgfQogCiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NOdW1lcmljVmFsdWUuY3BwIGIvU291cmNlL1dlYkNv
cmUvY3NzL3R5cGVkb20vQ1NTTnVtZXJpY1ZhbHVlLmNwcAppbmRleCBjZWUxN2M4NzA4ZjhjYjYz
OGFlMTEzYTM0ZTcxMmM1NDEyMzEwY2FmLi5lZDdiZjk4MzhiMjgzNmYwMGZkZDVhOTVhNDliN2Iw
YzAzNjY2ZWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NOdW1l
cmljVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU051bWVyaWNW
YWx1ZS5jcHAKQEAgLTE1Nyw3ICsxNTcsNyBAQCBSZWY8Q1NTTnVtZXJpY1ZhbHVlPiBDU1NOdW1l
cmljVmFsdWU6Om11bHRpcGx5SW50ZXJuYWwoVmVjdG9yPFJlZjxDU1NOdW1lcmljVmFsdQogICAg
ICAgICAgICAgZG91YmxlIHByb2R1Y3QgPSAxOwogICAgICAgICAgICAgZm9yIChjb25zdCBSZWY8
Q1NTTnVtZXJpY1ZhbHVlPiYgdmFsdWUgOiB2YWx1ZXMpCiAgICAgICAgICAgICAgICAgcHJvZHVj
dCAqPSBkb3duY2FzdDxDU1NVbml0VmFsdWU+KHZhbHVlLmdldCgpKS52YWx1ZSgpOwotICAgICAg
ICAgICAgU3RyaW5nIHVuaXQgPSBub25OdW1iZXJVbml0SW5kZXggPyBkb3duY2FzdDxDU1NVbml0
VmFsdWU+KHZhbHVlc1sqbm9uTnVtYmVyVW5pdEluZGV4XS5nZXQoKSkudW5pdCgpIDogIm51bWJl
ciI7CisgICAgICAgICAgICBTdHJpbmcgdW5pdCA9IG5vbk51bWJlclVuaXRJbmRleCA/IGRvd25j
YXN0PENTU1VuaXRWYWx1ZT4odmFsdWVzWypub25OdW1iZXJVbml0SW5kZXhdLmdldCgpKS51bml0
KCkgOiAibnVtYmVyIl9zOwogICAgICAgICAgICAgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRl
KHByb2R1Y3QsIHVuaXQpOwogICAgICAgICB9CiAgICAgfQpAQCAtMjM1LDcgKzIzNSw3IEBAIFJl
ZjxDU1NVbml0VmFsdWU+IENTU051bWVyaWNWYWx1ZTo6dG8oU3RyaW5nJiYgdW5pdCkKICAgICBV
TlVTRURfUEFSQU0odW5pdCk7CiAgICAgLy8gaHR0cHM6Ly9kcmFmdHMuY3NzLWhvdWRpbmkub3Jn
L2Nzcy10eXBlZC1vbS8jZG9tLWNzc251bWVyaWN2YWx1ZS10bwogICAgIC8vIEZJWE1FOiBhZGQg
aW1wbC4KLSAgICByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUoMS4wLCAibnVtYmVyIik7Cisg
ICAgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKDEuMCwgIm51bWJlciJfcyk7CiB9CiAKIFJl
ZjxDU1NNYXRoU3VtPiBDU1NOdW1lcmljVmFsdWU6OnRvU3VtKEZpeGVkVmVjdG9yPFN0cmluZz4m
JiB1bml0cykKQEAgLTI1OCw3ICsyNTgsNyBAQCBFeGNlcHRpb25PcjxSZWY8Q1NTTnVtZXJpY1Zh
bHVlPj4gQ1NTTnVtZXJpY1ZhbHVlOjpwYXJzZShTdHJpbmcmJiBjc3NUZXh0KQogICAgIFVOVVNF
RF9QQVJBTShjc3NUZXh0KTsKICAgICAvLyBodHRwczovL2RyYWZ0cy5jc3MtaG91ZGluaS5vcmcv
Y3NzLXR5cGVkLW9tLyNkb20tY3NzbnVtZXJpY3ZhbHVlLXBhcnNlCiAgICAgLy8gRklYTUU6IGFk
ZCBpbXBsLgotICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciwgIk5vdCBp
bXBsZW1lbnRlZCBFcnJvciIgfTsKKyAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVk
RXJyb3IsICJOb3QgaW1wbGVtZW50ZWQgRXJyb3IiX3MgfTsKIH0KIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTU3R5bGVW
YWx1ZUZhY3RvcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTU3R5bGVWYWx1
ZUZhY3RvcnkuY3BwCmluZGV4IDlmYzcwZmIxMDI3MTY4NzE0NzQ1MzY2NTJkNGNjMTMxMDRkZjM0
MjQuLjBhYmIzYTQ4Mjg1MmRiZDRkZDMxNzhmMjQ5ODMyZjU4NzhiNzFiYWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU1N0eWxlVmFsdWVGYWN0b3J5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NTdHlsZVZhbHVlRmFjdG9yeS5jcHAKQEAg
LTI2NCw3ICsyNjQsNyBAQCBFeGNlcHRpb25PcjxSZWY8Q1NTU3R5bGVWYWx1ZT4+IENTU1N0eWxl
VmFsdWVGYWN0b3J5OjpyZWlmeVZhbHVlKFJlZjxDU1NWYWx1ZT4mJgogICAgICAgICAvLyBSZWZl
ciB0byBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mt
dHlwZWQtb20vdGhlLXN0eWxlcHJvcGVydHltYXAvaW5saW5lL2dldC5odG1sCiAgICAgICAgIGF1
dG8gdmFsdWVMaXN0ID0gZG93bmNhc3Q8Q1NTVmFsdWVMaXN0Pihjc3NWYWx1ZS5wdHIoKSk7CiAg
ICAgICAgIGlmICghdmFsdWVMaXN0LT5sZW5ndGgoKSkKLSAgICAgICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBUeXBlRXJyb3IsICJUaGUgQ1NTVmFsdWVMaXN0IHNob3VsZCBub3QgYmUgZW1wdHku
IiB9OworICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIlRoZSBDU1NW
YWx1ZUxpc3Qgc2hvdWxkIG5vdCBiZSBlbXB0eS4iX3MgfTsKICAgICAgICAgCiAgICAgICAgIHJl
dHVybiByZWlmeVZhbHVlKFdURk1vdmUoKnZhbHVlTGlzdC0+YmVnaW4oKSksIGRvY3VtZW50KTsK
ICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0hUTUxDb252
ZXJ0ZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0hUTUxDb252ZXJ0ZXIubW0K
aW5kZXggYjY3YTYzNDk3MzdiODViYWMyOTMyY2UxOGFiODNmNzNmODEzMWFiMy4uMmQ1MzllZDJj
NzFmMjJiZjI4YmY5ZGY4NTQ0YTliZTk4OGVhODdlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9jb2NvYS9IVE1MQ29udmVydGVyLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvY29jb2EvSFRNTENvbnZlcnRlci5tbQpAQCAtNTk2LDcgKzU5Niw3IEBAIFN0cmluZyBI
VE1MQ29udmVydGVyQ2FjaGVzOjpwcm9wZXJ0eVZhbHVlRm9yTm9kZShOb2RlJiBub2RlLCBDU1NQ
cm9wZXJ0eUlEIHByb3BlCiAgICAgc3dpdGNoIChwcm9wZXJ0eUlkKSB7CiAgICAgY2FzZSBDU1NQ
cm9wZXJ0eURpc3BsYXk6CiAgICAgICAgIGlmIChlbGVtZW50Lmhhc1RhZ05hbWUoaGVhZFRhZykg
fHwgZWxlbWVudC5oYXNUYWdOYW1lKHNjcmlwdFRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKGFw
cGxldFRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKG5vZnJhbWVzVGFnKSkKLSAgICAgICAgICAg
IHJldHVybiAibm9uZSI7CisgICAgICAgICAgICByZXR1cm4gIm5vbmUiX3M7CiAgICAgICAgIGVs
c2UgaWYgKGVsZW1lbnQuaGFzVGFnTmFtZShhZGRyZXNzVGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05h
bWUoYmxvY2txdW90ZVRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKGJvZHlUYWcpIHx8IGVsZW1l
bnQuaGFzVGFnTmFtZShjZW50ZXJUYWcpCiAgICAgICAgICAgICAgfHwgZWxlbWVudC5oYXNUYWdO
YW1lKGRkVGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoZGlyVGFnKSB8fCBlbGVtZW50Lmhhc1Rh
Z05hbWUoZGl2VGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoZGxUYWcpCiAgICAgICAgICAgICAg
fHwgZWxlbWVudC5oYXNUYWdOYW1lKGR0VGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoZmllbGRz
ZXRUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZShmb3JtVGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05h
bWUoZnJhbWVUYWcpCkBAIC02MDQsNjIgKzYwNCw2MiBAQCBTdHJpbmcgSFRNTENvbnZlcnRlckNh
Y2hlczo6cHJvcGVydHlWYWx1ZUZvck5vZGUoTm9kZSYgbm9kZSwgQ1NTUHJvcGVydHlJRCBwcm9w
ZQogICAgICAgICAgICAgIHx8IGVsZW1lbnQuaGFzVGFnTmFtZShoMlRhZykgfHwgZWxlbWVudC5o
YXNUYWdOYW1lKGgzVGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoaDRUYWcpIHx8IGVsZW1lbnQu
aGFzVGFnTmFtZShoNVRhZykKICAgICAgICAgICAgICB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoaDZU
YWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZShpZnJhbWVUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFt
ZShtZW51VGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUobm9zY3JpcHRUYWcpCiAgICAgICAgICAg
ICAgfHwgZWxlbWVudC5oYXNUYWdOYW1lKG9sVGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUocFRh
ZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKHByZVRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKHVs
VGFnKSkKLSAgICAgICAgICAgIHJldHVybiAiYmxvY2siOworICAgICAgICAgICAgcmV0dXJuICJi
bG9jayJfczsKICAgICAgICAgZWxzZSBpZiAoZWxlbWVudC5oYXNUYWdOYW1lKGxpVGFnKSkKLSAg
ICAgICAgICAgIHJldHVybiAibGlzdC1pdGVtIjsKKyAgICAgICAgICAgIHJldHVybiAibGlzdC1p
dGVtIl9zOwogICAgICAgICBlbHNlIGlmIChlbGVtZW50Lmhhc1RhZ05hbWUodGFibGVUYWcpKQot
ICAgICAgICAgICAgcmV0dXJuICJ0YWJsZSI7CisgICAgICAgICAgICByZXR1cm4gInRhYmxlIl9z
OwogICAgICAgICBlbHNlIGlmIChlbGVtZW50Lmhhc1RhZ05hbWUodHJUYWcpKQotICAgICAgICAg
ICAgcmV0dXJuICJ0YWJsZS1yb3ciOworICAgICAgICAgICAgcmV0dXJuICJ0YWJsZS1yb3ciX3M7
CiAgICAgICAgIGVsc2UgaWYgKGVsZW1lbnQuaGFzVGFnTmFtZSh0aFRhZykgfHwgZWxlbWVudC5o
YXNUYWdOYW1lKHRkVGFnKSkKLSAgICAgICAgICAgIHJldHVybiAidGFibGUtY2VsbCI7CisgICAg
ICAgICAgICByZXR1cm4gInRhYmxlLWNlbGwiX3M7CiAgICAgICAgIGVsc2UgaWYgKGVsZW1lbnQu
aGFzVGFnTmFtZSh0aGVhZFRhZykpCi0gICAgICAgICAgICByZXR1cm4gInRhYmxlLWhlYWRlci1n
cm91cCI7CisgICAgICAgICAgICByZXR1cm4gInRhYmxlLWhlYWRlci1ncm91cCJfczsKICAgICAg
ICAgZWxzZSBpZiAoZWxlbWVudC5oYXNUYWdOYW1lKHRib2R5VGFnKSkKLSAgICAgICAgICAgIHJl
dHVybiAidGFibGUtcm93LWdyb3VwIjsKKyAgICAgICAgICAgIHJldHVybiAidGFibGUtcm93LWdy
b3VwIl9zOwogICAgICAgICBlbHNlIGlmIChlbGVtZW50Lmhhc1RhZ05hbWUodGZvb3RUYWcpKQot
ICAgICAgICAgICAgcmV0dXJuICJ0YWJsZS1mb290ZXItZ3JvdXAiOworICAgICAgICAgICAgcmV0
dXJuICJ0YWJsZS1mb290ZXItZ3JvdXAiX3M7CiAgICAgICAgIGVsc2UgaWYgKGVsZW1lbnQuaGFz
VGFnTmFtZShjb2xUYWcpKQotICAgICAgICAgICAgcmV0dXJuICJ0YWJsZS1jb2x1bW4iOworICAg
ICAgICAgICAgcmV0dXJuICJ0YWJsZS1jb2x1bW4iX3M7CiAgICAgICAgIGVsc2UgaWYgKGVsZW1l
bnQuaGFzVGFnTmFtZShjb2xncm91cFRhZykpCi0gICAgICAgICAgICByZXR1cm4gInRhYmxlLWNv
bHVtbi1ncm91cCI7CisgICAgICAgICAgICByZXR1cm4gInRhYmxlLWNvbHVtbi1ncm91cCJfczsK
ICAgICAgICAgZWxzZSBpZiAoZWxlbWVudC5oYXNUYWdOYW1lKGNhcHRpb25UYWcpKQotICAgICAg
ICAgICAgcmV0dXJuICJ0YWJsZS1jYXB0aW9uIjsKKyAgICAgICAgICAgIHJldHVybiAidGFibGUt
Y2FwdGlvbiJfczsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdoaXRlU3Bh
Y2U6CiAgICAgICAgIGlmIChlbGVtZW50Lmhhc1RhZ05hbWUocHJlVGFnKSkKLSAgICAgICAgICAg
IHJldHVybiAicHJlIjsKKyAgICAgICAgICAgIHJldHVybiAicHJlIl9zOwogICAgICAgICBpbmhl
cml0ID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUZvbnRTdHls
ZToKICAgICAgICAgaWYgKGVsZW1lbnQuaGFzVGFnTmFtZShpVGFnKSB8fCBlbGVtZW50Lmhhc1Rh
Z05hbWUoY2l0ZVRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKGVtVGFnKSB8fCBlbGVtZW50Lmhh
c1RhZ05hbWUodmFyVGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoYWRkcmVzc1RhZykpCi0gICAg
ICAgICAgICByZXR1cm4gIml0YWxpYyI7CisgICAgICAgICAgICByZXR1cm4gIml0YWxpYyJfczsK
ICAgICAgICAgaW5oZXJpdCA9IHRydWU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTUHJv
cGVydHlGb250V2VpZ2h0OgogICAgICAgICBpZiAoZWxlbWVudC5oYXNUYWdOYW1lKGJUYWcpIHx8
IGVsZW1lbnQuaGFzVGFnTmFtZShzdHJvbmdUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZSh0aFRh
ZykpCi0gICAgICAgICAgICByZXR1cm4gImJvbGRlciI7CisgICAgICAgICAgICByZXR1cm4gImJv
bGRlciJfczsKICAgICAgICAgaW5oZXJpdCA9IHRydWU7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgQ1NTUHJvcGVydHlUZXh0RGVjb3JhdGlvbkxpbmU6CiAgICAgICAgIGlmIChlbGVtZW50Lmhh
c1RhZ05hbWUodVRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKGluc1RhZykpCi0gICAgICAgICAg
ICByZXR1cm4gInVuZGVybGluZSI7CisgICAgICAgICAgICByZXR1cm4gInVuZGVybGluZSJfczsK
ICAgICAgICAgZWxzZSBpZiAoZWxlbWVudC5oYXNUYWdOYW1lKHNUYWcpIHx8IGVsZW1lbnQuaGFz
VGFnTmFtZShzdHJpa2VUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZShkZWxUYWcpKQotICAgICAg
ICAgICAgcmV0dXJuICJsaW5lLXRocm91Z2giOworICAgICAgICAgICAgcmV0dXJuICJsaW5lLXRo
cm91Z2giX3M7CiAgICAgICAgIGluaGVyaXQgPSB0cnVlOyAvLyBGSVhNRTogVGhpcyBpcyBub3Qg
c3RyaWN0bHkgY29ycmVjdAogICAgICAgICBicmVhazsKICAgICBjYXNlIENTU1Byb3BlcnR5VGV4
dEFsaWduOgogICAgICAgICBpZiAoZWxlbWVudC5oYXNUYWdOYW1lKGNlbnRlclRhZykgfHwgZWxl
bWVudC5oYXNUYWdOYW1lKGNhcHRpb25UYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZSh0aFRhZykp
Ci0gICAgICAgICAgICByZXR1cm4gImNlbnRlciI7CisgICAgICAgICAgICByZXR1cm4gImNlbnRl
ciJfczsKICAgICAgICAgaW5oZXJpdCA9IHRydWU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2Ug
Q1NTUHJvcGVydHlWZXJ0aWNhbEFsaWduOgogICAgICAgICBpZiAoZWxlbWVudC5oYXNUYWdOYW1l
KHN1cFRhZykpCi0gICAgICAgICAgICByZXR1cm4gInN1cGVyIjsKKyAgICAgICAgICAgIHJldHVy
biAic3VwZXIiX3M7CiAgICAgICAgIGVsc2UgaWYgKGVsZW1lbnQuaGFzVGFnTmFtZShzdWJUYWcp
KQotICAgICAgICAgICAgcmV0dXJuICJzdWIiOworICAgICAgICAgICAgcmV0dXJuICJzdWIiX3M7
CiAgICAgICAgIGVsc2UgaWYgKGVsZW1lbnQuaGFzVGFnTmFtZSh0aGVhZFRhZykgfHwgZWxlbWVu
dC5oYXNUYWdOYW1lKHRib2R5VGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUodGZvb3RUYWcpKQot
ICAgICAgICAgICAgcmV0dXJuICJtaWRkbGUiOworICAgICAgICAgICAgcmV0dXJuICJtaWRkbGUi
X3M7CiAgICAgICAgIGVsc2UgaWYgKGVsZW1lbnQuaGFzVGFnTmFtZSh0clRhZykgfHwgZWxlbWVu
dC5oYXNUYWdOYW1lKHRoVGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUodGRUYWcpKQogICAgICAg
ICAgICAgaW5oZXJpdCA9IHRydWU7CiAgICAgICAgIGJyZWFrOwpAQCAtMTg1Miw3ICsxODUyLDcg
QEAgQk9PTCBIVE1MQ29udmVydGVyOjpfcHJvY2Vzc0VsZW1lbnQoRWxlbWVudCYgZWxlbWVudCwg
TlNJbnRlZ2VyIGRlcHRoKQogICAgICAgICBSZXRhaW5QdHI8TlNUZXh0TGlzdD4gbGlzdDsKICAg
ICAgICAgU3RyaW5nIGxpc3RTdHlsZVR5cGUgPSBfY2FjaGVzLT5wcm9wZXJ0eVZhbHVlRm9yTm9k
ZShlbGVtZW50LCBDU1NQcm9wZXJ0eUxpc3RTdHlsZVR5cGUpOwogICAgICAgICBpZiAoIWxpc3RT
dHlsZVR5cGUubGVuZ3RoKCkpCi0gICAgICAgICAgICBsaXN0U3R5bGVUeXBlID0gImRlY2ltYWwi
OworICAgICAgICAgICAgbGlzdFN0eWxlVHlwZSA9ICJkZWNpbWFsIl9zOwogICAgICAgICBsaXN0
ID0gYWRvcHROUyhbW1BsYXRmb3JtTlNUZXh0TGlzdCBhbGxvY10gaW5pdFdpdGhNYXJrZXJGb3Jt
YXQ6U3RyaW5nKCJ7IiArIGxpc3RTdHlsZVR5cGUgKyAifSIpIG9wdGlvbnM6MF0pOwogICAgICAg
ICBpZiAoaXM8SFRNTE9MaXN0RWxlbWVudD4oZWxlbWVudCkpIHsKICAgICAgICAgICAgIE5TSW50
ZWdlciBzdGFydGluZ0l0ZW1OdW1iZXIgPSBkb3duY2FzdDxIVE1MT0xpc3RFbGVtZW50PihlbGVt
ZW50KS5zdGFydCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9X
ZWJDb250ZW50UmVhZGVyQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL1dl
YkNvbnRlbnRSZWFkZXJDb2NvYS5tbQppbmRleCBlODg2YTI3ZGJkNjIyNDBhZDk4NDIwNDVjZWI4
MzA1MGEyZmMwM2RmLi5kOGQxNDBkZWY3ZDNhMzhiMDI0YTQxMTM0YjY1OGU3ZjMxNDE0ZTJhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL1dlYkNvbnRlbnRSZWFkZXJD
b2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL1dlYkNvbnRlbnRSZWFk
ZXJDb2NvYS5tbQpAQCAtNzYyLDcgKzc2Miw3IEBAIHN0YXRpYyBSZWY8SFRNTEVsZW1lbnQ+IGF0
dGFjaG1lbnRGb3JEYXRhKEZyYW1lJiBmcmFtZSwgRnJhZ21lbnRlZFNoYXJlZEJ1ZmZlciYKICAg
ICBhdXRvIGF0dGFjaG1lbnRUeXBlID0gdHlwZUZvckF0dGFjaG1lbnRFbGVtZW50KGNvbnRlbnRU
eXBlKTsKIAogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgaW5zdGVhZCBhc2sgQ29yZVNlcnZpY2Vz
IGZvciBhIHByZWZlcnJlZCBuYW1lIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGdpdmVuIGNvbnRlbnQg
dHlwZS4KLSAgICBzdGF0aWMgY29uc3QgY2hhciogZGVmYXVsdEF0dGFjaG1lbnROYW1lID0gImZp
bGUiOworICAgIHN0YXRpYyBjb25zdGV4cHIgQVNDSUlMaXRlcmFsIGRlZmF1bHRBdHRhY2htZW50
TmFtZSA9ICJmaWxlIl9zOwogCiAgICAgU3RyaW5nIGZpbGVOYW1lOwogICAgIGlmIChuYW1lLmlz
RW1wdHkoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jb2NvYS9CdW5kbGVS
ZXNvdXJjZUxvYWRlci5tbSBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jb2NvYS9CdW5kbGVSZXNv
dXJjZUxvYWRlci5tbQppbmRleCBjM2I3YjdmZTU1ZGMzMzA0M2NjOGFlMzljY2ZhNDdkYjc2OTYz
ZWNmLi45YzI3OTExMzk1NzllMGQ0NjdjMzgwYTUyM2Q1NTE1MTQyMjMxYWIxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY29jb2EvQnVuZGxlUmVzb3VyY2VMb2FkZXIubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NvY29hL0J1bmRsZVJlc291cmNlTG9hZGVyLm1tCkBA
IC02NSwxMyArNjUsMTMgQEAgdm9pZCBsb2FkUmVzb3VyY2VGcm9tQnVuZGxlKFJlc291cmNlTG9h
ZGVyJiBsb2FkZXIsIGNvbnN0IFN0cmluZyYgc3ViZGlyZWN0b3J5KQogCiAgICAgICAgIFJ1bkxv
b3A6Om1haW4oKS5kaXNwYXRjaChbcHJvdGVjdGVkTG9hZGVyID0gV1RGTW92ZShwcm90ZWN0ZWRM
b2FkZXIpLCB1cmwgPSBXVEZNb3ZlKHVybCkuaXNvbGF0ZWRDb3B5KCksIGJ1ZmZlciA9IFNoYXJl
ZEJ1ZmZlcjo6Y3JlYXRlKGRhdGEpXSgpIG11dGFibGUgewogICAgICAgICAgICAgYXV0byBtaW1l
VHlwZSA9IE1JTUVUeXBlUmVnaXN0cnk6Om1pbWVUeXBlRm9yUGF0aCh1cmwucGF0aCgpKTsKLSAg
ICAgICAgICAgIFJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UgeyB1cmwsIG1pbWVUeXBlLCBzdGF0
aWNfY2FzdDxsb25nIGxvbmc+KGJ1ZmZlci0+c2l6ZSgpKSwgTUlNRVR5cGVSZWdpc3RyeTo6aXNU
ZXh0TUlNRVR5cGUobWltZVR5cGUpID8gIlVURi04Il9zIDogbnVsbHB0ciB9OworICAgICAgICAg
ICAgUmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSB7IHVybCwgbWltZVR5cGUsIHN0YXRpY19jYXN0
PGxvbmcgbG9uZz4oYnVmZmVyLT5zaXplKCkpLCBNSU1FVHlwZVJlZ2lzdHJ5Ojppc1RleHRNSU1F
VHlwZShtaW1lVHlwZSkgPyAiVVRGLTgiX3MgOiBTdHJpbmcoKSB9OwogICAgICAgICAgICAgcmVz
cG9uc2Uuc2V0SFRUUFN0YXR1c0NvZGUoMjAwKTsKICAgICAgICAgICAgIHJlc3BvbnNlLnNldEhU
VFBTdGF0dXNUZXh0KCJPSyJfcyk7CiAgICAgICAgICAgICByZXNwb25zZS5zZXRTb3VyY2UoUmVz
b3VyY2VSZXNwb25zZTo6U291cmNlOjpOZXR3b3JrKTsKIAogICAgICAgICAgICAgLy8gQWxsb3cg
aW1hZ2VzIHRvIGxvYWQuCi0gICAgICAgICAgICByZXNwb25zZS5hZGRIVFRQSGVhZGVyRmllbGQo
SFRUUEhlYWRlck5hbWU6OkFjY2Vzc0NvbnRyb2xBbGxvd09yaWdpbiwgIioiKTsKKyAgICAgICAg
ICAgIHJlc3BvbnNlLmFkZEhUVFBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6QWNjZXNzQ29u
dHJvbEFsbG93T3JpZ2luLCAiKiJfcyk7CiAKICAgICAgICAgICAgIHByb3RlY3RlZExvYWRlci0+
ZGVsaXZlclJlc3BvbnNlQW5kRGF0YShyZXNwb25zZSwgV1RGTW92ZShidWZmZXIpKTsKICAgICAg
ICAgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL1Jlc291cmNlVXNh
Z2VPdmVybGF5Q29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL1Jlc291cmNlVXNh
Z2VPdmVybGF5Q29jb2EubW0KaW5kZXggMTE0ODRkMGM1OTJjMDdmZjk0ZWMxNzdhMDEyODAxMDc5
YzM5NTk3MS4uZTFkYzI5Yjg2MmQ0MjI0M2E5YTI5MWEwZWQxZjVmNDMzZmNkYTFlYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9SZXNvdXJjZVVzYWdlT3ZlcmxheUNvY29h
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvUmVzb3VyY2VVc2FnZU92ZXJsYXlD
b2NvYS5tbQpAQCAtMTYxLDE4ICsxNjEsMTggQEAgc3RydWN0IEhpc3RvcmljUmVzb3VyY2VVc2Fn
ZURhdGEgewogSGlzdG9yaWNSZXNvdXJjZVVzYWdlRGF0YTo6SGlzdG9yaWNSZXNvdXJjZVVzYWdl
RGF0YSgpCiB7CiAgICAgLy8gVk0gdGFnIGNhdGVnb3JpZXMuCi0gICAgY2F0ZWdvcmllc1tNZW1v
cnlDYXRlZ29yeTo6SlNKSVRdID0gSGlzdG9yaWNNZW1vcnlDYXRlZ29yeUluZm8oTWVtb3J5Q2F0
ZWdvcnk6OkpTSklULCB7IDI1NSwgOTYsIDI1NSB9LCAiSlMgSklUIik7Ci0gICAgY2F0ZWdvcmll
c1tNZW1vcnlDYXRlZ29yeTo6R2lnYWNhZ2VdID0gSGlzdG9yaWNNZW1vcnlDYXRlZ29yeUluZm8o
TWVtb3J5Q2F0ZWdvcnk6OkdpZ2FjYWdlLCB7IDEwMSwgNzksIDI0MCB9LCAiR2lnYWNhZ2UiKTsK
LSAgICBjYXRlZ29yaWVzW01lbW9yeUNhdGVnb3J5OjpJbWFnZXNdID0gSGlzdG9yaWNNZW1vcnlD
YXRlZ29yeUluZm8oTWVtb3J5Q2F0ZWdvcnk6OkltYWdlcywgQ29sb3I6OnllbGxvdywgIkltYWdl
cyIpOwotICAgIGNhdGVnb3JpZXNbTWVtb3J5Q2F0ZWdvcnk6OkxheWVyc10gPSBIaXN0b3JpY01l
bW9yeUNhdGVnb3J5SW5mbyhNZW1vcnlDYXRlZ29yeTo6TGF5ZXJzLCBDb2xvcjo6Y3lhbiwgIkxh
eWVycyIpOwotICAgIGNhdGVnb3JpZXNbTWVtb3J5Q2F0ZWdvcnk6OkxpYmNNYWxsb2NdID0gSGlz
dG9yaWNNZW1vcnlDYXRlZ29yeUluZm8oTWVtb3J5Q2F0ZWdvcnk6OkxpYmNNYWxsb2MsIENvbG9y
OjpncmVlbiwgImxpYmMgbWFsbG9jIik7Ci0gICAgY2F0ZWdvcmllc1tNZW1vcnlDYXRlZ29yeTo6
Ym1hbGxvY10gPSBIaXN0b3JpY01lbW9yeUNhdGVnb3J5SW5mbyhNZW1vcnlDYXRlZ29yeTo6Ym1h
bGxvYywgeyAyNTUsIDk2LCA5NiB9LCAiYm1hbGxvYyIpOwotICAgIGNhdGVnb3JpZXNbTWVtb3J5
Q2F0ZWdvcnk6Oklzb0hlYXBdID0gSGlzdG9yaWNNZW1vcnlDYXRlZ29yeUluZm8oTWVtb3J5Q2F0
ZWdvcnk6Oklzb0hlYXAsIHsgMTI4LCAxNTksIDY0IH0sICJJc29IZWFwIik7Ci0gICAgY2F0ZWdv
cmllc1tNZW1vcnlDYXRlZ29yeTo6T3RoZXJdID0gSGlzdG9yaWNNZW1vcnlDYXRlZ29yeUluZm8o
TWVtb3J5Q2F0ZWdvcnk6Ok90aGVyLCB7IDE5MiwgMjU1LCAwIH0sICJPdGhlciIpOworICAgIGNh
dGVnb3JpZXNbTWVtb3J5Q2F0ZWdvcnk6OkpTSklUXSA9IEhpc3RvcmljTWVtb3J5Q2F0ZWdvcnlJ
bmZvKE1lbW9yeUNhdGVnb3J5OjpKU0pJVCwgeyAyNTUsIDk2LCAyNTUgfSwgIkpTIEpJVCJfcyk7
CisgICAgY2F0ZWdvcmllc1tNZW1vcnlDYXRlZ29yeTo6R2lnYWNhZ2VdID0gSGlzdG9yaWNNZW1v
cnlDYXRlZ29yeUluZm8oTWVtb3J5Q2F0ZWdvcnk6OkdpZ2FjYWdlLCB7IDEwMSwgNzksIDI0MCB9
LCAiR2lnYWNhZ2UiX3MpOworICAgIGNhdGVnb3JpZXNbTWVtb3J5Q2F0ZWdvcnk6OkltYWdlc10g
PSBIaXN0b3JpY01lbW9yeUNhdGVnb3J5SW5mbyhNZW1vcnlDYXRlZ29yeTo6SW1hZ2VzLCBDb2xv
cjo6eWVsbG93LCAiSW1hZ2VzIl9zKTsKKyAgICBjYXRlZ29yaWVzW01lbW9yeUNhdGVnb3J5OjpM
YXllcnNdID0gSGlzdG9yaWNNZW1vcnlDYXRlZ29yeUluZm8oTWVtb3J5Q2F0ZWdvcnk6OkxheWVy
cywgQ29sb3I6OmN5YW4sICJMYXllcnMiX3MpOworICAgIGNhdGVnb3JpZXNbTWVtb3J5Q2F0ZWdv
cnk6OkxpYmNNYWxsb2NdID0gSGlzdG9yaWNNZW1vcnlDYXRlZ29yeUluZm8oTWVtb3J5Q2F0ZWdv
cnk6OkxpYmNNYWxsb2MsIENvbG9yOjpncmVlbiwgImxpYmMgbWFsbG9jIl9zKTsKKyAgICBjYXRl
Z29yaWVzW01lbW9yeUNhdGVnb3J5OjpibWFsbG9jXSA9IEhpc3RvcmljTWVtb3J5Q2F0ZWdvcnlJ
bmZvKE1lbW9yeUNhdGVnb3J5OjpibWFsbG9jLCB7IDI1NSwgOTYsIDk2IH0sICJibWFsbG9jIl9z
KTsKKyAgICBjYXRlZ29yaWVzW01lbW9yeUNhdGVnb3J5OjpJc29IZWFwXSA9IEhpc3RvcmljTWVt
b3J5Q2F0ZWdvcnlJbmZvKE1lbW9yeUNhdGVnb3J5OjpJc29IZWFwLCB7IDEyOCwgMTU5LCA2NCB9
LCAiSXNvSGVhcCJfcyk7CisgICAgY2F0ZWdvcmllc1tNZW1vcnlDYXRlZ29yeTo6T3RoZXJdID0g
SGlzdG9yaWNNZW1vcnlDYXRlZ29yeUluZm8oTWVtb3J5Q2F0ZWdvcnk6Ok90aGVyLCB7IDE5Miwg
MjU1LCAwIH0sICJPdGhlciJfcyk7CiAKICAgICAvLyBTdWIgY2F0ZWdvcmllcyAoZS5nIGJyZWFr
ZG93biBvZiBibWFsbG9jIHRhZy4pCi0gICAgY2F0ZWdvcmllc1tNZW1vcnlDYXRlZ29yeTo6R0NI
ZWFwXSA9IEhpc3RvcmljTWVtb3J5Q2F0ZWdvcnlJbmZvKE1lbW9yeUNhdGVnb3J5OjpHQ0hlYXAs
IHsgMTYwLCAxNjAsIDI1NSB9LCAiR0MgaGVhcCIsIHRydWUpOwotICAgIGNhdGVnb3JpZXNbTWVt
b3J5Q2F0ZWdvcnk6OkdDT3duZWRdID0gSGlzdG9yaWNNZW1vcnlDYXRlZ29yeUluZm8oTWVtb3J5
Q2F0ZWdvcnk6OkdDT3duZWQsIHsgMjU1LCAxOTIsIDk2IH0sICJHQyBvd25lZCIsIHRydWUpOwor
ICAgIGNhdGVnb3JpZXNbTWVtb3J5Q2F0ZWdvcnk6OkdDSGVhcF0gPSBIaXN0b3JpY01lbW9yeUNh
dGVnb3J5SW5mbyhNZW1vcnlDYXRlZ29yeTo6R0NIZWFwLCB7IDE2MCwgMTYwLCAyNTUgfSwgIkdD
IGhlYXAiX3MsIHRydWUpOworICAgIGNhdGVnb3JpZXNbTWVtb3J5Q2F0ZWdvcnk6OkdDT3duZWRd
ID0gSGlzdG9yaWNNZW1vcnlDYXRlZ29yeUluZm8oTWVtb3J5Q2F0ZWdvcnk6OkdDT3duZWQsIHsg
MjU1LCAxOTIsIDk2IH0sICJHQyBvd25lZCJfcywgdHJ1ZSk7CiAKICNpZm5kZWYgTkRFQlVHCiAg
ICAgLy8gRW5zdXJlIHRoaXMgYWxpZ25zIHdpdGggUmVzb3VyY2VVc2FnZURhdGEncyBjYXRlZ29y
eSBvcmRlci4KQEAgLTMxMSw3ICszMTEsNyBAQCBzdGF0aWMgdm9pZCBkcmF3Q3B1SGlzdG9yeShD
R0NvbnRleHRSZWYgY29udGV4dCwgZmxvYXQgeDEsIGZsb2F0IHkxLCBmbG9hdCB5MiwgUgogICAg
ICAgICBpKys7CiAgICAgfSk7CiAKLSAgICBkcmF3R3JhcGhMYWJlbChjb250ZXh0LCB4MSwgeTIs
ICJDUFUiKTsKKyAgICBkcmF3R3JhcGhMYWJlbChjb250ZXh0LCB4MSwgeTIsICJDUFUiX3MpOwog
fQogCiBzdGF0aWMgdm9pZCBkcmF3R0NIaXN0b3J5KENHQ29udGV4dFJlZiBjb250ZXh0LCBmbG9h
dCB4MSwgZmxvYXQgeTEsIGZsb2F0IHkyLCBSaW5nQnVmZmVyPHNpemVfdD4mIHNpemVIaXN0b3J5
LCBSaW5nQnVmZmVyPHNpemVfdD4mIGNhcGFjaXR5SGlzdG9yeSkKQEAgLTM1NCw3ICszNTQsNyBA
QCBzdGF0aWMgdm9pZCBkcmF3R0NIaXN0b3J5KENHQ29udGV4dFJlZiBjb250ZXh0LCBmbG9hdCB4
MSwgZmxvYXQgeTEsIGZsb2F0IHkyLCBSaQogICAgICAgICBpKys7CiAgICAgfSk7CiAKLSAgICBk
cmF3R3JhcGhMYWJlbChjb250ZXh0LCB4MSwgeTIsICJHQyIpOworICAgIGRyYXdHcmFwaExhYmVs
KGNvbnRleHQsIHgxLCB5MiwgIkdDIl9zKTsKIH0KIAogc3RhdGljIHZvaWQgZHJhd01lbUhpc3Rv
cnkoQ0dDb250ZXh0UmVmIGNvbnRleHQsIGZsb2F0IHgxLCBmbG9hdCB5MSwgZmxvYXQgeTIsIEhp
c3RvcmljUmVzb3VyY2VVc2FnZURhdGEmIGRhdGEpCkBAIC00MDAsNyArNDAwLDcgQEAgc3RhdGlj
IHZvaWQgZHJhd01lbUhpc3RvcnkoQ0dDb250ZXh0UmVmIGNvbnRleHQsIGZsb2F0IHgxLCBmbG9h
dCB5MSwgZmxvYXQgeTIsIEgKICAgICAgICAgKytpOwogICAgIH0KIAotICAgIGRyYXdHcmFwaExh
YmVsKGNvbnRleHQsIHgxLCB5MiwgIk1lbSIpOworICAgIGRyYXdHcmFwaExhYmVsKGNvbnRleHQs
IHgxLCB5MiwgIk1lbSJfcyk7CiB9CiAKIHN0YXRpYyBjb25zdCBmbG9hdCBmdWxsQ2lyY2xlSW5S
YWRpYW5zID0gcGlGbG9hdCAqIDI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2Nv
Y29hL1NldHRpbmdzQmFzZUNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9TZXR0
aW5nc0Jhc2VDb2NvYS5tbQppbmRleCBkMjFkOTlkODYxYjhmYTkyODJlOTFhOWFhNGEzMDFmOGZi
NjRkMTc3Li40Nzc0Y2UwOGE1YjhiNTBmNjRhMTYyMDJmNTM4YjRmNGY3ZWYyZTQ4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL1NldHRpbmdzQmFzZUNvY29hLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvU2V0dGluZ3NCYXNlQ29jb2EubW0KQEAgLTQzLDE1
ICs0MywxNSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHZvaWQgU2V0dGluZ3NCYXNlOjppbml0
aWFsaXplRGVmYXVsdEZvbnRGYW1pbGllcygpCiB7Ci0gICAgc2V0U3RhbmRhcmRGb250RmFtaWx5
KCJTb25ndGkgVEMiLCBVU0NSSVBUX1RSQURJVElPTkFMX0hBTik7Ci0gICAgc2V0U3RhbmRhcmRG
b250RmFtaWx5KCJTb25ndGkgU0MiLCBVU0NSSVBUX1NJTVBMSUZJRURfSEFOKTsKLSAgICBzZXRT
dGFuZGFyZEZvbnRGYW1pbHkoIkhpcmFnaW5vIE1pbmNobyBQcm9OIiwgVVNDUklQVF9LQVRBS0FO
QV9PUl9ISVJBR0FOQSk7Ci0gICAgc2V0U3RhbmRhcmRGb250RmFtaWx5KCJBcHBsZU15dW5nam8i
LCBVU0NSSVBUX0hBTkdVTCk7Ci0KLSAgICBzZXRTdGFuZGFyZEZvbnRGYW1pbHkoIlRpbWVzIiwg
VVNDUklQVF9DT01NT04pOwotICAgIHNldEZpeGVkRm9udEZhbWlseSgiQ291cmllciIsIFVTQ1JJ
UFRfQ09NTU9OKTsKLSAgICBzZXRTZXJpZkZvbnRGYW1pbHkoIlRpbWVzIiwgVVNDUklQVF9DT01N
T04pOwotICAgIHNldFNhbnNTZXJpZkZvbnRGYW1pbHkoIkhlbHZldGljYSIsIFVTQ1JJUFRfQ09N
TU9OKTsKKyAgICBzZXRTdGFuZGFyZEZvbnRGYW1pbHkoIlNvbmd0aSBUQyJfcywgVVNDUklQVF9U
UkFESVRJT05BTF9IQU4pOworICAgIHNldFN0YW5kYXJkRm9udEZhbWlseSgiU29uZ3RpIFNDIl9z
LCBVU0NSSVBUX1NJTVBMSUZJRURfSEFOKTsKKyAgICBzZXRTdGFuZGFyZEZvbnRGYW1pbHkoIkhp
cmFnaW5vIE1pbmNobyBQcm9OIl9zLCBVU0NSSVBUX0tBVEFLQU5BX09SX0hJUkFHQU5BKTsKKyAg
ICBzZXRTdGFuZGFyZEZvbnRGYW1pbHkoIkFwcGxlTXl1bmdqbyJfcywgVVNDUklQVF9IQU5HVUwp
OworCisgICAgc2V0U3RhbmRhcmRGb250RmFtaWx5KCJUaW1lcyJfcywgVVNDUklQVF9DT01NT04p
OworICAgIHNldEZpeGVkRm9udEZhbWlseSgiQ291cmllciJfcywgVVNDUklQVF9DT01NT04pOwor
ICAgIHNldFNlcmlmRm9udEZhbWlseSgiVGltZXMiX3MsIFVTQ1JJUFRfQ09NTU9OKTsKKyAgICBz
ZXRTYW5zU2VyaWZGb250RmFtaWx5KCJIZWx2ZXRpY2EiX3MsIFVTQ1JJUFRfQ09NTU9OKTsKIH0K
IAogYm9vbCBTZXR0aW5nc0Jhc2U6OnBsYXRmb3JtRGVmYXVsdE1lZGlhU291cmNlRW5hYmxlZCgp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9QYWdlTWFjLm1tIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9tYWMvUGFnZU1hYy5tbQppbmRleCA0NDlhOGZmNmNkNjk0ZDI0YzVhZjE0
YmRlYWY1NGM2MjRjMjJjMTFiLi45ZjJkM2Y1ZmQzZGY3ZmM2NWI4ZjJiZDUyY2M2OWYyMmJiMWJh
Y2U3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9QYWdlTWFjLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1BhZ2VNYWMubW0KQEAgLTU3LDE1ICs1NywxNSBAQCB2
b2lkIFBhZ2U6OnBsYXRmb3JtSW5pdGlhbGl6ZSgpCiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFn
IG9uY2VGbGFnOwogICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbXSB7CiAjaWYgRU5BQkxF
KFRSRUVfREVCVUdHSU5HKQotICAgICAgICBQQUw6OnJlZ2lzdGVyTm90aWZ5Q2FsbGJhY2soImNv
bS5hcHBsZS5XZWJLaXQuc2hvd1JlbmRlclRyZWUiLCBwcmludFJlbmRlclRyZWVGb3JMaXZlRG9j
dW1lbnRzKTsKLSAgICAgICAgUEFMOjpyZWdpc3Rlck5vdGlmeUNhbGxiYWNrKCJjb20uYXBwbGUu
V2ViS2l0LnNob3dMYXllclRyZWUiLCBwcmludExheWVyVHJlZUZvckxpdmVEb2N1bWVudHMpOwot
ICAgICAgICBQQUw6OnJlZ2lzdGVyTm90aWZ5Q2FsbGJhY2soImNvbS5hcHBsZS5XZWJLaXQuc2hv
d0dyYXBoaWNzTGF5ZXJUcmVlIiwgcHJpbnRHcmFwaGljc0xheWVyVHJlZUZvckxpdmVEb2N1bWVu
dHMpOworICAgICAgICBQQUw6OnJlZ2lzdGVyTm90aWZ5Q2FsbGJhY2soImNvbS5hcHBsZS5XZWJL
aXQuc2hvd1JlbmRlclRyZWUiX3MsIHByaW50UmVuZGVyVHJlZUZvckxpdmVEb2N1bWVudHMpOwor
ICAgICAgICBQQUw6OnJlZ2lzdGVyTm90aWZ5Q2FsbGJhY2soImNvbS5hcHBsZS5XZWJLaXQuc2hv
d0xheWVyVHJlZSJfcywgcHJpbnRMYXllclRyZWVGb3JMaXZlRG9jdW1lbnRzKTsKKyAgICAgICAg
UEFMOjpyZWdpc3Rlck5vdGlmeUNhbGxiYWNrKCJjb20uYXBwbGUuV2ViS2l0LnNob3dHcmFwaGlj
c0xheWVyVHJlZSJfcywgcHJpbnRHcmFwaGljc0xheWVyVHJlZUZvckxpdmVEb2N1bWVudHMpOwog
I2lmIEVOQUJMRShMQVlPVVRfRk9STUFUVElOR19DT05URVhUKQotICAgICAgICBQQUw6OnJlZ2lz
dGVyTm90aWZ5Q2FsbGJhY2soImNvbS5hcHBsZS5XZWJLaXQuc2hvd0xheW91dFRyZWUiLCBMYXlv
dXQ6OnByaW50TGF5b3V0VHJlZUZvckxpdmVEb2N1bWVudHMpOworICAgICAgICBQQUw6OnJlZ2lz
dGVyTm90aWZ5Q2FsbGJhY2soImNvbS5hcHBsZS5XZWJLaXQuc2hvd0xheW91dFRyZWUiX3MsIExh
eW91dDo6cHJpbnRMYXlvdXRUcmVlRm9yTGl2ZURvY3VtZW50cyk7CiAjZW5kaWYKICNlbmRpZiAv
LyBFTkFCTEUoVFJFRV9ERUJVR0dJTkcpCiAKLSAgICAgICAgUEFMOjpyZWdpc3Rlck5vdGlmeUNh
bGxiYWNrKCJjb20uYXBwbGUuV2ViS2l0LnNob3dBbGxEb2N1bWVudHMiLCBbXSB7CisgICAgICAg
IFBBTDo6cmVnaXN0ZXJOb3RpZnlDYWxsYmFjaygiY29tLmFwcGxlLldlYktpdC5zaG93QWxsRG9j
dW1lbnRzIl9zLCBbXSB7CiAgICAgICAgICAgICB1bnNpZ25lZCBudW1QYWdlcyA9IDA7CiAgICAg
ICAgICAgICBQYWdlOjpmb3JFYWNoUGFnZShbJm51bVBhZ2VzXShQYWdlJikgewogICAgICAgICAg
ICAgICAgICsrbnVtUGFnZXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9M
b2NhbGl6ZWRTdHJpbmdzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0
cmluZ3MuY3BwCmluZGV4IGNmNWQwZTAyNmNkZjgzMzcyMmU1MWNhYzBiY2M3ZjEzNGE2MjVlOWUu
LjhhN2U4ZWY2YmNlMjNjMWY4NGFkNDAzMDZjZDZmNWY1YzkwZTU4ZGEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwCkBAIC02NTUsNyArNjU1LDcgQEAg
U3RyaW5nIEFYV2Vla0ZpZWxkVGV4dCgpCiAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIndlZWsg
YW5kIHllYXIgZmllbGQiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBhIHRp
bWUgZmllbGQuIik7CiB9CiAKLVN0cmluZyBBWEFSSUFDb250ZW50R3JvdXBUZXh0KGNvbnN0IFN0
cmluZyYgYXJpYVR5cGUpCitTdHJpbmcgQVhBUklBQ29udGVudEdyb3VwVGV4dChTdHJpbmdWaWV3
IGFyaWFUeXBlKQogewogICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQUFwcGxpY2F0aW9uQWxlcnQi
KQogICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiYWxlcnQiLCAiQW4gQVJJQSBhY2Nlc3Np
YmlsaXR5IGdyb3VwIHRoYXQgYWN0cyBhcyBhbiBhbGVydC4iKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaAppbmRleCBiMTgxZjFlZDhhMGI4OGMxZmNmY2QwZTg2
MTcyMzRiYjI5NDkzZGFlLi5hMjBiNTg4ZTY5MzcxNjlhMTA2N2QzOWQ3YzEwOWYzNDU5ZThjMzk2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oCkBAIC0xOTUs
NyArMTk1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIFN0cmluZyBBWE1vbnRoRmllbGRU
ZXh0KCk7CiAgICAgU3RyaW5nIEFYTnVtYmVyRmllbGRUZXh0KCk7CiAgICAgU3RyaW5nIEFYV2Vl
a0ZpZWxkVGV4dCgpOwotICAgIFN0cmluZyBBWEFSSUFDb250ZW50R3JvdXBUZXh0KGNvbnN0IFN0
cmluZyYgYXJpYVR5cGUpOworICAgIFN0cmluZyBBWEFSSUFDb250ZW50R3JvdXBUZXh0KFN0cmlu
Z1ZpZXcgYXJpYVR5cGUpOwogICAgIFN0cmluZyBBWEhvcml6b250YWxSdWxlRGVzY3JpcHRpb25U
ZXh0KCk7CiAgICAgU3RyaW5nIEFYTWFya1RleHQoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFz
dGVib2FyZC5oCmluZGV4IGFlYmEwYTNiNDRkODY2NmVjZGIyMjFiMzM1NzBkNGNjZGE1NjY0Mjku
LjFjZjQxMDhmMDhlNjMwNjU4ZjlhM2UzMWZlNGJjZTk2M2UzZTRjY2EgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9QYXN0ZWJvYXJkLmgKQEAgLTM3NSw5ICszNzUsOSBAQCBleHRlcm4gTlNTdHJpbmcg
KlVJQ29sb3JQYm9hcmRUeXBlOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShNQUMpCi1leHRlcm4g
Y29uc3QgY2hhciogY29uc3QgV2ViQXJjaGl2ZVBib2FyZFR5cGU7Ci1leHRlcm4gY29uc3QgY2hh
ciogY29uc3QgV2ViVVJMTmFtZVBib2FyZFR5cGU7Ci1leHRlcm4gY29uc3QgY2hhciogY29uc3Qg
V2ViVVJMc1dpdGhUaXRsZXNQYm9hcmRUeXBlOworZXh0ZXJuIGNvbnN0IEFTQ0lJTGl0ZXJhbCBX
ZWJBcmNoaXZlUGJvYXJkVHlwZTsKK2V4dGVybiBjb25zdCBBU0NJSUxpdGVyYWwgV2ViVVJMTmFt
ZVBib2FyZFR5cGU7CitleHRlcm4gY29uc3QgQVNDSUlMaXRlcmFsIFdlYlVSTHNXaXRoVGl0bGVz
UGJvYXJkVHlwZTsKICNlbmRpZgogCiAjaWYgIVBMQVRGT1JNKEdUSykKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmRDdXN0b21EYXRhLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkQ3VzdG9tRGF0YS5oCmluZGV4IDJiZTgxZDI5MzhhM2Ri
ZDA5MDI2Y2E2ZWM2NGFjMzI4N2U2YWJjMDMuLjI1NmY0NDU0MjkwMzJiYjQyZjMxM2Q5MjBhZmJm
ZmQxYjAyM2E3N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9h
cmRDdXN0b21EYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZEN1
c3RvbURhdGEuaApAQCAtNzYsNyArNzYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjbGVhcihjb25z
dCBTdHJpbmcmIHR5cGUpOwogCiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgV0VCQ09SRV9FWFBP
UlQgc3RhdGljIGNvbnN0IGNoYXIqIGNvY29hVHlwZSgpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0
YXRpYyBBU0NJSUxpdGVyYWwgY29jb2FUeXBlKCk7CiAjZWxpZiBQTEFURk9STShHVEspCiAgICAg
c3RhdGljIGNvbnN0IGNoYXIqIGd0a1R5cGUoKSB7IHJldHVybiAib3JnLndlYmtpdGd0ay5XZWJL
aXQuY3VzdG9tLXBhc3RlYm9hcmQtZGF0YSI7IH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvTWVkaWFTZXNzaW9uTWFuYWdl
ckNvY29hLm1tCmluZGV4IGEwZTkwMmYxMmNlN2ViMTdjNzc2ZDQzYzEzNWM4NTMyNmM3NWNmZTAu
Ljk2Y2RmYWEzNjIxYzVjOTYyZGEwZTA1MzAyZDRlYTlkOWNkNzA4N2MgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL01lZGlhU2Vzc2lvbk1hbmFnZXJDb2Nv
YS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9NZWRpYVNlc3Np
b25NYW5hZ2VyQ29jb2EubW0KQEAgLTQ1Miw4ICs0NTIsOCBAQCB2b2lkIE1lZGlhU2Vzc2lvbk1h
bmFnZXJDb2NvYTo6dXBkYXRlTm93UGxheWluZ0luZm8oKQogCiAgICAgaWYgKG1fbm93UGxheWlu
Z01hbmFnZXItPnNldE5vd1BsYXlpbmdJbmZvKCpub3dQbGF5aW5nSW5mbykpIHsKICNpZmRlZiBM
T0dfRElTQUJMRUQKLSAgICAgICAgU3RyaW5nIHNyYyA9ICJzcmMiOwotICAgICAgICBTdHJpbmcg
dGl0bGUgPSAidGl0bGUiOworICAgICAgICBTdHJpbmcgc3JjID0gInNyYyJfczsKKyAgICAgICAg
U3RyaW5nIHRpdGxlID0gInRpdGxlIl9zOwogI2Vsc2UKICAgICAgICAgU3RyaW5nIHNyYyA9IG5v
d1BsYXlpbmdJbmZvLT5hcnR3b3JrID8gbm93UGxheWluZ0luZm8tPmFydHdvcmstPnNyYyA6IFN0
cmluZygpOwogICAgICAgICBTdHJpbmcgdGl0bGUgPSBub3dQbGF5aW5nSW5mby0+dGl0bGU7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9LZXlFdmVudENvY29hLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvS2V5RXZlbnRDb2NvYS5tbQppbmRleCBm
NGVlZTY1ZjA5OTNiOWQ0ZDliZDZmZTllZGE3YWQwYTYxNTM3MzUyLi4xYzVlMjQzYzg1MmEzODUw
OWM4OWNjNTkxOWNmYzE0MjA2NzE5OWMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jb2NvYS9LZXlFdmVudENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2NvY29hL0tleUV2ZW50Q29jb2EubW0KQEAgLTIyMCw3ICsyMjAsNyBAQCBTdHJpbmcga2V5SWRl
bnRpZmllckZvckNoYXJDb2RlKHVuaWNoYXIgY2hhckNvZGUpCiAKICAgICAgICAgLy8gIkFsdCIK
ICAgICAgICAgY2FzZSBOU01lbnVGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiQWx0
IjsKKyAgICAgICAgICAgIHJldHVybiAiQWx0Il9zOwogCiAgICAgICAgIC8vICJBcHBzIgogICAg
ICAgICAvLyAiQnJvd3NlckJhY2siCkBAIC0yMzMsNyArMjMzLDcgQEAgU3RyaW5nIGtleUlkZW50
aWZpZXJGb3JDaGFyQ29kZSh1bmljaGFyIGNoYXJDb2RlKQogCiAgICAgICAgIC8vICJDbGVhciIK
ICAgICAgICAgY2FzZSBOU0NsZWFyTGluZUZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJu
ICJDbGVhciI7CisgICAgICAgICAgICByZXR1cm4gIkNsZWFyIl9zOwogCiAgICAgICAgIC8vICJD
b2RlSW5wdXQiCiAgICAgICAgIC8vICJDb21wb3NlIgpAQCAtMjQ1LDEwMCArMjQ1LDEwMCBAQCBT
dHJpbmcga2V5SWRlbnRpZmllckZvckNoYXJDb2RlKHVuaWNoYXIgY2hhckNvZGUpCiAKICAgICAg
ICAgLy8gIkRvd24iCiAgICAgICAgIGNhc2UgTlNEb3duQXJyb3dGdW5jdGlvbktleToKLSAgICAg
ICAgICAgIHJldHVybiAiRG93biI7CisgICAgICAgICAgICByZXR1cm4gIkRvd24iX3M7CiAgICAg
ICAgIC8vICJFbmQiCiAgICAgICAgIGNhc2UgTlNFbmRGdW5jdGlvbktleToKLSAgICAgICAgICAg
IHJldHVybiAiRW5kIjsKKyAgICAgICAgICAgIHJldHVybiAiRW5kIl9zOwogICAgICAgICAvLyAi
RW50ZXIiCiAgICAgICAgIGNhc2UgMHgzOiBjYXNlIDB4QTogY2FzZSAweEQ6IC8vIE1hY2ludG9z
aCBjYWxscyB0aGUgb25lIG9uIHRoZSBtYWluIGtleWJvYXJkIFJldHVybiwgYnV0IFdpbmRvd3Mg
Y2FsbHMgaXQgRW50ZXIsIHNvIHdlJ2xsIGRvIHRoZSBzYW1lIGZvciB0aGUgRE9NCi0gICAgICAg
ICAgICByZXR1cm4gIkVudGVyIjsKKyAgICAgICAgICAgIHJldHVybiAiRW50ZXIiX3M7CiAKICAg
ICAgICAgLy8gIkVyYXNlRW9mIgogCiAgICAgICAgIC8vICJFeGVjdXRlIgogICAgICAgICBjYXNl
IE5TRXhlY3V0ZUZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJFeGVjdXRlIjsKKyAg
ICAgICAgICAgIHJldHVybiAiRXhlY3V0ZSJfczsKIAogICAgICAgICAvLyAiRXhzZWwiCiAKICAg
ICAgICAgLy8gIkYxIgogICAgICAgICBjYXNlIE5TRjFGdW5jdGlvbktleToKLSAgICAgICAgICAg
IHJldHVybiAiRjEiOworICAgICAgICAgICAgcmV0dXJuICJGMSJfczsKICAgICAgICAgLy8gIkYy
IgogICAgICAgICBjYXNlIE5TRjJGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiRjIi
OworICAgICAgICAgICAgcmV0dXJuICJGMiJfczsKICAgICAgICAgLy8gIkYzIgogICAgICAgICBj
YXNlIE5TRjNGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiRjMiOworICAgICAgICAg
ICAgcmV0dXJuICJGMyJfczsKICAgICAgICAgLy8gIkY0IgogICAgICAgICBjYXNlIE5TRjRGdW5j
dGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiRjQiOworICAgICAgICAgICAgcmV0dXJuICJG
NCJfczsKICAgICAgICAgLy8gIkY1IgogICAgICAgICBjYXNlIE5TRjVGdW5jdGlvbktleToKLSAg
ICAgICAgICAgIHJldHVybiAiRjUiOworICAgICAgICAgICAgcmV0dXJuICJGNSJfczsKICAgICAg
ICAgLy8gIkY2IgogICAgICAgICBjYXNlIE5TRjZGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJl
dHVybiAiRjYiOworICAgICAgICAgICAgcmV0dXJuICJGNiJfczsKICAgICAgICAgLy8gIkY3Igog
ICAgICAgICBjYXNlIE5TRjdGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiRjciOwor
ICAgICAgICAgICAgcmV0dXJuICJGNyJfczsKICAgICAgICAgLy8gIkY4IgogICAgICAgICBjYXNl
IE5TRjhGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiRjgiOworICAgICAgICAgICAg
cmV0dXJuICJGOCJfczsKICAgICAgICAgLy8gIkY5IgogICAgICAgICBjYXNlIE5TRjlGdW5jdGlv
bktleToKLSAgICAgICAgICAgIHJldHVybiAiRjkiOworICAgICAgICAgICAgcmV0dXJuICJGOSJf
czsKICAgICAgICAgLy8gIkYxMCIKICAgICAgICAgY2FzZSBOU0YxMEZ1bmN0aW9uS2V5OgotICAg
ICAgICAgICAgcmV0dXJuICJGMTAiOworICAgICAgICAgICAgcmV0dXJuICJGMTAiX3M7CiAgICAg
ICAgIC8vICJGMTEiCiAgICAgICAgIGNhc2UgTlNGMTFGdW5jdGlvbktleToKLSAgICAgICAgICAg
IHJldHVybiAiRjExIjsKKyAgICAgICAgICAgIHJldHVybiAiRjExIl9zOwogICAgICAgICAvLyAi
RjEyIgogICAgICAgICBjYXNlIE5TRjEyRnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4g
IkYxMiI7CisgICAgICAgICAgICByZXR1cm4gIkYxMiJfczsKICAgICAgICAgLy8gIkYxMyIKICAg
ICAgICAgY2FzZSBOU0YxM0Z1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJGMTMiOwor
ICAgICAgICAgICAgcmV0dXJuICJGMTMiX3M7CiAgICAgICAgIC8vICJGMTQiCiAgICAgICAgIGNh
c2UgTlNGMTRGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiRjE0IjsKKyAgICAgICAg
ICAgIHJldHVybiAiRjE0Il9zOwogICAgICAgICAvLyAiRjE1IgogICAgICAgICBjYXNlIE5TRjE1
RnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkYxNSI7CisgICAgICAgICAgICByZXR1
cm4gIkYxNSJfczsKICAgICAgICAgLy8gIkYxNiIKICAgICAgICAgY2FzZSBOU0YxNkZ1bmN0aW9u
S2V5OgotICAgICAgICAgICAgcmV0dXJuICJGMTYiOworICAgICAgICAgICAgcmV0dXJuICJGMTYi
X3M7CiAgICAgICAgIC8vICJGMTciCiAgICAgICAgIGNhc2UgTlNGMTdGdW5jdGlvbktleToKLSAg
ICAgICAgICAgIHJldHVybiAiRjE3IjsKKyAgICAgICAgICAgIHJldHVybiAiRjE3Il9zOwogICAg
ICAgICAvLyAiRjE4IgogICAgICAgICBjYXNlIE5TRjE4RnVuY3Rpb25LZXk6Ci0gICAgICAgICAg
ICByZXR1cm4gIkYxOCI7CisgICAgICAgICAgICByZXR1cm4gIkYxOCJfczsKICAgICAgICAgLy8g
IkYxOSIKICAgICAgICAgY2FzZSBOU0YxOUZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJu
ICJGMTkiOworICAgICAgICAgICAgcmV0dXJuICJGMTkiX3M7CiAgICAgICAgIC8vICJGMjAiCiAg
ICAgICAgIGNhc2UgTlNGMjBGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiRjIwIjsK
KyAgICAgICAgICAgIHJldHVybiAiRjIwIl9zOwogICAgICAgICAvLyAiRjIxIgogICAgICAgICBj
YXNlIE5TRjIxRnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkYyMSI7CisgICAgICAg
ICAgICByZXR1cm4gIkYyMSJfczsKICAgICAgICAgLy8gIkYyMiIKICAgICAgICAgY2FzZSBOU0Yy
MkZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJGMjIiOworICAgICAgICAgICAgcmV0
dXJuICJGMjIiX3M7CiAgICAgICAgIC8vICJGMjMiCiAgICAgICAgIGNhc2UgTlNGMjNGdW5jdGlv
bktleToKLSAgICAgICAgICAgIHJldHVybiAiRjIzIjsKKyAgICAgICAgICAgIHJldHVybiAiRjIz
Il9zOwogICAgICAgICAvLyAiRjI0IgogICAgICAgICBjYXNlIE5TRjI0RnVuY3Rpb25LZXk6Ci0g
ICAgICAgICAgICByZXR1cm4gIkYyNCI7CisgICAgICAgICAgICByZXR1cm4gIkYyNCJfczsKIAog
ICAgICAgICAvLyAiRmluYWxNb2RlIgogCiAgICAgICAgIC8vICJGaW5kIgogICAgICAgICBjYXNl
IE5TRmluZEZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJGaW5kIjsKKyAgICAgICAg
ICAgIHJldHVybiAiRmluZCJfczsKIAogICAgICAgICAvLyAiRnVsbFdpZHRoIgogICAgICAgICAv
LyAiSGFsZldpZHRoIgpAQCAtMzQ3LDE2ICszNDcsMTYgQEAgU3RyaW5nIGtleUlkZW50aWZpZXJG
b3JDaGFyQ29kZSh1bmljaGFyIGNoYXJDb2RlKQogCiAgICAgICAgIC8vICJIZWxwIgogICAgICAg
ICBjYXNlIE5TSGVscEZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJIZWxwIjsKKyAg
ICAgICAgICAgIHJldHVybiAiSGVscCJfczsKIAogICAgICAgICAvLyAiSGlyYWdhbmEiCiAKICAg
ICAgICAgLy8gIkhvbWUiCiAgICAgICAgIGNhc2UgTlNIb21lRnVuY3Rpb25LZXk6Ci0gICAgICAg
ICAgICByZXR1cm4gIkhvbWUiOworICAgICAgICAgICAgcmV0dXJuICJIb21lIl9zOwogICAgICAg
ICAvLyAiSW5zZXJ0IgogICAgICAgICBjYXNlIE5TSW5zZXJ0RnVuY3Rpb25LZXk6Ci0gICAgICAg
ICAgICByZXR1cm4gIkluc2VydCI7CisgICAgICAgICAgICByZXR1cm4gIkluc2VydCJfczsKIAog
ICAgICAgICAvLyAiSmFwYW5lc2VIaXJhZ2FuYSIKICAgICAgICAgLy8gIkphcGFuZXNlS2F0YWth
bmEiCkBAIC0zNzEsNyArMzcxLDcgQEAgU3RyaW5nIGtleUlkZW50aWZpZXJGb3JDaGFyQ29kZSh1
bmljaGFyIGNoYXJDb2RlKQogCiAgICAgICAgIC8vICJMZWZ0IgogICAgICAgICBjYXNlIE5TTGVm
dEFycm93RnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkxlZnQiOworICAgICAgICAg
ICAgcmV0dXJuICJMZWZ0Il9zOwogCiAgICAgICAgIC8vICJNZXRhIgogICAgICAgICAvLyAiTWVk
aWFOZXh0VHJhY2siCkBAIC0zODEsNTkgKzM4MSw1OSBAQCBTdHJpbmcga2V5SWRlbnRpZmllckZv
ckNoYXJDb2RlKHVuaWNoYXIgY2hhckNvZGUpCiAKICAgICAgICAgLy8gIk1vZGVDaGFuZ2UiCiAg
ICAgICAgIGNhc2UgTlNNb2RlU3dpdGNoRnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4g
Ik1vZGVDaGFuZ2UiOworICAgICAgICAgICAgcmV0dXJuICJNb2RlQ2hhbmdlIl9zOwogCiAgICAg
ICAgIC8vICJOb25jb252ZXJ0IgogICAgICAgICAvLyAiTnVtTG9jayIKIAogICAgICAgICAvLyAi
UGFnZURvd24iCiAgICAgICAgIGNhc2UgTlNQYWdlRG93bkZ1bmN0aW9uS2V5OgotICAgICAgICAg
ICAgcmV0dXJuICJQYWdlRG93biI7CisgICAgICAgICAgICByZXR1cm4gIlBhZ2VEb3duIl9zOwog
ICAgICAgICAvLyAiUGFnZVVwIgogICAgICAgICBjYXNlIE5TUGFnZVVwRnVuY3Rpb25LZXk6Ci0g
ICAgICAgICAgICByZXR1cm4gIlBhZ2VVcCI7CisgICAgICAgICAgICByZXR1cm4gIlBhZ2VVcCJf
czsKIAogICAgICAgICAvLyAiUGFzdGUiCiAKICAgICAgICAgLy8gIlBhdXNlIgogICAgICAgICBj
YXNlIE5TUGF1c2VGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiUGF1c2UiOworICAg
ICAgICAgICAgcmV0dXJuICJQYXVzZSJfczsKIAogICAgICAgICAvLyAiUGxheSIKICAgICAgICAg
Ly8gIlByZXZpb3VzQ2FuZGlkYXRlIgogCiAgICAgICAgIC8vICJQcmludFNjcmVlbiIKICAgICAg
ICAgY2FzZSBOU1ByaW50U2NyZWVuRnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIlBy
aW50U2NyZWVuIjsKKyAgICAgICAgICAgIHJldHVybiAiUHJpbnRTY3JlZW4iX3M7CiAKICAgICAg
ICAgLy8gIlByb2Nlc3MiCiAgICAgICAgIC8vICJQcm9wcyIKIAogICAgICAgICAvLyAiUmlnaHQi
CiAgICAgICAgIGNhc2UgTlNSaWdodEFycm93RnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1
cm4gIlJpZ2h0IjsKKyAgICAgICAgICAgIHJldHVybiAiUmlnaHQiX3M7CiAKICAgICAgICAgLy8g
IlJvbWFuQ2hhcmFjdGVycyIKIAogICAgICAgICAvLyAiU2Nyb2xsIgogICAgICAgICBjYXNlIE5T
U2Nyb2xsTG9ja0Z1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJTY3JvbGwiOworICAg
ICAgICAgICAgcmV0dXJuICJTY3JvbGwiX3M7CiAgICAgICAgIC8vICJTZWxlY3QiCiAgICAgICAg
IGNhc2UgTlNTZWxlY3RGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiU2VsZWN0IjsK
KyAgICAgICAgICAgIHJldHVybiAiU2VsZWN0Il9zOwogCiAgICAgICAgIC8vICJTZWxlY3RNZWRp
YSIKICAgICAgICAgLy8gIlNoaWZ0IgogCiAgICAgICAgIC8vICJTdG9wIgogICAgICAgICBjYXNl
IE5TU3RvcEZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJTdG9wIjsKKyAgICAgICAg
ICAgIHJldHVybiAiU3RvcCJfczsKICAgICAgICAgLy8gIlVwIgogICAgICAgICBjYXNlIE5TVXBB
cnJvd0Z1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJVcCI7CisgICAgICAgICAgICBy
ZXR1cm4gIlVwIl9zOwogICAgICAgICAvLyAiVW5kbyIKICAgICAgICAgY2FzZSBOU1VuZG9GdW5j
dGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiVW5kbyI7CisgICAgICAgICAgICByZXR1cm4g
IlVuZG8iX3M7CiAKICAgICAgICAgLy8gIlZvbHVtZURvd24iCiAgICAgICAgIC8vICJWb2x1bWVN
dXRlIgpAQCAtNDQzLDM4ICs0NDMsMzggQEAgU3RyaW5nIGtleUlkZW50aWZpZXJGb3JDaGFyQ29k
ZSh1bmljaGFyIGNoYXJDb2RlKQogCiAgICAgICAgIC8vIE1vcmUgZnVuY3Rpb24ga2V5cywgbm90
IGluIHRoZSBrZXkgaWRlbnRpZmllciBzcGVjaWZpY2F0aW9uLgogICAgICAgICBjYXNlIE5TRjI1
RnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkYyNSI7CisgICAgICAgICAgICByZXR1
cm4gIkYyNSJfczsKICAgICAgICAgY2FzZSBOU0YyNkZ1bmN0aW9uS2V5OgotICAgICAgICAgICAg
cmV0dXJuICJGMjYiOworICAgICAgICAgICAgcmV0dXJuICJGMjYiX3M7CiAgICAgICAgIGNhc2Ug
TlNGMjdGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiRjI3IjsKKyAgICAgICAgICAg
IHJldHVybiAiRjI3Il9zOwogICAgICAgICBjYXNlIE5TRjI4RnVuY3Rpb25LZXk6Ci0gICAgICAg
ICAgICByZXR1cm4gIkYyOCI7CisgICAgICAgICAgICByZXR1cm4gIkYyOCJfczsKICAgICAgICAg
Y2FzZSBOU0YyOUZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJGMjkiOworICAgICAg
ICAgICAgcmV0dXJuICJGMjkiX3M7CiAgICAgICAgIGNhc2UgTlNGMzBGdW5jdGlvbktleToKLSAg
ICAgICAgICAgIHJldHVybiAiRjMwIjsKKyAgICAgICAgICAgIHJldHVybiAiRjMwIl9zOwogICAg
ICAgICBjYXNlIE5TRjMxRnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkYzMSI7Cisg
ICAgICAgICAgICByZXR1cm4gIkYzMSJfczsKICAgICAgICAgY2FzZSBOU0YzMkZ1bmN0aW9uS2V5
OgotICAgICAgICAgICAgcmV0dXJuICJGMzIiOworICAgICAgICAgICAgcmV0dXJuICJGMzIiX3M7
CiAgICAgICAgIGNhc2UgTlNGMzNGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiRjMz
IjsKKyAgICAgICAgICAgIHJldHVybiAiRjMzIl9zOwogICAgICAgICBjYXNlIE5TRjM0RnVuY3Rp
b25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkYzNCI7CisgICAgICAgICAgICByZXR1cm4gIkYz
NCJfczsKICAgICAgICAgY2FzZSBOU0YzNUZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJu
ICJGMzUiOworICAgICAgICAgICAgcmV0dXJuICJGMzUiX3M7CiAKICAgICAgICAgLy8gVHVybiAw
eDdGIGludG8gMHgwOCwgYmVjYXVzZSBiYWNrc3BhY2UgbmVlZHMgdG8gYWx3YXlzIGJlIDB4MDgu
CiAgICAgICAgIGNhc2UgMHg3RjoKLSAgICAgICAgICAgIHJldHVybiAiVSswMDA4IjsKKyAgICAg
ICAgICAgIHJldHVybiAiVSswMDA4Il9zOwogICAgICAgICAvLyBTdGFuZGFyZCBzYXlzIHRoYXQg
REVMIGJlY29tZXMgVSswMDdGLgogICAgICAgICBjYXNlIE5TRGVsZXRlRnVuY3Rpb25LZXk6Ci0g
ICAgICAgICAgICByZXR1cm4gIlUrMDA3RiI7CisgICAgICAgICAgICByZXR1cm4gIlUrMDA3RiJf
czsKIAogICAgICAgICAvLyBBbHdheXMgdXNlIDB4MDkgZm9yIHRhYiBpbnN0ZWFkIG9mIEFwcEtp
dCdzIGJhY2t0YWIgY2hhcmFjdGVyLgogICAgICAgICBjYXNlIE5TQmFja1RhYkNoYXJhY3RlcjoK
LSAgICAgICAgICAgIHJldHVybiAiVSswMDA5IjsKKyAgICAgICAgICAgIHJldHVybiAiVSswMDA5
Il9zOwogCiAgICAgICAgIGNhc2UgTlNCZWdpbkZ1bmN0aW9uS2V5OgogICAgICAgICBjYXNlIE5T
QnJlYWtGdW5jdGlvbktleToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nv
Y29hL1Bhc3RlYm9hcmRDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Bh
c3RlYm9hcmRDb2NvYS5tbQppbmRleCAwNjk2MWZiYTQ4YWQ5MWI0MjNiY2E5ODViNmMyZTVjNjIx
MDFmYzJmLi41OTg0MmYxMjY5YzViNWVkZjA5NWJkOWNiOGVlMzMyNmQ2ODdhZTFiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9QYXN0ZWJvYXJkQ29jb2EubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvUGFzdGVib2FyZENvY29hLm1tCkBAIC0x
MDQsMjUgKzEwNCwyNSBAQCBzdGF0aWMgY29uc3QgY2hhciogaW1hZ2VUeXBlVG9NSU1FVHlwZShJ
bWFnZVR5cGUgdHlwZSkKICAgICB9CiB9CiAKLXN0YXRpYyBjb25zdCBjaGFyKiBpbWFnZVR5cGVU
b0Zha2VGaWxlbmFtZShJbWFnZVR5cGUgdHlwZSkKK3N0YXRpYyBBU0NJSUxpdGVyYWwgaW1hZ2VU
eXBlVG9GYWtlRmlsZW5hbWUoSW1hZ2VUeXBlIHR5cGUpCiB7CiAgICAgc3dpdGNoICh0eXBlKSB7
CiAgICAgY2FzZSBJbWFnZVR5cGU6OkludmFsaWQ6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJh
bDo6bnVsbCgpOwogICAgIGNhc2UgSW1hZ2VUeXBlOjpUSUZGOgogI2lmIFBMQVRGT1JNKE1BQykK
LSAgICAgICAgcmV0dXJuICJpbWFnZS5wbmciOyAvLyBGb3IgV2ViIGNvbXBhdGliaWxpdHksIHdl
IHByZXRlbmQgdG8gaGF2ZSBQTkcgaW5zdGVhZC4KKyAgICAgICAgcmV0dXJuICJpbWFnZS5wbmci
X3M7IC8vIEZvciBXZWIgY29tcGF0aWJpbGl0eSwgd2UgcHJldGVuZCB0byBoYXZlIFBORyBpbnN0
ZWFkLgogI2Vsc2UKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHJldHVy
biBudWxscHRyOworICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsOjpudWxsKCk7CiAjZW5kaWYK
ICAgICBjYXNlIEltYWdlVHlwZTo6UE5HOgotICAgICAgICByZXR1cm4gImltYWdlLnBuZyI7Cisg
ICAgICAgIHJldHVybiAiaW1hZ2UucG5nIl9zOwogICAgIGNhc2UgSW1hZ2VUeXBlOjpKUEVHOgot
ICAgICAgICByZXR1cm4gImltYWdlLmpwZWciOworICAgICAgICByZXR1cm4gImltYWdlLmpwZWci
X3M7CiAgICAgY2FzZSBJbWFnZVR5cGU6OkdJRjoKLSAgICAgICAgcmV0dXJuICJpbWFnZS5naWYi
OworICAgICAgICByZXR1cm4gImltYWdlLmdpZiJfczsKICAgICB9CiB9CiAKQEAgLTIzNCw3ICsy
MzQsNyBAQCB2b2lkIFBhc3RlYm9hcmQ6OnJlYWQoUGFzdGVib2FyZEZpbGVSZWFkZXImIHJlYWRl
ciwgc3RkOjpvcHRpb25hbDxzaXplX3Q+IGl0ZW1JbgogICAgICAgICBmb3IgKGF1dG8gY29jb2FU
eXBlIDogaW5mby5wbGF0Zm9ybVR5cGVzQnlGaWRlbGl0eSkgewogICAgICAgICAgICAgYXV0byBp
bWFnZVR5cGUgPSBjb2NvYVR5cGVUb0ltYWdlVHlwZShjb2NvYVR5cGUpOwogICAgICAgICAgICAg
YXV0byogbWltZVR5cGUgPSBpbWFnZVR5cGVUb01JTUVUeXBlKGltYWdlVHlwZSk7Ci0gICAgICAg
ICAgICBpZiAoIW1pbWVUeXBlIHx8ICFyZWFkZXIuc2hvdWxkUmVhZEJ1ZmZlcihtaW1lVHlwZSkp
CisgICAgICAgICAgICBpZiAoIW1pbWVUeXBlIHx8ICFyZWFkZXIuc2hvdWxkUmVhZEJ1ZmZlcihT
dHJpbmcgeyBtaW1lVHlwZSB9KSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAg
ICAgIGF1dG8gYnVmZmVyID0gcmVhZEJ1ZmZlcihpdGVtSW5kZXgsIGNvY29hVHlwZSk7CiAjaWYg
UExBVEZPUk0oTUFDKQpAQCAtMjQyLDcgKzI0Miw3IEBAIHZvaWQgUGFzdGVib2FyZDo6cmVhZChQ
YXN0ZWJvYXJkRmlsZVJlYWRlciYgcmVhZGVyLCBzdGQ6Om9wdGlvbmFsPHNpemVfdD4gaXRlbUlu
CiAgICAgICAgICAgICAgICAgYnVmZmVyID0gY29udmVydFRJRkZUb1BORyhidWZmZXIucmVsZWFz
ZU5vbk51bGwoKSk7CiAjZW5kaWYKICAgICAgICAgICAgIGlmIChidWZmZXIpIHsKLSAgICAgICAg
ICAgICAgICByZWFkZXIucmVhZEJ1ZmZlcihpbWFnZVR5cGVUb0Zha2VGaWxlbmFtZShpbWFnZVR5
cGUpLCBtaW1lVHlwZSwgYnVmZmVyLnJlbGVhc2VOb25OdWxsKCkpOworICAgICAgICAgICAgICAg
IHJlYWRlci5yZWFkQnVmZmVyKGltYWdlVHlwZVRvRmFrZUZpbGVuYW1lKGltYWdlVHlwZSksIFN0
cmluZyB7IG1pbWVUeXBlIH0sIGJ1ZmZlci5yZWxlYXNlTm9uTnVsbCgpKTsKICAgICAgICAgICAg
ICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvUGFzdGVib2FyZEN1c3RvbURhdGFDb2NvYS5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Bhc3RlYm9hcmRDdXN0b21EYXRhQ29jb2EubW0K
aW5kZXggMjYyMTI4NDRmMjEwNGE3NzdjZjY1NTZkNzVhNmU1Y2FlYzk3M2RlOC4uM2RlNTBhMGU5
MmMyOTA0YzE5ZWI2ZGViZGE3MTY4MmVmYjZkNjc1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vY29jb2EvUGFzdGVib2FyZEN1c3RvbURhdGFDb2NvYS5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9QYXN0ZWJvYXJkQ3VzdG9tRGF0YUNvY29hLm1tCkBA
IC0zMCw5ICszMCw5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY29uc3QgY2hhciogUGFz
dGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpCitBU0NJSUxpdGVyYWwgUGFzdGVib2FyZEN1
c3RvbURhdGE6OmNvY29hVHlwZSgpCiB7Ci0gICAgcmV0dXJuICJjb20uYXBwbGUuV2ViS2l0LmN1
c3RvbS1wYXN0ZWJvYXJkLWRhdGEiOworICAgIHJldHVybiAiY29tLmFwcGxlLldlYktpdC5jdXN0
b20tcGFzdGVib2FyZC1kYXRhIl9zOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb3VyQ0MuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvdXJDQy5oCmluZGV4IGIzN2QwNTBlOWMwYzM2
NzcwN2RhZTBiNmFjY2IxYmMzN2Y4ZWFjMTMuLjY2ZmIzZGUwNzExNTEzMDY3ODhkYzEyNmMyM2Y0
YmM4NjEyNTgzNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ZvdXJDQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvdXJDQy5o
CkBAIC04NSw3ICs4NSw3IEBAIG5hbWVzcGFjZSBXVEYgewogdGVtcGxhdGU8dHlwZW5hbWU+IHN0
cnVjdCBMb2dBcmd1bWVudDsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgTG9nQXJndW1lbnQ8V2ViQ29y
ZTo6Rm91ckNDPiB7Ci0gICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhjb25zdCBXZWJDb3JlOjpG
b3VyQ0MmIGNvZGUpIHsgcmV0dXJuIGNvZGUuc3RyaW5nKCkuZGF0YSgpOyB9CisgICAgc3RhdGlj
IFN0cmluZyB0b1N0cmluZyhjb25zdCBXZWJDb3JlOjpGb3VyQ0MmIGNvZGUpIHsgcmV0dXJuIFN0
cmluZyB7IGNvZGUuc3RyaW5nKCkuZGF0YSgpIH07IH0KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdU
RgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3Jh
cGhpY3NDb250ZXh0R0xBTkdMRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmNwcAppbmRleCA2ODZjNWYyMDk4NzY3ZmQy
ZWE1NzU0NGUzYWNjZWU0ZjJlN2JlNWQ4Li4yNzQ2MDlhMTUwOWFiODczZTM4NjIxYzRlYzU1OGM4
YTQyOGM1NGY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
bmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmNwcApAQCAtNTEwLDgg
KzUxMCw5IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6dmFsaWRhdGVEZXB0aFN0ZW5j
aWwoY29uc3QgY2hhciogcGFja2VkRGVwdGhTdGVuY2lsCiAgICAgLy8gRklYTUU6IFNpbmNlIHRo
ZSBjb25zdHJ1Y3RvcnMgb2YgdmFyaW91cyBwbGF0Zm9ybXMgYXJlIG5vdCBzaGFyZWQsIHdlIGlu
aXRpYWxpemUgdGhpcyBoZXJlLgogICAgIC8vIFVwb24gY29uc3RydWN0aW5nIHRoZSBjb250ZXh0
LCBhbHdheXMgaW5pdGlhbGl6ZSB0aGUgZXh0ZW5zaW9ucyB0aGF0IHRoZSBXZWJHTFJlbmRlcmlu
Z0NvbnRleHQqIHdpbGwKICAgICAvLyB1c2UgdG8gdHVybiBvbiBmZWF0dXJlIGZsYWdzLgotICAg
IGlmIChzdXBwb3J0c0V4dGVuc2lvbihwYWNrZWREZXB0aFN0ZW5jaWxFeHRlbnNpb24pKSB7Ci0g
ICAgICAgIGVuc3VyZUV4dGVuc2lvbkVuYWJsZWQocGFja2VkRGVwdGhTdGVuY2lsRXh0ZW5zaW9u
KTsKKyAgICBTdHJpbmcgcGFja2VkRGVwdGhTdGVuY2lsRXh0ZW5zaW9uU3RyaW5nIHsgcGFja2Vk
RGVwdGhTdGVuY2lsRXh0ZW5zaW9uIH07CisgICAgaWYgKHN1cHBvcnRzRXh0ZW5zaW9uKHBhY2tl
ZERlcHRoU3RlbmNpbEV4dGVuc2lvblN0cmluZykpIHsKKyAgICAgICAgZW5zdXJlRXh0ZW5zaW9u
RW5hYmxlZChwYWNrZWREZXB0aFN0ZW5jaWxFeHRlbnNpb25TdHJpbmcpOwogICAgICAgICBtX2lu
dGVybmFsRGVwdGhTdGVuY2lsRm9ybWF0ID0gR0xfREVQVEgyNF9TVEVOQ0lMOF9PRVM7CiAgICAg
fSBlbHNlCiAgICAgICAgIG1faW50ZXJuYWxEZXB0aFN0ZW5jaWxGb3JtYXQgPSBHTF9ERVBUSF9D
T01QT05FTlQxNjsKQEAgLTUyOCwxNyArNTI5LDE3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0R0xB
TkdMRTo6dmFsaWRhdGVEZXB0aFN0ZW5jaWwoY29uc3QgY2hhciogcGFja2VkRGVwdGhTdGVuY2ls
CiAKICAgICBpZiAoYXR0cnMuYW50aWFsaWFzKSB7CiAgICAgICAgIC8vIEZJWE1FOiBtdXN0IGFk
anVzdCB0aGlzIHdoZW4gdXBncmFkaW5nIHRvIFdlYkdMIDIuMCAvIE9wZW5HTCBFUyAzLjAgc3Vw
cG9ydC4KLSAgICAgICAgaWYgKCFzdXBwb3J0c0V4dGVuc2lvbigiR0xfQU5HTEVfZnJhbWVidWZm
ZXJfbXVsdGlzYW1wbGUiKSB8fCAhc3VwcG9ydHNFeHRlbnNpb24oIkdMX0FOR0xFX2ZyYW1lYnVm
ZmVyX2JsaXQiKSB8fCAhc3VwcG9ydHNFeHRlbnNpb24oIkdMX09FU19yZ2I4X3JnYmE4IikpIHsK
KyAgICAgICAgaWYgKCFzdXBwb3J0c0V4dGVuc2lvbigiR0xfQU5HTEVfZnJhbWVidWZmZXJfbXVs
dGlzYW1wbGUiX3MpIHx8ICFzdXBwb3J0c0V4dGVuc2lvbigiR0xfQU5HTEVfZnJhbWVidWZmZXJf
YmxpdCJfcykgfHwgIXN1cHBvcnRzRXh0ZW5zaW9uKCJHTF9PRVNfcmdiOF9yZ2JhOCJfcykpIHsK
ICAgICAgICAgICAgIGF0dHJzLmFudGlhbGlhcyA9IGZhbHNlOwogICAgICAgICAgICAgc2V0Q29u
dGV4dEF0dHJpYnV0ZXMoYXR0cnMpOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgZW5z
dXJlRXh0ZW5zaW9uRW5hYmxlZCgiR0xfQU5HTEVfZnJhbWVidWZmZXJfbXVsdGlzYW1wbGUiKTsK
LSAgICAgICAgICAgIGVuc3VyZUV4dGVuc2lvbkVuYWJsZWQoIkdMX0FOR0xFX2ZyYW1lYnVmZmVy
X2JsaXQiKTsKLSAgICAgICAgICAgIGVuc3VyZUV4dGVuc2lvbkVuYWJsZWQoIkdMX09FU19yZ2I4
X3JnYmE4Iik7CisgICAgICAgICAgICBlbnN1cmVFeHRlbnNpb25FbmFibGVkKCJHTF9BTkdMRV9m
cmFtZWJ1ZmZlcl9tdWx0aXNhbXBsZSJfcyk7CisgICAgICAgICAgICBlbnN1cmVFeHRlbnNpb25F
bmFibGVkKCJHTF9BTkdMRV9mcmFtZWJ1ZmZlcl9ibGl0Il9zKTsKKyAgICAgICAgICAgIGVuc3Vy
ZUV4dGVuc2lvbkVuYWJsZWQoIkdMX09FU19yZ2I4X3JnYmE4Il9zKTsKICAgICAgICAgfQogICAg
IH0gZWxzZSBpZiAoYXR0cnMucHJlc2VydmVEcmF3aW5nQnVmZmVyKSB7CiAgICAgICAgIC8vIE5l
ZWRlZCBmb3IgcHJlc2VydmVEcmF3aW5nQnVmZmVyOnRydWUgc3VwcG9ydCB3aXRob3V0IGFudGlh
bGlhc2luZy4KLSAgICAgICAgZW5zdXJlRXh0ZW5zaW9uRW5hYmxlZCgiR0xfQU5HTEVfZnJhbWVi
dWZmZXJfYmxpdCIpOworICAgICAgICBlbnN1cmVFeHRlbnNpb25FbmFibGVkKCJHTF9BTkdMRV9m
cmFtZWJ1ZmZlcl9ibGl0Il9zKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9DRE1Qcml2YXRlTWVkaWFTb3VyY2VB
VkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L0NETVByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KaW5kZXggMmRhZjhlYWFjOTA4Y2ViYmI5
NGRhMzMwNjQ0YTVlNzcxN2IzNjczOS4uYWVhMmU4YWI5OTAxOTU4MmU0ZGQ0OTM4ZTIwMzdmMDIw
NjVkMjQyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL0NETVByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0NETVByaXZhdGVNZWRpYVNvdXJj
ZUFWRk9iakMubW0KQEAgLTQ2LDcgKzQ2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBhdXRv
IENETVByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnBhcnNlS2V5U3lzdGVtKGNvbnN0IFN0cmlu
ZyYga2V5U3lzdGVtKSAtPiBzdGQ6Om9wdGlvbmFsPEtleVN5c3RlbVBhcmFtZXRlcnM+CiB7Ci0g
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJlZ3VsYXJFeHByZXNzaW9uPiBrZXlTeXN0ZW1SRSgi
XmNvbVxcLmFwcGxlXFwuZnBzXFwuWzIzXV9cXGQrKD86LFxcZCspKiQiLCBKU0M6OllhcnI6OlRl
eHRDYXNlSW5zZW5zaXRpdmUpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxSZWd1bGFyRXhw
cmVzc2lvbj4ga2V5U3lzdGVtUkUoIl5jb21cXC5hcHBsZVxcLmZwc1xcLlsyM11fXFxkKyg/Oixc
XGQrKSokIl9zLCBKU0M6OllhcnI6OlRleHRDYXNlSW5zZW5zaXRpdmUpOwogCiAgICAgaWYgKGtl
eVN5c3RlbVJFLmdldCgpLm1hdGNoKGtleVN5c3RlbSkgPCAwKQogICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFW
Rm91bmRhdGlvbi5oCmluZGV4IGE4MWI4ZTIyNjlhNjhiNDM2YTUzMjYwNTViZTBmYWYxMDU3MDJj
MjEuLjAxMzJhMmY4NDc4YTZkZWE5N2U4ZWI5ZDdjYzc2YzBhYzVlZGY2NDcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXll
clByaXZhdGVBVkZvdW5kYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgKQEAgLTMx
MSw3ICszMTEsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgTWVkaWFQbGF5ZXIqIHBsYXllcigpIHsgcmV0
dXJuIG1fcGxheWVyOyB9CiAgICAgY29uc3QgTWVkaWFQbGF5ZXIqIHBsYXllcigpIGNvbnN0IHsg
cmV0dXJuIG1fcGxheWVyOyB9CiAKLSAgICBTdHJpbmcgZW5naW5lRGVzY3JpcHRpb24oKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiAiQVZGb3VuZGF0aW9uIjsgfQorICAgIFN0cmluZyBlbmdpbmVE
ZXNjcmlwdGlvbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJBVkZvdW5kYXRpb24iX3M7IH0K
ICAgICBsb25nIHBsYXRmb3JtRXJyb3JDb2RlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gYXNz
ZXRFcnJvckNvZGUoKTsgfQogCiAgICAgdm9pZCB0cmFja01vZGVDaGFuZ2VkKCkgb3ZlcnJpZGU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vb2JqYy9DRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETUluc3RhbmNlRmFp
clBsYXlTdHJlYW1pbmdBVkZPYmpDLm1tCmluZGV4IDIxYTI3OTkyZDIyNzA5ODk5ZDBkM2ViNjBi
NThkZmNlMmNhZDBjMGEuLjI2ZGNiZmM1N2Q0OWFlYTU3YmYzNjNlMGU3NzZkYWZlZmM5NGUwNmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL0NETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETUluc3RhbmNl
RmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDLm1tCkBAIC0zOTgsNyArMzk4LDcgQEAgdm9pZCBDRE1J
bnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQzo6c2V0U3RvcmFnZURpcmVjdG9yeShjb25z
dCBTdHJpbmcmIHN0b3IKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGF1dG8gc3RvcmFn
ZVBhdGggPSBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoc3RvcmFnZURpcmVj
dG9yeSwgIlNlY3VyZVN0b3AucGxpc3QiKTsKKyAgICBhdXRvIHN0b3JhZ2VQYXRoID0gRmlsZVN5
c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KHN0b3JhZ2VEaXJlY3RvcnksICJTZWN1cmVT
dG9wLnBsaXN0Il9zKTsKIAogICAgIGF1dG8gZmlsZVR5cGUgPSBGaWxlU3lzdGVtOjpmaWxlVHlw
ZUZvbGxvd2luZ1N5bWxpbmtzKHN0b3JhZ2VEaXJlY3RvcnkpOwogICAgIGlmICghZmlsZVR5cGUp
IHsKQEAgLTg5MSw3ICs4OTEsNyBAQCB2b2lkIENETUluc3RhbmNlU2Vzc2lvbkZhaXJQbGF5U3Ry
ZWFtaW5nQVZGT2JqQzo6dXBkYXRlTGljZW5zZShjb25zdCBTdHJpbmcmLCBMaQogICAgICAgICAg
ICAgaWYgKCFvYmplY3QpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgICAg
ICAgICBhdXRvIGtleUlEU3RyaW5nID0gb2JqZWN0LT5nZXRTdHJpbmcoImtleUlEIik7CisgICAg
ICAgICAgICBhdXRvIGtleUlEU3RyaW5nID0gb2JqZWN0LT5nZXRTdHJpbmcoImtleUlEIl9zKTsK
ICAgICAgICAgICAgIGlmICgha2V5SURTdHJpbmcpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwogCkBAIC05MTEsOCArOTExLDggQEAgdm9pZCBDRE1JbnN0YW5jZVNlc3Npb25GYWlyUGxh
eVN0cmVhbWluZ0FWRk9iakM6OnVwZGF0ZUxpY2Vuc2UoY29uc3QgU3RyaW5nJiwgTGkKIAogICAg
ICAgICAgICAgYXV0byYgcmVxdWVzdCA9IG1fY3VycmVudFJlcXVlc3QudmFsdWUoKS5yZXF1ZXN0
c1tmb3VuZEluZGV4XTsKIAotICAgICAgICAgICAgYXV0byBwYXlsb2FkRmluZFJlc3VsdHMgPSBv
YmplY3QtPmZpbmQoInBheWxvYWQiKTsKLSAgICAgICAgICAgIGF1dG8gZXJyb3JGaW5kUmVzdWx0
cyA9IG9iamVjdC0+ZmluZCgiZXJyb3IiKTsKKyAgICAgICAgICAgIGF1dG8gcGF5bG9hZEZpbmRS
ZXN1bHRzID0gb2JqZWN0LT5maW5kKCJwYXlsb2FkIl9zKTsKKyAgICAgICAgICAgIGF1dG8gZXJy
b3JGaW5kUmVzdWx0cyA9IG9iamVjdC0+ZmluZCgiZXJyb3IiX3MpOwogICAgICAgICAgICAgYm9v
bCBoYXNQYXlsb2FkID0gcGF5bG9hZEZpbmRSZXN1bHRzICE9IG9iamVjdC0+ZW5kKCk7CiAgICAg
ICAgICAgICBib29sIGhhc0Vycm9yID0gZXJyb3JGaW5kUmVzdWx0cyAhPSBvYmplY3QtPmVuZCgp
OwogCkBAIC0xMjUzLDggKzEyNTMsOCBAQCB2b2lkIENETUluc3RhbmNlU2Vzc2lvbkZhaXJQbGF5
U3RyZWFtaW5nQVZGT2JqQzo6ZGlkUHJvdmlkZVJlcXVlc3RzKFZlY3RvcjxSZXRhaQogICAgICAg
ICAgICAgYXV0byBlbnRyeSA9IEpTT046Ok9iamVjdDo6Y3JlYXRlKCk7CiAgICAgICAgICAgICBh
dXRvJiBrZXlJRCA9IHJlcXVlc3REYXRhLmZpcnN0OwogICAgICAgICAgICAgYXV0byYgcGF5bG9h
ZCA9IHJlcXVlc3REYXRhLnNlY29uZDsKLSAgICAgICAgICAgIGVudHJ5LT5zZXRTdHJpbmcoImtl
eUlEIiwgYmFzZTY0RW5jb2RlVG9TdHJpbmcoa2V5SUQtPm1ha2VDb250aWd1b3VzKCktPmRhdGEo
KSwga2V5SUQtPnNpemUoKSkpOwotICAgICAgICAgICAgZW50cnktPnNldFN0cmluZygicGF5bG9h
ZCIsIGJhc2U2NEVuY29kZVRvU3RyaW5nKHBheWxvYWQuZ2V0KCkuYnl0ZXMsIHBheWxvYWQuZ2V0
KCkubGVuZ3RoKSk7CisgICAgICAgICAgICBlbnRyeS0+c2V0U3RyaW5nKCJrZXlJRCJfcywgYmFz
ZTY0RW5jb2RlVG9TdHJpbmcoa2V5SUQtPm1ha2VDb250aWd1b3VzKCktPmRhdGEoKSwga2V5SUQt
PnNpemUoKSkpOworICAgICAgICAgICAgZW50cnktPnNldFN0cmluZygicGF5bG9hZCJfcywgYmFz
ZTY0RW5jb2RlVG9TdHJpbmcocGF5bG9hZC5nZXQoKS5ieXRlcywgcGF5bG9hZC5nZXQoKS5sZW5n
dGgpKTsKICAgICAgICAgICAgIHJlcXVlc3RKU09OLT5wdXNoT2JqZWN0KFdURk1vdmUoZW50cnkp
KTsKICAgICAgICAgfQogICAgICAgICBhdXRvIHJlcXVlc3RCdWZmZXIgPSB1dGY4QnVmZmVyKHJl
cXVlc3RKU09OLT50b0pTT05TdHJpbmcoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uTWVkaWFTb3VyY2VB
VkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQy5tbQppbmRleCAyODZhNWE0ODg3ZThk
OTU2MDBlN2M4YmFjM2FmYmU2Njc2MTYwNTU0Li5hMGM2YTNlNTI2Y2FjYTRhZDFjNzg4ZTNjMjIy
ZThhNGU1MWMyNGZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETVNl
c3Npb25NZWRpYVNvdXJjZUFWRk9iakMubW0KQEAgLTExMyw3ICsxMTMsNyBAQCBTdHJpbmcgQ0RN
U2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQzo6c3RvcmFnZVBhdGgoKSBjb25zdAogICAgIGlmIChz
dG9yYWdlRGlyZWN0b3J5LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7
CiAKLSAgICByZXR1cm4gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KHN0b3Jh
Z2VEaXJlY3RvcnksICJTZWN1cmVTdG9wLnBsaXN0Iik7CisgICAgcmV0dXJuIEZpbGVTeXN0ZW06
OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChzdG9yYWdlRGlyZWN0b3J5LCAiU2VjdXJlU3RvcC5w
bGlzdCJfcyk7CiB9CiAKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxh
eWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNl
QVZGT2JqQy5tbQppbmRleCAwOTk3ZDc4YjY2YjU0ZTE1OTY1ZjZiOGY2NWZhZGNjM2NmYTM5M2Yy
Li45ZWQwMjM2MzM2MDk4N2RlMjE2M2RiMGRmMzMxOTBlN2M4MTI0NTJjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBs
YXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDLm1tCkBAIC0xMDk2LDcgKzEwOTYsNyBAQCBBVlN0cmVhbVNlc3Npb24qIE1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6c3RyZWFtU2Vzc2lvbigpCiAgICAg
ICAgICAgICAgICAgcmV0dXJuIG5pbDsKICAgICAgICAgfQogCi0gICAgICAgIFN0cmluZyBzdG9y
YWdlUGF0aCA9IEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChzdG9yYWdlRGly
ZWN0b3J5LCAiU2VjdXJlU3RvcC5wbGlzdCIpOworICAgICAgICBTdHJpbmcgc3RvcmFnZVBhdGgg
PSBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoc3RvcmFnZURpcmVjdG9yeSwg
IlNlY3VyZVN0b3AucGxpc3QiX3MpOwogICAgICAgICBtX3N0cmVhbVNlc3Npb24gPSBhZG9wdE5T
KFtQQUw6OmFsbG9jQVZTdHJlYW1TZXNzaW9uSW5zdGFuY2UoKSBpbml0V2l0aFN0b3JhZ2VEaXJl
Y3RvcnlBdFVSTDpbTlNVUkwgZmlsZVVSTFdpdGhQYXRoOnN0b3JhZ2VQYXRoXV0pOwogICAgIH0K
ICAgICByZXR1cm4gbV9zdHJlYW1TZXNzaW9uLmdldCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJp
dmF0ZUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbQppbmRleCA2YmE2YjliZjEy
YWQzYzlmMzg5MDdjMmZkMzZmZTg3YTU1M2IyYTQ0Li4wZThlYTY0ZjA4MzhlNjJhZGU1Y2Y4OTcy
Y2FkMTg5YWM1NWQzNTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3Vy
Y2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbQpAQCAtNjAwLDcgKzYwMCw3IEBAIHZvaWQgU291cmNl
QnVmZmVyUHJpdmF0ZUFWRk9iakM6OmRpZFByb3ZpZGVDb250ZW50S2V5UmVxdWVzdEluaXRpYWxp
emF0aW9uRGF0YUZvCiAgICAgfQogCiAgICAgbV9rZXlJRHMgPSBXVEZNb3ZlKGtleUlEcy52YWx1
ZSgpKTsKLSAgICBwbGF5ZXItPmluaXRpYWxpemF0aW9uRGF0YUVuY291bnRlcmVkKCJzaW5mIiwg
bV9pbml0RGF0YS0+dHJ5Q3JlYXRlQXJyYXlCdWZmZXIoKSk7CisgICAgcGxheWVyLT5pbml0aWFs
aXphdGlvbkRhdGFFbmNvdW50ZXJlZCgic2luZiJfcywgbV9pbml0RGF0YS0+dHJ5Q3JlYXRlQXJy
YXlCdWZmZXIoKSk7CiAKICAgICBtX3dhaXRpbmdGb3JLZXkgPSB0cnVlOwogICAgIHBsYXllci0+
d2FpdGluZ0ZvcktleUNoYW5nZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2lvcy9QbGF0Zm9ybVBhc3RlYm9hcmRJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9pb3MvUGxhdGZvcm1QYXN0ZWJvYXJkSU9TLm1tCmluZGV4IGQ2NGI5NjgzNDczNzgzMmQyZWVk
Njg4MjM2MDEyMjcwNjU1ODUzZmMuLjJlMDY4NTdlZjI2YjhiZmZmOWFhMTkxODA3ODRmZGFjMWEy
YjI3NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF0Zm9ybVBh
c3RlYm9hcmRJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1BsYXRmb3Jt
UGFzdGVib2FyZElPUy5tbQpAQCAtMTU5LDcgKzE1OSw3IEBAIHN0YXRpYyBWZWN0b3I8U3RyaW5n
PiB3ZWJTYWZlVHlwZXMoTlNBcnJheTxOU1N0cmluZyAqPiAqcGxhdGZvcm1UeXBlcywgUGxhdGZv
cm1QCiB7CiAgICAgTGlzdEhhc2hTZXQ8U3RyaW5nPiBkb21QYXN0ZWJvYXJkVHlwZXM7CiAgICAg
Zm9yIChOU1N0cmluZyAqdHlwZSBpbiBwbGF0Zm9ybVR5cGVzKSB7Ci0gICAgICAgIGlmIChbdHlw
ZSBpc0VxdWFsVG9TdHJpbmc6QChQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkpXSkK
KyAgICAgICAgaWYgKFt0eXBlIGlzRXF1YWxUb1N0cmluZzpAKFBhc3RlYm9hcmRDdXN0b21EYXRh
Ojpjb2NvYVR5cGUoKS5jaGFyYWN0ZXJzKCkpXSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAg
ICAgICAgIGlmIChQYXN0ZWJvYXJkOjppc1NhZmVUeXBlRm9yRE9NVG9SZWFkQW5kV3JpdGUodHlw
ZSkpIHsKQEAgLTUwMSw3ICs1MDEsNyBAQCBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19F
TkQKIAogICAgIFBhc3RlYm9hcmRDdXN0b21EYXRhIGN1c3RvbURhdGE7CiAgICAgY3VzdG9tRGF0
YS5zZXRPcmlnaW4oY29udGVudC5jb250ZW50T3JpZ2luKTsKLSAgICBbcmVwcmVzZW50YXRpb25z
VG9SZWdpc3RlciBhZGREYXRhOmN1c3RvbURhdGEuY3JlYXRlU2hhcmVkQnVmZmVyKCktPmNyZWF0
ZU5TRGF0YSgpLmdldCgpIGZvclR5cGU6QChQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBl
KCkpXTsKKyAgICBbcmVwcmVzZW50YXRpb25zVG9SZWdpc3RlciBhZGREYXRhOmN1c3RvbURhdGEu
Y3JlYXRlU2hhcmVkQnVmZmVyKCktPmNyZWF0ZU5TRGF0YSgpLmdldCgpIGZvclR5cGU6QChQYXN0
ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkuY2hhcmFjdGVycygpKV07CiAKICAgICByZWdp
c3Rlckl0ZW1Ub1Bhc3RlYm9hcmQocmVwcmVzZW50YXRpb25zVG9SZWdpc3Rlci5nZXQoKSwgbV9w
YXN0ZWJvYXJkLmdldCgpKTsKIH0KQEAgLTYwOCw3ICs2MDgsNyBAQCBWZWN0b3I8U3RyaW5nPiBQ
bGF0Zm9ybVBhc3RlYm9hcmQ6OnR5cGVzU2FmZUZvckRPTVRvUmVhZEFuZFdyaXRlKGNvbnN0IFN0
cmluZyYgbwogICAgIH0KICNlbmRpZiAvLyBQQVNURUJPQVJEX1NVUFBPUlRTX1BSRVNFTlRBVElP
Tl9TVFlMRV9BTkRfVEVBTV9EQVRBCiAKLSAgICBpZiAoTlNEYXRhICpzZXJpYWxpemVkQ3VzdG9t
RGF0YSA9IFttX3Bhc3RlYm9hcmQgZGF0YUZvclBhc3RlYm9hcmRUeXBlOkAoUGFzdGVib2FyZEN1
c3RvbURhdGE6OmNvY29hVHlwZSgpKV0pIHsKKyAgICBpZiAoTlNEYXRhICpzZXJpYWxpemVkQ3Vz
dG9tRGF0YSA9IFttX3Bhc3RlYm9hcmQgZGF0YUZvclBhc3RlYm9hcmRUeXBlOkAoUGFzdGVib2Fy
ZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpLmNoYXJhY3RlcnMoKSldKSB7CiAgICAgICAgIGF1dG8g
ZGF0YSA9IFBhc3RlYm9hcmRDdXN0b21EYXRhOjpmcm9tU2hhcmVkQnVmZmVyKFNoYXJlZEJ1ZmZl
cjo6Y3JlYXRlKHNlcmlhbGl6ZWRDdXN0b21EYXRhKS5nZXQoKSk7CiAgICAgICAgIGlmIChkYXRh
Lm9yaWdpbigpID09IG9yaWdpbikgewogICAgICAgICAgICAgZm9yIChhdXRvJiB0eXBlIDogZGF0
YS5vcmRlcmVkVHlwZXMoKSkKQEAgLTY0NSw3ICs2NDUsNyBAQCBzdGF0aWMgUmV0YWluUHRyPFdl
Ykl0ZW1Qcm92aWRlclJlZ2lzdHJhdGlvbkluZm9MaXN0PiBjcmVhdGVJdGVtUHJvdmlkZXJSZWdp
c3RyYQogICAgICAgICAgICAgTlNEaWN0aW9uYXJ5ICp0ZWFtRGF0YURpY3Rpb25hcnkgPSBAeyBA
KG9yaWdpbktleUZvclRlYW1EYXRhKSA6IGRhdGEub3JpZ2luKCksIEAoY3VzdG9tVHlwZXNLZXlG
b3JUZWFtRGF0YSkgOiBjcmVhdGVOU0FycmF5KGRhdGEub3JkZXJlZFR5cGVzKCkpLmdldCgpIH07
CiAgICAgICAgICAgICBpZiAoTlNEYXRhICp0ZWFtRGF0YSA9IFtOU0tleWVkQXJjaGl2ZXIgYXJj
aGl2ZWREYXRhV2l0aFJvb3RPYmplY3Q6dGVhbURhdGFEaWN0aW9uYXJ5IHJlcXVpcmluZ1NlY3Vy
ZUNvZGluZzpZRVMgZXJyb3I6bnVsbHB0cl0pIHsKICAgICAgICAgICAgICAgICBbcmVwcmVzZW50
YXRpb25zVG9SZWdpc3RlciBzZXRUZWFtRGF0YTp0ZWFtRGF0YV07Ci0gICAgICAgICAgICAgICAg
W3JlcHJlc2VudGF0aW9uc1RvUmVnaXN0ZXIgYWRkRGF0YTpzZXJpYWxpemVkU2hhcmVkQnVmZmVy
LmdldCgpIGZvclR5cGU6QChQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkpXTsKKyAg
ICAgICAgICAgICAgICBbcmVwcmVzZW50YXRpb25zVG9SZWdpc3RlciBhZGREYXRhOnNlcmlhbGl6
ZWRTaGFyZWRCdWZmZXIuZ2V0KCkgZm9yVHlwZTpAKFBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2Nv
YVR5cGUoKS5jaGFyYWN0ZXJzKCkpXTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJJdGVtUHJvdmlkZXJQ
YXN0ZWJvYXJkLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkl0ZW1Qcm92aWRl
clBhc3RlYm9hcmQubW0KaW5kZXggZDJhMWRiYzNhODlmOTFhZWMyYTMyMjAzODY0YTBjZWYzMTky
MzJkMy4uNzVhNzZmNDM5OTRlZTY1ZTgxMzljODc3NjZjMzNiNzhhNGEzZDIyZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkl0ZW1Qcm92aWRlclBhc3Rl
Ym9hcmQubW0KQEAgLTc2MSw3ICs3NjEsNyBAQCBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19CRUdJTgogCiAgICAgLy8gRm9yIGNvbXBhdGliaWxpdHkgd2l0aCBEYXRhVHJhbnNmZXIgQVBJ
cywgYWRkaXRpb25hbGx5IGxvYWQgd2ViLWV4cG9zZWQgdHlwZXMuIFNpbmNlIHRoaXMgaXMgdGhl
IG9ubHkgY2hhbmNlIHRvCiAgICAgLy8gZmF1bHQgaW4gYW55IGRhdGEgYXQgYWxsLCB3ZSBuZWVk
IHRvIGxvYWQgdXAgZnJvbnQgYW55IGluZm9ybWF0aW9uIHRoYXQgdGhlIHBhZ2UgbWF5IGFzayBm
b3IgbGF0ZXIgZG93biB0aGUgbGluZS4KLSAgICBOU1N0cmluZyAqY3VzdG9tUGFzdGVib2FyZERh
dGFVVEkgPSBAKFBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKSk7CisgICAgTlNTdHJp
bmcgKmN1c3RvbVBhc3RlYm9hcmREYXRhVVRJID0gQChQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29j
b2FUeXBlKCkuY2hhcmFjdGVycygpKTsKICAgICBmb3IgKE5TU3RyaW5nICpyZWdpc3RlcmVkVHlw
ZUlkZW50aWZpZXIgaW4gcmVnaXN0ZXJlZFR5cGVJZGVudGlmaWVycykgewogICAgICAgICBpZiAo
W3JlZ2lzdGVyZWRUeXBlSWRlbnRpZmllciBpc0VxdWFsVG9TdHJpbmc6aGlnaGVzdEZpZGVsaXR5
Q29udGVudFR5cGVdCiAgICAgICAgICAgICB8fCBbcmVnaXN0ZXJlZFR5cGVJZGVudGlmaWVyIGlz
RXF1YWxUb1N0cmluZzpoaWdoZXN0RmlkZWxpdHlTdXBwb3J0ZWRUeXBlXQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RhdGFEZXRlY3RvckhpZ2hsaWdodC5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9EYXRhRGV0ZWN0b3JIaWdobGlnaHQubW0KaW5kZXgg
M2YwNjk0MDQ2MDI5NGRjZmU4YTgzMDI4ZDFmZDdkNDY2ZGE4NTM5NS4uMTVkYjg3YjFkOThiYTM4
MWVhOTUxYjFmMzRmOGU2MDA4Mjk4MjVhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL0RhdGFEZXRlY3RvckhpZ2hsaWdodC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvRGF0YURldGVjdG9ySGlnaGxpZ2h0Lm1tCkBAIC0xNTMsNyArMTUzLDcgQEAg
dm9pZCBEYXRhRGV0ZWN0b3JIaWdobGlnaHQ6OmZhZGVJbigpCiAgICAgW2FuaW1hdGlvbiBzZXRU
b1ZhbHVlOkAxXTsKIAogICAgIGF1dG8gcGxhdGZvcm1BbmltYXRpb24gPSBQbGF0Zm9ybUNBQW5p
bWF0aW9uQ29jb2E6OmNyZWF0ZShhbmltYXRpb24uZ2V0KCkpOwotICAgIGRvd25jYXN0PEdyYXBo
aWNzTGF5ZXJDQT4obGF5ZXIoKSkucGxhdGZvcm1DQUxheWVyKCktPmFkZEFuaW1hdGlvbkZvcktl
eSgiRmFkZUhpZ2hsaWdodEluIiwgcGxhdGZvcm1BbmltYXRpb24uZ2V0KCkpOworICAgIGRvd25j
YXN0PEdyYXBoaWNzTGF5ZXJDQT4obGF5ZXIoKSkucGxhdGZvcm1DQUxheWVyKCktPmFkZEFuaW1h
dGlvbkZvcktleSgiRmFkZUhpZ2hsaWdodEluIl9zLCBwbGF0Zm9ybUFuaW1hdGlvbi5nZXQoKSk7
CiB9CiAKIHZvaWQgRGF0YURldGVjdG9ySGlnaGxpZ2h0OjpmYWRlT3V0KCkKQEAgLTE3MCw3ICsx
NzAsNyBAQCB2b2lkIERhdGFEZXRlY3RvckhpZ2hsaWdodDo6ZmFkZU91dCgpCiAgICAgfV07CiAK
ICAgICBhdXRvIHBsYXRmb3JtQW5pbWF0aW9uID0gUGxhdGZvcm1DQUFuaW1hdGlvbkNvY29hOjpj
cmVhdGUoYW5pbWF0aW9uLmdldCgpKTsKLSAgICBkb3duY2FzdDxHcmFwaGljc0xheWVyQ0E+KGxh
eWVyKCkpLnBsYXRmb3JtQ0FMYXllcigpLT5hZGRBbmltYXRpb25Gb3JLZXkoIkZhZGVIaWdobGln
aHRPdXQiLCBwbGF0Zm9ybUFuaW1hdGlvbi5nZXQoKSk7CisgICAgZG93bmNhc3Q8R3JhcGhpY3NM
YXllckNBPihsYXllcigpKS5wbGF0Zm9ybUNBTGF5ZXIoKS0+YWRkQW5pbWF0aW9uRm9yS2V5KCJG
YWRlSGlnaGxpZ2h0T3V0Il9zLCBwbGF0Zm9ybUFuaW1hdGlvbi5nZXQoKSk7CiAgICAgW0NBVHJh
bnNhY3Rpb24gY29tbWl0XTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1Bhc3RlYm9hcmRNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFz
dGVib2FyZE1hYy5tbQppbmRleCBhMmMyNTBhYTJiZWY4ZGU5NjRiYWYwOTI0MGQ1ZTBlYzQxNTBl
Zjg0Li5kYzJmNWM1M2M2NTQxZTE5OGIzYTg0ZTZjNWE4MDVkMWRkZmUwZDhiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbQpAQCAtNTAsMTIgKzUwLDEy
IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY29uc3QgY2hhciogY29uc3QgV2ViQXJjaGl2
ZVBib2FyZFR5cGUgPSAiQXBwbGUgV2ViIEFyY2hpdmUgcGFzdGVib2FyZCB0eXBlIjsKLWNvbnN0
IGNoYXIqIGNvbnN0IFdlYlVSTE5hbWVQYm9hcmRUeXBlID0gInB1YmxpYy51cmwtbmFtZSI7Ci1j
b25zdCBjaGFyKiBjb25zdCBXZWJVUkxzV2l0aFRpdGxlc1Bib2FyZFR5cGUgPSAiV2ViVVJMc1dp
dGhUaXRsZXNQYm9hcmRUeXBlIjsKK2NvbnN0IEFTQ0lJTGl0ZXJhbCBXZWJBcmNoaXZlUGJvYXJk
VHlwZSA9ICJBcHBsZSBXZWIgQXJjaGl2ZSBwYXN0ZWJvYXJkIHR5cGUiX3M7Citjb25zdCBBU0NJ
SUxpdGVyYWwgV2ViVVJMTmFtZVBib2FyZFR5cGUgPSAicHVibGljLnVybC1uYW1lIl9zOworY29u
c3QgQVNDSUlMaXRlcmFsIFdlYlVSTHNXaXRoVGl0bGVzUGJvYXJkVHlwZSA9ICJXZWJVUkxzV2l0
aFRpdGxlc1Bib2FyZFR5cGUiX3M7CiAKLWNvbnN0IGNoYXIgV2ViU21hcnRQYXN0ZVBib2FyZFR5
cGVbXSA9ICJOZVhUIHNtYXJ0IHBhc3RlIHBhc3RlYm9hcmQgdHlwZSI7Ci1jb25zdCBjaGFyIFdl
YlVSTFBib2FyZFR5cGVbXSA9ICJwdWJsaWMudXJsIjsKK2NvbnN0IEFTQ0lJTGl0ZXJhbCBXZWJT
bWFydFBhc3RlUGJvYXJkVHlwZSA9ICJOZVhUIHNtYXJ0IHBhc3RlIHBhc3RlYm9hcmQgdHlwZSJf
czsKK2NvbnN0IEFTQ0lJTGl0ZXJhbCBXZWJVUkxQYm9hcmRUeXBlID0gInB1YmxpYy51cmwiX3M7
CiAKIHN0YXRpYyBjb25zdCBWZWN0b3I8U3RyaW5nPiB3cml0YWJsZVR5cGVzRm9yVVJMKCkKIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFj
dG9yeU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFj
dG9yeU1hYy5tbQppbmRleCAzNWZjNmFmNTliNmFmY2I0Zjk1NTRjMGYyYTg0YTMzNDI4Mzk2ZTVl
Li5iN2I2ZTM3NDdiMGZjZDk3OGM4NzRlMDE4MmYyMzU2M2NlNWQyZDg2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLm1t
CkBAIC01MDIsNyArNTAyLDcgQEAgU3RyaW5nIGtleUlkZW50aWZpZXJGb3JLZXlFdmVudChOU0V2
ZW50KiBldmVudCkKICAgICBOU1N0cmluZyAqcyA9IFtldmVudCBjaGFyYWN0ZXJzSWdub3JpbmdN
b2RpZmllcnNdOwogICAgIGlmIChbcyBsZW5ndGhdICE9IDEpIHsKICAgICAgICAgTE9HKEV2ZW50
cywgInJlY2VpdmVkIGFuIHVuZXhwZWN0ZWQgbnVtYmVyIG9mIGNoYXJhY3RlcnMgaW4ga2V5IGV2
ZW50OiAldSIsIFtzIGxlbmd0aF0pOwotICAgICAgICByZXR1cm4gIlVuaWRlbnRpZmllZCI7Cisg
ICAgICAgIHJldHVybiAiVW5pZGVudGlmaWVkIl9zOwogICAgIH0KICAgICByZXR1cm4ga2V5SWRl
bnRpZmllckZvckNoYXJDb2RlKFtzIGNoYXJhY3RlckF0SW5kZXg6MF0pOwogfQpAQCAtODA5LDIw
ICs4MDksMjAgQEAgcHVibGljOgogCiAgICAgICAgIC8vIEFsd2F5cyB1c2UgMTMgZm9yIEVudGVy
L1JldHVybiAtLSB3ZSBkb24ndCB3YW50IHRvIHVzZSBBcHBLaXQncyBkaWZmZXJlbnQgY2hhcmFj
dGVyIGZvciBFbnRlci4KICAgICAgICAgaWYgKG1fd2luZG93c1ZpcnR1YWxLZXlDb2RlID09IFZL
X1JFVFVSTikgewotICAgICAgICAgICAgbV90ZXh0ID0gIlxyIjsKLSAgICAgICAgICAgIG1fdW5t
b2RpZmllZFRleHQgPSAiXHIiOworICAgICAgICAgICAgbV90ZXh0ID0gIlxyIl9zOworICAgICAg
ICAgICAgbV91bm1vZGlmaWVkVGV4dCA9IG1fdGV4dDsKICAgICAgICAgfQogCiAgICAgICAgIC8v
IEFwcEtpdCBzZXRzIHRleHQgdG8gIlx4N0YiIGZvciBiYWNrc3BhY2UsIGJ1dCB0aGUgY29ycmVj
dCBLZXlib2FyZEV2ZW50IGNoYXJhY3RlciBjb2RlIGlzIDguCiAgICAgICAgIGlmIChtX3dpbmRv
d3NWaXJ0dWFsS2V5Q29kZSA9PSBWS19CQUNLKSB7Ci0gICAgICAgICAgICBtX3RleHQgPSAiXHg4
IjsKLSAgICAgICAgICAgIG1fdW5tb2RpZmllZFRleHQgPSAiXHg4IjsKKyAgICAgICAgICAgIG1f
dGV4dCA9ICJceDgiX3M7CisgICAgICAgICAgICBtX3VubW9kaWZpZWRUZXh0ID0gbV90ZXh0Owog
ICAgICAgICB9CiAKICAgICAgICAgLy8gQWx3YXlzIHVzZSA5IGZvciBUYWIgLS0gd2UgZG9uJ3Qg
d2FudCB0byB1c2UgQXBwS2l0J3MgZGlmZmVyZW50IGNoYXJhY3RlciBmb3Igc2hpZnQtdGFiLgog
ICAgICAgICBpZiAobV93aW5kb3dzVmlydHVhbEtleUNvZGUgPT0gVktfVEFCKSB7Ci0gICAgICAg
ICAgICBtX3RleHQgPSAiXHg5IjsKLSAgICAgICAgICAgIG1fdW5tb2RpZmllZFRleHQgPSAiXHg5
IjsKKyAgICAgICAgICAgIG1fdGV4dCA9ICJceDkiX3M7CisgICAgICAgICAgICBtX3VubW9kaWZp
ZWRUZXh0ID0gbV90ZXh0OwogICAgICAgICB9CiAKICAgICAgICAgLy8gTWFjIHNwZWNpZmljLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtUGFzdGVib2Fy
ZE1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybVBhc3RlYm9hcmRN
YWMubW0KaW5kZXggYTdmZTcyNTU0Mzc2NjVlOGI4YTBjNzQ1M2QzMDQ3NDlkNDU2MmY2Ny4uNDZk
YjU3ZGVlYTlkNzI2OWFlYjRkODc3ZDE5MTdkNWQ2MzAzZGEzMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtUGFzdGVib2FyZE1hYy5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1QYXN0ZWJvYXJkTWFjLm1tCkBAIC0yMTcs
NyArMjE3LDcgQEAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiBWZWN0b3I8U3Ry
aW5nPiBQbGF0Zm9ybVBhc3RlYm9hcmQ6OnR5cGVzU2FmZUZvckRPTVRvUmVhZEFuZFdyaXRlKGNv
bnN0IFN0cmluZyYgb3JpZ2luKSBjb25zdAogewogICAgIExpc3RIYXNoU2V0PFN0cmluZz4gZG9t
UGFzdGVib2FyZFR5cGVzOwotICAgIGlmIChOU0RhdGEgKnNlcmlhbGl6ZWRDdXN0b21EYXRhID0g
W21fcGFzdGVib2FyZCBkYXRhRm9yVHlwZTpAKFBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5
cGUoKSldKSB7CisgICAgaWYgKE5TRGF0YSAqc2VyaWFsaXplZEN1c3RvbURhdGEgPSBbbV9wYXN0
ZWJvYXJkIGRhdGFGb3JUeXBlOkAoUGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpLmNo
YXJhY3RlcnMoKSldKSB7CiAgICAgICAgIGF1dG8gZGF0YSA9IFBhc3RlYm9hcmRDdXN0b21EYXRh
Ojpmcm9tU2hhcmVkQnVmZmVyKFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKHNlcmlhbGl6ZWRDdXN0b21E
YXRhKS5nZXQoKSk7CiAgICAgICAgIGlmIChkYXRhLm9yaWdpbigpID09IG9yaWdpbikgewogICAg
ICAgICAgICAgZm9yIChhdXRvJiB0eXBlIDogZGF0YS5vcmRlcmVkVHlwZXMoKSkKQEAgLTIyNyw3
ICsyMjcsNyBAQCBWZWN0b3I8U3RyaW5nPiBQbGF0Zm9ybVBhc3RlYm9hcmQ6OnR5cGVzU2FmZUZv
ckRPTVRvUmVhZEFuZFdyaXRlKGNvbnN0IFN0cmluZyYgbwogCiAgICAgTlNBcnJheTxOU1N0cmlu
ZyAqPiAqYWxsVHlwZXMgPSBbbV9wYXN0ZWJvYXJkIHR5cGVzXTsKICAgICBmb3IgKE5TU3RyaW5n
ICp0eXBlIGluIGFsbFR5cGVzKSB7Ci0gICAgICAgIGlmIChbdHlwZSBpc0VxdWFsVG9TdHJpbmc6
QChQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkpXSkKKyAgICAgICAgaWYgKFt0eXBl
IGlzRXF1YWxUb1N0cmluZzpAKFBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKS5jaGFy
YWN0ZXJzKCkpXSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgIGlmIChQYXN0ZWJv
YXJkOjppc1NhZmVUeXBlRm9yRE9NVG9SZWFkQW5kV3JpdGUodHlwZSkpCkBAIC0yNTQsNyArMjU0
LDcgQEAgaW50NjRfdCBQbGF0Zm9ybVBhc3RlYm9hcmQ6OndyaXRlKGNvbnN0IFBhc3RlYm9hcmRD
dXN0b21EYXRhJiBkYXRhKQogCiAgICAgYm9vbCBzaG91bGRXcml0ZUN1c3RvbURhdGEgPSBkYXRh
Lmhhc1NhbWVPcmlnaW5DdXN0b21EYXRhKCkgfHwgIWRhdGEub3JpZ2luKCkuaXNFbXB0eSgpOwog
ICAgIGlmIChzaG91bGRXcml0ZUN1c3RvbURhdGEpCi0gICAgICAgIFt0eXBlcyBhZGRPYmplY3Q6
QChQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkpXTsKKyAgICAgICAgW3R5cGVzIGFk
ZE9iamVjdDpAKFBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKS5jaGFyYWN0ZXJzKCkp
XTsKIAogICAgIFttX3Bhc3RlYm9hcmQgZGVjbGFyZVR5cGVzOnR5cGVzIG93bmVyOm5pbF07CiAK
QEAgLTI3NSw3ICsyNzUsNyBAQCBpbnQ2NF90IFBsYXRmb3JtUGFzdGVib2FyZDo6d3JpdGUoY29u
c3QgUGFzdGVib2FyZEN1c3RvbURhdGEmIGRhdGEpCiAKICAgICBpZiAoc2hvdWxkV3JpdGVDdXN0
b21EYXRhKSB7CiAgICAgICAgIGlmIChhdXRvIHNlcmlhbGl6ZWRDdXN0b21EYXRhID0gZGF0YS5j
cmVhdGVTaGFyZWRCdWZmZXIoKS0+Y3JlYXRlTlNEYXRhKCkpCi0gICAgICAgICAgICBbbV9wYXN0
ZWJvYXJkIHNldERhdGE6c2VyaWFsaXplZEN1c3RvbURhdGEuZ2V0KCkgZm9yVHlwZTpAKFBhc3Rl
Ym9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKSldOworICAgICAgICAgICAgW21fcGFzdGVib2Fy
ZCBzZXREYXRhOnNlcmlhbGl6ZWRDdXN0b21EYXRhLmdldCgpIGZvclR5cGU6QChQYXN0ZWJvYXJk
Q3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkuY2hhcmFjdGVycygpKV07CiAgICAgfQogCiAgICAgcmV0
dXJuIGNoYW5nZUNvdW50KCk7CkBAIC00OTksNyArNDk5LDcgQEAgc3RhdGljIFJldGFpblB0cjxO
U1Bhc3RlYm9hcmRJdGVtPiBjcmVhdGVQYXN0ZWJvYXJkSXRlbShjb25zdCBQYXN0ZWJvYXJkQ3Vz
dG9tRGEKIAogICAgIGlmIChkYXRhLmhhc1NhbWVPcmlnaW5DdXN0b21EYXRhKCkgfHwgIWRhdGEu
b3JpZ2luKCkuaXNFbXB0eSgpKSB7CiAgICAgICAgIGlmIChhdXRvIHNlcmlhbGl6ZWRDdXN0b21E
YXRhID0gZGF0YS5jcmVhdGVTaGFyZWRCdWZmZXIoKS0+Y3JlYXRlTlNEYXRhKCkpCi0gICAgICAg
ICAgICBbaXRlbSBzZXREYXRhOnNlcmlhbGl6ZWRDdXN0b21EYXRhLmdldCgpIGZvclR5cGU6QChQ
YXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkpXTsKKyAgICAgICAgICAgIFtpdGVtIHNl
dERhdGE6c2VyaWFsaXplZEN1c3RvbURhdGEuZ2V0KCkgZm9yVHlwZTpAKFBhc3RlYm9hcmRDdXN0
b21EYXRhOjpjb2NvYVR5cGUoKS5jaGFyYWN0ZXJzKCkpXTsKICAgICB9CiAKICAgICBkYXRhLmZv
ckVhY2hQbGF0Zm9ybVN0cmluZ09yQnVmZmVyKFsmXSAoYXV0byYgdHlwZSwgYXV0byYgc3RyaW5n
T3JCdWZmZXIpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TdHJp
bmdVdGlsaXRpZXMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU3RyaW5nVXRpbGl0
aWVzLm1tCmluZGV4IDdjZDFiZDgwYWU5ZTMzZTc1NmY2NTkxMjI0MGY3ZWQ2Y2MzM2M1YjUuLjky
YmU2NjdlNjNlYjMxZjQxZDc3OWE5NjYyZjFmYjc1NmY0NjU0M2UgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TdHJpbmdVdGlsaXRpZXMubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL1N0cmluZ1V0aWxpdGllcy5tbQpAQCAtMzMsNyArMzMsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgCiBzdGF0aWMgU3RyaW5nIHdpbGRjYXJkUmVnZXhQYXR0
ZXJuU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewotICAgIFN0cmluZyBtZXRhQ2hhcmFj
dGVycyA9ICIufCs/KClbXXt9XiQiOworICAgIFN0cmluZyBtZXRhQ2hhcmFjdGVycyA9ICIufCs/
KClbXXt9XiQiX3M7CiAgICAgVUNoYXIgZXNjYXBlQ2hhcmFjdGVyID0gJ1xcJzsKICAgICBVQ2hh
ciB3aWxkY2FyZENoYXJhY3RlciA9ICcqJzsKICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9UaHJlYWRDaGVjay5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9UaHJlYWRDaGVjay5tbQppbmRleCBmMTUxMDg4Y2U5MjVhNTA2ZWI0NjhiMjIyMWZhZjMy
NzUwMzJiYTQyLi5iYmQ3MzQ0MWUwNTBiOTY4NzU3YTRmNWE2YWQxMzQ2NmIxYWQwNmQwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVGhyZWFkQ2hlY2subW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1RocmVhZENoZWNrLm1tCkBAIC0xMDYsNyArMTA2
LDcgQEAgdm9pZCBXZWJDb3JlUmVwb3J0VGhyZWFkVmlvbGF0aW9uKGNvbnN0IGNoYXIqIGZ1bmN0
aW9uLCBXZWJDb3JlOjpUaHJlYWRWaW9sYXRpb24KICAgICAgICAgY2FzZSBOb1RocmVhZENoZWNr
OgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgTG9nT25GaXJzdFRocmVhZFZpb2xh
dGlvbjoKLSAgICAgICAgICAgIGlmIChsb2dnZWRGdW5jdGlvbnMuZ2V0KCkuYWRkKGZ1bmN0aW9u
KS5pc05ld0VudHJ5KSB7CisgICAgICAgICAgICBpZiAobG9nZ2VkRnVuY3Rpb25zLmdldCgpLmFk
ZChTdHJpbmcgeyBmdW5jdGlvbiB9KS5pc05ld0VudHJ5KSB7CiAgICAgICAgICAgICAgICAgTlNM
b2coQCJXZWJLaXQgVGhyZWFkaW5nIFZpb2xhdGlvbiAtICVzIGNhbGxlZCBmcm9tIHNlY29uZGFy
eSB0aHJlYWQiLCBmdW5jdGlvbik7CiAgICAgICAgICAgICAgICAgTlNMb2coQCJBZGRpdGlvbmFs
IHRocmVhZGluZyB2aW9sYXRpb25zIGZvciB0aGlzIGZ1bmN0aW9uIHdpbGwgbm90IGJlIGxvZ2dl
ZC4iKTsKICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9Vc2VyQWdlbnRNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVXNlckFn
ZW50TWFjLm1tCmluZGV4IGU2MmE5N2YxOTlhYWNjM2NhNjkyZDhkYTRiMjA5ZDI5OTRlM2EwZDEu
LmVkYzA3OWY0ZTAyNGFmMzAxZTQ1ZmFhMTA5MzVhOGRiM2EyYjJjNzUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9Vc2VyQWdlbnRNYWMubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL1VzZXJBZ2VudE1hYy5tbQpAQCAtMzgsNyArMzgsNyBAQCBTdHJp
bmcgc3RhbmRhcmRVc2VyQWdlbnRXaXRoQXBwbGljYXRpb25OYW1lKGNvbnN0IFN0cmluZyYgYXBw
bGljYXRpb25OYW1lLCBjb25zdAogICAgIGlmICghb3NWZXJzaW9uLnN0YXJ0c1dpdGgoIjEwIikp
CiAgICAgICAgIG9zVmVyc2lvbiA9ICIxMF8xNV83Il9zOwogICAgIAotICAgIFN0cmluZyBhcHBO
YW1lU3VmZml4ID0gYXBwbGljYXRpb25OYW1lLmlzRW1wdHkoKSA/ICIiIDogbWFrZVN0cmluZygi
ICIsIGFwcGxpY2F0aW9uTmFtZSk7CisgICAgU3RyaW5nIGFwcE5hbWVTdWZmaXggPSBhcHBsaWNh
dGlvbk5hbWUuaXNFbXB0eSgpID8gZW1wdHlTdHJpbmcoKSA6IG1ha2VTdHJpbmcoIiAiLCBhcHBs
aWNhdGlvbk5hbWUpOwogCiAgICAgcmV0dXJuIG1ha2VTdHJpbmcoIk1vemlsbGEvNS4wIChNYWNp
bnRvc2g7IEludGVsIE1hYyBPUyBYICIsIG9zVmVyc2lvbiwgIikgQXBwbGVXZWJLaXQvNjA1LjEu
MTUgKEtIVE1MLCBsaWtlIEdlY2tvKSIsIGFwcE5hbWVTdWZmaXgpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUVycm9yQmFzZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlRXJyb3JCYXNlLmNwcAppbmRl
eCA2N2QyZWFjMDhmYTdiNGJmMDY0Y2NkZmFiYzI0OWZjYzQ2MjUxY2ZkLi5kMDE5M2FjNmM5Yjk3
NGFhMmJmMWQ3MTk3OWQzZTcwMTViYzMwZDlkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlRXJyb3JCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlRXJyb3JCYXNlLmNwcApAQCAtMzIsOCArMzIsOCBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNvbnN0IGNoYXIqIGNvbnN0IGVycm9yRG9tYWlu
V2ViS2l0SW50ZXJuYWwgPSAiV2ViS2l0SW50ZXJuYWwiOwotY29uc3QgY2hhciogY29uc3QgZXJy
b3JEb21haW5XZWJLaXRTZXJ2aWNlV29ya2VyID0gIldlYktpdFNlcnZpY2VXb3JrZXIiOworY29u
c3QgQVNDSUlMaXRlcmFsIGVycm9yRG9tYWluV2ViS2l0SW50ZXJuYWwgPSAiV2ViS2l0SW50ZXJu
YWwiX3M7Citjb25zdCBBU0NJSUxpdGVyYWwgZXJyb3JEb21haW5XZWJLaXRTZXJ2aWNlV29ya2Vy
ID0gIldlYktpdFNlcnZpY2VXb3JrZXIiX3M7CiAKIGlubGluZSBjb25zdCBSZXNvdXJjZUVycm9y
JiBSZXNvdXJjZUVycm9yQmFzZTo6YXNSZXNvdXJjZUVycm9yKCkgY29uc3QKIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VFcnJvckJhc2UuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VFcnJvckJhc2UuaAppbmRl
eCA0ODhkZWJjMTQzZDYzZjQ1N2U4ZDM4ZTljNmRjMjNhOWQyMGJhODE2Li5lMTIxYzUxNGY0ODk0
MjZhMzQzZDM0NDg5MGI5NjYzMDI1MGNkN2NhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlRXJyb3JCYXNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUVycm9yQmFzZS5oCkBAIC0zNCw4ICszNCw4IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUmVzb3VyY2VFcnJvcjsKIAotV0VCQ09SRV9FWFBP
UlQgZXh0ZXJuIGNvbnN0IGNoYXIqIGNvbnN0IGVycm9yRG9tYWluV2ViS2l0SW50ZXJuYWw7IC8v
IFVzZWQgZm9yIGVycm9ycyB0aGF0IHdvbid0IGJlIGV4cG9zZWQgdG8gY2xpZW50cy4KLVdFQkNP
UkVfRVhQT1JUIGV4dGVybiBjb25zdCBjaGFyKiBjb25zdCBlcnJvckRvbWFpbldlYktpdFNlcnZp
Y2VXb3JrZXI7IC8vIFVzZWQgZm9yIGVycm9ycyB0aGF0IGhhcHBlbiB3aGVuIGxvYWRpbmcgYSBy
ZXNvdXJjZSBmcm9tIGEgc2VydmljZSB3b3JrZXIuCitXRUJDT1JFX0VYUE9SVCBleHRlcm4gY29u
c3QgQVNDSUlMaXRlcmFsIGVycm9yRG9tYWluV2ViS2l0SW50ZXJuYWw7IC8vIFVzZWQgZm9yIGVy
cm9ycyB0aGF0IHdvbid0IGJlIGV4cG9zZWQgdG8gY2xpZW50cy4KK1dFQkNPUkVfRVhQT1JUIGV4
dGVybiBjb25zdCBBU0NJSUxpdGVyYWwgZXJyb3JEb21haW5XZWJLaXRTZXJ2aWNlV29ya2VyOyAv
LyBVc2VkIGZvciBlcnJvcnMgdGhhdCBoYXBwZW4gd2hlbiBsb2FkaW5nIGEgcmVzb3VyY2UgZnJv
bSBhIHNlcnZpY2Ugd29ya2VyLgogCiBjbGFzcyBSZXNvdXJjZUVycm9yQmFzZSB7CiAgICAgV1RG
X01BS0VfRkFTVF9BTExPQ0FURUQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2NvY29hL1JhbmdlUmVzcG9uc2VHZW5lcmF0b3IubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1JhbmdlUmVzcG9uc2VHZW5lcmF0b3IubW0KaW5kZXgg
MTk4MTRhMzY1YzlmNjYxYTIxYzIyOWFkYmQwNDYxMWMyMDk0N2U2NC4uMDRlZmRiNGRmZjFkMTY0
MWMzZDYwNWFmMzAxNGQxYTEwYzI0NjQzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbmV0d29yay9jb2NvYS9SYW5nZVJlc3BvbnNlR2VuZXJhdG9yLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvUmFuZ2VSZXNwb25zZUdlbmVyYXRvci5t
bQpAQCAtNzgsNyArNzgsNyBAQCBzdGF0aWMgUmVzb3VyY2VSZXNwb25zZSBzeW50aGVzaXplZFJl
c3BvbnNlRm9yUmFuZ2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgb3JpZwogICAgIGF1dG8gYmVn
aW4gPSBwYXJzZWRSZXF1ZXN0UmFuZ2UuYmVnaW47CiAgICAgYXV0byBlbmQgPSBwYXJzZWRSZXF1
ZXN0UmFuZ2UuZW5kOwogCi0gICAgYXV0byBuZXdDb250ZW50UmFuZ2UgPSBtYWtlU3RyaW5nKCJi
eXRlcyAiLCBiZWdpbiwgIi0iLCBlbmQsICIvIiwgKHRvdGFsQ29udGVudExlbmd0aCA/IG1ha2VT
dHJpbmcoKnRvdGFsQ29udGVudExlbmd0aCkgOiAiKiIpKTsKKyAgICBhdXRvIG5ld0NvbnRlbnRS
YW5nZSA9IG1ha2VTdHJpbmcoImJ5dGVzICIsIGJlZ2luLCAiLSIsIGVuZCwgIi8iLCAodG90YWxD
b250ZW50TGVuZ3RoID8gbWFrZVN0cmluZygqdG90YWxDb250ZW50TGVuZ3RoKSA6ICIqIl9zKSk7
CiAgICAgYXV0byBuZXdDb250ZW50TGVuZ3RoID0gbWFrZVN0cmluZyhlbmQgLSBiZWdpbiArIDEp
OwogCiAgICAgUmVzb3VyY2VSZXNwb25zZSBuZXdSZXNwb25zZSA9IG9yaWdpbmFsUmVzcG9uc2U7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KaW5kZXggMDEwZWNi
YWVkODdhNzNhNDIwYWZiOTdlOGU4MGZlYTYzNzlmZWQzZS4uOGU5ZDQ2YTFiMzRjYWIwNDdmYmEz
NDNkMWI1N2EyYzViMmRjMTA4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJU
aGVtZU1hYy5tbQpAQCAtMjYxOSw3ICsyNjE5LDcgQEAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfRU5ECiAgICAgICAgICAgICByZXR1cm4gaWNvbjsKICAgICB9CiAKLSAgICByZXR1cm4g
SWNvbjo6Y3JlYXRlSWNvbkZvclVUSSgicHVibGljLmRhdGEiKTsKKyAgICByZXR1cm4gSWNvbjo6
Y3JlYXRlSWNvbkZvclVUSSgicHVibGljLmRhdGEiX3MpOwogfQogCiBSZXRhaW5QdHI8TlNJbWFn
ZT4gUmVuZGVyVGhlbWVNYWM6Omljb25Gb3JBdHRhY2htZW50KGNvbnN0IFN0cmluZyYgZmlsZU5h
bWUsIGNvbnN0IFN0cmluZyYgYXR0YWNobWVudFR5cGUsIGNvbnN0IFN0cmluZyYgdGl0bGUpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25z
dGFudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29u
c3RhbnRzLmNwcAppbmRleCA5MmJjNmE4MTJhMTE4YTUxOWYwYjQ2Yzk0Zjk3MmUzMmIzYTVlZTU2
Li40YzUyYzY3MWJkYmNlNjRjOTNlY2MyNGY1ODMwMTUyY2ZmMDUwNmZiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5j
cHAKQEAgLTY3MSw3ICs2NzEsNyBAQCBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0m
IHRzLCBMaXN0U3R5bGVQb3NpdGlvbiBwb3NpdGlvbikKIAogVGV4dFN0cmVhbSYgb3BlcmF0b3I8
PChUZXh0U3RyZWFtJiB0cywgTGlzdFN0eWxlVHlwZSBzdHlsZVR5cGUpCiB7Ci0gICAgcmV0dXJu
IHRzIDw8IGdldFZhbHVlTmFtZSh0b0NTU1ZhbHVlSUQoc3R5bGVUeXBlKSk7CisgICAgcmV0dXJu
IHRzIDw8IGdldFZhbHVlTmFtZSh0b0NTU1ZhbHVlSUQoc3R5bGVUeXBlKSkuY2hhcmFjdGVycygp
OwogfQogCiBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBNYXJxdWVlQmVo
YXZpb3IgbWFycXVlZUJlaGF2aW9yKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R0ZpbHRlckVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmgK
aW5kZXggMWFjZDJhZTk1YTE1OTRlOWYzMzc5ZDJlOTM5ZjkxNmRkMTUwNDZmZC4uMDBjNzYxMGEx
MGNlYmE0NTM0MjRkYTc5NDA5NmUxYTZmZDMzNTI5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmls
dGVyRWxlbWVudC5oCkBAIC02OCwxMCArNjgsMTAgQEAgcHJpdmF0ZToKICAgICBQcm9wZXJ0eVJl
Z2lzdHJ5IG1fcHJvcGVydHlSZWdpc3RyeSB7ICp0aGlzIH07CiAgICAgUmVmPFNWR0FuaW1hdGVk
RW51bWVyYXRpb24+IG1fZmlsdGVyVW5pdHMgeyBTVkdBbmltYXRlZEVudW1lcmF0aW9uOjpjcmVh
dGUodGhpcywgU1ZHVW5pdFR5cGVzOjpTVkdfVU5JVF9UWVBFX09CSkVDVEJPVU5ESU5HQk9YKSB9
OwogICAgIFJlZjxTVkdBbmltYXRlZEVudW1lcmF0aW9uPiBtX3ByaW1pdGl2ZVVuaXRzIHsgU1ZH
QW5pbWF0ZWRFbnVtZXJhdGlvbjo6Y3JlYXRlKHRoaXMsIFNWR1VuaXRUeXBlczo6U1ZHX1VOSVRf
VFlQRV9VU0VSU1BBQ0VPTlVTRSkgfTsKLSAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1feCB7
IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6V2lkdGgsICIt
MTAlIikgfTsKLSAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1feSB7IFNWR0FuaW1hdGVkTGVu
Z3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6SGVpZ2h0LCAiLTEwJSIpIH07Ci0gICAg
UmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX3dpZHRoIHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0
ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpXaWR0aCwgIjEyMCUiKSB9OwotICAgIFJlZjxTVkdBbmlt
YXRlZExlbmd0aD4gbV9oZWlnaHQgeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNW
R0xlbmd0aE1vZGU6OkhlaWdodCwgIjEyMCUiKSB9OworICAgIFJlZjxTVkdBbmltYXRlZExlbmd0
aD4gbV94IHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpX
aWR0aCwgIi0xMCUiX3MpIH07CisgICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX3kgeyBTVkdB
bmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OkhlaWdodCwgIi0xMCUi
X3MpIH07CisgICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX3dpZHRoIHsgU1ZHQW5pbWF0ZWRM
ZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpXaWR0aCwgIjEyMCUiX3MpIH07Cisg
ICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX2hlaWdodCB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpj
cmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6SGVpZ2h0LCAiMTIwJSJfcykgfTsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdG
aWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMuaAppbmRleCAzMTAzY2M2YWMyMzNl
MGZkM2IyZmIxZTk3OTA0OWEyOGI3YjZmOGJiLi43OGUyYWEyYzFlODE0ZTY5OGVkNDQ0ZWVjNzdm
OWIyMDc2ZTNmOTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyUHJp
bWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Zp
bHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5oCkBAIC03NSwxMCArNzUsMTAgQEAgcHJp
dmF0ZToKIAogICAgIC8vIFNwZWM6IElmIHRoZSB4L3kgYXR0cmlidXRlIGlzIG5vdCBzcGVjaWZp
ZWQsIHRoZSBlZmZlY3QgaXMgYXMgaWYgYSB2YWx1ZSBvZiAiMCUiIHdlcmUgc3BlY2lmaWVkLgog
ICAgIC8vIFNwZWM6IElmIHRoZSB3aWR0aC9oZWlnaHQgYXR0cmlidXRlIGlzIG5vdCBzcGVjaWZp
ZWQsIHRoZSBlZmZlY3QgaXMgYXMgaWYgYSB2YWx1ZSBvZiAiMTAwJSIgd2VyZSBzcGVjaWZpZWQu
Ci0gICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX3ggeyBTVkdBbmltYXRlZExlbmd0aDo6Y3Jl
YXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OldpZHRoLCAiMCUiKSB9OwotICAgIFJlZjxTVkdBbmlt
YXRlZExlbmd0aD4gbV95IHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5n
dGhNb2RlOjpIZWlnaHQsICIwJSIpIH07Ci0gICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX3dp
ZHRoIHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpXaWR0
aCwgIjEwMCUiKSB9OwotICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV9oZWlnaHQgeyBTVkdB
bmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OkhlaWdodCwgIjEwMCUi
KSB9OworICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV94IHsgU1ZHQW5pbWF0ZWRMZW5ndGg6
OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpXaWR0aCwgIjAlIl9zKSB9OworICAgIFJlZjxT
VkdBbmltYXRlZExlbmd0aD4gbV95IHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBT
VkdMZW5ndGhNb2RlOjpIZWlnaHQsICIwJSJfcykgfTsKKyAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5n
dGg+IG1fd2lkdGggeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1v
ZGU6OldpZHRoLCAiMTAwJSJfcykgfTsKKyAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1faGVp
Z2h0IHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpIZWln
aHQsICIxMDAlIl9zKSB9OwogICAgIFJlZjxTVkdBbmltYXRlZFN0cmluZz4gbV9yZXN1bHQgeyBT
VkdBbmltYXRlZFN0cmluZzo6Y3JlYXRlKHRoaXMpIH07CiB9OwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmgKaW5kZXggYWVmZTY0Y2UxNDY3Njc4NGMw
ZDFhOTI0Y2UzZGZlYWQ3YmFjYzM3My4uZGYyMGJkMDU5ZmFjNzNiMjNkNzY5ZTg5YzkyZGVmMGZi
ZWM5NzhhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVhckdyYWRpZW50
RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1l
bnQuaApAQCAtNjEsNyArNjEsNyBAQCBwcml2YXRlOgogICAgIFByb3BlcnR5UmVnaXN0cnkgbV9w
cm9wZXJ0eVJlZ2lzdHJ5IHsgKnRoaXMgfTsKICAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1f
eDEgeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OldpZHRo
KSB9OwogICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV95MSB7IFNWR0FuaW1hdGVkTGVuZ3Ro
OjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6SGVpZ2h0KSB9OwotICAgIFJlZjxTVkdBbmlt
YXRlZExlbmd0aD4gbV94MiB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVu
Z3RoTW9kZTo6V2lkdGgsICIxMDAlIikgfTsKKyAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1f
eDIgeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OldpZHRo
LCAiMTAwJSJfcykgfTsKICAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1feTIgeyBTVkdBbmlt
YXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OkhlaWdodCkgfTsKIH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5oCmluZGV4IDVhMTM2ZTNlZjQ1YTU3YTUx
YzkyZmY3NjU5YmE2YWY3NjJmMmFlOTMuLmUxZjdlZTlhYzQ3MWFhNGY2ODBmYjU0YzI0M2FmZDA3
NzM3Mjc1ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQuaApAQCAtODksOCAr
ODksOCBAQCBwcml2YXRlOgogICAgIFByb3BlcnR5UmVnaXN0cnkgbV9wcm9wZXJ0eVJlZ2lzdHJ5
IHsgKnRoaXMgfTsKICAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1fcmVmWCB7IFNWR0FuaW1h
dGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6V2lkdGgpIH07CiAgICAgUmVm
PFNWR0FuaW1hdGVkTGVuZ3RoPiBtX3JlZlkgeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRo
aXMsIFNWR0xlbmd0aE1vZGU6OkhlaWdodCkgfTsKLSAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+
IG1fbWFya2VyV2lkdGggeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0
aE1vZGU6OldpZHRoLCAiMyIpIH07Ci0gICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX21hcmtl
ckhlaWdodCB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6
SGVpZ2h0LCAiMyIpIH07CisgICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX21hcmtlcldpZHRo
IHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpXaWR0aCwg
IjMiX3MpIH07CisgICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX21hcmtlckhlaWdodCB7IFNW
R0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6SGVpZ2h0LCAiMyJf
cykgfTsKICAgICBSZWY8U1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbj4gbV9tYXJrZXJVbml0cyB7IFNW
R0FuaW1hdGVkRW51bWVyYXRpb246OmNyZWF0ZSh0aGlzLCBTVkdNYXJrZXJVbml0c1N0cm9rZVdp
ZHRoKSB9OwogICAgIFJlZjxTVkdBbmltYXRlZEFuZ2xlPiBtX29yaWVudEFuZ2xlIHsgU1ZHQW5p
bWF0ZWRBbmdsZTo6Y3JlYXRlKHRoaXMpIH07CiAgICAgUmVmPFNWR0FuaW1hdGVkT3JpZW50VHlw
ZT4gbV9vcmllbnRUeXBlIHsgU1ZHQW5pbWF0ZWRPcmllbnRUeXBlOjpjcmVhdGUodGhpcywgU1ZH
TWFya2VyT3JpZW50QW5nbGUpIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
TWFza0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5oCmluZGV4
IDQ5MGRjMjIxYWIyNDRhM2VmNWZkZGQyODVkZjM3YTZlNDYwMDM0MmQuLmRiZDA0MmQwZDNhZjgx
MjBlMDBmNTk5Yjk1YjAxZDExMzhjZTIxZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdNYXNrRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVu
dC5oCkBAIC02MywxMCArNjMsMTAgQEAgcHJpdmF0ZToKICAgICBib29sIHNlbGZIYXNSZWxhdGl2
ZUxlbmd0aHMoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAKICAgICBQcm9wZXJ0eVJl
Z2lzdHJ5IG1fcHJvcGVydHlSZWdpc3RyeSB7ICp0aGlzIH07Ci0gICAgUmVmPFNWR0FuaW1hdGVk
TGVuZ3RoPiBtX3ggeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1v
ZGU6OldpZHRoLCAiLTEwJSIpIH07Ci0gICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX3kgeyBT
VkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OkhlaWdodCwgIi0x
MCUiKSB9OwotICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV93aWR0aCB7IFNWR0FuaW1hdGVk
TGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6V2lkdGgsICIxMjAlIikgfTsKLSAg
ICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1faGVpZ2h0IHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNy
ZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpIZWlnaHQsICIxMjAlIikgfTsKKyAgICBSZWY8U1ZH
QW5pbWF0ZWRMZW5ndGg+IG1feCB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZH
TGVuZ3RoTW9kZTo6V2lkdGgsICItMTAlIl9zKSB9OworICAgIFJlZjxTVkdBbmltYXRlZExlbmd0
aD4gbV95IHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpI
ZWlnaHQsICItMTAlIl9zKSB9OworICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV93aWR0aCB7
IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6V2lkdGgsICIx
MjAlIl9zKSB9OworICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV9oZWlnaHQgeyBTVkdBbmlt
YXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OkhlaWdodCwgIjEyMCUiX3Mp
IH07CiAgICAgUmVmPFNWR0FuaW1hdGVkRW51bWVyYXRpb24+IG1fbWFza1VuaXRzIHsgU1ZHQW5p
bWF0ZWRFbnVtZXJhdGlvbjo6Y3JlYXRlKHRoaXMsIFNWR1VuaXRUeXBlczo6U1ZHX1VOSVRfVFlQ
RV9PQkpFQ1RCT1VORElOR0JPWCkgfTsKICAgICBSZWY8U1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbj4g
bV9tYXNrQ29udGVudFVuaXRzIHsgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbjo6Y3JlYXRlKHRoaXMs
IFNWR1VuaXRUeXBlczo6U1ZHX1VOSVRfVFlQRV9VU0VSU1BBQ0VPTlVTRSkgfTsKIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0ltcGwuaCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdQYXRoU2VnSW1wbC5oCmluZGV4IGE2MzYxNTQyOTRmZWEzYTViMDViZjlmZThm
MmY5MGMxOGVhMTA4MzQuLjM0ZjIzYzUxNWY5NGI5MzkxNzBmM2E1Y2U5YWU4ZmI1Mjg4NjYxOTkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnSW1wbC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnSW1wbC5oCkBAIC0zNSw3ICszNSw3IEBAIHB1Ymxp
YzoKIHByaXZhdGU6CiAgICAgdXNpbmcgU1ZHUGF0aFNlZzo6U1ZHUGF0aFNlZzsKICAgICB1bnNp
Z25lZCBzaG9ydCBwYXRoU2VnVHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFBBVEhTRUdfQ0xP
U0VQQVRIOyB9Ci0gICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7
IHJldHVybiAiWiI7IH0KKyAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuICJaIl9zOyB9CiAgICAgUmVmPFNWR1BhdGhTZWc+IGNsb25lKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdQYXRoU2VnQ2xvc2VQYXRoKCkpOyB9CiB9
OwogCkBAIC00NSw3ICs0NSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdXNpbmcgU1ZHUGF0
aFNlZ0xpbmV0b0hvcml6b250YWw6OlNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsOwogICAgIHVu
c2lnbmVkIHNob3J0IHBhdGhTZWdUeXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gUEFUSFNFR19M
SU5FVE9fSE9SSVpPTlRBTF9BQlM7IH0KLSAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuICJIIjsgfQorICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0
dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIkgiX3M7IH0KICAgICBSZWY8U1ZHUGF0aFNlZz4g
Y2xvbmUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBTVkdQYXRoU2VnVmFsdWU6OmNsb25lPFNWR1Bh
dGhTZWdMaW5ldG9Ib3Jpem9udGFsQWJzPigpOyB9CiB9OwogCkBAIC01NSw3ICs1NSw3IEBAIHB1
YmxpYzoKIHByaXZhdGU6CiAgICAgdXNpbmcgU1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWw6OlNW
R1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsOwogICAgIHVuc2lnbmVkIHNob3J0IHBhdGhTZWdUeXBl
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gUEFUSFNFR19MSU5FVE9fSE9SSVpPTlRBTF9SRUw7IH0K
LSAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJo
IjsgfQorICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gImgiX3M7IH0KICAgICBSZWY8U1ZHUGF0aFNlZz4gY2xvbmUoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiBTVkdQYXRoU2VnVmFsdWU6OmNsb25lPFNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsUmVs
PigpOyB9CiB9OwogCkBAIC02NSw3ICs2NSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdXNp
bmcgU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsOjpTVkdQYXRoU2VnTGluZXRvVmVydGljYWw7CiAg
ICAgdW5zaWduZWQgc2hvcnQgcGF0aFNlZ1R5cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBQQVRI
U0VHX0xJTkVUT19WRVJUSUNBTF9BQlM7IH0KLSAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRl
cigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJWIjsgfQorICAgIFN0cmluZyBwYXRoU2VnVHlwZUFz
TGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIlYiX3M7IH0KICAgICBSZWY8U1ZHUGF0aFNl
Zz4gY2xvbmUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBTVkdQYXRoU2VnVmFsdWU6OmNsb25lPFNW
R1BhdGhTZWdMaW5ldG9WZXJ0aWNhbEFicz4oKTsgfQogfTsKIApAQCAtNzUsNyArNzUsNyBAQCBw
dWJsaWM6CiBwcml2YXRlOgogICAgIHVzaW5nIFNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbDo6U1ZH
UGF0aFNlZ0xpbmV0b1ZlcnRpY2FsOwogICAgIHVuc2lnbmVkIHNob3J0IHBhdGhTZWdUeXBlKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gUEFUSFNFR19MSU5FVE9fVkVSVElDQUxfUkVMOyB9Ci0gICAg
U3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAidiI7IH0K
KyAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJ2
Il9zOyB9CiAgICAgUmVmPFNWR1BhdGhTZWc+IGNsb25lKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
U1ZHUGF0aFNlZ1ZhbHVlOjpjbG9uZTxTVkdQYXRoU2VnTGluZXRvVmVydGljYWxSZWw+KCk7IH0K
IH07CiAKQEAgLTg1LDcgKzg1LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB1c2luZyBTVkdQ
YXRoU2VnU2luZ2xlQ29vcmRpbmF0ZTo6U1ZHUGF0aFNlZ1NpbmdsZUNvb3JkaW5hdGU7CiAgICAg
dW5zaWduZWQgc2hvcnQgcGF0aFNlZ1R5cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBQQVRIU0VH
X01PVkVUT19BQlM7IH0KLSAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuICJNIjsgfQorICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29u
c3QgZmluYWwgeyByZXR1cm4gIk0iX3M7IH0KICAgICBSZWY8U1ZHUGF0aFNlZz4gY2xvbmUoKSBj
b25zdCBmaW5hbCB7IHJldHVybiBTVkdQYXRoU2VnVmFsdWU6OmNsb25lPFNWR1BhdGhTZWdNb3Zl
dG9BYnM+KCk7IH0KIH07CiAKQEAgLTk1LDcgKzk1LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAg
ICB1c2luZyBTVkdQYXRoU2VnU2luZ2xlQ29vcmRpbmF0ZTo6U1ZHUGF0aFNlZ1NpbmdsZUNvb3Jk
aW5hdGU7CiAgICAgdW5zaWduZWQgc2hvcnQgcGF0aFNlZ1R5cGUoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiBQQVRIU0VHX01PVkVUT19SRUw7IH0KLSAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRl
cigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJtIjsgfQorICAgIFN0cmluZyBwYXRoU2VnVHlwZUFz
TGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIm0iX3M7IH0KICAgICBSZWY8U1ZHUGF0aFNl
Zz4gY2xvbmUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBTVkdQYXRoU2VnVmFsdWU6OmNsb25lPFNW
R1BhdGhTZWdNb3ZldG9SZWw+KCk7IH0KIH07CiAKQEAgLTEwNSw3ICsxMDUsNyBAQCBwdWJsaWM6
CiBwcml2YXRlOgogICAgIHVzaW5nIFNWR1BhdGhTZWdTaW5nbGVDb29yZGluYXRlOjpTVkdQYXRo
U2VnU2luZ2xlQ29vcmRpbmF0ZTsKICAgICB1bnNpZ25lZCBzaG9ydCBwYXRoU2VnVHlwZSgpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIFBBVEhTRUdfTElORVRPX0FCUzsgfQotICAgIFN0cmluZyBwYXRo
U2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIkwiOyB9CisgICAgU3RyaW5n
IHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiTCJfczsgfQogICAg
IFJlZjxTVkdQYXRoU2VnPiBjbG9uZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFNWR1BhdGhTZWdW
YWx1ZTo6Y2xvbmU8U1ZHUGF0aFNlZ0xpbmV0b0Ficz4oKTsgfQogfTsKIApAQCAtMTE1LDcgKzEx
NSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdXNpbmcgU1ZHUGF0aFNlZ1NpbmdsZUNvb3Jk
aW5hdGU6OlNWR1BhdGhTZWdTaW5nbGVDb29yZGluYXRlOwogICAgIHVuc2lnbmVkIHNob3J0IHBh
dGhTZWdUeXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gUEFUSFNFR19MSU5FVE9fUkVMOyB9Ci0g
ICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAibCI7
IH0KKyAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
ICJsIl9zOyB9CiAgICAgUmVmPFNWR1BhdGhTZWc+IGNsb25lKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gU1ZHUGF0aFNlZ1ZhbHVlOjpjbG9uZTxTVkdQYXRoU2VnTGluZXRvUmVsPigpOyB9CiB9Owog
CkBAIC0xMjUsNyArMTI1LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB1c2luZyBTVkdQYXRo
U2VnQ3VydmV0b1F1YWRyYXRpYzo6U1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWM7CiAgICAgdW5z
aWduZWQgc2hvcnQgcGF0aFNlZ1R5cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBQQVRIU0VHX0NV
UlZFVE9fUVVBRFJBVElDX0FCUzsgfQotICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gIlEiOyB9CisgICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0
ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiUSJfczsgfQogICAgIFJlZjxTVkdQYXRoU2VnPiBj
bG9uZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFNWR1BhdGhTZWdWYWx1ZTo6Y2xvbmU8U1ZHUGF0
aFNlZ0N1cnZldG9RdWFkcmF0aWNBYnM+KCk7IH0KIH07CiAKQEAgLTEzNSw3ICsxMzUsNyBAQCBw
dWJsaWM6CiBwcml2YXRlOgogICAgIHVzaW5nIFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljOjpT
VkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpYzsKICAgICB1bnNpZ25lZCBzaG9ydCBwYXRoU2VnVHlw
ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFBBVEhTRUdfQ1VSVkVUT19RVUFEUkFUSUNfUkVMOyB9
Ci0gICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAi
cSI7IH0KKyAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuICJxIl9zOyB9CiAgICAgUmVmPFNWR1BhdGhTZWc+IGNsb25lKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gU1ZHUGF0aFNlZ1ZhbHVlOjpjbG9uZTxTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Jl
bD4oKTsgfQogfTsKIApAQCAtMTQ1LDcgKzE0NSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAg
dXNpbmcgU1ZHUGF0aFNlZ0N1cnZldG9DdWJpYzo6U1ZHUGF0aFNlZ0N1cnZldG9DdWJpYzsKICAg
ICB1bnNpZ25lZCBzaG9ydCBwYXRoU2VnVHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFBBVEhT
RUdfQ1VSVkVUT19DVUJJQ19BQlM7IH0KLSAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuICJDIjsgfQorICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0
dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIkMiX3M7IH0KICAgICBSZWY8U1ZHUGF0aFNlZz4g
Y2xvbmUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBTVkdQYXRoU2VnVmFsdWU6OmNsb25lPFNWR1Bh
dGhTZWdDdXJ2ZXRvQ3ViaWNBYnM+KCk7IH0KIH07CiAKQEAgLTE1NSw3ICsxNTUsNyBAQCBwdWJs
aWM6CiBwcml2YXRlOgogICAgIHVzaW5nIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWM6OlNWR1BhdGhT
ZWdDdXJ2ZXRvQ3ViaWM7CiAgICAgdW5zaWduZWQgc2hvcnQgcGF0aFNlZ1R5cGUoKSBjb25zdCBm
aW5hbCB7IHJldHVybiBQQVRIU0VHX0NVUlZFVE9fQ1VCSUNfUkVMOyB9Ci0gICAgU3RyaW5nIHBh
dGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiYyI7IH0KKyAgICBTdHJp
bmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJjIl9zOyB9CiAg
ICAgUmVmPFNWR1BhdGhTZWc+IGNsb25lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gU1ZHUGF0aFNl
Z1ZhbHVlOjpjbG9uZTxTVkdQYXRoU2VnQ3VydmV0b0N1YmljUmVsPigpOyB9CiB9OwogCkBAIC0x
NjUsNyArMTY1LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB1c2luZyBTVkdQYXRoU2VnQXJj
OjpTVkdQYXRoU2VnQXJjOwogICAgIHVuc2lnbmVkIHNob3J0IHBhdGhTZWdUeXBlKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gUEFUSFNFR19BUkNfQUJTOyB9Ci0gICAgU3RyaW5nIHBhdGhTZWdUeXBl
QXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiQSI7IH0KKyAgICBTdHJpbmcgcGF0aFNl
Z1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJBIl9zOyB9CiAgICAgUmVmPFNW
R1BhdGhTZWc+IGNsb25lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gU1ZHUGF0aFNlZ1ZhbHVlOjpj
bG9uZTxTVkdQYXRoU2VnQXJjQWJzPigpOyB9CiB9OwogCkBAIC0xNzUsNyArMTc1LDcgQEAgcHVi
bGljOgogcHJpdmF0ZToKICAgICB1c2luZyBTVkdQYXRoU2VnQXJjOjpTVkdQYXRoU2VnQXJjOwog
ICAgIHVuc2lnbmVkIHNob3J0IHBhdGhTZWdUeXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gUEFU
SFNFR19BUkNfUkVMOyB9Ci0gICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBm
aW5hbCB7IHJldHVybiAiYSI7IH0KKyAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuICJhIl9zOyB9CiAgICAgUmVmPFNWR1BhdGhTZWc+IGNsb25lKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gU1ZHUGF0aFNlZ1ZhbHVlOjpjbG9uZTxTVkdQYXRoU2VnQXJj
UmVsPigpOyB9CiB9OwogCkBAIC0xODUsNyArMTg1LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAg
ICB1c2luZyBTVkdQYXRoU2VnU2luZ2xlQ29vcmRpbmF0ZTo6U1ZHUGF0aFNlZ1NpbmdsZUNvb3Jk
aW5hdGU7CiAgICAgdW5zaWduZWQgc2hvcnQgcGF0aFNlZ1R5cGUoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiBQQVRIU0VHX0NVUlZFVE9fUVVBRFJBVElDX1NNT09USF9BQlM7IH0KLSAgICBTdHJpbmcg
cGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJUIjsgfQorICAgIFN0
cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIlQiX3M7IH0K
ICAgICBSZWY8U1ZHUGF0aFNlZz4gY2xvbmUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBTVkdQYXRo
U2VnVmFsdWU6OmNsb25lPFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoQWJzPigpOyB9
CiB9OwogCkBAIC0xOTUsNyArMTk1LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB1c2luZyBT
VkdQYXRoU2VnU2luZ2xlQ29vcmRpbmF0ZTo6U1ZHUGF0aFNlZ1NpbmdsZUNvb3JkaW5hdGU7CiAg
ICAgdW5zaWduZWQgc2hvcnQgcGF0aFNlZ1R5cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBQQVRI
U0VHX0NVUlZFVE9fUVVBRFJBVElDX1NNT09USF9SRUw7IH0KLSAgICBTdHJpbmcgcGF0aFNlZ1R5
cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJ0IjsgfQorICAgIFN0cmluZyBwYXRo
U2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gInQiX3M7IH0KICAgICBSZWY8
U1ZHUGF0aFNlZz4gY2xvbmUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBTVkdQYXRoU2VnVmFsdWU6
OmNsb25lPFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoUmVsPigpOyB9CiB9OwogCkBA
IC0yMDUsNyArMjA1LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB1c2luZyBTVkdQYXRoU2Vn
Q3VydmV0b0N1YmljU21vb3RoOjpTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoOwogICAgIHVu
c2lnbmVkIHNob3J0IHBhdGhTZWdUeXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gUEFUSFNFR19D
VVJWRVRPX0NVQklDX1NNT09USF9BQlM7IH0KLSAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRl
cigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJTIjsgfQorICAgIFN0cmluZyBwYXRoU2VnVHlwZUFz
TGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIlMiX3M7IH0KICAgICBSZWY8U1ZHUGF0aFNl
Zz4gY2xvbmUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBTVkdQYXRoU2VnVmFsdWU6OmNsb25lPFNW
R1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhBYnM+KCk7IH0KIH07CiAKQEAgLTIxNSw3ICsyMTUs
NyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHVzaW5nIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNT
bW9vdGg6OlNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGg7CiAgICAgdW5zaWduZWQgc2hvcnQg
cGF0aFNlZ1R5cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBQQVRIU0VHX0NVUlZFVE9fQ1VCSUNf
U01PT1RIX1JFTDsgfQotICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gInMiOyB9CisgICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25z
dCBmaW5hbCB7IHJldHVybiAicyJfczsgfQogICAgIFJlZjxTVkdQYXRoU2VnPiBjbG9uZSgpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIFNWR1BhdGhTZWdWYWx1ZTo6Y2xvbmU8U1ZHUGF0aFNlZ0N1cnZl
dG9DdWJpY1Ntb290aFJlbD4oKTsgfQogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1Jh
ZGlhbEdyYWRpZW50RWxlbWVudC5oCmluZGV4IDg0ZjExNTg4ZjNlMjgxZTZmNmUwN2E2MDlkMDg5
YTk3ODcwOGEzOWUuLjI0MTk3Zjc0NTc3MTY1N2MxN2Q4ZDA3YjJjZDI0ZTU0ZTM0YzgwOGUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmgKQEAgLTYz
LDEyICs2MywxMiBAQCBwcml2YXRlOgogICAgIGJvb2wgc2VsZkhhc1JlbGF0aXZlTGVuZ3Rocygp
IGNvbnN0IG92ZXJyaWRlOwogCiAgICAgUHJvcGVydHlSZWdpc3RyeSBtX3Byb3BlcnR5UmVnaXN0
cnkgeyAqdGhpcyB9OwotICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV9jeCB7IFNWR0FuaW1h
dGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6V2lkdGgsICI1MCUiKSB9Owot
ICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV9jeSB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVh
dGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6SGVpZ2h0LCAiNTAlIikgfTsKLSAgICBSZWY8U1ZHQW5p
bWF0ZWRMZW5ndGg+IG1fciB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVu
Z3RoTW9kZTo6T3RoZXIsICI1MCUiKSB9OworICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV9j
eCB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6V2lkdGgs
ICI1MCUiX3MpIH07CisgICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX2N5IHsgU1ZHQW5pbWF0
ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpIZWlnaHQsICI1MCUiX3MpIH07
CisgICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX3IgeyBTVkdBbmltYXRlZExlbmd0aDo6Y3Jl
YXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6Ok90aGVyLCAiNTAlIl9zKSB9OwogICAgIFJlZjxTVkdB
bmltYXRlZExlbmd0aD4gbV9meCB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZH
TGVuZ3RoTW9kZTo6V2lkdGgpIH07CiAgICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX2Z5IHsg
U1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpIZWlnaHQpIH07
Ci0gICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX2ZyIHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNy
ZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpPdGhlciwgIjAlIikgfTsKKyAgICBSZWY8U1ZHQW5p
bWF0ZWRMZW5ndGg+IG1fZnIgeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xl
bmd0aE1vZGU6Ok90aGVyLCAiMCUiX3MpIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRy
YWl0cy5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlUcmFpdHMu
aAppbmRleCA0Mzk5NzA0MzBmNjU2YTk4NjVlNmU5YzlkOWVmNWVhMjRiYmE1MzA0Li44NDVhYjRh
YmZmYjc4OTU4NDg2OWY5ZmYxYWE1ZTgzMjAxMjgwYTYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRyYWl0cy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5VHJhaXRzLmgKQEAgLTM5LDcgKzM5LDcgQEAg
c3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPGJvb2w+IHsKICAgICBzdGF0aWMgYm9vbCBpbml0aWFs
VmFsdWUoKSB7IHJldHVybiBmYWxzZTsgfQogICAgIHN0YXRpYyBib29sIGZyb21TdHJpbmcoY29u
c3QgU3RyaW5nJiBzdHJpbmcpIHsgcmV0dXJuIHN0cmluZyA9PSAidHJ1ZSI7IH0KICAgICBzdGF0
aWMgc3RkOjpvcHRpb25hbDxib29sPiBwYXJzZShjb25zdCBRdWFsaWZpZWROYW1lJiwgY29uc3Qg
U3RyaW5nJikgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgcmV0dXJuIGluaXRpYWxWYWx1ZSgpOyB9
Ci0gICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhib29sIHR5cGUpIHsgcmV0dXJuIHR5cGUgPyAi
dHJ1ZSIgOiAiZmFsc2UiOyB9CisgICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhib29sIHR5cGUp
IHsgcmV0dXJuIHR5cGUgPyAidHJ1ZSJfcyA6ICJmYWxzZSJfczsgfQogfTsKIAogdGVtcGxhdGU8
PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrQ29udGVudEZpbHRlclNl
dHRpbmdzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDb250ZW50RmlsdGVyU2V0dGlu
Z3MuaAppbmRleCAxODFlZmY1YjViOGVhMDAxOGU5ZjNiMGMyNDNhYzdkNGUzZTlkY2E3Li5mM2M5
N2YzZjhlMTNhYTBmMTI3ZGVlODQzOWQ2YjVjMGQwZTNjMWUzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL01vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL01vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MuaApAQCAtNDgsNyArNDgs
NyBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX1RFU1RTVVBQT1JUX0VYUE9SVCBzdGF0aWMgTW9j
a0NvbnRlbnRGaWx0ZXJTZXR0aW5ncyYgc2luZ2xldG9uKCk7CiAgICAgV0VCQ09SRV9URVNUU1VQ
UE9SVF9FWFBPUlQgc3RhdGljIHZvaWQgcmVzZXQoKTsKLSAgICBzdGF0aWMgY29uc3QgY2hhciog
dW5ibG9ja1VSTEhvc3QoKSB7IHJldHVybiAibW9jay11bmJsb2NrIjsgfQorICAgIHN0YXRpYyBB
U0NJSUxpdGVyYWwgdW5ibG9ja1VSTEhvc3QoKSB7IHJldHVybiAibW9jay11bmJsb2NrIl9zOyB9
CiAKICAgICAvLyBUcmljayB0aGUgZ2VuZXJhdGVkIGJpbmRpbmdzIGludG8gdGhpbmtpbmcgd2Un
cmUgUmVmQ291bnRlZC4KICAgICB2b2lkIHJlZigpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUveG1sL1hQYXRoVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aFZhbHVlLmgK
aW5kZXggZDkxYzc3ZDEwMmQyNGFkMjNlNTkzOTg2ZTA0MGJhMjVjMDlkYjM2Yi4uZWE4M2Y3ZDBi
YjFhYWYxNGE3YmE3MjEwOTRmM2IyMTlhMjJiMjNiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUveG1sL1hQYXRoVmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhWYWx1ZS5o
CkBAIC00MCw3ICs0MCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgICAgIFZhbHVl
KGRvdWJsZSB2YWx1ZSkgOiBtX3R5cGUoTnVtYmVyVmFsdWUpLCBtX251bWJlcih2YWx1ZSkgeyB9
CiAKICAgICAgICAgICAgIFZhbHVlKGNvbnN0IFN0cmluZyYgdmFsdWUpIDogbV90eXBlKFN0cmlu
Z1ZhbHVlKSwgbV9kYXRhKERhdGE6OmNyZWF0ZSh2YWx1ZSkpIHsgfQotICAgICAgICAgICAgVmFs
dWUoY29uc3QgY2hhciogdmFsdWUpIDogbV90eXBlKFN0cmluZ1ZhbHVlKSwgbV9kYXRhKERhdGE6
OmNyZWF0ZSh2YWx1ZSkpIHsgfQorICAgICAgICAgICAgVmFsdWUoY29uc3QgY2hhciogdmFsdWUp
IDogbV90eXBlKFN0cmluZ1ZhbHVlKSwgbV9kYXRhKERhdGE6OmNyZWF0ZShTdHJpbmcgeyB2YWx1
ZSB9KSkgeyB9CiAKICAgICAgICAgICAgIGV4cGxpY2l0IFZhbHVlKE5vZGVTZXQmJiB2YWx1ZSkK
ICAgICAgICAgICAgICAgICA6IG1fdHlwZShOb2RlU2V0VmFsdWUpLCBtX2RhdGEoRGF0YTo6Y3Jl
YXRlKFdURk1vdmUodmFsdWUpKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xT
dHlsZVNoZWV0LmggYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMU3R5bGVTaGVldC5oCmluZGV4IGEy
YmY4ZTMzNDlhYjU2MzZmNTI3NGU0NTI0YzMwYmIxODZjNmZkZWQuLjVmYmQ2ZWJhNDc5ZDg3ZTli
N2U4MjFhZjllYTMyZjAzMGY0Njg1MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9Y
U0xTdHlsZVNoZWV0LmgKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hTTFN0eWxlU2hlZXQuaApA
QCAtODQsNyArODQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBtYXJrQXNQcm9jZXNzZWQoKTsKICAg
ICBib29sIHByb2Nlc3NlZCgpIGNvbnN0IHsgcmV0dXJuIG1fcHJvY2Vzc2VkOyB9CiAgICAgCi0g
ICAgU3RyaW5nIHR5cGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAidGV4dC94bWwiOyB9Cisg
ICAgU3RyaW5nIHR5cGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAidGV4dC94bWwiX3M7IH0K
ICAgICBib29sIGRpc2FibGVkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9pc0Rpc2FibGVk
OyB9CiAgICAgdm9pZCBzZXREaXNhYmxlZChib29sIGIpIG92ZXJyaWRlIHsgbV9pc0Rpc2FibGVk
ID0gYjsgfQogICAgIE5vZGUqIG93bmVyTm9kZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIG1f
b3duZXJOb2RlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViR1BVL1dHU0wvUGFyc2VyLmNwcCBi
L1NvdXJjZS9XZWJHUFUvV0dTTC9QYXJzZXIuY3BwCmluZGV4IDYyNTQ4N2RlMTg1ZmVlY2Y5NGEx
ZDFiM2YwYmM5ODQ2ZTNkYjhhMGEuLmU2MmYzZTBjMDg3ZWZhMWMxYmMyZDA4YjFmMmQ3ODFhYTlj
NWNjNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJHUFUvV0dTTC9QYXJzZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJHUFUvV0dTTC9QYXJzZXIuY3BwCkBAIC0yMzQsNyArMjM0LDcgQEAgRXhwZWN0ZWQ8
VW5pcXVlUmVmPEFTVDo6R2xvYmFsRGVjbD4sIEVycm9yPiBQYXJzZXI8TGV4ZXI+OjpwYXJzZUds
b2JhbERlY2woKQogICAgICAgICByZXR1cm4geyBtYWtlVW5pcXVlUmVmPEFTVDo6RnVuY3Rpb25E
ZWNsPihXVEZNb3ZlKGZuKSkgfTsKICAgICB9CiAgICAgZGVmYXVsdDoKLSAgICAgICAgRkFJTCgi
VHJ5aW5nIHRvIHBhcnNlIGEgR2xvYmFsRGVjbCwgZXhwZWN0ZWQgJ3ZhcicsICdmbicsIG9yICdz
dHJ1Y3QnLiIpOworICAgICAgICBGQUlMKCJUcnlpbmcgdG8gcGFyc2UgYSBHbG9iYWxEZWNsLCBl
eHBlY3RlZCAndmFyJywgJ2ZuJywgb3IgJ3N0cnVjdCcuIl9zKTsKICAgICB9CiB9CiAKQEAgLTI4
Miw3ICsyODIsNyBAQCBFeHBlY3RlZDxVbmlxdWVSZWY8QVNUOjpBdHRyaWJ1dGU+LCBFcnJvcj4g
UGFyc2VyPExleGVyPjo6cGFyc2VBdHRyaWJ1dGUoKQogICAgICAgICAgICAgUkVUVVJOX05PREVf
UkVGKFN0YWdlQXR0cmlidXRlLCBBU1Q6OlN0YWdlQXR0cmlidXRlOjpTdGFnZTo6VmVydGV4KTsK
ICAgICAgICAgaWYgKHN0YWdlLm1faWRlbnQgPT0gImZyYWdtZW50IikKICAgICAgICAgICAgIFJF
VFVSTl9OT0RFX1JFRihTdGFnZUF0dHJpYnV0ZSwgQVNUOjpTdGFnZUF0dHJpYnV0ZTo6U3RhZ2U6
OkZyYWdtZW50KTsKLSAgICAgICAgRkFJTCgiSW52YWxpZCBzdGFnZSBhdHRyaWJ1dGUsIHRoZSBv
bmx5IG9wdGlvbnMgYXJlICdjb21wdXRlJywgJ3ZlcnRleCcsICdmcmFnbWVudCcuIik7CisgICAg
ICAgIEZBSUwoIkludmFsaWQgc3RhZ2UgYXR0cmlidXRlLCB0aGUgb25seSBvcHRpb25zIGFyZSAn
Y29tcHV0ZScsICd2ZXJ0ZXgnLCAnZnJhZ21lbnQnLiJfcyk7CiAgICAgfQogICAgIGlmIChpZGVu
dC5tX2lkZW50ID09ICJsb2NhdGlvbiIpIHsKICAgICAgICAgQ09OU1VNRV9UWVBFKFBhcmVuTGVm
dCk7CkBAIC0yOTcsNyArMjk3LDcgQEAgRXhwZWN0ZWQ8VW5pcXVlUmVmPEFTVDo6QXR0cmlidXRl
PiwgRXJyb3I+IFBhcnNlcjxMZXhlcj46OnBhcnNlQXR0cmlidXRlKCkKICAgICAgICAgQ09OU1VN
RV9UWVBFKFBhcmVuUmlnaHQpOwogICAgICAgICBSRVRVUk5fTk9ERV9SRUYoQnVpbHRpbkF0dHJp
YnV0ZSwgbmFtZS5tX2lkZW50KTsKICAgICB9Ci0gICAgRkFJTCgiVW5rbm93biBhdHRyaWJ1dGUs
IHRoZSBvbmx5IHN1cHBvcnRlZCBhdHRyaWJ1dGVzIGFyZSAnZ3JvdXAnLCAnYmluZGluZycsICdz
dGFnZScuIik7CisgICAgRkFJTCgiVW5rbm93biBhdHRyaWJ1dGUsIHRoZSBvbmx5IHN1cHBvcnRl
ZCBhdHRyaWJ1dGVzIGFyZSAnZ3JvdXAnLCAnYmluZGluZycsICdzdGFnZScuIl9zKTsKIH0KIAog
dGVtcGxhdGU8dHlwZW5hbWUgTGV4ZXI+CkBAIC0zNjAsNyArMzYwLDcgQEAgRXhwZWN0ZWQ8VW5p
cXVlUmVmPEFTVDo6VHlwZURlY2w+LCBFcnJvcj4gUGFyc2VyPExleGVyPjo6cGFyc2VUeXBlRGVj
bCgpCiAgICAgICAgIHJldHVybiBwYXJzZVR5cGVEZWNsQWZ0ZXJJZGVudGlmaWVyKFdURk1vdmUo
bmFtZS5tX2lkZW50KSwgX3N0YXJ0T2ZFbGVtZW50UG9zaXRpb24pOwogICAgIH0KIAotICAgIEZB
SUwoIlRyaWVkIHBhcnNpbmcgYSB0eXBlIGFuZCBpdCBkaWQgbm90IHN0YXJ0IHdpdGggYW4gaWRl
bnRpZmllciIpOworICAgIEZBSUwoIlRyaWVkIHBhcnNpbmcgYSB0eXBlIGFuZCBpdCBkaWQgbm90
IHN0YXJ0IHdpdGggYW4gaWRlbnRpZmllciJfcyk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIExl
eGVyPgpAQCAtNDUwLDcgKzQ1MCw3IEBAIEV4cGVjdGVkPEFTVDo6U3RvcmFnZUNsYXNzLCBFcnJv
cj4gUGFyc2VyPExleGVyPjo6cGFyc2VTdG9yYWdlQ2xhc3MoKQogICAgICAgICByZXR1cm4geyBB
U1Q6OlN0b3JhZ2VDbGFzczo6U3RvcmFnZSB9OwogICAgIH0KIAotICAgIEZBSUwoIkV4cGVjdGVk
IG9uZSBvZiAnZnVuY3Rpb24nLydwcml2YXRlJy8nc3RvcmFnZScvJ3VuaWZvcm0nLyd3b3JrZ3Jv
dXAnIik7CisgICAgRkFJTCgiRXhwZWN0ZWQgb25lIG9mICdmdW5jdGlvbicvJ3ByaXZhdGUnLydz
dG9yYWdlJy8ndW5pZm9ybScvJ3dvcmtncm91cCciX3MpOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFt
ZSBMZXhlcj4KQEAgLTQ3MSw3ICs0NzEsNyBAQCBFeHBlY3RlZDxBU1Q6OkFjY2Vzc01vZGUsIEVy
cm9yPiBQYXJzZXI8TGV4ZXI+OjpwYXJzZUFjY2Vzc01vZGUoKQogICAgICAgICByZXR1cm4geyBB
U1Q6OkFjY2Vzc01vZGU6OlJlYWRXcml0ZSB9OwogICAgIH0KIAotICAgIEZBSUwoIkV4cGVjdGVk
IG9uZSBvZiAncmVhZCcvJ3dyaXRlJy8ncmVhZF93cml0ZSciKTsKKyAgICBGQUlMKCJFeHBlY3Rl
ZCBvbmUgb2YgJ3JlYWQnLyd3cml0ZScvJ3JlYWRfd3JpdGUnIl9zKTsKIH0KIAogdGVtcGxhdGU8
dHlwZW5hbWUgTGV4ZXI+CkBAIC01NDcsNyArNTQ3LDcgQEAgRXhwZWN0ZWQ8VW5pcXVlUmVmPEFT
VDo6U3RhdGVtZW50PiwgRXJyb3I+IFBhcnNlcjxMZXhlcj46OnBhcnNlU3RhdGVtZW50KCkKICAg
ICAgICAgUkVUVVJOX05PREVfUkVGKEFzc2lnbm1lbnRTdGF0ZW1lbnQsIGxocy5tb3ZlVG9Vbmlx
dWVQdHIoKSwgV1RGTW92ZShyaHMpKTsKICAgICB9CiAgICAgZGVmYXVsdDoKLSAgICAgICAgRkFJ
TCgiTm90IGEgdmFsaWQgc3RhdGVtZW50Iik7CisgICAgICAgIEZBSUwoIk5vdCBhIHZhbGlkIHN0
YXRlbWVudCJfcyk7CiAgICAgfQogfQogCkBAIC02OTQsNyArNjk0LDcgQEAgRXhwZWN0ZWQ8VW5p
cXVlUmVmPEFTVDo6RXhwcmVzc2lvbj4sIEVycm9yPiBQYXJzZXI8TGV4ZXI+OjpwYXJzZVByaW1h
cnlFeHByZXNzaW8KICAgICBkZWZhdWx0OgogICAgICAgICBicmVhazsKICAgICB9Ci0gICAgRkFJ
TCgiRXhwZWN0ZWQgb25lIG9mICcoJywgYSBsaXRlcmFsLCBvciBhbiBpZGVudGlmaWVyIik7Cisg
ICAgRkFJTCgiRXhwZWN0ZWQgb25lIG9mICcoJywgYSBsaXRlcmFsLCBvciBhbiBpZGVudGlmaWVy
Il9zKTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgTGV4ZXI+CkBAIC03MzQsNyArNzM0LDcgQEAg
RXhwZWN0ZWQ8VW5pcXVlUmVmPEFTVDo6RXhwcmVzc2lvbj4sIEVycm9yPiBQYXJzZXI8TGV4ZXI+
OjpwYXJzZUNvcmVMSFNFeHByZXNzaW8KICAgICAgICAgYnJlYWs7CiAgICAgfQogCi0gICAgRkFJ
TCgiVHJpZWQgdG8gcGFyc2UgdGhlIGxlZnQtaGFuZCBzaWRlIG9mIGFuIGFzc2lnbm1lbnQgYW5k
IGZhaWxlZCIpOworICAgIEZBSUwoIlRyaWVkIHRvIHBhcnNlIHRoZSBsZWZ0LWhhbmQgc2lkZSBv
ZiBhbiBhc3NpZ25tZW50IGFuZCBmYWlsZWQiX3MpOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBM
ZXhlcj4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJHUFUvV0dTTC9Ub2tlbi5jcHAgYi9Tb3VyY2Uv
V2ViR1BVL1dHU0wvVG9rZW4uY3BwCmluZGV4IGRiM2MwYTQzZTEwMzcyZWI5OTQxZmNmMTZkOGIy
MGVkZTdmMDg5MTIuLjY3MzFhYTIyYzEyYTMzMDM2OGNmYjFiNzYwYzk2NmVlMTBmMWFjMTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJHUFUvV0dTTC9Ub2tlbi5jcHAKKysrIGIvU291cmNlL1dlYkdQ
VS9XR1NML1Rva2VuLmNwcApAQCAtMzIsODkgKzMyLDg5IEBAIFN0cmluZyB0b1N0cmluZyhUb2tl
blR5cGUgdHlwZSkKIHsKICAgICBzd2l0Y2ggKHR5cGUpIHsKICAgICBjYXNlIFRva2VuVHlwZTo6
SW52YWxpZDoKLSAgICAgICAgcmV0dXJuICJJbnZhbGlkIjsKKyAgICAgICAgcmV0dXJuICJJbnZh
bGlkIl9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpFbmRPZkZpbGU6Ci0gICAgICAgIHJldHVybiAi
RU9GIjsKKyAgICAgICAgcmV0dXJuICJFT0YiX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6OkludGVn
ZXJMaXRlcmFsOgotICAgICAgICByZXR1cm4gIkludGVnZXJMaXRlcmFsIjsKKyAgICAgICAgcmV0
dXJuICJJbnRlZ2VyTGl0ZXJhbCJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6SW50ZWdlckxpdGVy
YWxTaWduZWQ6Ci0gICAgICAgIHJldHVybiAiSW50ZWdlckxpdGVyYWxTaWduZWQiOworICAgICAg
ICByZXR1cm4gIkludGVnZXJMaXRlcmFsU2lnbmVkIl9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpJ
bnRlZ2VyTGl0ZXJhbFVuc2lnbmVkOgotICAgICAgICByZXR1cm4gIkludGVnZXJMaXRlcmFsVW5z
aWduZWQiOworICAgICAgICByZXR1cm4gIkludGVnZXJMaXRlcmFsVW5zaWduZWQiX3M7CiAgICAg
Y2FzZSBUb2tlblR5cGU6OkRlY2ltYWxGbG9hdExpdGVyYWw6Ci0gICAgICAgIHJldHVybiAiRGVj
aW1hbEZsb2F0TGl0ZXJhbCI7CisgICAgICAgIHJldHVybiAiRGVjaW1hbEZsb2F0TGl0ZXJhbCJf
czsKICAgICBjYXNlIFRva2VuVHlwZTo6SGV4RmxvYXRMaXRlcmFsOgotICAgICAgICByZXR1cm4g
IkhleEZsb2F0TGl0ZXJhbCI7CisgICAgICAgIHJldHVybiAiSGV4RmxvYXRMaXRlcmFsIl9zOwog
ICAgIGNhc2UgVG9rZW5UeXBlOjpJZGVudGlmaWVyOgotICAgICAgICByZXR1cm4gIklkZW50aWZp
ZXIiOworICAgICAgICByZXR1cm4gIklkZW50aWZpZXIiX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6
OlJlc2VydmVkV29yZDoKLSAgICAgICAgcmV0dXJuICJSZXNlcnZlZFdvcmQiOworICAgICAgICBy
ZXR1cm4gIlJlc2VydmVkV29yZCJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6S2V5d29yZFN0cnVj
dDoKLSAgICAgICAgcmV0dXJuICJzdHJ1Y3QiOworICAgICAgICByZXR1cm4gInN0cnVjdCJfczsK
ICAgICBjYXNlIFRva2VuVHlwZTo6S2V5d29yZEZuOgotICAgICAgICByZXR1cm4gImZuIjsKKyAg
ICAgICAgcmV0dXJuICJmbiJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6S2V5d29yZEZ1bmN0aW9u
OgotICAgICAgICByZXR1cm4gImZ1bmN0aW9uIjsKKyAgICAgICAgcmV0dXJuICJmdW5jdGlvbiJf
czsKICAgICBjYXNlIFRva2VuVHlwZTo6S2V5d29yZFByaXZhdGU6Ci0gICAgICAgIHJldHVybiAi
cHJpdmF0ZSI7CisgICAgICAgIHJldHVybiAicHJpdmF0ZSJfczsKICAgICBjYXNlIFRva2VuVHlw
ZTo6S2V5d29yZFJlYWQ6Ci0gICAgICAgIHJldHVybiAicmVhZCI7CisgICAgICAgIHJldHVybiAi
cmVhZCJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6S2V5d29yZFJlYWRXcml0ZToKLSAgICAgICAg
cmV0dXJuICJyZWFkX3dyaXRlIjsKKyAgICAgICAgcmV0dXJuICJyZWFkX3dyaXRlIl9zOwogICAg
IGNhc2UgVG9rZW5UeXBlOjpLZXl3b3JkUmV0dXJuOgotICAgICAgICByZXR1cm4gInJldHVybiI7
CisgICAgICAgIHJldHVybiAicmV0dXJuIl9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpLZXl3b3Jk
U3RvcmFnZToKLSAgICAgICAgcmV0dXJuICJzdG9yYWdlIjsKKyAgICAgICAgcmV0dXJuICJzdG9y
YWdlIl9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpLZXl3b3JkVW5pZm9ybToKLSAgICAgICAgcmV0
dXJuICJ1bmlmb3JtIjsKKyAgICAgICAgcmV0dXJuICJ1bmlmb3JtIl9zOwogICAgIGNhc2UgVG9r
ZW5UeXBlOjpLZXl3b3JkVmFyOgotICAgICAgICByZXR1cm4gInZhciI7CisgICAgICAgIHJldHVy
biAidmFyIl9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpLZXl3b3JkV29ya2dyb3VwOgotICAgICAg
ICByZXR1cm4gIndvcmtncm91cCI7CisgICAgICAgIHJldHVybiAid29ya2dyb3VwIl9zOwogICAg
IGNhc2UgVG9rZW5UeXBlOjpLZXl3b3JkV3JpdGU6Ci0gICAgICAgIHJldHVybiAid3JpdGUiOwor
ICAgICAgICByZXR1cm4gIndyaXRlIl9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpLZXl3b3JkSTMy
OgotICAgICAgICByZXR1cm4gImkzMiI7CisgICAgICAgIHJldHVybiAiaTMyIl9zOwogICAgIGNh
c2UgVG9rZW5UeXBlOjpLZXl3b3JkVTMyOgotICAgICAgICByZXR1cm4gInUzMiI7CisgICAgICAg
IHJldHVybiAidTMyIl9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpLZXl3b3JkRjMyOgotICAgICAg
ICByZXR1cm4gImYzMiI7CisgICAgICAgIHJldHVybiAiZjMyIl9zOwogICAgIGNhc2UgVG9rZW5U
eXBlOjpLZXl3b3JkQm9vbDoKLSAgICAgICAgcmV0dXJuICJib29sIjsKKyAgICAgICAgcmV0dXJu
ICJib29sIl9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpMaXRlcmFsVHJ1ZToKLSAgICAgICAgcmV0
dXJuICJ0cnVlIjsKKyAgICAgICAgcmV0dXJuICJ0cnVlIl9zOwogICAgIGNhc2UgVG9rZW5UeXBl
OjpMaXRlcmFsRmFsc2U6Ci0gICAgICAgIHJldHVybiAiZmFsc2UiOworICAgICAgICByZXR1cm4g
ImZhbHNlIl9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpBcnJvdzoKLSAgICAgICAgcmV0dXJuICIt
PiI7CisgICAgICAgIHJldHVybiAiLT4iX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6OkF0dHJpYnV0
ZToKLSAgICAgICAgcmV0dXJuICJAIjsKKyAgICAgICAgcmV0dXJuICJAIl9zOwogICAgIGNhc2Ug
VG9rZW5UeXBlOjpCcmFja2V0TGVmdDoKLSAgICAgICAgcmV0dXJuICJbIjsKKyAgICAgICAgcmV0
dXJuICJbIl9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpCcmFja2V0UmlnaHQ6Ci0gICAgICAgIHJl
dHVybiAiXSI7CisgICAgICAgIHJldHVybiAiXSJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6QnJh
Y2VMZWZ0OgotICAgICAgICByZXR1cm4gInsiOworICAgICAgICByZXR1cm4gInsiX3M7CiAgICAg
Y2FzZSBUb2tlblR5cGU6OkJyYWNlUmlnaHQ6Ci0gICAgICAgIHJldHVybiAifSI7CisgICAgICAg
IHJldHVybiAifSJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6Q29sb246Ci0gICAgICAgIHJldHVy
biAiOiI7CisgICAgICAgIHJldHVybiAiOiJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6Q29tbWE6
Ci0gICAgICAgIHJldHVybiAiLCI7CisgICAgICAgIHJldHVybiAiLCJfczsKICAgICBjYXNlIFRv
a2VuVHlwZTo6RXF1YWw6Ci0gICAgICAgIHJldHVybiAiPSI7CisgICAgICAgIHJldHVybiAiPSJf
czsKICAgICBjYXNlIFRva2VuVHlwZTo6R1Q6Ci0gICAgICAgIHJldHVybiAiPiI7CisgICAgICAg
IHJldHVybiAiPiJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6TFQ6Ci0gICAgICAgIHJldHVybiAi
PCI7CisgICAgICAgIHJldHVybiAiPCJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6UGVyaW9kOgot
ICAgICAgICByZXR1cm4gIi4iOworICAgICAgICByZXR1cm4gIi4iX3M7CiAgICAgY2FzZSBUb2tl
blR5cGU6OlBhcmVuTGVmdDoKLSAgICAgICAgcmV0dXJuICIoIjsKKyAgICAgICAgcmV0dXJuICIo
Il9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpQYXJlblJpZ2h0OgotICAgICAgICByZXR1cm4gIiki
OworICAgICAgICByZXR1cm4gIikiX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6OlNlbWljb2xvbjoK
LSAgICAgICAgcmV0dXJuICI7IjsKKyAgICAgICAgcmV0dXJuICI7Il9zOwogICAgIH0KIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkdQVS9XZWJHUFUvQWRhcHRlci5tbSBiL1NvdXJjZS9XZWJH
UFUvV2ViR1BVL0FkYXB0ZXIubW0KaW5kZXggMWJiYWQ2MWE2Y2U3ZTI5NzU2ZGUxNTYxYWE0NjJk
ZTVkMWE2ODI2OC4uNjAwZDFkNmU3YmYwZjc3YmRkMmY1MThmZjk0MzUwNzgxMjUyZmEzOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkdQVS9XZWJHUFUvQWRhcHRlci5tbQorKysgYi9Tb3VyY2UvV2Vi
R1BVL1dlYkdQVS9BZGFwdGVyLm1tCkBAIC0xMjMsNyArMTIzLDcgQEAgdm9pZCBBZGFwdGVyOjpy
ZXF1ZXN0RGV2aWNlKGNvbnN0IFdHUFVEZXZpY2VEZXNjcmlwdG9yJiBkZXNjcmlwdG9yLCBDb21w
bGV0aW9uSGEKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGNhbGxiYWNrKFdHUFVSZXF1
ZXN0RGV2aWNlU3RhdHVzX1N1Y2Nlc3MsIERldmljZTo6Y3JlYXRlKG1fZGV2aWNlLCBkZXNjcmlw
dG9yLmxhYmVsLCBtX2luc3RhbmNlKSwgeyB9KTsKKyAgICBjYWxsYmFjayhXR1BVUmVxdWVzdERl
dmljZVN0YXR1c19TdWNjZXNzLCBEZXZpY2U6OmNyZWF0ZShtX2RldmljZSwgU3RyaW5nIHsgZGVz
Y3JpcHRvci5sYWJlbCB9LCBtX2luc3RhbmNlKSwgeyB9KTsKIH0KIAogfSAvLyBuYW1lc3BhY2Ug
V2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9CdWZmZXIubW0gYi9Tb3Vy
Y2UvV2ViR1BVL1dlYkdQVS9CdWZmZXIubW0KaW5kZXggZmJiMmY0NGRmOWU1MzZjZTVjZmVkZTEx
Zjc4NWRjOGNkYTFmYmRjNS4uM2I5MjIwMDMxOGRjNTE3ZDJhMGViNmVjMzk5ZWE1NTQxYzZhNTE2
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkdQVS9XZWJHUFUvQnVmZmVyLm1tCisrKyBiL1NvdXJj
ZS9XZWJHUFUvV2ViR1BVL0J1ZmZlci5tbQpAQCAtMjkxLDcgKzI5MSw3IEBAIHZvaWQgQnVmZmVy
OjptYXBBc3luYyhXR1BVTWFwTW9kZUZsYWdzIG1vZGUsIHNpemVfdCBvZmZzZXQsIHNpemVfdCBz
aXplLCBDb21wbGV0CiAgICAgLy8gIklmIGFueSBvZiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlIHVuc2F0aXNmaWVkOiIKICAgICBpZiAoIXZhbGlkYXRlTWFwQXN5bmMobW9kZSwgb2Zmc2V0
LCByYW5nZVNpemUpKSB7CiAgICAgICAgIC8vICJSZWNvcmQgYSB2YWxpZGF0aW9uIGVycm9yIG9u
IHRoZSBjdXJyZW50IHNjb3BlLiIKLSAgICAgICAgbV9kZXZpY2UtPmdlbmVyYXRlQVZhbGlkYXRp
b25FcnJvcigiVmFsaWRhdGlvbiBmYWlsdXJlLiIpOworICAgICAgICBtX2RldmljZS0+Z2VuZXJh
dGVBVmFsaWRhdGlvbkVycm9yKCJWYWxpZGF0aW9uIGZhaWx1cmUuIl9zKTsKIAogICAgICAgICAv
LyAiUmV0dXJuIGEgcHJvbWlzZSByZWplY3RlZCB3aXRoIGFuIE9wZXJhdGlvbkVycm9yIG9uIHRo
ZSBEZXZpY2UgdGltZWxpbmUuIgogICAgICAgICBjYWxsYmFjayhXR1BVQnVmZmVyTWFwQXN5bmNT
dGF0dXNfRXJyb3IpOwpAQCAtMzY1LDcgKzM2NSw3IEBAIHZvaWQgQnVmZmVyOjp1bm1hcCgpCiAg
ICAgLy8gIklmIGFueSBvZiB0aGUgZm9sbG93aW5nIHJlcXVpcmVtZW50cyBhcmUgdW5tZXQiCiAg
ICAgaWYgKCF2YWxpZGF0ZVVubWFwKCkpIHsKICAgICAgICAgLy8gImdlbmVyYXRlIGEgdmFsaWRh
dGlvbiBlcnJvciBhbmQgc3RvcC4iCi0gICAgICAgIG1fZGV2aWNlLT5nZW5lcmF0ZUFWYWxpZGF0
aW9uRXJyb3IoIlZhbGlkYXRpb24gZmFpbHVyZS4iKTsKKyAgICAgICAgbV9kZXZpY2UtPmdlbmVy
YXRlQVZhbGlkYXRpb25FcnJvcigiVmFsaWRhdGlvbiBmYWlsdXJlLiJfcyk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL0NvbW1hbmRF
bmNvZGVyLm1tIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvQ29tbWFuZEVuY29kZXIubW0KaW5kZXgg
YWU0YmFjNjA4NWI0YzVmMmVlNGNkOWM3YzNhM2UwYjAzZDc2ZDc5Mi4uOTY5OGM4YTA5OWZmZDZj
MDkzNzg0Mzk0YTgxMmMxODJmMGViN2Q1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkdQVS9XZWJH
UFUvQ29tbWFuZEVuY29kZXIubW0KKysrIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvQ29tbWFuZEVu
Y29kZXIubW0KQEAgLTE0OSw3ICsxNDksNyBAQCB2b2lkIENvbW1hbmRFbmNvZGVyOjpjb3B5QnVm
ZmVyVG9CdWZmZXIoY29uc3QgQnVmZmVyJiBzb3VyY2UsIHVpbnQ2NF90IHNvdXJjZU9mZgogICAg
IC8vICJJZiBhbnkgb2YgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSB1bnNhdGlzZmllZAog
ICAgIGlmICghdmFsaWRhdGVDb3B5QnVmZmVyVG9CdWZmZXIoc291cmNlLCBzb3VyY2VPZmZzZXQs
IGRlc3RpbmF0aW9uLCBkZXN0aW5hdGlvbk9mZnNldCwgc2l6ZSkpIHsKICAgICAgICAgLy8gImdl
bmVyYXRlIGEgdmFsaWRhdGlvbiBlcnJvciBhbmQgc3RvcC4iCi0gICAgICAgIG1fZGV2aWNlLT5n
ZW5lcmF0ZUFWYWxpZGF0aW9uRXJyb3IoIlZhbGlkYXRpb24gZmFpbHVyZS4iKTsKKyAgICAgICAg
bV9kZXZpY2UtPmdlbmVyYXRlQVZhbGlkYXRpb25FcnJvcigiVmFsaWRhdGlvbiBmYWlsdXJlLiJf
cyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTIyMCw3ICsyMjAsNyBAQCB2b2lkIENv
bW1hbmRFbmNvZGVyOjpjbGVhckJ1ZmZlcihjb25zdCBCdWZmZXImIGJ1ZmZlciwgdWludDY0X3Qg
b2Zmc2V0LCB1aW50NjRfdAogICAgIC8vICJJZiBhbnkgb2YgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZSB1bnNhdGlzZmllZCIKICAgICBpZiAoIXZhbGlkYXRlQ2xlYXJCdWZmZXIoYnVmZmVy
LCBvZmZzZXQsIHNpemUpKSB7CiAgICAgICAgIC8vICJnZW5lcmF0ZSBhIHZhbGlkYXRpb24gZXJy
b3IgYW5kIHN0b3AuIgotICAgICAgICBtX2RldmljZS0+Z2VuZXJhdGVBVmFsaWRhdGlvbkVycm9y
KCJWYWxpZGF0aW9uIGZhaWx1cmUuIik7CisgICAgICAgIG1fZGV2aWNlLT5nZW5lcmF0ZUFWYWxp
ZGF0aW9uRXJyb3IoIlZhbGlkYXRpb24gZmFpbHVyZS4iX3MpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQogCkBAIC0yNjIsNyArMjYyLDcgQEAgUmVmUHRyPENvbW1hbmRCdWZmZXI+IENvbW1hbmRF
bmNvZGVyOjpmaW5pc2goY29uc3QgV0dQVUNvbW1hbmRCdWZmZXJEZXNjcmlwdG9yJgogICAgIC8v
ICJJZiB2YWxpZGF0aW9uU3VjY2VlZGVkIGlzIGZhbHNlLCB0aGVuOiIKICAgICBpZiAodmFsaWRh
dGlvbkZhaWxlZCkgewogICAgICAgICAvLyAiR2VuZXJhdGUgYSB2YWxpZGF0aW9uIGVycm9yLiIK
LSAgICAgICAgbV9kZXZpY2UtPmdlbmVyYXRlQVZhbGlkYXRpb25FcnJvcigiVmFsaWRhdGlvbiBm
YWlsdXJlLiIpOworICAgICAgICBtX2RldmljZS0+Z2VuZXJhdGVBVmFsaWRhdGlvbkVycm9yKCJW
YWxpZGF0aW9uIGZhaWx1cmUuIl9zKTsKIAogICAgICAgICAvLyBGSVhNRTogIlJldHVybiBhIG5l
dyBpbnZhbGlkIEdQVUNvbW1hbmRCdWZmZXIuIgogICAgICAgICByZXR1cm4gbnVsbHB0cjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL0NvbXB1dGVQaXBlbGluZS5tbSBiL1NvdXJj
ZS9XZWJHUFUvV2ViR1BVL0NvbXB1dGVQaXBlbGluZS5tbQppbmRleCBlZDliOGNmZjY0MTQzMDEy
ZTc3YjNlMjFmYzVlOWNhYjA3NTkzNjRjLi5lNGFkNzdhZjk3YTNjMTM4OTIxYjQ3ZDAyNjU5OGI4
YmM3NmRhNGEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9Db21wdXRlUGlwZWxp
bmUubW0KKysrIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvQ29tcHV0ZVBpcGVsaW5lLm1tCkBAIC03
MSw3ICs3MSw3IEBAIHN0YXRpYyBNVExGdW5jdGlvbkNvbnN0YW50VmFsdWVzICpjcmVhdGVDb25z
dGFudFZhbHVlcyh1aW50MzJfdCBjb25zdGFudENvdW50LCBjCiAgICAgYXV0byBjb25zdGFudFZh
bHVlcyA9IFtNVExGdW5jdGlvbkNvbnN0YW50VmFsdWVzIG5ld107CiAgICAgZm9yICh1aW50MzJf
dCBpID0gMDsgaSA8IGNvbnN0YW50Q291bnQ7ICsraSkgewogICAgICAgICBjb25zdCBhdXRvJiBl
bnRyeSA9IGNvbnN0YW50c1tpXTsKLSAgICAgICAgYXV0byBuYW1lSXRlcmF0b3IgPSBlbnRyeVBv
aW50SW5mb3JtYXRpb24uc3BlY2lhbGl6YXRpb25Db25zdGFudEluZGljZXMuZmluZChlbnRyeS5r
ZXkpOworICAgICAgICBhdXRvIG5hbWVJdGVyYXRvciA9IGVudHJ5UG9pbnRJbmZvcm1hdGlvbi5z
cGVjaWFsaXphdGlvbkNvbnN0YW50SW5kaWNlcy5maW5kKFN0cmluZyB7IGVudHJ5LmtleSB9KTsK
ICAgICAgICAgaWYgKG5hbWVJdGVyYXRvciA9PSBlbnRyeVBvaW50SW5mb3JtYXRpb24uc3BlY2lh
bGl6YXRpb25Db25zdGFudEluZGljZXMuZW5kKCkpCiAgICAgICAgICAgICByZXR1cm4gbnVsbHB0
cjsKICAgICAgICAgYXV0byBzcGVjaWFsaXphdGlvbkNvbnN0YW50SW5kZXggPSBuYW1lSXRlcmF0
b3ItPnZhbHVlOwpAQCAtMTUwLDcgKzE1MCw3IEBAIFJlZlB0cjxDb21wdXRlUGlwZWxpbmU+IERl
dmljZTo6Y3JlYXRlQ29tcHV0ZVBpcGVsaW5lKGNvbnN0IFdHUFVDb21wdXRlUGlwZWxpbmVECiAg
ICAgY29uc3QgUGlwZWxpbmVMYXlvdXQmIHBpcGVsaW5lTGF5b3V0ID0gV2ViR1BVOjpmcm9tQVBJ
KGRlc2NyaXB0b3IubGF5b3V0KTsKICAgICBhdXRvIGxhYmVsID0gZnJvbUFQSShkZXNjcmlwdG9y
LmxhYmVsKTsKIAotICAgIGF1dG8gbGlicmFyeUNyZWF0aW9uUmVzdWx0ID0gY3JlYXRlTGlicmFy
eShtX2RldmljZSwgc2hhZGVyTW9kdWxlLCBwaXBlbGluZUxheW91dCwgZGVzY3JpcHRvci5jb21w
dXRlLmVudHJ5UG9pbnQsIGxhYmVsKTsKKyAgICBhdXRvIGxpYnJhcnlDcmVhdGlvblJlc3VsdCA9
IGNyZWF0ZUxpYnJhcnkobV9kZXZpY2UsIHNoYWRlck1vZHVsZSwgcGlwZWxpbmVMYXlvdXQsIFN0
cmluZyB7IGRlc2NyaXB0b3IuY29tcHV0ZS5lbnRyeVBvaW50IH0sIGxhYmVsKTsKICAgICBpZiAo
IWxpYnJhcnlDcmVhdGlvblJlc3VsdCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1F1ZXVlLm1tIGIvU291cmNlL1dlYkdQVS9XZWJH
UFUvUXVldWUubW0KaW5kZXggYjdiZDU3Y2Y1YTQyNmVjMjZlNmY5YjFlMjlkOTlmZGVhZGY3MDVj
NC4uMGQxYjM5YTg0ZjY0MjM1NzlhOWVjMDNiNWFhMjQxYmRlNjMxZDY2MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkdQVS9XZWJHUFUvUXVldWUubW0KKysrIGIvU291cmNlL1dlYkdQVS9XZWJHUFUv
UXVldWUubW0KQEAgLTEzMSw3ICsxMzEsNyBAQCB2b2lkIFF1ZXVlOjpzdWJtaXQoVmVjdG9yPHN0
ZDo6cmVmZXJlbmNlX3dyYXBwZXI8Y29uc3QgQ29tbWFuZEJ1ZmZlcj4+JiYgY29tbWFuZAogICAg
IC8vICJJZiBhbnkgb2YgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSB1bnNhdGlzZmllZCIK
ICAgICBpZiAoIXZhbGlkYXRlU3VibWl0KCkpIHsKICAgICAgICAgLy8gImdlbmVyYXRlIGEgdmFs
aWRhdGlvbiBlcnJvciBhbmQgc3RvcC4iCi0gICAgICAgIG1fZGV2aWNlLmdlbmVyYXRlQVZhbGlk
YXRpb25FcnJvcigiVmFsaWRhdGlvbiBmYWlsdXJlLiIpOworICAgICAgICBtX2RldmljZS5nZW5l
cmF0ZUFWYWxpZGF0aW9uRXJyb3IoIlZhbGlkYXRpb24gZmFpbHVyZS4iX3MpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9TYW1wbGVy
Lm1tIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvU2FtcGxlci5tbQppbmRleCAyZjdmNzI3ZjE3ZDk3
M2QwYTQ5Y2UzNGVlZmFjNzEzODU3MzM3NmI2Li44MjczOTA0OTk0Y2I3MDlmMDk0ZTI0NTg3OTlh
Y2VjNjc3NTg5YjcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9TYW1wbGVyLm1t
CisrKyBiL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1NhbXBsZXIubW0KQEAgLTEzNiw3ICsxMzYsNyBA
QCBSZWZQdHI8U2FtcGxlcj4gRGV2aWNlOjpjcmVhdGVTYW1wbGVyKGNvbnN0IFdHUFVTYW1wbGVy
RGVzY3JpcHRvciYgZGVzY3JpcHRvcikKICAgICAvLyAiSWYgdmFsaWRhdGluZyBHUFVTYW1wbGVy
RGVzY3JpcHRvcih0aGlzLCBkZXNjcmlwdG9yKSByZXR1cm5zIGZhbHNlOiIKICAgICBpZiAoIXZh
bGlkYXRlQ3JlYXRlU2FtcGxlcigqdGhpcywgZGVzY3JpcHRvcikpIHsKICAgICAgICAgLy8gIkdl
bmVyYXRlIGEgdmFsaWRhdGlvbiBlcnJvci4iCi0gICAgICAgIGdlbmVyYXRlQVZhbGlkYXRpb25F
cnJvcigiVmFsaWRhdGlvbiBmYWlsdXJlLiIpOworICAgICAgICBnZW5lcmF0ZUFWYWxpZGF0aW9u
RXJyb3IoIlZhbGlkYXRpb24gZmFpbHVyZS4iX3MpOwogCiAgICAgICAgIC8vICJDcmVhdGUgYSBu
ZXcgaW52YWxpZCBHUFVTYW1wbGVyIGFuZCByZXR1cm4gdGhlIHJlc3VsdC4iCiAgICAgICAgIHJl
dHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkdQVS9XZWJHUFUvU2hhZGVyTW9k
dWxlLm1tIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvU2hhZGVyTW9kdWxlLm1tCmluZGV4IGUwMDc1
NWNmYjU1YjRjNjZhODkyN2RkM2U1ZTAyZWE5MTAxNzBjNDQuLjYwNWUzNzIzMzYxMDVhZTA4NzEz
N2RiNjE2NDY5ODExMmJjZmY4N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1No
YWRlck1vZHVsZS5tbQorKysgYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9TaGFkZXJNb2R1bGUubW0K
QEAgLTg4LDkgKzg4LDEwIEBAIHN0YXRpYyBSZWZQdHI8U2hhZGVyTW9kdWxlPiBlYXJseUNvbXBp
bGVTaGFkZXJNb2R1bGUoaWQ8TVRMRGV2aWNlPiBkZXZpY2UsIHN0ZDo6CiAgICAgICAgIGNvbnN0
IGF1dG8mIGhpbnQgPSBzdXBwbGllZEhpbnRzLmhpbnRzW2ldOwogICAgICAgICBpZiAoaGludC5u
ZXh0SW5DaGFpbikKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgICAgICBoaW50cy5h
ZGQoaGludC5rZXksIFdlYkdQVTo6ZnJvbUFQSShoaW50LmhpbnQubGF5b3V0KSk7CisgICAgICAg
IFN0cmluZyBoaW50S2V5IHsgaGludC5rZXkgfTsKKyAgICAgICAgaGludHMuYWRkKGhpbnRLZXks
IFdlYkdQVTo6ZnJvbUFQSShoaW50LmhpbnQubGF5b3V0KSk7CiAgICAgICAgIGF1dG8gY29udmVy
dGVkUGlwZWxpbmVMYXlvdXQgPSBTaGFkZXJNb2R1bGU6OmNvbnZlcnRQaXBlbGluZUxheW91dChX
ZWJHUFU6OmZyb21BUEkoaGludC5oaW50LmxheW91dCkpOwotICAgICAgICB3Z3NsSGludHMuYWRk
KGhpbnQua2V5LCBXVEZNb3ZlKGNvbnZlcnRlZFBpcGVsaW5lTGF5b3V0KSk7CisgICAgICAgIHdn
c2xIaW50cy5hZGQoaGludEtleSwgV1RGTW92ZShjb252ZXJ0ZWRQaXBlbGluZUxheW91dCkpOwog
ICAgIH0KICAgICBhdXRvIHByZXBhcmVSZXN1bHQgPSBXR1NMOjpwcmVwYXJlKHN0ZDo6Z2V0PFdH
U0w6OlN1Y2Nlc3NmdWxDaGVjaz4oY2hlY2tSZXN1bHQpLmFzdCwgd2dzbEhpbnRzKTsKICAgICBh
dXRvIGxpYnJhcnkgPSBTaGFkZXJNb2R1bGU6OmNyZWF0ZUxpYnJhcnkoZGV2aWNlLCBwcmVwYXJl
UmVzdWx0Lm1zbCwgV1RGTW92ZShsYWJlbCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9XZWJWaWV3SW1wbC5tbQppbmRleCBmZDc0ZmVhYjFkMWUxMmZiMDYxMmEwODU1ZGU2OGZj
NzY0MWIxMTNkLi4wMDc0ZGNhNzcyN2E5Njg3NGZiMWVkMzg0N2Y1MTllMTYwNGE1M2Y3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQpAQCAtNDQ3OCw3
ICs0NDc4LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6c2V0UHJvbWlzZWREYXRhRm9ySW1hZ2UoV2Vi
Q29yZTo6SW1hZ2UqIGltYWdlLCBOU1N0cmluZyAqZmlsZW4KIAogICAgIFJldGFpblB0cjxOU0Rh
dGE+IGN1c3RvbURhdGFCdWZmZXI7CiAgICAgaWYgKG9yaWdpbklkZW50aWZpZXIubGVuZ3RoKSB7
Ci0gICAgICAgIFt0eXBlcyBhZGRPYmplY3Q6QChXZWJDb3JlOjpQYXN0ZWJvYXJkQ3VzdG9tRGF0
YTo6Y29jb2FUeXBlKCkpXTsKKyAgICAgICAgW3R5cGVzIGFkZE9iamVjdDpAKFdlYkNvcmU6OlBh
c3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKS5jaGFyYWN0ZXJzKCkpXTsKICAgICAgICAg
V2ViQ29yZTo6UGFzdGVib2FyZEN1c3RvbURhdGEgY3VzdG9tRGF0YTsKICAgICAgICAgY3VzdG9t
RGF0YS5zZXRPcmlnaW4ob3JpZ2luSWRlbnRpZmllcik7CiAgICAgICAgIGN1c3RvbURhdGFCdWZm
ZXIgPSBjdXN0b21EYXRhLmNyZWF0ZVNoYXJlZEJ1ZmZlcigpLT5jcmVhdGVOU0RhdGEoKTsKQEAg
LTQ0OTcsNyArNDQ5Nyw3IEBAIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAg
IH0KIAogICAgIGlmIChjdXN0b21EYXRhQnVmZmVyKQotICAgICAgICBbcGFzdGVib2FyZCBzZXRE
YXRhOmN1c3RvbURhdGFCdWZmZXIuZ2V0KCkgZm9yVHlwZTpAKFdlYkNvcmU6OlBhc3RlYm9hcmRD
dXN0b21EYXRhOjpjb2NvYVR5cGUoKSldOworICAgICAgICBbcGFzdGVib2FyZCBzZXREYXRhOmN1
c3RvbURhdGFCdWZmZXIuZ2V0KCkgZm9yVHlwZTpAKFdlYkNvcmU6OlBhc3RlYm9hcmRDdXN0b21E
YXRhOjpjb2NvYVR5cGUoKS5jaGFyYWN0ZXJzKCkpXTsKIAogICAgIG1fcHJvbWlzZWRJbWFnZSA9
IGltYWdlOwogfQpAQCAtNDYyNCw3ICs0NjI0LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6cmVxdWVz
dERPTVBhc3RlQWNjZXNzKFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzQ2F0ZWdvcnkgcGFzdGVBY2MK
ICAgICBBU1NFUlQoIW1fZG9tUGFzdGVSZXF1ZXN0SGFuZGxlcik7CiAgICAgaGlkZURPTVBhc3Rl
TWVudVdpdGhSZXN1bHQoV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZTo6RGVuaWVkRm9y
R2VzdHVyZSk7CiAKLSAgICBOU0RhdGEgKmRhdGEgPSBbcGFzdGVib2FyZEZvckFjY2Vzc0NhdGVn
b3J5KHBhc3RlQWNjZXNzQ2F0ZWdvcnkpIGRhdGFGb3JUeXBlOkAoV2ViQ29yZTo6UGFzdGVib2Fy
ZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpKV07CisgICAgTlNEYXRhICpkYXRhID0gW3Bhc3RlYm9h
cmRGb3JBY2Nlc3NDYXRlZ29yeShwYXN0ZUFjY2Vzc0NhdGVnb3J5KSBkYXRhRm9yVHlwZTpAKFdl
YkNvcmU6OlBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKS5jaGFyYWN0ZXJzKCkpXTsK
ICAgICBhdXRvIGJ1ZmZlciA9IFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGRhdGEpOwog
ICAgIGlmIChXZWJDb3JlOjpQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6ZnJvbVNoYXJlZEJ1ZmZlcihi
dWZmZXIuZ2V0KCkpLm9yaWdpbigpID09IG9yaWdpbklkZW50aWZpZXIpIHsKICAgICAgICAgbV9w
YWdlLT5ncmFudEFjY2Vzc1RvQ3VycmVudFBhc3RlYm9hcmREYXRhKHBhc3RlYm9hcmROYW1lRm9y
QWNjZXNzQ2F0ZWdvcnkocGFzdGVBY2Nlc3NDYXRlZ29yeSkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvTG9jYWxBdXRoZW50aWNh
dG9yLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2Ev
TG9jYWxBdXRoZW50aWNhdG9yLm1tCmluZGV4IGJlZTZiOTIzODJjYWFmM2I0ZjlmMGU3Y2U4MmMw
MWE3NjczMzI4MmMuLjJhMDVjZjQwM2RlZmMzYjQ1MDQ4OTE4YTdlNDRkMDkwMzliODRmMDQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29h
L0xvY2FsQXV0aGVudGljYXRvci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJB
dXRoZW50aWNhdGlvbi9Db2NvYS9Mb2NhbEF1dGhlbnRpY2F0b3IubW0KQEAgLTQ0NCw3ICs0NDQs
NyBAQCB2b2lkIExvY2FsQXV0aGVudGljYXRvcjo6Y29udGludWVNYWtlQ3JlZGVudGlhbEFmdGVy
VXNlclZlcmlmaWNhdGlvbihTZWNBY2Nlc3NDbwogICAgICAgICBkZWxldGVEdXBsaWNhdGVDcmVk
ZW50aWFsKCk7CiAKICAgICAgICAgYXV0byBhdXRoRGF0YSA9IGJ1aWxkQXV0aERhdGEoY3JlYXRp
b25PcHRpb25zLnJwLmlkLCBmbGFncywgY291bnRlciwgYnVpbGRBdHRlc3RlZENyZWRlbnRpYWxE
YXRhKFZlY3Rvcjx1aW50OF90PihhYWd1aWRMZW5ndGgsIDApLCBjcmVkZW50aWFsSWQsIGNvc2VQ
dWJsaWNLZXkpKTsKLSAgICAgICAgYXV0byBhdHRlc3RhdGlvbk9iamVjdCA9IGJ1aWxkQXR0ZXN0
YXRpb25PYmplY3QoV1RGTW92ZShhdXRoRGF0YSksICIiLCB7IH0sIEF0dGVzdGF0aW9uQ29udmV5
YW5jZVByZWZlcmVuY2U6Ok5vbmUpOworICAgICAgICBhdXRvIGF0dGVzdGF0aW9uT2JqZWN0ID0g
YnVpbGRBdHRlc3RhdGlvbk9iamVjdChXVEZNb3ZlKGF1dGhEYXRhKSwgU3RyaW5nIHsgZW1wdHlT
dHJpbmcoKSB9LCB7IH0sIEF0dGVzdGF0aW9uQ29udmV5YW5jZVByZWZlcmVuY2U6Ok5vbmUpOwog
ICAgICAgICByZWNlaXZlUmVzcG9uZChBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZTo6
Y3JlYXRlKGNyZWRlbnRpYWxJZCwgYXR0ZXN0YXRpb25PYmplY3QsIEF1dGhlbnRpY2F0b3JBdHRh
Y2htZW50OjpQbGF0Zm9ybSkpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtNDcxLDcgKzQ3
MSw3IEBAIHZvaWQgTG9jYWxBdXRoZW50aWNhdG9yOjpjb250aW51ZU1ha2VDcmVkZW50aWFsQWZ0
ZXJBdHRlc3RlZChWZWN0b3I8dWludDhfdD4mJiBjCiAKICAgICBpZiAoZXJyb3IpIHsKICAgICAg
ICAgTE9HX0VSUk9SKCJDb3VsZG4ndCBhdHRlc3Q6ICVzIiwgU3RyaW5nKGVycm9yLmxvY2FsaXpl
ZERlc2NyaXB0aW9uKS51dGY4KCkuZGF0YSgpKTsKLSAgICAgICAgYXV0byBhdHRlc3RhdGlvbk9i
amVjdCA9IGJ1aWxkQXR0ZXN0YXRpb25PYmplY3QoV1RGTW92ZShhdXRoRGF0YSksICIiLCB7IH0s
IEF0dGVzdGF0aW9uQ29udmV5YW5jZVByZWZlcmVuY2U6Ok5vbmUpOworICAgICAgICBhdXRvIGF0
dGVzdGF0aW9uT2JqZWN0ID0gYnVpbGRBdHRlc3RhdGlvbk9iamVjdChXVEZNb3ZlKGF1dGhEYXRh
KSwgU3RyaW5nIHsgZW1wdHlTdHJpbmcoKSB9LCB7IH0sIEF0dGVzdGF0aW9uQ29udmV5YW5jZVBy
ZWZlcmVuY2U6Ok5vbmUpOwogICAgICAgICByZWNlaXZlUmVzcG9uZChBdXRoZW50aWNhdG9yQXR0
ZXN0YXRpb25SZXNwb25zZTo6Y3JlYXRlKGNyZWRlbnRpYWxJZCwgYXR0ZXN0YXRpb25PYmplY3Qs
IEF1dGhlbnRpY2F0b3JBdHRhY2htZW50OjpQbGF0Zm9ybSkpOwogICAgICAgICByZXR1cm47CiAg
ICAgfQpAQCAtNDg4LDcgKzQ4OCw3IEBAIHZvaWQgTG9jYWxBdXRoZW50aWNhdG9yOjpjb250aW51
ZU1ha2VDcmVkZW50aWFsQWZ0ZXJBdHRlc3RlZChWZWN0b3I8dWludDhfdD4mJiBjCiAgICAgICAg
ICAgICBjYm9yQXJyYXkuYXBwZW5kKGNib3I6OkNCT1JWYWx1ZSh2ZWN0b3JGcm9tTlNEYXRhKChO
U0RhdGEgKilhZG9wdENGKFNlY0NlcnRpZmljYXRlQ29weURhdGEoKF9fYnJpZGdlIFNlY0NlcnRp
ZmljYXRlUmVmKWNlcnRpZmljYXRlc1tpXSkpLmdldCgpKSkpOwogICAgICAgICBhdHRlc3RhdGlv
blN0YXRlbWVudE1hcFtjYm9yOjpDQk9SVmFsdWUoIng1YyIpXSA9IGNib3I6OkNCT1JWYWx1ZShX
VEZNb3ZlKGNib3JBcnJheSkpOwogICAgIH0KLSAgICBhdXRvIGF0dGVzdGF0aW9uT2JqZWN0ID0g
YnVpbGRBdHRlc3RhdGlvbk9iamVjdChXVEZNb3ZlKGF1dGhEYXRhKSwgImFwcGxlIiwgV1RGTW92
ZShhdHRlc3RhdGlvblN0YXRlbWVudE1hcCksIGNyZWF0aW9uT3B0aW9ucy5hdHRlc3RhdGlvbik7
CisgICAgYXV0byBhdHRlc3RhdGlvbk9iamVjdCA9IGJ1aWxkQXR0ZXN0YXRpb25PYmplY3QoV1RG
TW92ZShhdXRoRGF0YSksICJhcHBsZSJfcywgV1RGTW92ZShhdHRlc3RhdGlvblN0YXRlbWVudE1h
cCksIGNyZWF0aW9uT3B0aW9ucy5hdHRlc3RhdGlvbik7CiAKICAgICBkZWxldGVEdXBsaWNhdGVD
cmVkZW50aWFsKCk7CiAgICAgcmVjZWl2ZVJlc3BvbmQoQXV0aGVudGljYXRvckF0dGVzdGF0aW9u
UmVzcG9uc2U6OmNyZWF0ZShjcmVkZW50aWFsSWQsIGF0dGVzdGF0aW9uT2JqZWN0LCBBdXRoZW50
aWNhdG9yQXR0YWNobWVudDo6UGxhdGZvcm0pKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4IGViN2M2OTFm
OWM5OTBmODQ3NWYwOTAyNzRkOWI2ZWUyMDFjMzkwYjAuLjllOGJmNDViYWI1MTNhNTEyMTA0OWQw
NTMxMTIyZTQ1NjNmMGE2ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtMzk4MCw3ICszOTgwLDcgQEAg
LSAoQk9PTCljYW5QZXJmb3JtQWN0aW9uRm9yV2ViVmlldzooU0VMKWFjdGlvbiB3aXRoU2VuZGVy
OihpZClzZW5kZXIKICAgICAgICAgaWYgKGZvY3VzZWREb2N1bWVudE9yaWdpbi5pc0VtcHR5KCkp
CiAgICAgICAgICAgICByZXR1cm4gTk87CiAKLSAgICAgICAgTlNBcnJheSAqYWxsQ3VzdG9tUGFz
dGVib2FyZERhdGEgPSBbcGFzdGVib2FyZCBkYXRhRm9yUGFzdGVib2FyZFR5cGU6QChXZWJDb3Jl
OjpQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkpIGluSXRlbVNldDppbmRpY2VzXTsK
KyAgICAgICAgTlNBcnJheSAqYWxsQ3VzdG9tUGFzdGVib2FyZERhdGEgPSBbcGFzdGVib2FyZCBk
YXRhRm9yUGFzdGVib2FyZFR5cGU6QChXZWJDb3JlOjpQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29j
b2FUeXBlKCkuY2hhcmFjdGVycygpKSBpbkl0ZW1TZXQ6aW5kaWNlc107CiAgICAgICAgIGZvciAo
TlNEYXRhICpkYXRhIGluIGFsbEN1c3RvbVBhc3RlYm9hcmREYXRhKSB7CiAgICAgICAgICAgICBh
dXRvIGJ1ZmZlciA9IFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGRhdGEpOwogICAgICAg
ICAgICAgaWYgKFdlYkNvcmU6OlBhc3RlYm9hcmRDdXN0b21EYXRhOjpmcm9tU2hhcmVkQnVmZmVy
KGJ1ZmZlci5nZXQoKSkub3JpZ2luKCkgPT0gZm9jdXNlZERvY3VtZW50T3JpZ2luKQpAQCAtNjk0
NSw3ICs2OTQ1LDcgQEAgc3RhdGljIEJPT0wgYWxsUGFzdGVib2FyZEl0ZW1PcmlnaW5zTWF0Y2hP
cmlnaW4oVUlQYXN0ZWJvYXJkICpwYXN0ZWJvYXJkLCBjb25zdAogICAgICAgICByZXR1cm4gTk87
CiAKICAgICBhdXRvICppbmRpY2VzID0gW05TSW5kZXhTZXQgaW5kZXhTZXRXaXRoSW5kZXhlc0lu
UmFuZ2U6TlNNYWtlUmFuZ2UoMCwgW3Bhc3RlYm9hcmQgbnVtYmVyT2ZJdGVtc10pXTsKLSAgICBh
dXRvICphbGxDdXN0b21EYXRhID0gW3Bhc3RlYm9hcmQgZGF0YUZvclBhc3RlYm9hcmRUeXBlOkAo
V2ViQ29yZTo6UGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpKSBpbkl0ZW1TZXQ6aW5k
aWNlc107CisgICAgYXV0byAqYWxsQ3VzdG9tRGF0YSA9IFtwYXN0ZWJvYXJkIGRhdGFGb3JQYXN0
ZWJvYXJkVHlwZTpAKFdlYkNvcmU6OlBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKS5j
aGFyYWN0ZXJzKCkpIGluSXRlbVNldDppbmRpY2VzXTsKICAgICBpZiAoIWFsbEN1c3RvbURhdGEu
Y291bnQpCiAgICAgICAgIHJldHVybiBOTzsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvTWlzYy9XZWJOU1Bhc3RlYm9hcmRFeHRyYXMubW0gYi9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9NaXNjL1dlYk5TUGFzdGVib2FyZEV4dHJhcy5tbQppbmRleCBlNWI0NDRiZmE1YzI4
NzI4Mzg3YzcyMzMyODI5MWE4MjAzZDFiMjU0Li4zZTUyZjFiYmFjZGI1MWI4ZWE1NDc3YzZiMGQ5
OWI5NWNiYWQwYmMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dl
Yk5TUGFzdGVib2FyZEV4dHJhcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9NaXNj
L1dlYk5TUGFzdGVib2FyZEV4dHJhcy5tbQpAQCAtMjc2LDcgKzI3Niw3IEBAIC0gKGlkKV93ZWJf
ZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlRm9yRWxlbWVudDooRE9NRWxlbWVudCAqKWVsZW1lbnQK
ICAgICBOU1N0cmluZyAqb3JpZ2luSWRlbnRpZmllciA9IGNvcmUoZWxlbWVudCktPmRvY3VtZW50
KCkub3JpZ2luSWRlbnRpZmllckZvclBhc3RlYm9hcmQoKTsKICAgICBSZXRhaW5QdHI8TlNEYXRh
PiBjdXN0b21EYXRhQnVmZmVyOwogICAgIGlmIChvcmlnaW5JZGVudGlmaWVyLmxlbmd0aCkgewot
ICAgICAgICBbdHlwZXMgYWRkT2JqZWN0OkAoUGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlw
ZSgpKV07CisgICAgICAgIFt0eXBlcyBhZGRPYmplY3Q6QChQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6
Y29jb2FUeXBlKCkuY2hhcmFjdGVycygpKV07CiAgICAgICAgIFBhc3RlYm9hcmRDdXN0b21EYXRh
IGN1c3RvbURhdGE7CiAgICAgICAgIGN1c3RvbURhdGEuc2V0T3JpZ2luKG9yaWdpbklkZW50aWZp
ZXIpOwogICAgICAgICBjdXN0b21EYXRhQnVmZmVyID0gY3VzdG9tRGF0YS5jcmVhdGVTaGFyZWRC
dWZmZXIoKS0+Y3JlYXRlTlNEYXRhKCk7CkBAIC0zMDUsNyArMzA1LDcgQEAgLSAoaWQpX3dlYl9k
ZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2VGb3JFbGVtZW50OihET01FbGVtZW50ICopZWxlbWVudAog
CiAgICAgW3NlbGYgX3dlYl93cml0ZUltYWdlOm5pbCBlbGVtZW50OmVsZW1lbnQgVVJMOlVSTCB0
aXRsZTp0aXRsZSBhcmNoaXZlOmFyY2hpdmUgdHlwZXM6dHlwZXMuZ2V0KCkgc291cmNlOnNvdXJj
ZV07CiAgICAgaWYgKGN1c3RvbURhdGFCdWZmZXIpCi0gICAgICAgIFtzZWxmIHNldERhdGE6Y3Vz
dG9tRGF0YUJ1ZmZlci5nZXQoKSBmb3JUeXBlOkAoUGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29h
VHlwZSgpKV07CisgICAgICAgIFtzZWxmIHNldERhdGE6Y3VzdG9tRGF0YUJ1ZmZlci5nZXQoKSBm
b3JUeXBlOkAoUGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpLmNoYXJhY3RlcnMoKSld
OwogCiAgICAgW3NlbGYgc2V0UHJvcGVydHlMaXN0OkBbZXh0ZW5zaW9uXSBmb3JUeXBlOmxlZ2Fj
eUZpbGVzUHJvbWlzZVBhc3RlYm9hcmRUeXBlKCldOwogCmRpZmYgLS1naXQgYS9Ub29scy9DaGFu
Z2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggN2YyMmZkNDIyNTcwN2YyNzQ0NDhkMjAyNWY5
NmNjMzdmZjcwZjdmNS4uMzNmYzhiOWZkOWRkMzI5MzlhYWQ3ZWRjYWEwZmJjNGQ1N2NmYzdmOCAx
MDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE3IEBACisyMDIyLTAzLTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisK
KyAgICAgICAgU3RhcnQgcHJlcGFyaW5nIFdlYkNvcmUgZm9yIG1ha2luZyB0aGUgU3RyaW5nKGNv
bnN0IGNoYXIqKSBjb25zdHJ1Y3RvciBleHBsaWNpdAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4MzM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgU3RhcnQgcHJlcGFyaW5nIFdlYkNvcmUgZm9yIG1ha2lu
ZyB0aGUgU3RyaW5nKGNvbnN0IGNoYXIqKSBjb25zdHJ1Y3RvciBleHBsaWNpdC4KKyAgICAgICAg
TWFraW5nIHRoaXMgY29uc3RydWN0b3IgZXhwbGljaXQgaGVscHMgY2F0Y2ggYXQgY29tcGlsZSB0
aW1lIGNhc2VzIHdoZXJlIHRoZSAiIl9zCisgICAgICAgIHByZWZpeCBpcyBtaXNzaW5nIG9uIFN0
cmluZyBsaXRlcmFscy4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0RyYWdB
bmREcm9wVGVzdHNNYWMubW06CisgICAgICAgIChURVNUKToKKwogMjAyMi0wMy0yNCAgQWFrYXNo
IEphaW4gIDxhYWthc2hfamFpbkBhcHBsZS5jb20+CiAKICAgICAgICAgW2V3c10gU2V0IGJ1Z190
aXRsZSBwcm9wZXJ0eSBhcHByb3ByaWF0ZWx5CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL21hYy9EcmFnQW5kRHJvcFRlc3RzTWFjLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9tYWMvRHJhZ0FuZERyb3BUZXN0c01hYy5tbQppbmRleCA1MjE5Yzk0ZGQzOWRiNDg5
ZmIzYTQ2YTE0ZDhhOTM1MTNkMjg0ZWZjLi44MThiMDBmM2I1ZjY0ODg3OWUzNTM1MTNjNTM0Mzlm
NzRlZGJhZWU0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9EcmFn
QW5kRHJvcFRlc3RzTWFjLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0Ry
YWdBbmREcm9wVGVzdHNNYWMubW0KQEAgLTE4MSw3ICsxODEsNyBAQCBBTExPV19ERVBSRUNBVEVE
X0RFQ0xBUkFUSU9OU19FTkQKICAgICBFWFBFQ1RfRVEoaW1hZ2VGcm9tVW5pcXVlUGFzdGVib2Fy
ZC5USUZGUmVwcmVzZW50YXRpb24ubGVuZ3RoLCBpbWFnZUZyb21EcmFnUGFzdGVib2FyZC5USUZG
UmVwcmVzZW50YXRpb24ubGVuZ3RoKTsKICAgICBFWFBFQ1RfVFJVRShOU0VxdWFsU2l6ZXMoaW1h
Z2VGcm9tRHJhZ1Bhc3RlYm9hcmQuc2l6ZSwgaW1hZ2VGcm9tVW5pcXVlUGFzdGVib2FyZC5zaXpl
KSk7CiAgICAgRVhQRUNUX0ZBTFNFKE5TRXF1YWxTaXplcyhOU1plcm9TaXplLCBpbWFnZUZyb21V
bmlxdWVQYXN0ZWJvYXJkLnNpemUpKTsKLSAgICBFWFBFQ1RfR1QoW2RyYWdQYXN0ZWJvYXJkIGRh
dGFGb3JUeXBlOkAoV2ViQ29yZTo6UGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpKV0u
bGVuZ3RoLCAwdSk7CisgICAgRVhQRUNUX0dUKFtkcmFnUGFzdGVib2FyZCBkYXRhRm9yVHlwZTpA
KFdlYkNvcmU6OlBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKS5jaGFyYWN0ZXJzKCkp
XS5sZW5ndGgsIDB1KTsKIH0KIAogVEVTVChEcmFnQW5kRHJvcFRlc3RzLCBQcm92aWRlSW1hZ2VE
YXRhQXNUeXBlSWRlbnRpZmllcnMpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455719</attachid>
            <date>2022-03-24 19:48:58 -0700</date>
            <delta_ts>2022-03-24 21:00:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238336-20220324194857.patch</filename>
            <type>text/plain</type>
            <size>426827</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxODQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
OTBiMzE2MDQ4NDI3MDQzZjgyZjc4OWRlNmEyNDFlODBhZDAzNzhmLi5jZTQyYjA2NjBhYzY2NjU4
ZjVmMTE5NzlhYWZjNTk5ZjNhZWZjZGQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMiBAQAorMjAyMi0wMy0yNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFN0YXJ0IHByZXBhcmluZyBXZWJDb3JlIGZvciBtYWtpbmcgdGhlIFN0cmluZyhj
b25zdCBjaGFyKikgY29uc3RydWN0b3IgZXhwbGljaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODMzNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0YXJ0IHByZXBhcmluZyBXZWJDb3JlIGZvciBtYWtp
bmcgdGhlIFN0cmluZyhjb25zdCBjaGFyKikgY29uc3RydWN0b3IgZXhwbGljaXQuCisgICAgICAg
IE1ha2luZyB0aGlzIGNvbnN0cnVjdG9yIGV4cGxpY2l0IGhlbHBzIGNhdGNoIGF0IGNvbXBpbGUg
dGltZSBjYXNlcyB3aGVyZSB0aGUgIiJfcworICAgICAgICBwcmVmaXggaXMgbWlzc2luZyBvbiBT
dHJpbmcgbGl0ZXJhbHMuCisKKyAgICAgICAgKiBBUEkvSlNWYWx1ZS5tbToKKyAgICAgICAgKGNy
ZWF0ZVN0cnVjdEhhbmRsZXJNYXApOgorICAgICAgICAoaGFuZGVyRm9yU3RydWN0VGFnKToKKyAg
ICAgICAgKiBBUEkvSlNXcmFwcGVyTWFwLm1tOgorICAgICAgICAoYWxsb2NhdGVDb25zdHJ1Y3Rv
ckZvckN1c3RvbUNsYXNzKToKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckF1
ZGl0QWdlbnQuY3BwOgorICAgICAgICAoSW5zcGVjdG9yOjpJbnNwZWN0b3JBdWRpdEFnZW50Ojpy
dW4pOgorCiAyMDIyLTAzLTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAg
ICAgICAgRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KCkgc2hvdWxkIHRha2Ug
aW4gU3RyaW5nVmlld3MgaW5zdGVhZCBvZiBTdHJpbmdzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGFlYzc4ZDcwMGQ1MGRkOTdl
MzE4Zjk3NjdkZWEyMjNhMGMxNGQyNTIuLjA0M2ZiMmQzNzk4NDc5NmM4ZTFlZTlhMGMwZjgxNjg5
NTI2MmI0N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
VEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjItMDMtMjQgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBTdGFydCBwcmVwYXJpbmcgV2ViQ29yZSBmb3Ig
bWFraW5nIHRoZSBTdHJpbmcoY29uc3QgY2hhciopIGNvbnN0cnVjdG9yIGV4cGxpY2l0CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzgzMzYKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdGFydCBwcmVwYXJp
bmcgV2ViQ29yZSBmb3IgbWFraW5nIHRoZSBTdHJpbmcoY29uc3QgY2hhciopIGNvbnN0cnVjdG9y
IGV4cGxpY2l0LgorICAgICAgICBNYWtpbmcgdGhpcyBjb25zdHJ1Y3RvciBleHBsaWNpdCBoZWxw
cyBjYXRjaCBhdCBjb21waWxlIHRpbWUgY2FzZXMgd2hlcmUgdGhlICIiX3MKKyAgICAgICAgcHJl
Zml4IGlzIG1pc3Npbmcgb24gU3RyaW5nIGxpdGVyYWxzLgorCisgICAgICAgICogd3RmL3RleHQv
VGV4dFN0cmVhbS5oOgorICAgICAgICAoV1RGOjpUZXh0U3RyZWFtOjpkdW1wUHJvcGVydHkpOgor
CiAyMDIyLTAzLTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAg
RmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KCkgc2hvdWxkIHRha2UgaW4gU3Ry
aW5nVmlld3MgaW5zdGVhZCBvZiBTdHJpbmdzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGFiYmUwNDhiNDVlZTQ1
MGNhNThmNTgxMjFlMmU1ZTg4ZDk3MTRmOC4uZjI2NjAxZWRjYjFiY2ZmNWY1YTExOGMyZTRlNWQ0
MTFiOTY3ZTNkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxMSBAQAorMjAyMi0wMy0yNCAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFN0YXJ0IHByZXBhcmluZyBX
ZWJDb3JlIGZvciBtYWtpbmcgdGhlIFN0cmluZyhjb25zdCBjaGFyKikgY29uc3RydWN0b3IgZXhw
bGljaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
ODMzNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0
YXJ0IHByZXBhcmluZyBXZWJDb3JlIGZvciBtYWtpbmcgdGhlIFN0cmluZyhjb25zdCBjaGFyKikg
Y29uc3RydWN0b3IgZXhwbGljaXQuCisgICAgICAgIE1ha2luZyB0aGlzIGNvbnN0cnVjdG9yIGV4
cGxpY2l0IGhlbHBzIGNhdGNoIGF0IGNvbXBpbGUgdGltZSBjYXNlcyB3aGVyZSB0aGUgIiJfcwor
ICAgICAgICBwcmVmaXggaXMgbWlzc2luZyBvbiBTdHJpbmcgbGl0ZXJhbHMuCisKKyAgICAgICAg
KiBNb2R1bGVzL2FwcGxlcGF5LWFtcy11aS9BcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydEFuZFZhbGlkYXRlQXBwbGVQYXlBTVNVSVJlcXVl
c3QpOgorICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlDb250YWN0RmllbGQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydEFuZFZhbGlkYXRlKToKKyAgICAgICAgKiBNb2R1
bGVzL2FwcGxlcGF5L0FwcGxlUGF5TWVyY2hhbnRDYXBhYmlsaXR5LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OmNvbnZlcnRBbmRWYWxpZGF0ZSk6CisgICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9B
cHBsZVBheVJlcXVlc3RCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRBbmRWYWxp
ZGF0ZSk6CisgICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNlc3Npb24uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9uOjpjcmVhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6QXBwbGVQYXlTZXNzaW9uOjpvcGVuUGF5bWVudFNldHVwKToKKyAgICAgICAgKFdlYkNv
cmU6OkFwcGxlUGF5U2Vzc2lvbjo6YmVnaW4pOgorICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXkv
QXBwbGVQYXlTZXR1cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheVNldHVwOjpiZWdp
bik6CisgICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9QYXltZW50SW5zdGFsbG1lbnRDb25maWd1
cmF0aW9uLm1tOgorICAgICAgICAoV2ViQ29yZTo6UGF5bWVudEluc3RhbGxtZW50Q29uZmlndXJh
dGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRSZXF1ZXN0
VmFsaWRhdG9yLm1tOgorICAgICAgICAoV2ViQ29yZTo6UGF5bWVudFJlcXVlc3RWYWxpZGF0b3I6
OnZhbGlkYXRlVG90YWwpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGVDb3VudHJ5Q29kZSk6
CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0ZUN1cnJlbmN5Q29kZSk6CisgICAgICAgIChXZWJD
b3JlOjp2YWxpZGF0ZU1lcmNoYW50Q2FwYWJpbGl0aWVzKToKKyAgICAgICAgKFdlYkNvcmU6OnZh
bGlkYXRlU3VwcG9ydGVkTmV0d29ya3MpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGVTaGlw
cGluZ01ldGhvZCk6CisgICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9QYXltZW50U2Vzc2lvbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpQYXltZW50U2Vzc2lvbjo6Y2FuQ3JlYXRlU2Vzc2lvbik6
CisgICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9wYXltZW50cmVxdWVzdC9BcHBsZVBheVBheW1l
bnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRBbmRWYWxpZGF0ZUFwcGxl
UGF5UmVxdWVzdCk6CisgICAgICAgICogTW9kdWxlcy9hcHBsaWNhdGlvbm1hbmlmZXN0L0FwcGxp
Y2F0aW9uTWFuaWZlc3RQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGljYXRpb25N
YW5pZmVzdFBhcnNlcjo6cGFyc2VJY29ucyk6CisgICAgICAgIChXZWJDb3JlOjpBcHBsaWNhdGlv
bk1hbmlmZXN0UGFyc2VyOjpwYXJzZVNjb3BlKToKKyAgICAgICAgKiBNb2R1bGVzL2NhY2hlL1dp
bmRvd09yV29ya2VyR2xvYmFsU2NvcGVDYWNoZXMuY3BwOgorICAgICAgICAqIE1vZHVsZXMvZW5j
cnlwdGVkbWVkaWEvSW5pdERhdGFSZWdpc3RyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzYW5p
dGl6ZUtleWlkcyk6CisgICAgICAgICogTW9kdWxlcy9lbnRyaWVzYXBpL0RPTUZpbGVTeXN0ZW0u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6bGlzdERpcmVjdG9yeVdpdGhNZXRhZGF0YSk6CisgICAg
ICAgIChXZWJDb3JlOjp2YWxpZGF0ZVBhdGhJc0V4cGVjdGVkVHlwZSk6CisgICAgICAgICogTW9k
dWxlcy9mZXRjaC9GZXRjaEJvZHlDb25zdW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGZXRj
aEJvZHlDb25zdW1lcjo6cGFja2FnZUZvcm1EYXRhKToKKyAgICAgICAgKiBNb2R1bGVzL2ZldGNo
L0ZldGNoSGVhZGVycy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpmaWxsSGVhZGVyTWFwKToKKyAg
ICAgICAgKiBNb2R1bGVzL2ZldGNoL0ZldGNoTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZldGNoTG9hZGVyOjpzdGFydExvYWRpbmdCbG9iVVJMKToKKyAgICAgICAgKiBNb2R1bGVzL2Zp
bGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RmlsZVN5c3RlbUZpbGVIYW5kbGU6OmdldEZpbGUpOgorICAgICAgICAoV2ViQ29yZTo6Rmls
ZVN5c3RlbUZpbGVIYW5kbGU6OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAqIE1v
ZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGU6OmlzU2FtZUVudHJ5IGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGU6Om1vdmUpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhl
ZGRiL0lEQkRhdGFiYXNlSWRlbnRpZmllci5oOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRi
L0lEQktleURhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCS2V5RGF0YTo6ZW5jb2RlIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OklEQktleURhdGE6OmRlY29kZSk6CisgICAgICAgICog
TW9kdWxlcy9pbmRleGVkZGIvSURCS2V5UmFuZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURC
S2V5UmFuZ2U6OmluY2x1ZGVzKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIv
SURCU2VyaWFsaXphdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzZXJpYWxpemVJREJLZXlQ
YXRoKToKKyAgICAgICAgKFdlYkNvcmU6OmRlc2VyaWFsaXplSURCS2V5UGF0aCk6CisgICAgICAg
ICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJREJTZXJ2ZXI6OklEQlNlcnZlcjo6Z2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25z
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVyOjpnZXRPcmlnaW5zIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVyOjpjbG9zZUFuZERl
bGV0ZURhdGFiYXNlc01vZGlmaWVkU2luY2UpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVy
OjpJREJTZXJ2ZXI6OmNsb3NlQW5kRGVsZXRlRGF0YWJhc2VzRm9yT3JpZ2lucyk6CisgICAgICAg
IChXZWJDb3JlOjpJREJTZXJ2ZXI6OnJlbW92ZUFsbERhdGFiYXNlc0ZvckZ1bGxPcmlnaW5QYXRo
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVyOjpyZW5hbWVPcmlnaW4p
OgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpJREJTZXJ2ZXI6OnVwZ3JhZGVGaWxlc0lm
TmVjZXNzYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVyOjp1cGdy
YWRlZERhdGFiYXNlRGlyZWN0b3J5KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2
ZXIvTWVtb3J5SURCQmFja2luZ1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZl
cjo6TWVtb3J5SURCQmFja2luZ1N0b3JlOjpiZWdpblRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OklEQlNlcnZlcjo6TWVtb3J5SURCQmFja2luZ1N0b3JlOjphYm9ydFRyYW5zYWN0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6TWVtb3J5SURCQmFja2luZ1N0b3JlOjpj
b21taXRUcmFuc2FjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6Ok1lbW9yeUlE
QkJhY2tpbmdTdG9yZTo6Z2VuZXJhdGVLZXlOdW1iZXIpOgorICAgICAgICAqIE1vZHVsZXMvaW5k
ZXhlZGRiL3NlcnZlci9NZW1vcnlPYmplY3RTdG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
REJTZXJ2ZXI6Ok1lbW9yeU9iamVjdFN0b3JlOjp1cGRhdGVJbmRleGVzRm9yUHV0UmVjb3JkKToK
KyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3Jl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6djFSZWNvcmRzVGFibGVTY2hlbWEp
OgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjp2MVJlY29yZHNUYWJsZVNjaGVtYUFsdGVy
bmF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OnYyUmVjb3Jkc1RhYmxlU2NoZW1h
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6djJSZWNvcmRzVGFibGVTY2hlbWFBbHRl
cm5hdGUpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjp2MUluZGV4UmVjb3Jkc1RhYmxl
U2NoZW1hKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6djFJbmRleFJlY29yZHNUYWJs
ZVNjaGVtYUFsdGVybmF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OnYySW5kZXhS
ZWNvcmRzVGFibGVTY2hlbWEpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjp2MkluZGV4
UmVjb3Jkc1RhYmxlU2NoZW1hQWx0ZXJuYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZl
cjo6U1FMaXRlSURCQmFja2luZ1N0b3JlOjplbmNvZGVEYXRhYmFzZU5hbWUpOgorICAgICAgICAo
V2ViQ29yZTo6SURCU2VydmVyOjpTUUxpdGVJREJCYWNraW5nU3RvcmU6OmZ1bGxEYXRhYmFzZVBh
dGhGb3JEaXJlY3RvcnkpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpTUUxpdGVJREJC
YWNraW5nU3RvcmU6OmdldE9yRXN0YWJsaXNoRGF0YWJhc2VJbmZvKToKKyAgICAgICAgKFdlYkNv
cmU6OklEQlNlcnZlcjo6U1FMaXRlSURCQmFja2luZ1N0b3JlOjp1cGRhdGVBbGxJbmRleGVzRm9y
QWRkUmVjb3JkKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6U1FMaXRlSURCQmFja2lu
Z1N0b3JlOjp1bmNoZWNrZWRHZXRLZXlHZW5lcmF0b3JWYWx1ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpJREJTZXJ2ZXI6OlNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6dW5jaGVja2VkU2V0S2V5R2VuZXJh
dG9yVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpTUUxpdGVJREJCYWNraW5n
U3RvcmU6OmdlbmVyYXRlS2V5TnVtYmVyKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9z
ZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVy
OjpVbmlxdWVJREJEYXRhYmFzZTo6Y3JlYXRlT2JqZWN0U3RvcmUpOgorICAgICAgICAoV2ViQ29y
ZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6ZGVsZXRlT2JqZWN0U3RvcmUpOgorICAg
ICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6cmVuYW1lT2JqZWN0
U3RvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6
Y2xlYXJPYmplY3RTdG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlE
QkRhdGFiYXNlOjpjcmVhdGVJbmRleCk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVu
aXF1ZUlEQkRhdGFiYXNlOjpkZWxldGVJbmRleCk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2
ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpyZW5hbWVJbmRleCk6CisgICAgICAgIChXZWJDb3JlOjpJ
REJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpwdXRPckFkZCk6CisgICAgICAgIChXZWJDb3Jl
OjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpwdXRPckFkZEFmdGVyU3BhY2VDaGVjayk6
CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpnZXRSZWNv
cmQpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6Z2V0
QWxsUmVjb3Jkcyk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFi
YXNlOjpnZXRDb3VudCk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRh
dGFiYXNlOjpkZWxldGVSZWNvcmQpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlx
dWVJREJEYXRhYmFzZTo6b3BlbkN1cnNvcik6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6
OlVuaXF1ZUlEQkRhdGFiYXNlOjppdGVyYXRlQ3Vyc29yKToKKyAgICAgICAgKFdlYkNvcmU6OklE
QlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OmNvbW1pdFRyYW5zYWN0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OmFib3J0VHJhbnNhY3Rpb24p
OgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJJbmRleEluZm8uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SURCSW5kZXhJbmZvOjpsb2dnaW5nU3RyaW5nIGNvbnN0KToKKyAg
ICAgICAgKiBNb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sc0hvc3Q6OmxheW91dFRyYWl0c0NsYXNzTmFtZSBj
b25zdCk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlcjo6Y3JlYXRlKToKKyAgICAgICAgKiBN
b2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmFk
ZFZQOUZ1bGxSYW5nZVZpZGVvRmxhZ1RvQ29udGVudFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFTb3VyY2U6OmlzVHlwZVN1cHBvcnRlZCk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0
cmVhbS9NZWRpYVRyYWNrQ29uc3RyYWludHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2V0KToK
KyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRUb0ludGVybmFsRm9ybSk6CisgICAgICAgICogTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENJY2VDYW5kaWRhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UlRDSWNlQ2FuZGlkYXRlOjpjcmVhdGUpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDUGVlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UlRDUGVlckNvbm5lY3Rp
b246OnNldExvY2FsRGVzY3JpcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6UlRDUGVlckNvbm5l
Y3Rpb246OmFkZEljZUNhbmRpZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENQZWVyQ29ubmVj
dGlvbjo6aWNlU2VydmVyc0Zyb21Db25maWd1cmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJU
Q1BlZXJDb25uZWN0aW9uOjpjZXJ0aWZpY2F0ZXNGcm9tQ29uZmlndXJhdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpSVENQZWVyQ29ubmVjdGlvbjo6aW5pdGlhbGl6ZUNvbmZpZ3VyYXRpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6UlRDUGVlckNvbm5lY3Rpb246OnNldENvbmZpZ3VyYXRpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6UlRDUGVlckNvbm5lY3Rpb246OmNoYWluT3BlcmF0aW9uKToKKyAg
ICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyOjp0cmFuc2Zvcm0pOgor
ICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1BlZXJDb25u
ZWN0aW9uQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMaWJXZWJSVENQZWVyQ29ubmVj
dGlvbkJhY2tlbmQ6OmRvQ3JlYXRlQW5zd2VyKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3Ry
ZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENSdHBUcmFuc2NlaXZlckJhY2tlbmQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6dG9SdHBDb2RlY0NhcGFiaWxpdHkpOgorICAgICAgICAqIE1vZHVsZXMvbWVk
aWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1V0aWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OnRvRXhjZXB0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OnRvUlRDRXJyb3IpOgorICAgICAgICAq
IE1vZHVsZXMvbW9kZWwtZWxlbWVudC9zY2VuZWtpdC9TY2VuZUtpdE1vZGVsTG9hZGVyVVNELm1t
OgorICAgICAgICAoV2ViQ29yZTo6d3JpdGVUb1RlbXBvcmFyeUZpbGUpOgorICAgICAgICAqIE1v
ZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Y2hlY2tBbmRDYW5vbmljYWxpemVEZXRhaWxzKToKKyAgICAgICAgKFdlYkNvcmU6OlBheW1l
bnRSZXF1ZXN0OjpzaG93KToKKyAgICAgICAgKiBNb2R1bGVzL3BpY3R1cmVpbnBpY3R1cmUvSFRN
TFZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TFZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmU6OnJlcXVlc3RQaWN0dXJlSW5QaWN0dXJlKToK
KyAgICAgICAgKiBNb2R1bGVzL3BsdWdpbnMvWW91VHViZVBsdWdpblJlcGxhY2VtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OllvdVR1YmVQbHVnaW5SZXBsYWNlbWVudDo6aW5zdGFsbFJlcGxh
Y2VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OnByb2Nlc3NBbmRDcmVhdGVZb3VUdWJlVVJMKToK
KyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJ
bXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJj
ZUltcGw6OnVwZGF0ZURhdGFTb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25DYXB0dXJlU291cmNlSW1wbDo6c291cmNlU3RvcHBlZCk6CisgICAgICAgIChXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjpzb3VyY2VNdXRlZENoYW5nZWQp
OgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL2NvY29hL1dlYlNwZWVjaFJlY29nbml6ZXJUYXNr
TW9jay5tbToKKyAgICAgICAgKC1bV2ViU3BlZWNoUmVjb2duaXplclRhc2tNb2NrIGF1ZGlvU2Ft
cGxlc0F2YWlsYWJsZTpdKToKKyAgICAgICAgKiBNb2R1bGVzL3N0b3JhZ2UvU3RvcmFnZU1hbmFn
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29ubmVjdGlvbkluZm8pOgorICAgICAgICAqIE1v
ZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldl
YkxvY2tNYW5hZ2VyOjpzaWduYWxUb0Fib3J0VGhlUmVxdWVzdCk6CisgICAgICAgICogTW9kdWxl
cy93ZWJhdWRpby9BdWRpb0xpc3RlbmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvTGlz
dGVuZXI6OkF1ZGlvTGlzdGVuZXIpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Q
YXJhbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1BhcmFtOjpzZXRBdXRvbWF0aW9uUmF0
ZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtVGltZWxpbmUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9QYXJhbVRpbWVsaW5lOjppbnNlcnRFdmVudCk6CisgICAg
ICAgICogTW9kdWxlcy93ZWJhdWRpby9CaXF1YWRGaWx0ZXJOb2RlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkJpcXVhZEZpbHRlck5vZGU6OmdldEZyZXF1ZW5jeVJlc3BvbnNlKToKKyAgICAgICAg
KiBNb2R1bGVzL3dlYmF1ZGlvL0JpcXVhZFByb2Nlc3Nvci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpCaXF1YWRQcm9jZXNzb3I6OkJpcXVhZFByb2Nlc3Nvcik6CisgICAgICAgICogTW9kdWxlcy93
ZWJhdWRpby9EZWxheVByb2Nlc3Nvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZWxheVByb2Nl
c3Nvcjo6RGVsYXlQcm9jZXNzb3IpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vV2F2ZVNo
YXBlck5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2F2ZVNoYXBlck5vZGU6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpXYXZlU2hhcGVyTm9kZTo6c2V0Q3VydmVGb3JCaW5kaW5ncyk6
CisgICAgICAgICogTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6QXV0aGVudGljYXRvckNvb3JkaW5hdG9ySW50ZXJuYWw6Om5l
ZWRzQXBwSWRRdWlya3MpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vV2ViQXV0aGVudGlj
YXRpb25VdGlscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpidWlsZEF0dGVzdGF0aW9uTWFwKToK
KyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRGV2aWNlUmVzcG9uc2VDb252ZXJ0ZXIu
Y3BwOgorICAgICAgICAoZmlkbzo6cmVhZENUQVBNYWtlQ3JlZGVudGlhbFJlc3BvbnNlKToKKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL2ZpZG8vUGluLmNwcDoKKyAgICAgICAgKGZpZG86OnBp
bjo6S2V5QWdyZWVtZW50UmVzcG9uc2U6OnBhcnNlRnJvbUNPU0UpOgorICAgICAgICAoZmlkbzo6
cGluOjpUb2tlblJlcXVlc3Q6OnRyeUNyZWF0ZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdXRo
bi9maWRvL1UyZlJlc3BvbnNlQ29udmVydGVyLmNwcDoKKyAgICAgICAgKGZpZG86OnJlYWRVMmZS
ZWdpc3RlclJlc3BvbnNlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL0NoYW5nZVZl
cnNpb25XcmFwcGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNoYW5nZVZlcnNpb25XcmFwcGVy
OjpwZXJmb3JtUHJlZmxpZ2h0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL0RPTVdp
bmRvd1dlYkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvd1dlYkRhdGFi
YXNlOjpvcGVuRGF0YWJhc2UpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJh
c2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2U6OkRhdGFiYXNlKToKKyAgICAgICAg
KFdlYkNvcmU6OkRhdGFiYXNlOjpydW5UcmFuc2FjdGlvbik6CisgICAgICAgICogTW9kdWxlcy93
ZWJkYXRhYmFzZS9EYXRhYmFzZUF1dGhvcml6ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0
YWJhc2VBdXRob3JpemVyOjphZGRBbGxvd2VkRnVuY3Rpb25zKToKKyAgICAgICAgKiBNb2R1bGVz
L3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRh
YmFzZVRyYWNrZXI6OnRyYWNrZXJEYXRhYmFzZVBhdGggY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6RGF0YWJhc2VUcmFja2VyOjpvcGVuVHJhY2tlckRhdGFiYXNlKToKKyAgICAgICAgKiBNb2R1
bGVzL3dlYmRhdGFiYXNlL1NRTFN0YXRlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTUUxT
dGF0ZW1lbnQ6OmV4ZWN1dGUpOgorICAgICAgICAoV2ViQ29yZTo6U1FMU3RhdGVtZW50OjpzZXRE
YXRhYmFzZURlbGV0ZWRFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpTUUxTdGF0ZW1lbnQ6OnNl
dFZlcnNpb25NaXNtYXRjaGVkRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6U1FMU3RhdGVtZW50
OjpzZXRGYWlsdXJlRHVlVG9RdW90YSk6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9T
UUxUcmFuc2FjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTUUxUcmFuc2FjdGlvbjo6Y2Fs
bEVycm9yQ2FsbGJhY2tEdWVUb0ludGVycnVwdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTUUxU
cmFuc2FjdGlvbjo6b3BlblRyYW5zYWN0aW9uQW5kUHJlZmxpZ2h0KToKKyAgICAgICAgKFdlYkNv
cmU6OlNRTFRyYW5zYWN0aW9uOjpkZWxpdmVyVHJhbnNhY3Rpb25DYWxsYmFjayk6CisgICAgICAg
IChXZWJDb3JlOjpTUUxUcmFuc2FjdGlvbjo6ZGVsaXZlclN0YXRlbWVudENhbGxiYWNrKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNRTFRyYW5zYWN0aW9uOjpoYW5kbGVDdXJyZW50U3RhdGVtZW50RXJy
b3IpOgorICAgICAgICAoV2ViQ29yZTo6U1FMVHJhbnNhY3Rpb246OnBvc3RmbGlnaHRBbmRDb21t
aXQpOgorICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6V2ViU29ja2V0OjpzdWJwcm90b2NvbFNlcGFyYXRvcik6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJTb2NrZXQ6OmNsb3NlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldDo6
c3VzcGVuZCk6CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5oOgorICAg
ICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWw6OmRpZE9wZW5Tb2NrZXRTdHJlYW0pOgorICAgICAg
ICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6ZGlkUmVjZWl2ZVNvY2tldFN0cmVhbURhdGEp
OgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6cHJvY2Vzc0ZyYW1lKToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWw6OnByb2Nlc3NPdXRnb2luZ0ZyYW1lUXVl
dWUpOgorICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXREZWZsYXRlRnJhbWVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldEV4dGVuc2lvbkRlZmxhdGVGcmFtZTo6
cHJvY2Vzc1Jlc3BvbnNlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldERlZmxhdGVGcmFt
ZXI6OmRlZmxhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0RGVmbGF0ZUZyYW1lcjo6
aW5mbGF0ZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEV4dGVuc2lv
bkRpc3BhdGNoZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0RXh0ZW5zaW9uRGlz
cGF0Y2hlcjo6cHJvY2Vzc0hlYWRlclZhbHVlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tl
dHMvV2ViU29ja2V0RnJhbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0RnJhbWU6
OnBhcnNlRnJhbWUpOgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvV2ViWFJXZWJHTExheWVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZU9wYXF1ZUZyYW1lYnVmZmVyKToKKyAgICAgICAg
KFdlYkNvcmU6OldlYlhSV2ViR0xMYXllcjo6Y3JlYXRlKToKKyAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L0FYSW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QVhJbWFnZTo6aW1hZ2VPdmVybGF5
RWxlbWVudHMpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQVhMb2dnZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6QVhMb2dnZXI6OkFYTG9nZ2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkFYTG9n
Z2VyOjpsb2cpOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I8PCk6CisgICAgICAgICogYWNj
ZXNzaWJpbGl0eS9BWExvZ2dlci5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQVhPYmplY3RD
YWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjppc01vZGFsRWxlbWVu
dCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVGcm9tUmVuZGVyZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cmVtb3ZlKToKKyAgICAgICAgKFdlYkNvcmU6OkFY
T2JqZWN0Q2FjaGU6OnRleHRDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2Fj
aGU6OmhhbmRsZU1lbnVPcGVuZWQpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6
bm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RD
YWNoZTo6cGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCk6CisgICAgICAgIChXZWJD
b3JlOjpBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OkFYT2JqZWN0Q2FjaGU6OmhhbmRsZU1lbnVJdGVtU2VsZWN0ZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6QVhPYmplY3RDYWNoZTo6c2VsZWN0ZWRTdGF0ZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpoYW5kbGVNb2RhbENoYW5nZSk6CisgICAgICAg
IChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwZXJmb3JtRGVmZXJyZWRDYWNoZVVwZGF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjp1cGRhdGVJc29sYXRlZFRyZWUpOgorICAg
ICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmRldGVybWluZUFjY2Vzc2liaWxp
dHlSb2xlKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6cmVhZE9ubHlWYWx1ZSBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjphdXRvQ29tcGxl
dGVWYWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0Ojpj
dXJyZW50VmFsdWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVj
dDo6cmVwbGFjZVRleHRJblJhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlP
YmplY3Q6OmNvbXB1dGVkUm9sZVN0cmluZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpub2Rl
SGFzUHJlc2VudGF0aW9uUm9sZSk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2Jq
ZWN0OjpyZXNvbHZlZEVkaXRpbmdTdHlsZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QWNj
ZXNzaWJpbGl0eTo6aXNSYWRpb0J1dHRvbkluRGlmZmVyZW50QWRob2NHcm91cCk6CisgICAgICAg
IChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5OjpmaW5kTWF0Y2hpbmdPYmplY3RzKToKKyAgICAgICAg
KiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaDoKKyAgICAgICAg
KFdlYkNvcmU6OmFjY2Vzc2liaWxpdHlSb2xlVG9TdHJpbmcpOgorICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpB
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpyZW5kZXJPYmplY3RJc09ic2VydmFibGUgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6ZGV0ZXJtaW5l
QWNjZXNzaWJpbGl0eVJvbGUpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdDo6dXBkYXRlUm9sZUFmdGVyQ2hpbGRyZW5DcmVhdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpsaXZlUmVnaW9uUmVsZXZhbnQgY29uc3Qp
OgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlQ2VsbC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5VGFibGVDZWxsOjpjb21wdXRlQWNjZXNzaWJp
bGl0eUlzSWdub3JlZCBjb25zdCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5VHJlZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5VHJlZTo6bm9kZUhh
c1RyZWVJdGVtQ2hpbGQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVRy
ZWU6OmlzVHJlZVZhbGlkIGNvbnN0KToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lzb2xhdGVk
dHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRP
YmplY3Q6OmluaXRpYWxpemVBdHRyaWJ1dGVEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNv
bGF0ZWRPYmplY3Q6OmNsYXNzTGlzdCBjb25zdCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9p
c29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29s
YXRlZFRyZWU6OkFYSXNvbGF0ZWRUcmVlKToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRU
cmVlOjp+QVhJc29sYXRlZFRyZWUpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6
OmNsZWFyKToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjp0cmVlRm9ySUQpOgor
ICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpBWElzb2xhdGVkVHJlZTo6cmVtb3ZlVHJlZUZvclBhZ2VJRCk6CisgICAgICAgIChXZWJD
b3JlOjpBWElzb2xhdGVkVHJlZTo6b2JqZWN0c0ZvcklEcyBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpBWElzb2xhdGVkVHJlZTo6Z2VuZXJhdGVTdWJ0cmVlKToKKyAgICAgICAgKFdlYkNvcmU6
OkFYSXNvbGF0ZWRUcmVlOjpjb2xsZWN0Tm9kZUNoYW5nZXNGb3JTdWJ0cmVlKToKKyAgICAgICAg
KFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVOb2RlKToKKyAgICAgICAgKFdlYkNvcmU6
OkFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVOb2RlUHJvcGVydHkpOgorICAgICAgICAoV2ViQ29yZTo6
QVhJc29sYXRlZFRyZWU6OnVwZGF0ZUNoaWxkcmVuKToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNv
bGF0ZWRUcmVlOjpmb2N1c2VkTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkVHJl
ZTo6cm9vdE5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OnNldFJvb3RO
b2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjpzZXRGb2N1c2VkTm9kZUlE
KToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVMb2FkaW5nUHJvZ3Jl
c3MpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OnJlbW92ZU5vZGUpOgorICAg
ICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OnJlbW92ZVN1YnRyZWVGcm9tTm9kZU1hcCk6
CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkVHJlZTo6YXBwbHlQZW5kaW5nQ2hhbmdlcyk6
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvQWNjZXNzaWJpbGl0eU9iamVjdE1hYy5tbToK
KyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnN1YnJvbGVQbGF0Zm9ybVN0
cmluZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0Ojpyb2xl
UGxhdGZvcm1EZXNjcmlwdGlvbiBjb25zdCk6CisgICAgICAgICogYW5pbWF0aW9uL0FuaW1hdGlv
bkVmZmVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBbmltYXRpb25FZmZlY3Q6OmdldFRpbWlu
ZyBjb25zdCk6CisgICAgICAgICogYW5pbWF0aW9uL0RvY3VtZW50VGltZWxpbmUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RG9jdW1lbnRUaW1lbGluZTo6YW5pbWF0ZSk6CisgICAgICAgICogYW5p
bWF0aW9uL0VmZmVjdFRpbWluZy5oOgorICAgICAgICAqIGFuaW1hdGlvbi9LZXlmcmFtZUVmZmVj
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpLZXlmcmFtZUVmZmVjdDo6Q1NTUHJvcGVydHlJRFRv
SURMQXR0cmlidXRlTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpLZXlmcmFtZUVmZmVjdDo6Z2V0
S2V5ZnJhbWVzKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9HQ0NvbnRyb2xsZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6R0NDb250cm9sbGVyOjpHQ0NvbnRyb2xsZXIpOgorICAgICAgICAqIGJp
bmRpbmdzL2pzL0pTQ3VzdG9tRWxlbWVudEludGVyZmFjZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpKU0N1c3RvbUVsZW1lbnRJbnRlcmZhY2U6OnVwZ3JhZGVFbGVtZW50KToKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU0RPTUNvbnZlcnROdW1iZXJzLmg6CisgICAgICAgIChXZWJDb3JlOjpDb252
ZXJ0ZXI8SURMRmxvYXQ+Ojpjb252ZXJ0KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0V4ZWNT
dGF0ZUluc3RydW1lbnRhdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6SlNFeGVjU3RhdGU6Omlu
c3RydW1lbnRGdW5jdGlvbik6CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjpjYWxsSW5Xb3JsZCk6
CisgICAgICAgICogYnJpZGdlL29iamMvb2JqY19ydW50aW1lLm1tOgorICAgICAgICAoSlNDOjpC
aW5kaW5nczo6T2JqY0FycmF5OjpzZXRWYWx1ZUF0IGNvbnN0KToKKyAgICAgICAgKEpTQzo6Qmlu
ZGluZ3M6Ok9iamNBcnJheTo6dmFsdWVBdCBjb25zdCk6CisgICAgICAgICogYnJpZGdlL3J1bnRp
bWVfYXJyYXkuY3BwOgorICAgICAgICAoSlNDOjpSdW50aW1lQXJyYXk6OnB1dCk6CisgICAgICAg
IChKU0M6OlJ1bnRpbWVBcnJheTo6cHV0QnlJbmRleCk6CisgICAgICAgICogYnJpZGdlL3J1bnRp
bWVfb2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OnRocm93UnVudGltZU9iamVj
dEludmFsaWRBY2Nlc3NFcnJvcik6CisgICAgICAgICogY29udGVudGV4dGVuc2lvbnMvQ29udGVu
dEV4dGVuc2lvbkFjdGlvbnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lv
bnM6Ok1vZGlmeUhlYWRlcnNBY3Rpb246Ok1vZGlmeUhlYWRlckluZm86OnBhcnNlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpSZWRpcmVjdEFjdGlvbjo6cGFyc2UpOgor
ICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OlJlZGlyZWN0QWN0aW9uOjpVUkxU
cmFuc2Zvcm1BY3Rpb246OnBhcnNlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNp
b25zOjpSZWRpcmVjdEFjdGlvbjo6VVJMVHJhbnNmb3JtQWN0aW9uOjpRdWVyeVRyYW5zZm9ybTo6
cGFyc2UpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OlJlZGlyZWN0QWN0
aW9uOjpVUkxUcmFuc2Zvcm1BY3Rpb246OlF1ZXJ5VHJhbnNmb3JtOjpRdWVyeUtleVZhbHVlOjpw
YXJzZSk6CisgICAgICAgICogY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkNvbXBp
bGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpjb21waWxlUnVs
ZUxpc3QpOgorICAgICAgICAqIGNvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25QYXJz
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OmdldERvbWFpbkxp
c3QpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OmxvYWRUcmlnZ2VyKToK
KyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpsb2FkQWN0aW9uKToKKyAgICAg
ICAgKiBjb250ZW50ZXh0ZW5zaW9ucy9TZXJpYWxpemVkTkZBLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNvbnRlbnRFeHRlbnNpb25zOjpTZXJpYWxpemVkTkZBOjpzZXJpYWxpemUpOgorICAgICAg
ICAqIGNvbnRlbnRleHRlbnNpb25zL1VSTEZpbHRlclBhcnNlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDb250ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFyc2VyOjpzdGF0dXNTdHJpbmcpOgor
ICAgICAgICAqIGNvbnRlbnRleHRlbnNpb25zL1VSTEZpbHRlclBhcnNlci5oOgorICAgICAgICAq
IGNyeXB0by9TdWJ0bGVDcnlwdG8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3VidGxlQ3J5cHRv
OjphZGRBdXRoZW50aWNhdGVkRW5jcnlwdGlvbldhcm5pbmdJZk5lY2Vzc2FyeSk6CisgICAgICAg
ICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQy5oOgorICAgICAgICAq
IGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DRkIuaDoKKyAgICAgICAgKiBj
cnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfQ1RSLmg6CisgICAgICAgICogY3J5
cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0dDTS5oOgorICAgICAgICAqIGNyeXB0
by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19LVy5oOgorICAgICAgICAqIGNyeXB0by9h
bGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUVDREguaDoKKyAgICAgICAgKiBjcnlwdG8vYWxnb3Jp
dGhtcy9DcnlwdG9BbGdvcml0aG1FQ0RTQS5oOgorICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1z
L0NyeXB0b0FsZ29yaXRobUhLREYuaDoKKyAgICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9Dcnlw
dG9BbGdvcml0aG1ITUFDLmg6CisgICAgICAgICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxn
b3JpdGhtUEJLREYyLmg6CisgICAgICAgICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3Jp
dGhtUlNBRVNfUEtDUzFfdjFfNS5oOgorICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0
b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81Lmg6CisgICAgICAgICogY3J5cHRvL2FsZ29yaXRo
bXMvQ3J5cHRvQWxnb3JpdGhtUlNBX09BRVAuaDoKKyAgICAgICAgKiBjcnlwdG8vYWxnb3JpdGht
cy9DcnlwdG9BbGdvcml0aG1SU0FfUFNTLmg6CisgICAgICAgICogY3J5cHRvL2FsZ29yaXRobXMv
Q3J5cHRvQWxnb3JpdGhtU0hBMS5oOgorICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0
b0FsZ29yaXRobVNIQTIyNC5oOgorICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0Fs
Z29yaXRobVNIQTI1Ni5oOgorICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29y
aXRobVNIQTM4NC5oOgorICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRo
bVNIQTUxMi5oOgorICAgICAgICAqIGNyeXB0by9rZXlzL0NyeXB0b0tleUFFUy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDcnlwdG9LZXlBRVM6OmV4cG9ydEp3ayBjb25zdCk6CisgICAgICAgICog
Y3J5cHRvL2tleXMvQ3J5cHRvS2V5RUMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvS2V5
RUM6OmV4cG9ydEp3ayBjb25zdCk6CisgICAgICAgICogY3J5cHRvL2tleXMvQ3J5cHRvS2V5SE1B
Qy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9LZXlITUFDOjpleHBvcnRKd2sgY29uc3Qp
OgorICAgICAgICAqIGNyeXB0by9rZXlzL0NyeXB0b0tleVJTQS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDcnlwdG9LZXlSU0E6OmV4cG9ydEp3ayBjb25zdCk6CisgICAgICAgICogY3NzL0NTU0Zv
bnRGYWNlU3JjVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udEZhY2VTcmNWYWx1
ZTo6aXNTdXBwb3J0ZWRGb3JtYXQgY29uc3QpOgorICAgICAgICAqIGNzcy9DU1NHcmlkVGVtcGxh
dGVBcmVhc1ZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnN0cmluZ0ZvclBvc2l0aW9uKToK
KyAgICAgICAgKiBjc3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTUHJpbWl0aXZlVmFsdWU6OnVuaXRUeXBlU3RyaW5nKToKKyAgICAgICAgKiBjc3MvQ1NTU3Vi
Z3JpZFZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N1YmdyaWRWYWx1ZTo6Y3VzdG9t
Q1NTVGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL0RPTUNTU05hbWVzcGFjZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjp2YWx1ZVdpdGhvdXRJbXBvcnRhbnQpOgorICAgICAgICAqIGNzcy9ET01D
U1NSZWdpc3RlckN1c3RvbVByb3BlcnR5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTUNTU1Jl
Z2lzdGVyQ3VzdG9tUHJvcGVydHk6OnJlZ2lzdGVyUHJvcGVydHkpOgorICAgICAgICAqIGNzcy9E
ZXByZWNhdGVkQ1NTT01WYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZXByZWNhdGVkQ1NT
T01WYWx1ZTo6Y3NzVGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL0ZvbnRGYWNlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkZvbnRGYWNlOjp1bmljb2RlUmFuZ2UgY29uc3QpOgorICAgICAgICAq
IGNzcy9NZWRpYVF1ZXJ5RXhwcmVzc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1
ZXJ5RXhwcmVzc2lvbjo6c2VyaWFsaXplIGNvbnN0KToKKyAgICAgICAgKiBjc3MvU3R5bGVQcm9w
ZXJ0aWVzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUHJvcGVydGllczo6Z2V0TGF5ZXJl
ZFNob3J0aGFuZFZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGFibGVTdHlsZVBy
b3BlcnRpZXM6OnNldEN1c3RvbVByb3BlcnR5KToKKyAgICAgICAgKiBjc3MvbWFrZXZhbHVlcy5w
bDoKKyAgICAgICAgKiBjc3MvcGFyc2VyL01lZGlhUXVlcnlQYXJzZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFRdWVyeVBhcnNlcjo6c2tpcFVudGlsQ29tbWEpOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFRdWVyeVBhcnNlcjo6cGFyc2VJbnRlcm5hbCk6CisgICAgICAgICogY3NzL3Bh
cnNlci9TaXplc0F0dHJpYnV0ZVBhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaXplc0F0
dHJpYnV0ZVBhcnNlcjo6bWVkaWFDb25kaXRpb25NYXRjaGVzKToKKyAgICAgICAgKiBjc3MvdHlw
ZWRvbS9DU1NOdW1lcmljRmFjdG9yeS5oOgorICAgICAgICAqIGNzcy90eXBlZG9tL0NTU051bWVy
aWNWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NOdW1lcmljVmFsdWU6Om11bHRpcGx5
SW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTnVtZXJpY1ZhbHVlOjp0byk6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NOdW1lcmljVmFsdWU6OnBhcnNlKToKKyAgICAgICAgKiBjc3MvdHlw
ZWRvbS9DU1NTdHlsZVZhbHVlRmFjdG9yeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHls
ZVZhbHVlRmFjdG9yeTo6cmVpZnlWYWx1ZSk6CisgICAgICAgICogZWRpdGluZy9jb2NvYS9IVE1M
Q29udmVydGVyLm1tOgorICAgICAgICAoSFRNTENvbnZlcnRlckNhY2hlczo6cHJvcGVydHlWYWx1
ZUZvck5vZGUpOgorICAgICAgICAoSFRNTENvbnZlcnRlcjo6X3Byb2Nlc3NFbGVtZW50KToKKyAg
ICAgICAgKiBlZGl0aW5nL2NvY29hL1dlYkNvbnRlbnRSZWFkZXJDb2NvYS5tbToKKyAgICAgICAg
KFdlYkNvcmU6OmF0dGFjaG1lbnRGb3JEYXRhKToKKyAgICAgICAgKiBsb2FkZXIvY29jb2EvQnVu
ZGxlUmVzb3VyY2VMb2FkZXIubW06CisgICAgICAgIChXZWJDb3JlOjpCdW5kbGVSZXNvdXJjZUxv
YWRlcjo6bG9hZFJlc291cmNlRnJvbUJ1bmRsZSk6CisgICAgICAgICogbG9hZGVyL21hYy9Mb2Fk
ZXJOU1VSTEV4dHJhcy5tbToKKyAgICAgICAgKHN1Z2dlc3RlZEZpbGVuYW1lV2l0aE1JTUVUeXBl
KToKKyAgICAgICAgKiBwYWdlL2NvY29hL1Jlc291cmNlVXNhZ2VPdmVybGF5Q29jb2EubW06Cisg
ICAgICAgIChXZWJDb3JlOjpIaXN0b3JpY1Jlc291cmNlVXNhZ2VEYXRhOjpIaXN0b3JpY1Jlc291
cmNlVXNhZ2VEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OmRyYXdDcHVIaXN0b3J5KToKKyAgICAg
ICAgKFdlYkNvcmU6OmRyYXdHQ0hpc3RvcnkpOgorICAgICAgICAoV2ViQ29yZTo6ZHJhd01lbUhp
c3RvcnkpOgorICAgICAgICAqIHBhZ2UvY29jb2EvU2V0dGluZ3NCYXNlQ29jb2EubW06CisgICAg
ICAgIChXZWJDb3JlOjpTZXR0aW5nc0Jhc2U6OmluaXRpYWxpemVEZWZhdWx0Rm9udEZhbWlsaWVz
KToKKyAgICAgICAgKiBwYWdlL21hYy9QYWdlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6UGFn
ZTo6cGxhdGZvcm1Jbml0aWFsaXplKToKKyAgICAgICAgKiBwbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJp
bmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFYQVJJQUNvbnRlbnRHcm91cFRleHQpOgorICAg
ICAgICAqIHBsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9Q
YXN0ZWJvYXJkLmg6CisgICAgICAgICogcGxhdGZvcm0vUGFzdGVib2FyZEN1c3RvbURhdGEuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9jb2NvYS9NZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2Eu
bW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2E6OnVwZGF0ZU5v
d1BsYXlpbmdJbmZvKToKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9LZXlFdmVudENvY29hLm1t
OgorICAgICAgICAoV2ViQ29yZTo6a2V5SWRlbnRpZmllckZvckNoYXJDb2RlKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9jb2NvYS9QYXN0ZWJvYXJkQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpp
bWFnZVR5cGVUb0Zha2VGaWxlbmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjpy
ZWFkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9QYXN0ZWJvYXJkQ3VzdG9tRGF0YUNvY29h
Lm1tOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm91ckNDLmg6CisgICAgICAgIChXVEY6Okxv
Z0FyZ3VtZW50PFdlYkNvcmU6OkZvdXJDQz46OnRvU3RyaW5nKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQU5HTEU6OnZhbGlkYXRlRGVwdGhTdGVuY2lsKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQ0RNUHJpdmF0ZU1lZGlhU291
cmNlQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkNETVByaXZhdGVNZWRpYVNvdXJjZUFW
Rk9iakM6OnBhcnNlS2V5U3lzdGVtKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVh
bWluZ0FWRk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpDRE1JbnN0YW5jZUZhaXJQbGF5U3Ry
ZWFtaW5nQVZGT2JqQzo6c2V0U3RvcmFnZURpcmVjdG9yeSk6CisgICAgICAgIChXZWJDb3JlOjpD
RE1JbnN0YW5jZVNlc3Npb25GYWlyUGxheVN0cmVhbWluZ0FWRk9iakM6OnVwZGF0ZUxpY2Vuc2Up
OgorICAgICAgICAoV2ViQ29yZTo6Q0RNSW5zdGFuY2VTZXNzaW9uRmFpclBsYXlTdHJlYW1pbmdB
VkZPYmpDOjpkaWRQcm92aWRlUmVxdWVzdHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMubW06CisgICAg
ICAgIChXZWJDb3JlOjpDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDOjpzdG9yYWdlUGF0aCBj
b25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpzdHJlYW1TZXNzaW9uKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQ
cml2YXRlQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVB
VkZPYmpDOjpkaWRQcm92aWRlQ29udGVudEtleVJlcXVlc3RJbml0aWFsaXphdGlvbkRhdGFGb3JU
cmFja0lEKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvRGF0YURldGVjdG9ySGlnaGxpZ2h0Lm1t
OgorICAgICAgICAoV2ViQ29yZTo6RGF0YURldGVjdG9ySGlnaGxpZ2h0OjpmYWRlSW4pOgorICAg
ICAgICAoV2ViQ29yZTo6RGF0YURldGVjdG9ySGlnaGxpZ2h0OjpmYWRlT3V0KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMv
UGxhdGZvcm1FdmVudEZhY3RvcnlNYWMubW06CisgICAgICAgIChXZWJDb3JlOjprZXlJZGVudGlm
aWVyRm9yS2V5RXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1LZXlib2FyZEV2ZW50
QnVpbGRlcjo6UGxhdGZvcm1LZXlib2FyZEV2ZW50QnVpbGRlcik6CisgICAgICAgICogcGxhdGZv
cm0vbWFjL1BsYXRmb3JtUGFzdGVib2FyZE1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRm
b3JtUGFzdGVib2FyZDo6dHlwZXNTYWZlRm9yRE9NVG9SZWFkQW5kV3JpdGUgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6UGxhdGZvcm1QYXN0ZWJvYXJkOjp3cml0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpjcmVhdGVQYXN0ZWJvYXJkSXRlbSk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1N0cmlu
Z1V0aWxpdGllcy5tbToKKyAgICAgICAgKFdlYkNvcmU6OndpbGRjYXJkUmVnZXhQYXR0ZXJuU3Ry
aW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGhyZWFkQ2hlY2subW06CisgICAgICAgIChX
ZWJDb3JlUmVwb3J0VGhyZWFkVmlvbGF0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVXNl
ckFnZW50TWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6c3RhbmRhcmRVc2VyQWdlbnRXaXRoQXBw
bGljYXRpb25OYW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlRXJyb3JC
YXNlLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlRXJyb3JCYXNlLmg6
CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jb2NvYS9SYW5nZVJlc3BvbnNlR2VuZXJhdG9y
Lm1tOgorICAgICAgICAoV2ViQ29yZTo6c3ludGhlc2l6ZWRSZXNwb25zZUZvclJhbmdlKToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpp
Y29uRm9yQXR0YWNobWVudCk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxl
Q29uc3RhbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om9wZXJhdG9yPDwpOgorICAgICAgICAq
IHN2Zy9TVkdGaWx0ZXJFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZpbHRlclByaW1pdGl2
ZVN0YW5kYXJkQXR0cmlidXRlcy5oOgorICAgICAgICAqIHN2Zy9TVkdMaW5lYXJHcmFkaWVudEVs
ZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHTWFya2VyRWxlbWVudC5oOgorICAgICAgICAqIHN2
Zy9TVkdNYXNrRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdQYXRoU2VnSW1wbC5oOgorICAg
ICAgICAqIHN2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvcHJv
cGVydGllcy9TVkdQcm9wZXJ0eVRyYWl0cy5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVy
dHlUcmFpdHM8Ym9vbD46OnRvU3RyaW5nKToKKyAgICAgICAgKiB0ZXN0aW5nL01vY2tDb250ZW50
RmlsdGVyU2V0dGluZ3MuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tDb250ZW50RmlsdGVyU2V0
dGluZ3M6OnVuYmxvY2tVUkxIb3N0KToKKyAgICAgICAgKiB4bWwvWFBhdGhWYWx1ZS5oOgorICAg
ICAgICAoV2ViQ29yZTo6WFBhdGg6OlZhbHVlOjpWYWx1ZSk6CisgICAgICAgICogeG1sL1hTTFN0
eWxlU2hlZXQuaDoKKwogMjAyMi0wMy0yNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29t
PgogCiAgICAgICAgIEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudCgpIHNob3Vs
ZCB0YWtlIGluIFN0cmluZ1ZpZXdzIGluc3RlYWQgb2YgU3RyaW5ncwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkdQVS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViR1BVL0NoYW5nZUxvZwppbmRleCA3Zjhl
YzNlYzdjN2VkZjEzOWQ2NzUzN2Q5OTI2MWI2ODRlMmJkNDNlLi41ZTMyYjU3ZmRmZDE4NTlhNGM2
NTc1OWEwNGJmMDY4YzA3ZGI3MWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViR1BVL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViR1BVL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDIyLTAz
LTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgU3RhcnQgcHJl
cGFyaW5nIFdlYkNvcmUgZm9yIG1ha2luZyB0aGUgU3RyaW5nKGNvbnN0IGNoYXIqKSBjb25zdHJ1
Y3RvciBleHBsaWNpdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjM4MzM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgU3RhcnQgcHJlcGFyaW5nIFdlYkNvcmUgZm9yIG1ha2luZyB0aGUgU3RyaW5nKGNvbnN0
IGNoYXIqKSBjb25zdHJ1Y3RvciBleHBsaWNpdC4KKyAgICAgICAgTWFraW5nIHRoaXMgY29uc3Ry
dWN0b3IgZXhwbGljaXQgaGVscHMgY2F0Y2ggYXQgY29tcGlsZSB0aW1lIGNhc2VzIHdoZXJlIHRo
ZSAiIl9zCisgICAgICAgIHByZWZpeCBpcyBtaXNzaW5nIG9uIFN0cmluZyBsaXRlcmFscy4KKwor
ICAgICAgICAqIFdHU0wvUGFyc2VyLmNwcDoKKyAgICAgICAgKFdHU0w6OlBhcnNlcjxMZXhlcj46
OnBhcnNlR2xvYmFsRGVjbCk6CisgICAgICAgIChXR1NMOjpQYXJzZXI8TGV4ZXI+OjpwYXJzZUF0
dHJpYnV0ZSk6CisgICAgICAgIChXR1NMOjpQYXJzZXI8TGV4ZXI+OjpwYXJzZVR5cGVEZWNsKToK
KyAgICAgICAgKFdHU0w6OlBhcnNlcjxMZXhlcj46OnBhcnNlU3RvcmFnZUNsYXNzKToKKyAgICAg
ICAgKFdHU0w6OlBhcnNlcjxMZXhlcj46OnBhcnNlQWNjZXNzTW9kZSk6CisgICAgICAgIChXR1NM
OjpQYXJzZXI8TGV4ZXI+OjpwYXJzZVN0YXRlbWVudCk6CisgICAgICAgIChXR1NMOjpQYXJzZXI8
TGV4ZXI+OjpwYXJzZVByaW1hcnlFeHByZXNzaW9uKToKKyAgICAgICAgKFdHU0w6OlBhcnNlcjxM
ZXhlcj46OnBhcnNlQ29yZUxIU0V4cHJlc3Npb24pOgorICAgICAgICAqIFdHU0wvVG9rZW4uY3Bw
OgorICAgICAgICAoV0dTTDo6dG9TdHJpbmcpOgorICAgICAgICAqIFdlYkdQVS9BZGFwdGVyLm1t
OgorICAgICAgICAoV2ViR1BVOjpBZGFwdGVyOjpyZXF1ZXN0RGV2aWNlKToKKyAgICAgICAgKiBX
ZWJHUFUvQnVmZmVyLm1tOgorICAgICAgICAoV2ViR1BVOjpCdWZmZXI6Om1hcEFzeW5jKToKKyAg
ICAgICAgKFdlYkdQVTo6QnVmZmVyOjp1bm1hcCk6CisgICAgICAgICogV2ViR1BVL0NvbW1hbmRF
bmNvZGVyLm1tOgorICAgICAgICAoV2ViR1BVOjpDb21tYW5kRW5jb2Rlcjo6Y29weUJ1ZmZlclRv
QnVmZmVyKToKKyAgICAgICAgKFdlYkdQVTo6Q29tbWFuZEVuY29kZXI6OmNsZWFyQnVmZmVyKToK
KyAgICAgICAgKFdlYkdQVTo6Q29tbWFuZEVuY29kZXI6OmZpbmlzaCk6CisgICAgICAgICogV2Vi
R1BVL0NvbXB1dGVQaXBlbGluZS5tbToKKyAgICAgICAgKFdlYkdQVTo6Y3JlYXRlQ29uc3RhbnRW
YWx1ZXMpOgorICAgICAgICAoV2ViR1BVOjpEZXZpY2U6OmNyZWF0ZUNvbXB1dGVQaXBlbGluZSk6
CisgICAgICAgICogV2ViR1BVL1F1ZXVlLm1tOgorICAgICAgICAoV2ViR1BVOjpRdWV1ZTo6c3Vi
bWl0KToKKyAgICAgICAgKiBXZWJHUFUvU2FtcGxlci5tbToKKyAgICAgICAgKFdlYkdQVTo6RGV2
aWNlOjpjcmVhdGVTYW1wbGVyKToKKyAgICAgICAgKiBXZWJHUFUvU2hhZGVyTW9kdWxlLm1tOgor
ICAgICAgICAoV2ViR1BVOjplYXJseUNvbXBpbGVTaGFkZXJNb2R1bGUpOgorCiAyMDIyLTAzLTI0
ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgW1dl
YkdQVV0gRml4IHRoZSB3YXRjaE9TIGJ1aWxkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDNiZTMwOWVhYmY5N2IzYzQ0
MGY2YWRhZTY4Y2I5YmFiNDhiN2FkYWIuLmNkNDgyN2EzMzY3MTM1YWExMTdiNjE4NTU5NDI2Yzcy
Yzc0ZjIxNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjItMDMtMjQgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBTdGFydCBwcmVwYXJpbmcgV2ViQ29y
ZSBmb3IgbWFraW5nIHRoZSBTdHJpbmcoY29uc3QgY2hhciopIGNvbnN0cnVjdG9yIGV4cGxpY2l0
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzgzMzYK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdGFydCBw
cmVwYXJpbmcgV2ViQ29yZSBmb3IgbWFraW5nIHRoZSBTdHJpbmcoY29uc3QgY2hhciopIGNvbnN0
cnVjdG9yIGV4cGxpY2l0LgorICAgICAgICBNYWtpbmcgdGhpcyBjb25zdHJ1Y3RvciBleHBsaWNp
dCBoZWxwcyBjYXRjaCBhdCBjb21waWxlIHRpbWUgY2FzZXMgd2hlcmUgdGhlICIiX3MKKyAgICAg
ICAgcHJlZml4IGlzIG1pc3Npbmcgb24gU3RyaW5nIGxpdGVyYWxzLgorCisgICAgICAgICogVUlQ
cm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1w
bDo6c2V0UHJvbWlzZWREYXRhRm9ySW1hZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1w
bDo6cmVxdWVzdERPTVBhc3RlQWNjZXNzKToKKwogMjAyMi0wMy0yNCAgQnJlbnQgRnVsZ2hhbSAg
PGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXF1aXJlIGNsaWNrLXRvLXBsYXkgZm9y
IG1lZGlhIGluIENhcHRpdmUgUG9ydGFscyAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRl
eCBhNGJhNTFlZDgyZWYxODY3MjQ2MDE0NWIwMjY5YWIxYjljY2EyMzBkLi4wNzY1YWQ5NTY4NDBl
YmRiMDJkNjA3ZDkwMTRlMTNjMjY2YTk1OGI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTcgQEAKKzIwMjItMDMtMjQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KKworICAgICAgICBTdGFydCBwcmVwYXJpbmcgV2ViQ29yZSBmb3IgbWFraW5nIHRoZSBT
dHJpbmcoY29uc3QgY2hhciopIGNvbnN0cnVjdG9yIGV4cGxpY2l0CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzgzMzYKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdGFydCBwcmVwYXJpbmcgV2ViQ29yZSBm
b3IgbWFraW5nIHRoZSBTdHJpbmcoY29uc3QgY2hhciopIGNvbnN0cnVjdG9yIGV4cGxpY2l0Lgor
ICAgICAgICBNYWtpbmcgdGhpcyBjb25zdHJ1Y3RvciBleHBsaWNpdCBoZWxwcyBjYXRjaCBhdCBj
b21waWxlIHRpbWUgY2FzZXMgd2hlcmUgdGhlICIiX3MKKyAgICAgICAgcHJlZml4IGlzIG1pc3Np
bmcgb24gU3RyaW5nIGxpdGVyYWxzLgorCisgICAgICAgICogTWlzYy9XZWJOU1Bhc3RlYm9hcmRF
eHRyYXMubW06CisgICAgICAgICgtW05TUGFzdGVib2FyZCBfd2ViX2RlY2xhcmVBbmRXcml0ZURy
YWdJbWFnZUZvckVsZW1lbnQ6VVJMOnRpdGxlOmFyY2hpdmU6c291cmNlOl0pOgorCiAyMDIyLTAz
LTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgRmlsZVN5c3Rl
bTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KCkgc2hvdWxkIHRha2UgaW4gU3RyaW5nVmlld3Mg
aW5zdGVhZCBvZiBTdHJpbmdzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L0pTVmFsdWUubW0gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmFsdWUubW0KaW5kZXgg
ZDNhZDA4MGUxZGRmNGZlNmVmYmE5MTM1YmEyNjg3NmM3N2RjYmMyNi4uZjEyYTJjNDk1M2YwMDMy
ZGZiNGI3MmY2OGZmODBmZWRkYjY5MDM1NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS9KU1ZhbHVlLm1tCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWYWx1
ZS5tbQpAQCAtMTE3OSw3ICsxMTc5LDcgQEAgc3RhdGljIFN0cnVjdEhhbmRsZXJzKiBjcmVhdGVT
dHJ1Y3RIYW5kbGVyTWFwKCkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgLy8gVHJ5IHRv
IGZpbmQgYSBtYXRjaGluZyB2YWx1ZVdpdGg8Rm9vPjpjb250ZXh0OiBtZXRob2QuCiAgICAgICAg
IGF1dG8gdHlwZSA9IGFkb3B0U3lzdGVtPGNoYXJbXT4obWV0aG9kX2NvcHlSZXR1cm5UeXBlKG1l
dGhvZCkpOwotICAgICAgICBTdHJ1Y3RIYW5kbGVyczo6aXRlcmF0b3IgaXRlciA9IHN0cnVjdEhh
bmRsZXJzLT5maW5kKHR5cGUuZ2V0KCkpOworICAgICAgICBTdHJ1Y3RIYW5kbGVyczo6aXRlcmF0
b3IgaXRlciA9IHN0cnVjdEhhbmRsZXJzLT5maW5kKFN0cmluZyB7IHR5cGUuZ2V0KCkgfSk7CiAg
ICAgICAgIGlmIChpdGVyID09IHN0cnVjdEhhbmRsZXJzLT5lbmQoKSkKICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgU3RydWN0VGFnSGFuZGxlciYgaGFuZGxlciA9IGl0ZXItPnZhbHVlOwpA
QCAtMTIxNyw3ICsxMjE3LDcgQEAgc3RhdGljIFN0cnVjdFRhZ0hhbmRsZXIqIGhhbmRlckZvclN0
cnVjdFRhZyhjb25zdCBjaGFyKiBlbmNvZGVkVHlwZSkKIAogICAgIHN0YXRpYyBTdHJ1Y3RIYW5k
bGVycyogc3RydWN0SGFuZGxlcnMgPSBjcmVhdGVTdHJ1Y3RIYW5kbGVyTWFwKCk7CiAKLSAgICBT
dHJ1Y3RIYW5kbGVyczo6aXRlcmF0b3IgaXRlciA9IHN0cnVjdEhhbmRsZXJzLT5maW5kKGVuY29k
ZWRUeXBlKTsKKyAgICBTdHJ1Y3RIYW5kbGVyczo6aXRlcmF0b3IgaXRlciA9IHN0cnVjdEhhbmRs
ZXJzLT5maW5kKFN0cmluZyB7IGVuY29kZWRUeXBlIH0pOwogICAgIGlmIChpdGVyID09IHN0cnVj
dEhhbmRsZXJzLT5lbmQoKSkKICAgICAgICAgcmV0dXJuIDA7CiAgICAgcmV0dXJuICZpdGVyLT52
YWx1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNXcmFwcGVyTWFw
Lm1tIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1dyYXBwZXJNYXAubW0KaW5kZXggOTZl
NDQ3ODg3MGNkODFhNTg5OTdkMDJkYTZmYTRmYmEzNDZhZjE5NS4uZjgyMWRmOGUzZWJlZDU3ZjU0
MGNkMmYwMWQ2NGVjOTZkY2ZhODZjZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS9KU1dyYXBwZXJNYXAubW0KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1dy
YXBwZXJNYXAubW0KQEAgLTQ1MSw3ICs0NTEsNyBAQCBzdGF0aWMgSlNDOjpKU09iamVjdCogYWxs
b2NhdGVDb25zdHJ1Y3RvckZvckN1c3RvbUNsYXNzKEpTQ29udGV4dCAqY29udGV4dCwgY29ucwog
ICAgICAgICBmb3JFYWNoTWV0aG9kSW5DbGFzcyhjdXJyZW50Q2xhc3MsIF4oTWV0aG9kIG1ldGhv
ZCkgewogICAgICAgICAgICAgU0VMIHNlbGVjdG9yID0gbWV0aG9kX2dldE5hbWUobWV0aG9kKTsK
ICAgICAgICAgICAgIGNvbnN0IGNoYXIqIG5hbWUgPSBzZWxfZ2V0TmFtZShzZWxlY3Rvcik7Ci0g
ICAgICAgICAgICBhdXRvIGl0ZXIgPSBpbml0VGFibGUuZmluZChuYW1lKTsKKyAgICAgICAgICAg
IGF1dG8gaXRlciA9IGluaXRUYWJsZS5maW5kKFN0cmluZyB7IG5hbWUgfSk7CiAKICAgICAgICAg
ICAgIGlmIChpdGVyID09IGluaXRUYWJsZS5lbmQoKSkKICAgICAgICAgICAgICAgICByZXR1cm47
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRTdHJlYW0uaCBiL1NvdXJjZS9X
VEYvd3RmL3RleHQvVGV4dFN0cmVhbS5oCmluZGV4IGM4NWRhNjY0MWUxMzE3M2M5NzExNTdiYTRh
OTgzYjQ0ZjU0NjViYTUuLmRmNzEyZWQyMDVmNDc5Nzk3YmI2ZDlmNTA2N2Q2MTQzMTFjNjUwYTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dFN0cmVhbS5oCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL3RleHQvVGV4dFN0cmVhbS5oCkBAIC0xMDAsNiArMTAwLDE1IEBAIHB1YmxpYzoK
ICAgICAgICAgdHMuZW5kR3JvdXAoKTsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBU
PgorICAgIHZvaWQgZHVtcFByb3BlcnR5KGNvbnN0IGNoYXIqIG5hbWUsIGNvbnN0IFQmIHZhbHVl
KQorICAgIHsKKyAgICAgICAgVGV4dFN0cmVhbSYgdHMgPSAqdGhpczsKKyAgICAgICAgdHMuc3Rh
cnRHcm91cCgpOworICAgICAgICB0cyA8PCBuYW1lIDw8ICIgIiA8PCB2YWx1ZTsKKyAgICAgICAg
dHMuZW5kR3JvdXAoKTsKKyAgICB9CisKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5nIHJl
bGVhc2UoKTsKICAgICAKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBzdGFydEdyb3VwKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5LWFtcy11aS9BcHBs
ZVBheUFNU1VJUGF5bWVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBs
ZXBheS1hbXMtdWkvQXBwbGVQYXlBTVNVSVBheW1lbnRIYW5kbGVyLmNwcAppbmRleCBmNGRhZjhk
MThhZWM0OTk3NzVkNWMwM2MwOGVhYTA0MzI0MTE0M2ZiLi40YTMyMjVjZTljYTQwNmMwMGZlMTY4
NDYwYTVkNmQwMzAwNDI4NTU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Fw
cGxlcGF5LWFtcy11aS9BcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXktYW1zLXVpL0FwcGxlUGF5QU1TVUlQYXltZW50SGFu
ZGxlci5jcHAKQEAgLTM5LDcgKzM5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogc3RhdGljIEV4
Y2VwdGlvbk9yPEFwcGxlUGF5QU1TVUlSZXF1ZXN0PiBjb252ZXJ0QW5kVmFsaWRhdGVBcHBsZVBh
eUFNU1VJUmVxdWVzdChEb2N1bWVudCYgZG9jdW1lbnQsIEpTQzo6SlNWYWx1ZSBkYXRhKQogewog
ICAgIGlmIChkYXRhLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVF
cnJvciwgIk1pc3NpbmcgcGF5bWVudCBtZXRob2QgZGF0YS4iIH07CisgICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBUeXBlRXJyb3IsICJNaXNzaW5nIHBheW1lbnQgbWV0aG9kIGRhdGEuIl9zIH07
CiAKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKGRvY3VtZW50LnZt
KCkpOwogICAgIGF1dG8gYXBwbGVQYXlBTVNVSVJlcXVlc3QgPSBjb252ZXJ0RGljdGlvbmFyeTxB
cHBsZVBheUFNU1VJUmVxdWVzdD4oKmRvY3VtZW50Lmdsb2JhbE9iamVjdCgpLCBkYXRhKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlDb250YWN0
RmllbGQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUNvbnRh
Y3RGaWVsZC5jcHAKaW5kZXggZGQzZGNiNGVjN2RkNGE2YWYzOTBiZWQ2YzFhN2YyYTE0MjMxMzUy
NC4uMzcxYjllZDQyMzI4N2Q5NzczNTU5YTVjZjhhNTFiNjc5N2VmM2FjMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUNvbnRhY3RGaWVsZC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUNvbnRhY3RGaWVs
ZC5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAgRXhjZXB0aW9uT3I8QXBwbGVQYXlTZXNzaW9uUGF5bWVu
dFJlcXVlc3Q6OkNvbnRhY3RGaWVsZHM+IGNvbnZlcnRBbmRWYWxpZGF0ZSh1bnMKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICBjYXNlIEFwcGxlUGF5Q29udGFjdEZpZWxkOjpQaG9uZXRpY05h
bWU6CiAgICAgICAgICAgICBpZiAodmVyc2lvbiA8IDMpCi0gICAgICAgICAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIlwicGhvbmV0aWNOYW1lXCIgaXMgbm90IGEgdmFsaWQg
Y29udGFjdCBmaWVsZC4iIH07CisgICAgICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5
cGVFcnJvciwgIlwicGhvbmV0aWNOYW1lXCIgaXMgbm90IGEgdmFsaWQgY29udGFjdCBmaWVsZC4i
X3MgfTsKICAgICAgICAgICAgIHJlc3VsdC5waG9uZXRpY05hbWUgPSB0cnVlOwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQXBwbGVQYXlDb250YWN0RmllbGQ6OlBob25lOgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheU1lcmNoYW50
Q2FwYWJpbGl0eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5
TWVyY2hhbnRDYXBhYmlsaXR5LmNwcAppbmRleCBhNjJhMmM3M2VhMzA2NTUxYmVlODVkYzk1NjE3
YzExNjI1NjUzYmMyLi5mNjg0YmM5YWM2MWQ0OTlhNTVjYTRlMTgxZjU3YjQ2OTE3MjU3OWExIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5TWVyY2hh
bnRDYXBhYmlsaXR5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0Fw
cGxlUGF5TWVyY2hhbnRDYXBhYmlsaXR5LmNwcApAQCAtMzMsNyArMzMsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiBFeGNlcHRpb25PcjxBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6TWVy
Y2hhbnRDYXBhYmlsaXRpZXM+IGNvbnZlcnRBbmRWYWxpZGF0ZShjb25zdCBWZWN0b3I8QXBwbGVQ
YXlNZXJjaGFudENhcGFiaWxpdHk+JiBtZXJjaGFudENhcGFiaWxpdGllcykKIHsKICAgICBpZiAo
bWVyY2hhbnRDYXBhYmlsaXRpZXMuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9u
IHsgVHlwZUVycm9yLCAiQXQgbGVhc3Qgb25lIG1lcmNoYW50IGNhcGFiaWxpdHkgbXVzdCBiZSBw
cm92aWRlZC4iIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJBdCBs
ZWFzdCBvbmUgbWVyY2hhbnQgY2FwYWJpbGl0eSBtdXN0IGJlIHByb3ZpZGVkLiJfcyB9OwogCiAg
ICAgQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6Ok1lcmNoYW50Q2FwYWJpbGl0aWVzIHJl
c3VsdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBs
ZVBheVJlcXVlc3RCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBw
bGVQYXlSZXF1ZXN0QmFzZS5jcHAKaW5kZXggMjQ1ODZkNWRkNDc5YzkwOTNkNDlmOTYxMDExOTFj
YWE4ZTg1MDk3ZS4uOGQzNjI3YTZmNmEyN2ZiOGM4MmM5M2FkNTQ2ZDZhYWYwNjliZjEzMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVJlcXVlc3RC
YXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5UmVx
dWVzdEJhc2UuY3BwCkBAIC03Myw3ICs3Myw3IEBAIEV4Y2VwdGlvbk9yPEFwcGxlUGF5U2Vzc2lv
blBheW1lbnRSZXF1ZXN0PiBjb252ZXJ0QW5kVmFsaWRhdGUoRG9jdW1lbnQmIGRvY3VtZW50CiAg
ICAgcmVzdWx0LnNldE1lcmNoYW50Q2FwYWJpbGl0aWVzKG1lcmNoYW50Q2FwYWJpbGl0aWVzLnJl
bGVhc2VSZXR1cm5WYWx1ZSgpKTsKIAogICAgIGlmIChyZXF1aXJlc1N1cHBvcnRlZE5ldHdvcmtz
KHZlcnNpb24sIHJlcXVlc3QpICYmIHJlcXVlc3Quc3VwcG9ydGVkTmV0d29ya3MuaXNFbXB0eSgp
KQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiQXQgbGVhc3Qgb25lIHN1
cHBvcnRlZCBuZXR3b3JrIG11c3QgYmUgcHJvdmlkZWQuIiB9OworICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgVHlwZUVycm9yLCAiQXQgbGVhc3Qgb25lIHN1cHBvcnRlZCBuZXR3b3JrIG11c3Qg
YmUgcHJvdmlkZWQuIl9zIH07CiAKICAgICBhdXRvIHN1cHBvcnRlZE5ldHdvcmtzID0gY29udmVy
dEFuZFZhbGlkYXRlKGRvY3VtZW50LCB2ZXJzaW9uLCByZXF1ZXN0LnN1cHBvcnRlZE5ldHdvcmtz
LCBwYXltZW50Q29vcmRpbmF0b3IpOwogICAgIGlmIChzdXBwb3J0ZWROZXR3b3Jrcy5oYXNFeGNl
cHRpb24oKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBw
bGVQYXlTZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQ
YXlTZXNzaW9uLmNwcAppbmRleCA2Y2JmY2YwNzk3NTAxYTk5NjI5ZmNjNjkzNmI2ZjA1MGYwY2Zj
ODlhLi41OWUzMDBiZWI3MDkyNmVmOTgzYWVjYmE2ZDRhZTViNmU3YjA2NWM2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2Vzc2lvbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNlc3Npb24uY3BwCkBA
IC0zMTAsMTAgKzMxMCwxMCBAQCBFeGNlcHRpb25PcjxSZWY8QXBwbGVQYXlTZXNzaW9uPj4gQXBw
bGVQYXlTZXNzaW9uOjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCB1bgogICAgICAgICByZXR1
cm4gY2FuQ2FsbC5yZWxlYXNlRXhjZXB0aW9uKCk7CiAKICAgICBpZiAoIVVzZXJHZXN0dXJlSW5k
aWNhdG9yOjpwcm9jZXNzaW5nVXNlckdlc3R1cmUoKSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlv
biB7IEludmFsaWRBY2Nlc3NFcnJvciwgIk11c3QgY3JlYXRlIGEgbmV3IEFwcGxlUGF5U2Vzc2lv
biBmcm9tIGEgdXNlciBnZXN0dXJlIGhhbmRsZXIuIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiTXVzdCBjcmVhdGUgYSBuZXcgQXBwbGVQYXlTZXNz
aW9uIGZyb20gYSB1c2VyIGdlc3R1cmUgaGFuZGxlci4iX3MgfTsKIAogICAgIGlmICghZG9jdW1l
bnQucGFnZSgpKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9y
LCAiRnJhbWUgaXMgZGV0YWNoZWQiIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZh
bGlkQWNjZXNzRXJyb3IsICJGcmFtZSBpcyBkZXRhY2hlZCJfcyB9OwogCiAgICAgYXV0byBjb252
ZXJ0ZWRQYXltZW50UmVxdWVzdCA9IGNvbnZlcnRBbmRWYWxpZGF0ZShkb2N1bWVudCwgdmVyc2lv
biwgV1RGTW92ZShwYXltZW50UmVxdWVzdCksIGRvY3VtZW50LnBhZ2UoKS0+cGF5bWVudENvb3Jk
aW5hdG9yKCkpOwogICAgIGlmIChjb252ZXJ0ZWRQYXltZW50UmVxdWVzdC5oYXNFeGNlcHRpb24o
KSkKQEAgLTQxMiw3ICs0MTIsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBBcHBsZVBheVNlc3Npb246
Om9wZW5QYXltZW50U2V0dXAoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdAogICAgICAgICBy
ZXR1cm4gY2FuQ2FsbC5yZWxlYXNlRXhjZXB0aW9uKCk7CiAKICAgICBpZiAoIVVzZXJHZXN0dXJl
SW5kaWNhdG9yOjpwcm9jZXNzaW5nVXNlckdlc3R1cmUoKSkKLSAgICAgICAgcmV0dXJuIEV4Y2Vw
dGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwgIk11c3QgY2FsbCBBcHBsZVBheVNlc3Npb24ub3Bl
blBheW1lbnRTZXR1cCBmcm9tIGEgdXNlciBnZXN0dXJlIGhhbmRsZXIuIiB9OworICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiTXVzdCBjYWxsIEFwcGxlUGF5
U2Vzc2lvbi5vcGVuUGF5bWVudFNldHVwIGZyb20gYSB1c2VyIGdlc3R1cmUgaGFuZGxlci4iX3Mg
fTsKIAogICAgIGF1dG8qIHBhZ2UgPSBkb2N1bWVudC5wYWdlKCk7CiAgICAgaWYgKCFwYWdlKQpA
QCAtNDMxLDEzICs0MzEsMTMgQEAgRXhjZXB0aW9uT3I8dm9pZD4gQXBwbGVQYXlTZXNzaW9uOjpv
cGVuUGF5bWVudFNldHVwKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3QKIEV4Y2VwdGlvbk9y
PHZvaWQ+IEFwcGxlUGF5U2Vzc2lvbjo6YmVnaW4oRG9jdW1lbnQmIGRvY3VtZW50KQogewogICAg
IGlmICghY2FuQmVnaW4oKSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nl
c3NFcnJvciwgIlBheW1lbnQgc2Vzc2lvbiBpcyBhbHJlYWR5IGFjdGl2ZS4iIH07CisgICAgICAg
IHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJQYXltZW50IHNlc3Npb24g
aXMgYWxyZWFkeSBhY3RpdmUuIl9zIH07CiAKICAgICBpZiAocGF5bWVudENvb3JkaW5hdG9yKCku
aGFzQWN0aXZlU2Vzc2lvbigpKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFj
Y2Vzc0Vycm9yLCAiUGFnZSBhbHJlYWR5IGhhcyBhbiBhY3RpdmUgcGF5bWVudCBzZXNzaW9uLiIg
fTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwgIlBhZ2Ug
YWxyZWFkeSBoYXMgYW4gYWN0aXZlIHBheW1lbnQgc2Vzc2lvbi4iX3MgfTsKIAogICAgIGlmICgh
cGF5bWVudENvb3JkaW5hdG9yKCkuYmVnaW5QYXltZW50U2Vzc2lvbihkb2N1bWVudCwgKnRoaXMs
IG1fcGF5bWVudFJlcXVlc3QpKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFj
Y2Vzc0Vycm9yLCAiVGhlcmUgaXMgYWxyZWFkeSBoYXMgYW4gYWN0aXZlIHBheW1lbnQgc2Vzc2lv
bi4iIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJU
aGVyZSBpcyBhbHJlYWR5IGhhcyBhbiBhY3RpdmUgcGF5bWVudCBzZXNzaW9uLiJfcyB9OwogCiAg
ICAgbV9zdGF0ZSA9IFN0YXRlOjpBY3RpdmU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTZXR1cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2V0dXAuY3BwCmluZGV4IGU4YjEzNjE2OTBiMjBlYWY3ZTFj
NjE2YTc3MmE4ZjYxM2RlZmYzNDguLjg5ZTRhNDU1ZjE4NWY4MTkwYzdlYzBkNzYxNzg0ZDU5NDZi
YzYxNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQ
YXlTZXR1cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBh
eVNldHVwLmNwcApAQCAtOTEsNyArOTEsNyBAQCB2b2lkIEFwcGxlUGF5U2V0dXA6OmJlZ2luKERv
Y3VtZW50JiBkb2N1bWVudCwgVmVjdG9yPFJlZlB0cjxBcHBsZVBheVNldHVwRmVhdHVyZQogICAg
IH0KIAogICAgIGlmICghVXNlckdlc3R1cmVJbmRpY2F0b3I6OnByb2Nlc3NpbmdVc2VyR2VzdHVy
ZSgpKSB7Ci0gICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NF
cnJvciwgIk11c3QgY2FsbCBBcHBsZVBheVNldHVwLmJlZ2luIGZyb20gYSB1c2VyIGdlc3R1cmUg
aGFuZGxlci4iIH0pOworICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlk
QWNjZXNzRXJyb3IsICJNdXN0IGNhbGwgQXBwbGVQYXlTZXR1cC5iZWdpbiBmcm9tIGEgdXNlciBn
ZXN0dXJlIGhhbmRsZXIuIl9zIH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRJbnN0YWxsbWVudENv
bmZpZ3VyYXRpb24ubW0gYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRJ
bnN0YWxsbWVudENvbmZpZ3VyYXRpb24ubW0KaW5kZXggNjRkMWRiYjIxMmU3MDJjMDJiMmI4MmNk
MWU2OGU4MGU3NzNmMDg3MC4uOTljNzRkNjg5MTY0OTA3MjI1MGRlYzQ5Yjk2ZDAwY2NhNmM2ZTE3
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50SW5z
dGFsbG1lbnRDb25maWd1cmF0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBw
bGVwYXkvUGF5bWVudEluc3RhbGxtZW50Q29uZmlndXJhdGlvbi5tbQpAQCAtMjA3LDcgKzIwNyw3
IEBAIEV4Y2VwdGlvbk9yPFBheW1lbnRJbnN0YWxsbWVudENvbmZpZ3VyYXRpb24+IFBheW1lbnRJ
bnN0YWxsbWVudENvbmZpZ3VyYXRpb246OmNyCiAgICAgICAgIE5TRGF0YSAqYXBwbGljYXRpb25N
ZXRhZGF0YSA9IFtjb25maWd1cmF0aW9uLmFwcGxpY2F0aW9uTWV0YWRhdGEgZGF0YVVzaW5nRW5j
b2Rpbmc6TlNVVEY4U3RyaW5nRW5jb2RpbmddOwogICAgICAgICBhcHBsaWNhdGlvbk1ldGFkYXRh
RGljdGlvbmFyeSA9IGR5bmFtaWNfb2JqY19jYXN0PE5TRGljdGlvbmFyeT4oW05TSlNPTlNlcmlh
bGl6YXRpb24gSlNPTk9iamVjdFdpdGhEYXRhOmFwcGxpY2F0aW9uTWV0YWRhdGEgb3B0aW9uczow
IGVycm9yOm5pbF0pOwogICAgICAgICBpZiAoIWFwcGxpY2F0aW9uTWV0YWRhdGFEaWN0aW9uYXJ5
KQotICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgImFwcGxpY2F0aW9u
TWV0YWRhdGEgbXVzdCBiZSBhIEpTT04gb2JqZWN0IiB9OworICAgICAgICAgICAgcmV0dXJuIEV4
Y2VwdGlvbiB7IFR5cGVFcnJvciwgImFwcGxpY2F0aW9uTWV0YWRhdGEgbXVzdCBiZSBhIEpTT04g
b2JqZWN0Il9zIH07CiAgICAgfQogCiAgICAgcmV0dXJuIFBheW1lbnRJbnN0YWxsbWVudENvbmZp
Z3VyYXRpb24oY29uZmlndXJhdGlvbiwgYXBwbGljYXRpb25NZXRhZGF0YURpY3Rpb25hcnkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50UmVxdWVz
dFZhbGlkYXRvci5tbSBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvUGF5bWVudFJl
cXVlc3RWYWxpZGF0b3IubW0KaW5kZXggZjEwYzU1ZDQ5NGExMWMzMGMwYTEwNWUxYmZiNjE0Mzkw
ODY2OGM0MC4uYzUyZmQ5MmQwOGQzZGM0ZTMzYWY3ZTBmZGJiZTNlMGM4ZThjZWNhOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50UmVxdWVzdFZhbGlk
YXRvci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRSZXF1
ZXN0VmFsaWRhdG9yLm1tCkBAIC05NSwxOCArOTUsMTggQEAgRXhjZXB0aW9uT3I8dm9pZD4gUGF5
bWVudFJlcXVlc3RWYWxpZGF0b3I6OnZhbGlkYXRlKGNvbnN0IEFwcGxlUGF5U2Vzc2lvblBheW1l
bnQKIEV4Y2VwdGlvbk9yPHZvaWQ+IFBheW1lbnRSZXF1ZXN0VmFsaWRhdG9yOjp2YWxpZGF0ZVRv
dGFsKGNvbnN0IEFwcGxlUGF5TGluZUl0ZW0mIHRvdGFsKQogewogICAgIGlmICghdG90YWwubGFi
ZWwpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJNaXNzaW5nIHRvdGFs
IGxhYmVsLiIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIk1pc3Np
bmcgdG90YWwgbGFiZWwuIl9zIH07CiAKICAgICBpZiAoIXRvdGFsLmFtb3VudCkKLSAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIk1pc3NpbmcgdG90YWwgYW1vdW50LiIgfTsK
KyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIk1pc3NpbmcgdG90YWwgYW1v
dW50LiJfcyB9OwogCiAgICAgZG91YmxlIGFtb3VudCA9IFtOU0RlY2ltYWxOdW1iZXIgZGVjaW1h
bE51bWJlcldpdGhTdHJpbmc6dG90YWwuYW1vdW50IGxvY2FsZTpAeyBOU0xvY2FsZURlY2ltYWxT
ZXBhcmF0b3IgOiBAIi4iIH1dLmRvdWJsZVZhbHVlOwogCiAgICAgaWYgKGFtb3VudCA8IDApCi0g
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJUb3RhbCBhbW91bnQgbXVzdCBu
b3QgYmUgbmVnYXRpdmUuIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9y
LCAiVG90YWwgYW1vdW50IG11c3Qgbm90IGJlIG5lZ2F0aXZlLiJfcyB9OwogCiAgICAgaWYgKGFt
b3VudCA+IDEwMDAwMDAwMCkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwg
IlRvdGFsIGFtb3VudCBpcyB0b28gYmlnLiIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7
IFR5cGVFcnJvciwgIlRvdGFsIGFtb3VudCBpcyB0b28gYmlnLiJfcyB9OwogCiAgICAgcmV0dXJu
IHsgfTsKIH0KQEAgLTExNCw3ICsxMTQsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBQYXltZW50UmVx
dWVzdFZhbGlkYXRvcjo6dmFsaWRhdGVUb3RhbChjb25zdCBBcHBsZVBheUxpbmVJdGVtJgogc3Rh
dGljIEV4Y2VwdGlvbk9yPHZvaWQ+IHZhbGlkYXRlQ291bnRyeUNvZGUoY29uc3QgU3RyaW5nJiBj
b3VudHJ5Q29kZSkKIHsKICAgICBpZiAoIWNvdW50cnlDb2RlKQotICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgVHlwZUVycm9yLCAiTWlzc2luZyBjb3VudHJ5IGNvZGUuIiB9OworICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiTWlzc2luZyBjb3VudHJ5IGNvZGUuIl9zIH07
CiAKICAgICBmb3IgKGF1dG8gKmNvdW50cnlDb2RlUHRyID0gdWxvY19nZXRJU09Db3VudHJpZXMo
KTsgKmNvdW50cnlDb2RlUHRyOyArK2NvdW50cnlDb2RlUHRyKSB7CiAgICAgICAgIGlmIChjb3Vu
dHJ5Q29kZSA9PSAqY291bnRyeUNvZGVQdHIpCkBAIC0xMjcsNyArMTI3LDcgQEAgc3RhdGljIEV4
Y2VwdGlvbk9yPHZvaWQ+IHZhbGlkYXRlQ291bnRyeUNvZGUoY29uc3QgU3RyaW5nJiBjb3VudHJ5
Q29kZSkKIHN0YXRpYyBFeGNlcHRpb25Pcjx2b2lkPiB2YWxpZGF0ZUN1cnJlbmN5Q29kZShjb25z
dCBTdHJpbmcmIGN1cnJlbmN5Q29kZSkKIHsKICAgICBpZiAoIWN1cnJlbmN5Q29kZSkKLSAgICAg
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIk1pc3NpbmcgY3VycmVuY3kgY29kZS4i
IH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJNaXNzaW5nIGN1cnJl
bmN5IGNvZGUuIl9zIH07CiAKICAgICBVRXJyb3JDb2RlIGVycm9yQ29kZSA9IFVfWkVST19FUlJP
UjsKICAgICBhdXRvIGN1cnJlbmN5Q29kZXMgPSBzdGQ6OnVuaXF1ZV9wdHI8VUVudW1lcmF0aW9u
LCBJQ1VEZWxldGVyPHVlbnVtX2Nsb3NlPj4odWN1cnJfb3BlbklTT0N1cnJlbmNpZXMoVUNVUlJf
QUxMLCAmZXJyb3JDb2RlKSk7CkBAIC0xNDQsNyArMTQ0LDcgQEAgc3RhdGljIEV4Y2VwdGlvbk9y
PHZvaWQ+IHZhbGlkYXRlQ3VycmVuY3lDb2RlKGNvbnN0IFN0cmluZyYgY3VycmVuY3lDb2RlKQog
c3RhdGljIEV4Y2VwdGlvbk9yPHZvaWQ+IHZhbGlkYXRlTWVyY2hhbnRDYXBhYmlsaXRpZXMoY29u
c3QgQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6Ok1lcmNoYW50Q2FwYWJpbGl0aWVzJiBt
ZXJjaGFudENhcGFiaWxpdGllcykKIHsKICAgICBpZiAoIW1lcmNoYW50Q2FwYWJpbGl0aWVzLnN1
cHBvcnRzM0RTICYmICFtZXJjaGFudENhcGFiaWxpdGllcy5zdXBwb3J0c0VNViAmJiAhbWVyY2hh
bnRDYXBhYmlsaXRpZXMuc3VwcG9ydHNDcmVkaXQgJiYgIW1lcmNoYW50Q2FwYWJpbGl0aWVzLnN1
cHBvcnRzRGViaXQpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJNaXNz
aW5nIG1lcmNoYW50IGNhcGFiaWxpdGllcy4iIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBUeXBlRXJyb3IsICJNaXNzaW5nIG1lcmNoYW50IGNhcGFiaWxpdGllcy4iX3MgfTsKIAogICAg
IHJldHVybiB7IH07CiB9CkBAIC0xNTIsNyArMTUyLDcgQEAgc3RhdGljIEV4Y2VwdGlvbk9yPHZv
aWQ+IHZhbGlkYXRlTWVyY2hhbnRDYXBhYmlsaXRpZXMoY29uc3QgQXBwbGVQYXlTZXNzaW9uUGF5
bWUKIHN0YXRpYyBFeGNlcHRpb25Pcjx2b2lkPiB2YWxpZGF0ZVN1cHBvcnRlZE5ldHdvcmtzKGNv
bnN0IFZlY3RvcjxTdHJpbmc+JiBzdXBwb3J0ZWROZXR3b3JrcykKIHsKICAgICBpZiAoc3VwcG9y
dGVkTmV0d29ya3MuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVy
cm9yLCAiTWlzc2luZyBzdXBwb3J0ZWQgbmV0d29ya3MuIiB9OworICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgVHlwZUVycm9yLCAiTWlzc2luZyBzdXBwb3J0ZWQgbmV0d29ya3MuIl9zIH07CiAK
ICAgICByZXR1cm4geyB9OwogfQpAQCAtMTYxLDcgKzE2MSw3IEBAIHN0YXRpYyBFeGNlcHRpb25P
cjx2b2lkPiB2YWxpZGF0ZVNoaXBwaW5nTWV0aG9kKGNvbnN0IEFwcGxlUGF5U2hpcHBpbmdNZXRo
b2QmIHNoCiB7CiAgICAgTlNEZWNpbWFsTnVtYmVyICphbW91bnQgPSBbTlNEZWNpbWFsTnVtYmVy
IGRlY2ltYWxOdW1iZXJXaXRoU3RyaW5nOnNoaXBwaW5nTWV0aG9kLmFtb3VudCBsb2NhbGU6QHsg
TlNMb2NhbGVEZWNpbWFsU2VwYXJhdG9yIDogQCIuIiB9XTsKICAgICBpZiAoYW1vdW50LmludGVn
ZXJWYWx1ZSA8IDApCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJTaGlw
cGluZyBtZXRob2QgYW1vdW50IG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHplcm8u
IiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiU2hpcHBpbmcgbWV0
aG9kIGFtb3VudCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB6ZXJvLiJfcyB9Owog
CiAgICAgcmV0dXJuIHsgfTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
YXBwbGVwYXkvUGF5bWVudFNlc3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBs
ZXBheS9QYXltZW50U2Vzc2lvbi5jcHAKaW5kZXggOTRmOTQ1OWI5YjQ0OGE5ODQyZWIwZjQwMjNj
NjQyYTA2OGU4M2M3MS4uMmU4ZjY2ZWE4M2MxZDQ3MmRhMTg3YzA4MzZiNTgxNzZjYmFkOTFhMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50U2Vzc2lv
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50U2Vzc2lv
bi5jcHAKQEAgLTUyLDI0ICs1MiwyNCBAQCBFeGNlcHRpb25Pcjx2b2lkPiBQYXltZW50U2Vzc2lv
bjo6Y2FuQ3JlYXRlU2Vzc2lvbihEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBTZWN1cml0eUVycm9yLCAiVGhpcmQtcGFydHkgaWZyYW1lcyBhcmUgbm90IGFs
bG93ZWQgdG8gcmVxdWVzdCBwYXltZW50cyB1bmxlc3MgZXhwbGljaXRseSBhbGxvd2VkIHZpYSBG
ZWF0dXJlLVBvbGljeSAocGF5bWVudCkiX3MgfTsKIAogICAgIGlmICghZG9jdW1lbnQuZnJhbWUo
KSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwgIlRyeWlu
ZyB0byBzdGFydCBhbiBBcHBsZSBQYXkgc2Vzc2lvbiBmcm9tIGFuIGluYWN0aXZlIGRvY3VtZW50
LiIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwgIlRy
eWluZyB0byBzdGFydCBhbiBBcHBsZSBQYXkgc2Vzc2lvbiBmcm9tIGFuIGluYWN0aXZlIGRvY3Vt
ZW50LiJfcyB9OwogCiAgICAgaWYgKCFpc1NlY3VyZSgqZG9jdW1lbnQubG9hZGVyKCkpKQotICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiVHJ5aW5nIHRvIHN0
YXJ0IGFuIEFwcGxlIFBheSBzZXNzaW9uIGZyb20gYW4gaW5zZWN1cmUgZG9jdW1lbnQuIiB9Owor
ICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiVHJ5aW5nIHRv
IHN0YXJ0IGFuIEFwcGxlIFBheSBzZXNzaW9uIGZyb20gYW4gaW5zZWN1cmUgZG9jdW1lbnQuIl9z
IH07CiAKICAgICBhdXRvJiB0b3BEb2N1bWVudCA9IGRvY3VtZW50LnRvcERvY3VtZW50KCk7CiAg
ICAgaWYgKCZkb2N1bWVudCAhPSAmdG9wRG9jdW1lbnQpIHsKICAgICAgICAgYXV0byYgdG9wT3Jp
Z2luID0gdG9wRG9jdW1lbnQudG9wT3JpZ2luKCk7CiAKICAgICAgICAgaWYgKCFkb2N1bWVudC5z
ZWN1cml0eU9yaWdpbigpLmlzU2FtZVNjaGVtZUhvc3RQb3J0KHRvcE9yaWdpbikpCi0gICAgICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiVHJ5aW5nIHRvIHN0
YXJ0IGFuIEFwcGxlIFBheSBzZXNzaW9uIGZyb20gYSBkb2N1bWVudCB3aXRoIGFuIGRpZmZlcmVu
dCBzZWN1cml0eSBvcmlnaW4gdGhhbiBpdHMgdG9wLWxldmVsIGZyYW1lLiIgfTsKKyAgICAgICAg
ICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJUcnlpbmcgdG8gc3Rh
cnQgYW4gQXBwbGUgUGF5IHNlc3Npb24gZnJvbSBhIGRvY3VtZW50IHdpdGggYW4gZGlmZmVyZW50
IHNlY3VyaXR5IG9yaWdpbiB0aGFuIGl0cyB0b3AtbGV2ZWwgZnJhbWUuIl9zIH07CiAKICAgICAg
ICAgZm9yIChhdXRvKiBhbmNlc3RvckRvY3VtZW50ID0gZG9jdW1lbnQucGFyZW50RG9jdW1lbnQo
KTsgYW5jZXN0b3JEb2N1bWVudCAhPSAmdG9wRG9jdW1lbnQ7IGFuY2VzdG9yRG9jdW1lbnQgPSBh
bmNlc3RvckRvY3VtZW50LT5wYXJlbnREb2N1bWVudCgpKSB7CiAgICAgICAgICAgICBpZiAoIWlz
U2VjdXJlKCphbmNlc3RvckRvY3VtZW50LT5sb2FkZXIoKSkpCi0gICAgICAgICAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwgIlRyeWluZyB0byBzdGFydCBhbiBB
cHBsZSBQYXkgc2Vzc2lvbiBmcm9tIGEgZG9jdW1lbnQgd2l0aCBhbiBpbnNlY3VyZSBwYXJlbnQg
ZnJhbWUuIiB9OworICAgICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNj
ZXNzRXJyb3IsICJUcnlpbmcgdG8gc3RhcnQgYW4gQXBwbGUgUGF5IHNlc3Npb24gZnJvbSBhIGRv
Y3VtZW50IHdpdGggYW4gaW5zZWN1cmUgcGFyZW50IGZyYW1lLiJfcyB9OwogCiAgICAgICAgICAg
ICBpZiAoIWFuY2VzdG9yRG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCkuaXNTYW1lU2NoZW1lSG9z
dFBvcnQodG9wT3JpZ2luKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52
YWxpZEFjY2Vzc0Vycm9yLCAiVHJ5aW5nIHRvIHN0YXJ0IGFuIEFwcGxlIFBheSBzZXNzaW9uIGZy
b20gYSBkb2N1bWVudCB3aXRoIGFuIGRpZmZlcmVudCBzZWN1cml0eSBvcmlnaW4gdGhhbiBpdHMg
dG9wLWxldmVsIGZyYW1lLiIgfTsKKyAgICAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
SW52YWxpZEFjY2Vzc0Vycm9yLCAiVHJ5aW5nIHRvIHN0YXJ0IGFuIEFwcGxlIFBheSBzZXNzaW9u
IGZyb20gYSBkb2N1bWVudCB3aXRoIGFuIGRpZmZlcmVudCBzZWN1cml0eSBvcmlnaW4gdGhhbiBp
dHMgdG9wLWxldmVsIGZyYW1lLiJfcyB9OwogICAgICAgICB9CiAgICAgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5
UGF5bWVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9wYXlt
ZW50cmVxdWVzdC9BcHBsZVBheVBheW1lbnRIYW5kbGVyLmNwcAppbmRleCA3MDU1MWFlODY0NDg5
YzllNjc3Y2Q5MjE1M2Y1ZDFlMjI3YTQwMjU0Li5lYjU2YjkxZTVmZWRhYzY2YTc5ZDA0NmEzYmZl
YzhkYjI5Mjc1ZDdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5
L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQYXltZW50SGFu
ZGxlci5jcHAKQEAgLTg5LDcgKzg5LDcgQEAgc3RhdGljIGlubGluZSBQYXltZW50Q29vcmRpbmF0
b3ImIHBheW1lbnRDb29yZGluYXRvcihEb2N1bWVudCYgZG9jdW1lbnQpCiBzdGF0aWMgRXhjZXB0
aW9uT3I8QXBwbGVQYXlSZXF1ZXN0PiBjb252ZXJ0QW5kVmFsaWRhdGVBcHBsZVBheVJlcXVlc3Qo
RG9jdW1lbnQmIGRvY3VtZW50LCBKU0M6OkpTVmFsdWUgZGF0YSkKIHsKICAgICBpZiAoZGF0YS5p
c0VtcHR5KCkpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJNaXNzaW5n
IHBheW1lbnQgbWV0aG9kIGRhdGEuIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlw
ZUVycm9yLCAiTWlzc2luZyBwYXltZW50IG1ldGhvZCBkYXRhLiJfcyB9OwogCiAgICAgYXV0byB0
aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRShkb2N1bWVudC52bSgpKTsKICAgICBhdXRv
IGFwcGxlUGF5UmVxdWVzdCA9IGNvbnZlcnREaWN0aW9uYXJ5PEFwcGxlUGF5UmVxdWVzdD4oKmRv
Y3VtZW50Lmdsb2JhbE9iamVjdCgpLCBkYXRhKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvYXBwbGljYXRpb25tYW5pZmVzdC9BcHBsaWNhdGlvbk1hbmlmZXN0UGFyc2VyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGljYXRpb25tYW5pZmVzdC9BcHBsaWNhdGlv
bk1hbmlmZXN0UGFyc2VyLmNwcAppbmRleCA2ZGZmZjQ3YjdlMmNiODliNTRmOTVlYzQ2MjdkM2Q3
Y2U2OTBmOTBiLi5jNWQxMzAzOGNmYzY3ZjQ1YTQ2ZTY4YzljYzQ1MjEwNzNkNzZhNTc0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxpY2F0aW9ubWFuaWZlc3QvQXBwbGlj
YXRpb25NYW5pZmVzdFBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBs
aWNhdGlvbm1hbmlmZXN0L0FwcGxpY2F0aW9uTWFuaWZlc3RQYXJzZXIuY3BwCkBAIC0yMzEsNyAr
MjMxLDcgQEAgVmVjdG9yPEFwcGxpY2F0aW9uTWFuaWZlc3Q6Okljb24+IEFwcGxpY2F0aW9uTWFu
aWZlc3RQYXJzZXI6OnBhcnNlSWNvbnMoY29uc3QgSlMKICAgICAgICAgICAgICAgICBjdXJyZW50
SWNvbi5wdXJwb3NlcyA9IHB1cnBvc2VzOwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAg
ICAgICAgICBwdXJwb3NlU3RyaW5nVmFsdWUgPSBwdXJwb3NlU3RyaW5nVmFsdWUuc3RyaXBXaGl0
ZVNwYWNlKCkuY29udmVydFRvQVNDSUlMb3dlcmNhc2UoKTsKLSAgICAgICAgICAgICAgICBWZWN0
b3I8U3RyaW5nPiBrZXl3b3JkcyA9IHB1cnBvc2VTdHJpbmdWYWx1ZS5zcGxpdEFsbG93aW5nRW1w
dHlFbnRyaWVzKCIgIik7CisgICAgICAgICAgICAgICAgVmVjdG9yPFN0cmluZz4ga2V5d29yZHMg
PSBwdXJwb3NlU3RyaW5nVmFsdWUuc3BsaXRBbGxvd2luZ0VtcHR5RW50cmllcygiICJfcyk7CiAK
ICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIGtleXdvcmQgOiBrZXl3b3Jkcykgewog
ICAgICAgICAgICAgICAgICAgICBpZiAoa2V5d29yZCA9PSAibW9ub2Nocm9tZSIpCkBAIC0yODIs
OSArMjgyLDkgQEAgc3RhdGljIGJvb2wgaXNJblNjb3BlKGNvbnN0IFVSTCYgc2NvcGVVUkwsIGNv
bnN0IFVSTCYgdGFyZ2V0VVJMKQogCiBVUkwgQXBwbGljYXRpb25NYW5pZmVzdFBhcnNlcjo6cGFy
c2VTY29wZShjb25zdCBKU09OOjpPYmplY3QmIG1hbmlmZXN0LCBjb25zdCBVUkwmIGRvY3VtZW50
VVJMLCBjb25zdCBVUkwmIHN0YXJ0VVJMKQogewotICAgIFVSTCBkZWZhdWx0U2NvcGUgeyBzdGFy
dFVSTCwgIi4vIiB9OworICAgIFVSTCBkZWZhdWx0U2NvcGUgeyBzdGFydFVSTCwgIi4vIl9zIH07
CiAKLSAgICBhdXRvIHZhbHVlID0gbWFuaWZlc3QuZ2V0VmFsdWUoInNjb3BlIik7CisgICAgYXV0
byB2YWx1ZSA9IG1hbmlmZXN0LmdldFZhbHVlKCJzY29wZSJfcyk7CiAgICAgaWYgKCF2YWx1ZSkK
ICAgICAgICAgcmV0dXJuIGRlZmF1bHRTY29wZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9jYWNoZS9XaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlQ2FjaGVzLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZUNhY2hl
cy5jcHAKaW5kZXggYTE3NDk1ZDc2NTk2NTZmZTJkZDljY2EzZDM3MTEyMjFmZTQ4ZDEwNC4uZGZl
MTg4ZmMwZWZmZGFjMmJlZjBlOWFjZGU5NmMzZWY2MmI4NmE2MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9XaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlQ2FjaGVzLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL1dpbmRvd09yV29ya2VyR2xvYmFs
U2NvcGVDYWNoZXMuY3BwCkBAIC0xMjcsNyArMTI3LDcgQEAgRE9NQ2FjaGVTdG9yYWdlKiBXb3Jr
ZXJHbG9iYWxTY29wZUNhY2hlczo6Y2FjaGVzKCkgY29uc3QKIEV4Y2VwdGlvbk9yPERPTUNhY2hl
U3RvcmFnZSo+IFdpbmRvd09yV29ya2VyR2xvYmFsU2NvcGVDYWNoZXM6OmNhY2hlcyhTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBET01XaW5kb3cmIHdpbmRvdykKIHsKICAgICBpZiAo
ZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpLmlzU2FuZGJveGVkKFNhbmRib3hPcmlnaW4pKQot
ICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgU2VjdXJpdHlFcnJvciwgIkNhY2hlIHN0b3JhZ2Ug
aXMgZGlzYWJsZWQgYmVjYXVzZSB0aGUgY29udGV4dCBpcyBzYW5kYm94ZWQgYW5kIGxhY2tzIHRo
ZSAnYWxsb3ctc2FtZS1vcmlnaW4nIGZsYWciIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBTZWN1cml0eUVycm9yLCAiQ2FjaGUgc3RvcmFnZSBpcyBkaXNhYmxlZCBiZWNhdXNlIHRoZSBj
b250ZXh0IGlzIHNhbmRib3hlZCBhbmQgbGFja3MgdGhlICdhbGxvdy1zYW1lLW9yaWdpbicgZmxh
ZyJfcyB9OwogCiAgICAgaWYgKCF3aW5kb3cuaXNDdXJyZW50bHlEaXNwbGF5ZWRJbkZyYW1lKCkp
CiAgICAgICAgIHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9lbmNyeXB0ZWRtZWRpYS9Jbml0RGF0YVJlZ2lzdHJ5LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvSW5pdERhdGFSZWdpc3RyeS5jcHAKaW5kZXggNmY4ODhl
MTc4NThkZGE2ZDk0NzFlYzFmNmVmNWQwNjZkZjBlNDk5MC4uOGNkYmNhNzdhZjM4MzA3YjJiNGMw
YTRkMjVhMWYwZTkxMWFiYjFkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9l
bmNyeXB0ZWRtZWRpYS9Jbml0RGF0YVJlZ2lzdHJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2VuY3J5cHRlZG1lZGlhL0luaXREYXRhUmVnaXN0cnkuY3BwCkBAIC0xMDUsNyArMTA1
LDcgQEAgc3RhdGljIFJlZlB0cjxGcmFnbWVudGVkU2hhcmVkQnVmZmVyPiBzYW5pdGl6ZUtleWlk
cyhjb25zdCBGcmFnbWVudGVkU2hhcmVkQnVmZmUKICAgICBhdXRvIGtpZHNBcnJheSA9IEpTT046
OkFycmF5OjpjcmVhdGUoKTsKICAgICBmb3IgKGF1dG8mIGJ1ZmZlciA6IGtleUlEQnVmZmVyLnZh
bHVlKCkpCiAgICAgICAgIGtpZHNBcnJheS0+cHVzaFN0cmluZyhiYXNlNjRVUkxFbmNvZGVUb1N0
cmluZyhidWZmZXItPm1ha2VDb250aWd1b3VzKCktPmRhdGEoKSwgYnVmZmVyLT5zaXplKCkpKTsK
LSAgICBvYmplY3QtPnNldEFycmF5KCJraWRzIiwgV1RGTW92ZShraWRzQXJyYXkpKTsKKyAgICBv
YmplY3QtPnNldEFycmF5KCJraWRzIl9zLCBXVEZNb3ZlKGtpZHNBcnJheSkpOwogCiAgICAgQ1N0
cmluZyBqc29uRGF0YSA9IG9iamVjdC0+dG9KU09OU3RyaW5nKCkudXRmOCgpOwogICAgIHJldHVy
biBTaGFyZWRCdWZmZXI6OmNyZWF0ZShqc29uRGF0YS5kYXRhKCksIGpzb25EYXRhLmxlbmd0aCgp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW50cmllc2FwaS9ET01GaWxl
U3lzdGVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW50cmllc2FwaS9ET01GaWxlU3lz
dGVtLmNwcAppbmRleCA5ZjQ4MWRjNjI5YWE3N2E2MGRhNWM1ZWUwNDRhNzM2YmQ0NmQzZDIwLi45
YWNhNjE4YjVkNmM3MmUyNDI0NTk0YjlhMTlkZTFhNGUwNGY5YzhlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2VudHJpZXNhcGkvRE9NRmlsZVN5c3RlbS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9lbnRyaWVzYXBpL0RPTUZpbGVTeXN0ZW0uY3BwCkBAIC01OSw3
ICs1OSw3IEBAIHN0YXRpYyBFeGNlcHRpb25PcjxWZWN0b3I8TGlzdGVkQ2hpbGQ+PiBsaXN0RGly
ZWN0b3J5V2l0aE1ldGFkYXRhKGNvbnN0IFN0cmluZyYKIHsKICAgICBBU1NFUlQoIWlzTWFpblRo
cmVhZCgpKTsKICAgICBpZiAoRmlsZVN5c3RlbTo6ZmlsZVR5cGUoZnVsbFBhdGgpICE9IEZpbGVT
eXN0ZW06OkZpbGVUeXBlOjpEaXJlY3RvcnkpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBO
b3RGb3VuZEVycm9yLCAiUGF0aCBubyBsb25nZXIgZXhpc3RzIG9yIGlzIG5vIGxvbmdlciBhIGRp
cmVjdG9yeSIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdEZvdW5kRXJyb3IsICJQ
YXRoIG5vIGxvbmdlciBleGlzdHMgb3IgaXMgbm8gbG9uZ2VyIGEgZGlyZWN0b3J5Il9zIH07CiAK
ICAgICBhdXRvIGNoaWxkTmFtZXMgPSBGaWxlU3lzdGVtOjpsaXN0RGlyZWN0b3J5KGZ1bGxQYXRo
KTsKICAgICBWZWN0b3I8TGlzdGVkQ2hpbGQ+IGxpc3RlZENoaWxkcmVuOwpAQCAtMTgzLDcgKzE4
Myw3IEBAIHN0YXRpYyBFeGNlcHRpb25PcjxTdHJpbmc+IHZhbGlkYXRlUGF0aElzRXhwZWN0ZWRU
eXBlKGNvbnN0IFN0cmluZyYgZnVsbFBhdGgsIFN0CiAgICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBOb3RGb3VuZEVycm9yLCAiUGF0aCBkb2VzIG5vdCBleGlzdCJfcyB9OwogCiAgICAgaWYgKCpm
aWxlVHlwZSAhPSBleHBlY3RlZFR5cGUpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBl
TWlzbWF0Y2hFcnJvciwgIkVudHJ5IGF0IHBhdGggZG9lcyBub3QgaGF2ZSBleHBlY3RlZCB0eXBl
IiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZU1pc21hdGNoRXJyb3IsICJFbnRy
eSBhdCBwYXRoIGRvZXMgbm90IGhhdmUgZXhwZWN0ZWQgdHlwZSJfcyB9OwogCiAgICAgcmV0dXJu
IFdURk1vdmUodmlydHVhbFBhdGgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9mZXRjaC9GZXRjaEJvZHlDb25zdW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2ZldGNoL0ZldGNoQm9keUNvbnN1bWVyLmNwcAppbmRleCA5MzZhN2U0MzA1NmM0NTVlMjliMjU1
MGZiNDAxMGJlZWVjM2IzNWViLi42ZjZkYzY3Y2MzNGI4ZDQwN2FiZjZkZTQ2NGM1MjljNzQyMzZk
NWYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keUNv
bnN1bWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keUNv
bnN1bWVyLmNwcApAQCAtMTUwLDEwICsxNTAsMTAgQEAgUmVmUHRyPERPTUZvcm1EYXRhPiBGZXRj
aEJvZHlDb25zdW1lcjo6cGFja2FnZUZvcm1EYXRhKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGMK
ICAgICAgICAgICAgIGNvbnRlbnREaXNwb3NpdGlvblBhcmFtZXRlcnNCZWdpbisrOwogCiAgICAg
ICAgIGF1dG8gcGFyYW1ldGVycyA9IHBhcnNlUGFyYW1ldGVycyhTdHJpbmdWaWV3KGhlYWRlciku
c3Vic3RyaW5nKGNvbnRlbnREaXNwb3NpdGlvblBhcmFtZXRlcnNCZWdpbiwgY29udGVudERpc3Bv
c2l0aW9uRW5kIC0gY29udGVudERpc3Bvc2l0aW9uUGFyYW1ldGVyc0JlZ2luKSwgMCk7Ci0gICAg
ICAgIFN0cmluZyBuYW1lID0gcGFyYW1ldGVycy5nZXQoIm5hbWUiKTsKKyAgICAgICAgU3RyaW5n
IG5hbWUgPSBwYXJhbWV0ZXJzLmdldCgibmFtZSJfcyk7CiAgICAgICAgIGlmICghbmFtZSkKICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgU3RyaW5nIGZpbGVuYW1lID0gcGFyYW1l
dGVycy5nZXQoImZpbGVuYW1lIik7CisgICAgICAgIFN0cmluZyBmaWxlbmFtZSA9IHBhcmFtZXRl
cnMuZ2V0KCJmaWxlbmFtZSJfcyk7CiAgICAgICAgIGlmICghZmlsZW5hbWUpCiAgICAgICAgICAg
ICBmb3JtLmFwcGVuZChuYW1lLCBTdHJpbmc6OmZyb21VVEY4KGJvZHlCZWdpbiwgYm9keUxlbmd0
aCkpOwogICAgICAgICBlbHNlIHsKQEAgLTE3Niw3ICsxNzYsNyBAQCBSZWZQdHI8RE9NRm9ybURh
dGE+IEZldGNoQm9keUNvbnN1bWVyOjpwYWNrYWdlRm9ybURhdGEoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogYwogICAgICAgICBpZiAoIW1pbWVUeXBlKQogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKICAgICAgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobWltZVR5cGUtPnR5
cGUsICJtdWx0aXBhcnQiKSAmJiBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG1pbWVUeXBlLT5zdWJ0
eXBlLCAiZm9ybS1kYXRhIikpIHsKLSAgICAgICAgICAgIGF1dG8gaXRlcmF0b3IgPSBtaW1lVHlw
ZS0+cGFyYW1ldGVycy5maW5kKCJib3VuZGFyeSIpOworICAgICAgICAgICAgYXV0byBpdGVyYXRv
ciA9IG1pbWVUeXBlLT5wYXJhbWV0ZXJzLmZpbmQoImJvdW5kYXJ5Il9zKTsKICAgICAgICAgICAg
IGlmIChpdGVyYXRvciAhPSBtaW1lVHlwZS0+cGFyYW1ldGVycy5lbmQoKSkKICAgICAgICAgICAg
ICAgICByZXR1cm4gaXRlcmF0b3ItPnZhbHVlOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoSGVhZGVycy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2ZldGNoL0ZldGNoSGVhZGVycy5jcHAKaW5kZXggMDkwZjVjZjRkMGZmMTE1ZDg0
YmY3MzNiN2E3YjE1YjM0ZjJlM2E1Zi4uMjZhZjA4ZjFhZDVlMTRjYmQxYWVkNzRlZmRlYTNmMWFk
MzhiZTYxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEhl
YWRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hIZWFkZXJz
LmNwcApAQCAtMTAyLDcgKzEwMiw3IEBAIHN0YXRpYyBFeGNlcHRpb25Pcjx2b2lkPiBmaWxsSGVh
ZGVyTWFwKEhUVFBIZWFkZXJNYXAmIGhlYWRlcnMsIGNvbnN0IEZldGNoSGVhZGVyCiAgICAgICAg
IGF1dG8mIHNlcXVlbmNlID0gc3RkOjpnZXQ8VmVjdG9yPFZlY3RvcjxTdHJpbmc+Pj4oaGVhZGVy
c0luaXQpOwogICAgICAgICBmb3IgKGF1dG8mIGhlYWRlciA6IHNlcXVlbmNlKSB7CiAgICAgICAg
ICAgICBpZiAoaGVhZGVyLnNpemUoKSAhPSAyKQotICAgICAgICAgICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBUeXBlRXJyb3IsICJIZWFkZXIgc3ViLXNlcXVlbmNlIG11c3QgY29udGFpbiBleGFj
dGx5IHR3byBpdGVtcyIgfTsKKyAgICAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlw
ZUVycm9yLCAiSGVhZGVyIHN1Yi1zZXF1ZW5jZSBtdXN0IGNvbnRhaW4gZXhhY3RseSB0d28gaXRl
bXMiX3MgfTsKICAgICAgICAgICAgIGF1dG8gcmVzdWx0ID0gYXBwZW5kVG9IZWFkZXJNYXAoaGVh
ZGVyWzBdLCBoZWFkZXJbMV0sIGhlYWRlcnMsIGd1YXJkKTsKICAgICAgICAgICAgIGlmIChyZXN1
bHQuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNl
RXhjZXB0aW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0Zl
dGNoTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hMb2FkZXIu
Y3BwCmluZGV4IDdjZWEzMmE5NThmMTRiZDhjODc4YmM1MWY0OWMxZDFhZGE2ZDZhMzcuLmY3NDMz
OGU4ZDMyMjI3MGEzODBmMjQ5YTY0MmU0ZWEwZjkyMjg2ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmV0Y2gvRmV0Y2hMb2FkZXIuY3BwCkBAIC02OSw3ICs2OSw3IEBAIHZvaWQgRmV0
Y2hMb2FkZXI6OnN0YXJ0TG9hZGluZ0Jsb2JVUkwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29u
dGV4dCwgY29uc3QgVVJMCiAKICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChtX3VybEZvclJl
YWRpbmcpOwogICAgIHJlcXVlc3Quc2V0SW5pdGlhdG9ySWRlbnRpZmllcihjb250ZXh0LnJlc291
cmNlUmVxdWVzdElkZW50aWZpZXIoKSk7Ci0gICAgcmVxdWVzdC5zZXRIVFRQTWV0aG9kKCJHRVQi
KTsKKyAgICByZXF1ZXN0LnNldEhUVFBNZXRob2QoIkdFVCJfcyk7CiAKICAgICBUaHJlYWRhYmxl
TG9hZGVyT3B0aW9ucyBvcHRpb25zOwogICAgIG9wdGlvbnMuc2VuZExvYWRDYWxsYmFja3MgPSBT
ZW5kQ2FsbGJhY2tQb2xpY3k6OlNlbmRDYWxsYmFja3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFu
ZGxlLmNwcAppbmRleCAwZTk1ZmZkZWU0YWY4NTRlODdlMjUzYTljZGU4NjM0MmY1YTJlZGY4Li5h
YTMyYTliYjIyZmI0YmJmOTNiYWRkNjFkMTI4OGJiZjkwOGQzZDVmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lz
dGVtRmlsZUhhbmRsZS5jcHAKQEAgLTU1LDcgKzU1LDcgQEAgRmlsZVN5c3RlbUZpbGVIYW5kbGU6
OkZpbGVTeXN0ZW1GaWxlSGFuZGxlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFN0
cmkKIHZvaWQgRmlsZVN5c3RlbUZpbGVIYW5kbGU6OmdldEZpbGUoRE9NUHJvbWlzZURlZmVycmVk
PElETEludGVyZmFjZTxGaWxlPj4mJiBwcm9taXNlKQogewogICAgIGlmIChpc0Nsb3NlZCgpKQot
ICAgICAgICByZXR1cm4gcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJy
b3IsICJIYW5kbGUgaXMgY2xvc2VkIiB9KTsKKyAgICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0
KEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiSGFuZGxlIGlzIGNsb3NlZCJfcyB9KTsK
IAogICAgIGNvbm5lY3Rpb24oKS5nZXRGaWxlKGlkZW50aWZpZXIoKSwgW3Byb3RlY3RlZFRoaXMg
PSBSZWYgeyAqdGhpcyB9LCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQp
IG11dGFibGUgewogICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQpAQCAtNzIsNyAr
NzIsNyBAQCB2b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpnZXRGaWxlKERPTVByb21pc2VEZWZl
cnJlZDxJRExJbnRlcmZhY2U8RmlsZT4+JiYgcHJvbQogdm9pZCBGaWxlU3lzdGVtRmlsZUhhbmRs
ZTo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZShET01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNl
PEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlPj4mJiBwcm9taXNlKQogewogICAgIGlmIChpc0Ns
b3NlZCgpKQotICAgICAgICByZXR1cm4gcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxp
ZFN0YXRlRXJyb3IsICJIYW5kbGUgaXMgY2xvc2VkIiB9KTsKKyAgICAgICAgcmV0dXJuIHByb21p
c2UucmVqZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiSGFuZGxlIGlzIGNsb3Nl
ZCJfcyB9KTsKIAogICAgIGNvbm5lY3Rpb24oKS5jcmVhdGVTeW5jQWNjZXNzSGFuZGxlKGlkZW50
aWZpZXIoKSwgW3Byb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9LCBwcm9taXNlID0gV1RGTW92
ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgewogICAgICAgICBpZiAocmVzdWx0Lmhh
c0V4Y2VwdGlvbigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lz
dGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
aWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuY3BwCmluZGV4IDBiOWY3ODhlNDkwM2Zh
N2U3YWU0Mjg5N2EwMDJiOTZlOGRmZTEzZDcuLjllMGNjODc0YjBjNzM0NDU3YzQ5YzRjMzg2ZGFj
MmIzYmY0ZGU1OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5jcHAKQEAgLTYwLDcgKzYwLDcgQEAg
dm9pZCBGaWxlU3lzdGVtSGFuZGxlOjpjbG9zZSgpCiB2b2lkIEZpbGVTeXN0ZW1IYW5kbGU6Omlz
U2FtZUVudHJ5KEZpbGVTeXN0ZW1IYW5kbGUmIGhhbmRsZSwgRE9NUHJvbWlzZURlZmVycmVkPElE
TEJvb2xlYW4+JiYgcHJvbWlzZSkgY29uc3QKIHsKICAgICBpZiAoaXNDbG9zZWQoKSkKLSAgICAg
ICAgcmV0dXJuIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAi
SGFuZGxlIGlzIGNsb3NlZCIgfSk7CisgICAgICAgIHJldHVybiBwcm9taXNlLnJlamVjdChFeGNl
cHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkhhbmRsZSBpcyBjbG9zZWQiX3MgfSk7CiAKICAg
ICBpZiAobV9raW5kICE9IGhhbmRsZS5raW5kKCkgfHwgbV9uYW1lICE9IGhhbmRsZS5uYW1lKCkp
CiAgICAgICAgIHJldHVybiBwcm9taXNlLnJlc29sdmUoZmFsc2UpOwpAQCAtNzMsNyArNzMsNyBA
QCB2b2lkIEZpbGVTeXN0ZW1IYW5kbGU6OmlzU2FtZUVudHJ5KEZpbGVTeXN0ZW1IYW5kbGUmIGhh
bmRsZSwgRE9NUHJvbWlzZURlZmVycmVkPAogdm9pZCBGaWxlU3lzdGVtSGFuZGxlOjptb3ZlKEZp
bGVTeXN0ZW1IYW5kbGUmIGRlc3RpbmF0aW9uSGFuZGxlLCBjb25zdCBTdHJpbmcmIG5ld05hbWUs
IERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCiB7CiAgICAgaWYgKGlzQ2xvc2Vk
KCkpCi0gICAgICAgIHJldHVybiBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3Rh
dGVFcnJvciwgIkhhbmRsZSBpcyBjbG9zZWQiIH0pOworICAgICAgICByZXR1cm4gcHJvbWlzZS5y
ZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJIYW5kbGUgaXMgY2xvc2VkIl9z
IH0pOwogCiAgICAgaWYgKGRlc3RpbmF0aW9uSGFuZGxlLmtpbmQoKSAhPSBLaW5kOjpEaXJlY3Rv
cnkpCiAgICAgICAgIHJldHVybiBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBUeXBlTWlzbWF0
Y2hFcnJvciB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQktleURhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5
RGF0YS5jcHAKaW5kZXggMmEzN2M1MjhlZjViZjlkOTU3NzNhMGIxMGYwMjUyMjliZGU1YTQxOC4u
NDYwZjE3NGEzODFhYjZhYmE0Y2EyOTgzMTQ1MjY5OGI1ZDUyOTBkMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5RGF0YS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5RGF0YS5jcHAKQEAgLTE0OSwzNSArMTQ5
LDM1IEBAIHZvaWQgSURCS2V5RGF0YTo6aXNvbGF0ZWRDb3B5KGNvbnN0IElEQktleURhdGEmIHNv
dXJjZSwgSURCS2V5RGF0YSYgZGVzdGluYXRpb24pCiAKIHZvaWQgSURCS2V5RGF0YTo6ZW5jb2Rl
KEtleWVkRW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyLmVuY29kZUJvb2wo
Im51bGwiLCBtX2lzTnVsbCk7CisgICAgZW5jb2Rlci5lbmNvZGVCb29sKCJudWxsIl9zLCBtX2lz
TnVsbCk7CiAgICAgaWYgKG1faXNOdWxsKQogICAgICAgICByZXR1cm47CiAKLSAgICBlbmNvZGVy
LmVuY29kZUVudW0oInR5cGUiLCBtX3R5cGUpOworICAgIGVuY29kZXIuZW5jb2RlRW51bSgidHlw
ZSJfcywgbV90eXBlKTsKIAogICAgIHN3aXRjaCAobV90eXBlKSB7CiAgICAgY2FzZSBJbmRleGVk
REI6OktleVR5cGU6OkludmFsaWQ6CiAgICAgICAgIHJldHVybjsKICAgICBjYXNlIEluZGV4ZWRE
Qjo6S2V5VHlwZTo6QXJyYXk6IHsKICAgICAgICAgYXV0byYgYXJyYXkgPSBzdGQ6OmdldDxWZWN0
b3I8SURCS2V5RGF0YT4+KG1fdmFsdWUpOwotICAgICAgICBlbmNvZGVyLmVuY29kZU9iamVjdHMo
ImFycmF5IiwgYXJyYXkuYmVnaW4oKSwgYXJyYXkuZW5kKCksIFtdKEtleWVkRW5jb2RlciYgZW5j
b2RlciwgY29uc3QgSURCS2V5RGF0YSYga2V5KSB7CisgICAgICAgIGVuY29kZXIuZW5jb2RlT2Jq
ZWN0cygiYXJyYXkiX3MsIGFycmF5LmJlZ2luKCksIGFycmF5LmVuZCgpLCBbXShLZXllZEVuY29k
ZXImIGVuY29kZXIsIGNvbnN0IElEQktleURhdGEmIGtleSkgewogICAgICAgICAgICAga2V5LmVu
Y29kZShlbmNvZGVyKTsKICAgICAgICAgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAg
Y2FzZSBJbmRleGVkREI6OktleVR5cGU6OkJpbmFyeTogewogICAgICAgICBhdXRvKiBkYXRhID0g
c3RkOjpnZXQ8VGhyZWFkU2FmZURhdGFCdWZmZXI+KG1fdmFsdWUpLmRhdGEoKTsKLSAgICAgICAg
ZW5jb2Rlci5lbmNvZGVCb29sKCJoYXNCaW5hcnkiLCAhIWRhdGEpOworICAgICAgICBlbmNvZGVy
LmVuY29kZUJvb2woImhhc0JpbmFyeSJfcywgISFkYXRhKTsKICAgICAgICAgaWYgKGRhdGEpCi0g
ICAgICAgICAgICBlbmNvZGVyLmVuY29kZUJ5dGVzKCJiaW5hcnkiLCBkYXRhLT5kYXRhKCksIGRh
dGEtPnNpemUoKSk7CisgICAgICAgICAgICBlbmNvZGVyLmVuY29kZUJ5dGVzKCJiaW5hcnkiX3Ms
IGRhdGEtPmRhdGEoKSwgZGF0YS0+c2l6ZSgpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAg
ICBjYXNlIEluZGV4ZWREQjo6S2V5VHlwZTo6U3RyaW5nOgotICAgICAgICBlbmNvZGVyLmVuY29k
ZVN0cmluZygic3RyaW5nIiwgc3RkOjpnZXQ8U3RyaW5nPihtX3ZhbHVlKSk7CisgICAgICAgIGVu
Y29kZXIuZW5jb2RlU3RyaW5nKCJzdHJpbmciX3MsIHN0ZDo6Z2V0PFN0cmluZz4obV92YWx1ZSkp
OwogICAgICAgICByZXR1cm47CiAgICAgY2FzZSBJbmRleGVkREI6OktleVR5cGU6OkRhdGU6CiAg
ICAgY2FzZSBJbmRleGVkREI6OktleVR5cGU6Ok51bWJlcjoKLSAgICAgICAgZW5jb2Rlci5lbmNv
ZGVEb3VibGUoIm51bWJlciIsIHN0ZDo6Z2V0PGRvdWJsZT4obV92YWx1ZSkpOworICAgICAgICBl
bmNvZGVyLmVuY29kZURvdWJsZSgibnVtYmVyIl9zLCBzdGQ6OmdldDxkb3VibGU+KG1fdmFsdWUp
KTsKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgSW5kZXhlZERCOjpLZXlUeXBlOjpNYXg6CiAg
ICAgY2FzZSBJbmRleGVkREI6OktleVR5cGU6Ok1pbjoKQEAgLTE4OSw3ICsxODksNyBAQCB2b2lk
IElEQktleURhdGE6OmVuY29kZShLZXllZEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAKIGJvb2wg
SURCS2V5RGF0YTo6ZGVjb2RlKEtleWVkRGVjb2RlciYgZGVjb2RlciwgSURCS2V5RGF0YSYgcmVz
dWx0KQogewotICAgIGlmICghZGVjb2Rlci5kZWNvZGVCb29sKCJudWxsIiwgcmVzdWx0Lm1faXNO
dWxsKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlQm9vbCgibnVsbCJfcywgcmVzdWx0Lm1faXNO
dWxsKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYgKHJlc3VsdC5tX2lzTnVsbCkK
QEAgLTIwNSw3ICsyMDUsNyBAQCBib29sIElEQktleURhdGE6OmRlY29kZShLZXllZERlY29kZXIm
IGRlY29kZXIsIElEQktleURhdGEmIHJlc3VsdCkKICAgICAgICAgICAgIHx8IHZhbHVlID09IElu
ZGV4ZWREQjo6S2V5VHlwZTo6TnVtYmVyCiAgICAgICAgICAgICB8fCB2YWx1ZSA9PSBJbmRleGVk
REI6OktleVR5cGU6Ok1pbjsKICAgICB9OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGVFbnVtKCJ0
eXBlIiwgcmVzdWx0Lm1fdHlwZSwgZW51bUZ1bmN0aW9uKSkKKyAgICBpZiAoIWRlY29kZXIuZGVj
b2RlRW51bSgidHlwZSJfcywgcmVzdWx0Lm1fdHlwZSwgZW51bUZ1bmN0aW9uKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCiAgICAgaWYgKHJlc3VsdC5tX3R5cGUgPT0gSW5kZXhlZERCOjpLZXlU
eXBlOjpJbnZhbGlkKQpAQCAtMjE5LDI2ICsyMTksMjYgQEAgYm9vbCBJREJLZXlEYXRhOjpkZWNv
ZGUoS2V5ZWREZWNvZGVyJiBkZWNvZGVyLCBJREJLZXlEYXRhJiByZXN1bHQpCiAKICAgICBpZiAo
cmVzdWx0Lm1fdHlwZSA9PSBJbmRleGVkREI6OktleVR5cGU6OlN0cmluZykgewogICAgICAgICBy
ZXN1bHQubV92YWx1ZSA9IFN0cmluZygpOwotICAgICAgICByZXR1cm4gZGVjb2Rlci5kZWNvZGVT
dHJpbmcoInN0cmluZyIsIHN0ZDo6Z2V0PFN0cmluZz4ocmVzdWx0Lm1fdmFsdWUpKTsKKyAgICAg
ICAgcmV0dXJuIGRlY29kZXIuZGVjb2RlU3RyaW5nKCJzdHJpbmciX3MsIHN0ZDo6Z2V0PFN0cmlu
Zz4ocmVzdWx0Lm1fdmFsdWUpKTsKICAgICB9CiAKICAgICBpZiAocmVzdWx0Lm1fdHlwZSA9PSBJ
bmRleGVkREI6OktleVR5cGU6Ok51bWJlciB8fCByZXN1bHQubV90eXBlID09IEluZGV4ZWREQjo6
S2V5VHlwZTo6RGF0ZSkgewogICAgICAgICByZXN1bHQubV92YWx1ZSA9IDAuMDsKLSAgICAgICAg
cmV0dXJuIGRlY29kZXIuZGVjb2RlRG91YmxlKCJudW1iZXIiLCBzdGQ6OmdldDxkb3VibGU+KHJl
c3VsdC5tX3ZhbHVlKSk7CisgICAgICAgIHJldHVybiBkZWNvZGVyLmRlY29kZURvdWJsZSgibnVt
YmVyIl9zLCBzdGQ6OmdldDxkb3VibGU+KHJlc3VsdC5tX3ZhbHVlKSk7CiAgICAgfQogCiAgICAg
aWYgKHJlc3VsdC5tX3R5cGUgPT0gSW5kZXhlZERCOjpLZXlUeXBlOjpCaW5hcnkpIHsKICAgICAg
ICAgcmVzdWx0Lm1fdmFsdWUgPSBUaHJlYWRTYWZlRGF0YUJ1ZmZlcigpOwogCiAgICAgICAgIGJv
b2wgaGFzQmluYXJ5RGF0YTsKLSAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZUJvb2woImhhc0Jp
bmFyeSIsIGhhc0JpbmFyeURhdGEpKQorICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlQm9vbCgi
aGFzQmluYXJ5Il9zLCBoYXNCaW5hcnlEYXRhKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
IAogICAgICAgICBpZiAoIWhhc0JpbmFyeURhdGEpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
IAogICAgICAgICBWZWN0b3I8dWludDhfdD4gYnl0ZXM7Ci0gICAgICAgIGlmICghZGVjb2Rlci5k
ZWNvZGVCeXRlcygiYmluYXJ5IiwgYnl0ZXMpKQorICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
Qnl0ZXMoImJpbmFyeSJfcywgYnl0ZXMpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAg
ICAgICAgIHJlc3VsdC5tX3ZhbHVlID0gVGhyZWFkU2FmZURhdGFCdWZmZXI6OmNyZWF0ZShXVEZN
b3ZlKGJ5dGVzKSk7CkBAIC0yNTIsNyArMjUyLDcgQEAgYm9vbCBJREJLZXlEYXRhOjpkZWNvZGUo
S2V5ZWREZWNvZGVyJiBkZWNvZGVyLCBJREJLZXlEYXRhJiByZXN1bHQpCiAgICAgfTsKICAgICAK
ICAgICByZXN1bHQubV92YWx1ZSA9IFZlY3RvcjxJREJLZXlEYXRhPigpOwotICAgIHJldHVybiBk
ZWNvZGVyLmRlY29kZU9iamVjdHMoImFycmF5Iiwgc3RkOjpnZXQ8VmVjdG9yPElEQktleURhdGE+
PihyZXN1bHQubV92YWx1ZSksIGFycmF5RnVuY3Rpb24pOworICAgIHJldHVybiBkZWNvZGVyLmRl
Y29kZU9iamVjdHMoImFycmF5Il9zLCBzdGQ6OmdldDxWZWN0b3I8SURCS2V5RGF0YT4+KHJlc3Vs
dC5tX3ZhbHVlKSwgYXJyYXlGdW5jdGlvbik7CiB9CiAKIGludCBJREJLZXlEYXRhOjpjb21wYXJl
KGNvbnN0IElEQktleURhdGEmIG90aGVyKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5UmFuZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCS2V5UmFuZ2UuY3BwCmluZGV4IDE0ZjMwM2EwNGMyM2E4YmY0N2Jm
MDY1OWY5Mjg3OTI0Zjk2MTNhZmIuLmRlZjUwNDgxN2FkMDM4MjI0NzRkZDJmNWQxNmQzNjkwYmI5
N2Y0YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktl
eVJhbmdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlS
YW5nZS5jcHAKQEAgLTEzNyw3ICsxMzcsNyBAQCBFeGNlcHRpb25Pcjxib29sPiBJREJLZXlSYW5n
ZTo6aW5jbHVkZXMoSlNDOjpKU0dsb2JhbE9iamVjdCYgc3RhdGUsIEpTQzo6SlNWYWx1ZQogICAg
IGF1dG8ga2V5ID0gc2NyaXB0VmFsdWVUb0lEQktleShzdGF0ZSwga2V5VmFsdWUpOwogICAgIEVY
Q0VQVElPTl9BU1NFUlRfVU5VU0VEKHNjb3BlLCAhc2NvcGUuZXhjZXB0aW9uKCkgfHwgIWtleS0+
aXNWYWxpZCgpKTsKICAgICBpZiAoIWtleS0+aXNWYWxpZCgpKQotICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgRGF0YUVycm9yLCAiRmFpbGVkIHRvIGV4ZWN1dGUgJ2luY2x1ZGVzJyBvbiAnSURC
S2V5UmFuZ2UnOiBUaGUgcGFzc2VkLWluIHZhbHVlIGlzIG5vdCBhIHZhbGlkIEluZGV4ZWREQiBr
ZXkuIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgRGF0YUVycm9yLCAiRmFpbGVkIHRv
IGV4ZWN1dGUgJ2luY2x1ZGVzJyBvbiAnSURCS2V5UmFuZ2UnOiBUaGUgcGFzc2VkLWluIHZhbHVl
IGlzIG5vdCBhIHZhbGlkIEluZGV4ZWREQiBrZXkuIl9zIH07CiAKICAgICBpZiAobV9sb3dlcikg
ewogICAgICAgICBpbnQgY29tcGFyZSA9IG1fbG93ZXItPmNvbXBhcmUoa2V5LmdldCgpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJp
YWxpemF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9J
REJTZXJpYWxpemF0aW9uLmNwcAppbmRleCAyYTJjMWZjMzI5NTgwNWQ1MmZkNTZhZjMwYjQ1NWFl
MmNjY2M0ODc3Li4zM2Q0ZDQxYzkyNzdiZmYyOTcxMzc1MmM4OTFkMmM5MDkxYWQzNWNiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VyaWFs
aXphdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVy
L0lEQlNlcmlhbGl6YXRpb24uY3BwCkBAIC00NSwxNyArNDUsMTcgQEAgUmVmUHRyPFNoYXJlZEJ1
ZmZlcj4gc2VyaWFsaXplSURCS2V5UGF0aChjb25zdCBzdGQ6Om9wdGlvbmFsPElEQktleVBhdGg+
JiBrZXlQYXQKIAogICAgIGlmIChrZXlQYXRoKSB7CiAgICAgICAgIGF1dG8gdmlzaXRvciA9IFdU
Rjo6bWFrZVZpc2l0b3IoWyZdKGNvbnN0IFN0cmluZyYgc3RyaW5nKSB7Ci0gICAgICAgICAgICBl
bmNvZGVyLT5lbmNvZGVFbnVtKCJ0eXBlIiwgS2V5UGF0aFR5cGU6OlN0cmluZyk7Ci0gICAgICAg
ICAgICBlbmNvZGVyLT5lbmNvZGVTdHJpbmcoInN0cmluZyIsIHN0cmluZyk7CisgICAgICAgICAg
ICBlbmNvZGVyLT5lbmNvZGVFbnVtKCJ0eXBlIl9zLCBLZXlQYXRoVHlwZTo6U3RyaW5nKTsKKyAg
ICAgICAgICAgIGVuY29kZXItPmVuY29kZVN0cmluZygic3RyaW5nIl9zLCBzdHJpbmcpOwogICAg
ICAgICB9LCBbJl0oY29uc3QgVmVjdG9yPFN0cmluZz4mIHZlY3RvcikgewotICAgICAgICAgICAg
ZW5jb2Rlci0+ZW5jb2RlRW51bSgidHlwZSIsIEtleVBhdGhUeXBlOjpBcnJheSk7Ci0gICAgICAg
ICAgICBlbmNvZGVyLT5lbmNvZGVPYmplY3RzKCJhcnJheSIsIHZlY3Rvci5iZWdpbigpLCB2ZWN0
b3IuZW5kKCksIFtdKFdlYkNvcmU6OktleWVkRW5jb2RlciYgZW5jb2RlciwgY29uc3QgU3RyaW5n
JiBzdHJpbmcpIHsKLSAgICAgICAgICAgICAgICBlbmNvZGVyLmVuY29kZVN0cmluZygic3RyaW5n
Iiwgc3RyaW5nKTsKKyAgICAgICAgICAgIGVuY29kZXItPmVuY29kZUVudW0oInR5cGUiX3MsIEtl
eVBhdGhUeXBlOjpBcnJheSk7CisgICAgICAgICAgICBlbmNvZGVyLT5lbmNvZGVPYmplY3RzKCJh
cnJheSJfcywgdmVjdG9yLmJlZ2luKCksIHZlY3Rvci5lbmQoKSwgW10oV2ViQ29yZTo6S2V5ZWRF
bmNvZGVyJiBlbmNvZGVyLCBjb25zdCBTdHJpbmcmIHN0cmluZykgeworICAgICAgICAgICAgICAg
IGVuY29kZXIuZW5jb2RlU3RyaW5nKCJzdHJpbmciX3MsIHN0cmluZyk7CiAgICAgICAgICAgICB9
KTsKICAgICAgICAgfSk7CiAgICAgICAgIHN0ZDo6dmlzaXQodmlzaXRvciwga2V5UGF0aC52YWx1
ZSgpKTsKICAgICB9IGVsc2UKLSAgICAgICAgZW5jb2Rlci0+ZW5jb2RlRW51bSgidHlwZSIsIEtl
eVBhdGhUeXBlOjpOdWxsKTsKKyAgICAgICAgZW5jb2Rlci0+ZW5jb2RlRW51bSgidHlwZSJfcywg
S2V5UGF0aFR5cGU6Ok51bGwpOwogCiAgICAgcmV0dXJuIGVuY29kZXItPmZpbmlzaEVuY29kaW5n
KCk7CiB9CkBAIC02OCw3ICs2OCw3IEBAIGJvb2wgZGVzZXJpYWxpemVJREJLZXlQYXRoKGNvbnN0
IHVpbnQ4X3QqIGRhdGEsIHNpemVfdCBzaXplLCBzdGQ6Om9wdGlvbmFsPElEQktlCiAgICAgYXV0
byBkZWNvZGVyID0gS2V5ZWREZWNvZGVyOjpkZWNvZGVyKGRhdGEsIHNpemUpOwogCiAgICAgS2V5
UGF0aFR5cGUgdHlwZTsKLSAgICBib29sIHN1Y2NlZWRlZCA9IGRlY29kZXItPmRlY29kZUVudW0o
InR5cGUiLCB0eXBlLCBbXShLZXlQYXRoVHlwZSB2YWx1ZSkgeworICAgIGJvb2wgc3VjY2VlZGVk
ID0gZGVjb2Rlci0+ZGVjb2RlRW51bSgidHlwZSJfcywgdHlwZSwgW10oS2V5UGF0aFR5cGUgdmFs
dWUpIHsKICAgICAgICAgcmV0dXJuIHZhbHVlID09IEtleVBhdGhUeXBlOjpOdWxsIHx8IHZhbHVl
ID09IEtleVBhdGhUeXBlOjpTdHJpbmcgfHwgdmFsdWUgPT0gS2V5UGF0aFR5cGU6OkFycmF5Owog
ICAgIH0pOwogICAgIGlmICghc3VjY2VlZGVkKQpAQCAtNzksMTUgKzc5LDE1IEBAIGJvb2wgZGVz
ZXJpYWxpemVJREJLZXlQYXRoKGNvbnN0IHVpbnQ4X3QqIGRhdGEsIHNpemVfdCBzaXplLCBzdGQ6
Om9wdGlvbmFsPElEQktlCiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgS2V5UGF0aFR5cGU6OlN0
cmluZzogewogICAgICAgICBTdHJpbmcgc3RyaW5nOwotICAgICAgICBpZiAoIWRlY29kZXItPmRl
Y29kZVN0cmluZygic3RyaW5nIiwgc3RyaW5nKSkKKyAgICAgICAgaWYgKCFkZWNvZGVyLT5kZWNv
ZGVTdHJpbmcoInN0cmluZyJfcywgc3RyaW5nKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICAgICAgcmVzdWx0ID0gSURCS2V5UGF0aChXVEZNb3ZlKHN0cmluZykpOwogICAgICAgICBi
cmVhazsKICAgICB9CiAgICAgY2FzZSBLZXlQYXRoVHlwZTo6QXJyYXk6IHsKICAgICAgICAgVmVj
dG9yPFN0cmluZz4gdmVjdG9yOwotICAgICAgICBzdWNjZWVkZWQgPSBkZWNvZGVyLT5kZWNvZGVP
YmplY3RzKCJhcnJheSIsIHZlY3RvciwgW10oS2V5ZWREZWNvZGVyJiBkZWNvZGVyLCBTdHJpbmcm
IHJlc3VsdCkgewotICAgICAgICAgICAgcmV0dXJuIGRlY29kZXIuZGVjb2RlU3RyaW5nKCJzdHJp
bmciLCByZXN1bHQpOworICAgICAgICBzdWNjZWVkZWQgPSBkZWNvZGVyLT5kZWNvZGVPYmplY3Rz
KCJhcnJheSJfcywgdmVjdG9yLCBbXShLZXllZERlY29kZXImIGRlY29kZXIsIFN0cmluZyYgcmVz
dWx0KSB7CisgICAgICAgICAgICByZXR1cm4gZGVjb2Rlci5kZWNvZGVTdHJpbmcoInN0cmluZyJf
cywgcmVzdWx0KTsKICAgICAgICAgfSk7CiAgICAgICAgIGlmICghc3VjY2VlZGVkKQogICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmNwcAppbmRleCBlODk4N2E2OTFmZTIzYTY4ZTMyOTIz
YThhNGEwZDVhZmFjMDk1NmI3Li4xZmUzZDEwZjg3MDZlNzk3ZTg3YmE5MjVjNzUwZjAxZDAxM2Y4
ZGI1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIv
SURCU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2
ZXIvSURCU2VydmVyLmNwcApAQCAtNTY2LDggKzU2Niw4IEBAIEhhc2hTZXQ8U2VjdXJpdHlPcmln
aW5EYXRhPiBJREJTZXJ2ZXI6OmdldE9yaWdpbnMoKSBjb25zdAogICAgICAgICByZXR1cm4geyB9
OwogCiAgICAgSGFzaFNldDxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+IHNlY3VyaXR5T3Jp
Z2luczsKLSAgICBjb2xsZWN0T3JpZ2luc0ZvclZlcnNpb24oRmlsZVN5c3RlbTo6cGF0aEJ5QXBw
ZW5kaW5nQ29tcG9uZW50KG1fZGF0YWJhc2VEaXJlY3RvcnlQYXRoLCAidjAiKSwgc2VjdXJpdHlP
cmlnaW5zKTsKLSAgICBjb2xsZWN0T3JpZ2luc0ZvclZlcnNpb24oRmlsZVN5c3RlbTo6cGF0aEJ5
QXBwZW5kaW5nQ29tcG9uZW50KG1fZGF0YWJhc2VEaXJlY3RvcnlQYXRoLCAidjEiKSwgc2VjdXJp
dHlPcmlnaW5zKTsKKyAgICBjb2xsZWN0T3JpZ2luc0ZvclZlcnNpb24oRmlsZVN5c3RlbTo6cGF0
aEJ5QXBwZW5kaW5nQ29tcG9uZW50KG1fZGF0YWJhc2VEaXJlY3RvcnlQYXRoLCAidjAiX3MpLCBz
ZWN1cml0eU9yaWdpbnMpOworICAgIGNvbGxlY3RPcmlnaW5zRm9yVmVyc2lvbihGaWxlU3lzdGVt
OjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQobV9kYXRhYmFzZURpcmVjdG9yeVBhdGgsICJ2MSJf
cyksIHNlY3VyaXR5T3JpZ2lucyk7CiAKICAgICByZXR1cm4gc2VjdXJpdHlPcmlnaW5zOwogfQpA
QCAtNTg4LDggKzU4OCw4IEBAIHZvaWQgSURCU2VydmVyOjpjbG9zZUFuZERlbGV0ZURhdGFiYXNl
c01vZGlmaWVkU2luY2UoV2FsbFRpbWUgbW9kaWZpY2F0aW9uVGltZSkKICAgICBtX3VuaXF1ZUlE
QkRhdGFiYXNlTWFwLmNsZWFyKCk7CiAKICAgICBpZiAoIW1fZGF0YWJhc2VEaXJlY3RvcnlQYXRo
LmlzRW1wdHkoKSkgewotICAgICAgICByZW1vdmVEYXRhYmFzZXNNb2RpZmllZFNpbmNlRm9yVmVy
c2lvbihtb2RpZmljYXRpb25UaW1lLCAidjAiKTsKLSAgICAgICAgcmVtb3ZlRGF0YWJhc2VzTW9k
aWZpZWRTaW5jZUZvclZlcnNpb24obW9kaWZpY2F0aW9uVGltZSwgInYxIik7CisgICAgICAgIHJl
bW92ZURhdGFiYXNlc01vZGlmaWVkU2luY2VGb3JWZXJzaW9uKG1vZGlmaWNhdGlvblRpbWUsICJ2
MCJfcyk7CisgICAgICAgIHJlbW92ZURhdGFiYXNlc01vZGlmaWVkU2luY2VGb3JWZXJzaW9uKG1v
ZGlmaWNhdGlvblRpbWUsICJ2MSJfcyk7CiAgICAgfQogfQogCkBAIC02MjQsOCArNjI0LDggQEAg
dm9pZCBJREJTZXJ2ZXI6OmNsb3NlQW5kRGVsZXRlRGF0YWJhc2VzRm9yT3JpZ2lucyhjb25zdCBW
ZWN0b3I8U2VjdXJpdHlPcmlnaW5EYXQKICAgICB9KTsKIAogICAgIGlmICghbV9kYXRhYmFzZURp
cmVjdG9yeVBhdGguaXNFbXB0eSgpKSB7Ci0gICAgICAgIHJlbW92ZURhdGFiYXNlc1dpdGhPcmln
aW5zRm9yVmVyc2lvbihvcmlnaW5zLCAidjAiKTsKLSAgICAgICAgcmVtb3ZlRGF0YWJhc2VzV2l0
aE9yaWdpbnNGb3JWZXJzaW9uKG9yaWdpbnMsICJ2MSIpOworICAgICAgICByZW1vdmVEYXRhYmFz
ZXNXaXRoT3JpZ2luc0ZvclZlcnNpb24ob3JpZ2lucywgInYwIl9zKTsKKyAgICAgICAgcmVtb3Zl
RGF0YWJhc2VzV2l0aE9yaWdpbnNGb3JWZXJzaW9uKG9yaWdpbnMsICJ2MSJfcyk7CiAgICAgfQog
fQogCkBAIC02MzYsNyArNjM2LDcgQEAgc3RhdGljIHZvaWQgcmVtb3ZlQWxsRGF0YWJhc2VzRm9y
RnVsbE9yaWdpblBhdGgoY29uc3QgU3RyaW5nJiBvcmlnaW5QYXRoLCBXYWxsVGkKIAogICAgIGZv
ciAoYXV0byYgZGF0YWJhc2VOYW1lIDogZGF0YWJhc2VOYW1lcykgewogICAgICAgICBhdXRvIGRh
dGFiYXNlUGF0aCA9IEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChvcmlnaW5Q
YXRoLCBkYXRhYmFzZU5hbWUpOwotICAgICAgICBTdHJpbmcgZGF0YWJhc2VGaWxlID0gRmlsZVN5
c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KGRhdGFiYXNlUGF0aCwgIkluZGV4ZWREQi5z
cWxpdGUzIik7CisgICAgICAgIFN0cmluZyBkYXRhYmFzZUZpbGUgPSBGaWxlU3lzdGVtOjpwYXRo
QnlBcHBlbmRpbmdDb21wb25lbnQoZGF0YWJhc2VQYXRoLCAiSW5kZXhlZERCLnNxbGl0ZTMiX3Mp
OwogICAgICAgICBpZiAobW9kaWZpZWRTaW5jZSA+IC1XYWxsVGltZTo6aW5maW5pdHkoKSAmJiBG
aWxlU3lzdGVtOjpmaWxlRXhpc3RzKGRhdGFiYXNlRmlsZSkpIHsKICAgICAgICAgICAgIGF1dG8g
bW9kaWZpY2F0aW9uVGltZSA9IEZpbGVTeXN0ZW06OmZpbGVNb2RpZmljYXRpb25UaW1lKGRhdGFi
YXNlRmlsZSk7CiAgICAgICAgICAgICBpZiAoIW1vZGlmaWNhdGlvblRpbWUpCkBAIC03MzIsNyAr
NzMyLDcgQEAgdm9pZCBJREJTZXJ2ZXI6OnJlbmFtZU9yaWdpbihjb25zdCBXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbkRhdGEmIG9sZE9yaWdpbiwgY29uc3QKICAgICAgICAgcmV0dXJuIGRhdGFiYXNl
T3JpZ2luLnRvcE9yaWdpbiA9PSB0YXJnZXRPcmlnaW47CiAgICAgfSk7CiAKLSAgICBhdXRvIHZl
cnNpb25QYXRoID0gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KG1fZGF0YWJh
c2VEaXJlY3RvcnlQYXRoLCAidjEiKTsKKyAgICBhdXRvIHZlcnNpb25QYXRoID0gRmlsZVN5c3Rl
bTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KG1fZGF0YWJhc2VEaXJlY3RvcnlQYXRoLCAidjEi
X3MpOwogICAgIGF1dG8gb2xkT3JpZ2luUGF0aCA9IEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGlu
Z0NvbXBvbmVudCh2ZXJzaW9uUGF0aCwgb2xkT3JpZ2luLmRhdGFiYXNlSWRlbnRpZmllcigpKTsK
ICAgICBhdXRvIG5ld09yaWdpblBhdGggPSBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21w
b25lbnQodmVyc2lvblBhdGgsIG5ld09yaWdpbi5kYXRhYmFzZUlkZW50aWZpZXIoKSk7CiAgICAg
aWYgKEZpbGVTeXN0ZW06OmZpbGVFeGlzdHMob2xkT3JpZ2luUGF0aCkpCkBAIC03NjgsNyArNzY4
LDcgQEAgdm9pZCBJREJTZXJ2ZXI6OnVwZ3JhZGVGaWxlc0lmTmVjZXNzYXJ5KCkKICAgICBpZiAo
bV9kYXRhYmFzZURpcmVjdG9yeVBhdGguaXNFbXB0eSgpIHx8ICFGaWxlU3lzdGVtOjpmaWxlRXhp
c3RzKG1fZGF0YWJhc2VEaXJlY3RvcnlQYXRoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgU3Ry
aW5nIG5ld1ZlcnNpb25EaXJlY3RvcnkgPSBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21w
b25lbnQobV9kYXRhYmFzZURpcmVjdG9yeVBhdGgsICJ2MSIpOworICAgIFN0cmluZyBuZXdWZXJz
aW9uRGlyZWN0b3J5ID0gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KG1fZGF0
YWJhc2VEaXJlY3RvcnlQYXRoLCAidjEiX3MpOwogICAgIGlmICghRmlsZVN5c3RlbTo6ZmlsZUV4
aXN0cyhuZXdWZXJzaW9uRGlyZWN0b3J5KSkKICAgICAgICAgRmlsZVN5c3RlbTo6bWFrZUFsbERp
cmVjdG9yaWVzKG5ld1ZlcnNpb25EaXJlY3RvcnkpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUlEQkJhY2tpbmdTdG9yZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5SURCQmFja2lu
Z1N0b3JlLmNwcAppbmRleCBkNjMzNTAzMDk5MzA1NWI5YjEyYjc4NDU2NTVkYTgzMzcyYjFhNTUw
Li4xYzI3YWQ2MTc5ZjFiZWFkMGZmMWE2ZGVjZmI5YWUyYjVlOTUzZjljIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5SURCQmFja2luZ1N0
b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVt
b3J5SURCQmFja2luZ1N0b3JlLmNwcApAQCAtNzgsNyArNzgsNyBAQCBJREJFcnJvciBNZW1vcnlJ
REJCYWNraW5nU3RvcmU6OmJlZ2luVHJhbnNhY3Rpb24oY29uc3QgSURCVHJhbnNhY3Rpb25JbmZv
JiBpbmZvKQogICAgIExPRyhJbmRleGVkREIsICJNZW1vcnlJREJCYWNraW5nU3RvcmU6OmJlZ2lu
VHJhbnNhY3Rpb24iKTsKIAogICAgIGlmIChtX3RyYW5zYWN0aW9ucy5jb250YWlucyhpbmZvLmlk
ZW50aWZpZXIoKSkpCi0gICAgICAgIHJldHVybiBJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9y
LCAiQmFja2luZyBzdG9yZSBhc2tlZCB0byBjcmVhdGUgdHJhbnNhY3Rpb24gaXQgYWxyZWFkeSBo
YXMgYSByZWNvcmQgb2YiIH07CisgICAgICAgIHJldHVybiBJREJFcnJvciB7IEludmFsaWRTdGF0
ZUVycm9yLCAiQmFja2luZyBzdG9yZSBhc2tlZCB0byBjcmVhdGUgdHJhbnNhY3Rpb24gaXQgYWxy
ZWFkeSBoYXMgYSByZWNvcmQgb2YiX3MgfTsKIAogICAgIGF1dG8gdHJhbnNhY3Rpb24gPSBNZW1v
cnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbjo6Y3JlYXRlKCp0aGlzLCBpbmZvKTsKIApAQCAtMTA0
LDcgKzEwNCw3IEBAIElEQkVycm9yIE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6YWJvcnRUcmFuc2Fj
dGlvbihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyCiAKICAgICBhdXRvIHRyYW5zYWN0
aW9uID0gbV90cmFuc2FjdGlvbnMudGFrZSh0cmFuc2FjdGlvbklkZW50aWZpZXIpOwogICAgIGlm
ICghdHJhbnNhY3Rpb24pCi0gICAgICAgIHJldHVybiBJREJFcnJvciB7IEludmFsaWRTdGF0ZUVy
cm9yLCAiQmFja2luZyBzdG9yZSBhc2tlZCB0byBhYm9ydCB0cmFuc2FjdGlvbiBpdCBkaWRuJ3Qg
aGF2ZSByZWNvcmQgb2YiIH07CisgICAgICAgIHJldHVybiBJREJFcnJvciB7IEludmFsaWRTdGF0
ZUVycm9yLCAiQmFja2luZyBzdG9yZSBhc2tlZCB0byBhYm9ydCB0cmFuc2FjdGlvbiBpdCBkaWRu
J3QgaGF2ZSByZWNvcmQgb2YiX3MgfTsKIAogICAgIHRyYW5zYWN0aW9uLT5hYm9ydCgpOwogCkBA
IC0xMTcsNyArMTE3LDcgQEAgSURCRXJyb3IgTWVtb3J5SURCQmFja2luZ1N0b3JlOjpjb21taXRU
cmFuc2FjdGlvbihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHQKIAogICAgIGF1dG8gdHJh
bnNhY3Rpb24gPSBtX3RyYW5zYWN0aW9ucy50YWtlKHRyYW5zYWN0aW9uSWRlbnRpZmllcik7CiAg
ICAgaWYgKCF0cmFuc2FjdGlvbikKLSAgICAgICAgcmV0dXJuIElEQkVycm9yIHsgSW52YWxpZFN0
YXRlRXJyb3IsICJCYWNraW5nIHN0b3JlIGFza2VkIHRvIGNvbW1pdCB0cmFuc2FjdGlvbiBpdCBk
aWRuJ3QgaGF2ZSByZWNvcmQgb2YiIH07CisgICAgICAgIHJldHVybiBJREJFcnJvciB7IEludmFs
aWRTdGF0ZUVycm9yLCAiQmFja2luZyBzdG9yZSBhc2tlZCB0byBjb21taXQgdHJhbnNhY3Rpb24g
aXQgZGlkbid0IGhhdmUgcmVjb3JkIG9mIl9zIH07CiAKICAgICB0cmFuc2FjdGlvbi0+Y29tbWl0
KCk7CiAKQEAgLTQ3Myw3ICs0NzMsNyBAQCBJREJFcnJvciBNZW1vcnlJREJCYWNraW5nU3RvcmU6
OmdlbmVyYXRlS2V5TnVtYmVyKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdAogCiAgICAg
a2V5TnVtYmVyID0gb2JqZWN0U3RvcmUtPmN1cnJlbnRLZXlHZW5lcmF0b3JWYWx1ZSgpOwogICAg
IGlmIChrZXlOdW1iZXIgPiBtYXhHZW5lcmF0ZWRLZXlWYWx1ZSkKLSAgICAgICAgcmV0dXJuIElE
QkVycm9yIHsgQ29uc3RyYWludEVycm9yLCAiQ2Fubm90IGdlbmVyYXRlIG5ldyBrZXkgdmFsdWUg
b3ZlciAyXjUzIGZvciBvYmplY3Qgc3RvcmUgb3BlcmF0aW9uIiB9OworICAgICAgICByZXR1cm4g
SURCRXJyb3IgeyBDb25zdHJhaW50RXJyb3IsICJDYW5ub3QgZ2VuZXJhdGUgbmV3IGtleSB2YWx1
ZSBvdmVyIDJeNTMgZm9yIG9iamVjdCBzdG9yZSBvcGVyYXRpb24iX3MgfTsKIAogICAgIG9iamVj
dFN0b3JlLT5zZXRLZXlHZW5lcmF0b3JWYWx1ZShrZXlOdW1iZXIgKyAxKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeU9iamVjdFN0
b3JlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlP
YmplY3RTdG9yZS5jcHAKaW5kZXggN2VmOWQwYTM4N2Y3MjdkODVlYzBkZWVmNmQzY2FlMGRlZDAx
NThjZi4uODkyMzFiNGFlMjQ5NjhlODliMGQ3NTgxMTUxZjUyOGVlM2UyZmI0ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeU9iamVjdFN0
b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVt
b3J5T2JqZWN0U3RvcmUuY3BwCkBAIC0zMTAsNyArMzEwLDcgQEAgSURCRXJyb3IgTWVtb3J5T2Jq
ZWN0U3RvcmU6OnVwZGF0ZUluZGV4ZXNGb3JQdXRSZWNvcmQoY29uc3QgSURCS2V5RGF0YSYga2V5
LCBjb24KICAgICAgICAgYXV0byogaW5kZXggPSBtX2luZGV4ZXNCeUlkZW50aWZpZXIuZ2V0KGlu
ZGV4SUQpOwogICAgICAgICBBU1NFUlQoaW5kZXgpOwogICAgICAgICBpZiAoIWluZGV4KSB7Ci0g
ICAgICAgICAgICBlcnJvciA9IElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJNaXNzaW5n
IGluZGV4IG1ldGFkYXRhIiB9OworICAgICAgICAgICAgZXJyb3IgPSBJREJFcnJvciB7IEludmFs
aWRTdGF0ZUVycm9yLCAiTWlzc2luZyBpbmRleCBtZXRhZGF0YSJfcyB9OwogICAgICAgICAgICAg
YnJlYWs7CiAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmNwcAppbmRl
eCAyZmFmM2U5NWQzMWM5ODlmY2UxMmUwNTdmMDZjMjJlMmZmNzNjNDZlLi5jYmQ0NjI3OTA3ODc3
ODAyZjM4YzZhNGRmYjY2YzFhMjIzMWRiM2NmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0
b3JlLmNwcApAQCAtOTgsMzcgKzk4LDM3IEBAIHN0YXRpYyBpbnQgaWRiS2V5Q29sbGF0ZShpbnQg
YUxlbmd0aCwgY29uc3Qgdm9pZCogYUJ1ZmZlciwgaW50IGJMZW5ndGgsIGNvbnN0IHZvCiAgICAg
cmV0dXJuIGEuY29tcGFyZShiKTsKIH0KIAotc3RhdGljIGNvbnN0IFN0cmluZyB2MVJlY29yZHNU
YWJsZVNjaGVtYShjb25zdCBTdHJpbmcmIHRhYmxlTmFtZSkKK3N0YXRpYyBjb25zdCBTdHJpbmcg
djFSZWNvcmRzVGFibGVTY2hlbWEoQVNDSUlMaXRlcmFsIHRhYmxlTmFtZSkKIHsKICAgICByZXR1
cm4gbWFrZVN0cmluZygiQ1JFQVRFIFRBQkxFICIsIHRhYmxlTmFtZSwgIiAob2JqZWN0U3RvcmVJ
RCBJTlRFR0VSIE5PVCBOVUxMIE9OIENPTkZMSUNUIEZBSUwsIGtleSBURVhUIENPTExBVEUgSURC
S0VZIE5PVCBOVUxMIE9OIENPTkZMSUNUIEZBSUwgVU5JUVVFIE9OIENPTkZMSUNUIFJFUExBQ0Us
IHZhbHVlIE5PVCBOVUxMIE9OIENPTkZMSUNUIEZBSUwpIik7CiB9CiAKIHN0YXRpYyBjb25zdCBT
dHJpbmcmIHYxUmVjb3Jkc1RhYmxlU2NoZW1hKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8U3RyaW5nPiB2MVJlY29yZHNUYWJsZVNjaGVtYVN0cmluZyh2MVJlY29yZHNUYWJsZVNjaGVt
YSgiUmVjb3JkcyIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiB2MVJlY29y
ZHNUYWJsZVNjaGVtYVN0cmluZyh2MVJlY29yZHNUYWJsZVNjaGVtYSgiUmVjb3JkcyJfcykpOwog
ICAgIHJldHVybiB2MVJlY29yZHNUYWJsZVNjaGVtYVN0cmluZzsKIH0KIAogc3RhdGljIGNvbnN0
IFN0cmluZyYgdjFSZWNvcmRzVGFibGVTY2hlbWFBbHRlcm5hdGUoKQogewotICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxTdHJpbmc+IHYxUmVjb3Jkc1RhYmxlU2NoZW1hU3RyaW5nKHYxUmVjb3Jk
c1RhYmxlU2NoZW1hKCJcIlJlY29yZHNcIiIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
U3RyaW5nPiB2MVJlY29yZHNUYWJsZVNjaGVtYVN0cmluZyh2MVJlY29yZHNUYWJsZVNjaGVtYSgi
XCJSZWNvcmRzXCIiX3MpKTsKICAgICByZXR1cm4gdjFSZWNvcmRzVGFibGVTY2hlbWFTdHJpbmc7
CiB9CiAKLXN0YXRpYyBjb25zdCBTdHJpbmcgdjJSZWNvcmRzVGFibGVTY2hlbWEoY29uc3QgU3Ry
aW5nJiB0YWJsZU5hbWUpCitzdGF0aWMgY29uc3QgU3RyaW5nIHYyUmVjb3Jkc1RhYmxlU2NoZW1h
KEFTQ0lJTGl0ZXJhbCB0YWJsZU5hbWUpCiB7CiAgICAgcmV0dXJuIG1ha2VTdHJpbmcoIkNSRUFU
RSBUQUJMRSAiLCB0YWJsZU5hbWUsICIgKG9iamVjdFN0b3JlSUQgSU5URUdFUiBOT1QgTlVMTCBP
TiBDT05GTElDVCBGQUlMLCBrZXkgVEVYVCBDT0xMQVRFIElEQktFWSBOT1QgTlVMTCBPTiBDT05G
TElDVCBGQUlMLCB2YWx1ZSBOT1QgTlVMTCBPTiBDT05GTElDVCBGQUlMKSIpOwogfQogCiBzdGF0
aWMgY29uc3QgU3RyaW5nJiB2MlJlY29yZHNUYWJsZVNjaGVtYSgpCiB7Ci0gICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPFN0cmluZz4gdjJSZWNvcmRzVGFibGVTY2hlbWFTdHJpbmcodjJSZWNvcmRz
VGFibGVTY2hlbWEoIlJlY29yZHMiKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmlu
Zz4gdjJSZWNvcmRzVGFibGVTY2hlbWFTdHJpbmcodjJSZWNvcmRzVGFibGVTY2hlbWEoIlJlY29y
ZHMiX3MpKTsKICAgICByZXR1cm4gdjJSZWNvcmRzVGFibGVTY2hlbWFTdHJpbmc7CiB9CiAKIHN0
YXRpYyBjb25zdCBTdHJpbmcmIHYyUmVjb3Jkc1RhYmxlU2NoZW1hQWx0ZXJuYXRlKCkKIHsKLSAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiB2MlJlY29yZHNUYWJsZVNjaGVtYVN0cmlu
Zyh2MlJlY29yZHNUYWJsZVNjaGVtYSgiXCJSZWNvcmRzXCIiKSk7CisgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPFN0cmluZz4gdjJSZWNvcmRzVGFibGVTY2hlbWFTdHJpbmcodjJSZWNvcmRzVGFi
bGVTY2hlbWEoIlwiUmVjb3Jkc1wiIl9zKSk7CiAgICAgcmV0dXJuIHYyUmVjb3Jkc1RhYmxlU2No
ZW1hU3RyaW5nOwogfQogCkBAIC0xNDcsMzcgKzE0NywzNyBAQCBzdGF0aWMgQVNDSUlMaXRlcmFs
IHYzUmVjb3Jkc1RhYmxlU2NoZW1hVGVtcCgpCiAgICAgcmV0dXJuIFRBQkxFX1NDSEVNQV9QUkVG
SVggIl9UZW1wX1JlY29yZHMiIFYzX1JFQ09SRFNfVEFCTEVfU0NIRU1BX1NVRkZJWDsKIH0KIAot
c3RhdGljIGNvbnN0IFN0cmluZyB2MUluZGV4UmVjb3Jkc1RhYmxlU2NoZW1hKGNvbnN0IFN0cmlu
ZyYgdGFibGVOYW1lKQorc3RhdGljIGNvbnN0IFN0cmluZyB2MUluZGV4UmVjb3Jkc1RhYmxlU2No
ZW1hKEFTQ0lJTGl0ZXJhbCB0YWJsZU5hbWUpCiB7CiAgICAgcmV0dXJuIG1ha2VTdHJpbmcoIkNS
RUFURSBUQUJMRSAiLCB0YWJsZU5hbWUsICIgKGluZGV4SUQgSU5URUdFUiBOT1QgTlVMTCBPTiBD
T05GTElDVCBGQUlMLCBvYmplY3RTdG9yZUlEIElOVEVHRVIgTk9UIE5VTEwgT04gQ09ORkxJQ1Qg
RkFJTCwga2V5IFRFWFQgQ09MTEFURSBJREJLRVkgTk9UIE5VTEwgT04gQ09ORkxJQ1QgRkFJTCwg
dmFsdWUgTk9UIE5VTEwgT04gQ09ORkxJQ1QgRkFJTCkiKTsKIH0KIAogc3RhdGljIGNvbnN0IFN0
cmluZyYgdjFJbmRleFJlY29yZHNUYWJsZVNjaGVtYSgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPFN0cmluZz4gdjFJbmRleFJlY29yZHNUYWJsZVNjaGVtYVN0cmluZyh2MUluZGV4UmVj
b3Jkc1RhYmxlU2NoZW1hKCJJbmRleFJlY29yZHMiKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPFN0cmluZz4gdjFJbmRleFJlY29yZHNUYWJsZVNjaGVtYVN0cmluZyh2MUluZGV4UmVjb3Jk
c1RhYmxlU2NoZW1hKCJJbmRleFJlY29yZHMiX3MpKTsKICAgICByZXR1cm4gdjFJbmRleFJlY29y
ZHNUYWJsZVNjaGVtYVN0cmluZzsKIH0KIAogc3RhdGljIGNvbnN0IFN0cmluZyYgdjFJbmRleFJl
Y29yZHNUYWJsZVNjaGVtYUFsdGVybmF0ZSgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PFN0cmluZz4gdjFJbmRleFJlY29yZHNUYWJsZVNjaGVtYVN0cmluZyh2MUluZGV4UmVjb3Jkc1Rh
YmxlU2NoZW1hKCJcIkluZGV4UmVjb3Jkc1wiIikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxTdHJpbmc+IHYxSW5kZXhSZWNvcmRzVGFibGVTY2hlbWFTdHJpbmcodjFJbmRleFJlY29yZHNU
YWJsZVNjaGVtYSgiXCJJbmRleFJlY29yZHNcIiJfcykpOwogICAgIHJldHVybiB2MUluZGV4UmVj
b3Jkc1RhYmxlU2NoZW1hU3RyaW5nOwogfQogCi1zdGF0aWMgY29uc3QgU3RyaW5nIHYySW5kZXhS
ZWNvcmRzVGFibGVTY2hlbWEoY29uc3QgU3RyaW5nJiB0YWJsZU5hbWUpCitzdGF0aWMgY29uc3Qg
U3RyaW5nIHYySW5kZXhSZWNvcmRzVGFibGVTY2hlbWEoQVNDSUlMaXRlcmFsIHRhYmxlTmFtZSkK
IHsKICAgICByZXR1cm4gbWFrZVN0cmluZygiQ1JFQVRFIFRBQkxFICIsIHRhYmxlTmFtZSwgIiAo
aW5kZXhJRCBJTlRFR0VSIE5PVCBOVUxMIE9OIENPTkZMSUNUIEZBSUwsIG9iamVjdFN0b3JlSUQg
SU5URUdFUiBOT1QgTlVMTCBPTiBDT05GTElDVCBGQUlMLCBrZXkgVEVYVCBDT0xMQVRFIElEQktF
WSBOT1QgTlVMTCBPTiBDT05GTElDVCBGQUlMLCB2YWx1ZSBURVhUIENPTExBVEUgSURCS0VZIE5P
VCBOVUxMIE9OIENPTkZMSUNUIEZBSUwpIik7CiB9CiAKIHN0YXRpYyBjb25zdCBTdHJpbmcmIHYy
SW5kZXhSZWNvcmRzVGFibGVTY2hlbWEoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxT
dHJpbmc+IHYySW5kZXhSZWNvcmRzVGFibGVTY2hlbWFTdHJpbmcodjJJbmRleFJlY29yZHNUYWJs
ZVNjaGVtYSgiSW5kZXhSZWNvcmRzIikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJp
bmc+IHYySW5kZXhSZWNvcmRzVGFibGVTY2hlbWFTdHJpbmcodjJJbmRleFJlY29yZHNUYWJsZVNj
aGVtYSgiSW5kZXhSZWNvcmRzIl9zKSk7CiAgICAgcmV0dXJuIHYySW5kZXhSZWNvcmRzVGFibGVT
Y2hlbWFTdHJpbmc7CiB9CiAKIHN0YXRpYyBjb25zdCBTdHJpbmcmIHYySW5kZXhSZWNvcmRzVGFi
bGVTY2hlbWFBbHRlcm5hdGUoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+
IHYySW5kZXhSZWNvcmRzVGFibGVTY2hlbWFTdHJpbmcodjJJbmRleFJlY29yZHNUYWJsZVNjaGVt
YSgiXCJJbmRleFJlY29yZHNcIiIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5n
PiB2MkluZGV4UmVjb3Jkc1RhYmxlU2NoZW1hU3RyaW5nKHYySW5kZXhSZWNvcmRzVGFibGVTY2hl
bWEoIlwiSW5kZXhSZWNvcmRzXCIiX3MpKTsKICAgICByZXR1cm4gdjJJbmRleFJlY29yZHNUYWJs
ZVNjaGVtYVN0cmluZzsKIH0KIApAQCAtOTE0LDcgKzkxNCw3IEBAIFN0cmluZyBTUUxpdGVJREJC
YWNraW5nU3RvcmU6OmVuY29kZURhdGFiYXNlTmFtZShjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFt
ZSkKIHsKICAgICBBU1NFUlQoIWRhdGFiYXNlTmFtZS5pc0VtcHR5KCkpOwogICAgIGlmIChkYXRh
YmFzZU5hbWUuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gIiUwMCI7CisgICAgICAgIHJldHVy
biAiJTAwIl9zOwogCiAgICAgU3RyaW5nIGZpbGVuYW1lID0gRmlsZVN5c3RlbTo6ZW5jb2RlRm9y
RmlsZU5hbWUoZGF0YWJhc2VOYW1lKTsKICAgICBmaWxlbmFtZS5yZXBsYWNlV2l0aExpdGVyYWwo
Jy4nLCAiJTJFIik7CkBAIC05MzUsNyArOTM1LDcgQEAgU3RyaW5nIFNRTGl0ZUlEQkJhY2tpbmdT
dG9yZTo6ZGVjb2RlRGF0YWJhc2VOYW1lKGNvbnN0IFN0cmluZyYgZW5jb2RlZE5hbWUpCiAKIFN0
cmluZyBTUUxpdGVJREJCYWNraW5nU3RvcmU6OmZ1bGxEYXRhYmFzZVBhdGhGb3JEaXJlY3Rvcnko
Y29uc3QgU3RyaW5nJiBmdWxsRGF0YWJhc2VEaXJlY3RvcnkpCiB7Ci0gICAgcmV0dXJuIEZpbGVT
eXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChmdWxsRGF0YWJhc2VEaXJlY3RvcnksICJJ
bmRleGVkREIuc3FsaXRlMyIpOworICAgIHJldHVybiBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRp
bmdDb21wb25lbnQoZnVsbERhdGFiYXNlRGlyZWN0b3J5LCAiSW5kZXhlZERCLnNxbGl0ZTMiX3Mp
OwogfQogCiBTdHJpbmcgU1FMaXRlSURCQmFja2luZ1N0b3JlOjpmdWxsRGF0YWJhc2VQYXRoKCkg
Y29uc3QKQEAgLTk5Niw3ICs5OTYsNyBAQCBJREJFcnJvciBTUUxpdGVJREJCYWNraW5nU3RvcmU6
OmdldE9yRXN0YWJsaXNoRGF0YWJhc2VJbmZvKElEQkRhdGFiYXNlSW5mbyYgaW5mbwogICAgIG1f
c3FsaXRlREItPmRpc2FibGVUaHJlYWRpbmdDaGVja3MoKTsKICAgICBtX3NxbGl0ZURCLT5lbmFi
bGVBdXRvbWF0aWNXQUxUcnVuY2F0aW9uKCk7CiAKLSAgICBtX3NxbGl0ZURCLT5zZXRDb2xsYXRp
b25GdW5jdGlvbigiSURCS0VZIiwgW10oaW50IGFMZW5ndGgsIGNvbnN0IHZvaWQqIGEsIGludCBi
TGVuZ3RoLCBjb25zdCB2b2lkKiBiKSB7CisgICAgbV9zcWxpdGVEQi0+c2V0Q29sbGF0aW9uRnVu
Y3Rpb24oIklEQktFWSJfcywgW10oaW50IGFMZW5ndGgsIGNvbnN0IHZvaWQqIGEsIGludCBiTGVu
Z3RoLCBjb25zdCB2b2lkKiBiKSB7CiAgICAgICAgIHJldHVybiBpZGJLZXlDb2xsYXRlKGFMZW5n
dGgsIGEsIGJMZW5ndGgsIGIpOwogICAgIH0pOwogCkBAIC0xOTA5LDcgKzE5MDksNyBAQCBJREJF
cnJvciBTUUxpdGVJREJCYWNraW5nU3RvcmU6OnVwZGF0ZUFsbEluZGV4ZXNGb3JBZGRSZWNvcmQo
Y29uc3QgSURCT2JqZWN0U3RvcgogICAgICAgICBBU1NFUlQoaW5kZXhJdGVyYXRvciAhPSBpbmRl
eE1hcC5lbmQoKSk7CiAKICAgICAgICAgaWYgKGluZGV4SXRlcmF0b3IgPT0gaW5kZXhNYXAuZW5k
KCkpIHsKLSAgICAgICAgICAgIGVycm9yID0gSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwg
Ik1pc3NpbmcgaW5kZXggbWV0YWRhdGEiIH07CisgICAgICAgICAgICBlcnJvciA9IElEQkVycm9y
IHsgSW52YWxpZFN0YXRlRXJyb3IsICJNaXNzaW5nIGluZGV4IG1ldGFkYXRhIl9zIH07CiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgfQogCkBAIC0yNTczLDcgKzI1NzMsNyBAQCBJREJFcnJv
ciBTUUxpdGVJREJCYWNraW5nU3RvcmU6OnVuY2hlY2tlZEdldEtleUdlbmVyYXRvclZhbHVlKGlu
dDY0X3Qgb2JqZWN0U3RvcgogCiAgICAgaW50NjRfdCB2YWx1ZSA9IHNxbC0+Y29sdW1uSW50NjQo
MCk7CiAgICAgaWYgKHZhbHVlIDwgMCkKLSAgICAgICAgcmV0dXJuIElEQkVycm9yIHsgQ29uc3Ry
YWludEVycm9yLCAiQ3VycmVudCBrZXkgZ2VuZXJhdG9yIHZhbHVlIGZyb20gZGF0YWJhc2UgaXMg
aW52YWxpZCIgfTsKKyAgICAgICAgcmV0dXJuIElEQkVycm9yIHsgQ29uc3RyYWludEVycm9yLCAi
Q3VycmVudCBrZXkgZ2VuZXJhdG9yIHZhbHVlIGZyb20gZGF0YWJhc2UgaXMgaW52YWxpZCJfcyB9
OwogCiAgICAgb3V0VmFsdWUgPSB2YWx1ZTsKICAgICByZXR1cm4gSURCRXJyb3IgeyB9OwpAQCAt
MjU4Nyw3ICsyNTg3LDcgQEAgSURCRXJyb3IgU1FMaXRlSURCQmFja2luZ1N0b3JlOjp1bmNoZWNr
ZWRTZXRLZXlHZW5lcmF0b3JWYWx1ZShpbnQ2NF90IG9iamVjdFN0b3IKICAgICAgICAgfHwgc3Fs
LT5iaW5kSW50NjQoMiwgdmFsdWUpICE9IFNRTElURV9PSwogICAgICAgICB8fCBzcWwtPnN0ZXAo
KSAhPSBTUUxJVEVfRE9ORSkgewogICAgICAgICBMT0dfRVJST1IoIkNvdWxkIG5vdCB1cGRhdGUg
a2V5IGdlbmVyYXRvciB2YWx1ZSAoJWkpIC0gJXMiLCBtX3NxbGl0ZURCLT5sYXN0RXJyb3IoKSwg
bV9zcWxpdGVEQi0+bGFzdEVycm9yTXNnKCkpOwotICAgICAgICByZXR1cm4gSURCRXJyb3IgeyBD
b25zdHJhaW50RXJyb3IsICJFcnJvciBzdG9yaW5nIG5ldyBrZXkgZ2VuZXJhdG9yIHZhbHVlIGlu
IGRhdGFiYXNlIiB9OworICAgICAgICByZXR1cm4gSURCRXJyb3IgeyBDb25zdHJhaW50RXJyb3Is
ICJFcnJvciBzdG9yaW5nIG5ldyBrZXkgZ2VuZXJhdG9yIHZhbHVlIGluIGRhdGFiYXNlIl9zIH07
CiAgICAgfQogCiAgICAgcmV0dXJuIElEQkVycm9yIHsgfTsKQEAgLTI2MTUsNyArMjYxNSw3IEBA
IElEQkVycm9yIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6Z2VuZXJhdGVLZXlOdW1iZXIoY29uc3Qg
SURCUmVzb3VyY2VJZGVudGlmaWVyJiB0CiAgICAgICAgIHJldHVybiBlcnJvcjsKIAogICAgIGlm
IChjdXJyZW50VmFsdWUgKyAxID4gbWF4R2VuZXJhdG9yVmFsdWUpCi0gICAgICAgIHJldHVybiBJ
REJFcnJvciB7IENvbnN0cmFpbnRFcnJvciwgIkNhbm5vdCBnZW5lcmF0ZSBuZXcga2V5IHZhbHVl
IG92ZXIgMl41MyBmb3Igb2JqZWN0IHN0b3JlIG9wZXJhdGlvbiIgfTsKKyAgICAgICAgcmV0dXJu
IElEQkVycm9yIHsgQ29uc3RyYWludEVycm9yLCAiQ2Fubm90IGdlbmVyYXRlIG5ldyBrZXkgdmFs
dWUgb3ZlciAyXjUzIGZvciBvYmplY3Qgc3RvcmUgb3BlcmF0aW9uIl9zIH07CiAKICAgICBnZW5l
cmF0ZWRLZXkgPSBjdXJyZW50VmFsdWUgKyAxOwogICAgIHJldHVybiB1bmNoZWNrZWRTZXRLZXlH
ZW5lcmF0b3JWYWx1ZShvYmplY3RTdG9yZUlELCBnZW5lcmF0ZWRLZXkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJE
YXRhYmFzZS5jcHAKaW5kZXggMjNlNmQzZjVjOGJjNjM3NmMzMGM2NWM0ZjY3MmVlNjRjM2ZhZjZm
MS4uNzRhZGVlZTNlMzFhYWFkMmQzZDk1YzI4NTVkNTA4YjhhNTc2ZDBiMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVl
SURCRGF0YWJhc2UuY3BwCkBAIC01ODksNyArNTg5LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFz
ZTo6Y3JlYXRlT2JqZWN0U3RvcmUoVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbiYgdHJhbnNh
Y3QKICAgICAgICAgYXV0byB0YXNrU2l6ZSA9IGRlZmF1bHRXcml0ZU9wZXJhdGlvbkNvc3QgKyBl
c3RpbWF0ZVNpemUoaW5mbyk7CiAgICAgICAgIG1fbWFuYWdlci0+cmVxdWVzdFNwYWNlKG1faWRl
bnRpZmllci5vcmlnaW4oKSwgdGFza1NpemUsIFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAq
dGhpcyB9LCB3ZWFrVHJhbnNhY3Rpb24gPSBXZWFrUHRyIHsgdHJhbnNhY3Rpb24gfSwgaW5mbywg
Y2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oYm9vbCBncmFudGVkKSBtdXRhYmxlIHsKICAg
ICAgICAgICAgIGlmICghd2Vha1RoaXMgfHwgIXdlYWtUcmFuc2FjdGlvbikKLSAgICAgICAgICAg
ICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkRhdGFi
YXNlIG9yIHRyYW5zYWN0aW9uIGlzIGNsb3NlZCIgfSk7CisgICAgICAgICAgICAgICAgcmV0dXJu
IGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBvciB0cmFu
c2FjdGlvbiBpcyBjbG9zZWQiX3MgfSk7CiAgICAgICAgICAgICBjcmVhdGVPYmplY3RTdG9yZSgq
d2Vha1RyYW5zYWN0aW9uLCBpbmZvLCBXVEZNb3ZlKGNhbGxiYWNrKSwgZ3JhbnRlZCA/IFNwYWNl
Q2hlY2tSZXN1bHQ6OlBhc3MgOiBTcGFjZUNoZWNrUmVzdWx0OjpGYWlsKTsKICAgICAgICAgfSk7
CiAgICAgICAgIHJldHVybjsKQEAgLTYwMSw3ICs2MDEsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFi
YXNlOjpjcmVhdGVPYmplY3RTdG9yZShVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uJiB0cmFu
c2FjdAogICAgIH0KIAogICAgIGlmICghbV9iYWNraW5nU3RvcmUpCi0gICAgICAgIHJldHVybiBj
YWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiQmFja2luZyBzdG9yZSBoYXMg
Y2xvc2VkIiB9KTsKKyAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0
YXRlRXJyb3IsICJCYWNraW5nIHN0b3JlIGhhcyBjbG9zZWQiX3MgfSk7CiAKICAgICBhdXRvIGVy
cm9yID0gbV9iYWNraW5nU3RvcmUtPmNyZWF0ZU9iamVjdFN0b3JlKHRyYW5zYWN0aW9uLmluZm8o
KS5pZGVudGlmaWVyKCksIGluZm8pOwogICAgIGlmIChlcnJvci5pc051bGwoKSkKQEAgLTYyMSw3
ICs2MjEsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpkZWxldGVPYmplY3RTdG9yZShVbmlx
dWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uJiB0cmFuc2FjdAogCiAgICAgICAgIG1fbWFuYWdlci0+
cmVxdWVzdFNwYWNlKG1faWRlbnRpZmllci5vcmlnaW4oKSwgMCwgW3RoaXMsIHdlYWtUaGlzID0g
V2Vha1B0ciB7ICp0aGlzIH0sIHdlYWtUcmFuc2FjdGlvbiA9IFdlYWtQdHIgeyB0cmFuc2FjdGlv
biB9LCBvYmplY3RTdG9yZU5hbWUsIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKGJvb2wg
Z3JhbnRlZCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAoIXdlYWtUaGlzIHx8ICF3ZWFrVHJh
bnNhY3Rpb24pCi0gICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52
YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBvciB0cmFuc2FjdGlvbiBpcyBjbG9zZWQiIH0pOwor
ICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVy
cm9yLCAiRGF0YWJhc2Ugb3IgdHJhbnNhY3Rpb24gaXMgY2xvc2VkIl9zIH0pOwogCiAgICAgICAg
ICAgICBkZWxldGVPYmplY3RTdG9yZSgqd2Vha1RyYW5zYWN0aW9uLCBvYmplY3RTdG9yZU5hbWUs
IFdURk1vdmUoY2FsbGJhY2spLCBncmFudGVkID8gU3BhY2VDaGVja1Jlc3VsdDo6UGFzcyA6IFNw
YWNlQ2hlY2tSZXN1bHQ6OkZhaWwpOwogICAgICAgICB9KTsKQEAgLTYzNiw3ICs2MzYsNyBAQCB2
b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpkZWxldGVPYmplY3RTdG9yZShVbmlxdWVJREJEYXRhYmFz
ZVRyYW5zYWN0aW9uJiB0cmFuc2FjdAogICAgIH0KIAogICAgIGlmICghbV9iYWNraW5nU3RvcmUp
Ci0gICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAi
QmFja2luZyBzdG9yZSBpcyBjbG9zZWQiIH0pOworICAgICAgICByZXR1cm4gY2FsbGJhY2soSURC
RXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xvc2VkIl9zIH0p
OwogCiAgICAgYXV0byBlcnJvciA9IG1fYmFja2luZ1N0b3JlLT5kZWxldGVPYmplY3RTdG9yZSh0
cmFuc2FjdGlvbi5pbmZvKCkuaWRlbnRpZmllcigpLCBpbmZvLT5pZGVudGlmaWVyKCkpOwogICAg
IGlmIChlcnJvci5pc051bGwoKSkKQEAgLTY1Nyw3ICs2NTcsNyBAQCB2b2lkIFVuaXF1ZUlEQkRh
dGFiYXNlOjpyZW5hbWVPYmplY3RTdG9yZShVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uJiB0
cmFuc2FjdAogICAgICAgICBhdXRvIHRhc2tTaXplID0gZGVmYXVsdFdyaXRlT3BlcmF0aW9uQ29z
dCArIG5ld05hbWUuc2l6ZUluQnl0ZXMoKTsKICAgICAgICAgbV9tYW5hZ2VyLT5yZXF1ZXN0U3Bh
Y2UobV9pZGVudGlmaWVyLm9yaWdpbigpLCB0YXNrU2l6ZSwgW3RoaXMsIHdlYWtUaGlzID0gV2Vh
a1B0ciB7ICp0aGlzIH0sIHdlYWtUcmFuc2FjdGlvbiA9IFdlYWtQdHIgeyB0cmFuc2FjdGlvbiB9
LCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIG5ld05hbWUsIGNhbGxiYWNrID0gV1RGTW92ZShjYWxs
YmFjayldKGJvb2wgZ3JhbnRlZCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAoIXdlYWtUaGlz
IHx8ICF3ZWFrVHJhbnNhY3Rpb24pCi0gICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElE
QkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBvciB0cmFuc2FjdGlvbiBpcyBj
bG9zZWQiIH0pOworICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IElu
dmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJhc2Ugb3IgdHJhbnNhY3Rpb24gaXMgY2xvc2VkIl9zIH0p
OwogCiAgICAgICAgICAgICByZW5hbWVPYmplY3RTdG9yZSgqd2Vha1RyYW5zYWN0aW9uLCBvYmpl
Y3RTdG9yZUlkZW50aWZpZXIsIG5ld05hbWUsIFdURk1vdmUoY2FsbGJhY2spLCBncmFudGVkID8g
U3BhY2VDaGVja1Jlc3VsdDo6UGFzcyA6IFNwYWNlQ2hlY2tSZXN1bHQ6OkZhaWwpOwogICAgICAg
ICB9KTsKQEAgLTY3Niw3ICs2NzYsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpyZW5hbWVP
YmplY3RTdG9yZShVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uJiB0cmFuc2FjdAogICAgIH0K
IAogICAgIGlmICghbV9iYWNraW5nU3RvcmUpCi0gICAgICAgIHJldHVybiBjYWxsYmFjayhJREJF
cnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiQmFja2luZyBzdG9yZSBpcyBjbG9zZWQiIH0pOwor
ICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJh
Y2tpbmcgc3RvcmUgaXMgY2xvc2VkIl9zIH0pOwogCiAgICAgYXV0byBlcnJvciA9IG1fYmFja2lu
Z1N0b3JlLT5yZW5hbWVPYmplY3RTdG9yZSh0cmFuc2FjdGlvbi5pbmZvKCkuaWRlbnRpZmllcigp
LCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIG5ld05hbWUpOwogICAgIGlmIChlcnJvci5pc051bGwo
KSkKQEAgLTY5Niw3ICs2OTYsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpjbGVhck9iamVj
dFN0b3JlKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mIHRyYW5zYWN0aQogCiAgICAgICAg
IG1fbWFuYWdlci0+cmVxdWVzdFNwYWNlKG1faWRlbnRpZmllci5vcmlnaW4oKSwgMCwgW3RoaXMs
IHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHdlYWtUcmFuc2FjdGlvbiA9IFdlYWtQdHIg
eyB0cmFuc2FjdGlvbiB9LCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGNhbGxiYWNrID0gV1RGTW92
ZShjYWxsYmFjayldKGJvb2wgZ3JhbnRlZCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAoIXdl
YWtUaGlzIHx8ICF3ZWFrVHJhbnNhY3Rpb24pCi0gICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxi
YWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBvciB0cmFuc2FjdGlv
biBpcyBjbG9zZWQiIH0pOworICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJv
ciB7IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJhc2Ugb3IgdHJhbnNhY3Rpb24gaXMgY2xvc2Vk
Il9zIH0pOwogCiAgICAgICAgICAgICBjbGVhck9iamVjdFN0b3JlKCp3ZWFrVHJhbnNhY3Rpb24s
IG9iamVjdFN0b3JlSWRlbnRpZmllciwgV1RGTW92ZShjYWxsYmFjayksIGdyYW50ZWQgPyBTcGFj
ZUNoZWNrUmVzdWx0OjpQYXNzIDogU3BhY2VDaGVja1Jlc3VsdDo6RmFpbCk7CiAgICAgICAgIH0p
OwpAQCAtNzA1LDcgKzcwNSw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmNsZWFyT2JqZWN0
U3RvcmUoVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbiYgdHJhbnNhY3RpCiAKICAgICBBU1NF
UlQoc3BhY2VDaGVja1Jlc3VsdCA9PSBTcGFjZUNoZWNrUmVzdWx0OjpQYXNzKTsKICAgICBpZiAo
IW1fYmFja2luZ1N0b3JlKQotICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZh
bGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xvc2VkIiB9KTsKKyAgICAgICAgcmV0
dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3Jl
IGlzIGNsb3NlZCJfcyB9KTsKIAogICAgIGF1dG8gZXJyb3IgPSBtX2JhY2tpbmdTdG9yZS0+Y2xl
YXJPYmplY3RTdG9yZSh0cmFuc2FjdGlvbi5pbmZvKCkuaWRlbnRpZmllcigpLCBvYmplY3RTdG9y
ZUlkZW50aWZpZXIpOwogICAgIGNhbGxiYWNrKGVycm9yKTsKQEAgLTcyMyw3ICs3MjMsNyBAQCB2
b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpjcmVhdGVJbmRleChVbmlxdWVJREJEYXRhYmFzZVRyYW5z
YWN0aW9uJiB0cmFuc2FjdGlvbiwgYwogICAgICAgICBhdXRvIHRhc2tTaXplID0gZGVmYXVsdFdy
aXRlT3BlcmF0aW9uQ29zdCArIGVzdGltYXRlU2l6ZShpbmZvKTsKICAgICAgICAgbV9tYW5hZ2Vy
LT5yZXF1ZXN0U3BhY2UobV9pZGVudGlmaWVyLm9yaWdpbigpLCB0YXNrU2l6ZSwgW3RoaXMsIHdl
YWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHdlYWtUcmFuc2FjdGlvbiA9IFdlYWtQdHIgeyB0
cmFuc2FjdGlvbiB9LCBpbmZvLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXShib29sIGdy
YW50ZWQpIG11dGFibGUgewogICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcyB8fCAhd2Vha1RyYW5z
YWN0aW9uKQotICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFs
aWRTdGF0ZUVycm9yLCAiRGF0YWJhc2Ugb3IgdHJhbnNhY3Rpb24gaXMgY2xvc2VkIiB9KTsKKyAg
ICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJv
ciwgIkRhdGFiYXNlIG9yIHRyYW5zYWN0aW9uIGlzIGNsb3NlZCJfcyB9KTsKIAogICAgICAgICAg
ICAgY3JlYXRlSW5kZXgoKndlYWtUcmFuc2FjdGlvbiwgaW5mbywgV1RGTW92ZShjYWxsYmFjayks
IGdyYW50ZWQgPyBTcGFjZUNoZWNrUmVzdWx0OjpQYXNzIDogU3BhY2VDaGVja1Jlc3VsdDo6RmFp
bCk7CiAgICAgICAgIH0pOwpAQCAtNzM2LDcgKzczNiw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJh
c2U6OmNyZWF0ZUluZGV4KFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9u
LCBjCiAgICAgfQogCiAgICAgaWYgKCFtX2JhY2tpbmdTdG9yZSkKLSAgICAgICAgcmV0dXJuIGNh
bGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3JlIGlzIGNs
b3NlZCIgfSk7CisgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0
ZUVycm9yLCAiQmFja2luZyBzdG9yZSBpcyBjbG9zZWQiX3MgfSk7CiAKICAgICBhdXRvIGVycm9y
ID0gbV9iYWNraW5nU3RvcmUtPmNyZWF0ZUluZGV4KHRyYW5zYWN0aW9uLmluZm8oKS5pZGVudGlm
aWVyKCksIGluZm8pOwogICAgIGlmIChlcnJvci5pc051bGwoKSkgewpAQCAtNzYxLDcgKzc2MSw3
IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmRlbGV0ZUluZGV4KFVuaXF1ZUlEQkRhdGFiYXNl
VHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uLCB1CiAKICAgICAgICAgbV9tYW5hZ2VyLT5yZXF1ZXN0
U3BhY2UobV9pZGVudGlmaWVyLm9yaWdpbigpLCAwLCBbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRy
IHsgKnRoaXMgfSwgd2Vha1RyYW5zYWN0aW9uID0gV2Vha1B0ciB7IHRyYW5zYWN0aW9uIH0sIG9i
amVjdFN0b3JlSWRlbnRpZmllciwgaW5kZXhOYW1lLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJh
Y2spXShib29sIGdyYW50ZWQpIG11dGFibGUgewogICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcyB8
fCAhd2Vha1RyYW5zYWN0aW9uKQotICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJF
cnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJhc2Ugb3IgdHJhbnNhY3Rpb24gaXMgY2xv
c2VkIiB9KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZh
bGlkU3RhdGVFcnJvciwgIkRhdGFiYXNlIG9yIHRyYW5zYWN0aW9uIGlzIGNsb3NlZCJfcyB9KTsK
IAogICAgICAgICAgICAgZGVsZXRlSW5kZXgoKndlYWtUcmFuc2FjdGlvbiwgb2JqZWN0U3RvcmVJ
ZGVudGlmaWVyLCBpbmRleE5hbWUsIFdURk1vdmUoY2FsbGJhY2spLCBncmFudGVkID8gU3BhY2VD
aGVja1Jlc3VsdDo6UGFzcyA6IFNwYWNlQ2hlY2tSZXN1bHQ6OkZhaWwpOwogICAgICAgICB9KTsK
QEAgLTc3MCw3ICs3NzAsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpkZWxldGVJbmRleChV
bmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uJiB0cmFuc2FjdGlvbiwgdQogCiAgICAgQVNTRVJU
KHNwYWNlQ2hlY2tSZXN1bHQgPT0gU3BhY2VDaGVja1Jlc3VsdDo6UGFzcyk7CiAgICAgaWYgKCFt
X2JhY2tpbmdTdG9yZSkKLSAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxp
ZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3JlIGlzIGNsb3NlZCIgfSk7CisgICAgICAgIHJldHVy
biBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiQmFja2luZyBzdG9yZSBp
cyBjbG9zZWQiX3MgfSk7CiAKICAgICBhdXRvKiBvYmplY3RTdG9yZUluZm8gPSBtX2RhdGFiYXNl
SW5mby0+aW5mb0ZvckV4aXN0aW5nT2JqZWN0U3RvcmUob2JqZWN0U3RvcmVJZGVudGlmaWVyKTsK
ICAgICBpZiAoIW9iamVjdFN0b3JlSW5mbykgewpAQCAtODA0LDcgKzgwNCw3IEBAIHZvaWQgVW5p
cXVlSURCRGF0YWJhc2U6OnJlbmFtZUluZGV4KFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24m
IHRyYW5zYWN0aW9uLCB1CiAgICAgICAgIGF1dG8gdGFza1NpemUgPSBkZWZhdWx0V3JpdGVPcGVy
YXRpb25Db3N0ICsgbmV3TmFtZS5zaXplSW5CeXRlcygpOwogICAgICAgICBtX21hbmFnZXItPnJl
cXVlc3RTcGFjZShtX2lkZW50aWZpZXIub3JpZ2luKCksIHRhc2tTaXplLCBbdGhpcywgd2Vha1Ro
aXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgd2Vha1RyYW5zYWN0aW9uID0gV2Vha1B0ciB7IHRyYW5z
YWN0aW9uIH0sIG9iamVjdFN0b3JlSWRlbnRpZmllciwgaW5kZXhJZGVudGlmaWVyLCBuZXdOYW1l
LCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXShib29sIGdyYW50ZWQpIG11dGFibGUgewog
ICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcyB8fCAhd2Vha1RyYW5zYWN0aW9uKQotICAgICAgICAg
ICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0
YWJhc2Ugb3IgdHJhbnNhY3Rpb24gaXMgY2xvc2VkIiB9KTsKKyAgICAgICAgICAgICAgICByZXR1
cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkRhdGFiYXNlIG9yIHRy
YW5zYWN0aW9uIGlzIGNsb3NlZCJfcyB9KTsKIAogICAgICAgICAgICAgcmVuYW1lSW5kZXgoKndl
YWtUcmFuc2FjdGlvbiwgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBpbmRleElkZW50aWZpZXIsIG5l
d05hbWUsIFdURk1vdmUoY2FsbGJhY2spLCBncmFudGVkID8gU3BhY2VDaGVja1Jlc3VsdDo6UGFz
cyA6IFNwYWNlQ2hlY2tSZXN1bHQ6OkZhaWwpOwogICAgICAgICB9KTsKQEAgLTgxNyw3ICs4MTcs
NyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpyZW5hbWVJbmRleChVbmlxdWVJREJEYXRhYmFz
ZVRyYW5zYWN0aW9uJiB0cmFuc2FjdGlvbiwgdQogICAgIH0KIAogICAgIGlmICghbV9iYWNraW5n
U3RvcmUpCi0gICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVy
cm9yLCAiQmFja2luZyBzdG9yZSBpcyBjbG9zZWQiIH0pOworICAgICAgICByZXR1cm4gY2FsbGJh
Y2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xvc2Vk
Il9zIH0pOwogCiAgICAgYXV0byogb2JqZWN0U3RvcmVJbmZvID0gbV9kYXRhYmFzZUluZm8tPmlu
Zm9Gb3JFeGlzdGluZ09iamVjdFN0b3JlKG9iamVjdFN0b3JlSWRlbnRpZmllcik7CiAgICAgaWYg
KCFvYmplY3RTdG9yZUluZm8pIHsKQEAgLTg0Niw3ICs4NDYsNyBAQCB2b2lkIFVuaXF1ZUlEQkRh
dGFiYXNlOjpwdXRPckFkZChjb25zdCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdERhdGEsIGNvbnN0
IElEQktleQogICAgIEFTU0VSVChtX2RhdGFiYXNlSW5mbyk7CiAKICAgICBpZiAoIW1fYmFja2lu
Z1N0b3JlKQotICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVF
cnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xvc2VkIiB9LCBrZXlEYXRhKTsKKyAgICAgICAgcmV0
dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3Jl
IGlzIGNsb3NlZCJfcyB9LCBrZXlEYXRhKTsKIAogICAgIGF1dG8gb2JqZWN0U3RvcmVJZGVudGlm
aWVyID0gcmVxdWVzdERhdGEub2JqZWN0U3RvcmVJZGVudGlmaWVyKCk7CiAgICAgYXV0byogb2Jq
ZWN0U3RvcmVJbmZvID0gbV9iYWNraW5nU3RvcmUtPmluZm9Gb3JPYmplY3RTdG9yZShvYmplY3RT
dG9yZUlkZW50aWZpZXIpOwpAQCAtOTAxLDcgKzkwMSw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJh
c2U6OnB1dE9yQWRkKGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0YSwgY29uc3QgSURC
S2V5CiAgICAgTE9HKEluZGV4ZWREQiwgIlVuaXF1ZUlEQkRhdGFiYXNlOjpwdXRPckFkZCBxdW90
YSBjaGVjayB3aXRoIHRhc2sgc2l6ZTogJSIgUFJJdTY0ICIga2V5IHNpemU6ICUiIFBSSXU2NCAi
IHZhbHVlIHNpemU6ICUiIFBSSXU2NCAiIGluZGV4IHNpemU6ICUiIFBSSXU2NCwgdGFza1NpemUs
IGtleVNpemUsIHZhbHVlU2l6ZSwgaW5kZXhTaXplKTsKICAgICBtX21hbmFnZXItPnJlcXVlc3RT
cGFjZShtX2lkZW50aWZpZXIub3JpZ2luKCksIHRhc2tTaXplLCBbdGhpcywgd2Vha1RoaXMgPSBX
ZWFrUHRyIHsgKnRoaXMgfSwgcmVxdWVzdERhdGEsIHVzZWRLZXksIHZhbHVlLCBvdmVyd3JpdGVN
b2RlLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spLCB1c2VkS2V5SXNHZW5lcmF0ZWQsIGlu
ZGV4S2V5cywgb2JqZWN0U3RvcmVJbmZvID0gKm9iamVjdFN0b3JlSW5mb10oYm9vbCBncmFudGVk
KSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcykKLSAgICAgICAgICAgIHJldHVybiBj
YWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJhc2UgaXMgY2xvc2Vk
IiB9LCB1c2VkS2V5KTsKKyAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IElu
dmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJhc2UgaXMgY2xvc2VkIl9zIH0sIHVzZWRLZXkpOwogCiAg
ICAgICAgIHB1dE9yQWRkQWZ0ZXJTcGFjZUNoZWNrKHJlcXVlc3REYXRhLCB1c2VkS2V5LCB2YWx1
ZSwgb3ZlcndyaXRlTW9kZSwgV1RGTW92ZShjYWxsYmFjayksIHVzZWRLZXlJc0dlbmVyYXRlZCwg
aW5kZXhLZXlzLCBvYmplY3RTdG9yZUluZm8sIGdyYW50ZWQgPyBTcGFjZUNoZWNrUmVzdWx0OjpQ
YXNzIDogU3BhY2VDaGVja1Jlc3VsdDo6RmFpbCk7CiAgICAgfSk7CkBAIC05MTMsNyArOTEzLDcg
QEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6cHV0T3JBZGRBZnRlclNwYWNlQ2hlY2soY29uc3Qg
SURCUmVxdWVzdERhdGEmIHJlcXVlc3REYXQKICAgICBBU1NFUlQobV9kYXRhYmFzZUluZm8pOwog
CiAgICAgaWYgKCFtX2JhY2tpbmdTdG9yZSkKLSAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVy
cm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3JlIGlzIGNsb3NlZCIgfSwga2V5
RGF0YSk7CisgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVy
cm9yLCAiQmFja2luZyBzdG9yZSBpcyBjbG9zZWQiX3MgfSwga2V5RGF0YSk7CiAKICAgICB1aW50
NjRfdCBrZXlOdW1iZXIgPSBpc0tleUdlbmVyYXRlZCA/IGtleURhdGEubnVtYmVyKCkgOiAwOwog
ICAgIGF1dG8gb2JqZWN0U3RvcmVJZGVudGlmaWVyID0gb2JqZWN0U3RvcmVJbmZvLmlkZW50aWZp
ZXIoKTsKQEAgLTk1Myw3ICs5NTMsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpnZXRSZWNv
cmQoY29uc3QgSURCUmVxdWVzdERhdGEmIHJlcXVlc3REYXRhLCBjb25zdCBJREJHZQogCiAgICAg
ICAgIG1fbWFuYWdlci0+cmVxdWVzdFNwYWNlKG1faWRlbnRpZmllci5vcmlnaW4oKSwgMCwgW3Ro
aXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHJlcXVlc3REYXRhLCBnZXRSZWNvcmRE
YXRhLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXShib29sIGdyYW50ZWQpIG11dGFibGUg
ewogICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcykKLSAgICAgICAgICAgICAgICByZXR1cm4gY2Fs
bGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkRhdGFiYXNlIGlzIGNsb3NlZCIg
fSwgSURCR2V0UmVzdWx0IHsgfSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElE
QkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBpcyBjbG9zZWQiX3MgfSwgSURC
R2V0UmVzdWx0IHsgfSk7CiAKICAgICAgICAgICAgIGdldFJlY29yZChyZXF1ZXN0RGF0YSwgZ2V0
UmVjb3JkRGF0YSwgV1RGTW92ZShjYWxsYmFjayksIGdyYW50ZWQgPyBTcGFjZUNoZWNrUmVzdWx0
OjpQYXNzIDogU3BhY2VDaGVja1Jlc3VsdDo6RmFpbCk7CiAgICAgICAgIH0pOwpAQCAtOTYyLDcg
Kzk2Miw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmdldFJlY29yZChjb25zdCBJREJSZXF1
ZXN0RGF0YSYgcmVxdWVzdERhdGEsIGNvbnN0IElEQkdlCiAKICAgICBBU1NFUlQoc3BhY2VDaGVj
a1Jlc3VsdCA9PSBTcGFjZUNoZWNrUmVzdWx0OjpQYXNzKTsKICAgICBpZiAoIW1fYmFja2luZ1N0
b3JlKQotICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJv
ciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xvc2VkIiB9LCBJREJHZXRSZXN1bHQgeyB9KTsKKyAgICAg
ICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5n
IHN0b3JlIGlzIGNsb3NlZCJfcyB9LCBJREJHZXRSZXN1bHQgeyB9KTsKIAogICAgIElEQkdldFJl
c3VsdCByZXN1bHQ7CiAgICAgSURCRXJyb3IgZXJyb3I7CkBAIC05ODYsNyArOTg2LDcgQEAgdm9p
ZCBVbmlxdWVJREJEYXRhYmFzZTo6Z2V0QWxsUmVjb3Jkcyhjb25zdCBJREJSZXF1ZXN0RGF0YSYg
cmVxdWVzdERhdGEsIGNvbnN0IEkKIAogICAgICAgICBtX21hbmFnZXItPnJlcXVlc3RTcGFjZSht
X2lkZW50aWZpZXIub3JpZ2luKCksIDAsIFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhp
cyB9LCByZXF1ZXN0RGF0YSwgZ2V0QWxsUmVjb3Jkc0RhdGEsIGNhbGxiYWNrID0gV1RGTW92ZShj
YWxsYmFjayldKGJvb2wgZ3JhbnRlZCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAoIXdlYWtU
aGlzKQotICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRT
dGF0ZUVycm9yLCAiRGF0YWJhc2UgaXMgY2xvc2VkIiB9LCBJREJHZXRBbGxSZXN1bHQgeyB9KTsK
KyAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVF
cnJvciwgIkRhdGFiYXNlIGlzIGNsb3NlZCJfcyB9LCBJREJHZXRBbGxSZXN1bHQgeyB9KTsKIAog
ICAgICAgICAgICAgZ2V0QWxsUmVjb3JkcyhyZXF1ZXN0RGF0YSwgZ2V0QWxsUmVjb3Jkc0RhdGEs
IFdURk1vdmUoY2FsbGJhY2spLCBncmFudGVkID8gU3BhY2VDaGVja1Jlc3VsdDo6UGFzcyA6IFNw
YWNlQ2hlY2tSZXN1bHQ6OkZhaWwpOwogICAgICAgICB9KTsKQEAgLTk5NSw3ICs5OTUsNyBAQCB2
b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpnZXRBbGxSZWNvcmRzKGNvbnN0IElEQlJlcXVlc3REYXRh
JiByZXF1ZXN0RGF0YSwgY29uc3QgSQogCiAgICAgQVNTRVJUKHNwYWNlQ2hlY2tSZXN1bHQgPT0g
U3BhY2VDaGVja1Jlc3VsdDo6UGFzcyk7CiAgICAgaWYgKCFtX2JhY2tpbmdTdG9yZSkKLSAgICAg
ICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5n
IHN0b3JlIGlzIGNsb3NlZCIgfSwgSURCR2V0QWxsUmVzdWx0IHsgfSk7CisgICAgICAgIHJldHVy
biBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiQmFja2luZyBzdG9yZSBp
cyBjbG9zZWQiX3MgfSwgSURCR2V0QWxsUmVzdWx0IHsgfSk7CiAKICAgICBJREJHZXRBbGxSZXN1
bHQgcmVzdWx0OwogICAgIGF1dG8gZXJyb3IgPSBtX2JhY2tpbmdTdG9yZS0+Z2V0QWxsUmVjb3Jk
cyhyZXF1ZXN0RGF0YS50cmFuc2FjdGlvbklkZW50aWZpZXIoKSwgZ2V0QWxsUmVjb3Jkc0RhdGEs
IHJlc3VsdCk7CkBAIC0xMDE0LDcgKzEwMTQsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpn
ZXRDb3VudChjb25zdCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdERhdGEsIGNvbnN0IElEQktleQog
CiAgICAgICAgIG1fbWFuYWdlci0+cmVxdWVzdFNwYWNlKG1faWRlbnRpZmllci5vcmlnaW4oKSwg
MCwgW3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHJlcXVlc3REYXRhLCByYW5n
ZSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oYm9vbCBncmFudGVkKSBtdXRhYmxlIHsK
ICAgICAgICAgICAgIGlmICghd2Vha1RoaXMpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxi
YWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBpcyBjbG9zZWQiIH0s
IDApOworICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRT
dGF0ZUVycm9yLCAiRGF0YWJhc2UgaXMgY2xvc2VkIl9zIH0sIDApOwogCiAgICAgICAgICAgICBn
ZXRDb3VudChyZXF1ZXN0RGF0YSwgcmFuZ2UsIFdURk1vdmUoY2FsbGJhY2spLCBncmFudGVkID8g
U3BhY2VDaGVja1Jlc3VsdDo6UGFzcyA6IFNwYWNlQ2hlY2tSZXN1bHQ6OkZhaWwpOwogICAgICAg
ICB9KTsKQEAgLTEwMjMsNyArMTAyMyw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmdldENv
dW50KGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0YSwgY29uc3QgSURCS2V5CiAKICAg
ICBBU1NFUlQoc3BhY2VDaGVja1Jlc3VsdCA9PSBTcGFjZUNoZWNrUmVzdWx0OjpQYXNzKTsKICAg
ICBpZiAoIW1fYmFja2luZ1N0b3JlKQotICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3Ig
eyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xvc2VkIiB9LCAwKTsKKyAg
ICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNr
aW5nIHN0b3JlIGlzIGNsb3NlZCJfcyB9LCAwKTsKIAogICAgIHVpbnQ2NF90IGNvdW50ID0gMDsK
ICAgICBhdXRvIGVycm9yID0gbV9iYWNraW5nU3RvcmUtPmdldENvdW50KHJlcXVlc3REYXRhLnRy
YW5zYWN0aW9uSWRlbnRpZmllcigpLCByZXF1ZXN0RGF0YS5vYmplY3RTdG9yZUlkZW50aWZpZXIo
KSwgcmVxdWVzdERhdGEuaW5kZXhJZGVudGlmaWVyKCksIHJhbmdlLCBjb3VudCk7CkBAIC0xMDQy
LDcgKzEwNDIsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpkZWxldGVSZWNvcmQoY29uc3Qg
SURCUmVxdWVzdERhdGEmIHJlcXVlc3REYXRhLCBjb25zdCBJRAogCiAgICAgICAgIG1fbWFuYWdl
ci0+cmVxdWVzdFNwYWNlKG1faWRlbnRpZmllci5vcmlnaW4oKSwgMCwgW3RoaXMsIHdlYWtUaGlz
ID0gV2Vha1B0ciB7ICp0aGlzIH0sIHJlcXVlc3REYXRhLCBrZXlSYW5nZURhdGEsIGNhbGxiYWNr
ID0gV1RGTW92ZShjYWxsYmFjayldKGJvb2wgZ3JhbnRlZCkgbXV0YWJsZSB7CiAgICAgICAgICAg
ICBpZiAoIXdlYWtUaGlzKQotICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJv
ciB7IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJhc2UgaXMgY2xvc2VkIiB9KTsKKyAgICAgICAg
ICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkRh
dGFiYXNlIGlzIGNsb3NlZCJfcyB9KTsKIAogICAgICAgICAgICAgZGVsZXRlUmVjb3JkKHJlcXVl
c3REYXRhLCBrZXlSYW5nZURhdGEsIFdURk1vdmUoY2FsbGJhY2spLCBncmFudGVkID8gU3BhY2VD
aGVja1Jlc3VsdDo6UGFzcyA6IFNwYWNlQ2hlY2tSZXN1bHQ6OkZhaWwpOwogICAgICAgICB9KTsK
QEAgLTEwNTEsNyArMTA1MSw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmRlbGV0ZVJlY29y
ZChjb25zdCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdERhdGEsIGNvbnN0IElECiAKICAgICBBU1NF
UlQoc3BhY2VDaGVja1Jlc3VsdCA9PSBTcGFjZUNoZWNrUmVzdWx0OjpQYXNzKTsKICAgICBpZiAo
IW1fYmFja2luZ1N0b3JlKQotICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZh
bGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xvc2VkIiB9KTsKKyAgICAgICAgcmV0
dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3Jl
IGlzIGNsb3NlZCJfcyB9KTsKIAogICAgIGF1dG8gZXJyb3IgPSBtX2JhY2tpbmdTdG9yZS0+ZGVs
ZXRlUmFuZ2UocmVxdWVzdERhdGEudHJhbnNhY3Rpb25JZGVudGlmaWVyKCksIHJlcXVlc3REYXRh
Lm9iamVjdFN0b3JlSWRlbnRpZmllcigpLCBrZXlSYW5nZURhdGEpOwogCkBAIC0xMDY5LDcgKzEw
NjksNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpvcGVuQ3Vyc29yKGNvbnN0IElEQlJlcXVl
c3REYXRhJiByZXF1ZXN0RGF0YSwgY29uc3QgSURCQwogCiAgICAgICAgIG1fbWFuYWdlci0+cmVx
dWVzdFNwYWNlKG1faWRlbnRpZmllci5vcmlnaW4oKSwgMCwgW3RoaXMsIHdlYWtUaGlzID0gV2Vh
a1B0ciB7ICp0aGlzIH0sIHJlcXVlc3REYXRhLCBpbmZvLCBjYWxsYmFjayA9IFdURk1vdmUoY2Fs
bGJhY2spXShib29sIGdyYW50ZWQpIG11dGFibGUgewogICAgICAgICAgICAgaWYgKCF3ZWFrVGhp
cykKLSAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3Rh
dGVFcnJvciwgIkRhdGFiYXNlIG9yIHRyYW5zYWN0aW9uIGlzIGNsb3NlZCIgfSwgSURCR2V0UmVz
dWx0IHsgfSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52
YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBvciB0cmFuc2FjdGlvbiBpcyBjbG9zZWQiX3MgfSwg
SURCR2V0UmVzdWx0IHsgfSk7CiAKICAgICAgICAgICAgIG9wZW5DdXJzb3IocmVxdWVzdERhdGEs
IGluZm8sIFdURk1vdmUoY2FsbGJhY2spLCBncmFudGVkID8gU3BhY2VDaGVja1Jlc3VsdDo6UGFz
cyA6IFNwYWNlQ2hlY2tSZXN1bHQ6OkZhaWwpOwogICAgICAgICB9KTsKQEAgLTEwNzgsNyArMTA3
OCw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6Om9wZW5DdXJzb3IoY29uc3QgSURCUmVxdWVz
dERhdGEmIHJlcXVlc3REYXRhLCBjb25zdCBJREJDCiAKICAgICBBU1NFUlQoc3BhY2VDaGVja1Jl
c3VsdCA9PSBTcGFjZUNoZWNrUmVzdWx0OjpQYXNzKTsKICAgICBpZiAoIW1fYmFja2luZ1N0b3Jl
KQotICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwg
IkJhY2tpbmcgc3RvcmUgaXMgY2xvc2VkIiB9LCBJREJHZXRSZXN1bHQgeyB9KTsKKyAgICAgICAg
cmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0
b3JlIGlzIGNsb3NlZCJfcyB9LCBJREJHZXRSZXN1bHQgeyB9KTsKIAogICAgIElEQkdldFJlc3Vs
dCByZXN1bHQ7CiAgICAgYXV0byBlcnJvciA9IG1fYmFja2luZ1N0b3JlLT5vcGVuQ3Vyc29yKHJl
cXVlc3REYXRhLnRyYW5zYWN0aW9uSWRlbnRpZmllcigpLCBpbmZvLCByZXN1bHQpOwpAQCAtMTA5
Nyw3ICsxMDk3LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6aXRlcmF0ZUN1cnNvcihjb25z
dCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdERhdGEsIGNvbnN0IEkKIAogICAgICAgICBtX21hbmFn
ZXItPnJlcXVlc3RTcGFjZShtX2lkZW50aWZpZXIub3JpZ2luKCksIDAsIFt0aGlzLCB3ZWFrVGhp
cyA9IFdlYWtQdHIgeyAqdGhpcyB9LCByZXF1ZXN0RGF0YSwgZGF0YSwgY2FsbGJhY2sgPSBXVEZN
b3ZlKGNhbGxiYWNrKV0oYm9vbCBncmFudGVkKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlmICgh
d2Vha1RoaXMpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52
YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBvciB0cmFuc2FjdGlvbiBpcyBjbG9zZWQiIH0sIElE
QkdldFJlc3VsdCB7IH0pOworICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJv
ciB7IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJhc2Ugb3IgdHJhbnNhY3Rpb24gaXMgY2xvc2Vk
Il9zIH0sIElEQkdldFJlc3VsdCB7IH0pOwogCiAgICAgICAgICAgICBpdGVyYXRlQ3Vyc29yKHJl
cXVlc3REYXRhLCBkYXRhLCBXVEZNb3ZlKGNhbGxiYWNrKSwgZ3JhbnRlZCA/IFNwYWNlQ2hlY2tS
ZXN1bHQ6OlBhc3MgOiBTcGFjZUNoZWNrUmVzdWx0OjpGYWlsKTsKICAgICAgICAgfSk7CkBAIC0x
MTA2LDcgKzExMDYsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjppdGVyYXRlQ3Vyc29yKGNv
bnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0YSwgY29uc3QgSQogCiAgICAgQVNTRVJUKHNw
YWNlQ2hlY2tSZXN1bHQgPT0gU3BhY2VDaGVja1Jlc3VsdDo6UGFzcyk7CiAgICAgaWYgKCFtX2Jh
Y2tpbmdTdG9yZSkKLSAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0
YXRlRXJyb3IsICJCYWNraW5nIHN0b3JlIGlzIGNsb3NlZCIgfSwgSURCR2V0UmVzdWx0IHsgfSk7
CisgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAi
QmFja2luZyBzdG9yZSBpcyBjbG9zZWQiX3MgfSwgSURCR2V0UmVzdWx0IHsgfSk7CiAKICAgICBJ
REJHZXRSZXN1bHQgcmVzdWx0OwogICAgIGF1dG8gdHJhbnNhY3Rpb25JZGVudGlmaWVyID0gcmVx
dWVzdERhdGEudHJhbnNhY3Rpb25JZGVudGlmaWVyKCk7CkBAIC0xMTI3LDcgKzExMjcsNyBAQCB2
b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpjb21taXRUcmFuc2FjdGlvbihVbmlxdWVJREJEYXRhYmFz
ZVRyYW5zYWN0aW9uJiB0cmFuc2FjdAogCiAgICAgICAgIG1fbWFuYWdlci0+cmVxdWVzdFNwYWNl
KG1faWRlbnRpZmllci5vcmlnaW4oKSwgMCwgW3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0
aGlzIH0sIHdlYWtUcmFuc2FjdGlvbiA9IFdlYWtQdHIgeyB0cmFuc2FjdGlvbiB9LCBjYWxsYmFj
ayA9IFdURk1vdmUoY2FsbGJhY2spXShib29sIGdyYW50ZWQpIG11dGFibGUgewogICAgICAgICAg
ICAgaWYgKCF3ZWFrVGhpcyB8fCAhd2Vha1RyYW5zYWN0aW9uKQotICAgICAgICAgICAgICAgIHJl
dHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJhc2Ugb3Ig
dHJhbnNhY3Rpb24gaXMgY2xvc2VkIiB9KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJh
Y2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkRhdGFiYXNlIG9yIHRyYW5zYWN0aW9u
IGlzIGNsb3NlZCJfcyB9KTsKIAogICAgICAgICAgICAgY29tbWl0VHJhbnNhY3Rpb24oKndlYWtU
cmFuc2FjdGlvbiwgV1RGTW92ZShjYWxsYmFjayksIGdyYW50ZWQgPyBTcGFjZUNoZWNrUmVzdWx0
OjpQYXNzIDogU3BhY2VDaGVja1Jlc3VsdDo6RmFpbCk7CiAgICAgICAgIH0pOwpAQCAtMTEzOCw3
ICsxMTM4LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6Y29tbWl0VHJhbnNhY3Rpb24oVW5p
cXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbiYgdHJhbnNhY3QKICAgICBBU1NFUlQodHJhbnNhY3Rp
b24uZGF0YWJhc2VDb25uZWN0aW9uKCkuZGF0YWJhc2UoKSA9PSB0aGlzKTsKIAogICAgIGlmICgh
bV9iYWNraW5nU3RvcmUpCi0gICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFs
aWRTdGF0ZUVycm9yLCAiQmFja2luZyBzdG9yZSBpcyBjbG9zZWQiIH0pOworICAgICAgICByZXR1
cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUg
aXMgY2xvc2VkIl9zIH0pOwogCiAgICAgYXV0byB0YWtlblRyYW5zYWN0aW9uID0gbV9pblByb2dy
ZXNzVHJhbnNhY3Rpb25zLnRha2UodHJhbnNhY3Rpb24uaW5mbygpLmlkZW50aWZpZXIoKSk7CiAg
ICAgaWYgKCF0YWtlblRyYW5zYWN0aW9uKSB7CkBAIC0xMTY2LDcgKzExNjYsNyBAQCB2b2lkIFVu
aXF1ZUlEQkRhdGFiYXNlOjphYm9ydFRyYW5zYWN0aW9uKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNh
Y3Rpb24mIHRyYW5zYWN0aQogCiAgICAgICAgIG1fbWFuYWdlci0+cmVxdWVzdFNwYWNlKG1faWRl
bnRpZmllci5vcmlnaW4oKSwgMCwgW3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0s
IHdlYWtUcmFuc2FjdGlvbiA9IFdlYWtQdHIgeyB0cmFuc2FjdGlvbiB9LCBjYWxsYmFjayA9IFdU
Rk1vdmUoY2FsbGJhY2spXShib29sIGdyYW50ZWQpIG11dGFibGUgewogICAgICAgICAgICAgaWYg
KCF3ZWFrVGhpcyB8fCAhd2Vha1RyYW5zYWN0aW9uKQotICAgICAgICAgICAgICAgIHJldHVybiBj
YWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJhc2Ugb3IgdHJhbnNh
Y3Rpb24gaXMgY2xvc2VkIiB9KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soSURC
RXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkRhdGFiYXNlIG9yIHRyYW5zYWN0aW9uIGlzIGNs
b3NlZCJfcyB9KTsKIAogICAgICAgICAgICAgYWJvcnRUcmFuc2FjdGlvbigqd2Vha1RyYW5zYWN0
aW9uLCBXVEZNb3ZlKGNhbGxiYWNrKSwgZ3JhbnRlZCA/IFNwYWNlQ2hlY2tSZXN1bHQ6OlBhc3Mg
OiBTcGFjZUNoZWNrUmVzdWx0OjpGYWlsKTsKICAgICAgICAgfSk7CkBAIC0xMjAyLDcgKzEyMDIs
NyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjphYm9ydFRyYW5zYWN0aW9uKFVuaXF1ZUlEQkRh
dGFiYXNlVHJhbnNhY3Rpb24mIHRyYW5zYWN0aQogCiAgICAgSURCRXJyb3IgZXJyb3I7CiAgICAg
aWYgKCFtX2JhY2tpbmdTdG9yZSkKLSAgICAgICAgZXJyb3IgPSBJREJFcnJvciB7IEludmFsaWRT
dGF0ZUVycm9yLCAiQmFja2luZyBzdG9yZSBpcyBjbG9zZWQiIH07CisgICAgICAgIGVycm9yID0g
SURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xvc2VkIl9z
IH07CiAgICAgZWxzZQogICAgICAgICBlcnJvciA9IG1fYmFja2luZ1N0b3JlLT5hYm9ydFRyYW5z
YWN0aW9uKHRyYW5zYWN0aW9uSWRlbnRpZmllcik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJJbmRleEluZm8uY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkluZGV4SW5mby5jcHAKaW5kZXggZTcx
ZDJlYmYyMWM0YWRmZWYyOGEyYmRhZmExZmY4NGIzZjdmMDM5OC4uN2FiYTgzMWQ3MDBlYTk4ZmVi
MmNjOWFhNDRjOTYyYzRiNTk0NDdiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvc2hhcmVkL0lEQkluZGV4SW5mby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkluZGV4SW5mby5jcHAKQEAgLTYxLDcgKzYxLDcg
QEAgU3RyaW5nIElEQkluZGV4SW5mbzo6bG9nZ2luZ1N0cmluZyhpbnQgaW5kZW50KSBjb25zdAog
ewogICAgIFN0cmluZyBpbmRlbnRTdHJpbmc7CiAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBpbmRl
bnQ7ICsraSkKLSAgICAgICAgaW5kZW50U3RyaW5nLmFwcGVuZCgiICIpOworICAgICAgICBpbmRl
bnRTdHJpbmcuYXBwZW5kKCcgJyk7CiAgICAgcmV0dXJuIG1ha2VTdHJpbmcoaW5kZW50U3RyaW5n
LCAiSW5kZXg6ICIsIG1fbmFtZSwgIiAoIiwgbV9pZGVudGlmaWVyLCAiKSBrZXlQYXRoOiAiLCBX
ZWJDb3JlOjpsb2dnaW5nU3RyaW5nKG1fa2V5UGF0aCksICdcbicpOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3Qu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNI
b3N0LmNwcAppbmRleCBiODI1ZWM4MDA1MTQ4MDI4ZTJiMDdiMTlkYzc4MzkyYTQzYThjYmE1Li4z
MzJmNDYyNmJkMzJlODMxYWQ5MDhhNDZhYzRkYzE0NmU2ZWNjYTg3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9z
dC5jcHAKQEAgLTExOCwxNCArMTE4LDE0IEBAIE1lZGlhQ29udHJvbHNIb3N0Ojp+TWVkaWFDb250
cm9sc0hvc3QoKQogU3RyaW5nIE1lZGlhQ29udHJvbHNIb3N0OjpsYXlvdXRUcmFpdHNDbGFzc05h
bWUoKSBjb25zdAogewogI2lmIGRlZmluZWQoTUVESUFfQ09OVFJPTFNfSE9TVF9MQVlPVVRfVFJB
SVRTX0NMQVNTX05BTUVfT1ZFUlJJREUpCi0gICAgcmV0dXJuIE1FRElBX0NPTlRST0xTX0hPU1Rf
TEFZT1VUX1RSQUlUU19DTEFTU19OQU1FX09WRVJSSURFOworICAgIHJldHVybiBNRURJQV9DT05U
Uk9MU19IT1NUX0xBWU9VVF9UUkFJVFNfQ0xBU1NfTkFNRV9PVkVSUklERSIiX3M7CiAjZWxzZQog
I2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oTUFDQ0FUQUxZU1QpCi0gICAgcmV0dXJuICJN
YWNPU0xheW91dFRyYWl0cyI7CisgICAgcmV0dXJuICJNYWNPU0xheW91dFRyYWl0cyJfczsKICNl
bGlmIFBMQVRGT1JNKElPUykKLSAgICByZXR1cm4gIklPU0xheW91dFRyYWl0cyI7CisgICAgcmV0
dXJuICJJT1NMYXlvdXRUcmFpdHMiX3M7CiAjZWxpZiBQTEFURk9STShXQVRDSE9TKQotICAgIHJl
dHVybiAiV2F0Y2hPU0xheW91dFRyYWl0cyI7CisgICAgcmV0dXJuICJXYXRjaE9TTGF5b3V0VHJh
aXRzIl9zOwogI2Vsc2UKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gbnVs
bFN0cmluZygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29y
ZGVyL01lZGlhUmVjb3JkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29y
ZGVyL01lZGlhUmVjb3JkZXIuY3BwCmluZGV4IGE5MWU2NjkwMDA0ODMxNmE5YTkxM2NhMGQ1MTI4
ZWFhMTUxZDljY2UuLmZmOTQ5OTljMjAyYTMyMDU0YzYxNmJmMzY2YzY3M2FlYjQyN2Y2NTMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29y
ZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFS
ZWNvcmRlci5jcHAKQEAgLTY2LDcgKzY2LDcgQEAgRXhjZXB0aW9uT3I8UmVmPE1lZGlhUmVjb3Jk
ZXI+PiBNZWRpYVJlY29yZGVyOjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBSZWY8TWUKICAg
ICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07CiAKICAgICBpZiAo
IWlzVHlwZVN1cHBvcnRlZChkb2N1bWVudCwgb3B0aW9ucy5taW1lVHlwZSkpCi0gICAgICAgIHJl
dHVybiBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciwgIm1pbWVUeXBlIGlzIG5vdCBzdXBw
b3J0ZWQiIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciwg
Im1pbWVUeXBlIGlzIG5vdCBzdXBwb3J0ZWQiX3MgfTsKIAogICAgIGF1dG8gcmVjb3JkZXIgPSBh
ZG9wdFJlZigqbmV3IE1lZGlhUmVjb3JkZXIoZG9jdW1lbnQsIFdURk1vdmUoc3RyZWFtKSwgV1RG
TW92ZShvcHRpb25zKSkpOwogICAgIHJlY29yZGVyLT5zdXNwZW5kSWZOZWVkZWQoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHAKaW5k
ZXggYTU5MDM3YTQwNTg2MzE4ZjIxNmE2ZWEwMTlkYjI0YTliMDM5NzI0OC4uOGNiNmQ1Y2ZjMzhk
NmVmODBmN2UzOTQxZmI5NThhMzRkNTM1ZmNjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHAKQEAgLTY1MCw3ICs2NTAsNyBAQCBz
dGF0aWMgQ29udGVudFR5cGUgYWRkVlA5RnVsbFJhbmdlVmlkZW9GbGFnVG9Db250ZW50VHlwZShj
b25zdCBDb250ZW50VHlwZSYgdHlwZQogICAgICAgICBpZiAocG9zaXRpb24gPT0gbm90Rm91bmQp
CiAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICByYXdUeXBlLmluc2VydCgiLjAwIiwg
cG9zaXRpb24gKyBjb2RlYy5sZW5ndGgoKSk7CisgICAgICAgIHJhd1R5cGUuaW5zZXJ0KCIuMDAi
X3MsIHBvc2l0aW9uICsgY29kZWMubGVuZ3RoKCkpOwogICAgICAgICByZXR1cm4gQ29udGVudFR5
cGUocmF3VHlwZSk7CiAgICAgfQogICAgIHJldHVybiB0eXBlOwpAQCAtODk1LDcgKzg5NSw3IEBA
IGJvb2wgTWVkaWFTb3VyY2U6OmlzVHlwZVN1cHBvcnRlZChTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiBjb250ZXh0LCBjb25zdCBTdHJpbmcmCiAgICAgaWYgKGNvbnRleHQuaXNEb2N1bWVudCgpICYm
IGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0KS5xdWlya3MoKS5uZWVkc1ZQOUZ1bGxSYW5nZUZs
YWdRdWlyaygpKQogICAgICAgICBjb250ZW50VHlwZSA9IGFkZFZQOUZ1bGxSYW5nZVZpZGVvRmxh
Z1RvQ29udGVudFR5cGUoY29udGVudFR5cGUpOwogCi0gICAgU3RyaW5nIGNvZGVjcyA9IGNvbnRl
bnRUeXBlLnBhcmFtZXRlcigiY29kZWNzIik7CisgICAgU3RyaW5nIGNvZGVjcyA9IGNvbnRlbnRU
eXBlLnBhcmFtZXRlcigiY29kZWNzIl9zKTsKIAogICAgIC8vIDIuIElmIHR5cGUgZG9lcyBub3Qg
Y29udGFpbiBhIHZhbGlkIE1JTUUgdHlwZSBzdHJpbmcsIHRoZW4gcmV0dXJuIGZhbHNlLgogICAg
IGlmIChjb250ZW50VHlwZS5jb250YWluZXJUeXBlKCkuaXNFbXB0eSgpKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVRyYWNrQ29uc3RyYWludHMu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVRyYWNrQ29uc3Ry
YWludHMuY3BwCmluZGV4IDMxMTM4NDdkYjc1NDg0N2Q2MTYyZmEyZDYxZTY3MzRhNmE4ODg1YjMu
LjJmOGQ4YmQyN2Q3MzU1NDZiYTg0YjYxODA4YTZjZGFiM2YzMjhlMTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFUcmFja0NvbnN0cmFpbnRzLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhVHJhY2tDb25z
dHJhaW50cy5jcHAKQEAgLTMzLDcgKzMzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBlbnVt
IGNsYXNzIENvbnN0cmFpbnRTZXRUeXBlIHsgTWFuZGF0b3J5LCBBZHZhbmNlZCB9OwogCi1zdGF0
aWMgdm9pZCBzZXQoTWVkaWFUcmFja0NvbnN0cmFpbnRTZXRNYXAmIG1hcCwgQ29uc3RyYWludFNl
dFR5cGUgc2V0VHlwZSwgY29uc3QgY2hhciogdHlwZUFzU3RyaW5nLCBNZWRpYUNvbnN0cmFpbnRU
eXBlIHR5cGUsIGNvbnN0IENvbnN0cmFpbkxvbmcmIHZhbHVlKQorc3RhdGljIHZvaWQgc2V0KE1l
ZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwJiBtYXAsIENvbnN0cmFpbnRTZXRUeXBlIHNldFR5cGUs
IEFTQ0lJTGl0ZXJhbCB0eXBlQXNTdHJpbmcsIE1lZGlhQ29uc3RyYWludFR5cGUgdHlwZSwgY29u
c3QgQ29uc3RyYWluTG9uZyYgdmFsdWUpCiB7CiAgICAgSW50Q29uc3RyYWludCBjb25zdHJhaW50
KHR5cGVBc1N0cmluZywgdHlwZSk7CiAgICAgV1RGOjpzd2l0Y2hPbih2YWx1ZSwKQEAgLTU3LDcg
KzU3LDcgQEAgc3RhdGljIHZvaWQgc2V0KE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwJiBtYXAs
IENvbnN0cmFpbnRTZXRUeXBlIHNldFR5cGUsIGNvbnMKICAgICBtYXAuc2V0KHR5cGUsIFdURk1v
dmUoY29uc3RyYWludCkpOwogfQogCi1zdGF0aWMgdm9pZCBzZXQoTWVkaWFUcmFja0NvbnN0cmFp
bnRTZXRNYXAmIG1hcCwgQ29uc3RyYWludFNldFR5cGUgc2V0VHlwZSwgY29uc3QgY2hhciogdHlw
ZUFzU3RyaW5nLCBNZWRpYUNvbnN0cmFpbnRUeXBlIHR5cGUsIGNvbnN0IENvbnN0cmFpbkRvdWJs
ZSYgdmFsdWUpCitzdGF0aWMgdm9pZCBzZXQoTWVkaWFUcmFja0NvbnN0cmFpbnRTZXRNYXAmIG1h
cCwgQ29uc3RyYWludFNldFR5cGUgc2V0VHlwZSwgQVNDSUlMaXRlcmFsIHR5cGVBc1N0cmluZywg
TWVkaWFDb25zdHJhaW50VHlwZSB0eXBlLCBjb25zdCBDb25zdHJhaW5Eb3VibGUmIHZhbHVlKQog
ewogICAgIERvdWJsZUNvbnN0cmFpbnQgY29uc3RyYWludCh0eXBlQXNTdHJpbmcsIHR5cGUpOwog
ICAgIFdURjo6c3dpdGNoT24odmFsdWUsCkBAIC04MSw3ICs4MSw3IEBAIHN0YXRpYyB2b2lkIHNl
dChNZWRpYVRyYWNrQ29uc3RyYWludFNldE1hcCYgbWFwLCBDb25zdHJhaW50U2V0VHlwZSBzZXRU
eXBlLCBjb25zCiAgICAgbWFwLnNldCh0eXBlLCBXVEZNb3ZlKGNvbnN0cmFpbnQpKTsKIH0KIAot
c3RhdGljIHZvaWQgc2V0KE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwJiBtYXAsIENvbnN0cmFp
bnRTZXRUeXBlIHNldFR5cGUsIGNvbnN0IGNoYXIqIHR5cGVBc1N0cmluZywgTWVkaWFDb25zdHJh
aW50VHlwZSB0eXBlLCBjb25zdCBDb25zdHJhaW5Cb29sZWFuJiB2YWx1ZSkKK3N0YXRpYyB2b2lk
IHNldChNZWRpYVRyYWNrQ29uc3RyYWludFNldE1hcCYgbWFwLCBDb25zdHJhaW50U2V0VHlwZSBz
ZXRUeXBlLCBBU0NJSUxpdGVyYWwgdHlwZUFzU3RyaW5nLCBNZWRpYUNvbnN0cmFpbnRUeXBlIHR5
cGUsIGNvbnN0IENvbnN0cmFpbkJvb2xlYW4mIHZhbHVlKQogewogICAgIEJvb2xlYW5Db25zdHJh
aW50IGNvbnN0cmFpbnQodHlwZUFzU3RyaW5nLCB0eXBlKTsKICAgICBXVEY6OnN3aXRjaE9uKHZh
bHVlLApAQCAtMTAxLDcgKzEwMSw3IEBAIHN0YXRpYyB2b2lkIHNldChNZWRpYVRyYWNrQ29uc3Ry
YWludFNldE1hcCYgbWFwLCBDb25zdHJhaW50U2V0VHlwZSBzZXRUeXBlLCBjb25zCiAgICAgbWFw
LnNldCh0eXBlLCBXVEZNb3ZlKGNvbnN0cmFpbnQpKTsKIH0KIAotc3RhdGljIHZvaWQgc2V0KE1l
ZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwJiBtYXAsIENvbnN0cmFpbnRTZXRUeXBlIHNldFR5cGUs
IGNvbnN0IGNoYXIqIHR5cGVBc1N0cmluZywgTWVkaWFDb25zdHJhaW50VHlwZSB0eXBlLCBjb25z
dCBDb25zdHJhaW5ET01TdHJpbmcmIHZhbHVlKQorc3RhdGljIHZvaWQgc2V0KE1lZGlhVHJhY2tD
b25zdHJhaW50U2V0TWFwJiBtYXAsIENvbnN0cmFpbnRTZXRUeXBlIHNldFR5cGUsIEFTQ0lJTGl0
ZXJhbCB0eXBlQXNTdHJpbmcsIE1lZGlhQ29uc3RyYWludFR5cGUgdHlwZSwgY29uc3QgQ29uc3Ry
YWluRE9NU3RyaW5nJiB2YWx1ZSkKIHsKICAgICBTdHJpbmdDb25zdHJhaW50IGNvbnN0cmFpbnQo
dHlwZUFzU3RyaW5nLCB0eXBlKTsKICAgICBXVEY6OnN3aXRjaE9uKHZhbHVlLApAQCAtMTQ4LDcg
KzE0OCw3IEBAIHN0YXRpYyB2b2lkIHNldChNZWRpYVRyYWNrQ29uc3RyYWludFNldE1hcCYgbWFw
LCBDb25zdHJhaW50U2V0VHlwZSBzZXRUeXBlLCBjb25zCiAgICAgbWFwLnNldCh0eXBlLCBXVEZN
b3ZlKGNvbnN0cmFpbnQpKTsKIH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RhdGljIGlubGlu
ZSB2b2lkIHNldChNZWRpYVRyYWNrQ29uc3RyYWludFNldE1hcCYgbWFwLCBDb25zdHJhaW50U2V0
VHlwZSBzZXRUeXBlLCBjb25zdCBjaGFyKiB0eXBlQXNTdHJpbmcsIE1lZGlhQ29uc3RyYWludFR5
cGUgdHlwZSwgY29uc3Qgc3RkOjpvcHRpb25hbDxUPiYgdmFsdWUpCit0ZW1wbGF0ZTx0eXBlbmFt
ZSBUPiBzdGF0aWMgaW5saW5lIHZvaWQgc2V0KE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwJiBt
YXAsIENvbnN0cmFpbnRTZXRUeXBlIHNldFR5cGUsIEFTQ0lJTGl0ZXJhbCB0eXBlQXNTdHJpbmcs
IE1lZGlhQ29uc3RyYWludFR5cGUgdHlwZSwgY29uc3Qgc3RkOjpvcHRpb25hbDxUPiYgdmFsdWUp
CiB7CiAgICAgaWYgKCF2YWx1ZSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTU4LDIxICsxNTgsMjEg
QEAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RhdGljIGlubGluZSB2b2lkIHNldChNZWRpYVRyYWNr
Q29uc3RyYWludFNldE1hcCYgbWFwLCBDb24KIHN0YXRpYyBNZWRpYVRyYWNrQ29uc3RyYWludFNl
dE1hcCBjb252ZXJ0VG9JbnRlcm5hbEZvcm0oQ29uc3RyYWludFNldFR5cGUgc2V0VHlwZSwgY29u
c3QgTWVkaWFUcmFja0NvbnN0cmFpbnRTZXQmIGNvbnN0cmFpbnRTZXQpCiB7CiAgICAgTWVkaWFU
cmFja0NvbnN0cmFpbnRTZXRNYXAgcmVzdWx0OwotICAgIHNldChyZXN1bHQsIHNldFR5cGUsICJ3
aWR0aCIsIE1lZGlhQ29uc3RyYWludFR5cGU6OldpZHRoLCBjb25zdHJhaW50U2V0LndpZHRoKTsK
LSAgICBzZXQocmVzdWx0LCBzZXRUeXBlLCAiaGVpZ2h0IiwgTWVkaWFDb25zdHJhaW50VHlwZTo6
SGVpZ2h0LCBjb25zdHJhaW50U2V0LmhlaWdodCk7Ci0gICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwg
ImFzcGVjdFJhdGlvIiwgTWVkaWFDb25zdHJhaW50VHlwZTo6QXNwZWN0UmF0aW8sIGNvbnN0cmFp
bnRTZXQuYXNwZWN0UmF0aW8pOwotICAgIHNldChyZXN1bHQsIHNldFR5cGUsICJmcmFtZVJhdGUi
LCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpGcmFtZVJhdGUsIGNvbnN0cmFpbnRTZXQuZnJhbWVSYXRl
KTsKLSAgICBzZXQocmVzdWx0LCBzZXRUeXBlLCAiZmFjaW5nTW9kZSIsIE1lZGlhQ29uc3RyYWlu
dFR5cGU6OkZhY2luZ01vZGUsIGNvbnN0cmFpbnRTZXQuZmFjaW5nTW9kZSk7Ci0gICAgc2V0KHJl
c3VsdCwgc2V0VHlwZSwgInZvbHVtZSIsIE1lZGlhQ29uc3RyYWludFR5cGU6OlZvbHVtZSwgY29u
c3RyYWludFNldC52b2x1bWUpOwotICAgIHNldChyZXN1bHQsIHNldFR5cGUsICJzYW1wbGVSYXRl
IiwgTWVkaWFDb25zdHJhaW50VHlwZTo6U2FtcGxlUmF0ZSwgY29uc3RyYWludFNldC5zYW1wbGVS
YXRlKTsKLSAgICBzZXQocmVzdWx0LCBzZXRUeXBlLCAic2FtcGxlU2l6ZSIsIE1lZGlhQ29uc3Ry
YWludFR5cGU6OlNhbXBsZVNpemUsIGNvbnN0cmFpbnRTZXQuc2FtcGxlU2l6ZSk7Ci0gICAgc2V0
KHJlc3VsdCwgc2V0VHlwZSwgImVjaG9DYW5jZWxsYXRpb24iLCBNZWRpYUNvbnN0cmFpbnRUeXBl
OjpFY2hvQ2FuY2VsbGF0aW9uLCBjb25zdHJhaW50U2V0LmVjaG9DYW5jZWxsYXRpb24pOworICAg
IHNldChyZXN1bHQsIHNldFR5cGUsICJ3aWR0aCJfcywgTWVkaWFDb25zdHJhaW50VHlwZTo6V2lk
dGgsIGNvbnN0cmFpbnRTZXQud2lkdGgpOworICAgIHNldChyZXN1bHQsIHNldFR5cGUsICJoZWln
aHQiX3MsIE1lZGlhQ29uc3RyYWludFR5cGU6OkhlaWdodCwgY29uc3RyYWludFNldC5oZWlnaHQp
OworICAgIHNldChyZXN1bHQsIHNldFR5cGUsICJhc3BlY3RSYXRpbyJfcywgTWVkaWFDb25zdHJh
aW50VHlwZTo6QXNwZWN0UmF0aW8sIGNvbnN0cmFpbnRTZXQuYXNwZWN0UmF0aW8pOworICAgIHNl
dChyZXN1bHQsIHNldFR5cGUsICJmcmFtZVJhdGUiX3MsIE1lZGlhQ29uc3RyYWludFR5cGU6OkZy
YW1lUmF0ZSwgY29uc3RyYWludFNldC5mcmFtZVJhdGUpOworICAgIHNldChyZXN1bHQsIHNldFR5
cGUsICJmYWNpbmdNb2RlIl9zLCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpGYWNpbmdNb2RlLCBjb25z
dHJhaW50U2V0LmZhY2luZ01vZGUpOworICAgIHNldChyZXN1bHQsIHNldFR5cGUsICJ2b2x1bWUi
X3MsIE1lZGlhQ29uc3RyYWludFR5cGU6OlZvbHVtZSwgY29uc3RyYWludFNldC52b2x1bWUpOwor
ICAgIHNldChyZXN1bHQsIHNldFR5cGUsICJzYW1wbGVSYXRlIl9zLCBNZWRpYUNvbnN0cmFpbnRU
eXBlOjpTYW1wbGVSYXRlLCBjb25zdHJhaW50U2V0LnNhbXBsZVJhdGUpOworICAgIHNldChyZXN1
bHQsIHNldFR5cGUsICJzYW1wbGVTaXplIl9zLCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpTYW1wbGVT
aXplLCBjb25zdHJhaW50U2V0LnNhbXBsZVNpemUpOworICAgIHNldChyZXN1bHQsIHNldFR5cGUs
ICJlY2hvQ2FuY2VsbGF0aW9uIl9zLCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpFY2hvQ2FuY2VsbGF0
aW9uLCBjb25zdHJhaW50U2V0LmVjaG9DYW5jZWxsYXRpb24pOwogICAgIC8vIEZJWE1FOiBhZGQg
bGF0ZW5jeQogICAgIC8vIEZJWE1FOiBhZGQgY2hhbm5lbENvdW50Ci0gICAgc2V0KHJlc3VsdCwg
c2V0VHlwZSwgImRldmljZUlkIiwgTWVkaWFDb25zdHJhaW50VHlwZTo6RGV2aWNlSWQsIGNvbnN0
cmFpbnRTZXQuZGV2aWNlSWQpOwotICAgIHNldChyZXN1bHQsIHNldFR5cGUsICJncm91cElkIiwg
TWVkaWFDb25zdHJhaW50VHlwZTo6R3JvdXBJZCwgY29uc3RyYWludFNldC5ncm91cElkKTsKLSAg
ICBzZXQocmVzdWx0LCBzZXRUeXBlLCAiZGlzcGxheVN1cmZhY2UiLCBNZWRpYUNvbnN0cmFpbnRU
eXBlOjpEaXNwbGF5U3VyZmFjZSwgY29uc3RyYWludFNldC5kaXNwbGF5U3VyZmFjZSk7Ci0gICAg
c2V0KHJlc3VsdCwgc2V0VHlwZSwgImxvZ2ljYWxTdXJmYWNlIiwgTWVkaWFDb25zdHJhaW50VHlw
ZTo6TG9naWNhbFN1cmZhY2UsIGNvbnN0cmFpbnRTZXQubG9naWNhbFN1cmZhY2UpOworICAgIHNl
dChyZXN1bHQsIHNldFR5cGUsICJkZXZpY2VJZCJfcywgTWVkaWFDb25zdHJhaW50VHlwZTo6RGV2
aWNlSWQsIGNvbnN0cmFpbnRTZXQuZGV2aWNlSWQpOworICAgIHNldChyZXN1bHQsIHNldFR5cGUs
ICJncm91cElkIl9zLCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpHcm91cElkLCBjb25zdHJhaW50U2V0
Lmdyb3VwSWQpOworICAgIHNldChyZXN1bHQsIHNldFR5cGUsICJkaXNwbGF5U3VyZmFjZSJfcywg
TWVkaWFDb25zdHJhaW50VHlwZTo6RGlzcGxheVN1cmZhY2UsIGNvbnN0cmFpbnRTZXQuZGlzcGxh
eVN1cmZhY2UpOworICAgIHNldChyZXN1bHQsIHNldFR5cGUsICJsb2dpY2FsU3VyZmFjZSJfcywg
TWVkaWFDb25zdHJhaW50VHlwZTo6TG9naWNhbFN1cmZhY2UsIGNvbnN0cmFpbnRTZXQubG9naWNh
bFN1cmZhY2UpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDSWNlQ2FuZGlkYXRlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDSWNlQ2FuZGlkYXRlLmNwcAppbmRleCA5Zjcw
NmRmNmRmNjVlN2Y5NTgxNTc1MTQwMjI0OGUwOGM3YTIzZmEwLi5iYjdlZjc0MTI2MTljMDU5ZGNl
Yzc0ZDY4ZWUyZGJlMGM5M2FiYzI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL1JUQ0ljZUNhbmRpZGF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENJY2VDYW5kaWRhdGUuY3BwCkBAIC01NCw3ICs1NCw3IEBAIFJU
Q0ljZUNhbmRpZGF0ZTo6UlRDSWNlQ2FuZGlkYXRlKGNvbnN0IFN0cmluZyYgY2FuZGlkYXRlLCBj
b25zdCBTdHJpbmcmIHNkcE1pZCwKIEV4Y2VwdGlvbk9yPFJlZjxSVENJY2VDYW5kaWRhdGU+PiBS
VENJY2VDYW5kaWRhdGU6OmNyZWF0ZShjb25zdCBSVENJY2VDYW5kaWRhdGVJbml0JiBkaWN0aW9u
YXJ5KQogewogICAgIGlmIChkaWN0aW9uYXJ5LnNkcE1pZC5pc051bGwoKSAmJiAhZGljdGlvbmFy
eS5zZHBNTGluZUluZGV4KQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAi
Q2FuZGlkYXRlIG11c3Qgbm90IGhhdmUgYm90aCBudWxsIHNkcE1pZCBhbmQgc2RwTUxpbmVJbmRl
eCIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIkNhbmRpZGF0ZSBt
dXN0IG5vdCBoYXZlIGJvdGggbnVsbCBzZHBNaWQgYW5kIHNkcE1MaW5lSW5kZXgiX3MgfTsKIAog
ICAgIGF1dG8gZmllbGRzID0gdmFsdWVPckRlZmF1bHQocGFyc2VJY2VDYW5kaWRhdGVTRFAoZGlj
dGlvbmFyeS5jYW5kaWRhdGUpKTsKICAgICBmaWVsZHMudXNlcm5hbWVGcmFnbWVudCA9IGRpY3Rp
b25hcnkudXNlcm5hbWVGcmFnbWVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAKaW5kZXggOTBkZTYzOTkzNGVk
NjFjNWMwYjEwMTJjMGFhNTM5N2RkMGQ4YjMyYS4uNDE1NjZhNTU1ZjYyZWU1MDhlMGRkMWExZGQ3
MDg4NGVmNzUwZjVhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAKQEAgLTI3Myw3ICsyNzMsNyBAQCB2b2lk
IFJUQ1BlZXJDb25uZWN0aW9uOjpzZXRMb2NhbERlc2NyaXB0aW9uKHN0ZDo6b3B0aW9uYWw8UlRD
TG9jYWxTZXNzaW9uRGVzY3JpcAogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgQUxXQVlT
X0xPRyhMT0dJREVOVElGSUVSLCAiU2V0dGluZyBsb2NhbCBkZXNjcmlwdGlvbiB0bzpcbiIsIGxv
Y2FsRGVzY3JpcHRpb24gPyBsb2NhbERlc2NyaXB0aW9uLT5zZHAgOiAiJyciKTsKKyAgICBBTFdB
WVNfTE9HKExPR0lERU5USUZJRVIsICJTZXR0aW5nIGxvY2FsIGRlc2NyaXB0aW9uIHRvOlxuIiwg
bG9jYWxEZXNjcmlwdGlvbiA/IGxvY2FsRGVzY3JpcHRpb24tPnNkcCA6ICInJyJfcyk7CiAgICAg
Y2hhaW5PcGVyYXRpb24oV1RGTW92ZShwcm9taXNlKSwgW3RoaXMsIGxvY2FsRGVzY3JpcHRpb24g
PSBXVEZNb3ZlKGxvY2FsRGVzY3JpcHRpb24pXShhdXRvJiYgcHJvbWlzZSkgbXV0YWJsZSB7CiAg
ICAgICAgIGF1dG8gdHlwZSA9IHR5cGVGb3JTZXRMb2NhbERlc2NyaXB0aW9uKGxvY2FsRGVzY3Jp
cHRpb24sIG1fc2lnbmFsaW5nU3RhdGUpOwogICAgICAgICBTdHJpbmcgc2RwOwpAQCAtMzQ0LDcg
KzM0NCw3IEBAIHZvaWQgUlRDUGVlckNvbm5lY3Rpb246OmFkZEljZUNhbmRpZGF0ZShDYW5kaWRh
dGUmJiBydGNDYW5kaWRhdGUsIFJlZjxEZWZlcnJlZFByCiAgICAgICAgIH0pOwogICAgIH0KIAot
ICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgIlJlY2VpdmVkIGljZSBjYW5kaWRhdGU6XG4i
LCBjYW5kaWRhdGUgPyBjYW5kaWRhdGUtPmNhbmRpZGF0ZSgpIDogIm51bGwiKTsKKyAgICBBTFdB
WVNfTE9HKExPR0lERU5USUZJRVIsICJSZWNlaXZlZCBpY2UgY2FuZGlkYXRlOlxuIiwgY2FuZGlk
YXRlID8gY2FuZGlkYXRlLT5jYW5kaWRhdGUoKSA6ICJudWxsIl9zKTsKIAogICAgIGlmIChleGNl
cHRpb24pIHsKICAgICAgICAgcHJvbWlzZS0+cmVqZWN0KCpleGNlcHRpb24pOwpAQCAtMzc5LDEz
ICszNzksMTMgQEAgc3RkOjpvcHRpb25hbDxib29sPiBSVENQZWVyQ29ubmVjdGlvbjo6Y2FuVHJp
Y2tsZUljZUNhbmRpZGF0ZXMoKSBjb25zdAogRXhjZXB0aW9uT3I8VmVjdG9yPE1lZGlhRW5kcG9p
bnRDb25maWd1cmF0aW9uOjpJY2VTZXJ2ZXJJbmZvPj4gUlRDUGVlckNvbm5lY3Rpb246OmljZVNl
cnZlcnNGcm9tQ29uZmlndXJhdGlvbihSVENDb25maWd1cmF0aW9uJiBuZXdDb25maWd1cmF0aW9u
LCBjb25zdCBSVENDb25maWd1cmF0aW9uKiBleGlzdGluZ0NvbmZpZ3VyYXRpb24sIGJvb2wgaXNM
b2NhbERlc2NyaXB0aW9uU2V0KQogewogICAgIGlmIChleGlzdGluZ0NvbmZpZ3VyYXRpb24gJiYg
bmV3Q29uZmlndXJhdGlvbi5idW5kbGVQb2xpY3kgIT0gZXhpc3RpbmdDb25maWd1cmF0aW9uLT5i
dW5kbGVQb2xpY3kpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkTW9kaWZpY2F0
aW9uRXJyb3IsICJCdW5kbGVQb2xpY3kgZG9lcyBub3QgbWF0Y2ggZXhpc3RpbmcgcG9saWN5IiB9
OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yLCAi
QnVuZGxlUG9saWN5IGRvZXMgbm90IG1hdGNoIGV4aXN0aW5nIHBvbGljeSJfcyB9OwogCiAgICAg
aWYgKGV4aXN0aW5nQ29uZmlndXJhdGlvbiAmJiBuZXdDb25maWd1cmF0aW9uLnJ0Y3BNdXhQb2xp
Y3kgIT0gZXhpc3RpbmdDb25maWd1cmF0aW9uLT5ydGNwTXV4UG9saWN5KQotICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yLCAiUlRDUE11eFBvbGljeSBk
b2VzIG5vdCBtYXRjaCBleGlzdGluZyBwb2xpY3kiIH07CisgICAgICAgIHJldHVybiBFeGNlcHRp
b24geyBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3IsICJSVENQTXV4UG9saWN5IGRvZXMgbm90IG1h
dGNoIGV4aXN0aW5nIHBvbGljeSJfcyB9OwogCiAgICAgaWYgKGV4aXN0aW5nQ29uZmlndXJhdGlv
biAmJiBuZXdDb25maWd1cmF0aW9uLmljZUNhbmRpZGF0ZVBvb2xTaXplICE9IGV4aXN0aW5nQ29u
ZmlndXJhdGlvbi0+aWNlQ2FuZGlkYXRlUG9vbFNpemUgJiYgaXNMb2NhbERlc2NyaXB0aW9uU2V0
KQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yLCAi
SWNlVHJhbnNwb3J0UG9saWN5IHBvb2wgc2l6ZSBkb2VzIG5vdCBtYXRjaCBleGlzdGluZyBwb29s
IHNpemUiIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkTW9kaWZpY2F0aW9u
RXJyb3IsICJJY2VUcmFuc3BvcnRQb2xpY3kgcG9vbCBzaXplIGRvZXMgbm90IG1hdGNoIGV4aXN0
aW5nIHBvb2wgc2l6ZSJfcyB9OwogCiAgICAgVmVjdG9yPE1lZGlhRW5kcG9pbnRDb25maWd1cmF0
aW9uOjpJY2VTZXJ2ZXJJbmZvPiBzZXJ2ZXJzOwogICAgIGlmIChuZXdDb25maWd1cmF0aW9uLmlj
ZVNlcnZlcnMpIHsKQEAgLTQxNCwxOCArNDE0LDE4IEBAIEV4Y2VwdGlvbk9yPFZlY3RvcjxNZWRp
YUVuZHBvaW50Q29uZmlndXJhdGlvbjo6SWNlU2VydmVySW5mbz4+IFJUQ1BlZXJDb25uZWN0aW9u
CiAKICAgICAgICAgICAgIGZvciAoYXV0byYgc2VydmVyVVJMIDogc2VydmVyVVJMcykgewogICAg
ICAgICAgICAgICAgIGlmIChzZXJ2ZXJVUkwuaXNOdWxsKCkpCi0gICAgICAgICAgICAgICAgICAg
IHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJCYWQgSUNFIHNlcnZlciBVUkwiIH07Cisg
ICAgICAgICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJCYWQgSUNF
IHNlcnZlciBVUkwiX3MgfTsKICAgICAgICAgICAgICAgICBpZiAoc2VydmVyVVJMLnByb3RvY29s
SXMoInR1cm4iKSB8fCBzZXJ2ZXJVUkwucHJvdG9jb2xJcygidHVybnMiKSkgewogICAgICAgICAg
ICAgICAgICAgICBpZiAoc2VydmVyLmNyZWRlbnRpYWwuaXNOdWxsKCkgfHwgc2VydmVyLnVzZXJu
YW1lLmlzTnVsbCgpKQotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7
IEludmFsaWRBY2Nlc3NFcnJvciwgIlRVUk4vVFVSTlMgc2VydmVyIHJlcXVpcmVzIGJvdGggdXNl
cm5hbWUgYW5kIGNyZWRlbnRpYWwiIH07CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
RXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiVFVSTi9UVVJOUyBzZXJ2ZXIgcmVxdWly
ZXMgYm90aCB1c2VybmFtZSBhbmQgY3JlZGVudGlhbCJfcyB9OwogICAgICAgICAgICAgICAgICAg
ICAvLyBodHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjODQ4OSNzZWN0aW9uLTE0LjMKICAg
ICAgICAgICAgICAgICAgICAgaWYgKHNlcnZlci5jcmVkZW50aWFsLmxlbmd0aCgpID4gNjQgfHwg
c2VydmVyLnVzZXJuYW1lLmxlbmd0aCgpID4gNjQpIHsKICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnN0ZXhwciBzaXplX3QgTWF4VHVyblVzZXJuYW1lTGVuZ3RoID0gNTA5OwogICAgICAgICAg
ICAgICAgICAgICAgICAgaWYgKHNlcnZlci5jcmVkZW50aWFsLnV0ZjgoKS5sZW5ndGgoKSA+IE1h
eFR1cm5Vc2VybmFtZUxlbmd0aCB8fCBzZXJ2ZXIudXNlcm5hbWUudXRmOCgpLmxlbmd0aCgpID4g
TWF4VHVyblVzZXJuYW1lTGVuZ3RoKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
biBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJUVVJOL1RVUk5TIHVzZXJuYW1lIGFuZC9vciBjcmVk
ZW50aWFsIGFyZSB0b28gbG9uZyIgfTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiVFVSTi9UVVJOUyB1c2VybmFtZSBhbmQvb3IgY3Jl
ZGVudGlhbCBhcmUgdG9vIGxvbmciX3MgfTsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgIH0gZWxzZSBpZiAoIXNlcnZlclVSTC5wcm90b2NvbElzKCJzdHVuIikpCi0gICAg
ICAgICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciwgIklD
RSBzZXJ2ZXIgcHJvdG9jb2wgbm90IHN1cHBvcnRlZCIgfTsKKyAgICAgICAgICAgICAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yLCAiSUNFIHNlcnZlciBwcm90b2Nv
bCBub3Qgc3VwcG9ydGVkIl9zIH07CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAoc2Vy
dmVyVVJMcy5zaXplKCkpCiAgICAgICAgICAgICAgICAgc2VydmVycy51bmNoZWNrZWRBcHBlbmQo
eyBXVEZNb3ZlKHNlcnZlclVSTHMpLCBzZXJ2ZXIuY3JlZGVudGlhbCwgc2VydmVyLnVzZXJuYW1l
IH0pOwpAQCAtNDQzLDcgKzQ0Myw3IEBAIEV4Y2VwdGlvbk9yPFZlY3RvcjxNZWRpYUVuZHBvaW50
Q29uZmlndXJhdGlvbjo6Q2VydGlmaWNhdGVQRU0+PiBSVENQZWVyQ29ubmVjdGlvCiAgICAgY2Vy
dGlmaWNhdGVzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoY29uZmlndXJhdGlvbi5jZXJ0aWZpY2F0
ZXMuc2l6ZSgpKTsKICAgICBmb3IgKGF1dG8mIGNlcnRpZmljYXRlIDogY29uZmlndXJhdGlvbi5j
ZXJ0aWZpY2F0ZXMpIHsKICAgICAgICAgaWYgKCFvcmlnaW4uaXNTYW1lT3JpZ2luQXMoY2VydGlm
aWNhdGUtPm9yaWdpbigpKSkKLSAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlk
QWNjZXNzRXJyb3IsICJDZXJ0aWZpY2F0ZSBkb2VzIG5vdCBoYXZlIGEgdmFsaWQgb3JpZ2luIiB9
OworICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwgIkNl
cnRpZmljYXRlIGRvZXMgbm90IGhhdmUgYSB2YWxpZCBvcmlnaW4iX3MgfTsKIAogICAgICAgICBp
ZiAoY3VycmVudE1pbGxpU2Vjb25kcyA+IGNlcnRpZmljYXRlLT5leHBpcmVzKCkpCiAgICAgICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiQ2VydGlmaWNhdGUg
aGFzIGV4cGlyZWQiX3MgfTsKQEAgLTQ2Niw3ICs0NjYsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBS
VENQZWVyQ29ubmVjdGlvbjo6aW5pdGlhbGl6ZUNvbmZpZ3VyYXRpb24oUlRDQ29uZmlndXJhdGlv
biYmCiAgICAgICAgIHJldHVybiBjZXJ0aWZpY2F0ZXMucmVsZWFzZUV4Y2VwdGlvbigpOwogCiAg
ICAgaWYgKCFtX2JhY2tlbmQtPnNldENvbmZpZ3VyYXRpb24oeyBzZXJ2ZXJzLnJlbGVhc2VSZXR1
cm5WYWx1ZSgpLCBjb25maWd1cmF0aW9uLmljZVRyYW5zcG9ydFBvbGljeSwgY29uZmlndXJhdGlv
bi5idW5kbGVQb2xpY3ksIGNvbmZpZ3VyYXRpb24ucnRjcE11eFBvbGljeSwgY29uZmlndXJhdGlv
bi5pY2VDYW5kaWRhdGVQb29sU2l6ZSwgY2VydGlmaWNhdGVzLnJlbGVhc2VSZXR1cm5WYWx1ZSgp
IH0pKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiQmFk
IENvbmZpZ3VyYXRpb24gUGFyYW1ldGVycyIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7
IEludmFsaWRBY2Nlc3NFcnJvciwgIkJhZCBDb25maWd1cmF0aW9uIFBhcmFtZXRlcnMiX3MgfTsK
IAogICAgIG1fY29uZmlndXJhdGlvbiA9IFdURk1vdmUoY29uZmlndXJhdGlvbik7CiAgICAgcmV0
dXJuIHsgfTsKQEAgLTQ4NSwxOSArNDg1LDE5IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFJUQ1BlZXJD
b25uZWN0aW9uOjpzZXRDb25maWd1cmF0aW9uKFJUQ0NvbmZpZ3VyYXRpb24mJiBjb25maWd1CiAK
ICAgICBpZiAoY29uZmlndXJhdGlvbi5jZXJ0aWZpY2F0ZXMuc2l6ZSgpKSB7CiAgICAgICAgIGlm
IChjb25maWd1cmF0aW9uLmNlcnRpZmljYXRlcy5zaXplKCkgIT0gbV9jb25maWd1cmF0aW9uLmNl
cnRpZmljYXRlcy5zaXplKCkpCi0gICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxp
ZE1vZGlmaWNhdGlvbkVycm9yLCAiQ2VydGlmaWNhdGVzIHBhcmFtZXRlcnMgYXJlIGRpZmZlcmVu
dCIgfTsKKyAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkTW9kaWZpY2F0aW9u
RXJyb3IsICJDZXJ0aWZpY2F0ZXMgcGFyYW1ldGVycyBhcmUgZGlmZmVyZW50Il9zIH07CiAKICAg
ICAgICAgZm9yIChhdXRvJiBjZXJ0aWZpY2F0ZSA6IGNvbmZpZ3VyYXRpb24uY2VydGlmaWNhdGVz
KSB7CiAgICAgICAgICAgICBib29sIGlzVGhlcmUgPSBtX2NvbmZpZ3VyYXRpb24uY2VydGlmaWNh
dGVzLmZpbmRJZihbJmNlcnRpZmljYXRlXShjb25zdCBhdXRvJiBpdGVtKSB7CiAgICAgICAgICAg
ICAgICAgcmV0dXJuIGl0ZW0uZ2V0KCkgPT0gY2VydGlmaWNhdGUuZ2V0KCk7CiAgICAgICAgICAg
ICB9KSAhPSBub3RGb3VuZDsKICAgICAgICAgICAgIGlmICghaXNUaGVyZSkKLSAgICAgICAgICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yLCAiQSBjZXJ0
aWZpY2F0ZSBnaXZlbiBpbiBjb25zdHJ1Y3RvciBpcyBub3QgcHJlc2VudCIgfTsKKyAgICAgICAg
ICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yLCAiQSBj
ZXJ0aWZpY2F0ZSBnaXZlbiBpbiBjb25zdHJ1Y3RvciBpcyBub3QgcHJlc2VudCJfcyB9OwogICAg
ICAgICB9CiAgICAgfQogCiAgICAgaWYgKCFtX2JhY2tlbmQtPnNldENvbmZpZ3VyYXRpb24oeyBz
ZXJ2ZXJzLnJlbGVhc2VSZXR1cm5WYWx1ZSgpLCBjb25maWd1cmF0aW9uLmljZVRyYW5zcG9ydFBv
bGljeSwgY29uZmlndXJhdGlvbi5idW5kbGVQb2xpY3ksIGNvbmZpZ3VyYXRpb24ucnRjcE11eFBv
bGljeSwgY29uZmlndXJhdGlvbi5pY2VDYW5kaWRhdGVQb29sU2l6ZSwgeyB9IH0pKQotICAgICAg
ICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiQmFkIENvbmZpZ3VyYXRp
b24gUGFyYW1ldGVycyIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nl
c3NFcnJvciwgIkJhZCBDb25maWd1cmF0aW9uIFBhcmFtZXRlcnMiX3MgfTsKIAogICAgIG1fY29u
ZmlndXJhdGlvbiA9IFdURk1vdmUoY29uZmlndXJhdGlvbik7CiAgICAgcmV0dXJuIHsgfTsKQEAg
LTkxOSw3ICs5MTksNyBAQCBjb25zdCBWZWN0b3I8UmVmUHRyPFJUQ1J0cFRyYW5zY2VpdmVyPj4m
IFJUQ1BlZXJDb25uZWN0aW9uOjpnZXRUcmFuc2NlaXZlcnMoKSBjbwogdm9pZCBSVENQZWVyQ29u
bmVjdGlvbjo6Y2hhaW5PcGVyYXRpb24oUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlLCBG
dW5jdGlvbjx2b2lkKFJlZjxEZWZlcnJlZFByb21pc2U+JiYpPiYmIG9wZXJhdGlvbikKIHsKICAg
ICBpZiAoaXNDbG9zZWQoKSkgewotICAgICAgICBwcm9taXNlLT5yZWplY3QoSW52YWxpZFN0YXRl
RXJyb3IsICJSVENQZWVyQ29ubmVjdGlvbiBpcyBjbG9zZWQiKTsKKyAgICAgICAgcHJvbWlzZS0+
cmVqZWN0KEludmFsaWRTdGF0ZUVycm9yLCAiUlRDUGVlckNvbm5lY3Rpb24gaXMgY2xvc2VkIl9z
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtOTI3LDcgKzkyNyw3IEBAIHZvaWQgUlRD
UGVlckNvbm5lY3Rpb246OmNoYWluT3BlcmF0aW9uKFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJv
bWlzZSwgRnVuY3Rpb248CiAgICAgICAgIEFTU0VSVChtX2hhc1BlbmRpbmdPcGVyYXRpb24pOwog
ICAgICAgICBpZiAoaXNDbG9zZWQoKSkgewogICAgICAgICAgICAgZm9yIChhdXRvJiBvcGVyYXRp
b24gOiBzdGQ6OmV4Y2hhbmdlKG1fb3BlcmF0aW9ucywgeyB9KSkKLSAgICAgICAgICAgICAgICBv
cGVyYXRpb24uZmlyc3QtPnJlamVjdChJbnZhbGlkU3RhdGVFcnJvciwgIlJUQ1BlZXJDb25uZWN0
aW9uIGlzIGNsb3NlZCIpOworICAgICAgICAgICAgICAgIG9wZXJhdGlvbi5maXJzdC0+cmVqZWN0
KEludmFsaWRTdGF0ZUVycm9yLCAiUlRDUGVlckNvbm5lY3Rpb24gaXMgY2xvc2VkIl9zKTsKICAg
ICAgICAgICAgIG1faGFzUGVuZGluZ09wZXJhdGlvbiA9IGZhbHNlOwogICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXIuY3BwCmluZGV4IGNiM2Y3Y2Q5
YmYyMTIzZTkxZDJkZjdhNDUxZDFjNmU4MTg5ZWQ0NGQuLjRmMjlhYjE1ZTZiNTY3NzE3MzBhZjk0
NDJjZTBiNDE0MjcwZTE2YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXIuY3BwCkBAIC0zNDYs
NyArMzQ2LDcgQEAgUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI6OlRyYW5zZm9ybVJlc3VsdCBSVENS
dHBTRnJhbWVUcmFuc2Zvcm1lcjo6ZW5jcnlwdEZyYW1lKFMKIFJUQ1J0cFNGcmFtZVRyYW5zZm9y
bWVyOjpUcmFuc2Zvcm1SZXN1bHQgUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI6OnRyYW5zZm9ybShT
cGFuPGNvbnN0IHVpbnQ4X3Q+IGRhdGEpCiB7CiAgICAgaWYgKCFtX2hhc0tleSkKLSAgICAgICAg
cmV0dXJuIG1ha2VVbmV4cGVjdGVkKEVycm9ySW5mb3JtYXRpb24geyBFcnJvcjo6S2V5SUQsICAi
S2V5IGlzIG5vdCBpbml0aWFsaXplZCIsIDAgfSk7CisgICAgICAgIHJldHVybiBtYWtlVW5leHBl
Y3RlZChFcnJvckluZm9ybWF0aW9uIHsgRXJyb3I6OktleUlELCAgIktleSBpcyBub3QgaW5pdGlh
bGl6ZWQiX3MsIDAgfSk7CiAKICAgICByZXR1cm4gbV9pc0VuY3J5cHRpbmcgPyBlbmNyeXB0RnJh
bWUoZGF0YSkgOiBkZWNyeXB0RnJhbWUoZGF0YSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlv
bkJhY2tlbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJy
dGMvTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcAppbmRleCAxMzMzMWFjYzA0NDBj
ZDAxNzg5YzczMTU4MGViNTY5MDQxYzM4MWNkLi4zMjNjMjgxM2MzMjRlZmVlNjk4ZjRjMGU0Yjlm
ZmZjYzc5ZDRkNmI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1BlZXJD
b25uZWN0aW9uQmFja2VuZC5jcHAKQEAgLTI2MCw3ICsyNjAsNyBAQCB2b2lkIExpYldlYlJUQ1Bl
ZXJDb25uZWN0aW9uQmFja2VuZDo6ZG9DcmVhdGVPZmZlcihSVENPZmZlck9wdGlvbnMmJiBvcHRp
b25zKQogdm9pZCBMaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OmRvQ3JlYXRlQW5zd2Vy
KFJUQ0Fuc3dlck9wdGlvbnMmJikKIHsKICAgICBpZiAoIW1faXNSZW1vdGVEZXNjcmlwdGlvblNl
dCkgewotICAgICAgICBjcmVhdGVBbnN3ZXJGYWlsZWQoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRl
RXJyb3IsICJObyByZW1vdGUgZGVzY3JpcHRpb24gc2V0IiB9KTsKKyAgICAgICAgY3JlYXRlQW5z
d2VyRmFpbGVkKEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiTm8gcmVtb3RlIGRlc2Ny
aXB0aW9uIHNldCJfcyB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBtX2VuZHBvaW50
LT5kb0NyZWF0ZUFuc3dlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUnRwVHJhbnNjZWl2ZXJCYWNrZW5kLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1J0
cFRyYW5zY2VpdmVyQmFja2VuZC5jcHAKaW5kZXggZDFmNzNhZDdmNDc4ZjYwNDcyNWIwNjA5OWZk
ZTY5MGM3M2VkNWI0NS4uNDE3NmU4ZDZmNzgzYTUyNWE4MGY3YTYwZWFkYzY3ZjZiZmQ3MDE2YyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMv
TGliV2ViUlRDUnRwVHJhbnNjZWl2ZXJCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENSdHBUcmFuc2NlaXZlckJhY2tl
bmQuY3BwCkBAIC04OSw3ICs4OSw3IEBAIHN0YXRpYyBpbmxpbmUgRXhjZXB0aW9uT3I8d2VicnRj
OjpSdHBDb2RlY0NhcGFiaWxpdHk+IHRvUnRwQ29kZWNDYXBhYmlsaXR5KGNvbnN0CiAgICAgZWxz
ZSBpZiAoY29kZWMubWltZVR5cGUuc3RhcnRzV2l0aCgiYXVkaW8vIikpCiAgICAgICAgIHJ0Y0Nv
ZGVjLmtpbmQgPSBjcmlja2V0OjpNRURJQV9UWVBFX0FVRElPOwogICAgIGVsc2UKLSAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRNb2RpZmljYXRpb25FcnJvciwgIlJUQ1J0cENvZGVj
Q2FwYWJpbGl0eSBiYWQgbWltZVR5cGUiIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJ
bnZhbGlkTW9kaWZpY2F0aW9uRXJyb3IsICJSVENSdHBDb2RlY0NhcGFiaWxpdHkgYmFkIG1pbWVU
eXBlIl9zIH07CiAKICAgICBydGNDb2RlYy5uYW1lID0gY29kZWMubWltZVR5cGUuc3Vic3RyaW5n
KDYpLnV0ZjgoKS5kYXRhKCk7CiAgICAgcnRjQ29kZWMuY2xvY2tfcmF0ZSA9IGNvZGVjLmNsb2Nr
UmF0ZTsKQEAgLTk5LDcgKzk5LDcgQEAgc3RhdGljIGlubGluZSBFeGNlcHRpb25Pcjx3ZWJydGM6
OlJ0cENvZGVjQ2FwYWJpbGl0eT4gdG9SdHBDb2RlY0NhcGFiaWxpdHkoY29uc3QKICAgICBmb3Ig
KGF1dG8gcGFyYW1ldGVyIDogU3RyaW5nVmlldyhjb2RlYy5zZHBGbXRwTGluZSkuc3BsaXQoJzsn
KSkgewogICAgICAgICBhdXRvIHBvc2l0aW9uID0gcGFyYW1ldGVyLmZpbmQoJz0nKTsKICAgICAg
ICAgaWYgKHBvc2l0aW9uID09IG5vdEZvdW5kKQotICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlv
biB7IEludmFsaWRNb2RpZmljYXRpb25FcnJvciwgIlJUQ1J0cENvZGVjQ2FwYWJpbGl0eSBzZHBG
bXRMaW5lIGJhZGx5IGZvcm1hdGVkIiB9OworICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7
IEludmFsaWRNb2RpZmljYXRpb25FcnJvciwgIlJUQ1J0cENvZGVjQ2FwYWJpbGl0eSBzZHBGbXRM
aW5lIGJhZGx5IGZvcm1hdGVkIl9zIH07CiAgICAgICAgIHJ0Y0NvZGVjLnBhcmFtZXRlcnMuZW1w
bGFjZShwYXJhbWV0ZXIuc3Vic3RyaW5nKDAsIHBvc2l0aW9uKS51dGY4KCkuZGF0YSgpLCBwYXJh
bWV0ZXIuc3Vic3RyaW5nKHBvc2l0aW9uICsgMSkudXRmOCgpLmRhdGEoKSk7CiAgICAgfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9M
aWJXZWJSVENVdGlscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xp
YndlYnJ0Yy9MaWJXZWJSVENVdGlscy5jcHAKaW5kZXggNDVlNGQxNzM2M2ZmMWI2NDA3ZTNjMDk5
YzBmYzdmNDI4MmZhNjhiMC4uOWYxOTZmMzc4YmI3Nzc2NzNjZjcxMjBjYWE0ZmI0NjQ1MDFmNGE4
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJy
dGMvTGliV2ViUlRDVXRpbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1V0aWxzLmNwcApAQCAtMzYwLDcgKzM2MCw3IEBAIEV4
Y2VwdGlvbiB0b0V4Y2VwdGlvbihjb25zdCB3ZWJydGM6OlJUQ0Vycm9yJiBlcnJvcikKIHsKICAg
ICBBU1NFUlQoIWVycm9yLm9rKCkpOwogCi0gICAgcmV0dXJuIEV4Y2VwdGlvbiB7IHRvRXhjZXB0
aW9uQ29kZShlcnJvci50eXBlKCkpLCBlcnJvci5tZXNzYWdlKCkgfTsKKyAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgdG9FeGNlcHRpb25Db2RlKGVycm9yLnR5cGUoKSksIFN0cmluZyB7IGVycm9yLm1l
c3NhZ2UoKSB9IH07CiB9CiAKIHN0YXRpYyBpbmxpbmUgUlRDSWNlQ29tcG9uZW50IHRvUlRDSWNl
Q29tcG9uZW50KGludCBjb21wb25lbnQpCkBAIC00NTUsNyArNDU1LDcgQEAgUmVmUHRyPFJUQ0Vy
cm9yPiB0b1JUQ0Vycm9yKGNvbnN0IHdlYnJ0Yzo6UlRDRXJyb3ImIHJ0Y0Vycm9yKQogICAgIGF1
dG8gZGV0YWlsID0gdG9SVENFcnJvckRldGFpbFR5cGUocnRjRXJyb3IuZXJyb3JfZGV0YWlsKCkp
OwogICAgIGlmICghZGV0YWlsKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICByZXR1cm4g
UlRDRXJyb3I6OmNyZWF0ZSgqZGV0YWlsLCBydGNFcnJvci5tZXNzYWdlKCkpOworICAgIHJldHVy
biBSVENFcnJvcjo6Y3JlYXRlKCpkZXRhaWwsIFN0cmluZyB7IHJ0Y0Vycm9yLm1lc3NhZ2UoKSB9
KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L3NjZW5la2l0L1NjZW5lS2l0TW9kZWxMb2FkZXJVU0Qu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvc2NlbmVraXQvU2NlbmVL
aXRNb2RlbExvYWRlclVTRC5tbQppbmRleCAwOWVjOGY2MDNlOWQwMjJiMzc4ZGRhMGU0MjdmZWM1
MjFmZGQ1MmQyLi5jYWI0YjhkZTIwMmU3N2Q3MDI4MmI1OTRhMWJlZmJkNzViMDZjYjJkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvc2NlbmVraXQvU2Nl
bmVLaXRNb2RlbExvYWRlclVTRC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVs
LWVsZW1lbnQvc2NlbmVraXQvU2NlbmVLaXRNb2RlbExvYWRlclVTRC5tbQpAQCAtMTAyLDcgKzEw
Miw3IEBAIHN0YXRpYyBSZXRhaW5QdHI8TlNVUkw+IHdyaXRlVG9UZW1wb3JhcnlGaWxlKFdlYkNv
cmU6Ok1vZGVsJiBtb2RlbFNvdXJjZSkKICAgICAvLyBpbml0aWFsaXplciBidXQgY3VycmVudGx5
IHRoYXQgZG9lcyBub3Qgd29yay4KIAogICAgIEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRs
ZSBmaWxlSGFuZGxlOwotICAgIGF1dG8gZmlsZVBhdGggPSBGaWxlU3lzdGVtOjpvcGVuVGVtcG9y
YXJ5RmlsZSgiTW9kZWxGaWxlIiwgZmlsZUhhbmRsZSwgIi51c2R6Iik7CisgICAgYXV0byBmaWxl
UGF0aCA9IEZpbGVTeXN0ZW06Om9wZW5UZW1wb3JhcnlGaWxlKCJNb2RlbEZpbGUiX3MsIGZpbGVI
YW5kbGUsICIudXNkeiJfcyk7CiAgICAgQVNTRVJUKEZpbGVTeXN0ZW06OmlzSGFuZGxlVmFsaWQo
ZmlsZUhhbmRsZSkpOwogCiAgICAgc2l6ZV90IGJ5dGVDb3VudCA9IEZpbGVTeXN0ZW06OndyaXRl
VG9GaWxlKGZpbGVIYW5kbGUsIG1vZGVsU291cmNlLmRhdGEoKS0+bWFrZUNvbnRpZ3VvdXMoKS0+
ZGF0YSgpLCBtb2RlbFNvdXJjZS5kYXRhKCktPnNpemUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXF1ZXN0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3QuY3BwCmluZGV4
IGRmMmI1YzI2NGYzYTVjZTJjMWUxY2I2Yjc2MzQwYTAwZmE0MGNjZTAuLjQyMjM1ZWVhMWJmZDFj
ZDFiNzA3MGI2OTA5NDg0MmNmNmU5MzU0YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3QuY3BwCkBAIC0yMTYsNyAr
MjE2LDcgQEAgc3RhdGljIEV4Y2VwdGlvbk9yPHN0ZDo6dHVwbGU8U3RyaW5nLCBWZWN0b3I8U3Ry
aW5nPj4+IGNoZWNrQW5kQ2Fub25pY2FsaXplRGV0YWkKIAogICAgICAgICAgICAgICAgIGF1dG8g
YWRkUmVzdWx0ID0gc2VlblNoaXBwaW5nT3B0aW9uSURzLmFkZChzaGlwcGluZ09wdGlvbi5pZCk7
CiAgICAgICAgICAgICAgICAgaWYgKCFhZGRSZXN1bHQuaXNOZXdFbnRyeSkKLSAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIlNoaXBwaW5nIG9wdGlvbiBJ
RHMgbXVzdCBiZSB1bmlxdWUuIiB9OworICAgICAgICAgICAgICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgVHlwZUVycm9yLCAiU2hpcHBpbmcgb3B0aW9uIElEcyBtdXN0IGJlIHVuaXF1ZS4iX3Mg
fTsKIAogI2lmIEVOQUJMRShQQVlNRU5UX1JFUVVFU1RfU0VMRUNURURfU0hJUFBJTkdfT1BUSU9O
KQogICAgICAgICAgICAgICAgIGlmIChzaGlwcGluZ09wdGlvbi5zZWxlY3RlZCkKQEAgLTM3NSw3
ICszNzUsNyBAQCB2b2lkIFBheW1lbnRSZXF1ZXN0OjpzaG93KERvY3VtZW50JiBkb2N1bWVudCwg
UmVmUHRyPERPTVByb21pc2U+JiYgZGV0YWlsc1Byb21pcwogCiAgICAgYXV0byogd2luZG93ID0g
ZG9jdW1lbnQuZnJhbWUoKS0+d2luZG93KCk7CiAgICAgaWYgKCF3aW5kb3cgfHwgIXdpbmRvdy0+
Y29uc3VtZVRyYW5zaWVudEFjdGl2YXRpb24oKSkgewotICAgICAgICBwcm9taXNlLnJlamVjdChF
eGNlcHRpb24geyBTZWN1cml0eUVycm9yLCAic2hvdygpIG11c3QgYmUgdHJpZ2dlcmVkIGJ5IHVz
ZXIgYWN0aXZhdGlvbi4iIH0pOworICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBT
ZWN1cml0eUVycm9yLCAic2hvdygpIG11c3QgYmUgdHJpZ2dlcmVkIGJ5IHVzZXIgYWN0aXZhdGlv
bi4iX3MgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvcGljdHVyZWlucGljdHVyZS9IVE1MVmlkZW9FbGVtZW50UGljdHVyZUlu
UGljdHVyZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BpY3R1cmVpbnBpY3R1cmUvSFRN
TFZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmUuY3BwCmluZGV4IGYyZjAyMzEwMjc0NWI5ZmQy
M2U4ZTk0MmQ2MDlhN2U5YmUwNjEwZDguLmJiZTJjYmM4YjljYmFlNGYyZmIwZWJkZTk0ZDU5NWFm
OWQ4ZmNiYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGljdHVyZWlucGlj
dHVyZS9IVE1MVmlkZW9FbGVtZW50UGljdHVyZUluUGljdHVyZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9waWN0dXJlaW5waWN0dXJlL0hUTUxWaWRlb0VsZW1lbnRQaWN0dXJlSW5Q
aWN0dXJlLmNwcApAQCAtODEsMjMgKzgxLDIzIEBAIHZvaWQgSFRNTFZpZGVvRWxlbWVudFBpY3R1
cmVJblBpY3R1cmU6OnByb3ZpZGVQaWN0dXJlSW5QaWN0dXJlVG8oSFRNTFZpZGVvRWxlbWVuCiB2
b2lkIEhUTUxWaWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJlOjpyZXF1ZXN0UGljdHVyZUluUGlj
dHVyZShIVE1MVmlkZW9FbGVtZW50JiB2aWRlb0VsZW1lbnQsIFJlZjxEZWZlcnJlZFByb21pc2U+
JiYgcHJvbWlzZSkKIHsKICAgICBpZiAoIXN1cHBvcnRzUGljdHVyZUluUGljdHVyZSgpKSB7Ci0g
ICAgICAgIHByb21pc2UtPnJlamVjdChOb3RTdXBwb3J0ZWRFcnJvciwgIlRoZSBQaWN0dXJlLWlu
LVBpY3R1cmUgbW9kZSBpcyBub3Qgc3VwcG9ydGVkLiIpOworICAgICAgICBwcm9taXNlLT5yZWpl
Y3QoTm90U3VwcG9ydGVkRXJyb3IsICJUaGUgUGljdHVyZS1pbi1QaWN0dXJlIG1vZGUgaXMgbm90
IHN1cHBvcnRlZC4iX3MpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgaWYgKHZpZGVv
RWxlbWVudC5yZWFkeVN0YXRlKCkgPT0gSFRNTE1lZGlhRWxlbWVudEVudW1zOjpIQVZFX05PVEhJ
TkcpIHsKLSAgICAgICAgcHJvbWlzZS0+cmVqZWN0KEludmFsaWRTdGF0ZUVycm9yLCAiVGhlIHZp
ZGVvIGVsZW1lbnQgaXMgbm90IHJlYWR5IHRvIGVudGVyIHRoZSBQaWN0dXJlLWluLVBpY3R1cmUg
bW9kZS4iKTsKKyAgICAgICAgcHJvbWlzZS0+cmVqZWN0KEludmFsaWRTdGF0ZUVycm9yLCAiVGhl
IHZpZGVvIGVsZW1lbnQgaXMgbm90IHJlYWR5IHRvIGVudGVyIHRoZSBQaWN0dXJlLWluLVBpY3R1
cmUgbW9kZS4iX3MpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgaWYgKCF2aWRlb0Vs
ZW1lbnQudmlkZW9UcmFja3MoKSB8fCAhdmlkZW9FbGVtZW50LnZpZGVvVHJhY2tzKCktPmxlbmd0
aCgpKSB7Ci0gICAgICAgIHByb21pc2UtPnJlamVjdChJbnZhbGlkU3RhdGVFcnJvciwgIlRoZSB2
aWRlbyBlbGVtZW50IGRvZXMgbm90IGhhdmUgYSB2aWRlbyB0cmFjayBvciBpdCBoYXMgbm90IGRl
dGVjdGVkIGEgdmlkZW8gdHJhY2sgeWV0LiIpOworICAgICAgICBwcm9taXNlLT5yZWplY3QoSW52
YWxpZFN0YXRlRXJyb3IsICJUaGUgdmlkZW8gZWxlbWVudCBkb2VzIG5vdCBoYXZlIGEgdmlkZW8g
dHJhY2sgb3IgaXQgaGFzIG5vdCBkZXRlY3RlZCBhIHZpZGVvIHRyYWNrIHlldC4iX3MpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCiAgICAgYm9vbCB1c2VyQWN0aXZhdGlvblJlcXVpcmVkID0g
IXZpZGVvRWxlbWVudC5kb2N1bWVudCgpLnBpY3R1cmVJblBpY3R1cmVFbGVtZW50KCk7CiAgICAg
aWYgKHVzZXJBY3RpdmF0aW9uUmVxdWlyZWQgJiYgIVVzZXJHZXN0dXJlSW5kaWNhdG9yOjpwcm9j
ZXNzaW5nVXNlckdlc3R1cmUoKSkgewotICAgICAgICBwcm9taXNlLT5yZWplY3QoTm90QWxsb3dl
ZEVycm9yLCAiVGhlIHJlcXVlc3QgaXMgbm90IHRyaWdnZXJlZCBieSBhIHVzZXIgYWN0aXZhdGlv
bi4iKTsKKyAgICAgICAgcHJvbWlzZS0+cmVqZWN0KE5vdEFsbG93ZWRFcnJvciwgIlRoZSByZXF1
ZXN0IGlzIG5vdCB0cmlnZ2VyZWQgYnkgYSB1c2VyIGFjdGl2YXRpb24uIl9zKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIApAQCAtMTA4LDcgKzEwOCw3IEBAIHZvaWQgSFRNTFZpZGVvRWxlbWVu
dFBpY3R1cmVJblBpY3R1cmU6OnJlcXVlc3RQaWN0dXJlSW5QaWN0dXJlKEhUTUxWaWRlb0VsZW1l
bnQmCiAgICAgfQogCiAgICAgaWYgKHZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmUtPm1fZW50
ZXJQaWN0dXJlSW5QaWN0dXJlUHJvbWlzZSB8fCB2aWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJl
LT5tX2V4aXRQaWN0dXJlSW5QaWN0dXJlUHJvbWlzZSkgewotICAgICAgICBwcm9taXNlLT5yZWpl
Y3QoTm90QWxsb3dlZEVycm9yLCAiVGhlIHZpZGVvIGVsZW1lbnQgaXMgcHJvY2Vzc2luZyBhIFBp
Y3R1cmUtaW4tUGljdHVyZSByZXF1ZXN0LiIpOworICAgICAgICBwcm9taXNlLT5yZWplY3QoTm90
QWxsb3dlZEVycm9yLCAiVGhlIHZpZGVvIGVsZW1lbnQgaXMgcHJvY2Vzc2luZyBhIFBpY3R1cmUt
aW4tUGljdHVyZSByZXF1ZXN0LiJfcyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTEx
Niw3ICsxMTYsNyBAQCB2b2lkIEhUTUxWaWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJlOjpyZXF1
ZXN0UGljdHVyZUluUGljdHVyZShIVE1MVmlkZW9FbGVtZW50JgogICAgICAgICB2aWRlb0VsZW1l
bnRQaWN0dXJlSW5QaWN0dXJlLT5tX2VudGVyUGljdHVyZUluUGljdHVyZVByb21pc2UgPSBXVEZN
b3ZlKHByb21pc2UpOwogICAgICAgICB2aWRlb0VsZW1lbnQud2Via2l0U2V0UHJlc2VudGF0aW9u
TW9kZShIVE1MVmlkZW9FbGVtZW50OjpWaWRlb1ByZXNlbnRhdGlvbk1vZGU6OlBpY3R1cmVJblBp
Y3R1cmUpOwogICAgIH0gZWxzZQotICAgICAgICBwcm9taXNlLT5yZWplY3QoTm90U3VwcG9ydGVk
RXJyb3IsICJUaGUgdmlkZW8gZWxlbWVudCBkb2VzIG5vdCBzdXBwb3J0IHRoZSBQaWN0dXJlLWlu
LVBpY3R1cmUgbW9kZS4iKTsKKyAgICAgICAgcHJvbWlzZS0+cmVqZWN0KE5vdFN1cHBvcnRlZEVy
cm9yLCAiVGhlIHZpZGVvIGVsZW1lbnQgZG9lcyBub3Qgc3VwcG9ydCB0aGUgUGljdHVyZS1pbi1Q
aWN0dXJlIG1vZGUuIl9zKTsKIH0KIAogYm9vbCBIVE1MVmlkZW9FbGVtZW50UGljdHVyZUluUGlj
dHVyZTo6YXV0b1BpY3R1cmVJblBpY3R1cmUoSFRNTFZpZGVvRWxlbWVudCYgdmlkZW9FbGVtZW50
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5zL1lvdVR1YmVQbHVn
aW5SZXBsYWNlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvWW91VHVi
ZVBsdWdpblJlcGxhY2VtZW50LmNwcAppbmRleCA5NzlmMjI0NTkwNzIwZjgyOTMzNWQ2MGEzYThk
OGFlNWMzYjcyMjQzLi5kZDE2Zjg5M2YyZDY5NTJjYzVmMDAzMDhmOWQwZDk5YWI4YjBlOGEyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvWW91VHViZVBsdWdpblJl
cGxhY2VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvWW91VHVi
ZVBsdWdpblJlcGxhY2VtZW50LmNwcApAQCAtODQsMTYgKzg0LDE2IEBAIGF1dG8gWW91VHViZVBs
dWdpblJlcGxhY2VtZW50OjppbnN0YWxsUmVwbGFjZW1lbnQoU2hhZG93Um9vdCYgcm9vdCkgLT4g
SW5zdGFsbFJlCiAgICAgcm9vdC5hcHBlbmRDaGlsZCgqbV9lbWJlZFNoYWRvd0VsZW1lbnQpOwog
CiAgICAgYXV0byBpZnJhbWVFbGVtZW50ID0gSFRNTElGcmFtZUVsZW1lbnQ6OmNyZWF0ZShIVE1M
TmFtZXM6OmlmcmFtZVRhZywgbV9wYXJlbnRFbGVtZW50LT5kb2N1bWVudCgpKTsKLSAgICBpZiAo
bV9hdHRyaWJ1dGVzLmNvbnRhaW5zKCJ3aWR0aCIpKQorICAgIGlmIChtX2F0dHJpYnV0ZXMuY29u
dGFpbnMoIndpZHRoIl9zKSkKICAgICAgICAgaWZyYW1lRWxlbWVudC0+c2V0QXR0cmlidXRlV2l0
aG91dFN5bmNocm9uaXphdGlvbihIVE1MTmFtZXM6OndpZHRoQXR0ciwgQXRvbVN0cmluZygiMTAw
JSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAKLSAgICBjb25zdCBhdXRv
JiBoZWlnaHRWYWx1ZSA9IG1fYXR0cmlidXRlcy5maW5kKCJoZWlnaHQiKTsKKyAgICBjb25zdCBh
dXRvJiBoZWlnaHRWYWx1ZSA9IG1fYXR0cmlidXRlcy5maW5kKCJoZWlnaHQiX3MpOwogICAgIGlm
IChoZWlnaHRWYWx1ZSAhPSBtX2F0dHJpYnV0ZXMuZW5kKCkpIHsKICAgICAgICAgaWZyYW1lRWxl
bWVudC0+c2V0QXR0cmlidXRlKEhUTUxOYW1lczo6c3R5bGVBdHRyLCBBdG9tU3RyaW5nKCJtYXgt
aGVpZ2h0OiAxMDAlIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICAg
ICAgaWZyYW1lRWxlbWVudC0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihIVE1M
TmFtZXM6OmhlaWdodEF0dHIsIGhlaWdodFZhbHVlLT52YWx1ZSk7CiAgICAgfQogCi0gICAgaWZy
YW1lRWxlbWVudC0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihIVE1MTmFtZXM6
OnNyY0F0dHIsIHlvdVR1YmVVUkwobV9hdHRyaWJ1dGVzLmdldCgic3JjIikpKTsKKyAgICBpZnJh
bWVFbGVtZW50LT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKEhUTUxOYW1lczo6
c3JjQXR0ciwgeW91VHViZVVSTChtX2F0dHJpYnV0ZXMuZ2V0KCJzcmMiX3MpKSk7CiAgICAgaWZy
YW1lRWxlbWVudC0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihIVE1MTmFtZXM6
OmZyYW1lYm9yZGVyQXR0ciwgQXRvbVN0cmluZygiMCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZy
b21MaXRlcmFsKSk7CiAgICAgCiAgICAgLy8gRGlzYWJsZSBmcmFtZSBmbGF0dGVuaW5nIGZvciB0
aGlzIGlmcmFtZS4KQEAgLTIzMSwxMSArMjMxLDExIEBAIHN0YXRpYyBVUkwgcHJvY2Vzc0FuZENy
ZWF0ZVlvdVR1YmVVUkwoY29uc3QgVVJMJiB1cmwsIGJvb2wmIGlzWW91VHViZVNob3J0ZW5lZFVS
CiAgICAgaWYgKGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHBhdGgsICIvd2F0Y2giKSkg
ewogICAgICAgICBpZiAoIXF1ZXJ5LmlzRW1wdHkoKSkgewogICAgICAgICAgICAgY29uc3QgYXV0
byYgcXVlcnlEaWN0aW9uYXJ5ID0gcXVlcnlLZXlzQW5kVmFsdWVzKHF1ZXJ5KTsKLSAgICAgICAg
ICAgIFN0cmluZyB2aWRlb0lEID0gdmFsdWVGb3JLZXkocXVlcnlEaWN0aW9uYXJ5LCAidiIpOwor
ICAgICAgICAgICAgU3RyaW5nIHZpZGVvSUQgPSB2YWx1ZUZvcktleShxdWVyeURpY3Rpb25hcnks
ICJ2Il9zKTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgaWYgKCF2aWRlb0lELmlzRW1wdHko
KSkgewogICAgICAgICAgICAgICAgIGNvbnN0IGF1dG8mIGZyYWdtZW50RGljdGlvbmFyeSA9IHF1
ZXJ5S2V5c0FuZFZhbHVlcyh1cmwuZnJhZ21lbnRJZGVudGlmaWVyKCkpOwotICAgICAgICAgICAg
ICAgIFN0cmluZyB0aW1lSUQgPSB2YWx1ZUZvcktleShmcmFnbWVudERpY3Rpb25hcnksICJ0Iik7
CisgICAgICAgICAgICAgICAgU3RyaW5nIHRpbWVJRCA9IHZhbHVlRm9yS2V5KGZyYWdtZW50RGlj
dGlvbmFyeSwgInQiX3MpOwogICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVZb3VUdWJlVVJM
KHZpZGVvSUQsIHRpbWVJRCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTI0NiwxMCAr
MjQ2LDEwIEBAIHN0YXRpYyBVUkwgcHJvY2Vzc0FuZENyZWF0ZVlvdVR1YmVVUkwoY29uc3QgVVJM
JiB1cmwsIGJvb2wmIGlzWW91VHViZVNob3J0ZW5lZFVSCiAgICAgICAgICAgICAKICAgICAgICAg
ICAgIGlmICghcXVlcnkuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICAgICAgY29uc3QgYXV0byYg
cXVlcnlEaWN0aW9uYXJ5ID0gcXVlcnlLZXlzQW5kVmFsdWVzKHF1ZXJ5KTsKLSAgICAgICAgICAg
ICAgICBTdHJpbmcgdmlkZW9JRCA9IHZhbHVlRm9yS2V5KHF1ZXJ5RGljdGlvbmFyeSwgInYiKTsK
KyAgICAgICAgICAgICAgICBTdHJpbmcgdmlkZW9JRCA9IHZhbHVlRm9yS2V5KHF1ZXJ5RGljdGlv
bmFyeSwgInYiX3MpOwogICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIGlmICghdmlk
ZW9JRC5pc0VtcHR5KCkpIHsKLSAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHRpbWVJRCA9IHZh
bHVlRm9yS2V5KHF1ZXJ5RGljdGlvbmFyeSwgInQiKTsKKyAgICAgICAgICAgICAgICAgICAgU3Ry
aW5nIHRpbWVJRCA9IHZhbHVlRm9yS2V5KHF1ZXJ5RGljdGlvbmFyeSwgInQiX3MpOwogICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gY3JlYXRlWW91VHViZVVSTCh2aWRlb0lELCB0aW1lSUQpOwog
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJl
U291cmNlSW1wbC5jcHAKaW5kZXggYzIzYThkNjdjYjQ4MTIzM2Y3Y2I0YjUxOWIxMzZiMjIxOTA2
YmViZS4uNjA3NTNmZWNlMzVhMjlmODhlOTI2MjBhMjBiODA5YWZlOTZjYzcyMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJl
U291cmNlSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNo
UmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHAKQEAgLTkyLDcgKzkyLDcgQEAgYm9vbCBT
cGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjp1cGRhdGVEYXRhU291cmNlKGNvbnN0
IENBQXVkaW9TdHJlYW1EZXMKICAgICBpZiAoZGF0YVNvdXJjZS0+c2V0SW5wdXRGb3JtYXQoYXVk
aW9EZXNjcmlwdGlvbikpIHsKICAgICAgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgd2Vha1Ro
aXMgPSBXZWFrUHRyIHsgKnRoaXMgfV0gewogICAgICAgICAgICAgaWYgKHdlYWtUaGlzKQotICAg
ICAgICAgICAgICAgIG1fc3RhdGVVcGRhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZTo6Y3JlYXRlRXJyb3IobV9jbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvbkVycm9y
IHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlvQ2FwdHVyZSwgIlVuYWJsZSB0byBz
ZXQgaW5wdXQgZm9ybWF0IiB9KSk7CisgICAgICAgICAgICAgICAgbV9zdGF0ZVVwZGF0ZUNhbGxi
YWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihtX2NsaWVudElkZW50aWZp
ZXIsIFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6
QXVkaW9DYXB0dXJlLCAiVW5hYmxlIHRvIHNldCBpbnB1dCBmb3JtYXQiX3MgfSkpOwogICAgICAg
ICB9KTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KQEAgLTEwMCw3ICsxMDAsNyBAQCBi
b29sIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6OnVwZGF0ZURhdGFTb3VyY2Uo
Y29uc3QgQ0FBdWRpb1N0cmVhbURlcwogICAgIGlmIChkYXRhU291cmNlLT5zZXRPdXRwdXRGb3Jt
YXQoYXVkaW9EZXNjcmlwdGlvbikpIHsKICAgICAgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywg
d2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfV0gewogICAgICAgICAgICAgaWYgKHdlYWtUaGlz
KQotICAgICAgICAgICAgICAgIG1fc3RhdGVVcGRhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlv
blVwZGF0ZTo6Y3JlYXRlRXJyb3IobV9jbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlv
bkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlvQ2FwdHVyZSwgIlVuYWJs
ZSB0byBzZXQgb3V0cHV0IGZvcm1hdCIgfSkpOworICAgICAgICAgICAgICAgIG1fc3RhdGVVcGRh
dGVDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IobV9jbGllbnRJ
ZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25FcnJv
clR5cGU6OkF1ZGlvQ2FwdHVyZSwgIlVuYWJsZSB0byBzZXQgb3V0cHV0IGZvcm1hdCJfcyB9KSk7
CiAgICAgICAgIH0pOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpAQCAtMTU3LDEzICsx
NTcsMTMgQEAgdm9pZCBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjpzb3VyY2VT
dG9wcGVkKCkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIEFTU0VSVChtX3Nv
dXJjZS0+Y2FwdHVyZURpZEZhaWwoKSk7Ci0gICAgbV9zdGF0ZVVwZGF0ZUNhbGxiYWNrKFNwZWVj
aFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihtX2NsaWVudElkZW50aWZpZXIsIFNwZWVj
aFJlY29nbml0aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0
dXJlLCAiU291cmNlIGlzIHN0b3BwZWQiIH0pKTsKKyAgICBtX3N0YXRlVXBkYXRlQ2FsbGJhY2so
U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZUVycm9yKG1fY2xpZW50SWRlbnRpZmllciwg
U3BlZWNoUmVjb2duaXRpb25FcnJvciB7IFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpBdWRp
b0NhcHR1cmUsICJTb3VyY2UgaXMgc3RvcHBlZCJfcyB9KSk7CiB9CiAKIHZvaWQgU3BlZWNoUmVj
b2duaXRpb25DYXB0dXJlU291cmNlSW1wbDo6c291cmNlTXV0ZWRDaGFuZ2VkKCkKIHsKICAgICBB
U1NFUlQoaXNNYWluVGhyZWFkKCkpOwotICAgIG1fc3RhdGVVcGRhdGVDYWxsYmFjayhTcGVlY2hS
ZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IobV9jbGllbnRJZGVudGlmaWVyLCBTcGVlY2hS
ZWNvZ25pdGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlvQ2FwdHVy
ZSwgIlNvdXJjZSBpcyBtdXRlZCIgfSkpOworICAgIG1fc3RhdGVVcGRhdGVDYWxsYmFjayhTcGVl
Y2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IobV9jbGllbnRJZGVudGlmaWVyLCBTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlvQ2Fw
dHVyZSwgIlNvdXJjZSBpcyBtdXRlZCJfcyB9KSk7CiB9CiAKIHZvaWQgU3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlSW1wbDo6bXV0ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3NwZWVjaC9jb2NvYS9XZWJTcGVlY2hSZWNvZ25pemVyVGFza01vY2subW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9jb2NvYS9XZWJTcGVlY2hSZWNvZ25pemVyVGFza01v
Y2subW0KaW5kZXggMmQzNDhlZDIwYzIxYjUxMDM0ODg3OWQ1YzI2M2ZjMGUzY2ZlZDg2Yi4uYmVm
M2E1MjI1MTdmNGMyZTMyZjU4MzIzZGE5ODQzMGJiMGQxOTViNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvY29jb2EvV2ViU3BlZWNoUmVjb2duaXplclRhc2tNb2Nr
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL2NvY29hL1dlYlNwZWVjaFJl
Y29nbml6ZXJUYXNrTW9jay5tbQpAQCAtNjEsNyArNjEsNyBAQCAtICh2b2lkKWF1ZGlvU2FtcGxl
c0F2YWlsYWJsZTooQ01TYW1wbGVCdWZmZXJSZWYpc2FtcGxlQnVmZmVyCiAgICAgfQogCiAgICAg
Ly8gRmFrZSBzb21lIHJlY29nbml0aW9uIHJlc3VsdHMuCi0gICAgV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25BbHRlcm5hdGl2ZURhdGEgYWx0ZXJuYXRpdmUgeyAiVGVzdCIsIDEuMCB9OworICAg
IFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmVEYXRhIGFsdGVybmF0aXZlIHsg
IlRlc3QiX3MsIDEuMCB9OwogICAgIF9kZWxlZ2F0ZUNhbGxiYWNrKFdlYkNvcmU6OlNwZWVjaFJl
Y29nbml0aW9uVXBkYXRlOjpjcmVhdGVSZXN1bHQoX2lkZW50aWZpZXIsIHsgV2ViQ29yZTo6U3Bl
ZWNoUmVjb2duaXRpb25SZXN1bHREYXRhIHsgeyBXVEZNb3ZlKGFsdGVybmF0aXZlKSB9LCB0cnVl
IH0gfSkpOwogCiAgICAgaWYgKCFfZG9NdWx0aXBsZVJlY29nbml0aW9ucykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RvcmFnZS9TdG9yYWdlTWFuYWdlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3N0b3JhZ2UvU3RvcmFnZU1hbmFnZXIuY3BwCmluZGV4IDE4OGQz
MGI2MTk4YjE2MWUxYjQ3YWU5NzY4ZTBjMWU5NTc2NjUzYWIuLjYzNmI0OGM5ZjA0NzliYzVhZTMx
OTRlYTFlODkwNTY5NjU3MTdhNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
c3RvcmFnZS9TdG9yYWdlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9z
dG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmNwcApAQCAtNzIsNyArNzIsNyBAQCBzdGF0aWMgRXhjZXB0
aW9uT3I8Q29ubmVjdGlvbkluZm8+IGNvbm5lY3Rpb25JbmZvKE5hdmlnYXRvckJhc2UqIG5hdmln
YXRvcikKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiT3Jp
Z2luIGlzIGludmFsaWQiX3MgfTsKIAogICAgIGlmICghb3JpZ2luLT5jYW5BY2Nlc3NTdG9yYWdl
TWFuYWdlcigpKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiT3JpZ2lu
IHNob3VsZCBub3QgYWNjZXNzIHN0b3JhZ2UiIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBUeXBlRXJyb3IsICJPcmlnaW4gc2hvdWxkIG5vdCBhY2Nlc3Mgc3RvcmFnZSJfcyB9OwogCiAg
ICAgaWYgKGlzPERvY3VtZW50Pihjb250ZXh0KSkgewogICAgICAgICBpZiAoYXV0byogY29ubmVj
dGlvbiA9IGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0KS0+c3RvcmFnZUNvbm5lY3Rpb24oKSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNYW5h
Z2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNYW5hZ2Vy
LmNwcAppbmRleCAyMTk5OTJmNmI1YjE0YzViNjAyNzU0NTZhZGRiMDg1Nzc4NmUxMjVmLi5hMTYx
YjNkMmMwNWMzZjQ5YzliMGE4ZjllNjk2NmQ0NWJhYWRlZmVkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrTWFuYWdlci5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja01hbmFnZXIuY3BwCkBAIC0zMzgsNyAr
MzM4LDcgQEAgdm9pZCBXZWJMb2NrTWFuYWdlcjo6c2lnbmFsVG9BYm9ydFRoZVJlcXVlc3QoV2Vi
TG9ja0lkZW50aWZpZXIgbG9ja0lkZW50aWZpZXIpCiAgICAgICAgIGlmICh3YXNBYm9ydGVkICYm
IHdlYWtUaGlzKQogICAgICAgICAgICAgd2Vha1RoaXMtPm1fcGVuZGluZ1JlcXVlc3RzLnJlbW92
ZShsb2NrSWRlbnRpZmllcik7CiAgICAgfSk7Ci0gICAgc2V0dGxlUmVsZWFzZVByb21pc2UobG9j
a0lkZW50aWZpZXIsIEV4Y2VwdGlvbiB7IEFib3J0RXJyb3IsICJMb2NrIHJlcXVlc3Qgd2FzIGFi
b3J0ZWQgdmlhIEFib3J0U2lnbmFsIiB9KTsKKyAgICBzZXR0bGVSZWxlYXNlUHJvbWlzZShsb2Nr
SWRlbnRpZmllciwgRXhjZXB0aW9uIHsgQWJvcnRFcnJvciwgIkxvY2sgcmVxdWVzdCB3YXMgYWJv
cnRlZCB2aWEgQWJvcnRTaWduYWwiX3MgfSk7CiB9CiAKIHZvaWQgV2ViTG9ja01hbmFnZXI6OnNl
dHRsZVJlbGVhc2VQcm9taXNlKFdlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyLCBFeGNl
cHRpb25PcjxKU0M6OkpTVmFsdWU+JiYgcmVzdWx0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0xpc3RlbmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXVkaW8vQXVkaW9MaXN0ZW5lci5jcHAKaW5kZXggMDIwZTc2ZjQzNjRlNmRlZjhm
ODE3MjRkYjdjMmZkOGFlNTcwMjE3OS4uNzZjNzZkNzU0NGU3MGM5YWNkM2JkZGY5NmYzNGM4YWM2
YmE5ZmRmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b0xpc3RlbmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
TGlzdGVuZXIuY3BwCkBAIC00MCwxNSArNDAsMTUgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
QXVkaW9MaXN0ZW5lcjo6QXVkaW9MaXN0ZW5lcihCYXNlQXVkaW9Db250ZXh0JiBjb250ZXh0KQot
ICAgIDogbV9wb3NpdGlvblgoQXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJwb3NpdGlvblgi
LCAwLjAsIC1GTFRfTUFYLCBGTFRfTUFYLCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQotICAgICwg
bV9wb3NpdGlvblkoQXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJwb3NpdGlvblkiLCAwLjAs
IC1GTFRfTUFYLCBGTFRfTUFYLCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQotICAgICwgbV9wb3Np
dGlvblooQXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJwb3NpdGlvbloiLCAwLjAsIC1GTFRf
TUFYLCBGTFRfTUFYLCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQotICAgICwgbV9mb3J3YXJkWChB
dWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCwgImZvcndhcmRYIiwgMC4wLCAtRkxUX01BWCwgRkxU
X01BWCwgQXV0b21hdGlvblJhdGU6OkFSYXRlKSkKLSAgICAsIG1fZm9yd2FyZFkoQXVkaW9QYXJh
bTo6Y3JlYXRlKGNvbnRleHQsICJmb3J3YXJkWSIsIDAuMCwgLUZMVF9NQVgsIEZMVF9NQVgsIEF1
dG9tYXRpb25SYXRlOjpBUmF0ZSkpCi0gICAgLCBtX2ZvcndhcmRaKEF1ZGlvUGFyYW06OmNyZWF0
ZShjb250ZXh0LCAiZm9yd2FyZFoiLCAtMS4wLCAtRkxUX01BWCwgRkxUX01BWCwgQXV0b21hdGlv
blJhdGU6OkFSYXRlKSkKLSAgICAsIG1fdXBYKEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0LCAi
dXBYIiwgMC4wLCAtRkxUX01BWCwgRkxUX01BWCwgQXV0b21hdGlvblJhdGU6OkFSYXRlKSkKLSAg
ICAsIG1fdXBZKEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0LCAidXBZIiwgMS4wLCAtRkxUX01B
WCwgRkxUX01BWCwgQXV0b21hdGlvblJhdGU6OkFSYXRlKSkKLSAgICAsIG1fdXBaKEF1ZGlvUGFy
YW06OmNyZWF0ZShjb250ZXh0LCAidXBaIiwgMC4wLCAtRkxUX01BWCwgRkxUX01BWCwgQXV0b21h
dGlvblJhdGU6OkFSYXRlKSkKKyAgICA6IG1fcG9zaXRpb25YKEF1ZGlvUGFyYW06OmNyZWF0ZShj
b250ZXh0LCAicG9zaXRpb25YIl9zLCAwLjAsIC1GTFRfTUFYLCBGTFRfTUFYLCBBdXRvbWF0aW9u
UmF0ZTo6QVJhdGUpKQorICAgICwgbV9wb3NpdGlvblkoQXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRl
eHQsICJwb3NpdGlvblkiX3MsIDAuMCwgLUZMVF9NQVgsIEZMVF9NQVgsIEF1dG9tYXRpb25SYXRl
OjpBUmF0ZSkpCisgICAgLCBtX3Bvc2l0aW9uWihBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCwg
InBvc2l0aW9uWiJfcywgMC4wLCAtRkxUX01BWCwgRkxUX01BWCwgQXV0b21hdGlvblJhdGU6OkFS
YXRlKSkKKyAgICAsIG1fZm9yd2FyZFgoQXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJmb3J3
YXJkWCJfcywgMC4wLCAtRkxUX01BWCwgRkxUX01BWCwgQXV0b21hdGlvblJhdGU6OkFSYXRlKSkK
KyAgICAsIG1fZm9yd2FyZFkoQXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJmb3J3YXJkWSJf
cywgMC4wLCAtRkxUX01BWCwgRkxUX01BWCwgQXV0b21hdGlvblJhdGU6OkFSYXRlKSkKKyAgICAs
IG1fZm9yd2FyZFooQXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJmb3J3YXJkWiJfcywgLTEu
MCwgLUZMVF9NQVgsIEZMVF9NQVgsIEF1dG9tYXRpb25SYXRlOjpBUmF0ZSkpCisgICAgLCBtX3Vw
WChBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCwgInVwWCJfcywgMC4wLCAtRkxUX01BWCwgRkxU
X01BWCwgQXV0b21hdGlvblJhdGU6OkFSYXRlKSkKKyAgICAsIG1fdXBZKEF1ZGlvUGFyYW06OmNy
ZWF0ZShjb250ZXh0LCAidXBZIl9zLCAxLjAsIC1GTFRfTUFYLCBGTFRfTUFYLCBBdXRvbWF0aW9u
UmF0ZTo6QVJhdGUpKQorICAgICwgbV91cFooQXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJ1
cFoiX3MsIDAuMCwgLUZMVF9NQVgsIEZMVF9NQVgsIEF1dG9tYXRpb25SYXRlOjpBUmF0ZSkpCiAg
ICAgLCBtX3Bvc2l0aW9uWFZhbHVlcyhBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUp
CiAgICAgLCBtX3Bvc2l0aW9uWVZhbHVlcyhBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNp
emUpCiAgICAgLCBtX3Bvc2l0aW9uWlZhbHVlcyhBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1
bVNpemUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlv
UGFyYW0uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtLmNw
cAppbmRleCBiZTEyYmI1YWEwMjdlNTNhMTM0Njg0N2U2Yzk5M2MyM2Y5ZjAxODk4Li4wZDQ2YTNm
OTA0Y2M0ZDA5Mzg4YjRmYjAxMjMzY2I2MDhlYzdmNmQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbS5jcHAKQEAgLTEwOSw3ICsxMDksNyBAQCBFeGNl
cHRpb25Pcjx2b2lkPiBBdWRpb1BhcmFtOjpzZXRWYWx1ZUZvckJpbmRpbmdzKGZsb2F0IHZhbHVl
KQogRXhjZXB0aW9uT3I8dm9pZD4gQXVkaW9QYXJhbTo6c2V0QXV0b21hdGlvblJhdGUoQXV0b21h
dGlvblJhdGUgYXV0b21hdGlvblJhdGUpCiB7CiAgICAgaWYgKG1fYXV0b21hdGlvblJhdGVNb2Rl
ID09IEF1dG9tYXRpb25SYXRlTW9kZTo6Rml4ZWQpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBJbnZhbGlkU3RhdGVFcnJvciwgImF1dG9tYXRpb25SYXRlIGNhbm5vdCBiZSBjaGFuZ2VkIGZv
ciB0aGlzIG5vZGUiIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVF
cnJvciwgImF1dG9tYXRpb25SYXRlIGNhbm5vdCBiZSBjaGFuZ2VkIGZvciB0aGlzIG5vZGUiX3Mg
fTsKIAogICAgIG1fYXV0b21hdGlvblJhdGUgPSBhdXRvbWF0aW9uUmF0ZTsKICAgICByZXR1cm4g
eyB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1Bh
cmFtVGltZWxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1Bh
cmFtVGltZWxpbmUuY3BwCmluZGV4IGU1OWFhN2U2ZDg0MmZhZWJmZGMzOGEwNTllYzk1YzgxOTNl
NTQ2YTYuLmNjMzRkYzM0ZTUwNzFkNzRiZDUyYzFkYjY4OGJjOWYyMTQ4ZTUzZDcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbVRpbWVsaW5lLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW1UaW1lbGlu
ZS5jcHAKQEAgLTE3Miw3ICsxNzIsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBBdWRpb1BhcmFtVGlt
ZWxpbmU6Omluc2VydEV2ZW50KFBhcmFtRXZlbnQmJiBldmVudCkKICAgICAgICAgICAgIC8vIE90
aGVyd2lzZSwgbWFrZSBzdXJlIHRoaXMgZXZlbnQgZG9lc24ndCBvdmVybGFwIGFueSBleGlzdGlu
ZyBTZXRWYWx1ZUN1cnZlIGV2ZW50LgogICAgICAgICAgICAgYXV0byBwYXJlbnRFdmVudEVuZFRp
bWUgPSBwYXJhbUV2ZW50LnRpbWUoKSArIHBhcmFtRXZlbnQuZHVyYXRpb24oKTsKICAgICAgICAg
ICAgIGlmIChldmVudC50aW1lKCkgPj0gcGFyYW1FdmVudC50aW1lKCkgJiYgZXZlbnQudGltZSgp
IDwgcGFyZW50RXZlbnRFbmRUaW1lKQotICAgICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBOb3RTdXBwb3J0ZWRFcnJvciwgIkV2ZW50cyBhcmUgb3ZlcmxhcHBpbmciIH07CisgICAgICAg
ICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yLCAiRXZlbnRzIGFy
ZSBvdmVybGFwcGluZyJfcyB9OwogICAgICAgICB9CiAKICAgICAgICAgaWYgKHBhcmFtRXZlbnQu
dGltZSgpID4gaW5zZXJ0VGltZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQmlxdWFkRmlsdGVyTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0JpcXVhZEZpbHRlck5vZGUuY3BwCmluZGV4IDE0MGVkMGEyNmU1NzU1MTcwMTRhYzMz
YTY0MzE1NTg5MDljMDI3MmMuLjVkNzM2Y2ZjYjI1NTkxOGY4OTc1ZDdiM2IxZjc4ZmIwYjAzNDUx
NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmlxdWFkRmls
dGVyTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CaXF1YWRG
aWx0ZXJOb2RlLmNwcApAQCAtNzQsNyArNzQsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBCaXF1YWRG
aWx0ZXJOb2RlOjpnZXRGcmVxdWVuY3lSZXNwb25zZShjb25zdCBSZWY8RmxvYXQzMkFycmF5Pgog
ewogICAgIHVuc2lnbmVkIGxlbmd0aCA9IGZyZXF1ZW5jeUh6LT5sZW5ndGgoKTsKICAgICBpZiAo
bWFnUmVzcG9uc2UtPmxlbmd0aCgpICE9IGxlbmd0aCB8fCBwaGFzZVJlc3BvbnNlLT5sZW5ndGgo
KSAhPSBsZW5ndGgpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJy
b3IsICJUaGUgYXJyYXlzIHBhc3NlZCBhcyBhcmd1bWVudHMgbXVzdCBoYXZlIHRoZSBzYW1lIGxl
bmd0aCIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwg
IlRoZSBhcnJheXMgcGFzc2VkIGFzIGFyZ3VtZW50cyBtdXN0IGhhdmUgdGhlIHNhbWUgbGVuZ3Ro
Il9zIH07CiAKICAgICBpZiAobGVuZ3RoKQogICAgICAgICBiaXF1YWRQcm9jZXNzb3IoKS0+Z2V0
RnJlcXVlbmN5UmVzcG9uc2UobGVuZ3RoLCBmcmVxdWVuY3lIei0+ZGF0YSgpLCBtYWdSZXNwb25z
ZS0+ZGF0YSgpLCBwaGFzZVJlc3BvbnNlLT5kYXRhKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CaXF1YWRQcm9jZXNzb3IuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9CaXF1YWRQcm9jZXNzb3IuY3BwCmluZGV4IDlkZjYyOWQ3ZWJm
ZGQ2ZmI3NDE1ZjNlYjc3OTcyNmJiYWJjYThmMWMuLmY5YTU0MzRlODgwNWQ3ZGU0OTE4YTZmYmQ4
NzU0ZDFhNWVkMjcyMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQmlxdWFkUHJvY2Vzc29yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL0JpcXVhZFByb2Nlc3Nvci5jcHAKQEAgLTM1LDEwICszNSwxMCBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgCiBCaXF1YWRQcm9jZXNzb3I6OkJpcXVhZFByb2Nlc3NvcihCYXNlQXVkaW9D
b250ZXh0JiBjb250ZXh0LCBmbG9hdCBzYW1wbGVSYXRlLCBzaXplX3QgbnVtYmVyT2ZDaGFubmVs
cywgYm9vbCBhdXRvSW5pdGlhbGl6ZSkKICAgICA6IEF1ZGlvRFNQS2VybmVsUHJvY2Vzc29yKHNh
bXBsZVJhdGUsIG51bWJlck9mQ2hhbm5lbHMpCi0gICAgLCBtX3BhcmFtZXRlcjEoQXVkaW9QYXJh
bTo6Y3JlYXRlKGNvbnRleHQsICJmcmVxdWVuY3kiLCAzNTAuMCwgMC4wLCAwLjUgKiBzYW1wbGVS
YXRlLCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQotICAgICwgbV9wYXJhbWV0ZXIyKEF1ZGlvUGFy
YW06OmNyZWF0ZShjb250ZXh0LCAiUSIsIDEsIC1GTFRfTUFYLCBGTFRfTUFYLCBBdXRvbWF0aW9u
UmF0ZTo6QVJhdGUpKQotICAgICwgbV9wYXJhbWV0ZXIzKEF1ZGlvUGFyYW06OmNyZWF0ZShjb250
ZXh0LCAiZ2FpbiIsIDAuMCwgLUZMVF9NQVgsIDQwICogc3RkOjpsb2cxMChzdGQ6Om51bWVyaWNf
bGltaXRzPGZsb2F0Pjo6bWF4KCkpLCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQotICAgICwgbV9w
YXJhbWV0ZXI0KEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0LCAiZGV0dW5lIiwgMC4wLCAtMTUz
NjAwLCAxNTM2MDAsIEF1dG9tYXRpb25SYXRlOjpBUmF0ZSkpCisgICAgLCBtX3BhcmFtZXRlcjEo
QXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJmcmVxdWVuY3kiX3MsIDM1MC4wLCAwLjAsIDAu
NSAqIHNhbXBsZVJhdGUsIEF1dG9tYXRpb25SYXRlOjpBUmF0ZSkpCisgICAgLCBtX3BhcmFtZXRl
cjIoQXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJRIl9zLCAxLCAtRkxUX01BWCwgRkxUX01B
WCwgQXV0b21hdGlvblJhdGU6OkFSYXRlKSkKKyAgICAsIG1fcGFyYW1ldGVyMyhBdWRpb1BhcmFt
OjpjcmVhdGUoY29udGV4dCwgImdhaW4iX3MsIDAuMCwgLUZMVF9NQVgsIDQwICogc3RkOjpsb2cx
MChzdGQ6Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6bWF4KCkpLCBBdXRvbWF0aW9uUmF0ZTo6QVJh
dGUpKQorICAgICwgbV9wYXJhbWV0ZXI0KEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0LCAiZGV0
dW5lIl9zLCAwLjAsIC0xNTM2MDAsIDE1MzYwMCwgQXV0b21hdGlvblJhdGU6OkFSYXRlKSkKIHsK
ICAgICBpZiAoYXV0b0luaXRpYWxpemUpCiAgICAgICAgIGluaXRpYWxpemUoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRGVsYXlQcm9jZXNzb3IuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9EZWxheVByb2Nlc3Nvci5jcHAKaW5kZXgg
YWVlNDBlOTRlNjVkZWU0YmY4NDQyNTEyOTRlMzE0Mzc4YWQwNDJhNS4uMWY5MGNiYzlmMTk3MDdh
OWJjMTdhMTEzYmNjNGIxZDU4Zjk0MDUwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9EZWxheVByb2Nlc3Nvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9EZWxheVByb2Nlc3Nvci5jcHAKQEAgLTM0LDcgKzM0LDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBEZWxheVByb2Nlc3Nvcjo6RGVsYXlQcm9jZXNzb3IoQmFzZUF1ZGlv
Q29udGV4dCYgY29udGV4dCwgZmxvYXQgc2FtcGxlUmF0ZSwgdW5zaWduZWQgbnVtYmVyT2ZDaGFu
bmVscywgZG91YmxlIG1heERlbGF5VGltZSkKICAgICA6IEF1ZGlvRFNQS2VybmVsUHJvY2Vzc29y
KHNhbXBsZVJhdGUsIG51bWJlck9mQ2hhbm5lbHMpCi0gICAgLCBtX2RlbGF5VGltZShBdWRpb1Bh
cmFtOjpjcmVhdGUoY29udGV4dCwgImRlbGF5VGltZSIsIDAuMCwgMC4wLCBtYXhEZWxheVRpbWUs
IEF1dG9tYXRpb25SYXRlOjpBUmF0ZSkpCisgICAgLCBtX2RlbGF5VGltZShBdWRpb1BhcmFtOjpj
cmVhdGUoY29udGV4dCwgImRlbGF5VGltZSJfcywgMC4wLCAwLjAsIG1heERlbGF5VGltZSwgQXV0
b21hdGlvblJhdGU6OkFSYXRlKSkKIHsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9XYXZlU2hhcGVyTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL1dhdmVTaGFwZXJOb2RlLmNwcAppbmRleCBmYzE1MjgyN2IzYTBjYzI3YThk
NDNiNTQ1NDRmZjRiYzViYzQ5YzliLi42NDI5YzMwNTE2MTJhZmVlODJiM2ZjYmQ1OGIyZjYwNzQw
ZmY5NDg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1dhdmVT
aGFwZXJOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1dhdmVT
aGFwZXJOb2RlLmNwcApAQCAtNDMsNyArNDMsNyBAQCBFeGNlcHRpb25PcjxSZWY8V2F2ZVNoYXBl
ck5vZGU+PiBXYXZlU2hhcGVyTm9kZTo6Y3JlYXRlKEJhc2VBdWRpb0NvbnRleHQmIGNvbnRleAog
ICAgIGlmIChvcHRpb25zLmN1cnZlKSB7CiAgICAgICAgIGN1cnZlID0gRmxvYXQzMkFycmF5Ojp0
cnlDcmVhdGUob3B0aW9ucy5jdXJ2ZS0+ZGF0YSgpLCBvcHRpb25zLmN1cnZlLT5zaXplKCkpOwog
ICAgICAgICBpZiAoIWN1cnZlKQotICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFs
aWRTdGF0ZUVycm9yLCAiSW52YWxpZCBjdXJ2ZSBwYXJhbWV0ZXIiIH07CisgICAgICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJJbnZhbGlkIGN1cnZlIHBhcmFt
ZXRlciJfcyB9OwogICAgIH0KIAogICAgIGF1dG8gbm9kZSA9IGFkb3B0UmVmKCpuZXcgV2F2ZVNo
YXBlck5vZGUoY29udGV4dCkpOwpAQCAtNzYsNyArNzYsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBX
YXZlU2hhcGVyTm9kZTo6c2V0Q3VydmVGb3JCaW5kaW5ncyhSZWZQdHI8RmxvYXQzMkFycmF5PiYm
IGN1cgogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7IAogICAgIERFQlVHX0xPRyhMT0dJREVO
VElGSUVSKTsKICAgICBpZiAoY3VydmUgJiYgY3VydmUtPmxlbmd0aCgpIDwgMikKLSAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiTGVuZ3RoIG9mIGN1cnZlIGFy
cmF5IGNhbm5vdCBiZSBsZXNzIHRoYW4gMiIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7
IEludmFsaWRTdGF0ZUVycm9yLCAiTGVuZ3RoIG9mIGN1cnZlIGFycmF5IGNhbm5vdCBiZSBsZXNz
IHRoYW4gMiJfcyB9OwogCiAgICAgaWYgKGN1cnZlKSB7CiAgICAgICAgIC8vIFRoZSBzcGVjaWZp
Y2F0aW9uIHN0YXRlcyB0aGF0IHdlIHNob3VsZCBtYWludGFpbiBhbiBpbnRlcm5hbCBjb3B5IG9m
IHRoZSBjdXJ2ZSBzbyB0aGF0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1dGhuL1dlYkF1dGhlbnRpY2F0aW9uVXRpbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdXRobi9XZWJBdXRoZW50aWNhdGlvblV0aWxzLmNwcAppbmRleCBjMWZiZjA1NmNjNmFi
NWUxODI5ODgyMjQ2MzQ0MWI0YTg1ZWFiZDRjLi4zMzJlMmJlNzk1YTAxZjFlMDQ2NjJkYzQxMTNi
YWVhYzQ0MDcxZTc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhu
L1dlYkF1dGhlbnRpY2F0aW9uVXRpbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXV0aG4vV2ViQXV0aGVudGljYXRpb25VdGlscy5jcHAKQEAgLTEzOCw3ICsxMzgsNyBAQCBj
Ym9yOjpDQk9SVmFsdWU6Ok1hcFZhbHVlIGJ1aWxkQXR0ZXN0YXRpb25NYXAoVmVjdG9yPHVpbnQ4
X3Q+JiYgYXV0aERhdGEsIFN0cmluZwogICAgICAgICBjb25zdCBzaXplX3QgYWFndWlkT2Zmc2V0
ID0gcnBJZEhhc2hMZW5ndGggKyBmbGFnc0xlbmd0aCArIHNpZ25Db3VudGVyTGVuZ3RoOwogICAg
ICAgICBpZiAoYXV0aERhdGEuc2l6ZSgpID49IGFhZ3VpZE9mZnNldCArIGFhZ3VpZExlbmd0aCkK
ICAgICAgICAgICAgIG1lbXNldChhdXRoRGF0YS5kYXRhKCkgKyBhYWd1aWRPZmZzZXQsIDAsIGFh
Z3VpZExlbmd0aCk7Ci0gICAgICAgIGZvcm1hdCA9IG5vbmVBdHRlc3RhdGlvblZhbHVlOworICAg
ICAgICBmb3JtYXQgPSBTdHJpbmcgeyBub25lQXR0ZXN0YXRpb25WYWx1ZSB9OwogICAgICAgICBz
dGF0ZW1lbnRNYXAuY2xlYXIoKTsKICAgICB9CiAgICAgYXR0ZXN0YXRpb25PYmplY3RNYXBbY2Jv
cjo6Q0JPUlZhbHVlKCJhdXRoRGF0YSIpXSA9IGNib3I6OkNCT1JWYWx1ZShXVEZNb3ZlKGF1dGhE
YXRhKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8v
RGV2aWNlUmVzcG9uc2VDb252ZXJ0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dXRobi9maWRvL0RldmljZVJlc3BvbnNlQ29udmVydGVyLmNwcAppbmRleCBmMjFjNWVlN2EyNWY1
ZTkyNzU0NDMxZDM1NGE4N2E4ZDIxYzU4M2M4Li43MzVhOWJmOGUwM2E4NDJhOTdkNDY5NGFjY2M2
YjIyZTEzZWZlMDQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhu
L2ZpZG8vRGV2aWNlUmVzcG9uc2VDb252ZXJ0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXV0aG4vZmlkby9EZXZpY2VSZXNwb25zZUNvbnZlcnRlci5jcHAKQEAgLTEyNiw3
ICsxMjYsNyBAQCBSZWZQdHI8QXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2U+IHJlYWRD
VEFQTWFrZUNyZWRlbnRpYWxSZXNwb25zZShjb25zdCBWZQogICAgICAgICAvLyBUaGUgcmVhc29u
IHdoeSB3ZSBjYW4ndCBkaXJlY3RseSBwYXNzIGF1dGhlbnRpY2F0b3JEYXRhL2Zvcm1hdC9hdHRT
dG10IHRvIGJ1aWxkQXR0ZXN0YXRpb25PYmplY3QKICAgICAgICAgLy8gaXMgdGhhdCB0aGV5IGFy
ZSBDQk9SVmFsdWUgaW5zdGVhZCBvZiB0aGUgcmF3IHR5cGUuCiAgICAgICAgIC8vIEFsc28sIGZv
cm1hdCBhbmQgYXR0U3RtdCBhcmUgb21pdHRlZCBhcyB0aGV5IGFyZSBub3QgdXNlZnVsIGluIG5v
bmUgYXR0ZXN0YXRpb24uCi0gICAgICAgIGF0dGVzdGF0aW9uT2JqZWN0ID0gYnVpbGRBdHRlc3Rh
dGlvbk9iamVjdChWZWN0b3I8dWludDhfdD4oYXV0aGVudGljYXRvckRhdGEuZ2V0Qnl0ZVN0cmlu
ZygpKSwgIiIsIHsgfSwgYXR0ZXN0YXRpb24pOworICAgICAgICBhdHRlc3RhdGlvbk9iamVjdCA9
IGJ1aWxkQXR0ZXN0YXRpb25PYmplY3QoVmVjdG9yPHVpbnQ4X3Q+KGF1dGhlbnRpY2F0b3JEYXRh
LmdldEJ5dGVTdHJpbmcoKSksIFN0cmluZyB7IGVtcHR5U3RyaW5nKCkgfSwgeyB9LCBhdHRlc3Rh
dGlvbik7CiAgICAgfSBlbHNlIHsKICAgICAgICAgQ0JPUjo6TWFwVmFsdWUgYXR0ZXN0YXRpb25P
YmplY3RNYXA7CiAgICAgICAgIGF0dGVzdGF0aW9uT2JqZWN0TWFwW0NCT1IoImF1dGhEYXRhIild
ID0gV1RGTW92ZShhdXRoZW50aWNhdG9yRGF0YSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vUGluLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXV0aG4vZmlkby9QaW4uY3BwCmluZGV4IDlmYTY3M2YxODJjY2NiMDQ2MjE3MzNhZTM4YzUy
MzZkMzYyYjVjODguLmI0NGY5MGIwMTQzNDI3ZDE1MjY3ZDdjOWY2N2YwY2ZiMDJjM2ZiM2QgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9QaW4uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9QaW4uY3BwCkBAIC0xNzEs
NyArMTcxLDcgQEAgc3RkOjpvcHRpb25hbDxLZXlBZ3JlZW1lbnRSZXNwb25zZT4gS2V5QWdyZWVt
ZW50UmVzcG9uc2U6OnBhcnNlRnJvbUNPU0UoY29uc3QgQ0IKIAogICAgIGNvbnN0IGF1dG8mIHgg
PSB4SXQtPnNlY29uZC5nZXRCeXRlU3RyaW5nKCk7CiAgICAgY29uc3QgYXV0byYgeSA9IHlJdC0+
c2Vjb25kLmdldEJ5dGVTdHJpbmcoKTsKLSAgICBhdXRvIHBlZXJLZXkgPSBDcnlwdG9LZXlFQzo6
aW1wb3J0UmF3KENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkVDREgsICJQLTI1NiIsIGVuY29k
ZVJhd1B1YmxpY0tleSh4LCB5KSwgdHJ1ZSwgQ3J5cHRvS2V5VXNhZ2VEZXJpdmVCaXRzKTsKKyAg
ICBhdXRvIHBlZXJLZXkgPSBDcnlwdG9LZXlFQzo6aW1wb3J0UmF3KENyeXB0b0FsZ29yaXRobUlk
ZW50aWZpZXI6OkVDREgsICJQLTI1NiJfcywgZW5jb2RlUmF3UHVibGljS2V5KHgsIHkpLCB0cnVl
LCBDcnlwdG9LZXlVc2FnZURlcml2ZUJpdHMpOwogICAgIGlmICghcGVlcktleSkKICAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKIApAQCAtMjQ3LDcgKzI0Nyw3IEBAIHN0ZDo6b3B0aW9uYWw8
VG9rZW5SZXF1ZXN0PiBUb2tlblJlcXVlc3Q6OnRyeUNyZWF0ZShjb25zdCBDU3RyaW5nJiBwaW4s
IGNvbnN0IENyCiAgICAgLy8gVGhlIGZvbGxvd2luZyBpbXBsZW1lbnRzIFNlY3Rpb24gNS41LjQg
R2V0dGluZyBzaGFyZWRTZWNyZXQgZnJvbSBBdXRoZW50aWNhdG9yLgogICAgIC8vIGh0dHBzOi8v
Zmlkb2FsbGlhbmNlLm9yZy9zcGVjcy9maWRvLXYyLjAtcHMtMjAxOTAxMzAvZmlkby1jbGllbnQt
dG8tYXV0aGVudGljYXRvci1wcm90b2NvbC12Mi4wLXBzLTIwMTkwMTMwLmh0bWwjZ2V0dGluZ1No
YXJlZFNlY3JldAogICAgIC8vIDEuIEdlbmVyYXRlIGEgUDI1NiBrZXkgcGFpci4KLSAgICBhdXRv
IGtleVBhaXJSZXN1bHQgPSBDcnlwdG9LZXlFQzo6Z2VuZXJhdGVQYWlyKENyeXB0b0FsZ29yaXRo
bUlkZW50aWZpZXI6OkVDREgsICJQLTI1NiIsIHRydWUsIENyeXB0b0tleVVzYWdlRGVyaXZlQml0
cyk7CisgICAgYXV0byBrZXlQYWlyUmVzdWx0ID0gQ3J5cHRvS2V5RUM6OmdlbmVyYXRlUGFpcihD
cnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpFQ0RILCAiUC0yNTYiX3MsIHRydWUsIENyeXB0b0tl
eVVzYWdlRGVyaXZlQml0cyk7CiAgICAgQVNTRVJUKCFrZXlQYWlyUmVzdWx0Lmhhc0V4Y2VwdGlv
bigpKTsKICAgICBhdXRvIGtleVBhaXIgPSBrZXlQYWlyUmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1
ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8v
VTJmUmVzcG9uc2VDb252ZXJ0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRo
bi9maWRvL1UyZlJlc3BvbnNlQ29udmVydGVyLmNwcAppbmRleCAzZjM2NmFhMjcwNjg0OTc0NWFj
YTI4MTc5YjU5OTZlNjY2ZWUyNmVkLi5hNGZkZTE1ZmZiZmQ1NTU3N2IyMjlkODY0OWM2NzY0OGNl
N2ViOTZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8v
VTJmUmVzcG9uc2VDb252ZXJ0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXV0aG4vZmlkby9VMmZSZXNwb25zZUNvbnZlcnRlci5jcHAKQEAgLTE1OCw3ICsxNTgsNyBAQCBS
ZWZQdHI8QXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2U+IHJlYWRVMmZSZWdpc3RlclJl
c3BvbnNlKGNvbnN0IFN0cmluZyYgcgogICAgIGlmIChmaWRvQXR0ZXN0YXRpb25TdGF0ZW1lbnQu
ZW1wdHkoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBhdXRvIGF0dGVzdGF0aW9u
T2JqZWN0ID0gYnVpbGRBdHRlc3RhdGlvbk9iamVjdChXVEZNb3ZlKGF1dGhEYXRhKSwgImZpZG8t
dTJmIiwgV1RGTW92ZShmaWRvQXR0ZXN0YXRpb25TdGF0ZW1lbnQpLCBhdHRlc3RhdGlvbik7Cisg
ICAgYXV0byBhdHRlc3RhdGlvbk9iamVjdCA9IGJ1aWxkQXR0ZXN0YXRpb25PYmplY3QoV1RGTW92
ZShhdXRoRGF0YSksICJmaWRvLXUyZiJfcywgV1RGTW92ZShmaWRvQXR0ZXN0YXRpb25TdGF0ZW1l
bnQpLCBhdHRlc3RhdGlvbik7CiAKICAgICByZXR1cm4gQXV0aGVudGljYXRvckF0dGVzdGF0aW9u
UmVzcG9uc2U6OmNyZWF0ZShjcmVkZW50aWFsSWQsIGF0dGVzdGF0aW9uT2JqZWN0LCBhdHRhY2ht
ZW50KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2Uv
Q2hhbmdlVmVyc2lvbldyYXBwZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRh
YmFzZS9DaGFuZ2VWZXJzaW9uV3JhcHBlci5jcHAKaW5kZXggOTRlZjUwOTU1OGI2YzI2NTlmZGZh
M2Q2ODliNGIwZDI4MzczZDhhOC4uMzVjMGUxNmUzZTM1MTMyMzNjMjJkOGYzYWE1NjQ1MjAzZDk4
NDc0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9DaGFu
Z2VWZXJzaW9uV3JhcHBlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRh
YmFzZS9DaGFuZ2VWZXJzaW9uV3JhcHBlci5jcHAKQEAgLTUzLDcgKzUzLDcgQEAgYm9vbCBDaGFu
Z2VWZXJzaW9uV3JhcHBlcjo6cGVyZm9ybVByZWZsaWdodChTUUxUcmFuc2FjdGlvbiYgdHJhbnNh
Y3Rpb24pCiAgICAgfQogCiAgICAgaWYgKGFjdHVhbFZlcnNpb24gIT0gbV9vbGRWZXJzaW9uKSB7
Ci0gICAgICAgIG1fc3FsRXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpWRVJTSU9O
X0VSUiwgImN1cnJlbnQgdmVyc2lvbiBvZiB0aGUgZGF0YWJhc2UgYW5kIGBvbGRWZXJzaW9uYCBh
cmd1bWVudCBkbyBub3QgbWF0Y2giKTsKKyAgICAgICAgbV9zcWxFcnJvciA9IFNRTEVycm9yOjpj
cmVhdGUoU1FMRXJyb3I6OlZFUlNJT05fRVJSLCAiY3VycmVudCB2ZXJzaW9uIG9mIHRoZSBkYXRh
YmFzZSBhbmQgYG9sZFZlcnNpb25gIGFyZ3VtZW50IGRvIG5vdCBtYXRjaCJfcyk7CiAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZGF0YWJhc2UvRE9NV2luZG93V2ViRGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJkYXRhYmFzZS9ET01XaW5kb3dXZWJEYXRhYmFzZS5jcHAKaW5kZXggOGFjMmFk
NmFmNWU0YTNiZmY4NGMyNjc2YzBlMjRlNmJiYzJmM2I1Yy4uNTZhYzBlNDIyZGQ0ZGY5MzZlM2Nj
YjAwY2U1ZjQ1YzNkNjU1NDE1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJkYXRhYmFzZS9ET01XaW5kb3dXZWJEYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJkYXRhYmFzZS9ET01XaW5kb3dXZWJEYXRhYmFzZS5jcHAKQEAgLTQ1LDcgKzQ1
LDcgQEAgRXhjZXB0aW9uT3I8UmVmUHRyPERhdGFiYXNlPj4gRE9NV2luZG93V2ViRGF0YWJhc2U6
Om9wZW5EYXRhYmFzZShET01XaW5kb3cmIHdpbmQKICAgICBhdXRvKiBkb2N1bWVudCA9IHdpbmRv
dy5kb2N1bWVudCgpOwogICAgIGlmICghZG9jdW1lbnQpCiAgICAgICAgIHJldHVybiBFeGNlcHRp
b24geyBTZWN1cml0eUVycm9yIH07Ci0gICAgZG9jdW1lbnQtPmFkZENvbnNvbGVNZXNzYWdlKE1l
c3NhZ2VTb3VyY2U6OlN0b3JhZ2UsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgIldlYiBTUUwgaXMg
ZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSBJbmRleGVkREIgaW5zdGVhZC4iKTsKKyAgICBkb2N1bWVu
dC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6U3RvcmFnZSwgTWVzc2FnZUxldmVs
OjpXYXJuaW5nLCAiV2ViIFNRTCBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlIEluZGV4ZWREQiBp
bnN0ZWFkLiJfcyk7CiAKICAgICBhdXRvJiBzZWN1cml0eU9yaWdpbiA9IGRvY3VtZW50LT5zZWN1
cml0eU9yaWdpbigpOwogICAgIGlmICghc2VjdXJpdHlPcmlnaW4uY2FuQWNjZXNzRGF0YWJhc2Uo
JmRvY3VtZW50LT50b3BPcmlnaW4oKSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
ZGF0YWJhc2UvRGF0YWJhc2UuY3BwCmluZGV4IDdjZmIxYzQxMGU2N2QwYjA3ZjdlMzQ5NDgyZGMw
ZWU5ZjZiMTE2ZGYuLmNkMGM0MTRmYjMxMDAyNDEzZWEyYmZkZDA5ODMwNWQ1MWI5ZjFmZDIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwCkBA
IC0xOTgsNyArMTk4LDcgQEAgRGF0YWJhc2U6OkRhdGFiYXNlKERhdGFiYXNlQ29udGV4dCYgY29u
dGV4dCwgY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGUKICAgICAsIG1fZGlzcGxh
eU5hbWUoZGlzcGxheU5hbWUuaXNvbGF0ZWRDb3B5KCkpCiAgICAgLCBtX2VzdGltYXRlZFNpemUo
ZXN0aW1hdGVkU2l6ZSkKICAgICAsIG1fZmlsZW5hbWUoRGF0YWJhc2VNYW5hZ2VyOjpzaW5nbGV0
b24oKS5mdWxsUGF0aEZvckRhdGFiYXNlKG1fZG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCksIG1f
bmFtZSkpCi0gICAgLCBtX2RhdGFiYXNlQXV0aG9yaXplcihEYXRhYmFzZUF1dGhvcml6ZXI6OmNy
ZWF0ZSh1bnF1YWxpZmllZEluZm9UYWJsZU5hbWUpKQorICAgICwgbV9kYXRhYmFzZUF1dGhvcml6
ZXIoRGF0YWJhc2VBdXRob3JpemVyOjpjcmVhdGUoU3RyaW5nIHsgdW5xdWFsaWZpZWRJbmZvVGFi
bGVOYW1lIH0pKQogewogICAgIHsKICAgICAgICAgTG9ja2VyIGxvY2tlciB7IGd1aWRMb2NrIH07
CkBAIC02ODcsNyArNjg3LDcgQEAgdm9pZCBEYXRhYmFzZTo6cnVuVHJhbnNhY3Rpb24oUmVmUHRy
PFNRTFRyYW5zYWN0aW9uQ2FsbGJhY2s+JiYgY2FsbGJhY2ssIFJlZlB0cjwKICAgICBpZiAoIW1f
aXNUcmFuc2FjdGlvblF1ZXVlRW5hYmxlZCkgewogICAgICAgICBpZiAoZXJyb3JDYWxsYmFjaykg
ewogICAgICAgICAgICAgbV9kb2N1bWVudC0+ZXZlbnRMb29wKCkucXVldWVUYXNrKFRhc2tTb3Vy
Y2U6Ok5ldHdvcmtpbmcsIFtlcnJvckNhbGxiYWNrID0gUmVmIHsgKmVycm9yQ2FsbGJhY2sgfV0o
KSB7Ci0gICAgICAgICAgICAgICAgZXJyb3JDYWxsYmFjay0+aGFuZGxlRXZlbnQoU1FMRXJyb3I6
OmNyZWF0ZShTUUxFcnJvcjo6VU5LTk9XTl9FUlIsICJkYXRhYmFzZSBoYXMgYmVlbiBjbG9zZWQi
KSk7CisgICAgICAgICAgICAgICAgZXJyb3JDYWxsYmFjay0+aGFuZGxlRXZlbnQoU1FMRXJyb3I6
OmNyZWF0ZShTUUxFcnJvcjo6VU5LTk9XTl9FUlIsICJkYXRhYmFzZSBoYXMgYmVlbiBjbG9zZWQi
X3MpKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9CiAgICAgICAgIHJldHVybjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VBdXRob3Jp
emVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VBdXRo
b3JpemVyLmNwcAppbmRleCBlMmRjNzA2ZjVkOTY1ZDJkN2E1Y2JhODcyMTY2Y2Y1M2E5ODA4YTFm
Li5kY2Y5ZWI5NTJkZGQwM2I0YjBkN2FkODZhNmNjZDVmYjQzZTNkY2VhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlQXV0aG9yaXplci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZUF1dGhvcml6
ZXIuY3BwCkBAIC02Miw2NCArNjIsNjQgQEAgdm9pZCBEYXRhYmFzZUF1dGhvcml6ZXI6OmFkZEFs
bG93ZWRGdW5jdGlvbnMoKQogewogICAgIC8vIFNRTGl0ZSBmdW5jdGlvbnMgdXNlZCB0byBoZWxw
IGltcGxlbWVudCBzb21lIG9wZXJhdGlvbnMKICAgICAvLyBBTFRFUiBUQUJMRSBoZWxwZXJzCi0g
ICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgic3FsaXRlX3JlbmFtZV90YWJsZSIpOwotICAgIG1f
YWxsb3dlZEZ1bmN0aW9ucy5hZGQoInNxbGl0ZV9yZW5hbWVfdHJpZ2dlciIpOworICAgIG1fYWxs
b3dlZEZ1bmN0aW9ucy5hZGQoInNxbGl0ZV9yZW5hbWVfdGFibGUiX3MpOworICAgIG1fYWxsb3dl
ZEZ1bmN0aW9ucy5hZGQoInNxbGl0ZV9yZW5hbWVfdHJpZ2dlciJfcyk7CiAgICAgLy8gR0xPQiBo
ZWxwZXJzCi0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgiZ2xvYiIpOworICAgIG1fYWxsb3dl
ZEZ1bmN0aW9ucy5hZGQoImdsb2IiX3MpOwogCiAgICAgLy8gU1FMaXRlIGNvcmUgZnVuY3Rpb25z
Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgiYWJzIik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rp
b25zLmFkZCgiY2hhbmdlcyIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoImNvYWxlc2Nl
Iik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgiZ2xvYiIpOwotICAgIG1fYWxsb3dlZEZ1
bmN0aW9ucy5hZGQoImlmbnVsbCIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoImhleCIp
OwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoImxhc3RfaW5zZXJ0X3Jvd2lkIik7Ci0gICAg
bV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgibGVuZ3RoIik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25z
LmFkZCgibGlrZSIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoImxvd2VyIik7Ci0gICAg
bV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgibHRyaW0iKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMu
YWRkKCJtYXgiKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJtaW4iKTsKLSAgICBtX2Fs
bG93ZWRGdW5jdGlvbnMuYWRkKCJudWxsaWYiKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRk
KCJxdW90ZSIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInJlcGxhY2UiKTsKLSAgICBt
X2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJyb3VuZCIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5h
ZGQoInJ0cmltIik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgic291bmRleCIpOwotICAg
IG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInNxbGl0ZV9zb3VyY2VfaWQiKTsKLSAgICBtX2FsbG93
ZWRGdW5jdGlvbnMuYWRkKCJzcWxpdGVfdmVyc2lvbiIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9u
cy5hZGQoInN1YnN0ciIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInRvdGFsX2NoYW5n
ZXMiKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJ0cmltIik7Ci0gICAgbV9hbGxvd2Vk
RnVuY3Rpb25zLmFkZCgidHlwZW9mIik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgidXBw
ZXIiKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJ6ZXJvYmxvYiIpOworICAgIG1fYWxs
b3dlZEZ1bmN0aW9ucy5hZGQoImFicyJfcyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgi
Y2hhbmdlcyJfcyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgiY29hbGVzY2UiX3MpOwor
ICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoImdsb2IiX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0
aW9ucy5hZGQoImlmbnVsbCJfcyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgiaGV4Il9z
KTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJsYXN0X2luc2VydF9yb3dpZCJfcyk7Cisg
ICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgibGVuZ3RoIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5j
dGlvbnMuYWRkKCJsaWtlIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJsb3dlciJf
cyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgibHRyaW0iX3MpOworICAgIG1fYWxsb3dl
ZEZ1bmN0aW9ucy5hZGQoIm1heCJfcyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgibWlu
Il9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJudWxsaWYiX3MpOworICAgIG1fYWxs
b3dlZEZ1bmN0aW9ucy5hZGQoInF1b3RlIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRk
KCJyZXBsYWNlIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJyb3VuZCJfcyk7Cisg
ICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgicnRyaW0iX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0
aW9ucy5hZGQoInNvdW5kZXgiX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInNxbGl0
ZV9zb3VyY2VfaWQiX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInNxbGl0ZV92ZXJz
aW9uIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJzdWJzdHIiX3MpOworICAgIG1f
YWxsb3dlZEZ1bmN0aW9ucy5hZGQoInRvdGFsX2NoYW5nZXMiX3MpOworICAgIG1fYWxsb3dlZEZ1
bmN0aW9ucy5hZGQoInRyaW0iX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInR5cGVv
ZiJfcyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgidXBwZXIiX3MpOworICAgIG1fYWxs
b3dlZEZ1bmN0aW9ucy5hZGQoInplcm9ibG9iIl9zKTsKIAogICAgIC8vIFNRTGl0ZSBkYXRlIGFu
ZCB0aW1lIGZ1bmN0aW9ucwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoImRhdGUiKTsKLSAg
ICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJ0aW1lIik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25z
LmFkZCgiZGF0ZXRpbWUiKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJqdWxpYW5kYXki
KTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJzdHJmdGltZSIpOworICAgIG1fYWxsb3dl
ZEZ1bmN0aW9ucy5hZGQoImRhdGUiX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInRp
bWUiX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoImRhdGV0aW1lIl9zKTsKKyAgICBt
X2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJqdWxpYW5kYXkiX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0
aW9ucy5hZGQoInN0cmZ0aW1lIl9zKTsKIAogICAgIC8vIFNRTGl0ZSBhZ2dyZWdhdGUgZnVuY3Rp
b25zCiAgICAgLy8gbWF4KCkgYW5kIG1pbigpIGFyZSBhbHJlYWR5IGluIHRoZSBsaXN0Ci0gICAg
bV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgiYXZnIik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFk
ZCgiY291bnQiKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJncm91cF9jb25jYXQiKTsK
LSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJzdW0iKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlv
bnMuYWRkKCJ0b3RhbCIpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoImF2ZyJfcyk7Cisg
ICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgiY291bnQiX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0
aW9ucy5hZGQoImdyb3VwX2NvbmNhdCJfcyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgi
c3VtIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJ0b3RhbCJfcyk7CiAKICAgICAv
LyBTUUxpdGUgRlRTIGZ1bmN0aW9ucwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoIm1hdGNo
Iik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgic25pcHBldCIpOwotICAgIG1fYWxsb3dl
ZEZ1bmN0aW9ucy5hZGQoIm9mZnNldHMiKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJv
cHRpbWl6ZSIpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoIm1hdGNoIl9zKTsKKyAgICBt
X2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJzbmlwcGV0Il9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlv
bnMuYWRkKCJvZmZzZXRzIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJvcHRpbWl6
ZSJfcyk7CiAKICAgICAvLyBTUUxpdGUgSUNVIGZ1bmN0aW9ucwogICAgIC8vIGxpa2UoKSwgbG93
ZXIoKSBhbmQgdXBwZXIoKSBhcmUgYWxyZWFkeSBpbiB0aGUgbGlzdAotICAgIG1fYWxsb3dlZEZ1
bmN0aW9ucy5hZGQoInJlZ2V4cCIpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInJlZ2V4
cCJfcyk7CiB9CiAKIGludCBEYXRhYmFzZUF1dGhvcml6ZXI6OmNyZWF0ZVRhYmxlKGNvbnN0IFN0
cmluZyYgdGFibGVOYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJk
YXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJk
YXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuY3BwCmluZGV4IDllYjM5MWM2ZDBiZDZkNDg2MDUxMGVk
YWI3Mjg5MzM5OTUwNmJjNzIuLmE0ZjBjNzQ0NTIzNzFhNGRiZDhkZjA4NjA2OWVjZDEwYWJhMzIy
OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJh
c2VUcmFja2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0Rh
dGFiYXNlVHJhY2tlci5jcHAKQEAgLTkxLDcgKzkxLDcgQEAgRGF0YWJhc2VUcmFja2VyOjpEYXRh
YmFzZVRyYWNrZXIoY29uc3QgU3RyaW5nJiBkYXRhYmFzZVBhdGgpCiAKIFN0cmluZyBEYXRhYmFz
ZVRyYWNrZXI6OnRyYWNrZXJEYXRhYmFzZVBhdGgoKSBjb25zdAogewotICAgIHJldHVybiBTUUxp
dGVGaWxlU3lzdGVtOjphcHBlbmREYXRhYmFzZUZpbGVOYW1lVG9QYXRoKG1fZGF0YWJhc2VEaXJl
Y3RvcnlQYXRoLmlzb2xhdGVkQ29weSgpLCAiRGF0YWJhc2VzLmRiIik7CisgICAgcmV0dXJuIFNR
TGl0ZUZpbGVTeXN0ZW06OmFwcGVuZERhdGFiYXNlRmlsZU5hbWVUb1BhdGgobV9kYXRhYmFzZURp
cmVjdG9yeVBhdGguaXNvbGF0ZWRDb3B5KCksICJEYXRhYmFzZXMuZGIiX3MpOwogfQogCiB2b2lk
IERhdGFiYXNlVHJhY2tlcjo6b3BlblRyYWNrZXJEYXRhYmFzZShUcmFja2VyQ3JlYXRpb25BY3Rp
b24gY3JlYXRlQWN0aW9uKQpAQCAtMTE4LDE0ICsxMTgsMTQgQEAgdm9pZCBEYXRhYmFzZVRyYWNr
ZXI6Om9wZW5UcmFja2VyRGF0YWJhc2UoVHJhY2tlckNyZWF0aW9uQWN0aW9uIGNyZWF0ZUFjdGlv
bikKICAgICB9CiAgICAgbV9kYXRhYmFzZS5kaXNhYmxlVGhyZWFkaW5nQ2hlY2tzKCk7CiAKLSAg
ICBpZiAoIW1fZGF0YWJhc2UudGFibGVFeGlzdHMoIk9yaWdpbnMiKSkgeworICAgIGlmICghbV9k
YXRhYmFzZS50YWJsZUV4aXN0cygiT3JpZ2lucyJfcykpIHsKICAgICAgICAgaWYgKCFtX2RhdGFi
YXNlLmV4ZWN1dGVDb21tYW5kKCJDUkVBVEUgVEFCTEUgT3JpZ2lucyAob3JpZ2luIFRFWFQgVU5J
UVVFIE9OIENPTkZMSUNUIFJFUExBQ0UsIHF1b3RhIElOVEVHRVIgTk9UIE5VTEwgT04gQ09ORkxJ
Q1QgRkFJTCk7Il9zKSkgewogICAgICAgICAgICAgLy8gRklYTUU6IGFuZCBoZXJlCiAgICAgICAg
ICAgICBMT0dfRVJST1IoIkZhaWxlZCB0byBjcmVhdGUgT3JpZ2lucyB0YWJsZSIpOwogICAgICAg
ICB9CiAgICAgfQogCi0gICAgaWYgKCFtX2RhdGFiYXNlLnRhYmxlRXhpc3RzKCJEYXRhYmFzZXMi
KSkgeworICAgIGlmICghbV9kYXRhYmFzZS50YWJsZUV4aXN0cygiRGF0YWJhc2VzIl9zKSkgewog
ICAgICAgICBpZiAoIW1fZGF0YWJhc2UuZXhlY3V0ZUNvbW1hbmQoIkNSRUFURSBUQUJMRSBEYXRh
YmFzZXMgKGd1aWQgSU5URUdFUiBQUklNQVJZIEtFWSBBVVRPSU5DUkVNRU5ULCBvcmlnaW4gVEVY
VCwgbmFtZSBURVhULCBkaXNwbGF5TmFtZSBURVhULCBlc3RpbWF0ZWRTaXplIElOVEVHRVIsIHBh
dGggVEVYVCk7Il9zKSkgewogICAgICAgICAgICAgLy8gRklYTUU6IGFuZCBoZXJlCiAgICAgICAg
ICAgICBMT0dfRVJST1IoIkZhaWxlZCB0byBjcmVhdGUgRGF0YWJhc2VzIHRhYmxlIik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFN0YXRlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFN0YXRlbWVudC5jcHAK
aW5kZXggYjc4MDU4MmRjOTc5NTkyMzM0NjNmOGZkOGFjMTlkMDM5YWViODgyMC4uZDkxZDAzMTQ1
OTE1YjIxYTM1N2U4NWYwNWNjYmE0MGU1ZGJlYTExYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxTdGF0ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMU3RhdGVtZW50LmNwcApAQCAtMTI2LDcgKzEyNiw3
IEBAIGJvb2wgU1FMU3RhdGVtZW50OjpleGVjdXRlKERhdGFiYXNlJiBkYikKICAgICAvLyBJZiB0
aGlzIGlzIHRoZSBjYXNlLCB0aGV5IG1pZ2h0IGJlIHRyeWluZyB0byBkbyBzb21ldGhpbmcgZmlz
aHkgb3IgbWFsaWNpb3VzCiAgICAgaWYgKHN0YXRlbWVudC0+YmluZFBhcmFtZXRlckNvdW50KCkg
IT0gbV9hcmd1bWVudHMuc2l6ZSgpKSB7CiAgICAgICAgIExPRyhTdG9yYWdlQVBJLCAiQmluZCBw
YXJhbWV0ZXIgY291bnQgZG9lc24ndCBtYXRjaCBudW1iZXIgb2YgcXVlc3Rpb24gbWFya3MiKTsK
LSAgICAgICAgbV9lcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OlNZTlRBWF9FUlIs
ICJudW1iZXIgb2YgJz8ncyBpbiBzdGF0ZW1lbnQgc3RyaW5nIGRvZXMgbm90IG1hdGNoIGFyZ3Vt
ZW50IGNvdW50Iik7CisgICAgICAgIG1fZXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9y
OjpTWU5UQVhfRVJSLCAibnVtYmVyIG9mICc/J3MgaW4gc3RhdGVtZW50IHN0cmluZyBkb2VzIG5v
dCBtYXRjaCBhcmd1bWVudCBjb3VudCJfcyk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9
CiAKQEAgLTIzNCwxOSArMjM0LDE5IEBAIGJvb2wgU1FMU3RhdGVtZW50OjpwZXJmb3JtQ2FsbGJh
Y2soU1FMVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uKQogdm9pZCBTUUxTdGF0ZW1lbnQ6OnNldERh
dGFiYXNlRGVsZXRlZEVycm9yKCkKIHsKICAgICBBU1NFUlQoIW1fZXJyb3IgJiYgIW1fcmVzdWx0
U2V0KTsKLSAgICBtX2Vycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6VU5LTk9XTl9F
UlIsICJ1bmFibGUgdG8gZXhlY3V0ZSBzdGF0ZW1lbnQsIGJlY2F1c2UgdGhlIHVzZXIgZGVsZXRl
ZCB0aGUgZGF0YWJhc2UiKTsKKyAgICBtX2Vycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJv
cjo6VU5LTk9XTl9FUlIsICJ1bmFibGUgdG8gZXhlY3V0ZSBzdGF0ZW1lbnQsIGJlY2F1c2UgdGhl
IHVzZXIgZGVsZXRlZCB0aGUgZGF0YWJhc2UiX3MpOwogfQogCiB2b2lkIFNRTFN0YXRlbWVudDo6
c2V0VmVyc2lvbk1pc21hdGNoZWRFcnJvcigpCiB7CiAgICAgQVNTRVJUKCFtX2Vycm9yICYmICFt
X3Jlc3VsdFNldCk7Ci0gICAgbV9lcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OlZF
UlNJT05fRVJSLCAiY3VycmVudCB2ZXJzaW9uIG9mIHRoZSBkYXRhYmFzZSBhbmQgYG9sZFZlcnNp
b25gIGFyZ3VtZW50IGRvIG5vdCBtYXRjaCIpOworICAgIG1fZXJyb3IgPSBTUUxFcnJvcjo6Y3Jl
YXRlKFNRTEVycm9yOjpWRVJTSU9OX0VSUiwgImN1cnJlbnQgdmVyc2lvbiBvZiB0aGUgZGF0YWJh
c2UgYW5kIGBvbGRWZXJzaW9uYCBhcmd1bWVudCBkbyBub3QgbWF0Y2giX3MpOwogfQogCiB2b2lk
IFNRTFN0YXRlbWVudDo6c2V0RmFpbHVyZUR1ZVRvUXVvdGEoKQogewogICAgIEFTU0VSVCghbV9l
cnJvciAmJiAhbV9yZXN1bHRTZXQpOwotICAgIG1fZXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNR
TEVycm9yOjpRVU9UQV9FUlIsICJ0aGVyZSB3YXMgbm90IGVub3VnaCByZW1haW5pbmcgc3RvcmFn
ZSBzcGFjZSwgb3IgdGhlIHN0b3JhZ2UgcXVvdGEgd2FzIHJlYWNoZWQgYW5kIHRoZSB1c2VyIGRl
Y2xpbmVkIHRvIGFsbG93IG1vcmUgc3BhY2UiKTsKKyAgICBtX2Vycm9yID0gU1FMRXJyb3I6OmNy
ZWF0ZShTUUxFcnJvcjo6UVVPVEFfRVJSLCAidGhlcmUgd2FzIG5vdCBlbm91Z2ggcmVtYWluaW5n
IHN0b3JhZ2Ugc3BhY2UsIG9yIHRoZSBzdG9yYWdlIHF1b3RhIHdhcyByZWFjaGVkIGFuZCB0aGUg
dXNlciBkZWNsaW5lZCB0byBhbGxvdyBtb3JlIHNwYWNlIl9zKTsKIH0KIAogdm9pZCBTUUxTdGF0
ZW1lbnQ6OmNsZWFyRmFpbHVyZUR1ZVRvUXVvdGEoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uLmNwcAppbmRleCA2ODMyYWNhOTBl
ZDZkOWViODFhYjlmMzU1OTU5M2JmNDY0MzBmZDBmLi5lOWFkNzlmMzI4MmU4NDU5ZGQ3ZDMzZWZm
MDJiNmI1NzlmMDI2YzBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRh
dGFiYXNlL1NRTFRyYW5zYWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uLmNwcApAQCAtMTM3LDcgKzEzNyw3IEBAIHZvaWQgU1FM
VHJhbnNhY3Rpb246OmNhbGxFcnJvckNhbGxiYWNrRHVlVG9JbnRlcnJ1cHRpb24oKQogICAgICAg
ICByZXR1cm47CiAKICAgICBtX2RhdGFiYXNlLT5kb2N1bWVudCgpLmV2ZW50TG9vcCgpLnF1ZXVl
VGFzayhUYXNrU291cmNlOjpOZXR3b3JraW5nLCBbZXJyb3JDYWxsYmFjayA9IFdURk1vdmUoZXJy
b3JDYWxsYmFjayldKCkgbXV0YWJsZSB7Ci0gICAgICAgIGVycm9yQ2FsbGJhY2stPmhhbmRsZUV2
ZW50KFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OkRBVEFCQVNFX0VSUiwgInRoZSBkYXRhYmFz
ZSB3YXMgY2xvc2VkIikpOworICAgICAgICBlcnJvckNhbGxiYWNrLT5oYW5kbGVFdmVudChTUUxF
cnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpEQVRBQkFTRV9FUlIsICJ0aGUgZGF0YWJhc2Ugd2FzIGNs
b3NlZCJfcykpOwogICAgIH0pOwogfQogCkBAIC0yMzYsNyArMjM2LDcgQEAgdm9pZCBTUUxUcmFu
c2FjdGlvbjo6b3BlblRyYW5zYWN0aW9uQW5kUHJlZmxpZ2h0KCkKIAogICAgIC8vIElmIHRoZSBk
YXRhYmFzZSB3YXMgZGVsZXRlZCwganVtcCB0byB0aGUgZXJyb3IgY2FsbGJhY2sKICAgICBpZiAo
bV9kYXRhYmFzZS0+ZGVsZXRlZCgpKSB7Ci0gICAgICAgIG1fdHJhbnNhY3Rpb25FcnJvciA9IFNR
TEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OlVOS05PV05fRVJSLCAidW5hYmxlIHRvIG9wZW4gYSB0
cmFuc2FjdGlvbiwgYmVjYXVzZSB0aGUgdXNlciBkZWxldGVkIHRoZSBkYXRhYmFzZSIpOworICAg
ICAgICBtX3RyYW5zYWN0aW9uRXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpVTktO
T1dOX0VSUiwgInVuYWJsZSB0byBvcGVuIGEgdHJhbnNhY3Rpb24sIGJlY2F1c2UgdGhlIHVzZXIg
ZGVsZXRlZCB0aGUgZGF0YWJhc2UiX3MpOwogCiAgICAgICAgIGhhbmRsZVRyYW5zYWN0aW9uRXJy
b3IoKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMjkwLDcgKzI5MCw3IEBAIHZvaWQgU1FMVHJhbnNh
Y3Rpb246Om9wZW5UcmFuc2FjdGlvbkFuZFByZWZsaWdodCgpCiAgICAgICAgIG1fZGF0YWJhc2Ut
PmVuYWJsZUF1dGhvcml6ZXIoKTsKICAgICAgICAgbV90cmFuc2FjdGlvbkVycm9yID0gbV93cmFw
cGVyLT5zcWxFcnJvcigpOwogICAgICAgICBpZiAoIW1fdHJhbnNhY3Rpb25FcnJvcikKLSAgICAg
ICAgICAgIG1fdHJhbnNhY3Rpb25FcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OlVO
S05PV05fRVJSLCAidW5rbm93biBlcnJvciBvY2N1cnJlZCBkdXJpbmcgdHJhbnNhY3Rpb24gcHJl
ZmxpZ2h0Iik7CisgICAgICAgICAgICBtX3RyYW5zYWN0aW9uRXJyb3IgPSBTUUxFcnJvcjo6Y3Jl
YXRlKFNRTEVycm9yOjpVTktOT1dOX0VSUiwgInVua25vd24gZXJyb3Igb2NjdXJyZWQgZHVyaW5n
IHRyYW5zYWN0aW9uIHByZWZsaWdodCJfcyk7CiAKICAgICAgICAgaGFuZGxlVHJhbnNhY3Rpb25F
cnJvcigpOwogICAgICAgICByZXR1cm47CkBAIC0zOTUsNyArMzk1LDcgQEAgdm9pZCBTUUxUcmFu
c2FjdGlvbjo6ZGVsaXZlclRyYW5zYWN0aW9uQ2FsbGJhY2soKQogCiAgICAgLy8gU3BlYyA0LjMu
MiA1OiBJZiB0aGUgdHJhbnNhY3Rpb24gY2FsbGJhY2sgd2FzIG51bGwgb3IgcmFpc2VkIGFuIGV4
Y2VwdGlvbiwganVtcCB0byB0aGUgZXJyb3IgY2FsbGJhY2sKICAgICBpZiAoc2hvdWxkRGVsaXZl
ckVycm9yQ2FsbGJhY2spIHsKLSAgICAgICAgbV90cmFuc2FjdGlvbkVycm9yID0gU1FMRXJyb3I6
OmNyZWF0ZShTUUxFcnJvcjo6VU5LTk9XTl9FUlIsICJ0aGUgU1FMVHJhbnNhY3Rpb25DYWxsYmFj
ayB3YXMgbnVsbCBvciB0aHJldyBhbiBleGNlcHRpb24iKTsKKyAgICAgICAgbV90cmFuc2FjdGlv
bkVycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6VU5LTk9XTl9FUlIsICJ0aGUgU1FM
VHJhbnNhY3Rpb25DYWxsYmFjayB3YXMgbnVsbCBvciB0aHJldyBhbiBleGNlcHRpb24iX3MpOwog
ICAgICAgICByZXR1cm4gZGVsaXZlclRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjaygpOwogICAgIH0K
IApAQCAtNDMyLDcgKzQzMiw3IEBAIHZvaWQgU1FMVHJhbnNhY3Rpb246OmRlbGl2ZXJTdGF0ZW1l
bnRDYWxsYmFjaygpCiAgICAgbV9leGVjdXRlU3FsQWxsb3dlZCA9IGZhbHNlOwogCiAgICAgaWYg
KHJlc3VsdCkgewotICAgICAgICBtX3RyYW5zYWN0aW9uRXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRl
KFNRTEVycm9yOjpVTktOT1dOX0VSUiwgInRoZSBzdGF0ZW1lbnQgY2FsbGJhY2sgcmFpc2VkIGFu
IGV4Y2VwdGlvbiBvciBzdGF0ZW1lbnQgZXJyb3IgY2FsbGJhY2sgZGlkIG5vdCByZXR1cm4gZmFs
c2UiKTsKKyAgICAgICAgbV90cmFuc2FjdGlvbkVycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxF
cnJvcjo6VU5LTk9XTl9FUlIsICJ0aGUgc3RhdGVtZW50IGNhbGxiYWNrIHJhaXNlZCBhbiBleGNl
cHRpb24gb3Igc3RhdGVtZW50IGVycm9yIGNhbGxiYWNrIGRpZCBub3QgcmV0dXJuIGZhbHNlIl9z
KTsKIAogICAgICAgICBpZiAobV9lcnJvckNhbGxiYWNrV3JhcHBlci5oYXNDYWxsYmFjaygpKQog
ICAgICAgICAgICAgcmV0dXJuIGRlbGl2ZXJUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2soKTsKQEAg
LTU2OCw3ICs1NjgsNyBAQCB2b2lkIFNRTFRyYW5zYWN0aW9uOjpoYW5kbGVDdXJyZW50U3RhdGVt
ZW50RXJyb3IoKQogCiAgICAgbV90cmFuc2FjdGlvbkVycm9yID0gbV9jdXJyZW50U3RhdGVtZW50
LT5zcWxFcnJvcigpOwogICAgIGlmICghbV90cmFuc2FjdGlvbkVycm9yKQotICAgICAgICBtX3Ry
YW5zYWN0aW9uRXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpEQVRBQkFTRV9FUlIs
ICJ0aGUgc3RhdGVtZW50IGZhaWxlZCB0byBleGVjdXRlIik7CisgICAgICAgIG1fdHJhbnNhY3Rp
b25FcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OkRBVEFCQVNFX0VSUiwgInRoZSBz
dGF0ZW1lbnQgZmFpbGVkIHRvIGV4ZWN1dGUiX3MpOwogCiAgICAgaGFuZGxlVHJhbnNhY3Rpb25F
cnJvcigpOwogfQpAQCAtNTk0LDcgKzU5NCw3IEBAIHZvaWQgU1FMVHJhbnNhY3Rpb246OnBvc3Rm
bGlnaHRBbmRDb21taXQoKQogICAgIGlmIChtX3dyYXBwZXIgJiYgIW1fd3JhcHBlci0+cGVyZm9y
bVBvc3RmbGlnaHQoKnRoaXMpKSB7CiAgICAgICAgIG1fdHJhbnNhY3Rpb25FcnJvciA9IG1fd3Jh
cHBlci0+c3FsRXJyb3IoKTsKICAgICAgICAgaWYgKCFtX3RyYW5zYWN0aW9uRXJyb3IpCi0gICAg
ICAgICAgICBtX3RyYW5zYWN0aW9uRXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpV
TktOT1dOX0VSUiwgInVua25vd24gZXJyb3Igb2NjdXJyZWQgZHVyaW5nIHRyYW5zYWN0aW9uIHBv
c3RmbGlnaHQiKTsKKyAgICAgICAgICAgIG1fdHJhbnNhY3Rpb25FcnJvciA9IFNRTEVycm9yOjpj
cmVhdGUoU1FMRXJyb3I6OlVOS05PV05fRVJSLCAidW5rbm93biBlcnJvciBvY2N1cnJlZCBkdXJp
bmcgdHJhbnNhY3Rpb24gcG9zdGZsaWdodCJfcyk7CiAKICAgICAgICAgaGFuZGxlVHJhbnNhY3Rp
b25FcnJvcigpOwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwCmluZGV4IGY5NzNlNWJkM2I5MGUzYTRjYzczNTIxNGQ5
YTMxOWFkZjkyMWU0YjYuLjY5ZDJlNTQ3MzVhMzA2NDYzODRjN2VmYjdlYTY0OTg3ZWMzNDAyY2Mg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3Bw
CkBAIC0xMzcsOSArMTM3LDkgQEAgc3RhdGljIHVuc2lnbmVkIHNhdHVyYXRlQWRkKHVuc2lnbmVk
IGEsIHVuc2lnbmVkIGIpCiAgICAgcmV0dXJuIGEgKyBiOwogfQogCi1jb25zdCBjaGFyKiBXZWJT
b2NrZXQ6OnN1YnByb3RvY29sU2VwYXJhdG9yKCkKK0FTQ0lJTGl0ZXJhbCBXZWJTb2NrZXQ6OnN1
YnByb3RvY29sU2VwYXJhdG9yKCkKIHsKLSAgICByZXR1cm4gIiwgIjsKKyAgICByZXR1cm4gIiwg
Il9zOwogfQogCiBXZWJTb2NrZXQ6OldlYlNvY2tldChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBj
b250ZXh0KQpAQCAtNDMwLDcgKzQzMCw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFdlYlNvY2tldDo6
Y2xvc2Uoc3RkOjpvcHRpb25hbDx1bnNpZ25lZCBzaG9ydD4gb3B0aW9uYWxDb2RlLCBjCiAgICAg
ICAgIHJldHVybiB7IH07CiAgICAgaWYgKG1fc3RhdGUgPT0gQ09OTkVDVElORykgewogICAgICAg
ICBtX3N0YXRlID0gQ0xPU0lORzsKLSAgICAgICAgbV9jaGFubmVsLT5mYWlsKCJXZWJTb2NrZXQg
aXMgY2xvc2VkIGJlZm9yZSB0aGUgY29ubmVjdGlvbiBpcyBlc3RhYmxpc2hlZC4iKTsKKyAgICAg
ICAgbV9jaGFubmVsLT5mYWlsKCJXZWJTb2NrZXQgaXMgY2xvc2VkIGJlZm9yZSB0aGUgY29ubmVj
dGlvbiBpcyBlc3RhYmxpc2hlZC4iX3MpOwogICAgICAgICByZXR1cm4geyB9OwogICAgIH0KICAg
ICBtX3N0YXRlID0gQ0xPU0lORzsKQEAgLTUyMCw3ICs1MjAsNyBAQCB2b2lkIFdlYlNvY2tldDo6
c3VzcGVuZChSZWFzb25Gb3JTdXNwZW5zaW9uIHJlYXNvbikKIAogICAgIGlmIChyZWFzb24gPT0g
UmVhc29uRm9yU3VzcGVuc2lvbjo6QmFja0ZvcndhcmRDYWNoZSkgewogICAgICAgICAvLyBUaGlz
IHdpbGwgY2F1c2UgZGlkQ2xvc2UoKSB0byBiZSBjYWxsZWQuCi0gICAgICAgIG1fY2hhbm5lbC0+
ZmFpbCgiV2ViU29ja2V0IGlzIGNsb3NlZCBkdWUgdG8gc3VzcGVuc2lvbi4iKTsKKyAgICAgICAg
bV9jaGFubmVsLT5mYWlsKCJXZWJTb2NrZXQgaXMgY2xvc2VkIGR1ZSB0byBzdXNwZW5zaW9uLiJf
cyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2Vic29ja2V0cy9XZWJTb2NrZXQuaAppbmRleCBlNjg2M2U0NmRhMDdkMThiNmQ5MTVlYjE1YzI0
Y2RmMjJkYjZhNmNiLi5lZmZjMDY4YmJmNjI2NWU3YTNiMTU1Yzk0ZmY0NDhlNzY2ZDFlMzY1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5oCkBAIC01
MSw3ICs1MSw3IEBAIGNsYXNzIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOwogY2xhc3MgV2Vi
U29ja2V0IGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViU29ja2V0PiwgcHVibGljIEV2ZW50
VGFyZ2V0V2l0aElubGluZURhdGEsIHB1YmxpYyBBY3RpdmVET01PYmplY3QsIHByaXZhdGUgV2Vi
U29ja2V0Q2hhbm5lbENsaWVudCB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChXZWJTb2Nr
ZXQpOwogcHVibGljOgotICAgIHN0YXRpYyBjb25zdCBjaGFyKiBzdWJwcm90b2NvbFNlcGFyYXRv
cigpOworICAgIHN0YXRpYyBBU0NJSUxpdGVyYWwgc3VicHJvdG9jb2xTZXBhcmF0b3IoKTsKIAog
ICAgIHN0YXRpYyBFeGNlcHRpb25PcjxSZWY8V2ViU29ja2V0Pj4gY3JlYXRlKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQmLCBjb25zdCBTdHJpbmcmIHVybCk7CiAgICAgc3RhdGljIEV4Y2VwdGlvbk9y
PFJlZjxXZWJTb2NrZXQ+PiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGNvbnN0IFN0
cmluZyYgdXJsLCBjb25zdCBTdHJpbmcmIHByb3RvY29sKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcAppbmRleCBkZjU2
MzU5YzZmZGEwNTIxMDNkOTdiM2Q4YTVkMTA4NDkxOTc1ZjViLi42OWI4ZTJhNzc1NGE4OTc4YzE5
NTQ4NTFmZjI2Yzk5NjE1MmY1ZGMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwCkBAIC0yODcsNyArMjg3LDcgQEAg
dm9pZCBXZWJTb2NrZXRDaGFubmVsOjpkaWRPcGVuU29ja2V0U3RyZWFtKFNvY2tldFN0cmVhbUhh
bmRsZSYgaGFuZGxlKQogICAgICAgICBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94eSA9IENv
b2tpZUphcjo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHkoKm1fZG9jdW1lbnQsIG1faGFu
ZHNoYWtlLT5odHRwVVJMRm9yQXV0aGVudGljYXRpb25BbmRDb29raWVzKCkpOwogICAgIGhhbmRs
ZS5zZW5kSGFuZHNoYWtlKFdURk1vdmUoaGFuZHNoYWtlTWVzc2FnZSksIFdURk1vdmUoY29va2ll
UmVxdWVzdEhlYWRlckZpZWxkUHJveHkpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0
aGlzIH1dIChib29sIHN1Y2Nlc3MsIGJvb2wgZGlkQWNjZXNzU2VjdXJlQ29va2llcykgewogICAg
ICAgICBpZiAoIXN1Y2Nlc3MpCi0gICAgICAgICAgICBmYWlsKCJGYWlsZWQgdG8gc2VuZCBXZWJT
b2NrZXQgaGFuZHNoYWtlLiIpOworICAgICAgICAgICAgZmFpbCgiRmFpbGVkIHRvIHNlbmQgV2Vi
U29ja2V0IGhhbmRzaGFrZS4iX3MpOwogCiAgICAgICAgIGlmIChkaWRBY2Nlc3NTZWN1cmVDb29r
aWVzICYmIG1fZG9jdW1lbnQpCiAgICAgICAgICAgICBtX2RvY3VtZW50LT5zZXRTZWN1cmVDb29r
aWVzQWNjZXNzZWQoKTsKQEAgLTM0MCw3ICszNDAsNyBAQCB2b2lkIFdlYlNvY2tldENoYW5uZWw6
OmRpZFJlY2VpdmVTb2NrZXRTdHJlYW1EYXRhKFNvY2tldFN0cmVhbUhhbmRsZSYgaGFuZGxlLCBj
bwogICAgICAgICByZXR1cm47CiAgICAgaWYgKCFhcHBlbmRUb0J1ZmZlcihkYXRhLCBsZW5ndGgp
KSB7CiAgICAgICAgIG1fc2hvdWxkRGlzY2FyZFJlY2VpdmVkRGF0YSA9IHRydWU7Ci0gICAgICAg
IGZhaWwoIlJhbiBvdXQgb2YgbWVtb3J5IHdoaWxlIHJlY2VpdmluZyBXZWJTb2NrZXQgZGF0YS4i
KTsKKyAgICAgICAgZmFpbCgiUmFuIG91dCBvZiBtZW1vcnkgd2hpbGUgcmVjZWl2aW5nIFdlYlNv
Y2tldCBkYXRhLiJfcyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgd2hpbGUgKCFtX3N1
c3BlbmRlZCAmJiBtX2NsaWVudCAmJiAhbV9idWZmZXIuaXNFbXB0eSgpKSB7CkBAIC01NzEsNyAr
NTcxLDcgQEAgYm9vbCBXZWJTb2NrZXRDaGFubmVsOjpwcm9jZXNzRnJhbWUoKQogICAgIH0KIAog
ICAgIGlmIChmcmFtZS5tYXNrZWQpIHsKLSAgICAgICAgZmFpbCgiQSBzZXJ2ZXIgbXVzdCBub3Qg
bWFzayBhbnkgZnJhbWVzIHRoYXQgaXQgc2VuZHMgdG8gdGhlIGNsaWVudC4iKTsKKyAgICAgICAg
ZmFpbCgiQSBzZXJ2ZXIgbXVzdCBub3QgbWFzayBhbnkgZnJhbWVzIHRoYXQgaXQgc2VuZHMgdG8g
dGhlIGNsaWVudC4iX3MpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCkBAIC01OTEs
NyArNTkxLDcgQEAgYm9vbCBXZWJTb2NrZXRDaGFubmVsOjpwcm9jZXNzRnJhbWUoKQogICAgIC8v
IEEgbmV3IGRhdGEgZnJhbWUgaXMgcmVjZWl2ZWQgYmVmb3JlIHRoZSBwcmV2aW91cyBjb250aW51
b3VzIGZyYW1lIGZpbmlzaGVzLgogICAgIC8vIE5vdGUgdGhhdCBjb250cm9sIGZyYW1lcyBhcmUg
YWxsb3dlZCB0byBjb21lIGluIHRoZSBtaWRkbGUgb2YgY29udGludW91cyBmcmFtZXMuCiAgICAg
aWYgKG1faGFzQ29udGludW91c0ZyYW1lICYmIGZyYW1lLm9wQ29kZSAhPSBXZWJTb2NrZXRGcmFt
ZTo6T3BDb2RlQ29udGludWF0aW9uICYmICFXZWJTb2NrZXRGcmFtZTo6aXNDb250cm9sT3BDb2Rl
KGZyYW1lLm9wQ29kZSkpIHsKLSAgICAgICAgZmFpbCgiUmVjZWl2ZWQgbmV3IGRhdGEgZnJhbWUg
YnV0IHByZXZpb3VzIGNvbnRpbnVvdXMgZnJhbWUgaXMgdW5maW5pc2hlZC4iKTsKKyAgICAgICAg
ZmFpbCgiUmVjZWl2ZWQgbmV3IGRhdGEgZnJhbWUgYnV0IHByZXZpb3VzIGNvbnRpbnVvdXMgZnJh
bWUgaXMgdW5maW5pc2hlZC4iX3MpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCkBA
IC02MDEsNyArNjAxLDcgQEAgYm9vbCBXZWJTb2NrZXRDaGFubmVsOjpwcm9jZXNzRnJhbWUoKQog
ICAgIGNhc2UgV2ViU29ja2V0RnJhbWU6Ok9wQ29kZUNvbnRpbnVhdGlvbjoKICAgICAgICAgLy8g
QW4gdW5leHBlY3RlZCBjb250aW51YXRpb24gZnJhbWUgaXMgcmVjZWl2ZWQgd2l0aG91dCBhbnkg
bGVhZGluZyBmcmFtZS4KICAgICAgICAgaWYgKCFtX2hhc0NvbnRpbnVvdXNGcmFtZSkgewotICAg
ICAgICAgICAgZmFpbCgiUmVjZWl2ZWQgdW5leHBlY3RlZCBjb250aW51YXRpb24gZnJhbWUuIik7
CisgICAgICAgICAgICBmYWlsKCJSZWNlaXZlZCB1bmV4cGVjdGVkIGNvbnRpbnVhdGlvbiBmcmFt
ZS4iX3MpOwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAgICAgICAgIG1f
Y29udGludW91c0ZyYW1lRGF0YS5hcHBlbmQoZnJhbWUucGF5bG9hZCwgZnJhbWUucGF5bG9hZExl
bmd0aCk7CkBAIC02MjAsNyArNjIwLDcgQEAgYm9vbCBXZWJTb2NrZXRDaGFubmVsOjpwcm9jZXNz
RnJhbWUoKQogICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgbWVzc2Fn
ZSA9IGVtcHR5U3RyaW5nKCk7CiAgICAgICAgICAgICAgICAgaWYgKG1lc3NhZ2UuaXNOdWxsKCkp
Ci0gICAgICAgICAgICAgICAgICAgIGZhaWwoIkNvdWxkIG5vdCBkZWNvZGUgYSB0ZXh0IGZyYW1l
IGFzIFVURi04LiIpOworICAgICAgICAgICAgICAgICAgICBmYWlsKCJDb3VsZCBub3QgZGVjb2Rl
IGEgdGV4dCBmcmFtZSBhcyBVVEYtOC4iX3MpOwogICAgICAgICAgICAgICAgIGVsc2UKICAgICAg
ICAgICAgICAgICAgICAgbV9jbGllbnQtPmRpZFJlY2VpdmVNZXNzYWdlKFdURk1vdmUobWVzc2Fn
ZSkpOwogICAgICAgICAgICAgfSBlbHNlIGlmIChtX2NvbnRpbnVvdXNGcmFtZU9wQ29kZSA9PSBX
ZWJTb2NrZXRGcmFtZTo6T3BDb2RlQmluYXJ5KQpAQCAtNjM3LDcgKzYzNyw3IEBAIGJvb2wgV2Vi
U29ja2V0Q2hhbm5lbDo6cHJvY2Vzc0ZyYW1lKCkKICAgICAgICAgICAgICAgICBtZXNzYWdlID0g
ZW1wdHlTdHJpbmcoKTsKICAgICAgICAgICAgIHNraXBCdWZmZXIoZnJhbWVFbmQgLSBtX2J1ZmZl
ci5kYXRhKCkpOwogICAgICAgICAgICAgaWYgKG1lc3NhZ2UuaXNOdWxsKCkpCi0gICAgICAgICAg
ICAgICAgZmFpbCgiQ291bGQgbm90IGRlY29kZSBhIHRleHQgZnJhbWUgYXMgVVRGLTguIik7Cisg
ICAgICAgICAgICAgICAgZmFpbCgiQ291bGQgbm90IGRlY29kZSBhIHRleHQgZnJhbWUgYXMgVVRG
LTguIl9zKTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBtX2NsaWVudC0+ZGlk
UmVjZWl2ZU1lc3NhZ2UoV1RGTW92ZShtZXNzYWdlKSk7CiAgICAgICAgIH0gZWxzZSB7CkBAIC02
NjksMTMgKzY2OSwxMyBAQCBib29sIFdlYlNvY2tldENoYW5uZWw6OnByb2Nlc3NGcmFtZSgpCiAg
ICAgICAgICAgICBtX2Nsb3NlRXZlbnRDb2RlID0gQ2xvc2VFdmVudENvZGVOb1N0YXR1c1JjdmQ7
CiAgICAgICAgIGVsc2UgaWYgKGZyYW1lLnBheWxvYWRMZW5ndGggPT0gMSkgewogICAgICAgICAg
ICAgbV9jbG9zZUV2ZW50Q29kZSA9IENsb3NlRXZlbnRDb2RlQWJub3JtYWxDbG9zdXJlOwotICAg
ICAgICAgICAgZmFpbCgiUmVjZWl2ZWQgYSBicm9rZW4gY2xvc2UgZnJhbWUgY29udGFpbmluZyBh
biBpbnZhbGlkIHNpemUgYm9keS4iKTsKKyAgICAgICAgICAgIGZhaWwoIlJlY2VpdmVkIGEgYnJv
a2VuIGNsb3NlIGZyYW1lIGNvbnRhaW5pbmcgYW4gaW52YWxpZCBzaXplIGJvZHkuIl9zKTsKICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIG1f
Y2xvc2VFdmVudENvZGUgPSBmcmFtZS5wYXlsb2FkWzBdIDw8IDggfCBmcmFtZS5wYXlsb2FkWzFd
OwogICAgICAgICAgICAgaWYgKG1fY2xvc2VFdmVudENvZGUgPT0gQ2xvc2VFdmVudENvZGVOb1N0
YXR1c1JjdmQgfHwgbV9jbG9zZUV2ZW50Q29kZSA9PSBDbG9zZUV2ZW50Q29kZUFibm9ybWFsQ2xv
c3VyZSB8fCBtX2Nsb3NlRXZlbnRDb2RlID09IENsb3NlRXZlbnRDb2RlVExTSGFuZHNoYWtlKSB7
CiAgICAgICAgICAgICAgICAgbV9jbG9zZUV2ZW50Q29kZSA9IENsb3NlRXZlbnRDb2RlQWJub3Jt
YWxDbG9zdXJlOwotICAgICAgICAgICAgICAgIGZhaWwoIlJlY2VpdmVkIGEgYnJva2VuIGNsb3Nl
IGZyYW1lIGNvbnRhaW5pbmcgYSByZXNlcnZlZCBzdGF0dXMgY29kZS4iKTsKKyAgICAgICAgICAg
ICAgICBmYWlsKCJSZWNlaXZlZCBhIGJyb2tlbiBjbG9zZSBmcmFtZSBjb250YWluaW5nIGEgcmVz
ZXJ2ZWQgc3RhdHVzIGNvZGUuIl9zKTsKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAg
ICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTc2MSw3ICs3NjEsNyBAQCB2b2lkIFdlYlNvY2tl
dENoYW5uZWw6OnByb2Nlc3NPdXRnb2luZ0ZyYW1lUXVldWUoKQogICAgICAgICBjYXNlIFF1ZXVl
ZEZyYW1lVHlwZVN0cmluZzogewogICAgICAgICAgICAgc2VuZEZyYW1lKGZyYW1lLT5vcENvZGUs
IGZyYW1lLT5zdHJpbmdEYXRhLmRhdGFBc1VJbnQ4UHRyKCksIGZyYW1lLT5zdHJpbmdEYXRhLmxl
bmd0aCgpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH1dIChib29sIHN1Y2Nl
c3MpIHsKICAgICAgICAgICAgICAgICBpZiAoIXN1Y2Nlc3MpCi0gICAgICAgICAgICAgICAgICAg
IGZhaWwoIkZhaWxlZCB0byBzZW5kIFdlYlNvY2tldCBmcmFtZS4iKTsKKyAgICAgICAgICAgICAg
ICAgICAgZmFpbCgiRmFpbGVkIHRvIHNlbmQgV2ViU29ja2V0IGZyYW1lLiJfcyk7CiAgICAgICAg
ICAgICB9KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC03NjksNyArNzY5LDcg
QEAgdm9pZCBXZWJTb2NrZXRDaGFubmVsOjpwcm9jZXNzT3V0Z29pbmdGcmFtZVF1ZXVlKCkKICAg
ICAgICAgY2FzZSBRdWV1ZWRGcmFtZVR5cGVWZWN0b3I6CiAgICAgICAgICAgICBzZW5kRnJhbWUo
ZnJhbWUtPm9wQ29kZSwgZnJhbWUtPnZlY3RvckRhdGEuZGF0YSgpLCBmcmFtZS0+dmVjdG9yRGF0
YS5zaXplKCksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfV0gKGJvb2wgc3Vj
Y2VzcykgewogICAgICAgICAgICAgICAgIGlmICghc3VjY2VzcykKLSAgICAgICAgICAgICAgICAg
ICAgZmFpbCgiRmFpbGVkIHRvIHNlbmQgV2ViU29ja2V0IGZyYW1lLiIpOworICAgICAgICAgICAg
ICAgICAgICBmYWlsKCJGYWlsZWQgdG8gc2VuZCBXZWJTb2NrZXQgZnJhbWUuIl9zKTsKICAgICAg
ICAgICAgIH0pOwogICAgICAgICAgICAgYnJlYWs7CiAKQEAgLTc5Niw3ICs3OTYsNyBAQCB2b2lk
IFdlYlNvY2tldENoYW5uZWw6OnByb2Nlc3NPdXRnb2luZ0ZyYW1lUXVldWUoKQogICAgICAgICAg
ICAgICAgIG1fYmxvYkxvYWRlclN0YXR1cyA9IEJsb2JMb2FkZXJOb3RTdGFydGVkOwogICAgICAg
ICAgICAgICAgIHNlbmRGcmFtZShmcmFtZS0+b3BDb2RlLCBzdGF0aWNfY2FzdDxjb25zdCB1aW50
OF90Kj4ocmVzdWx0LT5kYXRhKCkpLCByZXN1bHQtPmJ5dGVMZW5ndGgoKSwgW3RoaXMsIHByb3Rl
Y3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9XSAoYm9vbCBzdWNjZXNzKSB7CiAgICAgICAgICAgICAg
ICAgICAgIGlmICghc3VjY2VzcykKLSAgICAgICAgICAgICAgICAgICAgICAgIGZhaWwoIkZhaWxl
ZCB0byBzZW5kIFdlYlNvY2tldCBmcmFtZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZh
aWwoIkZhaWxlZCB0byBzZW5kIFdlYlNvY2tldCBmcmFtZS4iX3MpOwogICAgICAgICAgICAgICAg
IH0pOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldERlZmxhdGVGcmFtZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldERlZmxhdGVG
cmFtZXIuY3BwCmluZGV4IDAxZmRmZTAyOWU0NmZjZTg2MmQ1ZTYxNmNmYzQ5NWQ2OWNjNjE0NjUu
LmE4N2ZlNWQ3YWFlNWU4MGQzOTc1NDk5YzRjNTZhNmUwMTdkZjExZGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXREZWZsYXRlRnJhbWVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RGVmbGF0
ZUZyYW1lci5jcHAKQEAgLTc2LDcgKzc2LDcgQEAgYm9vbCBXZWJTb2NrZXRFeHRlbnNpb25EZWZs
YXRlRnJhbWU6OnByb2Nlc3NSZXNwb25zZShjb25zdCBIYXNoTWFwPFN0cmluZywgU3RyaW4KIAog
ICAgIHVuc2lnbmVkIGV4cGVjdGVkTnVtUGFyYW1ldGVycyA9IDA7CiAgICAgaW50IHdpbmRvd0Jp
dHMgPSAxNTsKLSAgICBhdXRvIHBhcmFtZXRlciA9IHNlcnZlclBhcmFtZXRlcnMuZmluZCgibWF4
X3dpbmRvd19iaXRzIik7CisgICAgYXV0byBwYXJhbWV0ZXIgPSBzZXJ2ZXJQYXJhbWV0ZXJzLmZp
bmQoIm1heF93aW5kb3dfYml0cyJfcyk7CiAgICAgaWYgKHBhcmFtZXRlciAhPSBzZXJ2ZXJQYXJh
bWV0ZXJzLmVuZCgpKSB7CiAgICAgICAgIHdpbmRvd0JpdHMgPSBwYXJzZUludGVnZXJBbGxvd2lu
Z1RyYWlsaW5nSnVuazxpbnQ+KHBhcmFtZXRlci0+dmFsdWUpLnZhbHVlX29yKDApOwogICAgICAg
ICBpZiAod2luZG93Qml0cyA8IDggfHwgd2luZG93Qml0cyA+IDE1KSB7CkBAIC04Nyw3ICs4Nyw3
IEBAIGJvb2wgV2ViU29ja2V0RXh0ZW5zaW9uRGVmbGF0ZUZyYW1lOjpwcm9jZXNzUmVzcG9uc2Uo
Y29uc3QgSGFzaE1hcDxTdHJpbmcsIFN0cmluCiAgICAgfQogCiAgICAgV2ViU29ja2V0RGVmbGF0
ZXI6OkNvbnRleHRUYWtlT3Zlck1vZGUgbW9kZSA9IFdlYlNvY2tldERlZmxhdGVyOjpUYWtlT3Zl
ckNvbnRleHQ7Ci0gICAgcGFyYW1ldGVyID0gc2VydmVyUGFyYW1ldGVycy5maW5kKCJub19jb250
ZXh0X3Rha2VvdmVyIik7CisgICAgcGFyYW1ldGVyID0gc2VydmVyUGFyYW1ldGVycy5maW5kKCJu
b19jb250ZXh0X3Rha2VvdmVyIl9zKTsKICAgICBpZiAocGFyYW1ldGVyICE9IHNlcnZlclBhcmFt
ZXRlcnMuZW5kKCkpIHsKICAgICAgICAgaWYgKCFwYXJhbWV0ZXItPnZhbHVlLmlzTnVsbCgpKSB7
CiAgICAgICAgICAgICBtX2ZhaWx1cmVSZWFzb24gPSAiUmVjZWl2ZWQgaW52YWxpZCBub19jb250
ZXh0X3Rha2VvdmVyIHBhcmFtZXRlciJfczsKQEAgLTE2MSw3ICsxNjEsNyBAQCBzdGQ6OnVuaXF1
ZV9wdHI8RGVmbGF0ZVJlc3VsdEhvbGRlcj4gV2ViU29ja2V0RGVmbGF0ZUZyYW1lcjo6ZGVmbGF0
ZShXZWJTb2NrZXRGcgogICAgIGlmICghZW5hYmxlZCgpIHx8ICFXZWJTb2NrZXRGcmFtZTo6aXNO
b25Db250cm9sT3BDb2RlKGZyYW1lLm9wQ29kZSkgfHwgIWZyYW1lLnBheWxvYWRMZW5ndGgpCiAg
ICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgaWYgKCFtX2RlZmxhdGVyLT5hZGRCeXRlcyhmcmFt
ZS5wYXlsb2FkLCBmcmFtZS5wYXlsb2FkTGVuZ3RoKSB8fCAhbV9kZWZsYXRlci0+ZmluaXNoKCkp
IHsKLSAgICAgICAgcmVzdWx0LT5mYWlsKCJGYWlsZWQgdG8gY29tcHJlc3MgZnJhbWUiKTsKKyAg
ICAgICAgcmVzdWx0LT5mYWlsKCJGYWlsZWQgdG8gY29tcHJlc3MgZnJhbWUiX3MpOwogICAgICAg
ICByZXR1cm4gcmVzdWx0OwogICAgIH0KICAgICBmcmFtZS5jb21wcmVzcyA9IHRydWU7CkBAIC0x
ODAsMTcgKzE4MCwxNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8SW5mbGF0ZVJlc3VsdEhvbGRlcj4gV2Vi
U29ja2V0RGVmbGF0ZUZyYW1lcjo6aW5mbGF0ZShXZWJTb2NrZXRGcgogewogICAgIGF1dG8gcmVz
dWx0ID0gbWFrZVVuaXF1ZTxJbmZsYXRlUmVzdWx0SG9sZGVyPigqdGhpcyk7CiAgICAgaWYgKCFl
bmFibGVkKCkgJiYgZnJhbWUuY29tcHJlc3MpIHsKLSAgICAgICAgcmVzdWx0LT5mYWlsKCJDb21w
cmVzc2VkIGJpdCBtdXN0IGJlIDAgaWYgbm8gbmVnb3RpYXRlZCBkZWZsYXRlLWZyYW1lIGV4dGVu
c2lvbiIpOworICAgICAgICByZXN1bHQtPmZhaWwoIkNvbXByZXNzZWQgYml0IG11c3QgYmUgMCBp
ZiBubyBuZWdvdGlhdGVkIGRlZmxhdGUtZnJhbWUgZXh0ZW5zaW9uIl9zKTsKICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKICAgICB9CiAgICAgaWYgKCFmcmFtZS5jb21wcmVzcykKICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKICAgICBpZiAoIVdlYlNvY2tldEZyYW1lOjppc05vbkNvbnRyb2xPcENvZGUo
ZnJhbWUub3BDb2RlKSkgewotICAgICAgICByZXN1bHQtPmZhaWwoIlJlY2VpdmVkIHVuZXhwZWN0
ZWQgY29tcHJlc3NlZCBmcmFtZSIpOworICAgICAgICByZXN1bHQtPmZhaWwoIlJlY2VpdmVkIHVu
ZXhwZWN0ZWQgY29tcHJlc3NlZCBmcmFtZSJfcyk7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAg
ICAgfQogICAgIGlmICghbV9pbmZsYXRlci0+YWRkQnl0ZXMoZnJhbWUucGF5bG9hZCwgZnJhbWUu
cGF5bG9hZExlbmd0aCkgfHwgIW1faW5mbGF0ZXItPmZpbmlzaCgpKSB7Ci0gICAgICAgIHJlc3Vs
dC0+ZmFpbCgiRmFpbGVkIHRvIGRlY29tcHJlc3MgZnJhbWUiKTsKKyAgICAgICAgcmVzdWx0LT5m
YWlsKCJGYWlsZWQgdG8gZGVjb21wcmVzcyBmcmFtZSJfcyk7CiAgICAgICAgIHJldHVybiByZXN1
bHQ7CiAgICAgfQogICAgIGZyYW1lLmNvbXByZXNzID0gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RXh0ZW5zaW9uRGlzcGF0Y2hl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RXh0ZW5z
aW9uRGlzcGF0Y2hlci5jcHAKaW5kZXggN2FmMmMzNzkxYTBhZThkNmVlOWU5Mjk5ODM1N2U4NjBh
ZmJiNzVkZC4uZTVjZjEyNTExZWYzZTU2NGY2M2I4NWQ4Y2IwYmIxZWU0MGM1ZGEzZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEV4dGVuc2lv
bkRpc3BhdGNoZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9X
ZWJTb2NrZXRFeHRlbnNpb25EaXNwYXRjaGVyLmNwcApAQCAtOTMsNyArOTMsNyBAQCBib29sIFdl
YlNvY2tldEV4dGVuc2lvbkRpc3BhdGNoZXI6OnByb2Nlc3NIZWFkZXJWYWx1ZShjb25zdCBTdHJp
bmcmIGhlYWRlclZhbHVlKQogCiAgICAgLy8gSWYgd2UgZG9uJ3Qgc2VuZCBTZWMtV2ViU29ja2V0
LUV4dGVuc2lvbnMgaGVhZGVyLCB0aGUgc2VydmVyIHNob3VsZCBub3QgcmV0dXJuIHRoZSBoZWFk
ZXIuCiAgICAgaWYgKCFtX3Byb2Nlc3NvcnMuc2l6ZSgpKSB7Ci0gICAgICAgIGZhaWwoIlJlY2Vp
dmVkIHVuZXhwZWN0ZWQgU2VjLVdlYlNvY2tldC1FeHRlbnNpb25zIGhlYWRlciIpOworICAgICAg
ICBmYWlsKCJSZWNlaXZlZCB1bmV4cGVjdGVkIFNlYy1XZWJTb2NrZXQtRXh0ZW5zaW9ucyBoZWFk
ZXIiX3MpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCkBAIC0xMDMsNyArMTAzLDcg
QEAgYm9vbCBXZWJTb2NrZXRFeHRlbnNpb25EaXNwYXRjaGVyOjpwcm9jZXNzSGVhZGVyVmFsdWUo
Y29uc3QgU3RyaW5nJiBoZWFkZXJWYWx1ZSkKICAgICAgICAgU3RyaW5nIGV4dGVuc2lvblRva2Vu
OwogICAgICAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBleHRlbnNpb25QYXJhbWV0ZXJzOwog
ICAgICAgICBpZiAoIXBhcnNlci5wYXJzZUV4dGVuc2lvbihleHRlbnNpb25Ub2tlbiwgZXh0ZW5z
aW9uUGFyYW1ldGVycykpIHsKLSAgICAgICAgICAgIGZhaWwoIlNlYy1XZWJTb2NrZXQtRXh0ZW5z
aW9ucyBoZWFkZXIgaXMgaW52YWxpZCIpOworICAgICAgICAgICAgZmFpbCgiU2VjLVdlYlNvY2tl
dC1FeHRlbnNpb25zIGhlYWRlciBpcyBpbnZhbGlkIl9zKTsKICAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnNvY2tldHMvV2ViU29ja2V0RnJhbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJz
b2NrZXRzL1dlYlNvY2tldEZyYW1lLmNwcAppbmRleCBlMzllMDE5YWUwMmQ5NjcyMzhmOTY1NzJk
NTNlZTIzYzM0NTZmMjMzLi5iYTFlNjI1NDkxN2FmZjRmYTdiODJjNjg4NGZlYjJhYzkwNzBkM2Fk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0
RnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2Nr
ZXRGcmFtZS5jcHAKQEAgLTgyLDExICs4MiwxMSBAQCBXZWJTb2NrZXRGcmFtZTo6UGFyc2VGcmFt
ZVJlc3VsdCBXZWJTb2NrZXRGcmFtZTo6cGFyc2VGcmFtZSh1aW50OF90KiBkYXRhLCBzaXplXwog
ICAgICAgICAgICAgcGF5bG9hZExlbmd0aDY0IHw9IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KCpwKysp
OwogICAgICAgICB9CiAgICAgICAgIGlmIChleHRlbmRlZFBheWxvYWRMZW5ndGhTaXplID09IDIg
JiYgcGF5bG9hZExlbmd0aDY0IDw9IG1heFBheWxvYWRMZW5ndGhXaXRob3V0RXh0ZW5kZWRMZW5n
dGhGaWVsZCkgewotICAgICAgICAgICAgZXJyb3JTdHJpbmcgPSAiVGhlIG1pbmltYWwgbnVtYmVy
IG9mIGJ5dGVzIE1VU1QgYmUgdXNlZCB0byBlbmNvZGUgdGhlIGxlbmd0aCI7CisgICAgICAgICAg
ICBlcnJvclN0cmluZyA9ICJUaGUgbWluaW1hbCBudW1iZXIgb2YgYnl0ZXMgTVVTVCBiZSB1c2Vk
IHRvIGVuY29kZSB0aGUgbGVuZ3RoIl9zOwogICAgICAgICAgICAgcmV0dXJuIEZyYW1lRXJyb3I7
CiAgICAgICAgIH0KICAgICAgICAgaWYgKGV4dGVuZGVkUGF5bG9hZExlbmd0aFNpemUgPT0gOCAm
JiBwYXlsb2FkTGVuZ3RoNjQgPD0gMHhGRkZGKSB7Ci0gICAgICAgICAgICBlcnJvclN0cmluZyA9
ICJUaGUgbWluaW1hbCBudW1iZXIgb2YgYnl0ZXMgTVVTVCBiZSB1c2VkIHRvIGVuY29kZSB0aGUg
bGVuZ3RoIjsKKyAgICAgICAgICAgIGVycm9yU3RyaW5nID0gIlRoZSBtaW5pbWFsIG51bWJlciBv
ZiBieXRlcyBNVVNUIGJlIHVzZWQgdG8gZW5jb2RlIHRoZSBsZW5ndGgiX3M7CiAgICAgICAgICAg
ICByZXR1cm4gRnJhbWVFcnJvcjsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJXZWJHTExheWVyLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2VieHIvV2ViWFJXZWJHTExheWVyLmNwcAppbmRleCA4MjZkZTE2YTcwNjkx
ZDQyMGM1OTQ2N2RjNGE3MWRlZGZiMGI2NWM2Li5kNzQwZmJiODgzZDI1OGFkMWU1ZGI3ZjZiYmZk
MTY2NWI0NDliOTg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dl
YlhSV2ViR0xMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJY
UldlYkdMTGF5ZXIuY3BwCkBAIC02NCw3ICs2NCw3IEBAIHN0YXRpYyBFeGNlcHRpb25PcjxzdGQ6
OnVuaXF1ZV9wdHI8V2ViWFJPcGFxdWVGcmFtZWJ1ZmZlcj4+IGNyZWF0ZU9wYXF1ZUZyYW1lYnVm
CiB7CiAgICAgYXV0byBkZXZpY2UgPSBzZXNzaW9uLmRldmljZSgpOwogICAgIGlmICghZGV2aWNl
KQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgT3BlcmF0aW9uRXJyb3IsICJDYW5ub3QgY3Jl
YXRlIGFuIFhSV2ViR0xMYXllciB3aXRoIGFuIFhSU2Vzc2lvbiB0aGF0IGhhcyBlbmRlZC4iIH07
CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBPcGVyYXRpb25FcnJvciwgIkNhbm5vdCBjcmVh
dGUgYW4gWFJXZWJHTExheWVyIHdpdGggYW4gWFJTZXNzaW9uIHRoYXQgaGFzIGVuZGVkLiJfcyB9
OwogCiAgICAgLy8gOS4xLiBJbml0aWFsaXplIGxheWVy4oCZcyBhbnRpYWxpYXMgdG8gbGF5ZXJJ
bml04oCZcyBhbnRpYWxpYXMgdmFsdWUuCiAgICAgLy8gOS4yLiBMZXQgZnJhbWVidWZmZXJTaXpl
IGJlIHRoZSByZWNvbW1lbmRlZCBXZWJHTCBmcmFtZWJ1ZmZlciByZXNvbHV0aW9uIG11bHRpcGxp
ZWQgYnkgbGF5ZXJJbml0J3MgZnJhbWVidWZmZXJTY2FsZUZhY3Rvci4KQEAgLTgyLDcgKzgyLDcg
QEAgc3RhdGljIEV4Y2VwdGlvbk9yPHN0ZDo6dW5pcXVlX3B0cjxXZWJYUk9wYXF1ZUZyYW1lYnVm
ZmVyPj4gY3JlYXRlT3BhcXVlRnJhbWVidWYKICAgICAvLyA5LjUuIElmIGxheWVy4oCZcyByZXNv
dXJjZXMgd2VyZSB1bmFibGUgdG8gYmUgY3JlYXRlZCBmb3IgYW55IHJlYXNvbiwgdGhyb3cgYW4g
T3BlcmF0aW9uRXJyb3IgYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgogICAgIGF1dG8gbGF5ZXJIYW5k
bGUgPSBkZXZpY2UtPmNyZWF0ZUxheWVyUHJvamVjdGlvbih3aWR0aCwgaGVpZ2h0LCBpbml0LmFs
cGhhKTsKICAgICBpZiAoIWxheWVySGFuZGxlKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
T3BlcmF0aW9uRXJyb3IsICJVbmFibGUgdG8gYWxsb2NhdGUgWFJXZWJHTExheWVyIEdQVSByZXNv
dXJjZXMuIn07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBPcGVyYXRpb25FcnJvciwgIlVu
YWJsZSB0byBhbGxvY2F0ZSBYUldlYkdMTGF5ZXIgR1BVIHJlc291cmNlcy4iX3MgfTsKIAogICAg
IFdlYlhST3BhcXVlRnJhbWVidWZmZXI6OkF0dHJpYnV0ZXMgYXR0cmlidXRlcyB7CiAgICAgICAg
IC5hbHBoYSA9IGluaXQuYWxwaGEsCkBAIC05Myw3ICs5Myw3IEBAIHN0YXRpYyBFeGNlcHRpb25P
cjxzdGQ6OnVuaXF1ZV9wdHI8V2ViWFJPcGFxdWVGcmFtZWJ1ZmZlcj4+IGNyZWF0ZU9wYXF1ZUZy
YW1lYnVmCiAKICAgICBhdXRvIGZyYW1lYnVmZmVyID0gV2ViWFJPcGFxdWVGcmFtZWJ1ZmZlcjo6
Y3JlYXRlKCpsYXllckhhbmRsZSwgY29udGV4dCwgV1RGTW92ZShhdHRyaWJ1dGVzKSwgd2lkdGgs
IGhlaWdodCk7CiAgICAgaWYgKCFmcmFtZWJ1ZmZlcikKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlv
biB7IE9wZXJhdGlvbkVycm9yLCAiVW5hYmxlIHRvIGNyZWF0ZSBhIGZyYW1lYnVmZmVyLiIgfTsK
KyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE9wZXJhdGlvbkVycm9yLCAiVW5hYmxlIHRvIGNy
ZWF0ZSBhIGZyYW1lYnVmZmVyLiJfcyB9OwogICAgIAogICAgIHJldHVybiBmcmFtZWJ1ZmZlcjsK
IH0KQEAgLTEwNCw3ICsxMDQsNyBAQCBFeGNlcHRpb25PcjxSZWY8V2ViWFJXZWJHTExheWVyPj4g
V2ViWFJXZWJHTExheWVyOjpjcmVhdGUoUmVmPFdlYlhSU2Vzc2lvbj4mJiBzZQogICAgIC8vIDEu
IExldCBsYXllciBiZSBhIG5ldyBYUldlYkdMTGF5ZXIKICAgICAvLyAyLiBJZiBzZXNzaW9u4oCZ
cyBlbmRlZCB2YWx1ZSBpcyB0cnVlLCB0aHJvdyBhbiBJbnZhbGlkU3RhdGVFcnJvciBhbmQgYWJv
cnQgdGhlc2Ugc3RlcHMuCiAgICAgaWYgKHNlc3Npb24tPmVuZGVkKCkpCi0gICAgICAgIHJldHVy
biBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkNhbm5vdCBjcmVhdGUgYW4gWFJXZWJH
TExheWVyIHdpdGggYW4gWFJTZXNzaW9uIHRoYXQgaGFzIGVuZGVkLiIgfTsKKyAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiQ2Fubm90IGNyZWF0ZSBhbiBYUldl
YkdMTGF5ZXIgd2l0aCBhbiBYUlNlc3Npb24gdGhhdCBoYXMgZW5kZWQuIl9zIH07CiAKICAgICAv
LyAzLiBJZiBjb250ZXh0IGlzIGxvc3QsIHRocm93IGFuIEludmFsaWRTdGF0ZUVycm9yIGFuZCBh
Ym9ydCB0aGVzZSBzdGVwcy4KICAgICAvLyA0LiBJZiBzZXNzaW9uIGlzIGFuIGltbWVyc2l2ZSBz
ZXNzaW9uIGFuZCBjb250ZXh04oCZcyBYUiBjb21wYXRpYmxlIGJvb2xlYW4gaXMgZmFsc2UsIHRo
cm93CkBAIC0xMTMsMTEgKzExMywxMSBAQCBFeGNlcHRpb25PcjxSZWY8V2ViWFJXZWJHTExheWVy
Pj4gV2ViWFJXZWJHTExheWVyOjpjcmVhdGUoUmVmPFdlYlhSU2Vzc2lvbj4mJiBzZQogICAgICAg
ICBbJl0oY29uc3QgUmVmUHRyPFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U+JiBiYXNlQ29udGV4
dCkgLT4gRXhjZXB0aW9uT3I8UmVmPFdlYlhSV2ViR0xMYXllcj4+CiAgICAgICAgIHsKICAgICAg
ICAgICAgIGlmIChiYXNlQ29udGV4dC0+aXNDb250ZXh0TG9zdCgpKQotICAgICAgICAgICAgICAg
IHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkNhbm5vdCBjcmVhdGUgYW4g
WFJXZWJHTExheWVyIHdpdGggYSBsb3N0IFdlYkdMIGNvbnRleHQuIiB9OworICAgICAgICAgICAg
ICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkNhbm5vdCBjcmVhdGUg
YW4gWFJXZWJHTExheWVyIHdpdGggYSBsb3N0IFdlYkdMIGNvbnRleHQuIl9zIH07CiAKICAgICAg
ICAgICAgIGF1dG8gbW9kZSA9IHNlc3Npb24tPm1vZGUoKTsKICAgICAgICAgICAgIGlmICgobW9k
ZSA9PSBYUlNlc3Npb25Nb2RlOjpJbW1lcnNpdmVBciB8fCBtb2RlID09IFhSU2Vzc2lvbk1vZGU6
OkltbWVyc2l2ZVZyKSAmJiAhYmFzZUNvbnRleHQtPmlzWFJDb21wYXRpYmxlKCkpCi0gICAgICAg
ICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiQ2Fubm90IGNy
ZWF0ZSBhbiBYUldlYkdMTGF5ZXIgd2l0aCBXZWJHTCBjb250ZXh0IG5vdCBtYXJrZWQgYXMgWFIg
Y29tcGF0aWJsZS4iIH07CisgICAgICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFs
aWRTdGF0ZUVycm9yLCAiQ2Fubm90IGNyZWF0ZSBhbiBYUldlYkdMTGF5ZXIgd2l0aCBXZWJHTCBj
b250ZXh0IG5vdCBtYXJrZWQgYXMgWFIgY29tcGF0aWJsZS4iX3MgfTsKIAogCiAgICAgICAgICAg
ICAvLyA1LiBJbml0aWFsaXplIGxheWVy4oCZcyBjb250ZXh0IHRvIGNvbnRleHQuIChzZWUgY29u
c3RydWN0b3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYSW1h
Z2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWEltYWdlLmNwcAppbmRleCA3
NWZlYThiMTUyYjE2ZTY5NWQ2NGUyOTkyZDkzODNhODZjZmUyMmRhLi4yNjNiNzk2OTBiOTcyOTM3
MDI1NzljZjBkMGU3ODI4MGQyZmZmN2I0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nl
c3NpYmlsaXR5L0FYSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QVhJbWFnZS5jcHAKQEAgLTU3LDcgKzU3LDcgQEAgQWNjZXNzaWJpbGl0eVJvbGUgQVhJbWFnZTo6
cm9sZVZhbHVlKCkgY29uc3QKIAogc3RkOjpvcHRpb25hbDxBWENvcmVPYmplY3Q6OkFjY2Vzc2li
aWxpdHlDaGlsZHJlblZlY3Rvcj4gQVhJbWFnZTo6aW1hZ2VPdmVybGF5RWxlbWVudHMoKQogewot
ICAgIEFYVFJBQ0UoIkFYSW1hZ2U6OmltYWdlT3ZlcmxheUVsZW1lbnRzIik7CisgICAgQVhUUkFD
RSgiQVhJbWFnZTo6aW1hZ2VPdmVybGF5RWxlbWVudHMiX3MpOwogCiAgICAgYXV0byYgY2hpbGRy
ZW4gPSB0aGlzLT5jaGlsZHJlbigpOwogICAgIGlmIChjaGlsZHJlbi5zaXplKCkpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYTG9nZ2VyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhMb2dnZXIuY3BwCmluZGV4IDBiNmNjZDNiN2U5MjhjZTg3
ODBiZGM3ZjIxYjA4ZTczZTY0MjllMzMuLjk0MTQ2MTgyYTVhYmRkYjJjOTBlNjE2MWIwZmRmYTBm
NmMzZWU1NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhMb2dn
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhMb2dnZXIuY3BwCkBA
IC01NSw3ICs1NSw3IEBAIHN0YXRpYyBib29sIHNob3VsZExvZygpCiBBWExvZ2dlcjo6QVhMb2dn
ZXIoY29uc3QgU3RyaW5nJiBtZXRob2ROYW1lKQogICAgIDogbV9tZXRob2ROYW1lKG1ldGhvZE5h
bWUpCiB7Ci0gICAgaWYgKGF1dG8qIGNoYW5uZWwgPSBnZXRMb2dDaGFubmVsKCJBY2Nlc3NpYmls
aXR5IikpCisgICAgaWYgKGF1dG8qIGNoYW5uZWwgPSBnZXRMb2dDaGFubmVsKCJBY2Nlc3NpYmls
aXR5Il9zKSkKICAgICAgICAgY2hhbm5lbC0+bGV2ZWwgPSBXVEZMb2dMZXZlbDo6RGVidWc7CiAK
ICAgICBpZiAoc2hvdWxkTG9nKCkpIHsKQEAgLTc4LDYgKzc4LDEyIEBAIHZvaWQgQVhMb2dnZXI6
OmxvZyhjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiAgICAgICAgIExPRyhBY2Nlc3NpYmlsaXR5LCAi
JXMiLCBtZXNzYWdlLnV0ZjgoKS5kYXRhKCkpOwogfQogCit2b2lkIEFYTG9nZ2VyOjpsb2coY29u
c3QgY2hhciogbWVzc2FnZSkKK3sKKyAgICBpZiAoc2hvdWxkTG9nKCkpCisgICAgICAgIExPRyhB
Y2Nlc3NpYmlsaXR5LCAiJXMiLCBtZXNzYWdlKTsKK30KKwogdm9pZCBBWExvZ2dlcjo6bG9nKFJl
ZlB0cjxBWENvcmVPYmplY3Q+IG9iamVjdCkKIHsKICAgICBpZiAoc2hvdWxkTG9nKCkpIHsKQEAg
LTMyOCwxNSArMzM0LDE1IEBAIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgc3Ry
ZWFtLCBBY2Nlc3NpYmlsaXR5U2VhcmNoS2V5IHNlYXJjaEtleSkKIFRleHRTdHJlYW0mIG9wZXJh
dG9yPDwoVGV4dFN0cmVhbSYgc3RyZWFtLCBjb25zdCBBY2Nlc3NpYmlsaXR5U2VhcmNoQ3JpdGVy
aWEmIGNyaXRlcmlhKQogewogICAgIFRleHRTdHJlYW06Okdyb3VwU2NvcGUgZ3JvdXBTY29wZShz
dHJlYW0pOwotICAgIGF1dG8gc3RyZWFtQ3JpdGVyaWFPYmplY3QgPSBbJnN0cmVhbV0gKFN0cmlu
ZyBvYmplY3RMYWJlbCwgYXV0byogYXhPYmplY3QpIHsKKyAgICBhdXRvIHN0cmVhbUNyaXRlcmlh
T2JqZWN0ID0gWyZzdHJlYW1dIChBU0NJSUxpdGVyYWwgb2JqZWN0TGFiZWwsIGF1dG8qIGF4T2Jq
ZWN0KSB7CiAgICAgICAgIHN0cmVhbS5zdGFydEdyb3VwKCk7Ci0gICAgICAgIHN0cmVhbSA8PCBv
YmplY3RMYWJlbCA8PCAiICIgPDwgYXhPYmplY3QgPDwgIiwgSUQgIiA8PCAoYXhPYmplY3QgPyBh
eE9iamVjdC0+b2JqZWN0SUQoKSA6IEFYSUQoKSk7CisgICAgICAgIHN0cmVhbSA8PCBvYmplY3RM
YWJlbC5jaGFyYWN0ZXJzKCkgPDwgIiAiIDw8IGF4T2JqZWN0IDw8ICIsIElEICIgPDwgKGF4T2Jq
ZWN0ID8gYXhPYmplY3QtPm9iamVjdElEKCkgOiBBWElEKCkpOwogICAgICAgICBzdHJlYW0uZW5k
R3JvdXAoKTsKICAgICB9OwogCiAgICAgc3RyZWFtIDw8ICJTZWFyY2hDcml0ZXJpYSAiIDw8ICZj
cml0ZXJpYTsKLSAgICBzdHJlYW1Dcml0ZXJpYU9iamVjdCgiYW5jaG9yT2JqZWN0IiwgY3JpdGVy
aWEuYW5jaG9yT2JqZWN0KTsKLSAgICBzdHJlYW1Dcml0ZXJpYU9iamVjdCgic3RhcnRPYmplY3Qi
LCBjcml0ZXJpYS5zdGFydE9iamVjdCk7CisgICAgc3RyZWFtQ3JpdGVyaWFPYmplY3QoImFuY2hv
ck9iamVjdCJfcywgY3JpdGVyaWEuYW5jaG9yT2JqZWN0KTsKKyAgICBzdHJlYW1Dcml0ZXJpYU9i
amVjdCgic3RhcnRPYmplY3QiX3MsIGNyaXRlcmlhLnN0YXJ0T2JqZWN0KTsKICAgICBzdHJlYW0u
ZHVtcFByb3BlcnR5KCJzZWFyY2hEaXJlY3Rpb24iLCBjcml0ZXJpYS5zZWFyY2hEaXJlY3Rpb24p
OwogCiAgICAgc3RyZWFtLm5leHRMaW5lKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FYTG9nZ2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FY
TG9nZ2VyLmgKaW5kZXggZWE4OTJmMmY5NjZjNTRkYzBjZWNlMWRhNzkyODRlNzk4MWEwYzk1Ni4u
ZDFmYmFmYjE3Y2JiZWMzMjRhZTIwYjlmMTZjYzAyZjcwY2EwNWYwOCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWExvZ2dlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQVhMb2dnZXIuaApAQCAtNDMsNiArNDMsNyBAQCBwdWJsaWM6CiAgICAg
QVhMb2dnZXIoY29uc3QgU3RyaW5nJiBtZXRob2ROYW1lKTsKICAgICB+QVhMb2dnZXIoKTsKICAg
ICBzdGF0aWMgdm9pZCBsb2coY29uc3QgU3RyaW5nJik7CisgICAgc3RhdGljIHZvaWQgbG9nKGNv
bnN0IGNoYXIqKTsKICAgICBzdGF0aWMgdm9pZCBsb2coUmVmUHRyPEFYQ29yZU9iamVjdD4pOwog
ICAgIHN0YXRpYyB2b2lkIGxvZyhjb25zdCBWZWN0b3I8UmVmUHRyPEFYQ29yZU9iamVjdD4+Jik7
CiAgICAgc3RhdGljIHZvaWQgbG9nKGNvbnN0IHN0ZDo6cGFpcjxSZWZQdHI8QVhDb3JlT2JqZWN0
PiwgQVhPYmplY3RDYWNoZTo6QVhOb3RpZmljYXRpb24+Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAppbmRleCA3NzIyYzZkMGQyOTc5OTllMmM1
OTk2ZmMyYWQwOGViOTIwYjAyYzhhLi41M2NjMDdmNDAwMWZhYjcyODI0YjJkMTlkMWVmZjA2NjI5
N2E5YWY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0
Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNo
ZS5jcHAKQEAgLTI1Miw3ICsyNTIsNyBAQCBBWE9iamVjdENhY2hlOjp+QVhPYmplY3RDYWNoZSgp
CiAKIGJvb2wgQVhPYmplY3RDYWNoZTo6aXNNb2RhbEVsZW1lbnQoRWxlbWVudCYgZWxlbWVudCkg
Y29uc3QKIHsKLSAgICBib29sIGhhc0RpYWxvZ1JvbGUgPSBub2RlSGFzUm9sZSgmZWxlbWVudCwg
ImRpYWxvZyIpIHx8IG5vZGVIYXNSb2xlKCZlbGVtZW50LCAiYWxlcnRkaWFsb2ciKTsKKyAgICBi
b29sIGhhc0RpYWxvZ1JvbGUgPSBub2RlSGFzUm9sZSgmZWxlbWVudCwgImRpYWxvZyJfcykgfHwg
bm9kZUhhc1JvbGUoJmVsZW1lbnQsICJhbGVydGRpYWxvZyJfcyk7CiAgICAgYm9vbCBpc0FyaWFN
b2RhbCA9IGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGVsZW1lbnQuYXR0cmlidXRlV2l0
aG91dFN5bmNocm9uaXphdGlvbihhcmlhX21vZGFsQXR0ciksICJ0cnVlIik7CiAKICAgICByZXR1
cm4gKGhhc0RpYWxvZ1JvbGUgJiYgaXNBcmlhTW9kYWwpIHx8IChpczxIVE1MRGlhbG9nRWxlbWVu
dD4oZWxlbWVudCkgJiYgZG93bmNhc3Q8SFRNTERpYWxvZ0VsZW1lbnQ+KGVsZW1lbnQpLmlzTW9k
YWwoKSk7CkBAIC01NjAsMjIgKzU2MCwyMiBAQCBzdGF0aWMgUmVmPEFjY2Vzc2liaWxpdHlPYmpl
Y3Q+IGNyZWF0ZUZyb21SZW5kZXJlcihSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQogCiAgICAgLy8g
SWYgdGhlIG5vZGUgaXMgYXJpYSByb2xlPSJsaXN0IiBvciB0aGUgYXJpYSByb2xlIGlzIGVtcHR5
IGFuZCBpdHMgYQogICAgIC8vIHVsL29sL2RsIHR5cGUgKGl0IHNob3VsZG4ndCBiZSBhIGxpc3Qg
aWYgYXJpYSBzYXlzIG90aGVyd2lzZSkuCi0gICAgaWYgKG5vZGUgJiYgKChub2RlSGFzUm9sZShu
b2RlLCAibGlzdCIpIHx8IG5vZGVIYXNSb2xlKG5vZGUsICJkaXJlY3RvcnkiKSkKKyAgICBpZiAo
bm9kZSAmJiAoKG5vZGVIYXNSb2xlKG5vZGUsICJsaXN0Il9zKSB8fCBub2RlSGFzUm9sZShub2Rl
LCAiZGlyZWN0b3J5Il9zKSkKICAgICAgICAgICAgICAgICAgICAgICB8fCAobm9kZUhhc1JvbGUo
bm9kZSwgbnVsbEF0b20oKSkgJiYgKG5vZGUtPmhhc1RhZ05hbWUodWxUYWcpIHx8IG5vZGUtPmhh
c1RhZ05hbWUob2xUYWcpIHx8IG5vZGUtPmhhc1RhZ05hbWUoZGxUYWcpKSkpKQogICAgICAgICBy
ZXR1cm4gQWNjZXNzaWJpbGl0eUxpc3Q6OmNyZWF0ZShyZW5kZXJlcik7CiAKICAgICAvLyBhcmlh
IHRhYmxlcwotICAgIGlmIChub2RlSGFzUm9sZShub2RlLCAiZ3JpZCIpIHx8IG5vZGVIYXNSb2xl
KG5vZGUsICJ0cmVlZ3JpZCIpIHx8IG5vZGVIYXNSb2xlKG5vZGUsICJ0YWJsZSIpKQorICAgIGlm
IChub2RlSGFzUm9sZShub2RlLCAiZ3JpZCJfcykgfHwgbm9kZUhhc1JvbGUobm9kZSwgInRyZWVn
cmlkIl9zKSB8fCBub2RlSGFzUm9sZShub2RlLCAidGFibGUiX3MpKQogICAgICAgICByZXR1cm4g
QWNjZXNzaWJpbGl0eUFSSUFHcmlkOjpjcmVhdGUocmVuZGVyZXIpOwotICAgIGlmIChub2RlSGFz
Um9sZShub2RlLCAicm93IikpCisgICAgaWYgKG5vZGVIYXNSb2xlKG5vZGUsICJyb3ciX3MpKQog
ICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eUFSSUFHcmlkUm93OjpjcmVhdGUocmVuZGVyZXIp
OwotICAgIGlmIChub2RlSGFzUm9sZShub2RlLCAiZ3JpZGNlbGwiKSB8fCBub2RlSGFzUm9sZShu
b2RlLCAiY2VsbCIpIHx8IG5vZGVIYXNSb2xlKG5vZGUsICJjb2x1bW5oZWFkZXIiKSB8fCBub2Rl
SGFzUm9sZShub2RlLCAicm93aGVhZGVyIikpCisgICAgaWYgKG5vZGVIYXNSb2xlKG5vZGUsICJn
cmlkY2VsbCJfcykgfHwgbm9kZUhhc1JvbGUobm9kZSwgImNlbGwiX3MpIHx8IG5vZGVIYXNSb2xl
KG5vZGUsICJjb2x1bW5oZWFkZXIiX3MpIHx8IG5vZGVIYXNSb2xlKG5vZGUsICJyb3doZWFkZXIi
X3MpKQogICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbDo6Y3JlYXRlKHJl
bmRlcmVyKTsKIAogICAgIC8vIGFyaWEgdHJlZQotICAgIGlmIChub2RlSGFzUm9sZShub2RlLCAi
dHJlZSIpKQorICAgIGlmIChub2RlSGFzUm9sZShub2RlLCAidHJlZSJfcykpCiAgICAgICAgIHJl
dHVybiBBY2Nlc3NpYmlsaXR5VHJlZTo6Y3JlYXRlKHJlbmRlcmVyKTsKLSAgICBpZiAobm9kZUhh
c1JvbGUobm9kZSwgInRyZWVpdGVtIikpCisgICAgaWYgKG5vZGVIYXNSb2xlKG5vZGUsICJ0cmVl
aXRlbSJfcykpCiAgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5VHJlZUl0ZW06OmNyZWF0ZShy
ZW5kZXJlcik7CiAKICAgICBpZiAobm9kZSAmJiBpczxIVE1MTGFiZWxFbGVtZW50Pihub2RlKSAm
JiBub2RlSGFzUm9sZShub2RlLCBudWxsQXRvbSgpKSkKQEAgLTg2NSw3ICs4NjUsNyBAQCBBY2Nl
c3NpYmlsaXR5T2JqZWN0KiBBWE9iamVjdENhY2hlOjpjcmVhdGUoQWNjZXNzaWJpbGl0eVJvbGUg
cm9sZSkKIAogdm9pZCBBWE9iamVjdENhY2hlOjpyZW1vdmUoQVhJRCBheElEKQogewotICAgIEFY
VFJBQ0UoIkFYT2JqZWN0Q2FjaGU6OnJlbW92ZSIpOworICAgIEFYVFJBQ0UoIkFYT2JqZWN0Q2Fj
aGU6OnJlbW92ZSJfcyk7CiAgICAgQVhMT0cobWFrZVN0cmluZygiQVhJRCAiLCBheElELmxvZ2dp
bmdTdHJpbmcoKSkpOwogCiAgICAgaWYgKCFheElEKQpAQCAtOTc3LDcgKzk3Nyw3IEBAIHZvaWQg
QVhPYmplY3RDYWNoZTo6dGV4dENoYW5nZWQoTm9kZSogbm9kZSkKIAogdm9pZCBBWE9iamVjdENh
Y2hlOjp0ZXh0Q2hhbmdlZChBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3QpCiB7Ci0gICAgQVhU
UkFDRSgiQVhPYmplY3RDYWNoZTo6dGV4dENoYW5nZWQiKTsKKyAgICBBWFRSQUNFKCJBWE9iamVj
dENhY2hlOjp0ZXh0Q2hhbmdlZCJfcyk7CiAgICAgQVhMT0cob2JqZWN0KTsKIAogICAgIGlmICgh
b2JqZWN0KQpAQCAtMTA4Miw3ICsxMDgyLDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVD
aGlsZHJlbkNoYW5nZWQoQWNjZXNzaWJpbGl0eU9iamVjdCYgb2JqZWN0KQogCiB2b2lkIEFYT2Jq
ZWN0Q2FjaGU6OmhhbmRsZU1lbnVPcGVuZWQoTm9kZSogbm9kZSkKIHsKLSAgICBpZiAoIW5vZGUg
fHwgIW5vZGUtPnJlbmRlcmVyKCkgfHwgIW5vZGVIYXNSb2xlKG5vZGUsICJtZW51IikpCisgICAg
aWYgKCFub2RlIHx8ICFub2RlLT5yZW5kZXJlcigpIHx8ICFub2RlSGFzUm9sZShub2RlLCAibWVu
dSJfcykpCiAgICAgICAgIHJldHVybjsKICAgICAKICAgICBwb3N0Tm90aWZpY2F0aW9uKGdldE9y
Q3JlYXRlKG5vZGUpLCAmZG9jdW1lbnQoKSwgQVhNZW51T3BlbmVkKTsKQEAgLTExMzQsNyArMTEz
NCw3IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6Y2hpbGRyZW5DaGFuZ2VkKEFjY2Vzc2liaWxpdHlP
YmplY3QqIG9iamVjdCkKIAogdm9pZCBBWE9iamVjdENhY2hlOjpub3RpZmljYXRpb25Qb3N0VGlt
ZXJGaXJlZCgpCiB7Ci0gICAgQVhUUkFDRSgiQVhPYmplY3RDYWNoZTo6bm90aWZpY2F0aW9uUG9z
dFRpbWVyRmlyZWQiKTsKKyAgICBBWFRSQUNFKCJBWE9iamVjdENhY2hlOjpub3RpZmljYXRpb25Q
b3N0VGltZXJGaXJlZCJfcyk7CiAgICAgLy8gRHVyaW5nIExheW91dFRlc3RzLCBhY2Nlc3NpYmls
aXR5IG1heSBiZSBkaXNhYmxlZCBiZXR3ZWVuIHRoZSB0aW1lIHRoZSBub3RpZmljYXRpb25zIGFy
ZSBxdWV1ZWQgYW5kIHRoZSB0aW1lciBmaXJlcy4KICAgICAvLyBUaHVzIGNoZWNrIGhlcmUgYW5k
IHJldHVybiBpZiBhY2Nlc3NpYmlsaXR5IGlzIGRpc2FibGVkLgogICAgIGlmICghYWNjZXNzaWJp
bGl0eUVuYWJsZWQoKSkKQEAgLTExOTUsNyArMTE5NSw3IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6
cGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCgpCiAgICAgYXV0byBub3RpZmljYXRp
b25zID0gc3RkOjpleGNoYW5nZShtX3Bhc3N3b3JkTm90aWZpY2F0aW9uc1RvUG9zdCwgeyB9KTsK
IAogICAgIGZvciAoYXV0byYgbm90aWZpY2F0aW9uIDogbm90aWZpY2F0aW9ucykKLSAgICAgICAg
cG9zdFRleHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbi5nZXQo
KSwgQVhUZXh0RWRpdFR5cGVJbnNlcnQsICIgIiwgVmlzaWJsZVBvc2l0aW9uKCkpOworICAgICAg
ICBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24obm90aWZpY2F0aW9uLmdl
dCgpLCBBWFRleHRFZGl0VHlwZUluc2VydCwgIiAiX3MsIFZpc2libGVQb3NpdGlvbigpKTsKICNl
bmRpZgogfQogCkBAIC0xMjQzLDcgKzEyNDMsNyBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RO
b3RpZmljYXRpb24oTm9kZSogbm9kZSwgQVhOb3RpZmljYXRpb24gbm90aWZpY2F0aW9uLCBQbwog
CiB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oQVhDb3JlT2JqZWN0KiBvYmpl
Y3QsIERvY3VtZW50KiBkb2N1bWVudCwgQVhOb3RpZmljYXRpb24gbm90aWZpY2F0aW9uLCBQb3N0
VGFyZ2V0IHBvc3RUYXJnZXQpCiB7Ci0gICAgQVhUUkFDRSgiQVhPYmplY3RDYWNoZTo6cG9zdE5v
dGlmaWNhdGlvbiIpOworICAgIEFYVFJBQ0UoIkFYT2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRp
b24iX3MpOwogICAgIEFYTE9HKHN0ZDo6bWFrZV9wYWlyKG9iamVjdCwgbm90aWZpY2F0aW9uKSk7
CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIApAQCAtMTI3Myw3ICsxMjczLDcgQEAgdm9p
ZCBBWE9iamVjdENhY2hlOjpoYW5kbGVNZW51SXRlbVNlbGVjdGVkKE5vZGUqIG5vZGUpCiAgICAg
aWYgKCFub2RlKQogICAgICAgICByZXR1cm47CiAgICAgCi0gICAgaWYgKCFub2RlSGFzUm9sZShu
b2RlLCAibWVudWl0ZW0iKSAmJiAhbm9kZUhhc1JvbGUobm9kZSwgIm1lbnVpdGVtcmFkaW8iKSAm
JiAhbm9kZUhhc1JvbGUobm9kZSwgIm1lbnVpdGVtY2hlY2tib3giKSkKKyAgICBpZiAoIW5vZGVI
YXNSb2xlKG5vZGUsICJtZW51aXRlbSJfcykgJiYgIW5vZGVIYXNSb2xlKG5vZGUsICJtZW51aXRl
bXJhZGlvIl9zKSAmJiAhbm9kZUhhc1JvbGUobm9kZSwgIm1lbnVpdGVtY2hlY2tib3giX3MpKQog
ICAgICAgICByZXR1cm47CiAgICAgCiAgICAgaWYgKCFkb3duY2FzdDxFbGVtZW50Pigqbm9kZSku
Zm9jdXNlZCgpICYmICFlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShkb3duY2FzdDxFbGVt
ZW50Pigqbm9kZSkuYXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihhcmlhX3NlbGVjdGVk
QXR0ciksICJ0cnVlIikpCkBAIC0xMzQ3LDggKzEzNDcsOCBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6
OnNlbGVjdGVkU3RhdGVDaGFuZ2VkKE5vZGUqIG5vZGUpCiB7CiAgICAgLy8gRm9yIGEgdGFibGUg
Y2VsbCwgcG9zdCBBWFNlbGVjdGVkU3RhdGVDaGFuZ2VkIG9uIHRoZSBjZWxsIGl0c2VsZi4KICAg
ICAvLyBGb3IgYW55IG90aGVyIGVsZW1lbnQsIHBvc3QgQVhTZWxlY3RlZENoaWxkcmVuQ2hhbmdl
ZCBvbiB0aGUgcGFyZW50LgotICAgIGlmIChub2RlSGFzUm9sZShub2RlLCAiZ3JpZGNlbGwiKSB8
fCBub2RlSGFzUm9sZShub2RlLCAiY2VsbCIpCi0gICAgICAgIHx8IG5vZGVIYXNSb2xlKG5vZGUs
ICJjb2x1bW5oZWFkZXIiKSB8fCBub2RlSGFzUm9sZShub2RlLCAicm93aGVhZGVyIikpCisgICAg
aWYgKG5vZGVIYXNSb2xlKG5vZGUsICJncmlkY2VsbCJfcykgfHwgbm9kZUhhc1JvbGUobm9kZSwg
ImNlbGwiX3MpCisgICAgICAgIHx8IG5vZGVIYXNSb2xlKG5vZGUsICJjb2x1bW5oZWFkZXIiX3Mp
IHx8IG5vZGVIYXNSb2xlKG5vZGUsICJyb3doZWFkZXIiX3MpKQogICAgICAgICBwb3N0Tm90aWZp
Y2F0aW9uKG5vZGUsIEFYU2VsZWN0ZWRTdGF0ZUNoYW5nZWQpOwogICAgIGVsc2UKICAgICAgICAg
c2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQobm9kZSk7CkBAIC0xNTQyLDcgKzE1NDIsNyBAQCB2b2lk
IEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oY29uc3QgUG9z
aXRpb24mIHBvc2l0aW9uLCBjbwogCiB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVD
aGFuZ2VOb3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0LCBjb25zdCBBWFRl
eHRTdGF0ZUNoYW5nZUludGVudCYgaW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxl
Y3Rpb24pCiB7Ci0gICAgQVhUUkFDRSgiQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5n
ZU5vdGlmaWNhdGlvbiIpOworICAgIEFYVFJBQ0UoIkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3Rh
dGVDaGFuZ2VOb3RpZmljYXRpb24iX3MpOwogICAgIHN0b3BDYWNoaW5nQ29tcHV0ZWRPYmplY3RB
dHRyaWJ1dGVzKCk7CiAKICNpZiBQTEFURk9STShDT0NPQSkgfHwgVVNFKEFUU1BJKQpAQCAtMTU3
NCw3ICsxNTc0LDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90
aWZpY2F0aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCwKIAogdm9pZCBBWE9iamVjdENh
Y2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqIG5vZGUsIEFYVGV4dEVk
aXRUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBw
b3NpdGlvbikKIHsKLSAgICBBWFRSQUNFKCJBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hh
bmdlTm90aWZpY2F0aW9uIik7CisgICAgQVhUUkFDRSgiQVhPYmplY3RDYWNoZTo6cG9zdFRleHRT
dGF0ZUNoYW5nZU5vdGlmaWNhdGlvbiJfcyk7CiAgICAgaWYgKCFub2RlIHx8IHR5cGUgPT0gQVhU
ZXh0RWRpdFR5cGVVbmtub3duKQogICAgICAgICByZXR1cm47CiAKQEAgLTE5MTIsNyArMTkxMiw3
IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlQXR0cmlidXRlQ2hhbmdlKGNvbnN0IFF1YWxp
ZmllZE5hbWUmIGF0dHJOYW1lLCBFbGVtZW50CiAKIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxl
TW9kYWxDaGFuZ2UoRWxlbWVudCYgZWxlbWVudCkKIHsKLSAgICBpZiAoIWlzPEhUTUxEaWFsb2dF
bGVtZW50PihlbGVtZW50KSAmJiAhbm9kZUhhc1JvbGUoJmVsZW1lbnQsICJkaWFsb2ciKSAmJiAh
bm9kZUhhc1JvbGUoJmVsZW1lbnQsICJhbGVydGRpYWxvZyIpKQorICAgIGlmICghaXM8SFRNTERp
YWxvZ0VsZW1lbnQ+KGVsZW1lbnQpICYmICFub2RlSGFzUm9sZSgmZWxlbWVudCwgImRpYWxvZyJf
cykgJiYgIW5vZGVIYXNSb2xlKCZlbGVtZW50LCAiYWxlcnRkaWFsb2ciX3MpKQogICAgICAgICBy
ZXR1cm47CiAKICAgICBzdG9wQ2FjaGluZ0NvbXB1dGVkT2JqZWN0QXR0cmlidXRlcygpOwpAQCAt
MzI3Nyw3ICszMjc3LDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwcm9jZXNzRGVmZXJyZWRDaGls
ZHJlbkNoYW5nZWRMaXN0KCkKIAogdm9pZCBBWE9iamVjdENhY2hlOjpwZXJmb3JtRGVmZXJyZWRD
YWNoZVVwZGF0ZSgpCiB7Ci0gICAgQVhUUkFDRSgiQVhPYmplY3RDYWNoZTo6cGVyZm9ybURlZmVy
cmVkQ2FjaGVVcGRhdGUiKTsKKyAgICBBWFRSQUNFKCJBWE9iamVjdENhY2hlOjpwZXJmb3JtRGVm
ZXJyZWRDYWNoZVVwZGF0ZSJfcyk7CiAgICAgaWYgKG1fcGVyZm9ybWluZ0RlZmVycmVkQ2FjaGVV
cGRhdGUpCiAgICAgICAgIHJldHVybjsKICAgICBTZXRGb3JTY29wZSBwZXJmb3JtaW5nRGVmZXJy
ZWRDYWNoZVVwZGF0ZShtX3BlcmZvcm1pbmdEZWZlcnJlZENhY2hlVXBkYXRlLCB0cnVlKTsKQEAg
LTMzNzMsNyArMzM3Myw3IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6dXBkYXRlSXNvbGF0ZWRUcmVl
KEFYQ29yZU9iamVjdCYgb2JqZWN0LCBBWE5vdGlmaWNhdGlvbiBub3RpCiAKIHZvaWQgQVhPYmpl
Y3RDYWNoZTo6dXBkYXRlSXNvbGF0ZWRUcmVlKGNvbnN0IFZlY3RvcjxzdGQ6OnBhaXI8UmVmUHRy
PEFYQ29yZU9iamVjdD4sIEFYTm90aWZpY2F0aW9uPj4mIG5vdGlmaWNhdGlvbnMpCiB7Ci0gICAg
QVhUUkFDRSgiQVhPYmplY3RDYWNoZTo6dXBkYXRlSXNvbGF0ZWRUcmVlIik7CisgICAgQVhUUkFD
RSgiQVhPYmplY3RDYWNoZTo6dXBkYXRlSXNvbGF0ZWRUcmVlIl9zKTsKICAgICBBWExPRygqdGhp
cyk7CiAKICAgICBpZiAoIW1fcGFnZUlEKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCmluZGV4IDE0MjkxMzcy
Y2ZjNDZjMWRlMjJlODM4Y2QyMjU5ZjcwOTNmZGE0MDguLmIyZDhjNDk3MGYyYWQ2ZTM0MGVkYTVk
NzNmOTQxYTEyODY1NmYyM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCkBAIC0yMzcsNyArMjM3LDcgQEAg
RG9jdW1lbnQqIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojpkb2N1bWVudCgpIGNvbnN0CiAKIEFj
Y2Vzc2liaWxpdHlSb2xlIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpkZXRlcm1pbmVBY2Nlc3Np
YmlsaXR5Um9sZSgpCiB7Ci0gICAgQVhUUkFDRSgiQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmRl
dGVybWluZUFjY2Vzc2liaWxpdHlSb2xlIik7CisgICAgQVhUUkFDRSgiQWNjZXNzaWJpbGl0eU5v
ZGVPYmplY3Q6OmRldGVybWluZUFjY2Vzc2liaWxpdHlSb2xlIl9zKTsKICAgICBpZiAoKG1fYXJp
YVJvbGUgPSBkZXRlcm1pbmVBcmlhUm9sZUF0dHJpYnV0ZSgpKSAhPSBBY2Nlc3NpYmlsaXR5Um9s
ZTo6VW5rbm93bikKICAgICAgICAgcmV0dXJuIG1fYXJpYVJvbGU7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCmluZGV4IDM0
ZjE1ZjI1NjQ1NjNmOWM5MjMzNTgyMWJlYWVkZmIwOTk0YjhiYWUuLmJmYmU0MmYzZDhjMmRjMzdl
OWU3NWZkNjM2MzY0MWYzYzk3OTFlODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcApAQCAtMTcyOSw3ICsxNzI5LDcgQEAg
Ym9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzdXBwb3J0c1JlYWRPbmx5KCkgY29uc3QKIFN0cmlu
ZyBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpyZWFkT25seVZhbHVlKCkgY29uc3QKIHsKICAgICBpZiAo
IWhhc0F0dHJpYnV0ZShhcmlhX3JlYWRvbmx5QXR0cikpCi0gICAgICAgIHJldHVybiBhcmlhUm9s
ZUF0dHJpYnV0ZSgpICE9IEFjY2Vzc2liaWxpdHlSb2xlOjpVbmtub3duICYmIHN1cHBvcnRzUmVh
ZE9ubHkoKSA/ICJmYWxzZSIgOiBTdHJpbmcoKTsKKyAgICAgICAgcmV0dXJuIGFyaWFSb2xlQXR0
cmlidXRlKCkgIT0gQWNjZXNzaWJpbGl0eVJvbGU6OlVua25vd24gJiYgc3VwcG9ydHNSZWFkT25s
eSgpID8gImZhbHNlIl9zIDogU3RyaW5nKCk7CiAKICAgICByZXR1cm4gZ2V0QXR0cmlidXRlKGFy
aWFfcmVhZG9ubHlBdHRyKS5zdHJpbmcoKS5jb252ZXJ0VG9BU0NJSUxvd2VyY2FzZSgpOwogfQpA
QCAtMTc1Nyw3ICsxNzU3LDcgQEAgU3RyaW5nIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmF1dG9Db21w
bGV0ZVZhbHVlKCkgY29uc3QKICAgICAgICAgfHwgZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNh
c2UoYXV0b0NvbXBsZXRlLCAiYm90aCIpKQogICAgICAgICByZXR1cm4gYXV0b0NvbXBsZXRlOwog
Ci0gICAgcmV0dXJuICJub25lIjsKKyAgICByZXR1cm4gIm5vbmUiX3M7CiB9CiAKIGJvb2wgQWNj
ZXNzaWJpbGl0eU9iamVjdDo6Y29udGVudEVkaXRhYmxlQXR0cmlidXRlSXNFbmFibGVkKEVsZW1l
bnQqIGVsZW1lbnQpCkBAIC0yMjMzLDIwICsyMjMzLDIwIEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5
T2JqZWN0OjpjdXJyZW50VmFsdWUoKSBjb25zdAogewogICAgIHN3aXRjaCAoY3VycmVudFN0YXRl
KCkpIHsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlDdXJyZW50U3RhdGU6OkZhbHNlOgotICAgICAg
ICByZXR1cm4gImZhbHNlIjsKKyAgICAgICAgcmV0dXJuICJmYWxzZSJfczsKICAgICBjYXNlIEFj
Y2Vzc2liaWxpdHlDdXJyZW50U3RhdGU6OlBhZ2U6Ci0gICAgICAgIHJldHVybiAicGFnZSI7Cisg
ICAgICAgIHJldHVybiAicGFnZSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlDdXJyZW50U3Rh
dGU6OlN0ZXA6Ci0gICAgICAgIHJldHVybiAic3RlcCI7CisgICAgICAgIHJldHVybiAic3RlcCJf
czsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlDdXJyZW50U3RhdGU6OkxvY2F0aW9uOgotICAgICAg
ICByZXR1cm4gImxvY2F0aW9uIjsKKyAgICAgICAgcmV0dXJuICJsb2NhdGlvbiJfczsKICAgICBj
YXNlIEFjY2Vzc2liaWxpdHlDdXJyZW50U3RhdGU6OlRpbWU6Ci0gICAgICAgIHJldHVybiAidGlt
ZSI7CisgICAgICAgIHJldHVybiAidGltZSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlDdXJy
ZW50U3RhdGU6OkRhdGU6Ci0gICAgICAgIHJldHVybiAiZGF0ZSI7CisgICAgICAgIHJldHVybiAi
ZGF0ZSJfczsKICAgICBkZWZhdWx0OgogICAgIGNhc2UgQWNjZXNzaWJpbGl0eUN1cnJlbnRTdGF0
ZTo6VHJ1ZToKLSAgICAgICAgcmV0dXJuICJ0cnVlIjsKKyAgICAgICAgcmV0dXJuICJ0cnVlIl9z
OwogICAgIH0KIH0KIApAQCAtMjM1NSwxMSArMjM1NSwxMSBAQCBib29sIEFjY2Vzc2liaWxpdHlP
YmplY3Q6OnJlcGxhY2VUZXh0SW5SYW5nZShjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50U3RyaW5n
LCBjbwogICAgIH0KICAgICAKICAgICBpZiAoaXM8SFRNTElucHV0RWxlbWVudD4oZWxlbWVudCkp
IHsKLSAgICAgICAgZG93bmNhc3Q8SFRNTElucHV0RWxlbWVudD4oZWxlbWVudCkuc2V0UmFuZ2VU
ZXh0KHJlcGxhY2VtZW50U3RyaW5nLCByYW5nZS5zdGFydCwgcmFuZ2UubGVuZ3RoLCAiIik7Cisg
ICAgICAgIGRvd25jYXN0PEhUTUxJbnB1dEVsZW1lbnQ+KGVsZW1lbnQpLnNldFJhbmdlVGV4dChy
ZXBsYWNlbWVudFN0cmluZywgcmFuZ2Uuc3RhcnQsIHJhbmdlLmxlbmd0aCwgZW1wdHlTdHJpbmco
KSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICBpZiAoaXM8SFRNTFRleHRBcmVh
RWxlbWVudD4oZWxlbWVudCkpIHsKLSAgICAgICAgZG93bmNhc3Q8SFRNTFRleHRBcmVhRWxlbWVu
dD4oZWxlbWVudCkuc2V0UmFuZ2VUZXh0KHJlcGxhY2VtZW50U3RyaW5nLCByYW5nZS5zdGFydCwg
cmFuZ2UubGVuZ3RoLCAiIik7CisgICAgICAgIGRvd25jYXN0PEhUTUxUZXh0QXJlYUVsZW1lbnQ+
KGVsZW1lbnQpLnNldFJhbmdlVGV4dChyZXBsYWNlbWVudFN0cmluZywgcmFuZ2Uuc3RhcnQsIHJh
bmdlLmxlbmd0aCwgZW1wdHlTdHJpbmcoKSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0K
IApAQCAtMjU5NCw3ICsyNTk0LDcgQEAgU3RyaW5nIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmNvbXB1
dGVkUm9sZVN0cmluZygpIGNvbnN0CiAKICAgICAvLyBXZSBkbyBub3QgY29tcHV0ZSBhIHJvbGUg
c3RyaW5nIGZvciBnZW5lcmljIGJsb2NrIGVsZW1lbnRzIHdpdGggdXNlci1hZ2VudCBhc3NpZ25l
ZCByb2xlcy4KICAgICBpZiAocm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6R3JvdXAgfHwgcm9s
ZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6VGV4dEdyb3VwKQotICAgICAgICByZXR1cm4gIiI7Cisg
ICAgICAgIHJldHVybiBlbXB0eVN0cmluZygpOwogCiAgICAgLy8gV2UgZG8gY29tcHV0ZSBhIHJv
bGUgc3RyaW5nIGZvciBibG9jayBlbGVtZW50cyB3aXRoIGF1dGhvci1wcm92aWRlZCByb2xlcy4K
ICAgICBpZiAocm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb25UZXh0R3JvdXAK
QEAgLTI3MjUsNyArMjcyNSw3IEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojpyb2xlRGVz
Y3JpcHRpb24oKSBjb25zdAogCiBib29sIG5vZGVIYXNQcmVzZW50YXRpb25Sb2xlKE5vZGUqIG5v
ZGUpCiB7Ci0gICAgcmV0dXJuIG5vZGVIYXNSb2xlKG5vZGUsICJwcmVzZW50YXRpb24iKSB8fCBu
b2RlSGFzUm9sZShub2RlLCAibm9uZSIpOworICAgIHJldHVybiBub2RlSGFzUm9sZShub2RlLCAi
cHJlc2VudGF0aW9uIl9zKSB8fCBub2RlSGFzUm9sZShub2RlLCAibm9uZSJfcyk7CiB9CiAgICAg
CiBib29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnN1cHBvcnRzUHJlc3NBY3Rpb24oKSBjb25zdApA
QCAtMzIxMCwxMCArMzIxMCwxMCBAQCBIYXNoTWFwPFN0cmluZywgQVhFZGl0aW5nU3R5bGVWYWx1
ZVZhcmlhbnQ+IEFjY2Vzc2liaWxpdHlPYmplY3Q6OnJlc29sdmVkRWRpdGluZwogICAgICAgICBy
ZXR1cm4geyB9OwogCiAgICAgSGFzaE1hcDxTdHJpbmcsIEFYRWRpdGluZ1N0eWxlVmFsdWVWYXJp
YW50PiBzdHlsZXM7Ci0gICAgc3R5bGVzLmFkZCgiYm9sZCIsIHNlbGVjdGlvblN0eWxlLT5oYXNT
dHlsZShDU1NQcm9wZXJ0eUZvbnRXZWlnaHQsICJib2xkIikpOwotICAgIHN0eWxlcy5hZGQoIml0
YWxpYyIsIHNlbGVjdGlvblN0eWxlLT5oYXNTdHlsZShDU1NQcm9wZXJ0eUZvbnRTdHlsZSwgIml0
YWxpYyIpKTsKLSAgICBzdHlsZXMuYWRkKCJ1bmRlcmxpbmUiLCBzZWxlY3Rpb25TdHlsZS0+aGFz
U3R5bGUoQ1NTUHJvcGVydHlXZWJraXRUZXh0RGVjb3JhdGlvbnNJbkVmZmVjdCwgInVuZGVybGlu
ZSIpKTsKLSAgICBzdHlsZXMuYWRkKCJmb250c2l6ZSIsIHNlbGVjdGlvblN0eWxlLT5sZWdhY3lG
b250U2l6ZSgqZG9jdW1lbnQpKTsKKyAgICBzdHlsZXMuYWRkKCJib2xkIl9zLCBzZWxlY3Rpb25T
dHlsZS0+aGFzU3R5bGUoQ1NTUHJvcGVydHlGb250V2VpZ2h0LCAiYm9sZCJfcykpOworICAgIHN0
eWxlcy5hZGQoIml0YWxpYyJfcywgc2VsZWN0aW9uU3R5bGUtPmhhc1N0eWxlKENTU1Byb3BlcnR5
Rm9udFN0eWxlLCAiaXRhbGljIl9zKSk7CisgICAgc3R5bGVzLmFkZCgidW5kZXJsaW5lIl9zLCBz
ZWxlY3Rpb25TdHlsZS0+aGFzU3R5bGUoQ1NTUHJvcGVydHlXZWJraXRUZXh0RGVjb3JhdGlvbnNJ
bkVmZmVjdCwgInVuZGVybGluZSJfcykpOworICAgIHN0eWxlcy5hZGQoImZvbnRzaXplIl9zLCBz
ZWxlY3Rpb25TdHlsZS0+bGVnYWN5Rm9udFNpemUoKmRvY3VtZW50KSk7CiAgICAgcmV0dXJuIHN0
eWxlczsKIH0KIApAQCAtNDA4OCw3ICs0MDg4LDcgQEAgc3RhdGljIGJvb2wgaXNSYWRpb0J1dHRv
bkluRGlmZmVyZW50QWRob2NHcm91cChSZWZQdHI8QVhDb3JlT2JqZWN0PiBheE9iamVjdCwgQVgK
ICAgICBpZiAoIXJlZmVyZW5jZU9iamVjdCB8fCAhcmVmZXJlbmNlT2JqZWN0LT5pc1JhZGlvQnV0
dG9uKCkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgcmV0dXJuIGF4T2JqZWN0LT5hdHRy
aWJ1dGVWYWx1ZSgibmFtZSIpICE9IHJlZmVyZW5jZU9iamVjdC0+YXR0cmlidXRlVmFsdWUoIm5h
bWUiKTsKKyAgICByZXR1cm4gYXhPYmplY3QtPmF0dHJpYnV0ZVZhbHVlKCJuYW1lIl9zKSAhPSBy
ZWZlcmVuY2VPYmplY3QtPmF0dHJpYnV0ZVZhbHVlKCJuYW1lIl9zKTsKIH0KIAogc3RhdGljIGJv
b2wgaXNBY2Nlc3NpYmlsaXR5T2JqZWN0U2VhcmNoTWF0Y2hBdEluZGV4KFJlZlB0cjxBWENvcmVP
YmplY3Q+IGF4T2JqZWN0LCBBY2Nlc3NpYmlsaXR5U2VhcmNoQ3JpdGVyaWEgY29uc3QmIGNyaXRl
cmlhLCBzaXplX3QgaW5kZXgpCkBAIC00Mjk1LDcgKzQyOTUsNyBAQCBzdGF0aWMgdm9pZCBhcHBl
bmRDaGlsZHJlblRvQXJyYXkoUmVmUHRyPEFYQ29yZU9iamVjdD4gb2JqZWN0LCBib29sIGlzRm9y
d2FyZCwgUgogCiB2b2lkIGZpbmRNYXRjaGluZ09iamVjdHMoQWNjZXNzaWJpbGl0eVNlYXJjaENy
aXRlcmlhIGNvbnN0JiBjcml0ZXJpYSwgQVhDb3JlT2JqZWN0OjpBY2Nlc3NpYmlsaXR5Q2hpbGRy
ZW5WZWN0b3ImIHJlc3VsdHMpCiB7Ci0gICAgQVhUUkFDRSgiQWNjZXNzaWJpbGl0eTo6ZmluZE1h
dGNoaW5nT2JqZWN0cyIpOworICAgIEFYVFJBQ0UoIkFjY2Vzc2liaWxpdHk6OmZpbmRNYXRjaGlu
Z09iamVjdHMiX3MpOwogICAgIEFYTE9HKGNyaXRlcmlhKTsKIAogICAgIC8vIFRoaXMgc2VhcmNo
IGFsZ29yaXRobSBvbmx5IHNlYXJjaGVzIHRoZSBlbGVtZW50cyBiZWZvcmUvYWZ0ZXIgdGhlIHN0
YXJ0aW5nIG9iamVjdC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU9iamVjdEludGVyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgKaW5kZXggNDZmNjAyODAyYTc2MjFj
MDg2ZjUxNDVkMGE3MGVjZTZiZmI4MjdjZi4uZTBiZGRkOTMxYzRkMjQxZWQ3NzgwNDNlOWIyNDFm
MTI5ZTNmZWQ3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgKQEAgLTI2NCwzMTIgKzI2NCwzMTIg
QEAgQUxXQVlTX0lOTElORSBTdHJpbmcgYWNjZXNzaWJpbGl0eVJvbGVUb1N0cmluZyhBY2Nlc3Np
YmlsaXR5Um9sZSByb2xlKQogewogICAgIHN3aXRjaCAocm9sZSkgewogICAgIGNhc2UgQWNjZXNz
aWJpbGl0eVJvbGU6OkFubm90YXRpb246Ci0gICAgICAgIHJldHVybiAiQW5ub3RhdGlvbiI7Cisg
ICAgICAgIHJldHVybiAiQW5ub3RhdGlvbiJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xl
OjpBcHBsaWNhdGlvbjoKLSAgICAgICAgcmV0dXJuICJBcHBsaWNhdGlvbiI7CisgICAgICAgIHJl
dHVybiAiQXBwbGljYXRpb24iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGlj
YXRpb25BbGVydDoKLSAgICAgICAgcmV0dXJuICJBcHBsaWNhdGlvbkFsZXJ0IjsKKyAgICAgICAg
cmV0dXJuICJBcHBsaWNhdGlvbkFsZXJ0Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6
OkFwcGxpY2F0aW9uQWxlcnREaWFsb2c6Ci0gICAgICAgIHJldHVybiAiQXBwbGljYXRpb25BbGVy
dERpYWxvZyI7CisgICAgICAgIHJldHVybiAiQXBwbGljYXRpb25BbGVydERpYWxvZyJfczsKICAg
ICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvbkRpYWxvZzoKLSAgICAgICAgcmV0
dXJuICJBcHBsaWNhdGlvbkRpYWxvZyI7CisgICAgICAgIHJldHVybiAiQXBwbGljYXRpb25EaWFs
b2ciX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb25Hcm91cDoKLSAg
ICAgICAgcmV0dXJuICJBcHBsaWNhdGlvbkdyb3VwIjsKKyAgICAgICAgcmV0dXJuICJBcHBsaWNh
dGlvbkdyb3VwIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uTG9n
OgotICAgICAgICByZXR1cm4gIkFwcGxpY2F0aW9uTG9nIjsKKyAgICAgICAgcmV0dXJuICJBcHBs
aWNhdGlvbkxvZyJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvbk1h
cnF1ZWU6Ci0gICAgICAgIHJldHVybiAiQXBwbGljYXRpb25NYXJxdWVlIjsKKyAgICAgICAgcmV0
dXJuICJBcHBsaWNhdGlvbk1hcnF1ZWUiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6
QXBwbGljYXRpb25TdGF0dXM6Ci0gICAgICAgIHJldHVybiAiQXBwbGljYXRpb25TdGF0dXMiOwor
ICAgICAgICByZXR1cm4gIkFwcGxpY2F0aW9uU3RhdHVzIl9zOwogICAgIGNhc2UgQWNjZXNzaWJp
bGl0eVJvbGU6OkFwcGxpY2F0aW9uVGV4dEdyb3VwOgotICAgICAgICByZXR1cm4gIkFwcGxpY2F0
aW9uVGV4dEdyb3VwIjsKKyAgICAgICAgcmV0dXJuICJBcHBsaWNhdGlvblRleHRHcm91cCJfczsK
ICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvblRpbWVyOgotICAgICAgICBy
ZXR1cm4gIkFwcGxpY2F0aW9uVGltZXIiOworICAgICAgICByZXR1cm4gIkFwcGxpY2F0aW9uVGlt
ZXIiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXVkaW86Ci0gICAgICAgIHJldHVy
biAiQXVkaW8iOworICAgICAgICByZXR1cm4gIkF1ZGlvIl9zOwogICAgIGNhc2UgQWNjZXNzaWJp
bGl0eVJvbGU6OkJsb2NrcXVvdGU6Ci0gICAgICAgIHJldHVybiAiQmxvY2txdW90ZSI7CisgICAg
ICAgIHJldHVybiAiQmxvY2txdW90ZSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpC
cm93c2VyOgotICAgICAgICByZXR1cm4gIkJyb3dzZXIiOworICAgICAgICByZXR1cm4gIkJyb3dz
ZXIiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QnVzeUluZGljYXRvcjoKLSAgICAg
ICAgcmV0dXJuICJCdXN5SW5kaWNhdG9yIjsKKyAgICAgICAgcmV0dXJuICJCdXN5SW5kaWNhdG9y
Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkJ1dHRvbjoKLSAgICAgICAgcmV0dXJu
ICJCdXR0b24iOworICAgICAgICByZXR1cm4gIkJ1dHRvbiJfczsKICAgICBjYXNlIEFjY2Vzc2li
aWxpdHlSb2xlOjpDYW52YXM6Ci0gICAgICAgIHJldHVybiAiQ2FudmFzIjsKKyAgICAgICAgcmV0
dXJuICJDYW52YXMiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6Q2FwdGlvbjoKLSAg
ICAgICAgcmV0dXJuICJDYXB0aW9uIjsKKyAgICAgICAgcmV0dXJuICJDYXB0aW9uIl9zOwogICAg
IGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkNlbGw6Ci0gICAgICAgIHJldHVybiAiQ2VsbCI7Cisg
ICAgICAgIHJldHVybiAiQ2VsbCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpDaGVj
a0JveDoKLSAgICAgICAgcmV0dXJuICJDaGVja0JveCI7CisgICAgICAgIHJldHVybiAiQ2hlY2tC
b3giX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6Q29sb3JXZWxsOgotICAgICAgICBy
ZXR1cm4gIkNvbG9yV2VsbCI7CisgICAgICAgIHJldHVybiAiQ29sb3JXZWxsIl9zOwogICAgIGNh
c2UgQWNjZXNzaWJpbGl0eVJvbGU6OkNvbHVtbjoKLSAgICAgICAgcmV0dXJuICJDb2x1bW4iOwor
ICAgICAgICByZXR1cm4gIkNvbHVtbiJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpD
b2x1bW5IZWFkZXI6Ci0gICAgICAgIHJldHVybiAiQ29sdW1uSGVhZGVyIjsKKyAgICAgICAgcmV0
dXJuICJDb2x1bW5IZWFkZXIiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6Q29tYm9C
b3g6Ci0gICAgICAgIHJldHVybiAiQ29tYm9Cb3giOworICAgICAgICByZXR1cm4gIkNvbWJvQm94
Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRlZmluaXRpb246Ci0gICAgICAgIHJl
dHVybiAiRGVmaW5pdGlvbiI7CisgICAgICAgIHJldHVybiAiRGVmaW5pdGlvbiJfczsKICAgICBj
YXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpEZWxldGlvbjoKLSAgICAgICAgcmV0dXJuICJEZWxldGlv
biI7CisgICAgICAgIHJldHVybiAiRGVsZXRpb24iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5
Um9sZTo6RGVzY3JpcHRpb25MaXN0OgotICAgICAgICByZXR1cm4gIkRlc2NyaXB0aW9uTGlzdCI7
CisgICAgICAgIHJldHVybiAiRGVzY3JpcHRpb25MaXN0Il9zOwogICAgIGNhc2UgQWNjZXNzaWJp
bGl0eVJvbGU6OkRlc2NyaXB0aW9uTGlzdFRlcm06Ci0gICAgICAgIHJldHVybiAiRGVzY3JpcHRp
b25MaXN0VGVybSI7CisgICAgICAgIHJldHVybiAiRGVzY3JpcHRpb25MaXN0VGVybSJfczsKICAg
ICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpEZXNjcmlwdGlvbkxpc3REZXRhaWw6Ci0gICAgICAg
IHJldHVybiAiRGVzY3JpcHRpb25MaXN0RGV0YWlsIjsKKyAgICAgICAgcmV0dXJuICJEZXNjcmlw
dGlvbkxpc3REZXRhaWwiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RGV0YWlsczoK
LSAgICAgICAgcmV0dXJuICJEZXRhaWxzIjsKKyAgICAgICAgcmV0dXJuICJEZXRhaWxzIl9zOwog
ICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRpcmVjdG9yeToKLSAgICAgICAgcmV0dXJuICJE
aXJlY3RvcnkiOworICAgICAgICByZXR1cm4gIkRpcmVjdG9yeSJfczsKICAgICBjYXNlIEFjY2Vz
c2liaWxpdHlSb2xlOjpEaXNjbG9zdXJlVHJpYW5nbGU6Ci0gICAgICAgIHJldHVybiAiRGlzY2xv
c3VyZVRyaWFuZ2xlIjsKKyAgICAgICAgcmV0dXJuICJEaXNjbG9zdXJlVHJpYW5nbGUiX3M7CiAg
ICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RGl2OgotICAgICAgICByZXR1cm4gIkRpdiI7Cisg
ICAgICAgIHJldHVybiAiRGl2Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRvY3Vt
ZW50OgotICAgICAgICByZXR1cm4gIkRvY3VtZW50IjsKKyAgICAgICAgcmV0dXJuICJEb2N1bWVu
dCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpEb2N1bWVudEFydGljbGU6Ci0gICAg
ICAgIHJldHVybiAiRG9jdW1lbnRBcnRpY2xlIjsKKyAgICAgICAgcmV0dXJuICJEb2N1bWVudEFy
dGljbGUiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RG9jdW1lbnRNYXRoOgotICAg
ICAgICByZXR1cm4gIkRvY3VtZW50TWF0aCI7CisgICAgICAgIHJldHVybiAiRG9jdW1lbnRNYXRo
Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRvY3VtZW50Tm90ZToKLSAgICAgICAg
cmV0dXJuICJEb2N1bWVudE5vdGUiOworICAgICAgICByZXR1cm4gIkRvY3VtZW50Tm90ZSJfczsK
ICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpEcmF3ZXI6Ci0gICAgICAgIHJldHVybiAiRHJh
d2VyIjsKKyAgICAgICAgcmV0dXJuICJEcmF3ZXIiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5
Um9sZTo6RWRpdGFibGVUZXh0OgotICAgICAgICByZXR1cm4gIkVkaXRhYmxlVGV4dCI7CisgICAg
ICAgIHJldHVybiAiRWRpdGFibGVUZXh0Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6
OkZlZWQ6Ci0gICAgICAgIHJldHVybiAiRmVlZCI7CisgICAgICAgIHJldHVybiAiRmVlZCJfczsK
ICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpGaWd1cmU6Ci0gICAgICAgIHJldHVybiAiRmln
dXJlIjsKKyAgICAgICAgcmV0dXJuICJGaWd1cmUiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5
Um9sZTo6Rm9vdGVyOgotICAgICAgICByZXR1cm4gIkZvb3RlciI7CisgICAgICAgIHJldHVybiAi
Rm9vdGVyIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkZvb3Rub3RlOgotICAgICAg
ICByZXR1cm4gIkZvb3Rub3RlIjsKKyAgICAgICAgcmV0dXJuICJGb290bm90ZSJfczsKICAgICBj
YXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpGb3JtOgotICAgICAgICByZXR1cm4gIkZvcm0iOworICAg
ICAgICByZXR1cm4gIkZvcm0iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6R3JhcGhp
Y3NEb2N1bWVudDoKLSAgICAgICAgcmV0dXJuICJHcmFwaGljc0RvY3VtZW50IjsKKyAgICAgICAg
cmV0dXJuICJHcmFwaGljc0RvY3VtZW50Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6
OkdyYXBoaWNzT2JqZWN0OgotICAgICAgICByZXR1cm4gIkdyYXBoaWNzT2JqZWN0IjsKKyAgICAg
ICAgcmV0dXJuICJHcmFwaGljc09iamVjdCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xl
OjpHcmFwaGljc1N5bWJvbDoKLSAgICAgICAgcmV0dXJuICJHcmFwaGljc1N5bWJvbCI7CisgICAg
ICAgIHJldHVybiAiR3JhcGhpY3NTeW1ib2wiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9s
ZTo6R3JpZDoKLSAgICAgICAgcmV0dXJuICJHcmlkIjsKKyAgICAgICAgcmV0dXJuICJHcmlkIl9z
OwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkdyaWRDZWxsOgotICAgICAgICByZXR1cm4g
IkdyaWRDZWxsIjsKKyAgICAgICAgcmV0dXJuICJHcmlkQ2VsbCJfczsKICAgICBjYXNlIEFjY2Vz
c2liaWxpdHlSb2xlOjpHcm91cDoKLSAgICAgICAgcmV0dXJuICJHcm91cCI7CisgICAgICAgIHJl
dHVybiAiR3JvdXAiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6R3Jvd0FyZWE6Ci0g
ICAgICAgIHJldHVybiAiR3Jvd0FyZWEiOworICAgICAgICByZXR1cm4gIkdyb3dBcmVhIl9zOwog
ICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkhlYWRpbmc6Ci0gICAgICAgIHJldHVybiAiSGVh
ZGluZyI7CisgICAgICAgIHJldHVybiAiSGVhZGluZyJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxp
dHlSb2xlOjpIZWxwVGFnOgotICAgICAgICByZXR1cm4gIkhlbHBUYWciOworICAgICAgICByZXR1
cm4gIkhlbHBUYWciX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6SG9yaXpvbnRhbFJ1
bGU6Ci0gICAgICAgIHJldHVybiAiSG9yaXpvbnRhbFJ1bGUiOworICAgICAgICByZXR1cm4gIkhv
cml6b250YWxSdWxlIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Oklnbm9yZWQ6Ci0g
ICAgICAgIHJldHVybiAiSWdub3JlZCI7CisgICAgICAgIHJldHVybiAiSWdub3JlZCJfczsKICAg
ICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpJbmxpbmU6Ci0gICAgICAgIHJldHVybiAiSW5saW5l
IjsKKyAgICAgICAgcmV0dXJuICJJbmxpbmUiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9s
ZTo6SW1hZ2U6Ci0gICAgICAgIHJldHVybiAiSW1hZ2UiOworICAgICAgICByZXR1cm4gIkltYWdl
Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkltYWdlTWFwOgotICAgICAgICByZXR1
cm4gIkltYWdlTWFwIjsKKyAgICAgICAgcmV0dXJuICJJbWFnZU1hcCJfczsKICAgICBjYXNlIEFj
Y2Vzc2liaWxpdHlSb2xlOjpJbWFnZU1hcExpbms6Ci0gICAgICAgIHJldHVybiAiSW1hZ2VNYXBM
aW5rIjsKKyAgICAgICAgcmV0dXJuICJJbWFnZU1hcExpbmsiX3M7CiAgICAgY2FzZSBBY2Nlc3Np
YmlsaXR5Um9sZTo6SW5jcmVtZW50b3I6Ci0gICAgICAgIHJldHVybiAiSW5jcmVtZW50b3IiOwor
ICAgICAgICByZXR1cm4gIkluY3JlbWVudG9yIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJv
bGU6Okluc2VydGlvbjoKLSAgICAgICAgcmV0dXJuICJJbnNlcnRpb24iOworICAgICAgICByZXR1
cm4gIkluc2VydGlvbiJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpMYWJlbDoKLSAg
ICAgICAgcmV0dXJuICJMYWJlbCI7CisgICAgICAgIHJldHVybiAiTGFiZWwiX3M7CiAgICAgY2Fz
ZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtCYW5uZXI6Ci0gICAgICAgIHJldHVybiAiTGFu
ZG1hcmtCYW5uZXIiOworICAgICAgICByZXR1cm4gIkxhbmRtYXJrQmFubmVyIl9zOwogICAgIGNh
c2UgQWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJrQ29tcGxlbWVudGFyeToKLSAgICAgICAgcmV0
dXJuICJMYW5kbWFya0NvbXBsZW1lbnRhcnkiOworICAgICAgICByZXR1cm4gIkxhbmRtYXJrQ29t
cGxlbWVudGFyeSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpMYW5kbWFya0NvbnRl
bnRJbmZvOgotICAgICAgICByZXR1cm4gIkxhbmRtYXJrQ29udGVudEluZm8iOworICAgICAgICBy
ZXR1cm4gIkxhbmRtYXJrQ29udGVudEluZm8iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9s
ZTo6TGFuZG1hcmtEb2NSZWdpb246Ci0gICAgICAgIHJldHVybiAiTGFuZG1hcmtEb2NSZWdpb24i
OworICAgICAgICByZXR1cm4gIkxhbmRtYXJrRG9jUmVnaW9uIl9zOwogICAgIGNhc2UgQWNjZXNz
aWJpbGl0eVJvbGU6OkxhbmRtYXJrTWFpbjoKLSAgICAgICAgcmV0dXJuICJMYW5kbWFya01haW4i
OworICAgICAgICByZXR1cm4gIkxhbmRtYXJrTWFpbiJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxp
dHlSb2xlOjpMYW5kbWFya05hdmlnYXRpb246Ci0gICAgICAgIHJldHVybiAiTGFuZG1hcmtOYXZp
Z2F0aW9uIjsKKyAgICAgICAgcmV0dXJuICJMYW5kbWFya05hdmlnYXRpb24iX3M7CiAgICAgY2Fz
ZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtSZWdpb246Ci0gICAgICAgIHJldHVybiAiTGFu
ZG1hcmtSZWdpb24iOworICAgICAgICByZXR1cm4gIkxhbmRtYXJrUmVnaW9uIl9zOwogICAgIGNh
c2UgQWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJrU2VhcmNoOgotICAgICAgICByZXR1cm4gIkxh
bmRtYXJrU2VhcmNoIjsKKyAgICAgICAgcmV0dXJuICJMYW5kbWFya1NlYXJjaCJfczsKICAgICBj
YXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpMZWdlbmQ6Ci0gICAgICAgIHJldHVybiAiTGVnZW5kIjsK
KyAgICAgICAgcmV0dXJuICJMZWdlbmQiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6
TGluazoKLSAgICAgICAgcmV0dXJuICJMaW5rIjsKKyAgICAgICAgcmV0dXJuICJMaW5rIl9zOwog
ICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Okxpc3Q6Ci0gICAgICAgIHJldHVybiAiTGlzdCI7
CisgICAgICAgIHJldHVybiAiTGlzdCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpM
aXN0Qm94OgotICAgICAgICByZXR1cm4gIkxpc3RCb3giOworICAgICAgICByZXR1cm4gIkxpc3RC
b3giX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGlzdEJveE9wdGlvbjoKLSAgICAg
ICAgcmV0dXJuICJMaXN0Qm94T3B0aW9uIjsKKyAgICAgICAgcmV0dXJuICJMaXN0Qm94T3B0aW9u
Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Okxpc3RJdGVtOgotICAgICAgICByZXR1
cm4gIkxpc3RJdGVtIjsKKyAgICAgICAgcmV0dXJuICJMaXN0SXRlbSJfczsKICAgICBjYXNlIEFj
Y2Vzc2liaWxpdHlSb2xlOjpMaXN0TWFya2VyOgotICAgICAgICByZXR1cm4gIkxpc3RNYXJrZXIi
OworICAgICAgICByZXR1cm4gIkxpc3RNYXJrZXIiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5
Um9sZTo6TWFyazoKLSAgICAgICAgcmV0dXJuICJNYXJrIjsKKyAgICAgICAgcmV0dXJuICJNYXJr
Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Ok1hdGhFbGVtZW50OgotICAgICAgICBy
ZXR1cm4gIk1hdGhFbGVtZW50IjsKKyAgICAgICAgcmV0dXJuICJNYXRoRWxlbWVudCJfczsKICAg
ICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpNYXR0ZToKLSAgICAgICAgcmV0dXJuICJNYXR0ZSI7
CisgICAgICAgIHJldHVybiAiTWF0dGUiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6
TWVudToKLSAgICAgICAgcmV0dXJuICJNZW51IjsKKyAgICAgICAgcmV0dXJuICJNZW51Il9zOwog
ICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Ok1lbnVCYXI6Ci0gICAgICAgIHJldHVybiAiTWVu
dUJhciI7CisgICAgICAgIHJldHVybiAiTWVudUJhciJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxp
dHlSb2xlOjpNZW51QnV0dG9uOgotICAgICAgICByZXR1cm4gIk1lbnVCdXR0b24iOworICAgICAg
ICByZXR1cm4gIk1lbnVCdXR0b24iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TWVu
dUl0ZW06Ci0gICAgICAgIHJldHVybiAiTWVudUl0ZW0iOworICAgICAgICByZXR1cm4gIk1lbnVJ
dGVtIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Ok1lbnVJdGVtQ2hlY2tib3g6Ci0g
ICAgICAgIHJldHVybiAiTWVudUl0ZW1DaGVja2JveCI7CisgICAgICAgIHJldHVybiAiTWVudUl0
ZW1DaGVja2JveCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpNZW51SXRlbVJhZGlv
OgotICAgICAgICByZXR1cm4gIk1lbnVJdGVtUmFkaW8iOworICAgICAgICByZXR1cm4gIk1lbnVJ
dGVtUmFkaW8iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TWVudUxpc3RQb3B1cDoK
LSAgICAgICAgcmV0dXJuICJNZW51TGlzdFBvcHVwIjsKKyAgICAgICAgcmV0dXJuICJNZW51TGlz
dFBvcHVwIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Ok1lbnVMaXN0T3B0aW9uOgot
ICAgICAgICByZXR1cm4gIk1lbnVMaXN0T3B0aW9uIjsKKyAgICAgICAgcmV0dXJuICJNZW51TGlz
dE9wdGlvbiJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpNZXRlcjoKLSAgICAgICAg
cmV0dXJuICJNZXRlciI7CisgICAgICAgIHJldHVybiAiTWV0ZXIiX3M7CiAgICAgY2FzZSBBY2Nl
c3NpYmlsaXR5Um9sZTo6TW9kZWw6Ci0gICAgICAgIHJldHVybiAiTW9kZWwiOworICAgICAgICBy
ZXR1cm4gIk1vZGVsIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Ok91dGxpbmU6Ci0g
ICAgICAgIHJldHVybiAiT3V0bGluZSI7CisgICAgICAgIHJldHVybiAiT3V0bGluZSJfczsKICAg
ICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpQYXJhZ3JhcGg6Ci0gICAgICAgIHJldHVybiAiUGFy
YWdyYXBoIjsKKyAgICAgICAgcmV0dXJuICJQYXJhZ3JhcGgiX3M7CiAgICAgY2FzZSBBY2Nlc3Np
YmlsaXR5Um9sZTo6UG9wVXBCdXR0b246Ci0gICAgICAgIHJldHVybiAiUG9wVXBCdXR0b24iOwor
ICAgICAgICByZXR1cm4gIlBvcFVwQnV0dG9uIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJv
bGU6OlByZToKLSAgICAgICAgcmV0dXJuICJQcmUiOworICAgICAgICByZXR1cm4gIlByZSJfczsK
ICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpQcmVzZW50YXRpb25hbDoKLSAgICAgICAgcmV0
dXJuICJQcmVzZW50YXRpb25hbCI7CisgICAgICAgIHJldHVybiAiUHJlc2VudGF0aW9uYWwiX3M7
CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6UHJvZ3Jlc3NJbmRpY2F0b3I6Ci0gICAgICAg
IHJldHVybiAiUHJvZ3Jlc3NJbmRpY2F0b3IiOworICAgICAgICByZXR1cm4gIlByb2dyZXNzSW5k
aWNhdG9yIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlJhZGlvQnV0dG9uOgotICAg
ICAgICByZXR1cm4gIlJhZGlvQnV0dG9uIjsKKyAgICAgICAgcmV0dXJuICJSYWRpb0J1dHRvbiJf
czsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpSYWRpb0dyb3VwOgotICAgICAgICByZXR1
cm4gIlJhZGlvR3JvdXAiOworICAgICAgICByZXR1cm4gIlJhZGlvR3JvdXAiX3M7CiAgICAgY2Fz
ZSBBY2Nlc3NpYmlsaXR5Um9sZTo6Um93SGVhZGVyOgotICAgICAgICByZXR1cm4gIlJvd0hlYWRl
ciI7CisgICAgICAgIHJldHVybiAiUm93SGVhZGVyIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0
eVJvbGU6OlJvdzoKLSAgICAgICAgcmV0dXJuICJSb3ciOworICAgICAgICByZXR1cm4gIlJvdyJf
czsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpSb3dHcm91cDoKLSAgICAgICAgcmV0dXJu
ICJSb3dHcm91cCI7CisgICAgICAgIHJldHVybiAiUm93R3JvdXAiX3M7CiAgICAgY2FzZSBBY2Nl
c3NpYmlsaXR5Um9sZTo6UnVieUJhc2U6Ci0gICAgICAgIHJldHVybiAiUnVieUJhc2UiOworICAg
ICAgICByZXR1cm4gIlJ1YnlCYXNlIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlJ1
YnlCbG9jazoKLSAgICAgICAgcmV0dXJuICJSdWJ5QmxvY2siOworICAgICAgICByZXR1cm4gIlJ1
YnlCbG9jayJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpSdWJ5SW5saW5lOgotICAg
ICAgICByZXR1cm4gIlJ1YnlJbmxpbmUiOworICAgICAgICByZXR1cm4gIlJ1YnlJbmxpbmUiX3M7
CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6UnVieVJ1bjoKLSAgICAgICAgcmV0dXJuICJS
dWJ5UnVuIjsKKyAgICAgICAgcmV0dXJuICJSdWJ5UnVuIl9zOwogICAgIGNhc2UgQWNjZXNzaWJp
bGl0eVJvbGU6OlJ1YnlUZXh0OgotICAgICAgICByZXR1cm4gIlJ1YnlUZXh0IjsKKyAgICAgICAg
cmV0dXJuICJSdWJ5VGV4dCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpSdWxlcjoK
LSAgICAgICAgcmV0dXJuICJSdWxlciI7CisgICAgICAgIHJldHVybiAiUnVsZXIiX3M7CiAgICAg
Y2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6UnVsZXJNYXJrZXI6Ci0gICAgICAgIHJldHVybiAiUnVs
ZXJNYXJrZXIiOworICAgICAgICByZXR1cm4gIlJ1bGVyTWFya2VyIl9zOwogICAgIGNhc2UgQWNj
ZXNzaWJpbGl0eVJvbGU6OlNjcm9sbEFyZWE6Ci0gICAgICAgIHJldHVybiAiU2Nyb2xsQXJlYSI7
CisgICAgICAgIHJldHVybiAiU2Nyb2xsQXJlYSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlS
b2xlOjpTY3JvbGxCYXI6Ci0gICAgICAgIHJldHVybiAiU2Nyb2xsQmFyIjsKKyAgICAgICAgcmV0
dXJuICJTY3JvbGxCYXIiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6U2VhcmNoRmll
bGQ6Ci0gICAgICAgIHJldHVybiAiU2VhcmNoRmllbGQiOworICAgICAgICByZXR1cm4gIlNlYXJj
aEZpZWxkIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlNoZWV0OgotICAgICAgICBy
ZXR1cm4gIlNoZWV0IjsKKyAgICAgICAgcmV0dXJuICJTaGVldCJfczsKICAgICBjYXNlIEFjY2Vz
c2liaWxpdHlSb2xlOjpTbGlkZXI6Ci0gICAgICAgIHJldHVybiAiU2xpZGVyIjsKKyAgICAgICAg
cmV0dXJuICJTbGlkZXIiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6U2xpZGVyVGh1
bWI6Ci0gICAgICAgIHJldHVybiAiU2xpZGVyVGh1bWIiOworICAgICAgICByZXR1cm4gIlNsaWRl
clRodW1iIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlNwaW5CdXR0b246Ci0gICAg
ICAgIHJldHVybiAiU3BpbkJ1dHRvbiI7CisgICAgICAgIHJldHVybiAiU3BpbkJ1dHRvbiJfczsK
ICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpTcGluQnV0dG9uUGFydDoKLSAgICAgICAgcmV0
dXJuICJTcGluQnV0dG9uUGFydCI7CisgICAgICAgIHJldHVybiAiU3BpbkJ1dHRvblBhcnQiX3M7
CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6U3BsaXRHcm91cDoKLSAgICAgICAgcmV0dXJu
ICJTcGxpdEdyb3VwIjsKKyAgICAgICAgcmV0dXJuICJTcGxpdEdyb3VwIl9zOwogICAgIGNhc2Ug
QWNjZXNzaWJpbGl0eVJvbGU6OlNwbGl0dGVyOgotICAgICAgICByZXR1cm4gIlNwbGl0dGVyIjsK
KyAgICAgICAgcmV0dXJuICJTcGxpdHRlciJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xl
OjpTdGF0aWNUZXh0OgotICAgICAgICByZXR1cm4gIlN0YXRpY1RleHQiOworICAgICAgICByZXR1
cm4gIlN0YXRpY1RleHQiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6U3Vic2NyaXB0
OgotICAgICAgICByZXR1cm4gIlN1YnNjcmlwdCI7CisgICAgICAgIHJldHVybiAiU3Vic2NyaXB0
Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlN1bW1hcnk6Ci0gICAgICAgIHJldHVy
biAiU3VtbWFyeSI7CisgICAgICAgIHJldHVybiAiU3VtbWFyeSJfczsKICAgICBjYXNlIEFjY2Vz
c2liaWxpdHlSb2xlOjpTdXBlcnNjcmlwdDoKLSAgICAgICAgcmV0dXJuICJTdXBlcnNjcmlwdCI7
CisgICAgICAgIHJldHVybiAiU3VwZXJzY3JpcHQiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5
Um9sZTo6U3dpdGNoOgotICAgICAgICByZXR1cm4gIlN3aXRjaCI7CisgICAgICAgIHJldHVybiAi
U3dpdGNoIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlN5c3RlbVdpZGU6Ci0gICAg
ICAgIHJldHVybiAiU3lzdGVtV2lkZSI7CisgICAgICAgIHJldHVybiAiU3lzdGVtV2lkZSJfczsK
ICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpTVkdSb290OgotICAgICAgICByZXR1cm4gIlNW
R1Jvb3QiOworICAgICAgICByZXR1cm4gIlNWR1Jvb3QiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmls
aXR5Um9sZTo6U1ZHVGV4dDoKLSAgICAgICAgcmV0dXJuICJTVkdUZXh0IjsKKyAgICAgICAgcmV0
dXJuICJTVkdUZXh0Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlNWR1RTcGFuOgot
ICAgICAgICByZXR1cm4gIlNWR1RTcGFuIjsKKyAgICAgICAgcmV0dXJuICJTVkdUU3BhbiJfczsK
ICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpTVkdUZXh0UGF0aDoKLSAgICAgICAgcmV0dXJu
ICJTVkdUZXh0UGF0aCI7CisgICAgICAgIHJldHVybiAiU1ZHVGV4dFBhdGgiX3M7CiAgICAgY2Fz
ZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VGFiR3JvdXA6Ci0gICAgICAgIHJldHVybiAiVGFiR3JvdXAi
OworICAgICAgICByZXR1cm4gIlRhYkdyb3VwIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJv
bGU6OlRhYkxpc3Q6Ci0gICAgICAgIHJldHVybiAiVGFiTGlzdCI7CisgICAgICAgIHJldHVybiAi
VGFiTGlzdCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpUYWJQYW5lbDoKLSAgICAg
ICAgcmV0dXJuICJUYWJQYW5lbCI7CisgICAgICAgIHJldHVybiAiVGFiUGFuZWwiX3M7CiAgICAg
Y2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VGFiOgotICAgICAgICByZXR1cm4gIlRhYiI7CisgICAg
ICAgIHJldHVybiAiVGFiIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlRhYmxlOgot
ICAgICAgICByZXR1cm4gIlRhYmxlIjsKKyAgICAgICAgcmV0dXJuICJUYWJsZSJfczsKICAgICBj
YXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpUYWJsZUhlYWRlckNvbnRhaW5lcjoKLSAgICAgICAgcmV0
dXJuICJUYWJsZUhlYWRlckNvbnRhaW5lciI7CisgICAgICAgIHJldHVybiAiVGFibGVIZWFkZXJD
b250YWluZXIiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VGVybToKLSAgICAgICAg
cmV0dXJuICJUZXJtIjsKKyAgICAgICAgcmV0dXJuICJUZXJtIl9zOwogICAgIGNhc2UgQWNjZXNz
aWJpbGl0eVJvbGU6OlRleHRBcmVhOgotICAgICAgICByZXR1cm4gIlRleHRBcmVhIjsKKyAgICAg
ICAgcmV0dXJuICJUZXh0QXJlYSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpUZXh0
RmllbGQ6Ci0gICAgICAgIHJldHVybiAiVGV4dEZpZWxkIjsKKyAgICAgICAgcmV0dXJuICJUZXh0
RmllbGQiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VGV4dEdyb3VwOgotICAgICAg
ICByZXR1cm4gIlRleHRHcm91cCI7CisgICAgICAgIHJldHVybiAiVGV4dEdyb3VwIl9zOwogICAg
IGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlRpbWU6Ci0gICAgICAgIHJldHVybiAiVGltZSI7Cisg
ICAgICAgIHJldHVybiAiVGltZSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpUcmVl
OgotICAgICAgICByZXR1cm4gIlRyZWUiOworICAgICAgICByZXR1cm4gIlRyZWUiX3M7CiAgICAg
Y2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VHJlZUdyaWQ6Ci0gICAgICAgIHJldHVybiAiVHJlZUdy
aWQiOworICAgICAgICByZXR1cm4gIlRyZWVHcmlkIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0
eVJvbGU6OlRyZWVJdGVtOgotICAgICAgICByZXR1cm4gIlRyZWVJdGVtIjsKKyAgICAgICAgcmV0
dXJuICJUcmVlSXRlbSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpUb2dnbGVCdXR0
b246Ci0gICAgICAgIHJldHVybiAiVG9nZ2xlQnV0dG9uIjsKKyAgICAgICAgcmV0dXJuICJUb2dn
bGVCdXR0b24iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VG9vbGJhcjoKLSAgICAg
ICAgcmV0dXJuICJUb29sYmFyIjsKKyAgICAgICAgcmV0dXJuICJUb29sYmFyIl9zOwogICAgIGNh
c2UgQWNjZXNzaWJpbGl0eVJvbGU6OlVua25vd246Ci0gICAgICAgIHJldHVybiAiVW5rbm93biI7
CisgICAgICAgIHJldHVybiAiVW5rbm93biJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xl
OjpVc2VySW50ZXJmYWNlVG9vbHRpcDoKLSAgICAgICAgcmV0dXJuICJVc2VySW50ZXJmYWNlVG9v
bHRpcCI7CisgICAgICAgIHJldHVybiAiVXNlckludGVyZmFjZVRvb2x0aXAiX3M7CiAgICAgY2Fz
ZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VmFsdWVJbmRpY2F0b3I6Ci0gICAgICAgIHJldHVybiAiVmFs
dWVJbmRpY2F0b3IiOworICAgICAgICByZXR1cm4gIlZhbHVlSW5kaWNhdG9yIl9zOwogICAgIGNh
c2UgQWNjZXNzaWJpbGl0eVJvbGU6OlZpZGVvOgotICAgICAgICByZXR1cm4gIlZpZGVvIjsKKyAg
ICAgICAgcmV0dXJuICJWaWRlbyJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpXZWJB
cHBsaWNhdGlvbjoKLSAgICAgICAgcmV0dXJuICJXZWJBcHBsaWNhdGlvbiI7CisgICAgICAgIHJl
dHVybiAiV2ViQXBwbGljYXRpb24iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6V2Vi
QXJlYToKLSAgICAgICAgcmV0dXJuICJXZWJBcmVhIjsKKyAgICAgICAgcmV0dXJuICJXZWJBcmVh
Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OldlYkNvcmVMaW5rOgotICAgICAgICBy
ZXR1cm4gIldlYkNvcmVMaW5rIjsKKyAgICAgICAgcmV0dXJuICJXZWJDb3JlTGluayJfczsKICAg
ICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpXaW5kb3c6Ci0gICAgICAgIHJldHVybiAiV2luZG93
IjsKKyAgICAgICAgcmV0dXJuICJXaW5kb3ciX3M7CiAgICAgfQogICAgIFVOUkVBQ0hBQkxFKCk7
Ci0gICAgcmV0dXJuICIiOworICAgIHJldHVybiAiIl9zOwogfQogCiBlbnVtIGNsYXNzIEFjY2Vz
c2liaWxpdHlEZXRhY2htZW50VHlwZSB7IENhY2hlRGVzdHJveWVkLCBFbGVtZW50RGVzdHJveWVk
LCBFbGVtZW50Q2hhbmdlZCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKaW5kZXggNDQyMjk1NWEzODY1
ZGJjNWRkNzIzNTRjYmJmYmYyMDI3NjcxNWIwNi4uYTZkMzEwMmM4ODJhNjA5OGY0NzkyYjdiY2Qw
NmJhMjZkNDI4N2Q4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCkBAIC0yNzg3LDExICsyNzg3LDEx
IEBAIGJvb2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6cmVuZGVyT2JqZWN0SXNPYnNlcnZh
YmxlKFJlbmRlck9iamVjdCYgcmVuZGVyZXIpCiAgICAgaWYgKCFub2RlKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgCi0gICAgaWYgKG5vZGVIYXNSb2xlKG5vZGUsICJsaXN0Ym94IikgfHwg
KGlzPFJlbmRlckJveE1vZGVsT2JqZWN0PihyZW5kZXJlcikgJiYgZG93bmNhc3Q8UmVuZGVyQm94
TW9kZWxPYmplY3Q+KHJlbmRlcmVyKS5pc0xpc3RCb3goKSkpCisgICAgaWYgKG5vZGVIYXNSb2xl
KG5vZGUsICJsaXN0Ym94Il9zKSB8fCAoaXM8UmVuZGVyQm94TW9kZWxPYmplY3Q+KHJlbmRlcmVy
KSAmJiBkb3duY2FzdDxSZW5kZXJCb3hNb2RlbE9iamVjdD4ocmVuZGVyZXIpLmlzTGlzdEJveCgp
KSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKICAgICAvLyBUZXh0Ym94ZXMgc2hvdWxkIHNlbmQg
b3V0IG5vdGlmaWNhdGlvbnMuCi0gICAgaWYgKG5vZGVIYXNSb2xlKG5vZGUsICJ0ZXh0Ym94Iikg
fHwgKGlzPEVsZW1lbnQ+KCpub2RlKSAmJiBjb250ZW50RWRpdGFibGVBdHRyaWJ1dGVJc0VuYWJs
ZWQoZG93bmNhc3Q8RWxlbWVudD4obm9kZSkpKSkKKyAgICBpZiAobm9kZUhhc1JvbGUobm9kZSwg
InRleHRib3giX3MpIHx8IChpczxFbGVtZW50Pigqbm9kZSkgJiYgY29udGVudEVkaXRhYmxlQXR0
cmlidXRlSXNFbmFibGVkKGRvd25jYXN0PEVsZW1lbnQ+KG5vZGUpKSkpCiAgICAgICAgIHJldHVy
biB0cnVlOwogICAgIAogICAgIHJldHVybiBmYWxzZTsKQEAgLTI4NDAsNyArMjg0MCw3IEBAIGJv
b2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2hvdWxkSWdub3JlQXR0cmlidXRlUm9sZSgp
IGNvbnN0CiAKIEFjY2Vzc2liaWxpdHlSb2xlIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmRl
dGVybWluZUFjY2Vzc2liaWxpdHlSb2xlKCkKIHsKLSAgICBBWFRSQUNFKCJBY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0OjpkZXRlcm1pbmVBY2Nlc3NpYmlsaXR5Um9sZSIpOworICAgIEFYVFJBQ0Uo
IkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmRldGVybWluZUFjY2Vzc2liaWxpdHlSb2xlIl9z
KTsKICAgICBpZiAoIW1fcmVuZGVyZXIpCiAgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5Um9s
ZTo6VW5rbm93bjsKIApAQCAtMzI4MCw3ICszMjgwLDcgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0OjphZGRMaXN0SXRlbU1hcmtlcigpCiAKIHZvaWQgQWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdDo6dXBkYXRlUm9sZUFmdGVyQ2hpbGRyZW5DcmVhdGlvbigpCiB7Ci0gICAgQVhUUkFD
RSgiQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6dXBkYXRlUm9sZUFmdGVyQ2hpbGRyZW5DcmVh
dGlvbiIpOworICAgIEFYVFJBQ0UoIkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnVwZGF0ZVJv
bGVBZnRlckNoaWxkcmVuQ3JlYXRpb24iX3MpOwogICAgIC8vIElmIGEgbWVudSBkb2VzIG5vdCBo
YXZlIHZhbGlkIG1lbnVpdGVtIGNoaWxkcmVuLCBpdCBzaG91bGQgbm90IGJlIGV4cG9zZWQgYXMg
YSBtZW51LgogICAgIGF1dG8gcm9sZSA9IHJvbGVWYWx1ZSgpOwogICAgIGlmIChyb2xlID09IEFj
Y2Vzc2liaWxpdHlSb2xlOjpNZW51KSB7CkBAIC0zMzY0LDcgKzMzNjQsNyBAQCBjb25zdCBTdHJp
bmcgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6bGl2ZVJlZ2lvblJlbGV2YW50KCkgY29uc3QK
IAogICAgIC8vIERlZmF1bHQgYXJpYS1yZWxldmFudCA9ICJhZGRpdGlvbnMgdGV4dCIuCiAgICAg
aWYgKHJlbGV2YW50LmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuICJhZGRpdGlvbnMgdGV4dCI7
CisgICAgICAgIHJldHVybiAiYWRkaXRpb25zIHRleHQiX3M7CiAgICAgCiAgICAgcmV0dXJuIHJl
bGV2YW50OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5VGFibGVDZWxsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eVRhYmxlQ2VsbC5jcHAKaW5kZXggMjdjZjg2OWY0ZDU3NzFjOTg0YjJiZTNmNDYx
MjZiOTg3N2I2MDAxNS4uMzRhN2JhN2NjZGI0ZTUzYWE1NTQ2MTk4MGYxNTRkMzg4YzJhZjQzZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFi
bGVDZWxsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlUYWJsZUNlbGwuY3BwCkBAIC02NSw3ICs2NSw3IEBAIGJvb2wgQWNjZXNzaWJpbGl0eVRhYmxl
Q2VsbDo6Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdAogICAgIAogICAgIC8v
IElnbm9yZSBhbm9ueW1vdXMgdGFibGUgY2VsbHMgYXMgbG9uZyBhcyB0aGV5J3JlIG5vdCBpbiBh
IHRhYmxlIChpZS4gd2hlbiBkaXNwbGF5OnRhYmxlIGlzIHVzZWQpLgogICAgIFJlbmRlck9iamVj
dCogcmVuZGVyVGFibGUgPSBpczxSZW5kZXJUYWJsZUNlbGw+KHJlbmRlcmVyKCkpID8gZG93bmNh
c3Q8UmVuZGVyVGFibGVDZWxsPigqbV9yZW5kZXJlcikudGFibGUoKSA6IG51bGxwdHI7Ci0gICAg
Ym9vbCBpblRhYmxlID0gcmVuZGVyVGFibGUgJiYgcmVuZGVyVGFibGUtPm5vZGUoKSAmJiAocmVu
ZGVyVGFibGUtPm5vZGUoKS0+aGFzVGFnTmFtZSh0YWJsZVRhZykgfHwgbm9kZUhhc1JvbGUocmVu
ZGVyVGFibGUtPm5vZGUoKSwgImdyaWQiKSk7CisgICAgYm9vbCBpblRhYmxlID0gcmVuZGVyVGFi
bGUgJiYgcmVuZGVyVGFibGUtPm5vZGUoKSAmJiAocmVuZGVyVGFibGUtPm5vZGUoKS0+aGFzVGFn
TmFtZSh0YWJsZVRhZykgfHwgbm9kZUhhc1JvbGUocmVuZGVyVGFibGUtPm5vZGUoKSwgImdyaWQi
X3MpKTsKICAgICBpZiAoIW5vZGUoKSAmJiAhaW5UYWJsZSkKICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nl
c3NpYmlsaXR5VHJlZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2li
aWxpdHlUcmVlLmNwcAppbmRleCA1OTBjOTYxNTk2MDYwZGI2ZGIxNTUzODk4ZWIxNmYzMGI0NTRl
NjhkLi4xYzAwYmM5NTQyM2UyOTZhZDUxMjYzNzdlNDgxYzdjZTc5ZGZiZDAzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUcmVlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUcmVlLmNwcApAQCAt
NjgsNyArNjgsNyBAQCBBY2Nlc3NpYmlsaXR5Um9sZSBBY2Nlc3NpYmlsaXR5VHJlZTo6ZGV0ZXJt
aW5lQWNjZXNzaWJpbGl0eVJvbGUoKQogYm9vbCBBY2Nlc3NpYmlsaXR5VHJlZTo6bm9kZUhhc1Ry
ZWVJdGVtQ2hpbGQoTm9kZSYgbm9kZSkgY29uc3QKIHsKICAgICBmb3IgKGF1dG8qIGNoaWxkID0g
bm9kZS5maXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpKSB7
Ci0gICAgICAgIGlmIChub2RlSGFzUm9sZShjaGlsZCwgInRyZWVpdGVtIikpCisgICAgICAgIGlm
IChub2RlSGFzUm9sZShjaGlsZCwgInRyZWVpdGVtIl9zKSkKICAgICAgICAgICAgIHJldHVybiB0
cnVlOwogICAgIH0KICAgICByZXR1cm4gZmFsc2U7CkBAIC05MiwxNCArOTIsMTQgQEAgYm9vbCBB
Y2Nlc3NpYmlsaXR5VHJlZTo6aXNUcmVlVmFsaWQoKSBjb25zdAogCiAgICAgICAgIGlmICghaXM8
RWxlbWVudD4oKmNoaWxkKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBpZiAobm9k
ZUhhc1JvbGUoY2hpbGQsICJ0cmVlaXRlbSIpKQorICAgICAgICBpZiAobm9kZUhhc1JvbGUoY2hp
bGQsICJ0cmVlaXRlbSJfcykpCiAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgaWYgKG5v
ZGVIYXNSb2xlKGNoaWxkLCAicHJlc2VudGF0aW9uIikpIHsKKyAgICAgICAgaWYgKG5vZGVIYXNS
b2xlKGNoaWxkLCAicHJlc2VudGF0aW9uIl9zKSkgewogICAgICAgICAgICAgaWYgKCFub2RlSGFz
VHJlZUl0ZW1DaGlsZCgqY2hpbGQpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9Ci0gICAgICAgIGlmICghbm9kZUhhc1JvbGUo
Y2hpbGQsICJncm91cCIpKQorICAgICAgICBpZiAoIW5vZGVIYXNSb2xlKGNoaWxkLCAiZ3JvdXAi
X3MpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgICAgIGZvciAoYXV0byogZ3Jv
dXBDaGlsZCA9IGNoaWxkLT5maXJzdENoaWxkKCk7IGdyb3VwQ2hpbGQ7IGdyb3VwQ2hpbGQgPSBn
cm91cENoaWxkLT5uZXh0U2libGluZygpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcAppbmRl
eCBhMTM0YWU3NTJmYTIwMTJlNzgwZDk5ZmExMDhjM2Y0ODc5NmMxMTFjLi41ZjAyMDFmMDdiNTM1
MDViNzBkZGUzMzlhMmNiMjk2NTdjZjc4NDVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNw
cApAQCAtMzA1LDcgKzMwNSw3IEBAIHZvaWQgQVhJc29sYXRlZE9iamVjdDo6aW5pdGlhbGl6ZUF0
dHJpYnV0ZURhdGEoQVhDb3JlT2JqZWN0JiBjb3JlT2JqZWN0LCBib29sIGlzCiAgICAgICAgIHNl
dFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpUZXh0TGVuZ3RoLCBvYmplY3QudGV4dExlbmd0aCgp
KTsKIAogICAgIGlmIChvYmplY3QuaXNSYWRpb0J1dHRvbigpKSB7Ci0gICAgICAgIGlmIChhdXRv
IG5hbWVBdHRyaWJ1dGUgPSBvYmplY3QuYXR0cmlidXRlVmFsdWUoIm5hbWUiKSkKKyAgICAgICAg
aWYgKGF1dG8gbmFtZUF0dHJpYnV0ZSA9IG9iamVjdC5hdHRyaWJ1dGVWYWx1ZSgibmFtZSJfcykp
CiAgICAgICAgICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6TmFtZUF0dHJpYnV0ZSwg
bmFtZUF0dHJpYnV0ZS0+aXNvbGF0ZWRDb3B5KCkpOwogICAgIH0KIApAQCAtMzYyLDcgKzM2Miw3
IEBAIHZvaWQgQVhJc29sYXRlZE9iamVjdDo6aW5pdGlhbGl6ZUF0dHJpYnV0ZURhdGEoQVhDb3Jl
T2JqZWN0JiBjb3JlT2JqZWN0LCBib29sIGlzCiAgICAgU3RyaW5nIGNvbWJpbmVkQ2xhc3NMaXN0
OwogICAgIGZvciAoYXV0byBpdCA9IGNsYXNzTGlzdC5iZWdpbigpLCBlbmQgPSBjbGFzc0xpc3Qu
ZW5kKCk7IGl0ICE9IGVuZDsgKytpdCkgewogICAgICAgICBjb21iaW5lZENsYXNzTGlzdC5hcHBl
bmQoKml0KTsKLSAgICAgICAgY29tYmluZWRDbGFzc0xpc3QuYXBwZW5kKCIgIik7CisgICAgICAg
IGNvbWJpbmVkQ2xhc3NMaXN0LmFwcGVuZCgiICJfcyk7CiAgICAgfQogICAgIHNldFByb3BlcnR5
KEFYUHJvcGVydHlOYW1lOjpDbGFzc0xpc3QsIGNvbWJpbmVkQ2xhc3NMaXN0KTsKIApAQCAtNjAw
LDcgKzYwMCw3IEBAIHZvaWQgQVhJc29sYXRlZE9iamVjdDo6YWNjZXNzaWJpbGl0eVRleHQoVmVj
dG9yPEFjY2Vzc2liaWxpdHlUZXh0PiYgdGV4dHMpIGNvbnN0CiB2b2lkIEFYSXNvbGF0ZWRPYmpl
Y3Q6OmNsYXNzTGlzdChWZWN0b3I8U3RyaW5nPiYgbGlzdCkgY29uc3QKIHsKICAgICBTdHJpbmcg
Y2xhc3NMaXN0ID0gc3RyaW5nQXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6OkNsYXNzTGlz
dCk7Ci0gICAgbGlzdC5hcHBlbmRWZWN0b3IoY2xhc3NMaXN0LnNwbGl0KCIgIikpOworICAgIGxp
c3QuYXBwZW5kVmVjdG9yKGNsYXNzTGlzdC5zcGxpdCgiICJfcykpOwogfQogCiBQQUw6OlNlc3Np
b25JRCBBWElzb2xhdGVkT2JqZWN0OjpzZXNzaW9uSUQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRy
ZWUuY3BwCmluZGV4IDY3ZjViMWRlZmQ5YzQ3OGVkZWJiMDc5M2M2NTBlMzhjZjM5YTNjNGIuLjFj
ZTc4NTAyZDJlYzc3MjI3Y2JmM2RiMjc1MGMwN2FiY2U4MzljZTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVk
VHJlZS5jcHAKQEAgLTYyLDE4ICs2MiwxOCBAQCBBWElzb2xhdGVkVHJlZTo6QVhJc29sYXRlZFRy
ZWUoQVhPYmplY3RDYWNoZSogYXhPYmplY3RDYWNoZSkKICAgICAsIG1fYXhPYmplY3RDYWNoZShh
eE9iamVjdENhY2hlKQogICAgICwgbV91c2VkT25BWFRocmVhZChheE9iamVjdENhY2hlLT51c2Vk
T25BWFRocmVhZCgpKQogewotICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjpBWElzb2xhdGVk
VHJlZSIpOworICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjpBWElzb2xhdGVkVHJlZSJfcyk7
CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIH0KIAogQVhJc29sYXRlZFRyZWU6On5BWElz
b2xhdGVkVHJlZSgpCiB7Ci0gICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6On5BWElzb2xhdGVk
VHJlZSIpOworICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjp+QVhJc29sYXRlZFRyZWUiX3Mp
OwogfQogCiB2b2lkIEFYSXNvbGF0ZWRUcmVlOjpjbGVhcigpCiB7Ci0gICAgQVhUUkFDRSgiQVhJ
c29sYXRlZFRyZWU6OmNsZWFyIik7CisgICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OmNsZWFy
Il9zKTsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIG1fYXhPYmplY3RDYWNoZSA9
IG51bGxwdHI7CiAgICAgbV9ub2RlTWFwLmNsZWFyKCk7CkBAIC04NSwxNCArODUsMTQgQEAgdm9p
ZCBBWElzb2xhdGVkVHJlZTo6Y2xlYXIoKQogCiBSZWZQdHI8QVhJc29sYXRlZFRyZWU+IEFYSXNv
bGF0ZWRUcmVlOjp0cmVlRm9ySUQoQVhJc29sYXRlZFRyZWVJRCB0cmVlSUQpCiB7Ci0gICAgQVhU
UkFDRSgiQVhJc29sYXRlZFRyZWU6OnRyZWVGb3JJRCIpOworICAgIEFYVFJBQ0UoIkFYSXNvbGF0
ZWRUcmVlOjp0cmVlRm9ySUQiX3MpOwogICAgIExvY2tlciBsb2NrZXIgeyBzX2NhY2hlTG9jayB9
OwogICAgIHJldHVybiB0cmVlSURDYWNoZSgpLmdldCh0cmVlSUQpOwogfQogCiBSZWY8QVhJc29s
YXRlZFRyZWU+IEFYSXNvbGF0ZWRUcmVlOjpjcmVhdGUoQVhPYmplY3RDYWNoZSogYXhPYmplY3RD
YWNoZSkKIHsKLSAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6Y3JlYXRlIik7CisgICAgQVhU
UkFDRSgiQVhJc29sYXRlZFRyZWU6OmNyZWF0ZSJfcyk7CiAgICAgQVNTRVJUKGlzTWFpblRocmVh
ZCgpKTsKICAgICBBU1NFUlQoYXhPYmplY3RDYWNoZSAmJiBheE9iamVjdENhY2hlLT5wYWdlSUQo
KSk7CiAKQEAgLTEyNSw3ICsxMjUsNyBAQCBSZWY8QVhJc29sYXRlZFRyZWU+IEFYSXNvbGF0ZWRU
cmVlOjpjcmVhdGUoQVhPYmplY3RDYWNoZSogYXhPYmplY3RDYWNoZSkKIAogdm9pZCBBWElzb2xh
dGVkVHJlZTo6cmVtb3ZlVHJlZUZvclBhZ2VJRChQYWdlSWRlbnRpZmllciBwYWdlSUQpCiB7Ci0g
ICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OnJlbW92ZVRyZWVGb3JQYWdlSUQiKTsKKyAgICBB
WFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6cmVtb3ZlVHJlZUZvclBhZ2VJRCJfcyk7CiAgICAgQVNT
RVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBMb2NrZXIgbG9ja2VyIHsgc19jYWNoZUxvY2sgfTsK
IApAQCAtMTU3LDcgKzE1Nyw3IEBAIFJlZlB0cjxBWElzb2xhdGVkT2JqZWN0PiBBWElzb2xhdGVk
VHJlZTo6bm9kZUZvcklEKEFYSUQgYXhJRCkgY29uc3QKIAogVmVjdG9yPFJlZlB0cjxBWENvcmVP
YmplY3Q+PiBBWElzb2xhdGVkVHJlZTo6b2JqZWN0c0ZvcklEcyhjb25zdCBWZWN0b3I8QVhJRD4m
IGF4SURzKSBjb25zdAogewotICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjpvYmplY3RzRm9y
SURzIik7CisgICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6Om9iamVjdHNGb3JJRHMiX3MpOwog
ICAgIFZlY3RvcjxSZWZQdHI8QVhDb3JlT2JqZWN0Pj4gcmVzdWx0OwogICAgIHJlc3VsdC5yZXNl
cnZlSW5pdGlhbENhcGFjaXR5KGF4SURzLnNpemUoKSk7CiAgICAgZm9yIChhdXRvJiBheElEIDog
YXhJRHMpIHsKQEAgLTE3OCw3ICsxNzgsNyBAQCBWZWN0b3I8QVhJRD4gQVhJc29sYXRlZFRyZWU6
Omlkc0Zvck9iamVjdHMoY29uc3QgVmVjdG9yPFJlZlB0cjxBWENvcmVPYmplY3Q+PiYgbwogCiB2
b2lkIEFYSXNvbGF0ZWRUcmVlOjpnZW5lcmF0ZVN1YnRyZWUoQVhDb3JlT2JqZWN0JiBheE9iamVj
dCwgQVhDb3JlT2JqZWN0KiBheFBhcmVudCwgYm9vbCBhdHRhY2hXcmFwcGVyKQogewotICAgIEFY
VFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjpnZW5lcmF0ZVN1YnRyZWUiKTsKKyAgICBBWFRSQUNFKCJB
WElzb2xhdGVkVHJlZTo6Z2VuZXJhdGVTdWJ0cmVlIl9zKTsKICAgICBBU1NFUlQoaXNNYWluVGhy
ZWFkKCkpOwogCiAgICAgaWYgKCFheE9iamVjdC5vYmplY3RJRCgpLmlzVmFsaWQoKSkKQEAgLTI3
Nyw3ICsyNzcsNyBAQCB2b2lkIEFYSXNvbGF0ZWRUcmVlOjpxdWV1ZUNoYW5nZXNBbmRSZW1vdmFs
cyhjb25zdCBWZWN0b3I8Tm9kZUNoYW5nZT4mIGNoYW5nZXMsCiAKIHZvaWQgQVhJc29sYXRlZFRy
ZWU6OmNvbGxlY3ROb2RlQ2hhbmdlc0ZvclN1YnRyZWUoQVhDb3JlT2JqZWN0JiBheE9iamVjdCwg
QVhJRCBwYXJlbnRJRCwgYm9vbCBhdHRhY2hXcmFwcGVyLCBWZWN0b3I8Tm9kZUNoYW5nZT4mIGNo
YW5nZXMsIEhhc2hTZXQ8QVhJRD4qIGlkc0JlaW5nQ2hhbmdlZCkKIHsKLSAgICBBWFRSQUNFKCJB
WElzb2xhdGVkVHJlZTo6Y29sbGVjdE5vZGVDaGFuZ2VzRm9yU3VidHJlZSIpOworICAgIEFYVFJB
Q0UoIkFYSXNvbGF0ZWRUcmVlOjpjb2xsZWN0Tm9kZUNoYW5nZXNGb3JTdWJ0cmVlIl9zKTsKICAg
ICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogCiAgICAgYXV0byBub2RlQ2hhbmdlID0gbm9kZUNo
YW5nZUZvck9iamVjdChheE9iamVjdCwgcGFyZW50SUQsIGF0dGFjaFdyYXBwZXIpOwpAQCAtMjk1
LDcgKzI5NSw3IEBAIHZvaWQgQVhJc29sYXRlZFRyZWU6OmNvbGxlY3ROb2RlQ2hhbmdlc0ZvclN1
YnRyZWUoQVhDb3JlT2JqZWN0JiBheE9iamVjdCwgQVhJRCBwCiAKIHZvaWQgQVhJc29sYXRlZFRy
ZWU6OnVwZGF0ZU5vZGUoQVhDb3JlT2JqZWN0JiBheE9iamVjdCkKIHsKLSAgICBBWFRSQUNFKCJB
WElzb2xhdGVkVHJlZTo6dXBkYXRlTm9kZSIpOworICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVl
Ojp1cGRhdGVOb2RlIl9zKTsKICAgICBBWExPRygmYXhPYmplY3QpOwogICAgIEFTU0VSVChpc01h
aW5UaHJlYWQoKSk7CiAKQEAgLTMxMyw3ICszMTMsNyBAQCB2b2lkIEFYSXNvbGF0ZWRUcmVlOjp1
cGRhdGVOb2RlKEFYQ29yZU9iamVjdCYgYXhPYmplY3QpCiAKIHZvaWQgQVhJc29sYXRlZFRyZWU6
OnVwZGF0ZU5vZGVQcm9wZXJ0eShjb25zdCBBWENvcmVPYmplY3QmIGF4T2JqZWN0LCBBWFByb3Bl
cnR5TmFtZSBwcm9wZXJ0eSkKIHsKLSAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6dXBkYXRl
Tm9kZVByb3BlcnR5Iik7CisgICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OnVwZGF0ZU5vZGVQ
cm9wZXJ0eSJfcyk7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIAogICAgIEFYUHJvcGVy
dHlNYXAgcHJvcGVydHlNYXA7CkBAIC0zNDgsNyArMzQ4LDcgQEAgdm9pZCBBWElzb2xhdGVkVHJl
ZTo6dXBkYXRlTm9kZVByb3BlcnR5KGNvbnN0IEFYQ29yZU9iamVjdCYgYXhPYmplY3QsIEFYUHJv
cGVydHkKIAogdm9pZCBBWElzb2xhdGVkVHJlZTo6dXBkYXRlQ2hpbGRyZW4oQVhDb3JlT2JqZWN0
JiBheE9iamVjdCkKIHsKLSAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6dXBkYXRlQ2hpbGRy
ZW4iKTsKKyAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6dXBkYXRlQ2hpbGRyZW4iX3MpOwog
ICAgIEFYTE9HKCJGb3IgQVhPYmplY3Q6Iik7CiAgICAgQVhMT0coJmF4T2JqZWN0KTsKICAgICBB
U1NFUlQoaXNNYWluVGhyZWFkKCkpOwpAQCAtNDIyLDcgKzQyMiw3IEBAIHZvaWQgQVhJc29sYXRl
ZFRyZWU6OnVwZGF0ZUNoaWxkcmVuKEFYQ29yZU9iamVjdCYgYXhPYmplY3QpCiAKIFJlZlB0cjxB
WElzb2xhdGVkT2JqZWN0PiBBWElzb2xhdGVkVHJlZTo6Zm9jdXNlZE5vZGUoKQogewotICAgIEFY
VFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjpmb2N1c2VkTm9kZSIpOworICAgIEFYVFJBQ0UoIkFYSXNv
bGF0ZWRUcmVlOjpmb2N1c2VkTm9kZSJfcyk7CiAgICAgUkVMRUFTRV9BU1NFUlQoIWlzTWFpblRo
cmVhZCgpKTsKICAgICAvLyBBcHBseSBwZW5kaW5nIGNoYW5nZXMgaW4gY2FzZSBmb2N1cyBoYXMg
Y2hhbmdlZCBhbmQgaGFzbid0IGJlZW4gdXBkYXRlZC4KICAgICBhcHBseVBlbmRpbmdDaGFuZ2Vz
KCk7CkBAIC00MzQsMTQgKzQzNCwxNCBAQCBSZWZQdHI8QVhJc29sYXRlZE9iamVjdD4gQVhJc29s
YXRlZFRyZWU6OmZvY3VzZWROb2RlKCkKIAogUmVmUHRyPEFYSXNvbGF0ZWRPYmplY3Q+IEFYSXNv
bGF0ZWRUcmVlOjpyb290Tm9kZSgpCiB7Ci0gICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OnJv
b3ROb2RlIik7CisgICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OnJvb3ROb2RlIl9zKTsKICAg
ICBMb2NrZXIgbG9ja2VyIHsgbV9jaGFuZ2VMb2dMb2NrIH07CiAgICAgcmV0dXJuIG1fcm9vdE5v
ZGU7CiB9CiAKIHZvaWQgQVhJc29sYXRlZFRyZWU6OnNldFJvb3ROb2RlKEFYSXNvbGF0ZWRPYmpl
Y3QqIHJvb3QpCiB7Ci0gICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OnNldFJvb3ROb2RlIik7
CisgICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OnNldFJvb3ROb2RlIl9zKTsKICAgICBBU1NF
UlQoaXNNYWluVGhyZWFkKCkpOwogICAgIEFTU0VSVChtX2NoYW5nZUxvZ0xvY2suaXNMb2NrZWQo
KSk7CiAgICAgQVNTRVJUKCFtX3Jvb3ROb2RlKTsKQEAgLTQ1Miw3ICs0NTIsNyBAQCB2b2lkIEFY
SXNvbGF0ZWRUcmVlOjpzZXRSb290Tm9kZShBWElzb2xhdGVkT2JqZWN0KiByb290KQogCiB2b2lk
IEFYSXNvbGF0ZWRUcmVlOjpzZXRGb2N1c2VkTm9kZUlEKEFYSUQgYXhJRCkKIHsKLSAgICBBWFRS
QUNFKCJBWElzb2xhdGVkVHJlZTo6c2V0Rm9jdXNlZE5vZGVJRCIpOworICAgIEFYVFJBQ0UoIkFY
SXNvbGF0ZWRUcmVlOjpzZXRGb2N1c2VkTm9kZUlEIl9zKTsKICAgICBBWExPRyhtYWtlU3RyaW5n
KCJheElEICIsIGF4SUQubG9nZ2luZ1N0cmluZygpKSk7CiAgICAgQVNTRVJUKGlzTWFpblRocmVh
ZCgpKTsKIApAQCAtNDY2LDcgKzQ2Niw3IEBAIHZvaWQgQVhJc29sYXRlZFRyZWU6OnNldEZvY3Vz
ZWROb2RlSUQoQVhJRCBheElEKQogCiB2b2lkIEFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVMb2FkaW5n
UHJvZ3Jlc3MoZG91YmxlIG5ld1Byb2dyZXNzVmFsdWUpCiB7Ci0gICAgQVhUUkFDRSgiQVhJc29s
YXRlZFRyZWU6OnVwZGF0ZUxvYWRpbmdQcm9ncmVzcyIpOworICAgIEFYVFJBQ0UoIkFYSXNvbGF0
ZWRUcmVlOjp1cGRhdGVMb2FkaW5nUHJvZ3Jlc3MiX3MpOwogICAgIEFYTE9HKG1ha2VTdHJpbmco
IlVwZGF0aW5nIGxvYWRpbmcgcHJvZ3Jlc3MgdG8gIiwgbmV3UHJvZ3Jlc3NWYWx1ZSwgIiBmb3Ig
dHJlZUlEICIsIHRyZWVJRCgpKSk7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIApAQCAt
NDc1LDcgKzQ3NSw3IEBAIHZvaWQgQVhJc29sYXRlZFRyZWU6OnVwZGF0ZUxvYWRpbmdQcm9ncmVz
cyhkb3VibGUgbmV3UHJvZ3Jlc3NWYWx1ZSkKIAogdm9pZCBBWElzb2xhdGVkVHJlZTo6cmVtb3Zl
Tm9kZShjb25zdCBBWENvcmVPYmplY3QmIGF4T2JqZWN0KQogewotICAgIEFYVFJBQ0UoIkFYSXNv
bGF0ZWRUcmVlOjpyZW1vdmVOb2RlIik7CisgICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OnJl
bW92ZU5vZGUiX3MpOwogICAgIEFYTE9HKG1ha2VTdHJpbmcoIm9iamVjdElEICIsIGF4T2JqZWN0
Lm9iamVjdElEKCkubG9nZ2luZ1N0cmluZygpKSk7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgp
KTsKIApAQCAtNDg1LDcgKzQ4NSw3IEBAIHZvaWQgQVhJc29sYXRlZFRyZWU6OnJlbW92ZU5vZGUo
Y29uc3QgQVhDb3JlT2JqZWN0JiBheE9iamVjdCkKIAogdm9pZCBBWElzb2xhdGVkVHJlZTo6cmVt
b3ZlU3VidHJlZUZyb21Ob2RlTWFwKEFYSUQgb2JqZWN0SUQsIEFYQ29yZU9iamVjdCogYXhQYXJl
bnQsIGNvbnN0IEhhc2hTZXQ8QVhJRD4mIGlkc1RvS2VlcCkKIHsKLSAgICBBWFRSQUNFKCJBWElz
b2xhdGVkVHJlZTo6cmVtb3ZlU3VidHJlZUZyb21Ob2RlTWFwIik7CisgICAgQVhUUkFDRSgiQVhJ
c29sYXRlZFRyZWU6OnJlbW92ZVN1YnRyZWVGcm9tTm9kZU1hcCJfcyk7CiAgICAgQVhMT0cobWFr
ZVN0cmluZygiUmVtb3Zpbmcgc3VidHJlZSBmb3Igb2JqZWN0SUQgIiwgb2JqZWN0SUQubG9nZ2lu
Z1N0cmluZygpKSk7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIApAQCAtNTIzLDcgKzUy
Myw3IEBAIHZvaWQgQVhJc29sYXRlZFRyZWU6OnJlbW92ZVN1YnRyZWVGcm9tTm9kZU1hcChBWElE
IG9iamVjdElELCBBWENvcmVPYmplY3QqIGF4UGFyCiAKIHZvaWQgQVhJc29sYXRlZFRyZWU6OmFw
cGx5UGVuZGluZ0NoYW5nZXMoKQogewotICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjphcHBs
eVBlbmRpbmdDaGFuZ2VzIik7CisgICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OmFwcGx5UGVu
ZGluZ0NoYW5nZXMiX3MpOwogCiAgICAgLy8gSW4gaXNvbGF0ZWQgdHJlZSBtb2RlIDIsIG9ubHkg
YXBwbHkgcGVuZGluZyBjaGFuZ2VzIG9uIHRoZSBBWCB0aHJlYWQuCiAgICAgQVNTRVJUKG1fdXNl
ZE9uQVhUaHJlYWQgPyAhaXNNYWluVGhyZWFkKCkgOiBpc01haW5UaHJlYWQoKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0
TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQWNjZXNzaWJpbGl0eU9i
amVjdE1hYy5tbQppbmRleCBhMjg5NTM4NzRjODA1NTEyN2Y4MGIyZmMzNjJkOWNlODIxZTcwMWM0
Li5mYzZlNDA4Y2ZjN2E5MjUzYTFlODk1MDdlMDA1NDk0MDM4YzlmYjNiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0TWFjLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FjY2Vzc2liaWxpdHlPYmpl
Y3RNYWMubW0KQEAgLTIyMiwyMCArMjIyLDIwIEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5T2JqZWN0
OjpzdWJyb2xlUGxhdGZvcm1TdHJpbmcoKSBjb25zdAogICAgIH0KIAogICAgIGlmIChpc01ldGVy
KCkpCi0gICAgICAgIHJldHVybiAiQVhNZXRlciI7CisgICAgICAgIHJldHVybiAiQVhNZXRlciJf
czsKIAogI2lmIEVOQUJMRShNT0RFTF9FTEVNRU5UKQogICAgIGlmIChpc01vZGVsKCkpCi0gICAg
ICAgIHJldHVybiAiQVhNb2RlbCI7CisgICAgICAgIHJldHVybiAiQVhNb2RlbCJfczsKICNlbmRp
ZgogCiAgICAgQWNjZXNzaWJpbGl0eVJvbGUgcm9sZSA9IHJvbGVWYWx1ZSgpOwogICAgIGlmIChy
b2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpIb3Jpem9udGFsUnVsZSkKLSAgICAgICAgcmV0dXJu
ICJBWENvbnRlbnRTZXBhcmF0b3IiOworICAgICAgICByZXR1cm4gIkFYQ29udGVudFNlcGFyYXRv
ciJfczsKICAgICBpZiAocm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6VG9nZ2xlQnV0dG9uKQog
ICAgICAgICByZXR1cm4gTlNBY2Nlc3NpYmlsaXR5VG9nZ2xlU3Vicm9sZTsKICAgICBpZiAocm9s
ZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6Rm9vdGVyKQotICAgICAgICByZXR1cm4gIkFYRm9vdGVy
IjsKKyAgICAgICAgcmV0dXJuICJBWEZvb3RlciJfczsKICAgICBpZiAocm9sZSA9PSBBY2Nlc3Np
YmlsaXR5Um9sZTo6U3BpbkJ1dHRvblBhcnQpIHsKICAgICAgICAgaWYgKGlzSW5jcmVtZW50b3Io
KSkKICAgICAgICAgICAgIHJldHVybiBOU0FjY2Vzc2liaWxpdHlJbmNyZW1lbnRBcnJvd1N1YnJv
bGU7CkBAIC0yNDMsNzkgKzI0Myw3OSBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0eU9iamVjdDo6c3Vi
cm9sZVBsYXRmb3JtU3RyaW5nKCkgY29uc3QKICAgICB9CiAKICAgICBpZiAoaXNGaWxlVXBsb2Fk
QnV0dG9uKCkpCi0gICAgICAgIHJldHVybiAiQVhGaWxlVXBsb2FkQnV0dG9uIjsKKyAgICAgICAg
cmV0dXJuICJBWEZpbGVVcGxvYWRCdXR0b24iX3M7CiAKICAgICBpZiAoaXNUcmVlSXRlbSgpKQog
ICAgICAgICByZXR1cm4gTlNBY2Nlc3NpYmlsaXR5T3V0bGluZVJvd1N1YnJvbGU7CiAKICAgICBp
ZiAoaXNGaWVsZHNldCgpKQotICAgICAgICByZXR1cm4gIkFYRmllbGRzZXQiOworICAgICAgICBy
ZXR1cm4gIkFYRmllbGRzZXQiX3M7CiAKICAgICBpZiAoaXNMaXN0KCkpIHsKICAgICAgICAgaWYg
KGlzVW5vcmRlcmVkTGlzdCgpIHx8IGlzT3JkZXJlZExpc3QoKSkKLSAgICAgICAgICAgIHJldHVy
biAiQVhDb250ZW50TGlzdCI7CisgICAgICAgICAgICByZXR1cm4gIkFYQ29udGVudExpc3QiX3M7
CiAgICAgICAgIGlmIChpc0Rlc2NyaXB0aW9uTGlzdCgpKQotICAgICAgICAgICAgcmV0dXJuICJB
WERlc2NyaXB0aW9uTGlzdCI7CisgICAgICAgICAgICByZXR1cm4gIkFYRGVzY3JpcHRpb25MaXN0
Il9zOwogICAgIH0KIAogICAgIC8vIEFSSUEgY29udGVudCBzdWJyb2xlcy4KICAgICBzd2l0Y2gg
KHJvbGUpIHsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpMYW5kbWFya0Jhbm5lcjoKLSAg
ICAgICAgcmV0dXJuICJBWExhbmRtYXJrQmFubmVyIjsKKyAgICAgICAgcmV0dXJuICJBWExhbmRt
YXJrQmFubmVyIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJrQ29tcGxl
bWVudGFyeToKLSAgICAgICAgcmV0dXJuICJBWExhbmRtYXJrQ29tcGxlbWVudGFyeSI7CisgICAg
ICAgIHJldHVybiAiQVhMYW5kbWFya0NvbXBsZW1lbnRhcnkiX3M7CiAgICAgY2FzZSBBY2Nlc3Np
YmlsaXR5Um9sZTo6TGFuZG1hcmtDb250ZW50SW5mbzoKLSAgICAgICAgcmV0dXJuICJBWExhbmRt
YXJrQ29udGVudEluZm8iOworICAgICAgICByZXR1cm4gIkFYTGFuZG1hcmtDb250ZW50SW5mbyJf
czsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpMYW5kbWFya01haW46Ci0gICAgICAgIHJl
dHVybiAiQVhMYW5kbWFya01haW4iOworICAgICAgICByZXR1cm4gIkFYTGFuZG1hcmtNYWluIl9z
OwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJrTmF2aWdhdGlvbjoKLSAgICAg
ICAgcmV0dXJuICJBWExhbmRtYXJrTmF2aWdhdGlvbiI7CisgICAgICAgIHJldHVybiAiQVhMYW5k
bWFya05hdmlnYXRpb24iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtE
b2NSZWdpb246CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtSZWdpb246Ci0g
ICAgICAgIHJldHVybiAiQVhMYW5kbWFya1JlZ2lvbiI7CisgICAgICAgIHJldHVybiAiQVhMYW5k
bWFya1JlZ2lvbiJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpMYW5kbWFya1NlYXJj
aDoKLSAgICAgICAgcmV0dXJuICJBWExhbmRtYXJrU2VhcmNoIjsKKyAgICAgICAgcmV0dXJuICJB
WExhbmRtYXJrU2VhcmNoIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0
aW9uQWxlcnQ6Ci0gICAgICAgIHJldHVybiAiQVhBcHBsaWNhdGlvbkFsZXJ0IjsKKyAgICAgICAg
cmV0dXJuICJBWEFwcGxpY2F0aW9uQWxlcnQiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9s
ZTo6QXBwbGljYXRpb25BbGVydERpYWxvZzoKLSAgICAgICAgcmV0dXJuICJBWEFwcGxpY2F0aW9u
QWxlcnREaWFsb2ciOworICAgICAgICByZXR1cm4gIkFYQXBwbGljYXRpb25BbGVydERpYWxvZyJf
czsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvbkRpYWxvZzoKLSAgICAg
ICAgcmV0dXJuICJBWEFwcGxpY2F0aW9uRGlhbG9nIjsKKyAgICAgICAgcmV0dXJuICJBWEFwcGxp
Y2F0aW9uRGlhbG9nIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9u
R3JvdXA6CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb25UZXh0R3JvdXA6
CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RmVlZDoKICAgICBjYXNlIEFjY2Vzc2liaWxp
dHlSb2xlOjpGb290bm90ZToKLSAgICAgICAgcmV0dXJuICJBWEFwcGxpY2F0aW9uR3JvdXAiOwor
ICAgICAgICByZXR1cm4gIkFYQXBwbGljYXRpb25Hcm91cCJfczsKICAgICBjYXNlIEFjY2Vzc2li
aWxpdHlSb2xlOjpBcHBsaWNhdGlvbkxvZzoKLSAgICAgICAgcmV0dXJuICJBWEFwcGxpY2F0aW9u
TG9nIjsKKyAgICAgICAgcmV0dXJuICJBWEFwcGxpY2F0aW9uTG9nIl9zOwogICAgIGNhc2UgQWNj
ZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uTWFycXVlZToKLSAgICAgICAgcmV0dXJuICJBWEFw
cGxpY2F0aW9uTWFycXVlZSI7CisgICAgICAgIHJldHVybiAiQVhBcHBsaWNhdGlvbk1hcnF1ZWUi
X3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb25TdGF0dXM6Ci0gICAg
ICAgIHJldHVybiAiQVhBcHBsaWNhdGlvblN0YXR1cyI7CisgICAgICAgIHJldHVybiAiQVhBcHBs
aWNhdGlvblN0YXR1cyJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNhdGlv
blRpbWVyOgotICAgICAgICByZXR1cm4gIkFYQXBwbGljYXRpb25UaW1lciI7CisgICAgICAgIHJl
dHVybiAiQVhBcHBsaWNhdGlvblRpbWVyIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6
OkRvY3VtZW50OgogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkdyYXBoaWNzRG9jdW1lbnQ6
Ci0gICAgICAgIHJldHVybiAiQVhEb2N1bWVudCI7CisgICAgICAgIHJldHVybiAiQVhEb2N1bWVu
dCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpEb2N1bWVudEFydGljbGU6Ci0gICAg
ICAgIHJldHVybiAiQVhEb2N1bWVudEFydGljbGUiOworICAgICAgICByZXR1cm4gIkFYRG9jdW1l
bnRBcnRpY2xlIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRvY3VtZW50TWF0aDoK
LSAgICAgICAgcmV0dXJuICJBWERvY3VtZW50TWF0aCI7CisgICAgICAgIHJldHVybiAiQVhEb2N1
bWVudE1hdGgiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RG9jdW1lbnROb3RlOgot
ICAgICAgICByZXR1cm4gIkFYRG9jdW1lbnROb3RlIjsKKyAgICAgICAgcmV0dXJuICJBWERvY3Vt
ZW50Tm90ZSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpVc2VySW50ZXJmYWNlVG9v
bHRpcDoKLSAgICAgICAgcmV0dXJuICJBWFVzZXJJbnRlcmZhY2VUb29sdGlwIjsKKyAgICAgICAg
cmV0dXJuICJBWFVzZXJJbnRlcmZhY2VUb29sdGlwIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0
eVJvbGU6OlRhYlBhbmVsOgotICAgICAgICByZXR1cm4gIkFYVGFiUGFuZWwiOworICAgICAgICBy
ZXR1cm4gIkFYVGFiUGFuZWwiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RGVmaW5p
dGlvbjoKLSAgICAgICAgcmV0dXJuICJBWERlZmluaXRpb24iOworICAgICAgICByZXR1cm4gIkFY
RGVmaW5pdGlvbiJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpEZXNjcmlwdGlvbkxp
c3RUZXJtOgogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlRlcm06Ci0gICAgICAgIHJldHVy
biAiQVhUZXJtIjsKKyAgICAgICAgcmV0dXJuICJBWFRlcm0iX3M7CiAgICAgY2FzZSBBY2Nlc3Np
YmlsaXR5Um9sZTo6RGVzY3JpcHRpb25MaXN0RGV0YWlsOgotICAgICAgICByZXR1cm4gIkFYRGVz
Y3JpcHRpb24iOworICAgICAgICByZXR1cm4gIkFYRGVzY3JpcHRpb24iX3M7CiAgICAgY2FzZSBB
Y2Nlc3NpYmlsaXR5Um9sZTo6V2ViQXBwbGljYXRpb246Ci0gICAgICAgIHJldHVybiAiQVhXZWJB
cHBsaWNhdGlvbiI7CisgICAgICAgIHJldHVybiAiQVhXZWJBcHBsaWNhdGlvbiJfczsKICAgICAg
ICAgLy8gRGVmYXVsdCBkb2Vzbid0IHJldHVybiBhbnl0aGluZywgc28gcm9sZXMgZGVmaW5lZCBi
ZWxvdyBjYW4gYmUgY2hvc2VuLgogICAgIGRlZmF1bHQ6CiAgICAgICAgIGJyZWFrOwpAQCAtMzIz
LDUxICszMjMsNTEgQEAgU3RyaW5nIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnN1YnJvbGVQbGF0Zm9y
bVN0cmluZygpIGNvbnN0CiAKICAgICBpZiAocm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6TWF0
aEVsZW1lbnQpIHsKICAgICAgICAgaWYgKGlzTWF0aEZyYWN0aW9uKCkpCi0gICAgICAgICAgICBy
ZXR1cm4gIkFYTWF0aEZyYWN0aW9uIjsKKyAgICAgICAgICAgIHJldHVybiAiQVhNYXRoRnJhY3Rp
b24iX3M7CiAgICAgICAgIGlmIChpc01hdGhGZW5jZWQoKSkKLSAgICAgICAgICAgIHJldHVybiAi
QVhNYXRoRmVuY2VkIjsKKyAgICAgICAgICAgIHJldHVybiAiQVhNYXRoRmVuY2VkIl9zOwogICAg
ICAgICBpZiAoaXNNYXRoU3Vic2NyaXB0U3VwZXJzY3JpcHQoKSkKLSAgICAgICAgICAgIHJldHVy
biAiQVhNYXRoU3Vic2NyaXB0U3VwZXJzY3JpcHQiOworICAgICAgICAgICAgcmV0dXJuICJBWE1h
dGhTdWJzY3JpcHRTdXBlcnNjcmlwdCJfczsKICAgICAgICAgaWYgKGlzTWF0aFJvdygpKQotICAg
ICAgICAgICAgcmV0dXJuICJBWE1hdGhSb3ciOworICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhS
b3ciX3M7CiAgICAgICAgIGlmIChpc01hdGhVbmRlck92ZXIoKSkKLSAgICAgICAgICAgIHJldHVy
biAiQVhNYXRoVW5kZXJPdmVyIjsKKyAgICAgICAgICAgIHJldHVybiAiQVhNYXRoVW5kZXJPdmVy
Il9zOwogICAgICAgICBpZiAoaXNNYXRoU3F1YXJlUm9vdCgpKQotICAgICAgICAgICAgcmV0dXJu
ICJBWE1hdGhTcXVhcmVSb290IjsKKyAgICAgICAgICAgIHJldHVybiAiQVhNYXRoU3F1YXJlUm9v
dCJfczsKICAgICAgICAgaWYgKGlzTWF0aFJvb3QoKSkKLSAgICAgICAgICAgIHJldHVybiAiQVhN
YXRoUm9vdCI7CisgICAgICAgICAgICByZXR1cm4gIkFYTWF0aFJvb3QiX3M7CiAgICAgICAgIGlm
IChpc01hdGhUZXh0KCkpCi0gICAgICAgICAgICByZXR1cm4gIkFYTWF0aFRleHQiOworICAgICAg
ICAgICAgcmV0dXJuICJBWE1hdGhUZXh0Il9zOwogICAgICAgICBpZiAoaXNNYXRoTnVtYmVyKCkp
Ci0gICAgICAgICAgICByZXR1cm4gIkFYTWF0aE51bWJlciI7CisgICAgICAgICAgICByZXR1cm4g
IkFYTWF0aE51bWJlciJfczsKICAgICAgICAgaWYgKGlzTWF0aElkZW50aWZpZXIoKSkKLSAgICAg
ICAgICAgIHJldHVybiAiQVhNYXRoSWRlbnRpZmllciI7CisgICAgICAgICAgICByZXR1cm4gIkFY
TWF0aElkZW50aWZpZXIiX3M7CiAgICAgICAgIGlmIChpc01hdGhUYWJsZSgpKQotICAgICAgICAg
ICAgcmV0dXJuICJBWE1hdGhUYWJsZSI7CisgICAgICAgICAgICByZXR1cm4gIkFYTWF0aFRhYmxl
Il9zOwogICAgICAgICBpZiAoaXNNYXRoVGFibGVSb3coKSkKLSAgICAgICAgICAgIHJldHVybiAi
QVhNYXRoVGFibGVSb3ciOworICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhUYWJsZVJvdyJfczsK
ICAgICAgICAgaWYgKGlzTWF0aFRhYmxlQ2VsbCgpKQotICAgICAgICAgICAgcmV0dXJuICJBWE1h
dGhUYWJsZUNlbGwiOworICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhUYWJsZUNlbGwiX3M7CiAg
ICAgICAgIGlmIChpc01hdGhGZW5jZU9wZXJhdG9yKCkpCi0gICAgICAgICAgICByZXR1cm4gIkFY
TWF0aEZlbmNlT3BlcmF0b3IiOworICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhGZW5jZU9wZXJh
dG9yIl9zOwogICAgICAgICBpZiAoaXNNYXRoU2VwYXJhdG9yT3BlcmF0b3IoKSkKLSAgICAgICAg
ICAgIHJldHVybiAiQVhNYXRoU2VwYXJhdG9yT3BlcmF0b3IiOworICAgICAgICAgICAgcmV0dXJu
ICJBWE1hdGhTZXBhcmF0b3JPcGVyYXRvciJfczsKICAgICAgICAgaWYgKGlzTWF0aE9wZXJhdG9y
KCkpCi0gICAgICAgICAgICByZXR1cm4gIkFYTWF0aE9wZXJhdG9yIjsKKyAgICAgICAgICAgIHJl
dHVybiAiQVhNYXRoT3BlcmF0b3IiX3M7CiAgICAgICAgIGlmIChpc01hdGhNdWx0aXNjcmlwdCgp
KQotICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhNdWx0aXNjcmlwdCI7CisgICAgICAgICAgICBy
ZXR1cm4gIkFYTWF0aE11bHRpc2NyaXB0Il9zOwogICAgIH0KIAogICAgIGlmIChyb2xlID09IEFj
Y2Vzc2liaWxpdHlSb2xlOjpWaWRlbykKLSAgICAgICAgcmV0dXJuICJBWFZpZGVvIjsKKyAgICAg
ICAgcmV0dXJuICJBWFZpZGVvIl9zOwogICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xl
OjpBdWRpbykKLSAgICAgICAgcmV0dXJuICJBWEF1ZGlvIjsKKyAgICAgICAgcmV0dXJuICJBWEF1
ZGlvIl9zOwogICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpEZXRhaWxzKQotICAg
ICAgICByZXR1cm4gIkFYRGV0YWlscyI7CisgICAgICAgIHJldHVybiAiQVhEZXRhaWxzIl9zOwog
ICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpTdW1tYXJ5KQotICAgICAgICByZXR1
cm4gIkFYU3VtbWFyeSI7CisgICAgICAgIHJldHVybiAiQVhTdW1tYXJ5Il9zOwogICAgIGlmIChy
b2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpUaW1lKQotICAgICAgICByZXR1cm4gIkFYVGltZUdy
b3VwIjsKKyAgICAgICAgcmV0dXJuICJBWFRpbWVHcm91cCJfczsKIAogICAgIGlmIChpc01lZGlh
VGltZWxpbmUoKSkKICAgICAgICAgcmV0dXJuIE5TQWNjZXNzaWJpbGl0eVRpbWVsaW5lU3Vicm9s
ZTsKQEAgLTM3NiwyNSArMzc2LDI1IEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzdWJy
b2xlUGxhdGZvcm1TdHJpbmcoKSBjb25zdAogICAgICAgICByZXR1cm4gTlNBY2Nlc3NpYmlsaXR5
U3dpdGNoU3Vicm9sZTsKIAogICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpJbnNl
cnRpb24pCi0gICAgICAgIHJldHVybiAiQVhJbnNlcnRTdHlsZUdyb3VwIjsKKyAgICAgICAgcmV0
dXJuICJBWEluc2VydFN0eWxlR3JvdXAiX3M7CiAgICAgaWYgKHJvbGUgPT0gQWNjZXNzaWJpbGl0
eVJvbGU6OkRlbGV0aW9uKQotICAgICAgICByZXR1cm4gIkFYRGVsZXRlU3R5bGVHcm91cCI7Cisg
ICAgICAgIHJldHVybiAiQVhEZWxldGVTdHlsZUdyb3VwIl9zOwogICAgIGlmIChyb2xlID09IEFj
Y2Vzc2liaWxpdHlSb2xlOjpTdXBlcnNjcmlwdCkKLSAgICAgICAgcmV0dXJuICJBWFN1cGVyc2Ny
aXB0U3R5bGVHcm91cCI7CisgICAgICAgIHJldHVybiAiQVhTdXBlcnNjcmlwdFN0eWxlR3JvdXAi
X3M7CiAgICAgaWYgKHJvbGUgPT0gQWNjZXNzaWJpbGl0eVJvbGU6OlN1YnNjcmlwdCkKLSAgICAg
ICAgcmV0dXJuICJBWFN1YnNjcmlwdFN0eWxlR3JvdXAiOworICAgICAgICByZXR1cm4gIkFYU3Vi
c2NyaXB0U3R5bGVHcm91cCJfczsKIAogICAgIHN3aXRjaCAocm9sZSkgewogICAgIGNhc2UgQWNj
ZXNzaWJpbGl0eVJvbGU6OlJ1YnlCYXNlOgotICAgICAgICByZXR1cm4gIkFYUnVieUJhc2UiOwor
ICAgICAgICByZXR1cm4gIkFYUnVieUJhc2UiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9s
ZTo6UnVieUJsb2NrOgotICAgICAgICByZXR1cm4gIkFYUnVieUJsb2NrIjsKKyAgICAgICAgcmV0
dXJuICJBWFJ1YnlCbG9jayJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpSdWJ5SW5s
aW5lOgotICAgICAgICByZXR1cm4gIkFYUnVieUlubGluZSI7CisgICAgICAgIHJldHVybiAiQVhS
dWJ5SW5saW5lIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlJ1YnlSdW46Ci0gICAg
ICAgIHJldHVybiAiQVhSdWJ5UnVuIjsKKyAgICAgICAgcmV0dXJuICJBWFJ1YnlSdW4iX3M7CiAg
ICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6UnVieVRleHQ6Ci0gICAgICAgIHJldHVybiAiQVhS
dWJ5VGV4dCI7CisgICAgICAgIHJldHVybiAiQVhSdWJ5VGV4dCJfczsKICAgICBkZWZhdWx0Ogog
ICAgICAgICBicmVhazsKICAgICB9CkBAIC00MDMsMTcgKzQwMywxNyBAQCBTdHJpbmcgQWNjZXNz
aWJpbGl0eU9iamVjdDo6c3Vicm9sZVBsYXRmb3JtU3RyaW5nKCkgY29uc3QKICAgICAgICAgdXNp
bmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKICAgICAgICAgYXV0byB0YWcgPSB0YWdOYW1lKCk7CiAg
ICAgICAgIGlmICh0YWcgPT0ga2JkVGFnKQotICAgICAgICAgICAgcmV0dXJuIEAiQVhLZXlib2Fy
ZElucHV0U3R5bGVHcm91cCI7CisgICAgICAgICAgICByZXR1cm4gIkFYS2V5Ym9hcmRJbnB1dFN0
eWxlR3JvdXAiX3M7CiAgICAgICAgIGlmICh0YWcgPT0gY29kZVRhZykKLSAgICAgICAgICAgIHJl
dHVybiBAIkFYQ29kZVN0eWxlR3JvdXAiOworICAgICAgICAgICAgcmV0dXJuICJBWENvZGVTdHls
ZUdyb3VwIl9zOwogICAgICAgICBpZiAodGFnID09IHByZVRhZykKLSAgICAgICAgICAgIHJldHVy
biBAIkFYUHJlZm9ybWF0dGVkU3R5bGVHcm91cCI7CisgICAgICAgICAgICByZXR1cm4gIkFYUHJl
Zm9ybWF0dGVkU3R5bGVHcm91cCJfczsKICAgICAgICAgaWYgKHRhZyA9PSBzYW1wVGFnKQotICAg
ICAgICAgICAgcmV0dXJuIEAiQVhTYW1wbGVTdHlsZUdyb3VwIjsKKyAgICAgICAgICAgIHJldHVy
biAiQVhTYW1wbGVTdHlsZUdyb3VwIl9zOwogICAgICAgICBpZiAodGFnID09IHZhclRhZykKLSAg
ICAgICAgICAgIHJldHVybiBAIkFYVmFyaWFibGVTdHlsZUdyb3VwIjsKKyAgICAgICAgICAgIHJl
dHVybiAiQVhWYXJpYWJsZVN0eWxlR3JvdXAiX3M7CiAgICAgICAgIGlmICh0YWcgPT0gY2l0ZVRh
ZykKLSAgICAgICAgICAgIHJldHVybiBAIkFYQ2l0ZVN0eWxlR3JvdXAiOworICAgICAgICAgICAg
cmV0dXJuICJBWENpdGVTdHlsZUdyb3VwIl9zOwogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogICAgIH0KQEAgLTQzNiw3ICs0MzYsNyBAQCBT
dHJpbmcgQWNjZXNzaWJpbGl0eU9iamVjdDo6cm9sZVBsYXRmb3JtRGVzY3JpcHRpb24oKSBjb25z
dAogCiAgICAgICAgIHN3aXRjaCAocm9sZSkgewogICAgICAgICBjYXNlIEFjY2Vzc2liaWxpdHlS
b2xlOjpBdWRpbzoKLSAgICAgICAgICAgIHJldHVybiBsb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVt
ZW50U3RyaW5nKCJBdWRpb0VsZW1lbnQiKTsKKyAgICAgICAgICAgIHJldHVybiBsb2NhbGl6ZWRN
ZWRpYUNvbnRyb2xFbGVtZW50U3RyaW5nKCJBdWRpb0VsZW1lbnQiX3MpOwogICAgICAgICBjYXNl
IEFjY2Vzc2liaWxpdHlSb2xlOjpEZWZpbml0aW9uOgogICAgICAgICAgICAgcmV0dXJuIEFYRGVm
aW5pdGlvblRleHQoKTsKICAgICAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RGVzY3JpcHRp
b25MaXN0VGVybToKQEAgLTQ1Myw5ICs0NTMsOSBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0eU9iamVj
dDo6cm9sZVBsYXRmb3JtRGVzY3JpcHRpb24oKSBjb25zdAogICAgICAgICBjYXNlIEFjY2Vzc2li
aWxpdHlSb2xlOjpNYXJrOgogICAgICAgICAgICAgcmV0dXJuIEFYTWFya1RleHQoKTsKICAgICAg
ICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VmlkZW86Ci0gICAgICAgICAgICByZXR1cm4gbG9j
YWxpemVkTWVkaWFDb250cm9sRWxlbWVudFN0cmluZygiVmlkZW9FbGVtZW50Iik7CisgICAgICAg
ICAgICByZXR1cm4gbG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudFN0cmluZygiVmlkZW9FbGVt
ZW50Il9zKTsKICAgICAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6R3JhcGhpY3NEb2N1bWVu
dDoKLSAgICAgICAgICAgIHJldHVybiBBWEFSSUFDb250ZW50R3JvdXBUZXh0KEAiQVJJQURvY3Vt
ZW50Iik7CisgICAgICAgICAgICByZXR1cm4gQVhBUklBQ29udGVudEdyb3VwVGV4dCgiQVJJQURv
Y3VtZW50Iik7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICByZXR1cm4gU3RyaW5nKCk7
CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9BbmltYXRp
b25FZmZlY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0FuaW1hdGlvbkVmZmVjdC5j
cHAKaW5kZXggMjM5YmQwNDVmODBhZWE4ZGNkZjMxYzVlMGM0Mzg4YTAyYjUyOTU1Mi4uNDMxZmRl
YTE1NzI2MjcyYTJiNjhmOTc0YjI2ZTBhZTZhNTVmYzBhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYW5pbWF0aW9uL0FuaW1hdGlvbkVmZmVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
YW5pbWF0aW9uL0FuaW1hdGlvbkVmZmVjdC5jcHAKQEAgLTY5LDcgKzY5LDcgQEAgRWZmZWN0VGlt
aW5nIEFuaW1hdGlvbkVmZmVjdDo6Z2V0VGltaW5nKCkgY29uc3QKICAgICB0aW1pbmcuaXRlcmF0
aW9uU3RhcnQgPSBtX2l0ZXJhdGlvblN0YXJ0OwogICAgIHRpbWluZy5pdGVyYXRpb25zID0gbV9p
dGVyYXRpb25zOwogICAgIGlmIChtX2l0ZXJhdGlvbkR1cmF0aW9uID09IDBfcykKLSAgICAgICAg
dGltaW5nLmR1cmF0aW9uID0gImF1dG8iOworICAgICAgICB0aW1pbmcuZHVyYXRpb24gPSAiYXV0
byJfczsKICAgICBlbHNlCiAgICAgICAgIHRpbWluZy5kdXJhdGlvbiA9IHNlY29uZHNUb1dlYkFu
aW1hdGlvbnNBUElUaW1lKG1faXRlcmF0aW9uRHVyYXRpb24pOwogICAgIHRpbWluZy5kaXJlY3Rp
b24gPSBtX2RpcmVjdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9E
b2N1bWVudFRpbWVsaW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9Eb2N1bWVudFRp
bWVsaW5lLmNwcAppbmRleCAzYzk1OWU5Y2JkNGE4NzEyNDRlZTJmNDViMGI1YWEwNmUxYzVmZDQ1
Li5jODZmMmFkNTVjNGIxMjhlZWNlZGI4MDEwZjRjNDcxM2JhZjQ2NzY3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRG9jdW1lbnRUaW1lbGluZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvYW5pbWF0aW9uL0RvY3VtZW50VGltZWxpbmUuY3BwCkBAIC00NTIsNyArNDUyLDcg
QEAgRXhjZXB0aW9uT3I8UmVmPFdlYkFuaW1hdGlvbj4+IERvY3VtZW50VGltZWxpbmU6OmFuaW1h
dGUoUmVmPEN1c3RvbUVmZmVjdENhbGxiYWMKICAgICBpZiAoIW1fZG9jdW1lbnQpCiAgICAgICAg
IHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9OwogCi0gICAgU3RyaW5nIGlk
ID0gIiI7CisgICAgU3RyaW5nIGlkID0gZW1wdHlTdHJpbmcoKTsKICAgICBzdGQ6OnZhcmlhbnQ8
RnJhbWVzUGVyU2Vjb25kLCBBbmltYXRpb25GcmFtZVJhdGVQcmVzZXQ+IGZyYW1lUmF0ZSA9IEFu
aW1hdGlvbkZyYW1lUmF0ZVByZXNldDo6QXV0bzsKICAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6dmFy
aWFudDxkb3VibGUsIEVmZmVjdFRpbWluZz4+IGN1c3RvbUVmZmVjdE9wdGlvbnM7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9FZmZlY3RUaW1pbmcuaCBiL1NvdXJjZS9X
ZWJDb3JlL2FuaW1hdGlvbi9FZmZlY3RUaW1pbmcuaAppbmRleCA0ZGQ1ZGNjMzczY2NkODMzMGRl
Y2EzNjE3ZDk5OGU2MTMzOTMyZTYxLi4yMTA3M2ZhNDczMDNmNjRmZDJiYTI2MTlhZTkxODdmNTgx
NTk1MDZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRWZmZWN0VGltaW5n
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0VmZmVjdFRpbWluZy5oCkBAIC0zMywx
MiArMzMsMTIgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RydWN0IEVmZmVjdFRpbWluZyB7
Ci0gICAgc3RkOjp2YXJpYW50PGRvdWJsZSwgU3RyaW5nPiBkdXJhdGlvbiB7ICJhdXRvIiB9Owor
ICAgIHN0ZDo6dmFyaWFudDxkb3VibGUsIFN0cmluZz4gZHVyYXRpb24geyAiYXV0byJfcyB9Owog
ICAgIGRvdWJsZSBkZWxheSB7IDAgfTsKICAgICBkb3VibGUgZW5kRGVsYXkgeyAwIH07CiAgICAg
ZG91YmxlIGl0ZXJhdGlvblN0YXJ0IHsgMCB9OwogICAgIGRvdWJsZSBpdGVyYXRpb25zIHsgMSB9
OwotICAgIFN0cmluZyBlYXNpbmcgeyAibGluZWFyIiB9OworICAgIFN0cmluZyBlYXNpbmcgeyAi
bGluZWFyIl9zIH07CiAgICAgRmlsbE1vZGUgZmlsbCB7IEZpbGxNb2RlOjpBdXRvIH07CiAgICAg
UGxheWJhY2tEaXJlY3Rpb24gZGlyZWN0aW9uIHsgUGxheWJhY2tEaXJlY3Rpb246Ok5vcm1hbCB9
OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVj
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuY3BwCmluZGV4
IDcyMzc2ODUwM2QxMGRiNDk2N2IyZjhjNjBlYjkxNDE4OTc2NmJmN2QuLmQ4NDExYzkzZTQ3NzAy
ZjU2N2FkNjE0MDM2NmVjZTc2NjM1YzA0NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Fu
aW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9u
L0tleWZyYW1lRWZmZWN0LmNwcApAQCAtODIsMTEgKzgyLDExIEBAIFN0cmluZyBLZXlmcmFtZUVm
ZmVjdDo6Q1NTUHJvcGVydHlJRFRvSURMQXR0cmlidXRlTmFtZShDU1NQcm9wZXJ0eUlEIGNzc1By
b3BlcnR5CiAKICAgICAvLyAyLiBJZiBwcm9wZXJ0eSByZWZlcnMgdG8gdGhlIENTUyBmbG9hdCBw
cm9wZXJ0eSwgcmV0dXJuIHRoZSBzdHJpbmcgImNzc0Zsb2F0Ii4KICAgICBpZiAoY3NzUHJvcGVy
dHlJZCA9PSBDU1NQcm9wZXJ0eUZsb2F0KQotICAgICAgICByZXR1cm4gImNzc0Zsb2F0IjsKKyAg
ICAgICAgcmV0dXJuICJjc3NGbG9hdCJfczsKIAogICAgIC8vIDMuIElmIHByb3BlcnR5IHJlZmVy
cyB0byB0aGUgQ1NTIG9mZnNldCBwcm9wZXJ0eSwgcmV0dXJuIHRoZSBzdHJpbmcgImNzc09mZnNl
dCIuCiAgICAgaWYgKGNzc1Byb3BlcnR5SWQgPT0gQ1NTUHJvcGVydHlPZmZzZXQpCi0gICAgICAg
IHJldHVybiAiY3NzT2Zmc2V0IjsKKyAgICAgICAgcmV0dXJuICJjc3NPZmZzZXQiX3M7CiAKICAg
ICAvLyA0LiBPdGhlcndpc2UsIHJldHVybiB0aGUgcmVzdWx0IG9mIGFwcGx5aW5nIHRoZSBDU1Mg
cHJvcGVydHkgdG8gSURMIGF0dHJpYnV0ZSBhbGdvcml0aG0gW0NTU09NXSB0byBwcm9wZXJ0eS4K
ICAgICByZXR1cm4gZ2V0SlNQcm9wZXJ0eU5hbWUoY3NzUHJvcGVydHlJZCk7CkBAIC02NjAsNyAr
NjYwLDcgQEAgYXV0byBLZXlmcmFtZUVmZmVjdDo6Z2V0S2V5ZnJhbWVzKERvY3VtZW50JiBkb2N1
bWVudCkgLT4gVmVjdG9yPENvbXB1dGVkS2V5ZnJhbWUKICAgICAgICAgY29tcHV0ZWRLZXlmcmFt
ZS5vZmZzZXQgPSBrZXlmcmFtZS5rZXkoKTsKICAgICAgICAgY29tcHV0ZWRLZXlmcmFtZS5jb21w
dXRlZE9mZnNldCA9IGtleWZyYW1lLmtleSgpOwogICAgICAgICAvLyBGb3IgQ1NTIHRyYW5zaXRp
b25zLCBhbGwga2V5ZnJhbWVzIHNob3VsZCByZXR1cm4gImxpbmVhciIgc2luY2UgdGhlIGVmZmVj
dCdzIGdsb2JhbCB0aW1pbmcgZnVuY3Rpb24gYXBwbGllcy4KLSAgICAgICAgY29tcHV0ZWRLZXlm
cmFtZS5lYXNpbmcgPSBpczxDU1NUcmFuc2l0aW9uPihhbmltYXRpb24oKSkgPyAibGluZWFyIiA6
IHRpbWluZ0Z1bmN0aW9uRm9yQmxlbmRpbmdLZXlmcmFtZShrZXlmcmFtZSktPmNzc1RleHQoKTsK
KyAgICAgICAgY29tcHV0ZWRLZXlmcmFtZS5lYXNpbmcgPSBpczxDU1NUcmFuc2l0aW9uPihhbmlt
YXRpb24oKSkgPyAibGluZWFyIl9zIDogdGltaW5nRnVuY3Rpb25Gb3JCbGVuZGluZ0tleWZyYW1l
KGtleWZyYW1lKS0+Y3NzVGV4dCgpOwogCiAgICAgICAgIGlmIChkb2N1bWVudC5zZXR0aW5ncygp
LndlYkFuaW1hdGlvbnNDb21wb3NpdGVPcGVyYXRpb25zRW5hYmxlZCgpKSB7CiAgICAgICAgICAg
ICBpZiAoYXV0byBjb21wb3NpdGVPcGVyYXRpb24gPSBrZXlmcmFtZS5jb21wb3NpdGVPcGVyYXRp
b24oKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0dDQ29udHJvbGxl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9HQ0NvbnRyb2xsZXIuY3BwCmluZGV4
IDVmMTFlMGM2MzQ4NzQxNDNhYjMxODVhMDFkZjlmYjJlZTM2ZjI1YWQuLjVmOTM0OTE3NTZmMjdl
YzA0ZDRkZWE5ZDM4MWI3YTY0YzZjNzkyMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0dDQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvR0NDb250cm9sbGVyLmNwcApAQCAtNTksNyArNTksNyBAQCBHQ0NvbnRyb2xsZXI6OkdDQ29u
dHJvbGxlcigpCiB7CiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VGbGFnOwogICAgIHN0
ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbXSB7Ci0gICAgICAgIFBBTDo6cmVnaXN0ZXJOb3RpZnlD
YWxsYmFjaygiY29tLmFwcGxlLldlYktpdC5kdW1wR0NIZWFwIiwgW10geworICAgICAgICBQQUw6
OnJlZ2lzdGVyTm90aWZ5Q2FsbGJhY2soImNvbS5hcHBsZS5XZWJLaXQuZHVtcEdDSGVhcCJfcywg
W10gewogICAgICAgICAgICAgR0NDb250cm9sbGVyOjpzaW5nbGV0b24oKS5kdW1wSGVhcCgpOwog
ICAgICAgICB9KTsKICAgICB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTQ3VzdG9tRWxlbWVudEludGVyZmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0N1c3RvbUVsZW1lbnRJbnRlcmZhY2UuY3BwCmluZGV4IDRlMWQyNGVlOTQxNzRjOWRm
NzZkMmIyZTUwNzliNzdkZDBlMjZmOTguLmE5MWUwMmYyM2Q3NTAzMGE5YjlhYmY4OWEzNmY4NGFi
MTliYTg4YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9t
RWxlbWVudEludGVyZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlND
dXN0b21FbGVtZW50SW50ZXJmYWNlLmNwcApAQCAtMjEwLDcgKzIxMCw3IEBAIHZvaWQgSlNDdXN0
b21FbGVtZW50SW50ZXJmYWNlOjp1cGdyYWRlRWxlbWVudChFbGVtZW50JiBlbGVtZW50KQogCiAg
ICAgaWYgKG1faXNTaGFkb3dEaXNhYmxlZCAmJiBlbGVtZW50LnNoYWRvd1Jvb3QoKSkgewogICAg
ICAgICBlbGVtZW50LmNsZWFyUmVhY3Rpb25RdWV1ZUZyb21GYWlsZWRDdXN0b21FbGVtZW50KCk7
Ci0gICAgICAgIHJlcG9ydEV4Y2VwdGlvbihsZXhpY2FsR2xvYmFsT2JqZWN0LCBjcmVhdGVET01F
eGNlcHRpb24obGV4aWNhbEdsb2JhbE9iamVjdCwgTm90U3VwcG9ydGVkRXJyb3IsICJGYWlsZWQg
dG8gdXBncmFkZSBhbiBlbGVtZW50IHdpdGggc2hhZG93IHJvb3Q6IHRoZSBjdXN0b20gZWxlbWVu
dCBkZWZpbml0aW9uIGRpc2FsbG93cyBzaGFkb3cgcm9vdHMuIikpOworICAgICAgICByZXBvcnRF
eGNlcHRpb24obGV4aWNhbEdsb2JhbE9iamVjdCwgY3JlYXRlRE9NRXhjZXB0aW9uKGxleGljYWxH
bG9iYWxPYmplY3QsIE5vdFN1cHBvcnRlZEVycm9yLCAiRmFpbGVkIHRvIHVwZ3JhZGUgYW4gZWxl
bWVudCB3aXRoIHNoYWRvdyByb290OiB0aGUgY3VzdG9tIGVsZW1lbnQgZGVmaW5pdGlvbiBkaXNh
bGxvd3Mgc2hhZG93IHJvb3RzLiJfcykpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0y
MzEsNyArMjMxLDcgQEAgdm9pZCBKU0N1c3RvbUVsZW1lbnRJbnRlcmZhY2U6OnVwZ3JhZGVFbGVt
ZW50KEVsZW1lbnQmIGVsZW1lbnQpCiAgICAgRWxlbWVudCogd3JhcHBlZEVsZW1lbnQgPSBKU0Vs
ZW1lbnQ6OnRvV3JhcHBlZCh2bSwgcmV0dXJuZWRFbGVtZW50KTsKICAgICBpZiAoIXdyYXBwZWRF
bGVtZW50IHx8IHdyYXBwZWRFbGVtZW50ICE9ICZlbGVtZW50KSB7CiAgICAgICAgIGVsZW1lbnQu
Y2xlYXJSZWFjdGlvblF1ZXVlRnJvbUZhaWxlZEN1c3RvbUVsZW1lbnQoKTsKLSAgICAgICAgcmVw
b3J0RXhjZXB0aW9uKGxleGljYWxHbG9iYWxPYmplY3QsIGNyZWF0ZURPTUV4Y2VwdGlvbihsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBUeXBlRXJyb3IsICJDdXN0b20gZWxlbWVudCBjb25zdHJ1Y3RvciBy
ZXR1cm5lZCBhIHdyb25nIGVsZW1lbnQiKSk7CisgICAgICAgIHJlcG9ydEV4Y2VwdGlvbihsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBjcmVhdGVET01FeGNlcHRpb24obGV4aWNhbEdsb2JhbE9iamVjdCwg
VHlwZUVycm9yLCAiQ3VzdG9tIGVsZW1lbnQgY29uc3RydWN0b3IgcmV0dXJuZWQgYSB3cm9uZyBl
bGVtZW50Il9zKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgZWxlbWVudC5zZXRJc0Rl
ZmluZWRDdXN0b21FbGVtZW50KCp0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NQ29udmVydE51bWJlcnMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NQ29udmVydE51bWJlcnMuaAppbmRleCBiN2I2MTNkZDZjMzdlZDExN2I5MjIwMjBh
YzEzYTNkN2M1NWJiY2FkLi4yOTQxM2Q4ZDk4OTY5MDEwZmFhMWMzNTRlYTNhODliYWM0MDBiMDcy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnROdW1i
ZXJzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Db252ZXJ0TnVtYmVy
cy5oCkBAIC0yOTMsNyArMjkzLDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQ29udmVydGVyPElETEZs
b2F0PiA6IERlZmF1bHRDb252ZXJ0ZXI8SURMRmxvYXQ+IHsKICAgICAgICAgZG91YmxlIG51bWJl
ciA9IHZhbHVlLnRvTnVtYmVyKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICAgICAgUkVUVVJO
X0lGX0VYQ0VQVElPTihzY29wZSwgMC4wKTsKICAgICAgICAgaWYgKFVOTElLRUxZKG51bWJlciA8
IHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+Ojpsb3dlc3QoKSB8fCBudW1iZXIgPiBzdGQ6Om51
bWVyaWNfbGltaXRzPGZsb2F0Pjo6bWF4KCkpKQotICAgICAgICAgICAgdGhyb3dUeXBlRXJyb3Io
JmxleGljYWxHbG9iYWxPYmplY3QsIHNjb3BlLCAiVGhlIHByb3ZpZGVkIHZhbHVlIGlzIG91dHNp
ZGUgdGhlIHJhbmdlIG9mIGEgZmxvYXQiKTsKKyAgICAgICAgICAgIHRocm93VHlwZUVycm9yKCZs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBzY29wZSwgIlRoZSBwcm92aWRlZCB2YWx1ZSBpcyBvdXRzaWRl
IHRoZSByYW5nZSBvZiBhIGZsb2F0Il9zKTsKICAgICAgICAgaWYgKFVOTElLRUxZKCFzdGQ6Omlz
ZmluaXRlKG51bWJlcikpKQogICAgICAgICAgICAgdGhyb3dOb25GaW5pdGVUeXBlRXJyb3IobGV4
aWNhbEdsb2JhbE9iamVjdCwgc2NvcGUpOwogICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Zmxv
YXQ+KG51bWJlcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V4
ZWNTdGF0ZUluc3RydW1lbnRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNF
eGVjU3RhdGVJbnN0cnVtZW50YXRpb24uaAppbmRleCBjMDQ0YjA3YWJmYzdiNjllMzE5MTI4MzNi
NDk0NDY4MWJjMzI4MDUzLi4zMTAwZmFiZjJkODU3MTM1YzhhNTNlOTQ2N2JlMjFjNzc4OWU2NGNk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V4ZWNTdGF0ZUluc3Ry
dW1lbnRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXhlY1N0YXRl
SW5zdHJ1bWVudGF0aW9uLmgKQEAgLTQ1LDcgKzQ1LDcgQEAgaW5saW5lIHZvaWQgSlNFeGVjU3Rh
dGU6Omluc3RydW1lbnRGdW5jdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBj
b24KICAgICAgICAgbGluZU51bWJlciA9IGNhbGxEYXRhLmpzLmZ1bmN0aW9uRXhlY3V0YWJsZS0+
Zmlyc3RMaW5lKCk7CiAgICAgICAgIGNvbHVtbk51bWJlciA9IGNhbGxEYXRhLmpzLmZ1bmN0aW9u
RXhlY3V0YWJsZS0+c3RhcnRDb2x1bW4oKTsKICAgICB9IGVsc2UKLSAgICAgICAgcmVzb3VyY2VO
YW1lID0gInVuZGVmaW5lZCI7CisgICAgICAgIHJlc291cmNlTmFtZSA9ICJ1bmRlZmluZWQiX3M7
CiAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsQ2FsbEZ1bmN0aW9uKGNvbnRleHQs
IHJlc291cmNlTmFtZSwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyKTsKIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcAppbmRleCBjZDRiM2Yw
NzZkZjczOTkwNTZmMjc4YzY1ZTcyZDMyZDI0NzlkNDYwLi40ODRkOGMyZGYzN2JlZjdkMTdkYTQx
YjcwMzIyOTRiMWQ5Y2ZmYjE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9TY3JpcHRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9T
Y3JpcHRDb250cm9sbGVyLmNwcApAQCAtNjMzLDcgKzYzMyw3IEBAIFZhbHVlT3JFeGNlcHRpb24g
U2NyaXB0Q29udHJvbGxlcjo6Y2FsbEluV29ybGQoUnVuSmF2YVNjcmlwdFBhcmFtZXRlcnMmJiBw
YXJhbWV0CiAgICAgICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX0NBVENIX1NDT1BFKGdsb2JhbE9i
amVjdC52bSgpKTsKICAgICAgICAgYXV0byBqc0FyZ3VtZW50ID0gc2VyaWFsaXplZEFyZ3VtZW50
LT5kZXNlcmlhbGl6ZShnbG9iYWxPYmplY3QsICZnbG9iYWxPYmplY3QpOwogICAgICAgICBpZiAo
VU5MSUtFTFkoc2NvcGUuZXhjZXB0aW9uKCkpKSB7Ci0gICAgICAgICAgICBlcnJvck1lc3NhZ2Ug
PSAiVW5hYmxlIHRvIGRlc2VyaWFsaXplIGFyZ3VtZW50IHRvIGV4ZWN1dGUgYXN5bmNocm9ub3Vz
IEphdmFTY3JpcHQgZnVuY3Rpb24iOworICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gIlVuYWJs
ZSB0byBkZXNlcmlhbGl6ZSBhcmd1bWVudCB0byBleGVjdXRlIGFzeW5jaHJvbm91cyBKYXZhU2Ny
aXB0IGZ1bmN0aW9uIl9zOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLm1tIGIvU291cmNl
L1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLm1tCmluZGV4IDE1Y2I2YTA4ZTVjMzVj
MTcyMmNkZDM3Y2EzOGFjNWNhOTQ0ZmExNTkuLmFlNDIyMTE0MWVlY2I4OTE1MWM2MzE2MTBlMjIy
MjI0Y2NmZGRmYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNf
cnVudGltZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUu
bW0KQEAgLTE3Niw3ICsxNzYsNyBAQCBib29sIE9iamNBcnJheTo6c2V0VmFsdWVBdChKU0dsb2Jh
bE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgdW5zaWduZWQgaW50IGluZAogICAgIH0KIAog
ICAgIGlmIChpbmRleCA+IFtfYXJyYXkgY291bnRdKSB7Ci0gICAgICAgIHRocm93RXhjZXB0aW9u
KGxleGljYWxHbG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVSYW5nZUVycm9yKGxleGljYWxHbG9i
YWxPYmplY3QsICJJbmRleCBleGNlZWRzIGFycmF5IHNpemUuIikpOworICAgICAgICB0aHJvd0V4
Y2VwdGlvbihsZXhpY2FsR2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlUmFuZ2VFcnJvcihsZXhp
Y2FsR2xvYmFsT2JqZWN0LCAiSW5kZXggZXhjZWVkcyBhcnJheSBzaXplLiJfcykpOwogICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgfQogICAgIApAQCAtMTg4LDcgKzE4OCw3IEBAIGJvb2wgT2Jq
Y0FycmF5OjpzZXRWYWx1ZUF0KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCB1
bnNpZ25lZCBpbnQgaW5kCiAgICAgICAgIFtfYXJyYXkgaW5zZXJ0T2JqZWN0OihfX2JyaWRnZSBp
ZClvVmFsdWUub2JqZWN0VmFsdWUgYXRJbmRleDppbmRleF07CiAgICAgICAgIHJldHVybiB0cnVl
OwogICAgIH0gQGNhdGNoKE5TRXhjZXB0aW9uKiBsb2NhbEV4Y2VwdGlvbikgewotICAgICAgICB0
aHJvd0V4Y2VwdGlvbihsZXhpY2FsR2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlRXJyb3IobGV4
aWNhbEdsb2JhbE9iamVjdCwgIk9iamVjdGl2ZS1DIGV4Y2VwdGlvbi4iKSk7CisgICAgICAgIHRo
cm93RXhjZXB0aW9uKGxleGljYWxHbG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVFcnJvcihsZXhp
Y2FsR2xvYmFsT2JqZWN0LCAiT2JqZWN0aXZlLUMgZXhjZXB0aW9uLiJfcykpOwogICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgfQogfQpAQCAtMTk5LDEzICsxOTksMTMgQEAgSlNWYWx1ZSBPYmpj
QXJyYXk6OnZhbHVlQXQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIHVuc2ln
bmVkIGludCBpbmQKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAK
ICAgICBpZiAoaW5kZXggPiBbX2FycmF5IGNvdW50XSkKLSAgICAgICAgcmV0dXJuIHRocm93RXhj
ZXB0aW9uKGxleGljYWxHbG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVSYW5nZUVycm9yKGxleGlj
YWxHbG9iYWxPYmplY3QsICJJbmRleCBleGNlZWRzIGFycmF5IHNpemUuIikpOworICAgICAgICBy
ZXR1cm4gdGhyb3dFeGNlcHRpb24obGV4aWNhbEdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZVJh
bmdlRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgIkluZGV4IGV4Y2VlZHMgYXJyYXkgc2l6ZS4i
X3MpKTsKICAgICBAdHJ5IHsKICAgICAgICAgaWQgb2JqID0gW19hcnJheSBvYmplY3RBdEluZGV4
OmluZGV4XTsKICAgICAgICAgaWYgKG9iaikKICAgICAgICAgICAgIHJldHVybiBjb252ZXJ0T2Jq
Y1ZhbHVlVG9WYWx1ZSAobGV4aWNhbEdsb2JhbE9iamVjdCwgJm9iaiwgT2JqY09iamVjdFR5cGUs
IG1fcm9vdE9iamVjdC5nZXQoKSk7CiAgICAgfSBAY2F0Y2goTlNFeGNlcHRpb24qIGxvY2FsRXhj
ZXB0aW9uKSB7Ci0gICAgICAgIHJldHVybiB0aHJvd0V4Y2VwdGlvbihsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBzY29wZSwgY3JlYXRlRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgIk9iamVjdGl2ZS1D
IGV4Y2VwdGlvbi4iKSk7CisgICAgICAgIHJldHVybiB0aHJvd0V4Y2VwdGlvbihsZXhpY2FsR2xv
YmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgIk9iamVj
dGl2ZS1DIGV4Y2VwdGlvbi4iX3MpKTsKICAgICB9CiAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5jcHAKaW5kZXggYzA1ZTNhNDBl
ODA1NjY1ZGMwZmRlZDAyYzMwNTE4ZWQ5NjI4NjBjMy4uYWYzOWJhMTE0MGRhMDMwNDM4ODVhM2E4
NTVhMTMzMWU0ZjU2NWE5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRp
bWVfYXJyYXkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmNw
cApAQCAtMTI3LDcgKzEyNyw3IEBAIGJvb2wgUnVudGltZUFycmF5OjpwdXQoSlNDZWxsKiBjZWxs
LCBKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgUHJvcGVyCiAKICAgICBSdW50
aW1lQXJyYXkqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8UnVudGltZUFycmF5Kj4oY2VsbCk7CiAgICAg
aWYgKHByb3BlcnR5TmFtZSA9PSB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgpIHsKLSAgICAgICAg
dGhyb3dFeGNlcHRpb24obGV4aWNhbEdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZVJhbmdlRXJy
b3IobGV4aWNhbEdsb2JhbE9iamVjdCwgIlJhbmdlIGVycm9yIikpOworICAgICAgICB0aHJvd0V4
Y2VwdGlvbihsZXhpY2FsR2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlUmFuZ2VFcnJvcihsZXhp
Y2FsR2xvYmFsT2JqZWN0LCAiUmFuZ2UgZXJyb3IiX3MpKTsKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgIH0KICAgICAKQEAgLTE0NCw3ICsxNDQsNyBAQCBib29sIFJ1bnRpbWVBcnJheTo6cHV0
QnlJbmRleChKU0NlbGwqIGNlbGwsIEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0
LAogCiAgICAgUnVudGltZUFycmF5KiB0aGlzT2JqZWN0ID0ganNDYXN0PFJ1bnRpbWVBcnJheSo+
KGNlbGwpOwogICAgIGlmIChpbmRleCA+PSB0aGlzT2JqZWN0LT5nZXRMZW5ndGgoKSkgewotICAg
ICAgICB0aHJvd0V4Y2VwdGlvbihsZXhpY2FsR2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlUmFu
Z2VFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCAiUmFuZ2UgZXJyb3IiKSk7CisgICAgICAgIHRo
cm93RXhjZXB0aW9uKGxleGljYWxHbG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVSYW5nZUVycm9y
KGxleGljYWxHbG9iYWxPYmplY3QsICJSYW5nZSBlcnJvciJfcykpOwogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgfQogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1
bnRpbWVfb2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5j
cHAKaW5kZXggYjI0ZjJhZWYxOTRiYWQyNWIzYTYxZWI4OGU3NDE0N2RjZTkzMTBjNy4uMjBiZTFl
ZTJmZjI1MDQyZjM4ODE1ZWRhMDY4ZmQ5YTQ4ODk1NWU3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlk
Z2UvcnVudGltZV9vYmplY3QuY3BwCkBAIC0zMTAsNyArMzEwLDcgQEAgdm9pZCBSdW50aW1lT2Jq
ZWN0OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEpTT2JqZWN0KiBvYmplY3QsIEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2EKIAogRXhjZXB0aW9uKiB0aHJvd1J1bnRpbWVPYmplY3RJbnZhbGlkQWNjZXNzRXJy
b3IoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIFRocm93U2NvcGUmIHNjb3Bl
KQogewotICAgIHJldHVybiB0aHJvd0V4Y2VwdGlvbihsZXhpY2FsR2xvYmFsT2JqZWN0LCBzY29w
ZSwgY3JlYXRlUmVmZXJlbmNlRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgIlRyeWluZyB0byBh
Y2Nlc3Mgb2JqZWN0IGZyb20gZGVzdHJveWVkIHBsdWctaW4uIikpOworICAgIHJldHVybiB0aHJv
d0V4Y2VwdGlvbihsZXhpY2FsR2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlUmVmZXJlbmNlRXJy
b3IobGV4aWNhbEdsb2JhbE9iamVjdCwgIlRyeWluZyB0byBhY2Nlc3Mgb2JqZWN0IGZyb20gZGVz
dHJveWVkIHBsdWctaW4uIl9zKSk7CiB9CiAKIEpTQzo6R0NDbGllbnQ6Oklzb1N1YnNwYWNlKiBS
dW50aW1lT2JqZWN0OjpzdWJzcGFjZUZvckltcGwoSlNDOjpWTSYgdm0pCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uQWN0aW9ucy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uQWN0
aW9ucy5jcHAKaW5kZXggMGNhNjFjMTAxNGQyNDM1ZTg0YWEwZGFmZTMwMjBmZmIwNzhlODM3OS4u
N2IyNjU5ZmM2NzNkNTM2MDllNWQxYjVlNDdmYjY4M2ExNjNhZjA5YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkFjdGlvbnMuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25B
Y3Rpb25zLmNwcApAQCAtMjAxLDE1ICsyMDEsMTUgQEAgYXV0byBNb2RpZnlIZWFkZXJzQWN0aW9u
OjpNb2RpZnlIZWFkZXJJbmZvOjpwYXJzZShjb25zdCBKU09OOjpWYWx1ZSYgaW5mb1ZhbHVlKQog
ICAgIGlmICghb2JqZWN0KQogICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoQ29udGVudEV4
dGVuc2lvbkVycm9yOjpKU09OTW9kaWZ5SGVhZGVyc0luZm9Ob3RBRGljdGlvbmFyeSk7CiAKLSAg
ICBTdHJpbmcgb3BlcmF0aW9uID0gb2JqZWN0LT5nZXRTdHJpbmcoIm9wZXJhdGlvbiIpOworICAg
IFN0cmluZyBvcGVyYXRpb24gPSBvYmplY3QtPmdldFN0cmluZygib3BlcmF0aW9uIl9zKTsKICAg
ICBpZiAoIW9wZXJhdGlvbikKICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKENvbnRlbnRF
eHRlbnNpb25FcnJvcjo6SlNPTk1vZGlmeUhlYWRlcnNNaXNzaW5nT3BlcmF0aW9uKTsKIAotICAg
IFN0cmluZyBoZWFkZXIgPSBvYmplY3QtPmdldFN0cmluZygiaGVhZGVyIik7CisgICAgU3RyaW5n
IGhlYWRlciA9IG9iamVjdC0+Z2V0U3RyaW5nKCJoZWFkZXIiX3MpOwogICAgIGlmICghaGVhZGVy
KQogICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoQ29udGVudEV4dGVuc2lvbkVycm9yOjpK
U09OTW9kaWZ5SGVhZGVyc01pc3NpbmdIZWFkZXIpOwogCi0gICAgU3RyaW5nIHZhbHVlID0gb2Jq
ZWN0LT5nZXRTdHJpbmcoInZhbHVlIik7CisgICAgU3RyaW5nIHZhbHVlID0gb2JqZWN0LT5nZXRT
dHJpbmcoInZhbHVlIl9zKTsKIAogICAgIGlmIChvcGVyYXRpb24gPT0gInNldCIpIHsKICAgICAg
ICAgaWYgKCF2YWx1ZSkKQEAgLTI4OSwyNyArMjg5LDI3IEBAIHNpemVfdCBNb2RpZnlIZWFkZXJz
QWN0aW9uOjpNb2RpZnlIZWFkZXJJbmZvOjpzZXJpYWxpemVkTGVuZ3RoKFNwYW48Y29uc3QgdWlu
dDhfCiAKIEV4cGVjdGVkPFJlZGlyZWN0QWN0aW9uLCBzdGQ6OmVycm9yX2NvZGU+IFJlZGlyZWN0
QWN0aW9uOjpwYXJzZShjb25zdCBKU09OOjpPYmplY3QmIHJlZGlyZWN0T2JqZWN0LCBjb25zdCBT
dHJpbmcmIHVybEZpbHRlcikKIHsKLSAgICBhdXRvIHJlZGlyZWN0ID0gcmVkaXJlY3RPYmplY3Qu
Z2V0T2JqZWN0KCJyZWRpcmVjdCIpOworICAgIGF1dG8gcmVkaXJlY3QgPSByZWRpcmVjdE9iamVj
dC5nZXRPYmplY3QoInJlZGlyZWN0Il9zKTsKICAgICBpZiAoIXJlZGlyZWN0KQogICAgICAgICBy
ZXR1cm4gbWFrZVVuZXhwZWN0ZWQoQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OUmVkaXJlY3RN
aXNzaW5nKTsKIAotICAgIGlmIChhdXRvIGV4dGVuc2lvblBhdGggPSByZWRpcmVjdC0+Z2V0U3Ry
aW5nKCJleHRlbnNpb24tcGF0aCIpOyAhIWV4dGVuc2lvblBhdGgpIHsKKyAgICBpZiAoYXV0byBl
eHRlbnNpb25QYXRoID0gcmVkaXJlY3QtPmdldFN0cmluZygiZXh0ZW5zaW9uLXBhdGgiX3MpOyAh
IWV4dGVuc2lvblBhdGgpIHsKICAgICAgICAgaWYgKCFleHRlbnNpb25QYXRoLnN0YXJ0c1dpdGgo
Jy8nKSkKICAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50RXh0ZW5zaW9u
RXJyb3I6OkpTT05SZWRpcmVjdEV4dGVuc2lvblBhdGhEb2VzTm90U3RhcnRXaXRoU2xhc2gpOwog
ICAgICAgICByZXR1cm4gUmVkaXJlY3RBY3Rpb24geyBFeHRlbnNpb25QYXRoQWN0aW9uIHsgV1RG
TW92ZShleHRlbnNpb25QYXRoKSB9IH07CiAgICAgfQogCi0gICAgaWYgKGF1dG8gcmVnZXhTdWJz
dGl0dXRpb24gPSByZWRpcmVjdC0+Z2V0U3RyaW5nKCJyZWdleC1zdWJzdGl0dXRpb24iKTsgISFy
ZWdleFN1YnN0aXR1dGlvbikKKyAgICBpZiAoYXV0byByZWdleFN1YnN0aXR1dGlvbiA9IHJlZGly
ZWN0LT5nZXRTdHJpbmcoInJlZ2V4LXN1YnN0aXR1dGlvbiJfcyk7ICEhcmVnZXhTdWJzdGl0dXRp
b24pCiAgICAgICAgIHJldHVybiBSZWRpcmVjdEFjdGlvbiB7IFJlZ2V4U3Vic3RpdHV0aW9uQWN0
aW9uIHsgV1RGTW92ZShyZWdleFN1YnN0aXR1dGlvbiksIHVybEZpbHRlciB9IH07CiAKLSAgICBp
ZiAoYXV0byB0cmFuc2Zvcm0gPSByZWRpcmVjdC0+Z2V0T2JqZWN0KCJ0cmFuc2Zvcm0iKSkgewor
ICAgIGlmIChhdXRvIHRyYW5zZm9ybSA9IHJlZGlyZWN0LT5nZXRPYmplY3QoInRyYW5zZm9ybSJf
cykpIHsKICAgICAgICAgYXV0byBwYXJzZWRUcmFuc2Zvcm0gPSBVUkxUcmFuc2Zvcm1BY3Rpb246
OnBhcnNlKCp0cmFuc2Zvcm0pOwogICAgICAgICBpZiAoIXBhcnNlZFRyYW5zZm9ybSkKICAgICAg
ICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChwYXJzZWRUcmFuc2Zvcm0uZXJyb3IoKSk7CiAg
ICAgICAgIHJldHVybiBSZWRpcmVjdEFjdGlvbiB7IFdURk1vdmUoKnBhcnNlZFRyYW5zZm9ybSkg
fTsKICAgICB9CiAKLSAgICBpZiAoYXV0byB1cmxTdHJpbmcgPSByZWRpcmVjdC0+Z2V0U3RyaW5n
KCJ1cmwiKTsgISF1cmxTdHJpbmcpIHsKKyAgICBpZiAoYXV0byB1cmxTdHJpbmcgPSByZWRpcmVj
dC0+Z2V0U3RyaW5nKCJ1cmwiX3MpOyAhIXVybFN0cmluZykgewogICAgICAgICBVUkwgdXJsIHsg
dXJsU3RyaW5nIH07CiAgICAgICAgIGlmICghdXJsLmlzVmFsaWQoKSkKICAgICAgICAgICAgIHJl
dHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05SZWRpcmVjdFVS
TEludmFsaWQpOwpAQCAtNDgzLDE1ICs0ODMsMTUgQEAgdm9pZCBSZWRpcmVjdEFjdGlvbjo6UmVn
ZXhTdWJzdGl0dXRpb25BY3Rpb246OmFwcGx5VG9VUkwoVVJMJiB1cmwpIGNvbnN0CiBhdXRvIFJl
ZGlyZWN0QWN0aW9uOjpVUkxUcmFuc2Zvcm1BY3Rpb246OnBhcnNlKGNvbnN0IEpTT046Ok9iamVj
dCYgdHJhbnNmb3JtKSAtPiBFeHBlY3RlZDxVUkxUcmFuc2Zvcm1BY3Rpb24sIHN0ZDo6ZXJyb3Jf
Y29kZT4KIHsKICAgICBVUkxUcmFuc2Zvcm1BY3Rpb24gYWN0aW9uOwotICAgIGlmIChhdXRvIGZy
YWdtZW50ID0gdHJhbnNmb3JtLmdldFN0cmluZygiZnJhZ21lbnQiKTsgISFmcmFnbWVudCkgewor
ICAgIGlmIChhdXRvIGZyYWdtZW50ID0gdHJhbnNmb3JtLmdldFN0cmluZygiZnJhZ21lbnQiX3Mp
OyAhIWZyYWdtZW50KSB7CiAgICAgICAgIGlmICghZnJhZ21lbnQuaXNFbXB0eSgpICYmICFmcmFn
bWVudC5zdGFydHNXaXRoKCcjJykpCiAgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQo
Q29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OUmVkaXJlY3RJbnZhbGlkRnJhZ21lbnQpOwogICAg
ICAgICBhY3Rpb24uZnJhZ21lbnQgPSBXVEZNb3ZlKGZyYWdtZW50KTsKICAgICB9Ci0gICAgYWN0
aW9uLmhvc3QgPSB0cmFuc2Zvcm0uZ2V0U3RyaW5nKCJob3N0Iik7Ci0gICAgYWN0aW9uLnBhc3N3
b3JkID0gdHJhbnNmb3JtLmdldFN0cmluZygicGFzc3dvcmQiKTsKLSAgICBhY3Rpb24ucGF0aCA9
IHRyYW5zZm9ybS5nZXRTdHJpbmcoInBhdGgiKTsKLSAgICBhdXRvIHBvcnQgPSB0cmFuc2Zvcm0u
Z2V0U3RyaW5nKCJwb3J0Iik7CisgICAgYWN0aW9uLmhvc3QgPSB0cmFuc2Zvcm0uZ2V0U3RyaW5n
KCJob3N0Il9zKTsKKyAgICBhY3Rpb24ucGFzc3dvcmQgPSB0cmFuc2Zvcm0uZ2V0U3RyaW5nKCJw
YXNzd29yZCJfcyk7CisgICAgYWN0aW9uLnBhdGggPSB0cmFuc2Zvcm0uZ2V0U3RyaW5nKCJwYXRo
Il9zKTsKKyAgICBhdXRvIHBvcnQgPSB0cmFuc2Zvcm0uZ2V0U3RyaW5nKCJwb3J0Il9zKTsKICAg
ICBpZiAoISFwb3J0KSB7CiAgICAgICAgIGlmIChwb3J0LmlzRW1wdHkoKSkKICAgICAgICAgICAg
IGFjdGlvbi5wb3J0ID0geyBzdGQ6Om9wdGlvbmFsPHVpbnQxNl90PiB7IH0gfTsKQEAgLTUwMyw3
ICs1MDMsNyBAQCBhdXRvIFJlZGlyZWN0QWN0aW9uOjpVUkxUcmFuc2Zvcm1BY3Rpb246OnBhcnNl
KGNvbnN0IEpTT046Ok9iamVjdCYgdHJhbnNmb3JtKSAtPgogICAgICAgICB9CiAgICAgfQogCi0g
ICAgaWYgKGF1dG8gdW5jYW5vbmljYWxpemVkU2NoZW1lID0gdHJhbnNmb3JtLmdldFN0cmluZygi
c2NoZW1lIik7ICEhdW5jYW5vbmljYWxpemVkU2NoZW1lKSB7CisgICAgaWYgKGF1dG8gdW5jYW5v
bmljYWxpemVkU2NoZW1lID0gdHJhbnNmb3JtLmdldFN0cmluZygic2NoZW1lIl9zKTsgISF1bmNh
bm9uaWNhbGl6ZWRTY2hlbWUpIHsKICAgICAgICAgYXV0byBzY2hlbWUgPSBXVEY6OlVSTFBhcnNl
cjo6bWF5YmVDYW5vbmljYWxpemVTY2hlbWUodW5jYW5vbmljYWxpemVkU2NoZW1lKTsKICAgICAg
ICAgaWYgKCFzY2hlbWUpCiAgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoQ29udGVu
dEV4dGVuc2lvbkVycm9yOjpKU09OUmVkaXJlY3RVUkxTY2hlbWVJbnZhbGlkKTsKQEAgLTUxMSwx
NCArNTExLDE0IEBAIGF1dG8gUmVkaXJlY3RBY3Rpb246OlVSTFRyYW5zZm9ybUFjdGlvbjo6cGFy
c2UoY29uc3QgSlNPTjo6T2JqZWN0JiB0cmFuc2Zvcm0pIC0+CiAgICAgICAgICAgICByZXR1cm4g
bWFrZVVuZXhwZWN0ZWQoQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OUmVkaXJlY3RUb0phdmFT
Y3JpcHRVUkwpOwogICAgICAgICBhY3Rpb24uc2NoZW1lID0gV1RGTW92ZSgqc2NoZW1lKTsKICAg
ICB9Ci0gICAgYWN0aW9uLnVzZXJuYW1lID0gdHJhbnNmb3JtLmdldFN0cmluZygidXNlcm5hbWUi
KTsKLSAgICBpZiAoYXV0byBxdWVyeVRyYW5zZm9ybSA9IHRyYW5zZm9ybS5nZXRPYmplY3QoInF1
ZXJ5LXRyYW5zZm9ybSIpKSB7CisgICAgYWN0aW9uLnVzZXJuYW1lID0gdHJhbnNmb3JtLmdldFN0
cmluZygidXNlcm5hbWUiX3MpOworICAgIGlmIChhdXRvIHF1ZXJ5VHJhbnNmb3JtID0gdHJhbnNm
b3JtLmdldE9iamVjdCgicXVlcnktdHJhbnNmb3JtIl9zKSkgewogICAgICAgICBhdXRvIHBhcnNl
ZFF1ZXJ5VHJhbnNmb3JtID0gUXVlcnlUcmFuc2Zvcm06OnBhcnNlKCpxdWVyeVRyYW5zZm9ybSk7
CiAgICAgICAgIGlmICghcGFyc2VkUXVlcnlUcmFuc2Zvcm0pCiAgICAgICAgICAgICByZXR1cm4g
bWFrZVVuZXhwZWN0ZWQocGFyc2VkUXVlcnlUcmFuc2Zvcm0uZXJyb3IoKSk7CiAgICAgICAgIGFj
dGlvbi5xdWVyeVRyYW5zZm9ybSA9ICpwYXJzZWRRdWVyeVRyYW5zZm9ybTsKICAgICB9IGVsc2Ug
ewotICAgICAgICBhdXRvIHF1ZXJ5ID0gdHJhbnNmb3JtLmdldFN0cmluZygicXVlcnkiKTsKKyAg
ICAgICAgYXV0byBxdWVyeSA9IHRyYW5zZm9ybS5nZXRTdHJpbmcoInF1ZXJ5Il9zKTsKICAgICAg
ICAgaWYgKCFxdWVyeS5pc0VtcHR5KCkgJiYgIXF1ZXJ5LnN0YXJ0c1dpdGgoJz8nKSkKICAgICAg
ICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05S
ZWRpcmVjdEludmFsaWRRdWVyeSk7CiAgICAgICAgIGFjdGlvbi5xdWVyeVRyYW5zZm9ybSA9IFdU
Rk1vdmUocXVlcnkpOwpAQCAtNjk5LDcgKzY5OSw3IEBAIGF1dG8gUmVkaXJlY3RBY3Rpb246OlVS
TFRyYW5zZm9ybUFjdGlvbjo6UXVlcnlUcmFuc2Zvcm06OnBhcnNlKGNvbnN0IEpTT046Ok9iamVj
CiB7CiAgICAgUXVlcnlUcmFuc2Zvcm0gcGFyc2VkUXVlcnlUcmFuc2Zvcm07CiAKLSAgICBpZiAo
YXV0byByZW1vdmVQYXJhbWV0ZXJzVmFsdWUgPSBxdWVyeVRyYW5zZm9ybS5nZXRWYWx1ZSgicmVt
b3ZlLXBhcmFtZXRlcnMiKSkgeworICAgIGlmIChhdXRvIHJlbW92ZVBhcmFtZXRlcnNWYWx1ZSA9
IHF1ZXJ5VHJhbnNmb3JtLmdldFZhbHVlKCJyZW1vdmUtcGFyYW1ldGVycyJfcykpIHsKICAgICAg
ICAgYXV0byByZW1vdmVQYXJhbWV0ZXJzQXJyYXkgPSByZW1vdmVQYXJhbWV0ZXJzVmFsdWUtPmFz
QXJyYXkoKTsKICAgICAgICAgaWYgKCFyZW1vdmVQYXJhbWV0ZXJzQXJyYXkpCiAgICAgICAgICAg
ICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OUmVtb3Zl
UGFyYW1ldGVyc05vdFN0cmluZ0FycmF5KTsKQEAgLTcxMyw3ICs3MTMsNyBAQCBhdXRvIFJlZGly
ZWN0QWN0aW9uOjpVUkxUcmFuc2Zvcm1BY3Rpb246OlF1ZXJ5VHJhbnNmb3JtOjpwYXJzZShjb25z
dCBKU09OOjpPYmplYwogICAgICAgICBwYXJzZWRRdWVyeVRyYW5zZm9ybS5yZW1vdmVQYXJhbXMg
PSBXVEZNb3ZlKHJlbW92ZVBhcmFtZXRlcnNWZWN0b3IpOwogICAgIH0KIAotICAgIGlmIChhdXRv
IGFkZE9yUmVwbGFjZVBhcmFtZXRlcnNWYWx1ZSA9IHF1ZXJ5VHJhbnNmb3JtLmdldFZhbHVlKCJh
ZGQtb3ItcmVwbGFjZS1wYXJhbWV0ZXJzIikpIHsKKyAgICBpZiAoYXV0byBhZGRPclJlcGxhY2VQ
YXJhbWV0ZXJzVmFsdWUgPSBxdWVyeVRyYW5zZm9ybS5nZXRWYWx1ZSgiYWRkLW9yLXJlcGxhY2Ut
cGFyYW1ldGVycyJfcykpIHsKICAgICAgICAgYXV0byBhZGRPclJlcGxhY2VQYXJhbWV0ZXJzQXJy
YXkgPSBhZGRPclJlcGxhY2VQYXJhbWV0ZXJzVmFsdWUtPmFzQXJyYXkoKTsKICAgICAgICAgaWYg
KCFhZGRPclJlcGxhY2VQYXJhbWV0ZXJzQXJyYXkpCiAgICAgICAgICAgICByZXR1cm4gbWFrZVVu
ZXhwZWN0ZWQoQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OQWRkT3JSZXBsYWNlUGFyYW1ldGVy
c05vdEFycmF5KTsKQEAgLTg1OCwxNiArODU4LDE2IEBAIGF1dG8gUmVkaXJlY3RBY3Rpb246OlVS
TFRyYW5zZm9ybUFjdGlvbjo6UXVlcnlUcmFuc2Zvcm06OlF1ZXJ5S2V5VmFsdWU6OnBhcnNlKGNv
CiAgICAgaWYgKCFrZXlWYWx1ZSkKICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKENvbnRl
bnRFeHRlbnNpb25FcnJvcjo6SlNPTkFkZE9yUmVwbGFjZVBhcmFtZXRlcnNLZXlWYWx1ZU5vdEFE
aWN0aW9uYXJ5KTsKIAotICAgIFN0cmluZyBrZXkgPSBrZXlWYWx1ZS0+Z2V0U3RyaW5nKCJrZXki
KTsKKyAgICBTdHJpbmcga2V5ID0ga2V5VmFsdWUtPmdldFN0cmluZygia2V5Il9zKTsKICAgICBp
ZiAoIWtleSkKICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKENvbnRlbnRFeHRlbnNpb25F
cnJvcjo6SlNPTkFkZE9yUmVwbGFjZVBhcmFtZXRlcnNLZXlWYWx1ZU1pc3NpbmdLZXlTdHJpbmcp
OwogCi0gICAgU3RyaW5nIHZhbHVlID0ga2V5VmFsdWUtPmdldFN0cmluZygidmFsdWUiKTsKKyAg
ICBTdHJpbmcgdmFsdWUgPSBrZXlWYWx1ZS0+Z2V0U3RyaW5nKCJ2YWx1ZSJfcyk7CiAgICAgaWYg
KCF2YWx1ZSkKICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKENvbnRlbnRFeHRlbnNpb25F
cnJvcjo6SlNPTkFkZE9yUmVwbGFjZVBhcmFtZXRlcnNLZXlWYWx1ZU1pc3NpbmdWYWx1ZVN0cmlu
Zyk7CiAKICAgICBib29sIHJlcGxhY2VPbmx5IHsgZmFsc2UgfTsKLSAgICBpZiAoYXV0byBib29s
ZWFuID0ga2V5VmFsdWUtPmdldEJvb2xlYW4oInJlcGxhY2Utb25seSIpKQorICAgIGlmIChhdXRv
IGJvb2xlYW4gPSBrZXlWYWx1ZS0+Z2V0Qm9vbGVhbigicmVwbGFjZS1vbmx5Il9zKSkKICAgICAg
ICAgcmVwbGFjZU9ubHkgPSAqYm9vbGVhbjsKIAogICAgIHJldHVybiB7IHsgV1RGTW92ZShrZXkp
LCByZXBsYWNlT25seSwgV1RGTW92ZSh2YWx1ZSkgfSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkNvbXBpbGVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25Db21waWxlci5j
cHAKaW5kZXggY2ZlYmY1YzMwNzhhOTQxZDE5Yzc5YTI5MmM0NzBjOWViYmYyODJjZi4uZTg3MjFk
NGE3NDc5ZWQ2ODMwMTdmMGE0ODVlODQ2YTMyOWM5MGUwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkNvbXBpbGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uQ29tcGls
ZXIuY3BwCkBAIC0zMTYsNyArMzE2LDcgQEAgc3RkOjplcnJvcl9jb2RlIGNvbXBpbGVSdWxlTGlz
dChDb250ZW50RXh0ZW5zaW9uQ29tcGlsYXRpb25DbGllbnQmIGNsaWVudCwgU3RyaW4KICAgICAg
ICAgICAgIHN0YXR1cyA9IFVSTEZpbHRlclBhcnNlcjo6T2s7CiAgICAgICAgIH0KICAgICAgICAg
aWYgKHN0YXR1cyAhPSBVUkxGaWx0ZXJQYXJzZXI6Ok9rKSB7Ci0gICAgICAgICAgICBkYXRhTG9n
RigiRXJyb3Igd2hpbGUgcGFyc2luZyAlczogJXNcbiIsIHRyaWdnZXIudXJsRmlsdGVyLnV0Zjgo
KS5kYXRhKCksIFVSTEZpbHRlclBhcnNlcjo6c3RhdHVzU3RyaW5nKHN0YXR1cykudXRmOCgpLmRh
dGEoKSk7CisgICAgICAgICAgICBkYXRhTG9nRigiRXJyb3Igd2hpbGUgcGFyc2luZyAlczogJXNc
biIsIHRyaWdnZXIudXJsRmlsdGVyLnV0ZjgoKS5kYXRhKCksIFVSTEZpbHRlclBhcnNlcjo6c3Rh
dHVzU3RyaW5nKHN0YXR1cykuY2hhcmFjdGVycygpKTsKICAgICAgICAgICAgIHJldHVybiBDb250
ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkUmVnZXg7CiAgICAgICAgIH0KIApAQCAtMzMz
LDcgKzMzMyw3IEBAIHN0ZDo6ZXJyb3JfY29kZSBjb21waWxlUnVsZUxpc3QoQ29udGVudEV4dGVu
c2lvbkNvbXBpbGF0aW9uQ2xpZW50JiBjbGllbnQsIFN0cmluCiAgICAgICAgICAgICAgICAgICAg
IHN0YXR1cyA9IFVSTEZpbHRlclBhcnNlcjo6T2s7CiAgICAgICAgICAgICAgICAgfQogICAgICAg
ICAgICAgICAgIGlmIChzdGF0dXMgIT0gVVJMRmlsdGVyUGFyc2VyOjpPaykgewotICAgICAgICAg
ICAgICAgICAgICBkYXRhTG9nRigiRXJyb3Igd2hpbGUgcGFyc2luZyAlczogJXNcbiIsIGNvbmRp
dGlvbi51dGY4KCkuZGF0YSgpLCBVUkxGaWx0ZXJQYXJzZXI6OnN0YXR1c1N0cmluZyhzdGF0dXMp
LnV0ZjgoKS5kYXRhKCkpOworICAgICAgICAgICAgICAgICAgICBkYXRhTG9nRigiRXJyb3Igd2hp
bGUgcGFyc2luZyAlczogJXNcbiIsIGNvbmRpdGlvbi51dGY4KCkuZGF0YSgpLCBVUkxGaWx0ZXJQ
YXJzZXI6OnN0YXR1c1N0cmluZyhzdGF0dXMpLmNoYXJhY3RlcnMoKSk7CiAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkUmVnZXg7CiAg
ICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAtMzQ0LDcgKzM0NCw3
IEBAIHN0ZDo6ZXJyb3JfY29kZSBjb21waWxlUnVsZUxpc3QoQ29udGVudEV4dGVuc2lvbkNvbXBp
bGF0aW9uQ2xpZW50JiBjbGllbnQsIFN0cmluCiAgICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9
IFVSTEZpbHRlclBhcnNlcjo6T2s7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAg
IGlmIChzdGF0dXMgIT0gVVJMRmlsdGVyUGFyc2VyOjpPaykgewotICAgICAgICAgICAgICAgICAg
ICBkYXRhTG9nRigiRXJyb3Igd2hpbGUgcGFyc2luZyAlczogJXNcbiIsIGNvbmRpdGlvbi51dGY4
KCkuZGF0YSgpLCBVUkxGaWx0ZXJQYXJzZXI6OnN0YXR1c1N0cmluZyhzdGF0dXMpLnV0ZjgoKS5k
YXRhKCkpOworICAgICAgICAgICAgICAgICAgICBkYXRhTG9nRigiRXJyb3Igd2hpbGUgcGFyc2lu
ZyAlczogJXNcbiIsIGNvbmRpdGlvbi51dGY4KCkuZGF0YSgpLCBVUkxGaWx0ZXJQYXJzZXI6OnN0
YXR1c1N0cmluZyhzdGF0dXMpLmNoYXJhY3RlcnMoKSk7CiAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkUmVnZXg7CiAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvblBhcnNlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uUGFyc2VyLmNwcAppbmRl
eCA1MTNmZDkzOWU2NmRiNWNhMjUxMjlmNTc2Yjk4MmI0ZjhjOTgyNGUxLi43NDQxNjVmMGI1MjAx
NWNjZWZkNzdmNjg3Y2U1M2NjMDVjMWIxNTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
b250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uUGFyc2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uUGFyc2VyLmNwcApAQCAt
OTMsNyArOTMsNyBAQCBzdGF0aWMgRXhwZWN0ZWQ8VmVjdG9yPFN0cmluZz4sIHN0ZDo6ZXJyb3Jf
Y29kZT4gZ2V0RG9tYWluTGlzdChjb25zdCBKU09OOjpBcnJheQogICAgICAgICAgICAgeyAnJCcs
ICJcXCQiIH0KICAgICAgICAgfSB9OwogICAgICAgICBmb3IgKGF1dG8mIHBhaXIgOiBlc2NhcGVU
YWJsZSkKLSAgICAgICAgICAgIGRvbWFpbiA9IGRvbWFpbi5yZXBsYWNlKHBhaXIuZmlyc3QsIHBh
aXIuc2Vjb25kKTsKKyAgICAgICAgICAgIGRvbWFpbiA9IGRvbWFpbi5yZXBsYWNlKHBhaXIuZmly
c3QsIFN0cmluZyB7IHBhaXIuc2Vjb25kIH0pOwogCiAgICAgICAgIGNvbnN0IGNoYXIqIHByb3Rv
Y29sUmVnZXggPSAiW2Etel1bYS16Ky4tXSo6XFwvXFwvIjsKICAgICAgICAgY29uc3QgY2hhciog
YWxsb3dTdWJkb21haW5zUmVnZXggPSAiKC4qXFwuKSoiOwpAQCAtMTE5LDI3ICsxMTksMjcgQEAg
c3RhdGljIHN0ZDo6ZXJyb3JfY29kZSBnZXRUeXBlRmxhZ3MoY29uc3QgSlNPTjo6QXJyYXkmIGFy
cmF5LCBSZXNvdXJjZUZsYWdzJiBmbGEKICAgICAKIHN0YXRpYyBFeHBlY3RlZDxUcmlnZ2VyLCBz
dGQ6OmVycm9yX2NvZGU+IGxvYWRUcmlnZ2VyKGNvbnN0IEpTT046Ok9iamVjdCYgcnVsZU9iamVj
dCkKIHsKLSAgICBhdXRvIHRyaWdnZXJPYmplY3QgPSBydWxlT2JqZWN0LmdldE9iamVjdCgidHJp
Z2dlciIpOworICAgIGF1dG8gdHJpZ2dlck9iamVjdCA9IHJ1bGVPYmplY3QuZ2V0T2JqZWN0KCJ0
cmlnZ2VyIl9zKTsKICAgICBpZiAoIXRyaWdnZXJPYmplY3QpCiAgICAgICAgIHJldHVybiBtYWtl
VW5leHBlY3RlZChDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkVHJpZ2dlcik7CiAK
LSAgICBTdHJpbmcgdXJsRmlsdGVyID0gdHJpZ2dlck9iamVjdC0+Z2V0U3RyaW5nKCJ1cmwtZmls
dGVyIik7CisgICAgU3RyaW5nIHVybEZpbHRlciA9IHRyaWdnZXJPYmplY3QtPmdldFN0cmluZygi
dXJsLWZpbHRlciJfcyk7CiAgICAgaWYgKHVybEZpbHRlci5pc0VtcHR5KCkpCiAgICAgICAgIHJl
dHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkVVJM
RmlsdGVySW5UcmlnZ2VyKTsKIAogICAgIFRyaWdnZXIgdHJpZ2dlcjsKICAgICB0cmlnZ2VyLnVy
bEZpbHRlciA9IHVybEZpbHRlcjsKIAotICAgIGlmIChzdGQ6Om9wdGlvbmFsPGJvb2w+IHVybEZp
bHRlckNhc2VTZW5zaXRpdmVWYWx1ZSA9IHRyaWdnZXJPYmplY3QtPmdldEJvb2xlYW4oInVybC1m
aWx0ZXItaXMtY2FzZS1zZW5zaXRpdmUiKSkKKyAgICBpZiAoc3RkOjpvcHRpb25hbDxib29sPiB1
cmxGaWx0ZXJDYXNlU2Vuc2l0aXZlVmFsdWUgPSB0cmlnZ2VyT2JqZWN0LT5nZXRCb29sZWFuKCJ1
cmwtZmlsdGVyLWlzLWNhc2Utc2Vuc2l0aXZlIl9zKSkKICAgICAgICAgdHJpZ2dlci51cmxGaWx0
ZXJJc0Nhc2VTZW5zaXRpdmUgPSAqdXJsRmlsdGVyQ2FzZVNlbnNpdGl2ZVZhbHVlOwogCi0gICAg
aWYgKHN0ZDo6b3B0aW9uYWw8Ym9vbD4gdG9wVVJMRmlsdGVyQ2FzZVNlbnNpdGl2ZVZhbHVlID0g
dHJpZ2dlck9iamVjdC0+Z2V0Qm9vbGVhbigidG9wLXVybC1maWx0ZXItaXMtY2FzZS1zZW5zaXRp
dmUiKSkKKyAgICBpZiAoc3RkOjpvcHRpb25hbDxib29sPiB0b3BVUkxGaWx0ZXJDYXNlU2Vuc2l0
aXZlVmFsdWUgPSB0cmlnZ2VyT2JqZWN0LT5nZXRCb29sZWFuKCJ0b3AtdXJsLWZpbHRlci1pcy1j
YXNlLXNlbnNpdGl2ZSJfcykpCiAgICAgICAgIHRyaWdnZXIudG9wVVJMRmlsdGVySXNDYXNlU2Vu
c2l0aXZlID0gKnRvcFVSTEZpbHRlckNhc2VTZW5zaXRpdmVWYWx1ZTsKIAotICAgIGlmIChzdGQ6
Om9wdGlvbmFsPGJvb2w+IGZyYW1lVVJMRmlsdGVyQ2FzZVNlbnNpdGl2ZVZhbHVlID0gdHJpZ2dl
ck9iamVjdC0+Z2V0Qm9vbGVhbigiZnJhbWUtdXJsLWZpbHRlci1pcy1jYXNlLXNlbnNpdGl2ZSIp
KQorICAgIGlmIChzdGQ6Om9wdGlvbmFsPGJvb2w+IGZyYW1lVVJMRmlsdGVyQ2FzZVNlbnNpdGl2
ZVZhbHVlID0gdHJpZ2dlck9iamVjdC0+Z2V0Qm9vbGVhbigiZnJhbWUtdXJsLWZpbHRlci1pcy1j
YXNlLXNlbnNpdGl2ZSJfcykpCiAgICAgICAgIHRyaWdnZXIuZnJhbWVVUkxGaWx0ZXJJc0Nhc2VT
ZW5zaXRpdmUgPSAqZnJhbWVVUkxGaWx0ZXJDYXNlU2Vuc2l0aXZlVmFsdWU7CiAKLSAgICBpZiAo
YXV0byByZXNvdXJjZVR5cGVWYWx1ZSA9IHRyaWdnZXJPYmplY3QtPmdldFZhbHVlKCJyZXNvdXJj
ZS10eXBlIikpIHsKKyAgICBpZiAoYXV0byByZXNvdXJjZVR5cGVWYWx1ZSA9IHRyaWdnZXJPYmpl
Y3QtPmdldFZhbHVlKCJyZXNvdXJjZS10eXBlIl9zKSkgewogICAgICAgICBhdXRvIHJlc291cmNl
VHlwZUFycmF5ID0gcmVzb3VyY2VUeXBlVmFsdWUtPmFzQXJyYXkoKTsKICAgICAgICAgaWYgKCFy
ZXNvdXJjZVR5cGVBcnJheSkKICAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChDb250
ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkVHJpZ2dlckZsYWdzQXJyYXkpOwpAQCAtMTQ3
LDcgKzE0Nyw3IEBAIHN0YXRpYyBFeHBlY3RlZDxUcmlnZ2VyLCBzdGQ6OmVycm9yX2NvZGU+IGxv
YWRUcmlnZ2VyKGNvbnN0IEpTT046Ok9iamVjdCYgcnVsZU9iCiAgICAgICAgICAgICByZXR1cm4g
bWFrZVVuZXhwZWN0ZWQoZXJyb3IpOwogICAgIH0KIAotICAgIGlmIChhdXRvIGxvYWRUeXBlVmFs
dWUgPSB0cmlnZ2VyT2JqZWN0LT5nZXRWYWx1ZSgibG9hZC10eXBlIikpIHsKKyAgICBpZiAoYXV0
byBsb2FkVHlwZVZhbHVlID0gdHJpZ2dlck9iamVjdC0+Z2V0VmFsdWUoImxvYWQtdHlwZSJfcykp
IHsKICAgICAgICAgYXV0byBsb2FkVHlwZUFycmF5ID0gbG9hZFR5cGVWYWx1ZS0+YXNBcnJheSgp
OwogICAgICAgICBpZiAoIWxvYWRUeXBlQXJyYXkpCiAgICAgICAgICAgICByZXR1cm4gbWFrZVVu
ZXhwZWN0ZWQoQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZFRyaWdnZXJGbGFnc0Fy
cmF5KTsKQEAgLTE1NSw3ICsxNTUsNyBAQCBzdGF0aWMgRXhwZWN0ZWQ8VHJpZ2dlciwgc3RkOjpl
cnJvcl9jb2RlPiBsb2FkVHJpZ2dlcihjb25zdCBKU09OOjpPYmplY3QmIHJ1bGVPYgogICAgICAg
ICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKGVycm9yKTsKICAgICB9CiAKLSAgICBpZiAoYXV0
byBsb2FkQ29udGV4dFZhbHVlID0gdHJpZ2dlck9iamVjdC0+Z2V0VmFsdWUoImxvYWQtY29udGV4
dCIpKSB7CisgICAgaWYgKGF1dG8gbG9hZENvbnRleHRWYWx1ZSA9IHRyaWdnZXJPYmplY3QtPmdl
dFZhbHVlKCJsb2FkLWNvbnRleHQiX3MpKSB7CiAgICAgICAgIGF1dG8gbG9hZENvbnRleHRBcnJh
eSA9IGxvYWRDb250ZXh0VmFsdWUtPmFzQXJyYXkoKTsKICAgICAgICAgaWYgKCFsb2FkQ29udGV4
dEFycmF5KQogICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKENvbnRlbnRFeHRlbnNp
b25FcnJvcjo6SlNPTkludmFsaWRUcmlnZ2VyRmxhZ3NBcnJheSk7CkBAIC0yMTIsMTEgKzIxMiwx
MSBAQCBib29sIGlzVmFsaWRDU1NTZWxlY3Rvcihjb25zdCBTdHJpbmcmIHNlbGVjdG9yKQogCiBz
dGF0aWMgc3RkOjpvcHRpb25hbDxFeHBlY3RlZDxBY3Rpb24sIHN0ZDo6ZXJyb3JfY29kZT4+IGxv
YWRBY3Rpb24oY29uc3QgSlNPTjo6T2JqZWN0JiBydWxlT2JqZWN0LCBjb25zdCBTdHJpbmcmIHVy
bEZpbHRlcikKIHsKLSAgICBhdXRvIGFjdGlvbk9iamVjdCA9IHJ1bGVPYmplY3QuZ2V0T2JqZWN0
KCJhY3Rpb24iKTsKKyAgICBhdXRvIGFjdGlvbk9iamVjdCA9IHJ1bGVPYmplY3QuZ2V0T2JqZWN0
KCJhY3Rpb24iX3MpOwogICAgIGlmICghYWN0aW9uT2JqZWN0KQogICAgICAgICByZXR1cm4gbWFr
ZVVuZXhwZWN0ZWQoQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZEFjdGlvbik7CiAK
LSAgICBTdHJpbmcgYWN0aW9uVHlwZSA9IGFjdGlvbk9iamVjdC0+Z2V0U3RyaW5nKCJ0eXBlIik7
CisgICAgU3RyaW5nIGFjdGlvblR5cGUgPSBhY3Rpb25PYmplY3QtPmdldFN0cmluZygidHlwZSJf
cyk7CiAKICAgICBpZiAoYWN0aW9uVHlwZSA9PSAiYmxvY2siKQogICAgICAgICByZXR1cm4gQWN0
aW9uIHsgQmxvY2tMb2FkQWN0aW9uKCkgfTsKQEAgLTIyNSw3ICsyMjUsNyBAQCBzdGF0aWMgc3Rk
OjpvcHRpb25hbDxFeHBlY3RlZDxBY3Rpb24sIHN0ZDo6ZXJyb3JfY29kZT4+IGxvYWRBY3Rpb24o
Y29uc3QgSlNPTjo6TwogICAgIGlmIChhY3Rpb25UeXBlID09ICJibG9jay1jb29raWVzIikKICAg
ICAgICAgcmV0dXJuIEFjdGlvbiB7IEJsb2NrQ29va2llc0FjdGlvbigpIH07CiAgICAgaWYgKGFj
dGlvblR5cGUgPT0gImNzcy1kaXNwbGF5LW5vbmUiKSB7Ci0gICAgICAgIFN0cmluZyBzZWxlY3Rv
clN0cmluZyA9IGFjdGlvbk9iamVjdC0+Z2V0U3RyaW5nKCJzZWxlY3RvciIpOworICAgICAgICBT
dHJpbmcgc2VsZWN0b3JTdHJpbmcgPSBhY3Rpb25PYmplY3QtPmdldFN0cmluZygic2VsZWN0b3Ii
X3MpOwogICAgICAgICBpZiAoIXNlbGVjdG9yU3RyaW5nKQogICAgICAgICAgICAgcmV0dXJuIG1h
a2VVbmV4cGVjdGVkKENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWRDU1NEaXNwbGF5
Tm9uZUFjdGlvblR5cGUpOwogICAgICAgICBpZiAoIWlzVmFsaWRDU1NTZWxlY3RvcihzZWxlY3Rv
clN0cmluZykpCkBAIC0yMzUsNyArMjM1LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8RXhwZWN0
ZWQ8QWN0aW9uLCBzdGQ6OmVycm9yX2NvZGU+PiBsb2FkQWN0aW9uKGNvbnN0IEpTT046Ok8KICAg
ICBpZiAoYWN0aW9uVHlwZSA9PSAibWFrZS1odHRwcyIpCiAgICAgICAgIHJldHVybiBBY3Rpb24g
eyBNYWtlSFRUUFNBY3Rpb24oKSB9OwogICAgIGlmIChhY3Rpb25UeXBlID09ICJub3RpZnkiKSB7
Ci0gICAgICAgIFN0cmluZyBub3RpZmljYXRpb24gPSBhY3Rpb25PYmplY3QtPmdldFN0cmluZygi
bm90aWZpY2F0aW9uIik7CisgICAgICAgIFN0cmluZyBub3RpZmljYXRpb24gPSBhY3Rpb25PYmpl
Y3QtPmdldFN0cmluZygibm90aWZpY2F0aW9uIl9zKTsKICAgICAgICAgaWYgKCFub3RpZmljYXRp
b24pCiAgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoQ29udGVudEV4dGVuc2lvbkVy
cm9yOjpKU09OSW52YWxpZE5vdGlmaWNhdGlvbik7CiAgICAgICAgIHJldHVybiBBY3Rpb24geyBO
b3RpZnlBY3Rpb24geyB7IFdURk1vdmUobm90aWZpY2F0aW9uKSB9IH0gfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL1NlcmlhbGl6ZWRORkEuY3BwIGIvU291
cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvU2VyaWFsaXplZE5GQS5jcHAKaW5kZXggMDRj
NmRhNWE4NDhkMDg5MWYzM2Y0ZjgzOWRhOTUyYjhjNzY3OWEwOS4uMDUyYjU5N2JjZmI5MmE3NDM3
OTNmOTE1ZWQ2OTZlN2EwZTllNDhmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY29udGVu
dGV4dGVuc2lvbnMvU2VyaWFsaXplZE5GQS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY29udGVu
dGV4dGVuc2lvbnMvU2VyaWFsaXplZE5GQS5jcHAKQEAgLTUyLDcgKzUyLDcgQEAgYm9vbCB3cml0
ZUFsbFRvRmlsZShGaWxlU3lzdGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGUgZmlsZSwgY29uc3QgVCYg
Y29udGFpbmVyKQogc3RkOjpvcHRpb25hbDxTZXJpYWxpemVkTkZBPiBTZXJpYWxpemVkTkZBOjpz
ZXJpYWxpemUoTkZBJiYgbmZhKQogewogICAgIGF1dG8gZmlsZSA9IEZpbGVTeXN0ZW06OmludmFs
aWRQbGF0Zm9ybUZpbGVIYW5kbGU7Ci0gICAgYXV0byBmaWxlbmFtZSA9IEZpbGVTeXN0ZW06Om9w
ZW5UZW1wb3JhcnlGaWxlKCJTZXJpYWxpemVkTkZBIiwgZmlsZSk7CisgICAgYXV0byBmaWxlbmFt
ZSA9IEZpbGVTeXN0ZW06Om9wZW5UZW1wb3JhcnlGaWxlKCJTZXJpYWxpemVkTkZBIl9zLCBmaWxl
KTsKICAgICBpZiAoIUZpbGVTeXN0ZW06OmlzSGFuZGxlVmFsaWQoZmlsZSkpCiAgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRl
eHRlbnNpb25zL1VSTEZpbHRlclBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0
ZW5zaW9ucy9VUkxGaWx0ZXJQYXJzZXIuY3BwCmluZGV4IGQ4NzI5ZDM5MGQ5MDczMGEwZWI3ZGIz
YThjOWYxNzE4Yzg2ZjdhM2EuLjRmZjEyMjVmYWE4MjI4NWIzMWNlZDU3NTlkYjg5Nzc2OTE4OWU3
NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL1VSTEZpbHRl
clBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvVVJMRmls
dGVyUGFyc2VyLmNwcApAQCAtMzY5LDM5ICszNjksMzkgQEAgVVJMRmlsdGVyUGFyc2VyOjpQYXJz
ZVN0YXR1cyBVUkxGaWx0ZXJQYXJzZXI6OmFkZFBhdHRlcm4oY29uc3QgU3RyaW5nJiBwYXR0ZXJu
LAogICAgIHJldHVybiBzdGF0dXM7CiB9CiAKLVN0cmluZyBVUkxGaWx0ZXJQYXJzZXI6OnN0YXR1
c1N0cmluZyhQYXJzZVN0YXR1cyBzdGF0dXMpCitBU0NJSUxpdGVyYWwgVVJMRmlsdGVyUGFyc2Vy
OjpzdGF0dXNTdHJpbmcoUGFyc2VTdGF0dXMgc3RhdHVzKQogewogICAgIHN3aXRjaCAoc3RhdHVz
KSB7CiAgICAgY2FzZSBPazoKLSAgICAgICAgcmV0dXJuICJPayI7CisgICAgICAgIHJldHVybiAi
T2siX3M7CiAgICAgY2FzZSBNYXRjaGVzRXZlcnl0aGluZzoKLSAgICAgICAgcmV0dXJuICJNYXRj
aGVzIGV2ZXJ5dGhpbmcuIjsKKyAgICAgICAgcmV0dXJuICJNYXRjaGVzIGV2ZXJ5dGhpbmcuIl9z
OwogICAgIGNhc2UgTm9uQVNDSUk6Ci0gICAgICAgIHJldHVybiAiT25seSBBU0NJSSBjaGFyYWN0
ZXJzIGFyZSBzdXBwb3J0ZWQgaW4gcGF0dGVybi4iOworICAgICAgICByZXR1cm4gIk9ubHkgQVND
SUkgY2hhcmFjdGVycyBhcmUgc3VwcG9ydGVkIGluIHBhdHRlcm4uIl9zOwogICAgIGNhc2UgVW5z
dXBwb3J0ZWRDaGFyYWN0ZXJDbGFzczoKLSAgICAgICAgcmV0dXJuICJDaGFyYWN0ZXIgY2xhc3Mg
aXMgbm90IHN1cHBvcnRlZC4iOworICAgICAgICByZXR1cm4gIkNoYXJhY3RlciBjbGFzcyBpcyBu
b3Qgc3VwcG9ydGVkLiJfczsKICAgICBjYXNlIEJhY2tSZWZlcmVuY2U6Ci0gICAgICAgIHJldHVy
biAiUGF0dGVybnMgY2Fubm90IGNvbnRhaW4gYmFja3JlZmVyZW5jZXMuIjsKKyAgICAgICAgcmV0
dXJuICJQYXR0ZXJucyBjYW5ub3QgY29udGFpbiBiYWNrcmVmZXJlbmNlcy4iX3M7CiAgICAgY2Fz
ZSBGb3J3YXJkUmVmZXJlbmNlOgotICAgICAgICByZXR1cm4gIlBhdHRlcm5zIGNhbm5vdCBjb250
YWluIGZvcndhcmQgcmVmZXJlbmNlcy4iOworICAgICAgICByZXR1cm4gIlBhdHRlcm5zIGNhbm5v
dCBjb250YWluIGZvcndhcmQgcmVmZXJlbmNlcy4iX3M7CiAgICAgY2FzZSBNaXNwbGFjZWRTdGFy
dE9mTGluZToKLSAgICAgICAgcmV0dXJuICJTdGFydCBvZiBsaW5lIGFzc2VydGlvbiBjYW4gb25s
eSBhcHBlYXIgYXMgdGhlIGZpcnN0IHRlcm0gaW4gYSBmaWx0ZXIuIjsKKyAgICAgICAgcmV0dXJu
ICJTdGFydCBvZiBsaW5lIGFzc2VydGlvbiBjYW4gb25seSBhcHBlYXIgYXMgdGhlIGZpcnN0IHRl
cm0gaW4gYSBmaWx0ZXIuIl9zOwogICAgIGNhc2UgV29yZEJvdW5kYXJ5OgotICAgICAgICByZXR1
cm4gIldvcmQgYm91bmRhcmllcyBhc3NlcnRpb25zIGFyZSBub3Qgc3VwcG9ydGVkIHlldC4iOwor
ICAgICAgICByZXR1cm4gIldvcmQgYm91bmRhcmllcyBhc3NlcnRpb25zIGFyZSBub3Qgc3VwcG9y
dGVkIHlldC4iX3M7CiAgICAgY2FzZSBBdG9tQ2hhcmFjdGVyOgotICAgICAgICByZXR1cm4gIkJ1
aWx0aW5zIGNoYXJhY3RlciBjbGFzcyBhdG9tcyBhcmUgbm90IHN1cHBvcnRlZCB5ZXQuIjsKKyAg
ICAgICAgcmV0dXJuICJCdWlsdGlucyBjaGFyYWN0ZXIgY2xhc3MgYXRvbXMgYXJlIG5vdCBzdXBw
b3J0ZWQgeWV0LiJfczsKICAgICBjYXNlIEdyb3VwOgotICAgICAgICByZXR1cm4gIkdyb3VwcyBh
cmUgbm90IHN1cHBvcnRlZCB5ZXQuIjsKKyAgICAgICAgcmV0dXJuICJHcm91cHMgYXJlIG5vdCBz
dXBwb3J0ZWQgeWV0LiJfczsKICAgICBjYXNlIERpc2p1bmN0aW9uOgotICAgICAgICByZXR1cm4g
IkRpc2p1bmN0aW9ucyBhcmUgbm90IHN1cHBvcnRlZCB5ZXQuIjsKKyAgICAgICAgcmV0dXJuICJE
aXNqdW5jdGlvbnMgYXJlIG5vdCBzdXBwb3J0ZWQgeWV0LiJfczsKICAgICBjYXNlIE1pc3BsYWNl
ZEVuZE9mTGluZToKLSAgICAgICAgcmV0dXJuICJUaGUgZW5kIG9mIGxpbmUgYXNzZXJ0aW9uIG11
c3QgYmUgdGhlIGxhc3QgdGVybSBpbiBhbiBleHByZXNzaW9uLiI7CisgICAgICAgIHJldHVybiAi
VGhlIGVuZCBvZiBsaW5lIGFzc2VydGlvbiBtdXN0IGJlIHRoZSBsYXN0IHRlcm0gaW4gYW4gZXhw
cmVzc2lvbi4iX3M7CiAgICAgY2FzZSBFbXB0eVBhdHRlcm46Ci0gICAgICAgIHJldHVybiAiRW1w
dHkgcGF0dGVybi4iOworICAgICAgICByZXR1cm4gIkVtcHR5IHBhdHRlcm4uIl9zOwogICAgIGNh
c2UgWWFyckVycm9yOgotICAgICAgICByZXR1cm4gIkludGVybmFsIGVycm9yIGluIFlBUlIuIjsK
KyAgICAgICAgcmV0dXJuICJJbnRlcm5hbCBlcnJvciBpbiBZQVJSLiJfczsKICAgICBjYXNlIElu
dmFsaWRRdWFudGlmaWVyOgotICAgICAgICByZXR1cm4gIkFyYml0cmFyeSBhdG9tIHJlcGV0aXRp
b25zIGFyZSBub3Qgc3VwcG9ydGVkLiI7CisgICAgICAgIHJldHVybiAiQXJiaXRyYXJ5IGF0b20g
cmVwZXRpdGlvbnMgYXJlIG5vdCBzdXBwb3J0ZWQuIl9zOwogICAgIH0KIAogICAgIFJFTEVBU0Vf
QVNTRVJUX05PVF9SRUFDSEVEKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50
ZXh0ZW5zaW9ucy9VUkxGaWx0ZXJQYXJzZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRl
bnNpb25zL1VSTEZpbHRlclBhcnNlci5oCmluZGV4IGI1YzFmNmQ5ZmQyZTdjOTRjYjI1NjU3NTY4
OWRmNGI3MDcwNzlhOWQuLjg4OTgzYjU1YzNjYmVkNTlmNGE0YTAxYWVkMjVhNDMyYzgwMjhiNDEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL1VSTEZpbHRlclBh
cnNlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL1VSTEZpbHRlclBh
cnNlci5oCkBAIC01NCw3ICs1NCw3IEBAIHB1YmxpYzoKICAgICAgICAgWWFyckVycm9yLAogICAg
ICAgICBJbnZhbGlkUXVhbnRpZmllciwKICAgICB9OwotICAgIHN0YXRpYyBTdHJpbmcgc3RhdHVz
U3RyaW5nKFBhcnNlU3RhdHVzKTsKKyAgICBzdGF0aWMgQVNDSUlMaXRlcmFsIHN0YXR1c1N0cmlu
ZyhQYXJzZVN0YXR1cyk7CiAgICAgZXhwbGljaXQgVVJMRmlsdGVyUGFyc2VyKENvbWJpbmVkVVJM
RmlsdGVycyYpOwogICAgIH5VUkxGaWx0ZXJQYXJzZXIoKTsKICAgICBQYXJzZVN0YXR1cyBhZGRQ
YXR0ZXJuKGNvbnN0IFN0cmluZyYgcGF0dGVybiwgYm9vbCBwYXR0ZXJuSXNDYXNlU2Vuc2l0aXZl
LCB1aW50NjRfdCBwYXR0ZXJuSWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRv
L1N1YnRsZUNyeXB0by5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vU3VidGxlQ3J5cHRvLmNw
cAppbmRleCBlYWEzMjE4ZmNmN2I3Nzg1NGZiMjM4NWU1MDFhOTk5NDM2ZmJlYjU4Li45ZDZmNDMw
MzY1OTgyZDZlOTUwZTljMWE2YTFkNmIyYzFhN2QzOTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jcnlwdG8vU3VidGxlQ3J5cHRvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8v
U3VidGxlQ3J5cHRvLmNwcApAQCAtNTM0LDcgKzUzNCw3IEBAIHZvaWQgU3VidGxlQ3J5cHRvOjph
ZGRBdXRoZW50aWNhdGVkRW5jcnlwdGlvbldhcm5pbmdJZk5lY2Vzc2FyeShDcnlwdG9BbGdvcml0
aG1JCiB7CiAgICAgaWYgKGFsZ29yaXRobUlkZW50aWZpZXIgPT0gQ3J5cHRvQWxnb3JpdGhtSWRl
bnRpZmllcjo6QUVTX0NCQyB8fCBhbGdvcml0aG1JZGVudGlmaWVyID09IENyeXB0b0FsZ29yaXRo
bUlkZW50aWZpZXI6OkFFU19DVFIpIHsKICAgICAgICAgaWYgKCFzY3JpcHRFeGVjdXRpb25Db250
ZXh0KCktPmhhc0xvZ2dlZEF1dGhlbnRpY2F0ZWRFbmNyeXB0aW9uV2FybmluZygpKSB7Ci0gICAg
ICAgICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmFkZENvbnNvbGVNZXNzYWdlKE1lc3Nh
Z2VTb3VyY2U6OlNlY3VyaXR5LCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsICJBRVMtQ0JDIGFuZCBB
RVMtQ1RSIGRvIG5vdCBwcm92aWRlIGF1dGhlbnRpY2F0aW9uIGJ5IGRlZmF1bHQsIGFuZCBpbXBs
ZW1lbnRpbmcgaXQgbWFudWFsbHkgY2FuIHJlc3VsdCBpbiBtaW5vciwgYnV0IHNlcmlvdXMgbWlz
dGFrZXMuIFdlIHJlY29tbWVuZGVkIHVzaW5nIGF1dGhlbnRpY2F0ZWQgZW5jcnlwdGlvbiBsaWtl
IEFFUy1HQ00gdG8gcHJvdGVjdCBhZ2FpbnN0IGNob3Nlbi1jaXBoZXJ0ZXh0IGF0dGFja3MuIik7
CisgICAgICAgICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmFkZENvbnNvbGVNZXNzYWdl
KE1lc3NhZ2VTb3VyY2U6OlNlY3VyaXR5LCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsICJBRVMtQ0JD
IGFuZCBBRVMtQ1RSIGRvIG5vdCBwcm92aWRlIGF1dGhlbnRpY2F0aW9uIGJ5IGRlZmF1bHQsIGFu
ZCBpbXBsZW1lbnRpbmcgaXQgbWFudWFsbHkgY2FuIHJlc3VsdCBpbiBtaW5vciwgYnV0IHNlcmlv
dXMgbWlzdGFrZXMuIFdlIHJlY29tbWVuZGVkIHVzaW5nIGF1dGhlbnRpY2F0ZWQgZW5jcnlwdGlv
biBsaWtlIEFFUy1HQ00gdG8gcHJvdGVjdCBhZ2FpbnN0IGNob3Nlbi1jaXBoZXJ0ZXh0IGF0dGFj
a3MuIl9zKTsKICAgICAgICAgICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+c2V0SGFzTG9n
Z2VkQXV0aGVudGljYXRlZEVuY3J5cHRpb25XYXJuaW5nKHRydWUpOwogICAgICAgICB9CiAgICAg
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxn
b3JpdGhtQUVTX0NCQy5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRv
QWxnb3JpdGhtQUVTX0NCQy5oCmluZGV4IDI3MzI5ODViNzdmZWRmYzM5Njc0ZDQ3NDlkODk1NTBh
MGExNzFjMjYuLmI3NDQzYTczMzk4NDIwODhmODNjY2M2ZjM1Y2EyOTc3MTYwOGNjZmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFF
U19DQkMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdv
cml0aG1BRVNfQ0JDLmgKQEAgLTQxLDcgKzQxLDcgQEAgcHVibGljOgogICAgICAgICBObwogICAg
IH07CiAKLSAgICBzdGF0aWMgY29uc3RleHByIGNvbnN0IGNoYXIqIHNfbmFtZSA9ICJBRVMtQ0JD
IjsKKyAgICBzdGF0aWMgY29uc3RleHByIEFTQ0lJTGl0ZXJhbCBzX25hbWUgPSAiQUVTLUNCQyJf
czsKICAgICBzdGF0aWMgY29uc3RleHByIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgc19pZGVu
dGlmaWVyID0gQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6QUVTX0NCQzsKICAgICBzdGF0aWMg
UmVmPENyeXB0b0FsZ29yaXRobT4gY3JlYXRlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DRkIuaCBiL1NvdXJjZS9X
ZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DRkIuaAppbmRleCBj
MjI3NDE5MWY2MzViODMzYTQ5MWU4MmNiMWRlN2RhODEwM2M2ZDlhLi41MDhhMjAzMzY0YWNiYWNm
YzBmZmM4NTcyNzUyNzllZjU0NmNmYzg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlw
dG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfQ0ZCLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NGQi5oCkBAIC0zNiw3ICsz
Niw3IEBAIGNsYXNzIENyeXB0b0tleUFFUzsKIAogY2xhc3MgQ3J5cHRvQWxnb3JpdGhtQUVTX0NG
QiBmaW5hbCA6IHB1YmxpYyBDcnlwdG9BbGdvcml0aG0gewogcHVibGljOgotICAgIHN0YXRpYyBj
b25zdGV4cHIgY29uc3QgY2hhciogc19uYW1lID0gIkFFUy1DRkItOCI7CisgICAgc3RhdGljIGNv
bnN0ZXhwciBBU0NJSUxpdGVyYWwgc19uYW1lID0gIkFFUy1DRkItOCJfczsKICAgICBzdGF0aWMg
Y29uc3RleHByIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgc19pZGVudGlmaWVyID0gQ3J5cHRv
QWxnb3JpdGhtSWRlbnRpZmllcjo6QUVTX0NGQjsKICAgICBzdGF0aWMgUmVmPENyeXB0b0FsZ29y
aXRobT4gY3JlYXRlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdv
cml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DVFIuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9h
bGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DVFIuaAppbmRleCA3MThmNmUwZTMzODZlNmZl
NjI1Mzk1YWZiYjc5YWQzMGM0ZmE0MTRhLi44YmQzOTMzOWRjMzYwMGY2YzQ4NmVhNjEwYzFiODI0
NmI4YzIyNzAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9D
cnlwdG9BbGdvcml0aG1BRVNfQ1RSLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29y
aXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NUUi5oCkBAIC02NCw3ICs2NCw3IEBAIHB1YmxpYzoK
ICAgICAgICAgY29uc3Qgc2l6ZV90IG1fY291bnRlckxlbmd0aDsKICAgICB9OwogCi0gICAgc3Rh
dGljIGNvbnN0ZXhwciBjb25zdCBjaGFyKiBzX25hbWUgPSAiQUVTLUNUUiI7CisgICAgc3RhdGlj
IGNvbnN0ZXhwciBBU0NJSUxpdGVyYWwgc19uYW1lID0gIkFFUy1DVFIiX3M7CiAgICAgc3RhdGlj
IGNvbnN0ZXhwciBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIHNfaWRlbnRpZmllciA9IENyeXB0
b0FsZ29yaXRobUlkZW50aWZpZXI6OkFFU19DVFI7CiAgICAgc3RhdGljIFJlZjxDcnlwdG9BbGdv
cml0aG0+IGNyZWF0ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxn
b3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfR0NNLmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8v
YWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfR0NNLmgKaW5kZXggZDBhZDFmMTNjMTc4YjVj
YzliMTc2ZWIzMGU2Y2VjMmExYmNiNDY1OC4uNTMzMTBlMTExMDc1ZTE2MzRlZjNlMDU3YjRhZGY2
YTEzYzY5MjMxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMv
Q3J5cHRvQWxnb3JpdGhtQUVTX0dDTS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdv
cml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19HQ00uaApAQCAtMzYsNyArMzYsNyBAQCBjbGFzcyBD
cnlwdG9LZXlBRVM7CiAKIGNsYXNzIENyeXB0b0FsZ29yaXRobUFFU19HQ00gZmluYWwgOiBwdWJs
aWMgQ3J5cHRvQWxnb3JpdGhtIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3RleHByIGNvbnN0
IGNoYXIqIHNfbmFtZSA9ICJBRVMtR0NNIjsKKyAgICBzdGF0aWMgY29uc3RleHByIEFTQ0lJTGl0
ZXJhbCBzX25hbWUgPSAiQUVTLUdDTSJfczsKICAgICBzdGF0aWMgY29uc3RleHByIENyeXB0b0Fs
Z29yaXRobUlkZW50aWZpZXIgc19pZGVudGlmaWVyID0gQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmll
cjo6QUVTX0dDTTsKICAgICBzdGF0aWMgUmVmPENyeXB0b0FsZ29yaXRobT4gY3JlYXRlKCk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29y
aXRobUFFU19LVy5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxn
b3JpdGhtQUVTX0tXLmgKaW5kZXggNTdlNjljMTVjMTJjN2VlMThlYjc2NTE4ZGZmODdiZjRiNTcy
NGI5OS4uYTA4ZGVjM2YyNmNiYjU5OTE1NGEyMzU2NTkwZWYwZmQxNzdjNjNkYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0tX
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGht
QUVTX0tXLmgKQEAgLTM1LDcgKzM1LDcgQEAgY2xhc3MgQ3J5cHRvS2V5QUVTOwogCiBjbGFzcyBD
cnlwdG9BbGdvcml0aG1BRVNfS1cgZmluYWwgOiBwdWJsaWMgQ3J5cHRvQWxnb3JpdGhtIHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgY29uc3RleHByIGNvbnN0IGNoYXIqIHNfbmFtZSA9ICJBRVMtS1ci
OworICAgIHN0YXRpYyBjb25zdGV4cHIgQVNDSUlMaXRlcmFsIHNfbmFtZSA9ICJBRVMtS1ciX3M7
CiAgICAgc3RhdGljIGNvbnN0ZXhwciBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIHNfaWRlbnRp
ZmllciA9IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkFFU19LVzsKICAgICBzdGF0aWMgUmVm
PENyeXB0b0FsZ29yaXRobT4gY3JlYXRlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUVDREguaCBiL1NvdXJjZS9XZWJDb3Jl
L2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUVDREguaAppbmRleCA5M2ExNWEyZGEz
NTFkY2U3Mjc0MzM4MTk3ZDI2NjMxMDU4NWY3YmY1Li4zMmQ1NTQ1NmM5NzA4MjVjY2U1NTJkN2Rl
MDQzYTQyOTUwZDBlMjNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3Jp
dGhtcy9DcnlwdG9BbGdvcml0aG1FQ0RILmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2Fs
Z29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtRUNESC5oCkBAIC0zNSw3ICszNSw3IEBAIGNsYXNzIENy
eXB0b0tleUVDOwogCiBjbGFzcyBDcnlwdG9BbGdvcml0aG1FQ0RIIGZpbmFsIDogcHVibGljIENy
eXB0b0FsZ29yaXRobSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBjb25zdCBjaGFy
KiBzX25hbWUgPSAiRUNESCI7CisgICAgc3RhdGljIGNvbnN0ZXhwciBBU0NJSUxpdGVyYWwgc19u
YW1lID0gIkVDREgiX3M7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBDcnlwdG9BbGdvcml0aG1JZGVu
dGlmaWVyIHNfaWRlbnRpZmllciA9IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkVDREg7CiAg
ICAgc3RhdGljIFJlZjxDcnlwdG9BbGdvcml0aG0+IGNyZWF0ZSgpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1FQ0RTQS5oIGIv
U291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtRUNEU0EuaApp
bmRleCAzYTU5MWJkZmFmMjI4ODUwZGU4YzA4MmJmMjc3YTE5MDA2Mzg5ZTY2Li5iN2M3ODg5Zjhl
MDMyMTM0YzNkZTAzYjdhYWJmNzVjNTJmODJiZDNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1FQ0RTQS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUVDRFNBLmgKQEAgLTM2LDcg
KzM2LDcgQEAgY2xhc3MgQ3J5cHRvS2V5RUM7CiAKIGNsYXNzIENyeXB0b0FsZ29yaXRobUVDRFNB
IGZpbmFsIDogcHVibGljIENyeXB0b0FsZ29yaXRobSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNv
bnN0ZXhwciBjb25zdCBjaGFyKiBzX25hbWUgPSAiRUNEU0EiOworICAgIHN0YXRpYyBjb25zdGV4
cHIgQVNDSUlMaXRlcmFsIHNfbmFtZSA9ICJFQ0RTQSJfczsKICAgICBzdGF0aWMgY29uc3RleHBy
IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgc19pZGVudGlmaWVyID0gQ3J5cHRvQWxnb3JpdGht
SWRlbnRpZmllcjo6RUNEU0E7CiAgICAgc3RhdGljIFJlZjxDcnlwdG9BbGdvcml0aG0+IGNyZWF0
ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9Dcnlw
dG9BbGdvcml0aG1IS0RGLmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9Dcnlw
dG9BbGdvcml0aG1IS0RGLmgKaW5kZXggMWRkY2Q5ZDFhMTQ2MzE2MDMyMWIxMTZhZTc0ZDlhMzZk
OWNiMWQ2YS4uOGYzOTM5YjE5YjRlYzkyODY3ODA3M2YyNzQ2YTk1YjBlZjNiMzVhMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtSEtE
Ri5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRo
bUhLREYuaApAQCAtMzYsNyArMzYsNyBAQCBjbGFzcyBDcnlwdG9LZXlSYXc7CiAKIGNsYXNzIENy
eXB0b0FsZ29yaXRobUhLREYgZmluYWwgOiBwdWJsaWMgQ3J5cHRvQWxnb3JpdGhtIHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgY29uc3RleHByIGNvbnN0IGNoYXIqIHNfbmFtZSA9ICJIS0RGIjsKKyAg
ICBzdGF0aWMgY29uc3RleHByIEFTQ0lJTGl0ZXJhbCBzX25hbWUgPSAiSEtERiJfczsKICAgICBz
dGF0aWMgY29uc3RleHByIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgc19pZGVudGlmaWVyID0g
Q3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6SEtERjsKICAgICBzdGF0aWMgUmVmPENyeXB0b0Fs
Z29yaXRobT4gY3JlYXRlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9h
bGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUhNQUMuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9h
bGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUhNQUMuaAppbmRleCBmYThmMGFkZGNjZTEyOGYyNDcx
NTE3M2ZhZmJmYTkyNzMyNTI1MGQzLi45ZjEwODQ2OThhYjQzZjdlNWVkOTliYmNhZDg1ZjgxMWFh
YmI1YzIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9Dcnlw
dG9BbGdvcml0aG1ITUFDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMv
Q3J5cHRvQWxnb3JpdGhtSE1BQy5oCkBAIC0zNSw3ICszNSw3IEBAIGNsYXNzIENyeXB0b0tleUhN
QUM7CiAKIGNsYXNzIENyeXB0b0FsZ29yaXRobUhNQUMgZmluYWwgOiBwdWJsaWMgQ3J5cHRvQWxn
b3JpdGhtIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3RleHByIGNvbnN0IGNoYXIqIHNfbmFt
ZSA9ICJITUFDIjsKKyAgICBzdGF0aWMgY29uc3RleHByIEFTQ0lJTGl0ZXJhbCBzX25hbWUgPSAi
SE1BQyJfczsKICAgICBzdGF0aWMgY29uc3RleHByIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIg
c19pZGVudGlmaWVyID0gQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6SE1BQzsKICAgICBzdGF0
aWMgUmVmPENyeXB0b0FsZ29yaXRobT4gY3JlYXRlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVBCS0RGMi5oIGIvU291cmNl
L1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUEJLREYyLmgKaW5kZXgg
YmQ5NzQ1YzcwMzU4ZTc4ZDUzYjQ4MGNjMjY2ZGM0NDk3NzhmYjg0Mi4uMzQwNjllNTFmYWFlNmEy
MDcyMjI5ODI4ZDE2ZDlhMzI5ZDVhOGJmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5
cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUEJLREYyLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUEJLREYyLmgKQEAgLTM2LDcgKzM2
LDcgQEAgY2xhc3MgQ3J5cHRvS2V5UmF3OwogCiBjbGFzcyBDcnlwdG9BbGdvcml0aG1QQktERjIg
ZmluYWwgOiBwdWJsaWMgQ3J5cHRvQWxnb3JpdGhtIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29u
c3RleHByIGNvbnN0IGNoYXIqIHNfbmFtZSA9ICJQQktERjIiOworICAgIHN0YXRpYyBjb25zdGV4
cHIgQVNDSUlMaXRlcmFsIHNfbmFtZSA9ICJQQktERjIiX3M7CiAgICAgc3RhdGljIGNvbnN0ZXhw
ciBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIHNfaWRlbnRpZmllciA9IENyeXB0b0FsZ29yaXRo
bUlkZW50aWZpZXI6OlBCS0RGMjsKICAgICBzdGF0aWMgUmVmPENyeXB0b0FsZ29yaXRobT4gY3Jl
YXRlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0Ny
eXB0b0FsZ29yaXRobVJTQUVTX1BLQ1MxX3YxXzUuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9h
bGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQUVTX1BLQ1MxX3YxXzUuaAppbmRleCA4YjUxYjQx
ZTdjMGE1N2Y2NjhmNTg0NzlmYTI5ZTYzOGU5ZTFhZDBiLi5kMjFlNmMxZWUyODZmN2RjNjM4NzVh
OTg0YWIyM2U3MDA0ZWUxODgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxn
b3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FFU19QS0NTMV92MV81LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBRVNfUEtDUzFfdjFfNS5o
CkBAIC0zNSw3ICszNSw3IEBAIGNsYXNzIENyeXB0b0tleVJTQTsKIAogY2xhc3MgQ3J5cHRvQWxn
b3JpdGhtUlNBRVNfUEtDUzFfdjFfNSBmaW5hbCA6IHB1YmxpYyBDcnlwdG9BbGdvcml0aG0gewog
cHVibGljOgotICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3QgY2hhciogc19uYW1lID0gIlJTQUVT
LVBLQ1MxLXYxXzUiOworICAgIHN0YXRpYyBjb25zdGV4cHIgQVNDSUlMaXRlcmFsIHNfbmFtZSA9
ICJSU0FFUy1QS0NTMS12MV81Il9zOwogICAgIHN0YXRpYyBjb25zdGV4cHIgQ3J5cHRvQWxnb3Jp
dGhtSWRlbnRpZmllciBzX2lkZW50aWZpZXIgPSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpS
U0FFU19QS0NTMV92MV81OwogICAgIHN0YXRpYyBSZWY8Q3J5cHRvQWxnb3JpdGhtPiBjcmVhdGUo
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRv
QWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzUuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdv
cml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81LmgKaW5kZXggZDliN2I0NTA3
MjNhZmNkYTk5OTk1Y2I4ODNjZGEzOWNhZjMyOGRjZS4uZDE4NWQzYTRiZGEyZGEzN2NkYjBkZjI4
ZjY4YTI3M2RkZTk5Yjg2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29y
aXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNS5o
CkBAIC0zNSw3ICszNSw3IEBAIGNsYXNzIENyeXB0b0tleVJTQTsKIAogY2xhc3MgQ3J5cHRvQWxn
b3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzUgZmluYWwgOiBwdWJsaWMgQ3J5cHRvQWxnb3JpdGhtIHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3RleHByIGNvbnN0IGNoYXIqIHNfbmFtZSA9ICJSU0FT
U0EtUEtDUzEtdjFfNSI7CisgICAgc3RhdGljIGNvbnN0ZXhwciBBU0NJSUxpdGVyYWwgc19uYW1l
ID0gIlJTQVNTQS1QS0NTMS12MV81Il9zOwogICAgIHN0YXRpYyBjb25zdGV4cHIgQ3J5cHRvQWxn
b3JpdGhtSWRlbnRpZmllciBzX2lkZW50aWZpZXIgPSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVy
OjpSU0FTU0FfUEtDUzFfdjFfNTsKICAgICBzdGF0aWMgUmVmPENyeXB0b0FsZ29yaXRobT4gY3Jl
YXRlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0Ny
eXB0b0FsZ29yaXRobVJTQV9PQUVQLmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGht
cy9DcnlwdG9BbGdvcml0aG1SU0FfT0FFUC5oCmluZGV4IDA5NmFmM2NhMjMwNzk1OWYyNDU0ZWUz
Y2ZkMmIzZjBlMjJiNDczZjIuLmRiYTdlYTlkNWQ3MjJlNDI3YTNiMGFhNGY5ZGNkMzJmZjQ0NTlm
MmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0Fs
Z29yaXRobVJTQV9PQUVQLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMv
Q3J5cHRvQWxnb3JpdGhtUlNBX09BRVAuaApAQCAtMzYsNyArMzYsNyBAQCBjbGFzcyBDcnlwdG9L
ZXlSU0E7CiAKIGNsYXNzIENyeXB0b0FsZ29yaXRobVJTQV9PQUVQIGZpbmFsIDogcHVibGljIENy
eXB0b0FsZ29yaXRobSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBjb25zdCBjaGFy
KiBzX25hbWUgPSAiUlNBLU9BRVAiOworICAgIHN0YXRpYyBjb25zdGV4cHIgQVNDSUlMaXRlcmFs
IHNfbmFtZSA9ICJSU0EtT0FFUCJfczsKICAgICBzdGF0aWMgY29uc3RleHByIENyeXB0b0FsZ29y
aXRobUlkZW50aWZpZXIgc19pZGVudGlmaWVyID0gQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6
UlNBX09BRVA7CiAgICAgc3RhdGljIFJlZjxDcnlwdG9BbGdvcml0aG0+IGNyZWF0ZSgpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0
aG1SU0FfUFNTLmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdv
cml0aG1SU0FfUFNTLmgKaW5kZXggNTg3OWE1NjdjY2NjN2IwYTFjOWFkNGQ5MTc4OWQ5ZDA1NGIw
MDk3NC4uYjFmN2Y3NzJjZTQyMjc4ZDRkOTRkNWMwYTc2Y2FlNWVkZjBlNDBlYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBX1BT
Uy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRo
bVJTQV9QU1MuaApAQCAtMzYsNyArMzYsNyBAQCBjbGFzcyBDcnlwdG9LZXlSU0E7CiAKIGNsYXNz
IENyeXB0b0FsZ29yaXRobVJTQV9QU1MgZmluYWwgOiBwdWJsaWMgQ3J5cHRvQWxnb3JpdGhtIHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3RleHByIGNvbnN0IGNoYXIqIHNfbmFtZSA9ICJSU0Et
UFNTIjsKKyAgICBzdGF0aWMgY29uc3RleHByIEFTQ0lJTGl0ZXJhbCBzX25hbWUgPSAiUlNBLVBT
UyJfczsKICAgICBzdGF0aWMgY29uc3RleHByIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgc19p
ZGVudGlmaWVyID0gQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6UlNBX1BTUzsKICAgICBzdGF0
aWMgUmVmPENyeXB0b0FsZ29yaXRobT4gY3JlYXRlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTEuaCBiL1NvdXJjZS9X
ZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTEuaAppbmRleCBkODA3
YWJiOTc0Y2JhYWMzYjBhN2JjN2FkODY1OGZjYWZiNWFkNmFlLi4xZmQ3NzVhODEzNjQzYzFiMmZh
Y2M3ZDNjOTQwOWQzMmZlMWNlODU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8v
YWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEExLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5
cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMS5oCkBAIC0zMyw3ICszMyw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ3J5cHRvQWxnb3JpdGhtU0hBMSBmaW5hbCA6IHB1
YmxpYyBDcnlwdG9BbGdvcml0aG0gewogcHVibGljOgotICAgIHN0YXRpYyBjb25zdGV4cHIgY29u
c3QgY2hhciogc19uYW1lID0gIlNIQS0xIjsKKyAgICBzdGF0aWMgY29uc3RleHByIEFTQ0lJTGl0
ZXJhbCBzX25hbWUgPSAiU0hBLTEiX3M7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBDcnlwdG9BbGdv
cml0aG1JZGVudGlmaWVyIHNfaWRlbnRpZmllciA9IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6
OlNIQV8xOwogICAgIHN0YXRpYyBSZWY8Q3J5cHRvQWxnb3JpdGhtPiBjcmVhdGUoKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGht
U0hBMjI0LmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0
aG1TSEEyMjQuaAppbmRleCA3ODA0YmFjZmYyNTcyZDhkYzY1MTEwMDQwNGY5MDViZjkzYmZjNGM2
Li40OTNlMTYyYWIzNjUyZTY2YzM1MDRhOGQ3OTVjMjg2OWQ0ZGRjZWM5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEyMjQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEy
MjQuaApAQCAtMzMsNyArMzMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENyeXB0
b0FsZ29yaXRobVNIQTIyNCBmaW5hbCA6IHB1YmxpYyBDcnlwdG9BbGdvcml0aG0gewogcHVibGlj
OgotICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3QgY2hhciogc19uYW1lID0gIlNIQS0yMjQiOwor
ICAgIHN0YXRpYyBjb25zdGV4cHIgQVNDSUlMaXRlcmFsIHNfbmFtZSA9ICJTSEEtMjI0Il9zOwog
ICAgIHN0YXRpYyBjb25zdGV4cHIgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBzX2lkZW50aWZp
ZXIgPSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpTSEFfMjI0OwogICAgIHN0YXRpYyBSZWY8
Q3J5cHRvQWxnb3JpdGhtPiBjcmVhdGUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMjU2LmggYi9Tb3VyY2UvV2ViQ29y
ZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEyNTYuaAppbmRleCBjZTI0MDRj
NzRkNTVjOGYyNzQ0MDVlNTZmNGQ1OGE3ZmY2MTYxNWY5Li5mNWE4NTQzYzgyYzU1NDhlZTQyYjNi
OTMyNzExZTY4NTVlZjhmMGY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxn
b3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEyNTYuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlw
dG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEyNTYuaApAQCAtMzMsNyArMzMsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENyeXB0b0FsZ29yaXRobVNIQTI1NiBmaW5hbCA6
IHB1YmxpYyBDcnlwdG9BbGdvcml0aG0gewogcHVibGljOgotICAgIHN0YXRpYyBjb25zdGV4cHIg
Y29uc3QgY2hhciogc19uYW1lID0gIlNIQS0yNTYiOworICAgIHN0YXRpYyBjb25zdGV4cHIgQVND
SUlMaXRlcmFsIHNfbmFtZSA9ICJTSEEtMjU2Il9zOwogICAgIHN0YXRpYyBjb25zdCBDcnlwdG9B
bGdvcml0aG1JZGVudGlmaWVyIHNfaWRlbnRpZmllciA9IENyeXB0b0FsZ29yaXRobUlkZW50aWZp
ZXI6OlNIQV8yNTY7CiAgICAgc3RhdGljIFJlZjxDcnlwdG9BbGdvcml0aG0+IGNyZWF0ZSgpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdv
cml0aG1TSEEzODQuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0Fs
Z29yaXRobVNIQTM4NC5oCmluZGV4IDZjYzU3NDkxMzI2YTAwOGU0MjZmMjY5MjEzODlhZDZmNGM0
YmY4NDkuLmU1YmYyMjMyYWNmMmRhNmExMDA2ZWE1MjAxOTM0MDhiMTgwNWYyYzMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTM4
NC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRo
bVNIQTM4NC5oCkBAIC0zMyw3ICszMyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3Mg
Q3J5cHRvQWxnb3JpdGhtU0hBMzg0IGZpbmFsIDogcHVibGljIENyeXB0b0FsZ29yaXRobSB7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBjb25zdCBjaGFyKiBzX25hbWUgPSAiU0hBLTM4
NCI7CisgICAgc3RhdGljIGNvbnN0ZXhwciBBU0NJSUxpdGVyYWwgc19uYW1lID0gIlNIQS0zODQi
X3M7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIHNfaWRl
bnRpZmllciA9IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlNIQV8zODQ7CiAgICAgc3RhdGlj
IFJlZjxDcnlwdG9BbGdvcml0aG0+IGNyZWF0ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEE1MTIuaCBiL1NvdXJjZS9X
ZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTUxMi5oCmluZGV4IDBk
NGEwYjk2YjY0MmE0Y2RmYTdiZjk5MGE5N2VmNzNiOGI3NjEzZjguLjA1Zjk4ZmM0YTg2NjZkYWZk
YTYwNTlhMTRmZTVlMTczN2E0YTc0MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0
by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTUxMi5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTUxMi5oCkBAIC0zMyw3ICszMyw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ3J5cHRvQWxnb3JpdGhtU0hBNTEyIGZp
bmFsIDogcHVibGljIENyeXB0b0FsZ29yaXRobSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0
ZXhwciBjb25zdCBjaGFyKiBzX25hbWUgPSAiU0hBLTUxMiI7CisgICAgc3RhdGljIGNvbnN0ZXhw
ciBBU0NJSUxpdGVyYWwgc19uYW1lID0gIlNIQS01MTIiX3M7CiAgICAgc3RhdGljIGNvbnN0ZXhw
ciBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIHNfaWRlbnRpZmllciA9IENyeXB0b0FsZ29yaXRo
bUlkZW50aWZpZXI6OlNIQV81MTI7CiAgICAgc3RhdGljIFJlZjxDcnlwdG9BbGdvcml0aG0+IGNy
ZWF0ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9L
ZXlBRVMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5QUVTLmNwcApp
bmRleCA0MmZlM2E0YmU1MjE4MTk5NzM0ZGVkZDAzYWI3Yzk3MWYzMDExYWQ0Li5jNzZjODYzZDVh
ZmM1YTQxNWIwNjU1ODg1MGQzMDc1MjBjMGM2N2NlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlBRVMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0
by9rZXlzL0NyeXB0b0tleUFFUy5jcHAKQEAgLTEwNiw3ICsxMDYsNyBAQCBSZWZQdHI8Q3J5cHRv
S2V5QUVTPiBDcnlwdG9LZXlBRVM6OmltcG9ydEp3ayhDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVy
IGFsZ29yaXRobQogSnNvbldlYktleSBDcnlwdG9LZXlBRVM6OmV4cG9ydEp3aygpIGNvbnN0CiB7
CiAgICAgSnNvbldlYktleSByZXN1bHQ7Ci0gICAgcmVzdWx0Lmt0eSA9ICJvY3QiOworICAgIHJl
c3VsdC5rdHkgPSAib2N0Il9zOwogICAgIHJlc3VsdC5rID0gYmFzZTY0VVJMRW5jb2RlVG9TdHJp
bmcobV9rZXkpOwogICAgIHJlc3VsdC5rZXlfb3BzID0gdXNhZ2VzKCk7CiAgICAgcmVzdWx0LmV4
dCA9IGV4dHJhY3RhYmxlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5
cy9DcnlwdG9LZXlFQy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlF
Qy5jcHAKaW5kZXggZDM2ZDM0MGY3MGE4ZjRhMTdmZjVmNjE5Y2ViMWQ5ZDg0NWNhMmEzMy4uZmNl
ODJiZWU5MWNhYjc0MjYyMDQwMGRjYTc3MzA1YzE3ZjY4NTIwMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5RUMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2NyeXB0by9rZXlzL0NyeXB0b0tleUVDLmNwcApAQCAtMTQ4LDcgKzE0OCw3IEBAIEV4Y2VwdGlv
bk9yPFZlY3Rvcjx1aW50OF90Pj4gQ3J5cHRvS2V5RUM6OmV4cG9ydFJhdygpIGNvbnN0CiBFeGNl
cHRpb25PcjxKc29uV2ViS2V5PiBDcnlwdG9LZXlFQzo6ZXhwb3J0SndrKCkgY29uc3QKIHsKICAg
ICBKc29uV2ViS2V5IHJlc3VsdDsKLSAgICByZXN1bHQua3R5ID0gIkVDIjsKKyAgICByZXN1bHQu
a3R5ID0gIkVDIl9zOwogICAgIHN3aXRjaCAobV9jdXJ2ZSkgewogICAgIGNhc2UgTmFtZWRDdXJ2
ZTo6UDI1NjoKICAgICAgICAgcmVzdWx0LmNydiA9IFAyNTY7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlITUFDLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Ny
eXB0by9rZXlzL0NyeXB0b0tleUhNQUMuY3BwCmluZGV4IDQzNGYyNDA0NTVkYzhjZTM0MWUwMDU0
MDNiZjA1Y2I5MDAzN2QxNDkuLjI1NDNlZDU0NjU3ZTdhZTNmMmY3OTk2Yzc4NDQzZGZiMDlhNzI3
YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleUhNQUMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleUhNQUMuY3BwCkBA
IC0xMjEsNyArMTIxLDcgQEAgUmVmUHRyPENyeXB0b0tleUhNQUM+IENyeXB0b0tleUhNQUM6Omlt
cG9ydEp3ayhzaXplX3QgbGVuZ3RoQml0cywgQ3J5cHRvQWxnb3JpdGgKIEpzb25XZWJLZXkgQ3J5
cHRvS2V5SE1BQzo6ZXhwb3J0SndrKCkgY29uc3QKIHsKICAgICBKc29uV2ViS2V5IHJlc3VsdDsK
LSAgICByZXN1bHQua3R5ID0gIm9jdCI7CisgICAgcmVzdWx0Lmt0eSA9ICJvY3QiX3M7CiAgICAg
cmVzdWx0LmsgPSBiYXNlNjRVUkxFbmNvZGVUb1N0cmluZyhtX2tleSk7CiAgICAgcmVzdWx0Lmtl
eV9vcHMgPSB1c2FnZXMoKTsKICAgICByZXN1bHQuZXh0ID0gZXh0cmFjdGFibGUoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleVJTQS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlSU0EuY3BwCmluZGV4IDZiYmYxNGYyNDYw
YjNkMWY1MDQ4OGFmMzkyOTcwOWY3NDIxNmVlMjQuLjA1ODFkNjcwNzJjYjkzNjZkMzc3NTQyMjY4
YTQ4ZmZkYTA2MzlhNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0Ny
eXB0b0tleVJTQS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5
UlNBLmNwcApAQCAtMTMzLDcgKzEzMyw3IEBAIFJlZlB0cjxDcnlwdG9LZXlSU0E+IENyeXB0b0tl
eVJTQTo6aW1wb3J0SndrKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgYWxnb3JpdGhtCiBKc29u
V2ViS2V5IENyeXB0b0tleVJTQTo6ZXhwb3J0SndrKCkgY29uc3QKIHsKICAgICBKc29uV2ViS2V5
IHJlc3VsdDsKLSAgICByZXN1bHQua3R5ID0gIlJTQSI7CisgICAgcmVzdWx0Lmt0eSA9ICJSU0Ei
X3M7CiAgICAgcmVzdWx0LmtleV9vcHMgPSB1c2FnZXMoKTsKICAgICByZXN1bHQuZXh0ID0gZXh0
cmFjdGFibGUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyaWRUZW1w
bGF0ZUFyZWFzVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyaWRUZW1wbGF0ZUFy
ZWFzVmFsdWUuY3BwCmluZGV4IGUwYjc4NjU5YWRiZDAxNDgzOWU1N2MwNjIxZGMxNjE5ZWY4MTMx
MDkuLmRmZDcyNTEzYmNkZjU0NjEwOWU2OTAyYjViZTliOTc5MmU2YTI3NGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmlkVGVtcGxhdGVBcmVhc1ZhbHVlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JpZFRlbXBsYXRlQXJlYXNWYWx1ZS5jcHAKQEAgLTYzLDcg
KzYzLDcgQEAgc3RhdGljIFN0cmluZyBzdHJpbmdGb3JQb3NpdGlvbihjb25zdCBOYW1lZEdyaWRB
cmVhTWFwJiBncmlkQXJlYU1hcCwgc2l6ZV90IHJvdywKICAgICAgICAgICAgIHJldHVybiBpdC5r
ZXk7CiAgICAgfQogCi0gICAgcmV0dXJuICIuIjsKKyAgICByZXR1cm4gIi4iX3M7CiB9CiAKIFN0
cmluZyBDU1NHcmlkVGVtcGxhdGVBcmVhc1ZhbHVlOjpjdXN0b21DU1NUZXh0KCkgY29uc3QKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwCmluZGV4IDc5ZWIyYTU2MjM3MDk0
YzRkMWJkMzYxYTBhNzNjYzU0OTU2NDhmN2UuLjZkYzgwYmEzMDJkYWVhYzczNWI4NzBlN2Y4MDcw
YWQxMDM0YjQ0MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVW
YWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcApA
QCAtMTI0Myw2NCArMTI0Myw2NCBAQCBORVZFUl9JTkxJTkUgU3RyaW5nIENTU1ByaW1pdGl2ZVZh
bHVlOjpmb3JtYXRJbnRlZ2VyVmFsdWUoU3RyaW5nVmlldyBzdWZmaXgpIGNvbgogU3RyaW5nIENT
U1ByaW1pdGl2ZVZhbHVlOjp1bml0VHlwZVN0cmluZyhDU1NVbml0VHlwZSB1bml0VHlwZSkKIHsK
ICAgICBzd2l0Y2ggKHVuaXRUeXBlKSB7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19Q
RVJDRU5UQUdFOiByZXR1cm4gIiUiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRU1T
OiByZXR1cm4gImVtIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0VYUzogcmV0dXJu
ICJleCI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19QWDogcmV0dXJuICJweCI7Ci0g
ICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19DTTogcmV0dXJuICJjbSI7Ci0gICAgICAgIGNh
c2UgQ1NTVW5pdFR5cGU6OkNTU19NTTogcmV0dXJuICJtbSI7Ci0gICAgICAgIGNhc2UgQ1NTVW5p
dFR5cGU6OkNTU19JTjogcmV0dXJuICJpbiI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNT
U19QVDogcmV0dXJuICJwdCI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19QQzogcmV0
dXJuICJwYyI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19ERUc6IHJldHVybiAiZGVn
IjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1JBRDogcmV0dXJuICJyYWQiOwotICAg
ICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfR1JBRDogcmV0dXJuICJncmFkIjsKLSAgICAgICAg
Y2FzZSBDU1NVbml0VHlwZTo6Q1NTX01TOiByZXR1cm4gIm1zIjsKLSAgICAgICAgY2FzZSBDU1NV
bml0VHlwZTo6Q1NTX1M6IHJldHVybiAicyI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNT
U19IWjogcmV0dXJuICJoeiI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19LSFo6IHJl
dHVybiAia2h6IjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZXOiByZXR1cm4gInZ3
IjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZIOiByZXR1cm4gInZoIjsKLSAgICAg
ICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZNSU46IHJldHVybiAidm1pbiI7Ci0gICAgICAgIGNh
c2UgQ1NTVW5pdFR5cGU6OkNTU19WTUFYOiByZXR1cm4gInZtYXgiOwotICAgICAgICBjYXNlIENT
U1VuaXRUeXBlOjpDU1NfVkI6IHJldHVybiAidmIiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfVkk6IHJldHVybiAidmkiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZX
OiByZXR1cm4gInN2dyI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVkg6IHJldHVy
biAic3ZoIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWTUlOOiByZXR1cm4gInN2
bWluIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWTUFYOiByZXR1cm4gInN2bWF4
IjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWQjogcmV0dXJuICJzdmIiOwotICAg
ICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZJOiByZXR1cm4gInN2aSI7Ci0gICAgICAgIGNh
c2UgQ1NTVW5pdFR5cGU6OkNTU19MVlc6IHJldHVybiAibHZ3IjsKLSAgICAgICAgY2FzZSBDU1NV
bml0VHlwZTo6Q1NTX0xWSDogcmV0dXJuICJsdmgiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfTFZNSU46IHJldHVybiAibHZtaW4iOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpD
U1NfTFZNQVg6IHJldHVybiAibHZtYXgiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1Nf
TFZCOiByZXR1cm4gImx2YiI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVkk6IHJl
dHVybiAibHZpIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWVzogcmV0dXJuICJk
dnciOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZIOiByZXR1cm4gImR2aCI7Ci0g
ICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVk1JTjogcmV0dXJuICJkdm1pbiI7Ci0gICAg
ICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVk1BWDogcmV0dXJuICJkdm1heCI7Ci0gICAgICAg
IGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVkI6IHJldHVybiAiZHZiIjsKLSAgICAgICAgY2FzZSBD
U1NVbml0VHlwZTo6Q1NTX0RWSTogcmV0dXJuICJkdmkiOwotICAgICAgICBjYXNlIENTU1VuaXRU
eXBlOjpDU1NfRFBQWDogcmV0dXJuICJkcHB4IjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6
Q1NTX1g6IHJldHVybiAieCI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EUEk6IHJl
dHVybiAiZHBpIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RQQ006IHJldHVybiAi
ZHBjbSI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19GUjogcmV0dXJuICJmciI7Ci0g
ICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19ROiByZXR1cm4gInEiOwotICAgICAgICBjYXNl
IENTU1VuaXRUeXBlOjpDU1NfTEhTOiByZXR1cm4gImxoIjsKLSAgICAgICAgY2FzZSBDU1NVbml0
VHlwZTo6Q1NTX1JMSFM6IHJldHVybiAicmxoIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6
Q1NTX1RVUk46IHJldHVybiAidHVybiI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19S
RU1TOiByZXR1cm4gInJlbSI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19DSFM6IHJl
dHVybiAiY2giOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfSUM6IHJldHVybiAiaWMi
OwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfQ1FXOiByZXR1cm4gImNxdyI7Ci0gICAg
ICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19DUUg6IHJldHVybiAiY3FoIjsKLSAgICAgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX0NRSTogcmV0dXJuICJjcWkiOwotICAgICAgICBjYXNlIENTU1Vu
aXRUeXBlOjpDU1NfQ1FCOiByZXR1cm4gImNxYiI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6
OkNTU19DUU1BWDogcmV0dXJuICJjcW1heCI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNT
U19DUU1JTjogcmV0dXJuICJjcW1pbiI7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19Q
RVJDRU5UQUdFOiByZXR1cm4gIiUiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19F
TVM6IHJldHVybiAiZW0iX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19FWFM6IHJl
dHVybiAiZXgiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19QWDogcmV0dXJuICJw
eCJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0NNOiByZXR1cm4gImNtIl9zOwor
ICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTU06IHJldHVybiAibW0iX3M7CisgICAgICAg
IGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19JTjogcmV0dXJuICJpbiJfczsKKyAgICAgICAgY2FzZSBD
U1NVbml0VHlwZTo6Q1NTX1BUOiByZXR1cm4gInB0Il9zOworICAgICAgICBjYXNlIENTU1VuaXRU
eXBlOjpDU1NfUEM6IHJldHVybiAicGMiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNT
U19ERUc6IHJldHVybiAiZGVnIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfUkFE
OiByZXR1cm4gInJhZCJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0dSQUQ6IHJl
dHVybiAiZ3JhZCJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX01TOiByZXR1cm4g
Im1zIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfUzogcmV0dXJuICJzIl9zOwor
ICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfSFo6IHJldHVybiAiaHoiX3M7CisgICAgICAg
IGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19LSFo6IHJldHVybiAia2h6Il9zOworICAgICAgICBjYXNl
IENTU1VuaXRUeXBlOjpDU1NfVlc6IHJldHVybiAidnciX3M7CisgICAgICAgIGNhc2UgQ1NTVW5p
dFR5cGU6OkNTU19WSDogcmV0dXJuICJ2aCJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6
Q1NTX1ZNSU46IHJldHVybiAidm1pbiJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NT
X1ZNQVg6IHJldHVybiAidm1heCJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZC
OiByZXR1cm4gInZiIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVkk6IHJldHVy
biAidmkiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVlc6IHJldHVybiAic3Z3
Il9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZIOiByZXR1cm4gInN2aCJfczsK
KyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWTUlOOiByZXR1cm4gInN2bWluIl9zOwor
ICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZNQVg6IHJldHVybiAic3ZtYXgiX3M7Cisg
ICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVkI6IHJldHVybiAic3ZiIl9zOworICAgICAg
ICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZJOiByZXR1cm4gInN2aSJfczsKKyAgICAgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX0xWVzogcmV0dXJuICJsdnciX3M7CisgICAgICAgIGNhc2UgQ1NT
VW5pdFR5cGU6OkNTU19MVkg6IHJldHVybiAibHZoIl9zOworICAgICAgICBjYXNlIENTU1VuaXRU
eXBlOjpDU1NfTFZNSU46IHJldHVybiAibHZtaW4iX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5
cGU6OkNTU19MVk1BWDogcmV0dXJuICJsdm1heCJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlw
ZTo6Q1NTX0xWQjogcmV0dXJuICJsdmIiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNT
U19MVkk6IHJldHVybiAibHZpIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZX
OiByZXR1cm4gImR2dyJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWSDogcmV0
dXJuICJkdmgiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVk1JTjogcmV0dXJu
ICJkdm1pbiJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWTUFYOiByZXR1cm4g
ImR2bWF4Il9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZCOiByZXR1cm4gImR2
YiJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWSTogcmV0dXJuICJkdmkiX3M7
CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EUFBYOiByZXR1cm4gImRwcHgiX3M7Cisg
ICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19YOiByZXR1cm4gIngiX3M7CisgICAgICAgIGNh
c2UgQ1NTVW5pdFR5cGU6OkNTU19EUEk6IHJldHVybiAiZHBpIl9zOworICAgICAgICBjYXNlIENT
U1VuaXRUeXBlOjpDU1NfRFBDTTogcmV0dXJuICJkcGNtIl9zOworICAgICAgICBjYXNlIENTU1Vu
aXRUeXBlOjpDU1NfRlI6IHJldHVybiAiZnIiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6
OkNTU19ROiByZXR1cm4gInEiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MSFM6
IHJldHVybiAibGgiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19STEhTOiByZXR1
cm4gInJsaCJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1RVUk46IHJldHVybiAi
dHVybiJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1JFTVM6IHJldHVybiAicmVt
Il9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfQ0hTOiByZXR1cm4gImNoIl9zOwor
ICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfSUM6IHJldHVybiAiaWMiX3M7CisgICAgICAg
IGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19DUVc6IHJldHVybiAiY3F3Il9zOworICAgICAgICBjYXNl
IENTU1VuaXRUeXBlOjpDU1NfQ1FIOiByZXR1cm4gImNxaCJfczsKKyAgICAgICAgY2FzZSBDU1NV
bml0VHlwZTo6Q1NTX0NRSTogcmV0dXJuICJjcWkiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5
cGU6OkNTU19DUUI6IHJldHVybiAiY3FiIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpD
U1NfQ1FNQVg6IHJldHVybiAiY3FtYXgiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNT
U19DUU1JTjogcmV0dXJuICJjcW1pbiJfczsKIAogICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpD
U1NfVU5LTk9XTjoKICAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX05VTUJFUjoKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdWJncmlkVmFsdWUuY3BwIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1N1YmdyaWRWYWx1ZS5jcHAKaW5kZXggNGY5ZDRhNjA0OGM2MTRjOGQwZmFm
NTQ4YmZjY2JhYWU0OGEwYzg2NS4uNmE3OTg1OWRhMjdkYWVhYWFhN2JjZjVmOTkxMmQzZTc3YzVi
ZDJiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N1YmdyaWRWYWx1ZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N1YmdyaWRWYWx1ZS5jcHAKQEAgLTM2LDcgKzM2
LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogU3RyaW5nIENTU1N1YmdyaWRWYWx1ZTo6Y3VzdG9t
Q1NTVGV4dCgpIGNvbnN0CiB7CiAgICAgaWYgKCFsZW5ndGgoKSkKLSAgICAgICAgcmV0dXJuICJz
dWJncmlkIjsKKyAgICAgICAgcmV0dXJuICJzdWJncmlkIl9zOwogICAgIHJldHVybiAic3ViZ3Jp
ZCAiICsgQ1NTVmFsdWVMaXN0OjpjdXN0b21DU1NUZXh0KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9ET01DU1NSZWdpc3RlckN1c3RvbVByb3BlcnR5LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9ET01DU1NSZWdpc3RlckN1c3RvbVByb3BlcnR5LmNwcAppbmRleCBjMmM4
MjUwYWIyMmQ4M2VkZDgyMjAwMTBiODJmNjI1MWRlN2I4OWY3Li45MmEyY2JjNDBmZDMxNjFlMGY5
ZmM3NWIxODhhMmQ5OGQzZTcxOTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9N
Q1NTUmVnaXN0ZXJDdXN0b21Qcm9wZXJ0eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0RP
TUNTU1JlZ2lzdGVyQ3VzdG9tUHJvcGVydHkuY3BwCkBAIC00NCw3ICs0NCw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIEV4Y2VwdGlvbk9yPHZvaWQ+IERPTUNTU1JlZ2lzdGVyQ3VzdG9tUHJvcGVy
dHk6OnJlZ2lzdGVyUHJvcGVydHkoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBET01DU1NDdXN0
b21Qcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCiB7CiAgICAgaWYgKCFpc0N1c3RvbVBy
b3BlcnR5TmFtZShkZXNjcmlwdG9yLm5hbWUpKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
U3ludGF4RXJyb3IsICJUaGUgbmFtZSBvZiB0aGlzIHByb3BlcnR5IGlzIG5vdCBhIGN1c3RvbSBw
cm9wZXJ0eSBuYW1lLiIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFN5bnRheEVycm9y
LCAiVGhlIG5hbWUgb2YgdGhpcyBwcm9wZXJ0eSBpcyBub3QgYSBjdXN0b20gcHJvcGVydHkgbmFt
ZS4iX3MgfTsKIAogICAgIFJlZlB0cjxDU1NDdXN0b21Qcm9wZXJ0eVZhbHVlPiBpbml0aWFsVmFs
dWU7CiAgICAgaWYgKCFkZXNjcmlwdG9yLmluaXRpYWxWYWx1ZS5pc0VtcHR5KCkpIHsKQEAgLTU5
LDcgKzU5LDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gRE9NQ1NTUmVnaXN0ZXJDdXN0b21Qcm9wZXJ0
eTo6cmVnaXN0ZXJQcm9wZXJ0eShEb2N1bWVudCYgZG9jdW0KICAgICAgICAgQ1NTUHJvcGVydHlQ
YXJzZXI6OmNvbGxlY3RQYXJzZWRDdXN0b21Qcm9wZXJ0eVZhbHVlRGVwZW5kZW5jaWVzKGRlc2Ny
aXB0b3Iuc3ludGF4LCBmYWxzZSwgZGVwZW5kZW5jaWVzLCB0b2tlbml6ZXIudG9rZW5SYW5nZSgp
LCBzdHJpY3RDU1NQYXJzZXJDb250ZXh0KCkpOwogCiAgICAgICAgIGlmICghZGVwZW5kZW5jaWVz
LmlzRW1wdHkoKSkKLSAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBTeW50YXhFcnJvciwg
IlRoZSBnaXZlbiBpbml0aWFsIHZhbHVlIG11c3QgYmUgY29tcHV0YXRpb25hbGx5IGluZGVwZW5k
ZW50LiIgfTsKKyAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBTeW50YXhFcnJvciwgIlRo
ZSBnaXZlbiBpbml0aWFsIHZhbHVlIG11c3QgYmUgY29tcHV0YXRpb25hbGx5IGluZGVwZW5kZW50
LiJfcyB9OwogCiAKICAgICAgICAgU3R5bGU6Ok1hdGNoUmVzdWx0IG1hdGNoUmVzdWx0OwpAQCAt
NzAsMTggKzcwLDE4IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IERPTUNTU1JlZ2lzdGVyQ3VzdG9tUHJv
cGVydHk6OnJlZ2lzdGVyUHJvcGVydHkoRG9jdW1lbnQmIGRvY3VtCiAgICAgICAgIGluaXRpYWxW
YWx1ZSA9IENTU1Byb3BlcnR5UGFyc2VyOjpwYXJzZVR5cGVkQ3VzdG9tUHJvcGVydHlWYWx1ZShk
ZXNjcmlwdG9yLm5hbWUsIGRlc2NyaXB0b3Iuc3ludGF4LCB0b2tlbml6ZXIudG9rZW5SYW5nZSgp
LCBkdW1teUJ1aWxkZXIuc3RhdGUoKSwgc3RyaWN0Q1NTUGFyc2VyQ29udGV4dCgpKTsKIAogICAg
ICAgICBpZiAoIWluaXRpYWxWYWx1ZSB8fCAhaW5pdGlhbFZhbHVlLT5pc1Jlc29sdmVkKCkpCi0g
ICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgU3ludGF4RXJyb3IsICJUaGUgZ2l2ZW4gaW5p
dGlhbCB2YWx1ZSBkb2VzIG5vdCBwYXJzZSBmb3IgdGhlIGdpdmVuIHN5bnRheC4iIH07CisgICAg
ICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgU3ludGF4RXJyb3IsICJUaGUgZ2l2ZW4gaW5pdGlh
bCB2YWx1ZSBkb2VzIG5vdCBwYXJzZSBmb3IgdGhlIGdpdmVuIHN5bnRheC4iX3MgfTsKIAogICAg
ICAgICBpbml0aWFsVmFsdWUtPmNvbGxlY3REaXJlY3RDb21wdXRhdGlvbmFsRGVwZW5kZW5jaWVz
KGRlcGVuZGVuY2llcyk7CiAgICAgICAgIGluaXRpYWxWYWx1ZS0+Y29sbGVjdERpcmVjdFJvb3RD
b21wdXRhdGlvbmFsRGVwZW5kZW5jaWVzKGRlcGVuZGVuY2llcyk7CiAKICAgICAgICAgaWYgKCFk
ZXBlbmRlbmNpZXMuaXNFbXB0eSgpKQotICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFN5
bnRheEVycm9yLCAiVGhlIGdpdmVuIGluaXRpYWwgdmFsdWUgbXVzdCBiZSBjb21wdXRhdGlvbmFs
bHkgaW5kZXBlbmRlbnQuIiB9OworICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFN5bnRh
eEVycm9yLCAiVGhlIGdpdmVuIGluaXRpYWwgdmFsdWUgbXVzdCBiZSBjb21wdXRhdGlvbmFsbHkg
aW5kZXBlbmRlbnQuIl9zIH07CiAgICAgfQogCiAgICAgQ1NTUmVnaXN0ZXJlZEN1c3RvbVByb3Bl
cnR5IHByb3BlcnR5IHsgZGVzY3JpcHRvci5uYW1lLCBkZXNjcmlwdG9yLnN5bnRheCwgZGVzY3Jp
cHRvci5pbmhlcml0cywgV1RGTW92ZShpbml0aWFsVmFsdWUpIH07CiAgICAgaWYgKCFkb2N1bWVu
dC5yZWdpc3RlckNTU1Byb3BlcnR5KFdURk1vdmUocHJvcGVydHkpKSkKLSAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IEludmFsaWRNb2RpZmljYXRpb25FcnJvciwgIlRoaXMgcHJvcGVydHkgaGFz
IGFscmVhZHkgYmVlbiByZWdpc3RlcmVkLiIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7
IEludmFsaWRNb2RpZmljYXRpb25FcnJvciwgIlRoaXMgcHJvcGVydHkgaGFzIGFscmVhZHkgYmVl
biByZWdpc3RlcmVkLiJfcyB9OwogCiAgICAgZG9jdW1lbnQuc3R5bGVTY29wZSgpLmRpZENoYW5n
ZVN0eWxlU2hlZXRFbnZpcm9ubWVudCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvRGVwcmVjYXRlZENTU09NVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0
ZWRDU1NPTVZhbHVlLmNwcAppbmRleCAyMzI1MDg0NWFiYTZiYzUzMjJiM2IzNzY5ZmI5M2MwZTY0
MGM3ZDgyLi41MDY3ZDBlNmM2MDFiZTJhMTMxM2YwODlhNjQwYWMxYTYyNmI5YjM1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZENTU09NVmFsdWUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01WYWx1ZS5jcHAKQEAgLTc2LDcgKzc2LDcg
QEAgU3RyaW5nIERlcHJlY2F0ZWRDU1NPTVZhbHVlOjpjc3NUZXh0KCkgY29uc3QKICAgICAgICAg
cmV0dXJuIGRvd25jYXN0PERlcHJlY2F0ZWRDU1NPTVZhbHVlTGlzdD4oKnRoaXMpLmNzc1RleHQo
KTsKICAgICB9CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuICIiOworICAg
IHJldHVybiBlbXB0eVN0cmluZygpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvRm9udEZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0ZvbnRGYWNlLmNwcAppbmRl
eCBlZmZkNjA3YzM0NmY5YmNmYmM5YzI4ODliZjgzMTY5NGRhMzQwMzA1Li40ZDUxMWI1ZTY4NTQx
MzA1ZDQwYzFjMzNiNzkwOWE2NTA2NTU2ZjYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvRm9udEZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9Gb250RmFjZS5jcHAKQEAg
LTM3NSw3ICszNzUsNyBAQCBTdHJpbmcgRm9udEZhY2U6OnVuaWNvZGVSYW5nZSgpIGNvbnN0CiAg
ICAgbV9iYWNraW5nLT51cGRhdGVTdHlsZUlmTmVlZGVkKCk7CiAgICAgY29uc3QgYXV0byYgcmFu
Z2VzV3JhcHBlZCA9IG1fYmFja2luZy0+cmFuZ2VzKCk7CiAgICAgaWYgKCFyYW5nZXNXcmFwcGVk
KQotICAgICAgICByZXR1cm4gIlUrMC0xMEZGRkYiOworICAgICAgICByZXR1cm4gIlUrMC0xMEZG
RkYiX3M7CiAgICAgYXV0byByYW5nZXMgPSByYW5nZXNXcmFwcGVkLnZhbHVlKCk7CiAgICAgaWYg
KCFyYW5nZXMuc2l6ZSgpKQogICAgICAgICByZXR1cm4gIlUrMC0xMEZGRkYiX3M7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV4cHJlc3Npb24uY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFeHByZXNzaW9uLmNwcAppbmRleCAwOGI3MDcwNjZiYTZk
ZmIyMTI3ZmNkYTkwODg5Mzc5MzUxMDgxNGU4Li4xYmRkYjU1M2U4ZmJhMmMyMjUzZTRkMTQ1NmY3
ODY5M2YzNjY5MzI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV4
cHJlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXhwcmVzc2lv
bi5jcHAKQEAgLTI3NCw3ICsyNzQsNyBAQCBNZWRpYVF1ZXJ5RXhwcmVzc2lvbjo6TWVkaWFRdWVy
eUV4cHJlc3Npb24oY29uc3QgU3RyaW5nJiBmZWF0dXJlLCBDU1NQYXJzZXJUb2tlbgogU3RyaW5n
IE1lZGlhUXVlcnlFeHByZXNzaW9uOjpzZXJpYWxpemUoKSBjb25zdAogewogICAgIGlmIChtX3Nl
cmlhbGl6YXRpb25DYWNoZS5pc051bGwoKSkKLSAgICAgICAgbV9zZXJpYWxpemF0aW9uQ2FjaGUg
PSBtYWtlU3RyaW5nKCcoJywgbV9tZWRpYUZlYXR1cmUuY29udmVydFRvQVNDSUlMb3dlcmNhc2Uo
KSwgbV92YWx1ZSA/ICI6ICIgOiAiIiwgbV92YWx1ZSA/IG1fdmFsdWUtPmNzc1RleHQoKSA6ICIi
LCAnKScpOworICAgICAgICBtX3NlcmlhbGl6YXRpb25DYWNoZSA9IG1ha2VTdHJpbmcoJygnLCBt
X21lZGlhRmVhdHVyZS5jb252ZXJ0VG9BU0NJSUxvd2VyY2FzZSgpLCBtX3ZhbHVlID8gIjogIiA6
ICIiLCBtX3ZhbHVlID8gbV92YWx1ZS0+Y3NzVGV4dCgpIDogZW1wdHlTdHJpbmcoKSwgJyknKTsK
ICAgICByZXR1cm4gbV9zZXJpYWxpemF0aW9uQ2FjaGU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnRpZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0
eWxlUHJvcGVydGllcy5jcHAKaW5kZXggZjA0MTNjMTdmZmZhMjgzODExZmUyNTE3ZmRmZDYxYmNk
Y2Y4YjI1OS4uYTkyM2M3YTRmOTRmY2YzMmIwN2Y4MTEzYTJjYmVhMjRiOWRmODkwNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5jcHAKQEAgLTc2OCw3ICs3NjgsNyBAQCBTdHJp
bmcgU3R5bGVQcm9wZXJ0aWVzOjpnZXRMYXllcmVkU2hvcnRoYW5kVmFsdWUoY29uc3QgU3R5bGVQ
cm9wZXJ0eVNob3J0aGFuZCYgcwogCiAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIG1hc2tJ
ZCA9IGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPigqdmFsdWUpLnZhbHVlSUQoKTsKICAgICAg
ICAgICAgICAgICAgICAgICAgIGF1dG8gb3JpZ2luSWQgPSBkb3duY2FzdDxDU1NQcmltaXRpdmVW
YWx1ZT4oKm9yaWdpblZhbHVlKS52YWx1ZUlEKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gbWFza0lkID09IG9yaWdpbklkICYmICghaXNDU1NXaWRlVmFsdWVLZXl3b3JkKGdldFZh
bHVlTmFtZShtYXNrSWQpKSB8fCB2YWx1ZS0+aXNJbXBsaWNpdEluaXRpYWxWYWx1ZSgpKTsKKyAg
ICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBtYXNrSWQgPT0gb3JpZ2luSWQgJiYgKCFpc0NT
U1dpZGVWYWx1ZUtleXdvcmQoU3RyaW5nVmlldyB7IGdldFZhbHVlTmFtZShtYXNrSWQpIH0pIHx8
IHZhbHVlLT5pc0ltcGxpY2l0SW5pdGlhbFZhbHVlKCkpOwogICAgICAgICAgICAgICAgICAgICB9
CiAgICAgICAgICAgICAgICAgICAgIGlmIChwcm9wZXJ0eSA9PSBDU1NQcm9wZXJ0eU1hc2tPcmln
aW4pIHsKICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdlIGNhbiBza2lwIHNlcmlhbGl6aW5n
IG1hc2stb3JpZ2luIGlmIGl0J3MgdGhlIGluaXRpYWwgdmFsdWUsIGJ1dCBvbmx5IGlmIHdlJ3Jl
IGFsc28gZ29pbmcgdG8gc2tpcCBzZXJpYWxpemluZwpAQCAtMTE1NCw3ICsxMTU0LDcgQEAgYm9v
bCBNdXRhYmxlU3R5bGVQcm9wZXJ0aWVzOjpzZXRDdXN0b21Qcm9wZXJ0eShjb25zdCBEb2N1bWVu
dCogZG9jdW1lbnQsIGNvbnN0IFMKIAogICAgIHBhcnNlckNvbnRleHQubW9kZSA9IGNzc1BhcnNl
ck1vZGUoKTsKIAotICAgIFN0cmluZyBzeW50YXggPSAiKiI7CisgICAgU3RyaW5nIHN5bnRheCA9
ICIqIl9zOwogICAgIGF1dG8qIHJlZ2lzdGVyZWQgPSBkb2N1bWVudCA/IGRvY3VtZW50LT5nZXRD
U1NSZWdpc3RlcmVkQ3VzdG9tUHJvcGVydHlTZXQoKS5nZXQocHJvcGVydHlOYW1lKSA6IG51bGxw
dHI7CiAKICAgICBpZiAocmVnaXN0ZXJlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9tYWtldmFsdWVzLnBsIGIvU291cmNlL1dlYkNvcmUvY3NzL21ha2V2YWx1ZXMucGwKaW5kZXgg
MGY4MjE5ZDRjY2I1MWVjYTUyNWQ4MjlhNzYwNmIyN2IwZmEyNzMwMy4uYWU5YjMyNzgzMjcyNzM3
M2M0Y2U3ZjAyMzMwNTIxMzZiMmQ5ODNkNSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L21ha2V2YWx1ZXMucGwKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL21ha2V2YWx1ZXMucGwKQEAg
LTExMSwxNiArMTExLDE2IEBAIGZvciBteSAkaSAoMCAuLiAkI25hbWVzKSB7CiAKIHByaW50IEdQ
RVJGIDw8ICJFT0YiOwogJSUKLXN0YXRpYyBjb25zdCBjaGFyKiBjb25zdCB2YWx1ZUxpc3RbXSA9
IHsKLSAgICAiIiwKK3N0YXRpYyBjb25zdGV4cHIgQVNDSUlMaXRlcmFsIHZhbHVlTGlzdFtdID0g
eworICAgICIiX3MsCiBFT0YKIAogZm9yZWFjaCBteSAkbmFtZSAoQG5hbWVzKSB7Ci0gIHByaW50
IEdQRVJGICIgICAgXCIiIC4gJG5hbWUgLiAiXCIsXG4iOworICBwcmludCBHUEVSRiAiICAgIFwi
IiAuICRuYW1lIC4gIlwiX3MsXG4iOwogfQogCiBwcmludCBHUEVSRiA8PCAiRU9GIjsKLSAgICAw
CisgICAgQVNDSUlMaXRlcmFsOjpudWxsKCkKIH07CiAKIGNvbnN0IFZhbHVlKiBmaW5kVmFsdWUo
Y29uc3QgY2hhciogc3RyLCB1bnNpZ25lZCBpbnQgbGVuKQpAQCAtMTI4LDEwICsxMjgsMTAgQEAg
Y29uc3QgVmFsdWUqIGZpbmRWYWx1ZShjb25zdCBjaGFyKiBzdHIsIHVuc2lnbmVkIGludCBsZW4p
CiAgICAgcmV0dXJuIENTU1ZhbHVlS2V5d29yZHNIYXNoOjpmaW5kVmFsdWVJbXBsKHN0ciwgbGVu
KTsKIH0KIAotY29uc3QgY2hhciogZ2V0VmFsdWVOYW1lKHVuc2lnbmVkIHNob3J0IGlkKQorQVND
SUlMaXRlcmFsIGdldFZhbHVlTmFtZSh1bnNpZ25lZCBzaG9ydCBpZCkKIHsKICAgICBpZiAoaWQg
PiBsYXN0Q1NTVmFsdWVLZXl3b3JkKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJu
IEFTQ0lJTGl0ZXJhbDo6bnVsbCgpOwogICAgIHJldHVybiB2YWx1ZUxpc3RbaWRdOwogfQogCkBA
IC0yMDMsNyArMjAzLDcgQEAgcHJpbnQgSEVBREVSICJjb25zdCBpbnQgbGFzdENTU1ZhbHVlS2V5
d29yZCA9ICRsYXN0O1xuIjsKIHByaW50IEhFQURFUiAiY29uc3Qgc2l6ZV90IG1heENTU1ZhbHVl
S2V5d29yZExlbmd0aCA9ICIgLiAkbWF4TGVuIC4gIjtcbiI7CiBwcmludCBIRUFERVIgPDwgIkVP
RiI7CiAKLWNvbnN0IGNoYXIqIGdldFZhbHVlTmFtZSh1bnNpZ25lZCBzaG9ydCBpZCk7CitBU0NJ
SUxpdGVyYWwgZ2V0VmFsdWVOYW1lKHVuc2lnbmVkIHNob3J0IGlkKTsKIGNvbnN0IEF0b21TdHJp
bmcmIGdldFZhbHVlTmFtZUF0b21TdHJpbmcoQ1NTVmFsdWVJRCBpZCk7CiBTdHJpbmcgZ2V0VmFs
dWVOYW1lU3RyaW5nKENTU1ZhbHVlSUQgaWQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvcGFyc2VyL01lZGlhUXVlcnlQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3Bh
cnNlci9NZWRpYVF1ZXJ5UGFyc2VyLmNwcAppbmRleCBjYjVhMDhhYTNlYjdkNmI4YzgyNTdkYzg0
OGRjZWMxMTM0MTljOWNkLi42MmMwMWU1YTMyNzc0MjI0MzY2MmZlYmMyMWVkZTA4MGQ5MjM2NTll
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL01lZGlhUXVlcnlQYXJzZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvTWVkaWFRdWVyeVBhcnNlci5jcHAK
QEAgLTI0Nyw3ICsyNDcsNyBAQCB2b2lkIE1lZGlhUXVlcnlQYXJzZXI6OnNraXBVbnRpbENvbW1h
KENTU1BhcnNlclRva2VuVHlwZSB0eXBlLCBjb25zdCBDU1NQYXJzZXJUbwogICAgIGlmICgodHlw
ZSA9PSBDb21tYVRva2VuICYmICFtX2Jsb2NrV2F0Y2hlci5ibG9ja0xldmVsKCkpIHx8IHR5cGUg
PT0gRU9GVG9rZW4pIHsKICAgICAgICAgbV9zdGF0ZSA9IFJlYWRSZXN0cmljdG9yOwogICAgICAg
ICBtX21lZGlhUXVlcnlEYXRhLmNsZWFyKCk7Ci0gICAgICAgIE1lZGlhUXVlcnkgcXVlcnkgPSBN
ZWRpYVF1ZXJ5KE1lZGlhUXVlcnk6Ok5vdCwgImFsbCIsIFZlY3RvcjxNZWRpYVF1ZXJ5RXhwcmVz
c2lvbj4oKSk7CisgICAgICAgIE1lZGlhUXVlcnkgcXVlcnkgPSBNZWRpYVF1ZXJ5KE1lZGlhUXVl
cnk6Ok5vdCwgImFsbCJfcywgVmVjdG9yPE1lZGlhUXVlcnlFeHByZXNzaW9uPigpKTsKICAgICAg
ICAgbV9xdWVyeVNldC0+YWRkTWVkaWFRdWVyeShXVEZNb3ZlKHF1ZXJ5KSk7CiAgICAgfQogfQpA
QCAtMzA5LDcgKzMwOSw3IEBAIFJlZlB0cjxNZWRpYVF1ZXJ5U2V0PiBNZWRpYVF1ZXJ5UGFyc2Vy
OjpwYXJzZUludGVybmFsKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlCiAgICAgICAgIHByb2Nl
c3NUb2tlbihDU1NQYXJzZXJUb2tlbihFT0ZUb2tlbiksIHJhbmdlKTsKIAogICAgIGlmIChtX3N0
YXRlICE9IFJlYWRBbmQgJiYgbV9zdGF0ZSAhPSBSZWFkUmVzdHJpY3RvciAmJiBtX3N0YXRlICE9
IERvbmUgJiYgbV9zdGF0ZSAhPSBSZWFkTWVkaWFOb3QpIHsKLSAgICAgICAgTWVkaWFRdWVyeSBx
dWVyeSA9IE1lZGlhUXVlcnkoTWVkaWFRdWVyeTo6Tm90LCAiYWxsIiwgVmVjdG9yPE1lZGlhUXVl
cnlFeHByZXNzaW9uPigpKTsKKyAgICAgICAgTWVkaWFRdWVyeSBxdWVyeSA9IE1lZGlhUXVlcnko
TWVkaWFRdWVyeTo6Tm90LCAiYWxsIl9zLCBWZWN0b3I8TWVkaWFRdWVyeUV4cHJlc3Npb24+KCkp
OwogICAgICAgICBtX3F1ZXJ5U2V0LT5hZGRNZWRpYVF1ZXJ5KFdURk1vdmUocXVlcnkpKTsKICAg
ICB9IGVsc2UgaWYgKG1fbWVkaWFRdWVyeURhdGEuY3VycmVudE1lZGlhUXVlcnlDaGFuZ2VkKCkp
CiAgICAgICAgIGNvbW1pdE1lZGlhUXVlcnkoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9wYXJzZXIvU2l6ZXNBdHRyaWJ1dGVQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nz
L3BhcnNlci9TaXplc0F0dHJpYnV0ZVBhcnNlci5jcHAKaW5kZXggZDZlNDhhMjNmZjk3ZTBhOGI3
MzZkODAzNzk3NDI0NzUwNWMzN2ZmOC4uNGRhNDAxNmU2MDY1N2ZiMzc0NTJlZTFiOTFhNjFkNTZl
MDg4NDg4OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9TaXplc0F0dHJp
YnV0ZVBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9TaXplc0F0dHJp
YnV0ZVBhcnNlci5jcHAKQEAgLTExMiw3ICsxMTIsNyBAQCBib29sIFNpemVzQXR0cmlidXRlUGFy
c2VyOjptZWRpYUNvbmRpdGlvbk1hdGNoZXMoY29uc3QgTWVkaWFRdWVyeVNldCYgbWVkaWFDb25k
aQogICAgIGlmICghcmVuZGVyZXIpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBhdXRvJiBz
dHlsZSA9IHJlbmRlcmVyLT5zdHlsZSgpOwotICAgIHJldHVybiBNZWRpYVF1ZXJ5RXZhbHVhdG9y
IHsgInNjcmVlbiIsIG1fZG9jdW1lbnQsICZzdHlsZSB9LmV2YWx1YXRlKG1lZGlhQ29uZGl0aW9u
LCBtX21lZGlhUXVlcnlEeW5hbWljUmVzdWx0cyk7CisgICAgcmV0dXJuIE1lZGlhUXVlcnlFdmFs
dWF0b3IgeyAic2NyZWVuIl9zLCBtX2RvY3VtZW50LCAmc3R5bGUgfS5ldmFsdWF0ZShtZWRpYUNv
bmRpdGlvbiwgbV9tZWRpYVF1ZXJ5RHluYW1pY1Jlc3VsdHMpOwogfQogCiBib29sIFNpemVzQXR0
cmlidXRlUGFyc2VyOjpwYXJzZShDU1NQYXJzZXJUb2tlblJhbmdlIHJhbmdlKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTTnVtZXJpY0ZhY3RvcnkuaCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU051bWVyaWNGYWN0b3J5LmgKaW5kZXggODIzNTBiOTlk
ODc0YjBmYTkwNjVmNjRkZGQ1OTkzZGQ2ZDgzMGIzOS4uMzUzNjJiMjE2ZDAyYmI3MjNiNzg2YTJj
NzIxMzNkMTU2M2JiMjBmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20v
Q1NTTnVtZXJpY0ZhY3RvcnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NO
dW1lcmljRmFjdG9yeS5oCkBAIC00Myw2NCArNDMsNjQgQEAgY2xhc3MgQ1NTTnVtZXJpY0ZhY3Rv
cnkgZmluYWwgOiBwdWJsaWMgU3VwcGxlbWVudDxET01DU1NOYW1lc3BhY2U+IHsKIHB1YmxpYzoK
ICAgICBleHBsaWNpdCBDU1NOdW1lcmljRmFjdG9yeShET01DU1NOYW1lc3BhY2UmKSB7IH0KIAot
ICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBudW1iZXIoZG91YmxlIHZhbHVlKSB7IHJldHVy
biBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgIm51bWJlciIpOyB9Ci0gICAgc3RhdGljIFJl
ZjxDU1NVbml0VmFsdWU+IHBlcmNlbnQoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFs
dWU6OmNyZWF0ZSh2YWx1ZSwgInBlcmNlbnQiKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZh
bHVlPiBudW1iZXIoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2
YWx1ZSwgIm51bWJlciJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gcGVyY2Vu
dChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAicGVy
Y2VudCJfcyk7IH0KIAogCiAgICAgLy8gPGxlbmd0aD4KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRW
YWx1ZT4gZW0oZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1
ZSwgImVtIik7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gZXgoZG91YmxlIHZhbHVl
KSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImV4Iik7IH0KLSAgICBzdGF0
aWMgUmVmPENTU1VuaXRWYWx1ZT4gY2goZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFs
dWU6OmNyZWF0ZSh2YWx1ZSwgImNoIik7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4g
aWMoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImlj
Iik7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gcmVtKGRvdWJsZSB2YWx1ZSkgeyBy
ZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJyZW0iKTsgfQotICAgIHN0YXRpYyBS
ZWY8Q1NTVW5pdFZhbHVlPiBsaChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6
Y3JlYXRlKHZhbHVlLCAibGgiKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBybGgo
ZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInJsaCIp
OyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHZ3KGRvdWJsZSB2YWx1ZSkgeyByZXR1
cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJ2dyIpOyB9Ci0gICAgc3RhdGljIFJlZjxD
U1NVbml0VmFsdWU+IHZoKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVh
dGUodmFsdWUsICJ2aCIpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHZpKGRvdWJs
ZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJ2aSIpOyB9Ci0g
ICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHZiKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NT
VW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJ2YiIpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0
VmFsdWU+IHZtaW4oZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2
YWx1ZSwgInZtaW4iKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiB2bWF4KGRvdWJs
ZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJ2bWF4Iik7IH0K
LSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gY20oZG91YmxlIHZhbHVlKSB7IHJldHVybiBD
U1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImNtIik7IH0KLSAgICBzdGF0aWMgUmVmPENTU1Vu
aXRWYWx1ZT4gbW0oZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2
YWx1ZSwgIm1tIik7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gcShkb3VibGUgdmFs
dWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAicSIpOyB9Ci0gICAgc3Rh
dGljIFJlZjxDU1NVbml0VmFsdWU+IGluKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZh
bHVlOjpjcmVhdGUodmFsdWUsICJpbiIpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+
IHB0KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJw
dCIpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHBjKGRvdWJsZSB2YWx1ZSkgeyBy
ZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJwYyIpOyB9Ci0gICAgc3RhdGljIFJl
ZjxDU1NVbml0VmFsdWU+IHB4KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpj
cmVhdGUodmFsdWUsICJweCIpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGNxdyhk
b3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiY3F3Iik7
IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gY3FoKGRvdWJsZSB2YWx1ZSkgeyByZXR1
cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJjcWgiKTsgfQotICAgIHN0YXRpYyBSZWY8
Q1NTVW5pdFZhbHVlPiBjcWkoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNy
ZWF0ZSh2YWx1ZSwgImNxaSIpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGNxYihk
b3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiY3FiIik7
IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gY3FtaW4oZG91YmxlIHZhbHVlKSB7IHJl
dHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImNxbWluIik7IH0KLSAgICBzdGF0aWMg
UmVmPENTU1VuaXRWYWx1ZT4gY3FtYXgoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFs
dWU6OmNyZWF0ZSh2YWx1ZSwgImNxbWF4Iik7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1
ZT4gZW0oZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwg
ImVtIl9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBleChkb3VibGUgdmFsdWUp
IHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiZXgiX3MpOyB9CisgICAgc3Rh
dGljIFJlZjxDU1NVbml0VmFsdWU+IGNoKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZh
bHVlOjpjcmVhdGUodmFsdWUsICJjaCJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1
ZT4gaWMoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwg
ImljIl9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiByZW0oZG91YmxlIHZhbHVl
KSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInJlbSJfcyk7IH0KKyAgICBz
dGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gbGgoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0
VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImxoIl9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZh
bHVlPiBybGgoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1
ZSwgInJsaCJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gdncoZG91YmxlIHZh
bHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInZ3Il9zKTsgfQorICAg
IHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiB2aChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1Vu
aXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAidmgiX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0
VmFsdWU+IHZpKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFs
dWUsICJ2aSJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gdmIoZG91YmxlIHZh
bHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInZiIl9zKTsgfQorICAg
IHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiB2bWluKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NT
VW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJ2bWluIl9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NT
VW5pdFZhbHVlPiB2bWF4KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVh
dGUodmFsdWUsICJ2bWF4Il9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBjbShk
b3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiY20iX3Mp
OyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IG1tKGRvdWJsZSB2YWx1ZSkgeyByZXR1
cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJtbSJfcyk7IH0KKyAgICBzdGF0aWMgUmVm
PENTU1VuaXRWYWx1ZT4gcShkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3Jl
YXRlKHZhbHVlLCAicSJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gaW4oZG91
YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImluIl9zKTsg
fQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBwdChkb3VibGUgdmFsdWUpIHsgcmV0dXJu
IENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAicHQiX3MpOyB9CisgICAgc3RhdGljIFJlZjxD
U1NVbml0VmFsdWU+IHBjKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVh
dGUodmFsdWUsICJwYyJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gcHgoZG91
YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInB4Il9zKTsg
fQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBjcXcoZG91YmxlIHZhbHVlKSB7IHJldHVy
biBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImNxdyJfcyk7IH0KKyAgICBzdGF0aWMgUmVm
PENTU1VuaXRWYWx1ZT4gY3FoKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpj
cmVhdGUodmFsdWUsICJjcWgiX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGNx
aShkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiY3Fp
Il9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBjcWIoZG91YmxlIHZhbHVlKSB7
IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImNxYiJfcyk7IH0KKyAgICBzdGF0
aWMgUmVmPENTU1VuaXRWYWx1ZT4gY3FtaW4oZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0
VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImNxbWluIl9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5p
dFZhbHVlPiBjcW1heChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRl
KHZhbHVlLCAiY3FtYXgiX3MpOyB9CiAKIAogICAgIC8vIDxhbmdsZT4KLSAgICBzdGF0aWMgUmVm
PENTU1VuaXRWYWx1ZT4gZGVnKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpj
cmVhdGUodmFsdWUsICJkZWciKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBncmFk
KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJncmFk
Iik7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gcmFkKGRvdWJsZSB2YWx1ZSkgeyBy
ZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJyYWQiKTsgfQotICAgIHN0YXRpYyBS
ZWY8Q1NTVW5pdFZhbHVlPiB0dXJuKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVl
OjpjcmVhdGUodmFsdWUsICJ0dXJuIik7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4g
ZGVnKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJk
ZWciX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGdyYWQoZG91YmxlIHZhbHVl
KSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImdyYWQiX3MpOyB9CisgICAg
c3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHJhZChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1Vu
aXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAicmFkIl9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5p
dFZhbHVlPiB0dXJuKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUo
dmFsdWUsICJ0dXJuIl9zKTsgfQogCiAKICAgICAvLyA8dGltZT4KLSAgICBzdGF0aWMgUmVmPENT
U1VuaXRWYWx1ZT4gcyhkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRl
KHZhbHVlLCAicyIpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IG1zKGRvdWJsZSB2
YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJtcyIpOyB9CisgICAg
c3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHMoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0
VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInMiX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFs
dWU+IG1zKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUs
ICJtcyJfcyk7IH0KIAogCiAgICAgLy8gPGZyZXF1ZW5jeT4KLSAgICBzdGF0aWMgUmVmPENTU1Vu
aXRWYWx1ZT4gaHooZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2
YWx1ZSwgImh6Iik7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4ga0h6KGRvdWJsZSB2
YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJraHoiKTsgfQorICAg
IHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBoeihkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1Vu
aXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiaHoiX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0
VmFsdWU+IGtIeihkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZh
bHVlLCAia2h6Il9zKTsgfQogCiAKICAgICAvLyA8cmVzb2x1dGlvbj4KLSAgICBzdGF0aWMgUmVm
PENTU1VuaXRWYWx1ZT4gZHBpKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpj
cmVhdGUodmFsdWUsICJkcGkiKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBkcGNt
KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJkcGNt
Iik7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gZHBweChkb3VibGUgdmFsdWUpIHsg
cmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiZHBweCIpOyB9CisgICAgc3RhdGlj
IFJlZjxDU1NVbml0VmFsdWU+IGRwaShkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1
ZTo6Y3JlYXRlKHZhbHVlLCAiZHBpIl9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVl
PiBkcGNtKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUs
ICJkcGNtIl9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBkcHB4KGRvdWJsZSB2
YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJkcHB4Il9zKTsgfQog
CiAKICAgICAvLyA8ZmxleD4KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gZnIoZG91Ymxl
IHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImZyIik7IH0KKyAg
ICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gZnIoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NV
bml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImZyIl9zKTsgfQogCiAKIHByaXZhdGU6CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NOdW1lcmljVmFsdWUuY3BwIGIvU291
cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTTnVtZXJpY1ZhbHVlLmNwcAppbmRleCBjZWUxN2M4
NzA4ZjhjYjYzOGFlMTEzYTM0ZTcxMmM1NDEyMzEwY2FmLi5lZDdiZjk4MzhiMjgzNmYwMGZkZDVh
OTVhNDliN2IwYzAzNjY2ZWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRv
bS9DU1NOdW1lcmljVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NT
U051bWVyaWNWYWx1ZS5jcHAKQEAgLTE1Nyw3ICsxNTcsNyBAQCBSZWY8Q1NTTnVtZXJpY1ZhbHVl
PiBDU1NOdW1lcmljVmFsdWU6Om11bHRpcGx5SW50ZXJuYWwoVmVjdG9yPFJlZjxDU1NOdW1lcmlj
VmFsdQogICAgICAgICAgICAgZG91YmxlIHByb2R1Y3QgPSAxOwogICAgICAgICAgICAgZm9yIChj
b25zdCBSZWY8Q1NTTnVtZXJpY1ZhbHVlPiYgdmFsdWUgOiB2YWx1ZXMpCiAgICAgICAgICAgICAg
ICAgcHJvZHVjdCAqPSBkb3duY2FzdDxDU1NVbml0VmFsdWU+KHZhbHVlLmdldCgpKS52YWx1ZSgp
OwotICAgICAgICAgICAgU3RyaW5nIHVuaXQgPSBub25OdW1iZXJVbml0SW5kZXggPyBkb3duY2Fz
dDxDU1NVbml0VmFsdWU+KHZhbHVlc1sqbm9uTnVtYmVyVW5pdEluZGV4XS5nZXQoKSkudW5pdCgp
IDogIm51bWJlciI7CisgICAgICAgICAgICBTdHJpbmcgdW5pdCA9IG5vbk51bWJlclVuaXRJbmRl
eCA/IGRvd25jYXN0PENTU1VuaXRWYWx1ZT4odmFsdWVzWypub25OdW1iZXJVbml0SW5kZXhdLmdl
dCgpKS51bml0KCkgOiAibnVtYmVyIl9zOwogICAgICAgICAgICAgcmV0dXJuIENTU1VuaXRWYWx1
ZTo6Y3JlYXRlKHByb2R1Y3QsIHVuaXQpOwogICAgICAgICB9CiAgICAgfQpAQCAtMjM1LDcgKzIz
NSw3IEBAIFJlZjxDU1NVbml0VmFsdWU+IENTU051bWVyaWNWYWx1ZTo6dG8oU3RyaW5nJiYgdW5p
dCkKICAgICBVTlVTRURfUEFSQU0odW5pdCk7CiAgICAgLy8gaHR0cHM6Ly9kcmFmdHMuY3NzLWhv
dWRpbmkub3JnL2Nzcy10eXBlZC1vbS8jZG9tLWNzc251bWVyaWN2YWx1ZS10bwogICAgIC8vIEZJ
WE1FOiBhZGQgaW1wbC4KLSAgICByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUoMS4wLCAibnVt
YmVyIik7CisgICAgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKDEuMCwgIm51bWJlciJfcyk7
CiB9CiAKIFJlZjxDU1NNYXRoU3VtPiBDU1NOdW1lcmljVmFsdWU6OnRvU3VtKEZpeGVkVmVjdG9y
PFN0cmluZz4mJiB1bml0cykKQEAgLTI1OCw3ICsyNTgsNyBAQCBFeGNlcHRpb25PcjxSZWY8Q1NT
TnVtZXJpY1ZhbHVlPj4gQ1NTTnVtZXJpY1ZhbHVlOjpwYXJzZShTdHJpbmcmJiBjc3NUZXh0KQog
ICAgIFVOVVNFRF9QQVJBTShjc3NUZXh0KTsKICAgICAvLyBodHRwczovL2RyYWZ0cy5jc3MtaG91
ZGluaS5vcmcvY3NzLXR5cGVkLW9tLyNkb20tY3NzbnVtZXJpY3ZhbHVlLXBhcnNlCiAgICAgLy8g
RklYTUU6IGFkZCBpbXBsLgotICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJv
ciwgIk5vdCBpbXBsZW1lbnRlZCBFcnJvciIgfTsKKyAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90
U3VwcG9ydGVkRXJyb3IsICJOb3QgaW1wbGVtZW50ZWQgRXJyb3IiX3MgfTsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20v
Q1NTU3R5bGVWYWx1ZUZhY3RvcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NT
U3R5bGVWYWx1ZUZhY3RvcnkuY3BwCmluZGV4IDlmYzcwZmIxMDI3MTY4NzE0NzQ1MzY2NTJkNGNj
MTMxMDRkZjM0MjQuLjBhYmIzYTQ4Mjg1MmRiZDRkZDMxNzhmMjQ5ODMyZjU4NzhiNzFiYWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU1N0eWxlVmFsdWVGYWN0b3J5
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NTdHlsZVZhbHVlRmFjdG9y
eS5jcHAKQEAgLTI2NCw3ICsyNjQsNyBAQCBFeGNlcHRpb25PcjxSZWY8Q1NTU3R5bGVWYWx1ZT4+
IENTU1N0eWxlVmFsdWVGYWN0b3J5OjpyZWlmeVZhbHVlKFJlZjxDU1NWYWx1ZT4mJgogICAgICAg
ICAvLyBSZWZlciB0byBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3MtdHlwZWQtb20vdGhlLXN0eWxlcHJvcGVydHltYXAvaW5saW5lL2dldC5odG1sCiAg
ICAgICAgIGF1dG8gdmFsdWVMaXN0ID0gZG93bmNhc3Q8Q1NTVmFsdWVMaXN0Pihjc3NWYWx1ZS5w
dHIoKSk7CiAgICAgICAgIGlmICghdmFsdWVMaXN0LT5sZW5ndGgoKSkKLSAgICAgICAgICAgIHJl
dHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJUaGUgQ1NTVmFsdWVMaXN0IHNob3VsZCBub3Qg
YmUgZW1wdHkuIiB9OworICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwg
IlRoZSBDU1NWYWx1ZUxpc3Qgc2hvdWxkIG5vdCBiZSBlbXB0eS4iX3MgfTsKICAgICAgICAgCiAg
ICAgICAgIHJldHVybiByZWlmeVZhbHVlKFdURk1vdmUoKnZhbHVlTGlzdC0+YmVnaW4oKSksIGRv
Y3VtZW50KTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29h
L0hUTUxDb252ZXJ0ZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0hUTUxDb252
ZXJ0ZXIubW0KaW5kZXggYjY3YTYzNDk3MzdiODViYWMyOTMyY2UxOGFiODNmNzNmODEzMWFiMy4u
MmQ1MzllZDJjNzFmMjJiZjI4YmY5ZGY4NTQ0YTliZTk4OGVhODdlZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9IVE1MQ29udmVydGVyLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvY29jb2EvSFRNTENvbnZlcnRlci5tbQpAQCAtNTk2LDcgKzU5Niw3IEBA
IFN0cmluZyBIVE1MQ29udmVydGVyQ2FjaGVzOjpwcm9wZXJ0eVZhbHVlRm9yTm9kZShOb2RlJiBu
b2RlLCBDU1NQcm9wZXJ0eUlEIHByb3BlCiAgICAgc3dpdGNoIChwcm9wZXJ0eUlkKSB7CiAgICAg
Y2FzZSBDU1NQcm9wZXJ0eURpc3BsYXk6CiAgICAgICAgIGlmIChlbGVtZW50Lmhhc1RhZ05hbWUo
aGVhZFRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKHNjcmlwdFRhZykgfHwgZWxlbWVudC5oYXNU
YWdOYW1lKGFwcGxldFRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKG5vZnJhbWVzVGFnKSkKLSAg
ICAgICAgICAgIHJldHVybiAibm9uZSI7CisgICAgICAgICAgICByZXR1cm4gIm5vbmUiX3M7CiAg
ICAgICAgIGVsc2UgaWYgKGVsZW1lbnQuaGFzVGFnTmFtZShhZGRyZXNzVGFnKSB8fCBlbGVtZW50
Lmhhc1RhZ05hbWUoYmxvY2txdW90ZVRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKGJvZHlUYWcp
IHx8IGVsZW1lbnQuaGFzVGFnTmFtZShjZW50ZXJUYWcpCiAgICAgICAgICAgICAgfHwgZWxlbWVu
dC5oYXNUYWdOYW1lKGRkVGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoZGlyVGFnKSB8fCBlbGVt
ZW50Lmhhc1RhZ05hbWUoZGl2VGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoZGxUYWcpCiAgICAg
ICAgICAgICAgfHwgZWxlbWVudC5oYXNUYWdOYW1lKGR0VGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05h
bWUoZmllbGRzZXRUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZShmb3JtVGFnKSB8fCBlbGVtZW50
Lmhhc1RhZ05hbWUoZnJhbWVUYWcpCkBAIC02MDQsNjIgKzYwNCw2MiBAQCBTdHJpbmcgSFRNTENv
bnZlcnRlckNhY2hlczo6cHJvcGVydHlWYWx1ZUZvck5vZGUoTm9kZSYgbm9kZSwgQ1NTUHJvcGVy
dHlJRCBwcm9wZQogICAgICAgICAgICAgIHx8IGVsZW1lbnQuaGFzVGFnTmFtZShoMlRhZykgfHwg
ZWxlbWVudC5oYXNUYWdOYW1lKGgzVGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoaDRUYWcpIHx8
IGVsZW1lbnQuaGFzVGFnTmFtZShoNVRhZykKICAgICAgICAgICAgICB8fCBlbGVtZW50Lmhhc1Rh
Z05hbWUoaDZUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZShpZnJhbWVUYWcpIHx8IGVsZW1lbnQu
aGFzVGFnTmFtZShtZW51VGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUobm9zY3JpcHRUYWcpCiAg
ICAgICAgICAgICAgfHwgZWxlbWVudC5oYXNUYWdOYW1lKG9sVGFnKSB8fCBlbGVtZW50Lmhhc1Rh
Z05hbWUocFRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKHByZVRhZykgfHwgZWxlbWVudC5oYXNU
YWdOYW1lKHVsVGFnKSkKLSAgICAgICAgICAgIHJldHVybiAiYmxvY2siOworICAgICAgICAgICAg
cmV0dXJuICJibG9jayJfczsKICAgICAgICAgZWxzZSBpZiAoZWxlbWVudC5oYXNUYWdOYW1lKGxp
VGFnKSkKLSAgICAgICAgICAgIHJldHVybiAibGlzdC1pdGVtIjsKKyAgICAgICAgICAgIHJldHVy
biAibGlzdC1pdGVtIl9zOwogICAgICAgICBlbHNlIGlmIChlbGVtZW50Lmhhc1RhZ05hbWUodGFi
bGVUYWcpKQotICAgICAgICAgICAgcmV0dXJuICJ0YWJsZSI7CisgICAgICAgICAgICByZXR1cm4g
InRhYmxlIl9zOwogICAgICAgICBlbHNlIGlmIChlbGVtZW50Lmhhc1RhZ05hbWUodHJUYWcpKQot
ICAgICAgICAgICAgcmV0dXJuICJ0YWJsZS1yb3ciOworICAgICAgICAgICAgcmV0dXJuICJ0YWJs
ZS1yb3ciX3M7CiAgICAgICAgIGVsc2UgaWYgKGVsZW1lbnQuaGFzVGFnTmFtZSh0aFRhZykgfHwg
ZWxlbWVudC5oYXNUYWdOYW1lKHRkVGFnKSkKLSAgICAgICAgICAgIHJldHVybiAidGFibGUtY2Vs
bCI7CisgICAgICAgICAgICByZXR1cm4gInRhYmxlLWNlbGwiX3M7CiAgICAgICAgIGVsc2UgaWYg
KGVsZW1lbnQuaGFzVGFnTmFtZSh0aGVhZFRhZykpCi0gICAgICAgICAgICByZXR1cm4gInRhYmxl
LWhlYWRlci1ncm91cCI7CisgICAgICAgICAgICByZXR1cm4gInRhYmxlLWhlYWRlci1ncm91cCJf
czsKICAgICAgICAgZWxzZSBpZiAoZWxlbWVudC5oYXNUYWdOYW1lKHRib2R5VGFnKSkKLSAgICAg
ICAgICAgIHJldHVybiAidGFibGUtcm93LWdyb3VwIjsKKyAgICAgICAgICAgIHJldHVybiAidGFi
bGUtcm93LWdyb3VwIl9zOwogICAgICAgICBlbHNlIGlmIChlbGVtZW50Lmhhc1RhZ05hbWUodGZv
b3RUYWcpKQotICAgICAgICAgICAgcmV0dXJuICJ0YWJsZS1mb290ZXItZ3JvdXAiOworICAgICAg
ICAgICAgcmV0dXJuICJ0YWJsZS1mb290ZXItZ3JvdXAiX3M7CiAgICAgICAgIGVsc2UgaWYgKGVs
ZW1lbnQuaGFzVGFnTmFtZShjb2xUYWcpKQotICAgICAgICAgICAgcmV0dXJuICJ0YWJsZS1jb2x1
bW4iOworICAgICAgICAgICAgcmV0dXJuICJ0YWJsZS1jb2x1bW4iX3M7CiAgICAgICAgIGVsc2Ug
aWYgKGVsZW1lbnQuaGFzVGFnTmFtZShjb2xncm91cFRhZykpCi0gICAgICAgICAgICByZXR1cm4g
InRhYmxlLWNvbHVtbi1ncm91cCI7CisgICAgICAgICAgICByZXR1cm4gInRhYmxlLWNvbHVtbi1n
cm91cCJfczsKICAgICAgICAgZWxzZSBpZiAoZWxlbWVudC5oYXNUYWdOYW1lKGNhcHRpb25UYWcp
KQotICAgICAgICAgICAgcmV0dXJuICJ0YWJsZS1jYXB0aW9uIjsKKyAgICAgICAgICAgIHJldHVy
biAidGFibGUtY2FwdGlvbiJfczsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDU1NQcm9wZXJ0
eVdoaXRlU3BhY2U6CiAgICAgICAgIGlmIChlbGVtZW50Lmhhc1RhZ05hbWUocHJlVGFnKSkKLSAg
ICAgICAgICAgIHJldHVybiAicHJlIjsKKyAgICAgICAgICAgIHJldHVybiAicHJlIl9zOwogICAg
ICAgICBpbmhlcml0ID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDU1NQcm9wZXJ0
eUZvbnRTdHlsZToKICAgICAgICAgaWYgKGVsZW1lbnQuaGFzVGFnTmFtZShpVGFnKSB8fCBlbGVt
ZW50Lmhhc1RhZ05hbWUoY2l0ZVRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKGVtVGFnKSB8fCBl
bGVtZW50Lmhhc1RhZ05hbWUodmFyVGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoYWRkcmVzc1Rh
ZykpCi0gICAgICAgICAgICByZXR1cm4gIml0YWxpYyI7CisgICAgICAgICAgICByZXR1cm4gIml0
YWxpYyJfczsKICAgICAgICAgaW5oZXJpdCA9IHRydWU7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgQ1NTUHJvcGVydHlGb250V2VpZ2h0OgogICAgICAgICBpZiAoZWxlbWVudC5oYXNUYWdOYW1l
KGJUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZShzdHJvbmdUYWcpIHx8IGVsZW1lbnQuaGFzVGFn
TmFtZSh0aFRhZykpCi0gICAgICAgICAgICByZXR1cm4gImJvbGRlciI7CisgICAgICAgICAgICBy
ZXR1cm4gImJvbGRlciJfczsKICAgICAgICAgaW5oZXJpdCA9IHRydWU7CiAgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgQ1NTUHJvcGVydHlUZXh0RGVjb3JhdGlvbkxpbmU6CiAgICAgICAgIGlmIChl
bGVtZW50Lmhhc1RhZ05hbWUodVRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKGluc1RhZykpCi0g
ICAgICAgICAgICByZXR1cm4gInVuZGVybGluZSI7CisgICAgICAgICAgICByZXR1cm4gInVuZGVy
bGluZSJfczsKICAgICAgICAgZWxzZSBpZiAoZWxlbWVudC5oYXNUYWdOYW1lKHNUYWcpIHx8IGVs
ZW1lbnQuaGFzVGFnTmFtZShzdHJpa2VUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZShkZWxUYWcp
KQotICAgICAgICAgICAgcmV0dXJuICJsaW5lLXRocm91Z2giOworICAgICAgICAgICAgcmV0dXJu
ICJsaW5lLXRocm91Z2giX3M7CiAgICAgICAgIGluaGVyaXQgPSB0cnVlOyAvLyBGSVhNRTogVGhp
cyBpcyBub3Qgc3RyaWN0bHkgY29ycmVjdAogICAgICAgICBicmVhazsKICAgICBjYXNlIENTU1By
b3BlcnR5VGV4dEFsaWduOgogICAgICAgICBpZiAoZWxlbWVudC5oYXNUYWdOYW1lKGNlbnRlclRh
ZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKGNhcHRpb25UYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFt
ZSh0aFRhZykpCi0gICAgICAgICAgICByZXR1cm4gImNlbnRlciI7CisgICAgICAgICAgICByZXR1
cm4gImNlbnRlciJfczsKICAgICAgICAgaW5oZXJpdCA9IHRydWU7CiAgICAgICAgIGJyZWFrOwog
ICAgIGNhc2UgQ1NTUHJvcGVydHlWZXJ0aWNhbEFsaWduOgogICAgICAgICBpZiAoZWxlbWVudC5o
YXNUYWdOYW1lKHN1cFRhZykpCi0gICAgICAgICAgICByZXR1cm4gInN1cGVyIjsKKyAgICAgICAg
ICAgIHJldHVybiAic3VwZXIiX3M7CiAgICAgICAgIGVsc2UgaWYgKGVsZW1lbnQuaGFzVGFnTmFt
ZShzdWJUYWcpKQotICAgICAgICAgICAgcmV0dXJuICJzdWIiOworICAgICAgICAgICAgcmV0dXJu
ICJzdWIiX3M7CiAgICAgICAgIGVsc2UgaWYgKGVsZW1lbnQuaGFzVGFnTmFtZSh0aGVhZFRhZykg
fHwgZWxlbWVudC5oYXNUYWdOYW1lKHRib2R5VGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUodGZv
b3RUYWcpKQotICAgICAgICAgICAgcmV0dXJuICJtaWRkbGUiOworICAgICAgICAgICAgcmV0dXJu
ICJtaWRkbGUiX3M7CiAgICAgICAgIGVsc2UgaWYgKGVsZW1lbnQuaGFzVGFnTmFtZSh0clRhZykg
fHwgZWxlbWVudC5oYXNUYWdOYW1lKHRoVGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUodGRUYWcp
KQogICAgICAgICAgICAgaW5oZXJpdCA9IHRydWU7CiAgICAgICAgIGJyZWFrOwpAQCAtMTg1Miw3
ICsxODUyLDcgQEAgQk9PTCBIVE1MQ29udmVydGVyOjpfcHJvY2Vzc0VsZW1lbnQoRWxlbWVudCYg
ZWxlbWVudCwgTlNJbnRlZ2VyIGRlcHRoKQogICAgICAgICBSZXRhaW5QdHI8TlNUZXh0TGlzdD4g
bGlzdDsKICAgICAgICAgU3RyaW5nIGxpc3RTdHlsZVR5cGUgPSBfY2FjaGVzLT5wcm9wZXJ0eVZh
bHVlRm9yTm9kZShlbGVtZW50LCBDU1NQcm9wZXJ0eUxpc3RTdHlsZVR5cGUpOwogICAgICAgICBp
ZiAoIWxpc3RTdHlsZVR5cGUubGVuZ3RoKCkpCi0gICAgICAgICAgICBsaXN0U3R5bGVUeXBlID0g
ImRlY2ltYWwiOworICAgICAgICAgICAgbGlzdFN0eWxlVHlwZSA9ICJkZWNpbWFsIl9zOwogICAg
ICAgICBsaXN0ID0gYWRvcHROUyhbW1BsYXRmb3JtTlNUZXh0TGlzdCBhbGxvY10gaW5pdFdpdGhN
YXJrZXJGb3JtYXQ6U3RyaW5nKCJ7IiArIGxpc3RTdHlsZVR5cGUgKyAifSIpIG9wdGlvbnM6MF0p
OwogICAgICAgICBpZiAoaXM8SFRNTE9MaXN0RWxlbWVudD4oZWxlbWVudCkpIHsKICAgICAgICAg
ICAgIE5TSW50ZWdlciBzdGFydGluZ0l0ZW1OdW1iZXIgPSBkb3duY2FzdDxIVE1MT0xpc3RFbGVt
ZW50PihlbGVtZW50KS5zdGFydCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9jb2NvYS9XZWJDb250ZW50UmVhZGVyQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L2NvY29hL1dlYkNvbnRlbnRSZWFkZXJDb2NvYS5tbQppbmRleCBlODg2YTI3ZGJkNjIyNDBhZDk4
NDIwNDVjZWI4MzA1MGEyZmMwM2RmLi5kOGQxNDBkZWY3ZDNhMzhiMDI0YTQxMTM0YjY1OGU3ZjMx
NDE0ZTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL1dlYkNvbnRl
bnRSZWFkZXJDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL1dlYkNv
bnRlbnRSZWFkZXJDb2NvYS5tbQpAQCAtNzYyLDcgKzc2Miw3IEBAIHN0YXRpYyBSZWY8SFRNTEVs
ZW1lbnQ+IGF0dGFjaG1lbnRGb3JEYXRhKEZyYW1lJiBmcmFtZSwgRnJhZ21lbnRlZFNoYXJlZEJ1
ZmZlciYKICAgICBhdXRvIGF0dGFjaG1lbnRUeXBlID0gdHlwZUZvckF0dGFjaG1lbnRFbGVtZW50
KGNvbnRlbnRUeXBlKTsKIAogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgaW5zdGVhZCBhc2sgQ29y
ZVNlcnZpY2VzIGZvciBhIHByZWZlcnJlZCBuYW1lIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGdpdmVu
IGNvbnRlbnQgdHlwZS4KLSAgICBzdGF0aWMgY29uc3QgY2hhciogZGVmYXVsdEF0dGFjaG1lbnRO
YW1lID0gImZpbGUiOworICAgIHN0YXRpYyBjb25zdGV4cHIgQVNDSUlMaXRlcmFsIGRlZmF1bHRB
dHRhY2htZW50TmFtZSA9ICJmaWxlIl9zOwogCiAgICAgU3RyaW5nIGZpbGVOYW1lOwogICAgIGlm
IChuYW1lLmlzRW1wdHkoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jb2Nv
YS9CdW5kbGVSZXNvdXJjZUxvYWRlci5tbSBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jb2NvYS9C
dW5kbGVSZXNvdXJjZUxvYWRlci5tbQppbmRleCBjM2I3YjdmZTU1ZGMzMzA0M2NjOGFlMzljY2Zh
NDdkYjc2OTYzZWNmLi45YzI3OTExMzk1NzllMGQ0NjdjMzgwYTUyM2Q1NTE1MTQyMjMxYWIxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY29jb2EvQnVuZGxlUmVzb3VyY2VMb2Fk
ZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NvY29hL0J1bmRsZVJlc291cmNlTG9h
ZGVyLm1tCkBAIC02NSwxMyArNjUsMTMgQEAgdm9pZCBsb2FkUmVzb3VyY2VGcm9tQnVuZGxlKFJl
c291cmNlTG9hZGVyJiBsb2FkZXIsIGNvbnN0IFN0cmluZyYgc3ViZGlyZWN0b3J5KQogCiAgICAg
ICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbcHJvdGVjdGVkTG9hZGVyID0gV1RGTW92ZShw
cm90ZWN0ZWRMb2FkZXIpLCB1cmwgPSBXVEZNb3ZlKHVybCkuaXNvbGF0ZWRDb3B5KCksIGJ1ZmZl
ciA9IFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGRhdGEpXSgpIG11dGFibGUgewogICAgICAgICAgICAg
YXV0byBtaW1lVHlwZSA9IE1JTUVUeXBlUmVnaXN0cnk6Om1pbWVUeXBlRm9yUGF0aCh1cmwucGF0
aCgpKTsKLSAgICAgICAgICAgIFJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UgeyB1cmwsIG1pbWVU
eXBlLCBzdGF0aWNfY2FzdDxsb25nIGxvbmc+KGJ1ZmZlci0+c2l6ZSgpKSwgTUlNRVR5cGVSZWdp
c3RyeTo6aXNUZXh0TUlNRVR5cGUobWltZVR5cGUpID8gIlVURi04Il9zIDogbnVsbHB0ciB9Owor
ICAgICAgICAgICAgUmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSB7IHVybCwgbWltZVR5cGUsIHN0
YXRpY19jYXN0PGxvbmcgbG9uZz4oYnVmZmVyLT5zaXplKCkpLCBNSU1FVHlwZVJlZ2lzdHJ5Ojpp
c1RleHRNSU1FVHlwZShtaW1lVHlwZSkgPyAiVVRGLTgiX3MgOiBTdHJpbmcoKSB9OwogICAgICAg
ICAgICAgcmVzcG9uc2Uuc2V0SFRUUFN0YXR1c0NvZGUoMjAwKTsKICAgICAgICAgICAgIHJlc3Bv
bnNlLnNldEhUVFBTdGF0dXNUZXh0KCJPSyJfcyk7CiAgICAgICAgICAgICByZXNwb25zZS5zZXRT
b3VyY2UoUmVzb3VyY2VSZXNwb25zZTo6U291cmNlOjpOZXR3b3JrKTsKIAogICAgICAgICAgICAg
Ly8gQWxsb3cgaW1hZ2VzIHRvIGxvYWQuCi0gICAgICAgICAgICByZXNwb25zZS5hZGRIVFRQSGVh
ZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OkFjY2Vzc0NvbnRyb2xBbGxvd09yaWdpbiwgIioiKTsK
KyAgICAgICAgICAgIHJlc3BvbnNlLmFkZEhUVFBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6
QWNjZXNzQ29udHJvbEFsbG93T3JpZ2luLCAiKiJfcyk7CiAKICAgICAgICAgICAgIHByb3RlY3Rl
ZExvYWRlci0+ZGVsaXZlclJlc3BvbnNlQW5kRGF0YShyZXNwb25zZSwgV1RGTW92ZShidWZmZXIp
KTsKICAgICAgICAgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL1Jl
c291cmNlVXNhZ2VPdmVybGF5Q29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL1Jl
c291cmNlVXNhZ2VPdmVybGF5Q29jb2EubW0KaW5kZXggMTE0ODRkMGM1OTJjMDdmZjk0ZWMxNzdh
MDEyODAxMDc5YzM5NTk3MS4uZTFkYzI5Yjg2MmQ0MjI0M2E5YTI5MWEwZWQxZjVmNDMzZmNkYTFl
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9SZXNvdXJjZVVzYWdlT3Zl
cmxheUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvUmVzb3VyY2VVc2Fn
ZU92ZXJsYXlDb2NvYS5tbQpAQCAtMTYxLDE4ICsxNjEsMTggQEAgc3RydWN0IEhpc3RvcmljUmVz
b3VyY2VVc2FnZURhdGEgewogSGlzdG9yaWNSZXNvdXJjZVVzYWdlRGF0YTo6SGlzdG9yaWNSZXNv
dXJjZVVzYWdlRGF0YSgpCiB7CiAgICAgLy8gVk0gdGFnIGNhdGVnb3JpZXMuCi0gICAgY2F0ZWdv
cmllc1tNZW1vcnlDYXRlZ29yeTo6SlNKSVRdID0gSGlzdG9yaWNNZW1vcnlDYXRlZ29yeUluZm8o
TWVtb3J5Q2F0ZWdvcnk6OkpTSklULCB7IDI1NSwgOTYsIDI1NSB9LCAiSlMgSklUIik7Ci0gICAg
Y2F0ZWdvcmllc1tNZW1vcnlDYXRlZ29yeTo6R2lnYWNhZ2VdID0gSGlzdG9yaWNNZW1vcnlDYXRl
Z29yeUluZm8oTWVtb3J5Q2F0ZWdvcnk6OkdpZ2FjYWdlLCB7IDEwMSwgNzksIDI0MCB9LCAiR2ln
YWNhZ2UiKTsKLSAgICBjYXRlZ29yaWVzW01lbW9yeUNhdGVnb3J5OjpJbWFnZXNdID0gSGlzdG9y
aWNNZW1vcnlDYXRlZ29yeUluZm8oTWVtb3J5Q2F0ZWdvcnk6OkltYWdlcywgQ29sb3I6OnllbGxv
dywgIkltYWdlcyIpOwotICAgIGNhdGVnb3JpZXNbTWVtb3J5Q2F0ZWdvcnk6OkxheWVyc10gPSBI
aXN0b3JpY01lbW9yeUNhdGVnb3J5SW5mbyhNZW1vcnlDYXRlZ29yeTo6TGF5ZXJzLCBDb2xvcjo6
Y3lhbiwgIkxheWVycyIpOwotICAgIGNhdGVnb3JpZXNbTWVtb3J5Q2F0ZWdvcnk6OkxpYmNNYWxs
b2NdID0gSGlzdG9yaWNNZW1vcnlDYXRlZ29yeUluZm8oTWVtb3J5Q2F0ZWdvcnk6OkxpYmNNYWxs
b2MsIENvbG9yOjpncmVlbiwgImxpYmMgbWFsbG9jIik7Ci0gICAgY2F0ZWdvcmllc1tNZW1vcnlD
YXRlZ29yeTo6Ym1hbGxvY10gPSBIaXN0b3JpY01lbW9yeUNhdGVnb3J5SW5mbyhNZW1vcnlDYXRl
Z29yeTo6Ym1hbGxvYywgeyAyNTUsIDk2LCA5NiB9LCAiYm1hbGxvYyIpOwotICAgIGNhdGVnb3Jp
ZXNbTWVtb3J5Q2F0ZWdvcnk6Oklzb0hlYXBdID0gSGlzdG9yaWNNZW1vcnlDYXRlZ29yeUluZm8o
TWVtb3J5Q2F0ZWdvcnk6Oklzb0hlYXAsIHsgMTI4LCAxNTksIDY0IH0sICJJc29IZWFwIik7Ci0g
ICAgY2F0ZWdvcmllc1tNZW1vcnlDYXRlZ29yeTo6T3RoZXJdID0gSGlzdG9yaWNNZW1vcnlDYXRl
Z29yeUluZm8oTWVtb3J5Q2F0ZWdvcnk6Ok90aGVyLCB7IDE5MiwgMjU1LCAwIH0sICJPdGhlciIp
OworICAgIGNhdGVnb3JpZXNbTWVtb3J5Q2F0ZWdvcnk6OkpTSklUXSA9IEhpc3RvcmljTWVtb3J5
Q2F0ZWdvcnlJbmZvKE1lbW9yeUNhdGVnb3J5OjpKU0pJVCwgeyAyNTUsIDk2LCAyNTUgfSwgIkpT
IEpJVCJfcyk7CisgICAgY2F0ZWdvcmllc1tNZW1vcnlDYXRlZ29yeTo6R2lnYWNhZ2VdID0gSGlz
dG9yaWNNZW1vcnlDYXRlZ29yeUluZm8oTWVtb3J5Q2F0ZWdvcnk6OkdpZ2FjYWdlLCB7IDEwMSwg
NzksIDI0MCB9LCAiR2lnYWNhZ2UiX3MpOworICAgIGNhdGVnb3JpZXNbTWVtb3J5Q2F0ZWdvcnk6
OkltYWdlc10gPSBIaXN0b3JpY01lbW9yeUNhdGVnb3J5SW5mbyhNZW1vcnlDYXRlZ29yeTo6SW1h
Z2VzLCBDb2xvcjo6eWVsbG93LCAiSW1hZ2VzIl9zKTsKKyAgICBjYXRlZ29yaWVzW01lbW9yeUNh
dGVnb3J5OjpMYXllcnNdID0gSGlzdG9yaWNNZW1vcnlDYXRlZ29yeUluZm8oTWVtb3J5Q2F0ZWdv
cnk6OkxheWVycywgQ29sb3I6OmN5YW4sICJMYXllcnMiX3MpOworICAgIGNhdGVnb3JpZXNbTWVt
b3J5Q2F0ZWdvcnk6OkxpYmNNYWxsb2NdID0gSGlzdG9yaWNNZW1vcnlDYXRlZ29yeUluZm8oTWVt
b3J5Q2F0ZWdvcnk6OkxpYmNNYWxsb2MsIENvbG9yOjpncmVlbiwgImxpYmMgbWFsbG9jIl9zKTsK
KyAgICBjYXRlZ29yaWVzW01lbW9yeUNhdGVnb3J5OjpibWFsbG9jXSA9IEhpc3RvcmljTWVtb3J5
Q2F0ZWdvcnlJbmZvKE1lbW9yeUNhdGVnb3J5OjpibWFsbG9jLCB7IDI1NSwgOTYsIDk2IH0sICJi
bWFsbG9jIl9zKTsKKyAgICBjYXRlZ29yaWVzW01lbW9yeUNhdGVnb3J5OjpJc29IZWFwXSA9IEhp
c3RvcmljTWVtb3J5Q2F0ZWdvcnlJbmZvKE1lbW9yeUNhdGVnb3J5OjpJc29IZWFwLCB7IDEyOCwg
MTU5LCA2NCB9LCAiSXNvSGVhcCJfcyk7CisgICAgY2F0ZWdvcmllc1tNZW1vcnlDYXRlZ29yeTo6
T3RoZXJdID0gSGlzdG9yaWNNZW1vcnlDYXRlZ29yeUluZm8oTWVtb3J5Q2F0ZWdvcnk6Ok90aGVy
LCB7IDE5MiwgMjU1LCAwIH0sICJPdGhlciJfcyk7CiAKICAgICAvLyBTdWIgY2F0ZWdvcmllcyAo
ZS5nIGJyZWFrZG93biBvZiBibWFsbG9jIHRhZy4pCi0gICAgY2F0ZWdvcmllc1tNZW1vcnlDYXRl
Z29yeTo6R0NIZWFwXSA9IEhpc3RvcmljTWVtb3J5Q2F0ZWdvcnlJbmZvKE1lbW9yeUNhdGVnb3J5
OjpHQ0hlYXAsIHsgMTYwLCAxNjAsIDI1NSB9LCAiR0MgaGVhcCIsIHRydWUpOwotICAgIGNhdGVn
b3JpZXNbTWVtb3J5Q2F0ZWdvcnk6OkdDT3duZWRdID0gSGlzdG9yaWNNZW1vcnlDYXRlZ29yeUlu
Zm8oTWVtb3J5Q2F0ZWdvcnk6OkdDT3duZWQsIHsgMjU1LCAxOTIsIDk2IH0sICJHQyBvd25lZCIs
IHRydWUpOworICAgIGNhdGVnb3JpZXNbTWVtb3J5Q2F0ZWdvcnk6OkdDSGVhcF0gPSBIaXN0b3Jp
Y01lbW9yeUNhdGVnb3J5SW5mbyhNZW1vcnlDYXRlZ29yeTo6R0NIZWFwLCB7IDE2MCwgMTYwLCAy
NTUgfSwgIkdDIGhlYXAiX3MsIHRydWUpOworICAgIGNhdGVnb3JpZXNbTWVtb3J5Q2F0ZWdvcnk6
OkdDT3duZWRdID0gSGlzdG9yaWNNZW1vcnlDYXRlZ29yeUluZm8oTWVtb3J5Q2F0ZWdvcnk6OkdD
T3duZWQsIHsgMjU1LCAxOTIsIDk2IH0sICJHQyBvd25lZCJfcywgdHJ1ZSk7CiAKICNpZm5kZWYg
TkRFQlVHCiAgICAgLy8gRW5zdXJlIHRoaXMgYWxpZ25zIHdpdGggUmVzb3VyY2VVc2FnZURhdGEn
cyBjYXRlZ29yeSBvcmRlci4KQEAgLTMxMSw3ICszMTEsNyBAQCBzdGF0aWMgdm9pZCBkcmF3Q3B1
SGlzdG9yeShDR0NvbnRleHRSZWYgY29udGV4dCwgZmxvYXQgeDEsIGZsb2F0IHkxLCBmbG9hdCB5
MiwgUgogICAgICAgICBpKys7CiAgICAgfSk7CiAKLSAgICBkcmF3R3JhcGhMYWJlbChjb250ZXh0
LCB4MSwgeTIsICJDUFUiKTsKKyAgICBkcmF3R3JhcGhMYWJlbChjb250ZXh0LCB4MSwgeTIsICJD
UFUiX3MpOwogfQogCiBzdGF0aWMgdm9pZCBkcmF3R0NIaXN0b3J5KENHQ29udGV4dFJlZiBjb250
ZXh0LCBmbG9hdCB4MSwgZmxvYXQgeTEsIGZsb2F0IHkyLCBSaW5nQnVmZmVyPHNpemVfdD4mIHNp
emVIaXN0b3J5LCBSaW5nQnVmZmVyPHNpemVfdD4mIGNhcGFjaXR5SGlzdG9yeSkKQEAgLTM1NCw3
ICszNTQsNyBAQCBzdGF0aWMgdm9pZCBkcmF3R0NIaXN0b3J5KENHQ29udGV4dFJlZiBjb250ZXh0
LCBmbG9hdCB4MSwgZmxvYXQgeTEsIGZsb2F0IHkyLCBSaQogICAgICAgICBpKys7CiAgICAgfSk7
CiAKLSAgICBkcmF3R3JhcGhMYWJlbChjb250ZXh0LCB4MSwgeTIsICJHQyIpOworICAgIGRyYXdH
cmFwaExhYmVsKGNvbnRleHQsIHgxLCB5MiwgIkdDIl9zKTsKIH0KIAogc3RhdGljIHZvaWQgZHJh
d01lbUhpc3RvcnkoQ0dDb250ZXh0UmVmIGNvbnRleHQsIGZsb2F0IHgxLCBmbG9hdCB5MSwgZmxv
YXQgeTIsIEhpc3RvcmljUmVzb3VyY2VVc2FnZURhdGEmIGRhdGEpCkBAIC00MDAsNyArNDAwLDcg
QEAgc3RhdGljIHZvaWQgZHJhd01lbUhpc3RvcnkoQ0dDb250ZXh0UmVmIGNvbnRleHQsIGZsb2F0
IHgxLCBmbG9hdCB5MSwgZmxvYXQgeTIsIEgKICAgICAgICAgKytpOwogICAgIH0KIAotICAgIGRy
YXdHcmFwaExhYmVsKGNvbnRleHQsIHgxLCB5MiwgIk1lbSIpOworICAgIGRyYXdHcmFwaExhYmVs
KGNvbnRleHQsIHgxLCB5MiwgIk1lbSJfcyk7CiB9CiAKIHN0YXRpYyBjb25zdCBmbG9hdCBmdWxs
Q2lyY2xlSW5SYWRpYW5zID0gcGlGbG9hdCAqIDI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL2NvY29hL1NldHRpbmdzQmFzZUNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9j
b2NvYS9TZXR0aW5nc0Jhc2VDb2NvYS5tbQppbmRleCBkMjFkOTlkODYxYjhmYTkyODJlOTFhOWFh
NGEzMDFmOGZiNjRkMTc3Li40Nzc0Y2UwOGE1YjhiNTBmNjRhMTYyMDJmNTM4YjRmNGY3ZWYyZTQ4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL1NldHRpbmdzQmFzZUNvY29h
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvU2V0dGluZ3NCYXNlQ29jb2EubW0K
QEAgLTQzLDE1ICs0MywxNSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHZvaWQgU2V0dGluZ3NC
YXNlOjppbml0aWFsaXplRGVmYXVsdEZvbnRGYW1pbGllcygpCiB7Ci0gICAgc2V0U3RhbmRhcmRG
b250RmFtaWx5KCJTb25ndGkgVEMiLCBVU0NSSVBUX1RSQURJVElPTkFMX0hBTik7Ci0gICAgc2V0
U3RhbmRhcmRGb250RmFtaWx5KCJTb25ndGkgU0MiLCBVU0NSSVBUX1NJTVBMSUZJRURfSEFOKTsK
LSAgICBzZXRTdGFuZGFyZEZvbnRGYW1pbHkoIkhpcmFnaW5vIE1pbmNobyBQcm9OIiwgVVNDUklQ
VF9LQVRBS0FOQV9PUl9ISVJBR0FOQSk7Ci0gICAgc2V0U3RhbmRhcmRGb250RmFtaWx5KCJBcHBs
ZU15dW5nam8iLCBVU0NSSVBUX0hBTkdVTCk7Ci0KLSAgICBzZXRTdGFuZGFyZEZvbnRGYW1pbHko
IlRpbWVzIiwgVVNDUklQVF9DT01NT04pOwotICAgIHNldEZpeGVkRm9udEZhbWlseSgiQ291cmll
ciIsIFVTQ1JJUFRfQ09NTU9OKTsKLSAgICBzZXRTZXJpZkZvbnRGYW1pbHkoIlRpbWVzIiwgVVND
UklQVF9DT01NT04pOwotICAgIHNldFNhbnNTZXJpZkZvbnRGYW1pbHkoIkhlbHZldGljYSIsIFVT
Q1JJUFRfQ09NTU9OKTsKKyAgICBzZXRTdGFuZGFyZEZvbnRGYW1pbHkoIlNvbmd0aSBUQyJfcywg
VVNDUklQVF9UUkFESVRJT05BTF9IQU4pOworICAgIHNldFN0YW5kYXJkRm9udEZhbWlseSgiU29u
Z3RpIFNDIl9zLCBVU0NSSVBUX1NJTVBMSUZJRURfSEFOKTsKKyAgICBzZXRTdGFuZGFyZEZvbnRG
YW1pbHkoIkhpcmFnaW5vIE1pbmNobyBQcm9OIl9zLCBVU0NSSVBUX0tBVEFLQU5BX09SX0hJUkFH
QU5BKTsKKyAgICBzZXRTdGFuZGFyZEZvbnRGYW1pbHkoIkFwcGxlTXl1bmdqbyJfcywgVVNDUklQ
VF9IQU5HVUwpOworCisgICAgc2V0U3RhbmRhcmRGb250RmFtaWx5KCJUaW1lcyJfcywgVVNDUklQ
VF9DT01NT04pOworICAgIHNldEZpeGVkRm9udEZhbWlseSgiQ291cmllciJfcywgVVNDUklQVF9D
T01NT04pOworICAgIHNldFNlcmlmRm9udEZhbWlseSgiVGltZXMiX3MsIFVTQ1JJUFRfQ09NTU9O
KTsKKyAgICBzZXRTYW5zU2VyaWZGb250RmFtaWx5KCJIZWx2ZXRpY2EiX3MsIFVTQ1JJUFRfQ09N
TU9OKTsKIH0KIAogYm9vbCBTZXR0aW5nc0Jhc2U6OnBsYXRmb3JtRGVmYXVsdE1lZGlhU291cmNl
RW5hYmxlZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9QYWdlTWFjLm1t
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvUGFnZU1hYy5tbQppbmRleCA0NDlhOGZmNmNkNjk0
ZDI0YzVhZjE0YmRlYWY1NGM2MjRjMjJjMTFiLi45ZjJkM2Y1ZmQzZGY3ZmM2NWI4ZjJiZDUyY2M2
OWYyMmJiMWJhY2U3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9QYWdlTWFj
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1BhZ2VNYWMubW0KQEAgLTU3LDE1ICs1
NywxNSBAQCB2b2lkIFBhZ2U6OnBsYXRmb3JtSW5pdGlhbGl6ZSgpCiAgICAgc3RhdGljIHN0ZDo6
b25jZV9mbGFnIG9uY2VGbGFnOwogICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbXSB7CiAj
aWYgRU5BQkxFKFRSRUVfREVCVUdHSU5HKQotICAgICAgICBQQUw6OnJlZ2lzdGVyTm90aWZ5Q2Fs
bGJhY2soImNvbS5hcHBsZS5XZWJLaXQuc2hvd1JlbmRlclRyZWUiLCBwcmludFJlbmRlclRyZWVG
b3JMaXZlRG9jdW1lbnRzKTsKLSAgICAgICAgUEFMOjpyZWdpc3Rlck5vdGlmeUNhbGxiYWNrKCJj
b20uYXBwbGUuV2ViS2l0LnNob3dMYXllclRyZWUiLCBwcmludExheWVyVHJlZUZvckxpdmVEb2N1
bWVudHMpOwotICAgICAgICBQQUw6OnJlZ2lzdGVyTm90aWZ5Q2FsbGJhY2soImNvbS5hcHBsZS5X
ZWJLaXQuc2hvd0dyYXBoaWNzTGF5ZXJUcmVlIiwgcHJpbnRHcmFwaGljc0xheWVyVHJlZUZvckxp
dmVEb2N1bWVudHMpOworICAgICAgICBQQUw6OnJlZ2lzdGVyTm90aWZ5Q2FsbGJhY2soImNvbS5h
cHBsZS5XZWJLaXQuc2hvd1JlbmRlclRyZWUiX3MsIHByaW50UmVuZGVyVHJlZUZvckxpdmVEb2N1
bWVudHMpOworICAgICAgICBQQUw6OnJlZ2lzdGVyTm90aWZ5Q2FsbGJhY2soImNvbS5hcHBsZS5X
ZWJLaXQuc2hvd0xheWVyVHJlZSJfcywgcHJpbnRMYXllclRyZWVGb3JMaXZlRG9jdW1lbnRzKTsK
KyAgICAgICAgUEFMOjpyZWdpc3Rlck5vdGlmeUNhbGxiYWNrKCJjb20uYXBwbGUuV2ViS2l0LnNo
b3dHcmFwaGljc0xheWVyVHJlZSJfcywgcHJpbnRHcmFwaGljc0xheWVyVHJlZUZvckxpdmVEb2N1
bWVudHMpOwogI2lmIEVOQUJMRShMQVlPVVRfRk9STUFUVElOR19DT05URVhUKQotICAgICAgICBQ
QUw6OnJlZ2lzdGVyTm90aWZ5Q2FsbGJhY2soImNvbS5hcHBsZS5XZWJLaXQuc2hvd0xheW91dFRy
ZWUiLCBMYXlvdXQ6OnByaW50TGF5b3V0VHJlZUZvckxpdmVEb2N1bWVudHMpOworICAgICAgICBQ
QUw6OnJlZ2lzdGVyTm90aWZ5Q2FsbGJhY2soImNvbS5hcHBsZS5XZWJLaXQuc2hvd0xheW91dFRy
ZWUiX3MsIExheW91dDo6cHJpbnRMYXlvdXRUcmVlRm9yTGl2ZURvY3VtZW50cyk7CiAjZW5kaWYK
ICNlbmRpZiAvLyBFTkFCTEUoVFJFRV9ERUJVR0dJTkcpCiAKLSAgICAgICAgUEFMOjpyZWdpc3Rl
ck5vdGlmeUNhbGxiYWNrKCJjb20uYXBwbGUuV2ViS2l0LnNob3dBbGxEb2N1bWVudHMiLCBbXSB7
CisgICAgICAgIFBBTDo6cmVnaXN0ZXJOb3RpZnlDYWxsYmFjaygiY29tLmFwcGxlLldlYktpdC5z
aG93QWxsRG9jdW1lbnRzIl9zLCBbXSB7CiAgICAgICAgICAgICB1bnNpZ25lZCBudW1QYWdlcyA9
IDA7CiAgICAgICAgICAgICBQYWdlOjpmb3JFYWNoUGFnZShbJm51bVBhZ2VzXShQYWdlJikgewog
ICAgICAgICAgICAgICAgICsrbnVtUGFnZXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xv
Y2FsaXplZFN0cmluZ3MuY3BwCmluZGV4IGNmNWQwZTAyNmNkZjgzMzcyMmU1MWNhYzBiY2M3ZjEz
NGE2MjVlOWUuLjhhN2U4ZWY2YmNlMjNjMWY4NGFkNDAzMDZjZDZmNWY1YzkwZTU4ZGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwCkBAIC02NTUsNyAr
NjU1LDcgQEAgU3RyaW5nIEFYV2Vla0ZpZWxkVGV4dCgpCiAgICAgcmV0dXJuIFdFQl9VSV9TVFJJ
TkcoIndlZWsgYW5kIHllYXIgZmllbGQiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9u
IGZvciBhIHRpbWUgZmllbGQuIik7CiB9CiAKLVN0cmluZyBBWEFSSUFDb250ZW50R3JvdXBUZXh0
KGNvbnN0IFN0cmluZyYgYXJpYVR5cGUpCitTdHJpbmcgQVhBUklBQ29udGVudEdyb3VwVGV4dChT
dHJpbmdWaWV3IGFyaWFUeXBlKQogewogICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQUFwcGxpY2F0
aW9uQWxlcnQiKQogICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiYWxlcnQiLCAiQW4gQVJJ
QSBhY2Nlc3NpYmlsaXR5IGdyb3VwIHRoYXQgYWN0cyBhcyBhbiBhbGVydC4iKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaAppbmRleCBiMTgxZjFlZDhhMGI4OGMx
ZmNmY2QwZTg2MTcyMzRiYjI5NDkzZGFlLi5hMjBiNTg4ZTY5MzcxNjlhMTA2N2QzOWQ3YzEwOWYz
NDU5ZThjMzk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRT
dHJpbmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5o
CkBAIC0xOTUsNyArMTk1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIFN0cmluZyBBWE1v
bnRoRmllbGRUZXh0KCk7CiAgICAgU3RyaW5nIEFYTnVtYmVyRmllbGRUZXh0KCk7CiAgICAgU3Ry
aW5nIEFYV2Vla0ZpZWxkVGV4dCgpOwotICAgIFN0cmluZyBBWEFSSUFDb250ZW50R3JvdXBUZXh0
KGNvbnN0IFN0cmluZyYgYXJpYVR5cGUpOworICAgIFN0cmluZyBBWEFSSUFDb250ZW50R3JvdXBU
ZXh0KFN0cmluZ1ZpZXcgYXJpYVR5cGUpOwogICAgIFN0cmluZyBBWEhvcml6b250YWxSdWxlRGVz
Y3JpcHRpb25UZXh0KCk7CiAgICAgU3RyaW5nIEFYTWFya1RleHQoKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZC5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vUGFzdGVib2FyZC5oCmluZGV4IGFlYmEwYTNiNDRkODY2NmVjZGIyMjFiMzM1NzBkNGNj
ZGE1NjY0MjkuLjFjZjQxMDhmMDhlNjMwNjU4ZjlhM2UzMWZlNGJjZTk2M2UzZTRjY2EgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkLmgKQEAgLTM3NSw5ICszNzUsOSBAQCBleHRlcm4g
TlNTdHJpbmcgKlVJQ29sb3JQYm9hcmRUeXBlOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShNQUMp
Ci1leHRlcm4gY29uc3QgY2hhciogY29uc3QgV2ViQXJjaGl2ZVBib2FyZFR5cGU7Ci1leHRlcm4g
Y29uc3QgY2hhciogY29uc3QgV2ViVVJMTmFtZVBib2FyZFR5cGU7Ci1leHRlcm4gY29uc3QgY2hh
ciogY29uc3QgV2ViVVJMc1dpdGhUaXRsZXNQYm9hcmRUeXBlOworZXh0ZXJuIGNvbnN0IEFTQ0lJ
TGl0ZXJhbCBXZWJBcmNoaXZlUGJvYXJkVHlwZTsKK2V4dGVybiBjb25zdCBBU0NJSUxpdGVyYWwg
V2ViVVJMTmFtZVBib2FyZFR5cGU7CitleHRlcm4gY29uc3QgQVNDSUlMaXRlcmFsIFdlYlVSTHNX
aXRoVGl0bGVzUGJvYXJkVHlwZTsKICNlbmRpZgogCiAjaWYgIVBMQVRGT1JNKEdUSykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmRDdXN0b21EYXRhLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkQ3VzdG9tRGF0YS5oCmluZGV4IDJiZTgx
ZDI5MzhhM2RiZDA5MDI2Y2E2ZWM2NGFjMzI4N2U2YWJjMDMuLjI1NmY0NDU0MjkwMzJiYjQyZjMx
M2Q5MjBhZmJmZmQxYjAyM2E3N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1Bhc3RlYm9hcmRDdXN0b21EYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFz
dGVib2FyZEN1c3RvbURhdGEuaApAQCAtNzYsNyArNzYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBj
bGVhcihjb25zdCBTdHJpbmcmIHR5cGUpOwogCiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgV0VC
Q09SRV9FWFBPUlQgc3RhdGljIGNvbnN0IGNoYXIqIGNvY29hVHlwZSgpOworICAgIFdFQkNPUkVf
RVhQT1JUIHN0YXRpYyBBU0NJSUxpdGVyYWwgY29jb2FUeXBlKCk7CiAjZWxpZiBQTEFURk9STShH
VEspCiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGd0a1R5cGUoKSB7IHJldHVybiAib3JnLndlYmtp
dGd0ay5XZWJLaXQuY3VzdG9tLXBhc3RlYm9hcmQtZGF0YSI7IH0KICNlbmRpZgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvTWVkaWFTZXNzaW9uTWFuYWdl
ckNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvTWVkaWFTZXNz
aW9uTWFuYWdlckNvY29hLm1tCmluZGV4IGEwZTkwMmYxMmNlN2ViMTdjNzc2ZDQzYzEzNWM4NTMy
NmM3NWNmZTAuLjk2Y2RmYWEzNjIxYzVjOTYyZGEwZTA1MzAyZDRlYTlkOWNkNzA4N2MgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL01lZGlhU2Vzc2lvbk1h
bmFnZXJDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9N
ZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EubW0KQEAgLTQ1Miw4ICs0NTIsOCBAQCB2b2lkIE1lZGlh
U2Vzc2lvbk1hbmFnZXJDb2NvYTo6dXBkYXRlTm93UGxheWluZ0luZm8oKQogCiAgICAgaWYgKG1f
bm93UGxheWluZ01hbmFnZXItPnNldE5vd1BsYXlpbmdJbmZvKCpub3dQbGF5aW5nSW5mbykpIHsK
ICNpZmRlZiBMT0dfRElTQUJMRUQKLSAgICAgICAgU3RyaW5nIHNyYyA9ICJzcmMiOwotICAgICAg
ICBTdHJpbmcgdGl0bGUgPSAidGl0bGUiOworICAgICAgICBTdHJpbmcgc3JjID0gInNyYyJfczsK
KyAgICAgICAgU3RyaW5nIHRpdGxlID0gInRpdGxlIl9zOwogI2Vsc2UKICAgICAgICAgU3RyaW5n
IHNyYyA9IG5vd1BsYXlpbmdJbmZvLT5hcnR3b3JrID8gbm93UGxheWluZ0luZm8tPmFydHdvcmst
PnNyYyA6IFN0cmluZygpOwogICAgICAgICBTdHJpbmcgdGl0bGUgPSBub3dQbGF5aW5nSW5mby0+
dGl0bGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9LZXlFdmVu
dENvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvS2V5RXZlbnRDb2NvYS5t
bQppbmRleCBmNGVlZTY1ZjA5OTNiOWQ0ZDliZDZmZTllZGE3YWQwYTYxNTM3MzUyLi4xYzVlMjQz
Yzg1MmEzODUwOWM4OWNjNTkxOWNmYzE0MjA2NzE5OWMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9jb2NvYS9LZXlFdmVudENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2NvY29hL0tleUV2ZW50Q29jb2EubW0KQEAgLTIyMCw3ICsyMjAsNyBAQCBTdHJp
bmcga2V5SWRlbnRpZmllckZvckNoYXJDb2RlKHVuaWNoYXIgY2hhckNvZGUpCiAKICAgICAgICAg
Ly8gIkFsdCIKICAgICAgICAgY2FzZSBOU01lbnVGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJl
dHVybiAiQWx0IjsKKyAgICAgICAgICAgIHJldHVybiAiQWx0Il9zOwogCiAgICAgICAgIC8vICJB
cHBzIgogICAgICAgICAvLyAiQnJvd3NlckJhY2siCkBAIC0yMzMsNyArMjMzLDcgQEAgU3RyaW5n
IGtleUlkZW50aWZpZXJGb3JDaGFyQ29kZSh1bmljaGFyIGNoYXJDb2RlKQogCiAgICAgICAgIC8v
ICJDbGVhciIKICAgICAgICAgY2FzZSBOU0NsZWFyTGluZUZ1bmN0aW9uS2V5OgotICAgICAgICAg
ICAgcmV0dXJuICJDbGVhciI7CisgICAgICAgICAgICByZXR1cm4gIkNsZWFyIl9zOwogCiAgICAg
ICAgIC8vICJDb2RlSW5wdXQiCiAgICAgICAgIC8vICJDb21wb3NlIgpAQCAtMjQ1LDEwMCArMjQ1
LDEwMCBAQCBTdHJpbmcga2V5SWRlbnRpZmllckZvckNoYXJDb2RlKHVuaWNoYXIgY2hhckNvZGUp
CiAKICAgICAgICAgLy8gIkRvd24iCiAgICAgICAgIGNhc2UgTlNEb3duQXJyb3dGdW5jdGlvbktl
eToKLSAgICAgICAgICAgIHJldHVybiAiRG93biI7CisgICAgICAgICAgICByZXR1cm4gIkRvd24i
X3M7CiAgICAgICAgIC8vICJFbmQiCiAgICAgICAgIGNhc2UgTlNFbmRGdW5jdGlvbktleToKLSAg
ICAgICAgICAgIHJldHVybiAiRW5kIjsKKyAgICAgICAgICAgIHJldHVybiAiRW5kIl9zOwogICAg
ICAgICAvLyAiRW50ZXIiCiAgICAgICAgIGNhc2UgMHgzOiBjYXNlIDB4QTogY2FzZSAweEQ6IC8v
IE1hY2ludG9zaCBjYWxscyB0aGUgb25lIG9uIHRoZSBtYWluIGtleWJvYXJkIFJldHVybiwgYnV0
IFdpbmRvd3MgY2FsbHMgaXQgRW50ZXIsIHNvIHdlJ2xsIGRvIHRoZSBzYW1lIGZvciB0aGUgRE9N
Ci0gICAgICAgICAgICByZXR1cm4gIkVudGVyIjsKKyAgICAgICAgICAgIHJldHVybiAiRW50ZXIi
X3M7CiAKICAgICAgICAgLy8gIkVyYXNlRW9mIgogCiAgICAgICAgIC8vICJFeGVjdXRlIgogICAg
ICAgICBjYXNlIE5TRXhlY3V0ZUZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJFeGVj
dXRlIjsKKyAgICAgICAgICAgIHJldHVybiAiRXhlY3V0ZSJfczsKIAogICAgICAgICAvLyAiRXhz
ZWwiCiAKICAgICAgICAgLy8gIkYxIgogICAgICAgICBjYXNlIE5TRjFGdW5jdGlvbktleToKLSAg
ICAgICAgICAgIHJldHVybiAiRjEiOworICAgICAgICAgICAgcmV0dXJuICJGMSJfczsKICAgICAg
ICAgLy8gIkYyIgogICAgICAgICBjYXNlIE5TRjJGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJl
dHVybiAiRjIiOworICAgICAgICAgICAgcmV0dXJuICJGMiJfczsKICAgICAgICAgLy8gIkYzIgog
ICAgICAgICBjYXNlIE5TRjNGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiRjMiOwor
ICAgICAgICAgICAgcmV0dXJuICJGMyJfczsKICAgICAgICAgLy8gIkY0IgogICAgICAgICBjYXNl
IE5TRjRGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiRjQiOworICAgICAgICAgICAg
cmV0dXJuICJGNCJfczsKICAgICAgICAgLy8gIkY1IgogICAgICAgICBjYXNlIE5TRjVGdW5jdGlv
bktleToKLSAgICAgICAgICAgIHJldHVybiAiRjUiOworICAgICAgICAgICAgcmV0dXJuICJGNSJf
czsKICAgICAgICAgLy8gIkY2IgogICAgICAgICBjYXNlIE5TRjZGdW5jdGlvbktleToKLSAgICAg
ICAgICAgIHJldHVybiAiRjYiOworICAgICAgICAgICAgcmV0dXJuICJGNiJfczsKICAgICAgICAg
Ly8gIkY3IgogICAgICAgICBjYXNlIE5TRjdGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVy
biAiRjciOworICAgICAgICAgICAgcmV0dXJuICJGNyJfczsKICAgICAgICAgLy8gIkY4IgogICAg
ICAgICBjYXNlIE5TRjhGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiRjgiOworICAg
ICAgICAgICAgcmV0dXJuICJGOCJfczsKICAgICAgICAgLy8gIkY5IgogICAgICAgICBjYXNlIE5T
RjlGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiRjkiOworICAgICAgICAgICAgcmV0
dXJuICJGOSJfczsKICAgICAgICAgLy8gIkYxMCIKICAgICAgICAgY2FzZSBOU0YxMEZ1bmN0aW9u
S2V5OgotICAgICAgICAgICAgcmV0dXJuICJGMTAiOworICAgICAgICAgICAgcmV0dXJuICJGMTAi
X3M7CiAgICAgICAgIC8vICJGMTEiCiAgICAgICAgIGNhc2UgTlNGMTFGdW5jdGlvbktleToKLSAg
ICAgICAgICAgIHJldHVybiAiRjExIjsKKyAgICAgICAgICAgIHJldHVybiAiRjExIl9zOwogICAg
ICAgICAvLyAiRjEyIgogICAgICAgICBjYXNlIE5TRjEyRnVuY3Rpb25LZXk6Ci0gICAgICAgICAg
ICByZXR1cm4gIkYxMiI7CisgICAgICAgICAgICByZXR1cm4gIkYxMiJfczsKICAgICAgICAgLy8g
IkYxMyIKICAgICAgICAgY2FzZSBOU0YxM0Z1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJu
ICJGMTMiOworICAgICAgICAgICAgcmV0dXJuICJGMTMiX3M7CiAgICAgICAgIC8vICJGMTQiCiAg
ICAgICAgIGNhc2UgTlNGMTRGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiRjE0IjsK
KyAgICAgICAgICAgIHJldHVybiAiRjE0Il9zOwogICAgICAgICAvLyAiRjE1IgogICAgICAgICBj
YXNlIE5TRjE1RnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkYxNSI7CisgICAgICAg
ICAgICByZXR1cm4gIkYxNSJfczsKICAgICAgICAgLy8gIkYxNiIKICAgICAgICAgY2FzZSBOU0Yx
NkZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJGMTYiOworICAgICAgICAgICAgcmV0
dXJuICJGMTYiX3M7CiAgICAgICAgIC8vICJGMTciCiAgICAgICAgIGNhc2UgTlNGMTdGdW5jdGlv
bktleToKLSAgICAgICAgICAgIHJldHVybiAiRjE3IjsKKyAgICAgICAgICAgIHJldHVybiAiRjE3
Il9zOwogICAgICAgICAvLyAiRjE4IgogICAgICAgICBjYXNlIE5TRjE4RnVuY3Rpb25LZXk6Ci0g
ICAgICAgICAgICByZXR1cm4gIkYxOCI7CisgICAgICAgICAgICByZXR1cm4gIkYxOCJfczsKICAg
ICAgICAgLy8gIkYxOSIKICAgICAgICAgY2FzZSBOU0YxOUZ1bmN0aW9uS2V5OgotICAgICAgICAg
ICAgcmV0dXJuICJGMTkiOworICAgICAgICAgICAgcmV0dXJuICJGMTkiX3M7CiAgICAgICAgIC8v
ICJGMjAiCiAgICAgICAgIGNhc2UgTlNGMjBGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVy
biAiRjIwIjsKKyAgICAgICAgICAgIHJldHVybiAiRjIwIl9zOwogICAgICAgICAvLyAiRjIxIgog
ICAgICAgICBjYXNlIE5TRjIxRnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkYyMSI7
CisgICAgICAgICAgICByZXR1cm4gIkYyMSJfczsKICAgICAgICAgLy8gIkYyMiIKICAgICAgICAg
Y2FzZSBOU0YyMkZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJGMjIiOworICAgICAg
ICAgICAgcmV0dXJuICJGMjIiX3M7CiAgICAgICAgIC8vICJGMjMiCiAgICAgICAgIGNhc2UgTlNG
MjNGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiRjIzIjsKKyAgICAgICAgICAgIHJl
dHVybiAiRjIzIl9zOwogICAgICAgICAvLyAiRjI0IgogICAgICAgICBjYXNlIE5TRjI0RnVuY3Rp
b25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkYyNCI7CisgICAgICAgICAgICByZXR1cm4gIkYy
NCJfczsKIAogICAgICAgICAvLyAiRmluYWxNb2RlIgogCiAgICAgICAgIC8vICJGaW5kIgogICAg
ICAgICBjYXNlIE5TRmluZEZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJGaW5kIjsK
KyAgICAgICAgICAgIHJldHVybiAiRmluZCJfczsKIAogICAgICAgICAvLyAiRnVsbFdpZHRoIgog
ICAgICAgICAvLyAiSGFsZldpZHRoIgpAQCAtMzQ3LDE2ICszNDcsMTYgQEAgU3RyaW5nIGtleUlk
ZW50aWZpZXJGb3JDaGFyQ29kZSh1bmljaGFyIGNoYXJDb2RlKQogCiAgICAgICAgIC8vICJIZWxw
IgogICAgICAgICBjYXNlIE5TSGVscEZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJI
ZWxwIjsKKyAgICAgICAgICAgIHJldHVybiAiSGVscCJfczsKIAogICAgICAgICAvLyAiSGlyYWdh
bmEiCiAKICAgICAgICAgLy8gIkhvbWUiCiAgICAgICAgIGNhc2UgTlNIb21lRnVuY3Rpb25LZXk6
Ci0gICAgICAgICAgICByZXR1cm4gIkhvbWUiOworICAgICAgICAgICAgcmV0dXJuICJIb21lIl9z
OwogICAgICAgICAvLyAiSW5zZXJ0IgogICAgICAgICBjYXNlIE5TSW5zZXJ0RnVuY3Rpb25LZXk6
Ci0gICAgICAgICAgICByZXR1cm4gIkluc2VydCI7CisgICAgICAgICAgICByZXR1cm4gIkluc2Vy
dCJfczsKIAogICAgICAgICAvLyAiSmFwYW5lc2VIaXJhZ2FuYSIKICAgICAgICAgLy8gIkphcGFu
ZXNlS2F0YWthbmEiCkBAIC0zNzEsNyArMzcxLDcgQEAgU3RyaW5nIGtleUlkZW50aWZpZXJGb3JD
aGFyQ29kZSh1bmljaGFyIGNoYXJDb2RlKQogCiAgICAgICAgIC8vICJMZWZ0IgogICAgICAgICBj
YXNlIE5TTGVmdEFycm93RnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkxlZnQiOwor
ICAgICAgICAgICAgcmV0dXJuICJMZWZ0Il9zOwogCiAgICAgICAgIC8vICJNZXRhIgogICAgICAg
ICAvLyAiTWVkaWFOZXh0VHJhY2siCkBAIC0zODEsNTkgKzM4MSw1OSBAQCBTdHJpbmcga2V5SWRl
bnRpZmllckZvckNoYXJDb2RlKHVuaWNoYXIgY2hhckNvZGUpCiAKICAgICAgICAgLy8gIk1vZGVD
aGFuZ2UiCiAgICAgICAgIGNhc2UgTlNNb2RlU3dpdGNoRnVuY3Rpb25LZXk6Ci0gICAgICAgICAg
ICByZXR1cm4gIk1vZGVDaGFuZ2UiOworICAgICAgICAgICAgcmV0dXJuICJNb2RlQ2hhbmdlIl9z
OwogCiAgICAgICAgIC8vICJOb25jb252ZXJ0IgogICAgICAgICAvLyAiTnVtTG9jayIKIAogICAg
ICAgICAvLyAiUGFnZURvd24iCiAgICAgICAgIGNhc2UgTlNQYWdlRG93bkZ1bmN0aW9uS2V5Ogot
ICAgICAgICAgICAgcmV0dXJuICJQYWdlRG93biI7CisgICAgICAgICAgICByZXR1cm4gIlBhZ2VE
b3duIl9zOwogICAgICAgICAvLyAiUGFnZVVwIgogICAgICAgICBjYXNlIE5TUGFnZVVwRnVuY3Rp
b25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIlBhZ2VVcCI7CisgICAgICAgICAgICByZXR1cm4g
IlBhZ2VVcCJfczsKIAogICAgICAgICAvLyAiUGFzdGUiCiAKICAgICAgICAgLy8gIlBhdXNlIgog
ICAgICAgICBjYXNlIE5TUGF1c2VGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiUGF1
c2UiOworICAgICAgICAgICAgcmV0dXJuICJQYXVzZSJfczsKIAogICAgICAgICAvLyAiUGxheSIK
ICAgICAgICAgLy8gIlByZXZpb3VzQ2FuZGlkYXRlIgogCiAgICAgICAgIC8vICJQcmludFNjcmVl
biIKICAgICAgICAgY2FzZSBOU1ByaW50U2NyZWVuRnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICBy
ZXR1cm4gIlByaW50U2NyZWVuIjsKKyAgICAgICAgICAgIHJldHVybiAiUHJpbnRTY3JlZW4iX3M7
CiAKICAgICAgICAgLy8gIlByb2Nlc3MiCiAgICAgICAgIC8vICJQcm9wcyIKIAogICAgICAgICAv
LyAiUmlnaHQiCiAgICAgICAgIGNhc2UgTlNSaWdodEFycm93RnVuY3Rpb25LZXk6Ci0gICAgICAg
ICAgICByZXR1cm4gIlJpZ2h0IjsKKyAgICAgICAgICAgIHJldHVybiAiUmlnaHQiX3M7CiAKICAg
ICAgICAgLy8gIlJvbWFuQ2hhcmFjdGVycyIKIAogICAgICAgICAvLyAiU2Nyb2xsIgogICAgICAg
ICBjYXNlIE5TU2Nyb2xsTG9ja0Z1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJTY3Jv
bGwiOworICAgICAgICAgICAgcmV0dXJuICJTY3JvbGwiX3M7CiAgICAgICAgIC8vICJTZWxlY3Qi
CiAgICAgICAgIGNhc2UgTlNTZWxlY3RGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAi
U2VsZWN0IjsKKyAgICAgICAgICAgIHJldHVybiAiU2VsZWN0Il9zOwogCiAgICAgICAgIC8vICJT
ZWxlY3RNZWRpYSIKICAgICAgICAgLy8gIlNoaWZ0IgogCiAgICAgICAgIC8vICJTdG9wIgogICAg
ICAgICBjYXNlIE5TU3RvcEZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJTdG9wIjsK
KyAgICAgICAgICAgIHJldHVybiAiU3RvcCJfczsKICAgICAgICAgLy8gIlVwIgogICAgICAgICBj
YXNlIE5TVXBBcnJvd0Z1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJVcCI7CisgICAg
ICAgICAgICByZXR1cm4gIlVwIl9zOwogICAgICAgICAvLyAiVW5kbyIKICAgICAgICAgY2FzZSBO
U1VuZG9GdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiVW5kbyI7CisgICAgICAgICAg
ICByZXR1cm4gIlVuZG8iX3M7CiAKICAgICAgICAgLy8gIlZvbHVtZURvd24iCiAgICAgICAgIC8v
ICJWb2x1bWVNdXRlIgpAQCAtNDQzLDM4ICs0NDMsMzggQEAgU3RyaW5nIGtleUlkZW50aWZpZXJG
b3JDaGFyQ29kZSh1bmljaGFyIGNoYXJDb2RlKQogCiAgICAgICAgIC8vIE1vcmUgZnVuY3Rpb24g
a2V5cywgbm90IGluIHRoZSBrZXkgaWRlbnRpZmllciBzcGVjaWZpY2F0aW9uLgogICAgICAgICBj
YXNlIE5TRjI1RnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkYyNSI7CisgICAgICAg
ICAgICByZXR1cm4gIkYyNSJfczsKICAgICAgICAgY2FzZSBOU0YyNkZ1bmN0aW9uS2V5OgotICAg
ICAgICAgICAgcmV0dXJuICJGMjYiOworICAgICAgICAgICAgcmV0dXJuICJGMjYiX3M7CiAgICAg
ICAgIGNhc2UgTlNGMjdGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiRjI3IjsKKyAg
ICAgICAgICAgIHJldHVybiAiRjI3Il9zOwogICAgICAgICBjYXNlIE5TRjI4RnVuY3Rpb25LZXk6
Ci0gICAgICAgICAgICByZXR1cm4gIkYyOCI7CisgICAgICAgICAgICByZXR1cm4gIkYyOCJfczsK
ICAgICAgICAgY2FzZSBOU0YyOUZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJGMjki
OworICAgICAgICAgICAgcmV0dXJuICJGMjkiX3M7CiAgICAgICAgIGNhc2UgTlNGMzBGdW5jdGlv
bktleToKLSAgICAgICAgICAgIHJldHVybiAiRjMwIjsKKyAgICAgICAgICAgIHJldHVybiAiRjMw
Il9zOwogICAgICAgICBjYXNlIE5TRjMxRnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4g
IkYzMSI7CisgICAgICAgICAgICByZXR1cm4gIkYzMSJfczsKICAgICAgICAgY2FzZSBOU0YzMkZ1
bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJGMzIiOworICAgICAgICAgICAgcmV0dXJu
ICJGMzIiX3M7CiAgICAgICAgIGNhc2UgTlNGMzNGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJl
dHVybiAiRjMzIjsKKyAgICAgICAgICAgIHJldHVybiAiRjMzIl9zOwogICAgICAgICBjYXNlIE5T
RjM0RnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkYzNCI7CisgICAgICAgICAgICBy
ZXR1cm4gIkYzNCJfczsKICAgICAgICAgY2FzZSBOU0YzNUZ1bmN0aW9uS2V5OgotICAgICAgICAg
ICAgcmV0dXJuICJGMzUiOworICAgICAgICAgICAgcmV0dXJuICJGMzUiX3M7CiAKICAgICAgICAg
Ly8gVHVybiAweDdGIGludG8gMHgwOCwgYmVjYXVzZSBiYWNrc3BhY2UgbmVlZHMgdG8gYWx3YXlz
IGJlIDB4MDguCiAgICAgICAgIGNhc2UgMHg3RjoKLSAgICAgICAgICAgIHJldHVybiAiVSswMDA4
IjsKKyAgICAgICAgICAgIHJldHVybiAiVSswMDA4Il9zOwogICAgICAgICAvLyBTdGFuZGFyZCBz
YXlzIHRoYXQgREVMIGJlY29tZXMgVSswMDdGLgogICAgICAgICBjYXNlIE5TRGVsZXRlRnVuY3Rp
b25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIlUrMDA3RiI7CisgICAgICAgICAgICByZXR1cm4g
IlUrMDA3RiJfczsKIAogICAgICAgICAvLyBBbHdheXMgdXNlIDB4MDkgZm9yIHRhYiBpbnN0ZWFk
IG9mIEFwcEtpdCdzIGJhY2t0YWIgY2hhcmFjdGVyLgogICAgICAgICBjYXNlIE5TQmFja1RhYkNo
YXJhY3RlcjoKLSAgICAgICAgICAgIHJldHVybiAiVSswMDA5IjsKKyAgICAgICAgICAgIHJldHVy
biAiVSswMDA5Il9zOwogCiAgICAgICAgIGNhc2UgTlNCZWdpbkZ1bmN0aW9uS2V5OgogICAgICAg
ICBjYXNlIE5TQnJlYWtGdW5jdGlvbktleToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2NvY29hL1Bhc3RlYm9hcmRDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2NvY29hL1Bhc3RlYm9hcmRDb2NvYS5tbQppbmRleCAwNjk2MWZiYTQ4YWQ5MWI0MjNiY2E5ODVi
NmMyZTVjNjIxMDFmYzJmLi41OTg0MmYxMjY5YzViNWVkZjA5NWJkOWNiOGVlMzMyNmQ2ODdhZTFi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9QYXN0ZWJvYXJkQ29j
b2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvUGFzdGVib2FyZENvY29h
Lm1tCkBAIC0xMDQsMjUgKzEwNCwyNSBAQCBzdGF0aWMgY29uc3QgY2hhciogaW1hZ2VUeXBlVG9N
SU1FVHlwZShJbWFnZVR5cGUgdHlwZSkKICAgICB9CiB9CiAKLXN0YXRpYyBjb25zdCBjaGFyKiBp
bWFnZVR5cGVUb0Zha2VGaWxlbmFtZShJbWFnZVR5cGUgdHlwZSkKK3N0YXRpYyBBU0NJSUxpdGVy
YWwgaW1hZ2VUeXBlVG9GYWtlRmlsZW5hbWUoSW1hZ2VUeXBlIHR5cGUpCiB7CiAgICAgc3dpdGNo
ICh0eXBlKSB7CiAgICAgY2FzZSBJbWFnZVR5cGU6OkludmFsaWQ6CiAgICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIEFT
Q0lJTGl0ZXJhbDo6bnVsbCgpOwogICAgIGNhc2UgSW1hZ2VUeXBlOjpUSUZGOgogI2lmIFBMQVRG
T1JNKE1BQykKLSAgICAgICAgcmV0dXJuICJpbWFnZS5wbmciOyAvLyBGb3IgV2ViIGNvbXBhdGli
aWxpdHksIHdlIHByZXRlbmQgdG8gaGF2ZSBQTkcgaW5zdGVhZC4KKyAgICAgICAgcmV0dXJuICJp
bWFnZS5wbmciX3M7IC8vIEZvciBXZWIgY29tcGF0aWJpbGl0eSwgd2UgcHJldGVuZCB0byBoYXZl
IFBORyBpbnN0ZWFkLgogI2Vsc2UKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAg
ICAgIHJldHVybiBudWxscHRyOworICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsOjpudWxsKCk7
CiAjZW5kaWYKICAgICBjYXNlIEltYWdlVHlwZTo6UE5HOgotICAgICAgICByZXR1cm4gImltYWdl
LnBuZyI7CisgICAgICAgIHJldHVybiAiaW1hZ2UucG5nIl9zOwogICAgIGNhc2UgSW1hZ2VUeXBl
OjpKUEVHOgotICAgICAgICByZXR1cm4gImltYWdlLmpwZWciOworICAgICAgICByZXR1cm4gImlt
YWdlLmpwZWciX3M7CiAgICAgY2FzZSBJbWFnZVR5cGU6OkdJRjoKLSAgICAgICAgcmV0dXJuICJp
bWFnZS5naWYiOworICAgICAgICByZXR1cm4gImltYWdlLmdpZiJfczsKICAgICB9CiB9CiAKQEAg
LTIzNCw3ICsyMzQsNyBAQCB2b2lkIFBhc3RlYm9hcmQ6OnJlYWQoUGFzdGVib2FyZEZpbGVSZWFk
ZXImIHJlYWRlciwgc3RkOjpvcHRpb25hbDxzaXplX3Q+IGl0ZW1JbgogICAgICAgICBmb3IgKGF1
dG8gY29jb2FUeXBlIDogaW5mby5wbGF0Zm9ybVR5cGVzQnlGaWRlbGl0eSkgewogICAgICAgICAg
ICAgYXV0byBpbWFnZVR5cGUgPSBjb2NvYVR5cGVUb0ltYWdlVHlwZShjb2NvYVR5cGUpOwogICAg
ICAgICAgICAgYXV0byogbWltZVR5cGUgPSBpbWFnZVR5cGVUb01JTUVUeXBlKGltYWdlVHlwZSk7
Ci0gICAgICAgICAgICBpZiAoIW1pbWVUeXBlIHx8ICFyZWFkZXIuc2hvdWxkUmVhZEJ1ZmZlciht
aW1lVHlwZSkpCisgICAgICAgICAgICBpZiAoIW1pbWVUeXBlIHx8ICFyZWFkZXIuc2hvdWxkUmVh
ZEJ1ZmZlcihTdHJpbmcgeyBtaW1lVHlwZSB9KSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsK
ICAgICAgICAgICAgIGF1dG8gYnVmZmVyID0gcmVhZEJ1ZmZlcihpdGVtSW5kZXgsIGNvY29hVHlw
ZSk7CiAjaWYgUExBVEZPUk0oTUFDKQpAQCAtMjQyLDcgKzI0Miw3IEBAIHZvaWQgUGFzdGVib2Fy
ZDo6cmVhZChQYXN0ZWJvYXJkRmlsZVJlYWRlciYgcmVhZGVyLCBzdGQ6Om9wdGlvbmFsPHNpemVf
dD4gaXRlbUluCiAgICAgICAgICAgICAgICAgYnVmZmVyID0gY29udmVydFRJRkZUb1BORyhidWZm
ZXIucmVsZWFzZU5vbk51bGwoKSk7CiAjZW5kaWYKICAgICAgICAgICAgIGlmIChidWZmZXIpIHsK
LSAgICAgICAgICAgICAgICByZWFkZXIucmVhZEJ1ZmZlcihpbWFnZVR5cGVUb0Zha2VGaWxlbmFt
ZShpbWFnZVR5cGUpLCBtaW1lVHlwZSwgYnVmZmVyLnJlbGVhc2VOb25OdWxsKCkpOworICAgICAg
ICAgICAgICAgIHJlYWRlci5yZWFkQnVmZmVyKGltYWdlVHlwZVRvRmFrZUZpbGVuYW1lKGltYWdl
VHlwZSksIFN0cmluZyB7IG1pbWVUeXBlIH0sIGJ1ZmZlci5yZWxlYXNlTm9uTnVsbCgpKTsKICAg
ICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvUGFzdGVib2FyZEN1c3RvbURhdGFDb2Nv
YS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Bhc3RlYm9hcmRDdXN0b21EYXRh
Q29jb2EubW0KaW5kZXggMjYyMTI4NDRmMjEwNGE3NzdjZjY1NTZkNzVhNmU1Y2FlYzk3M2RlOC4u
M2RlNTBhMGU5MmMyOTA0YzE5ZWI2ZGViZGE3MTY4MmVmYjZkNjc1MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvUGFzdGVib2FyZEN1c3RvbURhdGFDb2NvYS5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9QYXN0ZWJvYXJkQ3VzdG9tRGF0YUNv
Y29hLm1tCkBAIC0zMCw5ICszMCw5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY29uc3Qg
Y2hhciogUGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpCitBU0NJSUxpdGVyYWwgUGFz
dGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpCiB7Ci0gICAgcmV0dXJuICJjb20uYXBwbGUu
V2ViS2l0LmN1c3RvbS1wYXN0ZWJvYXJkLWRhdGEiOworICAgIHJldHVybiAiY29tLmFwcGxlLldl
YktpdC5jdXN0b20tcGFzdGVib2FyZC1kYXRhIl9zOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb3VyQ0Mu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvdXJDQy5oCmluZGV4IGIzN2Qw
NTBlOWMwYzM2NzcwN2RhZTBiNmFjY2IxYmMzN2Y4ZWFjMTMuLjY2ZmIzZGUwNzExNTEzMDY3ODhk
YzEyNmMyM2Y0YmM4NjEyNTgzNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ZvdXJDQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ZvdXJDQy5oCkBAIC04NSw3ICs4NSw3IEBAIG5hbWVzcGFjZSBXVEYgewogdGVtcGxhdGU8dHlw
ZW5hbWU+IHN0cnVjdCBMb2dBcmd1bWVudDsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgTG9nQXJndW1l
bnQ8V2ViQ29yZTo6Rm91ckNDPiB7Ci0gICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhjb25zdCBX
ZWJDb3JlOjpGb3VyQ0MmIGNvZGUpIHsgcmV0dXJuIGNvZGUuc3RyaW5nKCkuZGF0YSgpOyB9Cisg
ICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhjb25zdCBXZWJDb3JlOjpGb3VyQ0MmIGNvZGUpIHsg
cmV0dXJuIFN0cmluZyB7IGNvZGUuc3RyaW5nKCkuZGF0YSgpIH07IH0KIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YW5nbGUvR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmNwcAppbmRleCA2ODZjNWYy
MDk4NzY3ZmQyZWE1NzU0NGUzYWNjZWU0ZjJlN2JlNWQ4Li4yNzQ2MDlhMTUwOWFiODczZTM4NjIx
YzRlYzU1OGM4YTQyOGM1NGY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmNwcApA
QCAtNTEwLDggKzUxMCw5IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6dmFsaWRhdGVE
ZXB0aFN0ZW5jaWwoY29uc3QgY2hhciogcGFja2VkRGVwdGhTdGVuY2lsCiAgICAgLy8gRklYTUU6
IFNpbmNlIHRoZSBjb25zdHJ1Y3RvcnMgb2YgdmFyaW91cyBwbGF0Zm9ybXMgYXJlIG5vdCBzaGFy
ZWQsIHdlIGluaXRpYWxpemUgdGhpcyBoZXJlLgogICAgIC8vIFVwb24gY29uc3RydWN0aW5nIHRo
ZSBjb250ZXh0LCBhbHdheXMgaW5pdGlhbGl6ZSB0aGUgZXh0ZW5zaW9ucyB0aGF0IHRoZSBXZWJH
TFJlbmRlcmluZ0NvbnRleHQqIHdpbGwKICAgICAvLyB1c2UgdG8gdHVybiBvbiBmZWF0dXJlIGZs
YWdzLgotICAgIGlmIChzdXBwb3J0c0V4dGVuc2lvbihwYWNrZWREZXB0aFN0ZW5jaWxFeHRlbnNp
b24pKSB7Ci0gICAgICAgIGVuc3VyZUV4dGVuc2lvbkVuYWJsZWQocGFja2VkRGVwdGhTdGVuY2ls
RXh0ZW5zaW9uKTsKKyAgICBTdHJpbmcgcGFja2VkRGVwdGhTdGVuY2lsRXh0ZW5zaW9uU3RyaW5n
IHsgcGFja2VkRGVwdGhTdGVuY2lsRXh0ZW5zaW9uIH07CisgICAgaWYgKHN1cHBvcnRzRXh0ZW5z
aW9uKHBhY2tlZERlcHRoU3RlbmNpbEV4dGVuc2lvblN0cmluZykpIHsKKyAgICAgICAgZW5zdXJl
RXh0ZW5zaW9uRW5hYmxlZChwYWNrZWREZXB0aFN0ZW5jaWxFeHRlbnNpb25TdHJpbmcpOwogICAg
ICAgICBtX2ludGVybmFsRGVwdGhTdGVuY2lsRm9ybWF0ID0gR0xfREVQVEgyNF9TVEVOQ0lMOF9P
RVM7CiAgICAgfSBlbHNlCiAgICAgICAgIG1faW50ZXJuYWxEZXB0aFN0ZW5jaWxGb3JtYXQgPSBH
TF9ERVBUSF9DT01QT05FTlQxNjsKQEAgLTUyOCwxNyArNTI5LDE3IEBAIHZvaWQgR3JhcGhpY3ND
b250ZXh0R0xBTkdMRTo6dmFsaWRhdGVEZXB0aFN0ZW5jaWwoY29uc3QgY2hhciogcGFja2VkRGVw
dGhTdGVuY2lsCiAKICAgICBpZiAoYXR0cnMuYW50aWFsaWFzKSB7CiAgICAgICAgIC8vIEZJWE1F
OiBtdXN0IGFkanVzdCB0aGlzIHdoZW4gdXBncmFkaW5nIHRvIFdlYkdMIDIuMCAvIE9wZW5HTCBF
UyAzLjAgc3VwcG9ydC4KLSAgICAgICAgaWYgKCFzdXBwb3J0c0V4dGVuc2lvbigiR0xfQU5HTEVf
ZnJhbWVidWZmZXJfbXVsdGlzYW1wbGUiKSB8fCAhc3VwcG9ydHNFeHRlbnNpb24oIkdMX0FOR0xF
X2ZyYW1lYnVmZmVyX2JsaXQiKSB8fCAhc3VwcG9ydHNFeHRlbnNpb24oIkdMX09FU19yZ2I4X3Jn
YmE4IikpIHsKKyAgICAgICAgaWYgKCFzdXBwb3J0c0V4dGVuc2lvbigiR0xfQU5HTEVfZnJhbWVi
dWZmZXJfbXVsdGlzYW1wbGUiX3MpIHx8ICFzdXBwb3J0c0V4dGVuc2lvbigiR0xfQU5HTEVfZnJh
bWVidWZmZXJfYmxpdCJfcykgfHwgIXN1cHBvcnRzRXh0ZW5zaW9uKCJHTF9PRVNfcmdiOF9yZ2Jh
OCJfcykpIHsKICAgICAgICAgICAgIGF0dHJzLmFudGlhbGlhcyA9IGZhbHNlOwogICAgICAgICAg
ICAgc2V0Q29udGV4dEF0dHJpYnV0ZXMoYXR0cnMpOwogICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgZW5zdXJlRXh0ZW5zaW9uRW5hYmxlZCgiR0xfQU5HTEVfZnJhbWVidWZmZXJfbXVsdGlz
YW1wbGUiKTsKLSAgICAgICAgICAgIGVuc3VyZUV4dGVuc2lvbkVuYWJsZWQoIkdMX0FOR0xFX2Zy
YW1lYnVmZmVyX2JsaXQiKTsKLSAgICAgICAgICAgIGVuc3VyZUV4dGVuc2lvbkVuYWJsZWQoIkdM
X09FU19yZ2I4X3JnYmE4Iik7CisgICAgICAgICAgICBlbnN1cmVFeHRlbnNpb25FbmFibGVkKCJH
TF9BTkdMRV9mcmFtZWJ1ZmZlcl9tdWx0aXNhbXBsZSJfcyk7CisgICAgICAgICAgICBlbnN1cmVF
eHRlbnNpb25FbmFibGVkKCJHTF9BTkdMRV9mcmFtZWJ1ZmZlcl9ibGl0Il9zKTsKKyAgICAgICAg
ICAgIGVuc3VyZUV4dGVuc2lvbkVuYWJsZWQoIkdMX09FU19yZ2I4X3JnYmE4Il9zKTsKICAgICAg
ICAgfQogICAgIH0gZWxzZSBpZiAoYXR0cnMucHJlc2VydmVEcmF3aW5nQnVmZmVyKSB7CiAgICAg
ICAgIC8vIE5lZWRlZCBmb3IgcHJlc2VydmVEcmF3aW5nQnVmZmVyOnRydWUgc3VwcG9ydCB3aXRo
b3V0IGFudGlhbGlhc2luZy4KLSAgICAgICAgZW5zdXJlRXh0ZW5zaW9uRW5hYmxlZCgiR0xfQU5H
TEVfZnJhbWVidWZmZXJfYmxpdCIpOworICAgICAgICBlbnN1cmVFeHRlbnNpb25FbmFibGVkKCJH
TF9BTkdMRV9mcmFtZWJ1ZmZlcl9ibGl0Il9zKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9DRE1Qcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL0NETVByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KaW5kZXggMmRhZjhlYWFj
OTA4Y2ViYmI5NGRhMzMwNjQ0YTVlNzcxN2IzNjczOS4uYWVhMmU4YWI5OTAxOTU4MmU0ZGQ0OTM4
ZTIwMzdmMDIwNjVkMjQyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL0NETVByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0NETVByaXZhdGVN
ZWRpYVNvdXJjZUFWRk9iakMubW0KQEAgLTQ2LDcgKzQ2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBhdXRvIENETVByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnBhcnNlS2V5U3lzdGVtKGNv
bnN0IFN0cmluZyYga2V5U3lzdGVtKSAtPiBzdGQ6Om9wdGlvbmFsPEtleVN5c3RlbVBhcmFtZXRl
cnM+CiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJlZ3VsYXJFeHByZXNzaW9uPiBrZXlT
eXN0ZW1SRSgiXmNvbVxcLmFwcGxlXFwuZnBzXFwuWzIzXV9cXGQrKD86LFxcZCspKiQiLCBKU0M6
OllhcnI6OlRleHRDYXNlSW5zZW5zaXRpdmUpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxS
ZWd1bGFyRXhwcmVzc2lvbj4ga2V5U3lzdGVtUkUoIl5jb21cXC5hcHBsZVxcLmZwc1xcLlsyM11f
XFxkKyg/OixcXGQrKSokIl9zLCBKU0M6OllhcnI6OlRleHRDYXNlSW5zZW5zaXRpdmUpOwogCiAg
ICAgaWYgKGtleVN5c3RlbVJFLmdldCgpLm1hdGNoKGtleVN5c3RlbSkgPCAwKQogICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVy
UHJpdmF0ZUFWRm91bmRhdGlvbi5oCmluZGV4IGE4MWI4ZTIyNjlhNjhiNDM2YTUzMjYwNTViZTBm
YWYxMDU3MDJjMjEuLjAxMzJhMmY4NDc4YTZkZWE5N2U4ZWI5ZDdjYzc2YzBhYzVlZGY2NDcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9N
ZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9u
LmgKQEAgLTMxMSw3ICszMTEsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgTWVkaWFQbGF5ZXIqIHBsYXll
cigpIHsgcmV0dXJuIG1fcGxheWVyOyB9CiAgICAgY29uc3QgTWVkaWFQbGF5ZXIqIHBsYXllcigp
IGNvbnN0IHsgcmV0dXJuIG1fcGxheWVyOyB9CiAKLSAgICBTdHJpbmcgZW5naW5lRGVzY3JpcHRp
b24oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAiQVZGb3VuZGF0aW9uIjsgfQorICAgIFN0cmlu
ZyBlbmdpbmVEZXNjcmlwdGlvbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJBVkZvdW5kYXRp
b24iX3M7IH0KICAgICBsb25nIHBsYXRmb3JtRXJyb3JDb2RlKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gYXNzZXRFcnJvckNvZGUoKTsgfQogCiAgICAgdm9pZCB0cmFja01vZGVDaGFuZ2VkKCkg
b3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9DRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQy5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETUlu
c3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDLm1tCmluZGV4IDc2ZTYzMWI1ZmFhMjNkNzQ1
MmM2OTAwN2ZjZTRjNTkxNWVkMWRlOTQuLjExZmI3OTFjMTJmYjE2Zjc3ODdhYWQ1ZmNkZjJlMTk4
YThlZjUwMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL0NETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NE
TUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDLm1tCkBAIC0zOTgsNyArMzk4LDcgQEAg
dm9pZCBDRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQzo6c2V0U3RvcmFnZURpcmVj
dG9yeShjb25zdCBTdHJpbmcmIHN0b3IKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGF1
dG8gc3RvcmFnZVBhdGggPSBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoc3Rv
cmFnZURpcmVjdG9yeSwgIlNlY3VyZVN0b3AucGxpc3QiKTsKKyAgICBhdXRvIHN0b3JhZ2VQYXRo
ID0gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KHN0b3JhZ2VEaXJlY3Rvcnks
ICJTZWN1cmVTdG9wLnBsaXN0Il9zKTsKIAogICAgIGF1dG8gZmlsZVR5cGUgPSBGaWxlU3lzdGVt
OjpmaWxlVHlwZUZvbGxvd2luZ1N5bWxpbmtzKHN0b3JhZ2VEaXJlY3RvcnkpOwogICAgIGlmICgh
ZmlsZVR5cGUpIHsKQEAgLTg5MSw3ICs4OTEsNyBAQCB2b2lkIENETUluc3RhbmNlU2Vzc2lvbkZh
aXJQbGF5U3RyZWFtaW5nQVZGT2JqQzo6dXBkYXRlTGljZW5zZShjb25zdCBTdHJpbmcmLCBMaQog
ICAgICAgICAgICAgaWYgKCFvYmplY3QpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwog
Ci0gICAgICAgICAgICBhdXRvIGtleUlEU3RyaW5nID0gb2JqZWN0LT5nZXRTdHJpbmcoImtleUlE
Iik7CisgICAgICAgICAgICBhdXRvIGtleUlEU3RyaW5nID0gb2JqZWN0LT5nZXRTdHJpbmcoImtl
eUlEIl9zKTsKICAgICAgICAgICAgIGlmICgha2V5SURTdHJpbmcpCiAgICAgICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCkBAIC05MTEsOCArOTExLDggQEAgdm9pZCBDRE1JbnN0YW5jZVNlc3Np
b25GYWlyUGxheVN0cmVhbWluZ0FWRk9iakM6OnVwZGF0ZUxpY2Vuc2UoY29uc3QgU3RyaW5nJiwg
TGkKIAogICAgICAgICAgICAgYXV0byYgcmVxdWVzdCA9IG1fY3VycmVudFJlcXVlc3QudmFsdWUo
KS5yZXF1ZXN0c1tmb3VuZEluZGV4XTsKIAotICAgICAgICAgICAgYXV0byBwYXlsb2FkRmluZFJl
c3VsdHMgPSBvYmplY3QtPmZpbmQoInBheWxvYWQiKTsKLSAgICAgICAgICAgIGF1dG8gZXJyb3JG
aW5kUmVzdWx0cyA9IG9iamVjdC0+ZmluZCgiZXJyb3IiKTsKKyAgICAgICAgICAgIGF1dG8gcGF5
bG9hZEZpbmRSZXN1bHRzID0gb2JqZWN0LT5maW5kKCJwYXlsb2FkIl9zKTsKKyAgICAgICAgICAg
IGF1dG8gZXJyb3JGaW5kUmVzdWx0cyA9IG9iamVjdC0+ZmluZCgiZXJyb3IiX3MpOwogICAgICAg
ICAgICAgYm9vbCBoYXNQYXlsb2FkID0gcGF5bG9hZEZpbmRSZXN1bHRzICE9IG9iamVjdC0+ZW5k
KCk7CiAgICAgICAgICAgICBib29sIGhhc0Vycm9yID0gZXJyb3JGaW5kUmVzdWx0cyAhPSBvYmpl
Y3QtPmVuZCgpOwogCkBAIC0xMjUzLDggKzEyNTMsOCBAQCB2b2lkIENETUluc3RhbmNlU2Vzc2lv
bkZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQzo6ZGlkUHJvdmlkZVJlcXVlc3RzKFZlY3RvcjxSZXRh
aQogICAgICAgICAgICAgYXV0byBlbnRyeSA9IEpTT046Ok9iamVjdDo6Y3JlYXRlKCk7CiAgICAg
ICAgICAgICBhdXRvJiBrZXlJRCA9IHJlcXVlc3REYXRhLmZpcnN0OwogICAgICAgICAgICAgYXV0
byYgcGF5bG9hZCA9IHJlcXVlc3REYXRhLnNlY29uZDsKLSAgICAgICAgICAgIGVudHJ5LT5zZXRT
dHJpbmcoImtleUlEIiwgYmFzZTY0RW5jb2RlVG9TdHJpbmcoa2V5SUQtPm1ha2VDb250aWd1b3Vz
KCktPmRhdGEoKSwga2V5SUQtPnNpemUoKSkpOwotICAgICAgICAgICAgZW50cnktPnNldFN0cmlu
ZygicGF5bG9hZCIsIGJhc2U2NEVuY29kZVRvU3RyaW5nKHBheWxvYWQuZ2V0KCkuYnl0ZXMsIHBh
eWxvYWQuZ2V0KCkubGVuZ3RoKSk7CisgICAgICAgICAgICBlbnRyeS0+c2V0U3RyaW5nKCJrZXlJ
RCJfcywgYmFzZTY0RW5jb2RlVG9TdHJpbmcoa2V5SUQtPm1ha2VDb250aWd1b3VzKCktPmRhdGEo
KSwga2V5SUQtPnNpemUoKSkpOworICAgICAgICAgICAgZW50cnktPnNldFN0cmluZygicGF5bG9h
ZCJfcywgYmFzZTY0RW5jb2RlVG9TdHJpbmcocGF5bG9hZC5nZXQoKS5ieXRlcywgcGF5bG9hZC5n
ZXQoKS5sZW5ndGgpKTsKICAgICAgICAgICAgIHJlcXVlc3RKU09OLT5wdXNoT2JqZWN0KFdURk1v
dmUoZW50cnkpKTsKICAgICAgICAgfQogICAgICAgICBhdXRvIHJlcXVlc3RCdWZmZXIgPSB1dGY4
QnVmZmVyKHJlcXVlc3RKU09OLT50b0pTT05TdHJpbmcoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uTWVk
aWFTb3VyY2VBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQy5tbQppbmRleCAyODZh
NWE0ODg3ZThkOTU2MDBlN2M4YmFjM2FmYmU2Njc2MTYwNTU0Li5hMGM2YTNlNTI2Y2FjYTRhZDFj
Nzg4ZTNjMjIyZThhNGU1MWMyNGZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpD
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9v
YmpjL0NETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMubW0KQEAgLTExMyw3ICsxMTMsNyBAQCBT
dHJpbmcgQ0RNU2Vzc2lvbk1lZGlhU291cmNlQVZGT2JqQzo6c3RvcmFnZVBhdGgoKSBjb25zdAog
ICAgIGlmIChzdG9yYWdlRGlyZWN0b3J5LmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIGVtcHR5
U3RyaW5nKCk7CiAKLSAgICByZXR1cm4gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9u
ZW50KHN0b3JhZ2VEaXJlY3RvcnksICJTZWN1cmVTdG9wLnBsaXN0Iik7CisgICAgcmV0dXJuIEZp
bGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChzdG9yYWdlRGlyZWN0b3J5LCAiU2Vj
dXJlU3RvcC5wbGlzdCJfcyk7CiB9CiAKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpj
L01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQy5tbQppbmRleCAwOTk3ZDc4YjY2YjU0ZTE1OTY1ZjZiOGY2NWZhZGNj
M2NmYTM5M2YyLi45ZWQwMjM2MzM2MDk4N2RlMjE2M2RiMGRmMzMxOTBlN2M4MTI0NTJjIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2Jq
Yy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCkBAIC0xMDk2LDcgKzEwOTYsNyBAQCBBVlN0cmVhbVNl
c3Npb24qIE1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6c3RyZWFtU2Vzc2lv
bigpCiAgICAgICAgICAgICAgICAgcmV0dXJuIG5pbDsKICAgICAgICAgfQogCi0gICAgICAgIFN0
cmluZyBzdG9yYWdlUGF0aCA9IEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudChz
dG9yYWdlRGlyZWN0b3J5LCAiU2VjdXJlU3RvcC5wbGlzdCIpOworICAgICAgICBTdHJpbmcgc3Rv
cmFnZVBhdGggPSBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoc3RvcmFnZURp
cmVjdG9yeSwgIlNlY3VyZVN0b3AucGxpc3QiX3MpOwogICAgICAgICBtX3N0cmVhbVNlc3Npb24g
PSBhZG9wdE5TKFtQQUw6OmFsbG9jQVZTdHJlYW1TZXNzaW9uSW5zdGFuY2UoKSBpbml0V2l0aFN0
b3JhZ2VEaXJlY3RvcnlBdFVSTDpbTlNVUkwgZmlsZVVSTFdpdGhQYXRoOnN0b3JhZ2VQYXRoXV0p
OwogICAgIH0KICAgICByZXR1cm4gbV9zdHJlYW1TZXNzaW9uLmdldCgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNl
QnVmZmVyUHJpdmF0ZUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbQppbmRleCA2
YmE2YjliZjEyYWQzYzlmMzg5MDdjMmZkMzZmZTg3YTU1M2IyYTQ0Li4wZThlYTY0ZjA4MzhlNjJh
ZGU1Y2Y4OTcyY2FkMTg5YWM1NWQzNTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2Jq
Qy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
b2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbQpAQCAtNjAwLDcgKzYwMCw3IEBAIHZv
aWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmRpZFByb3ZpZGVDb250ZW50S2V5UmVxdWVz
dEluaXRpYWxpemF0aW9uRGF0YUZvCiAgICAgfQogCiAgICAgbV9rZXlJRHMgPSBXVEZNb3ZlKGtl
eUlEcy52YWx1ZSgpKTsKLSAgICBwbGF5ZXItPmluaXRpYWxpemF0aW9uRGF0YUVuY291bnRlcmVk
KCJzaW5mIiwgbV9pbml0RGF0YS0+dHJ5Q3JlYXRlQXJyYXlCdWZmZXIoKSk7CisgICAgcGxheWVy
LT5pbml0aWFsaXphdGlvbkRhdGFFbmNvdW50ZXJlZCgic2luZiJfcywgbV9pbml0RGF0YS0+dHJ5
Q3JlYXRlQXJyYXlCdWZmZXIoKSk7CiAKICAgICBtX3dhaXRpbmdGb3JLZXkgPSB0cnVlOwogICAg
IHBsYXllci0+d2FpdGluZ0ZvcktleUNoYW5nZWQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2lvcy9QbGF0Zm9ybVBhc3RlYm9hcmRJT1MubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvUGxhdGZvcm1QYXN0ZWJvYXJkSU9TLm1tCmluZGV4IGQ2NGI5NjgzNDcz
NzgzMmQyZWVkNjg4MjM2MDEyMjcwNjU1ODUzZmMuLjJlMDY4NTdlZjI2YjhiZmZmOWFhMTkxODA3
ODRmZGFjMWEyYjI3NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9Q
bGF0Zm9ybVBhc3RlYm9hcmRJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9z
L1BsYXRmb3JtUGFzdGVib2FyZElPUy5tbQpAQCAtMTU5LDcgKzE1OSw3IEBAIHN0YXRpYyBWZWN0
b3I8U3RyaW5nPiB3ZWJTYWZlVHlwZXMoTlNBcnJheTxOU1N0cmluZyAqPiAqcGxhdGZvcm1UeXBl
cywgUGxhdGZvcm1QCiB7CiAgICAgTGlzdEhhc2hTZXQ8U3RyaW5nPiBkb21QYXN0ZWJvYXJkVHlw
ZXM7CiAgICAgZm9yIChOU1N0cmluZyAqdHlwZSBpbiBwbGF0Zm9ybVR5cGVzKSB7Ci0gICAgICAg
IGlmIChbdHlwZSBpc0VxdWFsVG9TdHJpbmc6QChQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FU
eXBlKCkpXSkKKyAgICAgICAgaWYgKFt0eXBlIGlzRXF1YWxUb1N0cmluZzpAKFBhc3RlYm9hcmRD
dXN0b21EYXRhOjpjb2NvYVR5cGUoKS5jaGFyYWN0ZXJzKCkpXSkKICAgICAgICAgICAgIGNvbnRp
bnVlOwogCiAgICAgICAgIGlmIChQYXN0ZWJvYXJkOjppc1NhZmVUeXBlRm9yRE9NVG9SZWFkQW5k
V3JpdGUodHlwZSkpIHsKQEAgLTUwMSw3ICs1MDEsNyBAQCBBTExPV19ERVBSRUNBVEVEX0RFQ0xB
UkFUSU9OU19FTkQKIAogICAgIFBhc3RlYm9hcmRDdXN0b21EYXRhIGN1c3RvbURhdGE7CiAgICAg
Y3VzdG9tRGF0YS5zZXRPcmlnaW4oY29udGVudC5jb250ZW50T3JpZ2luKTsKLSAgICBbcmVwcmVz
ZW50YXRpb25zVG9SZWdpc3RlciBhZGREYXRhOmN1c3RvbURhdGEuY3JlYXRlU2hhcmVkQnVmZmVy
KCktPmNyZWF0ZU5TRGF0YSgpLmdldCgpIGZvclR5cGU6QChQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6
Y29jb2FUeXBlKCkpXTsKKyAgICBbcmVwcmVzZW50YXRpb25zVG9SZWdpc3RlciBhZGREYXRhOmN1
c3RvbURhdGEuY3JlYXRlU2hhcmVkQnVmZmVyKCktPmNyZWF0ZU5TRGF0YSgpLmdldCgpIGZvclR5
cGU6QChQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkuY2hhcmFjdGVycygpKV07CiAK
ICAgICByZWdpc3Rlckl0ZW1Ub1Bhc3RlYm9hcmQocmVwcmVzZW50YXRpb25zVG9SZWdpc3Rlci5n
ZXQoKSwgbV9wYXN0ZWJvYXJkLmdldCgpKTsKIH0KQEAgLTYwOCw3ICs2MDgsNyBAQCBWZWN0b3I8
U3RyaW5nPiBQbGF0Zm9ybVBhc3RlYm9hcmQ6OnR5cGVzU2FmZUZvckRPTVRvUmVhZEFuZFdyaXRl
KGNvbnN0IFN0cmluZyYgbwogICAgIH0KICNlbmRpZiAvLyBQQVNURUJPQVJEX1NVUFBPUlRTX1BS
RVNFTlRBVElPTl9TVFlMRV9BTkRfVEVBTV9EQVRBCiAKLSAgICBpZiAoTlNEYXRhICpzZXJpYWxp
emVkQ3VzdG9tRGF0YSA9IFttX3Bhc3RlYm9hcmQgZGF0YUZvclBhc3RlYm9hcmRUeXBlOkAoUGFz
dGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpKV0pIHsKKyAgICBpZiAoTlNEYXRhICpzZXJp
YWxpemVkQ3VzdG9tRGF0YSA9IFttX3Bhc3RlYm9hcmQgZGF0YUZvclBhc3RlYm9hcmRUeXBlOkAo
UGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpLmNoYXJhY3RlcnMoKSldKSB7CiAgICAg
ICAgIGF1dG8gZGF0YSA9IFBhc3RlYm9hcmRDdXN0b21EYXRhOjpmcm9tU2hhcmVkQnVmZmVyKFNo
YXJlZEJ1ZmZlcjo6Y3JlYXRlKHNlcmlhbGl6ZWRDdXN0b21EYXRhKS5nZXQoKSk7CiAgICAgICAg
IGlmIChkYXRhLm9yaWdpbigpID09IG9yaWdpbikgewogICAgICAgICAgICAgZm9yIChhdXRvJiB0
eXBlIDogZGF0YS5vcmRlcmVkVHlwZXMoKSkKQEAgLTY0NSw3ICs2NDUsNyBAQCBzdGF0aWMgUmV0
YWluUHRyPFdlYkl0ZW1Qcm92aWRlclJlZ2lzdHJhdGlvbkluZm9MaXN0PiBjcmVhdGVJdGVtUHJv
dmlkZXJSZWdpc3RyYQogICAgICAgICAgICAgTlNEaWN0aW9uYXJ5ICp0ZWFtRGF0YURpY3Rpb25h
cnkgPSBAeyBAKG9yaWdpbktleUZvclRlYW1EYXRhKSA6IGRhdGEub3JpZ2luKCksIEAoY3VzdG9t
VHlwZXNLZXlGb3JUZWFtRGF0YSkgOiBjcmVhdGVOU0FycmF5KGRhdGEub3JkZXJlZFR5cGVzKCkp
LmdldCgpIH07CiAgICAgICAgICAgICBpZiAoTlNEYXRhICp0ZWFtRGF0YSA9IFtOU0tleWVkQXJj
aGl2ZXIgYXJjaGl2ZWREYXRhV2l0aFJvb3RPYmplY3Q6dGVhbURhdGFEaWN0aW9uYXJ5IHJlcXVp
cmluZ1NlY3VyZUNvZGluZzpZRVMgZXJyb3I6bnVsbHB0cl0pIHsKICAgICAgICAgICAgICAgICBb
cmVwcmVzZW50YXRpb25zVG9SZWdpc3RlciBzZXRUZWFtRGF0YTp0ZWFtRGF0YV07Ci0gICAgICAg
ICAgICAgICAgW3JlcHJlc2VudGF0aW9uc1RvUmVnaXN0ZXIgYWRkRGF0YTpzZXJpYWxpemVkU2hh
cmVkQnVmZmVyLmdldCgpIGZvclR5cGU6QChQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBl
KCkpXTsKKyAgICAgICAgICAgICAgICBbcmVwcmVzZW50YXRpb25zVG9SZWdpc3RlciBhZGREYXRh
OnNlcmlhbGl6ZWRTaGFyZWRCdWZmZXIuZ2V0KCkgZm9yVHlwZTpAKFBhc3RlYm9hcmRDdXN0b21E
YXRhOjpjb2NvYVR5cGUoKS5jaGFyYWN0ZXJzKCkpXTsKICAgICAgICAgICAgIH0KICAgICAgICAg
fQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJJdGVt
UHJvdmlkZXJQYXN0ZWJvYXJkLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkl0
ZW1Qcm92aWRlclBhc3RlYm9hcmQubW0KaW5kZXggZDJhMWRiYzNhODlmOTFhZWMyYTMyMjAzODY0
YTBjZWYzMTkyMzJkMy4uNzVhNzZmNDM5OTRlZTY1ZTgxMzljODc3NjZjMzNiNzhhNGEzZDIyZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkl0ZW1Qcm92aWRlclBh
c3RlYm9hcmQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkl0ZW1Qcm92
aWRlclBhc3RlYm9hcmQubW0KQEAgLTc2MSw3ICs3NjEsNyBAQCBBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19CRUdJTgogCiAgICAgLy8gRm9yIGNvbXBhdGliaWxpdHkgd2l0aCBEYXRhVHJh
bnNmZXIgQVBJcywgYWRkaXRpb25hbGx5IGxvYWQgd2ViLWV4cG9zZWQgdHlwZXMuIFNpbmNlIHRo
aXMgaXMgdGhlIG9ubHkgY2hhbmNlIHRvCiAgICAgLy8gZmF1bHQgaW4gYW55IGRhdGEgYXQgYWxs
LCB3ZSBuZWVkIHRvIGxvYWQgdXAgZnJvbnQgYW55IGluZm9ybWF0aW9uIHRoYXQgdGhlIHBhZ2Ug
bWF5IGFzayBmb3IgbGF0ZXIgZG93biB0aGUgbGluZS4KLSAgICBOU1N0cmluZyAqY3VzdG9tUGFz
dGVib2FyZERhdGFVVEkgPSBAKFBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKSk7Cisg
ICAgTlNTdHJpbmcgKmN1c3RvbVBhc3RlYm9hcmREYXRhVVRJID0gQChQYXN0ZWJvYXJkQ3VzdG9t
RGF0YTo6Y29jb2FUeXBlKCkuY2hhcmFjdGVycygpKTsKICAgICBmb3IgKE5TU3RyaW5nICpyZWdp
c3RlcmVkVHlwZUlkZW50aWZpZXIgaW4gcmVnaXN0ZXJlZFR5cGVJZGVudGlmaWVycykgewogICAg
ICAgICBpZiAoW3JlZ2lzdGVyZWRUeXBlSWRlbnRpZmllciBpc0VxdWFsVG9TdHJpbmc6aGlnaGVz
dEZpZGVsaXR5Q29udGVudFR5cGVdCiAgICAgICAgICAgICB8fCBbcmVnaXN0ZXJlZFR5cGVJZGVu
dGlmaWVyIGlzRXF1YWxUb1N0cmluZzpoaWdoZXN0RmlkZWxpdHlTdXBwb3J0ZWRUeXBlXQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RhdGFEZXRlY3RvckhpZ2hsaWdo
dC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9EYXRhRGV0ZWN0b3JIaWdobGlnaHQu
bW0KaW5kZXggM2YwNjk0MDQ2MDI5NGRjZmU4YTgzMDI4ZDFmZDdkNDY2ZGE4NTM5NS4uMTVkYjg3
YjFkOThiYTM4MWVhOTUxYjFmMzRmOGU2MDA4Mjk4MjVhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL0RhdGFEZXRlY3RvckhpZ2hsaWdodC5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tYWMvRGF0YURldGVjdG9ySGlnaGxpZ2h0Lm1tCkBAIC0xNTMsNyAr
MTUzLDcgQEAgdm9pZCBEYXRhRGV0ZWN0b3JIaWdobGlnaHQ6OmZhZGVJbigpCiAgICAgW2FuaW1h
dGlvbiBzZXRUb1ZhbHVlOkAxXTsKIAogICAgIGF1dG8gcGxhdGZvcm1BbmltYXRpb24gPSBQbGF0
Zm9ybUNBQW5pbWF0aW9uQ29jb2E6OmNyZWF0ZShhbmltYXRpb24uZ2V0KCkpOwotICAgIGRvd25j
YXN0PEdyYXBoaWNzTGF5ZXJDQT4obGF5ZXIoKSkucGxhdGZvcm1DQUxheWVyKCktPmFkZEFuaW1h
dGlvbkZvcktleSgiRmFkZUhpZ2hsaWdodEluIiwgcGxhdGZvcm1BbmltYXRpb24uZ2V0KCkpOwor
ICAgIGRvd25jYXN0PEdyYXBoaWNzTGF5ZXJDQT4obGF5ZXIoKSkucGxhdGZvcm1DQUxheWVyKCkt
PmFkZEFuaW1hdGlvbkZvcktleSgiRmFkZUhpZ2hsaWdodEluIl9zLCBwbGF0Zm9ybUFuaW1hdGlv
bi5nZXQoKSk7CiB9CiAKIHZvaWQgRGF0YURldGVjdG9ySGlnaGxpZ2h0OjpmYWRlT3V0KCkKQEAg
LTE3MCw3ICsxNzAsNyBAQCB2b2lkIERhdGFEZXRlY3RvckhpZ2hsaWdodDo6ZmFkZU91dCgpCiAg
ICAgfV07CiAKICAgICBhdXRvIHBsYXRmb3JtQW5pbWF0aW9uID0gUGxhdGZvcm1DQUFuaW1hdGlv
bkNvY29hOjpjcmVhdGUoYW5pbWF0aW9uLmdldCgpKTsKLSAgICBkb3duY2FzdDxHcmFwaGljc0xh
eWVyQ0E+KGxheWVyKCkpLnBsYXRmb3JtQ0FMYXllcigpLT5hZGRBbmltYXRpb25Gb3JLZXkoIkZh
ZGVIaWdobGlnaHRPdXQiLCBwbGF0Zm9ybUFuaW1hdGlvbi5nZXQoKSk7CisgICAgZG93bmNhc3Q8
R3JhcGhpY3NMYXllckNBPihsYXllcigpKS5wbGF0Zm9ybUNBTGF5ZXIoKS0+YWRkQW5pbWF0aW9u
Rm9yS2V5KCJGYWRlSGlnaGxpZ2h0T3V0Il9zLCBwbGF0Zm9ybUFuaW1hdGlvbi5nZXQoKSk7CiAg
ICAgW0NBVHJhbnNhY3Rpb24gY29tbWl0XTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL1Bhc3RlYm9hcmRNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvUGFzdGVib2FyZE1hYy5tbQppbmRleCBhMmMyNTBhYTJiZWY4ZGU5NjRiYWYwOTI0MGQ1
ZTBlYzQxNTBlZjg0Li5kYzJmNWM1M2M2NTQxZTE5OGIzYTg0ZTZjNWE4MDVkMWRkZmUwZDhiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbQpAQCAtNTAs
MTIgKzUwLDEyIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY29uc3QgY2hhciogY29uc3Qg
V2ViQXJjaGl2ZVBib2FyZFR5cGUgPSAiQXBwbGUgV2ViIEFyY2hpdmUgcGFzdGVib2FyZCB0eXBl
IjsKLWNvbnN0IGNoYXIqIGNvbnN0IFdlYlVSTE5hbWVQYm9hcmRUeXBlID0gInB1YmxpYy51cmwt
bmFtZSI7Ci1jb25zdCBjaGFyKiBjb25zdCBXZWJVUkxzV2l0aFRpdGxlc1Bib2FyZFR5cGUgPSAi
V2ViVVJMc1dpdGhUaXRsZXNQYm9hcmRUeXBlIjsKK2NvbnN0IEFTQ0lJTGl0ZXJhbCBXZWJBcmNo
aXZlUGJvYXJkVHlwZSA9ICJBcHBsZSBXZWIgQXJjaGl2ZSBwYXN0ZWJvYXJkIHR5cGUiX3M7Citj
b25zdCBBU0NJSUxpdGVyYWwgV2ViVVJMTmFtZVBib2FyZFR5cGUgPSAicHVibGljLnVybC1uYW1l
Il9zOworY29uc3QgQVNDSUlMaXRlcmFsIFdlYlVSTHNXaXRoVGl0bGVzUGJvYXJkVHlwZSA9ICJX
ZWJVUkxzV2l0aFRpdGxlc1Bib2FyZFR5cGUiX3M7CiAKLWNvbnN0IGNoYXIgV2ViU21hcnRQYXN0
ZVBib2FyZFR5cGVbXSA9ICJOZVhUIHNtYXJ0IHBhc3RlIHBhc3RlYm9hcmQgdHlwZSI7Ci1jb25z
dCBjaGFyIFdlYlVSTFBib2FyZFR5cGVbXSA9ICJwdWJsaWMudXJsIjsKK2NvbnN0IEFTQ0lJTGl0
ZXJhbCBXZWJTbWFydFBhc3RlUGJvYXJkVHlwZSA9ICJOZVhUIHNtYXJ0IHBhc3RlIHBhc3RlYm9h
cmQgdHlwZSJfczsKK2NvbnN0IEFTQ0lJTGl0ZXJhbCBXZWJVUkxQYm9hcmRUeXBlID0gInB1Ymxp
Yy51cmwiX3M7CiAKIHN0YXRpYyBjb25zdCBWZWN0b3I8U3RyaW5nPiB3cml0YWJsZVR5cGVzRm9y
VVJMKCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9y
bUV2ZW50RmFjdG9yeU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9y
bUV2ZW50RmFjdG9yeU1hYy5tbQppbmRleCAzNWZjNmFmNTliNmFmY2I0Zjk1NTRjMGYyYTg0YTMz
NDI4Mzk2ZTVlLi5iN2I2ZTM3NDdiMGZjZDk3OGM4NzRlMDE4MmYyMzU2M2NlNWQyZDg2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlN
YWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0
b3J5TWFjLm1tCkBAIC01MDIsNyArNTAyLDcgQEAgU3RyaW5nIGtleUlkZW50aWZpZXJGb3JLZXlF
dmVudChOU0V2ZW50KiBldmVudCkKICAgICBOU1N0cmluZyAqcyA9IFtldmVudCBjaGFyYWN0ZXJz
SWdub3JpbmdNb2RpZmllcnNdOwogICAgIGlmIChbcyBsZW5ndGhdICE9IDEpIHsKICAgICAgICAg
TE9HKEV2ZW50cywgInJlY2VpdmVkIGFuIHVuZXhwZWN0ZWQgbnVtYmVyIG9mIGNoYXJhY3RlcnMg
aW4ga2V5IGV2ZW50OiAldSIsIFtzIGxlbmd0aF0pOwotICAgICAgICByZXR1cm4gIlVuaWRlbnRp
ZmllZCI7CisgICAgICAgIHJldHVybiAiVW5pZGVudGlmaWVkIl9zOwogICAgIH0KICAgICByZXR1
cm4ga2V5SWRlbnRpZmllckZvckNoYXJDb2RlKFtzIGNoYXJhY3RlckF0SW5kZXg6MF0pOwogfQpA
QCAtODA5LDIwICs4MDksMjAgQEAgcHVibGljOgogCiAgICAgICAgIC8vIEFsd2F5cyB1c2UgMTMg
Zm9yIEVudGVyL1JldHVybiAtLSB3ZSBkb24ndCB3YW50IHRvIHVzZSBBcHBLaXQncyBkaWZmZXJl
bnQgY2hhcmFjdGVyIGZvciBFbnRlci4KICAgICAgICAgaWYgKG1fd2luZG93c1ZpcnR1YWxLZXlD
b2RlID09IFZLX1JFVFVSTikgewotICAgICAgICAgICAgbV90ZXh0ID0gIlxyIjsKLSAgICAgICAg
ICAgIG1fdW5tb2RpZmllZFRleHQgPSAiXHIiOworICAgICAgICAgICAgbV90ZXh0ID0gIlxyIl9z
OworICAgICAgICAgICAgbV91bm1vZGlmaWVkVGV4dCA9IG1fdGV4dDsKICAgICAgICAgfQogCiAg
ICAgICAgIC8vIEFwcEtpdCBzZXRzIHRleHQgdG8gIlx4N0YiIGZvciBiYWNrc3BhY2UsIGJ1dCB0
aGUgY29ycmVjdCBLZXlib2FyZEV2ZW50IGNoYXJhY3RlciBjb2RlIGlzIDguCiAgICAgICAgIGlm
IChtX3dpbmRvd3NWaXJ0dWFsS2V5Q29kZSA9PSBWS19CQUNLKSB7Ci0gICAgICAgICAgICBtX3Rl
eHQgPSAiXHg4IjsKLSAgICAgICAgICAgIG1fdW5tb2RpZmllZFRleHQgPSAiXHg4IjsKKyAgICAg
ICAgICAgIG1fdGV4dCA9ICJceDgiX3M7CisgICAgICAgICAgICBtX3VubW9kaWZpZWRUZXh0ID0g
bV90ZXh0OwogICAgICAgICB9CiAKICAgICAgICAgLy8gQWx3YXlzIHVzZSA5IGZvciBUYWIgLS0g
d2UgZG9uJ3Qgd2FudCB0byB1c2UgQXBwS2l0J3MgZGlmZmVyZW50IGNoYXJhY3RlciBmb3Igc2hp
ZnQtdGFiLgogICAgICAgICBpZiAobV93aW5kb3dzVmlydHVhbEtleUNvZGUgPT0gVktfVEFCKSB7
Ci0gICAgICAgICAgICBtX3RleHQgPSAiXHg5IjsKLSAgICAgICAgICAgIG1fdW5tb2RpZmllZFRl
eHQgPSAiXHg5IjsKKyAgICAgICAgICAgIG1fdGV4dCA9ICJceDkiX3M7CisgICAgICAgICAgICBt
X3VubW9kaWZpZWRUZXh0ID0gbV90ZXh0OwogICAgICAgICB9CiAKICAgICAgICAgLy8gTWFjIHNw
ZWNpZmljLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3Jt
UGFzdGVib2FyZE1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybVBh
c3RlYm9hcmRNYWMubW0KaW5kZXggYTdmZTcyNTU0Mzc2NjVlOGI4YTBjNzQ1M2QzMDQ3NDlkNDU2
MmY2Ny4uNDZkYjU3ZGVlYTlkNzI2OWFlYjRkODc3ZDE5MTdkNWQ2MzAzZGEzMSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtUGFzdGVib2FyZE1hYy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1QYXN0ZWJvYXJkTWFjLm1t
CkBAIC0yMTcsNyArMjE3LDcgQEAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiBW
ZWN0b3I8U3RyaW5nPiBQbGF0Zm9ybVBhc3RlYm9hcmQ6OnR5cGVzU2FmZUZvckRPTVRvUmVhZEFu
ZFdyaXRlKGNvbnN0IFN0cmluZyYgb3JpZ2luKSBjb25zdAogewogICAgIExpc3RIYXNoU2V0PFN0
cmluZz4gZG9tUGFzdGVib2FyZFR5cGVzOwotICAgIGlmIChOU0RhdGEgKnNlcmlhbGl6ZWRDdXN0
b21EYXRhID0gW21fcGFzdGVib2FyZCBkYXRhRm9yVHlwZTpAKFBhc3RlYm9hcmRDdXN0b21EYXRh
Ojpjb2NvYVR5cGUoKSldKSB7CisgICAgaWYgKE5TRGF0YSAqc2VyaWFsaXplZEN1c3RvbURhdGEg
PSBbbV9wYXN0ZWJvYXJkIGRhdGFGb3JUeXBlOkAoUGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29h
VHlwZSgpLmNoYXJhY3RlcnMoKSldKSB7CiAgICAgICAgIGF1dG8gZGF0YSA9IFBhc3RlYm9hcmRD
dXN0b21EYXRhOjpmcm9tU2hhcmVkQnVmZmVyKFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKHNlcmlhbGl6
ZWRDdXN0b21EYXRhKS5nZXQoKSk7CiAgICAgICAgIGlmIChkYXRhLm9yaWdpbigpID09IG9yaWdp
bikgewogICAgICAgICAgICAgZm9yIChhdXRvJiB0eXBlIDogZGF0YS5vcmRlcmVkVHlwZXMoKSkK
QEAgLTIyNyw3ICsyMjcsNyBAQCBWZWN0b3I8U3RyaW5nPiBQbGF0Zm9ybVBhc3RlYm9hcmQ6OnR5
cGVzU2FmZUZvckRPTVRvUmVhZEFuZFdyaXRlKGNvbnN0IFN0cmluZyYgbwogCiAgICAgTlNBcnJh
eTxOU1N0cmluZyAqPiAqYWxsVHlwZXMgPSBbbV9wYXN0ZWJvYXJkIHR5cGVzXTsKICAgICBmb3Ig
KE5TU3RyaW5nICp0eXBlIGluIGFsbFR5cGVzKSB7Ci0gICAgICAgIGlmIChbdHlwZSBpc0VxdWFs
VG9TdHJpbmc6QChQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkpXSkKKyAgICAgICAg
aWYgKFt0eXBlIGlzRXF1YWxUb1N0cmluZzpAKFBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5
cGUoKS5jaGFyYWN0ZXJzKCkpXSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgIGlm
IChQYXN0ZWJvYXJkOjppc1NhZmVUeXBlRm9yRE9NVG9SZWFkQW5kV3JpdGUodHlwZSkpCkBAIC0y
NTQsNyArMjU0LDcgQEAgaW50NjRfdCBQbGF0Zm9ybVBhc3RlYm9hcmQ6OndyaXRlKGNvbnN0IFBh
c3RlYm9hcmRDdXN0b21EYXRhJiBkYXRhKQogCiAgICAgYm9vbCBzaG91bGRXcml0ZUN1c3RvbURh
dGEgPSBkYXRhLmhhc1NhbWVPcmlnaW5DdXN0b21EYXRhKCkgfHwgIWRhdGEub3JpZ2luKCkuaXNF
bXB0eSgpOwogICAgIGlmIChzaG91bGRXcml0ZUN1c3RvbURhdGEpCi0gICAgICAgIFt0eXBlcyBh
ZGRPYmplY3Q6QChQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkpXTsKKyAgICAgICAg
W3R5cGVzIGFkZE9iamVjdDpAKFBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKS5jaGFy
YWN0ZXJzKCkpXTsKIAogICAgIFttX3Bhc3RlYm9hcmQgZGVjbGFyZVR5cGVzOnR5cGVzIG93bmVy
Om5pbF07CiAKQEAgLTI3NSw3ICsyNzUsNyBAQCBpbnQ2NF90IFBsYXRmb3JtUGFzdGVib2FyZDo6
d3JpdGUoY29uc3QgUGFzdGVib2FyZEN1c3RvbURhdGEmIGRhdGEpCiAKICAgICBpZiAoc2hvdWxk
V3JpdGVDdXN0b21EYXRhKSB7CiAgICAgICAgIGlmIChhdXRvIHNlcmlhbGl6ZWRDdXN0b21EYXRh
ID0gZGF0YS5jcmVhdGVTaGFyZWRCdWZmZXIoKS0+Y3JlYXRlTlNEYXRhKCkpCi0gICAgICAgICAg
ICBbbV9wYXN0ZWJvYXJkIHNldERhdGE6c2VyaWFsaXplZEN1c3RvbURhdGEuZ2V0KCkgZm9yVHlw
ZTpAKFBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKSldOworICAgICAgICAgICAgW21f
cGFzdGVib2FyZCBzZXREYXRhOnNlcmlhbGl6ZWRDdXN0b21EYXRhLmdldCgpIGZvclR5cGU6QChQ
YXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkuY2hhcmFjdGVycygpKV07CiAgICAgfQog
CiAgICAgcmV0dXJuIGNoYW5nZUNvdW50KCk7CkBAIC00OTksNyArNDk5LDcgQEAgc3RhdGljIFJl
dGFpblB0cjxOU1Bhc3RlYm9hcmRJdGVtPiBjcmVhdGVQYXN0ZWJvYXJkSXRlbShjb25zdCBQYXN0
ZWJvYXJkQ3VzdG9tRGEKIAogICAgIGlmIChkYXRhLmhhc1NhbWVPcmlnaW5DdXN0b21EYXRhKCkg
fHwgIWRhdGEub3JpZ2luKCkuaXNFbXB0eSgpKSB7CiAgICAgICAgIGlmIChhdXRvIHNlcmlhbGl6
ZWRDdXN0b21EYXRhID0gZGF0YS5jcmVhdGVTaGFyZWRCdWZmZXIoKS0+Y3JlYXRlTlNEYXRhKCkp
Ci0gICAgICAgICAgICBbaXRlbSBzZXREYXRhOnNlcmlhbGl6ZWRDdXN0b21EYXRhLmdldCgpIGZv
clR5cGU6QChQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkpXTsKKyAgICAgICAgICAg
IFtpdGVtIHNldERhdGE6c2VyaWFsaXplZEN1c3RvbURhdGEuZ2V0KCkgZm9yVHlwZTpAKFBhc3Rl
Ym9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKS5jaGFyYWN0ZXJzKCkpXTsKICAgICB9CiAKICAg
ICBkYXRhLmZvckVhY2hQbGF0Zm9ybVN0cmluZ09yQnVmZmVyKFsmXSAoYXV0byYgdHlwZSwgYXV0
byYgc3RyaW5nT3JCdWZmZXIpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9TdHJpbmdVdGlsaXRpZXMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU3Ry
aW5nVXRpbGl0aWVzLm1tCmluZGV4IDdjZDFiZDgwYWU5ZTMzZTc1NmY2NTkxMjI0MGY3ZWQ2Y2Mz
M2M1YjUuLjkyYmU2NjdlNjNlYjMxZjQxZDc3OWE5NjYyZjFmYjc1NmY0NjU0M2UgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TdHJpbmdVdGlsaXRpZXMubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1N0cmluZ1V0aWxpdGllcy5tbQpAQCAtMzMsNyAr
MzMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgCiBzdGF0aWMgU3RyaW5nIHdpbGRjYXJk
UmVnZXhQYXR0ZXJuU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewotICAgIFN0cmluZyBt
ZXRhQ2hhcmFjdGVycyA9ICIufCs/KClbXXt9XiQiOworICAgIFN0cmluZyBtZXRhQ2hhcmFjdGVy
cyA9ICIufCs/KClbXXt9XiQiX3M7CiAgICAgVUNoYXIgZXNjYXBlQ2hhcmFjdGVyID0gJ1xcJzsK
ICAgICBVQ2hhciB3aWxkY2FyZENoYXJhY3RlciA9ICcqJzsKICAgICAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9UaHJlYWRDaGVjay5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9UaHJlYWRDaGVjay5tbQppbmRleCBmMTUxMDg4Y2U5MjVhNTA2ZWI0Njhi
MjIyMWZhZjMyNzUwMzJiYTQyLi5iYmQ3MzQ0MWUwNTBiOTY4NzU3YTRmNWE2YWQxMzQ2NmIxYWQw
NmQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVGhyZWFkQ2hlY2su
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1RocmVhZENoZWNrLm1tCkBAIC0x
MDYsNyArMTA2LDcgQEAgdm9pZCBXZWJDb3JlUmVwb3J0VGhyZWFkVmlvbGF0aW9uKGNvbnN0IGNo
YXIqIGZ1bmN0aW9uLCBXZWJDb3JlOjpUaHJlYWRWaW9sYXRpb24KICAgICAgICAgY2FzZSBOb1Ro
cmVhZENoZWNrOgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgTG9nT25GaXJzdFRo
cmVhZFZpb2xhdGlvbjoKLSAgICAgICAgICAgIGlmIChsb2dnZWRGdW5jdGlvbnMuZ2V0KCkuYWRk
KGZ1bmN0aW9uKS5pc05ld0VudHJ5KSB7CisgICAgICAgICAgICBpZiAobG9nZ2VkRnVuY3Rpb25z
LmdldCgpLmFkZChTdHJpbmcgeyBmdW5jdGlvbiB9KS5pc05ld0VudHJ5KSB7CiAgICAgICAgICAg
ICAgICAgTlNMb2coQCJXZWJLaXQgVGhyZWFkaW5nIFZpb2xhdGlvbiAtICVzIGNhbGxlZCBmcm9t
IHNlY29uZGFyeSB0aHJlYWQiLCBmdW5jdGlvbik7CiAgICAgICAgICAgICAgICAgTlNMb2coQCJB
ZGRpdGlvbmFsIHRocmVhZGluZyB2aW9sYXRpb25zIGZvciB0aGlzIGZ1bmN0aW9uIHdpbGwgbm90
IGJlIGxvZ2dlZC4iKTsKICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9Vc2VyQWdlbnRNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvVXNlckFnZW50TWFjLm1tCmluZGV4IGU2MmE5N2YxOTlhYWNjM2NhNjkyZDhkYTRiMjA5ZDI5
OTRlM2EwZDEuLmVkYzA3OWY0ZTAyNGFmMzAxZTQ1ZmFhMTA5MzVhOGRiM2EyYjJjNzUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9Vc2VyQWdlbnRNYWMubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1VzZXJBZ2VudE1hYy5tbQpAQCAtMzgsNyArMzgs
NyBAQCBTdHJpbmcgc3RhbmRhcmRVc2VyQWdlbnRXaXRoQXBwbGljYXRpb25OYW1lKGNvbnN0IFN0
cmluZyYgYXBwbGljYXRpb25OYW1lLCBjb25zdAogICAgIGlmICghb3NWZXJzaW9uLnN0YXJ0c1dp
dGgoIjEwIikpCiAgICAgICAgIG9zVmVyc2lvbiA9ICIxMF8xNV83Il9zOwogICAgIAotICAgIFN0
cmluZyBhcHBOYW1lU3VmZml4ID0gYXBwbGljYXRpb25OYW1lLmlzRW1wdHkoKSA/ICIiIDogbWFr
ZVN0cmluZygiICIsIGFwcGxpY2F0aW9uTmFtZSk7CisgICAgU3RyaW5nIGFwcE5hbWVTdWZmaXgg
PSBhcHBsaWNhdGlvbk5hbWUuaXNFbXB0eSgpID8gZW1wdHlTdHJpbmcoKSA6IG1ha2VTdHJpbmco
IiAiLCBhcHBsaWNhdGlvbk5hbWUpOwogCiAgICAgcmV0dXJuIG1ha2VTdHJpbmcoIk1vemlsbGEv
NS4wIChNYWNpbnRvc2g7IEludGVsIE1hYyBPUyBYICIsIG9zVmVyc2lvbiwgIikgQXBwbGVXZWJL
aXQvNjA1LjEuMTUgKEtIVE1MLCBsaWtlIEdlY2tvKSIsIGFwcE5hbWVTdWZmaXgpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUVycm9yQmFz
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlRXJyb3JCYXNl
LmNwcAppbmRleCA2N2QyZWFjMDhmYTdiNGJmMDY0Y2NkZmFiYzI0OWZjYzQ2MjUxY2ZkLi5kMDE5
M2FjNmM5Yjk3NGFhMmJmMWQ3MTk3OWQzZTcwMTViYzMwZDlkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlRXJyb3JCYXNlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlRXJyb3JCYXNlLmNwcApAQCAtMzIs
OCArMzIsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNvbnN0IGNoYXIqIGNvbnN0IGVy
cm9yRG9tYWluV2ViS2l0SW50ZXJuYWwgPSAiV2ViS2l0SW50ZXJuYWwiOwotY29uc3QgY2hhciog
Y29uc3QgZXJyb3JEb21haW5XZWJLaXRTZXJ2aWNlV29ya2VyID0gIldlYktpdFNlcnZpY2VXb3Jr
ZXIiOworY29uc3QgQVNDSUlMaXRlcmFsIGVycm9yRG9tYWluV2ViS2l0SW50ZXJuYWwgPSAiV2Vi
S2l0SW50ZXJuYWwiX3M7Citjb25zdCBBU0NJSUxpdGVyYWwgZXJyb3JEb21haW5XZWJLaXRTZXJ2
aWNlV29ya2VyID0gIldlYktpdFNlcnZpY2VXb3JrZXIiX3M7CiAKIGlubGluZSBjb25zdCBSZXNv
dXJjZUVycm9yJiBSZXNvdXJjZUVycm9yQmFzZTo6YXNSZXNvdXJjZUVycm9yKCkgY29uc3QKIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VFcnJv
ckJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VFcnJvckJh
c2UuaAppbmRleCA0ODhkZWJjMTQzZDYzZjQ1N2U4ZDM4ZTljNmRjMjNhOWQyMGJhODE2Li5lMTIx
YzUxNGY0ODk0MjZhMzQzZDM0NDg5MGI5NjYzMDI1MGNkN2NhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlRXJyb3JCYXNlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUVycm9yQmFzZS5oCkBAIC0zNCw4ICsz
NCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUmVzb3VyY2VFcnJvcjsKIAotV0VC
Q09SRV9FWFBPUlQgZXh0ZXJuIGNvbnN0IGNoYXIqIGNvbnN0IGVycm9yRG9tYWluV2ViS2l0SW50
ZXJuYWw7IC8vIFVzZWQgZm9yIGVycm9ycyB0aGF0IHdvbid0IGJlIGV4cG9zZWQgdG8gY2xpZW50
cy4KLVdFQkNPUkVfRVhQT1JUIGV4dGVybiBjb25zdCBjaGFyKiBjb25zdCBlcnJvckRvbWFpbldl
YktpdFNlcnZpY2VXb3JrZXI7IC8vIFVzZWQgZm9yIGVycm9ycyB0aGF0IGhhcHBlbiB3aGVuIGxv
YWRpbmcgYSByZXNvdXJjZSBmcm9tIGEgc2VydmljZSB3b3JrZXIuCitXRUJDT1JFX0VYUE9SVCBl
eHRlcm4gY29uc3QgQVNDSUlMaXRlcmFsIGVycm9yRG9tYWluV2ViS2l0SW50ZXJuYWw7IC8vIFVz
ZWQgZm9yIGVycm9ycyB0aGF0IHdvbid0IGJlIGV4cG9zZWQgdG8gY2xpZW50cy4KK1dFQkNPUkVf
RVhQT1JUIGV4dGVybiBjb25zdCBBU0NJSUxpdGVyYWwgZXJyb3JEb21haW5XZWJLaXRTZXJ2aWNl
V29ya2VyOyAvLyBVc2VkIGZvciBlcnJvcnMgdGhhdCBoYXBwZW4gd2hlbiBsb2FkaW5nIGEgcmVz
b3VyY2UgZnJvbSBhIHNlcnZpY2Ugd29ya2VyLgogCiBjbGFzcyBSZXNvdXJjZUVycm9yQmFzZSB7
CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1JhbmdlUmVzcG9uc2VHZW5lcmF0b3IubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1JhbmdlUmVzcG9uc2VHZW5lcmF0b3Iu
bW0KaW5kZXggMTk4MTRhMzY1YzlmNjYxYTIxYzIyOWFkYmQwNDYxMWMyMDk0N2U2NC4uMDRlZmRi
NGRmZjFkMTY0MWMzZDYwNWFmMzAxNGQxYTEwYzI0NjQzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9SYW5nZVJlc3BvbnNlR2VuZXJhdG9yLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvUmFuZ2VSZXNwb25zZUdl
bmVyYXRvci5tbQpAQCAtNzgsNyArNzgsNyBAQCBzdGF0aWMgUmVzb3VyY2VSZXNwb25zZSBzeW50
aGVzaXplZFJlc3BvbnNlRm9yUmFuZ2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgb3JpZwogICAg
IGF1dG8gYmVnaW4gPSBwYXJzZWRSZXF1ZXN0UmFuZ2UuYmVnaW47CiAgICAgYXV0byBlbmQgPSBw
YXJzZWRSZXF1ZXN0UmFuZ2UuZW5kOwogCi0gICAgYXV0byBuZXdDb250ZW50UmFuZ2UgPSBtYWtl
U3RyaW5nKCJieXRlcyAiLCBiZWdpbiwgIi0iLCBlbmQsICIvIiwgKHRvdGFsQ29udGVudExlbmd0
aCA/IG1ha2VTdHJpbmcoKnRvdGFsQ29udGVudExlbmd0aCkgOiAiKiIpKTsKKyAgICBhdXRvIG5l
d0NvbnRlbnRSYW5nZSA9IG1ha2VTdHJpbmcoImJ5dGVzICIsIGJlZ2luLCAiLSIsIGVuZCwgIi8i
LCAodG90YWxDb250ZW50TGVuZ3RoID8gbWFrZVN0cmluZygqdG90YWxDb250ZW50TGVuZ3RoKSA6
ICIqIl9zKSk7CiAgICAgYXV0byBuZXdDb250ZW50TGVuZ3RoID0gbWFrZVN0cmluZyhlbmQgLSBi
ZWdpbiArIDEpOwogCiAgICAgUmVzb3VyY2VSZXNwb25zZSBuZXdSZXNwb25zZSA9IG9yaWdpbmFs
UmVzcG9uc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhl
bWVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KaW5k
ZXggMDEwZWNiYWVkODdhNzNhNDIwYWZiOTdlOGU4MGZlYTYzNzlmZWQzZS4uOGU5ZDQ2YTFiMzRj
YWIwNDdmYmEzNDNkMWI1N2EyYzViMmRjMTA4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUaGVtZU1hYy5tbQpAQCAtMjYxOSw3ICsyNjE5LDcgQEAgQUxMT1dfREVQUkVDQVRF
RF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgICAgICByZXR1cm4gaWNvbjsKICAgICB9CiAKLSAg
ICByZXR1cm4gSWNvbjo6Y3JlYXRlSWNvbkZvclVUSSgicHVibGljLmRhdGEiKTsKKyAgICByZXR1
cm4gSWNvbjo6Y3JlYXRlSWNvbkZvclVUSSgicHVibGljLmRhdGEiX3MpOwogfQogCiBSZXRhaW5Q
dHI8TlNJbWFnZT4gUmVuZGVyVGhlbWVNYWM6Omljb25Gb3JBdHRhY2htZW50KGNvbnN0IFN0cmlu
ZyYgZmlsZU5hbWUsIGNvbnN0IFN0cmluZyYgYXR0YWNobWVudFR5cGUsIGNvbnN0IFN0cmluZyYg
dGl0bGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVy
U3R5bGVDb25zdGFudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRl
clN0eWxlQ29uc3RhbnRzLmNwcAppbmRleCA5MmJjNmE4MTJhMTE4YTUxOWYwYjQ2Yzk0Zjk3MmUz
MmIzYTVlZTU2Li40YzUyYzY3MWJkYmNlNjRjOTNlY2MyNGY1ODMwMTUyY2ZmMDUwNmZiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFu
dHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNv
bnN0YW50cy5jcHAKQEAgLTY3MSw3ICs2NzEsNyBAQCBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRl
eHRTdHJlYW0mIHRzLCBMaXN0U3R5bGVQb3NpdGlvbiBwb3NpdGlvbikKIAogVGV4dFN0cmVhbSYg
b3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgTGlzdFN0eWxlVHlwZSBzdHlsZVR5cGUpCiB7Ci0g
ICAgcmV0dXJuIHRzIDw8IGdldFZhbHVlTmFtZSh0b0NTU1ZhbHVlSUQoc3R5bGVUeXBlKSk7Cisg
ICAgcmV0dXJuIHRzIDw8IGdldFZhbHVlTmFtZSh0b0NTU1ZhbHVlSUQoc3R5bGVUeXBlKSkuY2hh
cmFjdGVycygpOwogfQogCiBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBN
YXJxdWVlQmVoYXZpb3IgbWFycXVlZUJlaGF2aW9yKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJF
bGVtZW50LmgKaW5kZXggMWFjZDJhZTk1YTE1OTRlOWYzMzc5ZDJlOTM5ZjkxNmRkMTUwNDZmZC4u
MDBjNzYxMGExMGNlYmE0NTM0MjRkYTc5NDA5NmUxYTZmZDMzNTI5NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRmlsdGVyRWxlbWVudC5oCkBAIC02OCwxMCArNjgsMTAgQEAgcHJpdmF0ZToKICAgICBQ
cm9wZXJ0eVJlZ2lzdHJ5IG1fcHJvcGVydHlSZWdpc3RyeSB7ICp0aGlzIH07CiAgICAgUmVmPFNW
R0FuaW1hdGVkRW51bWVyYXRpb24+IG1fZmlsdGVyVW5pdHMgeyBTVkdBbmltYXRlZEVudW1lcmF0
aW9uOjpjcmVhdGUodGhpcywgU1ZHVW5pdFR5cGVzOjpTVkdfVU5JVF9UWVBFX09CSkVDVEJPVU5E
SU5HQk9YKSB9OwogICAgIFJlZjxTVkdBbmltYXRlZEVudW1lcmF0aW9uPiBtX3ByaW1pdGl2ZVVu
aXRzIHsgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbjo6Y3JlYXRlKHRoaXMsIFNWR1VuaXRUeXBlczo6
U1ZHX1VOSVRfVFlQRV9VU0VSU1BBQ0VPTlVTRSkgfTsKLSAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5n
dGg+IG1feCB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6
V2lkdGgsICItMTAlIikgfTsKLSAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1feSB7IFNWR0Fu
aW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6SGVpZ2h0LCAiLTEwJSIp
IH07Ci0gICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX3dpZHRoIHsgU1ZHQW5pbWF0ZWRMZW5n
dGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpXaWR0aCwgIjEyMCUiKSB9OwotICAgIFJl
ZjxTVkdBbmltYXRlZExlbmd0aD4gbV9oZWlnaHQgeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRl
KHRoaXMsIFNWR0xlbmd0aE1vZGU6OkhlaWdodCwgIjEyMCUiKSB9OworICAgIFJlZjxTVkdBbmlt
YXRlZExlbmd0aD4gbV94IHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5n
dGhNb2RlOjpXaWR0aCwgIi0xMCUiX3MpIH07CisgICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBt
X3kgeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OkhlaWdo
dCwgIi0xMCUiX3MpIH07CisgICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX3dpZHRoIHsgU1ZH
QW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpXaWR0aCwgIjEyMCUi
X3MpIH07CisgICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX2hlaWdodCB7IFNWR0FuaW1hdGVk
TGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6SGVpZ2h0LCAiMTIwJSJfcykgfTsK
IH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMuaCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMuaAppbmRleCAzMTAz
Y2M2YWMyMzNlMGZkM2IyZmIxZTk3OTA0OWEyOGI3YjZmOGJiLi43OGUyYWEyYzFlODE0ZTY5OGVk
NDQ0ZWVjNzdmOWIyMDc2ZTNmOTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
RmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5oCkBAIC03NSwxMCArNzUs
MTAgQEAgcHJpdmF0ZToKIAogICAgIC8vIFNwZWM6IElmIHRoZSB4L3kgYXR0cmlidXRlIGlzIG5v
dCBzcGVjaWZpZWQsIHRoZSBlZmZlY3QgaXMgYXMgaWYgYSB2YWx1ZSBvZiAiMCUiIHdlcmUgc3Bl
Y2lmaWVkLgogICAgIC8vIFNwZWM6IElmIHRoZSB3aWR0aC9oZWlnaHQgYXR0cmlidXRlIGlzIG5v
dCBzcGVjaWZpZWQsIHRoZSBlZmZlY3QgaXMgYXMgaWYgYSB2YWx1ZSBvZiAiMTAwJSIgd2VyZSBz
cGVjaWZpZWQuCi0gICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX3ggeyBTVkdBbmltYXRlZExl
bmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OldpZHRoLCAiMCUiKSB9OwotICAgIFJl
ZjxTVkdBbmltYXRlZExlbmd0aD4gbV95IHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlz
LCBTVkdMZW5ndGhNb2RlOjpIZWlnaHQsICIwJSIpIH07Ci0gICAgUmVmPFNWR0FuaW1hdGVkTGVu
Z3RoPiBtX3dpZHRoIHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhN
b2RlOjpXaWR0aCwgIjEwMCUiKSB9OwotICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV9oZWln
aHQgeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OkhlaWdo
dCwgIjEwMCUiKSB9OworICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV94IHsgU1ZHQW5pbWF0
ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpXaWR0aCwgIjAlIl9zKSB9Owor
ICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV95IHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0
ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpIZWlnaHQsICIwJSJfcykgfTsKKyAgICBSZWY8U1ZHQW5p
bWF0ZWRMZW5ndGg+IG1fd2lkdGggeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNW
R0xlbmd0aE1vZGU6OldpZHRoLCAiMTAwJSJfcykgfTsKKyAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5n
dGg+IG1faGVpZ2h0IHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhN
b2RlOjpIZWlnaHQsICIxMDAlIl9zKSB9OwogICAgIFJlZjxTVkdBbmltYXRlZFN0cmluZz4gbV9y
ZXN1bHQgeyBTVkdBbmltYXRlZFN0cmluZzo6Y3JlYXRlKHRoaXMpIH07CiB9OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmgKaW5kZXggYWVmZTY0Y2Ux
NDY3Njc4NGMwZDFhOTI0Y2UzZGZlYWQ3YmFjYzM3My4uZGYyMGJkMDU5ZmFjNzNiMjNkNzY5ZTg5
YzkyZGVmMGZiZWM5NzhhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVh
ckdyYWRpZW50RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lYXJHcmFk
aWVudEVsZW1lbnQuaApAQCAtNjEsNyArNjEsNyBAQCBwcml2YXRlOgogICAgIFByb3BlcnR5UmVn
aXN0cnkgbV9wcm9wZXJ0eVJlZ2lzdHJ5IHsgKnRoaXMgfTsKICAgICBSZWY8U1ZHQW5pbWF0ZWRM
ZW5ndGg+IG1feDEgeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1v
ZGU6OldpZHRoKSB9OwogICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV95MSB7IFNWR0FuaW1h
dGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6SGVpZ2h0KSB9OwotICAgIFJl
ZjxTVkdBbmltYXRlZExlbmd0aD4gbV94MiB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhp
cywgU1ZHTGVuZ3RoTW9kZTo6V2lkdGgsICIxMDAlIikgfTsKKyAgICBSZWY8U1ZHQW5pbWF0ZWRM
ZW5ndGg+IG1feDIgeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1v
ZGU6OldpZHRoLCAiMTAwJSJfcykgfTsKICAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1feTIg
eyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OkhlaWdodCkg
fTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5oCmluZGV4IDVhMTM2ZTNl
ZjQ1YTU3YTUxYzkyZmY3NjU5YmE2YWY3NjJmMmFlOTMuLmUxZjdlZTlhYzQ3MWFhNGY2ODBmYjU0
YzI0M2FmZDA3NzM3Mjc1ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJr
ZXJFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQuaApA
QCAtODksOCArODksOCBAQCBwcml2YXRlOgogICAgIFByb3BlcnR5UmVnaXN0cnkgbV9wcm9wZXJ0
eVJlZ2lzdHJ5IHsgKnRoaXMgfTsKICAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1fcmVmWCB7
IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6V2lkdGgpIH07
CiAgICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX3JlZlkgeyBTVkdBbmltYXRlZExlbmd0aDo6
Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OkhlaWdodCkgfTsKLSAgICBSZWY8U1ZHQW5pbWF0
ZWRMZW5ndGg+IG1fbWFya2VyV2lkdGggeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMs
IFNWR0xlbmd0aE1vZGU6OldpZHRoLCAiMyIpIH07Ci0gICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3Ro
PiBtX21hcmtlckhlaWdodCB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVu
Z3RoTW9kZTo6SGVpZ2h0LCAiMyIpIH07CisgICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX21h
cmtlcldpZHRoIHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2Rl
OjpXaWR0aCwgIjMiX3MpIH07CisgICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX21hcmtlckhl
aWdodCB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6SGVp
Z2h0LCAiMyJfcykgfTsKICAgICBSZWY8U1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbj4gbV9tYXJrZXJV
bml0cyB7IFNWR0FuaW1hdGVkRW51bWVyYXRpb246OmNyZWF0ZSh0aGlzLCBTVkdNYXJrZXJVbml0
c1N0cm9rZVdpZHRoKSB9OwogICAgIFJlZjxTVkdBbmltYXRlZEFuZ2xlPiBtX29yaWVudEFuZ2xl
IHsgU1ZHQW5pbWF0ZWRBbmdsZTo6Y3JlYXRlKHRoaXMpIH07CiAgICAgUmVmPFNWR0FuaW1hdGVk
T3JpZW50VHlwZT4gbV9vcmllbnRUeXBlIHsgU1ZHQW5pbWF0ZWRPcmllbnRUeXBlOjpjcmVhdGUo
dGhpcywgU1ZHTWFya2VyT3JpZW50QW5nbGUpIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHTWFza0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVu
dC5oCmluZGV4IDQ5MGRjMjIxYWIyNDRhM2VmNWZkZGQyODVkZjM3YTZlNDYwMDM0MmQuLmRiZDA0
MmQwZDNhZjgxMjBlMDBmNTk5Yjk1YjAxZDExMzhjZTIxZGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdN
YXNrRWxlbWVudC5oCkBAIC02MywxMCArNjMsMTAgQEAgcHJpdmF0ZToKICAgICBib29sIHNlbGZI
YXNSZWxhdGl2ZUxlbmd0aHMoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAKICAgICBQ
cm9wZXJ0eVJlZ2lzdHJ5IG1fcHJvcGVydHlSZWdpc3RyeSB7ICp0aGlzIH07Ci0gICAgUmVmPFNW
R0FuaW1hdGVkTGVuZ3RoPiBtX3ggeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNW
R0xlbmd0aE1vZGU6OldpZHRoLCAiLTEwJSIpIH07Ci0gICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3Ro
PiBtX3kgeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6Okhl
aWdodCwgIi0xMCUiKSB9OwotICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV93aWR0aCB7IFNW
R0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6V2lkdGgsICIxMjAl
IikgfTsKLSAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1faGVpZ2h0IHsgU1ZHQW5pbWF0ZWRM
ZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpIZWlnaHQsICIxMjAlIikgfTsKKyAg
ICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1feCB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUo
dGhpcywgU1ZHTGVuZ3RoTW9kZTo6V2lkdGgsICItMTAlIl9zKSB9OworICAgIFJlZjxTVkdBbmlt
YXRlZExlbmd0aD4gbV95IHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5n
dGhNb2RlOjpIZWlnaHQsICItMTAlIl9zKSB9OworICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4g
bV93aWR0aCB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6
V2lkdGgsICIxMjAlIl9zKSB9OworICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV9oZWlnaHQg
eyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OkhlaWdodCwg
IjEyMCUiX3MpIH07CiAgICAgUmVmPFNWR0FuaW1hdGVkRW51bWVyYXRpb24+IG1fbWFza1VuaXRz
IHsgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbjo6Y3JlYXRlKHRoaXMsIFNWR1VuaXRUeXBlczo6U1ZH
X1VOSVRfVFlQRV9PQkpFQ1RCT1VORElOR0JPWCkgfTsKICAgICBSZWY8U1ZHQW5pbWF0ZWRFbnVt
ZXJhdGlvbj4gbV9tYXNrQ29udGVudFVuaXRzIHsgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbjo6Y3Jl
YXRlKHRoaXMsIFNWR1VuaXRUeXBlczo6U1ZHX1VOSVRfVFlQRV9VU0VSU1BBQ0VPTlVTRSkgfTsK
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0ltcGwuaCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnSW1wbC5oCmluZGV4IGE2MzYxNTQyOTRmZWEzYTVi
MDViZjlmZThmMmY5MGMxOGVhMTA4MzQuLjM0ZjIzYzUxNWY5NGI5MzkxNzBmM2E1Y2U5YWU4ZmI1
Mjg4NjYxOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnSW1wbC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnSW1wbC5oCkBAIC0zNSw3ICszNSw3
IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdXNpbmcgU1ZHUGF0aFNlZzo6U1ZHUGF0aFNlZzsK
ICAgICB1bnNpZ25lZCBzaG9ydCBwYXRoU2VnVHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFBB
VEhTRUdfQ0xPU0VQQVRIOyB9Ci0gICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25z
dCBmaW5hbCB7IHJldHVybiAiWiI7IH0KKyAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuICJaIl9zOyB9CiAgICAgUmVmPFNWR1BhdGhTZWc+IGNsb25l
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdQYXRoU2VnQ2xvc2VQYXRo
KCkpOyB9CiB9OwogCkBAIC00NSw3ICs0NSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdXNp
bmcgU1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWw6OlNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFs
OwogICAgIHVuc2lnbmVkIHNob3J0IHBhdGhTZWdUeXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
UEFUSFNFR19MSU5FVE9fSE9SSVpPTlRBTF9BQlM7IH0KLSAgICBTdHJpbmcgcGF0aFNlZ1R5cGVB
c0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJIIjsgfQorICAgIFN0cmluZyBwYXRoU2Vn
VHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIkgiX3M7IH0KICAgICBSZWY8U1ZH
UGF0aFNlZz4gY2xvbmUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBTVkdQYXRoU2VnVmFsdWU6OmNs
b25lPFNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsQWJzPigpOyB9CiB9OwogCkBAIC01NSw3ICs1
NSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdXNpbmcgU1ZHUGF0aFNlZ0xpbmV0b0hvcml6
b250YWw6OlNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsOwogICAgIHVuc2lnbmVkIHNob3J0IHBh
dGhTZWdUeXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gUEFUSFNFR19MSU5FVE9fSE9SSVpPTlRB
TF9SRUw7IH0KLSAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuICJoIjsgfQorICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gImgiX3M7IH0KICAgICBSZWY8U1ZHUGF0aFNlZz4gY2xvbmUoKSBjb25zdCBm
aW5hbCB7IHJldHVybiBTVkdQYXRoU2VnVmFsdWU6OmNsb25lPFNWR1BhdGhTZWdMaW5ldG9Ib3Jp
em9udGFsUmVsPigpOyB9CiB9OwogCkBAIC02NSw3ICs2NSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6
CiAgICAgdXNpbmcgU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsOjpTVkdQYXRoU2VnTGluZXRvVmVy
dGljYWw7CiAgICAgdW5zaWduZWQgc2hvcnQgcGF0aFNlZ1R5cGUoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiBQQVRIU0VHX0xJTkVUT19WRVJUSUNBTF9BQlM7IH0KLSAgICBTdHJpbmcgcGF0aFNlZ1R5
cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJWIjsgfQorICAgIFN0cmluZyBwYXRo
U2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIlYiX3M7IH0KICAgICBSZWY8
U1ZHUGF0aFNlZz4gY2xvbmUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBTVkdQYXRoU2VnVmFsdWU6
OmNsb25lPFNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbEFicz4oKTsgfQogfTsKIApAQCAtNzUsNyAr
NzUsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHVzaW5nIFNWR1BhdGhTZWdMaW5ldG9WZXJ0
aWNhbDo6U1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsOwogICAgIHVuc2lnbmVkIHNob3J0IHBhdGhT
ZWdUeXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gUEFUSFNFR19MSU5FVE9fVkVSVElDQUxfUkVM
OyB9Ci0gICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVy
biAidiI7IH0KKyAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuICJ2Il9zOyB9CiAgICAgUmVmPFNWR1BhdGhTZWc+IGNsb25lKCkgY29uc3QgZmluYWwg
eyByZXR1cm4gU1ZHUGF0aFNlZ1ZhbHVlOjpjbG9uZTxTVkdQYXRoU2VnTGluZXRvVmVydGljYWxS
ZWw+KCk7IH0KIH07CiAKQEAgLTg1LDcgKzg1LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB1
c2luZyBTVkdQYXRoU2VnU2luZ2xlQ29vcmRpbmF0ZTo6U1ZHUGF0aFNlZ1NpbmdsZUNvb3JkaW5h
dGU7CiAgICAgdW5zaWduZWQgc2hvcnQgcGF0aFNlZ1R5cGUoKSBjb25zdCBmaW5hbCB7IHJldHVy
biBQQVRIU0VHX01PVkVUT19BQlM7IH0KLSAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuICJNIjsgfQorICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0
dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIk0iX3M7IH0KICAgICBSZWY8U1ZHUGF0aFNlZz4g
Y2xvbmUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBTVkdQYXRoU2VnVmFsdWU6OmNsb25lPFNWR1Bh
dGhTZWdNb3ZldG9BYnM+KCk7IH0KIH07CiAKQEAgLTk1LDcgKzk1LDcgQEAgcHVibGljOgogcHJp
dmF0ZToKICAgICB1c2luZyBTVkdQYXRoU2VnU2luZ2xlQ29vcmRpbmF0ZTo6U1ZHUGF0aFNlZ1Np
bmdsZUNvb3JkaW5hdGU7CiAgICAgdW5zaWduZWQgc2hvcnQgcGF0aFNlZ1R5cGUoKSBjb25zdCBm
aW5hbCB7IHJldHVybiBQQVRIU0VHX01PVkVUT19SRUw7IH0KLSAgICBTdHJpbmcgcGF0aFNlZ1R5
cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJtIjsgfQorICAgIFN0cmluZyBwYXRo
U2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIm0iX3M7IH0KICAgICBSZWY8
U1ZHUGF0aFNlZz4gY2xvbmUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBTVkdQYXRoU2VnVmFsdWU6
OmNsb25lPFNWR1BhdGhTZWdNb3ZldG9SZWw+KCk7IH0KIH07CiAKQEAgLTEwNSw3ICsxMDUsNyBA
QCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHVzaW5nIFNWR1BhdGhTZWdTaW5nbGVDb29yZGluYXRl
OjpTVkdQYXRoU2VnU2luZ2xlQ29vcmRpbmF0ZTsKICAgICB1bnNpZ25lZCBzaG9ydCBwYXRoU2Vn
VHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFBBVEhTRUdfTElORVRPX0FCUzsgfQotICAgIFN0
cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIkwiOyB9Cisg
ICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiTCJf
czsgfQogICAgIFJlZjxTVkdQYXRoU2VnPiBjbG9uZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFNW
R1BhdGhTZWdWYWx1ZTo6Y2xvbmU8U1ZHUGF0aFNlZ0xpbmV0b0Ficz4oKTsgfQogfTsKIApAQCAt
MTE1LDcgKzExNSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdXNpbmcgU1ZHUGF0aFNlZ1Np
bmdsZUNvb3JkaW5hdGU6OlNWR1BhdGhTZWdTaW5nbGVDb29yZGluYXRlOwogICAgIHVuc2lnbmVk
IHNob3J0IHBhdGhTZWdUeXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gUEFUSFNFR19MSU5FVE9f
UkVMOyB9Ci0gICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiAibCI7IH0KKyAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuICJsIl9zOyB9CiAgICAgUmVmPFNWR1BhdGhTZWc+IGNsb25lKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gU1ZHUGF0aFNlZ1ZhbHVlOjpjbG9uZTxTVkdQYXRoU2VnTGluZXRvUmVsPigp
OyB9CiB9OwogCkBAIC0xMjUsNyArMTI1LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB1c2lu
ZyBTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpYzo6U1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWM7
CiAgICAgdW5zaWduZWQgc2hvcnQgcGF0aFNlZ1R5cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBQ
QVRIU0VHX0NVUlZFVE9fUVVBRFJBVElDX0FCUzsgfQotICAgIFN0cmluZyBwYXRoU2VnVHlwZUFz
TGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIlEiOyB9CisgICAgU3RyaW5nIHBhdGhTZWdU
eXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiUSJfczsgfQogICAgIFJlZjxTVkdQ
YXRoU2VnPiBjbG9uZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFNWR1BhdGhTZWdWYWx1ZTo6Y2xv
bmU8U1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNBYnM+KCk7IH0KIH07CiAKQEAgLTEzNSw3ICsx
MzUsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHVzaW5nIFNWR1BhdGhTZWdDdXJ2ZXRvUXVh
ZHJhdGljOjpTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpYzsKICAgICB1bnNpZ25lZCBzaG9ydCBw
YXRoU2VnVHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFBBVEhTRUdfQ1VSVkVUT19RVUFEUkFU
SUNfUkVMOyB9Ci0gICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7
IHJldHVybiAicSI7IH0KKyAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuICJxIl9zOyB9CiAgICAgUmVmPFNWR1BhdGhTZWc+IGNsb25lKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gU1ZHUGF0aFNlZ1ZhbHVlOjpjbG9uZTxTVkdQYXRoU2VnQ3VydmV0b1F1
YWRyYXRpY1JlbD4oKTsgfQogfTsKIApAQCAtMTQ1LDcgKzE0NSw3IEBAIHB1YmxpYzoKIHByaXZh
dGU6CiAgICAgdXNpbmcgU1ZHUGF0aFNlZ0N1cnZldG9DdWJpYzo6U1ZHUGF0aFNlZ0N1cnZldG9D
dWJpYzsKICAgICB1bnNpZ25lZCBzaG9ydCBwYXRoU2VnVHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIFBBVEhTRUdfQ1VSVkVUT19DVUJJQ19BQlM7IH0KLSAgICBTdHJpbmcgcGF0aFNlZ1R5cGVB
c0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJDIjsgfQorICAgIFN0cmluZyBwYXRoU2Vn
VHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIkMiX3M7IH0KICAgICBSZWY8U1ZH
UGF0aFNlZz4gY2xvbmUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBTVkdQYXRoU2VnVmFsdWU6OmNs
b25lPFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNBYnM+KCk7IH0KIH07CiAKQEAgLTE1NSw3ICsxNTUs
NyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHVzaW5nIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWM6
OlNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWM7CiAgICAgdW5zaWduZWQgc2hvcnQgcGF0aFNlZ1R5cGUo
KSBjb25zdCBmaW5hbCB7IHJldHVybiBQQVRIU0VHX0NVUlZFVE9fQ1VCSUNfUkVMOyB9Ci0gICAg
U3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiYyI7IH0K
KyAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJj
Il9zOyB9CiAgICAgUmVmPFNWR1BhdGhTZWc+IGNsb25lKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
U1ZHUGF0aFNlZ1ZhbHVlOjpjbG9uZTxTVkdQYXRoU2VnQ3VydmV0b0N1YmljUmVsPigpOyB9CiB9
OwogCkBAIC0xNjUsNyArMTY1LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB1c2luZyBTVkdQ
YXRoU2VnQXJjOjpTVkdQYXRoU2VnQXJjOwogICAgIHVuc2lnbmVkIHNob3J0IHBhdGhTZWdUeXBl
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gUEFUSFNFR19BUkNfQUJTOyB9Ci0gICAgU3RyaW5nIHBh
dGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiQSI7IH0KKyAgICBTdHJp
bmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJBIl9zOyB9CiAg
ICAgUmVmPFNWR1BhdGhTZWc+IGNsb25lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gU1ZHUGF0aFNl
Z1ZhbHVlOjpjbG9uZTxTVkdQYXRoU2VnQXJjQWJzPigpOyB9CiB9OwogCkBAIC0xNzUsNyArMTc1
LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB1c2luZyBTVkdQYXRoU2VnQXJjOjpTVkdQYXRo
U2VnQXJjOwogICAgIHVuc2lnbmVkIHNob3J0IHBhdGhTZWdUeXBlKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gUEFUSFNFR19BUkNfUkVMOyB9Ci0gICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIo
KSBjb25zdCBmaW5hbCB7IHJldHVybiAiYSI7IH0KKyAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xl
dHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJhIl9zOyB9CiAgICAgUmVmPFNWR1BhdGhTZWc+
IGNsb25lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gU1ZHUGF0aFNlZ1ZhbHVlOjpjbG9uZTxTVkdQ
YXRoU2VnQXJjUmVsPigpOyB9CiB9OwogCkBAIC0xODUsNyArMTg1LDcgQEAgcHVibGljOgogcHJp
dmF0ZToKICAgICB1c2luZyBTVkdQYXRoU2VnU2luZ2xlQ29vcmRpbmF0ZTo6U1ZHUGF0aFNlZ1Np
bmdsZUNvb3JkaW5hdGU7CiAgICAgdW5zaWduZWQgc2hvcnQgcGF0aFNlZ1R5cGUoKSBjb25zdCBm
aW5hbCB7IHJldHVybiBQQVRIU0VHX0NVUlZFVE9fUVVBRFJBVElDX1NNT09USF9BQlM7IH0KLSAg
ICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJUIjsg
fQorICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
IlQiX3M7IH0KICAgICBSZWY8U1ZHUGF0aFNlZz4gY2xvbmUoKSBjb25zdCBmaW5hbCB7IHJldHVy
biBTVkdQYXRoU2VnVmFsdWU6OmNsb25lPFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3Ro
QWJzPigpOyB9CiB9OwogCkBAIC0xOTUsNyArMTk1LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAg
ICB1c2luZyBTVkdQYXRoU2VnU2luZ2xlQ29vcmRpbmF0ZTo6U1ZHUGF0aFNlZ1NpbmdsZUNvb3Jk
aW5hdGU7CiAgICAgdW5zaWduZWQgc2hvcnQgcGF0aFNlZ1R5cGUoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiBQQVRIU0VHX0NVUlZFVE9fUVVBRFJBVElDX1NNT09USF9SRUw7IH0KLSAgICBTdHJpbmcg
cGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJ0IjsgfQorICAgIFN0
cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gInQiX3M7IH0K
ICAgICBSZWY8U1ZHUGF0aFNlZz4gY2xvbmUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBTVkdQYXRo
U2VnVmFsdWU6OmNsb25lPFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21vb3RoUmVsPigpOyB9
CiB9OwogCkBAIC0yMDUsNyArMjA1LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB1c2luZyBT
VkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoOjpTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3Ro
OwogICAgIHVuc2lnbmVkIHNob3J0IHBhdGhTZWdUeXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
UEFUSFNFR19DVVJWRVRPX0NVQklDX1NNT09USF9BQlM7IH0KLSAgICBTdHJpbmcgcGF0aFNlZ1R5
cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJTIjsgfQorICAgIFN0cmluZyBwYXRo
U2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIlMiX3M7IH0KICAgICBSZWY8
U1ZHUGF0aFNlZz4gY2xvbmUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBTVkdQYXRoU2VnVmFsdWU6
OmNsb25lPFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhBYnM+KCk7IH0KIH07CiAKQEAgLTIx
NSw3ICsyMTUsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHVzaW5nIFNWR1BhdGhTZWdDdXJ2
ZXRvQ3ViaWNTbW9vdGg6OlNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGg7CiAgICAgdW5zaWdu
ZWQgc2hvcnQgcGF0aFNlZ1R5cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBQQVRIU0VHX0NVUlZF
VE9fQ1VCSUNfU01PT1RIX1JFTDsgfQotICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gInMiOyB9CisgICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0
ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAicyJfczsgfQogICAgIFJlZjxTVkdQYXRoU2VnPiBj
bG9uZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFNWR1BhdGhTZWdWYWx1ZTo6Y2xvbmU8U1ZHUGF0
aFNlZ0N1cnZldG9DdWJpY1Ntb290aFJlbD4oKTsgfQogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5oCmluZGV4IDg0ZjExNTg4ZjNlMjgxZTZmNmUw
N2E2MDlkMDg5YTk3ODcwOGEzOWUuLjI0MTk3Zjc0NTc3MTY1N2MxN2Q4ZDA3YjJjZDI0ZTU0ZTM0
YzgwOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVs
ZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50
LmgKQEAgLTYzLDEyICs2MywxMiBAQCBwcml2YXRlOgogICAgIGJvb2wgc2VsZkhhc1JlbGF0aXZl
TGVuZ3RocygpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgUHJvcGVydHlSZWdpc3RyeSBtX3Byb3Bl
cnR5UmVnaXN0cnkgeyAqdGhpcyB9OwotICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV9jeCB7
IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6V2lkdGgsICI1
MCUiKSB9OwotICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV9jeSB7IFNWR0FuaW1hdGVkTGVu
Z3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6SGVpZ2h0LCAiNTAlIikgfTsKLSAgICBS
ZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1fciB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhp
cywgU1ZHTGVuZ3RoTW9kZTo6T3RoZXIsICI1MCUiKSB9OworICAgIFJlZjxTVkdBbmltYXRlZExl
bmd0aD4gbV9jeCB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9k
ZTo6V2lkdGgsICI1MCUiX3MpIH07CisgICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX2N5IHsg
U1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpIZWlnaHQsICI1
MCUiX3MpIH07CisgICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX3IgeyBTVkdBbmltYXRlZExl
bmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6Ok90aGVyLCAiNTAlIl9zKSB9OwogICAg
IFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV9meCB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUo
dGhpcywgU1ZHTGVuZ3RoTW9kZTo6V2lkdGgpIH07CiAgICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3Ro
PiBtX2Z5IHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpI
ZWlnaHQpIH07Ci0gICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX2ZyIHsgU1ZHQW5pbWF0ZWRM
ZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpPdGhlciwgIjAlIikgfTsKKyAgICBS
ZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1fZnIgeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRo
aXMsIFNWR0xlbmd0aE1vZGU6Ok90aGVyLCAiMCUiX3MpIH07CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQ
cm9wZXJ0eVRyYWl0cy5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVy
dHlUcmFpdHMuaAppbmRleCA0Mzk5NzA0MzBmNjU2YTk4NjVlNmU5YzlkOWVmNWVhMjRiYmE1MzA0
Li44NDVhYjRhYmZmYjc4OTU4NDg2OWY5ZmYxYWE1ZTgzMjAxMjgwYTYzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRyYWl0cy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5VHJhaXRzLmgKQEAgLTM5LDcg
KzM5LDcgQEAgc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPGJvb2w+IHsKICAgICBzdGF0aWMgYm9v
bCBpbml0aWFsVmFsdWUoKSB7IHJldHVybiBmYWxzZTsgfQogICAgIHN0YXRpYyBib29sIGZyb21T
dHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpIHsgcmV0dXJuIHN0cmluZyA9PSAidHJ1ZSI7IH0K
ICAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxib29sPiBwYXJzZShjb25zdCBRdWFsaWZpZWROYW1l
JiwgY29uc3QgU3RyaW5nJikgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgcmV0dXJuIGluaXRpYWxW
YWx1ZSgpOyB9Ci0gICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhib29sIHR5cGUpIHsgcmV0dXJu
IHR5cGUgPyAidHJ1ZSIgOiAiZmFsc2UiOyB9CisgICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhi
b29sIHR5cGUpIHsgcmV0dXJuIHR5cGUgPyAidHJ1ZSJfcyA6ICJmYWxzZSJfczsgfQogfTsKIAog
dGVtcGxhdGU8PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrQ29udGVu
dEZpbHRlclNldHRpbmdzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDb250ZW50Rmls
dGVyU2V0dGluZ3MuaAppbmRleCAxODFlZmY1YjViOGVhMDAxOGU5ZjNiMGMyNDNhYzdkNGUzZTlk
Y2E3Li5mM2M5N2YzZjhlMTNhYTBmMTI3ZGVlODQzOWQ2YjVjMGQwZTNjMWUzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MuaApAQCAt
NDgsNyArNDgsNyBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX1RFU1RTVVBQT1JUX0VYUE9SVCBz
dGF0aWMgTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5ncyYgc2luZ2xldG9uKCk7CiAgICAgV0VCQ09S
RV9URVNUU1VQUE9SVF9FWFBPUlQgc3RhdGljIHZvaWQgcmVzZXQoKTsKLSAgICBzdGF0aWMgY29u
c3QgY2hhciogdW5ibG9ja1VSTEhvc3QoKSB7IHJldHVybiAibW9jay11bmJsb2NrIjsgfQorICAg
IHN0YXRpYyBBU0NJSUxpdGVyYWwgdW5ibG9ja1VSTEhvc3QoKSB7IHJldHVybiAibW9jay11bmJs
b2NrIl9zOyB9CiAKICAgICAvLyBUcmljayB0aGUgZ2VuZXJhdGVkIGJpbmRpbmdzIGludG8gdGhp
bmtpbmcgd2UncmUgUmVmQ291bnRlZC4KICAgICB2b2lkIHJlZigpIHsgfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUveG1sL1hQYXRoVmFsdWUuaCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0
aFZhbHVlLmgKaW5kZXggZDkxYzc3ZDEwMmQyNGFkMjNlNTkzOTg2ZTA0MGJhMjVjMDlkYjM2Yi4u
ZWE4M2Y3ZDBiYjFhYWYxNGE3YmE3MjEwOTRmM2IyMTlhMjJiMjNiMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUveG1sL1hQYXRoVmFsdWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFBh
dGhWYWx1ZS5oCkBAIC00MCw3ICs0MCw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAg
ICAgIFZhbHVlKGRvdWJsZSB2YWx1ZSkgOiBtX3R5cGUoTnVtYmVyVmFsdWUpLCBtX251bWJlcih2
YWx1ZSkgeyB9CiAKICAgICAgICAgICAgIFZhbHVlKGNvbnN0IFN0cmluZyYgdmFsdWUpIDogbV90
eXBlKFN0cmluZ1ZhbHVlKSwgbV9kYXRhKERhdGE6OmNyZWF0ZSh2YWx1ZSkpIHsgfQotICAgICAg
ICAgICAgVmFsdWUoY29uc3QgY2hhciogdmFsdWUpIDogbV90eXBlKFN0cmluZ1ZhbHVlKSwgbV9k
YXRhKERhdGE6OmNyZWF0ZSh2YWx1ZSkpIHsgfQorICAgICAgICAgICAgVmFsdWUoY29uc3QgY2hh
ciogdmFsdWUpIDogbV90eXBlKFN0cmluZ1ZhbHVlKSwgbV9kYXRhKERhdGE6OmNyZWF0ZShTdHJp
bmcgeyB2YWx1ZSB9KSkgeyB9CiAKICAgICAgICAgICAgIGV4cGxpY2l0IFZhbHVlKE5vZGVTZXQm
JiB2YWx1ZSkKICAgICAgICAgICAgICAgICA6IG1fdHlwZShOb2RlU2V0VmFsdWUpLCBtX2RhdGEo
RGF0YTo6Y3JlYXRlKFdURk1vdmUodmFsdWUpKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3htbC9YU0xTdHlsZVNoZWV0LmggYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMU3R5bGVTaGVldC5o
CmluZGV4IGEyYmY4ZTMzNDlhYjU2MzZmNTI3NGU0NTI0YzMwYmIxODZjNmZkZWQuLjVmYmQ2ZWJh
NDc5ZDg3ZTliN2U4MjFhZjllYTMyZjAzMGY0Njg1MDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3htbC9YU0xTdHlsZVNoZWV0LmgKKysrIGIvU291cmNlL1dlYkNvcmUveG1sL1hTTFN0eWxl
U2hlZXQuaApAQCAtODQsNyArODQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBtYXJrQXNQcm9jZXNz
ZWQoKTsKICAgICBib29sIHByb2Nlc3NlZCgpIGNvbnN0IHsgcmV0dXJuIG1fcHJvY2Vzc2VkOyB9
CiAgICAgCi0gICAgU3RyaW5nIHR5cGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAidGV4dC94
bWwiOyB9CisgICAgU3RyaW5nIHR5cGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAidGV4dC94
bWwiX3M7IH0KICAgICBib29sIGRpc2FibGVkKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9p
c0Rpc2FibGVkOyB9CiAgICAgdm9pZCBzZXREaXNhYmxlZChib29sIGIpIG92ZXJyaWRlIHsgbV9p
c0Rpc2FibGVkID0gYjsgfQogICAgIE5vZGUqIG93bmVyTm9kZSgpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuIG1fb3duZXJOb2RlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViR1BVL1dHU0wvUGFy
c2VyLmNwcCBiL1NvdXJjZS9XZWJHUFUvV0dTTC9QYXJzZXIuY3BwCmluZGV4IDYyNTQ4N2RlMTg1
ZmVlY2Y5NGExZDFiM2YwYmM5ODQ2ZTNkYjhhMGEuLmU2MmYzZTBjMDg3ZWZhMWMxYmMyZDA4YjFm
MmQ3ODFhYTljNWNjNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJHUFUvV0dTTC9QYXJzZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJHUFUvV0dTTC9QYXJzZXIuY3BwCkBAIC0yMzQsNyArMjM0LDcgQEAg
RXhwZWN0ZWQ8VW5pcXVlUmVmPEFTVDo6R2xvYmFsRGVjbD4sIEVycm9yPiBQYXJzZXI8TGV4ZXI+
OjpwYXJzZUdsb2JhbERlY2woKQogICAgICAgICByZXR1cm4geyBtYWtlVW5pcXVlUmVmPEFTVDo6
RnVuY3Rpb25EZWNsPihXVEZNb3ZlKGZuKSkgfTsKICAgICB9CiAgICAgZGVmYXVsdDoKLSAgICAg
ICAgRkFJTCgiVHJ5aW5nIHRvIHBhcnNlIGEgR2xvYmFsRGVjbCwgZXhwZWN0ZWQgJ3ZhcicsICdm
bicsIG9yICdzdHJ1Y3QnLiIpOworICAgICAgICBGQUlMKCJUcnlpbmcgdG8gcGFyc2UgYSBHbG9i
YWxEZWNsLCBleHBlY3RlZCAndmFyJywgJ2ZuJywgb3IgJ3N0cnVjdCcuIl9zKTsKICAgICB9CiB9
CiAKQEAgLTI4Miw3ICsyODIsNyBAQCBFeHBlY3RlZDxVbmlxdWVSZWY8QVNUOjpBdHRyaWJ1dGU+
LCBFcnJvcj4gUGFyc2VyPExleGVyPjo6cGFyc2VBdHRyaWJ1dGUoKQogICAgICAgICAgICAgUkVU
VVJOX05PREVfUkVGKFN0YWdlQXR0cmlidXRlLCBBU1Q6OlN0YWdlQXR0cmlidXRlOjpTdGFnZTo6
VmVydGV4KTsKICAgICAgICAgaWYgKHN0YWdlLm1faWRlbnQgPT0gImZyYWdtZW50IikKICAgICAg
ICAgICAgIFJFVFVSTl9OT0RFX1JFRihTdGFnZUF0dHJpYnV0ZSwgQVNUOjpTdGFnZUF0dHJpYnV0
ZTo6U3RhZ2U6OkZyYWdtZW50KTsKLSAgICAgICAgRkFJTCgiSW52YWxpZCBzdGFnZSBhdHRyaWJ1
dGUsIHRoZSBvbmx5IG9wdGlvbnMgYXJlICdjb21wdXRlJywgJ3ZlcnRleCcsICdmcmFnbWVudCcu
Iik7CisgICAgICAgIEZBSUwoIkludmFsaWQgc3RhZ2UgYXR0cmlidXRlLCB0aGUgb25seSBvcHRp
b25zIGFyZSAnY29tcHV0ZScsICd2ZXJ0ZXgnLCAnZnJhZ21lbnQnLiJfcyk7CiAgICAgfQogICAg
IGlmIChpZGVudC5tX2lkZW50ID09ICJsb2NhdGlvbiIpIHsKICAgICAgICAgQ09OU1VNRV9UWVBF
KFBhcmVuTGVmdCk7CkBAIC0yOTcsNyArMjk3LDcgQEAgRXhwZWN0ZWQ8VW5pcXVlUmVmPEFTVDo6
QXR0cmlidXRlPiwgRXJyb3I+IFBhcnNlcjxMZXhlcj46OnBhcnNlQXR0cmlidXRlKCkKICAgICAg
ICAgQ09OU1VNRV9UWVBFKFBhcmVuUmlnaHQpOwogICAgICAgICBSRVRVUk5fTk9ERV9SRUYoQnVp
bHRpbkF0dHJpYnV0ZSwgbmFtZS5tX2lkZW50KTsKICAgICB9Ci0gICAgRkFJTCgiVW5rbm93biBh
dHRyaWJ1dGUsIHRoZSBvbmx5IHN1cHBvcnRlZCBhdHRyaWJ1dGVzIGFyZSAnZ3JvdXAnLCAnYmlu
ZGluZycsICdzdGFnZScuIik7CisgICAgRkFJTCgiVW5rbm93biBhdHRyaWJ1dGUsIHRoZSBvbmx5
IHN1cHBvcnRlZCBhdHRyaWJ1dGVzIGFyZSAnZ3JvdXAnLCAnYmluZGluZycsICdzdGFnZScuIl9z
KTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgTGV4ZXI+CkBAIC0zNjAsNyArMzYwLDcgQEAgRXhw
ZWN0ZWQ8VW5pcXVlUmVmPEFTVDo6VHlwZURlY2w+LCBFcnJvcj4gUGFyc2VyPExleGVyPjo6cGFy
c2VUeXBlRGVjbCgpCiAgICAgICAgIHJldHVybiBwYXJzZVR5cGVEZWNsQWZ0ZXJJZGVudGlmaWVy
KFdURk1vdmUobmFtZS5tX2lkZW50KSwgX3N0YXJ0T2ZFbGVtZW50UG9zaXRpb24pOwogICAgIH0K
IAotICAgIEZBSUwoIlRyaWVkIHBhcnNpbmcgYSB0eXBlIGFuZCBpdCBkaWQgbm90IHN0YXJ0IHdp
dGggYW4gaWRlbnRpZmllciIpOworICAgIEZBSUwoIlRyaWVkIHBhcnNpbmcgYSB0eXBlIGFuZCBp
dCBkaWQgbm90IHN0YXJ0IHdpdGggYW4gaWRlbnRpZmllciJfcyk7CiB9CiAKIHRlbXBsYXRlPHR5
cGVuYW1lIExleGVyPgpAQCAtNDUwLDcgKzQ1MCw3IEBAIEV4cGVjdGVkPEFTVDo6U3RvcmFnZUNs
YXNzLCBFcnJvcj4gUGFyc2VyPExleGVyPjo6cGFyc2VTdG9yYWdlQ2xhc3MoKQogICAgICAgICBy
ZXR1cm4geyBBU1Q6OlN0b3JhZ2VDbGFzczo6U3RvcmFnZSB9OwogICAgIH0KIAotICAgIEZBSUwo
IkV4cGVjdGVkIG9uZSBvZiAnZnVuY3Rpb24nLydwcml2YXRlJy8nc3RvcmFnZScvJ3VuaWZvcm0n
Lyd3b3JrZ3JvdXAnIik7CisgICAgRkFJTCgiRXhwZWN0ZWQgb25lIG9mICdmdW5jdGlvbicvJ3By
aXZhdGUnLydzdG9yYWdlJy8ndW5pZm9ybScvJ3dvcmtncm91cCciX3MpOwogfQogCiB0ZW1wbGF0
ZTx0eXBlbmFtZSBMZXhlcj4KQEAgLTQ3MSw3ICs0NzEsNyBAQCBFeHBlY3RlZDxBU1Q6OkFjY2Vz
c01vZGUsIEVycm9yPiBQYXJzZXI8TGV4ZXI+OjpwYXJzZUFjY2Vzc01vZGUoKQogICAgICAgICBy
ZXR1cm4geyBBU1Q6OkFjY2Vzc01vZGU6OlJlYWRXcml0ZSB9OwogICAgIH0KIAotICAgIEZBSUwo
IkV4cGVjdGVkIG9uZSBvZiAncmVhZCcvJ3dyaXRlJy8ncmVhZF93cml0ZSciKTsKKyAgICBGQUlM
KCJFeHBlY3RlZCBvbmUgb2YgJ3JlYWQnLyd3cml0ZScvJ3JlYWRfd3JpdGUnIl9zKTsKIH0KIAog
dGVtcGxhdGU8dHlwZW5hbWUgTGV4ZXI+CkBAIC01NDcsNyArNTQ3LDcgQEAgRXhwZWN0ZWQ8VW5p
cXVlUmVmPEFTVDo6U3RhdGVtZW50PiwgRXJyb3I+IFBhcnNlcjxMZXhlcj46OnBhcnNlU3RhdGVt
ZW50KCkKICAgICAgICAgUkVUVVJOX05PREVfUkVGKEFzc2lnbm1lbnRTdGF0ZW1lbnQsIGxocy5t
b3ZlVG9VbmlxdWVQdHIoKSwgV1RGTW92ZShyaHMpKTsKICAgICB9CiAgICAgZGVmYXVsdDoKLSAg
ICAgICAgRkFJTCgiTm90IGEgdmFsaWQgc3RhdGVtZW50Iik7CisgICAgICAgIEZBSUwoIk5vdCBh
IHZhbGlkIHN0YXRlbWVudCJfcyk7CiAgICAgfQogfQogCkBAIC02OTQsNyArNjk0LDcgQEAgRXhw
ZWN0ZWQ8VW5pcXVlUmVmPEFTVDo6RXhwcmVzc2lvbj4sIEVycm9yPiBQYXJzZXI8TGV4ZXI+Ojpw
YXJzZVByaW1hcnlFeHByZXNzaW8KICAgICBkZWZhdWx0OgogICAgICAgICBicmVhazsKICAgICB9
Ci0gICAgRkFJTCgiRXhwZWN0ZWQgb25lIG9mICcoJywgYSBsaXRlcmFsLCBvciBhbiBpZGVudGlm
aWVyIik7CisgICAgRkFJTCgiRXhwZWN0ZWQgb25lIG9mICcoJywgYSBsaXRlcmFsLCBvciBhbiBp
ZGVudGlmaWVyIl9zKTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgTGV4ZXI+CkBAIC03MzQsNyAr
NzM0LDcgQEAgRXhwZWN0ZWQ8VW5pcXVlUmVmPEFTVDo6RXhwcmVzc2lvbj4sIEVycm9yPiBQYXJz
ZXI8TGV4ZXI+OjpwYXJzZUNvcmVMSFNFeHByZXNzaW8KICAgICAgICAgYnJlYWs7CiAgICAgfQog
Ci0gICAgRkFJTCgiVHJpZWQgdG8gcGFyc2UgdGhlIGxlZnQtaGFuZCBzaWRlIG9mIGFuIGFzc2ln
bm1lbnQgYW5kIGZhaWxlZCIpOworICAgIEZBSUwoIlRyaWVkIHRvIHBhcnNlIHRoZSBsZWZ0LWhh
bmQgc2lkZSBvZiBhbiBhc3NpZ25tZW50IGFuZCBmYWlsZWQiX3MpOwogfQogCiB0ZW1wbGF0ZTx0
eXBlbmFtZSBMZXhlcj4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJHUFUvV0dTTC9Ub2tlbi5jcHAg
Yi9Tb3VyY2UvV2ViR1BVL1dHU0wvVG9rZW4uY3BwCmluZGV4IGRiM2MwYTQzZTEwMzcyZWI5OTQx
ZmNmMTZkOGIyMGVkZTdmMDg5MTIuLjY3MzFhYTIyYzEyYTMzMDM2OGNmYjFiNzYwYzk2NmVlMTBm
MWFjMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJHUFUvV0dTTC9Ub2tlbi5jcHAKKysrIGIvU291
cmNlL1dlYkdQVS9XR1NML1Rva2VuLmNwcApAQCAtMzIsODkgKzMyLDg5IEBAIFN0cmluZyB0b1N0
cmluZyhUb2tlblR5cGUgdHlwZSkKIHsKICAgICBzd2l0Y2ggKHR5cGUpIHsKICAgICBjYXNlIFRv
a2VuVHlwZTo6SW52YWxpZDoKLSAgICAgICAgcmV0dXJuICJJbnZhbGlkIjsKKyAgICAgICAgcmV0
dXJuICJJbnZhbGlkIl9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpFbmRPZkZpbGU6Ci0gICAgICAg
IHJldHVybiAiRU9GIjsKKyAgICAgICAgcmV0dXJuICJFT0YiX3M7CiAgICAgY2FzZSBUb2tlblR5
cGU6OkludGVnZXJMaXRlcmFsOgotICAgICAgICByZXR1cm4gIkludGVnZXJMaXRlcmFsIjsKKyAg
ICAgICAgcmV0dXJuICJJbnRlZ2VyTGl0ZXJhbCJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6SW50
ZWdlckxpdGVyYWxTaWduZWQ6Ci0gICAgICAgIHJldHVybiAiSW50ZWdlckxpdGVyYWxTaWduZWQi
OworICAgICAgICByZXR1cm4gIkludGVnZXJMaXRlcmFsU2lnbmVkIl9zOwogICAgIGNhc2UgVG9r
ZW5UeXBlOjpJbnRlZ2VyTGl0ZXJhbFVuc2lnbmVkOgotICAgICAgICByZXR1cm4gIkludGVnZXJM
aXRlcmFsVW5zaWduZWQiOworICAgICAgICByZXR1cm4gIkludGVnZXJMaXRlcmFsVW5zaWduZWQi
X3M7CiAgICAgY2FzZSBUb2tlblR5cGU6OkRlY2ltYWxGbG9hdExpdGVyYWw6Ci0gICAgICAgIHJl
dHVybiAiRGVjaW1hbEZsb2F0TGl0ZXJhbCI7CisgICAgICAgIHJldHVybiAiRGVjaW1hbEZsb2F0
TGl0ZXJhbCJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6SGV4RmxvYXRMaXRlcmFsOgotICAgICAg
ICByZXR1cm4gIkhleEZsb2F0TGl0ZXJhbCI7CisgICAgICAgIHJldHVybiAiSGV4RmxvYXRMaXRl
cmFsIl9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpJZGVudGlmaWVyOgotICAgICAgICByZXR1cm4g
IklkZW50aWZpZXIiOworICAgICAgICByZXR1cm4gIklkZW50aWZpZXIiX3M7CiAgICAgY2FzZSBU
b2tlblR5cGU6OlJlc2VydmVkV29yZDoKLSAgICAgICAgcmV0dXJuICJSZXNlcnZlZFdvcmQiOwor
ICAgICAgICByZXR1cm4gIlJlc2VydmVkV29yZCJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6S2V5
d29yZFN0cnVjdDoKLSAgICAgICAgcmV0dXJuICJzdHJ1Y3QiOworICAgICAgICByZXR1cm4gInN0
cnVjdCJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6S2V5d29yZEZuOgotICAgICAgICByZXR1cm4g
ImZuIjsKKyAgICAgICAgcmV0dXJuICJmbiJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6S2V5d29y
ZEZ1bmN0aW9uOgotICAgICAgICByZXR1cm4gImZ1bmN0aW9uIjsKKyAgICAgICAgcmV0dXJuICJm
dW5jdGlvbiJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6S2V5d29yZFByaXZhdGU6Ci0gICAgICAg
IHJldHVybiAicHJpdmF0ZSI7CisgICAgICAgIHJldHVybiAicHJpdmF0ZSJfczsKICAgICBjYXNl
IFRva2VuVHlwZTo6S2V5d29yZFJlYWQ6Ci0gICAgICAgIHJldHVybiAicmVhZCI7CisgICAgICAg
IHJldHVybiAicmVhZCJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6S2V5d29yZFJlYWRXcml0ZToK
LSAgICAgICAgcmV0dXJuICJyZWFkX3dyaXRlIjsKKyAgICAgICAgcmV0dXJuICJyZWFkX3dyaXRl
Il9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpLZXl3b3JkUmV0dXJuOgotICAgICAgICByZXR1cm4g
InJldHVybiI7CisgICAgICAgIHJldHVybiAicmV0dXJuIl9zOwogICAgIGNhc2UgVG9rZW5UeXBl
OjpLZXl3b3JkU3RvcmFnZToKLSAgICAgICAgcmV0dXJuICJzdG9yYWdlIjsKKyAgICAgICAgcmV0
dXJuICJzdG9yYWdlIl9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpLZXl3b3JkVW5pZm9ybToKLSAg
ICAgICAgcmV0dXJuICJ1bmlmb3JtIjsKKyAgICAgICAgcmV0dXJuICJ1bmlmb3JtIl9zOwogICAg
IGNhc2UgVG9rZW5UeXBlOjpLZXl3b3JkVmFyOgotICAgICAgICByZXR1cm4gInZhciI7CisgICAg
ICAgIHJldHVybiAidmFyIl9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpLZXl3b3JkV29ya2dyb3Vw
OgotICAgICAgICByZXR1cm4gIndvcmtncm91cCI7CisgICAgICAgIHJldHVybiAid29ya2dyb3Vw
Il9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpLZXl3b3JkV3JpdGU6Ci0gICAgICAgIHJldHVybiAi
d3JpdGUiOworICAgICAgICByZXR1cm4gIndyaXRlIl9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpL
ZXl3b3JkSTMyOgotICAgICAgICByZXR1cm4gImkzMiI7CisgICAgICAgIHJldHVybiAiaTMyIl9z
OwogICAgIGNhc2UgVG9rZW5UeXBlOjpLZXl3b3JkVTMyOgotICAgICAgICByZXR1cm4gInUzMiI7
CisgICAgICAgIHJldHVybiAidTMyIl9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpLZXl3b3JkRjMy
OgotICAgICAgICByZXR1cm4gImYzMiI7CisgICAgICAgIHJldHVybiAiZjMyIl9zOwogICAgIGNh
c2UgVG9rZW5UeXBlOjpLZXl3b3JkQm9vbDoKLSAgICAgICAgcmV0dXJuICJib29sIjsKKyAgICAg
ICAgcmV0dXJuICJib29sIl9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpMaXRlcmFsVHJ1ZToKLSAg
ICAgICAgcmV0dXJuICJ0cnVlIjsKKyAgICAgICAgcmV0dXJuICJ0cnVlIl9zOwogICAgIGNhc2Ug
VG9rZW5UeXBlOjpMaXRlcmFsRmFsc2U6Ci0gICAgICAgIHJldHVybiAiZmFsc2UiOworICAgICAg
ICByZXR1cm4gImZhbHNlIl9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpBcnJvdzoKLSAgICAgICAg
cmV0dXJuICItPiI7CisgICAgICAgIHJldHVybiAiLT4iX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6
OkF0dHJpYnV0ZToKLSAgICAgICAgcmV0dXJuICJAIjsKKyAgICAgICAgcmV0dXJuICJAIl9zOwog
ICAgIGNhc2UgVG9rZW5UeXBlOjpCcmFja2V0TGVmdDoKLSAgICAgICAgcmV0dXJuICJbIjsKKyAg
ICAgICAgcmV0dXJuICJbIl9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpCcmFja2V0UmlnaHQ6Ci0g
ICAgICAgIHJldHVybiAiXSI7CisgICAgICAgIHJldHVybiAiXSJfczsKICAgICBjYXNlIFRva2Vu
VHlwZTo6QnJhY2VMZWZ0OgotICAgICAgICByZXR1cm4gInsiOworICAgICAgICByZXR1cm4gInsi
X3M7CiAgICAgY2FzZSBUb2tlblR5cGU6OkJyYWNlUmlnaHQ6Ci0gICAgICAgIHJldHVybiAifSI7
CisgICAgICAgIHJldHVybiAifSJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6Q29sb246Ci0gICAg
ICAgIHJldHVybiAiOiI7CisgICAgICAgIHJldHVybiAiOiJfczsKICAgICBjYXNlIFRva2VuVHlw
ZTo6Q29tbWE6Ci0gICAgICAgIHJldHVybiAiLCI7CisgICAgICAgIHJldHVybiAiLCJfczsKICAg
ICBjYXNlIFRva2VuVHlwZTo6RXF1YWw6Ci0gICAgICAgIHJldHVybiAiPSI7CisgICAgICAgIHJl
dHVybiAiPSJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6R1Q6Ci0gICAgICAgIHJldHVybiAiPiI7
CisgICAgICAgIHJldHVybiAiPiJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6TFQ6Ci0gICAgICAg
IHJldHVybiAiPCI7CisgICAgICAgIHJldHVybiAiPCJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6
UGVyaW9kOgotICAgICAgICByZXR1cm4gIi4iOworICAgICAgICByZXR1cm4gIi4iX3M7CiAgICAg
Y2FzZSBUb2tlblR5cGU6OlBhcmVuTGVmdDoKLSAgICAgICAgcmV0dXJuICIoIjsKKyAgICAgICAg
cmV0dXJuICIoIl9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpQYXJlblJpZ2h0OgotICAgICAgICBy
ZXR1cm4gIikiOworICAgICAgICByZXR1cm4gIikiX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6OlNl
bWljb2xvbjoKLSAgICAgICAgcmV0dXJuICI7IjsKKyAgICAgICAgcmV0dXJuICI7Il9zOwogICAg
IH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkdQVS9XZWJHUFUvQWRhcHRlci5tbSBiL1Nv
dXJjZS9XZWJHUFUvV2ViR1BVL0FkYXB0ZXIubW0KaW5kZXggMWJiYWQ2MWE2Y2U3ZTI5NzU2ZGUx
NTYxYWE0NjJkZTVkMWE2ODI2OC4uNjAwZDFkNmU3YmYwZjc3YmRkMmY1MThmZjk0MzUwNzgxMjUy
ZmEzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkdQVS9XZWJHUFUvQWRhcHRlci5tbQorKysgYi9T
b3VyY2UvV2ViR1BVL1dlYkdQVS9BZGFwdGVyLm1tCkBAIC0xMjMsNyArMTIzLDcgQEAgdm9pZCBB
ZGFwdGVyOjpyZXF1ZXN0RGV2aWNlKGNvbnN0IFdHUFVEZXZpY2VEZXNjcmlwdG9yJiBkZXNjcmlw
dG9yLCBDb21wbGV0aW9uSGEKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGNhbGxiYWNr
KFdHUFVSZXF1ZXN0RGV2aWNlU3RhdHVzX1N1Y2Nlc3MsIERldmljZTo6Y3JlYXRlKG1fZGV2aWNl
LCBkZXNjcmlwdG9yLmxhYmVsLCBtX2luc3RhbmNlKSwgeyB9KTsKKyAgICBjYWxsYmFjayhXR1BV
UmVxdWVzdERldmljZVN0YXR1c19TdWNjZXNzLCBEZXZpY2U6OmNyZWF0ZShtX2RldmljZSwgU3Ry
aW5nIHsgZGVzY3JpcHRvci5sYWJlbCB9LCBtX2luc3RhbmNlKSwgeyB9KTsKIH0KIAogfSAvLyBu
YW1lc3BhY2UgV2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9CdWZmZXIu
bW0gYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9CdWZmZXIubW0KaW5kZXggZmJiMmY0NGRmOWU1MzZj
ZTVjZmVkZTExZjc4NWRjOGNkYTFmYmRjNS4uM2I5MjIwMDMxOGRjNTE3ZDJhMGViNmVjMzk5ZWE1
NTQxYzZhNTE2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkdQVS9XZWJHUFUvQnVmZmVyLm1tCisr
KyBiL1NvdXJjZS9XZWJHUFUvV2ViR1BVL0J1ZmZlci5tbQpAQCAtMjkxLDcgKzI5MSw3IEBAIHZv
aWQgQnVmZmVyOjptYXBBc3luYyhXR1BVTWFwTW9kZUZsYWdzIG1vZGUsIHNpemVfdCBvZmZzZXQs
IHNpemVfdCBzaXplLCBDb21wbGV0CiAgICAgLy8gIklmIGFueSBvZiB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlIHVuc2F0aXNmaWVkOiIKICAgICBpZiAoIXZhbGlkYXRlTWFwQXN5bmMobW9k
ZSwgb2Zmc2V0LCByYW5nZVNpemUpKSB7CiAgICAgICAgIC8vICJSZWNvcmQgYSB2YWxpZGF0aW9u
IGVycm9yIG9uIHRoZSBjdXJyZW50IHNjb3BlLiIKLSAgICAgICAgbV9kZXZpY2UtPmdlbmVyYXRl
QVZhbGlkYXRpb25FcnJvcigiVmFsaWRhdGlvbiBmYWlsdXJlLiIpOworICAgICAgICBtX2Rldmlj
ZS0+Z2VuZXJhdGVBVmFsaWRhdGlvbkVycm9yKCJWYWxpZGF0aW9uIGZhaWx1cmUuIl9zKTsKIAog
ICAgICAgICAvLyAiUmV0dXJuIGEgcHJvbWlzZSByZWplY3RlZCB3aXRoIGFuIE9wZXJhdGlvbkVy
cm9yIG9uIHRoZSBEZXZpY2UgdGltZWxpbmUuIgogICAgICAgICBjYWxsYmFjayhXR1BVQnVmZmVy
TWFwQXN5bmNTdGF0dXNfRXJyb3IpOwpAQCAtMzY1LDcgKzM2NSw3IEBAIHZvaWQgQnVmZmVyOjp1
bm1hcCgpCiAgICAgLy8gIklmIGFueSBvZiB0aGUgZm9sbG93aW5nIHJlcXVpcmVtZW50cyBhcmUg
dW5tZXQiCiAgICAgaWYgKCF2YWxpZGF0ZVVubWFwKCkpIHsKICAgICAgICAgLy8gImdlbmVyYXRl
IGEgdmFsaWRhdGlvbiBlcnJvciBhbmQgc3RvcC4iCi0gICAgICAgIG1fZGV2aWNlLT5nZW5lcmF0
ZUFWYWxpZGF0aW9uRXJyb3IoIlZhbGlkYXRpb24gZmFpbHVyZS4iKTsKKyAgICAgICAgbV9kZXZp
Y2UtPmdlbmVyYXRlQVZhbGlkYXRpb25FcnJvcigiVmFsaWRhdGlvbiBmYWlsdXJlLiJfcyk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJHUFUvV2ViR1BV
L0NvbW1hbmRFbmNvZGVyLm1tIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvQ29tbWFuZEVuY29kZXIu
bW0KaW5kZXggYWU0YmFjNjA4NWI0YzVmMmVlNGNkOWM3YzNhM2UwYjAzZDc2ZDc5Mi4uOTY5OGM4
YTA5OWZmZDZjMDkzNzg0Mzk0YTgxMmMxODJmMGViN2Q1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkdQVS9XZWJHUFUvQ29tbWFuZEVuY29kZXIubW0KKysrIGIvU291cmNlL1dlYkdQVS9XZWJHUFUv
Q29tbWFuZEVuY29kZXIubW0KQEAgLTE0OSw3ICsxNDksNyBAQCB2b2lkIENvbW1hbmRFbmNvZGVy
Ojpjb3B5QnVmZmVyVG9CdWZmZXIoY29uc3QgQnVmZmVyJiBzb3VyY2UsIHVpbnQ2NF90IHNvdXJj
ZU9mZgogICAgIC8vICJJZiBhbnkgb2YgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSB1bnNh
dGlzZmllZAogICAgIGlmICghdmFsaWRhdGVDb3B5QnVmZmVyVG9CdWZmZXIoc291cmNlLCBzb3Vy
Y2VPZmZzZXQsIGRlc3RpbmF0aW9uLCBkZXN0aW5hdGlvbk9mZnNldCwgc2l6ZSkpIHsKICAgICAg
ICAgLy8gImdlbmVyYXRlIGEgdmFsaWRhdGlvbiBlcnJvciBhbmQgc3RvcC4iCi0gICAgICAgIG1f
ZGV2aWNlLT5nZW5lcmF0ZUFWYWxpZGF0aW9uRXJyb3IoIlZhbGlkYXRpb24gZmFpbHVyZS4iKTsK
KyAgICAgICAgbV9kZXZpY2UtPmdlbmVyYXRlQVZhbGlkYXRpb25FcnJvcigiVmFsaWRhdGlvbiBm
YWlsdXJlLiJfcyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTIyMCw3ICsyMjAsNyBA
QCB2b2lkIENvbW1hbmRFbmNvZGVyOjpjbGVhckJ1ZmZlcihjb25zdCBCdWZmZXImIGJ1ZmZlciwg
dWludDY0X3Qgb2Zmc2V0LCB1aW50NjRfdAogICAgIC8vICJJZiBhbnkgb2YgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zIGFyZSB1bnNhdGlzZmllZCIKICAgICBpZiAoIXZhbGlkYXRlQ2xlYXJCdWZm
ZXIoYnVmZmVyLCBvZmZzZXQsIHNpemUpKSB7CiAgICAgICAgIC8vICJnZW5lcmF0ZSBhIHZhbGlk
YXRpb24gZXJyb3IgYW5kIHN0b3AuIgotICAgICAgICBtX2RldmljZS0+Z2VuZXJhdGVBVmFsaWRh
dGlvbkVycm9yKCJWYWxpZGF0aW9uIGZhaWx1cmUuIik7CisgICAgICAgIG1fZGV2aWNlLT5nZW5l
cmF0ZUFWYWxpZGF0aW9uRXJyb3IoIlZhbGlkYXRpb24gZmFpbHVyZS4iX3MpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCkBAIC0yNjIsNyArMjYyLDcgQEAgUmVmUHRyPENvbW1hbmRCdWZmZXI+
IENvbW1hbmRFbmNvZGVyOjpmaW5pc2goY29uc3QgV0dQVUNvbW1hbmRCdWZmZXJEZXNjcmlwdG9y
JgogICAgIC8vICJJZiB2YWxpZGF0aW9uU3VjY2VlZGVkIGlzIGZhbHNlLCB0aGVuOiIKICAgICBp
ZiAodmFsaWRhdGlvbkZhaWxlZCkgewogICAgICAgICAvLyAiR2VuZXJhdGUgYSB2YWxpZGF0aW9u
IGVycm9yLiIKLSAgICAgICAgbV9kZXZpY2UtPmdlbmVyYXRlQVZhbGlkYXRpb25FcnJvcigiVmFs
aWRhdGlvbiBmYWlsdXJlLiIpOworICAgICAgICBtX2RldmljZS0+Z2VuZXJhdGVBVmFsaWRhdGlv
bkVycm9yKCJWYWxpZGF0aW9uIGZhaWx1cmUuIl9zKTsKIAogICAgICAgICAvLyBGSVhNRTogIlJl
dHVybiBhIG5ldyBpbnZhbGlkIEdQVUNvbW1hbmRCdWZmZXIuIgogICAgICAgICByZXR1cm4gbnVs
bHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL0NvbXB1dGVQaXBlbGluZS5t
bSBiL1NvdXJjZS9XZWJHUFUvV2ViR1BVL0NvbXB1dGVQaXBlbGluZS5tbQppbmRleCBlZDliOGNm
ZjY0MTQzMDEyZTc3YjNlMjFmYzVlOWNhYjA3NTkzNjRjLi5lNGFkNzdhZjk3YTNjMTM4OTIxYjQ3
ZDAyNjU5OGI4YmM3NmRhNGEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9Db21w
dXRlUGlwZWxpbmUubW0KKysrIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvQ29tcHV0ZVBpcGVsaW5l
Lm1tCkBAIC03MSw3ICs3MSw3IEBAIHN0YXRpYyBNVExGdW5jdGlvbkNvbnN0YW50VmFsdWVzICpj
cmVhdGVDb25zdGFudFZhbHVlcyh1aW50MzJfdCBjb25zdGFudENvdW50LCBjCiAgICAgYXV0byBj
b25zdGFudFZhbHVlcyA9IFtNVExGdW5jdGlvbkNvbnN0YW50VmFsdWVzIG5ld107CiAgICAgZm9y
ICh1aW50MzJfdCBpID0gMDsgaSA8IGNvbnN0YW50Q291bnQ7ICsraSkgewogICAgICAgICBjb25z
dCBhdXRvJiBlbnRyeSA9IGNvbnN0YW50c1tpXTsKLSAgICAgICAgYXV0byBuYW1lSXRlcmF0b3Ig
PSBlbnRyeVBvaW50SW5mb3JtYXRpb24uc3BlY2lhbGl6YXRpb25Db25zdGFudEluZGljZXMuZmlu
ZChlbnRyeS5rZXkpOworICAgICAgICBhdXRvIG5hbWVJdGVyYXRvciA9IGVudHJ5UG9pbnRJbmZv
cm1hdGlvbi5zcGVjaWFsaXphdGlvbkNvbnN0YW50SW5kaWNlcy5maW5kKFN0cmluZyB7IGVudHJ5
LmtleSB9KTsKICAgICAgICAgaWYgKG5hbWVJdGVyYXRvciA9PSBlbnRyeVBvaW50SW5mb3JtYXRp
b24uc3BlY2lhbGl6YXRpb25Db25zdGFudEluZGljZXMuZW5kKCkpCiAgICAgICAgICAgICByZXR1
cm4gbnVsbHB0cjsKICAgICAgICAgYXV0byBzcGVjaWFsaXphdGlvbkNvbnN0YW50SW5kZXggPSBu
YW1lSXRlcmF0b3ItPnZhbHVlOwpAQCAtMTUwLDcgKzE1MCw3IEBAIFJlZlB0cjxDb21wdXRlUGlw
ZWxpbmU+IERldmljZTo6Y3JlYXRlQ29tcHV0ZVBpcGVsaW5lKGNvbnN0IFdHUFVDb21wdXRlUGlw
ZWxpbmVECiAgICAgY29uc3QgUGlwZWxpbmVMYXlvdXQmIHBpcGVsaW5lTGF5b3V0ID0gV2ViR1BV
Ojpmcm9tQVBJKGRlc2NyaXB0b3IubGF5b3V0KTsKICAgICBhdXRvIGxhYmVsID0gZnJvbUFQSShk
ZXNjcmlwdG9yLmxhYmVsKTsKIAotICAgIGF1dG8gbGlicmFyeUNyZWF0aW9uUmVzdWx0ID0gY3Jl
YXRlTGlicmFyeShtX2RldmljZSwgc2hhZGVyTW9kdWxlLCBwaXBlbGluZUxheW91dCwgZGVzY3Jp
cHRvci5jb21wdXRlLmVudHJ5UG9pbnQsIGxhYmVsKTsKKyAgICBhdXRvIGxpYnJhcnlDcmVhdGlv
blJlc3VsdCA9IGNyZWF0ZUxpYnJhcnkobV9kZXZpY2UsIHNoYWRlck1vZHVsZSwgcGlwZWxpbmVM
YXlvdXQsIFN0cmluZyB7IGRlc2NyaXB0b3IuY29tcHV0ZS5lbnRyeVBvaW50IH0sIGxhYmVsKTsK
ICAgICBpZiAoIWxpYnJhcnlDcmVhdGlvblJlc3VsdCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1F1ZXVlLm1tIGIvU291cmNlL1dl
YkdQVS9XZWJHUFUvUXVldWUubW0KaW5kZXggYjdiZDU3Y2Y1YTQyNmVjMjZlNmY5YjFlMjlkOTlm
ZGVhZGY3MDVjNC4uMGQxYjM5YTg0ZjY0MjM1NzlhOWVjMDNiNWFhMjQxYmRlNjMxZDY2MCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkdQVS9XZWJHUFUvUXVldWUubW0KKysrIGIvU291cmNlL1dlYkdQ
VS9XZWJHUFUvUXVldWUubW0KQEAgLTEzMSw3ICsxMzEsNyBAQCB2b2lkIFF1ZXVlOjpzdWJtaXQo
VmVjdG9yPHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8Y29uc3QgQ29tbWFuZEJ1ZmZlcj4+JiYgY29t
bWFuZAogICAgIC8vICJJZiBhbnkgb2YgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSB1bnNh
dGlzZmllZCIKICAgICBpZiAoIXZhbGlkYXRlU3VibWl0KCkpIHsKICAgICAgICAgLy8gImdlbmVy
YXRlIGEgdmFsaWRhdGlvbiBlcnJvciBhbmQgc3RvcC4iCi0gICAgICAgIG1fZGV2aWNlLmdlbmVy
YXRlQVZhbGlkYXRpb25FcnJvcigiVmFsaWRhdGlvbiBmYWlsdXJlLiIpOworICAgICAgICBtX2Rl
dmljZS5nZW5lcmF0ZUFWYWxpZGF0aW9uRXJyb3IoIlZhbGlkYXRpb24gZmFpbHVyZS4iX3MpOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViR1BVL1dlYkdQ
VS9TYW1wbGVyLm1tIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvU2FtcGxlci5tbQppbmRleCAyZjdm
NzI3ZjE3ZDk3M2QwYTQ5Y2UzNGVlZmFjNzEzODU3MzM3NmI2Li44MjczOTA0OTk0Y2I3MDlmMDk0
ZTI0NTg3OTlhY2VjNjc3NTg5YjcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9T
YW1wbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1NhbXBsZXIubW0KQEAgLTEzNiw3
ICsxMzYsNyBAQCBSZWZQdHI8U2FtcGxlcj4gRGV2aWNlOjpjcmVhdGVTYW1wbGVyKGNvbnN0IFdH
UFVTYW1wbGVyRGVzY3JpcHRvciYgZGVzY3JpcHRvcikKICAgICAvLyAiSWYgdmFsaWRhdGluZyBH
UFVTYW1wbGVyRGVzY3JpcHRvcih0aGlzLCBkZXNjcmlwdG9yKSByZXR1cm5zIGZhbHNlOiIKICAg
ICBpZiAoIXZhbGlkYXRlQ3JlYXRlU2FtcGxlcigqdGhpcywgZGVzY3JpcHRvcikpIHsKICAgICAg
ICAgLy8gIkdlbmVyYXRlIGEgdmFsaWRhdGlvbiBlcnJvci4iCi0gICAgICAgIGdlbmVyYXRlQVZh
bGlkYXRpb25FcnJvcigiVmFsaWRhdGlvbiBmYWlsdXJlLiIpOworICAgICAgICBnZW5lcmF0ZUFW
YWxpZGF0aW9uRXJyb3IoIlZhbGlkYXRpb24gZmFpbHVyZS4iX3MpOwogCiAgICAgICAgIC8vICJD
cmVhdGUgYSBuZXcgaW52YWxpZCBHUFVTYW1wbGVyIGFuZCByZXR1cm4gdGhlIHJlc3VsdC4iCiAg
ICAgICAgIHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkdQVS9XZWJHUFUv
U2hhZGVyTW9kdWxlLm1tIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvU2hhZGVyTW9kdWxlLm1tCmlu
ZGV4IGUwMDc1NWNmYjU1YjRjNjZhODkyN2RkM2U1ZTAyZWE5MTAxNzBjNDQuLjYwNWUzNzIzMzYx
MDVhZTA4NzEzN2RiNjE2NDY5ODExMmJjZmY4N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJHUFUv
V2ViR1BVL1NoYWRlck1vZHVsZS5tbQorKysgYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9TaGFkZXJN
b2R1bGUubW0KQEAgLTg4LDkgKzg4LDEwIEBAIHN0YXRpYyBSZWZQdHI8U2hhZGVyTW9kdWxlPiBl
YXJseUNvbXBpbGVTaGFkZXJNb2R1bGUoaWQ8TVRMRGV2aWNlPiBkZXZpY2UsIHN0ZDo6CiAgICAg
ICAgIGNvbnN0IGF1dG8mIGhpbnQgPSBzdXBwbGllZEhpbnRzLmhpbnRzW2ldOwogICAgICAgICBp
ZiAoaGludC5uZXh0SW5DaGFpbikKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwotICAgICAg
ICBoaW50cy5hZGQoaGludC5rZXksIFdlYkdQVTo6ZnJvbUFQSShoaW50LmhpbnQubGF5b3V0KSk7
CisgICAgICAgIFN0cmluZyBoaW50S2V5IHsgaGludC5rZXkgfTsKKyAgICAgICAgaGludHMuYWRk
KGhpbnRLZXksIFdlYkdQVTo6ZnJvbUFQSShoaW50LmhpbnQubGF5b3V0KSk7CiAgICAgICAgIGF1
dG8gY29udmVydGVkUGlwZWxpbmVMYXlvdXQgPSBTaGFkZXJNb2R1bGU6OmNvbnZlcnRQaXBlbGlu
ZUxheW91dChXZWJHUFU6OmZyb21BUEkoaGludC5oaW50LmxheW91dCkpOwotICAgICAgICB3Z3Ns
SGludHMuYWRkKGhpbnQua2V5LCBXVEZNb3ZlKGNvbnZlcnRlZFBpcGVsaW5lTGF5b3V0KSk7Cisg
ICAgICAgIHdnc2xIaW50cy5hZGQoaGludEtleSwgV1RGTW92ZShjb252ZXJ0ZWRQaXBlbGluZUxh
eW91dCkpOwogICAgIH0KICAgICBhdXRvIHByZXBhcmVSZXN1bHQgPSBXR1NMOjpwcmVwYXJlKHN0
ZDo6Z2V0PFdHU0w6OlN1Y2Nlc3NmdWxDaGVjaz4oY2hlY2tSZXN1bHQpLmFzdCwgd2dzbEhpbnRz
KTsKICAgICBhdXRvIGxpYnJhcnkgPSBTaGFkZXJNb2R1bGU6OmNyZWF0ZUxpYnJhcnkoZGV2aWNl
LCBwcmVwYXJlUmVzdWx0Lm1zbCwgV1RGTW92ZShsYWJlbCkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQppbmRleCBmZDc0ZmVhYjFkMWUxMmZiMDYxMmEw
ODU1ZGU2OGZjNzY0MWIxMTNkLi4wMDc0ZGNhNzcyN2E5Njg3NGZiMWVkMzg0N2Y1MTllMTYwNGE1
M2Y3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1w
bC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQpA
QCAtNDQ3OCw3ICs0NDc4LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6c2V0UHJvbWlzZWREYXRhRm9y
SW1hZ2UoV2ViQ29yZTo6SW1hZ2UqIGltYWdlLCBOU1N0cmluZyAqZmlsZW4KIAogICAgIFJldGFp
blB0cjxOU0RhdGE+IGN1c3RvbURhdGFCdWZmZXI7CiAgICAgaWYgKG9yaWdpbklkZW50aWZpZXIu
bGVuZ3RoKSB7Ci0gICAgICAgIFt0eXBlcyBhZGRPYmplY3Q6QChXZWJDb3JlOjpQYXN0ZWJvYXJk
Q3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkpXTsKKyAgICAgICAgW3R5cGVzIGFkZE9iamVjdDpAKFdl
YkNvcmU6OlBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKS5jaGFyYWN0ZXJzKCkpXTsK
ICAgICAgICAgV2ViQ29yZTo6UGFzdGVib2FyZEN1c3RvbURhdGEgY3VzdG9tRGF0YTsKICAgICAg
ICAgY3VzdG9tRGF0YS5zZXRPcmlnaW4ob3JpZ2luSWRlbnRpZmllcik7CiAgICAgICAgIGN1c3Rv
bURhdGFCdWZmZXIgPSBjdXN0b21EYXRhLmNyZWF0ZVNoYXJlZEJ1ZmZlcigpLT5jcmVhdGVOU0Rh
dGEoKTsKQEAgLTQ0OTcsNyArNDQ5Nyw3IEBAIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05T
X0VORAogICAgIH0KIAogICAgIGlmIChjdXN0b21EYXRhQnVmZmVyKQotICAgICAgICBbcGFzdGVi
b2FyZCBzZXREYXRhOmN1c3RvbURhdGFCdWZmZXIuZ2V0KCkgZm9yVHlwZTpAKFdlYkNvcmU6OlBh
c3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKSldOworICAgICAgICBbcGFzdGVib2FyZCBz
ZXREYXRhOmN1c3RvbURhdGFCdWZmZXIuZ2V0KCkgZm9yVHlwZTpAKFdlYkNvcmU6OlBhc3RlYm9h
cmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKS5jaGFyYWN0ZXJzKCkpXTsKIAogICAgIG1fcHJvbWlz
ZWRJbWFnZSA9IGltYWdlOwogfQpAQCAtNDYyNCw3ICs0NjI0LDcgQEAgdm9pZCBXZWJWaWV3SW1w
bDo6cmVxdWVzdERPTVBhc3RlQWNjZXNzKFdlYkNvcmU6OkRPTVBhc3RlQWNjZXNzQ2F0ZWdvcnkg
cGFzdGVBY2MKICAgICBBU1NFUlQoIW1fZG9tUGFzdGVSZXF1ZXN0SGFuZGxlcik7CiAgICAgaGlk
ZURPTVBhc3RlTWVudVdpdGhSZXN1bHQoV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NSZXNwb25zZTo6
RGVuaWVkRm9yR2VzdHVyZSk7CiAKLSAgICBOU0RhdGEgKmRhdGEgPSBbcGFzdGVib2FyZEZvckFj
Y2Vzc0NhdGVnb3J5KHBhc3RlQWNjZXNzQ2F0ZWdvcnkpIGRhdGFGb3JUeXBlOkAoV2ViQ29yZTo6
UGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpKV07CisgICAgTlNEYXRhICpkYXRhID0g
W3Bhc3RlYm9hcmRGb3JBY2Nlc3NDYXRlZ29yeShwYXN0ZUFjY2Vzc0NhdGVnb3J5KSBkYXRhRm9y
VHlwZTpAKFdlYkNvcmU6OlBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKS5jaGFyYWN0
ZXJzKCkpXTsKICAgICBhdXRvIGJ1ZmZlciA9IFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcjo6Y3JlYXRl
KGRhdGEpOwogICAgIGlmIChXZWJDb3JlOjpQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6ZnJvbVNoYXJl
ZEJ1ZmZlcihidWZmZXIuZ2V0KCkpLm9yaWdpbigpID09IG9yaWdpbklkZW50aWZpZXIpIHsKICAg
ICAgICAgbV9wYWdlLT5ncmFudEFjY2Vzc1RvQ3VycmVudFBhc3RlYm9hcmREYXRhKHBhc3RlYm9h
cmROYW1lRm9yQWNjZXNzQ2F0ZWdvcnkocGFzdGVBY2Nlc3NDYXRlZ29yeSkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvTG9jYWxB
dXRoZW50aWNhdG9yLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRp
b24vQ29jb2EvTG9jYWxBdXRoZW50aWNhdG9yLm1tCmluZGV4IGJlZTZiOTIzODJjYWFmM2I0Zjlm
MGU3Y2U4MmMwMWE3NjczMzI4MmMuLjJhMDVjZjQwM2RlZmMzYjQ1MDQ4OTE4YTdlNDRkMDkwMzli
ODRmMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0
aW9uL0NvY29hL0xvY2FsQXV0aGVudGljYXRvci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9Mb2NhbEF1dGhlbnRpY2F0b3IubW0KQEAgLTQ0
NCw3ICs0NDQsNyBAQCB2b2lkIExvY2FsQXV0aGVudGljYXRvcjo6Y29udGludWVNYWtlQ3JlZGVu
dGlhbEFmdGVyVXNlclZlcmlmaWNhdGlvbihTZWNBY2Nlc3NDbwogICAgICAgICBkZWxldGVEdXBs
aWNhdGVDcmVkZW50aWFsKCk7CiAKICAgICAgICAgYXV0byBhdXRoRGF0YSA9IGJ1aWxkQXV0aERh
dGEoY3JlYXRpb25PcHRpb25zLnJwLmlkLCBmbGFncywgY291bnRlciwgYnVpbGRBdHRlc3RlZENy
ZWRlbnRpYWxEYXRhKFZlY3Rvcjx1aW50OF90PihhYWd1aWRMZW5ndGgsIDApLCBjcmVkZW50aWFs
SWQsIGNvc2VQdWJsaWNLZXkpKTsKLSAgICAgICAgYXV0byBhdHRlc3RhdGlvbk9iamVjdCA9IGJ1
aWxkQXR0ZXN0YXRpb25PYmplY3QoV1RGTW92ZShhdXRoRGF0YSksICIiLCB7IH0sIEF0dGVzdGF0
aW9uQ29udmV5YW5jZVByZWZlcmVuY2U6Ok5vbmUpOworICAgICAgICBhdXRvIGF0dGVzdGF0aW9u
T2JqZWN0ID0gYnVpbGRBdHRlc3RhdGlvbk9iamVjdChXVEZNb3ZlKGF1dGhEYXRhKSwgU3RyaW5n
IHsgZW1wdHlTdHJpbmcoKSB9LCB7IH0sIEF0dGVzdGF0aW9uQ29udmV5YW5jZVByZWZlcmVuY2U6
Ok5vbmUpOwogICAgICAgICByZWNlaXZlUmVzcG9uZChBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25S
ZXNwb25zZTo6Y3JlYXRlKGNyZWRlbnRpYWxJZCwgYXR0ZXN0YXRpb25PYmplY3QsIEF1dGhlbnRp
Y2F0b3JBdHRhY2htZW50OjpQbGF0Zm9ybSkpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAt
NDcxLDcgKzQ3MSw3IEBAIHZvaWQgTG9jYWxBdXRoZW50aWNhdG9yOjpjb250aW51ZU1ha2VDcmVk
ZW50aWFsQWZ0ZXJBdHRlc3RlZChWZWN0b3I8dWludDhfdD4mJiBjCiAKICAgICBpZiAoZXJyb3Ip
IHsKICAgICAgICAgTE9HX0VSUk9SKCJDb3VsZG4ndCBhdHRlc3Q6ICVzIiwgU3RyaW5nKGVycm9y
LmxvY2FsaXplZERlc2NyaXB0aW9uKS51dGY4KCkuZGF0YSgpKTsKLSAgICAgICAgYXV0byBhdHRl
c3RhdGlvbk9iamVjdCA9IGJ1aWxkQXR0ZXN0YXRpb25PYmplY3QoV1RGTW92ZShhdXRoRGF0YSks
ICIiLCB7IH0sIEF0dGVzdGF0aW9uQ29udmV5YW5jZVByZWZlcmVuY2U6Ok5vbmUpOworICAgICAg
ICBhdXRvIGF0dGVzdGF0aW9uT2JqZWN0ID0gYnVpbGRBdHRlc3RhdGlvbk9iamVjdChXVEZNb3Zl
KGF1dGhEYXRhKSwgU3RyaW5nIHsgZW1wdHlTdHJpbmcoKSB9LCB7IH0sIEF0dGVzdGF0aW9uQ29u
dmV5YW5jZVByZWZlcmVuY2U6Ok5vbmUpOwogICAgICAgICByZWNlaXZlUmVzcG9uZChBdXRoZW50
aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZTo6Y3JlYXRlKGNyZWRlbnRpYWxJZCwgYXR0ZXN0YXRp
b25PYmplY3QsIEF1dGhlbnRpY2F0b3JBdHRhY2htZW50OjpQbGF0Zm9ybSkpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQpAQCAtNDg4LDcgKzQ4OCw3IEBAIHZvaWQgTG9jYWxBdXRoZW50aWNhdG9y
Ojpjb250aW51ZU1ha2VDcmVkZW50aWFsQWZ0ZXJBdHRlc3RlZChWZWN0b3I8dWludDhfdD4mJiBj
CiAgICAgICAgICAgICBjYm9yQXJyYXkuYXBwZW5kKGNib3I6OkNCT1JWYWx1ZSh2ZWN0b3JGcm9t
TlNEYXRhKChOU0RhdGEgKilhZG9wdENGKFNlY0NlcnRpZmljYXRlQ29weURhdGEoKF9fYnJpZGdl
IFNlY0NlcnRpZmljYXRlUmVmKWNlcnRpZmljYXRlc1tpXSkpLmdldCgpKSkpOwogICAgICAgICBh
dHRlc3RhdGlvblN0YXRlbWVudE1hcFtjYm9yOjpDQk9SVmFsdWUoIng1YyIpXSA9IGNib3I6OkNC
T1JWYWx1ZShXVEZNb3ZlKGNib3JBcnJheSkpOwogICAgIH0KLSAgICBhdXRvIGF0dGVzdGF0aW9u
T2JqZWN0ID0gYnVpbGRBdHRlc3RhdGlvbk9iamVjdChXVEZNb3ZlKGF1dGhEYXRhKSwgImFwcGxl
IiwgV1RGTW92ZShhdHRlc3RhdGlvblN0YXRlbWVudE1hcCksIGNyZWF0aW9uT3B0aW9ucy5hdHRl
c3RhdGlvbik7CisgICAgYXV0byBhdHRlc3RhdGlvbk9iamVjdCA9IGJ1aWxkQXR0ZXN0YXRpb25P
YmplY3QoV1RGTW92ZShhdXRoRGF0YSksICJhcHBsZSJfcywgV1RGTW92ZShhdHRlc3RhdGlvblN0
YXRlbWVudE1hcCksIGNyZWF0aW9uT3B0aW9ucy5hdHRlc3RhdGlvbik7CiAKICAgICBkZWxldGVE
dXBsaWNhdGVDcmVkZW50aWFsKCk7CiAgICAgcmVjZWl2ZVJlc3BvbmQoQXV0aGVudGljYXRvckF0
dGVzdGF0aW9uUmVzcG9uc2U6OmNyZWF0ZShjcmVkZW50aWFsSWQsIGF0dGVzdGF0aW9uT2JqZWN0
LCBBdXRoZW50aWNhdG9yQXR0YWNobWVudDo6UGxhdGZvcm0pKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4
IGViN2M2OTFmOWM5OTBmODQ3NWYwOTAyNzRkOWI2ZWUyMDFjMzkwYjAuLjllOGJmNDViYWI1MTNh
NTEyMTA0OWQwNTMxMTIyZTQ1NjNmMGE2ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtMzk4MCw3ICsz
OTgwLDcgQEAgLSAoQk9PTCljYW5QZXJmb3JtQWN0aW9uRm9yV2ViVmlldzooU0VMKWFjdGlvbiB3
aXRoU2VuZGVyOihpZClzZW5kZXIKICAgICAgICAgaWYgKGZvY3VzZWREb2N1bWVudE9yaWdpbi5p
c0VtcHR5KCkpCiAgICAgICAgICAgICByZXR1cm4gTk87CiAKLSAgICAgICAgTlNBcnJheSAqYWxs
Q3VzdG9tUGFzdGVib2FyZERhdGEgPSBbcGFzdGVib2FyZCBkYXRhRm9yUGFzdGVib2FyZFR5cGU6
QChXZWJDb3JlOjpQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkpIGluSXRlbVNldDpp
bmRpY2VzXTsKKyAgICAgICAgTlNBcnJheSAqYWxsQ3VzdG9tUGFzdGVib2FyZERhdGEgPSBbcGFz
dGVib2FyZCBkYXRhRm9yUGFzdGVib2FyZFR5cGU6QChXZWJDb3JlOjpQYXN0ZWJvYXJkQ3VzdG9t
RGF0YTo6Y29jb2FUeXBlKCkuY2hhcmFjdGVycygpKSBpbkl0ZW1TZXQ6aW5kaWNlc107CiAgICAg
ICAgIGZvciAoTlNEYXRhICpkYXRhIGluIGFsbEN1c3RvbVBhc3RlYm9hcmREYXRhKSB7CiAgICAg
ICAgICAgICBhdXRvIGJ1ZmZlciA9IFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGRhdGEp
OwogICAgICAgICAgICAgaWYgKFdlYkNvcmU6OlBhc3RlYm9hcmRDdXN0b21EYXRhOjpmcm9tU2hh
cmVkQnVmZmVyKGJ1ZmZlci5nZXQoKSkub3JpZ2luKCkgPT0gZm9jdXNlZERvY3VtZW50T3JpZ2lu
KQpAQCAtNjk0NSw3ICs2OTQ1LDcgQEAgc3RhdGljIEJPT0wgYWxsUGFzdGVib2FyZEl0ZW1Pcmln
aW5zTWF0Y2hPcmlnaW4oVUlQYXN0ZWJvYXJkICpwYXN0ZWJvYXJkLCBjb25zdAogICAgICAgICBy
ZXR1cm4gTk87CiAKICAgICBhdXRvICppbmRpY2VzID0gW05TSW5kZXhTZXQgaW5kZXhTZXRXaXRo
SW5kZXhlc0luUmFuZ2U6TlNNYWtlUmFuZ2UoMCwgW3Bhc3RlYm9hcmQgbnVtYmVyT2ZJdGVtc10p
XTsKLSAgICBhdXRvICphbGxDdXN0b21EYXRhID0gW3Bhc3RlYm9hcmQgZGF0YUZvclBhc3RlYm9h
cmRUeXBlOkAoV2ViQ29yZTo6UGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpKSBpbkl0
ZW1TZXQ6aW5kaWNlc107CisgICAgYXV0byAqYWxsQ3VzdG9tRGF0YSA9IFtwYXN0ZWJvYXJkIGRh
dGFGb3JQYXN0ZWJvYXJkVHlwZTpAKFdlYkNvcmU6OlBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2Nv
YVR5cGUoKS5jaGFyYWN0ZXJzKCkpIGluSXRlbVNldDppbmRpY2VzXTsKICAgICBpZiAoIWFsbEN1
c3RvbURhdGEuY291bnQpCiAgICAgICAgIHJldHVybiBOTzsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJOU1Bhc3RlYm9hcmRFeHRyYXMubW0gYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYk5TUGFzdGVib2FyZEV4dHJhcy5tbQppbmRleCBlNWI0
NDRiZmE1YzI4NzI4Mzg3YzcyMzMyODI5MWE4MjAzZDFiMjU0Li4zZTUyZjFiYmFjZGI1MWI4ZWE1
NDc3YzZiMGQ5OWI5NWNiYWQwYmMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21h
Yy9NaXNjL1dlYk5TUGFzdGVib2FyZEV4dHJhcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9NaXNjL1dlYk5TUGFzdGVib2FyZEV4dHJhcy5tbQpAQCAtMjc2LDcgKzI3Niw3IEBAIC0g
KGlkKV93ZWJfZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlRm9yRWxlbWVudDooRE9NRWxlbWVudCAq
KWVsZW1lbnQKICAgICBOU1N0cmluZyAqb3JpZ2luSWRlbnRpZmllciA9IGNvcmUoZWxlbWVudCkt
PmRvY3VtZW50KCkub3JpZ2luSWRlbnRpZmllckZvclBhc3RlYm9hcmQoKTsKICAgICBSZXRhaW5Q
dHI8TlNEYXRhPiBjdXN0b21EYXRhQnVmZmVyOwogICAgIGlmIChvcmlnaW5JZGVudGlmaWVyLmxl
bmd0aCkgewotICAgICAgICBbdHlwZXMgYWRkT2JqZWN0OkAoUGFzdGVib2FyZEN1c3RvbURhdGE6
OmNvY29hVHlwZSgpKV07CisgICAgICAgIFt0eXBlcyBhZGRPYmplY3Q6QChQYXN0ZWJvYXJkQ3Vz
dG9tRGF0YTo6Y29jb2FUeXBlKCkuY2hhcmFjdGVycygpKV07CiAgICAgICAgIFBhc3RlYm9hcmRD
dXN0b21EYXRhIGN1c3RvbURhdGE7CiAgICAgICAgIGN1c3RvbURhdGEuc2V0T3JpZ2luKG9yaWdp
bklkZW50aWZpZXIpOwogICAgICAgICBjdXN0b21EYXRhQnVmZmVyID0gY3VzdG9tRGF0YS5jcmVh
dGVTaGFyZWRCdWZmZXIoKS0+Y3JlYXRlTlNEYXRhKCk7CkBAIC0zMDUsNyArMzA1LDcgQEAgLSAo
aWQpX3dlYl9kZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2VGb3JFbGVtZW50OihET01FbGVtZW50ICop
ZWxlbWVudAogCiAgICAgW3NlbGYgX3dlYl93cml0ZUltYWdlOm5pbCBlbGVtZW50OmVsZW1lbnQg
VVJMOlVSTCB0aXRsZTp0aXRsZSBhcmNoaXZlOmFyY2hpdmUgdHlwZXM6dHlwZXMuZ2V0KCkgc291
cmNlOnNvdXJjZV07CiAgICAgaWYgKGN1c3RvbURhdGFCdWZmZXIpCi0gICAgICAgIFtzZWxmIHNl
dERhdGE6Y3VzdG9tRGF0YUJ1ZmZlci5nZXQoKSBmb3JUeXBlOkAoUGFzdGVib2FyZEN1c3RvbURh
dGE6OmNvY29hVHlwZSgpKV07CisgICAgICAgIFtzZWxmIHNldERhdGE6Y3VzdG9tRGF0YUJ1ZmZl
ci5nZXQoKSBmb3JUeXBlOkAoUGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpLmNoYXJh
Y3RlcnMoKSldOwogCiAgICAgW3NlbGYgc2V0UHJvcGVydHlMaXN0OkBbZXh0ZW5zaW9uXSBmb3JU
eXBlOmxlZ2FjeUZpbGVzUHJvbWlzZVBhc3RlYm9hcmRUeXBlKCldOwogCmRpZmYgLS1naXQgYS9U
b29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZDcyNTAyZjQwYjI5ZmI3NDVk
ZjI3MmE3NzZiYTk3YWU0NjFlMTYxMS4uYzk1NTkzN2E3N2E1ODBhYWJmZDU1YTU0NDI4MGU2YmQ3
ZWJhNDViOSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDE3IEBACisyMDIyLTAzLTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBs
ZS5jb20+CisKKyAgICAgICAgU3RhcnQgcHJlcGFyaW5nIFdlYkNvcmUgZm9yIG1ha2luZyB0aGUg
U3RyaW5nKGNvbnN0IGNoYXIqKSBjb25zdHJ1Y3RvciBleHBsaWNpdAorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4MzM2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3RhcnQgcHJlcGFyaW5nIFdlYkNvcmUg
Zm9yIG1ha2luZyB0aGUgU3RyaW5nKGNvbnN0IGNoYXIqKSBjb25zdHJ1Y3RvciBleHBsaWNpdC4K
KyAgICAgICAgTWFraW5nIHRoaXMgY29uc3RydWN0b3IgZXhwbGljaXQgaGVscHMgY2F0Y2ggYXQg
Y29tcGlsZSB0aW1lIGNhc2VzIHdoZXJlIHRoZSAiIl9zCisgICAgICAgIHByZWZpeCBpcyBtaXNz
aW5nIG9uIFN0cmluZyBsaXRlcmFscy4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
bWFjL0RyYWdBbmREcm9wVGVzdHNNYWMubW06CisgICAgICAgIChURVNUKToKKwogMjAyMi0wMy0y
NCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEZpbGVTeXN0ZW06
OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudCgpIHNob3VsZCB0YWtlIGluIFN0cmluZ1ZpZXdzIGlu
c3RlYWQgb2YgU3RyaW5ncwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9t
YWMvRHJhZ0FuZERyb3BUZXN0c01hYy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFj
L0RyYWdBbmREcm9wVGVzdHNNYWMubW0KaW5kZXggNTIxOWM5NGRkMzlkYjQ4OWZiM2E0NmExNGQ4
YTkzNTEzZDI4NGVmYy4uODE4YjAwZjNiNWY2NDg4NzllMzUzNTEzYzUzNDM5Zjc0ZWRiYWVlNCAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvRHJhZ0FuZERyb3BUZXN0
c01hYy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9EcmFnQW5kRHJvcFRl
c3RzTWFjLm1tCkBAIC0xODEsNyArMTgxLDcgQEAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElP
TlNfRU5ECiAgICAgRVhQRUNUX0VRKGltYWdlRnJvbVVuaXF1ZVBhc3RlYm9hcmQuVElGRlJlcHJl
c2VudGF0aW9uLmxlbmd0aCwgaW1hZ2VGcm9tRHJhZ1Bhc3RlYm9hcmQuVElGRlJlcHJlc2VudGF0
aW9uLmxlbmd0aCk7CiAgICAgRVhQRUNUX1RSVUUoTlNFcXVhbFNpemVzKGltYWdlRnJvbURyYWdQ
YXN0ZWJvYXJkLnNpemUsIGltYWdlRnJvbVVuaXF1ZVBhc3RlYm9hcmQuc2l6ZSkpOwogICAgIEVY
UEVDVF9GQUxTRShOU0VxdWFsU2l6ZXMoTlNaZXJvU2l6ZSwgaW1hZ2VGcm9tVW5pcXVlUGFzdGVi
b2FyZC5zaXplKSk7Ci0gICAgRVhQRUNUX0dUKFtkcmFnUGFzdGVib2FyZCBkYXRhRm9yVHlwZTpA
KFdlYkNvcmU6OlBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKSldLmxlbmd0aCwgMHUp
OworICAgIEVYUEVDVF9HVChbZHJhZ1Bhc3RlYm9hcmQgZGF0YUZvclR5cGU6QChXZWJDb3JlOjpQ
YXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkuY2hhcmFjdGVycygpKV0ubGVuZ3RoLCAw
dSk7CiB9CiAKIFRFU1QoRHJhZ0FuZERyb3BUZXN0cywgUHJvdmlkZUltYWdlRGF0YUFzVHlwZUlk
ZW50aWZpZXJzKQo=
</data>
<flag name="commit-queue"
          id="483781"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455722</attachid>
            <date>2022-03-24 20:59:47 -0700</date>
            <delta_ts>2022-03-24 21:58:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238336-20220324205946.patch</filename>
            <type>text/plain</type>
            <size>421652</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxODQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
OTBiMzE2MDQ4NDI3MDQzZjgyZjc4OWRlNmEyNDFlODBhZDAzNzhmLi5jZTQyYjA2NjBhYzY2NjU4
ZjVmMTE5NzlhYWZjNTk5ZjNhZWZjZGQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMiBAQAorMjAyMi0wMy0yNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFN0YXJ0IHByZXBhcmluZyBXZWJDb3JlIGZvciBtYWtpbmcgdGhlIFN0cmluZyhj
b25zdCBjaGFyKikgY29uc3RydWN0b3IgZXhwbGljaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODMzNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0YXJ0IHByZXBhcmluZyBXZWJDb3JlIGZvciBtYWtp
bmcgdGhlIFN0cmluZyhjb25zdCBjaGFyKikgY29uc3RydWN0b3IgZXhwbGljaXQuCisgICAgICAg
IE1ha2luZyB0aGlzIGNvbnN0cnVjdG9yIGV4cGxpY2l0IGhlbHBzIGNhdGNoIGF0IGNvbXBpbGUg
dGltZSBjYXNlcyB3aGVyZSB0aGUgIiJfcworICAgICAgICBwcmVmaXggaXMgbWlzc2luZyBvbiBT
dHJpbmcgbGl0ZXJhbHMuCisKKyAgICAgICAgKiBBUEkvSlNWYWx1ZS5tbToKKyAgICAgICAgKGNy
ZWF0ZVN0cnVjdEhhbmRsZXJNYXApOgorICAgICAgICAoaGFuZGVyRm9yU3RydWN0VGFnKToKKyAg
ICAgICAgKiBBUEkvSlNXcmFwcGVyTWFwLm1tOgorICAgICAgICAoYWxsb2NhdGVDb25zdHJ1Y3Rv
ckZvckN1c3RvbUNsYXNzKToKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckF1
ZGl0QWdlbnQuY3BwOgorICAgICAgICAoSW5zcGVjdG9yOjpJbnNwZWN0b3JBdWRpdEFnZW50Ojpy
dW4pOgorCiAyMDIyLTAzLTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAg
ICAgICAgRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KCkgc2hvdWxkIHRha2Ug
aW4gU3RyaW5nVmlld3MgaW5zdGVhZCBvZiBTdHJpbmdzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGFlYzc4ZDcwMGQ1MGRkOTdl
MzE4Zjk3NjdkZWEyMjNhMGMxNGQyNTIuLjA0M2ZiMmQzNzk4NDc5NmM4ZTFlZTlhMGMwZjgxNjg5
NTI2MmI0N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
VEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjItMDMtMjQgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBTdGFydCBwcmVwYXJpbmcgV2ViQ29yZSBmb3Ig
bWFraW5nIHRoZSBTdHJpbmcoY29uc3QgY2hhciopIGNvbnN0cnVjdG9yIGV4cGxpY2l0CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzgzMzYKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdGFydCBwcmVwYXJp
bmcgV2ViQ29yZSBmb3IgbWFraW5nIHRoZSBTdHJpbmcoY29uc3QgY2hhciopIGNvbnN0cnVjdG9y
IGV4cGxpY2l0LgorICAgICAgICBNYWtpbmcgdGhpcyBjb25zdHJ1Y3RvciBleHBsaWNpdCBoZWxw
cyBjYXRjaCBhdCBjb21waWxlIHRpbWUgY2FzZXMgd2hlcmUgdGhlICIiX3MKKyAgICAgICAgcHJl
Zml4IGlzIG1pc3Npbmcgb24gU3RyaW5nIGxpdGVyYWxzLgorCisgICAgICAgICogd3RmL3RleHQv
VGV4dFN0cmVhbS5oOgorICAgICAgICAoV1RGOjpUZXh0U3RyZWFtOjpkdW1wUHJvcGVydHkpOgor
CiAyMDIyLTAzLTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAg
RmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KCkgc2hvdWxkIHRha2UgaW4gU3Ry
aW5nVmlld3MgaW5zdGVhZCBvZiBTdHJpbmdzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGFiYmUwNDhiNDVlZTQ1
MGNhNThmNTgxMjFlMmU1ZTg4ZDk3MTRmOC4uZjI2NjAxZWRjYjFiY2ZmNWY1YTExOGMyZTRlNWQ0
MTFiOTY3ZTNkZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxMSBAQAorMjAyMi0wMy0yNCAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFN0YXJ0IHByZXBhcmluZyBX
ZWJDb3JlIGZvciBtYWtpbmcgdGhlIFN0cmluZyhjb25zdCBjaGFyKikgY29uc3RydWN0b3IgZXhw
bGljaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
ODMzNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0
YXJ0IHByZXBhcmluZyBXZWJDb3JlIGZvciBtYWtpbmcgdGhlIFN0cmluZyhjb25zdCBjaGFyKikg
Y29uc3RydWN0b3IgZXhwbGljaXQuCisgICAgICAgIE1ha2luZyB0aGlzIGNvbnN0cnVjdG9yIGV4
cGxpY2l0IGhlbHBzIGNhdGNoIGF0IGNvbXBpbGUgdGltZSBjYXNlcyB3aGVyZSB0aGUgIiJfcwor
ICAgICAgICBwcmVmaXggaXMgbWlzc2luZyBvbiBTdHJpbmcgbGl0ZXJhbHMuCisKKyAgICAgICAg
KiBNb2R1bGVzL2FwcGxlcGF5LWFtcy11aS9BcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydEFuZFZhbGlkYXRlQXBwbGVQYXlBTVNVSVJlcXVl
c3QpOgorICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlDb250YWN0RmllbGQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydEFuZFZhbGlkYXRlKToKKyAgICAgICAgKiBNb2R1
bGVzL2FwcGxlcGF5L0FwcGxlUGF5TWVyY2hhbnRDYXBhYmlsaXR5LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OmNvbnZlcnRBbmRWYWxpZGF0ZSk6CisgICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9B
cHBsZVBheVJlcXVlc3RCYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRBbmRWYWxp
ZGF0ZSk6CisgICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNlc3Npb24uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9uOjpjcmVhdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6QXBwbGVQYXlTZXNzaW9uOjpvcGVuUGF5bWVudFNldHVwKToKKyAgICAgICAgKFdlYkNv
cmU6OkFwcGxlUGF5U2Vzc2lvbjo6YmVnaW4pOgorICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXkv
QXBwbGVQYXlTZXR1cC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBcHBsZVBheVNldHVwOjpiZWdp
bik6CisgICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9QYXltZW50SW5zdGFsbG1lbnRDb25maWd1
cmF0aW9uLm1tOgorICAgICAgICAoV2ViQ29yZTo6UGF5bWVudEluc3RhbGxtZW50Q29uZmlndXJh
dGlvbjo6Y3JlYXRlKToKKyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRSZXF1ZXN0
VmFsaWRhdG9yLm1tOgorICAgICAgICAoV2ViQ29yZTo6UGF5bWVudFJlcXVlc3RWYWxpZGF0b3I6
OnZhbGlkYXRlVG90YWwpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGVDb3VudHJ5Q29kZSk6
CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0ZUN1cnJlbmN5Q29kZSk6CisgICAgICAgIChXZWJD
b3JlOjp2YWxpZGF0ZU1lcmNoYW50Q2FwYWJpbGl0aWVzKToKKyAgICAgICAgKFdlYkNvcmU6OnZh
bGlkYXRlU3VwcG9ydGVkTmV0d29ya3MpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGVTaGlw
cGluZ01ldGhvZCk6CisgICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9QYXltZW50U2Vzc2lvbi5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpQYXltZW50U2Vzc2lvbjo6Y2FuQ3JlYXRlU2Vzc2lvbik6
CisgICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9wYXltZW50cmVxdWVzdC9BcHBsZVBheVBheW1l
bnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRBbmRWYWxpZGF0ZUFwcGxl
UGF5UmVxdWVzdCk6CisgICAgICAgICogTW9kdWxlcy9hcHBsaWNhdGlvbm1hbmlmZXN0L0FwcGxp
Y2F0aW9uTWFuaWZlc3RQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGljYXRpb25N
YW5pZmVzdFBhcnNlcjo6cGFyc2VJY29ucyk6CisgICAgICAgIChXZWJDb3JlOjpBcHBsaWNhdGlv
bk1hbmlmZXN0UGFyc2VyOjpwYXJzZVNjb3BlKToKKyAgICAgICAgKiBNb2R1bGVzL2NhY2hlL1dp
bmRvd09yV29ya2VyR2xvYmFsU2NvcGVDYWNoZXMuY3BwOgorICAgICAgICAqIE1vZHVsZXMvZW5j
cnlwdGVkbWVkaWEvSW5pdERhdGFSZWdpc3RyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzYW5p
dGl6ZUtleWlkcyk6CisgICAgICAgICogTW9kdWxlcy9lbnRyaWVzYXBpL0RPTUZpbGVTeXN0ZW0u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6bGlzdERpcmVjdG9yeVdpdGhNZXRhZGF0YSk6CisgICAg
ICAgIChXZWJDb3JlOjp2YWxpZGF0ZVBhdGhJc0V4cGVjdGVkVHlwZSk6CisgICAgICAgICogTW9k
dWxlcy9mZXRjaC9GZXRjaEJvZHlDb25zdW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGZXRj
aEJvZHlDb25zdW1lcjo6cGFja2FnZUZvcm1EYXRhKToKKyAgICAgICAgKiBNb2R1bGVzL2ZldGNo
L0ZldGNoSGVhZGVycy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpmaWxsSGVhZGVyTWFwKToKKyAg
ICAgICAgKiBNb2R1bGVzL2ZldGNoL0ZldGNoTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZldGNoTG9hZGVyOjpzdGFydExvYWRpbmdCbG9iVVJMKToKKyAgICAgICAgKiBNb2R1bGVzL2Zp
bGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6RmlsZVN5c3RlbUZpbGVIYW5kbGU6OmdldEZpbGUpOgorICAgICAgICAoV2ViQ29yZTo6Rmls
ZVN5c3RlbUZpbGVIYW5kbGU6OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAqIE1v
ZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGU6OmlzU2FtZUVudHJ5IGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGU6Om1vdmUpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhl
ZGRiL0lEQkRhdGFiYXNlSWRlbnRpZmllci5oOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRi
L0lEQktleURhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCS2V5RGF0YTo6ZW5jb2RlIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OklEQktleURhdGE6OmRlY29kZSk6CisgICAgICAgICog
TW9kdWxlcy9pbmRleGVkZGIvSURCS2V5UmFuZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURC
S2V5UmFuZ2U6OmluY2x1ZGVzKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIv
SURCU2VyaWFsaXphdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzZXJpYWxpemVJREJLZXlQ
YXRoKToKKyAgICAgICAgKFdlYkNvcmU6OmRlc2VyaWFsaXplSURCS2V5UGF0aCk6CisgICAgICAg
ICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpJREJTZXJ2ZXI6OklEQlNlcnZlcjo6Z2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25z
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVyOjpnZXRPcmlnaW5zIGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVyOjpjbG9zZUFuZERl
bGV0ZURhdGFiYXNlc01vZGlmaWVkU2luY2UpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVy
OjpJREJTZXJ2ZXI6OmNsb3NlQW5kRGVsZXRlRGF0YWJhc2VzRm9yT3JpZ2lucyk6CisgICAgICAg
IChXZWJDb3JlOjpJREJTZXJ2ZXI6OnJlbW92ZUFsbERhdGFiYXNlc0ZvckZ1bGxPcmlnaW5QYXRo
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVyOjpyZW5hbWVPcmlnaW4p
OgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpJREJTZXJ2ZXI6OnVwZ3JhZGVGaWxlc0lm
TmVjZXNzYXJ5KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVyOjp1cGdy
YWRlZERhdGFiYXNlRGlyZWN0b3J5KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2
ZXIvTWVtb3J5SURCQmFja2luZ1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZl
cjo6TWVtb3J5SURCQmFja2luZ1N0b3JlOjpiZWdpblRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdl
YkNvcmU6OklEQlNlcnZlcjo6TWVtb3J5SURCQmFja2luZ1N0b3JlOjphYm9ydFRyYW5zYWN0aW9u
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6TWVtb3J5SURCQmFja2luZ1N0b3JlOjpj
b21taXRUcmFuc2FjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6Ok1lbW9yeUlE
QkJhY2tpbmdTdG9yZTo6Z2VuZXJhdGVLZXlOdW1iZXIpOgorICAgICAgICAqIE1vZHVsZXMvaW5k
ZXhlZGRiL3NlcnZlci9NZW1vcnlPYmplY3RTdG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJ
REJTZXJ2ZXI6Ok1lbW9yeU9iamVjdFN0b3JlOjp1cGRhdGVJbmRleGVzRm9yUHV0UmVjb3JkKToK
KyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3Jl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6djFSZWNvcmRzVGFibGVTY2hlbWEp
OgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjp2MVJlY29yZHNUYWJsZVNjaGVtYUFsdGVy
bmF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OnYyUmVjb3Jkc1RhYmxlU2NoZW1h
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6djJSZWNvcmRzVGFibGVTY2hlbWFBbHRl
cm5hdGUpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjp2MUluZGV4UmVjb3Jkc1RhYmxl
U2NoZW1hKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6djFJbmRleFJlY29yZHNUYWJs
ZVNjaGVtYUFsdGVybmF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OnYySW5kZXhS
ZWNvcmRzVGFibGVTY2hlbWEpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjp2MkluZGV4
UmVjb3Jkc1RhYmxlU2NoZW1hQWx0ZXJuYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZl
cjo6U1FMaXRlSURCQmFja2luZ1N0b3JlOjplbmNvZGVEYXRhYmFzZU5hbWUpOgorICAgICAgICAo
V2ViQ29yZTo6SURCU2VydmVyOjpTUUxpdGVJREJCYWNraW5nU3RvcmU6OmZ1bGxEYXRhYmFzZVBh
dGhGb3JEaXJlY3RvcnkpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpTUUxpdGVJREJC
YWNraW5nU3RvcmU6OmdldE9yRXN0YWJsaXNoRGF0YWJhc2VJbmZvKToKKyAgICAgICAgKFdlYkNv
cmU6OklEQlNlcnZlcjo6U1FMaXRlSURCQmFja2luZ1N0b3JlOjp1cGRhdGVBbGxJbmRleGVzRm9y
QWRkUmVjb3JkKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6U1FMaXRlSURCQmFja2lu
Z1N0b3JlOjp1bmNoZWNrZWRHZXRLZXlHZW5lcmF0b3JWYWx1ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpJREJTZXJ2ZXI6OlNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6dW5jaGVja2VkU2V0S2V5R2VuZXJh
dG9yVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpTUUxpdGVJREJCYWNraW5n
U3RvcmU6OmdlbmVyYXRlS2V5TnVtYmVyKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9z
ZXJ2ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVy
OjpVbmlxdWVJREJEYXRhYmFzZTo6Y3JlYXRlT2JqZWN0U3RvcmUpOgorICAgICAgICAoV2ViQ29y
ZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6ZGVsZXRlT2JqZWN0U3RvcmUpOgorICAg
ICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6cmVuYW1lT2JqZWN0
U3RvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6
Y2xlYXJPYmplY3RTdG9yZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlE
QkRhdGFiYXNlOjpjcmVhdGVJbmRleCk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVu
aXF1ZUlEQkRhdGFiYXNlOjpkZWxldGVJbmRleCk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2
ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpyZW5hbWVJbmRleCk6CisgICAgICAgIChXZWJDb3JlOjpJ
REJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpwdXRPckFkZCk6CisgICAgICAgIChXZWJDb3Jl
OjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpwdXRPckFkZEFmdGVyU3BhY2VDaGVjayk6
CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpnZXRSZWNv
cmQpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6Z2V0
QWxsUmVjb3Jkcyk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFi
YXNlOjpnZXRDb3VudCk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRh
dGFiYXNlOjpkZWxldGVSZWNvcmQpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlx
dWVJREJEYXRhYmFzZTo6b3BlbkN1cnNvcik6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6
OlVuaXF1ZUlEQkRhdGFiYXNlOjppdGVyYXRlQ3Vyc29yKToKKyAgICAgICAgKFdlYkNvcmU6OklE
QlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OmNvbW1pdFRyYW5zYWN0aW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OmFib3J0VHJhbnNhY3Rpb24p
OgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJJbmRleEluZm8uY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SURCSW5kZXhJbmZvOjpsb2dnaW5nU3RyaW5nIGNvbnN0KToKKyAg
ICAgICAgKiBNb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6TWVkaWFDb250cm9sc0hvc3Q6OmxheW91dFRyYWl0c0NsYXNzTmFtZSBj
b25zdCk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFSZWNvcmRlcjo6Y3JlYXRlKToKKyAgICAgICAgKiBN
b2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmFk
ZFZQOUZ1bGxSYW5nZVZpZGVvRmxhZ1RvQ29udGVudFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFTb3VyY2U6OmlzVHlwZVN1cHBvcnRlZCk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0
cmVhbS9NZWRpYVRyYWNrQ29uc3RyYWludHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2V0KToK
KyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRUb0ludGVybmFsRm9ybSk6CisgICAgICAgICogTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENJY2VDYW5kaWRhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UlRDSWNlQ2FuZGlkYXRlOjpjcmVhdGUpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0v
UlRDUGVlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6UlRDUGVlckNvbm5lY3Rp
b246OnNldExvY2FsRGVzY3JpcHRpb24pOgorICAgICAgICAoV2ViQ29yZTo6UlRDUGVlckNvbm5l
Y3Rpb246OmFkZEljZUNhbmRpZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENQZWVyQ29ubmVj
dGlvbjo6aWNlU2VydmVyc0Zyb21Db25maWd1cmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJU
Q1BlZXJDb25uZWN0aW9uOjpjZXJ0aWZpY2F0ZXNGcm9tQ29uZmlndXJhdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpSVENQZWVyQ29ubmVjdGlvbjo6aW5pdGlhbGl6ZUNvbmZpZ3VyYXRpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6UlRDUGVlckNvbm5lY3Rpb246OnNldENvbmZpZ3VyYXRpb24pOgor
ICAgICAgICAoV2ViQ29yZTo6UlRDUGVlckNvbm5lY3Rpb246OmNoYWluT3BlcmF0aW9uKToKKyAg
ICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OlJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyOjp0cmFuc2Zvcm0pOgor
ICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1BlZXJDb25u
ZWN0aW9uQmFja2VuZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMaWJXZWJSVENQZWVyQ29ubmVj
dGlvbkJhY2tlbmQ6OmRvQ3JlYXRlQW5zd2VyKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3Ry
ZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENSdHBUcmFuc2NlaXZlckJhY2tlbmQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6dG9SdHBDb2RlY0NhcGFiaWxpdHkpOgorICAgICAgICAqIE1vZHVsZXMvbWVk
aWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1V0aWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OnRvRXhjZXB0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OnRvUlRDRXJyb3IpOgorICAgICAgICAq
IE1vZHVsZXMvbW9kZWwtZWxlbWVudC9zY2VuZWtpdC9TY2VuZUtpdE1vZGVsTG9hZGVyVVNELm1t
OgorICAgICAgICAoV2ViQ29yZTo6d3JpdGVUb1RlbXBvcmFyeUZpbGUpOgorICAgICAgICAqIE1v
ZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Y2hlY2tBbmRDYW5vbmljYWxpemVEZXRhaWxzKToKKyAgICAgICAgKFdlYkNvcmU6OlBheW1l
bnRSZXF1ZXN0OjpzaG93KToKKyAgICAgICAgKiBNb2R1bGVzL3BpY3R1cmVpbnBpY3R1cmUvSFRN
TFZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRN
TFZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmU6OnJlcXVlc3RQaWN0dXJlSW5QaWN0dXJlKToK
KyAgICAgICAgKiBNb2R1bGVzL3BsdWdpbnMvWW91VHViZVBsdWdpblJlcGxhY2VtZW50LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OllvdVR1YmVQbHVnaW5SZXBsYWNlbWVudDo6aW5zdGFsbFJlcGxh
Y2VtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OnByb2Nlc3NBbmRDcmVhdGVZb3VUdWJlVVJMKToK
KyAgICAgICAgKiBNb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJ
bXBsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJj
ZUltcGw6OnVwZGF0ZURhdGFTb3VyY2UpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2du
aXRpb25DYXB0dXJlU291cmNlSW1wbDo6c291cmNlU3RvcHBlZCk6CisgICAgICAgIChXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjpzb3VyY2VNdXRlZENoYW5nZWQp
OgorICAgICAgICAqIE1vZHVsZXMvc3BlZWNoL2NvY29hL1dlYlNwZWVjaFJlY29nbml6ZXJUYXNr
TW9jay5tbToKKyAgICAgICAgKC1bV2ViU3BlZWNoUmVjb2duaXplclRhc2tNb2NrIGF1ZGlvU2Ft
cGxlc0F2YWlsYWJsZTpdKToKKyAgICAgICAgKiBNb2R1bGVzL3N0b3JhZ2UvU3RvcmFnZU1hbmFn
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y29ubmVjdGlvbkluZm8pOgorICAgICAgICAqIE1v
ZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oldl
YkxvY2tNYW5hZ2VyOjpzaWduYWxUb0Fib3J0VGhlUmVxdWVzdCk6CisgICAgICAgICogTW9kdWxl
cy93ZWJhdWRpby9BdWRpb0xpc3RlbmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvTGlz
dGVuZXI6OkF1ZGlvTGlzdGVuZXIpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9Q
YXJhbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBdWRpb1BhcmFtOjpzZXRBdXRvbWF0aW9uUmF0
ZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtVGltZWxpbmUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6QXVkaW9QYXJhbVRpbWVsaW5lOjppbnNlcnRFdmVudCk6CisgICAg
ICAgICogTW9kdWxlcy93ZWJhdWRpby9CaXF1YWRGaWx0ZXJOb2RlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkJpcXVhZEZpbHRlck5vZGU6OmdldEZyZXF1ZW5jeVJlc3BvbnNlKToKKyAgICAgICAg
KiBNb2R1bGVzL3dlYmF1ZGlvL0JpcXVhZFByb2Nlc3Nvci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpCaXF1YWRQcm9jZXNzb3I6OkJpcXVhZFByb2Nlc3Nvcik6CisgICAgICAgICogTW9kdWxlcy93
ZWJhdWRpby9EZWxheVByb2Nlc3Nvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZWxheVByb2Nl
c3Nvcjo6RGVsYXlQcm9jZXNzb3IpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vV2F2ZVNo
YXBlck5vZGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2F2ZVNoYXBlck5vZGU6OmNyZWF0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpXYXZlU2hhcGVyTm9kZTo6c2V0Q3VydmVGb3JCaW5kaW5ncyk6
CisgICAgICAgICogTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6QXV0aGVudGljYXRvckNvb3JkaW5hdG9ySW50ZXJuYWw6Om5l
ZWRzQXBwSWRRdWlya3MpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vV2ViQXV0aGVudGlj
YXRpb25VdGlscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpidWlsZEF0dGVzdGF0aW9uTWFwKToK
KyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRGV2aWNlUmVzcG9uc2VDb252ZXJ0ZXIu
Y3BwOgorICAgICAgICAoZmlkbzo6cmVhZENUQVBNYWtlQ3JlZGVudGlhbFJlc3BvbnNlKToKKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL2ZpZG8vUGluLmNwcDoKKyAgICAgICAgKGZpZG86OnBp
bjo6S2V5QWdyZWVtZW50UmVzcG9uc2U6OnBhcnNlRnJvbUNPU0UpOgorICAgICAgICAoZmlkbzo6
cGluOjpUb2tlblJlcXVlc3Q6OnRyeUNyZWF0ZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdXRo
bi9maWRvL1UyZlJlc3BvbnNlQ29udmVydGVyLmNwcDoKKyAgICAgICAgKGZpZG86OnJlYWRVMmZS
ZWdpc3RlclJlc3BvbnNlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL0NoYW5nZVZl
cnNpb25XcmFwcGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNoYW5nZVZlcnNpb25XcmFwcGVy
OjpwZXJmb3JtUHJlZmxpZ2h0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL0RPTVdp
bmRvd1dlYkRhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvd1dlYkRhdGFi
YXNlOjpvcGVuRGF0YWJhc2UpOgorICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJh
c2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2U6OkRhdGFiYXNlKToKKyAgICAgICAg
KFdlYkNvcmU6OkRhdGFiYXNlOjpydW5UcmFuc2FjdGlvbik6CisgICAgICAgICogTW9kdWxlcy93
ZWJkYXRhYmFzZS9EYXRhYmFzZUF1dGhvcml6ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0
YWJhc2VBdXRob3JpemVyOjphZGRBbGxvd2VkRnVuY3Rpb25zKToKKyAgICAgICAgKiBNb2R1bGVz
L3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRh
YmFzZVRyYWNrZXI6OnRyYWNrZXJEYXRhYmFzZVBhdGggY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6RGF0YWJhc2VUcmFja2VyOjpvcGVuVHJhY2tlckRhdGFiYXNlKToKKyAgICAgICAgKiBNb2R1
bGVzL3dlYmRhdGFiYXNlL1NRTFN0YXRlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTUUxT
dGF0ZW1lbnQ6OmV4ZWN1dGUpOgorICAgICAgICAoV2ViQ29yZTo6U1FMU3RhdGVtZW50OjpzZXRE
YXRhYmFzZURlbGV0ZWRFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpTUUxTdGF0ZW1lbnQ6OnNl
dFZlcnNpb25NaXNtYXRjaGVkRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6U1FMU3RhdGVtZW50
OjpzZXRGYWlsdXJlRHVlVG9RdW90YSk6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9T
UUxUcmFuc2FjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTUUxUcmFuc2FjdGlvbjo6Y2Fs
bEVycm9yQ2FsbGJhY2tEdWVUb0ludGVycnVwdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTUUxU
cmFuc2FjdGlvbjo6b3BlblRyYW5zYWN0aW9uQW5kUHJlZmxpZ2h0KToKKyAgICAgICAgKFdlYkNv
cmU6OlNRTFRyYW5zYWN0aW9uOjpkZWxpdmVyVHJhbnNhY3Rpb25DYWxsYmFjayk6CisgICAgICAg
IChXZWJDb3JlOjpTUUxUcmFuc2FjdGlvbjo6ZGVsaXZlclN0YXRlbWVudENhbGxiYWNrKToKKyAg
ICAgICAgKFdlYkNvcmU6OlNRTFRyYW5zYWN0aW9uOjpoYW5kbGVDdXJyZW50U3RhdGVtZW50RXJy
b3IpOgorICAgICAgICAoV2ViQ29yZTo6U1FMVHJhbnNhY3Rpb246OnBvc3RmbGlnaHRBbmRDb21t
aXQpOgorICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6V2ViU29ja2V0OjpzdWJwcm90b2NvbFNlcGFyYXRvcik6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJTb2NrZXQ6OmNsb3NlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldDo6
c3VzcGVuZCk6CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5oOgorICAg
ICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWw6OmRpZE9wZW5Tb2NrZXRTdHJlYW0pOgorICAgICAg
ICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6ZGlkUmVjZWl2ZVNvY2tldFN0cmVhbURhdGEp
OgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6cHJvY2Vzc0ZyYW1lKToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWw6OnByb2Nlc3NPdXRnb2luZ0ZyYW1lUXVl
dWUpOgorICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXREZWZsYXRlRnJhbWVy
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldEV4dGVuc2lvbkRlZmxhdGVGcmFtZTo6
cHJvY2Vzc1Jlc3BvbnNlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldERlZmxhdGVGcmFt
ZXI6OmRlZmxhdGUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0RGVmbGF0ZUZyYW1lcjo6
aW5mbGF0ZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEV4dGVuc2lv
bkRpc3BhdGNoZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0RXh0ZW5zaW9uRGlz
cGF0Y2hlcjo6cHJvY2Vzc0hlYWRlclZhbHVlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tl
dHMvV2ViU29ja2V0RnJhbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0RnJhbWU6
OnBhcnNlRnJhbWUpOgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvV2ViWFJXZWJHTExheWVyLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZU9wYXF1ZUZyYW1lYnVmZmVyKToKKyAgICAgICAg
KFdlYkNvcmU6OldlYlhSV2ViR0xMYXllcjo6Y3JlYXRlKToKKyAgICAgICAgKiBhY2Nlc3NpYmls
aXR5L0FYSW1hZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QVhJbWFnZTo6aW1hZ2VPdmVybGF5
RWxlbWVudHMpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQVhMb2dnZXIuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6QVhMb2dnZXI6OkFYTG9nZ2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkFYTG9n
Z2VyOjpsb2cpOgorICAgICAgICAoV2ViQ29yZTo6b3BlcmF0b3I8PCk6CisgICAgICAgICogYWNj
ZXNzaWJpbGl0eS9BWExvZ2dlci5oOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQVhPYmplY3RD
YWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjppc01vZGFsRWxlbWVu
dCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVGcm9tUmVuZGVyZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cmVtb3ZlKToKKyAgICAgICAgKFdlYkNvcmU6OkFY
T2JqZWN0Q2FjaGU6OnRleHRDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2Fj
aGU6OmhhbmRsZU1lbnVPcGVuZWQpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6
bm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RD
YWNoZTo6cGFzc3dvcmROb3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCk6CisgICAgICAgIChXZWJD
b3JlOjpBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OkFYT2JqZWN0Q2FjaGU6OmhhbmRsZU1lbnVJdGVtU2VsZWN0ZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6QVhPYmplY3RDYWNoZTo6c2VsZWN0ZWRTdGF0ZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29y
ZTo6QVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbik6CisgICAg
ICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpoYW5kbGVNb2RhbENoYW5nZSk6CisgICAgICAg
IChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpwZXJmb3JtRGVmZXJyZWRDYWNoZVVwZGF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjp1cGRhdGVJc29sYXRlZFRyZWUpOgorICAg
ICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmRldGVybWluZUFjY2Vzc2liaWxp
dHlSb2xlKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6cmVhZE9ubHlWYWx1ZSBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjphdXRvQ29tcGxl
dGVWYWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0Ojpj
dXJyZW50VmFsdWUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVj
dDo6cmVwbGFjZVRleHRJblJhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlP
YmplY3Q6OmNvbXB1dGVkUm9sZVN0cmluZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpub2Rl
SGFzUHJlc2VudGF0aW9uUm9sZSk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2Jq
ZWN0OjpyZXNvbHZlZEVkaXRpbmdTdHlsZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QWNj
ZXNzaWJpbGl0eTo6aXNSYWRpb0J1dHRvbkluRGlmZmVyZW50QWRob2NHcm91cCk6CisgICAgICAg
IChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5OjpmaW5kTWF0Y2hpbmdPYmplY3RzKToKKyAgICAgICAg
KiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaDoKKyAgICAgICAg
KFdlYkNvcmU6OmFjY2Vzc2liaWxpdHlSb2xlVG9TdHJpbmcpOgorICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpB
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpyZW5kZXJPYmplY3RJc09ic2VydmFibGUgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6ZGV0ZXJtaW5l
QWNjZXNzaWJpbGl0eVJvbGUpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdDo6dXBkYXRlUm9sZUFmdGVyQ2hpbGRyZW5DcmVhdGlvbik6CisgICAgICAgIChXZWJD
b3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpsaXZlUmVnaW9uUmVsZXZhbnQgY29uc3Qp
OgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlQ2VsbC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5VGFibGVDZWxsOjpjb21wdXRlQWNjZXNzaWJp
bGl0eUlzSWdub3JlZCBjb25zdCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5VHJlZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5VHJlZTo6bm9kZUhh
c1RyZWVJdGVtQ2hpbGQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVRy
ZWU6OmlzVHJlZVZhbGlkIGNvbnN0KToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lzb2xhdGVk
dHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRP
YmplY3Q6OmluaXRpYWxpemVBdHRyaWJ1dGVEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNv
bGF0ZWRPYmplY3Q6OmNsYXNzTGlzdCBjb25zdCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9p
c29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29s
YXRlZFRyZWU6OkFYSXNvbGF0ZWRUcmVlKToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRU
cmVlOjp+QVhJc29sYXRlZFRyZWUpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6
OmNsZWFyKToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjp0cmVlRm9ySUQpOgor
ICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpBWElzb2xhdGVkVHJlZTo6cmVtb3ZlVHJlZUZvclBhZ2VJRCk6CisgICAgICAgIChXZWJD
b3JlOjpBWElzb2xhdGVkVHJlZTo6b2JqZWN0c0ZvcklEcyBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpBWElzb2xhdGVkVHJlZTo6Z2VuZXJhdGVTdWJ0cmVlKToKKyAgICAgICAgKFdlYkNvcmU6
OkFYSXNvbGF0ZWRUcmVlOjpjb2xsZWN0Tm9kZUNoYW5nZXNGb3JTdWJ0cmVlKToKKyAgICAgICAg
KFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVOb2RlKToKKyAgICAgICAgKFdlYkNvcmU6
OkFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVOb2RlUHJvcGVydHkpOgorICAgICAgICAoV2ViQ29yZTo6
QVhJc29sYXRlZFRyZWU6OnVwZGF0ZUNoaWxkcmVuKToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNv
bGF0ZWRUcmVlOjpmb2N1c2VkTm9kZSk6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkVHJl
ZTo6cm9vdE5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OnNldFJvb3RO
b2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjpzZXRGb2N1c2VkTm9kZUlE
KToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVMb2FkaW5nUHJvZ3Jl
c3MpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OnJlbW92ZU5vZGUpOgorICAg
ICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OnJlbW92ZVN1YnRyZWVGcm9tTm9kZU1hcCk6
CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkVHJlZTo6YXBwbHlQZW5kaW5nQ2hhbmdlcyk6
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9tYWMvQWNjZXNzaWJpbGl0eU9iamVjdE1hYy5tbToK
KyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OnN1YnJvbGVQbGF0Zm9ybVN0
cmluZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0Ojpyb2xl
UGxhdGZvcm1EZXNjcmlwdGlvbiBjb25zdCk6CisgICAgICAgICogYW5pbWF0aW9uL0FuaW1hdGlv
bkVmZmVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBbmltYXRpb25FZmZlY3Q6OmdldFRpbWlu
ZyBjb25zdCk6CisgICAgICAgICogYW5pbWF0aW9uL0RvY3VtZW50VGltZWxpbmUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RG9jdW1lbnRUaW1lbGluZTo6YW5pbWF0ZSk6CisgICAgICAgICogYW5p
bWF0aW9uL0VmZmVjdFRpbWluZy5oOgorICAgICAgICAqIGFuaW1hdGlvbi9LZXlmcmFtZUVmZmVj
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpLZXlmcmFtZUVmZmVjdDo6Q1NTUHJvcGVydHlJRFRv
SURMQXR0cmlidXRlTmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpLZXlmcmFtZUVmZmVjdDo6Z2V0
S2V5ZnJhbWVzKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9HQ0NvbnRyb2xsZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6R0NDb250cm9sbGVyOjpHQ0NvbnRyb2xsZXIpOgorICAgICAgICAqIGJp
bmRpbmdzL2pzL0pTQ3VzdG9tRWxlbWVudEludGVyZmFjZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpKU0N1c3RvbUVsZW1lbnRJbnRlcmZhY2U6OnVwZ3JhZGVFbGVtZW50KToKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU0RPTUNvbnZlcnROdW1iZXJzLmg6CisgICAgICAgIChXZWJDb3JlOjpDb252
ZXJ0ZXI8SURMRmxvYXQ+Ojpjb252ZXJ0KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0V4ZWNT
dGF0ZUluc3RydW1lbnRhdGlvbi5oOgorICAgICAgICAoV2ViQ29yZTo6SlNFeGVjU3RhdGU6Omlu
c3RydW1lbnRGdW5jdGlvbik6CisgICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHRDb250cm9sbGVyOjpjYWxsSW5Xb3JsZCk6
CisgICAgICAgICogYnJpZGdlL29iamMvb2JqY19ydW50aW1lLm1tOgorICAgICAgICAoSlNDOjpC
aW5kaW5nczo6T2JqY0FycmF5OjpzZXRWYWx1ZUF0IGNvbnN0KToKKyAgICAgICAgKEpTQzo6Qmlu
ZGluZ3M6Ok9iamNBcnJheTo6dmFsdWVBdCBjb25zdCk6CisgICAgICAgICogYnJpZGdlL3J1bnRp
bWVfYXJyYXkuY3BwOgorICAgICAgICAoSlNDOjpSdW50aW1lQXJyYXk6OnB1dCk6CisgICAgICAg
IChKU0M6OlJ1bnRpbWVBcnJheTo6cHV0QnlJbmRleCk6CisgICAgICAgICogYnJpZGdlL3J1bnRp
bWVfb2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6OnRocm93UnVudGltZU9iamVj
dEludmFsaWRBY2Nlc3NFcnJvcik6CisgICAgICAgICogY29udGVudGV4dGVuc2lvbnMvQ29udGVu
dEV4dGVuc2lvbkFjdGlvbnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lv
bnM6Ok1vZGlmeUhlYWRlcnNBY3Rpb246Ok1vZGlmeUhlYWRlckluZm86OnBhcnNlKToKKyAgICAg
ICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpSZWRpcmVjdEFjdGlvbjo6cGFyc2UpOgor
ICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OlJlZGlyZWN0QWN0aW9uOjpVUkxU
cmFuc2Zvcm1BY3Rpb246OnBhcnNlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNp
b25zOjpSZWRpcmVjdEFjdGlvbjo6VVJMVHJhbnNmb3JtQWN0aW9uOjpRdWVyeVRyYW5zZm9ybTo6
cGFyc2UpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OlJlZGlyZWN0QWN0
aW9uOjpVUkxUcmFuc2Zvcm1BY3Rpb246OlF1ZXJ5VHJhbnNmb3JtOjpRdWVyeUtleVZhbHVlOjpw
YXJzZSk6CisgICAgICAgICogY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkNvbXBp
bGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpjb21waWxlUnVs
ZUxpc3QpOgorICAgICAgICAqIGNvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25QYXJz
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OmdldERvbWFpbkxp
c3QpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6OmxvYWRUcmlnZ2VyKToK
KyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpsb2FkQWN0aW9uKToKKyAgICAg
ICAgKiBjb250ZW50ZXh0ZW5zaW9ucy9TZXJpYWxpemVkTkZBLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkNvbnRlbnRFeHRlbnNpb25zOjpTZXJpYWxpemVkTkZBOjpzZXJpYWxpemUpOgorICAgICAg
ICAqIGNvbnRlbnRleHRlbnNpb25zL1VSTEZpbHRlclBhcnNlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDb250ZW50RXh0ZW5zaW9uczo6VVJMRmlsdGVyUGFyc2VyOjpzdGF0dXNTdHJpbmcpOgor
ICAgICAgICAqIGNvbnRlbnRleHRlbnNpb25zL1VSTEZpbHRlclBhcnNlci5oOgorICAgICAgICAq
IGNyeXB0by9TdWJ0bGVDcnlwdG8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3VidGxlQ3J5cHRv
OjphZGRBdXRoZW50aWNhdGVkRW5jcnlwdGlvbldhcm5pbmdJZk5lY2Vzc2FyeSk6CisgICAgICAg
ICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQy5oOgorICAgICAgICAq
IGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DRkIuaDoKKyAgICAgICAgKiBj
cnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfQ1RSLmg6CisgICAgICAgICogY3J5
cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0dDTS5oOgorICAgICAgICAqIGNyeXB0
by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19LVy5oOgorICAgICAgICAqIGNyeXB0by9h
bGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUVDREguaDoKKyAgICAgICAgKiBjcnlwdG8vYWxnb3Jp
dGhtcy9DcnlwdG9BbGdvcml0aG1FQ0RTQS5oOgorICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1z
L0NyeXB0b0FsZ29yaXRobUhLREYuaDoKKyAgICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9Dcnlw
dG9BbGdvcml0aG1ITUFDLmg6CisgICAgICAgICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxn
b3JpdGhtUEJLREYyLmg6CisgICAgICAgICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3Jp
dGhtUlNBRVNfUEtDUzFfdjFfNS5oOgorICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0
b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81Lmg6CisgICAgICAgICogY3J5cHRvL2FsZ29yaXRo
bXMvQ3J5cHRvQWxnb3JpdGhtUlNBX09BRVAuaDoKKyAgICAgICAgKiBjcnlwdG8vYWxnb3JpdGht
cy9DcnlwdG9BbGdvcml0aG1SU0FfUFNTLmg6CisgICAgICAgICogY3J5cHRvL2FsZ29yaXRobXMv
Q3J5cHRvQWxnb3JpdGhtU0hBMS5oOgorICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0
b0FsZ29yaXRobVNIQTIyNC5oOgorICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0Fs
Z29yaXRobVNIQTI1Ni5oOgorICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29y
aXRobVNIQTM4NC5oOgorICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRo
bVNIQTUxMi5oOgorICAgICAgICAqIGNyeXB0by9rZXlzL0NyeXB0b0tleUFFUy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDcnlwdG9LZXlBRVM6OmV4cG9ydEp3ayBjb25zdCk6CisgICAgICAgICog
Y3J5cHRvL2tleXMvQ3J5cHRvS2V5RUMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvS2V5
RUM6OmV4cG9ydEp3ayBjb25zdCk6CisgICAgICAgICogY3J5cHRvL2tleXMvQ3J5cHRvS2V5SE1B
Qy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9LZXlITUFDOjpleHBvcnRKd2sgY29uc3Qp
OgorICAgICAgICAqIGNyeXB0by9rZXlzL0NyeXB0b0tleVJTQS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDcnlwdG9LZXlSU0E6OmV4cG9ydEp3ayBjb25zdCk6CisgICAgICAgICogY3NzL0NTU0Zv
bnRGYWNlU3JjVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udEZhY2VTcmNWYWx1
ZTo6aXNTdXBwb3J0ZWRGb3JtYXQgY29uc3QpOgorICAgICAgICAqIGNzcy9DU1NHcmlkVGVtcGxh
dGVBcmVhc1ZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnN0cmluZ0ZvclBvc2l0aW9uKToK
KyAgICAgICAgKiBjc3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Q1NTUHJpbWl0aXZlVmFsdWU6OnVuaXRUeXBlU3RyaW5nKToKKyAgICAgICAgKiBjc3MvQ1NTU3Vi
Z3JpZFZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1N1YmdyaWRWYWx1ZTo6Y3VzdG9t
Q1NTVGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL0RPTUNTU05hbWVzcGFjZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjp2YWx1ZVdpdGhvdXRJbXBvcnRhbnQpOgorICAgICAgICAqIGNzcy9ET01D
U1NSZWdpc3RlckN1c3RvbVByb3BlcnR5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTUNTU1Jl
Z2lzdGVyQ3VzdG9tUHJvcGVydHk6OnJlZ2lzdGVyUHJvcGVydHkpOgorICAgICAgICAqIGNzcy9E
ZXByZWNhdGVkQ1NTT01WYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZXByZWNhdGVkQ1NT
T01WYWx1ZTo6Y3NzVGV4dCBjb25zdCk6CisgICAgICAgICogY3NzL0ZvbnRGYWNlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkZvbnRGYWNlOjp1bmljb2RlUmFuZ2UgY29uc3QpOgorICAgICAgICAq
IGNzcy9NZWRpYVF1ZXJ5RXhwcmVzc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1
ZXJ5RXhwcmVzc2lvbjo6c2VyaWFsaXplIGNvbnN0KToKKyAgICAgICAgKiBjc3MvU3R5bGVQcm9w
ZXJ0aWVzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0eWxlUHJvcGVydGllczo6Z2V0TGF5ZXJl
ZFNob3J0aGFuZFZhbHVlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGFibGVTdHlsZVBy
b3BlcnRpZXM6OnNldEN1c3RvbVByb3BlcnR5KToKKyAgICAgICAgKiBjc3MvbWFrZXZhbHVlcy5w
bDoKKyAgICAgICAgKiBjc3MvcGFyc2VyL01lZGlhUXVlcnlQYXJzZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFRdWVyeVBhcnNlcjo6c2tpcFVudGlsQ29tbWEpOgorICAgICAgICAoV2Vi
Q29yZTo6TWVkaWFRdWVyeVBhcnNlcjo6cGFyc2VJbnRlcm5hbCk6CisgICAgICAgICogY3NzL3Bh
cnNlci9TaXplc0F0dHJpYnV0ZVBhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaXplc0F0
dHJpYnV0ZVBhcnNlcjo6bWVkaWFDb25kaXRpb25NYXRjaGVzKToKKyAgICAgICAgKiBjc3MvdHlw
ZWRvbS9DU1NOdW1lcmljRmFjdG9yeS5oOgorICAgICAgICAqIGNzcy90eXBlZG9tL0NTU051bWVy
aWNWYWx1ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NOdW1lcmljVmFsdWU6Om11bHRpcGx5
SW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTTnVtZXJpY1ZhbHVlOjp0byk6CisgICAg
ICAgIChXZWJDb3JlOjpDU1NOdW1lcmljVmFsdWU6OnBhcnNlKToKKyAgICAgICAgKiBjc3MvdHlw
ZWRvbS9DU1NTdHlsZVZhbHVlRmFjdG9yeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHls
ZVZhbHVlRmFjdG9yeTo6cmVpZnlWYWx1ZSk6CisgICAgICAgICogZWRpdGluZy9jb2NvYS9IVE1M
Q29udmVydGVyLm1tOgorICAgICAgICAoSFRNTENvbnZlcnRlckNhY2hlczo6cHJvcGVydHlWYWx1
ZUZvck5vZGUpOgorICAgICAgICAoSFRNTENvbnZlcnRlcjo6X3Byb2Nlc3NFbGVtZW50KToKKyAg
ICAgICAgKiBlZGl0aW5nL2NvY29hL1dlYkNvbnRlbnRSZWFkZXJDb2NvYS5tbToKKyAgICAgICAg
KFdlYkNvcmU6OmF0dGFjaG1lbnRGb3JEYXRhKToKKyAgICAgICAgKiBsb2FkZXIvY29jb2EvQnVu
ZGxlUmVzb3VyY2VMb2FkZXIubW06CisgICAgICAgIChXZWJDb3JlOjpCdW5kbGVSZXNvdXJjZUxv
YWRlcjo6bG9hZFJlc291cmNlRnJvbUJ1bmRsZSk6CisgICAgICAgICogbG9hZGVyL21hYy9Mb2Fk
ZXJOU1VSTEV4dHJhcy5tbToKKyAgICAgICAgKHN1Z2dlc3RlZEZpbGVuYW1lV2l0aE1JTUVUeXBl
KToKKyAgICAgICAgKiBwYWdlL2NvY29hL1Jlc291cmNlVXNhZ2VPdmVybGF5Q29jb2EubW06Cisg
ICAgICAgIChXZWJDb3JlOjpIaXN0b3JpY1Jlc291cmNlVXNhZ2VEYXRhOjpIaXN0b3JpY1Jlc291
cmNlVXNhZ2VEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OmRyYXdDcHVIaXN0b3J5KToKKyAgICAg
ICAgKFdlYkNvcmU6OmRyYXdHQ0hpc3RvcnkpOgorICAgICAgICAoV2ViQ29yZTo6ZHJhd01lbUhp
c3RvcnkpOgorICAgICAgICAqIHBhZ2UvY29jb2EvU2V0dGluZ3NCYXNlQ29jb2EubW06CisgICAg
ICAgIChXZWJDb3JlOjpTZXR0aW5nc0Jhc2U6OmluaXRpYWxpemVEZWZhdWx0Rm9udEZhbWlsaWVz
KToKKyAgICAgICAgKiBwYWdlL21hYy9QYWdlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6UGFn
ZTo6cGxhdGZvcm1Jbml0aWFsaXplKToKKyAgICAgICAgKiBwbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJp
bmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFYQVJJQUNvbnRlbnRHcm91cFRleHQpOgorICAg
ICAgICAqIHBsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9Q
YXN0ZWJvYXJkLmg6CisgICAgICAgICogcGxhdGZvcm0vUGFzdGVib2FyZEN1c3RvbURhdGEuaDoK
KyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9jb2NvYS9NZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2Eu
bW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2E6OnVwZGF0ZU5v
d1BsYXlpbmdJbmZvKToKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9LZXlFdmVudENvY29hLm1t
OgorICAgICAgICAoV2ViQ29yZTo6a2V5SWRlbnRpZmllckZvckNoYXJDb2RlKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9jb2NvYS9QYXN0ZWJvYXJkQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpp
bWFnZVR5cGVUb0Zha2VGaWxlbmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjpy
ZWFkKToKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9QYXN0ZWJvYXJkQ3VzdG9tRGF0YUNvY29h
Lm1tOgorICAgICAgICAoV2ViQ29yZTo6UGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm91ckNDLmg6CisgICAgICAgIChXVEY6Okxv
Z0FyZ3VtZW50PFdlYkNvcmU6OkZvdXJDQz46OnRvU3RyaW5nKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkdyYXBoaWNzQ29udGV4dEdMQU5HTEU6OnZhbGlkYXRlRGVwdGhTdGVuY2lsKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQ0RNUHJpdmF0ZU1lZGlhU291
cmNlQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkNETVByaXZhdGVNZWRpYVNvdXJjZUFW
Rk9iakM6OnBhcnNlS2V5U3lzdGVtKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmg6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVh
bWluZ0FWRk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpDRE1JbnN0YW5jZUZhaXJQbGF5U3Ry
ZWFtaW5nQVZGT2JqQzo6c2V0U3RvcmFnZURpcmVjdG9yeSk6CisgICAgICAgIChXZWJDb3JlOjpD
RE1JbnN0YW5jZVNlc3Npb25GYWlyUGxheVN0cmVhbWluZ0FWRk9iakM6OnVwZGF0ZUxpY2Vuc2Up
OgorICAgICAgICAoV2ViQ29yZTo6Q0RNSW5zdGFuY2VTZXNzaW9uRmFpclBsYXlTdHJlYW1pbmdB
VkZPYmpDOjpkaWRQcm92aWRlUmVxdWVzdHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL0NETVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMubW06CisgICAg
ICAgIChXZWJDb3JlOjpDRE1TZXNzaW9uTWVkaWFTb3VyY2VBVkZPYmpDOjpzdG9yYWdlUGF0aCBj
b25zdCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVk
aWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpzdHJlYW1TZXNzaW9uKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQ
cml2YXRlQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVB
VkZPYmpDOjpkaWRQcm92aWRlQ29udGVudEtleVJlcXVlc3RJbml0aWFsaXphdGlvbkRhdGFGb3JU
cmFja0lEKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvRGF0YURldGVjdG9ySGlnaGxpZ2h0Lm1t
OgorICAgICAgICAoV2ViQ29yZTo6RGF0YURldGVjdG9ySGlnaGxpZ2h0OjpmYWRlSW4pOgorICAg
ICAgICAoV2ViQ29yZTo6RGF0YURldGVjdG9ySGlnaGxpZ2h0OjpmYWRlT3V0KToKKyAgICAgICAg
KiBwbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMv
UGxhdGZvcm1FdmVudEZhY3RvcnlNYWMubW06CisgICAgICAgIChXZWJDb3JlOjprZXlJZGVudGlm
aWVyRm9yS2V5RXZlbnQpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1LZXlib2FyZEV2ZW50
QnVpbGRlcjo6UGxhdGZvcm1LZXlib2FyZEV2ZW50QnVpbGRlcik6CisgICAgICAgICogcGxhdGZv
cm0vbWFjL1BsYXRmb3JtUGFzdGVib2FyZE1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRm
b3JtUGFzdGVib2FyZDo6dHlwZXNTYWZlRm9yRE9NVG9SZWFkQW5kV3JpdGUgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6UGxhdGZvcm1QYXN0ZWJvYXJkOjp3cml0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpjcmVhdGVQYXN0ZWJvYXJkSXRlbSk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1N0cmlu
Z1V0aWxpdGllcy5tbToKKyAgICAgICAgKFdlYkNvcmU6OndpbGRjYXJkUmVnZXhQYXR0ZXJuU3Ry
aW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVGhyZWFkQ2hlY2subW06CisgICAgICAgIChX
ZWJDb3JlUmVwb3J0VGhyZWFkVmlvbGF0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVXNl
ckFnZW50TWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6c3RhbmRhcmRVc2VyQWdlbnRXaXRoQXBw
bGljYXRpb25OYW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlRXJyb3JC
YXNlLmNwcDoKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlRXJyb3JCYXNlLmg6
CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jb2NvYS9SYW5nZVJlc3BvbnNlR2VuZXJhdG9y
Lm1tOgorICAgICAgICAoV2ViQ29yZTo6c3ludGhlc2l6ZWRSZXNwb25zZUZvclJhbmdlKToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpp
Y29uRm9yQXR0YWNobWVudCk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxl
Q29uc3RhbnRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om9wZXJhdG9yPDwpOgorICAgICAgICAq
IHN2Zy9TVkdGaWx0ZXJFbGVtZW50Lmg6CisgICAgICAgICogc3ZnL1NWR0ZpbHRlclByaW1pdGl2
ZVN0YW5kYXJkQXR0cmlidXRlcy5oOgorICAgICAgICAqIHN2Zy9TVkdMaW5lYXJHcmFkaWVudEVs
ZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvU1ZHTWFya2VyRWxlbWVudC5oOgorICAgICAgICAqIHN2
Zy9TVkdNYXNrRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdQYXRoU2VnSW1wbC5oOgorICAg
ICAgICAqIHN2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvcHJv
cGVydGllcy9TVkdQcm9wZXJ0eVRyYWl0cy5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVy
dHlUcmFpdHM8Ym9vbD46OnRvU3RyaW5nKToKKyAgICAgICAgKiB0ZXN0aW5nL01vY2tDb250ZW50
RmlsdGVyU2V0dGluZ3MuaDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tDb250ZW50RmlsdGVyU2V0
dGluZ3M6OnVuYmxvY2tVUkxIb3N0KToKKyAgICAgICAgKiB4bWwvWFBhdGhWYWx1ZS5oOgorICAg
ICAgICAoV2ViQ29yZTo6WFBhdGg6OlZhbHVlOjpWYWx1ZSk6CisgICAgICAgICogeG1sL1hTTFN0
eWxlU2hlZXQuaDoKKwogMjAyMi0wMy0yNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29t
PgogCiAgICAgICAgIEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudCgpIHNob3Vs
ZCB0YWtlIGluIFN0cmluZ1ZpZXdzIGluc3RlYWQgb2YgU3RyaW5ncwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkdQVS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViR1BVL0NoYW5nZUxvZwppbmRleCA3Zjhl
YzNlYzdjN2VkZjEzOWQ2NzUzN2Q5OTI2MWI2ODRlMmJkNDNlLi41ZTMyYjU3ZmRmZDE4NTlhNGM2
NTc1OWEwNGJmMDY4YzA3ZGI3MWFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViR1BVL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViR1BVL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ0IEBACisyMDIyLTAz
LTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgU3RhcnQgcHJl
cGFyaW5nIFdlYkNvcmUgZm9yIG1ha2luZyB0aGUgU3RyaW5nKGNvbnN0IGNoYXIqKSBjb25zdHJ1
Y3RvciBleHBsaWNpdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjM4MzM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgU3RhcnQgcHJlcGFyaW5nIFdlYkNvcmUgZm9yIG1ha2luZyB0aGUgU3RyaW5nKGNvbnN0
IGNoYXIqKSBjb25zdHJ1Y3RvciBleHBsaWNpdC4KKyAgICAgICAgTWFraW5nIHRoaXMgY29uc3Ry
dWN0b3IgZXhwbGljaXQgaGVscHMgY2F0Y2ggYXQgY29tcGlsZSB0aW1lIGNhc2VzIHdoZXJlIHRo
ZSAiIl9zCisgICAgICAgIHByZWZpeCBpcyBtaXNzaW5nIG9uIFN0cmluZyBsaXRlcmFscy4KKwor
ICAgICAgICAqIFdHU0wvUGFyc2VyLmNwcDoKKyAgICAgICAgKFdHU0w6OlBhcnNlcjxMZXhlcj46
OnBhcnNlR2xvYmFsRGVjbCk6CisgICAgICAgIChXR1NMOjpQYXJzZXI8TGV4ZXI+OjpwYXJzZUF0
dHJpYnV0ZSk6CisgICAgICAgIChXR1NMOjpQYXJzZXI8TGV4ZXI+OjpwYXJzZVR5cGVEZWNsKToK
KyAgICAgICAgKFdHU0w6OlBhcnNlcjxMZXhlcj46OnBhcnNlU3RvcmFnZUNsYXNzKToKKyAgICAg
ICAgKFdHU0w6OlBhcnNlcjxMZXhlcj46OnBhcnNlQWNjZXNzTW9kZSk6CisgICAgICAgIChXR1NM
OjpQYXJzZXI8TGV4ZXI+OjpwYXJzZVN0YXRlbWVudCk6CisgICAgICAgIChXR1NMOjpQYXJzZXI8
TGV4ZXI+OjpwYXJzZVByaW1hcnlFeHByZXNzaW9uKToKKyAgICAgICAgKFdHU0w6OlBhcnNlcjxM
ZXhlcj46OnBhcnNlQ29yZUxIU0V4cHJlc3Npb24pOgorICAgICAgICAqIFdHU0wvVG9rZW4uY3Bw
OgorICAgICAgICAoV0dTTDo6dG9TdHJpbmcpOgorICAgICAgICAqIFdlYkdQVS9BZGFwdGVyLm1t
OgorICAgICAgICAoV2ViR1BVOjpBZGFwdGVyOjpyZXF1ZXN0RGV2aWNlKToKKyAgICAgICAgKiBX
ZWJHUFUvQnVmZmVyLm1tOgorICAgICAgICAoV2ViR1BVOjpCdWZmZXI6Om1hcEFzeW5jKToKKyAg
ICAgICAgKFdlYkdQVTo6QnVmZmVyOjp1bm1hcCk6CisgICAgICAgICogV2ViR1BVL0NvbW1hbmRF
bmNvZGVyLm1tOgorICAgICAgICAoV2ViR1BVOjpDb21tYW5kRW5jb2Rlcjo6Y29weUJ1ZmZlclRv
QnVmZmVyKToKKyAgICAgICAgKFdlYkdQVTo6Q29tbWFuZEVuY29kZXI6OmNsZWFyQnVmZmVyKToK
KyAgICAgICAgKFdlYkdQVTo6Q29tbWFuZEVuY29kZXI6OmZpbmlzaCk6CisgICAgICAgICogV2Vi
R1BVL0NvbXB1dGVQaXBlbGluZS5tbToKKyAgICAgICAgKFdlYkdQVTo6Y3JlYXRlQ29uc3RhbnRW
YWx1ZXMpOgorICAgICAgICAoV2ViR1BVOjpEZXZpY2U6OmNyZWF0ZUNvbXB1dGVQaXBlbGluZSk6
CisgICAgICAgICogV2ViR1BVL1F1ZXVlLm1tOgorICAgICAgICAoV2ViR1BVOjpRdWV1ZTo6c3Vi
bWl0KToKKyAgICAgICAgKiBXZWJHUFUvU2FtcGxlci5tbToKKyAgICAgICAgKFdlYkdQVTo6RGV2
aWNlOjpjcmVhdGVTYW1wbGVyKToKKyAgICAgICAgKiBXZWJHUFUvU2hhZGVyTW9kdWxlLm1tOgor
ICAgICAgICAoV2ViR1BVOjplYXJseUNvbXBpbGVTaGFkZXJNb2R1bGUpOgorCiAyMDIyLTAzLTI0
ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgW1dl
YkdQVV0gRml4IHRoZSB3YXRjaE9TIGJ1aWxkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDNiZTMwOWVhYmY5N2IzYzQ0
MGY2YWRhZTY4Y2I5YmFiNDhiN2FkYWIuLmNkNDgyN2EzMzY3MTM1YWExMTdiNjE4NTU5NDI2Yzcy
Yzc0ZjIxNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjItMDMtMjQgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBTdGFydCBwcmVwYXJpbmcgV2ViQ29y
ZSBmb3IgbWFraW5nIHRoZSBTdHJpbmcoY29uc3QgY2hhciopIGNvbnN0cnVjdG9yIGV4cGxpY2l0
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzgzMzYK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdGFydCBw
cmVwYXJpbmcgV2ViQ29yZSBmb3IgbWFraW5nIHRoZSBTdHJpbmcoY29uc3QgY2hhciopIGNvbnN0
cnVjdG9yIGV4cGxpY2l0LgorICAgICAgICBNYWtpbmcgdGhpcyBjb25zdHJ1Y3RvciBleHBsaWNp
dCBoZWxwcyBjYXRjaCBhdCBjb21waWxlIHRpbWUgY2FzZXMgd2hlcmUgdGhlICIiX3MKKyAgICAg
ICAgcHJlZml4IGlzIG1pc3Npbmcgb24gU3RyaW5nIGxpdGVyYWxzLgorCisgICAgICAgICogVUlQ
cm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1w
bDo6c2V0UHJvbWlzZWREYXRhRm9ySW1hZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1w
bDo6cmVxdWVzdERPTVBhc3RlQWNjZXNzKToKKwogMjAyMi0wMy0yNCAgQnJlbnQgRnVsZ2hhbSAg
PGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXF1aXJlIGNsaWNrLXRvLXBsYXkgZm9y
IG1lZGlhIGluIENhcHRpdmUgUG9ydGFscyAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdh
Y3kvbWFjL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwppbmRl
eCBhNGJhNTFlZDgyZWYxODY3MjQ2MDE0NWIwMjY5YWIxYjljY2EyMzBkLi4wNzY1YWQ5NTY4NDBl
YmRiMDJkNjA3ZDkwMTRlMTNjMjY2YTk1OGI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0TGVn
YWN5L21hYy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTcgQEAKKzIwMjItMDMtMjQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxl
LmNvbT4KKworICAgICAgICBTdGFydCBwcmVwYXJpbmcgV2ViQ29yZSBmb3IgbWFraW5nIHRoZSBT
dHJpbmcoY29uc3QgY2hhciopIGNvbnN0cnVjdG9yIGV4cGxpY2l0CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzgzMzYKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdGFydCBwcmVwYXJpbmcgV2ViQ29yZSBm
b3IgbWFraW5nIHRoZSBTdHJpbmcoY29uc3QgY2hhciopIGNvbnN0cnVjdG9yIGV4cGxpY2l0Lgor
ICAgICAgICBNYWtpbmcgdGhpcyBjb25zdHJ1Y3RvciBleHBsaWNpdCBoZWxwcyBjYXRjaCBhdCBj
b21waWxlIHRpbWUgY2FzZXMgd2hlcmUgdGhlICIiX3MKKyAgICAgICAgcHJlZml4IGlzIG1pc3Np
bmcgb24gU3RyaW5nIGxpdGVyYWxzLgorCisgICAgICAgICogTWlzYy9XZWJOU1Bhc3RlYm9hcmRF
eHRyYXMubW06CisgICAgICAgICgtW05TUGFzdGVib2FyZCBfd2ViX2RlY2xhcmVBbmRXcml0ZURy
YWdJbWFnZUZvckVsZW1lbnQ6VVJMOnRpdGxlOmFyY2hpdmU6c291cmNlOl0pOgorCiAyMDIyLTAz
LTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgRmlsZVN5c3Rl
bTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KCkgc2hvdWxkIHRha2UgaW4gU3RyaW5nVmlld3Mg
aW5zdGVhZCBvZiBTdHJpbmdzCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJ
L0pTVmFsdWUubW0gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmFsdWUubW0KaW5kZXgg
ZDNhZDA4MGUxZGRmNGZlNmVmYmE5MTM1YmEyNjg3NmM3N2RjYmMyNi4uZjEyYTJjNDk1M2YwMDMy
ZGZiNGI3MmY2OGZmODBmZWRkYjY5MDM1NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL0FQSS9KU1ZhbHVlLm1tCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWYWx1
ZS5tbQpAQCAtMTE3OSw3ICsxMTc5LDcgQEAgc3RhdGljIFN0cnVjdEhhbmRsZXJzKiBjcmVhdGVT
dHJ1Y3RIYW5kbGVyTWFwKCkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgLy8gVHJ5IHRv
IGZpbmQgYSBtYXRjaGluZyB2YWx1ZVdpdGg8Rm9vPjpjb250ZXh0OiBtZXRob2QuCiAgICAgICAg
IGF1dG8gdHlwZSA9IGFkb3B0U3lzdGVtPGNoYXJbXT4obWV0aG9kX2NvcHlSZXR1cm5UeXBlKG1l
dGhvZCkpOwotICAgICAgICBTdHJ1Y3RIYW5kbGVyczo6aXRlcmF0b3IgaXRlciA9IHN0cnVjdEhh
bmRsZXJzLT5maW5kKHR5cGUuZ2V0KCkpOworICAgICAgICBTdHJ1Y3RIYW5kbGVyczo6aXRlcmF0
b3IgaXRlciA9IHN0cnVjdEhhbmRsZXJzLT5maW5kKFN0cmluZyB7IHR5cGUuZ2V0KCkgfSk7CiAg
ICAgICAgIGlmIChpdGVyID09IHN0cnVjdEhhbmRsZXJzLT5lbmQoKSkKICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgU3RydWN0VGFnSGFuZGxlciYgaGFuZGxlciA9IGl0ZXItPnZhbHVlOwpA
QCAtMTIxNyw3ICsxMjE3LDcgQEAgc3RhdGljIFN0cnVjdFRhZ0hhbmRsZXIqIGhhbmRlckZvclN0
cnVjdFRhZyhjb25zdCBjaGFyKiBlbmNvZGVkVHlwZSkKIAogICAgIHN0YXRpYyBTdHJ1Y3RIYW5k
bGVycyogc3RydWN0SGFuZGxlcnMgPSBjcmVhdGVTdHJ1Y3RIYW5kbGVyTWFwKCk7CiAKLSAgICBT
dHJ1Y3RIYW5kbGVyczo6aXRlcmF0b3IgaXRlciA9IHN0cnVjdEhhbmRsZXJzLT5maW5kKGVuY29k
ZWRUeXBlKTsKKyAgICBTdHJ1Y3RIYW5kbGVyczo6aXRlcmF0b3IgaXRlciA9IHN0cnVjdEhhbmRs
ZXJzLT5maW5kKFN0cmluZyB7IGVuY29kZWRUeXBlIH0pOwogICAgIGlmIChpdGVyID09IHN0cnVj
dEhhbmRsZXJzLT5lbmQoKSkKICAgICAgICAgcmV0dXJuIDA7CiAgICAgcmV0dXJuICZpdGVyLT52
YWx1ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNXcmFwcGVyTWFw
Lm1tIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1dyYXBwZXJNYXAubW0KaW5kZXggOTZl
NDQ3ODg3MGNkODFhNTg5OTdkMDJkYTZmYTRmYmEzNDZhZjE5NS4uZjgyMWRmOGUzZWJlZDU3ZjU0
MGNkMmYwMWQ2NGVjOTZkY2ZhODZjZCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0FQSS9KU1dyYXBwZXJNYXAubW0KKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0FQSS9KU1dy
YXBwZXJNYXAubW0KQEAgLTQ1MSw3ICs0NTEsNyBAQCBzdGF0aWMgSlNDOjpKU09iamVjdCogYWxs
b2NhdGVDb25zdHJ1Y3RvckZvckN1c3RvbUNsYXNzKEpTQ29udGV4dCAqY29udGV4dCwgY29ucwog
ICAgICAgICBmb3JFYWNoTWV0aG9kSW5DbGFzcyhjdXJyZW50Q2xhc3MsIF4oTWV0aG9kIG1ldGhv
ZCkgewogICAgICAgICAgICAgU0VMIHNlbGVjdG9yID0gbWV0aG9kX2dldE5hbWUobWV0aG9kKTsK
ICAgICAgICAgICAgIGNvbnN0IGNoYXIqIG5hbWUgPSBzZWxfZ2V0TmFtZShzZWxlY3Rvcik7Ci0g
ICAgICAgICAgICBhdXRvIGl0ZXIgPSBpbml0VGFibGUuZmluZChuYW1lKTsKKyAgICAgICAgICAg
IGF1dG8gaXRlciA9IGluaXRUYWJsZS5maW5kKFN0cmluZyB7IG5hbWUgfSk7CiAKICAgICAgICAg
ICAgIGlmIChpdGVyID09IGluaXRUYWJsZS5lbmQoKSkKICAgICAgICAgICAgICAgICByZXR1cm47
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRTdHJlYW0uaCBiL1NvdXJjZS9X
VEYvd3RmL3RleHQvVGV4dFN0cmVhbS5oCmluZGV4IGM4NWRhNjY0MWUxMzE3M2M5NzExNTdiYTRh
OTgzYjQ0ZjU0NjViYTUuLmRmNzEyZWQyMDVmNDc5Nzk3YmI2ZDlmNTA2N2Q2MTQzMTFjNjUwYTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL3RleHQvVGV4dFN0cmVhbS5oCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL3RleHQvVGV4dFN0cmVhbS5oCkBAIC0xMDAsNiArMTAwLDE1IEBAIHB1YmxpYzoK
ICAgICAgICAgdHMuZW5kR3JvdXAoKTsKICAgICB9CiAKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBU
PgorICAgIHZvaWQgZHVtcFByb3BlcnR5KGNvbnN0IGNoYXIqIG5hbWUsIGNvbnN0IFQmIHZhbHVl
KQorICAgIHsKKyAgICAgICAgVGV4dFN0cmVhbSYgdHMgPSAqdGhpczsKKyAgICAgICAgdHMuc3Rh
cnRHcm91cCgpOworICAgICAgICB0cyA8PCBuYW1lIDw8ICIgIiA8PCB2YWx1ZTsKKyAgICAgICAg
dHMuZW5kR3JvdXAoKTsKKyAgICB9CisKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgU3RyaW5nIHJl
bGVhc2UoKTsKICAgICAKICAgICBXVEZfRVhQT1JUX1BSSVZBVEUgdm9pZCBzdGFydEdyb3VwKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5LWFtcy11aS9BcHBs
ZVBheUFNU1VJUGF5bWVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBs
ZXBheS1hbXMtdWkvQXBwbGVQYXlBTVNVSVBheW1lbnRIYW5kbGVyLmNwcAppbmRleCBmNGRhZjhk
MThhZWM0OTk3NzVkNWMwM2MwOGVhYTA0MzI0MTE0M2ZiLi40YTMyMjVjZTljYTQwNmMwMGZlMTY4
NDYwYTVkNmQwMzAwNDI4NTU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Fw
cGxlcGF5LWFtcy11aS9BcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXktYW1zLXVpL0FwcGxlUGF5QU1TVUlQYXltZW50SGFu
ZGxlci5jcHAKQEAgLTM5LDcgKzM5LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogc3RhdGljIEV4
Y2VwdGlvbk9yPEFwcGxlUGF5QU1TVUlSZXF1ZXN0PiBjb252ZXJ0QW5kVmFsaWRhdGVBcHBsZVBh
eUFNU1VJUmVxdWVzdChEb2N1bWVudCYgZG9jdW1lbnQsIEpTQzo6SlNWYWx1ZSBkYXRhKQogewog
ICAgIGlmIChkYXRhLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVF
cnJvciwgIk1pc3NpbmcgcGF5bWVudCBtZXRob2QgZGF0YS4iIH07CisgICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBUeXBlRXJyb3IsICJNaXNzaW5nIHBheW1lbnQgbWV0aG9kIGRhdGEuIl9zIH07
CiAKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKGRvY3VtZW50LnZt
KCkpOwogICAgIGF1dG8gYXBwbGVQYXlBTVNVSVJlcXVlc3QgPSBjb252ZXJ0RGljdGlvbmFyeTxB
cHBsZVBheUFNU1VJUmVxdWVzdD4oKmRvY3VtZW50Lmdsb2JhbE9iamVjdCgpLCBkYXRhKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlDb250YWN0
RmllbGQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUNvbnRh
Y3RGaWVsZC5jcHAKaW5kZXggZGQzZGNiNGVjN2RkNGE2YWYzOTBiZWQ2YzFhN2YyYTE0MjMxMzUy
NC4uMzcxYjllZDQyMzI4N2Q5NzczNTU5YTVjZjhhNTFiNjc5N2VmM2FjMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUNvbnRhY3RGaWVsZC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheUNvbnRhY3RGaWVs
ZC5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAgRXhjZXB0aW9uT3I8QXBwbGVQYXlTZXNzaW9uUGF5bWVu
dFJlcXVlc3Q6OkNvbnRhY3RGaWVsZHM+IGNvbnZlcnRBbmRWYWxpZGF0ZSh1bnMKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICBjYXNlIEFwcGxlUGF5Q29udGFjdEZpZWxkOjpQaG9uZXRpY05h
bWU6CiAgICAgICAgICAgICBpZiAodmVyc2lvbiA8IDMpCi0gICAgICAgICAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIlwicGhvbmV0aWNOYW1lXCIgaXMgbm90IGEgdmFsaWQg
Y29udGFjdCBmaWVsZC4iIH07CisgICAgICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5
cGVFcnJvciwgIlwicGhvbmV0aWNOYW1lXCIgaXMgbm90IGEgdmFsaWQgY29udGFjdCBmaWVsZC4i
X3MgfTsKICAgICAgICAgICAgIHJlc3VsdC5waG9uZXRpY05hbWUgPSB0cnVlOwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQXBwbGVQYXlDb250YWN0RmllbGQ6OlBob25lOgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheU1lcmNoYW50
Q2FwYWJpbGl0eS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5
TWVyY2hhbnRDYXBhYmlsaXR5LmNwcAppbmRleCBhNjJhMmM3M2VhMzA2NTUxYmVlODVkYzk1NjE3
YzExNjI1NjUzYmMyLi5mNjg0YmM5YWM2MWQ0OTlhNTVjYTRlMTgxZjU3YjQ2OTE3MjU3OWExIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5TWVyY2hh
bnRDYXBhYmlsaXR5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0Fw
cGxlUGF5TWVyY2hhbnRDYXBhYmlsaXR5LmNwcApAQCAtMzMsNyArMzMsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiBFeGNlcHRpb25PcjxBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6TWVy
Y2hhbnRDYXBhYmlsaXRpZXM+IGNvbnZlcnRBbmRWYWxpZGF0ZShjb25zdCBWZWN0b3I8QXBwbGVQ
YXlNZXJjaGFudENhcGFiaWxpdHk+JiBtZXJjaGFudENhcGFiaWxpdGllcykKIHsKICAgICBpZiAo
bWVyY2hhbnRDYXBhYmlsaXRpZXMuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9u
IHsgVHlwZUVycm9yLCAiQXQgbGVhc3Qgb25lIG1lcmNoYW50IGNhcGFiaWxpdHkgbXVzdCBiZSBw
cm92aWRlZC4iIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJBdCBs
ZWFzdCBvbmUgbWVyY2hhbnQgY2FwYWJpbGl0eSBtdXN0IGJlIHByb3ZpZGVkLiJfcyB9OwogCiAg
ICAgQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6Ok1lcmNoYW50Q2FwYWJpbGl0aWVzIHJl
c3VsdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBs
ZVBheVJlcXVlc3RCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBw
bGVQYXlSZXF1ZXN0QmFzZS5jcHAKaW5kZXggMjQ1ODZkNWRkNDc5YzkwOTNkNDlmOTYxMDExOTFj
YWE4ZTg1MDk3ZS4uOGQzNjI3YTZmNmEyN2ZiOGM4MmM5M2FkNTQ2ZDZhYWYwNjliZjEzMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVJlcXVlc3RC
YXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5UmVx
dWVzdEJhc2UuY3BwCkBAIC03Myw3ICs3Myw3IEBAIEV4Y2VwdGlvbk9yPEFwcGxlUGF5U2Vzc2lv
blBheW1lbnRSZXF1ZXN0PiBjb252ZXJ0QW5kVmFsaWRhdGUoRG9jdW1lbnQmIGRvY3VtZW50CiAg
ICAgcmVzdWx0LnNldE1lcmNoYW50Q2FwYWJpbGl0aWVzKG1lcmNoYW50Q2FwYWJpbGl0aWVzLnJl
bGVhc2VSZXR1cm5WYWx1ZSgpKTsKIAogICAgIGlmIChyZXF1aXJlc1N1cHBvcnRlZE5ldHdvcmtz
KHZlcnNpb24sIHJlcXVlc3QpICYmIHJlcXVlc3Quc3VwcG9ydGVkTmV0d29ya3MuaXNFbXB0eSgp
KQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiQXQgbGVhc3Qgb25lIHN1
cHBvcnRlZCBuZXR3b3JrIG11c3QgYmUgcHJvdmlkZWQuIiB9OworICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgVHlwZUVycm9yLCAiQXQgbGVhc3Qgb25lIHN1cHBvcnRlZCBuZXR3b3JrIG11c3Qg
YmUgcHJvdmlkZWQuIl9zIH07CiAKICAgICBhdXRvIHN1cHBvcnRlZE5ldHdvcmtzID0gY29udmVy
dEFuZFZhbGlkYXRlKGRvY3VtZW50LCB2ZXJzaW9uLCByZXF1ZXN0LnN1cHBvcnRlZE5ldHdvcmtz
LCBwYXltZW50Q29vcmRpbmF0b3IpOwogICAgIGlmIChzdXBwb3J0ZWROZXR3b3Jrcy5oYXNFeGNl
cHRpb24oKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBw
bGVQYXlTZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQ
YXlTZXNzaW9uLmNwcAppbmRleCA2Y2JmY2YwNzk3NTAxYTk5NjI5ZmNjNjkzNmI2ZjA1MGYwY2Zj
ODlhLi41OWUzMDBiZWI3MDkyNmVmOTgzYWVjYmE2ZDRhZTViNmU3YjA2NWM2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2Vzc2lvbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNlc3Npb24uY3BwCkBA
IC0zMTAsMTAgKzMxMCwxMCBAQCBFeGNlcHRpb25PcjxSZWY8QXBwbGVQYXlTZXNzaW9uPj4gQXBw
bGVQYXlTZXNzaW9uOjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCB1bgogICAgICAgICByZXR1
cm4gY2FuQ2FsbC5yZWxlYXNlRXhjZXB0aW9uKCk7CiAKICAgICBpZiAoIVVzZXJHZXN0dXJlSW5k
aWNhdG9yOjpwcm9jZXNzaW5nVXNlckdlc3R1cmUoKSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlv
biB7IEludmFsaWRBY2Nlc3NFcnJvciwgIk11c3QgY3JlYXRlIGEgbmV3IEFwcGxlUGF5U2Vzc2lv
biBmcm9tIGEgdXNlciBnZXN0dXJlIGhhbmRsZXIuIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiTXVzdCBjcmVhdGUgYSBuZXcgQXBwbGVQYXlTZXNz
aW9uIGZyb20gYSB1c2VyIGdlc3R1cmUgaGFuZGxlci4iX3MgfTsKIAogICAgIGlmICghZG9jdW1l
bnQucGFnZSgpKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9y
LCAiRnJhbWUgaXMgZGV0YWNoZWQiIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZh
bGlkQWNjZXNzRXJyb3IsICJGcmFtZSBpcyBkZXRhY2hlZCJfcyB9OwogCiAgICAgYXV0byBjb252
ZXJ0ZWRQYXltZW50UmVxdWVzdCA9IGNvbnZlcnRBbmRWYWxpZGF0ZShkb2N1bWVudCwgdmVyc2lv
biwgV1RGTW92ZShwYXltZW50UmVxdWVzdCksIGRvY3VtZW50LnBhZ2UoKS0+cGF5bWVudENvb3Jk
aW5hdG9yKCkpOwogICAgIGlmIChjb252ZXJ0ZWRQYXltZW50UmVxdWVzdC5oYXNFeGNlcHRpb24o
KSkKQEAgLTQxMiw3ICs0MTIsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBBcHBsZVBheVNlc3Npb246
Om9wZW5QYXltZW50U2V0dXAoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBTdAogICAgICAgICBy
ZXR1cm4gY2FuQ2FsbC5yZWxlYXNlRXhjZXB0aW9uKCk7CiAKICAgICBpZiAoIVVzZXJHZXN0dXJl
SW5kaWNhdG9yOjpwcm9jZXNzaW5nVXNlckdlc3R1cmUoKSkKLSAgICAgICAgcmV0dXJuIEV4Y2Vw
dGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwgIk11c3QgY2FsbCBBcHBsZVBheVNlc3Npb24ub3Bl
blBheW1lbnRTZXR1cCBmcm9tIGEgdXNlciBnZXN0dXJlIGhhbmRsZXIuIiB9OworICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiTXVzdCBjYWxsIEFwcGxlUGF5
U2Vzc2lvbi5vcGVuUGF5bWVudFNldHVwIGZyb20gYSB1c2VyIGdlc3R1cmUgaGFuZGxlci4iX3Mg
fTsKIAogICAgIGF1dG8qIHBhZ2UgPSBkb2N1bWVudC5wYWdlKCk7CiAgICAgaWYgKCFwYWdlKQpA
QCAtNDMxLDEzICs0MzEsMTMgQEAgRXhjZXB0aW9uT3I8dm9pZD4gQXBwbGVQYXlTZXNzaW9uOjpv
cGVuUGF5bWVudFNldHVwKERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgU3QKIEV4Y2VwdGlvbk9y
PHZvaWQ+IEFwcGxlUGF5U2Vzc2lvbjo6YmVnaW4oRG9jdW1lbnQmIGRvY3VtZW50KQogewogICAg
IGlmICghY2FuQmVnaW4oKSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nl
c3NFcnJvciwgIlBheW1lbnQgc2Vzc2lvbiBpcyBhbHJlYWR5IGFjdGl2ZS4iIH07CisgICAgICAg
IHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJQYXltZW50IHNlc3Npb24g
aXMgYWxyZWFkeSBhY3RpdmUuIl9zIH07CiAKICAgICBpZiAocGF5bWVudENvb3JkaW5hdG9yKCku
aGFzQWN0aXZlU2Vzc2lvbigpKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFj
Y2Vzc0Vycm9yLCAiUGFnZSBhbHJlYWR5IGhhcyBhbiBhY3RpdmUgcGF5bWVudCBzZXNzaW9uLiIg
fTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwgIlBhZ2Ug
YWxyZWFkeSBoYXMgYW4gYWN0aXZlIHBheW1lbnQgc2Vzc2lvbi4iX3MgfTsKIAogICAgIGlmICgh
cGF5bWVudENvb3JkaW5hdG9yKCkuYmVnaW5QYXltZW50U2Vzc2lvbihkb2N1bWVudCwgKnRoaXMs
IG1fcGF5bWVudFJlcXVlc3QpKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFj
Y2Vzc0Vycm9yLCAiVGhlcmUgaXMgYWxyZWFkeSBoYXMgYW4gYWN0aXZlIHBheW1lbnQgc2Vzc2lv
bi4iIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJU
aGVyZSBpcyBhbHJlYWR5IGhhcyBhbiBhY3RpdmUgcGF5bWVudCBzZXNzaW9uLiJfcyB9OwogCiAg
ICAgbV9zdGF0ZSA9IFN0YXRlOjpBY3RpdmU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTZXR1cC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2V0dXAuY3BwCmluZGV4IGU4YjEzNjE2OTBiMjBlYWY3ZTFj
NjE2YTc3MmE4ZjYxM2RlZmYzNDguLjg5ZTRhNDU1ZjE4NWY4MTkwYzdlYzBkNzYxNzg0ZDU5NDZi
YzYxNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQ
YXlTZXR1cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBh
eVNldHVwLmNwcApAQCAtOTEsNyArOTEsNyBAQCB2b2lkIEFwcGxlUGF5U2V0dXA6OmJlZ2luKERv
Y3VtZW50JiBkb2N1bWVudCwgVmVjdG9yPFJlZlB0cjxBcHBsZVBheVNldHVwRmVhdHVyZQogICAg
IH0KIAogICAgIGlmICghVXNlckdlc3R1cmVJbmRpY2F0b3I6OnByb2Nlc3NpbmdVc2VyR2VzdHVy
ZSgpKSB7Ci0gICAgICAgIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NF
cnJvciwgIk11c3QgY2FsbCBBcHBsZVBheVNldHVwLmJlZ2luIGZyb20gYSB1c2VyIGdlc3R1cmUg
aGFuZGxlci4iIH0pOworICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlk
QWNjZXNzRXJyb3IsICJNdXN0IGNhbGwgQXBwbGVQYXlTZXR1cC5iZWdpbiBmcm9tIGEgdXNlciBn
ZXN0dXJlIGhhbmRsZXIuIl9zIH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRJbnN0YWxsbWVudENv
bmZpZ3VyYXRpb24ubW0gYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRJ
bnN0YWxsbWVudENvbmZpZ3VyYXRpb24ubW0KaW5kZXggNjRkMWRiYjIxMmU3MDJjMDJiMmI4MmNk
MWU2OGU4MGU3NzNmMDg3MC4uOTljNzRkNjg5MTY0OTA3MjI1MGRlYzQ5Yjk2ZDAwY2NhNmM2ZTE3
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50SW5z
dGFsbG1lbnRDb25maWd1cmF0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBw
bGVwYXkvUGF5bWVudEluc3RhbGxtZW50Q29uZmlndXJhdGlvbi5tbQpAQCAtMjA3LDcgKzIwNyw3
IEBAIEV4Y2VwdGlvbk9yPFBheW1lbnRJbnN0YWxsbWVudENvbmZpZ3VyYXRpb24+IFBheW1lbnRJ
bnN0YWxsbWVudENvbmZpZ3VyYXRpb246OmNyCiAgICAgICAgIE5TRGF0YSAqYXBwbGljYXRpb25N
ZXRhZGF0YSA9IFtjb25maWd1cmF0aW9uLmFwcGxpY2F0aW9uTWV0YWRhdGEgZGF0YVVzaW5nRW5j
b2Rpbmc6TlNVVEY4U3RyaW5nRW5jb2RpbmddOwogICAgICAgICBhcHBsaWNhdGlvbk1ldGFkYXRh
RGljdGlvbmFyeSA9IGR5bmFtaWNfb2JqY19jYXN0PE5TRGljdGlvbmFyeT4oW05TSlNPTlNlcmlh
bGl6YXRpb24gSlNPTk9iamVjdFdpdGhEYXRhOmFwcGxpY2F0aW9uTWV0YWRhdGEgb3B0aW9uczow
IGVycm9yOm5pbF0pOwogICAgICAgICBpZiAoIWFwcGxpY2F0aW9uTWV0YWRhdGFEaWN0aW9uYXJ5
KQotICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgImFwcGxpY2F0aW9u
TWV0YWRhdGEgbXVzdCBiZSBhIEpTT04gb2JqZWN0IiB9OworICAgICAgICAgICAgcmV0dXJuIEV4
Y2VwdGlvbiB7IFR5cGVFcnJvciwgImFwcGxpY2F0aW9uTWV0YWRhdGEgbXVzdCBiZSBhIEpTT04g
b2JqZWN0Il9zIH07CiAgICAgfQogCiAgICAgcmV0dXJuIFBheW1lbnRJbnN0YWxsbWVudENvbmZp
Z3VyYXRpb24oY29uZmlndXJhdGlvbiwgYXBwbGljYXRpb25NZXRhZGF0YURpY3Rpb25hcnkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50UmVxdWVz
dFZhbGlkYXRvci5tbSBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvUGF5bWVudFJl
cXVlc3RWYWxpZGF0b3IubW0KaW5kZXggZjEwYzU1ZDQ5NGExMWMzMGMwYTEwNWUxYmZiNjE0Mzkw
ODY2OGM0MC4uYzUyZmQ5MmQwOGQzZGM0ZTMzYWY3ZTBmZGJiZTNlMGM4ZThjZWNhOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50UmVxdWVzdFZhbGlk
YXRvci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRSZXF1
ZXN0VmFsaWRhdG9yLm1tCkBAIC05NSwxOCArOTUsMTggQEAgRXhjZXB0aW9uT3I8dm9pZD4gUGF5
bWVudFJlcXVlc3RWYWxpZGF0b3I6OnZhbGlkYXRlKGNvbnN0IEFwcGxlUGF5U2Vzc2lvblBheW1l
bnQKIEV4Y2VwdGlvbk9yPHZvaWQ+IFBheW1lbnRSZXF1ZXN0VmFsaWRhdG9yOjp2YWxpZGF0ZVRv
dGFsKGNvbnN0IEFwcGxlUGF5TGluZUl0ZW0mIHRvdGFsKQogewogICAgIGlmICghdG90YWwubGFi
ZWwpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJNaXNzaW5nIHRvdGFs
IGxhYmVsLiIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIk1pc3Np
bmcgdG90YWwgbGFiZWwuIl9zIH07CiAKICAgICBpZiAoIXRvdGFsLmFtb3VudCkKLSAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIk1pc3NpbmcgdG90YWwgYW1vdW50LiIgfTsK
KyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIk1pc3NpbmcgdG90YWwgYW1v
dW50LiJfcyB9OwogCiAgICAgZG91YmxlIGFtb3VudCA9IFtOU0RlY2ltYWxOdW1iZXIgZGVjaW1h
bE51bWJlcldpdGhTdHJpbmc6dG90YWwuYW1vdW50IGxvY2FsZTpAeyBOU0xvY2FsZURlY2ltYWxT
ZXBhcmF0b3IgOiBAIi4iIH1dLmRvdWJsZVZhbHVlOwogCiAgICAgaWYgKGFtb3VudCA8IDApCi0g
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJUb3RhbCBhbW91bnQgbXVzdCBu
b3QgYmUgbmVnYXRpdmUuIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9y
LCAiVG90YWwgYW1vdW50IG11c3Qgbm90IGJlIG5lZ2F0aXZlLiJfcyB9OwogCiAgICAgaWYgKGFt
b3VudCA+IDEwMDAwMDAwMCkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwg
IlRvdGFsIGFtb3VudCBpcyB0b28gYmlnLiIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7
IFR5cGVFcnJvciwgIlRvdGFsIGFtb3VudCBpcyB0b28gYmlnLiJfcyB9OwogCiAgICAgcmV0dXJu
IHsgfTsKIH0KQEAgLTExNCw3ICsxMTQsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBQYXltZW50UmVx
dWVzdFZhbGlkYXRvcjo6dmFsaWRhdGVUb3RhbChjb25zdCBBcHBsZVBheUxpbmVJdGVtJgogc3Rh
dGljIEV4Y2VwdGlvbk9yPHZvaWQ+IHZhbGlkYXRlQ291bnRyeUNvZGUoY29uc3QgU3RyaW5nJiBj
b3VudHJ5Q29kZSkKIHsKICAgICBpZiAoIWNvdW50cnlDb2RlKQotICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgVHlwZUVycm9yLCAiTWlzc2luZyBjb3VudHJ5IGNvZGUuIiB9OworICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiTWlzc2luZyBjb3VudHJ5IGNvZGUuIl9zIH07
CiAKICAgICBmb3IgKGF1dG8gKmNvdW50cnlDb2RlUHRyID0gdWxvY19nZXRJU09Db3VudHJpZXMo
KTsgKmNvdW50cnlDb2RlUHRyOyArK2NvdW50cnlDb2RlUHRyKSB7CiAgICAgICAgIGlmIChjb3Vu
dHJ5Q29kZSA9PSAqY291bnRyeUNvZGVQdHIpCkBAIC0xMjcsNyArMTI3LDcgQEAgc3RhdGljIEV4
Y2VwdGlvbk9yPHZvaWQ+IHZhbGlkYXRlQ291bnRyeUNvZGUoY29uc3QgU3RyaW5nJiBjb3VudHJ5
Q29kZSkKIHN0YXRpYyBFeGNlcHRpb25Pcjx2b2lkPiB2YWxpZGF0ZUN1cnJlbmN5Q29kZShjb25z
dCBTdHJpbmcmIGN1cnJlbmN5Q29kZSkKIHsKICAgICBpZiAoIWN1cnJlbmN5Q29kZSkKLSAgICAg
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIk1pc3NpbmcgY3VycmVuY3kgY29kZS4i
IH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJNaXNzaW5nIGN1cnJl
bmN5IGNvZGUuIl9zIH07CiAKICAgICBVRXJyb3JDb2RlIGVycm9yQ29kZSA9IFVfWkVST19FUlJP
UjsKICAgICBhdXRvIGN1cnJlbmN5Q29kZXMgPSBzdGQ6OnVuaXF1ZV9wdHI8VUVudW1lcmF0aW9u
LCBJQ1VEZWxldGVyPHVlbnVtX2Nsb3NlPj4odWN1cnJfb3BlbklTT0N1cnJlbmNpZXMoVUNVUlJf
QUxMLCAmZXJyb3JDb2RlKSk7CkBAIC0xNDQsNyArMTQ0LDcgQEAgc3RhdGljIEV4Y2VwdGlvbk9y
PHZvaWQ+IHZhbGlkYXRlQ3VycmVuY3lDb2RlKGNvbnN0IFN0cmluZyYgY3VycmVuY3lDb2RlKQog
c3RhdGljIEV4Y2VwdGlvbk9yPHZvaWQ+IHZhbGlkYXRlTWVyY2hhbnRDYXBhYmlsaXRpZXMoY29u
c3QgQXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q6Ok1lcmNoYW50Q2FwYWJpbGl0aWVzJiBt
ZXJjaGFudENhcGFiaWxpdGllcykKIHsKICAgICBpZiAoIW1lcmNoYW50Q2FwYWJpbGl0aWVzLnN1
cHBvcnRzM0RTICYmICFtZXJjaGFudENhcGFiaWxpdGllcy5zdXBwb3J0c0VNViAmJiAhbWVyY2hh
bnRDYXBhYmlsaXRpZXMuc3VwcG9ydHNDcmVkaXQgJiYgIW1lcmNoYW50Q2FwYWJpbGl0aWVzLnN1
cHBvcnRzRGViaXQpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJNaXNz
aW5nIG1lcmNoYW50IGNhcGFiaWxpdGllcy4iIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBUeXBlRXJyb3IsICJNaXNzaW5nIG1lcmNoYW50IGNhcGFiaWxpdGllcy4iX3MgfTsKIAogICAg
IHJldHVybiB7IH07CiB9CkBAIC0xNTIsNyArMTUyLDcgQEAgc3RhdGljIEV4Y2VwdGlvbk9yPHZv
aWQ+IHZhbGlkYXRlTWVyY2hhbnRDYXBhYmlsaXRpZXMoY29uc3QgQXBwbGVQYXlTZXNzaW9uUGF5
bWUKIHN0YXRpYyBFeGNlcHRpb25Pcjx2b2lkPiB2YWxpZGF0ZVN1cHBvcnRlZE5ldHdvcmtzKGNv
bnN0IFZlY3RvcjxTdHJpbmc+JiBzdXBwb3J0ZWROZXR3b3JrcykKIHsKICAgICBpZiAoc3VwcG9y
dGVkTmV0d29ya3MuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVy
cm9yLCAiTWlzc2luZyBzdXBwb3J0ZWQgbmV0d29ya3MuIiB9OworICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgVHlwZUVycm9yLCAiTWlzc2luZyBzdXBwb3J0ZWQgbmV0d29ya3MuIl9zIH07CiAK
ICAgICByZXR1cm4geyB9OwogfQpAQCAtMTYxLDcgKzE2MSw3IEBAIHN0YXRpYyBFeGNlcHRpb25P
cjx2b2lkPiB2YWxpZGF0ZVNoaXBwaW5nTWV0aG9kKGNvbnN0IEFwcGxlUGF5U2hpcHBpbmdNZXRo
b2QmIHNoCiB7CiAgICAgTlNEZWNpbWFsTnVtYmVyICphbW91bnQgPSBbTlNEZWNpbWFsTnVtYmVy
IGRlY2ltYWxOdW1iZXJXaXRoU3RyaW5nOnNoaXBwaW5nTWV0aG9kLmFtb3VudCBsb2NhbGU6QHsg
TlNMb2NhbGVEZWNpbWFsU2VwYXJhdG9yIDogQCIuIiB9XTsKICAgICBpZiAoYW1vdW50LmludGVn
ZXJWYWx1ZSA8IDApCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJTaGlw
cGluZyBtZXRob2QgYW1vdW50IG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHplcm8u
IiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiU2hpcHBpbmcgbWV0
aG9kIGFtb3VudCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB6ZXJvLiJfcyB9Owog
CiAgICAgcmV0dXJuIHsgfTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
YXBwbGVwYXkvUGF5bWVudFNlc3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBs
ZXBheS9QYXltZW50U2Vzc2lvbi5jcHAKaW5kZXggOTRmOTQ1OWI5YjQ0OGE5ODQyZWIwZjQwMjNj
NjQyYTA2OGU4M2M3MS4uMmU4ZjY2ZWE4M2MxZDQ3MmRhMTg3YzA4MzZiNTgxNzZjYmFkOTFhMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50U2Vzc2lv
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50U2Vzc2lv
bi5jcHAKQEAgLTUyLDI0ICs1MiwyNCBAQCBFeGNlcHRpb25Pcjx2b2lkPiBQYXltZW50U2Vzc2lv
bjo6Y2FuQ3JlYXRlU2Vzc2lvbihEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBTZWN1cml0eUVycm9yLCAiVGhpcmQtcGFydHkgaWZyYW1lcyBhcmUgbm90IGFs
bG93ZWQgdG8gcmVxdWVzdCBwYXltZW50cyB1bmxlc3MgZXhwbGljaXRseSBhbGxvd2VkIHZpYSBG
ZWF0dXJlLVBvbGljeSAocGF5bWVudCkiX3MgfTsKIAogICAgIGlmICghZG9jdW1lbnQuZnJhbWUo
KSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwgIlRyeWlu
ZyB0byBzdGFydCBhbiBBcHBsZSBQYXkgc2Vzc2lvbiBmcm9tIGFuIGluYWN0aXZlIGRvY3VtZW50
LiIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwgIlRy
eWluZyB0byBzdGFydCBhbiBBcHBsZSBQYXkgc2Vzc2lvbiBmcm9tIGFuIGluYWN0aXZlIGRvY3Vt
ZW50LiJfcyB9OwogCiAgICAgaWYgKCFpc1NlY3VyZSgqZG9jdW1lbnQubG9hZGVyKCkpKQotICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiVHJ5aW5nIHRvIHN0
YXJ0IGFuIEFwcGxlIFBheSBzZXNzaW9uIGZyb20gYW4gaW5zZWN1cmUgZG9jdW1lbnQuIiB9Owor
ICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiVHJ5aW5nIHRv
IHN0YXJ0IGFuIEFwcGxlIFBheSBzZXNzaW9uIGZyb20gYW4gaW5zZWN1cmUgZG9jdW1lbnQuIl9z
IH07CiAKICAgICBhdXRvJiB0b3BEb2N1bWVudCA9IGRvY3VtZW50LnRvcERvY3VtZW50KCk7CiAg
ICAgaWYgKCZkb2N1bWVudCAhPSAmdG9wRG9jdW1lbnQpIHsKICAgICAgICAgYXV0byYgdG9wT3Jp
Z2luID0gdG9wRG9jdW1lbnQudG9wT3JpZ2luKCk7CiAKICAgICAgICAgaWYgKCFkb2N1bWVudC5z
ZWN1cml0eU9yaWdpbigpLmlzU2FtZVNjaGVtZUhvc3RQb3J0KHRvcE9yaWdpbikpCi0gICAgICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiVHJ5aW5nIHRvIHN0
YXJ0IGFuIEFwcGxlIFBheSBzZXNzaW9uIGZyb20gYSBkb2N1bWVudCB3aXRoIGFuIGRpZmZlcmVu
dCBzZWN1cml0eSBvcmlnaW4gdGhhbiBpdHMgdG9wLWxldmVsIGZyYW1lLiIgfTsKKyAgICAgICAg
ICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJUcnlpbmcgdG8gc3Rh
cnQgYW4gQXBwbGUgUGF5IHNlc3Npb24gZnJvbSBhIGRvY3VtZW50IHdpdGggYW4gZGlmZmVyZW50
IHNlY3VyaXR5IG9yaWdpbiB0aGFuIGl0cyB0b3AtbGV2ZWwgZnJhbWUuIl9zIH07CiAKICAgICAg
ICAgZm9yIChhdXRvKiBhbmNlc3RvckRvY3VtZW50ID0gZG9jdW1lbnQucGFyZW50RG9jdW1lbnQo
KTsgYW5jZXN0b3JEb2N1bWVudCAhPSAmdG9wRG9jdW1lbnQ7IGFuY2VzdG9yRG9jdW1lbnQgPSBh
bmNlc3RvckRvY3VtZW50LT5wYXJlbnREb2N1bWVudCgpKSB7CiAgICAgICAgICAgICBpZiAoIWlz
U2VjdXJlKCphbmNlc3RvckRvY3VtZW50LT5sb2FkZXIoKSkpCi0gICAgICAgICAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwgIlRyeWluZyB0byBzdGFydCBhbiBB
cHBsZSBQYXkgc2Vzc2lvbiBmcm9tIGEgZG9jdW1lbnQgd2l0aCBhbiBpbnNlY3VyZSBwYXJlbnQg
ZnJhbWUuIiB9OworICAgICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNj
ZXNzRXJyb3IsICJUcnlpbmcgdG8gc3RhcnQgYW4gQXBwbGUgUGF5IHNlc3Npb24gZnJvbSBhIGRv
Y3VtZW50IHdpdGggYW4gaW5zZWN1cmUgcGFyZW50IGZyYW1lLiJfcyB9OwogCiAgICAgICAgICAg
ICBpZiAoIWFuY2VzdG9yRG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCkuaXNTYW1lU2NoZW1lSG9z
dFBvcnQodG9wT3JpZ2luKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52
YWxpZEFjY2Vzc0Vycm9yLCAiVHJ5aW5nIHRvIHN0YXJ0IGFuIEFwcGxlIFBheSBzZXNzaW9uIGZy
b20gYSBkb2N1bWVudCB3aXRoIGFuIGRpZmZlcmVudCBzZWN1cml0eSBvcmlnaW4gdGhhbiBpdHMg
dG9wLWxldmVsIGZyYW1lLiIgfTsKKyAgICAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
SW52YWxpZEFjY2Vzc0Vycm9yLCAiVHJ5aW5nIHRvIHN0YXJ0IGFuIEFwcGxlIFBheSBzZXNzaW9u
IGZyb20gYSBkb2N1bWVudCB3aXRoIGFuIGRpZmZlcmVudCBzZWN1cml0eSBvcmlnaW4gdGhhbiBp
dHMgdG9wLWxldmVsIGZyYW1lLiJfcyB9OwogICAgICAgICB9CiAgICAgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5
UGF5bWVudEhhbmRsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9wYXlt
ZW50cmVxdWVzdC9BcHBsZVBheVBheW1lbnRIYW5kbGVyLmNwcAppbmRleCA3MDU1MWFlODY0NDg5
YzllNjc3Y2Q5MjE1M2Y1ZDFlMjI3YTQwMjU0Li5lYjU2YjkxZTVmZWRhYzY2YTc5ZDA0NmEzYmZl
YzhkYjI5Mjc1ZDdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5
L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVudEhhbmRsZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQYXltZW50SGFu
ZGxlci5jcHAKQEAgLTg5LDcgKzg5LDcgQEAgc3RhdGljIGlubGluZSBQYXltZW50Q29vcmRpbmF0
b3ImIHBheW1lbnRDb29yZGluYXRvcihEb2N1bWVudCYgZG9jdW1lbnQpCiBzdGF0aWMgRXhjZXB0
aW9uT3I8QXBwbGVQYXlSZXF1ZXN0PiBjb252ZXJ0QW5kVmFsaWRhdGVBcHBsZVBheVJlcXVlc3Qo
RG9jdW1lbnQmIGRvY3VtZW50LCBKU0M6OkpTVmFsdWUgZGF0YSkKIHsKICAgICBpZiAoZGF0YS5p
c0VtcHR5KCkpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJNaXNzaW5n
IHBheW1lbnQgbWV0aG9kIGRhdGEuIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlw
ZUVycm9yLCAiTWlzc2luZyBwYXltZW50IG1ldGhvZCBkYXRhLiJfcyB9OwogCiAgICAgYXV0byB0
aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRShkb2N1bWVudC52bSgpKTsKICAgICBhdXRv
IGFwcGxlUGF5UmVxdWVzdCA9IGNvbnZlcnREaWN0aW9uYXJ5PEFwcGxlUGF5UmVxdWVzdD4oKmRv
Y3VtZW50Lmdsb2JhbE9iamVjdCgpLCBkYXRhKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvYXBwbGljYXRpb25tYW5pZmVzdC9BcHBsaWNhdGlvbk1hbmlmZXN0UGFyc2VyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGljYXRpb25tYW5pZmVzdC9BcHBsaWNhdGlv
bk1hbmlmZXN0UGFyc2VyLmNwcAppbmRleCA2ZGZmZjQ3YjdlMmNiODliNTRmOTVlYzQ2MjdkM2Q3
Y2U2OTBmOTBiLi5jNWQxMzAzOGNmYzY3ZjQ1YTQ2ZTY4YzljYzQ1MjEwNzNkNzZhNTc0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxpY2F0aW9ubWFuaWZlc3QvQXBwbGlj
YXRpb25NYW5pZmVzdFBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBs
aWNhdGlvbm1hbmlmZXN0L0FwcGxpY2F0aW9uTWFuaWZlc3RQYXJzZXIuY3BwCkBAIC0yMzEsNyAr
MjMxLDcgQEAgVmVjdG9yPEFwcGxpY2F0aW9uTWFuaWZlc3Q6Okljb24+IEFwcGxpY2F0aW9uTWFu
aWZlc3RQYXJzZXI6OnBhcnNlSWNvbnMoY29uc3QgSlMKICAgICAgICAgICAgICAgICBjdXJyZW50
SWNvbi5wdXJwb3NlcyA9IHB1cnBvc2VzOwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAg
ICAgICAgICBwdXJwb3NlU3RyaW5nVmFsdWUgPSBwdXJwb3NlU3RyaW5nVmFsdWUuc3RyaXBXaGl0
ZVNwYWNlKCkuY29udmVydFRvQVNDSUlMb3dlcmNhc2UoKTsKLSAgICAgICAgICAgICAgICBWZWN0
b3I8U3RyaW5nPiBrZXl3b3JkcyA9IHB1cnBvc2VTdHJpbmdWYWx1ZS5zcGxpdEFsbG93aW5nRW1w
dHlFbnRyaWVzKCIgIik7CisgICAgICAgICAgICAgICAgVmVjdG9yPFN0cmluZz4ga2V5d29yZHMg
PSBwdXJwb3NlU3RyaW5nVmFsdWUuc3BsaXRBbGxvd2luZ0VtcHR5RW50cmllcygiICJfcyk7CiAK
ICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIGtleXdvcmQgOiBrZXl3b3Jkcykgewog
ICAgICAgICAgICAgICAgICAgICBpZiAoa2V5d29yZCA9PSAibW9ub2Nocm9tZSIpCkBAIC0yODIs
OSArMjgyLDkgQEAgc3RhdGljIGJvb2wgaXNJblNjb3BlKGNvbnN0IFVSTCYgc2NvcGVVUkwsIGNv
bnN0IFVSTCYgdGFyZ2V0VVJMKQogCiBVUkwgQXBwbGljYXRpb25NYW5pZmVzdFBhcnNlcjo6cGFy
c2VTY29wZShjb25zdCBKU09OOjpPYmplY3QmIG1hbmlmZXN0LCBjb25zdCBVUkwmIGRvY3VtZW50
VVJMLCBjb25zdCBVUkwmIHN0YXJ0VVJMKQogewotICAgIFVSTCBkZWZhdWx0U2NvcGUgeyBzdGFy
dFVSTCwgIi4vIiB9OworICAgIFVSTCBkZWZhdWx0U2NvcGUgeyBzdGFydFVSTCwgIi4vIl9zIH07
CiAKLSAgICBhdXRvIHZhbHVlID0gbWFuaWZlc3QuZ2V0VmFsdWUoInNjb3BlIik7CisgICAgYXV0
byB2YWx1ZSA9IG1hbmlmZXN0LmdldFZhbHVlKCJzY29wZSJfcyk7CiAgICAgaWYgKCF2YWx1ZSkK
ICAgICAgICAgcmV0dXJuIGRlZmF1bHRTY29wZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9jYWNoZS9XaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlQ2FjaGVzLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZUNhY2hl
cy5jcHAKaW5kZXggYTE3NDk1ZDc2NTk2NTZmZTJkZDljY2EzZDM3MTEyMjFmZTQ4ZDEwNC4uZGZl
MTg4ZmMwZWZmZGFjMmJlZjBlOWFjZGU5NmMzZWY2MmI4NmE2MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9XaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlQ2FjaGVzLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL1dpbmRvd09yV29ya2VyR2xvYmFs
U2NvcGVDYWNoZXMuY3BwCkBAIC0xMjcsNyArMTI3LDcgQEAgRE9NQ2FjaGVTdG9yYWdlKiBXb3Jr
ZXJHbG9iYWxTY29wZUNhY2hlczo6Y2FjaGVzKCkgY29uc3QKIEV4Y2VwdGlvbk9yPERPTUNhY2hl
U3RvcmFnZSo+IFdpbmRvd09yV29ya2VyR2xvYmFsU2NvcGVDYWNoZXM6OmNhY2hlcyhTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBET01XaW5kb3cmIHdpbmRvdykKIHsKICAgICBpZiAo
ZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpLmlzU2FuZGJveGVkKFNhbmRib3hPcmlnaW4pKQot
ICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgU2VjdXJpdHlFcnJvciwgIkNhY2hlIHN0b3JhZ2Ug
aXMgZGlzYWJsZWQgYmVjYXVzZSB0aGUgY29udGV4dCBpcyBzYW5kYm94ZWQgYW5kIGxhY2tzIHRo
ZSAnYWxsb3ctc2FtZS1vcmlnaW4nIGZsYWciIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBTZWN1cml0eUVycm9yLCAiQ2FjaGUgc3RvcmFnZSBpcyBkaXNhYmxlZCBiZWNhdXNlIHRoZSBj
b250ZXh0IGlzIHNhbmRib3hlZCBhbmQgbGFja3MgdGhlICdhbGxvdy1zYW1lLW9yaWdpbicgZmxh
ZyJfcyB9OwogCiAgICAgaWYgKCF3aW5kb3cuaXNDdXJyZW50bHlEaXNwbGF5ZWRJbkZyYW1lKCkp
CiAgICAgICAgIHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9lbmNyeXB0ZWRtZWRpYS9Jbml0RGF0YVJlZ2lzdHJ5LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvSW5pdERhdGFSZWdpc3RyeS5jcHAKaW5kZXggNmY4ODhl
MTc4NThkZGE2ZDk0NzFlYzFmNmVmNWQwNjZkZjBlNDk5MC4uOGNkYmNhNzdhZjM4MzA3YjJiNGMw
YTRkMjVhMWYwZTkxMWFiYjFkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9l
bmNyeXB0ZWRtZWRpYS9Jbml0RGF0YVJlZ2lzdHJ5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2VuY3J5cHRlZG1lZGlhL0luaXREYXRhUmVnaXN0cnkuY3BwCkBAIC0xMDUsNyArMTA1
LDcgQEAgc3RhdGljIFJlZlB0cjxGcmFnbWVudGVkU2hhcmVkQnVmZmVyPiBzYW5pdGl6ZUtleWlk
cyhjb25zdCBGcmFnbWVudGVkU2hhcmVkQnVmZmUKICAgICBhdXRvIGtpZHNBcnJheSA9IEpTT046
OkFycmF5OjpjcmVhdGUoKTsKICAgICBmb3IgKGF1dG8mIGJ1ZmZlciA6IGtleUlEQnVmZmVyLnZh
bHVlKCkpCiAgICAgICAgIGtpZHNBcnJheS0+cHVzaFN0cmluZyhiYXNlNjRVUkxFbmNvZGVUb1N0
cmluZyhidWZmZXItPm1ha2VDb250aWd1b3VzKCktPmRhdGEoKSwgYnVmZmVyLT5zaXplKCkpKTsK
LSAgICBvYmplY3QtPnNldEFycmF5KCJraWRzIiwgV1RGTW92ZShraWRzQXJyYXkpKTsKKyAgICBv
YmplY3QtPnNldEFycmF5KCJraWRzIl9zLCBXVEZNb3ZlKGtpZHNBcnJheSkpOwogCiAgICAgQ1N0
cmluZyBqc29uRGF0YSA9IG9iamVjdC0+dG9KU09OU3RyaW5nKCkudXRmOCgpOwogICAgIHJldHVy
biBTaGFyZWRCdWZmZXI6OmNyZWF0ZShqc29uRGF0YS5kYXRhKCksIGpzb25EYXRhLmxlbmd0aCgp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW50cmllc2FwaS9ET01GaWxl
U3lzdGVtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW50cmllc2FwaS9ET01GaWxlU3lz
dGVtLmNwcAppbmRleCA5ZjQ4MWRjNjI5YWE3N2E2MGRhNWM1ZWUwNDRhNzM2YmQ0NmQzZDIwLi45
YWNhNjE4YjVkNmM3MmUyNDI0NTk0YjlhMTlkZTFhNGUwNGY5YzhlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2VudHJpZXNhcGkvRE9NRmlsZVN5c3RlbS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9lbnRyaWVzYXBpL0RPTUZpbGVTeXN0ZW0uY3BwCkBAIC01OSw3
ICs1OSw3IEBAIHN0YXRpYyBFeGNlcHRpb25PcjxWZWN0b3I8TGlzdGVkQ2hpbGQ+PiBsaXN0RGly
ZWN0b3J5V2l0aE1ldGFkYXRhKGNvbnN0IFN0cmluZyYKIHsKICAgICBBU1NFUlQoIWlzTWFpblRo
cmVhZCgpKTsKICAgICBpZiAoRmlsZVN5c3RlbTo6ZmlsZVR5cGUoZnVsbFBhdGgpICE9IEZpbGVT
eXN0ZW06OkZpbGVUeXBlOjpEaXJlY3RvcnkpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBO
b3RGb3VuZEVycm9yLCAiUGF0aCBubyBsb25nZXIgZXhpc3RzIG9yIGlzIG5vIGxvbmdlciBhIGRp
cmVjdG9yeSIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdEZvdW5kRXJyb3IsICJQ
YXRoIG5vIGxvbmdlciBleGlzdHMgb3IgaXMgbm8gbG9uZ2VyIGEgZGlyZWN0b3J5Il9zIH07CiAK
ICAgICBhdXRvIGNoaWxkTmFtZXMgPSBGaWxlU3lzdGVtOjpsaXN0RGlyZWN0b3J5KGZ1bGxQYXRo
KTsKICAgICBWZWN0b3I8TGlzdGVkQ2hpbGQ+IGxpc3RlZENoaWxkcmVuOwpAQCAtMTgzLDcgKzE4
Myw3IEBAIHN0YXRpYyBFeGNlcHRpb25PcjxTdHJpbmc+IHZhbGlkYXRlUGF0aElzRXhwZWN0ZWRU
eXBlKGNvbnN0IFN0cmluZyYgZnVsbFBhdGgsIFN0CiAgICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBOb3RGb3VuZEVycm9yLCAiUGF0aCBkb2VzIG5vdCBleGlzdCJfcyB9OwogCiAgICAgaWYgKCpm
aWxlVHlwZSAhPSBleHBlY3RlZFR5cGUpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBl
TWlzbWF0Y2hFcnJvciwgIkVudHJ5IGF0IHBhdGggZG9lcyBub3QgaGF2ZSBleHBlY3RlZCB0eXBl
IiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZU1pc21hdGNoRXJyb3IsICJFbnRy
eSBhdCBwYXRoIGRvZXMgbm90IGhhdmUgZXhwZWN0ZWQgdHlwZSJfcyB9OwogCiAgICAgcmV0dXJu
IFdURk1vdmUodmlydHVhbFBhdGgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9mZXRjaC9GZXRjaEJvZHlDb25zdW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2ZldGNoL0ZldGNoQm9keUNvbnN1bWVyLmNwcAppbmRleCA5MzZhN2U0MzA1NmM0NTVlMjliMjU1
MGZiNDAxMGJlZWVjM2IzNWViLi42ZjZkYzY3Y2MzNGI4ZDQwN2FiZjZkZTQ2NGM1MjljNzQyMzZk
NWYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keUNv
bnN1bWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keUNv
bnN1bWVyLmNwcApAQCAtMTUwLDEwICsxNTAsMTAgQEAgUmVmUHRyPERPTUZvcm1EYXRhPiBGZXRj
aEJvZHlDb25zdW1lcjo6cGFja2FnZUZvcm1EYXRhKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGMK
ICAgICAgICAgICAgIGNvbnRlbnREaXNwb3NpdGlvblBhcmFtZXRlcnNCZWdpbisrOwogCiAgICAg
ICAgIGF1dG8gcGFyYW1ldGVycyA9IHBhcnNlUGFyYW1ldGVycyhTdHJpbmdWaWV3KGhlYWRlciku
c3Vic3RyaW5nKGNvbnRlbnREaXNwb3NpdGlvblBhcmFtZXRlcnNCZWdpbiwgY29udGVudERpc3Bv
c2l0aW9uRW5kIC0gY29udGVudERpc3Bvc2l0aW9uUGFyYW1ldGVyc0JlZ2luKSwgMCk7Ci0gICAg
ICAgIFN0cmluZyBuYW1lID0gcGFyYW1ldGVycy5nZXQoIm5hbWUiKTsKKyAgICAgICAgU3RyaW5n
IG5hbWUgPSBwYXJhbWV0ZXJzLmdldCgibmFtZSJfcyk7CiAgICAgICAgIGlmICghbmFtZSkKICAg
ICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgU3RyaW5nIGZpbGVuYW1lID0gcGFyYW1l
dGVycy5nZXQoImZpbGVuYW1lIik7CisgICAgICAgIFN0cmluZyBmaWxlbmFtZSA9IHBhcmFtZXRl
cnMuZ2V0KCJmaWxlbmFtZSJfcyk7CiAgICAgICAgIGlmICghZmlsZW5hbWUpCiAgICAgICAgICAg
ICBmb3JtLmFwcGVuZChuYW1lLCBTdHJpbmc6OmZyb21VVEY4KGJvZHlCZWdpbiwgYm9keUxlbmd0
aCkpOwogICAgICAgICBlbHNlIHsKQEAgLTE3Niw3ICsxNzYsNyBAQCBSZWZQdHI8RE9NRm9ybURh
dGE+IEZldGNoQm9keUNvbnN1bWVyOjpwYWNrYWdlRm9ybURhdGEoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogYwogICAgICAgICBpZiAoIW1pbWVUeXBlKQogICAgICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKICAgICAgICAgaWYgKGVxdWFsSWdub3JpbmdBU0NJSUNhc2UobWltZVR5cGUtPnR5
cGUsICJtdWx0aXBhcnQiKSAmJiBlcXVhbElnbm9yaW5nQVNDSUlDYXNlKG1pbWVUeXBlLT5zdWJ0
eXBlLCAiZm9ybS1kYXRhIikpIHsKLSAgICAgICAgICAgIGF1dG8gaXRlcmF0b3IgPSBtaW1lVHlw
ZS0+cGFyYW1ldGVycy5maW5kKCJib3VuZGFyeSIpOworICAgICAgICAgICAgYXV0byBpdGVyYXRv
ciA9IG1pbWVUeXBlLT5wYXJhbWV0ZXJzLmZpbmQoImJvdW5kYXJ5Il9zKTsKICAgICAgICAgICAg
IGlmIChpdGVyYXRvciAhPSBtaW1lVHlwZS0+cGFyYW1ldGVycy5lbmQoKSkKICAgICAgICAgICAg
ICAgICByZXR1cm4gaXRlcmF0b3ItPnZhbHVlOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoSGVhZGVycy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2ZldGNoL0ZldGNoSGVhZGVycy5jcHAKaW5kZXggMDkwZjVjZjRkMGZmMTE1ZDg0
YmY3MzNiN2E3YjE1YjM0ZjJlM2E1Zi4uMjZhZjA4ZjFhZDVlMTRjYmQxYWVkNzRlZmRlYTNmMWFk
MzhiZTYxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEhl
YWRlcnMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hIZWFkZXJz
LmNwcApAQCAtMTAyLDcgKzEwMiw3IEBAIHN0YXRpYyBFeGNlcHRpb25Pcjx2b2lkPiBmaWxsSGVh
ZGVyTWFwKEhUVFBIZWFkZXJNYXAmIGhlYWRlcnMsIGNvbnN0IEZldGNoSGVhZGVyCiAgICAgICAg
IGF1dG8mIHNlcXVlbmNlID0gc3RkOjpnZXQ8VmVjdG9yPFZlY3RvcjxTdHJpbmc+Pj4oaGVhZGVy
c0luaXQpOwogICAgICAgICBmb3IgKGF1dG8mIGhlYWRlciA6IHNlcXVlbmNlKSB7CiAgICAgICAg
ICAgICBpZiAoaGVhZGVyLnNpemUoKSAhPSAyKQotICAgICAgICAgICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBUeXBlRXJyb3IsICJIZWFkZXIgc3ViLXNlcXVlbmNlIG11c3QgY29udGFpbiBleGFj
dGx5IHR3byBpdGVtcyIgfTsKKyAgICAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlw
ZUVycm9yLCAiSGVhZGVyIHN1Yi1zZXF1ZW5jZSBtdXN0IGNvbnRhaW4gZXhhY3RseSB0d28gaXRl
bXMiX3MgfTsKICAgICAgICAgICAgIGF1dG8gcmVzdWx0ID0gYXBwZW5kVG9IZWFkZXJNYXAoaGVh
ZGVyWzBdLCBoZWFkZXJbMV0sIGhlYWRlcnMsIGd1YXJkKTsKICAgICAgICAgICAgIGlmIChyZXN1
bHQuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNl
RXhjZXB0aW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0Zl
dGNoTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hMb2FkZXIu
Y3BwCmluZGV4IDdjZWEzMmE5NThmMTRiZDhjODc4YmM1MWY0OWMxZDFhZGE2ZDZhMzcuLmY3NDMz
OGU4ZDMyMjI3MGEzODBmMjQ5YTY0MmU0ZWEwZjkyMjg2ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmV0Y2gvRmV0Y2hMb2FkZXIuY3BwCkBAIC02OSw3ICs2OSw3IEBAIHZvaWQgRmV0
Y2hMb2FkZXI6OnN0YXJ0TG9hZGluZ0Jsb2JVUkwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29u
dGV4dCwgY29uc3QgVVJMCiAKICAgICBSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdChtX3VybEZvclJl
YWRpbmcpOwogICAgIHJlcXVlc3Quc2V0SW5pdGlhdG9ySWRlbnRpZmllcihjb250ZXh0LnJlc291
cmNlUmVxdWVzdElkZW50aWZpZXIoKSk7Ci0gICAgcmVxdWVzdC5zZXRIVFRQTWV0aG9kKCJHRVQi
KTsKKyAgICByZXF1ZXN0LnNldEhUVFBNZXRob2QoIkdFVCJfcyk7CiAKICAgICBUaHJlYWRhYmxl
TG9hZGVyT3B0aW9ucyBvcHRpb25zOwogICAgIG9wdGlvbnMuc2VuZExvYWRDYWxsYmFja3MgPSBT
ZW5kQ2FsbGJhY2tQb2xpY3k6OlNlbmRDYWxsYmFja3M7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFu
ZGxlLmNwcAppbmRleCAwZTk1ZmZkZWU0YWY4NTRlODdlMjUzYTljZGU4NjM0MmY1YTJlZGY4Li5h
YTMyYTliYjIyZmI0YmJmOTNiYWRkNjFkMTI4OGJiZjkwOGQzZDVmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lz
dGVtRmlsZUhhbmRsZS5jcHAKQEAgLTU1LDcgKzU1LDcgQEAgRmlsZVN5c3RlbUZpbGVIYW5kbGU6
OkZpbGVTeXN0ZW1GaWxlSGFuZGxlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFN0
cmkKIHZvaWQgRmlsZVN5c3RlbUZpbGVIYW5kbGU6OmdldEZpbGUoRE9NUHJvbWlzZURlZmVycmVk
PElETEludGVyZmFjZTxGaWxlPj4mJiBwcm9taXNlKQogewogICAgIGlmIChpc0Nsb3NlZCgpKQot
ICAgICAgICByZXR1cm4gcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJy
b3IsICJIYW5kbGUgaXMgY2xvc2VkIiB9KTsKKyAgICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0
KEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiSGFuZGxlIGlzIGNsb3NlZCJfcyB9KTsK
IAogICAgIGNvbm5lY3Rpb24oKS5nZXRGaWxlKGlkZW50aWZpZXIoKSwgW3Byb3RlY3RlZFRoaXMg
PSBSZWYgeyAqdGhpcyB9LCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQp
IG11dGFibGUgewogICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQpAQCAtNzIsNyAr
NzIsNyBAQCB2b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpnZXRGaWxlKERPTVByb21pc2VEZWZl
cnJlZDxJRExJbnRlcmZhY2U8RmlsZT4+JiYgcHJvbQogdm9pZCBGaWxlU3lzdGVtRmlsZUhhbmRs
ZTo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZShET01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNl
PEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlPj4mJiBwcm9taXNlKQogewogICAgIGlmIChpc0Ns
b3NlZCgpKQotICAgICAgICByZXR1cm4gcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxp
ZFN0YXRlRXJyb3IsICJIYW5kbGUgaXMgY2xvc2VkIiB9KTsKKyAgICAgICAgcmV0dXJuIHByb21p
c2UucmVqZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiSGFuZGxlIGlzIGNsb3Nl
ZCJfcyB9KTsKIAogICAgIGNvbm5lY3Rpb24oKS5jcmVhdGVTeW5jQWNjZXNzSGFuZGxlKGlkZW50
aWZpZXIoKSwgW3Byb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9LCBwcm9taXNlID0gV1RGTW92
ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgewogICAgICAgICBpZiAocmVzdWx0Lmhh
c0V4Y2VwdGlvbigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lz
dGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
aWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuY3BwCmluZGV4IDBiOWY3ODhlNDkwM2Zh
N2U3YWU0Mjg5N2EwMDJiOTZlOGRmZTEzZDcuLjllMGNjODc0YjBjNzM0NDU3YzQ5YzRjMzg2ZGFj
MmIzYmY0ZGU1OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5jcHAKQEAgLTYwLDcgKzYwLDcgQEAg
dm9pZCBGaWxlU3lzdGVtSGFuZGxlOjpjbG9zZSgpCiB2b2lkIEZpbGVTeXN0ZW1IYW5kbGU6Omlz
U2FtZUVudHJ5KEZpbGVTeXN0ZW1IYW5kbGUmIGhhbmRsZSwgRE9NUHJvbWlzZURlZmVycmVkPElE
TEJvb2xlYW4+JiYgcHJvbWlzZSkgY29uc3QKIHsKICAgICBpZiAoaXNDbG9zZWQoKSkKLSAgICAg
ICAgcmV0dXJuIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAi
SGFuZGxlIGlzIGNsb3NlZCIgfSk7CisgICAgICAgIHJldHVybiBwcm9taXNlLnJlamVjdChFeGNl
cHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkhhbmRsZSBpcyBjbG9zZWQiX3MgfSk7CiAKICAg
ICBpZiAobV9raW5kICE9IGhhbmRsZS5raW5kKCkgfHwgbV9uYW1lICE9IGhhbmRsZS5uYW1lKCkp
CiAgICAgICAgIHJldHVybiBwcm9taXNlLnJlc29sdmUoZmFsc2UpOwpAQCAtNzMsNyArNzMsNyBA
QCB2b2lkIEZpbGVTeXN0ZW1IYW5kbGU6OmlzU2FtZUVudHJ5KEZpbGVTeXN0ZW1IYW5kbGUmIGhh
bmRsZSwgRE9NUHJvbWlzZURlZmVycmVkPAogdm9pZCBGaWxlU3lzdGVtSGFuZGxlOjptb3ZlKEZp
bGVTeXN0ZW1IYW5kbGUmIGRlc3RpbmF0aW9uSGFuZGxlLCBjb25zdCBTdHJpbmcmIG5ld05hbWUs
IERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCiB7CiAgICAgaWYgKGlzQ2xvc2Vk
KCkpCi0gICAgICAgIHJldHVybiBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3Rh
dGVFcnJvciwgIkhhbmRsZSBpcyBjbG9zZWQiIH0pOworICAgICAgICByZXR1cm4gcHJvbWlzZS5y
ZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJIYW5kbGUgaXMgY2xvc2VkIl9z
IH0pOwogCiAgICAgaWYgKGRlc3RpbmF0aW9uSGFuZGxlLmtpbmQoKSAhPSBLaW5kOjpEaXJlY3Rv
cnkpCiAgICAgICAgIHJldHVybiBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBUeXBlTWlzbWF0
Y2hFcnJvciB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L0lEQktleURhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5
RGF0YS5jcHAKaW5kZXggMmEzN2M1MjhlZjViZjlkOTU3NzNhMGIxMGYwMjUyMjliZGU1YTQxOC4u
NDYwZjE3NGEzODFhYjZhYmE0Y2EyOTgzMTQ1MjY5OGI1ZDUyOTBkMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5RGF0YS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5RGF0YS5jcHAKQEAgLTE0OSwzNSArMTQ5
LDM1IEBAIHZvaWQgSURCS2V5RGF0YTo6aXNvbGF0ZWRDb3B5KGNvbnN0IElEQktleURhdGEmIHNv
dXJjZSwgSURCS2V5RGF0YSYgZGVzdGluYXRpb24pCiAKIHZvaWQgSURCS2V5RGF0YTo6ZW5jb2Rl
KEtleWVkRW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyLmVuY29kZUJvb2wo
Im51bGwiLCBtX2lzTnVsbCk7CisgICAgZW5jb2Rlci5lbmNvZGVCb29sKCJudWxsIl9zLCBtX2lz
TnVsbCk7CiAgICAgaWYgKG1faXNOdWxsKQogICAgICAgICByZXR1cm47CiAKLSAgICBlbmNvZGVy
LmVuY29kZUVudW0oInR5cGUiLCBtX3R5cGUpOworICAgIGVuY29kZXIuZW5jb2RlRW51bSgidHlw
ZSJfcywgbV90eXBlKTsKIAogICAgIHN3aXRjaCAobV90eXBlKSB7CiAgICAgY2FzZSBJbmRleGVk
REI6OktleVR5cGU6OkludmFsaWQ6CiAgICAgICAgIHJldHVybjsKICAgICBjYXNlIEluZGV4ZWRE
Qjo6S2V5VHlwZTo6QXJyYXk6IHsKICAgICAgICAgYXV0byYgYXJyYXkgPSBzdGQ6OmdldDxWZWN0
b3I8SURCS2V5RGF0YT4+KG1fdmFsdWUpOwotICAgICAgICBlbmNvZGVyLmVuY29kZU9iamVjdHMo
ImFycmF5IiwgYXJyYXkuYmVnaW4oKSwgYXJyYXkuZW5kKCksIFtdKEtleWVkRW5jb2RlciYgZW5j
b2RlciwgY29uc3QgSURCS2V5RGF0YSYga2V5KSB7CisgICAgICAgIGVuY29kZXIuZW5jb2RlT2Jq
ZWN0cygiYXJyYXkiX3MsIGFycmF5LmJlZ2luKCksIGFycmF5LmVuZCgpLCBbXShLZXllZEVuY29k
ZXImIGVuY29kZXIsIGNvbnN0IElEQktleURhdGEmIGtleSkgewogICAgICAgICAgICAga2V5LmVu
Y29kZShlbmNvZGVyKTsKICAgICAgICAgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAg
Y2FzZSBJbmRleGVkREI6OktleVR5cGU6OkJpbmFyeTogewogICAgICAgICBhdXRvKiBkYXRhID0g
c3RkOjpnZXQ8VGhyZWFkU2FmZURhdGFCdWZmZXI+KG1fdmFsdWUpLmRhdGEoKTsKLSAgICAgICAg
ZW5jb2Rlci5lbmNvZGVCb29sKCJoYXNCaW5hcnkiLCAhIWRhdGEpOworICAgICAgICBlbmNvZGVy
LmVuY29kZUJvb2woImhhc0JpbmFyeSJfcywgISFkYXRhKTsKICAgICAgICAgaWYgKGRhdGEpCi0g
ICAgICAgICAgICBlbmNvZGVyLmVuY29kZUJ5dGVzKCJiaW5hcnkiLCBkYXRhLT5kYXRhKCksIGRh
dGEtPnNpemUoKSk7CisgICAgICAgICAgICBlbmNvZGVyLmVuY29kZUJ5dGVzKCJiaW5hcnkiX3Ms
IGRhdGEtPmRhdGEoKSwgZGF0YS0+c2l6ZSgpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAg
ICBjYXNlIEluZGV4ZWREQjo6S2V5VHlwZTo6U3RyaW5nOgotICAgICAgICBlbmNvZGVyLmVuY29k
ZVN0cmluZygic3RyaW5nIiwgc3RkOjpnZXQ8U3RyaW5nPihtX3ZhbHVlKSk7CisgICAgICAgIGVu
Y29kZXIuZW5jb2RlU3RyaW5nKCJzdHJpbmciX3MsIHN0ZDo6Z2V0PFN0cmluZz4obV92YWx1ZSkp
OwogICAgICAgICByZXR1cm47CiAgICAgY2FzZSBJbmRleGVkREI6OktleVR5cGU6OkRhdGU6CiAg
ICAgY2FzZSBJbmRleGVkREI6OktleVR5cGU6Ok51bWJlcjoKLSAgICAgICAgZW5jb2Rlci5lbmNv
ZGVEb3VibGUoIm51bWJlciIsIHN0ZDo6Z2V0PGRvdWJsZT4obV92YWx1ZSkpOworICAgICAgICBl
bmNvZGVyLmVuY29kZURvdWJsZSgibnVtYmVyIl9zLCBzdGQ6OmdldDxkb3VibGU+KG1fdmFsdWUp
KTsKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgSW5kZXhlZERCOjpLZXlUeXBlOjpNYXg6CiAg
ICAgY2FzZSBJbmRleGVkREI6OktleVR5cGU6Ok1pbjoKQEAgLTE4OSw3ICsxODksNyBAQCB2b2lk
IElEQktleURhdGE6OmVuY29kZShLZXllZEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiAKIGJvb2wg
SURCS2V5RGF0YTo6ZGVjb2RlKEtleWVkRGVjb2RlciYgZGVjb2RlciwgSURCS2V5RGF0YSYgcmVz
dWx0KQogewotICAgIGlmICghZGVjb2Rlci5kZWNvZGVCb29sKCJudWxsIiwgcmVzdWx0Lm1faXNO
dWxsKSkKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlQm9vbCgibnVsbCJfcywgcmVzdWx0Lm1faXNO
dWxsKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYgKHJlc3VsdC5tX2lzTnVsbCkK
QEAgLTIwNSw3ICsyMDUsNyBAQCBib29sIElEQktleURhdGE6OmRlY29kZShLZXllZERlY29kZXIm
IGRlY29kZXIsIElEQktleURhdGEmIHJlc3VsdCkKICAgICAgICAgICAgIHx8IHZhbHVlID09IElu
ZGV4ZWREQjo6S2V5VHlwZTo6TnVtYmVyCiAgICAgICAgICAgICB8fCB2YWx1ZSA9PSBJbmRleGVk
REI6OktleVR5cGU6Ok1pbjsKICAgICB9OwotICAgIGlmICghZGVjb2Rlci5kZWNvZGVFbnVtKCJ0
eXBlIiwgcmVzdWx0Lm1fdHlwZSwgZW51bUZ1bmN0aW9uKSkKKyAgICBpZiAoIWRlY29kZXIuZGVj
b2RlRW51bSgidHlwZSJfcywgcmVzdWx0Lm1fdHlwZSwgZW51bUZ1bmN0aW9uKSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogCiAgICAgaWYgKHJlc3VsdC5tX3R5cGUgPT0gSW5kZXhlZERCOjpLZXlU
eXBlOjpJbnZhbGlkKQpAQCAtMjE5LDI2ICsyMTksMjYgQEAgYm9vbCBJREJLZXlEYXRhOjpkZWNv
ZGUoS2V5ZWREZWNvZGVyJiBkZWNvZGVyLCBJREJLZXlEYXRhJiByZXN1bHQpCiAKICAgICBpZiAo
cmVzdWx0Lm1fdHlwZSA9PSBJbmRleGVkREI6OktleVR5cGU6OlN0cmluZykgewogICAgICAgICBy
ZXN1bHQubV92YWx1ZSA9IFN0cmluZygpOwotICAgICAgICByZXR1cm4gZGVjb2Rlci5kZWNvZGVT
dHJpbmcoInN0cmluZyIsIHN0ZDo6Z2V0PFN0cmluZz4ocmVzdWx0Lm1fdmFsdWUpKTsKKyAgICAg
ICAgcmV0dXJuIGRlY29kZXIuZGVjb2RlU3RyaW5nKCJzdHJpbmciX3MsIHN0ZDo6Z2V0PFN0cmlu
Zz4ocmVzdWx0Lm1fdmFsdWUpKTsKICAgICB9CiAKICAgICBpZiAocmVzdWx0Lm1fdHlwZSA9PSBJ
bmRleGVkREI6OktleVR5cGU6Ok51bWJlciB8fCByZXN1bHQubV90eXBlID09IEluZGV4ZWREQjo6
S2V5VHlwZTo6RGF0ZSkgewogICAgICAgICByZXN1bHQubV92YWx1ZSA9IDAuMDsKLSAgICAgICAg
cmV0dXJuIGRlY29kZXIuZGVjb2RlRG91YmxlKCJudW1iZXIiLCBzdGQ6OmdldDxkb3VibGU+KHJl
c3VsdC5tX3ZhbHVlKSk7CisgICAgICAgIHJldHVybiBkZWNvZGVyLmRlY29kZURvdWJsZSgibnVt
YmVyIl9zLCBzdGQ6OmdldDxkb3VibGU+KHJlc3VsdC5tX3ZhbHVlKSk7CiAgICAgfQogCiAgICAg
aWYgKHJlc3VsdC5tX3R5cGUgPT0gSW5kZXhlZERCOjpLZXlUeXBlOjpCaW5hcnkpIHsKICAgICAg
ICAgcmVzdWx0Lm1fdmFsdWUgPSBUaHJlYWRTYWZlRGF0YUJ1ZmZlcigpOwogCiAgICAgICAgIGJv
b2wgaGFzQmluYXJ5RGF0YTsKLSAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZUJvb2woImhhc0Jp
bmFyeSIsIGhhc0JpbmFyeURhdGEpKQorICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2RlQm9vbCgi
aGFzQmluYXJ5Il9zLCBoYXNCaW5hcnlEYXRhKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
IAogICAgICAgICBpZiAoIWhhc0JpbmFyeURhdGEpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
IAogICAgICAgICBWZWN0b3I8dWludDhfdD4gYnl0ZXM7Ci0gICAgICAgIGlmICghZGVjb2Rlci5k
ZWNvZGVCeXRlcygiYmluYXJ5IiwgYnl0ZXMpKQorICAgICAgICBpZiAoIWRlY29kZXIuZGVjb2Rl
Qnl0ZXMoImJpbmFyeSJfcywgYnl0ZXMpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAg
ICAgICAgIHJlc3VsdC5tX3ZhbHVlID0gVGhyZWFkU2FmZURhdGFCdWZmZXI6OmNyZWF0ZShXVEZN
b3ZlKGJ5dGVzKSk7CkBAIC0yNTIsNyArMjUyLDcgQEAgYm9vbCBJREJLZXlEYXRhOjpkZWNvZGUo
S2V5ZWREZWNvZGVyJiBkZWNvZGVyLCBJREJLZXlEYXRhJiByZXN1bHQpCiAgICAgfTsKICAgICAK
ICAgICByZXN1bHQubV92YWx1ZSA9IFZlY3RvcjxJREJLZXlEYXRhPigpOwotICAgIHJldHVybiBk
ZWNvZGVyLmRlY29kZU9iamVjdHMoImFycmF5Iiwgc3RkOjpnZXQ8VmVjdG9yPElEQktleURhdGE+
PihyZXN1bHQubV92YWx1ZSksIGFycmF5RnVuY3Rpb24pOworICAgIHJldHVybiBkZWNvZGVyLmRl
Y29kZU9iamVjdHMoImFycmF5Il9zLCBzdGQ6OmdldDxWZWN0b3I8SURCS2V5RGF0YT4+KHJlc3Vs
dC5tX3ZhbHVlKSwgYXJyYXlGdW5jdGlvbik7CiB9CiAKIGludCBJREJLZXlEYXRhOjpjb21wYXJl
KGNvbnN0IElEQktleURhdGEmIG90aGVyKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5UmFuZ2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCS2V5UmFuZ2UuY3BwCmluZGV4IDE0ZjMwM2EwNGMyM2E4YmY0N2Jm
MDY1OWY5Mjg3OTI0Zjk2MTNhZmIuLmRlZjUwNDgxN2FkMDM4MjI0NzRkZDJmNWQxNmQzNjkwYmI5
N2Y0YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktl
eVJhbmdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlS
YW5nZS5jcHAKQEAgLTEzNyw3ICsxMzcsNyBAQCBFeGNlcHRpb25Pcjxib29sPiBJREJLZXlSYW5n
ZTo6aW5jbHVkZXMoSlNDOjpKU0dsb2JhbE9iamVjdCYgc3RhdGUsIEpTQzo6SlNWYWx1ZQogICAg
IGF1dG8ga2V5ID0gc2NyaXB0VmFsdWVUb0lEQktleShzdGF0ZSwga2V5VmFsdWUpOwogICAgIEVY
Q0VQVElPTl9BU1NFUlRfVU5VU0VEKHNjb3BlLCAhc2NvcGUuZXhjZXB0aW9uKCkgfHwgIWtleS0+
aXNWYWxpZCgpKTsKICAgICBpZiAoIWtleS0+aXNWYWxpZCgpKQotICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgRGF0YUVycm9yLCAiRmFpbGVkIHRvIGV4ZWN1dGUgJ2luY2x1ZGVzJyBvbiAnSURC
S2V5UmFuZ2UnOiBUaGUgcGFzc2VkLWluIHZhbHVlIGlzIG5vdCBhIHZhbGlkIEluZGV4ZWREQiBr
ZXkuIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgRGF0YUVycm9yLCAiRmFpbGVkIHRv
IGV4ZWN1dGUgJ2luY2x1ZGVzJyBvbiAnSURCS2V5UmFuZ2UnOiBUaGUgcGFzc2VkLWluIHZhbHVl
IGlzIG5vdCBhIHZhbGlkIEluZGV4ZWREQiBrZXkuIl9zIH07CiAKICAgICBpZiAobV9sb3dlcikg
ewogICAgICAgICBpbnQgY29tcGFyZSA9IG1fbG93ZXItPmNvbXBhcmUoa2V5LmdldCgpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJp
YWxpemF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9J
REJTZXJpYWxpemF0aW9uLmNwcAppbmRleCAyYTJjMWZjMzI5NTgwNWQ1MmZkNTZhZjMwYjQ1NWFl
MmNjY2M0ODc3Li4zM2Q0ZDQxYzkyNzdiZmYyOTcxMzc1MmM4OTFkMmM5MDkxYWQzNWNiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VyaWFs
aXphdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVy
L0lEQlNlcmlhbGl6YXRpb24uY3BwCkBAIC00NSwxNyArNDUsMTcgQEAgUmVmUHRyPFNoYXJlZEJ1
ZmZlcj4gc2VyaWFsaXplSURCS2V5UGF0aChjb25zdCBzdGQ6Om9wdGlvbmFsPElEQktleVBhdGg+
JiBrZXlQYXQKIAogICAgIGlmIChrZXlQYXRoKSB7CiAgICAgICAgIGF1dG8gdmlzaXRvciA9IFdU
Rjo6bWFrZVZpc2l0b3IoWyZdKGNvbnN0IFN0cmluZyYgc3RyaW5nKSB7Ci0gICAgICAgICAgICBl
bmNvZGVyLT5lbmNvZGVFbnVtKCJ0eXBlIiwgS2V5UGF0aFR5cGU6OlN0cmluZyk7Ci0gICAgICAg
ICAgICBlbmNvZGVyLT5lbmNvZGVTdHJpbmcoInN0cmluZyIsIHN0cmluZyk7CisgICAgICAgICAg
ICBlbmNvZGVyLT5lbmNvZGVFbnVtKCJ0eXBlIl9zLCBLZXlQYXRoVHlwZTo6U3RyaW5nKTsKKyAg
ICAgICAgICAgIGVuY29kZXItPmVuY29kZVN0cmluZygic3RyaW5nIl9zLCBzdHJpbmcpOwogICAg
ICAgICB9LCBbJl0oY29uc3QgVmVjdG9yPFN0cmluZz4mIHZlY3RvcikgewotICAgICAgICAgICAg
ZW5jb2Rlci0+ZW5jb2RlRW51bSgidHlwZSIsIEtleVBhdGhUeXBlOjpBcnJheSk7Ci0gICAgICAg
ICAgICBlbmNvZGVyLT5lbmNvZGVPYmplY3RzKCJhcnJheSIsIHZlY3Rvci5iZWdpbigpLCB2ZWN0
b3IuZW5kKCksIFtdKFdlYkNvcmU6OktleWVkRW5jb2RlciYgZW5jb2RlciwgY29uc3QgU3RyaW5n
JiBzdHJpbmcpIHsKLSAgICAgICAgICAgICAgICBlbmNvZGVyLmVuY29kZVN0cmluZygic3RyaW5n
Iiwgc3RyaW5nKTsKKyAgICAgICAgICAgIGVuY29kZXItPmVuY29kZUVudW0oInR5cGUiX3MsIEtl
eVBhdGhUeXBlOjpBcnJheSk7CisgICAgICAgICAgICBlbmNvZGVyLT5lbmNvZGVPYmplY3RzKCJh
cnJheSJfcywgdmVjdG9yLmJlZ2luKCksIHZlY3Rvci5lbmQoKSwgW10oV2ViQ29yZTo6S2V5ZWRF
bmNvZGVyJiBlbmNvZGVyLCBjb25zdCBTdHJpbmcmIHN0cmluZykgeworICAgICAgICAgICAgICAg
IGVuY29kZXIuZW5jb2RlU3RyaW5nKCJzdHJpbmciX3MsIHN0cmluZyk7CiAgICAgICAgICAgICB9
KTsKICAgICAgICAgfSk7CiAgICAgICAgIHN0ZDo6dmlzaXQodmlzaXRvciwga2V5UGF0aC52YWx1
ZSgpKTsKICAgICB9IGVsc2UKLSAgICAgICAgZW5jb2Rlci0+ZW5jb2RlRW51bSgidHlwZSIsIEtl
eVBhdGhUeXBlOjpOdWxsKTsKKyAgICAgICAgZW5jb2Rlci0+ZW5jb2RlRW51bSgidHlwZSJfcywg
S2V5UGF0aFR5cGU6Ok51bGwpOwogCiAgICAgcmV0dXJuIGVuY29kZXItPmZpbmlzaEVuY29kaW5n
KCk7CiB9CkBAIC02OCw3ICs2OCw3IEBAIGJvb2wgZGVzZXJpYWxpemVJREJLZXlQYXRoKGNvbnN0
IHVpbnQ4X3QqIGRhdGEsIHNpemVfdCBzaXplLCBzdGQ6Om9wdGlvbmFsPElEQktlCiAgICAgYXV0
byBkZWNvZGVyID0gS2V5ZWREZWNvZGVyOjpkZWNvZGVyKGRhdGEsIHNpemUpOwogCiAgICAgS2V5
UGF0aFR5cGUgdHlwZTsKLSAgICBib29sIHN1Y2NlZWRlZCA9IGRlY29kZXItPmRlY29kZUVudW0o
InR5cGUiLCB0eXBlLCBbXShLZXlQYXRoVHlwZSB2YWx1ZSkgeworICAgIGJvb2wgc3VjY2VlZGVk
ID0gZGVjb2Rlci0+ZGVjb2RlRW51bSgidHlwZSJfcywgdHlwZSwgW10oS2V5UGF0aFR5cGUgdmFs
dWUpIHsKICAgICAgICAgcmV0dXJuIHZhbHVlID09IEtleVBhdGhUeXBlOjpOdWxsIHx8IHZhbHVl
ID09IEtleVBhdGhUeXBlOjpTdHJpbmcgfHwgdmFsdWUgPT0gS2V5UGF0aFR5cGU6OkFycmF5Owog
ICAgIH0pOwogICAgIGlmICghc3VjY2VlZGVkKQpAQCAtNzksMTUgKzc5LDE1IEBAIGJvb2wgZGVz
ZXJpYWxpemVJREJLZXlQYXRoKGNvbnN0IHVpbnQ4X3QqIGRhdGEsIHNpemVfdCBzaXplLCBzdGQ6
Om9wdGlvbmFsPElEQktlCiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgS2V5UGF0aFR5cGU6OlN0
cmluZzogewogICAgICAgICBTdHJpbmcgc3RyaW5nOwotICAgICAgICBpZiAoIWRlY29kZXItPmRl
Y29kZVN0cmluZygic3RyaW5nIiwgc3RyaW5nKSkKKyAgICAgICAgaWYgKCFkZWNvZGVyLT5kZWNv
ZGVTdHJpbmcoInN0cmluZyJfcywgc3RyaW5nKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICAgICAgcmVzdWx0ID0gSURCS2V5UGF0aChXVEZNb3ZlKHN0cmluZykpOwogICAgICAgICBi
cmVhazsKICAgICB9CiAgICAgY2FzZSBLZXlQYXRoVHlwZTo6QXJyYXk6IHsKICAgICAgICAgVmVj
dG9yPFN0cmluZz4gdmVjdG9yOwotICAgICAgICBzdWNjZWVkZWQgPSBkZWNvZGVyLT5kZWNvZGVP
YmplY3RzKCJhcnJheSIsIHZlY3RvciwgW10oS2V5ZWREZWNvZGVyJiBkZWNvZGVyLCBTdHJpbmcm
IHJlc3VsdCkgewotICAgICAgICAgICAgcmV0dXJuIGRlY29kZXIuZGVjb2RlU3RyaW5nKCJzdHJp
bmciLCByZXN1bHQpOworICAgICAgICBzdWNjZWVkZWQgPSBkZWNvZGVyLT5kZWNvZGVPYmplY3Rz
KCJhcnJheSJfcywgdmVjdG9yLCBbXShLZXllZERlY29kZXImIGRlY29kZXIsIFN0cmluZyYgcmVz
dWx0KSB7CisgICAgICAgICAgICByZXR1cm4gZGVjb2Rlci5kZWNvZGVTdHJpbmcoInN0cmluZyJf
cywgcmVzdWx0KTsKICAgICAgICAgfSk7CiAgICAgICAgIGlmICghc3VjY2VlZGVkKQogICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmNwcAppbmRleCBlODk4N2E2OTFmZTIzYTY4ZTMyOTIz
YThhNGEwZDVhZmFjMDk1NmI3Li4zMjBjNmIxYmIwMTY1YmRjZWQ3NGMwYzk3NjU4YzRlYjUwOGQx
Njc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIv
SURCU2VydmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2
ZXIvSURCU2VydmVyLmNwcApAQCAtNTg4LDggKzU4OCw4IEBAIHZvaWQgSURCU2VydmVyOjpjbG9z
ZUFuZERlbGV0ZURhdGFiYXNlc01vZGlmaWVkU2luY2UoV2FsbFRpbWUgbW9kaWZpY2F0aW9uVGlt
ZSkKICAgICBtX3VuaXF1ZUlEQkRhdGFiYXNlTWFwLmNsZWFyKCk7CiAKICAgICBpZiAoIW1fZGF0
YWJhc2VEaXJlY3RvcnlQYXRoLmlzRW1wdHkoKSkgewotICAgICAgICByZW1vdmVEYXRhYmFzZXNN
b2RpZmllZFNpbmNlRm9yVmVyc2lvbihtb2RpZmljYXRpb25UaW1lLCAidjAiKTsKLSAgICAgICAg
cmVtb3ZlRGF0YWJhc2VzTW9kaWZpZWRTaW5jZUZvclZlcnNpb24obW9kaWZpY2F0aW9uVGltZSwg
InYxIik7CisgICAgICAgIHJlbW92ZURhdGFiYXNlc01vZGlmaWVkU2luY2VGb3JWZXJzaW9uKG1v
ZGlmaWNhdGlvblRpbWUsICJ2MCJfcyk7CisgICAgICAgIHJlbW92ZURhdGFiYXNlc01vZGlmaWVk
U2luY2VGb3JWZXJzaW9uKG1vZGlmaWNhdGlvblRpbWUsICJ2MSJfcyk7CiAgICAgfQogfQogCkBA
IC02MjQsOCArNjI0LDggQEAgdm9pZCBJREJTZXJ2ZXI6OmNsb3NlQW5kRGVsZXRlRGF0YWJhc2Vz
Rm9yT3JpZ2lucyhjb25zdCBWZWN0b3I8U2VjdXJpdHlPcmlnaW5EYXQKICAgICB9KTsKIAogICAg
IGlmICghbV9kYXRhYmFzZURpcmVjdG9yeVBhdGguaXNFbXB0eSgpKSB7Ci0gICAgICAgIHJlbW92
ZURhdGFiYXNlc1dpdGhPcmlnaW5zRm9yVmVyc2lvbihvcmlnaW5zLCAidjAiKTsKLSAgICAgICAg
cmVtb3ZlRGF0YWJhc2VzV2l0aE9yaWdpbnNGb3JWZXJzaW9uKG9yaWdpbnMsICJ2MSIpOworICAg
ICAgICByZW1vdmVEYXRhYmFzZXNXaXRoT3JpZ2luc0ZvclZlcnNpb24ob3JpZ2lucywgInYwIl9z
KTsKKyAgICAgICAgcmVtb3ZlRGF0YWJhc2VzV2l0aE9yaWdpbnNGb3JWZXJzaW9uKG9yaWdpbnMs
ICJ2MSJfcyk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5SURCQmFja2luZ1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlJREJCYWNraW5nU3RvcmUuY3BwCmlu
ZGV4IGQ2MzM1MDMwOTkzMDU1YjliMTJiNzg0NTY1NWRhODMzNzJiMWE1NTAuLjFjMjdhZDYxNzlm
MWJlYWQwZmYxYTZkZWNmYjlhZTJiNWU5NTNmOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlJREJCYWNraW5nU3RvcmUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlJREJCYWNraW5n
U3RvcmUuY3BwCkBAIC03OCw3ICs3OCw3IEBAIElEQkVycm9yIE1lbW9yeUlEQkJhY2tpbmdTdG9y
ZTo6YmVnaW5UcmFuc2FjdGlvbihjb25zdCBJREJUcmFuc2FjdGlvbkluZm8mIGluZm8pCiAgICAg
TE9HKEluZGV4ZWREQiwgIk1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6YmVnaW5UcmFuc2FjdGlvbiIp
OwogCiAgICAgaWYgKG1fdHJhbnNhY3Rpb25zLmNvbnRhaW5zKGluZm8uaWRlbnRpZmllcigpKSkK
LSAgICAgICAgcmV0dXJuIElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0
b3JlIGFza2VkIHRvIGNyZWF0ZSB0cmFuc2FjdGlvbiBpdCBhbHJlYWR5IGhhcyBhIHJlY29yZCBv
ZiIgfTsKKyAgICAgICAgcmV0dXJuIElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNr
aW5nIHN0b3JlIGFza2VkIHRvIGNyZWF0ZSB0cmFuc2FjdGlvbiBpdCBhbHJlYWR5IGhhcyBhIHJl
Y29yZCBvZiJfcyB9OwogCiAgICAgYXV0byB0cmFuc2FjdGlvbiA9IE1lbW9yeUJhY2tpbmdTdG9y
ZVRyYW5zYWN0aW9uOjpjcmVhdGUoKnRoaXMsIGluZm8pOwogCkBAIC0xMDQsNyArMTA0LDcgQEAg
SURCRXJyb3IgTWVtb3J5SURCQmFja2luZ1N0b3JlOjphYm9ydFRyYW5zYWN0aW9uKGNvbnN0IElE
QlJlc291cmNlSWRlbnRpZmllciYgdHIKIAogICAgIGF1dG8gdHJhbnNhY3Rpb24gPSBtX3RyYW5z
YWN0aW9ucy50YWtlKHRyYW5zYWN0aW9uSWRlbnRpZmllcik7CiAgICAgaWYgKCF0cmFuc2FjdGlv
bikKLSAgICAgICAgcmV0dXJuIElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5n
IHN0b3JlIGFza2VkIHRvIGFib3J0IHRyYW5zYWN0aW9uIGl0IGRpZG4ndCBoYXZlIHJlY29yZCBv
ZiIgfTsKKyAgICAgICAgcmV0dXJuIElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNr
aW5nIHN0b3JlIGFza2VkIHRvIGFib3J0IHRyYW5zYWN0aW9uIGl0IGRpZG4ndCBoYXZlIHJlY29y
ZCBvZiJfcyB9OwogCiAgICAgdHJhbnNhY3Rpb24tPmFib3J0KCk7CiAKQEAgLTExNyw3ICsxMTcs
NyBAQCBJREJFcnJvciBNZW1vcnlJREJCYWNraW5nU3RvcmU6OmNvbW1pdFRyYW5zYWN0aW9uKGNv
bnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdAogCiAgICAgYXV0byB0cmFuc2FjdGlvbiA9IG1f
dHJhbnNhY3Rpb25zLnRha2UodHJhbnNhY3Rpb25JZGVudGlmaWVyKTsKICAgICBpZiAoIXRyYW5z
YWN0aW9uKQotICAgICAgICByZXR1cm4gSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJh
Y2tpbmcgc3RvcmUgYXNrZWQgdG8gY29tbWl0IHRyYW5zYWN0aW9uIGl0IGRpZG4ndCBoYXZlIHJl
Y29yZCBvZiIgfTsKKyAgICAgICAgcmV0dXJuIElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3Is
ICJCYWNraW5nIHN0b3JlIGFza2VkIHRvIGNvbW1pdCB0cmFuc2FjdGlvbiBpdCBkaWRuJ3QgaGF2
ZSByZWNvcmQgb2YiX3MgfTsKIAogICAgIHRyYW5zYWN0aW9uLT5jb21taXQoKTsKIApAQCAtNDcz
LDcgKzQ3Myw3IEBAIElEQkVycm9yIE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6Z2VuZXJhdGVLZXlO
dW1iZXIoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0CiAKICAgICBrZXlOdW1iZXIgPSBv
YmplY3RTdG9yZS0+Y3VycmVudEtleUdlbmVyYXRvclZhbHVlKCk7CiAgICAgaWYgKGtleU51bWJl
ciA+IG1heEdlbmVyYXRlZEtleVZhbHVlKQotICAgICAgICByZXR1cm4gSURCRXJyb3IgeyBDb25z
dHJhaW50RXJyb3IsICJDYW5ub3QgZ2VuZXJhdGUgbmV3IGtleSB2YWx1ZSBvdmVyIDJeNTMgZm9y
IG9iamVjdCBzdG9yZSBvcGVyYXRpb24iIH07CisgICAgICAgIHJldHVybiBJREJFcnJvciB7IENv
bnN0cmFpbnRFcnJvciwgIkNhbm5vdCBnZW5lcmF0ZSBuZXcga2V5IHZhbHVlIG92ZXIgMl41MyBm
b3Igb2JqZWN0IHN0b3JlIG9wZXJhdGlvbiJfcyB9OwogCiAgICAgb2JqZWN0U3RvcmUtPnNldEtl
eUdlbmVyYXRvclZhbHVlKGtleU51bWJlciArIDEpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5T2JqZWN0U3RvcmUuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeU9iamVjdFN0b3JlLmNw
cAppbmRleCA3ZWY5ZDBhMzg3ZjcyN2Q4NWVjMGRlZWY2ZDNjYWUwZGVkMDE1OGNmLi44OTIzMWI0
YWUyNDk2OGU4OWIwZDc1ODExNTFmNTI4ZWUzZTJmYjRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5T2JqZWN0U3RvcmUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlPYmplY3RTdG9y
ZS5jcHAKQEAgLTMxMCw3ICszMTAsNyBAQCBJREJFcnJvciBNZW1vcnlPYmplY3RTdG9yZTo6dXBk
YXRlSW5kZXhlc0ZvclB1dFJlY29yZChjb25zdCBJREJLZXlEYXRhJiBrZXksIGNvbgogICAgICAg
ICBhdXRvKiBpbmRleCA9IG1faW5kZXhlc0J5SWRlbnRpZmllci5nZXQoaW5kZXhJRCk7CiAgICAg
ICAgIEFTU0VSVChpbmRleCk7CiAgICAgICAgIGlmICghaW5kZXgpIHsKLSAgICAgICAgICAgIGVy
cm9yID0gSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIk1pc3NpbmcgaW5kZXggbWV0YWRh
dGEiIH07CisgICAgICAgICAgICBlcnJvciA9IElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3Is
ICJNaXNzaW5nIGluZGV4IG1ldGFkYXRhIl9zIH07CiAgICAgICAgICAgICBicmVhazsKICAgICAg
ICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2
ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuY3BwCmluZGV4IDJmYWYzZTk1ZDMx
Yzk4OWZjZTEyZTA1N2YwNmMyMmUyZmY3M2M0NmUuLjRlMjBhNGI5YmViM2RmZWRmNTljNTAzOGJi
YzQyYTgxOWQ1MjhjMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuY3BwCkBAIC05
OCwzNyArOTgsMzcgQEAgc3RhdGljIGludCBpZGJLZXlDb2xsYXRlKGludCBhTGVuZ3RoLCBjb25z
dCB2b2lkKiBhQnVmZmVyLCBpbnQgYkxlbmd0aCwgY29uc3Qgdm8KICAgICByZXR1cm4gYS5jb21w
YXJlKGIpOwogfQogCi1zdGF0aWMgY29uc3QgU3RyaW5nIHYxUmVjb3Jkc1RhYmxlU2NoZW1hKGNv
bnN0IFN0cmluZyYgdGFibGVOYW1lKQorc3RhdGljIGNvbnN0IFN0cmluZyB2MVJlY29yZHNUYWJs
ZVNjaGVtYShBU0NJSUxpdGVyYWwgdGFibGVOYW1lKQogewogICAgIHJldHVybiBtYWtlU3RyaW5n
KCJDUkVBVEUgVEFCTEUgIiwgdGFibGVOYW1lLCAiIChvYmplY3RTdG9yZUlEIElOVEVHRVIgTk9U
IE5VTEwgT04gQ09ORkxJQ1QgRkFJTCwga2V5IFRFWFQgQ09MTEFURSBJREJLRVkgTk9UIE5VTEwg
T04gQ09ORkxJQ1QgRkFJTCBVTklRVUUgT04gQ09ORkxJQ1QgUkVQTEFDRSwgdmFsdWUgTk9UIE5V
TEwgT04gQ09ORkxJQ1QgRkFJTCkiKTsKIH0KIAogc3RhdGljIGNvbnN0IFN0cmluZyYgdjFSZWNv
cmRzVGFibGVTY2hlbWEoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHYx
UmVjb3Jkc1RhYmxlU2NoZW1hU3RyaW5nKHYxUmVjb3Jkc1RhYmxlU2NoZW1hKCJSZWNvcmRzIikp
OworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHYxUmVjb3Jkc1RhYmxlU2NoZW1h
U3RyaW5nKHYxUmVjb3Jkc1RhYmxlU2NoZW1hKCJSZWNvcmRzIl9zKSk7CiAgICAgcmV0dXJuIHYx
UmVjb3Jkc1RhYmxlU2NoZW1hU3RyaW5nOwogfQogCiBzdGF0aWMgY29uc3QgU3RyaW5nJiB2MVJl
Y29yZHNUYWJsZVNjaGVtYUFsdGVybmF0ZSgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PFN0cmluZz4gdjFSZWNvcmRzVGFibGVTY2hlbWFTdHJpbmcodjFSZWNvcmRzVGFibGVTY2hlbWEo
IlwiUmVjb3Jkc1wiIikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHYxUmVj
b3Jkc1RhYmxlU2NoZW1hU3RyaW5nKHYxUmVjb3Jkc1RhYmxlU2NoZW1hKCJcIlJlY29yZHNcIiJf
cykpOwogICAgIHJldHVybiB2MVJlY29yZHNUYWJsZVNjaGVtYVN0cmluZzsKIH0KIAotc3RhdGlj
IGNvbnN0IFN0cmluZyB2MlJlY29yZHNUYWJsZVNjaGVtYShjb25zdCBTdHJpbmcmIHRhYmxlTmFt
ZSkKK3N0YXRpYyBjb25zdCBTdHJpbmcgdjJSZWNvcmRzVGFibGVTY2hlbWEoQVNDSUlMaXRlcmFs
IHRhYmxlTmFtZSkKIHsKICAgICByZXR1cm4gbWFrZVN0cmluZygiQ1JFQVRFIFRBQkxFICIsIHRh
YmxlTmFtZSwgIiAob2JqZWN0U3RvcmVJRCBJTlRFR0VSIE5PVCBOVUxMIE9OIENPTkZMSUNUIEZB
SUwsIGtleSBURVhUIENPTExBVEUgSURCS0VZIE5PVCBOVUxMIE9OIENPTkZMSUNUIEZBSUwsIHZh
bHVlIE5PVCBOVUxMIE9OIENPTkZMSUNUIEZBSUwpIik7CiB9CiAKIHN0YXRpYyBjb25zdCBTdHJp
bmcmIHYyUmVjb3Jkc1RhYmxlU2NoZW1hKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
U3RyaW5nPiB2MlJlY29yZHNUYWJsZVNjaGVtYVN0cmluZyh2MlJlY29yZHNUYWJsZVNjaGVtYSgi
UmVjb3JkcyIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiB2MlJlY29yZHNU
YWJsZVNjaGVtYVN0cmluZyh2MlJlY29yZHNUYWJsZVNjaGVtYSgiUmVjb3JkcyJfcykpOwogICAg
IHJldHVybiB2MlJlY29yZHNUYWJsZVNjaGVtYVN0cmluZzsKIH0KIAogc3RhdGljIGNvbnN0IFN0
cmluZyYgdjJSZWNvcmRzVGFibGVTY2hlbWFBbHRlcm5hdGUoKQogewotICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxTdHJpbmc+IHYyUmVjb3Jkc1RhYmxlU2NoZW1hU3RyaW5nKHYyUmVjb3Jkc1Rh
YmxlU2NoZW1hKCJcIlJlY29yZHNcIiIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3Ry
aW5nPiB2MlJlY29yZHNUYWJsZVNjaGVtYVN0cmluZyh2MlJlY29yZHNUYWJsZVNjaGVtYSgiXCJS
ZWNvcmRzXCIiX3MpKTsKICAgICByZXR1cm4gdjJSZWNvcmRzVGFibGVTY2hlbWFTdHJpbmc7CiB9
CiAKQEAgLTE0NywzNyArMTQ3LDM3IEBAIHN0YXRpYyBBU0NJSUxpdGVyYWwgdjNSZWNvcmRzVGFi
bGVTY2hlbWFUZW1wKCkKICAgICByZXR1cm4gVEFCTEVfU0NIRU1BX1BSRUZJWCAiX1RlbXBfUmVj
b3JkcyIgVjNfUkVDT1JEU19UQUJMRV9TQ0hFTUFfU1VGRklYOwogfQogCi1zdGF0aWMgY29uc3Qg
U3RyaW5nIHYxSW5kZXhSZWNvcmRzVGFibGVTY2hlbWEoY29uc3QgU3RyaW5nJiB0YWJsZU5hbWUp
CitzdGF0aWMgY29uc3QgU3RyaW5nIHYxSW5kZXhSZWNvcmRzVGFibGVTY2hlbWEoQVNDSUlMaXRl
cmFsIHRhYmxlTmFtZSkKIHsKICAgICByZXR1cm4gbWFrZVN0cmluZygiQ1JFQVRFIFRBQkxFICIs
IHRhYmxlTmFtZSwgIiAoaW5kZXhJRCBJTlRFR0VSIE5PVCBOVUxMIE9OIENPTkZMSUNUIEZBSUws
IG9iamVjdFN0b3JlSUQgSU5URUdFUiBOT1QgTlVMTCBPTiBDT05GTElDVCBGQUlMLCBrZXkgVEVY
VCBDT0xMQVRFIElEQktFWSBOT1QgTlVMTCBPTiBDT05GTElDVCBGQUlMLCB2YWx1ZSBOT1QgTlVM
TCBPTiBDT05GTElDVCBGQUlMKSIpOwogfQogCiBzdGF0aWMgY29uc3QgU3RyaW5nJiB2MUluZGV4
UmVjb3Jkc1RhYmxlU2NoZW1hKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5n
PiB2MUluZGV4UmVjb3Jkc1RhYmxlU2NoZW1hU3RyaW5nKHYxSW5kZXhSZWNvcmRzVGFibGVTY2hl
bWEoIkluZGV4UmVjb3JkcyIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiB2
MUluZGV4UmVjb3Jkc1RhYmxlU2NoZW1hU3RyaW5nKHYxSW5kZXhSZWNvcmRzVGFibGVTY2hlbWEo
IkluZGV4UmVjb3JkcyJfcykpOwogICAgIHJldHVybiB2MUluZGV4UmVjb3Jkc1RhYmxlU2NoZW1h
U3RyaW5nOwogfQogCiBzdGF0aWMgY29uc3QgU3RyaW5nJiB2MUluZGV4UmVjb3Jkc1RhYmxlU2No
ZW1hQWx0ZXJuYXRlKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiB2MUlu
ZGV4UmVjb3Jkc1RhYmxlU2NoZW1hU3RyaW5nKHYxSW5kZXhSZWNvcmRzVGFibGVTY2hlbWEoIlwi
SW5kZXhSZWNvcmRzXCIiKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gdjFJ
bmRleFJlY29yZHNUYWJsZVNjaGVtYVN0cmluZyh2MUluZGV4UmVjb3Jkc1RhYmxlU2NoZW1hKCJc
IkluZGV4UmVjb3Jkc1wiIl9zKSk7CiAgICAgcmV0dXJuIHYxSW5kZXhSZWNvcmRzVGFibGVTY2hl
bWFTdHJpbmc7CiB9CiAKLXN0YXRpYyBjb25zdCBTdHJpbmcgdjJJbmRleFJlY29yZHNUYWJsZVNj
aGVtYShjb25zdCBTdHJpbmcmIHRhYmxlTmFtZSkKK3N0YXRpYyBjb25zdCBTdHJpbmcgdjJJbmRl
eFJlY29yZHNUYWJsZVNjaGVtYShBU0NJSUxpdGVyYWwgdGFibGVOYW1lKQogewogICAgIHJldHVy
biBtYWtlU3RyaW5nKCJDUkVBVEUgVEFCTEUgIiwgdGFibGVOYW1lLCAiIChpbmRleElEIElOVEVH
RVIgTk9UIE5VTEwgT04gQ09ORkxJQ1QgRkFJTCwgb2JqZWN0U3RvcmVJRCBJTlRFR0VSIE5PVCBO
VUxMIE9OIENPTkZMSUNUIEZBSUwsIGtleSBURVhUIENPTExBVEUgSURCS0VZIE5PVCBOVUxMIE9O
IENPTkZMSUNUIEZBSUwsIHZhbHVlIFRFWFQgQ09MTEFURSBJREJLRVkgTk9UIE5VTEwgT04gQ09O
RkxJQ1QgRkFJTCkiKTsKIH0KIAogc3RhdGljIGNvbnN0IFN0cmluZyYgdjJJbmRleFJlY29yZHNU
YWJsZVNjaGVtYSgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gdjJJbmRl
eFJlY29yZHNUYWJsZVNjaGVtYVN0cmluZyh2MkluZGV4UmVjb3Jkc1RhYmxlU2NoZW1hKCJJbmRl
eFJlY29yZHMiKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gdjJJbmRleFJl
Y29yZHNUYWJsZVNjaGVtYVN0cmluZyh2MkluZGV4UmVjb3Jkc1RhYmxlU2NoZW1hKCJJbmRleFJl
Y29yZHMiX3MpKTsKICAgICByZXR1cm4gdjJJbmRleFJlY29yZHNUYWJsZVNjaGVtYVN0cmluZzsK
IH0KIAogc3RhdGljIGNvbnN0IFN0cmluZyYgdjJJbmRleFJlY29yZHNUYWJsZVNjaGVtYUFsdGVy
bmF0ZSgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gdjJJbmRleFJlY29y
ZHNUYWJsZVNjaGVtYVN0cmluZyh2MkluZGV4UmVjb3Jkc1RhYmxlU2NoZW1hKCJcIkluZGV4UmVj
b3Jkc1wiIikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHYySW5kZXhSZWNv
cmRzVGFibGVTY2hlbWFTdHJpbmcodjJJbmRleFJlY29yZHNUYWJsZVNjaGVtYSgiXCJJbmRleFJl
Y29yZHNcIiJfcykpOwogICAgIHJldHVybiB2MkluZGV4UmVjb3Jkc1RhYmxlU2NoZW1hU3RyaW5n
OwogfQogCkBAIC05MTQsNyArOTE0LDcgQEAgU3RyaW5nIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6
ZW5jb2RlRGF0YWJhc2VOYW1lKGNvbnN0IFN0cmluZyYgZGF0YWJhc2VOYW1lKQogewogICAgIEFT
U0VSVCghZGF0YWJhc2VOYW1lLmlzRW1wdHkoKSk7CiAgICAgaWYgKGRhdGFiYXNlTmFtZS5pc0Vt
cHR5KCkpCi0gICAgICAgIHJldHVybiAiJTAwIjsKKyAgICAgICAgcmV0dXJuICIlMDAiX3M7CiAK
ICAgICBTdHJpbmcgZmlsZW5hbWUgPSBGaWxlU3lzdGVtOjplbmNvZGVGb3JGaWxlTmFtZShkYXRh
YmFzZU5hbWUpOwogICAgIGZpbGVuYW1lLnJlcGxhY2VXaXRoTGl0ZXJhbCgnLicsICIlMkUiKTsK
QEAgLTk5Niw3ICs5OTYsNyBAQCBJREJFcnJvciBTUUxpdGVJREJCYWNraW5nU3RvcmU6OmdldE9y
RXN0YWJsaXNoRGF0YWJhc2VJbmZvKElEQkRhdGFiYXNlSW5mbyYgaW5mbwogICAgIG1fc3FsaXRl
REItPmRpc2FibGVUaHJlYWRpbmdDaGVja3MoKTsKICAgICBtX3NxbGl0ZURCLT5lbmFibGVBdXRv
bWF0aWNXQUxUcnVuY2F0aW9uKCk7CiAKLSAgICBtX3NxbGl0ZURCLT5zZXRDb2xsYXRpb25GdW5j
dGlvbigiSURCS0VZIiwgW10oaW50IGFMZW5ndGgsIGNvbnN0IHZvaWQqIGEsIGludCBiTGVuZ3Ro
LCBjb25zdCB2b2lkKiBiKSB7CisgICAgbV9zcWxpdGVEQi0+c2V0Q29sbGF0aW9uRnVuY3Rpb24o
IklEQktFWSJfcywgW10oaW50IGFMZW5ndGgsIGNvbnN0IHZvaWQqIGEsIGludCBiTGVuZ3RoLCBj
b25zdCB2b2lkKiBiKSB7CiAgICAgICAgIHJldHVybiBpZGJLZXlDb2xsYXRlKGFMZW5ndGgsIGEs
IGJMZW5ndGgsIGIpOwogICAgIH0pOwogCkBAIC0xOTA5LDcgKzE5MDksNyBAQCBJREJFcnJvciBT
UUxpdGVJREJCYWNraW5nU3RvcmU6OnVwZGF0ZUFsbEluZGV4ZXNGb3JBZGRSZWNvcmQoY29uc3Qg
SURCT2JqZWN0U3RvcgogICAgICAgICBBU1NFUlQoaW5kZXhJdGVyYXRvciAhPSBpbmRleE1hcC5l
bmQoKSk7CiAKICAgICAgICAgaWYgKGluZGV4SXRlcmF0b3IgPT0gaW5kZXhNYXAuZW5kKCkpIHsK
LSAgICAgICAgICAgIGVycm9yID0gSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIk1pc3Np
bmcgaW5kZXggbWV0YWRhdGEiIH07CisgICAgICAgICAgICBlcnJvciA9IElEQkVycm9yIHsgSW52
YWxpZFN0YXRlRXJyb3IsICJNaXNzaW5nIGluZGV4IG1ldGFkYXRhIl9zIH07CiAgICAgICAgICAg
ICBicmVhazsKICAgICAgICAgfQogCkBAIC0yNTczLDcgKzI1NzMsNyBAQCBJREJFcnJvciBTUUxp
dGVJREJCYWNraW5nU3RvcmU6OnVuY2hlY2tlZEdldEtleUdlbmVyYXRvclZhbHVlKGludDY0X3Qg
b2JqZWN0U3RvcgogCiAgICAgaW50NjRfdCB2YWx1ZSA9IHNxbC0+Y29sdW1uSW50NjQoMCk7CiAg
ICAgaWYgKHZhbHVlIDwgMCkKLSAgICAgICAgcmV0dXJuIElEQkVycm9yIHsgQ29uc3RyYWludEVy
cm9yLCAiQ3VycmVudCBrZXkgZ2VuZXJhdG9yIHZhbHVlIGZyb20gZGF0YWJhc2UgaXMgaW52YWxp
ZCIgfTsKKyAgICAgICAgcmV0dXJuIElEQkVycm9yIHsgQ29uc3RyYWludEVycm9yLCAiQ3VycmVu
dCBrZXkgZ2VuZXJhdG9yIHZhbHVlIGZyb20gZGF0YWJhc2UgaXMgaW52YWxpZCJfcyB9OwogCiAg
ICAgb3V0VmFsdWUgPSB2YWx1ZTsKICAgICByZXR1cm4gSURCRXJyb3IgeyB9OwpAQCAtMjU4Nyw3
ICsyNTg3LDcgQEAgSURCRXJyb3IgU1FMaXRlSURCQmFja2luZ1N0b3JlOjp1bmNoZWNrZWRTZXRL
ZXlHZW5lcmF0b3JWYWx1ZShpbnQ2NF90IG9iamVjdFN0b3IKICAgICAgICAgfHwgc3FsLT5iaW5k
SW50NjQoMiwgdmFsdWUpICE9IFNRTElURV9PSwogICAgICAgICB8fCBzcWwtPnN0ZXAoKSAhPSBT
UUxJVEVfRE9ORSkgewogICAgICAgICBMT0dfRVJST1IoIkNvdWxkIG5vdCB1cGRhdGUga2V5IGdl
bmVyYXRvciB2YWx1ZSAoJWkpIC0gJXMiLCBtX3NxbGl0ZURCLT5sYXN0RXJyb3IoKSwgbV9zcWxp
dGVEQi0+bGFzdEVycm9yTXNnKCkpOwotICAgICAgICByZXR1cm4gSURCRXJyb3IgeyBDb25zdHJh
aW50RXJyb3IsICJFcnJvciBzdG9yaW5nIG5ldyBrZXkgZ2VuZXJhdG9yIHZhbHVlIGluIGRhdGFi
YXNlIiB9OworICAgICAgICByZXR1cm4gSURCRXJyb3IgeyBDb25zdHJhaW50RXJyb3IsICJFcnJv
ciBzdG9yaW5nIG5ldyBrZXkgZ2VuZXJhdG9yIHZhbHVlIGluIGRhdGFiYXNlIl9zIH07CiAgICAg
fQogCiAgICAgcmV0dXJuIElEQkVycm9yIHsgfTsKQEAgLTI2MTUsNyArMjYxNSw3IEBAIElEQkVy
cm9yIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6Z2VuZXJhdGVLZXlOdW1iZXIoY29uc3QgSURCUmVz
b3VyY2VJZGVudGlmaWVyJiB0CiAgICAgICAgIHJldHVybiBlcnJvcjsKIAogICAgIGlmIChjdXJy
ZW50VmFsdWUgKyAxID4gbWF4R2VuZXJhdG9yVmFsdWUpCi0gICAgICAgIHJldHVybiBJREJFcnJv
ciB7IENvbnN0cmFpbnRFcnJvciwgIkNhbm5vdCBnZW5lcmF0ZSBuZXcga2V5IHZhbHVlIG92ZXIg
Ml41MyBmb3Igb2JqZWN0IHN0b3JlIG9wZXJhdGlvbiIgfTsKKyAgICAgICAgcmV0dXJuIElEQkVy
cm9yIHsgQ29uc3RyYWludEVycm9yLCAiQ2Fubm90IGdlbmVyYXRlIG5ldyBrZXkgdmFsdWUgb3Zl
ciAyXjUzIGZvciBvYmplY3Qgc3RvcmUgb3BlcmF0aW9uIl9zIH07CiAKICAgICBnZW5lcmF0ZWRL
ZXkgPSBjdXJyZW50VmFsdWUgKyAxOwogICAgIHJldHVybiB1bmNoZWNrZWRTZXRLZXlHZW5lcmF0
b3JWYWx1ZShvYmplY3RTdG9yZUlELCBnZW5lcmF0ZWRLZXkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFz
ZS5jcHAKaW5kZXggMjNlNmQzZjVjOGJjNjM3NmMzMGM2NWM0ZjY3MmVlNjRjM2ZhZjZmMS4uNzRh
ZGVlZTNlMzFhYWFkMmQzZDk1YzI4NTVkNTA4YjhhNTc2ZDBiMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0
YWJhc2UuY3BwCkBAIC01ODksNyArNTg5LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6Y3Jl
YXRlT2JqZWN0U3RvcmUoVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbiYgdHJhbnNhY3QKICAg
ICAgICAgYXV0byB0YXNrU2l6ZSA9IGRlZmF1bHRXcml0ZU9wZXJhdGlvbkNvc3QgKyBlc3RpbWF0
ZVNpemUoaW5mbyk7CiAgICAgICAgIG1fbWFuYWdlci0+cmVxdWVzdFNwYWNlKG1faWRlbnRpZmll
ci5vcmlnaW4oKSwgdGFza1NpemUsIFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9
LCB3ZWFrVHJhbnNhY3Rpb24gPSBXZWFrUHRyIHsgdHJhbnNhY3Rpb24gfSwgaW5mbywgY2FsbGJh
Y2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oYm9vbCBncmFudGVkKSBtdXRhYmxlIHsKICAgICAgICAg
ICAgIGlmICghd2Vha1RoaXMgfHwgIXdlYWtUcmFuc2FjdGlvbikKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkRhdGFiYXNlIG9y
IHRyYW5zYWN0aW9uIGlzIGNsb3NlZCIgfSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxi
YWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBvciB0cmFuc2FjdGlv
biBpcyBjbG9zZWQiX3MgfSk7CiAgICAgICAgICAgICBjcmVhdGVPYmplY3RTdG9yZSgqd2Vha1Ry
YW5zYWN0aW9uLCBpbmZvLCBXVEZNb3ZlKGNhbGxiYWNrKSwgZ3JhbnRlZCA/IFNwYWNlQ2hlY2tS
ZXN1bHQ6OlBhc3MgOiBTcGFjZUNoZWNrUmVzdWx0OjpGYWlsKTsKICAgICAgICAgfSk7CiAgICAg
ICAgIHJldHVybjsKQEAgLTYwMSw3ICs2MDEsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpj
cmVhdGVPYmplY3RTdG9yZShVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uJiB0cmFuc2FjdAog
ICAgIH0KIAogICAgIGlmICghbV9iYWNraW5nU3RvcmUpCi0gICAgICAgIHJldHVybiBjYWxsYmFj
ayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiQmFja2luZyBzdG9yZSBoYXMgY2xvc2Vk
IiB9KTsKKyAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJy
b3IsICJCYWNraW5nIHN0b3JlIGhhcyBjbG9zZWQiX3MgfSk7CiAKICAgICBhdXRvIGVycm9yID0g
bV9iYWNraW5nU3RvcmUtPmNyZWF0ZU9iamVjdFN0b3JlKHRyYW5zYWN0aW9uLmluZm8oKS5pZGVu
dGlmaWVyKCksIGluZm8pOwogICAgIGlmIChlcnJvci5pc051bGwoKSkKQEAgLTYyMSw3ICs2MjEs
NyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpkZWxldGVPYmplY3RTdG9yZShVbmlxdWVJREJE
YXRhYmFzZVRyYW5zYWN0aW9uJiB0cmFuc2FjdAogCiAgICAgICAgIG1fbWFuYWdlci0+cmVxdWVz
dFNwYWNlKG1faWRlbnRpZmllci5vcmlnaW4oKSwgMCwgW3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0
ciB7ICp0aGlzIH0sIHdlYWtUcmFuc2FjdGlvbiA9IFdlYWtQdHIgeyB0cmFuc2FjdGlvbiB9LCBv
YmplY3RTdG9yZU5hbWUsIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKGJvb2wgZ3JhbnRl
ZCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAoIXdlYWtUaGlzIHx8ICF3ZWFrVHJhbnNhY3Rp
b24pCi0gICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0
YXRlRXJyb3IsICJEYXRhYmFzZSBvciB0cmFuc2FjdGlvbiBpcyBjbG9zZWQiIH0pOworICAgICAg
ICAgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAi
RGF0YWJhc2Ugb3IgdHJhbnNhY3Rpb24gaXMgY2xvc2VkIl9zIH0pOwogCiAgICAgICAgICAgICBk
ZWxldGVPYmplY3RTdG9yZSgqd2Vha1RyYW5zYWN0aW9uLCBvYmplY3RTdG9yZU5hbWUsIFdURk1v
dmUoY2FsbGJhY2spLCBncmFudGVkID8gU3BhY2VDaGVja1Jlc3VsdDo6UGFzcyA6IFNwYWNlQ2hl
Y2tSZXN1bHQ6OkZhaWwpOwogICAgICAgICB9KTsKQEAgLTYzNiw3ICs2MzYsNyBAQCB2b2lkIFVu
aXF1ZUlEQkRhdGFiYXNlOjpkZWxldGVPYmplY3RTdG9yZShVbmlxdWVJREJEYXRhYmFzZVRyYW5z
YWN0aW9uJiB0cmFuc2FjdAogICAgIH0KIAogICAgIGlmICghbV9iYWNraW5nU3RvcmUpCi0gICAg
ICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiQmFja2lu
ZyBzdG9yZSBpcyBjbG9zZWQiIH0pOworICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3Ig
eyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xvc2VkIl9zIH0pOwogCiAg
ICAgYXV0byBlcnJvciA9IG1fYmFja2luZ1N0b3JlLT5kZWxldGVPYmplY3RTdG9yZSh0cmFuc2Fj
dGlvbi5pbmZvKCkuaWRlbnRpZmllcigpLCBpbmZvLT5pZGVudGlmaWVyKCkpOwogICAgIGlmIChl
cnJvci5pc051bGwoKSkKQEAgLTY1Nyw3ICs2NTcsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNl
OjpyZW5hbWVPYmplY3RTdG9yZShVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uJiB0cmFuc2Fj
dAogICAgICAgICBhdXRvIHRhc2tTaXplID0gZGVmYXVsdFdyaXRlT3BlcmF0aW9uQ29zdCArIG5l
d05hbWUuc2l6ZUluQnl0ZXMoKTsKICAgICAgICAgbV9tYW5hZ2VyLT5yZXF1ZXN0U3BhY2UobV9p
ZGVudGlmaWVyLm9yaWdpbigpLCB0YXNrU2l6ZSwgW3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7
ICp0aGlzIH0sIHdlYWtUcmFuc2FjdGlvbiA9IFdlYWtQdHIgeyB0cmFuc2FjdGlvbiB9LCBvYmpl
Y3RTdG9yZUlkZW50aWZpZXIsIG5ld05hbWUsIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayld
KGJvb2wgZ3JhbnRlZCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAoIXdlYWtUaGlzIHx8ICF3
ZWFrVHJhbnNhY3Rpb24pCi0gICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9y
IHsgSW52YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBvciB0cmFuc2FjdGlvbiBpcyBjbG9zZWQi
IH0pOworICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRT
dGF0ZUVycm9yLCAiRGF0YWJhc2Ugb3IgdHJhbnNhY3Rpb24gaXMgY2xvc2VkIl9zIH0pOwogCiAg
ICAgICAgICAgICByZW5hbWVPYmplY3RTdG9yZSgqd2Vha1RyYW5zYWN0aW9uLCBvYmplY3RTdG9y
ZUlkZW50aWZpZXIsIG5ld05hbWUsIFdURk1vdmUoY2FsbGJhY2spLCBncmFudGVkID8gU3BhY2VD
aGVja1Jlc3VsdDo6UGFzcyA6IFNwYWNlQ2hlY2tSZXN1bHQ6OkZhaWwpOwogICAgICAgICB9KTsK
QEAgLTY3Niw3ICs2NzYsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpyZW5hbWVPYmplY3RT
dG9yZShVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uJiB0cmFuc2FjdAogICAgIH0KIAogICAg
IGlmICghbV9iYWNraW5nU3RvcmUpCi0gICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7
IEludmFsaWRTdGF0ZUVycm9yLCAiQmFja2luZyBzdG9yZSBpcyBjbG9zZWQiIH0pOworICAgICAg
ICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcg
c3RvcmUgaXMgY2xvc2VkIl9zIH0pOwogCiAgICAgYXV0byBlcnJvciA9IG1fYmFja2luZ1N0b3Jl
LT5yZW5hbWVPYmplY3RTdG9yZSh0cmFuc2FjdGlvbi5pbmZvKCkuaWRlbnRpZmllcigpLCBvYmpl
Y3RTdG9yZUlkZW50aWZpZXIsIG5ld05hbWUpOwogICAgIGlmIChlcnJvci5pc051bGwoKSkKQEAg
LTY5Niw3ICs2OTYsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpjbGVhck9iamVjdFN0b3Jl
KFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mIHRyYW5zYWN0aQogCiAgICAgICAgIG1fbWFu
YWdlci0+cmVxdWVzdFNwYWNlKG1faWRlbnRpZmllci5vcmlnaW4oKSwgMCwgW3RoaXMsIHdlYWtU
aGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHdlYWtUcmFuc2FjdGlvbiA9IFdlYWtQdHIgeyB0cmFu
c2FjdGlvbiB9LCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGNhbGxiYWNrID0gV1RGTW92ZShjYWxs
YmFjayldKGJvb2wgZ3JhbnRlZCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAoIXdlYWtUaGlz
IHx8ICF3ZWFrVHJhbnNhY3Rpb24pCi0gICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElE
QkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBvciB0cmFuc2FjdGlvbiBpcyBj
bG9zZWQiIH0pOworICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IElu
dmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJhc2Ugb3IgdHJhbnNhY3Rpb24gaXMgY2xvc2VkIl9zIH0p
OwogCiAgICAgICAgICAgICBjbGVhck9iamVjdFN0b3JlKCp3ZWFrVHJhbnNhY3Rpb24sIG9iamVj
dFN0b3JlSWRlbnRpZmllciwgV1RGTW92ZShjYWxsYmFjayksIGdyYW50ZWQgPyBTcGFjZUNoZWNr
UmVzdWx0OjpQYXNzIDogU3BhY2VDaGVja1Jlc3VsdDo6RmFpbCk7CiAgICAgICAgIH0pOwpAQCAt
NzA1LDcgKzcwNSw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmNsZWFyT2JqZWN0U3RvcmUo
VW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbiYgdHJhbnNhY3RpCiAKICAgICBBU1NFUlQoc3Bh
Y2VDaGVja1Jlc3VsdCA9PSBTcGFjZUNoZWNrUmVzdWx0OjpQYXNzKTsKICAgICBpZiAoIW1fYmFj
a2luZ1N0b3JlKQotICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3Rh
dGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xvc2VkIiB9KTsKKyAgICAgICAgcmV0dXJuIGNh
bGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3JlIGlzIGNs
b3NlZCJfcyB9KTsKIAogICAgIGF1dG8gZXJyb3IgPSBtX2JhY2tpbmdTdG9yZS0+Y2xlYXJPYmpl
Y3RTdG9yZSh0cmFuc2FjdGlvbi5pbmZvKCkuaWRlbnRpZmllcigpLCBvYmplY3RTdG9yZUlkZW50
aWZpZXIpOwogICAgIGNhbGxiYWNrKGVycm9yKTsKQEAgLTcyMyw3ICs3MjMsNyBAQCB2b2lkIFVu
aXF1ZUlEQkRhdGFiYXNlOjpjcmVhdGVJbmRleChVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9u
JiB0cmFuc2FjdGlvbiwgYwogICAgICAgICBhdXRvIHRhc2tTaXplID0gZGVmYXVsdFdyaXRlT3Bl
cmF0aW9uQ29zdCArIGVzdGltYXRlU2l6ZShpbmZvKTsKICAgICAgICAgbV9tYW5hZ2VyLT5yZXF1
ZXN0U3BhY2UobV9pZGVudGlmaWVyLm9yaWdpbigpLCB0YXNrU2l6ZSwgW3RoaXMsIHdlYWtUaGlz
ID0gV2Vha1B0ciB7ICp0aGlzIH0sIHdlYWtUcmFuc2FjdGlvbiA9IFdlYWtQdHIgeyB0cmFuc2Fj
dGlvbiB9LCBpbmZvLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXShib29sIGdyYW50ZWQp
IG11dGFibGUgewogICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcyB8fCAhd2Vha1RyYW5zYWN0aW9u
KQotICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0
ZUVycm9yLCAiRGF0YWJhc2Ugb3IgdHJhbnNhY3Rpb24gaXMgY2xvc2VkIiB9KTsKKyAgICAgICAg
ICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkRh
dGFiYXNlIG9yIHRyYW5zYWN0aW9uIGlzIGNsb3NlZCJfcyB9KTsKIAogICAgICAgICAgICAgY3Jl
YXRlSW5kZXgoKndlYWtUcmFuc2FjdGlvbiwgaW5mbywgV1RGTW92ZShjYWxsYmFjayksIGdyYW50
ZWQgPyBTcGFjZUNoZWNrUmVzdWx0OjpQYXNzIDogU3BhY2VDaGVja1Jlc3VsdDo6RmFpbCk7CiAg
ICAgICAgIH0pOwpAQCAtNzM2LDcgKzczNiw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmNy
ZWF0ZUluZGV4KFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uLCBjCiAg
ICAgfQogCiAgICAgaWYgKCFtX2JhY2tpbmdTdG9yZSkKLSAgICAgICAgcmV0dXJuIGNhbGxiYWNr
KElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3JlIGlzIGNsb3NlZCIg
fSk7CisgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9y
LCAiQmFja2luZyBzdG9yZSBpcyBjbG9zZWQiX3MgfSk7CiAKICAgICBhdXRvIGVycm9yID0gbV9i
YWNraW5nU3RvcmUtPmNyZWF0ZUluZGV4KHRyYW5zYWN0aW9uLmluZm8oKS5pZGVudGlmaWVyKCks
IGluZm8pOwogICAgIGlmIChlcnJvci5pc051bGwoKSkgewpAQCAtNzYxLDcgKzc2MSw3IEBAIHZv
aWQgVW5pcXVlSURCRGF0YWJhc2U6OmRlbGV0ZUluZGV4KFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNh
Y3Rpb24mIHRyYW5zYWN0aW9uLCB1CiAKICAgICAgICAgbV9tYW5hZ2VyLT5yZXF1ZXN0U3BhY2Uo
bV9pZGVudGlmaWVyLm9yaWdpbigpLCAwLCBbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRo
aXMgfSwgd2Vha1RyYW5zYWN0aW9uID0gV2Vha1B0ciB7IHRyYW5zYWN0aW9uIH0sIG9iamVjdFN0
b3JlSWRlbnRpZmllciwgaW5kZXhOYW1lLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXShi
b29sIGdyYW50ZWQpIG11dGFibGUgewogICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcyB8fCAhd2Vh
a1RyYW5zYWN0aW9uKQotICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7
IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJhc2Ugb3IgdHJhbnNhY3Rpb24gaXMgY2xvc2VkIiB9
KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3Rh
dGVFcnJvciwgIkRhdGFiYXNlIG9yIHRyYW5zYWN0aW9uIGlzIGNsb3NlZCJfcyB9KTsKIAogICAg
ICAgICAgICAgZGVsZXRlSW5kZXgoKndlYWtUcmFuc2FjdGlvbiwgb2JqZWN0U3RvcmVJZGVudGlm
aWVyLCBpbmRleE5hbWUsIFdURk1vdmUoY2FsbGJhY2spLCBncmFudGVkID8gU3BhY2VDaGVja1Jl
c3VsdDo6UGFzcyA6IFNwYWNlQ2hlY2tSZXN1bHQ6OkZhaWwpOwogICAgICAgICB9KTsKQEAgLTc3
MCw3ICs3NzAsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpkZWxldGVJbmRleChVbmlxdWVJ
REJEYXRhYmFzZVRyYW5zYWN0aW9uJiB0cmFuc2FjdGlvbiwgdQogCiAgICAgQVNTRVJUKHNwYWNl
Q2hlY2tSZXN1bHQgPT0gU3BhY2VDaGVja1Jlc3VsdDo6UGFzcyk7CiAgICAgaWYgKCFtX2JhY2tp
bmdTdG9yZSkKLSAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRl
RXJyb3IsICJCYWNraW5nIHN0b3JlIGlzIGNsb3NlZCIgfSk7CisgICAgICAgIHJldHVybiBjYWxs
YmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiQmFja2luZyBzdG9yZSBpcyBjbG9z
ZWQiX3MgfSk7CiAKICAgICBhdXRvKiBvYmplY3RTdG9yZUluZm8gPSBtX2RhdGFiYXNlSW5mby0+
aW5mb0ZvckV4aXN0aW5nT2JqZWN0U3RvcmUob2JqZWN0U3RvcmVJZGVudGlmaWVyKTsKICAgICBp
ZiAoIW9iamVjdFN0b3JlSW5mbykgewpAQCAtODA0LDcgKzgwNCw3IEBAIHZvaWQgVW5pcXVlSURC
RGF0YWJhc2U6OnJlbmFtZUluZGV4KFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mIHRyYW5z
YWN0aW9uLCB1CiAgICAgICAgIGF1dG8gdGFza1NpemUgPSBkZWZhdWx0V3JpdGVPcGVyYXRpb25D
b3N0ICsgbmV3TmFtZS5zaXplSW5CeXRlcygpOwogICAgICAgICBtX21hbmFnZXItPnJlcXVlc3RT
cGFjZShtX2lkZW50aWZpZXIub3JpZ2luKCksIHRhc2tTaXplLCBbdGhpcywgd2Vha1RoaXMgPSBX
ZWFrUHRyIHsgKnRoaXMgfSwgd2Vha1RyYW5zYWN0aW9uID0gV2Vha1B0ciB7IHRyYW5zYWN0aW9u
IH0sIG9iamVjdFN0b3JlSWRlbnRpZmllciwgaW5kZXhJZGVudGlmaWVyLCBuZXdOYW1lLCBjYWxs
YmFjayA9IFdURk1vdmUoY2FsbGJhY2spXShib29sIGdyYW50ZWQpIG11dGFibGUgewogICAgICAg
ICAgICAgaWYgKCF3ZWFrVGhpcyB8fCAhd2Vha1RyYW5zYWN0aW9uKQotICAgICAgICAgICAgICAg
IHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJhc2Ug
b3IgdHJhbnNhY3Rpb24gaXMgY2xvc2VkIiB9KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gY2Fs
bGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkRhdGFiYXNlIG9yIHRyYW5zYWN0
aW9uIGlzIGNsb3NlZCJfcyB9KTsKIAogICAgICAgICAgICAgcmVuYW1lSW5kZXgoKndlYWtUcmFu
c2FjdGlvbiwgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBpbmRleElkZW50aWZpZXIsIG5ld05hbWUs
IFdURk1vdmUoY2FsbGJhY2spLCBncmFudGVkID8gU3BhY2VDaGVja1Jlc3VsdDo6UGFzcyA6IFNw
YWNlQ2hlY2tSZXN1bHQ6OkZhaWwpOwogICAgICAgICB9KTsKQEAgLTgxNyw3ICs4MTcsNyBAQCB2
b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpyZW5hbWVJbmRleChVbmlxdWVJREJEYXRhYmFzZVRyYW5z
YWN0aW9uJiB0cmFuc2FjdGlvbiwgdQogICAgIH0KIAogICAgIGlmICghbV9iYWNraW5nU3RvcmUp
Ci0gICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAi
QmFja2luZyBzdG9yZSBpcyBjbG9zZWQiIH0pOworICAgICAgICByZXR1cm4gY2FsbGJhY2soSURC
RXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xvc2VkIl9zIH0p
OwogCiAgICAgYXV0byogb2JqZWN0U3RvcmVJbmZvID0gbV9kYXRhYmFzZUluZm8tPmluZm9Gb3JF
eGlzdGluZ09iamVjdFN0b3JlKG9iamVjdFN0b3JlSWRlbnRpZmllcik7CiAgICAgaWYgKCFvYmpl
Y3RTdG9yZUluZm8pIHsKQEAgLTg0Niw3ICs4NDYsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNl
OjpwdXRPckFkZChjb25zdCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdERhdGEsIGNvbnN0IElEQktl
eQogICAgIEFTU0VSVChtX2RhdGFiYXNlSW5mbyk7CiAKICAgICBpZiAoIW1fYmFja2luZ1N0b3Jl
KQotICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwg
IkJhY2tpbmcgc3RvcmUgaXMgY2xvc2VkIiB9LCBrZXlEYXRhKTsKKyAgICAgICAgcmV0dXJuIGNh
bGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3JlIGlzIGNs
b3NlZCJfcyB9LCBrZXlEYXRhKTsKIAogICAgIGF1dG8gb2JqZWN0U3RvcmVJZGVudGlmaWVyID0g
cmVxdWVzdERhdGEub2JqZWN0U3RvcmVJZGVudGlmaWVyKCk7CiAgICAgYXV0byogb2JqZWN0U3Rv
cmVJbmZvID0gbV9iYWNraW5nU3RvcmUtPmluZm9Gb3JPYmplY3RTdG9yZShvYmplY3RTdG9yZUlk
ZW50aWZpZXIpOwpAQCAtOTAxLDcgKzkwMSw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OnB1
dE9yQWRkKGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0YSwgY29uc3QgSURCS2V5CiAg
ICAgTE9HKEluZGV4ZWREQiwgIlVuaXF1ZUlEQkRhdGFiYXNlOjpwdXRPckFkZCBxdW90YSBjaGVj
ayB3aXRoIHRhc2sgc2l6ZTogJSIgUFJJdTY0ICIga2V5IHNpemU6ICUiIFBSSXU2NCAiIHZhbHVl
IHNpemU6ICUiIFBSSXU2NCAiIGluZGV4IHNpemU6ICUiIFBSSXU2NCwgdGFza1NpemUsIGtleVNp
emUsIHZhbHVlU2l6ZSwgaW5kZXhTaXplKTsKICAgICBtX21hbmFnZXItPnJlcXVlc3RTcGFjZSht
X2lkZW50aWZpZXIub3JpZ2luKCksIHRhc2tTaXplLCBbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRy
IHsgKnRoaXMgfSwgcmVxdWVzdERhdGEsIHVzZWRLZXksIHZhbHVlLCBvdmVyd3JpdGVNb2RlLCBj
YWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spLCB1c2VkS2V5SXNHZW5lcmF0ZWQsIGluZGV4S2V5
cywgb2JqZWN0U3RvcmVJbmZvID0gKm9iamVjdFN0b3JlSW5mb10oYm9vbCBncmFudGVkKSBtdXRh
YmxlIHsKICAgICAgICAgaWYgKCF3ZWFrVGhpcykKLSAgICAgICAgICAgIHJldHVybiBjYWxsYmFj
ayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJhc2UgaXMgY2xvc2VkIiB9LCB1
c2VkS2V5KTsKKyAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRT
dGF0ZUVycm9yLCAiRGF0YWJhc2UgaXMgY2xvc2VkIl9zIH0sIHVzZWRLZXkpOwogCiAgICAgICAg
IHB1dE9yQWRkQWZ0ZXJTcGFjZUNoZWNrKHJlcXVlc3REYXRhLCB1c2VkS2V5LCB2YWx1ZSwgb3Zl
cndyaXRlTW9kZSwgV1RGTW92ZShjYWxsYmFjayksIHVzZWRLZXlJc0dlbmVyYXRlZCwgaW5kZXhL
ZXlzLCBvYmplY3RTdG9yZUluZm8sIGdyYW50ZWQgPyBTcGFjZUNoZWNrUmVzdWx0OjpQYXNzIDog
U3BhY2VDaGVja1Jlc3VsdDo6RmFpbCk7CiAgICAgfSk7CkBAIC05MTMsNyArOTEzLDcgQEAgdm9p
ZCBVbmlxdWVJREJEYXRhYmFzZTo6cHV0T3JBZGRBZnRlclNwYWNlQ2hlY2soY29uc3QgSURCUmVx
dWVzdERhdGEmIHJlcXVlc3REYXQKICAgICBBU1NFUlQobV9kYXRhYmFzZUluZm8pOwogCiAgICAg
aWYgKCFtX2JhY2tpbmdTdG9yZSkKLSAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsg
SW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3JlIGlzIGNsb3NlZCIgfSwga2V5RGF0YSk7
CisgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAi
QmFja2luZyBzdG9yZSBpcyBjbG9zZWQiX3MgfSwga2V5RGF0YSk7CiAKICAgICB1aW50NjRfdCBr
ZXlOdW1iZXIgPSBpc0tleUdlbmVyYXRlZCA/IGtleURhdGEubnVtYmVyKCkgOiAwOwogICAgIGF1
dG8gb2JqZWN0U3RvcmVJZGVudGlmaWVyID0gb2JqZWN0U3RvcmVJbmZvLmlkZW50aWZpZXIoKTsK
QEAgLTk1Myw3ICs5NTMsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpnZXRSZWNvcmQoY29u
c3QgSURCUmVxdWVzdERhdGEmIHJlcXVlc3REYXRhLCBjb25zdCBJREJHZQogCiAgICAgICAgIG1f
bWFuYWdlci0+cmVxdWVzdFNwYWNlKG1faWRlbnRpZmllci5vcmlnaW4oKSwgMCwgW3RoaXMsIHdl
YWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHJlcXVlc3REYXRhLCBnZXRSZWNvcmREYXRhLCBj
YWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXShib29sIGdyYW50ZWQpIG11dGFibGUgewogICAg
ICAgICAgICAgaWYgKCF3ZWFrVGhpcykKLSAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2so
SURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkRhdGFiYXNlIGlzIGNsb3NlZCIgfSwgSURC
R2V0UmVzdWx0IHsgfSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9y
IHsgSW52YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBpcyBjbG9zZWQiX3MgfSwgSURCR2V0UmVz
dWx0IHsgfSk7CiAKICAgICAgICAgICAgIGdldFJlY29yZChyZXF1ZXN0RGF0YSwgZ2V0UmVjb3Jk
RGF0YSwgV1RGTW92ZShjYWxsYmFjayksIGdyYW50ZWQgPyBTcGFjZUNoZWNrUmVzdWx0OjpQYXNz
IDogU3BhY2VDaGVja1Jlc3VsdDo6RmFpbCk7CiAgICAgICAgIH0pOwpAQCAtOTYyLDcgKzk2Miw3
IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmdldFJlY29yZChjb25zdCBJREJSZXF1ZXN0RGF0
YSYgcmVxdWVzdERhdGEsIGNvbnN0IElEQkdlCiAKICAgICBBU1NFUlQoc3BhY2VDaGVja1Jlc3Vs
dCA9PSBTcGFjZUNoZWNrUmVzdWx0OjpQYXNzKTsKICAgICBpZiAoIW1fYmFja2luZ1N0b3JlKQot
ICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJh
Y2tpbmcgc3RvcmUgaXMgY2xvc2VkIiB9LCBJREJHZXRSZXN1bHQgeyB9KTsKKyAgICAgICAgcmV0
dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3Jl
IGlzIGNsb3NlZCJfcyB9LCBJREJHZXRSZXN1bHQgeyB9KTsKIAogICAgIElEQkdldFJlc3VsdCBy
ZXN1bHQ7CiAgICAgSURCRXJyb3IgZXJyb3I7CkBAIC05ODYsNyArOTg2LDcgQEAgdm9pZCBVbmlx
dWVJREJEYXRhYmFzZTo6Z2V0QWxsUmVjb3Jkcyhjb25zdCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVz
dERhdGEsIGNvbnN0IEkKIAogICAgICAgICBtX21hbmFnZXItPnJlcXVlc3RTcGFjZShtX2lkZW50
aWZpZXIub3JpZ2luKCksIDAsIFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCBy
ZXF1ZXN0RGF0YSwgZ2V0QWxsUmVjb3Jkc0RhdGEsIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFj
ayldKGJvb2wgZ3JhbnRlZCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAoIXdlYWtUaGlzKQot
ICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVy
cm9yLCAiRGF0YWJhc2UgaXMgY2xvc2VkIiB9LCBJREJHZXRBbGxSZXN1bHQgeyB9KTsKKyAgICAg
ICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwg
IkRhdGFiYXNlIGlzIGNsb3NlZCJfcyB9LCBJREJHZXRBbGxSZXN1bHQgeyB9KTsKIAogICAgICAg
ICAgICAgZ2V0QWxsUmVjb3JkcyhyZXF1ZXN0RGF0YSwgZ2V0QWxsUmVjb3Jkc0RhdGEsIFdURk1v
dmUoY2FsbGJhY2spLCBncmFudGVkID8gU3BhY2VDaGVja1Jlc3VsdDo6UGFzcyA6IFNwYWNlQ2hl
Y2tSZXN1bHQ6OkZhaWwpOwogICAgICAgICB9KTsKQEAgLTk5NSw3ICs5OTUsNyBAQCB2b2lkIFVu
aXF1ZUlEQkRhdGFiYXNlOjpnZXRBbGxSZWNvcmRzKGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1
ZXN0RGF0YSwgY29uc3QgSQogCiAgICAgQVNTRVJUKHNwYWNlQ2hlY2tSZXN1bHQgPT0gU3BhY2VD
aGVja1Jlc3VsdDo6UGFzcyk7CiAgICAgaWYgKCFtX2JhY2tpbmdTdG9yZSkKLSAgICAgICAgcmV0
dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3Jl
IGlzIGNsb3NlZCIgfSwgSURCR2V0QWxsUmVzdWx0IHsgfSk7CisgICAgICAgIHJldHVybiBjYWxs
YmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiQmFja2luZyBzdG9yZSBpcyBjbG9z
ZWQiX3MgfSwgSURCR2V0QWxsUmVzdWx0IHsgfSk7CiAKICAgICBJREJHZXRBbGxSZXN1bHQgcmVz
dWx0OwogICAgIGF1dG8gZXJyb3IgPSBtX2JhY2tpbmdTdG9yZS0+Z2V0QWxsUmVjb3JkcyhyZXF1
ZXN0RGF0YS50cmFuc2FjdGlvbklkZW50aWZpZXIoKSwgZ2V0QWxsUmVjb3Jkc0RhdGEsIHJlc3Vs
dCk7CkBAIC0xMDE0LDcgKzEwMTQsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpnZXRDb3Vu
dChjb25zdCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdERhdGEsIGNvbnN0IElEQktleQogCiAgICAg
ICAgIG1fbWFuYWdlci0+cmVxdWVzdFNwYWNlKG1faWRlbnRpZmllci5vcmlnaW4oKSwgMCwgW3Ro
aXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHJlcXVlc3REYXRhLCByYW5nZSwgY2Fs
bGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oYm9vbCBncmFudGVkKSBtdXRhYmxlIHsKICAgICAg
ICAgICAgIGlmICghd2Vha1RoaXMpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElE
QkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBpcyBjbG9zZWQiIH0sIDApOwor
ICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVy
cm9yLCAiRGF0YWJhc2UgaXMgY2xvc2VkIl9zIH0sIDApOwogCiAgICAgICAgICAgICBnZXRDb3Vu
dChyZXF1ZXN0RGF0YSwgcmFuZ2UsIFdURk1vdmUoY2FsbGJhY2spLCBncmFudGVkID8gU3BhY2VD
aGVja1Jlc3VsdDo6UGFzcyA6IFNwYWNlQ2hlY2tSZXN1bHQ6OkZhaWwpOwogICAgICAgICB9KTsK
QEAgLTEwMjMsNyArMTAyMyw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmdldENvdW50KGNv
bnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0YSwgY29uc3QgSURCS2V5CiAKICAgICBBU1NF
UlQoc3BhY2VDaGVja1Jlc3VsdCA9PSBTcGFjZUNoZWNrUmVzdWx0OjpQYXNzKTsKICAgICBpZiAo
IW1fYmFja2luZ1N0b3JlKQotICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZh
bGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xvc2VkIiB9LCAwKTsKKyAgICAgICAg
cmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0
b3JlIGlzIGNsb3NlZCJfcyB9LCAwKTsKIAogICAgIHVpbnQ2NF90IGNvdW50ID0gMDsKICAgICBh
dXRvIGVycm9yID0gbV9iYWNraW5nU3RvcmUtPmdldENvdW50KHJlcXVlc3REYXRhLnRyYW5zYWN0
aW9uSWRlbnRpZmllcigpLCByZXF1ZXN0RGF0YS5vYmplY3RTdG9yZUlkZW50aWZpZXIoKSwgcmVx
dWVzdERhdGEuaW5kZXhJZGVudGlmaWVyKCksIHJhbmdlLCBjb3VudCk7CkBAIC0xMDQyLDcgKzEw
NDIsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpkZWxldGVSZWNvcmQoY29uc3QgSURCUmVx
dWVzdERhdGEmIHJlcXVlc3REYXRhLCBjb25zdCBJRAogCiAgICAgICAgIG1fbWFuYWdlci0+cmVx
dWVzdFNwYWNlKG1faWRlbnRpZmllci5vcmlnaW4oKSwgMCwgW3RoaXMsIHdlYWtUaGlzID0gV2Vh
a1B0ciB7ICp0aGlzIH0sIHJlcXVlc3REYXRhLCBrZXlSYW5nZURhdGEsIGNhbGxiYWNrID0gV1RG
TW92ZShjYWxsYmFjayldKGJvb2wgZ3JhbnRlZCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAo
IXdlYWtUaGlzKQotICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IElu
dmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJhc2UgaXMgY2xvc2VkIiB9KTsKKyAgICAgICAgICAgICAg
ICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkRhdGFiYXNl
IGlzIGNsb3NlZCJfcyB9KTsKIAogICAgICAgICAgICAgZGVsZXRlUmVjb3JkKHJlcXVlc3REYXRh
LCBrZXlSYW5nZURhdGEsIFdURk1vdmUoY2FsbGJhY2spLCBncmFudGVkID8gU3BhY2VDaGVja1Jl
c3VsdDo6UGFzcyA6IFNwYWNlQ2hlY2tSZXN1bHQ6OkZhaWwpOwogICAgICAgICB9KTsKQEAgLTEw
NTEsNyArMTA1MSw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmRlbGV0ZVJlY29yZChjb25z
dCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdERhdGEsIGNvbnN0IElECiAKICAgICBBU1NFUlQoc3Bh
Y2VDaGVja1Jlc3VsdCA9PSBTcGFjZUNoZWNrUmVzdWx0OjpQYXNzKTsKICAgICBpZiAoIW1fYmFj
a2luZ1N0b3JlKQotICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3Rh
dGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xvc2VkIiB9KTsKKyAgICAgICAgcmV0dXJuIGNh
bGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3JlIGlzIGNs
b3NlZCJfcyB9KTsKIAogICAgIGF1dG8gZXJyb3IgPSBtX2JhY2tpbmdTdG9yZS0+ZGVsZXRlUmFu
Z2UocmVxdWVzdERhdGEudHJhbnNhY3Rpb25JZGVudGlmaWVyKCksIHJlcXVlc3REYXRhLm9iamVj
dFN0b3JlSWRlbnRpZmllcigpLCBrZXlSYW5nZURhdGEpOwogCkBAIC0xMDY5LDcgKzEwNjksNyBA
QCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpvcGVuQ3Vyc29yKGNvbnN0IElEQlJlcXVlc3REYXRh
JiByZXF1ZXN0RGF0YSwgY29uc3QgSURCQwogCiAgICAgICAgIG1fbWFuYWdlci0+cmVxdWVzdFNw
YWNlKG1faWRlbnRpZmllci5vcmlnaW4oKSwgMCwgW3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7
ICp0aGlzIH0sIHJlcXVlc3REYXRhLCBpbmZvLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2sp
XShib29sIGdyYW50ZWQpIG11dGFibGUgewogICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcykKLSAg
ICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJv
ciwgIkRhdGFiYXNlIG9yIHRyYW5zYWN0aW9uIGlzIGNsb3NlZCIgfSwgSURCR2V0UmVzdWx0IHsg
fSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0
YXRlRXJyb3IsICJEYXRhYmFzZSBvciB0cmFuc2FjdGlvbiBpcyBjbG9zZWQiX3MgfSwgSURCR2V0
UmVzdWx0IHsgfSk7CiAKICAgICAgICAgICAgIG9wZW5DdXJzb3IocmVxdWVzdERhdGEsIGluZm8s
IFdURk1vdmUoY2FsbGJhY2spLCBncmFudGVkID8gU3BhY2VDaGVja1Jlc3VsdDo6UGFzcyA6IFNw
YWNlQ2hlY2tSZXN1bHQ6OkZhaWwpOwogICAgICAgICB9KTsKQEAgLTEwNzgsNyArMTA3OCw3IEBA
IHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6Om9wZW5DdXJzb3IoY29uc3QgSURCUmVxdWVzdERhdGEm
IHJlcXVlc3REYXRhLCBjb25zdCBJREJDCiAKICAgICBBU1NFUlQoc3BhY2VDaGVja1Jlc3VsdCA9
PSBTcGFjZUNoZWNrUmVzdWx0OjpQYXNzKTsKICAgICBpZiAoIW1fYmFja2luZ1N0b3JlKQotICAg
ICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tp
bmcgc3RvcmUgaXMgY2xvc2VkIiB9LCBJREJHZXRSZXN1bHQgeyB9KTsKKyAgICAgICAgcmV0dXJu
IGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3JlIGlz
IGNsb3NlZCJfcyB9LCBJREJHZXRSZXN1bHQgeyB9KTsKIAogICAgIElEQkdldFJlc3VsdCByZXN1
bHQ7CiAgICAgYXV0byBlcnJvciA9IG1fYmFja2luZ1N0b3JlLT5vcGVuQ3Vyc29yKHJlcXVlc3RE
YXRhLnRyYW5zYWN0aW9uSWRlbnRpZmllcigpLCBpbmZvLCByZXN1bHQpOwpAQCAtMTA5Nyw3ICsx
MDk3LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6aXRlcmF0ZUN1cnNvcihjb25zdCBJREJS
ZXF1ZXN0RGF0YSYgcmVxdWVzdERhdGEsIGNvbnN0IEkKIAogICAgICAgICBtX21hbmFnZXItPnJl
cXVlc3RTcGFjZShtX2lkZW50aWZpZXIub3JpZ2luKCksIDAsIFt0aGlzLCB3ZWFrVGhpcyA9IFdl
YWtQdHIgeyAqdGhpcyB9LCByZXF1ZXN0RGF0YSwgZGF0YSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNh
bGxiYWNrKV0oYm9vbCBncmFudGVkKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlmICghd2Vha1Ro
aXMpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0
YXRlRXJyb3IsICJEYXRhYmFzZSBvciB0cmFuc2FjdGlvbiBpcyBjbG9zZWQiIH0sIElEQkdldFJl
c3VsdCB7IH0pOworICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IElu
dmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJhc2Ugb3IgdHJhbnNhY3Rpb24gaXMgY2xvc2VkIl9zIH0s
IElEQkdldFJlc3VsdCB7IH0pOwogCiAgICAgICAgICAgICBpdGVyYXRlQ3Vyc29yKHJlcXVlc3RE
YXRhLCBkYXRhLCBXVEZNb3ZlKGNhbGxiYWNrKSwgZ3JhbnRlZCA/IFNwYWNlQ2hlY2tSZXN1bHQ6
OlBhc3MgOiBTcGFjZUNoZWNrUmVzdWx0OjpGYWlsKTsKICAgICAgICAgfSk7CkBAIC0xMTA2LDcg
KzExMDYsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjppdGVyYXRlQ3Vyc29yKGNvbnN0IElE
QlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0YSwgY29uc3QgSQogCiAgICAgQVNTRVJUKHNwYWNlQ2hl
Y2tSZXN1bHQgPT0gU3BhY2VDaGVja1Jlc3VsdDo6UGFzcyk7CiAgICAgaWYgKCFtX2JhY2tpbmdT
dG9yZSkKLSAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJy
b3IsICJCYWNraW5nIHN0b3JlIGlzIGNsb3NlZCIgfSwgSURCR2V0UmVzdWx0IHsgfSk7CisgICAg
ICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiQmFja2lu
ZyBzdG9yZSBpcyBjbG9zZWQiX3MgfSwgSURCR2V0UmVzdWx0IHsgfSk7CiAKICAgICBJREJHZXRS
ZXN1bHQgcmVzdWx0OwogICAgIGF1dG8gdHJhbnNhY3Rpb25JZGVudGlmaWVyID0gcmVxdWVzdERh
dGEudHJhbnNhY3Rpb25JZGVudGlmaWVyKCk7CkBAIC0xMTI3LDcgKzExMjcsNyBAQCB2b2lkIFVu
aXF1ZUlEQkRhdGFiYXNlOjpjb21taXRUcmFuc2FjdGlvbihVbmlxdWVJREJEYXRhYmFzZVRyYW5z
YWN0aW9uJiB0cmFuc2FjdAogCiAgICAgICAgIG1fbWFuYWdlci0+cmVxdWVzdFNwYWNlKG1faWRl
bnRpZmllci5vcmlnaW4oKSwgMCwgW3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0s
IHdlYWtUcmFuc2FjdGlvbiA9IFdlYWtQdHIgeyB0cmFuc2FjdGlvbiB9LCBjYWxsYmFjayA9IFdU
Rk1vdmUoY2FsbGJhY2spXShib29sIGdyYW50ZWQpIG11dGFibGUgewogICAgICAgICAgICAgaWYg
KCF3ZWFrVGhpcyB8fCAhd2Vha1RyYW5zYWN0aW9uKQotICAgICAgICAgICAgICAgIHJldHVybiBj
YWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJhc2Ugb3IgdHJhbnNh
Y3Rpb24gaXMgY2xvc2VkIiB9KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soSURC
RXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkRhdGFiYXNlIG9yIHRyYW5zYWN0aW9uIGlzIGNs
b3NlZCJfcyB9KTsKIAogICAgICAgICAgICAgY29tbWl0VHJhbnNhY3Rpb24oKndlYWtUcmFuc2Fj
dGlvbiwgV1RGTW92ZShjYWxsYmFjayksIGdyYW50ZWQgPyBTcGFjZUNoZWNrUmVzdWx0OjpQYXNz
IDogU3BhY2VDaGVja1Jlc3VsdDo6RmFpbCk7CiAgICAgICAgIH0pOwpAQCAtMTEzOCw3ICsxMTM4
LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6Y29tbWl0VHJhbnNhY3Rpb24oVW5pcXVlSURC
RGF0YWJhc2VUcmFuc2FjdGlvbiYgdHJhbnNhY3QKICAgICBBU1NFUlQodHJhbnNhY3Rpb24uZGF0
YWJhc2VDb25uZWN0aW9uKCkuZGF0YWJhc2UoKSA9PSB0aGlzKTsKIAogICAgIGlmICghbV9iYWNr
aW5nU3RvcmUpCi0gICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0
ZUVycm9yLCAiQmFja2luZyBzdG9yZSBpcyBjbG9zZWQiIH0pOworICAgICAgICByZXR1cm4gY2Fs
bGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xv
c2VkIl9zIH0pOwogCiAgICAgYXV0byB0YWtlblRyYW5zYWN0aW9uID0gbV9pblByb2dyZXNzVHJh
bnNhY3Rpb25zLnRha2UodHJhbnNhY3Rpb24uaW5mbygpLmlkZW50aWZpZXIoKSk7CiAgICAgaWYg
KCF0YWtlblRyYW5zYWN0aW9uKSB7CkBAIC0xMTY2LDcgKzExNjYsNyBAQCB2b2lkIFVuaXF1ZUlE
QkRhdGFiYXNlOjphYm9ydFRyYW5zYWN0aW9uKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24m
IHRyYW5zYWN0aQogCiAgICAgICAgIG1fbWFuYWdlci0+cmVxdWVzdFNwYWNlKG1faWRlbnRpZmll
ci5vcmlnaW4oKSwgMCwgW3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHdlYWtU
cmFuc2FjdGlvbiA9IFdlYWtQdHIgeyB0cmFuc2FjdGlvbiB9LCBjYWxsYmFjayA9IFdURk1vdmUo
Y2FsbGJhY2spXShib29sIGdyYW50ZWQpIG11dGFibGUgewogICAgICAgICAgICAgaWYgKCF3ZWFr
VGhpcyB8fCAhd2Vha1RyYW5zYWN0aW9uKQotICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFj
ayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJhc2Ugb3IgdHJhbnNhY3Rpb24g
aXMgY2xvc2VkIiB9KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3Ig
eyBJbnZhbGlkU3RhdGVFcnJvciwgIkRhdGFiYXNlIG9yIHRyYW5zYWN0aW9uIGlzIGNsb3NlZCJf
cyB9KTsKIAogICAgICAgICAgICAgYWJvcnRUcmFuc2FjdGlvbigqd2Vha1RyYW5zYWN0aW9uLCBX
VEZNb3ZlKGNhbGxiYWNrKSwgZ3JhbnRlZCA/IFNwYWNlQ2hlY2tSZXN1bHQ6OlBhc3MgOiBTcGFj
ZUNoZWNrUmVzdWx0OjpGYWlsKTsKICAgICAgICAgfSk7CkBAIC0xMjAyLDcgKzEyMDIsNyBAQCB2
b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjphYm9ydFRyYW5zYWN0aW9uKFVuaXF1ZUlEQkRhdGFiYXNl
VHJhbnNhY3Rpb24mIHRyYW5zYWN0aQogCiAgICAgSURCRXJyb3IgZXJyb3I7CiAgICAgaWYgKCFt
X2JhY2tpbmdTdG9yZSkKLSAgICAgICAgZXJyb3IgPSBJREJFcnJvciB7IEludmFsaWRTdGF0ZUVy
cm9yLCAiQmFja2luZyBzdG9yZSBpcyBjbG9zZWQiIH07CisgICAgICAgIGVycm9yID0gSURCRXJy
b3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xvc2VkIl9zIH07CiAg
ICAgZWxzZQogICAgICAgICBlcnJvciA9IG1fYmFja2luZ1N0b3JlLT5hYm9ydFRyYW5zYWN0aW9u
KHRyYW5zYWN0aW9uSWRlbnRpZmllcik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJJbmRleEluZm8uY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkluZGV4SW5mby5jcHAKaW5kZXggZTcxZDJlYmYy
MWM0YWRmZWYyOGEyYmRhZmExZmY4NGIzZjdmMDM5OC4uN2FiYTgzMWQ3MDBlYTk4ZmViMmNjOWFh
NDRjOTYyYzRiNTk0NDdiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvc2hhcmVkL0lEQkluZGV4SW5mby5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvc2hhcmVkL0lEQkluZGV4SW5mby5jcHAKQEAgLTYxLDcgKzYxLDcgQEAgU3Ry
aW5nIElEQkluZGV4SW5mbzo6bG9nZ2luZ1N0cmluZyhpbnQgaW5kZW50KSBjb25zdAogewogICAg
IFN0cmluZyBpbmRlbnRTdHJpbmc7CiAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBpbmRlbnQ7ICsr
aSkKLSAgICAgICAgaW5kZW50U3RyaW5nLmFwcGVuZCgiICIpOworICAgICAgICBpbmRlbnRTdHJp
bmcuYXBwZW5kKCcgJyk7CiAgICAgcmV0dXJuIG1ha2VTdHJpbmcoaW5kZW50U3RyaW5nLCAiSW5k
ZXg6ICIsIG1fbmFtZSwgIiAoIiwgbV9pZGVudGlmaWVyLCAiKSBrZXlQYXRoOiAiLCBXZWJDb3Jl
Ojpsb2dnaW5nU3RyaW5nKG1fa2V5UGF0aCksICdcbicpOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNIb3N0LmNw
cAppbmRleCBiODI1ZWM4MDA1MTQ4MDI4ZTJiMDdiMTlkYzc4MzkyYTQzYThjYmE1Li4zMzJmNDYy
NmJkMzJlODMxYWQ5MDhhNDZhYzRkYzE0NmU2ZWNjYTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRyb2xzSG9zdC5jcHAK
QEAgLTExOCwxNCArMTE4LDE0IEBAIE1lZGlhQ29udHJvbHNIb3N0Ojp+TWVkaWFDb250cm9sc0hv
c3QoKQogU3RyaW5nIE1lZGlhQ29udHJvbHNIb3N0OjpsYXlvdXRUcmFpdHNDbGFzc05hbWUoKSBj
b25zdAogewogI2lmIGRlZmluZWQoTUVESUFfQ09OVFJPTFNfSE9TVF9MQVlPVVRfVFJBSVRTX0NM
QVNTX05BTUVfT1ZFUlJJREUpCi0gICAgcmV0dXJuIE1FRElBX0NPTlRST0xTX0hPU1RfTEFZT1VU
X1RSQUlUU19DTEFTU19OQU1FX09WRVJSSURFOworICAgIHJldHVybiBNRURJQV9DT05UUk9MU19I
T1NUX0xBWU9VVF9UUkFJVFNfQ0xBU1NfTkFNRV9PVkVSUklERSIiX3M7CiAjZWxzZQogI2lmIFBM
QVRGT1JNKE1BQykgfHwgUExBVEZPUk0oTUFDQ0FUQUxZU1QpCi0gICAgcmV0dXJuICJNYWNPU0xh
eW91dFRyYWl0cyI7CisgICAgcmV0dXJuICJNYWNPU0xheW91dFRyYWl0cyJfczsKICNlbGlmIFBM
QVRGT1JNKElPUykKLSAgICByZXR1cm4gIklPU0xheW91dFRyYWl0cyI7CisgICAgcmV0dXJuICJJ
T1NMYXlvdXRUcmFpdHMiX3M7CiAjZWxpZiBQTEFURk9STShXQVRDSE9TKQotICAgIHJldHVybiAi
V2F0Y2hPU0xheW91dFRyYWl0cyI7CisgICAgcmV0dXJuICJXYXRjaE9TTGF5b3V0VHJhaXRzIl9z
OwogI2Vsc2UKICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICByZXR1cm4gbnVsbFN0cmlu
ZygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01l
ZGlhUmVjb3JkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29yZGVyL01l
ZGlhUmVjb3JkZXIuY3BwCmluZGV4IGE5MWU2NjkwMDA0ODMxNmE5YTkxM2NhMGQ1MTI4ZWFhMTUx
ZDljY2UuLmZmOTQ5OTljMjAyYTMyMDU0YzYxNmJmMzY2YzY3M2FlYjQyN2Y2NTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRl
ci5jcHAKQEAgLTY2LDcgKzY2LDcgQEAgRXhjZXB0aW9uT3I8UmVmPE1lZGlhUmVjb3JkZXI+PiBN
ZWRpYVJlY29yZGVyOjpjcmVhdGUoRG9jdW1lbnQmIGRvY3VtZW50LCBSZWY8TWUKICAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07CiAKICAgICBpZiAoIWlzVHlw
ZVN1cHBvcnRlZChkb2N1bWVudCwgb3B0aW9ucy5taW1lVHlwZSkpCi0gICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciwgIm1pbWVUeXBlIGlzIG5vdCBzdXBwb3J0ZWQi
IH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciwgIm1pbWVU
eXBlIGlzIG5vdCBzdXBwb3J0ZWQiX3MgfTsKIAogICAgIGF1dG8gcmVjb3JkZXIgPSBhZG9wdFJl
ZigqbmV3IE1lZGlhUmVjb3JkZXIoZG9jdW1lbnQsIFdURk1vdmUoc3RyZWFtKSwgV1RGTW92ZShv
cHRpb25zKSkpOwogICAgIHJlY29yZGVyLT5zdXNwZW5kSWZOZWVkZWQoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHAKaW5kZXggYTU5
MDM3YTQwNTg2MzE4ZjIxNmE2ZWEwMTlkYjI0YTliMDM5NzI0OC4uOGNiNmQ1Y2ZjMzhkNmVmODBm
N2UzOTQxZmI5NThhMzRkNTM1ZmNjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXNvdXJjZS9NZWRpYVNvdXJjZS5jcHAKQEAgLTY1MCw3ICs2NTAsNyBAQCBzdGF0aWMg
Q29udGVudFR5cGUgYWRkVlA5RnVsbFJhbmdlVmlkZW9GbGFnVG9Db250ZW50VHlwZShjb25zdCBD
b250ZW50VHlwZSYgdHlwZQogICAgICAgICBpZiAocG9zaXRpb24gPT0gbm90Rm91bmQpCiAgICAg
ICAgICAgICBjb250aW51ZTsKIAotICAgICAgICByYXdUeXBlLmluc2VydCgiLjAwIiwgcG9zaXRp
b24gKyBjb2RlYy5sZW5ndGgoKSk7CisgICAgICAgIHJhd1R5cGUuaW5zZXJ0KCIuMDAiX3MsIHBv
c2l0aW9uICsgY29kZWMubGVuZ3RoKCkpOwogICAgICAgICByZXR1cm4gQ29udGVudFR5cGUocmF3
VHlwZSk7CiAgICAgfQogICAgIHJldHVybiB0eXBlOwpAQCAtODk1LDcgKzg5NSw3IEBAIGJvb2wg
TWVkaWFTb3VyY2U6OmlzVHlwZVN1cHBvcnRlZChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250
ZXh0LCBjb25zdCBTdHJpbmcmCiAgICAgaWYgKGNvbnRleHQuaXNEb2N1bWVudCgpICYmIGRvd25j
YXN0PERvY3VtZW50Pihjb250ZXh0KS5xdWlya3MoKS5uZWVkc1ZQOUZ1bGxSYW5nZUZsYWdRdWly
aygpKQogICAgICAgICBjb250ZW50VHlwZSA9IGFkZFZQOUZ1bGxSYW5nZVZpZGVvRmxhZ1RvQ29u
dGVudFR5cGUoY29udGVudFR5cGUpOwogCi0gICAgU3RyaW5nIGNvZGVjcyA9IGNvbnRlbnRUeXBl
LnBhcmFtZXRlcigiY29kZWNzIik7CisgICAgU3RyaW5nIGNvZGVjcyA9IGNvbnRlbnRUeXBlLnBh
cmFtZXRlcigiY29kZWNzIl9zKTsKIAogICAgIC8vIDIuIElmIHR5cGUgZG9lcyBub3QgY29udGFp
biBhIHZhbGlkIE1JTUUgdHlwZSBzdHJpbmcsIHRoZW4gcmV0dXJuIGZhbHNlLgogICAgIGlmIChj
b250ZW50VHlwZS5jb250YWluZXJUeXBlKCkuaXNFbXB0eSgpKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVRyYWNrQ29uc3RyYWludHMuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVRyYWNrQ29uc3RyYWludHMu
Y3BwCmluZGV4IDMxMTM4NDdkYjc1NDg0N2Q2MTYyZmEyZDYxZTY3MzRhNmE4ODg1YjMuLjJmOGQ4
YmQyN2Q3MzU1NDZiYTg0YjYxODA4YTZjZGFiM2YzMjhlMTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFUcmFja0NvbnN0cmFpbnRzLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhVHJhY2tDb25zdHJhaW50
cy5jcHAKQEAgLTMzLDcgKzMzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBlbnVtIGNsYXNz
IENvbnN0cmFpbnRTZXRUeXBlIHsgTWFuZGF0b3J5LCBBZHZhbmNlZCB9OwogCi1zdGF0aWMgdm9p
ZCBzZXQoTWVkaWFUcmFja0NvbnN0cmFpbnRTZXRNYXAmIG1hcCwgQ29uc3RyYWludFNldFR5cGUg
c2V0VHlwZSwgY29uc3QgY2hhciogdHlwZUFzU3RyaW5nLCBNZWRpYUNvbnN0cmFpbnRUeXBlIHR5
cGUsIGNvbnN0IENvbnN0cmFpbkxvbmcmIHZhbHVlKQorc3RhdGljIHZvaWQgc2V0KE1lZGlhVHJh
Y2tDb25zdHJhaW50U2V0TWFwJiBtYXAsIENvbnN0cmFpbnRTZXRUeXBlIHNldFR5cGUsIEFTQ0lJ
TGl0ZXJhbCB0eXBlQXNTdHJpbmcsIE1lZGlhQ29uc3RyYWludFR5cGUgdHlwZSwgY29uc3QgQ29u
c3RyYWluTG9uZyYgdmFsdWUpCiB7CiAgICAgSW50Q29uc3RyYWludCBjb25zdHJhaW50KHR5cGVB
c1N0cmluZywgdHlwZSk7CiAgICAgV1RGOjpzd2l0Y2hPbih2YWx1ZSwKQEAgLTU3LDcgKzU3LDcg
QEAgc3RhdGljIHZvaWQgc2V0KE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwJiBtYXAsIENvbnN0
cmFpbnRTZXRUeXBlIHNldFR5cGUsIGNvbnMKICAgICBtYXAuc2V0KHR5cGUsIFdURk1vdmUoY29u
c3RyYWludCkpOwogfQogCi1zdGF0aWMgdm9pZCBzZXQoTWVkaWFUcmFja0NvbnN0cmFpbnRTZXRN
YXAmIG1hcCwgQ29uc3RyYWludFNldFR5cGUgc2V0VHlwZSwgY29uc3QgY2hhciogdHlwZUFzU3Ry
aW5nLCBNZWRpYUNvbnN0cmFpbnRUeXBlIHR5cGUsIGNvbnN0IENvbnN0cmFpbkRvdWJsZSYgdmFs
dWUpCitzdGF0aWMgdm9pZCBzZXQoTWVkaWFUcmFja0NvbnN0cmFpbnRTZXRNYXAmIG1hcCwgQ29u
c3RyYWludFNldFR5cGUgc2V0VHlwZSwgQVNDSUlMaXRlcmFsIHR5cGVBc1N0cmluZywgTWVkaWFD
b25zdHJhaW50VHlwZSB0eXBlLCBjb25zdCBDb25zdHJhaW5Eb3VibGUmIHZhbHVlKQogewogICAg
IERvdWJsZUNvbnN0cmFpbnQgY29uc3RyYWludCh0eXBlQXNTdHJpbmcsIHR5cGUpOwogICAgIFdU
Rjo6c3dpdGNoT24odmFsdWUsCkBAIC04MSw3ICs4MSw3IEBAIHN0YXRpYyB2b2lkIHNldChNZWRp
YVRyYWNrQ29uc3RyYWludFNldE1hcCYgbWFwLCBDb25zdHJhaW50U2V0VHlwZSBzZXRUeXBlLCBj
b25zCiAgICAgbWFwLnNldCh0eXBlLCBXVEZNb3ZlKGNvbnN0cmFpbnQpKTsKIH0KIAotc3RhdGlj
IHZvaWQgc2V0KE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwJiBtYXAsIENvbnN0cmFpbnRTZXRU
eXBlIHNldFR5cGUsIGNvbnN0IGNoYXIqIHR5cGVBc1N0cmluZywgTWVkaWFDb25zdHJhaW50VHlw
ZSB0eXBlLCBjb25zdCBDb25zdHJhaW5Cb29sZWFuJiB2YWx1ZSkKK3N0YXRpYyB2b2lkIHNldChN
ZWRpYVRyYWNrQ29uc3RyYWludFNldE1hcCYgbWFwLCBDb25zdHJhaW50U2V0VHlwZSBzZXRUeXBl
LCBBU0NJSUxpdGVyYWwgdHlwZUFzU3RyaW5nLCBNZWRpYUNvbnN0cmFpbnRUeXBlIHR5cGUsIGNv
bnN0IENvbnN0cmFpbkJvb2xlYW4mIHZhbHVlKQogewogICAgIEJvb2xlYW5Db25zdHJhaW50IGNv
bnN0cmFpbnQodHlwZUFzU3RyaW5nLCB0eXBlKTsKICAgICBXVEY6OnN3aXRjaE9uKHZhbHVlLApA
QCAtMTAxLDcgKzEwMSw3IEBAIHN0YXRpYyB2b2lkIHNldChNZWRpYVRyYWNrQ29uc3RyYWludFNl
dE1hcCYgbWFwLCBDb25zdHJhaW50U2V0VHlwZSBzZXRUeXBlLCBjb25zCiAgICAgbWFwLnNldCh0
eXBlLCBXVEZNb3ZlKGNvbnN0cmFpbnQpKTsKIH0KIAotc3RhdGljIHZvaWQgc2V0KE1lZGlhVHJh
Y2tDb25zdHJhaW50U2V0TWFwJiBtYXAsIENvbnN0cmFpbnRTZXRUeXBlIHNldFR5cGUsIGNvbnN0
IGNoYXIqIHR5cGVBc1N0cmluZywgTWVkaWFDb25zdHJhaW50VHlwZSB0eXBlLCBjb25zdCBDb25z
dHJhaW5ET01TdHJpbmcmIHZhbHVlKQorc3RhdGljIHZvaWQgc2V0KE1lZGlhVHJhY2tDb25zdHJh
aW50U2V0TWFwJiBtYXAsIENvbnN0cmFpbnRTZXRUeXBlIHNldFR5cGUsIEFTQ0lJTGl0ZXJhbCB0
eXBlQXNTdHJpbmcsIE1lZGlhQ29uc3RyYWludFR5cGUgdHlwZSwgY29uc3QgQ29uc3RyYWluRE9N
U3RyaW5nJiB2YWx1ZSkKIHsKICAgICBTdHJpbmdDb25zdHJhaW50IGNvbnN0cmFpbnQodHlwZUFz
U3RyaW5nLCB0eXBlKTsKICAgICBXVEY6OnN3aXRjaE9uKHZhbHVlLApAQCAtMTQ4LDcgKzE0OCw3
IEBAIHN0YXRpYyB2b2lkIHNldChNZWRpYVRyYWNrQ29uc3RyYWludFNldE1hcCYgbWFwLCBDb25z
dHJhaW50U2V0VHlwZSBzZXRUeXBlLCBjb25zCiAgICAgbWFwLnNldCh0eXBlLCBXVEZNb3ZlKGNv
bnN0cmFpbnQpKTsKIH0KIAotdGVtcGxhdGU8dHlwZW5hbWUgVD4gc3RhdGljIGlubGluZSB2b2lk
IHNldChNZWRpYVRyYWNrQ29uc3RyYWludFNldE1hcCYgbWFwLCBDb25zdHJhaW50U2V0VHlwZSBz
ZXRUeXBlLCBjb25zdCBjaGFyKiB0eXBlQXNTdHJpbmcsIE1lZGlhQ29uc3RyYWludFR5cGUgdHlw
ZSwgY29uc3Qgc3RkOjpvcHRpb25hbDxUPiYgdmFsdWUpCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBz
dGF0aWMgaW5saW5lIHZvaWQgc2V0KE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwJiBtYXAsIENv
bnN0cmFpbnRTZXRUeXBlIHNldFR5cGUsIEFTQ0lJTGl0ZXJhbCB0eXBlQXNTdHJpbmcsIE1lZGlh
Q29uc3RyYWludFR5cGUgdHlwZSwgY29uc3Qgc3RkOjpvcHRpb25hbDxUPiYgdmFsdWUpCiB7CiAg
ICAgaWYgKCF2YWx1ZSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTU4LDIxICsxNTgsMjEgQEAgdGVt
cGxhdGU8dHlwZW5hbWUgVD4gc3RhdGljIGlubGluZSB2b2lkIHNldChNZWRpYVRyYWNrQ29uc3Ry
YWludFNldE1hcCYgbWFwLCBDb24KIHN0YXRpYyBNZWRpYVRyYWNrQ29uc3RyYWludFNldE1hcCBj
b252ZXJ0VG9JbnRlcm5hbEZvcm0oQ29uc3RyYWludFNldFR5cGUgc2V0VHlwZSwgY29uc3QgTWVk
aWFUcmFja0NvbnN0cmFpbnRTZXQmIGNvbnN0cmFpbnRTZXQpCiB7CiAgICAgTWVkaWFUcmFja0Nv
bnN0cmFpbnRTZXRNYXAgcmVzdWx0OwotICAgIHNldChyZXN1bHQsIHNldFR5cGUsICJ3aWR0aCIs
IE1lZGlhQ29uc3RyYWludFR5cGU6OldpZHRoLCBjb25zdHJhaW50U2V0LndpZHRoKTsKLSAgICBz
ZXQocmVzdWx0LCBzZXRUeXBlLCAiaGVpZ2h0IiwgTWVkaWFDb25zdHJhaW50VHlwZTo6SGVpZ2h0
LCBjb25zdHJhaW50U2V0LmhlaWdodCk7Ci0gICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgImFzcGVj
dFJhdGlvIiwgTWVkaWFDb25zdHJhaW50VHlwZTo6QXNwZWN0UmF0aW8sIGNvbnN0cmFpbnRTZXQu
YXNwZWN0UmF0aW8pOwotICAgIHNldChyZXN1bHQsIHNldFR5cGUsICJmcmFtZVJhdGUiLCBNZWRp
YUNvbnN0cmFpbnRUeXBlOjpGcmFtZVJhdGUsIGNvbnN0cmFpbnRTZXQuZnJhbWVSYXRlKTsKLSAg
ICBzZXQocmVzdWx0LCBzZXRUeXBlLCAiZmFjaW5nTW9kZSIsIE1lZGlhQ29uc3RyYWludFR5cGU6
OkZhY2luZ01vZGUsIGNvbnN0cmFpbnRTZXQuZmFjaW5nTW9kZSk7Ci0gICAgc2V0KHJlc3VsdCwg
c2V0VHlwZSwgInZvbHVtZSIsIE1lZGlhQ29uc3RyYWludFR5cGU6OlZvbHVtZSwgY29uc3RyYWlu
dFNldC52b2x1bWUpOwotICAgIHNldChyZXN1bHQsIHNldFR5cGUsICJzYW1wbGVSYXRlIiwgTWVk
aWFDb25zdHJhaW50VHlwZTo6U2FtcGxlUmF0ZSwgY29uc3RyYWludFNldC5zYW1wbGVSYXRlKTsK
LSAgICBzZXQocmVzdWx0LCBzZXRUeXBlLCAic2FtcGxlU2l6ZSIsIE1lZGlhQ29uc3RyYWludFR5
cGU6OlNhbXBsZVNpemUsIGNvbnN0cmFpbnRTZXQuc2FtcGxlU2l6ZSk7Ci0gICAgc2V0KHJlc3Vs
dCwgc2V0VHlwZSwgImVjaG9DYW5jZWxsYXRpb24iLCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpFY2hv
Q2FuY2VsbGF0aW9uLCBjb25zdHJhaW50U2V0LmVjaG9DYW5jZWxsYXRpb24pOworICAgIHNldChy
ZXN1bHQsIHNldFR5cGUsICJ3aWR0aCJfcywgTWVkaWFDb25zdHJhaW50VHlwZTo6V2lkdGgsIGNv
bnN0cmFpbnRTZXQud2lkdGgpOworICAgIHNldChyZXN1bHQsIHNldFR5cGUsICJoZWlnaHQiX3Ms
IE1lZGlhQ29uc3RyYWludFR5cGU6OkhlaWdodCwgY29uc3RyYWludFNldC5oZWlnaHQpOworICAg
IHNldChyZXN1bHQsIHNldFR5cGUsICJhc3BlY3RSYXRpbyJfcywgTWVkaWFDb25zdHJhaW50VHlw
ZTo6QXNwZWN0UmF0aW8sIGNvbnN0cmFpbnRTZXQuYXNwZWN0UmF0aW8pOworICAgIHNldChyZXN1
bHQsIHNldFR5cGUsICJmcmFtZVJhdGUiX3MsIE1lZGlhQ29uc3RyYWludFR5cGU6OkZyYW1lUmF0
ZSwgY29uc3RyYWludFNldC5mcmFtZVJhdGUpOworICAgIHNldChyZXN1bHQsIHNldFR5cGUsICJm
YWNpbmdNb2RlIl9zLCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpGYWNpbmdNb2RlLCBjb25zdHJhaW50
U2V0LmZhY2luZ01vZGUpOworICAgIHNldChyZXN1bHQsIHNldFR5cGUsICJ2b2x1bWUiX3MsIE1l
ZGlhQ29uc3RyYWludFR5cGU6OlZvbHVtZSwgY29uc3RyYWludFNldC52b2x1bWUpOworICAgIHNl
dChyZXN1bHQsIHNldFR5cGUsICJzYW1wbGVSYXRlIl9zLCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpT
YW1wbGVSYXRlLCBjb25zdHJhaW50U2V0LnNhbXBsZVJhdGUpOworICAgIHNldChyZXN1bHQsIHNl
dFR5cGUsICJzYW1wbGVTaXplIl9zLCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpTYW1wbGVTaXplLCBj
b25zdHJhaW50U2V0LnNhbXBsZVNpemUpOworICAgIHNldChyZXN1bHQsIHNldFR5cGUsICJlY2hv
Q2FuY2VsbGF0aW9uIl9zLCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpFY2hvQ2FuY2VsbGF0aW9uLCBj
b25zdHJhaW50U2V0LmVjaG9DYW5jZWxsYXRpb24pOwogICAgIC8vIEZJWE1FOiBhZGQgbGF0ZW5j
eQogICAgIC8vIEZJWE1FOiBhZGQgY2hhbm5lbENvdW50Ci0gICAgc2V0KHJlc3VsdCwgc2V0VHlw
ZSwgImRldmljZUlkIiwgTWVkaWFDb25zdHJhaW50VHlwZTo6RGV2aWNlSWQsIGNvbnN0cmFpbnRT
ZXQuZGV2aWNlSWQpOwotICAgIHNldChyZXN1bHQsIHNldFR5cGUsICJncm91cElkIiwgTWVkaWFD
b25zdHJhaW50VHlwZTo6R3JvdXBJZCwgY29uc3RyYWludFNldC5ncm91cElkKTsKLSAgICBzZXQo
cmVzdWx0LCBzZXRUeXBlLCAiZGlzcGxheVN1cmZhY2UiLCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpE
aXNwbGF5U3VyZmFjZSwgY29uc3RyYWludFNldC5kaXNwbGF5U3VyZmFjZSk7Ci0gICAgc2V0KHJl
c3VsdCwgc2V0VHlwZSwgImxvZ2ljYWxTdXJmYWNlIiwgTWVkaWFDb25zdHJhaW50VHlwZTo6TG9n
aWNhbFN1cmZhY2UsIGNvbnN0cmFpbnRTZXQubG9naWNhbFN1cmZhY2UpOworICAgIHNldChyZXN1
bHQsIHNldFR5cGUsICJkZXZpY2VJZCJfcywgTWVkaWFDb25zdHJhaW50VHlwZTo6RGV2aWNlSWQs
IGNvbnN0cmFpbnRTZXQuZGV2aWNlSWQpOworICAgIHNldChyZXN1bHQsIHNldFR5cGUsICJncm91
cElkIl9zLCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpHcm91cElkLCBjb25zdHJhaW50U2V0Lmdyb3Vw
SWQpOworICAgIHNldChyZXN1bHQsIHNldFR5cGUsICJkaXNwbGF5U3VyZmFjZSJfcywgTWVkaWFD
b25zdHJhaW50VHlwZTo6RGlzcGxheVN1cmZhY2UsIGNvbnN0cmFpbnRTZXQuZGlzcGxheVN1cmZh
Y2UpOworICAgIHNldChyZXN1bHQsIHNldFR5cGUsICJsb2dpY2FsU3VyZmFjZSJfcywgTWVkaWFD
b25zdHJhaW50VHlwZTo6TG9naWNhbFN1cmZhY2UsIGNvbnN0cmFpbnRTZXQubG9naWNhbFN1cmZh
Y2UpOwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDSWNlQ2FuZGlkYXRlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDSWNlQ2FuZGlkYXRlLmNwcAppbmRleCA5ZjcwNmRmNmRm
NjVlN2Y5NTgxNTc1MTQwMjI0OGUwOGM3YTIzZmEwLi5iYjdlZjc0MTI2MTljMDU5ZGNlYzc0ZDY4
ZWUyZGJlMGM5M2FiYzI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ0ljZUNhbmRpZGF0ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENJY2VDYW5kaWRhdGUuY3BwCkBAIC01NCw3ICs1NCw3IEBAIFJUQ0ljZUNh
bmRpZGF0ZTo6UlRDSWNlQ2FuZGlkYXRlKGNvbnN0IFN0cmluZyYgY2FuZGlkYXRlLCBjb25zdCBT
dHJpbmcmIHNkcE1pZCwKIEV4Y2VwdGlvbk9yPFJlZjxSVENJY2VDYW5kaWRhdGU+PiBSVENJY2VD
YW5kaWRhdGU6OmNyZWF0ZShjb25zdCBSVENJY2VDYW5kaWRhdGVJbml0JiBkaWN0aW9uYXJ5KQog
ewogICAgIGlmIChkaWN0aW9uYXJ5LnNkcE1pZC5pc051bGwoKSAmJiAhZGljdGlvbmFyeS5zZHBN
TGluZUluZGV4KQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiQ2FuZGlk
YXRlIG11c3Qgbm90IGhhdmUgYm90aCBudWxsIHNkcE1pZCBhbmQgc2RwTUxpbmVJbmRleCIgfTsK
KyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIkNhbmRpZGF0ZSBtdXN0IG5v
dCBoYXZlIGJvdGggbnVsbCBzZHBNaWQgYW5kIHNkcE1MaW5lSW5kZXgiX3MgfTsKIAogICAgIGF1
dG8gZmllbGRzID0gdmFsdWVPckRlZmF1bHQocGFyc2VJY2VDYW5kaWRhdGVTRFAoZGljdGlvbmFy
eS5jYW5kaWRhdGUpKTsKICAgICBmaWVsZHMudXNlcm5hbWVGcmFnbWVudCA9IGRpY3Rpb25hcnku
dXNlcm5hbWVGcmFnbWVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9t
ZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAKaW5kZXggOTBkZTYzOTkzNGVkNjFjNWMw
YjEwMTJjMGFhNTM5N2RkMGQ4YjMyYS4uNDE1NjZhNTU1ZjYyZWU1MDhlMGRkMWExZGQ3MDg4NGVm
NzUwZjVhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9S
VENQZWVyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAKQEAgLTI3Myw3ICsyNzMsNyBAQCB2b2lkIFJUQ1Bl
ZXJDb25uZWN0aW9uOjpzZXRMb2NhbERlc2NyaXB0aW9uKHN0ZDo6b3B0aW9uYWw8UlRDTG9jYWxT
ZXNzaW9uRGVzY3JpcAogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgQUxXQVlTX0xPRyhM
T0dJREVOVElGSUVSLCAiU2V0dGluZyBsb2NhbCBkZXNjcmlwdGlvbiB0bzpcbiIsIGxvY2FsRGVz
Y3JpcHRpb24gPyBsb2NhbERlc2NyaXB0aW9uLT5zZHAgOiAiJyciKTsKKyAgICBBTFdBWVNfTE9H
KExPR0lERU5USUZJRVIsICJTZXR0aW5nIGxvY2FsIGRlc2NyaXB0aW9uIHRvOlxuIiwgbG9jYWxE
ZXNjcmlwdGlvbiA/IGxvY2FsRGVzY3JpcHRpb24tPnNkcCA6ICInJyJfcyk7CiAgICAgY2hhaW5P
cGVyYXRpb24oV1RGTW92ZShwcm9taXNlKSwgW3RoaXMsIGxvY2FsRGVzY3JpcHRpb24gPSBXVEZN
b3ZlKGxvY2FsRGVzY3JpcHRpb24pXShhdXRvJiYgcHJvbWlzZSkgbXV0YWJsZSB7CiAgICAgICAg
IGF1dG8gdHlwZSA9IHR5cGVGb3JTZXRMb2NhbERlc2NyaXB0aW9uKGxvY2FsRGVzY3JpcHRpb24s
IG1fc2lnbmFsaW5nU3RhdGUpOwogICAgICAgICBTdHJpbmcgc2RwOwpAQCAtMzQ0LDcgKzM0NCw3
IEBAIHZvaWQgUlRDUGVlckNvbm5lY3Rpb246OmFkZEljZUNhbmRpZGF0ZShDYW5kaWRhdGUmJiBy
dGNDYW5kaWRhdGUsIFJlZjxEZWZlcnJlZFByCiAgICAgICAgIH0pOwogICAgIH0KIAotICAgIEFM
V0FZU19MT0coTE9HSURFTlRJRklFUiwgIlJlY2VpdmVkIGljZSBjYW5kaWRhdGU6XG4iLCBjYW5k
aWRhdGUgPyBjYW5kaWRhdGUtPmNhbmRpZGF0ZSgpIDogIm51bGwiKTsKKyAgICBBTFdBWVNfTE9H
KExPR0lERU5USUZJRVIsICJSZWNlaXZlZCBpY2UgY2FuZGlkYXRlOlxuIiwgY2FuZGlkYXRlID8g
Y2FuZGlkYXRlLT5jYW5kaWRhdGUoKSA6ICJudWxsIl9zKTsKIAogICAgIGlmIChleGNlcHRpb24p
IHsKICAgICAgICAgcHJvbWlzZS0+cmVqZWN0KCpleGNlcHRpb24pOwpAQCAtMzc5LDEzICszNzks
MTMgQEAgc3RkOjpvcHRpb25hbDxib29sPiBSVENQZWVyQ29ubmVjdGlvbjo6Y2FuVHJpY2tsZUlj
ZUNhbmRpZGF0ZXMoKSBjb25zdAogRXhjZXB0aW9uT3I8VmVjdG9yPE1lZGlhRW5kcG9pbnRDb25m
aWd1cmF0aW9uOjpJY2VTZXJ2ZXJJbmZvPj4gUlRDUGVlckNvbm5lY3Rpb246OmljZVNlcnZlcnNG
cm9tQ29uZmlndXJhdGlvbihSVENDb25maWd1cmF0aW9uJiBuZXdDb25maWd1cmF0aW9uLCBjb25z
dCBSVENDb25maWd1cmF0aW9uKiBleGlzdGluZ0NvbmZpZ3VyYXRpb24sIGJvb2wgaXNMb2NhbERl
c2NyaXB0aW9uU2V0KQogewogICAgIGlmIChleGlzdGluZ0NvbmZpZ3VyYXRpb24gJiYgbmV3Q29u
ZmlndXJhdGlvbi5idW5kbGVQb2xpY3kgIT0gZXhpc3RpbmdDb25maWd1cmF0aW9uLT5idW5kbGVQ
b2xpY3kpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkTW9kaWZpY2F0aW9uRXJy
b3IsICJCdW5kbGVQb2xpY3kgZG9lcyBub3QgbWF0Y2ggZXhpc3RpbmcgcG9saWN5IiB9OworICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yLCAiQnVuZGxl
UG9saWN5IGRvZXMgbm90IG1hdGNoIGV4aXN0aW5nIHBvbGljeSJfcyB9OwogCiAgICAgaWYgKGV4
aXN0aW5nQ29uZmlndXJhdGlvbiAmJiBuZXdDb25maWd1cmF0aW9uLnJ0Y3BNdXhQb2xpY3kgIT0g
ZXhpc3RpbmdDb25maWd1cmF0aW9uLT5ydGNwTXV4UG9saWN5KQotICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yLCAiUlRDUE11eFBvbGljeSBkb2VzIG5v
dCBtYXRjaCBleGlzdGluZyBwb2xpY3kiIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJ
bnZhbGlkTW9kaWZpY2F0aW9uRXJyb3IsICJSVENQTXV4UG9saWN5IGRvZXMgbm90IG1hdGNoIGV4
aXN0aW5nIHBvbGljeSJfcyB9OwogCiAgICAgaWYgKGV4aXN0aW5nQ29uZmlndXJhdGlvbiAmJiBu
ZXdDb25maWd1cmF0aW9uLmljZUNhbmRpZGF0ZVBvb2xTaXplICE9IGV4aXN0aW5nQ29uZmlndXJh
dGlvbi0+aWNlQ2FuZGlkYXRlUG9vbFNpemUgJiYgaXNMb2NhbERlc2NyaXB0aW9uU2V0KQotICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yLCAiSWNlVHJh
bnNwb3J0UG9saWN5IHBvb2wgc2l6ZSBkb2VzIG5vdCBtYXRjaCBleGlzdGluZyBwb29sIHNpemUi
IH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3Is
ICJJY2VUcmFuc3BvcnRQb2xpY3kgcG9vbCBzaXplIGRvZXMgbm90IG1hdGNoIGV4aXN0aW5nIHBv
b2wgc2l6ZSJfcyB9OwogCiAgICAgVmVjdG9yPE1lZGlhRW5kcG9pbnRDb25maWd1cmF0aW9uOjpJ
Y2VTZXJ2ZXJJbmZvPiBzZXJ2ZXJzOwogICAgIGlmIChuZXdDb25maWd1cmF0aW9uLmljZVNlcnZl
cnMpIHsKQEAgLTQxNCwxOCArNDE0LDE4IEBAIEV4Y2VwdGlvbk9yPFZlY3RvcjxNZWRpYUVuZHBv
aW50Q29uZmlndXJhdGlvbjo6SWNlU2VydmVySW5mbz4+IFJUQ1BlZXJDb25uZWN0aW9uCiAKICAg
ICAgICAgICAgIGZvciAoYXV0byYgc2VydmVyVVJMIDogc2VydmVyVVJMcykgewogICAgICAgICAg
ICAgICAgIGlmIChzZXJ2ZXJVUkwuaXNOdWxsKCkpCi0gICAgICAgICAgICAgICAgICAgIHJldHVy
biBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJCYWQgSUNFIHNlcnZlciBVUkwiIH07CisgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJCYWQgSUNFIHNlcnZl
ciBVUkwiX3MgfTsKICAgICAgICAgICAgICAgICBpZiAoc2VydmVyVVJMLnByb3RvY29sSXMoInR1
cm4iKSB8fCBzZXJ2ZXJVUkwucHJvdG9jb2xJcygidHVybnMiKSkgewogICAgICAgICAgICAgICAg
ICAgICBpZiAoc2VydmVyLmNyZWRlbnRpYWwuaXNOdWxsKCkgfHwgc2VydmVyLnVzZXJuYW1lLmlz
TnVsbCgpKQotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFs
aWRBY2Nlc3NFcnJvciwgIlRVUk4vVFVSTlMgc2VydmVyIHJlcXVpcmVzIGJvdGggdXNlcm5hbWUg
YW5kIGNyZWRlbnRpYWwiIH07CisgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiVFVSTi9UVVJOUyBzZXJ2ZXIgcmVxdWlyZXMgYm90
aCB1c2VybmFtZSBhbmQgY3JlZGVudGlhbCJfcyB9OwogICAgICAgICAgICAgICAgICAgICAvLyBo
dHRwczovL3Rvb2xzLmlldGYub3JnL2h0bWwvcmZjODQ4OSNzZWN0aW9uLTE0LjMKICAgICAgICAg
ICAgICAgICAgICAgaWYgKHNlcnZlci5jcmVkZW50aWFsLmxlbmd0aCgpID4gNjQgfHwgc2VydmVy
LnVzZXJuYW1lLmxlbmd0aCgpID4gNjQpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0
ZXhwciBzaXplX3QgTWF4VHVyblVzZXJuYW1lTGVuZ3RoID0gNTA5OwogICAgICAgICAgICAgICAg
ICAgICAgICAgaWYgKHNlcnZlci5jcmVkZW50aWFsLnV0ZjgoKS5sZW5ndGgoKSA+IE1heFR1cm5V
c2VybmFtZUxlbmd0aCB8fCBzZXJ2ZXIudXNlcm5hbWUudXRmOCgpLmxlbmd0aCgpID4gTWF4VHVy
blVzZXJuYW1lTGVuZ3RoKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBUeXBlRXJyb3IsICJUVVJOL1RVUk5TIHVzZXJuYW1lIGFuZC9vciBjcmVkZW50aWFs
IGFyZSB0b28gbG9uZyIgfTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgVHlwZUVycm9yLCAiVFVSTi9UVVJOUyB1c2VybmFtZSBhbmQvb3IgY3JlZGVudGlh
bCBhcmUgdG9vIGxvbmciX3MgfTsKICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgIH0gZWxzZSBpZiAoIXNlcnZlclVSTC5wcm90b2NvbElzKCJzdHVuIikpCi0gICAgICAgICAg
ICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciwgIklDRSBzZXJ2
ZXIgcHJvdG9jb2wgbm90IHN1cHBvcnRlZCIgfTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yLCAiSUNFIHNlcnZlciBwcm90b2NvbCBub3Qg
c3VwcG9ydGVkIl9zIH07CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBpZiAoc2VydmVyVVJM
cy5zaXplKCkpCiAgICAgICAgICAgICAgICAgc2VydmVycy51bmNoZWNrZWRBcHBlbmQoeyBXVEZN
b3ZlKHNlcnZlclVSTHMpLCBzZXJ2ZXIuY3JlZGVudGlhbCwgc2VydmVyLnVzZXJuYW1lIH0pOwpA
QCAtNDQzLDcgKzQ0Myw3IEBAIEV4Y2VwdGlvbk9yPFZlY3RvcjxNZWRpYUVuZHBvaW50Q29uZmln
dXJhdGlvbjo6Q2VydGlmaWNhdGVQRU0+PiBSVENQZWVyQ29ubmVjdGlvCiAgICAgY2VydGlmaWNh
dGVzLnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoY29uZmlndXJhdGlvbi5jZXJ0aWZpY2F0ZXMuc2l6
ZSgpKTsKICAgICBmb3IgKGF1dG8mIGNlcnRpZmljYXRlIDogY29uZmlndXJhdGlvbi5jZXJ0aWZp
Y2F0ZXMpIHsKICAgICAgICAgaWYgKCFvcmlnaW4uaXNTYW1lT3JpZ2luQXMoY2VydGlmaWNhdGUt
Pm9yaWdpbigpKSkKLSAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNz
RXJyb3IsICJDZXJ0aWZpY2F0ZSBkb2VzIG5vdCBoYXZlIGEgdmFsaWQgb3JpZ2luIiB9OworICAg
ICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwgIkNlcnRpZmlj
YXRlIGRvZXMgbm90IGhhdmUgYSB2YWxpZCBvcmlnaW4iX3MgfTsKIAogICAgICAgICBpZiAoY3Vy
cmVudE1pbGxpU2Vjb25kcyA+IGNlcnRpZmljYXRlLT5leHBpcmVzKCkpCiAgICAgICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiQ2VydGlmaWNhdGUgaGFzIGV4
cGlyZWQiX3MgfTsKQEAgLTQ2Niw3ICs0NjYsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBSVENQZWVy
Q29ubmVjdGlvbjo6aW5pdGlhbGl6ZUNvbmZpZ3VyYXRpb24oUlRDQ29uZmlndXJhdGlvbiYmCiAg
ICAgICAgIHJldHVybiBjZXJ0aWZpY2F0ZXMucmVsZWFzZUV4Y2VwdGlvbigpOwogCiAgICAgaWYg
KCFtX2JhY2tlbmQtPnNldENvbmZpZ3VyYXRpb24oeyBzZXJ2ZXJzLnJlbGVhc2VSZXR1cm5WYWx1
ZSgpLCBjb25maWd1cmF0aW9uLmljZVRyYW5zcG9ydFBvbGljeSwgY29uZmlndXJhdGlvbi5idW5k
bGVQb2xpY3ksIGNvbmZpZ3VyYXRpb24ucnRjcE11eFBvbGljeSwgY29uZmlndXJhdGlvbi5pY2VD
YW5kaWRhdGVQb29sU2l6ZSwgY2VydGlmaWNhdGVzLnJlbGVhc2VSZXR1cm5WYWx1ZSgpIH0pKQot
ICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiQmFkIENvbmZp
Z3VyYXRpb24gUGFyYW1ldGVycyIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFs
aWRBY2Nlc3NFcnJvciwgIkJhZCBDb25maWd1cmF0aW9uIFBhcmFtZXRlcnMiX3MgfTsKIAogICAg
IG1fY29uZmlndXJhdGlvbiA9IFdURk1vdmUoY29uZmlndXJhdGlvbik7CiAgICAgcmV0dXJuIHsg
fTsKQEAgLTQ4NSwxOSArNDg1LDE5IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFJUQ1BlZXJDb25uZWN0
aW9uOjpzZXRDb25maWd1cmF0aW9uKFJUQ0NvbmZpZ3VyYXRpb24mJiBjb25maWd1CiAKICAgICBp
ZiAoY29uZmlndXJhdGlvbi5jZXJ0aWZpY2F0ZXMuc2l6ZSgpKSB7CiAgICAgICAgIGlmIChjb25m
aWd1cmF0aW9uLmNlcnRpZmljYXRlcy5zaXplKCkgIT0gbV9jb25maWd1cmF0aW9uLmNlcnRpZmlj
YXRlcy5zaXplKCkpCi0gICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZE1vZGlm
aWNhdGlvbkVycm9yLCAiQ2VydGlmaWNhdGVzIHBhcmFtZXRlcnMgYXJlIGRpZmZlcmVudCIgfTsK
KyAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3Is
ICJDZXJ0aWZpY2F0ZXMgcGFyYW1ldGVycyBhcmUgZGlmZmVyZW50Il9zIH07CiAKICAgICAgICAg
Zm9yIChhdXRvJiBjZXJ0aWZpY2F0ZSA6IGNvbmZpZ3VyYXRpb24uY2VydGlmaWNhdGVzKSB7CiAg
ICAgICAgICAgICBib29sIGlzVGhlcmUgPSBtX2NvbmZpZ3VyYXRpb24uY2VydGlmaWNhdGVzLmZp
bmRJZihbJmNlcnRpZmljYXRlXShjb25zdCBhdXRvJiBpdGVtKSB7CiAgICAgICAgICAgICAgICAg
cmV0dXJuIGl0ZW0uZ2V0KCkgPT0gY2VydGlmaWNhdGUuZ2V0KCk7CiAgICAgICAgICAgICB9KSAh
PSBub3RGb3VuZDsKICAgICAgICAgICAgIGlmICghaXNUaGVyZSkKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yLCAiQSBjZXJ0aWZpY2F0
ZSBnaXZlbiBpbiBjb25zdHJ1Y3RvciBpcyBub3QgcHJlc2VudCIgfTsKKyAgICAgICAgICAgICAg
ICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yLCAiQSBjZXJ0aWZp
Y2F0ZSBnaXZlbiBpbiBjb25zdHJ1Y3RvciBpcyBub3QgcHJlc2VudCJfcyB9OwogICAgICAgICB9
CiAgICAgfQogCiAgICAgaWYgKCFtX2JhY2tlbmQtPnNldENvbmZpZ3VyYXRpb24oeyBzZXJ2ZXJz
LnJlbGVhc2VSZXR1cm5WYWx1ZSgpLCBjb25maWd1cmF0aW9uLmljZVRyYW5zcG9ydFBvbGljeSwg
Y29uZmlndXJhdGlvbi5idW5kbGVQb2xpY3ksIGNvbmZpZ3VyYXRpb24ucnRjcE11eFBvbGljeSwg
Y29uZmlndXJhdGlvbi5pY2VDYW5kaWRhdGVQb29sU2l6ZSwgeyB9IH0pKQotICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiQmFkIENvbmZpZ3VyYXRpb24gUGFy
YW1ldGVycyIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJv
ciwgIkJhZCBDb25maWd1cmF0aW9uIFBhcmFtZXRlcnMiX3MgfTsKIAogICAgIG1fY29uZmlndXJh
dGlvbiA9IFdURk1vdmUoY29uZmlndXJhdGlvbik7CiAgICAgcmV0dXJuIHsgfTsKQEAgLTkxOSw3
ICs5MTksNyBAQCBjb25zdCBWZWN0b3I8UmVmUHRyPFJUQ1J0cFRyYW5zY2VpdmVyPj4mIFJUQ1Bl
ZXJDb25uZWN0aW9uOjpnZXRUcmFuc2NlaXZlcnMoKSBjbwogdm9pZCBSVENQZWVyQ29ubmVjdGlv
bjo6Y2hhaW5PcGVyYXRpb24oUmVmPERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlLCBGdW5jdGlv
bjx2b2lkKFJlZjxEZWZlcnJlZFByb21pc2U+JiYpPiYmIG9wZXJhdGlvbikKIHsKICAgICBpZiAo
aXNDbG9zZWQoKSkgewotICAgICAgICBwcm9taXNlLT5yZWplY3QoSW52YWxpZFN0YXRlRXJyb3Is
ICJSVENQZWVyQ29ubmVjdGlvbiBpcyBjbG9zZWQiKTsKKyAgICAgICAgcHJvbWlzZS0+cmVqZWN0
KEludmFsaWRTdGF0ZUVycm9yLCAiUlRDUGVlckNvbm5lY3Rpb24gaXMgY2xvc2VkIl9zKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtOTI3LDcgKzkyNyw3IEBAIHZvaWQgUlRDUGVlckNv
bm5lY3Rpb246OmNoYWluT3BlcmF0aW9uKFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJvbWlzZSwg
RnVuY3Rpb248CiAgICAgICAgIEFTU0VSVChtX2hhc1BlbmRpbmdPcGVyYXRpb24pOwogICAgICAg
ICBpZiAoaXNDbG9zZWQoKSkgewogICAgICAgICAgICAgZm9yIChhdXRvJiBvcGVyYXRpb24gOiBz
dGQ6OmV4Y2hhbmdlKG1fb3BlcmF0aW9ucywgeyB9KSkKLSAgICAgICAgICAgICAgICBvcGVyYXRp
b24uZmlyc3QtPnJlamVjdChJbnZhbGlkU3RhdGVFcnJvciwgIlJUQ1BlZXJDb25uZWN0aW9uIGlz
IGNsb3NlZCIpOworICAgICAgICAgICAgICAgIG9wZXJhdGlvbi5maXJzdC0+cmVqZWN0KEludmFs
aWRTdGF0ZUVycm9yLCAiUlRDUGVlckNvbm5lY3Rpb24gaXMgY2xvc2VkIl9zKTsKICAgICAgICAg
ICAgIG1faGFzUGVuZGluZ09wZXJhdGlvbiA9IGZhbHNlOwogICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1JUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXIuY3BwCmluZGV4IGNiM2Y3Y2Q5YmYyMTIz
ZTkxZDJkZjdhNDUxZDFjNmU4MTg5ZWQ0NGQuLjRmMjlhYjE1ZTZiNTY3NzE3MzBhZjk0NDJjZTBi
NDE0MjcwZTE2YzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXIuY3BwCkBAIC0zNDYsNyArMzQ2
LDcgQEAgUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI6OlRyYW5zZm9ybVJlc3VsdCBSVENSdHBTRnJh
bWVUcmFuc2Zvcm1lcjo6ZW5jcnlwdEZyYW1lKFMKIFJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyOjpU
cmFuc2Zvcm1SZXN1bHQgUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI6OnRyYW5zZm9ybShTcGFuPGNv
bnN0IHVpbnQ4X3Q+IGRhdGEpCiB7CiAgICAgaWYgKCFtX2hhc0tleSkKLSAgICAgICAgcmV0dXJu
IG1ha2VVbmV4cGVjdGVkKEVycm9ySW5mb3JtYXRpb24geyBFcnJvcjo6S2V5SUQsICAiS2V5IGlz
IG5vdCBpbml0aWFsaXplZCIsIDAgfSk7CisgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChF
cnJvckluZm9ybWF0aW9uIHsgRXJyb3I6OktleUlELCAgIktleSBpcyBub3QgaW5pdGlhbGl6ZWQi
X3MsIDAgfSk7CiAKICAgICByZXR1cm4gbV9pc0VuY3J5cHRpbmcgPyBlbmNyeXB0RnJhbWUoZGF0
YSkgOiBkZWNyeXB0RnJhbWUoZGF0YSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tl
bmQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGli
V2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcAppbmRleCAxMzMzMWFjYzA0NDBjZDAxNzg5
YzczMTU4MGViNTY5MDQxYzM4MWNkLi4zMjNjMjgxM2MzMjRlZmVlNjk4ZjRjMGU0YjlmZmZjYzc5
ZDRkNmI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xp
YndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1BlZXJDb25uZWN0
aW9uQmFja2VuZC5jcHAKQEAgLTI2MCw3ICsyNjAsNyBAQCB2b2lkIExpYldlYlJUQ1BlZXJDb25u
ZWN0aW9uQmFja2VuZDo6ZG9DcmVhdGVPZmZlcihSVENPZmZlck9wdGlvbnMmJiBvcHRpb25zKQog
dm9pZCBMaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OmRvQ3JlYXRlQW5zd2VyKFJUQ0Fu
c3dlck9wdGlvbnMmJikKIHsKICAgICBpZiAoIW1faXNSZW1vdGVEZXNjcmlwdGlvblNldCkgewot
ICAgICAgICBjcmVhdGVBbnN3ZXJGYWlsZWQoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3Is
ICJObyByZW1vdGUgZGVzY3JpcHRpb24gc2V0IiB9KTsKKyAgICAgICAgY3JlYXRlQW5zd2VyRmFp
bGVkKEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiTm8gcmVtb3RlIGRlc2NyaXB0aW9u
IHNldCJfcyB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBtX2VuZHBvaW50LT5kb0Ny
ZWF0ZUFuc3dlcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUnRwVHJhbnNjZWl2ZXJCYWNrZW5kLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1J0cFRyYW5z
Y2VpdmVyQmFja2VuZC5jcHAKaW5kZXggZDFmNzNhZDdmNDc4ZjYwNDcyNWIwNjA5OWZkZTY5MGM3
M2VkNWI0NS4uNDE3NmU4ZDZmNzgzYTUyNWE4MGY3YTYwZWFkYzY3ZjZiZmQ3MDE2YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2Vi
UlRDUnRwVHJhbnNjZWl2ZXJCYWNrZW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENSdHBUcmFuc2NlaXZlckJhY2tlbmQuY3Bw
CkBAIC04OSw3ICs4OSw3IEBAIHN0YXRpYyBpbmxpbmUgRXhjZXB0aW9uT3I8d2VicnRjOjpSdHBD
b2RlY0NhcGFiaWxpdHk+IHRvUnRwQ29kZWNDYXBhYmlsaXR5KGNvbnN0CiAgICAgZWxzZSBpZiAo
Y29kZWMubWltZVR5cGUuc3RhcnRzV2l0aCgiYXVkaW8vIikpCiAgICAgICAgIHJ0Y0NvZGVjLmtp
bmQgPSBjcmlja2V0OjpNRURJQV9UWVBFX0FVRElPOwogICAgIGVsc2UKLSAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IEludmFsaWRNb2RpZmljYXRpb25FcnJvciwgIlJUQ1J0cENvZGVjQ2FwYWJp
bGl0eSBiYWQgbWltZVR5cGUiIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlk
TW9kaWZpY2F0aW9uRXJyb3IsICJSVENSdHBDb2RlY0NhcGFiaWxpdHkgYmFkIG1pbWVUeXBlIl9z
IH07CiAKICAgICBydGNDb2RlYy5uYW1lID0gY29kZWMubWltZVR5cGUuc3Vic3RyaW5nKDYpLnV0
ZjgoKS5kYXRhKCk7CiAgICAgcnRjQ29kZWMuY2xvY2tfcmF0ZSA9IGNvZGVjLmNsb2NrUmF0ZTsK
QEAgLTk5LDcgKzk5LDcgQEAgc3RhdGljIGlubGluZSBFeGNlcHRpb25Pcjx3ZWJydGM6OlJ0cENv
ZGVjQ2FwYWJpbGl0eT4gdG9SdHBDb2RlY0NhcGFiaWxpdHkoY29uc3QKICAgICBmb3IgKGF1dG8g
cGFyYW1ldGVyIDogU3RyaW5nVmlldyhjb2RlYy5zZHBGbXRwTGluZSkuc3BsaXQoJzsnKSkgewog
ICAgICAgICBhdXRvIHBvc2l0aW9uID0gcGFyYW1ldGVyLmZpbmQoJz0nKTsKICAgICAgICAgaWYg
KHBvc2l0aW9uID09IG5vdEZvdW5kKQotICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElu
dmFsaWRNb2RpZmljYXRpb25FcnJvciwgIlJUQ1J0cENvZGVjQ2FwYWJpbGl0eSBzZHBGbXRMaW5l
IGJhZGx5IGZvcm1hdGVkIiB9OworICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFs
aWRNb2RpZmljYXRpb25FcnJvciwgIlJUQ1J0cENvZGVjQ2FwYWJpbGl0eSBzZHBGbXRMaW5lIGJh
ZGx5IGZvcm1hdGVkIl9zIH07CiAgICAgICAgIHJ0Y0NvZGVjLnBhcmFtZXRlcnMuZW1wbGFjZShw
YXJhbWV0ZXIuc3Vic3RyaW5nKDAsIHBvc2l0aW9uKS51dGY4KCkuZGF0YSgpLCBwYXJhbWV0ZXIu
c3Vic3RyaW5nKHBvc2l0aW9uICsgMSkudXRmOCgpLmRhdGEoKSk7CiAgICAgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJS
VENVdGlscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0
Yy9MaWJXZWJSVENVdGlscy5jcHAKaW5kZXggNDVlNGQxNzM2M2ZmMWI2NDA3ZTNjMDk5YzBmYzdm
NDI4MmZhNjhiMC4uOWYxOTZmMzc4YmI3Nzc2NzNjZjcxMjBjYWE0ZmI0NjQ1MDFmNGE4NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGli
V2ViUlRDVXRpbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
bGlid2VicnRjL0xpYldlYlJUQ1V0aWxzLmNwcApAQCAtMzYwLDcgKzM2MCw3IEBAIEV4Y2VwdGlv
biB0b0V4Y2VwdGlvbihjb25zdCB3ZWJydGM6OlJUQ0Vycm9yJiBlcnJvcikKIHsKICAgICBBU1NF
UlQoIWVycm9yLm9rKCkpOwogCi0gICAgcmV0dXJuIEV4Y2VwdGlvbiB7IHRvRXhjZXB0aW9uQ29k
ZShlcnJvci50eXBlKCkpLCBlcnJvci5tZXNzYWdlKCkgfTsKKyAgICByZXR1cm4gRXhjZXB0aW9u
IHsgdG9FeGNlcHRpb25Db2RlKGVycm9yLnR5cGUoKSksIFN0cmluZyB7IGVycm9yLm1lc3NhZ2Uo
KSB9IH07CiB9CiAKIHN0YXRpYyBpbmxpbmUgUlRDSWNlQ29tcG9uZW50IHRvUlRDSWNlQ29tcG9u
ZW50KGludCBjb21wb25lbnQpCkBAIC00NTUsNyArNDU1LDcgQEAgUmVmUHRyPFJUQ0Vycm9yPiB0
b1JUQ0Vycm9yKGNvbnN0IHdlYnJ0Yzo6UlRDRXJyb3ImIHJ0Y0Vycm9yKQogICAgIGF1dG8gZGV0
YWlsID0gdG9SVENFcnJvckRldGFpbFR5cGUocnRjRXJyb3IuZXJyb3JfZGV0YWlsKCkpOwogICAg
IGlmICghZGV0YWlsKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICByZXR1cm4gUlRDRXJy
b3I6OmNyZWF0ZSgqZGV0YWlsLCBydGNFcnJvci5tZXNzYWdlKCkpOworICAgIHJldHVybiBSVENF
cnJvcjo6Y3JlYXRlKCpkZXRhaWwsIFN0cmluZyB7IHJ0Y0Vycm9yLm1lc3NhZ2UoKSB9KTsKIH0K
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tb2RlbC1lbGVtZW50L3NjZW5la2l0L1NjZW5lS2l0TW9kZWxMb2FkZXJVU0QubW0gYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvc2NlbmVraXQvU2NlbmVLaXRNb2Rl
bExvYWRlclVTRC5tbQppbmRleCAwOWVjOGY2MDNlOWQwMjJiMzc4ZGRhMGU0MjdmZWM1MjFmZGQ1
MmQyLi5jYWI0YjhkZTIwMmU3N2Q3MDI4MmI1OTRhMWJlZmJkNzViMDZjYjJkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvc2NlbmVraXQvU2NlbmVLaXRN
b2RlbExvYWRlclVTRC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1l
bnQvc2NlbmVraXQvU2NlbmVLaXRNb2RlbExvYWRlclVTRC5tbQpAQCAtMTAyLDcgKzEwMiw3IEBA
IHN0YXRpYyBSZXRhaW5QdHI8TlNVUkw+IHdyaXRlVG9UZW1wb3JhcnlGaWxlKFdlYkNvcmU6Ok1v
ZGVsJiBtb2RlbFNvdXJjZSkKICAgICAvLyBpbml0aWFsaXplciBidXQgY3VycmVudGx5IHRoYXQg
ZG9lcyBub3Qgd29yay4KIAogICAgIEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSBmaWxl
SGFuZGxlOwotICAgIGF1dG8gZmlsZVBhdGggPSBGaWxlU3lzdGVtOjpvcGVuVGVtcG9yYXJ5Rmls
ZSgiTW9kZWxGaWxlIiwgZmlsZUhhbmRsZSwgIi51c2R6Iik7CisgICAgYXV0byBmaWxlUGF0aCA9
IEZpbGVTeXN0ZW06Om9wZW5UZW1wb3JhcnlGaWxlKCJNb2RlbEZpbGUiX3MsIGZpbGVIYW5kbGUs
ICIudXNkeiJfcyk7CiAgICAgQVNTRVJUKEZpbGVTeXN0ZW06OmlzSGFuZGxlVmFsaWQoZmlsZUhh
bmRsZSkpOwogCiAgICAgc2l6ZV90IGJ5dGVDb3VudCA9IEZpbGVTeXN0ZW06OndyaXRlVG9GaWxl
KGZpbGVIYW5kbGUsIG1vZGVsU291cmNlLmRhdGEoKS0+bWFrZUNvbnRpZ3VvdXMoKS0+ZGF0YSgp
LCBtb2RlbFNvdXJjZS5kYXRhKCktPnNpemUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3QuY3BwCmluZGV4IGRmMmI1
YzI2NGYzYTVjZTJjMWUxY2I2Yjc2MzQwYTAwZmE0MGNjZTAuLjQyMjM1ZWVhMWJmZDFjZDFiNzA3
MGI2OTA5NDg0MmNmNmU5MzU0YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
cGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVlc3QuY3BwCkBAIC0yMTYsNyArMjE2LDcg
QEAgc3RhdGljIEV4Y2VwdGlvbk9yPHN0ZDo6dHVwbGU8U3RyaW5nLCBWZWN0b3I8U3RyaW5nPj4+
IGNoZWNrQW5kQ2Fub25pY2FsaXplRGV0YWkKIAogICAgICAgICAgICAgICAgIGF1dG8gYWRkUmVz
dWx0ID0gc2VlblNoaXBwaW5nT3B0aW9uSURzLmFkZChzaGlwcGluZ09wdGlvbi5pZCk7CiAgICAg
ICAgICAgICAgICAgaWYgKCFhZGRSZXN1bHQuaXNOZXdFbnRyeSkKLSAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIlNoaXBwaW5nIG9wdGlvbiBJRHMgbXVz
dCBiZSB1bmlxdWUuIiB9OworICAgICAgICAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
VHlwZUVycm9yLCAiU2hpcHBpbmcgb3B0aW9uIElEcyBtdXN0IGJlIHVuaXF1ZS4iX3MgfTsKIAog
I2lmIEVOQUJMRShQQVlNRU5UX1JFUVVFU1RfU0VMRUNURURfU0hJUFBJTkdfT1BUSU9OKQogICAg
ICAgICAgICAgICAgIGlmIChzaGlwcGluZ09wdGlvbi5zZWxlY3RlZCkKQEAgLTM3NSw3ICszNzUs
NyBAQCB2b2lkIFBheW1lbnRSZXF1ZXN0OjpzaG93KERvY3VtZW50JiBkb2N1bWVudCwgUmVmUHRy
PERPTVByb21pc2U+JiYgZGV0YWlsc1Byb21pcwogCiAgICAgYXV0byogd2luZG93ID0gZG9jdW1l
bnQuZnJhbWUoKS0+d2luZG93KCk7CiAgICAgaWYgKCF3aW5kb3cgfHwgIXdpbmRvdy0+Y29uc3Vt
ZVRyYW5zaWVudEFjdGl2YXRpb24oKSkgewotICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRp
b24geyBTZWN1cml0eUVycm9yLCAic2hvdygpIG11c3QgYmUgdHJpZ2dlcmVkIGJ5IHVzZXIgYWN0
aXZhdGlvbi4iIH0pOworICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBTZWN1cml0
eUVycm9yLCAic2hvdygpIG11c3QgYmUgdHJpZ2dlcmVkIGJ5IHVzZXIgYWN0aXZhdGlvbi4iX3Mg
fSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvcGljdHVyZWlucGljdHVyZS9IVE1MVmlkZW9FbGVtZW50UGljdHVyZUluUGljdHVy
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BpY3R1cmVpbnBpY3R1cmUvSFRNTFZpZGVv
RWxlbWVudFBpY3R1cmVJblBpY3R1cmUuY3BwCmluZGV4IGYyZjAyMzEwMjc0NWI5ZmQyM2U4ZTk0
MmQ2MDlhN2U5YmUwNjEwZDguLmJiZTJjYmM4YjljYmFlNGYyZmIwZWJkZTk0ZDU5NWFmOWQ4ZmNi
YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGljdHVyZWlucGljdHVyZS9I
VE1MVmlkZW9FbGVtZW50UGljdHVyZUluUGljdHVyZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9waWN0dXJlaW5waWN0dXJlL0hUTUxWaWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJl
LmNwcApAQCAtODEsMjMgKzgxLDIzIEBAIHZvaWQgSFRNTFZpZGVvRWxlbWVudFBpY3R1cmVJblBp
Y3R1cmU6OnByb3ZpZGVQaWN0dXJlSW5QaWN0dXJlVG8oSFRNTFZpZGVvRWxlbWVuCiB2b2lkIEhU
TUxWaWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJlOjpyZXF1ZXN0UGljdHVyZUluUGljdHVyZShI
VE1MVmlkZW9FbGVtZW50JiB2aWRlb0VsZW1lbnQsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYgcHJv
bWlzZSkKIHsKICAgICBpZiAoIXN1cHBvcnRzUGljdHVyZUluUGljdHVyZSgpKSB7Ci0gICAgICAg
IHByb21pc2UtPnJlamVjdChOb3RTdXBwb3J0ZWRFcnJvciwgIlRoZSBQaWN0dXJlLWluLVBpY3R1
cmUgbW9kZSBpcyBub3Qgc3VwcG9ydGVkLiIpOworICAgICAgICBwcm9taXNlLT5yZWplY3QoTm90
U3VwcG9ydGVkRXJyb3IsICJUaGUgUGljdHVyZS1pbi1QaWN0dXJlIG1vZGUgaXMgbm90IHN1cHBv
cnRlZC4iX3MpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgaWYgKHZpZGVvRWxlbWVu
dC5yZWFkeVN0YXRlKCkgPT0gSFRNTE1lZGlhRWxlbWVudEVudW1zOjpIQVZFX05PVEhJTkcpIHsK
LSAgICAgICAgcHJvbWlzZS0+cmVqZWN0KEludmFsaWRTdGF0ZUVycm9yLCAiVGhlIHZpZGVvIGVs
ZW1lbnQgaXMgbm90IHJlYWR5IHRvIGVudGVyIHRoZSBQaWN0dXJlLWluLVBpY3R1cmUgbW9kZS4i
KTsKKyAgICAgICAgcHJvbWlzZS0+cmVqZWN0KEludmFsaWRTdGF0ZUVycm9yLCAiVGhlIHZpZGVv
IGVsZW1lbnQgaXMgbm90IHJlYWR5IHRvIGVudGVyIHRoZSBQaWN0dXJlLWluLVBpY3R1cmUgbW9k
ZS4iX3MpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCiAgICAgaWYgKCF2aWRlb0VsZW1lbnQu
dmlkZW9UcmFja3MoKSB8fCAhdmlkZW9FbGVtZW50LnZpZGVvVHJhY2tzKCktPmxlbmd0aCgpKSB7
Ci0gICAgICAgIHByb21pc2UtPnJlamVjdChJbnZhbGlkU3RhdGVFcnJvciwgIlRoZSB2aWRlbyBl
bGVtZW50IGRvZXMgbm90IGhhdmUgYSB2aWRlbyB0cmFjayBvciBpdCBoYXMgbm90IGRldGVjdGVk
IGEgdmlkZW8gdHJhY2sgeWV0LiIpOworICAgICAgICBwcm9taXNlLT5yZWplY3QoSW52YWxpZFN0
YXRlRXJyb3IsICJUaGUgdmlkZW8gZWxlbWVudCBkb2VzIG5vdCBoYXZlIGEgdmlkZW8gdHJhY2sg
b3IgaXQgaGFzIG5vdCBkZXRlY3RlZCBhIHZpZGVvIHRyYWNrIHlldC4iX3MpOwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCiAgICAgYm9vbCB1c2VyQWN0aXZhdGlvblJlcXVpcmVkID0gIXZpZGVv
RWxlbWVudC5kb2N1bWVudCgpLnBpY3R1cmVJblBpY3R1cmVFbGVtZW50KCk7CiAgICAgaWYgKHVz
ZXJBY3RpdmF0aW9uUmVxdWlyZWQgJiYgIVVzZXJHZXN0dXJlSW5kaWNhdG9yOjpwcm9jZXNzaW5n
VXNlckdlc3R1cmUoKSkgewotICAgICAgICBwcm9taXNlLT5yZWplY3QoTm90QWxsb3dlZEVycm9y
LCAiVGhlIHJlcXVlc3QgaXMgbm90IHRyaWdnZXJlZCBieSBhIHVzZXIgYWN0aXZhdGlvbi4iKTsK
KyAgICAgICAgcHJvbWlzZS0+cmVqZWN0KE5vdEFsbG93ZWRFcnJvciwgIlRoZSByZXF1ZXN0IGlz
IG5vdCB0cmlnZ2VyZWQgYnkgYSB1c2VyIGFjdGl2YXRpb24uIl9zKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIApAQCAtMTA4LDcgKzEwOCw3IEBAIHZvaWQgSFRNTFZpZGVvRWxlbWVudFBpY3R1
cmVJblBpY3R1cmU6OnJlcXVlc3RQaWN0dXJlSW5QaWN0dXJlKEhUTUxWaWRlb0VsZW1lbnQmCiAg
ICAgfQogCiAgICAgaWYgKHZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmUtPm1fZW50ZXJQaWN0
dXJlSW5QaWN0dXJlUHJvbWlzZSB8fCB2aWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJlLT5tX2V4
aXRQaWN0dXJlSW5QaWN0dXJlUHJvbWlzZSkgewotICAgICAgICBwcm9taXNlLT5yZWplY3QoTm90
QWxsb3dlZEVycm9yLCAiVGhlIHZpZGVvIGVsZW1lbnQgaXMgcHJvY2Vzc2luZyBhIFBpY3R1cmUt
aW4tUGljdHVyZSByZXF1ZXN0LiIpOworICAgICAgICBwcm9taXNlLT5yZWplY3QoTm90QWxsb3dl
ZEVycm9yLCAiVGhlIHZpZGVvIGVsZW1lbnQgaXMgcHJvY2Vzc2luZyBhIFBpY3R1cmUtaW4tUGlj
dHVyZSByZXF1ZXN0LiJfcyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTExNiw3ICsx
MTYsNyBAQCB2b2lkIEhUTUxWaWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJlOjpyZXF1ZXN0UGlj
dHVyZUluUGljdHVyZShIVE1MVmlkZW9FbGVtZW50JgogICAgICAgICB2aWRlb0VsZW1lbnRQaWN0
dXJlSW5QaWN0dXJlLT5tX2VudGVyUGljdHVyZUluUGljdHVyZVByb21pc2UgPSBXVEZNb3ZlKHBy
b21pc2UpOwogICAgICAgICB2aWRlb0VsZW1lbnQud2Via2l0U2V0UHJlc2VudGF0aW9uTW9kZShI
VE1MVmlkZW9FbGVtZW50OjpWaWRlb1ByZXNlbnRhdGlvbk1vZGU6OlBpY3R1cmVJblBpY3R1cmUp
OwogICAgIH0gZWxzZQotICAgICAgICBwcm9taXNlLT5yZWplY3QoTm90U3VwcG9ydGVkRXJyb3Is
ICJUaGUgdmlkZW8gZWxlbWVudCBkb2VzIG5vdCBzdXBwb3J0IHRoZSBQaWN0dXJlLWluLVBpY3R1
cmUgbW9kZS4iKTsKKyAgICAgICAgcHJvbWlzZS0+cmVqZWN0KE5vdFN1cHBvcnRlZEVycm9yLCAi
VGhlIHZpZGVvIGVsZW1lbnQgZG9lcyBub3Qgc3VwcG9ydCB0aGUgUGljdHVyZS1pbi1QaWN0dXJl
IG1vZGUuIl9zKTsKIH0KIAogYm9vbCBIVE1MVmlkZW9FbGVtZW50UGljdHVyZUluUGljdHVyZTo6
YXV0b1BpY3R1cmVJblBpY3R1cmUoSFRNTFZpZGVvRWxlbWVudCYgdmlkZW9FbGVtZW50KQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5zL1lvdVR1YmVQbHVnaW5SZXBs
YWNlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvWW91VHViZVBsdWdp
blJlcGxhY2VtZW50LmNwcAppbmRleCA5NzlmMjI0NTkwNzIwZjgyOTMzNWQ2MGEzYThkOGFlNWMz
YjcyMjQzLi5kZDE2Zjg5M2YyZDY5NTJjYzVmMDAzMDhmOWQwZDk5YWI4YjBlOGEyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvWW91VHViZVBsdWdpblJlcGxhY2Vt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdpbnMvWW91VHViZVBsdWdp
blJlcGxhY2VtZW50LmNwcApAQCAtODQsMTYgKzg0LDE2IEBAIGF1dG8gWW91VHViZVBsdWdpblJl
cGxhY2VtZW50OjppbnN0YWxsUmVwbGFjZW1lbnQoU2hhZG93Um9vdCYgcm9vdCkgLT4gSW5zdGFs
bFJlCiAgICAgcm9vdC5hcHBlbmRDaGlsZCgqbV9lbWJlZFNoYWRvd0VsZW1lbnQpOwogCiAgICAg
YXV0byBpZnJhbWVFbGVtZW50ID0gSFRNTElGcmFtZUVsZW1lbnQ6OmNyZWF0ZShIVE1MTmFtZXM6
OmlmcmFtZVRhZywgbV9wYXJlbnRFbGVtZW50LT5kb2N1bWVudCgpKTsKLSAgICBpZiAobV9hdHRy
aWJ1dGVzLmNvbnRhaW5zKCJ3aWR0aCIpKQorICAgIGlmIChtX2F0dHJpYnV0ZXMuY29udGFpbnMo
IndpZHRoIl9zKSkKICAgICAgICAgaWZyYW1lRWxlbWVudC0+c2V0QXR0cmlidXRlV2l0aG91dFN5
bmNocm9uaXphdGlvbihIVE1MTmFtZXM6OndpZHRoQXR0ciwgQXRvbVN0cmluZygiMTAwJSIsIEF0
b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKSk7CiAKLSAgICBjb25zdCBhdXRvJiBoZWln
aHRWYWx1ZSA9IG1fYXR0cmlidXRlcy5maW5kKCJoZWlnaHQiKTsKKyAgICBjb25zdCBhdXRvJiBo
ZWlnaHRWYWx1ZSA9IG1fYXR0cmlidXRlcy5maW5kKCJoZWlnaHQiX3MpOwogICAgIGlmIChoZWln
aHRWYWx1ZSAhPSBtX2F0dHJpYnV0ZXMuZW5kKCkpIHsKICAgICAgICAgaWZyYW1lRWxlbWVudC0+
c2V0QXR0cmlidXRlKEhUTUxOYW1lczo6c3R5bGVBdHRyLCBBdG9tU3RyaW5nKCJtYXgtaGVpZ2h0
OiAxMDAlIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICAgICAgaWZy
YW1lRWxlbWVudC0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihIVE1MTmFtZXM6
OmhlaWdodEF0dHIsIGhlaWdodFZhbHVlLT52YWx1ZSk7CiAgICAgfQogCi0gICAgaWZyYW1lRWxl
bWVudC0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihIVE1MTmFtZXM6OnNyY0F0
dHIsIHlvdVR1YmVVUkwobV9hdHRyaWJ1dGVzLmdldCgic3JjIikpKTsKKyAgICBpZnJhbWVFbGVt
ZW50LT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKEhUTUxOYW1lczo6c3JjQXR0
ciwgeW91VHViZVVSTChtX2F0dHJpYnV0ZXMuZ2V0KCJzcmMiX3MpKSk7CiAgICAgaWZyYW1lRWxl
bWVudC0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihIVE1MTmFtZXM6OmZyYW1l
Ym9yZGVyQXR0ciwgQXRvbVN0cmluZygiMCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRl
cmFsKSk7CiAgICAgCiAgICAgLy8gRGlzYWJsZSBmcmFtZSBmbGF0dGVuaW5nIGZvciB0aGlzIGlm
cmFtZS4KQEAgLTIzMSwxMSArMjMxLDExIEBAIHN0YXRpYyBVUkwgcHJvY2Vzc0FuZENyZWF0ZVlv
dVR1YmVVUkwoY29uc3QgVVJMJiB1cmwsIGJvb2wmIGlzWW91VHViZVNob3J0ZW5lZFVSCiAgICAg
aWYgKGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKHBhdGgsICIvd2F0Y2giKSkgewogICAg
ICAgICBpZiAoIXF1ZXJ5LmlzRW1wdHkoKSkgewogICAgICAgICAgICAgY29uc3QgYXV0byYgcXVl
cnlEaWN0aW9uYXJ5ID0gcXVlcnlLZXlzQW5kVmFsdWVzKHF1ZXJ5KTsKLSAgICAgICAgICAgIFN0
cmluZyB2aWRlb0lEID0gdmFsdWVGb3JLZXkocXVlcnlEaWN0aW9uYXJ5LCAidiIpOworICAgICAg
ICAgICAgU3RyaW5nIHZpZGVvSUQgPSB2YWx1ZUZvcktleShxdWVyeURpY3Rpb25hcnksICJ2Il9z
KTsKICAgICAgICAgICAgIAogICAgICAgICAgICAgaWYgKCF2aWRlb0lELmlzRW1wdHkoKSkgewog
ICAgICAgICAgICAgICAgIGNvbnN0IGF1dG8mIGZyYWdtZW50RGljdGlvbmFyeSA9IHF1ZXJ5S2V5
c0FuZFZhbHVlcyh1cmwuZnJhZ21lbnRJZGVudGlmaWVyKCkpOwotICAgICAgICAgICAgICAgIFN0
cmluZyB0aW1lSUQgPSB2YWx1ZUZvcktleShmcmFnbWVudERpY3Rpb25hcnksICJ0Iik7CisgICAg
ICAgICAgICAgICAgU3RyaW5nIHRpbWVJRCA9IHZhbHVlRm9yS2V5KGZyYWdtZW50RGljdGlvbmFy
eSwgInQiX3MpOwogICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVZb3VUdWJlVVJMKHZpZGVv
SUQsIHRpbWVJRCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KQEAgLTI0NiwxMCArMjQ2LDEw
IEBAIHN0YXRpYyBVUkwgcHJvY2Vzc0FuZENyZWF0ZVlvdVR1YmVVUkwoY29uc3QgVVJMJiB1cmws
IGJvb2wmIGlzWW91VHViZVNob3J0ZW5lZFVSCiAgICAgICAgICAgICAKICAgICAgICAgICAgIGlm
ICghcXVlcnkuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICAgICAgY29uc3QgYXV0byYgcXVlcnlE
aWN0aW9uYXJ5ID0gcXVlcnlLZXlzQW5kVmFsdWVzKHF1ZXJ5KTsKLSAgICAgICAgICAgICAgICBT
dHJpbmcgdmlkZW9JRCA9IHZhbHVlRm9yS2V5KHF1ZXJ5RGljdGlvbmFyeSwgInYiKTsKKyAgICAg
ICAgICAgICAgICBTdHJpbmcgdmlkZW9JRCA9IHZhbHVlRm9yS2V5KHF1ZXJ5RGljdGlvbmFyeSwg
InYiX3MpOwogICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgIGlmICghdmlkZW9JRC5p
c0VtcHR5KCkpIHsKLSAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHRpbWVJRCA9IHZhbHVlRm9y
S2V5KHF1ZXJ5RGljdGlvbmFyeSwgInQiKTsKKyAgICAgICAgICAgICAgICAgICAgU3RyaW5nIHRp
bWVJRCA9IHZhbHVlRm9yS2V5KHF1ZXJ5RGljdGlvbmFyeSwgInQiX3MpOwogICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gY3JlYXRlWW91VHViZVVSTCh2aWRlb0lELCB0aW1lSUQpOwogICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNl
SW1wbC5jcHAKaW5kZXggYzIzYThkNjdjYjQ4MTIzM2Y3Y2I0YjUxOWIxMzZiMjIxOTA2YmViZS4u
NjA3NTNmZWNlMzVhMjlmODhlOTI2MjBhMjBiODA5YWZlOTZjYzcyMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNl
SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2du
aXRpb25DYXB0dXJlU291cmNlSW1wbC5jcHAKQEAgLTkyLDcgKzkyLDcgQEAgYm9vbCBTcGVlY2hS
ZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjp1cGRhdGVEYXRhU291cmNlKGNvbnN0IENBQXVk
aW9TdHJlYW1EZXMKICAgICBpZiAoZGF0YVNvdXJjZS0+c2V0SW5wdXRGb3JtYXQoYXVkaW9EZXNj
cmlwdGlvbikpIHsKICAgICAgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgd2Vha1RoaXMgPSBX
ZWFrUHRyIHsgKnRoaXMgfV0gewogICAgICAgICAgICAgaWYgKHdlYWtUaGlzKQotICAgICAgICAg
ICAgICAgIG1fc3RhdGVVcGRhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3Jl
YXRlRXJyb3IobV9jbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yIHsgU3Bl
ZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlvQ2FwdHVyZSwgIlVuYWJsZSB0byBzZXQgaW5w
dXQgZm9ybWF0IiB9KSk7CisgICAgICAgICAgICAgICAgbV9zdGF0ZVVwZGF0ZUNhbGxiYWNrKFNw
ZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihtX2NsaWVudElkZW50aWZpZXIsIFNw
ZWVjaFJlY29nbml0aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9D
YXB0dXJlLCAiVW5hYmxlIHRvIHNldCBpbnB1dCBmb3JtYXQiX3MgfSkpOwogICAgICAgICB9KTsK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KQEAgLTEwMCw3ICsxMDAsNyBAQCBib29sIFNw
ZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6OnVwZGF0ZURhdGFTb3VyY2UoY29uc3Qg
Q0FBdWRpb1N0cmVhbURlcwogICAgIGlmIChkYXRhU291cmNlLT5zZXRPdXRwdXRGb3JtYXQoYXVk
aW9EZXNjcmlwdGlvbikpIHsKICAgICAgICAgY2FsbE9uTWFpblRocmVhZChbdGhpcywgd2Vha1Ro
aXMgPSBXZWFrUHRyIHsgKnRoaXMgfV0gewogICAgICAgICAgICAgaWYgKHdlYWtUaGlzKQotICAg
ICAgICAgICAgICAgIG1fc3RhdGVVcGRhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0
ZTo6Y3JlYXRlRXJyb3IobV9jbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvbkVycm9y
IHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlvQ2FwdHVyZSwgIlVuYWJsZSB0byBz
ZXQgb3V0cHV0IGZvcm1hdCIgfSkpOworICAgICAgICAgICAgICAgIG1fc3RhdGVVcGRhdGVDYWxs
YmFjayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IobV9jbGllbnRJZGVudGlm
aWVyLCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6
OkF1ZGlvQ2FwdHVyZSwgIlVuYWJsZSB0byBzZXQgb3V0cHV0IGZvcm1hdCJfcyB9KSk7CiAgICAg
ICAgIH0pOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpAQCAtMTU3LDEzICsxNTcsMTMg
QEAgdm9pZCBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjpzb3VyY2VTdG9wcGVk
KCkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIEFTU0VSVChtX3NvdXJjZS0+
Y2FwdHVyZURpZEZhaWwoKSk7Ci0gICAgbV9zdGF0ZVVwZGF0ZUNhbGxiYWNrKFNwZWVjaFJlY29n
bml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihtX2NsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29n
bml0aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCAi
U291cmNlIGlzIHN0b3BwZWQiIH0pKTsKKyAgICBtX3N0YXRlVXBkYXRlQ2FsbGJhY2soU3BlZWNo
UmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZUVycm9yKG1fY2xpZW50SWRlbnRpZmllciwgU3BlZWNo
UmVjb2duaXRpb25FcnJvciB7IFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpBdWRpb0NhcHR1
cmUsICJTb3VyY2UgaXMgc3RvcHBlZCJfcyB9KSk7CiB9CiAKIHZvaWQgU3BlZWNoUmVjb2duaXRp
b25DYXB0dXJlU291cmNlSW1wbDo6c291cmNlTXV0ZWRDaGFuZ2VkKCkKIHsKICAgICBBU1NFUlQo
aXNNYWluVGhyZWFkKCkpOwotICAgIG1fc3RhdGVVcGRhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25p
dGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IobV9jbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25p
dGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlvQ2FwdHVyZSwgIlNv
dXJjZSBpcyBtdXRlZCIgfSkpOworICAgIG1fc3RhdGVVcGRhdGVDYWxsYmFjayhTcGVlY2hSZWNv
Z25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IobV9jbGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNv
Z25pdGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6OkF1ZGlvQ2FwdHVyZSwg
IlNvdXJjZSBpcyBtdXRlZCJfcyB9KSk7CiB9CiAKIHZvaWQgU3BlZWNoUmVjb2duaXRpb25DYXB0
dXJlU291cmNlSW1wbDo6bXV0ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9jb2NvYS9XZWJTcGVlY2hSZWNvZ25pemVyVGFza01vY2subW0gYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3NwZWVjaC9jb2NvYS9XZWJTcGVlY2hSZWNvZ25pemVyVGFza01vY2subW0K
aW5kZXggMmQzNDhlZDIwYzIxYjUxMDM0ODg3OWQ1YzI2M2ZjMGUzY2ZlZDg2Yi4uYmVmM2E1MjI1
MTdmNGMyZTMyZjU4MzIzZGE5ODQzMGJiMGQxOTViNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9zcGVlY2gvY29jb2EvV2ViU3BlZWNoUmVjb2duaXplclRhc2tNb2NrLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL2NvY29hL1dlYlNwZWVjaFJlY29nbml6
ZXJUYXNrTW9jay5tbQpAQCAtNjEsNyArNjEsNyBAQCAtICh2b2lkKWF1ZGlvU2FtcGxlc0F2YWls
YWJsZTooQ01TYW1wbGVCdWZmZXJSZWYpc2FtcGxlQnVmZmVyCiAgICAgfQogCiAgICAgLy8gRmFr
ZSBzb21lIHJlY29nbml0aW9uIHJlc3VsdHMuCi0gICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRp
b25BbHRlcm5hdGl2ZURhdGEgYWx0ZXJuYXRpdmUgeyAiVGVzdCIsIDEuMCB9OworICAgIFdlYkNv
cmU6OlNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmVEYXRhIGFsdGVybmF0aXZlIHsgIlRlc3Qi
X3MsIDEuMCB9OwogICAgIF9kZWxlZ2F0ZUNhbGxiYWNrKFdlYkNvcmU6OlNwZWVjaFJlY29nbml0
aW9uVXBkYXRlOjpjcmVhdGVSZXN1bHQoX2lkZW50aWZpZXIsIHsgV2ViQ29yZTo6U3BlZWNoUmVj
b2duaXRpb25SZXN1bHREYXRhIHsgeyBXVEZNb3ZlKGFsdGVybmF0aXZlKSB9LCB0cnVlIH0gfSkp
OwogCiAgICAgaWYgKCFfZG9NdWx0aXBsZVJlY29nbml0aW9ucykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvc3RvcmFnZS9TdG9yYWdlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3N0b3JhZ2UvU3RvcmFnZU1hbmFnZXIuY3BwCmluZGV4IDE4OGQzMGI2MTk4
YjE2MWUxYjQ3YWU5NzY4ZTBjMWU5NTc2NjUzYWIuLjYzNmI0OGM5ZjA0NzliYzVhZTMxOTRlYTFl
ODkwNTY5NjU3MTdhNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RvcmFn
ZS9TdG9yYWdlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdG9yYWdl
L1N0b3JhZ2VNYW5hZ2VyLmNwcApAQCAtNzIsNyArNzIsNyBAQCBzdGF0aWMgRXhjZXB0aW9uT3I8
Q29ubmVjdGlvbkluZm8+IGNvbm5lY3Rpb25JbmZvKE5hdmlnYXRvckJhc2UqIG5hdmlnYXRvcikK
ICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiT3JpZ2luIGlz
IGludmFsaWQiX3MgfTsKIAogICAgIGlmICghb3JpZ2luLT5jYW5BY2Nlc3NTdG9yYWdlTWFuYWdl
cigpKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiT3JpZ2luIHNob3Vs
ZCBub3QgYWNjZXNzIHN0b3JhZ2UiIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBl
RXJyb3IsICJPcmlnaW4gc2hvdWxkIG5vdCBhY2Nlc3Mgc3RvcmFnZSJfcyB9OwogCiAgICAgaWYg
KGlzPERvY3VtZW50Pihjb250ZXh0KSkgewogICAgICAgICBpZiAoYXV0byogY29ubmVjdGlvbiA9
IGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0KS0+c3RvcmFnZUNvbm5lY3Rpb24oKSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNYW5hZ2VyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNYW5hZ2VyLmNwcApp
bmRleCAyMTk5OTJmNmI1YjE0YzViNjAyNzU0NTZhZGRiMDg1Nzc4NmUxMjVmLi5hMTYxYjNkMmMw
NWMzZjQ5YzliMGE4ZjllNjk2NmQ0NWJhYWRlZmVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja01hbmFnZXIuY3BwCkBAIC0zMzgsNyArMzM4LDcg
QEAgdm9pZCBXZWJMb2NrTWFuYWdlcjo6c2lnbmFsVG9BYm9ydFRoZVJlcXVlc3QoV2ViTG9ja0lk
ZW50aWZpZXIgbG9ja0lkZW50aWZpZXIpCiAgICAgICAgIGlmICh3YXNBYm9ydGVkICYmIHdlYWtU
aGlzKQogICAgICAgICAgICAgd2Vha1RoaXMtPm1fcGVuZGluZ1JlcXVlc3RzLnJlbW92ZShsb2Nr
SWRlbnRpZmllcik7CiAgICAgfSk7Ci0gICAgc2V0dGxlUmVsZWFzZVByb21pc2UobG9ja0lkZW50
aWZpZXIsIEV4Y2VwdGlvbiB7IEFib3J0RXJyb3IsICJMb2NrIHJlcXVlc3Qgd2FzIGFib3J0ZWQg
dmlhIEFib3J0U2lnbmFsIiB9KTsKKyAgICBzZXR0bGVSZWxlYXNlUHJvbWlzZShsb2NrSWRlbnRp
ZmllciwgRXhjZXB0aW9uIHsgQWJvcnRFcnJvciwgIkxvY2sgcmVxdWVzdCB3YXMgYWJvcnRlZCB2
aWEgQWJvcnRTaWduYWwiX3MgfSk7CiB9CiAKIHZvaWQgV2ViTG9ja01hbmFnZXI6OnNldHRsZVJl
bGVhc2VQcm9taXNlKFdlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyLCBFeGNlcHRpb25P
cjxKU0M6OkpTVmFsdWU+JiYgcmVzdWx0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9BdWRpb0xpc3RlbmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9MaXN0ZW5lci5jcHAKaW5kZXggMDIwZTc2ZjQzNjRlNmRlZjhmODE3MjRk
YjdjMmZkOGFlNTcwMjE3OS4uNzZjNzZkNzU0NGU3MGM5YWNkM2JkZGY5NmYzNGM4YWM2YmE5ZmRm
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0xpc3Rl
bmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTGlzdGVu
ZXIuY3BwCkBAIC00MCwxNSArNDAsMTUgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogQXVkaW9M
aXN0ZW5lcjo6QXVkaW9MaXN0ZW5lcihCYXNlQXVkaW9Db250ZXh0JiBjb250ZXh0KQotICAgIDog
bV9wb3NpdGlvblgoQXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJwb3NpdGlvblgiLCAwLjAs
IC1GTFRfTUFYLCBGTFRfTUFYLCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQotICAgICwgbV9wb3Np
dGlvblkoQXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJwb3NpdGlvblkiLCAwLjAsIC1GTFRf
TUFYLCBGTFRfTUFYLCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQotICAgICwgbV9wb3NpdGlvbloo
QXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJwb3NpdGlvbloiLCAwLjAsIC1GTFRfTUFYLCBG
TFRfTUFYLCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQotICAgICwgbV9mb3J3YXJkWChBdWRpb1Bh
cmFtOjpjcmVhdGUoY29udGV4dCwgImZvcndhcmRYIiwgMC4wLCAtRkxUX01BWCwgRkxUX01BWCwg
QXV0b21hdGlvblJhdGU6OkFSYXRlKSkKLSAgICAsIG1fZm9yd2FyZFkoQXVkaW9QYXJhbTo6Y3Jl
YXRlKGNvbnRleHQsICJmb3J3YXJkWSIsIDAuMCwgLUZMVF9NQVgsIEZMVF9NQVgsIEF1dG9tYXRp
b25SYXRlOjpBUmF0ZSkpCi0gICAgLCBtX2ZvcndhcmRaKEF1ZGlvUGFyYW06OmNyZWF0ZShjb250
ZXh0LCAiZm9yd2FyZFoiLCAtMS4wLCAtRkxUX01BWCwgRkxUX01BWCwgQXV0b21hdGlvblJhdGU6
OkFSYXRlKSkKLSAgICAsIG1fdXBYKEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0LCAidXBYIiwg
MC4wLCAtRkxUX01BWCwgRkxUX01BWCwgQXV0b21hdGlvblJhdGU6OkFSYXRlKSkKLSAgICAsIG1f
dXBZKEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0LCAidXBZIiwgMS4wLCAtRkxUX01BWCwgRkxU
X01BWCwgQXV0b21hdGlvblJhdGU6OkFSYXRlKSkKLSAgICAsIG1fdXBaKEF1ZGlvUGFyYW06OmNy
ZWF0ZShjb250ZXh0LCAidXBaIiwgMC4wLCAtRkxUX01BWCwgRkxUX01BWCwgQXV0b21hdGlvblJh
dGU6OkFSYXRlKSkKKyAgICA6IG1fcG9zaXRpb25YKEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0
LCAicG9zaXRpb25YIl9zLCAwLjAsIC1GTFRfTUFYLCBGTFRfTUFYLCBBdXRvbWF0aW9uUmF0ZTo6
QVJhdGUpKQorICAgICwgbV9wb3NpdGlvblkoQXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJw
b3NpdGlvblkiX3MsIDAuMCwgLUZMVF9NQVgsIEZMVF9NQVgsIEF1dG9tYXRpb25SYXRlOjpBUmF0
ZSkpCisgICAgLCBtX3Bvc2l0aW9uWihBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCwgInBvc2l0
aW9uWiJfcywgMC4wLCAtRkxUX01BWCwgRkxUX01BWCwgQXV0b21hdGlvblJhdGU6OkFSYXRlKSkK
KyAgICAsIG1fZm9yd2FyZFgoQXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJmb3J3YXJkWCJf
cywgMC4wLCAtRkxUX01BWCwgRkxUX01BWCwgQXV0b21hdGlvblJhdGU6OkFSYXRlKSkKKyAgICAs
IG1fZm9yd2FyZFkoQXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJmb3J3YXJkWSJfcywgMC4w
LCAtRkxUX01BWCwgRkxUX01BWCwgQXV0b21hdGlvblJhdGU6OkFSYXRlKSkKKyAgICAsIG1fZm9y
d2FyZFooQXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJmb3J3YXJkWiJfcywgLTEuMCwgLUZM
VF9NQVgsIEZMVF9NQVgsIEF1dG9tYXRpb25SYXRlOjpBUmF0ZSkpCisgICAgLCBtX3VwWChBdWRp
b1BhcmFtOjpjcmVhdGUoY29udGV4dCwgInVwWCJfcywgMC4wLCAtRkxUX01BWCwgRkxUX01BWCwg
QXV0b21hdGlvblJhdGU6OkFSYXRlKSkKKyAgICAsIG1fdXBZKEF1ZGlvUGFyYW06OmNyZWF0ZShj
b250ZXh0LCAidXBZIl9zLCAxLjAsIC1GTFRfTUFYLCBGTFRfTUFYLCBBdXRvbWF0aW9uUmF0ZTo6
QVJhdGUpKQorICAgICwgbV91cFooQXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJ1cFoiX3Ms
IDAuMCwgLUZMVF9NQVgsIEZMVF9NQVgsIEF1dG9tYXRpb25SYXRlOjpBUmF0ZSkpCiAgICAgLCBt
X3Bvc2l0aW9uWFZhbHVlcyhBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUpCiAgICAg
LCBtX3Bvc2l0aW9uWVZhbHVlcyhBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUpCiAg
ICAgLCBtX3Bvc2l0aW9uWlZhbHVlcyhBdWRpb1V0aWxpdGllczo6cmVuZGVyUXVhbnR1bVNpemUp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0u
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtLmNwcAppbmRl
eCBiZTEyYmI1YWEwMjdlNTNhMTM0Njg0N2U2Yzk5M2MyM2Y5ZjAxODk4Li4wZDQ2YTNmOTA0Y2M0
ZDA5Mzg4YjRmYjAxMjMzY2I2MDhlYzdmNmQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9QYXJhbS5jcHAKQEAgLTEwOSw3ICsxMDksNyBAQCBFeGNlcHRpb25P
cjx2b2lkPiBBdWRpb1BhcmFtOjpzZXRWYWx1ZUZvckJpbmRpbmdzKGZsb2F0IHZhbHVlKQogRXhj
ZXB0aW9uT3I8dm9pZD4gQXVkaW9QYXJhbTo6c2V0QXV0b21hdGlvblJhdGUoQXV0b21hdGlvblJh
dGUgYXV0b21hdGlvblJhdGUpCiB7CiAgICAgaWYgKG1fYXV0b21hdGlvblJhdGVNb2RlID09IEF1
dG9tYXRpb25SYXRlTW9kZTo6Rml4ZWQpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZh
bGlkU3RhdGVFcnJvciwgImF1dG9tYXRpb25SYXRlIGNhbm5vdCBiZSBjaGFuZ2VkIGZvciB0aGlz
IG5vZGUiIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwg
ImF1dG9tYXRpb25SYXRlIGNhbm5vdCBiZSBjaGFuZ2VkIGZvciB0aGlzIG5vZGUiX3MgfTsKIAog
ICAgIG1fYXV0b21hdGlvblJhdGUgPSBhdXRvbWF0aW9uUmF0ZTsKICAgICByZXR1cm4geyB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtVGlt
ZWxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtVGlt
ZWxpbmUuY3BwCmluZGV4IGU1OWFhN2U2ZDg0MmZhZWJmZGMzOGEwNTllYzk1YzgxOTNlNTQ2YTYu
LmNjMzRkYzM0ZTUwNzFkNzRiZDUyYzFkYjY4OGJjOWYyMTQ4ZTUzZDcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbVRpbWVsaW5lLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW1UaW1lbGluZS5jcHAK
QEAgLTE3Miw3ICsxNzIsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBBdWRpb1BhcmFtVGltZWxpbmU6
Omluc2VydEV2ZW50KFBhcmFtRXZlbnQmJiBldmVudCkKICAgICAgICAgICAgIC8vIE90aGVyd2lz
ZSwgbWFrZSBzdXJlIHRoaXMgZXZlbnQgZG9lc24ndCBvdmVybGFwIGFueSBleGlzdGluZyBTZXRW
YWx1ZUN1cnZlIGV2ZW50LgogICAgICAgICAgICAgYXV0byBwYXJlbnRFdmVudEVuZFRpbWUgPSBw
YXJhbUV2ZW50LnRpbWUoKSArIHBhcmFtRXZlbnQuZHVyYXRpb24oKTsKICAgICAgICAgICAgIGlm
IChldmVudC50aW1lKCkgPj0gcGFyYW1FdmVudC50aW1lKCkgJiYgZXZlbnQudGltZSgpIDwgcGFy
ZW50RXZlbnRFbmRUaW1lKQotICAgICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RT
dXBwb3J0ZWRFcnJvciwgIkV2ZW50cyBhcmUgb3ZlcmxhcHBpbmciIH07CisgICAgICAgICAgICAg
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yLCAiRXZlbnRzIGFyZSBvdmVy
bGFwcGluZyJfcyB9OwogICAgICAgICB9CiAKICAgICAgICAgaWYgKHBhcmFtRXZlbnQudGltZSgp
ID4gaW5zZXJ0VGltZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQmlxdWFkRmlsdGVyTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0JpcXVhZEZpbHRlck5vZGUuY3BwCmluZGV4IDE0MGVkMGEyNmU1NzU1MTcwMTRhYzMzYTY0MzE1
NTg5MDljMDI3MmMuLjVkNzM2Y2ZjYjI1NTkxOGY4OTc1ZDdiM2IxZjc4ZmIwYjAzNDUxNjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmlxdWFkRmlsdGVyTm9k
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CaXF1YWRGaWx0ZXJO
b2RlLmNwcApAQCAtNzQsNyArNzQsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBCaXF1YWRGaWx0ZXJO
b2RlOjpnZXRGcmVxdWVuY3lSZXNwb25zZShjb25zdCBSZWY8RmxvYXQzMkFycmF5PgogewogICAg
IHVuc2lnbmVkIGxlbmd0aCA9IGZyZXF1ZW5jeUh6LT5sZW5ndGgoKTsKICAgICBpZiAobWFnUmVz
cG9uc2UtPmxlbmd0aCgpICE9IGxlbmd0aCB8fCBwaGFzZVJlc3BvbnNlLT5sZW5ndGgoKSAhPSBs
ZW5ndGgpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJU
aGUgYXJyYXlzIHBhc3NlZCBhcyBhcmd1bWVudHMgbXVzdCBoYXZlIHRoZSBzYW1lIGxlbmd0aCIg
fTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwgIlRoZSBh
cnJheXMgcGFzc2VkIGFzIGFyZ3VtZW50cyBtdXN0IGhhdmUgdGhlIHNhbWUgbGVuZ3RoIl9zIH07
CiAKICAgICBpZiAobGVuZ3RoKQogICAgICAgICBiaXF1YWRQcm9jZXNzb3IoKS0+Z2V0RnJlcXVl
bmN5UmVzcG9uc2UobGVuZ3RoLCBmcmVxdWVuY3lIei0+ZGF0YSgpLCBtYWdSZXNwb25zZS0+ZGF0
YSgpLCBwaGFzZVJlc3BvbnNlLT5kYXRhKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9CaXF1YWRQcm9jZXNzb3IuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9CaXF1YWRQcm9jZXNzb3IuY3BwCmluZGV4IDlkZjYyOWQ3ZWJmZGQ2ZmI3
NDE1ZjNlYjc3OTcyNmJiYWJjYThmMWMuLmY5YTU0MzRlODgwNWQ3ZGU0OTE4YTZmYmQ4NzU0ZDFh
NWVkMjcyMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmlx
dWFkUHJvY2Vzc29yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0Jp
cXVhZFByb2Nlc3Nvci5jcHAKQEAgLTM1LDEwICszNSwxMCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAgICAgCiBCaXF1YWRQcm9jZXNzb3I6OkJpcXVhZFByb2Nlc3NvcihCYXNlQXVkaW9Db250ZXh0
JiBjb250ZXh0LCBmbG9hdCBzYW1wbGVSYXRlLCBzaXplX3QgbnVtYmVyT2ZDaGFubmVscywgYm9v
bCBhdXRvSW5pdGlhbGl6ZSkKICAgICA6IEF1ZGlvRFNQS2VybmVsUHJvY2Vzc29yKHNhbXBsZVJh
dGUsIG51bWJlck9mQ2hhbm5lbHMpCi0gICAgLCBtX3BhcmFtZXRlcjEoQXVkaW9QYXJhbTo6Y3Jl
YXRlKGNvbnRleHQsICJmcmVxdWVuY3kiLCAzNTAuMCwgMC4wLCAwLjUgKiBzYW1wbGVSYXRlLCBB
dXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQotICAgICwgbV9wYXJhbWV0ZXIyKEF1ZGlvUGFyYW06OmNy
ZWF0ZShjb250ZXh0LCAiUSIsIDEsIC1GTFRfTUFYLCBGTFRfTUFYLCBBdXRvbWF0aW9uUmF0ZTo6
QVJhdGUpKQotICAgICwgbV9wYXJhbWV0ZXIzKEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0LCAi
Z2FpbiIsIDAuMCwgLUZMVF9NQVgsIDQwICogc3RkOjpsb2cxMChzdGQ6Om51bWVyaWNfbGltaXRz
PGZsb2F0Pjo6bWF4KCkpLCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQotICAgICwgbV9wYXJhbWV0
ZXI0KEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0LCAiZGV0dW5lIiwgMC4wLCAtMTUzNjAwLCAx
NTM2MDAsIEF1dG9tYXRpb25SYXRlOjpBUmF0ZSkpCisgICAgLCBtX3BhcmFtZXRlcjEoQXVkaW9Q
YXJhbTo6Y3JlYXRlKGNvbnRleHQsICJmcmVxdWVuY3kiX3MsIDM1MC4wLCAwLjAsIDAuNSAqIHNh
bXBsZVJhdGUsIEF1dG9tYXRpb25SYXRlOjpBUmF0ZSkpCisgICAgLCBtX3BhcmFtZXRlcjIoQXVk
aW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJRIl9zLCAxLCAtRkxUX01BWCwgRkxUX01BWCwgQXV0
b21hdGlvblJhdGU6OkFSYXRlKSkKKyAgICAsIG1fcGFyYW1ldGVyMyhBdWRpb1BhcmFtOjpjcmVh
dGUoY29udGV4dCwgImdhaW4iX3MsIDAuMCwgLUZMVF9NQVgsIDQwICogc3RkOjpsb2cxMChzdGQ6
Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6bWF4KCkpLCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQor
ICAgICwgbV9wYXJhbWV0ZXI0KEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0LCAiZGV0dW5lIl9z
LCAwLjAsIC0xNTM2MDAsIDE1MzYwMCwgQXV0b21hdGlvblJhdGU6OkFSYXRlKSkKIHsKICAgICBp
ZiAoYXV0b0luaXRpYWxpemUpCiAgICAgICAgIGluaXRpYWxpemUoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRGVsYXlQcm9jZXNzb3IuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9EZWxheVByb2Nlc3Nvci5jcHAKaW5kZXggYWVlNDBl
OTRlNjVkZWU0YmY4NDQyNTEyOTRlMzE0Mzc4YWQwNDJhNS4uMWY5MGNiYzlmMTk3MDdhOWJjMTdh
MTEzYmNjNGIxZDU4Zjk0MDUwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9EZWxheVByb2Nlc3Nvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9EZWxheVByb2Nlc3Nvci5jcHAKQEAgLTM0LDcgKzM0LDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBEZWxheVByb2Nlc3Nvcjo6RGVsYXlQcm9jZXNzb3IoQmFzZUF1ZGlvQ29udGV4
dCYgY29udGV4dCwgZmxvYXQgc2FtcGxlUmF0ZSwgdW5zaWduZWQgbnVtYmVyT2ZDaGFubmVscywg
ZG91YmxlIG1heERlbGF5VGltZSkKICAgICA6IEF1ZGlvRFNQS2VybmVsUHJvY2Vzc29yKHNhbXBs
ZVJhdGUsIG51bWJlck9mQ2hhbm5lbHMpCi0gICAgLCBtX2RlbGF5VGltZShBdWRpb1BhcmFtOjpj
cmVhdGUoY29udGV4dCwgImRlbGF5VGltZSIsIDAuMCwgMC4wLCBtYXhEZWxheVRpbWUsIEF1dG9t
YXRpb25SYXRlOjpBUmF0ZSkpCisgICAgLCBtX2RlbGF5VGltZShBdWRpb1BhcmFtOjpjcmVhdGUo
Y29udGV4dCwgImRlbGF5VGltZSJfcywgMC4wLCAwLjAsIG1heERlbGF5VGltZSwgQXV0b21hdGlv
blJhdGU6OkFSYXRlKSkKIHsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9XYXZlU2hhcGVyTm9kZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL1dhdmVTaGFwZXJOb2RlLmNwcAppbmRleCBmYzE1MjgyN2IzYTBjYzI3YThkNDNiNTQ1
NDRmZjRiYzViYzQ5YzliLi42NDI5YzMwNTE2MTJhZmVlODJiM2ZjYmQ1OGIyZjYwNzQwZmY5NDg0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1dhdmVTaGFwZXJO
b2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1dhdmVTaGFwZXJO
b2RlLmNwcApAQCAtNDMsNyArNDMsNyBAQCBFeGNlcHRpb25PcjxSZWY8V2F2ZVNoYXBlck5vZGU+
PiBXYXZlU2hhcGVyTm9kZTo6Y3JlYXRlKEJhc2VBdWRpb0NvbnRleHQmIGNvbnRleAogICAgIGlm
IChvcHRpb25zLmN1cnZlKSB7CiAgICAgICAgIGN1cnZlID0gRmxvYXQzMkFycmF5Ojp0cnlDcmVh
dGUob3B0aW9ucy5jdXJ2ZS0+ZGF0YSgpLCBvcHRpb25zLmN1cnZlLT5zaXplKCkpOwogICAgICAg
ICBpZiAoIWN1cnZlKQotICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0
ZUVycm9yLCAiSW52YWxpZCBjdXJ2ZSBwYXJhbWV0ZXIiIH07CisgICAgICAgICAgICByZXR1cm4g
RXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJJbnZhbGlkIGN1cnZlIHBhcmFtZXRlciJf
cyB9OwogICAgIH0KIAogICAgIGF1dG8gbm9kZSA9IGFkb3B0UmVmKCpuZXcgV2F2ZVNoYXBlck5v
ZGUoY29udGV4dCkpOwpAQCAtNzYsNyArNzYsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBXYXZlU2hh
cGVyTm9kZTo6c2V0Q3VydmVGb3JCaW5kaW5ncyhSZWZQdHI8RmxvYXQzMkFycmF5PiYmIGN1cgog
ICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7IAogICAgIERFQlVHX0xPRyhMT0dJREVOVElGSUVS
KTsKICAgICBpZiAoY3VydmUgJiYgY3VydmUtPmxlbmd0aCgpIDwgMikKLSAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiTGVuZ3RoIG9mIGN1cnZlIGFycmF5IGNh
bm5vdCBiZSBsZXNzIHRoYW4gMiIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFs
aWRTdGF0ZUVycm9yLCAiTGVuZ3RoIG9mIGN1cnZlIGFycmF5IGNhbm5vdCBiZSBsZXNzIHRoYW4g
MiJfcyB9OwogCiAgICAgaWYgKGN1cnZlKSB7CiAgICAgICAgIC8vIFRoZSBzcGVjaWZpY2F0aW9u
IHN0YXRlcyB0aGF0IHdlIHNob3VsZCBtYWludGFpbiBhbiBpbnRlcm5hbCBjb3B5IG9mIHRoZSBj
dXJ2ZSBzbyB0aGF0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhu
L1dlYkF1dGhlbnRpY2F0aW9uVXRpbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dXRobi9XZWJBdXRoZW50aWNhdGlvblV0aWxzLmNwcAppbmRleCBjMWZiZjA1NmNjNmFiNWUxODI5
ODgyMjQ2MzQ0MWI0YTg1ZWFiZDRjLi4zMzJlMmJlNzk1YTAxZjFlMDQ2NjJkYzQxMTNiYWVhYzQ0
MDcxZTc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1dlYkF1
dGhlbnRpY2F0aW9uVXRpbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0
aG4vV2ViQXV0aGVudGljYXRpb25VdGlscy5jcHAKQEAgLTEzOCw3ICsxMzgsNyBAQCBjYm9yOjpD
Qk9SVmFsdWU6Ok1hcFZhbHVlIGJ1aWxkQXR0ZXN0YXRpb25NYXAoVmVjdG9yPHVpbnQ4X3Q+JiYg
YXV0aERhdGEsIFN0cmluZwogICAgICAgICBjb25zdCBzaXplX3QgYWFndWlkT2Zmc2V0ID0gcnBJ
ZEhhc2hMZW5ndGggKyBmbGFnc0xlbmd0aCArIHNpZ25Db3VudGVyTGVuZ3RoOwogICAgICAgICBp
ZiAoYXV0aERhdGEuc2l6ZSgpID49IGFhZ3VpZE9mZnNldCArIGFhZ3VpZExlbmd0aCkKICAgICAg
ICAgICAgIG1lbXNldChhdXRoRGF0YS5kYXRhKCkgKyBhYWd1aWRPZmZzZXQsIDAsIGFhZ3VpZExl
bmd0aCk7Ci0gICAgICAgIGZvcm1hdCA9IG5vbmVBdHRlc3RhdGlvblZhbHVlOworICAgICAgICBm
b3JtYXQgPSBTdHJpbmcgeyBub25lQXR0ZXN0YXRpb25WYWx1ZSB9OwogICAgICAgICBzdGF0ZW1l
bnRNYXAuY2xlYXIoKTsKICAgICB9CiAgICAgYXR0ZXN0YXRpb25PYmplY3RNYXBbY2Jvcjo6Q0JP
UlZhbHVlKCJhdXRoRGF0YSIpXSA9IGNib3I6OkNCT1JWYWx1ZShXVEZNb3ZlKGF1dGhEYXRhKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRGV2aWNl
UmVzcG9uc2VDb252ZXJ0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9m
aWRvL0RldmljZVJlc3BvbnNlQ29udmVydGVyLmNwcAppbmRleCBmMjFjNWVlN2EyNWY1ZTkyNzU0
NDMxZDM1NGE4N2E4ZDIxYzU4M2M4Li43MzVhOWJmOGUwM2E4NDJhOTdkNDY5NGFjY2M2YjIyZTEz
ZWZlMDQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8v
RGV2aWNlUmVzcG9uc2VDb252ZXJ0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXV0aG4vZmlkby9EZXZpY2VSZXNwb25zZUNvbnZlcnRlci5jcHAKQEAgLTEyNiw3ICsxMjYs
NyBAQCBSZWZQdHI8QXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2U+IHJlYWRDVEFQTWFr
ZUNyZWRlbnRpYWxSZXNwb25zZShjb25zdCBWZQogICAgICAgICAvLyBUaGUgcmVhc29uIHdoeSB3
ZSBjYW4ndCBkaXJlY3RseSBwYXNzIGF1dGhlbnRpY2F0b3JEYXRhL2Zvcm1hdC9hdHRTdG10IHRv
IGJ1aWxkQXR0ZXN0YXRpb25PYmplY3QKICAgICAgICAgLy8gaXMgdGhhdCB0aGV5IGFyZSBDQk9S
VmFsdWUgaW5zdGVhZCBvZiB0aGUgcmF3IHR5cGUuCiAgICAgICAgIC8vIEFsc28sIGZvcm1hdCBh
bmQgYXR0U3RtdCBhcmUgb21pdHRlZCBhcyB0aGV5IGFyZSBub3QgdXNlZnVsIGluIG5vbmUgYXR0
ZXN0YXRpb24uCi0gICAgICAgIGF0dGVzdGF0aW9uT2JqZWN0ID0gYnVpbGRBdHRlc3RhdGlvbk9i
amVjdChWZWN0b3I8dWludDhfdD4oYXV0aGVudGljYXRvckRhdGEuZ2V0Qnl0ZVN0cmluZygpKSwg
IiIsIHsgfSwgYXR0ZXN0YXRpb24pOworICAgICAgICBhdHRlc3RhdGlvbk9iamVjdCA9IGJ1aWxk
QXR0ZXN0YXRpb25PYmplY3QoVmVjdG9yPHVpbnQ4X3Q+KGF1dGhlbnRpY2F0b3JEYXRhLmdldEJ5
dGVTdHJpbmcoKSksIFN0cmluZyB7IGVtcHR5U3RyaW5nKCkgfSwgeyB9LCBhdHRlc3RhdGlvbik7
CiAgICAgfSBlbHNlIHsKICAgICAgICAgQ0JPUjo6TWFwVmFsdWUgYXR0ZXN0YXRpb25PYmplY3RN
YXA7CiAgICAgICAgIGF0dGVzdGF0aW9uT2JqZWN0TWFwW0NCT1IoImF1dGhEYXRhIildID0gV1RG
TW92ZShhdXRoZW50aWNhdG9yRGF0YSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1dGhuL2ZpZG8vUGluLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0
aG4vZmlkby9QaW4uY3BwCmluZGV4IDlmYTY3M2YxODJjY2NiMDQ2MjE3MzNhZTM4YzUyMzZkMzYy
YjVjODguLmI0NGY5MGIwMTQzNDI3ZDE1MjY3ZDdjOWY2N2YwY2ZiMDJjM2ZiM2QgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9QaW4uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9QaW4uY3BwCkBAIC0xNzEsNyArMTcx
LDcgQEAgc3RkOjpvcHRpb25hbDxLZXlBZ3JlZW1lbnRSZXNwb25zZT4gS2V5QWdyZWVtZW50UmVz
cG9uc2U6OnBhcnNlRnJvbUNPU0UoY29uc3QgQ0IKIAogICAgIGNvbnN0IGF1dG8mIHggPSB4SXQt
PnNlY29uZC5nZXRCeXRlU3RyaW5nKCk7CiAgICAgY29uc3QgYXV0byYgeSA9IHlJdC0+c2Vjb25k
LmdldEJ5dGVTdHJpbmcoKTsKLSAgICBhdXRvIHBlZXJLZXkgPSBDcnlwdG9LZXlFQzo6aW1wb3J0
UmF3KENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkVDREgsICJQLTI1NiIsIGVuY29kZVJhd1B1
YmxpY0tleSh4LCB5KSwgdHJ1ZSwgQ3J5cHRvS2V5VXNhZ2VEZXJpdmVCaXRzKTsKKyAgICBhdXRv
IHBlZXJLZXkgPSBDcnlwdG9LZXlFQzo6aW1wb3J0UmF3KENyeXB0b0FsZ29yaXRobUlkZW50aWZp
ZXI6OkVDREgsICJQLTI1NiJfcywgZW5jb2RlUmF3UHVibGljS2V5KHgsIHkpLCB0cnVlLCBDcnlw
dG9LZXlVc2FnZURlcml2ZUJpdHMpOwogICAgIGlmICghcGVlcktleSkKICAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKIApAQCAtMjQ3LDcgKzI0Nyw3IEBAIHN0ZDo6b3B0aW9uYWw8VG9rZW5S
ZXF1ZXN0PiBUb2tlblJlcXVlc3Q6OnRyeUNyZWF0ZShjb25zdCBDU3RyaW5nJiBwaW4sIGNvbnN0
IENyCiAgICAgLy8gVGhlIGZvbGxvd2luZyBpbXBsZW1lbnRzIFNlY3Rpb24gNS41LjQgR2V0dGlu
ZyBzaGFyZWRTZWNyZXQgZnJvbSBBdXRoZW50aWNhdG9yLgogICAgIC8vIGh0dHBzOi8vZmlkb2Fs
bGlhbmNlLm9yZy9zcGVjcy9maWRvLXYyLjAtcHMtMjAxOTAxMzAvZmlkby1jbGllbnQtdG8tYXV0
aGVudGljYXRvci1wcm90b2NvbC12Mi4wLXBzLTIwMTkwMTMwLmh0bWwjZ2V0dGluZ1NoYXJlZFNl
Y3JldAogICAgIC8vIDEuIEdlbmVyYXRlIGEgUDI1NiBrZXkgcGFpci4KLSAgICBhdXRvIGtleVBh
aXJSZXN1bHQgPSBDcnlwdG9LZXlFQzo6Z2VuZXJhdGVQYWlyKENyeXB0b0FsZ29yaXRobUlkZW50
aWZpZXI6OkVDREgsICJQLTI1NiIsIHRydWUsIENyeXB0b0tleVVzYWdlRGVyaXZlQml0cyk7Cisg
ICAgYXV0byBrZXlQYWlyUmVzdWx0ID0gQ3J5cHRvS2V5RUM6OmdlbmVyYXRlUGFpcihDcnlwdG9B
bGdvcml0aG1JZGVudGlmaWVyOjpFQ0RILCAiUC0yNTYiX3MsIHRydWUsIENyeXB0b0tleVVzYWdl
RGVyaXZlQml0cyk7CiAgICAgQVNTRVJUKCFrZXlQYWlyUmVzdWx0Lmhhc0V4Y2VwdGlvbigpKTsK
ICAgICBhdXRvIGtleVBhaXIgPSBrZXlQYWlyUmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vVTJmUmVz
cG9uc2VDb252ZXJ0ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRv
L1UyZlJlc3BvbnNlQ29udmVydGVyLmNwcAppbmRleCAzZjM2NmFhMjcwNjg0OTc0NWFjYTI4MTc5
YjU5OTZlNjY2ZWUyNmVkLi5hNGZkZTE1ZmZiZmQ1NTU3N2IyMjlkODY0OWM2NzY0OGNlN2ViOTZk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vVTJmUmVz
cG9uc2VDb252ZXJ0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4v
Zmlkby9VMmZSZXNwb25zZUNvbnZlcnRlci5jcHAKQEAgLTE1OCw3ICsxNTgsNyBAQCBSZWZQdHI8
QXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2U+IHJlYWRVMmZSZWdpc3RlclJlc3BvbnNl
KGNvbnN0IFN0cmluZyYgcgogICAgIGlmIChmaWRvQXR0ZXN0YXRpb25TdGF0ZW1lbnQuZW1wdHko
KSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBhdXRvIGF0dGVzdGF0aW9uT2JqZWN0
ID0gYnVpbGRBdHRlc3RhdGlvbk9iamVjdChXVEZNb3ZlKGF1dGhEYXRhKSwgImZpZG8tdTJmIiwg
V1RGTW92ZShmaWRvQXR0ZXN0YXRpb25TdGF0ZW1lbnQpLCBhdHRlc3RhdGlvbik7CisgICAgYXV0
byBhdHRlc3RhdGlvbk9iamVjdCA9IGJ1aWxkQXR0ZXN0YXRpb25PYmplY3QoV1RGTW92ZShhdXRo
RGF0YSksICJmaWRvLXUyZiJfcywgV1RGTW92ZShmaWRvQXR0ZXN0YXRpb25TdGF0ZW1lbnQpLCBh
dHRlc3RhdGlvbik7CiAKICAgICByZXR1cm4gQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9u
c2U6OmNyZWF0ZShjcmVkZW50aWFsSWQsIGF0dGVzdGF0aW9uT2JqZWN0LCBhdHRhY2htZW50KTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvQ2hhbmdl
VmVyc2lvbldyYXBwZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9D
aGFuZ2VWZXJzaW9uV3JhcHBlci5jcHAKaW5kZXggOTRlZjUwOTU1OGI2YzI2NTlmZGZhM2Q2ODli
NGIwZDI4MzczZDhhOC4uMzVjMGUxNmUzZTM1MTMyMzNjMjJkOGYzYWE1NjQ1MjAzZDk4NDc0NyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9DaGFuZ2VWZXJz
aW9uV3JhcHBlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9D
aGFuZ2VWZXJzaW9uV3JhcHBlci5jcHAKQEAgLTUzLDcgKzUzLDcgQEAgYm9vbCBDaGFuZ2VWZXJz
aW9uV3JhcHBlcjo6cGVyZm9ybVByZWZsaWdodChTUUxUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24p
CiAgICAgfQogCiAgICAgaWYgKGFjdHVhbFZlcnNpb24gIT0gbV9vbGRWZXJzaW9uKSB7Ci0gICAg
ICAgIG1fc3FsRXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpWRVJTSU9OX0VSUiwg
ImN1cnJlbnQgdmVyc2lvbiBvZiB0aGUgZGF0YWJhc2UgYW5kIGBvbGRWZXJzaW9uYCBhcmd1bWVu
dCBkbyBub3QgbWF0Y2giKTsKKyAgICAgICAgbV9zcWxFcnJvciA9IFNRTEVycm9yOjpjcmVhdGUo
U1FMRXJyb3I6OlZFUlNJT05fRVJSLCAiY3VycmVudCB2ZXJzaW9uIG9mIHRoZSBkYXRhYmFzZSBh
bmQgYG9sZFZlcnNpb25gIGFyZ3VtZW50IGRvIG5vdCBtYXRjaCJfcyk7CiAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
ZGF0YWJhc2UvRE9NV2luZG93V2ViRGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJkYXRhYmFzZS9ET01XaW5kb3dXZWJEYXRhYmFzZS5jcHAKaW5kZXggOGFjMmFkNmFmNWU0
YTNiZmY4NGMyNjc2YzBlMjRlNmJiYzJmM2I1Yy4uNTZhYzBlNDIyZGQ0ZGY5MzZlM2NjYjAwY2U1
ZjQ1YzNkNjU1NDE1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRh
YmFzZS9ET01XaW5kb3dXZWJEYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJkYXRhYmFzZS9ET01XaW5kb3dXZWJEYXRhYmFzZS5jcHAKQEAgLTQ1LDcgKzQ1LDcgQEAg
RXhjZXB0aW9uT3I8UmVmUHRyPERhdGFiYXNlPj4gRE9NV2luZG93V2ViRGF0YWJhc2U6Om9wZW5E
YXRhYmFzZShET01XaW5kb3cmIHdpbmQKICAgICBhdXRvKiBkb2N1bWVudCA9IHdpbmRvdy5kb2N1
bWVudCgpOwogICAgIGlmICghZG9jdW1lbnQpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBT
ZWN1cml0eUVycm9yIH07Ci0gICAgZG9jdW1lbnQtPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VT
b3VyY2U6OlN0b3JhZ2UsIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgIldlYiBTUUwgaXMgZGVwcmVj
YXRlZC4gUGxlYXNlIHVzZSBJbmRleGVkREIgaW5zdGVhZC4iKTsKKyAgICBkb2N1bWVudC0+YWRk
Q29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6U3RvcmFnZSwgTWVzc2FnZUxldmVsOjpXYXJu
aW5nLCAiV2ViIFNRTCBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlIEluZGV4ZWREQiBpbnN0ZWFk
LiJfcyk7CiAKICAgICBhdXRvJiBzZWN1cml0eU9yaWdpbiA9IGRvY3VtZW50LT5zZWN1cml0eU9y
aWdpbigpOwogICAgIGlmICghc2VjdXJpdHlPcmlnaW4uY2FuQWNjZXNzRGF0YWJhc2UoJmRvY3Vt
ZW50LT50b3BPcmlnaW4oKSkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmRhdGFiYXNlL0RhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJh
c2UvRGF0YWJhc2UuY3BwCmluZGV4IDdjZmIxYzQxMGU2N2QwYjA3ZjdlMzQ5NDgyZGMwZWU5ZjZi
MTE2ZGYuLmNkMGM0MTRmYjMxMDAyNDEzZWEyYmZkZDA5ODMwNWQ1MWI5ZjFmZDIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwCkBAIC0xOTgs
NyArMTk4LDcgQEAgRGF0YWJhc2U6OkRhdGFiYXNlKERhdGFiYXNlQ29udGV4dCYgY29udGV4dCwg
Y29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBTdHJpbmcmIGUKICAgICAsIG1fZGlzcGxheU5hbWUo
ZGlzcGxheU5hbWUuaXNvbGF0ZWRDb3B5KCkpCiAgICAgLCBtX2VzdGltYXRlZFNpemUoZXN0aW1h
dGVkU2l6ZSkKICAgICAsIG1fZmlsZW5hbWUoRGF0YWJhc2VNYW5hZ2VyOjpzaW5nbGV0b24oKS5m
dWxsUGF0aEZvckRhdGFiYXNlKG1fZG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCksIG1fbmFtZSkp
Ci0gICAgLCBtX2RhdGFiYXNlQXV0aG9yaXplcihEYXRhYmFzZUF1dGhvcml6ZXI6OmNyZWF0ZSh1
bnF1YWxpZmllZEluZm9UYWJsZU5hbWUpKQorICAgICwgbV9kYXRhYmFzZUF1dGhvcml6ZXIoRGF0
YWJhc2VBdXRob3JpemVyOjpjcmVhdGUoU3RyaW5nIHsgdW5xdWFsaWZpZWRJbmZvVGFibGVOYW1l
IH0pKQogewogICAgIHsKICAgICAgICAgTG9ja2VyIGxvY2tlciB7IGd1aWRMb2NrIH07CkBAIC02
ODcsNyArNjg3LDcgQEAgdm9pZCBEYXRhYmFzZTo6cnVuVHJhbnNhY3Rpb24oUmVmUHRyPFNRTFRy
YW5zYWN0aW9uQ2FsbGJhY2s+JiYgY2FsbGJhY2ssIFJlZlB0cjwKICAgICBpZiAoIW1faXNUcmFu
c2FjdGlvblF1ZXVlRW5hYmxlZCkgewogICAgICAgICBpZiAoZXJyb3JDYWxsYmFjaykgewogICAg
ICAgICAgICAgbV9kb2N1bWVudC0+ZXZlbnRMb29wKCkucXVldWVUYXNrKFRhc2tTb3VyY2U6Ok5l
dHdvcmtpbmcsIFtlcnJvckNhbGxiYWNrID0gUmVmIHsgKmVycm9yQ2FsbGJhY2sgfV0oKSB7Ci0g
ICAgICAgICAgICAgICAgZXJyb3JDYWxsYmFjay0+aGFuZGxlRXZlbnQoU1FMRXJyb3I6OmNyZWF0
ZShTUUxFcnJvcjo6VU5LTk9XTl9FUlIsICJkYXRhYmFzZSBoYXMgYmVlbiBjbG9zZWQiKSk7Cisg
ICAgICAgICAgICAgICAgZXJyb3JDYWxsYmFjay0+aGFuZGxlRXZlbnQoU1FMRXJyb3I6OmNyZWF0
ZShTUUxFcnJvcjo6VU5LTk9XTl9FUlIsICJkYXRhYmFzZSBoYXMgYmVlbiBjbG9zZWQiX3MpKTsK
ICAgICAgICAgICAgIH0pOwogICAgICAgICB9CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VBdXRob3JpemVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VBdXRob3JpemVy
LmNwcAppbmRleCBlMmRjNzA2ZjVkOTY1ZDJkN2E1Y2JhODcyMTY2Y2Y1M2E5ODA4YTFmLi5kY2Y5
ZWI5NTJkZGQwM2I0YjBkN2FkODZhNmNjZDVmYjQzZTNkY2VhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlQXV0aG9yaXplci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZUF1dGhvcml6ZXIuY3Bw
CkBAIC02Miw2NCArNjIsNjQgQEAgdm9pZCBEYXRhYmFzZUF1dGhvcml6ZXI6OmFkZEFsbG93ZWRG
dW5jdGlvbnMoKQogewogICAgIC8vIFNRTGl0ZSBmdW5jdGlvbnMgdXNlZCB0byBoZWxwIGltcGxl
bWVudCBzb21lIG9wZXJhdGlvbnMKICAgICAvLyBBTFRFUiBUQUJMRSBoZWxwZXJzCi0gICAgbV9h
bGxvd2VkRnVuY3Rpb25zLmFkZCgic3FsaXRlX3JlbmFtZV90YWJsZSIpOwotICAgIG1fYWxsb3dl
ZEZ1bmN0aW9ucy5hZGQoInNxbGl0ZV9yZW5hbWVfdHJpZ2dlciIpOworICAgIG1fYWxsb3dlZEZ1
bmN0aW9ucy5hZGQoInNxbGl0ZV9yZW5hbWVfdGFibGUiX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0
aW9ucy5hZGQoInNxbGl0ZV9yZW5hbWVfdHJpZ2dlciJfcyk7CiAgICAgLy8gR0xPQiBoZWxwZXJz
Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgiZ2xvYiIpOworICAgIG1fYWxsb3dlZEZ1bmN0
aW9ucy5hZGQoImdsb2IiX3MpOwogCiAgICAgLy8gU1FMaXRlIGNvcmUgZnVuY3Rpb25zCi0gICAg
bV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgiYWJzIik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFk
ZCgiY2hhbmdlcyIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoImNvYWxlc2NlIik7Ci0g
ICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgiZ2xvYiIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9u
cy5hZGQoImlmbnVsbCIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoImhleCIpOwotICAg
IG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoImxhc3RfaW5zZXJ0X3Jvd2lkIik7Ci0gICAgbV9hbGxv
d2VkRnVuY3Rpb25zLmFkZCgibGVuZ3RoIik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgi
bGlrZSIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoImxvd2VyIik7Ci0gICAgbV9hbGxv
d2VkRnVuY3Rpb25zLmFkZCgibHRyaW0iKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJt
YXgiKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJtaW4iKTsKLSAgICBtX2FsbG93ZWRG
dW5jdGlvbnMuYWRkKCJudWxsaWYiKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJxdW90
ZSIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInJlcGxhY2UiKTsKLSAgICBtX2FsbG93
ZWRGdW5jdGlvbnMuYWRkKCJyb3VuZCIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInJ0
cmltIik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgic291bmRleCIpOwotICAgIG1fYWxs
b3dlZEZ1bmN0aW9ucy5hZGQoInNxbGl0ZV9zb3VyY2VfaWQiKTsKLSAgICBtX2FsbG93ZWRGdW5j
dGlvbnMuYWRkKCJzcWxpdGVfdmVyc2lvbiIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQo
InN1YnN0ciIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInRvdGFsX2NoYW5nZXMiKTsK
LSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJ0cmltIik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rp
b25zLmFkZCgidHlwZW9mIik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgidXBwZXIiKTsK
LSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJ6ZXJvYmxvYiIpOworICAgIG1fYWxsb3dlZEZ1
bmN0aW9ucy5hZGQoImFicyJfcyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgiY2hhbmdl
cyJfcyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgiY29hbGVzY2UiX3MpOworICAgIG1f
YWxsb3dlZEZ1bmN0aW9ucy5hZGQoImdsb2IiX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5h
ZGQoImlmbnVsbCJfcyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgiaGV4Il9zKTsKKyAg
ICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJsYXN0X2luc2VydF9yb3dpZCJfcyk7CisgICAgbV9h
bGxvd2VkRnVuY3Rpb25zLmFkZCgibGVuZ3RoIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMu
YWRkKCJsaWtlIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJsb3dlciJfcyk7Cisg
ICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgibHRyaW0iX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0
aW9ucy5hZGQoIm1heCJfcyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgibWluIl9zKTsK
KyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJudWxsaWYiX3MpOworICAgIG1fYWxsb3dlZEZ1
bmN0aW9ucy5hZGQoInF1b3RlIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJyZXBs
YWNlIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJyb3VuZCJfcyk7CisgICAgbV9h
bGxvd2VkRnVuY3Rpb25zLmFkZCgicnRyaW0iX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5h
ZGQoInNvdW5kZXgiX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInNxbGl0ZV9zb3Vy
Y2VfaWQiX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInNxbGl0ZV92ZXJzaW9uIl9z
KTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJzdWJzdHIiX3MpOworICAgIG1fYWxsb3dl
ZEZ1bmN0aW9ucy5hZGQoInRvdGFsX2NoYW5nZXMiX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9u
cy5hZGQoInRyaW0iX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInR5cGVvZiJfcyk7
CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgidXBwZXIiX3MpOworICAgIG1fYWxsb3dlZEZ1
bmN0aW9ucy5hZGQoInplcm9ibG9iIl9zKTsKIAogICAgIC8vIFNRTGl0ZSBkYXRlIGFuZCB0aW1l
IGZ1bmN0aW9ucwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoImRhdGUiKTsKLSAgICBtX2Fs
bG93ZWRGdW5jdGlvbnMuYWRkKCJ0aW1lIik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgi
ZGF0ZXRpbWUiKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJqdWxpYW5kYXkiKTsKLSAg
ICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJzdHJmdGltZSIpOworICAgIG1fYWxsb3dlZEZ1bmN0
aW9ucy5hZGQoImRhdGUiX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInRpbWUiX3Mp
OworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoImRhdGV0aW1lIl9zKTsKKyAgICBtX2FsbG93
ZWRGdW5jdGlvbnMuYWRkKCJqdWxpYW5kYXkiX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5h
ZGQoInN0cmZ0aW1lIl9zKTsKIAogICAgIC8vIFNRTGl0ZSBhZ2dyZWdhdGUgZnVuY3Rpb25zCiAg
ICAgLy8gbWF4KCkgYW5kIG1pbigpIGFyZSBhbHJlYWR5IGluIHRoZSBsaXN0Ci0gICAgbV9hbGxv
d2VkRnVuY3Rpb25zLmFkZCgiYXZnIik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgiY291
bnQiKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJncm91cF9jb25jYXQiKTsKLSAgICBt
X2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJzdW0iKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRk
KCJ0b3RhbCIpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoImF2ZyJfcyk7CisgICAgbV9h
bGxvd2VkRnVuY3Rpb25zLmFkZCgiY291bnQiX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5h
ZGQoImdyb3VwX2NvbmNhdCJfcyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgic3VtIl9z
KTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJ0b3RhbCJfcyk7CiAKICAgICAvLyBTUUxp
dGUgRlRTIGZ1bmN0aW9ucwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoIm1hdGNoIik7Ci0g
ICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgic25pcHBldCIpOwotICAgIG1fYWxsb3dlZEZ1bmN0
aW9ucy5hZGQoIm9mZnNldHMiKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJvcHRpbWl6
ZSIpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoIm1hdGNoIl9zKTsKKyAgICBtX2FsbG93
ZWRGdW5jdGlvbnMuYWRkKCJzbmlwcGV0Il9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRk
KCJvZmZzZXRzIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJvcHRpbWl6ZSJfcyk7
CiAKICAgICAvLyBTUUxpdGUgSUNVIGZ1bmN0aW9ucwogICAgIC8vIGxpa2UoKSwgbG93ZXIoKSBh
bmQgdXBwZXIoKSBhcmUgYWxyZWFkeSBpbiB0aGUgbGlzdAotICAgIG1fYWxsb3dlZEZ1bmN0aW9u
cy5hZGQoInJlZ2V4cCIpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInJlZ2V4cCJfcyk7
CiB9CiAKIGludCBEYXRhYmFzZUF1dGhvcml6ZXI6OmNyZWF0ZVRhYmxlKGNvbnN0IFN0cmluZyYg
dGFibGVOYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFz
ZS9EYXRhYmFzZVRyYWNrZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFz
ZS9EYXRhYmFzZVRyYWNrZXIuY3BwCmluZGV4IDllYjM5MWM2ZDBiZDZkNDg2MDUxMGVkYWI3Mjg5
MzM5OTUwNmJjNzIuLmE0ZjBjNzQ0NTIzNzFhNGRiZDhkZjA4NjA2OWVjZDEwYWJhMzIyOWYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFj
a2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNl
VHJhY2tlci5jcHAKQEAgLTkxLDcgKzkxLDcgQEAgRGF0YWJhc2VUcmFja2VyOjpEYXRhYmFzZVRy
YWNrZXIoY29uc3QgU3RyaW5nJiBkYXRhYmFzZVBhdGgpCiAKIFN0cmluZyBEYXRhYmFzZVRyYWNr
ZXI6OnRyYWNrZXJEYXRhYmFzZVBhdGgoKSBjb25zdAogewotICAgIHJldHVybiBTUUxpdGVGaWxl
U3lzdGVtOjphcHBlbmREYXRhYmFzZUZpbGVOYW1lVG9QYXRoKG1fZGF0YWJhc2VEaXJlY3RvcnlQ
YXRoLmlzb2xhdGVkQ29weSgpLCAiRGF0YWJhc2VzLmRiIik7CisgICAgcmV0dXJuIFNRTGl0ZUZp
bGVTeXN0ZW06OmFwcGVuZERhdGFiYXNlRmlsZU5hbWVUb1BhdGgobV9kYXRhYmFzZURpcmVjdG9y
eVBhdGguaXNvbGF0ZWRDb3B5KCksICJEYXRhYmFzZXMuZGIiX3MpOwogfQogCiB2b2lkIERhdGFi
YXNlVHJhY2tlcjo6b3BlblRyYWNrZXJEYXRhYmFzZShUcmFja2VyQ3JlYXRpb25BY3Rpb24gY3Jl
YXRlQWN0aW9uKQpAQCAtMTE4LDE0ICsxMTgsMTQgQEAgdm9pZCBEYXRhYmFzZVRyYWNrZXI6Om9w
ZW5UcmFja2VyRGF0YWJhc2UoVHJhY2tlckNyZWF0aW9uQWN0aW9uIGNyZWF0ZUFjdGlvbikKICAg
ICB9CiAgICAgbV9kYXRhYmFzZS5kaXNhYmxlVGhyZWFkaW5nQ2hlY2tzKCk7CiAKLSAgICBpZiAo
IW1fZGF0YWJhc2UudGFibGVFeGlzdHMoIk9yaWdpbnMiKSkgeworICAgIGlmICghbV9kYXRhYmFz
ZS50YWJsZUV4aXN0cygiT3JpZ2lucyJfcykpIHsKICAgICAgICAgaWYgKCFtX2RhdGFiYXNlLmV4
ZWN1dGVDb21tYW5kKCJDUkVBVEUgVEFCTEUgT3JpZ2lucyAob3JpZ2luIFRFWFQgVU5JUVVFIE9O
IENPTkZMSUNUIFJFUExBQ0UsIHF1b3RhIElOVEVHRVIgTk9UIE5VTEwgT04gQ09ORkxJQ1QgRkFJ
TCk7Il9zKSkgewogICAgICAgICAgICAgLy8gRklYTUU6IGFuZCBoZXJlCiAgICAgICAgICAgICBM
T0dfRVJST1IoIkZhaWxlZCB0byBjcmVhdGUgT3JpZ2lucyB0YWJsZSIpOwogICAgICAgICB9CiAg
ICAgfQogCi0gICAgaWYgKCFtX2RhdGFiYXNlLnRhYmxlRXhpc3RzKCJEYXRhYmFzZXMiKSkgewor
ICAgIGlmICghbV9kYXRhYmFzZS50YWJsZUV4aXN0cygiRGF0YWJhc2VzIl9zKSkgewogICAgICAg
ICBpZiAoIW1fZGF0YWJhc2UuZXhlY3V0ZUNvbW1hbmQoIkNSRUFURSBUQUJMRSBEYXRhYmFzZXMg
KGd1aWQgSU5URUdFUiBQUklNQVJZIEtFWSBBVVRPSU5DUkVNRU5ULCBvcmlnaW4gVEVYVCwgbmFt
ZSBURVhULCBkaXNwbGF5TmFtZSBURVhULCBlc3RpbWF0ZWRTaXplIElOVEVHRVIsIHBhdGggVEVY
VCk7Il9zKSkgewogICAgICAgICAgICAgLy8gRklYTUU6IGFuZCBoZXJlCiAgICAgICAgICAgICBM
T0dfRVJST1IoIkZhaWxlZCB0byBjcmVhdGUgRGF0YWJhc2VzIHRhYmxlIik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFN0YXRlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFN0YXRlbWVudC5jcHAKaW5kZXgg
Yjc4MDU4MmRjOTc5NTkyMzM0NjNmOGZkOGFjMTlkMDM5YWViODgyMC4uZDkxZDAzMTQ1OTE1YjIx
YTM1N2U4NWYwNWNjYmE0MGU1ZGJlYTExYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJkYXRhYmFzZS9TUUxTdGF0ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZGF0YWJhc2UvU1FMU3RhdGVtZW50LmNwcApAQCAtMTI2LDcgKzEyNiw3IEBAIGJv
b2wgU1FMU3RhdGVtZW50OjpleGVjdXRlKERhdGFiYXNlJiBkYikKICAgICAvLyBJZiB0aGlzIGlz
IHRoZSBjYXNlLCB0aGV5IG1pZ2h0IGJlIHRyeWluZyB0byBkbyBzb21ldGhpbmcgZmlzaHkgb3Ig
bWFsaWNpb3VzCiAgICAgaWYgKHN0YXRlbWVudC0+YmluZFBhcmFtZXRlckNvdW50KCkgIT0gbV9h
cmd1bWVudHMuc2l6ZSgpKSB7CiAgICAgICAgIExPRyhTdG9yYWdlQVBJLCAiQmluZCBwYXJhbWV0
ZXIgY291bnQgZG9lc24ndCBtYXRjaCBudW1iZXIgb2YgcXVlc3Rpb24gbWFya3MiKTsKLSAgICAg
ICAgbV9lcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OlNZTlRBWF9FUlIsICJudW1i
ZXIgb2YgJz8ncyBpbiBzdGF0ZW1lbnQgc3RyaW5nIGRvZXMgbm90IG1hdGNoIGFyZ3VtZW50IGNv
dW50Iik7CisgICAgICAgIG1fZXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpTWU5U
QVhfRVJSLCAibnVtYmVyIG9mICc/J3MgaW4gc3RhdGVtZW50IHN0cmluZyBkb2VzIG5vdCBtYXRj
aCBhcmd1bWVudCBjb3VudCJfcyk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKQEAg
LTIzNCwxOSArMjM0LDE5IEBAIGJvb2wgU1FMU3RhdGVtZW50OjpwZXJmb3JtQ2FsbGJhY2soU1FM
VHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uKQogdm9pZCBTUUxTdGF0ZW1lbnQ6OnNldERhdGFiYXNl
RGVsZXRlZEVycm9yKCkKIHsKICAgICBBU1NFUlQoIW1fZXJyb3IgJiYgIW1fcmVzdWx0U2V0KTsK
LSAgICBtX2Vycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6VU5LTk9XTl9FUlIsICJ1
bmFibGUgdG8gZXhlY3V0ZSBzdGF0ZW1lbnQsIGJlY2F1c2UgdGhlIHVzZXIgZGVsZXRlZCB0aGUg
ZGF0YWJhc2UiKTsKKyAgICBtX2Vycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6VU5L
Tk9XTl9FUlIsICJ1bmFibGUgdG8gZXhlY3V0ZSBzdGF0ZW1lbnQsIGJlY2F1c2UgdGhlIHVzZXIg
ZGVsZXRlZCB0aGUgZGF0YWJhc2UiX3MpOwogfQogCiB2b2lkIFNRTFN0YXRlbWVudDo6c2V0VmVy
c2lvbk1pc21hdGNoZWRFcnJvcigpCiB7CiAgICAgQVNTRVJUKCFtX2Vycm9yICYmICFtX3Jlc3Vs
dFNldCk7Ci0gICAgbV9lcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OlZFUlNJT05f
RVJSLCAiY3VycmVudCB2ZXJzaW9uIG9mIHRoZSBkYXRhYmFzZSBhbmQgYG9sZFZlcnNpb25gIGFy
Z3VtZW50IGRvIG5vdCBtYXRjaCIpOworICAgIG1fZXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNR
TEVycm9yOjpWRVJTSU9OX0VSUiwgImN1cnJlbnQgdmVyc2lvbiBvZiB0aGUgZGF0YWJhc2UgYW5k
IGBvbGRWZXJzaW9uYCBhcmd1bWVudCBkbyBub3QgbWF0Y2giX3MpOwogfQogCiB2b2lkIFNRTFN0
YXRlbWVudDo6c2V0RmFpbHVyZUR1ZVRvUXVvdGEoKQogewogICAgIEFTU0VSVCghbV9lcnJvciAm
JiAhbV9yZXN1bHRTZXQpOwotICAgIG1fZXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9y
OjpRVU9UQV9FUlIsICJ0aGVyZSB3YXMgbm90IGVub3VnaCByZW1haW5pbmcgc3RvcmFnZSBzcGFj
ZSwgb3IgdGhlIHN0b3JhZ2UgcXVvdGEgd2FzIHJlYWNoZWQgYW5kIHRoZSB1c2VyIGRlY2xpbmVk
IHRvIGFsbG93IG1vcmUgc3BhY2UiKTsKKyAgICBtX2Vycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShT
UUxFcnJvcjo6UVVPVEFfRVJSLCAidGhlcmUgd2FzIG5vdCBlbm91Z2ggcmVtYWluaW5nIHN0b3Jh
Z2Ugc3BhY2UsIG9yIHRoZSBzdG9yYWdlIHF1b3RhIHdhcyByZWFjaGVkIGFuZCB0aGUgdXNlciBk
ZWNsaW5lZCB0byBhbGxvdyBtb3JlIHNwYWNlIl9zKTsKIH0KIAogdm9pZCBTUUxTdGF0ZW1lbnQ6
OmNsZWFyRmFpbHVyZUR1ZVRvUXVvdGEoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uLmNwcAppbmRleCA2ODMyYWNhOTBlZDZkOWVi
ODFhYjlmMzU1OTU5M2JmNDY0MzBmZDBmLi5lOWFkNzlmMzI4MmU4NDU5ZGQ3ZDMzZWZmMDJiNmI1
NzlmMDI2YzBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNl
L1NRTFRyYW5zYWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFi
YXNlL1NRTFRyYW5zYWN0aW9uLmNwcApAQCAtMTM3LDcgKzEzNyw3IEBAIHZvaWQgU1FMVHJhbnNh
Y3Rpb246OmNhbGxFcnJvckNhbGxiYWNrRHVlVG9JbnRlcnJ1cHRpb24oKQogICAgICAgICByZXR1
cm47CiAKICAgICBtX2RhdGFiYXNlLT5kb2N1bWVudCgpLmV2ZW50TG9vcCgpLnF1ZXVlVGFzayhU
YXNrU291cmNlOjpOZXR3b3JraW5nLCBbZXJyb3JDYWxsYmFjayA9IFdURk1vdmUoZXJyb3JDYWxs
YmFjayldKCkgbXV0YWJsZSB7Ci0gICAgICAgIGVycm9yQ2FsbGJhY2stPmhhbmRsZUV2ZW50KFNR
TEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OkRBVEFCQVNFX0VSUiwgInRoZSBkYXRhYmFzZSB3YXMg
Y2xvc2VkIikpOworICAgICAgICBlcnJvckNhbGxiYWNrLT5oYW5kbGVFdmVudChTUUxFcnJvcjo6
Y3JlYXRlKFNRTEVycm9yOjpEQVRBQkFTRV9FUlIsICJ0aGUgZGF0YWJhc2Ugd2FzIGNsb3NlZCJf
cykpOwogICAgIH0pOwogfQogCkBAIC0yMzYsNyArMjM2LDcgQEAgdm9pZCBTUUxUcmFuc2FjdGlv
bjo6b3BlblRyYW5zYWN0aW9uQW5kUHJlZmxpZ2h0KCkKIAogICAgIC8vIElmIHRoZSBkYXRhYmFz
ZSB3YXMgZGVsZXRlZCwganVtcCB0byB0aGUgZXJyb3IgY2FsbGJhY2sKICAgICBpZiAobV9kYXRh
YmFzZS0+ZGVsZXRlZCgpKSB7Ci0gICAgICAgIG1fdHJhbnNhY3Rpb25FcnJvciA9IFNRTEVycm9y
OjpjcmVhdGUoU1FMRXJyb3I6OlVOS05PV05fRVJSLCAidW5hYmxlIHRvIG9wZW4gYSB0cmFuc2Fj
dGlvbiwgYmVjYXVzZSB0aGUgdXNlciBkZWxldGVkIHRoZSBkYXRhYmFzZSIpOworICAgICAgICBt
X3RyYW5zYWN0aW9uRXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpVTktOT1dOX0VS
UiwgInVuYWJsZSB0byBvcGVuIGEgdHJhbnNhY3Rpb24sIGJlY2F1c2UgdGhlIHVzZXIgZGVsZXRl
ZCB0aGUgZGF0YWJhc2UiX3MpOwogCiAgICAgICAgIGhhbmRsZVRyYW5zYWN0aW9uRXJyb3IoKTsK
ICAgICAgICAgcmV0dXJuOwpAQCAtMjkwLDcgKzI5MCw3IEBAIHZvaWQgU1FMVHJhbnNhY3Rpb246
Om9wZW5UcmFuc2FjdGlvbkFuZFByZWZsaWdodCgpCiAgICAgICAgIG1fZGF0YWJhc2UtPmVuYWJs
ZUF1dGhvcml6ZXIoKTsKICAgICAgICAgbV90cmFuc2FjdGlvbkVycm9yID0gbV93cmFwcGVyLT5z
cWxFcnJvcigpOwogICAgICAgICBpZiAoIW1fdHJhbnNhY3Rpb25FcnJvcikKLSAgICAgICAgICAg
IG1fdHJhbnNhY3Rpb25FcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OlVOS05PV05f
RVJSLCAidW5rbm93biBlcnJvciBvY2N1cnJlZCBkdXJpbmcgdHJhbnNhY3Rpb24gcHJlZmxpZ2h0
Iik7CisgICAgICAgICAgICBtX3RyYW5zYWN0aW9uRXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNR
TEVycm9yOjpVTktOT1dOX0VSUiwgInVua25vd24gZXJyb3Igb2NjdXJyZWQgZHVyaW5nIHRyYW5z
YWN0aW9uIHByZWZsaWdodCJfcyk7CiAKICAgICAgICAgaGFuZGxlVHJhbnNhY3Rpb25FcnJvcigp
OwogICAgICAgICByZXR1cm47CkBAIC0zOTUsNyArMzk1LDcgQEAgdm9pZCBTUUxUcmFuc2FjdGlv
bjo6ZGVsaXZlclRyYW5zYWN0aW9uQ2FsbGJhY2soKQogCiAgICAgLy8gU3BlYyA0LjMuMiA1OiBJ
ZiB0aGUgdHJhbnNhY3Rpb24gY2FsbGJhY2sgd2FzIG51bGwgb3IgcmFpc2VkIGFuIGV4Y2VwdGlv
biwganVtcCB0byB0aGUgZXJyb3IgY2FsbGJhY2sKICAgICBpZiAoc2hvdWxkRGVsaXZlckVycm9y
Q2FsbGJhY2spIHsKLSAgICAgICAgbV90cmFuc2FjdGlvbkVycm9yID0gU1FMRXJyb3I6OmNyZWF0
ZShTUUxFcnJvcjo6VU5LTk9XTl9FUlIsICJ0aGUgU1FMVHJhbnNhY3Rpb25DYWxsYmFjayB3YXMg
bnVsbCBvciB0aHJldyBhbiBleGNlcHRpb24iKTsKKyAgICAgICAgbV90cmFuc2FjdGlvbkVycm9y
ID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6VU5LTk9XTl9FUlIsICJ0aGUgU1FMVHJhbnNh
Y3Rpb25DYWxsYmFjayB3YXMgbnVsbCBvciB0aHJldyBhbiBleGNlcHRpb24iX3MpOwogICAgICAg
ICByZXR1cm4gZGVsaXZlclRyYW5zYWN0aW9uRXJyb3JDYWxsYmFjaygpOwogICAgIH0KIApAQCAt
NDMyLDcgKzQzMiw3IEBAIHZvaWQgU1FMVHJhbnNhY3Rpb246OmRlbGl2ZXJTdGF0ZW1lbnRDYWxs
YmFjaygpCiAgICAgbV9leGVjdXRlU3FsQWxsb3dlZCA9IGZhbHNlOwogCiAgICAgaWYgKHJlc3Vs
dCkgewotICAgICAgICBtX3RyYW5zYWN0aW9uRXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVy
cm9yOjpVTktOT1dOX0VSUiwgInRoZSBzdGF0ZW1lbnQgY2FsbGJhY2sgcmFpc2VkIGFuIGV4Y2Vw
dGlvbiBvciBzdGF0ZW1lbnQgZXJyb3IgY2FsbGJhY2sgZGlkIG5vdCByZXR1cm4gZmFsc2UiKTsK
KyAgICAgICAgbV90cmFuc2FjdGlvbkVycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6
VU5LTk9XTl9FUlIsICJ0aGUgc3RhdGVtZW50IGNhbGxiYWNrIHJhaXNlZCBhbiBleGNlcHRpb24g
b3Igc3RhdGVtZW50IGVycm9yIGNhbGxiYWNrIGRpZCBub3QgcmV0dXJuIGZhbHNlIl9zKTsKIAog
ICAgICAgICBpZiAobV9lcnJvckNhbGxiYWNrV3JhcHBlci5oYXNDYWxsYmFjaygpKQogICAgICAg
ICAgICAgcmV0dXJuIGRlbGl2ZXJUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2soKTsKQEAgLTU2OCw3
ICs1NjgsNyBAQCB2b2lkIFNRTFRyYW5zYWN0aW9uOjpoYW5kbGVDdXJyZW50U3RhdGVtZW50RXJy
b3IoKQogCiAgICAgbV90cmFuc2FjdGlvbkVycm9yID0gbV9jdXJyZW50U3RhdGVtZW50LT5zcWxF
cnJvcigpOwogICAgIGlmICghbV90cmFuc2FjdGlvbkVycm9yKQotICAgICAgICBtX3RyYW5zYWN0
aW9uRXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpEQVRBQkFTRV9FUlIsICJ0aGUg
c3RhdGVtZW50IGZhaWxlZCB0byBleGVjdXRlIik7CisgICAgICAgIG1fdHJhbnNhY3Rpb25FcnJv
ciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OkRBVEFCQVNFX0VSUiwgInRoZSBzdGF0ZW1l
bnQgZmFpbGVkIHRvIGV4ZWN1dGUiX3MpOwogCiAgICAgaGFuZGxlVHJhbnNhY3Rpb25FcnJvcigp
OwogfQpAQCAtNTk0LDcgKzU5NCw3IEBAIHZvaWQgU1FMVHJhbnNhY3Rpb246OnBvc3RmbGlnaHRB
bmRDb21taXQoKQogICAgIGlmIChtX3dyYXBwZXIgJiYgIW1fd3JhcHBlci0+cGVyZm9ybVBvc3Rm
bGlnaHQoKnRoaXMpKSB7CiAgICAgICAgIG1fdHJhbnNhY3Rpb25FcnJvciA9IG1fd3JhcHBlci0+
c3FsRXJyb3IoKTsKICAgICAgICAgaWYgKCFtX3RyYW5zYWN0aW9uRXJyb3IpCi0gICAgICAgICAg
ICBtX3RyYW5zYWN0aW9uRXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpVTktOT1dO
X0VSUiwgInVua25vd24gZXJyb3Igb2NjdXJyZWQgZHVyaW5nIHRyYW5zYWN0aW9uIHBvc3RmbGln
aHQiKTsKKyAgICAgICAgICAgIG1fdHJhbnNhY3Rpb25FcnJvciA9IFNRTEVycm9yOjpjcmVhdGUo
U1FMRXJyb3I6OlVOS05PV05fRVJSLCAidW5rbm93biBlcnJvciBvY2N1cnJlZCBkdXJpbmcgdHJh
bnNhY3Rpb24gcG9zdGZsaWdodCJfcyk7CiAKICAgICAgICAgaGFuZGxlVHJhbnNhY3Rpb25FcnJv
cigpOwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29j
a2V0cy9XZWJTb2NrZXQuY3BwCmluZGV4IGY5NzNlNWJkM2I5MGUzYTRjYzczNTIxNGQ5YTMxOWFk
ZjkyMWU0YjYuLjY5ZDJlNTQ3MzVhMzA2NDYzODRjN2VmYjdlYTY0OTg3ZWMzNDAyY2MgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwCkBAIC0x
MzcsOSArMTM3LDkgQEAgc3RhdGljIHVuc2lnbmVkIHNhdHVyYXRlQWRkKHVuc2lnbmVkIGEsIHVu
c2lnbmVkIGIpCiAgICAgcmV0dXJuIGEgKyBiOwogfQogCi1jb25zdCBjaGFyKiBXZWJTb2NrZXQ6
OnN1YnByb3RvY29sU2VwYXJhdG9yKCkKK0FTQ0lJTGl0ZXJhbCBXZWJTb2NrZXQ6OnN1YnByb3Rv
Y29sU2VwYXJhdG9yKCkKIHsKLSAgICByZXR1cm4gIiwgIjsKKyAgICByZXR1cm4gIiwgIl9zOwog
fQogCiBXZWJTb2NrZXQ6OldlYlNvY2tldChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0
KQpAQCAtNDMwLDcgKzQzMCw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IFdlYlNvY2tldDo6Y2xvc2Uo
c3RkOjpvcHRpb25hbDx1bnNpZ25lZCBzaG9ydD4gb3B0aW9uYWxDb2RlLCBjCiAgICAgICAgIHJl
dHVybiB7IH07CiAgICAgaWYgKG1fc3RhdGUgPT0gQ09OTkVDVElORykgewogICAgICAgICBtX3N0
YXRlID0gQ0xPU0lORzsKLSAgICAgICAgbV9jaGFubmVsLT5mYWlsKCJXZWJTb2NrZXQgaXMgY2xv
c2VkIGJlZm9yZSB0aGUgY29ubmVjdGlvbiBpcyBlc3RhYmxpc2hlZC4iKTsKKyAgICAgICAgbV9j
aGFubmVsLT5mYWlsKCJXZWJTb2NrZXQgaXMgY2xvc2VkIGJlZm9yZSB0aGUgY29ubmVjdGlvbiBp
cyBlc3RhYmxpc2hlZC4iX3MpOwogICAgICAgICByZXR1cm4geyB9OwogICAgIH0KICAgICBtX3N0
YXRlID0gQ0xPU0lORzsKQEAgLTUyMCw3ICs1MjAsNyBAQCB2b2lkIFdlYlNvY2tldDo6c3VzcGVu
ZChSZWFzb25Gb3JTdXNwZW5zaW9uIHJlYXNvbikKIAogICAgIGlmIChyZWFzb24gPT0gUmVhc29u
Rm9yU3VzcGVuc2lvbjo6QmFja0ZvcndhcmRDYWNoZSkgewogICAgICAgICAvLyBUaGlzIHdpbGwg
Y2F1c2UgZGlkQ2xvc2UoKSB0byBiZSBjYWxsZWQuCi0gICAgICAgIG1fY2hhbm5lbC0+ZmFpbCgi
V2ViU29ja2V0IGlzIGNsb3NlZCBkdWUgdG8gc3VzcGVuc2lvbi4iKTsKKyAgICAgICAgbV9jaGFu
bmVsLT5mYWlsKCJXZWJTb2NrZXQgaXMgY2xvc2VkIGR1ZSB0byBzdXNwZW5zaW9uLiJfcyk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29j
a2V0cy9XZWJTb2NrZXQuaAppbmRleCBlNjg2M2U0NmRhMDdkMThiNmQ5MTVlYjE1YzI0Y2RmMjJk
YjZhNmNiLi5lZmZjMDY4YmJmNjI2NWU3YTNiMTU1Yzk0ZmY0NDhlNzY2ZDFlMzY1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5oCkBAIC01MSw3ICs1
MSw3IEBAIGNsYXNzIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOwogY2xhc3MgV2ViU29ja2V0
IGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViU29ja2V0PiwgcHVibGljIEV2ZW50VGFyZ2V0
V2l0aElubGluZURhdGEsIHB1YmxpYyBBY3RpdmVET01PYmplY3QsIHByaXZhdGUgV2ViU29ja2V0
Q2hhbm5lbENsaWVudCB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChXZWJTb2NrZXQpOwog
cHVibGljOgotICAgIHN0YXRpYyBjb25zdCBjaGFyKiBzdWJwcm90b2NvbFNlcGFyYXRvcigpOwor
ICAgIHN0YXRpYyBBU0NJSUxpdGVyYWwgc3VicHJvdG9jb2xTZXBhcmF0b3IoKTsKIAogICAgIHN0
YXRpYyBFeGNlcHRpb25PcjxSZWY8V2ViU29ja2V0Pj4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmLCBjb25zdCBTdHJpbmcmIHVybCk7CiAgICAgc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxX
ZWJTb2NrZXQ+PiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGNvbnN0IFN0cmluZyYg
dXJsLCBjb25zdCBTdHJpbmcmIHByb3RvY29sKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcAppbmRleCBkZjU2MzU5YzZm
ZGEwNTIxMDNkOTdiM2Q4YTVkMTA4NDkxOTc1ZjViLi42OWI4ZTJhNzc1NGE4OTc4YzE5NTQ4NTFm
ZjI2Yzk5NjE1MmY1ZGMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNv
Y2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwCkBAIC0yODcsNyArMjg3LDcgQEAgdm9pZCBX
ZWJTb2NrZXRDaGFubmVsOjpkaWRPcGVuU29ja2V0U3RyZWFtKFNvY2tldFN0cmVhbUhhbmRsZSYg
aGFuZGxlKQogICAgICAgICBjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94eSA9IENvb2tpZUph
cjo6Y29va2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHkoKm1fZG9jdW1lbnQsIG1faGFuZHNoYWtl
LT5odHRwVVJMRm9yQXV0aGVudGljYXRpb25BbmRDb29raWVzKCkpOwogICAgIGhhbmRsZS5zZW5k
SGFuZHNoYWtlKFdURk1vdmUoaGFuZHNoYWtlTWVzc2FnZSksIFdURk1vdmUoY29va2llUmVxdWVz
dEhlYWRlckZpZWxkUHJveHkpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH1d
IChib29sIHN1Y2Nlc3MsIGJvb2wgZGlkQWNjZXNzU2VjdXJlQ29va2llcykgewogICAgICAgICBp
ZiAoIXN1Y2Nlc3MpCi0gICAgICAgICAgICBmYWlsKCJGYWlsZWQgdG8gc2VuZCBXZWJTb2NrZXQg
aGFuZHNoYWtlLiIpOworICAgICAgICAgICAgZmFpbCgiRmFpbGVkIHRvIHNlbmQgV2ViU29ja2V0
IGhhbmRzaGFrZS4iX3MpOwogCiAgICAgICAgIGlmIChkaWRBY2Nlc3NTZWN1cmVDb29raWVzICYm
IG1fZG9jdW1lbnQpCiAgICAgICAgICAgICBtX2RvY3VtZW50LT5zZXRTZWN1cmVDb29raWVzQWNj
ZXNzZWQoKTsKQEAgLTM0MCw3ICszNDAsNyBAQCB2b2lkIFdlYlNvY2tldENoYW5uZWw6OmRpZFJl
Y2VpdmVTb2NrZXRTdHJlYW1EYXRhKFNvY2tldFN0cmVhbUhhbmRsZSYgaGFuZGxlLCBjbwogICAg
ICAgICByZXR1cm47CiAgICAgaWYgKCFhcHBlbmRUb0J1ZmZlcihkYXRhLCBsZW5ndGgpKSB7CiAg
ICAgICAgIG1fc2hvdWxkRGlzY2FyZFJlY2VpdmVkRGF0YSA9IHRydWU7Ci0gICAgICAgIGZhaWwo
IlJhbiBvdXQgb2YgbWVtb3J5IHdoaWxlIHJlY2VpdmluZyBXZWJTb2NrZXQgZGF0YS4iKTsKKyAg
ICAgICAgZmFpbCgiUmFuIG91dCBvZiBtZW1vcnkgd2hpbGUgcmVjZWl2aW5nIFdlYlNvY2tldCBk
YXRhLiJfcyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgd2hpbGUgKCFtX3N1c3BlbmRl
ZCAmJiBtX2NsaWVudCAmJiAhbV9idWZmZXIuaXNFbXB0eSgpKSB7CkBAIC01NzEsNyArNTcxLDcg
QEAgYm9vbCBXZWJTb2NrZXRDaGFubmVsOjpwcm9jZXNzRnJhbWUoKQogICAgIH0KIAogICAgIGlm
IChmcmFtZS5tYXNrZWQpIHsKLSAgICAgICAgZmFpbCgiQSBzZXJ2ZXIgbXVzdCBub3QgbWFzayBh
bnkgZnJhbWVzIHRoYXQgaXQgc2VuZHMgdG8gdGhlIGNsaWVudC4iKTsKKyAgICAgICAgZmFpbCgi
QSBzZXJ2ZXIgbXVzdCBub3QgbWFzayBhbnkgZnJhbWVzIHRoYXQgaXQgc2VuZHMgdG8gdGhlIGNs
aWVudC4iX3MpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCkBAIC01OTEsNyArNTkx
LDcgQEAgYm9vbCBXZWJTb2NrZXRDaGFubmVsOjpwcm9jZXNzRnJhbWUoKQogICAgIC8vIEEgbmV3
IGRhdGEgZnJhbWUgaXMgcmVjZWl2ZWQgYmVmb3JlIHRoZSBwcmV2aW91cyBjb250aW51b3VzIGZy
YW1lIGZpbmlzaGVzLgogICAgIC8vIE5vdGUgdGhhdCBjb250cm9sIGZyYW1lcyBhcmUgYWxsb3dl
ZCB0byBjb21lIGluIHRoZSBtaWRkbGUgb2YgY29udGludW91cyBmcmFtZXMuCiAgICAgaWYgKG1f
aGFzQ29udGludW91c0ZyYW1lICYmIGZyYW1lLm9wQ29kZSAhPSBXZWJTb2NrZXRGcmFtZTo6T3BD
b2RlQ29udGludWF0aW9uICYmICFXZWJTb2NrZXRGcmFtZTo6aXNDb250cm9sT3BDb2RlKGZyYW1l
Lm9wQ29kZSkpIHsKLSAgICAgICAgZmFpbCgiUmVjZWl2ZWQgbmV3IGRhdGEgZnJhbWUgYnV0IHBy
ZXZpb3VzIGNvbnRpbnVvdXMgZnJhbWUgaXMgdW5maW5pc2hlZC4iKTsKKyAgICAgICAgZmFpbCgi
UmVjZWl2ZWQgbmV3IGRhdGEgZnJhbWUgYnV0IHByZXZpb3VzIGNvbnRpbnVvdXMgZnJhbWUgaXMg
dW5maW5pc2hlZC4iX3MpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCkBAIC02MDEs
NyArNjAxLDcgQEAgYm9vbCBXZWJTb2NrZXRDaGFubmVsOjpwcm9jZXNzRnJhbWUoKQogICAgIGNh
c2UgV2ViU29ja2V0RnJhbWU6Ok9wQ29kZUNvbnRpbnVhdGlvbjoKICAgICAgICAgLy8gQW4gdW5l
eHBlY3RlZCBjb250aW51YXRpb24gZnJhbWUgaXMgcmVjZWl2ZWQgd2l0aG91dCBhbnkgbGVhZGlu
ZyBmcmFtZS4KICAgICAgICAgaWYgKCFtX2hhc0NvbnRpbnVvdXNGcmFtZSkgewotICAgICAgICAg
ICAgZmFpbCgiUmVjZWl2ZWQgdW5leHBlY3RlZCBjb250aW51YXRpb24gZnJhbWUuIik7CisgICAg
ICAgICAgICBmYWlsKCJSZWNlaXZlZCB1bmV4cGVjdGVkIGNvbnRpbnVhdGlvbiBmcmFtZS4iX3Mp
OwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAgICAgICAgIG1fY29udGlu
dW91c0ZyYW1lRGF0YS5hcHBlbmQoZnJhbWUucGF5bG9hZCwgZnJhbWUucGF5bG9hZExlbmd0aCk7
CkBAIC02MjAsNyArNjIwLDcgQEAgYm9vbCBXZWJTb2NrZXRDaGFubmVsOjpwcm9jZXNzRnJhbWUo
KQogICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSA9IGVt
cHR5U3RyaW5nKCk7CiAgICAgICAgICAgICAgICAgaWYgKG1lc3NhZ2UuaXNOdWxsKCkpCi0gICAg
ICAgICAgICAgICAgICAgIGZhaWwoIkNvdWxkIG5vdCBkZWNvZGUgYSB0ZXh0IGZyYW1lIGFzIFVU
Ri04LiIpOworICAgICAgICAgICAgICAgICAgICBmYWlsKCJDb3VsZCBub3QgZGVjb2RlIGEgdGV4
dCBmcmFtZSBhcyBVVEYtOC4iX3MpOwogICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAg
ICAgICAgICAgbV9jbGllbnQtPmRpZFJlY2VpdmVNZXNzYWdlKFdURk1vdmUobWVzc2FnZSkpOwog
ICAgICAgICAgICAgfSBlbHNlIGlmIChtX2NvbnRpbnVvdXNGcmFtZU9wQ29kZSA9PSBXZWJTb2Nr
ZXRGcmFtZTo6T3BDb2RlQmluYXJ5KQpAQCAtNjM3LDcgKzYzNyw3IEBAIGJvb2wgV2ViU29ja2V0
Q2hhbm5lbDo6cHJvY2Vzc0ZyYW1lKCkKICAgICAgICAgICAgICAgICBtZXNzYWdlID0gZW1wdHlT
dHJpbmcoKTsKICAgICAgICAgICAgIHNraXBCdWZmZXIoZnJhbWVFbmQgLSBtX2J1ZmZlci5kYXRh
KCkpOwogICAgICAgICAgICAgaWYgKG1lc3NhZ2UuaXNOdWxsKCkpCi0gICAgICAgICAgICAgICAg
ZmFpbCgiQ291bGQgbm90IGRlY29kZSBhIHRleHQgZnJhbWUgYXMgVVRGLTguIik7CisgICAgICAg
ICAgICAgICAgZmFpbCgiQ291bGQgbm90IGRlY29kZSBhIHRleHQgZnJhbWUgYXMgVVRGLTguIl9z
KTsKICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICBtX2NsaWVudC0+ZGlkUmVjZWl2
ZU1lc3NhZ2UoV1RGTW92ZShtZXNzYWdlKSk7CiAgICAgICAgIH0gZWxzZSB7CkBAIC02NjksMTMg
KzY2OSwxMyBAQCBib29sIFdlYlNvY2tldENoYW5uZWw6OnByb2Nlc3NGcmFtZSgpCiAgICAgICAg
ICAgICBtX2Nsb3NlRXZlbnRDb2RlID0gQ2xvc2VFdmVudENvZGVOb1N0YXR1c1JjdmQ7CiAgICAg
ICAgIGVsc2UgaWYgKGZyYW1lLnBheWxvYWRMZW5ndGggPT0gMSkgewogICAgICAgICAgICAgbV9j
bG9zZUV2ZW50Q29kZSA9IENsb3NlRXZlbnRDb2RlQWJub3JtYWxDbG9zdXJlOwotICAgICAgICAg
ICAgZmFpbCgiUmVjZWl2ZWQgYSBicm9rZW4gY2xvc2UgZnJhbWUgY29udGFpbmluZyBhbiBpbnZh
bGlkIHNpemUgYm9keS4iKTsKKyAgICAgICAgICAgIGZhaWwoIlJlY2VpdmVkIGEgYnJva2VuIGNs
b3NlIGZyYW1lIGNvbnRhaW5pbmcgYW4gaW52YWxpZCBzaXplIGJvZHkuIl9zKTsKICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIG1fY2xvc2VF
dmVudENvZGUgPSBmcmFtZS5wYXlsb2FkWzBdIDw8IDggfCBmcmFtZS5wYXlsb2FkWzFdOwogICAg
ICAgICAgICAgaWYgKG1fY2xvc2VFdmVudENvZGUgPT0gQ2xvc2VFdmVudENvZGVOb1N0YXR1c1Jj
dmQgfHwgbV9jbG9zZUV2ZW50Q29kZSA9PSBDbG9zZUV2ZW50Q29kZUFibm9ybWFsQ2xvc3VyZSB8
fCBtX2Nsb3NlRXZlbnRDb2RlID09IENsb3NlRXZlbnRDb2RlVExTSGFuZHNoYWtlKSB7CiAgICAg
ICAgICAgICAgICAgbV9jbG9zZUV2ZW50Q29kZSA9IENsb3NlRXZlbnRDb2RlQWJub3JtYWxDbG9z
dXJlOwotICAgICAgICAgICAgICAgIGZhaWwoIlJlY2VpdmVkIGEgYnJva2VuIGNsb3NlIGZyYW1l
IGNvbnRhaW5pbmcgYSByZXNlcnZlZCBzdGF0dXMgY29kZS4iKTsKKyAgICAgICAgICAgICAgICBm
YWlsKCJSZWNlaXZlZCBhIGJyb2tlbiBjbG9zZSBmcmFtZSBjb250YWluaW5nIGEgcmVzZXJ2ZWQg
c3RhdHVzIGNvZGUuIl9zKTsKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAg
ICAgICB9CiAgICAgICAgIH0KQEAgLTc2MSw3ICs3NjEsNyBAQCB2b2lkIFdlYlNvY2tldENoYW5u
ZWw6OnByb2Nlc3NPdXRnb2luZ0ZyYW1lUXVldWUoKQogICAgICAgICBjYXNlIFF1ZXVlZEZyYW1l
VHlwZVN0cmluZzogewogICAgICAgICAgICAgc2VuZEZyYW1lKGZyYW1lLT5vcENvZGUsIGZyYW1l
LT5zdHJpbmdEYXRhLmRhdGFBc1VJbnQ4UHRyKCksIGZyYW1lLT5zdHJpbmdEYXRhLmxlbmd0aCgp
LCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH1dIChib29sIHN1Y2Nlc3MpIHsK
ICAgICAgICAgICAgICAgICBpZiAoIXN1Y2Nlc3MpCi0gICAgICAgICAgICAgICAgICAgIGZhaWwo
IkZhaWxlZCB0byBzZW5kIFdlYlNvY2tldCBmcmFtZS4iKTsKKyAgICAgICAgICAgICAgICAgICAg
ZmFpbCgiRmFpbGVkIHRvIHNlbmQgV2ViU29ja2V0IGZyYW1lLiJfcyk7CiAgICAgICAgICAgICB9
KTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CkBAIC03NjksNyArNzY5LDcgQEAgdm9p
ZCBXZWJTb2NrZXRDaGFubmVsOjpwcm9jZXNzT3V0Z29pbmdGcmFtZVF1ZXVlKCkKICAgICAgICAg
Y2FzZSBRdWV1ZWRGcmFtZVR5cGVWZWN0b3I6CiAgICAgICAgICAgICBzZW5kRnJhbWUoZnJhbWUt
Pm9wQ29kZSwgZnJhbWUtPnZlY3RvckRhdGEuZGF0YSgpLCBmcmFtZS0+dmVjdG9yRGF0YS5zaXpl
KCksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfV0gKGJvb2wgc3VjY2Vzcykg
ewogICAgICAgICAgICAgICAgIGlmICghc3VjY2VzcykKLSAgICAgICAgICAgICAgICAgICAgZmFp
bCgiRmFpbGVkIHRvIHNlbmQgV2ViU29ja2V0IGZyYW1lLiIpOworICAgICAgICAgICAgICAgICAg
ICBmYWlsKCJGYWlsZWQgdG8gc2VuZCBXZWJTb2NrZXQgZnJhbWUuIl9zKTsKICAgICAgICAgICAg
IH0pOwogICAgICAgICAgICAgYnJlYWs7CiAKQEAgLTc5Niw3ICs3OTYsNyBAQCB2b2lkIFdlYlNv
Y2tldENoYW5uZWw6OnByb2Nlc3NPdXRnb2luZ0ZyYW1lUXVldWUoKQogICAgICAgICAgICAgICAg
IG1fYmxvYkxvYWRlclN0YXR1cyA9IEJsb2JMb2FkZXJOb3RTdGFydGVkOwogICAgICAgICAgICAg
ICAgIHNlbmRGcmFtZShmcmFtZS0+b3BDb2RlLCBzdGF0aWNfY2FzdDxjb25zdCB1aW50OF90Kj4o
cmVzdWx0LT5kYXRhKCkpLCByZXN1bHQtPmJ5dGVMZW5ndGgoKSwgW3RoaXMsIHByb3RlY3RlZFRo
aXMgPSBSZWYgeyAqdGhpcyB9XSAoYm9vbCBzdWNjZXNzKSB7CiAgICAgICAgICAgICAgICAgICAg
IGlmICghc3VjY2VzcykKLSAgICAgICAgICAgICAgICAgICAgICAgIGZhaWwoIkZhaWxlZCB0byBz
ZW5kIFdlYlNvY2tldCBmcmFtZS4iKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZhaWwoIkZh
aWxlZCB0byBzZW5kIFdlYlNvY2tldCBmcmFtZS4iX3MpOwogICAgICAgICAgICAgICAgIH0pOwog
ICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldERlZmxhdGVGcmFtZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldERlZmxhdGVGcmFtZXIu
Y3BwCmluZGV4IDAxZmRmZTAyOWU0NmZjZTg2MmQ1ZTYxNmNmYzQ5NWQ2OWNjNjE0NjUuLmE4N2Zl
NWQ3YWFlNWU4MGQzOTc1NDk5YzRjNTZhNmUwMTdkZjExZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXREZWZsYXRlRnJhbWVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RGVmbGF0ZUZyYW1l
ci5jcHAKQEAgLTc2LDcgKzc2LDcgQEAgYm9vbCBXZWJTb2NrZXRFeHRlbnNpb25EZWZsYXRlRnJh
bWU6OnByb2Nlc3NSZXNwb25zZShjb25zdCBIYXNoTWFwPFN0cmluZywgU3RyaW4KIAogICAgIHVu
c2lnbmVkIGV4cGVjdGVkTnVtUGFyYW1ldGVycyA9IDA7CiAgICAgaW50IHdpbmRvd0JpdHMgPSAx
NTsKLSAgICBhdXRvIHBhcmFtZXRlciA9IHNlcnZlclBhcmFtZXRlcnMuZmluZCgibWF4X3dpbmRv
d19iaXRzIik7CisgICAgYXV0byBwYXJhbWV0ZXIgPSBzZXJ2ZXJQYXJhbWV0ZXJzLmZpbmQoIm1h
eF93aW5kb3dfYml0cyJfcyk7CiAgICAgaWYgKHBhcmFtZXRlciAhPSBzZXJ2ZXJQYXJhbWV0ZXJz
LmVuZCgpKSB7CiAgICAgICAgIHdpbmRvd0JpdHMgPSBwYXJzZUludGVnZXJBbGxvd2luZ1RyYWls
aW5nSnVuazxpbnQ+KHBhcmFtZXRlci0+dmFsdWUpLnZhbHVlX29yKDApOwogICAgICAgICBpZiAo
d2luZG93Qml0cyA8IDggfHwgd2luZG93Qml0cyA+IDE1KSB7CkBAIC04Nyw3ICs4Nyw3IEBAIGJv
b2wgV2ViU29ja2V0RXh0ZW5zaW9uRGVmbGF0ZUZyYW1lOjpwcm9jZXNzUmVzcG9uc2UoY29uc3Qg
SGFzaE1hcDxTdHJpbmcsIFN0cmluCiAgICAgfQogCiAgICAgV2ViU29ja2V0RGVmbGF0ZXI6OkNv
bnRleHRUYWtlT3Zlck1vZGUgbW9kZSA9IFdlYlNvY2tldERlZmxhdGVyOjpUYWtlT3ZlckNvbnRl
eHQ7Ci0gICAgcGFyYW1ldGVyID0gc2VydmVyUGFyYW1ldGVycy5maW5kKCJub19jb250ZXh0X3Rh
a2VvdmVyIik7CisgICAgcGFyYW1ldGVyID0gc2VydmVyUGFyYW1ldGVycy5maW5kKCJub19jb250
ZXh0X3Rha2VvdmVyIl9zKTsKICAgICBpZiAocGFyYW1ldGVyICE9IHNlcnZlclBhcmFtZXRlcnMu
ZW5kKCkpIHsKICAgICAgICAgaWYgKCFwYXJhbWV0ZXItPnZhbHVlLmlzTnVsbCgpKSB7CiAgICAg
ICAgICAgICBtX2ZhaWx1cmVSZWFzb24gPSAiUmVjZWl2ZWQgaW52YWxpZCBub19jb250ZXh0X3Rh
a2VvdmVyIHBhcmFtZXRlciJfczsKQEAgLTE2MSw3ICsxNjEsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8
RGVmbGF0ZVJlc3VsdEhvbGRlcj4gV2ViU29ja2V0RGVmbGF0ZUZyYW1lcjo6ZGVmbGF0ZShXZWJT
b2NrZXRGcgogICAgIGlmICghZW5hYmxlZCgpIHx8ICFXZWJTb2NrZXRGcmFtZTo6aXNOb25Db250
cm9sT3BDb2RlKGZyYW1lLm9wQ29kZSkgfHwgIWZyYW1lLnBheWxvYWRMZW5ndGgpCiAgICAgICAg
IHJldHVybiByZXN1bHQ7CiAgICAgaWYgKCFtX2RlZmxhdGVyLT5hZGRCeXRlcyhmcmFtZS5wYXls
b2FkLCBmcmFtZS5wYXlsb2FkTGVuZ3RoKSB8fCAhbV9kZWZsYXRlci0+ZmluaXNoKCkpIHsKLSAg
ICAgICAgcmVzdWx0LT5mYWlsKCJGYWlsZWQgdG8gY29tcHJlc3MgZnJhbWUiKTsKKyAgICAgICAg
cmVzdWx0LT5mYWlsKCJGYWlsZWQgdG8gY29tcHJlc3MgZnJhbWUiX3MpOwogICAgICAgICByZXR1
cm4gcmVzdWx0OwogICAgIH0KICAgICBmcmFtZS5jb21wcmVzcyA9IHRydWU7CkBAIC0xODAsMTcg
KzE4MCwxNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8SW5mbGF0ZVJlc3VsdEhvbGRlcj4gV2ViU29ja2V0
RGVmbGF0ZUZyYW1lcjo6aW5mbGF0ZShXZWJTb2NrZXRGcgogewogICAgIGF1dG8gcmVzdWx0ID0g
bWFrZVVuaXF1ZTxJbmZsYXRlUmVzdWx0SG9sZGVyPigqdGhpcyk7CiAgICAgaWYgKCFlbmFibGVk
KCkgJiYgZnJhbWUuY29tcHJlc3MpIHsKLSAgICAgICAgcmVzdWx0LT5mYWlsKCJDb21wcmVzc2Vk
IGJpdCBtdXN0IGJlIDAgaWYgbm8gbmVnb3RpYXRlZCBkZWZsYXRlLWZyYW1lIGV4dGVuc2lvbiIp
OworICAgICAgICByZXN1bHQtPmZhaWwoIkNvbXByZXNzZWQgYml0IG11c3QgYmUgMCBpZiBubyBu
ZWdvdGlhdGVkIGRlZmxhdGUtZnJhbWUgZXh0ZW5zaW9uIl9zKTsKICAgICAgICAgcmV0dXJuIHJl
c3VsdDsKICAgICB9CiAgICAgaWYgKCFmcmFtZS5jb21wcmVzcykKICAgICAgICAgcmV0dXJuIHJl
c3VsdDsKICAgICBpZiAoIVdlYlNvY2tldEZyYW1lOjppc05vbkNvbnRyb2xPcENvZGUoZnJhbWUu
b3BDb2RlKSkgewotICAgICAgICByZXN1bHQtPmZhaWwoIlJlY2VpdmVkIHVuZXhwZWN0ZWQgY29t
cHJlc3NlZCBmcmFtZSIpOworICAgICAgICByZXN1bHQtPmZhaWwoIlJlY2VpdmVkIHVuZXhwZWN0
ZWQgY29tcHJlc3NlZCBmcmFtZSJfcyk7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQog
ICAgIGlmICghbV9pbmZsYXRlci0+YWRkQnl0ZXMoZnJhbWUucGF5bG9hZCwgZnJhbWUucGF5bG9h
ZExlbmd0aCkgfHwgIW1faW5mbGF0ZXItPmZpbmlzaCgpKSB7Ci0gICAgICAgIHJlc3VsdC0+ZmFp
bCgiRmFpbGVkIHRvIGRlY29tcHJlc3MgZnJhbWUiKTsKKyAgICAgICAgcmVzdWx0LT5mYWlsKCJG
YWlsZWQgdG8gZGVjb21wcmVzcyBmcmFtZSJfcyk7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAg
ICAgfQogICAgIGZyYW1lLmNvbXByZXNzID0gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RXh0ZW5zaW9uRGlzcGF0Y2hlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RXh0ZW5zaW9uRGlz
cGF0Y2hlci5jcHAKaW5kZXggN2FmMmMzNzkxYTBhZThkNmVlOWU5Mjk5ODM1N2U4NjBhZmJiNzVk
ZC4uZTVjZjEyNTExZWYzZTU2NGY2M2I4NWQ4Y2IwYmIxZWU0MGM1ZGEzZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEV4dGVuc2lvbkRpc3Bh
dGNoZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2Nr
ZXRFeHRlbnNpb25EaXNwYXRjaGVyLmNwcApAQCAtOTMsNyArOTMsNyBAQCBib29sIFdlYlNvY2tl
dEV4dGVuc2lvbkRpc3BhdGNoZXI6OnByb2Nlc3NIZWFkZXJWYWx1ZShjb25zdCBTdHJpbmcmIGhl
YWRlclZhbHVlKQogCiAgICAgLy8gSWYgd2UgZG9uJ3Qgc2VuZCBTZWMtV2ViU29ja2V0LUV4dGVu
c2lvbnMgaGVhZGVyLCB0aGUgc2VydmVyIHNob3VsZCBub3QgcmV0dXJuIHRoZSBoZWFkZXIuCiAg
ICAgaWYgKCFtX3Byb2Nlc3NvcnMuc2l6ZSgpKSB7Ci0gICAgICAgIGZhaWwoIlJlY2VpdmVkIHVu
ZXhwZWN0ZWQgU2VjLVdlYlNvY2tldC1FeHRlbnNpb25zIGhlYWRlciIpOworICAgICAgICBmYWls
KCJSZWNlaXZlZCB1bmV4cGVjdGVkIFNlYy1XZWJTb2NrZXQtRXh0ZW5zaW9ucyBoZWFkZXIiX3Mp
OwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCkBAIC0xMDMsNyArMTAzLDcgQEAgYm9v
bCBXZWJTb2NrZXRFeHRlbnNpb25EaXNwYXRjaGVyOjpwcm9jZXNzSGVhZGVyVmFsdWUoY29uc3Qg
U3RyaW5nJiBoZWFkZXJWYWx1ZSkKICAgICAgICAgU3RyaW5nIGV4dGVuc2lvblRva2VuOwogICAg
ICAgICBIYXNoTWFwPFN0cmluZywgU3RyaW5nPiBleHRlbnNpb25QYXJhbWV0ZXJzOwogICAgICAg
ICBpZiAoIXBhcnNlci5wYXJzZUV4dGVuc2lvbihleHRlbnNpb25Ub2tlbiwgZXh0ZW5zaW9uUGFy
YW1ldGVycykpIHsKLSAgICAgICAgICAgIGZhaWwoIlNlYy1XZWJTb2NrZXQtRXh0ZW5zaW9ucyBo
ZWFkZXIgaXMgaW52YWxpZCIpOworICAgICAgICAgICAgZmFpbCgiU2VjLVdlYlNvY2tldC1FeHRl
bnNpb25zIGhlYWRlciBpcyBpbnZhbGlkIl9zKTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tl
dHMvV2ViU29ja2V0RnJhbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRz
L1dlYlNvY2tldEZyYW1lLmNwcAppbmRleCBlMzllMDE5YWUwMmQ5NjcyMzhmOTY1NzJkNTNlZTIz
YzM0NTZmMjMzLi5iYTFlNjI1NDkxN2FmZjRmYTdiODJjNjg4NGZlYjJhYzkwNzBkM2FkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RnJhbWUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRGcmFt
ZS5jcHAKQEAgLTgyLDExICs4MiwxMSBAQCBXZWJTb2NrZXRGcmFtZTo6UGFyc2VGcmFtZVJlc3Vs
dCBXZWJTb2NrZXRGcmFtZTo6cGFyc2VGcmFtZSh1aW50OF90KiBkYXRhLCBzaXplXwogICAgICAg
ICAgICAgcGF5bG9hZExlbmd0aDY0IHw9IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KCpwKyspOwogICAg
ICAgICB9CiAgICAgICAgIGlmIChleHRlbmRlZFBheWxvYWRMZW5ndGhTaXplID09IDIgJiYgcGF5
bG9hZExlbmd0aDY0IDw9IG1heFBheWxvYWRMZW5ndGhXaXRob3V0RXh0ZW5kZWRMZW5ndGhGaWVs
ZCkgewotICAgICAgICAgICAgZXJyb3JTdHJpbmcgPSAiVGhlIG1pbmltYWwgbnVtYmVyIG9mIGJ5
dGVzIE1VU1QgYmUgdXNlZCB0byBlbmNvZGUgdGhlIGxlbmd0aCI7CisgICAgICAgICAgICBlcnJv
clN0cmluZyA9ICJUaGUgbWluaW1hbCBudW1iZXIgb2YgYnl0ZXMgTVVTVCBiZSB1c2VkIHRvIGVu
Y29kZSB0aGUgbGVuZ3RoIl9zOwogICAgICAgICAgICAgcmV0dXJuIEZyYW1lRXJyb3I7CiAgICAg
ICAgIH0KICAgICAgICAgaWYgKGV4dGVuZGVkUGF5bG9hZExlbmd0aFNpemUgPT0gOCAmJiBwYXls
b2FkTGVuZ3RoNjQgPD0gMHhGRkZGKSB7Ci0gICAgICAgICAgICBlcnJvclN0cmluZyA9ICJUaGUg
bWluaW1hbCBudW1iZXIgb2YgYnl0ZXMgTVVTVCBiZSB1c2VkIHRvIGVuY29kZSB0aGUgbGVuZ3Ro
IjsKKyAgICAgICAgICAgIGVycm9yU3RyaW5nID0gIlRoZSBtaW5pbWFsIG51bWJlciBvZiBieXRl
cyBNVVNUIGJlIHVzZWQgdG8gZW5jb2RlIHRoZSBsZW5ndGgiX3M7CiAgICAgICAgICAgICByZXR1
cm4gRnJhbWVFcnJvcjsKICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2VieHIvV2ViWFJXZWJHTExheWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2VieHIvV2ViWFJXZWJHTExheWVyLmNwcAppbmRleCA4MjZkZTE2YTcwNjkxZDQyMGM1
OTQ2N2RjNGE3MWRlZGZiMGI2NWM2Li5kNzQwZmJiODgzZDI1OGFkMWU1ZGI3ZjZiYmZkMTY2NWI0
NDliOTg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSV2Vi
R0xMYXllci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUldlYkdM
TGF5ZXIuY3BwCkBAIC02NCw3ICs2NCw3IEBAIHN0YXRpYyBFeGNlcHRpb25PcjxzdGQ6OnVuaXF1
ZV9wdHI8V2ViWFJPcGFxdWVGcmFtZWJ1ZmZlcj4+IGNyZWF0ZU9wYXF1ZUZyYW1lYnVmCiB7CiAg
ICAgYXV0byBkZXZpY2UgPSBzZXNzaW9uLmRldmljZSgpOwogICAgIGlmICghZGV2aWNlKQotICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgT3BlcmF0aW9uRXJyb3IsICJDYW5ub3QgY3JlYXRlIGFu
IFhSV2ViR0xMYXllciB3aXRoIGFuIFhSU2Vzc2lvbiB0aGF0IGhhcyBlbmRlZC4iIH07CisgICAg
ICAgIHJldHVybiBFeGNlcHRpb24geyBPcGVyYXRpb25FcnJvciwgIkNhbm5vdCBjcmVhdGUgYW4g
WFJXZWJHTExheWVyIHdpdGggYW4gWFJTZXNzaW9uIHRoYXQgaGFzIGVuZGVkLiJfcyB9OwogCiAg
ICAgLy8gOS4xLiBJbml0aWFsaXplIGxheWVy4oCZcyBhbnRpYWxpYXMgdG8gbGF5ZXJJbml04oCZ
cyBhbnRpYWxpYXMgdmFsdWUuCiAgICAgLy8gOS4yLiBMZXQgZnJhbWVidWZmZXJTaXplIGJlIHRo
ZSByZWNvbW1lbmRlZCBXZWJHTCBmcmFtZWJ1ZmZlciByZXNvbHV0aW9uIG11bHRpcGxpZWQgYnkg
bGF5ZXJJbml0J3MgZnJhbWVidWZmZXJTY2FsZUZhY3Rvci4KQEAgLTgyLDcgKzgyLDcgQEAgc3Rh
dGljIEV4Y2VwdGlvbk9yPHN0ZDo6dW5pcXVlX3B0cjxXZWJYUk9wYXF1ZUZyYW1lYnVmZmVyPj4g
Y3JlYXRlT3BhcXVlRnJhbWVidWYKICAgICAvLyA5LjUuIElmIGxheWVy4oCZcyByZXNvdXJjZXMg
d2VyZSB1bmFibGUgdG8gYmUgY3JlYXRlZCBmb3IgYW55IHJlYXNvbiwgdGhyb3cgYW4gT3BlcmF0
aW9uRXJyb3IgYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgogICAgIGF1dG8gbGF5ZXJIYW5kbGUgPSBk
ZXZpY2UtPmNyZWF0ZUxheWVyUHJvamVjdGlvbih3aWR0aCwgaGVpZ2h0LCBpbml0LmFscGhhKTsK
ICAgICBpZiAoIWxheWVySGFuZGxlKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgT3BlcmF0
aW9uRXJyb3IsICJVbmFibGUgdG8gYWxsb2NhdGUgWFJXZWJHTExheWVyIEdQVSByZXNvdXJjZXMu
In07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBPcGVyYXRpb25FcnJvciwgIlVuYWJsZSB0
byBhbGxvY2F0ZSBYUldlYkdMTGF5ZXIgR1BVIHJlc291cmNlcy4iX3MgfTsKIAogICAgIFdlYlhS
T3BhcXVlRnJhbWVidWZmZXI6OkF0dHJpYnV0ZXMgYXR0cmlidXRlcyB7CiAgICAgICAgIC5hbHBo
YSA9IGluaXQuYWxwaGEsCkBAIC05Myw3ICs5Myw3IEBAIHN0YXRpYyBFeGNlcHRpb25PcjxzdGQ6
OnVuaXF1ZV9wdHI8V2ViWFJPcGFxdWVGcmFtZWJ1ZmZlcj4+IGNyZWF0ZU9wYXF1ZUZyYW1lYnVm
CiAKICAgICBhdXRvIGZyYW1lYnVmZmVyID0gV2ViWFJPcGFxdWVGcmFtZWJ1ZmZlcjo6Y3JlYXRl
KCpsYXllckhhbmRsZSwgY29udGV4dCwgV1RGTW92ZShhdHRyaWJ1dGVzKSwgd2lkdGgsIGhlaWdo
dCk7CiAgICAgaWYgKCFmcmFtZWJ1ZmZlcikKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE9w
ZXJhdGlvbkVycm9yLCAiVW5hYmxlIHRvIGNyZWF0ZSBhIGZyYW1lYnVmZmVyLiIgfTsKKyAgICAg
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE9wZXJhdGlvbkVycm9yLCAiVW5hYmxlIHRvIGNyZWF0ZSBh
IGZyYW1lYnVmZmVyLiJfcyB9OwogICAgIAogICAgIHJldHVybiBmcmFtZWJ1ZmZlcjsKIH0KQEAg
LTEwNCw3ICsxMDQsNyBAQCBFeGNlcHRpb25PcjxSZWY8V2ViWFJXZWJHTExheWVyPj4gV2ViWFJX
ZWJHTExheWVyOjpjcmVhdGUoUmVmPFdlYlhSU2Vzc2lvbj4mJiBzZQogICAgIC8vIDEuIExldCBs
YXllciBiZSBhIG5ldyBYUldlYkdMTGF5ZXIKICAgICAvLyAyLiBJZiBzZXNzaW9u4oCZcyBlbmRl
ZCB2YWx1ZSBpcyB0cnVlLCB0aHJvdyBhbiBJbnZhbGlkU3RhdGVFcnJvciBhbmQgYWJvcnQgdGhl
c2Ugc3RlcHMuCiAgICAgaWYgKHNlc3Npb24tPmVuZGVkKCkpCi0gICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkNhbm5vdCBjcmVhdGUgYW4gWFJXZWJHTExheWVy
IHdpdGggYW4gWFJTZXNzaW9uIHRoYXQgaGFzIGVuZGVkLiIgfTsKKyAgICAgICAgcmV0dXJuIEV4
Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiQ2Fubm90IGNyZWF0ZSBhbiBYUldlYkdMTGF5
ZXIgd2l0aCBhbiBYUlNlc3Npb24gdGhhdCBoYXMgZW5kZWQuIl9zIH07CiAKICAgICAvLyAzLiBJ
ZiBjb250ZXh0IGlzIGxvc3QsIHRocm93IGFuIEludmFsaWRTdGF0ZUVycm9yIGFuZCBhYm9ydCB0
aGVzZSBzdGVwcy4KICAgICAvLyA0LiBJZiBzZXNzaW9uIGlzIGFuIGltbWVyc2l2ZSBzZXNzaW9u
IGFuZCBjb250ZXh04oCZcyBYUiBjb21wYXRpYmxlIGJvb2xlYW4gaXMgZmFsc2UsIHRocm93CkBA
IC0xMTMsMTEgKzExMywxMSBAQCBFeGNlcHRpb25PcjxSZWY8V2ViWFJXZWJHTExheWVyPj4gV2Vi
WFJXZWJHTExheWVyOjpjcmVhdGUoUmVmPFdlYlhSU2Vzc2lvbj4mJiBzZQogICAgICAgICBbJl0o
Y29uc3QgUmVmUHRyPFdlYkdMUmVuZGVyaW5nQ29udGV4dEJhc2U+JiBiYXNlQ29udGV4dCkgLT4g
RXhjZXB0aW9uT3I8UmVmPFdlYlhSV2ViR0xMYXllcj4+CiAgICAgICAgIHsKICAgICAgICAgICAg
IGlmIChiYXNlQ29udGV4dC0+aXNDb250ZXh0TG9zdCgpKQotICAgICAgICAgICAgICAgIHJldHVy
biBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkNhbm5vdCBjcmVhdGUgYW4gWFJXZWJH
TExheWVyIHdpdGggYSBsb3N0IFdlYkdMIGNvbnRleHQuIiB9OworICAgICAgICAgICAgICAgIHJl
dHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkNhbm5vdCBjcmVhdGUgYW4gWFJX
ZWJHTExheWVyIHdpdGggYSBsb3N0IFdlYkdMIGNvbnRleHQuIl9zIH07CiAKICAgICAgICAgICAg
IGF1dG8gbW9kZSA9IHNlc3Npb24tPm1vZGUoKTsKICAgICAgICAgICAgIGlmICgobW9kZSA9PSBY
UlNlc3Npb25Nb2RlOjpJbW1lcnNpdmVBciB8fCBtb2RlID09IFhSU2Vzc2lvbk1vZGU6OkltbWVy
c2l2ZVZyKSAmJiAhYmFzZUNvbnRleHQtPmlzWFJDb21wYXRpYmxlKCkpCi0gICAgICAgICAgICAg
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiQ2Fubm90IGNyZWF0ZSBh
biBYUldlYkdMTGF5ZXIgd2l0aCBXZWJHTCBjb250ZXh0IG5vdCBtYXJrZWQgYXMgWFIgY29tcGF0
aWJsZS4iIH07CisgICAgICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0
ZUVycm9yLCAiQ2Fubm90IGNyZWF0ZSBhbiBYUldlYkdMTGF5ZXIgd2l0aCBXZWJHTCBjb250ZXh0
IG5vdCBtYXJrZWQgYXMgWFIgY29tcGF0aWJsZS4iX3MgfTsKIAogCiAgICAgICAgICAgICAvLyA1
LiBJbml0aWFsaXplIGxheWVy4oCZcyBjb250ZXh0IHRvIGNvbnRleHQuIChzZWUgY29uc3RydWN0
b3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYSW1hZ2UuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWEltYWdlLmNwcAppbmRleCA3NWZlYThi
MTUyYjE2ZTY5NWQ2NGUyOTkyZDkzODNhODZjZmUyMmRhLi4yNjNiNzk2OTBiOTcyOTM3MDI1Nzlj
ZjBkMGU3ODI4MGQyZmZmN2I0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FYSW1hZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhJbWFn
ZS5jcHAKQEAgLTU3LDcgKzU3LDcgQEAgQWNjZXNzaWJpbGl0eVJvbGUgQVhJbWFnZTo6cm9sZVZh
bHVlKCkgY29uc3QKIAogc3RkOjpvcHRpb25hbDxBWENvcmVPYmplY3Q6OkFjY2Vzc2liaWxpdHlD
aGlsZHJlblZlY3Rvcj4gQVhJbWFnZTo6aW1hZ2VPdmVybGF5RWxlbWVudHMoKQogewotICAgIEFY
VFJBQ0UoIkFYSW1hZ2U6OmltYWdlT3ZlcmxheUVsZW1lbnRzIik7CisgICAgQVhUUkFDRSgiQVhJ
bWFnZTo6aW1hZ2VPdmVybGF5RWxlbWVudHMiX3MpOwogCiAgICAgYXV0byYgY2hpbGRyZW4gPSB0
aGlzLT5jaGlsZHJlbigpOwogICAgIGlmIChjaGlsZHJlbi5zaXplKCkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYTG9nZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQVhMb2dnZXIuY3BwCmluZGV4IDBiNmNjZDNiN2U5MjhjZTg3ODBiZGM3
ZjIxYjA4ZTczZTY0MjllMzMuLjk0MTQ2MTgyYTVhYmRkYjJjOTBlNjE2MWIwZmRmYTBmNmMzZWU1
NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhMb2dnZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhMb2dnZXIuY3BwCkBAIC01NSw3
ICs1NSw3IEBAIHN0YXRpYyBib29sIHNob3VsZExvZygpCiBBWExvZ2dlcjo6QVhMb2dnZXIoY29u
c3QgU3RyaW5nJiBtZXRob2ROYW1lKQogICAgIDogbV9tZXRob2ROYW1lKG1ldGhvZE5hbWUpCiB7
Ci0gICAgaWYgKGF1dG8qIGNoYW5uZWwgPSBnZXRMb2dDaGFubmVsKCJBY2Nlc3NpYmlsaXR5Iikp
CisgICAgaWYgKGF1dG8qIGNoYW5uZWwgPSBnZXRMb2dDaGFubmVsKCJBY2Nlc3NpYmlsaXR5Il9z
KSkKICAgICAgICAgY2hhbm5lbC0+bGV2ZWwgPSBXVEZMb2dMZXZlbDo6RGVidWc7CiAKICAgICBp
ZiAoc2hvdWxkTG9nKCkpIHsKQEAgLTc4LDYgKzc4LDEyIEBAIHZvaWQgQVhMb2dnZXI6OmxvZyhj
b25zdCBTdHJpbmcmIG1lc3NhZ2UpCiAgICAgICAgIExPRyhBY2Nlc3NpYmlsaXR5LCAiJXMiLCBt
ZXNzYWdlLnV0ZjgoKS5kYXRhKCkpOwogfQogCit2b2lkIEFYTG9nZ2VyOjpsb2coY29uc3QgY2hh
ciogbWVzc2FnZSkKK3sKKyAgICBpZiAoc2hvdWxkTG9nKCkpCisgICAgICAgIExPRyhBY2Nlc3Np
YmlsaXR5LCAiJXMiLCBtZXNzYWdlKTsKK30KKwogdm9pZCBBWExvZ2dlcjo6bG9nKFJlZlB0cjxB
WENvcmVPYmplY3Q+IG9iamVjdCkKIHsKICAgICBpZiAoc2hvdWxkTG9nKCkpIHsKQEAgLTMyOCwx
NSArMzM0LDE1IEBAIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgc3RyZWFtLCBB
Y2Nlc3NpYmlsaXR5U2VhcmNoS2V5IHNlYXJjaEtleSkKIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwo
VGV4dFN0cmVhbSYgc3RyZWFtLCBjb25zdCBBY2Nlc3NpYmlsaXR5U2VhcmNoQ3JpdGVyaWEmIGNy
aXRlcmlhKQogewogICAgIFRleHRTdHJlYW06Okdyb3VwU2NvcGUgZ3JvdXBTY29wZShzdHJlYW0p
OwotICAgIGF1dG8gc3RyZWFtQ3JpdGVyaWFPYmplY3QgPSBbJnN0cmVhbV0gKFN0cmluZyBvYmpl
Y3RMYWJlbCwgYXV0byogYXhPYmplY3QpIHsKKyAgICBhdXRvIHN0cmVhbUNyaXRlcmlhT2JqZWN0
ID0gWyZzdHJlYW1dIChBU0NJSUxpdGVyYWwgb2JqZWN0TGFiZWwsIGF1dG8qIGF4T2JqZWN0KSB7
CiAgICAgICAgIHN0cmVhbS5zdGFydEdyb3VwKCk7Ci0gICAgICAgIHN0cmVhbSA8PCBvYmplY3RM
YWJlbCA8PCAiICIgPDwgYXhPYmplY3QgPDwgIiwgSUQgIiA8PCAoYXhPYmplY3QgPyBheE9iamVj
dC0+b2JqZWN0SUQoKSA6IEFYSUQoKSk7CisgICAgICAgIHN0cmVhbSA8PCBvYmplY3RMYWJlbC5j
aGFyYWN0ZXJzKCkgPDwgIiAiIDw8IGF4T2JqZWN0IDw8ICIsIElEICIgPDwgKGF4T2JqZWN0ID8g
YXhPYmplY3QtPm9iamVjdElEKCkgOiBBWElEKCkpOwogICAgICAgICBzdHJlYW0uZW5kR3JvdXAo
KTsKICAgICB9OwogCiAgICAgc3RyZWFtIDw8ICJTZWFyY2hDcml0ZXJpYSAiIDw8ICZjcml0ZXJp
YTsKLSAgICBzdHJlYW1Dcml0ZXJpYU9iamVjdCgiYW5jaG9yT2JqZWN0IiwgY3JpdGVyaWEuYW5j
aG9yT2JqZWN0KTsKLSAgICBzdHJlYW1Dcml0ZXJpYU9iamVjdCgic3RhcnRPYmplY3QiLCBjcml0
ZXJpYS5zdGFydE9iamVjdCk7CisgICAgc3RyZWFtQ3JpdGVyaWFPYmplY3QoImFuY2hvck9iamVj
dCJfcywgY3JpdGVyaWEuYW5jaG9yT2JqZWN0KTsKKyAgICBzdHJlYW1Dcml0ZXJpYU9iamVjdCgi
c3RhcnRPYmplY3QiX3MsIGNyaXRlcmlhLnN0YXJ0T2JqZWN0KTsKICAgICBzdHJlYW0uZHVtcFBy
b3BlcnR5KCJzZWFyY2hEaXJlY3Rpb24iLCBjcml0ZXJpYS5zZWFyY2hEaXJlY3Rpb24pOwogCiAg
ICAgc3RyZWFtLm5leHRMaW5lKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FYTG9nZ2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYTG9nZ2Vy
LmgKaW5kZXggZWE4OTJmMmY5NjZjNTRkYzBjZWNlMWRhNzkyODRlNzk4MWEwYzk1Ni4uZDFmYmFm
YjE3Y2JiZWMzMjRhZTIwYjlmMTZjYzAyZjcwY2EwNWYwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BWExvZ2dlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQVhMb2dnZXIuaApAQCAtNDMsNiArNDMsNyBAQCBwdWJsaWM6CiAgICAgQVhMb2dn
ZXIoY29uc3QgU3RyaW5nJiBtZXRob2ROYW1lKTsKICAgICB+QVhMb2dnZXIoKTsKICAgICBzdGF0
aWMgdm9pZCBsb2coY29uc3QgU3RyaW5nJik7CisgICAgc3RhdGljIHZvaWQgbG9nKGNvbnN0IGNo
YXIqKTsKICAgICBzdGF0aWMgdm9pZCBsb2coUmVmUHRyPEFYQ29yZU9iamVjdD4pOwogICAgIHN0
YXRpYyB2b2lkIGxvZyhjb25zdCBWZWN0b3I8UmVmUHRyPEFYQ29yZU9iamVjdD4+Jik7CiAgICAg
c3RhdGljIHZvaWQgbG9nKGNvbnN0IHN0ZDo6cGFpcjxSZWZQdHI8QVhDb3JlT2JqZWN0PiwgQVhP
YmplY3RDYWNoZTo6QVhOb3RpZmljYXRpb24+Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAppbmRleCA3NzIyYzZkMGQyOTc5OTllMmM1OTk2ZmMy
YWQwOGViOTIwYjAyYzhhLi41M2NjMDdmNDAwMWZhYjcyODI0YjJkMTlkMWVmZjA2NjI5N2E5YWY1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAK
QEAgLTI1Miw3ICsyNTIsNyBAQCBBWE9iamVjdENhY2hlOjp+QVhPYmplY3RDYWNoZSgpCiAKIGJv
b2wgQVhPYmplY3RDYWNoZTo6aXNNb2RhbEVsZW1lbnQoRWxlbWVudCYgZWxlbWVudCkgY29uc3QK
IHsKLSAgICBib29sIGhhc0RpYWxvZ1JvbGUgPSBub2RlSGFzUm9sZSgmZWxlbWVudCwgImRpYWxv
ZyIpIHx8IG5vZGVIYXNSb2xlKCZlbGVtZW50LCAiYWxlcnRkaWFsb2ciKTsKKyAgICBib29sIGhh
c0RpYWxvZ1JvbGUgPSBub2RlSGFzUm9sZSgmZWxlbWVudCwgImRpYWxvZyJfcykgfHwgbm9kZUhh
c1JvbGUoJmVsZW1lbnQsICJhbGVydGRpYWxvZyJfcyk7CiAgICAgYm9vbCBpc0FyaWFNb2RhbCA9
IGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGVsZW1lbnQuYXR0cmlidXRlV2l0aG91dFN5
bmNocm9uaXphdGlvbihhcmlhX21vZGFsQXR0ciksICJ0cnVlIik7CiAKICAgICByZXR1cm4gKGhh
c0RpYWxvZ1JvbGUgJiYgaXNBcmlhTW9kYWwpIHx8IChpczxIVE1MRGlhbG9nRWxlbWVudD4oZWxl
bWVudCkgJiYgZG93bmNhc3Q8SFRNTERpYWxvZ0VsZW1lbnQ+KGVsZW1lbnQpLmlzTW9kYWwoKSk7
CkBAIC01NjAsMjIgKzU2MCwyMiBAQCBzdGF0aWMgUmVmPEFjY2Vzc2liaWxpdHlPYmplY3Q+IGNy
ZWF0ZUZyb21SZW5kZXJlcihSZW5kZXJPYmplY3QqIHJlbmRlcmVyKQogCiAgICAgLy8gSWYgdGhl
IG5vZGUgaXMgYXJpYSByb2xlPSJsaXN0IiBvciB0aGUgYXJpYSByb2xlIGlzIGVtcHR5IGFuZCBp
dHMgYQogICAgIC8vIHVsL29sL2RsIHR5cGUgKGl0IHNob3VsZG4ndCBiZSBhIGxpc3QgaWYgYXJp
YSBzYXlzIG90aGVyd2lzZSkuCi0gICAgaWYgKG5vZGUgJiYgKChub2RlSGFzUm9sZShub2RlLCAi
bGlzdCIpIHx8IG5vZGVIYXNSb2xlKG5vZGUsICJkaXJlY3RvcnkiKSkKKyAgICBpZiAobm9kZSAm
JiAoKG5vZGVIYXNSb2xlKG5vZGUsICJsaXN0Il9zKSB8fCBub2RlSGFzUm9sZShub2RlLCAiZGly
ZWN0b3J5Il9zKSkKICAgICAgICAgICAgICAgICAgICAgICB8fCAobm9kZUhhc1JvbGUobm9kZSwg
bnVsbEF0b20oKSkgJiYgKG5vZGUtPmhhc1RhZ05hbWUodWxUYWcpIHx8IG5vZGUtPmhhc1RhZ05h
bWUob2xUYWcpIHx8IG5vZGUtPmhhc1RhZ05hbWUoZGxUYWcpKSkpKQogICAgICAgICByZXR1cm4g
QWNjZXNzaWJpbGl0eUxpc3Q6OmNyZWF0ZShyZW5kZXJlcik7CiAKICAgICAvLyBhcmlhIHRhYmxl
cwotICAgIGlmIChub2RlSGFzUm9sZShub2RlLCAiZ3JpZCIpIHx8IG5vZGVIYXNSb2xlKG5vZGUs
ICJ0cmVlZ3JpZCIpIHx8IG5vZGVIYXNSb2xlKG5vZGUsICJ0YWJsZSIpKQorICAgIGlmIChub2Rl
SGFzUm9sZShub2RlLCAiZ3JpZCJfcykgfHwgbm9kZUhhc1JvbGUobm9kZSwgInRyZWVncmlkIl9z
KSB8fCBub2RlSGFzUm9sZShub2RlLCAidGFibGUiX3MpKQogICAgICAgICByZXR1cm4gQWNjZXNz
aWJpbGl0eUFSSUFHcmlkOjpjcmVhdGUocmVuZGVyZXIpOwotICAgIGlmIChub2RlSGFzUm9sZShu
b2RlLCAicm93IikpCisgICAgaWYgKG5vZGVIYXNSb2xlKG5vZGUsICJyb3ciX3MpKQogICAgICAg
ICByZXR1cm4gQWNjZXNzaWJpbGl0eUFSSUFHcmlkUm93OjpjcmVhdGUocmVuZGVyZXIpOwotICAg
IGlmIChub2RlSGFzUm9sZShub2RlLCAiZ3JpZGNlbGwiKSB8fCBub2RlSGFzUm9sZShub2RlLCAi
Y2VsbCIpIHx8IG5vZGVIYXNSb2xlKG5vZGUsICJjb2x1bW5oZWFkZXIiKSB8fCBub2RlSGFzUm9s
ZShub2RlLCAicm93aGVhZGVyIikpCisgICAgaWYgKG5vZGVIYXNSb2xlKG5vZGUsICJncmlkY2Vs
bCJfcykgfHwgbm9kZUhhc1JvbGUobm9kZSwgImNlbGwiX3MpIHx8IG5vZGVIYXNSb2xlKG5vZGUs
ICJjb2x1bW5oZWFkZXIiX3MpIHx8IG5vZGVIYXNSb2xlKG5vZGUsICJyb3doZWFkZXIiX3MpKQog
ICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eUFSSUFHcmlkQ2VsbDo6Y3JlYXRlKHJlbmRlcmVy
KTsKIAogICAgIC8vIGFyaWEgdHJlZQotICAgIGlmIChub2RlSGFzUm9sZShub2RlLCAidHJlZSIp
KQorICAgIGlmIChub2RlSGFzUm9sZShub2RlLCAidHJlZSJfcykpCiAgICAgICAgIHJldHVybiBB
Y2Nlc3NpYmlsaXR5VHJlZTo6Y3JlYXRlKHJlbmRlcmVyKTsKLSAgICBpZiAobm9kZUhhc1JvbGUo
bm9kZSwgInRyZWVpdGVtIikpCisgICAgaWYgKG5vZGVIYXNSb2xlKG5vZGUsICJ0cmVlaXRlbSJf
cykpCiAgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5VHJlZUl0ZW06OmNyZWF0ZShyZW5kZXJl
cik7CiAKICAgICBpZiAobm9kZSAmJiBpczxIVE1MTGFiZWxFbGVtZW50Pihub2RlKSAmJiBub2Rl
SGFzUm9sZShub2RlLCBudWxsQXRvbSgpKSkKQEAgLTg2NSw3ICs4NjUsNyBAQCBBY2Nlc3NpYmls
aXR5T2JqZWN0KiBBWE9iamVjdENhY2hlOjpjcmVhdGUoQWNjZXNzaWJpbGl0eVJvbGUgcm9sZSkK
IAogdm9pZCBBWE9iamVjdENhY2hlOjpyZW1vdmUoQVhJRCBheElEKQogewotICAgIEFYVFJBQ0Uo
IkFYT2JqZWN0Q2FjaGU6OnJlbW92ZSIpOworICAgIEFYVFJBQ0UoIkFYT2JqZWN0Q2FjaGU6OnJl
bW92ZSJfcyk7CiAgICAgQVhMT0cobWFrZVN0cmluZygiQVhJRCAiLCBheElELmxvZ2dpbmdTdHJp
bmcoKSkpOwogCiAgICAgaWYgKCFheElEKQpAQCAtOTc3LDcgKzk3Nyw3IEBAIHZvaWQgQVhPYmpl
Y3RDYWNoZTo6dGV4dENoYW5nZWQoTm9kZSogbm9kZSkKIAogdm9pZCBBWE9iamVjdENhY2hlOjp0
ZXh0Q2hhbmdlZChBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3QpCiB7Ci0gICAgQVhUUkFDRSgi
QVhPYmplY3RDYWNoZTo6dGV4dENoYW5nZWQiKTsKKyAgICBBWFRSQUNFKCJBWE9iamVjdENhY2hl
Ojp0ZXh0Q2hhbmdlZCJfcyk7CiAgICAgQVhMT0cob2JqZWN0KTsKIAogICAgIGlmICghb2JqZWN0
KQpAQCAtMTA4Miw3ICsxMDgyLDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVDaGlsZHJl
bkNoYW5nZWQoQWNjZXNzaWJpbGl0eU9iamVjdCYgb2JqZWN0KQogCiB2b2lkIEFYT2JqZWN0Q2Fj
aGU6OmhhbmRsZU1lbnVPcGVuZWQoTm9kZSogbm9kZSkKIHsKLSAgICBpZiAoIW5vZGUgfHwgIW5v
ZGUtPnJlbmRlcmVyKCkgfHwgIW5vZGVIYXNSb2xlKG5vZGUsICJtZW51IikpCisgICAgaWYgKCFu
b2RlIHx8ICFub2RlLT5yZW5kZXJlcigpIHx8ICFub2RlSGFzUm9sZShub2RlLCAibWVudSJfcykp
CiAgICAgICAgIHJldHVybjsKICAgICAKICAgICBwb3N0Tm90aWZpY2F0aW9uKGdldE9yQ3JlYXRl
KG5vZGUpLCAmZG9jdW1lbnQoKSwgQVhNZW51T3BlbmVkKTsKQEAgLTExMzQsNyArMTEzNCw3IEBA
IHZvaWQgQVhPYmplY3RDYWNoZTo6Y2hpbGRyZW5DaGFuZ2VkKEFjY2Vzc2liaWxpdHlPYmplY3Qq
IG9iamVjdCkKIAogdm9pZCBBWE9iamVjdENhY2hlOjpub3RpZmljYXRpb25Qb3N0VGltZXJGaXJl
ZCgpCiB7Ci0gICAgQVhUUkFDRSgiQVhPYmplY3RDYWNoZTo6bm90aWZpY2F0aW9uUG9zdFRpbWVy
RmlyZWQiKTsKKyAgICBBWFRSQUNFKCJBWE9iamVjdENhY2hlOjpub3RpZmljYXRpb25Qb3N0VGlt
ZXJGaXJlZCJfcyk7CiAgICAgLy8gRHVyaW5nIExheW91dFRlc3RzLCBhY2Nlc3NpYmlsaXR5IG1h
eSBiZSBkaXNhYmxlZCBiZXR3ZWVuIHRoZSB0aW1lIHRoZSBub3RpZmljYXRpb25zIGFyZSBxdWV1
ZWQgYW5kIHRoZSB0aW1lciBmaXJlcy4KICAgICAvLyBUaHVzIGNoZWNrIGhlcmUgYW5kIHJldHVy
biBpZiBhY2Nlc3NpYmlsaXR5IGlzIGRpc2FibGVkLgogICAgIGlmICghYWNjZXNzaWJpbGl0eUVu
YWJsZWQoKSkKQEAgLTExOTUsNyArMTE5NSw3IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6cGFzc3dv
cmROb3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCgpCiAgICAgYXV0byBub3RpZmljYXRpb25zID0g
c3RkOjpleGNoYW5nZShtX3Bhc3N3b3JkTm90aWZpY2F0aW9uc1RvUG9zdCwgeyB9KTsKIAogICAg
IGZvciAoYXV0byYgbm90aWZpY2F0aW9uIDogbm90aWZpY2F0aW9ucykKLSAgICAgICAgcG9zdFRl
eHRTdGF0ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbi5nZXQoKSwgQVhU
ZXh0RWRpdFR5cGVJbnNlcnQsICIgIiwgVmlzaWJsZVBvc2l0aW9uKCkpOworICAgICAgICBwb3N0
VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24obm90aWZpY2F0aW9uLmdldCgpLCBB
WFRleHRFZGl0VHlwZUluc2VydCwgIiAiX3MsIFZpc2libGVQb3NpdGlvbigpKTsKICNlbmRpZgog
fQogCkBAIC0xMjQzLDcgKzEyNDMsNyBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmlj
YXRpb24oTm9kZSogbm9kZSwgQVhOb3RpZmljYXRpb24gbm90aWZpY2F0aW9uLCBQbwogCiB2b2lk
IEFYT2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24oQVhDb3JlT2JqZWN0KiBvYmplY3QsIERv
Y3VtZW50KiBkb2N1bWVudCwgQVhOb3RpZmljYXRpb24gbm90aWZpY2F0aW9uLCBQb3N0VGFyZ2V0
IHBvc3RUYXJnZXQpCiB7Ci0gICAgQVhUUkFDRSgiQVhPYmplY3RDYWNoZTo6cG9zdE5vdGlmaWNh
dGlvbiIpOworICAgIEFYVFJBQ0UoIkFYT2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24iX3Mp
OwogICAgIEFYTE9HKHN0ZDo6bWFrZV9wYWlyKG9iamVjdCwgbm90aWZpY2F0aW9uKSk7CiAgICAg
QVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIApAQCAtMTI3Myw3ICsxMjczLDcgQEAgdm9pZCBBWE9i
amVjdENhY2hlOjpoYW5kbGVNZW51SXRlbVNlbGVjdGVkKE5vZGUqIG5vZGUpCiAgICAgaWYgKCFu
b2RlKQogICAgICAgICByZXR1cm47CiAgICAgCi0gICAgaWYgKCFub2RlSGFzUm9sZShub2RlLCAi
bWVudWl0ZW0iKSAmJiAhbm9kZUhhc1JvbGUobm9kZSwgIm1lbnVpdGVtcmFkaW8iKSAmJiAhbm9k
ZUhhc1JvbGUobm9kZSwgIm1lbnVpdGVtY2hlY2tib3giKSkKKyAgICBpZiAoIW5vZGVIYXNSb2xl
KG5vZGUsICJtZW51aXRlbSJfcykgJiYgIW5vZGVIYXNSb2xlKG5vZGUsICJtZW51aXRlbXJhZGlv
Il9zKSAmJiAhbm9kZUhhc1JvbGUobm9kZSwgIm1lbnVpdGVtY2hlY2tib3giX3MpKQogICAgICAg
ICByZXR1cm47CiAgICAgCiAgICAgaWYgKCFkb3duY2FzdDxFbGVtZW50Pigqbm9kZSkuZm9jdXNl
ZCgpICYmICFlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShkb3duY2FzdDxFbGVtZW50Pigq
bm9kZSkuYXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihhcmlhX3NlbGVjdGVkQXR0ciks
ICJ0cnVlIikpCkBAIC0xMzQ3LDggKzEzNDcsOCBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnNlbGVj
dGVkU3RhdGVDaGFuZ2VkKE5vZGUqIG5vZGUpCiB7CiAgICAgLy8gRm9yIGEgdGFibGUgY2VsbCwg
cG9zdCBBWFNlbGVjdGVkU3RhdGVDaGFuZ2VkIG9uIHRoZSBjZWxsIGl0c2VsZi4KICAgICAvLyBG
b3IgYW55IG90aGVyIGVsZW1lbnQsIHBvc3QgQVhTZWxlY3RlZENoaWxkcmVuQ2hhbmdlZCBvbiB0
aGUgcGFyZW50LgotICAgIGlmIChub2RlSGFzUm9sZShub2RlLCAiZ3JpZGNlbGwiKSB8fCBub2Rl
SGFzUm9sZShub2RlLCAiY2VsbCIpCi0gICAgICAgIHx8IG5vZGVIYXNSb2xlKG5vZGUsICJjb2x1
bW5oZWFkZXIiKSB8fCBub2RlSGFzUm9sZShub2RlLCAicm93aGVhZGVyIikpCisgICAgaWYgKG5v
ZGVIYXNSb2xlKG5vZGUsICJncmlkY2VsbCJfcykgfHwgbm9kZUhhc1JvbGUobm9kZSwgImNlbGwi
X3MpCisgICAgICAgIHx8IG5vZGVIYXNSb2xlKG5vZGUsICJjb2x1bW5oZWFkZXIiX3MpIHx8IG5v
ZGVIYXNSb2xlKG5vZGUsICJyb3doZWFkZXIiX3MpKQogICAgICAgICBwb3N0Tm90aWZpY2F0aW9u
KG5vZGUsIEFYU2VsZWN0ZWRTdGF0ZUNoYW5nZWQpOwogICAgIGVsc2UKICAgICAgICAgc2VsZWN0
ZWRDaGlsZHJlbkNoYW5nZWQobm9kZSk7CkBAIC0xNTQyLDcgKzE1NDIsNyBAQCB2b2lkIEFYT2Jq
ZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oY29uc3QgUG9zaXRpb24m
IHBvc2l0aW9uLCBjbwogCiB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VO
b3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0LCBjb25zdCBBWFRleHRTdGF0
ZUNoYW5nZUludGVudCYgaW50ZW50LCBjb25zdCBWaXNpYmxlU2VsZWN0aW9uJiBzZWxlY3Rpb24p
CiB7Ci0gICAgQVhUUkFDRSgiQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlm
aWNhdGlvbiIpOworICAgIEFYVFJBQ0UoIkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFu
Z2VOb3RpZmljYXRpb24iX3MpOwogICAgIHN0b3BDYWNoaW5nQ29tcHV0ZWRPYmplY3RBdHRyaWJ1
dGVzKCk7CiAKICNpZiBQTEFURk9STShDT0NPQSkgfHwgVVNFKEFUU1BJKQpAQCAtMTU3NCw3ICsx
NTc0LDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0
aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCwKIAogdm9pZCBBWE9iamVjdENhY2hlOjpw
b3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKE5vZGUqIG5vZGUsIEFYVGV4dEVkaXRUeXBl
IHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgVmlzaWJsZVBvc2l0aW9uJiBwb3NpdGlv
bikKIHsKLSAgICBBWFRSQUNFKCJBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90
aWZpY2F0aW9uIik7CisgICAgQVhUUkFDRSgiQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNo
YW5nZU5vdGlmaWNhdGlvbiJfcyk7CiAgICAgaWYgKCFub2RlIHx8IHR5cGUgPT0gQVhUZXh0RWRp
dFR5cGVVbmtub3duKQogICAgICAgICByZXR1cm47CiAKQEAgLTE5MTIsNyArMTkxMiw3IEBAIHZv
aWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlQXR0cmlidXRlQ2hhbmdlKGNvbnN0IFF1YWxpZmllZE5h
bWUmIGF0dHJOYW1lLCBFbGVtZW50CiAKIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlTW9kYWxD
aGFuZ2UoRWxlbWVudCYgZWxlbWVudCkKIHsKLSAgICBpZiAoIWlzPEhUTUxEaWFsb2dFbGVtZW50
PihlbGVtZW50KSAmJiAhbm9kZUhhc1JvbGUoJmVsZW1lbnQsICJkaWFsb2ciKSAmJiAhbm9kZUhh
c1JvbGUoJmVsZW1lbnQsICJhbGVydGRpYWxvZyIpKQorICAgIGlmICghaXM8SFRNTERpYWxvZ0Vs
ZW1lbnQ+KGVsZW1lbnQpICYmICFub2RlSGFzUm9sZSgmZWxlbWVudCwgImRpYWxvZyJfcykgJiYg
IW5vZGVIYXNSb2xlKCZlbGVtZW50LCAiYWxlcnRkaWFsb2ciX3MpKQogICAgICAgICByZXR1cm47
CiAKICAgICBzdG9wQ2FjaGluZ0NvbXB1dGVkT2JqZWN0QXR0cmlidXRlcygpOwpAQCAtMzI3Nyw3
ICszMjc3LDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwcm9jZXNzRGVmZXJyZWRDaGlsZHJlbkNo
YW5nZWRMaXN0KCkKIAogdm9pZCBBWE9iamVjdENhY2hlOjpwZXJmb3JtRGVmZXJyZWRDYWNoZVVw
ZGF0ZSgpCiB7Ci0gICAgQVhUUkFDRSgiQVhPYmplY3RDYWNoZTo6cGVyZm9ybURlZmVycmVkQ2Fj
aGVVcGRhdGUiKTsKKyAgICBBWFRSQUNFKCJBWE9iamVjdENhY2hlOjpwZXJmb3JtRGVmZXJyZWRD
YWNoZVVwZGF0ZSJfcyk7CiAgICAgaWYgKG1fcGVyZm9ybWluZ0RlZmVycmVkQ2FjaGVVcGRhdGUp
CiAgICAgICAgIHJldHVybjsKICAgICBTZXRGb3JTY29wZSBwZXJmb3JtaW5nRGVmZXJyZWRDYWNo
ZVVwZGF0ZShtX3BlcmZvcm1pbmdEZWZlcnJlZENhY2hlVXBkYXRlLCB0cnVlKTsKQEAgLTMzNzMs
NyArMzM3Myw3IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6dXBkYXRlSXNvbGF0ZWRUcmVlKEFYQ29y
ZU9iamVjdCYgb2JqZWN0LCBBWE5vdGlmaWNhdGlvbiBub3RpCiAKIHZvaWQgQVhPYmplY3RDYWNo
ZTo6dXBkYXRlSXNvbGF0ZWRUcmVlKGNvbnN0IFZlY3RvcjxzdGQ6OnBhaXI8UmVmUHRyPEFYQ29y
ZU9iamVjdD4sIEFYTm90aWZpY2F0aW9uPj4mIG5vdGlmaWNhdGlvbnMpCiB7Ci0gICAgQVhUUkFD
RSgiQVhPYmplY3RDYWNoZTo6dXBkYXRlSXNvbGF0ZWRUcmVlIik7CisgICAgQVhUUkFDRSgiQVhP
YmplY3RDYWNoZTo6dXBkYXRlSXNvbGF0ZWRUcmVlIl9zKTsKICAgICBBWExPRygqdGhpcyk7CiAK
ICAgICBpZiAoIW1fcGFnZUlEKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCmluZGV4IDE0MjkxMzcyY2ZjNDZj
MWRlMjJlODM4Y2QyMjU5ZjcwOTNmZGE0MDguLmIyZDhjNDk3MGYyYWQ2ZTM0MGVkYTVkNzNmOTQx
YTEyODY1NmYyM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCkBAIC0yMzcsNyArMjM3LDcgQEAgRG9jdW1l
bnQqIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojpkb2N1bWVudCgpIGNvbnN0CiAKIEFjY2Vzc2li
aWxpdHlSb2xlIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpkZXRlcm1pbmVBY2Nlc3NpYmlsaXR5
Um9sZSgpCiB7Ci0gICAgQVhUUkFDRSgiQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmRldGVybWlu
ZUFjY2Vzc2liaWxpdHlSb2xlIik7CisgICAgQVhUUkFDRSgiQWNjZXNzaWJpbGl0eU5vZGVPYmpl
Y3Q6OmRldGVybWluZUFjY2Vzc2liaWxpdHlSb2xlIl9zKTsKICAgICBpZiAoKG1fYXJpYVJvbGUg
PSBkZXRlcm1pbmVBcmlhUm9sZUF0dHJpYnV0ZSgpKSAhPSBBY2Nlc3NpYmlsaXR5Um9sZTo6VW5r
bm93bikKICAgICAgICAgcmV0dXJuIG1fYXJpYVJvbGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCmluZGV4IDM0ZjE1ZjI1
NjQ1NjNmOWM5MjMzNTgyMWJlYWVkZmIwOTk0YjhiYWUuLmJmYmU0MmYzZDhjMmRjMzdlOWU3NWZk
NjM2MzY0MWYzYzk3OTFlODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcApAQCAtMTcyOSw3ICsxNzI5LDcgQEAgYm9vbCBB
Y2Nlc3NpYmlsaXR5T2JqZWN0OjpzdXBwb3J0c1JlYWRPbmx5KCkgY29uc3QKIFN0cmluZyBBY2Nl
c3NpYmlsaXR5T2JqZWN0OjpyZWFkT25seVZhbHVlKCkgY29uc3QKIHsKICAgICBpZiAoIWhhc0F0
dHJpYnV0ZShhcmlhX3JlYWRvbmx5QXR0cikpCi0gICAgICAgIHJldHVybiBhcmlhUm9sZUF0dHJp
YnV0ZSgpICE9IEFjY2Vzc2liaWxpdHlSb2xlOjpVbmtub3duICYmIHN1cHBvcnRzUmVhZE9ubHko
KSA/ICJmYWxzZSIgOiBTdHJpbmcoKTsKKyAgICAgICAgcmV0dXJuIGFyaWFSb2xlQXR0cmlidXRl
KCkgIT0gQWNjZXNzaWJpbGl0eVJvbGU6OlVua25vd24gJiYgc3VwcG9ydHNSZWFkT25seSgpID8g
ImZhbHNlIl9zIDogU3RyaW5nKCk7CiAKICAgICByZXR1cm4gZ2V0QXR0cmlidXRlKGFyaWFfcmVh
ZG9ubHlBdHRyKS5zdHJpbmcoKS5jb252ZXJ0VG9BU0NJSUxvd2VyY2FzZSgpOwogfQpAQCAtMTc1
Nyw3ICsxNzU3LDcgQEAgU3RyaW5nIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmF1dG9Db21wbGV0ZVZh
bHVlKCkgY29uc3QKICAgICAgICAgfHwgZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoYXV0
b0NvbXBsZXRlLCAiYm90aCIpKQogICAgICAgICByZXR1cm4gYXV0b0NvbXBsZXRlOwogCi0gICAg
cmV0dXJuICJub25lIjsKKyAgICByZXR1cm4gIm5vbmUiX3M7CiB9CiAKIGJvb2wgQWNjZXNzaWJp
bGl0eU9iamVjdDo6Y29udGVudEVkaXRhYmxlQXR0cmlidXRlSXNFbmFibGVkKEVsZW1lbnQqIGVs
ZW1lbnQpCkBAIC0yMjMzLDIwICsyMjMzLDIwIEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5T2JqZWN0
OjpjdXJyZW50VmFsdWUoKSBjb25zdAogewogICAgIHN3aXRjaCAoY3VycmVudFN0YXRlKCkpIHsK
ICAgICBjYXNlIEFjY2Vzc2liaWxpdHlDdXJyZW50U3RhdGU6OkZhbHNlOgotICAgICAgICByZXR1
cm4gImZhbHNlIjsKKyAgICAgICAgcmV0dXJuICJmYWxzZSJfczsKICAgICBjYXNlIEFjY2Vzc2li
aWxpdHlDdXJyZW50U3RhdGU6OlBhZ2U6Ci0gICAgICAgIHJldHVybiAicGFnZSI7CisgICAgICAg
IHJldHVybiAicGFnZSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlDdXJyZW50U3RhdGU6OlN0
ZXA6Ci0gICAgICAgIHJldHVybiAic3RlcCI7CisgICAgICAgIHJldHVybiAic3RlcCJfczsKICAg
ICBjYXNlIEFjY2Vzc2liaWxpdHlDdXJyZW50U3RhdGU6OkxvY2F0aW9uOgotICAgICAgICByZXR1
cm4gImxvY2F0aW9uIjsKKyAgICAgICAgcmV0dXJuICJsb2NhdGlvbiJfczsKICAgICBjYXNlIEFj
Y2Vzc2liaWxpdHlDdXJyZW50U3RhdGU6OlRpbWU6Ci0gICAgICAgIHJldHVybiAidGltZSI7Cisg
ICAgICAgIHJldHVybiAidGltZSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlDdXJyZW50U3Rh
dGU6OkRhdGU6Ci0gICAgICAgIHJldHVybiAiZGF0ZSI7CisgICAgICAgIHJldHVybiAiZGF0ZSJf
czsKICAgICBkZWZhdWx0OgogICAgIGNhc2UgQWNjZXNzaWJpbGl0eUN1cnJlbnRTdGF0ZTo6VHJ1
ZToKLSAgICAgICAgcmV0dXJuICJ0cnVlIjsKKyAgICAgICAgcmV0dXJuICJ0cnVlIl9zOwogICAg
IH0KIH0KIApAQCAtMjM1NSwxMSArMjM1NSwxMSBAQCBib29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6
OnJlcGxhY2VUZXh0SW5SYW5nZShjb25zdCBTdHJpbmcmIHJlcGxhY2VtZW50U3RyaW5nLCBjbwog
ICAgIH0KICAgICAKICAgICBpZiAoaXM8SFRNTElucHV0RWxlbWVudD4oZWxlbWVudCkpIHsKLSAg
ICAgICAgZG93bmNhc3Q8SFRNTElucHV0RWxlbWVudD4oZWxlbWVudCkuc2V0UmFuZ2VUZXh0KHJl
cGxhY2VtZW50U3RyaW5nLCByYW5nZS5zdGFydCwgcmFuZ2UubGVuZ3RoLCAiIik7CisgICAgICAg
IGRvd25jYXN0PEhUTUxJbnB1dEVsZW1lbnQ+KGVsZW1lbnQpLnNldFJhbmdlVGV4dChyZXBsYWNl
bWVudFN0cmluZywgcmFuZ2Uuc3RhcnQsIHJhbmdlLmxlbmd0aCwgZW1wdHlTdHJpbmcoKSk7CiAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KICAgICBpZiAoaXM8SFRNTFRleHRBcmVhRWxlbWVu
dD4oZWxlbWVudCkpIHsKLSAgICAgICAgZG93bmNhc3Q8SFRNTFRleHRBcmVhRWxlbWVudD4oZWxl
bWVudCkuc2V0UmFuZ2VUZXh0KHJlcGxhY2VtZW50U3RyaW5nLCByYW5nZS5zdGFydCwgcmFuZ2Uu
bGVuZ3RoLCAiIik7CisgICAgICAgIGRvd25jYXN0PEhUTUxUZXh0QXJlYUVsZW1lbnQ+KGVsZW1l
bnQpLnNldFJhbmdlVGV4dChyZXBsYWNlbWVudFN0cmluZywgcmFuZ2Uuc3RhcnQsIHJhbmdlLmxl
bmd0aCwgZW1wdHlTdHJpbmcoKSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIApAQCAt
MjU5NCw3ICsyNTk0LDcgQEAgU3RyaW5nIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmNvbXB1dGVkUm9s
ZVN0cmluZygpIGNvbnN0CiAKICAgICAvLyBXZSBkbyBub3QgY29tcHV0ZSBhIHJvbGUgc3RyaW5n
IGZvciBnZW5lcmljIGJsb2NrIGVsZW1lbnRzIHdpdGggdXNlci1hZ2VudCBhc3NpZ25lZCByb2xl
cy4KICAgICBpZiAocm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6R3JvdXAgfHwgcm9sZSA9PSBB
Y2Nlc3NpYmlsaXR5Um9sZTo6VGV4dEdyb3VwKQotICAgICAgICByZXR1cm4gIiI7CisgICAgICAg
IHJldHVybiBlbXB0eVN0cmluZygpOwogCiAgICAgLy8gV2UgZG8gY29tcHV0ZSBhIHJvbGUgc3Ry
aW5nIGZvciBibG9jayBlbGVtZW50cyB3aXRoIGF1dGhvci1wcm92aWRlZCByb2xlcy4KICAgICBp
ZiAocm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb25UZXh0R3JvdXAKQEAgLTI3
MjUsNyArMjcyNSw3IEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojpyb2xlRGVzY3JpcHRp
b24oKSBjb25zdAogCiBib29sIG5vZGVIYXNQcmVzZW50YXRpb25Sb2xlKE5vZGUqIG5vZGUpCiB7
Ci0gICAgcmV0dXJuIG5vZGVIYXNSb2xlKG5vZGUsICJwcmVzZW50YXRpb24iKSB8fCBub2RlSGFz
Um9sZShub2RlLCAibm9uZSIpOworICAgIHJldHVybiBub2RlSGFzUm9sZShub2RlLCAicHJlc2Vu
dGF0aW9uIl9zKSB8fCBub2RlSGFzUm9sZShub2RlLCAibm9uZSJfcyk7CiB9CiAgICAgCiBib29s
IEFjY2Vzc2liaWxpdHlPYmplY3Q6OnN1cHBvcnRzUHJlc3NBY3Rpb24oKSBjb25zdApAQCAtMzIx
MCwxMCArMzIxMCwxMCBAQCBIYXNoTWFwPFN0cmluZywgQVhFZGl0aW5nU3R5bGVWYWx1ZVZhcmlh
bnQ+IEFjY2Vzc2liaWxpdHlPYmplY3Q6OnJlc29sdmVkRWRpdGluZwogICAgICAgICByZXR1cm4g
eyB9OwogCiAgICAgSGFzaE1hcDxTdHJpbmcsIEFYRWRpdGluZ1N0eWxlVmFsdWVWYXJpYW50PiBz
dHlsZXM7Ci0gICAgc3R5bGVzLmFkZCgiYm9sZCIsIHNlbGVjdGlvblN0eWxlLT5oYXNTdHlsZShD
U1NQcm9wZXJ0eUZvbnRXZWlnaHQsICJib2xkIikpOwotICAgIHN0eWxlcy5hZGQoIml0YWxpYyIs
IHNlbGVjdGlvblN0eWxlLT5oYXNTdHlsZShDU1NQcm9wZXJ0eUZvbnRTdHlsZSwgIml0YWxpYyIp
KTsKLSAgICBzdHlsZXMuYWRkKCJ1bmRlcmxpbmUiLCBzZWxlY3Rpb25TdHlsZS0+aGFzU3R5bGUo
Q1NTUHJvcGVydHlXZWJraXRUZXh0RGVjb3JhdGlvbnNJbkVmZmVjdCwgInVuZGVybGluZSIpKTsK
LSAgICBzdHlsZXMuYWRkKCJmb250c2l6ZSIsIHNlbGVjdGlvblN0eWxlLT5sZWdhY3lGb250U2l6
ZSgqZG9jdW1lbnQpKTsKKyAgICBzdHlsZXMuYWRkKCJib2xkIl9zLCBzZWxlY3Rpb25TdHlsZS0+
aGFzU3R5bGUoQ1NTUHJvcGVydHlGb250V2VpZ2h0LCAiYm9sZCJfcykpOworICAgIHN0eWxlcy5h
ZGQoIml0YWxpYyJfcywgc2VsZWN0aW9uU3R5bGUtPmhhc1N0eWxlKENTU1Byb3BlcnR5Rm9udFN0
eWxlLCAiaXRhbGljIl9zKSk7CisgICAgc3R5bGVzLmFkZCgidW5kZXJsaW5lIl9zLCBzZWxlY3Rp
b25TdHlsZS0+aGFzU3R5bGUoQ1NTUHJvcGVydHlXZWJraXRUZXh0RGVjb3JhdGlvbnNJbkVmZmVj
dCwgInVuZGVybGluZSJfcykpOworICAgIHN0eWxlcy5hZGQoImZvbnRzaXplIl9zLCBzZWxlY3Rp
b25TdHlsZS0+bGVnYWN5Rm9udFNpemUoKmRvY3VtZW50KSk7CiAgICAgcmV0dXJuIHN0eWxlczsK
IH0KIApAQCAtNDA4OCw3ICs0MDg4LDcgQEAgc3RhdGljIGJvb2wgaXNSYWRpb0J1dHRvbkluRGlm
ZmVyZW50QWRob2NHcm91cChSZWZQdHI8QVhDb3JlT2JqZWN0PiBheE9iamVjdCwgQVgKICAgICBp
ZiAoIXJlZmVyZW5jZU9iamVjdCB8fCAhcmVmZXJlbmNlT2JqZWN0LT5pc1JhZGlvQnV0dG9uKCkp
CiAgICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgcmV0dXJuIGF4T2JqZWN0LT5hdHRyaWJ1dGVW
YWx1ZSgibmFtZSIpICE9IHJlZmVyZW5jZU9iamVjdC0+YXR0cmlidXRlVmFsdWUoIm5hbWUiKTsK
KyAgICByZXR1cm4gYXhPYmplY3QtPmF0dHJpYnV0ZVZhbHVlKCJuYW1lIl9zKSAhPSByZWZlcmVu
Y2VPYmplY3QtPmF0dHJpYnV0ZVZhbHVlKCJuYW1lIl9zKTsKIH0KIAogc3RhdGljIGJvb2wgaXNB
Y2Nlc3NpYmlsaXR5T2JqZWN0U2VhcmNoTWF0Y2hBdEluZGV4KFJlZlB0cjxBWENvcmVPYmplY3Q+
IGF4T2JqZWN0LCBBY2Nlc3NpYmlsaXR5U2VhcmNoQ3JpdGVyaWEgY29uc3QmIGNyaXRlcmlhLCBz
aXplX3QgaW5kZXgpCkBAIC00Mjk1LDcgKzQyOTUsNyBAQCBzdGF0aWMgdm9pZCBhcHBlbmRDaGls
ZHJlblRvQXJyYXkoUmVmUHRyPEFYQ29yZU9iamVjdD4gb2JqZWN0LCBib29sIGlzRm9yd2FyZCwg
UgogCiB2b2lkIGZpbmRNYXRjaGluZ09iamVjdHMoQWNjZXNzaWJpbGl0eVNlYXJjaENyaXRlcmlh
IGNvbnN0JiBjcml0ZXJpYSwgQVhDb3JlT2JqZWN0OjpBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5WZWN0
b3ImIHJlc3VsdHMpCiB7Ci0gICAgQVhUUkFDRSgiQWNjZXNzaWJpbGl0eTo6ZmluZE1hdGNoaW5n
T2JqZWN0cyIpOworICAgIEFYVFJBQ0UoIkFjY2Vzc2liaWxpdHk6OmZpbmRNYXRjaGluZ09iamVj
dHMiX3MpOwogICAgIEFYTE9HKGNyaXRlcmlhKTsKIAogICAgIC8vIFRoaXMgc2VhcmNoIGFsZ29y
aXRobSBvbmx5IHNlYXJjaGVzIHRoZSBlbGVtZW50cyBiZWZvcmUvYWZ0ZXIgdGhlIHN0YXJ0aW5n
IG9iamVjdC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNz
aWJpbGl0eU9iamVjdEludGVyZmFjZS5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgKaW5kZXggNDZmNjAyODAyYTc2MjFjMDg2ZjUx
NDVkMGE3MGVjZTZiZmI4MjdjZi4uZTBiZGRkOTMxYzRkMjQxZWQ3NzgwNDNlOWIyNDFmMTI5ZTNm
ZWQ3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5T2JqZWN0SW50ZXJmYWNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmgKQEAgLTI2NCwzMTIgKzI2NCwzMTIgQEAgQUxX
QVlTX0lOTElORSBTdHJpbmcgYWNjZXNzaWJpbGl0eVJvbGVUb1N0cmluZyhBY2Nlc3NpYmlsaXR5
Um9sZSByb2xlKQogewogICAgIHN3aXRjaCAocm9sZSkgewogICAgIGNhc2UgQWNjZXNzaWJpbGl0
eVJvbGU6OkFubm90YXRpb246Ci0gICAgICAgIHJldHVybiAiQW5ub3RhdGlvbiI7CisgICAgICAg
IHJldHVybiAiQW5ub3RhdGlvbiJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBs
aWNhdGlvbjoKLSAgICAgICAgcmV0dXJuICJBcHBsaWNhdGlvbiI7CisgICAgICAgIHJldHVybiAi
QXBwbGljYXRpb24iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb25B
bGVydDoKLSAgICAgICAgcmV0dXJuICJBcHBsaWNhdGlvbkFsZXJ0IjsKKyAgICAgICAgcmV0dXJu
ICJBcHBsaWNhdGlvbkFsZXJ0Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxp
Y2F0aW9uQWxlcnREaWFsb2c6Ci0gICAgICAgIHJldHVybiAiQXBwbGljYXRpb25BbGVydERpYWxv
ZyI7CisgICAgICAgIHJldHVybiAiQXBwbGljYXRpb25BbGVydERpYWxvZyJfczsKICAgICBjYXNl
IEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvbkRpYWxvZzoKLSAgICAgICAgcmV0dXJuICJB
cHBsaWNhdGlvbkRpYWxvZyI7CisgICAgICAgIHJldHVybiAiQXBwbGljYXRpb25EaWFsb2ciX3M7
CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb25Hcm91cDoKLSAgICAgICAg
cmV0dXJuICJBcHBsaWNhdGlvbkdyb3VwIjsKKyAgICAgICAgcmV0dXJuICJBcHBsaWNhdGlvbkdy
b3VwIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uTG9nOgotICAg
ICAgICByZXR1cm4gIkFwcGxpY2F0aW9uTG9nIjsKKyAgICAgICAgcmV0dXJuICJBcHBsaWNhdGlv
bkxvZyJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvbk1hcnF1ZWU6
Ci0gICAgICAgIHJldHVybiAiQXBwbGljYXRpb25NYXJxdWVlIjsKKyAgICAgICAgcmV0dXJuICJB
cHBsaWNhdGlvbk1hcnF1ZWUiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGlj
YXRpb25TdGF0dXM6Ci0gICAgICAgIHJldHVybiAiQXBwbGljYXRpb25TdGF0dXMiOworICAgICAg
ICByZXR1cm4gIkFwcGxpY2F0aW9uU3RhdHVzIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJv
bGU6OkFwcGxpY2F0aW9uVGV4dEdyb3VwOgotICAgICAgICByZXR1cm4gIkFwcGxpY2F0aW9uVGV4
dEdyb3VwIjsKKyAgICAgICAgcmV0dXJuICJBcHBsaWNhdGlvblRleHRHcm91cCJfczsKICAgICBj
YXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvblRpbWVyOgotICAgICAgICByZXR1cm4g
IkFwcGxpY2F0aW9uVGltZXIiOworICAgICAgICByZXR1cm4gIkFwcGxpY2F0aW9uVGltZXIiX3M7
CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXVkaW86Ci0gICAgICAgIHJldHVybiAiQXVk
aW8iOworICAgICAgICByZXR1cm4gIkF1ZGlvIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJv
bGU6OkJsb2NrcXVvdGU6Ci0gICAgICAgIHJldHVybiAiQmxvY2txdW90ZSI7CisgICAgICAgIHJl
dHVybiAiQmxvY2txdW90ZSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpCcm93c2Vy
OgotICAgICAgICByZXR1cm4gIkJyb3dzZXIiOworICAgICAgICByZXR1cm4gIkJyb3dzZXIiX3M7
CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QnVzeUluZGljYXRvcjoKLSAgICAgICAgcmV0
dXJuICJCdXN5SW5kaWNhdG9yIjsKKyAgICAgICAgcmV0dXJuICJCdXN5SW5kaWNhdG9yIl9zOwog
ICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkJ1dHRvbjoKLSAgICAgICAgcmV0dXJuICJCdXR0
b24iOworICAgICAgICByZXR1cm4gIkJ1dHRvbiJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlS
b2xlOjpDYW52YXM6Ci0gICAgICAgIHJldHVybiAiQ2FudmFzIjsKKyAgICAgICAgcmV0dXJuICJD
YW52YXMiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6Q2FwdGlvbjoKLSAgICAgICAg
cmV0dXJuICJDYXB0aW9uIjsKKyAgICAgICAgcmV0dXJuICJDYXB0aW9uIl9zOwogICAgIGNhc2Ug
QWNjZXNzaWJpbGl0eVJvbGU6OkNlbGw6Ci0gICAgICAgIHJldHVybiAiQ2VsbCI7CisgICAgICAg
IHJldHVybiAiQ2VsbCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpDaGVja0JveDoK
LSAgICAgICAgcmV0dXJuICJDaGVja0JveCI7CisgICAgICAgIHJldHVybiAiQ2hlY2tCb3giX3M7
CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6Q29sb3JXZWxsOgotICAgICAgICByZXR1cm4g
IkNvbG9yV2VsbCI7CisgICAgICAgIHJldHVybiAiQ29sb3JXZWxsIl9zOwogICAgIGNhc2UgQWNj
ZXNzaWJpbGl0eVJvbGU6OkNvbHVtbjoKLSAgICAgICAgcmV0dXJuICJDb2x1bW4iOworICAgICAg
ICByZXR1cm4gIkNvbHVtbiJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpDb2x1bW5I
ZWFkZXI6Ci0gICAgICAgIHJldHVybiAiQ29sdW1uSGVhZGVyIjsKKyAgICAgICAgcmV0dXJuICJD
b2x1bW5IZWFkZXIiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6Q29tYm9Cb3g6Ci0g
ICAgICAgIHJldHVybiAiQ29tYm9Cb3giOworICAgICAgICByZXR1cm4gIkNvbWJvQm94Il9zOwog
ICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRlZmluaXRpb246Ci0gICAgICAgIHJldHVybiAi
RGVmaW5pdGlvbiI7CisgICAgICAgIHJldHVybiAiRGVmaW5pdGlvbiJfczsKICAgICBjYXNlIEFj
Y2Vzc2liaWxpdHlSb2xlOjpEZWxldGlvbjoKLSAgICAgICAgcmV0dXJuICJEZWxldGlvbiI7Cisg
ICAgICAgIHJldHVybiAiRGVsZXRpb24iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6
RGVzY3JpcHRpb25MaXN0OgotICAgICAgICByZXR1cm4gIkRlc2NyaXB0aW9uTGlzdCI7CisgICAg
ICAgIHJldHVybiAiRGVzY3JpcHRpb25MaXN0Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJv
bGU6OkRlc2NyaXB0aW9uTGlzdFRlcm06Ci0gICAgICAgIHJldHVybiAiRGVzY3JpcHRpb25MaXN0
VGVybSI7CisgICAgICAgIHJldHVybiAiRGVzY3JpcHRpb25MaXN0VGVybSJfczsKICAgICBjYXNl
IEFjY2Vzc2liaWxpdHlSb2xlOjpEZXNjcmlwdGlvbkxpc3REZXRhaWw6Ci0gICAgICAgIHJldHVy
biAiRGVzY3JpcHRpb25MaXN0RGV0YWlsIjsKKyAgICAgICAgcmV0dXJuICJEZXNjcmlwdGlvbkxp
c3REZXRhaWwiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RGV0YWlsczoKLSAgICAg
ICAgcmV0dXJuICJEZXRhaWxzIjsKKyAgICAgICAgcmV0dXJuICJEZXRhaWxzIl9zOwogICAgIGNh
c2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRpcmVjdG9yeToKLSAgICAgICAgcmV0dXJuICJEaXJlY3Rv
cnkiOworICAgICAgICByZXR1cm4gIkRpcmVjdG9yeSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxp
dHlSb2xlOjpEaXNjbG9zdXJlVHJpYW5nbGU6Ci0gICAgICAgIHJldHVybiAiRGlzY2xvc3VyZVRy
aWFuZ2xlIjsKKyAgICAgICAgcmV0dXJuICJEaXNjbG9zdXJlVHJpYW5nbGUiX3M7CiAgICAgY2Fz
ZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RGl2OgotICAgICAgICByZXR1cm4gIkRpdiI7CisgICAgICAg
IHJldHVybiAiRGl2Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRvY3VtZW50Ogot
ICAgICAgICByZXR1cm4gIkRvY3VtZW50IjsKKyAgICAgICAgcmV0dXJuICJEb2N1bWVudCJfczsK
ICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpEb2N1bWVudEFydGljbGU6Ci0gICAgICAgIHJl
dHVybiAiRG9jdW1lbnRBcnRpY2xlIjsKKyAgICAgICAgcmV0dXJuICJEb2N1bWVudEFydGljbGUi
X3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RG9jdW1lbnRNYXRoOgotICAgICAgICBy
ZXR1cm4gIkRvY3VtZW50TWF0aCI7CisgICAgICAgIHJldHVybiAiRG9jdW1lbnRNYXRoIl9zOwog
ICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRvY3VtZW50Tm90ZToKLSAgICAgICAgcmV0dXJu
ICJEb2N1bWVudE5vdGUiOworICAgICAgICByZXR1cm4gIkRvY3VtZW50Tm90ZSJfczsKICAgICBj
YXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpEcmF3ZXI6Ci0gICAgICAgIHJldHVybiAiRHJhd2VyIjsK
KyAgICAgICAgcmV0dXJuICJEcmF3ZXIiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6
RWRpdGFibGVUZXh0OgotICAgICAgICByZXR1cm4gIkVkaXRhYmxlVGV4dCI7CisgICAgICAgIHJl
dHVybiAiRWRpdGFibGVUZXh0Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkZlZWQ6
Ci0gICAgICAgIHJldHVybiAiRmVlZCI7CisgICAgICAgIHJldHVybiAiRmVlZCJfczsKICAgICBj
YXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpGaWd1cmU6Ci0gICAgICAgIHJldHVybiAiRmlndXJlIjsK
KyAgICAgICAgcmV0dXJuICJGaWd1cmUiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6
Rm9vdGVyOgotICAgICAgICByZXR1cm4gIkZvb3RlciI7CisgICAgICAgIHJldHVybiAiRm9vdGVy
Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkZvb3Rub3RlOgotICAgICAgICByZXR1
cm4gIkZvb3Rub3RlIjsKKyAgICAgICAgcmV0dXJuICJGb290bm90ZSJfczsKICAgICBjYXNlIEFj
Y2Vzc2liaWxpdHlSb2xlOjpGb3JtOgotICAgICAgICByZXR1cm4gIkZvcm0iOworICAgICAgICBy
ZXR1cm4gIkZvcm0iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6R3JhcGhpY3NEb2N1
bWVudDoKLSAgICAgICAgcmV0dXJuICJHcmFwaGljc0RvY3VtZW50IjsKKyAgICAgICAgcmV0dXJu
ICJHcmFwaGljc0RvY3VtZW50Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkdyYXBo
aWNzT2JqZWN0OgotICAgICAgICByZXR1cm4gIkdyYXBoaWNzT2JqZWN0IjsKKyAgICAgICAgcmV0
dXJuICJHcmFwaGljc09iamVjdCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpHcmFw
aGljc1N5bWJvbDoKLSAgICAgICAgcmV0dXJuICJHcmFwaGljc1N5bWJvbCI7CisgICAgICAgIHJl
dHVybiAiR3JhcGhpY3NTeW1ib2wiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6R3Jp
ZDoKLSAgICAgICAgcmV0dXJuICJHcmlkIjsKKyAgICAgICAgcmV0dXJuICJHcmlkIl9zOwogICAg
IGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkdyaWRDZWxsOgotICAgICAgICByZXR1cm4gIkdyaWRD
ZWxsIjsKKyAgICAgICAgcmV0dXJuICJHcmlkQ2VsbCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxp
dHlSb2xlOjpHcm91cDoKLSAgICAgICAgcmV0dXJuICJHcm91cCI7CisgICAgICAgIHJldHVybiAi
R3JvdXAiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6R3Jvd0FyZWE6Ci0gICAgICAg
IHJldHVybiAiR3Jvd0FyZWEiOworICAgICAgICByZXR1cm4gIkdyb3dBcmVhIl9zOwogICAgIGNh
c2UgQWNjZXNzaWJpbGl0eVJvbGU6OkhlYWRpbmc6Ci0gICAgICAgIHJldHVybiAiSGVhZGluZyI7
CisgICAgICAgIHJldHVybiAiSGVhZGluZyJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xl
OjpIZWxwVGFnOgotICAgICAgICByZXR1cm4gIkhlbHBUYWciOworICAgICAgICByZXR1cm4gIkhl
bHBUYWciX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6SG9yaXpvbnRhbFJ1bGU6Ci0g
ICAgICAgIHJldHVybiAiSG9yaXpvbnRhbFJ1bGUiOworICAgICAgICByZXR1cm4gIkhvcml6b250
YWxSdWxlIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Oklnbm9yZWQ6Ci0gICAgICAg
IHJldHVybiAiSWdub3JlZCI7CisgICAgICAgIHJldHVybiAiSWdub3JlZCJfczsKICAgICBjYXNl
IEFjY2Vzc2liaWxpdHlSb2xlOjpJbmxpbmU6Ci0gICAgICAgIHJldHVybiAiSW5saW5lIjsKKyAg
ICAgICAgcmV0dXJuICJJbmxpbmUiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6SW1h
Z2U6Ci0gICAgICAgIHJldHVybiAiSW1hZ2UiOworICAgICAgICByZXR1cm4gIkltYWdlIl9zOwog
ICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkltYWdlTWFwOgotICAgICAgICByZXR1cm4gIklt
YWdlTWFwIjsKKyAgICAgICAgcmV0dXJuICJJbWFnZU1hcCJfczsKICAgICBjYXNlIEFjY2Vzc2li
aWxpdHlSb2xlOjpJbWFnZU1hcExpbms6Ci0gICAgICAgIHJldHVybiAiSW1hZ2VNYXBMaW5rIjsK
KyAgICAgICAgcmV0dXJuICJJbWFnZU1hcExpbmsiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5
Um9sZTo6SW5jcmVtZW50b3I6Ci0gICAgICAgIHJldHVybiAiSW5jcmVtZW50b3IiOworICAgICAg
ICByZXR1cm4gIkluY3JlbWVudG9yIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Oklu
c2VydGlvbjoKLSAgICAgICAgcmV0dXJuICJJbnNlcnRpb24iOworICAgICAgICByZXR1cm4gIklu
c2VydGlvbiJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpMYWJlbDoKLSAgICAgICAg
cmV0dXJuICJMYWJlbCI7CisgICAgICAgIHJldHVybiAiTGFiZWwiX3M7CiAgICAgY2FzZSBBY2Nl
c3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtCYW5uZXI6Ci0gICAgICAgIHJldHVybiAiTGFuZG1hcmtC
YW5uZXIiOworICAgICAgICByZXR1cm4gIkxhbmRtYXJrQmFubmVyIl9zOwogICAgIGNhc2UgQWNj
ZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJrQ29tcGxlbWVudGFyeToKLSAgICAgICAgcmV0dXJuICJM
YW5kbWFya0NvbXBsZW1lbnRhcnkiOworICAgICAgICByZXR1cm4gIkxhbmRtYXJrQ29tcGxlbWVu
dGFyeSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpMYW5kbWFya0NvbnRlbnRJbmZv
OgotICAgICAgICByZXR1cm4gIkxhbmRtYXJrQ29udGVudEluZm8iOworICAgICAgICByZXR1cm4g
IkxhbmRtYXJrQ29udGVudEluZm8iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFu
ZG1hcmtEb2NSZWdpb246Ci0gICAgICAgIHJldHVybiAiTGFuZG1hcmtEb2NSZWdpb24iOworICAg
ICAgICByZXR1cm4gIkxhbmRtYXJrRG9jUmVnaW9uIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0
eVJvbGU6OkxhbmRtYXJrTWFpbjoKLSAgICAgICAgcmV0dXJuICJMYW5kbWFya01haW4iOworICAg
ICAgICByZXR1cm4gIkxhbmRtYXJrTWFpbiJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xl
OjpMYW5kbWFya05hdmlnYXRpb246Ci0gICAgICAgIHJldHVybiAiTGFuZG1hcmtOYXZpZ2F0aW9u
IjsKKyAgICAgICAgcmV0dXJuICJMYW5kbWFya05hdmlnYXRpb24iX3M7CiAgICAgY2FzZSBBY2Nl
c3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtSZWdpb246Ci0gICAgICAgIHJldHVybiAiTGFuZG1hcmtS
ZWdpb24iOworICAgICAgICByZXR1cm4gIkxhbmRtYXJrUmVnaW9uIl9zOwogICAgIGNhc2UgQWNj
ZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJrU2VhcmNoOgotICAgICAgICByZXR1cm4gIkxhbmRtYXJr
U2VhcmNoIjsKKyAgICAgICAgcmV0dXJuICJMYW5kbWFya1NlYXJjaCJfczsKICAgICBjYXNlIEFj
Y2Vzc2liaWxpdHlSb2xlOjpMZWdlbmQ6Ci0gICAgICAgIHJldHVybiAiTGVnZW5kIjsKKyAgICAg
ICAgcmV0dXJuICJMZWdlbmQiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGluazoK
LSAgICAgICAgcmV0dXJuICJMaW5rIjsKKyAgICAgICAgcmV0dXJuICJMaW5rIl9zOwogICAgIGNh
c2UgQWNjZXNzaWJpbGl0eVJvbGU6Okxpc3Q6Ci0gICAgICAgIHJldHVybiAiTGlzdCI7CisgICAg
ICAgIHJldHVybiAiTGlzdCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpMaXN0Qm94
OgotICAgICAgICByZXR1cm4gIkxpc3RCb3giOworICAgICAgICByZXR1cm4gIkxpc3RCb3giX3M7
CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGlzdEJveE9wdGlvbjoKLSAgICAgICAgcmV0
dXJuICJMaXN0Qm94T3B0aW9uIjsKKyAgICAgICAgcmV0dXJuICJMaXN0Qm94T3B0aW9uIl9zOwog
ICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Okxpc3RJdGVtOgotICAgICAgICByZXR1cm4gIkxp
c3RJdGVtIjsKKyAgICAgICAgcmV0dXJuICJMaXN0SXRlbSJfczsKICAgICBjYXNlIEFjY2Vzc2li
aWxpdHlSb2xlOjpMaXN0TWFya2VyOgotICAgICAgICByZXR1cm4gIkxpc3RNYXJrZXIiOworICAg
ICAgICByZXR1cm4gIkxpc3RNYXJrZXIiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6
TWFyazoKLSAgICAgICAgcmV0dXJuICJNYXJrIjsKKyAgICAgICAgcmV0dXJuICJNYXJrIl9zOwog
ICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Ok1hdGhFbGVtZW50OgotICAgICAgICByZXR1cm4g
Ik1hdGhFbGVtZW50IjsKKyAgICAgICAgcmV0dXJuICJNYXRoRWxlbWVudCJfczsKICAgICBjYXNl
IEFjY2Vzc2liaWxpdHlSb2xlOjpNYXR0ZToKLSAgICAgICAgcmV0dXJuICJNYXR0ZSI7CisgICAg
ICAgIHJldHVybiAiTWF0dGUiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TWVudToK
LSAgICAgICAgcmV0dXJuICJNZW51IjsKKyAgICAgICAgcmV0dXJuICJNZW51Il9zOwogICAgIGNh
c2UgQWNjZXNzaWJpbGl0eVJvbGU6Ok1lbnVCYXI6Ci0gICAgICAgIHJldHVybiAiTWVudUJhciI7
CisgICAgICAgIHJldHVybiAiTWVudUJhciJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xl
OjpNZW51QnV0dG9uOgotICAgICAgICByZXR1cm4gIk1lbnVCdXR0b24iOworICAgICAgICByZXR1
cm4gIk1lbnVCdXR0b24iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TWVudUl0ZW06
Ci0gICAgICAgIHJldHVybiAiTWVudUl0ZW0iOworICAgICAgICByZXR1cm4gIk1lbnVJdGVtIl9z
OwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Ok1lbnVJdGVtQ2hlY2tib3g6Ci0gICAgICAg
IHJldHVybiAiTWVudUl0ZW1DaGVja2JveCI7CisgICAgICAgIHJldHVybiAiTWVudUl0ZW1DaGVj
a2JveCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpNZW51SXRlbVJhZGlvOgotICAg
ICAgICByZXR1cm4gIk1lbnVJdGVtUmFkaW8iOworICAgICAgICByZXR1cm4gIk1lbnVJdGVtUmFk
aW8iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TWVudUxpc3RQb3B1cDoKLSAgICAg
ICAgcmV0dXJuICJNZW51TGlzdFBvcHVwIjsKKyAgICAgICAgcmV0dXJuICJNZW51TGlzdFBvcHVw
Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Ok1lbnVMaXN0T3B0aW9uOgotICAgICAg
ICByZXR1cm4gIk1lbnVMaXN0T3B0aW9uIjsKKyAgICAgICAgcmV0dXJuICJNZW51TGlzdE9wdGlv
biJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpNZXRlcjoKLSAgICAgICAgcmV0dXJu
ICJNZXRlciI7CisgICAgICAgIHJldHVybiAiTWV0ZXIiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmls
aXR5Um9sZTo6TW9kZWw6Ci0gICAgICAgIHJldHVybiAiTW9kZWwiOworICAgICAgICByZXR1cm4g
Ik1vZGVsIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Ok91dGxpbmU6Ci0gICAgICAg
IHJldHVybiAiT3V0bGluZSI7CisgICAgICAgIHJldHVybiAiT3V0bGluZSJfczsKICAgICBjYXNl
IEFjY2Vzc2liaWxpdHlSb2xlOjpQYXJhZ3JhcGg6Ci0gICAgICAgIHJldHVybiAiUGFyYWdyYXBo
IjsKKyAgICAgICAgcmV0dXJuICJQYXJhZ3JhcGgiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5
Um9sZTo6UG9wVXBCdXR0b246Ci0gICAgICAgIHJldHVybiAiUG9wVXBCdXR0b24iOworICAgICAg
ICByZXR1cm4gIlBvcFVwQnV0dG9uIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlBy
ZToKLSAgICAgICAgcmV0dXJuICJQcmUiOworICAgICAgICByZXR1cm4gIlByZSJfczsKICAgICBj
YXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpQcmVzZW50YXRpb25hbDoKLSAgICAgICAgcmV0dXJuICJQ
cmVzZW50YXRpb25hbCI7CisgICAgICAgIHJldHVybiAiUHJlc2VudGF0aW9uYWwiX3M7CiAgICAg
Y2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6UHJvZ3Jlc3NJbmRpY2F0b3I6Ci0gICAgICAgIHJldHVy
biAiUHJvZ3Jlc3NJbmRpY2F0b3IiOworICAgICAgICByZXR1cm4gIlByb2dyZXNzSW5kaWNhdG9y
Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlJhZGlvQnV0dG9uOgotICAgICAgICBy
ZXR1cm4gIlJhZGlvQnV0dG9uIjsKKyAgICAgICAgcmV0dXJuICJSYWRpb0J1dHRvbiJfczsKICAg
ICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpSYWRpb0dyb3VwOgotICAgICAgICByZXR1cm4gIlJh
ZGlvR3JvdXAiOworICAgICAgICByZXR1cm4gIlJhZGlvR3JvdXAiX3M7CiAgICAgY2FzZSBBY2Nl
c3NpYmlsaXR5Um9sZTo6Um93SGVhZGVyOgotICAgICAgICByZXR1cm4gIlJvd0hlYWRlciI7Cisg
ICAgICAgIHJldHVybiAiUm93SGVhZGVyIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6
OlJvdzoKLSAgICAgICAgcmV0dXJuICJSb3ciOworICAgICAgICByZXR1cm4gIlJvdyJfczsKICAg
ICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpSb3dHcm91cDoKLSAgICAgICAgcmV0dXJuICJSb3dH
cm91cCI7CisgICAgICAgIHJldHVybiAiUm93R3JvdXAiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmls
aXR5Um9sZTo6UnVieUJhc2U6Ci0gICAgICAgIHJldHVybiAiUnVieUJhc2UiOworICAgICAgICBy
ZXR1cm4gIlJ1YnlCYXNlIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlJ1YnlCbG9j
azoKLSAgICAgICAgcmV0dXJuICJSdWJ5QmxvY2siOworICAgICAgICByZXR1cm4gIlJ1YnlCbG9j
ayJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpSdWJ5SW5saW5lOgotICAgICAgICBy
ZXR1cm4gIlJ1YnlJbmxpbmUiOworICAgICAgICByZXR1cm4gIlJ1YnlJbmxpbmUiX3M7CiAgICAg
Y2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6UnVieVJ1bjoKLSAgICAgICAgcmV0dXJuICJSdWJ5UnVu
IjsKKyAgICAgICAgcmV0dXJuICJSdWJ5UnVuIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJv
bGU6OlJ1YnlUZXh0OgotICAgICAgICByZXR1cm4gIlJ1YnlUZXh0IjsKKyAgICAgICAgcmV0dXJu
ICJSdWJ5VGV4dCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpSdWxlcjoKLSAgICAg
ICAgcmV0dXJuICJSdWxlciI7CisgICAgICAgIHJldHVybiAiUnVsZXIiX3M7CiAgICAgY2FzZSBB
Y2Nlc3NpYmlsaXR5Um9sZTo6UnVsZXJNYXJrZXI6Ci0gICAgICAgIHJldHVybiAiUnVsZXJNYXJr
ZXIiOworICAgICAgICByZXR1cm4gIlJ1bGVyTWFya2VyIl9zOwogICAgIGNhc2UgQWNjZXNzaWJp
bGl0eVJvbGU6OlNjcm9sbEFyZWE6Ci0gICAgICAgIHJldHVybiAiU2Nyb2xsQXJlYSI7CisgICAg
ICAgIHJldHVybiAiU2Nyb2xsQXJlYSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpT
Y3JvbGxCYXI6Ci0gICAgICAgIHJldHVybiAiU2Nyb2xsQmFyIjsKKyAgICAgICAgcmV0dXJuICJT
Y3JvbGxCYXIiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6U2VhcmNoRmllbGQ6Ci0g
ICAgICAgIHJldHVybiAiU2VhcmNoRmllbGQiOworICAgICAgICByZXR1cm4gIlNlYXJjaEZpZWxk
Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlNoZWV0OgotICAgICAgICByZXR1cm4g
IlNoZWV0IjsKKyAgICAgICAgcmV0dXJuICJTaGVldCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxp
dHlSb2xlOjpTbGlkZXI6Ci0gICAgICAgIHJldHVybiAiU2xpZGVyIjsKKyAgICAgICAgcmV0dXJu
ICJTbGlkZXIiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6U2xpZGVyVGh1bWI6Ci0g
ICAgICAgIHJldHVybiAiU2xpZGVyVGh1bWIiOworICAgICAgICByZXR1cm4gIlNsaWRlclRodW1i
Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlNwaW5CdXR0b246Ci0gICAgICAgIHJl
dHVybiAiU3BpbkJ1dHRvbiI7CisgICAgICAgIHJldHVybiAiU3BpbkJ1dHRvbiJfczsKICAgICBj
YXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpTcGluQnV0dG9uUGFydDoKLSAgICAgICAgcmV0dXJuICJT
cGluQnV0dG9uUGFydCI7CisgICAgICAgIHJldHVybiAiU3BpbkJ1dHRvblBhcnQiX3M7CiAgICAg
Y2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6U3BsaXRHcm91cDoKLSAgICAgICAgcmV0dXJuICJTcGxp
dEdyb3VwIjsKKyAgICAgICAgcmV0dXJuICJTcGxpdEdyb3VwIl9zOwogICAgIGNhc2UgQWNjZXNz
aWJpbGl0eVJvbGU6OlNwbGl0dGVyOgotICAgICAgICByZXR1cm4gIlNwbGl0dGVyIjsKKyAgICAg
ICAgcmV0dXJuICJTcGxpdHRlciJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpTdGF0
aWNUZXh0OgotICAgICAgICByZXR1cm4gIlN0YXRpY1RleHQiOworICAgICAgICByZXR1cm4gIlN0
YXRpY1RleHQiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6U3Vic2NyaXB0OgotICAg
ICAgICByZXR1cm4gIlN1YnNjcmlwdCI7CisgICAgICAgIHJldHVybiAiU3Vic2NyaXB0Il9zOwog
ICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlN1bW1hcnk6Ci0gICAgICAgIHJldHVybiAiU3Vt
bWFyeSI7CisgICAgICAgIHJldHVybiAiU3VtbWFyeSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxp
dHlSb2xlOjpTdXBlcnNjcmlwdDoKLSAgICAgICAgcmV0dXJuICJTdXBlcnNjcmlwdCI7CisgICAg
ICAgIHJldHVybiAiU3VwZXJzY3JpcHQiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6
U3dpdGNoOgotICAgICAgICByZXR1cm4gIlN3aXRjaCI7CisgICAgICAgIHJldHVybiAiU3dpdGNo
Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlN5c3RlbVdpZGU6Ci0gICAgICAgIHJl
dHVybiAiU3lzdGVtV2lkZSI7CisgICAgICAgIHJldHVybiAiU3lzdGVtV2lkZSJfczsKICAgICBj
YXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpTVkdSb290OgotICAgICAgICByZXR1cm4gIlNWR1Jvb3Qi
OworICAgICAgICByZXR1cm4gIlNWR1Jvb3QiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9s
ZTo6U1ZHVGV4dDoKLSAgICAgICAgcmV0dXJuICJTVkdUZXh0IjsKKyAgICAgICAgcmV0dXJuICJT
VkdUZXh0Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlNWR1RTcGFuOgotICAgICAg
ICByZXR1cm4gIlNWR1RTcGFuIjsKKyAgICAgICAgcmV0dXJuICJTVkdUU3BhbiJfczsKICAgICBj
YXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpTVkdUZXh0UGF0aDoKLSAgICAgICAgcmV0dXJuICJTVkdU
ZXh0UGF0aCI7CisgICAgICAgIHJldHVybiAiU1ZHVGV4dFBhdGgiX3M7CiAgICAgY2FzZSBBY2Nl
c3NpYmlsaXR5Um9sZTo6VGFiR3JvdXA6Ci0gICAgICAgIHJldHVybiAiVGFiR3JvdXAiOworICAg
ICAgICByZXR1cm4gIlRhYkdyb3VwIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlRh
Ykxpc3Q6Ci0gICAgICAgIHJldHVybiAiVGFiTGlzdCI7CisgICAgICAgIHJldHVybiAiVGFiTGlz
dCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpUYWJQYW5lbDoKLSAgICAgICAgcmV0
dXJuICJUYWJQYW5lbCI7CisgICAgICAgIHJldHVybiAiVGFiUGFuZWwiX3M7CiAgICAgY2FzZSBB
Y2Nlc3NpYmlsaXR5Um9sZTo6VGFiOgotICAgICAgICByZXR1cm4gIlRhYiI7CisgICAgICAgIHJl
dHVybiAiVGFiIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlRhYmxlOgotICAgICAg
ICByZXR1cm4gIlRhYmxlIjsKKyAgICAgICAgcmV0dXJuICJUYWJsZSJfczsKICAgICBjYXNlIEFj
Y2Vzc2liaWxpdHlSb2xlOjpUYWJsZUhlYWRlckNvbnRhaW5lcjoKLSAgICAgICAgcmV0dXJuICJU
YWJsZUhlYWRlckNvbnRhaW5lciI7CisgICAgICAgIHJldHVybiAiVGFibGVIZWFkZXJDb250YWlu
ZXIiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VGVybToKLSAgICAgICAgcmV0dXJu
ICJUZXJtIjsKKyAgICAgICAgcmV0dXJuICJUZXJtIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0
eVJvbGU6OlRleHRBcmVhOgotICAgICAgICByZXR1cm4gIlRleHRBcmVhIjsKKyAgICAgICAgcmV0
dXJuICJUZXh0QXJlYSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpUZXh0RmllbGQ6
Ci0gICAgICAgIHJldHVybiAiVGV4dEZpZWxkIjsKKyAgICAgICAgcmV0dXJuICJUZXh0RmllbGQi
X3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VGV4dEdyb3VwOgotICAgICAgICByZXR1
cm4gIlRleHRHcm91cCI7CisgICAgICAgIHJldHVybiAiVGV4dEdyb3VwIl9zOwogICAgIGNhc2Ug
QWNjZXNzaWJpbGl0eVJvbGU6OlRpbWU6Ci0gICAgICAgIHJldHVybiAiVGltZSI7CisgICAgICAg
IHJldHVybiAiVGltZSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpUcmVlOgotICAg
ICAgICByZXR1cm4gIlRyZWUiOworICAgICAgICByZXR1cm4gIlRyZWUiX3M7CiAgICAgY2FzZSBB
Y2Nlc3NpYmlsaXR5Um9sZTo6VHJlZUdyaWQ6Ci0gICAgICAgIHJldHVybiAiVHJlZUdyaWQiOwor
ICAgICAgICByZXR1cm4gIlRyZWVHcmlkIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6
OlRyZWVJdGVtOgotICAgICAgICByZXR1cm4gIlRyZWVJdGVtIjsKKyAgICAgICAgcmV0dXJuICJU
cmVlSXRlbSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpUb2dnbGVCdXR0b246Ci0g
ICAgICAgIHJldHVybiAiVG9nZ2xlQnV0dG9uIjsKKyAgICAgICAgcmV0dXJuICJUb2dnbGVCdXR0
b24iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VG9vbGJhcjoKLSAgICAgICAgcmV0
dXJuICJUb29sYmFyIjsKKyAgICAgICAgcmV0dXJuICJUb29sYmFyIl9zOwogICAgIGNhc2UgQWNj
ZXNzaWJpbGl0eVJvbGU6OlVua25vd246Ci0gICAgICAgIHJldHVybiAiVW5rbm93biI7CisgICAg
ICAgIHJldHVybiAiVW5rbm93biJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpVc2Vy
SW50ZXJmYWNlVG9vbHRpcDoKLSAgICAgICAgcmV0dXJuICJVc2VySW50ZXJmYWNlVG9vbHRpcCI7
CisgICAgICAgIHJldHVybiAiVXNlckludGVyZmFjZVRvb2x0aXAiX3M7CiAgICAgY2FzZSBBY2Nl
c3NpYmlsaXR5Um9sZTo6VmFsdWVJbmRpY2F0b3I6Ci0gICAgICAgIHJldHVybiAiVmFsdWVJbmRp
Y2F0b3IiOworICAgICAgICByZXR1cm4gIlZhbHVlSW5kaWNhdG9yIl9zOwogICAgIGNhc2UgQWNj
ZXNzaWJpbGl0eVJvbGU6OlZpZGVvOgotICAgICAgICByZXR1cm4gIlZpZGVvIjsKKyAgICAgICAg
cmV0dXJuICJWaWRlbyJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpXZWJBcHBsaWNh
dGlvbjoKLSAgICAgICAgcmV0dXJuICJXZWJBcHBsaWNhdGlvbiI7CisgICAgICAgIHJldHVybiAi
V2ViQXBwbGljYXRpb24iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6V2ViQXJlYToK
LSAgICAgICAgcmV0dXJuICJXZWJBcmVhIjsKKyAgICAgICAgcmV0dXJuICJXZWJBcmVhIl9zOwog
ICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OldlYkNvcmVMaW5rOgotICAgICAgICByZXR1cm4g
IldlYkNvcmVMaW5rIjsKKyAgICAgICAgcmV0dXJuICJXZWJDb3JlTGluayJfczsKICAgICBjYXNl
IEFjY2Vzc2liaWxpdHlSb2xlOjpXaW5kb3c6Ci0gICAgICAgIHJldHVybiAiV2luZG93IjsKKyAg
ICAgICAgcmV0dXJuICJXaW5kb3ciX3M7CiAgICAgfQogICAgIFVOUkVBQ0hBQkxFKCk7Ci0gICAg
cmV0dXJuICIiOworICAgIHJldHVybiAiIl9zOwogfQogCiBlbnVtIGNsYXNzIEFjY2Vzc2liaWxp
dHlEZXRhY2htZW50VHlwZSB7IENhY2hlRGVzdHJveWVkLCBFbGVtZW50RGVzdHJveWVkLCBFbGVt
ZW50Q2hhbmdlZCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKaW5kZXggNDQyMjk1NWEzODY1ZGJjNWRk
NzIzNTRjYmJmYmYyMDI3NjcxNWIwNi4uYTZkMzEwMmM4ODJhNjA5OGY0NzkyYjdiY2QwNmJhMjZk
NDI4N2Q4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCkBAIC0yNzg3LDExICsyNzg3LDExIEBAIGJv
b2wgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6cmVuZGVyT2JqZWN0SXNPYnNlcnZhYmxlKFJl
bmRlck9iamVjdCYgcmVuZGVyZXIpCiAgICAgaWYgKCFub2RlKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgCi0gICAgaWYgKG5vZGVIYXNSb2xlKG5vZGUsICJsaXN0Ym94IikgfHwgKGlzPFJl
bmRlckJveE1vZGVsT2JqZWN0PihyZW5kZXJlcikgJiYgZG93bmNhc3Q8UmVuZGVyQm94TW9kZWxP
YmplY3Q+KHJlbmRlcmVyKS5pc0xpc3RCb3goKSkpCisgICAgaWYgKG5vZGVIYXNSb2xlKG5vZGUs
ICJsaXN0Ym94Il9zKSB8fCAoaXM8UmVuZGVyQm94TW9kZWxPYmplY3Q+KHJlbmRlcmVyKSAmJiBk
b3duY2FzdDxSZW5kZXJCb3hNb2RlbE9iamVjdD4ocmVuZGVyZXIpLmlzTGlzdEJveCgpKSkKICAg
ICAgICAgcmV0dXJuIHRydWU7CiAKICAgICAvLyBUZXh0Ym94ZXMgc2hvdWxkIHNlbmQgb3V0IG5v
dGlmaWNhdGlvbnMuCi0gICAgaWYgKG5vZGVIYXNSb2xlKG5vZGUsICJ0ZXh0Ym94IikgfHwgKGlz
PEVsZW1lbnQ+KCpub2RlKSAmJiBjb250ZW50RWRpdGFibGVBdHRyaWJ1dGVJc0VuYWJsZWQoZG93
bmNhc3Q8RWxlbWVudD4obm9kZSkpKSkKKyAgICBpZiAobm9kZUhhc1JvbGUobm9kZSwgInRleHRi
b3giX3MpIHx8IChpczxFbGVtZW50Pigqbm9kZSkgJiYgY29udGVudEVkaXRhYmxlQXR0cmlidXRl
SXNFbmFibGVkKGRvd25jYXN0PEVsZW1lbnQ+KG5vZGUpKSkpCiAgICAgICAgIHJldHVybiB0cnVl
OwogICAgIAogICAgIHJldHVybiBmYWxzZTsKQEAgLTI4NDAsNyArMjg0MCw3IEBAIGJvb2wgQWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6c2hvdWxkSWdub3JlQXR0cmlidXRlUm9sZSgpIGNvbnN0
CiAKIEFjY2Vzc2liaWxpdHlSb2xlIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmRldGVybWlu
ZUFjY2Vzc2liaWxpdHlSb2xlKCkKIHsKLSAgICBBWFRSQUNFKCJBY2Nlc3NpYmlsaXR5UmVuZGVy
T2JqZWN0OjpkZXRlcm1pbmVBY2Nlc3NpYmlsaXR5Um9sZSIpOworICAgIEFYVFJBQ0UoIkFjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3Q6OmRldGVybWluZUFjY2Vzc2liaWxpdHlSb2xlIl9zKTsKICAg
ICBpZiAoIW1fcmVuZGVyZXIpCiAgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5Um9sZTo6VW5r
bm93bjsKIApAQCAtMzI4MCw3ICszMjgwLDcgQEAgdm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0OjphZGRMaXN0SXRlbU1hcmtlcigpCiAKIHZvaWQgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVj
dDo6dXBkYXRlUm9sZUFmdGVyQ2hpbGRyZW5DcmVhdGlvbigpCiB7Ci0gICAgQVhUUkFDRSgiQWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6dXBkYXRlUm9sZUFmdGVyQ2hpbGRyZW5DcmVhdGlvbiIp
OworICAgIEFYVFJBQ0UoIkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnVwZGF0ZVJvbGVBZnRl
ckNoaWxkcmVuQ3JlYXRpb24iX3MpOwogICAgIC8vIElmIGEgbWVudSBkb2VzIG5vdCBoYXZlIHZh
bGlkIG1lbnVpdGVtIGNoaWxkcmVuLCBpdCBzaG91bGQgbm90IGJlIGV4cG9zZWQgYXMgYSBtZW51
LgogICAgIGF1dG8gcm9sZSA9IHJvbGVWYWx1ZSgpOwogICAgIGlmIChyb2xlID09IEFjY2Vzc2li
aWxpdHlSb2xlOjpNZW51KSB7CkBAIC0zMzY0LDcgKzMzNjQsNyBAQCBjb25zdCBTdHJpbmcgQWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6bGl2ZVJlZ2lvblJlbGV2YW50KCkgY29uc3QKIAogICAg
IC8vIERlZmF1bHQgYXJpYS1yZWxldmFudCA9ICJhZGRpdGlvbnMgdGV4dCIuCiAgICAgaWYgKHJl
bGV2YW50LmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuICJhZGRpdGlvbnMgdGV4dCI7CisgICAg
ICAgIHJldHVybiAiYWRkaXRpb25zIHRleHQiX3M7CiAgICAgCiAgICAgcmV0dXJuIHJlbGV2YW50
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5VGFibGVDZWxsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eVRhYmxlQ2VsbC5jcHAKaW5kZXggMjdjZjg2OWY0ZDU3NzFjOTg0YjJiZTNmNDYxMjZiOTg3
N2I2MDAxNS4uMzRhN2JhN2NjZGI0ZTUzYWE1NTQ2MTk4MGYxNTRkMzg4YzJhZjQzZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVDZWxs
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJs
ZUNlbGwuY3BwCkBAIC02NSw3ICs2NSw3IEBAIGJvb2wgQWNjZXNzaWJpbGl0eVRhYmxlQ2VsbDo6
Y29tcHV0ZUFjY2Vzc2liaWxpdHlJc0lnbm9yZWQoKSBjb25zdAogICAgIAogICAgIC8vIElnbm9y
ZSBhbm9ueW1vdXMgdGFibGUgY2VsbHMgYXMgbG9uZyBhcyB0aGV5J3JlIG5vdCBpbiBhIHRhYmxl
IChpZS4gd2hlbiBkaXNwbGF5OnRhYmxlIGlzIHVzZWQpLgogICAgIFJlbmRlck9iamVjdCogcmVu
ZGVyVGFibGUgPSBpczxSZW5kZXJUYWJsZUNlbGw+KHJlbmRlcmVyKCkpID8gZG93bmNhc3Q8UmVu
ZGVyVGFibGVDZWxsPigqbV9yZW5kZXJlcikudGFibGUoKSA6IG51bGxwdHI7Ci0gICAgYm9vbCBp
blRhYmxlID0gcmVuZGVyVGFibGUgJiYgcmVuZGVyVGFibGUtPm5vZGUoKSAmJiAocmVuZGVyVGFi
bGUtPm5vZGUoKS0+aGFzVGFnTmFtZSh0YWJsZVRhZykgfHwgbm9kZUhhc1JvbGUocmVuZGVyVGFi
bGUtPm5vZGUoKSwgImdyaWQiKSk7CisgICAgYm9vbCBpblRhYmxlID0gcmVuZGVyVGFibGUgJiYg
cmVuZGVyVGFibGUtPm5vZGUoKSAmJiAocmVuZGVyVGFibGUtPm5vZGUoKS0+aGFzVGFnTmFtZSh0
YWJsZVRhZykgfHwgbm9kZUhhc1JvbGUocmVuZGVyVGFibGUtPm5vZGUoKSwgImdyaWQiX3MpKTsK
ICAgICBpZiAoIW5vZGUoKSAmJiAhaW5UYWJsZSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
ICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5VHJlZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlU
cmVlLmNwcAppbmRleCA1OTBjOTYxNTk2MDYwZGI2ZGIxNTUzODk4ZWIxNmYzMGI0NTRlNjhkLi4x
YzAwYmM5NTQyM2UyOTZhZDUxMjYzNzdlNDgxYzdjZTc5ZGZiZDAzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUcmVlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUcmVlLmNwcApAQCAtNjgsNyAr
NjgsNyBAQCBBY2Nlc3NpYmlsaXR5Um9sZSBBY2Nlc3NpYmlsaXR5VHJlZTo6ZGV0ZXJtaW5lQWNj
ZXNzaWJpbGl0eVJvbGUoKQogYm9vbCBBY2Nlc3NpYmlsaXR5VHJlZTo6bm9kZUhhc1RyZWVJdGVt
Q2hpbGQoTm9kZSYgbm9kZSkgY29uc3QKIHsKICAgICBmb3IgKGF1dG8qIGNoaWxkID0gbm9kZS5m
aXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygpKSB7Ci0gICAg
ICAgIGlmIChub2RlSGFzUm9sZShjaGlsZCwgInRyZWVpdGVtIikpCisgICAgICAgIGlmIChub2Rl
SGFzUm9sZShjaGlsZCwgInRyZWVpdGVtIl9zKSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgIH0KICAgICByZXR1cm4gZmFsc2U7CkBAIC05MiwxNCArOTIsMTQgQEAgYm9vbCBBY2Nlc3Np
YmlsaXR5VHJlZTo6aXNUcmVlVmFsaWQoKSBjb25zdAogCiAgICAgICAgIGlmICghaXM8RWxlbWVu
dD4oKmNoaWxkKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBpZiAobm9kZUhhc1Jv
bGUoY2hpbGQsICJ0cmVlaXRlbSIpKQorICAgICAgICBpZiAobm9kZUhhc1JvbGUoY2hpbGQsICJ0
cmVlaXRlbSJfcykpCiAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgaWYgKG5vZGVIYXNS
b2xlKGNoaWxkLCAicHJlc2VudGF0aW9uIikpIHsKKyAgICAgICAgaWYgKG5vZGVIYXNSb2xlKGNo
aWxkLCAicHJlc2VudGF0aW9uIl9zKSkgewogICAgICAgICAgICAgaWYgKCFub2RlSGFzVHJlZUl0
ZW1DaGlsZCgqY2hpbGQpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAg
ICAgIGNvbnRpbnVlOwogICAgICAgICB9Ci0gICAgICAgIGlmICghbm9kZUhhc1JvbGUoY2hpbGQs
ICJncm91cCIpKQorICAgICAgICBpZiAoIW5vZGVIYXNSb2xlKGNoaWxkLCAiZ3JvdXAiX3MpKQog
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgICAgIGZvciAoYXV0byogZ3JvdXBDaGls
ZCA9IGNoaWxkLT5maXJzdENoaWxkKCk7IGdyb3VwQ2hpbGQ7IGdyb3VwQ2hpbGQgPSBncm91cENo
aWxkLT5uZXh0U2libGluZygpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcAppbmRleCBhMTM0
YWU3NTJmYTIwMTJlNzgwZDk5ZmExMDhjM2Y0ODc5NmMxMTFjLi41ZjAyMDFmMDdiNTM1MDViNzBk
ZGUzMzlhMmNiMjk2NTdjZjc4NDVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcApAQCAt
MzA1LDcgKzMwNSw3IEBAIHZvaWQgQVhJc29sYXRlZE9iamVjdDo6aW5pdGlhbGl6ZUF0dHJpYnV0
ZURhdGEoQVhDb3JlT2JqZWN0JiBjb3JlT2JqZWN0LCBib29sIGlzCiAgICAgICAgIHNldFByb3Bl
cnR5KEFYUHJvcGVydHlOYW1lOjpUZXh0TGVuZ3RoLCBvYmplY3QudGV4dExlbmd0aCgpKTsKIAog
ICAgIGlmIChvYmplY3QuaXNSYWRpb0J1dHRvbigpKSB7Ci0gICAgICAgIGlmIChhdXRvIG5hbWVB
dHRyaWJ1dGUgPSBvYmplY3QuYXR0cmlidXRlVmFsdWUoIm5hbWUiKSkKKyAgICAgICAgaWYgKGF1
dG8gbmFtZUF0dHJpYnV0ZSA9IG9iamVjdC5hdHRyaWJ1dGVWYWx1ZSgibmFtZSJfcykpCiAgICAg
ICAgICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFtZTo6TmFtZUF0dHJpYnV0ZSwgbmFtZUF0
dHJpYnV0ZS0+aXNvbGF0ZWRDb3B5KCkpOwogICAgIH0KIApAQCAtMzYyLDcgKzM2Miw3IEBAIHZv
aWQgQVhJc29sYXRlZE9iamVjdDo6aW5pdGlhbGl6ZUF0dHJpYnV0ZURhdGEoQVhDb3JlT2JqZWN0
JiBjb3JlT2JqZWN0LCBib29sIGlzCiAgICAgU3RyaW5nIGNvbWJpbmVkQ2xhc3NMaXN0OwogICAg
IGZvciAoYXV0byBpdCA9IGNsYXNzTGlzdC5iZWdpbigpLCBlbmQgPSBjbGFzc0xpc3QuZW5kKCk7
IGl0ICE9IGVuZDsgKytpdCkgewogICAgICAgICBjb21iaW5lZENsYXNzTGlzdC5hcHBlbmQoKml0
KTsKLSAgICAgICAgY29tYmluZWRDbGFzc0xpc3QuYXBwZW5kKCIgIik7CisgICAgICAgIGNvbWJp
bmVkQ2xhc3NMaXN0LmFwcGVuZCgiICJfcyk7CiAgICAgfQogICAgIHNldFByb3BlcnR5KEFYUHJv
cGVydHlOYW1lOjpDbGFzc0xpc3QsIGNvbWJpbmVkQ2xhc3NMaXN0KTsKIApAQCAtNjAwLDcgKzYw
MCw3IEBAIHZvaWQgQVhJc29sYXRlZE9iamVjdDo6YWNjZXNzaWJpbGl0eVRleHQoVmVjdG9yPEFj
Y2Vzc2liaWxpdHlUZXh0PiYgdGV4dHMpIGNvbnN0CiB2b2lkIEFYSXNvbGF0ZWRPYmplY3Q6OmNs
YXNzTGlzdChWZWN0b3I8U3RyaW5nPiYgbGlzdCkgY29uc3QKIHsKICAgICBTdHJpbmcgY2xhc3NM
aXN0ID0gc3RyaW5nQXR0cmlidXRlVmFsdWUoQVhQcm9wZXJ0eU5hbWU6OkNsYXNzTGlzdCk7Ci0g
ICAgbGlzdC5hcHBlbmRWZWN0b3IoY2xhc3NMaXN0LnNwbGl0KCIgIikpOworICAgIGxpc3QuYXBw
ZW5kVmVjdG9yKGNsYXNzTGlzdC5zcGxpdCgiICJfcykpOwogfQogCiBQQUw6OlNlc3Npb25JRCBB
WElzb2xhdGVkT2JqZWN0OjpzZXNzaW9uSUQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuY3BwIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuY3Bw
CmluZGV4IDY3ZjViMWRlZmQ5YzQ3OGVkZWJiMDc5M2M2NTBlMzhjZjM5YTNjNGIuLjFjZTc4NTAy
ZDJlYzc3MjI3Y2JmM2RiMjc1MGMwN2FiY2U4MzljZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5j
cHAKQEAgLTYyLDE4ICs2MiwxOCBAQCBBWElzb2xhdGVkVHJlZTo6QVhJc29sYXRlZFRyZWUoQVhP
YmplY3RDYWNoZSogYXhPYmplY3RDYWNoZSkKICAgICAsIG1fYXhPYmplY3RDYWNoZShheE9iamVj
dENhY2hlKQogICAgICwgbV91c2VkT25BWFRocmVhZChheE9iamVjdENhY2hlLT51c2VkT25BWFRo
cmVhZCgpKQogewotICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjpBWElzb2xhdGVkVHJlZSIp
OworICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjpBWElzb2xhdGVkVHJlZSJfcyk7CiAgICAg
QVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIH0KIAogQVhJc29sYXRlZFRyZWU6On5BWElzb2xhdGVk
VHJlZSgpCiB7Ci0gICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6On5BWElzb2xhdGVkVHJlZSIp
OworICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjp+QVhJc29sYXRlZFRyZWUiX3MpOwogfQog
CiB2b2lkIEFYSXNvbGF0ZWRUcmVlOjpjbGVhcigpCiB7Ci0gICAgQVhUUkFDRSgiQVhJc29sYXRl
ZFRyZWU6OmNsZWFyIik7CisgICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OmNsZWFyIl9zKTsK
ICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIG1fYXhPYmplY3RDYWNoZSA9IG51bGxw
dHI7CiAgICAgbV9ub2RlTWFwLmNsZWFyKCk7CkBAIC04NSwxNCArODUsMTQgQEAgdm9pZCBBWElz
b2xhdGVkVHJlZTo6Y2xlYXIoKQogCiBSZWZQdHI8QVhJc29sYXRlZFRyZWU+IEFYSXNvbGF0ZWRU
cmVlOjp0cmVlRm9ySUQoQVhJc29sYXRlZFRyZWVJRCB0cmVlSUQpCiB7Ci0gICAgQVhUUkFDRSgi
QVhJc29sYXRlZFRyZWU6OnRyZWVGb3JJRCIpOworICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVl
Ojp0cmVlRm9ySUQiX3MpOwogICAgIExvY2tlciBsb2NrZXIgeyBzX2NhY2hlTG9jayB9OwogICAg
IHJldHVybiB0cmVlSURDYWNoZSgpLmdldCh0cmVlSUQpOwogfQogCiBSZWY8QVhJc29sYXRlZFRy
ZWU+IEFYSXNvbGF0ZWRUcmVlOjpjcmVhdGUoQVhPYmplY3RDYWNoZSogYXhPYmplY3RDYWNoZSkK
IHsKLSAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6Y3JlYXRlIik7CisgICAgQVhUUkFDRSgi
QVhJc29sYXRlZFRyZWU6OmNyZWF0ZSJfcyk7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsK
ICAgICBBU1NFUlQoYXhPYmplY3RDYWNoZSAmJiBheE9iamVjdENhY2hlLT5wYWdlSUQoKSk7CiAK
QEAgLTEyNSw3ICsxMjUsNyBAQCBSZWY8QVhJc29sYXRlZFRyZWU+IEFYSXNvbGF0ZWRUcmVlOjpj
cmVhdGUoQVhPYmplY3RDYWNoZSogYXhPYmplY3RDYWNoZSkKIAogdm9pZCBBWElzb2xhdGVkVHJl
ZTo6cmVtb3ZlVHJlZUZvclBhZ2VJRChQYWdlSWRlbnRpZmllciBwYWdlSUQpCiB7Ci0gICAgQVhU
UkFDRSgiQVhJc29sYXRlZFRyZWU6OnJlbW92ZVRyZWVGb3JQYWdlSUQiKTsKKyAgICBBWFRSQUNF
KCJBWElzb2xhdGVkVHJlZTo6cmVtb3ZlVHJlZUZvclBhZ2VJRCJfcyk7CiAgICAgQVNTRVJUKGlz
TWFpblRocmVhZCgpKTsKICAgICBMb2NrZXIgbG9ja2VyIHsgc19jYWNoZUxvY2sgfTsKIApAQCAt
MTU3LDcgKzE1Nyw3IEBAIFJlZlB0cjxBWElzb2xhdGVkT2JqZWN0PiBBWElzb2xhdGVkVHJlZTo6
bm9kZUZvcklEKEFYSUQgYXhJRCkgY29uc3QKIAogVmVjdG9yPFJlZlB0cjxBWENvcmVPYmplY3Q+
PiBBWElzb2xhdGVkVHJlZTo6b2JqZWN0c0ZvcklEcyhjb25zdCBWZWN0b3I8QVhJRD4mIGF4SURz
KSBjb25zdAogewotICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjpvYmplY3RzRm9ySURzIik7
CisgICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6Om9iamVjdHNGb3JJRHMiX3MpOwogICAgIFZl
Y3RvcjxSZWZQdHI8QVhDb3JlT2JqZWN0Pj4gcmVzdWx0OwogICAgIHJlc3VsdC5yZXNlcnZlSW5p
dGlhbENhcGFjaXR5KGF4SURzLnNpemUoKSk7CiAgICAgZm9yIChhdXRvJiBheElEIDogYXhJRHMp
IHsKQEAgLTE3OCw3ICsxNzgsNyBAQCBWZWN0b3I8QVhJRD4gQVhJc29sYXRlZFRyZWU6Omlkc0Zv
ck9iamVjdHMoY29uc3QgVmVjdG9yPFJlZlB0cjxBWENvcmVPYmplY3Q+PiYgbwogCiB2b2lkIEFY
SXNvbGF0ZWRUcmVlOjpnZW5lcmF0ZVN1YnRyZWUoQVhDb3JlT2JqZWN0JiBheE9iamVjdCwgQVhD
b3JlT2JqZWN0KiBheFBhcmVudCwgYm9vbCBhdHRhY2hXcmFwcGVyKQogewotICAgIEFYVFJBQ0Uo
IkFYSXNvbGF0ZWRUcmVlOjpnZW5lcmF0ZVN1YnRyZWUiKTsKKyAgICBBWFRSQUNFKCJBWElzb2xh
dGVkVHJlZTo6Z2VuZXJhdGVTdWJ0cmVlIl9zKTsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkp
OwogCiAgICAgaWYgKCFheE9iamVjdC5vYmplY3RJRCgpLmlzVmFsaWQoKSkKQEAgLTI3Nyw3ICsy
NzcsNyBAQCB2b2lkIEFYSXNvbGF0ZWRUcmVlOjpxdWV1ZUNoYW5nZXNBbmRSZW1vdmFscyhjb25z
dCBWZWN0b3I8Tm9kZUNoYW5nZT4mIGNoYW5nZXMsCiAKIHZvaWQgQVhJc29sYXRlZFRyZWU6OmNv
bGxlY3ROb2RlQ2hhbmdlc0ZvclN1YnRyZWUoQVhDb3JlT2JqZWN0JiBheE9iamVjdCwgQVhJRCBw
YXJlbnRJRCwgYm9vbCBhdHRhY2hXcmFwcGVyLCBWZWN0b3I8Tm9kZUNoYW5nZT4mIGNoYW5nZXMs
IEhhc2hTZXQ8QVhJRD4qIGlkc0JlaW5nQ2hhbmdlZCkKIHsKLSAgICBBWFRSQUNFKCJBWElzb2xh
dGVkVHJlZTo6Y29sbGVjdE5vZGVDaGFuZ2VzRm9yU3VidHJlZSIpOworICAgIEFYVFJBQ0UoIkFY
SXNvbGF0ZWRUcmVlOjpjb2xsZWN0Tm9kZUNoYW5nZXNGb3JTdWJ0cmVlIl9zKTsKICAgICBBU1NF
UlQoaXNNYWluVGhyZWFkKCkpOwogCiAgICAgYXV0byBub2RlQ2hhbmdlID0gbm9kZUNoYW5nZUZv
ck9iamVjdChheE9iamVjdCwgcGFyZW50SUQsIGF0dGFjaFdyYXBwZXIpOwpAQCAtMjk1LDcgKzI5
NSw3IEBAIHZvaWQgQVhJc29sYXRlZFRyZWU6OmNvbGxlY3ROb2RlQ2hhbmdlc0ZvclN1YnRyZWUo
QVhDb3JlT2JqZWN0JiBheE9iamVjdCwgQVhJRCBwCiAKIHZvaWQgQVhJc29sYXRlZFRyZWU6OnVw
ZGF0ZU5vZGUoQVhDb3JlT2JqZWN0JiBheE9iamVjdCkKIHsKLSAgICBBWFRSQUNFKCJBWElzb2xh
dGVkVHJlZTo6dXBkYXRlTm9kZSIpOworICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjp1cGRh
dGVOb2RlIl9zKTsKICAgICBBWExPRygmYXhPYmplY3QpOwogICAgIEFTU0VSVChpc01haW5UaHJl
YWQoKSk7CiAKQEAgLTMxMyw3ICszMTMsNyBAQCB2b2lkIEFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVO
b2RlKEFYQ29yZU9iamVjdCYgYXhPYmplY3QpCiAKIHZvaWQgQVhJc29sYXRlZFRyZWU6OnVwZGF0
ZU5vZGVQcm9wZXJ0eShjb25zdCBBWENvcmVPYmplY3QmIGF4T2JqZWN0LCBBWFByb3BlcnR5TmFt
ZSBwcm9wZXJ0eSkKIHsKLSAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6dXBkYXRlTm9kZVBy
b3BlcnR5Iik7CisgICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OnVwZGF0ZU5vZGVQcm9wZXJ0
eSJfcyk7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIAogICAgIEFYUHJvcGVydHlNYXAg
cHJvcGVydHlNYXA7CkBAIC0zNDgsNyArMzQ4LDcgQEAgdm9pZCBBWElzb2xhdGVkVHJlZTo6dXBk
YXRlTm9kZVByb3BlcnR5KGNvbnN0IEFYQ29yZU9iamVjdCYgYXhPYmplY3QsIEFYUHJvcGVydHkK
IAogdm9pZCBBWElzb2xhdGVkVHJlZTo6dXBkYXRlQ2hpbGRyZW4oQVhDb3JlT2JqZWN0JiBheE9i
amVjdCkKIHsKLSAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6dXBkYXRlQ2hpbGRyZW4iKTsK
KyAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6dXBkYXRlQ2hpbGRyZW4iX3MpOwogICAgIEFY
TE9HKCJGb3IgQVhPYmplY3Q6Iik7CiAgICAgQVhMT0coJmF4T2JqZWN0KTsKICAgICBBU1NFUlQo
aXNNYWluVGhyZWFkKCkpOwpAQCAtNDIyLDcgKzQyMiw3IEBAIHZvaWQgQVhJc29sYXRlZFRyZWU6
OnVwZGF0ZUNoaWxkcmVuKEFYQ29yZU9iamVjdCYgYXhPYmplY3QpCiAKIFJlZlB0cjxBWElzb2xh
dGVkT2JqZWN0PiBBWElzb2xhdGVkVHJlZTo6Zm9jdXNlZE5vZGUoKQogewotICAgIEFYVFJBQ0Uo
IkFYSXNvbGF0ZWRUcmVlOjpmb2N1c2VkTm9kZSIpOworICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRU
cmVlOjpmb2N1c2VkTm9kZSJfcyk7CiAgICAgUkVMRUFTRV9BU1NFUlQoIWlzTWFpblRocmVhZCgp
KTsKICAgICAvLyBBcHBseSBwZW5kaW5nIGNoYW5nZXMgaW4gY2FzZSBmb2N1cyBoYXMgY2hhbmdl
ZCBhbmQgaGFzbid0IGJlZW4gdXBkYXRlZC4KICAgICBhcHBseVBlbmRpbmdDaGFuZ2VzKCk7CkBA
IC00MzQsMTQgKzQzNCwxNCBAQCBSZWZQdHI8QVhJc29sYXRlZE9iamVjdD4gQVhJc29sYXRlZFRy
ZWU6OmZvY3VzZWROb2RlKCkKIAogUmVmUHRyPEFYSXNvbGF0ZWRPYmplY3Q+IEFYSXNvbGF0ZWRU
cmVlOjpyb290Tm9kZSgpCiB7Ci0gICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OnJvb3ROb2Rl
Iik7CisgICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OnJvb3ROb2RlIl9zKTsKICAgICBMb2Nr
ZXIgbG9ja2VyIHsgbV9jaGFuZ2VMb2dMb2NrIH07CiAgICAgcmV0dXJuIG1fcm9vdE5vZGU7CiB9
CiAKIHZvaWQgQVhJc29sYXRlZFRyZWU6OnNldFJvb3ROb2RlKEFYSXNvbGF0ZWRPYmplY3QqIHJv
b3QpCiB7Ci0gICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OnNldFJvb3ROb2RlIik7CisgICAg
QVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OnNldFJvb3ROb2RlIl9zKTsKICAgICBBU1NFUlQoaXNN
YWluVGhyZWFkKCkpOwogICAgIEFTU0VSVChtX2NoYW5nZUxvZ0xvY2suaXNMb2NrZWQoKSk7CiAg
ICAgQVNTRVJUKCFtX3Jvb3ROb2RlKTsKQEAgLTQ1Miw3ICs0NTIsNyBAQCB2b2lkIEFYSXNvbGF0
ZWRUcmVlOjpzZXRSb290Tm9kZShBWElzb2xhdGVkT2JqZWN0KiByb290KQogCiB2b2lkIEFYSXNv
bGF0ZWRUcmVlOjpzZXRGb2N1c2VkTm9kZUlEKEFYSUQgYXhJRCkKIHsKLSAgICBBWFRSQUNFKCJB
WElzb2xhdGVkVHJlZTo6c2V0Rm9jdXNlZE5vZGVJRCIpOworICAgIEFYVFJBQ0UoIkFYSXNvbGF0
ZWRUcmVlOjpzZXRGb2N1c2VkTm9kZUlEIl9zKTsKICAgICBBWExPRyhtYWtlU3RyaW5nKCJheElE
ICIsIGF4SUQubG9nZ2luZ1N0cmluZygpKSk7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsK
IApAQCAtNDY2LDcgKzQ2Niw3IEBAIHZvaWQgQVhJc29sYXRlZFRyZWU6OnNldEZvY3VzZWROb2Rl
SUQoQVhJRCBheElEKQogCiB2b2lkIEFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVMb2FkaW5nUHJvZ3Jl
c3MoZG91YmxlIG5ld1Byb2dyZXNzVmFsdWUpCiB7Ci0gICAgQVhUUkFDRSgiQVhJc29sYXRlZFRy
ZWU6OnVwZGF0ZUxvYWRpbmdQcm9ncmVzcyIpOworICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVl
Ojp1cGRhdGVMb2FkaW5nUHJvZ3Jlc3MiX3MpOwogICAgIEFYTE9HKG1ha2VTdHJpbmcoIlVwZGF0
aW5nIGxvYWRpbmcgcHJvZ3Jlc3MgdG8gIiwgbmV3UHJvZ3Jlc3NWYWx1ZSwgIiBmb3IgdHJlZUlE
ICIsIHRyZWVJRCgpKSk7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIApAQCAtNDc1LDcg
KzQ3NSw3IEBAIHZvaWQgQVhJc29sYXRlZFRyZWU6OnVwZGF0ZUxvYWRpbmdQcm9ncmVzcyhkb3Vi
bGUgbmV3UHJvZ3Jlc3NWYWx1ZSkKIAogdm9pZCBBWElzb2xhdGVkVHJlZTo6cmVtb3ZlTm9kZShj
b25zdCBBWENvcmVPYmplY3QmIGF4T2JqZWN0KQogewotICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRU
cmVlOjpyZW1vdmVOb2RlIik7CisgICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OnJlbW92ZU5v
ZGUiX3MpOwogICAgIEFYTE9HKG1ha2VTdHJpbmcoIm9iamVjdElEICIsIGF4T2JqZWN0Lm9iamVj
dElEKCkubG9nZ2luZ1N0cmluZygpKSk7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIApA
QCAtNDg1LDcgKzQ4NSw3IEBAIHZvaWQgQVhJc29sYXRlZFRyZWU6OnJlbW92ZU5vZGUoY29uc3Qg
QVhDb3JlT2JqZWN0JiBheE9iamVjdCkKIAogdm9pZCBBWElzb2xhdGVkVHJlZTo6cmVtb3ZlU3Vi
dHJlZUZyb21Ob2RlTWFwKEFYSUQgb2JqZWN0SUQsIEFYQ29yZU9iamVjdCogYXhQYXJlbnQsIGNv
bnN0IEhhc2hTZXQ8QVhJRD4mIGlkc1RvS2VlcCkKIHsKLSAgICBBWFRSQUNFKCJBWElzb2xhdGVk
VHJlZTo6cmVtb3ZlU3VidHJlZUZyb21Ob2RlTWFwIik7CisgICAgQVhUUkFDRSgiQVhJc29sYXRl
ZFRyZWU6OnJlbW92ZVN1YnRyZWVGcm9tTm9kZU1hcCJfcyk7CiAgICAgQVhMT0cobWFrZVN0cmlu
ZygiUmVtb3Zpbmcgc3VidHJlZSBmb3Igb2JqZWN0SUQgIiwgb2JqZWN0SUQubG9nZ2luZ1N0cmlu
ZygpKSk7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIApAQCAtNTIzLDcgKzUyMyw3IEBA
IHZvaWQgQVhJc29sYXRlZFRyZWU6OnJlbW92ZVN1YnRyZWVGcm9tTm9kZU1hcChBWElEIG9iamVj
dElELCBBWENvcmVPYmplY3QqIGF4UGFyCiAKIHZvaWQgQVhJc29sYXRlZFRyZWU6OmFwcGx5UGVu
ZGluZ0NoYW5nZXMoKQogewotICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjphcHBseVBlbmRp
bmdDaGFuZ2VzIik7CisgICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OmFwcGx5UGVuZGluZ0No
YW5nZXMiX3MpOwogCiAgICAgLy8gSW4gaXNvbGF0ZWQgdHJlZSBtb2RlIDIsIG9ubHkgYXBwbHkg
cGVuZGluZyBjaGFuZ2VzIG9uIHRoZSBBWCB0aHJlYWQuCiAgICAgQVNTRVJUKG1fdXNlZE9uQVhU
aHJlYWQgPyAhaXNNYWluVGhyZWFkKCkgOiBpc01haW5UaHJlYWQoKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0TWFjLm1t
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQWNjZXNzaWJpbGl0eU9iamVjdE1h
Yy5tbQppbmRleCBhMjg5NTM4NzRjODA1NTEyN2Y4MGIyZmMzNjJkOWNlODIxZTcwMWM0Li5mYzZl
NDA4Y2ZjN2E5MjUzYTFlODk1MDdlMDA1NDk0MDM4YzlmYjNiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0TWFjLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FjY2Vzc2liaWxpdHlPYmplY3RNYWMu
bW0KQEAgLTIyMiwyMCArMjIyLDIwIEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzdWJy
b2xlUGxhdGZvcm1TdHJpbmcoKSBjb25zdAogICAgIH0KIAogICAgIGlmIChpc01ldGVyKCkpCi0g
ICAgICAgIHJldHVybiAiQVhNZXRlciI7CisgICAgICAgIHJldHVybiAiQVhNZXRlciJfczsKIAog
I2lmIEVOQUJMRShNT0RFTF9FTEVNRU5UKQogICAgIGlmIChpc01vZGVsKCkpCi0gICAgICAgIHJl
dHVybiAiQVhNb2RlbCI7CisgICAgICAgIHJldHVybiAiQVhNb2RlbCJfczsKICNlbmRpZgogCiAg
ICAgQWNjZXNzaWJpbGl0eVJvbGUgcm9sZSA9IHJvbGVWYWx1ZSgpOwogICAgIGlmIChyb2xlID09
IEFjY2Vzc2liaWxpdHlSb2xlOjpIb3Jpem9udGFsUnVsZSkKLSAgICAgICAgcmV0dXJuICJBWENv
bnRlbnRTZXBhcmF0b3IiOworICAgICAgICByZXR1cm4gIkFYQ29udGVudFNlcGFyYXRvciJfczsK
ICAgICBpZiAocm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6VG9nZ2xlQnV0dG9uKQogICAgICAg
ICByZXR1cm4gTlNBY2Nlc3NpYmlsaXR5VG9nZ2xlU3Vicm9sZTsKICAgICBpZiAocm9sZSA9PSBB
Y2Nlc3NpYmlsaXR5Um9sZTo6Rm9vdGVyKQotICAgICAgICByZXR1cm4gIkFYRm9vdGVyIjsKKyAg
ICAgICAgcmV0dXJuICJBWEZvb3RlciJfczsKICAgICBpZiAocm9sZSA9PSBBY2Nlc3NpYmlsaXR5
Um9sZTo6U3BpbkJ1dHRvblBhcnQpIHsKICAgICAgICAgaWYgKGlzSW5jcmVtZW50b3IoKSkKICAg
ICAgICAgICAgIHJldHVybiBOU0FjY2Vzc2liaWxpdHlJbmNyZW1lbnRBcnJvd1N1YnJvbGU7CkBA
IC0yNDMsNzkgKzI0Myw3OSBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0eU9iamVjdDo6c3Vicm9sZVBs
YXRmb3JtU3RyaW5nKCkgY29uc3QKICAgICB9CiAKICAgICBpZiAoaXNGaWxlVXBsb2FkQnV0dG9u
KCkpCi0gICAgICAgIHJldHVybiAiQVhGaWxlVXBsb2FkQnV0dG9uIjsKKyAgICAgICAgcmV0dXJu
ICJBWEZpbGVVcGxvYWRCdXR0b24iX3M7CiAKICAgICBpZiAoaXNUcmVlSXRlbSgpKQogICAgICAg
ICByZXR1cm4gTlNBY2Nlc3NpYmlsaXR5T3V0bGluZVJvd1N1YnJvbGU7CiAKICAgICBpZiAoaXNG
aWVsZHNldCgpKQotICAgICAgICByZXR1cm4gIkFYRmllbGRzZXQiOworICAgICAgICByZXR1cm4g
IkFYRmllbGRzZXQiX3M7CiAKICAgICBpZiAoaXNMaXN0KCkpIHsKICAgICAgICAgaWYgKGlzVW5v
cmRlcmVkTGlzdCgpIHx8IGlzT3JkZXJlZExpc3QoKSkKLSAgICAgICAgICAgIHJldHVybiAiQVhD
b250ZW50TGlzdCI7CisgICAgICAgICAgICByZXR1cm4gIkFYQ29udGVudExpc3QiX3M7CiAgICAg
ICAgIGlmIChpc0Rlc2NyaXB0aW9uTGlzdCgpKQotICAgICAgICAgICAgcmV0dXJuICJBWERlc2Ny
aXB0aW9uTGlzdCI7CisgICAgICAgICAgICByZXR1cm4gIkFYRGVzY3JpcHRpb25MaXN0Il9zOwog
ICAgIH0KIAogICAgIC8vIEFSSUEgY29udGVudCBzdWJyb2xlcy4KICAgICBzd2l0Y2ggKHJvbGUp
IHsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpMYW5kbWFya0Jhbm5lcjoKLSAgICAgICAg
cmV0dXJuICJBWExhbmRtYXJrQmFubmVyIjsKKyAgICAgICAgcmV0dXJuICJBWExhbmRtYXJrQmFu
bmVyIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJrQ29tcGxlbWVudGFy
eToKLSAgICAgICAgcmV0dXJuICJBWExhbmRtYXJrQ29tcGxlbWVudGFyeSI7CisgICAgICAgIHJl
dHVybiAiQVhMYW5kbWFya0NvbXBsZW1lbnRhcnkiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5
Um9sZTo6TGFuZG1hcmtDb250ZW50SW5mbzoKLSAgICAgICAgcmV0dXJuICJBWExhbmRtYXJrQ29u
dGVudEluZm8iOworICAgICAgICByZXR1cm4gIkFYTGFuZG1hcmtDb250ZW50SW5mbyJfczsKICAg
ICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpMYW5kbWFya01haW46Ci0gICAgICAgIHJldHVybiAi
QVhMYW5kbWFya01haW4iOworICAgICAgICByZXR1cm4gIkFYTGFuZG1hcmtNYWluIl9zOwogICAg
IGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJrTmF2aWdhdGlvbjoKLSAgICAgICAgcmV0
dXJuICJBWExhbmRtYXJrTmF2aWdhdGlvbiI7CisgICAgICAgIHJldHVybiAiQVhMYW5kbWFya05h
dmlnYXRpb24iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtEb2NSZWdp
b246CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtSZWdpb246Ci0gICAgICAg
IHJldHVybiAiQVhMYW5kbWFya1JlZ2lvbiI7CisgICAgICAgIHJldHVybiAiQVhMYW5kbWFya1Jl
Z2lvbiJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpMYW5kbWFya1NlYXJjaDoKLSAg
ICAgICAgcmV0dXJuICJBWExhbmRtYXJrU2VhcmNoIjsKKyAgICAgICAgcmV0dXJuICJBWExhbmRt
YXJrU2VhcmNoIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uQWxl
cnQ6Ci0gICAgICAgIHJldHVybiAiQVhBcHBsaWNhdGlvbkFsZXJ0IjsKKyAgICAgICAgcmV0dXJu
ICJBWEFwcGxpY2F0aW9uQWxlcnQiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBw
bGljYXRpb25BbGVydERpYWxvZzoKLSAgICAgICAgcmV0dXJuICJBWEFwcGxpY2F0aW9uQWxlcnRE
aWFsb2ciOworICAgICAgICByZXR1cm4gIkFYQXBwbGljYXRpb25BbGVydERpYWxvZyJfczsKICAg
ICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvbkRpYWxvZzoKLSAgICAgICAgcmV0
dXJuICJBWEFwcGxpY2F0aW9uRGlhbG9nIjsKKyAgICAgICAgcmV0dXJuICJBWEFwcGxpY2F0aW9u
RGlhbG9nIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uR3JvdXA6
CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb25UZXh0R3JvdXA6CiAgICAg
Y2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RmVlZDoKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xl
OjpGb290bm90ZToKLSAgICAgICAgcmV0dXJuICJBWEFwcGxpY2F0aW9uR3JvdXAiOworICAgICAg
ICByZXR1cm4gIkFYQXBwbGljYXRpb25Hcm91cCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlS
b2xlOjpBcHBsaWNhdGlvbkxvZzoKLSAgICAgICAgcmV0dXJuICJBWEFwcGxpY2F0aW9uTG9nIjsK
KyAgICAgICAgcmV0dXJuICJBWEFwcGxpY2F0aW9uTG9nIl9zOwogICAgIGNhc2UgQWNjZXNzaWJp
bGl0eVJvbGU6OkFwcGxpY2F0aW9uTWFycXVlZToKLSAgICAgICAgcmV0dXJuICJBWEFwcGxpY2F0
aW9uTWFycXVlZSI7CisgICAgICAgIHJldHVybiAiQVhBcHBsaWNhdGlvbk1hcnF1ZWUiX3M7CiAg
ICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb25TdGF0dXM6Ci0gICAgICAgIHJl
dHVybiAiQVhBcHBsaWNhdGlvblN0YXR1cyI7CisgICAgICAgIHJldHVybiAiQVhBcHBsaWNhdGlv
blN0YXR1cyJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvblRpbWVy
OgotICAgICAgICByZXR1cm4gIkFYQXBwbGljYXRpb25UaW1lciI7CisgICAgICAgIHJldHVybiAi
QVhBcHBsaWNhdGlvblRpbWVyIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRvY3Vt
ZW50OgogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkdyYXBoaWNzRG9jdW1lbnQ6Ci0gICAg
ICAgIHJldHVybiAiQVhEb2N1bWVudCI7CisgICAgICAgIHJldHVybiAiQVhEb2N1bWVudCJfczsK
ICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpEb2N1bWVudEFydGljbGU6Ci0gICAgICAgIHJl
dHVybiAiQVhEb2N1bWVudEFydGljbGUiOworICAgICAgICByZXR1cm4gIkFYRG9jdW1lbnRBcnRp
Y2xlIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRvY3VtZW50TWF0aDoKLSAgICAg
ICAgcmV0dXJuICJBWERvY3VtZW50TWF0aCI7CisgICAgICAgIHJldHVybiAiQVhEb2N1bWVudE1h
dGgiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RG9jdW1lbnROb3RlOgotICAgICAg
ICByZXR1cm4gIkFYRG9jdW1lbnROb3RlIjsKKyAgICAgICAgcmV0dXJuICJBWERvY3VtZW50Tm90
ZSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpVc2VySW50ZXJmYWNlVG9vbHRpcDoK
LSAgICAgICAgcmV0dXJuICJBWFVzZXJJbnRlcmZhY2VUb29sdGlwIjsKKyAgICAgICAgcmV0dXJu
ICJBWFVzZXJJbnRlcmZhY2VUb29sdGlwIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6
OlRhYlBhbmVsOgotICAgICAgICByZXR1cm4gIkFYVGFiUGFuZWwiOworICAgICAgICByZXR1cm4g
IkFYVGFiUGFuZWwiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RGVmaW5pdGlvbjoK
LSAgICAgICAgcmV0dXJuICJBWERlZmluaXRpb24iOworICAgICAgICByZXR1cm4gIkFYRGVmaW5p
dGlvbiJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpEZXNjcmlwdGlvbkxpc3RUZXJt
OgogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlRlcm06Ci0gICAgICAgIHJldHVybiAiQVhU
ZXJtIjsKKyAgICAgICAgcmV0dXJuICJBWFRlcm0iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5
Um9sZTo6RGVzY3JpcHRpb25MaXN0RGV0YWlsOgotICAgICAgICByZXR1cm4gIkFYRGVzY3JpcHRp
b24iOworICAgICAgICByZXR1cm4gIkFYRGVzY3JpcHRpb24iX3M7CiAgICAgY2FzZSBBY2Nlc3Np
YmlsaXR5Um9sZTo6V2ViQXBwbGljYXRpb246Ci0gICAgICAgIHJldHVybiAiQVhXZWJBcHBsaWNh
dGlvbiI7CisgICAgICAgIHJldHVybiAiQVhXZWJBcHBsaWNhdGlvbiJfczsKICAgICAgICAgLy8g
RGVmYXVsdCBkb2Vzbid0IHJldHVybiBhbnl0aGluZywgc28gcm9sZXMgZGVmaW5lZCBiZWxvdyBj
YW4gYmUgY2hvc2VuLgogICAgIGRlZmF1bHQ6CiAgICAgICAgIGJyZWFrOwpAQCAtMzIzLDUxICsz
MjMsNTEgQEAgU3RyaW5nIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnN1YnJvbGVQbGF0Zm9ybVN0cmlu
ZygpIGNvbnN0CiAKICAgICBpZiAocm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6TWF0aEVsZW1l
bnQpIHsKICAgICAgICAgaWYgKGlzTWF0aEZyYWN0aW9uKCkpCi0gICAgICAgICAgICByZXR1cm4g
IkFYTWF0aEZyYWN0aW9uIjsKKyAgICAgICAgICAgIHJldHVybiAiQVhNYXRoRnJhY3Rpb24iX3M7
CiAgICAgICAgIGlmIChpc01hdGhGZW5jZWQoKSkKLSAgICAgICAgICAgIHJldHVybiAiQVhNYXRo
RmVuY2VkIjsKKyAgICAgICAgICAgIHJldHVybiAiQVhNYXRoRmVuY2VkIl9zOwogICAgICAgICBp
ZiAoaXNNYXRoU3Vic2NyaXB0U3VwZXJzY3JpcHQoKSkKLSAgICAgICAgICAgIHJldHVybiAiQVhN
YXRoU3Vic2NyaXB0U3VwZXJzY3JpcHQiOworICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhTdWJz
Y3JpcHRTdXBlcnNjcmlwdCJfczsKICAgICAgICAgaWYgKGlzTWF0aFJvdygpKQotICAgICAgICAg
ICAgcmV0dXJuICJBWE1hdGhSb3ciOworICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhSb3ciX3M7
CiAgICAgICAgIGlmIChpc01hdGhVbmRlck92ZXIoKSkKLSAgICAgICAgICAgIHJldHVybiAiQVhN
YXRoVW5kZXJPdmVyIjsKKyAgICAgICAgICAgIHJldHVybiAiQVhNYXRoVW5kZXJPdmVyIl9zOwog
ICAgICAgICBpZiAoaXNNYXRoU3F1YXJlUm9vdCgpKQotICAgICAgICAgICAgcmV0dXJuICJBWE1h
dGhTcXVhcmVSb290IjsKKyAgICAgICAgICAgIHJldHVybiAiQVhNYXRoU3F1YXJlUm9vdCJfczsK
ICAgICAgICAgaWYgKGlzTWF0aFJvb3QoKSkKLSAgICAgICAgICAgIHJldHVybiAiQVhNYXRoUm9v
dCI7CisgICAgICAgICAgICByZXR1cm4gIkFYTWF0aFJvb3QiX3M7CiAgICAgICAgIGlmIChpc01h
dGhUZXh0KCkpCi0gICAgICAgICAgICByZXR1cm4gIkFYTWF0aFRleHQiOworICAgICAgICAgICAg
cmV0dXJuICJBWE1hdGhUZXh0Il9zOwogICAgICAgICBpZiAoaXNNYXRoTnVtYmVyKCkpCi0gICAg
ICAgICAgICByZXR1cm4gIkFYTWF0aE51bWJlciI7CisgICAgICAgICAgICByZXR1cm4gIkFYTWF0
aE51bWJlciJfczsKICAgICAgICAgaWYgKGlzTWF0aElkZW50aWZpZXIoKSkKLSAgICAgICAgICAg
IHJldHVybiAiQVhNYXRoSWRlbnRpZmllciI7CisgICAgICAgICAgICByZXR1cm4gIkFYTWF0aElk
ZW50aWZpZXIiX3M7CiAgICAgICAgIGlmIChpc01hdGhUYWJsZSgpKQotICAgICAgICAgICAgcmV0
dXJuICJBWE1hdGhUYWJsZSI7CisgICAgICAgICAgICByZXR1cm4gIkFYTWF0aFRhYmxlIl9zOwog
ICAgICAgICBpZiAoaXNNYXRoVGFibGVSb3coKSkKLSAgICAgICAgICAgIHJldHVybiAiQVhNYXRo
VGFibGVSb3ciOworICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhUYWJsZVJvdyJfczsKICAgICAg
ICAgaWYgKGlzTWF0aFRhYmxlQ2VsbCgpKQotICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhUYWJs
ZUNlbGwiOworICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhUYWJsZUNlbGwiX3M7CiAgICAgICAg
IGlmIChpc01hdGhGZW5jZU9wZXJhdG9yKCkpCi0gICAgICAgICAgICByZXR1cm4gIkFYTWF0aEZl
bmNlT3BlcmF0b3IiOworICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhGZW5jZU9wZXJhdG9yIl9z
OwogICAgICAgICBpZiAoaXNNYXRoU2VwYXJhdG9yT3BlcmF0b3IoKSkKLSAgICAgICAgICAgIHJl
dHVybiAiQVhNYXRoU2VwYXJhdG9yT3BlcmF0b3IiOworICAgICAgICAgICAgcmV0dXJuICJBWE1h
dGhTZXBhcmF0b3JPcGVyYXRvciJfczsKICAgICAgICAgaWYgKGlzTWF0aE9wZXJhdG9yKCkpCi0g
ICAgICAgICAgICByZXR1cm4gIkFYTWF0aE9wZXJhdG9yIjsKKyAgICAgICAgICAgIHJldHVybiAi
QVhNYXRoT3BlcmF0b3IiX3M7CiAgICAgICAgIGlmIChpc01hdGhNdWx0aXNjcmlwdCgpKQotICAg
ICAgICAgICAgcmV0dXJuICJBWE1hdGhNdWx0aXNjcmlwdCI7CisgICAgICAgICAgICByZXR1cm4g
IkFYTWF0aE11bHRpc2NyaXB0Il9zOwogICAgIH0KIAogICAgIGlmIChyb2xlID09IEFjY2Vzc2li
aWxpdHlSb2xlOjpWaWRlbykKLSAgICAgICAgcmV0dXJuICJBWFZpZGVvIjsKKyAgICAgICAgcmV0
dXJuICJBWFZpZGVvIl9zOwogICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpBdWRp
bykKLSAgICAgICAgcmV0dXJuICJBWEF1ZGlvIjsKKyAgICAgICAgcmV0dXJuICJBWEF1ZGlvIl9z
OwogICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpEZXRhaWxzKQotICAgICAgICBy
ZXR1cm4gIkFYRGV0YWlscyI7CisgICAgICAgIHJldHVybiAiQVhEZXRhaWxzIl9zOwogICAgIGlm
IChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpTdW1tYXJ5KQotICAgICAgICByZXR1cm4gIkFY
U3VtbWFyeSI7CisgICAgICAgIHJldHVybiAiQVhTdW1tYXJ5Il9zOwogICAgIGlmIChyb2xlID09
IEFjY2Vzc2liaWxpdHlSb2xlOjpUaW1lKQotICAgICAgICByZXR1cm4gIkFYVGltZUdyb3VwIjsK
KyAgICAgICAgcmV0dXJuICJBWFRpbWVHcm91cCJfczsKIAogICAgIGlmIChpc01lZGlhVGltZWxp
bmUoKSkKICAgICAgICAgcmV0dXJuIE5TQWNjZXNzaWJpbGl0eVRpbWVsaW5lU3Vicm9sZTsKQEAg
LTM3NiwyNSArMzc2LDI1IEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzdWJyb2xlUGxh
dGZvcm1TdHJpbmcoKSBjb25zdAogICAgICAgICByZXR1cm4gTlNBY2Nlc3NpYmlsaXR5U3dpdGNo
U3Vicm9sZTsKIAogICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpJbnNlcnRpb24p
Ci0gICAgICAgIHJldHVybiAiQVhJbnNlcnRTdHlsZUdyb3VwIjsKKyAgICAgICAgcmV0dXJuICJB
WEluc2VydFN0eWxlR3JvdXAiX3M7CiAgICAgaWYgKHJvbGUgPT0gQWNjZXNzaWJpbGl0eVJvbGU6
OkRlbGV0aW9uKQotICAgICAgICByZXR1cm4gIkFYRGVsZXRlU3R5bGVHcm91cCI7CisgICAgICAg
IHJldHVybiAiQVhEZWxldGVTdHlsZUdyb3VwIl9zOwogICAgIGlmIChyb2xlID09IEFjY2Vzc2li
aWxpdHlSb2xlOjpTdXBlcnNjcmlwdCkKLSAgICAgICAgcmV0dXJuICJBWFN1cGVyc2NyaXB0U3R5
bGVHcm91cCI7CisgICAgICAgIHJldHVybiAiQVhTdXBlcnNjcmlwdFN0eWxlR3JvdXAiX3M7CiAg
ICAgaWYgKHJvbGUgPT0gQWNjZXNzaWJpbGl0eVJvbGU6OlN1YnNjcmlwdCkKLSAgICAgICAgcmV0
dXJuICJBWFN1YnNjcmlwdFN0eWxlR3JvdXAiOworICAgICAgICByZXR1cm4gIkFYU3Vic2NyaXB0
U3R5bGVHcm91cCJfczsKIAogICAgIHN3aXRjaCAocm9sZSkgewogICAgIGNhc2UgQWNjZXNzaWJp
bGl0eVJvbGU6OlJ1YnlCYXNlOgotICAgICAgICByZXR1cm4gIkFYUnVieUJhc2UiOworICAgICAg
ICByZXR1cm4gIkFYUnVieUJhc2UiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6UnVi
eUJsb2NrOgotICAgICAgICByZXR1cm4gIkFYUnVieUJsb2NrIjsKKyAgICAgICAgcmV0dXJuICJB
WFJ1YnlCbG9jayJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpSdWJ5SW5saW5lOgot
ICAgICAgICByZXR1cm4gIkFYUnVieUlubGluZSI7CisgICAgICAgIHJldHVybiAiQVhSdWJ5SW5s
aW5lIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlJ1YnlSdW46Ci0gICAgICAgIHJl
dHVybiAiQVhSdWJ5UnVuIjsKKyAgICAgICAgcmV0dXJuICJBWFJ1YnlSdW4iX3M7CiAgICAgY2Fz
ZSBBY2Nlc3NpYmlsaXR5Um9sZTo6UnVieVRleHQ6Ci0gICAgICAgIHJldHVybiAiQVhSdWJ5VGV4
dCI7CisgICAgICAgIHJldHVybiAiQVhSdWJ5VGV4dCJfczsKICAgICBkZWZhdWx0OgogICAgICAg
ICBicmVhazsKICAgICB9CkBAIC00MDMsMTcgKzQwMywxNyBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0
eU9iamVjdDo6c3Vicm9sZVBsYXRmb3JtU3RyaW5nKCkgY29uc3QKICAgICAgICAgdXNpbmcgbmFt
ZXNwYWNlIEhUTUxOYW1lczsKICAgICAgICAgYXV0byB0YWcgPSB0YWdOYW1lKCk7CiAgICAgICAg
IGlmICh0YWcgPT0ga2JkVGFnKQotICAgICAgICAgICAgcmV0dXJuIEAiQVhLZXlib2FyZElucHV0
U3R5bGVHcm91cCI7CisgICAgICAgICAgICByZXR1cm4gIkFYS2V5Ym9hcmRJbnB1dFN0eWxlR3Jv
dXAiX3M7CiAgICAgICAgIGlmICh0YWcgPT0gY29kZVRhZykKLSAgICAgICAgICAgIHJldHVybiBA
IkFYQ29kZVN0eWxlR3JvdXAiOworICAgICAgICAgICAgcmV0dXJuICJBWENvZGVTdHlsZUdyb3Vw
Il9zOwogICAgICAgICBpZiAodGFnID09IHByZVRhZykKLSAgICAgICAgICAgIHJldHVybiBAIkFY
UHJlZm9ybWF0dGVkU3R5bGVHcm91cCI7CisgICAgICAgICAgICByZXR1cm4gIkFYUHJlZm9ybWF0
dGVkU3R5bGVHcm91cCJfczsKICAgICAgICAgaWYgKHRhZyA9PSBzYW1wVGFnKQotICAgICAgICAg
ICAgcmV0dXJuIEAiQVhTYW1wbGVTdHlsZUdyb3VwIjsKKyAgICAgICAgICAgIHJldHVybiAiQVhT
YW1wbGVTdHlsZUdyb3VwIl9zOwogICAgICAgICBpZiAodGFnID09IHZhclRhZykKLSAgICAgICAg
ICAgIHJldHVybiBAIkFYVmFyaWFibGVTdHlsZUdyb3VwIjsKKyAgICAgICAgICAgIHJldHVybiAi
QVhWYXJpYWJsZVN0eWxlR3JvdXAiX3M7CiAgICAgICAgIGlmICh0YWcgPT0gY2l0ZVRhZykKLSAg
ICAgICAgICAgIHJldHVybiBAIkFYQ2l0ZVN0eWxlR3JvdXAiOworICAgICAgICAgICAgcmV0dXJu
ICJBWENpdGVTdHlsZUdyb3VwIl9zOwogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAg
ICAgICAgcmV0dXJuIFN0cmluZygpOwogICAgIH0KQEAgLTQzNiw3ICs0MzYsNyBAQCBTdHJpbmcg
QWNjZXNzaWJpbGl0eU9iamVjdDo6cm9sZVBsYXRmb3JtRGVzY3JpcHRpb24oKSBjb25zdAogCiAg
ICAgICAgIHN3aXRjaCAocm9sZSkgewogICAgICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpB
dWRpbzoKLSAgICAgICAgICAgIHJldHVybiBsb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVtZW50U3Ry
aW5nKCJBdWRpb0VsZW1lbnQiKTsKKyAgICAgICAgICAgIHJldHVybiBsb2NhbGl6ZWRNZWRpYUNv
bnRyb2xFbGVtZW50U3RyaW5nKCJBdWRpb0VsZW1lbnQiX3MpOwogICAgICAgICBjYXNlIEFjY2Vz
c2liaWxpdHlSb2xlOjpEZWZpbml0aW9uOgogICAgICAgICAgICAgcmV0dXJuIEFYRGVmaW5pdGlv
blRleHQoKTsKICAgICAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RGVzY3JpcHRpb25MaXN0
VGVybToKQEAgLTQ1Myw5ICs0NTMsOSBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0eU9iamVjdDo6cm9s
ZVBsYXRmb3JtRGVzY3JpcHRpb24oKSBjb25zdAogICAgICAgICBjYXNlIEFjY2Vzc2liaWxpdHlS
b2xlOjpNYXJrOgogICAgICAgICAgICAgcmV0dXJuIEFYTWFya1RleHQoKTsKICAgICAgICAgY2Fz
ZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VmlkZW86Ci0gICAgICAgICAgICByZXR1cm4gbG9jYWxpemVk
TWVkaWFDb250cm9sRWxlbWVudFN0cmluZygiVmlkZW9FbGVtZW50Iik7CisgICAgICAgICAgICBy
ZXR1cm4gbG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudFN0cmluZygiVmlkZW9FbGVtZW50Il9z
KTsKICAgICAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6R3JhcGhpY3NEb2N1bWVudDoKLSAg
ICAgICAgICAgIHJldHVybiBBWEFSSUFDb250ZW50R3JvdXBUZXh0KEAiQVJJQURvY3VtZW50Iik7
CisgICAgICAgICAgICByZXR1cm4gQVhBUklBQ29udGVudEdyb3VwVGV4dCgiQVJJQURvY3VtZW50
Iik7CiAgICAgICAgIGRlZmF1bHQ6CiAgICAgICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAgICAg
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9BbmltYXRpb25FZmZl
Y3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0FuaW1hdGlvbkVmZmVjdC5jcHAKaW5k
ZXggMjM5YmQwNDVmODBhZWE4ZGNkZjMxYzVlMGM0Mzg4YTAyYjUyOTU1Mi4uNDMxZmRlYTE1NzI2
MjcyYTJiNjhmOTc0YjI2ZTBhZTZhNTVmYzBhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YW5pbWF0aW9uL0FuaW1hdGlvbkVmZmVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0
aW9uL0FuaW1hdGlvbkVmZmVjdC5jcHAKQEAgLTY5LDcgKzY5LDcgQEAgRWZmZWN0VGltaW5nIEFu
aW1hdGlvbkVmZmVjdDo6Z2V0VGltaW5nKCkgY29uc3QKICAgICB0aW1pbmcuaXRlcmF0aW9uU3Rh
cnQgPSBtX2l0ZXJhdGlvblN0YXJ0OwogICAgIHRpbWluZy5pdGVyYXRpb25zID0gbV9pdGVyYXRp
b25zOwogICAgIGlmIChtX2l0ZXJhdGlvbkR1cmF0aW9uID09IDBfcykKLSAgICAgICAgdGltaW5n
LmR1cmF0aW9uID0gImF1dG8iOworICAgICAgICB0aW1pbmcuZHVyYXRpb24gPSAiYXV0byJfczsK
ICAgICBlbHNlCiAgICAgICAgIHRpbWluZy5kdXJhdGlvbiA9IHNlY29uZHNUb1dlYkFuaW1hdGlv
bnNBUElUaW1lKG1faXRlcmF0aW9uRHVyYXRpb24pOwogICAgIHRpbWluZy5kaXJlY3Rpb24gPSBt
X2RpcmVjdGlvbjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9Eb2N1bWVu
dFRpbWVsaW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5l
LmNwcAppbmRleCAzYzk1OWU5Y2JkNGE4NzEyNDRlZTJmNDViMGI1YWEwNmUxYzVmZDQ1Li5jODZm
MmFkNTVjNGIxMjhlZWNlZGI4MDEwZjRjNDcxM2JhZjQ2NzY3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9hbmltYXRpb24vRG9jdW1lbnRUaW1lbGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYW5pbWF0aW9uL0RvY3VtZW50VGltZWxpbmUuY3BwCkBAIC00NTIsNyArNDUyLDcgQEAgRXhj
ZXB0aW9uT3I8UmVmPFdlYkFuaW1hdGlvbj4+IERvY3VtZW50VGltZWxpbmU6OmFuaW1hdGUoUmVm
PEN1c3RvbUVmZmVjdENhbGxiYWMKICAgICBpZiAoIW1fZG9jdW1lbnQpCiAgICAgICAgIHJldHVy
biBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9OwogCi0gICAgU3RyaW5nIGlkID0gIiI7
CisgICAgU3RyaW5nIGlkID0gZW1wdHlTdHJpbmcoKTsKICAgICBzdGQ6OnZhcmlhbnQ8RnJhbWVz
UGVyU2Vjb25kLCBBbmltYXRpb25GcmFtZVJhdGVQcmVzZXQ+IGZyYW1lUmF0ZSA9IEFuaW1hdGlv
bkZyYW1lUmF0ZVByZXNldDo6QXV0bzsKICAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6dmFyaWFudDxk
b3VibGUsIEVmZmVjdFRpbWluZz4+IGN1c3RvbUVmZmVjdE9wdGlvbnM7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9FZmZlY3RUaW1pbmcuaCBiL1NvdXJjZS9XZWJDb3Jl
L2FuaW1hdGlvbi9FZmZlY3RUaW1pbmcuaAppbmRleCA0ZGQ1ZGNjMzczY2NkODMzMGRlY2EzNjE3
ZDk5OGU2MTMzOTMyZTYxLi4yMTA3M2ZhNDczMDNmNjRmZDJiYTI2MTlhZTkxODdmNTgxNTk1MDZl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRWZmZWN0VGltaW5nLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0VmZmVjdFRpbWluZy5oCkBAIC0zMywxMiArMzMs
MTIgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3RydWN0IEVmZmVjdFRpbWluZyB7Ci0gICAg
c3RkOjp2YXJpYW50PGRvdWJsZSwgU3RyaW5nPiBkdXJhdGlvbiB7ICJhdXRvIiB9OworICAgIHN0
ZDo6dmFyaWFudDxkb3VibGUsIFN0cmluZz4gZHVyYXRpb24geyAiYXV0byJfcyB9OwogICAgIGRv
dWJsZSBkZWxheSB7IDAgfTsKICAgICBkb3VibGUgZW5kRGVsYXkgeyAwIH07CiAgICAgZG91Ymxl
IGl0ZXJhdGlvblN0YXJ0IHsgMCB9OwogICAgIGRvdWJsZSBpdGVyYXRpb25zIHsgMSB9OwotICAg
IFN0cmluZyBlYXNpbmcgeyAibGluZWFyIiB9OworICAgIFN0cmluZyBlYXNpbmcgeyAibGluZWFy
Il9zIH07CiAgICAgRmlsbE1vZGUgZmlsbCB7IEZpbGxNb2RlOjpBdXRvIH07CiAgICAgUGxheWJh
Y2tEaXJlY3Rpb24gZGlyZWN0aW9uIHsgUGxheWJhY2tEaXJlY3Rpb246Ok5vcm1hbCB9OwogfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuY3BwCmluZGV4IDcyMzc2
ODUwM2QxMGRiNDk2N2IyZjhjNjBlYjkxNDE4OTc2NmJmN2QuLmQ4NDExYzkzZTQ3NzAyZjU2N2Fk
NjE0MDM2NmVjZTc2NjM1YzA0NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlv
bi9LZXlmcmFtZUVmZmVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tleWZy
YW1lRWZmZWN0LmNwcApAQCAtODIsMTEgKzgyLDExIEBAIFN0cmluZyBLZXlmcmFtZUVmZmVjdDo6
Q1NTUHJvcGVydHlJRFRvSURMQXR0cmlidXRlTmFtZShDU1NQcm9wZXJ0eUlEIGNzc1Byb3BlcnR5
CiAKICAgICAvLyAyLiBJZiBwcm9wZXJ0eSByZWZlcnMgdG8gdGhlIENTUyBmbG9hdCBwcm9wZXJ0
eSwgcmV0dXJuIHRoZSBzdHJpbmcgImNzc0Zsb2F0Ii4KICAgICBpZiAoY3NzUHJvcGVydHlJZCA9
PSBDU1NQcm9wZXJ0eUZsb2F0KQotICAgICAgICByZXR1cm4gImNzc0Zsb2F0IjsKKyAgICAgICAg
cmV0dXJuICJjc3NGbG9hdCJfczsKIAogICAgIC8vIDMuIElmIHByb3BlcnR5IHJlZmVycyB0byB0
aGUgQ1NTIG9mZnNldCBwcm9wZXJ0eSwgcmV0dXJuIHRoZSBzdHJpbmcgImNzc09mZnNldCIuCiAg
ICAgaWYgKGNzc1Byb3BlcnR5SWQgPT0gQ1NTUHJvcGVydHlPZmZzZXQpCi0gICAgICAgIHJldHVy
biAiY3NzT2Zmc2V0IjsKKyAgICAgICAgcmV0dXJuICJjc3NPZmZzZXQiX3M7CiAKICAgICAvLyA0
LiBPdGhlcndpc2UsIHJldHVybiB0aGUgcmVzdWx0IG9mIGFwcGx5aW5nIHRoZSBDU1MgcHJvcGVy
dHkgdG8gSURMIGF0dHJpYnV0ZSBhbGdvcml0aG0gW0NTU09NXSB0byBwcm9wZXJ0eS4KICAgICBy
ZXR1cm4gZ2V0SlNQcm9wZXJ0eU5hbWUoY3NzUHJvcGVydHlJZCk7CkBAIC02NjAsNyArNjYwLDcg
QEAgYXV0byBLZXlmcmFtZUVmZmVjdDo6Z2V0S2V5ZnJhbWVzKERvY3VtZW50JiBkb2N1bWVudCkg
LT4gVmVjdG9yPENvbXB1dGVkS2V5ZnJhbWUKICAgICAgICAgY29tcHV0ZWRLZXlmcmFtZS5vZmZz
ZXQgPSBrZXlmcmFtZS5rZXkoKTsKICAgICAgICAgY29tcHV0ZWRLZXlmcmFtZS5jb21wdXRlZE9m
ZnNldCA9IGtleWZyYW1lLmtleSgpOwogICAgICAgICAvLyBGb3IgQ1NTIHRyYW5zaXRpb25zLCBh
bGwga2V5ZnJhbWVzIHNob3VsZCByZXR1cm4gImxpbmVhciIgc2luY2UgdGhlIGVmZmVjdCdzIGds
b2JhbCB0aW1pbmcgZnVuY3Rpb24gYXBwbGllcy4KLSAgICAgICAgY29tcHV0ZWRLZXlmcmFtZS5l
YXNpbmcgPSBpczxDU1NUcmFuc2l0aW9uPihhbmltYXRpb24oKSkgPyAibGluZWFyIiA6IHRpbWlu
Z0Z1bmN0aW9uRm9yQmxlbmRpbmdLZXlmcmFtZShrZXlmcmFtZSktPmNzc1RleHQoKTsKKyAgICAg
ICAgY29tcHV0ZWRLZXlmcmFtZS5lYXNpbmcgPSBpczxDU1NUcmFuc2l0aW9uPihhbmltYXRpb24o
KSkgPyAibGluZWFyIl9zIDogdGltaW5nRnVuY3Rpb25Gb3JCbGVuZGluZ0tleWZyYW1lKGtleWZy
YW1lKS0+Y3NzVGV4dCgpOwogCiAgICAgICAgIGlmIChkb2N1bWVudC5zZXR0aW5ncygpLndlYkFu
aW1hdGlvbnNDb21wb3NpdGVPcGVyYXRpb25zRW5hYmxlZCgpKSB7CiAgICAgICAgICAgICBpZiAo
YXV0byBjb21wb3NpdGVPcGVyYXRpb24gPSBrZXlmcmFtZS5jb21wb3NpdGVPcGVyYXRpb24oKSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0dDQ29udHJvbGxlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9HQ0NvbnRyb2xsZXIuY3BwCmluZGV4IDVmMTFl
MGM2MzQ4NzQxNDNhYjMxODVhMDFkZjlmYjJlZTM2ZjI1YWQuLjVmOTM0OTE3NTZmMjdlYzA0ZDRk
ZWE5ZDM4MWI3YTY0YzZjNzkyMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0dDQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvR0ND
b250cm9sbGVyLmNwcApAQCAtNTksNyArNTksNyBAQCBHQ0NvbnRyb2xsZXI6OkdDQ29udHJvbGxl
cigpCiB7CiAgICAgc3RhdGljIHN0ZDo6b25jZV9mbGFnIG9uY2VGbGFnOwogICAgIHN0ZDo6Y2Fs
bF9vbmNlKG9uY2VGbGFnLCBbXSB7Ci0gICAgICAgIFBBTDo6cmVnaXN0ZXJOb3RpZnlDYWxsYmFj
aygiY29tLmFwcGxlLldlYktpdC5kdW1wR0NIZWFwIiwgW10geworICAgICAgICBQQUw6OnJlZ2lz
dGVyTm90aWZ5Q2FsbGJhY2soImNvbS5hcHBsZS5XZWJLaXQuZHVtcEdDSGVhcCJfcywgW10gewog
ICAgICAgICAgICAgR0NDb250cm9sbGVyOjpzaW5nbGV0b24oKS5kdW1wSGVhcCgpOwogICAgICAg
ICB9KTsKICAgICB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
Q3VzdG9tRWxlbWVudEludGVyZmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0N1c3RvbUVsZW1lbnRJbnRlcmZhY2UuY3BwCmluZGV4IDRlMWQyNGVlOTQxNzRjOWRmNzZkMmIy
ZTUwNzliNzdkZDBlMjZmOTguLmE5MWUwMmYyM2Q3NTAzMGE5YjlhYmY4OWEzNmY4NGFiMTliYTg4
YjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tRWxlbWVu
dEludGVyZmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21F
bGVtZW50SW50ZXJmYWNlLmNwcApAQCAtMjEwLDcgKzIxMCw3IEBAIHZvaWQgSlNDdXN0b21FbGVt
ZW50SW50ZXJmYWNlOjp1cGdyYWRlRWxlbWVudChFbGVtZW50JiBlbGVtZW50KQogCiAgICAgaWYg
KG1faXNTaGFkb3dEaXNhYmxlZCAmJiBlbGVtZW50LnNoYWRvd1Jvb3QoKSkgewogICAgICAgICBl
bGVtZW50LmNsZWFyUmVhY3Rpb25RdWV1ZUZyb21GYWlsZWRDdXN0b21FbGVtZW50KCk7Ci0gICAg
ICAgIHJlcG9ydEV4Y2VwdGlvbihsZXhpY2FsR2xvYmFsT2JqZWN0LCBjcmVhdGVET01FeGNlcHRp
b24obGV4aWNhbEdsb2JhbE9iamVjdCwgTm90U3VwcG9ydGVkRXJyb3IsICJGYWlsZWQgdG8gdXBn
cmFkZSBhbiBlbGVtZW50IHdpdGggc2hhZG93IHJvb3Q6IHRoZSBjdXN0b20gZWxlbWVudCBkZWZp
bml0aW9uIGRpc2FsbG93cyBzaGFkb3cgcm9vdHMuIikpOworICAgICAgICByZXBvcnRFeGNlcHRp
b24obGV4aWNhbEdsb2JhbE9iamVjdCwgY3JlYXRlRE9NRXhjZXB0aW9uKGxleGljYWxHbG9iYWxP
YmplY3QsIE5vdFN1cHBvcnRlZEVycm9yLCAiRmFpbGVkIHRvIHVwZ3JhZGUgYW4gZWxlbWVudCB3
aXRoIHNoYWRvdyByb290OiB0aGUgY3VzdG9tIGVsZW1lbnQgZGVmaW5pdGlvbiBkaXNhbGxvd3Mg
c2hhZG93IHJvb3RzLiJfcykpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0yMzEsNyAr
MjMxLDcgQEAgdm9pZCBKU0N1c3RvbUVsZW1lbnRJbnRlcmZhY2U6OnVwZ3JhZGVFbGVtZW50KEVs
ZW1lbnQmIGVsZW1lbnQpCiAgICAgRWxlbWVudCogd3JhcHBlZEVsZW1lbnQgPSBKU0VsZW1lbnQ6
OnRvV3JhcHBlZCh2bSwgcmV0dXJuZWRFbGVtZW50KTsKICAgICBpZiAoIXdyYXBwZWRFbGVtZW50
IHx8IHdyYXBwZWRFbGVtZW50ICE9ICZlbGVtZW50KSB7CiAgICAgICAgIGVsZW1lbnQuY2xlYXJS
ZWFjdGlvblF1ZXVlRnJvbUZhaWxlZEN1c3RvbUVsZW1lbnQoKTsKLSAgICAgICAgcmVwb3J0RXhj
ZXB0aW9uKGxleGljYWxHbG9iYWxPYmplY3QsIGNyZWF0ZURPTUV4Y2VwdGlvbihsZXhpY2FsR2xv
YmFsT2JqZWN0LCBUeXBlRXJyb3IsICJDdXN0b20gZWxlbWVudCBjb25zdHJ1Y3RvciByZXR1cm5l
ZCBhIHdyb25nIGVsZW1lbnQiKSk7CisgICAgICAgIHJlcG9ydEV4Y2VwdGlvbihsZXhpY2FsR2xv
YmFsT2JqZWN0LCBjcmVhdGVET01FeGNlcHRpb24obGV4aWNhbEdsb2JhbE9iamVjdCwgVHlwZUVy
cm9yLCAiQ3VzdG9tIGVsZW1lbnQgY29uc3RydWN0b3IgcmV0dXJuZWQgYSB3cm9uZyBlbGVtZW50
Il9zKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgZWxlbWVudC5zZXRJc0RlZmluZWRD
dXN0b21FbGVtZW50KCp0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NQ29udmVydE51bWJlcnMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NQ29udmVydE51bWJlcnMuaAppbmRleCBiN2I2MTNkZDZjMzdlZDExN2I5MjIwMjBhYzEzYTNk
N2M1NWJiY2FkLi4yOTQxM2Q4ZDk4OTY5MDEwZmFhMWMzNTRlYTNhODliYWM0MDBiMDcyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnROdW1iZXJzLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Db252ZXJ0TnVtYmVycy5oCkBA
IC0yOTMsNyArMjkzLDcgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgQ29udmVydGVyPElETEZsb2F0PiA6
IERlZmF1bHRDb252ZXJ0ZXI8SURMRmxvYXQ+IHsKICAgICAgICAgZG91YmxlIG51bWJlciA9IHZh
bHVlLnRvTnVtYmVyKCZsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICAgICAgUkVUVVJOX0lGX0VY
Q0VQVElPTihzY29wZSwgMC4wKTsKICAgICAgICAgaWYgKFVOTElLRUxZKG51bWJlciA8IHN0ZDo6
bnVtZXJpY19saW1pdHM8ZmxvYXQ+Ojpsb3dlc3QoKSB8fCBudW1iZXIgPiBzdGQ6Om51bWVyaWNf
bGltaXRzPGZsb2F0Pjo6bWF4KCkpKQotICAgICAgICAgICAgdGhyb3dUeXBlRXJyb3IoJmxleGlj
YWxHbG9iYWxPYmplY3QsIHNjb3BlLCAiVGhlIHByb3ZpZGVkIHZhbHVlIGlzIG91dHNpZGUgdGhl
IHJhbmdlIG9mIGEgZmxvYXQiKTsKKyAgICAgICAgICAgIHRocm93VHlwZUVycm9yKCZsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBzY29wZSwgIlRoZSBwcm92aWRlZCB2YWx1ZSBpcyBvdXRzaWRlIHRoZSBy
YW5nZSBvZiBhIGZsb2F0Il9zKTsKICAgICAgICAgaWYgKFVOTElLRUxZKCFzdGQ6OmlzZmluaXRl
KG51bWJlcikpKQogICAgICAgICAgICAgdGhyb3dOb25GaW5pdGVUeXBlRXJyb3IobGV4aWNhbEds
b2JhbE9iamVjdCwgc2NvcGUpOwogICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8ZmxvYXQ+KG51
bWJlcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V4ZWNTdGF0
ZUluc3RydW1lbnRhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFeGVjU3Rh
dGVJbnN0cnVtZW50YXRpb24uaAppbmRleCBjMDQ0YjA3YWJmYzdiNjllMzE5MTI4MzNiNDk0NDY4
MWJjMzI4MDUzLi4zMTAwZmFiZjJkODU3MTM1YzhhNTNlOTQ2N2JlMjFjNzc4OWU2NGNkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V4ZWNTdGF0ZUluc3RydW1lbnRh
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXhlY1N0YXRlSW5zdHJ1
bWVudGF0aW9uLmgKQEAgLTQ1LDcgKzQ1LDcgQEAgaW5saW5lIHZvaWQgSlNFeGVjU3RhdGU6Omlu
c3RydW1lbnRGdW5jdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBjb24KICAg
ICAgICAgbGluZU51bWJlciA9IGNhbGxEYXRhLmpzLmZ1bmN0aW9uRXhlY3V0YWJsZS0+Zmlyc3RM
aW5lKCk7CiAgICAgICAgIGNvbHVtbk51bWJlciA9IGNhbGxEYXRhLmpzLmZ1bmN0aW9uRXhlY3V0
YWJsZS0+c3RhcnRDb2x1bW4oKTsKICAgICB9IGVsc2UKLSAgICAgICAgcmVzb3VyY2VOYW1lID0g
InVuZGVmaW5lZCI7CisgICAgICAgIHJlc291cmNlTmFtZSA9ICJ1bmRlZmluZWQiX3M7CiAgICAg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsQ2FsbEZ1bmN0aW9uKGNvbnRleHQsIHJlc291
cmNlTmFtZSwgbGluZU51bWJlciwgY29sdW1uTnVtYmVyKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcAppbmRleCBjZDRiM2YwNzZkZjcz
OTkwNTZmMjc4YzY1ZTcyZDMyZDI0NzlkNDYwLi40ODRkOGMyZGYzN2JlZjdkMTdkYTQxYjcwMzIy
OTRiMWQ5Y2ZmYjE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3Jp
cHRDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRD
b250cm9sbGVyLmNwcApAQCAtNjMzLDcgKzYzMyw3IEBAIFZhbHVlT3JFeGNlcHRpb24gU2NyaXB0
Q29udHJvbGxlcjo6Y2FsbEluV29ybGQoUnVuSmF2YVNjcmlwdFBhcmFtZXRlcnMmJiBwYXJhbWV0
CiAgICAgICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX0NBVENIX1NDT1BFKGdsb2JhbE9iamVjdC52
bSgpKTsKICAgICAgICAgYXV0byBqc0FyZ3VtZW50ID0gc2VyaWFsaXplZEFyZ3VtZW50LT5kZXNl
cmlhbGl6ZShnbG9iYWxPYmplY3QsICZnbG9iYWxPYmplY3QpOwogICAgICAgICBpZiAoVU5MSUtF
TFkoc2NvcGUuZXhjZXB0aW9uKCkpKSB7Ci0gICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSAiVW5h
YmxlIHRvIGRlc2VyaWFsaXplIGFyZ3VtZW50IHRvIGV4ZWN1dGUgYXN5bmNocm9ub3VzIEphdmFT
Y3JpcHQgZnVuY3Rpb24iOworICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gIlVuYWJsZSB0byBk
ZXNlcmlhbGl6ZSBhcmd1bWVudCB0byBleGVjdXRlIGFzeW5jaHJvbm91cyBKYXZhU2NyaXB0IGZ1
bmN0aW9uIl9zOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLm1tIGIvU291cmNlL1dlYkNv
cmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLm1tCmluZGV4IDE1Y2I2YTA4ZTVjMzVjMTcyMmNk
ZDM3Y2EzOGFjNWNhOTQ0ZmExNTkuLmFlNDIyMTE0MWVlY2I4OTE1MWM2MzE2MTBlMjIyMjI0Y2Nm
ZGRmYzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGlt
ZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUubW0KQEAg
LTE3Niw3ICsxNzYsNyBAQCBib29sIE9iamNBcnJheTo6c2V0VmFsdWVBdChKU0dsb2JhbE9iamVj
dCogbGV4aWNhbEdsb2JhbE9iamVjdCwgdW5zaWduZWQgaW50IGluZAogICAgIH0KIAogICAgIGlm
IChpbmRleCA+IFtfYXJyYXkgY291bnRdKSB7Ci0gICAgICAgIHRocm93RXhjZXB0aW9uKGxleGlj
YWxHbG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVSYW5nZUVycm9yKGxleGljYWxHbG9iYWxPYmpl
Y3QsICJJbmRleCBleGNlZWRzIGFycmF5IHNpemUuIikpOworICAgICAgICB0aHJvd0V4Y2VwdGlv
bihsZXhpY2FsR2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlUmFuZ2VFcnJvcihsZXhpY2FsR2xv
YmFsT2JqZWN0LCAiSW5kZXggZXhjZWVkcyBhcnJheSBzaXplLiJfcykpOwogICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgfQogICAgIApAQCAtMTg4LDcgKzE4OCw3IEBAIGJvb2wgT2JqY0FycmF5
OjpzZXRWYWx1ZUF0KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCB1bnNpZ25l
ZCBpbnQgaW5kCiAgICAgICAgIFtfYXJyYXkgaW5zZXJ0T2JqZWN0OihfX2JyaWRnZSBpZClvVmFs
dWUub2JqZWN0VmFsdWUgYXRJbmRleDppbmRleF07CiAgICAgICAgIHJldHVybiB0cnVlOwogICAg
IH0gQGNhdGNoKE5TRXhjZXB0aW9uKiBsb2NhbEV4Y2VwdGlvbikgewotICAgICAgICB0aHJvd0V4
Y2VwdGlvbihsZXhpY2FsR2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlRXJyb3IobGV4aWNhbEds
b2JhbE9iamVjdCwgIk9iamVjdGl2ZS1DIGV4Y2VwdGlvbi4iKSk7CisgICAgICAgIHRocm93RXhj
ZXB0aW9uKGxleGljYWxHbG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVFcnJvcihsZXhpY2FsR2xv
YmFsT2JqZWN0LCAiT2JqZWN0aXZlLUMgZXhjZXB0aW9uLiJfcykpOwogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgfQogfQpAQCAtMTk5LDEzICsxOTksMTMgQEAgSlNWYWx1ZSBPYmpjQXJyYXk6
OnZhbHVlQXQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIHVuc2lnbmVkIGlu
dCBpbmQKICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CiAKICAgICBp
ZiAoaW5kZXggPiBbX2FycmF5IGNvdW50XSkKLSAgICAgICAgcmV0dXJuIHRocm93RXhjZXB0aW9u
KGxleGljYWxHbG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVSYW5nZUVycm9yKGxleGljYWxHbG9i
YWxPYmplY3QsICJJbmRleCBleGNlZWRzIGFycmF5IHNpemUuIikpOworICAgICAgICByZXR1cm4g
dGhyb3dFeGNlcHRpb24obGV4aWNhbEdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZVJhbmdlRXJy
b3IobGV4aWNhbEdsb2JhbE9iamVjdCwgIkluZGV4IGV4Y2VlZHMgYXJyYXkgc2l6ZS4iX3MpKTsK
ICAgICBAdHJ5IHsKICAgICAgICAgaWQgb2JqID0gW19hcnJheSBvYmplY3RBdEluZGV4OmluZGV4
XTsKICAgICAgICAgaWYgKG9iaikKICAgICAgICAgICAgIHJldHVybiBjb252ZXJ0T2JqY1ZhbHVl
VG9WYWx1ZSAobGV4aWNhbEdsb2JhbE9iamVjdCwgJm9iaiwgT2JqY09iamVjdFR5cGUsIG1fcm9v
dE9iamVjdC5nZXQoKSk7CiAgICAgfSBAY2F0Y2goTlNFeGNlcHRpb24qIGxvY2FsRXhjZXB0aW9u
KSB7Ci0gICAgICAgIHJldHVybiB0aHJvd0V4Y2VwdGlvbihsZXhpY2FsR2xvYmFsT2JqZWN0LCBz
Y29wZSwgY3JlYXRlRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgIk9iamVjdGl2ZS1DIGV4Y2Vw
dGlvbi4iKSk7CisgICAgICAgIHJldHVybiB0aHJvd0V4Y2VwdGlvbihsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBzY29wZSwgY3JlYXRlRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgIk9iamVjdGl2ZS1D
IGV4Y2VwdGlvbi4iX3MpKTsKICAgICB9CiAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5jcHAKaW5kZXggYzA1ZTNhNDBlODA1NjY1
ZGMwZmRlZDAyYzMwNTE4ZWQ5NjI4NjBjMy4uYWYzOWJhMTE0MGRhMDMwNDM4ODVhM2E4NTVhMTMz
MWU0ZjU2NWE5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJy
YXkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmNwcApAQCAt
MTI3LDcgKzEyNyw3IEBAIGJvb2wgUnVudGltZUFycmF5OjpwdXQoSlNDZWxsKiBjZWxsLCBKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgUHJvcGVyCiAKICAgICBSdW50aW1lQXJy
YXkqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8UnVudGltZUFycmF5Kj4oY2VsbCk7CiAgICAgaWYgKHBy
b3BlcnR5TmFtZSA9PSB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgpIHsKLSAgICAgICAgdGhyb3dF
eGNlcHRpb24obGV4aWNhbEdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZVJhbmdlRXJyb3IobGV4
aWNhbEdsb2JhbE9iamVjdCwgIlJhbmdlIGVycm9yIikpOworICAgICAgICB0aHJvd0V4Y2VwdGlv
bihsZXhpY2FsR2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlUmFuZ2VFcnJvcihsZXhpY2FsR2xv
YmFsT2JqZWN0LCAiUmFuZ2UgZXJyb3IiX3MpKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IH0KICAgICAKQEAgLTE0NCw3ICsxNDQsNyBAQCBib29sIFJ1bnRpbWVBcnJheTo6cHV0QnlJbmRl
eChKU0NlbGwqIGNlbGwsIEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LAogCiAg
ICAgUnVudGltZUFycmF5KiB0aGlzT2JqZWN0ID0ganNDYXN0PFJ1bnRpbWVBcnJheSo+KGNlbGwp
OwogICAgIGlmIChpbmRleCA+PSB0aGlzT2JqZWN0LT5nZXRMZW5ndGgoKSkgewotICAgICAgICB0
aHJvd0V4Y2VwdGlvbihsZXhpY2FsR2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlUmFuZ2VFcnJv
cihsZXhpY2FsR2xvYmFsT2JqZWN0LCAiUmFuZ2UgZXJyb3IiKSk7CisgICAgICAgIHRocm93RXhj
ZXB0aW9uKGxleGljYWxHbG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVSYW5nZUVycm9yKGxleGlj
YWxHbG9iYWxPYmplY3QsICJSYW5nZSBlcnJvciJfcykpOwogICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgfQogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVf
b2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAKaW5k
ZXggYjI0ZjJhZWYxOTRiYWQyNWIzYTYxZWI4OGU3NDE0N2RjZTkzMTBjNy4uMjBiZTFlZTJmZjI1
MDQyZjM4ODE1ZWRhMDY4ZmQ5YTQ4ODk1NWU3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVu
dGltZV9vYmplY3QuY3BwCkBAIC0zMTAsNyArMzEwLDcgQEAgdm9pZCBSdW50aW1lT2JqZWN0Ojpn
ZXRPd25Qcm9wZXJ0eU5hbWVzKEpTT2JqZWN0KiBvYmplY3QsIEpTR2xvYmFsT2JqZWN0KiBsZXhp
Y2EKIAogRXhjZXB0aW9uKiB0aHJvd1J1bnRpbWVPYmplY3RJbnZhbGlkQWNjZXNzRXJyb3IoSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIFRocm93U2NvcGUmIHNjb3BlKQogewot
ICAgIHJldHVybiB0aHJvd0V4Y2VwdGlvbihsZXhpY2FsR2xvYmFsT2JqZWN0LCBzY29wZSwgY3Jl
YXRlUmVmZXJlbmNlRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgIlRyeWluZyB0byBhY2Nlc3Mg
b2JqZWN0IGZyb20gZGVzdHJveWVkIHBsdWctaW4uIikpOworICAgIHJldHVybiB0aHJvd0V4Y2Vw
dGlvbihsZXhpY2FsR2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlUmVmZXJlbmNlRXJyb3IobGV4
aWNhbEdsb2JhbE9iamVjdCwgIlRyeWluZyB0byBhY2Nlc3Mgb2JqZWN0IGZyb20gZGVzdHJveWVk
IHBsdWctaW4uIl9zKSk7CiB9CiAKIEpTQzo6R0NDbGllbnQ6Oklzb1N1YnNwYWNlKiBSdW50aW1l
T2JqZWN0OjpzdWJzcGFjZUZvckltcGwoSlNDOjpWTSYgdm0pCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uQWN0aW9ucy5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uQWN0aW9ucy5j
cHAKaW5kZXggMGNhNjFjMTAxNGQyNDM1ZTg0YWEwZGFmZTMwMjBmZmIwNzhlODM3OS4uN2IyNjU5
ZmM2NzNkNTM2MDllNWQxYjVlNDdmYjY4M2ExNjNhZjA5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkFjdGlvbnMuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25BY3Rpb25z
LmNwcApAQCAtMjAxLDE1ICsyMDEsMTUgQEAgYXV0byBNb2RpZnlIZWFkZXJzQWN0aW9uOjpNb2Rp
ZnlIZWFkZXJJbmZvOjpwYXJzZShjb25zdCBKU09OOjpWYWx1ZSYgaW5mb1ZhbHVlKQogICAgIGlm
ICghb2JqZWN0KQogICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoQ29udGVudEV4dGVuc2lv
bkVycm9yOjpKU09OTW9kaWZ5SGVhZGVyc0luZm9Ob3RBRGljdGlvbmFyeSk7CiAKLSAgICBTdHJp
bmcgb3BlcmF0aW9uID0gb2JqZWN0LT5nZXRTdHJpbmcoIm9wZXJhdGlvbiIpOworICAgIFN0cmlu
ZyBvcGVyYXRpb24gPSBvYmplY3QtPmdldFN0cmluZygib3BlcmF0aW9uIl9zKTsKICAgICBpZiAo
IW9wZXJhdGlvbikKICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKENvbnRlbnRFeHRlbnNp
b25FcnJvcjo6SlNPTk1vZGlmeUhlYWRlcnNNaXNzaW5nT3BlcmF0aW9uKTsKIAotICAgIFN0cmlu
ZyBoZWFkZXIgPSBvYmplY3QtPmdldFN0cmluZygiaGVhZGVyIik7CisgICAgU3RyaW5nIGhlYWRl
ciA9IG9iamVjdC0+Z2V0U3RyaW5nKCJoZWFkZXIiX3MpOwogICAgIGlmICghaGVhZGVyKQogICAg
ICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OTW9k
aWZ5SGVhZGVyc01pc3NpbmdIZWFkZXIpOwogCi0gICAgU3RyaW5nIHZhbHVlID0gb2JqZWN0LT5n
ZXRTdHJpbmcoInZhbHVlIik7CisgICAgU3RyaW5nIHZhbHVlID0gb2JqZWN0LT5nZXRTdHJpbmco
InZhbHVlIl9zKTsKIAogICAgIGlmIChvcGVyYXRpb24gPT0gInNldCIpIHsKICAgICAgICAgaWYg
KCF2YWx1ZSkKQEAgLTI4OSwyNyArMjg5LDI3IEBAIHNpemVfdCBNb2RpZnlIZWFkZXJzQWN0aW9u
OjpNb2RpZnlIZWFkZXJJbmZvOjpzZXJpYWxpemVkTGVuZ3RoKFNwYW48Y29uc3QgdWludDhfCiAK
IEV4cGVjdGVkPFJlZGlyZWN0QWN0aW9uLCBzdGQ6OmVycm9yX2NvZGU+IFJlZGlyZWN0QWN0aW9u
OjpwYXJzZShjb25zdCBKU09OOjpPYmplY3QmIHJlZGlyZWN0T2JqZWN0LCBjb25zdCBTdHJpbmcm
IHVybEZpbHRlcikKIHsKLSAgICBhdXRvIHJlZGlyZWN0ID0gcmVkaXJlY3RPYmplY3QuZ2V0T2Jq
ZWN0KCJyZWRpcmVjdCIpOworICAgIGF1dG8gcmVkaXJlY3QgPSByZWRpcmVjdE9iamVjdC5nZXRP
YmplY3QoInJlZGlyZWN0Il9zKTsKICAgICBpZiAoIXJlZGlyZWN0KQogICAgICAgICByZXR1cm4g
bWFrZVVuZXhwZWN0ZWQoQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OUmVkaXJlY3RNaXNzaW5n
KTsKIAotICAgIGlmIChhdXRvIGV4dGVuc2lvblBhdGggPSByZWRpcmVjdC0+Z2V0U3RyaW5nKCJl
eHRlbnNpb24tcGF0aCIpOyAhIWV4dGVuc2lvblBhdGgpIHsKKyAgICBpZiAoYXV0byBleHRlbnNp
b25QYXRoID0gcmVkaXJlY3QtPmdldFN0cmluZygiZXh0ZW5zaW9uLXBhdGgiX3MpOyAhIWV4dGVu
c2lvblBhdGgpIHsKICAgICAgICAgaWYgKCFleHRlbnNpb25QYXRoLnN0YXJ0c1dpdGgoJy8nKSkK
ICAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50RXh0ZW5zaW9uRXJyb3I6
OkpTT05SZWRpcmVjdEV4dGVuc2lvblBhdGhEb2VzTm90U3RhcnRXaXRoU2xhc2gpOwogICAgICAg
ICByZXR1cm4gUmVkaXJlY3RBY3Rpb24geyBFeHRlbnNpb25QYXRoQWN0aW9uIHsgV1RGTW92ZShl
eHRlbnNpb25QYXRoKSB9IH07CiAgICAgfQogCi0gICAgaWYgKGF1dG8gcmVnZXhTdWJzdGl0dXRp
b24gPSByZWRpcmVjdC0+Z2V0U3RyaW5nKCJyZWdleC1zdWJzdGl0dXRpb24iKTsgISFyZWdleFN1
YnN0aXR1dGlvbikKKyAgICBpZiAoYXV0byByZWdleFN1YnN0aXR1dGlvbiA9IHJlZGlyZWN0LT5n
ZXRTdHJpbmcoInJlZ2V4LXN1YnN0aXR1dGlvbiJfcyk7ICEhcmVnZXhTdWJzdGl0dXRpb24pCiAg
ICAgICAgIHJldHVybiBSZWRpcmVjdEFjdGlvbiB7IFJlZ2V4U3Vic3RpdHV0aW9uQWN0aW9uIHsg
V1RGTW92ZShyZWdleFN1YnN0aXR1dGlvbiksIHVybEZpbHRlciB9IH07CiAKLSAgICBpZiAoYXV0
byB0cmFuc2Zvcm0gPSByZWRpcmVjdC0+Z2V0T2JqZWN0KCJ0cmFuc2Zvcm0iKSkgeworICAgIGlm
IChhdXRvIHRyYW5zZm9ybSA9IHJlZGlyZWN0LT5nZXRPYmplY3QoInRyYW5zZm9ybSJfcykpIHsK
ICAgICAgICAgYXV0byBwYXJzZWRUcmFuc2Zvcm0gPSBVUkxUcmFuc2Zvcm1BY3Rpb246OnBhcnNl
KCp0cmFuc2Zvcm0pOwogICAgICAgICBpZiAoIXBhcnNlZFRyYW5zZm9ybSkKICAgICAgICAgICAg
IHJldHVybiBtYWtlVW5leHBlY3RlZChwYXJzZWRUcmFuc2Zvcm0uZXJyb3IoKSk7CiAgICAgICAg
IHJldHVybiBSZWRpcmVjdEFjdGlvbiB7IFdURk1vdmUoKnBhcnNlZFRyYW5zZm9ybSkgfTsKICAg
ICB9CiAKLSAgICBpZiAoYXV0byB1cmxTdHJpbmcgPSByZWRpcmVjdC0+Z2V0U3RyaW5nKCJ1cmwi
KTsgISF1cmxTdHJpbmcpIHsKKyAgICBpZiAoYXV0byB1cmxTdHJpbmcgPSByZWRpcmVjdC0+Z2V0
U3RyaW5nKCJ1cmwiX3MpOyAhIXVybFN0cmluZykgewogICAgICAgICBVUkwgdXJsIHsgdXJsU3Ry
aW5nIH07CiAgICAgICAgIGlmICghdXJsLmlzVmFsaWQoKSkKICAgICAgICAgICAgIHJldHVybiBt
YWtlVW5leHBlY3RlZChDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05SZWRpcmVjdFVSTEludmFs
aWQpOwpAQCAtNDgzLDE1ICs0ODMsMTUgQEAgdm9pZCBSZWRpcmVjdEFjdGlvbjo6UmVnZXhTdWJz
dGl0dXRpb25BY3Rpb246OmFwcGx5VG9VUkwoVVJMJiB1cmwpIGNvbnN0CiBhdXRvIFJlZGlyZWN0
QWN0aW9uOjpVUkxUcmFuc2Zvcm1BY3Rpb246OnBhcnNlKGNvbnN0IEpTT046Ok9iamVjdCYgdHJh
bnNmb3JtKSAtPiBFeHBlY3RlZDxVUkxUcmFuc2Zvcm1BY3Rpb24sIHN0ZDo6ZXJyb3JfY29kZT4K
IHsKICAgICBVUkxUcmFuc2Zvcm1BY3Rpb24gYWN0aW9uOwotICAgIGlmIChhdXRvIGZyYWdtZW50
ID0gdHJhbnNmb3JtLmdldFN0cmluZygiZnJhZ21lbnQiKTsgISFmcmFnbWVudCkgeworICAgIGlm
IChhdXRvIGZyYWdtZW50ID0gdHJhbnNmb3JtLmdldFN0cmluZygiZnJhZ21lbnQiX3MpOyAhIWZy
YWdtZW50KSB7CiAgICAgICAgIGlmICghZnJhZ21lbnQuaXNFbXB0eSgpICYmICFmcmFnbWVudC5z
dGFydHNXaXRoKCcjJykpCiAgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoQ29udGVu
dEV4dGVuc2lvbkVycm9yOjpKU09OUmVkaXJlY3RJbnZhbGlkRnJhZ21lbnQpOwogICAgICAgICBh
Y3Rpb24uZnJhZ21lbnQgPSBXVEZNb3ZlKGZyYWdtZW50KTsKICAgICB9Ci0gICAgYWN0aW9uLmhv
c3QgPSB0cmFuc2Zvcm0uZ2V0U3RyaW5nKCJob3N0Iik7Ci0gICAgYWN0aW9uLnBhc3N3b3JkID0g
dHJhbnNmb3JtLmdldFN0cmluZygicGFzc3dvcmQiKTsKLSAgICBhY3Rpb24ucGF0aCA9IHRyYW5z
Zm9ybS5nZXRTdHJpbmcoInBhdGgiKTsKLSAgICBhdXRvIHBvcnQgPSB0cmFuc2Zvcm0uZ2V0U3Ry
aW5nKCJwb3J0Iik7CisgICAgYWN0aW9uLmhvc3QgPSB0cmFuc2Zvcm0uZ2V0U3RyaW5nKCJob3N0
Il9zKTsKKyAgICBhY3Rpb24ucGFzc3dvcmQgPSB0cmFuc2Zvcm0uZ2V0U3RyaW5nKCJwYXNzd29y
ZCJfcyk7CisgICAgYWN0aW9uLnBhdGggPSB0cmFuc2Zvcm0uZ2V0U3RyaW5nKCJwYXRoIl9zKTsK
KyAgICBhdXRvIHBvcnQgPSB0cmFuc2Zvcm0uZ2V0U3RyaW5nKCJwb3J0Il9zKTsKICAgICBpZiAo
ISFwb3J0KSB7CiAgICAgICAgIGlmIChwb3J0LmlzRW1wdHkoKSkKICAgICAgICAgICAgIGFjdGlv
bi5wb3J0ID0geyBzdGQ6Om9wdGlvbmFsPHVpbnQxNl90PiB7IH0gfTsKQEAgLTUwMyw3ICs1MDMs
NyBAQCBhdXRvIFJlZGlyZWN0QWN0aW9uOjpVUkxUcmFuc2Zvcm1BY3Rpb246OnBhcnNlKGNvbnN0
IEpTT046Ok9iamVjdCYgdHJhbnNmb3JtKSAtPgogICAgICAgICB9CiAgICAgfQogCi0gICAgaWYg
KGF1dG8gdW5jYW5vbmljYWxpemVkU2NoZW1lID0gdHJhbnNmb3JtLmdldFN0cmluZygic2NoZW1l
Iik7ICEhdW5jYW5vbmljYWxpemVkU2NoZW1lKSB7CisgICAgaWYgKGF1dG8gdW5jYW5vbmljYWxp
emVkU2NoZW1lID0gdHJhbnNmb3JtLmdldFN0cmluZygic2NoZW1lIl9zKTsgISF1bmNhbm9uaWNh
bGl6ZWRTY2hlbWUpIHsKICAgICAgICAgYXV0byBzY2hlbWUgPSBXVEY6OlVSTFBhcnNlcjo6bWF5
YmVDYW5vbmljYWxpemVTY2hlbWUodW5jYW5vbmljYWxpemVkU2NoZW1lKTsKICAgICAgICAgaWYg
KCFzY2hlbWUpCiAgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoQ29udGVudEV4dGVu
c2lvbkVycm9yOjpKU09OUmVkaXJlY3RVUkxTY2hlbWVJbnZhbGlkKTsKQEAgLTUxMSwxNCArNTEx
LDE0IEBAIGF1dG8gUmVkaXJlY3RBY3Rpb246OlVSTFRyYW5zZm9ybUFjdGlvbjo6cGFyc2UoY29u
c3QgSlNPTjo6T2JqZWN0JiB0cmFuc2Zvcm0pIC0+CiAgICAgICAgICAgICByZXR1cm4gbWFrZVVu
ZXhwZWN0ZWQoQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OUmVkaXJlY3RUb0phdmFTY3JpcHRV
UkwpOwogICAgICAgICBhY3Rpb24uc2NoZW1lID0gV1RGTW92ZSgqc2NoZW1lKTsKICAgICB9Ci0g
ICAgYWN0aW9uLnVzZXJuYW1lID0gdHJhbnNmb3JtLmdldFN0cmluZygidXNlcm5hbWUiKTsKLSAg
ICBpZiAoYXV0byBxdWVyeVRyYW5zZm9ybSA9IHRyYW5zZm9ybS5nZXRPYmplY3QoInF1ZXJ5LXRy
YW5zZm9ybSIpKSB7CisgICAgYWN0aW9uLnVzZXJuYW1lID0gdHJhbnNmb3JtLmdldFN0cmluZygi
dXNlcm5hbWUiX3MpOworICAgIGlmIChhdXRvIHF1ZXJ5VHJhbnNmb3JtID0gdHJhbnNmb3JtLmdl
dE9iamVjdCgicXVlcnktdHJhbnNmb3JtIl9zKSkgewogICAgICAgICBhdXRvIHBhcnNlZFF1ZXJ5
VHJhbnNmb3JtID0gUXVlcnlUcmFuc2Zvcm06OnBhcnNlKCpxdWVyeVRyYW5zZm9ybSk7CiAgICAg
ICAgIGlmICghcGFyc2VkUXVlcnlUcmFuc2Zvcm0pCiAgICAgICAgICAgICByZXR1cm4gbWFrZVVu
ZXhwZWN0ZWQocGFyc2VkUXVlcnlUcmFuc2Zvcm0uZXJyb3IoKSk7CiAgICAgICAgIGFjdGlvbi5x
dWVyeVRyYW5zZm9ybSA9ICpwYXJzZWRRdWVyeVRyYW5zZm9ybTsKICAgICB9IGVsc2UgewotICAg
ICAgICBhdXRvIHF1ZXJ5ID0gdHJhbnNmb3JtLmdldFN0cmluZygicXVlcnkiKTsKKyAgICAgICAg
YXV0byBxdWVyeSA9IHRyYW5zZm9ybS5nZXRTdHJpbmcoInF1ZXJ5Il9zKTsKICAgICAgICAgaWYg
KCFxdWVyeS5pc0VtcHR5KCkgJiYgIXF1ZXJ5LnN0YXJ0c1dpdGgoJz8nKSkKICAgICAgICAgICAg
IHJldHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05SZWRpcmVj
dEludmFsaWRRdWVyeSk7CiAgICAgICAgIGFjdGlvbi5xdWVyeVRyYW5zZm9ybSA9IFdURk1vdmUo
cXVlcnkpOwpAQCAtNjk5LDcgKzY5OSw3IEBAIGF1dG8gUmVkaXJlY3RBY3Rpb246OlVSTFRyYW5z
Zm9ybUFjdGlvbjo6UXVlcnlUcmFuc2Zvcm06OnBhcnNlKGNvbnN0IEpTT046Ok9iamVjCiB7CiAg
ICAgUXVlcnlUcmFuc2Zvcm0gcGFyc2VkUXVlcnlUcmFuc2Zvcm07CiAKLSAgICBpZiAoYXV0byBy
ZW1vdmVQYXJhbWV0ZXJzVmFsdWUgPSBxdWVyeVRyYW5zZm9ybS5nZXRWYWx1ZSgicmVtb3ZlLXBh
cmFtZXRlcnMiKSkgeworICAgIGlmIChhdXRvIHJlbW92ZVBhcmFtZXRlcnNWYWx1ZSA9IHF1ZXJ5
VHJhbnNmb3JtLmdldFZhbHVlKCJyZW1vdmUtcGFyYW1ldGVycyJfcykpIHsKICAgICAgICAgYXV0
byByZW1vdmVQYXJhbWV0ZXJzQXJyYXkgPSByZW1vdmVQYXJhbWV0ZXJzVmFsdWUtPmFzQXJyYXko
KTsKICAgICAgICAgaWYgKCFyZW1vdmVQYXJhbWV0ZXJzQXJyYXkpCiAgICAgICAgICAgICByZXR1
cm4gbWFrZVVuZXhwZWN0ZWQoQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OUmVtb3ZlUGFyYW1l
dGVyc05vdFN0cmluZ0FycmF5KTsKQEAgLTcxMyw3ICs3MTMsNyBAQCBhdXRvIFJlZGlyZWN0QWN0
aW9uOjpVUkxUcmFuc2Zvcm1BY3Rpb246OlF1ZXJ5VHJhbnNmb3JtOjpwYXJzZShjb25zdCBKU09O
OjpPYmplYwogICAgICAgICBwYXJzZWRRdWVyeVRyYW5zZm9ybS5yZW1vdmVQYXJhbXMgPSBXVEZN
b3ZlKHJlbW92ZVBhcmFtZXRlcnNWZWN0b3IpOwogICAgIH0KIAotICAgIGlmIChhdXRvIGFkZE9y
UmVwbGFjZVBhcmFtZXRlcnNWYWx1ZSA9IHF1ZXJ5VHJhbnNmb3JtLmdldFZhbHVlKCJhZGQtb3It
cmVwbGFjZS1wYXJhbWV0ZXJzIikpIHsKKyAgICBpZiAoYXV0byBhZGRPclJlcGxhY2VQYXJhbWV0
ZXJzVmFsdWUgPSBxdWVyeVRyYW5zZm9ybS5nZXRWYWx1ZSgiYWRkLW9yLXJlcGxhY2UtcGFyYW1l
dGVycyJfcykpIHsKICAgICAgICAgYXV0byBhZGRPclJlcGxhY2VQYXJhbWV0ZXJzQXJyYXkgPSBh
ZGRPclJlcGxhY2VQYXJhbWV0ZXJzVmFsdWUtPmFzQXJyYXkoKTsKICAgICAgICAgaWYgKCFhZGRP
clJlcGxhY2VQYXJhbWV0ZXJzQXJyYXkpCiAgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0
ZWQoQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OQWRkT3JSZXBsYWNlUGFyYW1ldGVyc05vdEFy
cmF5KTsKQEAgLTg1OCwxNiArODU4LDE2IEBAIGF1dG8gUmVkaXJlY3RBY3Rpb246OlVSTFRyYW5z
Zm9ybUFjdGlvbjo6UXVlcnlUcmFuc2Zvcm06OlF1ZXJ5S2V5VmFsdWU6OnBhcnNlKGNvCiAgICAg
aWYgKCFrZXlWYWx1ZSkKICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKENvbnRlbnRFeHRl
bnNpb25FcnJvcjo6SlNPTkFkZE9yUmVwbGFjZVBhcmFtZXRlcnNLZXlWYWx1ZU5vdEFEaWN0aW9u
YXJ5KTsKIAotICAgIFN0cmluZyBrZXkgPSBrZXlWYWx1ZS0+Z2V0U3RyaW5nKCJrZXkiKTsKKyAg
ICBTdHJpbmcga2V5ID0ga2V5VmFsdWUtPmdldFN0cmluZygia2V5Il9zKTsKICAgICBpZiAoIWtl
eSkKICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKENvbnRlbnRFeHRlbnNpb25FcnJvcjo6
SlNPTkFkZE9yUmVwbGFjZVBhcmFtZXRlcnNLZXlWYWx1ZU1pc3NpbmdLZXlTdHJpbmcpOwogCi0g
ICAgU3RyaW5nIHZhbHVlID0ga2V5VmFsdWUtPmdldFN0cmluZygidmFsdWUiKTsKKyAgICBTdHJp
bmcgdmFsdWUgPSBrZXlWYWx1ZS0+Z2V0U3RyaW5nKCJ2YWx1ZSJfcyk7CiAgICAgaWYgKCF2YWx1
ZSkKICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKENvbnRlbnRFeHRlbnNpb25FcnJvcjo6
SlNPTkFkZE9yUmVwbGFjZVBhcmFtZXRlcnNLZXlWYWx1ZU1pc3NpbmdWYWx1ZVN0cmluZyk7CiAK
ICAgICBib29sIHJlcGxhY2VPbmx5IHsgZmFsc2UgfTsKLSAgICBpZiAoYXV0byBib29sZWFuID0g
a2V5VmFsdWUtPmdldEJvb2xlYW4oInJlcGxhY2Utb25seSIpKQorICAgIGlmIChhdXRvIGJvb2xl
YW4gPSBrZXlWYWx1ZS0+Z2V0Qm9vbGVhbigicmVwbGFjZS1vbmx5Il9zKSkKICAgICAgICAgcmVw
bGFjZU9ubHkgPSAqYm9vbGVhbjsKIAogICAgIHJldHVybiB7IHsgV1RGTW92ZShrZXkpLCByZXBs
YWNlT25seSwgV1RGTW92ZSh2YWx1ZSkgfSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkNvbXBpbGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25Db21waWxlci5jcHAKaW5k
ZXggY2ZlYmY1YzMwNzhhOTQxZDE5Yzc5YTI5MmM0NzBjOWViYmYyODJjZi4uZTg3MjFkNGE3NDc5
ZWQ2ODMwMTdmMGE0ODVlODQ2YTMyOWM5MGUwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkNvbXBpbGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uQ29tcGlsZXIuY3Bw
CkBAIC0zMTYsNyArMzE2LDcgQEAgc3RkOjplcnJvcl9jb2RlIGNvbXBpbGVSdWxlTGlzdChDb250
ZW50RXh0ZW5zaW9uQ29tcGlsYXRpb25DbGllbnQmIGNsaWVudCwgU3RyaW4KICAgICAgICAgICAg
IHN0YXR1cyA9IFVSTEZpbHRlclBhcnNlcjo6T2s7CiAgICAgICAgIH0KICAgICAgICAgaWYgKHN0
YXR1cyAhPSBVUkxGaWx0ZXJQYXJzZXI6Ok9rKSB7Ci0gICAgICAgICAgICBkYXRhTG9nRigiRXJy
b3Igd2hpbGUgcGFyc2luZyAlczogJXNcbiIsIHRyaWdnZXIudXJsRmlsdGVyLnV0ZjgoKS5kYXRh
KCksIFVSTEZpbHRlclBhcnNlcjo6c3RhdHVzU3RyaW5nKHN0YXR1cykudXRmOCgpLmRhdGEoKSk7
CisgICAgICAgICAgICBkYXRhTG9nRigiRXJyb3Igd2hpbGUgcGFyc2luZyAlczogJXNcbiIsIHRy
aWdnZXIudXJsRmlsdGVyLnV0ZjgoKS5kYXRhKCksIFVSTEZpbHRlclBhcnNlcjo6c3RhdHVzU3Ry
aW5nKHN0YXR1cykuY2hhcmFjdGVycygpKTsKICAgICAgICAgICAgIHJldHVybiBDb250ZW50RXh0
ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkUmVnZXg7CiAgICAgICAgIH0KIApAQCAtMzMzLDcgKzMz
Myw3IEBAIHN0ZDo6ZXJyb3JfY29kZSBjb21waWxlUnVsZUxpc3QoQ29udGVudEV4dGVuc2lvbkNv
bXBpbGF0aW9uQ2xpZW50JiBjbGllbnQsIFN0cmluCiAgICAgICAgICAgICAgICAgICAgIHN0YXR1
cyA9IFVSTEZpbHRlclBhcnNlcjo6T2s7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgIGlmIChzdGF0dXMgIT0gVVJMRmlsdGVyUGFyc2VyOjpPaykgewotICAgICAgICAgICAgICAg
ICAgICBkYXRhTG9nRigiRXJyb3Igd2hpbGUgcGFyc2luZyAlczogJXNcbiIsIGNvbmRpdGlvbi51
dGY4KCkuZGF0YSgpLCBVUkxGaWx0ZXJQYXJzZXI6OnN0YXR1c1N0cmluZyhzdGF0dXMpLnV0Zjgo
KS5kYXRhKCkpOworICAgICAgICAgICAgICAgICAgICBkYXRhTG9nRigiRXJyb3Igd2hpbGUgcGFy
c2luZyAlczogJXNcbiIsIGNvbmRpdGlvbi51dGY4KCkuZGF0YSgpLCBVUkxGaWx0ZXJQYXJzZXI6
OnN0YXR1c1N0cmluZyhzdGF0dXMpLmNoYXJhY3RlcnMoKSk7CiAgICAgICAgICAgICAgICAgICAg
IHJldHVybiBDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkUmVnZXg7CiAgICAgICAg
ICAgICAgICAgfQogICAgICAgICAgICAgICAgIGJyZWFrOwpAQCAtMzQ0LDcgKzM0NCw3IEBAIHN0
ZDo6ZXJyb3JfY29kZSBjb21waWxlUnVsZUxpc3QoQ29udGVudEV4dGVuc2lvbkNvbXBpbGF0aW9u
Q2xpZW50JiBjbGllbnQsIFN0cmluCiAgICAgICAgICAgICAgICAgICAgIHN0YXR1cyA9IFVSTEZp
bHRlclBhcnNlcjo6T2s7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgIGlmIChz
dGF0dXMgIT0gVVJMRmlsdGVyUGFyc2VyOjpPaykgewotICAgICAgICAgICAgICAgICAgICBkYXRh
TG9nRigiRXJyb3Igd2hpbGUgcGFyc2luZyAlczogJXNcbiIsIGNvbmRpdGlvbi51dGY4KCkuZGF0
YSgpLCBVUkxGaWx0ZXJQYXJzZXI6OnN0YXR1c1N0cmluZyhzdGF0dXMpLnV0ZjgoKS5kYXRhKCkp
OworICAgICAgICAgICAgICAgICAgICBkYXRhTG9nRigiRXJyb3Igd2hpbGUgcGFyc2luZyAlczog
JXNcbiIsIGNvbmRpdGlvbi51dGY4KCkuZGF0YSgpLCBVUkxGaWx0ZXJQYXJzZXI6OnN0YXR1c1N0
cmluZyhzdGF0dXMpLmNoYXJhY3RlcnMoKSk7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBD
b250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkUmVnZXg7CiAgICAgICAgICAgICAgICAg
fQogICAgICAgICAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY29u
dGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvblBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uUGFyc2VyLmNwcAppbmRleCA1MTNm
ZDkzOWU2NmRiNWNhMjUxMjlmNTc2Yjk4MmI0ZjhjOTgyNGUxLi43NDQxNjVmMGI1MjAxNWNjZWZk
NzdmNjg3Y2U1M2NjMDVjMWIxNTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50
ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uUGFyc2VyLmNwcApAQCAtOTMsNyAr
OTMsNyBAQCBzdGF0aWMgRXhwZWN0ZWQ8VmVjdG9yPFN0cmluZz4sIHN0ZDo6ZXJyb3JfY29kZT4g
Z2V0RG9tYWluTGlzdChjb25zdCBKU09OOjpBcnJheQogICAgICAgICAgICAgeyAnJCcsICJcXCQi
IH0KICAgICAgICAgfSB9OwogICAgICAgICBmb3IgKGF1dG8mIHBhaXIgOiBlc2NhcGVUYWJsZSkK
LSAgICAgICAgICAgIGRvbWFpbiA9IGRvbWFpbi5yZXBsYWNlKHBhaXIuZmlyc3QsIHBhaXIuc2Vj
b25kKTsKKyAgICAgICAgICAgIGRvbWFpbiA9IGRvbWFpbi5yZXBsYWNlKHBhaXIuZmlyc3QsIFN0
cmluZyB7IHBhaXIuc2Vjb25kIH0pOwogCiAgICAgICAgIGNvbnN0IGNoYXIqIHByb3RvY29sUmVn
ZXggPSAiW2Etel1bYS16Ky4tXSo6XFwvXFwvIjsKICAgICAgICAgY29uc3QgY2hhciogYWxsb3dT
dWJkb21haW5zUmVnZXggPSAiKC4qXFwuKSoiOwpAQCAtMTE5LDI3ICsxMTksMjcgQEAgc3RhdGlj
IHN0ZDo6ZXJyb3JfY29kZSBnZXRUeXBlRmxhZ3MoY29uc3QgSlNPTjo6QXJyYXkmIGFycmF5LCBS
ZXNvdXJjZUZsYWdzJiBmbGEKICAgICAKIHN0YXRpYyBFeHBlY3RlZDxUcmlnZ2VyLCBzdGQ6OmVy
cm9yX2NvZGU+IGxvYWRUcmlnZ2VyKGNvbnN0IEpTT046Ok9iamVjdCYgcnVsZU9iamVjdCkKIHsK
LSAgICBhdXRvIHRyaWdnZXJPYmplY3QgPSBydWxlT2JqZWN0LmdldE9iamVjdCgidHJpZ2dlciIp
OworICAgIGF1dG8gdHJpZ2dlck9iamVjdCA9IHJ1bGVPYmplY3QuZ2V0T2JqZWN0KCJ0cmlnZ2Vy
Il9zKTsKICAgICBpZiAoIXRyaWdnZXJPYmplY3QpCiAgICAgICAgIHJldHVybiBtYWtlVW5leHBl
Y3RlZChDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkVHJpZ2dlcik7CiAKLSAgICBT
dHJpbmcgdXJsRmlsdGVyID0gdHJpZ2dlck9iamVjdC0+Z2V0U3RyaW5nKCJ1cmwtZmlsdGVyIik7
CisgICAgU3RyaW5nIHVybEZpbHRlciA9IHRyaWdnZXJPYmplY3QtPmdldFN0cmluZygidXJsLWZp
bHRlciJfcyk7CiAgICAgaWYgKHVybEZpbHRlci5pc0VtcHR5KCkpCiAgICAgICAgIHJldHVybiBt
YWtlVW5leHBlY3RlZChDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkVVJMRmlsdGVy
SW5UcmlnZ2VyKTsKIAogICAgIFRyaWdnZXIgdHJpZ2dlcjsKICAgICB0cmlnZ2VyLnVybEZpbHRl
ciA9IHVybEZpbHRlcjsKIAotICAgIGlmIChzdGQ6Om9wdGlvbmFsPGJvb2w+IHVybEZpbHRlckNh
c2VTZW5zaXRpdmVWYWx1ZSA9IHRyaWdnZXJPYmplY3QtPmdldEJvb2xlYW4oInVybC1maWx0ZXIt
aXMtY2FzZS1zZW5zaXRpdmUiKSkKKyAgICBpZiAoc3RkOjpvcHRpb25hbDxib29sPiB1cmxGaWx0
ZXJDYXNlU2Vuc2l0aXZlVmFsdWUgPSB0cmlnZ2VyT2JqZWN0LT5nZXRCb29sZWFuKCJ1cmwtZmls
dGVyLWlzLWNhc2Utc2Vuc2l0aXZlIl9zKSkKICAgICAgICAgdHJpZ2dlci51cmxGaWx0ZXJJc0Nh
c2VTZW5zaXRpdmUgPSAqdXJsRmlsdGVyQ2FzZVNlbnNpdGl2ZVZhbHVlOwogCi0gICAgaWYgKHN0
ZDo6b3B0aW9uYWw8Ym9vbD4gdG9wVVJMRmlsdGVyQ2FzZVNlbnNpdGl2ZVZhbHVlID0gdHJpZ2dl
ck9iamVjdC0+Z2V0Qm9vbGVhbigidG9wLXVybC1maWx0ZXItaXMtY2FzZS1zZW5zaXRpdmUiKSkK
KyAgICBpZiAoc3RkOjpvcHRpb25hbDxib29sPiB0b3BVUkxGaWx0ZXJDYXNlU2Vuc2l0aXZlVmFs
dWUgPSB0cmlnZ2VyT2JqZWN0LT5nZXRCb29sZWFuKCJ0b3AtdXJsLWZpbHRlci1pcy1jYXNlLXNl
bnNpdGl2ZSJfcykpCiAgICAgICAgIHRyaWdnZXIudG9wVVJMRmlsdGVySXNDYXNlU2Vuc2l0aXZl
ID0gKnRvcFVSTEZpbHRlckNhc2VTZW5zaXRpdmVWYWx1ZTsKIAotICAgIGlmIChzdGQ6Om9wdGlv
bmFsPGJvb2w+IGZyYW1lVVJMRmlsdGVyQ2FzZVNlbnNpdGl2ZVZhbHVlID0gdHJpZ2dlck9iamVj
dC0+Z2V0Qm9vbGVhbigiZnJhbWUtdXJsLWZpbHRlci1pcy1jYXNlLXNlbnNpdGl2ZSIpKQorICAg
IGlmIChzdGQ6Om9wdGlvbmFsPGJvb2w+IGZyYW1lVVJMRmlsdGVyQ2FzZVNlbnNpdGl2ZVZhbHVl
ID0gdHJpZ2dlck9iamVjdC0+Z2V0Qm9vbGVhbigiZnJhbWUtdXJsLWZpbHRlci1pcy1jYXNlLXNl
bnNpdGl2ZSJfcykpCiAgICAgICAgIHRyaWdnZXIuZnJhbWVVUkxGaWx0ZXJJc0Nhc2VTZW5zaXRp
dmUgPSAqZnJhbWVVUkxGaWx0ZXJDYXNlU2Vuc2l0aXZlVmFsdWU7CiAKLSAgICBpZiAoYXV0byBy
ZXNvdXJjZVR5cGVWYWx1ZSA9IHRyaWdnZXJPYmplY3QtPmdldFZhbHVlKCJyZXNvdXJjZS10eXBl
IikpIHsKKyAgICBpZiAoYXV0byByZXNvdXJjZVR5cGVWYWx1ZSA9IHRyaWdnZXJPYmplY3QtPmdl
dFZhbHVlKCJyZXNvdXJjZS10eXBlIl9zKSkgewogICAgICAgICBhdXRvIHJlc291cmNlVHlwZUFy
cmF5ID0gcmVzb3VyY2VUeXBlVmFsdWUtPmFzQXJyYXkoKTsKICAgICAgICAgaWYgKCFyZXNvdXJj
ZVR5cGVBcnJheSkKICAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50RXh0
ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkVHJpZ2dlckZsYWdzQXJyYXkpOwpAQCAtMTQ3LDcgKzE0
Nyw3IEBAIHN0YXRpYyBFeHBlY3RlZDxUcmlnZ2VyLCBzdGQ6OmVycm9yX2NvZGU+IGxvYWRUcmln
Z2VyKGNvbnN0IEpTT046Ok9iamVjdCYgcnVsZU9iCiAgICAgICAgICAgICByZXR1cm4gbWFrZVVu
ZXhwZWN0ZWQoZXJyb3IpOwogICAgIH0KIAotICAgIGlmIChhdXRvIGxvYWRUeXBlVmFsdWUgPSB0
cmlnZ2VyT2JqZWN0LT5nZXRWYWx1ZSgibG9hZC10eXBlIikpIHsKKyAgICBpZiAoYXV0byBsb2Fk
VHlwZVZhbHVlID0gdHJpZ2dlck9iamVjdC0+Z2V0VmFsdWUoImxvYWQtdHlwZSJfcykpIHsKICAg
ICAgICAgYXV0byBsb2FkVHlwZUFycmF5ID0gbG9hZFR5cGVWYWx1ZS0+YXNBcnJheSgpOwogICAg
ICAgICBpZiAoIWxvYWRUeXBlQXJyYXkpCiAgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0
ZWQoQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZFRyaWdnZXJGbGFnc0FycmF5KTsK
QEAgLTE1NSw3ICsxNTUsNyBAQCBzdGF0aWMgRXhwZWN0ZWQ8VHJpZ2dlciwgc3RkOjplcnJvcl9j
b2RlPiBsb2FkVHJpZ2dlcihjb25zdCBKU09OOjpPYmplY3QmIHJ1bGVPYgogICAgICAgICAgICAg
cmV0dXJuIG1ha2VVbmV4cGVjdGVkKGVycm9yKTsKICAgICB9CiAKLSAgICBpZiAoYXV0byBsb2Fk
Q29udGV4dFZhbHVlID0gdHJpZ2dlck9iamVjdC0+Z2V0VmFsdWUoImxvYWQtY29udGV4dCIpKSB7
CisgICAgaWYgKGF1dG8gbG9hZENvbnRleHRWYWx1ZSA9IHRyaWdnZXJPYmplY3QtPmdldFZhbHVl
KCJsb2FkLWNvbnRleHQiX3MpKSB7CiAgICAgICAgIGF1dG8gbG9hZENvbnRleHRBcnJheSA9IGxv
YWRDb250ZXh0VmFsdWUtPmFzQXJyYXkoKTsKICAgICAgICAgaWYgKCFsb2FkQ29udGV4dEFycmF5
KQogICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKENvbnRlbnRFeHRlbnNpb25FcnJv
cjo6SlNPTkludmFsaWRUcmlnZ2VyRmxhZ3NBcnJheSk7CkBAIC0yMTIsMTEgKzIxMiwxMSBAQCBi
b29sIGlzVmFsaWRDU1NTZWxlY3Rvcihjb25zdCBTdHJpbmcmIHNlbGVjdG9yKQogCiBzdGF0aWMg
c3RkOjpvcHRpb25hbDxFeHBlY3RlZDxBY3Rpb24sIHN0ZDo6ZXJyb3JfY29kZT4+IGxvYWRBY3Rp
b24oY29uc3QgSlNPTjo6T2JqZWN0JiBydWxlT2JqZWN0LCBjb25zdCBTdHJpbmcmIHVybEZpbHRl
cikKIHsKLSAgICBhdXRvIGFjdGlvbk9iamVjdCA9IHJ1bGVPYmplY3QuZ2V0T2JqZWN0KCJhY3Rp
b24iKTsKKyAgICBhdXRvIGFjdGlvbk9iamVjdCA9IHJ1bGVPYmplY3QuZ2V0T2JqZWN0KCJhY3Rp
b24iX3MpOwogICAgIGlmICghYWN0aW9uT2JqZWN0KQogICAgICAgICByZXR1cm4gbWFrZVVuZXhw
ZWN0ZWQoQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZEFjdGlvbik7CiAKLSAgICBT
dHJpbmcgYWN0aW9uVHlwZSA9IGFjdGlvbk9iamVjdC0+Z2V0U3RyaW5nKCJ0eXBlIik7CisgICAg
U3RyaW5nIGFjdGlvblR5cGUgPSBhY3Rpb25PYmplY3QtPmdldFN0cmluZygidHlwZSJfcyk7CiAK
ICAgICBpZiAoYWN0aW9uVHlwZSA9PSAiYmxvY2siKQogICAgICAgICByZXR1cm4gQWN0aW9uIHsg
QmxvY2tMb2FkQWN0aW9uKCkgfTsKQEAgLTIyNSw3ICsyMjUsNyBAQCBzdGF0aWMgc3RkOjpvcHRp
b25hbDxFeHBlY3RlZDxBY3Rpb24sIHN0ZDo6ZXJyb3JfY29kZT4+IGxvYWRBY3Rpb24oY29uc3Qg
SlNPTjo6TwogICAgIGlmIChhY3Rpb25UeXBlID09ICJibG9jay1jb29raWVzIikKICAgICAgICAg
cmV0dXJuIEFjdGlvbiB7IEJsb2NrQ29va2llc0FjdGlvbigpIH07CiAgICAgaWYgKGFjdGlvblR5
cGUgPT0gImNzcy1kaXNwbGF5LW5vbmUiKSB7Ci0gICAgICAgIFN0cmluZyBzZWxlY3RvclN0cmlu
ZyA9IGFjdGlvbk9iamVjdC0+Z2V0U3RyaW5nKCJzZWxlY3RvciIpOworICAgICAgICBTdHJpbmcg
c2VsZWN0b3JTdHJpbmcgPSBhY3Rpb25PYmplY3QtPmdldFN0cmluZygic2VsZWN0b3IiX3MpOwog
ICAgICAgICBpZiAoIXNlbGVjdG9yU3RyaW5nKQogICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4
cGVjdGVkKENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWRDU1NEaXNwbGF5Tm9uZUFj
dGlvblR5cGUpOwogICAgICAgICBpZiAoIWlzVmFsaWRDU1NTZWxlY3RvcihzZWxlY3RvclN0cmlu
ZykpCkBAIC0yMzUsNyArMjM1LDcgQEAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8RXhwZWN0ZWQ8QWN0
aW9uLCBzdGQ6OmVycm9yX2NvZGU+PiBsb2FkQWN0aW9uKGNvbnN0IEpTT046Ok8KICAgICBpZiAo
YWN0aW9uVHlwZSA9PSAibWFrZS1odHRwcyIpCiAgICAgICAgIHJldHVybiBBY3Rpb24geyBNYWtl
SFRUUFNBY3Rpb24oKSB9OwogICAgIGlmIChhY3Rpb25UeXBlID09ICJub3RpZnkiKSB7Ci0gICAg
ICAgIFN0cmluZyBub3RpZmljYXRpb24gPSBhY3Rpb25PYmplY3QtPmdldFN0cmluZygibm90aWZp
Y2F0aW9uIik7CisgICAgICAgIFN0cmluZyBub3RpZmljYXRpb24gPSBhY3Rpb25PYmplY3QtPmdl
dFN0cmluZygibm90aWZpY2F0aW9uIl9zKTsKICAgICAgICAgaWYgKCFub3RpZmljYXRpb24pCiAg
ICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoQ29udGVudEV4dGVuc2lvbkVycm9yOjpK
U09OSW52YWxpZE5vdGlmaWNhdGlvbik7CiAgICAgICAgIHJldHVybiBBY3Rpb24geyBOb3RpZnlB
Y3Rpb24geyB7IFdURk1vdmUobm90aWZpY2F0aW9uKSB9IH0gfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL1NlcmlhbGl6ZWRORkEuY3BwIGIvU291cmNlL1dl
YkNvcmUvY29udGVudGV4dGVuc2lvbnMvU2VyaWFsaXplZE5GQS5jcHAKaW5kZXggMDRjNmRhNWE4
NDhkMDg5MWYzM2Y0ZjgzOWRhOTUyYjhjNzY3OWEwOS4uMDUyYjU5N2JjZmI5MmE3NDM3OTNmOTE1
ZWQ2OTZlN2EwZTllNDhmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVu
c2lvbnMvU2VyaWFsaXplZE5GQS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVu
c2lvbnMvU2VyaWFsaXplZE5GQS5jcHAKQEAgLTUyLDcgKzUyLDcgQEAgYm9vbCB3cml0ZUFsbFRv
RmlsZShGaWxlU3lzdGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGUgZmlsZSwgY29uc3QgVCYgY29udGFp
bmVyKQogc3RkOjpvcHRpb25hbDxTZXJpYWxpemVkTkZBPiBTZXJpYWxpemVkTkZBOjpzZXJpYWxp
emUoTkZBJiYgbmZhKQogewogICAgIGF1dG8gZmlsZSA9IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0
Zm9ybUZpbGVIYW5kbGU7Ci0gICAgYXV0byBmaWxlbmFtZSA9IEZpbGVTeXN0ZW06Om9wZW5UZW1w
b3JhcnlGaWxlKCJTZXJpYWxpemVkTkZBIiwgZmlsZSk7CisgICAgYXV0byBmaWxlbmFtZSA9IEZp
bGVTeXN0ZW06Om9wZW5UZW1wb3JhcnlGaWxlKCJTZXJpYWxpemVkTkZBIl9zLCBmaWxlKTsKICAg
ICBpZiAoIUZpbGVTeXN0ZW06OmlzSGFuZGxlVmFsaWQoZmlsZSkpCiAgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNp
b25zL1VSTEZpbHRlclBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9u
cy9VUkxGaWx0ZXJQYXJzZXIuY3BwCmluZGV4IGQ4NzI5ZDM5MGQ5MDczMGEwZWI3ZGIzYThjOWYx
NzE4Yzg2ZjdhM2EuLjRmZjEyMjVmYWE4MjI4NWIzMWNlZDU3NTlkYjg5Nzc2OTE4OWU3NGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL1VSTEZpbHRlclBhcnNl
ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvVVJMRmlsdGVyUGFy
c2VyLmNwcApAQCAtMzY5LDM5ICszNjksMzkgQEAgVVJMRmlsdGVyUGFyc2VyOjpQYXJzZVN0YXR1
cyBVUkxGaWx0ZXJQYXJzZXI6OmFkZFBhdHRlcm4oY29uc3QgU3RyaW5nJiBwYXR0ZXJuLAogICAg
IHJldHVybiBzdGF0dXM7CiB9CiAKLVN0cmluZyBVUkxGaWx0ZXJQYXJzZXI6OnN0YXR1c1N0cmlu
ZyhQYXJzZVN0YXR1cyBzdGF0dXMpCitBU0NJSUxpdGVyYWwgVVJMRmlsdGVyUGFyc2VyOjpzdGF0
dXNTdHJpbmcoUGFyc2VTdGF0dXMgc3RhdHVzKQogewogICAgIHN3aXRjaCAoc3RhdHVzKSB7CiAg
ICAgY2FzZSBPazoKLSAgICAgICAgcmV0dXJuICJPayI7CisgICAgICAgIHJldHVybiAiT2siX3M7
CiAgICAgY2FzZSBNYXRjaGVzRXZlcnl0aGluZzoKLSAgICAgICAgcmV0dXJuICJNYXRjaGVzIGV2
ZXJ5dGhpbmcuIjsKKyAgICAgICAgcmV0dXJuICJNYXRjaGVzIGV2ZXJ5dGhpbmcuIl9zOwogICAg
IGNhc2UgTm9uQVNDSUk6Ci0gICAgICAgIHJldHVybiAiT25seSBBU0NJSSBjaGFyYWN0ZXJzIGFy
ZSBzdXBwb3J0ZWQgaW4gcGF0dGVybi4iOworICAgICAgICByZXR1cm4gIk9ubHkgQVNDSUkgY2hh
cmFjdGVycyBhcmUgc3VwcG9ydGVkIGluIHBhdHRlcm4uIl9zOwogICAgIGNhc2UgVW5zdXBwb3J0
ZWRDaGFyYWN0ZXJDbGFzczoKLSAgICAgICAgcmV0dXJuICJDaGFyYWN0ZXIgY2xhc3MgaXMgbm90
IHN1cHBvcnRlZC4iOworICAgICAgICByZXR1cm4gIkNoYXJhY3RlciBjbGFzcyBpcyBub3Qgc3Vw
cG9ydGVkLiJfczsKICAgICBjYXNlIEJhY2tSZWZlcmVuY2U6Ci0gICAgICAgIHJldHVybiAiUGF0
dGVybnMgY2Fubm90IGNvbnRhaW4gYmFja3JlZmVyZW5jZXMuIjsKKyAgICAgICAgcmV0dXJuICJQ
YXR0ZXJucyBjYW5ub3QgY29udGFpbiBiYWNrcmVmZXJlbmNlcy4iX3M7CiAgICAgY2FzZSBGb3J3
YXJkUmVmZXJlbmNlOgotICAgICAgICByZXR1cm4gIlBhdHRlcm5zIGNhbm5vdCBjb250YWluIGZv
cndhcmQgcmVmZXJlbmNlcy4iOworICAgICAgICByZXR1cm4gIlBhdHRlcm5zIGNhbm5vdCBjb250
YWluIGZvcndhcmQgcmVmZXJlbmNlcy4iX3M7CiAgICAgY2FzZSBNaXNwbGFjZWRTdGFydE9mTGlu
ZToKLSAgICAgICAgcmV0dXJuICJTdGFydCBvZiBsaW5lIGFzc2VydGlvbiBjYW4gb25seSBhcHBl
YXIgYXMgdGhlIGZpcnN0IHRlcm0gaW4gYSBmaWx0ZXIuIjsKKyAgICAgICAgcmV0dXJuICJTdGFy
dCBvZiBsaW5lIGFzc2VydGlvbiBjYW4gb25seSBhcHBlYXIgYXMgdGhlIGZpcnN0IHRlcm0gaW4g
YSBmaWx0ZXIuIl9zOwogICAgIGNhc2UgV29yZEJvdW5kYXJ5OgotICAgICAgICByZXR1cm4gIldv
cmQgYm91bmRhcmllcyBhc3NlcnRpb25zIGFyZSBub3Qgc3VwcG9ydGVkIHlldC4iOworICAgICAg
ICByZXR1cm4gIldvcmQgYm91bmRhcmllcyBhc3NlcnRpb25zIGFyZSBub3Qgc3VwcG9ydGVkIHll
dC4iX3M7CiAgICAgY2FzZSBBdG9tQ2hhcmFjdGVyOgotICAgICAgICByZXR1cm4gIkJ1aWx0aW5z
IGNoYXJhY3RlciBjbGFzcyBhdG9tcyBhcmUgbm90IHN1cHBvcnRlZCB5ZXQuIjsKKyAgICAgICAg
cmV0dXJuICJCdWlsdGlucyBjaGFyYWN0ZXIgY2xhc3MgYXRvbXMgYXJlIG5vdCBzdXBwb3J0ZWQg
eWV0LiJfczsKICAgICBjYXNlIEdyb3VwOgotICAgICAgICByZXR1cm4gIkdyb3VwcyBhcmUgbm90
IHN1cHBvcnRlZCB5ZXQuIjsKKyAgICAgICAgcmV0dXJuICJHcm91cHMgYXJlIG5vdCBzdXBwb3J0
ZWQgeWV0LiJfczsKICAgICBjYXNlIERpc2p1bmN0aW9uOgotICAgICAgICByZXR1cm4gIkRpc2p1
bmN0aW9ucyBhcmUgbm90IHN1cHBvcnRlZCB5ZXQuIjsKKyAgICAgICAgcmV0dXJuICJEaXNqdW5j
dGlvbnMgYXJlIG5vdCBzdXBwb3J0ZWQgeWV0LiJfczsKICAgICBjYXNlIE1pc3BsYWNlZEVuZE9m
TGluZToKLSAgICAgICAgcmV0dXJuICJUaGUgZW5kIG9mIGxpbmUgYXNzZXJ0aW9uIG11c3QgYmUg
dGhlIGxhc3QgdGVybSBpbiBhbiBleHByZXNzaW9uLiI7CisgICAgICAgIHJldHVybiAiVGhlIGVu
ZCBvZiBsaW5lIGFzc2VydGlvbiBtdXN0IGJlIHRoZSBsYXN0IHRlcm0gaW4gYW4gZXhwcmVzc2lv
bi4iX3M7CiAgICAgY2FzZSBFbXB0eVBhdHRlcm46Ci0gICAgICAgIHJldHVybiAiRW1wdHkgcGF0
dGVybi4iOworICAgICAgICByZXR1cm4gIkVtcHR5IHBhdHRlcm4uIl9zOwogICAgIGNhc2UgWWFy
ckVycm9yOgotICAgICAgICByZXR1cm4gIkludGVybmFsIGVycm9yIGluIFlBUlIuIjsKKyAgICAg
ICAgcmV0dXJuICJJbnRlcm5hbCBlcnJvciBpbiBZQVJSLiJfczsKICAgICBjYXNlIEludmFsaWRR
dWFudGlmaWVyOgotICAgICAgICByZXR1cm4gIkFyYml0cmFyeSBhdG9tIHJlcGV0aXRpb25zIGFy
ZSBub3Qgc3VwcG9ydGVkLiI7CisgICAgICAgIHJldHVybiAiQXJiaXRyYXJ5IGF0b20gcmVwZXRp
dGlvbnMgYXJlIG5vdCBzdXBwb3J0ZWQuIl9zOwogICAgIH0KIAogICAgIFJFTEVBU0VfQVNTRVJU
X05PVF9SRUFDSEVEKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5z
aW9ucy9VUkxGaWx0ZXJQYXJzZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25z
L1VSTEZpbHRlclBhcnNlci5oCmluZGV4IGI1YzFmNmQ5ZmQyZTdjOTRjYjI1NjU3NTY4OWRmNGI3
MDcwNzlhOWQuLjg4OTgzYjU1YzNjYmVkNTlmNGE0YTAxYWVkMjVhNDMyYzgwMjhiNDEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL1VSTEZpbHRlclBhcnNlci5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL1VSTEZpbHRlclBhcnNlci5o
CkBAIC01NCw3ICs1NCw3IEBAIHB1YmxpYzoKICAgICAgICAgWWFyckVycm9yLAogICAgICAgICBJ
bnZhbGlkUXVhbnRpZmllciwKICAgICB9OwotICAgIHN0YXRpYyBTdHJpbmcgc3RhdHVzU3RyaW5n
KFBhcnNlU3RhdHVzKTsKKyAgICBzdGF0aWMgQVNDSUlMaXRlcmFsIHN0YXR1c1N0cmluZyhQYXJz
ZVN0YXR1cyk7CiAgICAgZXhwbGljaXQgVVJMRmlsdGVyUGFyc2VyKENvbWJpbmVkVVJMRmlsdGVy
cyYpOwogICAgIH5VUkxGaWx0ZXJQYXJzZXIoKTsKICAgICBQYXJzZVN0YXR1cyBhZGRQYXR0ZXJu
KGNvbnN0IFN0cmluZyYgcGF0dGVybiwgYm9vbCBwYXR0ZXJuSXNDYXNlU2Vuc2l0aXZlLCB1aW50
NjRfdCBwYXR0ZXJuSWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL1N1YnRs
ZUNyeXB0by5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vU3VidGxlQ3J5cHRvLmNwcAppbmRl
eCBlYWEzMjE4ZmNmN2I3Nzg1NGZiMjM4NWU1MDFhOTk5NDM2ZmJlYjU4Li45ZDZmNDMwMzY1OTgy
ZDZlOTUwZTljMWE2YTFkNmIyYzFhN2QzOTZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
cnlwdG8vU3VidGxlQ3J5cHRvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vU3VidGxl
Q3J5cHRvLmNwcApAQCAtNTM0LDcgKzUzNCw3IEBAIHZvaWQgU3VidGxlQ3J5cHRvOjphZGRBdXRo
ZW50aWNhdGVkRW5jcnlwdGlvbldhcm5pbmdJZk5lY2Vzc2FyeShDcnlwdG9BbGdvcml0aG1JCiB7
CiAgICAgaWYgKGFsZ29yaXRobUlkZW50aWZpZXIgPT0gQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmll
cjo6QUVTX0NCQyB8fCBhbGdvcml0aG1JZGVudGlmaWVyID09IENyeXB0b0FsZ29yaXRobUlkZW50
aWZpZXI6OkFFU19DVFIpIHsKICAgICAgICAgaWYgKCFzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkt
Pmhhc0xvZ2dlZEF1dGhlbnRpY2F0ZWRFbmNyeXB0aW9uV2FybmluZygpKSB7Ci0gICAgICAgICAg
ICBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3Vy
Y2U6OlNlY3VyaXR5LCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsICJBRVMtQ0JDIGFuZCBBRVMtQ1RS
IGRvIG5vdCBwcm92aWRlIGF1dGhlbnRpY2F0aW9uIGJ5IGRlZmF1bHQsIGFuZCBpbXBsZW1lbnRp
bmcgaXQgbWFudWFsbHkgY2FuIHJlc3VsdCBpbiBtaW5vciwgYnV0IHNlcmlvdXMgbWlzdGFrZXMu
IFdlIHJlY29tbWVuZGVkIHVzaW5nIGF1dGhlbnRpY2F0ZWQgZW5jcnlwdGlvbiBsaWtlIEFFUy1H
Q00gdG8gcHJvdGVjdCBhZ2FpbnN0IGNob3Nlbi1jaXBoZXJ0ZXh0IGF0dGFja3MuIik7CisgICAg
ICAgICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmFkZENvbnNvbGVNZXNzYWdlKE1lc3Nh
Z2VTb3VyY2U6OlNlY3VyaXR5LCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsICJBRVMtQ0JDIGFuZCBB
RVMtQ1RSIGRvIG5vdCBwcm92aWRlIGF1dGhlbnRpY2F0aW9uIGJ5IGRlZmF1bHQsIGFuZCBpbXBs
ZW1lbnRpbmcgaXQgbWFudWFsbHkgY2FuIHJlc3VsdCBpbiBtaW5vciwgYnV0IHNlcmlvdXMgbWlz
dGFrZXMuIFdlIHJlY29tbWVuZGVkIHVzaW5nIGF1dGhlbnRpY2F0ZWQgZW5jcnlwdGlvbiBsaWtl
IEFFUy1HQ00gdG8gcHJvdGVjdCBhZ2FpbnN0IGNob3Nlbi1jaXBoZXJ0ZXh0IGF0dGFja3MuIl9z
KTsKICAgICAgICAgICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+c2V0SGFzTG9nZ2VkQXV0
aGVudGljYXRlZEVuY3J5cHRpb25XYXJuaW5nKHRydWUpOwogICAgICAgICB9CiAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGht
QUVTX0NCQy5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3Jp
dGhtQUVTX0NCQy5oCmluZGV4IDI3MzI5ODViNzdmZWRmYzM5Njc0ZDQ3NDlkODk1NTBhMGExNzFj
MjYuLmI3NDQzYTczMzk4NDIwODhmODNjY2M2ZjM1Y2EyOTc3MTYwOGNjZmEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DQkMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1B
RVNfQ0JDLmgKQEAgLTQxLDcgKzQxLDcgQEAgcHVibGljOgogICAgICAgICBObwogICAgIH07CiAK
LSAgICBzdGF0aWMgY29uc3RleHByIGNvbnN0IGNoYXIqIHNfbmFtZSA9ICJBRVMtQ0JDIjsKKyAg
ICBzdGF0aWMgY29uc3RleHByIEFTQ0lJTGl0ZXJhbCBzX25hbWUgPSAiQUVTLUNCQyJfczsKICAg
ICBzdGF0aWMgY29uc3RleHByIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgc19pZGVudGlmaWVy
ID0gQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6QUVTX0NCQzsKICAgICBzdGF0aWMgUmVmPENy
eXB0b0FsZ29yaXRobT4gY3JlYXRlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Ny
eXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DRkIuaCBiL1NvdXJjZS9XZWJDb3Jl
L2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DRkIuaAppbmRleCBjMjI3NDE5
MWY2MzViODMzYTQ5MWU4MmNiMWRlN2RhODEwM2M2ZDlhLi41MDhhMjAzMzY0YWNiYWNmYzBmZmM4
NTcyNzUyNzllZjU0NmNmYzg4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxn
b3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfQ0ZCLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5
cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NGQi5oCkBAIC0zNiw3ICszNiw3IEBA
IGNsYXNzIENyeXB0b0tleUFFUzsKIAogY2xhc3MgQ3J5cHRvQWxnb3JpdGhtQUVTX0NGQiBmaW5h
bCA6IHB1YmxpYyBDcnlwdG9BbGdvcml0aG0gewogcHVibGljOgotICAgIHN0YXRpYyBjb25zdGV4
cHIgY29uc3QgY2hhciogc19uYW1lID0gIkFFUy1DRkItOCI7CisgICAgc3RhdGljIGNvbnN0ZXhw
ciBBU0NJSUxpdGVyYWwgc19uYW1lID0gIkFFUy1DRkItOCJfczsKICAgICBzdGF0aWMgY29uc3Rl
eHByIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgc19pZGVudGlmaWVyID0gQ3J5cHRvQWxnb3Jp
dGhtSWRlbnRpZmllcjo6QUVTX0NGQjsKICAgICBzdGF0aWMgUmVmPENyeXB0b0FsZ29yaXRobT4g
Y3JlYXRlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1z
L0NyeXB0b0FsZ29yaXRobUFFU19DVFIuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0
aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DVFIuaAppbmRleCA3MThmNmUwZTMzODZlNmZlNjI1Mzk1
YWZiYjc5YWQzMGM0ZmE0MTRhLi44YmQzOTMzOWRjMzYwMGY2YzQ4NmVhNjEwYzFiODI0NmI4YzIy
NzAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9B
bGdvcml0aG1BRVNfQ1RSLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMv
Q3J5cHRvQWxnb3JpdGhtQUVTX0NUUi5oCkBAIC02NCw3ICs2NCw3IEBAIHB1YmxpYzoKICAgICAg
ICAgY29uc3Qgc2l6ZV90IG1fY291bnRlckxlbmd0aDsKICAgICB9OwogCi0gICAgc3RhdGljIGNv
bnN0ZXhwciBjb25zdCBjaGFyKiBzX25hbWUgPSAiQUVTLUNUUiI7CisgICAgc3RhdGljIGNvbnN0
ZXhwciBBU0NJSUxpdGVyYWwgc19uYW1lID0gIkFFUy1DVFIiX3M7CiAgICAgc3RhdGljIGNvbnN0
ZXhwciBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIHNfaWRlbnRpZmllciA9IENyeXB0b0FsZ29y
aXRobUlkZW50aWZpZXI6OkFFU19DVFI7CiAgICAgc3RhdGljIFJlZjxDcnlwdG9BbGdvcml0aG0+
IGNyZWF0ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGht
cy9DcnlwdG9BbGdvcml0aG1BRVNfR0NNLmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3Jp
dGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfR0NNLmgKaW5kZXggZDBhZDFmMTNjMTc4YjVjYzliMTc2
ZWIzMGU2Y2VjMmExYmNiNDY1OC4uNTMzMTBlMTExMDc1ZTE2MzRlZjNlMDU3YjRhZGY2YTEzYzY5
MjMxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRv
QWxnb3JpdGhtQUVTX0dDTS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1z
L0NyeXB0b0FsZ29yaXRobUFFU19HQ00uaApAQCAtMzYsNyArMzYsNyBAQCBjbGFzcyBDcnlwdG9L
ZXlBRVM7CiAKIGNsYXNzIENyeXB0b0FsZ29yaXRobUFFU19HQ00gZmluYWwgOiBwdWJsaWMgQ3J5
cHRvQWxnb3JpdGhtIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3RleHByIGNvbnN0IGNoYXIq
IHNfbmFtZSA9ICJBRVMtR0NNIjsKKyAgICBzdGF0aWMgY29uc3RleHByIEFTQ0lJTGl0ZXJhbCBz
X25hbWUgPSAiQUVTLUdDTSJfczsKICAgICBzdGF0aWMgY29uc3RleHByIENyeXB0b0FsZ29yaXRo
bUlkZW50aWZpZXIgc19pZGVudGlmaWVyID0gQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6QUVT
X0dDTTsKICAgICBzdGF0aWMgUmVmPENyeXB0b0FsZ29yaXRobT4gY3JlYXRlKCk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFF
U19LVy5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGht
QUVTX0tXLmgKaW5kZXggNTdlNjljMTVjMTJjN2VlMThlYjc2NTE4ZGZmODdiZjRiNTcyNGI5OS4u
YTA4ZGVjM2YyNmNiYjU5OTE1NGEyMzU2NTkwZWYwZmQxNzdjNjNkYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0tXLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0tX
LmgKQEAgLTM1LDcgKzM1LDcgQEAgY2xhc3MgQ3J5cHRvS2V5QUVTOwogCiBjbGFzcyBDcnlwdG9B
bGdvcml0aG1BRVNfS1cgZmluYWwgOiBwdWJsaWMgQ3J5cHRvQWxnb3JpdGhtIHsKIHB1YmxpYzoK
LSAgICBzdGF0aWMgY29uc3RleHByIGNvbnN0IGNoYXIqIHNfbmFtZSA9ICJBRVMtS1ciOworICAg
IHN0YXRpYyBjb25zdGV4cHIgQVNDSUlMaXRlcmFsIHNfbmFtZSA9ICJBRVMtS1ciX3M7CiAgICAg
c3RhdGljIGNvbnN0ZXhwciBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIHNfaWRlbnRpZmllciA9
IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkFFU19LVzsKICAgICBzdGF0aWMgUmVmPENyeXB0
b0FsZ29yaXRobT4gY3JlYXRlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0
by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUVDREguaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0
by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUVDREguaAppbmRleCA5M2ExNWEyZGEzNTFkY2U3
Mjc0MzM4MTk3ZDI2NjMxMDU4NWY3YmY1Li4zMmQ1NTQ1NmM5NzA4MjVjY2U1NTJkN2RlMDQzYTQy
OTUwZDBlMjNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9D
cnlwdG9BbGdvcml0aG1FQ0RILmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRo
bXMvQ3J5cHRvQWxnb3JpdGhtRUNESC5oCkBAIC0zNSw3ICszNSw3IEBAIGNsYXNzIENyeXB0b0tl
eUVDOwogCiBjbGFzcyBDcnlwdG9BbGdvcml0aG1FQ0RIIGZpbmFsIDogcHVibGljIENyeXB0b0Fs
Z29yaXRobSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBjb25zdCBjaGFyKiBzX25h
bWUgPSAiRUNESCI7CisgICAgc3RhdGljIGNvbnN0ZXhwciBBU0NJSUxpdGVyYWwgc19uYW1lID0g
IkVDREgiX3M7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVy
IHNfaWRlbnRpZmllciA9IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkVDREg7CiAgICAgc3Rh
dGljIFJlZjxDcnlwdG9BbGdvcml0aG0+IGNyZWF0ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1FQ0RTQS5oIGIvU291cmNl
L1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtRUNEU0EuaAppbmRleCAz
YTU5MWJkZmFmMjI4ODUwZGU4YzA4MmJmMjc3YTE5MDA2Mzg5ZTY2Li5iN2M3ODg5ZjhlMDMyMTM0
YzNkZTAzYjdhYWJmNzVjNTJmODJiZDNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlw
dG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1FQ0RTQS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUVDRFNBLmgKQEAgLTM2LDcgKzM2LDcg
QEAgY2xhc3MgQ3J5cHRvS2V5RUM7CiAKIGNsYXNzIENyeXB0b0FsZ29yaXRobUVDRFNBIGZpbmFs
IDogcHVibGljIENyeXB0b0FsZ29yaXRobSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0ZXhw
ciBjb25zdCBjaGFyKiBzX25hbWUgPSAiRUNEU0EiOworICAgIHN0YXRpYyBjb25zdGV4cHIgQVND
SUlMaXRlcmFsIHNfbmFtZSA9ICJFQ0RTQSJfczsKICAgICBzdGF0aWMgY29uc3RleHByIENyeXB0
b0FsZ29yaXRobUlkZW50aWZpZXIgc19pZGVudGlmaWVyID0gQ3J5cHRvQWxnb3JpdGhtSWRlbnRp
Zmllcjo6RUNEU0E7CiAgICAgc3RhdGljIFJlZjxDcnlwdG9BbGdvcml0aG0+IGNyZWF0ZSgpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdv
cml0aG1IS0RGLmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdv
cml0aG1IS0RGLmgKaW5kZXggMWRkY2Q5ZDFhMTQ2MzE2MDMyMWIxMTZhZTc0ZDlhMzZkOWNiMWQ2
YS4uOGYzOTM5YjE5YjRlYzkyODY3ODA3M2YyNzQ2YTk1YjBlZjNiMzVhMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtSEtERi5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUhLREYu
aApAQCAtMzYsNyArMzYsNyBAQCBjbGFzcyBDcnlwdG9LZXlSYXc7CiAKIGNsYXNzIENyeXB0b0Fs
Z29yaXRobUhLREYgZmluYWwgOiBwdWJsaWMgQ3J5cHRvQWxnb3JpdGhtIHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgY29uc3RleHByIGNvbnN0IGNoYXIqIHNfbmFtZSA9ICJIS0RGIjsKKyAgICBzdGF0
aWMgY29uc3RleHByIEFTQ0lJTGl0ZXJhbCBzX25hbWUgPSAiSEtERiJfczsKICAgICBzdGF0aWMg
Y29uc3RleHByIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgc19pZGVudGlmaWVyID0gQ3J5cHRv
QWxnb3JpdGhtSWRlbnRpZmllcjo6SEtERjsKICAgICBzdGF0aWMgUmVmPENyeXB0b0FsZ29yaXRo
bT4gY3JlYXRlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0
aG1zL0NyeXB0b0FsZ29yaXRobUhNQUMuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0
aG1zL0NyeXB0b0FsZ29yaXRobUhNQUMuaAppbmRleCBmYThmMGFkZGNjZTEyOGYyNDcxNTE3M2Zh
ZmJmYTkyNzMyNTI1MGQzLi45ZjEwODQ2OThhYjQzZjdlNWVkOTliYmNhZDg1ZjgxMWFhYmI1YzIz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdv
cml0aG1ITUFDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRv
QWxnb3JpdGhtSE1BQy5oCkBAIC0zNSw3ICszNSw3IEBAIGNsYXNzIENyeXB0b0tleUhNQUM7CiAK
IGNsYXNzIENyeXB0b0FsZ29yaXRobUhNQUMgZmluYWwgOiBwdWJsaWMgQ3J5cHRvQWxnb3JpdGht
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3RleHByIGNvbnN0IGNoYXIqIHNfbmFtZSA9ICJI
TUFDIjsKKyAgICBzdGF0aWMgY29uc3RleHByIEFTQ0lJTGl0ZXJhbCBzX25hbWUgPSAiSE1BQyJf
czsKICAgICBzdGF0aWMgY29uc3RleHByIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgc19pZGVu
dGlmaWVyID0gQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6SE1BQzsKICAgICBzdGF0aWMgUmVm
PENyeXB0b0FsZ29yaXRobT4gY3JlYXRlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVBCS0RGMi5oIGIvU291cmNlL1dlYkNv
cmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUEJLREYyLmgKaW5kZXggYmQ5NzQ1
YzcwMzU4ZTc4ZDUzYjQ4MGNjMjY2ZGM0NDk3NzhmYjg0Mi4uMzQwNjllNTFmYWFlNmEyMDcyMjI5
ODI4ZDE2ZDlhMzI5ZDVhOGJmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2Fs
Z29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUEJLREYyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5
cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUEJLREYyLmgKQEAgLTM2LDcgKzM2LDcgQEAg
Y2xhc3MgQ3J5cHRvS2V5UmF3OwogCiBjbGFzcyBDcnlwdG9BbGdvcml0aG1QQktERjIgZmluYWwg
OiBwdWJsaWMgQ3J5cHRvQWxnb3JpdGhtIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3RleHBy
IGNvbnN0IGNoYXIqIHNfbmFtZSA9ICJQQktERjIiOworICAgIHN0YXRpYyBjb25zdGV4cHIgQVND
SUlMaXRlcmFsIHNfbmFtZSA9ICJQQktERjIiX3M7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBDcnlw
dG9BbGdvcml0aG1JZGVudGlmaWVyIHNfaWRlbnRpZmllciA9IENyeXB0b0FsZ29yaXRobUlkZW50
aWZpZXI6OlBCS0RGMjsKICAgICBzdGF0aWMgUmVmPENyeXB0b0FsZ29yaXRobT4gY3JlYXRlKCk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0Fs
Z29yaXRobVJTQUVTX1BLQ1MxX3YxXzUuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0
aG1zL0NyeXB0b0FsZ29yaXRobVJTQUVTX1BLQ1MxX3YxXzUuaAppbmRleCA4YjUxYjQxZTdjMGE1
N2Y2NjhmNTg0NzlmYTI5ZTYzOGU5ZTFhZDBiLi5kMjFlNmMxZWUyODZmN2RjNjM4NzVhOTg0YWIy
M2U3MDA0ZWUxODgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGht
cy9DcnlwdG9BbGdvcml0aG1SU0FFU19QS0NTMV92MV81LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBRVNfUEtDUzFfdjFfNS5oCkBAIC0z
NSw3ICszNSw3IEBAIGNsYXNzIENyeXB0b0tleVJTQTsKIAogY2xhc3MgQ3J5cHRvQWxnb3JpdGht
UlNBRVNfUEtDUzFfdjFfNSBmaW5hbCA6IHB1YmxpYyBDcnlwdG9BbGdvcml0aG0gewogcHVibGlj
OgotICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3QgY2hhciogc19uYW1lID0gIlJTQUVTLVBLQ1Mx
LXYxXzUiOworICAgIHN0YXRpYyBjb25zdGV4cHIgQVNDSUlMaXRlcmFsIHNfbmFtZSA9ICJSU0FF
Uy1QS0NTMS12MV81Il9zOwogICAgIHN0YXRpYyBjb25zdGV4cHIgQ3J5cHRvQWxnb3JpdGhtSWRl
bnRpZmllciBzX2lkZW50aWZpZXIgPSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpSU0FFU19Q
S0NTMV92MV81OwogICAgIHN0YXRpYyBSZWY8Q3J5cHRvQWxnb3JpdGhtPiBjcmVhdGUoKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3Jp
dGhtUlNBU1NBX1BLQ1MxX3YxXzUuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1z
L0NyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81LmgKaW5kZXggZDliN2I0NTA3MjNhZmNk
YTk5OTk1Y2I4ODNjZGEzOWNhZjMyOGRjZS4uZDE4NWQzYTRiZGEyZGEzN2NkYjBkZjI4ZjY4YTI3
M2RkZTk5Yjg2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMv
Q3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
cnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNS5oCkBAIC0z
NSw3ICszNSw3IEBAIGNsYXNzIENyeXB0b0tleVJTQTsKIAogY2xhc3MgQ3J5cHRvQWxnb3JpdGht
UlNBU1NBX1BLQ1MxX3YxXzUgZmluYWwgOiBwdWJsaWMgQ3J5cHRvQWxnb3JpdGhtIHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgY29uc3RleHByIGNvbnN0IGNoYXIqIHNfbmFtZSA9ICJSU0FTU0EtUEtD
UzEtdjFfNSI7CisgICAgc3RhdGljIGNvbnN0ZXhwciBBU0NJSUxpdGVyYWwgc19uYW1lID0gIlJT
QVNTQS1QS0NTMS12MV81Il9zOwogICAgIHN0YXRpYyBjb25zdGV4cHIgQ3J5cHRvQWxnb3JpdGht
SWRlbnRpZmllciBzX2lkZW50aWZpZXIgPSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpSU0FT
U0FfUEtDUzFfdjFfNTsKICAgICBzdGF0aWMgUmVmPENyeXB0b0FsZ29yaXRobT4gY3JlYXRlKCk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0Fs
Z29yaXRobVJTQV9PQUVQLmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9Dcnlw
dG9BbGdvcml0aG1SU0FfT0FFUC5oCmluZGV4IDA5NmFmM2NhMjMwNzk1OWYyNDU0ZWUzY2ZkMmIz
ZjBlMjJiNDczZjIuLmRiYTdlYTlkNWQ3MjJlNDI3YTNiMGFhNGY5ZGNkMzJmZjQ0NTlmMmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRo
bVJTQV9PQUVQLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRv
QWxnb3JpdGhtUlNBX09BRVAuaApAQCAtMzYsNyArMzYsNyBAQCBjbGFzcyBDcnlwdG9LZXlSU0E7
CiAKIGNsYXNzIENyeXB0b0FsZ29yaXRobVJTQV9PQUVQIGZpbmFsIDogcHVibGljIENyeXB0b0Fs
Z29yaXRobSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBjb25zdCBjaGFyKiBzX25h
bWUgPSAiUlNBLU9BRVAiOworICAgIHN0YXRpYyBjb25zdGV4cHIgQVNDSUlMaXRlcmFsIHNfbmFt
ZSA9ICJSU0EtT0FFUCJfczsKICAgICBzdGF0aWMgY29uc3RleHByIENyeXB0b0FsZ29yaXRobUlk
ZW50aWZpZXIgc19pZGVudGlmaWVyID0gQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6UlNBX09B
RVA7CiAgICAgc3RhdGljIFJlZjxDcnlwdG9BbGdvcml0aG0+IGNyZWF0ZSgpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0Ff
UFNTLmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1S
U0FfUFNTLmgKaW5kZXggNTg3OWE1NjdjY2NjN2IwYTFjOWFkNGQ5MTc4OWQ5ZDA1NGIwMDk3NC4u
YjFmN2Y3NzJjZTQyMjc4ZDRkOTRkNWMwYTc2Y2FlNWVkZjBlNDBlYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBX1BTUy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQV9Q
U1MuaApAQCAtMzYsNyArMzYsNyBAQCBjbGFzcyBDcnlwdG9LZXlSU0E7CiAKIGNsYXNzIENyeXB0
b0FsZ29yaXRobVJTQV9QU1MgZmluYWwgOiBwdWJsaWMgQ3J5cHRvQWxnb3JpdGhtIHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgY29uc3RleHByIGNvbnN0IGNoYXIqIHNfbmFtZSA9ICJSU0EtUFNTIjsK
KyAgICBzdGF0aWMgY29uc3RleHByIEFTQ0lJTGl0ZXJhbCBzX25hbWUgPSAiUlNBLVBTUyJfczsK
ICAgICBzdGF0aWMgY29uc3RleHByIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgc19pZGVudGlm
aWVyID0gQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6UlNBX1BTUzsKICAgICBzdGF0aWMgUmVm
PENyeXB0b0FsZ29yaXRobT4gY3JlYXRlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTEuaCBiL1NvdXJjZS9XZWJDb3Jl
L2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTEuaAppbmRleCBkODA3YWJiOTc0
Y2JhYWMzYjBhN2JjN2FkODY1OGZjYWZiNWFkNmFlLi4xZmQ3NzVhODEzNjQzYzFiMmZhY2M3ZDNj
OTQwOWQzMmZlMWNlODU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3Jp
dGhtcy9DcnlwdG9BbGdvcml0aG1TSEExLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2Fs
Z29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMS5oCkBAIC0zMyw3ICszMyw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgQ3J5cHRvQWxnb3JpdGhtU0hBMSBmaW5hbCA6IHB1YmxpYyBD
cnlwdG9BbGdvcml0aG0gewogcHVibGljOgotICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3QgY2hh
ciogc19uYW1lID0gIlNIQS0xIjsKKyAgICBzdGF0aWMgY29uc3RleHByIEFTQ0lJTGl0ZXJhbCBz
X25hbWUgPSAiU0hBLTEiX3M7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBDcnlwdG9BbGdvcml0aG1J
ZGVudGlmaWVyIHNfaWRlbnRpZmllciA9IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlNIQV8x
OwogICAgIHN0YXRpYyBSZWY8Q3J5cHRvQWxnb3JpdGhtPiBjcmVhdGUoKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMjI0
LmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEy
MjQuaAppbmRleCA3ODA0YmFjZmYyNTcyZDhkYzY1MTEwMDQwNGY5MDViZjkzYmZjNGM2Li40OTNl
MTYyYWIzNjUyZTY2YzM1MDRhOGQ3OTVjMjg2OWQ0ZGRjZWM5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEyMjQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEyMjQuaApA
QCAtMzMsNyArMzMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENyeXB0b0FsZ29y
aXRobVNIQTIyNCBmaW5hbCA6IHB1YmxpYyBDcnlwdG9BbGdvcml0aG0gewogcHVibGljOgotICAg
IHN0YXRpYyBjb25zdGV4cHIgY29uc3QgY2hhciogc19uYW1lID0gIlNIQS0yMjQiOworICAgIHN0
YXRpYyBjb25zdGV4cHIgQVNDSUlMaXRlcmFsIHNfbmFtZSA9ICJTSEEtMjI0Il9zOwogICAgIHN0
YXRpYyBjb25zdGV4cHIgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBzX2lkZW50aWZpZXIgPSBD
cnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpTSEFfMjI0OwogICAgIHN0YXRpYyBSZWY8Q3J5cHRv
QWxnb3JpdGhtPiBjcmVhdGUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRv
L2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMjU2LmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlw
dG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEyNTYuaAppbmRleCBjZTI0MDRjNzRkNTVj
OGYyNzQ0MDVlNTZmNGQ1OGE3ZmY2MTYxNWY5Li5mNWE4NTQzYzgyYzU1NDhlZTQyYjNiOTMyNzEx
ZTY4NTVlZjhmMGY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGht
cy9DcnlwdG9BbGdvcml0aG1TSEEyNTYuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxn
b3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEyNTYuaApAQCAtMzMsNyArMzMsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIENyeXB0b0FsZ29yaXRobVNIQTI1NiBmaW5hbCA6IHB1Ymxp
YyBDcnlwdG9BbGdvcml0aG0gewogcHVibGljOgotICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3Qg
Y2hhciogc19uYW1lID0gIlNIQS0yNTYiOworICAgIHN0YXRpYyBjb25zdGV4cHIgQVNDSUlMaXRl
cmFsIHNfbmFtZSA9ICJTSEEtMjU2Il9zOwogICAgIHN0YXRpYyBjb25zdCBDcnlwdG9BbGdvcml0
aG1JZGVudGlmaWVyIHNfaWRlbnRpZmllciA9IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlNI
QV8yNTY7CiAgICAgc3RhdGljIFJlZjxDcnlwdG9BbGdvcml0aG0+IGNyZWF0ZSgpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1T
SEEzODQuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRo
bVNIQTM4NC5oCmluZGV4IDZjYzU3NDkxMzI2YTAwOGU0MjZmMjY5MjEzODlhZDZmNGM0YmY4NDku
LmU1YmYyMjMyYWNmMmRhNmExMDA2ZWE1MjAxOTM0MDhiMTgwNWYyYzMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTM4NC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTM4
NC5oCkBAIC0zMyw3ICszMyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ3J5cHRv
QWxnb3JpdGhtU0hBMzg0IGZpbmFsIDogcHVibGljIENyeXB0b0FsZ29yaXRobSB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBjb25zdCBjaGFyKiBzX25hbWUgPSAiU0hBLTM4NCI7Cisg
ICAgc3RhdGljIGNvbnN0ZXhwciBBU0NJSUxpdGVyYWwgc19uYW1lID0gIlNIQS0zODQiX3M7CiAg
ICAgc3RhdGljIGNvbnN0ZXhwciBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIHNfaWRlbnRpZmll
ciA9IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlNIQV8zODQ7CiAgICAgc3RhdGljIFJlZjxD
cnlwdG9BbGdvcml0aG0+IGNyZWF0ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
cnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEE1MTIuaCBiL1NvdXJjZS9XZWJDb3Jl
L2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTUxMi5oCmluZGV4IDBkNGEwYjk2
YjY0MmE0Y2RmYTdiZjk5MGE5N2VmNzNiOGI3NjEzZjguLjA1Zjk4ZmM0YTg2NjZkYWZkYTYwNTlh
MTRmZTVlMTczN2E0YTc0MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdv
cml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTUxMi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0
by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTUxMi5oCkBAIC0zMyw3ICszMyw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ3J5cHRvQWxnb3JpdGhtU0hBNTEyIGZpbmFsIDog
cHVibGljIENyeXB0b0FsZ29yaXRobSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBj
b25zdCBjaGFyKiBzX25hbWUgPSAiU0hBLTUxMiI7CisgICAgc3RhdGljIGNvbnN0ZXhwciBBU0NJ
SUxpdGVyYWwgc19uYW1lID0gIlNIQS01MTIiX3M7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBDcnlw
dG9BbGdvcml0aG1JZGVudGlmaWVyIHNfaWRlbnRpZmllciA9IENyeXB0b0FsZ29yaXRobUlkZW50
aWZpZXI6OlNIQV81MTI7CiAgICAgc3RhdGljIFJlZjxDcnlwdG9BbGdvcml0aG0+IGNyZWF0ZSgp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlBRVMu
Y3BwIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5QUVTLmNwcAppbmRleCA0
MmZlM2E0YmU1MjE4MTk5NzM0ZGVkZDAzYWI3Yzk3MWYzMDExYWQ0Li5jNzZjODYzZDVhZmM1YTQx
NWIwNjU1ODg1MGQzMDc1MjBjMGM2N2NlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlw
dG8va2V5cy9DcnlwdG9LZXlBRVMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlz
L0NyeXB0b0tleUFFUy5jcHAKQEAgLTEwNiw3ICsxMDYsNyBAQCBSZWZQdHI8Q3J5cHRvS2V5QUVT
PiBDcnlwdG9LZXlBRVM6OmltcG9ydEp3ayhDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGFsZ29y
aXRobQogSnNvbldlYktleSBDcnlwdG9LZXlBRVM6OmV4cG9ydEp3aygpIGNvbnN0CiB7CiAgICAg
SnNvbldlYktleSByZXN1bHQ7Ci0gICAgcmVzdWx0Lmt0eSA9ICJvY3QiOworICAgIHJlc3VsdC5r
dHkgPSAib2N0Il9zOwogICAgIHJlc3VsdC5rID0gYmFzZTY0VVJMRW5jb2RlVG9TdHJpbmcobV9r
ZXkpOwogICAgIHJlc3VsdC5rZXlfb3BzID0gdXNhZ2VzKCk7CiAgICAgcmVzdWx0LmV4dCA9IGV4
dHJhY3RhYmxlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9Dcnlw
dG9LZXlFQy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlFQy5jcHAK
aW5kZXggZDM2ZDM0MGY3MGE4ZjRhMTdmZjVmNjE5Y2ViMWQ5ZDg0NWNhMmEzMy4uZmNlODJiZWU5
MWNhYjc0MjYyMDQwMGRjYTc3MzA1YzE3ZjY4NTIwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5RUMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0
by9rZXlzL0NyeXB0b0tleUVDLmNwcApAQCAtMTQ4LDcgKzE0OCw3IEBAIEV4Y2VwdGlvbk9yPFZl
Y3Rvcjx1aW50OF90Pj4gQ3J5cHRvS2V5RUM6OmV4cG9ydFJhdygpIGNvbnN0CiBFeGNlcHRpb25P
cjxKc29uV2ViS2V5PiBDcnlwdG9LZXlFQzo6ZXhwb3J0SndrKCkgY29uc3QKIHsKICAgICBKc29u
V2ViS2V5IHJlc3VsdDsKLSAgICByZXN1bHQua3R5ID0gIkVDIjsKKyAgICByZXN1bHQua3R5ID0g
IkVDIl9zOwogICAgIHN3aXRjaCAobV9jdXJ2ZSkgewogICAgIGNhc2UgTmFtZWRDdXJ2ZTo6UDI1
NjoKICAgICAgICAgcmVzdWx0LmNydiA9IFAyNTY7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlITUFDLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9r
ZXlzL0NyeXB0b0tleUhNQUMuY3BwCmluZGV4IDQzNGYyNDA0NTVkYzhjZTM0MWUwMDU0MDNiZjA1
Y2I5MDAzN2QxNDkuLjI1NDNlZDU0NjU3ZTdhZTNmMmY3OTk2Yzc4NDQzZGZiMDlhNzI3YTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleUhNQUMuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleUhNQUMuY3BwCkBAIC0xMjEs
NyArMTIxLDcgQEAgUmVmUHRyPENyeXB0b0tleUhNQUM+IENyeXB0b0tleUhNQUM6OmltcG9ydEp3
ayhzaXplX3QgbGVuZ3RoQml0cywgQ3J5cHRvQWxnb3JpdGgKIEpzb25XZWJLZXkgQ3J5cHRvS2V5
SE1BQzo6ZXhwb3J0SndrKCkgY29uc3QKIHsKICAgICBKc29uV2ViS2V5IHJlc3VsdDsKLSAgICBy
ZXN1bHQua3R5ID0gIm9jdCI7CisgICAgcmVzdWx0Lmt0eSA9ICJvY3QiX3M7CiAgICAgcmVzdWx0
LmsgPSBiYXNlNjRVUkxFbmNvZGVUb1N0cmluZyhtX2tleSk7CiAgICAgcmVzdWx0LmtleV9vcHMg
PSB1c2FnZXMoKTsKICAgICByZXN1bHQuZXh0ID0gZXh0cmFjdGFibGUoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleVJTQS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlSU0EuY3BwCmluZGV4IDZiYmYxNGYyNDYwYjNkMWY1
MDQ4OGFmMzkyOTcwOWY3NDIxNmVlMjQuLjA1ODFkNjcwNzJjYjkzNjZkMzc3NTQyMjY4YTQ4ZmZk
YTA2MzlhNzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tl
eVJTQS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5UlNBLmNw
cApAQCAtMTMzLDcgKzEzMyw3IEBAIFJlZlB0cjxDcnlwdG9LZXlSU0E+IENyeXB0b0tleVJTQTo6
aW1wb3J0SndrKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgYWxnb3JpdGhtCiBKc29uV2ViS2V5
IENyeXB0b0tleVJTQTo6ZXhwb3J0SndrKCkgY29uc3QKIHsKICAgICBKc29uV2ViS2V5IHJlc3Vs
dDsKLSAgICByZXN1bHQua3R5ID0gIlJTQSI7CisgICAgcmVzdWx0Lmt0eSA9ICJSU0EiX3M7CiAg
ICAgcmVzdWx0LmtleV9vcHMgPSB1c2FnZXMoKTsKICAgICByZXN1bHQuZXh0ID0gZXh0cmFjdGFi
bGUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyaWRUZW1wbGF0ZUFy
ZWFzVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyaWRUZW1wbGF0ZUFyZWFzVmFs
dWUuY3BwCmluZGV4IGUwYjc4NjU5YWRiZDAxNDgzOWU1N2MwNjIxZGMxNjE5ZWY4MTMxMDkuLmRm
ZDcyNTEzYmNkZjU0NjEwOWU2OTAyYjViZTliOTc5MmU2YTI3NGEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NHcmlkVGVtcGxhdGVBcmVhc1ZhbHVlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTR3JpZFRlbXBsYXRlQXJlYXNWYWx1ZS5jcHAKQEAgLTYzLDcgKzYzLDcg
QEAgc3RhdGljIFN0cmluZyBzdHJpbmdGb3JQb3NpdGlvbihjb25zdCBOYW1lZEdyaWRBcmVhTWFw
JiBncmlkQXJlYU1hcCwgc2l6ZV90IHJvdywKICAgICAgICAgICAgIHJldHVybiBpdC5rZXk7CiAg
ICAgfQogCi0gICAgcmV0dXJuICIuIjsKKyAgICByZXR1cm4gIi4iX3M7CiB9CiAKIFN0cmluZyBD
U1NHcmlkVGVtcGxhdGVBcmVhc1ZhbHVlOjpjdXN0b21DU1NUZXh0KCkgY29uc3QKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwCmluZGV4IDc5ZWIyYTU2MjM3MDk0YzRkMWJk
MzYxYTBhNzNjYzU0OTU2NDhmN2UuLjZkYzgwYmEzMDJkYWVhYzczNWI4NzBlN2Y4MDcwYWQxMDM0
YjQ0MDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcApAQCAtMTI0
Myw2NCArMTI0Myw2NCBAQCBORVZFUl9JTkxJTkUgU3RyaW5nIENTU1ByaW1pdGl2ZVZhbHVlOjpm
b3JtYXRJbnRlZ2VyVmFsdWUoU3RyaW5nVmlldyBzdWZmaXgpIGNvbgogU3RyaW5nIENTU1ByaW1p
dGl2ZVZhbHVlOjp1bml0VHlwZVN0cmluZyhDU1NVbml0VHlwZSB1bml0VHlwZSkKIHsKICAgICBz
d2l0Y2ggKHVuaXRUeXBlKSB7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19QRVJDRU5U
QUdFOiByZXR1cm4gIiUiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRU1TOiByZXR1
cm4gImVtIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0VYUzogcmV0dXJuICJleCI7
Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19QWDogcmV0dXJuICJweCI7Ci0gICAgICAg
IGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19DTTogcmV0dXJuICJjbSI7Ci0gICAgICAgIGNhc2UgQ1NT
VW5pdFR5cGU6OkNTU19NTTogcmV0dXJuICJtbSI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6
OkNTU19JTjogcmV0dXJuICJpbiI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19QVDog
cmV0dXJuICJwdCI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19QQzogcmV0dXJuICJw
YyI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19ERUc6IHJldHVybiAiZGVnIjsKLSAg
ICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1JBRDogcmV0dXJuICJyYWQiOwotICAgICAgICBj
YXNlIENTU1VuaXRUeXBlOjpDU1NfR1JBRDogcmV0dXJuICJncmFkIjsKLSAgICAgICAgY2FzZSBD
U1NVbml0VHlwZTo6Q1NTX01TOiByZXR1cm4gIm1zIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlw
ZTo6Q1NTX1M6IHJldHVybiAicyI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19IWjog
cmV0dXJuICJoeiI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19LSFo6IHJldHVybiAi
a2h6IjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZXOiByZXR1cm4gInZ3IjsKLSAg
ICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZIOiByZXR1cm4gInZoIjsKLSAgICAgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX1ZNSU46IHJldHVybiAidm1pbiI7Ci0gICAgICAgIGNhc2UgQ1NT
VW5pdFR5cGU6OkNTU19WTUFYOiByZXR1cm4gInZtYXgiOwotICAgICAgICBjYXNlIENTU1VuaXRU
eXBlOjpDU1NfVkI6IHJldHVybiAidmIiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1Nf
Vkk6IHJldHVybiAidmkiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZXOiByZXR1
cm4gInN2dyI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVkg6IHJldHVybiAic3Zo
IjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWTUlOOiByZXR1cm4gInN2bWluIjsK
LSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWTUFYOiByZXR1cm4gInN2bWF4IjsKLSAg
ICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWQjogcmV0dXJuICJzdmIiOwotICAgICAgICBj
YXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZJOiByZXR1cm4gInN2aSI7Ci0gICAgICAgIGNhc2UgQ1NT
VW5pdFR5cGU6OkNTU19MVlc6IHJldHVybiAibHZ3IjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlw
ZTo6Q1NTX0xWSDogcmV0dXJuICJsdmgiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1Nf
TFZNSU46IHJldHVybiAibHZtaW4iOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZN
QVg6IHJldHVybiAibHZtYXgiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZCOiBy
ZXR1cm4gImx2YiI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVkk6IHJldHVybiAi
bHZpIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWVzogcmV0dXJuICJkdnciOwot
ICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZIOiByZXR1cm4gImR2aCI7Ci0gICAgICAg
IGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVk1JTjogcmV0dXJuICJkdm1pbiI7Ci0gICAgICAgIGNh
c2UgQ1NTVW5pdFR5cGU6OkNTU19EVk1BWDogcmV0dXJuICJkdm1heCI7Ci0gICAgICAgIGNhc2Ug
Q1NTVW5pdFR5cGU6OkNTU19EVkI6IHJldHVybiAiZHZiIjsKLSAgICAgICAgY2FzZSBDU1NVbml0
VHlwZTo6Q1NTX0RWSTogcmV0dXJuICJkdmkiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpD
U1NfRFBQWDogcmV0dXJuICJkcHB4IjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1g6
IHJldHVybiAieCI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EUEk6IHJldHVybiAi
ZHBpIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RQQ006IHJldHVybiAiZHBjbSI7
Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19GUjogcmV0dXJuICJmciI7Ci0gICAgICAg
IGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19ROiByZXR1cm4gInEiOwotICAgICAgICBjYXNlIENTU1Vu
aXRUeXBlOjpDU1NfTEhTOiByZXR1cm4gImxoIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6
Q1NTX1JMSFM6IHJldHVybiAicmxoIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1RV
Uk46IHJldHVybiAidHVybiI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19SRU1TOiBy
ZXR1cm4gInJlbSI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19DSFM6IHJldHVybiAi
Y2giOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfSUM6IHJldHVybiAiaWMiOwotICAg
ICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfQ1FXOiByZXR1cm4gImNxdyI7Ci0gICAgICAgIGNh
c2UgQ1NTVW5pdFR5cGU6OkNTU19DUUg6IHJldHVybiAiY3FoIjsKLSAgICAgICAgY2FzZSBDU1NV
bml0VHlwZTo6Q1NTX0NRSTogcmV0dXJuICJjcWkiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfQ1FCOiByZXR1cm4gImNxYiI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19D
UU1BWDogcmV0dXJuICJjcW1heCI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19DUU1J
TjogcmV0dXJuICJjcW1pbiI7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19QRVJDRU5U
QUdFOiByZXR1cm4gIiUiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19FTVM6IHJl
dHVybiAiZW0iX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19FWFM6IHJldHVybiAi
ZXgiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19QWDogcmV0dXJuICJweCJfczsK
KyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0NNOiByZXR1cm4gImNtIl9zOworICAgICAg
ICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTU06IHJldHVybiAibW0iX3M7CisgICAgICAgIGNhc2Ug
Q1NTVW5pdFR5cGU6OkNTU19JTjogcmV0dXJuICJpbiJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0
VHlwZTo6Q1NTX1BUOiByZXR1cm4gInB0Il9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpD
U1NfUEM6IHJldHVybiAicGMiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19ERUc6
IHJldHVybiAiZGVnIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfUkFEOiByZXR1
cm4gInJhZCJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0dSQUQ6IHJldHVybiAi
Z3JhZCJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX01TOiByZXR1cm4gIm1zIl9z
OworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfUzogcmV0dXJuICJzIl9zOworICAgICAg
ICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfSFo6IHJldHVybiAiaHoiX3M7CisgICAgICAgIGNhc2Ug
Q1NTVW5pdFR5cGU6OkNTU19LSFo6IHJldHVybiAia2h6Il9zOworICAgICAgICBjYXNlIENTU1Vu
aXRUeXBlOjpDU1NfVlc6IHJldHVybiAidnciX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6
OkNTU19WSDogcmV0dXJuICJ2aCJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZN
SU46IHJldHVybiAidm1pbiJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZNQVg6
IHJldHVybiAidm1heCJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZCOiByZXR1
cm4gInZiIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVkk6IHJldHVybiAidmki
X3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVlc6IHJldHVybiAic3Z3Il9zOwor
ICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZIOiByZXR1cm4gInN2aCJfczsKKyAgICAg
ICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWTUlOOiByZXR1cm4gInN2bWluIl9zOworICAgICAg
ICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZNQVg6IHJldHVybiAic3ZtYXgiX3M7CisgICAgICAg
IGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVkI6IHJldHVybiAic3ZiIl9zOworICAgICAgICBjYXNl
IENTU1VuaXRUeXBlOjpDU1NfU1ZJOiByZXR1cm4gInN2aSJfczsKKyAgICAgICAgY2FzZSBDU1NV
bml0VHlwZTo6Q1NTX0xWVzogcmV0dXJuICJsdnciX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5
cGU6OkNTU19MVkg6IHJldHVybiAibHZoIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpD
U1NfTFZNSU46IHJldHVybiAibHZtaW4iX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNT
U19MVk1BWDogcmV0dXJuICJsdm1heCJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NT
X0xWQjogcmV0dXJuICJsdmIiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVkk6
IHJldHVybiAibHZpIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZXOiByZXR1
cm4gImR2dyJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWSDogcmV0dXJuICJk
dmgiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVk1JTjogcmV0dXJuICJkdm1p
biJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWTUFYOiByZXR1cm4gImR2bWF4
Il9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZCOiByZXR1cm4gImR2YiJfczsK
KyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWSTogcmV0dXJuICJkdmkiX3M7CisgICAg
ICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EUFBYOiByZXR1cm4gImRwcHgiX3M7CisgICAgICAg
IGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19YOiByZXR1cm4gIngiX3M7CisgICAgICAgIGNhc2UgQ1NT
VW5pdFR5cGU6OkNTU19EUEk6IHJldHVybiAiZHBpIl9zOworICAgICAgICBjYXNlIENTU1VuaXRU
eXBlOjpDU1NfRFBDTTogcmV0dXJuICJkcGNtIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfRlI6IHJldHVybiAiZnIiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19R
OiByZXR1cm4gInEiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MSFM6IHJldHVy
biAibGgiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19STEhTOiByZXR1cm4gInJs
aCJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1RVUk46IHJldHVybiAidHVybiJf
czsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1JFTVM6IHJldHVybiAicmVtIl9zOwor
ICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfQ0hTOiByZXR1cm4gImNoIl9zOworICAgICAg
ICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfSUM6IHJldHVybiAiaWMiX3M7CisgICAgICAgIGNhc2Ug
Q1NTVW5pdFR5cGU6OkNTU19DUVc6IHJldHVybiAiY3F3Il9zOworICAgICAgICBjYXNlIENTU1Vu
aXRUeXBlOjpDU1NfQ1FIOiByZXR1cm4gImNxaCJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlw
ZTo6Q1NTX0NRSTogcmV0dXJuICJjcWkiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNT
U19DUUI6IHJldHVybiAiY3FiIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfQ1FN
QVg6IHJldHVybiAiY3FtYXgiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19DUU1J
TjogcmV0dXJuICJjcW1pbiJfczsKIAogICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVU5L
Tk9XTjoKICAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX05VTUJFUjoKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdWJncmlkVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1N1YmdyaWRWYWx1ZS5jcHAKaW5kZXggNGY5ZDRhNjA0OGM2MTRjOGQwZmFmNTQ4YmZj
Y2JhYWU0OGEwYzg2NS4uNmE3OTg1OWRhMjdkYWVhYWFhN2JjZjVmOTkxMmQzZTc3YzViZDJiYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N1YmdyaWRWYWx1ZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1N1YmdyaWRWYWx1ZS5jcHAKQEAgLTM2LDcgKzM2LDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogU3RyaW5nIENTU1N1YmdyaWRWYWx1ZTo6Y3VzdG9tQ1NTVGV4
dCgpIGNvbnN0CiB7CiAgICAgaWYgKCFsZW5ndGgoKSkKLSAgICAgICAgcmV0dXJuICJzdWJncmlk
IjsKKyAgICAgICAgcmV0dXJuICJzdWJncmlkIl9zOwogICAgIHJldHVybiAic3ViZ3JpZCAiICsg
Q1NTVmFsdWVMaXN0OjpjdXN0b21DU1NUZXh0KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9ET01DU1NSZWdpc3RlckN1c3RvbVByb3BlcnR5LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9ET01DU1NSZWdpc3RlckN1c3RvbVByb3BlcnR5LmNwcAppbmRleCBjMmM4MjUwYWIy
MmQ4M2VkZDgyMjAwMTBiODJmNjI1MWRlN2I4OWY3Li45MmEyY2JjNDBmZDMxNjFlMGY5ZmM3NWIx
ODhhMmQ5OGQzZTcxOTJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NTUmVn
aXN0ZXJDdXN0b21Qcm9wZXJ0eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0RPTUNTU1Jl
Z2lzdGVyQ3VzdG9tUHJvcGVydHkuY3BwCkBAIC00NCw3ICs0NCw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIEV4Y2VwdGlvbk9yPHZvaWQ+IERPTUNTU1JlZ2lzdGVyQ3VzdG9tUHJvcGVydHk6OnJl
Z2lzdGVyUHJvcGVydHkoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBET01DU1NDdXN0b21Qcm9w
ZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCiB7CiAgICAgaWYgKCFpc0N1c3RvbVByb3BlcnR5
TmFtZShkZXNjcmlwdG9yLm5hbWUpKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgU3ludGF4
RXJyb3IsICJUaGUgbmFtZSBvZiB0aGlzIHByb3BlcnR5IGlzIG5vdCBhIGN1c3RvbSBwcm9wZXJ0
eSBuYW1lLiIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFN5bnRheEVycm9yLCAiVGhl
IG5hbWUgb2YgdGhpcyBwcm9wZXJ0eSBpcyBub3QgYSBjdXN0b20gcHJvcGVydHkgbmFtZS4iX3Mg
fTsKIAogICAgIFJlZlB0cjxDU1NDdXN0b21Qcm9wZXJ0eVZhbHVlPiBpbml0aWFsVmFsdWU7CiAg
ICAgaWYgKCFkZXNjcmlwdG9yLmluaXRpYWxWYWx1ZS5pc0VtcHR5KCkpIHsKQEAgLTU5LDcgKzU5
LDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gRE9NQ1NTUmVnaXN0ZXJDdXN0b21Qcm9wZXJ0eTo6cmVn
aXN0ZXJQcm9wZXJ0eShEb2N1bWVudCYgZG9jdW0KICAgICAgICAgQ1NTUHJvcGVydHlQYXJzZXI6
OmNvbGxlY3RQYXJzZWRDdXN0b21Qcm9wZXJ0eVZhbHVlRGVwZW5kZW5jaWVzKGRlc2NyaXB0b3Iu
c3ludGF4LCBmYWxzZSwgZGVwZW5kZW5jaWVzLCB0b2tlbml6ZXIudG9rZW5SYW5nZSgpLCBzdHJp
Y3RDU1NQYXJzZXJDb250ZXh0KCkpOwogCiAgICAgICAgIGlmICghZGVwZW5kZW5jaWVzLmlzRW1w
dHkoKSkKLSAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBTeW50YXhFcnJvciwgIlRoZSBn
aXZlbiBpbml0aWFsIHZhbHVlIG11c3QgYmUgY29tcHV0YXRpb25hbGx5IGluZGVwZW5kZW50LiIg
fTsKKyAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBTeW50YXhFcnJvciwgIlRoZSBnaXZl
biBpbml0aWFsIHZhbHVlIG11c3QgYmUgY29tcHV0YXRpb25hbGx5IGluZGVwZW5kZW50LiJfcyB9
OwogCiAKICAgICAgICAgU3R5bGU6Ok1hdGNoUmVzdWx0IG1hdGNoUmVzdWx0OwpAQCAtNzAsMTgg
KzcwLDE4IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IERPTUNTU1JlZ2lzdGVyQ3VzdG9tUHJvcGVydHk6
OnJlZ2lzdGVyUHJvcGVydHkoRG9jdW1lbnQmIGRvY3VtCiAgICAgICAgIGluaXRpYWxWYWx1ZSA9
IENTU1Byb3BlcnR5UGFyc2VyOjpwYXJzZVR5cGVkQ3VzdG9tUHJvcGVydHlWYWx1ZShkZXNjcmlw
dG9yLm5hbWUsIGRlc2NyaXB0b3Iuc3ludGF4LCB0b2tlbml6ZXIudG9rZW5SYW5nZSgpLCBkdW1t
eUJ1aWxkZXIuc3RhdGUoKSwgc3RyaWN0Q1NTUGFyc2VyQ29udGV4dCgpKTsKIAogICAgICAgICBp
ZiAoIWluaXRpYWxWYWx1ZSB8fCAhaW5pdGlhbFZhbHVlLT5pc1Jlc29sdmVkKCkpCi0gICAgICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgU3ludGF4RXJyb3IsICJUaGUgZ2l2ZW4gaW5pdGlhbCB2
YWx1ZSBkb2VzIG5vdCBwYXJzZSBmb3IgdGhlIGdpdmVuIHN5bnRheC4iIH07CisgICAgICAgICAg
ICByZXR1cm4gRXhjZXB0aW9uIHsgU3ludGF4RXJyb3IsICJUaGUgZ2l2ZW4gaW5pdGlhbCB2YWx1
ZSBkb2VzIG5vdCBwYXJzZSBmb3IgdGhlIGdpdmVuIHN5bnRheC4iX3MgfTsKIAogICAgICAgICBp
bml0aWFsVmFsdWUtPmNvbGxlY3REaXJlY3RDb21wdXRhdGlvbmFsRGVwZW5kZW5jaWVzKGRlcGVu
ZGVuY2llcyk7CiAgICAgICAgIGluaXRpYWxWYWx1ZS0+Y29sbGVjdERpcmVjdFJvb3RDb21wdXRh
dGlvbmFsRGVwZW5kZW5jaWVzKGRlcGVuZGVuY2llcyk7CiAKICAgICAgICAgaWYgKCFkZXBlbmRl
bmNpZXMuaXNFbXB0eSgpKQotICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFN5bnRheEVy
cm9yLCAiVGhlIGdpdmVuIGluaXRpYWwgdmFsdWUgbXVzdCBiZSBjb21wdXRhdGlvbmFsbHkgaW5k
ZXBlbmRlbnQuIiB9OworICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFN5bnRheEVycm9y
LCAiVGhlIGdpdmVuIGluaXRpYWwgdmFsdWUgbXVzdCBiZSBjb21wdXRhdGlvbmFsbHkgaW5kZXBl
bmRlbnQuIl9zIH07CiAgICAgfQogCiAgICAgQ1NTUmVnaXN0ZXJlZEN1c3RvbVByb3BlcnR5IHBy
b3BlcnR5IHsgZGVzY3JpcHRvci5uYW1lLCBkZXNjcmlwdG9yLnN5bnRheCwgZGVzY3JpcHRvci5p
bmhlcml0cywgV1RGTW92ZShpbml0aWFsVmFsdWUpIH07CiAgICAgaWYgKCFkb2N1bWVudC5yZWdp
c3RlckNTU1Byb3BlcnR5KFdURk1vdmUocHJvcGVydHkpKSkKLSAgICAgICAgcmV0dXJuIEV4Y2Vw
dGlvbiB7IEludmFsaWRNb2RpZmljYXRpb25FcnJvciwgIlRoaXMgcHJvcGVydHkgaGFzIGFscmVh
ZHkgYmVlbiByZWdpc3RlcmVkLiIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFs
aWRNb2RpZmljYXRpb25FcnJvciwgIlRoaXMgcHJvcGVydHkgaGFzIGFscmVhZHkgYmVlbiByZWdp
c3RlcmVkLiJfcyB9OwogCiAgICAgZG9jdW1lbnQuc3R5bGVTY29wZSgpLmRpZENoYW5nZVN0eWxl
U2hlZXRFbnZpcm9ubWVudCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRGVw
cmVjYXRlZENTU09NVmFsdWUuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NP
TVZhbHVlLmNwcAppbmRleCAyMzI1MDg0NWFiYTZiYzUzMjJiM2IzNzY5ZmI5M2MwZTY0MGM3ZDgy
Li41MDY3ZDBlNmM2MDFiZTJhMTMxM2YwODlhNjQwYWMxYTYyNmI5YjM1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZENTU09NVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01WYWx1ZS5jcHAKQEAgLTc2LDcgKzc2LDcgQEAgU3Ry
aW5nIERlcHJlY2F0ZWRDU1NPTVZhbHVlOjpjc3NUZXh0KCkgY29uc3QKICAgICAgICAgcmV0dXJu
IGRvd25jYXN0PERlcHJlY2F0ZWRDU1NPTVZhbHVlTGlzdD4oKnRoaXMpLmNzc1RleHQoKTsKICAg
ICB9CiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgcmV0dXJuICIiOworICAgIHJldHVy
biBlbXB0eVN0cmluZygpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Rm9udEZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0ZvbnRGYWNlLmNwcAppbmRleCBlZmZk
NjA3YzM0NmY5YmNmYmM5YzI4ODliZjgzMTY5NGRhMzQwMzA1Li40ZDUxMWI1ZTY4NTQxMzA1ZDQw
YzFjMzNiNzkwOWE2NTA2NTU2ZjYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9u
dEZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9Gb250RmFjZS5jcHAKQEAgLTM3NSw3
ICszNzUsNyBAQCBTdHJpbmcgRm9udEZhY2U6OnVuaWNvZGVSYW5nZSgpIGNvbnN0CiAgICAgbV9i
YWNraW5nLT51cGRhdGVTdHlsZUlmTmVlZGVkKCk7CiAgICAgY29uc3QgYXV0byYgcmFuZ2VzV3Jh
cHBlZCA9IG1fYmFja2luZy0+cmFuZ2VzKCk7CiAgICAgaWYgKCFyYW5nZXNXcmFwcGVkKQotICAg
ICAgICByZXR1cm4gIlUrMC0xMEZGRkYiOworICAgICAgICByZXR1cm4gIlUrMC0xMEZGRkYiX3M7
CiAgICAgYXV0byByYW5nZXMgPSByYW5nZXNXcmFwcGVkLnZhbHVlKCk7CiAgICAgaWYgKCFyYW5n
ZXMuc2l6ZSgpKQogICAgICAgICByZXR1cm4gIlUrMC0xMEZGRkYiX3M7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV4cHJlc3Npb24uY3BwIGIvU291cmNlL1dlYkNv
cmUvY3NzL01lZGlhUXVlcnlFeHByZXNzaW9uLmNwcAppbmRleCAwOGI3MDcwNjZiYTZkZmIyMTI3
ZmNkYTkwODg5Mzc5MzUxMDgxNGU4Li4xYmRkYjU1M2U4ZmJhMmMyMjUzZTRkMTQ1NmY3ODY5M2Yz
NjY5MzI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV4cHJlc3Np
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXhwcmVzc2lvbi5jcHAK
QEAgLTI3NCw3ICsyNzQsNyBAQCBNZWRpYVF1ZXJ5RXhwcmVzc2lvbjo6TWVkaWFRdWVyeUV4cHJl
c3Npb24oY29uc3QgU3RyaW5nJiBmZWF0dXJlLCBDU1NQYXJzZXJUb2tlbgogU3RyaW5nIE1lZGlh
UXVlcnlFeHByZXNzaW9uOjpzZXJpYWxpemUoKSBjb25zdAogewogICAgIGlmIChtX3NlcmlhbGl6
YXRpb25DYWNoZS5pc051bGwoKSkKLSAgICAgICAgbV9zZXJpYWxpemF0aW9uQ2FjaGUgPSBtYWtl
U3RyaW5nKCcoJywgbV9tZWRpYUZlYXR1cmUuY29udmVydFRvQVNDSUlMb3dlcmNhc2UoKSwgbV92
YWx1ZSA/ICI6ICIgOiAiIiwgbV92YWx1ZSA/IG1fdmFsdWUtPmNzc1RleHQoKSA6ICIiLCAnKScp
OworICAgICAgICBtX3NlcmlhbGl6YXRpb25DYWNoZSA9IG1ha2VTdHJpbmcoJygnLCBtX21lZGlh
RmVhdHVyZS5jb252ZXJ0VG9BU0NJSUxvd2VyY2FzZSgpLCBtX3ZhbHVlID8gIjogIiA6ICIiLCBt
X3ZhbHVlID8gbV92YWx1ZS0+Y3NzVGV4dCgpIDogZW1wdHlTdHJpbmcoKSwgJyknKTsKICAgICBy
ZXR1cm4gbV9zZXJpYWxpemF0aW9uQ2FjaGU7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9TdHlsZVByb3BlcnRpZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJv
cGVydGllcy5jcHAKaW5kZXggZjA0MTNjMTdmZmZhMjgzODExZmUyNTE3ZmRmZDYxYmNkY2Y4YjI1
OS4uYTkyM2M3YTRmOTRmY2YzMmIwN2Y4MTEzYTJjYmVhMjRiOWRmODkwNCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL1N0eWxlUHJvcGVydGllcy5jcHAKQEAgLTc2OCw3ICs3NjgsNyBAQCBTdHJpbmcgU3R5
bGVQcm9wZXJ0aWVzOjpnZXRMYXllcmVkU2hvcnRoYW5kVmFsdWUoY29uc3QgU3R5bGVQcm9wZXJ0
eVNob3J0aGFuZCYgcwogCiAgICAgICAgICAgICAgICAgICAgICAgICBhdXRvIG1hc2tJZCA9IGRv
d25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPigqdmFsdWUpLnZhbHVlSUQoKTsKICAgICAgICAgICAg
ICAgICAgICAgICAgIGF1dG8gb3JpZ2luSWQgPSBkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4o
Km9yaWdpblZhbHVlKS52YWx1ZUlEKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g
bWFza0lkID09IG9yaWdpbklkICYmICghaXNDU1NXaWRlVmFsdWVLZXl3b3JkKGdldFZhbHVlTmFt
ZShtYXNrSWQpKSB8fCB2YWx1ZS0+aXNJbXBsaWNpdEluaXRpYWxWYWx1ZSgpKTsKKyAgICAgICAg
ICAgICAgICAgICAgICAgIHJldHVybiBtYXNrSWQgPT0gb3JpZ2luSWQgJiYgKCFpc0NTU1dpZGVW
YWx1ZUtleXdvcmQoU3RyaW5nVmlldyB7IGdldFZhbHVlTmFtZShtYXNrSWQpIH0pIHx8IHZhbHVl
LT5pc0ltcGxpY2l0SW5pdGlhbFZhbHVlKCkpOwogICAgICAgICAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICAgICAgICAgIGlmIChwcm9wZXJ0eSA9PSBDU1NQcm9wZXJ0eU1hc2tPcmlnaW4pIHsK
ICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdlIGNhbiBza2lwIHNlcmlhbGl6aW5nIG1hc2st
b3JpZ2luIGlmIGl0J3MgdGhlIGluaXRpYWwgdmFsdWUsIGJ1dCBvbmx5IGlmIHdlJ3JlIGFsc28g
Z29pbmcgdG8gc2tpcCBzZXJpYWxpemluZwpAQCAtMTE1NCw3ICsxMTU0LDcgQEAgYm9vbCBNdXRh
YmxlU3R5bGVQcm9wZXJ0aWVzOjpzZXRDdXN0b21Qcm9wZXJ0eShjb25zdCBEb2N1bWVudCogZG9j
dW1lbnQsIGNvbnN0IFMKIAogICAgIHBhcnNlckNvbnRleHQubW9kZSA9IGNzc1BhcnNlck1vZGUo
KTsKIAotICAgIFN0cmluZyBzeW50YXggPSAiKiI7CisgICAgU3RyaW5nIHN5bnRheCA9ICIqIl9z
OwogICAgIGF1dG8qIHJlZ2lzdGVyZWQgPSBkb2N1bWVudCA/IGRvY3VtZW50LT5nZXRDU1NSZWdp
c3RlcmVkQ3VzdG9tUHJvcGVydHlTZXQoKS5nZXQocHJvcGVydHlOYW1lKSA6IG51bGxwdHI7CiAK
ICAgICBpZiAocmVnaXN0ZXJlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9tYWtl
dmFsdWVzLnBsIGIvU291cmNlL1dlYkNvcmUvY3NzL21ha2V2YWx1ZXMucGwKaW5kZXggMGY4MjE5
ZDRjY2I1MWVjYTUyNWQ4MjlhNzYwNmIyN2IwZmEyNzMwMy4uYWU5YjMyNzgzMjcyNzM3M2M0Y2U3
ZjAyMzMwNTIxMzZiMmQ5ODNkNSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL21ha2V2
YWx1ZXMucGwKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL21ha2V2YWx1ZXMucGwKQEAgLTExMSwx
NiArMTExLDE2IEBAIGZvciBteSAkaSAoMCAuLiAkI25hbWVzKSB7CiAKIHByaW50IEdQRVJGIDw8
ICJFT0YiOwogJSUKLXN0YXRpYyBjb25zdCBjaGFyKiBjb25zdCB2YWx1ZUxpc3RbXSA9IHsKLSAg
ICAiIiwKK3N0YXRpYyBjb25zdGV4cHIgQVNDSUlMaXRlcmFsIHZhbHVlTGlzdFtdID0geworICAg
ICIiX3MsCiBFT0YKIAogZm9yZWFjaCBteSAkbmFtZSAoQG5hbWVzKSB7Ci0gIHByaW50IEdQRVJG
ICIgICAgXCIiIC4gJG5hbWUgLiAiXCIsXG4iOworICBwcmludCBHUEVSRiAiICAgIFwiIiAuICRu
YW1lIC4gIlwiX3MsXG4iOwogfQogCiBwcmludCBHUEVSRiA8PCAiRU9GIjsKLSAgICAwCisgICAg
QVNDSUlMaXRlcmFsOjpudWxsKCkKIH07CiAKIGNvbnN0IFZhbHVlKiBmaW5kVmFsdWUoY29uc3Qg
Y2hhciogc3RyLCB1bnNpZ25lZCBpbnQgbGVuKQpAQCAtMTI4LDEwICsxMjgsMTAgQEAgY29uc3Qg
VmFsdWUqIGZpbmRWYWx1ZShjb25zdCBjaGFyKiBzdHIsIHVuc2lnbmVkIGludCBsZW4pCiAgICAg
cmV0dXJuIENTU1ZhbHVlS2V5d29yZHNIYXNoOjpmaW5kVmFsdWVJbXBsKHN0ciwgbGVuKTsKIH0K
IAotY29uc3QgY2hhciogZ2V0VmFsdWVOYW1lKHVuc2lnbmVkIHNob3J0IGlkKQorQVNDSUlMaXRl
cmFsIGdldFZhbHVlTmFtZSh1bnNpZ25lZCBzaG9ydCBpZCkKIHsKICAgICBpZiAoaWQgPiBsYXN0
Q1NTVmFsdWVLZXl3b3JkKQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIEFTQ0lJ
TGl0ZXJhbDo6bnVsbCgpOwogICAgIHJldHVybiB2YWx1ZUxpc3RbaWRdOwogfQogCkBAIC0yMDMs
NyArMjAzLDcgQEAgcHJpbnQgSEVBREVSICJjb25zdCBpbnQgbGFzdENTU1ZhbHVlS2V5d29yZCA9
ICRsYXN0O1xuIjsKIHByaW50IEhFQURFUiAiY29uc3Qgc2l6ZV90IG1heENTU1ZhbHVlS2V5d29y
ZExlbmd0aCA9ICIgLiAkbWF4TGVuIC4gIjtcbiI7CiBwcmludCBIRUFERVIgPDwgIkVPRiI7CiAK
LWNvbnN0IGNoYXIqIGdldFZhbHVlTmFtZSh1bnNpZ25lZCBzaG9ydCBpZCk7CitBU0NJSUxpdGVy
YWwgZ2V0VmFsdWVOYW1lKHVuc2lnbmVkIHNob3J0IGlkKTsKIGNvbnN0IEF0b21TdHJpbmcmIGdl
dFZhbHVlTmFtZUF0b21TdHJpbmcoQ1NTVmFsdWVJRCBpZCk7CiBTdHJpbmcgZ2V0VmFsdWVOYW1l
U3RyaW5nKENTU1ZhbHVlSUQgaWQpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
cGFyc2VyL01lZGlhUXVlcnlQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9N
ZWRpYVF1ZXJ5UGFyc2VyLmNwcAppbmRleCBjYjVhMDhhYTNlYjdkNmI4YzgyNTdkYzg0OGRjZWMx
MTM0MTljOWNkLi42MmMwMWU1YTMyNzc0MjI0MzY2MmZlYmMyMWVkZTA4MGQ5MjM2NTllIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL01lZGlhUXVlcnlQYXJzZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvTWVkaWFRdWVyeVBhcnNlci5jcHAKQEAgLTI0
Nyw3ICsyNDcsNyBAQCB2b2lkIE1lZGlhUXVlcnlQYXJzZXI6OnNraXBVbnRpbENvbW1hKENTU1Bh
cnNlclRva2VuVHlwZSB0eXBlLCBjb25zdCBDU1NQYXJzZXJUbwogICAgIGlmICgodHlwZSA9PSBD
b21tYVRva2VuICYmICFtX2Jsb2NrV2F0Y2hlci5ibG9ja0xldmVsKCkpIHx8IHR5cGUgPT0gRU9G
VG9rZW4pIHsKICAgICAgICAgbV9zdGF0ZSA9IFJlYWRSZXN0cmljdG9yOwogICAgICAgICBtX21l
ZGlhUXVlcnlEYXRhLmNsZWFyKCk7Ci0gICAgICAgIE1lZGlhUXVlcnkgcXVlcnkgPSBNZWRpYVF1
ZXJ5KE1lZGlhUXVlcnk6Ok5vdCwgImFsbCIsIFZlY3RvcjxNZWRpYVF1ZXJ5RXhwcmVzc2lvbj4o
KSk7CisgICAgICAgIE1lZGlhUXVlcnkgcXVlcnkgPSBNZWRpYVF1ZXJ5KE1lZGlhUXVlcnk6Ok5v
dCwgImFsbCJfcywgVmVjdG9yPE1lZGlhUXVlcnlFeHByZXNzaW9uPigpKTsKICAgICAgICAgbV9x
dWVyeVNldC0+YWRkTWVkaWFRdWVyeShXVEZNb3ZlKHF1ZXJ5KSk7CiAgICAgfQogfQpAQCAtMzA5
LDcgKzMwOSw3IEBAIFJlZlB0cjxNZWRpYVF1ZXJ5U2V0PiBNZWRpYVF1ZXJ5UGFyc2VyOjpwYXJz
ZUludGVybmFsKENTU1BhcnNlclRva2VuUmFuZ2UmIHJhbmdlCiAgICAgICAgIHByb2Nlc3NUb2tl
bihDU1NQYXJzZXJUb2tlbihFT0ZUb2tlbiksIHJhbmdlKTsKIAogICAgIGlmIChtX3N0YXRlICE9
IFJlYWRBbmQgJiYgbV9zdGF0ZSAhPSBSZWFkUmVzdHJpY3RvciAmJiBtX3N0YXRlICE9IERvbmUg
JiYgbV9zdGF0ZSAhPSBSZWFkTWVkaWFOb3QpIHsKLSAgICAgICAgTWVkaWFRdWVyeSBxdWVyeSA9
IE1lZGlhUXVlcnkoTWVkaWFRdWVyeTo6Tm90LCAiYWxsIiwgVmVjdG9yPE1lZGlhUXVlcnlFeHBy
ZXNzaW9uPigpKTsKKyAgICAgICAgTWVkaWFRdWVyeSBxdWVyeSA9IE1lZGlhUXVlcnkoTWVkaWFR
dWVyeTo6Tm90LCAiYWxsIl9zLCBWZWN0b3I8TWVkaWFRdWVyeUV4cHJlc3Npb24+KCkpOwogICAg
ICAgICBtX3F1ZXJ5U2V0LT5hZGRNZWRpYVF1ZXJ5KFdURk1vdmUocXVlcnkpKTsKICAgICB9IGVs
c2UgaWYgKG1fbWVkaWFRdWVyeURhdGEuY3VycmVudE1lZGlhUXVlcnlDaGFuZ2VkKCkpCiAgICAg
ICAgIGNvbW1pdE1lZGlhUXVlcnkoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9w
YXJzZXIvU2l6ZXNBdHRyaWJ1dGVQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNl
ci9TaXplc0F0dHJpYnV0ZVBhcnNlci5jcHAKaW5kZXggZDZlNDhhMjNmZjk3ZTBhOGI3MzZkODAz
Nzk3NDI0NzUwNWMzN2ZmOC4uNGRhNDAxNmU2MDY1N2ZiMzc0NTJlZTFiOTFhNjFkNTZlMDg4NDg4
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9TaXplc0F0dHJpYnV0ZVBh
cnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9TaXplc0F0dHJpYnV0ZVBh
cnNlci5jcHAKQEAgLTExMiw3ICsxMTIsNyBAQCBib29sIFNpemVzQXR0cmlidXRlUGFyc2VyOjpt
ZWRpYUNvbmRpdGlvbk1hdGNoZXMoY29uc3QgTWVkaWFRdWVyeVNldCYgbWVkaWFDb25kaQogICAg
IGlmICghcmVuZGVyZXIpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBhdXRvJiBzdHlsZSA9
IHJlbmRlcmVyLT5zdHlsZSgpOwotICAgIHJldHVybiBNZWRpYVF1ZXJ5RXZhbHVhdG9yIHsgInNj
cmVlbiIsIG1fZG9jdW1lbnQsICZzdHlsZSB9LmV2YWx1YXRlKG1lZGlhQ29uZGl0aW9uLCBtX21l
ZGlhUXVlcnlEeW5hbWljUmVzdWx0cyk7CisgICAgcmV0dXJuIE1lZGlhUXVlcnlFdmFsdWF0b3Ig
eyAic2NyZWVuIl9zLCBtX2RvY3VtZW50LCAmc3R5bGUgfS5ldmFsdWF0ZShtZWRpYUNvbmRpdGlv
biwgbV9tZWRpYVF1ZXJ5RHluYW1pY1Jlc3VsdHMpOwogfQogCiBib29sIFNpemVzQXR0cmlidXRl
UGFyc2VyOjpwYXJzZShDU1NQYXJzZXJUb2tlblJhbmdlIHJhbmdlKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTTnVtZXJpY0ZhY3RvcnkuaCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy90eXBlZG9tL0NTU051bWVyaWNGYWN0b3J5LmgKaW5kZXggODIzNTBiOTlkODc0YjBm
YTkwNjVmNjRkZGQ1OTkzZGQ2ZDgzMGIzOS4uMzUzNjJiMjE2ZDAyYmI3MjNiNzg2YTJjNzIxMzNk
MTU2M2JiMjBmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTTnVt
ZXJpY0ZhY3RvcnkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NOdW1lcmlj
RmFjdG9yeS5oCkBAIC00Myw2NCArNDMsNjQgQEAgY2xhc3MgQ1NTTnVtZXJpY0ZhY3RvcnkgZmlu
YWwgOiBwdWJsaWMgU3VwcGxlbWVudDxET01DU1NOYW1lc3BhY2U+IHsKIHB1YmxpYzoKICAgICBl
eHBsaWNpdCBDU1NOdW1lcmljRmFjdG9yeShET01DU1NOYW1lc3BhY2UmKSB7IH0KIAotICAgIHN0
YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBudW1iZXIoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NV
bml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgIm51bWJlciIpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NV
bml0VmFsdWU+IHBlcmNlbnQoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNy
ZWF0ZSh2YWx1ZSwgInBlcmNlbnQiKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBu
dW1iZXIoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwg
Im51bWJlciJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gcGVyY2VudChkb3Vi
bGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAicGVyY2VudCJf
cyk7IH0KIAogCiAgICAgLy8gPGxlbmd0aD4KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4g
ZW0oZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImVt
Iik7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gZXgoZG91YmxlIHZhbHVlKSB7IHJl
dHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImV4Iik7IH0KLSAgICBzdGF0aWMgUmVm
PENTU1VuaXRWYWx1ZT4gY2goZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNy
ZWF0ZSh2YWx1ZSwgImNoIik7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gaWMoZG91
YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImljIik7IH0K
LSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gcmVtKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4g
Q1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJyZW0iKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NT
VW5pdFZhbHVlPiBsaChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRl
KHZhbHVlLCAibGgiKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBybGgoZG91Ymxl
IHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInJsaCIpOyB9Ci0g
ICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHZ3KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NT
VW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJ2dyIpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0
VmFsdWU+IHZoKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFs
dWUsICJ2aCIpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHZpKGRvdWJsZSB2YWx1
ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJ2aSIpOyB9Ci0gICAgc3Rh
dGljIFJlZjxDU1NVbml0VmFsdWU+IHZiKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZh
bHVlOjpjcmVhdGUodmFsdWUsICJ2YiIpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+
IHZtaW4oZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwg
InZtaW4iKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiB2bWF4KGRvdWJsZSB2YWx1
ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJ2bWF4Iik7IH0KLSAgICBz
dGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gY20oZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0
VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImNtIik7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1
ZT4gbW0oZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwg
Im1tIik7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gcShkb3VibGUgdmFsdWUpIHsg
cmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAicSIpOyB9Ci0gICAgc3RhdGljIFJl
ZjxDU1NVbml0VmFsdWU+IGluKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpj
cmVhdGUodmFsdWUsICJpbiIpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHB0KGRv
dWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJwdCIpOyB9
Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHBjKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4g
Q1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJwYyIpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NV
bml0VmFsdWU+IHB4KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUo
dmFsdWUsICJweCIpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGNxdyhkb3VibGUg
dmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiY3F3Iik7IH0KLSAg
ICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gY3FoKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NT
VW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJjcWgiKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5p
dFZhbHVlPiBjcWkoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2
YWx1ZSwgImNxaSIpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGNxYihkb3VibGUg
dmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiY3FiIik7IH0KLSAg
ICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gY3FtaW4oZG91YmxlIHZhbHVlKSB7IHJldHVybiBD
U1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImNxbWluIik7IH0KLSAgICBzdGF0aWMgUmVmPENT
U1VuaXRWYWx1ZT4gY3FtYXgoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNy
ZWF0ZSh2YWx1ZSwgImNxbWF4Iik7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gZW0o
ZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImVtIl9z
KTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBleChkb3VibGUgdmFsdWUpIHsgcmV0
dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiZXgiX3MpOyB9CisgICAgc3RhdGljIFJl
ZjxDU1NVbml0VmFsdWU+IGNoKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpj
cmVhdGUodmFsdWUsICJjaCJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gaWMo
ZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImljIl9z
KTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiByZW0oZG91YmxlIHZhbHVlKSB7IHJl
dHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInJlbSJfcyk7IH0KKyAgICBzdGF0aWMg
UmVmPENTU1VuaXRWYWx1ZT4gbGgoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6
OmNyZWF0ZSh2YWx1ZSwgImxoIl9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBy
bGgoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInJs
aCJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gdncoZG91YmxlIHZhbHVlKSB7
IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInZ3Il9zKTsgfQorICAgIHN0YXRp
YyBSZWY8Q1NTVW5pdFZhbHVlPiB2aChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1
ZTo6Y3JlYXRlKHZhbHVlLCAidmgiX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+
IHZpKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJ2
aSJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gdmIoZG91YmxlIHZhbHVlKSB7
IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInZiIl9zKTsgfQorICAgIHN0YXRp
YyBSZWY8Q1NTVW5pdFZhbHVlPiB2bWluKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZh
bHVlOjpjcmVhdGUodmFsdWUsICJ2bWluIl9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZh
bHVlPiB2bWF4KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFs
dWUsICJ2bWF4Il9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBjbShkb3VibGUg
dmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiY20iX3MpOyB9Cisg
ICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IG1tKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NT
VW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJtbSJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1Vu
aXRWYWx1ZT4gcShkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZh
bHVlLCAicSJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gaW4oZG91YmxlIHZh
bHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImluIl9zKTsgfQorICAg
IHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBwdChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1Vu
aXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAicHQiX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0
VmFsdWU+IHBjKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFs
dWUsICJwYyJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gcHgoZG91YmxlIHZh
bHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInB4Il9zKTsgfQorICAg
IHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBjcXcoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NV
bml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImNxdyJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1Vu
aXRWYWx1ZT4gY3FoKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUo
dmFsdWUsICJjcWgiX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGNxaShkb3Vi
bGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiY3FpIl9zKTsg
fQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBjcWIoZG91YmxlIHZhbHVlKSB7IHJldHVy
biBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImNxYiJfcyk7IH0KKyAgICBzdGF0aWMgUmVm
PENTU1VuaXRWYWx1ZT4gY3FtaW4oZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6
OmNyZWF0ZSh2YWx1ZSwgImNxbWluIl9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVl
PiBjcW1heChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVl
LCAiY3FtYXgiX3MpOyB9CiAKIAogICAgIC8vIDxhbmdsZT4KLSAgICBzdGF0aWMgUmVmPENTU1Vu
aXRWYWx1ZT4gZGVnKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUo
dmFsdWUsICJkZWciKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBncmFkKGRvdWJs
ZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJncmFkIik7IH0K
LSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gcmFkKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4g
Q1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJyYWQiKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NT
VW5pdFZhbHVlPiB0dXJuKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVh
dGUodmFsdWUsICJ0dXJuIik7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gZGVnKGRv
dWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJkZWciX3Mp
OyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGdyYWQoZG91YmxlIHZhbHVlKSB7IHJl
dHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImdyYWQiX3MpOyB9CisgICAgc3RhdGlj
IFJlZjxDU1NVbml0VmFsdWU+IHJhZChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1
ZTo6Y3JlYXRlKHZhbHVlLCAicmFkIl9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVl
PiB0dXJuKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUs
ICJ0dXJuIl9zKTsgfQogCiAKICAgICAvLyA8dGltZT4KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRW
YWx1ZT4gcyhkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVl
LCAicyIpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IG1zKGRvdWJsZSB2YWx1ZSkg
eyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJtcyIpOyB9CisgICAgc3RhdGlj
IFJlZjxDU1NVbml0VmFsdWU+IHMoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6
OmNyZWF0ZSh2YWx1ZSwgInMiX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IG1z
KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJtcyJf
cyk7IH0KIAogCiAgICAgLy8gPGZyZXF1ZW5jeT4KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1
ZT4gaHooZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwg
Imh6Iik7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4ga0h6KGRvdWJsZSB2YWx1ZSkg
eyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJraHoiKTsgfQorICAgIHN0YXRp
YyBSZWY8Q1NTVW5pdFZhbHVlPiBoeihkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1
ZTo6Y3JlYXRlKHZhbHVlLCAiaHoiX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+
IGtIeihkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAi
a2h6Il9zKTsgfQogCiAKICAgICAvLyA8cmVzb2x1dGlvbj4KLSAgICBzdGF0aWMgUmVmPENTU1Vu
aXRWYWx1ZT4gZHBpKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUo
dmFsdWUsICJkcGkiKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBkcGNtKGRvdWJs
ZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJkcGNtIik7IH0K
LSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gZHBweChkb3VibGUgdmFsdWUpIHsgcmV0dXJu
IENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiZHBweCIpOyB9CisgICAgc3RhdGljIFJlZjxD
U1NVbml0VmFsdWU+IGRwaShkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3Jl
YXRlKHZhbHVlLCAiZHBpIl9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBkcGNt
KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJkcGNt
Il9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBkcHB4KGRvdWJsZSB2YWx1ZSkg
eyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJkcHB4Il9zKTsgfQogCiAKICAg
ICAvLyA8ZmxleD4KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gZnIoZG91YmxlIHZhbHVl
KSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImZyIik7IH0KKyAgICBzdGF0
aWMgUmVmPENTU1VuaXRWYWx1ZT4gZnIoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFs
dWU6OmNyZWF0ZSh2YWx1ZSwgImZyIl9zKTsgfQogCiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NOdW1lcmljVmFsdWUuY3BwIGIvU291cmNlL1dl
YkNvcmUvY3NzL3R5cGVkb20vQ1NTTnVtZXJpY1ZhbHVlLmNwcAppbmRleCBjZWUxN2M4NzA4Zjhj
YjYzOGFlMTEzYTM0ZTcxMmM1NDEyMzEwY2FmLi5lZDdiZjk4MzhiMjgzNmYwMGZkZDVhOTVhNDli
N2IwYzAzNjY2ZWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NO
dW1lcmljVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU051bWVy
aWNWYWx1ZS5jcHAKQEAgLTE1Nyw3ICsxNTcsNyBAQCBSZWY8Q1NTTnVtZXJpY1ZhbHVlPiBDU1NO
dW1lcmljVmFsdWU6Om11bHRpcGx5SW50ZXJuYWwoVmVjdG9yPFJlZjxDU1NOdW1lcmljVmFsdQog
ICAgICAgICAgICAgZG91YmxlIHByb2R1Y3QgPSAxOwogICAgICAgICAgICAgZm9yIChjb25zdCBS
ZWY8Q1NTTnVtZXJpY1ZhbHVlPiYgdmFsdWUgOiB2YWx1ZXMpCiAgICAgICAgICAgICAgICAgcHJv
ZHVjdCAqPSBkb3duY2FzdDxDU1NVbml0VmFsdWU+KHZhbHVlLmdldCgpKS52YWx1ZSgpOwotICAg
ICAgICAgICAgU3RyaW5nIHVuaXQgPSBub25OdW1iZXJVbml0SW5kZXggPyBkb3duY2FzdDxDU1NV
bml0VmFsdWU+KHZhbHVlc1sqbm9uTnVtYmVyVW5pdEluZGV4XS5nZXQoKSkudW5pdCgpIDogIm51
bWJlciI7CisgICAgICAgICAgICBTdHJpbmcgdW5pdCA9IG5vbk51bWJlclVuaXRJbmRleCA/IGRv
d25jYXN0PENTU1VuaXRWYWx1ZT4odmFsdWVzWypub25OdW1iZXJVbml0SW5kZXhdLmdldCgpKS51
bml0KCkgOiAibnVtYmVyIl9zOwogICAgICAgICAgICAgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3Jl
YXRlKHByb2R1Y3QsIHVuaXQpOwogICAgICAgICB9CiAgICAgfQpAQCAtMjM1LDcgKzIzNSw3IEBA
IFJlZjxDU1NVbml0VmFsdWU+IENTU051bWVyaWNWYWx1ZTo6dG8oU3RyaW5nJiYgdW5pdCkKICAg
ICBVTlVTRURfUEFSQU0odW5pdCk7CiAgICAgLy8gaHR0cHM6Ly9kcmFmdHMuY3NzLWhvdWRpbmku
b3JnL2Nzcy10eXBlZC1vbS8jZG9tLWNzc251bWVyaWN2YWx1ZS10bwogICAgIC8vIEZJWE1FOiBh
ZGQgaW1wbC4KLSAgICByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUoMS4wLCAibnVtYmVyIik7
CisgICAgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKDEuMCwgIm51bWJlciJfcyk7CiB9CiAK
IFJlZjxDU1NNYXRoU3VtPiBDU1NOdW1lcmljVmFsdWU6OnRvU3VtKEZpeGVkVmVjdG9yPFN0cmlu
Zz4mJiB1bml0cykKQEAgLTI1OCw3ICsyNTgsNyBAQCBFeGNlcHRpb25PcjxSZWY8Q1NTTnVtZXJp
Y1ZhbHVlPj4gQ1NTTnVtZXJpY1ZhbHVlOjpwYXJzZShTdHJpbmcmJiBjc3NUZXh0KQogICAgIFVO
VVNFRF9QQVJBTShjc3NUZXh0KTsKICAgICAvLyBodHRwczovL2RyYWZ0cy5jc3MtaG91ZGluaS5v
cmcvY3NzLXR5cGVkLW9tLyNkb20tY3NzbnVtZXJpY3ZhbHVlLXBhcnNlCiAgICAgLy8gRklYTUU6
IGFkZCBpbXBsLgotICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciwgIk5v
dCBpbXBsZW1lbnRlZCBFcnJvciIgfTsKKyAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90U3VwcG9y
dGVkRXJyb3IsICJOb3QgaW1wbGVtZW50ZWQgRXJyb3IiX3MgfTsKIH0KIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTU3R5
bGVWYWx1ZUZhY3RvcnkuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTU3R5bGVW
YWx1ZUZhY3RvcnkuY3BwCmluZGV4IDlmYzcwZmIxMDI3MTY4NzE0NzQ1MzY2NTJkNGNjMTMxMDRk
ZjM0MjQuLjBhYmIzYTQ4Mjg1MmRiZDRkZDMxNzhmMjQ5ODMyZjU4NzhiNzFiYWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU1N0eWxlVmFsdWVGYWN0b3J5LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NTdHlsZVZhbHVlRmFjdG9yeS5jcHAK
QEAgLTI2NCw3ICsyNjQsNyBAQCBFeGNlcHRpb25PcjxSZWY8Q1NTU3R5bGVWYWx1ZT4+IENTU1N0
eWxlVmFsdWVGYWN0b3J5OjpyZWlmeVZhbHVlKFJlZjxDU1NWYWx1ZT4mJgogICAgICAgICAvLyBS
ZWZlciB0byBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3MtdHlwZWQtb20vdGhlLXN0eWxlcHJvcGVydHltYXAvaW5saW5lL2dldC5odG1sCiAgICAgICAg
IGF1dG8gdmFsdWVMaXN0ID0gZG93bmNhc3Q8Q1NTVmFsdWVMaXN0Pihjc3NWYWx1ZS5wdHIoKSk7
CiAgICAgICAgIGlmICghdmFsdWVMaXN0LT5sZW5ndGgoKSkKLSAgICAgICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBUeXBlRXJyb3IsICJUaGUgQ1NTVmFsdWVMaXN0IHNob3VsZCBub3QgYmUgZW1w
dHkuIiB9OworICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIlRoZSBD
U1NWYWx1ZUxpc3Qgc2hvdWxkIG5vdCBiZSBlbXB0eS4iX3MgfTsKICAgICAgICAgCiAgICAgICAg
IHJldHVybiByZWlmeVZhbHVlKFdURk1vdmUoKnZhbHVlTGlzdC0+YmVnaW4oKSksIGRvY3VtZW50
KTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0hUTUxD
b252ZXJ0ZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0hUTUxDb252ZXJ0ZXIu
bW0KaW5kZXggYjY3YTYzNDk3MzdiODViYWMyOTMyY2UxOGFiODNmNzNmODEzMWFiMy4uMmQ1Mzll
ZDJjNzFmMjJiZjI4YmY5ZGY4NTQ0YTliZTk4OGVhODdlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9jb2NvYS9IVE1MQ29udmVydGVyLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2VkaXRpbmcvY29jb2EvSFRNTENvbnZlcnRlci5tbQpAQCAtNTk2LDcgKzU5Niw3IEBAIFN0cmlu
ZyBIVE1MQ29udmVydGVyQ2FjaGVzOjpwcm9wZXJ0eVZhbHVlRm9yTm9kZShOb2RlJiBub2RlLCBD
U1NQcm9wZXJ0eUlEIHByb3BlCiAgICAgc3dpdGNoIChwcm9wZXJ0eUlkKSB7CiAgICAgY2FzZSBD
U1NQcm9wZXJ0eURpc3BsYXk6CiAgICAgICAgIGlmIChlbGVtZW50Lmhhc1RhZ05hbWUoaGVhZFRh
ZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKHNjcmlwdFRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1l
KGFwcGxldFRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKG5vZnJhbWVzVGFnKSkKLSAgICAgICAg
ICAgIHJldHVybiAibm9uZSI7CisgICAgICAgICAgICByZXR1cm4gIm5vbmUiX3M7CiAgICAgICAg
IGVsc2UgaWYgKGVsZW1lbnQuaGFzVGFnTmFtZShhZGRyZXNzVGFnKSB8fCBlbGVtZW50Lmhhc1Rh
Z05hbWUoYmxvY2txdW90ZVRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKGJvZHlUYWcpIHx8IGVs
ZW1lbnQuaGFzVGFnTmFtZShjZW50ZXJUYWcpCiAgICAgICAgICAgICAgfHwgZWxlbWVudC5oYXNU
YWdOYW1lKGRkVGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoZGlyVGFnKSB8fCBlbGVtZW50Lmhh
c1RhZ05hbWUoZGl2VGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoZGxUYWcpCiAgICAgICAgICAg
ICAgfHwgZWxlbWVudC5oYXNUYWdOYW1lKGR0VGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoZmll
bGRzZXRUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZShmb3JtVGFnKSB8fCBlbGVtZW50Lmhhc1Rh
Z05hbWUoZnJhbWVUYWcpCkBAIC02MDQsNjIgKzYwNCw2MiBAQCBTdHJpbmcgSFRNTENvbnZlcnRl
ckNhY2hlczo6cHJvcGVydHlWYWx1ZUZvck5vZGUoTm9kZSYgbm9kZSwgQ1NTUHJvcGVydHlJRCBw
cm9wZQogICAgICAgICAgICAgIHx8IGVsZW1lbnQuaGFzVGFnTmFtZShoMlRhZykgfHwgZWxlbWVu
dC5oYXNUYWdOYW1lKGgzVGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoaDRUYWcpIHx8IGVsZW1l
bnQuaGFzVGFnTmFtZShoNVRhZykKICAgICAgICAgICAgICB8fCBlbGVtZW50Lmhhc1RhZ05hbWUo
aDZUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZShpZnJhbWVUYWcpIHx8IGVsZW1lbnQuaGFzVGFn
TmFtZShtZW51VGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUobm9zY3JpcHRUYWcpCiAgICAgICAg
ICAgICAgfHwgZWxlbWVudC5oYXNUYWdOYW1lKG9sVGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUo
cFRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKHByZVRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1l
KHVsVGFnKSkKLSAgICAgICAgICAgIHJldHVybiAiYmxvY2siOworICAgICAgICAgICAgcmV0dXJu
ICJibG9jayJfczsKICAgICAgICAgZWxzZSBpZiAoZWxlbWVudC5oYXNUYWdOYW1lKGxpVGFnKSkK
LSAgICAgICAgICAgIHJldHVybiAibGlzdC1pdGVtIjsKKyAgICAgICAgICAgIHJldHVybiAibGlz
dC1pdGVtIl9zOwogICAgICAgICBlbHNlIGlmIChlbGVtZW50Lmhhc1RhZ05hbWUodGFibGVUYWcp
KQotICAgICAgICAgICAgcmV0dXJuICJ0YWJsZSI7CisgICAgICAgICAgICByZXR1cm4gInRhYmxl
Il9zOwogICAgICAgICBlbHNlIGlmIChlbGVtZW50Lmhhc1RhZ05hbWUodHJUYWcpKQotICAgICAg
ICAgICAgcmV0dXJuICJ0YWJsZS1yb3ciOworICAgICAgICAgICAgcmV0dXJuICJ0YWJsZS1yb3ci
X3M7CiAgICAgICAgIGVsc2UgaWYgKGVsZW1lbnQuaGFzVGFnTmFtZSh0aFRhZykgfHwgZWxlbWVu
dC5oYXNUYWdOYW1lKHRkVGFnKSkKLSAgICAgICAgICAgIHJldHVybiAidGFibGUtY2VsbCI7Cisg
ICAgICAgICAgICByZXR1cm4gInRhYmxlLWNlbGwiX3M7CiAgICAgICAgIGVsc2UgaWYgKGVsZW1l
bnQuaGFzVGFnTmFtZSh0aGVhZFRhZykpCi0gICAgICAgICAgICByZXR1cm4gInRhYmxlLWhlYWRl
ci1ncm91cCI7CisgICAgICAgICAgICByZXR1cm4gInRhYmxlLWhlYWRlci1ncm91cCJfczsKICAg
ICAgICAgZWxzZSBpZiAoZWxlbWVudC5oYXNUYWdOYW1lKHRib2R5VGFnKSkKLSAgICAgICAgICAg
IHJldHVybiAidGFibGUtcm93LWdyb3VwIjsKKyAgICAgICAgICAgIHJldHVybiAidGFibGUtcm93
LWdyb3VwIl9zOwogICAgICAgICBlbHNlIGlmIChlbGVtZW50Lmhhc1RhZ05hbWUodGZvb3RUYWcp
KQotICAgICAgICAgICAgcmV0dXJuICJ0YWJsZS1mb290ZXItZ3JvdXAiOworICAgICAgICAgICAg
cmV0dXJuICJ0YWJsZS1mb290ZXItZ3JvdXAiX3M7CiAgICAgICAgIGVsc2UgaWYgKGVsZW1lbnQu
aGFzVGFnTmFtZShjb2xUYWcpKQotICAgICAgICAgICAgcmV0dXJuICJ0YWJsZS1jb2x1bW4iOwor
ICAgICAgICAgICAgcmV0dXJuICJ0YWJsZS1jb2x1bW4iX3M7CiAgICAgICAgIGVsc2UgaWYgKGVs
ZW1lbnQuaGFzVGFnTmFtZShjb2xncm91cFRhZykpCi0gICAgICAgICAgICByZXR1cm4gInRhYmxl
LWNvbHVtbi1ncm91cCI7CisgICAgICAgICAgICByZXR1cm4gInRhYmxlLWNvbHVtbi1ncm91cCJf
czsKICAgICAgICAgZWxzZSBpZiAoZWxlbWVudC5oYXNUYWdOYW1lKGNhcHRpb25UYWcpKQotICAg
ICAgICAgICAgcmV0dXJuICJ0YWJsZS1jYXB0aW9uIjsKKyAgICAgICAgICAgIHJldHVybiAidGFi
bGUtY2FwdGlvbiJfczsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVdoaXRl
U3BhY2U6CiAgICAgICAgIGlmIChlbGVtZW50Lmhhc1RhZ05hbWUocHJlVGFnKSkKLSAgICAgICAg
ICAgIHJldHVybiAicHJlIjsKKyAgICAgICAgICAgIHJldHVybiAicHJlIl9zOwogICAgICAgICBp
bmhlcml0ID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUZvbnRT
dHlsZToKICAgICAgICAgaWYgKGVsZW1lbnQuaGFzVGFnTmFtZShpVGFnKSB8fCBlbGVtZW50Lmhh
c1RhZ05hbWUoY2l0ZVRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKGVtVGFnKSB8fCBlbGVtZW50
Lmhhc1RhZ05hbWUodmFyVGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoYWRkcmVzc1RhZykpCi0g
ICAgICAgICAgICByZXR1cm4gIml0YWxpYyI7CisgICAgICAgICAgICByZXR1cm4gIml0YWxpYyJf
czsKICAgICAgICAgaW5oZXJpdCA9IHRydWU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NT
UHJvcGVydHlGb250V2VpZ2h0OgogICAgICAgICBpZiAoZWxlbWVudC5oYXNUYWdOYW1lKGJUYWcp
IHx8IGVsZW1lbnQuaGFzVGFnTmFtZShzdHJvbmdUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZSh0
aFRhZykpCi0gICAgICAgICAgICByZXR1cm4gImJvbGRlciI7CisgICAgICAgICAgICByZXR1cm4g
ImJvbGRlciJfczsKICAgICAgICAgaW5oZXJpdCA9IHRydWU7CiAgICAgICAgIGJyZWFrOwogICAg
IGNhc2UgQ1NTUHJvcGVydHlUZXh0RGVjb3JhdGlvbkxpbmU6CiAgICAgICAgIGlmIChlbGVtZW50
Lmhhc1RhZ05hbWUodVRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKGluc1RhZykpCi0gICAgICAg
ICAgICByZXR1cm4gInVuZGVybGluZSI7CisgICAgICAgICAgICByZXR1cm4gInVuZGVybGluZSJf
czsKICAgICAgICAgZWxzZSBpZiAoZWxlbWVudC5oYXNUYWdOYW1lKHNUYWcpIHx8IGVsZW1lbnQu
aGFzVGFnTmFtZShzdHJpa2VUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZShkZWxUYWcpKQotICAg
ICAgICAgICAgcmV0dXJuICJsaW5lLXRocm91Z2giOworICAgICAgICAgICAgcmV0dXJuICJsaW5l
LXRocm91Z2giX3M7CiAgICAgICAgIGluaGVyaXQgPSB0cnVlOyAvLyBGSVhNRTogVGhpcyBpcyBu
b3Qgc3RyaWN0bHkgY29ycmVjdAogICAgICAgICBicmVhazsKICAgICBjYXNlIENTU1Byb3BlcnR5
VGV4dEFsaWduOgogICAgICAgICBpZiAoZWxlbWVudC5oYXNUYWdOYW1lKGNlbnRlclRhZykgfHwg
ZWxlbWVudC5oYXNUYWdOYW1lKGNhcHRpb25UYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZSh0aFRh
ZykpCi0gICAgICAgICAgICByZXR1cm4gImNlbnRlciI7CisgICAgICAgICAgICByZXR1cm4gImNl
bnRlciJfczsKICAgICAgICAgaW5oZXJpdCA9IHRydWU7CiAgICAgICAgIGJyZWFrOwogICAgIGNh
c2UgQ1NTUHJvcGVydHlWZXJ0aWNhbEFsaWduOgogICAgICAgICBpZiAoZWxlbWVudC5oYXNUYWdO
YW1lKHN1cFRhZykpCi0gICAgICAgICAgICByZXR1cm4gInN1cGVyIjsKKyAgICAgICAgICAgIHJl
dHVybiAic3VwZXIiX3M7CiAgICAgICAgIGVsc2UgaWYgKGVsZW1lbnQuaGFzVGFnTmFtZShzdWJU
YWcpKQotICAgICAgICAgICAgcmV0dXJuICJzdWIiOworICAgICAgICAgICAgcmV0dXJuICJzdWIi
X3M7CiAgICAgICAgIGVsc2UgaWYgKGVsZW1lbnQuaGFzVGFnTmFtZSh0aGVhZFRhZykgfHwgZWxl
bWVudC5oYXNUYWdOYW1lKHRib2R5VGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUodGZvb3RUYWcp
KQotICAgICAgICAgICAgcmV0dXJuICJtaWRkbGUiOworICAgICAgICAgICAgcmV0dXJuICJtaWRk
bGUiX3M7CiAgICAgICAgIGVsc2UgaWYgKGVsZW1lbnQuaGFzVGFnTmFtZSh0clRhZykgfHwgZWxl
bWVudC5oYXNUYWdOYW1lKHRoVGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUodGRUYWcpKQogICAg
ICAgICAgICAgaW5oZXJpdCA9IHRydWU7CiAgICAgICAgIGJyZWFrOwpAQCAtMTg1Miw3ICsxODUy
LDcgQEAgQk9PTCBIVE1MQ29udmVydGVyOjpfcHJvY2Vzc0VsZW1lbnQoRWxlbWVudCYgZWxlbWVu
dCwgTlNJbnRlZ2VyIGRlcHRoKQogICAgICAgICBSZXRhaW5QdHI8TlNUZXh0TGlzdD4gbGlzdDsK
ICAgICAgICAgU3RyaW5nIGxpc3RTdHlsZVR5cGUgPSBfY2FjaGVzLT5wcm9wZXJ0eVZhbHVlRm9y
Tm9kZShlbGVtZW50LCBDU1NQcm9wZXJ0eUxpc3RTdHlsZVR5cGUpOwogICAgICAgICBpZiAoIWxp
c3RTdHlsZVR5cGUubGVuZ3RoKCkpCi0gICAgICAgICAgICBsaXN0U3R5bGVUeXBlID0gImRlY2lt
YWwiOworICAgICAgICAgICAgbGlzdFN0eWxlVHlwZSA9ICJkZWNpbWFsIl9zOwogICAgICAgICBs
aXN0ID0gYWRvcHROUyhbW1BsYXRmb3JtTlNUZXh0TGlzdCBhbGxvY10gaW5pdFdpdGhNYXJrZXJG
b3JtYXQ6U3RyaW5nKCJ7IiArIGxpc3RTdHlsZVR5cGUgKyAifSIpIG9wdGlvbnM6MF0pOwogICAg
ICAgICBpZiAoaXM8SFRNTE9MaXN0RWxlbWVudD4oZWxlbWVudCkpIHsKICAgICAgICAgICAgIE5T
SW50ZWdlciBzdGFydGluZ0l0ZW1OdW1iZXIgPSBkb3duY2FzdDxIVE1MT0xpc3RFbGVtZW50Pihl
bGVtZW50KS5zdGFydCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2Nv
YS9XZWJDb250ZW50UmVhZGVyQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29h
L1dlYkNvbnRlbnRSZWFkZXJDb2NvYS5tbQppbmRleCBlODg2YTI3ZGJkNjIyNDBhZDk4NDIwNDVj
ZWI4MzA1MGEyZmMwM2RmLi5kOGQxNDBkZWY3ZDNhMzhiMDI0YTQxMTM0YjY1OGU3ZjMxNDE0ZTJh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL1dlYkNvbnRlbnRSZWFk
ZXJDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL1dlYkNvbnRlbnRS
ZWFkZXJDb2NvYS5tbQpAQCAtNzYyLDcgKzc2Miw3IEBAIHN0YXRpYyBSZWY8SFRNTEVsZW1lbnQ+
IGF0dGFjaG1lbnRGb3JEYXRhKEZyYW1lJiBmcmFtZSwgRnJhZ21lbnRlZFNoYXJlZEJ1ZmZlciYK
ICAgICBhdXRvIGF0dGFjaG1lbnRUeXBlID0gdHlwZUZvckF0dGFjaG1lbnRFbGVtZW50KGNvbnRl
bnRUeXBlKTsKIAogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgaW5zdGVhZCBhc2sgQ29yZVNlcnZp
Y2VzIGZvciBhIHByZWZlcnJlZCBuYW1lIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGdpdmVuIGNvbnRl
bnQgdHlwZS4KLSAgICBzdGF0aWMgY29uc3QgY2hhciogZGVmYXVsdEF0dGFjaG1lbnROYW1lID0g
ImZpbGUiOworICAgIHN0YXRpYyBjb25zdGV4cHIgQVNDSUlMaXRlcmFsIGRlZmF1bHRBdHRhY2ht
ZW50TmFtZSA9ICJmaWxlIl9zOwogCiAgICAgU3RyaW5nIGZpbGVOYW1lOwogICAgIGlmIChuYW1l
LmlzRW1wdHkoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jb2NvYS9CdW5k
bGVSZXNvdXJjZUxvYWRlci5tbSBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jb2NvYS9CdW5kbGVS
ZXNvdXJjZUxvYWRlci5tbQppbmRleCBjM2I3YjdmZTU1ZGMzMzA0M2NjOGFlMzljY2ZhNDdkYjc2
OTYzZWNmLi45YzI3OTExMzk1NzllMGQ0NjdjMzgwYTUyM2Q1NTE1MTQyMjMxYWIxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY29jb2EvQnVuZGxlUmVzb3VyY2VMb2FkZXIubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NvY29hL0J1bmRsZVJlc291cmNlTG9hZGVyLm1t
CkBAIC02NSwxMyArNjUsMTMgQEAgdm9pZCBsb2FkUmVzb3VyY2VGcm9tQnVuZGxlKFJlc291cmNl
TG9hZGVyJiBsb2FkZXIsIGNvbnN0IFN0cmluZyYgc3ViZGlyZWN0b3J5KQogCiAgICAgICAgIFJ1
bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbcHJvdGVjdGVkTG9hZGVyID0gV1RGTW92ZShwcm90ZWN0
ZWRMb2FkZXIpLCB1cmwgPSBXVEZNb3ZlKHVybCkuaXNvbGF0ZWRDb3B5KCksIGJ1ZmZlciA9IFNo
YXJlZEJ1ZmZlcjo6Y3JlYXRlKGRhdGEpXSgpIG11dGFibGUgewogICAgICAgICAgICAgYXV0byBt
aW1lVHlwZSA9IE1JTUVUeXBlUmVnaXN0cnk6Om1pbWVUeXBlRm9yUGF0aCh1cmwucGF0aCgpKTsK
LSAgICAgICAgICAgIFJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UgeyB1cmwsIG1pbWVUeXBlLCBz
dGF0aWNfY2FzdDxsb25nIGxvbmc+KGJ1ZmZlci0+c2l6ZSgpKSwgTUlNRVR5cGVSZWdpc3RyeTo6
aXNUZXh0TUlNRVR5cGUobWltZVR5cGUpID8gIlVURi04Il9zIDogbnVsbHB0ciB9OworICAgICAg
ICAgICAgUmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSB7IHVybCwgbWltZVR5cGUsIHN0YXRpY19j
YXN0PGxvbmcgbG9uZz4oYnVmZmVyLT5zaXplKCkpLCBNSU1FVHlwZVJlZ2lzdHJ5Ojppc1RleHRN
SU1FVHlwZShtaW1lVHlwZSkgPyAiVVRGLTgiX3MgOiBTdHJpbmcoKSB9OwogICAgICAgICAgICAg
cmVzcG9uc2Uuc2V0SFRUUFN0YXR1c0NvZGUoMjAwKTsKICAgICAgICAgICAgIHJlc3BvbnNlLnNl
dEhUVFBTdGF0dXNUZXh0KCJPSyJfcyk7CiAgICAgICAgICAgICByZXNwb25zZS5zZXRTb3VyY2Uo
UmVzb3VyY2VSZXNwb25zZTo6U291cmNlOjpOZXR3b3JrKTsKIAogICAgICAgICAgICAgLy8gQWxs
b3cgaW1hZ2VzIHRvIGxvYWQuCi0gICAgICAgICAgICByZXNwb25zZS5hZGRIVFRQSGVhZGVyRmll
bGQoSFRUUEhlYWRlck5hbWU6OkFjY2Vzc0NvbnRyb2xBbGxvd09yaWdpbiwgIioiKTsKKyAgICAg
ICAgICAgIHJlc3BvbnNlLmFkZEhUVFBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6QWNjZXNz
Q29udHJvbEFsbG93T3JpZ2luLCAiKiJfcyk7CiAKICAgICAgICAgICAgIHByb3RlY3RlZExvYWRl
ci0+ZGVsaXZlclJlc3BvbnNlQW5kRGF0YShyZXNwb25zZSwgV1RGTW92ZShidWZmZXIpKTsKICAg
ICAgICAgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL1Jlc291cmNl
VXNhZ2VPdmVybGF5Q29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL1Jlc291cmNl
VXNhZ2VPdmVybGF5Q29jb2EubW0KaW5kZXggMTE0ODRkMGM1OTJjMDdmZjk0ZWMxNzdhMDEyODAx
MDc5YzM5NTk3MS4uZTFkYzI5Yjg2MmQ0MjI0M2E5YTI5MWEwZWQxZjVmNDMzZmNkYTFlYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9SZXNvdXJjZVVzYWdlT3ZlcmxheUNv
Y29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvUmVzb3VyY2VVc2FnZU92ZXJs
YXlDb2NvYS5tbQpAQCAtMTYxLDE4ICsxNjEsMTggQEAgc3RydWN0IEhpc3RvcmljUmVzb3VyY2VV
c2FnZURhdGEgewogSGlzdG9yaWNSZXNvdXJjZVVzYWdlRGF0YTo6SGlzdG9yaWNSZXNvdXJjZVVz
YWdlRGF0YSgpCiB7CiAgICAgLy8gVk0gdGFnIGNhdGVnb3JpZXMuCi0gICAgY2F0ZWdvcmllc1tN
ZW1vcnlDYXRlZ29yeTo6SlNKSVRdID0gSGlzdG9yaWNNZW1vcnlDYXRlZ29yeUluZm8oTWVtb3J5
Q2F0ZWdvcnk6OkpTSklULCB7IDI1NSwgOTYsIDI1NSB9LCAiSlMgSklUIik7Ci0gICAgY2F0ZWdv
cmllc1tNZW1vcnlDYXRlZ29yeTo6R2lnYWNhZ2VdID0gSGlzdG9yaWNNZW1vcnlDYXRlZ29yeUlu
Zm8oTWVtb3J5Q2F0ZWdvcnk6OkdpZ2FjYWdlLCB7IDEwMSwgNzksIDI0MCB9LCAiR2lnYWNhZ2Ui
KTsKLSAgICBjYXRlZ29yaWVzW01lbW9yeUNhdGVnb3J5OjpJbWFnZXNdID0gSGlzdG9yaWNNZW1v
cnlDYXRlZ29yeUluZm8oTWVtb3J5Q2F0ZWdvcnk6OkltYWdlcywgQ29sb3I6OnllbGxvdywgIklt
YWdlcyIpOwotICAgIGNhdGVnb3JpZXNbTWVtb3J5Q2F0ZWdvcnk6OkxheWVyc10gPSBIaXN0b3Jp
Y01lbW9yeUNhdGVnb3J5SW5mbyhNZW1vcnlDYXRlZ29yeTo6TGF5ZXJzLCBDb2xvcjo6Y3lhbiwg
IkxheWVycyIpOwotICAgIGNhdGVnb3JpZXNbTWVtb3J5Q2F0ZWdvcnk6OkxpYmNNYWxsb2NdID0g
SGlzdG9yaWNNZW1vcnlDYXRlZ29yeUluZm8oTWVtb3J5Q2F0ZWdvcnk6OkxpYmNNYWxsb2MsIENv
bG9yOjpncmVlbiwgImxpYmMgbWFsbG9jIik7Ci0gICAgY2F0ZWdvcmllc1tNZW1vcnlDYXRlZ29y
eTo6Ym1hbGxvY10gPSBIaXN0b3JpY01lbW9yeUNhdGVnb3J5SW5mbyhNZW1vcnlDYXRlZ29yeTo6
Ym1hbGxvYywgeyAyNTUsIDk2LCA5NiB9LCAiYm1hbGxvYyIpOwotICAgIGNhdGVnb3JpZXNbTWVt
b3J5Q2F0ZWdvcnk6Oklzb0hlYXBdID0gSGlzdG9yaWNNZW1vcnlDYXRlZ29yeUluZm8oTWVtb3J5
Q2F0ZWdvcnk6Oklzb0hlYXAsIHsgMTI4LCAxNTksIDY0IH0sICJJc29IZWFwIik7Ci0gICAgY2F0
ZWdvcmllc1tNZW1vcnlDYXRlZ29yeTo6T3RoZXJdID0gSGlzdG9yaWNNZW1vcnlDYXRlZ29yeUlu
Zm8oTWVtb3J5Q2F0ZWdvcnk6Ok90aGVyLCB7IDE5MiwgMjU1LCAwIH0sICJPdGhlciIpOworICAg
IGNhdGVnb3JpZXNbTWVtb3J5Q2F0ZWdvcnk6OkpTSklUXSA9IEhpc3RvcmljTWVtb3J5Q2F0ZWdv
cnlJbmZvKE1lbW9yeUNhdGVnb3J5OjpKU0pJVCwgeyAyNTUsIDk2LCAyNTUgfSwgIkpTIEpJVCJf
cyk7CisgICAgY2F0ZWdvcmllc1tNZW1vcnlDYXRlZ29yeTo6R2lnYWNhZ2VdID0gSGlzdG9yaWNN
ZW1vcnlDYXRlZ29yeUluZm8oTWVtb3J5Q2F0ZWdvcnk6OkdpZ2FjYWdlLCB7IDEwMSwgNzksIDI0
MCB9LCAiR2lnYWNhZ2UiX3MpOworICAgIGNhdGVnb3JpZXNbTWVtb3J5Q2F0ZWdvcnk6OkltYWdl
c10gPSBIaXN0b3JpY01lbW9yeUNhdGVnb3J5SW5mbyhNZW1vcnlDYXRlZ29yeTo6SW1hZ2VzLCBD
b2xvcjo6eWVsbG93LCAiSW1hZ2VzIl9zKTsKKyAgICBjYXRlZ29yaWVzW01lbW9yeUNhdGVnb3J5
OjpMYXllcnNdID0gSGlzdG9yaWNNZW1vcnlDYXRlZ29yeUluZm8oTWVtb3J5Q2F0ZWdvcnk6Okxh
eWVycywgQ29sb3I6OmN5YW4sICJMYXllcnMiX3MpOworICAgIGNhdGVnb3JpZXNbTWVtb3J5Q2F0
ZWdvcnk6OkxpYmNNYWxsb2NdID0gSGlzdG9yaWNNZW1vcnlDYXRlZ29yeUluZm8oTWVtb3J5Q2F0
ZWdvcnk6OkxpYmNNYWxsb2MsIENvbG9yOjpncmVlbiwgImxpYmMgbWFsbG9jIl9zKTsKKyAgICBj
YXRlZ29yaWVzW01lbW9yeUNhdGVnb3J5OjpibWFsbG9jXSA9IEhpc3RvcmljTWVtb3J5Q2F0ZWdv
cnlJbmZvKE1lbW9yeUNhdGVnb3J5OjpibWFsbG9jLCB7IDI1NSwgOTYsIDk2IH0sICJibWFsbG9j
Il9zKTsKKyAgICBjYXRlZ29yaWVzW01lbW9yeUNhdGVnb3J5OjpJc29IZWFwXSA9IEhpc3Rvcmlj
TWVtb3J5Q2F0ZWdvcnlJbmZvKE1lbW9yeUNhdGVnb3J5OjpJc29IZWFwLCB7IDEyOCwgMTU5LCA2
NCB9LCAiSXNvSGVhcCJfcyk7CisgICAgY2F0ZWdvcmllc1tNZW1vcnlDYXRlZ29yeTo6T3RoZXJd
ID0gSGlzdG9yaWNNZW1vcnlDYXRlZ29yeUluZm8oTWVtb3J5Q2F0ZWdvcnk6Ok90aGVyLCB7IDE5
MiwgMjU1LCAwIH0sICJPdGhlciJfcyk7CiAKICAgICAvLyBTdWIgY2F0ZWdvcmllcyAoZS5nIGJy
ZWFrZG93biBvZiBibWFsbG9jIHRhZy4pCi0gICAgY2F0ZWdvcmllc1tNZW1vcnlDYXRlZ29yeTo6
R0NIZWFwXSA9IEhpc3RvcmljTWVtb3J5Q2F0ZWdvcnlJbmZvKE1lbW9yeUNhdGVnb3J5OjpHQ0hl
YXAsIHsgMTYwLCAxNjAsIDI1NSB9LCAiR0MgaGVhcCIsIHRydWUpOwotICAgIGNhdGVnb3JpZXNb
TWVtb3J5Q2F0ZWdvcnk6OkdDT3duZWRdID0gSGlzdG9yaWNNZW1vcnlDYXRlZ29yeUluZm8oTWVt
b3J5Q2F0ZWdvcnk6OkdDT3duZWQsIHsgMjU1LCAxOTIsIDk2IH0sICJHQyBvd25lZCIsIHRydWUp
OworICAgIGNhdGVnb3JpZXNbTWVtb3J5Q2F0ZWdvcnk6OkdDSGVhcF0gPSBIaXN0b3JpY01lbW9y
eUNhdGVnb3J5SW5mbyhNZW1vcnlDYXRlZ29yeTo6R0NIZWFwLCB7IDE2MCwgMTYwLCAyNTUgfSwg
IkdDIGhlYXAiX3MsIHRydWUpOworICAgIGNhdGVnb3JpZXNbTWVtb3J5Q2F0ZWdvcnk6OkdDT3du
ZWRdID0gSGlzdG9yaWNNZW1vcnlDYXRlZ29yeUluZm8oTWVtb3J5Q2F0ZWdvcnk6OkdDT3duZWQs
IHsgMjU1LCAxOTIsIDk2IH0sICJHQyBvd25lZCJfcywgdHJ1ZSk7CiAKICNpZm5kZWYgTkRFQlVH
CiAgICAgLy8gRW5zdXJlIHRoaXMgYWxpZ25zIHdpdGggUmVzb3VyY2VVc2FnZURhdGEncyBjYXRl
Z29yeSBvcmRlci4KQEAgLTMxMSw3ICszMTEsNyBAQCBzdGF0aWMgdm9pZCBkcmF3Q3B1SGlzdG9y
eShDR0NvbnRleHRSZWYgY29udGV4dCwgZmxvYXQgeDEsIGZsb2F0IHkxLCBmbG9hdCB5MiwgUgog
ICAgICAgICBpKys7CiAgICAgfSk7CiAKLSAgICBkcmF3R3JhcGhMYWJlbChjb250ZXh0LCB4MSwg
eTIsICJDUFUiKTsKKyAgICBkcmF3R3JhcGhMYWJlbChjb250ZXh0LCB4MSwgeTIsICJDUFUiX3Mp
OwogfQogCiBzdGF0aWMgdm9pZCBkcmF3R0NIaXN0b3J5KENHQ29udGV4dFJlZiBjb250ZXh0LCBm
bG9hdCB4MSwgZmxvYXQgeTEsIGZsb2F0IHkyLCBSaW5nQnVmZmVyPHNpemVfdD4mIHNpemVIaXN0
b3J5LCBSaW5nQnVmZmVyPHNpemVfdD4mIGNhcGFjaXR5SGlzdG9yeSkKQEAgLTM1NCw3ICszNTQs
NyBAQCBzdGF0aWMgdm9pZCBkcmF3R0NIaXN0b3J5KENHQ29udGV4dFJlZiBjb250ZXh0LCBmbG9h
dCB4MSwgZmxvYXQgeTEsIGZsb2F0IHkyLCBSaQogICAgICAgICBpKys7CiAgICAgfSk7CiAKLSAg
ICBkcmF3R3JhcGhMYWJlbChjb250ZXh0LCB4MSwgeTIsICJHQyIpOworICAgIGRyYXdHcmFwaExh
YmVsKGNvbnRleHQsIHgxLCB5MiwgIkdDIl9zKTsKIH0KIAogc3RhdGljIHZvaWQgZHJhd01lbUhp
c3RvcnkoQ0dDb250ZXh0UmVmIGNvbnRleHQsIGZsb2F0IHgxLCBmbG9hdCB5MSwgZmxvYXQgeTIs
IEhpc3RvcmljUmVzb3VyY2VVc2FnZURhdGEmIGRhdGEpCkBAIC00MDAsNyArNDAwLDcgQEAgc3Rh
dGljIHZvaWQgZHJhd01lbUhpc3RvcnkoQ0dDb250ZXh0UmVmIGNvbnRleHQsIGZsb2F0IHgxLCBm
bG9hdCB5MSwgZmxvYXQgeTIsIEgKICAgICAgICAgKytpOwogICAgIH0KIAotICAgIGRyYXdHcmFw
aExhYmVsKGNvbnRleHQsIHgxLCB5MiwgIk1lbSIpOworICAgIGRyYXdHcmFwaExhYmVsKGNvbnRl
eHQsIHgxLCB5MiwgIk1lbSJfcyk7CiB9CiAKIHN0YXRpYyBjb25zdCBmbG9hdCBmdWxsQ2lyY2xl
SW5SYWRpYW5zID0gcGlGbG9hdCAqIDI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L2NvY29hL1NldHRpbmdzQmFzZUNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9T
ZXR0aW5nc0Jhc2VDb2NvYS5tbQppbmRleCBkMjFkOTlkODYxYjhmYTkyODJlOTFhOWFhNGEzMDFm
OGZiNjRkMTc3Li40Nzc0Y2UwOGE1YjhiNTBmNjRhMTYyMDJmNTM4YjRmNGY3ZWYyZTQ4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL1NldHRpbmdzQmFzZUNvY29hLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvU2V0dGluZ3NCYXNlQ29jb2EubW0KQEAgLTQz
LDE1ICs0MywxNSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHZvaWQgU2V0dGluZ3NCYXNlOjpp
bml0aWFsaXplRGVmYXVsdEZvbnRGYW1pbGllcygpCiB7Ci0gICAgc2V0U3RhbmRhcmRGb250RmFt
aWx5KCJTb25ndGkgVEMiLCBVU0NSSVBUX1RSQURJVElPTkFMX0hBTik7Ci0gICAgc2V0U3RhbmRh
cmRGb250RmFtaWx5KCJTb25ndGkgU0MiLCBVU0NSSVBUX1NJTVBMSUZJRURfSEFOKTsKLSAgICBz
ZXRTdGFuZGFyZEZvbnRGYW1pbHkoIkhpcmFnaW5vIE1pbmNobyBQcm9OIiwgVVNDUklQVF9LQVRB
S0FOQV9PUl9ISVJBR0FOQSk7Ci0gICAgc2V0U3RhbmRhcmRGb250RmFtaWx5KCJBcHBsZU15dW5n
am8iLCBVU0NSSVBUX0hBTkdVTCk7Ci0KLSAgICBzZXRTdGFuZGFyZEZvbnRGYW1pbHkoIlRpbWVz
IiwgVVNDUklQVF9DT01NT04pOwotICAgIHNldEZpeGVkRm9udEZhbWlseSgiQ291cmllciIsIFVT
Q1JJUFRfQ09NTU9OKTsKLSAgICBzZXRTZXJpZkZvbnRGYW1pbHkoIlRpbWVzIiwgVVNDUklQVF9D
T01NT04pOwotICAgIHNldFNhbnNTZXJpZkZvbnRGYW1pbHkoIkhlbHZldGljYSIsIFVTQ1JJUFRf
Q09NTU9OKTsKKyAgICBzZXRTdGFuZGFyZEZvbnRGYW1pbHkoIlNvbmd0aSBUQyJfcywgVVNDUklQ
VF9UUkFESVRJT05BTF9IQU4pOworICAgIHNldFN0YW5kYXJkRm9udEZhbWlseSgiU29uZ3RpIFND
Il9zLCBVU0NSSVBUX1NJTVBMSUZJRURfSEFOKTsKKyAgICBzZXRTdGFuZGFyZEZvbnRGYW1pbHko
IkhpcmFnaW5vIE1pbmNobyBQcm9OIl9zLCBVU0NSSVBUX0tBVEFLQU5BX09SX0hJUkFHQU5BKTsK
KyAgICBzZXRTdGFuZGFyZEZvbnRGYW1pbHkoIkFwcGxlTXl1bmdqbyJfcywgVVNDUklQVF9IQU5H
VUwpOworCisgICAgc2V0U3RhbmRhcmRGb250RmFtaWx5KCJUaW1lcyJfcywgVVNDUklQVF9DT01N
T04pOworICAgIHNldEZpeGVkRm9udEZhbWlseSgiQ291cmllciJfcywgVVNDUklQVF9DT01NT04p
OworICAgIHNldFNlcmlmRm9udEZhbWlseSgiVGltZXMiX3MsIFVTQ1JJUFRfQ09NTU9OKTsKKyAg
ICBzZXRTYW5zU2VyaWZGb250RmFtaWx5KCJIZWx2ZXRpY2EiX3MsIFVTQ1JJUFRfQ09NTU9OKTsK
IH0KIAogYm9vbCBTZXR0aW5nc0Jhc2U6OnBsYXRmb3JtRGVmYXVsdE1lZGlhU291cmNlRW5hYmxl
ZCgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9QYWdlTWFjLm1tIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9tYWMvUGFnZU1hYy5tbQppbmRleCA0NDlhOGZmNmNkNjk0ZDI0YzVh
ZjE0YmRlYWY1NGM2MjRjMjJjMTFiLi45ZjJkM2Y1ZmQzZGY3ZmM2NWI4ZjJiZDUyY2M2OWYyMmJi
MWJhY2U3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9QYWdlTWFjLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1BhZ2VNYWMubW0KQEAgLTU3LDE1ICs1NywxNSBA
QCB2b2lkIFBhZ2U6OnBsYXRmb3JtSW5pdGlhbGl6ZSgpCiAgICAgc3RhdGljIHN0ZDo6b25jZV9m
bGFnIG9uY2VGbGFnOwogICAgIHN0ZDo6Y2FsbF9vbmNlKG9uY2VGbGFnLCBbXSB7CiAjaWYgRU5B
QkxFKFRSRUVfREVCVUdHSU5HKQotICAgICAgICBQQUw6OnJlZ2lzdGVyTm90aWZ5Q2FsbGJhY2so
ImNvbS5hcHBsZS5XZWJLaXQuc2hvd1JlbmRlclRyZWUiLCBwcmludFJlbmRlclRyZWVGb3JMaXZl
RG9jdW1lbnRzKTsKLSAgICAgICAgUEFMOjpyZWdpc3Rlck5vdGlmeUNhbGxiYWNrKCJjb20uYXBw
bGUuV2ViS2l0LnNob3dMYXllclRyZWUiLCBwcmludExheWVyVHJlZUZvckxpdmVEb2N1bWVudHMp
OwotICAgICAgICBQQUw6OnJlZ2lzdGVyTm90aWZ5Q2FsbGJhY2soImNvbS5hcHBsZS5XZWJLaXQu
c2hvd0dyYXBoaWNzTGF5ZXJUcmVlIiwgcHJpbnRHcmFwaGljc0xheWVyVHJlZUZvckxpdmVEb2N1
bWVudHMpOworICAgICAgICBQQUw6OnJlZ2lzdGVyTm90aWZ5Q2FsbGJhY2soImNvbS5hcHBsZS5X
ZWJLaXQuc2hvd1JlbmRlclRyZWUiX3MsIHByaW50UmVuZGVyVHJlZUZvckxpdmVEb2N1bWVudHMp
OworICAgICAgICBQQUw6OnJlZ2lzdGVyTm90aWZ5Q2FsbGJhY2soImNvbS5hcHBsZS5XZWJLaXQu
c2hvd0xheWVyVHJlZSJfcywgcHJpbnRMYXllclRyZWVGb3JMaXZlRG9jdW1lbnRzKTsKKyAgICAg
ICAgUEFMOjpyZWdpc3Rlck5vdGlmeUNhbGxiYWNrKCJjb20uYXBwbGUuV2ViS2l0LnNob3dHcmFw
aGljc0xheWVyVHJlZSJfcywgcHJpbnRHcmFwaGljc0xheWVyVHJlZUZvckxpdmVEb2N1bWVudHMp
OwogI2lmIEVOQUJMRShMQVlPVVRfRk9STUFUVElOR19DT05URVhUKQotICAgICAgICBQQUw6OnJl
Z2lzdGVyTm90aWZ5Q2FsbGJhY2soImNvbS5hcHBsZS5XZWJLaXQuc2hvd0xheW91dFRyZWUiLCBM
YXlvdXQ6OnByaW50TGF5b3V0VHJlZUZvckxpdmVEb2N1bWVudHMpOworICAgICAgICBQQUw6OnJl
Z2lzdGVyTm90aWZ5Q2FsbGJhY2soImNvbS5hcHBsZS5XZWJLaXQuc2hvd0xheW91dFRyZWUiX3Ms
IExheW91dDo6cHJpbnRMYXlvdXRUcmVlRm9yTGl2ZURvY3VtZW50cyk7CiAjZW5kaWYKICNlbmRp
ZiAvLyBFTkFCTEUoVFJFRV9ERUJVR0dJTkcpCiAKLSAgICAgICAgUEFMOjpyZWdpc3Rlck5vdGlm
eUNhbGxiYWNrKCJjb20uYXBwbGUuV2ViS2l0LnNob3dBbGxEb2N1bWVudHMiLCBbXSB7CisgICAg
ICAgIFBBTDo6cmVnaXN0ZXJOb3RpZnlDYWxsYmFjaygiY29tLmFwcGxlLldlYktpdC5zaG93QWxs
RG9jdW1lbnRzIl9zLCBbXSB7CiAgICAgICAgICAgICB1bnNpZ25lZCBudW1QYWdlcyA9IDA7CiAg
ICAgICAgICAgICBQYWdlOjpmb3JFYWNoUGFnZShbJm51bVBhZ2VzXShQYWdlJikgewogICAgICAg
ICAgICAgICAgICsrbnVtUGFnZXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXpl
ZFN0cmluZ3MuY3BwCmluZGV4IGNmNWQwZTAyNmNkZjgzMzcyMmU1MWNhYzBiY2M3ZjEzNGE2MjVl
OWUuLjhhN2U4ZWY2YmNlMjNjMWY4NGFkNDAzMDZjZDZmNWY1YzkwZTU4ZGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwCkBAIC02NTUsNyArNjU1LDcg
QEAgU3RyaW5nIEFYV2Vla0ZpZWxkVGV4dCgpCiAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoIndl
ZWsgYW5kIHllYXIgZmllbGQiLCAiYWNjZXNzaWJpbGl0eSByb2xlIGRlc2NyaXB0aW9uIGZvciBh
IHRpbWUgZmllbGQuIik7CiB9CiAKLVN0cmluZyBBWEFSSUFDb250ZW50R3JvdXBUZXh0KGNvbnN0
IFN0cmluZyYgYXJpYVR5cGUpCitTdHJpbmcgQVhBUklBQ29udGVudEdyb3VwVGV4dChTdHJpbmdW
aWV3IGFyaWFUeXBlKQogewogICAgIGlmIChhcmlhVHlwZSA9PSAiQVJJQUFwcGxpY2F0aW9uQWxl
cnQiKQogICAgICAgICByZXR1cm4gV0VCX1VJX1NUUklORygiYWxlcnQiLCAiQW4gQVJJQSBhY2Nl
c3NpYmlsaXR5IGdyb3VwIHRoYXQgYWN0cyBhcyBhbiBhbGVydC4iKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaAppbmRleCBiMTgxZjFlZDhhMGI4OGMxZmNmY2Qw
ZTg2MTcyMzRiYjI5NDkzZGFlLi5hMjBiNTg4ZTY5MzcxNjlhMTA2N2QzOWQ3YzEwOWYzNDU5ZThj
Mzk2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdz
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oCkBAIC0x
OTUsNyArMTk1LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIFN0cmluZyBBWE1vbnRoRmll
bGRUZXh0KCk7CiAgICAgU3RyaW5nIEFYTnVtYmVyRmllbGRUZXh0KCk7CiAgICAgU3RyaW5nIEFY
V2Vla0ZpZWxkVGV4dCgpOwotICAgIFN0cmluZyBBWEFSSUFDb250ZW50R3JvdXBUZXh0KGNvbnN0
IFN0cmluZyYgYXJpYVR5cGUpOworICAgIFN0cmluZyBBWEFSSUFDb250ZW50R3JvdXBUZXh0KFN0
cmluZ1ZpZXcgYXJpYVR5cGUpOwogICAgIFN0cmluZyBBWEhvcml6b250YWxSdWxlRGVzY3JpcHRp
b25UZXh0KCk7CiAgICAgU3RyaW5nIEFYTWFya1RleHQoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
UGFzdGVib2FyZC5oCmluZGV4IGFlYmEwYTNiNDRkODY2NmVjZGIyMjFiMzM1NzBkNGNjZGE1NjY0
MjkuLjFjZjQxMDhmMDhlNjMwNjU4ZjlhM2UzMWZlNGJjZTk2M2UzZTRjY2EgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkLmgKQEAgLTM3NSw5ICszNzUsOSBAQCBleHRlcm4gTlNTdHJp
bmcgKlVJQ29sb3JQYm9hcmRUeXBlOwogI2VuZGlmCiAKICNpZiBQTEFURk9STShNQUMpCi1leHRl
cm4gY29uc3QgY2hhciogY29uc3QgV2ViQXJjaGl2ZVBib2FyZFR5cGU7Ci1leHRlcm4gY29uc3Qg
Y2hhciogY29uc3QgV2ViVVJMTmFtZVBib2FyZFR5cGU7Ci1leHRlcm4gY29uc3QgY2hhciogY29u
c3QgV2ViVVJMc1dpdGhUaXRsZXNQYm9hcmRUeXBlOworZXh0ZXJuIGNvbnN0IEFTQ0lJTGl0ZXJh
bCBXZWJBcmNoaXZlUGJvYXJkVHlwZTsKK2V4dGVybiBjb25zdCBBU0NJSUxpdGVyYWwgV2ViVVJM
TmFtZVBib2FyZFR5cGU7CitleHRlcm4gY29uc3QgQVNDSUlMaXRlcmFsIFdlYlVSTHNXaXRoVGl0
bGVzUGJvYXJkVHlwZTsKICNlbmRpZgogCiAjaWYgIVBMQVRGT1JNKEdUSykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmRDdXN0b21EYXRhLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkQ3VzdG9tRGF0YS5oCmluZGV4IDJiZTgxZDI5Mzhh
M2RiZDA5MDI2Y2E2ZWM2NGFjMzI4N2U2YWJjMDMuLjI1NmY0NDU0MjkwMzJiYjQyZjMxM2Q5MjBh
ZmJmZmQxYjAyM2E3N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3Rl
Ym9hcmRDdXN0b21EYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2Fy
ZEN1c3RvbURhdGEuaApAQCAtNzYsNyArNzYsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjbGVhcihj
b25zdCBTdHJpbmcmIHR5cGUpOwogCiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIGNvbnN0IGNoYXIqIGNvY29hVHlwZSgpOworICAgIFdFQkNPUkVfRVhQT1JU
IHN0YXRpYyBBU0NJSUxpdGVyYWwgY29jb2FUeXBlKCk7CiAjZWxpZiBQTEFURk9STShHVEspCiAg
ICAgc3RhdGljIGNvbnN0IGNoYXIqIGd0a1R5cGUoKSB7IHJldHVybiAib3JnLndlYmtpdGd0ay5X
ZWJLaXQuY3VzdG9tLXBhc3RlYm9hcmQtZGF0YSI7IH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvTWVkaWFTZXNzaW9uTWFuYWdlckNvY29h
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvTWVkaWFTZXNzaW9uTWFu
YWdlckNvY29hLm1tCmluZGV4IGEwZTkwMmYxMmNlN2ViMTdjNzc2ZDQzYzEzNWM4NTMyNmM3NWNm
ZTAuLjk2Y2RmYWEzNjIxYzVjOTYyZGEwZTA1MzAyZDRlYTlkOWNkNzA4N2MgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL01lZGlhU2Vzc2lvbk1hbmFnZXJD
b2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9NZWRpYVNl
c3Npb25NYW5hZ2VyQ29jb2EubW0KQEAgLTQ1Miw4ICs0NTIsOCBAQCB2b2lkIE1lZGlhU2Vzc2lv
bk1hbmFnZXJDb2NvYTo6dXBkYXRlTm93UGxheWluZ0luZm8oKQogCiAgICAgaWYgKG1fbm93UGxh
eWluZ01hbmFnZXItPnNldE5vd1BsYXlpbmdJbmZvKCpub3dQbGF5aW5nSW5mbykpIHsKICNpZmRl
ZiBMT0dfRElTQUJMRUQKLSAgICAgICAgU3RyaW5nIHNyYyA9ICJzcmMiOwotICAgICAgICBTdHJp
bmcgdGl0bGUgPSAidGl0bGUiOworICAgICAgICBTdHJpbmcgc3JjID0gInNyYyJfczsKKyAgICAg
ICAgU3RyaW5nIHRpdGxlID0gInRpdGxlIl9zOwogI2Vsc2UKICAgICAgICAgU3RyaW5nIHNyYyA9
IG5vd1BsYXlpbmdJbmZvLT5hcnR3b3JrID8gbm93UGxheWluZ0luZm8tPmFydHdvcmstPnNyYyA6
IFN0cmluZygpOwogICAgICAgICBTdHJpbmcgdGl0bGUgPSBub3dQbGF5aW5nSW5mby0+dGl0bGU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9LZXlFdmVudENvY29h
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvS2V5RXZlbnRDb2NvYS5tbQppbmRl
eCBmNGVlZTY1ZjA5OTNiOWQ0ZDliZDZmZTllZGE3YWQwYTYxNTM3MzUyLi4xYzVlMjQzYzg1MmEz
ODUwOWM4OWNjNTkxOWNmYzE0MjA2NzE5OWMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9jb2NvYS9LZXlFdmVudENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2NvY29hL0tleUV2ZW50Q29jb2EubW0KQEAgLTIyMCw3ICsyMjAsNyBAQCBTdHJpbmcga2V5
SWRlbnRpZmllckZvckNoYXJDb2RlKHVuaWNoYXIgY2hhckNvZGUpCiAKICAgICAgICAgLy8gIkFs
dCIKICAgICAgICAgY2FzZSBOU01lbnVGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAi
QWx0IjsKKyAgICAgICAgICAgIHJldHVybiAiQWx0Il9zOwogCiAgICAgICAgIC8vICJBcHBzIgog
ICAgICAgICAvLyAiQnJvd3NlckJhY2siCkBAIC0yMzMsNyArMjMzLDcgQEAgU3RyaW5nIGtleUlk
ZW50aWZpZXJGb3JDaGFyQ29kZSh1bmljaGFyIGNoYXJDb2RlKQogCiAgICAgICAgIC8vICJDbGVh
ciIKICAgICAgICAgY2FzZSBOU0NsZWFyTGluZUZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0
dXJuICJDbGVhciI7CisgICAgICAgICAgICByZXR1cm4gIkNsZWFyIl9zOwogCiAgICAgICAgIC8v
ICJDb2RlSW5wdXQiCiAgICAgICAgIC8vICJDb21wb3NlIgpAQCAtMjQ1LDEwMCArMjQ1LDEwMCBA
QCBTdHJpbmcga2V5SWRlbnRpZmllckZvckNoYXJDb2RlKHVuaWNoYXIgY2hhckNvZGUpCiAKICAg
ICAgICAgLy8gIkRvd24iCiAgICAgICAgIGNhc2UgTlNEb3duQXJyb3dGdW5jdGlvbktleToKLSAg
ICAgICAgICAgIHJldHVybiAiRG93biI7CisgICAgICAgICAgICByZXR1cm4gIkRvd24iX3M7CiAg
ICAgICAgIC8vICJFbmQiCiAgICAgICAgIGNhc2UgTlNFbmRGdW5jdGlvbktleToKLSAgICAgICAg
ICAgIHJldHVybiAiRW5kIjsKKyAgICAgICAgICAgIHJldHVybiAiRW5kIl9zOwogICAgICAgICAv
LyAiRW50ZXIiCiAgICAgICAgIGNhc2UgMHgzOiBjYXNlIDB4QTogY2FzZSAweEQ6IC8vIE1hY2lu
dG9zaCBjYWxscyB0aGUgb25lIG9uIHRoZSBtYWluIGtleWJvYXJkIFJldHVybiwgYnV0IFdpbmRv
d3MgY2FsbHMgaXQgRW50ZXIsIHNvIHdlJ2xsIGRvIHRoZSBzYW1lIGZvciB0aGUgRE9NCi0gICAg
ICAgICAgICByZXR1cm4gIkVudGVyIjsKKyAgICAgICAgICAgIHJldHVybiAiRW50ZXIiX3M7CiAK
ICAgICAgICAgLy8gIkVyYXNlRW9mIgogCiAgICAgICAgIC8vICJFeGVjdXRlIgogICAgICAgICBj
YXNlIE5TRXhlY3V0ZUZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJFeGVjdXRlIjsK
KyAgICAgICAgICAgIHJldHVybiAiRXhlY3V0ZSJfczsKIAogICAgICAgICAvLyAiRXhzZWwiCiAK
ICAgICAgICAgLy8gIkYxIgogICAgICAgICBjYXNlIE5TRjFGdW5jdGlvbktleToKLSAgICAgICAg
ICAgIHJldHVybiAiRjEiOworICAgICAgICAgICAgcmV0dXJuICJGMSJfczsKICAgICAgICAgLy8g
IkYyIgogICAgICAgICBjYXNlIE5TRjJGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAi
RjIiOworICAgICAgICAgICAgcmV0dXJuICJGMiJfczsKICAgICAgICAgLy8gIkYzIgogICAgICAg
ICBjYXNlIE5TRjNGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiRjMiOworICAgICAg
ICAgICAgcmV0dXJuICJGMyJfczsKICAgICAgICAgLy8gIkY0IgogICAgICAgICBjYXNlIE5TRjRG
dW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiRjQiOworICAgICAgICAgICAgcmV0dXJu
ICJGNCJfczsKICAgICAgICAgLy8gIkY1IgogICAgICAgICBjYXNlIE5TRjVGdW5jdGlvbktleToK
LSAgICAgICAgICAgIHJldHVybiAiRjUiOworICAgICAgICAgICAgcmV0dXJuICJGNSJfczsKICAg
ICAgICAgLy8gIkY2IgogICAgICAgICBjYXNlIE5TRjZGdW5jdGlvbktleToKLSAgICAgICAgICAg
IHJldHVybiAiRjYiOworICAgICAgICAgICAgcmV0dXJuICJGNiJfczsKICAgICAgICAgLy8gIkY3
IgogICAgICAgICBjYXNlIE5TRjdGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiRjci
OworICAgICAgICAgICAgcmV0dXJuICJGNyJfczsKICAgICAgICAgLy8gIkY4IgogICAgICAgICBj
YXNlIE5TRjhGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiRjgiOworICAgICAgICAg
ICAgcmV0dXJuICJGOCJfczsKICAgICAgICAgLy8gIkY5IgogICAgICAgICBjYXNlIE5TRjlGdW5j
dGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiRjkiOworICAgICAgICAgICAgcmV0dXJuICJG
OSJfczsKICAgICAgICAgLy8gIkYxMCIKICAgICAgICAgY2FzZSBOU0YxMEZ1bmN0aW9uS2V5Ogot
ICAgICAgICAgICAgcmV0dXJuICJGMTAiOworICAgICAgICAgICAgcmV0dXJuICJGMTAiX3M7CiAg
ICAgICAgIC8vICJGMTEiCiAgICAgICAgIGNhc2UgTlNGMTFGdW5jdGlvbktleToKLSAgICAgICAg
ICAgIHJldHVybiAiRjExIjsKKyAgICAgICAgICAgIHJldHVybiAiRjExIl9zOwogICAgICAgICAv
LyAiRjEyIgogICAgICAgICBjYXNlIE5TRjEyRnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1
cm4gIkYxMiI7CisgICAgICAgICAgICByZXR1cm4gIkYxMiJfczsKICAgICAgICAgLy8gIkYxMyIK
ICAgICAgICAgY2FzZSBOU0YxM0Z1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJGMTMi
OworICAgICAgICAgICAgcmV0dXJuICJGMTMiX3M7CiAgICAgICAgIC8vICJGMTQiCiAgICAgICAg
IGNhc2UgTlNGMTRGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiRjE0IjsKKyAgICAg
ICAgICAgIHJldHVybiAiRjE0Il9zOwogICAgICAgICAvLyAiRjE1IgogICAgICAgICBjYXNlIE5T
RjE1RnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkYxNSI7CisgICAgICAgICAgICBy
ZXR1cm4gIkYxNSJfczsKICAgICAgICAgLy8gIkYxNiIKICAgICAgICAgY2FzZSBOU0YxNkZ1bmN0
aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJGMTYiOworICAgICAgICAgICAgcmV0dXJuICJG
MTYiX3M7CiAgICAgICAgIC8vICJGMTciCiAgICAgICAgIGNhc2UgTlNGMTdGdW5jdGlvbktleToK
LSAgICAgICAgICAgIHJldHVybiAiRjE3IjsKKyAgICAgICAgICAgIHJldHVybiAiRjE3Il9zOwog
ICAgICAgICAvLyAiRjE4IgogICAgICAgICBjYXNlIE5TRjE4RnVuY3Rpb25LZXk6Ci0gICAgICAg
ICAgICByZXR1cm4gIkYxOCI7CisgICAgICAgICAgICByZXR1cm4gIkYxOCJfczsKICAgICAgICAg
Ly8gIkYxOSIKICAgICAgICAgY2FzZSBOU0YxOUZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0
dXJuICJGMTkiOworICAgICAgICAgICAgcmV0dXJuICJGMTkiX3M7CiAgICAgICAgIC8vICJGMjAi
CiAgICAgICAgIGNhc2UgTlNGMjBGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiRjIw
IjsKKyAgICAgICAgICAgIHJldHVybiAiRjIwIl9zOwogICAgICAgICAvLyAiRjIxIgogICAgICAg
ICBjYXNlIE5TRjIxRnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkYyMSI7CisgICAg
ICAgICAgICByZXR1cm4gIkYyMSJfczsKICAgICAgICAgLy8gIkYyMiIKICAgICAgICAgY2FzZSBO
U0YyMkZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJGMjIiOworICAgICAgICAgICAg
cmV0dXJuICJGMjIiX3M7CiAgICAgICAgIC8vICJGMjMiCiAgICAgICAgIGNhc2UgTlNGMjNGdW5j
dGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiRjIzIjsKKyAgICAgICAgICAgIHJldHVybiAi
RjIzIl9zOwogICAgICAgICAvLyAiRjI0IgogICAgICAgICBjYXNlIE5TRjI0RnVuY3Rpb25LZXk6
Ci0gICAgICAgICAgICByZXR1cm4gIkYyNCI7CisgICAgICAgICAgICByZXR1cm4gIkYyNCJfczsK
IAogICAgICAgICAvLyAiRmluYWxNb2RlIgogCiAgICAgICAgIC8vICJGaW5kIgogICAgICAgICBj
YXNlIE5TRmluZEZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJGaW5kIjsKKyAgICAg
ICAgICAgIHJldHVybiAiRmluZCJfczsKIAogICAgICAgICAvLyAiRnVsbFdpZHRoIgogICAgICAg
ICAvLyAiSGFsZldpZHRoIgpAQCAtMzQ3LDE2ICszNDcsMTYgQEAgU3RyaW5nIGtleUlkZW50aWZp
ZXJGb3JDaGFyQ29kZSh1bmljaGFyIGNoYXJDb2RlKQogCiAgICAgICAgIC8vICJIZWxwIgogICAg
ICAgICBjYXNlIE5TSGVscEZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJIZWxwIjsK
KyAgICAgICAgICAgIHJldHVybiAiSGVscCJfczsKIAogICAgICAgICAvLyAiSGlyYWdhbmEiCiAK
ICAgICAgICAgLy8gIkhvbWUiCiAgICAgICAgIGNhc2UgTlNIb21lRnVuY3Rpb25LZXk6Ci0gICAg
ICAgICAgICByZXR1cm4gIkhvbWUiOworICAgICAgICAgICAgcmV0dXJuICJIb21lIl9zOwogICAg
ICAgICAvLyAiSW5zZXJ0IgogICAgICAgICBjYXNlIE5TSW5zZXJ0RnVuY3Rpb25LZXk6Ci0gICAg
ICAgICAgICByZXR1cm4gIkluc2VydCI7CisgICAgICAgICAgICByZXR1cm4gIkluc2VydCJfczsK
IAogICAgICAgICAvLyAiSmFwYW5lc2VIaXJhZ2FuYSIKICAgICAgICAgLy8gIkphcGFuZXNlS2F0
YWthbmEiCkBAIC0zNzEsNyArMzcxLDcgQEAgU3RyaW5nIGtleUlkZW50aWZpZXJGb3JDaGFyQ29k
ZSh1bmljaGFyIGNoYXJDb2RlKQogCiAgICAgICAgIC8vICJMZWZ0IgogICAgICAgICBjYXNlIE5T
TGVmdEFycm93RnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkxlZnQiOworICAgICAg
ICAgICAgcmV0dXJuICJMZWZ0Il9zOwogCiAgICAgICAgIC8vICJNZXRhIgogICAgICAgICAvLyAi
TWVkaWFOZXh0VHJhY2siCkBAIC0zODEsNTkgKzM4MSw1OSBAQCBTdHJpbmcga2V5SWRlbnRpZmll
ckZvckNoYXJDb2RlKHVuaWNoYXIgY2hhckNvZGUpCiAKICAgICAgICAgLy8gIk1vZGVDaGFuZ2Ui
CiAgICAgICAgIGNhc2UgTlNNb2RlU3dpdGNoRnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1
cm4gIk1vZGVDaGFuZ2UiOworICAgICAgICAgICAgcmV0dXJuICJNb2RlQ2hhbmdlIl9zOwogCiAg
ICAgICAgIC8vICJOb25jb252ZXJ0IgogICAgICAgICAvLyAiTnVtTG9jayIKIAogICAgICAgICAv
LyAiUGFnZURvd24iCiAgICAgICAgIGNhc2UgTlNQYWdlRG93bkZ1bmN0aW9uS2V5OgotICAgICAg
ICAgICAgcmV0dXJuICJQYWdlRG93biI7CisgICAgICAgICAgICByZXR1cm4gIlBhZ2VEb3duIl9z
OwogICAgICAgICAvLyAiUGFnZVVwIgogICAgICAgICBjYXNlIE5TUGFnZVVwRnVuY3Rpb25LZXk6
Ci0gICAgICAgICAgICByZXR1cm4gIlBhZ2VVcCI7CisgICAgICAgICAgICByZXR1cm4gIlBhZ2VV
cCJfczsKIAogICAgICAgICAvLyAiUGFzdGUiCiAKICAgICAgICAgLy8gIlBhdXNlIgogICAgICAg
ICBjYXNlIE5TUGF1c2VGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiUGF1c2UiOwor
ICAgICAgICAgICAgcmV0dXJuICJQYXVzZSJfczsKIAogICAgICAgICAvLyAiUGxheSIKICAgICAg
ICAgLy8gIlByZXZpb3VzQ2FuZGlkYXRlIgogCiAgICAgICAgIC8vICJQcmludFNjcmVlbiIKICAg
ICAgICAgY2FzZSBOU1ByaW50U2NyZWVuRnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4g
IlByaW50U2NyZWVuIjsKKyAgICAgICAgICAgIHJldHVybiAiUHJpbnRTY3JlZW4iX3M7CiAKICAg
ICAgICAgLy8gIlByb2Nlc3MiCiAgICAgICAgIC8vICJQcm9wcyIKIAogICAgICAgICAvLyAiUmln
aHQiCiAgICAgICAgIGNhc2UgTlNSaWdodEFycm93RnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICBy
ZXR1cm4gIlJpZ2h0IjsKKyAgICAgICAgICAgIHJldHVybiAiUmlnaHQiX3M7CiAKICAgICAgICAg
Ly8gIlJvbWFuQ2hhcmFjdGVycyIKIAogICAgICAgICAvLyAiU2Nyb2xsIgogICAgICAgICBjYXNl
IE5TU2Nyb2xsTG9ja0Z1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJTY3JvbGwiOwor
ICAgICAgICAgICAgcmV0dXJuICJTY3JvbGwiX3M7CiAgICAgICAgIC8vICJTZWxlY3QiCiAgICAg
ICAgIGNhc2UgTlNTZWxlY3RGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiU2VsZWN0
IjsKKyAgICAgICAgICAgIHJldHVybiAiU2VsZWN0Il9zOwogCiAgICAgICAgIC8vICJTZWxlY3RN
ZWRpYSIKICAgICAgICAgLy8gIlNoaWZ0IgogCiAgICAgICAgIC8vICJTdG9wIgogICAgICAgICBj
YXNlIE5TU3RvcEZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJTdG9wIjsKKyAgICAg
ICAgICAgIHJldHVybiAiU3RvcCJfczsKICAgICAgICAgLy8gIlVwIgogICAgICAgICBjYXNlIE5T
VXBBcnJvd0Z1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJVcCI7CisgICAgICAgICAg
ICByZXR1cm4gIlVwIl9zOwogICAgICAgICAvLyAiVW5kbyIKICAgICAgICAgY2FzZSBOU1VuZG9G
dW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiVW5kbyI7CisgICAgICAgICAgICByZXR1
cm4gIlVuZG8iX3M7CiAKICAgICAgICAgLy8gIlZvbHVtZURvd24iCiAgICAgICAgIC8vICJWb2x1
bWVNdXRlIgpAQCAtNDQzLDM4ICs0NDMsMzggQEAgU3RyaW5nIGtleUlkZW50aWZpZXJGb3JDaGFy
Q29kZSh1bmljaGFyIGNoYXJDb2RlKQogCiAgICAgICAgIC8vIE1vcmUgZnVuY3Rpb24ga2V5cywg
bm90IGluIHRoZSBrZXkgaWRlbnRpZmllciBzcGVjaWZpY2F0aW9uLgogICAgICAgICBjYXNlIE5T
RjI1RnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkYyNSI7CisgICAgICAgICAgICBy
ZXR1cm4gIkYyNSJfczsKICAgICAgICAgY2FzZSBOU0YyNkZ1bmN0aW9uS2V5OgotICAgICAgICAg
ICAgcmV0dXJuICJGMjYiOworICAgICAgICAgICAgcmV0dXJuICJGMjYiX3M7CiAgICAgICAgIGNh
c2UgTlNGMjdGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiRjI3IjsKKyAgICAgICAg
ICAgIHJldHVybiAiRjI3Il9zOwogICAgICAgICBjYXNlIE5TRjI4RnVuY3Rpb25LZXk6Ci0gICAg
ICAgICAgICByZXR1cm4gIkYyOCI7CisgICAgICAgICAgICByZXR1cm4gIkYyOCJfczsKICAgICAg
ICAgY2FzZSBOU0YyOUZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJGMjkiOworICAg
ICAgICAgICAgcmV0dXJuICJGMjkiX3M7CiAgICAgICAgIGNhc2UgTlNGMzBGdW5jdGlvbktleToK
LSAgICAgICAgICAgIHJldHVybiAiRjMwIjsKKyAgICAgICAgICAgIHJldHVybiAiRjMwIl9zOwog
ICAgICAgICBjYXNlIE5TRjMxRnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkYzMSI7
CisgICAgICAgICAgICByZXR1cm4gIkYzMSJfczsKICAgICAgICAgY2FzZSBOU0YzMkZ1bmN0aW9u
S2V5OgotICAgICAgICAgICAgcmV0dXJuICJGMzIiOworICAgICAgICAgICAgcmV0dXJuICJGMzIi
X3M7CiAgICAgICAgIGNhc2UgTlNGMzNGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAi
RjMzIjsKKyAgICAgICAgICAgIHJldHVybiAiRjMzIl9zOwogICAgICAgICBjYXNlIE5TRjM0RnVu
Y3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkYzNCI7CisgICAgICAgICAgICByZXR1cm4g
IkYzNCJfczsKICAgICAgICAgY2FzZSBOU0YzNUZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0
dXJuICJGMzUiOworICAgICAgICAgICAgcmV0dXJuICJGMzUiX3M7CiAKICAgICAgICAgLy8gVHVy
biAweDdGIGludG8gMHgwOCwgYmVjYXVzZSBiYWNrc3BhY2UgbmVlZHMgdG8gYWx3YXlzIGJlIDB4
MDguCiAgICAgICAgIGNhc2UgMHg3RjoKLSAgICAgICAgICAgIHJldHVybiAiVSswMDA4IjsKKyAg
ICAgICAgICAgIHJldHVybiAiVSswMDA4Il9zOwogICAgICAgICAvLyBTdGFuZGFyZCBzYXlzIHRo
YXQgREVMIGJlY29tZXMgVSswMDdGLgogICAgICAgICBjYXNlIE5TRGVsZXRlRnVuY3Rpb25LZXk6
Ci0gICAgICAgICAgICByZXR1cm4gIlUrMDA3RiI7CisgICAgICAgICAgICByZXR1cm4gIlUrMDA3
RiJfczsKIAogICAgICAgICAvLyBBbHdheXMgdXNlIDB4MDkgZm9yIHRhYiBpbnN0ZWFkIG9mIEFw
cEtpdCdzIGJhY2t0YWIgY2hhcmFjdGVyLgogICAgICAgICBjYXNlIE5TQmFja1RhYkNoYXJhY3Rl
cjoKLSAgICAgICAgICAgIHJldHVybiAiVSswMDA5IjsKKyAgICAgICAgICAgIHJldHVybiAiVSsw
MDA5Il9zOwogCiAgICAgICAgIGNhc2UgTlNCZWdpbkZ1bmN0aW9uS2V5OgogICAgICAgICBjYXNl
IE5TQnJlYWtGdW5jdGlvbktleToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2NvY29hL1Bhc3RlYm9hcmRDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29h
L1Bhc3RlYm9hcmRDb2NvYS5tbQppbmRleCAwNjk2MWZiYTQ4YWQ5MWI0MjNiY2E5ODViNmMyZTVj
NjIxMDFmYzJmLi41OTg0MmYxMjY5YzViNWVkZjA5NWJkOWNiOGVlMzMyNmQ2ODdhZTFiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9QYXN0ZWJvYXJkQ29jb2EubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvUGFzdGVib2FyZENvY29hLm1tCkBA
IC0xMDQsMjUgKzEwNCwyNSBAQCBzdGF0aWMgY29uc3QgY2hhciogaW1hZ2VUeXBlVG9NSU1FVHlw
ZShJbWFnZVR5cGUgdHlwZSkKICAgICB9CiB9CiAKLXN0YXRpYyBjb25zdCBjaGFyKiBpbWFnZVR5
cGVUb0Zha2VGaWxlbmFtZShJbWFnZVR5cGUgdHlwZSkKK3N0YXRpYyBBU0NJSUxpdGVyYWwgaW1h
Z2VUeXBlVG9GYWtlRmlsZW5hbWUoSW1hZ2VUeXBlIHR5cGUpCiB7CiAgICAgc3dpdGNoICh0eXBl
KSB7CiAgICAgY2FzZSBJbWFnZVR5cGU6OkludmFsaWQ6CiAgICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwotICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIEFTQ0lJTGl0
ZXJhbDo6bnVsbCgpOwogICAgIGNhc2UgSW1hZ2VUeXBlOjpUSUZGOgogI2lmIFBMQVRGT1JNKE1B
QykKLSAgICAgICAgcmV0dXJuICJpbWFnZS5wbmciOyAvLyBGb3IgV2ViIGNvbXBhdGliaWxpdHks
IHdlIHByZXRlbmQgdG8gaGF2ZSBQTkcgaW5zdGVhZC4KKyAgICAgICAgcmV0dXJuICJpbWFnZS5w
bmciX3M7IC8vIEZvciBXZWIgY29tcGF0aWJpbGl0eSwgd2UgcHJldGVuZCB0byBoYXZlIFBORyBp
bnN0ZWFkLgogI2Vsc2UKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHJl
dHVybiBudWxscHRyOworICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsOjpudWxsKCk7CiAjZW5k
aWYKICAgICBjYXNlIEltYWdlVHlwZTo6UE5HOgotICAgICAgICByZXR1cm4gImltYWdlLnBuZyI7
CisgICAgICAgIHJldHVybiAiaW1hZ2UucG5nIl9zOwogICAgIGNhc2UgSW1hZ2VUeXBlOjpKUEVH
OgotICAgICAgICByZXR1cm4gImltYWdlLmpwZWciOworICAgICAgICByZXR1cm4gImltYWdlLmpw
ZWciX3M7CiAgICAgY2FzZSBJbWFnZVR5cGU6OkdJRjoKLSAgICAgICAgcmV0dXJuICJpbWFnZS5n
aWYiOworICAgICAgICByZXR1cm4gImltYWdlLmdpZiJfczsKICAgICB9CiB9CiAKQEAgLTIzNCw3
ICsyMzQsNyBAQCB2b2lkIFBhc3RlYm9hcmQ6OnJlYWQoUGFzdGVib2FyZEZpbGVSZWFkZXImIHJl
YWRlciwgc3RkOjpvcHRpb25hbDxzaXplX3Q+IGl0ZW1JbgogICAgICAgICBmb3IgKGF1dG8gY29j
b2FUeXBlIDogaW5mby5wbGF0Zm9ybVR5cGVzQnlGaWRlbGl0eSkgewogICAgICAgICAgICAgYXV0
byBpbWFnZVR5cGUgPSBjb2NvYVR5cGVUb0ltYWdlVHlwZShjb2NvYVR5cGUpOwogICAgICAgICAg
ICAgYXV0byogbWltZVR5cGUgPSBpbWFnZVR5cGVUb01JTUVUeXBlKGltYWdlVHlwZSk7Ci0gICAg
ICAgICAgICBpZiAoIW1pbWVUeXBlIHx8ICFyZWFkZXIuc2hvdWxkUmVhZEJ1ZmZlcihtaW1lVHlw
ZSkpCisgICAgICAgICAgICBpZiAoIW1pbWVUeXBlIHx8ICFyZWFkZXIuc2hvdWxkUmVhZEJ1ZmZl
cihTdHJpbmcgeyBtaW1lVHlwZSB9KSkKICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAg
ICAgICAgIGF1dG8gYnVmZmVyID0gcmVhZEJ1ZmZlcihpdGVtSW5kZXgsIGNvY29hVHlwZSk7CiAj
aWYgUExBVEZPUk0oTUFDKQpAQCAtMjQyLDcgKzI0Miw3IEBAIHZvaWQgUGFzdGVib2FyZDo6cmVh
ZChQYXN0ZWJvYXJkRmlsZVJlYWRlciYgcmVhZGVyLCBzdGQ6Om9wdGlvbmFsPHNpemVfdD4gaXRl
bUluCiAgICAgICAgICAgICAgICAgYnVmZmVyID0gY29udmVydFRJRkZUb1BORyhidWZmZXIucmVs
ZWFzZU5vbk51bGwoKSk7CiAjZW5kaWYKICAgICAgICAgICAgIGlmIChidWZmZXIpIHsKLSAgICAg
ICAgICAgICAgICByZWFkZXIucmVhZEJ1ZmZlcihpbWFnZVR5cGVUb0Zha2VGaWxlbmFtZShpbWFn
ZVR5cGUpLCBtaW1lVHlwZSwgYnVmZmVyLnJlbGVhc2VOb25OdWxsKCkpOworICAgICAgICAgICAg
ICAgIHJlYWRlci5yZWFkQnVmZmVyKGltYWdlVHlwZVRvRmFrZUZpbGVuYW1lKGltYWdlVHlwZSks
IFN0cmluZyB7IG1pbWVUeXBlIH0sIGJ1ZmZlci5yZWxlYXNlTm9uTnVsbCgpKTsKICAgICAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvUGFzdGVib2FyZEN1c3RvbURhdGFDb2NvYS5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Bhc3RlYm9hcmRDdXN0b21EYXRhQ29jb2Eu
bW0KaW5kZXggMjYyMTI4NDRmMjEwNGE3NzdjZjY1NTZkNzVhNmU1Y2FlYzk3M2RlOC4uM2RlNTBh
MGU5MmMyOTA0YzE5ZWI2ZGViZGE3MTY4MmVmYjZkNjc1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vY29jb2EvUGFzdGVib2FyZEN1c3RvbURhdGFDb2NvYS5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9QYXN0ZWJvYXJkQ3VzdG9tRGF0YUNvY29hLm1t
CkBAIC0zMCw5ICszMCw5IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY29uc3QgY2hhciog
UGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpCitBU0NJSUxpdGVyYWwgUGFzdGVib2Fy
ZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpCiB7Ci0gICAgcmV0dXJuICJjb20uYXBwbGUuV2ViS2l0
LmN1c3RvbS1wYXN0ZWJvYXJkLWRhdGEiOworICAgIHJldHVybiAiY29tLmFwcGxlLldlYktpdC5j
dXN0b20tcGFzdGVib2FyZC1kYXRhIl9zOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb3VyQ0MuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvdXJDQy5oCmluZGV4IGIzN2QwNTBlOWMw
YzM2NzcwN2RhZTBiNmFjY2IxYmMzN2Y4ZWFjMTMuLjY2ZmIzZGUwNzExNTEzMDY3ODhkYzEyNmMy
M2Y0YmM4NjEyNTgzNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ZvdXJDQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvdXJD
Qy5oCkBAIC04NSw3ICs4NSw3IEBAIG5hbWVzcGFjZSBXVEYgewogdGVtcGxhdGU8dHlwZW5hbWU+
IHN0cnVjdCBMb2dBcmd1bWVudDsKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgTG9nQXJndW1lbnQ8V2Vi
Q29yZTo6Rm91ckNDPiB7Ci0gICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhjb25zdCBXZWJDb3Jl
OjpGb3VyQ0MmIGNvZGUpIHsgcmV0dXJuIGNvZGUuc3RyaW5nKCkuZGF0YSgpOyB9CisgICAgc3Rh
dGljIFN0cmluZyB0b1N0cmluZyhjb25zdCBXZWJDb3JlOjpGb3VyQ0MmIGNvZGUpIHsgcmV0dXJu
IFN0cmluZyB7IGNvZGUuc3RyaW5nKCkuZGF0YSgpIH07IH0KIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdURgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUv
R3JhcGhpY3NDb250ZXh0R0xBTkdMRS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmNwcAppbmRleCA2ODZjNWYyMDk4NzY3
ZmQyZWE1NzU0NGUzYWNjZWU0ZjJlN2JlNWQ4Li4yNzQ2MDlhMTUwOWFiODczZTM4NjIxYzRlYzU1
OGM4YTQyOGM1NGY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmNwcApAQCAtNTEw
LDggKzUxMCw5IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0R0xBTkdMRTo6dmFsaWRhdGVEZXB0aFN0
ZW5jaWwoY29uc3QgY2hhciogcGFja2VkRGVwdGhTdGVuY2lsCiAgICAgLy8gRklYTUU6IFNpbmNl
IHRoZSBjb25zdHJ1Y3RvcnMgb2YgdmFyaW91cyBwbGF0Zm9ybXMgYXJlIG5vdCBzaGFyZWQsIHdl
IGluaXRpYWxpemUgdGhpcyBoZXJlLgogICAgIC8vIFVwb24gY29uc3RydWN0aW5nIHRoZSBjb250
ZXh0LCBhbHdheXMgaW5pdGlhbGl6ZSB0aGUgZXh0ZW5zaW9ucyB0aGF0IHRoZSBXZWJHTFJlbmRl
cmluZ0NvbnRleHQqIHdpbGwKICAgICAvLyB1c2UgdG8gdHVybiBvbiBmZWF0dXJlIGZsYWdzLgot
ICAgIGlmIChzdXBwb3J0c0V4dGVuc2lvbihwYWNrZWREZXB0aFN0ZW5jaWxFeHRlbnNpb24pKSB7
Ci0gICAgICAgIGVuc3VyZUV4dGVuc2lvbkVuYWJsZWQocGFja2VkRGVwdGhTdGVuY2lsRXh0ZW5z
aW9uKTsKKyAgICBTdHJpbmcgcGFja2VkRGVwdGhTdGVuY2lsRXh0ZW5zaW9uU3RyaW5nIHsgcGFj
a2VkRGVwdGhTdGVuY2lsRXh0ZW5zaW9uIH07CisgICAgaWYgKHN1cHBvcnRzRXh0ZW5zaW9uKHBh
Y2tlZERlcHRoU3RlbmNpbEV4dGVuc2lvblN0cmluZykpIHsKKyAgICAgICAgZW5zdXJlRXh0ZW5z
aW9uRW5hYmxlZChwYWNrZWREZXB0aFN0ZW5jaWxFeHRlbnNpb25TdHJpbmcpOwogICAgICAgICBt
X2ludGVybmFsRGVwdGhTdGVuY2lsRm9ybWF0ID0gR0xfREVQVEgyNF9TVEVOQ0lMOF9PRVM7CiAg
ICAgfSBlbHNlCiAgICAgICAgIG1faW50ZXJuYWxEZXB0aFN0ZW5jaWxGb3JtYXQgPSBHTF9ERVBU
SF9DT01QT05FTlQxNjsKQEAgLTUyOCwxNyArNTI5LDE3IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0
R0xBTkdMRTo6dmFsaWRhdGVEZXB0aFN0ZW5jaWwoY29uc3QgY2hhciogcGFja2VkRGVwdGhTdGVu
Y2lsCiAKICAgICBpZiAoYXR0cnMuYW50aWFsaWFzKSB7CiAgICAgICAgIC8vIEZJWE1FOiBtdXN0
IGFkanVzdCB0aGlzIHdoZW4gdXBncmFkaW5nIHRvIFdlYkdMIDIuMCAvIE9wZW5HTCBFUyAzLjAg
c3VwcG9ydC4KLSAgICAgICAgaWYgKCFzdXBwb3J0c0V4dGVuc2lvbigiR0xfQU5HTEVfZnJhbWVi
dWZmZXJfbXVsdGlzYW1wbGUiKSB8fCAhc3VwcG9ydHNFeHRlbnNpb24oIkdMX0FOR0xFX2ZyYW1l
YnVmZmVyX2JsaXQiKSB8fCAhc3VwcG9ydHNFeHRlbnNpb24oIkdMX09FU19yZ2I4X3JnYmE4Iikp
IHsKKyAgICAgICAgaWYgKCFzdXBwb3J0c0V4dGVuc2lvbigiR0xfQU5HTEVfZnJhbWVidWZmZXJf
bXVsdGlzYW1wbGUiX3MpIHx8ICFzdXBwb3J0c0V4dGVuc2lvbigiR0xfQU5HTEVfZnJhbWVidWZm
ZXJfYmxpdCJfcykgfHwgIXN1cHBvcnRzRXh0ZW5zaW9uKCJHTF9PRVNfcmdiOF9yZ2JhOCJfcykp
IHsKICAgICAgICAgICAgIGF0dHJzLmFudGlhbGlhcyA9IGZhbHNlOwogICAgICAgICAgICAgc2V0
Q29udGV4dEF0dHJpYnV0ZXMoYXR0cnMpOwogICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAg
ZW5zdXJlRXh0ZW5zaW9uRW5hYmxlZCgiR0xfQU5HTEVfZnJhbWVidWZmZXJfbXVsdGlzYW1wbGUi
KTsKLSAgICAgICAgICAgIGVuc3VyZUV4dGVuc2lvbkVuYWJsZWQoIkdMX0FOR0xFX2ZyYW1lYnVm
ZmVyX2JsaXQiKTsKLSAgICAgICAgICAgIGVuc3VyZUV4dGVuc2lvbkVuYWJsZWQoIkdMX09FU19y
Z2I4X3JnYmE4Iik7CisgICAgICAgICAgICBlbnN1cmVFeHRlbnNpb25FbmFibGVkKCJHTF9BTkdM
RV9mcmFtZWJ1ZmZlcl9tdWx0aXNhbXBsZSJfcyk7CisgICAgICAgICAgICBlbnN1cmVFeHRlbnNp
b25FbmFibGVkKCJHTF9BTkdMRV9mcmFtZWJ1ZmZlcl9ibGl0Il9zKTsKKyAgICAgICAgICAgIGVu
c3VyZUV4dGVuc2lvbkVuYWJsZWQoIkdMX09FU19yZ2I4X3JnYmE4Il9zKTsKICAgICAgICAgfQog
ICAgIH0gZWxzZSBpZiAoYXR0cnMucHJlc2VydmVEcmF3aW5nQnVmZmVyKSB7CiAgICAgICAgIC8v
IE5lZWRlZCBmb3IgcHJlc2VydmVEcmF3aW5nQnVmZmVyOnRydWUgc3VwcG9ydCB3aXRob3V0IGFu
dGlhbGlhc2luZy4KLSAgICAgICAgZW5zdXJlRXh0ZW5zaW9uRW5hYmxlZCgiR0xfQU5HTEVfZnJh
bWVidWZmZXJfYmxpdCIpOworICAgICAgICBlbnN1cmVFeHRlbnNpb25FbmFibGVkKCJHTF9BTkdM
RV9mcmFtZWJ1ZmZlcl9ibGl0Il9zKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9DRE1Qcml2YXRlTWVkaWFTb3Vy
Y2VBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL0NETVByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KaW5kZXggMmRhZjhlYWFjOTA4Y2Vi
YmI5NGRhMzMwNjQ0YTVlNzcxN2IzNjczOS4uYWVhMmU4YWI5OTAxOTU4MmU0ZGQ0OTM4ZTIwMzdm
MDIwNjVkMjQyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL0NETVByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0NETVByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakMubW0KQEAgLTQ2LDcgKzQ2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBh
dXRvIENETVByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnBhcnNlS2V5U3lzdGVtKGNvbnN0IFN0
cmluZyYga2V5U3lzdGVtKSAtPiBzdGQ6Om9wdGlvbmFsPEtleVN5c3RlbVBhcmFtZXRlcnM+CiB7
Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJlZ3VsYXJFeHByZXNzaW9uPiBrZXlTeXN0ZW1S
RSgiXmNvbVxcLmFwcGxlXFwuZnBzXFwuWzIzXV9cXGQrKD86LFxcZCspKiQiLCBKU0M6OllhcnI6
OlRleHRDYXNlSW5zZW5zaXRpdmUpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxSZWd1bGFy
RXhwcmVzc2lvbj4ga2V5U3lzdGVtUkUoIl5jb21cXC5hcHBsZVxcLmZwc1xcLlsyM11fXFxkKyg/
OixcXGQrKSokIl9zLCBKU0M6OllhcnI6OlRleHRDYXNlSW5zZW5zaXRpdmUpOwogCiAgICAgaWYg
KGtleVN5c3RlbVJFLmdldCgpLm1hdGNoKGtleVN5c3RlbSkgPCAwKQogICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0
ZUFWRm91bmRhdGlvbi5oCmluZGV4IGE4MWI4ZTIyNjlhNjhiNDM2YTUzMjYwNTViZTBmYWYxMDU3
MDJjMjEuLjAxMzJhMmY4NDc4YTZkZWE5N2U4ZWI5ZDdjYzc2YzBhYzVlZGY2NDcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBs
YXllclByaXZhdGVBVkZvdW5kYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgKQEAg
LTMxMSw3ICszMTEsNyBAQCBwcm90ZWN0ZWQ6CiAgICAgTWVkaWFQbGF5ZXIqIHBsYXllcigpIHsg
cmV0dXJuIG1fcGxheWVyOyB9CiAgICAgY29uc3QgTWVkaWFQbGF5ZXIqIHBsYXllcigpIGNvbnN0
IHsgcmV0dXJuIG1fcGxheWVyOyB9CiAKLSAgICBTdHJpbmcgZW5naW5lRGVzY3JpcHRpb24oKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiAiQVZGb3VuZGF0aW9uIjsgfQorICAgIFN0cmluZyBlbmdp
bmVEZXNjcmlwdGlvbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJBVkZvdW5kYXRpb24iX3M7
IH0KICAgICBsb25nIHBsYXRmb3JtRXJyb3JDb2RlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
YXNzZXRFcnJvckNvZGUoKTsgfQogCiAgICAgdm9pZCB0cmFja01vZGVDaGFuZ2VkKCkgb3ZlcnJp
ZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9DRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQy5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETUluc3RhbmNl
RmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDLm1tCmluZGV4IDc2ZTYzMWI1ZmFhMjNkNzQ1MmM2OTAw
N2ZjZTRjNTkxNWVkMWRlOTQuLjEzMDY4Zjg5YWVkYWQzNTllMzI2MmJiYzZkZGRhNGMyZGE0NDRh
MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9vYmpjL0NETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETUluc3Rh
bmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDLm1tCkBAIC04OTEsNyArODkxLDcgQEAgdm9pZCBD
RE1JbnN0YW5jZVNlc3Npb25GYWlyUGxheVN0cmVhbWluZ0FWRk9iakM6OnVwZGF0ZUxpY2Vuc2Uo
Y29uc3QgU3RyaW5nJiwgTGkKICAgICAgICAgICAgIGlmICghb2JqZWN0KQogICAgICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAotICAgICAgICAgICAgYXV0byBrZXlJRFN0cmluZyA9IG9iamVj
dC0+Z2V0U3RyaW5nKCJrZXlJRCIpOworICAgICAgICAgICAgYXV0byBrZXlJRFN0cmluZyA9IG9i
amVjdC0+Z2V0U3RyaW5nKCJrZXlJRCJfcyk7CiAgICAgICAgICAgICBpZiAoIWtleUlEU3RyaW5n
KQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIApAQCAtOTExLDggKzkxMSw4IEBAIHZv
aWQgQ0RNSW5zdGFuY2VTZXNzaW9uRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDOjp1cGRhdGVMaWNl
bnNlKGNvbnN0IFN0cmluZyYsIExpCiAKICAgICAgICAgICAgIGF1dG8mIHJlcXVlc3QgPSBtX2N1
cnJlbnRSZXF1ZXN0LnZhbHVlKCkucmVxdWVzdHNbZm91bmRJbmRleF07CiAKLSAgICAgICAgICAg
IGF1dG8gcGF5bG9hZEZpbmRSZXN1bHRzID0gb2JqZWN0LT5maW5kKCJwYXlsb2FkIik7Ci0gICAg
ICAgICAgICBhdXRvIGVycm9yRmluZFJlc3VsdHMgPSBvYmplY3QtPmZpbmQoImVycm9yIik7Cisg
ICAgICAgICAgICBhdXRvIHBheWxvYWRGaW5kUmVzdWx0cyA9IG9iamVjdC0+ZmluZCgicGF5bG9h
ZCJfcyk7CisgICAgICAgICAgICBhdXRvIGVycm9yRmluZFJlc3VsdHMgPSBvYmplY3QtPmZpbmQo
ImVycm9yIl9zKTsKICAgICAgICAgICAgIGJvb2wgaGFzUGF5bG9hZCA9IHBheWxvYWRGaW5kUmVz
dWx0cyAhPSBvYmplY3QtPmVuZCgpOwogICAgICAgICAgICAgYm9vbCBoYXNFcnJvciA9IGVycm9y
RmluZFJlc3VsdHMgIT0gb2JqZWN0LT5lbmQoKTsKIApAQCAtMTI1Myw4ICsxMjUzLDggQEAgdm9p
ZCBDRE1JbnN0YW5jZVNlc3Npb25GYWlyUGxheVN0cmVhbWluZ0FWRk9iakM6OmRpZFByb3ZpZGVS
ZXF1ZXN0cyhWZWN0b3I8UmV0YWkKICAgICAgICAgICAgIGF1dG8gZW50cnkgPSBKU09OOjpPYmpl
Y3Q6OmNyZWF0ZSgpOwogICAgICAgICAgICAgYXV0byYga2V5SUQgPSByZXF1ZXN0RGF0YS5maXJz
dDsKICAgICAgICAgICAgIGF1dG8mIHBheWxvYWQgPSByZXF1ZXN0RGF0YS5zZWNvbmQ7Ci0gICAg
ICAgICAgICBlbnRyeS0+c2V0U3RyaW5nKCJrZXlJRCIsIGJhc2U2NEVuY29kZVRvU3RyaW5nKGtl
eUlELT5tYWtlQ29udGlndW91cygpLT5kYXRhKCksIGtleUlELT5zaXplKCkpKTsKLSAgICAgICAg
ICAgIGVudHJ5LT5zZXRTdHJpbmcoInBheWxvYWQiLCBiYXNlNjRFbmNvZGVUb1N0cmluZyhwYXls
b2FkLmdldCgpLmJ5dGVzLCBwYXlsb2FkLmdldCgpLmxlbmd0aCkpOworICAgICAgICAgICAgZW50
cnktPnNldFN0cmluZygia2V5SUQiX3MsIGJhc2U2NEVuY29kZVRvU3RyaW5nKGtleUlELT5tYWtl
Q29udGlndW91cygpLT5kYXRhKCksIGtleUlELT5zaXplKCkpKTsKKyAgICAgICAgICAgIGVudHJ5
LT5zZXRTdHJpbmcoInBheWxvYWQiX3MsIGJhc2U2NEVuY29kZVRvU3RyaW5nKHBheWxvYWQuZ2V0
KCkuYnl0ZXMsIHBheWxvYWQuZ2V0KCkubGVuZ3RoKSk7CiAgICAgICAgICAgICByZXF1ZXN0SlNP
Ti0+cHVzaE9iamVjdChXVEZNb3ZlKGVudHJ5KSk7CiAgICAgICAgIH0KICAgICAgICAgYXV0byBy
ZXF1ZXN0QnVmZmVyID0gdXRmOEJ1ZmZlcihyZXF1ZXN0SlNPTi0+dG9KU09OU3RyaW5nKCkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2Jq
Qy5tbQppbmRleCA2YmE2YjliZjEyYWQzYzlmMzg5MDdjMmZkMzZmZTg3YTU1M2IyYTQ0Li4wZThl
YTY0ZjA4MzhlNjJhZGU1Y2Y4OTcyY2FkMTg5YWM1NWQzNTY4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQ
cml2YXRlQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
dmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbQpAQCAtNjAwLDcg
KzYwMCw3IEBAIHZvaWQgU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakM6OmRpZFByb3ZpZGVDb250
ZW50S2V5UmVxdWVzdEluaXRpYWxpemF0aW9uRGF0YUZvCiAgICAgfQogCiAgICAgbV9rZXlJRHMg
PSBXVEZNb3ZlKGtleUlEcy52YWx1ZSgpKTsKLSAgICBwbGF5ZXItPmluaXRpYWxpemF0aW9uRGF0
YUVuY291bnRlcmVkKCJzaW5mIiwgbV9pbml0RGF0YS0+dHJ5Q3JlYXRlQXJyYXlCdWZmZXIoKSk7
CisgICAgcGxheWVyLT5pbml0aWFsaXphdGlvbkRhdGFFbmNvdW50ZXJlZCgic2luZiJfcywgbV9p
bml0RGF0YS0+dHJ5Q3JlYXRlQXJyYXlCdWZmZXIoKSk7CiAKICAgICBtX3dhaXRpbmdGb3JLZXkg
PSB0cnVlOwogICAgIHBsYXllci0+d2FpdGluZ0ZvcktleUNoYW5nZWQoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF0Zm9ybVBhc3RlYm9hcmRJT1MubW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxhdGZvcm1QYXN0ZWJvYXJkSU9TLm1tCmluZGV4
IGQ2NGI5NjgzNDczNzgzMmQyZWVkNjg4MjM2MDEyMjcwNjU1ODUzZmMuLjJlMDY4NTdlZjI2Yjhi
ZmZmOWFhMTkxODA3ODRmZGFjMWEyYjI3NWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2lvcy9QbGF0Zm9ybVBhc3RlYm9hcmRJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vaW9zL1BsYXRmb3JtUGFzdGVib2FyZElPUy5tbQpAQCAtMTU5LDcgKzE1OSw3IEBA
IHN0YXRpYyBWZWN0b3I8U3RyaW5nPiB3ZWJTYWZlVHlwZXMoTlNBcnJheTxOU1N0cmluZyAqPiAq
cGxhdGZvcm1UeXBlcywgUGxhdGZvcm1QCiB7CiAgICAgTGlzdEhhc2hTZXQ8U3RyaW5nPiBkb21Q
YXN0ZWJvYXJkVHlwZXM7CiAgICAgZm9yIChOU1N0cmluZyAqdHlwZSBpbiBwbGF0Zm9ybVR5cGVz
KSB7Ci0gICAgICAgIGlmIChbdHlwZSBpc0VxdWFsVG9TdHJpbmc6QChQYXN0ZWJvYXJkQ3VzdG9t
RGF0YTo6Y29jb2FUeXBlKCkpXSkKKyAgICAgICAgaWYgKFt0eXBlIGlzRXF1YWxUb1N0cmluZzpA
KFBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKS5jaGFyYWN0ZXJzKCkpXSkKICAgICAg
ICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgIGlmIChQYXN0ZWJvYXJkOjppc1NhZmVUeXBlRm9y
RE9NVG9SZWFkQW5kV3JpdGUodHlwZSkpIHsKQEAgLTUwMSw3ICs1MDEsNyBAQCBBTExPV19ERVBS
RUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogICAgIFBhc3RlYm9hcmRDdXN0b21EYXRhIGN1c3Rv
bURhdGE7CiAgICAgY3VzdG9tRGF0YS5zZXRPcmlnaW4oY29udGVudC5jb250ZW50T3JpZ2luKTsK
LSAgICBbcmVwcmVzZW50YXRpb25zVG9SZWdpc3RlciBhZGREYXRhOmN1c3RvbURhdGEuY3JlYXRl
U2hhcmVkQnVmZmVyKCktPmNyZWF0ZU5TRGF0YSgpLmdldCgpIGZvclR5cGU6QChQYXN0ZWJvYXJk
Q3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkpXTsKKyAgICBbcmVwcmVzZW50YXRpb25zVG9SZWdpc3Rl
ciBhZGREYXRhOmN1c3RvbURhdGEuY3JlYXRlU2hhcmVkQnVmZmVyKCktPmNyZWF0ZU5TRGF0YSgp
LmdldCgpIGZvclR5cGU6QChQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkuY2hhcmFj
dGVycygpKV07CiAKICAgICByZWdpc3Rlckl0ZW1Ub1Bhc3RlYm9hcmQocmVwcmVzZW50YXRpb25z
VG9SZWdpc3Rlci5nZXQoKSwgbV9wYXN0ZWJvYXJkLmdldCgpKTsKIH0KQEAgLTYwOCw3ICs2MDgs
NyBAQCBWZWN0b3I8U3RyaW5nPiBQbGF0Zm9ybVBhc3RlYm9hcmQ6OnR5cGVzU2FmZUZvckRPTVRv
UmVhZEFuZFdyaXRlKGNvbnN0IFN0cmluZyYgbwogICAgIH0KICNlbmRpZiAvLyBQQVNURUJPQVJE
X1NVUFBPUlRTX1BSRVNFTlRBVElPTl9TVFlMRV9BTkRfVEVBTV9EQVRBCiAKLSAgICBpZiAoTlNE
YXRhICpzZXJpYWxpemVkQ3VzdG9tRGF0YSA9IFttX3Bhc3RlYm9hcmQgZGF0YUZvclBhc3RlYm9h
cmRUeXBlOkAoUGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpKV0pIHsKKyAgICBpZiAo
TlNEYXRhICpzZXJpYWxpemVkQ3VzdG9tRGF0YSA9IFttX3Bhc3RlYm9hcmQgZGF0YUZvclBhc3Rl
Ym9hcmRUeXBlOkAoUGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpLmNoYXJhY3RlcnMo
KSldKSB7CiAgICAgICAgIGF1dG8gZGF0YSA9IFBhc3RlYm9hcmRDdXN0b21EYXRhOjpmcm9tU2hh
cmVkQnVmZmVyKFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKHNlcmlhbGl6ZWRDdXN0b21EYXRhKS5nZXQo
KSk7CiAgICAgICAgIGlmIChkYXRhLm9yaWdpbigpID09IG9yaWdpbikgewogICAgICAgICAgICAg
Zm9yIChhdXRvJiB0eXBlIDogZGF0YS5vcmRlcmVkVHlwZXMoKSkKQEAgLTY0NSw3ICs2NDUsNyBA
QCBzdGF0aWMgUmV0YWluUHRyPFdlYkl0ZW1Qcm92aWRlclJlZ2lzdHJhdGlvbkluZm9MaXN0PiBj
cmVhdGVJdGVtUHJvdmlkZXJSZWdpc3RyYQogICAgICAgICAgICAgTlNEaWN0aW9uYXJ5ICp0ZWFt
RGF0YURpY3Rpb25hcnkgPSBAeyBAKG9yaWdpbktleUZvclRlYW1EYXRhKSA6IGRhdGEub3JpZ2lu
KCksIEAoY3VzdG9tVHlwZXNLZXlGb3JUZWFtRGF0YSkgOiBjcmVhdGVOU0FycmF5KGRhdGEub3Jk
ZXJlZFR5cGVzKCkpLmdldCgpIH07CiAgICAgICAgICAgICBpZiAoTlNEYXRhICp0ZWFtRGF0YSA9
IFtOU0tleWVkQXJjaGl2ZXIgYXJjaGl2ZWREYXRhV2l0aFJvb3RPYmplY3Q6dGVhbURhdGFEaWN0
aW9uYXJ5IHJlcXVpcmluZ1NlY3VyZUNvZGluZzpZRVMgZXJyb3I6bnVsbHB0cl0pIHsKICAgICAg
ICAgICAgICAgICBbcmVwcmVzZW50YXRpb25zVG9SZWdpc3RlciBzZXRUZWFtRGF0YTp0ZWFtRGF0
YV07Ci0gICAgICAgICAgICAgICAgW3JlcHJlc2VudGF0aW9uc1RvUmVnaXN0ZXIgYWRkRGF0YTpz
ZXJpYWxpemVkU2hhcmVkQnVmZmVyLmdldCgpIGZvclR5cGU6QChQYXN0ZWJvYXJkQ3VzdG9tRGF0
YTo6Y29jb2FUeXBlKCkpXTsKKyAgICAgICAgICAgICAgICBbcmVwcmVzZW50YXRpb25zVG9SZWdp
c3RlciBhZGREYXRhOnNlcmlhbGl6ZWRTaGFyZWRCdWZmZXIuZ2V0KCkgZm9yVHlwZTpAKFBhc3Rl
Ym9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKS5jaGFyYWN0ZXJzKCkpXTsKICAgICAgICAgICAg
IH0KICAgICAgICAgfQogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2lvcy9XZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vaW9zL1dlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQubW0KaW5kZXggZDJhMWRiYzNhODlmOTFh
ZWMyYTMyMjAzODY0YTBjZWYzMTkyMzJkMy4uNzVhNzZmNDM5OTRlZTY1ZTgxMzljODc3NjZjMzNi
NzhhNGEzZDIyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkl0
ZW1Qcm92aWRlclBhc3RlYm9hcmQubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9z
L1dlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQubW0KQEAgLTc2MSw3ICs3NjEsNyBAQCBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogCiAgICAgLy8gRm9yIGNvbXBhdGliaWxpdHkg
d2l0aCBEYXRhVHJhbnNmZXIgQVBJcywgYWRkaXRpb25hbGx5IGxvYWQgd2ViLWV4cG9zZWQgdHlw
ZXMuIFNpbmNlIHRoaXMgaXMgdGhlIG9ubHkgY2hhbmNlIHRvCiAgICAgLy8gZmF1bHQgaW4gYW55
IGRhdGEgYXQgYWxsLCB3ZSBuZWVkIHRvIGxvYWQgdXAgZnJvbnQgYW55IGluZm9ybWF0aW9uIHRo
YXQgdGhlIHBhZ2UgbWF5IGFzayBmb3IgbGF0ZXIgZG93biB0aGUgbGluZS4KLSAgICBOU1N0cmlu
ZyAqY3VzdG9tUGFzdGVib2FyZERhdGFVVEkgPSBAKFBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2Nv
YVR5cGUoKSk7CisgICAgTlNTdHJpbmcgKmN1c3RvbVBhc3RlYm9hcmREYXRhVVRJID0gQChQYXN0
ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkuY2hhcmFjdGVycygpKTsKICAgICBmb3IgKE5T
U3RyaW5nICpyZWdpc3RlcmVkVHlwZUlkZW50aWZpZXIgaW4gcmVnaXN0ZXJlZFR5cGVJZGVudGlm
aWVycykgewogICAgICAgICBpZiAoW3JlZ2lzdGVyZWRUeXBlSWRlbnRpZmllciBpc0VxdWFsVG9T
dHJpbmc6aGlnaGVzdEZpZGVsaXR5Q29udGVudFR5cGVdCiAgICAgICAgICAgICB8fCBbcmVnaXN0
ZXJlZFR5cGVJZGVudGlmaWVyIGlzRXF1YWxUb1N0cmluZzpoaWdoZXN0RmlkZWxpdHlTdXBwb3J0
ZWRUeXBlXQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RhdGFEZXRl
Y3RvckhpZ2hsaWdodC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9EYXRhRGV0ZWN0
b3JIaWdobGlnaHQubW0KaW5kZXggM2YwNjk0MDQ2MDI5NGRjZmU4YTgzMDI4ZDFmZDdkNDY2ZGE4
NTM5NS4uMTVkYjg3YjFkOThiYTM4MWVhOTUxYjFmMzRmOGU2MDA4Mjk4MjVhOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RhdGFEZXRlY3RvckhpZ2hsaWdodC5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRGF0YURldGVjdG9ySGlnaGxpZ2h0Lm1t
CkBAIC0xNTMsNyArMTUzLDcgQEAgdm9pZCBEYXRhRGV0ZWN0b3JIaWdobGlnaHQ6OmZhZGVJbigp
CiAgICAgW2FuaW1hdGlvbiBzZXRUb1ZhbHVlOkAxXTsKIAogICAgIGF1dG8gcGxhdGZvcm1Bbmlt
YXRpb24gPSBQbGF0Zm9ybUNBQW5pbWF0aW9uQ29jb2E6OmNyZWF0ZShhbmltYXRpb24uZ2V0KCkp
OwotICAgIGRvd25jYXN0PEdyYXBoaWNzTGF5ZXJDQT4obGF5ZXIoKSkucGxhdGZvcm1DQUxheWVy
KCktPmFkZEFuaW1hdGlvbkZvcktleSgiRmFkZUhpZ2hsaWdodEluIiwgcGxhdGZvcm1BbmltYXRp
b24uZ2V0KCkpOworICAgIGRvd25jYXN0PEdyYXBoaWNzTGF5ZXJDQT4obGF5ZXIoKSkucGxhdGZv
cm1DQUxheWVyKCktPmFkZEFuaW1hdGlvbkZvcktleSgiRmFkZUhpZ2hsaWdodEluIl9zLCBwbGF0
Zm9ybUFuaW1hdGlvbi5nZXQoKSk7CiB9CiAKIHZvaWQgRGF0YURldGVjdG9ySGlnaGxpZ2h0Ojpm
YWRlT3V0KCkKQEAgLTE3MCw3ICsxNzAsNyBAQCB2b2lkIERhdGFEZXRlY3RvckhpZ2hsaWdodDo6
ZmFkZU91dCgpCiAgICAgfV07CiAKICAgICBhdXRvIHBsYXRmb3JtQW5pbWF0aW9uID0gUGxhdGZv
cm1DQUFuaW1hdGlvbkNvY29hOjpjcmVhdGUoYW5pbWF0aW9uLmdldCgpKTsKLSAgICBkb3duY2Fz
dDxHcmFwaGljc0xheWVyQ0E+KGxheWVyKCkpLnBsYXRmb3JtQ0FMYXllcigpLT5hZGRBbmltYXRp
b25Gb3JLZXkoIkZhZGVIaWdobGlnaHRPdXQiLCBwbGF0Zm9ybUFuaW1hdGlvbi5nZXQoKSk7Cisg
ICAgZG93bmNhc3Q8R3JhcGhpY3NMYXllckNBPihsYXllcigpKS5wbGF0Zm9ybUNBTGF5ZXIoKS0+
YWRkQW5pbWF0aW9uRm9yS2V5KCJGYWRlSGlnaGxpZ2h0T3V0Il9zLCBwbGF0Zm9ybUFuaW1hdGlv
bi5nZXQoKSk7CiAgICAgW0NBVHJhbnNhY3Rpb24gY29tbWl0XTsKIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Bhc3RlYm9hcmRNYWMubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbQppbmRleCBhMmMyNTBhYTJiZWY4ZGU5
NjRiYWYwOTI0MGQ1ZTBlYzQxNTBlZjg0Li5kYzJmNWM1M2M2NTQxZTE5OGIzYTg0ZTZjNWE4MDVk
MWRkZmUwZDhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVi
b2FyZE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1h
Yy5tbQpAQCAtNTAsMTIgKzUwLDEyIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY29uc3Qg
Y2hhciogY29uc3QgV2ViQXJjaGl2ZVBib2FyZFR5cGUgPSAiQXBwbGUgV2ViIEFyY2hpdmUgcGFz
dGVib2FyZCB0eXBlIjsKLWNvbnN0IGNoYXIqIGNvbnN0IFdlYlVSTE5hbWVQYm9hcmRUeXBlID0g
InB1YmxpYy51cmwtbmFtZSI7Ci1jb25zdCBjaGFyKiBjb25zdCBXZWJVUkxzV2l0aFRpdGxlc1Bi
b2FyZFR5cGUgPSAiV2ViVVJMc1dpdGhUaXRsZXNQYm9hcmRUeXBlIjsKK2NvbnN0IEFTQ0lJTGl0
ZXJhbCBXZWJBcmNoaXZlUGJvYXJkVHlwZSA9ICJBcHBsZSBXZWIgQXJjaGl2ZSBwYXN0ZWJvYXJk
IHR5cGUiX3M7Citjb25zdCBBU0NJSUxpdGVyYWwgV2ViVVJMTmFtZVBib2FyZFR5cGUgPSAicHVi
bGljLnVybC1uYW1lIl9zOworY29uc3QgQVNDSUlMaXRlcmFsIFdlYlVSTHNXaXRoVGl0bGVzUGJv
YXJkVHlwZSA9ICJXZWJVUkxzV2l0aFRpdGxlc1Bib2FyZFR5cGUiX3M7CiAKLWNvbnN0IGNoYXIg
V2ViU21hcnRQYXN0ZVBib2FyZFR5cGVbXSA9ICJOZVhUIHNtYXJ0IHBhc3RlIHBhc3RlYm9hcmQg
dHlwZSI7Ci1jb25zdCBjaGFyIFdlYlVSTFBib2FyZFR5cGVbXSA9ICJwdWJsaWMudXJsIjsKK2Nv
bnN0IEFTQ0lJTGl0ZXJhbCBXZWJTbWFydFBhc3RlUGJvYXJkVHlwZSA9ICJOZVhUIHNtYXJ0IHBh
c3RlIHBhc3RlYm9hcmQgdHlwZSJfczsKK2NvbnN0IEFTQ0lJTGl0ZXJhbCBXZWJVUkxQYm9hcmRU
eXBlID0gInB1YmxpYy51cmwiX3M7CiAKIHN0YXRpYyBjb25zdCBWZWN0b3I8U3RyaW5nPiB3cml0
YWJsZVR5cGVzRm9yVVJMKCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbQppbmRleCAzNWZjNmFmNTliNmFmY2I0Zjk1
NTRjMGYyYTg0YTMzNDI4Mzk2ZTVlLi5iN2I2ZTM3NDdiMGZjZDk3OGM4NzRlMDE4MmYyMzU2M2Nl
NWQyZDg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1F
dmVudEZhY3RvcnlNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRm
b3JtRXZlbnRGYWN0b3J5TWFjLm1tCkBAIC01MDIsNyArNTAyLDcgQEAgU3RyaW5nIGtleUlkZW50
aWZpZXJGb3JLZXlFdmVudChOU0V2ZW50KiBldmVudCkKICAgICBOU1N0cmluZyAqcyA9IFtldmVu
dCBjaGFyYWN0ZXJzSWdub3JpbmdNb2RpZmllcnNdOwogICAgIGlmIChbcyBsZW5ndGhdICE9IDEp
IHsKICAgICAgICAgTE9HKEV2ZW50cywgInJlY2VpdmVkIGFuIHVuZXhwZWN0ZWQgbnVtYmVyIG9m
IGNoYXJhY3RlcnMgaW4ga2V5IGV2ZW50OiAldSIsIFtzIGxlbmd0aF0pOwotICAgICAgICByZXR1
cm4gIlVuaWRlbnRpZmllZCI7CisgICAgICAgIHJldHVybiAiVW5pZGVudGlmaWVkIl9zOwogICAg
IH0KICAgICByZXR1cm4ga2V5SWRlbnRpZmllckZvckNoYXJDb2RlKFtzIGNoYXJhY3RlckF0SW5k
ZXg6MF0pOwogfQpAQCAtODA5LDIwICs4MDksMjAgQEAgcHVibGljOgogCiAgICAgICAgIC8vIEFs
d2F5cyB1c2UgMTMgZm9yIEVudGVyL1JldHVybiAtLSB3ZSBkb24ndCB3YW50IHRvIHVzZSBBcHBL
aXQncyBkaWZmZXJlbnQgY2hhcmFjdGVyIGZvciBFbnRlci4KICAgICAgICAgaWYgKG1fd2luZG93
c1ZpcnR1YWxLZXlDb2RlID09IFZLX1JFVFVSTikgewotICAgICAgICAgICAgbV90ZXh0ID0gIlxy
IjsKLSAgICAgICAgICAgIG1fdW5tb2RpZmllZFRleHQgPSAiXHIiOworICAgICAgICAgICAgbV90
ZXh0ID0gIlxyIl9zOworICAgICAgICAgICAgbV91bm1vZGlmaWVkVGV4dCA9IG1fdGV4dDsKICAg
ICAgICAgfQogCiAgICAgICAgIC8vIEFwcEtpdCBzZXRzIHRleHQgdG8gIlx4N0YiIGZvciBiYWNr
c3BhY2UsIGJ1dCB0aGUgY29ycmVjdCBLZXlib2FyZEV2ZW50IGNoYXJhY3RlciBjb2RlIGlzIDgu
CiAgICAgICAgIGlmIChtX3dpbmRvd3NWaXJ0dWFsS2V5Q29kZSA9PSBWS19CQUNLKSB7Ci0gICAg
ICAgICAgICBtX3RleHQgPSAiXHg4IjsKLSAgICAgICAgICAgIG1fdW5tb2RpZmllZFRleHQgPSAi
XHg4IjsKKyAgICAgICAgICAgIG1fdGV4dCA9ICJceDgiX3M7CisgICAgICAgICAgICBtX3VubW9k
aWZpZWRUZXh0ID0gbV90ZXh0OwogICAgICAgICB9CiAKICAgICAgICAgLy8gQWx3YXlzIHVzZSA5
IGZvciBUYWIgLS0gd2UgZG9uJ3Qgd2FudCB0byB1c2UgQXBwS2l0J3MgZGlmZmVyZW50IGNoYXJh
Y3RlciBmb3Igc2hpZnQtdGFiLgogICAgICAgICBpZiAobV93aW5kb3dzVmlydHVhbEtleUNvZGUg
PT0gVktfVEFCKSB7Ci0gICAgICAgICAgICBtX3RleHQgPSAiXHg5IjsKLSAgICAgICAgICAgIG1f
dW5tb2RpZmllZFRleHQgPSAiXHg5IjsKKyAgICAgICAgICAgIG1fdGV4dCA9ICJceDkiX3M7Cisg
ICAgICAgICAgICBtX3VubW9kaWZpZWRUZXh0ID0gbV90ZXh0OwogICAgICAgICB9CiAKICAgICAg
ICAgLy8gTWFjIHNwZWNpZmljLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWFjL1BsYXRmb3JtUGFzdGVib2FyZE1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21h
Yy9QbGF0Zm9ybVBhc3RlYm9hcmRNYWMubW0KaW5kZXggYTdmZTcyNTU0Mzc2NjVlOGI4YTBjNzQ1
M2QzMDQ3NDlkNDU2MmY2Ny4uNDZkYjU3ZGVlYTlkNzI2OWFlYjRkODc3ZDE5MTdkNWQ2MzAzZGEz
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtUGFzdGVi
b2FyZE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1QYXN0
ZWJvYXJkTWFjLm1tCkBAIC0yMTcsNyArMjE3LDcgQEAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJB
VElPTlNfRU5ECiBWZWN0b3I8U3RyaW5nPiBQbGF0Zm9ybVBhc3RlYm9hcmQ6OnR5cGVzU2FmZUZv
ckRPTVRvUmVhZEFuZFdyaXRlKGNvbnN0IFN0cmluZyYgb3JpZ2luKSBjb25zdAogewogICAgIExp
c3RIYXNoU2V0PFN0cmluZz4gZG9tUGFzdGVib2FyZFR5cGVzOwotICAgIGlmIChOU0RhdGEgKnNl
cmlhbGl6ZWRDdXN0b21EYXRhID0gW21fcGFzdGVib2FyZCBkYXRhRm9yVHlwZTpAKFBhc3RlYm9h
cmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKSldKSB7CisgICAgaWYgKE5TRGF0YSAqc2VyaWFsaXpl
ZEN1c3RvbURhdGEgPSBbbV9wYXN0ZWJvYXJkIGRhdGFGb3JUeXBlOkAoUGFzdGVib2FyZEN1c3Rv
bURhdGE6OmNvY29hVHlwZSgpLmNoYXJhY3RlcnMoKSldKSB7CiAgICAgICAgIGF1dG8gZGF0YSA9
IFBhc3RlYm9hcmRDdXN0b21EYXRhOjpmcm9tU2hhcmVkQnVmZmVyKFNoYXJlZEJ1ZmZlcjo6Y3Jl
YXRlKHNlcmlhbGl6ZWRDdXN0b21EYXRhKS5nZXQoKSk7CiAgICAgICAgIGlmIChkYXRhLm9yaWdp
bigpID09IG9yaWdpbikgewogICAgICAgICAgICAgZm9yIChhdXRvJiB0eXBlIDogZGF0YS5vcmRl
cmVkVHlwZXMoKSkKQEAgLTIyNyw3ICsyMjcsNyBAQCBWZWN0b3I8U3RyaW5nPiBQbGF0Zm9ybVBh
c3RlYm9hcmQ6OnR5cGVzU2FmZUZvckRPTVRvUmVhZEFuZFdyaXRlKGNvbnN0IFN0cmluZyYgbwog
CiAgICAgTlNBcnJheTxOU1N0cmluZyAqPiAqYWxsVHlwZXMgPSBbbV9wYXN0ZWJvYXJkIHR5cGVz
XTsKICAgICBmb3IgKE5TU3RyaW5nICp0eXBlIGluIGFsbFR5cGVzKSB7Ci0gICAgICAgIGlmIChb
dHlwZSBpc0VxdWFsVG9TdHJpbmc6QChQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkp
XSkKKyAgICAgICAgaWYgKFt0eXBlIGlzRXF1YWxUb1N0cmluZzpAKFBhc3RlYm9hcmRDdXN0b21E
YXRhOjpjb2NvYVR5cGUoKS5jaGFyYWN0ZXJzKCkpXSkKICAgICAgICAgICAgIGNvbnRpbnVlOwog
CiAgICAgICAgIGlmIChQYXN0ZWJvYXJkOjppc1NhZmVUeXBlRm9yRE9NVG9SZWFkQW5kV3JpdGUo
dHlwZSkpCkBAIC0yNTQsNyArMjU0LDcgQEAgaW50NjRfdCBQbGF0Zm9ybVBhc3RlYm9hcmQ6Ondy
aXRlKGNvbnN0IFBhc3RlYm9hcmRDdXN0b21EYXRhJiBkYXRhKQogCiAgICAgYm9vbCBzaG91bGRX
cml0ZUN1c3RvbURhdGEgPSBkYXRhLmhhc1NhbWVPcmlnaW5DdXN0b21EYXRhKCkgfHwgIWRhdGEu
b3JpZ2luKCkuaXNFbXB0eSgpOwogICAgIGlmIChzaG91bGRXcml0ZUN1c3RvbURhdGEpCi0gICAg
ICAgIFt0eXBlcyBhZGRPYmplY3Q6QChQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkp
XTsKKyAgICAgICAgW3R5cGVzIGFkZE9iamVjdDpAKFBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2Nv
YVR5cGUoKS5jaGFyYWN0ZXJzKCkpXTsKIAogICAgIFttX3Bhc3RlYm9hcmQgZGVjbGFyZVR5cGVz
OnR5cGVzIG93bmVyOm5pbF07CiAKQEAgLTI3NSw3ICsyNzUsNyBAQCBpbnQ2NF90IFBsYXRmb3Jt
UGFzdGVib2FyZDo6d3JpdGUoY29uc3QgUGFzdGVib2FyZEN1c3RvbURhdGEmIGRhdGEpCiAKICAg
ICBpZiAoc2hvdWxkV3JpdGVDdXN0b21EYXRhKSB7CiAgICAgICAgIGlmIChhdXRvIHNlcmlhbGl6
ZWRDdXN0b21EYXRhID0gZGF0YS5jcmVhdGVTaGFyZWRCdWZmZXIoKS0+Y3JlYXRlTlNEYXRhKCkp
Ci0gICAgICAgICAgICBbbV9wYXN0ZWJvYXJkIHNldERhdGE6c2VyaWFsaXplZEN1c3RvbURhdGEu
Z2V0KCkgZm9yVHlwZTpAKFBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKSldOworICAg
ICAgICAgICAgW21fcGFzdGVib2FyZCBzZXREYXRhOnNlcmlhbGl6ZWRDdXN0b21EYXRhLmdldCgp
IGZvclR5cGU6QChQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkuY2hhcmFjdGVycygp
KV07CiAgICAgfQogCiAgICAgcmV0dXJuIGNoYW5nZUNvdW50KCk7CkBAIC00OTksNyArNDk5LDcg
QEAgc3RhdGljIFJldGFpblB0cjxOU1Bhc3RlYm9hcmRJdGVtPiBjcmVhdGVQYXN0ZWJvYXJkSXRl
bShjb25zdCBQYXN0ZWJvYXJkQ3VzdG9tRGEKIAogICAgIGlmIChkYXRhLmhhc1NhbWVPcmlnaW5D
dXN0b21EYXRhKCkgfHwgIWRhdGEub3JpZ2luKCkuaXNFbXB0eSgpKSB7CiAgICAgICAgIGlmIChh
dXRvIHNlcmlhbGl6ZWRDdXN0b21EYXRhID0gZGF0YS5jcmVhdGVTaGFyZWRCdWZmZXIoKS0+Y3Jl
YXRlTlNEYXRhKCkpCi0gICAgICAgICAgICBbaXRlbSBzZXREYXRhOnNlcmlhbGl6ZWRDdXN0b21E
YXRhLmdldCgpIGZvclR5cGU6QChQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkpXTsK
KyAgICAgICAgICAgIFtpdGVtIHNldERhdGE6c2VyaWFsaXplZEN1c3RvbURhdGEuZ2V0KCkgZm9y
VHlwZTpAKFBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKS5jaGFyYWN0ZXJzKCkpXTsK
ICAgICB9CiAKICAgICBkYXRhLmZvckVhY2hQbGF0Zm9ybVN0cmluZ09yQnVmZmVyKFsmXSAoYXV0
byYgdHlwZSwgYXV0byYgc3RyaW5nT3JCdWZmZXIpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21hYy9TdHJpbmdVdGlsaXRpZXMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvU3RyaW5nVXRpbGl0aWVzLm1tCmluZGV4IDdjZDFiZDgwYWU5ZTMzZTc1NmY2NTkx
MjI0MGY3ZWQ2Y2MzM2M1YjUuLjkyYmU2NjdlNjNlYjMxZjQxZDc3OWE5NjYyZjFmYjc1NmY0NjU0
M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TdHJpbmdVdGlsaXRp
ZXMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1N0cmluZ1V0aWxpdGllcy5t
bQpAQCAtMzMsNyArMzMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgCiBzdGF0aWMgU3Ry
aW5nIHdpbGRjYXJkUmVnZXhQYXR0ZXJuU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKQogewot
ICAgIFN0cmluZyBtZXRhQ2hhcmFjdGVycyA9ICIufCs/KClbXXt9XiQiOworICAgIFN0cmluZyBt
ZXRhQ2hhcmFjdGVycyA9ICIufCs/KClbXXt9XiQiX3M7CiAgICAgVUNoYXIgZXNjYXBlQ2hhcmFj
dGVyID0gJ1xcJzsKICAgICBVQ2hhciB3aWxkY2FyZENoYXJhY3RlciA9ICcqJzsKICAgICAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9UaHJlYWRDaGVjay5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9UaHJlYWRDaGVjay5tbQppbmRleCBmMTUxMDg4Y2U5
MjVhNTA2ZWI0NjhiMjIyMWZhZjMyNzUwMzJiYTQyLi5iYmQ3MzQ0MWUwNTBiOTY4NzU3YTRmNWE2
YWQxMzQ2NmIxYWQwNmQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
VGhyZWFkQ2hlY2subW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1RocmVhZENo
ZWNrLm1tCkBAIC0xMDYsNyArMTA2LDcgQEAgdm9pZCBXZWJDb3JlUmVwb3J0VGhyZWFkVmlvbGF0
aW9uKGNvbnN0IGNoYXIqIGZ1bmN0aW9uLCBXZWJDb3JlOjpUaHJlYWRWaW9sYXRpb24KICAgICAg
ICAgY2FzZSBOb1RocmVhZENoZWNrOgogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2Ug
TG9nT25GaXJzdFRocmVhZFZpb2xhdGlvbjoKLSAgICAgICAgICAgIGlmIChsb2dnZWRGdW5jdGlv
bnMuZ2V0KCkuYWRkKGZ1bmN0aW9uKS5pc05ld0VudHJ5KSB7CisgICAgICAgICAgICBpZiAobG9n
Z2VkRnVuY3Rpb25zLmdldCgpLmFkZChTdHJpbmcgeyBmdW5jdGlvbiB9KS5pc05ld0VudHJ5KSB7
CiAgICAgICAgICAgICAgICAgTlNMb2coQCJXZWJLaXQgVGhyZWFkaW5nIFZpb2xhdGlvbiAtICVz
IGNhbGxlZCBmcm9tIHNlY29uZGFyeSB0aHJlYWQiLCBmdW5jdGlvbik7CiAgICAgICAgICAgICAg
ICAgTlNMb2coQCJBZGRpdGlvbmFsIHRocmVhZGluZyB2aW9sYXRpb25zIGZvciB0aGlzIGZ1bmN0
aW9uIHdpbGwgbm90IGJlIGxvZ2dlZC4iKTsKICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9Vc2VyQWdlbnRNYWMubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvVXNlckFnZW50TWFjLm1tCmluZGV4IGU2MmE5N2YxOTlhYWNjM2NhNjky
ZDhkYTRiMjA5ZDI5OTRlM2EwZDEuLmVkYzA3OWY0ZTAyNGFmMzAxZTQ1ZmFhMTA5MzVhOGRiM2Ey
YjJjNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9Vc2VyQWdlbnRN
YWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1VzZXJBZ2VudE1hYy5tbQpA
QCAtMzgsNyArMzgsNyBAQCBTdHJpbmcgc3RhbmRhcmRVc2VyQWdlbnRXaXRoQXBwbGljYXRpb25O
YW1lKGNvbnN0IFN0cmluZyYgYXBwbGljYXRpb25OYW1lLCBjb25zdAogICAgIGlmICghb3NWZXJz
aW9uLnN0YXJ0c1dpdGgoIjEwIikpCiAgICAgICAgIG9zVmVyc2lvbiA9ICIxMF8xNV83Il9zOwog
ICAgIAotICAgIFN0cmluZyBhcHBOYW1lU3VmZml4ID0gYXBwbGljYXRpb25OYW1lLmlzRW1wdHko
KSA/ICIiIDogbWFrZVN0cmluZygiICIsIGFwcGxpY2F0aW9uTmFtZSk7CisgICAgU3RyaW5nIGFw
cE5hbWVTdWZmaXggPSBhcHBsaWNhdGlvbk5hbWUuaXNFbXB0eSgpID8gZW1wdHlTdHJpbmcoKSA6
IG1ha2VTdHJpbmcoIiAiLCBhcHBsaWNhdGlvbk5hbWUpOwogCiAgICAgcmV0dXJuIG1ha2VTdHJp
bmcoIk1vemlsbGEvNS4wIChNYWNpbnRvc2g7IEludGVsIE1hYyBPUyBYICIsIG9zVmVyc2lvbiwg
IikgQXBwbGVXZWJLaXQvNjA1LjEuMTUgKEtIVE1MLCBsaWtlIEdlY2tvKSIsIGFwcE5hbWVTdWZm
aXgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNv
dXJjZUVycm9yQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291
cmNlRXJyb3JCYXNlLmNwcAppbmRleCA2N2QyZWFjMDhmYTdiNGJmMDY0Y2NkZmFiYzI0OWZjYzQ2
MjUxY2ZkLi5kMDE5M2FjNmM5Yjk3NGFhMmJmMWQ3MTk3OWQzZTcwMTViYzMwZDlkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlRXJyb3JCYXNlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlRXJyb3JCYXNl
LmNwcApAQCAtMzIsOCArMzIsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNvbnN0IGNo
YXIqIGNvbnN0IGVycm9yRG9tYWluV2ViS2l0SW50ZXJuYWwgPSAiV2ViS2l0SW50ZXJuYWwiOwot
Y29uc3QgY2hhciogY29uc3QgZXJyb3JEb21haW5XZWJLaXRTZXJ2aWNlV29ya2VyID0gIldlYktp
dFNlcnZpY2VXb3JrZXIiOworY29uc3QgQVNDSUlMaXRlcmFsIGVycm9yRG9tYWluV2ViS2l0SW50
ZXJuYWwgPSAiV2ViS2l0SW50ZXJuYWwiX3M7Citjb25zdCBBU0NJSUxpdGVyYWwgZXJyb3JEb21h
aW5XZWJLaXRTZXJ2aWNlV29ya2VyID0gIldlYktpdFNlcnZpY2VXb3JrZXIiX3M7CiAKIGlubGlu
ZSBjb25zdCBSZXNvdXJjZUVycm9yJiBSZXNvdXJjZUVycm9yQmFzZTo6YXNSZXNvdXJjZUVycm9y
KCkgY29uc3QKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
UmVzb3VyY2VFcnJvckJhc2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVz
b3VyY2VFcnJvckJhc2UuaAppbmRleCA0ODhkZWJjMTQzZDYzZjQ1N2U4ZDM4ZTljNmRjMjNhOWQy
MGJhODE2Li5lMTIxYzUxNGY0ODk0MjZhMzQzZDM0NDg5MGI5NjYzMDI1MGNkN2NhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlRXJyb3JCYXNlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUVycm9yQmFzZS5o
CkBAIC0zNCw4ICszNCw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgUmVzb3VyY2VF
cnJvcjsKIAotV0VCQ09SRV9FWFBPUlQgZXh0ZXJuIGNvbnN0IGNoYXIqIGNvbnN0IGVycm9yRG9t
YWluV2ViS2l0SW50ZXJuYWw7IC8vIFVzZWQgZm9yIGVycm9ycyB0aGF0IHdvbid0IGJlIGV4cG9z
ZWQgdG8gY2xpZW50cy4KLVdFQkNPUkVfRVhQT1JUIGV4dGVybiBjb25zdCBjaGFyKiBjb25zdCBl
cnJvckRvbWFpbldlYktpdFNlcnZpY2VXb3JrZXI7IC8vIFVzZWQgZm9yIGVycm9ycyB0aGF0IGhh
cHBlbiB3aGVuIGxvYWRpbmcgYSByZXNvdXJjZSBmcm9tIGEgc2VydmljZSB3b3JrZXIuCitXRUJD
T1JFX0VYUE9SVCBleHRlcm4gY29uc3QgQVNDSUlMaXRlcmFsIGVycm9yRG9tYWluV2ViS2l0SW50
ZXJuYWw7IC8vIFVzZWQgZm9yIGVycm9ycyB0aGF0IHdvbid0IGJlIGV4cG9zZWQgdG8gY2xpZW50
cy4KK1dFQkNPUkVfRVhQT1JUIGV4dGVybiBjb25zdCBBU0NJSUxpdGVyYWwgZXJyb3JEb21haW5X
ZWJLaXRTZXJ2aWNlV29ya2VyOyAvLyBVc2VkIGZvciBlcnJvcnMgdGhhdCBoYXBwZW4gd2hlbiBs
b2FkaW5nIGEgcmVzb3VyY2UgZnJvbSBhIHNlcnZpY2Ugd29ya2VyLgogCiBjbGFzcyBSZXNvdXJj
ZUVycm9yQmFzZSB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1JhbmdlUmVzcG9uc2VHZW5lcmF0
b3IubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1JhbmdlUmVzcG9u
c2VHZW5lcmF0b3IubW0KaW5kZXggMTk4MTRhMzY1YzlmNjYxYTIxYzIyOWFkYmQwNDYxMWMyMDk0
N2U2NC4uMDRlZmRiNGRmZjFkMTY0MWMzZDYwNWFmMzAxNGQxYTEwYzI0NjQzZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9SYW5nZVJlc3BvbnNlR2Vu
ZXJhdG9yLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvUmFu
Z2VSZXNwb25zZUdlbmVyYXRvci5tbQpAQCAtNzgsNyArNzgsNyBAQCBzdGF0aWMgUmVzb3VyY2VS
ZXNwb25zZSBzeW50aGVzaXplZFJlc3BvbnNlRm9yUmFuZ2UoY29uc3QgUmVzb3VyY2VSZXNwb25z
ZSYgb3JpZwogICAgIGF1dG8gYmVnaW4gPSBwYXJzZWRSZXF1ZXN0UmFuZ2UuYmVnaW47CiAgICAg
YXV0byBlbmQgPSBwYXJzZWRSZXF1ZXN0UmFuZ2UuZW5kOwogCi0gICAgYXV0byBuZXdDb250ZW50
UmFuZ2UgPSBtYWtlU3RyaW5nKCJieXRlcyAiLCBiZWdpbiwgIi0iLCBlbmQsICIvIiwgKHRvdGFs
Q29udGVudExlbmd0aCA/IG1ha2VTdHJpbmcoKnRvdGFsQ29udGVudExlbmd0aCkgOiAiKiIpKTsK
KyAgICBhdXRvIG5ld0NvbnRlbnRSYW5nZSA9IG1ha2VTdHJpbmcoImJ5dGVzICIsIGJlZ2luLCAi
LSIsIGVuZCwgIi8iLCAodG90YWxDb250ZW50TGVuZ3RoID8gbWFrZVN0cmluZygqdG90YWxDb250
ZW50TGVuZ3RoKSA6ICIqIl9zKSk7CiAgICAgYXV0byBuZXdDb250ZW50TGVuZ3RoID0gbWFrZVN0
cmluZyhlbmQgLSBiZWdpbiArIDEpOwogCiAgICAgUmVzb3VyY2VSZXNwb25zZSBuZXdSZXNwb25z
ZSA9IG9yaWdpbmFsUmVzcG9uc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGhlbWVNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhl
bWVNYWMubW0KaW5kZXggMDEwZWNiYWVkODdhNzNhNDIwYWZiOTdlOGU4MGZlYTYzNzlmZWQzZS4u
OGU5ZDQ2YTFiMzRjYWIwNDdmYmEzNDNkMWI1N2EyYzViMmRjMTA4NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQpAQCAtMjYxOSw3ICsyNjE5LDcgQEAgQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgICAgICByZXR1cm4gaWNvbjsK
ICAgICB9CiAKLSAgICByZXR1cm4gSWNvbjo6Y3JlYXRlSWNvbkZvclVUSSgicHVibGljLmRhdGEi
KTsKKyAgICByZXR1cm4gSWNvbjo6Y3JlYXRlSWNvbkZvclVUSSgicHVibGljLmRhdGEiX3MpOwog
fQogCiBSZXRhaW5QdHI8TlNJbWFnZT4gUmVuZGVyVGhlbWVNYWM6Omljb25Gb3JBdHRhY2htZW50
KGNvbnN0IFN0cmluZyYgZmlsZU5hbWUsIGNvbnN0IFN0cmluZyYgYXR0YWNobWVudFR5cGUsIGNv
bnN0IFN0cmluZyYgdGl0bGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmNwcAppbmRleCA5MmJjNmE4MTJhMTE4YTUxOWYw
YjQ2Yzk0Zjk3MmUzMmIzYTVlZTU2Li40YzUyYzY3MWJkYmNlNjRjOTNlY2MyNGY1ODMwMTUyY2Zm
MDUwNmZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVy
U3R5bGVDb25zdGFudHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9S
ZW5kZXJTdHlsZUNvbnN0YW50cy5jcHAKQEAgLTY3MSw3ICs2NzEsNyBAQCBUZXh0U3RyZWFtJiBv
cGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBMaXN0U3R5bGVQb3NpdGlvbiBwb3NpdGlvbikKIAog
VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgTGlzdFN0eWxlVHlwZSBzdHls
ZVR5cGUpCiB7Ci0gICAgcmV0dXJuIHRzIDw8IGdldFZhbHVlTmFtZSh0b0NTU1ZhbHVlSUQoc3R5
bGVUeXBlKSk7CisgICAgcmV0dXJuIHRzIDw8IGdldFZhbHVlTmFtZSh0b0NTU1ZhbHVlSUQoc3R5
bGVUeXBlKSkuY2hhcmFjdGVycygpOwogfQogCiBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRT
dHJlYW0mIHRzLCBNYXJxdWVlQmVoYXZpb3IgbWFycXVlZUJlaGF2aW9yKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdGaWx0ZXJFbGVtZW50LmgKaW5kZXggMWFjZDJhZTk1YTE1OTRlOWYzMzc5ZDJlOTM5Zjkx
NmRkMTUwNDZmZC4uMDBjNzYxMGExMGNlYmE0NTM0MjRkYTc5NDA5NmUxYTZmZDMzNTI5NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyRWxlbWVudC5oCkBAIC02OCwxMCArNjgsMTAgQEAgcHJp
dmF0ZToKICAgICBQcm9wZXJ0eVJlZ2lzdHJ5IG1fcHJvcGVydHlSZWdpc3RyeSB7ICp0aGlzIH07
CiAgICAgUmVmPFNWR0FuaW1hdGVkRW51bWVyYXRpb24+IG1fZmlsdGVyVW5pdHMgeyBTVkdBbmlt
YXRlZEVudW1lcmF0aW9uOjpjcmVhdGUodGhpcywgU1ZHVW5pdFR5cGVzOjpTVkdfVU5JVF9UWVBF
X09CSkVDVEJPVU5ESU5HQk9YKSB9OwogICAgIFJlZjxTVkdBbmltYXRlZEVudW1lcmF0aW9uPiBt
X3ByaW1pdGl2ZVVuaXRzIHsgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbjo6Y3JlYXRlKHRoaXMsIFNW
R1VuaXRUeXBlczo6U1ZHX1VOSVRfVFlQRV9VU0VSU1BBQ0VPTlVTRSkgfTsKLSAgICBSZWY8U1ZH
QW5pbWF0ZWRMZW5ndGg+IG1feCB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZH
TGVuZ3RoTW9kZTo6V2lkdGgsICItMTAlIikgfTsKLSAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+
IG1feSB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6SGVp
Z2h0LCAiLTEwJSIpIH07Ci0gICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX3dpZHRoIHsgU1ZH
QW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpXaWR0aCwgIjEyMCUi
KSB9OwotICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV9oZWlnaHQgeyBTVkdBbmltYXRlZExl
bmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OkhlaWdodCwgIjEyMCUiKSB9OworICAg
IFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV94IHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0
aGlzLCBTVkdMZW5ndGhNb2RlOjpXaWR0aCwgIi0xMCUiX3MpIH07CisgICAgUmVmPFNWR0FuaW1h
dGVkTGVuZ3RoPiBtX3kgeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0
aE1vZGU6OkhlaWdodCwgIi0xMCUiX3MpIH07CisgICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBt
X3dpZHRoIHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpX
aWR0aCwgIjEyMCUiX3MpIH07CisgICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX2hlaWdodCB7
IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6SGVpZ2h0LCAi
MTIwJSJfcykgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMuaCBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMu
aAppbmRleCAzMTAzY2M2YWMyMzNlMGZkM2IyZmIxZTk3OTA0OWEyOGI3YjZmOGJiLi43OGUyYWEy
YzFlODE0ZTY5OGVkNDQ0ZWVjNzdmOWIyMDc2ZTNmOTU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5oCkBA
IC03NSwxMCArNzUsMTAgQEAgcHJpdmF0ZToKIAogICAgIC8vIFNwZWM6IElmIHRoZSB4L3kgYXR0
cmlidXRlIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBlZmZlY3QgaXMgYXMgaWYgYSB2YWx1ZSBvZiAi
MCUiIHdlcmUgc3BlY2lmaWVkLgogICAgIC8vIFNwZWM6IElmIHRoZSB3aWR0aC9oZWlnaHQgYXR0
cmlidXRlIGlzIG5vdCBzcGVjaWZpZWQsIHRoZSBlZmZlY3QgaXMgYXMgaWYgYSB2YWx1ZSBvZiAi
MTAwJSIgd2VyZSBzcGVjaWZpZWQuCi0gICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX3ggeyBT
VkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OldpZHRoLCAiMCUi
KSB9OwotICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV95IHsgU1ZHQW5pbWF0ZWRMZW5ndGg6
OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpIZWlnaHQsICIwJSIpIH07Ci0gICAgUmVmPFNW
R0FuaW1hdGVkTGVuZ3RoPiBtX3dpZHRoIHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlz
LCBTVkdMZW5ndGhNb2RlOjpXaWR0aCwgIjEwMCUiKSB9OwotICAgIFJlZjxTVkdBbmltYXRlZExl
bmd0aD4gbV9oZWlnaHQgeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0
aE1vZGU6OkhlaWdodCwgIjEwMCUiKSB9OworICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV94
IHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpXaWR0aCwg
IjAlIl9zKSB9OworICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV95IHsgU1ZHQW5pbWF0ZWRM
ZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpIZWlnaHQsICIwJSJfcykgfTsKKyAg
ICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1fd2lkdGggeyBTVkdBbmltYXRlZExlbmd0aDo6Y3Jl
YXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OldpZHRoLCAiMTAwJSJfcykgfTsKKyAgICBSZWY8U1ZH
QW5pbWF0ZWRMZW5ndGg+IG1faGVpZ2h0IHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlz
LCBTVkdMZW5ndGhNb2RlOjpIZWlnaHQsICIxMDAlIl9zKSB9OwogICAgIFJlZjxTVkdBbmltYXRl
ZFN0cmluZz4gbV9yZXN1bHQgeyBTVkdBbmltYXRlZFN0cmluZzo6Y3JlYXRlKHRoaXMpIH07CiB9
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmgKaW5k
ZXggYWVmZTY0Y2UxNDY3Njc4NGMwZDFhOTI0Y2UzZGZlYWQ3YmFjYzM3My4uZGYyMGJkMDU5ZmFj
NzNiMjNkNzY5ZTg5YzkyZGVmMGZiZWM5NzhhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuaApAQCAtNjEsNyArNjEsNyBAQCBwcml2YXRlOgogICAg
IFByb3BlcnR5UmVnaXN0cnkgbV9wcm9wZXJ0eVJlZ2lzdHJ5IHsgKnRoaXMgfTsKICAgICBSZWY8
U1ZHQW5pbWF0ZWRMZW5ndGg+IG1feDEgeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMs
IFNWR0xlbmd0aE1vZGU6OldpZHRoKSB9OwogICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV95
MSB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6SGVpZ2h0
KSB9OwotICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV94MiB7IFNWR0FuaW1hdGVkTGVuZ3Ro
OjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6V2lkdGgsICIxMDAlIikgfTsKKyAgICBSZWY8
U1ZHQW5pbWF0ZWRMZW5ndGg+IG1feDIgeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMs
IFNWR0xlbmd0aE1vZGU6OldpZHRoLCAiMTAwJSJfcykgfTsKICAgICBSZWY8U1ZHQW5pbWF0ZWRM
ZW5ndGg+IG1feTIgeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1v
ZGU6OkhlaWdodCkgfTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdN
YXJrZXJFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5oCmlu
ZGV4IDVhMTM2ZTNlZjQ1YTU3YTUxYzkyZmY3NjU5YmE2YWY3NjJmMmFlOTMuLmUxZjdlZTlhYzQ3
MWFhNGY2ODBmYjU0YzI0M2FmZDA3NzM3Mjc1ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdNYXJrZXJFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtl
ckVsZW1lbnQuaApAQCAtODksOCArODksOCBAQCBwcml2YXRlOgogICAgIFByb3BlcnR5UmVnaXN0
cnkgbV9wcm9wZXJ0eVJlZ2lzdHJ5IHsgKnRoaXMgfTsKICAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5n
dGg+IG1fcmVmWCB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9k
ZTo6V2lkdGgpIH07CiAgICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX3JlZlkgeyBTVkdBbmlt
YXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OkhlaWdodCkgfTsKLSAgICBS
ZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1fbWFya2VyV2lkdGggeyBTVkdBbmltYXRlZExlbmd0aDo6
Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OldpZHRoLCAiMyIpIH07Ci0gICAgUmVmPFNWR0Fu
aW1hdGVkTGVuZ3RoPiBtX21hcmtlckhlaWdodCB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUo
dGhpcywgU1ZHTGVuZ3RoTW9kZTo6SGVpZ2h0LCAiMyIpIH07CisgICAgUmVmPFNWR0FuaW1hdGVk
TGVuZ3RoPiBtX21hcmtlcldpZHRoIHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBT
VkdMZW5ndGhNb2RlOjpXaWR0aCwgIjMiX3MpIH07CisgICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3Ro
PiBtX21hcmtlckhlaWdodCB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVu
Z3RoTW9kZTo6SGVpZ2h0LCAiMyJfcykgfTsKICAgICBSZWY8U1ZHQW5pbWF0ZWRFbnVtZXJhdGlv
bj4gbV9tYXJrZXJVbml0cyB7IFNWR0FuaW1hdGVkRW51bWVyYXRpb246OmNyZWF0ZSh0aGlzLCBT
VkdNYXJrZXJVbml0c1N0cm9rZVdpZHRoKSB9OwogICAgIFJlZjxTVkdBbmltYXRlZEFuZ2xlPiBt
X29yaWVudEFuZ2xlIHsgU1ZHQW5pbWF0ZWRBbmdsZTo6Y3JlYXRlKHRoaXMpIH07CiAgICAgUmVm
PFNWR0FuaW1hdGVkT3JpZW50VHlwZT4gbV9vcmllbnRUeXBlIHsgU1ZHQW5pbWF0ZWRPcmllbnRU
eXBlOjpjcmVhdGUodGhpcywgU1ZHTWFya2VyT3JpZW50QW5nbGUpIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFza0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdNYXNrRWxlbWVudC5oCmluZGV4IDQ5MGRjMjIxYWIyNDRhM2VmNWZkZGQyODVkZjM3YTZlNDYw
MDM0MmQuLmRiZDA0MmQwZDNhZjgxMjBlMDBmNTk5Yjk1YjAxZDExMzhjZTIxZGYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5oCkBAIC02MywxMCArNjMsMTAgQEAgcHJpdmF0ZToKICAg
ICBib29sIHNlbGZIYXNSZWxhdGl2ZUxlbmd0aHMoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVl
OyB9CiAKICAgICBQcm9wZXJ0eVJlZ2lzdHJ5IG1fcHJvcGVydHlSZWdpc3RyeSB7ICp0aGlzIH07
Ci0gICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX3ggeyBTVkdBbmltYXRlZExlbmd0aDo6Y3Jl
YXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OldpZHRoLCAiLTEwJSIpIH07Ci0gICAgUmVmPFNWR0Fu
aW1hdGVkTGVuZ3RoPiBtX3kgeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xl
bmd0aE1vZGU6OkhlaWdodCwgIi0xMCUiKSB9OwotICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4g
bV93aWR0aCB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6
V2lkdGgsICIxMjAlIikgfTsKLSAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1faGVpZ2h0IHsg
U1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpIZWlnaHQsICIx
MjAlIikgfTsKKyAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1feCB7IFNWR0FuaW1hdGVkTGVu
Z3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6V2lkdGgsICItMTAlIl9zKSB9OworICAg
IFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV95IHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0
aGlzLCBTVkdMZW5ndGhNb2RlOjpIZWlnaHQsICItMTAlIl9zKSB9OworICAgIFJlZjxTVkdBbmlt
YXRlZExlbmd0aD4gbV93aWR0aCB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZH
TGVuZ3RoTW9kZTo6V2lkdGgsICIxMjAlIl9zKSB9OworICAgIFJlZjxTVkdBbmltYXRlZExlbmd0
aD4gbV9oZWlnaHQgeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1v
ZGU6OkhlaWdodCwgIjEyMCUiX3MpIH07CiAgICAgUmVmPFNWR0FuaW1hdGVkRW51bWVyYXRpb24+
IG1fbWFza1VuaXRzIHsgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbjo6Y3JlYXRlKHRoaXMsIFNWR1Vu
aXRUeXBlczo6U1ZHX1VOSVRfVFlQRV9PQkpFQ1RCT1VORElOR0JPWCkgfTsKICAgICBSZWY8U1ZH
QW5pbWF0ZWRFbnVtZXJhdGlvbj4gbV9tYXNrQ29udGVudFVuaXRzIHsgU1ZHQW5pbWF0ZWRFbnVt
ZXJhdGlvbjo6Y3JlYXRlKHRoaXMsIFNWR1VuaXRUeXBlczo6U1ZHX1VOSVRfVFlQRV9VU0VSU1BB
Q0VPTlVTRSkgfTsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNl
Z0ltcGwuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnSW1wbC5oCmluZGV4IGE2MzYx
NTQyOTRmZWEzYTViMDViZjlmZThmMmY5MGMxOGVhMTA4MzQuLjM0ZjIzYzUxNWY5NGI5MzkxNzBm
M2E1Y2U5YWU4ZmI1Mjg4NjYxOTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQ
YXRoU2VnSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnSW1wbC5oCkBA
IC0zNSw3ICszNSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdXNpbmcgU1ZHUGF0aFNlZzo6
U1ZHUGF0aFNlZzsKICAgICB1bnNpZ25lZCBzaG9ydCBwYXRoU2VnVHlwZSgpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIFBBVEhTRUdfQ0xPU0VQQVRIOyB9Ci0gICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNM
ZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiWiI7IH0KKyAgICBTdHJpbmcgcGF0aFNlZ1R5
cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJaIl9zOyB9CiAgICAgUmVmPFNWR1Bh
dGhTZWc+IGNsb25lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBTVkdQYXRo
U2VnQ2xvc2VQYXRoKCkpOyB9CiB9OwogCkBAIC00NSw3ICs0NSw3IEBAIHB1YmxpYzoKIHByaXZh
dGU6CiAgICAgdXNpbmcgU1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWw6OlNWR1BhdGhTZWdMaW5l
dG9Ib3Jpem9udGFsOwogICAgIHVuc2lnbmVkIHNob3J0IHBhdGhTZWdUeXBlKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gUEFUSFNFR19MSU5FVE9fSE9SSVpPTlRBTF9BQlM7IH0KLSAgICBTdHJpbmcg
cGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJIIjsgfQorICAgIFN0
cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIkgiX3M7IH0K
ICAgICBSZWY8U1ZHUGF0aFNlZz4gY2xvbmUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBTVkdQYXRo
U2VnVmFsdWU6OmNsb25lPFNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsQWJzPigpOyB9CiB9Owog
CkBAIC01NSw3ICs1NSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdXNpbmcgU1ZHUGF0aFNl
Z0xpbmV0b0hvcml6b250YWw6OlNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsOwogICAgIHVuc2ln
bmVkIHNob3J0IHBhdGhTZWdUeXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gUEFUSFNFR19MSU5F
VE9fSE9SSVpPTlRBTF9SRUw7IH0KLSAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuICJoIjsgfQorICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVy
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gImgiX3M7IH0KICAgICBSZWY8U1ZHUGF0aFNlZz4gY2xv
bmUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBTVkdQYXRoU2VnVmFsdWU6OmNsb25lPFNWR1BhdGhT
ZWdMaW5ldG9Ib3Jpem9udGFsUmVsPigpOyB9CiB9OwogCkBAIC02NSw3ICs2NSw3IEBAIHB1Ymxp
YzoKIHByaXZhdGU6CiAgICAgdXNpbmcgU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsOjpTVkdQYXRo
U2VnTGluZXRvVmVydGljYWw7CiAgICAgdW5zaWduZWQgc2hvcnQgcGF0aFNlZ1R5cGUoKSBjb25z
dCBmaW5hbCB7IHJldHVybiBQQVRIU0VHX0xJTkVUT19WRVJUSUNBTF9BQlM7IH0KLSAgICBTdHJp
bmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJWIjsgfQorICAg
IFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIlYiX3M7
IH0KICAgICBSZWY8U1ZHUGF0aFNlZz4gY2xvbmUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBTVkdQ
YXRoU2VnVmFsdWU6OmNsb25lPFNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbEFicz4oKTsgfQogfTsK
IApAQCAtNzUsNyArNzUsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHVzaW5nIFNWR1BhdGhT
ZWdMaW5ldG9WZXJ0aWNhbDo6U1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsOwogICAgIHVuc2lnbmVk
IHNob3J0IHBhdGhTZWdUeXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gUEFUSFNFR19MSU5FVE9f
VkVSVElDQUxfUkVMOyB9Ci0gICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBm
aW5hbCB7IHJldHVybiAidiI7IH0KKyAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuICJ2Il9zOyB9CiAgICAgUmVmPFNWR1BhdGhTZWc+IGNsb25lKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gU1ZHUGF0aFNlZ1ZhbHVlOjpjbG9uZTxTVkdQYXRoU2VnTGlu
ZXRvVmVydGljYWxSZWw+KCk7IH0KIH07CiAKQEAgLTg1LDcgKzg1LDcgQEAgcHVibGljOgogcHJp
dmF0ZToKICAgICB1c2luZyBTVkdQYXRoU2VnU2luZ2xlQ29vcmRpbmF0ZTo6U1ZHUGF0aFNlZ1Np
bmdsZUNvb3JkaW5hdGU7CiAgICAgdW5zaWduZWQgc2hvcnQgcGF0aFNlZ1R5cGUoKSBjb25zdCBm
aW5hbCB7IHJldHVybiBQQVRIU0VHX01PVkVUT19BQlM7IH0KLSAgICBTdHJpbmcgcGF0aFNlZ1R5
cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJNIjsgfQorICAgIFN0cmluZyBwYXRo
U2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIk0iX3M7IH0KICAgICBSZWY8
U1ZHUGF0aFNlZz4gY2xvbmUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBTVkdQYXRoU2VnVmFsdWU6
OmNsb25lPFNWR1BhdGhTZWdNb3ZldG9BYnM+KCk7IH0KIH07CiAKQEAgLTk1LDcgKzk1LDcgQEAg
cHVibGljOgogcHJpdmF0ZToKICAgICB1c2luZyBTVkdQYXRoU2VnU2luZ2xlQ29vcmRpbmF0ZTo6
U1ZHUGF0aFNlZ1NpbmdsZUNvb3JkaW5hdGU7CiAgICAgdW5zaWduZWQgc2hvcnQgcGF0aFNlZ1R5
cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBQQVRIU0VHX01PVkVUT19SRUw7IH0KLSAgICBTdHJp
bmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJtIjsgfQorICAg
IFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIm0iX3M7
IH0KICAgICBSZWY8U1ZHUGF0aFNlZz4gY2xvbmUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBTVkdQ
YXRoU2VnVmFsdWU6OmNsb25lPFNWR1BhdGhTZWdNb3ZldG9SZWw+KCk7IH0KIH07CiAKQEAgLTEw
NSw3ICsxMDUsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHVzaW5nIFNWR1BhdGhTZWdTaW5n
bGVDb29yZGluYXRlOjpTVkdQYXRoU2VnU2luZ2xlQ29vcmRpbmF0ZTsKICAgICB1bnNpZ25lZCBz
aG9ydCBwYXRoU2VnVHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFBBVEhTRUdfTElORVRPX0FC
UzsgfQotICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gIkwiOyB9CisgICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7
IHJldHVybiAiTCJfczsgfQogICAgIFJlZjxTVkdQYXRoU2VnPiBjbG9uZSgpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIFNWR1BhdGhTZWdWYWx1ZTo6Y2xvbmU8U1ZHUGF0aFNlZ0xpbmV0b0Ficz4oKTsg
fQogfTsKIApAQCAtMTE1LDcgKzExNSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdXNpbmcg
U1ZHUGF0aFNlZ1NpbmdsZUNvb3JkaW5hdGU6OlNWR1BhdGhTZWdTaW5nbGVDb29yZGluYXRlOwog
ICAgIHVuc2lnbmVkIHNob3J0IHBhdGhTZWdUeXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gUEFU
SFNFR19MSU5FVE9fUkVMOyB9Ci0gICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25z
dCBmaW5hbCB7IHJldHVybiAibCI7IH0KKyAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuICJsIl9zOyB9CiAgICAgUmVmPFNWR1BhdGhTZWc+IGNsb25l
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gU1ZHUGF0aFNlZ1ZhbHVlOjpjbG9uZTxTVkdQYXRoU2Vn
TGluZXRvUmVsPigpOyB9CiB9OwogCkBAIC0xMjUsNyArMTI1LDcgQEAgcHVibGljOgogcHJpdmF0
ZToKICAgICB1c2luZyBTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpYzo6U1ZHUGF0aFNlZ0N1cnZl
dG9RdWFkcmF0aWM7CiAgICAgdW5zaWduZWQgc2hvcnQgcGF0aFNlZ1R5cGUoKSBjb25zdCBmaW5h
bCB7IHJldHVybiBQQVRIU0VHX0NVUlZFVE9fUVVBRFJBVElDX0FCUzsgfQotICAgIFN0cmluZyBw
YXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIlEiOyB9CisgICAgU3Ry
aW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiUSJfczsgfQog
ICAgIFJlZjxTVkdQYXRoU2VnPiBjbG9uZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFNWR1BhdGhT
ZWdWYWx1ZTo6Y2xvbmU8U1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNBYnM+KCk7IH0KIH07CiAK
QEAgLTEzNSw3ICsxMzUsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHVzaW5nIFNWR1BhdGhT
ZWdDdXJ2ZXRvUXVhZHJhdGljOjpTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpYzsKICAgICB1bnNp
Z25lZCBzaG9ydCBwYXRoU2VnVHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFBBVEhTRUdfQ1VS
VkVUT19RVUFEUkFUSUNfUkVMOyB9Ci0gICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBj
b25zdCBmaW5hbCB7IHJldHVybiAicSI7IH0KKyAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRl
cigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJxIl9zOyB9CiAgICAgUmVmPFNWR1BhdGhTZWc+IGNs
b25lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gU1ZHUGF0aFNlZ1ZhbHVlOjpjbG9uZTxTVkdQYXRo
U2VnQ3VydmV0b1F1YWRyYXRpY1JlbD4oKTsgfQogfTsKIApAQCAtMTQ1LDcgKzE0NSw3IEBAIHB1
YmxpYzoKIHByaXZhdGU6CiAgICAgdXNpbmcgU1ZHUGF0aFNlZ0N1cnZldG9DdWJpYzo6U1ZHUGF0
aFNlZ0N1cnZldG9DdWJpYzsKICAgICB1bnNpZ25lZCBzaG9ydCBwYXRoU2VnVHlwZSgpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIFBBVEhTRUdfQ1VSVkVUT19DVUJJQ19BQlM7IH0KLSAgICBTdHJpbmcg
cGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJDIjsgfQorICAgIFN0
cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIkMiX3M7IH0K
ICAgICBSZWY8U1ZHUGF0aFNlZz4gY2xvbmUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBTVkdQYXRo
U2VnVmFsdWU6OmNsb25lPFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNBYnM+KCk7IH0KIH07CiAKQEAg
LTE1NSw3ICsxNTUsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHVzaW5nIFNWR1BhdGhTZWdD
dXJ2ZXRvQ3ViaWM6OlNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWM7CiAgICAgdW5zaWduZWQgc2hvcnQg
cGF0aFNlZ1R5cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBQQVRIU0VHX0NVUlZFVE9fQ1VCSUNf
UkVMOyB9Ci0gICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiAiYyI7IH0KKyAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuICJjIl9zOyB9CiAgICAgUmVmPFNWR1BhdGhTZWc+IGNsb25lKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gU1ZHUGF0aFNlZ1ZhbHVlOjpjbG9uZTxTVkdQYXRoU2VnQ3VydmV0b0N1Ymlj
UmVsPigpOyB9CiB9OwogCkBAIC0xNjUsNyArMTY1LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAg
ICB1c2luZyBTVkdQYXRoU2VnQXJjOjpTVkdQYXRoU2VnQXJjOwogICAgIHVuc2lnbmVkIHNob3J0
IHBhdGhTZWdUeXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gUEFUSFNFR19BUkNfQUJTOyB9Ci0g
ICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiQSI7
IH0KKyAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
ICJBIl9zOyB9CiAgICAgUmVmPFNWR1BhdGhTZWc+IGNsb25lKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gU1ZHUGF0aFNlZ1ZhbHVlOjpjbG9uZTxTVkdQYXRoU2VnQXJjQWJzPigpOyB9CiB9OwogCkBA
IC0xNzUsNyArMTc1LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB1c2luZyBTVkdQYXRoU2Vn
QXJjOjpTVkdQYXRoU2VnQXJjOwogICAgIHVuc2lnbmVkIHNob3J0IHBhdGhTZWdUeXBlKCkgY29u
c3QgZmluYWwgeyByZXR1cm4gUEFUSFNFR19BUkNfUkVMOyB9Ci0gICAgU3RyaW5nIHBhdGhTZWdU
eXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiYSI7IH0KKyAgICBTdHJpbmcgcGF0
aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJhIl9zOyB9CiAgICAgUmVm
PFNWR1BhdGhTZWc+IGNsb25lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gU1ZHUGF0aFNlZ1ZhbHVl
OjpjbG9uZTxTVkdQYXRoU2VnQXJjUmVsPigpOyB9CiB9OwogCkBAIC0xODUsNyArMTg1LDcgQEAg
cHVibGljOgogcHJpdmF0ZToKICAgICB1c2luZyBTVkdQYXRoU2VnU2luZ2xlQ29vcmRpbmF0ZTo6
U1ZHUGF0aFNlZ1NpbmdsZUNvb3JkaW5hdGU7CiAgICAgdW5zaWduZWQgc2hvcnQgcGF0aFNlZ1R5
cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBQQVRIU0VHX0NVUlZFVE9fUVVBRFJBVElDX1NNT09U
SF9BQlM7IH0KLSAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuICJUIjsgfQorICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gIlQiX3M7IH0KICAgICBSZWY8U1ZHUGF0aFNlZz4gY2xvbmUoKSBjb25zdCBm
aW5hbCB7IHJldHVybiBTVkdQYXRoU2VnVmFsdWU6OmNsb25lPFNWR1BhdGhTZWdDdXJ2ZXRvUXVh
ZHJhdGljU21vb3RoQWJzPigpOyB9CiB9OwogCkBAIC0xOTUsNyArMTk1LDcgQEAgcHVibGljOgog
cHJpdmF0ZToKICAgICB1c2luZyBTVkdQYXRoU2VnU2luZ2xlQ29vcmRpbmF0ZTo6U1ZHUGF0aFNl
Z1NpbmdsZUNvb3JkaW5hdGU7CiAgICAgdW5zaWduZWQgc2hvcnQgcGF0aFNlZ1R5cGUoKSBjb25z
dCBmaW5hbCB7IHJldHVybiBQQVRIU0VHX0NVUlZFVE9fUVVBRFJBVElDX1NNT09USF9SRUw7IH0K
LSAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJ0
IjsgfQorICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gInQiX3M7IH0KICAgICBSZWY8U1ZHUGF0aFNlZz4gY2xvbmUoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiBTVkdQYXRoU2VnVmFsdWU6OmNsb25lPFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljU21v
b3RoUmVsPigpOyB9CiB9OwogCkBAIC0yMDUsNyArMjA1LDcgQEAgcHVibGljOgogcHJpdmF0ZToK
ICAgICB1c2luZyBTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoOjpTVkdQYXRoU2VnQ3VydmV0
b0N1YmljU21vb3RoOwogICAgIHVuc2lnbmVkIHNob3J0IHBhdGhTZWdUeXBlKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gUEFUSFNFR19DVVJWRVRPX0NVQklDX1NNT09USF9BQlM7IH0KLSAgICBTdHJp
bmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJTIjsgfQorICAg
IFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIlMiX3M7
IH0KICAgICBSZWY8U1ZHUGF0aFNlZz4gY2xvbmUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBTVkdQ
YXRoU2VnVmFsdWU6OmNsb25lPFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhBYnM+KCk7IH0K
IH07CiAKQEAgLTIxNSw3ICsyMTUsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHVzaW5nIFNW
R1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGg6OlNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGg7
CiAgICAgdW5zaWduZWQgc2hvcnQgcGF0aFNlZ1R5cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBQ
QVRIU0VHX0NVUlZFVE9fQ1VCSUNfU01PT1RIX1JFTDsgfQotICAgIFN0cmluZyBwYXRoU2VnVHlw
ZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gInMiOyB9CisgICAgU3RyaW5nIHBhdGhT
ZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAicyJfczsgfQogICAgIFJlZjxT
VkdQYXRoU2VnPiBjbG9uZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFNWR1BhdGhTZWdWYWx1ZTo6
Y2xvbmU8U1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aFJlbD4oKTsgfQogfTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5oIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5oCmluZGV4IDg0ZjExNTg4
ZjNlMjgxZTZmNmUwN2E2MDlkMDg5YTk3ODcwOGEzOWUuLjI0MTk3Zjc0NTc3MTY1N2MxN2Q4ZDA3
YjJjZDI0ZTU0ZTM0YzgwOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRp
YWxHcmFkaWVudEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmFkaWFsR3Jh
ZGllbnRFbGVtZW50LmgKQEAgLTYzLDEyICs2MywxMiBAQCBwcml2YXRlOgogICAgIGJvb2wgc2Vs
Zkhhc1JlbGF0aXZlTGVuZ3RocygpIGNvbnN0IG92ZXJyaWRlOwogCiAgICAgUHJvcGVydHlSZWdp
c3RyeSBtX3Byb3BlcnR5UmVnaXN0cnkgeyAqdGhpcyB9OwotICAgIFJlZjxTVkdBbmltYXRlZExl
bmd0aD4gbV9jeCB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9k
ZTo6V2lkdGgsICI1MCUiKSB9OwotICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV9jeSB7IFNW
R0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6SGVpZ2h0LCAiNTAl
IikgfTsKLSAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1fciB7IFNWR0FuaW1hdGVkTGVuZ3Ro
OjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6T3RoZXIsICI1MCUiKSB9OworICAgIFJlZjxT
VkdBbmltYXRlZExlbmd0aD4gbV9jeCB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywg
U1ZHTGVuZ3RoTW9kZTo6V2lkdGgsICI1MCUiX3MpIH07CisgICAgUmVmPFNWR0FuaW1hdGVkTGVu
Z3RoPiBtX2N5IHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2Rl
OjpIZWlnaHQsICI1MCUiX3MpIH07CisgICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX3IgeyBT
VkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6Ok90aGVyLCAiNTAl
Il9zKSB9OwogICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV9meCB7IFNWR0FuaW1hdGVkTGVu
Z3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6V2lkdGgpIH07CiAgICAgUmVmPFNWR0Fu
aW1hdGVkTGVuZ3RoPiBtX2Z5IHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdM
ZW5ndGhNb2RlOjpIZWlnaHQpIH07Ci0gICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX2ZyIHsg
U1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpPdGhlciwgIjAl
IikgfTsKKyAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1fZnIgeyBTVkdBbmltYXRlZExlbmd0
aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6Ok90aGVyLCAiMCUiX3MpIH07CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJv
cGVydGllcy9TVkdQcm9wZXJ0eVRyYWl0cy5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRp
ZXMvU1ZHUHJvcGVydHlUcmFpdHMuaAppbmRleCA0Mzk5NzA0MzBmNjU2YTk4NjVlNmU5YzlkOWVm
NWVhMjRiYmE1MzA0Li44NDVhYjRhYmZmYjc4OTU4NDg2OWY5ZmYxYWE1ZTgzMjAxMjgwYTYzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRyYWl0
cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5VHJhaXRz
LmgKQEAgLTM5LDcgKzM5LDcgQEAgc3RydWN0IFNWR1Byb3BlcnR5VHJhaXRzPGJvb2w+IHsKICAg
ICBzdGF0aWMgYm9vbCBpbml0aWFsVmFsdWUoKSB7IHJldHVybiBmYWxzZTsgfQogICAgIHN0YXRp
YyBib29sIGZyb21TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpIHsgcmV0dXJuIHN0cmluZyA9
PSAidHJ1ZSI7IH0KICAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxib29sPiBwYXJzZShjb25zdCBR
dWFsaWZpZWROYW1lJiwgY29uc3QgU3RyaW5nJikgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsgcmV0
dXJuIGluaXRpYWxWYWx1ZSgpOyB9Ci0gICAgc3RhdGljIFN0cmluZyB0b1N0cmluZyhib29sIHR5
cGUpIHsgcmV0dXJuIHR5cGUgPyAidHJ1ZSIgOiAiZmFsc2UiOyB9CisgICAgc3RhdGljIFN0cmlu
ZyB0b1N0cmluZyhib29sIHR5cGUpIHsgcmV0dXJuIHR5cGUgPyAidHJ1ZSJfcyA6ICJmYWxzZSJf
czsgfQogfTsKIAogdGVtcGxhdGU8PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9Nb2NrQ29udGVudEZpbHRlclNldHRpbmdzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01v
Y2tDb250ZW50RmlsdGVyU2V0dGluZ3MuaAppbmRleCAxODFlZmY1YjViOGVhMDAxOGU5ZjNiMGMy
NDNhYzdkNGUzZTlkY2E3Li5mM2M5N2YzZjhlMTNhYTBmMTI3ZGVlODQzOWQ2YjVjMGQwZTNjMWUz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDb250ZW50RmlsdGVyU2V0
dGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDb250ZW50RmlsdGVyU2V0
dGluZ3MuaApAQCAtNDgsNyArNDgsNyBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX1RFU1RTVVBQ
T1JUX0VYUE9SVCBzdGF0aWMgTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5ncyYgc2luZ2xldG9uKCk7
CiAgICAgV0VCQ09SRV9URVNUU1VQUE9SVF9FWFBPUlQgc3RhdGljIHZvaWQgcmVzZXQoKTsKLSAg
ICBzdGF0aWMgY29uc3QgY2hhciogdW5ibG9ja1VSTEhvc3QoKSB7IHJldHVybiAibW9jay11bmJs
b2NrIjsgfQorICAgIHN0YXRpYyBBU0NJSUxpdGVyYWwgdW5ibG9ja1VSTEhvc3QoKSB7IHJldHVy
biAibW9jay11bmJsb2NrIl9zOyB9CiAKICAgICAvLyBUcmljayB0aGUgZ2VuZXJhdGVkIGJpbmRp
bmdzIGludG8gdGhpbmtpbmcgd2UncmUgUmVmQ291bnRlZC4KICAgICB2b2lkIHJlZigpIHsgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoVmFsdWUuaCBiL1NvdXJjZS9XZWJD
b3JlL3htbC9YUGF0aFZhbHVlLmgKaW5kZXggZDkxYzc3ZDEwMmQyNGFkMjNlNTkzOTg2ZTA0MGJh
MjVjMDlkYjM2Yi4uZWE4M2Y3ZDBiYjFhYWYxNGE3YmE3MjEwOTRmM2IyMTlhMjJiMjNiMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoVmFsdWUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS94bWwvWFBhdGhWYWx1ZS5oCkBAIC00MCw3ICs0MCw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKICAgICAgICAgICAgIFZhbHVlKGRvdWJsZSB2YWx1ZSkgOiBtX3R5cGUoTnVtYmVyVmFsdWUp
LCBtX251bWJlcih2YWx1ZSkgeyB9CiAKICAgICAgICAgICAgIFZhbHVlKGNvbnN0IFN0cmluZyYg
dmFsdWUpIDogbV90eXBlKFN0cmluZ1ZhbHVlKSwgbV9kYXRhKERhdGE6OmNyZWF0ZSh2YWx1ZSkp
IHsgfQotICAgICAgICAgICAgVmFsdWUoY29uc3QgY2hhciogdmFsdWUpIDogbV90eXBlKFN0cmlu
Z1ZhbHVlKSwgbV9kYXRhKERhdGE6OmNyZWF0ZSh2YWx1ZSkpIHsgfQorICAgICAgICAgICAgVmFs
dWUoY29uc3QgY2hhciogdmFsdWUpIDogbV90eXBlKFN0cmluZ1ZhbHVlKSwgbV9kYXRhKERhdGE6
OmNyZWF0ZShTdHJpbmcgeyB2YWx1ZSB9KSkgeyB9CiAKICAgICAgICAgICAgIGV4cGxpY2l0IFZh
bHVlKE5vZGVTZXQmJiB2YWx1ZSkKICAgICAgICAgICAgICAgICA6IG1fdHlwZShOb2RlU2V0VmFs
dWUpLCBtX2RhdGEoRGF0YTo6Y3JlYXRlKFdURk1vdmUodmFsdWUpKSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3htbC9YU0xTdHlsZVNoZWV0LmggYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFNM
U3R5bGVTaGVldC5oCmluZGV4IGEyYmY4ZTMzNDlhYjU2MzZmNTI3NGU0NTI0YzMwYmIxODZjNmZk
ZWQuLjVmYmQ2ZWJhNDc5ZDg3ZTliN2U4MjFhZjllYTMyZjAzMGY0Njg1MDMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3htbC9YU0xTdHlsZVNoZWV0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
eG1sL1hTTFN0eWxlU2hlZXQuaApAQCAtODQsNyArODQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBt
YXJrQXNQcm9jZXNzZWQoKTsKICAgICBib29sIHByb2Nlc3NlZCgpIGNvbnN0IHsgcmV0dXJuIG1f
cHJvY2Vzc2VkOyB9CiAgICAgCi0gICAgU3RyaW5nIHR5cGUoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiAidGV4dC94bWwiOyB9CisgICAgU3RyaW5nIHR5cGUoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiAidGV4dC94bWwiX3M7IH0KICAgICBib29sIGRpc2FibGVkKCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gbV9pc0Rpc2FibGVkOyB9CiAgICAgdm9pZCBzZXREaXNhYmxlZChib29sIGIpIG92
ZXJyaWRlIHsgbV9pc0Rpc2FibGVkID0gYjsgfQogICAgIE5vZGUqIG93bmVyTm9kZSgpIGNvbnN0
IG92ZXJyaWRlIHsgcmV0dXJuIG1fb3duZXJOb2RlOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
R1BVL1dHU0wvUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJHUFUvV0dTTC9QYXJzZXIuY3BwCmluZGV4
IDYyNTQ4N2RlMTg1ZmVlY2Y5NGExZDFiM2YwYmM5ODQ2ZTNkYjhhMGEuLmU2MmYzZTBjMDg3ZWZh
MWMxYmMyZDA4YjFmMmQ3ODFhYTljNWNjNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJHUFUvV0dT
TC9QYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJHUFUvV0dTTC9QYXJzZXIuY3BwCkBAIC0yMzQs
NyArMjM0LDcgQEAgRXhwZWN0ZWQ8VW5pcXVlUmVmPEFTVDo6R2xvYmFsRGVjbD4sIEVycm9yPiBQ
YXJzZXI8TGV4ZXI+OjpwYXJzZUdsb2JhbERlY2woKQogICAgICAgICByZXR1cm4geyBtYWtlVW5p
cXVlUmVmPEFTVDo6RnVuY3Rpb25EZWNsPihXVEZNb3ZlKGZuKSkgfTsKICAgICB9CiAgICAgZGVm
YXVsdDoKLSAgICAgICAgRkFJTCgiVHJ5aW5nIHRvIHBhcnNlIGEgR2xvYmFsRGVjbCwgZXhwZWN0
ZWQgJ3ZhcicsICdmbicsIG9yICdzdHJ1Y3QnLiIpOworICAgICAgICBGQUlMKCJUcnlpbmcgdG8g
cGFyc2UgYSBHbG9iYWxEZWNsLCBleHBlY3RlZCAndmFyJywgJ2ZuJywgb3IgJ3N0cnVjdCcuIl9z
KTsKICAgICB9CiB9CiAKQEAgLTI4Miw3ICsyODIsNyBAQCBFeHBlY3RlZDxVbmlxdWVSZWY8QVNU
OjpBdHRyaWJ1dGU+LCBFcnJvcj4gUGFyc2VyPExleGVyPjo6cGFyc2VBdHRyaWJ1dGUoKQogICAg
ICAgICAgICAgUkVUVVJOX05PREVfUkVGKFN0YWdlQXR0cmlidXRlLCBBU1Q6OlN0YWdlQXR0cmli
dXRlOjpTdGFnZTo6VmVydGV4KTsKICAgICAgICAgaWYgKHN0YWdlLm1faWRlbnQgPT0gImZyYWdt
ZW50IikKICAgICAgICAgICAgIFJFVFVSTl9OT0RFX1JFRihTdGFnZUF0dHJpYnV0ZSwgQVNUOjpT
dGFnZUF0dHJpYnV0ZTo6U3RhZ2U6OkZyYWdtZW50KTsKLSAgICAgICAgRkFJTCgiSW52YWxpZCBz
dGFnZSBhdHRyaWJ1dGUsIHRoZSBvbmx5IG9wdGlvbnMgYXJlICdjb21wdXRlJywgJ3ZlcnRleCcs
ICdmcmFnbWVudCcuIik7CisgICAgICAgIEZBSUwoIkludmFsaWQgc3RhZ2UgYXR0cmlidXRlLCB0
aGUgb25seSBvcHRpb25zIGFyZSAnY29tcHV0ZScsICd2ZXJ0ZXgnLCAnZnJhZ21lbnQnLiJfcyk7
CiAgICAgfQogICAgIGlmIChpZGVudC5tX2lkZW50ID09ICJsb2NhdGlvbiIpIHsKICAgICAgICAg
Q09OU1VNRV9UWVBFKFBhcmVuTGVmdCk7CkBAIC0yOTcsNyArMjk3LDcgQEAgRXhwZWN0ZWQ8VW5p
cXVlUmVmPEFTVDo6QXR0cmlidXRlPiwgRXJyb3I+IFBhcnNlcjxMZXhlcj46OnBhcnNlQXR0cmli
dXRlKCkKICAgICAgICAgQ09OU1VNRV9UWVBFKFBhcmVuUmlnaHQpOwogICAgICAgICBSRVRVUk5f
Tk9ERV9SRUYoQnVpbHRpbkF0dHJpYnV0ZSwgbmFtZS5tX2lkZW50KTsKICAgICB9Ci0gICAgRkFJ
TCgiVW5rbm93biBhdHRyaWJ1dGUsIHRoZSBvbmx5IHN1cHBvcnRlZCBhdHRyaWJ1dGVzIGFyZSAn
Z3JvdXAnLCAnYmluZGluZycsICdzdGFnZScuIik7CisgICAgRkFJTCgiVW5rbm93biBhdHRyaWJ1
dGUsIHRoZSBvbmx5IHN1cHBvcnRlZCBhdHRyaWJ1dGVzIGFyZSAnZ3JvdXAnLCAnYmluZGluZycs
ICdzdGFnZScuIl9zKTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgTGV4ZXI+CkBAIC0zNjAsNyAr
MzYwLDcgQEAgRXhwZWN0ZWQ8VW5pcXVlUmVmPEFTVDo6VHlwZURlY2w+LCBFcnJvcj4gUGFyc2Vy
PExleGVyPjo6cGFyc2VUeXBlRGVjbCgpCiAgICAgICAgIHJldHVybiBwYXJzZVR5cGVEZWNsQWZ0
ZXJJZGVudGlmaWVyKFdURk1vdmUobmFtZS5tX2lkZW50KSwgX3N0YXJ0T2ZFbGVtZW50UG9zaXRp
b24pOwogICAgIH0KIAotICAgIEZBSUwoIlRyaWVkIHBhcnNpbmcgYSB0eXBlIGFuZCBpdCBkaWQg
bm90IHN0YXJ0IHdpdGggYW4gaWRlbnRpZmllciIpOworICAgIEZBSUwoIlRyaWVkIHBhcnNpbmcg
YSB0eXBlIGFuZCBpdCBkaWQgbm90IHN0YXJ0IHdpdGggYW4gaWRlbnRpZmllciJfcyk7CiB9CiAK
IHRlbXBsYXRlPHR5cGVuYW1lIExleGVyPgpAQCAtNDUwLDcgKzQ1MCw3IEBAIEV4cGVjdGVkPEFT
VDo6U3RvcmFnZUNsYXNzLCBFcnJvcj4gUGFyc2VyPExleGVyPjo6cGFyc2VTdG9yYWdlQ2xhc3Mo
KQogICAgICAgICByZXR1cm4geyBBU1Q6OlN0b3JhZ2VDbGFzczo6U3RvcmFnZSB9OwogICAgIH0K
IAotICAgIEZBSUwoIkV4cGVjdGVkIG9uZSBvZiAnZnVuY3Rpb24nLydwcml2YXRlJy8nc3RvcmFn
ZScvJ3VuaWZvcm0nLyd3b3JrZ3JvdXAnIik7CisgICAgRkFJTCgiRXhwZWN0ZWQgb25lIG9mICdm
dW5jdGlvbicvJ3ByaXZhdGUnLydzdG9yYWdlJy8ndW5pZm9ybScvJ3dvcmtncm91cCciX3MpOwog
fQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBMZXhlcj4KQEAgLTQ3MSw3ICs0NzEsNyBAQCBFeHBlY3Rl
ZDxBU1Q6OkFjY2Vzc01vZGUsIEVycm9yPiBQYXJzZXI8TGV4ZXI+OjpwYXJzZUFjY2Vzc01vZGUo
KQogICAgICAgICByZXR1cm4geyBBU1Q6OkFjY2Vzc01vZGU6OlJlYWRXcml0ZSB9OwogICAgIH0K
IAotICAgIEZBSUwoIkV4cGVjdGVkIG9uZSBvZiAncmVhZCcvJ3dyaXRlJy8ncmVhZF93cml0ZSci
KTsKKyAgICBGQUlMKCJFeHBlY3RlZCBvbmUgb2YgJ3JlYWQnLyd3cml0ZScvJ3JlYWRfd3JpdGUn
Il9zKTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgTGV4ZXI+CkBAIC01NDcsNyArNTQ3LDcgQEAg
RXhwZWN0ZWQ8VW5pcXVlUmVmPEFTVDo6U3RhdGVtZW50PiwgRXJyb3I+IFBhcnNlcjxMZXhlcj46
OnBhcnNlU3RhdGVtZW50KCkKICAgICAgICAgUkVUVVJOX05PREVfUkVGKEFzc2lnbm1lbnRTdGF0
ZW1lbnQsIGxocy5tb3ZlVG9VbmlxdWVQdHIoKSwgV1RGTW92ZShyaHMpKTsKICAgICB9CiAgICAg
ZGVmYXVsdDoKLSAgICAgICAgRkFJTCgiTm90IGEgdmFsaWQgc3RhdGVtZW50Iik7CisgICAgICAg
IEZBSUwoIk5vdCBhIHZhbGlkIHN0YXRlbWVudCJfcyk7CiAgICAgfQogfQogCkBAIC02OTQsNyAr
Njk0LDcgQEAgRXhwZWN0ZWQ8VW5pcXVlUmVmPEFTVDo6RXhwcmVzc2lvbj4sIEVycm9yPiBQYXJz
ZXI8TGV4ZXI+OjpwYXJzZVByaW1hcnlFeHByZXNzaW8KICAgICBkZWZhdWx0OgogICAgICAgICBi
cmVhazsKICAgICB9Ci0gICAgRkFJTCgiRXhwZWN0ZWQgb25lIG9mICcoJywgYSBsaXRlcmFsLCBv
ciBhbiBpZGVudGlmaWVyIik7CisgICAgRkFJTCgiRXhwZWN0ZWQgb25lIG9mICcoJywgYSBsaXRl
cmFsLCBvciBhbiBpZGVudGlmaWVyIl9zKTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgTGV4ZXI+
CkBAIC03MzQsNyArNzM0LDcgQEAgRXhwZWN0ZWQ8VW5pcXVlUmVmPEFTVDo6RXhwcmVzc2lvbj4s
IEVycm9yPiBQYXJzZXI8TGV4ZXI+OjpwYXJzZUNvcmVMSFNFeHByZXNzaW8KICAgICAgICAgYnJl
YWs7CiAgICAgfQogCi0gICAgRkFJTCgiVHJpZWQgdG8gcGFyc2UgdGhlIGxlZnQtaGFuZCBzaWRl
IG9mIGFuIGFzc2lnbm1lbnQgYW5kIGZhaWxlZCIpOworICAgIEZBSUwoIlRyaWVkIHRvIHBhcnNl
IHRoZSBsZWZ0LWhhbmQgc2lkZSBvZiBhbiBhc3NpZ25tZW50IGFuZCBmYWlsZWQiX3MpOwogfQog
CiB0ZW1wbGF0ZTx0eXBlbmFtZSBMZXhlcj4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJHUFUvV0dT
TC9Ub2tlbi5jcHAgYi9Tb3VyY2UvV2ViR1BVL1dHU0wvVG9rZW4uY3BwCmluZGV4IGRiM2MwYTQz
ZTEwMzcyZWI5OTQxZmNmMTZkOGIyMGVkZTdmMDg5MTIuLjY3MzFhYTIyYzEyYTMzMDM2OGNmYjFi
NzYwYzk2NmVlMTBmMWFjMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJHUFUvV0dTTC9Ub2tlbi5j
cHAKKysrIGIvU291cmNlL1dlYkdQVS9XR1NML1Rva2VuLmNwcApAQCAtMzIsODkgKzMyLDg5IEBA
IFN0cmluZyB0b1N0cmluZyhUb2tlblR5cGUgdHlwZSkKIHsKICAgICBzd2l0Y2ggKHR5cGUpIHsK
ICAgICBjYXNlIFRva2VuVHlwZTo6SW52YWxpZDoKLSAgICAgICAgcmV0dXJuICJJbnZhbGlkIjsK
KyAgICAgICAgcmV0dXJuICJJbnZhbGlkIl9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpFbmRPZkZp
bGU6Ci0gICAgICAgIHJldHVybiAiRU9GIjsKKyAgICAgICAgcmV0dXJuICJFT0YiX3M7CiAgICAg
Y2FzZSBUb2tlblR5cGU6OkludGVnZXJMaXRlcmFsOgotICAgICAgICByZXR1cm4gIkludGVnZXJM
aXRlcmFsIjsKKyAgICAgICAgcmV0dXJuICJJbnRlZ2VyTGl0ZXJhbCJfczsKICAgICBjYXNlIFRv
a2VuVHlwZTo6SW50ZWdlckxpdGVyYWxTaWduZWQ6Ci0gICAgICAgIHJldHVybiAiSW50ZWdlckxp
dGVyYWxTaWduZWQiOworICAgICAgICByZXR1cm4gIkludGVnZXJMaXRlcmFsU2lnbmVkIl9zOwog
ICAgIGNhc2UgVG9rZW5UeXBlOjpJbnRlZ2VyTGl0ZXJhbFVuc2lnbmVkOgotICAgICAgICByZXR1
cm4gIkludGVnZXJMaXRlcmFsVW5zaWduZWQiOworICAgICAgICByZXR1cm4gIkludGVnZXJMaXRl
cmFsVW5zaWduZWQiX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6OkRlY2ltYWxGbG9hdExpdGVyYWw6
Ci0gICAgICAgIHJldHVybiAiRGVjaW1hbEZsb2F0TGl0ZXJhbCI7CisgICAgICAgIHJldHVybiAi
RGVjaW1hbEZsb2F0TGl0ZXJhbCJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6SGV4RmxvYXRMaXRl
cmFsOgotICAgICAgICByZXR1cm4gIkhleEZsb2F0TGl0ZXJhbCI7CisgICAgICAgIHJldHVybiAi
SGV4RmxvYXRMaXRlcmFsIl9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpJZGVudGlmaWVyOgotICAg
ICAgICByZXR1cm4gIklkZW50aWZpZXIiOworICAgICAgICByZXR1cm4gIklkZW50aWZpZXIiX3M7
CiAgICAgY2FzZSBUb2tlblR5cGU6OlJlc2VydmVkV29yZDoKLSAgICAgICAgcmV0dXJuICJSZXNl
cnZlZFdvcmQiOworICAgICAgICByZXR1cm4gIlJlc2VydmVkV29yZCJfczsKICAgICBjYXNlIFRv
a2VuVHlwZTo6S2V5d29yZFN0cnVjdDoKLSAgICAgICAgcmV0dXJuICJzdHJ1Y3QiOworICAgICAg
ICByZXR1cm4gInN0cnVjdCJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6S2V5d29yZEZuOgotICAg
ICAgICByZXR1cm4gImZuIjsKKyAgICAgICAgcmV0dXJuICJmbiJfczsKICAgICBjYXNlIFRva2Vu
VHlwZTo6S2V5d29yZEZ1bmN0aW9uOgotICAgICAgICByZXR1cm4gImZ1bmN0aW9uIjsKKyAgICAg
ICAgcmV0dXJuICJmdW5jdGlvbiJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6S2V5d29yZFByaXZh
dGU6Ci0gICAgICAgIHJldHVybiAicHJpdmF0ZSI7CisgICAgICAgIHJldHVybiAicHJpdmF0ZSJf
czsKICAgICBjYXNlIFRva2VuVHlwZTo6S2V5d29yZFJlYWQ6Ci0gICAgICAgIHJldHVybiAicmVh
ZCI7CisgICAgICAgIHJldHVybiAicmVhZCJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6S2V5d29y
ZFJlYWRXcml0ZToKLSAgICAgICAgcmV0dXJuICJyZWFkX3dyaXRlIjsKKyAgICAgICAgcmV0dXJu
ICJyZWFkX3dyaXRlIl9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpLZXl3b3JkUmV0dXJuOgotICAg
ICAgICByZXR1cm4gInJldHVybiI7CisgICAgICAgIHJldHVybiAicmV0dXJuIl9zOwogICAgIGNh
c2UgVG9rZW5UeXBlOjpLZXl3b3JkU3RvcmFnZToKLSAgICAgICAgcmV0dXJuICJzdG9yYWdlIjsK
KyAgICAgICAgcmV0dXJuICJzdG9yYWdlIl9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpLZXl3b3Jk
VW5pZm9ybToKLSAgICAgICAgcmV0dXJuICJ1bmlmb3JtIjsKKyAgICAgICAgcmV0dXJuICJ1bmlm
b3JtIl9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpLZXl3b3JkVmFyOgotICAgICAgICByZXR1cm4g
InZhciI7CisgICAgICAgIHJldHVybiAidmFyIl9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpLZXl3
b3JkV29ya2dyb3VwOgotICAgICAgICByZXR1cm4gIndvcmtncm91cCI7CisgICAgICAgIHJldHVy
biAid29ya2dyb3VwIl9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpLZXl3b3JkV3JpdGU6Ci0gICAg
ICAgIHJldHVybiAid3JpdGUiOworICAgICAgICByZXR1cm4gIndyaXRlIl9zOwogICAgIGNhc2Ug
VG9rZW5UeXBlOjpLZXl3b3JkSTMyOgotICAgICAgICByZXR1cm4gImkzMiI7CisgICAgICAgIHJl
dHVybiAiaTMyIl9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpLZXl3b3JkVTMyOgotICAgICAgICBy
ZXR1cm4gInUzMiI7CisgICAgICAgIHJldHVybiAidTMyIl9zOwogICAgIGNhc2UgVG9rZW5UeXBl
OjpLZXl3b3JkRjMyOgotICAgICAgICByZXR1cm4gImYzMiI7CisgICAgICAgIHJldHVybiAiZjMy
Il9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpLZXl3b3JkQm9vbDoKLSAgICAgICAgcmV0dXJuICJi
b29sIjsKKyAgICAgICAgcmV0dXJuICJib29sIl9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpMaXRl
cmFsVHJ1ZToKLSAgICAgICAgcmV0dXJuICJ0cnVlIjsKKyAgICAgICAgcmV0dXJuICJ0cnVlIl9z
OwogICAgIGNhc2UgVG9rZW5UeXBlOjpMaXRlcmFsRmFsc2U6Ci0gICAgICAgIHJldHVybiAiZmFs
c2UiOworICAgICAgICByZXR1cm4gImZhbHNlIl9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpBcnJv
dzoKLSAgICAgICAgcmV0dXJuICItPiI7CisgICAgICAgIHJldHVybiAiLT4iX3M7CiAgICAgY2Fz
ZSBUb2tlblR5cGU6OkF0dHJpYnV0ZToKLSAgICAgICAgcmV0dXJuICJAIjsKKyAgICAgICAgcmV0
dXJuICJAIl9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpCcmFja2V0TGVmdDoKLSAgICAgICAgcmV0
dXJuICJbIjsKKyAgICAgICAgcmV0dXJuICJbIl9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpCcmFj
a2V0UmlnaHQ6Ci0gICAgICAgIHJldHVybiAiXSI7CisgICAgICAgIHJldHVybiAiXSJfczsKICAg
ICBjYXNlIFRva2VuVHlwZTo6QnJhY2VMZWZ0OgotICAgICAgICByZXR1cm4gInsiOworICAgICAg
ICByZXR1cm4gInsiX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6OkJyYWNlUmlnaHQ6Ci0gICAgICAg
IHJldHVybiAifSI7CisgICAgICAgIHJldHVybiAifSJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6
Q29sb246Ci0gICAgICAgIHJldHVybiAiOiI7CisgICAgICAgIHJldHVybiAiOiJfczsKICAgICBj
YXNlIFRva2VuVHlwZTo6Q29tbWE6Ci0gICAgICAgIHJldHVybiAiLCI7CisgICAgICAgIHJldHVy
biAiLCJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6RXF1YWw6Ci0gICAgICAgIHJldHVybiAiPSI7
CisgICAgICAgIHJldHVybiAiPSJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6R1Q6Ci0gICAgICAg
IHJldHVybiAiPiI7CisgICAgICAgIHJldHVybiAiPiJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6
TFQ6Ci0gICAgICAgIHJldHVybiAiPCI7CisgICAgICAgIHJldHVybiAiPCJfczsKICAgICBjYXNl
IFRva2VuVHlwZTo6UGVyaW9kOgotICAgICAgICByZXR1cm4gIi4iOworICAgICAgICByZXR1cm4g
Ii4iX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6OlBhcmVuTGVmdDoKLSAgICAgICAgcmV0dXJuICIo
IjsKKyAgICAgICAgcmV0dXJuICIoIl9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpQYXJlblJpZ2h0
OgotICAgICAgICByZXR1cm4gIikiOworICAgICAgICByZXR1cm4gIikiX3M7CiAgICAgY2FzZSBU
b2tlblR5cGU6OlNlbWljb2xvbjoKLSAgICAgICAgcmV0dXJuICI7IjsKKyAgICAgICAgcmV0dXJu
ICI7Il9zOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkdQVS9XZWJHUFUvQWRh
cHRlci5tbSBiL1NvdXJjZS9XZWJHUFUvV2ViR1BVL0FkYXB0ZXIubW0KaW5kZXggMWJiYWQ2MWE2
Y2U3ZTI5NzU2ZGUxNTYxYWE0NjJkZTVkMWE2ODI2OC4uNjAwZDFkNmU3YmYwZjc3YmRkMmY1MThm
Zjk0MzUwNzgxMjUyZmEzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkdQVS9XZWJHUFUvQWRhcHRl
ci5tbQorKysgYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9BZGFwdGVyLm1tCkBAIC0xMjMsNyArMTIz
LDcgQEAgdm9pZCBBZGFwdGVyOjpyZXF1ZXN0RGV2aWNlKGNvbnN0IFdHUFVEZXZpY2VEZXNjcmlw
dG9yJiBkZXNjcmlwdG9yLCBDb21wbGV0aW9uSGEKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAot
ICAgIGNhbGxiYWNrKFdHUFVSZXF1ZXN0RGV2aWNlU3RhdHVzX1N1Y2Nlc3MsIERldmljZTo6Y3Jl
YXRlKG1fZGV2aWNlLCBkZXNjcmlwdG9yLmxhYmVsLCBtX2luc3RhbmNlKSwgeyB9KTsKKyAgICBj
YWxsYmFjayhXR1BVUmVxdWVzdERldmljZVN0YXR1c19TdWNjZXNzLCBEZXZpY2U6OmNyZWF0ZSht
X2RldmljZSwgU3RyaW5nIHsgZGVzY3JpcHRvci5sYWJlbCB9LCBtX2luc3RhbmNlKSwgeyB9KTsK
IH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViR1BVCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViR1BVL1dl
YkdQVS9CdWZmZXIubW0gYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9CdWZmZXIubW0KaW5kZXggZmJi
MmY0NGRmOWU1MzZjZTVjZmVkZTExZjc4NWRjOGNkYTFmYmRjNS4uM2I5MjIwMDMxOGRjNTE3ZDJh
MGViNmVjMzk5ZWE1NTQxYzZhNTE2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkdQVS9XZWJHUFUv
QnVmZmVyLm1tCisrKyBiL1NvdXJjZS9XZWJHUFUvV2ViR1BVL0J1ZmZlci5tbQpAQCAtMjkxLDcg
KzI5MSw3IEBAIHZvaWQgQnVmZmVyOjptYXBBc3luYyhXR1BVTWFwTW9kZUZsYWdzIG1vZGUsIHNp
emVfdCBvZmZzZXQsIHNpemVfdCBzaXplLCBDb21wbGV0CiAgICAgLy8gIklmIGFueSBvZiB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIHVuc2F0aXNmaWVkOiIKICAgICBpZiAoIXZhbGlkYXRl
TWFwQXN5bmMobW9kZSwgb2Zmc2V0LCByYW5nZVNpemUpKSB7CiAgICAgICAgIC8vICJSZWNvcmQg
YSB2YWxpZGF0aW9uIGVycm9yIG9uIHRoZSBjdXJyZW50IHNjb3BlLiIKLSAgICAgICAgbV9kZXZp
Y2UtPmdlbmVyYXRlQVZhbGlkYXRpb25FcnJvcigiVmFsaWRhdGlvbiBmYWlsdXJlLiIpOworICAg
ICAgICBtX2RldmljZS0+Z2VuZXJhdGVBVmFsaWRhdGlvbkVycm9yKCJWYWxpZGF0aW9uIGZhaWx1
cmUuIl9zKTsKIAogICAgICAgICAvLyAiUmV0dXJuIGEgcHJvbWlzZSByZWplY3RlZCB3aXRoIGFu
IE9wZXJhdGlvbkVycm9yIG9uIHRoZSBEZXZpY2UgdGltZWxpbmUuIgogICAgICAgICBjYWxsYmFj
ayhXR1BVQnVmZmVyTWFwQXN5bmNTdGF0dXNfRXJyb3IpOwpAQCAtMzY1LDcgKzM2NSw3IEBAIHZv
aWQgQnVmZmVyOjp1bm1hcCgpCiAgICAgLy8gIklmIGFueSBvZiB0aGUgZm9sbG93aW5nIHJlcXVp
cmVtZW50cyBhcmUgdW5tZXQiCiAgICAgaWYgKCF2YWxpZGF0ZVVubWFwKCkpIHsKICAgICAgICAg
Ly8gImdlbmVyYXRlIGEgdmFsaWRhdGlvbiBlcnJvciBhbmQgc3RvcC4iCi0gICAgICAgIG1fZGV2
aWNlLT5nZW5lcmF0ZUFWYWxpZGF0aW9uRXJyb3IoIlZhbGlkYXRpb24gZmFpbHVyZS4iKTsKKyAg
ICAgICAgbV9kZXZpY2UtPmdlbmVyYXRlQVZhbGlkYXRpb25FcnJvcigiVmFsaWRhdGlvbiBmYWls
dXJlLiJfcyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJHUFUvV2ViR1BVL0NvbW1hbmRFbmNvZGVyLm1tIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvQ29t
bWFuZEVuY29kZXIubW0KaW5kZXggYWU0YmFjNjA4NWI0YzVmMmVlNGNkOWM3YzNhM2UwYjAzZDc2
ZDc5Mi4uOTY5OGM4YTA5OWZmZDZjMDkzNzg0Mzk0YTgxMmMxODJmMGViN2Q1YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkdQVS9XZWJHUFUvQ29tbWFuZEVuY29kZXIubW0KKysrIGIvU291cmNlL1dl
YkdQVS9XZWJHUFUvQ29tbWFuZEVuY29kZXIubW0KQEAgLTE0OSw3ICsxNDksNyBAQCB2b2lkIENv
bW1hbmRFbmNvZGVyOjpjb3B5QnVmZmVyVG9CdWZmZXIoY29uc3QgQnVmZmVyJiBzb3VyY2UsIHVp
bnQ2NF90IHNvdXJjZU9mZgogICAgIC8vICJJZiBhbnkgb2YgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZSB1bnNhdGlzZmllZAogICAgIGlmICghdmFsaWRhdGVDb3B5QnVmZmVyVG9CdWZmZXIo
c291cmNlLCBzb3VyY2VPZmZzZXQsIGRlc3RpbmF0aW9uLCBkZXN0aW5hdGlvbk9mZnNldCwgc2l6
ZSkpIHsKICAgICAgICAgLy8gImdlbmVyYXRlIGEgdmFsaWRhdGlvbiBlcnJvciBhbmQgc3RvcC4i
Ci0gICAgICAgIG1fZGV2aWNlLT5nZW5lcmF0ZUFWYWxpZGF0aW9uRXJyb3IoIlZhbGlkYXRpb24g
ZmFpbHVyZS4iKTsKKyAgICAgICAgbV9kZXZpY2UtPmdlbmVyYXRlQVZhbGlkYXRpb25FcnJvcigi
VmFsaWRhdGlvbiBmYWlsdXJlLiJfcyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTIy
MCw3ICsyMjAsNyBAQCB2b2lkIENvbW1hbmRFbmNvZGVyOjpjbGVhckJ1ZmZlcihjb25zdCBCdWZm
ZXImIGJ1ZmZlciwgdWludDY0X3Qgb2Zmc2V0LCB1aW50NjRfdAogICAgIC8vICJJZiBhbnkgb2Yg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSB1bnNhdGlzZmllZCIKICAgICBpZiAoIXZhbGlk
YXRlQ2xlYXJCdWZmZXIoYnVmZmVyLCBvZmZzZXQsIHNpemUpKSB7CiAgICAgICAgIC8vICJnZW5l
cmF0ZSBhIHZhbGlkYXRpb24gZXJyb3IgYW5kIHN0b3AuIgotICAgICAgICBtX2RldmljZS0+Z2Vu
ZXJhdGVBVmFsaWRhdGlvbkVycm9yKCJWYWxpZGF0aW9uIGZhaWx1cmUuIik7CisgICAgICAgIG1f
ZGV2aWNlLT5nZW5lcmF0ZUFWYWxpZGF0aW9uRXJyb3IoIlZhbGlkYXRpb24gZmFpbHVyZS4iX3Mp
OwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0yNjIsNyArMjYyLDcgQEAgUmVmUHRyPENv
bW1hbmRCdWZmZXI+IENvbW1hbmRFbmNvZGVyOjpmaW5pc2goY29uc3QgV0dQVUNvbW1hbmRCdWZm
ZXJEZXNjcmlwdG9yJgogICAgIC8vICJJZiB2YWxpZGF0aW9uU3VjY2VlZGVkIGlzIGZhbHNlLCB0
aGVuOiIKICAgICBpZiAodmFsaWRhdGlvbkZhaWxlZCkgewogICAgICAgICAvLyAiR2VuZXJhdGUg
YSB2YWxpZGF0aW9uIGVycm9yLiIKLSAgICAgICAgbV9kZXZpY2UtPmdlbmVyYXRlQVZhbGlkYXRp
b25FcnJvcigiVmFsaWRhdGlvbiBmYWlsdXJlLiIpOworICAgICAgICBtX2RldmljZS0+Z2VuZXJh
dGVBVmFsaWRhdGlvbkVycm9yKCJWYWxpZGF0aW9uIGZhaWx1cmUuIl9zKTsKIAogICAgICAgICAv
LyBGSVhNRTogIlJldHVybiBhIG5ldyBpbnZhbGlkIEdQVUNvbW1hbmRCdWZmZXIuIgogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL0NvbXB1
dGVQaXBlbGluZS5tbSBiL1NvdXJjZS9XZWJHUFUvV2ViR1BVL0NvbXB1dGVQaXBlbGluZS5tbQpp
bmRleCBlZDliOGNmZjY0MTQzMDEyZTc3YjNlMjFmYzVlOWNhYjA3NTkzNjRjLi5lNGFkNzdhZjk3
YTNjMTM4OTIxYjQ3ZDAyNjU5OGI4YmM3NmRhNGEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViR1BV
L1dlYkdQVS9Db21wdXRlUGlwZWxpbmUubW0KKysrIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvQ29t
cHV0ZVBpcGVsaW5lLm1tCkBAIC03MSw3ICs3MSw3IEBAIHN0YXRpYyBNVExGdW5jdGlvbkNvbnN0
YW50VmFsdWVzICpjcmVhdGVDb25zdGFudFZhbHVlcyh1aW50MzJfdCBjb25zdGFudENvdW50LCBj
CiAgICAgYXV0byBjb25zdGFudFZhbHVlcyA9IFtNVExGdW5jdGlvbkNvbnN0YW50VmFsdWVzIG5l
d107CiAgICAgZm9yICh1aW50MzJfdCBpID0gMDsgaSA8IGNvbnN0YW50Q291bnQ7ICsraSkgewog
ICAgICAgICBjb25zdCBhdXRvJiBlbnRyeSA9IGNvbnN0YW50c1tpXTsKLSAgICAgICAgYXV0byBu
YW1lSXRlcmF0b3IgPSBlbnRyeVBvaW50SW5mb3JtYXRpb24uc3BlY2lhbGl6YXRpb25Db25zdGFu
dEluZGljZXMuZmluZChlbnRyeS5rZXkpOworICAgICAgICBhdXRvIG5hbWVJdGVyYXRvciA9IGVu
dHJ5UG9pbnRJbmZvcm1hdGlvbi5zcGVjaWFsaXphdGlvbkNvbnN0YW50SW5kaWNlcy5maW5kKFN0
cmluZyB7IGVudHJ5LmtleSB9KTsKICAgICAgICAgaWYgKG5hbWVJdGVyYXRvciA9PSBlbnRyeVBv
aW50SW5mb3JtYXRpb24uc3BlY2lhbGl6YXRpb25Db25zdGFudEluZGljZXMuZW5kKCkpCiAgICAg
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKICAgICAgICAgYXV0byBzcGVjaWFsaXphdGlvbkNvbnN0
YW50SW5kZXggPSBuYW1lSXRlcmF0b3ItPnZhbHVlOwpAQCAtMTUwLDcgKzE1MCw3IEBAIFJlZlB0
cjxDb21wdXRlUGlwZWxpbmU+IERldmljZTo6Y3JlYXRlQ29tcHV0ZVBpcGVsaW5lKGNvbnN0IFdH
UFVDb21wdXRlUGlwZWxpbmVECiAgICAgY29uc3QgUGlwZWxpbmVMYXlvdXQmIHBpcGVsaW5lTGF5
b3V0ID0gV2ViR1BVOjpmcm9tQVBJKGRlc2NyaXB0b3IubGF5b3V0KTsKICAgICBhdXRvIGxhYmVs
ID0gZnJvbUFQSShkZXNjcmlwdG9yLmxhYmVsKTsKIAotICAgIGF1dG8gbGlicmFyeUNyZWF0aW9u
UmVzdWx0ID0gY3JlYXRlTGlicmFyeShtX2RldmljZSwgc2hhZGVyTW9kdWxlLCBwaXBlbGluZUxh
eW91dCwgZGVzY3JpcHRvci5jb21wdXRlLmVudHJ5UG9pbnQsIGxhYmVsKTsKKyAgICBhdXRvIGxp
YnJhcnlDcmVhdGlvblJlc3VsdCA9IGNyZWF0ZUxpYnJhcnkobV9kZXZpY2UsIHNoYWRlck1vZHVs
ZSwgcGlwZWxpbmVMYXlvdXQsIFN0cmluZyB7IGRlc2NyaXB0b3IuY29tcHV0ZS5lbnRyeVBvaW50
IH0sIGxhYmVsKTsKICAgICBpZiAoIWxpYnJhcnlDcmVhdGlvblJlc3VsdCkKICAgICAgICAgcmV0
dXJuIG51bGxwdHI7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1F1ZXVlLm1t
IGIvU291cmNlL1dlYkdQVS9XZWJHUFUvUXVldWUubW0KaW5kZXggYjdiZDU3Y2Y1YTQyNmVjMjZl
NmY5YjFlMjlkOTlmZGVhZGY3MDVjNC4uMGQxYjM5YTg0ZjY0MjM1NzlhOWVjMDNiNWFhMjQxYmRl
NjMxZDY2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkdQVS9XZWJHUFUvUXVldWUubW0KKysrIGIv
U291cmNlL1dlYkdQVS9XZWJHUFUvUXVldWUubW0KQEAgLTEzMSw3ICsxMzEsNyBAQCB2b2lkIFF1
ZXVlOjpzdWJtaXQoVmVjdG9yPHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8Y29uc3QgQ29tbWFuZEJ1
ZmZlcj4+JiYgY29tbWFuZAogICAgIC8vICJJZiBhbnkgb2YgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zIGFyZSB1bnNhdGlzZmllZCIKICAgICBpZiAoIXZhbGlkYXRlU3VibWl0KCkpIHsKICAgICAg
ICAgLy8gImdlbmVyYXRlIGEgdmFsaWRhdGlvbiBlcnJvciBhbmQgc3RvcC4iCi0gICAgICAgIG1f
ZGV2aWNlLmdlbmVyYXRlQVZhbGlkYXRpb25FcnJvcigiVmFsaWRhdGlvbiBmYWlsdXJlLiIpOwor
ICAgICAgICBtX2RldmljZS5nZW5lcmF0ZUFWYWxpZGF0aW9uRXJyb3IoIlZhbGlkYXRpb24gZmFp
bHVyZS4iX3MpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViR1BVL1dlYkdQVS9TYW1wbGVyLm1tIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvU2FtcGxlci5t
bQppbmRleCAyZjdmNzI3ZjE3ZDk3M2QwYTQ5Y2UzNGVlZmFjNzEzODU3MzM3NmI2Li44MjczOTA0
OTk0Y2I3MDlmMDk0ZTI0NTg3OTlhY2VjNjc3NTg5YjcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
R1BVL1dlYkdQVS9TYW1wbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1NhbXBsZXIu
bW0KQEAgLTEzNiw3ICsxMzYsNyBAQCBSZWZQdHI8U2FtcGxlcj4gRGV2aWNlOjpjcmVhdGVTYW1w
bGVyKGNvbnN0IFdHUFVTYW1wbGVyRGVzY3JpcHRvciYgZGVzY3JpcHRvcikKICAgICAvLyAiSWYg
dmFsaWRhdGluZyBHUFVTYW1wbGVyRGVzY3JpcHRvcih0aGlzLCBkZXNjcmlwdG9yKSByZXR1cm5z
IGZhbHNlOiIKICAgICBpZiAoIXZhbGlkYXRlQ3JlYXRlU2FtcGxlcigqdGhpcywgZGVzY3JpcHRv
cikpIHsKICAgICAgICAgLy8gIkdlbmVyYXRlIGEgdmFsaWRhdGlvbiBlcnJvci4iCi0gICAgICAg
IGdlbmVyYXRlQVZhbGlkYXRpb25FcnJvcigiVmFsaWRhdGlvbiBmYWlsdXJlLiIpOworICAgICAg
ICBnZW5lcmF0ZUFWYWxpZGF0aW9uRXJyb3IoIlZhbGlkYXRpb24gZmFpbHVyZS4iX3MpOwogCiAg
ICAgICAgIC8vICJDcmVhdGUgYSBuZXcgaW52YWxpZCBHUFVTYW1wbGVyIGFuZCByZXR1cm4gdGhl
IHJlc3VsdC4iCiAgICAgICAgIHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkdQVS9XZWJHUFUvU2hhZGVyTW9kdWxlLm1tIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvU2hhZGVy
TW9kdWxlLm1tCmluZGV4IGUwMDc1NWNmYjU1YjRjNjZhODkyN2RkM2U1ZTAyZWE5MTAxNzBjNDQu
LjYwNWUzNzIzMzYxMDVhZTA4NzEzN2RiNjE2NDY5ODExMmJjZmY4N2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJHUFUvV2ViR1BVL1NoYWRlck1vZHVsZS5tbQorKysgYi9Tb3VyY2UvV2ViR1BVL1dl
YkdQVS9TaGFkZXJNb2R1bGUubW0KQEAgLTg4LDkgKzg4LDEwIEBAIHN0YXRpYyBSZWZQdHI8U2hh
ZGVyTW9kdWxlPiBlYXJseUNvbXBpbGVTaGFkZXJNb2R1bGUoaWQ8TVRMRGV2aWNlPiBkZXZpY2Us
IHN0ZDo6CiAgICAgICAgIGNvbnN0IGF1dG8mIGhpbnQgPSBzdXBwbGllZEhpbnRzLmhpbnRzW2ld
OwogICAgICAgICBpZiAoaGludC5uZXh0SW5DaGFpbikKICAgICAgICAgICAgIHJldHVybiBudWxs
cHRyOwotICAgICAgICBoaW50cy5hZGQoaGludC5rZXksIFdlYkdQVTo6ZnJvbUFQSShoaW50Lmhp
bnQubGF5b3V0KSk7CisgICAgICAgIFN0cmluZyBoaW50S2V5IHsgaGludC5rZXkgfTsKKyAgICAg
ICAgaGludHMuYWRkKGhpbnRLZXksIFdlYkdQVTo6ZnJvbUFQSShoaW50LmhpbnQubGF5b3V0KSk7
CiAgICAgICAgIGF1dG8gY29udmVydGVkUGlwZWxpbmVMYXlvdXQgPSBTaGFkZXJNb2R1bGU6OmNv
bnZlcnRQaXBlbGluZUxheW91dChXZWJHUFU6OmZyb21BUEkoaGludC5oaW50LmxheW91dCkpOwot
ICAgICAgICB3Z3NsSGludHMuYWRkKGhpbnQua2V5LCBXVEZNb3ZlKGNvbnZlcnRlZFBpcGVsaW5l
TGF5b3V0KSk7CisgICAgICAgIHdnc2xIaW50cy5hZGQoaGludEtleSwgV1RGTW92ZShjb252ZXJ0
ZWRQaXBlbGluZUxheW91dCkpOwogICAgIH0KICAgICBhdXRvIHByZXBhcmVSZXN1bHQgPSBXR1NM
OjpwcmVwYXJlKHN0ZDo6Z2V0PFdHU0w6OlN1Y2Nlc3NmdWxDaGVjaz4oY2hlY2tSZXN1bHQpLmFz
dCwgd2dzbEhpbnRzKTsKICAgICBhdXRvIGxpYnJhcnkgPSBTaGFkZXJNb2R1bGU6OmNyZWF0ZUxp
YnJhcnkoZGV2aWNlLCBwcmVwYXJlUmVzdWx0Lm1zbCwgV1RGTW92ZShsYWJlbCkpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQppbmRleCBmZDc0ZmVhYjFk
MWUxMmZiMDYxMmEwODU1ZGU2OGZjNzY0MWIxMTNkLi4wMDc0ZGNhNzcyN2E5Njg3NGZiMWVkMzg0
N2Y1MTllMTYwNGE1M2Y3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9XZWJWaWV3SW1wbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJW
aWV3SW1wbC5tbQpAQCAtNDQ3OCw3ICs0NDc4LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6c2V0UHJv
bWlzZWREYXRhRm9ySW1hZ2UoV2ViQ29yZTo6SW1hZ2UqIGltYWdlLCBOU1N0cmluZyAqZmlsZW4K
IAogICAgIFJldGFpblB0cjxOU0RhdGE+IGN1c3RvbURhdGFCdWZmZXI7CiAgICAgaWYgKG9yaWdp
bklkZW50aWZpZXIubGVuZ3RoKSB7Ci0gICAgICAgIFt0eXBlcyBhZGRPYmplY3Q6QChXZWJDb3Jl
OjpQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkpXTsKKyAgICAgICAgW3R5cGVzIGFk
ZE9iamVjdDpAKFdlYkNvcmU6OlBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKS5jaGFy
YWN0ZXJzKCkpXTsKICAgICAgICAgV2ViQ29yZTo6UGFzdGVib2FyZEN1c3RvbURhdGEgY3VzdG9t
RGF0YTsKICAgICAgICAgY3VzdG9tRGF0YS5zZXRPcmlnaW4ob3JpZ2luSWRlbnRpZmllcik7CiAg
ICAgICAgIGN1c3RvbURhdGFCdWZmZXIgPSBjdXN0b21EYXRhLmNyZWF0ZVNoYXJlZEJ1ZmZlcigp
LT5jcmVhdGVOU0RhdGEoKTsKQEAgLTQ0OTcsNyArNDQ5Nyw3IEBAIEFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0VORAogICAgIH0KIAogICAgIGlmIChjdXN0b21EYXRhQnVmZmVyKQotICAg
ICAgICBbcGFzdGVib2FyZCBzZXREYXRhOmN1c3RvbURhdGFCdWZmZXIuZ2V0KCkgZm9yVHlwZTpA
KFdlYkNvcmU6OlBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKSldOworICAgICAgICBb
cGFzdGVib2FyZCBzZXREYXRhOmN1c3RvbURhdGFCdWZmZXIuZ2V0KCkgZm9yVHlwZTpAKFdlYkNv
cmU6OlBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKS5jaGFyYWN0ZXJzKCkpXTsKIAog
ICAgIG1fcHJvbWlzZWRJbWFnZSA9IGltYWdlOwogfQpAQCAtNDYyNCw3ICs0NjI0LDcgQEAgdm9p
ZCBXZWJWaWV3SW1wbDo6cmVxdWVzdERPTVBhc3RlQWNjZXNzKFdlYkNvcmU6OkRPTVBhc3RlQWNj
ZXNzQ2F0ZWdvcnkgcGFzdGVBY2MKICAgICBBU1NFUlQoIW1fZG9tUGFzdGVSZXF1ZXN0SGFuZGxl
cik7CiAgICAgaGlkZURPTVBhc3RlTWVudVdpdGhSZXN1bHQoV2ViQ29yZTo6RE9NUGFzdGVBY2Nl
c3NSZXNwb25zZTo6RGVuaWVkRm9yR2VzdHVyZSk7CiAKLSAgICBOU0RhdGEgKmRhdGEgPSBbcGFz
dGVib2FyZEZvckFjY2Vzc0NhdGVnb3J5KHBhc3RlQWNjZXNzQ2F0ZWdvcnkpIGRhdGFGb3JUeXBl
OkAoV2ViQ29yZTo6UGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpKV07CisgICAgTlNE
YXRhICpkYXRhID0gW3Bhc3RlYm9hcmRGb3JBY2Nlc3NDYXRlZ29yeShwYXN0ZUFjY2Vzc0NhdGVn
b3J5KSBkYXRhRm9yVHlwZTpAKFdlYkNvcmU6OlBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5
cGUoKS5jaGFyYWN0ZXJzKCkpXTsKICAgICBhdXRvIGJ1ZmZlciA9IFdlYkNvcmU6OlNoYXJlZEJ1
ZmZlcjo6Y3JlYXRlKGRhdGEpOwogICAgIGlmIChXZWJDb3JlOjpQYXN0ZWJvYXJkQ3VzdG9tRGF0
YTo6ZnJvbVNoYXJlZEJ1ZmZlcihidWZmZXIuZ2V0KCkpLm9yaWdpbigpID09IG9yaWdpbklkZW50
aWZpZXIpIHsKICAgICAgICAgbV9wYWdlLT5ncmFudEFjY2Vzc1RvQ3VycmVudFBhc3RlYm9hcmRE
YXRhKHBhc3RlYm9hcmROYW1lRm9yQWNjZXNzQ2F0ZWdvcnkocGFzdGVBY2Nlc3NDYXRlZ29yeSkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24v
Q29jb2EvTG9jYWxBdXRoZW50aWNhdG9yLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
QXV0aGVudGljYXRpb24vQ29jb2EvTG9jYWxBdXRoZW50aWNhdG9yLm1tCmluZGV4IGJlZTZiOTIz
ODJjYWFmM2I0ZjlmMGU3Y2U4MmMwMWE3NjczMzI4MmMuLjJhMDVjZjQwM2RlZmMzYjQ1MDQ4OTE4
YTdlNDRkMDkwMzliODRmMDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YkF1dGhlbnRpY2F0aW9uL0NvY29hL0xvY2FsQXV0aGVudGljYXRvci5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9Mb2NhbEF1dGhlbnRpY2F0
b3IubW0KQEAgLTQ0NCw3ICs0NDQsNyBAQCB2b2lkIExvY2FsQXV0aGVudGljYXRvcjo6Y29udGlu
dWVNYWtlQ3JlZGVudGlhbEFmdGVyVXNlclZlcmlmaWNhdGlvbihTZWNBY2Nlc3NDbwogICAgICAg
ICBkZWxldGVEdXBsaWNhdGVDcmVkZW50aWFsKCk7CiAKICAgICAgICAgYXV0byBhdXRoRGF0YSA9
IGJ1aWxkQXV0aERhdGEoY3JlYXRpb25PcHRpb25zLnJwLmlkLCBmbGFncywgY291bnRlciwgYnVp
bGRBdHRlc3RlZENyZWRlbnRpYWxEYXRhKFZlY3Rvcjx1aW50OF90PihhYWd1aWRMZW5ndGgsIDAp
LCBjcmVkZW50aWFsSWQsIGNvc2VQdWJsaWNLZXkpKTsKLSAgICAgICAgYXV0byBhdHRlc3RhdGlv
bk9iamVjdCA9IGJ1aWxkQXR0ZXN0YXRpb25PYmplY3QoV1RGTW92ZShhdXRoRGF0YSksICIiLCB7
IH0sIEF0dGVzdGF0aW9uQ29udmV5YW5jZVByZWZlcmVuY2U6Ok5vbmUpOworICAgICAgICBhdXRv
IGF0dGVzdGF0aW9uT2JqZWN0ID0gYnVpbGRBdHRlc3RhdGlvbk9iamVjdChXVEZNb3ZlKGF1dGhE
YXRhKSwgU3RyaW5nIHsgZW1wdHlTdHJpbmcoKSB9LCB7IH0sIEF0dGVzdGF0aW9uQ29udmV5YW5j
ZVByZWZlcmVuY2U6Ok5vbmUpOwogICAgICAgICByZWNlaXZlUmVzcG9uZChBdXRoZW50aWNhdG9y
QXR0ZXN0YXRpb25SZXNwb25zZTo6Y3JlYXRlKGNyZWRlbnRpYWxJZCwgYXR0ZXN0YXRpb25PYmpl
Y3QsIEF1dGhlbnRpY2F0b3JBdHRhY2htZW50OjpQbGF0Zm9ybSkpOwogICAgICAgICByZXR1cm47
CiAgICAgfQpAQCAtNDcxLDcgKzQ3MSw3IEBAIHZvaWQgTG9jYWxBdXRoZW50aWNhdG9yOjpjb250
aW51ZU1ha2VDcmVkZW50aWFsQWZ0ZXJBdHRlc3RlZChWZWN0b3I8dWludDhfdD4mJiBjCiAKICAg
ICBpZiAoZXJyb3IpIHsKICAgICAgICAgTE9HX0VSUk9SKCJDb3VsZG4ndCBhdHRlc3Q6ICVzIiwg
U3RyaW5nKGVycm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKS51dGY4KCkuZGF0YSgpKTsKLSAgICAg
ICAgYXV0byBhdHRlc3RhdGlvbk9iamVjdCA9IGJ1aWxkQXR0ZXN0YXRpb25PYmplY3QoV1RGTW92
ZShhdXRoRGF0YSksICIiLCB7IH0sIEF0dGVzdGF0aW9uQ29udmV5YW5jZVByZWZlcmVuY2U6Ok5v
bmUpOworICAgICAgICBhdXRvIGF0dGVzdGF0aW9uT2JqZWN0ID0gYnVpbGRBdHRlc3RhdGlvbk9i
amVjdChXVEZNb3ZlKGF1dGhEYXRhKSwgU3RyaW5nIHsgZW1wdHlTdHJpbmcoKSB9LCB7IH0sIEF0
dGVzdGF0aW9uQ29udmV5YW5jZVByZWZlcmVuY2U6Ok5vbmUpOwogICAgICAgICByZWNlaXZlUmVz
cG9uZChBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZTo6Y3JlYXRlKGNyZWRlbnRpYWxJ
ZCwgYXR0ZXN0YXRpb25PYmplY3QsIEF1dGhlbnRpY2F0b3JBdHRhY2htZW50OjpQbGF0Zm9ybSkp
OwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtNDg4LDcgKzQ4OCw3IEBAIHZvaWQgTG9jYWxB
dXRoZW50aWNhdG9yOjpjb250aW51ZU1ha2VDcmVkZW50aWFsQWZ0ZXJBdHRlc3RlZChWZWN0b3I8
dWludDhfdD4mJiBjCiAgICAgICAgICAgICBjYm9yQXJyYXkuYXBwZW5kKGNib3I6OkNCT1JWYWx1
ZSh2ZWN0b3JGcm9tTlNEYXRhKChOU0RhdGEgKilhZG9wdENGKFNlY0NlcnRpZmljYXRlQ29weURh
dGEoKF9fYnJpZGdlIFNlY0NlcnRpZmljYXRlUmVmKWNlcnRpZmljYXRlc1tpXSkpLmdldCgpKSkp
OwogICAgICAgICBhdHRlc3RhdGlvblN0YXRlbWVudE1hcFtjYm9yOjpDQk9SVmFsdWUoIng1YyIp
XSA9IGNib3I6OkNCT1JWYWx1ZShXVEZNb3ZlKGNib3JBcnJheSkpOwogICAgIH0KLSAgICBhdXRv
IGF0dGVzdGF0aW9uT2JqZWN0ID0gYnVpbGRBdHRlc3RhdGlvbk9iamVjdChXVEZNb3ZlKGF1dGhE
YXRhKSwgImFwcGxlIiwgV1RGTW92ZShhdHRlc3RhdGlvblN0YXRlbWVudE1hcCksIGNyZWF0aW9u
T3B0aW9ucy5hdHRlc3RhdGlvbik7CisgICAgYXV0byBhdHRlc3RhdGlvbk9iamVjdCA9IGJ1aWxk
QXR0ZXN0YXRpb25PYmplY3QoV1RGTW92ZShhdXRoRGF0YSksICJhcHBsZSJfcywgV1RGTW92ZShh
dHRlc3RhdGlvblN0YXRlbWVudE1hcCksIGNyZWF0aW9uT3B0aW9ucy5hdHRlc3RhdGlvbik7CiAK
ICAgICBkZWxldGVEdXBsaWNhdGVDcmVkZW50aWFsKCk7CiAgICAgcmVjZWl2ZVJlc3BvbmQoQXV0
aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2U6OmNyZWF0ZShjcmVkZW50aWFsSWQsIGF0dGVz
dGF0aW9uT2JqZWN0LCBBdXRoZW50aWNhdG9yQXR0YWNobWVudDo6UGxhdGZvcm0pKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rp
b24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0
aW9uLm1tCmluZGV4IGViN2M2OTFmOWM5OTBmODQ3NWYwOTAyNzRkOWI2ZWUyMDFjMzkwYjAuLjll
OGJmNDViYWI1MTNhNTEyMTA0OWQwNTMxMTIyZTQ1NjNmMGE2ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpA
QCAtMzk4MCw3ICszOTgwLDcgQEAgLSAoQk9PTCljYW5QZXJmb3JtQWN0aW9uRm9yV2ViVmlldzoo
U0VMKWFjdGlvbiB3aXRoU2VuZGVyOihpZClzZW5kZXIKICAgICAgICAgaWYgKGZvY3VzZWREb2N1
bWVudE9yaWdpbi5pc0VtcHR5KCkpCiAgICAgICAgICAgICByZXR1cm4gTk87CiAKLSAgICAgICAg
TlNBcnJheSAqYWxsQ3VzdG9tUGFzdGVib2FyZERhdGEgPSBbcGFzdGVib2FyZCBkYXRhRm9yUGFz
dGVib2FyZFR5cGU6QChXZWJDb3JlOjpQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkp
IGluSXRlbVNldDppbmRpY2VzXTsKKyAgICAgICAgTlNBcnJheSAqYWxsQ3VzdG9tUGFzdGVib2Fy
ZERhdGEgPSBbcGFzdGVib2FyZCBkYXRhRm9yUGFzdGVib2FyZFR5cGU6QChXZWJDb3JlOjpQYXN0
ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkuY2hhcmFjdGVycygpKSBpbkl0ZW1TZXQ6aW5k
aWNlc107CiAgICAgICAgIGZvciAoTlNEYXRhICpkYXRhIGluIGFsbEN1c3RvbVBhc3RlYm9hcmRE
YXRhKSB7CiAgICAgICAgICAgICBhdXRvIGJ1ZmZlciA9IFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcjo6
Y3JlYXRlKGRhdGEpOwogICAgICAgICAgICAgaWYgKFdlYkNvcmU6OlBhc3RlYm9hcmRDdXN0b21E
YXRhOjpmcm9tU2hhcmVkQnVmZmVyKGJ1ZmZlci5nZXQoKSkub3JpZ2luKCkgPT0gZm9jdXNlZERv
Y3VtZW50T3JpZ2luKQpAQCAtNjk0NSw3ICs2OTQ1LDcgQEAgc3RhdGljIEJPT0wgYWxsUGFzdGVi
b2FyZEl0ZW1PcmlnaW5zTWF0Y2hPcmlnaW4oVUlQYXN0ZWJvYXJkICpwYXN0ZWJvYXJkLCBjb25z
dAogICAgICAgICByZXR1cm4gTk87CiAKICAgICBhdXRvICppbmRpY2VzID0gW05TSW5kZXhTZXQg
aW5kZXhTZXRXaXRoSW5kZXhlc0luUmFuZ2U6TlNNYWtlUmFuZ2UoMCwgW3Bhc3RlYm9hcmQgbnVt
YmVyT2ZJdGVtc10pXTsKLSAgICBhdXRvICphbGxDdXN0b21EYXRhID0gW3Bhc3RlYm9hcmQgZGF0
YUZvclBhc3RlYm9hcmRUeXBlOkAoV2ViQ29yZTo6UGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29h
VHlwZSgpKSBpbkl0ZW1TZXQ6aW5kaWNlc107CisgICAgYXV0byAqYWxsQ3VzdG9tRGF0YSA9IFtw
YXN0ZWJvYXJkIGRhdGFGb3JQYXN0ZWJvYXJkVHlwZTpAKFdlYkNvcmU6OlBhc3RlYm9hcmRDdXN0
b21EYXRhOjpjb2NvYVR5cGUoKS5jaGFyYWN0ZXJzKCkpIGluSXRlbVNldDppbmRpY2VzXTsKICAg
ICBpZiAoIWFsbEN1c3RvbURhdGEuY291bnQpCiAgICAgICAgIHJldHVybiBOTzsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJOU1Bhc3RlYm9hcmRFeHRyYXMu
bW0gYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYk5TUGFzdGVib2FyZEV4dHJhcy5t
bQppbmRleCBlNWI0NDRiZmE1YzI4NzI4Mzg3YzcyMzMyODI5MWE4MjAzZDFiMjU0Li4zZTUyZjFi
YmFjZGI1MWI4ZWE1NDc3YzZiMGQ5OWI5NWNiYWQwYmMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9NaXNjL1dlYk5TUGFzdGVib2FyZEV4dHJhcy5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYk5TUGFzdGVib2FyZEV4dHJhcy5tbQpAQCAtMjc2LDcg
KzI3Niw3IEBAIC0gKGlkKV93ZWJfZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlRm9yRWxlbWVudDoo
RE9NRWxlbWVudCAqKWVsZW1lbnQKICAgICBOU1N0cmluZyAqb3JpZ2luSWRlbnRpZmllciA9IGNv
cmUoZWxlbWVudCktPmRvY3VtZW50KCkub3JpZ2luSWRlbnRpZmllckZvclBhc3RlYm9hcmQoKTsK
ICAgICBSZXRhaW5QdHI8TlNEYXRhPiBjdXN0b21EYXRhQnVmZmVyOwogICAgIGlmIChvcmlnaW5J
ZGVudGlmaWVyLmxlbmd0aCkgewotICAgICAgICBbdHlwZXMgYWRkT2JqZWN0OkAoUGFzdGVib2Fy
ZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpKV07CisgICAgICAgIFt0eXBlcyBhZGRPYmplY3Q6QChQ
YXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkuY2hhcmFjdGVycygpKV07CiAgICAgICAg
IFBhc3RlYm9hcmRDdXN0b21EYXRhIGN1c3RvbURhdGE7CiAgICAgICAgIGN1c3RvbURhdGEuc2V0
T3JpZ2luKG9yaWdpbklkZW50aWZpZXIpOwogICAgICAgICBjdXN0b21EYXRhQnVmZmVyID0gY3Vz
dG9tRGF0YS5jcmVhdGVTaGFyZWRCdWZmZXIoKS0+Y3JlYXRlTlNEYXRhKCk7CkBAIC0zMDUsNyAr
MzA1LDcgQEAgLSAoaWQpX3dlYl9kZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2VGb3JFbGVtZW50OihE
T01FbGVtZW50ICopZWxlbWVudAogCiAgICAgW3NlbGYgX3dlYl93cml0ZUltYWdlOm5pbCBlbGVt
ZW50OmVsZW1lbnQgVVJMOlVSTCB0aXRsZTp0aXRsZSBhcmNoaXZlOmFyY2hpdmUgdHlwZXM6dHlw
ZXMuZ2V0KCkgc291cmNlOnNvdXJjZV07CiAgICAgaWYgKGN1c3RvbURhdGFCdWZmZXIpCi0gICAg
ICAgIFtzZWxmIHNldERhdGE6Y3VzdG9tRGF0YUJ1ZmZlci5nZXQoKSBmb3JUeXBlOkAoUGFzdGVi
b2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpKV07CisgICAgICAgIFtzZWxmIHNldERhdGE6Y3Vz
dG9tRGF0YUJ1ZmZlci5nZXQoKSBmb3JUeXBlOkAoUGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29h
VHlwZSgpLmNoYXJhY3RlcnMoKSldOwogCiAgICAgW3NlbGYgc2V0UHJvcGVydHlMaXN0OkBbZXh0
ZW5zaW9uXSBmb3JUeXBlOmxlZ2FjeUZpbGVzUHJvbWlzZVBhc3RlYm9hcmRUeXBlKCldOwogCmRp
ZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZDcyNTAy
ZjQwYjI5ZmI3NDVkZjI3MmE3NzZiYTk3YWU0NjFlMTYxMS4uYzk1NTkzN2E3N2E1ODBhYWJmZDU1
YTU0NDI4MGU2YmQ3ZWJhNDViOSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rv
b2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIyLTAzLTI0ICBDaHJpcyBEdW1leiAg
PGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgU3RhcnQgcHJlcGFyaW5nIFdlYkNvcmUgZm9y
IG1ha2luZyB0aGUgU3RyaW5nKGNvbnN0IGNoYXIqKSBjb25zdHJ1Y3RvciBleHBsaWNpdAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4MzM2CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU3RhcnQgcHJlcGFy
aW5nIFdlYkNvcmUgZm9yIG1ha2luZyB0aGUgU3RyaW5nKGNvbnN0IGNoYXIqKSBjb25zdHJ1Y3Rv
ciBleHBsaWNpdC4KKyAgICAgICAgTWFraW5nIHRoaXMgY29uc3RydWN0b3IgZXhwbGljaXQgaGVs
cHMgY2F0Y2ggYXQgY29tcGlsZSB0aW1lIGNhc2VzIHdoZXJlIHRoZSAiIl9zCisgICAgICAgIHBy
ZWZpeCBpcyBtaXNzaW5nIG9uIFN0cmluZyBsaXRlcmFscy4KKworICAgICAgICAqIFRlc3RXZWJL
aXRBUEkvVGVzdHMvbWFjL0RyYWdBbmREcm9wVGVzdHNNYWMubW06CisgICAgICAgIChURVNUKToK
KwogMjAyMi0wMy0yNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAg
IEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudCgpIHNob3VsZCB0YWtlIGluIFN0
cmluZ1ZpZXdzIGluc3RlYWQgb2YgU3RyaW5ncwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9tYWMvRHJhZ0FuZERyb3BUZXN0c01hYy5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvbWFjL0RyYWdBbmREcm9wVGVzdHNNYWMubW0KaW5kZXggNTIxOWM5NGRkMzlkYjQ4
OWZiM2E0NmExNGQ4YTkzNTEzZDI4NGVmYy4uODE4YjAwZjNiNWY2NDg4NzllMzUzNTEzYzUzNDM5
Zjc0ZWRiYWVlNCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvRHJh
Z0FuZERyb3BUZXN0c01hYy5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9E
cmFnQW5kRHJvcFRlc3RzTWFjLm1tCkBAIC0xODEsNyArMTgxLDcgQEAgQUxMT1dfREVQUkVDQVRF
RF9ERUNMQVJBVElPTlNfRU5ECiAgICAgRVhQRUNUX0VRKGltYWdlRnJvbVVuaXF1ZVBhc3RlYm9h
cmQuVElGRlJlcHJlc2VudGF0aW9uLmxlbmd0aCwgaW1hZ2VGcm9tRHJhZ1Bhc3RlYm9hcmQuVElG
RlJlcHJlc2VudGF0aW9uLmxlbmd0aCk7CiAgICAgRVhQRUNUX1RSVUUoTlNFcXVhbFNpemVzKGlt
YWdlRnJvbURyYWdQYXN0ZWJvYXJkLnNpemUsIGltYWdlRnJvbVVuaXF1ZVBhc3RlYm9hcmQuc2l6
ZSkpOwogICAgIEVYUEVDVF9GQUxTRShOU0VxdWFsU2l6ZXMoTlNaZXJvU2l6ZSwgaW1hZ2VGcm9t
VW5pcXVlUGFzdGVib2FyZC5zaXplKSk7Ci0gICAgRVhQRUNUX0dUKFtkcmFnUGFzdGVib2FyZCBk
YXRhRm9yVHlwZTpAKFdlYkNvcmU6OlBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKSld
Lmxlbmd0aCwgMHUpOworICAgIEVYUEVDVF9HVChbZHJhZ1Bhc3RlYm9hcmQgZGF0YUZvclR5cGU6
QChXZWJDb3JlOjpQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkuY2hhcmFjdGVycygp
KV0ubGVuZ3RoLCAwdSk7CiB9CiAKIFRFU1QoRHJhZ0FuZERyb3BUZXN0cywgUHJvdmlkZUltYWdl
RGF0YUFzVHlwZUlkZW50aWZpZXJzKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455723</attachid>
            <date>2022-03-24 21:58:44 -0700</date>
            <delta_ts>2022-03-24 22:53:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238336-20220324215842.patch</filename>
            <type>text/plain</type>
            <size>421228</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxODQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
OTBiMzE2MDQ4NDI3MDQzZjgyZjc4OWRlNmEyNDFlODBhZDAzNzhmLi5jZTQyYjA2NjBhYzY2NjU4
ZjVmMTE5NzlhYWZjNTk5ZjNhZWZjZGQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMiBAQAorMjAyMi0wMy0yNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFN0YXJ0IHByZXBhcmluZyBXZWJDb3JlIGZvciBtYWtpbmcgdGhlIFN0cmluZyhj
b25zdCBjaGFyKikgY29uc3RydWN0b3IgZXhwbGljaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODMzNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0YXJ0IHByZXBhcmluZyBXZWJDb3JlIGZvciBtYWtp
bmcgdGhlIFN0cmluZyhjb25zdCBjaGFyKikgY29uc3RydWN0b3IgZXhwbGljaXQuCisgICAgICAg
IE1ha2luZyB0aGlzIGNvbnN0cnVjdG9yIGV4cGxpY2l0IGhlbHBzIGNhdGNoIGF0IGNvbXBpbGUg
dGltZSBjYXNlcyB3aGVyZSB0aGUgIiJfcworICAgICAgICBwcmVmaXggaXMgbWlzc2luZyBvbiBT
dHJpbmcgbGl0ZXJhbHMuCisKKyAgICAgICAgKiBBUEkvSlNWYWx1ZS5tbToKKyAgICAgICAgKGNy
ZWF0ZVN0cnVjdEhhbmRsZXJNYXApOgorICAgICAgICAoaGFuZGVyRm9yU3RydWN0VGFnKToKKyAg
ICAgICAgKiBBUEkvSlNXcmFwcGVyTWFwLm1tOgorICAgICAgICAoYWxsb2NhdGVDb25zdHJ1Y3Rv
ckZvckN1c3RvbUNsYXNzKToKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckF1
ZGl0QWdlbnQuY3BwOgorICAgICAgICAoSW5zcGVjdG9yOjpJbnNwZWN0b3JBdWRpdEFnZW50Ojpy
dW4pOgorCiAyMDIyLTAzLTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAg
ICAgICAgRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KCkgc2hvdWxkIHRha2Ug
aW4gU3RyaW5nVmlld3MgaW5zdGVhZCBvZiBTdHJpbmdzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDNjOGUzY2JhMzdiOWNiODQz
ZTk5ZDNlOTNiMGNmY2IwMDAxMjVlMGQuLmYwYzg0Y2VmMzA4NzAxNWU1M2Q3MTU4ODMwMmQzNjNj
ODM3MzZjNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
VEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjItMDMtMjQgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBTdGFydCBwcmVwYXJpbmcgV2ViQ29yZSBmb3Ig
bWFraW5nIHRoZSBTdHJpbmcoY29uc3QgY2hhciopIGNvbnN0cnVjdG9yIGV4cGxpY2l0CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzgzMzYKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdGFydCBwcmVwYXJp
bmcgV2ViQ29yZSBmb3IgbWFraW5nIHRoZSBTdHJpbmcoY29uc3QgY2hhciopIGNvbnN0cnVjdG9y
IGV4cGxpY2l0LgorICAgICAgICBNYWtpbmcgdGhpcyBjb25zdHJ1Y3RvciBleHBsaWNpdCBoZWxw
cyBjYXRjaCBhdCBjb21waWxlIHRpbWUgY2FzZXMgd2hlcmUgdGhlICIiX3MKKyAgICAgICAgcHJl
Zml4IGlzIG1pc3Npbmcgb24gU3RyaW5nIGxpdGVyYWxzLgorCisgICAgICAgICogd3RmL3RleHQv
VGV4dFN0cmVhbS5oOgorICAgICAgICAoV1RGOjpUZXh0U3RyZWFtOjpkdW1wUHJvcGVydHkpOgor
CiAyMDIyLTAzLTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAg
U3RyaW5nOjpzcGxpdCgpIHNob3VsZCB0YWtlIGluIGEgU3RyaW5nVmlldyBpbnN0ZWFkIG9mIGEg
U3RyaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKaW5kZXggNmU1YzZjMWQyNjZlOTcwYjM5ODUzMjI2ZGU3ZmZiNTllMGY5
YzBhMy4uYWQyNzViYTEzZTIxNjJhMzFhZWJhMDQ2YmJkZmVlYmY2YTU1NjMwNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDUxMSBAQAorMjAyMi0wMy0yNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBw
bGUuY29tPgorCisgICAgICAgIFN0YXJ0IHByZXBhcmluZyBXZWJDb3JlIGZvciBtYWtpbmcgdGhl
IFN0cmluZyhjb25zdCBjaGFyKikgY29uc3RydWN0b3IgZXhwbGljaXQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODMzNgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0YXJ0IHByZXBhcmluZyBXZWJDb3Jl
IGZvciBtYWtpbmcgdGhlIFN0cmluZyhjb25zdCBjaGFyKikgY29uc3RydWN0b3IgZXhwbGljaXQu
CisgICAgICAgIE1ha2luZyB0aGlzIGNvbnN0cnVjdG9yIGV4cGxpY2l0IGhlbHBzIGNhdGNoIGF0
IGNvbXBpbGUgdGltZSBjYXNlcyB3aGVyZSB0aGUgIiJfcworICAgICAgICBwcmVmaXggaXMgbWlz
c2luZyBvbiBTdHJpbmcgbGl0ZXJhbHMuCisKKyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5LWFt
cy11aS9BcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Y29udmVydEFuZFZhbGlkYXRlQXBwbGVQYXlBTVNVSVJlcXVlc3QpOgorICAgICAgICAqIE1vZHVs
ZXMvYXBwbGVwYXkvQXBwbGVQYXlDb250YWN0RmllbGQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Y29udmVydEFuZFZhbGlkYXRlKToKKyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5
TWVyY2hhbnRDYXBhYmlsaXR5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRBbmRWYWxp
ZGF0ZSk6CisgICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVJlcXVlc3RCYXNlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRBbmRWYWxpZGF0ZSk6CisgICAgICAgICogTW9k
dWxlcy9hcHBsZXBheS9BcHBsZVBheVNlc3Npb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBw
bGVQYXlTZXNzaW9uOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9u
OjpvcGVuUGF5bWVudFNldHVwKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvbjo6
YmVnaW4pOgorICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTZXR1cC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpBcHBsZVBheVNldHVwOjpiZWdpbik6CisgICAgICAgICogTW9kdWxl
cy9hcHBsZXBheS9QYXltZW50SW5zdGFsbG1lbnRDb25maWd1cmF0aW9uLm1tOgorICAgICAgICAo
V2ViQ29yZTo6UGF5bWVudEluc3RhbGxtZW50Q29uZmlndXJhdGlvbjo6Y3JlYXRlKToKKyAgICAg
ICAgKiBNb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRSZXF1ZXN0VmFsaWRhdG9yLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6UGF5bWVudFJlcXVlc3RWYWxpZGF0b3I6OnZhbGlkYXRlVG90YWwpOgorICAg
ICAgICAoV2ViQ29yZTo6dmFsaWRhdGVDb3VudHJ5Q29kZSk6CisgICAgICAgIChXZWJDb3JlOjp2
YWxpZGF0ZUN1cnJlbmN5Q29kZSk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0ZU1lcmNoYW50
Q2FwYWJpbGl0aWVzKToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRlU3VwcG9ydGVkTmV0d29y
a3MpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGVTaGlwcGluZ01ldGhvZCk6CisgICAgICAg
ICogTW9kdWxlcy9hcHBsZXBheS9QYXltZW50U2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpQYXltZW50U2Vzc2lvbjo6Y2FuQ3JlYXRlU2Vzc2lvbik6CisgICAgICAgICogTW9kdWxlcy9h
cHBsZXBheS9wYXltZW50cmVxdWVzdC9BcHBsZVBheVBheW1lbnRIYW5kbGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmNvbnZlcnRBbmRWYWxpZGF0ZUFwcGxlUGF5UmVxdWVzdCk6CisgICAgICAg
ICogTW9kdWxlcy9hcHBsaWNhdGlvbm1hbmlmZXN0L0FwcGxpY2F0aW9uTWFuaWZlc3RQYXJzZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGljYXRpb25NYW5pZmVzdFBhcnNlcjo6cGFyc2VJ
Y29ucyk6CisgICAgICAgIChXZWJDb3JlOjpBcHBsaWNhdGlvbk1hbmlmZXN0UGFyc2VyOjpwYXJz
ZVNjb3BlKToKKyAgICAgICAgKiBNb2R1bGVzL2NhY2hlL1dpbmRvd09yV29ya2VyR2xvYmFsU2Nv
cGVDYWNoZXMuY3BwOgorICAgICAgICAqIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvSW5pdERhdGFS
ZWdpc3RyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzYW5pdGl6ZUtleWlkcyk6CisgICAgICAg
ICogTW9kdWxlcy9lbnRyaWVzYXBpL0RPTUZpbGVTeXN0ZW0uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6bGlzdERpcmVjdG9yeVdpdGhNZXRhZGF0YSk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0
ZVBhdGhJc0V4cGVjdGVkVHlwZSk6CisgICAgICAgICogTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlD
b25zdW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaEJvZHlDb25zdW1lcjo6cGFja2Fn
ZUZvcm1EYXRhKToKKyAgICAgICAgKiBNb2R1bGVzL2ZldGNoL0ZldGNoSGVhZGVycy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpmaWxsSGVhZGVyTWFwKToKKyAgICAgICAgKiBNb2R1bGVzL2ZldGNo
L0ZldGNoTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoTG9hZGVyOjpzdGFydExv
YWRpbmdCbG9iVVJMKToKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5
c3RlbUZpbGVIYW5kbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUZpbGVIYW5k
bGU6OmdldEZpbGUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUZpbGVIYW5kbGU6OmNy
ZWF0ZVN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vz
cy9GaWxlU3lzdGVtSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5k
bGU6OmlzU2FtZUVudHJ5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5k
bGU6Om1vdmUpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlSWRlbnRp
Zmllci5oOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQktleURhdGEuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SURCS2V5RGF0YTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OklEQktleURhdGE6OmRlY29kZSk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURC
S2V5UmFuZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCS2V5UmFuZ2U6OmluY2x1ZGVzKToK
KyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VyaWFsaXphdGlvbi5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpzZXJpYWxpemVJREJLZXlQYXRoKToKKyAgICAgICAgKFdlYkNv
cmU6OmRlc2VyaWFsaXplSURCS2V5UGF0aCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL0lEQlNlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQlNl
cnZlcjo6Z2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKToKKyAgICAgICAgKFdlYkNvcmU6
OklEQlNlcnZlcjo6SURCU2VydmVyOjpnZXRPcmlnaW5zIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OklEQlNlcnZlcjo6SURCU2VydmVyOjpjbG9zZUFuZERlbGV0ZURhdGFiYXNlc01vZGlmaWVk
U2luY2UpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpJREJTZXJ2ZXI6OmNsb3NlQW5k
RGVsZXRlRGF0YWJhc2VzRm9yT3JpZ2lucyk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6
OnJlbW92ZUFsbERhdGFiYXNlc0ZvckZ1bGxPcmlnaW5QYXRoKToKKyAgICAgICAgKFdlYkNvcmU6
OklEQlNlcnZlcjo6SURCU2VydmVyOjpyZW5hbWVPcmlnaW4pOgorICAgICAgICAoV2ViQ29yZTo6
SURCU2VydmVyOjpJREJTZXJ2ZXI6OnVwZ3JhZGVGaWxlc0lmTmVjZXNzYXJ5KToKKyAgICAgICAg
KFdlYkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVyOjp1cGdyYWRlZERhdGFiYXNlRGlyZWN0b3J5
KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5SURCQmFja2luZ1N0
b3JlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6TWVtb3J5SURCQmFja2luZ1N0
b3JlOjpiZWdpblRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6TWVt
b3J5SURCQmFja2luZ1N0b3JlOjphYm9ydFRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OklEQlNlcnZlcjo6TWVtb3J5SURCQmFja2luZ1N0b3JlOjpjb21taXRUcmFuc2FjdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6Ok1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6Z2VuZXJh
dGVLZXlOdW1iZXIpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlP
YmplY3RTdG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6Ok1lbW9yeU9iamVj
dFN0b3JlOjp1cGRhdGVJbmRleGVzRm9yUHV0UmVjb3JkKToKKyAgICAgICAgKiBNb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OklEQlNlcnZlcjo6djFSZWNvcmRzVGFibGVTY2hlbWEpOgorICAgICAgICAoV2ViQ29yZTo6
SURCU2VydmVyOjp2MVJlY29yZHNUYWJsZVNjaGVtYUFsdGVybmF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpJREJTZXJ2ZXI6OnYyUmVjb3Jkc1RhYmxlU2NoZW1hKToKKyAgICAgICAgKFdlYkNvcmU6
OklEQlNlcnZlcjo6djJSZWNvcmRzVGFibGVTY2hlbWFBbHRlcm5hdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6SURCU2VydmVyOjp2MUluZGV4UmVjb3Jkc1RhYmxlU2NoZW1hKToKKyAgICAgICAgKFdl
YkNvcmU6OklEQlNlcnZlcjo6djFJbmRleFJlY29yZHNUYWJsZVNjaGVtYUFsdGVybmF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OnYySW5kZXhSZWNvcmRzVGFibGVTY2hlbWEpOgor
ICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjp2MkluZGV4UmVjb3Jkc1RhYmxlU2NoZW1hQWx0
ZXJuYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6U1FMaXRlSURCQmFja2luZ1N0
b3JlOjplbmNvZGVEYXRhYmFzZU5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpT
UUxpdGVJREJCYWNraW5nU3RvcmU6OmZ1bGxEYXRhYmFzZVBhdGhGb3JEaXJlY3RvcnkpOgorICAg
ICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpTUUxpdGVJREJCYWNraW5nU3RvcmU6OmdldE9yRXN0
YWJsaXNoRGF0YWJhc2VJbmZvKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6U1FMaXRl
SURCQmFja2luZ1N0b3JlOjp1cGRhdGVBbGxJbmRleGVzRm9yQWRkUmVjb3JkKToKKyAgICAgICAg
KFdlYkNvcmU6OklEQlNlcnZlcjo6U1FMaXRlSURCQmFja2luZ1N0b3JlOjp1bmNoZWNrZWRHZXRL
ZXlHZW5lcmF0b3JWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlNRTGl0ZUlE
QkJhY2tpbmdTdG9yZTo6dW5jaGVja2VkU2V0S2V5R2VuZXJhdG9yVmFsdWUpOgorICAgICAgICAo
V2ViQ29yZTo6SURCU2VydmVyOjpTUUxpdGVJREJCYWNraW5nU3RvcmU6OmdlbmVyYXRlS2V5TnVt
YmVyKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJh
c2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6
Y3JlYXRlT2JqZWN0U3RvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJ
REJEYXRhYmFzZTo6ZGVsZXRlT2JqZWN0U3RvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2Vy
dmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6cmVuYW1lT2JqZWN0U3RvcmUpOgorICAgICAgICAoV2Vi
Q29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6Y2xlYXJPYmplY3RTdG9yZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpjcmVhdGVJbmRl
eCk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpkZWxl
dGVJbmRleCk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNl
OjpyZW5hbWVJbmRleCk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRh
dGFiYXNlOjpwdXRPckFkZCk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlE
QkRhdGFiYXNlOjpwdXRPckFkZEFmdGVyU3BhY2VDaGVjayk6CisgICAgICAgIChXZWJDb3JlOjpJ
REJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpnZXRSZWNvcmQpOgorICAgICAgICAoV2ViQ29y
ZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6Z2V0QWxsUmVjb3Jkcyk6CisgICAgICAg
IChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpnZXRDb3VudCk6CisgICAg
ICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpkZWxldGVSZWNvcmQp
OgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6b3BlbkN1
cnNvcik6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpp
dGVyYXRlQ3Vyc29yKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0
YWJhc2U6OmNvbW1pdFRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6
VW5pcXVlSURCRGF0YWJhc2U6OmFib3J0VHJhbnNhY3Rpb24pOgorICAgICAgICAqIE1vZHVsZXMv
aW5kZXhlZGRiL3NoYXJlZC9JREJJbmRleEluZm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURC
SW5kZXhJbmZvOjpsb2dnaW5nU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlh
Y29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFD
b250cm9sc0hvc3Q6OmxheW91dFRyYWl0c0NsYXNzTmFtZSBjb25zdCk6CisgICAgICAgICogTW9k
dWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFSZWNvcmRlcjo6Y3JlYXRlKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc291cmNlL01l
ZGlhU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmFkZFZQOUZ1bGxSYW5nZVZpZGVvRmxh
Z1RvQ29udGVudFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTb3VyY2U6OmlzVHlwZVN1
cHBvcnRlZCk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVRyYWNrQ29uc3Ry
YWludHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2V0KToKKyAgICAgICAgKFdlYkNvcmU6OmNv
bnZlcnRUb0ludGVybmFsRm9ybSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENJ
Y2VDYW5kaWRhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UlRDSWNlQ2FuZGlkYXRlOjpjcmVh
dGUpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UlRDUGVlckNvbm5lY3Rpb246OnNldExvY2FsRGVzY3JpcHRp
b24pOgorICAgICAgICAoV2ViQ29yZTo6UlRDUGVlckNvbm5lY3Rpb246OmFkZEljZUNhbmRpZGF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENQZWVyQ29ubmVjdGlvbjo6aWNlU2VydmVyc0Zyb21D
b25maWd1cmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1BlZXJDb25uZWN0aW9uOjpjZXJ0
aWZpY2F0ZXNGcm9tQ29uZmlndXJhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpSVENQZWVyQ29u
bmVjdGlvbjo6aW5pdGlhbGl6ZUNvbmZpZ3VyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6UlRD
UGVlckNvbm5lY3Rpb246OnNldENvbmZpZ3VyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6UlRD
UGVlckNvbm5lY3Rpb246OmNoYWluT3BlcmF0aW9uKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJU
Q1J0cFNGcmFtZVRyYW5zZm9ybWVyOjp0cmFuc2Zvcm0pOgorICAgICAgICAqIE1vZHVsZXMvbWVk
aWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpMaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OmRvQ3JlYXRl
QW5zd2VyKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJS
VENSdHBUcmFuc2NlaXZlckJhY2tlbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9SdHBDb2Rl
Y0NhcGFiaWxpdHkpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xp
YldlYlJUQ1V0aWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvRXhjZXB0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OnRvUlRDRXJyb3IpOgorICAgICAgICAqIE1vZHVsZXMvbW9kZWwtZWxlbWVu
dC9zY2VuZWtpdC9TY2VuZUtpdE1vZGVsTG9hZGVyVVNELm1tOgorICAgICAgICAoV2ViQ29yZTo6
d3JpdGVUb1RlbXBvcmFyeUZpbGUpOgorICAgICAgICAqIE1vZHVsZXMvcGF5bWVudHJlcXVlc3Qv
UGF5bWVudFJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y2hlY2tBbmRDYW5vbmljYWxp
emVEZXRhaWxzKToKKyAgICAgICAgKFdlYkNvcmU6OlBheW1lbnRSZXF1ZXN0OjpzaG93KToKKyAg
ICAgICAgKiBNb2R1bGVzL3BpY3R1cmVpbnBpY3R1cmUvSFRNTFZpZGVvRWxlbWVudFBpY3R1cmVJ
blBpY3R1cmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudFBpY3R1cmVJ
blBpY3R1cmU6OnJlcXVlc3RQaWN0dXJlSW5QaWN0dXJlKToKKyAgICAgICAgKiBNb2R1bGVzL3Bs
dWdpbnMvWW91VHViZVBsdWdpblJlcGxhY2VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ollv
dVR1YmVQbHVnaW5SZXBsYWNlbWVudDo6aW5zdGFsbFJlcGxhY2VtZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OnByb2Nlc3NBbmRDcmVhdGVZb3VUdWJlVVJMKToKKyAgICAgICAgKiBNb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6OnVwZGF0ZURhdGFTb3Vy
Y2UpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1w
bDo6c291cmNlU3RvcHBlZCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNh
cHR1cmVTb3VyY2VJbXBsOjpzb3VyY2VNdXRlZENoYW5nZWQpOgorICAgICAgICAqIE1vZHVsZXMv
c3BlZWNoL2NvY29hL1dlYlNwZWVjaFJlY29nbml6ZXJUYXNrTW9jay5tbToKKyAgICAgICAgKC1b
V2ViU3BlZWNoUmVjb2duaXplclRhc2tNb2NrIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZTpdKToKKyAg
ICAgICAgKiBNb2R1bGVzL3N0b3JhZ2UvU3RvcmFnZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Y29ubmVjdGlvbkluZm8pOgorICAgICAgICAqIE1vZHVsZXMvd2ViLWxvY2tzL1dlYkxv
Y2tNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tNYW5hZ2VyOjpzaWduYWxU
b0Fib3J0VGhlUmVxdWVzdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb0xpc3Rl
bmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvTGlzdGVuZXI6OkF1ZGlvTGlzdGVuZXIp
OgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpBdWRpb1BhcmFtOjpzZXRBdXRvbWF0aW9uUmF0ZSk6CisgICAgICAgICogTW9kdWxl
cy93ZWJhdWRpby9BdWRpb1BhcmFtVGltZWxpbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVk
aW9QYXJhbVRpbWVsaW5lOjppbnNlcnRFdmVudCk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRp
by9CaXF1YWRGaWx0ZXJOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJpcXVhZEZpbHRlck5v
ZGU6OmdldEZyZXF1ZW5jeVJlc3BvbnNlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0Jp
cXVhZFByb2Nlc3Nvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCaXF1YWRQcm9jZXNzb3I6OkJp
cXVhZFByb2Nlc3Nvcik6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9EZWxheVByb2Nlc3Nv
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZWxheVByb2Nlc3Nvcjo6RGVsYXlQcm9jZXNzb3Ip
OgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vV2F2ZVNoYXBlck5vZGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6V2F2ZVNoYXBlck5vZGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpX
YXZlU2hhcGVyTm9kZTo6c2V0Q3VydmVGb3JCaW5kaW5ncyk6CisgICAgICAgICogTW9kdWxlcy93
ZWJhdXRobi9BdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
QXV0aGVudGljYXRvckNvb3JkaW5hdG9ySW50ZXJuYWw6Om5lZWRzQXBwSWRRdWlya3MpOgorICAg
ICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vV2ViQXV0aGVudGljYXRpb25VdGlscy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpidWlsZEF0dGVzdGF0aW9uTWFwKToKKyAgICAgICAgKiBNb2R1bGVzL3dl
YmF1dGhuL2ZpZG8vRGV2aWNlUmVzcG9uc2VDb252ZXJ0ZXIuY3BwOgorICAgICAgICAoZmlkbzo6
cmVhZENUQVBNYWtlQ3JlZGVudGlhbFJlc3BvbnNlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1
dGhuL2ZpZG8vUGluLmNwcDoKKyAgICAgICAgKGZpZG86OnBpbjo6S2V5QWdyZWVtZW50UmVzcG9u
c2U6OnBhcnNlRnJvbUNPU0UpOgorICAgICAgICAoZmlkbzo6cGluOjpUb2tlblJlcXVlc3Q6OnRy
eUNyZWF0ZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdXRobi9maWRvL1UyZlJlc3BvbnNlQ29u
dmVydGVyLmNwcDoKKyAgICAgICAgKGZpZG86OnJlYWRVMmZSZWdpc3RlclJlc3BvbnNlKToKKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL0NoYW5nZVZlcnNpb25XcmFwcGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNoYW5nZVZlcnNpb25XcmFwcGVyOjpwZXJmb3JtUHJlZmxpZ2h0KToK
KyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL0RPTVdpbmRvd1dlYkRhdGFiYXNlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvd1dlYkRhdGFiYXNlOjpvcGVuRGF0YWJhc2UpOgor
ICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RGF0YWJhc2U6OkRhdGFiYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlOjpy
dW5UcmFuc2FjdGlvbik6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZUF1
dGhvcml6ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VBdXRob3JpemVyOjphZGRB
bGxvd2VkRnVuY3Rpb25zKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNl
VHJhY2tlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZVRyYWNrZXI6OnRyYWNrZXJE
YXRhYmFzZVBhdGggY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjpv
cGVuVHJhY2tlckRhdGFiYXNlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFN0
YXRlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTUUxTdGF0ZW1lbnQ6OmV4ZWN1dGUpOgor
ICAgICAgICAoV2ViQ29yZTo6U1FMU3RhdGVtZW50OjpzZXREYXRhYmFzZURlbGV0ZWRFcnJvcik6
CisgICAgICAgIChXZWJDb3JlOjpTUUxTdGF0ZW1lbnQ6OnNldFZlcnNpb25NaXNtYXRjaGVkRXJy
b3IpOgorICAgICAgICAoV2ViQ29yZTo6U1FMU3RhdGVtZW50OjpzZXRGYWlsdXJlRHVlVG9RdW90
YSk6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTUUxUcmFuc2FjdGlvbjo6Y2FsbEVycm9yQ2FsbGJhY2tEdWVUb0lu
dGVycnVwdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTUUxUcmFuc2FjdGlvbjo6b3BlblRyYW5z
YWN0aW9uQW5kUHJlZmxpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OlNRTFRyYW5zYWN0aW9uOjpk
ZWxpdmVyVHJhbnNhY3Rpb25DYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpTUUxUcmFuc2Fj
dGlvbjo6ZGVsaXZlclN0YXRlbWVudENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlNRTFRy
YW5zYWN0aW9uOjpoYW5kbGVDdXJyZW50U3RhdGVtZW50RXJyb3IpOgorICAgICAgICAoV2ViQ29y
ZTo6U1FMVHJhbnNhY3Rpb246OnBvc3RmbGlnaHRBbmRDb21taXQpOgorICAgICAgICAqIE1vZHVs
ZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0
OjpzdWJwcm90b2NvbFNlcGFyYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXQ6OmNs
b3NlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldDo6c3VzcGVuZCk6CisgICAgICAgICog
TW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5oOgorICAgICAgICAqIE1vZHVsZXMvd2Vic29j
a2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldENo
YW5uZWw6OmRpZE9wZW5Tb2NrZXRTdHJlYW0pOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0
Q2hhbm5lbDo6ZGlkUmVjZWl2ZVNvY2tldFN0cmVhbURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6
V2ViU29ja2V0Q2hhbm5lbDo6cHJvY2Vzc0ZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlNv
Y2tldENoYW5uZWw6OnByb2Nlc3NPdXRnb2luZ0ZyYW1lUXVldWUpOgorICAgICAgICAqIE1vZHVs
ZXMvd2Vic29ja2V0cy9XZWJTb2NrZXREZWZsYXRlRnJhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OldlYlNvY2tldEV4dGVuc2lvbkRlZmxhdGVGcmFtZTo6cHJvY2Vzc1Jlc3BvbnNlKToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYlNvY2tldERlZmxhdGVGcmFtZXI6OmRlZmxhdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6V2ViU29ja2V0RGVmbGF0ZUZyYW1lcjo6aW5mbGF0ZSk6CisgICAgICAgICog
TW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEV4dGVuc2lvbkRpc3BhdGNoZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViU29ja2V0RXh0ZW5zaW9uRGlzcGF0Y2hlcjo6cHJvY2Vzc0hlYWRl
clZhbHVlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RnJhbWUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0RnJhbWU6OnBhcnNlRnJhbWUpOgorICAgICAg
ICAqIE1vZHVsZXMvd2VieHIvV2ViWFJXZWJHTExheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmNyZWF0ZU9wYXF1ZUZyYW1lYnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlhSV2ViR0xM
YXllcjo6Y3JlYXRlKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYSW1hZ2UuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6QVhJbWFnZTo6aW1hZ2VPdmVybGF5RWxlbWVudHMpOgorICAgICAgICAq
IGFjY2Vzc2liaWxpdHkvQVhMb2dnZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QVhMb2dnZXI6
OkFYTG9nZ2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkFYTG9nZ2VyOjpsb2cpOgorICAgICAgICAo
V2ViQ29yZTo6b3BlcmF0b3I8PCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWExvZ2dlci5o
OgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpBWE9iamVjdENhY2hlOjppc01vZGFsRWxlbWVudCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpjcmVhdGVGcm9tUmVuZGVyZXIpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RD
YWNoZTo6cmVtb3ZlKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnRleHRDaGFu
Z2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmhhbmRsZU1lbnVPcGVuZWQp
OgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6bm90aWZpY2F0aW9uUG9zdFRpbWVy
RmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cGFzc3dvcmROb3RpZmlj
YXRpb25Qb3N0VGltZXJGaXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpw
b3N0Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmhhbmRs
ZU1lbnVJdGVtU2VsZWN0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6c2Vs
ZWN0ZWRTdGF0ZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9z
dFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVj
dENhY2hlOjpoYW5kbGVNb2RhbENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENh
Y2hlOjpwZXJmb3JtRGVmZXJyZWRDYWNoZVVwZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpBWE9i
amVjdENhY2hlOjp1cGRhdGVJc29sYXRlZFRyZWUpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJp
bGl0eU5vZGVPYmplY3Q6OmRldGVybWluZUFjY2Vzc2liaWxpdHlSb2xlKToKKyAgICAgICAgKiBh
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
QWNjZXNzaWJpbGl0eU9iamVjdDo6cmVhZE9ubHlWYWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjphdXRvQ29tcGxldGVWYWx1ZSBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjpjdXJyZW50VmFsdWUgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6cmVwbGFjZVRleHRJblJhbmdl
KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmNvbXB1dGVkUm9sZVN0
cmluZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpub2RlSGFzUHJlc2VudGF0aW9uUm9sZSk6
CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjpyZXNvbHZlZEVkaXRpbmdT
dHlsZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eTo6aXNSYWRpb0J1
dHRvbkluRGlmZmVyZW50QWRob2NHcm91cCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmls
aXR5OjpmaW5kTWF0Y2hpbmdPYmplY3RzKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OmFjY2Vzc2liaWxp
dHlSb2xlVG9TdHJpbmcpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0OjpyZW5kZXJPYmplY3RJc09ic2VydmFibGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6ZGV0ZXJtaW5lQWNjZXNzaWJpbGl0eVJvbGUpOgor
ICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6dXBkYXRlUm9sZUFm
dGVyQ2hpbGRyZW5DcmVhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0OjpsaXZlUmVnaW9uUmVsZXZhbnQgY29uc3QpOgorICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlQ2VsbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nl
c3NpYmlsaXR5VGFibGVDZWxsOjpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCBjb25zdCk6
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VHJlZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5VHJlZTo6bm9kZUhhc1RyZWVJdGVtQ2hpbGQgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVRyZWU6OmlzVHJlZVZhbGlkIGNvbnN0
KToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRPYmplY3Q6OmluaXRpYWxpemVBdHRy
aWJ1dGVEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRPYmplY3Q6OmNsYXNzTGlz
dCBjb25zdCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRl
ZFRyZWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OkFYSXNvbGF0ZWRU
cmVlKToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjp+QVhJc29sYXRlZFRyZWUp
OgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OmNsZWFyKToKKyAgICAgICAgKFdl
YkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjp0cmVlRm9ySUQpOgorICAgICAgICAoV2ViQ29yZTo6QVhJ
c29sYXRlZFRyZWU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkVHJlZTo6
cmVtb3ZlVHJlZUZvclBhZ2VJRCk6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkVHJlZTo6
b2JqZWN0c0ZvcklEcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkVHJlZTo6
Z2VuZXJhdGVTdWJ0cmVlKToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjpjb2xs
ZWN0Tm9kZUNoYW5nZXNGb3JTdWJ0cmVlKToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRU
cmVlOjp1cGRhdGVOb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjp1cGRh
dGVOb2RlUHJvcGVydHkpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OnVwZGF0
ZUNoaWxkcmVuKToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjpmb2N1c2VkTm9k
ZSk6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkVHJlZTo6cm9vdE5vZGUpOgorICAgICAg
ICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OnNldFJvb3ROb2RlKToKKyAgICAgICAgKFdlYkNv
cmU6OkFYSXNvbGF0ZWRUcmVlOjpzZXRGb2N1c2VkTm9kZUlEKToKKyAgICAgICAgKFdlYkNvcmU6
OkFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVMb2FkaW5nUHJvZ3Jlc3MpOgorICAgICAgICAoV2ViQ29y
ZTo6QVhJc29sYXRlZFRyZWU6OnJlbW92ZU5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29s
YXRlZFRyZWU6OnJlbW92ZVN1YnRyZWVGcm9tTm9kZU1hcCk6CisgICAgICAgIChXZWJDb3JlOjpB
WElzb2xhdGVkVHJlZTo6YXBwbHlQZW5kaW5nQ2hhbmdlcyk6CisgICAgICAgICogYWNjZXNzaWJp
bGl0eS9tYWMvQWNjZXNzaWJpbGl0eU9iamVjdE1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkFj
Y2Vzc2liaWxpdHlPYmplY3Q6OnN1YnJvbGVQbGF0Zm9ybVN0cmluZyBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0Ojpyb2xlUGxhdGZvcm1EZXNjcmlwdGlvbiBj
b25zdCk6CisgICAgICAgICogYW5pbWF0aW9uL0FuaW1hdGlvbkVmZmVjdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpBbmltYXRpb25FZmZlY3Q6OmdldFRpbWluZyBjb25zdCk6CisgICAgICAgICog
YW5pbWF0aW9uL0RvY3VtZW50VGltZWxpbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1l
bnRUaW1lbGluZTo6YW5pbWF0ZSk6CisgICAgICAgICogYW5pbWF0aW9uL0VmZmVjdFRpbWluZy5o
OgorICAgICAgICAqIGFuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpLZXlmcmFtZUVmZmVjdDo6Q1NTUHJvcGVydHlJRFRvSURMQXR0cmlidXRlTmFtZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpLZXlmcmFtZUVmZmVjdDo6Z2V0S2V5ZnJhbWVzKToKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9HQ0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R0NDb250
cm9sbGVyOjpHQ0NvbnRyb2xsZXIpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQ3VzdG9tRWxl
bWVudEludGVyZmFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0N1c3RvbUVsZW1lbnRJbnRl
cmZhY2U6OnVwZ3JhZGVFbGVtZW50KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUNvbnZl
cnROdW1iZXJzLmg6CisgICAgICAgIChXZWJDb3JlOjpDb252ZXJ0ZXI8SURMRmxvYXQ+Ojpjb252
ZXJ0KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0V4ZWNTdGF0ZUluc3RydW1lbnRhdGlvbi5o
OgorICAgICAgICAoV2ViQ29yZTo6SlNFeGVjU3RhdGU6Omluc3RydW1lbnRGdW5jdGlvbik6Cisg
ICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTY3JpcHRDb250cm9sbGVyOjpjYWxsSW5Xb3JsZCk6CisgICAgICAgICogYnJpZGdlL29i
amMvb2JqY19ydW50aW1lLm1tOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6T2JqY0FycmF5Ojpz
ZXRWYWx1ZUF0IGNvbnN0KToKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6Ok9iamNBcnJheTo6dmFs
dWVBdCBjb25zdCk6CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwOgorICAgICAg
ICAoSlNDOjpSdW50aW1lQXJyYXk6OnB1dCk6CisgICAgICAgIChKU0M6OlJ1bnRpbWVBcnJheTo6
cHV0QnlJbmRleCk6CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcDoKKyAgICAg
ICAgKEpTQzo6QmluZGluZ3M6OnRocm93UnVudGltZU9iamVjdEludmFsaWRBY2Nlc3NFcnJvcik6
CisgICAgICAgICogY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkFjdGlvbnMuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6Ok1vZGlmeUhlYWRlcnNBY3Rp
b246Ok1vZGlmeUhlYWRlckluZm86OnBhcnNlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRF
eHRlbnNpb25zOjpSZWRpcmVjdEFjdGlvbjo6cGFyc2UpOgorICAgICAgICAoV2ViQ29yZTo6Q29u
dGVudEV4dGVuc2lvbnM6OlJlZGlyZWN0QWN0aW9uOjpVUkxUcmFuc2Zvcm1BY3Rpb246OnBhcnNl
KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpSZWRpcmVjdEFjdGlvbjo6
VVJMVHJhbnNmb3JtQWN0aW9uOjpRdWVyeVRyYW5zZm9ybTo6cGFyc2UpOgorICAgICAgICAoV2Vi
Q29yZTo6Q29udGVudEV4dGVuc2lvbnM6OlJlZGlyZWN0QWN0aW9uOjpVUkxUcmFuc2Zvcm1BY3Rp
b246OlF1ZXJ5VHJhbnNmb3JtOjpRdWVyeUtleVZhbHVlOjpwYXJzZSk6CisgICAgICAgICogY29u
dGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkNvbXBpbGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpjb21waWxlUnVsZUxpc3QpOgorICAgICAgICAqIGNv
bnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25QYXJzZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q29udGVudEV4dGVuc2lvbnM6OmdldERvbWFpbkxpc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6Q29udGVudEV4dGVuc2lvbnM6OmxvYWRUcmlnZ2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkNv
bnRlbnRFeHRlbnNpb25zOjpsb2FkQWN0aW9uKToKKyAgICAgICAgKiBjb250ZW50ZXh0ZW5zaW9u
cy9TZXJpYWxpemVkTkZBLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25z
OjpTZXJpYWxpemVkTkZBOjpzZXJpYWxpemUpOgorICAgICAgICAqIGNvbnRlbnRleHRlbnNpb25z
L1VSTEZpbHRlclBhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9u
czo6VVJMRmlsdGVyUGFyc2VyOjpzdGF0dXNTdHJpbmcpOgorICAgICAgICAqIGNvbnRlbnRleHRl
bnNpb25zL1VSTEZpbHRlclBhcnNlci5oOgorICAgICAgICAqIGNyeXB0by9TdWJ0bGVDcnlwdG8u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U3VidGxlQ3J5cHRvOjphZGRBdXRoZW50aWNhdGVkRW5j
cnlwdGlvbldhcm5pbmdJZk5lY2Vzc2FyeSk6CisgICAgICAgICogY3J5cHRvL2FsZ29yaXRobXMv
Q3J5cHRvQWxnb3JpdGhtQUVTX0NCQy5oOgorICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0Ny
eXB0b0FsZ29yaXRobUFFU19DRkIuaDoKKyAgICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9Dcnlw
dG9BbGdvcml0aG1BRVNfQ1RSLmg6CisgICAgICAgICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRv
QWxnb3JpdGhtQUVTX0dDTS5oOgorICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0Fs
Z29yaXRobUFFU19LVy5oOgorICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29y
aXRobUVDREguaDoKKyAgICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1F
Q0RTQS5oOgorICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUhLREYu
aDoKKyAgICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1ITUFDLmg6Cisg
ICAgICAgICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUEJLREYyLmg6CisgICAg
ICAgICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBRVNfUEtDUzFfdjFfNS5o
OgorICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NT
MV92MV81Lmg6CisgICAgICAgICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNB
X09BRVAuaDoKKyAgICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0Ff
UFNTLmg6CisgICAgICAgICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMS5o
OgorICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTIyNC5oOgor
ICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTI1Ni5oOgorICAg
ICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTM4NC5oOgorICAgICAg
ICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTUxMi5oOgorICAgICAgICAq
IGNyeXB0by9rZXlzL0NyeXB0b0tleUFFUy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9L
ZXlBRVM6OmV4cG9ydEp3ayBjb25zdCk6CisgICAgICAgICogY3J5cHRvL2tleXMvQ3J5cHRvS2V5
RUMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvS2V5RUM6OmV4cG9ydEp3ayBjb25zdCk6
CisgICAgICAgICogY3J5cHRvL2tleXMvQ3J5cHRvS2V5SE1BQy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDcnlwdG9LZXlITUFDOjpleHBvcnRKd2sgY29uc3QpOgorICAgICAgICAqIGNyeXB0by9r
ZXlzL0NyeXB0b0tleVJTQS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9LZXlSU0E6OmV4
cG9ydEp3ayBjb25zdCk6CisgICAgICAgICogY3NzL0NTU0ZvbnRGYWNlU3JjVmFsdWUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udEZhY2VTcmNWYWx1ZTo6aXNTdXBwb3J0ZWRGb3JtYXQg
Y29uc3QpOgorICAgICAgICAqIGNzcy9DU1NHcmlkVGVtcGxhdGVBcmVhc1ZhbHVlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnN0cmluZ0ZvclBvc2l0aW9uKToKKyAgICAgICAgKiBjc3MvQ1NTUHJp
bWl0aXZlVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6OnVu
aXRUeXBlU3RyaW5nKToKKyAgICAgICAgKiBjc3MvQ1NTU3ViZ3JpZFZhbHVlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1N1YmdyaWRWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCBjb25zdCk6CisgICAg
ICAgICogY3NzL0RPTUNTU05hbWVzcGFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp2YWx1ZVdp
dGhvdXRJbXBvcnRhbnQpOgorICAgICAgICAqIGNzcy9ET01DU1NSZWdpc3RlckN1c3RvbVByb3Bl
cnR5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTUNTU1JlZ2lzdGVyQ3VzdG9tUHJvcGVydHk6
OnJlZ2lzdGVyUHJvcGVydHkpOgorICAgICAgICAqIGNzcy9EZXByZWNhdGVkQ1NTT01WYWx1ZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpEZXByZWNhdGVkQ1NTT01WYWx1ZTo6Y3NzVGV4dCBjb25z
dCk6CisgICAgICAgICogY3NzL0ZvbnRGYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRG
YWNlOjp1bmljb2RlUmFuZ2UgY29uc3QpOgorICAgICAgICAqIGNzcy9NZWRpYVF1ZXJ5RXhwcmVz
c2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5RXhwcmVzc2lvbjo6c2VyaWFs
aXplIGNvbnN0KToKKyAgICAgICAgKiBjc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlN0eWxlUHJvcGVydGllczo6Z2V0TGF5ZXJlZFNob3J0aGFuZFZhbHVlIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGFibGVTdHlsZVByb3BlcnRpZXM6OnNldEN1c3RvbVBy
b3BlcnR5KToKKyAgICAgICAgKiBjc3MvbWFrZXZhbHVlcy5wbDoKKyAgICAgICAgKiBjc3MvcGFy
c2VyL01lZGlhUXVlcnlQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeVBh
cnNlcjo6c2tpcFVudGlsQ29tbWEpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeVBhcnNl
cjo6cGFyc2VJbnRlcm5hbCk6CisgICAgICAgICogY3NzL3BhcnNlci9TaXplc0F0dHJpYnV0ZVBh
cnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaXplc0F0dHJpYnV0ZVBhcnNlcjo6bWVkaWFD
b25kaXRpb25NYXRjaGVzKToKKyAgICAgICAgKiBjc3MvdHlwZWRvbS9DU1NOdW1lcmljRmFjdG9y
eS5oOgorICAgICAgICAqIGNzcy90eXBlZG9tL0NTU051bWVyaWNWYWx1ZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDU1NOdW1lcmljVmFsdWU6Om11bHRpcGx5SW50ZXJuYWwpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTTnVtZXJpY1ZhbHVlOjp0byk6CisgICAgICAgIChXZWJDb3JlOjpDU1NOdW1l
cmljVmFsdWU6OnBhcnNlKToKKyAgICAgICAgKiBjc3MvdHlwZWRvbS9DU1NTdHlsZVZhbHVlRmFj
dG9yeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVZhbHVlRmFjdG9yeTo6cmVpZnlW
YWx1ZSk6CisgICAgICAgICogZWRpdGluZy9jb2NvYS9IVE1MQ29udmVydGVyLm1tOgorICAgICAg
ICAoSFRNTENvbnZlcnRlckNhY2hlczo6cHJvcGVydHlWYWx1ZUZvck5vZGUpOgorICAgICAgICAo
SFRNTENvbnZlcnRlcjo6X3Byb2Nlc3NFbGVtZW50KToKKyAgICAgICAgKiBlZGl0aW5nL2NvY29h
L1dlYkNvbnRlbnRSZWFkZXJDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OmF0dGFjaG1lbnRG
b3JEYXRhKToKKyAgICAgICAgKiBsb2FkZXIvY29jb2EvQnVuZGxlUmVzb3VyY2VMb2FkZXIubW06
CisgICAgICAgIChXZWJDb3JlOjpCdW5kbGVSZXNvdXJjZUxvYWRlcjo6bG9hZFJlc291cmNlRnJv
bUJ1bmRsZSk6CisgICAgICAgICogbG9hZGVyL21hYy9Mb2FkZXJOU1VSTEV4dHJhcy5tbToKKyAg
ICAgICAgKHN1Z2dlc3RlZEZpbGVuYW1lV2l0aE1JTUVUeXBlKToKKyAgICAgICAgKiBwYWdlL2Nv
Y29hL1Jlc291cmNlVXNhZ2VPdmVybGF5Q29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpIaXN0
b3JpY1Jlc291cmNlVXNhZ2VEYXRhOjpIaXN0b3JpY1Jlc291cmNlVXNhZ2VEYXRhKToKKyAgICAg
ICAgKFdlYkNvcmU6OmRyYXdDcHVIaXN0b3J5KToKKyAgICAgICAgKFdlYkNvcmU6OmRyYXdHQ0hp
c3RvcnkpOgorICAgICAgICAoV2ViQ29yZTo6ZHJhd01lbUhpc3RvcnkpOgorICAgICAgICAqIHBh
Z2UvY29jb2EvU2V0dGluZ3NCYXNlQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5n
c0Jhc2U6OmluaXRpYWxpemVEZWZhdWx0Rm9udEZhbWlsaWVzKToKKyAgICAgICAgKiBwYWdlL21h
Yy9QYWdlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6cGxhdGZvcm1Jbml0aWFsaXpl
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkFYQVJJQUNvbnRlbnRHcm91cFRleHQpOgorICAgICAgICAqIHBsYXRmb3JtL0xvY2Fs
aXplZFN0cmluZ3MuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9QYXN0ZWJvYXJkLmg6CisgICAgICAg
ICogcGxhdGZvcm0vUGFzdGVib2FyZEN1c3RvbURhdGEuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9h
dWRpby9jb2NvYS9NZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EubW06CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2E6OnVwZGF0ZU5vd1BsYXlpbmdJbmZvKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9jb2NvYS9LZXlFdmVudENvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6
a2V5SWRlbnRpZmllckZvckNoYXJDb2RlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9QYXN0
ZWJvYXJkQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjppbWFnZVR5cGVUb0Zha2VGaWxlbmFt
ZSk6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjpyZWFkKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9jb2NvYS9QYXN0ZWJvYXJkQ3VzdG9tRGF0YUNvY29hLm1tOgorICAgICAgICAoV2ViQ29y
ZTo6UGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvRm91ckNDLmg6CisgICAgICAgIChXVEY6OkxvZ0FyZ3VtZW50PFdlYkNvcmU6OkZv
dXJDQz46OnRvU3RyaW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFw
aGljc0NvbnRleHRHTEFOR0xFLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dEdMQU5HTEU6OnZhbGlkYXRlRGVwdGhTdGVuY2lsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vQ0RNUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbToKKyAgICAg
ICAgKFdlYkNvcmU6OkNETVByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnBhcnNlS2V5U3lzdGVt
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakMubW06CisgICAg
ICAgIChXZWJDb3JlOjpDRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQzo6c2V0U3Rv
cmFnZURpcmVjdG9yeSk6CisgICAgICAgIChXZWJDb3JlOjpDRE1JbnN0YW5jZVNlc3Npb25GYWly
UGxheVN0cmVhbWluZ0FWRk9iakM6OnVwZGF0ZUxpY2Vuc2UpOgorICAgICAgICAoV2ViQ29yZTo6
Q0RNSW5zdGFuY2VTZXNzaW9uRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDOjpkaWRQcm92aWRlUmVx
dWVzdHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NE
TVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpDRE1TZXNz
aW9uTWVkaWFTb3VyY2VBVkZPYmpDOjpzdG9yYWdlUGF0aCBjb25zdCk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDOjpzdHJlYW1TZXNzaW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbToKKyAg
ICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpkaWRQcm92aWRlQ29u
dGVudEtleVJlcXVlc3RJbml0aWFsaXphdGlvbkRhdGFGb3JUcmFja0lEKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMvRGF0YURldGVjdG9ySGlnaGxpZ2h0Lm1tOgorICAgICAgICAoV2ViQ29yZTo6
RGF0YURldGVjdG9ySGlnaGxpZ2h0OjpmYWRlSW4pOgorICAgICAgICAoV2ViQ29yZTo6RGF0YURl
dGVjdG9ySGlnaGxpZ2h0OjpmYWRlT3V0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvUGFzdGVi
b2FyZE1hYy5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlN
YWMubW06CisgICAgICAgIChXZWJDb3JlOjprZXlJZGVudGlmaWVyRm9yS2V5RXZlbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6UGxhdGZvcm1LZXlib2FyZEV2ZW50QnVpbGRlcjo6UGxhdGZvcm1LZXli
b2FyZEV2ZW50QnVpbGRlcik6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1BsYXRmb3JtUGFzdGVi
b2FyZE1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtUGFzdGVib2FyZDo6dHlwZXNT
YWZlRm9yRE9NVG9SZWFkQW5kV3JpdGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZv
cm1QYXN0ZWJvYXJkOjp3cml0ZSk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVQYXN0ZWJvYXJk
SXRlbSk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1N0cmluZ1V0aWxpdGllcy5tbToKKyAgICAg
ICAgKFdlYkNvcmU6OndpbGRjYXJkUmVnZXhQYXR0ZXJuU3RyaW5nKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9tYWMvVGhyZWFkQ2hlY2subW06CisgICAgICAgIChXZWJDb3JlUmVwb3J0VGhyZWFkVmlv
bGF0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVXNlckFnZW50TWFjLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6c3RhbmRhcmRVc2VyQWdlbnRXaXRoQXBwbGljYXRpb25OYW1lKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlRXJyb3JCYXNlLmNwcDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlRXJyb3JCYXNlLmg6CisgICAgICAgICogcGxhdGZvcm0v
bmV0d29yay9jb2NvYS9SYW5nZVJlc3BvbnNlR2VuZXJhdG9yLm1tOgorICAgICAgICAoV2ViQ29y
ZTo6c3ludGhlc2l6ZWRSZXNwb25zZUZvclJhbmdlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyVGhlbWVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjppY29uRm9yQXR0YWNobWVudCk6Cisg
ICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Om9wZXJhdG9yPDwpOgorICAgICAgICAqIHN2Zy9TVkdGaWx0ZXJFbGVtZW50
Lmg6CisgICAgICAgICogc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5o
OgorICAgICAgICAqIHN2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuaDoKKyAgICAgICAgKiBz
dmcvU1ZHTWFya2VyRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdNYXNrRWxlbWVudC5oOgor
ICAgICAgICAqIHN2Zy9TVkdQYXRoU2VnSW1wbC5oOgorICAgICAgICAqIHN2Zy9TVkdSYWRpYWxH
cmFkaWVudEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRy
YWl0cy5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8Ym9vbD46OnRvU3Ry
aW5nKToKKyAgICAgICAgKiB0ZXN0aW5nL01vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MuaDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3M6OnVuYmxvY2tVUkxIb3N0
KToKKyAgICAgICAgKiB4bWwvWFBhdGhWYWx1ZS5oOgorICAgICAgICAoV2ViQ29yZTo6WFBhdGg6
OlZhbHVlOjpWYWx1ZSk6CisgICAgICAgICogeG1sL1hTTFN0eWxlU2hlZXQuaDoKKwogMjAyMi0w
My0yNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFN0cmluZzo6
c3BsaXQoKSBzaG91bGQgdGFrZSBpbiBhIFN0cmluZ1ZpZXcgaW5zdGVhZCBvZiBhIFN0cmluZwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkdQVS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViR1BVL0NoYW5n
ZUxvZwppbmRleCA3ZjhlYzNlYzdjN2VkZjEzOWQ2NzUzN2Q5OTI2MWI2ODRlMmJkNDNlLi41ZTMy
YjU3ZmRmZDE4NTlhNGM2NTc1OWEwNGJmMDY4YzA3ZGI3MWFlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViR1BVL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViR1BVL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDQ0IEBACisyMDIyLTAzLTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAg
ICAgICAgU3RhcnQgcHJlcGFyaW5nIFdlYkNvcmUgZm9yIG1ha2luZyB0aGUgU3RyaW5nKGNvbnN0
IGNoYXIqKSBjb25zdHJ1Y3RvciBleHBsaWNpdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4MzM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgU3RhcnQgcHJlcGFyaW5nIFdlYkNvcmUgZm9yIG1ha2luZyB0
aGUgU3RyaW5nKGNvbnN0IGNoYXIqKSBjb25zdHJ1Y3RvciBleHBsaWNpdC4KKyAgICAgICAgTWFr
aW5nIHRoaXMgY29uc3RydWN0b3IgZXhwbGljaXQgaGVscHMgY2F0Y2ggYXQgY29tcGlsZSB0aW1l
IGNhc2VzIHdoZXJlIHRoZSAiIl9zCisgICAgICAgIHByZWZpeCBpcyBtaXNzaW5nIG9uIFN0cmlu
ZyBsaXRlcmFscy4KKworICAgICAgICAqIFdHU0wvUGFyc2VyLmNwcDoKKyAgICAgICAgKFdHU0w6
OlBhcnNlcjxMZXhlcj46OnBhcnNlR2xvYmFsRGVjbCk6CisgICAgICAgIChXR1NMOjpQYXJzZXI8
TGV4ZXI+OjpwYXJzZUF0dHJpYnV0ZSk6CisgICAgICAgIChXR1NMOjpQYXJzZXI8TGV4ZXI+Ojpw
YXJzZVR5cGVEZWNsKToKKyAgICAgICAgKFdHU0w6OlBhcnNlcjxMZXhlcj46OnBhcnNlU3RvcmFn
ZUNsYXNzKToKKyAgICAgICAgKFdHU0w6OlBhcnNlcjxMZXhlcj46OnBhcnNlQWNjZXNzTW9kZSk6
CisgICAgICAgIChXR1NMOjpQYXJzZXI8TGV4ZXI+OjpwYXJzZVN0YXRlbWVudCk6CisgICAgICAg
IChXR1NMOjpQYXJzZXI8TGV4ZXI+OjpwYXJzZVByaW1hcnlFeHByZXNzaW9uKToKKyAgICAgICAg
KFdHU0w6OlBhcnNlcjxMZXhlcj46OnBhcnNlQ29yZUxIU0V4cHJlc3Npb24pOgorICAgICAgICAq
IFdHU0wvVG9rZW4uY3BwOgorICAgICAgICAoV0dTTDo6dG9TdHJpbmcpOgorICAgICAgICAqIFdl
YkdQVS9BZGFwdGVyLm1tOgorICAgICAgICAoV2ViR1BVOjpBZGFwdGVyOjpyZXF1ZXN0RGV2aWNl
KToKKyAgICAgICAgKiBXZWJHUFUvQnVmZmVyLm1tOgorICAgICAgICAoV2ViR1BVOjpCdWZmZXI6
Om1hcEFzeW5jKToKKyAgICAgICAgKFdlYkdQVTo6QnVmZmVyOjp1bm1hcCk6CisgICAgICAgICog
V2ViR1BVL0NvbW1hbmRFbmNvZGVyLm1tOgorICAgICAgICAoV2ViR1BVOjpDb21tYW5kRW5jb2Rl
cjo6Y29weUJ1ZmZlclRvQnVmZmVyKToKKyAgICAgICAgKFdlYkdQVTo6Q29tbWFuZEVuY29kZXI6
OmNsZWFyQnVmZmVyKToKKyAgICAgICAgKFdlYkdQVTo6Q29tbWFuZEVuY29kZXI6OmZpbmlzaCk6
CisgICAgICAgICogV2ViR1BVL0NvbXB1dGVQaXBlbGluZS5tbToKKyAgICAgICAgKFdlYkdQVTo6
Y3JlYXRlQ29uc3RhbnRWYWx1ZXMpOgorICAgICAgICAoV2ViR1BVOjpEZXZpY2U6OmNyZWF0ZUNv
bXB1dGVQaXBlbGluZSk6CisgICAgICAgICogV2ViR1BVL1F1ZXVlLm1tOgorICAgICAgICAoV2Vi
R1BVOjpRdWV1ZTo6c3VibWl0KToKKyAgICAgICAgKiBXZWJHUFUvU2FtcGxlci5tbToKKyAgICAg
ICAgKFdlYkdQVTo6RGV2aWNlOjpjcmVhdGVTYW1wbGVyKToKKyAgICAgICAgKiBXZWJHUFUvU2hh
ZGVyTW9kdWxlLm1tOgorICAgICAgICAoV2ViR1BVOjplYXJseUNvbXBpbGVTaGFkZXJNb2R1bGUp
OgorCiAyMDIyLTAzLTI0ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+
CiAKICAgICAgICAgW1dlYkdQVV0gRml4IHRoZSB3YXRjaE9TIGJ1aWxkCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDc3
ZTk2YzI5MTE1MTUwMGIyMzhhNjM2MGU1NDE3NDEwNzJmNmFjNTQuLjZhMzRlOGU2ZDVkNTM5OTg2
OTA2MjFiYTFhNGMzNjFiOWZkMjIwOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjIt
MDMtMjQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBTdGFydCBw
cmVwYXJpbmcgV2ViQ29yZSBmb3IgbWFraW5nIHRoZSBTdHJpbmcoY29uc3QgY2hhciopIGNvbnN0
cnVjdG9yIGV4cGxpY2l0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzgzMzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBTdGFydCBwcmVwYXJpbmcgV2ViQ29yZSBmb3IgbWFraW5nIHRoZSBTdHJpbmcoY29u
c3QgY2hhciopIGNvbnN0cnVjdG9yIGV4cGxpY2l0LgorICAgICAgICBNYWtpbmcgdGhpcyBjb25z
dHJ1Y3RvciBleHBsaWNpdCBoZWxwcyBjYXRjaCBhdCBjb21waWxlIHRpbWUgY2FzZXMgd2hlcmUg
dGhlICIiX3MKKyAgICAgICAgcHJlZml4IGlzIG1pc3Npbmcgb24gU3RyaW5nIGxpdGVyYWxzLgor
CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tOgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWV3SW1wbDo6c2V0UHJvbWlzZWREYXRhRm9ySW1hZ2UpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWV3SW1wbDo6cmVxdWVzdERPTVBhc3RlQWNjZXNzKToKKwogMjAyMi0wMy0yNCAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFN0cmluZzo6c3BsaXQo
KSBzaG91bGQgdGFrZSBpbiBhIFN0cmluZ1ZpZXcgaW5zdGVhZCBvZiBhIFN0cmluZwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IGE0YmE1MWVkODJlZjE4NjcyNDYwMTQ1YjAyNjlhYjFi
OWNjYTIzMGQuLjA3NjVhZDk1Njg0MGViZGIwMmQ2MDdkOTAxNGUxM2MyNjZhOTU4YjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMi0wMy0yNCAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFN0YXJ0IHByZXBhcmluZyBX
ZWJDb3JlIGZvciBtYWtpbmcgdGhlIFN0cmluZyhjb25zdCBjaGFyKikgY29uc3RydWN0b3IgZXhw
bGljaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
ODMzNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0
YXJ0IHByZXBhcmluZyBXZWJDb3JlIGZvciBtYWtpbmcgdGhlIFN0cmluZyhjb25zdCBjaGFyKikg
Y29uc3RydWN0b3IgZXhwbGljaXQuCisgICAgICAgIE1ha2luZyB0aGlzIGNvbnN0cnVjdG9yIGV4
cGxpY2l0IGhlbHBzIGNhdGNoIGF0IGNvbXBpbGUgdGltZSBjYXNlcyB3aGVyZSB0aGUgIiJfcwor
ICAgICAgICBwcmVmaXggaXMgbWlzc2luZyBvbiBTdHJpbmcgbGl0ZXJhbHMuCisKKyAgICAgICAg
KiBNaXNjL1dlYk5TUGFzdGVib2FyZEV4dHJhcy5tbToKKyAgICAgICAgKC1bTlNQYXN0ZWJvYXJk
IF93ZWJfZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlRm9yRWxlbWVudDpVUkw6dGl0bGU6YXJjaGl2
ZTpzb3VyY2U6XSk6CisKIDIwMjItMDMtMjQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNv
bT4KIAogICAgICAgICBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoKSBzaG91
bGQgdGFrZSBpbiBTdHJpbmdWaWV3cyBpbnN0ZWFkIG9mIFN0cmluZ3MKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWYWx1ZS5tbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvSlNWYWx1ZS5tbQppbmRleCBkM2FkMDgwZTFkZGY0ZmU2ZWZiYTkxMzViYTI2ODc2Yzc3
ZGNiYzI2Li5mMTJhMmM0OTUzZjAwMzJkZmI0YjcyZjY4ZmY4MGZlZGRiNjkwMzU0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmFsdWUubW0KKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlLm1tCkBAIC0xMTc5LDcgKzExNzksNyBAQCBzdGF0aWMg
U3RydWN0SGFuZGxlcnMqIGNyZWF0ZVN0cnVjdEhhbmRsZXJNYXAoKQogICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICAvLyBUcnkgdG8gZmluZCBhIG1hdGNoaW5nIHZhbHVlV2l0aDxGb28+OmNv
bnRleHQ6IG1ldGhvZC4KICAgICAgICAgYXV0byB0eXBlID0gYWRvcHRTeXN0ZW08Y2hhcltdPiht
ZXRob2RfY29weVJldHVyblR5cGUobWV0aG9kKSk7Ci0gICAgICAgIFN0cnVjdEhhbmRsZXJzOjpp
dGVyYXRvciBpdGVyID0gc3RydWN0SGFuZGxlcnMtPmZpbmQodHlwZS5nZXQoKSk7CisgICAgICAg
IFN0cnVjdEhhbmRsZXJzOjppdGVyYXRvciBpdGVyID0gc3RydWN0SGFuZGxlcnMtPmZpbmQoU3Ry
aW5nIHsgdHlwZS5nZXQoKSB9KTsKICAgICAgICAgaWYgKGl0ZXIgPT0gc3RydWN0SGFuZGxlcnMt
PmVuZCgpKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBTdHJ1Y3RUYWdIYW5kbGVyJiBo
YW5kbGVyID0gaXRlci0+dmFsdWU7CkBAIC0xMjE3LDcgKzEyMTcsNyBAQCBzdGF0aWMgU3RydWN0
VGFnSGFuZGxlciogaGFuZGVyRm9yU3RydWN0VGFnKGNvbnN0IGNoYXIqIGVuY29kZWRUeXBlKQog
CiAgICAgc3RhdGljIFN0cnVjdEhhbmRsZXJzKiBzdHJ1Y3RIYW5kbGVycyA9IGNyZWF0ZVN0cnVj
dEhhbmRsZXJNYXAoKTsKIAotICAgIFN0cnVjdEhhbmRsZXJzOjppdGVyYXRvciBpdGVyID0gc3Ry
dWN0SGFuZGxlcnMtPmZpbmQoZW5jb2RlZFR5cGUpOworICAgIFN0cnVjdEhhbmRsZXJzOjppdGVy
YXRvciBpdGVyID0gc3RydWN0SGFuZGxlcnMtPmZpbmQoU3RyaW5nIHsgZW5jb2RlZFR5cGUgfSk7
CiAgICAgaWYgKGl0ZXIgPT0gc3RydWN0SGFuZGxlcnMtPmVuZCgpKQogICAgICAgICByZXR1cm4g
MDsKICAgICByZXR1cm4gJml0ZXItPnZhbHVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0FQSS9KU1dyYXBwZXJNYXAubW0gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pT
V3JhcHBlck1hcC5tbQppbmRleCA5NmU0NDc4ODcwY2Q4MWE1ODk5N2QwMmRhNmZhNGZiYTM0NmFm
MTk1Li5mODIxZGY4ZTNlYmVkNTdmNTQwY2QyZjAxZDY0ZWM5NmRjZmE4NmNkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTV3JhcHBlck1hcC5tbQorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL0pTV3JhcHBlck1hcC5tbQpAQCAtNDUxLDcgKzQ1MSw3IEBAIHN0
YXRpYyBKU0M6OkpTT2JqZWN0KiBhbGxvY2F0ZUNvbnN0cnVjdG9yRm9yQ3VzdG9tQ2xhc3MoSlND
b250ZXh0ICpjb250ZXh0LCBjb25zCiAgICAgICAgIGZvckVhY2hNZXRob2RJbkNsYXNzKGN1cnJl
bnRDbGFzcywgXihNZXRob2QgbWV0aG9kKSB7CiAgICAgICAgICAgICBTRUwgc2VsZWN0b3IgPSBt
ZXRob2RfZ2V0TmFtZShtZXRob2QpOwogICAgICAgICAgICAgY29uc3QgY2hhciogbmFtZSA9IHNl
bF9nZXROYW1lKHNlbGVjdG9yKTsKLSAgICAgICAgICAgIGF1dG8gaXRlciA9IGluaXRUYWJsZS5m
aW5kKG5hbWUpOworICAgICAgICAgICAgYXV0byBpdGVyID0gaW5pdFRhYmxlLmZpbmQoU3RyaW5n
IHsgbmFtZSB9KTsKIAogICAgICAgICAgICAgaWYgKGl0ZXIgPT0gaW5pdFRhYmxlLmVuZCgpKQog
ICAgICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQv
VGV4dFN0cmVhbS5oIGIvU291cmNlL1dURi93dGYvdGV4dC9UZXh0U3RyZWFtLmgKaW5kZXggYzg1
ZGE2NjQxZTEzMTczYzk3MTE1N2JhNGE5ODNiNDRmNTQ2NWJhNS4uZGY3MTJlZDIwNWY0Nzk3OTdi
YjZkOWY1MDY3ZDYxNDMxMWM2NTBhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9U
ZXh0U3RyZWFtLmgKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9UZXh0U3RyZWFtLmgKQEAgLTEw
MCw2ICsxMDAsMTUgQEAgcHVibGljOgogICAgICAgICB0cy5lbmRHcm91cCgpOwogICAgIH0KIAor
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgdm9pZCBkdW1wUHJvcGVydHkoY29uc3QgY2hh
ciogbmFtZSwgY29uc3QgVCYgdmFsdWUpCisgICAgeworICAgICAgICBUZXh0U3RyZWFtJiB0cyA9
ICp0aGlzOworICAgICAgICB0cy5zdGFydEdyb3VwKCk7CisgICAgICAgIHRzIDw8IG5hbWUgPDwg
IiAiIDw8IHZhbHVlOworICAgICAgICB0cy5lbmRHcm91cCgpOworICAgIH0KKwogICAgIFdURl9F
WFBPUlRfUFJJVkFURSBTdHJpbmcgcmVsZWFzZSgpOwogICAgIAogICAgIFdURl9FWFBPUlRfUFJJ
VkFURSB2b2lkIHN0YXJ0R3JvdXAoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvYXBwbGVwYXktYW1zLXVpL0FwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5LWFtcy11aS9BcHBsZVBheUFNU1VJUGF5bWVudEhh
bmRsZXIuY3BwCmluZGV4IGY0ZGFmOGQxOGFlYzQ5OTc3NWQ1YzAzYzA4ZWFhMDQzMjQxMTQzZmIu
LjRhMzIyNWNlOWNhNDA2YzAwZmUxNjg0NjBhNWQ2ZDAzMDA0Mjg1NTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXktYW1zLXVpL0FwcGxlUGF5QU1TVUlQYXltZW50
SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS1hbXMtdWkv
QXBwbGVQYXlBTVNVSVBheW1lbnRIYW5kbGVyLmNwcApAQCAtMzksNyArMzksNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiBzdGF0aWMgRXhjZXB0aW9uT3I8QXBwbGVQYXlBTVNVSVJlcXVlc3Q+IGNv
bnZlcnRBbmRWYWxpZGF0ZUFwcGxlUGF5QU1TVUlSZXF1ZXN0KERvY3VtZW50JiBkb2N1bWVudCwg
SlNDOjpKU1ZhbHVlIGRhdGEpCiB7CiAgICAgaWYgKGRhdGEuaXNFbXB0eSgpKQotICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiTWlzc2luZyBwYXltZW50IG1ldGhvZCBkYXRh
LiIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIk1pc3NpbmcgcGF5
bWVudCBtZXRob2QgZGF0YS4iX3MgfTsKIAogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUoZG9jdW1lbnQudm0oKSk7CiAgICAgYXV0byBhcHBsZVBheUFNU1VJUmVxdWVz
dCA9IGNvbnZlcnREaWN0aW9uYXJ5PEFwcGxlUGF5QU1TVUlSZXF1ZXN0PigqZG9jdW1lbnQuZ2xv
YmFsT2JqZWN0KCksIGRhdGEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9h
cHBsZXBheS9BcHBsZVBheUNvbnRhY3RGaWVsZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2FwcGxlcGF5L0FwcGxlUGF5Q29udGFjdEZpZWxkLmNwcAppbmRleCBkZDNkY2I0ZWM3ZGQ0YTZh
ZjM5MGJlZDZjMWE3ZjJhMTQyMzEzNTI0Li4zNzFiOWVkNDIzMjg3ZDk3NzM1NTlhNWNmOGE1MWI2
Nzk3ZWYzYWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0Fw
cGxlUGF5Q29udGFjdEZpZWxkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxl
cGF5L0FwcGxlUGF5Q29udGFjdEZpZWxkLmNwcApAQCAtNDQsNyArNDQsNyBAQCBFeGNlcHRpb25P
cjxBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6Q29udGFjdEZpZWxkcz4gY29udmVydEFu
ZFZhbGlkYXRlKHVucwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQXBwbGVQYXlD
b250YWN0RmllbGQ6OlBob25ldGljTmFtZToKICAgICAgICAgICAgIGlmICh2ZXJzaW9uIDwgMykK
LSAgICAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiXCJwaG9uZXRp
Y05hbWVcIiBpcyBub3QgYSB2YWxpZCBjb250YWN0IGZpZWxkLiIgfTsKKyAgICAgICAgICAgICAg
ICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiXCJwaG9uZXRpY05hbWVcIiBpcyBub3Qg
YSB2YWxpZCBjb250YWN0IGZpZWxkLiJfcyB9OwogICAgICAgICAgICAgcmVzdWx0LnBob25ldGlj
TmFtZSA9IHRydWU7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBBcHBsZVBheUNv
bnRhY3RGaWVsZDo6UGhvbmU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Fw
cGxlcGF5L0FwcGxlUGF5TWVyY2hhbnRDYXBhYmlsaXR5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlNZXJjaGFudENhcGFiaWxpdHkuY3BwCmluZGV4IGE2MmEy
YzczZWEzMDY1NTFiZWU4NWRjOTU2MTdjMTE2MjU2NTNiYzIuLmY2ODRiYzlhYzYxZDQ5OWE1NWNh
NGUxODFmNTdiNDY5MTcyNTc5YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
YXBwbGVwYXkvQXBwbGVQYXlNZXJjaGFudENhcGFiaWxpdHkuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlNZXJjaGFudENhcGFiaWxpdHkuY3BwCkBAIC0z
Myw3ICszMyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIEV4Y2VwdGlvbk9yPEFwcGxlUGF5U2Vz
c2lvblBheW1lbnRSZXF1ZXN0OjpNZXJjaGFudENhcGFiaWxpdGllcz4gY29udmVydEFuZFZhbGlk
YXRlKGNvbnN0IFZlY3RvcjxBcHBsZVBheU1lcmNoYW50Q2FwYWJpbGl0eT4mIG1lcmNoYW50Q2Fw
YWJpbGl0aWVzKQogewogICAgIGlmIChtZXJjaGFudENhcGFiaWxpdGllcy5pc0VtcHR5KCkpCi0g
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJBdCBsZWFzdCBvbmUgbWVyY2hh
bnQgY2FwYWJpbGl0eSBtdXN0IGJlIHByb3ZpZGVkLiIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2Vw
dGlvbiB7IFR5cGVFcnJvciwgIkF0IGxlYXN0IG9uZSBtZXJjaGFudCBjYXBhYmlsaXR5IG11c3Qg
YmUgcHJvdmlkZWQuIl9zIH07CiAKICAgICBBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6
TWVyY2hhbnRDYXBhYmlsaXRpZXMgcmVzdWx0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5UmVxdWVzdEJhc2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVJlcXVlc3RCYXNlLmNwcAppbmRleCAyNDU4NmQ1
ZGQ0NzljOTA5M2Q0OWY5NjEwMTE5MWNhYThlODUwOTdlLi44ZDM2MjdhNmY2YTI3ZmI4YzgyYzkz
YWQ1NDZkNmFhZjA2OWJmMTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Fw
cGxlcGF5L0FwcGxlUGF5UmVxdWVzdEJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvYXBwbGVwYXkvQXBwbGVQYXlSZXF1ZXN0QmFzZS5jcHAKQEAgLTczLDcgKzczLDcgQEAgRXhj
ZXB0aW9uT3I8QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q+IGNvbnZlcnRBbmRWYWxpZGF0
ZShEb2N1bWVudCYgZG9jdW1lbnQKICAgICByZXN1bHQuc2V0TWVyY2hhbnRDYXBhYmlsaXRpZXMo
bWVyY2hhbnRDYXBhYmlsaXRpZXMucmVsZWFzZVJldHVyblZhbHVlKCkpOwogCiAgICAgaWYgKHJl
cXVpcmVzU3VwcG9ydGVkTmV0d29ya3ModmVyc2lvbiwgcmVxdWVzdCkgJiYgcmVxdWVzdC5zdXBw
b3J0ZWROZXR3b3Jrcy5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBl
RXJyb3IsICJBdCBsZWFzdCBvbmUgc3VwcG9ydGVkIG5ldHdvcmsgbXVzdCBiZSBwcm92aWRlZC4i
IH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJBdCBsZWFzdCBvbmUg
c3VwcG9ydGVkIG5ldHdvcmsgbXVzdCBiZSBwcm92aWRlZC4iX3MgfTsKIAogICAgIGF1dG8gc3Vw
cG9ydGVkTmV0d29ya3MgPSBjb252ZXJ0QW5kVmFsaWRhdGUoZG9jdW1lbnQsIHZlcnNpb24sIHJl
cXVlc3Quc3VwcG9ydGVkTmV0d29ya3MsIHBheW1lbnRDb29yZGluYXRvcik7CiAgICAgaWYgKHN1
cHBvcnRlZE5ldHdvcmtzLmhhc0V4Y2VwdGlvbigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNlc3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNlc3Npb24uY3BwCmluZGV4IDZjYmZjZjA3OTc1MDFh
OTk2MjlmY2M2OTM2YjZmMDUwZjBjZmM4OWEuLjU5ZTMwMGJlYjcwOTI2ZWY5ODNhZWNiYTZkNGFl
NWI2ZTdiMDY1YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkv
QXBwbGVQYXlTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5
L0FwcGxlUGF5U2Vzc2lvbi5jcHAKQEAgLTMxMCwxMCArMzEwLDEwIEBAIEV4Y2VwdGlvbk9yPFJl
ZjxBcHBsZVBheVNlc3Npb24+PiBBcHBsZVBheVNlc3Npb246OmNyZWF0ZShEb2N1bWVudCYgZG9j
dW1lbnQsIHVuCiAgICAgICAgIHJldHVybiBjYW5DYWxsLnJlbGVhc2VFeGNlcHRpb24oKTsKIAog
ICAgIGlmICghVXNlckdlc3R1cmVJbmRpY2F0b3I6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpKQot
ICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiTXVzdCBjcmVh
dGUgYSBuZXcgQXBwbGVQYXlTZXNzaW9uIGZyb20gYSB1c2VyIGdlc3R1cmUgaGFuZGxlci4iIH07
CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJNdXN0IGNy
ZWF0ZSBhIG5ldyBBcHBsZVBheVNlc3Npb24gZnJvbSBhIHVzZXIgZ2VzdHVyZSBoYW5kbGVyLiJf
cyB9OwogCiAgICAgaWYgKCFkb2N1bWVudC5wYWdlKCkpCi0gICAgICAgIHJldHVybiBFeGNlcHRp
b24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJGcmFtZSBpcyBkZXRhY2hlZCIgfTsKKyAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwgIkZyYW1lIGlzIGRldGFjaGVk
Il9zIH07CiAKICAgICBhdXRvIGNvbnZlcnRlZFBheW1lbnRSZXF1ZXN0ID0gY29udmVydEFuZFZh
bGlkYXRlKGRvY3VtZW50LCB2ZXJzaW9uLCBXVEZNb3ZlKHBheW1lbnRSZXF1ZXN0KSwgZG9jdW1l
bnQucGFnZSgpLT5wYXltZW50Q29vcmRpbmF0b3IoKSk7CiAgICAgaWYgKGNvbnZlcnRlZFBheW1l
bnRSZXF1ZXN0Lmhhc0V4Y2VwdGlvbigpKQpAQCAtNDEyLDcgKzQxMiw3IEBAIEV4Y2VwdGlvbk9y
PHZvaWQ+IEFwcGxlUGF5U2Vzc2lvbjo6b3BlblBheW1lbnRTZXR1cChEb2N1bWVudCYgZG9jdW1l
bnQsIGNvbnN0IFN0CiAgICAgICAgIHJldHVybiBjYW5DYWxsLnJlbGVhc2VFeGNlcHRpb24oKTsK
IAogICAgIGlmICghVXNlckdlc3R1cmVJbmRpY2F0b3I6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgp
KQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiTXVzdCBj
YWxsIEFwcGxlUGF5U2Vzc2lvbi5vcGVuUGF5bWVudFNldHVwIGZyb20gYSB1c2VyIGdlc3R1cmUg
aGFuZGxlci4iIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJy
b3IsICJNdXN0IGNhbGwgQXBwbGVQYXlTZXNzaW9uLm9wZW5QYXltZW50U2V0dXAgZnJvbSBhIHVz
ZXIgZ2VzdHVyZSBoYW5kbGVyLiJfcyB9OwogCiAgICAgYXV0byogcGFnZSA9IGRvY3VtZW50LnBh
Z2UoKTsKICAgICBpZiAoIXBhZ2UpCkBAIC00MzEsMTMgKzQzMSwxMyBAQCBFeGNlcHRpb25Pcjx2
b2lkPiBBcHBsZVBheVNlc3Npb246Om9wZW5QYXltZW50U2V0dXAoRG9jdW1lbnQmIGRvY3VtZW50
LCBjb25zdCBTdAogRXhjZXB0aW9uT3I8dm9pZD4gQXBwbGVQYXlTZXNzaW9uOjpiZWdpbihEb2N1
bWVudCYgZG9jdW1lbnQpCiB7CiAgICAgaWYgKCFjYW5CZWdpbigpKQotICAgICAgICByZXR1cm4g
RXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiUGF5bWVudCBzZXNzaW9uIGlzIGFscmVh
ZHkgYWN0aXZlLiIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NF
cnJvciwgIlBheW1lbnQgc2Vzc2lvbiBpcyBhbHJlYWR5IGFjdGl2ZS4iX3MgfTsKIAogICAgIGlm
IChwYXltZW50Q29vcmRpbmF0b3IoKS5oYXNBY3RpdmVTZXNzaW9uKCkpCi0gICAgICAgIHJldHVy
biBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJQYWdlIGFscmVhZHkgaGFzIGFuIGFj
dGl2ZSBwYXltZW50IHNlc3Npb24uIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52
YWxpZEFjY2Vzc0Vycm9yLCAiUGFnZSBhbHJlYWR5IGhhcyBhbiBhY3RpdmUgcGF5bWVudCBzZXNz
aW9uLiJfcyB9OwogCiAgICAgaWYgKCFwYXltZW50Q29vcmRpbmF0b3IoKS5iZWdpblBheW1lbnRT
ZXNzaW9uKGRvY3VtZW50LCAqdGhpcywgbV9wYXltZW50UmVxdWVzdCkpCi0gICAgICAgIHJldHVy
biBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJUaGVyZSBpcyBhbHJlYWR5IGhhcyBh
biBhY3RpdmUgcGF5bWVudCBzZXNzaW9uLiIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7
IEludmFsaWRBY2Nlc3NFcnJvciwgIlRoZXJlIGlzIGFscmVhZHkgaGFzIGFuIGFjdGl2ZSBwYXlt
ZW50IHNlc3Npb24uIl9zIH07CiAKICAgICBtX3N0YXRlID0gU3RhdGU6OkFjdGl2ZTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNldHVwLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTZXR1cC5jcHAKaW5k
ZXggZThiMTM2MTY5MGIyMGVhZjdlMWM2MTZhNzcyYThmNjEzZGVmZjM0OC4uODllNGE0NTVmMTg1
ZjgxOTBjN2VjMGQ3NjE3ODRkNTk0NmJjNjE2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNldHVwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2V0dXAuY3BwCkBAIC05MSw3ICs5MSw3IEBAIHZvaWQg
QXBwbGVQYXlTZXR1cDo6YmVnaW4oRG9jdW1lbnQmIGRvY3VtZW50LCBWZWN0b3I8UmVmUHRyPEFw
cGxlUGF5U2V0dXBGZWF0dXJlCiAgICAgfQogCiAgICAgaWYgKCFVc2VyR2VzdHVyZUluZGljYXRv
cjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkpIHsKLSAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhj
ZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiTXVzdCBjYWxsIEFwcGxlUGF5U2V0dXAuYmVn
aW4gZnJvbSBhIHVzZXIgZ2VzdHVyZSBoYW5kbGVyLiIgfSk7CisgICAgICAgIHByb21pc2UucmVq
ZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwgIk11c3QgY2FsbCBBcHBsZVBheVNl
dHVwLmJlZ2luIGZyb20gYSB1c2VyIGdlc3R1cmUgaGFuZGxlci4iX3MgfSk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVw
YXkvUGF5bWVudEluc3RhbGxtZW50Q29uZmlndXJhdGlvbi5tbSBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvYXBwbGVwYXkvUGF5bWVudEluc3RhbGxtZW50Q29uZmlndXJhdGlvbi5tbQppbmRleCA2
NGQxZGJiMjEyZTcwMmMwMmIyYjgyY2QxZTY4ZTgwZTc3M2YwODcwLi45OWM3NGQ2ODkxNjQ5MDcy
MjUwZGVjNDliOTZkMDBjY2E2YzZlMTdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2FwcGxlcGF5L1BheW1lbnRJbnN0YWxsbWVudENvbmZpZ3VyYXRpb24ubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50SW5zdGFsbG1lbnRDb25maWd1cmF0
aW9uLm1tCkBAIC0yMDcsNyArMjA3LDcgQEAgRXhjZXB0aW9uT3I8UGF5bWVudEluc3RhbGxtZW50
Q29uZmlndXJhdGlvbj4gUGF5bWVudEluc3RhbGxtZW50Q29uZmlndXJhdGlvbjo6Y3IKICAgICAg
ICAgTlNEYXRhICphcHBsaWNhdGlvbk1ldGFkYXRhID0gW2NvbmZpZ3VyYXRpb24uYXBwbGljYXRp
b25NZXRhZGF0YSBkYXRhVXNpbmdFbmNvZGluZzpOU1VURjhTdHJpbmdFbmNvZGluZ107CiAgICAg
ICAgIGFwcGxpY2F0aW9uTWV0YWRhdGFEaWN0aW9uYXJ5ID0gZHluYW1pY19vYmpjX2Nhc3Q8TlNE
aWN0aW9uYXJ5PihbTlNKU09OU2VyaWFsaXphdGlvbiBKU09OT2JqZWN0V2l0aERhdGE6YXBwbGlj
YXRpb25NZXRhZGF0YSBvcHRpb25zOjAgZXJyb3I6bmlsXSk7CiAgICAgICAgIGlmICghYXBwbGlj
YXRpb25NZXRhZGF0YURpY3Rpb25hcnkpCi0gICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
VHlwZUVycm9yLCAiYXBwbGljYXRpb25NZXRhZGF0YSBtdXN0IGJlIGEgSlNPTiBvYmplY3QiIH07
CisgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiYXBwbGljYXRpb25N
ZXRhZGF0YSBtdXN0IGJlIGEgSlNPTiBvYmplY3QiX3MgfTsKICAgICB9CiAKICAgICByZXR1cm4g
UGF5bWVudEluc3RhbGxtZW50Q29uZmlndXJhdGlvbihjb25maWd1cmF0aW9uLCBhcHBsaWNhdGlv
bk1ldGFkYXRhRGljdGlvbmFyeSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2FwcGxlcGF5L1BheW1lbnRSZXF1ZXN0VmFsaWRhdG9yLm1tIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9hcHBsZXBheS9QYXltZW50UmVxdWVzdFZhbGlkYXRvci5tbQppbmRleCBmMTBjNTVkNDk0
YTExYzMwYzBhMTA1ZTFiZmI2MTQzOTA4NjY4YzQwLi5jNTJmZDkyZDA4ZDNkYzRlMzNhZjdlMGZk
YmJlM2UwYzhlOGNlY2E4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxl
cGF5L1BheW1lbnRSZXF1ZXN0VmFsaWRhdG9yLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvYXBwbGVwYXkvUGF5bWVudFJlcXVlc3RWYWxpZGF0b3IubW0KQEAgLTk1LDE4ICs5NSwxOCBA
QCBFeGNlcHRpb25Pcjx2b2lkPiBQYXltZW50UmVxdWVzdFZhbGlkYXRvcjo6dmFsaWRhdGUoY29u
c3QgQXBwbGVQYXlTZXNzaW9uUGF5bWVudAogRXhjZXB0aW9uT3I8dm9pZD4gUGF5bWVudFJlcXVl
c3RWYWxpZGF0b3I6OnZhbGlkYXRlVG90YWwoY29uc3QgQXBwbGVQYXlMaW5lSXRlbSYgdG90YWwp
CiB7CiAgICAgaWYgKCF0b3RhbC5sYWJlbCkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5
cGVFcnJvciwgIk1pc3NpbmcgdG90YWwgbGFiZWwuIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgVHlwZUVycm9yLCAiTWlzc2luZyB0b3RhbCBsYWJlbC4iX3MgfTsKIAogICAgIGlmICgh
dG90YWwuYW1vdW50KQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiTWlz
c2luZyB0b3RhbCBhbW91bnQuIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVy
cm9yLCAiTWlzc2luZyB0b3RhbCBhbW91bnQuIl9zIH07CiAKICAgICBkb3VibGUgYW1vdW50ID0g
W05TRGVjaW1hbE51bWJlciBkZWNpbWFsTnVtYmVyV2l0aFN0cmluZzp0b3RhbC5hbW91bnQgbG9j
YWxlOkB7IE5TTG9jYWxlRGVjaW1hbFNlcGFyYXRvciA6IEAiLiIgfV0uZG91YmxlVmFsdWU7CiAK
ICAgICBpZiAoYW1vdW50IDwgMCkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJv
ciwgIlRvdGFsIGFtb3VudCBtdXN0IG5vdCBiZSBuZWdhdGl2ZS4iIH07CisgICAgICAgIHJldHVy
biBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJUb3RhbCBhbW91bnQgbXVzdCBub3QgYmUgbmVnYXRp
dmUuIl9zIH07CiAKICAgICBpZiAoYW1vdW50ID4gMTAwMDAwMDAwKQotICAgICAgICByZXR1cm4g
RXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiVG90YWwgYW1vdW50IGlzIHRvbyBiaWcuIiB9OworICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiVG90YWwgYW1vdW50IGlzIHRvbyBi
aWcuIl9zIH07CiAKICAgICByZXR1cm4geyB9OwogfQpAQCAtMTE0LDcgKzExNCw3IEBAIEV4Y2Vw
dGlvbk9yPHZvaWQ+IFBheW1lbnRSZXF1ZXN0VmFsaWRhdG9yOjp2YWxpZGF0ZVRvdGFsKGNvbnN0
IEFwcGxlUGF5TGluZUl0ZW0mCiBzdGF0aWMgRXhjZXB0aW9uT3I8dm9pZD4gdmFsaWRhdGVDb3Vu
dHJ5Q29kZShjb25zdCBTdHJpbmcmIGNvdW50cnlDb2RlKQogewogICAgIGlmICghY291bnRyeUNv
ZGUpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJNaXNzaW5nIGNvdW50
cnkgY29kZS4iIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJNaXNz
aW5nIGNvdW50cnkgY29kZS4iX3MgfTsKIAogICAgIGZvciAoYXV0byAqY291bnRyeUNvZGVQdHIg
PSB1bG9jX2dldElTT0NvdW50cmllcygpOyAqY291bnRyeUNvZGVQdHI7ICsrY291bnRyeUNvZGVQ
dHIpIHsKICAgICAgICAgaWYgKGNvdW50cnlDb2RlID09ICpjb3VudHJ5Q29kZVB0cikKQEAgLTEy
Nyw3ICsxMjcsNyBAQCBzdGF0aWMgRXhjZXB0aW9uT3I8dm9pZD4gdmFsaWRhdGVDb3VudHJ5Q29k
ZShjb25zdCBTdHJpbmcmIGNvdW50cnlDb2RlKQogc3RhdGljIEV4Y2VwdGlvbk9yPHZvaWQ+IHZh
bGlkYXRlQ3VycmVuY3lDb2RlKGNvbnN0IFN0cmluZyYgY3VycmVuY3lDb2RlKQogewogICAgIGlm
ICghY3VycmVuY3lDb2RlKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAi
TWlzc2luZyBjdXJyZW5jeSBjb2RlLiIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5
cGVFcnJvciwgIk1pc3NpbmcgY3VycmVuY3kgY29kZS4iX3MgfTsKIAogICAgIFVFcnJvckNvZGUg
ZXJyb3JDb2RlID0gVV9aRVJPX0VSUk9SOwogICAgIGF1dG8gY3VycmVuY3lDb2RlcyA9IHN0ZDo6
dW5pcXVlX3B0cjxVRW51bWVyYXRpb24sIElDVURlbGV0ZXI8dWVudW1fY2xvc2U+Pih1Y3Vycl9v
cGVuSVNPQ3VycmVuY2llcyhVQ1VSUl9BTEwsICZlcnJvckNvZGUpKTsKQEAgLTE0NCw3ICsxNDQs
NyBAQCBzdGF0aWMgRXhjZXB0aW9uT3I8dm9pZD4gdmFsaWRhdGVDdXJyZW5jeUNvZGUoY29uc3Qg
U3RyaW5nJiBjdXJyZW5jeUNvZGUpCiBzdGF0aWMgRXhjZXB0aW9uT3I8dm9pZD4gdmFsaWRhdGVN
ZXJjaGFudENhcGFiaWxpdGllcyhjb25zdCBBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6
TWVyY2hhbnRDYXBhYmlsaXRpZXMmIG1lcmNoYW50Q2FwYWJpbGl0aWVzKQogewogICAgIGlmICgh
bWVyY2hhbnRDYXBhYmlsaXRpZXMuc3VwcG9ydHMzRFMgJiYgIW1lcmNoYW50Q2FwYWJpbGl0aWVz
LnN1cHBvcnRzRU1WICYmICFtZXJjaGFudENhcGFiaWxpdGllcy5zdXBwb3J0c0NyZWRpdCAmJiAh
bWVyY2hhbnRDYXBhYmlsaXRpZXMuc3VwcG9ydHNEZWJpdCkKLSAgICAgICAgcmV0dXJuIEV4Y2Vw
dGlvbiB7IFR5cGVFcnJvciwgIk1pc3NpbmcgbWVyY2hhbnQgY2FwYWJpbGl0aWVzLiIgfTsKKyAg
ICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIk1pc3NpbmcgbWVyY2hhbnQgY2Fw
YWJpbGl0aWVzLiJfcyB9OwogCiAgICAgcmV0dXJuIHsgfTsKIH0KQEAgLTE1Miw3ICsxNTIsNyBA
QCBzdGF0aWMgRXhjZXB0aW9uT3I8dm9pZD4gdmFsaWRhdGVNZXJjaGFudENhcGFiaWxpdGllcyhj
b25zdCBBcHBsZVBheVNlc3Npb25QYXltZQogc3RhdGljIEV4Y2VwdGlvbk9yPHZvaWQ+IHZhbGlk
YXRlU3VwcG9ydGVkTmV0d29ya3MoY29uc3QgVmVjdG9yPFN0cmluZz4mIHN1cHBvcnRlZE5ldHdv
cmtzKQogewogICAgIGlmIChzdXBwb3J0ZWROZXR3b3Jrcy5pc0VtcHR5KCkpCi0gICAgICAgIHJl
dHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJNaXNzaW5nIHN1cHBvcnRlZCBuZXR3b3Jrcy4i
IH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJNaXNzaW5nIHN1cHBv
cnRlZCBuZXR3b3Jrcy4iX3MgfTsKIAogICAgIHJldHVybiB7IH07CiB9CkBAIC0xNjEsNyArMTYx
LDcgQEAgc3RhdGljIEV4Y2VwdGlvbk9yPHZvaWQ+IHZhbGlkYXRlU2hpcHBpbmdNZXRob2QoY29u
c3QgQXBwbGVQYXlTaGlwcGluZ01ldGhvZCYgc2gKIHsKICAgICBOU0RlY2ltYWxOdW1iZXIgKmFt
b3VudCA9IFtOU0RlY2ltYWxOdW1iZXIgZGVjaW1hbE51bWJlcldpdGhTdHJpbmc6c2hpcHBpbmdN
ZXRob2QuYW1vdW50IGxvY2FsZTpAeyBOU0xvY2FsZURlY2ltYWxTZXBhcmF0b3IgOiBAIi4iIH1d
OwogICAgIGlmIChhbW91bnQuaW50ZWdlclZhbHVlIDwgMCkKLSAgICAgICAgcmV0dXJuIEV4Y2Vw
dGlvbiB7IFR5cGVFcnJvciwgIlNoaXBwaW5nIG1ldGhvZCBhbW91bnQgbXVzdCBiZSBncmVhdGVy
IHRoYW4gb3IgZXF1YWwgdG8gemVyby4iIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBU
eXBlRXJyb3IsICJTaGlwcGluZyBtZXRob2QgYW1vdW50IG11c3QgYmUgZ3JlYXRlciB0aGFuIG9y
IGVxdWFsIHRvIHplcm8uIl9zIH07CiAKICAgICByZXR1cm4geyB9OwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50U2Vzc2lvbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRTZXNzaW9uLmNwcAppbmRleCA5NGY5
NDU5YjliNDQ4YTk4NDJlYjBmNDAyM2M2NDJhMDY4ZTgzYzcxLi4yZThmNjZlYTgzYzFkNDcyZGEx
ODdjMDgzNmI1ODE3NmNiYWQ5MWEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2FwcGxlcGF5L1BheW1lbnRTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2FwcGxlcGF5L1BheW1lbnRTZXNzaW9uLmNwcApAQCAtNTIsMjQgKzUyLDI0IEBAIEV4Y2VwdGlv
bk9yPHZvaWQ+IFBheW1lbnRTZXNzaW9uOjpjYW5DcmVhdGVTZXNzaW9uKERvY3VtZW50JiBkb2N1
bWVudCkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFNlY3VyaXR5RXJyb3IsICJUaGlyZC1w
YXJ0eSBpZnJhbWVzIGFyZSBub3QgYWxsb3dlZCB0byByZXF1ZXN0IHBheW1lbnRzIHVubGVzcyBl
eHBsaWNpdGx5IGFsbG93ZWQgdmlhIEZlYXR1cmUtUG9saWN5IChwYXltZW50KSJfcyB9OwogCiAg
ICAgaWYgKCFkb2N1bWVudC5mcmFtZSgpKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52
YWxpZEFjY2Vzc0Vycm9yLCAiVHJ5aW5nIHRvIHN0YXJ0IGFuIEFwcGxlIFBheSBzZXNzaW9uIGZy
b20gYW4gaW5hY3RpdmUgZG9jdW1lbnQuIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
SW52YWxpZEFjY2Vzc0Vycm9yLCAiVHJ5aW5nIHRvIHN0YXJ0IGFuIEFwcGxlIFBheSBzZXNzaW9u
IGZyb20gYW4gaW5hY3RpdmUgZG9jdW1lbnQuIl9zIH07CiAKICAgICBpZiAoIWlzU2VjdXJlKCpk
b2N1bWVudC5sb2FkZXIoKSkpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNj
ZXNzRXJyb3IsICJUcnlpbmcgdG8gc3RhcnQgYW4gQXBwbGUgUGF5IHNlc3Npb24gZnJvbSBhbiBp
bnNlY3VyZSBkb2N1bWVudC4iIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlk
QWNjZXNzRXJyb3IsICJUcnlpbmcgdG8gc3RhcnQgYW4gQXBwbGUgUGF5IHNlc3Npb24gZnJvbSBh
biBpbnNlY3VyZSBkb2N1bWVudC4iX3MgfTsKIAogICAgIGF1dG8mIHRvcERvY3VtZW50ID0gZG9j
dW1lbnQudG9wRG9jdW1lbnQoKTsKICAgICBpZiAoJmRvY3VtZW50ICE9ICZ0b3BEb2N1bWVudCkg
ewogICAgICAgICBhdXRvJiB0b3BPcmlnaW4gPSB0b3BEb2N1bWVudC50b3BPcmlnaW4oKTsKIAog
ICAgICAgICBpZiAoIWRvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCkuaXNTYW1lU2NoZW1lSG9zdFBv
cnQodG9wT3JpZ2luKSkKLSAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNj
ZXNzRXJyb3IsICJUcnlpbmcgdG8gc3RhcnQgYW4gQXBwbGUgUGF5IHNlc3Npb24gZnJvbSBhIGRv
Y3VtZW50IHdpdGggYW4gZGlmZmVyZW50IHNlY3VyaXR5IG9yaWdpbiB0aGFuIGl0cyB0b3AtbGV2
ZWwgZnJhbWUuIiB9OworICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nl
c3NFcnJvciwgIlRyeWluZyB0byBzdGFydCBhbiBBcHBsZSBQYXkgc2Vzc2lvbiBmcm9tIGEgZG9j
dW1lbnQgd2l0aCBhbiBkaWZmZXJlbnQgc2VjdXJpdHkgb3JpZ2luIHRoYW4gaXRzIHRvcC1sZXZl
bCBmcmFtZS4iX3MgfTsKIAogICAgICAgICBmb3IgKGF1dG8qIGFuY2VzdG9yRG9jdW1lbnQgPSBk
b2N1bWVudC5wYXJlbnREb2N1bWVudCgpOyBhbmNlc3RvckRvY3VtZW50ICE9ICZ0b3BEb2N1bWVu
dDsgYW5jZXN0b3JEb2N1bWVudCA9IGFuY2VzdG9yRG9jdW1lbnQtPnBhcmVudERvY3VtZW50KCkp
IHsKICAgICAgICAgICAgIGlmICghaXNTZWN1cmUoKmFuY2VzdG9yRG9jdW1lbnQtPmxvYWRlcigp
KSkKLSAgICAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9y
LCAiVHJ5aW5nIHRvIHN0YXJ0IGFuIEFwcGxlIFBheSBzZXNzaW9uIGZyb20gYSBkb2N1bWVudCB3
aXRoIGFuIGluc2VjdXJlIHBhcmVudCBmcmFtZS4iIH07CisgICAgICAgICAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwgIlRyeWluZyB0byBzdGFydCBhbiBBcHBs
ZSBQYXkgc2Vzc2lvbiBmcm9tIGEgZG9jdW1lbnQgd2l0aCBhbiBpbnNlY3VyZSBwYXJlbnQgZnJh
bWUuIl9zIH07CiAKICAgICAgICAgICAgIGlmICghYW5jZXN0b3JEb2N1bWVudC0+c2VjdXJpdHlP
cmlnaW4oKS5pc1NhbWVTY2hlbWVIb3N0UG9ydCh0b3BPcmlnaW4pKQotICAgICAgICAgICAgICAg
IHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJUcnlpbmcgdG8gc3RhcnQg
YW4gQXBwbGUgUGF5IHNlc3Npb24gZnJvbSBhIGRvY3VtZW50IHdpdGggYW4gZGlmZmVyZW50IHNl
Y3VyaXR5IG9yaWdpbiB0aGFuIGl0cyB0b3AtbGV2ZWwgZnJhbWUuIiB9OworICAgICAgICAgICAg
ICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJUcnlpbmcgdG8gc3Rh
cnQgYW4gQXBwbGUgUGF5IHNlc3Npb24gZnJvbSBhIGRvY3VtZW50IHdpdGggYW4gZGlmZmVyZW50
IHNlY3VyaXR5IG9yaWdpbiB0aGFuIGl0cyB0b3AtbGV2ZWwgZnJhbWUuIl9zIH07CiAgICAgICAg
IH0KICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkv
cGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQYXltZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2FwcGxlcGF5L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVudEhhbmRsZXIu
Y3BwCmluZGV4IDcwNTUxYWU4NjQ0ODljOWU2NzdjZDkyMTUzZjVkMWUyMjdhNDAyNTQuLmViNTZi
OTFlNWZlZGFjNjZhNzlkMDQ2YTNiZmVjOGRiMjkyNzVkN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQYXltZW50SGFu
ZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9wYXltZW50cmVx
dWVzdC9BcHBsZVBheVBheW1lbnRIYW5kbGVyLmNwcApAQCAtODksNyArODksNyBAQCBzdGF0aWMg
aW5saW5lIFBheW1lbnRDb29yZGluYXRvciYgcGF5bWVudENvb3JkaW5hdG9yKERvY3VtZW50JiBk
b2N1bWVudCkKIHN0YXRpYyBFeGNlcHRpb25PcjxBcHBsZVBheVJlcXVlc3Q+IGNvbnZlcnRBbmRW
YWxpZGF0ZUFwcGxlUGF5UmVxdWVzdChEb2N1bWVudCYgZG9jdW1lbnQsIEpTQzo6SlNWYWx1ZSBk
YXRhKQogewogICAgIGlmIChkYXRhLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlv
biB7IFR5cGVFcnJvciwgIk1pc3NpbmcgcGF5bWVudCBtZXRob2QgZGF0YS4iIH07CisgICAgICAg
IHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJNaXNzaW5nIHBheW1lbnQgbWV0aG9kIGRh
dGEuIl9zIH07CiAKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKGRv
Y3VtZW50LnZtKCkpOwogICAgIGF1dG8gYXBwbGVQYXlSZXF1ZXN0ID0gY29udmVydERpY3Rpb25h
cnk8QXBwbGVQYXlSZXF1ZXN0PigqZG9jdW1lbnQuZ2xvYmFsT2JqZWN0KCksIGRhdGEpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsaWNhdGlvbm1hbmlmZXN0L0FwcGxp
Y2F0aW9uTWFuaWZlc3RQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsaWNh
dGlvbm1hbmlmZXN0L0FwcGxpY2F0aW9uTWFuaWZlc3RQYXJzZXIuY3BwCmluZGV4IDZkZmZmNDdi
N2UyY2I4OWI1NGY5NWVjNDYyN2QzZDdjZTY5MGY5MGIuLmM1ZDEzMDM4Y2ZjNjdmNDVhNDZlNjhj
OWNjNDUyMTA3M2Q3NmE1NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBw
bGljYXRpb25tYW5pZmVzdC9BcHBsaWNhdGlvbk1hbmlmZXN0UGFyc2VyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxpY2F0aW9ubWFuaWZlc3QvQXBwbGljYXRpb25NYW5pZmVz
dFBhcnNlci5jcHAKQEAgLTIzMSw3ICsyMzEsNyBAQCBWZWN0b3I8QXBwbGljYXRpb25NYW5pZmVz
dDo6SWNvbj4gQXBwbGljYXRpb25NYW5pZmVzdFBhcnNlcjo6cGFyc2VJY29ucyhjb25zdCBKUwog
ICAgICAgICAgICAgICAgIGN1cnJlbnRJY29uLnB1cnBvc2VzID0gcHVycG9zZXM7CiAgICAgICAg
ICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIHB1cnBvc2VTdHJpbmdWYWx1ZSA9IHB1cnBv
c2VTdHJpbmdWYWx1ZS5zdHJpcFdoaXRlU3BhY2UoKS5jb252ZXJ0VG9BU0NJSUxvd2VyY2FzZSgp
OwotICAgICAgICAgICAgICAgIFZlY3RvcjxTdHJpbmc+IGtleXdvcmRzID0gcHVycG9zZVN0cmlu
Z1ZhbHVlLnNwbGl0QWxsb3dpbmdFbXB0eUVudHJpZXMoIiAiKTsKKyAgICAgICAgICAgICAgICBW
ZWN0b3I8U3RyaW5nPiBrZXl3b3JkcyA9IHB1cnBvc2VTdHJpbmdWYWx1ZS5zcGxpdEFsbG93aW5n
RW1wdHlFbnRyaWVzKCIgIl9zKTsKIAogICAgICAgICAgICAgICAgIGZvciAoY29uc3QgYXV0byYg
a2V5d29yZCA6IGtleXdvcmRzKSB7CiAgICAgICAgICAgICAgICAgICAgIGlmIChrZXl3b3JkID09
ICJtb25vY2hyb21lIikKQEAgLTI4Miw5ICsyODIsOSBAQCBzdGF0aWMgYm9vbCBpc0luU2NvcGUo
Y29uc3QgVVJMJiBzY29wZVVSTCwgY29uc3QgVVJMJiB0YXJnZXRVUkwpCiAKIFVSTCBBcHBsaWNh
dGlvbk1hbmlmZXN0UGFyc2VyOjpwYXJzZVNjb3BlKGNvbnN0IEpTT046Ok9iamVjdCYgbWFuaWZl
c3QsIGNvbnN0IFVSTCYgZG9jdW1lbnRVUkwsIGNvbnN0IFVSTCYgc3RhcnRVUkwpCiB7Ci0gICAg
VVJMIGRlZmF1bHRTY29wZSB7IHN0YXJ0VVJMLCAiLi8iIH07CisgICAgVVJMIGRlZmF1bHRTY29w
ZSB7IHN0YXJ0VVJMLCAiLi8iX3MgfTsKIAotICAgIGF1dG8gdmFsdWUgPSBtYW5pZmVzdC5nZXRW
YWx1ZSgic2NvcGUiKTsKKyAgICBhdXRvIHZhbHVlID0gbWFuaWZlc3QuZ2V0VmFsdWUoInNjb3Bl
Il9zKTsKICAgICBpZiAoIXZhbHVlKQogICAgICAgICByZXR1cm4gZGVmYXVsdFNjb3BlOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL1dpbmRvd09yV29ya2VyR2xv
YmFsU2NvcGVDYWNoZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9XaW5kb3dP
cldvcmtlckdsb2JhbFNjb3BlQ2FjaGVzLmNwcAppbmRleCBhMTc0OTVkNzY1OTY1NmZlMmRkOWNj
YTNkMzcxMTIyMWZlNDhkMTA0Li5kZmUxODhmYzBlZmZkYWMyYmVmMGU5YWNkZTk2YzNlZjYyYjg2
YTYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL1dpbmRvd09yV29y
a2VyR2xvYmFsU2NvcGVDYWNoZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2Fj
aGUvV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZUNhY2hlcy5jcHAKQEAgLTEyNyw3ICsxMjcsNyBA
QCBET01DYWNoZVN0b3JhZ2UqIFdvcmtlckdsb2JhbFNjb3BlQ2FjaGVzOjpjYWNoZXMoKSBjb25z
dAogRXhjZXB0aW9uT3I8RE9NQ2FjaGVTdG9yYWdlKj4gV2luZG93T3JXb3JrZXJHbG9iYWxTY29w
ZUNhY2hlczo6Y2FjaGVzKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIERPTVdpbmRv
dyYgd2luZG93KQogewogICAgIGlmIChkb3duY2FzdDxEb2N1bWVudD4oY29udGV4dCkuaXNTYW5k
Ym94ZWQoU2FuZGJveE9yaWdpbikpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBTZWN1cml0
eUVycm9yLCAiQ2FjaGUgc3RvcmFnZSBpcyBkaXNhYmxlZCBiZWNhdXNlIHRoZSBjb250ZXh0IGlz
IHNhbmRib3hlZCBhbmQgbGFja3MgdGhlICdhbGxvdy1zYW1lLW9yaWdpbicgZmxhZyIgfTsKKyAg
ICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFNlY3VyaXR5RXJyb3IsICJDYWNoZSBzdG9yYWdlIGlz
IGRpc2FibGVkIGJlY2F1c2UgdGhlIGNvbnRleHQgaXMgc2FuZGJveGVkIGFuZCBsYWNrcyB0aGUg
J2FsbG93LXNhbWUtb3JpZ2luJyBmbGFnIl9zIH07CiAKICAgICBpZiAoIXdpbmRvdy5pc0N1cnJl
bnRseURpc3BsYXllZEluRnJhbWUoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0luaXREYXRhUmVnaXN0
cnkuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9Jbml0RGF0YVJl
Z2lzdHJ5LmNwcAppbmRleCA2Zjg4OGUxNzg1OGRkYTZkOTQ3MWVjMWY2ZWY1ZDA2NmRmMGU0OTkw
Li44Y2RiY2E3N2FmMzgzMDdiMmI0YzBhNGQyNWExZjBlOTExYWJiMWRlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0luaXREYXRhUmVnaXN0cnkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvSW5pdERhdGFSZWdp
c3RyeS5jcHAKQEAgLTEwNSw3ICsxMDUsNyBAQCBzdGF0aWMgUmVmUHRyPEZyYWdtZW50ZWRTaGFy
ZWRCdWZmZXI+IHNhbml0aXplS2V5aWRzKGNvbnN0IEZyYWdtZW50ZWRTaGFyZWRCdWZmZQogICAg
IGF1dG8ga2lkc0FycmF5ID0gSlNPTjo6QXJyYXk6OmNyZWF0ZSgpOwogICAgIGZvciAoYXV0byYg
YnVmZmVyIDoga2V5SURCdWZmZXIudmFsdWUoKSkKICAgICAgICAga2lkc0FycmF5LT5wdXNoU3Ry
aW5nKGJhc2U2NFVSTEVuY29kZVRvU3RyaW5nKGJ1ZmZlci0+bWFrZUNvbnRpZ3VvdXMoKS0+ZGF0
YSgpLCBidWZmZXItPnNpemUoKSkpOwotICAgIG9iamVjdC0+c2V0QXJyYXkoImtpZHMiLCBXVEZN
b3ZlKGtpZHNBcnJheSkpOworICAgIG9iamVjdC0+c2V0QXJyYXkoImtpZHMiX3MsIFdURk1vdmUo
a2lkc0FycmF5KSk7CiAKICAgICBDU3RyaW5nIGpzb25EYXRhID0gb2JqZWN0LT50b0pTT05TdHJp
bmcoKS51dGY4KCk7CiAgICAgcmV0dXJuIFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGpzb25EYXRhLmRh
dGEoKSwganNvbkRhdGEubGVuZ3RoKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9lbnRyaWVzYXBpL0RPTUZpbGVTeXN0ZW0uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9lbnRyaWVzYXBpL0RPTUZpbGVTeXN0ZW0uY3BwCmluZGV4IDlmNDgxZGM2MjlhYTc3YTYwZGE1
YzVlZTA0NGE3MzZiZDQ2ZDNkMjAuLjlhY2E2MThiNWQ2YzcyZTI0MjQ1OTRiOWExOWRlMWE0ZTA0
ZjljOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW50cmllc2FwaS9ET01G
aWxlU3lzdGVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VudHJpZXNhcGkvRE9N
RmlsZVN5c3RlbS5jcHAKQEAgLTU5LDcgKzU5LDcgQEAgc3RhdGljIEV4Y2VwdGlvbk9yPFZlY3Rv
cjxMaXN0ZWRDaGlsZD4+IGxpc3REaXJlY3RvcnlXaXRoTWV0YWRhdGEoY29uc3QgU3RyaW5nJgog
ewogICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOwogICAgIGlmIChGaWxlU3lzdGVtOjpmaWxl
VHlwZShmdWxsUGF0aCkgIT0gRmlsZVN5c3RlbTo6RmlsZVR5cGU6OkRpcmVjdG9yeSkKLSAgICAg
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdEZvdW5kRXJyb3IsICJQYXRoIG5vIGxvbmdlciBleGlz
dHMgb3IgaXMgbm8gbG9uZ2VyIGEgZGlyZWN0b3J5IiB9OworICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgTm90Rm91bmRFcnJvciwgIlBhdGggbm8gbG9uZ2VyIGV4aXN0cyBvciBpcyBubyBsb25n
ZXIgYSBkaXJlY3RvcnkiX3MgfTsKIAogICAgIGF1dG8gY2hpbGROYW1lcyA9IEZpbGVTeXN0ZW06
Omxpc3REaXJlY3RvcnkoZnVsbFBhdGgpOwogICAgIFZlY3RvcjxMaXN0ZWRDaGlsZD4gbGlzdGVk
Q2hpbGRyZW47CkBAIC0xODMsNyArMTgzLDcgQEAgc3RhdGljIEV4Y2VwdGlvbk9yPFN0cmluZz4g
dmFsaWRhdGVQYXRoSXNFeHBlY3RlZFR5cGUoY29uc3QgU3RyaW5nJiBmdWxsUGF0aCwgU3QKICAg
ICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdEZvdW5kRXJyb3IsICJQYXRoIGRvZXMgbm90IGV4
aXN0Il9zIH07CiAKICAgICBpZiAoKmZpbGVUeXBlICE9IGV4cGVjdGVkVHlwZSkKLSAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVNaXNtYXRjaEVycm9yLCAiRW50cnkgYXQgcGF0aCBkb2Vz
IG5vdCBoYXZlIGV4cGVjdGVkIHR5cGUiIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBU
eXBlTWlzbWF0Y2hFcnJvciwgIkVudHJ5IGF0IHBhdGggZG9lcyBub3QgaGF2ZSBleHBlY3RlZCB0
eXBlIl9zIH07CiAKICAgICByZXR1cm4gV1RGTW92ZSh2aXJ0dWFsUGF0aCk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keUNvbnN1bWVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5Q29uc3VtZXIuY3BwCmluZGV4
IDkzNmE3ZTQzMDU2YzQ1NWUyOWIyNTUwZmI0MDEwYmVlZWMzYjM1ZWIuLjZmNmRjNjdjYzM0Yjhk
NDA3YWJmNmRlNDY0YzUyOWM3NDIzNmQ1ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5Q29uc3VtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5Q29uc3VtZXIuY3BwCkBAIC0xNTAsMTAgKzE1MCwxMCBAQCBS
ZWZQdHI8RE9NRm9ybURhdGE+IEZldGNoQm9keUNvbnN1bWVyOjpwYWNrYWdlRm9ybURhdGEoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCogYwogICAgICAgICAgICAgY29udGVudERpc3Bvc2l0aW9uUGFy
YW1ldGVyc0JlZ2luKys7CiAKICAgICAgICAgYXV0byBwYXJhbWV0ZXJzID0gcGFyc2VQYXJhbWV0
ZXJzKFN0cmluZ1ZpZXcoaGVhZGVyKS5zdWJzdHJpbmcoY29udGVudERpc3Bvc2l0aW9uUGFyYW1l
dGVyc0JlZ2luLCBjb250ZW50RGlzcG9zaXRpb25FbmQgLSBjb250ZW50RGlzcG9zaXRpb25QYXJh
bWV0ZXJzQmVnaW4pLCAwKTsKLSAgICAgICAgU3RyaW5nIG5hbWUgPSBwYXJhbWV0ZXJzLmdldCgi
bmFtZSIpOworICAgICAgICBTdHJpbmcgbmFtZSA9IHBhcmFtZXRlcnMuZ2V0KCJuYW1lIl9zKTsK
ICAgICAgICAgaWYgKCFuYW1lKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBT
dHJpbmcgZmlsZW5hbWUgPSBwYXJhbWV0ZXJzLmdldCgiZmlsZW5hbWUiKTsKKyAgICAgICAgU3Ry
aW5nIGZpbGVuYW1lID0gcGFyYW1ldGVycy5nZXQoImZpbGVuYW1lIl9zKTsKICAgICAgICAgaWYg
KCFmaWxlbmFtZSkKICAgICAgICAgICAgIGZvcm0uYXBwZW5kKG5hbWUsIFN0cmluZzo6ZnJvbVVU
RjgoYm9keUJlZ2luLCBib2R5TGVuZ3RoKSk7CiAgICAgICAgIGVsc2UgewpAQCAtMTc2LDcgKzE3
Niw3IEBAIFJlZlB0cjxET01Gb3JtRGF0YT4gRmV0Y2hCb2R5Q29uc3VtZXI6OnBhY2thZ2VGb3Jt
RGF0YShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjCiAgICAgICAgIGlmICghbWltZVR5cGUpCiAg
ICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgICAgICBpZiAoZXF1YWxJZ25vcmlu
Z0FTQ0lJQ2FzZShtaW1lVHlwZS0+dHlwZSwgIm11bHRpcGFydCIpICYmIGVxdWFsSWdub3JpbmdB
U0NJSUNhc2UobWltZVR5cGUtPnN1YnR5cGUsICJmb3JtLWRhdGEiKSkgewotICAgICAgICAgICAg
YXV0byBpdGVyYXRvciA9IG1pbWVUeXBlLT5wYXJhbWV0ZXJzLmZpbmQoImJvdW5kYXJ5Iik7Cisg
ICAgICAgICAgICBhdXRvIGl0ZXJhdG9yID0gbWltZVR5cGUtPnBhcmFtZXRlcnMuZmluZCgiYm91
bmRhcnkiX3MpOwogICAgICAgICAgICAgaWYgKGl0ZXJhdG9yICE9IG1pbWVUeXBlLT5wYXJhbWV0
ZXJzLmVuZCgpKQogICAgICAgICAgICAgICAgIHJldHVybiBpdGVyYXRvci0+dmFsdWU7CiAgICAg
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hIZWFk
ZXJzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hIZWFkZXJzLmNwcApp
bmRleCAwOTBmNWNmNGQwZmYxMTVkODRiZjczM2I3YTdiMTViMzRmMmUzYTVmLi4yNmFmMDhmMWFk
NWUxNGNiZDFhZWQ3NGVmZGVhM2YxYWQzOGJlNjE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2ZldGNoL0ZldGNoSGVhZGVycy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9mZXRjaC9GZXRjaEhlYWRlcnMuY3BwCkBAIC0xMDIsNyArMTAyLDcgQEAgc3RhdGljIEV4
Y2VwdGlvbk9yPHZvaWQ+IGZpbGxIZWFkZXJNYXAoSFRUUEhlYWRlck1hcCYgaGVhZGVycywgY29u
c3QgRmV0Y2hIZWFkZXIKICAgICAgICAgYXV0byYgc2VxdWVuY2UgPSBzdGQ6OmdldDxWZWN0b3I8
VmVjdG9yPFN0cmluZz4+PihoZWFkZXJzSW5pdCk7CiAgICAgICAgIGZvciAoYXV0byYgaGVhZGVy
IDogc2VxdWVuY2UpIHsKICAgICAgICAgICAgIGlmIChoZWFkZXIuc2l6ZSgpICE9IDIpCi0gICAg
ICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIkhlYWRlciBzdWItc2Vx
dWVuY2UgbXVzdCBjb250YWluIGV4YWN0bHkgdHdvIGl0ZW1zIiB9OworICAgICAgICAgICAgICAg
IHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJIZWFkZXIgc3ViLXNlcXVlbmNlIG11c3Qg
Y29udGFpbiBleGFjdGx5IHR3byBpdGVtcyJfcyB9OwogICAgICAgICAgICAgYXV0byByZXN1bHQg
PSBhcHBlbmRUb0hlYWRlck1hcChoZWFkZXJbMF0sIGhlYWRlclsxXSwgaGVhZGVycywgZ3VhcmQp
OwogICAgICAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgICAgICAg
ICByZXR1cm4gcmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9mZXRjaC9GZXRjaExvYWRlci5jcHAKaW5kZXggN2NlYTMyYTk1OGYxNGJkOGM4NzhiYzUx
ZjQ5YzFkMWFkYTZkNmEzNy4uZjc0MzM4ZThkMzIyMjcwYTM4MGYyNDlhNjQyZTRlYTBmOTIyODZl
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaExvYWRlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaExvYWRlci5jcHAKQEAg
LTY5LDcgKzY5LDcgQEAgdm9pZCBGZXRjaExvYWRlcjo6c3RhcnRMb2FkaW5nQmxvYlVSTChTY3Jp
cHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBjb25zdCBVUkwKIAogICAgIFJlc291cmNlUmVx
dWVzdCByZXF1ZXN0KG1fdXJsRm9yUmVhZGluZyk7CiAgICAgcmVxdWVzdC5zZXRJbml0aWF0b3JJ
ZGVudGlmaWVyKGNvbnRleHQucmVzb3VyY2VSZXF1ZXN0SWRlbnRpZmllcigpKTsKLSAgICByZXF1
ZXN0LnNldEhUVFBNZXRob2QoIkdFVCIpOworICAgIHJlcXVlc3Quc2V0SFRUUE1ldGhvZCgiR0VU
Il9zKTsKIAogICAgIFRocmVhZGFibGVMb2FkZXJPcHRpb25zIG9wdGlvbnM7CiAgICAgb3B0aW9u
cy5zZW5kTG9hZENhbGxiYWNrcyA9IFNlbmRDYWxsYmFja1BvbGljeTo6U2VuZENhbGxiYWNrczsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxl
U3lzdGVtRmlsZUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1h
Y2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuY3BwCmluZGV4IDBlOTVmZmRlZTRhZjg1NGU4N2Uy
NTNhOWNkZTg2MzQyZjVhMmVkZjguLmFhMzJhOWJiMjJmYjRiYmY5M2JhZGQ2MWQxMjg4YmJmOTA4
ZDNkNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vz
cy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
aWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcApAQCAtNTUsNyArNTUsNyBA
QCBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6RmlsZVN5c3RlbUZpbGVIYW5kbGUoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYgY29udGV4dCwgU3RyaQogdm9pZCBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Z2V0
RmlsZShET01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNlPEZpbGU+PiYmIHByb21pc2UpCiB7
CiAgICAgaWYgKGlzQ2xvc2VkKCkpCi0gICAgICAgIHJldHVybiBwcm9taXNlLnJlamVjdChFeGNl
cHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkhhbmRsZSBpcyBjbG9zZWQiIH0pOworICAgICAg
ICByZXR1cm4gcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJI
YW5kbGUgaXMgY2xvc2VkIl9zIH0pOwogCiAgICAgY29ubmVjdGlvbigpLmdldEZpbGUoaWRlbnRp
ZmllcigpLCBbcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH0sIHByb21pc2UgPSBXVEZNb3Zl
KHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CiAgICAgICAgIGlmIChyZXN1bHQuaGFz
RXhjZXB0aW9uKCkpCkBAIC03Miw3ICs3Miw3IEBAIHZvaWQgRmlsZVN5c3RlbUZpbGVIYW5kbGU6
OmdldEZpbGUoRE9NUHJvbWlzZURlZmVycmVkPElETEludGVyZmFjZTxGaWxlPj4mJiBwcm9tCiB2
b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKERPTVByb21p
c2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU+PiYmIHBy
b21pc2UpCiB7CiAgICAgaWYgKGlzQ2xvc2VkKCkpCi0gICAgICAgIHJldHVybiBwcm9taXNlLnJl
amVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkhhbmRsZSBpcyBjbG9zZWQiIH0p
OworICAgICAgICByZXR1cm4gcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRl
RXJyb3IsICJIYW5kbGUgaXMgY2xvc2VkIl9zIH0pOwogCiAgICAgY29ubmVjdGlvbigpLmNyZWF0
ZVN5bmNBY2Nlc3NIYW5kbGUoaWRlbnRpZmllcigpLCBbcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0
aGlzIH0sIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7
CiAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5j
cHAKaW5kZXggMGI5Zjc4OGU0OTAzZmE3ZTdhZTQyODk3YTAwMmI5NmU4ZGZlMTNkNy4uOWUwY2M4
NzRiMGM3MzQ0NTdjNDljNGMzODZkYWMyYjNiZjRkZTU5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxl
LmNwcApAQCAtNjAsNyArNjAsNyBAQCB2b2lkIEZpbGVTeXN0ZW1IYW5kbGU6OmNsb3NlKCkKIHZv
aWQgRmlsZVN5c3RlbUhhbmRsZTo6aXNTYW1lRW50cnkoRmlsZVN5c3RlbUhhbmRsZSYgaGFuZGxl
LCBET01Qcm9taXNlRGVmZXJyZWQ8SURMQm9vbGVhbj4mJiBwcm9taXNlKSBjb25zdAogewogICAg
IGlmIChpc0Nsb3NlZCgpKQotICAgICAgICByZXR1cm4gcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9u
IHsgSW52YWxpZFN0YXRlRXJyb3IsICJIYW5kbGUgaXMgY2xvc2VkIiB9KTsKKyAgICAgICAgcmV0
dXJuIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiSGFuZGxl
IGlzIGNsb3NlZCJfcyB9KTsKIAogICAgIGlmIChtX2tpbmQgIT0gaGFuZGxlLmtpbmQoKSB8fCBt
X25hbWUgIT0gaGFuZGxlLm5hbWUoKSkKICAgICAgICAgcmV0dXJuIHByb21pc2UucmVzb2x2ZShm
YWxzZSk7CkBAIC03Myw3ICs3Myw3IEBAIHZvaWQgRmlsZVN5c3RlbUhhbmRsZTo6aXNTYW1lRW50
cnkoRmlsZVN5c3RlbUhhbmRsZSYgaGFuZGxlLCBET01Qcm9taXNlRGVmZXJyZWQ8CiB2b2lkIEZp
bGVTeXN0ZW1IYW5kbGU6Om1vdmUoRmlsZVN5c3RlbUhhbmRsZSYgZGVzdGluYXRpb25IYW5kbGUs
IGNvbnN0IFN0cmluZyYgbmV3TmFtZSwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlz
ZSkKIHsKICAgICBpZiAoaXNDbG9zZWQoKSkKLSAgICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0
KEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiSGFuZGxlIGlzIGNsb3NlZCIgfSk7Cisg
ICAgICAgIHJldHVybiBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJv
ciwgIkhhbmRsZSBpcyBjbG9zZWQiX3MgfSk7CiAKICAgICBpZiAoZGVzdGluYXRpb25IYW5kbGUu
a2luZCgpICE9IEtpbmQ6OkRpcmVjdG9yeSkKICAgICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0
KEV4Y2VwdGlvbiB7IFR5cGVNaXNtYXRjaEVycm9yIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5RGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJLZXlEYXRhLmNwcAppbmRleCAyYTM3YzUyOGVmNWJmOWQ5NTc3
M2EwYjEwZjAyNTIyOWJkZTVhNDE4Li40NjBmMTc0YTM4MWFiNmFiYTRjYTI5ODMxNDUyNjk4YjVk
NTI5MGQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJL
ZXlEYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlE
YXRhLmNwcApAQCAtMTQ5LDM1ICsxNDksMzUgQEAgdm9pZCBJREJLZXlEYXRhOjppc29sYXRlZENv
cHkoY29uc3QgSURCS2V5RGF0YSYgc291cmNlLCBJREJLZXlEYXRhJiBkZXN0aW5hdGlvbikKIAog
dm9pZCBJREJLZXlEYXRhOjplbmNvZGUoS2V5ZWRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewot
ICAgIGVuY29kZXIuZW5jb2RlQm9vbCgibnVsbCIsIG1faXNOdWxsKTsKKyAgICBlbmNvZGVyLmVu
Y29kZUJvb2woIm51bGwiX3MsIG1faXNOdWxsKTsKICAgICBpZiAobV9pc051bGwpCiAgICAgICAg
IHJldHVybjsKIAotICAgIGVuY29kZXIuZW5jb2RlRW51bSgidHlwZSIsIG1fdHlwZSk7CisgICAg
ZW5jb2Rlci5lbmNvZGVFbnVtKCJ0eXBlIl9zLCBtX3R5cGUpOwogCiAgICAgc3dpdGNoIChtX3R5
cGUpIHsKICAgICBjYXNlIEluZGV4ZWREQjo6S2V5VHlwZTo6SW52YWxpZDoKICAgICAgICAgcmV0
dXJuOwogICAgIGNhc2UgSW5kZXhlZERCOjpLZXlUeXBlOjpBcnJheTogewogICAgICAgICBhdXRv
JiBhcnJheSA9IHN0ZDo6Z2V0PFZlY3RvcjxJREJLZXlEYXRhPj4obV92YWx1ZSk7Ci0gICAgICAg
IGVuY29kZXIuZW5jb2RlT2JqZWN0cygiYXJyYXkiLCBhcnJheS5iZWdpbigpLCBhcnJheS5lbmQo
KSwgW10oS2V5ZWRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBJREJLZXlEYXRhJiBrZXkpIHsKKyAg
ICAgICAgZW5jb2Rlci5lbmNvZGVPYmplY3RzKCJhcnJheSJfcywgYXJyYXkuYmVnaW4oKSwgYXJy
YXkuZW5kKCksIFtdKEtleWVkRW5jb2RlciYgZW5jb2RlciwgY29uc3QgSURCS2V5RGF0YSYga2V5
KSB7CiAgICAgICAgICAgICBrZXkuZW5jb2RlKGVuY29kZXIpOwogICAgICAgICB9KTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KICAgICBjYXNlIEluZGV4ZWREQjo6S2V5VHlwZTo6QmluYXJ5OiB7
CiAgICAgICAgIGF1dG8qIGRhdGEgPSBzdGQ6OmdldDxUaHJlYWRTYWZlRGF0YUJ1ZmZlcj4obV92
YWx1ZSkuZGF0YSgpOwotICAgICAgICBlbmNvZGVyLmVuY29kZUJvb2woImhhc0JpbmFyeSIsICEh
ZGF0YSk7CisgICAgICAgIGVuY29kZXIuZW5jb2RlQm9vbCgiaGFzQmluYXJ5Il9zLCAhIWRhdGEp
OwogICAgICAgICBpZiAoZGF0YSkKLSAgICAgICAgICAgIGVuY29kZXIuZW5jb2RlQnl0ZXMoImJp
bmFyeSIsIGRhdGEtPmRhdGEoKSwgZGF0YS0+c2l6ZSgpKTsKKyAgICAgICAgICAgIGVuY29kZXIu
ZW5jb2RlQnl0ZXMoImJpbmFyeSJfcywgZGF0YS0+ZGF0YSgpLCBkYXRhLT5zaXplKCkpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQogICAgIGNhc2UgSW5kZXhlZERCOjpLZXlUeXBlOjpTdHJpbmc6
Ci0gICAgICAgIGVuY29kZXIuZW5jb2RlU3RyaW5nKCJzdHJpbmciLCBzdGQ6OmdldDxTdHJpbmc+
KG1fdmFsdWUpKTsKKyAgICAgICAgZW5jb2Rlci5lbmNvZGVTdHJpbmcoInN0cmluZyJfcywgc3Rk
OjpnZXQ8U3RyaW5nPihtX3ZhbHVlKSk7CiAgICAgICAgIHJldHVybjsKICAgICBjYXNlIEluZGV4
ZWREQjo6S2V5VHlwZTo6RGF0ZToKICAgICBjYXNlIEluZGV4ZWREQjo6S2V5VHlwZTo6TnVtYmVy
OgotICAgICAgICBlbmNvZGVyLmVuY29kZURvdWJsZSgibnVtYmVyIiwgc3RkOjpnZXQ8ZG91Ymxl
PihtX3ZhbHVlKSk7CisgICAgICAgIGVuY29kZXIuZW5jb2RlRG91YmxlKCJudW1iZXIiX3MsIHN0
ZDo6Z2V0PGRvdWJsZT4obV92YWx1ZSkpOwogICAgICAgICByZXR1cm47CiAgICAgY2FzZSBJbmRl
eGVkREI6OktleVR5cGU6Ok1heDoKICAgICBjYXNlIEluZGV4ZWREQjo6S2V5VHlwZTo6TWluOgpA
QCAtMTg5LDcgKzE4OSw3IEBAIHZvaWQgSURCS2V5RGF0YTo6ZW5jb2RlKEtleWVkRW5jb2RlciYg
ZW5jb2RlcikgY29uc3QKIAogYm9vbCBJREJLZXlEYXRhOjpkZWNvZGUoS2V5ZWREZWNvZGVyJiBk
ZWNvZGVyLCBJREJLZXlEYXRhJiByZXN1bHQpCiB7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZUJv
b2woIm51bGwiLCByZXN1bHQubV9pc051bGwpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGVCb29s
KCJudWxsIl9zLCByZXN1bHQubV9pc051bGwpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAg
ICBpZiAocmVzdWx0Lm1faXNOdWxsKQpAQCAtMjA1LDcgKzIwNSw3IEBAIGJvb2wgSURCS2V5RGF0
YTo6ZGVjb2RlKEtleWVkRGVjb2RlciYgZGVjb2RlciwgSURCS2V5RGF0YSYgcmVzdWx0KQogICAg
ICAgICAgICAgfHwgdmFsdWUgPT0gSW5kZXhlZERCOjpLZXlUeXBlOjpOdW1iZXIKICAgICAgICAg
ICAgIHx8IHZhbHVlID09IEluZGV4ZWREQjo6S2V5VHlwZTo6TWluOwogICAgIH07Ci0gICAgaWYg
KCFkZWNvZGVyLmRlY29kZUVudW0oInR5cGUiLCByZXN1bHQubV90eXBlLCBlbnVtRnVuY3Rpb24p
KQorICAgIGlmICghZGVjb2Rlci5kZWNvZGVFbnVtKCJ0eXBlIl9zLCByZXN1bHQubV90eXBlLCBl
bnVtRnVuY3Rpb24pKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAocmVzdWx0Lm1f
dHlwZSA9PSBJbmRleGVkREI6OktleVR5cGU6OkludmFsaWQpCkBAIC0yMTksMjYgKzIxOSwyNiBA
QCBib29sIElEQktleURhdGE6OmRlY29kZShLZXllZERlY29kZXImIGRlY29kZXIsIElEQktleURh
dGEmIHJlc3VsdCkKIAogICAgIGlmIChyZXN1bHQubV90eXBlID09IEluZGV4ZWREQjo6S2V5VHlw
ZTo6U3RyaW5nKSB7CiAgICAgICAgIHJlc3VsdC5tX3ZhbHVlID0gU3RyaW5nKCk7Ci0gICAgICAg
IHJldHVybiBkZWNvZGVyLmRlY29kZVN0cmluZygic3RyaW5nIiwgc3RkOjpnZXQ8U3RyaW5nPihy
ZXN1bHQubV92YWx1ZSkpOworICAgICAgICByZXR1cm4gZGVjb2Rlci5kZWNvZGVTdHJpbmcoInN0
cmluZyJfcywgc3RkOjpnZXQ8U3RyaW5nPihyZXN1bHQubV92YWx1ZSkpOwogICAgIH0KIAogICAg
IGlmIChyZXN1bHQubV90eXBlID09IEluZGV4ZWREQjo6S2V5VHlwZTo6TnVtYmVyIHx8IHJlc3Vs
dC5tX3R5cGUgPT0gSW5kZXhlZERCOjpLZXlUeXBlOjpEYXRlKSB7CiAgICAgICAgIHJlc3VsdC5t
X3ZhbHVlID0gMC4wOwotICAgICAgICByZXR1cm4gZGVjb2Rlci5kZWNvZGVEb3VibGUoIm51bWJl
ciIsIHN0ZDo6Z2V0PGRvdWJsZT4ocmVzdWx0Lm1fdmFsdWUpKTsKKyAgICAgICAgcmV0dXJuIGRl
Y29kZXIuZGVjb2RlRG91YmxlKCJudW1iZXIiX3MsIHN0ZDo6Z2V0PGRvdWJsZT4ocmVzdWx0Lm1f
dmFsdWUpKTsKICAgICB9CiAKICAgICBpZiAocmVzdWx0Lm1fdHlwZSA9PSBJbmRleGVkREI6Oktl
eVR5cGU6OkJpbmFyeSkgewogICAgICAgICByZXN1bHQubV92YWx1ZSA9IFRocmVhZFNhZmVEYXRh
QnVmZmVyKCk7CiAKICAgICAgICAgYm9vbCBoYXNCaW5hcnlEYXRhOwotICAgICAgICBpZiAoIWRl
Y29kZXIuZGVjb2RlQm9vbCgiaGFzQmluYXJ5IiwgaGFzQmluYXJ5RGF0YSkpCisgICAgICAgIGlm
ICghZGVjb2Rlci5kZWNvZGVCb29sKCJoYXNCaW5hcnkiX3MsIGhhc0JpbmFyeURhdGEpKQogICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgICAgIGlmICghaGFzQmluYXJ5RGF0YSkKICAg
ICAgICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgICAgIFZlY3Rvcjx1aW50OF90PiBieXRlczsK
LSAgICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZUJ5dGVzKCJiaW5hcnkiLCBieXRlcykpCisgICAg
ICAgIGlmICghZGVjb2Rlci5kZWNvZGVCeXRlcygiYmluYXJ5Il9zLCBieXRlcykpCiAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAgICAgcmVzdWx0Lm1fdmFsdWUgPSBUaHJlYWRTYWZl
RGF0YUJ1ZmZlcjo6Y3JlYXRlKFdURk1vdmUoYnl0ZXMpKTsKQEAgLTI1Miw3ICsyNTIsNyBAQCBi
b29sIElEQktleURhdGE6OmRlY29kZShLZXllZERlY29kZXImIGRlY29kZXIsIElEQktleURhdGEm
IHJlc3VsdCkKICAgICB9OwogICAgIAogICAgIHJlc3VsdC5tX3ZhbHVlID0gVmVjdG9yPElEQktl
eURhdGE+KCk7Ci0gICAgcmV0dXJuIGRlY29kZXIuZGVjb2RlT2JqZWN0cygiYXJyYXkiLCBzdGQ6
OmdldDxWZWN0b3I8SURCS2V5RGF0YT4+KHJlc3VsdC5tX3ZhbHVlKSwgYXJyYXlGdW5jdGlvbik7
CisgICAgcmV0dXJuIGRlY29kZXIuZGVjb2RlT2JqZWN0cygiYXJyYXkiX3MsIHN0ZDo6Z2V0PFZl
Y3RvcjxJREJLZXlEYXRhPj4ocmVzdWx0Lm1fdmFsdWUpLCBhcnJheUZ1bmN0aW9uKTsKIH0KIAog
aW50IElEQktleURhdGE6OmNvbXBhcmUoY29uc3QgSURCS2V5RGF0YSYgb3RoZXIpIGNvbnN0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlSYW5nZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlSYW5nZS5jcHAKaW5k
ZXggMTRmMzAzYTA0YzIzYThiZjQ3YmYwNjU5ZjkyODc5MjRmOTYxM2FmYi4uZGVmNTA0ODE3YWQw
MzgyMjQ3NGRkMmY1ZDE2ZDM2OTBiYjk3ZjRhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvSURCS2V5UmFuZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL0lEQktleVJhbmdlLmNwcApAQCAtMTM3LDcgKzEzNyw3IEBAIEV4Y2Vw
dGlvbk9yPGJvb2w+IElEQktleVJhbmdlOjppbmNsdWRlcyhKU0M6OkpTR2xvYmFsT2JqZWN0JiBz
dGF0ZSwgSlNDOjpKU1ZhbHVlCiAgICAgYXV0byBrZXkgPSBzY3JpcHRWYWx1ZVRvSURCS2V5KHN0
YXRlLCBrZXlWYWx1ZSk7CiAgICAgRVhDRVBUSU9OX0FTU0VSVF9VTlVTRUQoc2NvcGUsICFzY29w
ZS5leGNlcHRpb24oKSB8fCAha2V5LT5pc1ZhbGlkKCkpOwogICAgIGlmICgha2V5LT5pc1ZhbGlk
KCkpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBEYXRhRXJyb3IsICJGYWlsZWQgdG8gZXhl
Y3V0ZSAnaW5jbHVkZXMnIG9uICdJREJLZXlSYW5nZSc6IFRoZSBwYXNzZWQtaW4gdmFsdWUgaXMg
bm90IGEgdmFsaWQgSW5kZXhlZERCIGtleS4iIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBEYXRhRXJyb3IsICJGYWlsZWQgdG8gZXhlY3V0ZSAnaW5jbHVkZXMnIG9uICdJREJLZXlSYW5n
ZSc6IFRoZSBwYXNzZWQtaW4gdmFsdWUgaXMgbm90IGEgdmFsaWQgSW5kZXhlZERCIGtleS4iX3Mg
fTsKIAogICAgIGlmIChtX2xvd2VyKSB7CiAgICAgICAgIGludCBjb21wYXJlID0gbV9sb3dlci0+
Y29tcGFyZShrZXkuZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvc2VydmVyL0lEQlNlcmlhbGl6YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcmlhbGl6YXRpb24uY3BwCmluZGV4IDJhMmMxZmMz
Mjk1ODA1ZDUyZmQ1NmFmMzBiNDU1YWUyY2NjYzQ4NzcuLjMzZDRkNDFjOTI3N2JmZjI5NzEzNzUy
Yzg5MWQyYzkwOTFhZDM1Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL3NlcnZlci9JREJTZXJpYWxpemF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VyaWFsaXphdGlvbi5jcHAKQEAgLTQ1LDE3ICs0
NSwxNyBAQCBSZWZQdHI8U2hhcmVkQnVmZmVyPiBzZXJpYWxpemVJREJLZXlQYXRoKGNvbnN0IHN0
ZDo6b3B0aW9uYWw8SURCS2V5UGF0aD4mIGtleVBhdAogCiAgICAgaWYgKGtleVBhdGgpIHsKICAg
ICAgICAgYXV0byB2aXNpdG9yID0gV1RGOjptYWtlVmlzaXRvcihbJl0oY29uc3QgU3RyaW5nJiBz
dHJpbmcpIHsKLSAgICAgICAgICAgIGVuY29kZXItPmVuY29kZUVudW0oInR5cGUiLCBLZXlQYXRo
VHlwZTo6U3RyaW5nKTsKLSAgICAgICAgICAgIGVuY29kZXItPmVuY29kZVN0cmluZygic3RyaW5n
Iiwgc3RyaW5nKTsKKyAgICAgICAgICAgIGVuY29kZXItPmVuY29kZUVudW0oInR5cGUiX3MsIEtl
eVBhdGhUeXBlOjpTdHJpbmcpOworICAgICAgICAgICAgZW5jb2Rlci0+ZW5jb2RlU3RyaW5nKCJz
dHJpbmciX3MsIHN0cmluZyk7CiAgICAgICAgIH0sIFsmXShjb25zdCBWZWN0b3I8U3RyaW5nPiYg
dmVjdG9yKSB7Ci0gICAgICAgICAgICBlbmNvZGVyLT5lbmNvZGVFbnVtKCJ0eXBlIiwgS2V5UGF0
aFR5cGU6OkFycmF5KTsKLSAgICAgICAgICAgIGVuY29kZXItPmVuY29kZU9iamVjdHMoImFycmF5
IiwgdmVjdG9yLmJlZ2luKCksIHZlY3Rvci5lbmQoKSwgW10oV2ViQ29yZTo6S2V5ZWRFbmNvZGVy
JiBlbmNvZGVyLCBjb25zdCBTdHJpbmcmIHN0cmluZykgewotICAgICAgICAgICAgICAgIGVuY29k
ZXIuZW5jb2RlU3RyaW5nKCJzdHJpbmciLCBzdHJpbmcpOworICAgICAgICAgICAgZW5jb2Rlci0+
ZW5jb2RlRW51bSgidHlwZSJfcywgS2V5UGF0aFR5cGU6OkFycmF5KTsKKyAgICAgICAgICAgIGVu
Y29kZXItPmVuY29kZU9iamVjdHMoImFycmF5Il9zLCB2ZWN0b3IuYmVnaW4oKSwgdmVjdG9yLmVu
ZCgpLCBbXShXZWJDb3JlOjpLZXllZEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFN0cmluZyYgc3Ry
aW5nKSB7CisgICAgICAgICAgICAgICAgZW5jb2Rlci5lbmNvZGVTdHJpbmcoInN0cmluZyJfcywg
c3RyaW5nKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICAgICAgc3RkOjp2aXNp
dCh2aXNpdG9yLCBrZXlQYXRoLnZhbHVlKCkpOwogICAgIH0gZWxzZQotICAgICAgICBlbmNvZGVy
LT5lbmNvZGVFbnVtKCJ0eXBlIiwgS2V5UGF0aFR5cGU6Ok51bGwpOworICAgICAgICBlbmNvZGVy
LT5lbmNvZGVFbnVtKCJ0eXBlIl9zLCBLZXlQYXRoVHlwZTo6TnVsbCk7CiAKICAgICByZXR1cm4g
ZW5jb2Rlci0+ZmluaXNoRW5jb2RpbmcoKTsKIH0KQEAgLTY4LDcgKzY4LDcgQEAgYm9vbCBkZXNl
cmlhbGl6ZUlEQktleVBhdGgoY29uc3QgdWludDhfdCogZGF0YSwgc2l6ZV90IHNpemUsIHN0ZDo6
b3B0aW9uYWw8SURCS2UKICAgICBhdXRvIGRlY29kZXIgPSBLZXllZERlY29kZXI6OmRlY29kZXIo
ZGF0YSwgc2l6ZSk7CiAKICAgICBLZXlQYXRoVHlwZSB0eXBlOwotICAgIGJvb2wgc3VjY2VlZGVk
ID0gZGVjb2Rlci0+ZGVjb2RlRW51bSgidHlwZSIsIHR5cGUsIFtdKEtleVBhdGhUeXBlIHZhbHVl
KSB7CisgICAgYm9vbCBzdWNjZWVkZWQgPSBkZWNvZGVyLT5kZWNvZGVFbnVtKCJ0eXBlIl9zLCB0
eXBlLCBbXShLZXlQYXRoVHlwZSB2YWx1ZSkgewogICAgICAgICByZXR1cm4gdmFsdWUgPT0gS2V5
UGF0aFR5cGU6Ok51bGwgfHwgdmFsdWUgPT0gS2V5UGF0aFR5cGU6OlN0cmluZyB8fCB2YWx1ZSA9
PSBLZXlQYXRoVHlwZTo6QXJyYXk7CiAgICAgfSk7CiAgICAgaWYgKCFzdWNjZWVkZWQpCkBAIC03
OSwxNSArNzksMTUgQEAgYm9vbCBkZXNlcmlhbGl6ZUlEQktleVBhdGgoY29uc3QgdWludDhfdCog
ZGF0YSwgc2l6ZV90IHNpemUsIHN0ZDo6b3B0aW9uYWw8SURCS2UKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBLZXlQYXRoVHlwZTo6U3RyaW5nOiB7CiAgICAgICAgIFN0cmluZyBzdHJpbmc7Ci0g
ICAgICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlU3RyaW5nKCJzdHJpbmciLCBzdHJpbmcpKQorICAg
ICAgICBpZiAoIWRlY29kZXItPmRlY29kZVN0cmluZygic3RyaW5nIl9zLCBzdHJpbmcpKQogICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICByZXN1bHQgPSBJREJLZXlQYXRoKFdURk1v
dmUoc3RyaW5nKSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIEtleVBhdGhUeXBl
OjpBcnJheTogewogICAgICAgICBWZWN0b3I8U3RyaW5nPiB2ZWN0b3I7Ci0gICAgICAgIHN1Y2Nl
ZWRlZCA9IGRlY29kZXItPmRlY29kZU9iamVjdHMoImFycmF5IiwgdmVjdG9yLCBbXShLZXllZERl
Y29kZXImIGRlY29kZXIsIFN0cmluZyYgcmVzdWx0KSB7Ci0gICAgICAgICAgICByZXR1cm4gZGVj
b2Rlci5kZWNvZGVTdHJpbmcoInN0cmluZyIsIHJlc3VsdCk7CisgICAgICAgIHN1Y2NlZWRlZCA9
IGRlY29kZXItPmRlY29kZU9iamVjdHMoImFycmF5Il9zLCB2ZWN0b3IsIFtdKEtleWVkRGVjb2Rl
ciYgZGVjb2RlciwgU3RyaW5nJiByZXN1bHQpIHsKKyAgICAgICAgICAgIHJldHVybiBkZWNvZGVy
LmRlY29kZVN0cmluZygic3RyaW5nIl9zLCByZXN1bHQpOwogICAgICAgICB9KTsKICAgICAgICAg
aWYgKCFzdWNjZWVkZWQpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwCmluZGV4
IGU4OTg3YTY5MWZlMjNhNjhlMzI5MjNhOGE0YTBkNWFmYWMwOTU2YjcuLjMyMGM2YjFiYjAxNjVi
ZGNlZDc0YzBjOTc2NThjNGViNTA4ZDE2NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwCkBAIC01ODgsOCArNTg4LDgg
QEAgdm9pZCBJREJTZXJ2ZXI6OmNsb3NlQW5kRGVsZXRlRGF0YWJhc2VzTW9kaWZpZWRTaW5jZShX
YWxsVGltZSBtb2RpZmljYXRpb25UaW1lKQogICAgIG1fdW5pcXVlSURCRGF0YWJhc2VNYXAuY2xl
YXIoKTsKIAogICAgIGlmICghbV9kYXRhYmFzZURpcmVjdG9yeVBhdGguaXNFbXB0eSgpKSB7Ci0g
ICAgICAgIHJlbW92ZURhdGFiYXNlc01vZGlmaWVkU2luY2VGb3JWZXJzaW9uKG1vZGlmaWNhdGlv
blRpbWUsICJ2MCIpOwotICAgICAgICByZW1vdmVEYXRhYmFzZXNNb2RpZmllZFNpbmNlRm9yVmVy
c2lvbihtb2RpZmljYXRpb25UaW1lLCAidjEiKTsKKyAgICAgICAgcmVtb3ZlRGF0YWJhc2VzTW9k
aWZpZWRTaW5jZUZvclZlcnNpb24obW9kaWZpY2F0aW9uVGltZSwgInYwIl9zKTsKKyAgICAgICAg
cmVtb3ZlRGF0YWJhc2VzTW9kaWZpZWRTaW5jZUZvclZlcnNpb24obW9kaWZpY2F0aW9uVGltZSwg
InYxIl9zKTsKICAgICB9CiB9CiAKQEAgLTYyNCw4ICs2MjQsOCBAQCB2b2lkIElEQlNlcnZlcjo6
Y2xvc2VBbmREZWxldGVEYXRhYmFzZXNGb3JPcmlnaW5zKGNvbnN0IFZlY3RvcjxTZWN1cml0eU9y
aWdpbkRhdAogICAgIH0pOwogCiAgICAgaWYgKCFtX2RhdGFiYXNlRGlyZWN0b3J5UGF0aC5pc0Vt
cHR5KCkpIHsKLSAgICAgICAgcmVtb3ZlRGF0YWJhc2VzV2l0aE9yaWdpbnNGb3JWZXJzaW9uKG9y
aWdpbnMsICJ2MCIpOwotICAgICAgICByZW1vdmVEYXRhYmFzZXNXaXRoT3JpZ2luc0ZvclZlcnNp
b24ob3JpZ2lucywgInYxIik7CisgICAgICAgIHJlbW92ZURhdGFiYXNlc1dpdGhPcmlnaW5zRm9y
VmVyc2lvbihvcmlnaW5zLCAidjAiX3MpOworICAgICAgICByZW1vdmVEYXRhYmFzZXNXaXRoT3Jp
Z2luc0ZvclZlcnNpb24ob3JpZ2lucywgInYxIl9zKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlJREJCYWNraW5n
U3RvcmUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9y
eUlEQkJhY2tpbmdTdG9yZS5jcHAKaW5kZXggZDYzMzUwMzA5OTMwNTViOWIxMmI3ODQ1NjU1ZGE4
MzM3MmIxYTU1MC4uMWMyN2FkNjE3OWYxYmVhZDBmZjFhNmRlY2ZiOWFlMmI1ZTk1M2Y5YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUlE
QkJhY2tpbmdTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL01lbW9yeUlEQkJhY2tpbmdTdG9yZS5jcHAKQEAgLTc4LDcgKzc4LDcgQEAgSURCRXJy
b3IgTWVtb3J5SURCQmFja2luZ1N0b3JlOjpiZWdpblRyYW5zYWN0aW9uKGNvbnN0IElEQlRyYW5z
YWN0aW9uSW5mbyYgaW5mbykKICAgICBMT0coSW5kZXhlZERCLCAiTWVtb3J5SURCQmFja2luZ1N0
b3JlOjpiZWdpblRyYW5zYWN0aW9uIik7CiAKICAgICBpZiAobV90cmFuc2FjdGlvbnMuY29udGFp
bnMoaW5mby5pZGVudGlmaWVyKCkpKQotICAgICAgICByZXR1cm4gSURCRXJyb3IgeyBJbnZhbGlk
U3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgYXNrZWQgdG8gY3JlYXRlIHRyYW5zYWN0aW9uIGl0
IGFscmVhZHkgaGFzIGEgcmVjb3JkIG9mIiB9OworICAgICAgICByZXR1cm4gSURCRXJyb3IgeyBJ
bnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgYXNrZWQgdG8gY3JlYXRlIHRyYW5zYWN0
aW9uIGl0IGFscmVhZHkgaGFzIGEgcmVjb3JkIG9mIl9zIH07CiAKICAgICBhdXRvIHRyYW5zYWN0
aW9uID0gTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb246OmNyZWF0ZSgqdGhpcywgaW5mbyk7
CiAKQEAgLTEwNCw3ICsxMDQsNyBAQCBJREJFcnJvciBNZW1vcnlJREJCYWNraW5nU3RvcmU6OmFi
b3J0VHJhbnNhY3Rpb24oY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cgogCiAgICAgYXV0
byB0cmFuc2FjdGlvbiA9IG1fdHJhbnNhY3Rpb25zLnRha2UodHJhbnNhY3Rpb25JZGVudGlmaWVy
KTsKICAgICBpZiAoIXRyYW5zYWN0aW9uKQotICAgICAgICByZXR1cm4gSURCRXJyb3IgeyBJbnZh
bGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgYXNrZWQgdG8gYWJvcnQgdHJhbnNhY3Rpb24g
aXQgZGlkbid0IGhhdmUgcmVjb3JkIG9mIiB9OworICAgICAgICByZXR1cm4gSURCRXJyb3IgeyBJ
bnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgYXNrZWQgdG8gYWJvcnQgdHJhbnNhY3Rp
b24gaXQgZGlkbid0IGhhdmUgcmVjb3JkIG9mIl9zIH07CiAKICAgICB0cmFuc2FjdGlvbi0+YWJv
cnQoKTsKIApAQCAtMTE3LDcgKzExNyw3IEBAIElEQkVycm9yIE1lbW9yeUlEQkJhY2tpbmdTdG9y
ZTo6Y29tbWl0VHJhbnNhY3Rpb24oY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0CiAKICAg
ICBhdXRvIHRyYW5zYWN0aW9uID0gbV90cmFuc2FjdGlvbnMudGFrZSh0cmFuc2FjdGlvbklkZW50
aWZpZXIpOwogICAgIGlmICghdHJhbnNhY3Rpb24pCi0gICAgICAgIHJldHVybiBJREJFcnJvciB7
IEludmFsaWRTdGF0ZUVycm9yLCAiQmFja2luZyBzdG9yZSBhc2tlZCB0byBjb21taXQgdHJhbnNh
Y3Rpb24gaXQgZGlkbid0IGhhdmUgcmVjb3JkIG9mIiB9OworICAgICAgICByZXR1cm4gSURCRXJy
b3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgYXNrZWQgdG8gY29tbWl0IHRy
YW5zYWN0aW9uIGl0IGRpZG4ndCBoYXZlIHJlY29yZCBvZiJfcyB9OwogCiAgICAgdHJhbnNhY3Rp
b24tPmNvbW1pdCgpOwogCkBAIC00NzMsNyArNDczLDcgQEAgSURCRXJyb3IgTWVtb3J5SURCQmFj
a2luZ1N0b3JlOjpnZW5lcmF0ZUtleU51bWJlcihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXIm
IHQKIAogICAgIGtleU51bWJlciA9IG9iamVjdFN0b3JlLT5jdXJyZW50S2V5R2VuZXJhdG9yVmFs
dWUoKTsKICAgICBpZiAoa2V5TnVtYmVyID4gbWF4R2VuZXJhdGVkS2V5VmFsdWUpCi0gICAgICAg
IHJldHVybiBJREJFcnJvciB7IENvbnN0cmFpbnRFcnJvciwgIkNhbm5vdCBnZW5lcmF0ZSBuZXcg
a2V5IHZhbHVlIG92ZXIgMl41MyBmb3Igb2JqZWN0IHN0b3JlIG9wZXJhdGlvbiIgfTsKKyAgICAg
ICAgcmV0dXJuIElEQkVycm9yIHsgQ29uc3RyYWludEVycm9yLCAiQ2Fubm90IGdlbmVyYXRlIG5l
dyBrZXkgdmFsdWUgb3ZlciAyXjUzIGZvciBvYmplY3Qgc3RvcmUgb3BlcmF0aW9uIl9zIH07CiAK
ICAgICBvYmplY3RTdG9yZS0+c2V0S2V5R2VuZXJhdG9yVmFsdWUoa2V5TnVtYmVyICsgMSk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1v
cnlPYmplY3RTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2
ZXIvTWVtb3J5T2JqZWN0U3RvcmUuY3BwCmluZGV4IDdlZjlkMGEzODdmNzI3ZDg1ZWMwZGVlZjZk
M2NhZTBkZWQwMTU4Y2YuLjg5MjMxYjRhZTI0OTY4ZTg5YjBkNzU4MTE1MWY1MjhlZTNlMmZiNGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1v
cnlPYmplY3RTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL01lbW9yeU9iamVjdFN0b3JlLmNwcApAQCAtMzEwLDcgKzMxMCw3IEBAIElEQkVycm9y
IE1lbW9yeU9iamVjdFN0b3JlOjp1cGRhdGVJbmRleGVzRm9yUHV0UmVjb3JkKGNvbnN0IElEQktl
eURhdGEmIGtleSwgY29uCiAgICAgICAgIGF1dG8qIGluZGV4ID0gbV9pbmRleGVzQnlJZGVudGlm
aWVyLmdldChpbmRleElEKTsKICAgICAgICAgQVNTRVJUKGluZGV4KTsKICAgICAgICAgaWYgKCFp
bmRleCkgewotICAgICAgICAgICAgZXJyb3IgPSBJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9y
LCAiTWlzc2luZyBpbmRleCBtZXRhZGF0YSIgfTsKKyAgICAgICAgICAgIGVycm9yID0gSURCRXJy
b3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIk1pc3NpbmcgaW5kZXggbWV0YWRhdGEiX3MgfTsKICAg
ICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9y
ZS5jcHAKaW5kZXggMmZhZjNlOTVkMzFjOTg5ZmNlMTJlMDU3ZjA2YzIyZTJmZjczYzQ2ZS4uNGUy
MGE0YjliZWIzZGZlZGY1OWM1MDM4YmJjNDJhODE5ZDUyOGMwYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlE
QkJhY2tpbmdTdG9yZS5jcHAKQEAgLTk4LDM3ICs5OCwzNyBAQCBzdGF0aWMgaW50IGlkYktleUNv
bGxhdGUoaW50IGFMZW5ndGgsIGNvbnN0IHZvaWQqIGFCdWZmZXIsIGludCBiTGVuZ3RoLCBjb25z
dCB2bwogICAgIHJldHVybiBhLmNvbXBhcmUoYik7CiB9CiAKLXN0YXRpYyBjb25zdCBTdHJpbmcg
djFSZWNvcmRzVGFibGVTY2hlbWEoY29uc3QgU3RyaW5nJiB0YWJsZU5hbWUpCitzdGF0aWMgY29u
c3QgU3RyaW5nIHYxUmVjb3Jkc1RhYmxlU2NoZW1hKEFTQ0lJTGl0ZXJhbCB0YWJsZU5hbWUpCiB7
CiAgICAgcmV0dXJuIG1ha2VTdHJpbmcoIkNSRUFURSBUQUJMRSAiLCB0YWJsZU5hbWUsICIgKG9i
amVjdFN0b3JlSUQgSU5URUdFUiBOT1QgTlVMTCBPTiBDT05GTElDVCBGQUlMLCBrZXkgVEVYVCBD
T0xMQVRFIElEQktFWSBOT1QgTlVMTCBPTiBDT05GTElDVCBGQUlMIFVOSVFVRSBPTiBDT05GTElD
VCBSRVBMQUNFLCB2YWx1ZSBOT1QgTlVMTCBPTiBDT05GTElDVCBGQUlMKSIpOwogfQogCiBzdGF0
aWMgY29uc3QgU3RyaW5nJiB2MVJlY29yZHNUYWJsZVNjaGVtYSgpCiB7Ci0gICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPFN0cmluZz4gdjFSZWNvcmRzVGFibGVTY2hlbWFTdHJpbmcodjFSZWNvcmRz
VGFibGVTY2hlbWEoIlJlY29yZHMiKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmlu
Zz4gdjFSZWNvcmRzVGFibGVTY2hlbWFTdHJpbmcodjFSZWNvcmRzVGFibGVTY2hlbWEoIlJlY29y
ZHMiX3MpKTsKICAgICByZXR1cm4gdjFSZWNvcmRzVGFibGVTY2hlbWFTdHJpbmc7CiB9CiAKIHN0
YXRpYyBjb25zdCBTdHJpbmcmIHYxUmVjb3Jkc1RhYmxlU2NoZW1hQWx0ZXJuYXRlKCkKIHsKLSAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiB2MVJlY29yZHNUYWJsZVNjaGVtYVN0cmlu
Zyh2MVJlY29yZHNUYWJsZVNjaGVtYSgiXCJSZWNvcmRzXCIiKSk7CisgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPFN0cmluZz4gdjFSZWNvcmRzVGFibGVTY2hlbWFTdHJpbmcodjFSZWNvcmRzVGFi
bGVTY2hlbWEoIlwiUmVjb3Jkc1wiIl9zKSk7CiAgICAgcmV0dXJuIHYxUmVjb3Jkc1RhYmxlU2No
ZW1hU3RyaW5nOwogfQogCi1zdGF0aWMgY29uc3QgU3RyaW5nIHYyUmVjb3Jkc1RhYmxlU2NoZW1h
KGNvbnN0IFN0cmluZyYgdGFibGVOYW1lKQorc3RhdGljIGNvbnN0IFN0cmluZyB2MlJlY29yZHNU
YWJsZVNjaGVtYShBU0NJSUxpdGVyYWwgdGFibGVOYW1lKQogewogICAgIHJldHVybiBtYWtlU3Ry
aW5nKCJDUkVBVEUgVEFCTEUgIiwgdGFibGVOYW1lLCAiIChvYmplY3RTdG9yZUlEIElOVEVHRVIg
Tk9UIE5VTEwgT04gQ09ORkxJQ1QgRkFJTCwga2V5IFRFWFQgQ09MTEFURSBJREJLRVkgTk9UIE5V
TEwgT04gQ09ORkxJQ1QgRkFJTCwgdmFsdWUgTk9UIE5VTEwgT04gQ09ORkxJQ1QgRkFJTCkiKTsK
IH0KIAogc3RhdGljIGNvbnN0IFN0cmluZyYgdjJSZWNvcmRzVGFibGVTY2hlbWEoKQogewotICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHYyUmVjb3Jkc1RhYmxlU2NoZW1hU3RyaW5n
KHYyUmVjb3Jkc1RhYmxlU2NoZW1hKCJSZWNvcmRzIikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxTdHJpbmc+IHYyUmVjb3Jkc1RhYmxlU2NoZW1hU3RyaW5nKHYyUmVjb3Jkc1RhYmxlU2No
ZW1hKCJSZWNvcmRzIl9zKSk7CiAgICAgcmV0dXJuIHYyUmVjb3Jkc1RhYmxlU2NoZW1hU3RyaW5n
OwogfQogCiBzdGF0aWMgY29uc3QgU3RyaW5nJiB2MlJlY29yZHNUYWJsZVNjaGVtYUFsdGVybmF0
ZSgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gdjJSZWNvcmRzVGFibGVT
Y2hlbWFTdHJpbmcodjJSZWNvcmRzVGFibGVTY2hlbWEoIlwiUmVjb3Jkc1wiIikpOworICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHYyUmVjb3Jkc1RhYmxlU2NoZW1hU3RyaW5nKHYy
UmVjb3Jkc1RhYmxlU2NoZW1hKCJcIlJlY29yZHNcIiJfcykpOwogICAgIHJldHVybiB2MlJlY29y
ZHNUYWJsZVNjaGVtYVN0cmluZzsKIH0KIApAQCAtMTQ3LDM3ICsxNDcsMzcgQEAgc3RhdGljIEFT
Q0lJTGl0ZXJhbCB2M1JlY29yZHNUYWJsZVNjaGVtYVRlbXAoKQogICAgIHJldHVybiBUQUJMRV9T
Q0hFTUFfUFJFRklYICJfVGVtcF9SZWNvcmRzIiBWM19SRUNPUkRTX1RBQkxFX1NDSEVNQV9TVUZG
SVg7CiB9CiAKLXN0YXRpYyBjb25zdCBTdHJpbmcgdjFJbmRleFJlY29yZHNUYWJsZVNjaGVtYShj
b25zdCBTdHJpbmcmIHRhYmxlTmFtZSkKK3N0YXRpYyBjb25zdCBTdHJpbmcgdjFJbmRleFJlY29y
ZHNUYWJsZVNjaGVtYShBU0NJSUxpdGVyYWwgdGFibGVOYW1lKQogewogICAgIHJldHVybiBtYWtl
U3RyaW5nKCJDUkVBVEUgVEFCTEUgIiwgdGFibGVOYW1lLCAiIChpbmRleElEIElOVEVHRVIgTk9U
IE5VTEwgT04gQ09ORkxJQ1QgRkFJTCwgb2JqZWN0U3RvcmVJRCBJTlRFR0VSIE5PVCBOVUxMIE9O
IENPTkZMSUNUIEZBSUwsIGtleSBURVhUIENPTExBVEUgSURCS0VZIE5PVCBOVUxMIE9OIENPTkZM
SUNUIEZBSUwsIHZhbHVlIE5PVCBOVUxMIE9OIENPTkZMSUNUIEZBSUwpIik7CiB9CiAKIHN0YXRp
YyBjb25zdCBTdHJpbmcmIHYxSW5kZXhSZWNvcmRzVGFibGVTY2hlbWEoKQogewotICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHYxSW5kZXhSZWNvcmRzVGFibGVTY2hlbWFTdHJpbmco
djFJbmRleFJlY29yZHNUYWJsZVNjaGVtYSgiSW5kZXhSZWNvcmRzIikpOworICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxTdHJpbmc+IHYxSW5kZXhSZWNvcmRzVGFibGVTY2hlbWFTdHJpbmcodjFJ
bmRleFJlY29yZHNUYWJsZVNjaGVtYSgiSW5kZXhSZWNvcmRzIl9zKSk7CiAgICAgcmV0dXJuIHYx
SW5kZXhSZWNvcmRzVGFibGVTY2hlbWFTdHJpbmc7CiB9CiAKIHN0YXRpYyBjb25zdCBTdHJpbmcm
IHYxSW5kZXhSZWNvcmRzVGFibGVTY2hlbWFBbHRlcm5hdGUoKQogewotICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxTdHJpbmc+IHYxSW5kZXhSZWNvcmRzVGFibGVTY2hlbWFTdHJpbmcodjFJbmRl
eFJlY29yZHNUYWJsZVNjaGVtYSgiXCJJbmRleFJlY29yZHNcIiIpKTsKKyAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8U3RyaW5nPiB2MUluZGV4UmVjb3Jkc1RhYmxlU2NoZW1hU3RyaW5nKHYxSW5k
ZXhSZWNvcmRzVGFibGVTY2hlbWEoIlwiSW5kZXhSZWNvcmRzXCIiX3MpKTsKICAgICByZXR1cm4g
djFJbmRleFJlY29yZHNUYWJsZVNjaGVtYVN0cmluZzsKIH0KIAotc3RhdGljIGNvbnN0IFN0cmlu
ZyB2MkluZGV4UmVjb3Jkc1RhYmxlU2NoZW1hKGNvbnN0IFN0cmluZyYgdGFibGVOYW1lKQorc3Rh
dGljIGNvbnN0IFN0cmluZyB2MkluZGV4UmVjb3Jkc1RhYmxlU2NoZW1hKEFTQ0lJTGl0ZXJhbCB0
YWJsZU5hbWUpCiB7CiAgICAgcmV0dXJuIG1ha2VTdHJpbmcoIkNSRUFURSBUQUJMRSAiLCB0YWJs
ZU5hbWUsICIgKGluZGV4SUQgSU5URUdFUiBOT1QgTlVMTCBPTiBDT05GTElDVCBGQUlMLCBvYmpl
Y3RTdG9yZUlEIElOVEVHRVIgTk9UIE5VTEwgT04gQ09ORkxJQ1QgRkFJTCwga2V5IFRFWFQgQ09M
TEFURSBJREJLRVkgTk9UIE5VTEwgT04gQ09ORkxJQ1QgRkFJTCwgdmFsdWUgVEVYVCBDT0xMQVRF
IElEQktFWSBOT1QgTlVMTCBPTiBDT05GTElDVCBGQUlMKSIpOwogfQogCiBzdGF0aWMgY29uc3Qg
U3RyaW5nJiB2MkluZGV4UmVjb3Jkc1RhYmxlU2NoZW1hKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8U3RyaW5nPiB2MkluZGV4UmVjb3Jkc1RhYmxlU2NoZW1hU3RyaW5nKHYySW5kZXhS
ZWNvcmRzVGFibGVTY2hlbWEoIkluZGV4UmVjb3JkcyIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8U3RyaW5nPiB2MkluZGV4UmVjb3Jkc1RhYmxlU2NoZW1hU3RyaW5nKHYySW5kZXhSZWNv
cmRzVGFibGVTY2hlbWEoIkluZGV4UmVjb3JkcyJfcykpOwogICAgIHJldHVybiB2MkluZGV4UmVj
b3Jkc1RhYmxlU2NoZW1hU3RyaW5nOwogfQogCiBzdGF0aWMgY29uc3QgU3RyaW5nJiB2MkluZGV4
UmVjb3Jkc1RhYmxlU2NoZW1hQWx0ZXJuYXRlKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8U3RyaW5nPiB2MkluZGV4UmVjb3Jkc1RhYmxlU2NoZW1hU3RyaW5nKHYySW5kZXhSZWNvcmRz
VGFibGVTY2hlbWEoIlwiSW5kZXhSZWNvcmRzXCIiKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPFN0cmluZz4gdjJJbmRleFJlY29yZHNUYWJsZVNjaGVtYVN0cmluZyh2MkluZGV4UmVjb3Jk
c1RhYmxlU2NoZW1hKCJcIkluZGV4UmVjb3Jkc1wiIl9zKSk7CiAgICAgcmV0dXJuIHYySW5kZXhS
ZWNvcmRzVGFibGVTY2hlbWFTdHJpbmc7CiB9CiAKQEAgLTkxNCw3ICs5MTQsNyBAQCBTdHJpbmcg
U1FMaXRlSURCQmFja2luZ1N0b3JlOjplbmNvZGVEYXRhYmFzZU5hbWUoY29uc3QgU3RyaW5nJiBk
YXRhYmFzZU5hbWUpCiB7CiAgICAgQVNTRVJUKCFkYXRhYmFzZU5hbWUuaXNFbXB0eSgpKTsKICAg
ICBpZiAoZGF0YWJhc2VOYW1lLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuICIlMDAiOworICAg
ICAgICByZXR1cm4gIiUwMCJfczsKIAogICAgIFN0cmluZyBmaWxlbmFtZSA9IEZpbGVTeXN0ZW06
OmVuY29kZUZvckZpbGVOYW1lKGRhdGFiYXNlTmFtZSk7CiAgICAgZmlsZW5hbWUucmVwbGFjZVdp
dGhMaXRlcmFsKCcuJywgIiUyRSIpOwpAQCAtOTk2LDcgKzk5Niw3IEBAIElEQkVycm9yIFNRTGl0
ZUlEQkJhY2tpbmdTdG9yZTo6Z2V0T3JFc3RhYmxpc2hEYXRhYmFzZUluZm8oSURCRGF0YWJhc2VJ
bmZvJiBpbmZvCiAgICAgbV9zcWxpdGVEQi0+ZGlzYWJsZVRocmVhZGluZ0NoZWNrcygpOwogICAg
IG1fc3FsaXRlREItPmVuYWJsZUF1dG9tYXRpY1dBTFRydW5jYXRpb24oKTsKIAotICAgIG1fc3Fs
aXRlREItPnNldENvbGxhdGlvbkZ1bmN0aW9uKCJJREJLRVkiLCBbXShpbnQgYUxlbmd0aCwgY29u
c3Qgdm9pZCogYSwgaW50IGJMZW5ndGgsIGNvbnN0IHZvaWQqIGIpIHsKKyAgICBtX3NxbGl0ZURC
LT5zZXRDb2xsYXRpb25GdW5jdGlvbigiSURCS0VZIl9zLCBbXShpbnQgYUxlbmd0aCwgY29uc3Qg
dm9pZCogYSwgaW50IGJMZW5ndGgsIGNvbnN0IHZvaWQqIGIpIHsKICAgICAgICAgcmV0dXJuIGlk
YktleUNvbGxhdGUoYUxlbmd0aCwgYSwgYkxlbmd0aCwgYik7CiAgICAgfSk7CiAKQEAgLTE5MDks
NyArMTkwOSw3IEBAIElEQkVycm9yIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6dXBkYXRlQWxsSW5k
ZXhlc0ZvckFkZFJlY29yZChjb25zdCBJREJPYmplY3RTdG9yCiAgICAgICAgIEFTU0VSVChpbmRl
eEl0ZXJhdG9yICE9IGluZGV4TWFwLmVuZCgpKTsKIAogICAgICAgICBpZiAoaW5kZXhJdGVyYXRv
ciA9PSBpbmRleE1hcC5lbmQoKSkgewotICAgICAgICAgICAgZXJyb3IgPSBJREJFcnJvciB7IElu
dmFsaWRTdGF0ZUVycm9yLCAiTWlzc2luZyBpbmRleCBtZXRhZGF0YSIgfTsKKyAgICAgICAgICAg
IGVycm9yID0gSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIk1pc3NpbmcgaW5kZXggbWV0
YWRhdGEiX3MgfTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAKQEAgLTI1NzMsNyAr
MjU3Myw3IEBAIElEQkVycm9yIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6dW5jaGVja2VkR2V0S2V5
R2VuZXJhdG9yVmFsdWUoaW50NjRfdCBvYmplY3RTdG9yCiAKICAgICBpbnQ2NF90IHZhbHVlID0g
c3FsLT5jb2x1bW5JbnQ2NCgwKTsKICAgICBpZiAodmFsdWUgPCAwKQotICAgICAgICByZXR1cm4g
SURCRXJyb3IgeyBDb25zdHJhaW50RXJyb3IsICJDdXJyZW50IGtleSBnZW5lcmF0b3IgdmFsdWUg
ZnJvbSBkYXRhYmFzZSBpcyBpbnZhbGlkIiB9OworICAgICAgICByZXR1cm4gSURCRXJyb3IgeyBD
b25zdHJhaW50RXJyb3IsICJDdXJyZW50IGtleSBnZW5lcmF0b3IgdmFsdWUgZnJvbSBkYXRhYmFz
ZSBpcyBpbnZhbGlkIl9zIH07CiAKICAgICBvdXRWYWx1ZSA9IHZhbHVlOwogICAgIHJldHVybiBJ
REJFcnJvciB7IH07CkBAIC0yNTg3LDcgKzI1ODcsNyBAQCBJREJFcnJvciBTUUxpdGVJREJCYWNr
aW5nU3RvcmU6OnVuY2hlY2tlZFNldEtleUdlbmVyYXRvclZhbHVlKGludDY0X3Qgb2JqZWN0U3Rv
cgogICAgICAgICB8fCBzcWwtPmJpbmRJbnQ2NCgyLCB2YWx1ZSkgIT0gU1FMSVRFX09LCiAgICAg
ICAgIHx8IHNxbC0+c3RlcCgpICE9IFNRTElURV9ET05FKSB7CiAgICAgICAgIExPR19FUlJPUigi
Q291bGQgbm90IHVwZGF0ZSBrZXkgZ2VuZXJhdG9yIHZhbHVlICglaSkgLSAlcyIsIG1fc3FsaXRl
REItPmxhc3RFcnJvcigpLCBtX3NxbGl0ZURCLT5sYXN0RXJyb3JNc2coKSk7Ci0gICAgICAgIHJl
dHVybiBJREJFcnJvciB7IENvbnN0cmFpbnRFcnJvciwgIkVycm9yIHN0b3JpbmcgbmV3IGtleSBn
ZW5lcmF0b3IgdmFsdWUgaW4gZGF0YWJhc2UiIH07CisgICAgICAgIHJldHVybiBJREJFcnJvciB7
IENvbnN0cmFpbnRFcnJvciwgIkVycm9yIHN0b3JpbmcgbmV3IGtleSBnZW5lcmF0b3IgdmFsdWUg
aW4gZGF0YWJhc2UiX3MgfTsKICAgICB9CiAKICAgICByZXR1cm4gSURCRXJyb3IgeyB9OwpAQCAt
MjYxNSw3ICsyNjE1LDcgQEAgSURCRXJyb3IgU1FMaXRlSURCQmFja2luZ1N0b3JlOjpnZW5lcmF0
ZUtleU51bWJlcihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHQKICAgICAgICAgcmV0dXJu
IGVycm9yOwogCiAgICAgaWYgKGN1cnJlbnRWYWx1ZSArIDEgPiBtYXhHZW5lcmF0b3JWYWx1ZSkK
LSAgICAgICAgcmV0dXJuIElEQkVycm9yIHsgQ29uc3RyYWludEVycm9yLCAiQ2Fubm90IGdlbmVy
YXRlIG5ldyBrZXkgdmFsdWUgb3ZlciAyXjUzIGZvciBvYmplY3Qgc3RvcmUgb3BlcmF0aW9uIiB9
OworICAgICAgICByZXR1cm4gSURCRXJyb3IgeyBDb25zdHJhaW50RXJyb3IsICJDYW5ub3QgZ2Vu
ZXJhdGUgbmV3IGtleSB2YWx1ZSBvdmVyIDJeNTMgZm9yIG9iamVjdCBzdG9yZSBvcGVyYXRpb24i
X3MgfTsKIAogICAgIGdlbmVyYXRlZEtleSA9IGN1cnJlbnRWYWx1ZSArIDE7CiAgICAgcmV0dXJu
IHVuY2hlY2tlZFNldEtleUdlbmVyYXRvclZhbHVlKG9iamVjdFN0b3JlSUQsIGdlbmVyYXRlZEtl
eSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIv
VW5pcXVlSURCRGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcAppbmRleCAyM2U2ZDNmNWM4YmM2Mzc2YzMwYzY1
YzRmNjcyZWU2NGMzZmFmNmYxLi43NGFkZWVlM2UzMWFhYWQyZDNkOTVjMjg1NWQ1MDhiOGE1NzZk
MGIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIv
VW5pcXVlSURCRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5jcHAKQEAgLTU4OSw3ICs1ODksNyBAQCB2b2lk
IFVuaXF1ZUlEQkRhdGFiYXNlOjpjcmVhdGVPYmplY3RTdG9yZShVbmlxdWVJREJEYXRhYmFzZVRy
YW5zYWN0aW9uJiB0cmFuc2FjdAogICAgICAgICBhdXRvIHRhc2tTaXplID0gZGVmYXVsdFdyaXRl
T3BlcmF0aW9uQ29zdCArIGVzdGltYXRlU2l6ZShpbmZvKTsKICAgICAgICAgbV9tYW5hZ2VyLT5y
ZXF1ZXN0U3BhY2UobV9pZGVudGlmaWVyLm9yaWdpbigpLCB0YXNrU2l6ZSwgW3RoaXMsIHdlYWtU
aGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHdlYWtUcmFuc2FjdGlvbiA9IFdlYWtQdHIgeyB0cmFu
c2FjdGlvbiB9LCBpbmZvLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXShib29sIGdyYW50
ZWQpIG11dGFibGUgewogICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcyB8fCAhd2Vha1RyYW5zYWN0
aW9uKQotICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRT
dGF0ZUVycm9yLCAiRGF0YWJhc2Ugb3IgdHJhbnNhY3Rpb24gaXMgY2xvc2VkIiB9KTsKKyAgICAg
ICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwg
IkRhdGFiYXNlIG9yIHRyYW5zYWN0aW9uIGlzIGNsb3NlZCJfcyB9KTsKICAgICAgICAgICAgIGNy
ZWF0ZU9iamVjdFN0b3JlKCp3ZWFrVHJhbnNhY3Rpb24sIGluZm8sIFdURk1vdmUoY2FsbGJhY2sp
LCBncmFudGVkID8gU3BhY2VDaGVja1Jlc3VsdDo6UGFzcyA6IFNwYWNlQ2hlY2tSZXN1bHQ6OkZh
aWwpOwogICAgICAgICB9KTsKICAgICAgICAgcmV0dXJuOwpAQCAtNjAxLDcgKzYwMSw3IEBAIHZv
aWQgVW5pcXVlSURCRGF0YWJhc2U6OmNyZWF0ZU9iamVjdFN0b3JlKFVuaXF1ZUlEQkRhdGFiYXNl
VHJhbnNhY3Rpb24mIHRyYW5zYWN0CiAgICAgfQogCiAgICAgaWYgKCFtX2JhY2tpbmdTdG9yZSkK
LSAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJC
YWNraW5nIHN0b3JlIGhhcyBjbG9zZWQiIH0pOworICAgICAgICByZXR1cm4gY2FsbGJhY2soSURC
RXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgaGFzIGNsb3NlZCJfcyB9
KTsKIAogICAgIGF1dG8gZXJyb3IgPSBtX2JhY2tpbmdTdG9yZS0+Y3JlYXRlT2JqZWN0U3RvcmUo
dHJhbnNhY3Rpb24uaW5mbygpLmlkZW50aWZpZXIoKSwgaW5mbyk7CiAgICAgaWYgKGVycm9yLmlz
TnVsbCgpKQpAQCAtNjIxLDcgKzYyMSw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmRlbGV0
ZU9iamVjdFN0b3JlKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mIHRyYW5zYWN0CiAKICAg
ICAgICAgbV9tYW5hZ2VyLT5yZXF1ZXN0U3BhY2UobV9pZGVudGlmaWVyLm9yaWdpbigpLCAwLCBb
dGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgd2Vha1RyYW5zYWN0aW9uID0gV2Vh
a1B0ciB7IHRyYW5zYWN0aW9uIH0sIG9iamVjdFN0b3JlTmFtZSwgY2FsbGJhY2sgPSBXVEZNb3Zl
KGNhbGxiYWNrKV0oYm9vbCBncmFudGVkKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlmICghd2Vh
a1RoaXMgfHwgIXdlYWtUcmFuc2FjdGlvbikKLSAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJh
Y2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkRhdGFiYXNlIG9yIHRyYW5zYWN0aW9u
IGlzIGNsb3NlZCIgfSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9y
IHsgSW52YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBvciB0cmFuc2FjdGlvbiBpcyBjbG9zZWQi
X3MgfSk7CiAKICAgICAgICAgICAgIGRlbGV0ZU9iamVjdFN0b3JlKCp3ZWFrVHJhbnNhY3Rpb24s
IG9iamVjdFN0b3JlTmFtZSwgV1RGTW92ZShjYWxsYmFjayksIGdyYW50ZWQgPyBTcGFjZUNoZWNr
UmVzdWx0OjpQYXNzIDogU3BhY2VDaGVja1Jlc3VsdDo6RmFpbCk7CiAgICAgICAgIH0pOwpAQCAt
NjM2LDcgKzYzNiw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmRlbGV0ZU9iamVjdFN0b3Jl
KFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mIHRyYW5zYWN0CiAgICAgfQogCiAgICAgaWYg
KCFtX2JhY2tpbmdTdG9yZSkKLSAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52
YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3JlIGlzIGNsb3NlZCIgfSk7CisgICAgICAgIHJl
dHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiQmFja2luZyBzdG9y
ZSBpcyBjbG9zZWQiX3MgfSk7CiAKICAgICBhdXRvIGVycm9yID0gbV9iYWNraW5nU3RvcmUtPmRl
bGV0ZU9iamVjdFN0b3JlKHRyYW5zYWN0aW9uLmluZm8oKS5pZGVudGlmaWVyKCksIGluZm8tPmlk
ZW50aWZpZXIoKSk7CiAgICAgaWYgKGVycm9yLmlzTnVsbCgpKQpAQCAtNjU3LDcgKzY1Nyw3IEBA
IHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OnJlbmFtZU9iamVjdFN0b3JlKFVuaXF1ZUlEQkRhdGFi
YXNlVHJhbnNhY3Rpb24mIHRyYW5zYWN0CiAgICAgICAgIGF1dG8gdGFza1NpemUgPSBkZWZhdWx0
V3JpdGVPcGVyYXRpb25Db3N0ICsgbmV3TmFtZS5zaXplSW5CeXRlcygpOwogICAgICAgICBtX21h
bmFnZXItPnJlcXVlc3RTcGFjZShtX2lkZW50aWZpZXIub3JpZ2luKCksIHRhc2tTaXplLCBbdGhp
cywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgd2Vha1RyYW5zYWN0aW9uID0gV2Vha1B0
ciB7IHRyYW5zYWN0aW9uIH0sIG9iamVjdFN0b3JlSWRlbnRpZmllciwgbmV3TmFtZSwgY2FsbGJh
Y2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oYm9vbCBncmFudGVkKSBtdXRhYmxlIHsKICAgICAgICAg
ICAgIGlmICghd2Vha1RoaXMgfHwgIXdlYWtUcmFuc2FjdGlvbikKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkRhdGFiYXNlIG9y
IHRyYW5zYWN0aW9uIGlzIGNsb3NlZCIgfSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxi
YWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBvciB0cmFuc2FjdGlv
biBpcyBjbG9zZWQiX3MgfSk7CiAKICAgICAgICAgICAgIHJlbmFtZU9iamVjdFN0b3JlKCp3ZWFr
VHJhbnNhY3Rpb24sIG9iamVjdFN0b3JlSWRlbnRpZmllciwgbmV3TmFtZSwgV1RGTW92ZShjYWxs
YmFjayksIGdyYW50ZWQgPyBTcGFjZUNoZWNrUmVzdWx0OjpQYXNzIDogU3BhY2VDaGVja1Jlc3Vs
dDo6RmFpbCk7CiAgICAgICAgIH0pOwpAQCAtNjc2LDcgKzY3Niw3IEBAIHZvaWQgVW5pcXVlSURC
RGF0YWJhc2U6OnJlbmFtZU9iamVjdFN0b3JlKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24m
IHRyYW5zYWN0CiAgICAgfQogCiAgICAgaWYgKCFtX2JhY2tpbmdTdG9yZSkKLSAgICAgICAgcmV0
dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3Jl
IGlzIGNsb3NlZCIgfSk7CisgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFs
aWRTdGF0ZUVycm9yLCAiQmFja2luZyBzdG9yZSBpcyBjbG9zZWQiX3MgfSk7CiAKICAgICBhdXRv
IGVycm9yID0gbV9iYWNraW5nU3RvcmUtPnJlbmFtZU9iamVjdFN0b3JlKHRyYW5zYWN0aW9uLmlu
Zm8oKS5pZGVudGlmaWVyKCksIG9iamVjdFN0b3JlSWRlbnRpZmllciwgbmV3TmFtZSk7CiAgICAg
aWYgKGVycm9yLmlzTnVsbCgpKQpAQCAtNjk2LDcgKzY5Niw3IEBAIHZvaWQgVW5pcXVlSURCRGF0
YWJhc2U6OmNsZWFyT2JqZWN0U3RvcmUoVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbiYgdHJh
bnNhY3RpCiAKICAgICAgICAgbV9tYW5hZ2VyLT5yZXF1ZXN0U3BhY2UobV9pZGVudGlmaWVyLm9y
aWdpbigpLCAwLCBbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgd2Vha1RyYW5z
YWN0aW9uID0gV2Vha1B0ciB7IHRyYW5zYWN0aW9uIH0sIG9iamVjdFN0b3JlSWRlbnRpZmllciwg
Y2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oYm9vbCBncmFudGVkKSBtdXRhYmxlIHsKICAg
ICAgICAgICAgIGlmICghd2Vha1RoaXMgfHwgIXdlYWtUcmFuc2FjdGlvbikKLSAgICAgICAgICAg
ICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkRhdGFi
YXNlIG9yIHRyYW5zYWN0aW9uIGlzIGNsb3NlZCIgfSk7CisgICAgICAgICAgICAgICAgcmV0dXJu
IGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBvciB0cmFu
c2FjdGlvbiBpcyBjbG9zZWQiX3MgfSk7CiAKICAgICAgICAgICAgIGNsZWFyT2JqZWN0U3RvcmUo
KndlYWtUcmFuc2FjdGlvbiwgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBXVEZNb3ZlKGNhbGxiYWNr
KSwgZ3JhbnRlZCA/IFNwYWNlQ2hlY2tSZXN1bHQ6OlBhc3MgOiBTcGFjZUNoZWNrUmVzdWx0OjpG
YWlsKTsKICAgICAgICAgfSk7CkBAIC03MDUsNyArNzA1LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRh
YmFzZTo6Y2xlYXJPYmplY3RTdG9yZShVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uJiB0cmFu
c2FjdGkKIAogICAgIEFTU0VSVChzcGFjZUNoZWNrUmVzdWx0ID09IFNwYWNlQ2hlY2tSZXN1bHQ6
OlBhc3MpOwogICAgIGlmICghbV9iYWNraW5nU3RvcmUpCi0gICAgICAgIHJldHVybiBjYWxsYmFj
ayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiQmFja2luZyBzdG9yZSBpcyBjbG9zZWQi
IH0pOworICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJv
ciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xvc2VkIl9zIH0pOwogCiAgICAgYXV0byBlcnJvciA9IG1f
YmFja2luZ1N0b3JlLT5jbGVhck9iamVjdFN0b3JlKHRyYW5zYWN0aW9uLmluZm8oKS5pZGVudGlm
aWVyKCksIG9iamVjdFN0b3JlSWRlbnRpZmllcik7CiAgICAgY2FsbGJhY2soZXJyb3IpOwpAQCAt
NzIzLDcgKzcyMyw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmNyZWF0ZUluZGV4KFVuaXF1
ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uLCBjCiAgICAgICAgIGF1dG8gdGFz
a1NpemUgPSBkZWZhdWx0V3JpdGVPcGVyYXRpb25Db3N0ICsgZXN0aW1hdGVTaXplKGluZm8pOwog
ICAgICAgICBtX21hbmFnZXItPnJlcXVlc3RTcGFjZShtX2lkZW50aWZpZXIub3JpZ2luKCksIHRh
c2tTaXplLCBbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgd2Vha1RyYW5zYWN0
aW9uID0gV2Vha1B0ciB7IHRyYW5zYWN0aW9uIH0sIGluZm8sIGNhbGxiYWNrID0gV1RGTW92ZShj
YWxsYmFjayldKGJvb2wgZ3JhbnRlZCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAoIXdlYWtU
aGlzIHx8ICF3ZWFrVHJhbnNhY3Rpb24pCi0gICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNr
KElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBvciB0cmFuc2FjdGlvbiBp
cyBjbG9zZWQiIH0pOworICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7
IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJhc2Ugb3IgdHJhbnNhY3Rpb24gaXMgY2xvc2VkIl9z
IH0pOwogCiAgICAgICAgICAgICBjcmVhdGVJbmRleCgqd2Vha1RyYW5zYWN0aW9uLCBpbmZvLCBX
VEZNb3ZlKGNhbGxiYWNrKSwgZ3JhbnRlZCA/IFNwYWNlQ2hlY2tSZXN1bHQ6OlBhc3MgOiBTcGFj
ZUNoZWNrUmVzdWx0OjpGYWlsKTsKICAgICAgICAgfSk7CkBAIC03MzYsNyArNzM2LDcgQEAgdm9p
ZCBVbmlxdWVJREJEYXRhYmFzZTo6Y3JlYXRlSW5kZXgoVW5pcXVlSURCRGF0YWJhc2VUcmFuc2Fj
dGlvbiYgdHJhbnNhY3Rpb24sIGMKICAgICB9CiAKICAgICBpZiAoIW1fYmFja2luZ1N0b3JlKQot
ICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJh
Y2tpbmcgc3RvcmUgaXMgY2xvc2VkIiB9KTsKKyAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVy
cm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3JlIGlzIGNsb3NlZCJfcyB9KTsK
IAogICAgIGF1dG8gZXJyb3IgPSBtX2JhY2tpbmdTdG9yZS0+Y3JlYXRlSW5kZXgodHJhbnNhY3Rp
b24uaW5mbygpLmlkZW50aWZpZXIoKSwgaW5mbyk7CiAgICAgaWYgKGVycm9yLmlzTnVsbCgpKSB7
CkBAIC03NjEsNyArNzYxLDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6ZGVsZXRlSW5kZXgo
VW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24sIHUKIAogICAgICAgICBt
X21hbmFnZXItPnJlcXVlc3RTcGFjZShtX2lkZW50aWZpZXIub3JpZ2luKCksIDAsIFt0aGlzLCB3
ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCB3ZWFrVHJhbnNhY3Rpb24gPSBXZWFrUHRyIHsg
dHJhbnNhY3Rpb24gfSwgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBpbmRleE5hbWUsIGNhbGxiYWNr
ID0gV1RGTW92ZShjYWxsYmFjayldKGJvb2wgZ3JhbnRlZCkgbXV0YWJsZSB7CiAgICAgICAgICAg
ICBpZiAoIXdlYWtUaGlzIHx8ICF3ZWFrVHJhbnNhY3Rpb24pCi0gICAgICAgICAgICAgICAgcmV0
dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBvciB0
cmFuc2FjdGlvbiBpcyBjbG9zZWQiIH0pOworICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFj
ayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJhc2Ugb3IgdHJhbnNhY3Rpb24g
aXMgY2xvc2VkIl9zIH0pOwogCiAgICAgICAgICAgICBkZWxldGVJbmRleCgqd2Vha1RyYW5zYWN0
aW9uLCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGluZGV4TmFtZSwgV1RGTW92ZShjYWxsYmFjayks
IGdyYW50ZWQgPyBTcGFjZUNoZWNrUmVzdWx0OjpQYXNzIDogU3BhY2VDaGVja1Jlc3VsdDo6RmFp
bCk7CiAgICAgICAgIH0pOwpAQCAtNzcwLDcgKzc3MCw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJh
c2U6OmRlbGV0ZUluZGV4KFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9u
LCB1CiAKICAgICBBU1NFUlQoc3BhY2VDaGVja1Jlc3VsdCA9PSBTcGFjZUNoZWNrUmVzdWx0OjpQ
YXNzKTsKICAgICBpZiAoIW1fYmFja2luZ1N0b3JlKQotICAgICAgICByZXR1cm4gY2FsbGJhY2so
SURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xvc2VkIiB9
KTsKKyAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3Is
ICJCYWNraW5nIHN0b3JlIGlzIGNsb3NlZCJfcyB9KTsKIAogICAgIGF1dG8qIG9iamVjdFN0b3Jl
SW5mbyA9IG1fZGF0YWJhc2VJbmZvLT5pbmZvRm9yRXhpc3RpbmdPYmplY3RTdG9yZShvYmplY3RT
dG9yZUlkZW50aWZpZXIpOwogICAgIGlmICghb2JqZWN0U3RvcmVJbmZvKSB7CkBAIC04MDQsNyAr
ODA0LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6cmVuYW1lSW5kZXgoVW5pcXVlSURCRGF0
YWJhc2VUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24sIHUKICAgICAgICAgYXV0byB0YXNrU2l6ZSA9
IGRlZmF1bHRXcml0ZU9wZXJhdGlvbkNvc3QgKyBuZXdOYW1lLnNpemVJbkJ5dGVzKCk7CiAgICAg
ICAgIG1fbWFuYWdlci0+cmVxdWVzdFNwYWNlKG1faWRlbnRpZmllci5vcmlnaW4oKSwgdGFza1Np
emUsIFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCB3ZWFrVHJhbnNhY3Rpb24g
PSBXZWFrUHRyIHsgdHJhbnNhY3Rpb24gfSwgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBpbmRleElk
ZW50aWZpZXIsIG5ld05hbWUsIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKGJvb2wgZ3Jh
bnRlZCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAoIXdlYWtUaGlzIHx8ICF3ZWFrVHJhbnNh
Y3Rpb24pCi0gICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxp
ZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBvciB0cmFuc2FjdGlvbiBpcyBjbG9zZWQiIH0pOworICAg
ICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9y
LCAiRGF0YWJhc2Ugb3IgdHJhbnNhY3Rpb24gaXMgY2xvc2VkIl9zIH0pOwogCiAgICAgICAgICAg
ICByZW5hbWVJbmRleCgqd2Vha1RyYW5zYWN0aW9uLCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGlu
ZGV4SWRlbnRpZmllciwgbmV3TmFtZSwgV1RGTW92ZShjYWxsYmFjayksIGdyYW50ZWQgPyBTcGFj
ZUNoZWNrUmVzdWx0OjpQYXNzIDogU3BhY2VDaGVja1Jlc3VsdDo6RmFpbCk7CiAgICAgICAgIH0p
OwpAQCAtODE3LDcgKzgxNyw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OnJlbmFtZUluZGV4
KFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uLCB1CiAgICAgfQogCiAg
ICAgaWYgKCFtX2JhY2tpbmdTdG9yZSkKLSAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9y
IHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3JlIGlzIGNsb3NlZCIgfSk7CisgICAg
ICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiQmFja2lu
ZyBzdG9yZSBpcyBjbG9zZWQiX3MgfSk7CiAKICAgICBhdXRvKiBvYmplY3RTdG9yZUluZm8gPSBt
X2RhdGFiYXNlSW5mby0+aW5mb0ZvckV4aXN0aW5nT2JqZWN0U3RvcmUob2JqZWN0U3RvcmVJZGVu
dGlmaWVyKTsKICAgICBpZiAoIW9iamVjdFN0b3JlSW5mbykgewpAQCAtODQ2LDcgKzg0Niw3IEBA
IHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OnB1dE9yQWRkKGNvbnN0IElEQlJlcXVlc3REYXRhJiBy
ZXF1ZXN0RGF0YSwgY29uc3QgSURCS2V5CiAgICAgQVNTRVJUKG1fZGF0YWJhc2VJbmZvKTsKIAog
ICAgIGlmICghbV9iYWNraW5nU3RvcmUpCi0gICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJv
ciB7IEludmFsaWRTdGF0ZUVycm9yLCAiQmFja2luZyBzdG9yZSBpcyBjbG9zZWQiIH0sIGtleURh
dGEpOworICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJv
ciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xvc2VkIl9zIH0sIGtleURhdGEpOwogCiAgICAgYXV0byBv
YmplY3RTdG9yZUlkZW50aWZpZXIgPSByZXF1ZXN0RGF0YS5vYmplY3RTdG9yZUlkZW50aWZpZXIo
KTsKICAgICBhdXRvKiBvYmplY3RTdG9yZUluZm8gPSBtX2JhY2tpbmdTdG9yZS0+aW5mb0Zvck9i
amVjdFN0b3JlKG9iamVjdFN0b3JlSWRlbnRpZmllcik7CkBAIC05MDEsNyArOTAxLDcgQEAgdm9p
ZCBVbmlxdWVJREJEYXRhYmFzZTo6cHV0T3JBZGQoY29uc3QgSURCUmVxdWVzdERhdGEmIHJlcXVl
c3REYXRhLCBjb25zdCBJREJLZXkKICAgICBMT0coSW5kZXhlZERCLCAiVW5pcXVlSURCRGF0YWJh
c2U6OnB1dE9yQWRkIHF1b3RhIGNoZWNrIHdpdGggdGFzayBzaXplOiAlIiBQUkl1NjQgIiBrZXkg
c2l6ZTogJSIgUFJJdTY0ICIgdmFsdWUgc2l6ZTogJSIgUFJJdTY0ICIgaW5kZXggc2l6ZTogJSIg
UFJJdTY0LCB0YXNrU2l6ZSwga2V5U2l6ZSwgdmFsdWVTaXplLCBpbmRleFNpemUpOwogICAgIG1f
bWFuYWdlci0+cmVxdWVzdFNwYWNlKG1faWRlbnRpZmllci5vcmlnaW4oKSwgdGFza1NpemUsIFt0
aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCByZXF1ZXN0RGF0YSwgdXNlZEtleSwg
dmFsdWUsIG92ZXJ3cml0ZU1vZGUsIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayksIHVzZWRL
ZXlJc0dlbmVyYXRlZCwgaW5kZXhLZXlzLCBvYmplY3RTdG9yZUluZm8gPSAqb2JqZWN0U3RvcmVJ
bmZvXShib29sIGdyYW50ZWQpIG11dGFibGUgewogICAgICAgICBpZiAoIXdlYWtUaGlzKQotICAg
ICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJE
YXRhYmFzZSBpcyBjbG9zZWQiIH0sIHVzZWRLZXkpOworICAgICAgICAgICAgcmV0dXJuIGNhbGxi
YWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBpcyBjbG9zZWQiX3Mg
fSwgdXNlZEtleSk7CiAKICAgICAgICAgcHV0T3JBZGRBZnRlclNwYWNlQ2hlY2socmVxdWVzdERh
dGEsIHVzZWRLZXksIHZhbHVlLCBvdmVyd3JpdGVNb2RlLCBXVEZNb3ZlKGNhbGxiYWNrKSwgdXNl
ZEtleUlzR2VuZXJhdGVkLCBpbmRleEtleXMsIG9iamVjdFN0b3JlSW5mbywgZ3JhbnRlZCA/IFNw
YWNlQ2hlY2tSZXN1bHQ6OlBhc3MgOiBTcGFjZUNoZWNrUmVzdWx0OjpGYWlsKTsKICAgICB9KTsK
QEAgLTkxMyw3ICs5MTMsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpwdXRPckFkZEFmdGVy
U3BhY2VDaGVjayhjb25zdCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdERhdAogICAgIEFTU0VSVCht
X2RhdGFiYXNlSW5mbyk7CiAKICAgICBpZiAoIW1fYmFja2luZ1N0b3JlKQotICAgICAgICByZXR1
cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUg
aXMgY2xvc2VkIiB9LCBrZXlEYXRhKTsKKyAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9y
IHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3JlIGlzIGNsb3NlZCJfcyB9LCBrZXlE
YXRhKTsKIAogICAgIHVpbnQ2NF90IGtleU51bWJlciA9IGlzS2V5R2VuZXJhdGVkID8ga2V5RGF0
YS5udW1iZXIoKSA6IDA7CiAgICAgYXV0byBvYmplY3RTdG9yZUlkZW50aWZpZXIgPSBvYmplY3RT
dG9yZUluZm8uaWRlbnRpZmllcigpOwpAQCAtOTUzLDcgKzk1Myw3IEBAIHZvaWQgVW5pcXVlSURC
RGF0YWJhc2U6OmdldFJlY29yZChjb25zdCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdERhdGEsIGNv
bnN0IElEQkdlCiAKICAgICAgICAgbV9tYW5hZ2VyLT5yZXF1ZXN0U3BhY2UobV9pZGVudGlmaWVy
Lm9yaWdpbigpLCAwLCBbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgcmVxdWVz
dERhdGEsIGdldFJlY29yZERhdGEsIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKGJvb2wg
Z3JhbnRlZCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAoIXdlYWtUaGlzKQotICAgICAgICAg
ICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0
YWJhc2UgaXMgY2xvc2VkIiB9LCBJREJHZXRSZXN1bHQgeyB9KTsKKyAgICAgICAgICAgICAgICBy
ZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkRhdGFiYXNlIGlz
IGNsb3NlZCJfcyB9LCBJREJHZXRSZXN1bHQgeyB9KTsKIAogICAgICAgICAgICAgZ2V0UmVjb3Jk
KHJlcXVlc3REYXRhLCBnZXRSZWNvcmREYXRhLCBXVEZNb3ZlKGNhbGxiYWNrKSwgZ3JhbnRlZCA/
IFNwYWNlQ2hlY2tSZXN1bHQ6OlBhc3MgOiBTcGFjZUNoZWNrUmVzdWx0OjpGYWlsKTsKICAgICAg
ICAgfSk7CkBAIC05NjIsNyArOTYyLDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6Z2V0UmVj
b3JkKGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0YSwgY29uc3QgSURCR2UKIAogICAg
IEFTU0VSVChzcGFjZUNoZWNrUmVzdWx0ID09IFNwYWNlQ2hlY2tSZXN1bHQ6OlBhc3MpOwogICAg
IGlmICghbV9iYWNraW5nU3RvcmUpCi0gICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7
IEludmFsaWRTdGF0ZUVycm9yLCAiQmFja2luZyBzdG9yZSBpcyBjbG9zZWQiIH0sIElEQkdldFJl
c3VsdCB7IH0pOworICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3Rh
dGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xvc2VkIl9zIH0sIElEQkdldFJlc3VsdCB7IH0p
OwogCiAgICAgSURCR2V0UmVzdWx0IHJlc3VsdDsKICAgICBJREJFcnJvciBlcnJvcjsKQEAgLTk4
Niw3ICs5ODYsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpnZXRBbGxSZWNvcmRzKGNvbnN0
IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0YSwgY29uc3QgSQogCiAgICAgICAgIG1fbWFuYWdl
ci0+cmVxdWVzdFNwYWNlKG1faWRlbnRpZmllci5vcmlnaW4oKSwgMCwgW3RoaXMsIHdlYWtUaGlz
ID0gV2Vha1B0ciB7ICp0aGlzIH0sIHJlcXVlc3REYXRhLCBnZXRBbGxSZWNvcmRzRGF0YSwgY2Fs
bGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oYm9vbCBncmFudGVkKSBtdXRhYmxlIHsKICAgICAg
ICAgICAgIGlmICghd2Vha1RoaXMpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElE
QkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBpcyBjbG9zZWQiIH0sIElEQkdl
dEFsbFJlc3VsdCB7IH0pOworICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJv
ciB7IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJhc2UgaXMgY2xvc2VkIl9zIH0sIElEQkdldEFs
bFJlc3VsdCB7IH0pOwogCiAgICAgICAgICAgICBnZXRBbGxSZWNvcmRzKHJlcXVlc3REYXRhLCBn
ZXRBbGxSZWNvcmRzRGF0YSwgV1RGTW92ZShjYWxsYmFjayksIGdyYW50ZWQgPyBTcGFjZUNoZWNr
UmVzdWx0OjpQYXNzIDogU3BhY2VDaGVja1Jlc3VsdDo6RmFpbCk7CiAgICAgICAgIH0pOwpAQCAt
OTk1LDcgKzk5NSw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmdldEFsbFJlY29yZHMoY29u
c3QgSURCUmVxdWVzdERhdGEmIHJlcXVlc3REYXRhLCBjb25zdCBJCiAKICAgICBBU1NFUlQoc3Bh
Y2VDaGVja1Jlc3VsdCA9PSBTcGFjZUNoZWNrUmVzdWx0OjpQYXNzKTsKICAgICBpZiAoIW1fYmFj
a2luZ1N0b3JlKQotICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3Rh
dGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xvc2VkIiB9LCBJREJHZXRBbGxSZXN1bHQgeyB9
KTsKKyAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3Is
ICJCYWNraW5nIHN0b3JlIGlzIGNsb3NlZCJfcyB9LCBJREJHZXRBbGxSZXN1bHQgeyB9KTsKIAog
ICAgIElEQkdldEFsbFJlc3VsdCByZXN1bHQ7CiAgICAgYXV0byBlcnJvciA9IG1fYmFja2luZ1N0
b3JlLT5nZXRBbGxSZWNvcmRzKHJlcXVlc3REYXRhLnRyYW5zYWN0aW9uSWRlbnRpZmllcigpLCBn
ZXRBbGxSZWNvcmRzRGF0YSwgcmVzdWx0KTsKQEAgLTEwMTQsNyArMTAxNCw3IEBAIHZvaWQgVW5p
cXVlSURCRGF0YWJhc2U6OmdldENvdW50KGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0
YSwgY29uc3QgSURCS2V5CiAKICAgICAgICAgbV9tYW5hZ2VyLT5yZXF1ZXN0U3BhY2UobV9pZGVu
dGlmaWVyLm9yaWdpbigpLCAwLCBbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwg
cmVxdWVzdERhdGEsIHJhbmdlLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXShib29sIGdy
YW50ZWQpIG11dGFibGUgewogICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcykKLSAgICAgICAgICAg
ICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkRhdGFi
YXNlIGlzIGNsb3NlZCIgfSwgMCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElE
QkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBpcyBjbG9zZWQiX3MgfSwgMCk7
CiAKICAgICAgICAgICAgIGdldENvdW50KHJlcXVlc3REYXRhLCByYW5nZSwgV1RGTW92ZShjYWxs
YmFjayksIGdyYW50ZWQgPyBTcGFjZUNoZWNrUmVzdWx0OjpQYXNzIDogU3BhY2VDaGVja1Jlc3Vs
dDo6RmFpbCk7CiAgICAgICAgIH0pOwpAQCAtMTAyMyw3ICsxMDIzLDcgQEAgdm9pZCBVbmlxdWVJ
REJEYXRhYmFzZTo6Z2V0Q291bnQoY29uc3QgSURCUmVxdWVzdERhdGEmIHJlcXVlc3REYXRhLCBj
b25zdCBJREJLZXkKIAogICAgIEFTU0VSVChzcGFjZUNoZWNrUmVzdWx0ID09IFNwYWNlQ2hlY2tS
ZXN1bHQ6OlBhc3MpOwogICAgIGlmICghbV9iYWNraW5nU3RvcmUpCi0gICAgICAgIHJldHVybiBj
YWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiQmFja2luZyBzdG9yZSBpcyBj
bG9zZWQiIH0sIDApOworICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlk
U3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xvc2VkIl9zIH0sIDApOwogCiAgICAgdWlu
dDY0X3QgY291bnQgPSAwOwogICAgIGF1dG8gZXJyb3IgPSBtX2JhY2tpbmdTdG9yZS0+Z2V0Q291
bnQocmVxdWVzdERhdGEudHJhbnNhY3Rpb25JZGVudGlmaWVyKCksIHJlcXVlc3REYXRhLm9iamVj
dFN0b3JlSWRlbnRpZmllcigpLCByZXF1ZXN0RGF0YS5pbmRleElkZW50aWZpZXIoKSwgcmFuZ2Us
IGNvdW50KTsKQEAgLTEwNDIsNyArMTA0Miw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmRl
bGV0ZVJlY29yZChjb25zdCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdERhdGEsIGNvbnN0IElECiAK
ICAgICAgICAgbV9tYW5hZ2VyLT5yZXF1ZXN0U3BhY2UobV9pZGVudGlmaWVyLm9yaWdpbigpLCAw
LCBbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgcmVxdWVzdERhdGEsIGtleVJh
bmdlRGF0YSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oYm9vbCBncmFudGVkKSBtdXRh
YmxlIHsKICAgICAgICAgICAgIGlmICghd2Vha1RoaXMpCi0gICAgICAgICAgICAgICAgcmV0dXJu
IGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBpcyBjbG9z
ZWQiIH0pOworICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFs
aWRTdGF0ZUVycm9yLCAiRGF0YWJhc2UgaXMgY2xvc2VkIl9zIH0pOwogCiAgICAgICAgICAgICBk
ZWxldGVSZWNvcmQocmVxdWVzdERhdGEsIGtleVJhbmdlRGF0YSwgV1RGTW92ZShjYWxsYmFjayks
IGdyYW50ZWQgPyBTcGFjZUNoZWNrUmVzdWx0OjpQYXNzIDogU3BhY2VDaGVja1Jlc3VsdDo6RmFp
bCk7CiAgICAgICAgIH0pOwpAQCAtMTA1MSw3ICsxMDUxLDcgQEAgdm9pZCBVbmlxdWVJREJEYXRh
YmFzZTo6ZGVsZXRlUmVjb3JkKGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0YSwgY29u
c3QgSUQKIAogICAgIEFTU0VSVChzcGFjZUNoZWNrUmVzdWx0ID09IFNwYWNlQ2hlY2tSZXN1bHQ6
OlBhc3MpOwogICAgIGlmICghbV9iYWNraW5nU3RvcmUpCi0gICAgICAgIHJldHVybiBjYWxsYmFj
ayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiQmFja2luZyBzdG9yZSBpcyBjbG9zZWQi
IH0pOworICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJv
ciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xvc2VkIl9zIH0pOwogCiAgICAgYXV0byBlcnJvciA9IG1f
YmFja2luZ1N0b3JlLT5kZWxldGVSYW5nZShyZXF1ZXN0RGF0YS50cmFuc2FjdGlvbklkZW50aWZp
ZXIoKSwgcmVxdWVzdERhdGEub2JqZWN0U3RvcmVJZGVudGlmaWVyKCksIGtleVJhbmdlRGF0YSk7
CiAKQEAgLTEwNjksNyArMTA2OSw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6Om9wZW5DdXJz
b3IoY29uc3QgSURCUmVxdWVzdERhdGEmIHJlcXVlc3REYXRhLCBjb25zdCBJREJDCiAKICAgICAg
ICAgbV9tYW5hZ2VyLT5yZXF1ZXN0U3BhY2UobV9pZGVudGlmaWVyLm9yaWdpbigpLCAwLCBbdGhp
cywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgcmVxdWVzdERhdGEsIGluZm8sIGNhbGxi
YWNrID0gV1RGTW92ZShjYWxsYmFjayldKGJvb2wgZ3JhbnRlZCkgbXV0YWJsZSB7CiAgICAgICAg
ICAgICBpZiAoIXdlYWtUaGlzKQotICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJF
cnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJhc2Ugb3IgdHJhbnNhY3Rpb24gaXMgY2xv
c2VkIiB9LCBJREJHZXRSZXN1bHQgeyB9KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJh
Y2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkRhdGFiYXNlIG9yIHRyYW5zYWN0aW9u
IGlzIGNsb3NlZCJfcyB9LCBJREJHZXRSZXN1bHQgeyB9KTsKIAogICAgICAgICAgICAgb3BlbkN1
cnNvcihyZXF1ZXN0RGF0YSwgaW5mbywgV1RGTW92ZShjYWxsYmFjayksIGdyYW50ZWQgPyBTcGFj
ZUNoZWNrUmVzdWx0OjpQYXNzIDogU3BhY2VDaGVja1Jlc3VsdDo6RmFpbCk7CiAgICAgICAgIH0p
OwpAQCAtMTA3OCw3ICsxMDc4LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6b3BlbkN1cnNv
cihjb25zdCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdERhdGEsIGNvbnN0IElEQkMKIAogICAgIEFT
U0VSVChzcGFjZUNoZWNrUmVzdWx0ID09IFNwYWNlQ2hlY2tSZXN1bHQ6OlBhc3MpOwogICAgIGlm
ICghbV9iYWNraW5nU3RvcmUpCi0gICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IElu
dmFsaWRTdGF0ZUVycm9yLCAiQmFja2luZyBzdG9yZSBpcyBjbG9zZWQiIH0sIElEQkdldFJlc3Vs
dCB7IH0pOworICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVF
cnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xvc2VkIl9zIH0sIElEQkdldFJlc3VsdCB7IH0pOwog
CiAgICAgSURCR2V0UmVzdWx0IHJlc3VsdDsKICAgICBhdXRvIGVycm9yID0gbV9iYWNraW5nU3Rv
cmUtPm9wZW5DdXJzb3IocmVxdWVzdERhdGEudHJhbnNhY3Rpb25JZGVudGlmaWVyKCksIGluZm8s
IHJlc3VsdCk7CkBAIC0xMDk3LDcgKzEwOTcsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpp
dGVyYXRlQ3Vyc29yKGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0YSwgY29uc3QgSQog
CiAgICAgICAgIG1fbWFuYWdlci0+cmVxdWVzdFNwYWNlKG1faWRlbnRpZmllci5vcmlnaW4oKSwg
MCwgW3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHJlcXVlc3REYXRhLCBkYXRh
LCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXShib29sIGdyYW50ZWQpIG11dGFibGUgewog
ICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcykKLSAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJh
Y2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkRhdGFiYXNlIG9yIHRyYW5zYWN0aW9u
IGlzIGNsb3NlZCIgfSwgSURCR2V0UmVzdWx0IHsgfSk7CisgICAgICAgICAgICAgICAgcmV0dXJu
IGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBvciB0cmFu
c2FjdGlvbiBpcyBjbG9zZWQiX3MgfSwgSURCR2V0UmVzdWx0IHsgfSk7CiAKICAgICAgICAgICAg
IGl0ZXJhdGVDdXJzb3IocmVxdWVzdERhdGEsIGRhdGEsIFdURk1vdmUoY2FsbGJhY2spLCBncmFu
dGVkID8gU3BhY2VDaGVja1Jlc3VsdDo6UGFzcyA6IFNwYWNlQ2hlY2tSZXN1bHQ6OkZhaWwpOwog
ICAgICAgICB9KTsKQEAgLTExMDYsNyArMTEwNiw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6
Oml0ZXJhdGVDdXJzb3IoY29uc3QgSURCUmVxdWVzdERhdGEmIHJlcXVlc3REYXRhLCBjb25zdCBJ
CiAKICAgICBBU1NFUlQoc3BhY2VDaGVja1Jlc3VsdCA9PSBTcGFjZUNoZWNrUmVzdWx0OjpQYXNz
KTsKICAgICBpZiAoIW1fYmFja2luZ1N0b3JlKQotICAgICAgICByZXR1cm4gY2FsbGJhY2soSURC
RXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xvc2VkIiB9LCBJ
REJHZXRSZXN1bHQgeyB9KTsKKyAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52
YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3JlIGlzIGNsb3NlZCJfcyB9LCBJREJHZXRSZXN1
bHQgeyB9KTsKIAogICAgIElEQkdldFJlc3VsdCByZXN1bHQ7CiAgICAgYXV0byB0cmFuc2FjdGlv
bklkZW50aWZpZXIgPSByZXF1ZXN0RGF0YS50cmFuc2FjdGlvbklkZW50aWZpZXIoKTsKQEAgLTEx
MjcsNyArMTEyNyw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmNvbW1pdFRyYW5zYWN0aW9u
KFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mIHRyYW5zYWN0CiAKICAgICAgICAgbV9tYW5h
Z2VyLT5yZXF1ZXN0U3BhY2UobV9pZGVudGlmaWVyLm9yaWdpbigpLCAwLCBbdGhpcywgd2Vha1Ro
aXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgd2Vha1RyYW5zYWN0aW9uID0gV2Vha1B0ciB7IHRyYW5z
YWN0aW9uIH0sIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKGJvb2wgZ3JhbnRlZCkgbXV0
YWJsZSB7CiAgICAgICAgICAgICBpZiAoIXdlYWtUaGlzIHx8ICF3ZWFrVHJhbnNhY3Rpb24pCi0g
ICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJy
b3IsICJEYXRhYmFzZSBvciB0cmFuc2FjdGlvbiBpcyBjbG9zZWQiIH0pOworICAgICAgICAgICAg
ICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJh
c2Ugb3IgdHJhbnNhY3Rpb24gaXMgY2xvc2VkIl9zIH0pOwogCiAgICAgICAgICAgICBjb21taXRU
cmFuc2FjdGlvbigqd2Vha1RyYW5zYWN0aW9uLCBXVEZNb3ZlKGNhbGxiYWNrKSwgZ3JhbnRlZCA/
IFNwYWNlQ2hlY2tSZXN1bHQ6OlBhc3MgOiBTcGFjZUNoZWNrUmVzdWx0OjpGYWlsKTsKICAgICAg
ICAgfSk7CkBAIC0xMTM4LDcgKzExMzgsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpjb21t
aXRUcmFuc2FjdGlvbihVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uJiB0cmFuc2FjdAogICAg
IEFTU0VSVCh0cmFuc2FjdGlvbi5kYXRhYmFzZUNvbm5lY3Rpb24oKS5kYXRhYmFzZSgpID09IHRo
aXMpOwogCiAgICAgaWYgKCFtX2JhY2tpbmdTdG9yZSkKLSAgICAgICAgcmV0dXJuIGNhbGxiYWNr
KElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3JlIGlzIGNsb3NlZCIg
fSk7CisgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9y
LCAiQmFja2luZyBzdG9yZSBpcyBjbG9zZWQiX3MgfSk7CiAKICAgICBhdXRvIHRha2VuVHJhbnNh
Y3Rpb24gPSBtX2luUHJvZ3Jlc3NUcmFuc2FjdGlvbnMudGFrZSh0cmFuc2FjdGlvbi5pbmZvKCku
aWRlbnRpZmllcigpKTsKICAgICBpZiAoIXRha2VuVHJhbnNhY3Rpb24pIHsKQEAgLTExNjYsNyAr
MTE2Niw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmFib3J0VHJhbnNhY3Rpb24oVW5pcXVl
SURCRGF0YWJhc2VUcmFuc2FjdGlvbiYgdHJhbnNhY3RpCiAKICAgICAgICAgbV9tYW5hZ2VyLT5y
ZXF1ZXN0U3BhY2UobV9pZGVudGlmaWVyLm9yaWdpbigpLCAwLCBbdGhpcywgd2Vha1RoaXMgPSBX
ZWFrUHRyIHsgKnRoaXMgfSwgd2Vha1RyYW5zYWN0aW9uID0gV2Vha1B0ciB7IHRyYW5zYWN0aW9u
IH0sIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKGJvb2wgZ3JhbnRlZCkgbXV0YWJsZSB7
CiAgICAgICAgICAgICBpZiAoIXdlYWtUaGlzIHx8ICF3ZWFrVHJhbnNhY3Rpb24pCi0gICAgICAg
ICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJE
YXRhYmFzZSBvciB0cmFuc2FjdGlvbiBpcyBjbG9zZWQiIH0pOworICAgICAgICAgICAgICAgIHJl
dHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJhc2Ugb3Ig
dHJhbnNhY3Rpb24gaXMgY2xvc2VkIl9zIH0pOwogCiAgICAgICAgICAgICBhYm9ydFRyYW5zYWN0
aW9uKCp3ZWFrVHJhbnNhY3Rpb24sIFdURk1vdmUoY2FsbGJhY2spLCBncmFudGVkID8gU3BhY2VD
aGVja1Jlc3VsdDo6UGFzcyA6IFNwYWNlQ2hlY2tSZXN1bHQ6OkZhaWwpOwogICAgICAgICB9KTsK
QEAgLTEyMDIsNyArMTIwMiw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmFib3J0VHJhbnNh
Y3Rpb24oVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbiYgdHJhbnNhY3RpCiAKICAgICBJREJF
cnJvciBlcnJvcjsKICAgICBpZiAoIW1fYmFja2luZ1N0b3JlKQotICAgICAgICBlcnJvciA9IElE
QkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3JlIGlzIGNsb3NlZCIgfTsK
KyAgICAgICAgZXJyb3IgPSBJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiQmFja2luZyBz
dG9yZSBpcyBjbG9zZWQiX3MgfTsKICAgICBlbHNlCiAgICAgICAgIGVycm9yID0gbV9iYWNraW5n
U3RvcmUtPmFib3J0VHJhbnNhY3Rpb24odHJhbnNhY3Rpb25JZGVudGlmaWVyKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkluZGV4SW5m
by5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCSW5kZXhJ
bmZvLmNwcAppbmRleCBlNzFkMmViZjIxYzRhZGZlZjI4YTJiZGFmYTFmZjg0YjNmN2YwMzk4Li43
YWJhODMxZDcwMGVhOThmZWIyY2M5YWE0NGM5NjJjNGI1OTQ0N2I5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCSW5kZXhJbmZvLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCSW5kZXhJbmZvLmNw
cApAQCAtNjEsNyArNjEsNyBAQCBTdHJpbmcgSURCSW5kZXhJbmZvOjpsb2dnaW5nU3RyaW5nKGlu
dCBpbmRlbnQpIGNvbnN0CiB7CiAgICAgU3RyaW5nIGluZGVudFN0cmluZzsKICAgICBmb3IgKGlu
dCBpID0gMDsgaSA8IGluZGVudDsgKytpKQotICAgICAgICBpbmRlbnRTdHJpbmcuYXBwZW5kKCIg
Iik7CisgICAgICAgIGluZGVudFN0cmluZy5hcHBlbmQoJyAnKTsKICAgICByZXR1cm4gbWFrZVN0
cmluZyhpbmRlbnRTdHJpbmcsICJJbmRleDogIiwgbV9uYW1lLCAiICgiLCBtX2lkZW50aWZpZXIs
ICIpIGtleVBhdGg6ICIsIFdlYkNvcmU6OmxvZ2dpbmdTdHJpbmcobV9rZXlQYXRoKSwgJ1xuJyk7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9N
ZWRpYUNvbnRyb2xzSG9zdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJv
bHMvTWVkaWFDb250cm9sc0hvc3QuY3BwCmluZGV4IGI4MjVlYzgwMDUxNDgwMjhlMmIwN2IxOWRj
NzgzOTJhNDNhOGNiYTUuLjMzMmY0NjI2YmQzMmU4MzFhZDkwOGE0NmFjNGRjMTQ2ZTZlY2NhODcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNv
bnRyb2xzSG9zdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xz
L01lZGlhQ29udHJvbHNIb3N0LmNwcApAQCAtMTE4LDE0ICsxMTgsMTQgQEAgTWVkaWFDb250cm9s
c0hvc3Q6On5NZWRpYUNvbnRyb2xzSG9zdCgpCiBTdHJpbmcgTWVkaWFDb250cm9sc0hvc3Q6Omxh
eW91dFRyYWl0c0NsYXNzTmFtZSgpIGNvbnN0CiB7CiAjaWYgZGVmaW5lZChNRURJQV9DT05UUk9M
U19IT1NUX0xBWU9VVF9UUkFJVFNfQ0xBU1NfTkFNRV9PVkVSUklERSkKLSAgICByZXR1cm4gTUVE
SUFfQ09OVFJPTFNfSE9TVF9MQVlPVVRfVFJBSVRTX0NMQVNTX05BTUVfT1ZFUlJJREU7CisgICAg
cmV0dXJuIE1FRElBX0NPTlRST0xTX0hPU1RfTEFZT1VUX1RSQUlUU19DTEFTU19OQU1FX09WRVJS
SURFIiJfczsKICNlbHNlCiAjaWYgUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShNQUNDQVRBTFlT
VCkKLSAgICByZXR1cm4gIk1hY09TTGF5b3V0VHJhaXRzIjsKKyAgICByZXR1cm4gIk1hY09TTGF5
b3V0VHJhaXRzIl9zOwogI2VsaWYgUExBVEZPUk0oSU9TKQotICAgIHJldHVybiAiSU9TTGF5b3V0
VHJhaXRzIjsKKyAgICByZXR1cm4gIklPU0xheW91dFRyYWl0cyJfczsKICNlbGlmIFBMQVRGT1JN
KFdBVENIT1MpCi0gICAgcmV0dXJuICJXYXRjaE9TTGF5b3V0VHJhaXRzIjsKKyAgICByZXR1cm4g
IldhdGNoT1NMYXlvdXRUcmFpdHMiX3M7CiAjZWxzZQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogICAgIHJldHVybiBudWxsU3RyaW5nKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5jcHAKaW5kZXggYTkxZTY2OTAwMDQ4
MzE2YTlhOTEzY2EwZDUxMjhlYWExNTFkOWNjZS4uZmY5NDk5OWMyMDJhMzIwNTRjNjE2YmYzNjZj
NjczYWViNDI3ZjY1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJl
Y29yZGVyL01lZGlhUmVjb3JkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmNwcApAQCAtNjYsNyArNjYsNyBAQCBFeGNlcHRpb25P
cjxSZWY8TWVkaWFSZWNvcmRlcj4+IE1lZGlhUmVjb3JkZXI6OmNyZWF0ZShEb2N1bWVudCYgZG9j
dW1lbnQsIFJlZjxNZQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJy
b3IgfTsKIAogICAgIGlmICghaXNUeXBlU3VwcG9ydGVkKGRvY3VtZW50LCBvcHRpb25zLm1pbWVU
eXBlKSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yLCAibWlt
ZVR5cGUgaXMgbm90IHN1cHBvcnRlZCIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5v
dFN1cHBvcnRlZEVycm9yLCAibWltZVR5cGUgaXMgbm90IHN1cHBvcnRlZCJfcyB9OwogCiAgICAg
YXV0byByZWNvcmRlciA9IGFkb3B0UmVmKCpuZXcgTWVkaWFSZWNvcmRlcihkb2N1bWVudCwgV1RG
TW92ZShzdHJlYW0pLCBXVEZNb3ZlKG9wdGlvbnMpKSk7CiAgICAgcmVjb3JkZXItPnN1c3BlbmRJ
Zk5lZWRlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJj
ZS9NZWRpYVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01l
ZGlhU291cmNlLmNwcAppbmRleCBhNTkwMzdhNDA1ODYzMThmMjE2YTZlYTAxOWRiMjRhOWIwMzk3
MjQ4Li44Y2I2ZDVjZmMzOGQ2ZWY4MGY3ZTM5NDFmYjk1OGEzNGQ1MzVmY2M4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcApAQCAt
NjUwLDcgKzY1MCw3IEBAIHN0YXRpYyBDb250ZW50VHlwZSBhZGRWUDlGdWxsUmFuZ2VWaWRlb0Zs
YWdUb0NvbnRlbnRUeXBlKGNvbnN0IENvbnRlbnRUeXBlJiB0eXBlCiAgICAgICAgIGlmIChwb3Np
dGlvbiA9PSBub3RGb3VuZCkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIHJhd1R5
cGUuaW5zZXJ0KCIuMDAiLCBwb3NpdGlvbiArIGNvZGVjLmxlbmd0aCgpKTsKKyAgICAgICAgcmF3
VHlwZS5pbnNlcnQoIi4wMCJfcywgcG9zaXRpb24gKyBjb2RlYy5sZW5ndGgoKSk7CiAgICAgICAg
IHJldHVybiBDb250ZW50VHlwZShyYXdUeXBlKTsKICAgICB9CiAgICAgcmV0dXJuIHR5cGU7CkBA
IC04OTUsNyArODk1LDcgQEAgYm9vbCBNZWRpYVNvdXJjZTo6aXNUeXBlU3VwcG9ydGVkKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIGNvbnN0IFN0cmluZyYKICAgICBpZiAoY29udGV4
dC5pc0RvY3VtZW50KCkgJiYgZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpLnF1aXJrcygpLm5l
ZWRzVlA5RnVsbFJhbmdlRmxhZ1F1aXJrKCkpCiAgICAgICAgIGNvbnRlbnRUeXBlID0gYWRkVlA5
RnVsbFJhbmdlVmlkZW9GbGFnVG9Db250ZW50VHlwZShjb250ZW50VHlwZSk7CiAKLSAgICBTdHJp
bmcgY29kZWNzID0gY29udGVudFR5cGUucGFyYW1ldGVyKCJjb2RlY3MiKTsKKyAgICBTdHJpbmcg
Y29kZWNzID0gY29udGVudFR5cGUucGFyYW1ldGVyKCJjb2RlY3MiX3MpOwogCiAgICAgLy8gMi4g
SWYgdHlwZSBkb2VzIG5vdCBjb250YWluIGEgdmFsaWQgTUlNRSB0eXBlIHN0cmluZywgdGhlbiBy
ZXR1cm4gZmFsc2UuCiAgICAgaWYgKGNvbnRlbnRUeXBlLmNvbnRhaW5lclR5cGUoKS5pc0VtcHR5
KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlh
VHJhY2tDb25zdHJhaW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L01lZGlhVHJhY2tDb25zdHJhaW50cy5jcHAKaW5kZXggMzExMzg0N2RiNzU0ODQ3ZDYxNjJmYTJk
NjFlNjczNGE2YTg4ODViMy4uMmY4ZDhiZDI3ZDczNTU0NmJhODRiNjE4MDhhNmNkYWIzZjMyOGUx
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVRy
YWNrQ29uc3RyYWludHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vTWVkaWFUcmFja0NvbnN0cmFpbnRzLmNwcApAQCAtMzMsNyArMzMsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIGVudW0gY2xhc3MgQ29uc3RyYWludFNldFR5cGUgeyBNYW5kYXRvcnksIEFk
dmFuY2VkIH07CiAKLXN0YXRpYyB2b2lkIHNldChNZWRpYVRyYWNrQ29uc3RyYWludFNldE1hcCYg
bWFwLCBDb25zdHJhaW50U2V0VHlwZSBzZXRUeXBlLCBjb25zdCBjaGFyKiB0eXBlQXNTdHJpbmcs
IE1lZGlhQ29uc3RyYWludFR5cGUgdHlwZSwgY29uc3QgQ29uc3RyYWluTG9uZyYgdmFsdWUpCitz
dGF0aWMgdm9pZCBzZXQoTWVkaWFUcmFja0NvbnN0cmFpbnRTZXRNYXAmIG1hcCwgQ29uc3RyYWlu
dFNldFR5cGUgc2V0VHlwZSwgQVNDSUlMaXRlcmFsIHR5cGVBc1N0cmluZywgTWVkaWFDb25zdHJh
aW50VHlwZSB0eXBlLCBjb25zdCBDb25zdHJhaW5Mb25nJiB2YWx1ZSkKIHsKICAgICBJbnRDb25z
dHJhaW50IGNvbnN0cmFpbnQodHlwZUFzU3RyaW5nLCB0eXBlKTsKICAgICBXVEY6OnN3aXRjaE9u
KHZhbHVlLApAQCAtNTcsNyArNTcsNyBAQCBzdGF0aWMgdm9pZCBzZXQoTWVkaWFUcmFja0NvbnN0
cmFpbnRTZXRNYXAmIG1hcCwgQ29uc3RyYWludFNldFR5cGUgc2V0VHlwZSwgY29ucwogICAgIG1h
cC5zZXQodHlwZSwgV1RGTW92ZShjb25zdHJhaW50KSk7CiB9CiAKLXN0YXRpYyB2b2lkIHNldChN
ZWRpYVRyYWNrQ29uc3RyYWludFNldE1hcCYgbWFwLCBDb25zdHJhaW50U2V0VHlwZSBzZXRUeXBl
LCBjb25zdCBjaGFyKiB0eXBlQXNTdHJpbmcsIE1lZGlhQ29uc3RyYWludFR5cGUgdHlwZSwgY29u
c3QgQ29uc3RyYWluRG91YmxlJiB2YWx1ZSkKK3N0YXRpYyB2b2lkIHNldChNZWRpYVRyYWNrQ29u
c3RyYWludFNldE1hcCYgbWFwLCBDb25zdHJhaW50U2V0VHlwZSBzZXRUeXBlLCBBU0NJSUxpdGVy
YWwgdHlwZUFzU3RyaW5nLCBNZWRpYUNvbnN0cmFpbnRUeXBlIHR5cGUsIGNvbnN0IENvbnN0cmFp
bkRvdWJsZSYgdmFsdWUpCiB7CiAgICAgRG91YmxlQ29uc3RyYWludCBjb25zdHJhaW50KHR5cGVB
c1N0cmluZywgdHlwZSk7CiAgICAgV1RGOjpzd2l0Y2hPbih2YWx1ZSwKQEAgLTgxLDcgKzgxLDcg
QEAgc3RhdGljIHZvaWQgc2V0KE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwJiBtYXAsIENvbnN0
cmFpbnRTZXRUeXBlIHNldFR5cGUsIGNvbnMKICAgICBtYXAuc2V0KHR5cGUsIFdURk1vdmUoY29u
c3RyYWludCkpOwogfQogCi1zdGF0aWMgdm9pZCBzZXQoTWVkaWFUcmFja0NvbnN0cmFpbnRTZXRN
YXAmIG1hcCwgQ29uc3RyYWludFNldFR5cGUgc2V0VHlwZSwgY29uc3QgY2hhciogdHlwZUFzU3Ry
aW5nLCBNZWRpYUNvbnN0cmFpbnRUeXBlIHR5cGUsIGNvbnN0IENvbnN0cmFpbkJvb2xlYW4mIHZh
bHVlKQorc3RhdGljIHZvaWQgc2V0KE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwJiBtYXAsIENv
bnN0cmFpbnRTZXRUeXBlIHNldFR5cGUsIEFTQ0lJTGl0ZXJhbCB0eXBlQXNTdHJpbmcsIE1lZGlh
Q29uc3RyYWludFR5cGUgdHlwZSwgY29uc3QgQ29uc3RyYWluQm9vbGVhbiYgdmFsdWUpCiB7CiAg
ICAgQm9vbGVhbkNvbnN0cmFpbnQgY29uc3RyYWludCh0eXBlQXNTdHJpbmcsIHR5cGUpOwogICAg
IFdURjo6c3dpdGNoT24odmFsdWUsCkBAIC0xMDEsNyArMTAxLDcgQEAgc3RhdGljIHZvaWQgc2V0
KE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwJiBtYXAsIENvbnN0cmFpbnRTZXRUeXBlIHNldFR5
cGUsIGNvbnMKICAgICBtYXAuc2V0KHR5cGUsIFdURk1vdmUoY29uc3RyYWludCkpOwogfQogCi1z
dGF0aWMgdm9pZCBzZXQoTWVkaWFUcmFja0NvbnN0cmFpbnRTZXRNYXAmIG1hcCwgQ29uc3RyYWlu
dFNldFR5cGUgc2V0VHlwZSwgY29uc3QgY2hhciogdHlwZUFzU3RyaW5nLCBNZWRpYUNvbnN0cmFp
bnRUeXBlIHR5cGUsIGNvbnN0IENvbnN0cmFpbkRPTVN0cmluZyYgdmFsdWUpCitzdGF0aWMgdm9p
ZCBzZXQoTWVkaWFUcmFja0NvbnN0cmFpbnRTZXRNYXAmIG1hcCwgQ29uc3RyYWludFNldFR5cGUg
c2V0VHlwZSwgQVNDSUlMaXRlcmFsIHR5cGVBc1N0cmluZywgTWVkaWFDb25zdHJhaW50VHlwZSB0
eXBlLCBjb25zdCBDb25zdHJhaW5ET01TdHJpbmcmIHZhbHVlKQogewogICAgIFN0cmluZ0NvbnN0
cmFpbnQgY29uc3RyYWludCh0eXBlQXNTdHJpbmcsIHR5cGUpOwogICAgIFdURjo6c3dpdGNoT24o
dmFsdWUsCkBAIC0xNDgsNyArMTQ4LDcgQEAgc3RhdGljIHZvaWQgc2V0KE1lZGlhVHJhY2tDb25z
dHJhaW50U2V0TWFwJiBtYXAsIENvbnN0cmFpbnRTZXRUeXBlIHNldFR5cGUsIGNvbnMKICAgICBt
YXAuc2V0KHR5cGUsIFdURk1vdmUoY29uc3RyYWludCkpOwogfQogCi10ZW1wbGF0ZTx0eXBlbmFt
ZSBUPiBzdGF0aWMgaW5saW5lIHZvaWQgc2V0KE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwJiBt
YXAsIENvbnN0cmFpbnRTZXRUeXBlIHNldFR5cGUsIGNvbnN0IGNoYXIqIHR5cGVBc1N0cmluZywg
TWVkaWFDb25zdHJhaW50VHlwZSB0eXBlLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFQ+JiB2YWx1ZSkK
K3RlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0YXRpYyBpbmxpbmUgdm9pZCBzZXQoTWVkaWFUcmFja0Nv
bnN0cmFpbnRTZXRNYXAmIG1hcCwgQ29uc3RyYWludFNldFR5cGUgc2V0VHlwZSwgQVNDSUlMaXRl
cmFsIHR5cGVBc1N0cmluZywgTWVkaWFDb25zdHJhaW50VHlwZSB0eXBlLCBjb25zdCBzdGQ6Om9w
dGlvbmFsPFQ+JiB2YWx1ZSkKIHsKICAgICBpZiAoIXZhbHVlKQogICAgICAgICByZXR1cm47CkBA
IC0xNTgsMjEgKzE1OCwyMSBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdGF0aWMgaW5saW5lIHZv
aWQgc2V0KE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwJiBtYXAsIENvbgogc3RhdGljIE1lZGlh
VHJhY2tDb25zdHJhaW50U2V0TWFwIGNvbnZlcnRUb0ludGVybmFsRm9ybShDb25zdHJhaW50U2V0
VHlwZSBzZXRUeXBlLCBjb25zdCBNZWRpYVRyYWNrQ29uc3RyYWludFNldCYgY29uc3RyYWludFNl
dCkKIHsKICAgICBNZWRpYVRyYWNrQ29uc3RyYWludFNldE1hcCByZXN1bHQ7Ci0gICAgc2V0KHJl
c3VsdCwgc2V0VHlwZSwgIndpZHRoIiwgTWVkaWFDb25zdHJhaW50VHlwZTo6V2lkdGgsIGNvbnN0
cmFpbnRTZXQud2lkdGgpOwotICAgIHNldChyZXN1bHQsIHNldFR5cGUsICJoZWlnaHQiLCBNZWRp
YUNvbnN0cmFpbnRUeXBlOjpIZWlnaHQsIGNvbnN0cmFpbnRTZXQuaGVpZ2h0KTsKLSAgICBzZXQo
cmVzdWx0LCBzZXRUeXBlLCAiYXNwZWN0UmF0aW8iLCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpBc3Bl
Y3RSYXRpbywgY29uc3RyYWludFNldC5hc3BlY3RSYXRpbyk7Ci0gICAgc2V0KHJlc3VsdCwgc2V0
VHlwZSwgImZyYW1lUmF0ZSIsIE1lZGlhQ29uc3RyYWludFR5cGU6OkZyYW1lUmF0ZSwgY29uc3Ry
YWludFNldC5mcmFtZVJhdGUpOwotICAgIHNldChyZXN1bHQsIHNldFR5cGUsICJmYWNpbmdNb2Rl
IiwgTWVkaWFDb25zdHJhaW50VHlwZTo6RmFjaW5nTW9kZSwgY29uc3RyYWludFNldC5mYWNpbmdN
b2RlKTsKLSAgICBzZXQocmVzdWx0LCBzZXRUeXBlLCAidm9sdW1lIiwgTWVkaWFDb25zdHJhaW50
VHlwZTo6Vm9sdW1lLCBjb25zdHJhaW50U2V0LnZvbHVtZSk7Ci0gICAgc2V0KHJlc3VsdCwgc2V0
VHlwZSwgInNhbXBsZVJhdGUiLCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpTYW1wbGVSYXRlLCBjb25z
dHJhaW50U2V0LnNhbXBsZVJhdGUpOwotICAgIHNldChyZXN1bHQsIHNldFR5cGUsICJzYW1wbGVT
aXplIiwgTWVkaWFDb25zdHJhaW50VHlwZTo6U2FtcGxlU2l6ZSwgY29uc3RyYWludFNldC5zYW1w
bGVTaXplKTsKLSAgICBzZXQocmVzdWx0LCBzZXRUeXBlLCAiZWNob0NhbmNlbGxhdGlvbiIsIE1l
ZGlhQ29uc3RyYWludFR5cGU6OkVjaG9DYW5jZWxsYXRpb24sIGNvbnN0cmFpbnRTZXQuZWNob0Nh
bmNlbGxhdGlvbik7CisgICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgIndpZHRoIl9zLCBNZWRpYUNv
bnN0cmFpbnRUeXBlOjpXaWR0aCwgY29uc3RyYWludFNldC53aWR0aCk7CisgICAgc2V0KHJlc3Vs
dCwgc2V0VHlwZSwgImhlaWdodCJfcywgTWVkaWFDb25zdHJhaW50VHlwZTo6SGVpZ2h0LCBjb25z
dHJhaW50U2V0LmhlaWdodCk7CisgICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgImFzcGVjdFJhdGlv
Il9zLCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpBc3BlY3RSYXRpbywgY29uc3RyYWludFNldC5hc3Bl
Y3RSYXRpbyk7CisgICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgImZyYW1lUmF0ZSJfcywgTWVkaWFD
b25zdHJhaW50VHlwZTo6RnJhbWVSYXRlLCBjb25zdHJhaW50U2V0LmZyYW1lUmF0ZSk7CisgICAg
c2V0KHJlc3VsdCwgc2V0VHlwZSwgImZhY2luZ01vZGUiX3MsIE1lZGlhQ29uc3RyYWludFR5cGU6
OkZhY2luZ01vZGUsIGNvbnN0cmFpbnRTZXQuZmFjaW5nTW9kZSk7CisgICAgc2V0KHJlc3VsdCwg
c2V0VHlwZSwgInZvbHVtZSJfcywgTWVkaWFDb25zdHJhaW50VHlwZTo6Vm9sdW1lLCBjb25zdHJh
aW50U2V0LnZvbHVtZSk7CisgICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgInNhbXBsZVJhdGUiX3Ms
IE1lZGlhQ29uc3RyYWludFR5cGU6OlNhbXBsZVJhdGUsIGNvbnN0cmFpbnRTZXQuc2FtcGxlUmF0
ZSk7CisgICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgInNhbXBsZVNpemUiX3MsIE1lZGlhQ29uc3Ry
YWludFR5cGU6OlNhbXBsZVNpemUsIGNvbnN0cmFpbnRTZXQuc2FtcGxlU2l6ZSk7CisgICAgc2V0
KHJlc3VsdCwgc2V0VHlwZSwgImVjaG9DYW5jZWxsYXRpb24iX3MsIE1lZGlhQ29uc3RyYWludFR5
cGU6OkVjaG9DYW5jZWxsYXRpb24sIGNvbnN0cmFpbnRTZXQuZWNob0NhbmNlbGxhdGlvbik7CiAg
ICAgLy8gRklYTUU6IGFkZCBsYXRlbmN5CiAgICAgLy8gRklYTUU6IGFkZCBjaGFubmVsQ291bnQK
LSAgICBzZXQocmVzdWx0LCBzZXRUeXBlLCAiZGV2aWNlSWQiLCBNZWRpYUNvbnN0cmFpbnRUeXBl
OjpEZXZpY2VJZCwgY29uc3RyYWludFNldC5kZXZpY2VJZCk7Ci0gICAgc2V0KHJlc3VsdCwgc2V0
VHlwZSwgImdyb3VwSWQiLCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpHcm91cElkLCBjb25zdHJhaW50
U2V0Lmdyb3VwSWQpOwotICAgIHNldChyZXN1bHQsIHNldFR5cGUsICJkaXNwbGF5U3VyZmFjZSIs
IE1lZGlhQ29uc3RyYWludFR5cGU6OkRpc3BsYXlTdXJmYWNlLCBjb25zdHJhaW50U2V0LmRpc3Bs
YXlTdXJmYWNlKTsKLSAgICBzZXQocmVzdWx0LCBzZXRUeXBlLCAibG9naWNhbFN1cmZhY2UiLCBN
ZWRpYUNvbnN0cmFpbnRUeXBlOjpMb2dpY2FsU3VyZmFjZSwgY29uc3RyYWludFNldC5sb2dpY2Fs
U3VyZmFjZSk7CisgICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgImRldmljZUlkIl9zLCBNZWRpYUNv
bnN0cmFpbnRUeXBlOjpEZXZpY2VJZCwgY29uc3RyYWludFNldC5kZXZpY2VJZCk7CisgICAgc2V0
KHJlc3VsdCwgc2V0VHlwZSwgImdyb3VwSWQiX3MsIE1lZGlhQ29uc3RyYWludFR5cGU6Okdyb3Vw
SWQsIGNvbnN0cmFpbnRTZXQuZ3JvdXBJZCk7CisgICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgImRp
c3BsYXlTdXJmYWNlIl9zLCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpEaXNwbGF5U3VyZmFjZSwgY29u
c3RyYWludFNldC5kaXNwbGF5U3VyZmFjZSk7CisgICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgImxv
Z2ljYWxTdXJmYWNlIl9zLCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpMb2dpY2FsU3VyZmFjZSwgY29u
c3RyYWludFNldC5sb2dpY2FsU3VyZmFjZSk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENJY2VDYW5kaWRh
dGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENJY2VDYW5kaWRh
dGUuY3BwCmluZGV4IDlmNzA2ZGY2ZGY2NWU3Zjk1ODE1NzUxNDAyMjQ4ZTA4YzdhMjNmYTAuLmJi
N2VmNzQxMjYxOWMwNTlkY2VjNzRkNjhlZTJkYmUwYzkzYWJjMjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDSWNlQ2FuZGlkYXRlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0ljZUNhbmRpZGF0ZS5jcHAKQEAg
LTU0LDcgKzU0LDcgQEAgUlRDSWNlQ2FuZGlkYXRlOjpSVENJY2VDYW5kaWRhdGUoY29uc3QgU3Ry
aW5nJiBjYW5kaWRhdGUsIGNvbnN0IFN0cmluZyYgc2RwTWlkLAogRXhjZXB0aW9uT3I8UmVmPFJU
Q0ljZUNhbmRpZGF0ZT4+IFJUQ0ljZUNhbmRpZGF0ZTo6Y3JlYXRlKGNvbnN0IFJUQ0ljZUNhbmRp
ZGF0ZUluaXQmIGRpY3Rpb25hcnkpCiB7CiAgICAgaWYgKGRpY3Rpb25hcnkuc2RwTWlkLmlzTnVs
bCgpICYmICFkaWN0aW9uYXJ5LnNkcE1MaW5lSW5kZXgpCi0gICAgICAgIHJldHVybiBFeGNlcHRp
b24geyBUeXBlRXJyb3IsICJDYW5kaWRhdGUgbXVzdCBub3QgaGF2ZSBib3RoIG51bGwgc2RwTWlk
IGFuZCBzZHBNTGluZUluZGV4IiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVy
cm9yLCAiQ2FuZGlkYXRlIG11c3Qgbm90IGhhdmUgYm90aCBudWxsIHNkcE1pZCBhbmQgc2RwTUxp
bmVJbmRleCJfcyB9OwogCiAgICAgYXV0byBmaWVsZHMgPSB2YWx1ZU9yRGVmYXVsdChwYXJzZUlj
ZUNhbmRpZGF0ZVNEUChkaWN0aW9uYXJ5LmNhbmRpZGF0ZSkpOwogICAgIGZpZWxkcy51c2VybmFt
ZUZyYWdtZW50ID0gZGljdGlvbmFyeS51c2VybmFtZUZyYWdtZW50OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcApp
bmRleCA5MGRlNjM5OTM0ZWQ2MWM1YzBiMTAxMmMwYWE1Mzk3ZGQwZDhiMzJhLi40MTU2NmE1NTVm
NjJlZTUwOGUwZGQxYTFkZDcwODg0ZWY3NTBmNWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcApAQCAtMjcz
LDcgKzI3Myw3IEBAIHZvaWQgUlRDUGVlckNvbm5lY3Rpb246OnNldExvY2FsRGVzY3JpcHRpb24o
c3RkOjpvcHRpb25hbDxSVENMb2NhbFNlc3Npb25EZXNjcmlwCiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKLSAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIsICJTZXR0aW5nIGxvY2FsIGRlc2Ny
aXB0aW9uIHRvOlxuIiwgbG9jYWxEZXNjcmlwdGlvbiA/IGxvY2FsRGVzY3JpcHRpb24tPnNkcCA6
ICInJyIpOworICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgIlNldHRpbmcgbG9jYWwgZGVz
Y3JpcHRpb24gdG86XG4iLCBsb2NhbERlc2NyaXB0aW9uID8gbG9jYWxEZXNjcmlwdGlvbi0+c2Rw
IDogIicnIl9zKTsKICAgICBjaGFpbk9wZXJhdGlvbihXVEZNb3ZlKHByb21pc2UpLCBbdGhpcywg
bG9jYWxEZXNjcmlwdGlvbiA9IFdURk1vdmUobG9jYWxEZXNjcmlwdGlvbildKGF1dG8mJiBwcm9t
aXNlKSBtdXRhYmxlIHsKICAgICAgICAgYXV0byB0eXBlID0gdHlwZUZvclNldExvY2FsRGVzY3Jp
cHRpb24obG9jYWxEZXNjcmlwdGlvbiwgbV9zaWduYWxpbmdTdGF0ZSk7CiAgICAgICAgIFN0cmlu
ZyBzZHA7CkBAIC0zNDQsNyArMzQ0LDcgQEAgdm9pZCBSVENQZWVyQ29ubmVjdGlvbjo6YWRkSWNl
Q2FuZGlkYXRlKENhbmRpZGF0ZSYmIHJ0Y0NhbmRpZGF0ZSwgUmVmPERlZmVycmVkUHIKICAgICAg
ICAgfSk7CiAgICAgfQogCi0gICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCAiUmVjZWl2ZWQg
aWNlIGNhbmRpZGF0ZTpcbiIsIGNhbmRpZGF0ZSA/IGNhbmRpZGF0ZS0+Y2FuZGlkYXRlKCkgOiAi
bnVsbCIpOworICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgIlJlY2VpdmVkIGljZSBjYW5k
aWRhdGU6XG4iLCBjYW5kaWRhdGUgPyBjYW5kaWRhdGUtPmNhbmRpZGF0ZSgpIDogIm51bGwiX3Mp
OwogCiAgICAgaWYgKGV4Y2VwdGlvbikgewogICAgICAgICBwcm9taXNlLT5yZWplY3QoKmV4Y2Vw
dGlvbik7CkBAIC0zNzksMTMgKzM3OSwxMyBAQCBzdGQ6Om9wdGlvbmFsPGJvb2w+IFJUQ1BlZXJD
b25uZWN0aW9uOjpjYW5Ucmlja2xlSWNlQ2FuZGlkYXRlcygpIGNvbnN0CiBFeGNlcHRpb25PcjxW
ZWN0b3I8TWVkaWFFbmRwb2ludENvbmZpZ3VyYXRpb246OkljZVNlcnZlckluZm8+PiBSVENQZWVy
Q29ubmVjdGlvbjo6aWNlU2VydmVyc0Zyb21Db25maWd1cmF0aW9uKFJUQ0NvbmZpZ3VyYXRpb24m
IG5ld0NvbmZpZ3VyYXRpb24sIGNvbnN0IFJUQ0NvbmZpZ3VyYXRpb24qIGV4aXN0aW5nQ29uZmln
dXJhdGlvbiwgYm9vbCBpc0xvY2FsRGVzY3JpcHRpb25TZXQpCiB7CiAgICAgaWYgKGV4aXN0aW5n
Q29uZmlndXJhdGlvbiAmJiBuZXdDb25maWd1cmF0aW9uLmJ1bmRsZVBvbGljeSAhPSBleGlzdGlu
Z0NvbmZpZ3VyYXRpb24tPmJ1bmRsZVBvbGljeSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7
IEludmFsaWRNb2RpZmljYXRpb25FcnJvciwgIkJ1bmRsZVBvbGljeSBkb2VzIG5vdCBtYXRjaCBl
eGlzdGluZyBwb2xpY3kiIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkTW9k
aWZpY2F0aW9uRXJyb3IsICJCdW5kbGVQb2xpY3kgZG9lcyBub3QgbWF0Y2ggZXhpc3RpbmcgcG9s
aWN5Il9zIH07CiAKICAgICBpZiAoZXhpc3RpbmdDb25maWd1cmF0aW9uICYmIG5ld0NvbmZpZ3Vy
YXRpb24ucnRjcE11eFBvbGljeSAhPSBleGlzdGluZ0NvbmZpZ3VyYXRpb24tPnJ0Y3BNdXhQb2xp
Y3kpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3Is
ICJSVENQTXV4UG9saWN5IGRvZXMgbm90IG1hdGNoIGV4aXN0aW5nIHBvbGljeSIgfTsKKyAgICAg
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRNb2RpZmljYXRpb25FcnJvciwgIlJUQ1BNdXhQ
b2xpY3kgZG9lcyBub3QgbWF0Y2ggZXhpc3RpbmcgcG9saWN5Il9zIH07CiAKICAgICBpZiAoZXhp
c3RpbmdDb25maWd1cmF0aW9uICYmIG5ld0NvbmZpZ3VyYXRpb24uaWNlQ2FuZGlkYXRlUG9vbFNp
emUgIT0gZXhpc3RpbmdDb25maWd1cmF0aW9uLT5pY2VDYW5kaWRhdGVQb29sU2l6ZSAmJiBpc0xv
Y2FsRGVzY3JpcHRpb25TZXQpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkTW9k
aWZpY2F0aW9uRXJyb3IsICJJY2VUcmFuc3BvcnRQb2xpY3kgcG9vbCBzaXplIGRvZXMgbm90IG1h
dGNoIGV4aXN0aW5nIHBvb2wgc2l6ZSIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElu
dmFsaWRNb2RpZmljYXRpb25FcnJvciwgIkljZVRyYW5zcG9ydFBvbGljeSBwb29sIHNpemUgZG9l
cyBub3QgbWF0Y2ggZXhpc3RpbmcgcG9vbCBzaXplIl9zIH07CiAKICAgICBWZWN0b3I8TWVkaWFF
bmRwb2ludENvbmZpZ3VyYXRpb246OkljZVNlcnZlckluZm8+IHNlcnZlcnM7CiAgICAgaWYgKG5l
d0NvbmZpZ3VyYXRpb24uaWNlU2VydmVycykgewpAQCAtNDE0LDE4ICs0MTQsMTggQEAgRXhjZXB0
aW9uT3I8VmVjdG9yPE1lZGlhRW5kcG9pbnRDb25maWd1cmF0aW9uOjpJY2VTZXJ2ZXJJbmZvPj4g
UlRDUGVlckNvbm5lY3Rpb24KIAogICAgICAgICAgICAgZm9yIChhdXRvJiBzZXJ2ZXJVUkwgOiBz
ZXJ2ZXJVUkxzKSB7CiAgICAgICAgICAgICAgICAgaWYgKHNlcnZlclVSTC5pc051bGwoKSkKLSAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIkJhZCBJQ0Ug
c2VydmVyIFVSTCIgfTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5
cGVFcnJvciwgIkJhZCBJQ0Ugc2VydmVyIFVSTCJfcyB9OwogICAgICAgICAgICAgICAgIGlmIChz
ZXJ2ZXJVUkwucHJvdG9jb2xJcygidHVybiIpIHx8IHNlcnZlclVSTC5wcm90b2NvbElzKCJ0dXJu
cyIpKSB7CiAgICAgICAgICAgICAgICAgICAgIGlmIChzZXJ2ZXIuY3JlZGVudGlhbC5pc051bGwo
KSB8fCBzZXJ2ZXIudXNlcm5hbWUuaXNOdWxsKCkpCi0gICAgICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiVFVSTi9UVVJOUyBzZXJ2ZXIg
cmVxdWlyZXMgYm90aCB1c2VybmFtZSBhbmQgY3JlZGVudGlhbCIgfTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJUVVJOL1RV
Uk5TIHNlcnZlciByZXF1aXJlcyBib3RoIHVzZXJuYW1lIGFuZCBjcmVkZW50aWFsIl9zIH07CiAg
ICAgICAgICAgICAgICAgICAgIC8vIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM4NDg5
I3NlY3Rpb24tMTQuMwogICAgICAgICAgICAgICAgICAgICBpZiAoc2VydmVyLmNyZWRlbnRpYWwu
bGVuZ3RoKCkgPiA2NCB8fCBzZXJ2ZXIudXNlcm5hbWUubGVuZ3RoKCkgPiA2NCkgewogICAgICAg
ICAgICAgICAgICAgICAgICAgY29uc3RleHByIHNpemVfdCBNYXhUdXJuVXNlcm5hbWVMZW5ndGgg
PSA1MDk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2VydmVyLmNyZWRlbnRpYWwudXRm
OCgpLmxlbmd0aCgpID4gTWF4VHVyblVzZXJuYW1lTGVuZ3RoIHx8IHNlcnZlci51c2VybmFtZS51
dGY4KCkubGVuZ3RoKCkgPiBNYXhUdXJuVXNlcm5hbWVMZW5ndGgpCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIlRVUk4vVFVSTlMgdXNl
cm5hbWUgYW5kL29yIGNyZWRlbnRpYWwgYXJlIHRvbyBsb25nIiB9OworICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJUVVJOL1RVUk5TIHVz
ZXJuYW1lIGFuZC9vciBjcmVkZW50aWFsIGFyZSB0b28gbG9uZyJfcyB9OwogICAgICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICghc2VydmVyVVJMLnByb3RvY29s
SXMoInN0dW4iKSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1
cHBvcnRlZEVycm9yLCAiSUNFIHNlcnZlciBwcm90b2NvbCBub3Qgc3VwcG9ydGVkIiB9OworICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IsICJJ
Q0Ugc2VydmVyIHByb3RvY29sIG5vdCBzdXBwb3J0ZWQiX3MgfTsKICAgICAgICAgICAgIH0KICAg
ICAgICAgICAgIGlmIChzZXJ2ZXJVUkxzLnNpemUoKSkKICAgICAgICAgICAgICAgICBzZXJ2ZXJz
LnVuY2hlY2tlZEFwcGVuZCh7IFdURk1vdmUoc2VydmVyVVJMcyksIHNlcnZlci5jcmVkZW50aWFs
LCBzZXJ2ZXIudXNlcm5hbWUgfSk7CkBAIC00NDMsNyArNDQzLDcgQEAgRXhjZXB0aW9uT3I8VmVj
dG9yPE1lZGlhRW5kcG9pbnRDb25maWd1cmF0aW9uOjpDZXJ0aWZpY2F0ZVBFTT4+IFJUQ1BlZXJD
b25uZWN0aW8KICAgICBjZXJ0aWZpY2F0ZXMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShjb25maWd1
cmF0aW9uLmNlcnRpZmljYXRlcy5zaXplKCkpOwogICAgIGZvciAoYXV0byYgY2VydGlmaWNhdGUg
OiBjb25maWd1cmF0aW9uLmNlcnRpZmljYXRlcykgewogICAgICAgICBpZiAoIW9yaWdpbi5pc1Nh
bWVPcmlnaW5BcyhjZXJ0aWZpY2F0ZS0+b3JpZ2luKCkpKQotICAgICAgICAgICAgcmV0dXJuIEV4
Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwgIkNlcnRpZmljYXRlIGRvZXMgbm90IGhhdmUg
YSB2YWxpZCBvcmlnaW4iIH07CisgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxp
ZEFjY2Vzc0Vycm9yLCAiQ2VydGlmaWNhdGUgZG9lcyBub3QgaGF2ZSBhIHZhbGlkIG9yaWdpbiJf
cyB9OwogCiAgICAgICAgIGlmIChjdXJyZW50TWlsbGlTZWNvbmRzID4gY2VydGlmaWNhdGUtPmV4
cGlyZXMoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJy
b3IsICJDZXJ0aWZpY2F0ZSBoYXMgZXhwaXJlZCJfcyB9OwpAQCAtNDY2LDcgKzQ2Niw3IEBAIEV4
Y2VwdGlvbk9yPHZvaWQ+IFJUQ1BlZXJDb25uZWN0aW9uOjppbml0aWFsaXplQ29uZmlndXJhdGlv
bihSVENDb25maWd1cmF0aW9uJiYKICAgICAgICAgcmV0dXJuIGNlcnRpZmljYXRlcy5yZWxlYXNl
RXhjZXB0aW9uKCk7CiAKICAgICBpZiAoIW1fYmFja2VuZC0+c2V0Q29uZmlndXJhdGlvbih7IHNl
cnZlcnMucmVsZWFzZVJldHVyblZhbHVlKCksIGNvbmZpZ3VyYXRpb24uaWNlVHJhbnNwb3J0UG9s
aWN5LCBjb25maWd1cmF0aW9uLmJ1bmRsZVBvbGljeSwgY29uZmlndXJhdGlvbi5ydGNwTXV4UG9s
aWN5LCBjb25maWd1cmF0aW9uLmljZUNhbmRpZGF0ZVBvb2xTaXplLCBjZXJ0aWZpY2F0ZXMucmVs
ZWFzZVJldHVyblZhbHVlKCkgfSkpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlk
QWNjZXNzRXJyb3IsICJCYWQgQ29uZmlndXJhdGlvbiBQYXJhbWV0ZXJzIiB9OworICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiQmFkIENvbmZpZ3VyYXRpb24g
UGFyYW1ldGVycyJfcyB9OwogCiAgICAgbV9jb25maWd1cmF0aW9uID0gV1RGTW92ZShjb25maWd1
cmF0aW9uKTsKICAgICByZXR1cm4geyB9OwpAQCAtNDg1LDE5ICs0ODUsMTkgQEAgRXhjZXB0aW9u
T3I8dm9pZD4gUlRDUGVlckNvbm5lY3Rpb246OnNldENvbmZpZ3VyYXRpb24oUlRDQ29uZmlndXJh
dGlvbiYmIGNvbmZpZ3UKIAogICAgIGlmIChjb25maWd1cmF0aW9uLmNlcnRpZmljYXRlcy5zaXpl
KCkpIHsKICAgICAgICAgaWYgKGNvbmZpZ3VyYXRpb24uY2VydGlmaWNhdGVzLnNpemUoKSAhPSBt
X2NvbmZpZ3VyYXRpb24uY2VydGlmaWNhdGVzLnNpemUoKSkKLSAgICAgICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3IsICJDZXJ0aWZpY2F0ZXMgcGFyYW1l
dGVycyBhcmUgZGlmZmVyZW50IiB9OworICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElu
dmFsaWRNb2RpZmljYXRpb25FcnJvciwgIkNlcnRpZmljYXRlcyBwYXJhbWV0ZXJzIGFyZSBkaWZm
ZXJlbnQiX3MgfTsKIAogICAgICAgICBmb3IgKGF1dG8mIGNlcnRpZmljYXRlIDogY29uZmlndXJh
dGlvbi5jZXJ0aWZpY2F0ZXMpIHsKICAgICAgICAgICAgIGJvb2wgaXNUaGVyZSA9IG1fY29uZmln
dXJhdGlvbi5jZXJ0aWZpY2F0ZXMuZmluZElmKFsmY2VydGlmaWNhdGVdKGNvbnN0IGF1dG8mIGl0
ZW0pIHsKICAgICAgICAgICAgICAgICByZXR1cm4gaXRlbS5nZXQoKSA9PSBjZXJ0aWZpY2F0ZS5n
ZXQoKTsKICAgICAgICAgICAgIH0pICE9IG5vdEZvdW5kOwogICAgICAgICAgICAgaWYgKCFpc1Ro
ZXJlKQotICAgICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkTW9kaWZpY2F0
aW9uRXJyb3IsICJBIGNlcnRpZmljYXRlIGdpdmVuIGluIGNvbnN0cnVjdG9yIGlzIG5vdCBwcmVz
ZW50IiB9OworICAgICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkTW9kaWZp
Y2F0aW9uRXJyb3IsICJBIGNlcnRpZmljYXRlIGdpdmVuIGluIGNvbnN0cnVjdG9yIGlzIG5vdCBw
cmVzZW50Il9zIH07CiAgICAgICAgIH0KICAgICB9CiAKICAgICBpZiAoIW1fYmFja2VuZC0+c2V0
Q29uZmlndXJhdGlvbih7IHNlcnZlcnMucmVsZWFzZVJldHVyblZhbHVlKCksIGNvbmZpZ3VyYXRp
b24uaWNlVHJhbnNwb3J0UG9saWN5LCBjb25maWd1cmF0aW9uLmJ1bmRsZVBvbGljeSwgY29uZmln
dXJhdGlvbi5ydGNwTXV4UG9saWN5LCBjb25maWd1cmF0aW9uLmljZUNhbmRpZGF0ZVBvb2xTaXpl
LCB7IH0gfSkpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3Is
ICJCYWQgQ29uZmlndXJhdGlvbiBQYXJhbWV0ZXJzIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiQmFkIENvbmZpZ3VyYXRpb24gUGFyYW1ldGVycyJf
cyB9OwogCiAgICAgbV9jb25maWd1cmF0aW9uID0gV1RGTW92ZShjb25maWd1cmF0aW9uKTsKICAg
ICByZXR1cm4geyB9OwpAQCAtOTE5LDcgKzkxOSw3IEBAIGNvbnN0IFZlY3RvcjxSZWZQdHI8UlRD
UnRwVHJhbnNjZWl2ZXI+PiYgUlRDUGVlckNvbm5lY3Rpb246OmdldFRyYW5zY2VpdmVycygpIGNv
CiB2b2lkIFJUQ1BlZXJDb25uZWN0aW9uOjpjaGFpbk9wZXJhdGlvbihSZWY8RGVmZXJyZWRQcm9t
aXNlPiYmIHByb21pc2UsIEZ1bmN0aW9uPHZvaWQoUmVmPERlZmVycmVkUHJvbWlzZT4mJik+JiYg
b3BlcmF0aW9uKQogewogICAgIGlmIChpc0Nsb3NlZCgpKSB7Ci0gICAgICAgIHByb21pc2UtPnJl
amVjdChJbnZhbGlkU3RhdGVFcnJvciwgIlJUQ1BlZXJDb25uZWN0aW9uIGlzIGNsb3NlZCIpOwor
ICAgICAgICBwcm9taXNlLT5yZWplY3QoSW52YWxpZFN0YXRlRXJyb3IsICJSVENQZWVyQ29ubmVj
dGlvbiBpcyBjbG9zZWQiX3MpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC05MjcsNyAr
OTI3LDcgQEAgdm9pZCBSVENQZWVyQ29ubmVjdGlvbjo6Y2hhaW5PcGVyYXRpb24oUmVmPERlZmVy
cmVkUHJvbWlzZT4mJiBwcm9taXNlLCBGdW5jdGlvbjwKICAgICAgICAgQVNTRVJUKG1faGFzUGVu
ZGluZ09wZXJhdGlvbik7CiAgICAgICAgIGlmIChpc0Nsb3NlZCgpKSB7CiAgICAgICAgICAgICBm
b3IgKGF1dG8mIG9wZXJhdGlvbiA6IHN0ZDo6ZXhjaGFuZ2UobV9vcGVyYXRpb25zLCB7IH0pKQot
ICAgICAgICAgICAgICAgIG9wZXJhdGlvbi5maXJzdC0+cmVqZWN0KEludmFsaWRTdGF0ZUVycm9y
LCAiUlRDUGVlckNvbm5lY3Rpb24gaXMgY2xvc2VkIik7CisgICAgICAgICAgICAgICAgb3BlcmF0
aW9uLmZpcnN0LT5yZWplY3QoSW52YWxpZFN0YXRlRXJyb3IsICJSVENQZWVyQ29ubmVjdGlvbiBp
cyBjbG9zZWQiX3MpOwogICAgICAgICAgICAgbV9oYXNQZW5kaW5nT3BlcmF0aW9uID0gZmFsc2U7
CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm1lci5j
cHAKaW5kZXggY2IzZjdjZDliZjIxMjNlOTFkMmRmN2E0NTFkMWM2ZTgxODllZDQ0ZC4uNGYyOWFi
MTVlNmI1Njc3MTczMGFmOTQ0MmNlMGI0MTQyNzBlMTZjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm1lci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zv
cm1lci5jcHAKQEAgLTM0Niw3ICszNDYsNyBAQCBSVENSdHBTRnJhbWVUcmFuc2Zvcm1lcjo6VHJh
bnNmb3JtUmVzdWx0IFJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyOjplbmNyeXB0RnJhbWUoUwogUlRD
UnRwU0ZyYW1lVHJhbnNmb3JtZXI6OlRyYW5zZm9ybVJlc3VsdCBSVENSdHBTRnJhbWVUcmFuc2Zv
cm1lcjo6dHJhbnNmb3JtKFNwYW48Y29uc3QgdWludDhfdD4gZGF0YSkKIHsKICAgICBpZiAoIW1f
aGFzS2V5KQotICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoRXJyb3JJbmZvcm1hdGlvbiB7
IEVycm9yOjpLZXlJRCwgICJLZXkgaXMgbm90IGluaXRpYWxpemVkIiwgMCB9KTsKKyAgICAgICAg
cmV0dXJuIG1ha2VVbmV4cGVjdGVkKEVycm9ySW5mb3JtYXRpb24geyBFcnJvcjo6S2V5SUQsICAi
S2V5IGlzIG5vdCBpbml0aWFsaXplZCJfcywgMCB9KTsKIAogICAgIHJldHVybiBtX2lzRW5jcnlw
dGluZyA/IGVuY3J5cHRGcmFtZShkYXRhKSA6IGRlY3J5cHRGcmFtZShkYXRhKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldl
YlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwCmlu
ZGV4IDEzMzMxYWNjMDQ0MGNkMDE3ODljNzMxNTgwZWI1NjkwNDFjMzgxY2QuLjMyM2MyODEzYzMy
NGVmZWU2OThmNGMwZTRiOWZmZmNjNzlkNGQ2YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFj
a2VuZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJy
dGMvTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcApAQCAtMjYwLDcgKzI2MCw3IEBA
IHZvaWQgTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpkb0NyZWF0ZU9mZmVyKFJUQ09m
ZmVyT3B0aW9ucyYmIG9wdGlvbnMpCiB2b2lkIExpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2Vu
ZDo6ZG9DcmVhdGVBbnN3ZXIoUlRDQW5zd2VyT3B0aW9ucyYmKQogewogICAgIGlmICghbV9pc1Jl
bW90ZURlc2NyaXB0aW9uU2V0KSB7Ci0gICAgICAgIGNyZWF0ZUFuc3dlckZhaWxlZChFeGNlcHRp
b24geyBJbnZhbGlkU3RhdGVFcnJvciwgIk5vIHJlbW90ZSBkZXNjcmlwdGlvbiBzZXQiIH0pOwor
ICAgICAgICBjcmVhdGVBbnN3ZXJGYWlsZWQoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3Is
ICJObyByZW1vdGUgZGVzY3JpcHRpb24gc2V0Il9zIH0pOwogICAgICAgICByZXR1cm47CiAgICAg
fQogICAgIG1fZW5kcG9pbnQtPmRvQ3JlYXRlQW5zd2VyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENSdHBUcmFuc2Nl
aXZlckJhY2tlbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3
ZWJydGMvTGliV2ViUlRDUnRwVHJhbnNjZWl2ZXJCYWNrZW5kLmNwcAppbmRleCBkMWY3M2FkN2Y0
NzhmNjA0NzI1YjA2MDk5ZmRlNjkwYzczZWQ1YjQ1Li40MTc2ZThkNmY3ODNhNTI1YTgwZjdhNjBl
YWRjNjdmNmJmZDcwMTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENSdHBUcmFuc2NlaXZlckJhY2tlbmQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1J0
cFRyYW5zY2VpdmVyQmFja2VuZC5jcHAKQEAgLTg5LDcgKzg5LDcgQEAgc3RhdGljIGlubGluZSBF
eGNlcHRpb25Pcjx3ZWJydGM6OlJ0cENvZGVjQ2FwYWJpbGl0eT4gdG9SdHBDb2RlY0NhcGFiaWxp
dHkoY29uc3QKICAgICBlbHNlIGlmIChjb2RlYy5taW1lVHlwZS5zdGFydHNXaXRoKCJhdWRpby8i
KSkKICAgICAgICAgcnRjQ29kZWMua2luZCA9IGNyaWNrZXQ6Ok1FRElBX1RZUEVfQVVESU87CiAg
ICAgZWxzZQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZE1vZGlmaWNhdGlvbkVy
cm9yLCAiUlRDUnRwQ29kZWNDYXBhYmlsaXR5IGJhZCBtaW1lVHlwZSIgfTsKKyAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRNb2RpZmljYXRpb25FcnJvciwgIlJUQ1J0cENvZGVjQ2Fw
YWJpbGl0eSBiYWQgbWltZVR5cGUiX3MgfTsKIAogICAgIHJ0Y0NvZGVjLm5hbWUgPSBjb2RlYy5t
aW1lVHlwZS5zdWJzdHJpbmcoNikudXRmOCgpLmRhdGEoKTsKICAgICBydGNDb2RlYy5jbG9ja19y
YXRlID0gY29kZWMuY2xvY2tSYXRlOwpAQCAtOTksNyArOTksNyBAQCBzdGF0aWMgaW5saW5lIEV4
Y2VwdGlvbk9yPHdlYnJ0Yzo6UnRwQ29kZWNDYXBhYmlsaXR5PiB0b1J0cENvZGVjQ2FwYWJpbGl0
eShjb25zdAogICAgIGZvciAoYXV0byBwYXJhbWV0ZXIgOiBTdHJpbmdWaWV3KGNvZGVjLnNkcEZt
dHBMaW5lKS5zcGxpdCgnOycpKSB7CiAgICAgICAgIGF1dG8gcG9zaXRpb24gPSBwYXJhbWV0ZXIu
ZmluZCgnPScpOwogICAgICAgICBpZiAocG9zaXRpb24gPT0gbm90Rm91bmQpCi0gICAgICAgICAg
ICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yLCAiUlRDUnRwQ29k
ZWNDYXBhYmlsaXR5IHNkcEZtdExpbmUgYmFkbHkgZm9ybWF0ZWQiIH07CisgICAgICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yLCAiUlRDUnRwQ29kZWND
YXBhYmlsaXR5IHNkcEZtdExpbmUgYmFkbHkgZm9ybWF0ZWQiX3MgfTsKICAgICAgICAgcnRjQ29k
ZWMucGFyYW1ldGVycy5lbXBsYWNlKHBhcmFtZXRlci5zdWJzdHJpbmcoMCwgcG9zaXRpb24pLnV0
ZjgoKS5kYXRhKCksIHBhcmFtZXRlci5zdWJzdHJpbmcocG9zaXRpb24gKyAxKS51dGY4KCkuZGF0
YSgpKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1V0aWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1V0aWxzLmNwcAppbmRleCA0NWU0ZDE3
MzYzZmYxYjY0MDdlM2MwOTljMGZjN2Y0MjgyZmE2OGIwLi45ZjE5NmYzNzhiYjc3NzY3M2NmNzEy
MGNhYTRmYjQ2NDUwMWY0YTg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENVdGlscy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDVXRpbHMuY3BwCkBAIC0z
NjAsNyArMzYwLDcgQEAgRXhjZXB0aW9uIHRvRXhjZXB0aW9uKGNvbnN0IHdlYnJ0Yzo6UlRDRXJy
b3ImIGVycm9yKQogewogICAgIEFTU0VSVCghZXJyb3Iub2soKSk7CiAKLSAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgdG9FeGNlcHRpb25Db2RlKGVycm9yLnR5cGUoKSksIGVycm9yLm1lc3NhZ2UoKSB9
OworICAgIHJldHVybiBFeGNlcHRpb24geyB0b0V4Y2VwdGlvbkNvZGUoZXJyb3IudHlwZSgpKSwg
U3RyaW5nIHsgZXJyb3IubWVzc2FnZSgpIH0gfTsKIH0KIAogc3RhdGljIGlubGluZSBSVENJY2VD
b21wb25lbnQgdG9SVENJY2VDb21wb25lbnQoaW50IGNvbXBvbmVudCkKQEAgLTQ1NSw3ICs0NTUs
NyBAQCBSZWZQdHI8UlRDRXJyb3I+IHRvUlRDRXJyb3IoY29uc3Qgd2VicnRjOjpSVENFcnJvciYg
cnRjRXJyb3IpCiAgICAgYXV0byBkZXRhaWwgPSB0b1JUQ0Vycm9yRGV0YWlsVHlwZShydGNFcnJv
ci5lcnJvcl9kZXRhaWwoKSk7CiAgICAgaWYgKCFkZXRhaWwpCiAgICAgICAgIHJldHVybiBudWxs
cHRyOwotICAgIHJldHVybiBSVENFcnJvcjo6Y3JlYXRlKCpkZXRhaWwsIHJ0Y0Vycm9yLm1lc3Nh
Z2UoKSk7CisgICAgcmV0dXJuIFJUQ0Vycm9yOjpjcmVhdGUoKmRldGFpbCwgU3RyaW5nIHsgcnRj
RXJyb3IubWVzc2FnZSgpIH0pOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvc2NlbmVraXQvU2NlbmVL
aXRNb2RlbExvYWRlclVTRC5tbSBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVu
dC9zY2VuZWtpdC9TY2VuZUtpdE1vZGVsTG9hZGVyVVNELm1tCmluZGV4IDA5ZWM4ZjYwM2U5ZDAy
MmIzNzhkZGEwZTQyN2ZlYzUyMWZkZDUyZDIuLmNhYjRiOGRlMjAyZTc3ZDcwMjgyYjU5NGExYmVm
YmQ3NWIwNmNiMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxl
bWVudC9zY2VuZWtpdC9TY2VuZUtpdE1vZGVsTG9hZGVyVVNELm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9zY2VuZWtpdC9TY2VuZUtpdE1vZGVsTG9hZGVyVVNE
Lm1tCkBAIC0xMDIsNyArMTAyLDcgQEAgc3RhdGljIFJldGFpblB0cjxOU1VSTD4gd3JpdGVUb1Rl
bXBvcmFyeUZpbGUoV2ViQ29yZTo6TW9kZWwmIG1vZGVsU291cmNlKQogICAgIC8vIGluaXRpYWxp
emVyIGJ1dCBjdXJyZW50bHkgdGhhdCBkb2VzIG5vdCB3b3JrLgogCiAgICAgRmlsZVN5c3RlbTo6
UGxhdGZvcm1GaWxlSGFuZGxlIGZpbGVIYW5kbGU7Ci0gICAgYXV0byBmaWxlUGF0aCA9IEZpbGVT
eXN0ZW06Om9wZW5UZW1wb3JhcnlGaWxlKCJNb2RlbEZpbGUiLCBmaWxlSGFuZGxlLCAiLnVzZHoi
KTsKKyAgICBhdXRvIGZpbGVQYXRoID0gRmlsZVN5c3RlbTo6b3BlblRlbXBvcmFyeUZpbGUoIk1v
ZGVsRmlsZSJfcywgZmlsZUhhbmRsZSwgIi51c2R6Il9zKTsKICAgICBBU1NFUlQoRmlsZVN5c3Rl
bTo6aXNIYW5kbGVWYWxpZChmaWxlSGFuZGxlKSk7CiAKICAgICBzaXplX3QgYnl0ZUNvdW50ID0g
RmlsZVN5c3RlbTo6d3JpdGVUb0ZpbGUoZmlsZUhhbmRsZSwgbW9kZWxTb3VyY2UuZGF0YSgpLT5t
YWtlQ29udGlndW91cygpLT5kYXRhKCksIG1vZGVsU291cmNlLmRhdGEoKS0+c2l6ZSgpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJl
cXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50
UmVxdWVzdC5jcHAKaW5kZXggZGYyYjVjMjY0ZjNhNWNlMmMxZTFjYjZiNzYzNDBhMDBmYTQwY2Nl
MC4uNDIyMzVlZWExYmZkMWNkMWI3MDcwYjY5MDk0ODQyY2Y2ZTkzNTRiNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVz
dC5jcHAKQEAgLTIxNiw3ICsyMTYsNyBAQCBzdGF0aWMgRXhjZXB0aW9uT3I8c3RkOjp0dXBsZTxT
dHJpbmcsIFZlY3RvcjxTdHJpbmc+Pj4gY2hlY2tBbmRDYW5vbmljYWxpemVEZXRhaQogCiAgICAg
ICAgICAgICAgICAgYXV0byBhZGRSZXN1bHQgPSBzZWVuU2hpcHBpbmdPcHRpb25JRHMuYWRkKHNo
aXBwaW5nT3B0aW9uLmlkKTsKICAgICAgICAgICAgICAgICBpZiAoIWFkZFJlc3VsdC5pc05ld0Vu
dHJ5KQotICAgICAgICAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAi
U2hpcHBpbmcgb3B0aW9uIElEcyBtdXN0IGJlIHVuaXF1ZS4iIH07CisgICAgICAgICAgICAgICAg
ICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJTaGlwcGluZyBvcHRpb24gSURzIG11
c3QgYmUgdW5pcXVlLiJfcyB9OwogCiAjaWYgRU5BQkxFKFBBWU1FTlRfUkVRVUVTVF9TRUxFQ1RF
RF9TSElQUElOR19PUFRJT04pCiAgICAgICAgICAgICAgICAgaWYgKHNoaXBwaW5nT3B0aW9uLnNl
bGVjdGVkKQpAQCAtMzc1LDcgKzM3NSw3IEBAIHZvaWQgUGF5bWVudFJlcXVlc3Q6OnNob3coRG9j
dW1lbnQmIGRvY3VtZW50LCBSZWZQdHI8RE9NUHJvbWlzZT4mJiBkZXRhaWxzUHJvbWlzCiAKICAg
ICBhdXRvKiB3aW5kb3cgPSBkb2N1bWVudC5mcmFtZSgpLT53aW5kb3coKTsKICAgICBpZiAoIXdp
bmRvdyB8fCAhd2luZG93LT5jb25zdW1lVHJhbnNpZW50QWN0aXZhdGlvbigpKSB7Ci0gICAgICAg
IHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IFNlY3VyaXR5RXJyb3IsICJzaG93KCkgbXVzdCBi
ZSB0cmlnZ2VyZWQgYnkgdXNlciBhY3RpdmF0aW9uLiIgfSk7CisgICAgICAgIHByb21pc2UucmVq
ZWN0KEV4Y2VwdGlvbiB7IFNlY3VyaXR5RXJyb3IsICJzaG93KCkgbXVzdCBiZSB0cmlnZ2VyZWQg
YnkgdXNlciBhY3RpdmF0aW9uLiJfcyB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9waWN0dXJlaW5waWN0dXJlL0hUTUxWaWRl
b0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGlj
dHVyZWlucGljdHVyZS9IVE1MVmlkZW9FbGVtZW50UGljdHVyZUluUGljdHVyZS5jcHAKaW5kZXgg
ZjJmMDIzMTAyNzQ1YjlmZDIzZThlOTQyZDYwOWE3ZTliZTA2MTBkOC4uYmJlMmNiYzhiOWNiYWU0
ZjJmYjBlYmRlOTRkNTk1YWY5ZDhmY2JiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9waWN0dXJlaW5waWN0dXJlL0hUTUxWaWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BpY3R1cmVpbnBpY3R1cmUvSFRNTFZpZGVv
RWxlbWVudFBpY3R1cmVJblBpY3R1cmUuY3BwCkBAIC04MSwyMyArODEsMjMgQEAgdm9pZCBIVE1M
VmlkZW9FbGVtZW50UGljdHVyZUluUGljdHVyZTo6cHJvdmlkZVBpY3R1cmVJblBpY3R1cmVUbyhI
VE1MVmlkZW9FbGVtZW4KIHZvaWQgSFRNTFZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmU6OnJl
cXVlc3RQaWN0dXJlSW5QaWN0dXJlKEhUTUxWaWRlb0VsZW1lbnQmIHZpZGVvRWxlbWVudCwgUmVm
PERlZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQogewogICAgIGlmICghc3VwcG9ydHNQaWN0dXJl
SW5QaWN0dXJlKCkpIHsKLSAgICAgICAgcHJvbWlzZS0+cmVqZWN0KE5vdFN1cHBvcnRlZEVycm9y
LCAiVGhlIFBpY3R1cmUtaW4tUGljdHVyZSBtb2RlIGlzIG5vdCBzdXBwb3J0ZWQuIik7CisgICAg
ICAgIHByb21pc2UtPnJlamVjdChOb3RTdXBwb3J0ZWRFcnJvciwgIlRoZSBQaWN0dXJlLWluLVBp
Y3R1cmUgbW9kZSBpcyBub3Qgc3VwcG9ydGVkLiJfcyk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKICAgICBpZiAodmlkZW9FbGVtZW50LnJlYWR5U3RhdGUoKSA9PSBIVE1MTWVkaWFFbGVtZW50
RW51bXM6OkhBVkVfTk9USElORykgewotICAgICAgICBwcm9taXNlLT5yZWplY3QoSW52YWxpZFN0
YXRlRXJyb3IsICJUaGUgdmlkZW8gZWxlbWVudCBpcyBub3QgcmVhZHkgdG8gZW50ZXIgdGhlIFBp
Y3R1cmUtaW4tUGljdHVyZSBtb2RlLiIpOworICAgICAgICBwcm9taXNlLT5yZWplY3QoSW52YWxp
ZFN0YXRlRXJyb3IsICJUaGUgdmlkZW8gZWxlbWVudCBpcyBub3QgcmVhZHkgdG8gZW50ZXIgdGhl
IFBpY3R1cmUtaW4tUGljdHVyZSBtb2RlLiJfcyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
ICAgICBpZiAoIXZpZGVvRWxlbWVudC52aWRlb1RyYWNrcygpIHx8ICF2aWRlb0VsZW1lbnQudmlk
ZW9UcmFja3MoKS0+bGVuZ3RoKCkpIHsKLSAgICAgICAgcHJvbWlzZS0+cmVqZWN0KEludmFsaWRT
dGF0ZUVycm9yLCAiVGhlIHZpZGVvIGVsZW1lbnQgZG9lcyBub3QgaGF2ZSBhIHZpZGVvIHRyYWNr
IG9yIGl0IGhhcyBub3QgZGV0ZWN0ZWQgYSB2aWRlbyB0cmFjayB5ZXQuIik7CisgICAgICAgIHBy
b21pc2UtPnJlamVjdChJbnZhbGlkU3RhdGVFcnJvciwgIlRoZSB2aWRlbyBlbGVtZW50IGRvZXMg
bm90IGhhdmUgYSB2aWRlbyB0cmFjayBvciBpdCBoYXMgbm90IGRldGVjdGVkIGEgdmlkZW8gdHJh
Y2sgeWV0LiJfcyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBib29sIHVzZXJBY3Rp
dmF0aW9uUmVxdWlyZWQgPSAhdmlkZW9FbGVtZW50LmRvY3VtZW50KCkucGljdHVyZUluUGljdHVy
ZUVsZW1lbnQoKTsKICAgICBpZiAodXNlckFjdGl2YXRpb25SZXF1aXJlZCAmJiAhVXNlckdlc3R1
cmVJbmRpY2F0b3I6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpKSB7Ci0gICAgICAgIHByb21pc2Ut
PnJlamVjdChOb3RBbGxvd2VkRXJyb3IsICJUaGUgcmVxdWVzdCBpcyBub3QgdHJpZ2dlcmVkIGJ5
IGEgdXNlciBhY3RpdmF0aW9uLiIpOworICAgICAgICBwcm9taXNlLT5yZWplY3QoTm90QWxsb3dl
ZEVycm9yLCAiVGhlIHJlcXVlc3QgaXMgbm90IHRyaWdnZXJlZCBieSBhIHVzZXIgYWN0aXZhdGlv
bi4iX3MpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0xMDgsNyArMTA4LDcgQEAgdm9p
ZCBIVE1MVmlkZW9FbGVtZW50UGljdHVyZUluUGljdHVyZTo6cmVxdWVzdFBpY3R1cmVJblBpY3R1
cmUoSFRNTFZpZGVvRWxlbWVudCYKICAgICB9CiAKICAgICBpZiAodmlkZW9FbGVtZW50UGljdHVy
ZUluUGljdHVyZS0+bV9lbnRlclBpY3R1cmVJblBpY3R1cmVQcm9taXNlIHx8IHZpZGVvRWxlbWVu
dFBpY3R1cmVJblBpY3R1cmUtPm1fZXhpdFBpY3R1cmVJblBpY3R1cmVQcm9taXNlKSB7Ci0gICAg
ICAgIHByb21pc2UtPnJlamVjdChOb3RBbGxvd2VkRXJyb3IsICJUaGUgdmlkZW8gZWxlbWVudCBp
cyBwcm9jZXNzaW5nIGEgUGljdHVyZS1pbi1QaWN0dXJlIHJlcXVlc3QuIik7CisgICAgICAgIHBy
b21pc2UtPnJlamVjdChOb3RBbGxvd2VkRXJyb3IsICJUaGUgdmlkZW8gZWxlbWVudCBpcyBwcm9j
ZXNzaW5nIGEgUGljdHVyZS1pbi1QaWN0dXJlIHJlcXVlc3QuIl9zKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIApAQCAtMTE2LDcgKzExNiw3IEBAIHZvaWQgSFRNTFZpZGVvRWxlbWVudFBpY3R1
cmVJblBpY3R1cmU6OnJlcXVlc3RQaWN0dXJlSW5QaWN0dXJlKEhUTUxWaWRlb0VsZW1lbnQmCiAg
ICAgICAgIHZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmUtPm1fZW50ZXJQaWN0dXJlSW5QaWN0
dXJlUHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSk7CiAgICAgICAgIHZpZGVvRWxlbWVudC53ZWJr
aXRTZXRQcmVzZW50YXRpb25Nb2RlKEhUTUxWaWRlb0VsZW1lbnQ6OlZpZGVvUHJlc2VudGF0aW9u
TW9kZTo6UGljdHVyZUluUGljdHVyZSk7CiAgICAgfSBlbHNlCi0gICAgICAgIHByb21pc2UtPnJl
amVjdChOb3RTdXBwb3J0ZWRFcnJvciwgIlRoZSB2aWRlbyBlbGVtZW50IGRvZXMgbm90IHN1cHBv
cnQgdGhlIFBpY3R1cmUtaW4tUGljdHVyZSBtb2RlLiIpOworICAgICAgICBwcm9taXNlLT5yZWpl
Y3QoTm90U3VwcG9ydGVkRXJyb3IsICJUaGUgdmlkZW8gZWxlbWVudCBkb2VzIG5vdCBzdXBwb3J0
IHRoZSBQaWN0dXJlLWluLVBpY3R1cmUgbW9kZS4iX3MpOwogfQogCiBib29sIEhUTUxWaWRlb0Vs
ZW1lbnRQaWN0dXJlSW5QaWN0dXJlOjphdXRvUGljdHVyZUluUGljdHVyZShIVE1MVmlkZW9FbGVt
ZW50JiB2aWRlb0VsZW1lbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Bs
dWdpbnMvWW91VHViZVBsdWdpblJlcGxhY2VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvcGx1Z2lucy9Zb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQuY3BwCmluZGV4IDk3OWYyMjQ1OTA3
MjBmODI5MzM1ZDYwYTNhOGQ4YWU1YzNiNzIyNDMuLmRkMTZmODkzZjJkNjk1MmNjNWYwMDMwOGY5
ZDBkOTlhYjhiMGU4YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lu
cy9Zb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvcGx1Z2lucy9Zb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQuY3BwCkBAIC04NCwxNiArODQsMTYg
QEAgYXV0byBZb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQ6Omluc3RhbGxSZXBsYWNlbWVudChTaGFk
b3dSb290JiByb290KSAtPiBJbnN0YWxsUmUKICAgICByb290LmFwcGVuZENoaWxkKCptX2VtYmVk
U2hhZG93RWxlbWVudCk7CiAKICAgICBhdXRvIGlmcmFtZUVsZW1lbnQgPSBIVE1MSUZyYW1lRWxl
bWVudDo6Y3JlYXRlKEhUTUxOYW1lczo6aWZyYW1lVGFnLCBtX3BhcmVudEVsZW1lbnQtPmRvY3Vt
ZW50KCkpOwotICAgIGlmIChtX2F0dHJpYnV0ZXMuY29udGFpbnMoIndpZHRoIikpCisgICAgaWYg
KG1fYXR0cmlidXRlcy5jb250YWlucygid2lkdGgiX3MpKQogICAgICAgICBpZnJhbWVFbGVtZW50
LT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKEhUTUxOYW1lczo6d2lkdGhBdHRy
LCBBdG9tU3RyaW5nKCIxMDAlIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsK
IAotICAgIGNvbnN0IGF1dG8mIGhlaWdodFZhbHVlID0gbV9hdHRyaWJ1dGVzLmZpbmQoImhlaWdo
dCIpOworICAgIGNvbnN0IGF1dG8mIGhlaWdodFZhbHVlID0gbV9hdHRyaWJ1dGVzLmZpbmQoImhl
aWdodCJfcyk7CiAgICAgaWYgKGhlaWdodFZhbHVlICE9IG1fYXR0cmlidXRlcy5lbmQoKSkgewog
ICAgICAgICBpZnJhbWVFbGVtZW50LT5zZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjpzdHlsZUF0dHIs
IEF0b21TdHJpbmcoIm1heC1oZWlnaHQ6IDEwMCUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9t
TGl0ZXJhbCkpOwogICAgICAgICBpZnJhbWVFbGVtZW50LT5zZXRBdHRyaWJ1dGVXaXRob3V0U3lu
Y2hyb25pemF0aW9uKEhUTUxOYW1lczo6aGVpZ2h0QXR0ciwgaGVpZ2h0VmFsdWUtPnZhbHVlKTsK
ICAgICB9CiAKLSAgICBpZnJhbWVFbGVtZW50LT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25p
emF0aW9uKEhUTUxOYW1lczo6c3JjQXR0ciwgeW91VHViZVVSTChtX2F0dHJpYnV0ZXMuZ2V0KCJz
cmMiKSkpOworICAgIGlmcmFtZUVsZW1lbnQtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6
YXRpb24oSFRNTE5hbWVzOjpzcmNBdHRyLCB5b3VUdWJlVVJMKG1fYXR0cmlidXRlcy5nZXQoInNy
YyJfcykpKTsKICAgICBpZnJhbWVFbGVtZW50LT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25p
emF0aW9uKEhUTUxOYW1lczo6ZnJhbWVib3JkZXJBdHRyLCBBdG9tU3RyaW5nKCIwIiwgQXRvbVN0
cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICAKICAgICAvLyBEaXNhYmxlIGZyYW1l
IGZsYXR0ZW5pbmcgZm9yIHRoaXMgaWZyYW1lLgpAQCAtMjMxLDExICsyMzEsMTEgQEAgc3RhdGlj
IFVSTCBwcm9jZXNzQW5kQ3JlYXRlWW91VHViZVVSTChjb25zdCBVUkwmIHVybCwgYm9vbCYgaXNZ
b3VUdWJlU2hvcnRlbmVkVVIKICAgICBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2Uo
cGF0aCwgIi93YXRjaCIpKSB7CiAgICAgICAgIGlmICghcXVlcnkuaXNFbXB0eSgpKSB7CiAgICAg
ICAgICAgICBjb25zdCBhdXRvJiBxdWVyeURpY3Rpb25hcnkgPSBxdWVyeUtleXNBbmRWYWx1ZXMo
cXVlcnkpOwotICAgICAgICAgICAgU3RyaW5nIHZpZGVvSUQgPSB2YWx1ZUZvcktleShxdWVyeURp
Y3Rpb25hcnksICJ2Iik7CisgICAgICAgICAgICBTdHJpbmcgdmlkZW9JRCA9IHZhbHVlRm9yS2V5
KHF1ZXJ5RGljdGlvbmFyeSwgInYiX3MpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAo
IXZpZGVvSUQuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICAgICAgY29uc3QgYXV0byYgZnJhZ21l
bnREaWN0aW9uYXJ5ID0gcXVlcnlLZXlzQW5kVmFsdWVzKHVybC5mcmFnbWVudElkZW50aWZpZXIo
KSk7Ci0gICAgICAgICAgICAgICAgU3RyaW5nIHRpbWVJRCA9IHZhbHVlRm9yS2V5KGZyYWdtZW50
RGljdGlvbmFyeSwgInQiKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgdGltZUlEID0gdmFsdWVG
b3JLZXkoZnJhZ21lbnREaWN0aW9uYXJ5LCAidCJfcyk7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IGNyZWF0ZVlvdVR1YmVVUkwodmlkZW9JRCwgdGltZUlEKTsKICAgICAgICAgICAgIH0KICAgICAg
ICAgfQpAQCAtMjQ2LDEwICsyNDYsMTAgQEAgc3RhdGljIFVSTCBwcm9jZXNzQW5kQ3JlYXRlWW91
VHViZVVSTChjb25zdCBVUkwmIHVybCwgYm9vbCYgaXNZb3VUdWJlU2hvcnRlbmVkVVIKICAgICAg
ICAgICAgIAogICAgICAgICAgICAgaWYgKCFxdWVyeS5pc0VtcHR5KCkpIHsKICAgICAgICAgICAg
ICAgICBjb25zdCBhdXRvJiBxdWVyeURpY3Rpb25hcnkgPSBxdWVyeUtleXNBbmRWYWx1ZXMocXVl
cnkpOwotICAgICAgICAgICAgICAgIFN0cmluZyB2aWRlb0lEID0gdmFsdWVGb3JLZXkocXVlcnlE
aWN0aW9uYXJ5LCAidiIpOworICAgICAgICAgICAgICAgIFN0cmluZyB2aWRlb0lEID0gdmFsdWVG
b3JLZXkocXVlcnlEaWN0aW9uYXJ5LCAidiJfcyk7CiAgICAgICAgICAgICAgICAgCiAgICAgICAg
ICAgICAgICAgaWYgKCF2aWRlb0lELmlzRW1wdHkoKSkgewotICAgICAgICAgICAgICAgICAgICBT
dHJpbmcgdGltZUlEID0gdmFsdWVGb3JLZXkocXVlcnlEaWN0aW9uYXJ5LCAidCIpOworICAgICAg
ICAgICAgICAgICAgICBTdHJpbmcgdGltZUlEID0gdmFsdWVGb3JLZXkocXVlcnlEaWN0aW9uYXJ5
LCAidCJfcyk7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVZb3VUdWJlVVJMKHZp
ZGVvSUQsIHRpbWVJRCk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0
dXJlU291cmNlSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmNwcAppbmRleCBjMjNhOGQ2N2NiNDgxMjMzZjdj
YjRiNTE5YjEzNmIyMjE5MDZiZWJlLi42MDc1M2ZlY2UzNWEyOWY4OGU5MjYyMGEyMGI4MDlhZmU5
NmNjNzIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hS
ZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmNwcApAQCAtOTIs
NyArOTIsNyBAQCBib29sIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6OnVwZGF0
ZURhdGFTb3VyY2UoY29uc3QgQ0FBdWRpb1N0cmVhbURlcwogICAgIGlmIChkYXRhU291cmNlLT5z
ZXRJbnB1dEZvcm1hdChhdWRpb0Rlc2NyaXB0aW9uKSkgewogICAgICAgICBjYWxsT25NYWluVGhy
ZWFkKFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9XSB7CiAgICAgICAgICAgICBp
ZiAod2Vha1RoaXMpCi0gICAgICAgICAgICAgICAgbV9zdGF0ZVVwZGF0ZUNhbGxiYWNrKFNwZWVj
aFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihtX2NsaWVudElkZW50aWZpZXIsIFNwZWVj
aFJlY29nbml0aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0
dXJlLCAiVW5hYmxlIHRvIHNldCBpbnB1dCBmb3JtYXQiIH0pKTsKKyAgICAgICAgICAgICAgICBt
X3N0YXRlVXBkYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZUVycm9y
KG1fY2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25FcnJvciB7IFNwZWVjaFJlY29n
bml0aW9uRXJyb3JUeXBlOjpBdWRpb0NhcHR1cmUsICJVbmFibGUgdG8gc2V0IGlucHV0IGZvcm1h
dCJfcyB9KSk7CiAgICAgICAgIH0pOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpAQCAt
MTAwLDcgKzEwMCw3IEBAIGJvb2wgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbDo6
dXBkYXRlRGF0YVNvdXJjZShjb25zdCBDQUF1ZGlvU3RyZWFtRGVzCiAgICAgaWYgKGRhdGFTb3Vy
Y2UtPnNldE91dHB1dEZvcm1hdChhdWRpb0Rlc2NyaXB0aW9uKSkgewogICAgICAgICBjYWxsT25N
YWluVGhyZWFkKFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9XSB7CiAgICAgICAg
ICAgICBpZiAod2Vha1RoaXMpCi0gICAgICAgICAgICAgICAgbV9zdGF0ZVVwZGF0ZUNhbGxiYWNr
KFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihtX2NsaWVudElkZW50aWZpZXIs
IFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVk
aW9DYXB0dXJlLCAiVW5hYmxlIHRvIHNldCBvdXRwdXQgZm9ybWF0IiB9KSk7CisgICAgICAgICAg
ICAgICAgbV9zdGF0ZVVwZGF0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVh
dGVFcnJvcihtX2NsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBTcGVl
Y2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCAiVW5hYmxlIHRvIHNldCBvdXRw
dXQgZm9ybWF0Il9zIH0pKTsKICAgICAgICAgfSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICB9CkBAIC0xNTcsMTMgKzE1NywxMyBAQCB2b2lkIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNv
dXJjZUltcGw6OnNvdXJjZVN0b3BwZWQoKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7
CiAgICAgQVNTRVJUKG1fc291cmNlLT5jYXB0dXJlRGlkRmFpbCgpKTsKLSAgICBtX3N0YXRlVXBk
YXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZUVycm9yKG1fY2xpZW50
SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25FcnJvciB7IFNwZWVjaFJlY29nbml0aW9uRXJy
b3JUeXBlOjpBdWRpb0NhcHR1cmUsICJTb3VyY2UgaXMgc3RvcHBlZCIgfSkpOworICAgIG1fc3Rh
dGVVcGRhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IobV9j
bGllbnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRp
b25FcnJvclR5cGU6OkF1ZGlvQ2FwdHVyZSwgIlNvdXJjZSBpcyBzdG9wcGVkIl9zIH0pKTsKIH0K
IAogdm9pZCBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjpzb3VyY2VNdXRlZENo
YW5nZWQoKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0gICAgbV9zdGF0ZVVwZGF0
ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihtX2NsaWVudElk
ZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9y
VHlwZTo6QXVkaW9DYXB0dXJlLCAiU291cmNlIGlzIG11dGVkIiB9KSk7CisgICAgbV9zdGF0ZVVw
ZGF0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihtX2NsaWVu
dElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVy
cm9yVHlwZTo6QXVkaW9DYXB0dXJlLCAiU291cmNlIGlzIG11dGVkIl9zIH0pKTsKIH0KIAogdm9p
ZCBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjptdXRlKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL2NvY29hL1dlYlNwZWVjaFJlY29nbml6ZXJU
YXNrTW9jay5tbSBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL2NvY29hL1dlYlNwZWVj
aFJlY29nbml6ZXJUYXNrTW9jay5tbQppbmRleCAyZDM0OGVkMjBjMjFiNTEwMzQ4ODc5ZDVjMjYz
ZmMwZTNjZmVkODZiLi5iZWYzYTUyMjUxN2Y0YzJlMzJmNTgzMjNkYTk4NDMwYmIwZDE5NWI2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9jb2NvYS9XZWJTcGVlY2hS
ZWNvZ25pemVyVGFza01vY2subW0KKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gv
Y29jb2EvV2ViU3BlZWNoUmVjb2duaXplclRhc2tNb2NrLm1tCkBAIC02MSw3ICs2MSw3IEBAIC0g
KHZvaWQpYXVkaW9TYW1wbGVzQXZhaWxhYmxlOihDTVNhbXBsZUJ1ZmZlclJlZilzYW1wbGVCdWZm
ZXIKICAgICB9CiAKICAgICAvLyBGYWtlIHNvbWUgcmVjb2duaXRpb24gcmVzdWx0cy4KLSAgICBX
ZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0YSBhbHRlcm5hdGl2ZSB7ICJU
ZXN0IiwgMS4wIH07CisgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURh
dGEgYWx0ZXJuYXRpdmUgeyAiVGVzdCJfcywgMS4wIH07CiAgICAgX2RlbGVnYXRlQ2FsbGJhY2so
V2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZVJlc3VsdChfaWRlbnRpZmll
ciwgeyBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEgeyB7IFdURk1vdmUoYWx0
ZXJuYXRpdmUpIH0sIHRydWUgfSB9KSk7CiAKICAgICBpZiAoIV9kb011bHRpcGxlUmVjb2duaXRp
b25zKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdG9yYWdlL1N0b3JhZ2VN
YW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RvcmFnZS9TdG9yYWdlTWFuYWdl
ci5jcHAKaW5kZXggMTg4ZDMwYjYxOThiMTYxZTFiNDdhZTk3NjhlMGMxZTk1NzY2NTNhYi4uNjM2
YjQ4YzlmMDQ3OWJjNWFlMzE5NGVhMWU4OTA1Njk2NTcxN2E0NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3N0b3JhZ2UvU3RvcmFnZU1hbmFnZXIuY3BwCkBAIC03Miw3ICs3Miw3
IEBAIHN0YXRpYyBFeGNlcHRpb25PcjxDb25uZWN0aW9uSW5mbz4gY29ubmVjdGlvbkluZm8oTmF2
aWdhdG9yQmFzZSogbmF2aWdhdG9yKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxp
ZFN0YXRlRXJyb3IsICJPcmlnaW4gaXMgaW52YWxpZCJfcyB9OwogCiAgICAgaWYgKCFvcmlnaW4t
PmNhbkFjY2Vzc1N0b3JhZ2VNYW5hZ2VyKCkpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBU
eXBlRXJyb3IsICJPcmlnaW4gc2hvdWxkIG5vdCBhY2Nlc3Mgc3RvcmFnZSIgfTsKKyAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIk9yaWdpbiBzaG91bGQgbm90IGFjY2VzcyBz
dG9yYWdlIl9zIH07CiAKICAgICBpZiAoaXM8RG9jdW1lbnQ+KGNvbnRleHQpKSB7CiAgICAgICAg
IGlmIChhdXRvKiBjb25uZWN0aW9uID0gZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpLT5zdG9y
YWdlQ29ubmVjdGlvbigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWIt
bG9ja3MvV2ViTG9ja01hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWItbG9j
a3MvV2ViTG9ja01hbmFnZXIuY3BwCmluZGV4IDIxOTk5MmY2YjViMTRjNWI2MDI3NTQ1NmFkZGIw
ODU3Nzg2ZTEyNWYuLmExNjFiM2QyYzA1YzNmNDljOWIwYThmOWU2OTY2ZDQ1YmFhZGVmZWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNYW5hZ2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrTWFuYWdl
ci5jcHAKQEAgLTMzOCw3ICszMzgsNyBAQCB2b2lkIFdlYkxvY2tNYW5hZ2VyOjpzaWduYWxUb0Fi
b3J0VGhlUmVxdWVzdChXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmllcikKICAgICAgICAg
aWYgKHdhc0Fib3J0ZWQgJiYgd2Vha1RoaXMpCiAgICAgICAgICAgICB3ZWFrVGhpcy0+bV9wZW5k
aW5nUmVxdWVzdHMucmVtb3ZlKGxvY2tJZGVudGlmaWVyKTsKICAgICB9KTsKLSAgICBzZXR0bGVS
ZWxlYXNlUHJvbWlzZShsb2NrSWRlbnRpZmllciwgRXhjZXB0aW9uIHsgQWJvcnRFcnJvciwgIkxv
Y2sgcmVxdWVzdCB3YXMgYWJvcnRlZCB2aWEgQWJvcnRTaWduYWwiIH0pOworICAgIHNldHRsZVJl
bGVhc2VQcm9taXNlKGxvY2tJZGVudGlmaWVyLCBFeGNlcHRpb24geyBBYm9ydEVycm9yLCAiTG9j
ayByZXF1ZXN0IHdhcyBhYm9ydGVkIHZpYSBBYm9ydFNpZ25hbCJfcyB9KTsKIH0KIAogdm9pZCBX
ZWJMb2NrTWFuYWdlcjo6c2V0dGxlUmVsZWFzZVByb21pc2UoV2ViTG9ja0lkZW50aWZpZXIgbG9j
a0lkZW50aWZpZXIsIEV4Y2VwdGlvbk9yPEpTQzo6SlNWYWx1ZT4mJiByZXN1bHQpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTGlzdGVuZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0xpc3RlbmVyLmNwcAppbmRleCAw
MjBlNzZmNDM2NGU2ZGVmOGY4MTcyNGRiN2MyZmQ4YWU1NzAyMTc5Li43NmM3NmQ3NTQ0ZTcwYzlh
Y2QzYmRkZjk2ZjM0YzhhYzZiYTlmZGZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0F1ZGlvTGlzdGVuZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9MaXN0ZW5lci5jcHAKQEAgLTQwLDE1ICs0MCwxNSBAQAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBBdWRpb0xpc3RlbmVyOjpBdWRpb0xpc3RlbmVyKEJhc2VBdWRpb0Nv
bnRleHQmIGNvbnRleHQpCi0gICAgOiBtX3Bvc2l0aW9uWChBdWRpb1BhcmFtOjpjcmVhdGUoY29u
dGV4dCwgInBvc2l0aW9uWCIsIDAuMCwgLUZMVF9NQVgsIEZMVF9NQVgsIEF1dG9tYXRpb25SYXRl
OjpBUmF0ZSkpCi0gICAgLCBtX3Bvc2l0aW9uWShBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCwg
InBvc2l0aW9uWSIsIDAuMCwgLUZMVF9NQVgsIEZMVF9NQVgsIEF1dG9tYXRpb25SYXRlOjpBUmF0
ZSkpCi0gICAgLCBtX3Bvc2l0aW9uWihBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCwgInBvc2l0
aW9uWiIsIDAuMCwgLUZMVF9NQVgsIEZMVF9NQVgsIEF1dG9tYXRpb25SYXRlOjpBUmF0ZSkpCi0g
ICAgLCBtX2ZvcndhcmRYKEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0LCAiZm9yd2FyZFgiLCAw
LjAsIC1GTFRfTUFYLCBGTFRfTUFYLCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQotICAgICwgbV9m
b3J3YXJkWShBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCwgImZvcndhcmRZIiwgMC4wLCAtRkxU
X01BWCwgRkxUX01BWCwgQXV0b21hdGlvblJhdGU6OkFSYXRlKSkKLSAgICAsIG1fZm9yd2FyZFoo
QXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJmb3J3YXJkWiIsIC0xLjAsIC1GTFRfTUFYLCBG
TFRfTUFYLCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQotICAgICwgbV91cFgoQXVkaW9QYXJhbTo6
Y3JlYXRlKGNvbnRleHQsICJ1cFgiLCAwLjAsIC1GTFRfTUFYLCBGTFRfTUFYLCBBdXRvbWF0aW9u
UmF0ZTo6QVJhdGUpKQotICAgICwgbV91cFkoQXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJ1
cFkiLCAxLjAsIC1GTFRfTUFYLCBGTFRfTUFYLCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQotICAg
ICwgbV91cFooQXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJ1cFoiLCAwLjAsIC1GTFRfTUFY
LCBGTFRfTUFYLCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQorICAgIDogbV9wb3NpdGlvblgoQXVk
aW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJwb3NpdGlvblgiX3MsIDAuMCwgLUZMVF9NQVgsIEZM
VF9NQVgsIEF1dG9tYXRpb25SYXRlOjpBUmF0ZSkpCisgICAgLCBtX3Bvc2l0aW9uWShBdWRpb1Bh
cmFtOjpjcmVhdGUoY29udGV4dCwgInBvc2l0aW9uWSJfcywgMC4wLCAtRkxUX01BWCwgRkxUX01B
WCwgQXV0b21hdGlvblJhdGU6OkFSYXRlKSkKKyAgICAsIG1fcG9zaXRpb25aKEF1ZGlvUGFyYW06
OmNyZWF0ZShjb250ZXh0LCAicG9zaXRpb25aIl9zLCAwLjAsIC1GTFRfTUFYLCBGTFRfTUFYLCBB
dXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQorICAgICwgbV9mb3J3YXJkWChBdWRpb1BhcmFtOjpjcmVh
dGUoY29udGV4dCwgImZvcndhcmRYIl9zLCAwLjAsIC1GTFRfTUFYLCBGTFRfTUFYLCBBdXRvbWF0
aW9uUmF0ZTo6QVJhdGUpKQorICAgICwgbV9mb3J3YXJkWShBdWRpb1BhcmFtOjpjcmVhdGUoY29u
dGV4dCwgImZvcndhcmRZIl9zLCAwLjAsIC1GTFRfTUFYLCBGTFRfTUFYLCBBdXRvbWF0aW9uUmF0
ZTo6QVJhdGUpKQorICAgICwgbV9mb3J3YXJkWihBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCwg
ImZvcndhcmRaIl9zLCAtMS4wLCAtRkxUX01BWCwgRkxUX01BWCwgQXV0b21hdGlvblJhdGU6OkFS
YXRlKSkKKyAgICAsIG1fdXBYKEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0LCAidXBYIl9zLCAw
LjAsIC1GTFRfTUFYLCBGTFRfTUFYLCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQorICAgICwgbV91
cFkoQXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJ1cFkiX3MsIDEuMCwgLUZMVF9NQVgsIEZM
VF9NQVgsIEF1dG9tYXRpb25SYXRlOjpBUmF0ZSkpCisgICAgLCBtX3VwWihBdWRpb1BhcmFtOjpj
cmVhdGUoY29udGV4dCwgInVwWiJfcywgMC4wLCAtRkxUX01BWCwgRkxUX01BWCwgQXV0b21hdGlv
blJhdGU6OkFSYXRlKSkKICAgICAsIG1fcG9zaXRpb25YVmFsdWVzKEF1ZGlvVXRpbGl0aWVzOjpy
ZW5kZXJRdWFudHVtU2l6ZSkKICAgICAsIG1fcG9zaXRpb25ZVmFsdWVzKEF1ZGlvVXRpbGl0aWVz
OjpyZW5kZXJRdWFudHVtU2l6ZSkKICAgICAsIG1fcG9zaXRpb25aVmFsdWVzKEF1ZGlvVXRpbGl0
aWVzOjpyZW5kZXJRdWFudHVtU2l6ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vQXVkaW9QYXJhbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL0F1ZGlvUGFyYW0uY3BwCmluZGV4IGJlMTJiYjVhYTAyN2U1M2ExMzQ2ODQ3ZTZjOTkzYzIz
ZjlmMDE4OTguLjBkNDZhM2Y5MDRjYzRkMDkzODhiNGZiMDEyMzNjYjYwOGVjN2Y2ZDIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtLmNwcApAQCAtMTA5
LDcgKzEwOSw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEF1ZGlvUGFyYW06OnNldFZhbHVlRm9yQmlu
ZGluZ3MoZmxvYXQgdmFsdWUpCiBFeGNlcHRpb25Pcjx2b2lkPiBBdWRpb1BhcmFtOjpzZXRBdXRv
bWF0aW9uUmF0ZShBdXRvbWF0aW9uUmF0ZSBhdXRvbWF0aW9uUmF0ZSkKIHsKICAgICBpZiAobV9h
dXRvbWF0aW9uUmF0ZU1vZGUgPT0gQXV0b21hdGlvblJhdGVNb2RlOjpGaXhlZCkKLSAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiYXV0b21hdGlvblJhdGUgY2Fu
bm90IGJlIGNoYW5nZWQgZm9yIHRoaXMgbm9kZSIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlv
biB7IEludmFsaWRTdGF0ZUVycm9yLCAiYXV0b21hdGlvblJhdGUgY2Fubm90IGJlIGNoYW5nZWQg
Zm9yIHRoaXMgbm9kZSJfcyB9OwogCiAgICAgbV9hdXRvbWF0aW9uUmF0ZSA9IGF1dG9tYXRpb25S
YXRlOwogICAgIHJldHVybiB7IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvUGFyYW1UaW1lbGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvUGFyYW1UaW1lbGluZS5jcHAKaW5kZXggZTU5YWE3ZTZkODQyZmFlYmZk
YzM4YTA1OWVjOTVjODE5M2U1NDZhNi4uY2MzNGRjMzRlNTA3MWQ3NGJkNTJjMWRiNjg4YmM5ZjIx
NDhlNTNkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRp
b1BhcmFtVGltZWxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8v
QXVkaW9QYXJhbVRpbWVsaW5lLmNwcApAQCAtMTcyLDcgKzE3Miw3IEBAIEV4Y2VwdGlvbk9yPHZv
aWQ+IEF1ZGlvUGFyYW1UaW1lbGluZTo6aW5zZXJ0RXZlbnQoUGFyYW1FdmVudCYmIGV2ZW50KQog
ICAgICAgICAgICAgLy8gT3RoZXJ3aXNlLCBtYWtlIHN1cmUgdGhpcyBldmVudCBkb2Vzbid0IG92
ZXJsYXAgYW55IGV4aXN0aW5nIFNldFZhbHVlQ3VydmUgZXZlbnQuCiAgICAgICAgICAgICBhdXRv
IHBhcmVudEV2ZW50RW5kVGltZSA9IHBhcmFtRXZlbnQudGltZSgpICsgcGFyYW1FdmVudC5kdXJh
dGlvbigpOwogICAgICAgICAgICAgaWYgKGV2ZW50LnRpbWUoKSA+PSBwYXJhbUV2ZW50LnRpbWUo
KSAmJiBldmVudC50aW1lKCkgPCBwYXJlbnRFdmVudEVuZFRpbWUpCi0gICAgICAgICAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yLCAiRXZlbnRzIGFyZSBvdmVybGFw
cGluZyIgfTsKKyAgICAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVk
RXJyb3IsICJFdmVudHMgYXJlIG92ZXJsYXBwaW5nIl9zIH07CiAgICAgICAgIH0KIAogICAgICAg
ICBpZiAocGFyYW1FdmVudC50aW1lKCkgPiBpbnNlcnRUaW1lKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CaXF1YWRGaWx0ZXJOb2RlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmlxdWFkRmlsdGVyTm9kZS5jcHAKaW5kZXggMTQwZWQw
YTI2ZTU3NTUxNzAxNGFjMzNhNjQzMTU1ODkwOWMwMjcyYy4uNWQ3MzZjZmNiMjU1OTE4Zjg5NzVk
N2IzYjFmNzhmYjBiMDM0NTE2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdWRpby9CaXF1YWRGaWx0ZXJOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL0JpcXVhZEZpbHRlck5vZGUuY3BwCkBAIC03NCw3ICs3NCw3IEBAIEV4Y2VwdGlv
bk9yPHZvaWQ+IEJpcXVhZEZpbHRlck5vZGU6OmdldEZyZXF1ZW5jeVJlc3BvbnNlKGNvbnN0IFJl
ZjxGbG9hdDMyQXJyYXk+CiB7CiAgICAgdW5zaWduZWQgbGVuZ3RoID0gZnJlcXVlbmN5SHotPmxl
bmd0aCgpOwogICAgIGlmIChtYWdSZXNwb25zZS0+bGVuZ3RoKCkgIT0gbGVuZ3RoIHx8IHBoYXNl
UmVzcG9uc2UtPmxlbmd0aCgpICE9IGxlbmd0aCkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7
IEludmFsaWRBY2Nlc3NFcnJvciwgIlRoZSBhcnJheXMgcGFzc2VkIGFzIGFyZ3VtZW50cyBtdXN0
IGhhdmUgdGhlIHNhbWUgbGVuZ3RoIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52
YWxpZEFjY2Vzc0Vycm9yLCAiVGhlIGFycmF5cyBwYXNzZWQgYXMgYXJndW1lbnRzIG11c3QgaGF2
ZSB0aGUgc2FtZSBsZW5ndGgiX3MgfTsKIAogICAgIGlmIChsZW5ndGgpCiAgICAgICAgIGJpcXVh
ZFByb2Nlc3NvcigpLT5nZXRGcmVxdWVuY3lSZXNwb25zZShsZW5ndGgsIGZyZXF1ZW5jeUh6LT5k
YXRhKCksIG1hZ1Jlc3BvbnNlLT5kYXRhKCksIHBoYXNlUmVzcG9uc2UtPmRhdGEoKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0JpcXVhZFByb2Nlc3Nvci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0JpcXVhZFByb2Nlc3Nvci5jcHAK
aW5kZXggOWRmNjI5ZDdlYmZkZDZmYjc0MTVmM2ViNzc5NzI2YmJhYmNhOGYxYy4uZjlhNTQzNGU4
ODA1ZDdkZTQ5MThhNmZiZDg3NTRkMWE1ZWQyNzIxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9CaXF1YWRQcm9jZXNzb3IuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQmlxdWFkUHJvY2Vzc29yLmNwcApAQCAtMzUsMTAgKzM1LDEw
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAKIEJpcXVhZFByb2Nlc3Nvcjo6QmlxdWFkUHJv
Y2Vzc29yKEJhc2VBdWRpb0NvbnRleHQmIGNvbnRleHQsIGZsb2F0IHNhbXBsZVJhdGUsIHNpemVf
dCBudW1iZXJPZkNoYW5uZWxzLCBib29sIGF1dG9Jbml0aWFsaXplKQogICAgIDogQXVkaW9EU1BL
ZXJuZWxQcm9jZXNzb3Ioc2FtcGxlUmF0ZSwgbnVtYmVyT2ZDaGFubmVscykKLSAgICAsIG1fcGFy
YW1ldGVyMShBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCwgImZyZXF1ZW5jeSIsIDM1MC4wLCAw
LjAsIDAuNSAqIHNhbXBsZVJhdGUsIEF1dG9tYXRpb25SYXRlOjpBUmF0ZSkpCi0gICAgLCBtX3Bh
cmFtZXRlcjIoQXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJRIiwgMSwgLUZMVF9NQVgsIEZM
VF9NQVgsIEF1dG9tYXRpb25SYXRlOjpBUmF0ZSkpCi0gICAgLCBtX3BhcmFtZXRlcjMoQXVkaW9Q
YXJhbTo6Y3JlYXRlKGNvbnRleHQsICJnYWluIiwgMC4wLCAtRkxUX01BWCwgNDAgKiBzdGQ6Omxv
ZzEwKHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+OjptYXgoKSksIEF1dG9tYXRpb25SYXRlOjpB
UmF0ZSkpCi0gICAgLCBtX3BhcmFtZXRlcjQoQXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJk
ZXR1bmUiLCAwLjAsIC0xNTM2MDAsIDE1MzYwMCwgQXV0b21hdGlvblJhdGU6OkFSYXRlKSkKKyAg
ICAsIG1fcGFyYW1ldGVyMShBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCwgImZyZXF1ZW5jeSJf
cywgMzUwLjAsIDAuMCwgMC41ICogc2FtcGxlUmF0ZSwgQXV0b21hdGlvblJhdGU6OkFSYXRlKSkK
KyAgICAsIG1fcGFyYW1ldGVyMihBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCwgIlEiX3MsIDEs
IC1GTFRfTUFYLCBGTFRfTUFYLCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQorICAgICwgbV9wYXJh
bWV0ZXIzKEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0LCAiZ2FpbiJfcywgMC4wLCAtRkxUX01B
WCwgNDAgKiBzdGQ6OmxvZzEwKHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+OjptYXgoKSksIEF1
dG9tYXRpb25SYXRlOjpBUmF0ZSkpCisgICAgLCBtX3BhcmFtZXRlcjQoQXVkaW9QYXJhbTo6Y3Jl
YXRlKGNvbnRleHQsICJkZXR1bmUiX3MsIDAuMCwgLTE1MzYwMCwgMTUzNjAwLCBBdXRvbWF0aW9u
UmF0ZTo6QVJhdGUpKQogewogICAgIGlmIChhdXRvSW5pdGlhbGl6ZSkKICAgICAgICAgaW5pdGlh
bGl6ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9EZWxh
eVByb2Nlc3Nvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlbGF5UHJv
Y2Vzc29yLmNwcAppbmRleCBhZWU0MGU5NGU2NWRlZTRiZjg0NDI1MTI5NGUzMTQzNzhhZDA0MmE1
Li4xZjkwY2JjOWYxOTcwN2E5YmMxN2ExMTNiY2M0YjFkNThmOTQwNTA5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlbGF5UHJvY2Vzc29yLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlbGF5UHJvY2Vzc29yLmNwcApAQCAtMzQs
NyArMzQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIERlbGF5UHJvY2Vzc29yOjpEZWxheVBy
b2Nlc3NvcihCYXNlQXVkaW9Db250ZXh0JiBjb250ZXh0LCBmbG9hdCBzYW1wbGVSYXRlLCB1bnNp
Z25lZCBudW1iZXJPZkNoYW5uZWxzLCBkb3VibGUgbWF4RGVsYXlUaW1lKQogICAgIDogQXVkaW9E
U1BLZXJuZWxQcm9jZXNzb3Ioc2FtcGxlUmF0ZSwgbnVtYmVyT2ZDaGFubmVscykKLSAgICAsIG1f
ZGVsYXlUaW1lKEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0LCAiZGVsYXlUaW1lIiwgMC4wLCAw
LjAsIG1heERlbGF5VGltZSwgQXV0b21hdGlvblJhdGU6OkFSYXRlKSkKKyAgICAsIG1fZGVsYXlU
aW1lKEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0LCAiZGVsYXlUaW1lIl9zLCAwLjAsIDAuMCwg
bWF4RGVsYXlUaW1lLCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQogewogCiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1dhdmVTaGFwZXJOb2RlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vV2F2ZVNoYXBlck5vZGUuY3BwCmluZGV4IGZj
MTUyODI3YjNhMGNjMjdhOGQ0M2I1NDU0NGZmNGJjNWJjNDljOWIuLjY0MjljMzA1MTYxMmFmZWU4
MmIzZmNiZDU4YjJmNjA3NDBmZjk0ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vV2F2ZVNoYXBlck5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXVkaW8vV2F2ZVNoYXBlck5vZGUuY3BwCkBAIC00Myw3ICs0Myw3IEBAIEV4Y2VwdGlv
bk9yPFJlZjxXYXZlU2hhcGVyTm9kZT4+IFdhdmVTaGFwZXJOb2RlOjpjcmVhdGUoQmFzZUF1ZGlv
Q29udGV4dCYgY29udGV4CiAgICAgaWYgKG9wdGlvbnMuY3VydmUpIHsKICAgICAgICAgY3VydmUg
PSBGbG9hdDMyQXJyYXk6OnRyeUNyZWF0ZShvcHRpb25zLmN1cnZlLT5kYXRhKCksIG9wdGlvbnMu
Y3VydmUtPnNpemUoKSk7CiAgICAgICAgIGlmICghY3VydmUpCi0gICAgICAgICAgICByZXR1cm4g
RXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJJbnZhbGlkIGN1cnZlIHBhcmFtZXRlciIg
fTsKKyAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIklu
dmFsaWQgY3VydmUgcGFyYW1ldGVyIl9zIH07CiAgICAgfQogCiAgICAgYXV0byBub2RlID0gYWRv
cHRSZWYoKm5ldyBXYXZlU2hhcGVyTm9kZShjb250ZXh0KSk7CkBAIC03Niw3ICs3Niw3IEBAIEV4
Y2VwdGlvbk9yPHZvaWQ+IFdhdmVTaGFwZXJOb2RlOjpzZXRDdXJ2ZUZvckJpbmRpbmdzKFJlZlB0
cjxGbG9hdDMyQXJyYXk+JiYgY3VyCiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsgCiAgICAg
REVCVUdfTE9HKExPR0lERU5USUZJRVIpOwogICAgIGlmIChjdXJ2ZSAmJiBjdXJ2ZS0+bGVuZ3Ro
KCkgPCAyKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJM
ZW5ndGggb2YgY3VydmUgYXJyYXkgY2Fubm90IGJlIGxlc3MgdGhhbiAyIiB9OworICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJMZW5ndGggb2YgY3VydmUgYXJy
YXkgY2Fubm90IGJlIGxlc3MgdGhhbiAyIl9zIH07CiAKICAgICBpZiAoY3VydmUpIHsKICAgICAg
ICAgLy8gVGhlIHNwZWNpZmljYXRpb24gc3RhdGVzIHRoYXQgd2Ugc2hvdWxkIG1haW50YWluIGFu
IGludGVybmFsIGNvcHkgb2YgdGhlIGN1cnZlIHNvIHRoYXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vV2ViQXV0aGVudGljYXRpb25VdGlscy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1dlYkF1dGhlbnRpY2F0aW9uVXRpbHMuY3BwCmlu
ZGV4IGMxZmJmMDU2Y2M2YWI1ZTE4Mjk4ODIyNDYzNDQxYjRhODVlYWJkNGMuLjMzMmUyYmU3OTVh
MDFmMWUwNDY2MmRjNDExM2JhZWFjNDQwNzFlNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXV0aG4vV2ViQXV0aGVudGljYXRpb25VdGlscy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9XZWJBdXRoZW50aWNhdGlvblV0aWxzLmNwcApAQCAt
MTM4LDcgKzEzOCw3IEBAIGNib3I6OkNCT1JWYWx1ZTo6TWFwVmFsdWUgYnVpbGRBdHRlc3RhdGlv
bk1hcChWZWN0b3I8dWludDhfdD4mJiBhdXRoRGF0YSwgU3RyaW5nCiAgICAgICAgIGNvbnN0IHNp
emVfdCBhYWd1aWRPZmZzZXQgPSBycElkSGFzaExlbmd0aCArIGZsYWdzTGVuZ3RoICsgc2lnbkNv
dW50ZXJMZW5ndGg7CiAgICAgICAgIGlmIChhdXRoRGF0YS5zaXplKCkgPj0gYWFndWlkT2Zmc2V0
ICsgYWFndWlkTGVuZ3RoKQogICAgICAgICAgICAgbWVtc2V0KGF1dGhEYXRhLmRhdGEoKSArIGFh
Z3VpZE9mZnNldCwgMCwgYWFndWlkTGVuZ3RoKTsKLSAgICAgICAgZm9ybWF0ID0gbm9uZUF0dGVz
dGF0aW9uVmFsdWU7CisgICAgICAgIGZvcm1hdCA9IFN0cmluZyB7IG5vbmVBdHRlc3RhdGlvblZh
bHVlIH07CiAgICAgICAgIHN0YXRlbWVudE1hcC5jbGVhcigpOwogICAgIH0KICAgICBhdHRlc3Rh
dGlvbk9iamVjdE1hcFtjYm9yOjpDQk9SVmFsdWUoImF1dGhEYXRhIildID0gY2Jvcjo6Q0JPUlZh
bHVlKFdURk1vdmUoYXV0aERhdGEpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXV0aG4vZmlkby9EZXZpY2VSZXNwb25zZUNvbnZlcnRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRGV2aWNlUmVzcG9uc2VDb252ZXJ0ZXIuY3BwCmlu
ZGV4IGYyMWM1ZWU3YTI1ZjVlOTI3NTQ0MzFkMzU0YTg3YThkMjFjNTgzYzguLjczNWE5YmY4ZTAz
YTg0MmE5N2Q0Njk0YWNjYzZiMjJlMTNlZmUwNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXV0aG4vZmlkby9EZXZpY2VSZXNwb25zZUNvbnZlcnRlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0RldmljZVJlc3BvbnNlQ29udmVy
dGVyLmNwcApAQCAtMTI2LDcgKzEyNiw3IEBAIFJlZlB0cjxBdXRoZW50aWNhdG9yQXR0ZXN0YXRp
b25SZXNwb25zZT4gcmVhZENUQVBNYWtlQ3JlZGVudGlhbFJlc3BvbnNlKGNvbnN0IFZlCiAgICAg
ICAgIC8vIFRoZSByZWFzb24gd2h5IHdlIGNhbid0IGRpcmVjdGx5IHBhc3MgYXV0aGVudGljYXRv
ckRhdGEvZm9ybWF0L2F0dFN0bXQgdG8gYnVpbGRBdHRlc3RhdGlvbk9iamVjdAogICAgICAgICAv
LyBpcyB0aGF0IHRoZXkgYXJlIENCT1JWYWx1ZSBpbnN0ZWFkIG9mIHRoZSByYXcgdHlwZS4KICAg
ICAgICAgLy8gQWxzbywgZm9ybWF0IGFuZCBhdHRTdG10IGFyZSBvbWl0dGVkIGFzIHRoZXkgYXJl
IG5vdCB1c2VmdWwgaW4gbm9uZSBhdHRlc3RhdGlvbi4KLSAgICAgICAgYXR0ZXN0YXRpb25PYmpl
Y3QgPSBidWlsZEF0dGVzdGF0aW9uT2JqZWN0KFZlY3Rvcjx1aW50OF90PihhdXRoZW50aWNhdG9y
RGF0YS5nZXRCeXRlU3RyaW5nKCkpLCAiIiwgeyB9LCBhdHRlc3RhdGlvbik7CisgICAgICAgIGF0
dGVzdGF0aW9uT2JqZWN0ID0gYnVpbGRBdHRlc3RhdGlvbk9iamVjdChWZWN0b3I8dWludDhfdD4o
YXV0aGVudGljYXRvckRhdGEuZ2V0Qnl0ZVN0cmluZygpKSwgU3RyaW5nIHsgZW1wdHlTdHJpbmco
KSB9LCB7IH0sIGF0dGVzdGF0aW9uKTsKICAgICB9IGVsc2UgewogICAgICAgICBDQk9SOjpNYXBW
YWx1ZSBhdHRlc3RhdGlvbk9iamVjdE1hcDsKICAgICAgICAgYXR0ZXN0YXRpb25PYmplY3RNYXBb
Q0JPUigiYXV0aERhdGEiKV0gPSBXVEZNb3ZlKGF1dGhlbnRpY2F0b3JEYXRhKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9QaW4uY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL1Bpbi5jcHAKaW5kZXggOWZhNjczZjE4MmNj
Y2IwNDYyMTczM2FlMzhjNTIzNmQzNjJiNWM4OC4uYjQ0ZjkwYjAxNDM0MjdkMTUyNjdkN2M5ZjY3
ZjBjZmIwMmMzZmIzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRo
bi9maWRvL1Bpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRv
L1Bpbi5jcHAKQEAgLTE3MSw3ICsxNzEsNyBAQCBzdGQ6Om9wdGlvbmFsPEtleUFncmVlbWVudFJl
c3BvbnNlPiBLZXlBZ3JlZW1lbnRSZXNwb25zZTo6cGFyc2VGcm9tQ09TRShjb25zdCBDQgogCiAg
ICAgY29uc3QgYXV0byYgeCA9IHhJdC0+c2Vjb25kLmdldEJ5dGVTdHJpbmcoKTsKICAgICBjb25z
dCBhdXRvJiB5ID0geUl0LT5zZWNvbmQuZ2V0Qnl0ZVN0cmluZygpOwotICAgIGF1dG8gcGVlcktl
eSA9IENyeXB0b0tleUVDOjppbXBvcnRSYXcoQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6RUNE
SCwgIlAtMjU2IiwgZW5jb2RlUmF3UHVibGljS2V5KHgsIHkpLCB0cnVlLCBDcnlwdG9LZXlVc2Fn
ZURlcml2ZUJpdHMpOworICAgIGF1dG8gcGVlcktleSA9IENyeXB0b0tleUVDOjppbXBvcnRSYXco
Q3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6RUNESCwgIlAtMjU2Il9zLCBlbmNvZGVSYXdQdWJs
aWNLZXkoeCwgeSksIHRydWUsIENyeXB0b0tleVVzYWdlRGVyaXZlQml0cyk7CiAgICAgaWYgKCFw
ZWVyS2V5KQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCkBAIC0yNDcsNyArMjQ3LDcg
QEAgc3RkOjpvcHRpb25hbDxUb2tlblJlcXVlc3Q+IFRva2VuUmVxdWVzdDo6dHJ5Q3JlYXRlKGNv
bnN0IENTdHJpbmcmIHBpbiwgY29uc3QgQ3IKICAgICAvLyBUaGUgZm9sbG93aW5nIGltcGxlbWVu
dHMgU2VjdGlvbiA1LjUuNCBHZXR0aW5nIHNoYXJlZFNlY3JldCBmcm9tIEF1dGhlbnRpY2F0b3Iu
CiAgICAgLy8gaHR0cHM6Ly9maWRvYWxsaWFuY2Uub3JnL3NwZWNzL2ZpZG8tdjIuMC1wcy0yMDE5
MDEzMC9maWRvLWNsaWVudC10by1hdXRoZW50aWNhdG9yLXByb3RvY29sLXYyLjAtcHMtMjAxOTAx
MzAuaHRtbCNnZXR0aW5nU2hhcmVkU2VjcmV0CiAgICAgLy8gMS4gR2VuZXJhdGUgYSBQMjU2IGtl
eSBwYWlyLgotICAgIGF1dG8ga2V5UGFpclJlc3VsdCA9IENyeXB0b0tleUVDOjpnZW5lcmF0ZVBh
aXIoQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6RUNESCwgIlAtMjU2IiwgdHJ1ZSwgQ3J5cHRv
S2V5VXNhZ2VEZXJpdmVCaXRzKTsKKyAgICBhdXRvIGtleVBhaXJSZXN1bHQgPSBDcnlwdG9LZXlF
Qzo6Z2VuZXJhdGVQYWlyKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkVDREgsICJQLTI1NiJf
cywgdHJ1ZSwgQ3J5cHRvS2V5VXNhZ2VEZXJpdmVCaXRzKTsKICAgICBBU1NFUlQoIWtleVBhaXJS
ZXN1bHQuaGFzRXhjZXB0aW9uKCkpOwogICAgIGF1dG8ga2V5UGFpciA9IGtleVBhaXJSZXN1bHQu
cmVsZWFzZVJldHVyblZhbHVlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXV0aG4vZmlkby9VMmZSZXNwb25zZUNvbnZlcnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vVTJmUmVzcG9uc2VDb252ZXJ0ZXIuY3BwCmluZGV4IDNm
MzY2YWEyNzA2ODQ5NzQ1YWNhMjgxNzliNTk5NmU2NjZlZTI2ZWQuLmE0ZmRlMTVmZmJmZDU1NTc3
YjIyOWQ4NjQ5YzY3NjQ4Y2U3ZWI5NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXV0aG4vZmlkby9VMmZSZXNwb25zZUNvbnZlcnRlci5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL1UyZlJlc3BvbnNlQ29udmVydGVyLmNwcApAQCAt
MTU4LDcgKzE1OCw3IEBAIFJlZlB0cjxBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZT4g
cmVhZFUyZlJlZ2lzdGVyUmVzcG9uc2UoY29uc3QgU3RyaW5nJiByCiAgICAgaWYgKGZpZG9BdHRl
c3RhdGlvblN0YXRlbWVudC5lbXB0eSgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAg
IGF1dG8gYXR0ZXN0YXRpb25PYmplY3QgPSBidWlsZEF0dGVzdGF0aW9uT2JqZWN0KFdURk1vdmUo
YXV0aERhdGEpLCAiZmlkby11MmYiLCBXVEZNb3ZlKGZpZG9BdHRlc3RhdGlvblN0YXRlbWVudCks
IGF0dGVzdGF0aW9uKTsKKyAgICBhdXRvIGF0dGVzdGF0aW9uT2JqZWN0ID0gYnVpbGRBdHRlc3Rh
dGlvbk9iamVjdChXVEZNb3ZlKGF1dGhEYXRhKSwgImZpZG8tdTJmIl9zLCBXVEZNb3ZlKGZpZG9B
dHRlc3RhdGlvblN0YXRlbWVudCksIGF0dGVzdGF0aW9uKTsKIAogICAgIHJldHVybiBBdXRoZW50
aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZTo6Y3JlYXRlKGNyZWRlbnRpYWxJZCwgYXR0ZXN0YXRp
b25PYmplY3QsIGF0dGFjaG1lbnQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJkYXRhYmFzZS9DaGFuZ2VWZXJzaW9uV3JhcHBlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0NoYW5nZVZlcnNpb25XcmFwcGVyLmNwcAppbmRleCA5NGVm
NTA5NTU4YjZjMjY1OWZkZmEzZDY4OWI0YjBkMjgzNzNkOGE4Li4zNWMwZTE2ZTNlMzUxMzIzM2My
MmQ4ZjNhYTU2NDUyMDNkOTg0NzQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmRhdGFiYXNlL0NoYW5nZVZlcnNpb25XcmFwcGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0NoYW5nZVZlcnNpb25XcmFwcGVyLmNwcApAQCAtNTMsNyAr
NTMsNyBAQCBib29sIENoYW5nZVZlcnNpb25XcmFwcGVyOjpwZXJmb3JtUHJlZmxpZ2h0KFNRTFRy
YW5zYWN0aW9uJiB0cmFuc2FjdGlvbikKICAgICB9CiAKICAgICBpZiAoYWN0dWFsVmVyc2lvbiAh
PSBtX29sZFZlcnNpb24pIHsKLSAgICAgICAgbV9zcWxFcnJvciA9IFNRTEVycm9yOjpjcmVhdGUo
U1FMRXJyb3I6OlZFUlNJT05fRVJSLCAiY3VycmVudCB2ZXJzaW9uIG9mIHRoZSBkYXRhYmFzZSBh
bmQgYG9sZFZlcnNpb25gIGFyZ3VtZW50IGRvIG5vdCBtYXRjaCIpOworICAgICAgICBtX3NxbEVy
cm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6VkVSU0lPTl9FUlIsICJjdXJyZW50IHZl
cnNpb24gb2YgdGhlIGRhdGFiYXNlIGFuZCBgb2xkVmVyc2lvbmAgYXJndW1lbnQgZG8gbm90IG1h
dGNoIl9zKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9ET01XaW5kb3dXZWJEYXRhYmFzZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RPTVdpbmRvd1dlYkRhdGFiYXNl
LmNwcAppbmRleCA4YWMyYWQ2YWY1ZTRhM2JmZjg0YzI2NzZjMGUyNGU2YmJjMmYzYjVjLi41NmFj
MGU0MjJkZDRkZjkzNmUzY2NiMDBjZTVmNDVjM2Q2NTU0MTViIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RPTVdpbmRvd1dlYkRhdGFiYXNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RPTVdpbmRvd1dlYkRhdGFiYXNl
LmNwcApAQCAtNDUsNyArNDUsNyBAQCBFeGNlcHRpb25PcjxSZWZQdHI8RGF0YWJhc2U+PiBET01X
aW5kb3dXZWJEYXRhYmFzZTo6b3BlbkRhdGFiYXNlKERPTVdpbmRvdyYgd2luZAogICAgIGF1dG8q
IGRvY3VtZW50ID0gd2luZG93LmRvY3VtZW50KCk7CiAgICAgaWYgKCFkb2N1bWVudCkKICAgICAg
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFNlY3VyaXR5RXJyb3IgfTsKLSAgICBkb2N1bWVudC0+YWRk
Q29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6U3RvcmFnZSwgTWVzc2FnZUxldmVsOjpXYXJu
aW5nLCAiV2ViIFNRTCBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlIEluZGV4ZWREQiBpbnN0ZWFk
LiIpOworICAgIGRvY3VtZW50LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpTdG9y
YWdlLCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsICJXZWIgU1FMIGlzIGRlcHJlY2F0ZWQuIFBsZWFz
ZSB1c2UgSW5kZXhlZERCIGluc3RlYWQuIl9zKTsKIAogICAgIGF1dG8mIHNlY3VyaXR5T3JpZ2lu
ID0gZG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCk7CiAgICAgaWYgKCFzZWN1cml0eU9yaWdpbi5j
YW5BY2Nlc3NEYXRhYmFzZSgmZG9jdW1lbnQtPnRvcE9yaWdpbigpKSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5jcHAKaW5kZXggN2NmYjFjNDEwZTY3
ZDBiMDdmN2UzNDk0ODJkYzBlZTlmNmIxMTZkZi4uY2QwYzQxNGZiMzEwMDI0MTNlYTJiZmRkMDk4
MzA1ZDUxYjlmMWZkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRh
YmFzZS9EYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFz
ZS9EYXRhYmFzZS5jcHAKQEAgLTE5OCw3ICsxOTgsNyBAQCBEYXRhYmFzZTo6RGF0YWJhc2UoRGF0
YWJhc2VDb250ZXh0JiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYg
ZQogICAgICwgbV9kaXNwbGF5TmFtZShkaXNwbGF5TmFtZS5pc29sYXRlZENvcHkoKSkKICAgICAs
IG1fZXN0aW1hdGVkU2l6ZShlc3RpbWF0ZWRTaXplKQogICAgICwgbV9maWxlbmFtZShEYXRhYmFz
ZU1hbmFnZXI6OnNpbmdsZXRvbigpLmZ1bGxQYXRoRm9yRGF0YWJhc2UobV9kb2N1bWVudC0+c2Vj
dXJpdHlPcmlnaW4oKSwgbV9uYW1lKSkKLSAgICAsIG1fZGF0YWJhc2VBdXRob3JpemVyKERhdGFi
YXNlQXV0aG9yaXplcjo6Y3JlYXRlKHVucXVhbGlmaWVkSW5mb1RhYmxlTmFtZSkpCisgICAgLCBt
X2RhdGFiYXNlQXV0aG9yaXplcihEYXRhYmFzZUF1dGhvcml6ZXI6OmNyZWF0ZShTdHJpbmcgeyB1
bnF1YWxpZmllZEluZm9UYWJsZU5hbWUgfSkpCiB7CiAgICAgewogICAgICAgICBMb2NrZXIgbG9j
a2VyIHsgZ3VpZExvY2sgfTsKQEAgLTY4Nyw3ICs2ODcsNyBAQCB2b2lkIERhdGFiYXNlOjpydW5U
cmFuc2FjdGlvbihSZWZQdHI8U1FMVHJhbnNhY3Rpb25DYWxsYmFjaz4mJiBjYWxsYmFjaywgUmVm
UHRyPAogICAgIGlmICghbV9pc1RyYW5zYWN0aW9uUXVldWVFbmFibGVkKSB7CiAgICAgICAgIGlm
IChlcnJvckNhbGxiYWNrKSB7CiAgICAgICAgICAgICBtX2RvY3VtZW50LT5ldmVudExvb3AoKS5x
dWV1ZVRhc2soVGFza1NvdXJjZTo6TmV0d29ya2luZywgW2Vycm9yQ2FsbGJhY2sgPSBSZWYgeyAq
ZXJyb3JDYWxsYmFjayB9XSgpIHsKLSAgICAgICAgICAgICAgICBlcnJvckNhbGxiYWNrLT5oYW5k
bGVFdmVudChTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpVTktOT1dOX0VSUiwgImRhdGFiYXNl
IGhhcyBiZWVuIGNsb3NlZCIpKTsKKyAgICAgICAgICAgICAgICBlcnJvckNhbGxiYWNrLT5oYW5k
bGVFdmVudChTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpVTktOT1dOX0VSUiwgImRhdGFiYXNl
IGhhcyBiZWVuIGNsb3NlZCJfcykpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0KICAgICAg
ICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFz
ZS9EYXRhYmFzZUF1dGhvcml6ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRh
YmFzZS9EYXRhYmFzZUF1dGhvcml6ZXIuY3BwCmluZGV4IGUyZGM3MDZmNWQ5NjVkMmQ3YTVjYmE4
NzIxNjZjZjUzYTk4MDhhMWYuLmRjZjllYjk1MmRkZDAzYjRiMGQ3YWQ4NmE2Y2NkNWZiNDNlM2Rj
ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJh
c2VBdXRob3JpemVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNl
L0RhdGFiYXNlQXV0aG9yaXplci5jcHAKQEAgLTYyLDY0ICs2Miw2NCBAQCB2b2lkIERhdGFiYXNl
QXV0aG9yaXplcjo6YWRkQWxsb3dlZEZ1bmN0aW9ucygpCiB7CiAgICAgLy8gU1FMaXRlIGZ1bmN0
aW9ucyB1c2VkIHRvIGhlbHAgaW1wbGVtZW50IHNvbWUgb3BlcmF0aW9ucwogICAgIC8vIEFMVEVS
IFRBQkxFIGhlbHBlcnMKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJzcWxpdGVfcmVuYW1l
X3RhYmxlIik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgic3FsaXRlX3JlbmFtZV90cmln
Z2VyIik7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgic3FsaXRlX3JlbmFtZV90YWJsZSJf
cyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgic3FsaXRlX3JlbmFtZV90cmlnZ2VyIl9z
KTsKICAgICAvLyBHTE9CIGhlbHBlcnMKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJnbG9i
Iik7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgiZ2xvYiJfcyk7CiAKICAgICAvLyBTUUxp
dGUgY29yZSBmdW5jdGlvbnMKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJhYnMiKTsKLSAg
ICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJjaGFuZ2VzIik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rp
b25zLmFkZCgiY29hbGVzY2UiKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJnbG9iIik7
Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgiaWZudWxsIik7Ci0gICAgbV9hbGxvd2VkRnVu
Y3Rpb25zLmFkZCgiaGV4Iik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgibGFzdF9pbnNl
cnRfcm93aWQiKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJsZW5ndGgiKTsKLSAgICBt
X2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJsaWtlIik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFk
ZCgibG93ZXIiKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJsdHJpbSIpOwotICAgIG1f
YWxsb3dlZEZ1bmN0aW9ucy5hZGQoIm1heCIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQo
Im1pbiIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoIm51bGxpZiIpOwotICAgIG1fYWxs
b3dlZEZ1bmN0aW9ucy5hZGQoInF1b3RlIik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgi
cmVwbGFjZSIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInJvdW5kIik7Ci0gICAgbV9h
bGxvd2VkRnVuY3Rpb25zLmFkZCgicnRyaW0iKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRk
KCJzb3VuZGV4Iik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgic3FsaXRlX3NvdXJjZV9p
ZCIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInNxbGl0ZV92ZXJzaW9uIik7Ci0gICAg
bV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgic3Vic3RyIik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25z
LmFkZCgidG90YWxfY2hhbmdlcyIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInRyaW0i
KTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJ0eXBlb2YiKTsKLSAgICBtX2FsbG93ZWRG
dW5jdGlvbnMuYWRkKCJ1cHBlciIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInplcm9i
bG9iIik7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgiYWJzIl9zKTsKKyAgICBtX2FsbG93
ZWRGdW5jdGlvbnMuYWRkKCJjaGFuZ2VzIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRk
KCJjb2FsZXNjZSJfcyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgiZ2xvYiJfcyk7Cisg
ICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgiaWZudWxsIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5j
dGlvbnMuYWRkKCJoZXgiX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoImxhc3RfaW5z
ZXJ0X3Jvd2lkIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJsZW5ndGgiX3MpOwor
ICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoImxpa2UiX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0
aW9ucy5hZGQoImxvd2VyIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJsdHJpbSJf
cyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgibWF4Il9zKTsKKyAgICBtX2FsbG93ZWRG
dW5jdGlvbnMuYWRkKCJtaW4iX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoIm51bGxp
ZiJfcyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgicXVvdGUiX3MpOworICAgIG1fYWxs
b3dlZEZ1bmN0aW9ucy5hZGQoInJlcGxhY2UiX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5h
ZGQoInJvdW5kIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJydHJpbSJfcyk7Cisg
ICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgic291bmRleCJfcyk7CisgICAgbV9hbGxvd2VkRnVu
Y3Rpb25zLmFkZCgic3FsaXRlX3NvdXJjZV9pZCJfcyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25z
LmFkZCgic3FsaXRlX3ZlcnNpb24iX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInN1
YnN0ciJfcyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgidG90YWxfY2hhbmdlcyJfcyk7
CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgidHJpbSJfcyk7CisgICAgbV9hbGxvd2VkRnVu
Y3Rpb25zLmFkZCgidHlwZW9mIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJ1cHBl
ciJfcyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgiemVyb2Jsb2IiX3MpOwogCiAgICAg
Ly8gU1FMaXRlIGRhdGUgYW5kIHRpbWUgZnVuY3Rpb25zCi0gICAgbV9hbGxvd2VkRnVuY3Rpb25z
LmFkZCgiZGF0ZSIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInRpbWUiKTsKLSAgICBt
X2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJkYXRldGltZSIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9u
cy5hZGQoImp1bGlhbmRheSIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInN0cmZ0aW1l
Iik7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgiZGF0ZSJfcyk7CisgICAgbV9hbGxvd2Vk
RnVuY3Rpb25zLmFkZCgidGltZSJfcyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgiZGF0
ZXRpbWUiX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoImp1bGlhbmRheSJfcyk7Cisg
ICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgic3RyZnRpbWUiX3MpOwogCiAgICAgLy8gU1FMaXRl
IGFnZ3JlZ2F0ZSBmdW5jdGlvbnMKICAgICAvLyBtYXgoKSBhbmQgbWluKCkgYXJlIGFscmVhZHkg
aW4gdGhlIGxpc3QKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJhdmciKTsKLSAgICBtX2Fs
bG93ZWRGdW5jdGlvbnMuYWRkKCJjb3VudCIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQo
Imdyb3VwX2NvbmNhdCIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInN1bSIpOwotICAg
IG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInRvdGFsIik7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25z
LmFkZCgiYXZnIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJjb3VudCJfcyk7Cisg
ICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgiZ3JvdXBfY29uY2F0Il9zKTsKKyAgICBtX2FsbG93
ZWRGdW5jdGlvbnMuYWRkKCJzdW0iX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInRv
dGFsIl9zKTsKIAogICAgIC8vIFNRTGl0ZSBGVFMgZnVuY3Rpb25zCi0gICAgbV9hbGxvd2VkRnVu
Y3Rpb25zLmFkZCgibWF0Y2giKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJzbmlwcGV0
Iik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgib2Zmc2V0cyIpOwotICAgIG1fYWxsb3dl
ZEZ1bmN0aW9ucy5hZGQoIm9wdGltaXplIik7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgi
bWF0Y2giX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInNuaXBwZXQiX3MpOworICAg
IG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoIm9mZnNldHMiX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0
aW9ucy5hZGQoIm9wdGltaXplIl9zKTsKIAogICAgIC8vIFNRTGl0ZSBJQ1UgZnVuY3Rpb25zCiAg
ICAgLy8gbGlrZSgpLCBsb3dlcigpIGFuZCB1cHBlcigpIGFyZSBhbHJlYWR5IGluIHRoZSBsaXN0
Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgicmVnZXhwIik7CisgICAgbV9hbGxvd2VkRnVu
Y3Rpb25zLmFkZCgicmVnZXhwIl9zKTsKIH0KIAogaW50IERhdGFiYXNlQXV0aG9yaXplcjo6Y3Jl
YXRlVGFibGUoY29uc3QgU3RyaW5nJiB0YWJsZU5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tlci5jcHAKaW5kZXggOWViMzkx
YzZkMGJkNmQ0ODYwNTEwZWRhYjcyODkzMzk5NTA2YmM3Mi4uYTRmMGM3NDQ1MjM3MWE0ZGJkOGRm
MDg2MDY5ZWNkMTBhYmEzMjI5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJkYXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmNwcApAQCAtOTEsNyArOTEsNyBAQCBEYXRh
YmFzZVRyYWNrZXI6OkRhdGFiYXNlVHJhY2tlcihjb25zdCBTdHJpbmcmIGRhdGFiYXNlUGF0aCkK
IAogU3RyaW5nIERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlckRhdGFiYXNlUGF0aCgpIGNvbnN0CiB7
Ci0gICAgcmV0dXJuIFNRTGl0ZUZpbGVTeXN0ZW06OmFwcGVuZERhdGFiYXNlRmlsZU5hbWVUb1Bh
dGgobV9kYXRhYmFzZURpcmVjdG9yeVBhdGguaXNvbGF0ZWRDb3B5KCksICJEYXRhYmFzZXMuZGIi
KTsKKyAgICByZXR1cm4gU1FMaXRlRmlsZVN5c3RlbTo6YXBwZW5kRGF0YWJhc2VGaWxlTmFtZVRv
UGF0aChtX2RhdGFiYXNlRGlyZWN0b3J5UGF0aC5pc29sYXRlZENvcHkoKSwgIkRhdGFiYXNlcy5k
YiJfcyk7CiB9CiAKIHZvaWQgRGF0YWJhc2VUcmFja2VyOjpvcGVuVHJhY2tlckRhdGFiYXNlKFRy
YWNrZXJDcmVhdGlvbkFjdGlvbiBjcmVhdGVBY3Rpb24pCkBAIC0xMTgsMTQgKzExOCwxNCBAQCB2
b2lkIERhdGFiYXNlVHJhY2tlcjo6b3BlblRyYWNrZXJEYXRhYmFzZShUcmFja2VyQ3JlYXRpb25B
Y3Rpb24gY3JlYXRlQWN0aW9uKQogICAgIH0KICAgICBtX2RhdGFiYXNlLmRpc2FibGVUaHJlYWRp
bmdDaGVja3MoKTsKIAotICAgIGlmICghbV9kYXRhYmFzZS50YWJsZUV4aXN0cygiT3JpZ2lucyIp
KSB7CisgICAgaWYgKCFtX2RhdGFiYXNlLnRhYmxlRXhpc3RzKCJPcmlnaW5zIl9zKSkgewogICAg
ICAgICBpZiAoIW1fZGF0YWJhc2UuZXhlY3V0ZUNvbW1hbmQoIkNSRUFURSBUQUJMRSBPcmlnaW5z
IChvcmlnaW4gVEVYVCBVTklRVUUgT04gQ09ORkxJQ1QgUkVQTEFDRSwgcXVvdGEgSU5URUdFUiBO
T1QgTlVMTCBPTiBDT05GTElDVCBGQUlMKTsiX3MpKSB7CiAgICAgICAgICAgICAvLyBGSVhNRTog
YW5kIGhlcmUKICAgICAgICAgICAgIExPR19FUlJPUigiRmFpbGVkIHRvIGNyZWF0ZSBPcmlnaW5z
IHRhYmxlIik7CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAoIW1fZGF0YWJhc2UudGFibGVF
eGlzdHMoIkRhdGFiYXNlcyIpKSB7CisgICAgaWYgKCFtX2RhdGFiYXNlLnRhYmxlRXhpc3RzKCJE
YXRhYmFzZXMiX3MpKSB7CiAgICAgICAgIGlmICghbV9kYXRhYmFzZS5leGVjdXRlQ29tbWFuZCgi
Q1JFQVRFIFRBQkxFIERhdGFiYXNlcyAoZ3VpZCBJTlRFR0VSIFBSSU1BUlkgS0VZIEFVVE9JTkNS
RU1FTlQsIG9yaWdpbiBURVhULCBuYW1lIFRFWFQsIGRpc3BsYXlOYW1lIFRFWFQsIGVzdGltYXRl
ZFNpemUgSU5URUdFUiwgcGF0aCBURVhUKTsiX3MpKSB7CiAgICAgICAgICAgICAvLyBGSVhNRTog
YW5kIGhlcmUKICAgICAgICAgICAgIExPR19FUlJPUigiRmFpbGVkIHRvIGNyZWF0ZSBEYXRhYmFz
ZXMgdGFibGUiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJh
c2UvU1FMU3RhdGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2Uv
U1FMU3RhdGVtZW50LmNwcAppbmRleCBiNzgwNTgyZGM5Nzk1OTIzMzQ2M2Y4ZmQ4YWMxOWQwMzlh
ZWI4ODIwLi5kOTFkMDMxNDU5MTViMjFhMzU3ZTg1ZjA1Y2NiYTQwZTVkYmVhMTFhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFN0YXRlbWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxTdGF0ZW1lbnQuY3Bw
CkBAIC0xMjYsNyArMTI2LDcgQEAgYm9vbCBTUUxTdGF0ZW1lbnQ6OmV4ZWN1dGUoRGF0YWJhc2Um
IGRiKQogICAgIC8vIElmIHRoaXMgaXMgdGhlIGNhc2UsIHRoZXkgbWlnaHQgYmUgdHJ5aW5nIHRv
IGRvIHNvbWV0aGluZyBmaXNoeSBvciBtYWxpY2lvdXMKICAgICBpZiAoc3RhdGVtZW50LT5iaW5k
UGFyYW1ldGVyQ291bnQoKSAhPSBtX2FyZ3VtZW50cy5zaXplKCkpIHsKICAgICAgICAgTE9HKFN0
b3JhZ2VBUEksICJCaW5kIHBhcmFtZXRlciBjb3VudCBkb2Vzbid0IG1hdGNoIG51bWJlciBvZiBx
dWVzdGlvbiBtYXJrcyIpOwotICAgICAgICBtX2Vycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxF
cnJvcjo6U1lOVEFYX0VSUiwgIm51bWJlciBvZiAnPydzIGluIHN0YXRlbWVudCBzdHJpbmcgZG9l
cyBub3QgbWF0Y2ggYXJndW1lbnQgY291bnQiKTsKKyAgICAgICAgbV9lcnJvciA9IFNRTEVycm9y
OjpjcmVhdGUoU1FMRXJyb3I6OlNZTlRBWF9FUlIsICJudW1iZXIgb2YgJz8ncyBpbiBzdGF0ZW1l
bnQgc3RyaW5nIGRvZXMgbm90IG1hdGNoIGFyZ3VtZW50IGNvdW50Il9zKTsKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgIH0KIApAQCAtMjM0LDE5ICsyMzQsMTkgQEAgYm9vbCBTUUxTdGF0ZW1l
bnQ6OnBlcmZvcm1DYWxsYmFjayhTUUxUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24pCiB2b2lkIFNR
TFN0YXRlbWVudDo6c2V0RGF0YWJhc2VEZWxldGVkRXJyb3IoKQogewogICAgIEFTU0VSVCghbV9l
cnJvciAmJiAhbV9yZXN1bHRTZXQpOwotICAgIG1fZXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNR
TEVycm9yOjpVTktOT1dOX0VSUiwgInVuYWJsZSB0byBleGVjdXRlIHN0YXRlbWVudCwgYmVjYXVz
ZSB0aGUgdXNlciBkZWxldGVkIHRoZSBkYXRhYmFzZSIpOworICAgIG1fZXJyb3IgPSBTUUxFcnJv
cjo6Y3JlYXRlKFNRTEVycm9yOjpVTktOT1dOX0VSUiwgInVuYWJsZSB0byBleGVjdXRlIHN0YXRl
bWVudCwgYmVjYXVzZSB0aGUgdXNlciBkZWxldGVkIHRoZSBkYXRhYmFzZSJfcyk7CiB9CiAKIHZv
aWQgU1FMU3RhdGVtZW50OjpzZXRWZXJzaW9uTWlzbWF0Y2hlZEVycm9yKCkKIHsKICAgICBBU1NF
UlQoIW1fZXJyb3IgJiYgIW1fcmVzdWx0U2V0KTsKLSAgICBtX2Vycm9yID0gU1FMRXJyb3I6OmNy
ZWF0ZShTUUxFcnJvcjo6VkVSU0lPTl9FUlIsICJjdXJyZW50IHZlcnNpb24gb2YgdGhlIGRhdGFi
YXNlIGFuZCBgb2xkVmVyc2lvbmAgYXJndW1lbnQgZG8gbm90IG1hdGNoIik7CisgICAgbV9lcnJv
ciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OlZFUlNJT05fRVJSLCAiY3VycmVudCB2ZXJz
aW9uIG9mIHRoZSBkYXRhYmFzZSBhbmQgYG9sZFZlcnNpb25gIGFyZ3VtZW50IGRvIG5vdCBtYXRj
aCJfcyk7CiB9CiAKIHZvaWQgU1FMU3RhdGVtZW50OjpzZXRGYWlsdXJlRHVlVG9RdW90YSgpCiB7
CiAgICAgQVNTRVJUKCFtX2Vycm9yICYmICFtX3Jlc3VsdFNldCk7Ci0gICAgbV9lcnJvciA9IFNR
TEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OlFVT1RBX0VSUiwgInRoZXJlIHdhcyBub3QgZW5vdWdo
IHJlbWFpbmluZyBzdG9yYWdlIHNwYWNlLCBvciB0aGUgc3RvcmFnZSBxdW90YSB3YXMgcmVhY2hl
ZCBhbmQgdGhlIHVzZXIgZGVjbGluZWQgdG8gYWxsb3cgbW9yZSBzcGFjZSIpOworICAgIG1fZXJy
b3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpRVU9UQV9FUlIsICJ0aGVyZSB3YXMgbm90
IGVub3VnaCByZW1haW5pbmcgc3RvcmFnZSBzcGFjZSwgb3IgdGhlIHN0b3JhZ2UgcXVvdGEgd2Fz
IHJlYWNoZWQgYW5kIHRoZSB1c2VyIGRlY2xpbmVkIHRvIGFsbG93IG1vcmUgc3BhY2UiX3MpOwog
fQogCiB2b2lkIFNRTFN0YXRlbWVudDo6Y2xlYXJGYWlsdXJlRHVlVG9RdW90YSgpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb24uY3Bw
CmluZGV4IDY4MzJhY2E5MGVkNmQ5ZWI4MWFiOWYzNTU5NTkzYmY0NjQzMGZkMGYuLmU5YWQ3OWYz
MjgyZTg0NTlkZDdkMzNlZmYwMmI2YjU3OWYwMjZjMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb24uY3BwCkBAIC0xMzcsNyAr
MTM3LDcgQEAgdm9pZCBTUUxUcmFuc2FjdGlvbjo6Y2FsbEVycm9yQ2FsbGJhY2tEdWVUb0ludGVy
cnVwdGlvbigpCiAgICAgICAgIHJldHVybjsKIAogICAgIG1fZGF0YWJhc2UtPmRvY3VtZW50KCku
ZXZlbnRMb29wKCkucXVldWVUYXNrKFRhc2tTb3VyY2U6Ok5ldHdvcmtpbmcsIFtlcnJvckNhbGxi
YWNrID0gV1RGTW92ZShlcnJvckNhbGxiYWNrKV0oKSBtdXRhYmxlIHsKLSAgICAgICAgZXJyb3JD
YWxsYmFjay0+aGFuZGxlRXZlbnQoU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6REFUQUJBU0Vf
RVJSLCAidGhlIGRhdGFiYXNlIHdhcyBjbG9zZWQiKSk7CisgICAgICAgIGVycm9yQ2FsbGJhY2st
PmhhbmRsZUV2ZW50KFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OkRBVEFCQVNFX0VSUiwgInRo
ZSBkYXRhYmFzZSB3YXMgY2xvc2VkIl9zKSk7CiAgICAgfSk7CiB9CiAKQEAgLTIzNiw3ICsyMzYs
NyBAQCB2b2lkIFNRTFRyYW5zYWN0aW9uOjpvcGVuVHJhbnNhY3Rpb25BbmRQcmVmbGlnaHQoKQog
CiAgICAgLy8gSWYgdGhlIGRhdGFiYXNlIHdhcyBkZWxldGVkLCBqdW1wIHRvIHRoZSBlcnJvciBj
YWxsYmFjawogICAgIGlmIChtX2RhdGFiYXNlLT5kZWxldGVkKCkpIHsKLSAgICAgICAgbV90cmFu
c2FjdGlvbkVycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6VU5LTk9XTl9FUlIsICJ1
bmFibGUgdG8gb3BlbiBhIHRyYW5zYWN0aW9uLCBiZWNhdXNlIHRoZSB1c2VyIGRlbGV0ZWQgdGhl
IGRhdGFiYXNlIik7CisgICAgICAgIG1fdHJhbnNhY3Rpb25FcnJvciA9IFNRTEVycm9yOjpjcmVh
dGUoU1FMRXJyb3I6OlVOS05PV05fRVJSLCAidW5hYmxlIHRvIG9wZW4gYSB0cmFuc2FjdGlvbiwg
YmVjYXVzZSB0aGUgdXNlciBkZWxldGVkIHRoZSBkYXRhYmFzZSJfcyk7CiAKICAgICAgICAgaGFu
ZGxlVHJhbnNhY3Rpb25FcnJvcigpOwogICAgICAgICByZXR1cm47CkBAIC0yOTAsNyArMjkwLDcg
QEAgdm9pZCBTUUxUcmFuc2FjdGlvbjo6b3BlblRyYW5zYWN0aW9uQW5kUHJlZmxpZ2h0KCkKICAg
ICAgICAgbV9kYXRhYmFzZS0+ZW5hYmxlQXV0aG9yaXplcigpOwogICAgICAgICBtX3RyYW5zYWN0
aW9uRXJyb3IgPSBtX3dyYXBwZXItPnNxbEVycm9yKCk7CiAgICAgICAgIGlmICghbV90cmFuc2Fj
dGlvbkVycm9yKQotICAgICAgICAgICAgbV90cmFuc2FjdGlvbkVycm9yID0gU1FMRXJyb3I6OmNy
ZWF0ZShTUUxFcnJvcjo6VU5LTk9XTl9FUlIsICJ1bmtub3duIGVycm9yIG9jY3VycmVkIGR1cmlu
ZyB0cmFuc2FjdGlvbiBwcmVmbGlnaHQiKTsKKyAgICAgICAgICAgIG1fdHJhbnNhY3Rpb25FcnJv
ciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OlVOS05PV05fRVJSLCAidW5rbm93biBlcnJv
ciBvY2N1cnJlZCBkdXJpbmcgdHJhbnNhY3Rpb24gcHJlZmxpZ2h0Il9zKTsKIAogICAgICAgICBo
YW5kbGVUcmFuc2FjdGlvbkVycm9yKCk7CiAgICAgICAgIHJldHVybjsKQEAgLTM5NSw3ICszOTUs
NyBAQCB2b2lkIFNRTFRyYW5zYWN0aW9uOjpkZWxpdmVyVHJhbnNhY3Rpb25DYWxsYmFjaygpCiAK
ICAgICAvLyBTcGVjIDQuMy4yIDU6IElmIHRoZSB0cmFuc2FjdGlvbiBjYWxsYmFjayB3YXMgbnVs
bCBvciByYWlzZWQgYW4gZXhjZXB0aW9uLCBqdW1wIHRvIHRoZSBlcnJvciBjYWxsYmFjawogICAg
IGlmIChzaG91bGREZWxpdmVyRXJyb3JDYWxsYmFjaykgewotICAgICAgICBtX3RyYW5zYWN0aW9u
RXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpVTktOT1dOX0VSUiwgInRoZSBTUUxU
cmFuc2FjdGlvbkNhbGxiYWNrIHdhcyBudWxsIG9yIHRocmV3IGFuIGV4Y2VwdGlvbiIpOworICAg
ICAgICBtX3RyYW5zYWN0aW9uRXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpVTktO
T1dOX0VSUiwgInRoZSBTUUxUcmFuc2FjdGlvbkNhbGxiYWNrIHdhcyBudWxsIG9yIHRocmV3IGFu
IGV4Y2VwdGlvbiJfcyk7CiAgICAgICAgIHJldHVybiBkZWxpdmVyVHJhbnNhY3Rpb25FcnJvckNh
bGxiYWNrKCk7CiAgICAgfQogCkBAIC00MzIsNyArNDMyLDcgQEAgdm9pZCBTUUxUcmFuc2FjdGlv
bjo6ZGVsaXZlclN0YXRlbWVudENhbGxiYWNrKCkKICAgICBtX2V4ZWN1dGVTcWxBbGxvd2VkID0g
ZmFsc2U7CiAKICAgICBpZiAocmVzdWx0KSB7Ci0gICAgICAgIG1fdHJhbnNhY3Rpb25FcnJvciA9
IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OlVOS05PV05fRVJSLCAidGhlIHN0YXRlbWVudCBj
YWxsYmFjayByYWlzZWQgYW4gZXhjZXB0aW9uIG9yIHN0YXRlbWVudCBlcnJvciBjYWxsYmFjayBk
aWQgbm90IHJldHVybiBmYWxzZSIpOworICAgICAgICBtX3RyYW5zYWN0aW9uRXJyb3IgPSBTUUxF
cnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpVTktOT1dOX0VSUiwgInRoZSBzdGF0ZW1lbnQgY2FsbGJh
Y2sgcmFpc2VkIGFuIGV4Y2VwdGlvbiBvciBzdGF0ZW1lbnQgZXJyb3IgY2FsbGJhY2sgZGlkIG5v
dCByZXR1cm4gZmFsc2UiX3MpOwogCiAgICAgICAgIGlmIChtX2Vycm9yQ2FsbGJhY2tXcmFwcGVy
Lmhhc0NhbGxiYWNrKCkpCiAgICAgICAgICAgICByZXR1cm4gZGVsaXZlclRyYW5zYWN0aW9uRXJy
b3JDYWxsYmFjaygpOwpAQCAtNTY4LDcgKzU2OCw3IEBAIHZvaWQgU1FMVHJhbnNhY3Rpb246Omhh
bmRsZUN1cnJlbnRTdGF0ZW1lbnRFcnJvcigpCiAKICAgICBtX3RyYW5zYWN0aW9uRXJyb3IgPSBt
X2N1cnJlbnRTdGF0ZW1lbnQtPnNxbEVycm9yKCk7CiAgICAgaWYgKCFtX3RyYW5zYWN0aW9uRXJy
b3IpCi0gICAgICAgIG1fdHJhbnNhY3Rpb25FcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJy
b3I6OkRBVEFCQVNFX0VSUiwgInRoZSBzdGF0ZW1lbnQgZmFpbGVkIHRvIGV4ZWN1dGUiKTsKKyAg
ICAgICAgbV90cmFuc2FjdGlvbkVycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6REFU
QUJBU0VfRVJSLCAidGhlIHN0YXRlbWVudCBmYWlsZWQgdG8gZXhlY3V0ZSJfcyk7CiAKICAgICBo
YW5kbGVUcmFuc2FjdGlvbkVycm9yKCk7CiB9CkBAIC01OTQsNyArNTk0LDcgQEAgdm9pZCBTUUxU
cmFuc2FjdGlvbjo6cG9zdGZsaWdodEFuZENvbW1pdCgpCiAgICAgaWYgKG1fd3JhcHBlciAmJiAh
bV93cmFwcGVyLT5wZXJmb3JtUG9zdGZsaWdodCgqdGhpcykpIHsKICAgICAgICAgbV90cmFuc2Fj
dGlvbkVycm9yID0gbV93cmFwcGVyLT5zcWxFcnJvcigpOwogICAgICAgICBpZiAoIW1fdHJhbnNh
Y3Rpb25FcnJvcikKLSAgICAgICAgICAgIG1fdHJhbnNhY3Rpb25FcnJvciA9IFNRTEVycm9yOjpj
cmVhdGUoU1FMRXJyb3I6OlVOS05PV05fRVJSLCAidW5rbm93biBlcnJvciBvY2N1cnJlZCBkdXJp
bmcgdHJhbnNhY3Rpb24gcG9zdGZsaWdodCIpOworICAgICAgICAgICAgbV90cmFuc2FjdGlvbkVy
cm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6VU5LTk9XTl9FUlIsICJ1bmtub3duIGVy
cm9yIG9jY3VycmVkIGR1cmluZyB0cmFuc2FjdGlvbiBwb3N0ZmxpZ2h0Il9zKTsKIAogICAgICAg
ICBoYW5kbGVUcmFuc2FjdGlvbkVycm9yKCk7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAKaW5kZXggZjk3M2U1YmQz
YjkwZTNhNGNjNzM1MjE0ZDlhMzE5YWRmOTIxZTRiNi4uNjlkMmU1NDczNWEzMDY0NjM4NGM3ZWZi
N2VhNjQ5ODdlYzM0MDJjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJz
b2NrZXRzL1dlYlNvY2tldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2Nr
ZXRzL1dlYlNvY2tldC5jcHAKQEAgLTEzNyw5ICsxMzcsOSBAQCBzdGF0aWMgdW5zaWduZWQgc2F0
dXJhdGVBZGQodW5zaWduZWQgYSwgdW5zaWduZWQgYikKICAgICByZXR1cm4gYSArIGI7CiB9CiAK
LWNvbnN0IGNoYXIqIFdlYlNvY2tldDo6c3VicHJvdG9jb2xTZXBhcmF0b3IoKQorQVNDSUlMaXRl
cmFsIFdlYlNvY2tldDo6c3VicHJvdG9jb2xTZXBhcmF0b3IoKQogewotICAgIHJldHVybiAiLCAi
OworICAgIHJldHVybiAiLCAiX3M7CiB9CiAKIFdlYlNvY2tldDo6V2ViU29ja2V0KFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCkBAIC00MzAsNyArNDMwLDcgQEAgRXhjZXB0aW9uT3I8
dm9pZD4gV2ViU29ja2V0OjpjbG9zZShzdGQ6Om9wdGlvbmFsPHVuc2lnbmVkIHNob3J0PiBvcHRp
b25hbENvZGUsIGMKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICBpZiAobV9zdGF0ZSA9PSBDT05O
RUNUSU5HKSB7CiAgICAgICAgIG1fc3RhdGUgPSBDTE9TSU5HOwotICAgICAgICBtX2NoYW5uZWwt
PmZhaWwoIldlYlNvY2tldCBpcyBjbG9zZWQgYmVmb3JlIHRoZSBjb25uZWN0aW9uIGlzIGVzdGFi
bGlzaGVkLiIpOworICAgICAgICBtX2NoYW5uZWwtPmZhaWwoIldlYlNvY2tldCBpcyBjbG9zZWQg
YmVmb3JlIHRoZSBjb25uZWN0aW9uIGlzIGVzdGFibGlzaGVkLiJfcyk7CiAgICAgICAgIHJldHVy
biB7IH07CiAgICAgfQogICAgIG1fc3RhdGUgPSBDTE9TSU5HOwpAQCAtNTIwLDcgKzUyMCw3IEBA
IHZvaWQgV2ViU29ja2V0OjpzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24gcmVhc29uKQogCiAg
ICAgaWYgKHJlYXNvbiA9PSBSZWFzb25Gb3JTdXNwZW5zaW9uOjpCYWNrRm9yd2FyZENhY2hlKSB7
CiAgICAgICAgIC8vIFRoaXMgd2lsbCBjYXVzZSBkaWRDbG9zZSgpIHRvIGJlIGNhbGxlZC4KLSAg
ICAgICAgbV9jaGFubmVsLT5mYWlsKCJXZWJTb2NrZXQgaXMgY2xvc2VkIGR1ZSB0byBzdXNwZW5z
aW9uLiIpOworICAgICAgICBtX2NoYW5uZWwtPmZhaWwoIldlYlNvY2tldCBpcyBjbG9zZWQgZHVl
IHRvIHN1c3BlbnNpb24uIl9zKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5oCmluZGV4IGU2ODYzZTQ2ZGEw
N2QxOGI2ZDkxNWViMTVjMjRjZGYyMmRiNmE2Y2IuLmVmZmMwNjhiYmY2MjY1ZTdhM2IxNTVjOTRm
ZjQ0OGU3NjZkMWUzNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29j
a2V0cy9XZWJTb2NrZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMv
V2ViU29ja2V0LmgKQEAgLTUxLDcgKzUxLDcgQEAgY2xhc3MgVGhyZWFkYWJsZVdlYlNvY2tldENo
YW5uZWw7CiBjbGFzcyBXZWJTb2NrZXQgZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJTb2Nr
ZXQ+LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSwgcHVibGljIEFjdGl2ZURPTU9i
amVjdCwgcHJpdmF0ZSBXZWJTb2NrZXRDaGFubmVsQ2xpZW50IHsKICAgICBXVEZfTUFLRV9JU09f
QUxMT0NBVEVEKFdlYlNvY2tldCk7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0IGNoYXIqIHN1
YnByb3RvY29sU2VwYXJhdG9yKCk7CisgICAgc3RhdGljIEFTQ0lJTGl0ZXJhbCBzdWJwcm90b2Nv
bFNlcGFyYXRvcigpOwogCiAgICAgc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxXZWJTb2NrZXQ+PiBj
cmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGNvbnN0IFN0cmluZyYgdXJsKTsKICAgICBz
dGF0aWMgRXhjZXB0aW9uT3I8UmVmPFdlYlNvY2tldD4+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25D
b250ZXh0JiwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgcHJvdG9jb2wpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5u
ZWwuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5u
ZWwuY3BwCmluZGV4IGRmNTYzNTljNmZkYTA1MjEwM2Q5N2IzZDhhNWQxMDg0OTE5NzVmNWIuLjY5
YjhlMmE3NzU0YTg5NzhjMTk1NDg1MWZmMjZjOTk2MTUyZjVkYzMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAKQEAg
LTI4Nyw3ICsyODcsNyBAQCB2b2lkIFdlYlNvY2tldENoYW5uZWw6OmRpZE9wZW5Tb2NrZXRTdHJl
YW0oU29ja2V0U3RyZWFtSGFuZGxlJiBoYW5kbGUpCiAgICAgICAgIGNvb2tpZVJlcXVlc3RIZWFk
ZXJGaWVsZFByb3h5ID0gQ29va2llSmFyOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94eSgq
bV9kb2N1bWVudCwgbV9oYW5kc2hha2UtPmh0dHBVUkxGb3JBdXRoZW50aWNhdGlvbkFuZENvb2tp
ZXMoKSk7CiAgICAgaGFuZGxlLnNlbmRIYW5kc2hha2UoV1RGTW92ZShoYW5kc2hha2VNZXNzYWdl
KSwgV1RGTW92ZShjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94eSksIFt0aGlzLCBwcm90ZWN0
ZWRUaGlzID0gUmVmIHsgKnRoaXMgfV0gKGJvb2wgc3VjY2VzcywgYm9vbCBkaWRBY2Nlc3NTZWN1
cmVDb29raWVzKSB7CiAgICAgICAgIGlmICghc3VjY2VzcykKLSAgICAgICAgICAgIGZhaWwoIkZh
aWxlZCB0byBzZW5kIFdlYlNvY2tldCBoYW5kc2hha2UuIik7CisgICAgICAgICAgICBmYWlsKCJG
YWlsZWQgdG8gc2VuZCBXZWJTb2NrZXQgaGFuZHNoYWtlLiJfcyk7CiAKICAgICAgICAgaWYgKGRp
ZEFjY2Vzc1NlY3VyZUNvb2tpZXMgJiYgbV9kb2N1bWVudCkKICAgICAgICAgICAgIG1fZG9jdW1l
bnQtPnNldFNlY3VyZUNvb2tpZXNBY2Nlc3NlZCgpOwpAQCAtMzQwLDcgKzM0MCw3IEBAIHZvaWQg
V2ViU29ja2V0Q2hhbm5lbDo6ZGlkUmVjZWl2ZVNvY2tldFN0cmVhbURhdGEoU29ja2V0U3RyZWFt
SGFuZGxlJiBoYW5kbGUsIGNvCiAgICAgICAgIHJldHVybjsKICAgICBpZiAoIWFwcGVuZFRvQnVm
ZmVyKGRhdGEsIGxlbmd0aCkpIHsKICAgICAgICAgbV9zaG91bGREaXNjYXJkUmVjZWl2ZWREYXRh
ID0gdHJ1ZTsKLSAgICAgICAgZmFpbCgiUmFuIG91dCBvZiBtZW1vcnkgd2hpbGUgcmVjZWl2aW5n
IFdlYlNvY2tldCBkYXRhLiIpOworICAgICAgICBmYWlsKCJSYW4gb3V0IG9mIG1lbW9yeSB3aGls
ZSByZWNlaXZpbmcgV2ViU29ja2V0IGRhdGEuIl9zKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
ICAgICB3aGlsZSAoIW1fc3VzcGVuZGVkICYmIG1fY2xpZW50ICYmICFtX2J1ZmZlci5pc0VtcHR5
KCkpIHsKQEAgLTU3MSw3ICs1NzEsNyBAQCBib29sIFdlYlNvY2tldENoYW5uZWw6OnByb2Nlc3NG
cmFtZSgpCiAgICAgfQogCiAgICAgaWYgKGZyYW1lLm1hc2tlZCkgewotICAgICAgICBmYWlsKCJB
IHNlcnZlciBtdXN0IG5vdCBtYXNrIGFueSBmcmFtZXMgdGhhdCBpdCBzZW5kcyB0byB0aGUgY2xp
ZW50LiIpOworICAgICAgICBmYWlsKCJBIHNlcnZlciBtdXN0IG5vdCBtYXNrIGFueSBmcmFtZXMg
dGhhdCBpdCBzZW5kcyB0byB0aGUgY2xpZW50LiJfcyk7CiAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICB9CiAKQEAgLTU5MSw3ICs1OTEsNyBAQCBib29sIFdlYlNvY2tldENoYW5uZWw6OnByb2Nl
c3NGcmFtZSgpCiAgICAgLy8gQSBuZXcgZGF0YSBmcmFtZSBpcyByZWNlaXZlZCBiZWZvcmUgdGhl
IHByZXZpb3VzIGNvbnRpbnVvdXMgZnJhbWUgZmluaXNoZXMuCiAgICAgLy8gTm90ZSB0aGF0IGNv
bnRyb2wgZnJhbWVzIGFyZSBhbGxvd2VkIHRvIGNvbWUgaW4gdGhlIG1pZGRsZSBvZiBjb250aW51
b3VzIGZyYW1lcy4KICAgICBpZiAobV9oYXNDb250aW51b3VzRnJhbWUgJiYgZnJhbWUub3BDb2Rl
ICE9IFdlYlNvY2tldEZyYW1lOjpPcENvZGVDb250aW51YXRpb24gJiYgIVdlYlNvY2tldEZyYW1l
Ojppc0NvbnRyb2xPcENvZGUoZnJhbWUub3BDb2RlKSkgewotICAgICAgICBmYWlsKCJSZWNlaXZl
ZCBuZXcgZGF0YSBmcmFtZSBidXQgcHJldmlvdXMgY29udGludW91cyBmcmFtZSBpcyB1bmZpbmlz
aGVkLiIpOworICAgICAgICBmYWlsKCJSZWNlaXZlZCBuZXcgZGF0YSBmcmFtZSBidXQgcHJldmlv
dXMgY29udGludW91cyBmcmFtZSBpcyB1bmZpbmlzaGVkLiJfcyk7CiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICB9CiAKQEAgLTYwMSw3ICs2MDEsNyBAQCBib29sIFdlYlNvY2tldENoYW5uZWw6
OnByb2Nlc3NGcmFtZSgpCiAgICAgY2FzZSBXZWJTb2NrZXRGcmFtZTo6T3BDb2RlQ29udGludWF0
aW9uOgogICAgICAgICAvLyBBbiB1bmV4cGVjdGVkIGNvbnRpbnVhdGlvbiBmcmFtZSBpcyByZWNl
aXZlZCB3aXRob3V0IGFueSBsZWFkaW5nIGZyYW1lLgogICAgICAgICBpZiAoIW1faGFzQ29udGlu
dW91c0ZyYW1lKSB7Ci0gICAgICAgICAgICBmYWlsKCJSZWNlaXZlZCB1bmV4cGVjdGVkIGNvbnRp
bnVhdGlvbiBmcmFtZS4iKTsKKyAgICAgICAgICAgIGZhaWwoIlJlY2VpdmVkIHVuZXhwZWN0ZWQg
Y29udGludWF0aW9uIGZyYW1lLiJfcyk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAg
ICAgIH0KICAgICAgICAgbV9jb250aW51b3VzRnJhbWVEYXRhLmFwcGVuZChmcmFtZS5wYXlsb2Fk
LCBmcmFtZS5wYXlsb2FkTGVuZ3RoKTsKQEAgLTYyMCw3ICs2MjAsNyBAQCBib29sIFdlYlNvY2tl
dENoYW5uZWw6OnByb2Nlc3NGcmFtZSgpCiAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAg
ICAgICAgICAgICBtZXNzYWdlID0gZW1wdHlTdHJpbmcoKTsKICAgICAgICAgICAgICAgICBpZiAo
bWVzc2FnZS5pc051bGwoKSkKLSAgICAgICAgICAgICAgICAgICAgZmFpbCgiQ291bGQgbm90IGRl
Y29kZSBhIHRleHQgZnJhbWUgYXMgVVRGLTguIik7CisgICAgICAgICAgICAgICAgICAgIGZhaWwo
IkNvdWxkIG5vdCBkZWNvZGUgYSB0ZXh0IGZyYW1lIGFzIFVURi04LiJfcyk7CiAgICAgICAgICAg
ICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICBtX2NsaWVudC0+ZGlkUmVjZWl2ZU1lc3Nh
Z2UoV1RGTW92ZShtZXNzYWdlKSk7CiAgICAgICAgICAgICB9IGVsc2UgaWYgKG1fY29udGludW91
c0ZyYW1lT3BDb2RlID09IFdlYlNvY2tldEZyYW1lOjpPcENvZGVCaW5hcnkpCkBAIC02MzcsNyAr
NjM3LDcgQEAgYm9vbCBXZWJTb2NrZXRDaGFubmVsOjpwcm9jZXNzRnJhbWUoKQogICAgICAgICAg
ICAgICAgIG1lc3NhZ2UgPSBlbXB0eVN0cmluZygpOwogICAgICAgICAgICAgc2tpcEJ1ZmZlcihm
cmFtZUVuZCAtIG1fYnVmZmVyLmRhdGEoKSk7CiAgICAgICAgICAgICBpZiAobWVzc2FnZS5pc051
bGwoKSkKLSAgICAgICAgICAgICAgICBmYWlsKCJDb3VsZCBub3QgZGVjb2RlIGEgdGV4dCBmcmFt
ZSBhcyBVVEYtOC4iKTsKKyAgICAgICAgICAgICAgICBmYWlsKCJDb3VsZCBub3QgZGVjb2RlIGEg
dGV4dCBmcmFtZSBhcyBVVEYtOC4iX3MpOwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAg
ICAgIG1fY2xpZW50LT5kaWRSZWNlaXZlTWVzc2FnZShXVEZNb3ZlKG1lc3NhZ2UpKTsKICAgICAg
ICAgfSBlbHNlIHsKQEAgLTY2OSwxMyArNjY5LDEzIEBAIGJvb2wgV2ViU29ja2V0Q2hhbm5lbDo6
cHJvY2Vzc0ZyYW1lKCkKICAgICAgICAgICAgIG1fY2xvc2VFdmVudENvZGUgPSBDbG9zZUV2ZW50
Q29kZU5vU3RhdHVzUmN2ZDsKICAgICAgICAgZWxzZSBpZiAoZnJhbWUucGF5bG9hZExlbmd0aCA9
PSAxKSB7CiAgICAgICAgICAgICBtX2Nsb3NlRXZlbnRDb2RlID0gQ2xvc2VFdmVudENvZGVBYm5v
cm1hbENsb3N1cmU7Ci0gICAgICAgICAgICBmYWlsKCJSZWNlaXZlZCBhIGJyb2tlbiBjbG9zZSBm
cmFtZSBjb250YWluaW5nIGFuIGludmFsaWQgc2l6ZSBib2R5LiIpOworICAgICAgICAgICAgZmFp
bCgiUmVjZWl2ZWQgYSBicm9rZW4gY2xvc2UgZnJhbWUgY29udGFpbmluZyBhbiBpbnZhbGlkIHNp
emUgYm9keS4iX3MpOwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9IGVsc2Ug
ewogICAgICAgICAgICAgbV9jbG9zZUV2ZW50Q29kZSA9IGZyYW1lLnBheWxvYWRbMF0gPDwgOCB8
IGZyYW1lLnBheWxvYWRbMV07CiAgICAgICAgICAgICBpZiAobV9jbG9zZUV2ZW50Q29kZSA9PSBD
bG9zZUV2ZW50Q29kZU5vU3RhdHVzUmN2ZCB8fCBtX2Nsb3NlRXZlbnRDb2RlID09IENsb3NlRXZl
bnRDb2RlQWJub3JtYWxDbG9zdXJlIHx8IG1fY2xvc2VFdmVudENvZGUgPT0gQ2xvc2VFdmVudENv
ZGVUTFNIYW5kc2hha2UpIHsKICAgICAgICAgICAgICAgICBtX2Nsb3NlRXZlbnRDb2RlID0gQ2xv
c2VFdmVudENvZGVBYm5vcm1hbENsb3N1cmU7Ci0gICAgICAgICAgICAgICAgZmFpbCgiUmVjZWl2
ZWQgYSBicm9rZW4gY2xvc2UgZnJhbWUgY29udGFpbmluZyBhIHJlc2VydmVkIHN0YXR1cyBjb2Rl
LiIpOworICAgICAgICAgICAgICAgIGZhaWwoIlJlY2VpdmVkIGEgYnJva2VuIGNsb3NlIGZyYW1l
IGNvbnRhaW5pbmcgYSByZXNlcnZlZCBzdGF0dXMgY29kZS4iX3MpOwogICAgICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtNzYxLDcgKzc2MSw3
IEBAIHZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6cHJvY2Vzc091dGdvaW5nRnJhbWVRdWV1ZSgpCiAg
ICAgICAgIGNhc2UgUXVldWVkRnJhbWVUeXBlU3RyaW5nOiB7CiAgICAgICAgICAgICBzZW5kRnJh
bWUoZnJhbWUtPm9wQ29kZSwgZnJhbWUtPnN0cmluZ0RhdGEuZGF0YUFzVUludDhQdHIoKSwgZnJh
bWUtPnN0cmluZ0RhdGEubGVuZ3RoKCksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRo
aXMgfV0gKGJvb2wgc3VjY2VzcykgewogICAgICAgICAgICAgICAgIGlmICghc3VjY2VzcykKLSAg
ICAgICAgICAgICAgICAgICAgZmFpbCgiRmFpbGVkIHRvIHNlbmQgV2ViU29ja2V0IGZyYW1lLiIp
OworICAgICAgICAgICAgICAgICAgICBmYWlsKCJGYWlsZWQgdG8gc2VuZCBXZWJTb2NrZXQgZnJh
bWUuIl9zKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0K
QEAgLTc2OSw3ICs3NjksNyBAQCB2b2lkIFdlYlNvY2tldENoYW5uZWw6OnByb2Nlc3NPdXRnb2lu
Z0ZyYW1lUXVldWUoKQogICAgICAgICBjYXNlIFF1ZXVlZEZyYW1lVHlwZVZlY3RvcjoKICAgICAg
ICAgICAgIHNlbmRGcmFtZShmcmFtZS0+b3BDb2RlLCBmcmFtZS0+dmVjdG9yRGF0YS5kYXRhKCks
IGZyYW1lLT52ZWN0b3JEYXRhLnNpemUoKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAq
dGhpcyB9XSAoYm9vbCBzdWNjZXNzKSB7CiAgICAgICAgICAgICAgICAgaWYgKCFzdWNjZXNzKQot
ICAgICAgICAgICAgICAgICAgICBmYWlsKCJGYWlsZWQgdG8gc2VuZCBXZWJTb2NrZXQgZnJhbWUu
Iik7CisgICAgICAgICAgICAgICAgICAgIGZhaWwoIkZhaWxlZCB0byBzZW5kIFdlYlNvY2tldCBm
cmFtZS4iX3MpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICBicmVhazsKIApAQCAtNzk2
LDcgKzc5Niw3IEBAIHZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6cHJvY2Vzc091dGdvaW5nRnJhbWVR
dWV1ZSgpCiAgICAgICAgICAgICAgICAgbV9ibG9iTG9hZGVyU3RhdHVzID0gQmxvYkxvYWRlck5v
dFN0YXJ0ZWQ7CiAgICAgICAgICAgICAgICAgc2VuZEZyYW1lKGZyYW1lLT5vcENvZGUsIHN0YXRp
Y19jYXN0PGNvbnN0IHVpbnQ4X3QqPihyZXN1bHQtPmRhdGEoKSksIHJlc3VsdC0+Ynl0ZUxlbmd0
aCgpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH1dIChib29sIHN1Y2Nlc3Mp
IHsKICAgICAgICAgICAgICAgICAgICAgaWYgKCFzdWNjZXNzKQotICAgICAgICAgICAgICAgICAg
ICAgICAgZmFpbCgiRmFpbGVkIHRvIHNlbmQgV2ViU29ja2V0IGZyYW1lLiIpOworICAgICAgICAg
ICAgICAgICAgICAgICAgZmFpbCgiRmFpbGVkIHRvIHNlbmQgV2ViU29ja2V0IGZyYW1lLiJfcyk7
CiAgICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAg
ICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29j
a2V0RGVmbGF0ZUZyYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMv
V2ViU29ja2V0RGVmbGF0ZUZyYW1lci5jcHAKaW5kZXggMDFmZGZlMDI5ZTQ2ZmNlODYyZDVlNjE2
Y2ZjNDk1ZDY5Y2M2MTQ2NS4uYTg3ZmU1ZDdhYWU1ZTgwZDM5NzU0OTljNGM1NmE2ZTAxN2RmMTFk
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tl
dERlZmxhdGVGcmFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0
cy9XZWJTb2NrZXREZWZsYXRlRnJhbWVyLmNwcApAQCAtNzYsNyArNzYsNyBAQCBib29sIFdlYlNv
Y2tldEV4dGVuc2lvbkRlZmxhdGVGcmFtZTo6cHJvY2Vzc1Jlc3BvbnNlKGNvbnN0IEhhc2hNYXA8
U3RyaW5nLCBTdHJpbgogCiAgICAgdW5zaWduZWQgZXhwZWN0ZWROdW1QYXJhbWV0ZXJzID0gMDsK
ICAgICBpbnQgd2luZG93Qml0cyA9IDE1OwotICAgIGF1dG8gcGFyYW1ldGVyID0gc2VydmVyUGFy
YW1ldGVycy5maW5kKCJtYXhfd2luZG93X2JpdHMiKTsKKyAgICBhdXRvIHBhcmFtZXRlciA9IHNl
cnZlclBhcmFtZXRlcnMuZmluZCgibWF4X3dpbmRvd19iaXRzIl9zKTsKICAgICBpZiAocGFyYW1l
dGVyICE9IHNlcnZlclBhcmFtZXRlcnMuZW5kKCkpIHsKICAgICAgICAgd2luZG93Qml0cyA9IHBh
cnNlSW50ZWdlckFsbG93aW5nVHJhaWxpbmdKdW5rPGludD4ocGFyYW1ldGVyLT52YWx1ZSkudmFs
dWVfb3IoMCk7CiAgICAgICAgIGlmICh3aW5kb3dCaXRzIDwgOCB8fCB3aW5kb3dCaXRzID4gMTUp
IHsKQEAgLTg3LDcgKzg3LDcgQEAgYm9vbCBXZWJTb2NrZXRFeHRlbnNpb25EZWZsYXRlRnJhbWU6
OnByb2Nlc3NSZXNwb25zZShjb25zdCBIYXNoTWFwPFN0cmluZywgU3RyaW4KICAgICB9CiAKICAg
ICBXZWJTb2NrZXREZWZsYXRlcjo6Q29udGV4dFRha2VPdmVyTW9kZSBtb2RlID0gV2ViU29ja2V0
RGVmbGF0ZXI6OlRha2VPdmVyQ29udGV4dDsKLSAgICBwYXJhbWV0ZXIgPSBzZXJ2ZXJQYXJhbWV0
ZXJzLmZpbmQoIm5vX2NvbnRleHRfdGFrZW92ZXIiKTsKKyAgICBwYXJhbWV0ZXIgPSBzZXJ2ZXJQ
YXJhbWV0ZXJzLmZpbmQoIm5vX2NvbnRleHRfdGFrZW92ZXIiX3MpOwogICAgIGlmIChwYXJhbWV0
ZXIgIT0gc2VydmVyUGFyYW1ldGVycy5lbmQoKSkgewogICAgICAgICBpZiAoIXBhcmFtZXRlci0+
dmFsdWUuaXNOdWxsKCkpIHsKICAgICAgICAgICAgIG1fZmFpbHVyZVJlYXNvbiA9ICJSZWNlaXZl
ZCBpbnZhbGlkIG5vX2NvbnRleHRfdGFrZW92ZXIgcGFyYW1ldGVyIl9zOwpAQCAtMTYxLDcgKzE2
MSw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxEZWZsYXRlUmVzdWx0SG9sZGVyPiBXZWJTb2NrZXREZWZs
YXRlRnJhbWVyOjpkZWZsYXRlKFdlYlNvY2tldEZyCiAgICAgaWYgKCFlbmFibGVkKCkgfHwgIVdl
YlNvY2tldEZyYW1lOjppc05vbkNvbnRyb2xPcENvZGUoZnJhbWUub3BDb2RlKSB8fCAhZnJhbWUu
cGF5bG9hZExlbmd0aCkKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICBpZiAoIW1fZGVmbGF0
ZXItPmFkZEJ5dGVzKGZyYW1lLnBheWxvYWQsIGZyYW1lLnBheWxvYWRMZW5ndGgpIHx8ICFtX2Rl
ZmxhdGVyLT5maW5pc2goKSkgewotICAgICAgICByZXN1bHQtPmZhaWwoIkZhaWxlZCB0byBjb21w
cmVzcyBmcmFtZSIpOworICAgICAgICByZXN1bHQtPmZhaWwoIkZhaWxlZCB0byBjb21wcmVzcyBm
cmFtZSJfcyk7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogICAgIGZyYW1lLmNvbXBy
ZXNzID0gdHJ1ZTsKQEAgLTE4MCwxNyArMTgwLDE3IEBAIHN0ZDo6dW5pcXVlX3B0cjxJbmZsYXRl
UmVzdWx0SG9sZGVyPiBXZWJTb2NrZXREZWZsYXRlRnJhbWVyOjppbmZsYXRlKFdlYlNvY2tldEZy
CiB7CiAgICAgYXV0byByZXN1bHQgPSBtYWtlVW5pcXVlPEluZmxhdGVSZXN1bHRIb2xkZXI+KCp0
aGlzKTsKICAgICBpZiAoIWVuYWJsZWQoKSAmJiBmcmFtZS5jb21wcmVzcykgewotICAgICAgICBy
ZXN1bHQtPmZhaWwoIkNvbXByZXNzZWQgYml0IG11c3QgYmUgMCBpZiBubyBuZWdvdGlhdGVkIGRl
ZmxhdGUtZnJhbWUgZXh0ZW5zaW9uIik7CisgICAgICAgIHJlc3VsdC0+ZmFpbCgiQ29tcHJlc3Nl
ZCBiaXQgbXVzdCBiZSAwIGlmIG5vIG5lZ290aWF0ZWQgZGVmbGF0ZS1mcmFtZSBleHRlbnNpb24i
X3MpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KICAgICBpZiAoIWZyYW1lLmNvbXBy
ZXNzKQogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIGlmICghV2ViU29ja2V0RnJhbWU6Omlz
Tm9uQ29udHJvbE9wQ29kZShmcmFtZS5vcENvZGUpKSB7Ci0gICAgICAgIHJlc3VsdC0+ZmFpbCgi
UmVjZWl2ZWQgdW5leHBlY3RlZCBjb21wcmVzc2VkIGZyYW1lIik7CisgICAgICAgIHJlc3VsdC0+
ZmFpbCgiUmVjZWl2ZWQgdW5leHBlY3RlZCBjb21wcmVzc2VkIGZyYW1lIl9zKTsKICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKICAgICB9CiAgICAgaWYgKCFtX2luZmxhdGVyLT5hZGRCeXRlcyhmcmFt
ZS5wYXlsb2FkLCBmcmFtZS5wYXlsb2FkTGVuZ3RoKSB8fCAhbV9pbmZsYXRlci0+ZmluaXNoKCkp
IHsKLSAgICAgICAgcmVzdWx0LT5mYWlsKCJGYWlsZWQgdG8gZGVjb21wcmVzcyBmcmFtZSIpOwor
ICAgICAgICByZXN1bHQtPmZhaWwoIkZhaWxlZCB0byBkZWNvbXByZXNzIGZyYW1lIl9zKTsKICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAgICAgZnJhbWUuY29tcHJlc3MgPSBmYWxzZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRF
eHRlbnNpb25EaXNwYXRjaGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0
cy9XZWJTb2NrZXRFeHRlbnNpb25EaXNwYXRjaGVyLmNwcAppbmRleCA3YWYyYzM3OTFhMGFlOGQ2
ZWU5ZTkyOTk4MzU3ZTg2MGFmYmI3NWRkLi5lNWNmMTI1MTFlZjNlNTY0ZjYzYjg1ZDhjYjBiYjFl
ZTQwYzVkYTNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMv
V2ViU29ja2V0RXh0ZW5zaW9uRGlzcGF0Y2hlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEV4dGVuc2lvbkRpc3BhdGNoZXIuY3BwCkBAIC05Myw3
ICs5Myw3IEBAIGJvb2wgV2ViU29ja2V0RXh0ZW5zaW9uRGlzcGF0Y2hlcjo6cHJvY2Vzc0hlYWRl
clZhbHVlKGNvbnN0IFN0cmluZyYgaGVhZGVyVmFsdWUpCiAKICAgICAvLyBJZiB3ZSBkb24ndCBz
ZW5kIFNlYy1XZWJTb2NrZXQtRXh0ZW5zaW9ucyBoZWFkZXIsIHRoZSBzZXJ2ZXIgc2hvdWxkIG5v
dCByZXR1cm4gdGhlIGhlYWRlci4KICAgICBpZiAoIW1fcHJvY2Vzc29ycy5zaXplKCkpIHsKLSAg
ICAgICAgZmFpbCgiUmVjZWl2ZWQgdW5leHBlY3RlZCBTZWMtV2ViU29ja2V0LUV4dGVuc2lvbnMg
aGVhZGVyIik7CisgICAgICAgIGZhaWwoIlJlY2VpdmVkIHVuZXhwZWN0ZWQgU2VjLVdlYlNvY2tl
dC1FeHRlbnNpb25zIGhlYWRlciJfcyk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAK
QEAgLTEwMyw3ICsxMDMsNyBAQCBib29sIFdlYlNvY2tldEV4dGVuc2lvbkRpc3BhdGNoZXI6OnBy
b2Nlc3NIZWFkZXJWYWx1ZShjb25zdCBTdHJpbmcmIGhlYWRlclZhbHVlKQogICAgICAgICBTdHJp
bmcgZXh0ZW5zaW9uVG9rZW47CiAgICAgICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IGV4dGVu
c2lvblBhcmFtZXRlcnM7CiAgICAgICAgIGlmICghcGFyc2VyLnBhcnNlRXh0ZW5zaW9uKGV4dGVu
c2lvblRva2VuLCBleHRlbnNpb25QYXJhbWV0ZXJzKSkgewotICAgICAgICAgICAgZmFpbCgiU2Vj
LVdlYlNvY2tldC1FeHRlbnNpb25zIGhlYWRlciBpcyBpbnZhbGlkIik7CisgICAgICAgICAgICBm
YWlsKCJTZWMtV2ViU29ja2V0LUV4dGVuc2lvbnMgaGVhZGVyIGlzIGludmFsaWQiX3MpOwogICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRGcmFtZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RnJhbWUuY3BwCmluZGV4IGUzOWUwMTlh
ZTAyZDk2NzIzOGY5NjU3MmQ1M2VlMjNjMzQ1NmYyMzMuLmJhMWU2MjU0OTE3YWZmNGZhN2I4MmM2
ODg0ZmViMmFjOTA3MGQzYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
c29ja2V0cy9XZWJTb2NrZXRGcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJzb2NrZXRzL1dlYlNvY2tldEZyYW1lLmNwcApAQCAtODIsMTEgKzgyLDExIEBAIFdlYlNvY2tl
dEZyYW1lOjpQYXJzZUZyYW1lUmVzdWx0IFdlYlNvY2tldEZyYW1lOjpwYXJzZUZyYW1lKHVpbnQ4
X3QqIGRhdGEsIHNpemVfCiAgICAgICAgICAgICBwYXlsb2FkTGVuZ3RoNjQgfD0gc3RhdGljX2Nh
c3Q8dWludDhfdD4oKnArKyk7CiAgICAgICAgIH0KICAgICAgICAgaWYgKGV4dGVuZGVkUGF5bG9h
ZExlbmd0aFNpemUgPT0gMiAmJiBwYXlsb2FkTGVuZ3RoNjQgPD0gbWF4UGF5bG9hZExlbmd0aFdp
dGhvdXRFeHRlbmRlZExlbmd0aEZpZWxkKSB7Ci0gICAgICAgICAgICBlcnJvclN0cmluZyA9ICJU
aGUgbWluaW1hbCBudW1iZXIgb2YgYnl0ZXMgTVVTVCBiZSB1c2VkIHRvIGVuY29kZSB0aGUgbGVu
Z3RoIjsKKyAgICAgICAgICAgIGVycm9yU3RyaW5nID0gIlRoZSBtaW5pbWFsIG51bWJlciBvZiBi
eXRlcyBNVVNUIGJlIHVzZWQgdG8gZW5jb2RlIHRoZSBsZW5ndGgiX3M7CiAgICAgICAgICAgICBy
ZXR1cm4gRnJhbWVFcnJvcjsKICAgICAgICAgfQogICAgICAgICBpZiAoZXh0ZW5kZWRQYXlsb2Fk
TGVuZ3RoU2l6ZSA9PSA4ICYmIHBheWxvYWRMZW5ndGg2NCA8PSAweEZGRkYpIHsKLSAgICAgICAg
ICAgIGVycm9yU3RyaW5nID0gIlRoZSBtaW5pbWFsIG51bWJlciBvZiBieXRlcyBNVVNUIGJlIHVz
ZWQgdG8gZW5jb2RlIHRoZSBsZW5ndGgiOworICAgICAgICAgICAgZXJyb3JTdHJpbmcgPSAiVGhl
IG1pbmltYWwgbnVtYmVyIG9mIGJ5dGVzIE1VU1QgYmUgdXNlZCB0byBlbmNvZGUgdGhlIGxlbmd0
aCJfczsKICAgICAgICAgICAgIHJldHVybiBGcmFtZUVycm9yOwogICAgICAgICB9CiAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUldlYkdMTGF5ZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUldlYkdMTGF5ZXIuY3BwCmlu
ZGV4IDgyNmRlMTZhNzA2OTFkNDIwYzU5NDY3ZGM0YTcxZGVkZmIwYjY1YzYuLmQ3NDBmYmI4ODNk
MjU4YWQxZTVkYjdmNmJiZmQxNjY1YjQ0OWI5ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2VieHIvV2ViWFJXZWJHTExheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnhyL1dlYlhSV2ViR0xMYXllci5jcHAKQEAgLTY0LDcgKzY0LDcgQEAgc3RhdGlj
IEV4Y2VwdGlvbk9yPHN0ZDo6dW5pcXVlX3B0cjxXZWJYUk9wYXF1ZUZyYW1lYnVmZmVyPj4gY3Jl
YXRlT3BhcXVlRnJhbWVidWYKIHsKICAgICBhdXRvIGRldmljZSA9IHNlc3Npb24uZGV2aWNlKCk7
CiAgICAgaWYgKCFkZXZpY2UpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBPcGVyYXRpb25F
cnJvciwgIkNhbm5vdCBjcmVhdGUgYW4gWFJXZWJHTExheWVyIHdpdGggYW4gWFJTZXNzaW9uIHRo
YXQgaGFzIGVuZGVkLiIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE9wZXJhdGlvbkVy
cm9yLCAiQ2Fubm90IGNyZWF0ZSBhbiBYUldlYkdMTGF5ZXIgd2l0aCBhbiBYUlNlc3Npb24gdGhh
dCBoYXMgZW5kZWQuIl9zIH07CiAKICAgICAvLyA5LjEuIEluaXRpYWxpemUgbGF5ZXLigJlzIGFu
dGlhbGlhcyB0byBsYXllckluaXTigJlzIGFudGlhbGlhcyB2YWx1ZS4KICAgICAvLyA5LjIuIExl
dCBmcmFtZWJ1ZmZlclNpemUgYmUgdGhlIHJlY29tbWVuZGVkIFdlYkdMIGZyYW1lYnVmZmVyIHJl
c29sdXRpb24gbXVsdGlwbGllZCBieSBsYXllckluaXQncyBmcmFtZWJ1ZmZlclNjYWxlRmFjdG9y
LgpAQCAtODIsNyArODIsNyBAQCBzdGF0aWMgRXhjZXB0aW9uT3I8c3RkOjp1bmlxdWVfcHRyPFdl
YlhST3BhcXVlRnJhbWVidWZmZXI+PiBjcmVhdGVPcGFxdWVGcmFtZWJ1ZgogICAgIC8vIDkuNS4g
SWYgbGF5ZXLigJlzIHJlc291cmNlcyB3ZXJlIHVuYWJsZSB0byBiZSBjcmVhdGVkIGZvciBhbnkg
cmVhc29uLCB0aHJvdyBhbiBPcGVyYXRpb25FcnJvciBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCiAg
ICAgYXV0byBsYXllckhhbmRsZSA9IGRldmljZS0+Y3JlYXRlTGF5ZXJQcm9qZWN0aW9uKHdpZHRo
LCBoZWlnaHQsIGluaXQuYWxwaGEpOwogICAgIGlmICghbGF5ZXJIYW5kbGUpCi0gICAgICAgIHJl
dHVybiBFeGNlcHRpb24geyBPcGVyYXRpb25FcnJvciwgIlVuYWJsZSB0byBhbGxvY2F0ZSBYUldl
YkdMTGF5ZXIgR1BVIHJlc291cmNlcy4ifTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE9w
ZXJhdGlvbkVycm9yLCAiVW5hYmxlIHRvIGFsbG9jYXRlIFhSV2ViR0xMYXllciBHUFUgcmVzb3Vy
Y2VzLiJfcyB9OwogCiAgICAgV2ViWFJPcGFxdWVGcmFtZWJ1ZmZlcjo6QXR0cmlidXRlcyBhdHRy
aWJ1dGVzIHsKICAgICAgICAgLmFscGhhID0gaW5pdC5hbHBoYSwKQEAgLTkzLDcgKzkzLDcgQEAg
c3RhdGljIEV4Y2VwdGlvbk9yPHN0ZDo6dW5pcXVlX3B0cjxXZWJYUk9wYXF1ZUZyYW1lYnVmZmVy
Pj4gY3JlYXRlT3BhcXVlRnJhbWVidWYKIAogICAgIGF1dG8gZnJhbWVidWZmZXIgPSBXZWJYUk9w
YXF1ZUZyYW1lYnVmZmVyOjpjcmVhdGUoKmxheWVySGFuZGxlLCBjb250ZXh0LCBXVEZNb3ZlKGF0
dHJpYnV0ZXMpLCB3aWR0aCwgaGVpZ2h0KTsKICAgICBpZiAoIWZyYW1lYnVmZmVyKQotICAgICAg
ICByZXR1cm4gRXhjZXB0aW9uIHsgT3BlcmF0aW9uRXJyb3IsICJVbmFibGUgdG8gY3JlYXRlIGEg
ZnJhbWVidWZmZXIuIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgT3BlcmF0aW9uRXJy
b3IsICJVbmFibGUgdG8gY3JlYXRlIGEgZnJhbWVidWZmZXIuIl9zIH07CiAgICAgCiAgICAgcmV0
dXJuIGZyYW1lYnVmZmVyOwogfQpAQCAtMTA0LDcgKzEwNCw3IEBAIEV4Y2VwdGlvbk9yPFJlZjxX
ZWJYUldlYkdMTGF5ZXI+PiBXZWJYUldlYkdMTGF5ZXI6OmNyZWF0ZShSZWY8V2ViWFJTZXNzaW9u
PiYmIHNlCiAgICAgLy8gMS4gTGV0IGxheWVyIGJlIGEgbmV3IFhSV2ViR0xMYXllcgogICAgIC8v
IDIuIElmIHNlc3Npb27igJlzIGVuZGVkIHZhbHVlIGlzIHRydWUsIHRocm93IGFuIEludmFsaWRT
dGF0ZUVycm9yIGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KICAgICBpZiAoc2Vzc2lvbi0+ZW5kZWQo
KSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiQ2Fubm90
IGNyZWF0ZSBhbiBYUldlYkdMTGF5ZXIgd2l0aCBhbiBYUlNlc3Npb24gdGhhdCBoYXMgZW5kZWQu
IiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJDYW5u
b3QgY3JlYXRlIGFuIFhSV2ViR0xMYXllciB3aXRoIGFuIFhSU2Vzc2lvbiB0aGF0IGhhcyBlbmRl
ZC4iX3MgfTsKIAogICAgIC8vIDMuIElmIGNvbnRleHQgaXMgbG9zdCwgdGhyb3cgYW4gSW52YWxp
ZFN0YXRlRXJyb3IgYW5kIGFib3J0IHRoZXNlIHN0ZXBzLgogICAgIC8vIDQuIElmIHNlc3Npb24g
aXMgYW4gaW1tZXJzaXZlIHNlc3Npb24gYW5kIGNvbnRleHTigJlzIFhSIGNvbXBhdGlibGUgYm9v
bGVhbiBpcyBmYWxzZSwgdGhyb3cKQEAgLTExMywxMSArMTEzLDExIEBAIEV4Y2VwdGlvbk9yPFJl
ZjxXZWJYUldlYkdMTGF5ZXI+PiBXZWJYUldlYkdMTGF5ZXI6OmNyZWF0ZShSZWY8V2ViWFJTZXNz
aW9uPiYmIHNlCiAgICAgICAgIFsmXShjb25zdCBSZWZQdHI8V2ViR0xSZW5kZXJpbmdDb250ZXh0
QmFzZT4mIGJhc2VDb250ZXh0KSAtPiBFeGNlcHRpb25PcjxSZWY8V2ViWFJXZWJHTExheWVyPj4K
ICAgICAgICAgewogICAgICAgICAgICAgaWYgKGJhc2VDb250ZXh0LT5pc0NvbnRleHRMb3N0KCkp
Ci0gICAgICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAi
Q2Fubm90IGNyZWF0ZSBhbiBYUldlYkdMTGF5ZXIgd2l0aCBhIGxvc3QgV2ViR0wgY29udGV4dC4i
IH07CisgICAgICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9y
LCAiQ2Fubm90IGNyZWF0ZSBhbiBYUldlYkdMTGF5ZXIgd2l0aCBhIGxvc3QgV2ViR0wgY29udGV4
dC4iX3MgfTsKIAogICAgICAgICAgICAgYXV0byBtb2RlID0gc2Vzc2lvbi0+bW9kZSgpOwogICAg
ICAgICAgICAgaWYgKChtb2RlID09IFhSU2Vzc2lvbk1vZGU6OkltbWVyc2l2ZUFyIHx8IG1vZGUg
PT0gWFJTZXNzaW9uTW9kZTo6SW1tZXJzaXZlVnIpICYmICFiYXNlQ29udGV4dC0+aXNYUkNvbXBh
dGlibGUoKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRl
RXJyb3IsICJDYW5ub3QgY3JlYXRlIGFuIFhSV2ViR0xMYXllciB3aXRoIFdlYkdMIGNvbnRleHQg
bm90IG1hcmtlZCBhcyBYUiBjb21wYXRpYmxlLiIgfTsKKyAgICAgICAgICAgICAgICByZXR1cm4g
RXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJDYW5ub3QgY3JlYXRlIGFuIFhSV2ViR0xM
YXllciB3aXRoIFdlYkdMIGNvbnRleHQgbm90IG1hcmtlZCBhcyBYUiBjb21wYXRpYmxlLiJfcyB9
OwogCiAKICAgICAgICAgICAgIC8vIDUuIEluaXRpYWxpemUgbGF5ZXLigJlzIGNvbnRleHQgdG8g
Y29udGV4dC4gKHNlZSBjb25zdHJ1Y3RvcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQVhJbWFnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FY
SW1hZ2UuY3BwCmluZGV4IDc1ZmVhOGIxNTJiMTZlNjk1ZDY0ZTI5OTJkOTM4M2E4NmNmZTIyZGEu
LjI2M2I3OTY5MGI5NzI5MzcwMjU3OWNmMGQwZTc4MjgwZDJmZmY3YjQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BWEltYWdlLmNwcApAQCAtNTcsNyArNTcsNyBAQCBBY2Nlc3NpYmls
aXR5Um9sZSBBWEltYWdlOjpyb2xlVmFsdWUoKSBjb25zdAogCiBzdGQ6Om9wdGlvbmFsPEFYQ29y
ZU9iamVjdDo6QWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yPiBBWEltYWdlOjppbWFnZU92ZXJs
YXlFbGVtZW50cygpCiB7Ci0gICAgQVhUUkFDRSgiQVhJbWFnZTo6aW1hZ2VPdmVybGF5RWxlbWVu
dHMiKTsKKyAgICBBWFRSQUNFKCJBWEltYWdlOjppbWFnZU92ZXJsYXlFbGVtZW50cyJfcyk7CiAK
ICAgICBhdXRvJiBjaGlsZHJlbiA9IHRoaXMtPmNoaWxkcmVuKCk7CiAgICAgaWYgKGNoaWxkcmVu
LnNpemUoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhMb2dn
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWExvZ2dlci5jcHAKaW5kZXgg
MGI2Y2NkM2I3ZTkyOGNlODc4MGJkYzdmMjFiMDhlNzNlNjQyOWUzMy4uOTQxNDYxODJhNWFiZGRi
MmM5MGU2MTYxYjBmZGZhMGY2YzNlZTU0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BWExvZ2dlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0
eS9BWExvZ2dlci5jcHAKQEAgLTU1LDcgKzU1LDcgQEAgc3RhdGljIGJvb2wgc2hvdWxkTG9nKCkK
IEFYTG9nZ2VyOjpBWExvZ2dlcihjb25zdCBTdHJpbmcmIG1ldGhvZE5hbWUpCiAgICAgOiBtX21l
dGhvZE5hbWUobWV0aG9kTmFtZSkKIHsKLSAgICBpZiAoYXV0byogY2hhbm5lbCA9IGdldExvZ0No
YW5uZWwoIkFjY2Vzc2liaWxpdHkiKSkKKyAgICBpZiAoYXV0byogY2hhbm5lbCA9IGdldExvZ0No
YW5uZWwoIkFjY2Vzc2liaWxpdHkiX3MpKQogICAgICAgICBjaGFubmVsLT5sZXZlbCA9IFdURkxv
Z0xldmVsOjpEZWJ1ZzsKIAogICAgIGlmIChzaG91bGRMb2coKSkgewpAQCAtNzgsNiArNzgsMTIg
QEAgdm9pZCBBWExvZ2dlcjo6bG9nKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkKICAgICAgICAgTE9H
KEFjY2Vzc2liaWxpdHksICIlcyIsIG1lc3NhZ2UudXRmOCgpLmRhdGEoKSk7CiB9CiAKK3ZvaWQg
QVhMb2dnZXI6OmxvZyhjb25zdCBjaGFyKiBtZXNzYWdlKQoreworICAgIGlmIChzaG91bGRMb2co
KSkKKyAgICAgICAgTE9HKEFjY2Vzc2liaWxpdHksICIlcyIsIG1lc3NhZ2UpOworfQorCiB2b2lk
IEFYTG9nZ2VyOjpsb2coUmVmUHRyPEFYQ29yZU9iamVjdD4gb2JqZWN0KQogewogICAgIGlmIChz
aG91bGRMb2coKSkgewpAQCAtMzI4LDE1ICszMzQsMTUgQEAgVGV4dFN0cmVhbSYgb3BlcmF0b3I8
PChUZXh0U3RyZWFtJiBzdHJlYW0sIEFjY2Vzc2liaWxpdHlTZWFyY2hLZXkgc2VhcmNoS2V5KQog
VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiBzdHJlYW0sIGNvbnN0IEFjY2Vzc2li
aWxpdHlTZWFyY2hDcml0ZXJpYSYgY3JpdGVyaWEpCiB7CiAgICAgVGV4dFN0cmVhbTo6R3JvdXBT
Y29wZSBncm91cFNjb3BlKHN0cmVhbSk7Ci0gICAgYXV0byBzdHJlYW1Dcml0ZXJpYU9iamVjdCA9
IFsmc3RyZWFtXSAoU3RyaW5nIG9iamVjdExhYmVsLCBhdXRvKiBheE9iamVjdCkgeworICAgIGF1
dG8gc3RyZWFtQ3JpdGVyaWFPYmplY3QgPSBbJnN0cmVhbV0gKEFTQ0lJTGl0ZXJhbCBvYmplY3RM
YWJlbCwgYXV0byogYXhPYmplY3QpIHsKICAgICAgICAgc3RyZWFtLnN0YXJ0R3JvdXAoKTsKLSAg
ICAgICAgc3RyZWFtIDw8IG9iamVjdExhYmVsIDw8ICIgIiA8PCBheE9iamVjdCA8PCAiLCBJRCAi
IDw8IChheE9iamVjdCA/IGF4T2JqZWN0LT5vYmplY3RJRCgpIDogQVhJRCgpKTsKKyAgICAgICAg
c3RyZWFtIDw8IG9iamVjdExhYmVsLmNoYXJhY3RlcnMoKSA8PCAiICIgPDwgYXhPYmplY3QgPDwg
IiwgSUQgIiA8PCAoYXhPYmplY3QgPyBheE9iamVjdC0+b2JqZWN0SUQoKSA6IEFYSUQoKSk7CiAg
ICAgICAgIHN0cmVhbS5lbmRHcm91cCgpOwogICAgIH07CiAKICAgICBzdHJlYW0gPDwgIlNlYXJj
aENyaXRlcmlhICIgPDwgJmNyaXRlcmlhOwotICAgIHN0cmVhbUNyaXRlcmlhT2JqZWN0KCJhbmNo
b3JPYmplY3QiLCBjcml0ZXJpYS5hbmNob3JPYmplY3QpOwotICAgIHN0cmVhbUNyaXRlcmlhT2Jq
ZWN0KCJzdGFydE9iamVjdCIsIGNyaXRlcmlhLnN0YXJ0T2JqZWN0KTsKKyAgICBzdHJlYW1Dcml0
ZXJpYU9iamVjdCgiYW5jaG9yT2JqZWN0Il9zLCBjcml0ZXJpYS5hbmNob3JPYmplY3QpOworICAg
IHN0cmVhbUNyaXRlcmlhT2JqZWN0KCJzdGFydE9iamVjdCJfcywgY3JpdGVyaWEuc3RhcnRPYmpl
Y3QpOwogICAgIHN0cmVhbS5kdW1wUHJvcGVydHkoInNlYXJjaERpcmVjdGlvbiIsIGNyaXRlcmlh
LnNlYXJjaERpcmVjdGlvbik7CiAKICAgICBzdHJlYW0ubmV4dExpbmUoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhMb2dnZXIuaCBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQVhMb2dnZXIuaAppbmRleCBlYTg5MmYyZjk2NmM1NGRjMGNlY2UxZGE3
OTI4NGU3OTgxYTBjOTU2Li5kMWZiYWZiMTdjYmJlYzMyNGFlMjBiOWYxNmNjMDJmNzBjYTA1ZjA4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYTG9nZ2VyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWExvZ2dlci5oCkBAIC00Myw2ICs0Myw3
IEBAIHB1YmxpYzoKICAgICBBWExvZ2dlcihjb25zdCBTdHJpbmcmIG1ldGhvZE5hbWUpOwogICAg
IH5BWExvZ2dlcigpOwogICAgIHN0YXRpYyB2b2lkIGxvZyhjb25zdCBTdHJpbmcmKTsKKyAgICBz
dGF0aWMgdm9pZCBsb2coY29uc3QgY2hhciopOwogICAgIHN0YXRpYyB2b2lkIGxvZyhSZWZQdHI8
QVhDb3JlT2JqZWN0Pik7CiAgICAgc3RhdGljIHZvaWQgbG9nKGNvbnN0IFZlY3RvcjxSZWZQdHI8
QVhDb3JlT2JqZWN0Pj4mKTsKICAgICBzdGF0aWMgdm9pZCBsb2coY29uc3Qgc3RkOjpwYWlyPFJl
ZlB0cjxBWENvcmVPYmplY3Q+LCBBWE9iamVjdENhY2hlOjpBWE5vdGlmaWNhdGlvbj4mKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCmluZGV4IDc3
MjJjNmQwZDI5Nzk5OWUyYzU5OTZmYzJhZDA4ZWI5MjBiMDJjOGEuLjUzY2MwN2Y0MDAxZmFiNzI4
MjRiMmQxOWQxZWZmMDY2Mjk3YTlhZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BWE9iamVjdENhY2hlLmNwcApAQCAtMjUyLDcgKzI1Miw3IEBAIEFYT2JqZWN0Q2FjaGU6
On5BWE9iamVjdENhY2hlKCkKIAogYm9vbCBBWE9iamVjdENhY2hlOjppc01vZGFsRWxlbWVudChF
bGVtZW50JiBlbGVtZW50KSBjb25zdAogewotICAgIGJvb2wgaGFzRGlhbG9nUm9sZSA9IG5vZGVI
YXNSb2xlKCZlbGVtZW50LCAiZGlhbG9nIikgfHwgbm9kZUhhc1JvbGUoJmVsZW1lbnQsICJhbGVy
dGRpYWxvZyIpOworICAgIGJvb2wgaGFzRGlhbG9nUm9sZSA9IG5vZGVIYXNSb2xlKCZlbGVtZW50
LCAiZGlhbG9nIl9zKSB8fCBub2RlSGFzUm9sZSgmZWxlbWVudCwgImFsZXJ0ZGlhbG9nIl9zKTsK
ICAgICBib29sIGlzQXJpYU1vZGFsID0gZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoZWxl
bWVudC5hdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKGFyaWFfbW9kYWxBdHRyKSwgInRy
dWUiKTsKIAogICAgIHJldHVybiAoaGFzRGlhbG9nUm9sZSAmJiBpc0FyaWFNb2RhbCkgfHwgKGlz
PEhUTUxEaWFsb2dFbGVtZW50PihlbGVtZW50KSAmJiBkb3duY2FzdDxIVE1MRGlhbG9nRWxlbWVu
dD4oZWxlbWVudCkuaXNNb2RhbCgpKTsKQEAgLTU2MCwyMiArNTYwLDIyIEBAIHN0YXRpYyBSZWY8
QWNjZXNzaWJpbGl0eU9iamVjdD4gY3JlYXRlRnJvbVJlbmRlcmVyKFJlbmRlck9iamVjdCogcmVu
ZGVyZXIpCiAKICAgICAvLyBJZiB0aGUgbm9kZSBpcyBhcmlhIHJvbGU9Imxpc3QiIG9yIHRoZSBh
cmlhIHJvbGUgaXMgZW1wdHkgYW5kIGl0cyBhCiAgICAgLy8gdWwvb2wvZGwgdHlwZSAoaXQgc2hv
dWxkbid0IGJlIGEgbGlzdCBpZiBhcmlhIHNheXMgb3RoZXJ3aXNlKS4KLSAgICBpZiAobm9kZSAm
JiAoKG5vZGVIYXNSb2xlKG5vZGUsICJsaXN0IikgfHwgbm9kZUhhc1JvbGUobm9kZSwgImRpcmVj
dG9yeSIpKQorICAgIGlmIChub2RlICYmICgobm9kZUhhc1JvbGUobm9kZSwgImxpc3QiX3MpIHx8
IG5vZGVIYXNSb2xlKG5vZGUsICJkaXJlY3RvcnkiX3MpKQogICAgICAgICAgICAgICAgICAgICAg
IHx8IChub2RlSGFzUm9sZShub2RlLCBudWxsQXRvbSgpKSAmJiAobm9kZS0+aGFzVGFnTmFtZSh1
bFRhZykgfHwgbm9kZS0+aGFzVGFnTmFtZShvbFRhZykgfHwgbm9kZS0+aGFzVGFnTmFtZShkbFRh
ZykpKSkpCiAgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5TGlzdDo6Y3JlYXRlKHJlbmRlcmVy
KTsKIAogICAgIC8vIGFyaWEgdGFibGVzCi0gICAgaWYgKG5vZGVIYXNSb2xlKG5vZGUsICJncmlk
IikgfHwgbm9kZUhhc1JvbGUobm9kZSwgInRyZWVncmlkIikgfHwgbm9kZUhhc1JvbGUobm9kZSwg
InRhYmxlIikpCisgICAgaWYgKG5vZGVIYXNSb2xlKG5vZGUsICJncmlkIl9zKSB8fCBub2RlSGFz
Um9sZShub2RlLCAidHJlZWdyaWQiX3MpIHx8IG5vZGVIYXNSb2xlKG5vZGUsICJ0YWJsZSJfcykp
CiAgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5QVJJQUdyaWQ6OmNyZWF0ZShyZW5kZXJlcik7
Ci0gICAgaWYgKG5vZGVIYXNSb2xlKG5vZGUsICJyb3ciKSkKKyAgICBpZiAobm9kZUhhc1JvbGUo
bm9kZSwgInJvdyJfcykpCiAgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5QVJJQUdyaWRSb3c6
OmNyZWF0ZShyZW5kZXJlcik7Ci0gICAgaWYgKG5vZGVIYXNSb2xlKG5vZGUsICJncmlkY2VsbCIp
IHx8IG5vZGVIYXNSb2xlKG5vZGUsICJjZWxsIikgfHwgbm9kZUhhc1JvbGUobm9kZSwgImNvbHVt
bmhlYWRlciIpIHx8IG5vZGVIYXNSb2xlKG5vZGUsICJyb3doZWFkZXIiKSkKKyAgICBpZiAobm9k
ZUhhc1JvbGUobm9kZSwgImdyaWRjZWxsIl9zKSB8fCBub2RlSGFzUm9sZShub2RlLCAiY2VsbCJf
cykgfHwgbm9kZUhhc1JvbGUobm9kZSwgImNvbHVtbmhlYWRlciJfcykgfHwgbm9kZUhhc1JvbGUo
bm9kZSwgInJvd2hlYWRlciJfcykpCiAgICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5QVJJQUdy
aWRDZWxsOjpjcmVhdGUocmVuZGVyZXIpOwogCiAgICAgLy8gYXJpYSB0cmVlCi0gICAgaWYgKG5v
ZGVIYXNSb2xlKG5vZGUsICJ0cmVlIikpCisgICAgaWYgKG5vZGVIYXNSb2xlKG5vZGUsICJ0cmVl
Il9zKSkKICAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlUcmVlOjpjcmVhdGUocmVuZGVyZXIp
OwotICAgIGlmIChub2RlSGFzUm9sZShub2RlLCAidHJlZWl0ZW0iKSkKKyAgICBpZiAobm9kZUhh
c1JvbGUobm9kZSwgInRyZWVpdGVtIl9zKSkKICAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlU
cmVlSXRlbTo6Y3JlYXRlKHJlbmRlcmVyKTsKIAogICAgIGlmIChub2RlICYmIGlzPEhUTUxMYWJl
bEVsZW1lbnQ+KG5vZGUpICYmIG5vZGVIYXNSb2xlKG5vZGUsIG51bGxBdG9tKCkpKQpAQCAtODY1
LDcgKzg2NSw3IEBAIEFjY2Vzc2liaWxpdHlPYmplY3QqIEFYT2JqZWN0Q2FjaGU6OmNyZWF0ZShB
Y2Nlc3NpYmlsaXR5Um9sZSByb2xlKQogCiB2b2lkIEFYT2JqZWN0Q2FjaGU6OnJlbW92ZShBWElE
IGF4SUQpCiB7Ci0gICAgQVhUUkFDRSgiQVhPYmplY3RDYWNoZTo6cmVtb3ZlIik7CisgICAgQVhU
UkFDRSgiQVhPYmplY3RDYWNoZTo6cmVtb3ZlIl9zKTsKICAgICBBWExPRyhtYWtlU3RyaW5nKCJB
WElEICIsIGF4SUQubG9nZ2luZ1N0cmluZygpKSk7CiAKICAgICBpZiAoIWF4SUQpCkBAIC05Nzcs
NyArOTc3LDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjp0ZXh0Q2hhbmdlZChOb2RlKiBub2RlKQog
CiB2b2lkIEFYT2JqZWN0Q2FjaGU6OnRleHRDaGFuZ2VkKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9i
amVjdCkKIHsKLSAgICBBWFRSQUNFKCJBWE9iamVjdENhY2hlOjp0ZXh0Q2hhbmdlZCIpOworICAg
IEFYVFJBQ0UoIkFYT2JqZWN0Q2FjaGU6OnRleHRDaGFuZ2VkIl9zKTsKICAgICBBWExPRyhvYmpl
Y3QpOwogCiAgICAgaWYgKCFvYmplY3QpCkBAIC0xMDgyLDcgKzEwODIsNyBAQCB2b2lkIEFYT2Jq
ZWN0Q2FjaGU6OmhhbmRsZUNoaWxkcmVuQ2hhbmdlZChBY2Nlc3NpYmlsaXR5T2JqZWN0JiBvYmpl
Y3QpCiAKIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlTWVudU9wZW5lZChOb2RlKiBub2RlKQog
ewotICAgIGlmICghbm9kZSB8fCAhbm9kZS0+cmVuZGVyZXIoKSB8fCAhbm9kZUhhc1JvbGUobm9k
ZSwgIm1lbnUiKSkKKyAgICBpZiAoIW5vZGUgfHwgIW5vZGUtPnJlbmRlcmVyKCkgfHwgIW5vZGVI
YXNSb2xlKG5vZGUsICJtZW51Il9zKSkKICAgICAgICAgcmV0dXJuOwogICAgIAogICAgIHBvc3RO
b3RpZmljYXRpb24oZ2V0T3JDcmVhdGUobm9kZSksICZkb2N1bWVudCgpLCBBWE1lbnVPcGVuZWQp
OwpAQCAtMTEzNCw3ICsxMTM0LDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpjaGlsZHJlbkNoYW5n
ZWQoQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0KQogCiB2b2lkIEFYT2JqZWN0Q2FjaGU6Om5v
dGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKCkKIHsKLSAgICBBWFRSQUNFKCJBWE9iamVjdENhY2hl
Ojpub3RpZmljYXRpb25Qb3N0VGltZXJGaXJlZCIpOworICAgIEFYVFJBQ0UoIkFYT2JqZWN0Q2Fj
aGU6Om5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkIl9zKTsKICAgICAvLyBEdXJpbmcgTGF5b3V0
VGVzdHMsIGFjY2Vzc2liaWxpdHkgbWF5IGJlIGRpc2FibGVkIGJldHdlZW4gdGhlIHRpbWUgdGhl
IG5vdGlmaWNhdGlvbnMgYXJlIHF1ZXVlZCBhbmQgdGhlIHRpbWVyIGZpcmVzLgogICAgIC8vIFRo
dXMgY2hlY2sgaGVyZSBhbmQgcmV0dXJuIGlmIGFjY2Vzc2liaWxpdHkgaXMgZGlzYWJsZWQuCiAg
ICAgaWYgKCFhY2Nlc3NpYmlsaXR5RW5hYmxlZCgpKQpAQCAtMTE5NSw3ICsxMTk1LDcgQEAgdm9p
ZCBBWE9iamVjdENhY2hlOjpwYXNzd29yZE5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKCkKICAg
ICBhdXRvIG5vdGlmaWNhdGlvbnMgPSBzdGQ6OmV4Y2hhbmdlKG1fcGFzc3dvcmROb3RpZmljYXRp
b25zVG9Qb3N0LCB7IH0pOwogCiAgICAgZm9yIChhdXRvJiBub3RpZmljYXRpb24gOiBub3RpZmlj
YXRpb25zKQotICAgICAgICBwb3N0VGV4dFN0YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24o
bm90aWZpY2F0aW9uLmdldCgpLCBBWFRleHRFZGl0VHlwZUluc2VydCwgIiAiLCBWaXNpYmxlUG9z
aXRpb24oKSk7CisgICAgICAgIHBvc3RUZXh0U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlv
bihub3RpZmljYXRpb24uZ2V0KCksIEFYVGV4dEVkaXRUeXBlSW5zZXJ0LCAiICJfcywgVmlzaWJs
ZVBvc2l0aW9uKCkpOwogI2VuZGlmCiB9CiAKQEAgLTEyNDMsNyArMTI0Myw3IEBAIHZvaWQgQVhP
YmplY3RDYWNoZTo6cG9zdE5vdGlmaWNhdGlvbihOb2RlKiBub2RlLCBBWE5vdGlmaWNhdGlvbiBu
b3RpZmljYXRpb24sIFBvCiAKIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdE5vdGlmaWNhdGlvbihB
WENvcmVPYmplY3QqIG9iamVjdCwgRG9jdW1lbnQqIGRvY3VtZW50LCBBWE5vdGlmaWNhdGlvbiBu
b3RpZmljYXRpb24sIFBvc3RUYXJnZXQgcG9zdFRhcmdldCkKIHsKLSAgICBBWFRSQUNFKCJBWE9i
amVjdENhY2hlOjpwb3N0Tm90aWZpY2F0aW9uIik7CisgICAgQVhUUkFDRSgiQVhPYmplY3RDYWNo
ZTo6cG9zdE5vdGlmaWNhdGlvbiJfcyk7CiAgICAgQVhMT0coc3RkOjptYWtlX3BhaXIob2JqZWN0
LCBub3RpZmljYXRpb24pKTsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogCkBAIC0xMjcz
LDcgKzEyNzMsNyBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZU1lbnVJdGVtU2VsZWN0ZWQo
Tm9kZSogbm9kZSkKICAgICBpZiAoIW5vZGUpCiAgICAgICAgIHJldHVybjsKICAgICAKLSAgICBp
ZiAoIW5vZGVIYXNSb2xlKG5vZGUsICJtZW51aXRlbSIpICYmICFub2RlSGFzUm9sZShub2RlLCAi
bWVudWl0ZW1yYWRpbyIpICYmICFub2RlSGFzUm9sZShub2RlLCAibWVudWl0ZW1jaGVja2JveCIp
KQorICAgIGlmICghbm9kZUhhc1JvbGUobm9kZSwgIm1lbnVpdGVtIl9zKSAmJiAhbm9kZUhhc1Jv
bGUobm9kZSwgIm1lbnVpdGVtcmFkaW8iX3MpICYmICFub2RlSGFzUm9sZShub2RlLCAibWVudWl0
ZW1jaGVja2JveCJfcykpCiAgICAgICAgIHJldHVybjsKICAgICAKICAgICBpZiAoIWRvd25jYXN0
PEVsZW1lbnQ+KCpub2RlKS5mb2N1c2VkKCkgJiYgIWVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlD
YXNlKGRvd25jYXN0PEVsZW1lbnQ+KCpub2RlKS5hdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0
aW9uKGFyaWFfc2VsZWN0ZWRBdHRyKSwgInRydWUiKSkKQEAgLTEzNDcsOCArMTM0Nyw4IEBAIHZv
aWQgQVhPYmplY3RDYWNoZTo6c2VsZWN0ZWRTdGF0ZUNoYW5nZWQoTm9kZSogbm9kZSkKIHsKICAg
ICAvLyBGb3IgYSB0YWJsZSBjZWxsLCBwb3N0IEFYU2VsZWN0ZWRTdGF0ZUNoYW5nZWQgb24gdGhl
IGNlbGwgaXRzZWxmLgogICAgIC8vIEZvciBhbnkgb3RoZXIgZWxlbWVudCwgcG9zdCBBWFNlbGVj
dGVkQ2hpbGRyZW5DaGFuZ2VkIG9uIHRoZSBwYXJlbnQuCi0gICAgaWYgKG5vZGVIYXNSb2xlKG5v
ZGUsICJncmlkY2VsbCIpIHx8IG5vZGVIYXNSb2xlKG5vZGUsICJjZWxsIikKLSAgICAgICAgfHwg
bm9kZUhhc1JvbGUobm9kZSwgImNvbHVtbmhlYWRlciIpIHx8IG5vZGVIYXNSb2xlKG5vZGUsICJy
b3doZWFkZXIiKSkKKyAgICBpZiAobm9kZUhhc1JvbGUobm9kZSwgImdyaWRjZWxsIl9zKSB8fCBu
b2RlSGFzUm9sZShub2RlLCAiY2VsbCJfcykKKyAgICAgICAgfHwgbm9kZUhhc1JvbGUobm9kZSwg
ImNvbHVtbmhlYWRlciJfcykgfHwgbm9kZUhhc1JvbGUobm9kZSwgInJvd2hlYWRlciJfcykpCiAg
ICAgICAgIHBvc3ROb3RpZmljYXRpb24obm9kZSwgQVhTZWxlY3RlZFN0YXRlQ2hhbmdlZCk7CiAg
ICAgZWxzZQogICAgICAgICBzZWxlY3RlZENoaWxkcmVuQ2hhbmdlZChub2RlKTsKQEAgLTE1NDIs
NyArMTU0Miw3IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlm
aWNhdGlvbihjb25zdCBQb3NpdGlvbiYgcG9zaXRpb24sIGNvCiAKIHZvaWQgQVhPYmplY3RDYWNo
ZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBv
YmplY3QsIGNvbnN0IEFYVGV4dFN0YXRlQ2hhbmdlSW50ZW50JiBpbnRlbnQsIGNvbnN0IFZpc2li
bGVTZWxlY3Rpb24mIHNlbGVjdGlvbikKIHsKLSAgICBBWFRSQUNFKCJBWE9iamVjdENhY2hlOjpw
b3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uIik7CisgICAgQVhUUkFDRSgiQVhPYmplY3RD
YWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbiJfcyk7CiAgICAgc3RvcENhY2hp
bmdDb21wdXRlZE9iamVjdEF0dHJpYnV0ZXMoKTsKIAogI2lmIFBMQVRGT1JNKENPQ09BKSB8fCBV
U0UoQVRTUEkpCkBAIC0xNTc0LDcgKzE1NzQsNyBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RU
ZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0LAog
CiB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9k
ZSogbm9kZSwgQVhUZXh0RWRpdFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBW
aXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQogewotICAgIEFYVFJBQ0UoIkFYT2JqZWN0Q2FjaGU6
OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24iKTsKKyAgICBBWFRSQUNFKCJBWE9iamVj
dENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uIl9zKTsKICAgICBpZiAoIW5v
ZGUgfHwgdHlwZSA9PSBBWFRleHRFZGl0VHlwZVVua25vd24pCiAgICAgICAgIHJldHVybjsKIApA
QCAtMTkxMiw3ICsxOTEyLDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVBdHRyaWJ1dGVD
aGFuZ2UoY29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0ck5hbWUsIEVsZW1lbnQKIAogdm9pZCBBWE9i
amVjdENhY2hlOjpoYW5kbGVNb2RhbENoYW5nZShFbGVtZW50JiBlbGVtZW50KQogewotICAgIGlm
ICghaXM8SFRNTERpYWxvZ0VsZW1lbnQ+KGVsZW1lbnQpICYmICFub2RlSGFzUm9sZSgmZWxlbWVu
dCwgImRpYWxvZyIpICYmICFub2RlSGFzUm9sZSgmZWxlbWVudCwgImFsZXJ0ZGlhbG9nIikpCisg
ICAgaWYgKCFpczxIVE1MRGlhbG9nRWxlbWVudD4oZWxlbWVudCkgJiYgIW5vZGVIYXNSb2xlKCZl
bGVtZW50LCAiZGlhbG9nIl9zKSAmJiAhbm9kZUhhc1JvbGUoJmVsZW1lbnQsICJhbGVydGRpYWxv
ZyJfcykpCiAgICAgICAgIHJldHVybjsKIAogICAgIHN0b3BDYWNoaW5nQ29tcHV0ZWRPYmplY3RB
dHRyaWJ1dGVzKCk7CkBAIC0zMjc3LDcgKzMyNzcsNyBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBy
b2Nlc3NEZWZlcnJlZENoaWxkcmVuQ2hhbmdlZExpc3QoKQogCiB2b2lkIEFYT2JqZWN0Q2FjaGU6
OnBlcmZvcm1EZWZlcnJlZENhY2hlVXBkYXRlKCkKIHsKLSAgICBBWFRSQUNFKCJBWE9iamVjdENh
Y2hlOjpwZXJmb3JtRGVmZXJyZWRDYWNoZVVwZGF0ZSIpOworICAgIEFYVFJBQ0UoIkFYT2JqZWN0
Q2FjaGU6OnBlcmZvcm1EZWZlcnJlZENhY2hlVXBkYXRlIl9zKTsKICAgICBpZiAobV9wZXJmb3Jt
aW5nRGVmZXJyZWRDYWNoZVVwZGF0ZSkKICAgICAgICAgcmV0dXJuOwogICAgIFNldEZvclNjb3Bl
IHBlcmZvcm1pbmdEZWZlcnJlZENhY2hlVXBkYXRlKG1fcGVyZm9ybWluZ0RlZmVycmVkQ2FjaGVV
cGRhdGUsIHRydWUpOwpAQCAtMzM3Myw3ICszMzczLDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjp1
cGRhdGVJc29sYXRlZFRyZWUoQVhDb3JlT2JqZWN0JiBvYmplY3QsIEFYTm90aWZpY2F0aW9uIG5v
dGkKIAogdm9pZCBBWE9iamVjdENhY2hlOjp1cGRhdGVJc29sYXRlZFRyZWUoY29uc3QgVmVjdG9y
PHN0ZDo6cGFpcjxSZWZQdHI8QVhDb3JlT2JqZWN0PiwgQVhOb3RpZmljYXRpb24+PiYgbm90aWZp
Y2F0aW9ucykKIHsKLSAgICBBWFRSQUNFKCJBWE9iamVjdENhY2hlOjp1cGRhdGVJc29sYXRlZFRy
ZWUiKTsKKyAgICBBWFRSQUNFKCJBWE9iamVjdENhY2hlOjp1cGRhdGVJc29sYXRlZFRyZWUiX3Mp
OwogICAgIEFYTE9HKCp0aGlzKTsKIAogICAgIGlmICghbV9wYWdlSUQpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5j
cHAKaW5kZXggMTQyOTEzNzJjZmM0NmMxZGUyMmU4MzhjZDIyNTlmNzA5M2ZkYTQwOC4uYjJkOGM0
OTcwZjJhZDZlMzQwZWRhNWQ3M2Y5NDFhMTI4NjU2ZjIzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKQEAg
LTIzNyw3ICsyMzcsNyBAQCBEb2N1bWVudCogQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmRvY3Vt
ZW50KCkgY29uc3QKIAogQWNjZXNzaWJpbGl0eVJvbGUgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6
OmRldGVybWluZUFjY2Vzc2liaWxpdHlSb2xlKCkKIHsKLSAgICBBWFRSQUNFKCJBY2Nlc3NpYmls
aXR5Tm9kZU9iamVjdDo6ZGV0ZXJtaW5lQWNjZXNzaWJpbGl0eVJvbGUiKTsKKyAgICBBWFRSQUNF
KCJBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6ZGV0ZXJtaW5lQWNjZXNzaWJpbGl0eVJvbGUiX3Mp
OwogICAgIGlmICgobV9hcmlhUm9sZSA9IGRldGVybWluZUFyaWFSb2xlQXR0cmlidXRlKCkpICE9
IEFjY2Vzc2liaWxpdHlSb2xlOjpVbmtub3duKQogICAgICAgICByZXR1cm4gbV9hcmlhUm9sZTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9i
amVjdC5jcHAKaW5kZXggMzRmMTVmMjU2NDU2M2Y5YzkyMzM1ODIxYmVhZWRmYjA5OTRiOGJhZS4u
YmZiZTQyZjNkOGMyZGMzN2U5ZTc1ZmQ2MzYzNjQxZjNjOTc5MWU4NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCkBAIC0x
NzI5LDcgKzE3MjksNyBAQCBib29sIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnN1cHBvcnRzUmVhZE9u
bHkoKSBjb25zdAogU3RyaW5nIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnJlYWRPbmx5VmFsdWUoKSBj
b25zdAogewogICAgIGlmICghaGFzQXR0cmlidXRlKGFyaWFfcmVhZG9ubHlBdHRyKSkKLSAgICAg
ICAgcmV0dXJuIGFyaWFSb2xlQXR0cmlidXRlKCkgIT0gQWNjZXNzaWJpbGl0eVJvbGU6OlVua25v
d24gJiYgc3VwcG9ydHNSZWFkT25seSgpID8gImZhbHNlIiA6IFN0cmluZygpOworICAgICAgICBy
ZXR1cm4gYXJpYVJvbGVBdHRyaWJ1dGUoKSAhPSBBY2Nlc3NpYmlsaXR5Um9sZTo6VW5rbm93biAm
JiBzdXBwb3J0c1JlYWRPbmx5KCkgPyAiZmFsc2UiX3MgOiBTdHJpbmcoKTsKIAogICAgIHJldHVy
biBnZXRBdHRyaWJ1dGUoYXJpYV9yZWFkb25seUF0dHIpLnN0cmluZygpLmNvbnZlcnRUb0FTQ0lJ
TG93ZXJjYXNlKCk7CiB9CkBAIC0xNzU3LDcgKzE3NTcsNyBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0
eU9iamVjdDo6YXV0b0NvbXBsZXRlVmFsdWUoKSBjb25zdAogICAgICAgICB8fCBlcXVhbExldHRl
cnNJZ25vcmluZ0FTQ0lJQ2FzZShhdXRvQ29tcGxldGUsICJib3RoIikpCiAgICAgICAgIHJldHVy
biBhdXRvQ29tcGxldGU7CiAKLSAgICByZXR1cm4gIm5vbmUiOworICAgIHJldHVybiAibm9uZSJf
czsKIH0KIAogYm9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojpjb250ZW50RWRpdGFibGVBdHRyaWJ1
dGVJc0VuYWJsZWQoRWxlbWVudCogZWxlbWVudCkKQEAgLTIyMzMsMjAgKzIyMzMsMjAgQEAgU3Ry
aW5nIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmN1cnJlbnRWYWx1ZSgpIGNvbnN0CiB7CiAgICAgc3dp
dGNoIChjdXJyZW50U3RhdGUoKSkgewogICAgIGNhc2UgQWNjZXNzaWJpbGl0eUN1cnJlbnRTdGF0
ZTo6RmFsc2U6Ci0gICAgICAgIHJldHVybiAiZmFsc2UiOworICAgICAgICByZXR1cm4gImZhbHNl
Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eUN1cnJlbnRTdGF0ZTo6UGFnZToKLSAgICAgICAg
cmV0dXJuICJwYWdlIjsKKyAgICAgICAgcmV0dXJuICJwYWdlIl9zOwogICAgIGNhc2UgQWNjZXNz
aWJpbGl0eUN1cnJlbnRTdGF0ZTo6U3RlcDoKLSAgICAgICAgcmV0dXJuICJzdGVwIjsKKyAgICAg
ICAgcmV0dXJuICJzdGVwIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eUN1cnJlbnRTdGF0ZTo6
TG9jYXRpb246Ci0gICAgICAgIHJldHVybiAibG9jYXRpb24iOworICAgICAgICByZXR1cm4gImxv
Y2F0aW9uIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eUN1cnJlbnRTdGF0ZTo6VGltZToKLSAg
ICAgICAgcmV0dXJuICJ0aW1lIjsKKyAgICAgICAgcmV0dXJuICJ0aW1lIl9zOwogICAgIGNhc2Ug
QWNjZXNzaWJpbGl0eUN1cnJlbnRTdGF0ZTo6RGF0ZToKLSAgICAgICAgcmV0dXJuICJkYXRlIjsK
KyAgICAgICAgcmV0dXJuICJkYXRlIl9zOwogICAgIGRlZmF1bHQ6CiAgICAgY2FzZSBBY2Nlc3Np
YmlsaXR5Q3VycmVudFN0YXRlOjpUcnVlOgotICAgICAgICByZXR1cm4gInRydWUiOworICAgICAg
ICByZXR1cm4gInRydWUiX3M7CiAgICAgfQogfQogCkBAIC0yMzU1LDExICsyMzU1LDExIEBAIGJv
b2wgQWNjZXNzaWJpbGl0eU9iamVjdDo6cmVwbGFjZVRleHRJblJhbmdlKGNvbnN0IFN0cmluZyYg
cmVwbGFjZW1lbnRTdHJpbmcsIGNvCiAgICAgfQogICAgIAogICAgIGlmIChpczxIVE1MSW5wdXRF
bGVtZW50PihlbGVtZW50KSkgewotICAgICAgICBkb3duY2FzdDxIVE1MSW5wdXRFbGVtZW50Pihl
bGVtZW50KS5zZXRSYW5nZVRleHQocmVwbGFjZW1lbnRTdHJpbmcsIHJhbmdlLnN0YXJ0LCByYW5n
ZS5sZW5ndGgsICIiKTsKKyAgICAgICAgZG93bmNhc3Q8SFRNTElucHV0RWxlbWVudD4oZWxlbWVu
dCkuc2V0UmFuZ2VUZXh0KHJlcGxhY2VtZW50U3RyaW5nLCByYW5nZS5zdGFydCwgcmFuZ2UubGVu
Z3RoLCBlbXB0eVN0cmluZygpKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogICAgIGlm
IChpczxIVE1MVGV4dEFyZWFFbGVtZW50PihlbGVtZW50KSkgewotICAgICAgICBkb3duY2FzdDxI
VE1MVGV4dEFyZWFFbGVtZW50PihlbGVtZW50KS5zZXRSYW5nZVRleHQocmVwbGFjZW1lbnRTdHJp
bmcsIHJhbmdlLnN0YXJ0LCByYW5nZS5sZW5ndGgsICIiKTsKKyAgICAgICAgZG93bmNhc3Q8SFRN
TFRleHRBcmVhRWxlbWVudD4oZWxlbWVudCkuc2V0UmFuZ2VUZXh0KHJlcGxhY2VtZW50U3RyaW5n
LCByYW5nZS5zdGFydCwgcmFuZ2UubGVuZ3RoLCBlbXB0eVN0cmluZygpKTsKICAgICAgICAgcmV0
dXJuIHRydWU7CiAgICAgfQogCkBAIC0yNTk0LDcgKzI1OTQsNyBAQCBTdHJpbmcgQWNjZXNzaWJp
bGl0eU9iamVjdDo6Y29tcHV0ZWRSb2xlU3RyaW5nKCkgY29uc3QKIAogICAgIC8vIFdlIGRvIG5v
dCBjb21wdXRlIGEgcm9sZSBzdHJpbmcgZm9yIGdlbmVyaWMgYmxvY2sgZWxlbWVudHMgd2l0aCB1
c2VyLWFnZW50IGFzc2lnbmVkIHJvbGVzLgogICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxpdHlS
b2xlOjpHcm91cCB8fCByb2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpUZXh0R3JvdXApCi0gICAg
ICAgIHJldHVybiAiIjsKKyAgICAgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CiAKICAgICAvLyBX
ZSBkbyBjb21wdXRlIGEgcm9sZSBzdHJpbmcgZm9yIGJsb2NrIGVsZW1lbnRzIHdpdGggYXV0aG9y
LXByb3ZpZGVkIHJvbGVzLgogICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBs
aWNhdGlvblRleHRHcm91cApAQCAtMjcyNSw3ICsyNzI1LDcgQEAgU3RyaW5nIEFjY2Vzc2liaWxp
dHlPYmplY3Q6OnJvbGVEZXNjcmlwdGlvbigpIGNvbnN0CiAKIGJvb2wgbm9kZUhhc1ByZXNlbnRh
dGlvblJvbGUoTm9kZSogbm9kZSkKIHsKLSAgICByZXR1cm4gbm9kZUhhc1JvbGUobm9kZSwgInBy
ZXNlbnRhdGlvbiIpIHx8IG5vZGVIYXNSb2xlKG5vZGUsICJub25lIik7CisgICAgcmV0dXJuIG5v
ZGVIYXNSb2xlKG5vZGUsICJwcmVzZW50YXRpb24iX3MpIHx8IG5vZGVIYXNSb2xlKG5vZGUsICJu
b25lIl9zKTsKIH0KICAgICAKIGJvb2wgQWNjZXNzaWJpbGl0eU9iamVjdDo6c3VwcG9ydHNQcmVz
c0FjdGlvbigpIGNvbnN0CkBAIC0zMjEwLDEwICszMjEwLDEwIEBAIEhhc2hNYXA8U3RyaW5nLCBB
WEVkaXRpbmdTdHlsZVZhbHVlVmFyaWFudD4gQWNjZXNzaWJpbGl0eU9iamVjdDo6cmVzb2x2ZWRF
ZGl0aW5nCiAgICAgICAgIHJldHVybiB7IH07CiAKICAgICBIYXNoTWFwPFN0cmluZywgQVhFZGl0
aW5nU3R5bGVWYWx1ZVZhcmlhbnQ+IHN0eWxlczsKLSAgICBzdHlsZXMuYWRkKCJib2xkIiwgc2Vs
ZWN0aW9uU3R5bGUtPmhhc1N0eWxlKENTU1Byb3BlcnR5Rm9udFdlaWdodCwgImJvbGQiKSk7Ci0g
ICAgc3R5bGVzLmFkZCgiaXRhbGljIiwgc2VsZWN0aW9uU3R5bGUtPmhhc1N0eWxlKENTU1Byb3Bl
cnR5Rm9udFN0eWxlLCAiaXRhbGljIikpOwotICAgIHN0eWxlcy5hZGQoInVuZGVybGluZSIsIHNl
bGVjdGlvblN0eWxlLT5oYXNTdHlsZShDU1NQcm9wZXJ0eVdlYmtpdFRleHREZWNvcmF0aW9uc0lu
RWZmZWN0LCAidW5kZXJsaW5lIikpOwotICAgIHN0eWxlcy5hZGQoImZvbnRzaXplIiwgc2VsZWN0
aW9uU3R5bGUtPmxlZ2FjeUZvbnRTaXplKCpkb2N1bWVudCkpOworICAgIHN0eWxlcy5hZGQoImJv
bGQiX3MsIHNlbGVjdGlvblN0eWxlLT5oYXNTdHlsZShDU1NQcm9wZXJ0eUZvbnRXZWlnaHQsICJi
b2xkIl9zKSk7CisgICAgc3R5bGVzLmFkZCgiaXRhbGljIl9zLCBzZWxlY3Rpb25TdHlsZS0+aGFz
U3R5bGUoQ1NTUHJvcGVydHlGb250U3R5bGUsICJpdGFsaWMiX3MpKTsKKyAgICBzdHlsZXMuYWRk
KCJ1bmRlcmxpbmUiX3MsIHNlbGVjdGlvblN0eWxlLT5oYXNTdHlsZShDU1NQcm9wZXJ0eVdlYmtp
dFRleHREZWNvcmF0aW9uc0luRWZmZWN0LCAidW5kZXJsaW5lIl9zKSk7CisgICAgc3R5bGVzLmFk
ZCgiZm9udHNpemUiX3MsIHNlbGVjdGlvblN0eWxlLT5sZWdhY3lGb250U2l6ZSgqZG9jdW1lbnQp
KTsKICAgICByZXR1cm4gc3R5bGVzOwogfQogCkBAIC00MDg4LDcgKzQwODgsNyBAQCBzdGF0aWMg
Ym9vbCBpc1JhZGlvQnV0dG9uSW5EaWZmZXJlbnRBZGhvY0dyb3VwKFJlZlB0cjxBWENvcmVPYmpl
Y3Q+IGF4T2JqZWN0LCBBWAogICAgIGlmICghcmVmZXJlbmNlT2JqZWN0IHx8ICFyZWZlcmVuY2VP
YmplY3QtPmlzUmFkaW9CdXR0b24oKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICByZXR1
cm4gYXhPYmplY3QtPmF0dHJpYnV0ZVZhbHVlKCJuYW1lIikgIT0gcmVmZXJlbmNlT2JqZWN0LT5h
dHRyaWJ1dGVWYWx1ZSgibmFtZSIpOworICAgIHJldHVybiBheE9iamVjdC0+YXR0cmlidXRlVmFs
dWUoIm5hbWUiX3MpICE9IHJlZmVyZW5jZU9iamVjdC0+YXR0cmlidXRlVmFsdWUoIm5hbWUiX3Mp
OwogfQogCiBzdGF0aWMgYm9vbCBpc0FjY2Vzc2liaWxpdHlPYmplY3RTZWFyY2hNYXRjaEF0SW5k
ZXgoUmVmUHRyPEFYQ29yZU9iamVjdD4gYXhPYmplY3QsIEFjY2Vzc2liaWxpdHlTZWFyY2hDcml0
ZXJpYSBjb25zdCYgY3JpdGVyaWEsIHNpemVfdCBpbmRleCkKQEAgLTQyOTUsNyArNDI5NSw3IEBA
IHN0YXRpYyB2b2lkIGFwcGVuZENoaWxkcmVuVG9BcnJheShSZWZQdHI8QVhDb3JlT2JqZWN0PiBv
YmplY3QsIGJvb2wgaXNGb3J3YXJkLCBSCiAKIHZvaWQgZmluZE1hdGNoaW5nT2JqZWN0cyhBY2Nl
c3NpYmlsaXR5U2VhcmNoQ3JpdGVyaWEgY29uc3QmIGNyaXRlcmlhLCBBWENvcmVPYmplY3Q6OkFj
Y2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciYgcmVzdWx0cykKIHsKLSAgICBBWFRSQUNFKCJBY2Nl
c3NpYmlsaXR5OjpmaW5kTWF0Y2hpbmdPYmplY3RzIik7CisgICAgQVhUUkFDRSgiQWNjZXNzaWJp
bGl0eTo6ZmluZE1hdGNoaW5nT2JqZWN0cyJfcyk7CiAgICAgQVhMT0coY3JpdGVyaWEpOwogCiAg
ICAgLy8gVGhpcyBzZWFyY2ggYWxnb3JpdGhtIG9ubHkgc2VhcmNoZXMgdGhlIGVsZW1lbnRzIGJl
Zm9yZS9hZnRlciB0aGUgc3RhcnRpbmcgb2JqZWN0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0SW50ZXJmYWNlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaAppbmRl
eCA0NmY2MDI4MDJhNzYyMWMwODZmNTE0NWQwYTcwZWNlNmJmYjgyN2NmLi5lMGJkZGQ5MzFjNGQy
NDFlZDc3ODA0M2U5YjI0MWYxMjllM2ZlZDcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaApAQCAt
MjY0LDMxMiArMjY0LDMxMiBAQCBBTFdBWVNfSU5MSU5FIFN0cmluZyBhY2Nlc3NpYmlsaXR5Um9s
ZVRvU3RyaW5nKEFjY2Vzc2liaWxpdHlSb2xlIHJvbGUpCiB7CiAgICAgc3dpdGNoIChyb2xlKSB7
CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QW5ub3RhdGlvbjoKLSAgICAgICAgcmV0dXJu
ICJBbm5vdGF0aW9uIjsKKyAgICAgICAgcmV0dXJuICJBbm5vdGF0aW9uIl9zOwogICAgIGNhc2Ug
QWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uOgotICAgICAgICByZXR1cm4gIkFwcGxpY2F0
aW9uIjsKKyAgICAgICAgcmV0dXJuICJBcHBsaWNhdGlvbiJfczsKICAgICBjYXNlIEFjY2Vzc2li
aWxpdHlSb2xlOjpBcHBsaWNhdGlvbkFsZXJ0OgotICAgICAgICByZXR1cm4gIkFwcGxpY2F0aW9u
QWxlcnQiOworICAgICAgICByZXR1cm4gIkFwcGxpY2F0aW9uQWxlcnQiX3M7CiAgICAgY2FzZSBB
Y2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb25BbGVydERpYWxvZzoKLSAgICAgICAgcmV0dXJu
ICJBcHBsaWNhdGlvbkFsZXJ0RGlhbG9nIjsKKyAgICAgICAgcmV0dXJuICJBcHBsaWNhdGlvbkFs
ZXJ0RGlhbG9nIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uRGlh
bG9nOgotICAgICAgICByZXR1cm4gIkFwcGxpY2F0aW9uRGlhbG9nIjsKKyAgICAgICAgcmV0dXJu
ICJBcHBsaWNhdGlvbkRpYWxvZyJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBs
aWNhdGlvbkdyb3VwOgotICAgICAgICByZXR1cm4gIkFwcGxpY2F0aW9uR3JvdXAiOworICAgICAg
ICByZXR1cm4gIkFwcGxpY2F0aW9uR3JvdXAiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9s
ZTo6QXBwbGljYXRpb25Mb2c6Ci0gICAgICAgIHJldHVybiAiQXBwbGljYXRpb25Mb2ciOworICAg
ICAgICByZXR1cm4gIkFwcGxpY2F0aW9uTG9nIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJv
bGU6OkFwcGxpY2F0aW9uTWFycXVlZToKLSAgICAgICAgcmV0dXJuICJBcHBsaWNhdGlvbk1hcnF1
ZWUiOworICAgICAgICByZXR1cm4gIkFwcGxpY2F0aW9uTWFycXVlZSJfczsKICAgICBjYXNlIEFj
Y2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvblN0YXR1czoKLSAgICAgICAgcmV0dXJuICJBcHBs
aWNhdGlvblN0YXR1cyI7CisgICAgICAgIHJldHVybiAiQXBwbGljYXRpb25TdGF0dXMiX3M7CiAg
ICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb25UZXh0R3JvdXA6Ci0gICAgICAg
IHJldHVybiAiQXBwbGljYXRpb25UZXh0R3JvdXAiOworICAgICAgICByZXR1cm4gIkFwcGxpY2F0
aW9uVGV4dEdyb3VwIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9u
VGltZXI6Ci0gICAgICAgIHJldHVybiAiQXBwbGljYXRpb25UaW1lciI7CisgICAgICAgIHJldHVy
biAiQXBwbGljYXRpb25UaW1lciJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpBdWRp
bzoKLSAgICAgICAgcmV0dXJuICJBdWRpbyI7CisgICAgICAgIHJldHVybiAiQXVkaW8iX3M7CiAg
ICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QmxvY2txdW90ZToKLSAgICAgICAgcmV0dXJuICJC
bG9ja3F1b3RlIjsKKyAgICAgICAgcmV0dXJuICJCbG9ja3F1b3RlIl9zOwogICAgIGNhc2UgQWNj
ZXNzaWJpbGl0eVJvbGU6OkJyb3dzZXI6Ci0gICAgICAgIHJldHVybiAiQnJvd3NlciI7CisgICAg
ICAgIHJldHVybiAiQnJvd3NlciJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpCdXN5
SW5kaWNhdG9yOgotICAgICAgICByZXR1cm4gIkJ1c3lJbmRpY2F0b3IiOworICAgICAgICByZXR1
cm4gIkJ1c3lJbmRpY2F0b3IiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QnV0dG9u
OgotICAgICAgICByZXR1cm4gIkJ1dHRvbiI7CisgICAgICAgIHJldHVybiAiQnV0dG9uIl9zOwog
ICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkNhbnZhczoKLSAgICAgICAgcmV0dXJuICJDYW52
YXMiOworICAgICAgICByZXR1cm4gIkNhbnZhcyJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlS
b2xlOjpDYXB0aW9uOgotICAgICAgICByZXR1cm4gIkNhcHRpb24iOworICAgICAgICByZXR1cm4g
IkNhcHRpb24iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6Q2VsbDoKLSAgICAgICAg
cmV0dXJuICJDZWxsIjsKKyAgICAgICAgcmV0dXJuICJDZWxsIl9zOwogICAgIGNhc2UgQWNjZXNz
aWJpbGl0eVJvbGU6OkNoZWNrQm94OgotICAgICAgICByZXR1cm4gIkNoZWNrQm94IjsKKyAgICAg
ICAgcmV0dXJuICJDaGVja0JveCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpDb2xv
cldlbGw6Ci0gICAgICAgIHJldHVybiAiQ29sb3JXZWxsIjsKKyAgICAgICAgcmV0dXJuICJDb2xv
cldlbGwiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6Q29sdW1uOgotICAgICAgICBy
ZXR1cm4gIkNvbHVtbiI7CisgICAgICAgIHJldHVybiAiQ29sdW1uIl9zOwogICAgIGNhc2UgQWNj
ZXNzaWJpbGl0eVJvbGU6OkNvbHVtbkhlYWRlcjoKLSAgICAgICAgcmV0dXJuICJDb2x1bW5IZWFk
ZXIiOworICAgICAgICByZXR1cm4gIkNvbHVtbkhlYWRlciJfczsKICAgICBjYXNlIEFjY2Vzc2li
aWxpdHlSb2xlOjpDb21ib0JveDoKLSAgICAgICAgcmV0dXJuICJDb21ib0JveCI7CisgICAgICAg
IHJldHVybiAiQ29tYm9Cb3giX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RGVmaW5p
dGlvbjoKLSAgICAgICAgcmV0dXJuICJEZWZpbml0aW9uIjsKKyAgICAgICAgcmV0dXJuICJEZWZp
bml0aW9uIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRlbGV0aW9uOgotICAgICAg
ICByZXR1cm4gIkRlbGV0aW9uIjsKKyAgICAgICAgcmV0dXJuICJEZWxldGlvbiJfczsKICAgICBj
YXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpEZXNjcmlwdGlvbkxpc3Q6Ci0gICAgICAgIHJldHVybiAi
RGVzY3JpcHRpb25MaXN0IjsKKyAgICAgICAgcmV0dXJuICJEZXNjcmlwdGlvbkxpc3QiX3M7CiAg
ICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RGVzY3JpcHRpb25MaXN0VGVybToKLSAgICAgICAg
cmV0dXJuICJEZXNjcmlwdGlvbkxpc3RUZXJtIjsKKyAgICAgICAgcmV0dXJuICJEZXNjcmlwdGlv
bkxpc3RUZXJtIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRlc2NyaXB0aW9uTGlz
dERldGFpbDoKLSAgICAgICAgcmV0dXJuICJEZXNjcmlwdGlvbkxpc3REZXRhaWwiOworICAgICAg
ICByZXR1cm4gIkRlc2NyaXB0aW9uTGlzdERldGFpbCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxp
dHlSb2xlOjpEZXRhaWxzOgotICAgICAgICByZXR1cm4gIkRldGFpbHMiOworICAgICAgICByZXR1
cm4gIkRldGFpbHMiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RGlyZWN0b3J5Ogot
ICAgICAgICByZXR1cm4gIkRpcmVjdG9yeSI7CisgICAgICAgIHJldHVybiAiRGlyZWN0b3J5Il9z
OwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRpc2Nsb3N1cmVUcmlhbmdsZToKLSAgICAg
ICAgcmV0dXJuICJEaXNjbG9zdXJlVHJpYW5nbGUiOworICAgICAgICByZXR1cm4gIkRpc2Nsb3N1
cmVUcmlhbmdsZSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpEaXY6Ci0gICAgICAg
IHJldHVybiAiRGl2IjsKKyAgICAgICAgcmV0dXJuICJEaXYiX3M7CiAgICAgY2FzZSBBY2Nlc3Np
YmlsaXR5Um9sZTo6RG9jdW1lbnQ6Ci0gICAgICAgIHJldHVybiAiRG9jdW1lbnQiOworICAgICAg
ICByZXR1cm4gIkRvY3VtZW50Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRvY3Vt
ZW50QXJ0aWNsZToKLSAgICAgICAgcmV0dXJuICJEb2N1bWVudEFydGljbGUiOworICAgICAgICBy
ZXR1cm4gIkRvY3VtZW50QXJ0aWNsZSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpE
b2N1bWVudE1hdGg6Ci0gICAgICAgIHJldHVybiAiRG9jdW1lbnRNYXRoIjsKKyAgICAgICAgcmV0
dXJuICJEb2N1bWVudE1hdGgiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RG9jdW1l
bnROb3RlOgotICAgICAgICByZXR1cm4gIkRvY3VtZW50Tm90ZSI7CisgICAgICAgIHJldHVybiAi
RG9jdW1lbnROb3RlIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRyYXdlcjoKLSAg
ICAgICAgcmV0dXJuICJEcmF3ZXIiOworICAgICAgICByZXR1cm4gIkRyYXdlciJfczsKICAgICBj
YXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpFZGl0YWJsZVRleHQ6Ci0gICAgICAgIHJldHVybiAiRWRp
dGFibGVUZXh0IjsKKyAgICAgICAgcmV0dXJuICJFZGl0YWJsZVRleHQiX3M7CiAgICAgY2FzZSBB
Y2Nlc3NpYmlsaXR5Um9sZTo6RmVlZDoKLSAgICAgICAgcmV0dXJuICJGZWVkIjsKKyAgICAgICAg
cmV0dXJuICJGZWVkIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkZpZ3VyZToKLSAg
ICAgICAgcmV0dXJuICJGaWd1cmUiOworICAgICAgICByZXR1cm4gIkZpZ3VyZSJfczsKICAgICBj
YXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpGb290ZXI6Ci0gICAgICAgIHJldHVybiAiRm9vdGVyIjsK
KyAgICAgICAgcmV0dXJuICJGb290ZXIiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6
Rm9vdG5vdGU6Ci0gICAgICAgIHJldHVybiAiRm9vdG5vdGUiOworICAgICAgICByZXR1cm4gIkZv
b3Rub3RlIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkZvcm06Ci0gICAgICAgIHJl
dHVybiAiRm9ybSI7CisgICAgICAgIHJldHVybiAiRm9ybSJfczsKICAgICBjYXNlIEFjY2Vzc2li
aWxpdHlSb2xlOjpHcmFwaGljc0RvY3VtZW50OgotICAgICAgICByZXR1cm4gIkdyYXBoaWNzRG9j
dW1lbnQiOworICAgICAgICByZXR1cm4gIkdyYXBoaWNzRG9jdW1lbnQiX3M7CiAgICAgY2FzZSBB
Y2Nlc3NpYmlsaXR5Um9sZTo6R3JhcGhpY3NPYmplY3Q6Ci0gICAgICAgIHJldHVybiAiR3JhcGhp
Y3NPYmplY3QiOworICAgICAgICByZXR1cm4gIkdyYXBoaWNzT2JqZWN0Il9zOwogICAgIGNhc2Ug
QWNjZXNzaWJpbGl0eVJvbGU6OkdyYXBoaWNzU3ltYm9sOgotICAgICAgICByZXR1cm4gIkdyYXBo
aWNzU3ltYm9sIjsKKyAgICAgICAgcmV0dXJuICJHcmFwaGljc1N5bWJvbCJfczsKICAgICBjYXNl
IEFjY2Vzc2liaWxpdHlSb2xlOjpHcmlkOgotICAgICAgICByZXR1cm4gIkdyaWQiOworICAgICAg
ICByZXR1cm4gIkdyaWQiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6R3JpZENlbGw6
Ci0gICAgICAgIHJldHVybiAiR3JpZENlbGwiOworICAgICAgICByZXR1cm4gIkdyaWRDZWxsIl9z
OwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Okdyb3VwOgotICAgICAgICByZXR1cm4gIkdy
b3VwIjsKKyAgICAgICAgcmV0dXJuICJHcm91cCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlS
b2xlOjpHcm93QXJlYToKLSAgICAgICAgcmV0dXJuICJHcm93QXJlYSI7CisgICAgICAgIHJldHVy
biAiR3Jvd0FyZWEiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6SGVhZGluZzoKLSAg
ICAgICAgcmV0dXJuICJIZWFkaW5nIjsKKyAgICAgICAgcmV0dXJuICJIZWFkaW5nIl9zOwogICAg
IGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkhlbHBUYWc6Ci0gICAgICAgIHJldHVybiAiSGVscFRh
ZyI7CisgICAgICAgIHJldHVybiAiSGVscFRhZyJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlS
b2xlOjpIb3Jpem9udGFsUnVsZToKLSAgICAgICAgcmV0dXJuICJIb3Jpem9udGFsUnVsZSI7Cisg
ICAgICAgIHJldHVybiAiSG9yaXpvbnRhbFJ1bGUiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5
Um9sZTo6SWdub3JlZDoKLSAgICAgICAgcmV0dXJuICJJZ25vcmVkIjsKKyAgICAgICAgcmV0dXJu
ICJJZ25vcmVkIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OklubGluZToKLSAgICAg
ICAgcmV0dXJuICJJbmxpbmUiOworICAgICAgICByZXR1cm4gIklubGluZSJfczsKICAgICBjYXNl
IEFjY2Vzc2liaWxpdHlSb2xlOjpJbWFnZToKLSAgICAgICAgcmV0dXJuICJJbWFnZSI7CisgICAg
ICAgIHJldHVybiAiSW1hZ2UiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6SW1hZ2VN
YXA6Ci0gICAgICAgIHJldHVybiAiSW1hZ2VNYXAiOworICAgICAgICByZXR1cm4gIkltYWdlTWFw
Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkltYWdlTWFwTGluazoKLSAgICAgICAg
cmV0dXJuICJJbWFnZU1hcExpbmsiOworICAgICAgICByZXR1cm4gIkltYWdlTWFwTGluayJfczsK
ICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpJbmNyZW1lbnRvcjoKLSAgICAgICAgcmV0dXJu
ICJJbmNyZW1lbnRvciI7CisgICAgICAgIHJldHVybiAiSW5jcmVtZW50b3IiX3M7CiAgICAgY2Fz
ZSBBY2Nlc3NpYmlsaXR5Um9sZTo6SW5zZXJ0aW9uOgotICAgICAgICByZXR1cm4gIkluc2VydGlv
biI7CisgICAgICAgIHJldHVybiAiSW5zZXJ0aW9uIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0
eVJvbGU6OkxhYmVsOgotICAgICAgICByZXR1cm4gIkxhYmVsIjsKKyAgICAgICAgcmV0dXJuICJM
YWJlbCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpMYW5kbWFya0Jhbm5lcjoKLSAg
ICAgICAgcmV0dXJuICJMYW5kbWFya0Jhbm5lciI7CisgICAgICAgIHJldHVybiAiTGFuZG1hcmtC
YW5uZXIiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtDb21wbGVtZW50
YXJ5OgotICAgICAgICByZXR1cm4gIkxhbmRtYXJrQ29tcGxlbWVudGFyeSI7CisgICAgICAgIHJl
dHVybiAiTGFuZG1hcmtDb21wbGVtZW50YXJ5Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJv
bGU6OkxhbmRtYXJrQ29udGVudEluZm86Ci0gICAgICAgIHJldHVybiAiTGFuZG1hcmtDb250ZW50
SW5mbyI7CisgICAgICAgIHJldHVybiAiTGFuZG1hcmtDb250ZW50SW5mbyJfczsKICAgICBjYXNl
IEFjY2Vzc2liaWxpdHlSb2xlOjpMYW5kbWFya0RvY1JlZ2lvbjoKLSAgICAgICAgcmV0dXJuICJM
YW5kbWFya0RvY1JlZ2lvbiI7CisgICAgICAgIHJldHVybiAiTGFuZG1hcmtEb2NSZWdpb24iX3M7
CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtNYWluOgotICAgICAgICByZXR1
cm4gIkxhbmRtYXJrTWFpbiI7CisgICAgICAgIHJldHVybiAiTGFuZG1hcmtNYWluIl9zOwogICAg
IGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJrTmF2aWdhdGlvbjoKLSAgICAgICAgcmV0
dXJuICJMYW5kbWFya05hdmlnYXRpb24iOworICAgICAgICByZXR1cm4gIkxhbmRtYXJrTmF2aWdh
dGlvbiJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpMYW5kbWFya1JlZ2lvbjoKLSAg
ICAgICAgcmV0dXJuICJMYW5kbWFya1JlZ2lvbiI7CisgICAgICAgIHJldHVybiAiTGFuZG1hcmtS
ZWdpb24iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtTZWFyY2g6Ci0g
ICAgICAgIHJldHVybiAiTGFuZG1hcmtTZWFyY2giOworICAgICAgICByZXR1cm4gIkxhbmRtYXJr
U2VhcmNoIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkxlZ2VuZDoKLSAgICAgICAg
cmV0dXJuICJMZWdlbmQiOworICAgICAgICByZXR1cm4gIkxlZ2VuZCJfczsKICAgICBjYXNlIEFj
Y2Vzc2liaWxpdHlSb2xlOjpMaW5rOgotICAgICAgICByZXR1cm4gIkxpbmsiOworICAgICAgICBy
ZXR1cm4gIkxpbmsiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGlzdDoKLSAgICAg
ICAgcmV0dXJuICJMaXN0IjsKKyAgICAgICAgcmV0dXJuICJMaXN0Il9zOwogICAgIGNhc2UgQWNj
ZXNzaWJpbGl0eVJvbGU6Okxpc3RCb3g6Ci0gICAgICAgIHJldHVybiAiTGlzdEJveCI7CisgICAg
ICAgIHJldHVybiAiTGlzdEJveCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpMaXN0
Qm94T3B0aW9uOgotICAgICAgICByZXR1cm4gIkxpc3RCb3hPcHRpb24iOworICAgICAgICByZXR1
cm4gIkxpc3RCb3hPcHRpb24iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGlzdEl0
ZW06Ci0gICAgICAgIHJldHVybiAiTGlzdEl0ZW0iOworICAgICAgICByZXR1cm4gIkxpc3RJdGVt
Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Okxpc3RNYXJrZXI6Ci0gICAgICAgIHJl
dHVybiAiTGlzdE1hcmtlciI7CisgICAgICAgIHJldHVybiAiTGlzdE1hcmtlciJfczsKICAgICBj
YXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpNYXJrOgotICAgICAgICByZXR1cm4gIk1hcmsiOworICAg
ICAgICByZXR1cm4gIk1hcmsiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TWF0aEVs
ZW1lbnQ6Ci0gICAgICAgIHJldHVybiAiTWF0aEVsZW1lbnQiOworICAgICAgICByZXR1cm4gIk1h
dGhFbGVtZW50Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Ok1hdHRlOgotICAgICAg
ICByZXR1cm4gIk1hdHRlIjsKKyAgICAgICAgcmV0dXJuICJNYXR0ZSJfczsKICAgICBjYXNlIEFj
Y2Vzc2liaWxpdHlSb2xlOjpNZW51OgotICAgICAgICByZXR1cm4gIk1lbnUiOworICAgICAgICBy
ZXR1cm4gIk1lbnUiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TWVudUJhcjoKLSAg
ICAgICAgcmV0dXJuICJNZW51QmFyIjsKKyAgICAgICAgcmV0dXJuICJNZW51QmFyIl9zOwogICAg
IGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Ok1lbnVCdXR0b246Ci0gICAgICAgIHJldHVybiAiTWVu
dUJ1dHRvbiI7CisgICAgICAgIHJldHVybiAiTWVudUJ1dHRvbiJfczsKICAgICBjYXNlIEFjY2Vz
c2liaWxpdHlSb2xlOjpNZW51SXRlbToKLSAgICAgICAgcmV0dXJuICJNZW51SXRlbSI7CisgICAg
ICAgIHJldHVybiAiTWVudUl0ZW0iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TWVu
dUl0ZW1DaGVja2JveDoKLSAgICAgICAgcmV0dXJuICJNZW51SXRlbUNoZWNrYm94IjsKKyAgICAg
ICAgcmV0dXJuICJNZW51SXRlbUNoZWNrYm94Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJv
bGU6Ok1lbnVJdGVtUmFkaW86Ci0gICAgICAgIHJldHVybiAiTWVudUl0ZW1SYWRpbyI7CisgICAg
ICAgIHJldHVybiAiTWVudUl0ZW1SYWRpbyJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xl
OjpNZW51TGlzdFBvcHVwOgotICAgICAgICByZXR1cm4gIk1lbnVMaXN0UG9wdXAiOworICAgICAg
ICByZXR1cm4gIk1lbnVMaXN0UG9wdXAiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6
TWVudUxpc3RPcHRpb246Ci0gICAgICAgIHJldHVybiAiTWVudUxpc3RPcHRpb24iOworICAgICAg
ICByZXR1cm4gIk1lbnVMaXN0T3B0aW9uIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6
Ok1ldGVyOgotICAgICAgICByZXR1cm4gIk1ldGVyIjsKKyAgICAgICAgcmV0dXJuICJNZXRlciJf
czsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpNb2RlbDoKLSAgICAgICAgcmV0dXJuICJN
b2RlbCI7CisgICAgICAgIHJldHVybiAiTW9kZWwiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5
Um9sZTo6T3V0bGluZToKLSAgICAgICAgcmV0dXJuICJPdXRsaW5lIjsKKyAgICAgICAgcmV0dXJu
ICJPdXRsaW5lIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlBhcmFncmFwaDoKLSAg
ICAgICAgcmV0dXJuICJQYXJhZ3JhcGgiOworICAgICAgICByZXR1cm4gIlBhcmFncmFwaCJfczsK
ICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpQb3BVcEJ1dHRvbjoKLSAgICAgICAgcmV0dXJu
ICJQb3BVcEJ1dHRvbiI7CisgICAgICAgIHJldHVybiAiUG9wVXBCdXR0b24iX3M7CiAgICAgY2Fz
ZSBBY2Nlc3NpYmlsaXR5Um9sZTo6UHJlOgotICAgICAgICByZXR1cm4gIlByZSI7CisgICAgICAg
IHJldHVybiAiUHJlIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlByZXNlbnRhdGlv
bmFsOgotICAgICAgICByZXR1cm4gIlByZXNlbnRhdGlvbmFsIjsKKyAgICAgICAgcmV0dXJuICJQ
cmVzZW50YXRpb25hbCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpQcm9ncmVzc0lu
ZGljYXRvcjoKLSAgICAgICAgcmV0dXJuICJQcm9ncmVzc0luZGljYXRvciI7CisgICAgICAgIHJl
dHVybiAiUHJvZ3Jlc3NJbmRpY2F0b3IiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6
UmFkaW9CdXR0b246Ci0gICAgICAgIHJldHVybiAiUmFkaW9CdXR0b24iOworICAgICAgICByZXR1
cm4gIlJhZGlvQnV0dG9uIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlJhZGlvR3Jv
dXA6Ci0gICAgICAgIHJldHVybiAiUmFkaW9Hcm91cCI7CisgICAgICAgIHJldHVybiAiUmFkaW9H
cm91cCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpSb3dIZWFkZXI6Ci0gICAgICAg
IHJldHVybiAiUm93SGVhZGVyIjsKKyAgICAgICAgcmV0dXJuICJSb3dIZWFkZXIiX3M7CiAgICAg
Y2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6Um93OgotICAgICAgICByZXR1cm4gIlJvdyI7CisgICAg
ICAgIHJldHVybiAiUm93Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlJvd0dyb3Vw
OgotICAgICAgICByZXR1cm4gIlJvd0dyb3VwIjsKKyAgICAgICAgcmV0dXJuICJSb3dHcm91cCJf
czsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpSdWJ5QmFzZToKLSAgICAgICAgcmV0dXJu
ICJSdWJ5QmFzZSI7CisgICAgICAgIHJldHVybiAiUnVieUJhc2UiX3M7CiAgICAgY2FzZSBBY2Nl
c3NpYmlsaXR5Um9sZTo6UnVieUJsb2NrOgotICAgICAgICByZXR1cm4gIlJ1YnlCbG9jayI7Cisg
ICAgICAgIHJldHVybiAiUnVieUJsb2NrIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6
OlJ1YnlJbmxpbmU6Ci0gICAgICAgIHJldHVybiAiUnVieUlubGluZSI7CisgICAgICAgIHJldHVy
biAiUnVieUlubGluZSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpSdWJ5UnVuOgot
ICAgICAgICByZXR1cm4gIlJ1YnlSdW4iOworICAgICAgICByZXR1cm4gIlJ1YnlSdW4iX3M7CiAg
ICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6UnVieVRleHQ6Ci0gICAgICAgIHJldHVybiAiUnVi
eVRleHQiOworICAgICAgICByZXR1cm4gIlJ1YnlUZXh0Il9zOwogICAgIGNhc2UgQWNjZXNzaWJp
bGl0eVJvbGU6OlJ1bGVyOgotICAgICAgICByZXR1cm4gIlJ1bGVyIjsKKyAgICAgICAgcmV0dXJu
ICJSdWxlciJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpSdWxlck1hcmtlcjoKLSAg
ICAgICAgcmV0dXJuICJSdWxlck1hcmtlciI7CisgICAgICAgIHJldHVybiAiUnVsZXJNYXJrZXIi
X3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6U2Nyb2xsQXJlYToKLSAgICAgICAgcmV0
dXJuICJTY3JvbGxBcmVhIjsKKyAgICAgICAgcmV0dXJuICJTY3JvbGxBcmVhIl9zOwogICAgIGNh
c2UgQWNjZXNzaWJpbGl0eVJvbGU6OlNjcm9sbEJhcjoKLSAgICAgICAgcmV0dXJuICJTY3JvbGxC
YXIiOworICAgICAgICByZXR1cm4gIlNjcm9sbEJhciJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxp
dHlSb2xlOjpTZWFyY2hGaWVsZDoKLSAgICAgICAgcmV0dXJuICJTZWFyY2hGaWVsZCI7CisgICAg
ICAgIHJldHVybiAiU2VhcmNoRmllbGQiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6
U2hlZXQ6Ci0gICAgICAgIHJldHVybiAiU2hlZXQiOworICAgICAgICByZXR1cm4gIlNoZWV0Il9z
OwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlNsaWRlcjoKLSAgICAgICAgcmV0dXJuICJT
bGlkZXIiOworICAgICAgICByZXR1cm4gIlNsaWRlciJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxp
dHlSb2xlOjpTbGlkZXJUaHVtYjoKLSAgICAgICAgcmV0dXJuICJTbGlkZXJUaHVtYiI7CisgICAg
ICAgIHJldHVybiAiU2xpZGVyVGh1bWIiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6
U3BpbkJ1dHRvbjoKLSAgICAgICAgcmV0dXJuICJTcGluQnV0dG9uIjsKKyAgICAgICAgcmV0dXJu
ICJTcGluQnV0dG9uIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlNwaW5CdXR0b25Q
YXJ0OgotICAgICAgICByZXR1cm4gIlNwaW5CdXR0b25QYXJ0IjsKKyAgICAgICAgcmV0dXJuICJT
cGluQnV0dG9uUGFydCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpTcGxpdEdyb3Vw
OgotICAgICAgICByZXR1cm4gIlNwbGl0R3JvdXAiOworICAgICAgICByZXR1cm4gIlNwbGl0R3Jv
dXAiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6U3BsaXR0ZXI6Ci0gICAgICAgIHJl
dHVybiAiU3BsaXR0ZXIiOworICAgICAgICByZXR1cm4gIlNwbGl0dGVyIl9zOwogICAgIGNhc2Ug
QWNjZXNzaWJpbGl0eVJvbGU6OlN0YXRpY1RleHQ6Ci0gICAgICAgIHJldHVybiAiU3RhdGljVGV4
dCI7CisgICAgICAgIHJldHVybiAiU3RhdGljVGV4dCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxp
dHlSb2xlOjpTdWJzY3JpcHQ6Ci0gICAgICAgIHJldHVybiAiU3Vic2NyaXB0IjsKKyAgICAgICAg
cmV0dXJuICJTdWJzY3JpcHQiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6U3VtbWFy
eToKLSAgICAgICAgcmV0dXJuICJTdW1tYXJ5IjsKKyAgICAgICAgcmV0dXJuICJTdW1tYXJ5Il9z
OwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlN1cGVyc2NyaXB0OgotICAgICAgICByZXR1
cm4gIlN1cGVyc2NyaXB0IjsKKyAgICAgICAgcmV0dXJuICJTdXBlcnNjcmlwdCJfczsKICAgICBj
YXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpTd2l0Y2g6Ci0gICAgICAgIHJldHVybiAiU3dpdGNoIjsK
KyAgICAgICAgcmV0dXJuICJTd2l0Y2giX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6
U3lzdGVtV2lkZToKLSAgICAgICAgcmV0dXJuICJTeXN0ZW1XaWRlIjsKKyAgICAgICAgcmV0dXJu
ICJTeXN0ZW1XaWRlIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlNWR1Jvb3Q6Ci0g
ICAgICAgIHJldHVybiAiU1ZHUm9vdCI7CisgICAgICAgIHJldHVybiAiU1ZHUm9vdCJfczsKICAg
ICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpTVkdUZXh0OgotICAgICAgICByZXR1cm4gIlNWR1Rl
eHQiOworICAgICAgICByZXR1cm4gIlNWR1RleHQiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5
Um9sZTo6U1ZHVFNwYW46Ci0gICAgICAgIHJldHVybiAiU1ZHVFNwYW4iOworICAgICAgICByZXR1
cm4gIlNWR1RTcGFuIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlNWR1RleHRQYXRo
OgotICAgICAgICByZXR1cm4gIlNWR1RleHRQYXRoIjsKKyAgICAgICAgcmV0dXJuICJTVkdUZXh0
UGF0aCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpUYWJHcm91cDoKLSAgICAgICAg
cmV0dXJuICJUYWJHcm91cCI7CisgICAgICAgIHJldHVybiAiVGFiR3JvdXAiX3M7CiAgICAgY2Fz
ZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VGFiTGlzdDoKLSAgICAgICAgcmV0dXJuICJUYWJMaXN0IjsK
KyAgICAgICAgcmV0dXJuICJUYWJMaXN0Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6
OlRhYlBhbmVsOgotICAgICAgICByZXR1cm4gIlRhYlBhbmVsIjsKKyAgICAgICAgcmV0dXJuICJU
YWJQYW5lbCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpUYWI6Ci0gICAgICAgIHJl
dHVybiAiVGFiIjsKKyAgICAgICAgcmV0dXJuICJUYWIiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmls
aXR5Um9sZTo6VGFibGU6Ci0gICAgICAgIHJldHVybiAiVGFibGUiOworICAgICAgICByZXR1cm4g
IlRhYmxlIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlRhYmxlSGVhZGVyQ29udGFp
bmVyOgotICAgICAgICByZXR1cm4gIlRhYmxlSGVhZGVyQ29udGFpbmVyIjsKKyAgICAgICAgcmV0
dXJuICJUYWJsZUhlYWRlckNvbnRhaW5lciJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xl
OjpUZXJtOgotICAgICAgICByZXR1cm4gIlRlcm0iOworICAgICAgICByZXR1cm4gIlRlcm0iX3M7
CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VGV4dEFyZWE6Ci0gICAgICAgIHJldHVybiAi
VGV4dEFyZWEiOworICAgICAgICByZXR1cm4gIlRleHRBcmVhIl9zOwogICAgIGNhc2UgQWNjZXNz
aWJpbGl0eVJvbGU6OlRleHRGaWVsZDoKLSAgICAgICAgcmV0dXJuICJUZXh0RmllbGQiOworICAg
ICAgICByZXR1cm4gIlRleHRGaWVsZCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpU
ZXh0R3JvdXA6Ci0gICAgICAgIHJldHVybiAiVGV4dEdyb3VwIjsKKyAgICAgICAgcmV0dXJuICJU
ZXh0R3JvdXAiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VGltZToKLSAgICAgICAg
cmV0dXJuICJUaW1lIjsKKyAgICAgICAgcmV0dXJuICJUaW1lIl9zOwogICAgIGNhc2UgQWNjZXNz
aWJpbGl0eVJvbGU6OlRyZWU6Ci0gICAgICAgIHJldHVybiAiVHJlZSI7CisgICAgICAgIHJldHVy
biAiVHJlZSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpUcmVlR3JpZDoKLSAgICAg
ICAgcmV0dXJuICJUcmVlR3JpZCI7CisgICAgICAgIHJldHVybiAiVHJlZUdyaWQiX3M7CiAgICAg
Y2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VHJlZUl0ZW06Ci0gICAgICAgIHJldHVybiAiVHJlZUl0
ZW0iOworICAgICAgICByZXR1cm4gIlRyZWVJdGVtIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0
eVJvbGU6OlRvZ2dsZUJ1dHRvbjoKLSAgICAgICAgcmV0dXJuICJUb2dnbGVCdXR0b24iOworICAg
ICAgICByZXR1cm4gIlRvZ2dsZUJ1dHRvbiJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xl
OjpUb29sYmFyOgotICAgICAgICByZXR1cm4gIlRvb2xiYXIiOworICAgICAgICByZXR1cm4gIlRv
b2xiYXIiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VW5rbm93bjoKLSAgICAgICAg
cmV0dXJuICJVbmtub3duIjsKKyAgICAgICAgcmV0dXJuICJVbmtub3duIl9zOwogICAgIGNhc2Ug
QWNjZXNzaWJpbGl0eVJvbGU6OlVzZXJJbnRlcmZhY2VUb29sdGlwOgotICAgICAgICByZXR1cm4g
IlVzZXJJbnRlcmZhY2VUb29sdGlwIjsKKyAgICAgICAgcmV0dXJuICJVc2VySW50ZXJmYWNlVG9v
bHRpcCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpWYWx1ZUluZGljYXRvcjoKLSAg
ICAgICAgcmV0dXJuICJWYWx1ZUluZGljYXRvciI7CisgICAgICAgIHJldHVybiAiVmFsdWVJbmRp
Y2F0b3IiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VmlkZW86Ci0gICAgICAgIHJl
dHVybiAiVmlkZW8iOworICAgICAgICByZXR1cm4gIlZpZGVvIl9zOwogICAgIGNhc2UgQWNjZXNz
aWJpbGl0eVJvbGU6OldlYkFwcGxpY2F0aW9uOgotICAgICAgICByZXR1cm4gIldlYkFwcGxpY2F0
aW9uIjsKKyAgICAgICAgcmV0dXJuICJXZWJBcHBsaWNhdGlvbiJfczsKICAgICBjYXNlIEFjY2Vz
c2liaWxpdHlSb2xlOjpXZWJBcmVhOgotICAgICAgICByZXR1cm4gIldlYkFyZWEiOworICAgICAg
ICByZXR1cm4gIldlYkFyZWEiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6V2ViQ29y
ZUxpbms6Ci0gICAgICAgIHJldHVybiAiV2ViQ29yZUxpbmsiOworICAgICAgICByZXR1cm4gIldl
YkNvcmVMaW5rIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OldpbmRvdzoKLSAgICAg
ICAgcmV0dXJuICJXaW5kb3ciOworICAgICAgICByZXR1cm4gIldpbmRvdyJfczsKICAgICB9CiAg
ICAgVU5SRUFDSEFCTEUoKTsKLSAgICByZXR1cm4gIiI7CisgICAgcmV0dXJuICIiX3M7CiB9CiAK
IGVudW0gY2xhc3MgQWNjZXNzaWJpbGl0eURldGFjaG1lbnRUeXBlIHsgQ2FjaGVEZXN0cm95ZWQs
IEVsZW1lbnREZXN0cm95ZWQsIEVsZW1lbnRDaGFuZ2VkIH07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwIGIvU291
cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcApp
bmRleCA0NDIyOTU1YTM4NjVkYmM1ZGQ3MjM1NGNiYmZiZjIwMjc2NzE1YjA2Li5hNmQzMTAyYzg4
MmE2MDk4ZjQ3OTJiN2JjZDA2YmEyNmQ0Mjg3ZDhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKQEAg
LTI3ODcsMTEgKzI3ODcsMTEgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpyZW5k
ZXJPYmplY3RJc09ic2VydmFibGUoUmVuZGVyT2JqZWN0JiByZW5kZXJlcikKICAgICBpZiAoIW5v
ZGUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAKLSAgICBpZiAobm9kZUhhc1JvbGUobm9k
ZSwgImxpc3Rib3giKSB8fCAoaXM8UmVuZGVyQm94TW9kZWxPYmplY3Q+KHJlbmRlcmVyKSAmJiBk
b3duY2FzdDxSZW5kZXJCb3hNb2RlbE9iamVjdD4ocmVuZGVyZXIpLmlzTGlzdEJveCgpKSkKKyAg
ICBpZiAobm9kZUhhc1JvbGUobm9kZSwgImxpc3Rib3giX3MpIHx8IChpczxSZW5kZXJCb3hNb2Rl
bE9iamVjdD4ocmVuZGVyZXIpICYmIGRvd25jYXN0PFJlbmRlckJveE1vZGVsT2JqZWN0PihyZW5k
ZXJlcikuaXNMaXN0Qm94KCkpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIC8vIFRleHRi
b3hlcyBzaG91bGQgc2VuZCBvdXQgbm90aWZpY2F0aW9ucy4KLSAgICBpZiAobm9kZUhhc1JvbGUo
bm9kZSwgInRleHRib3giKSB8fCAoaXM8RWxlbWVudD4oKm5vZGUpICYmIGNvbnRlbnRFZGl0YWJs
ZUF0dHJpYnV0ZUlzRW5hYmxlZChkb3duY2FzdDxFbGVtZW50Pihub2RlKSkpKQorICAgIGlmIChu
b2RlSGFzUm9sZShub2RlLCAidGV4dGJveCJfcykgfHwgKGlzPEVsZW1lbnQ+KCpub2RlKSAmJiBj
b250ZW50RWRpdGFibGVBdHRyaWJ1dGVJc0VuYWJsZWQoZG93bmNhc3Q8RWxlbWVudD4obm9kZSkp
KSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgCiAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMjg0
MCw3ICsyODQwLDcgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpzaG91bGRJZ25v
cmVBdHRyaWJ1dGVSb2xlKCkgY29uc3QKIAogQWNjZXNzaWJpbGl0eVJvbGUgQWNjZXNzaWJpbGl0
eVJlbmRlck9iamVjdDo6ZGV0ZXJtaW5lQWNjZXNzaWJpbGl0eVJvbGUoKQogewotICAgIEFYVFJB
Q0UoIkFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmRldGVybWluZUFjY2Vzc2liaWxpdHlSb2xl
Iik7CisgICAgQVhUUkFDRSgiQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6ZGV0ZXJtaW5lQWNj
ZXNzaWJpbGl0eVJvbGUiX3MpOwogICAgIGlmICghbV9yZW5kZXJlcikKICAgICAgICAgcmV0dXJu
IEFjY2Vzc2liaWxpdHlSb2xlOjpVbmtub3duOwogCkBAIC0zMjgwLDcgKzMyODAsNyBAQCB2b2lk
IEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OmFkZExpc3RJdGVtTWFya2VyKCkKIAogdm9pZCBB
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojp1cGRhdGVSb2xlQWZ0ZXJDaGlsZHJlbkNyZWF0aW9u
KCkKIHsKLSAgICBBWFRSQUNFKCJBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojp1cGRhdGVSb2xl
QWZ0ZXJDaGlsZHJlbkNyZWF0aW9uIik7CisgICAgQVhUUkFDRSgiQWNjZXNzaWJpbGl0eVJlbmRl
ck9iamVjdDo6dXBkYXRlUm9sZUFmdGVyQ2hpbGRyZW5DcmVhdGlvbiJfcyk7CiAgICAgLy8gSWYg
YSBtZW51IGRvZXMgbm90IGhhdmUgdmFsaWQgbWVudWl0ZW0gY2hpbGRyZW4sIGl0IHNob3VsZCBu
b3QgYmUgZXhwb3NlZCBhcyBhIG1lbnUuCiAgICAgYXV0byByb2xlID0gcm9sZVZhbHVlKCk7CiAg
ICAgaWYgKHJvbGUgPT0gQWNjZXNzaWJpbGl0eVJvbGU6Ok1lbnUpIHsKQEAgLTMzNjQsNyArMzM2
NCw3IEBAIGNvbnN0IFN0cmluZyBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpsaXZlUmVnaW9u
UmVsZXZhbnQoKSBjb25zdAogCiAgICAgLy8gRGVmYXVsdCBhcmlhLXJlbGV2YW50ID0gImFkZGl0
aW9ucyB0ZXh0Ii4KICAgICBpZiAocmVsZXZhbnQuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4g
ImFkZGl0aW9ucyB0ZXh0IjsKKyAgICAgICAgcmV0dXJuICJhZGRpdGlvbnMgdGV4dCJfczsKICAg
ICAKICAgICByZXR1cm4gcmVsZXZhbnQ7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUNlbGwuY3BwIGIvU291cmNlL1dlYkNvcmUv
YWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVDZWxsLmNwcAppbmRleCAyN2NmODY5ZjRk
NTc3MWM5ODRiMmJlM2Y0NjEyNmI5ODc3YjYwMDE1Li4zNGE3YmE3Y2NkYjRlNTNhYTU1NDYxOTgw
ZjE1NGQzODhjMmFmNDNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlUYWJsZUNlbGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlQ2VsbC5jcHAKQEAgLTY1LDcgKzY1LDcgQEAgYm9vbCBB
Y2Nlc3NpYmlsaXR5VGFibGVDZWxsOjpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNv
bnN0CiAgICAgCiAgICAgLy8gSWdub3JlIGFub255bW91cyB0YWJsZSBjZWxscyBhcyBsb25nIGFz
IHRoZXkncmUgbm90IGluIGEgdGFibGUgKGllLiB3aGVuIGRpc3BsYXk6dGFibGUgaXMgdXNlZCku
CiAgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJUYWJsZSA9IGlzPFJlbmRlclRhYmxlQ2VsbD4ocmVu
ZGVyZXIoKSkgPyBkb3duY2FzdDxSZW5kZXJUYWJsZUNlbGw+KCptX3JlbmRlcmVyKS50YWJsZSgp
IDogbnVsbHB0cjsKLSAgICBib29sIGluVGFibGUgPSByZW5kZXJUYWJsZSAmJiByZW5kZXJUYWJs
ZS0+bm9kZSgpICYmIChyZW5kZXJUYWJsZS0+bm9kZSgpLT5oYXNUYWdOYW1lKHRhYmxlVGFnKSB8
fCBub2RlSGFzUm9sZShyZW5kZXJUYWJsZS0+bm9kZSgpLCAiZ3JpZCIpKTsKKyAgICBib29sIGlu
VGFibGUgPSByZW5kZXJUYWJsZSAmJiByZW5kZXJUYWJsZS0+bm9kZSgpICYmIChyZW5kZXJUYWJs
ZS0+bm9kZSgpLT5oYXNUYWdOYW1lKHRhYmxlVGFnKSB8fCBub2RlSGFzUm9sZShyZW5kZXJUYWJs
ZS0+bm9kZSgpLCAiZ3JpZCJfcykpOwogICAgIGlmICghbm9kZSgpICYmICFpblRhYmxlKQogICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUcmVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvQWNjZXNzaWJpbGl0eVRyZWUuY3BwCmluZGV4IDU5MGM5NjE1OTYwNjBkYjZkYjE1
NTM4OThlYjE2ZjMwYjQ1NGU2OGQuLjFjMDBiYzk1NDIzZTI5NmFkNTEyNjM3N2U0ODFjN2NlNzlk
ZmJkMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eVRyZWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eVRyZWUuY3BwCkBAIC02OCw3ICs2OCw3IEBAIEFjY2Vzc2liaWxpdHlSb2xlIEFjY2Vzc2li
aWxpdHlUcmVlOjpkZXRlcm1pbmVBY2Nlc3NpYmlsaXR5Um9sZSgpCiBib29sIEFjY2Vzc2liaWxp
dHlUcmVlOjpub2RlSGFzVHJlZUl0ZW1DaGlsZChOb2RlJiBub2RlKSBjb25zdAogewogICAgIGZv
ciAoYXV0byogY2hpbGQgPSBub2RlLmZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQt
Pm5leHRTaWJsaW5nKCkpIHsKLSAgICAgICAgaWYgKG5vZGVIYXNSb2xlKGNoaWxkLCAidHJlZWl0
ZW0iKSkKKyAgICAgICAgaWYgKG5vZGVIYXNSb2xlKGNoaWxkLCAidHJlZWl0ZW0iX3MpKQogICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogICAgIHJldHVybiBmYWxzZTsKQEAgLTkyLDE0
ICs5MiwxNCBAQCBib29sIEFjY2Vzc2liaWxpdHlUcmVlOjppc1RyZWVWYWxpZCgpIGNvbnN0CiAK
ICAgICAgICAgaWYgKCFpczxFbGVtZW50PigqY2hpbGQpKQogICAgICAgICAgICAgY29udGludWU7
Ci0gICAgICAgIGlmIChub2RlSGFzUm9sZShjaGlsZCwgInRyZWVpdGVtIikpCisgICAgICAgIGlm
IChub2RlSGFzUm9sZShjaGlsZCwgInRyZWVpdGVtIl9zKSkKICAgICAgICAgICAgIGNvbnRpbnVl
OwotICAgICAgICBpZiAobm9kZUhhc1JvbGUoY2hpbGQsICJwcmVzZW50YXRpb24iKSkgeworICAg
ICAgICBpZiAobm9kZUhhc1JvbGUoY2hpbGQsICJwcmVzZW50YXRpb24iX3MpKSB7CiAgICAgICAg
ICAgICBpZiAoIW5vZGVIYXNUcmVlSXRlbUNoaWxkKCpjaGlsZCkpCiAgICAgICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KLSAgICAgICAg
aWYgKCFub2RlSGFzUm9sZShjaGlsZCwgImdyb3VwIikpCisgICAgICAgIGlmICghbm9kZUhhc1Jv
bGUoY2hpbGQsICJncm91cCJfcykpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAg
ICAgZm9yIChhdXRvKiBncm91cENoaWxkID0gY2hpbGQtPmZpcnN0Q2hpbGQoKTsgZ3JvdXBDaGls
ZDsgZ3JvdXBDaGlsZCA9IGdyb3VwQ2hpbGQtPm5leHRTaWJsaW5nKCkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0
ZWRPYmplY3QuY3BwCmluZGV4IGFiMWU4OTU1OTk5MzA1NWFmOWIxMThjNDc4NzliZWRjMTY5ODVl
MTYuLjFhODFjNmZkNDRlYzVhYThiOTA2NmJjMzVjYjg0N2VhZDdhNDlhZWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmpl
Y3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FY
SXNvbGF0ZWRPYmplY3QuY3BwCkBAIC0zMDUsNyArMzA1LDcgQEAgdm9pZCBBWElzb2xhdGVkT2Jq
ZWN0Ojppbml0aWFsaXplQXR0cmlidXRlRGF0YShBWENvcmVPYmplY3QmIGNvcmVPYmplY3QsIGJv
b2wgaXMKICAgICAgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OlRleHRMZW5ndGgsIG9i
amVjdC50ZXh0TGVuZ3RoKCkpOwogCiAgICAgaWYgKG9iamVjdC5pc1JhZGlvQnV0dG9uKCkpIHsK
LSAgICAgICAgaWYgKGF1dG8gbmFtZUF0dHJpYnV0ZSA9IG9iamVjdC5hdHRyaWJ1dGVWYWx1ZSgi
bmFtZSIpKQorICAgICAgICBpZiAoYXV0byBuYW1lQXR0cmlidXRlID0gb2JqZWN0LmF0dHJpYnV0
ZVZhbHVlKCJuYW1lIl9zKSkKICAgICAgICAgICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1l
OjpOYW1lQXR0cmlidXRlLCBuYW1lQXR0cmlidXRlLT5pc29sYXRlZENvcHkoKSk7CiAgICAgfQog
CkBAIC0zNjIsNyArMzYyLDcgQEAgdm9pZCBBWElzb2xhdGVkT2JqZWN0Ojppbml0aWFsaXplQXR0
cmlidXRlRGF0YShBWENvcmVPYmplY3QmIGNvcmVPYmplY3QsIGJvb2wgaXMKICAgICBTdHJpbmcg
Y29tYmluZWRDbGFzc0xpc3Q7CiAgICAgZm9yIChhdXRvIGl0ID0gY2xhc3NMaXN0LmJlZ2luKCks
IGVuZCA9IGNsYXNzTGlzdC5lbmQoKTsgaXQgIT0gZW5kOyArK2l0KSB7CiAgICAgICAgIGNvbWJp
bmVkQ2xhc3NMaXN0LmFwcGVuZCgqaXQpOwotICAgICAgICBjb21iaW5lZENsYXNzTGlzdC5hcHBl
bmQoIiAiKTsKKyAgICAgICAgY29tYmluZWRDbGFzc0xpc3QuYXBwZW5kKCIgIl9zKTsKICAgICB9
CiAgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6OkNsYXNzTGlzdCwgY29tYmluZWRDbGFz
c0xpc3QpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xh
dGVkdHJlZS9BWElzb2xhdGVkVHJlZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5jcHAKaW5kZXggNjdmNWIxZGVmZDljNDc4ZWRl
YmIwNzkzYzY1MGUzOGNmMzlhM2M0Yi4uMWNlNzg1MDJkMmVjNzcyMjdjYmYzZGIyNzUwYzA3YWJj
ZTgzOWNlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRl
ZHRyZWUvQVhJc29sYXRlZFRyZWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmNwcApAQCAtNjIsMTggKzYyLDE4IEBAIEFY
SXNvbGF0ZWRUcmVlOjpBWElzb2xhdGVkVHJlZShBWE9iamVjdENhY2hlKiBheE9iamVjdENhY2hl
KQogICAgICwgbV9heE9iamVjdENhY2hlKGF4T2JqZWN0Q2FjaGUpCiAgICAgLCBtX3VzZWRPbkFY
VGhyZWFkKGF4T2JqZWN0Q2FjaGUtPnVzZWRPbkFYVGhyZWFkKCkpCiB7Ci0gICAgQVhUUkFDRSgi
QVhJc29sYXRlZFRyZWU6OkFYSXNvbGF0ZWRUcmVlIik7CisgICAgQVhUUkFDRSgiQVhJc29sYXRl
ZFRyZWU6OkFYSXNvbGF0ZWRUcmVlIl9zKTsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwog
fQogCiBBWElzb2xhdGVkVHJlZTo6fkFYSXNvbGF0ZWRUcmVlKCkKIHsKLSAgICBBWFRSQUNFKCJB
WElzb2xhdGVkVHJlZTo6fkFYSXNvbGF0ZWRUcmVlIik7CisgICAgQVhUUkFDRSgiQVhJc29sYXRl
ZFRyZWU6On5BWElzb2xhdGVkVHJlZSJfcyk7CiB9CiAKIHZvaWQgQVhJc29sYXRlZFRyZWU6OmNs
ZWFyKCkKIHsKLSAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6Y2xlYXIiKTsKKyAgICBBWFRS
QUNFKCJBWElzb2xhdGVkVHJlZTo6Y2xlYXIiX3MpOwogICAgIEFTU0VSVChpc01haW5UaHJlYWQo
KSk7CiAgICAgbV9heE9iamVjdENhY2hlID0gbnVsbHB0cjsKICAgICBtX25vZGVNYXAuY2xlYXIo
KTsKQEAgLTg1LDE0ICs4NSwxNCBAQCB2b2lkIEFYSXNvbGF0ZWRUcmVlOjpjbGVhcigpCiAKIFJl
ZlB0cjxBWElzb2xhdGVkVHJlZT4gQVhJc29sYXRlZFRyZWU6OnRyZWVGb3JJRChBWElzb2xhdGVk
VHJlZUlEIHRyZWVJRCkKIHsKLSAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6dHJlZUZvcklE
Iik7CisgICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OnRyZWVGb3JJRCJfcyk7CiAgICAgTG9j
a2VyIGxvY2tlciB7IHNfY2FjaGVMb2NrIH07CiAgICAgcmV0dXJuIHRyZWVJRENhY2hlKCkuZ2V0
KHRyZWVJRCk7CiB9CiAKIFJlZjxBWElzb2xhdGVkVHJlZT4gQVhJc29sYXRlZFRyZWU6OmNyZWF0
ZShBWE9iamVjdENhY2hlKiBheE9iamVjdENhY2hlKQogewotICAgIEFYVFJBQ0UoIkFYSXNvbGF0
ZWRUcmVlOjpjcmVhdGUiKTsKKyAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6Y3JlYXRlIl9z
KTsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIEFTU0VSVChheE9iamVjdENhY2hl
ICYmIGF4T2JqZWN0Q2FjaGUtPnBhZ2VJRCgpKTsKIApAQCAtMTI1LDcgKzEyNSw3IEBAIFJlZjxB
WElzb2xhdGVkVHJlZT4gQVhJc29sYXRlZFRyZWU6OmNyZWF0ZShBWE9iamVjdENhY2hlKiBheE9i
amVjdENhY2hlKQogCiB2b2lkIEFYSXNvbGF0ZWRUcmVlOjpyZW1vdmVUcmVlRm9yUGFnZUlEKFBh
Z2VJZGVudGlmaWVyIHBhZ2VJRCkKIHsKLSAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6cmVt
b3ZlVHJlZUZvclBhZ2VJRCIpOworICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjpyZW1vdmVU
cmVlRm9yUGFnZUlEIl9zKTsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogICAgIExvY2tl
ciBsb2NrZXIgeyBzX2NhY2hlTG9jayB9OwogCkBAIC0xNTcsNyArMTU3LDcgQEAgUmVmUHRyPEFY
SXNvbGF0ZWRPYmplY3Q+IEFYSXNvbGF0ZWRUcmVlOjpub2RlRm9ySUQoQVhJRCBheElEKSBjb25z
dAogCiBWZWN0b3I8UmVmUHRyPEFYQ29yZU9iamVjdD4+IEFYSXNvbGF0ZWRUcmVlOjpvYmplY3Rz
Rm9ySURzKGNvbnN0IFZlY3RvcjxBWElEPiYgYXhJRHMpIGNvbnN0CiB7Ci0gICAgQVhUUkFDRSgi
QVhJc29sYXRlZFRyZWU6Om9iamVjdHNGb3JJRHMiKTsKKyAgICBBWFRSQUNFKCJBWElzb2xhdGVk
VHJlZTo6b2JqZWN0c0ZvcklEcyJfcyk7CiAgICAgVmVjdG9yPFJlZlB0cjxBWENvcmVPYmplY3Q+
PiByZXN1bHQ7CiAgICAgcmVzdWx0LnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoYXhJRHMuc2l6ZSgp
KTsKICAgICBmb3IgKGF1dG8mIGF4SUQgOiBheElEcykgewpAQCAtMTc4LDcgKzE3OCw3IEBAIFZl
Y3RvcjxBWElEPiBBWElzb2xhdGVkVHJlZTo6aWRzRm9yT2JqZWN0cyhjb25zdCBWZWN0b3I8UmVm
UHRyPEFYQ29yZU9iamVjdD4+JiBvCiAKIHZvaWQgQVhJc29sYXRlZFRyZWU6OmdlbmVyYXRlU3Vi
dHJlZShBWENvcmVPYmplY3QmIGF4T2JqZWN0LCBBWENvcmVPYmplY3QqIGF4UGFyZW50LCBib29s
IGF0dGFjaFdyYXBwZXIpCiB7Ci0gICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OmdlbmVyYXRl
U3VidHJlZSIpOworICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjpnZW5lcmF0ZVN1YnRyZWUi
X3MpOwogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKICAgICBpZiAoIWF4T2JqZWN0Lm9i
amVjdElEKCkuaXNWYWxpZCgpKQpAQCAtMjc3LDcgKzI3Nyw3IEBAIHZvaWQgQVhJc29sYXRlZFRy
ZWU6OnF1ZXVlQ2hhbmdlc0FuZFJlbW92YWxzKGNvbnN0IFZlY3RvcjxOb2RlQ2hhbmdlPiYgY2hh
bmdlcywKIAogdm9pZCBBWElzb2xhdGVkVHJlZTo6Y29sbGVjdE5vZGVDaGFuZ2VzRm9yU3VidHJl
ZShBWENvcmVPYmplY3QmIGF4T2JqZWN0LCBBWElEIHBhcmVudElELCBib29sIGF0dGFjaFdyYXBw
ZXIsIFZlY3RvcjxOb2RlQ2hhbmdlPiYgY2hhbmdlcywgSGFzaFNldDxBWElEPiogaWRzQmVpbmdD
aGFuZ2VkKQogewotICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjpjb2xsZWN0Tm9kZUNoYW5n
ZXNGb3JTdWJ0cmVlIik7CisgICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OmNvbGxlY3ROb2Rl
Q2hhbmdlc0ZvclN1YnRyZWUiX3MpOwogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKICAg
ICBhdXRvIG5vZGVDaGFuZ2UgPSBub2RlQ2hhbmdlRm9yT2JqZWN0KGF4T2JqZWN0LCBwYXJlbnRJ
RCwgYXR0YWNoV3JhcHBlcik7CkBAIC0yOTUsNyArMjk1LDcgQEAgdm9pZCBBWElzb2xhdGVkVHJl
ZTo6Y29sbGVjdE5vZGVDaGFuZ2VzRm9yU3VidHJlZShBWENvcmVPYmplY3QmIGF4T2JqZWN0LCBB
WElEIHAKIAogdm9pZCBBWElzb2xhdGVkVHJlZTo6dXBkYXRlTm9kZShBWENvcmVPYmplY3QmIGF4
T2JqZWN0KQogewotICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVOb2RlIik7Cisg
ICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OnVwZGF0ZU5vZGUiX3MpOwogICAgIEFYTE9HKCZh
eE9iamVjdCk7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIApAQCAtMzEzLDcgKzMxMyw3
IEBAIHZvaWQgQVhJc29sYXRlZFRyZWU6OnVwZGF0ZU5vZGUoQVhDb3JlT2JqZWN0JiBheE9iamVj
dCkKIAogdm9pZCBBWElzb2xhdGVkVHJlZTo6dXBkYXRlTm9kZVByb3BlcnR5KGNvbnN0IEFYQ29y
ZU9iamVjdCYgYXhPYmplY3QsIEFYUHJvcGVydHlOYW1lIHByb3BlcnR5KQogewotICAgIEFYVFJB
Q0UoIkFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVOb2RlUHJvcGVydHkiKTsKKyAgICBBWFRSQUNFKCJB
WElzb2xhdGVkVHJlZTo6dXBkYXRlTm9kZVByb3BlcnR5Il9zKTsKICAgICBBU1NFUlQoaXNNYWlu
VGhyZWFkKCkpOwogCiAgICAgQVhQcm9wZXJ0eU1hcCBwcm9wZXJ0eU1hcDsKQEAgLTM0OCw3ICsz
NDgsNyBAQCB2b2lkIEFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVOb2RlUHJvcGVydHkoY29uc3QgQVhD
b3JlT2JqZWN0JiBheE9iamVjdCwgQVhQcm9wZXJ0eQogCiB2b2lkIEFYSXNvbGF0ZWRUcmVlOjp1
cGRhdGVDaGlsZHJlbihBWENvcmVPYmplY3QmIGF4T2JqZWN0KQogewotICAgIEFYVFJBQ0UoIkFY
SXNvbGF0ZWRUcmVlOjp1cGRhdGVDaGlsZHJlbiIpOworICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRU
cmVlOjp1cGRhdGVDaGlsZHJlbiJfcyk7CiAgICAgQVhMT0coIkZvciBBWE9iamVjdDoiKTsKICAg
ICBBWExPRygmYXhPYmplY3QpOwogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CkBAIC00MjIs
NyArNDIyLDcgQEAgdm9pZCBBWElzb2xhdGVkVHJlZTo6dXBkYXRlQ2hpbGRyZW4oQVhDb3JlT2Jq
ZWN0JiBheE9iamVjdCkKIAogUmVmUHRyPEFYSXNvbGF0ZWRPYmplY3Q+IEFYSXNvbGF0ZWRUcmVl
Ojpmb2N1c2VkTm9kZSgpCiB7Ci0gICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OmZvY3VzZWRO
b2RlIik7CisgICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OmZvY3VzZWROb2RlIl9zKTsKICAg
ICBSRUxFQVNFX0FTU0VSVCghaXNNYWluVGhyZWFkKCkpOwogICAgIC8vIEFwcGx5IHBlbmRpbmcg
Y2hhbmdlcyBpbiBjYXNlIGZvY3VzIGhhcyBjaGFuZ2VkIGFuZCBoYXNuJ3QgYmVlbiB1cGRhdGVk
LgogICAgIGFwcGx5UGVuZGluZ0NoYW5nZXMoKTsKQEAgLTQzNCwxNCArNDM0LDE0IEBAIFJlZlB0
cjxBWElzb2xhdGVkT2JqZWN0PiBBWElzb2xhdGVkVHJlZTo6Zm9jdXNlZE5vZGUoKQogCiBSZWZQ
dHI8QVhJc29sYXRlZE9iamVjdD4gQVhJc29sYXRlZFRyZWU6OnJvb3ROb2RlKCkKIHsKLSAgICBB
WFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6cm9vdE5vZGUiKTsKKyAgICBBWFRSQUNFKCJBWElzb2xh
dGVkVHJlZTo6cm9vdE5vZGUiX3MpOwogICAgIExvY2tlciBsb2NrZXIgeyBtX2NoYW5nZUxvZ0xv
Y2sgfTsKICAgICByZXR1cm4gbV9yb290Tm9kZTsKIH0KIAogdm9pZCBBWElzb2xhdGVkVHJlZTo6
c2V0Um9vdE5vZGUoQVhJc29sYXRlZE9iamVjdCogcm9vdCkKIHsKLSAgICBBWFRSQUNFKCJBWElz
b2xhdGVkVHJlZTo6c2V0Um9vdE5vZGUiKTsKKyAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6
c2V0Um9vdE5vZGUiX3MpOwogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgQVNTRVJU
KG1fY2hhbmdlTG9nTG9jay5pc0xvY2tlZCgpKTsKICAgICBBU1NFUlQoIW1fcm9vdE5vZGUpOwpA
QCAtNDUyLDcgKzQ1Miw3IEBAIHZvaWQgQVhJc29sYXRlZFRyZWU6OnNldFJvb3ROb2RlKEFYSXNv
bGF0ZWRPYmplY3QqIHJvb3QpCiAKIHZvaWQgQVhJc29sYXRlZFRyZWU6OnNldEZvY3VzZWROb2Rl
SUQoQVhJRCBheElEKQogewotICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjpzZXRGb2N1c2Vk
Tm9kZUlEIik7CisgICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OnNldEZvY3VzZWROb2RlSUQi
X3MpOwogICAgIEFYTE9HKG1ha2VTdHJpbmcoImF4SUQgIiwgYXhJRC5sb2dnaW5nU3RyaW5nKCkp
KTsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogCkBAIC00NjYsNyArNDY2LDcgQEAgdm9p
ZCBBWElzb2xhdGVkVHJlZTo6c2V0Rm9jdXNlZE5vZGVJRChBWElEIGF4SUQpCiAKIHZvaWQgQVhJ
c29sYXRlZFRyZWU6OnVwZGF0ZUxvYWRpbmdQcm9ncmVzcyhkb3VibGUgbmV3UHJvZ3Jlc3NWYWx1
ZSkKIHsKLSAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6dXBkYXRlTG9hZGluZ1Byb2dyZXNz
Iik7CisgICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OnVwZGF0ZUxvYWRpbmdQcm9ncmVzcyJf
cyk7CiAgICAgQVhMT0cobWFrZVN0cmluZygiVXBkYXRpbmcgbG9hZGluZyBwcm9ncmVzcyB0byAi
LCBuZXdQcm9ncmVzc1ZhbHVlLCAiIGZvciB0cmVlSUQgIiwgdHJlZUlEKCkpKTsKICAgICBBU1NF
UlQoaXNNYWluVGhyZWFkKCkpOwogCkBAIC00NzUsNyArNDc1LDcgQEAgdm9pZCBBWElzb2xhdGVk
VHJlZTo6dXBkYXRlTG9hZGluZ1Byb2dyZXNzKGRvdWJsZSBuZXdQcm9ncmVzc1ZhbHVlKQogCiB2
b2lkIEFYSXNvbGF0ZWRUcmVlOjpyZW1vdmVOb2RlKGNvbnN0IEFYQ29yZU9iamVjdCYgYXhPYmpl
Y3QpCiB7Ci0gICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OnJlbW92ZU5vZGUiKTsKKyAgICBB
WFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6cmVtb3ZlTm9kZSJfcyk7CiAgICAgQVhMT0cobWFrZVN0
cmluZygib2JqZWN0SUQgIiwgYXhPYmplY3Qub2JqZWN0SUQoKS5sb2dnaW5nU3RyaW5nKCkpKTsK
ICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogCkBAIC00ODUsNyArNDg1LDcgQEAgdm9pZCBB
WElzb2xhdGVkVHJlZTo6cmVtb3ZlTm9kZShjb25zdCBBWENvcmVPYmplY3QmIGF4T2JqZWN0KQog
CiB2b2lkIEFYSXNvbGF0ZWRUcmVlOjpyZW1vdmVTdWJ0cmVlRnJvbU5vZGVNYXAoQVhJRCBvYmpl
Y3RJRCwgQVhDb3JlT2JqZWN0KiBheFBhcmVudCwgY29uc3QgSGFzaFNldDxBWElEPiYgaWRzVG9L
ZWVwKQogewotICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjpyZW1vdmVTdWJ0cmVlRnJvbU5v
ZGVNYXAiKTsKKyAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6cmVtb3ZlU3VidHJlZUZyb21O
b2RlTWFwIl9zKTsKICAgICBBWExPRyhtYWtlU3RyaW5nKCJSZW1vdmluZyBzdWJ0cmVlIGZvciBv
YmplY3RJRCAiLCBvYmplY3RJRC5sb2dnaW5nU3RyaW5nKCkpKTsKICAgICBBU1NFUlQoaXNNYWlu
VGhyZWFkKCkpOwogCkBAIC01MjMsNyArNTIzLDcgQEAgdm9pZCBBWElzb2xhdGVkVHJlZTo6cmVt
b3ZlU3VidHJlZUZyb21Ob2RlTWFwKEFYSUQgb2JqZWN0SUQsIEFYQ29yZU9iamVjdCogYXhQYXIK
IAogdm9pZCBBWElzb2xhdGVkVHJlZTo6YXBwbHlQZW5kaW5nQ2hhbmdlcygpCiB7Ci0gICAgQVhU
UkFDRSgiQVhJc29sYXRlZFRyZWU6OmFwcGx5UGVuZGluZ0NoYW5nZXMiKTsKKyAgICBBWFRSQUNF
KCJBWElzb2xhdGVkVHJlZTo6YXBwbHlQZW5kaW5nQ2hhbmdlcyJfcyk7CiAKICAgICAvLyBJbiBp
c29sYXRlZCB0cmVlIG1vZGUgMiwgb25seSBhcHBseSBwZW5kaW5nIGNoYW5nZXMgb24gdGhlIEFY
IHRocmVhZC4KICAgICBBU1NFUlQobV91c2VkT25BWFRocmVhZCA/ICFpc01haW5UaHJlYWQoKSA6
IGlzTWFpblRocmVhZCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvbWFjL0FjY2Vzc2liaWxpdHlPYmplY3RNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0TWFjLm1tCmluZGV4IGEyODk1Mzg3NGM4MDU1
MTI3ZjgwYjJmYzM2MmQ5Y2U4MjFlNzAxYzQuLmZjNmU0MDhjZmM3YTkyNTNhMWU4OTUwN2UwMDU0
OTQwMzhjOWZiM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFj
L0FjY2Vzc2liaWxpdHlPYmplY3RNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9tYWMvQWNjZXNzaWJpbGl0eU9iamVjdE1hYy5tbQpAQCAtMjIyLDIwICsyMjIsMjAgQEAg
U3RyaW5nIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnN1YnJvbGVQbGF0Zm9ybVN0cmluZygpIGNvbnN0
CiAgICAgfQogCiAgICAgaWYgKGlzTWV0ZXIoKSkKLSAgICAgICAgcmV0dXJuICJBWE1ldGVyIjsK
KyAgICAgICAgcmV0dXJuICJBWE1ldGVyIl9zOwogCiAjaWYgRU5BQkxFKE1PREVMX0VMRU1FTlQp
CiAgICAgaWYgKGlzTW9kZWwoKSkKLSAgICAgICAgcmV0dXJuICJBWE1vZGVsIjsKKyAgICAgICAg
cmV0dXJuICJBWE1vZGVsIl9zOwogI2VuZGlmCiAKICAgICBBY2Nlc3NpYmlsaXR5Um9sZSByb2xl
ID0gcm9sZVZhbHVlKCk7CiAgICAgaWYgKHJvbGUgPT0gQWNjZXNzaWJpbGl0eVJvbGU6Okhvcml6
b250YWxSdWxlKQotICAgICAgICByZXR1cm4gIkFYQ29udGVudFNlcGFyYXRvciI7CisgICAgICAg
IHJldHVybiAiQVhDb250ZW50U2VwYXJhdG9yIl9zOwogICAgIGlmIChyb2xlID09IEFjY2Vzc2li
aWxpdHlSb2xlOjpUb2dnbGVCdXR0b24pCiAgICAgICAgIHJldHVybiBOU0FjY2Vzc2liaWxpdHlU
b2dnbGVTdWJyb2xlOwogICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpGb290ZXIp
Ci0gICAgICAgIHJldHVybiAiQVhGb290ZXIiOworICAgICAgICByZXR1cm4gIkFYRm9vdGVyIl9z
OwogICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpTcGluQnV0dG9uUGFydCkgewog
ICAgICAgICBpZiAoaXNJbmNyZW1lbnRvcigpKQogICAgICAgICAgICAgcmV0dXJuIE5TQWNjZXNz
aWJpbGl0eUluY3JlbWVudEFycm93U3Vicm9sZTsKQEAgLTI0Myw3OSArMjQzLDc5IEBAIFN0cmlu
ZyBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzdWJyb2xlUGxhdGZvcm1TdHJpbmcoKSBjb25zdAogICAg
IH0KIAogICAgIGlmIChpc0ZpbGVVcGxvYWRCdXR0b24oKSkKLSAgICAgICAgcmV0dXJuICJBWEZp
bGVVcGxvYWRCdXR0b24iOworICAgICAgICByZXR1cm4gIkFYRmlsZVVwbG9hZEJ1dHRvbiJfczsK
IAogICAgIGlmIChpc1RyZWVJdGVtKCkpCiAgICAgICAgIHJldHVybiBOU0FjY2Vzc2liaWxpdHlP
dXRsaW5lUm93U3Vicm9sZTsKIAogICAgIGlmIChpc0ZpZWxkc2V0KCkpCi0gICAgICAgIHJldHVy
biAiQVhGaWVsZHNldCI7CisgICAgICAgIHJldHVybiAiQVhGaWVsZHNldCJfczsKIAogICAgIGlm
IChpc0xpc3QoKSkgewogICAgICAgICBpZiAoaXNVbm9yZGVyZWRMaXN0KCkgfHwgaXNPcmRlcmVk
TGlzdCgpKQotICAgICAgICAgICAgcmV0dXJuICJBWENvbnRlbnRMaXN0IjsKKyAgICAgICAgICAg
IHJldHVybiAiQVhDb250ZW50TGlzdCJfczsKICAgICAgICAgaWYgKGlzRGVzY3JpcHRpb25MaXN0
KCkpCi0gICAgICAgICAgICByZXR1cm4gIkFYRGVzY3JpcHRpb25MaXN0IjsKKyAgICAgICAgICAg
IHJldHVybiAiQVhEZXNjcmlwdGlvbkxpc3QiX3M7CiAgICAgfQogCiAgICAgLy8gQVJJQSBjb250
ZW50IHN1YnJvbGVzLgogICAgIHN3aXRjaCAocm9sZSkgewogICAgIGNhc2UgQWNjZXNzaWJpbGl0
eVJvbGU6OkxhbmRtYXJrQmFubmVyOgotICAgICAgICByZXR1cm4gIkFYTGFuZG1hcmtCYW5uZXIi
OworICAgICAgICByZXR1cm4gIkFYTGFuZG1hcmtCYW5uZXIiX3M7CiAgICAgY2FzZSBBY2Nlc3Np
YmlsaXR5Um9sZTo6TGFuZG1hcmtDb21wbGVtZW50YXJ5OgotICAgICAgICByZXR1cm4gIkFYTGFu
ZG1hcmtDb21wbGVtZW50YXJ5IjsKKyAgICAgICAgcmV0dXJuICJBWExhbmRtYXJrQ29tcGxlbWVu
dGFyeSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpMYW5kbWFya0NvbnRlbnRJbmZv
OgotICAgICAgICByZXR1cm4gIkFYTGFuZG1hcmtDb250ZW50SW5mbyI7CisgICAgICAgIHJldHVy
biAiQVhMYW5kbWFya0NvbnRlbnRJbmZvIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6
OkxhbmRtYXJrTWFpbjoKLSAgICAgICAgcmV0dXJuICJBWExhbmRtYXJrTWFpbiI7CisgICAgICAg
IHJldHVybiAiQVhMYW5kbWFya01haW4iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6
TGFuZG1hcmtOYXZpZ2F0aW9uOgotICAgICAgICByZXR1cm4gIkFYTGFuZG1hcmtOYXZpZ2F0aW9u
IjsKKyAgICAgICAgcmV0dXJuICJBWExhbmRtYXJrTmF2aWdhdGlvbiJfczsKICAgICBjYXNlIEFj
Y2Vzc2liaWxpdHlSb2xlOjpMYW5kbWFya0RvY1JlZ2lvbjoKICAgICBjYXNlIEFjY2Vzc2liaWxp
dHlSb2xlOjpMYW5kbWFya1JlZ2lvbjoKLSAgICAgICAgcmV0dXJuICJBWExhbmRtYXJrUmVnaW9u
IjsKKyAgICAgICAgcmV0dXJuICJBWExhbmRtYXJrUmVnaW9uIl9zOwogICAgIGNhc2UgQWNjZXNz
aWJpbGl0eVJvbGU6OkxhbmRtYXJrU2VhcmNoOgotICAgICAgICByZXR1cm4gIkFYTGFuZG1hcmtT
ZWFyY2giOworICAgICAgICByZXR1cm4gIkFYTGFuZG1hcmtTZWFyY2giX3M7CiAgICAgY2FzZSBB
Y2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb25BbGVydDoKLSAgICAgICAgcmV0dXJuICJBWEFw
cGxpY2F0aW9uQWxlcnQiOworICAgICAgICByZXR1cm4gIkFYQXBwbGljYXRpb25BbGVydCJfczsK
ICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvbkFsZXJ0RGlhbG9nOgotICAg
ICAgICByZXR1cm4gIkFYQXBwbGljYXRpb25BbGVydERpYWxvZyI7CisgICAgICAgIHJldHVybiAi
QVhBcHBsaWNhdGlvbkFsZXJ0RGlhbG9nIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6
OkFwcGxpY2F0aW9uRGlhbG9nOgotICAgICAgICByZXR1cm4gIkFYQXBwbGljYXRpb25EaWFsb2ci
OworICAgICAgICByZXR1cm4gIkFYQXBwbGljYXRpb25EaWFsb2ciX3M7CiAgICAgY2FzZSBBY2Nl
c3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb25Hcm91cDoKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlS
b2xlOjpBcHBsaWNhdGlvblRleHRHcm91cDoKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpG
ZWVkOgogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkZvb3Rub3RlOgotICAgICAgICByZXR1
cm4gIkFYQXBwbGljYXRpb25Hcm91cCI7CisgICAgICAgIHJldHVybiAiQVhBcHBsaWNhdGlvbkdy
b3VwIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uTG9nOgotICAg
ICAgICByZXR1cm4gIkFYQXBwbGljYXRpb25Mb2ciOworICAgICAgICByZXR1cm4gIkFYQXBwbGlj
YXRpb25Mb2ciX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb25NYXJx
dWVlOgotICAgICAgICByZXR1cm4gIkFYQXBwbGljYXRpb25NYXJxdWVlIjsKKyAgICAgICAgcmV0
dXJuICJBWEFwcGxpY2F0aW9uTWFycXVlZSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xl
OjpBcHBsaWNhdGlvblN0YXR1czoKLSAgICAgICAgcmV0dXJuICJBWEFwcGxpY2F0aW9uU3RhdHVz
IjsKKyAgICAgICAgcmV0dXJuICJBWEFwcGxpY2F0aW9uU3RhdHVzIl9zOwogICAgIGNhc2UgQWNj
ZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uVGltZXI6Ci0gICAgICAgIHJldHVybiAiQVhBcHBs
aWNhdGlvblRpbWVyIjsKKyAgICAgICAgcmV0dXJuICJBWEFwcGxpY2F0aW9uVGltZXIiX3M7CiAg
ICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RG9jdW1lbnQ6CiAgICAgY2FzZSBBY2Nlc3NpYmls
aXR5Um9sZTo6R3JhcGhpY3NEb2N1bWVudDoKLSAgICAgICAgcmV0dXJuICJBWERvY3VtZW50IjsK
KyAgICAgICAgcmV0dXJuICJBWERvY3VtZW50Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJv
bGU6OkRvY3VtZW50QXJ0aWNsZToKLSAgICAgICAgcmV0dXJuICJBWERvY3VtZW50QXJ0aWNsZSI7
CisgICAgICAgIHJldHVybiAiQVhEb2N1bWVudEFydGljbGUiX3M7CiAgICAgY2FzZSBBY2Nlc3Np
YmlsaXR5Um9sZTo6RG9jdW1lbnRNYXRoOgotICAgICAgICByZXR1cm4gIkFYRG9jdW1lbnRNYXRo
IjsKKyAgICAgICAgcmV0dXJuICJBWERvY3VtZW50TWF0aCJfczsKICAgICBjYXNlIEFjY2Vzc2li
aWxpdHlSb2xlOjpEb2N1bWVudE5vdGU6Ci0gICAgICAgIHJldHVybiAiQVhEb2N1bWVudE5vdGUi
OworICAgICAgICByZXR1cm4gIkFYRG9jdW1lbnROb3RlIl9zOwogICAgIGNhc2UgQWNjZXNzaWJp
bGl0eVJvbGU6OlVzZXJJbnRlcmZhY2VUb29sdGlwOgotICAgICAgICByZXR1cm4gIkFYVXNlcklu
dGVyZmFjZVRvb2x0aXAiOworICAgICAgICByZXR1cm4gIkFYVXNlckludGVyZmFjZVRvb2x0aXAi
X3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VGFiUGFuZWw6Ci0gICAgICAgIHJldHVy
biAiQVhUYWJQYW5lbCI7CisgICAgICAgIHJldHVybiAiQVhUYWJQYW5lbCJfczsKICAgICBjYXNl
IEFjY2Vzc2liaWxpdHlSb2xlOjpEZWZpbml0aW9uOgotICAgICAgICByZXR1cm4gIkFYRGVmaW5p
dGlvbiI7CisgICAgICAgIHJldHVybiAiQVhEZWZpbml0aW9uIl9zOwogICAgIGNhc2UgQWNjZXNz
aWJpbGl0eVJvbGU6OkRlc2NyaXB0aW9uTGlzdFRlcm06CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5
Um9sZTo6VGVybToKLSAgICAgICAgcmV0dXJuICJBWFRlcm0iOworICAgICAgICByZXR1cm4gIkFY
VGVybSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpEZXNjcmlwdGlvbkxpc3REZXRh
aWw6Ci0gICAgICAgIHJldHVybiAiQVhEZXNjcmlwdGlvbiI7CisgICAgICAgIHJldHVybiAiQVhE
ZXNjcmlwdGlvbiJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpXZWJBcHBsaWNhdGlv
bjoKLSAgICAgICAgcmV0dXJuICJBWFdlYkFwcGxpY2F0aW9uIjsKKyAgICAgICAgcmV0dXJuICJB
WFdlYkFwcGxpY2F0aW9uIl9zOwogICAgICAgICAvLyBEZWZhdWx0IGRvZXNuJ3QgcmV0dXJuIGFu
eXRoaW5nLCBzbyByb2xlcyBkZWZpbmVkIGJlbG93IGNhbiBiZSBjaG9zZW4uCiAgICAgZGVmYXVs
dDoKICAgICAgICAgYnJlYWs7CkBAIC0zMjMsNTEgKzMyMyw1MSBAQCBTdHJpbmcgQWNjZXNzaWJp
bGl0eU9iamVjdDo6c3Vicm9sZVBsYXRmb3JtU3RyaW5nKCkgY29uc3QKIAogICAgIGlmIChyb2xl
ID09IEFjY2Vzc2liaWxpdHlSb2xlOjpNYXRoRWxlbWVudCkgewogICAgICAgICBpZiAoaXNNYXRo
RnJhY3Rpb24oKSkKLSAgICAgICAgICAgIHJldHVybiAiQVhNYXRoRnJhY3Rpb24iOworICAgICAg
ICAgICAgcmV0dXJuICJBWE1hdGhGcmFjdGlvbiJfczsKICAgICAgICAgaWYgKGlzTWF0aEZlbmNl
ZCgpKQotICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhGZW5jZWQiOworICAgICAgICAgICAgcmV0
dXJuICJBWE1hdGhGZW5jZWQiX3M7CiAgICAgICAgIGlmIChpc01hdGhTdWJzY3JpcHRTdXBlcnNj
cmlwdCgpKQotICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhTdWJzY3JpcHRTdXBlcnNjcmlwdCI7
CisgICAgICAgICAgICByZXR1cm4gIkFYTWF0aFN1YnNjcmlwdFN1cGVyc2NyaXB0Il9zOwogICAg
ICAgICBpZiAoaXNNYXRoUm93KCkpCi0gICAgICAgICAgICByZXR1cm4gIkFYTWF0aFJvdyI7Cisg
ICAgICAgICAgICByZXR1cm4gIkFYTWF0aFJvdyJfczsKICAgICAgICAgaWYgKGlzTWF0aFVuZGVy
T3ZlcigpKQotICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhVbmRlck92ZXIiOworICAgICAgICAg
ICAgcmV0dXJuICJBWE1hdGhVbmRlck92ZXIiX3M7CiAgICAgICAgIGlmIChpc01hdGhTcXVhcmVS
b290KCkpCi0gICAgICAgICAgICByZXR1cm4gIkFYTWF0aFNxdWFyZVJvb3QiOworICAgICAgICAg
ICAgcmV0dXJuICJBWE1hdGhTcXVhcmVSb290Il9zOwogICAgICAgICBpZiAoaXNNYXRoUm9vdCgp
KQotICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhSb290IjsKKyAgICAgICAgICAgIHJldHVybiAi
QVhNYXRoUm9vdCJfczsKICAgICAgICAgaWYgKGlzTWF0aFRleHQoKSkKLSAgICAgICAgICAgIHJl
dHVybiAiQVhNYXRoVGV4dCI7CisgICAgICAgICAgICByZXR1cm4gIkFYTWF0aFRleHQiX3M7CiAg
ICAgICAgIGlmIChpc01hdGhOdW1iZXIoKSkKLSAgICAgICAgICAgIHJldHVybiAiQVhNYXRoTnVt
YmVyIjsKKyAgICAgICAgICAgIHJldHVybiAiQVhNYXRoTnVtYmVyIl9zOwogICAgICAgICBpZiAo
aXNNYXRoSWRlbnRpZmllcigpKQotICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhJZGVudGlmaWVy
IjsKKyAgICAgICAgICAgIHJldHVybiAiQVhNYXRoSWRlbnRpZmllciJfczsKICAgICAgICAgaWYg
KGlzTWF0aFRhYmxlKCkpCi0gICAgICAgICAgICByZXR1cm4gIkFYTWF0aFRhYmxlIjsKKyAgICAg
ICAgICAgIHJldHVybiAiQVhNYXRoVGFibGUiX3M7CiAgICAgICAgIGlmIChpc01hdGhUYWJsZVJv
dygpKQotICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhUYWJsZVJvdyI7CisgICAgICAgICAgICBy
ZXR1cm4gIkFYTWF0aFRhYmxlUm93Il9zOwogICAgICAgICBpZiAoaXNNYXRoVGFibGVDZWxsKCkp
Ci0gICAgICAgICAgICByZXR1cm4gIkFYTWF0aFRhYmxlQ2VsbCI7CisgICAgICAgICAgICByZXR1
cm4gIkFYTWF0aFRhYmxlQ2VsbCJfczsKICAgICAgICAgaWYgKGlzTWF0aEZlbmNlT3BlcmF0b3Io
KSkKLSAgICAgICAgICAgIHJldHVybiAiQVhNYXRoRmVuY2VPcGVyYXRvciI7CisgICAgICAgICAg
ICByZXR1cm4gIkFYTWF0aEZlbmNlT3BlcmF0b3IiX3M7CiAgICAgICAgIGlmIChpc01hdGhTZXBh
cmF0b3JPcGVyYXRvcigpKQotICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhTZXBhcmF0b3JPcGVy
YXRvciI7CisgICAgICAgICAgICByZXR1cm4gIkFYTWF0aFNlcGFyYXRvck9wZXJhdG9yIl9zOwog
ICAgICAgICBpZiAoaXNNYXRoT3BlcmF0b3IoKSkKLSAgICAgICAgICAgIHJldHVybiAiQVhNYXRo
T3BlcmF0b3IiOworICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhPcGVyYXRvciJfczsKICAgICAg
ICAgaWYgKGlzTWF0aE11bHRpc2NyaXB0KCkpCi0gICAgICAgICAgICByZXR1cm4gIkFYTWF0aE11
bHRpc2NyaXB0IjsKKyAgICAgICAgICAgIHJldHVybiAiQVhNYXRoTXVsdGlzY3JpcHQiX3M7CiAg
ICAgfQogCiAgICAgaWYgKHJvbGUgPT0gQWNjZXNzaWJpbGl0eVJvbGU6OlZpZGVvKQotICAgICAg
ICByZXR1cm4gIkFYVmlkZW8iOworICAgICAgICByZXR1cm4gIkFYVmlkZW8iX3M7CiAgICAgaWYg
KHJvbGUgPT0gQWNjZXNzaWJpbGl0eVJvbGU6OkF1ZGlvKQotICAgICAgICByZXR1cm4gIkFYQXVk
aW8iOworICAgICAgICByZXR1cm4gIkFYQXVkaW8iX3M7CiAgICAgaWYgKHJvbGUgPT0gQWNjZXNz
aWJpbGl0eVJvbGU6OkRldGFpbHMpCi0gICAgICAgIHJldHVybiAiQVhEZXRhaWxzIjsKKyAgICAg
ICAgcmV0dXJuICJBWERldGFpbHMiX3M7CiAgICAgaWYgKHJvbGUgPT0gQWNjZXNzaWJpbGl0eVJv
bGU6OlN1bW1hcnkpCi0gICAgICAgIHJldHVybiAiQVhTdW1tYXJ5IjsKKyAgICAgICAgcmV0dXJu
ICJBWFN1bW1hcnkiX3M7CiAgICAgaWYgKHJvbGUgPT0gQWNjZXNzaWJpbGl0eVJvbGU6OlRpbWUp
Ci0gICAgICAgIHJldHVybiAiQVhUaW1lR3JvdXAiOworICAgICAgICByZXR1cm4gIkFYVGltZUdy
b3VwIl9zOwogCiAgICAgaWYgKGlzTWVkaWFUaW1lbGluZSgpKQogICAgICAgICByZXR1cm4gTlNB
Y2Nlc3NpYmlsaXR5VGltZWxpbmVTdWJyb2xlOwpAQCAtMzc2LDI1ICszNzYsMjUgQEAgU3RyaW5n
IEFjY2Vzc2liaWxpdHlPYmplY3Q6OnN1YnJvbGVQbGF0Zm9ybVN0cmluZygpIGNvbnN0CiAgICAg
ICAgIHJldHVybiBOU0FjY2Vzc2liaWxpdHlTd2l0Y2hTdWJyb2xlOwogCiAgICAgaWYgKHJvbGUg
PT0gQWNjZXNzaWJpbGl0eVJvbGU6Okluc2VydGlvbikKLSAgICAgICAgcmV0dXJuICJBWEluc2Vy
dFN0eWxlR3JvdXAiOworICAgICAgICByZXR1cm4gIkFYSW5zZXJ0U3R5bGVHcm91cCJfczsKICAg
ICBpZiAocm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6RGVsZXRpb24pCi0gICAgICAgIHJldHVy
biAiQVhEZWxldGVTdHlsZUdyb3VwIjsKKyAgICAgICAgcmV0dXJuICJBWERlbGV0ZVN0eWxlR3Jv
dXAiX3M7CiAgICAgaWYgKHJvbGUgPT0gQWNjZXNzaWJpbGl0eVJvbGU6OlN1cGVyc2NyaXB0KQot
ICAgICAgICByZXR1cm4gIkFYU3VwZXJzY3JpcHRTdHlsZUdyb3VwIjsKKyAgICAgICAgcmV0dXJu
ICJBWFN1cGVyc2NyaXB0U3R5bGVHcm91cCJfczsKICAgICBpZiAocm9sZSA9PSBBY2Nlc3NpYmls
aXR5Um9sZTo6U3Vic2NyaXB0KQotICAgICAgICByZXR1cm4gIkFYU3Vic2NyaXB0U3R5bGVHcm91
cCI7CisgICAgICAgIHJldHVybiAiQVhTdWJzY3JpcHRTdHlsZUdyb3VwIl9zOwogCiAgICAgc3dp
dGNoIChyb2xlKSB7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6UnVieUJhc2U6Ci0gICAg
ICAgIHJldHVybiAiQVhSdWJ5QmFzZSI7CisgICAgICAgIHJldHVybiAiQVhSdWJ5QmFzZSJfczsK
ICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpSdWJ5QmxvY2s6Ci0gICAgICAgIHJldHVybiAi
QVhSdWJ5QmxvY2siOworICAgICAgICByZXR1cm4gIkFYUnVieUJsb2NrIl9zOwogICAgIGNhc2Ug
QWNjZXNzaWJpbGl0eVJvbGU6OlJ1YnlJbmxpbmU6Ci0gICAgICAgIHJldHVybiAiQVhSdWJ5SW5s
aW5lIjsKKyAgICAgICAgcmV0dXJuICJBWFJ1YnlJbmxpbmUiX3M7CiAgICAgY2FzZSBBY2Nlc3Np
YmlsaXR5Um9sZTo6UnVieVJ1bjoKLSAgICAgICAgcmV0dXJuICJBWFJ1YnlSdW4iOworICAgICAg
ICByZXR1cm4gIkFYUnVieVJ1biJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpSdWJ5
VGV4dDoKLSAgICAgICAgcmV0dXJuICJBWFJ1YnlUZXh0IjsKKyAgICAgICAgcmV0dXJuICJBWFJ1
YnlUZXh0Il9zOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIGJyZWFrOwogICAgIH0KQEAgLTQwMywx
NyArNDAzLDE3IEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzdWJyb2xlUGxhdGZvcm1T
dHJpbmcoKSBjb25zdAogICAgICAgICB1c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogICAgICAg
ICBhdXRvIHRhZyA9IHRhZ05hbWUoKTsKICAgICAgICAgaWYgKHRhZyA9PSBrYmRUYWcpCi0gICAg
ICAgICAgICByZXR1cm4gQCJBWEtleWJvYXJkSW5wdXRTdHlsZUdyb3VwIjsKKyAgICAgICAgICAg
IHJldHVybiAiQVhLZXlib2FyZElucHV0U3R5bGVHcm91cCJfczsKICAgICAgICAgaWYgKHRhZyA9
PSBjb2RlVGFnKQotICAgICAgICAgICAgcmV0dXJuIEAiQVhDb2RlU3R5bGVHcm91cCI7CisgICAg
ICAgICAgICByZXR1cm4gIkFYQ29kZVN0eWxlR3JvdXAiX3M7CiAgICAgICAgIGlmICh0YWcgPT0g
cHJlVGFnKQotICAgICAgICAgICAgcmV0dXJuIEAiQVhQcmVmb3JtYXR0ZWRTdHlsZUdyb3VwIjsK
KyAgICAgICAgICAgIHJldHVybiAiQVhQcmVmb3JtYXR0ZWRTdHlsZUdyb3VwIl9zOwogICAgICAg
ICBpZiAodGFnID09IHNhbXBUYWcpCi0gICAgICAgICAgICByZXR1cm4gQCJBWFNhbXBsZVN0eWxl
R3JvdXAiOworICAgICAgICAgICAgcmV0dXJuICJBWFNhbXBsZVN0eWxlR3JvdXAiX3M7CiAgICAg
ICAgIGlmICh0YWcgPT0gdmFyVGFnKQotICAgICAgICAgICAgcmV0dXJuIEAiQVhWYXJpYWJsZVN0
eWxlR3JvdXAiOworICAgICAgICAgICAgcmV0dXJuICJBWFZhcmlhYmxlU3R5bGVHcm91cCJfczsK
ICAgICAgICAgaWYgKHRhZyA9PSBjaXRlVGFnKQotICAgICAgICAgICAgcmV0dXJuIEAiQVhDaXRl
U3R5bGVHcm91cCI7CisgICAgICAgICAgICByZXR1cm4gIkFYQ2l0ZVN0eWxlR3JvdXAiX3M7CiAg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAg
ICAgfQpAQCAtNDM2LDcgKzQzNiw3IEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojpyb2xl
UGxhdGZvcm1EZXNjcmlwdGlvbigpIGNvbnN0CiAKICAgICAgICAgc3dpdGNoIChyb2xlKSB7CiAg
ICAgICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkF1ZGlvOgotICAgICAgICAgICAgcmV0dXJu
IGxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRTdHJpbmcoIkF1ZGlvRWxlbWVudCIpOworICAg
ICAgICAgICAgcmV0dXJuIGxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRTdHJpbmcoIkF1ZGlv
RWxlbWVudCJfcyk7CiAgICAgICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRlZmluaXRpb246
CiAgICAgICAgICAgICByZXR1cm4gQVhEZWZpbml0aW9uVGV4dCgpOwogICAgICAgICBjYXNlIEFj
Y2Vzc2liaWxpdHlSb2xlOjpEZXNjcmlwdGlvbkxpc3RUZXJtOgpAQCAtNDUzLDkgKzQ1Myw5IEBA
IFN0cmluZyBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojpyb2xlUGxhdGZvcm1EZXNjcmlwdGlvbigpIGNv
bnN0CiAgICAgICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Ok1hcms6CiAgICAgICAgICAgICBy
ZXR1cm4gQVhNYXJrVGV4dCgpOwogICAgICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpWaWRl
bzoKLSAgICAgICAgICAgIHJldHVybiBsb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVtZW50U3RyaW5n
KCJWaWRlb0VsZW1lbnQiKTsKKyAgICAgICAgICAgIHJldHVybiBsb2NhbGl6ZWRNZWRpYUNvbnRy
b2xFbGVtZW50U3RyaW5nKCJWaWRlb0VsZW1lbnQiX3MpOwogICAgICAgICBjYXNlIEFjY2Vzc2li
aWxpdHlSb2xlOjpHcmFwaGljc0RvY3VtZW50OgotICAgICAgICAgICAgcmV0dXJuIEFYQVJJQUNv
bnRlbnRHcm91cFRleHQoQCJBUklBRG9jdW1lbnQiKTsKKyAgICAgICAgICAgIHJldHVybiBBWEFS
SUFDb250ZW50R3JvdXBUZXh0KCJBUklBRG9jdW1lbnQiKTsKICAgICAgICAgZGVmYXVsdDoKICAg
ICAgICAgICAgIHJldHVybiBTdHJpbmcoKTsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYW5pbWF0aW9uL0FuaW1hdGlvbkVmZmVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9h
bmltYXRpb24vQW5pbWF0aW9uRWZmZWN0LmNwcAppbmRleCAyMzliZDA0NWY4MGFlYThkY2RmMzFj
NWUwYzQzODhhMDJiNTI5NTUyLi40MzFmZGVhMTU3MjYyNzJhMmI2OGY5NzRiMjZlMGFlNmE1NWZj
MGFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQW5pbWF0aW9uRWZmZWN0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQW5pbWF0aW9uRWZmZWN0LmNwcApA
QCAtNjksNyArNjksNyBAQCBFZmZlY3RUaW1pbmcgQW5pbWF0aW9uRWZmZWN0OjpnZXRUaW1pbmco
KSBjb25zdAogICAgIHRpbWluZy5pdGVyYXRpb25TdGFydCA9IG1faXRlcmF0aW9uU3RhcnQ7CiAg
ICAgdGltaW5nLml0ZXJhdGlvbnMgPSBtX2l0ZXJhdGlvbnM7CiAgICAgaWYgKG1faXRlcmF0aW9u
RHVyYXRpb24gPT0gMF9zKQotICAgICAgICB0aW1pbmcuZHVyYXRpb24gPSAiYXV0byI7CisgICAg
ICAgIHRpbWluZy5kdXJhdGlvbiA9ICJhdXRvIl9zOwogICAgIGVsc2UKICAgICAgICAgdGltaW5n
LmR1cmF0aW9uID0gc2Vjb25kc1RvV2ViQW5pbWF0aW9uc0FQSVRpbWUobV9pdGVyYXRpb25EdXJh
dGlvbik7CiAgICAgdGltaW5nLmRpcmVjdGlvbiA9IG1fZGlyZWN0aW9uOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RvY3VtZW50VGltZWxpbmUuY3BwIGIvU291cmNlL1dl
YkNvcmUvYW5pbWF0aW9uL0RvY3VtZW50VGltZWxpbmUuY3BwCmluZGV4IDNjOTU5ZTljYmQ0YTg3
MTI0NGVlMmY0NWIwYjVhYTA2ZTFjNWZkNDUuLmM4NmYyYWQ1NWM0YjEyOGVlY2VkYjgwMTBmNGM0
NzEzYmFmNDY3NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9Eb2N1bWVu
dFRpbWVsaW5lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRG9jdW1lbnRUaW1l
bGluZS5jcHAKQEAgLTQ1Miw3ICs0NTIsNyBAQCBFeGNlcHRpb25PcjxSZWY8V2ViQW5pbWF0aW9u
Pj4gRG9jdW1lbnRUaW1lbGluZTo6YW5pbWF0ZShSZWY8Q3VzdG9tRWZmZWN0Q2FsbGJhYwogICAg
IGlmICghbV9kb2N1bWVudCkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0
ZUVycm9yIH07CiAKLSAgICBTdHJpbmcgaWQgPSAiIjsKKyAgICBTdHJpbmcgaWQgPSBlbXB0eVN0
cmluZygpOwogICAgIHN0ZDo6dmFyaWFudDxGcmFtZXNQZXJTZWNvbmQsIEFuaW1hdGlvbkZyYW1l
UmF0ZVByZXNldD4gZnJhbWVSYXRlID0gQW5pbWF0aW9uRnJhbWVSYXRlUHJlc2V0OjpBdXRvOwog
ICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjp2YXJpYW50PGRvdWJsZSwgRWZmZWN0VGltaW5nPj4gY3Vz
dG9tRWZmZWN0T3B0aW9uczsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9u
L0VmZmVjdFRpbWluZy5oIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0VmZmVjdFRpbWluZy5o
CmluZGV4IDRkZDVkY2MzNzNjY2Q4MzMwZGVjYTM2MTdkOTk4ZTYxMzM5MzJlNjEuLjIxMDczZmE0
NzMwM2Y2NGZkMmJhMjYxOWFlOTE4N2Y1ODE1OTUwNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2FuaW1hdGlvbi9FZmZlY3RUaW1pbmcuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRp
b24vRWZmZWN0VGltaW5nLmgKQEAgLTMzLDEyICszMywxMiBAQAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBzdHJ1Y3QgRWZmZWN0VGltaW5nIHsKLSAgICBzdGQ6OnZhcmlhbnQ8ZG91YmxlLCBTdHJp
bmc+IGR1cmF0aW9uIHsgImF1dG8iIH07CisgICAgc3RkOjp2YXJpYW50PGRvdWJsZSwgU3RyaW5n
PiBkdXJhdGlvbiB7ICJhdXRvIl9zIH07CiAgICAgZG91YmxlIGRlbGF5IHsgMCB9OwogICAgIGRv
dWJsZSBlbmREZWxheSB7IDAgfTsKICAgICBkb3VibGUgaXRlcmF0aW9uU3RhcnQgeyAwIH07CiAg
ICAgZG91YmxlIGl0ZXJhdGlvbnMgeyAxIH07Ci0gICAgU3RyaW5nIGVhc2luZyB7ICJsaW5lYXIi
IH07CisgICAgU3RyaW5nIGVhc2luZyB7ICJsaW5lYXIiX3MgfTsKICAgICBGaWxsTW9kZSBmaWxs
IHsgRmlsbE1vZGU6OkF1dG8gfTsKICAgICBQbGF5YmFja0RpcmVjdGlvbiBkaXJlY3Rpb24geyBQ
bGF5YmFja0RpcmVjdGlvbjo6Tm9ybWFsIH07CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlv
bi9LZXlmcmFtZUVmZmVjdC5jcHAKaW5kZXggNzIzNzY4NTAzZDEwZGI0OTY3YjJmOGM2MGViOTE0
MTg5NzY2YmY3ZC4uZDg0MTFjOTNlNDc3MDJmNTY3YWQ2MTQwMzY2ZWNlNzY2MzVjMDQ1ZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuY3BwCkBAIC04MiwxMSAr
ODIsMTEgQEAgU3RyaW5nIEtleWZyYW1lRWZmZWN0OjpDU1NQcm9wZXJ0eUlEVG9JRExBdHRyaWJ1
dGVOYW1lKENTU1Byb3BlcnR5SUQgY3NzUHJvcGVydHkKIAogICAgIC8vIDIuIElmIHByb3BlcnR5
IHJlZmVycyB0byB0aGUgQ1NTIGZsb2F0IHByb3BlcnR5LCByZXR1cm4gdGhlIHN0cmluZyAiY3Nz
RmxvYXQiLgogICAgIGlmIChjc3NQcm9wZXJ0eUlkID09IENTU1Byb3BlcnR5RmxvYXQpCi0gICAg
ICAgIHJldHVybiAiY3NzRmxvYXQiOworICAgICAgICByZXR1cm4gImNzc0Zsb2F0Il9zOwogCiAg
ICAgLy8gMy4gSWYgcHJvcGVydHkgcmVmZXJzIHRvIHRoZSBDU1Mgb2Zmc2V0IHByb3BlcnR5LCBy
ZXR1cm4gdGhlIHN0cmluZyAiY3NzT2Zmc2V0Ii4KICAgICBpZiAoY3NzUHJvcGVydHlJZCA9PSBD
U1NQcm9wZXJ0eU9mZnNldCkKLSAgICAgICAgcmV0dXJuICJjc3NPZmZzZXQiOworICAgICAgICBy
ZXR1cm4gImNzc09mZnNldCJfczsKIAogICAgIC8vIDQuIE90aGVyd2lzZSwgcmV0dXJuIHRoZSBy
ZXN1bHQgb2YgYXBwbHlpbmcgdGhlIENTUyBwcm9wZXJ0eSB0byBJREwgYXR0cmlidXRlIGFsZ29y
aXRobSBbQ1NTT01dIHRvIHByb3BlcnR5LgogICAgIHJldHVybiBnZXRKU1Byb3BlcnR5TmFtZShj
c3NQcm9wZXJ0eUlkKTsKQEAgLTY2MCw3ICs2NjAsNyBAQCBhdXRvIEtleWZyYW1lRWZmZWN0Ojpn
ZXRLZXlmcmFtZXMoRG9jdW1lbnQmIGRvY3VtZW50KSAtPiBWZWN0b3I8Q29tcHV0ZWRLZXlmcmFt
ZQogICAgICAgICBjb21wdXRlZEtleWZyYW1lLm9mZnNldCA9IGtleWZyYW1lLmtleSgpOwogICAg
ICAgICBjb21wdXRlZEtleWZyYW1lLmNvbXB1dGVkT2Zmc2V0ID0ga2V5ZnJhbWUua2V5KCk7CiAg
ICAgICAgIC8vIEZvciBDU1MgdHJhbnNpdGlvbnMsIGFsbCBrZXlmcmFtZXMgc2hvdWxkIHJldHVy
biAibGluZWFyIiBzaW5jZSB0aGUgZWZmZWN0J3MgZ2xvYmFsIHRpbWluZyBmdW5jdGlvbiBhcHBs
aWVzLgotICAgICAgICBjb21wdXRlZEtleWZyYW1lLmVhc2luZyA9IGlzPENTU1RyYW5zaXRpb24+
KGFuaW1hdGlvbigpKSA/ICJsaW5lYXIiIDogdGltaW5nRnVuY3Rpb25Gb3JCbGVuZGluZ0tleWZy
YW1lKGtleWZyYW1lKS0+Y3NzVGV4dCgpOworICAgICAgICBjb21wdXRlZEtleWZyYW1lLmVhc2lu
ZyA9IGlzPENTU1RyYW5zaXRpb24+KGFuaW1hdGlvbigpKSA/ICJsaW5lYXIiX3MgOiB0aW1pbmdG
dW5jdGlvbkZvckJsZW5kaW5nS2V5ZnJhbWUoa2V5ZnJhbWUpLT5jc3NUZXh0KCk7CiAKICAgICAg
ICAgaWYgKGRvY3VtZW50LnNldHRpbmdzKCkud2ViQW5pbWF0aW9uc0NvbXBvc2l0ZU9wZXJhdGlv
bnNFbmFibGVkKCkpIHsKICAgICAgICAgICAgIGlmIChhdXRvIGNvbXBvc2l0ZU9wZXJhdGlvbiA9
IGtleWZyYW1lLmNvbXBvc2l0ZU9wZXJhdGlvbigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvR0NDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0dDQ29udHJvbGxlci5jcHAKaW5kZXggNWYxMWUwYzYzNDg3NDE0M2FiMzE4NWEwMWRmOWZi
MmVlMzZmMjVhZC4uNWY5MzQ5MTc1NmYyN2VjMDRkNGRlYTlkMzgxYjdhNjRjNmM3OTIwNyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvR0NDb250cm9sbGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9HQ0NvbnRyb2xsZXIuY3BwCkBAIC01OSw3ICs1
OSw3IEBAIEdDQ29udHJvbGxlcjo6R0NDb250cm9sbGVyKCkKIHsKICAgICBzdGF0aWMgc3RkOjpv
bmNlX2ZsYWcgb25jZUZsYWc7CiAgICAgc3RkOjpjYWxsX29uY2Uob25jZUZsYWcsIFtdIHsKLSAg
ICAgICAgUEFMOjpyZWdpc3Rlck5vdGlmeUNhbGxiYWNrKCJjb20uYXBwbGUuV2ViS2l0LmR1bXBH
Q0hlYXAiLCBbXSB7CisgICAgICAgIFBBTDo6cmVnaXN0ZXJOb3RpZnlDYWxsYmFjaygiY29tLmFw
cGxlLldlYktpdC5kdW1wR0NIZWFwIl9zLCBbXSB7CiAgICAgICAgICAgICBHQ0NvbnRyb2xsZXI6
OnNpbmdsZXRvbigpLmR1bXBIZWFwKCk7CiAgICAgICAgIH0pOwogICAgIH0pOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21FbGVtZW50SW50ZXJmYWNlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tRWxlbWVudEludGVyZmFjZS5j
cHAKaW5kZXggNGUxZDI0ZWU5NDE3NGM5ZGY3NmQyYjJlNTA3OWI3N2RkMGUyNmY5OC4uYTkxZTAy
ZjIzZDc1MDMwYTliOWFiZjg5YTM2Zjg0YWIxOWJhODhiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21FbGVtZW50SW50ZXJmYWNlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbUVsZW1lbnRJbnRlcmZhY2UuY3BwCkBAIC0y
MTAsNyArMjEwLDcgQEAgdm9pZCBKU0N1c3RvbUVsZW1lbnRJbnRlcmZhY2U6OnVwZ3JhZGVFbGVt
ZW50KEVsZW1lbnQmIGVsZW1lbnQpCiAKICAgICBpZiAobV9pc1NoYWRvd0Rpc2FibGVkICYmIGVs
ZW1lbnQuc2hhZG93Um9vdCgpKSB7CiAgICAgICAgIGVsZW1lbnQuY2xlYXJSZWFjdGlvblF1ZXVl
RnJvbUZhaWxlZEN1c3RvbUVsZW1lbnQoKTsKLSAgICAgICAgcmVwb3J0RXhjZXB0aW9uKGxleGlj
YWxHbG9iYWxPYmplY3QsIGNyZWF0ZURPTUV4Y2VwdGlvbihsZXhpY2FsR2xvYmFsT2JqZWN0LCBO
b3RTdXBwb3J0ZWRFcnJvciwgIkZhaWxlZCB0byB1cGdyYWRlIGFuIGVsZW1lbnQgd2l0aCBzaGFk
b3cgcm9vdDogdGhlIGN1c3RvbSBlbGVtZW50IGRlZmluaXRpb24gZGlzYWxsb3dzIHNoYWRvdyBy
b290cy4iKSk7CisgICAgICAgIHJlcG9ydEV4Y2VwdGlvbihsZXhpY2FsR2xvYmFsT2JqZWN0LCBj
cmVhdGVET01FeGNlcHRpb24obGV4aWNhbEdsb2JhbE9iamVjdCwgTm90U3VwcG9ydGVkRXJyb3Is
ICJGYWlsZWQgdG8gdXBncmFkZSBhbiBlbGVtZW50IHdpdGggc2hhZG93IHJvb3Q6IHRoZSBjdXN0
b20gZWxlbWVudCBkZWZpbml0aW9uIGRpc2FsbG93cyBzaGFkb3cgcm9vdHMuIl9zKSk7CiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKQEAgLTIzMSw3ICsyMzEsNyBAQCB2b2lkIEpTQ3VzdG9tRWxl
bWVudEludGVyZmFjZTo6dXBncmFkZUVsZW1lbnQoRWxlbWVudCYgZWxlbWVudCkKICAgICBFbGVt
ZW50KiB3cmFwcGVkRWxlbWVudCA9IEpTRWxlbWVudDo6dG9XcmFwcGVkKHZtLCByZXR1cm5lZEVs
ZW1lbnQpOwogICAgIGlmICghd3JhcHBlZEVsZW1lbnQgfHwgd3JhcHBlZEVsZW1lbnQgIT0gJmVs
ZW1lbnQpIHsKICAgICAgICAgZWxlbWVudC5jbGVhclJlYWN0aW9uUXVldWVGcm9tRmFpbGVkQ3Vz
dG9tRWxlbWVudCgpOwotICAgICAgICByZXBvcnRFeGNlcHRpb24obGV4aWNhbEdsb2JhbE9iamVj
dCwgY3JlYXRlRE9NRXhjZXB0aW9uKGxleGljYWxHbG9iYWxPYmplY3QsIFR5cGVFcnJvciwgIkN1
c3RvbSBlbGVtZW50IGNvbnN0cnVjdG9yIHJldHVybmVkIGEgd3JvbmcgZWxlbWVudCIpKTsKKyAg
ICAgICAgcmVwb3J0RXhjZXB0aW9uKGxleGljYWxHbG9iYWxPYmplY3QsIGNyZWF0ZURPTUV4Y2Vw
dGlvbihsZXhpY2FsR2xvYmFsT2JqZWN0LCBUeXBlRXJyb3IsICJDdXN0b20gZWxlbWVudCBjb25z
dHJ1Y3RvciByZXR1cm5lZCBhIHdyb25nIGVsZW1lbnQiX3MpKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KICAgICBlbGVtZW50LnNldElzRGVmaW5lZEN1c3RvbUVsZW1lbnQoKnRoaXMpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Db252ZXJ0TnVtYmVycy5o
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Db252ZXJ0TnVtYmVycy5oCmluZGV4
IGI3YjYxM2RkNmMzN2VkMTE3YjkyMjAyMGFjMTNhM2Q3YzU1YmJjYWQuLjI5NDEzZDhkOTg5Njkw
MTBmYWExYzM1NGVhM2E4OWJhYzQwMGIwNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NQ29udmVydE51bWJlcnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTUNvbnZlcnROdW1iZXJzLmgKQEAgLTI5Myw3ICsyOTMsNyBAQCB0ZW1wbGF0
ZTw+IHN0cnVjdCBDb252ZXJ0ZXI8SURMRmxvYXQ+IDogRGVmYXVsdENvbnZlcnRlcjxJRExGbG9h
dD4gewogICAgICAgICBkb3VibGUgbnVtYmVyID0gdmFsdWUudG9OdW1iZXIoJmxleGljYWxHbG9i
YWxPYmplY3QpOwogICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHNjb3BlLCAwLjApOwogICAg
ICAgICBpZiAoVU5MSUtFTFkobnVtYmVyIDwgc3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46Omxv
d2VzdCgpIHx8IG51bWJlciA+IHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+OjptYXgoKSkpCi0g
ICAgICAgICAgICB0aHJvd1R5cGVFcnJvcigmbGV4aWNhbEdsb2JhbE9iamVjdCwgc2NvcGUsICJU
aGUgcHJvdmlkZWQgdmFsdWUgaXMgb3V0c2lkZSB0aGUgcmFuZ2Ugb2YgYSBmbG9hdCIpOworICAg
ICAgICAgICAgdGhyb3dUeXBlRXJyb3IoJmxleGljYWxHbG9iYWxPYmplY3QsIHNjb3BlLCAiVGhl
IHByb3ZpZGVkIHZhbHVlIGlzIG91dHNpZGUgdGhlIHJhbmdlIG9mIGEgZmxvYXQiX3MpOwogICAg
ICAgICBpZiAoVU5MSUtFTFkoIXN0ZDo6aXNmaW5pdGUobnVtYmVyKSkpCiAgICAgICAgICAgICB0
aHJvd05vbkZpbml0ZVR5cGVFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCBzY29wZSk7CiAgICAg
ICAgIHJldHVybiBzdGF0aWNfY2FzdDxmbG9hdD4obnVtYmVyKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXhlY1N0YXRlSW5zdHJ1bWVudGF0aW9uLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V4ZWNTdGF0ZUluc3RydW1lbnRhdGlvbi5oCmluZGV4
IGMwNDRiMDdhYmZjN2I2OWUzMTkxMjgzM2I0OTQ0NjgxYmMzMjgwNTMuLjMxMDBmYWJmMmQ4NTcx
MzVjOGE1M2U5NDY3YmUyMWM3Nzg5ZTY0Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRXhlY1N0YXRlSW5zdHJ1bWVudGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNFeGVjU3RhdGVJbnN0cnVtZW50YXRpb24uaApAQCAtNDUsNyArNDUs
NyBAQCBpbmxpbmUgdm9pZCBKU0V4ZWNTdGF0ZTo6aW5zdHJ1bWVudEZ1bmN0aW9uKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNvbgogICAgICAgICBsaW5lTnVtYmVyID0gY2FsbERh
dGEuanMuZnVuY3Rpb25FeGVjdXRhYmxlLT5maXJzdExpbmUoKTsKICAgICAgICAgY29sdW1uTnVt
YmVyID0gY2FsbERhdGEuanMuZnVuY3Rpb25FeGVjdXRhYmxlLT5zdGFydENvbHVtbigpOwogICAg
IH0gZWxzZQotICAgICAgICByZXNvdXJjZU5hbWUgPSAidW5kZWZpbmVkIjsKKyAgICAgICAgcmVz
b3VyY2VOYW1lID0gInVuZGVmaW5lZCJfczsKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OndpbGxDYWxsRnVuY3Rpb24oY29udGV4dCwgcmVzb3VyY2VOYW1lLCBsaW5lTnVtYmVyLCBjb2x1
bW5OdW1iZXIpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9T
Y3JpcHRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENv
bnRyb2xsZXIuY3BwCmluZGV4IGNkNGIzZjA3NmRmNzM5OTA1NmYyNzhjNjVlNzJkMzJkMjQ3OWQ0
NjAuLjQ4NGQ4YzJkZjM3YmVmN2QxN2RhNDFiNzAzMjI5NGIxZDljZmZiMTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwCkBAIC02MzMsNyAr
NjMzLDcgQEAgVmFsdWVPckV4Y2VwdGlvbiBTY3JpcHRDb250cm9sbGVyOjpjYWxsSW5Xb3JsZChS
dW5KYXZhU2NyaXB0UGFyYW1ldGVycyYmIHBhcmFtZXQKICAgICAgICAgYXV0byBzY29wZSA9IERF
Q0xBUkVfQ0FUQ0hfU0NPUEUoZ2xvYmFsT2JqZWN0LnZtKCkpOwogICAgICAgICBhdXRvIGpzQXJn
dW1lbnQgPSBzZXJpYWxpemVkQXJndW1lbnQtPmRlc2VyaWFsaXplKGdsb2JhbE9iamVjdCwgJmds
b2JhbE9iamVjdCk7CiAgICAgICAgIGlmIChVTkxJS0VMWShzY29wZS5leGNlcHRpb24oKSkpIHsK
LSAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9ICJVbmFibGUgdG8gZGVzZXJpYWxpemUgYXJndW1l
bnQgdG8gZXhlY3V0ZSBhc3luY2hyb25vdXMgSmF2YVNjcmlwdCBmdW5jdGlvbiI7CisgICAgICAg
ICAgICBlcnJvck1lc3NhZ2UgPSAiVW5hYmxlIHRvIGRlc2VyaWFsaXplIGFyZ3VtZW50IHRvIGV4
ZWN1dGUgYXN5bmNocm9ub3VzIEphdmFTY3JpcHQgZnVuY3Rpb24iX3M7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2Jq
Yy9vYmpjX3J1bnRpbWUubW0gYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRp
bWUubW0KaW5kZXggMTVjYjZhMDhlNWMzNWMxNzIyY2RkMzdjYTM4YWM1Y2E5NDRmYTE1OS4uYWU0
MjIxMTQxZWVjYjg5MTUxYzYzMTYxMGUyMjIyMjRjY2ZkZGZjNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5tbQpAQCAtMTc2LDcgKzE3Niw3IEBAIGJvb2wgT2Jq
Y0FycmF5OjpzZXRWYWx1ZUF0KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCB1
bnNpZ25lZCBpbnQgaW5kCiAgICAgfQogCiAgICAgaWYgKGluZGV4ID4gW19hcnJheSBjb3VudF0p
IHsKLSAgICAgICAgdGhyb3dFeGNlcHRpb24obGV4aWNhbEdsb2JhbE9iamVjdCwgc2NvcGUsIGNy
ZWF0ZVJhbmdlRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgIkluZGV4IGV4Y2VlZHMgYXJyYXkg
c2l6ZS4iKSk7CisgICAgICAgIHRocm93RXhjZXB0aW9uKGxleGljYWxHbG9iYWxPYmplY3QsIHNj
b3BlLCBjcmVhdGVSYW5nZUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsICJJbmRleCBleGNlZWRz
IGFycmF5IHNpemUuIl9zKSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAgICAgCkBA
IC0xODgsNyArMTg4LDcgQEAgYm9vbCBPYmpjQXJyYXk6OnNldFZhbHVlQXQoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIHVuc2lnbmVkIGludCBpbmQKICAgICAgICAgW19hcnJh
eSBpbnNlcnRPYmplY3Q6KF9fYnJpZGdlIGlkKW9WYWx1ZS5vYmplY3RWYWx1ZSBhdEluZGV4Omlu
ZGV4XTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfSBAY2F0Y2goTlNFeGNlcHRpb24qIGxv
Y2FsRXhjZXB0aW9uKSB7Ci0gICAgICAgIHRocm93RXhjZXB0aW9uKGxleGljYWxHbG9iYWxPYmpl
Y3QsIHNjb3BlLCBjcmVhdGVFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCAiT2JqZWN0aXZlLUMg
ZXhjZXB0aW9uLiIpKTsKKyAgICAgICAgdGhyb3dFeGNlcHRpb24obGV4aWNhbEdsb2JhbE9iamVj
dCwgc2NvcGUsIGNyZWF0ZUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsICJPYmplY3RpdmUtQyBl
eGNlcHRpb24uIl9zKSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiB9CkBAIC0xOTks
MTMgKzE5OSwxMyBAQCBKU1ZhbHVlIE9iamNBcnJheTo6dmFsdWVBdChKU0dsb2JhbE9iamVjdCog
bGV4aWNhbEdsb2JhbE9iamVjdCwgdW5zaWduZWQgaW50IGluZAogICAgIGF1dG8gc2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAogICAgIGlmIChpbmRleCA+IFtfYXJyYXkgY291bnRd
KQotICAgICAgICByZXR1cm4gdGhyb3dFeGNlcHRpb24obGV4aWNhbEdsb2JhbE9iamVjdCwgc2Nv
cGUsIGNyZWF0ZVJhbmdlRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgIkluZGV4IGV4Y2VlZHMg
YXJyYXkgc2l6ZS4iKSk7CisgICAgICAgIHJldHVybiB0aHJvd0V4Y2VwdGlvbihsZXhpY2FsR2xv
YmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlUmFuZ2VFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCAi
SW5kZXggZXhjZWVkcyBhcnJheSBzaXplLiJfcykpOwogICAgIEB0cnkgewogICAgICAgICBpZCBv
YmogPSBbX2FycmF5IG9iamVjdEF0SW5kZXg6aW5kZXhdOwogICAgICAgICBpZiAob2JqKQogICAg
ICAgICAgICAgcmV0dXJuIGNvbnZlcnRPYmpjVmFsdWVUb1ZhbHVlIChsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCAmb2JqLCBPYmpjT2JqZWN0VHlwZSwgbV9yb290T2JqZWN0LmdldCgpKTsKICAgICB9IEBj
YXRjaChOU0V4Y2VwdGlvbiogbG9jYWxFeGNlcHRpb24pIHsKLSAgICAgICAgcmV0dXJuIHRocm93
RXhjZXB0aW9uKGxleGljYWxHbG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVFcnJvcihsZXhpY2Fs
R2xvYmFsT2JqZWN0LCAiT2JqZWN0aXZlLUMgZXhjZXB0aW9uLiIpKTsKKyAgICAgICAgcmV0dXJu
IHRocm93RXhjZXB0aW9uKGxleGljYWxHbG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVFcnJvcihs
ZXhpY2FsR2xvYmFsT2JqZWN0LCAiT2JqZWN0aXZlLUMgZXhjZXB0aW9uLiJfcykpOwogICAgIH0K
ICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2JyaWRnZS9ydW50aW1lX2FycmF5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1l
X2FycmF5LmNwcAppbmRleCBjMDVlM2E0MGU4MDU2NjVkYzBmZGVkMDJjMzA1MThlZDk2Mjg2MGMz
Li5hZjM5YmExMTQwZGEwMzA0Mzg4NWEzYTg1NWExMzMxZTRmNTY1YTlhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwCkBAIC0xMjcsNyArMTI3LDcgQEAgYm9vbCBSdW50
aW1lQXJyYXk6OnB1dChKU0NlbGwqIGNlbGwsIEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBQcm9wZXIKIAogICAgIFJ1bnRpbWVBcnJheSogdGhpc09iamVjdCA9IGpzQ2FzdDxS
dW50aW1lQXJyYXkqPihjZWxsKTsKICAgICBpZiAocHJvcGVydHlOYW1lID09IHZtLnByb3BlcnR5
TmFtZXMtPmxlbmd0aCkgewotICAgICAgICB0aHJvd0V4Y2VwdGlvbihsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBzY29wZSwgY3JlYXRlUmFuZ2VFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCAiUmFuZ2Ug
ZXJyb3IiKSk7CisgICAgICAgIHRocm93RXhjZXB0aW9uKGxleGljYWxHbG9iYWxPYmplY3QsIHNj
b3BlLCBjcmVhdGVSYW5nZUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsICJSYW5nZSBlcnJvciJf
cykpOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogICAgIApAQCAtMTQ0LDcgKzE0NCw3
IEBAIGJvb2wgUnVudGltZUFycmF5OjpwdXRCeUluZGV4KEpTQ2VsbCogY2VsbCwgSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsCiAKICAgICBSdW50aW1lQXJyYXkqIHRoaXNPYmpl
Y3QgPSBqc0Nhc3Q8UnVudGltZUFycmF5Kj4oY2VsbCk7CiAgICAgaWYgKGluZGV4ID49IHRoaXNP
YmplY3QtPmdldExlbmd0aCgpKSB7Ci0gICAgICAgIHRocm93RXhjZXB0aW9uKGxleGljYWxHbG9i
YWxPYmplY3QsIHNjb3BlLCBjcmVhdGVSYW5nZUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsICJS
YW5nZSBlcnJvciIpKTsKKyAgICAgICAgdGhyb3dFeGNlcHRpb24obGV4aWNhbEdsb2JhbE9iamVj
dCwgc2NvcGUsIGNyZWF0ZVJhbmdlRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgIlJhbmdlIGVy
cm9yIl9zKSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAgICAgCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuY3BwIGIvU291cmNlL1dlYkNv
cmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcAppbmRleCBiMjRmMmFlZjE5NGJhZDI1YjNhNjFl
Yjg4ZTc0MTQ3ZGNlOTMxMGM3Li4yMGJlMWVlMmZmMjUwNDJmMzg4MTVlZGEwNjhmZDlhNDg4OTU1
ZTcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAKQEAgLTMxMCw3
ICszMTAsNyBAQCB2b2lkIFJ1bnRpbWVPYmplY3Q6OmdldE93blByb3BlcnR5TmFtZXMoSlNPYmpl
Y3QqIG9iamVjdCwgSlNHbG9iYWxPYmplY3QqIGxleGljYQogCiBFeGNlcHRpb24qIHRocm93UnVu
dGltZU9iamVjdEludmFsaWRBY2Nlc3NFcnJvcihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2Jh
bE9iamVjdCwgVGhyb3dTY29wZSYgc2NvcGUpCiB7Ci0gICAgcmV0dXJuIHRocm93RXhjZXB0aW9u
KGxleGljYWxHbG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVSZWZlcmVuY2VFcnJvcihsZXhpY2Fs
R2xvYmFsT2JqZWN0LCAiVHJ5aW5nIHRvIGFjY2VzcyBvYmplY3QgZnJvbSBkZXN0cm95ZWQgcGx1
Zy1pbi4iKSk7CisgICAgcmV0dXJuIHRocm93RXhjZXB0aW9uKGxleGljYWxHbG9iYWxPYmplY3Qs
IHNjb3BlLCBjcmVhdGVSZWZlcmVuY2VFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCAiVHJ5aW5n
IHRvIGFjY2VzcyBvYmplY3QgZnJvbSBkZXN0cm95ZWQgcGx1Zy1pbi4iX3MpKTsKIH0KIAogSlND
OjpHQ0NsaWVudDo6SXNvU3Vic3BhY2UqIFJ1bnRpbWVPYmplY3Q6OnN1YnNwYWNlRm9ySW1wbChK
U0M6OlZNJiB2bSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25z
L0NvbnRlbnRFeHRlbnNpb25BY3Rpb25zLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRl
bnNpb25zL0NvbnRlbnRFeHRlbnNpb25BY3Rpb25zLmNwcAppbmRleCAwY2E2MWMxMDE0ZDI0MzVl
ODRhYTBkYWZlMzAyMGZmYjA3OGU4Mzc5Li43YjI2NTlmYzY3M2Q1MzYwOWU1ZDFiNWU0N2ZiNjgz
YTE2M2FmMDliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9D
b250ZW50RXh0ZW5zaW9uQWN0aW9ucy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4
dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkFjdGlvbnMuY3BwCkBAIC0yMDEsMTUgKzIwMSwxNSBA
QCBhdXRvIE1vZGlmeUhlYWRlcnNBY3Rpb246Ok1vZGlmeUhlYWRlckluZm86OnBhcnNlKGNvbnN0
IEpTT046OlZhbHVlJiBpbmZvVmFsdWUpCiAgICAgaWYgKCFvYmplY3QpCiAgICAgICAgIHJldHVy
biBtYWtlVW5leHBlY3RlZChDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05Nb2RpZnlIZWFkZXJz
SW5mb05vdEFEaWN0aW9uYXJ5KTsKIAotICAgIFN0cmluZyBvcGVyYXRpb24gPSBvYmplY3QtPmdl
dFN0cmluZygib3BlcmF0aW9uIik7CisgICAgU3RyaW5nIG9wZXJhdGlvbiA9IG9iamVjdC0+Z2V0
U3RyaW5nKCJvcGVyYXRpb24iX3MpOwogICAgIGlmICghb3BlcmF0aW9uKQogICAgICAgICByZXR1
cm4gbWFrZVVuZXhwZWN0ZWQoQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OTW9kaWZ5SGVhZGVy
c01pc3NpbmdPcGVyYXRpb24pOwogCi0gICAgU3RyaW5nIGhlYWRlciA9IG9iamVjdC0+Z2V0U3Ry
aW5nKCJoZWFkZXIiKTsKKyAgICBTdHJpbmcgaGVhZGVyID0gb2JqZWN0LT5nZXRTdHJpbmcoImhl
YWRlciJfcyk7CiAgICAgaWYgKCFoZWFkZXIpCiAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3Rl
ZChDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05Nb2RpZnlIZWFkZXJzTWlzc2luZ0hlYWRlcik7
CiAKLSAgICBTdHJpbmcgdmFsdWUgPSBvYmplY3QtPmdldFN0cmluZygidmFsdWUiKTsKKyAgICBT
dHJpbmcgdmFsdWUgPSBvYmplY3QtPmdldFN0cmluZygidmFsdWUiX3MpOwogCiAgICAgaWYgKG9w
ZXJhdGlvbiA9PSAic2V0IikgewogICAgICAgICBpZiAoIXZhbHVlKQpAQCAtMjg5LDI3ICsyODks
MjcgQEAgc2l6ZV90IE1vZGlmeUhlYWRlcnNBY3Rpb246Ok1vZGlmeUhlYWRlckluZm86OnNlcmlh
bGl6ZWRMZW5ndGgoU3Bhbjxjb25zdCB1aW50OF8KIAogRXhwZWN0ZWQ8UmVkaXJlY3RBY3Rpb24s
IHN0ZDo6ZXJyb3JfY29kZT4gUmVkaXJlY3RBY3Rpb246OnBhcnNlKGNvbnN0IEpTT046Ok9iamVj
dCYgcmVkaXJlY3RPYmplY3QsIGNvbnN0IFN0cmluZyYgdXJsRmlsdGVyKQogewotICAgIGF1dG8g
cmVkaXJlY3QgPSByZWRpcmVjdE9iamVjdC5nZXRPYmplY3QoInJlZGlyZWN0Iik7CisgICAgYXV0
byByZWRpcmVjdCA9IHJlZGlyZWN0T2JqZWN0LmdldE9iamVjdCgicmVkaXJlY3QiX3MpOwogICAg
IGlmICghcmVkaXJlY3QpCiAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50RXh0
ZW5zaW9uRXJyb3I6OkpTT05SZWRpcmVjdE1pc3NpbmcpOwogCi0gICAgaWYgKGF1dG8gZXh0ZW5z
aW9uUGF0aCA9IHJlZGlyZWN0LT5nZXRTdHJpbmcoImV4dGVuc2lvbi1wYXRoIik7ICEhZXh0ZW5z
aW9uUGF0aCkgeworICAgIGlmIChhdXRvIGV4dGVuc2lvblBhdGggPSByZWRpcmVjdC0+Z2V0U3Ry
aW5nKCJleHRlbnNpb24tcGF0aCJfcyk7ICEhZXh0ZW5zaW9uUGF0aCkgewogICAgICAgICBpZiAo
IWV4dGVuc2lvblBhdGguc3RhcnRzV2l0aCgnLycpKQogICAgICAgICAgICAgcmV0dXJuIG1ha2VV
bmV4cGVjdGVkKENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTlJlZGlyZWN0RXh0ZW5zaW9uUGF0
aERvZXNOb3RTdGFydFdpdGhTbGFzaCk7CiAgICAgICAgIHJldHVybiBSZWRpcmVjdEFjdGlvbiB7
IEV4dGVuc2lvblBhdGhBY3Rpb24geyBXVEZNb3ZlKGV4dGVuc2lvblBhdGgpIH0gfTsKICAgICB9
CiAKLSAgICBpZiAoYXV0byByZWdleFN1YnN0aXR1dGlvbiA9IHJlZGlyZWN0LT5nZXRTdHJpbmco
InJlZ2V4LXN1YnN0aXR1dGlvbiIpOyAhIXJlZ2V4U3Vic3RpdHV0aW9uKQorICAgIGlmIChhdXRv
IHJlZ2V4U3Vic3RpdHV0aW9uID0gcmVkaXJlY3QtPmdldFN0cmluZygicmVnZXgtc3Vic3RpdHV0
aW9uIl9zKTsgISFyZWdleFN1YnN0aXR1dGlvbikKICAgICAgICAgcmV0dXJuIFJlZGlyZWN0QWN0
aW9uIHsgUmVnZXhTdWJzdGl0dXRpb25BY3Rpb24geyBXVEZNb3ZlKHJlZ2V4U3Vic3RpdHV0aW9u
KSwgdXJsRmlsdGVyIH0gfTsKIAotICAgIGlmIChhdXRvIHRyYW5zZm9ybSA9IHJlZGlyZWN0LT5n
ZXRPYmplY3QoInRyYW5zZm9ybSIpKSB7CisgICAgaWYgKGF1dG8gdHJhbnNmb3JtID0gcmVkaXJl
Y3QtPmdldE9iamVjdCgidHJhbnNmb3JtIl9zKSkgewogICAgICAgICBhdXRvIHBhcnNlZFRyYW5z
Zm9ybSA9IFVSTFRyYW5zZm9ybUFjdGlvbjo6cGFyc2UoKnRyYW5zZm9ybSk7CiAgICAgICAgIGlm
ICghcGFyc2VkVHJhbnNmb3JtKQogICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKHBh
cnNlZFRyYW5zZm9ybS5lcnJvcigpKTsKICAgICAgICAgcmV0dXJuIFJlZGlyZWN0QWN0aW9uIHsg
V1RGTW92ZSgqcGFyc2VkVHJhbnNmb3JtKSB9OwogICAgIH0KIAotICAgIGlmIChhdXRvIHVybFN0
cmluZyA9IHJlZGlyZWN0LT5nZXRTdHJpbmcoInVybCIpOyAhIXVybFN0cmluZykgeworICAgIGlm
IChhdXRvIHVybFN0cmluZyA9IHJlZGlyZWN0LT5nZXRTdHJpbmcoInVybCJfcyk7ICEhdXJsU3Ry
aW5nKSB7CiAgICAgICAgIFVSTCB1cmwgeyB1cmxTdHJpbmcgfTsKICAgICAgICAgaWYgKCF1cmwu
aXNWYWxpZCgpKQogICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKENvbnRlbnRFeHRl
bnNpb25FcnJvcjo6SlNPTlJlZGlyZWN0VVJMSW52YWxpZCk7CkBAIC00ODMsMTUgKzQ4MywxNSBA
QCB2b2lkIFJlZGlyZWN0QWN0aW9uOjpSZWdleFN1YnN0aXR1dGlvbkFjdGlvbjo6YXBwbHlUb1VS
TChVUkwmIHVybCkgY29uc3QKIGF1dG8gUmVkaXJlY3RBY3Rpb246OlVSTFRyYW5zZm9ybUFjdGlv
bjo6cGFyc2UoY29uc3QgSlNPTjo6T2JqZWN0JiB0cmFuc2Zvcm0pIC0+IEV4cGVjdGVkPFVSTFRy
YW5zZm9ybUFjdGlvbiwgc3RkOjplcnJvcl9jb2RlPgogewogICAgIFVSTFRyYW5zZm9ybUFjdGlv
biBhY3Rpb247Ci0gICAgaWYgKGF1dG8gZnJhZ21lbnQgPSB0cmFuc2Zvcm0uZ2V0U3RyaW5nKCJm
cmFnbWVudCIpOyAhIWZyYWdtZW50KSB7CisgICAgaWYgKGF1dG8gZnJhZ21lbnQgPSB0cmFuc2Zv
cm0uZ2V0U3RyaW5nKCJmcmFnbWVudCJfcyk7ICEhZnJhZ21lbnQpIHsKICAgICAgICAgaWYgKCFm
cmFnbWVudC5pc0VtcHR5KCkgJiYgIWZyYWdtZW50LnN0YXJ0c1dpdGgoJyMnKSkKICAgICAgICAg
ICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05SZWRp
cmVjdEludmFsaWRGcmFnbWVudCk7CiAgICAgICAgIGFjdGlvbi5mcmFnbWVudCA9IFdURk1vdmUo
ZnJhZ21lbnQpOwogICAgIH0KLSAgICBhY3Rpb24uaG9zdCA9IHRyYW5zZm9ybS5nZXRTdHJpbmco
Imhvc3QiKTsKLSAgICBhY3Rpb24ucGFzc3dvcmQgPSB0cmFuc2Zvcm0uZ2V0U3RyaW5nKCJwYXNz
d29yZCIpOwotICAgIGFjdGlvbi5wYXRoID0gdHJhbnNmb3JtLmdldFN0cmluZygicGF0aCIpOwot
ICAgIGF1dG8gcG9ydCA9IHRyYW5zZm9ybS5nZXRTdHJpbmcoInBvcnQiKTsKKyAgICBhY3Rpb24u
aG9zdCA9IHRyYW5zZm9ybS5nZXRTdHJpbmcoImhvc3QiX3MpOworICAgIGFjdGlvbi5wYXNzd29y
ZCA9IHRyYW5zZm9ybS5nZXRTdHJpbmcoInBhc3N3b3JkIl9zKTsKKyAgICBhY3Rpb24ucGF0aCA9
IHRyYW5zZm9ybS5nZXRTdHJpbmcoInBhdGgiX3MpOworICAgIGF1dG8gcG9ydCA9IHRyYW5zZm9y
bS5nZXRTdHJpbmcoInBvcnQiX3MpOwogICAgIGlmICghIXBvcnQpIHsKICAgICAgICAgaWYgKHBv
cnQuaXNFbXB0eSgpKQogICAgICAgICAgICAgYWN0aW9uLnBvcnQgPSB7IHN0ZDo6b3B0aW9uYWw8
dWludDE2X3Q+IHsgfSB9OwpAQCAtNTAzLDcgKzUwMyw3IEBAIGF1dG8gUmVkaXJlY3RBY3Rpb246
OlVSTFRyYW5zZm9ybUFjdGlvbjo6cGFyc2UoY29uc3QgSlNPTjo6T2JqZWN0JiB0cmFuc2Zvcm0p
IC0+CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAoYXV0byB1bmNhbm9uaWNhbGl6ZWRTY2hl
bWUgPSB0cmFuc2Zvcm0uZ2V0U3RyaW5nKCJzY2hlbWUiKTsgISF1bmNhbm9uaWNhbGl6ZWRTY2hl
bWUpIHsKKyAgICBpZiAoYXV0byB1bmNhbm9uaWNhbGl6ZWRTY2hlbWUgPSB0cmFuc2Zvcm0uZ2V0
U3RyaW5nKCJzY2hlbWUiX3MpOyAhIXVuY2Fub25pY2FsaXplZFNjaGVtZSkgewogICAgICAgICBh
dXRvIHNjaGVtZSA9IFdURjo6VVJMUGFyc2VyOjptYXliZUNhbm9uaWNhbGl6ZVNjaGVtZSh1bmNh
bm9uaWNhbGl6ZWRTY2hlbWUpOwogICAgICAgICBpZiAoIXNjaGVtZSkKICAgICAgICAgICAgIHJl
dHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05SZWRpcmVjdFVS
TFNjaGVtZUludmFsaWQpOwpAQCAtNTExLDE0ICs1MTEsMTQgQEAgYXV0byBSZWRpcmVjdEFjdGlv
bjo6VVJMVHJhbnNmb3JtQWN0aW9uOjpwYXJzZShjb25zdCBKU09OOjpPYmplY3QmIHRyYW5zZm9y
bSkgLT4KICAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50RXh0ZW5zaW9u
RXJyb3I6OkpTT05SZWRpcmVjdFRvSmF2YVNjcmlwdFVSTCk7CiAgICAgICAgIGFjdGlvbi5zY2hl
bWUgPSBXVEZNb3ZlKCpzY2hlbWUpOwogICAgIH0KLSAgICBhY3Rpb24udXNlcm5hbWUgPSB0cmFu
c2Zvcm0uZ2V0U3RyaW5nKCJ1c2VybmFtZSIpOwotICAgIGlmIChhdXRvIHF1ZXJ5VHJhbnNmb3Jt
ID0gdHJhbnNmb3JtLmdldE9iamVjdCgicXVlcnktdHJhbnNmb3JtIikpIHsKKyAgICBhY3Rpb24u
dXNlcm5hbWUgPSB0cmFuc2Zvcm0uZ2V0U3RyaW5nKCJ1c2VybmFtZSJfcyk7CisgICAgaWYgKGF1
dG8gcXVlcnlUcmFuc2Zvcm0gPSB0cmFuc2Zvcm0uZ2V0T2JqZWN0KCJxdWVyeS10cmFuc2Zvcm0i
X3MpKSB7CiAgICAgICAgIGF1dG8gcGFyc2VkUXVlcnlUcmFuc2Zvcm0gPSBRdWVyeVRyYW5zZm9y
bTo6cGFyc2UoKnF1ZXJ5VHJhbnNmb3JtKTsKICAgICAgICAgaWYgKCFwYXJzZWRRdWVyeVRyYW5z
Zm9ybSkKICAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChwYXJzZWRRdWVyeVRyYW5z
Zm9ybS5lcnJvcigpKTsKICAgICAgICAgYWN0aW9uLnF1ZXJ5VHJhbnNmb3JtID0gKnBhcnNlZFF1
ZXJ5VHJhbnNmb3JtOwogICAgIH0gZWxzZSB7Ci0gICAgICAgIGF1dG8gcXVlcnkgPSB0cmFuc2Zv
cm0uZ2V0U3RyaW5nKCJxdWVyeSIpOworICAgICAgICBhdXRvIHF1ZXJ5ID0gdHJhbnNmb3JtLmdl
dFN0cmluZygicXVlcnkiX3MpOwogICAgICAgICBpZiAoIXF1ZXJ5LmlzRW1wdHkoKSAmJiAhcXVl
cnkuc3RhcnRzV2l0aCgnPycpKQogICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKENv
bnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTlJlZGlyZWN0SW52YWxpZFF1ZXJ5KTsKICAgICAgICAg
YWN0aW9uLnF1ZXJ5VHJhbnNmb3JtID0gV1RGTW92ZShxdWVyeSk7CkBAIC02OTksNyArNjk5LDcg
QEAgYXV0byBSZWRpcmVjdEFjdGlvbjo6VVJMVHJhbnNmb3JtQWN0aW9uOjpRdWVyeVRyYW5zZm9y
bTo6cGFyc2UoY29uc3QgSlNPTjo6T2JqZWMKIHsKICAgICBRdWVyeVRyYW5zZm9ybSBwYXJzZWRR
dWVyeVRyYW5zZm9ybTsKIAotICAgIGlmIChhdXRvIHJlbW92ZVBhcmFtZXRlcnNWYWx1ZSA9IHF1
ZXJ5VHJhbnNmb3JtLmdldFZhbHVlKCJyZW1vdmUtcGFyYW1ldGVycyIpKSB7CisgICAgaWYgKGF1
dG8gcmVtb3ZlUGFyYW1ldGVyc1ZhbHVlID0gcXVlcnlUcmFuc2Zvcm0uZ2V0VmFsdWUoInJlbW92
ZS1wYXJhbWV0ZXJzIl9zKSkgewogICAgICAgICBhdXRvIHJlbW92ZVBhcmFtZXRlcnNBcnJheSA9
IHJlbW92ZVBhcmFtZXRlcnNWYWx1ZS0+YXNBcnJheSgpOwogICAgICAgICBpZiAoIXJlbW92ZVBh
cmFtZXRlcnNBcnJheSkKICAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50
RXh0ZW5zaW9uRXJyb3I6OkpTT05SZW1vdmVQYXJhbWV0ZXJzTm90U3RyaW5nQXJyYXkpOwpAQCAt
NzEzLDcgKzcxMyw3IEBAIGF1dG8gUmVkaXJlY3RBY3Rpb246OlVSTFRyYW5zZm9ybUFjdGlvbjo6
UXVlcnlUcmFuc2Zvcm06OnBhcnNlKGNvbnN0IEpTT046Ok9iamVjCiAgICAgICAgIHBhcnNlZFF1
ZXJ5VHJhbnNmb3JtLnJlbW92ZVBhcmFtcyA9IFdURk1vdmUocmVtb3ZlUGFyYW1ldGVyc1ZlY3Rv
cik7CiAgICAgfQogCi0gICAgaWYgKGF1dG8gYWRkT3JSZXBsYWNlUGFyYW1ldGVyc1ZhbHVlID0g
cXVlcnlUcmFuc2Zvcm0uZ2V0VmFsdWUoImFkZC1vci1yZXBsYWNlLXBhcmFtZXRlcnMiKSkgewor
ICAgIGlmIChhdXRvIGFkZE9yUmVwbGFjZVBhcmFtZXRlcnNWYWx1ZSA9IHF1ZXJ5VHJhbnNmb3Jt
LmdldFZhbHVlKCJhZGQtb3ItcmVwbGFjZS1wYXJhbWV0ZXJzIl9zKSkgewogICAgICAgICBhdXRv
IGFkZE9yUmVwbGFjZVBhcmFtZXRlcnNBcnJheSA9IGFkZE9yUmVwbGFjZVBhcmFtZXRlcnNWYWx1
ZS0+YXNBcnJheSgpOwogICAgICAgICBpZiAoIWFkZE9yUmVwbGFjZVBhcmFtZXRlcnNBcnJheSkK
ICAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50RXh0ZW5zaW9uRXJyb3I6
OkpTT05BZGRPclJlcGxhY2VQYXJhbWV0ZXJzTm90QXJyYXkpOwpAQCAtODU4LDE2ICs4NTgsMTYg
QEAgYXV0byBSZWRpcmVjdEFjdGlvbjo6VVJMVHJhbnNmb3JtQWN0aW9uOjpRdWVyeVRyYW5zZm9y
bTo6UXVlcnlLZXlWYWx1ZTo6cGFyc2UoY28KICAgICBpZiAoIWtleVZhbHVlKQogICAgICAgICBy
ZXR1cm4gbWFrZVVuZXhwZWN0ZWQoQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OQWRkT3JSZXBs
YWNlUGFyYW1ldGVyc0tleVZhbHVlTm90QURpY3Rpb25hcnkpOwogCi0gICAgU3RyaW5nIGtleSA9
IGtleVZhbHVlLT5nZXRTdHJpbmcoImtleSIpOworICAgIFN0cmluZyBrZXkgPSBrZXlWYWx1ZS0+
Z2V0U3RyaW5nKCJrZXkiX3MpOwogICAgIGlmICgha2V5KQogICAgICAgICByZXR1cm4gbWFrZVVu
ZXhwZWN0ZWQoQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OQWRkT3JSZXBsYWNlUGFyYW1ldGVy
c0tleVZhbHVlTWlzc2luZ0tleVN0cmluZyk7CiAKLSAgICBTdHJpbmcgdmFsdWUgPSBrZXlWYWx1
ZS0+Z2V0U3RyaW5nKCJ2YWx1ZSIpOworICAgIFN0cmluZyB2YWx1ZSA9IGtleVZhbHVlLT5nZXRT
dHJpbmcoInZhbHVlIl9zKTsKICAgICBpZiAoIXZhbHVlKQogICAgICAgICByZXR1cm4gbWFrZVVu
ZXhwZWN0ZWQoQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OQWRkT3JSZXBsYWNlUGFyYW1ldGVy
c0tleVZhbHVlTWlzc2luZ1ZhbHVlU3RyaW5nKTsKIAogICAgIGJvb2wgcmVwbGFjZU9ubHkgeyBm
YWxzZSB9OwotICAgIGlmIChhdXRvIGJvb2xlYW4gPSBrZXlWYWx1ZS0+Z2V0Qm9vbGVhbigicmVw
bGFjZS1vbmx5IikpCisgICAgaWYgKGF1dG8gYm9vbGVhbiA9IGtleVZhbHVlLT5nZXRCb29sZWFu
KCJyZXBsYWNlLW9ubHkiX3MpKQogICAgICAgICByZXBsYWNlT25seSA9ICpib29sZWFuOwogCiAg
ICAgcmV0dXJuIHsgeyBXVEZNb3ZlKGtleSksIHJlcGxhY2VPbmx5LCBXVEZNb3ZlKHZhbHVlKSB9
IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50
RXh0ZW5zaW9uQ29tcGlsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMv
Q29udGVudEV4dGVuc2lvbkNvbXBpbGVyLmNwcAppbmRleCBjZmViZjVjMzA3OGE5NDFkMTljNzlh
MjkyYzQ3MGM5ZWJiZjI4MmNmLi5lODcyMWQ0YTc0NzllZDY4MzAxN2YwYTQ4NWU4NDZhMzI5Yzkw
ZTAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50
RXh0ZW5zaW9uQ29tcGlsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNp
b25zL0NvbnRlbnRFeHRlbnNpb25Db21waWxlci5jcHAKQEAgLTMxNiw3ICszMTYsNyBAQCBzdGQ6
OmVycm9yX2NvZGUgY29tcGlsZVJ1bGVMaXN0KENvbnRlbnRFeHRlbnNpb25Db21waWxhdGlvbkNs
aWVudCYgY2xpZW50LCBTdHJpbgogICAgICAgICAgICAgc3RhdHVzID0gVVJMRmlsdGVyUGFyc2Vy
OjpPazsKICAgICAgICAgfQogICAgICAgICBpZiAoc3RhdHVzICE9IFVSTEZpbHRlclBhcnNlcjo6
T2spIHsKLSAgICAgICAgICAgIGRhdGFMb2dGKCJFcnJvciB3aGlsZSBwYXJzaW5nICVzOiAlc1xu
IiwgdHJpZ2dlci51cmxGaWx0ZXIudXRmOCgpLmRhdGEoKSwgVVJMRmlsdGVyUGFyc2VyOjpzdGF0
dXNTdHJpbmcoc3RhdHVzKS51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgICAgIGRhdGFMb2dGKCJF
cnJvciB3aGlsZSBwYXJzaW5nICVzOiAlc1xuIiwgdHJpZ2dlci51cmxGaWx0ZXIudXRmOCgpLmRh
dGEoKSwgVVJMRmlsdGVyUGFyc2VyOjpzdGF0dXNTdHJpbmcoc3RhdHVzKS5jaGFyYWN0ZXJzKCkp
OwogICAgICAgICAgICAgcmV0dXJuIENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWRS
ZWdleDsKICAgICAgICAgfQogCkBAIC0zMzMsNyArMzMzLDcgQEAgc3RkOjplcnJvcl9jb2RlIGNv
bXBpbGVSdWxlTGlzdChDb250ZW50RXh0ZW5zaW9uQ29tcGlsYXRpb25DbGllbnQmIGNsaWVudCwg
U3RyaW4KICAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0gVVJMRmlsdGVyUGFyc2VyOjpPazsK
ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgaWYgKHN0YXR1cyAhPSBVUkxGaWx0
ZXJQYXJzZXI6Ok9rKSB7Ci0gICAgICAgICAgICAgICAgICAgIGRhdGFMb2dGKCJFcnJvciB3aGls
ZSBwYXJzaW5nICVzOiAlc1xuIiwgY29uZGl0aW9uLnV0ZjgoKS5kYXRhKCksIFVSTEZpbHRlclBh
cnNlcjo6c3RhdHVzU3RyaW5nKHN0YXR1cykudXRmOCgpLmRhdGEoKSk7CisgICAgICAgICAgICAg
ICAgICAgIGRhdGFMb2dGKCJFcnJvciB3aGlsZSBwYXJzaW5nICVzOiAlc1xuIiwgY29uZGl0aW9u
LnV0ZjgoKS5kYXRhKCksIFVSTEZpbHRlclBhcnNlcjo6c3RhdHVzU3RyaW5nKHN0YXR1cykuY2hh
cmFjdGVycygpKTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENvbnRlbnRFeHRlbnNpb25F
cnJvcjo6SlNPTkludmFsaWRSZWdleDsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAg
ICAgYnJlYWs7CkBAIC0zNDQsNyArMzQ0LDcgQEAgc3RkOjplcnJvcl9jb2RlIGNvbXBpbGVSdWxl
TGlzdChDb250ZW50RXh0ZW5zaW9uQ29tcGlsYXRpb25DbGllbnQmIGNsaWVudCwgU3RyaW4KICAg
ICAgICAgICAgICAgICAgICAgc3RhdHVzID0gVVJMRmlsdGVyUGFyc2VyOjpPazsKICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICAgaWYgKHN0YXR1cyAhPSBVUkxGaWx0ZXJQYXJzZXI6
Ok9rKSB7Ci0gICAgICAgICAgICAgICAgICAgIGRhdGFMb2dGKCJFcnJvciB3aGlsZSBwYXJzaW5n
ICVzOiAlc1xuIiwgY29uZGl0aW9uLnV0ZjgoKS5kYXRhKCksIFVSTEZpbHRlclBhcnNlcjo6c3Rh
dHVzU3RyaW5nKHN0YXR1cykudXRmOCgpLmRhdGEoKSk7CisgICAgICAgICAgICAgICAgICAgIGRh
dGFMb2dGKCJFcnJvciB3aGlsZSBwYXJzaW5nICVzOiAlc1xuIiwgY29uZGl0aW9uLnV0ZjgoKS5k
YXRhKCksIFVSTEZpbHRlclBhcnNlcjo6c3RhdHVzU3RyaW5nKHN0YXR1cykuY2hhcmFjdGVycygp
KTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNP
TkludmFsaWRSZWdleDsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgYnJlYWs7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0
ZW5zaW9uUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRl
bnRFeHRlbnNpb25QYXJzZXIuY3BwCmluZGV4IDUxM2ZkOTM5ZTY2ZGI1Y2EyNTEyOWY1NzZiOTgy
YjRmOGM5ODI0ZTEuLjc0NDE2NWYwYjUyMDE1Y2NlZmQ3N2Y2ODdjZTUzY2MwNWMxYjE1NjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNp
b25QYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRl
bnRFeHRlbnNpb25QYXJzZXIuY3BwCkBAIC05Myw3ICs5Myw3IEBAIHN0YXRpYyBFeHBlY3RlZDxW
ZWN0b3I8U3RyaW5nPiwgc3RkOjplcnJvcl9jb2RlPiBnZXREb21haW5MaXN0KGNvbnN0IEpTT046
OkFycmF5CiAgICAgICAgICAgICB7ICckJywgIlxcJCIgfQogICAgICAgICB9IH07CiAgICAgICAg
IGZvciAoYXV0byYgcGFpciA6IGVzY2FwZVRhYmxlKQotICAgICAgICAgICAgZG9tYWluID0gZG9t
YWluLnJlcGxhY2UocGFpci5maXJzdCwgcGFpci5zZWNvbmQpOworICAgICAgICAgICAgZG9tYWlu
ID0gZG9tYWluLnJlcGxhY2UocGFpci5maXJzdCwgU3RyaW5nIHsgcGFpci5zZWNvbmQgfSk7CiAK
ICAgICAgICAgY29uc3QgY2hhciogcHJvdG9jb2xSZWdleCA9ICJbYS16XVthLXorLi1dKjpcXC9c
XC8iOwogICAgICAgICBjb25zdCBjaGFyKiBhbGxvd1N1YmRvbWFpbnNSZWdleCA9ICIoLipcXC4p
KiI7CkBAIC0xMTksMjcgKzExOSwyNyBAQCBzdGF0aWMgc3RkOjplcnJvcl9jb2RlIGdldFR5cGVG
bGFncyhjb25zdCBKU09OOjpBcnJheSYgYXJyYXksIFJlc291cmNlRmxhZ3MmIGZsYQogICAgIAog
c3RhdGljIEV4cGVjdGVkPFRyaWdnZXIsIHN0ZDo6ZXJyb3JfY29kZT4gbG9hZFRyaWdnZXIoY29u
c3QgSlNPTjo6T2JqZWN0JiBydWxlT2JqZWN0KQogewotICAgIGF1dG8gdHJpZ2dlck9iamVjdCA9
IHJ1bGVPYmplY3QuZ2V0T2JqZWN0KCJ0cmlnZ2VyIik7CisgICAgYXV0byB0cmlnZ2VyT2JqZWN0
ID0gcnVsZU9iamVjdC5nZXRPYmplY3QoInRyaWdnZXIiX3MpOwogICAgIGlmICghdHJpZ2dlck9i
amVjdCkKICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKENvbnRlbnRFeHRlbnNpb25FcnJv
cjo6SlNPTkludmFsaWRUcmlnZ2VyKTsKIAotICAgIFN0cmluZyB1cmxGaWx0ZXIgPSB0cmlnZ2Vy
T2JqZWN0LT5nZXRTdHJpbmcoInVybC1maWx0ZXIiKTsKKyAgICBTdHJpbmcgdXJsRmlsdGVyID0g
dHJpZ2dlck9iamVjdC0+Z2V0U3RyaW5nKCJ1cmwtZmlsdGVyIl9zKTsKICAgICBpZiAodXJsRmls
dGVyLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKENvbnRlbnRFeHRl
bnNpb25FcnJvcjo6SlNPTkludmFsaWRVUkxGaWx0ZXJJblRyaWdnZXIpOwogCiAgICAgVHJpZ2dl
ciB0cmlnZ2VyOwogICAgIHRyaWdnZXIudXJsRmlsdGVyID0gdXJsRmlsdGVyOwogCi0gICAgaWYg
KHN0ZDo6b3B0aW9uYWw8Ym9vbD4gdXJsRmlsdGVyQ2FzZVNlbnNpdGl2ZVZhbHVlID0gdHJpZ2dl
ck9iamVjdC0+Z2V0Qm9vbGVhbigidXJsLWZpbHRlci1pcy1jYXNlLXNlbnNpdGl2ZSIpKQorICAg
IGlmIChzdGQ6Om9wdGlvbmFsPGJvb2w+IHVybEZpbHRlckNhc2VTZW5zaXRpdmVWYWx1ZSA9IHRy
aWdnZXJPYmplY3QtPmdldEJvb2xlYW4oInVybC1maWx0ZXItaXMtY2FzZS1zZW5zaXRpdmUiX3Mp
KQogICAgICAgICB0cmlnZ2VyLnVybEZpbHRlcklzQ2FzZVNlbnNpdGl2ZSA9ICp1cmxGaWx0ZXJD
YXNlU2Vuc2l0aXZlVmFsdWU7CiAKLSAgICBpZiAoc3RkOjpvcHRpb25hbDxib29sPiB0b3BVUkxG
aWx0ZXJDYXNlU2Vuc2l0aXZlVmFsdWUgPSB0cmlnZ2VyT2JqZWN0LT5nZXRCb29sZWFuKCJ0b3At
dXJsLWZpbHRlci1pcy1jYXNlLXNlbnNpdGl2ZSIpKQorICAgIGlmIChzdGQ6Om9wdGlvbmFsPGJv
b2w+IHRvcFVSTEZpbHRlckNhc2VTZW5zaXRpdmVWYWx1ZSA9IHRyaWdnZXJPYmplY3QtPmdldEJv
b2xlYW4oInRvcC11cmwtZmlsdGVyLWlzLWNhc2Utc2Vuc2l0aXZlIl9zKSkKICAgICAgICAgdHJp
Z2dlci50b3BVUkxGaWx0ZXJJc0Nhc2VTZW5zaXRpdmUgPSAqdG9wVVJMRmlsdGVyQ2FzZVNlbnNp
dGl2ZVZhbHVlOwogCi0gICAgaWYgKHN0ZDo6b3B0aW9uYWw8Ym9vbD4gZnJhbWVVUkxGaWx0ZXJD
YXNlU2Vuc2l0aXZlVmFsdWUgPSB0cmlnZ2VyT2JqZWN0LT5nZXRCb29sZWFuKCJmcmFtZS11cmwt
ZmlsdGVyLWlzLWNhc2Utc2Vuc2l0aXZlIikpCisgICAgaWYgKHN0ZDo6b3B0aW9uYWw8Ym9vbD4g
ZnJhbWVVUkxGaWx0ZXJDYXNlU2Vuc2l0aXZlVmFsdWUgPSB0cmlnZ2VyT2JqZWN0LT5nZXRCb29s
ZWFuKCJmcmFtZS11cmwtZmlsdGVyLWlzLWNhc2Utc2Vuc2l0aXZlIl9zKSkKICAgICAgICAgdHJp
Z2dlci5mcmFtZVVSTEZpbHRlcklzQ2FzZVNlbnNpdGl2ZSA9ICpmcmFtZVVSTEZpbHRlckNhc2VT
ZW5zaXRpdmVWYWx1ZTsKIAotICAgIGlmIChhdXRvIHJlc291cmNlVHlwZVZhbHVlID0gdHJpZ2dl
ck9iamVjdC0+Z2V0VmFsdWUoInJlc291cmNlLXR5cGUiKSkgeworICAgIGlmIChhdXRvIHJlc291
cmNlVHlwZVZhbHVlID0gdHJpZ2dlck9iamVjdC0+Z2V0VmFsdWUoInJlc291cmNlLXR5cGUiX3Mp
KSB7CiAgICAgICAgIGF1dG8gcmVzb3VyY2VUeXBlQXJyYXkgPSByZXNvdXJjZVR5cGVWYWx1ZS0+
YXNBcnJheSgpOwogICAgICAgICBpZiAoIXJlc291cmNlVHlwZUFycmF5KQogICAgICAgICAgICAg
cmV0dXJuIG1ha2VVbmV4cGVjdGVkKENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWRU
cmlnZ2VyRmxhZ3NBcnJheSk7CkBAIC0xNDcsNyArMTQ3LDcgQEAgc3RhdGljIEV4cGVjdGVkPFRy
aWdnZXIsIHN0ZDo6ZXJyb3JfY29kZT4gbG9hZFRyaWdnZXIoY29uc3QgSlNPTjo6T2JqZWN0JiBy
dWxlT2IKICAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChlcnJvcik7CiAgICAgfQog
Ci0gICAgaWYgKGF1dG8gbG9hZFR5cGVWYWx1ZSA9IHRyaWdnZXJPYmplY3QtPmdldFZhbHVlKCJs
b2FkLXR5cGUiKSkgeworICAgIGlmIChhdXRvIGxvYWRUeXBlVmFsdWUgPSB0cmlnZ2VyT2JqZWN0
LT5nZXRWYWx1ZSgibG9hZC10eXBlIl9zKSkgewogICAgICAgICBhdXRvIGxvYWRUeXBlQXJyYXkg
PSBsb2FkVHlwZVZhbHVlLT5hc0FycmF5KCk7CiAgICAgICAgIGlmICghbG9hZFR5cGVBcnJheSkK
ICAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50RXh0ZW5zaW9uRXJyb3I6
OkpTT05JbnZhbGlkVHJpZ2dlckZsYWdzQXJyYXkpOwpAQCAtMTU1LDcgKzE1NSw3IEBAIHN0YXRp
YyBFeHBlY3RlZDxUcmlnZ2VyLCBzdGQ6OmVycm9yX2NvZGU+IGxvYWRUcmlnZ2VyKGNvbnN0IEpT
T046Ok9iamVjdCYgcnVsZU9iCiAgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoZXJy
b3IpOwogICAgIH0KIAotICAgIGlmIChhdXRvIGxvYWRDb250ZXh0VmFsdWUgPSB0cmlnZ2VyT2Jq
ZWN0LT5nZXRWYWx1ZSgibG9hZC1jb250ZXh0IikpIHsKKyAgICBpZiAoYXV0byBsb2FkQ29udGV4
dFZhbHVlID0gdHJpZ2dlck9iamVjdC0+Z2V0VmFsdWUoImxvYWQtY29udGV4dCJfcykpIHsKICAg
ICAgICAgYXV0byBsb2FkQ29udGV4dEFycmF5ID0gbG9hZENvbnRleHRWYWx1ZS0+YXNBcnJheSgp
OwogICAgICAgICBpZiAoIWxvYWRDb250ZXh0QXJyYXkpCiAgICAgICAgICAgICByZXR1cm4gbWFr
ZVVuZXhwZWN0ZWQoQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZFRyaWdnZXJGbGFn
c0FycmF5KTsKQEAgLTIxMiwxMSArMjEyLDExIEBAIGJvb2wgaXNWYWxpZENTU1NlbGVjdG9yKGNv
bnN0IFN0cmluZyYgc2VsZWN0b3IpCiAKIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEV4cGVjdGVkPEFj
dGlvbiwgc3RkOjplcnJvcl9jb2RlPj4gbG9hZEFjdGlvbihjb25zdCBKU09OOjpPYmplY3QmIHJ1
bGVPYmplY3QsIGNvbnN0IFN0cmluZyYgdXJsRmlsdGVyKQogewotICAgIGF1dG8gYWN0aW9uT2Jq
ZWN0ID0gcnVsZU9iamVjdC5nZXRPYmplY3QoImFjdGlvbiIpOworICAgIGF1dG8gYWN0aW9uT2Jq
ZWN0ID0gcnVsZU9iamVjdC5nZXRPYmplY3QoImFjdGlvbiJfcyk7CiAgICAgaWYgKCFhY3Rpb25P
YmplY3QpCiAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50RXh0ZW5zaW9uRXJy
b3I6OkpTT05JbnZhbGlkQWN0aW9uKTsKIAotICAgIFN0cmluZyBhY3Rpb25UeXBlID0gYWN0aW9u
T2JqZWN0LT5nZXRTdHJpbmcoInR5cGUiKTsKKyAgICBTdHJpbmcgYWN0aW9uVHlwZSA9IGFjdGlv
bk9iamVjdC0+Z2V0U3RyaW5nKCJ0eXBlIl9zKTsKIAogICAgIGlmIChhY3Rpb25UeXBlID09ICJi
bG9jayIpCiAgICAgICAgIHJldHVybiBBY3Rpb24geyBCbG9ja0xvYWRBY3Rpb24oKSB9OwpAQCAt
MjI1LDcgKzIyNSw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEV4cGVjdGVkPEFjdGlvbiwgc3Rk
OjplcnJvcl9jb2RlPj4gbG9hZEFjdGlvbihjb25zdCBKU09OOjpPCiAgICAgaWYgKGFjdGlvblR5
cGUgPT0gImJsb2NrLWNvb2tpZXMiKQogICAgICAgICByZXR1cm4gQWN0aW9uIHsgQmxvY2tDb29r
aWVzQWN0aW9uKCkgfTsKICAgICBpZiAoYWN0aW9uVHlwZSA9PSAiY3NzLWRpc3BsYXktbm9uZSIp
IHsKLSAgICAgICAgU3RyaW5nIHNlbGVjdG9yU3RyaW5nID0gYWN0aW9uT2JqZWN0LT5nZXRTdHJp
bmcoInNlbGVjdG9yIik7CisgICAgICAgIFN0cmluZyBzZWxlY3RvclN0cmluZyA9IGFjdGlvbk9i
amVjdC0+Z2V0U3RyaW5nKCJzZWxlY3RvciJfcyk7CiAgICAgICAgIGlmICghc2VsZWN0b3JTdHJp
bmcpCiAgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoQ29udGVudEV4dGVuc2lvbkVy
cm9yOjpKU09OSW52YWxpZENTU0Rpc3BsYXlOb25lQWN0aW9uVHlwZSk7CiAgICAgICAgIGlmICgh
aXNWYWxpZENTU1NlbGVjdG9yKHNlbGVjdG9yU3RyaW5nKSkKQEAgLTIzNSw3ICsyMzUsNyBAQCBz
dGF0aWMgc3RkOjpvcHRpb25hbDxFeHBlY3RlZDxBY3Rpb24sIHN0ZDo6ZXJyb3JfY29kZT4+IGxv
YWRBY3Rpb24oY29uc3QgSlNPTjo6TwogICAgIGlmIChhY3Rpb25UeXBlID09ICJtYWtlLWh0dHBz
IikKICAgICAgICAgcmV0dXJuIEFjdGlvbiB7IE1ha2VIVFRQU0FjdGlvbigpIH07CiAgICAgaWYg
KGFjdGlvblR5cGUgPT0gIm5vdGlmeSIpIHsKLSAgICAgICAgU3RyaW5nIG5vdGlmaWNhdGlvbiA9
IGFjdGlvbk9iamVjdC0+Z2V0U3RyaW5nKCJub3RpZmljYXRpb24iKTsKKyAgICAgICAgU3RyaW5n
IG5vdGlmaWNhdGlvbiA9IGFjdGlvbk9iamVjdC0+Z2V0U3RyaW5nKCJub3RpZmljYXRpb24iX3Mp
OwogICAgICAgICBpZiAoIW5vdGlmaWNhdGlvbikKICAgICAgICAgICAgIHJldHVybiBtYWtlVW5l
eHBlY3RlZChDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkTm90aWZpY2F0aW9uKTsK
ICAgICAgICAgcmV0dXJuIEFjdGlvbiB7IE5vdGlmeUFjdGlvbiB7IHsgV1RGTW92ZShub3RpZmlj
YXRpb24pIH0gfSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lv
bnMvU2VyaWFsaXplZE5GQS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9T
ZXJpYWxpemVkTkZBLmNwcAppbmRleCAwNGM2ZGE1YTg0OGQwODkxZjMzZjRmODM5ZGE5NTJiOGM3
Njc5YTA5Li4wNTJiNTk3YmNmYjkyYTc0Mzc5M2Y5MTVlZDY5NmU3YTBlOWU0OGYxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9TZXJpYWxpemVkTkZBLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9TZXJpYWxpemVkTkZBLmNwcApA
QCAtNTIsNyArNTIsNyBAQCBib29sIHdyaXRlQWxsVG9GaWxlKEZpbGVTeXN0ZW06OlBsYXRmb3Jt
RmlsZUhhbmRsZSBmaWxlLCBjb25zdCBUJiBjb250YWluZXIpCiBzdGQ6Om9wdGlvbmFsPFNlcmlh
bGl6ZWRORkE+IFNlcmlhbGl6ZWRORkE6OnNlcmlhbGl6ZShORkEmJiBuZmEpCiB7CiAgICAgYXV0
byBmaWxlID0gRmlsZVN5c3RlbTo6aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZTsKLSAgICBhdXRv
IGZpbGVuYW1lID0gRmlsZVN5c3RlbTo6b3BlblRlbXBvcmFyeUZpbGUoIlNlcmlhbGl6ZWRORkEi
LCBmaWxlKTsKKyAgICBhdXRvIGZpbGVuYW1lID0gRmlsZVN5c3RlbTo6b3BlblRlbXBvcmFyeUZp
bGUoIlNlcmlhbGl6ZWRORkEiX3MsIGZpbGUpOwogICAgIGlmICghRmlsZVN5c3RlbTo6aXNIYW5k
bGVWYWxpZChmaWxlKSkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvVVJMRmlsdGVyUGFyc2VyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL1VSTEZpbHRlclBhcnNlci5jcHAKaW5k
ZXggZDg3MjlkMzkwZDkwNzMwYTBlYjdkYjNhOGM5ZjE3MThjODZmN2EzYS4uNGZmMTIyNWZhYTgy
Mjg1YjMxY2VkNTc1OWRiODk3NzY5MTg5ZTc0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y29udGVudGV4dGVuc2lvbnMvVVJMRmlsdGVyUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jb250ZW50ZXh0ZW5zaW9ucy9VUkxGaWx0ZXJQYXJzZXIuY3BwCkBAIC0zNjksMzkgKzM2OSwz
OSBAQCBVUkxGaWx0ZXJQYXJzZXI6OlBhcnNlU3RhdHVzIFVSTEZpbHRlclBhcnNlcjo6YWRkUGF0
dGVybihjb25zdCBTdHJpbmcmIHBhdHRlcm4sCiAgICAgcmV0dXJuIHN0YXR1czsKIH0KIAotU3Ry
aW5nIFVSTEZpbHRlclBhcnNlcjo6c3RhdHVzU3RyaW5nKFBhcnNlU3RhdHVzIHN0YXR1cykKK0FT
Q0lJTGl0ZXJhbCBVUkxGaWx0ZXJQYXJzZXI6OnN0YXR1c1N0cmluZyhQYXJzZVN0YXR1cyBzdGF0
dXMpCiB7CiAgICAgc3dpdGNoIChzdGF0dXMpIHsKICAgICBjYXNlIE9rOgotICAgICAgICByZXR1
cm4gIk9rIjsKKyAgICAgICAgcmV0dXJuICJPayJfczsKICAgICBjYXNlIE1hdGNoZXNFdmVyeXRo
aW5nOgotICAgICAgICByZXR1cm4gIk1hdGNoZXMgZXZlcnl0aGluZy4iOworICAgICAgICByZXR1
cm4gIk1hdGNoZXMgZXZlcnl0aGluZy4iX3M7CiAgICAgY2FzZSBOb25BU0NJSToKLSAgICAgICAg
cmV0dXJuICJPbmx5IEFTQ0lJIGNoYXJhY3RlcnMgYXJlIHN1cHBvcnRlZCBpbiBwYXR0ZXJuLiI7
CisgICAgICAgIHJldHVybiAiT25seSBBU0NJSSBjaGFyYWN0ZXJzIGFyZSBzdXBwb3J0ZWQgaW4g
cGF0dGVybi4iX3M7CiAgICAgY2FzZSBVbnN1cHBvcnRlZENoYXJhY3RlckNsYXNzOgotICAgICAg
ICByZXR1cm4gIkNoYXJhY3RlciBjbGFzcyBpcyBub3Qgc3VwcG9ydGVkLiI7CisgICAgICAgIHJl
dHVybiAiQ2hhcmFjdGVyIGNsYXNzIGlzIG5vdCBzdXBwb3J0ZWQuIl9zOwogICAgIGNhc2UgQmFj
a1JlZmVyZW5jZToKLSAgICAgICAgcmV0dXJuICJQYXR0ZXJucyBjYW5ub3QgY29udGFpbiBiYWNr
cmVmZXJlbmNlcy4iOworICAgICAgICByZXR1cm4gIlBhdHRlcm5zIGNhbm5vdCBjb250YWluIGJh
Y2tyZWZlcmVuY2VzLiJfczsKICAgICBjYXNlIEZvcndhcmRSZWZlcmVuY2U6Ci0gICAgICAgIHJl
dHVybiAiUGF0dGVybnMgY2Fubm90IGNvbnRhaW4gZm9yd2FyZCByZWZlcmVuY2VzLiI7CisgICAg
ICAgIHJldHVybiAiUGF0dGVybnMgY2Fubm90IGNvbnRhaW4gZm9yd2FyZCByZWZlcmVuY2VzLiJf
czsKICAgICBjYXNlIE1pc3BsYWNlZFN0YXJ0T2ZMaW5lOgotICAgICAgICByZXR1cm4gIlN0YXJ0
IG9mIGxpbmUgYXNzZXJ0aW9uIGNhbiBvbmx5IGFwcGVhciBhcyB0aGUgZmlyc3QgdGVybSBpbiBh
IGZpbHRlci4iOworICAgICAgICByZXR1cm4gIlN0YXJ0IG9mIGxpbmUgYXNzZXJ0aW9uIGNhbiBv
bmx5IGFwcGVhciBhcyB0aGUgZmlyc3QgdGVybSBpbiBhIGZpbHRlci4iX3M7CiAgICAgY2FzZSBX
b3JkQm91bmRhcnk6Ci0gICAgICAgIHJldHVybiAiV29yZCBib3VuZGFyaWVzIGFzc2VydGlvbnMg
YXJlIG5vdCBzdXBwb3J0ZWQgeWV0LiI7CisgICAgICAgIHJldHVybiAiV29yZCBib3VuZGFyaWVz
IGFzc2VydGlvbnMgYXJlIG5vdCBzdXBwb3J0ZWQgeWV0LiJfczsKICAgICBjYXNlIEF0b21DaGFy
YWN0ZXI6Ci0gICAgICAgIHJldHVybiAiQnVpbHRpbnMgY2hhcmFjdGVyIGNsYXNzIGF0b21zIGFy
ZSBub3Qgc3VwcG9ydGVkIHlldC4iOworICAgICAgICByZXR1cm4gIkJ1aWx0aW5zIGNoYXJhY3Rl
ciBjbGFzcyBhdG9tcyBhcmUgbm90IHN1cHBvcnRlZCB5ZXQuIl9zOwogICAgIGNhc2UgR3JvdXA6
Ci0gICAgICAgIHJldHVybiAiR3JvdXBzIGFyZSBub3Qgc3VwcG9ydGVkIHlldC4iOworICAgICAg
ICByZXR1cm4gIkdyb3VwcyBhcmUgbm90IHN1cHBvcnRlZCB5ZXQuIl9zOwogICAgIGNhc2UgRGlz
anVuY3Rpb246Ci0gICAgICAgIHJldHVybiAiRGlzanVuY3Rpb25zIGFyZSBub3Qgc3VwcG9ydGVk
IHlldC4iOworICAgICAgICByZXR1cm4gIkRpc2p1bmN0aW9ucyBhcmUgbm90IHN1cHBvcnRlZCB5
ZXQuIl9zOwogICAgIGNhc2UgTWlzcGxhY2VkRW5kT2ZMaW5lOgotICAgICAgICByZXR1cm4gIlRo
ZSBlbmQgb2YgbGluZSBhc3NlcnRpb24gbXVzdCBiZSB0aGUgbGFzdCB0ZXJtIGluIGFuIGV4cHJl
c3Npb24uIjsKKyAgICAgICAgcmV0dXJuICJUaGUgZW5kIG9mIGxpbmUgYXNzZXJ0aW9uIG11c3Qg
YmUgdGhlIGxhc3QgdGVybSBpbiBhbiBleHByZXNzaW9uLiJfczsKICAgICBjYXNlIEVtcHR5UGF0
dGVybjoKLSAgICAgICAgcmV0dXJuICJFbXB0eSBwYXR0ZXJuLiI7CisgICAgICAgIHJldHVybiAi
RW1wdHkgcGF0dGVybi4iX3M7CiAgICAgY2FzZSBZYXJyRXJyb3I6Ci0gICAgICAgIHJldHVybiAi
SW50ZXJuYWwgZXJyb3IgaW4gWUFSUi4iOworICAgICAgICByZXR1cm4gIkludGVybmFsIGVycm9y
IGluIFlBUlIuIl9zOwogICAgIGNhc2UgSW52YWxpZFF1YW50aWZpZXI6Ci0gICAgICAgIHJldHVy
biAiQXJiaXRyYXJ5IGF0b20gcmVwZXRpdGlvbnMgYXJlIG5vdCBzdXBwb3J0ZWQuIjsKKyAgICAg
ICAgcmV0dXJuICJBcmJpdHJhcnkgYXRvbSByZXBldGl0aW9ucyBhcmUgbm90IHN1cHBvcnRlZC4i
X3M7CiAgICAgfQogCiAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL1VSTEZpbHRlclBhcnNlci5oIGIv
U291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvVVJMRmlsdGVyUGFyc2VyLmgKaW5kZXgg
YjVjMWY2ZDlmZDJlN2M5NGNiMjU2NTc1Njg5ZGY0YjcwNzA3OWE5ZC4uODg5ODNiNTVjM2NiZWQ1
OWY0YTRhMDFhZWQyNWE0MzJjODAyOGI0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY29u
dGVudGV4dGVuc2lvbnMvVVJMRmlsdGVyUGFyc2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY29u
dGVudGV4dGVuc2lvbnMvVVJMRmlsdGVyUGFyc2VyLmgKQEAgLTU0LDcgKzU0LDcgQEAgcHVibGlj
OgogICAgICAgICBZYXJyRXJyb3IsCiAgICAgICAgIEludmFsaWRRdWFudGlmaWVyLAogICAgIH07
Ci0gICAgc3RhdGljIFN0cmluZyBzdGF0dXNTdHJpbmcoUGFyc2VTdGF0dXMpOworICAgIHN0YXRp
YyBBU0NJSUxpdGVyYWwgc3RhdHVzU3RyaW5nKFBhcnNlU3RhdHVzKTsKICAgICBleHBsaWNpdCBV
UkxGaWx0ZXJQYXJzZXIoQ29tYmluZWRVUkxGaWx0ZXJzJik7CiAgICAgflVSTEZpbHRlclBhcnNl
cigpOwogICAgIFBhcnNlU3RhdHVzIGFkZFBhdHRlcm4oY29uc3QgU3RyaW5nJiBwYXR0ZXJuLCBi
b29sIHBhdHRlcm5Jc0Nhc2VTZW5zaXRpdmUsIHVpbnQ2NF90IHBhdHRlcm5JZCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vU3VidGxlQ3J5cHRvLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2NyeXB0by9TdWJ0bGVDcnlwdG8uY3BwCmluZGV4IGVhYTMyMThmY2Y3Yjc3ODU0ZmIyMzg1
ZTUwMWE5OTk0MzZmYmViNTguLjlkNmY0MzAzNjU5ODJkNmU5NTBlOWMxYTZhMWQ2YjJjMWE3ZDM5
NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9TdWJ0bGVDcnlwdG8uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9TdWJ0bGVDcnlwdG8uY3BwCkBAIC01MzQsNyArNTM0
LDcgQEAgdm9pZCBTdWJ0bGVDcnlwdG86OmFkZEF1dGhlbnRpY2F0ZWRFbmNyeXB0aW9uV2Fybmlu
Z0lmTmVjZXNzYXJ5KENyeXB0b0FsZ29yaXRobUkKIHsKICAgICBpZiAoYWxnb3JpdGhtSWRlbnRp
ZmllciA9PSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpBRVNfQ0JDIHx8IGFsZ29yaXRobUlk
ZW50aWZpZXIgPT0gQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6QUVTX0NUUikgewogICAgICAg
ICBpZiAoIXNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aGFzTG9nZ2VkQXV0aGVudGljYXRlZEVu
Y3J5cHRpb25XYXJuaW5nKCkpIHsKLSAgICAgICAgICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KS0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6U2VjdXJpdHksIE1lc3NhZ2VMZXZl
bDo6V2FybmluZywgIkFFUy1DQkMgYW5kIEFFUy1DVFIgZG8gbm90IHByb3ZpZGUgYXV0aGVudGlj
YXRpb24gYnkgZGVmYXVsdCwgYW5kIGltcGxlbWVudGluZyBpdCBtYW51YWxseSBjYW4gcmVzdWx0
IGluIG1pbm9yLCBidXQgc2VyaW91cyBtaXN0YWtlcy4gV2UgcmVjb21tZW5kZWQgdXNpbmcgYXV0
aGVudGljYXRlZCBlbmNyeXB0aW9uIGxpa2UgQUVTLUdDTSB0byBwcm90ZWN0IGFnYWluc3QgY2hv
c2VuLWNpcGhlcnRleHQgYXR0YWNrcy4iKTsKKyAgICAgICAgICAgIHNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQoKS0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6U2VjdXJpdHksIE1lc3Nh
Z2VMZXZlbDo6V2FybmluZywgIkFFUy1DQkMgYW5kIEFFUy1DVFIgZG8gbm90IHByb3ZpZGUgYXV0
aGVudGljYXRpb24gYnkgZGVmYXVsdCwgYW5kIGltcGxlbWVudGluZyBpdCBtYW51YWxseSBjYW4g
cmVzdWx0IGluIG1pbm9yLCBidXQgc2VyaW91cyBtaXN0YWtlcy4gV2UgcmVjb21tZW5kZWQgdXNp
bmcgYXV0aGVudGljYXRlZCBlbmNyeXB0aW9uIGxpa2UgQUVTLUdDTSB0byBwcm90ZWN0IGFnYWlu
c3QgY2hvc2VuLWNpcGhlcnRleHQgYXR0YWNrcy4iX3MpOwogICAgICAgICAgICAgc2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCgpLT5zZXRIYXNMb2dnZWRBdXRoZW50aWNhdGVkRW5jcnlwdGlvbldhcm5p
bmcodHJ1ZSk7CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
cnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfQ0JDLmggYi9Tb3VyY2UvV2ViQ29y
ZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfQ0JDLmgKaW5kZXggMjczMjk4
NWI3N2ZlZGZjMzk2NzRkNDc0OWQ4OTU1MGEwYTE3MWMyNi4uYjc0NDNhNzMzOTg0MjA4OGY4M2Nj
YzZmMzVjYTI5NzcxNjA4Y2NmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2Fs
Z29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NCQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Ny
eXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DQkMuaApAQCAtNDEsNyArNDEsNyBA
QCBwdWJsaWM6CiAgICAgICAgIE5vCiAgICAgfTsKIAotICAgIHN0YXRpYyBjb25zdGV4cHIgY29u
c3QgY2hhciogc19uYW1lID0gIkFFUy1DQkMiOworICAgIHN0YXRpYyBjb25zdGV4cHIgQVNDSUlM
aXRlcmFsIHNfbmFtZSA9ICJBRVMtQ0JDIl9zOwogICAgIHN0YXRpYyBjb25zdGV4cHIgQ3J5cHRv
QWxnb3JpdGhtSWRlbnRpZmllciBzX2lkZW50aWZpZXIgPSBDcnlwdG9BbGdvcml0aG1JZGVudGlm
aWVyOjpBRVNfQ0JDOwogICAgIHN0YXRpYyBSZWY8Q3J5cHRvQWxnb3JpdGhtPiBjcmVhdGUoKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxn
b3JpdGhtQUVTX0NGQi5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRv
QWxnb3JpdGhtQUVTX0NGQi5oCmluZGV4IGMyMjc0MTkxZjYzNWI4MzNhNDkxZTgyY2IxZGU3ZGE4
MTAzYzZkOWEuLjUwOGEyMDMzNjRhY2JhY2ZjMGZmYzg1NzI3NTI3OWVmNTQ2Y2ZjODggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFF
U19DRkIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdv
cml0aG1BRVNfQ0ZCLmgKQEAgLTM2LDcgKzM2LDcgQEAgY2xhc3MgQ3J5cHRvS2V5QUVTOwogCiBj
bGFzcyBDcnlwdG9BbGdvcml0aG1BRVNfQ0ZCIGZpbmFsIDogcHVibGljIENyeXB0b0FsZ29yaXRo
bSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBjb25zdCBjaGFyKiBzX25hbWUgPSAi
QUVTLUNGQi04IjsKKyAgICBzdGF0aWMgY29uc3RleHByIEFTQ0lJTGl0ZXJhbCBzX25hbWUgPSAi
QUVTLUNGQi04Il9zOwogICAgIHN0YXRpYyBjb25zdGV4cHIgQ3J5cHRvQWxnb3JpdGhtSWRlbnRp
ZmllciBzX2lkZW50aWZpZXIgPSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpBRVNfQ0ZCOwog
ICAgIHN0YXRpYyBSZWY8Q3J5cHRvQWxnb3JpdGhtPiBjcmVhdGUoKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NUUi5o
IGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NU
Ui5oCmluZGV4IDcxOGY2ZTBlMzM4NmU2ZmU2MjUzOTVhZmJiNzlhZDMwYzRmYTQxNGEuLjhiZDM5
MzM5ZGMzNjAwZjZjNDg2ZWE2MTBjMWI4MjQ2YjhjMjI3MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DVFIuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfQ1RSLmgK
QEAgLTY0LDcgKzY0LDcgQEAgcHVibGljOgogICAgICAgICBjb25zdCBzaXplX3QgbV9jb3VudGVy
TGVuZ3RoOwogICAgIH07CiAKLSAgICBzdGF0aWMgY29uc3RleHByIGNvbnN0IGNoYXIqIHNfbmFt
ZSA9ICJBRVMtQ1RSIjsKKyAgICBzdGF0aWMgY29uc3RleHByIEFTQ0lJTGl0ZXJhbCBzX25hbWUg
PSAiQUVTLUNUUiJfczsKICAgICBzdGF0aWMgY29uc3RleHByIENyeXB0b0FsZ29yaXRobUlkZW50
aWZpZXIgc19pZGVudGlmaWVyID0gQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6QUVTX0NUUjsK
ICAgICBzdGF0aWMgUmVmPENyeXB0b0FsZ29yaXRobT4gY3JlYXRlKCk7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19HQ00u
aCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19H
Q00uaAppbmRleCBkMGFkMWYxM2MxNzhiNWNjOWIxNzZlYjMwZTZjZWMyYTFiY2I0NjU4Li41MzMx
MGUxMTEwNzVlMTYzNGVmM2UwNTdiNGFkZjZhMTNjNjkyMzFhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfR0NNLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0dDTS5o
CkBAIC0zNiw3ICszNiw3IEBAIGNsYXNzIENyeXB0b0tleUFFUzsKIAogY2xhc3MgQ3J5cHRvQWxn
b3JpdGhtQUVTX0dDTSBmaW5hbCA6IHB1YmxpYyBDcnlwdG9BbGdvcml0aG0gewogcHVibGljOgot
ICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3QgY2hhciogc19uYW1lID0gIkFFUy1HQ00iOworICAg
IHN0YXRpYyBjb25zdGV4cHIgQVNDSUlMaXRlcmFsIHNfbmFtZSA9ICJBRVMtR0NNIl9zOwogICAg
IHN0YXRpYyBjb25zdGV4cHIgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBzX2lkZW50aWZpZXIg
PSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpBRVNfR0NNOwogICAgIHN0YXRpYyBSZWY8Q3J5
cHRvQWxnb3JpdGhtPiBjcmVhdGUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5
cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0tXLmggYi9Tb3VyY2UvV2ViQ29yZS9j
cnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfS1cuaAppbmRleCA1N2U2OWMxNWMx
MmM3ZWUxOGViNzY1MThkZmY4N2JmNGI1NzI0Yjk5Li5hMDhkZWMzZjI2Y2JiNTk5MTU0YTIzNTY1
OTBlZjBmZDE3N2M2M2RiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3Jp
dGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfS1cuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8v
YWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfS1cuaApAQCAtMzUsNyArMzUsNyBAQCBjbGFz
cyBDcnlwdG9LZXlBRVM7CiAKIGNsYXNzIENyeXB0b0FsZ29yaXRobUFFU19LVyBmaW5hbCA6IHB1
YmxpYyBDcnlwdG9BbGdvcml0aG0gewogcHVibGljOgotICAgIHN0YXRpYyBjb25zdGV4cHIgY29u
c3QgY2hhciogc19uYW1lID0gIkFFUy1LVyI7CisgICAgc3RhdGljIGNvbnN0ZXhwciBBU0NJSUxp
dGVyYWwgc19uYW1lID0gIkFFUy1LVyJfczsKICAgICBzdGF0aWMgY29uc3RleHByIENyeXB0b0Fs
Z29yaXRobUlkZW50aWZpZXIgc19pZGVudGlmaWVyID0gQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmll
cjo6QUVTX0tXOwogICAgIHN0YXRpYyBSZWY8Q3J5cHRvQWxnb3JpdGhtPiBjcmVhdGUoKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3Jp
dGhtRUNESC5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3Jp
dGhtRUNESC5oCmluZGV4IDkzYTE1YTJkYTM1MWRjZTcyNzQzMzgxOTdkMjY2MzEwNTg1ZjdiZjUu
LjMyZDU1NDU2Yzk3MDgyNWNjZTU1MmQ3ZGUwNDNhNDI5NTBkMGUyM2MgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUVDREguaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1FQ0RILmgK
QEAgLTM1LDcgKzM1LDcgQEAgY2xhc3MgQ3J5cHRvS2V5RUM7CiAKIGNsYXNzIENyeXB0b0FsZ29y
aXRobUVDREggZmluYWwgOiBwdWJsaWMgQ3J5cHRvQWxnb3JpdGhtIHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgY29uc3RleHByIGNvbnN0IGNoYXIqIHNfbmFtZSA9ICJFQ0RIIjsKKyAgICBzdGF0aWMg
Y29uc3RleHByIEFTQ0lJTGl0ZXJhbCBzX25hbWUgPSAiRUNESCJfczsKICAgICBzdGF0aWMgY29u
c3RleHByIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgc19pZGVudGlmaWVyID0gQ3J5cHRvQWxn
b3JpdGhtSWRlbnRpZmllcjo6RUNESDsKICAgICBzdGF0aWMgUmVmPENyeXB0b0FsZ29yaXRobT4g
Y3JlYXRlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1z
L0NyeXB0b0FsZ29yaXRobUVDRFNBLmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGht
cy9DcnlwdG9BbGdvcml0aG1FQ0RTQS5oCmluZGV4IDNhNTkxYmRmYWYyMjg4NTBkZThjMDgyYmYy
NzdhMTkwMDYzODllNjYuLmI3Yzc4ODlmOGUwMzIxMzRjM2RlMDNiN2FhYmY3NWM1MmY4MmJkM2Mg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29y
aXRobUVDRFNBLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRv
QWxnb3JpdGhtRUNEU0EuaApAQCAtMzYsNyArMzYsNyBAQCBjbGFzcyBDcnlwdG9LZXlFQzsKIAog
Y2xhc3MgQ3J5cHRvQWxnb3JpdGhtRUNEU0EgZmluYWwgOiBwdWJsaWMgQ3J5cHRvQWxnb3JpdGht
IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3RleHByIGNvbnN0IGNoYXIqIHNfbmFtZSA9ICJF
Q0RTQSI7CisgICAgc3RhdGljIGNvbnN0ZXhwciBBU0NJSUxpdGVyYWwgc19uYW1lID0gIkVDRFNB
Il9zOwogICAgIHN0YXRpYyBjb25zdGV4cHIgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBzX2lk
ZW50aWZpZXIgPSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpFQ0RTQTsKICAgICBzdGF0aWMg
UmVmPENyeXB0b0FsZ29yaXRobT4gY3JlYXRlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUhLREYuaCBiL1NvdXJjZS9XZWJD
b3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUhLREYuaAppbmRleCAxZGRjZDlk
MWExNDYzMTYwMzIxYjExNmFlNzRkOWEzNmQ5Y2IxZDZhLi44ZjM5MzliMTliNGVjOTI4Njc4MDcz
ZjI3NDZhOTViMGVmM2IzNWEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxn
b3JpdGhtcy9DcnlwdG9BbGdvcml0aG1IS0RGLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRv
L2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtSEtERi5oCkBAIC0zNiw3ICszNiw3IEBAIGNsYXNz
IENyeXB0b0tleVJhdzsKIAogY2xhc3MgQ3J5cHRvQWxnb3JpdGhtSEtERiBmaW5hbCA6IHB1Ymxp
YyBDcnlwdG9BbGdvcml0aG0gewogcHVibGljOgotICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3Qg
Y2hhciogc19uYW1lID0gIkhLREYiOworICAgIHN0YXRpYyBjb25zdGV4cHIgQVNDSUlMaXRlcmFs
IHNfbmFtZSA9ICJIS0RGIl9zOwogICAgIHN0YXRpYyBjb25zdGV4cHIgQ3J5cHRvQWxnb3JpdGht
SWRlbnRpZmllciBzX2lkZW50aWZpZXIgPSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpIS0RG
OwogICAgIHN0YXRpYyBSZWY8Q3J5cHRvQWxnb3JpdGhtPiBjcmVhdGUoKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtSE1BQy5o
IGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtSE1BQy5o
CmluZGV4IGZhOGYwYWRkY2NlMTI4ZjI0NzE1MTczZmFmYmZhOTI3MzI1MjUwZDMuLjlmMTA4NDY5
OGFiNDNmN2U1ZWQ5OWJiY2FkODVmODExYWFiYjVjMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUhNQUMuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1ITUFDLmgKQEAgLTM1LDcg
KzM1LDcgQEAgY2xhc3MgQ3J5cHRvS2V5SE1BQzsKIAogY2xhc3MgQ3J5cHRvQWxnb3JpdGhtSE1B
QyBmaW5hbCA6IHB1YmxpYyBDcnlwdG9BbGdvcml0aG0gewogcHVibGljOgotICAgIHN0YXRpYyBj
b25zdGV4cHIgY29uc3QgY2hhciogc19uYW1lID0gIkhNQUMiOworICAgIHN0YXRpYyBjb25zdGV4
cHIgQVNDSUlMaXRlcmFsIHNfbmFtZSA9ICJITUFDIl9zOwogICAgIHN0YXRpYyBjb25zdGV4cHIg
Q3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBzX2lkZW50aWZpZXIgPSBDcnlwdG9BbGdvcml0aG1J
ZGVudGlmaWVyOjpITUFDOwogICAgIHN0YXRpYyBSZWY8Q3J5cHRvQWxnb3JpdGhtPiBjcmVhdGUo
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRv
QWxnb3JpdGhtUEJLREYyLmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9Dcnlw
dG9BbGdvcml0aG1QQktERjIuaAppbmRleCBiZDk3NDVjNzAzNThlNzhkNTNiNDgwY2MyNjZkYzQ0
OTc3OGZiODQyLi4zNDA2OWU1MWZhYWU2YTIwNzIyMjk4MjhkMTZkOWEzMjlkNWE4YmY0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1Q
QktERjIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdv
cml0aG1QQktERjIuaApAQCAtMzYsNyArMzYsNyBAQCBjbGFzcyBDcnlwdG9LZXlSYXc7CiAKIGNs
YXNzIENyeXB0b0FsZ29yaXRobVBCS0RGMiBmaW5hbCA6IHB1YmxpYyBDcnlwdG9BbGdvcml0aG0g
ewogcHVibGljOgotICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3QgY2hhciogc19uYW1lID0gIlBC
S0RGMiI7CisgICAgc3RhdGljIGNvbnN0ZXhwciBBU0NJSUxpdGVyYWwgc19uYW1lID0gIlBCS0RG
MiJfczsKICAgICBzdGF0aWMgY29uc3RleHByIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgc19p
ZGVudGlmaWVyID0gQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6UEJLREYyOwogICAgIHN0YXRp
YyBSZWY8Q3J5cHRvQWxnb3JpdGhtPiBjcmVhdGUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBRVNfUEtDUzFfdjFfNS5o
IGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBRVNf
UEtDUzFfdjFfNS5oCmluZGV4IDhiNTFiNDFlN2MwYTU3ZjY2OGY1ODQ3OWZhMjllNjM4ZTllMWFk
MGIuLmQyMWU2YzFlZTI4NmY3ZGM2Mzg3NWE5ODRhYjIzZTcwMDRlZTE4ODIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQUVTX1BL
Q1MxX3YxXzUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9B
bGdvcml0aG1SU0FFU19QS0NTMV92MV81LmgKQEAgLTM1LDcgKzM1LDcgQEAgY2xhc3MgQ3J5cHRv
S2V5UlNBOwogCiBjbGFzcyBDcnlwdG9BbGdvcml0aG1SU0FFU19QS0NTMV92MV81IGZpbmFsIDog
cHVibGljIENyeXB0b0FsZ29yaXRobSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBj
b25zdCBjaGFyKiBzX25hbWUgPSAiUlNBRVMtUEtDUzEtdjFfNSI7CisgICAgc3RhdGljIGNvbnN0
ZXhwciBBU0NJSUxpdGVyYWwgc19uYW1lID0gIlJTQUVTLVBLQ1MxLXYxXzUiX3M7CiAgICAgc3Rh
dGljIGNvbnN0ZXhwciBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIHNfaWRlbnRpZmllciA9IENy
eXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlJTQUVTX1BLQ1MxX3YxXzU7CiAgICAgc3RhdGljIFJl
ZjxDcnlwdG9BbGdvcml0aG0+IGNyZWF0ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNS5oIGIv
U291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BL
Q1MxX3YxXzUuaAppbmRleCBkOWI3YjQ1MDcyM2FmY2RhOTk5OTVjYjg4M2NkYTM5Y2FmMzI4ZGNl
Li5kMTg1ZDNhNGJkYTJkYTM3Y2RiMGRmMjhmNjhhMjczZGRlOTliODYwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtD
UzFfdjFfNS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0Fs
Z29yaXRobVJTQVNTQV9QS0NTMV92MV81LmgKQEAgLTM1LDcgKzM1LDcgQEAgY2xhc3MgQ3J5cHRv
S2V5UlNBOwogCiBjbGFzcyBDcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNSBmaW5hbCA6
IHB1YmxpYyBDcnlwdG9BbGdvcml0aG0gewogcHVibGljOgotICAgIHN0YXRpYyBjb25zdGV4cHIg
Y29uc3QgY2hhciogc19uYW1lID0gIlJTQVNTQS1QS0NTMS12MV81IjsKKyAgICBzdGF0aWMgY29u
c3RleHByIEFTQ0lJTGl0ZXJhbCBzX25hbWUgPSAiUlNBU1NBLVBLQ1MxLXYxXzUiX3M7CiAgICAg
c3RhdGljIGNvbnN0ZXhwciBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIHNfaWRlbnRpZmllciA9
IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlJTQVNTQV9QS0NTMV92MV81OwogICAgIHN0YXRp
YyBSZWY8Q3J5cHRvQWxnb3JpdGhtPiBjcmVhdGUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBX09BRVAuaCBiL1NvdXJj
ZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQV9PQUVQLmgKaW5k
ZXggMDk2YWYzY2EyMzA3OTU5ZjI0NTRlZTNjZmQyYjNmMGUyMmI0NzNmMi4uZGJhN2VhOWQ1ZDcy
MmU0MjdhM2IwYWE0ZjlkY2QzMmZmNDQ1OWYyYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBX09BRVAuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FfT0FFUC5oCkBAIC0z
Niw3ICszNiw3IEBAIGNsYXNzIENyeXB0b0tleVJTQTsKIAogY2xhc3MgQ3J5cHRvQWxnb3JpdGht
UlNBX09BRVAgZmluYWwgOiBwdWJsaWMgQ3J5cHRvQWxnb3JpdGhtIHsKIHB1YmxpYzoKLSAgICBz
dGF0aWMgY29uc3RleHByIGNvbnN0IGNoYXIqIHNfbmFtZSA9ICJSU0EtT0FFUCI7CisgICAgc3Rh
dGljIGNvbnN0ZXhwciBBU0NJSUxpdGVyYWwgc19uYW1lID0gIlJTQS1PQUVQIl9zOwogICAgIHN0
YXRpYyBjb25zdGV4cHIgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBzX2lkZW50aWZpZXIgPSBD
cnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpSU0FfT0FFUDsKICAgICBzdGF0aWMgUmVmPENyeXB0
b0FsZ29yaXRobT4gY3JlYXRlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0
by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQV9QU1MuaCBiL1NvdXJjZS9XZWJDb3JlL2Ny
eXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQV9QU1MuaAppbmRleCA1ODc5YTU2N2Nj
Y2M3YjBhMWM5YWQ0ZDkxNzg5ZDlkMDU0YjAwOTc0Li5iMWY3Zjc3MmNlNDIyNzhkNGQ5NGQ1YzBh
NzZjYWU1ZWRmMGU0MGVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3Jp
dGhtcy9DcnlwdG9BbGdvcml0aG1SU0FfUFNTLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRv
L2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBX1BTUy5oCkBAIC0zNiw3ICszNiw3IEBAIGNs
YXNzIENyeXB0b0tleVJTQTsKIAogY2xhc3MgQ3J5cHRvQWxnb3JpdGhtUlNBX1BTUyBmaW5hbCA6
IHB1YmxpYyBDcnlwdG9BbGdvcml0aG0gewogcHVibGljOgotICAgIHN0YXRpYyBjb25zdGV4cHIg
Y29uc3QgY2hhciogc19uYW1lID0gIlJTQS1QU1MiOworICAgIHN0YXRpYyBjb25zdGV4cHIgQVND
SUlMaXRlcmFsIHNfbmFtZSA9ICJSU0EtUFNTIl9zOwogICAgIHN0YXRpYyBjb25zdGV4cHIgQ3J5
cHRvQWxnb3JpdGhtSWRlbnRpZmllciBzX2lkZW50aWZpZXIgPSBDcnlwdG9BbGdvcml0aG1JZGVu
dGlmaWVyOjpSU0FfUFNTOwogICAgIHN0YXRpYyBSZWY8Q3J5cHRvQWxnb3JpdGhtPiBjcmVhdGUo
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRv
QWxnb3JpdGhtU0hBMS5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRv
QWxnb3JpdGhtU0hBMS5oCmluZGV4IGQ4MDdhYmI5NzRjYmFhYzNiMGE3YmM3YWQ4NjU4ZmNhZmI1
YWQ2YWUuLjFmZDc3NWE4MTM2NDNjMWIyZmFjYzdkM2M5NDA5ZDMyZmUxY2U4NTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTEu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1T
SEExLmgKQEAgLTMzLDcgKzMzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDcnlw
dG9BbGdvcml0aG1TSEExIGZpbmFsIDogcHVibGljIENyeXB0b0FsZ29yaXRobSB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBjb25zdCBjaGFyKiBzX25hbWUgPSAiU0hBLTEiOworICAg
IHN0YXRpYyBjb25zdGV4cHIgQVNDSUlMaXRlcmFsIHNfbmFtZSA9ICJTSEEtMSJfczsKICAgICBz
dGF0aWMgY29uc3RleHByIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgc19pZGVudGlmaWVyID0g
Q3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6U0hBXzE7CiAgICAgc3RhdGljIFJlZjxDcnlwdG9B
bGdvcml0aG0+IGNyZWF0ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8v
YWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEyMjQuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0
by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTIyNC5oCmluZGV4IDc4MDRiYWNmZjI1NzJk
OGRjNjUxMTAwNDA0ZjkwNWJmOTNiZmM0YzYuLjQ5M2UxNjJhYjM2NTJlNjZjMzUwNGE4ZDc5NWMy
ODY5ZDRkZGNlYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1z
L0NyeXB0b0FsZ29yaXRobVNIQTIyNC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdv
cml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTIyNC5oCkBAIC0zMyw3ICszMyw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogY2xhc3MgQ3J5cHRvQWxnb3JpdGhtU0hBMjI0IGZpbmFsIDogcHVibGlj
IENyeXB0b0FsZ29yaXRobSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBjb25zdCBj
aGFyKiBzX25hbWUgPSAiU0hBLTIyNCI7CisgICAgc3RhdGljIGNvbnN0ZXhwciBBU0NJSUxpdGVy
YWwgc19uYW1lID0gIlNIQS0yMjQiX3M7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBDcnlwdG9BbGdv
cml0aG1JZGVudGlmaWVyIHNfaWRlbnRpZmllciA9IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6
OlNIQV8yMjQ7CiAgICAgc3RhdGljIFJlZjxDcnlwdG9BbGdvcml0aG0+IGNyZWF0ZSgpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0
aG1TSEEyNTYuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29y
aXRobVNIQTI1Ni5oCmluZGV4IGNlMjQwNGM3NGQ1NWM4ZjI3NDQwNWU1NmY0ZDU4YTdmZjYxNjE1
ZjkuLmY1YTg1NDNjODJjNTU0OGVlNDJiM2I5MzI3MTFlNjg1NWVmOGYwZjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTI1Ni5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNI
QTI1Ni5oCkBAIC0zMyw3ICszMyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ3J5
cHRvQWxnb3JpdGhtU0hBMjU2IGZpbmFsIDogcHVibGljIENyeXB0b0FsZ29yaXRobSB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBjb25zdCBjaGFyKiBzX25hbWUgPSAiU0hBLTI1NiI7
CisgICAgc3RhdGljIGNvbnN0ZXhwciBBU0NJSUxpdGVyYWwgc19uYW1lID0gIlNIQS0yNTYiX3M7
CiAgICAgc3RhdGljIGNvbnN0IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgc19pZGVudGlmaWVy
ID0gQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6U0hBXzI1NjsKICAgICBzdGF0aWMgUmVmPENy
eXB0b0FsZ29yaXRobT4gY3JlYXRlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Ny
eXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTM4NC5oIGIvU291cmNlL1dlYkNvcmUv
Y3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMzg0LmgKaW5kZXggNmNjNTc0OTEz
MjZhMDA4ZTQyNmYyNjkyMTM4OWFkNmY0YzRiZjg0OS4uZTViZjIyMzJhY2YyZGE2YTEwMDZlYTUy
MDE5MzQwOGIxODA1ZjJjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29y
aXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMzg0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRv
L2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMzg0LmgKQEAgLTMzLDcgKzMzLDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDcnlwdG9BbGdvcml0aG1TSEEzODQgZmluYWwgOiBw
dWJsaWMgQ3J5cHRvQWxnb3JpdGhtIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3RleHByIGNv
bnN0IGNoYXIqIHNfbmFtZSA9ICJTSEEtMzg0IjsKKyAgICBzdGF0aWMgY29uc3RleHByIEFTQ0lJ
TGl0ZXJhbCBzX25hbWUgPSAiU0hBLTM4NCJfczsKICAgICBzdGF0aWMgY29uc3RleHByIENyeXB0
b0FsZ29yaXRobUlkZW50aWZpZXIgc19pZGVudGlmaWVyID0gQ3J5cHRvQWxnb3JpdGhtSWRlbnRp
Zmllcjo6U0hBXzM4NDsKICAgICBzdGF0aWMgUmVmPENyeXB0b0FsZ29yaXRobT4gY3JlYXRlKCk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0Fs
Z29yaXRobVNIQTUxMi5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRv
QWxnb3JpdGhtU0hBNTEyLmgKaW5kZXggMGQ0YTBiOTZiNjQyYTRjZGZhN2JmOTkwYTk3ZWY3M2I4
Yjc2MTNmOC4uMDVmOThmYzRhODY2NmRhZmRhNjA1OWExNGZlNWUxNzM3YTRhNzQyYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hB
NTEyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3Jp
dGhtU0hBNTEyLmgKQEAgLTMzLDcgKzMzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFz
cyBDcnlwdG9BbGdvcml0aG1TSEE1MTIgZmluYWwgOiBwdWJsaWMgQ3J5cHRvQWxnb3JpdGhtIHsK
IHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3RleHByIGNvbnN0IGNoYXIqIHNfbmFtZSA9ICJTSEEt
NTEyIjsKKyAgICBzdGF0aWMgY29uc3RleHByIEFTQ0lJTGl0ZXJhbCBzX25hbWUgPSAiU0hBLTUx
MiJfczsKICAgICBzdGF0aWMgY29uc3RleHByIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgc19p
ZGVudGlmaWVyID0gQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6U0hBXzUxMjsKICAgICBzdGF0
aWMgUmVmPENyeXB0b0FsZ29yaXRobT4gY3JlYXRlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleUFFUy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jcnlw
dG8va2V5cy9DcnlwdG9LZXlBRVMuY3BwCmluZGV4IDQyZmUzYTRiZTUyMTgxOTk3MzRkZWRkMDNh
YjdjOTcxZjMwMTFhZDQuLmM3NmM4NjNkNWFmYzVhNDE1YjA2NTU4ODUwZDMwNzUyMGMwYzY3Y2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleUFFUy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5QUVTLmNwcApAQCAtMTA2
LDcgKzEwNiw3IEBAIFJlZlB0cjxDcnlwdG9LZXlBRVM+IENyeXB0b0tleUFFUzo6aW1wb3J0Sndr
KENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgYWxnb3JpdGhtCiBKc29uV2ViS2V5IENyeXB0b0tl
eUFFUzo6ZXhwb3J0SndrKCkgY29uc3QKIHsKICAgICBKc29uV2ViS2V5IHJlc3VsdDsKLSAgICBy
ZXN1bHQua3R5ID0gIm9jdCI7CisgICAgcmVzdWx0Lmt0eSA9ICJvY3QiX3M7CiAgICAgcmVzdWx0
LmsgPSBiYXNlNjRVUkxFbmNvZGVUb1N0cmluZyhtX2tleSk7CiAgICAgcmVzdWx0LmtleV9vcHMg
PSB1c2FnZXMoKTsKICAgICByZXN1bHQuZXh0ID0gZXh0cmFjdGFibGUoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleUVDLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleUVDLmNwcAppbmRleCBkMzZkMzQwZjcwYThmNGExN2Zm
NWY2MTljZWIxZDlkODQ1Y2EyYTMzLi5mY2U4MmJlZTkxY2FiNzQyNjIwNDAwZGNhNzczMDVjMTdm
Njg1MjAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlF
Qy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5RUMuY3BwCkBA
IC0xNDgsNyArMTQ4LDcgQEAgRXhjZXB0aW9uT3I8VmVjdG9yPHVpbnQ4X3Q+PiBDcnlwdG9LZXlF
Qzo6ZXhwb3J0UmF3KCkgY29uc3QKIEV4Y2VwdGlvbk9yPEpzb25XZWJLZXk+IENyeXB0b0tleUVD
OjpleHBvcnRKd2soKSBjb25zdAogewogICAgIEpzb25XZWJLZXkgcmVzdWx0OwotICAgIHJlc3Vs
dC5rdHkgPSAiRUMiOworICAgIHJlc3VsdC5rdHkgPSAiRUMiX3M7CiAgICAgc3dpdGNoIChtX2N1
cnZlKSB7CiAgICAgY2FzZSBOYW1lZEN1cnZlOjpQMjU2OgogICAgICAgICByZXN1bHQuY3J2ID0g
UDI1NjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleUhN
QUMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5SE1BQy5jcHAKaW5k
ZXggNDM0ZjI0MDQ1NWRjOGNlMzQxZTAwNTQwM2JmMDVjYjkwMDM3ZDE0OS4uMjU0M2VkNTQ2NTdl
N2FlM2YyZjc5OTZjNzg0NDNkZmIwOWE3MjdhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3J5cHRvL2tleXMvQ3J5cHRvS2V5SE1BQy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRv
L2tleXMvQ3J5cHRvS2V5SE1BQy5jcHAKQEAgLTEyMSw3ICsxMjEsNyBAQCBSZWZQdHI8Q3J5cHRv
S2V5SE1BQz4gQ3J5cHRvS2V5SE1BQzo6aW1wb3J0SndrKHNpemVfdCBsZW5ndGhCaXRzLCBDcnlw
dG9BbGdvcml0aAogSnNvbldlYktleSBDcnlwdG9LZXlITUFDOjpleHBvcnRKd2soKSBjb25zdAog
ewogICAgIEpzb25XZWJLZXkgcmVzdWx0OwotICAgIHJlc3VsdC5rdHkgPSAib2N0IjsKKyAgICBy
ZXN1bHQua3R5ID0gIm9jdCJfczsKICAgICByZXN1bHQuayA9IGJhc2U2NFVSTEVuY29kZVRvU3Ry
aW5nKG1fa2V5KTsKICAgICByZXN1bHQua2V5X29wcyA9IHVzYWdlcygpOwogICAgIHJlc3VsdC5l
eHQgPSBleHRyYWN0YWJsZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tl
eXMvQ3J5cHRvS2V5UlNBLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tl
eVJTQS5jcHAKaW5kZXggNmJiZjE0ZjI0NjBiM2QxZjUwNDg4YWYzOTI5NzA5Zjc0MjE2ZWUyNC4u
MDU4MWQ2NzA3MmNiOTM2NmQzNzc1NDIyNjhhNDhmZmRhMDYzOWE3NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5UlNBLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlSU0EuY3BwCkBAIC0xMzMsNyArMTMzLDcgQEAgUmVm
UHRyPENyeXB0b0tleVJTQT4gQ3J5cHRvS2V5UlNBOjppbXBvcnRKd2soQ3J5cHRvQWxnb3JpdGht
SWRlbnRpZmllciBhbGdvcml0aG0KIEpzb25XZWJLZXkgQ3J5cHRvS2V5UlNBOjpleHBvcnRKd2so
KSBjb25zdAogewogICAgIEpzb25XZWJLZXkgcmVzdWx0OwotICAgIHJlc3VsdC5rdHkgPSAiUlNB
IjsKKyAgICByZXN1bHQua3R5ID0gIlJTQSJfczsKICAgICByZXN1bHQua2V5X29wcyA9IHVzYWdl
cygpOwogICAgIHJlc3VsdC5leHQgPSBleHRyYWN0YWJsZSgpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTR3JpZFRlbXBsYXRlQXJlYXNWYWx1ZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTR3JpZFRlbXBsYXRlQXJlYXNWYWx1ZS5jcHAKaW5kZXggZTBiNzg2NTlhZGJk
MDE0ODM5ZTU3YzA2MjFkYzE2MTllZjgxMzEwOS4uZGZkNzI1MTNiY2RmNTQ2MTA5ZTY5MDJiNWJl
OWI5NzkyZTZhMjc0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyaWRUZW1w
bGF0ZUFyZWFzVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmlkVGVtcGxh
dGVBcmVhc1ZhbHVlLmNwcApAQCAtNjMsNyArNjMsNyBAQCBzdGF0aWMgU3RyaW5nIHN0cmluZ0Zv
clBvc2l0aW9uKGNvbnN0IE5hbWVkR3JpZEFyZWFNYXAmIGdyaWRBcmVhTWFwLCBzaXplX3Qgcm93
LAogICAgICAgICAgICAgcmV0dXJuIGl0LmtleTsKICAgICB9CiAKLSAgICByZXR1cm4gIi4iOwor
ICAgIHJldHVybiAiLiJfczsKIH0KIAogU3RyaW5nIENTU0dyaWRUZW1wbGF0ZUFyZWFzVmFsdWU6
OmN1c3RvbUNTU1RleHQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NT
U1ByaW1pdGl2ZVZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1
ZS5jcHAKaW5kZXggNzllYjJhNTYyMzcwOTRjNGQxYmQzNjFhMGE3M2NjNTQ5NTY0OGY3ZS4uNmRj
ODBiYTMwMmRhZWFjNzM1Yjg3MGU3ZjgwNzBhZDEwMzRiNDQwNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwCkBAIC0xMjQzLDY0ICsxMjQzLDY0IEBAIE5FVkVSX0lO
TElORSBTdHJpbmcgQ1NTUHJpbWl0aXZlVmFsdWU6OmZvcm1hdEludGVnZXJWYWx1ZShTdHJpbmdW
aWV3IHN1ZmZpeCkgY29uCiBTdHJpbmcgQ1NTUHJpbWl0aXZlVmFsdWU6OnVuaXRUeXBlU3RyaW5n
KENTU1VuaXRUeXBlIHVuaXRUeXBlKQogewogICAgIHN3aXRjaCAodW5pdFR5cGUpIHsKLSAgICAg
ICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1BFUkNFTlRBR0U6IHJldHVybiAiJSI7Ci0gICAgICAg
IGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19FTVM6IHJldHVybiAiZW0iOwotICAgICAgICBjYXNlIENT
U1VuaXRUeXBlOjpDU1NfRVhTOiByZXR1cm4gImV4IjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlw
ZTo6Q1NTX1BYOiByZXR1cm4gInB4IjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0NN
OiByZXR1cm4gImNtIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX01NOiByZXR1cm4g
Im1tIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0lOOiByZXR1cm4gImluIjsKLSAg
ICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1BUOiByZXR1cm4gInB0IjsKLSAgICAgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX1BDOiByZXR1cm4gInBjIjsKLSAgICAgICAgY2FzZSBDU1NVbml0
VHlwZTo6Q1NTX0RFRzogcmV0dXJuICJkZWciOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpD
U1NfUkFEOiByZXR1cm4gInJhZCI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19HUkFE
OiByZXR1cm4gImdyYWQiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTVM6IHJldHVy
biAibXMiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfUzogcmV0dXJuICJzIjsKLSAg
ICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0haOiByZXR1cm4gImh6IjsKLSAgICAgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX0tIWjogcmV0dXJuICJraHoiOwotICAgICAgICBjYXNlIENTU1Vu
aXRUeXBlOjpDU1NfVlc6IHJldHVybiAidnciOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpD
U1NfVkg6IHJldHVybiAidmgiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVk1JTjog
cmV0dXJuICJ2bWluIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZNQVg6IHJldHVy
biAidm1heCI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WQjogcmV0dXJuICJ2YiI7
Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WSTogcmV0dXJuICJ2aSI7Ci0gICAgICAg
IGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVlc6IHJldHVybiAic3Z3IjsKLSAgICAgICAgY2FzZSBD
U1NVbml0VHlwZTo6Q1NTX1NWSDogcmV0dXJuICJzdmgiOwotICAgICAgICBjYXNlIENTU1VuaXRU
eXBlOjpDU1NfU1ZNSU46IHJldHVybiAic3ZtaW4iOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfU1ZNQVg6IHJldHVybiAic3ZtYXgiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpD
U1NfU1ZCOiByZXR1cm4gInN2YiI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVkk6
IHJldHVybiAic3ZpIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWVzogcmV0dXJu
ICJsdnciOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZIOiByZXR1cm4gImx2aCI7
Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVk1JTjogcmV0dXJuICJsdm1pbiI7Ci0g
ICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVk1BWDogcmV0dXJuICJsdm1heCI7Ci0gICAg
ICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVkI6IHJldHVybiAibHZiIjsKLSAgICAgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX0xWSTogcmV0dXJuICJsdmkiOwotICAgICAgICBjYXNlIENTU1Vu
aXRUeXBlOjpDU1NfRFZXOiByZXR1cm4gImR2dyI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6
OkNTU19EVkg6IHJldHVybiAiZHZoIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RW
TUlOOiByZXR1cm4gImR2bWluIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWTUFY
OiByZXR1cm4gImR2bWF4IjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWQjogcmV0
dXJuICJkdmIiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZJOiByZXR1cm4gImR2
aSI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EUFBYOiByZXR1cm4gImRwcHgiOwot
ICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfWDogcmV0dXJuICJ4IjsKLSAgICAgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX0RQSTogcmV0dXJuICJkcGkiOwotICAgICAgICBjYXNlIENTU1Vu
aXRUeXBlOjpDU1NfRFBDTTogcmV0dXJuICJkcGNtIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlw
ZTo6Q1NTX0ZSOiByZXR1cm4gImZyIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1E6
IHJldHVybiAicSI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MSFM6IHJldHVybiAi
bGgiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfUkxIUzogcmV0dXJuICJybGgiOwot
ICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVFVSTjogcmV0dXJuICJ0dXJuIjsKLSAgICAg
ICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1JFTVM6IHJldHVybiAicmVtIjsKLSAgICAgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX0NIUzogcmV0dXJuICJjaCI7Ci0gICAgICAgIGNhc2UgQ1NTVW5p
dFR5cGU6OkNTU19JQzogcmV0dXJuICJpYyI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNT
U19DUVc6IHJldHVybiAiY3F3IjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0NRSDog
cmV0dXJuICJjcWgiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfQ1FJOiByZXR1cm4g
ImNxaSI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19DUUI6IHJldHVybiAiY3FiIjsK
LSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0NRTUFYOiByZXR1cm4gImNxbWF4IjsKLSAg
ICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0NRTUlOOiByZXR1cm4gImNxbWluIjsKKyAgICAg
ICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1BFUkNFTlRBR0U6IHJldHVybiAiJSJfczsKKyAgICAg
ICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0VNUzogcmV0dXJuICJlbSJfczsKKyAgICAgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX0VYUzogcmV0dXJuICJleCJfczsKKyAgICAgICAgY2FzZSBDU1NV
bml0VHlwZTo6Q1NTX1BYOiByZXR1cm4gInB4Il9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfQ006IHJldHVybiAiY20iX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19N
TTogcmV0dXJuICJtbSJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0lOOiByZXR1
cm4gImluIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfUFQ6IHJldHVybiAicHQi
X3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19QQzogcmV0dXJuICJwYyJfczsKKyAg
ICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RFRzogcmV0dXJuICJkZWciX3M7CisgICAgICAg
IGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19SQUQ6IHJldHVybiAicmFkIl9zOworICAgICAgICBjYXNl
IENTU1VuaXRUeXBlOjpDU1NfR1JBRDogcmV0dXJuICJncmFkIl9zOworICAgICAgICBjYXNlIENT
U1VuaXRUeXBlOjpDU1NfTVM6IHJldHVybiAibXMiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5
cGU6OkNTU19TOiByZXR1cm4gInMiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19I
WjogcmV0dXJuICJoeiJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0tIWjogcmV0
dXJuICJraHoiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WVzogcmV0dXJuICJ2
dyJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZIOiByZXR1cm4gInZoIl9zOwor
ICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVk1JTjogcmV0dXJuICJ2bWluIl9zOworICAg
ICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVk1BWDogcmV0dXJuICJ2bWF4Il9zOworICAgICAg
ICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVkI6IHJldHVybiAidmIiX3M7CisgICAgICAgIGNhc2Ug
Q1NTVW5pdFR5cGU6OkNTU19WSTogcmV0dXJuICJ2aSJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0
VHlwZTo6Q1NTX1NWVzogcmV0dXJuICJzdnciX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6
OkNTU19TVkg6IHJldHVybiAic3ZoIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1Nf
U1ZNSU46IHJldHVybiAic3ZtaW4iX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19T
Vk1BWDogcmV0dXJuICJzdm1heCJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NW
QjogcmV0dXJuICJzdmIiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVkk6IHJl
dHVybiAic3ZpIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZXOiByZXR1cm4g
Imx2dyJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWSDogcmV0dXJuICJsdmgi
X3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19MVk1JTjogcmV0dXJuICJsdm1pbiJf
czsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWTUFYOiByZXR1cm4gImx2bWF4Il9z
OworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZCOiByZXR1cm4gImx2YiJfczsKKyAg
ICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWSTogcmV0dXJuICJsdmkiX3M7CisgICAgICAg
IGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVlc6IHJldHVybiAiZHZ3Il9zOworICAgICAgICBjYXNl
IENTU1VuaXRUeXBlOjpDU1NfRFZIOiByZXR1cm4gImR2aCJfczsKKyAgICAgICAgY2FzZSBDU1NV
bml0VHlwZTo6Q1NTX0RWTUlOOiByZXR1cm4gImR2bWluIl9zOworICAgICAgICBjYXNlIENTU1Vu
aXRUeXBlOjpDU1NfRFZNQVg6IHJldHVybiAiZHZtYXgiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5p
dFR5cGU6OkNTU19EVkI6IHJldHVybiAiZHZiIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfRFZJOiByZXR1cm4gImR2aSJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NT
X0RQUFg6IHJldHVybiAiZHBweCJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1g6
IHJldHVybiAieCJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RQSTogcmV0dXJu
ICJkcGkiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EUENNOiByZXR1cm4gImRw
Y20iX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19GUjogcmV0dXJuICJmciJfczsK
KyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1E6IHJldHVybiAicSJfczsKKyAgICAgICAg
Y2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xIUzogcmV0dXJuICJsaCJfczsKKyAgICAgICAgY2FzZSBD
U1NVbml0VHlwZTo6Q1NTX1JMSFM6IHJldHVybiAicmxoIl9zOworICAgICAgICBjYXNlIENTU1Vu
aXRUeXBlOjpDU1NfVFVSTjogcmV0dXJuICJ0dXJuIl9zOworICAgICAgICBjYXNlIENTU1VuaXRU
eXBlOjpDU1NfUkVNUzogcmV0dXJuICJyZW0iX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6
OkNTU19DSFM6IHJldHVybiAiY2giX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19J
QzogcmV0dXJuICJpYyJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0NRVzogcmV0
dXJuICJjcXciX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19DUUg6IHJldHVybiAi
Y3FoIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfQ1FJOiByZXR1cm4gImNxaSJf
czsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0NRQjogcmV0dXJuICJjcWIiX3M7Cisg
ICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19DUU1BWDogcmV0dXJuICJjcW1heCJfczsKKyAg
ICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0NRTUlOOiByZXR1cm4gImNxbWluIl9zOwogCiAg
ICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19VTktOT1dOOgogICAgICAgICBjYXNlIENTU1Vu
aXRUeXBlOjpDU1NfTlVNQkVSOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N1
YmdyaWRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3ViZ3JpZFZhbHVlLmNwcApp
bmRleCA0ZjlkNGE2MDQ4YzYxNGM4ZDBmYWY1NDhiZmNjYmFhZTQ4YTBjODY1Li42YTc5ODU5ZGEy
N2RhZWFhYWE3YmNmNWY5OTEyZDNlNzdjNWJkMmJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTU3ViZ3JpZFZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3Vi
Z3JpZFZhbHVlLmNwcApAQCAtMzYsNyArMzYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBTdHJp
bmcgQ1NTU3ViZ3JpZFZhbHVlOjpjdXN0b21DU1NUZXh0KCkgY29uc3QKIHsKICAgICBpZiAoIWxl
bmd0aCgpKQotICAgICAgICByZXR1cm4gInN1YmdyaWQiOworICAgICAgICByZXR1cm4gInN1Ymdy
aWQiX3M7CiAgICAgcmV0dXJuICJzdWJncmlkICIgKyBDU1NWYWx1ZUxpc3Q6OmN1c3RvbUNTU1Rl
eHQoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0RPTUNTU1JlZ2lzdGVy
Q3VzdG9tUHJvcGVydHkuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0RPTUNTU1JlZ2lzdGVyQ3Vz
dG9tUHJvcGVydHkuY3BwCmluZGV4IGMyYzgyNTBhYjIyZDgzZWRkODIyMDAxMGI4MmY2MjUxZGU3
Yjg5ZjcuLjkyYTJjYmM0MGZkMzE2MWUwZjlmYzc1YjE4OGEyZDk4ZDNlNzE5MmEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01DU1NSZWdpc3RlckN1c3RvbVByb3BlcnR5LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9NQ1NTUmVnaXN0ZXJDdXN0b21Qcm9wZXJ0eS5jcHAK
QEAgLTQ0LDcgKzQ0LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogRXhjZXB0aW9uT3I8dm9pZD4g
RE9NQ1NTUmVnaXN0ZXJDdXN0b21Qcm9wZXJ0eTo6cmVnaXN0ZXJQcm9wZXJ0eShEb2N1bWVudCYg
ZG9jdW1lbnQsIGNvbnN0IERPTUNTU0N1c3RvbVByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRv
cikKIHsKICAgICBpZiAoIWlzQ3VzdG9tUHJvcGVydHlOYW1lKGRlc2NyaXB0b3IubmFtZSkpCi0g
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBTeW50YXhFcnJvciwgIlRoZSBuYW1lIG9mIHRoaXMg
cHJvcGVydHkgaXMgbm90IGEgY3VzdG9tIHByb3BlcnR5IG5hbWUuIiB9OworICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgU3ludGF4RXJyb3IsICJUaGUgbmFtZSBvZiB0aGlzIHByb3BlcnR5IGlz
IG5vdCBhIGN1c3RvbSBwcm9wZXJ0eSBuYW1lLiJfcyB9OwogCiAgICAgUmVmUHRyPENTU0N1c3Rv
bVByb3BlcnR5VmFsdWU+IGluaXRpYWxWYWx1ZTsKICAgICBpZiAoIWRlc2NyaXB0b3IuaW5pdGlh
bFZhbHVlLmlzRW1wdHkoKSkgewpAQCAtNTksNyArNTksNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBE
T01DU1NSZWdpc3RlckN1c3RvbVByb3BlcnR5OjpyZWdpc3RlclByb3BlcnR5KERvY3VtZW50JiBk
b2N1bQogICAgICAgICBDU1NQcm9wZXJ0eVBhcnNlcjo6Y29sbGVjdFBhcnNlZEN1c3RvbVByb3Bl
cnR5VmFsdWVEZXBlbmRlbmNpZXMoZGVzY3JpcHRvci5zeW50YXgsIGZhbHNlLCBkZXBlbmRlbmNp
ZXMsIHRva2VuaXplci50b2tlblJhbmdlKCksIHN0cmljdENTU1BhcnNlckNvbnRleHQoKSk7CiAK
ICAgICAgICAgaWYgKCFkZXBlbmRlbmNpZXMuaXNFbXB0eSgpKQotICAgICAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IFN5bnRheEVycm9yLCAiVGhlIGdpdmVuIGluaXRpYWwgdmFsdWUgbXVzdCBi
ZSBjb21wdXRhdGlvbmFsbHkgaW5kZXBlbmRlbnQuIiB9OworICAgICAgICAgICAgcmV0dXJuIEV4
Y2VwdGlvbiB7IFN5bnRheEVycm9yLCAiVGhlIGdpdmVuIGluaXRpYWwgdmFsdWUgbXVzdCBiZSBj
b21wdXRhdGlvbmFsbHkgaW5kZXBlbmRlbnQuIl9zIH07CiAKIAogICAgICAgICBTdHlsZTo6TWF0
Y2hSZXN1bHQgbWF0Y2hSZXN1bHQ7CkBAIC03MCwxOCArNzAsMTggQEAgRXhjZXB0aW9uT3I8dm9p
ZD4gRE9NQ1NTUmVnaXN0ZXJDdXN0b21Qcm9wZXJ0eTo6cmVnaXN0ZXJQcm9wZXJ0eShEb2N1bWVu
dCYgZG9jdW0KICAgICAgICAgaW5pdGlhbFZhbHVlID0gQ1NTUHJvcGVydHlQYXJzZXI6OnBhcnNl
VHlwZWRDdXN0b21Qcm9wZXJ0eVZhbHVlKGRlc2NyaXB0b3IubmFtZSwgZGVzY3JpcHRvci5zeW50
YXgsIHRva2VuaXplci50b2tlblJhbmdlKCksIGR1bW15QnVpbGRlci5zdGF0ZSgpLCBzdHJpY3RD
U1NQYXJzZXJDb250ZXh0KCkpOwogCiAgICAgICAgIGlmICghaW5pdGlhbFZhbHVlIHx8ICFpbml0
aWFsVmFsdWUtPmlzUmVzb2x2ZWQoKSkKLSAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBT
eW50YXhFcnJvciwgIlRoZSBnaXZlbiBpbml0aWFsIHZhbHVlIGRvZXMgbm90IHBhcnNlIGZvciB0
aGUgZ2l2ZW4gc3ludGF4LiIgfTsKKyAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBTeW50
YXhFcnJvciwgIlRoZSBnaXZlbiBpbml0aWFsIHZhbHVlIGRvZXMgbm90IHBhcnNlIGZvciB0aGUg
Z2l2ZW4gc3ludGF4LiJfcyB9OwogCiAgICAgICAgIGluaXRpYWxWYWx1ZS0+Y29sbGVjdERpcmVj
dENvbXB1dGF0aW9uYWxEZXBlbmRlbmNpZXMoZGVwZW5kZW5jaWVzKTsKICAgICAgICAgaW5pdGlh
bFZhbHVlLT5jb2xsZWN0RGlyZWN0Um9vdENvbXB1dGF0aW9uYWxEZXBlbmRlbmNpZXMoZGVwZW5k
ZW5jaWVzKTsKIAogICAgICAgICBpZiAoIWRlcGVuZGVuY2llcy5pc0VtcHR5KCkpCi0gICAgICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgU3ludGF4RXJyb3IsICJUaGUgZ2l2ZW4gaW5pdGlhbCB2
YWx1ZSBtdXN0IGJlIGNvbXB1dGF0aW9uYWxseSBpbmRlcGVuZGVudC4iIH07CisgICAgICAgICAg
ICByZXR1cm4gRXhjZXB0aW9uIHsgU3ludGF4RXJyb3IsICJUaGUgZ2l2ZW4gaW5pdGlhbCB2YWx1
ZSBtdXN0IGJlIGNvbXB1dGF0aW9uYWxseSBpbmRlcGVuZGVudC4iX3MgfTsKICAgICB9CiAKICAg
ICBDU1NSZWdpc3RlcmVkQ3VzdG9tUHJvcGVydHkgcHJvcGVydHkgeyBkZXNjcmlwdG9yLm5hbWUs
IGRlc2NyaXB0b3Iuc3ludGF4LCBkZXNjcmlwdG9yLmluaGVyaXRzLCBXVEZNb3ZlKGluaXRpYWxW
YWx1ZSkgfTsKICAgICBpZiAoIWRvY3VtZW50LnJlZ2lzdGVyQ1NTUHJvcGVydHkoV1RGTW92ZShw
cm9wZXJ0eSkpKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZE1vZGlmaWNhdGlv
bkVycm9yLCAiVGhpcyBwcm9wZXJ0eSBoYXMgYWxyZWFkeSBiZWVuIHJlZ2lzdGVyZWQuIiB9Owor
ICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yLCAiVGhp
cyBwcm9wZXJ0eSBoYXMgYWxyZWFkeSBiZWVuIHJlZ2lzdGVyZWQuIl9zIH07CiAKICAgICBkb2N1
bWVudC5zdHlsZVNjb3BlKCkuZGlkQ2hhbmdlU3R5bGVTaGVldEVudmlyb25tZW50KCk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01WYWx1ZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRlZENTU09NVmFsdWUuY3BwCmluZGV4IDIzMjUwODQ1
YWJhNmJjNTMyMmIzYjM3NjlmYjkzYzBlNjQwYzdkODIuLjUwNjdkMGU2YzYwMWJlMmExMzEzZjA4
OWE2NDBhYzFhNjI2YjliMzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNh
dGVkQ1NTT01WYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NP
TVZhbHVlLmNwcApAQCAtNzYsNyArNzYsNyBAQCBTdHJpbmcgRGVwcmVjYXRlZENTU09NVmFsdWU6
OmNzc1RleHQoKSBjb25zdAogICAgICAgICByZXR1cm4gZG93bmNhc3Q8RGVwcmVjYXRlZENTU09N
VmFsdWVMaXN0PigqdGhpcykuY3NzVGV4dCgpOwogICAgIH0KICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKLSAgICByZXR1cm4gIiI7CisgICAgcmV0dXJuIGVtcHR5U3RyaW5nKCk7CiB9CiAKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9Gb250RmFjZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvRm9udEZhY2UuY3BwCmluZGV4IGVmZmQ2MDdjMzQ2ZjliY2ZiYzljMjg4OWJmODMx
Njk0ZGEzNDAzMDUuLjRkNTExYjVlNjg1NDEzMDVkNDBjMWMzM2I3OTA5YTY1MDY1NTZmNjIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9Gb250RmFjZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL0ZvbnRGYWNlLmNwcApAQCAtMzc1LDcgKzM3NSw3IEBAIFN0cmluZyBGb250RmFj
ZTo6dW5pY29kZVJhbmdlKCkgY29uc3QKICAgICBtX2JhY2tpbmctPnVwZGF0ZVN0eWxlSWZOZWVk
ZWQoKTsKICAgICBjb25zdCBhdXRvJiByYW5nZXNXcmFwcGVkID0gbV9iYWNraW5nLT5yYW5nZXMo
KTsKICAgICBpZiAoIXJhbmdlc1dyYXBwZWQpCi0gICAgICAgIHJldHVybiAiVSswLTEwRkZGRiI7
CisgICAgICAgIHJldHVybiAiVSswLTEwRkZGRiJfczsKICAgICBhdXRvIHJhbmdlcyA9IHJhbmdl
c1dyYXBwZWQudmFsdWUoKTsKICAgICBpZiAoIXJhbmdlcy5zaXplKCkpCiAgICAgICAgIHJldHVy
biAiVSswLTEwRkZGRiJfczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1
ZXJ5RXhwcmVzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV4cHJlc3Np
b24uY3BwCmluZGV4IDA4YjcwNzA2NmJhNmRmYjIxMjdmY2RhOTA4ODkzNzkzNTEwODE0ZTguLjFi
ZGRiNTUzZThmYmEyYzIyNTNlNGQxNDU2Zjc4NjkzZjM2NjkzMjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXhwcmVzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY3NzL01lZGlhUXVlcnlFeHByZXNzaW9uLmNwcApAQCAtMjc0LDcgKzI3NCw3IEBAIE1lZGlh
UXVlcnlFeHByZXNzaW9uOjpNZWRpYVF1ZXJ5RXhwcmVzc2lvbihjb25zdCBTdHJpbmcmIGZlYXR1
cmUsIENTU1BhcnNlclRva2VuCiBTdHJpbmcgTWVkaWFRdWVyeUV4cHJlc3Npb246OnNlcmlhbGl6
ZSgpIGNvbnN0CiB7CiAgICAgaWYgKG1fc2VyaWFsaXphdGlvbkNhY2hlLmlzTnVsbCgpKQotICAg
ICAgICBtX3NlcmlhbGl6YXRpb25DYWNoZSA9IG1ha2VTdHJpbmcoJygnLCBtX21lZGlhRmVhdHVy
ZS5jb252ZXJ0VG9BU0NJSUxvd2VyY2FzZSgpLCBtX3ZhbHVlID8gIjogIiA6ICIiLCBtX3ZhbHVl
ID8gbV92YWx1ZS0+Y3NzVGV4dCgpIDogIiIsICcpJyk7CisgICAgICAgIG1fc2VyaWFsaXphdGlv
bkNhY2hlID0gbWFrZVN0cmluZygnKCcsIG1fbWVkaWFGZWF0dXJlLmNvbnZlcnRUb0FTQ0lJTG93
ZXJjYXNlKCksIG1fdmFsdWUgPyAiOiAiIDogIiIsIG1fdmFsdWUgPyBtX3ZhbHVlLT5jc3NUZXh0
KCkgOiBlbXB0eVN0cmluZygpLCAnKScpOwogICAgIHJldHVybiBtX3NlcmlhbGl6YXRpb25DYWNo
ZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcAppbmRleCBmMDQxM2Mx
N2ZmZmEyODM4MTFmZTI1MTdmZGZkNjFiY2RjZjhiMjU5Li5hOTIzYzdhNGY5NGZjZjMyYjA3Zjgx
MTNhMmNiZWEyNGI5ZGY4OTA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQ
cm9wZXJ0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNw
cApAQCAtNzY4LDcgKzc2OCw3IEBAIFN0cmluZyBTdHlsZVByb3BlcnRpZXM6OmdldExheWVyZWRT
aG9ydGhhbmRWYWx1ZShjb25zdCBTdHlsZVByb3BlcnR5U2hvcnRoYW5kJiBzCiAKICAgICAgICAg
ICAgICAgICAgICAgICAgIGF1dG8gbWFza0lkID0gZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+
KCp2YWx1ZSkudmFsdWVJRCgpOwogICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBvcmlnaW5J
ZCA9IGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPigqb3JpZ2luVmFsdWUpLnZhbHVlSUQoKTsK
LSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBtYXNrSWQgPT0gb3JpZ2luSWQgJiYgKCFp
c0NTU1dpZGVWYWx1ZUtleXdvcmQoZ2V0VmFsdWVOYW1lKG1hc2tJZCkpIHx8IHZhbHVlLT5pc0lt
cGxpY2l0SW5pdGlhbFZhbHVlKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1h
c2tJZCA9PSBvcmlnaW5JZCAmJiAoIWlzQ1NTV2lkZVZhbHVlS2V5d29yZChTdHJpbmdWaWV3IHsg
Z2V0VmFsdWVOYW1lKG1hc2tJZCkgfSkgfHwgdmFsdWUtPmlzSW1wbGljaXRJbml0aWFsVmFsdWUo
KSk7CiAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgaWYgKHByb3Bl
cnR5ID09IENTU1Byb3BlcnR5TWFza09yaWdpbikgewogICAgICAgICAgICAgICAgICAgICAgICAg
Ly8gV2UgY2FuIHNraXAgc2VyaWFsaXppbmcgbWFzay1vcmlnaW4gaWYgaXQncyB0aGUgaW5pdGlh
bCB2YWx1ZSwgYnV0IG9ubHkgaWYgd2UncmUgYWxzbyBnb2luZyB0byBza2lwIHNlcmlhbGl6aW5n
CkBAIC0xMTU0LDcgKzExNTQsNyBAQCBib29sIE11dGFibGVTdHlsZVByb3BlcnRpZXM6OnNldEN1
c3RvbVByb3BlcnR5KGNvbnN0IERvY3VtZW50KiBkb2N1bWVudCwgY29uc3QgUwogCiAgICAgcGFy
c2VyQ29udGV4dC5tb2RlID0gY3NzUGFyc2VyTW9kZSgpOwogCi0gICAgU3RyaW5nIHN5bnRheCA9
ICIqIjsKKyAgICBTdHJpbmcgc3ludGF4ID0gIioiX3M7CiAgICAgYXV0byogcmVnaXN0ZXJlZCA9
IGRvY3VtZW50ID8gZG9jdW1lbnQtPmdldENTU1JlZ2lzdGVyZWRDdXN0b21Qcm9wZXJ0eVNldCgp
LmdldChwcm9wZXJ0eU5hbWUpIDogbnVsbHB0cjsKIAogICAgIGlmIChyZWdpc3RlcmVkKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL21ha2V2YWx1ZXMucGwgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvbWFrZXZhbHVlcy5wbAppbmRleCAwZjgyMTlkNGNjYjUxZWNhNTI1ZDgyOWE3NjA2YjI3
YjBmYTI3MzAzLi5hZTliMzI3ODMyNzI3MzczYzRjZTdmMDIzMzA1MjEzNmIyZDk4M2Q1IDEwMDc1
NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvbWFrZXZhbHVlcy5wbAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvbWFrZXZhbHVlcy5wbApAQCAtMTExLDE2ICsxMTEsMTYgQEAgZm9yIG15ICRpICgw
IC4uICQjbmFtZXMpIHsKIAogcHJpbnQgR1BFUkYgPDwgIkVPRiI7CiAlJQotc3RhdGljIGNvbnN0
IGNoYXIqIGNvbnN0IHZhbHVlTGlzdFtdID0gewotICAgICIiLAorc3RhdGljIGNvbnN0ZXhwciBB
U0NJSUxpdGVyYWwgdmFsdWVMaXN0W10gPSB7CisgICAgIiJfcywKIEVPRgogCiBmb3JlYWNoIG15
ICRuYW1lIChAbmFtZXMpIHsKLSAgcHJpbnQgR1BFUkYgIiAgICBcIiIgLiAkbmFtZSAuICJcIixc
biI7CisgIHByaW50IEdQRVJGICIgICAgXCIiIC4gJG5hbWUgLiAiXCJfcyxcbiI7CiB9CiAKIHBy
aW50IEdQRVJGIDw8ICJFT0YiOwotICAgIDAKKyAgICBBU0NJSUxpdGVyYWw6Om51bGwoKQogfTsK
IAogY29uc3QgVmFsdWUqIGZpbmRWYWx1ZShjb25zdCBjaGFyKiBzdHIsIHVuc2lnbmVkIGludCBs
ZW4pCkBAIC0xMjgsMTAgKzEyOCwxMCBAQCBjb25zdCBWYWx1ZSogZmluZFZhbHVlKGNvbnN0IGNo
YXIqIHN0ciwgdW5zaWduZWQgaW50IGxlbikKICAgICByZXR1cm4gQ1NTVmFsdWVLZXl3b3Jkc0hh
c2g6OmZpbmRWYWx1ZUltcGwoc3RyLCBsZW4pOwogfQogCi1jb25zdCBjaGFyKiBnZXRWYWx1ZU5h
bWUodW5zaWduZWQgc2hvcnQgaWQpCitBU0NJSUxpdGVyYWwgZ2V0VmFsdWVOYW1lKHVuc2lnbmVk
IHNob3J0IGlkKQogewogICAgIGlmIChpZCA+IGxhc3RDU1NWYWx1ZUtleXdvcmQpCi0gICAgICAg
IHJldHVybiAwOworICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsOjpudWxsKCk7CiAgICAgcmV0
dXJuIHZhbHVlTGlzdFtpZF07CiB9CiAKQEAgLTIwMyw3ICsyMDMsNyBAQCBwcmludCBIRUFERVIg
ImNvbnN0IGludCBsYXN0Q1NTVmFsdWVLZXl3b3JkID0gJGxhc3Q7XG4iOwogcHJpbnQgSEVBREVS
ICJjb25zdCBzaXplX3QgbWF4Q1NTVmFsdWVLZXl3b3JkTGVuZ3RoID0gIiAuICRtYXhMZW4gLiAi
O1xuIjsKIHByaW50IEhFQURFUiA8PCAiRU9GIjsKIAotY29uc3QgY2hhciogZ2V0VmFsdWVOYW1l
KHVuc2lnbmVkIHNob3J0IGlkKTsKK0FTQ0lJTGl0ZXJhbCBnZXRWYWx1ZU5hbWUodW5zaWduZWQg
c2hvcnQgaWQpOwogY29uc3QgQXRvbVN0cmluZyYgZ2V0VmFsdWVOYW1lQXRvbVN0cmluZyhDU1NW
YWx1ZUlEIGlkKTsKIFN0cmluZyBnZXRWYWx1ZU5hbWVTdHJpbmcoQ1NTVmFsdWVJRCBpZCk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvTWVkaWFRdWVyeVBhcnNlci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL01lZGlhUXVlcnlQYXJzZXIuY3BwCmluZGV4
IGNiNWEwOGFhM2ViN2Q2YjhjODI1N2RjODQ4ZGNlYzExMzQxOWM5Y2QuLjYyYzAxZTVhMzI3NzQy
MjQzNjYyZmViYzIxZWRlMDgwZDkyMzY1OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9wYXJzZXIvTWVkaWFRdWVyeVBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3Bh
cnNlci9NZWRpYVF1ZXJ5UGFyc2VyLmNwcApAQCAtMjQ3LDcgKzI0Nyw3IEBAIHZvaWQgTWVkaWFR
dWVyeVBhcnNlcjo6c2tpcFVudGlsQ29tbWEoQ1NTUGFyc2VyVG9rZW5UeXBlIHR5cGUsIGNvbnN0
IENTU1BhcnNlclRvCiAgICAgaWYgKCh0eXBlID09IENvbW1hVG9rZW4gJiYgIW1fYmxvY2tXYXRj
aGVyLmJsb2NrTGV2ZWwoKSkgfHwgdHlwZSA9PSBFT0ZUb2tlbikgewogICAgICAgICBtX3N0YXRl
ID0gUmVhZFJlc3RyaWN0b3I7CiAgICAgICAgIG1fbWVkaWFRdWVyeURhdGEuY2xlYXIoKTsKLSAg
ICAgICAgTWVkaWFRdWVyeSBxdWVyeSA9IE1lZGlhUXVlcnkoTWVkaWFRdWVyeTo6Tm90LCAiYWxs
IiwgVmVjdG9yPE1lZGlhUXVlcnlFeHByZXNzaW9uPigpKTsKKyAgICAgICAgTWVkaWFRdWVyeSBx
dWVyeSA9IE1lZGlhUXVlcnkoTWVkaWFRdWVyeTo6Tm90LCAiYWxsIl9zLCBWZWN0b3I8TWVkaWFR
dWVyeUV4cHJlc3Npb24+KCkpOwogICAgICAgICBtX3F1ZXJ5U2V0LT5hZGRNZWRpYVF1ZXJ5KFdU
Rk1vdmUocXVlcnkpKTsKICAgICB9CiB9CkBAIC0zMDksNyArMzA5LDcgQEAgUmVmUHRyPE1lZGlh
UXVlcnlTZXQ+IE1lZGlhUXVlcnlQYXJzZXI6OnBhcnNlSW50ZXJuYWwoQ1NTUGFyc2VyVG9rZW5S
YW5nZSYgcmFuZ2UKICAgICAgICAgcHJvY2Vzc1Rva2VuKENTU1BhcnNlclRva2VuKEVPRlRva2Vu
KSwgcmFuZ2UpOwogCiAgICAgaWYgKG1fc3RhdGUgIT0gUmVhZEFuZCAmJiBtX3N0YXRlICE9IFJl
YWRSZXN0cmljdG9yICYmIG1fc3RhdGUgIT0gRG9uZSAmJiBtX3N0YXRlICE9IFJlYWRNZWRpYU5v
dCkgewotICAgICAgICBNZWRpYVF1ZXJ5IHF1ZXJ5ID0gTWVkaWFRdWVyeShNZWRpYVF1ZXJ5OjpO
b3QsICJhbGwiLCBWZWN0b3I8TWVkaWFRdWVyeUV4cHJlc3Npb24+KCkpOworICAgICAgICBNZWRp
YVF1ZXJ5IHF1ZXJ5ID0gTWVkaWFRdWVyeShNZWRpYVF1ZXJ5OjpOb3QsICJhbGwiX3MsIFZlY3Rv
cjxNZWRpYVF1ZXJ5RXhwcmVzc2lvbj4oKSk7CiAgICAgICAgIG1fcXVlcnlTZXQtPmFkZE1lZGlh
UXVlcnkoV1RGTW92ZShxdWVyeSkpOwogICAgIH0gZWxzZSBpZiAobV9tZWRpYVF1ZXJ5RGF0YS5j
dXJyZW50TWVkaWFRdWVyeUNoYW5nZWQoKSkKICAgICAgICAgY29tbWl0TWVkaWFRdWVyeSgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9TaXplc0F0dHJpYnV0ZVBhcnNl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL1NpemVzQXR0cmlidXRlUGFyc2VyLmNw
cAppbmRleCBkNmU0OGEyM2ZmOTdlMGE4YjczNmQ4MDM3OTc0MjQ3NTA1YzM3ZmY4Li40ZGE0MDE2
ZTYwNjU3ZmIzNzQ1MmVlMWI5MWE2MWQ1NmUwODg0ODg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvcGFyc2VyL1NpemVzQXR0cmlidXRlUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvcGFyc2VyL1NpemVzQXR0cmlidXRlUGFyc2VyLmNwcApAQCAtMTEyLDcgKzExMiw3
IEBAIGJvb2wgU2l6ZXNBdHRyaWJ1dGVQYXJzZXI6Om1lZGlhQ29uZGl0aW9uTWF0Y2hlcyhjb25z
dCBNZWRpYVF1ZXJ5U2V0JiBtZWRpYUNvbmRpCiAgICAgaWYgKCFyZW5kZXJlcikKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgIGF1dG8mIHN0eWxlID0gcmVuZGVyZXItPnN0eWxlKCk7Ci0gICAg
cmV0dXJuIE1lZGlhUXVlcnlFdmFsdWF0b3IgeyAic2NyZWVuIiwgbV9kb2N1bWVudCwgJnN0eWxl
IH0uZXZhbHVhdGUobWVkaWFDb25kaXRpb24sIG1fbWVkaWFRdWVyeUR5bmFtaWNSZXN1bHRzKTsK
KyAgICByZXR1cm4gTWVkaWFRdWVyeUV2YWx1YXRvciB7ICJzY3JlZW4iX3MsIG1fZG9jdW1lbnQs
ICZzdHlsZSB9LmV2YWx1YXRlKG1lZGlhQ29uZGl0aW9uLCBtX21lZGlhUXVlcnlEeW5hbWljUmVz
dWx0cyk7CiB9CiAKIGJvb2wgU2l6ZXNBdHRyaWJ1dGVQYXJzZXI6OnBhcnNlKENTU1BhcnNlclRv
a2VuUmFuZ2UgcmFuZ2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9D
U1NOdW1lcmljRmFjdG9yeS5oIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTTnVtZXJp
Y0ZhY3RvcnkuaAppbmRleCA4MjM1MGI5OWQ4NzRiMGZhOTA2NWY2NGRkZDU5OTNkZDZkODMwYjM5
Li4zNTM2MmIyMTZkMDJiYjcyM2I3ODZhMmM3MjEzM2QxNTYzYmIyMGYwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NOdW1lcmljRmFjdG9yeS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU051bWVyaWNGYWN0b3J5LmgKQEAgLTQzLDY0ICs0Myw2
NCBAQCBjbGFzcyBDU1NOdW1lcmljRmFjdG9yeSBmaW5hbCA6IHB1YmxpYyBTdXBwbGVtZW50PERP
TUNTU05hbWVzcGFjZT4gewogcHVibGljOgogICAgIGV4cGxpY2l0IENTU051bWVyaWNGYWN0b3J5
KERPTUNTU05hbWVzcGFjZSYpIHsgfQogCi0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IG51
bWJlcihkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAi
bnVtYmVyIik7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gcGVyY2VudChkb3VibGUg
dmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAicGVyY2VudCIpOyB9
CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IG51bWJlcihkb3VibGUgdmFsdWUpIHsgcmV0
dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAibnVtYmVyIl9zKTsgfQorICAgIHN0YXRp
YyBSZWY8Q1NTVW5pdFZhbHVlPiBwZXJjZW50KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5p
dFZhbHVlOjpjcmVhdGUodmFsdWUsICJwZXJjZW50Il9zKTsgfQogCiAKICAgICAvLyA8bGVuZ3Ro
PgotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBlbShkb3VibGUgdmFsdWUpIHsgcmV0dXJu
IENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiZW0iKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NT
VW5pdFZhbHVlPiBleChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRl
KHZhbHVlLCAiZXgiKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBjaChkb3VibGUg
dmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiY2giKTsgfQotICAg
IHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBpYyhkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1Vu
aXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiaWMiKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZh
bHVlPiByZW0oZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1
ZSwgInJlbSIpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGxoKGRvdWJsZSB2YWx1
ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJsaCIpOyB9Ci0gICAgc3Rh
dGljIFJlZjxDU1NVbml0VmFsdWU+IHJsaChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRW
YWx1ZTo6Y3JlYXRlKHZhbHVlLCAicmxoIik7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1
ZT4gdncoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwg
InZ3Iik7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gdmgoZG91YmxlIHZhbHVlKSB7
IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInZoIik7IH0KLSAgICBzdGF0aWMg
UmVmPENTU1VuaXRWYWx1ZT4gdmkoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6
OmNyZWF0ZSh2YWx1ZSwgInZpIik7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gdmIo
ZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInZiIik7
IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gdm1pbihkb3VibGUgdmFsdWUpIHsgcmV0
dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAidm1pbiIpOyB9Ci0gICAgc3RhdGljIFJl
ZjxDU1NVbml0VmFsdWU+IHZtYXgoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6
OmNyZWF0ZSh2YWx1ZSwgInZtYXgiKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBj
bShkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiY20i
KTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBtbShkb3VibGUgdmFsdWUpIHsgcmV0
dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAibW0iKTsgfQotICAgIHN0YXRpYyBSZWY8
Q1NTVW5pdFZhbHVlPiBxKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVh
dGUodmFsdWUsICJxIik7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gaW4oZG91Ymxl
IHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImluIik7IH0KLSAg
ICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gcHQoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NV
bml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInB0Iik7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRW
YWx1ZT4gcGMoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1
ZSwgInBjIik7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gcHgoZG91YmxlIHZhbHVl
KSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInB4Iik7IH0KLSAgICBzdGF0
aWMgUmVmPENTU1VuaXRWYWx1ZT4gY3F3KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZh
bHVlOjpjcmVhdGUodmFsdWUsICJjcXciKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVl
PiBjcWgoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwg
ImNxaCIpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGNxaShkb3VibGUgdmFsdWUp
IHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiY3FpIik7IH0KLSAgICBzdGF0
aWMgUmVmPENTU1VuaXRWYWx1ZT4gY3FiKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZh
bHVlOjpjcmVhdGUodmFsdWUsICJjcWIiKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVl
PiBjcW1pbihkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVl
LCAiY3FtaW4iKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBjcW1heChkb3VibGUg
dmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiY3FtYXgiKTsgfQor
ICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBlbShkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENT
U1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiZW0iX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NV
bml0VmFsdWU+IGV4KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUo
dmFsdWUsICJleCJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gY2goZG91Ymxl
IHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImNoIl9zKTsgfQor
ICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBpYyhkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENT
U1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiaWMiX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NV
bml0VmFsdWU+IHJlbShkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRl
KHZhbHVlLCAicmVtIl9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBsaChkb3Vi
bGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAibGgiX3MpOyB9
CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHJsaChkb3VibGUgdmFsdWUpIHsgcmV0dXJu
IENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAicmxoIl9zKTsgfQorICAgIHN0YXRpYyBSZWY8
Q1NTVW5pdFZhbHVlPiB2dyhkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3Jl
YXRlKHZhbHVlLCAidnciX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHZoKGRv
dWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJ2aCJfcyk7
IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gdmkoZG91YmxlIHZhbHVlKSB7IHJldHVy
biBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInZpIl9zKTsgfQorICAgIHN0YXRpYyBSZWY8
Q1NTVW5pdFZhbHVlPiB2Yihkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3Jl
YXRlKHZhbHVlLCAidmIiX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHZtaW4o
ZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInZtaW4i
X3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHZtYXgoZG91YmxlIHZhbHVlKSB7
IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInZtYXgiX3MpOyB9CisgICAgc3Rh
dGljIFJlZjxDU1NVbml0VmFsdWU+IGNtKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZh
bHVlOjpjcmVhdGUodmFsdWUsICJjbSJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1
ZT4gbW0oZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwg
Im1tIl9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBxKGRvdWJsZSB2YWx1ZSkg
eyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJxIl9zKTsgfQorICAgIHN0YXRp
YyBSZWY8Q1NTVW5pdFZhbHVlPiBpbihkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1
ZTo6Y3JlYXRlKHZhbHVlLCAiaW4iX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+
IHB0KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJw
dCJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gcGMoZG91YmxlIHZhbHVlKSB7
IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInBjIl9zKTsgfQorICAgIHN0YXRp
YyBSZWY8Q1NTVW5pdFZhbHVlPiBweChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1
ZTo6Y3JlYXRlKHZhbHVlLCAicHgiX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+
IGNxdyhkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAi
Y3F3Il9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBjcWgoZG91YmxlIHZhbHVl
KSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImNxaCJfcyk7IH0KKyAgICBz
dGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gY3FpKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5p
dFZhbHVlOjpjcmVhdGUodmFsdWUsICJjcWkiX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0
VmFsdWU+IGNxYihkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZh
bHVlLCAiY3FiIl9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBjcW1pbihkb3Vi
bGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiY3FtaW4iX3Mp
OyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGNxbWF4KGRvdWJsZSB2YWx1ZSkgeyBy
ZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJjcW1heCJfcyk7IH0KIAogCiAgICAg
Ly8gPGFuZ2xlPgotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBkZWcoZG91YmxlIHZhbHVl
KSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImRlZyIpOyB9Ci0gICAgc3Rh
dGljIFJlZjxDU1NVbml0VmFsdWU+IGdyYWQoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0
VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImdyYWQiKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZh
bHVlPiByYWQoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1
ZSwgInJhZCIpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHR1cm4oZG91YmxlIHZh
bHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInR1cm4iKTsgfQorICAg
IHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBkZWcoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NV
bml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImRlZyJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1Vu
aXRWYWx1ZT4gZ3JhZChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRl
KHZhbHVlLCAiZ3JhZCJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gcmFkKGRv
dWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJyYWQiX3Mp
OyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHR1cm4oZG91YmxlIHZhbHVlKSB7IHJl
dHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInR1cm4iX3MpOyB9CiAKIAogICAgIC8v
IDx0aW1lPgotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBzKGRvdWJsZSB2YWx1ZSkgeyBy
ZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJzIik7IH0KLSAgICBzdGF0aWMgUmVm
PENTU1VuaXRWYWx1ZT4gbXMoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNy
ZWF0ZSh2YWx1ZSwgIm1zIik7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gcyhkb3Vi
bGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAicyJfcyk7IH0K
KyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gbXMoZG91YmxlIHZhbHVlKSB7IHJldHVybiBD
U1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgIm1zIl9zKTsgfQogCiAKICAgICAvLyA8ZnJlcXVl
bmN5PgotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBoeihkb3VibGUgdmFsdWUpIHsgcmV0
dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiaHoiKTsgfQotICAgIHN0YXRpYyBSZWY8
Q1NTVW5pdFZhbHVlPiBrSHooZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNy
ZWF0ZSh2YWx1ZSwgImtoeiIpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGh6KGRv
dWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJoeiJfcyk7
IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4ga0h6KGRvdWJsZSB2YWx1ZSkgeyByZXR1
cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJraHoiX3MpOyB9CiAKIAogICAgIC8vIDxy
ZXNvbHV0aW9uPgotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBkcGkoZG91YmxlIHZhbHVl
KSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImRwaSIpOyB9Ci0gICAgc3Rh
dGljIFJlZjxDU1NVbml0VmFsdWU+IGRwY20oZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0
VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImRwY20iKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZh
bHVlPiBkcHB4KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFs
dWUsICJkcHB4Iik7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gZHBpKGRvdWJsZSB2
YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJkcGkiX3MpOyB9Cisg
ICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGRwY20oZG91YmxlIHZhbHVlKSB7IHJldHVybiBD
U1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImRwY20iX3MpOyB9CisgICAgc3RhdGljIFJlZjxD
U1NVbml0VmFsdWU+IGRwcHgoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNy
ZWF0ZSh2YWx1ZSwgImRwcHgiX3MpOyB9CiAKIAogICAgIC8vIDxmbGV4PgotICAgIHN0YXRpYyBS
ZWY8Q1NTVW5pdFZhbHVlPiBmcihkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6
Y3JlYXRlKHZhbHVlLCAiZnIiKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBmcihk
b3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiZnIiX3Mp
OyB9CiAKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9t
L0NTU051bWVyaWNWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NOdW1l
cmljVmFsdWUuY3BwCmluZGV4IGNlZTE3Yzg3MDhmOGNiNjM4YWUxMTNhMzRlNzEyYzU0MTIzMTBj
YWYuLmVkN2JmOTgzOGIyODM2ZjAwZmRkNWE5NWE0OWI3YjBjMDM2NjZlZmEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU051bWVyaWNWYWx1ZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTTnVtZXJpY1ZhbHVlLmNwcApAQCAtMTU3LDcgKzE1
Nyw3IEBAIFJlZjxDU1NOdW1lcmljVmFsdWU+IENTU051bWVyaWNWYWx1ZTo6bXVsdGlwbHlJbnRl
cm5hbChWZWN0b3I8UmVmPENTU051bWVyaWNWYWx1CiAgICAgICAgICAgICBkb3VibGUgcHJvZHVj
dCA9IDE7CiAgICAgICAgICAgICBmb3IgKGNvbnN0IFJlZjxDU1NOdW1lcmljVmFsdWU+JiB2YWx1
ZSA6IHZhbHVlcykKICAgICAgICAgICAgICAgICBwcm9kdWN0ICo9IGRvd25jYXN0PENTU1VuaXRW
YWx1ZT4odmFsdWUuZ2V0KCkpLnZhbHVlKCk7Ci0gICAgICAgICAgICBTdHJpbmcgdW5pdCA9IG5v
bk51bWJlclVuaXRJbmRleCA/IGRvd25jYXN0PENTU1VuaXRWYWx1ZT4odmFsdWVzWypub25OdW1i
ZXJVbml0SW5kZXhdLmdldCgpKS51bml0KCkgOiAibnVtYmVyIjsKKyAgICAgICAgICAgIFN0cmlu
ZyB1bml0ID0gbm9uTnVtYmVyVW5pdEluZGV4ID8gZG93bmNhc3Q8Q1NTVW5pdFZhbHVlPih2YWx1
ZXNbKm5vbk51bWJlclVuaXRJbmRleF0uZ2V0KCkpLnVuaXQoKSA6ICJudW1iZXIiX3M7CiAgICAg
ICAgICAgICByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUocHJvZHVjdCwgdW5pdCk7CiAgICAg
ICAgIH0KICAgICB9CkBAIC0yMzUsNyArMjM1LDcgQEAgUmVmPENTU1VuaXRWYWx1ZT4gQ1NTTnVt
ZXJpY1ZhbHVlOjp0byhTdHJpbmcmJiB1bml0KQogICAgIFVOVVNFRF9QQVJBTSh1bml0KTsKICAg
ICAvLyBodHRwczovL2RyYWZ0cy5jc3MtaG91ZGluaS5vcmcvY3NzLXR5cGVkLW9tLyNkb20tY3Nz
bnVtZXJpY3ZhbHVlLXRvCiAgICAgLy8gRklYTUU6IGFkZCBpbXBsLgotICAgIHJldHVybiBDU1NV
bml0VmFsdWU6OmNyZWF0ZSgxLjAsICJudW1iZXIiKTsKKyAgICByZXR1cm4gQ1NTVW5pdFZhbHVl
OjpjcmVhdGUoMS4wLCAibnVtYmVyIl9zKTsKIH0KIAogUmVmPENTU01hdGhTdW0+IENTU051bWVy
aWNWYWx1ZTo6dG9TdW0oRml4ZWRWZWN0b3I8U3RyaW5nPiYmIHVuaXRzKQpAQCAtMjU4LDcgKzI1
OCw3IEBAIEV4Y2VwdGlvbk9yPFJlZjxDU1NOdW1lcmljVmFsdWU+PiBDU1NOdW1lcmljVmFsdWU6
OnBhcnNlKFN0cmluZyYmIGNzc1RleHQpCiAgICAgVU5VU0VEX1BBUkFNKGNzc1RleHQpOwogICAg
IC8vIGh0dHBzOi8vZHJhZnRzLmNzcy1ob3VkaW5pLm9yZy9jc3MtdHlwZWQtb20vI2RvbS1jc3Nu
dW1lcmljdmFsdWUtcGFyc2UKICAgICAvLyBGSVhNRTogYWRkIGltcGwuCi0gICAgcmV0dXJuIEV4
Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yLCAiTm90IGltcGxlbWVudGVkIEVycm9yIiB9Owor
ICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciwgIk5vdCBpbXBsZW1lbnRl
ZCBFcnJvciJfcyB9OwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NTdHlsZVZhbHVlRmFjdG9yeS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NTdHlsZVZhbHVlRmFjdG9yeS5jcHAKaW5kZXggOWZj
NzBmYjEwMjcxNjg3MTQ3NDUzNjY1MmQ0Y2MxMzEwNGRmMzQyNC4uMGFiYjNhNDgyODUyZGJkNGRk
MzE3OGYyNDk4MzJmNTg3OGI3MWJhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3R5
cGVkb20vQ1NTU3R5bGVWYWx1ZUZhY3RvcnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90
eXBlZG9tL0NTU1N0eWxlVmFsdWVGYWN0b3J5LmNwcApAQCAtMjY0LDcgKzI2NCw3IEBAIEV4Y2Vw
dGlvbk9yPFJlZjxDU1NTdHlsZVZhbHVlPj4gQ1NTU3R5bGVWYWx1ZUZhY3Rvcnk6OnJlaWZ5VmFs
dWUoUmVmPENTU1ZhbHVlPiYmCiAgICAgICAgIC8vIFJlZmVyIHRvIExheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy10eXBlZC1vbS90aGUtc3R5bGVwcm9w
ZXJ0eW1hcC9pbmxpbmUvZ2V0Lmh0bWwKICAgICAgICAgYXV0byB2YWx1ZUxpc3QgPSBkb3duY2Fz
dDxDU1NWYWx1ZUxpc3Q+KGNzc1ZhbHVlLnB0cigpKTsKICAgICAgICAgaWYgKCF2YWx1ZUxpc3Qt
Pmxlbmd0aCgpKQotICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIlRo
ZSBDU1NWYWx1ZUxpc3Qgc2hvdWxkIG5vdCBiZSBlbXB0eS4iIH07CisgICAgICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiVGhlIENTU1ZhbHVlTGlzdCBzaG91bGQgbm90IGJl
IGVtcHR5LiJfcyB9OwogICAgICAgICAKICAgICAgICAgcmV0dXJuIHJlaWZ5VmFsdWUoV1RGTW92
ZSgqdmFsdWVMaXN0LT5iZWdpbigpKSwgZG9jdW1lbnQpOwogICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvSFRNTENvbnZlcnRlci5tbSBiL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvY29jb2EvSFRNTENvbnZlcnRlci5tbQppbmRleCBiNjdhNjM0OTczN2I4NWJh
YzI5MzJjZTE4YWI4M2Y3M2Y4MTMxYWIzLi4yZDUzOWVkMmM3MWYyMmJmMjhiZjlkZjg1NDRhOWJl
OTg4ZWE4N2VmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0hUTUxD
b252ZXJ0ZXIubW0KKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9IVE1MQ29udmVy
dGVyLm1tCkBAIC01OTYsNyArNTk2LDcgQEAgU3RyaW5nIEhUTUxDb252ZXJ0ZXJDYWNoZXM6OnBy
b3BlcnR5VmFsdWVGb3JOb2RlKE5vZGUmIG5vZGUsIENTU1Byb3BlcnR5SUQgcHJvcGUKICAgICBz
d2l0Y2ggKHByb3BlcnR5SWQpIHsKICAgICBjYXNlIENTU1Byb3BlcnR5RGlzcGxheToKICAgICAg
ICAgaWYgKGVsZW1lbnQuaGFzVGFnTmFtZShoZWFkVGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUo
c2NyaXB0VGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoYXBwbGV0VGFnKSB8fCBlbGVtZW50Lmhh
c1RhZ05hbWUobm9mcmFtZXNUYWcpKQotICAgICAgICAgICAgcmV0dXJuICJub25lIjsKKyAgICAg
ICAgICAgIHJldHVybiAibm9uZSJfczsKICAgICAgICAgZWxzZSBpZiAoZWxlbWVudC5oYXNUYWdO
YW1lKGFkZHJlc3NUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZShibG9ja3F1b3RlVGFnKSB8fCBl
bGVtZW50Lmhhc1RhZ05hbWUoYm9keVRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKGNlbnRlclRh
ZykKICAgICAgICAgICAgICB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoZGRUYWcpIHx8IGVsZW1lbnQu
aGFzVGFnTmFtZShkaXJUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZShkaXZUYWcpIHx8IGVsZW1l
bnQuaGFzVGFnTmFtZShkbFRhZykKICAgICAgICAgICAgICB8fCBlbGVtZW50Lmhhc1RhZ05hbWUo
ZHRUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZShmaWVsZHNldFRhZykgfHwgZWxlbWVudC5oYXNU
YWdOYW1lKGZvcm1UYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZShmcmFtZVRhZykKQEAgLTYwNCw2
MiArNjA0LDYyIEBAIFN0cmluZyBIVE1MQ29udmVydGVyQ2FjaGVzOjpwcm9wZXJ0eVZhbHVlRm9y
Tm9kZShOb2RlJiBub2RlLCBDU1NQcm9wZXJ0eUlEIHByb3BlCiAgICAgICAgICAgICAgfHwgZWxl
bWVudC5oYXNUYWdOYW1lKGgyVGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoaDNUYWcpIHx8IGVs
ZW1lbnQuaGFzVGFnTmFtZShoNFRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKGg1VGFnKQogICAg
ICAgICAgICAgIHx8IGVsZW1lbnQuaGFzVGFnTmFtZShoNlRhZykgfHwgZWxlbWVudC5oYXNUYWdO
YW1lKGlmcmFtZVRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKG1lbnVUYWcpIHx8IGVsZW1lbnQu
aGFzVGFnTmFtZShub3NjcmlwdFRhZykKICAgICAgICAgICAgICB8fCBlbGVtZW50Lmhhc1RhZ05h
bWUob2xUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZShwVGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05h
bWUocHJlVGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUodWxUYWcpKQotICAgICAgICAgICAgcmV0
dXJuICJibG9jayI7CisgICAgICAgICAgICByZXR1cm4gImJsb2NrIl9zOwogICAgICAgICBlbHNl
IGlmIChlbGVtZW50Lmhhc1RhZ05hbWUobGlUYWcpKQotICAgICAgICAgICAgcmV0dXJuICJsaXN0
LWl0ZW0iOworICAgICAgICAgICAgcmV0dXJuICJsaXN0LWl0ZW0iX3M7CiAgICAgICAgIGVsc2Ug
aWYgKGVsZW1lbnQuaGFzVGFnTmFtZSh0YWJsZVRhZykpCi0gICAgICAgICAgICByZXR1cm4gInRh
YmxlIjsKKyAgICAgICAgICAgIHJldHVybiAidGFibGUiX3M7CiAgICAgICAgIGVsc2UgaWYgKGVs
ZW1lbnQuaGFzVGFnTmFtZSh0clRhZykpCi0gICAgICAgICAgICByZXR1cm4gInRhYmxlLXJvdyI7
CisgICAgICAgICAgICByZXR1cm4gInRhYmxlLXJvdyJfczsKICAgICAgICAgZWxzZSBpZiAoZWxl
bWVudC5oYXNUYWdOYW1lKHRoVGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUodGRUYWcpKQotICAg
ICAgICAgICAgcmV0dXJuICJ0YWJsZS1jZWxsIjsKKyAgICAgICAgICAgIHJldHVybiAidGFibGUt
Y2VsbCJfczsKICAgICAgICAgZWxzZSBpZiAoZWxlbWVudC5oYXNUYWdOYW1lKHRoZWFkVGFnKSkK
LSAgICAgICAgICAgIHJldHVybiAidGFibGUtaGVhZGVyLWdyb3VwIjsKKyAgICAgICAgICAgIHJl
dHVybiAidGFibGUtaGVhZGVyLWdyb3VwIl9zOwogICAgICAgICBlbHNlIGlmIChlbGVtZW50Lmhh
c1RhZ05hbWUodGJvZHlUYWcpKQotICAgICAgICAgICAgcmV0dXJuICJ0YWJsZS1yb3ctZ3JvdXAi
OworICAgICAgICAgICAgcmV0dXJuICJ0YWJsZS1yb3ctZ3JvdXAiX3M7CiAgICAgICAgIGVsc2Ug
aWYgKGVsZW1lbnQuaGFzVGFnTmFtZSh0Zm9vdFRhZykpCi0gICAgICAgICAgICByZXR1cm4gInRh
YmxlLWZvb3Rlci1ncm91cCI7CisgICAgICAgICAgICByZXR1cm4gInRhYmxlLWZvb3Rlci1ncm91
cCJfczsKICAgICAgICAgZWxzZSBpZiAoZWxlbWVudC5oYXNUYWdOYW1lKGNvbFRhZykpCi0gICAg
ICAgICAgICByZXR1cm4gInRhYmxlLWNvbHVtbiI7CisgICAgICAgICAgICByZXR1cm4gInRhYmxl
LWNvbHVtbiJfczsKICAgICAgICAgZWxzZSBpZiAoZWxlbWVudC5oYXNUYWdOYW1lKGNvbGdyb3Vw
VGFnKSkKLSAgICAgICAgICAgIHJldHVybiAidGFibGUtY29sdW1uLWdyb3VwIjsKKyAgICAgICAg
ICAgIHJldHVybiAidGFibGUtY29sdW1uLWdyb3VwIl9zOwogICAgICAgICBlbHNlIGlmIChlbGVt
ZW50Lmhhc1RhZ05hbWUoY2FwdGlvblRhZykpCi0gICAgICAgICAgICByZXR1cm4gInRhYmxlLWNh
cHRpb24iOworICAgICAgICAgICAgcmV0dXJuICJ0YWJsZS1jYXB0aW9uIl9zOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIENTU1Byb3BlcnR5V2hpdGVTcGFjZToKICAgICAgICAgaWYgKGVsZW1l
bnQuaGFzVGFnTmFtZShwcmVUYWcpKQotICAgICAgICAgICAgcmV0dXJuICJwcmUiOworICAgICAg
ICAgICAgcmV0dXJuICJwcmUiX3M7CiAgICAgICAgIGluaGVyaXQgPSB0cnVlOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIENTU1Byb3BlcnR5Rm9udFN0eWxlOgogICAgICAgICBpZiAoZWxlbWVu
dC5oYXNUYWdOYW1lKGlUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZShjaXRlVGFnKSB8fCBlbGVt
ZW50Lmhhc1RhZ05hbWUoZW1UYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZSh2YXJUYWcpIHx8IGVs
ZW1lbnQuaGFzVGFnTmFtZShhZGRyZXNzVGFnKSkKLSAgICAgICAgICAgIHJldHVybiAiaXRhbGlj
IjsKKyAgICAgICAgICAgIHJldHVybiAiaXRhbGljIl9zOwogICAgICAgICBpbmhlcml0ID0gdHJ1
ZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUZvbnRXZWlnaHQ6CiAgICAg
ICAgIGlmIChlbGVtZW50Lmhhc1RhZ05hbWUoYlRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKHN0
cm9uZ1RhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKHRoVGFnKSkKLSAgICAgICAgICAgIHJldHVy
biAiYm9sZGVyIjsKKyAgICAgICAgICAgIHJldHVybiAiYm9sZGVyIl9zOwogICAgICAgICBpbmhl
cml0ID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVRleHREZWNv
cmF0aW9uTGluZToKICAgICAgICAgaWYgKGVsZW1lbnQuaGFzVGFnTmFtZSh1VGFnKSB8fCBlbGVt
ZW50Lmhhc1RhZ05hbWUoaW5zVGFnKSkKLSAgICAgICAgICAgIHJldHVybiAidW5kZXJsaW5lIjsK
KyAgICAgICAgICAgIHJldHVybiAidW5kZXJsaW5lIl9zOwogICAgICAgICBlbHNlIGlmIChlbGVt
ZW50Lmhhc1RhZ05hbWUoc1RhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKHN0cmlrZVRhZykgfHwg
ZWxlbWVudC5oYXNUYWdOYW1lKGRlbFRhZykpCi0gICAgICAgICAgICByZXR1cm4gImxpbmUtdGhy
b3VnaCI7CisgICAgICAgICAgICByZXR1cm4gImxpbmUtdGhyb3VnaCJfczsKICAgICAgICAgaW5o
ZXJpdCA9IHRydWU7IC8vIEZJWE1FOiBUaGlzIGlzIG5vdCBzdHJpY3RseSBjb3JyZWN0CiAgICAg
ICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTUHJvcGVydHlUZXh0QWxpZ246CiAgICAgICAgIGlmIChl
bGVtZW50Lmhhc1RhZ05hbWUoY2VudGVyVGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoY2FwdGlv
blRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKHRoVGFnKSkKLSAgICAgICAgICAgIHJldHVybiAi
Y2VudGVyIjsKKyAgICAgICAgICAgIHJldHVybiAiY2VudGVyIl9zOwogICAgICAgICBpbmhlcml0
ID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVZlcnRpY2FsQWxp
Z246CiAgICAgICAgIGlmIChlbGVtZW50Lmhhc1RhZ05hbWUoc3VwVGFnKSkKLSAgICAgICAgICAg
IHJldHVybiAic3VwZXIiOworICAgICAgICAgICAgcmV0dXJuICJzdXBlciJfczsKICAgICAgICAg
ZWxzZSBpZiAoZWxlbWVudC5oYXNUYWdOYW1lKHN1YlRhZykpCi0gICAgICAgICAgICByZXR1cm4g
InN1YiI7CisgICAgICAgICAgICByZXR1cm4gInN1YiJfczsKICAgICAgICAgZWxzZSBpZiAoZWxl
bWVudC5oYXNUYWdOYW1lKHRoZWFkVGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUodGJvZHlUYWcp
IHx8IGVsZW1lbnQuaGFzVGFnTmFtZSh0Zm9vdFRhZykpCi0gICAgICAgICAgICByZXR1cm4gIm1p
ZGRsZSI7CisgICAgICAgICAgICByZXR1cm4gIm1pZGRsZSJfczsKICAgICAgICAgZWxzZSBpZiAo
ZWxlbWVudC5oYXNUYWdOYW1lKHRyVGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUodGhUYWcpIHx8
IGVsZW1lbnQuaGFzVGFnTmFtZSh0ZFRhZykpCiAgICAgICAgICAgICBpbmhlcml0ID0gdHJ1ZTsK
ICAgICAgICAgYnJlYWs7CkBAIC0xODUyLDcgKzE4NTIsNyBAQCBCT09MIEhUTUxDb252ZXJ0ZXI6
Ol9wcm9jZXNzRWxlbWVudChFbGVtZW50JiBlbGVtZW50LCBOU0ludGVnZXIgZGVwdGgpCiAgICAg
ICAgIFJldGFpblB0cjxOU1RleHRMaXN0PiBsaXN0OwogICAgICAgICBTdHJpbmcgbGlzdFN0eWxl
VHlwZSA9IF9jYWNoZXMtPnByb3BlcnR5VmFsdWVGb3JOb2RlKGVsZW1lbnQsIENTU1Byb3BlcnR5
TGlzdFN0eWxlVHlwZSk7CiAgICAgICAgIGlmICghbGlzdFN0eWxlVHlwZS5sZW5ndGgoKSkKLSAg
ICAgICAgICAgIGxpc3RTdHlsZVR5cGUgPSAiZGVjaW1hbCI7CisgICAgICAgICAgICBsaXN0U3R5
bGVUeXBlID0gImRlY2ltYWwiX3M7CiAgICAgICAgIGxpc3QgPSBhZG9wdE5TKFtbUGxhdGZvcm1O
U1RleHRMaXN0IGFsbG9jXSBpbml0V2l0aE1hcmtlckZvcm1hdDpTdHJpbmcoInsiICsgbGlzdFN0
eWxlVHlwZSArICJ9Iikgb3B0aW9uczowXSk7CiAgICAgICAgIGlmIChpczxIVE1MT0xpc3RFbGVt
ZW50PihlbGVtZW50KSkgewogICAgICAgICAgICAgTlNJbnRlZ2VyIHN0YXJ0aW5nSXRlbU51bWJl
ciA9IGRvd25jYXN0PEhUTUxPTGlzdEVsZW1lbnQ+KGVsZW1lbnQpLnN0YXJ0KCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL1dlYkNvbnRlbnRSZWFkZXJDb2NvYS5t
bSBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvV2ViQ29udGVudFJlYWRlckNvY29hLm1t
CmluZGV4IGU4ODZhMjdkYmQ2MjI0MGFkOTg0MjA0NWNlYjgzMDUwYTJmYzAzZGYuLmQ4ZDE0MGRl
ZjdkM2EzOGIwMjRhNDExMzRiNjU4ZTdmMzE0MTRlMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2VkaXRpbmcvY29jb2EvV2ViQ29udGVudFJlYWRlckNvY29hLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvY29jb2EvV2ViQ29udGVudFJlYWRlckNvY29hLm1tCkBAIC03NjIsNyAr
NzYyLDcgQEAgc3RhdGljIFJlZjxIVE1MRWxlbWVudD4gYXR0YWNobWVudEZvckRhdGEoRnJhbWUm
IGZyYW1lLCBGcmFnbWVudGVkU2hhcmVkQnVmZmVyJgogICAgIGF1dG8gYXR0YWNobWVudFR5cGUg
PSB0eXBlRm9yQXR0YWNobWVudEVsZW1lbnQoY29udGVudFR5cGUpOwogCiAgICAgLy8gRklYTUU6
IFdlIHNob3VsZCBpbnN0ZWFkIGFzayBDb3JlU2VydmljZXMgZm9yIGEgcHJlZmVycmVkIG5hbWUg
Y29ycmVzcG9uZGluZyB0byB0aGUgZ2l2ZW4gY29udGVudCB0eXBlLgotICAgIHN0YXRpYyBjb25z
dCBjaGFyKiBkZWZhdWx0QXR0YWNobWVudE5hbWUgPSAiZmlsZSI7CisgICAgc3RhdGljIGNvbnN0
ZXhwciBBU0NJSUxpdGVyYWwgZGVmYXVsdEF0dGFjaG1lbnROYW1lID0gImZpbGUiX3M7CiAKICAg
ICBTdHJpbmcgZmlsZU5hbWU7CiAgICAgaWYgKG5hbWUuaXNFbXB0eSgpKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL2NvY29hL0J1bmRsZVJlc291cmNlTG9hZGVyLm1tIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NvY29hL0J1bmRsZVJlc291cmNlTG9hZGVyLm1tCmluZGV4IGMz
YjdiN2ZlNTVkYzMzMDQzY2M4YWUzOWNjZmE0N2RiNzY5NjNlY2YuLjljMjc5MTEzOTU3OWUwZDQ2
N2MzODBhNTIzZDU1MTUxNDIyMzFhYjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jb2NvYS9CdW5kbGVSZXNvdXJjZUxvYWRlci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY29jb2EvQnVuZGxlUmVzb3VyY2VMb2FkZXIubW0KQEAgLTY1LDEzICs2NSwxMyBAQCB2b2lk
IGxvYWRSZXNvdXJjZUZyb21CdW5kbGUoUmVzb3VyY2VMb2FkZXImIGxvYWRlciwgY29uc3QgU3Ry
aW5nJiBzdWJkaXJlY3RvcnkpCiAKICAgICAgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFtw
cm90ZWN0ZWRMb2FkZXIgPSBXVEZNb3ZlKHByb3RlY3RlZExvYWRlciksIHVybCA9IFdURk1vdmUo
dXJsKS5pc29sYXRlZENvcHkoKSwgYnVmZmVyID0gU2hhcmVkQnVmZmVyOjpjcmVhdGUoZGF0YSld
KCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBhdXRvIG1pbWVUeXBlID0gTUlNRVR5cGVSZWdpc3Ry
eTo6bWltZVR5cGVGb3JQYXRoKHVybC5wYXRoKCkpOwotICAgICAgICAgICAgUmVzb3VyY2VSZXNw
b25zZSByZXNwb25zZSB7IHVybCwgbWltZVR5cGUsIHN0YXRpY19jYXN0PGxvbmcgbG9uZz4oYnVm
ZmVyLT5zaXplKCkpLCBNSU1FVHlwZVJlZ2lzdHJ5Ojppc1RleHRNSU1FVHlwZShtaW1lVHlwZSkg
PyAiVVRGLTgiX3MgOiBudWxscHRyIH07CisgICAgICAgICAgICBSZXNvdXJjZVJlc3BvbnNlIHJl
c3BvbnNlIHsgdXJsLCBtaW1lVHlwZSwgc3RhdGljX2Nhc3Q8bG9uZyBsb25nPihidWZmZXItPnNp
emUoKSksIE1JTUVUeXBlUmVnaXN0cnk6OmlzVGV4dE1JTUVUeXBlKG1pbWVUeXBlKSA/ICJVVEYt
OCJfcyA6IFN0cmluZygpIH07CiAgICAgICAgICAgICByZXNwb25zZS5zZXRIVFRQU3RhdHVzQ29k
ZSgyMDApOwogICAgICAgICAgICAgcmVzcG9uc2Uuc2V0SFRUUFN0YXR1c1RleHQoIk9LIl9zKTsK
ICAgICAgICAgICAgIHJlc3BvbnNlLnNldFNvdXJjZShSZXNvdXJjZVJlc3BvbnNlOjpTb3VyY2U6
Ok5ldHdvcmspOwogCiAgICAgICAgICAgICAvLyBBbGxvdyBpbWFnZXMgdG8gbG9hZC4KLSAgICAg
ICAgICAgIHJlc3BvbnNlLmFkZEhUVFBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6QWNjZXNz
Q29udHJvbEFsbG93T3JpZ2luLCAiKiIpOworICAgICAgICAgICAgcmVzcG9uc2UuYWRkSFRUUEhl
YWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpBY2Nlc3NDb250cm9sQWxsb3dPcmlnaW4sICIqIl9z
KTsKIAogICAgICAgICAgICAgcHJvdGVjdGVkTG9hZGVyLT5kZWxpdmVyUmVzcG9uc2VBbmREYXRh
KHJlc3BvbnNlLCBXVEZNb3ZlKGJ1ZmZlcikpOwogICAgICAgICB9KTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvUmVzb3VyY2VVc2FnZU92ZXJsYXlDb2NvYS5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvUmVzb3VyY2VVc2FnZU92ZXJsYXlDb2NvYS5tbQppbmRl
eCAxMTQ4NGQwYzU5MmMwN2ZmOTRlYzE3N2EwMTI4MDEwNzljMzk1OTcxLi5lMWRjMjliODYyZDQy
MjQzYTlhMjkxYTBlZDFmNWY0MzNmY2RhMWVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL2NvY29hL1Jlc291cmNlVXNhZ2VPdmVybGF5Q29jb2EubW0KKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9jb2NvYS9SZXNvdXJjZVVzYWdlT3ZlcmxheUNvY29hLm1tCkBAIC0xNjEsMTggKzE2
MSwxOCBAQCBzdHJ1Y3QgSGlzdG9yaWNSZXNvdXJjZVVzYWdlRGF0YSB7CiBIaXN0b3JpY1Jlc291
cmNlVXNhZ2VEYXRhOjpIaXN0b3JpY1Jlc291cmNlVXNhZ2VEYXRhKCkKIHsKICAgICAvLyBWTSB0
YWcgY2F0ZWdvcmllcy4KLSAgICBjYXRlZ29yaWVzW01lbW9yeUNhdGVnb3J5OjpKU0pJVF0gPSBI
aXN0b3JpY01lbW9yeUNhdGVnb3J5SW5mbyhNZW1vcnlDYXRlZ29yeTo6SlNKSVQsIHsgMjU1LCA5
NiwgMjU1IH0sICJKUyBKSVQiKTsKLSAgICBjYXRlZ29yaWVzW01lbW9yeUNhdGVnb3J5OjpHaWdh
Y2FnZV0gPSBIaXN0b3JpY01lbW9yeUNhdGVnb3J5SW5mbyhNZW1vcnlDYXRlZ29yeTo6R2lnYWNh
Z2UsIHsgMTAxLCA3OSwgMjQwIH0sICJHaWdhY2FnZSIpOwotICAgIGNhdGVnb3JpZXNbTWVtb3J5
Q2F0ZWdvcnk6OkltYWdlc10gPSBIaXN0b3JpY01lbW9yeUNhdGVnb3J5SW5mbyhNZW1vcnlDYXRl
Z29yeTo6SW1hZ2VzLCBDb2xvcjo6eWVsbG93LCAiSW1hZ2VzIik7Ci0gICAgY2F0ZWdvcmllc1tN
ZW1vcnlDYXRlZ29yeTo6TGF5ZXJzXSA9IEhpc3RvcmljTWVtb3J5Q2F0ZWdvcnlJbmZvKE1lbW9y
eUNhdGVnb3J5OjpMYXllcnMsIENvbG9yOjpjeWFuLCAiTGF5ZXJzIik7Ci0gICAgY2F0ZWdvcmll
c1tNZW1vcnlDYXRlZ29yeTo6TGliY01hbGxvY10gPSBIaXN0b3JpY01lbW9yeUNhdGVnb3J5SW5m
byhNZW1vcnlDYXRlZ29yeTo6TGliY01hbGxvYywgQ29sb3I6OmdyZWVuLCAibGliYyBtYWxsb2Mi
KTsKLSAgICBjYXRlZ29yaWVzW01lbW9yeUNhdGVnb3J5OjpibWFsbG9jXSA9IEhpc3RvcmljTWVt
b3J5Q2F0ZWdvcnlJbmZvKE1lbW9yeUNhdGVnb3J5OjpibWFsbG9jLCB7IDI1NSwgOTYsIDk2IH0s
ICJibWFsbG9jIik7Ci0gICAgY2F0ZWdvcmllc1tNZW1vcnlDYXRlZ29yeTo6SXNvSGVhcF0gPSBI
aXN0b3JpY01lbW9yeUNhdGVnb3J5SW5mbyhNZW1vcnlDYXRlZ29yeTo6SXNvSGVhcCwgeyAxMjgs
IDE1OSwgNjQgfSwgIklzb0hlYXAiKTsKLSAgICBjYXRlZ29yaWVzW01lbW9yeUNhdGVnb3J5OjpP
dGhlcl0gPSBIaXN0b3JpY01lbW9yeUNhdGVnb3J5SW5mbyhNZW1vcnlDYXRlZ29yeTo6T3RoZXIs
IHsgMTkyLCAyNTUsIDAgfSwgIk90aGVyIik7CisgICAgY2F0ZWdvcmllc1tNZW1vcnlDYXRlZ29y
eTo6SlNKSVRdID0gSGlzdG9yaWNNZW1vcnlDYXRlZ29yeUluZm8oTWVtb3J5Q2F0ZWdvcnk6OkpT
SklULCB7IDI1NSwgOTYsIDI1NSB9LCAiSlMgSklUIl9zKTsKKyAgICBjYXRlZ29yaWVzW01lbW9y
eUNhdGVnb3J5OjpHaWdhY2FnZV0gPSBIaXN0b3JpY01lbW9yeUNhdGVnb3J5SW5mbyhNZW1vcnlD
YXRlZ29yeTo6R2lnYWNhZ2UsIHsgMTAxLCA3OSwgMjQwIH0sICJHaWdhY2FnZSJfcyk7CisgICAg
Y2F0ZWdvcmllc1tNZW1vcnlDYXRlZ29yeTo6SW1hZ2VzXSA9IEhpc3RvcmljTWVtb3J5Q2F0ZWdv
cnlJbmZvKE1lbW9yeUNhdGVnb3J5OjpJbWFnZXMsIENvbG9yOjp5ZWxsb3csICJJbWFnZXMiX3Mp
OworICAgIGNhdGVnb3JpZXNbTWVtb3J5Q2F0ZWdvcnk6OkxheWVyc10gPSBIaXN0b3JpY01lbW9y
eUNhdGVnb3J5SW5mbyhNZW1vcnlDYXRlZ29yeTo6TGF5ZXJzLCBDb2xvcjo6Y3lhbiwgIkxheWVy
cyJfcyk7CisgICAgY2F0ZWdvcmllc1tNZW1vcnlDYXRlZ29yeTo6TGliY01hbGxvY10gPSBIaXN0
b3JpY01lbW9yeUNhdGVnb3J5SW5mbyhNZW1vcnlDYXRlZ29yeTo6TGliY01hbGxvYywgQ29sb3I6
OmdyZWVuLCAibGliYyBtYWxsb2MiX3MpOworICAgIGNhdGVnb3JpZXNbTWVtb3J5Q2F0ZWdvcnk6
OmJtYWxsb2NdID0gSGlzdG9yaWNNZW1vcnlDYXRlZ29yeUluZm8oTWVtb3J5Q2F0ZWdvcnk6OmJt
YWxsb2MsIHsgMjU1LCA5NiwgOTYgfSwgImJtYWxsb2MiX3MpOworICAgIGNhdGVnb3JpZXNbTWVt
b3J5Q2F0ZWdvcnk6Oklzb0hlYXBdID0gSGlzdG9yaWNNZW1vcnlDYXRlZ29yeUluZm8oTWVtb3J5
Q2F0ZWdvcnk6Oklzb0hlYXAsIHsgMTI4LCAxNTksIDY0IH0sICJJc29IZWFwIl9zKTsKKyAgICBj
YXRlZ29yaWVzW01lbW9yeUNhdGVnb3J5OjpPdGhlcl0gPSBIaXN0b3JpY01lbW9yeUNhdGVnb3J5
SW5mbyhNZW1vcnlDYXRlZ29yeTo6T3RoZXIsIHsgMTkyLCAyNTUsIDAgfSwgIk90aGVyIl9zKTsK
IAogICAgIC8vIFN1YiBjYXRlZ29yaWVzIChlLmcgYnJlYWtkb3duIG9mIGJtYWxsb2MgdGFnLikK
LSAgICBjYXRlZ29yaWVzW01lbW9yeUNhdGVnb3J5OjpHQ0hlYXBdID0gSGlzdG9yaWNNZW1vcnlD
YXRlZ29yeUluZm8oTWVtb3J5Q2F0ZWdvcnk6OkdDSGVhcCwgeyAxNjAsIDE2MCwgMjU1IH0sICJH
QyBoZWFwIiwgdHJ1ZSk7Ci0gICAgY2F0ZWdvcmllc1tNZW1vcnlDYXRlZ29yeTo6R0NPd25lZF0g
PSBIaXN0b3JpY01lbW9yeUNhdGVnb3J5SW5mbyhNZW1vcnlDYXRlZ29yeTo6R0NPd25lZCwgeyAy
NTUsIDE5MiwgOTYgfSwgIkdDIG93bmVkIiwgdHJ1ZSk7CisgICAgY2F0ZWdvcmllc1tNZW1vcnlD
YXRlZ29yeTo6R0NIZWFwXSA9IEhpc3RvcmljTWVtb3J5Q2F0ZWdvcnlJbmZvKE1lbW9yeUNhdGVn
b3J5OjpHQ0hlYXAsIHsgMTYwLCAxNjAsIDI1NSB9LCAiR0MgaGVhcCJfcywgdHJ1ZSk7CisgICAg
Y2F0ZWdvcmllc1tNZW1vcnlDYXRlZ29yeTo6R0NPd25lZF0gPSBIaXN0b3JpY01lbW9yeUNhdGVn
b3J5SW5mbyhNZW1vcnlDYXRlZ29yeTo6R0NPd25lZCwgeyAyNTUsIDE5MiwgOTYgfSwgIkdDIG93
bmVkIl9zLCB0cnVlKTsKIAogI2lmbmRlZiBOREVCVUcKICAgICAvLyBFbnN1cmUgdGhpcyBhbGln
bnMgd2l0aCBSZXNvdXJjZVVzYWdlRGF0YSdzIGNhdGVnb3J5IG9yZGVyLgpAQCAtMzExLDcgKzMx
MSw3IEBAIHN0YXRpYyB2b2lkIGRyYXdDcHVIaXN0b3J5KENHQ29udGV4dFJlZiBjb250ZXh0LCBm
bG9hdCB4MSwgZmxvYXQgeTEsIGZsb2F0IHkyLCBSCiAgICAgICAgIGkrKzsKICAgICB9KTsKIAot
ICAgIGRyYXdHcmFwaExhYmVsKGNvbnRleHQsIHgxLCB5MiwgIkNQVSIpOworICAgIGRyYXdHcmFw
aExhYmVsKGNvbnRleHQsIHgxLCB5MiwgIkNQVSJfcyk7CiB9CiAKIHN0YXRpYyB2b2lkIGRyYXdH
Q0hpc3RvcnkoQ0dDb250ZXh0UmVmIGNvbnRleHQsIGZsb2F0IHgxLCBmbG9hdCB5MSwgZmxvYXQg
eTIsIFJpbmdCdWZmZXI8c2l6ZV90PiYgc2l6ZUhpc3RvcnksIFJpbmdCdWZmZXI8c2l6ZV90PiYg
Y2FwYWNpdHlIaXN0b3J5KQpAQCAtMzU0LDcgKzM1NCw3IEBAIHN0YXRpYyB2b2lkIGRyYXdHQ0hp
c3RvcnkoQ0dDb250ZXh0UmVmIGNvbnRleHQsIGZsb2F0IHgxLCBmbG9hdCB5MSwgZmxvYXQgeTIs
IFJpCiAgICAgICAgIGkrKzsKICAgICB9KTsKIAotICAgIGRyYXdHcmFwaExhYmVsKGNvbnRleHQs
IHgxLCB5MiwgIkdDIik7CisgICAgZHJhd0dyYXBoTGFiZWwoY29udGV4dCwgeDEsIHkyLCAiR0Mi
X3MpOwogfQogCiBzdGF0aWMgdm9pZCBkcmF3TWVtSGlzdG9yeShDR0NvbnRleHRSZWYgY29udGV4
dCwgZmxvYXQgeDEsIGZsb2F0IHkxLCBmbG9hdCB5MiwgSGlzdG9yaWNSZXNvdXJjZVVzYWdlRGF0
YSYgZGF0YSkKQEAgLTQwMCw3ICs0MDAsNyBAQCBzdGF0aWMgdm9pZCBkcmF3TWVtSGlzdG9yeShD
R0NvbnRleHRSZWYgY29udGV4dCwgZmxvYXQgeDEsIGZsb2F0IHkxLCBmbG9hdCB5MiwgSAogICAg
ICAgICArK2k7CiAgICAgfQogCi0gICAgZHJhd0dyYXBoTGFiZWwoY29udGV4dCwgeDEsIHkyLCAi
TWVtIik7CisgICAgZHJhd0dyYXBoTGFiZWwoY29udGV4dCwgeDEsIHkyLCAiTWVtIl9zKTsKIH0K
IAogc3RhdGljIGNvbnN0IGZsb2F0IGZ1bGxDaXJjbGVJblJhZGlhbnMgPSBwaUZsb2F0ICogMjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvU2V0dGluZ3NCYXNlQ29jb2Eu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL1NldHRpbmdzQmFzZUNvY29hLm1tCmluZGV4
IGQyMWQ5OWQ4NjFiOGZhOTI4MmU5MWE5YWE0YTMwMWY4ZmI2NGQxNzcuLjQ3NzRjZTA4YTViOGI1
MGY2NGExNjIwMmY1MzhiNGY0ZjdlZjJlNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvY29jb2EvU2V0dGluZ3NCYXNlQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9j
b2NvYS9TZXR0aW5nc0Jhc2VDb2NvYS5tbQpAQCAtNDMsMTUgKzQzLDE1IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogdm9pZCBTZXR0aW5nc0Jhc2U6OmluaXRpYWxpemVEZWZhdWx0Rm9udEZhbWls
aWVzKCkKIHsKLSAgICBzZXRTdGFuZGFyZEZvbnRGYW1pbHkoIlNvbmd0aSBUQyIsIFVTQ1JJUFRf
VFJBRElUSU9OQUxfSEFOKTsKLSAgICBzZXRTdGFuZGFyZEZvbnRGYW1pbHkoIlNvbmd0aSBTQyIs
IFVTQ1JJUFRfU0lNUExJRklFRF9IQU4pOwotICAgIHNldFN0YW5kYXJkRm9udEZhbWlseSgiSGly
YWdpbm8gTWluY2hvIFByb04iLCBVU0NSSVBUX0tBVEFLQU5BX09SX0hJUkFHQU5BKTsKLSAgICBz
ZXRTdGFuZGFyZEZvbnRGYW1pbHkoIkFwcGxlTXl1bmdqbyIsIFVTQ1JJUFRfSEFOR1VMKTsKLQot
ICAgIHNldFN0YW5kYXJkRm9udEZhbWlseSgiVGltZXMiLCBVU0NSSVBUX0NPTU1PTik7Ci0gICAg
c2V0Rml4ZWRGb250RmFtaWx5KCJDb3VyaWVyIiwgVVNDUklQVF9DT01NT04pOwotICAgIHNldFNl
cmlmRm9udEZhbWlseSgiVGltZXMiLCBVU0NSSVBUX0NPTU1PTik7Ci0gICAgc2V0U2Fuc1Nlcmlm
Rm9udEZhbWlseSgiSGVsdmV0aWNhIiwgVVNDUklQVF9DT01NT04pOworICAgIHNldFN0YW5kYXJk
Rm9udEZhbWlseSgiU29uZ3RpIFRDIl9zLCBVU0NSSVBUX1RSQURJVElPTkFMX0hBTik7CisgICAg
c2V0U3RhbmRhcmRGb250RmFtaWx5KCJTb25ndGkgU0MiX3MsIFVTQ1JJUFRfU0lNUExJRklFRF9I
QU4pOworICAgIHNldFN0YW5kYXJkRm9udEZhbWlseSgiSGlyYWdpbm8gTWluY2hvIFByb04iX3Ms
IFVTQ1JJUFRfS0FUQUtBTkFfT1JfSElSQUdBTkEpOworICAgIHNldFN0YW5kYXJkRm9udEZhbWls
eSgiQXBwbGVNeXVuZ2pvIl9zLCBVU0NSSVBUX0hBTkdVTCk7CisKKyAgICBzZXRTdGFuZGFyZEZv
bnRGYW1pbHkoIlRpbWVzIl9zLCBVU0NSSVBUX0NPTU1PTik7CisgICAgc2V0Rml4ZWRGb250RmFt
aWx5KCJDb3VyaWVyIl9zLCBVU0NSSVBUX0NPTU1PTik7CisgICAgc2V0U2VyaWZGb250RmFtaWx5
KCJUaW1lcyJfcywgVVNDUklQVF9DT01NT04pOworICAgIHNldFNhbnNTZXJpZkZvbnRGYW1pbHko
IkhlbHZldGljYSJfcywgVVNDUklQVF9DT01NT04pOwogfQogCiBib29sIFNldHRpbmdzQmFzZTo6
cGxhdGZvcm1EZWZhdWx0TWVkaWFTb3VyY2VFbmFibGVkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvbWFjL1BhZ2VNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9QYWdl
TWFjLm1tCmluZGV4IDQ0OWE4ZmY2Y2Q2OTRkMjRjNWFmMTRiZGVhZjU0YzYyNGMyMmMxMWIuLjlm
MmQzZjVmZDNkZjdmYzY1YjhmMmJkNTJjYzY5ZjIyYmIxYmFjZTcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvbWFjL1BhZ2VNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9t
YWMvUGFnZU1hYy5tbQpAQCAtNTcsMTUgKzU3LDE1IEBAIHZvaWQgUGFnZTo6cGxhdGZvcm1Jbml0
aWFsaXplKCkKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZUZsYWc7CiAgICAgc3RkOjpj
YWxsX29uY2Uob25jZUZsYWcsIFtdIHsKICNpZiBFTkFCTEUoVFJFRV9ERUJVR0dJTkcpCi0gICAg
ICAgIFBBTDo6cmVnaXN0ZXJOb3RpZnlDYWxsYmFjaygiY29tLmFwcGxlLldlYktpdC5zaG93UmVu
ZGVyVHJlZSIsIHByaW50UmVuZGVyVHJlZUZvckxpdmVEb2N1bWVudHMpOwotICAgICAgICBQQUw6
OnJlZ2lzdGVyTm90aWZ5Q2FsbGJhY2soImNvbS5hcHBsZS5XZWJLaXQuc2hvd0xheWVyVHJlZSIs
IHByaW50TGF5ZXJUcmVlRm9yTGl2ZURvY3VtZW50cyk7Ci0gICAgICAgIFBBTDo6cmVnaXN0ZXJO
b3RpZnlDYWxsYmFjaygiY29tLmFwcGxlLldlYktpdC5zaG93R3JhcGhpY3NMYXllclRyZWUiLCBw
cmludEdyYXBoaWNzTGF5ZXJUcmVlRm9yTGl2ZURvY3VtZW50cyk7CisgICAgICAgIFBBTDo6cmVn
aXN0ZXJOb3RpZnlDYWxsYmFjaygiY29tLmFwcGxlLldlYktpdC5zaG93UmVuZGVyVHJlZSJfcywg
cHJpbnRSZW5kZXJUcmVlRm9yTGl2ZURvY3VtZW50cyk7CisgICAgICAgIFBBTDo6cmVnaXN0ZXJO
b3RpZnlDYWxsYmFjaygiY29tLmFwcGxlLldlYktpdC5zaG93TGF5ZXJUcmVlIl9zLCBwcmludExh
eWVyVHJlZUZvckxpdmVEb2N1bWVudHMpOworICAgICAgICBQQUw6OnJlZ2lzdGVyTm90aWZ5Q2Fs
bGJhY2soImNvbS5hcHBsZS5XZWJLaXQuc2hvd0dyYXBoaWNzTGF5ZXJUcmVlIl9zLCBwcmludEdy
YXBoaWNzTGF5ZXJUcmVlRm9yTGl2ZURvY3VtZW50cyk7CiAjaWYgRU5BQkxFKExBWU9VVF9GT1JN
QVRUSU5HX0NPTlRFWFQpCi0gICAgICAgIFBBTDo6cmVnaXN0ZXJOb3RpZnlDYWxsYmFjaygiY29t
LmFwcGxlLldlYktpdC5zaG93TGF5b3V0VHJlZSIsIExheW91dDo6cHJpbnRMYXlvdXRUcmVlRm9y
TGl2ZURvY3VtZW50cyk7CisgICAgICAgIFBBTDo6cmVnaXN0ZXJOb3RpZnlDYWxsYmFjaygiY29t
LmFwcGxlLldlYktpdC5zaG93TGF5b3V0VHJlZSJfcywgTGF5b3V0OjpwcmludExheW91dFRyZWVG
b3JMaXZlRG9jdW1lbnRzKTsKICNlbmRpZgogI2VuZGlmIC8vIEVOQUJMRShUUkVFX0RFQlVHR0lO
RykKIAotICAgICAgICBQQUw6OnJlZ2lzdGVyTm90aWZ5Q2FsbGJhY2soImNvbS5hcHBsZS5XZWJL
aXQuc2hvd0FsbERvY3VtZW50cyIsIFtdIHsKKyAgICAgICAgUEFMOjpyZWdpc3Rlck5vdGlmeUNh
bGxiYWNrKCJjb20uYXBwbGUuV2ViS2l0LnNob3dBbGxEb2N1bWVudHMiX3MsIFtdIHsKICAgICAg
ICAgICAgIHVuc2lnbmVkIG51bVBhZ2VzID0gMDsKICAgICAgICAgICAgIFBhZ2U6OmZvckVhY2hQ
YWdlKFsmbnVtUGFnZXNdKFBhZ2UmKSB7CiAgICAgICAgICAgICAgICAgKytudW1QYWdlczsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAKaW5kZXggY2Y1ZDBl
MDI2Y2RmODMzNzIyZTUxY2FjMGJjYzdmMTM0YTYyNWU5ZS4uOGE3ZThlZjZiY2UyM2MxZjg0YWQ0
MDMwNmNkNmY1ZjVjOTBlNThkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
TG9jYWxpemVkU3RyaW5ncy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxp
emVkU3RyaW5ncy5jcHAKQEAgLTY1NSw3ICs2NTUsNyBAQCBTdHJpbmcgQVhXZWVrRmllbGRUZXh0
KCkKICAgICByZXR1cm4gV0VCX1VJX1NUUklORygid2VlayBhbmQgeWVhciBmaWVsZCIsICJhY2Nl
c3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24gZm9yIGEgdGltZSBmaWVsZC4iKTsKIH0KIAotU3Ry
aW5nIEFYQVJJQUNvbnRlbnRHcm91cFRleHQoY29uc3QgU3RyaW5nJiBhcmlhVHlwZSkKK1N0cmlu
ZyBBWEFSSUFDb250ZW50R3JvdXBUZXh0KFN0cmluZ1ZpZXcgYXJpYVR5cGUpCiB7CiAgICAgaWYg
KGFyaWFUeXBlID09ICJBUklBQXBwbGljYXRpb25BbGVydCIpCiAgICAgICAgIHJldHVybiBXRUJf
VUlfU1RSSU5HKCJhbGVydCIsICJBbiBBUklBIGFjY2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBhY3Rz
IGFzIGFuIGFsZXJ0LiIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9j
YWxpemVkU3RyaW5ncy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5n
cy5oCmluZGV4IGIxODFmMWVkOGEwYjg4YzFmY2ZjZDBlODYxNzIzNGJiMjk0OTNkYWUuLmEyMGI1
ODhlNjkzNzE2OWExMDY3ZDM5ZDdjMTA5ZjM0NTllOGMzOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgKQEAgLTE5NSw3ICsxOTUsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgU3RyaW5nIEFYTW9udGhGaWVsZFRleHQoKTsKICAgICBTdHJpbmcgQVhO
dW1iZXJGaWVsZFRleHQoKTsKICAgICBTdHJpbmcgQVhXZWVrRmllbGRUZXh0KCk7Ci0gICAgU3Ry
aW5nIEFYQVJJQUNvbnRlbnRHcm91cFRleHQoY29uc3QgU3RyaW5nJiBhcmlhVHlwZSk7CisgICAg
U3RyaW5nIEFYQVJJQUNvbnRlbnRHcm91cFRleHQoU3RyaW5nVmlldyBhcmlhVHlwZSk7CiAgICAg
U3RyaW5nIEFYSG9yaXpvbnRhbFJ1bGVEZXNjcmlwdGlvblRleHQoKTsKICAgICBTdHJpbmcgQVhN
YXJrVGV4dCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJv
YXJkLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkLmgKaW5kZXggYWViYTBh
M2I0NGQ4NjY2ZWNkYjIyMWIzMzU3MGQ0Y2NkYTU2NjQyOS4uMWNmNDEwOGYwOGU2MzA2NThmOWEz
ZTMxZmU0YmNlOTYzZTNlNGNjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
UGFzdGVib2FyZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmQuaApA
QCAtMzc1LDkgKzM3NSw5IEBAIGV4dGVybiBOU1N0cmluZyAqVUlDb2xvclBib2FyZFR5cGU7CiAj
ZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1BQykKLWV4dGVybiBjb25zdCBjaGFyKiBjb25zdCBXZWJB
cmNoaXZlUGJvYXJkVHlwZTsKLWV4dGVybiBjb25zdCBjaGFyKiBjb25zdCBXZWJVUkxOYW1lUGJv
YXJkVHlwZTsKLWV4dGVybiBjb25zdCBjaGFyKiBjb25zdCBXZWJVUkxzV2l0aFRpdGxlc1Bib2Fy
ZFR5cGU7CitleHRlcm4gY29uc3QgQVNDSUlMaXRlcmFsIFdlYkFyY2hpdmVQYm9hcmRUeXBlOwor
ZXh0ZXJuIGNvbnN0IEFTQ0lJTGl0ZXJhbCBXZWJVUkxOYW1lUGJvYXJkVHlwZTsKK2V4dGVybiBj
b25zdCBBU0NJSUxpdGVyYWwgV2ViVVJMc1dpdGhUaXRsZXNQYm9hcmRUeXBlOwogI2VuZGlmCiAK
ICNpZiAhUExBVEZPUk0oR1RLKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
UGFzdGVib2FyZEN1c3RvbURhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9h
cmRDdXN0b21EYXRhLmgKaW5kZXggMmJlODFkMjkzOGEzZGJkMDkwMjZjYTZlYzY0YWMzMjg3ZTZh
YmMwMy4uMjU2ZjQ0NTQyOTAzMmJiNDJmMzEzZDkyMGFmYmZmZDFiMDIzYTc3YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZEN1c3RvbURhdGEuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkQ3VzdG9tRGF0YS5oCkBAIC03Niw3ICs3
Niw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNsZWFyKGNvbnN0IFN0cmluZyYgdHlwZSk7CiAKICNp
ZiBQTEFURk9STShDT0NPQSkKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgY29uc3QgY2hhciog
Y29jb2FUeXBlKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIEFTQ0lJTGl0ZXJhbCBjb2Nv
YVR5cGUoKTsKICNlbGlmIFBMQVRGT1JNKEdUSykKICAgICBzdGF0aWMgY29uc3QgY2hhciogZ3Rr
VHlwZSgpIHsgcmV0dXJuICJvcmcud2Via2l0Z3RrLldlYktpdC5jdXN0b20tcGFzdGVib2FyZC1k
YXRhIjsgfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9jb2NvYS9NZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9jb2NvYS9NZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EubW0KaW5kZXggYTBlOTAy
ZjEyY2U3ZWIxN2M3NzZkNDNjMTM1Yzg1MzI2Yzc1Y2ZlMC4uOTZjZGZhYTM2MjFjNWM5NjJkYTBl
MDUzMDJkNGVhOWQ5Y2Q3MDg3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
YXVkaW8vY29jb2EvTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL01lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5tbQpAQCAt
NDUyLDggKzQ1Miw4IEBAIHZvaWQgTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hOjp1cGRhdGVOb3dQ
bGF5aW5nSW5mbygpCiAKICAgICBpZiAobV9ub3dQbGF5aW5nTWFuYWdlci0+c2V0Tm93UGxheWlu
Z0luZm8oKm5vd1BsYXlpbmdJbmZvKSkgewogI2lmZGVmIExPR19ESVNBQkxFRAotICAgICAgICBT
dHJpbmcgc3JjID0gInNyYyI7Ci0gICAgICAgIFN0cmluZyB0aXRsZSA9ICJ0aXRsZSI7CisgICAg
ICAgIFN0cmluZyBzcmMgPSAic3JjIl9zOworICAgICAgICBTdHJpbmcgdGl0bGUgPSAidGl0bGUi
X3M7CiAjZWxzZQogICAgICAgICBTdHJpbmcgc3JjID0gbm93UGxheWluZ0luZm8tPmFydHdvcmsg
PyBub3dQbGF5aW5nSW5mby0+YXJ0d29yay0+c3JjIDogU3RyaW5nKCk7CiAgICAgICAgIFN0cmlu
ZyB0aXRsZSA9IG5vd1BsYXlpbmdJbmZvLT50aXRsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2NvY29hL0tleUV2ZW50Q29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jb2NvYS9LZXlFdmVudENvY29hLm1tCmluZGV4IGY0ZWVlNjVmMDk5M2I5ZDRkOWJkNmZl
OWVkYTdhZDBhNjE1MzczNTIuLjFjNWUyNDNjODUyYTM4NTA5Yzg5Y2M1OTE5Y2ZjMTQyMDY3MTk5
YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL0tleUV2ZW50Q29j
b2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvS2V5RXZlbnRDb2NvYS5t
bQpAQCAtMjIwLDcgKzIyMCw3IEBAIFN0cmluZyBrZXlJZGVudGlmaWVyRm9yQ2hhckNvZGUodW5p
Y2hhciBjaGFyQ29kZSkKIAogICAgICAgICAvLyAiQWx0IgogICAgICAgICBjYXNlIE5TTWVudUZ1
bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJBbHQiOworICAgICAgICAgICAgcmV0dXJu
ICJBbHQiX3M7CiAKICAgICAgICAgLy8gIkFwcHMiCiAgICAgICAgIC8vICJCcm93c2VyQmFjayIK
QEAgLTIzMyw3ICsyMzMsNyBAQCBTdHJpbmcga2V5SWRlbnRpZmllckZvckNoYXJDb2RlKHVuaWNo
YXIgY2hhckNvZGUpCiAKICAgICAgICAgLy8gIkNsZWFyIgogICAgICAgICBjYXNlIE5TQ2xlYXJM
aW5lRnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkNsZWFyIjsKKyAgICAgICAgICAg
IHJldHVybiAiQ2xlYXIiX3M7CiAKICAgICAgICAgLy8gIkNvZGVJbnB1dCIKICAgICAgICAgLy8g
IkNvbXBvc2UiCkBAIC0yNDUsMTAwICsyNDUsMTAwIEBAIFN0cmluZyBrZXlJZGVudGlmaWVyRm9y
Q2hhckNvZGUodW5pY2hhciBjaGFyQ29kZSkKIAogICAgICAgICAvLyAiRG93biIKICAgICAgICAg
Y2FzZSBOU0Rvd25BcnJvd0Z1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJEb3duIjsK
KyAgICAgICAgICAgIHJldHVybiAiRG93biJfczsKICAgICAgICAgLy8gIkVuZCIKICAgICAgICAg
Y2FzZSBOU0VuZEZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJFbmQiOworICAgICAg
ICAgICAgcmV0dXJuICJFbmQiX3M7CiAgICAgICAgIC8vICJFbnRlciIKICAgICAgICAgY2FzZSAw
eDM6IGNhc2UgMHhBOiBjYXNlIDB4RDogLy8gTWFjaW50b3NoIGNhbGxzIHRoZSBvbmUgb24gdGhl
IG1haW4ga2V5Ym9hcmQgUmV0dXJuLCBidXQgV2luZG93cyBjYWxscyBpdCBFbnRlciwgc28gd2Un
bGwgZG8gdGhlIHNhbWUgZm9yIHRoZSBET00KLSAgICAgICAgICAgIHJldHVybiAiRW50ZXIiOwor
ICAgICAgICAgICAgcmV0dXJuICJFbnRlciJfczsKIAogICAgICAgICAvLyAiRXJhc2VFb2YiCiAK
ICAgICAgICAgLy8gIkV4ZWN1dGUiCiAgICAgICAgIGNhc2UgTlNFeGVjdXRlRnVuY3Rpb25LZXk6
Ci0gICAgICAgICAgICByZXR1cm4gIkV4ZWN1dGUiOworICAgICAgICAgICAgcmV0dXJuICJFeGVj
dXRlIl9zOwogCiAgICAgICAgIC8vICJFeHNlbCIKIAogICAgICAgICAvLyAiRjEiCiAgICAgICAg
IGNhc2UgTlNGMUZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJGMSI7CisgICAgICAg
ICAgICByZXR1cm4gIkYxIl9zOwogICAgICAgICAvLyAiRjIiCiAgICAgICAgIGNhc2UgTlNGMkZ1
bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJGMiI7CisgICAgICAgICAgICByZXR1cm4g
IkYyIl9zOwogICAgICAgICAvLyAiRjMiCiAgICAgICAgIGNhc2UgTlNGM0Z1bmN0aW9uS2V5Ogot
ICAgICAgICAgICAgcmV0dXJuICJGMyI7CisgICAgICAgICAgICByZXR1cm4gIkYzIl9zOwogICAg
ICAgICAvLyAiRjQiCiAgICAgICAgIGNhc2UgTlNGNEZ1bmN0aW9uS2V5OgotICAgICAgICAgICAg
cmV0dXJuICJGNCI7CisgICAgICAgICAgICByZXR1cm4gIkY0Il9zOwogICAgICAgICAvLyAiRjUi
CiAgICAgICAgIGNhc2UgTlNGNUZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJGNSI7
CisgICAgICAgICAgICByZXR1cm4gIkY1Il9zOwogICAgICAgICAvLyAiRjYiCiAgICAgICAgIGNh
c2UgTlNGNkZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJGNiI7CisgICAgICAgICAg
ICByZXR1cm4gIkY2Il9zOwogICAgICAgICAvLyAiRjciCiAgICAgICAgIGNhc2UgTlNGN0Z1bmN0
aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJGNyI7CisgICAgICAgICAgICByZXR1cm4gIkY3
Il9zOwogICAgICAgICAvLyAiRjgiCiAgICAgICAgIGNhc2UgTlNGOEZ1bmN0aW9uS2V5OgotICAg
ICAgICAgICAgcmV0dXJuICJGOCI7CisgICAgICAgICAgICByZXR1cm4gIkY4Il9zOwogICAgICAg
ICAvLyAiRjkiCiAgICAgICAgIGNhc2UgTlNGOUZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0
dXJuICJGOSI7CisgICAgICAgICAgICByZXR1cm4gIkY5Il9zOwogICAgICAgICAvLyAiRjEwIgog
ICAgICAgICBjYXNlIE5TRjEwRnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkYxMCI7
CisgICAgICAgICAgICByZXR1cm4gIkYxMCJfczsKICAgICAgICAgLy8gIkYxMSIKICAgICAgICAg
Y2FzZSBOU0YxMUZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJGMTEiOworICAgICAg
ICAgICAgcmV0dXJuICJGMTEiX3M7CiAgICAgICAgIC8vICJGMTIiCiAgICAgICAgIGNhc2UgTlNG
MTJGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiRjEyIjsKKyAgICAgICAgICAgIHJl
dHVybiAiRjEyIl9zOwogICAgICAgICAvLyAiRjEzIgogICAgICAgICBjYXNlIE5TRjEzRnVuY3Rp
b25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkYxMyI7CisgICAgICAgICAgICByZXR1cm4gIkYx
MyJfczsKICAgICAgICAgLy8gIkYxNCIKICAgICAgICAgY2FzZSBOU0YxNEZ1bmN0aW9uS2V5Ogot
ICAgICAgICAgICAgcmV0dXJuICJGMTQiOworICAgICAgICAgICAgcmV0dXJuICJGMTQiX3M7CiAg
ICAgICAgIC8vICJGMTUiCiAgICAgICAgIGNhc2UgTlNGMTVGdW5jdGlvbktleToKLSAgICAgICAg
ICAgIHJldHVybiAiRjE1IjsKKyAgICAgICAgICAgIHJldHVybiAiRjE1Il9zOwogICAgICAgICAv
LyAiRjE2IgogICAgICAgICBjYXNlIE5TRjE2RnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1
cm4gIkYxNiI7CisgICAgICAgICAgICByZXR1cm4gIkYxNiJfczsKICAgICAgICAgLy8gIkYxNyIK
ICAgICAgICAgY2FzZSBOU0YxN0Z1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJGMTci
OworICAgICAgICAgICAgcmV0dXJuICJGMTciX3M7CiAgICAgICAgIC8vICJGMTgiCiAgICAgICAg
IGNhc2UgTlNGMThGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiRjE4IjsKKyAgICAg
ICAgICAgIHJldHVybiAiRjE4Il9zOwogICAgICAgICAvLyAiRjE5IgogICAgICAgICBjYXNlIE5T
RjE5RnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkYxOSI7CisgICAgICAgICAgICBy
ZXR1cm4gIkYxOSJfczsKICAgICAgICAgLy8gIkYyMCIKICAgICAgICAgY2FzZSBOU0YyMEZ1bmN0
aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJGMjAiOworICAgICAgICAgICAgcmV0dXJuICJG
MjAiX3M7CiAgICAgICAgIC8vICJGMjEiCiAgICAgICAgIGNhc2UgTlNGMjFGdW5jdGlvbktleToK
LSAgICAgICAgICAgIHJldHVybiAiRjIxIjsKKyAgICAgICAgICAgIHJldHVybiAiRjIxIl9zOwog
ICAgICAgICAvLyAiRjIyIgogICAgICAgICBjYXNlIE5TRjIyRnVuY3Rpb25LZXk6Ci0gICAgICAg
ICAgICByZXR1cm4gIkYyMiI7CisgICAgICAgICAgICByZXR1cm4gIkYyMiJfczsKICAgICAgICAg
Ly8gIkYyMyIKICAgICAgICAgY2FzZSBOU0YyM0Z1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0
dXJuICJGMjMiOworICAgICAgICAgICAgcmV0dXJuICJGMjMiX3M7CiAgICAgICAgIC8vICJGMjQi
CiAgICAgICAgIGNhc2UgTlNGMjRGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiRjI0
IjsKKyAgICAgICAgICAgIHJldHVybiAiRjI0Il9zOwogCiAgICAgICAgIC8vICJGaW5hbE1vZGUi
CiAKICAgICAgICAgLy8gIkZpbmQiCiAgICAgICAgIGNhc2UgTlNGaW5kRnVuY3Rpb25LZXk6Ci0g
ICAgICAgICAgICByZXR1cm4gIkZpbmQiOworICAgICAgICAgICAgcmV0dXJuICJGaW5kIl9zOwog
CiAgICAgICAgIC8vICJGdWxsV2lkdGgiCiAgICAgICAgIC8vICJIYWxmV2lkdGgiCkBAIC0zNDcs
MTYgKzM0NywxNiBAQCBTdHJpbmcga2V5SWRlbnRpZmllckZvckNoYXJDb2RlKHVuaWNoYXIgY2hh
ckNvZGUpCiAKICAgICAgICAgLy8gIkhlbHAiCiAgICAgICAgIGNhc2UgTlNIZWxwRnVuY3Rpb25L
ZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkhlbHAiOworICAgICAgICAgICAgcmV0dXJuICJIZWxw
Il9zOwogCiAgICAgICAgIC8vICJIaXJhZ2FuYSIKIAogICAgICAgICAvLyAiSG9tZSIKICAgICAg
ICAgY2FzZSBOU0hvbWVGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiSG9tZSI7Cisg
ICAgICAgICAgICByZXR1cm4gIkhvbWUiX3M7CiAgICAgICAgIC8vICJJbnNlcnQiCiAgICAgICAg
IGNhc2UgTlNJbnNlcnRGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiSW5zZXJ0IjsK
KyAgICAgICAgICAgIHJldHVybiAiSW5zZXJ0Il9zOwogCiAgICAgICAgIC8vICJKYXBhbmVzZUhp
cmFnYW5hIgogICAgICAgICAvLyAiSmFwYW5lc2VLYXRha2FuYSIKQEAgLTM3MSw3ICszNzEsNyBA
QCBTdHJpbmcga2V5SWRlbnRpZmllckZvckNoYXJDb2RlKHVuaWNoYXIgY2hhckNvZGUpCiAKICAg
ICAgICAgLy8gIkxlZnQiCiAgICAgICAgIGNhc2UgTlNMZWZ0QXJyb3dGdW5jdGlvbktleToKLSAg
ICAgICAgICAgIHJldHVybiAiTGVmdCI7CisgICAgICAgICAgICByZXR1cm4gIkxlZnQiX3M7CiAK
ICAgICAgICAgLy8gIk1ldGEiCiAgICAgICAgIC8vICJNZWRpYU5leHRUcmFjayIKQEAgLTM4MSw1
OSArMzgxLDU5IEBAIFN0cmluZyBrZXlJZGVudGlmaWVyRm9yQ2hhckNvZGUodW5pY2hhciBjaGFy
Q29kZSkKIAogICAgICAgICAvLyAiTW9kZUNoYW5nZSIKICAgICAgICAgY2FzZSBOU01vZGVTd2l0
Y2hGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiTW9kZUNoYW5nZSI7CisgICAgICAg
ICAgICByZXR1cm4gIk1vZGVDaGFuZ2UiX3M7CiAKICAgICAgICAgLy8gIk5vbmNvbnZlcnQiCiAg
ICAgICAgIC8vICJOdW1Mb2NrIgogCiAgICAgICAgIC8vICJQYWdlRG93biIKICAgICAgICAgY2Fz
ZSBOU1BhZ2VEb3duRnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIlBhZ2VEb3duIjsK
KyAgICAgICAgICAgIHJldHVybiAiUGFnZURvd24iX3M7CiAgICAgICAgIC8vICJQYWdlVXAiCiAg
ICAgICAgIGNhc2UgTlNQYWdlVXBGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiUGFn
ZVVwIjsKKyAgICAgICAgICAgIHJldHVybiAiUGFnZVVwIl9zOwogCiAgICAgICAgIC8vICJQYXN0
ZSIKIAogICAgICAgICAvLyAiUGF1c2UiCiAgICAgICAgIGNhc2UgTlNQYXVzZUZ1bmN0aW9uS2V5
OgotICAgICAgICAgICAgcmV0dXJuICJQYXVzZSI7CisgICAgICAgICAgICByZXR1cm4gIlBhdXNl
Il9zOwogCiAgICAgICAgIC8vICJQbGF5IgogICAgICAgICAvLyAiUHJldmlvdXNDYW5kaWRhdGUi
CiAKICAgICAgICAgLy8gIlByaW50U2NyZWVuIgogICAgICAgICBjYXNlIE5TUHJpbnRTY3JlZW5G
dW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiUHJpbnRTY3JlZW4iOworICAgICAgICAg
ICAgcmV0dXJuICJQcmludFNjcmVlbiJfczsKIAogICAgICAgICAvLyAiUHJvY2VzcyIKICAgICAg
ICAgLy8gIlByb3BzIgogCiAgICAgICAgIC8vICJSaWdodCIKICAgICAgICAgY2FzZSBOU1JpZ2h0
QXJyb3dGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiUmlnaHQiOworICAgICAgICAg
ICAgcmV0dXJuICJSaWdodCJfczsKIAogICAgICAgICAvLyAiUm9tYW5DaGFyYWN0ZXJzIgogCiAg
ICAgICAgIC8vICJTY3JvbGwiCiAgICAgICAgIGNhc2UgTlNTY3JvbGxMb2NrRnVuY3Rpb25LZXk6
Ci0gICAgICAgICAgICByZXR1cm4gIlNjcm9sbCI7CisgICAgICAgICAgICByZXR1cm4gIlNjcm9s
bCJfczsKICAgICAgICAgLy8gIlNlbGVjdCIKICAgICAgICAgY2FzZSBOU1NlbGVjdEZ1bmN0aW9u
S2V5OgotICAgICAgICAgICAgcmV0dXJuICJTZWxlY3QiOworICAgICAgICAgICAgcmV0dXJuICJT
ZWxlY3QiX3M7CiAKICAgICAgICAgLy8gIlNlbGVjdE1lZGlhIgogICAgICAgICAvLyAiU2hpZnQi
CiAKICAgICAgICAgLy8gIlN0b3AiCiAgICAgICAgIGNhc2UgTlNTdG9wRnVuY3Rpb25LZXk6Ci0g
ICAgICAgICAgICByZXR1cm4gIlN0b3AiOworICAgICAgICAgICAgcmV0dXJuICJTdG9wIl9zOwog
ICAgICAgICAvLyAiVXAiCiAgICAgICAgIGNhc2UgTlNVcEFycm93RnVuY3Rpb25LZXk6Ci0gICAg
ICAgICAgICByZXR1cm4gIlVwIjsKKyAgICAgICAgICAgIHJldHVybiAiVXAiX3M7CiAgICAgICAg
IC8vICJVbmRvIgogICAgICAgICBjYXNlIE5TVW5kb0Z1bmN0aW9uS2V5OgotICAgICAgICAgICAg
cmV0dXJuICJVbmRvIjsKKyAgICAgICAgICAgIHJldHVybiAiVW5kbyJfczsKIAogICAgICAgICAv
LyAiVm9sdW1lRG93biIKICAgICAgICAgLy8gIlZvbHVtZU11dGUiCkBAIC00NDMsMzggKzQ0Mywz
OCBAQCBTdHJpbmcga2V5SWRlbnRpZmllckZvckNoYXJDb2RlKHVuaWNoYXIgY2hhckNvZGUpCiAK
ICAgICAgICAgLy8gTW9yZSBmdW5jdGlvbiBrZXlzLCBub3QgaW4gdGhlIGtleSBpZGVudGlmaWVy
IHNwZWNpZmljYXRpb24uCiAgICAgICAgIGNhc2UgTlNGMjVGdW5jdGlvbktleToKLSAgICAgICAg
ICAgIHJldHVybiAiRjI1IjsKKyAgICAgICAgICAgIHJldHVybiAiRjI1Il9zOwogICAgICAgICBj
YXNlIE5TRjI2RnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkYyNiI7CisgICAgICAg
ICAgICByZXR1cm4gIkYyNiJfczsKICAgICAgICAgY2FzZSBOU0YyN0Z1bmN0aW9uS2V5OgotICAg
ICAgICAgICAgcmV0dXJuICJGMjciOworICAgICAgICAgICAgcmV0dXJuICJGMjciX3M7CiAgICAg
ICAgIGNhc2UgTlNGMjhGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiRjI4IjsKKyAg
ICAgICAgICAgIHJldHVybiAiRjI4Il9zOwogICAgICAgICBjYXNlIE5TRjI5RnVuY3Rpb25LZXk6
Ci0gICAgICAgICAgICByZXR1cm4gIkYyOSI7CisgICAgICAgICAgICByZXR1cm4gIkYyOSJfczsK
ICAgICAgICAgY2FzZSBOU0YzMEZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJGMzAi
OworICAgICAgICAgICAgcmV0dXJuICJGMzAiX3M7CiAgICAgICAgIGNhc2UgTlNGMzFGdW5jdGlv
bktleToKLSAgICAgICAgICAgIHJldHVybiAiRjMxIjsKKyAgICAgICAgICAgIHJldHVybiAiRjMx
Il9zOwogICAgICAgICBjYXNlIE5TRjMyRnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4g
IkYzMiI7CisgICAgICAgICAgICByZXR1cm4gIkYzMiJfczsKICAgICAgICAgY2FzZSBOU0YzM0Z1
bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJGMzMiOworICAgICAgICAgICAgcmV0dXJu
ICJGMzMiX3M7CiAgICAgICAgIGNhc2UgTlNGMzRGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJl
dHVybiAiRjM0IjsKKyAgICAgICAgICAgIHJldHVybiAiRjM0Il9zOwogICAgICAgICBjYXNlIE5T
RjM1RnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkYzNSI7CisgICAgICAgICAgICBy
ZXR1cm4gIkYzNSJfczsKIAogICAgICAgICAvLyBUdXJuIDB4N0YgaW50byAweDA4LCBiZWNhdXNl
IGJhY2tzcGFjZSBuZWVkcyB0byBhbHdheXMgYmUgMHgwOC4KICAgICAgICAgY2FzZSAweDdGOgot
ICAgICAgICAgICAgcmV0dXJuICJVKzAwMDgiOworICAgICAgICAgICAgcmV0dXJuICJVKzAwMDgi
X3M7CiAgICAgICAgIC8vIFN0YW5kYXJkIHNheXMgdGhhdCBERUwgYmVjb21lcyBVKzAwN0YuCiAg
ICAgICAgIGNhc2UgTlNEZWxldGVGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiVSsw
MDdGIjsKKyAgICAgICAgICAgIHJldHVybiAiVSswMDdGIl9zOwogCiAgICAgICAgIC8vIEFsd2F5
cyB1c2UgMHgwOSBmb3IgdGFiIGluc3RlYWQgb2YgQXBwS2l0J3MgYmFja3RhYiBjaGFyYWN0ZXIu
CiAgICAgICAgIGNhc2UgTlNCYWNrVGFiQ2hhcmFjdGVyOgotICAgICAgICAgICAgcmV0dXJuICJV
KzAwMDkiOworICAgICAgICAgICAgcmV0dXJuICJVKzAwMDkiX3M7CiAKICAgICAgICAgY2FzZSBO
U0JlZ2luRnVuY3Rpb25LZXk6CiAgICAgICAgIGNhc2UgTlNCcmVha0Z1bmN0aW9uS2V5OgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvUGFzdGVib2FyZENvY29hLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvUGFzdGVib2FyZENvY29hLm1tCmluZGV4
IDA2OTYxZmJhNDhhZDkxYjQyM2JjYTk4NWI2YzJlNWM2MjEwMWZjMmYuLjU5ODQyZjEyNjljNWI1
ZWRmMDk1YmQ5Y2I4ZWUzMzI2ZDY4N2FlMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2NvY29hL1Bhc3RlYm9hcmRDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jb2NvYS9QYXN0ZWJvYXJkQ29jb2EubW0KQEAgLTEwNCwyNSArMTA0LDI1IEBAIHN0YXRp
YyBjb25zdCBjaGFyKiBpbWFnZVR5cGVUb01JTUVUeXBlKEltYWdlVHlwZSB0eXBlKQogICAgIH0K
IH0KIAotc3RhdGljIGNvbnN0IGNoYXIqIGltYWdlVHlwZVRvRmFrZUZpbGVuYW1lKEltYWdlVHlw
ZSB0eXBlKQorc3RhdGljIEFTQ0lJTGl0ZXJhbCBpbWFnZVR5cGVUb0Zha2VGaWxlbmFtZShJbWFn
ZVR5cGUgdHlwZSkKIHsKICAgICBzd2l0Y2ggKHR5cGUpIHsKICAgICBjYXNlIEltYWdlVHlwZTo6
SW52YWxpZDoKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHJldHVybiBu
dWxscHRyOworICAgICAgICByZXR1cm4gQVNDSUlMaXRlcmFsOjpudWxsKCk7CiAgICAgY2FzZSBJ
bWFnZVR5cGU6OlRJRkY6CiAjaWYgUExBVEZPUk0oTUFDKQotICAgICAgICByZXR1cm4gImltYWdl
LnBuZyI7IC8vIEZvciBXZWIgY29tcGF0aWJpbGl0eSwgd2UgcHJldGVuZCB0byBoYXZlIFBORyBp
bnN0ZWFkLgorICAgICAgICByZXR1cm4gImltYWdlLnBuZyJfczsgLy8gRm9yIFdlYiBjb21wYXRp
YmlsaXR5LCB3ZSBwcmV0ZW5kIHRvIGhhdmUgUE5HIGluc3RlYWQuCiAjZWxzZQogICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIHJl
dHVybiBBU0NJSUxpdGVyYWw6Om51bGwoKTsKICNlbmRpZgogICAgIGNhc2UgSW1hZ2VUeXBlOjpQ
Tkc6Ci0gICAgICAgIHJldHVybiAiaW1hZ2UucG5nIjsKKyAgICAgICAgcmV0dXJuICJpbWFnZS5w
bmciX3M7CiAgICAgY2FzZSBJbWFnZVR5cGU6OkpQRUc6Ci0gICAgICAgIHJldHVybiAiaW1hZ2Uu
anBlZyI7CisgICAgICAgIHJldHVybiAiaW1hZ2UuanBlZyJfczsKICAgICBjYXNlIEltYWdlVHlw
ZTo6R0lGOgotICAgICAgICByZXR1cm4gImltYWdlLmdpZiI7CisgICAgICAgIHJldHVybiAiaW1h
Z2UuZ2lmIl9zOwogICAgIH0KIH0KIApAQCAtMjM0LDcgKzIzNCw3IEBAIHZvaWQgUGFzdGVib2Fy
ZDo6cmVhZChQYXN0ZWJvYXJkRmlsZVJlYWRlciYgcmVhZGVyLCBzdGQ6Om9wdGlvbmFsPHNpemVf
dD4gaXRlbUluCiAgICAgICAgIGZvciAoYXV0byBjb2NvYVR5cGUgOiBpbmZvLnBsYXRmb3JtVHlw
ZXNCeUZpZGVsaXR5KSB7CiAgICAgICAgICAgICBhdXRvIGltYWdlVHlwZSA9IGNvY29hVHlwZVRv
SW1hZ2VUeXBlKGNvY29hVHlwZSk7CiAgICAgICAgICAgICBhdXRvKiBtaW1lVHlwZSA9IGltYWdl
VHlwZVRvTUlNRVR5cGUoaW1hZ2VUeXBlKTsKLSAgICAgICAgICAgIGlmICghbWltZVR5cGUgfHwg
IXJlYWRlci5zaG91bGRSZWFkQnVmZmVyKG1pbWVUeXBlKSkKKyAgICAgICAgICAgIGlmICghbWlt
ZVR5cGUgfHwgIXJlYWRlci5zaG91bGRSZWFkQnVmZmVyKFN0cmluZyB7IG1pbWVUeXBlIH0pKQog
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgYXV0byBidWZmZXIgPSByZWFk
QnVmZmVyKGl0ZW1JbmRleCwgY29jb2FUeXBlKTsKICNpZiBQTEFURk9STShNQUMpCkBAIC0yNDIs
NyArMjQyLDcgQEAgdm9pZCBQYXN0ZWJvYXJkOjpyZWFkKFBhc3RlYm9hcmRGaWxlUmVhZGVyJiBy
ZWFkZXIsIHN0ZDo6b3B0aW9uYWw8c2l6ZV90PiBpdGVtSW4KICAgICAgICAgICAgICAgICBidWZm
ZXIgPSBjb252ZXJ0VElGRlRvUE5HKGJ1ZmZlci5yZWxlYXNlTm9uTnVsbCgpKTsKICNlbmRpZgog
ICAgICAgICAgICAgaWYgKGJ1ZmZlcikgewotICAgICAgICAgICAgICAgIHJlYWRlci5yZWFkQnVm
ZmVyKGltYWdlVHlwZVRvRmFrZUZpbGVuYW1lKGltYWdlVHlwZSksIG1pbWVUeXBlLCBidWZmZXIu
cmVsZWFzZU5vbk51bGwoKSk7CisgICAgICAgICAgICAgICAgcmVhZGVyLnJlYWRCdWZmZXIoaW1h
Z2VUeXBlVG9GYWtlRmlsZW5hbWUoaW1hZ2VUeXBlKSwgU3RyaW5nIHsgbWltZVR5cGUgfSwgYnVm
ZmVyLnJlbGVhc2VOb25OdWxsKCkpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAg
ICAgfQogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2Nv
YS9QYXN0ZWJvYXJkQ3VzdG9tRGF0YUNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y29jb2EvUGFzdGVib2FyZEN1c3RvbURhdGFDb2NvYS5tbQppbmRleCAyNjIxMjg0NGYyMTA0YTc3
N2NmNjU1NmQ3NWE2ZTVjYWVjOTczZGU4Li4zZGU1MGEwZTkyYzI5MDRjMTllYjZkZWJkYTcxNjgy
ZWZiNmQ2NzUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9QYXN0
ZWJvYXJkQ3VzdG9tRGF0YUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nv
Y29hL1Bhc3RlYm9hcmRDdXN0b21EYXRhQ29jb2EubW0KQEAgLTMwLDkgKzMwLDkgQEAKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1jb25zdCBjaGFyKiBQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29j
b2FUeXBlKCkKK0FTQ0lJTGl0ZXJhbCBQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkK
IHsKLSAgICByZXR1cm4gImNvbS5hcHBsZS5XZWJLaXQuY3VzdG9tLXBhc3RlYm9hcmQtZGF0YSI7
CisgICAgcmV0dXJuICJjb20uYXBwbGUuV2ViS2l0LmN1c3RvbS1wYXN0ZWJvYXJkLWRhdGEiX3M7
CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ZvdXJDQy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvRm91ckNDLmgKaW5kZXggYjM3ZDA1MGU5YzBjMzY3NzA3ZGFlMGI2YWNjYjFiYzM3Zjhl
YWMxMy4uNjZmYjNkZTA3MTE1MTMwNjc4OGRjMTI2YzIzZjRiYzg2MTI1ODM2NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm91ckNDLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm91ckNDLmgKQEAgLTg1LDcgKzg1LDcgQEAgbmFt
ZXNwYWNlIFdURiB7CiB0ZW1wbGF0ZTx0eXBlbmFtZT4gc3RydWN0IExvZ0FyZ3VtZW50OwogCiB0
ZW1wbGF0ZTw+IHN0cnVjdCBMb2dBcmd1bWVudDxXZWJDb3JlOjpGb3VyQ0M+IHsKLSAgICBzdGF0
aWMgU3RyaW5nIHRvU3RyaW5nKGNvbnN0IFdlYkNvcmU6OkZvdXJDQyYgY29kZSkgeyByZXR1cm4g
Y29kZS5zdHJpbmcoKS5kYXRhKCk7IH0KKyAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGNvbnN0
IFdlYkNvcmU6OkZvdXJDQyYgY29kZSkgeyByZXR1cm4gU3RyaW5nIHsgY29kZS5zdHJpbmcoKS5k
YXRhKCkgfTsgfQogfTsKIAogfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4
dEdMQU5HTEUuY3BwCmluZGV4IDY4NmM1ZjIwOTg3NjdmZDJlYTU3NTQ0ZTNhY2NlZTRmMmU3YmU1
ZDguLjI3NDYwOWExNTA5YWI4NzNlMzg2MjFjNGVjNTU4YzhhNDI4YzU0ZjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dEdM
QU5HTEUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dy
YXBoaWNzQ29udGV4dEdMQU5HTEUuY3BwCkBAIC01MTAsOCArNTEwLDkgQEAgdm9pZCBHcmFwaGlj
c0NvbnRleHRHTEFOR0xFOjp2YWxpZGF0ZURlcHRoU3RlbmNpbChjb25zdCBjaGFyKiBwYWNrZWRE
ZXB0aFN0ZW5jaWwKICAgICAvLyBGSVhNRTogU2luY2UgdGhlIGNvbnN0cnVjdG9ycyBvZiB2YXJp
b3VzIHBsYXRmb3JtcyBhcmUgbm90IHNoYXJlZCwgd2UgaW5pdGlhbGl6ZSB0aGlzIGhlcmUuCiAg
ICAgLy8gVXBvbiBjb25zdHJ1Y3RpbmcgdGhlIGNvbnRleHQsIGFsd2F5cyBpbml0aWFsaXplIHRo
ZSBleHRlbnNpb25zIHRoYXQgdGhlIFdlYkdMUmVuZGVyaW5nQ29udGV4dCogd2lsbAogICAgIC8v
IHVzZSB0byB0dXJuIG9uIGZlYXR1cmUgZmxhZ3MuCi0gICAgaWYgKHN1cHBvcnRzRXh0ZW5zaW9u
KHBhY2tlZERlcHRoU3RlbmNpbEV4dGVuc2lvbikpIHsKLSAgICAgICAgZW5zdXJlRXh0ZW5zaW9u
RW5hYmxlZChwYWNrZWREZXB0aFN0ZW5jaWxFeHRlbnNpb24pOworICAgIFN0cmluZyBwYWNrZWRE
ZXB0aFN0ZW5jaWxFeHRlbnNpb25TdHJpbmcgeyBwYWNrZWREZXB0aFN0ZW5jaWxFeHRlbnNpb24g
fTsKKyAgICBpZiAoc3VwcG9ydHNFeHRlbnNpb24ocGFja2VkRGVwdGhTdGVuY2lsRXh0ZW5zaW9u
U3RyaW5nKSkgeworICAgICAgICBlbnN1cmVFeHRlbnNpb25FbmFibGVkKHBhY2tlZERlcHRoU3Rl
bmNpbEV4dGVuc2lvblN0cmluZyk7CiAgICAgICAgIG1faW50ZXJuYWxEZXB0aFN0ZW5jaWxGb3Jt
YXQgPSBHTF9ERVBUSDI0X1NURU5DSUw4X09FUzsKICAgICB9IGVsc2UKICAgICAgICAgbV9pbnRl
cm5hbERlcHRoU3RlbmNpbEZvcm1hdCA9IEdMX0RFUFRIX0NPTVBPTkVOVDE2OwpAQCAtNTI4LDE3
ICs1MjksMTcgQEAgdm9pZCBHcmFwaGljc0NvbnRleHRHTEFOR0xFOjp2YWxpZGF0ZURlcHRoU3Rl
bmNpbChjb25zdCBjaGFyKiBwYWNrZWREZXB0aFN0ZW5jaWwKIAogICAgIGlmIChhdHRycy5hbnRp
YWxpYXMpIHsKICAgICAgICAgLy8gRklYTUU6IG11c3QgYWRqdXN0IHRoaXMgd2hlbiB1cGdyYWRp
bmcgdG8gV2ViR0wgMi4wIC8gT3BlbkdMIEVTIDMuMCBzdXBwb3J0LgotICAgICAgICBpZiAoIXN1
cHBvcnRzRXh0ZW5zaW9uKCJHTF9BTkdMRV9mcmFtZWJ1ZmZlcl9tdWx0aXNhbXBsZSIpIHx8ICFz
dXBwb3J0c0V4dGVuc2lvbigiR0xfQU5HTEVfZnJhbWVidWZmZXJfYmxpdCIpIHx8ICFzdXBwb3J0
c0V4dGVuc2lvbigiR0xfT0VTX3JnYjhfcmdiYTgiKSkgeworICAgICAgICBpZiAoIXN1cHBvcnRz
RXh0ZW5zaW9uKCJHTF9BTkdMRV9mcmFtZWJ1ZmZlcl9tdWx0aXNhbXBsZSJfcykgfHwgIXN1cHBv
cnRzRXh0ZW5zaW9uKCJHTF9BTkdMRV9mcmFtZWJ1ZmZlcl9ibGl0Il9zKSB8fCAhc3VwcG9ydHNF
eHRlbnNpb24oIkdMX09FU19yZ2I4X3JnYmE4Il9zKSkgewogICAgICAgICAgICAgYXR0cnMuYW50
aWFsaWFzID0gZmFsc2U7CiAgICAgICAgICAgICBzZXRDb250ZXh0QXR0cmlidXRlcyhhdHRycyk7
CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBlbnN1cmVFeHRlbnNpb25FbmFibGVkKCJH
TF9BTkdMRV9mcmFtZWJ1ZmZlcl9tdWx0aXNhbXBsZSIpOwotICAgICAgICAgICAgZW5zdXJlRXh0
ZW5zaW9uRW5hYmxlZCgiR0xfQU5HTEVfZnJhbWVidWZmZXJfYmxpdCIpOwotICAgICAgICAgICAg
ZW5zdXJlRXh0ZW5zaW9uRW5hYmxlZCgiR0xfT0VTX3JnYjhfcmdiYTgiKTsKKyAgICAgICAgICAg
IGVuc3VyZUV4dGVuc2lvbkVuYWJsZWQoIkdMX0FOR0xFX2ZyYW1lYnVmZmVyX211bHRpc2FtcGxl
Il9zKTsKKyAgICAgICAgICAgIGVuc3VyZUV4dGVuc2lvbkVuYWJsZWQoIkdMX0FOR0xFX2ZyYW1l
YnVmZmVyX2JsaXQiX3MpOworICAgICAgICAgICAgZW5zdXJlRXh0ZW5zaW9uRW5hYmxlZCgiR0xf
T0VTX3JnYjhfcmdiYTgiX3MpOwogICAgICAgICB9CiAgICAgfSBlbHNlIGlmIChhdHRycy5wcmVz
ZXJ2ZURyYXdpbmdCdWZmZXIpIHsKICAgICAgICAgLy8gTmVlZGVkIGZvciBwcmVzZXJ2ZURyYXdp
bmdCdWZmZXI6dHJ1ZSBzdXBwb3J0IHdpdGhvdXQgYW50aWFsaWFzaW5nLgotICAgICAgICBlbnN1
cmVFeHRlbnNpb25FbmFibGVkKCJHTF9BTkdMRV9mcmFtZWJ1ZmZlcl9ibGl0Iik7CisgICAgICAg
IGVuc3VyZUV4dGVuc2lvbkVuYWJsZWQoIkdMX0FOR0xFX2ZyYW1lYnVmZmVyX2JsaXQiX3MpOwog
ICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL0NETVByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQ0RNUHJpdmF0ZU1lZGlhU291cmNl
QVZGT2JqQy5tbQppbmRleCAyZGFmOGVhYWM5MDhjZWJiYjk0ZGEzMzA2NDRhNWU3NzE3YjM2NzM5
Li5hZWEyZThhYjk5MDE5NTgyZTRkZDQ5MzhlMjAzN2YwMjA2NWQyNDI4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQ0RNUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vQ0RNUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQpAQCAtNDYsNyAr
NDYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGF1dG8gQ0RNUHJpdmF0ZU1lZGlhU291cmNl
QVZGT2JqQzo6cGFyc2VLZXlTeXN0ZW0oY29uc3QgU3RyaW5nJiBrZXlTeXN0ZW0pIC0+IHN0ZDo6
b3B0aW9uYWw8S2V5U3lzdGVtUGFyYW1ldGVycz4KIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8UmVndWxhckV4cHJlc3Npb24+IGtleVN5c3RlbVJFKCJeY29tXFwuYXBwbGVcXC5mcHNcXC5b
MjNdX1xcZCsoPzosXFxkKykqJCIsIEpTQzo6WWFycjo6VGV4dENhc2VJbnNlbnNpdGl2ZSk7Cisg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJlZ3VsYXJFeHByZXNzaW9uPiBrZXlTeXN0ZW1SRSgi
XmNvbVxcLmFwcGxlXFwuZnBzXFwuWzIzXV9cXGQrKD86LFxcZCspKiQiX3MsIEpTQzo6WWFycjo6
VGV4dENhc2VJbnNlbnNpdGl2ZSk7CiAKICAgICBpZiAoa2V5U3lzdGVtUkUuZ2V0KCkubWF0Y2go
a2V5U3lzdGVtKSA8IDApCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5
ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgKaW5kZXggYTgx
YjhlMjI2OWE2OGI0MzZhNTMyNjA1NWJlMGZhZjEwNTcwMmMyMS4uMDEzMmEyZjg0NzhhNmRlYTk3
ZThlYjlkN2NjNzZjMGFjNWVkZjY0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRp
YVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaApAQCAtMzExLDcgKzMxMSw3IEBAIHByb3RlY3Rl
ZDoKICAgICBNZWRpYVBsYXllciogcGxheWVyKCkgeyByZXR1cm4gbV9wbGF5ZXI7IH0KICAgICBj
b25zdCBNZWRpYVBsYXllciogcGxheWVyKCkgY29uc3QgeyByZXR1cm4gbV9wbGF5ZXI7IH0KIAot
ICAgIFN0cmluZyBlbmdpbmVEZXNjcmlwdGlvbigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJB
VkZvdW5kYXRpb24iOyB9CisgICAgU3RyaW5nIGVuZ2luZURlc2NyaXB0aW9uKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gIkFWRm91bmRhdGlvbiJfczsgfQogICAgIGxvbmcgcGxhdGZvcm1FcnJv
ckNvZGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBhc3NldEVycm9yQ29kZSgpOyB9CiAKICAg
ICB2b2lkIHRyYWNrTW9kZUNoYW5nZWQoKSBvdmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NETUluc3RhbmNlRmFp
clBsYXlTdHJlYW1pbmdBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakMu
bW0KaW5kZXggNzZlNjMxYjVmYWEyM2Q3NDUyYzY5MDA3ZmNlNGM1OTE1ZWQxZGU5NC4uMTMwNjhm
ODlhZWRhZDM1OWUzMjYyYmJjNmRkZGE0YzJkYTQ0NGEwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNSW5zdGFuY2VGYWly
UGxheVN0cmVhbWluZ0FWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9i
akMubW0KQEAgLTg5MSw3ICs4OTEsNyBAQCB2b2lkIENETUluc3RhbmNlU2Vzc2lvbkZhaXJQbGF5
U3RyZWFtaW5nQVZGT2JqQzo6dXBkYXRlTGljZW5zZShjb25zdCBTdHJpbmcmLCBMaQogICAgICAg
ICAgICAgaWYgKCFvYmplY3QpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAg
ICAgICAgICBhdXRvIGtleUlEU3RyaW5nID0gb2JqZWN0LT5nZXRTdHJpbmcoImtleUlEIik7Cisg
ICAgICAgICAgICBhdXRvIGtleUlEU3RyaW5nID0gb2JqZWN0LT5nZXRTdHJpbmcoImtleUlEIl9z
KTsKICAgICAgICAgICAgIGlmICgha2V5SURTdHJpbmcpCiAgICAgICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwogCkBAIC05MTEsOCArOTExLDggQEAgdm9pZCBDRE1JbnN0YW5jZVNlc3Npb25GYWly
UGxheVN0cmVhbWluZ0FWRk9iakM6OnVwZGF0ZUxpY2Vuc2UoY29uc3QgU3RyaW5nJiwgTGkKIAog
ICAgICAgICAgICAgYXV0byYgcmVxdWVzdCA9IG1fY3VycmVudFJlcXVlc3QudmFsdWUoKS5yZXF1
ZXN0c1tmb3VuZEluZGV4XTsKIAotICAgICAgICAgICAgYXV0byBwYXlsb2FkRmluZFJlc3VsdHMg
PSBvYmplY3QtPmZpbmQoInBheWxvYWQiKTsKLSAgICAgICAgICAgIGF1dG8gZXJyb3JGaW5kUmVz
dWx0cyA9IG9iamVjdC0+ZmluZCgiZXJyb3IiKTsKKyAgICAgICAgICAgIGF1dG8gcGF5bG9hZEZp
bmRSZXN1bHRzID0gb2JqZWN0LT5maW5kKCJwYXlsb2FkIl9zKTsKKyAgICAgICAgICAgIGF1dG8g
ZXJyb3JGaW5kUmVzdWx0cyA9IG9iamVjdC0+ZmluZCgiZXJyb3IiX3MpOwogICAgICAgICAgICAg
Ym9vbCBoYXNQYXlsb2FkID0gcGF5bG9hZEZpbmRSZXN1bHRzICE9IG9iamVjdC0+ZW5kKCk7CiAg
ICAgICAgICAgICBib29sIGhhc0Vycm9yID0gZXJyb3JGaW5kUmVzdWx0cyAhPSBvYmplY3QtPmVu
ZCgpOwogCkBAIC0xMjUzLDggKzEyNTMsOCBAQCB2b2lkIENETUluc3RhbmNlU2Vzc2lvbkZhaXJQ
bGF5U3RyZWFtaW5nQVZGT2JqQzo6ZGlkUHJvdmlkZVJlcXVlc3RzKFZlY3RvcjxSZXRhaQogICAg
ICAgICAgICAgYXV0byBlbnRyeSA9IEpTT046Ok9iamVjdDo6Y3JlYXRlKCk7CiAgICAgICAgICAg
ICBhdXRvJiBrZXlJRCA9IHJlcXVlc3REYXRhLmZpcnN0OwogICAgICAgICAgICAgYXV0byYgcGF5
bG9hZCA9IHJlcXVlc3REYXRhLnNlY29uZDsKLSAgICAgICAgICAgIGVudHJ5LT5zZXRTdHJpbmco
ImtleUlEIiwgYmFzZTY0RW5jb2RlVG9TdHJpbmcoa2V5SUQtPm1ha2VDb250aWd1b3VzKCktPmRh
dGEoKSwga2V5SUQtPnNpemUoKSkpOwotICAgICAgICAgICAgZW50cnktPnNldFN0cmluZygicGF5
bG9hZCIsIGJhc2U2NEVuY29kZVRvU3RyaW5nKHBheWxvYWQuZ2V0KCkuYnl0ZXMsIHBheWxvYWQu
Z2V0KCkubGVuZ3RoKSk7CisgICAgICAgICAgICBlbnRyeS0+c2V0U3RyaW5nKCJrZXlJRCJfcywg
YmFzZTY0RW5jb2RlVG9TdHJpbmcoa2V5SUQtPm1ha2VDb250aWd1b3VzKCktPmRhdGEoKSwga2V5
SUQtPnNpemUoKSkpOworICAgICAgICAgICAgZW50cnktPnNldFN0cmluZygicGF5bG9hZCJfcywg
YmFzZTY0RW5jb2RlVG9TdHJpbmcocGF5bG9hZC5nZXQoKS5ieXRlcywgcGF5bG9hZC5nZXQoKS5s
ZW5ndGgpKTsKICAgICAgICAgICAgIHJlcXVlc3RKU09OLT5wdXNoT2JqZWN0KFdURk1vdmUoZW50
cnkpKTsKICAgICAgICAgfQogICAgICAgICBhdXRvIHJlcXVlc3RCdWZmZXIgPSB1dGY4QnVmZmVy
KHJlcXVlc3RKU09OLT50b0pTT05TdHJpbmcoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRl
QVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tCmluZGV4IDZiYTZiOWJmMTJhZDNj
OWYzODkwN2MyZmQzNmZlODdhNTUzYjJhNDQuLjBlOGVhNjRmMDgzOGU2MmFkZTVjZjg5NzJjYWQx
ODlhYzU1ZDM1NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1
ZmZlclByaXZhdGVBVkZPYmpDLm1tCkBAIC02MDAsNyArNjAwLDcgQEAgdm9pZCBTb3VyY2VCdWZm
ZXJQcml2YXRlQVZGT2JqQzo6ZGlkUHJvdmlkZUNvbnRlbnRLZXlSZXF1ZXN0SW5pdGlhbGl6YXRp
b25EYXRhRm8KICAgICB9CiAKICAgICBtX2tleUlEcyA9IFdURk1vdmUoa2V5SURzLnZhbHVlKCkp
OwotICAgIHBsYXllci0+aW5pdGlhbGl6YXRpb25EYXRhRW5jb3VudGVyZWQoInNpbmYiLCBtX2lu
aXREYXRhLT50cnlDcmVhdGVBcnJheUJ1ZmZlcigpKTsKKyAgICBwbGF5ZXItPmluaXRpYWxpemF0
aW9uRGF0YUVuY291bnRlcmVkKCJzaW5mIl9zLCBtX2luaXREYXRhLT50cnlDcmVhdGVBcnJheUJ1
ZmZlcigpKTsKIAogICAgIG1fd2FpdGluZ0ZvcktleSA9IHRydWU7CiAgICAgcGxheWVyLT53YWl0
aW5nRm9yS2V5Q2hhbmdlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
aW9zL1BsYXRmb3JtUGFzdGVib2FyZElPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lv
cy9QbGF0Zm9ybVBhc3RlYm9hcmRJT1MubW0KaW5kZXggZDY0Yjk2ODM0NzM3ODMyZDJlZWQ2ODgy
MzYwMTIyNzA2NTU4NTNmYy4uMmUwNjg1N2VmMjZiOGJmZmY5YWExOTE4MDc4NGZkYWMxYTJiMjc1
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1BsYXRmb3JtUGFzdGVi
b2FyZElPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxhdGZvcm1QYXN0
ZWJvYXJkSU9TLm1tCkBAIC0xNTksNyArMTU5LDcgQEAgc3RhdGljIFZlY3RvcjxTdHJpbmc+IHdl
YlNhZmVUeXBlcyhOU0FycmF5PE5TU3RyaW5nICo+ICpwbGF0Zm9ybVR5cGVzLCBQbGF0Zm9ybVAK
IHsKICAgICBMaXN0SGFzaFNldDxTdHJpbmc+IGRvbVBhc3RlYm9hcmRUeXBlczsKICAgICBmb3Ig
KE5TU3RyaW5nICp0eXBlIGluIHBsYXRmb3JtVHlwZXMpIHsKLSAgICAgICAgaWYgKFt0eXBlIGlz
RXF1YWxUb1N0cmluZzpAKFBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKSldKQorICAg
ICAgICBpZiAoW3R5cGUgaXNFcXVhbFRvU3RyaW5nOkAoUGFzdGVib2FyZEN1c3RvbURhdGE6OmNv
Y29hVHlwZSgpLmNoYXJhY3RlcnMoKSldKQogICAgICAgICAgICAgY29udGludWU7CiAKICAgICAg
ICAgaWYgKFBhc3RlYm9hcmQ6OmlzU2FmZVR5cGVGb3JET01Ub1JlYWRBbmRXcml0ZSh0eXBlKSkg
ewpAQCAtNTAxLDcgKzUwMSw3IEBAIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAog
CiAgICAgUGFzdGVib2FyZEN1c3RvbURhdGEgY3VzdG9tRGF0YTsKICAgICBjdXN0b21EYXRhLnNl
dE9yaWdpbihjb250ZW50LmNvbnRlbnRPcmlnaW4pOwotICAgIFtyZXByZXNlbnRhdGlvbnNUb1Jl
Z2lzdGVyIGFkZERhdGE6Y3VzdG9tRGF0YS5jcmVhdGVTaGFyZWRCdWZmZXIoKS0+Y3JlYXRlTlNE
YXRhKCkuZ2V0KCkgZm9yVHlwZTpAKFBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKSld
OworICAgIFtyZXByZXNlbnRhdGlvbnNUb1JlZ2lzdGVyIGFkZERhdGE6Y3VzdG9tRGF0YS5jcmVh
dGVTaGFyZWRCdWZmZXIoKS0+Y3JlYXRlTlNEYXRhKCkuZ2V0KCkgZm9yVHlwZTpAKFBhc3RlYm9h
cmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKS5jaGFyYWN0ZXJzKCkpXTsKIAogICAgIHJlZ2lzdGVy
SXRlbVRvUGFzdGVib2FyZChyZXByZXNlbnRhdGlvbnNUb1JlZ2lzdGVyLmdldCgpLCBtX3Bhc3Rl
Ym9hcmQuZ2V0KCkpOwogfQpAQCAtNjA4LDcgKzYwOCw3IEBAIFZlY3RvcjxTdHJpbmc+IFBsYXRm
b3JtUGFzdGVib2FyZDo6dHlwZXNTYWZlRm9yRE9NVG9SZWFkQW5kV3JpdGUoY29uc3QgU3RyaW5n
JiBvCiAgICAgfQogI2VuZGlmIC8vIFBBU1RFQk9BUkRfU1VQUE9SVFNfUFJFU0VOVEFUSU9OX1NU
WUxFX0FORF9URUFNX0RBVEEKIAotICAgIGlmIChOU0RhdGEgKnNlcmlhbGl6ZWRDdXN0b21EYXRh
ID0gW21fcGFzdGVib2FyZCBkYXRhRm9yUGFzdGVib2FyZFR5cGU6QChQYXN0ZWJvYXJkQ3VzdG9t
RGF0YTo6Y29jb2FUeXBlKCkpXSkgeworICAgIGlmIChOU0RhdGEgKnNlcmlhbGl6ZWRDdXN0b21E
YXRhID0gW21fcGFzdGVib2FyZCBkYXRhRm9yUGFzdGVib2FyZFR5cGU6QChQYXN0ZWJvYXJkQ3Vz
dG9tRGF0YTo6Y29jb2FUeXBlKCkuY2hhcmFjdGVycygpKV0pIHsKICAgICAgICAgYXV0byBkYXRh
ID0gUGFzdGVib2FyZEN1c3RvbURhdGE6OmZyb21TaGFyZWRCdWZmZXIoU2hhcmVkQnVmZmVyOjpj
cmVhdGUoc2VyaWFsaXplZEN1c3RvbURhdGEpLmdldCgpKTsKICAgICAgICAgaWYgKGRhdGEub3Jp
Z2luKCkgPT0gb3JpZ2luKSB7CiAgICAgICAgICAgICBmb3IgKGF1dG8mIHR5cGUgOiBkYXRhLm9y
ZGVyZWRUeXBlcygpKQpAQCAtNjQ1LDcgKzY0NSw3IEBAIHN0YXRpYyBSZXRhaW5QdHI8V2ViSXRl
bVByb3ZpZGVyUmVnaXN0cmF0aW9uSW5mb0xpc3Q+IGNyZWF0ZUl0ZW1Qcm92aWRlclJlZ2lzdHJh
CiAgICAgICAgICAgICBOU0RpY3Rpb25hcnkgKnRlYW1EYXRhRGljdGlvbmFyeSA9IEB7IEAob3Jp
Z2luS2V5Rm9yVGVhbURhdGEpIDogZGF0YS5vcmlnaW4oKSwgQChjdXN0b21UeXBlc0tleUZvclRl
YW1EYXRhKSA6IGNyZWF0ZU5TQXJyYXkoZGF0YS5vcmRlcmVkVHlwZXMoKSkuZ2V0KCkgfTsKICAg
ICAgICAgICAgIGlmIChOU0RhdGEgKnRlYW1EYXRhID0gW05TS2V5ZWRBcmNoaXZlciBhcmNoaXZl
ZERhdGFXaXRoUm9vdE9iamVjdDp0ZWFtRGF0YURpY3Rpb25hcnkgcmVxdWlyaW5nU2VjdXJlQ29k
aW5nOllFUyBlcnJvcjpudWxscHRyXSkgewogICAgICAgICAgICAgICAgIFtyZXByZXNlbnRhdGlv
bnNUb1JlZ2lzdGVyIHNldFRlYW1EYXRhOnRlYW1EYXRhXTsKLSAgICAgICAgICAgICAgICBbcmVw
cmVzZW50YXRpb25zVG9SZWdpc3RlciBhZGREYXRhOnNlcmlhbGl6ZWRTaGFyZWRCdWZmZXIuZ2V0
KCkgZm9yVHlwZTpAKFBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKSldOworICAgICAg
ICAgICAgICAgIFtyZXByZXNlbnRhdGlvbnNUb1JlZ2lzdGVyIGFkZERhdGE6c2VyaWFsaXplZFNo
YXJlZEJ1ZmZlci5nZXQoKSBmb3JUeXBlOkAoUGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlw
ZSgpLmNoYXJhY3RlcnMoKSldOwogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkl0ZW1Qcm92aWRlclBhc3Rl
Ym9hcmQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViSXRlbVByb3ZpZGVyUGFz
dGVib2FyZC5tbQppbmRleCBkMmExZGJjM2E4OWY5MWFlYzJhMzIyMDM4NjRhMGNlZjMxOTIzMmQz
Li43NWE3NmY0Mzk5NGVlNjVlODEzOWM4Nzc2NmMzM2I3OGE0YTNkMjJkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZC5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViSXRlbVByb3ZpZGVyUGFzdGVib2Fy
ZC5tbQpAQCAtNzYxLDcgKzc2MSw3IEBAIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JF
R0lOCiAKICAgICAvLyBGb3IgY29tcGF0aWJpbGl0eSB3aXRoIERhdGFUcmFuc2ZlciBBUElzLCBh
ZGRpdGlvbmFsbHkgbG9hZCB3ZWItZXhwb3NlZCB0eXBlcy4gU2luY2UgdGhpcyBpcyB0aGUgb25s
eSBjaGFuY2UgdG8KICAgICAvLyBmYXVsdCBpbiBhbnkgZGF0YSBhdCBhbGwsIHdlIG5lZWQgdG8g
bG9hZCB1cCBmcm9udCBhbnkgaW5mb3JtYXRpb24gdGhhdCB0aGUgcGFnZSBtYXkgYXNrIGZvciBs
YXRlciBkb3duIHRoZSBsaW5lLgotICAgIE5TU3RyaW5nICpjdXN0b21QYXN0ZWJvYXJkRGF0YVVU
SSA9IEAoUGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpKTsKKyAgICBOU1N0cmluZyAq
Y3VzdG9tUGFzdGVib2FyZERhdGFVVEkgPSBAKFBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5
cGUoKS5jaGFyYWN0ZXJzKCkpOwogICAgIGZvciAoTlNTdHJpbmcgKnJlZ2lzdGVyZWRUeXBlSWRl
bnRpZmllciBpbiByZWdpc3RlcmVkVHlwZUlkZW50aWZpZXJzKSB7CiAgICAgICAgIGlmIChbcmVn
aXN0ZXJlZFR5cGVJZGVudGlmaWVyIGlzRXF1YWxUb1N0cmluZzpoaWdoZXN0RmlkZWxpdHlDb250
ZW50VHlwZV0KICAgICAgICAgICAgIHx8IFtyZWdpc3RlcmVkVHlwZUlkZW50aWZpZXIgaXNFcXVh
bFRvU3RyaW5nOmhpZ2hlc3RGaWRlbGl0eVN1cHBvcnRlZFR5cGVdCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRGF0YURldGVjdG9ySGlnaGxpZ2h0Lm1tIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RhdGFEZXRlY3RvckhpZ2hsaWdodC5tbQppbmRleCAzZjA2
OTQwNDYwMjk0ZGNmZThhODMwMjhkMWZkN2Q0NjZkYTg1Mzk1Li4xNWRiODdiMWQ5OGJhMzgxZWE5
NTFiMWYzNGY4ZTYwMDgyOTgyNWE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvRGF0YURldGVjdG9ySGlnaGxpZ2h0Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21hYy9EYXRhRGV0ZWN0b3JIaWdobGlnaHQubW0KQEAgLTE1Myw3ICsxNTMsNyBAQCB2b2lk
IERhdGFEZXRlY3RvckhpZ2hsaWdodDo6ZmFkZUluKCkKICAgICBbYW5pbWF0aW9uIHNldFRvVmFs
dWU6QDFdOwogCiAgICAgYXV0byBwbGF0Zm9ybUFuaW1hdGlvbiA9IFBsYXRmb3JtQ0FBbmltYXRp
b25Db2NvYTo6Y3JlYXRlKGFuaW1hdGlvbi5nZXQoKSk7Ci0gICAgZG93bmNhc3Q8R3JhcGhpY3NM
YXllckNBPihsYXllcigpKS5wbGF0Zm9ybUNBTGF5ZXIoKS0+YWRkQW5pbWF0aW9uRm9yS2V5KCJG
YWRlSGlnaGxpZ2h0SW4iLCBwbGF0Zm9ybUFuaW1hdGlvbi5nZXQoKSk7CisgICAgZG93bmNhc3Q8
R3JhcGhpY3NMYXllckNBPihsYXllcigpKS5wbGF0Zm9ybUNBTGF5ZXIoKS0+YWRkQW5pbWF0aW9u
Rm9yS2V5KCJGYWRlSGlnaGxpZ2h0SW4iX3MsIHBsYXRmb3JtQW5pbWF0aW9uLmdldCgpKTsKIH0K
IAogdm9pZCBEYXRhRGV0ZWN0b3JIaWdobGlnaHQ6OmZhZGVPdXQoKQpAQCAtMTcwLDcgKzE3MCw3
IEBAIHZvaWQgRGF0YURldGVjdG9ySGlnaGxpZ2h0OjpmYWRlT3V0KCkKICAgICB9XTsKIAogICAg
IGF1dG8gcGxhdGZvcm1BbmltYXRpb24gPSBQbGF0Zm9ybUNBQW5pbWF0aW9uQ29jb2E6OmNyZWF0
ZShhbmltYXRpb24uZ2V0KCkpOwotICAgIGRvd25jYXN0PEdyYXBoaWNzTGF5ZXJDQT4obGF5ZXIo
KSkucGxhdGZvcm1DQUxheWVyKCktPmFkZEFuaW1hdGlvbkZvcktleSgiRmFkZUhpZ2hsaWdodE91
dCIsIHBsYXRmb3JtQW5pbWF0aW9uLmdldCgpKTsKKyAgICBkb3duY2FzdDxHcmFwaGljc0xheWVy
Q0E+KGxheWVyKCkpLnBsYXRmb3JtQ0FMYXllcigpLT5hZGRBbmltYXRpb25Gb3JLZXkoIkZhZGVI
aWdobGlnaHRPdXQiX3MsIHBsYXRmb3JtQW5pbWF0aW9uLmdldCgpKTsKICAgICBbQ0FUcmFuc2Fj
dGlvbiBjb21taXRdOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvUGFzdGVib2FyZE1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJv
YXJkTWFjLm1tCmluZGV4IGEyYzI1MGFhMmJlZjhkZTk2NGJhZjA5MjQwZDVlMGVjNDE1MGVmODQu
LmRjMmY1YzUzYzY1NDFlMTk4YjNhODRlNmM1YTgwNWQxZGRmZTBkOGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tCkBAIC01MCwxMiArNTAsMTIgQEAK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jb25zdCBjaGFyKiBjb25zdCBXZWJBcmNoaXZlUGJv
YXJkVHlwZSA9ICJBcHBsZSBXZWIgQXJjaGl2ZSBwYXN0ZWJvYXJkIHR5cGUiOwotY29uc3QgY2hh
ciogY29uc3QgV2ViVVJMTmFtZVBib2FyZFR5cGUgPSAicHVibGljLnVybC1uYW1lIjsKLWNvbnN0
IGNoYXIqIGNvbnN0IFdlYlVSTHNXaXRoVGl0bGVzUGJvYXJkVHlwZSA9ICJXZWJVUkxzV2l0aFRp
dGxlc1Bib2FyZFR5cGUiOworY29uc3QgQVNDSUlMaXRlcmFsIFdlYkFyY2hpdmVQYm9hcmRUeXBl
ID0gIkFwcGxlIFdlYiBBcmNoaXZlIHBhc3RlYm9hcmQgdHlwZSJfczsKK2NvbnN0IEFTQ0lJTGl0
ZXJhbCBXZWJVUkxOYW1lUGJvYXJkVHlwZSA9ICJwdWJsaWMudXJsLW5hbWUiX3M7Citjb25zdCBB
U0NJSUxpdGVyYWwgV2ViVVJMc1dpdGhUaXRsZXNQYm9hcmRUeXBlID0gIldlYlVSTHNXaXRoVGl0
bGVzUGJvYXJkVHlwZSJfczsKIAotY29uc3QgY2hhciBXZWJTbWFydFBhc3RlUGJvYXJkVHlwZVtd
ID0gIk5lWFQgc21hcnQgcGFzdGUgcGFzdGVib2FyZCB0eXBlIjsKLWNvbnN0IGNoYXIgV2ViVVJM
UGJvYXJkVHlwZVtdID0gInB1YmxpYy51cmwiOworY29uc3QgQVNDSUlMaXRlcmFsIFdlYlNtYXJ0
UGFzdGVQYm9hcmRUeXBlID0gIk5lWFQgc21hcnQgcGFzdGUgcGFzdGVib2FyZCB0eXBlIl9zOwor
Y29uc3QgQVNDSUlMaXRlcmFsIFdlYlVSTFBib2FyZFR5cGUgPSAicHVibGljLnVybCJfczsKIAog
c3RhdGljIGNvbnN0IFZlY3RvcjxTdHJpbmc+IHdyaXRhYmxlVHlwZXNGb3JVUkwoKQogewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5
TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5
TWFjLm1tCmluZGV4IDM1ZmM2YWY1OWI2YWZjYjRmOTU1NGMwZjJhODRhMzM0MjgzOTZlNWUuLmI3
YjZlMzc0N2IwZmNkOTc4Yzg3NGUwMTgyZjIzNTYzY2U1ZDJkODYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMubW0KQEAg
LTUwMiw3ICs1MDIsNyBAQCBTdHJpbmcga2V5SWRlbnRpZmllckZvcktleUV2ZW50KE5TRXZlbnQq
IGV2ZW50KQogICAgIE5TU3RyaW5nICpzID0gW2V2ZW50IGNoYXJhY3RlcnNJZ25vcmluZ01vZGlm
aWVyc107CiAgICAgaWYgKFtzIGxlbmd0aF0gIT0gMSkgewogICAgICAgICBMT0coRXZlbnRzLCAi
cmVjZWl2ZWQgYW4gdW5leHBlY3RlZCBudW1iZXIgb2YgY2hhcmFjdGVycyBpbiBrZXkgZXZlbnQ6
ICV1IiwgW3MgbGVuZ3RoXSk7Ci0gICAgICAgIHJldHVybiAiVW5pZGVudGlmaWVkIjsKKyAgICAg
ICAgcmV0dXJuICJVbmlkZW50aWZpZWQiX3M7CiAgICAgfQogICAgIHJldHVybiBrZXlJZGVudGlm
aWVyRm9yQ2hhckNvZGUoW3MgY2hhcmFjdGVyQXRJbmRleDowXSk7CiB9CkBAIC04MDksMjAgKzgw
OSwyMCBAQCBwdWJsaWM6CiAKICAgICAgICAgLy8gQWx3YXlzIHVzZSAxMyBmb3IgRW50ZXIvUmV0
dXJuIC0tIHdlIGRvbid0IHdhbnQgdG8gdXNlIEFwcEtpdCdzIGRpZmZlcmVudCBjaGFyYWN0ZXIg
Zm9yIEVudGVyLgogICAgICAgICBpZiAobV93aW5kb3dzVmlydHVhbEtleUNvZGUgPT0gVktfUkVU
VVJOKSB7Ci0gICAgICAgICAgICBtX3RleHQgPSAiXHIiOwotICAgICAgICAgICAgbV91bm1vZGlm
aWVkVGV4dCA9ICJcciI7CisgICAgICAgICAgICBtX3RleHQgPSAiXHIiX3M7CisgICAgICAgICAg
ICBtX3VubW9kaWZpZWRUZXh0ID0gbV90ZXh0OwogICAgICAgICB9CiAKICAgICAgICAgLy8gQXBw
S2l0IHNldHMgdGV4dCB0byAiXHg3RiIgZm9yIGJhY2tzcGFjZSwgYnV0IHRoZSBjb3JyZWN0IEtl
eWJvYXJkRXZlbnQgY2hhcmFjdGVyIGNvZGUgaXMgOC4KICAgICAgICAgaWYgKG1fd2luZG93c1Zp
cnR1YWxLZXlDb2RlID09IFZLX0JBQ0spIHsKLSAgICAgICAgICAgIG1fdGV4dCA9ICJceDgiOwot
ICAgICAgICAgICAgbV91bm1vZGlmaWVkVGV4dCA9ICJceDgiOworICAgICAgICAgICAgbV90ZXh0
ID0gIlx4OCJfczsKKyAgICAgICAgICAgIG1fdW5tb2RpZmllZFRleHQgPSBtX3RleHQ7CiAgICAg
ICAgIH0KIAogICAgICAgICAvLyBBbHdheXMgdXNlIDkgZm9yIFRhYiAtLSB3ZSBkb24ndCB3YW50
IHRvIHVzZSBBcHBLaXQncyBkaWZmZXJlbnQgY2hhcmFjdGVyIGZvciBzaGlmdC10YWIuCiAgICAg
ICAgIGlmIChtX3dpbmRvd3NWaXJ0dWFsS2V5Q29kZSA9PSBWS19UQUIpIHsKLSAgICAgICAgICAg
IG1fdGV4dCA9ICJceDkiOwotICAgICAgICAgICAgbV91bm1vZGlmaWVkVGV4dCA9ICJceDkiOwor
ICAgICAgICAgICAgbV90ZXh0ID0gIlx4OSJfczsKKyAgICAgICAgICAgIG1fdW5tb2RpZmllZFRl
eHQgPSBtX3RleHQ7CiAgICAgICAgIH0KIAogICAgICAgICAvLyBNYWMgc3BlY2lmaWMuCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1QYXN0ZWJvYXJkTWFj
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtUGFzdGVib2FyZE1hYy5t
bQppbmRleCBhN2ZlNzI1NTQzNzY2NWU4YjhhMGM3NDUzZDMwNDc0OWQ0NTYyZjY3Li40NmRiNTdk
ZWVhOWQ3MjY5YWViNGQ4NzdkMTkxN2Q1ZDYzMDNkYTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1QYXN0ZWJvYXJkTWFjLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybVBhc3RlYm9hcmRNYWMubW0KQEAgLTIxNyw3ICsy
MTcsNyBAQCBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIFZlY3RvcjxTdHJpbmc+
IFBsYXRmb3JtUGFzdGVib2FyZDo6dHlwZXNTYWZlRm9yRE9NVG9SZWFkQW5kV3JpdGUoY29uc3Qg
U3RyaW5nJiBvcmlnaW4pIGNvbnN0CiB7CiAgICAgTGlzdEhhc2hTZXQ8U3RyaW5nPiBkb21QYXN0
ZWJvYXJkVHlwZXM7Ci0gICAgaWYgKE5TRGF0YSAqc2VyaWFsaXplZEN1c3RvbURhdGEgPSBbbV9w
YXN0ZWJvYXJkIGRhdGFGb3JUeXBlOkAoUGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgp
KV0pIHsKKyAgICBpZiAoTlNEYXRhICpzZXJpYWxpemVkQ3VzdG9tRGF0YSA9IFttX3Bhc3RlYm9h
cmQgZGF0YUZvclR5cGU6QChQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkuY2hhcmFj
dGVycygpKV0pIHsKICAgICAgICAgYXV0byBkYXRhID0gUGFzdGVib2FyZEN1c3RvbURhdGE6OmZy
b21TaGFyZWRCdWZmZXIoU2hhcmVkQnVmZmVyOjpjcmVhdGUoc2VyaWFsaXplZEN1c3RvbURhdGEp
LmdldCgpKTsKICAgICAgICAgaWYgKGRhdGEub3JpZ2luKCkgPT0gb3JpZ2luKSB7CiAgICAgICAg
ICAgICBmb3IgKGF1dG8mIHR5cGUgOiBkYXRhLm9yZGVyZWRUeXBlcygpKQpAQCAtMjI3LDcgKzIy
Nyw3IEBAIFZlY3RvcjxTdHJpbmc+IFBsYXRmb3JtUGFzdGVib2FyZDo6dHlwZXNTYWZlRm9yRE9N
VG9SZWFkQW5kV3JpdGUoY29uc3QgU3RyaW5nJiBvCiAKICAgICBOU0FycmF5PE5TU3RyaW5nICo+
ICphbGxUeXBlcyA9IFttX3Bhc3RlYm9hcmQgdHlwZXNdOwogICAgIGZvciAoTlNTdHJpbmcgKnR5
cGUgaW4gYWxsVHlwZXMpIHsKLSAgICAgICAgaWYgKFt0eXBlIGlzRXF1YWxUb1N0cmluZzpAKFBh
c3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKSldKQorICAgICAgICBpZiAoW3R5cGUgaXNF
cXVhbFRvU3RyaW5nOkAoUGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpLmNoYXJhY3Rl
cnMoKSldKQogICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgaWYgKFBhc3RlYm9hcmQ6
OmlzU2FmZVR5cGVGb3JET01Ub1JlYWRBbmRXcml0ZSh0eXBlKSkKQEAgLTI1NCw3ICsyNTQsNyBA
QCBpbnQ2NF90IFBsYXRmb3JtUGFzdGVib2FyZDo6d3JpdGUoY29uc3QgUGFzdGVib2FyZEN1c3Rv
bURhdGEmIGRhdGEpCiAKICAgICBib29sIHNob3VsZFdyaXRlQ3VzdG9tRGF0YSA9IGRhdGEuaGFz
U2FtZU9yaWdpbkN1c3RvbURhdGEoKSB8fCAhZGF0YS5vcmlnaW4oKS5pc0VtcHR5KCk7CiAgICAg
aWYgKHNob3VsZFdyaXRlQ3VzdG9tRGF0YSkKLSAgICAgICAgW3R5cGVzIGFkZE9iamVjdDpAKFBh
c3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKSldOworICAgICAgICBbdHlwZXMgYWRkT2Jq
ZWN0OkAoUGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpLmNoYXJhY3RlcnMoKSldOwog
CiAgICAgW21fcGFzdGVib2FyZCBkZWNsYXJlVHlwZXM6dHlwZXMgb3duZXI6bmlsXTsKIApAQCAt
Mjc1LDcgKzI3NSw3IEBAIGludDY0X3QgUGxhdGZvcm1QYXN0ZWJvYXJkOjp3cml0ZShjb25zdCBQ
YXN0ZWJvYXJkQ3VzdG9tRGF0YSYgZGF0YSkKIAogICAgIGlmIChzaG91bGRXcml0ZUN1c3RvbURh
dGEpIHsKICAgICAgICAgaWYgKGF1dG8gc2VyaWFsaXplZEN1c3RvbURhdGEgPSBkYXRhLmNyZWF0
ZVNoYXJlZEJ1ZmZlcigpLT5jcmVhdGVOU0RhdGEoKSkKLSAgICAgICAgICAgIFttX3Bhc3RlYm9h
cmQgc2V0RGF0YTpzZXJpYWxpemVkQ3VzdG9tRGF0YS5nZXQoKSBmb3JUeXBlOkAoUGFzdGVib2Fy
ZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpKV07CisgICAgICAgICAgICBbbV9wYXN0ZWJvYXJkIHNl
dERhdGE6c2VyaWFsaXplZEN1c3RvbURhdGEuZ2V0KCkgZm9yVHlwZTpAKFBhc3RlYm9hcmRDdXN0
b21EYXRhOjpjb2NvYVR5cGUoKS5jaGFyYWN0ZXJzKCkpXTsKICAgICB9CiAKICAgICByZXR1cm4g
Y2hhbmdlQ291bnQoKTsKQEAgLTQ5OSw3ICs0OTksNyBAQCBzdGF0aWMgUmV0YWluUHRyPE5TUGFz
dGVib2FyZEl0ZW0+IGNyZWF0ZVBhc3RlYm9hcmRJdGVtKGNvbnN0IFBhc3RlYm9hcmRDdXN0b21E
YQogCiAgICAgaWYgKGRhdGEuaGFzU2FtZU9yaWdpbkN1c3RvbURhdGEoKSB8fCAhZGF0YS5vcmln
aW4oKS5pc0VtcHR5KCkpIHsKICAgICAgICAgaWYgKGF1dG8gc2VyaWFsaXplZEN1c3RvbURhdGEg
PSBkYXRhLmNyZWF0ZVNoYXJlZEJ1ZmZlcigpLT5jcmVhdGVOU0RhdGEoKSkKLSAgICAgICAgICAg
IFtpdGVtIHNldERhdGE6c2VyaWFsaXplZEN1c3RvbURhdGEuZ2V0KCkgZm9yVHlwZTpAKFBhc3Rl
Ym9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKSldOworICAgICAgICAgICAgW2l0ZW0gc2V0RGF0
YTpzZXJpYWxpemVkQ3VzdG9tRGF0YS5nZXQoKSBmb3JUeXBlOkAoUGFzdGVib2FyZEN1c3RvbURh
dGE6OmNvY29hVHlwZSgpLmNoYXJhY3RlcnMoKSldOwogICAgIH0KIAogICAgIGRhdGEuZm9yRWFj
aFBsYXRmb3JtU3RyaW5nT3JCdWZmZXIoWyZdIChhdXRvJiB0eXBlLCBhdXRvJiBzdHJpbmdPckJ1
ZmZlcikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1N0cmluZ1V0
aWxpdGllcy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TdHJpbmdVdGlsaXRpZXMu
bW0KaW5kZXggN2NkMWJkODBhZTllMzNlNzU2ZjY1OTEyMjQwZjdlZDZjYzMzYzViNS4uOTJiZTY2
N2U2M2ViMzFmNDFkNzc5YTk2NjJmMWZiNzU2ZjQ2NTQzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL1N0cmluZ1V0aWxpdGllcy5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvU3RyaW5nVXRpbGl0aWVzLm1tCkBAIC0zMyw3ICszMyw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKICAgICAKIHN0YXRpYyBTdHJpbmcgd2lsZGNhcmRSZWdleFBhdHRlcm5T
dHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiB7Ci0gICAgU3RyaW5nIG1ldGFDaGFyYWN0ZXJz
ID0gIi58Kz8oKVtde31eJCI7CisgICAgU3RyaW5nIG1ldGFDaGFyYWN0ZXJzID0gIi58Kz8oKVtd
e31eJCJfczsKICAgICBVQ2hhciBlc2NhcGVDaGFyYWN0ZXIgPSAnXFwnOwogICAgIFVDaGFyIHdp
bGRjYXJkQ2hhcmFjdGVyID0gJyonOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWFjL1RocmVhZENoZWNrLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L1RocmVhZENoZWNrLm1tCmluZGV4IGYxNTEwODhjZTkyNWE1MDZlYjQ2OGIyMjIxZmFmMzI3NTAz
MmJhNDIuLmJiZDczNDQxZTA1MGI5Njg3NTdhNGY1YTZhZDEzNDY2YjFhZDA2ZDAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9UaHJlYWRDaGVjay5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVGhyZWFkQ2hlY2subW0KQEAgLTEwNiw3ICsxMDYsNyBA
QCB2b2lkIFdlYkNvcmVSZXBvcnRUaHJlYWRWaW9sYXRpb24oY29uc3QgY2hhciogZnVuY3Rpb24s
IFdlYkNvcmU6OlRocmVhZFZpb2xhdGlvbgogICAgICAgICBjYXNlIE5vVGhyZWFkQ2hlY2s6CiAg
ICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBMb2dPbkZpcnN0VGhyZWFkVmlvbGF0aW9u
OgotICAgICAgICAgICAgaWYgKGxvZ2dlZEZ1bmN0aW9ucy5nZXQoKS5hZGQoZnVuY3Rpb24pLmlz
TmV3RW50cnkpIHsKKyAgICAgICAgICAgIGlmIChsb2dnZWRGdW5jdGlvbnMuZ2V0KCkuYWRkKFN0
cmluZyB7IGZ1bmN0aW9uIH0pLmlzTmV3RW50cnkpIHsKICAgICAgICAgICAgICAgICBOU0xvZyhA
IldlYktpdCBUaHJlYWRpbmcgVmlvbGF0aW9uIC0gJXMgY2FsbGVkIGZyb20gc2Vjb25kYXJ5IHRo
cmVhZCIsIGZ1bmN0aW9uKTsKICAgICAgICAgICAgICAgICBOU0xvZyhAIkFkZGl0aW9uYWwgdGhy
ZWFkaW5nIHZpb2xhdGlvbnMgZm9yIHRoaXMgZnVuY3Rpb24gd2lsbCBub3QgYmUgbG9nZ2VkLiIp
OwogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L1VzZXJBZ2VudE1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9Vc2VyQWdlbnRN
YWMubW0KaW5kZXggZTYyYTk3ZjE5OWFhY2MzY2E2OTJkOGRhNGIyMDlkMjk5NGUzYTBkMS4uZWRj
MDc5ZjRlMDI0YWYzMDFlNDVmYWExMDkzNWE4ZGIzYTJiMmM3NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1VzZXJBZ2VudE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tYWMvVXNlckFnZW50TWFjLm1tCkBAIC0zOCw3ICszOCw3IEBAIFN0cmluZyBz
dGFuZGFyZFVzZXJBZ2VudFdpdGhBcHBsaWNhdGlvbk5hbWUoY29uc3QgU3RyaW5nJiBhcHBsaWNh
dGlvbk5hbWUsIGNvbnN0CiAgICAgaWYgKCFvc1ZlcnNpb24uc3RhcnRzV2l0aCgiMTAiKSkKICAg
ICAgICAgb3NWZXJzaW9uID0gIjEwXzE1XzciX3M7CiAgICAgCi0gICAgU3RyaW5nIGFwcE5hbWVT
dWZmaXggPSBhcHBsaWNhdGlvbk5hbWUuaXNFbXB0eSgpID8gIiIgOiBtYWtlU3RyaW5nKCIgIiwg
YXBwbGljYXRpb25OYW1lKTsKKyAgICBTdHJpbmcgYXBwTmFtZVN1ZmZpeCA9IGFwcGxpY2F0aW9u
TmFtZS5pc0VtcHR5KCkgPyBlbXB0eVN0cmluZygpIDogbWFrZVN0cmluZygiICIsIGFwcGxpY2F0
aW9uTmFtZSk7CiAKICAgICByZXR1cm4gbWFrZVN0cmluZygiTW96aWxsYS81LjAgKE1hY2ludG9z
aDsgSW50ZWwgTWFjIE9TIFggIiwgb3NWZXJzaW9uLCAiKSBBcHBsZVdlYktpdC82MDUuMS4xNSAo
S0hUTUwsIGxpa2UgR2Vja28pIiwgYXBwTmFtZVN1ZmZpeCk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlRXJyb3JCYXNlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VFcnJvckJhc2UuY3BwCmluZGV4IDY3
ZDJlYWMwOGZhN2I0YmYwNjRjY2RmYWJjMjQ5ZmNjNDYyNTFjZmQuLmQwMTkzYWM2YzliOTc0YWEy
YmYxZDcxOTc5ZDNlNzAxNWJjMzBkOWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvUmVzb3VyY2VFcnJvckJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvUmVzb3VyY2VFcnJvckJhc2UuY3BwCkBAIC0zMiw4ICszMiw4IEBACiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY29uc3QgY2hhciogY29uc3QgZXJyb3JEb21haW5XZWJL
aXRJbnRlcm5hbCA9ICJXZWJLaXRJbnRlcm5hbCI7Ci1jb25zdCBjaGFyKiBjb25zdCBlcnJvckRv
bWFpbldlYktpdFNlcnZpY2VXb3JrZXIgPSAiV2ViS2l0U2VydmljZVdvcmtlciI7Citjb25zdCBB
U0NJSUxpdGVyYWwgZXJyb3JEb21haW5XZWJLaXRJbnRlcm5hbCA9ICJXZWJLaXRJbnRlcm5hbCJf
czsKK2NvbnN0IEFTQ0lJTGl0ZXJhbCBlcnJvckRvbWFpbldlYktpdFNlcnZpY2VXb3JrZXIgPSAi
V2ViS2l0U2VydmljZVdvcmtlciJfczsKIAogaW5saW5lIGNvbnN0IFJlc291cmNlRXJyb3ImIFJl
c291cmNlRXJyb3JCYXNlOjphc1Jlc291cmNlRXJyb3IoKSBjb25zdAogewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUVycm9yQmFzZS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUVycm9yQmFzZS5oCmluZGV4IDQ4
OGRlYmMxNDNkNjNmNDU3ZThkMzhlOWM2ZGMyM2E5ZDIwYmE4MTYuLmUxMjFjNTE0ZjQ4OTQyNmEz
NDNkMzQ0ODkwYjk2NjMwMjUwY2Q3Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL25ldHdvcmsvUmVzb3VyY2VFcnJvckJhc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL1Jlc291cmNlRXJyb3JCYXNlLmgKQEAgLTM0LDggKzM0LDggQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjbGFzcyBSZXNvdXJjZUVycm9yOwogCi1XRUJDT1JFX0VYUE9SVCBl
eHRlcm4gY29uc3QgY2hhciogY29uc3QgZXJyb3JEb21haW5XZWJLaXRJbnRlcm5hbDsgLy8gVXNl
ZCBmb3IgZXJyb3JzIHRoYXQgd29uJ3QgYmUgZXhwb3NlZCB0byBjbGllbnRzLgotV0VCQ09SRV9F
WFBPUlQgZXh0ZXJuIGNvbnN0IGNoYXIqIGNvbnN0IGVycm9yRG9tYWluV2ViS2l0U2VydmljZVdv
cmtlcjsgLy8gVXNlZCBmb3IgZXJyb3JzIHRoYXQgaGFwcGVuIHdoZW4gbG9hZGluZyBhIHJlc291
cmNlIGZyb20gYSBzZXJ2aWNlIHdvcmtlci4KK1dFQkNPUkVfRVhQT1JUIGV4dGVybiBjb25zdCBB
U0NJSUxpdGVyYWwgZXJyb3JEb21haW5XZWJLaXRJbnRlcm5hbDsgLy8gVXNlZCBmb3IgZXJyb3Jz
IHRoYXQgd29uJ3QgYmUgZXhwb3NlZCB0byBjbGllbnRzLgorV0VCQ09SRV9FWFBPUlQgZXh0ZXJu
IGNvbnN0IEFTQ0lJTGl0ZXJhbCBlcnJvckRvbWFpbldlYktpdFNlcnZpY2VXb3JrZXI7IC8vIFVz
ZWQgZm9yIGVycm9ycyB0aGF0IGhhcHBlbiB3aGVuIGxvYWRpbmcgYSByZXNvdXJjZSBmcm9tIGEg
c2VydmljZSB3b3JrZXIuCiAKIGNsYXNzIFJlc291cmNlRXJyb3JCYXNlIHsKICAgICBXVEZfTUFL
RV9GQVNUX0FMTE9DQVRFRDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY29jb2EvUmFuZ2VSZXNwb25zZUdlbmVyYXRvci5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL25ldHdvcmsvY29jb2EvUmFuZ2VSZXNwb25zZUdlbmVyYXRvci5tbQppbmRleCAxOTgx
NGEzNjVjOWY2NjFhMjFjMjI5YWRiZDA0NjExYzIwOTQ3ZTY0Li4wNGVmZGI0ZGZmMWQxNjQxYzNk
NjA1YWYzMDE0ZDFhMTBjMjQ2NDNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9uZXR3b3JrL2NvY29hL1JhbmdlUmVzcG9uc2VHZW5lcmF0b3IubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9SYW5nZVJlc3BvbnNlR2VuZXJhdG9yLm1tCkBA
IC03OCw3ICs3OCw3IEBAIHN0YXRpYyBSZXNvdXJjZVJlc3BvbnNlIHN5bnRoZXNpemVkUmVzcG9u
c2VGb3JSYW5nZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiBvcmlnCiAgICAgYXV0byBiZWdpbiA9
IHBhcnNlZFJlcXVlc3RSYW5nZS5iZWdpbjsKICAgICBhdXRvIGVuZCA9IHBhcnNlZFJlcXVlc3RS
YW5nZS5lbmQ7CiAKLSAgICBhdXRvIG5ld0NvbnRlbnRSYW5nZSA9IG1ha2VTdHJpbmcoImJ5dGVz
ICIsIGJlZ2luLCAiLSIsIGVuZCwgIi8iLCAodG90YWxDb250ZW50TGVuZ3RoID8gbWFrZVN0cmlu
ZygqdG90YWxDb250ZW50TGVuZ3RoKSA6ICIqIikpOworICAgIGF1dG8gbmV3Q29udGVudFJhbmdl
ID0gbWFrZVN0cmluZygiYnl0ZXMgIiwgYmVnaW4sICItIiwgZW5kLCAiLyIsICh0b3RhbENvbnRl
bnRMZW5ndGggPyBtYWtlU3RyaW5nKCp0b3RhbENvbnRlbnRMZW5ndGgpIDogIioiX3MpKTsKICAg
ICBhdXRvIG5ld0NvbnRlbnRMZW5ndGggPSBtYWtlU3RyaW5nKGVuZCAtIGJlZ2luICsgMSk7CiAK
ICAgICBSZXNvdXJjZVJlc3BvbnNlIG5ld1Jlc3BvbnNlID0gb3JpZ2luYWxSZXNwb25zZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQppbmRleCAwMTBlY2JhZWQ4
N2E3M2E0MjBhZmI5N2U4ZTgwZmVhNjM3OWZlZDNlLi44ZTlkNDZhMWIzNGNhYjA0N2ZiYTM0M2Qx
YjU3YTJjNWIyZGMxMDg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGhlbWVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1l
TWFjLm1tCkBAIC0yNjE5LDcgKzI2MTksNyBAQCBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19FTkQKICAgICAgICAgICAgIHJldHVybiBpY29uOwogICAgIH0KIAotICAgIHJldHVybiBJY29u
OjpjcmVhdGVJY29uRm9yVVRJKCJwdWJsaWMuZGF0YSIpOworICAgIHJldHVybiBJY29uOjpjcmVh
dGVJY29uRm9yVVRJKCJwdWJsaWMuZGF0YSJfcyk7CiB9CiAKIFJldGFpblB0cjxOU0ltYWdlPiBS
ZW5kZXJUaGVtZU1hYzo6aWNvbkZvckF0dGFjaG1lbnQoY29uc3QgU3RyaW5nJiBmaWxlTmFtZSwg
Y29uc3QgU3RyaW5nJiBhdHRhY2htZW50VHlwZSwgY29uc3QgU3RyaW5nJiB0aXRsZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50
cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFu
dHMuY3BwCmluZGV4IDkyYmM2YTgxMmExMThhNTE5ZjBiNDZjOTRmOTcyZTMyYjNhNWVlNTYuLjRj
NTJjNjcxYmRiY2U2NGM5M2VjYzI0ZjU4MzAxNTJjZmYwNTA2ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmNwcApA
QCAtNjcxLDcgKzY3MSw3IEBAIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMs
IExpc3RTdHlsZVBvc2l0aW9uIHBvc2l0aW9uKQogCiBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRl
eHRTdHJlYW0mIHRzLCBMaXN0U3R5bGVUeXBlIHN0eWxlVHlwZSkKIHsKLSAgICByZXR1cm4gdHMg
PDwgZ2V0VmFsdWVOYW1lKHRvQ1NTVmFsdWVJRChzdHlsZVR5cGUpKTsKKyAgICByZXR1cm4gdHMg
PDwgZ2V0VmFsdWVOYW1lKHRvQ1NTVmFsdWVJRChzdHlsZVR5cGUpKS5jaGFyYWN0ZXJzKCk7CiB9
CiAKIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIE1hcnF1ZWVCZWhhdmlv
ciBtYXJxdWVlQmVoYXZpb3IpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmls
dGVyRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuaAppbmRl
eCAxYWNkMmFlOTVhMTU5NGU5ZjMzNzlkMmU5MzlmOTE2ZGQxNTA0NmZkLi4wMGM3NjEwYTEwY2Vi
YTQ1MzQyNGRhNzk0MDk2ZTFhNmZkMzM1Mjk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRmlsdGVyRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJF
bGVtZW50LmgKQEAgLTY4LDEwICs2OCwxMCBAQCBwcml2YXRlOgogICAgIFByb3BlcnR5UmVnaXN0
cnkgbV9wcm9wZXJ0eVJlZ2lzdHJ5IHsgKnRoaXMgfTsKICAgICBSZWY8U1ZHQW5pbWF0ZWRFbnVt
ZXJhdGlvbj4gbV9maWx0ZXJVbml0cyB7IFNWR0FuaW1hdGVkRW51bWVyYXRpb246OmNyZWF0ZSh0
aGlzLCBTVkdVbml0VHlwZXM6OlNWR19VTklUX1RZUEVfT0JKRUNUQk9VTkRJTkdCT1gpIH07CiAg
ICAgUmVmPFNWR0FuaW1hdGVkRW51bWVyYXRpb24+IG1fcHJpbWl0aXZlVW5pdHMgeyBTVkdBbmlt
YXRlZEVudW1lcmF0aW9uOjpjcmVhdGUodGhpcywgU1ZHVW5pdFR5cGVzOjpTVkdfVU5JVF9UWVBF
X1VTRVJTUEFDRU9OVVNFKSB9OwotICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV94IHsgU1ZH
QW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpXaWR0aCwgIi0xMCUi
KSB9OwotICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV95IHsgU1ZHQW5pbWF0ZWRMZW5ndGg6
OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpIZWlnaHQsICItMTAlIikgfTsKLSAgICBSZWY8
U1ZHQW5pbWF0ZWRMZW5ndGg+IG1fd2lkdGggeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRo
aXMsIFNWR0xlbmd0aE1vZGU6OldpZHRoLCAiMTIwJSIpIH07Ci0gICAgUmVmPFNWR0FuaW1hdGVk
TGVuZ3RoPiBtX2hlaWdodCB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVu
Z3RoTW9kZTo6SGVpZ2h0LCAiMTIwJSIpIH07CisgICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBt
X3ggeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OldpZHRo
LCAiLTEwJSJfcykgfTsKKyAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1feSB7IFNWR0FuaW1h
dGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6SGVpZ2h0LCAiLTEwJSJfcykg
fTsKKyAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1fd2lkdGggeyBTVkdBbmltYXRlZExlbmd0
aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OldpZHRoLCAiMTIwJSJfcykgfTsKKyAgICBS
ZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1faGVpZ2h0IHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0
ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpIZWlnaHQsICIxMjAlIl9zKSB9OwogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRl
clByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0Zp
bHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5oCmluZGV4IDMxMDNjYzZhYzIzM2UwZmQz
YjJmYjFlOTc5MDQ5YTI4YjdiNmY4YmIuLjc4ZTJhYTJjMWU4MTRlNjk4ZWQ0NDRlZWM3N2Y5YjIw
NzZlM2Y5NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJQcmltaXRp
dmVTdGFuZGFyZEF0dHJpYnV0ZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVy
UHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmgKQEAgLTc1LDEwICs3NSwxMCBAQCBwcml2YXRl
OgogCiAgICAgLy8gU3BlYzogSWYgdGhlIHgveSBhdHRyaWJ1dGUgaXMgbm90IHNwZWNpZmllZCwg
dGhlIGVmZmVjdCBpcyBhcyBpZiBhIHZhbHVlIG9mICIwJSIgd2VyZSBzcGVjaWZpZWQuCiAgICAg
Ly8gU3BlYzogSWYgdGhlIHdpZHRoL2hlaWdodCBhdHRyaWJ1dGUgaXMgbm90IHNwZWNpZmllZCwg
dGhlIGVmZmVjdCBpcyBhcyBpZiBhIHZhbHVlIG9mICIxMDAlIiB3ZXJlIHNwZWNpZmllZC4KLSAg
ICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1feCB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUo
dGhpcywgU1ZHTGVuZ3RoTW9kZTo6V2lkdGgsICIwJSIpIH07Ci0gICAgUmVmPFNWR0FuaW1hdGVk
TGVuZ3RoPiBtX3kgeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1v
ZGU6OkhlaWdodCwgIjAlIikgfTsKLSAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1fd2lkdGgg
eyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OldpZHRoLCAi
MTAwJSIpIH07Ci0gICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX2hlaWdodCB7IFNWR0FuaW1h
dGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6SGVpZ2h0LCAiMTAwJSIpIH07
CisgICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX3ggeyBTVkdBbmltYXRlZExlbmd0aDo6Y3Jl
YXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OldpZHRoLCAiMCUiX3MpIH07CisgICAgUmVmPFNWR0Fu
aW1hdGVkTGVuZ3RoPiBtX3kgeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xl
bmd0aE1vZGU6OkhlaWdodCwgIjAlIl9zKSB9OworICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4g
bV93aWR0aCB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6
V2lkdGgsICIxMDAlIl9zKSB9OworICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV9oZWlnaHQg
eyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OkhlaWdodCwg
IjEwMCUiX3MpIH07CiAgICAgUmVmPFNWR0FuaW1hdGVkU3RyaW5nPiBtX3Jlc3VsdCB7IFNWR0Fu
aW1hdGVkU3RyaW5nOjpjcmVhdGUodGhpcykgfTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuaAppbmRleCBhZWZlNjRjZTE0Njc2Nzg0YzBkMWE5
MjRjZTNkZmVhZDdiYWNjMzczLi5kZjIwYmQwNTlmYWM3M2IyM2Q3NjllODljOTJkZWYwZmJlYzk3
OGFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5o
CkBAIC02MSw3ICs2MSw3IEBAIHByaXZhdGU6CiAgICAgUHJvcGVydHlSZWdpc3RyeSBtX3Byb3Bl
cnR5UmVnaXN0cnkgeyAqdGhpcyB9OwogICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV94MSB7
IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6V2lkdGgpIH07
CiAgICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX3kxIHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNy
ZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpIZWlnaHQpIH07Ci0gICAgUmVmPFNWR0FuaW1hdGVk
TGVuZ3RoPiBtX3gyIHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhN
b2RlOjpXaWR0aCwgIjEwMCUiKSB9OworICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV94MiB7
IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6V2lkdGgsICIx
MDAlIl9zKSB9OwogICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV95MiB7IFNWR0FuaW1hdGVk
TGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6SGVpZ2h0KSB9OwogfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50LmgKaW5kZXggNWExMzZlM2VmNDVhNTdhNTFjOTJm
Zjc2NTliYTZhZjc2MmYyYWU5My4uZTFmN2VlOWFjNDcxYWE0ZjY4MGZiNTRjMjQzYWZkMDc3Mzcy
NzVkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5oCkBAIC04OSw4ICs4OSw4
IEBAIHByaXZhdGU6CiAgICAgUHJvcGVydHlSZWdpc3RyeSBtX3Byb3BlcnR5UmVnaXN0cnkgeyAq
dGhpcyB9OwogICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV9yZWZYIHsgU1ZHQW5pbWF0ZWRM
ZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpXaWR0aCkgfTsKICAgICBSZWY8U1ZH
QW5pbWF0ZWRMZW5ndGg+IG1fcmVmWSB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywg
U1ZHTGVuZ3RoTW9kZTo6SGVpZ2h0KSB9OwotICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV9t
YXJrZXJXaWR0aCB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9k
ZTo6V2lkdGgsICIzIikgfTsKLSAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1fbWFya2VySGVp
Z2h0IHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpIZWln
aHQsICIzIikgfTsKKyAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1fbWFya2VyV2lkdGggeyBT
VkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OldpZHRoLCAiMyJf
cykgfTsKKyAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1fbWFya2VySGVpZ2h0IHsgU1ZHQW5p
bWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpIZWlnaHQsICIzIl9zKSB9
OwogICAgIFJlZjxTVkdBbmltYXRlZEVudW1lcmF0aW9uPiBtX21hcmtlclVuaXRzIHsgU1ZHQW5p
bWF0ZWRFbnVtZXJhdGlvbjo6Y3JlYXRlKHRoaXMsIFNWR01hcmtlclVuaXRzU3Ryb2tlV2lkdGgp
IH07CiAgICAgUmVmPFNWR0FuaW1hdGVkQW5nbGU+IG1fb3JpZW50QW5nbGUgeyBTVkdBbmltYXRl
ZEFuZ2xlOjpjcmVhdGUodGhpcykgfTsKICAgICBSZWY8U1ZHQW5pbWF0ZWRPcmllbnRUeXBlPiBt
X29yaWVudFR5cGUgeyBTVkdBbmltYXRlZE9yaWVudFR5cGU6OmNyZWF0ZSh0aGlzLCBTVkdNYXJr
ZXJPcmllbnRBbmdsZSkgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXNr
RWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmgKaW5kZXggNDkw
ZGMyMjFhYjI0NGEzZWY1ZmRkZDI4NWRmMzdhNmU0NjAwMzQyZC4uZGJkMDQyZDBkM2FmODEyMGUw
MGY1OTliOTViMDFkMTEzOGNlMjFkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R01hc2tFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmgK
QEAgLTYzLDEwICs2MywxMCBAQCBwcml2YXRlOgogICAgIGJvb2wgc2VsZkhhc1JlbGF0aXZlTGVu
Z3RocygpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIFByb3BlcnR5UmVnaXN0
cnkgbV9wcm9wZXJ0eVJlZ2lzdHJ5IHsgKnRoaXMgfTsKLSAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5n
dGg+IG1feCB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6
V2lkdGgsICItMTAlIikgfTsKLSAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1feSB7IFNWR0Fu
aW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6SGVpZ2h0LCAiLTEwJSIp
IH07Ci0gICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX3dpZHRoIHsgU1ZHQW5pbWF0ZWRMZW5n
dGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpXaWR0aCwgIjEyMCUiKSB9OwotICAgIFJl
ZjxTVkdBbmltYXRlZExlbmd0aD4gbV9oZWlnaHQgeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRl
KHRoaXMsIFNWR0xlbmd0aE1vZGU6OkhlaWdodCwgIjEyMCUiKSB9OworICAgIFJlZjxTVkdBbmlt
YXRlZExlbmd0aD4gbV94IHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5n
dGhNb2RlOjpXaWR0aCwgIi0xMCUiX3MpIH07CisgICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBt
X3kgeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OkhlaWdo
dCwgIi0xMCUiX3MpIH07CisgICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX3dpZHRoIHsgU1ZH
QW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpXaWR0aCwgIjEyMCUi
X3MpIH07CisgICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX2hlaWdodCB7IFNWR0FuaW1hdGVk
TGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6SGVpZ2h0LCAiMTIwJSJfcykgfTsK
ICAgICBSZWY8U1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbj4gbV9tYXNrVW5pdHMgeyBTVkdBbmltYXRl
ZEVudW1lcmF0aW9uOjpjcmVhdGUodGhpcywgU1ZHVW5pdFR5cGVzOjpTVkdfVU5JVF9UWVBFX09C
SkVDVEJPVU5ESU5HQk9YKSB9OwogICAgIFJlZjxTVkdBbmltYXRlZEVudW1lcmF0aW9uPiBtX21h
c2tDb250ZW50VW5pdHMgeyBTVkdBbmltYXRlZEVudW1lcmF0aW9uOjpjcmVhdGUodGhpcywgU1ZH
VW5pdFR5cGVzOjpTVkdfVU5JVF9UWVBFX1VTRVJTUEFDRU9OVVNFKSB9OwogfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQYXRoU2VnSW1wbC5oIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1BhdGhTZWdJbXBsLmgKaW5kZXggYTYzNjE1NDI5NGZlYTNhNWIwNWJmOWZlOGYyZjkw
YzE4ZWExMDgzNC4uMzRmMjNjNTE1Zjk0YjkzOTE3MGYzYTVjZTlhZThmYjUyODg2NjE5OSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdJbXBsLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdJbXBsLmgKQEAgLTM1LDcgKzM1LDcgQEAgcHVibGljOgog
cHJpdmF0ZToKICAgICB1c2luZyBTVkdQYXRoU2VnOjpTVkdQYXRoU2VnOwogICAgIHVuc2lnbmVk
IHNob3J0IHBhdGhTZWdUeXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gUEFUSFNFR19DTE9TRVBB
VEg7IH0KLSAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuICJaIjsgfQorICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwg
eyByZXR1cm4gIloiX3M7IH0KICAgICBSZWY8U1ZHUGF0aFNlZz4gY2xvbmUoKSBjb25zdCBmaW5h
bCB7IHJldHVybiBhZG9wdFJlZigqbmV3IFNWR1BhdGhTZWdDbG9zZVBhdGgoKSk7IH0KIH07CiAK
QEAgLTQ1LDcgKzQ1LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB1c2luZyBTVkdQYXRoU2Vn
TGluZXRvSG9yaXpvbnRhbDo6U1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWw7CiAgICAgdW5zaWdu
ZWQgc2hvcnQgcGF0aFNlZ1R5cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBQQVRIU0VHX0xJTkVU
T19IT1JJWk9OVEFMX0FCUzsgfQotICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29u
c3QgZmluYWwgeyByZXR1cm4gIkgiOyB9CisgICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIo
KSBjb25zdCBmaW5hbCB7IHJldHVybiAiSCJfczsgfQogICAgIFJlZjxTVkdQYXRoU2VnPiBjbG9u
ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFNWR1BhdGhTZWdWYWx1ZTo6Y2xvbmU8U1ZHUGF0aFNl
Z0xpbmV0b0hvcml6b250YWxBYnM+KCk7IH0KIH07CiAKQEAgLTU1LDcgKzU1LDcgQEAgcHVibGlj
OgogcHJpdmF0ZToKICAgICB1c2luZyBTVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbDo6U1ZHUGF0
aFNlZ0xpbmV0b0hvcml6b250YWw7CiAgICAgdW5zaWduZWQgc2hvcnQgcGF0aFNlZ1R5cGUoKSBj
b25zdCBmaW5hbCB7IHJldHVybiBQQVRIU0VHX0xJTkVUT19IT1JJWk9OVEFMX1JFTDsgfQotICAg
IFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gImgiOyB9
CisgICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAi
aCJfczsgfQogICAgIFJlZjxTVkdQYXRoU2VnPiBjbG9uZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IFNWR1BhdGhTZWdWYWx1ZTo6Y2xvbmU8U1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxSZWw+KCk7
IH0KIH07CiAKQEAgLTY1LDcgKzY1LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB1c2luZyBT
VkdQYXRoU2VnTGluZXRvVmVydGljYWw6OlNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbDsKICAgICB1
bnNpZ25lZCBzaG9ydCBwYXRoU2VnVHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFBBVEhTRUdf
TElORVRPX1ZFUlRJQ0FMX0FCUzsgfQotICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gIlYiOyB9CisgICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0
ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiViJfczsgfQogICAgIFJlZjxTVkdQYXRoU2VnPiBj
bG9uZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFNWR1BhdGhTZWdWYWx1ZTo6Y2xvbmU8U1ZHUGF0
aFNlZ0xpbmV0b1ZlcnRpY2FsQWJzPigpOyB9CiB9OwogCkBAIC03NSw3ICs3NSw3IEBAIHB1Ymxp
YzoKIHByaXZhdGU6CiAgICAgdXNpbmcgU1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsOjpTVkdQYXRo
U2VnTGluZXRvVmVydGljYWw7CiAgICAgdW5zaWduZWQgc2hvcnQgcGF0aFNlZ1R5cGUoKSBjb25z
dCBmaW5hbCB7IHJldHVybiBQQVRIU0VHX0xJTkVUT19WRVJUSUNBTF9SRUw7IH0KLSAgICBTdHJp
bmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJ2IjsgfQorICAg
IFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gInYiX3M7
IH0KICAgICBSZWY8U1ZHUGF0aFNlZz4gY2xvbmUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBTVkdQ
YXRoU2VnVmFsdWU6OmNsb25lPFNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbFJlbD4oKTsgfQogfTsK
IApAQCAtODUsNyArODUsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHVzaW5nIFNWR1BhdGhT
ZWdTaW5nbGVDb29yZGluYXRlOjpTVkdQYXRoU2VnU2luZ2xlQ29vcmRpbmF0ZTsKICAgICB1bnNp
Z25lZCBzaG9ydCBwYXRoU2VnVHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFBBVEhTRUdfTU9W
RVRPX0FCUzsgfQotICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwg
eyByZXR1cm4gIk0iOyB9CisgICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBm
aW5hbCB7IHJldHVybiAiTSJfczsgfQogICAgIFJlZjxTVkdQYXRoU2VnPiBjbG9uZSgpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIFNWR1BhdGhTZWdWYWx1ZTo6Y2xvbmU8U1ZHUGF0aFNlZ01vdmV0b0Fi
cz4oKTsgfQogfTsKIApAQCAtOTUsNyArOTUsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHVz
aW5nIFNWR1BhdGhTZWdTaW5nbGVDb29yZGluYXRlOjpTVkdQYXRoU2VnU2luZ2xlQ29vcmRpbmF0
ZTsKICAgICB1bnNpZ25lZCBzaG9ydCBwYXRoU2VnVHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IFBBVEhTRUdfTU9WRVRPX1JFTDsgfQotICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gIm0iOyB9CisgICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0
ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAibSJfczsgfQogICAgIFJlZjxTVkdQYXRoU2VnPiBj
bG9uZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFNWR1BhdGhTZWdWYWx1ZTo6Y2xvbmU8U1ZHUGF0
aFNlZ01vdmV0b1JlbD4oKTsgfQogfTsKIApAQCAtMTA1LDcgKzEwNSw3IEBAIHB1YmxpYzoKIHBy
aXZhdGU6CiAgICAgdXNpbmcgU1ZHUGF0aFNlZ1NpbmdsZUNvb3JkaW5hdGU6OlNWR1BhdGhTZWdT
aW5nbGVDb29yZGluYXRlOwogICAgIHVuc2lnbmVkIHNob3J0IHBhdGhTZWdUeXBlKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gUEFUSFNFR19MSU5FVE9fQUJTOyB9Ci0gICAgU3RyaW5nIHBhdGhTZWdU
eXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiTCI7IH0KKyAgICBTdHJpbmcgcGF0
aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJMIl9zOyB9CiAgICAgUmVm
PFNWR1BhdGhTZWc+IGNsb25lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gU1ZHUGF0aFNlZ1ZhbHVl
OjpjbG9uZTxTVkdQYXRoU2VnTGluZXRvQWJzPigpOyB9CiB9OwogCkBAIC0xMTUsNyArMTE1LDcg
QEAgcHVibGljOgogcHJpdmF0ZToKICAgICB1c2luZyBTVkdQYXRoU2VnU2luZ2xlQ29vcmRpbmF0
ZTo6U1ZHUGF0aFNlZ1NpbmdsZUNvb3JkaW5hdGU7CiAgICAgdW5zaWduZWQgc2hvcnQgcGF0aFNl
Z1R5cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBQQVRIU0VHX0xJTkVUT19SRUw7IH0KLSAgICBT
dHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJsIjsgfQor
ICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gImwi
X3M7IH0KICAgICBSZWY8U1ZHUGF0aFNlZz4gY2xvbmUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBT
VkdQYXRoU2VnVmFsdWU6OmNsb25lPFNWR1BhdGhTZWdMaW5ldG9SZWw+KCk7IH0KIH07CiAKQEAg
LTEyNSw3ICsxMjUsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHVzaW5nIFNWR1BhdGhTZWdD
dXJ2ZXRvUXVhZHJhdGljOjpTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpYzsKICAgICB1bnNpZ25l
ZCBzaG9ydCBwYXRoU2VnVHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFBBVEhTRUdfQ1VSVkVU
T19RVUFEUkFUSUNfQUJTOyB9Ci0gICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25z
dCBmaW5hbCB7IHJldHVybiAiUSI7IH0KKyAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuICJRIl9zOyB9CiAgICAgUmVmPFNWR1BhdGhTZWc+IGNsb25l
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gU1ZHUGF0aFNlZ1ZhbHVlOjpjbG9uZTxTVkdQYXRoU2Vn
Q3VydmV0b1F1YWRyYXRpY0Ficz4oKTsgfQogfTsKIApAQCAtMTM1LDcgKzEzNSw3IEBAIHB1Ymxp
YzoKIHByaXZhdGU6CiAgICAgdXNpbmcgU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWM6OlNWR1Bh
dGhTZWdDdXJ2ZXRvUXVhZHJhdGljOwogICAgIHVuc2lnbmVkIHNob3J0IHBhdGhTZWdUeXBlKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gUEFUSFNFR19DVVJWRVRPX1FVQURSQVRJQ19SRUw7IH0KLSAg
ICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJxIjsg
fQorICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
InEiX3M7IH0KICAgICBSZWY8U1ZHUGF0aFNlZz4gY2xvbmUoKSBjb25zdCBmaW5hbCB7IHJldHVy
biBTVkdQYXRoU2VnVmFsdWU6OmNsb25lPFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljUmVsPigp
OyB9CiB9OwogCkBAIC0xNDUsNyArMTQ1LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB1c2lu
ZyBTVkdQYXRoU2VnQ3VydmV0b0N1YmljOjpTVkdQYXRoU2VnQ3VydmV0b0N1YmljOwogICAgIHVu
c2lnbmVkIHNob3J0IHBhdGhTZWdUeXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gUEFUSFNFR19D
VVJWRVRPX0NVQklDX0FCUzsgfQotICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29u
c3QgZmluYWwgeyByZXR1cm4gIkMiOyB9CisgICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIo
KSBjb25zdCBmaW5hbCB7IHJldHVybiAiQyJfczsgfQogICAgIFJlZjxTVkdQYXRoU2VnPiBjbG9u
ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFNWR1BhdGhTZWdWYWx1ZTo6Y2xvbmU8U1ZHUGF0aFNl
Z0N1cnZldG9DdWJpY0Ficz4oKTsgfQogfTsKIApAQCAtMTU1LDcgKzE1NSw3IEBAIHB1YmxpYzoK
IHByaXZhdGU6CiAgICAgdXNpbmcgU1ZHUGF0aFNlZ0N1cnZldG9DdWJpYzo6U1ZHUGF0aFNlZ0N1
cnZldG9DdWJpYzsKICAgICB1bnNpZ25lZCBzaG9ydCBwYXRoU2VnVHlwZSgpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIFBBVEhTRUdfQ1VSVkVUT19DVUJJQ19SRUw7IH0KLSAgICBTdHJpbmcgcGF0aFNl
Z1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJjIjsgfQorICAgIFN0cmluZyBw
YXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gImMiX3M7IH0KICAgICBS
ZWY8U1ZHUGF0aFNlZz4gY2xvbmUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBTVkdQYXRoU2VnVmFs
dWU6OmNsb25lPFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNSZWw+KCk7IH0KIH07CiAKQEAgLTE2NSw3
ICsxNjUsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHVzaW5nIFNWR1BhdGhTZWdBcmM6OlNW
R1BhdGhTZWdBcmM7CiAgICAgdW5zaWduZWQgc2hvcnQgcGF0aFNlZ1R5cGUoKSBjb25zdCBmaW5h
bCB7IHJldHVybiBQQVRIU0VHX0FSQ19BQlM7IH0KLSAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xl
dHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJBIjsgfQorICAgIFN0cmluZyBwYXRoU2VnVHlw
ZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIkEiX3M7IH0KICAgICBSZWY8U1ZHUGF0
aFNlZz4gY2xvbmUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBTVkdQYXRoU2VnVmFsdWU6OmNsb25l
PFNWR1BhdGhTZWdBcmNBYnM+KCk7IH0KIH07CiAKQEAgLTE3NSw3ICsxNzUsNyBAQCBwdWJsaWM6
CiBwcml2YXRlOgogICAgIHVzaW5nIFNWR1BhdGhTZWdBcmM6OlNWR1BhdGhTZWdBcmM7CiAgICAg
dW5zaWduZWQgc2hvcnQgcGF0aFNlZ1R5cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBQQVRIU0VH
X0FSQ19SRUw7IH0KLSAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuICJhIjsgfQorICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gImEiX3M7IH0KICAgICBSZWY8U1ZHUGF0aFNlZz4gY2xvbmUoKSBjb25z
dCBmaW5hbCB7IHJldHVybiBTVkdQYXRoU2VnVmFsdWU6OmNsb25lPFNWR1BhdGhTZWdBcmNSZWw+
KCk7IH0KIH07CiAKQEAgLTE4NSw3ICsxODUsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHVz
aW5nIFNWR1BhdGhTZWdTaW5nbGVDb29yZGluYXRlOjpTVkdQYXRoU2VnU2luZ2xlQ29vcmRpbmF0
ZTsKICAgICB1bnNpZ25lZCBzaG9ydCBwYXRoU2VnVHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IFBBVEhTRUdfQ1VSVkVUT19RVUFEUkFUSUNfU01PT1RIX0FCUzsgfQotICAgIFN0cmluZyBwYXRo
U2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIlQiOyB9CisgICAgU3RyaW5n
IHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiVCJfczsgfQogICAg
IFJlZjxTVkdQYXRoU2VnPiBjbG9uZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFNWR1BhdGhTZWdW
YWx1ZTo6Y2xvbmU8U1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhBYnM+KCk7IH0KIH07
CiAKQEAgLTE5NSw3ICsxOTUsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHVzaW5nIFNWR1Bh
dGhTZWdTaW5nbGVDb29yZGluYXRlOjpTVkdQYXRoU2VnU2luZ2xlQ29vcmRpbmF0ZTsKICAgICB1
bnNpZ25lZCBzaG9ydCBwYXRoU2VnVHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFBBVEhTRUdf
Q1VSVkVUT19RVUFEUkFUSUNfU01PT1RIX1JFTDsgfQotICAgIFN0cmluZyBwYXRoU2VnVHlwZUFz
TGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gInQiOyB9CisgICAgU3RyaW5nIHBhdGhTZWdU
eXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAidCJfczsgfQogICAgIFJlZjxTVkdQ
YXRoU2VnPiBjbG9uZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFNWR1BhdGhTZWdWYWx1ZTo6Y2xv
bmU8U1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWNTbW9vdGhSZWw+KCk7IH0KIH07CiAKQEAgLTIw
NSw3ICsyMDUsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHVzaW5nIFNWR1BhdGhTZWdDdXJ2
ZXRvQ3ViaWNTbW9vdGg6OlNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGg7CiAgICAgdW5zaWdu
ZWQgc2hvcnQgcGF0aFNlZ1R5cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBQQVRIU0VHX0NVUlZF
VE9fQ1VCSUNfU01PT1RIX0FCUzsgfQotICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gIlMiOyB9CisgICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0
ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiUyJfczsgfQogICAgIFJlZjxTVkdQYXRoU2VnPiBj
bG9uZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFNWR1BhdGhTZWdWYWx1ZTo6Y2xvbmU8U1ZHUGF0
aFNlZ0N1cnZldG9DdWJpY1Ntb290aEFicz4oKTsgfQogfTsKIApAQCAtMjE1LDcgKzIxNSw3IEBA
IHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdXNpbmcgU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290
aDo6U1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aDsKICAgICB1bnNpZ25lZCBzaG9ydCBwYXRo
U2VnVHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFBBVEhTRUdfQ1VSVkVUT19DVUJJQ19TTU9P
VEhfUkVMOyB9Ci0gICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7
IHJldHVybiAicyI7IH0KKyAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuICJzIl9zOyB9CiAgICAgUmVmPFNWR1BhdGhTZWc+IGNsb25lKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gU1ZHUGF0aFNlZ1ZhbHVlOjpjbG9uZTxTVkdQYXRoU2VnQ3VydmV0b0N1
YmljU21vb3RoUmVsPigpOyB9CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmFkaWFs
R3JhZGllbnRFbGVtZW50LmgKaW5kZXggODRmMTE1ODhmM2UyODFlNmY2ZTA3YTYwOWQwODlhOTc4
NzA4YTM5ZS4uMjQxOTdmNzQ1NzcxNjU3YzE3ZDhkMDdiMmNkMjRlNTRlMzRjODA4ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JhZGlhbEdyYWRpZW50RWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuaApAQCAtNjMsMTIg
KzYzLDEyIEBAIHByaXZhdGU6CiAgICAgYm9vbCBzZWxmSGFzUmVsYXRpdmVMZW5ndGhzKCkgY29u
c3Qgb3ZlcnJpZGU7CiAKICAgICBQcm9wZXJ0eVJlZ2lzdHJ5IG1fcHJvcGVydHlSZWdpc3RyeSB7
ICp0aGlzIH07Ci0gICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX2N4IHsgU1ZHQW5pbWF0ZWRM
ZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpXaWR0aCwgIjUwJSIpIH07Ci0gICAg
UmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX2N5IHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0
aGlzLCBTVkdMZW5ndGhNb2RlOjpIZWlnaHQsICI1MCUiKSB9OwotICAgIFJlZjxTVkdBbmltYXRl
ZExlbmd0aD4gbV9yIHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhN
b2RlOjpPdGhlciwgIjUwJSIpIH07CisgICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX2N4IHsg
U1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpXaWR0aCwgIjUw
JSJfcykgfTsKKyAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1fY3kgeyBTVkdBbmltYXRlZExl
bmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OkhlaWdodCwgIjUwJSJfcykgfTsKKyAg
ICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1fciB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUo
dGhpcywgU1ZHTGVuZ3RoTW9kZTo6T3RoZXIsICI1MCUiX3MpIH07CiAgICAgUmVmPFNWR0FuaW1h
dGVkTGVuZ3RoPiBtX2Z4IHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5n
dGhNb2RlOjpXaWR0aCkgfTsKICAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1fZnkgeyBTVkdB
bmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OkhlaWdodCkgfTsKLSAg
ICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1fZnIgeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRl
KHRoaXMsIFNWR0xlbmd0aE1vZGU6Ok90aGVyLCAiMCUiKSB9OworICAgIFJlZjxTVkdBbmltYXRl
ZExlbmd0aD4gbV9mciB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3Ro
TW9kZTo6T3RoZXIsICIwJSJfcykgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5VHJhaXRz
LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRyYWl0cy5oCmlu
ZGV4IDQzOTk3MDQzMGY2NTZhOTg2NWU2ZTljOWQ5ZWY1ZWEyNGJiYTUzMDQuLjg0NWFiNGFiZmZi
Nzg5NTg0ODY5ZjlmZjFhYTVlODMyMDEyODBhNjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5VHJhaXRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlUcmFpdHMuaApAQCAtMzksNyArMzksNyBAQCBzdHJ1
Y3QgU1ZHUHJvcGVydHlUcmFpdHM8Ym9vbD4gewogICAgIHN0YXRpYyBib29sIGluaXRpYWxWYWx1
ZSgpIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAgc3RhdGljIGJvb2wgZnJvbVN0cmluZyhjb25zdCBT
dHJpbmcmIHN0cmluZykgeyByZXR1cm4gc3RyaW5nID09ICJ0cnVlIjsgfQogICAgIHN0YXRpYyBz
dGQ6Om9wdGlvbmFsPGJvb2w+IHBhcnNlKGNvbnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBTdHJp
bmcmKSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyByZXR1cm4gaW5pdGlhbFZhbHVlKCk7IH0KLSAg
ICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGJvb2wgdHlwZSkgeyByZXR1cm4gdHlwZSA/ICJ0cnVl
IiA6ICJmYWxzZSI7IH0KKyAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGJvb2wgdHlwZSkgeyBy
ZXR1cm4gdHlwZSA/ICJ0cnVlIl9zIDogImZhbHNlIl9zOyB9CiB9OwogCiB0ZW1wbGF0ZTw+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL01vY2tDb250ZW50RmlsdGVyU2V0dGlu
Z3MuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5ncy5o
CmluZGV4IDE4MWVmZjViNWI4ZWEwMDE4ZTlmM2IwYzI0M2FjN2Q0ZTNlOWRjYTcuLmYzYzk3ZjNm
OGUxM2FhMGYxMjdkZWU4NDM5ZDZiNWMwZDBlM2MxZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5ncy5oCkBAIC00OCw3ICs0OCw3IEBA
IHB1YmxpYzoKIAogICAgIFdFQkNPUkVfVEVTVFNVUFBPUlRfRVhQT1JUIHN0YXRpYyBNb2NrQ29u
dGVudEZpbHRlclNldHRpbmdzJiBzaW5nbGV0b24oKTsKICAgICBXRUJDT1JFX1RFU1RTVVBQT1JU
X0VYUE9SVCBzdGF0aWMgdm9pZCByZXNldCgpOwotICAgIHN0YXRpYyBjb25zdCBjaGFyKiB1bmJs
b2NrVVJMSG9zdCgpIHsgcmV0dXJuICJtb2NrLXVuYmxvY2siOyB9CisgICAgc3RhdGljIEFTQ0lJ
TGl0ZXJhbCB1bmJsb2NrVVJMSG9zdCgpIHsgcmV0dXJuICJtb2NrLXVuYmxvY2siX3M7IH0KIAog
ICAgIC8vIFRyaWNrIHRoZSBnZW5lcmF0ZWQgYmluZGluZ3MgaW50byB0aGlua2luZyB3ZSdyZSBS
ZWZDb3VudGVkLgogICAgIHZvaWQgcmVmKCkgeyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS94bWwvWFBhdGhWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUveG1sL1hQYXRoVmFsdWUuaAppbmRl
eCBkOTFjNzdkMTAyZDI0YWQyM2U1OTM5ODZlMDQwYmEyNWMwOWRiMzZiLi5lYTgzZjdkMGJiMWFh
ZjE0YTdiYTcyMTA5NGYzYjIxOWEyMmIyM2IxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94
bWwvWFBhdGhWYWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aFZhbHVlLmgKQEAg
LTQwLDcgKzQwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICAgICAgVmFsdWUoZG91
YmxlIHZhbHVlKSA6IG1fdHlwZShOdW1iZXJWYWx1ZSksIG1fbnVtYmVyKHZhbHVlKSB7IH0KIAog
ICAgICAgICAgICAgVmFsdWUoY29uc3QgU3RyaW5nJiB2YWx1ZSkgOiBtX3R5cGUoU3RyaW5nVmFs
dWUpLCBtX2RhdGEoRGF0YTo6Y3JlYXRlKHZhbHVlKSkgeyB9Ci0gICAgICAgICAgICBWYWx1ZShj
b25zdCBjaGFyKiB2YWx1ZSkgOiBtX3R5cGUoU3RyaW5nVmFsdWUpLCBtX2RhdGEoRGF0YTo6Y3Jl
YXRlKHZhbHVlKSkgeyB9CisgICAgICAgICAgICBWYWx1ZShjb25zdCBjaGFyKiB2YWx1ZSkgOiBt
X3R5cGUoU3RyaW5nVmFsdWUpLCBtX2RhdGEoRGF0YTo6Y3JlYXRlKFN0cmluZyB7IHZhbHVlIH0p
KSB7IH0KIAogICAgICAgICAgICAgZXhwbGljaXQgVmFsdWUoTm9kZVNldCYmIHZhbHVlKQogICAg
ICAgICAgICAgICAgIDogbV90eXBlKE5vZGVTZXRWYWx1ZSksIG1fZGF0YShEYXRhOjpjcmVhdGUo
V1RGTW92ZSh2YWx1ZSkpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUveG1sL1hTTFN0eWxl
U2hlZXQuaCBiL1NvdXJjZS9XZWJDb3JlL3htbC9YU0xTdHlsZVNoZWV0LmgKaW5kZXggYTJiZjhl
MzM0OWFiNTYzNmY1Mjc0ZTQ1MjRjMzBiYjE4NmM2ZmRlZC4uNWZiZDZlYmE0NzlkODdlOWI3ZTgy
MWFmOWVhMzJmMDMwZjQ2ODUwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hTTFN0
eWxlU2hlZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMU3R5bGVTaGVldC5oCkBAIC04
NCw3ICs4NCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIG1hcmtBc1Byb2Nlc3NlZCgpOwogICAgIGJv
b2wgcHJvY2Vzc2VkKCkgY29uc3QgeyByZXR1cm4gbV9wcm9jZXNzZWQ7IH0KICAgICAKLSAgICBT
dHJpbmcgdHlwZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJ0ZXh0L3htbCI7IH0KKyAgICBT
dHJpbmcgdHlwZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJ0ZXh0L3htbCJfczsgfQogICAg
IGJvb2wgZGlzYWJsZWQoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX2lzRGlzYWJsZWQ7IH0K
ICAgICB2b2lkIHNldERpc2FibGVkKGJvb2wgYikgb3ZlcnJpZGUgeyBtX2lzRGlzYWJsZWQgPSBi
OyB9CiAgICAgTm9kZSogb3duZXJOb2RlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9vd25l
ck5vZGU7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJHUFUvV0dTTC9QYXJzZXIuY3BwIGIvU291
cmNlL1dlYkdQVS9XR1NML1BhcnNlci5jcHAKaW5kZXggNjI1NDg3ZGUxODVmZWVjZjk0YTFkMWIz
ZjBiYzk4NDZlM2RiOGEwYS4uZTYyZjNlMGMwODdlZmExYzFiYzJkMDhiMWYyZDc4MWFhOWM1Y2M0
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkdQVS9XR1NML1BhcnNlci5jcHAKKysrIGIvU291cmNl
L1dlYkdQVS9XR1NML1BhcnNlci5jcHAKQEAgLTIzNCw3ICsyMzQsNyBAQCBFeHBlY3RlZDxVbmlx
dWVSZWY8QVNUOjpHbG9iYWxEZWNsPiwgRXJyb3I+IFBhcnNlcjxMZXhlcj46OnBhcnNlR2xvYmFs
RGVjbCgpCiAgICAgICAgIHJldHVybiB7IG1ha2VVbmlxdWVSZWY8QVNUOjpGdW5jdGlvbkRlY2w+
KFdURk1vdmUoZm4pKSB9OwogICAgIH0KICAgICBkZWZhdWx0OgotICAgICAgICBGQUlMKCJUcnlp
bmcgdG8gcGFyc2UgYSBHbG9iYWxEZWNsLCBleHBlY3RlZCAndmFyJywgJ2ZuJywgb3IgJ3N0cnVj
dCcuIik7CisgICAgICAgIEZBSUwoIlRyeWluZyB0byBwYXJzZSBhIEdsb2JhbERlY2wsIGV4cGVj
dGVkICd2YXInLCAnZm4nLCBvciAnc3RydWN0Jy4iX3MpOwogICAgIH0KIH0KIApAQCAtMjgyLDcg
KzI4Miw3IEBAIEV4cGVjdGVkPFVuaXF1ZVJlZjxBU1Q6OkF0dHJpYnV0ZT4sIEVycm9yPiBQYXJz
ZXI8TGV4ZXI+OjpwYXJzZUF0dHJpYnV0ZSgpCiAgICAgICAgICAgICBSRVRVUk5fTk9ERV9SRUYo
U3RhZ2VBdHRyaWJ1dGUsIEFTVDo6U3RhZ2VBdHRyaWJ1dGU6OlN0YWdlOjpWZXJ0ZXgpOwogICAg
ICAgICBpZiAoc3RhZ2UubV9pZGVudCA9PSAiZnJhZ21lbnQiKQogICAgICAgICAgICAgUkVUVVJO
X05PREVfUkVGKFN0YWdlQXR0cmlidXRlLCBBU1Q6OlN0YWdlQXR0cmlidXRlOjpTdGFnZTo6RnJh
Z21lbnQpOwotICAgICAgICBGQUlMKCJJbnZhbGlkIHN0YWdlIGF0dHJpYnV0ZSwgdGhlIG9ubHkg
b3B0aW9ucyBhcmUgJ2NvbXB1dGUnLCAndmVydGV4JywgJ2ZyYWdtZW50Jy4iKTsKKyAgICAgICAg
RkFJTCgiSW52YWxpZCBzdGFnZSBhdHRyaWJ1dGUsIHRoZSBvbmx5IG9wdGlvbnMgYXJlICdjb21w
dXRlJywgJ3ZlcnRleCcsICdmcmFnbWVudCcuIl9zKTsKICAgICB9CiAgICAgaWYgKGlkZW50Lm1f
aWRlbnQgPT0gImxvY2F0aW9uIikgewogICAgICAgICBDT05TVU1FX1RZUEUoUGFyZW5MZWZ0KTsK
QEAgLTI5Nyw3ICsyOTcsNyBAQCBFeHBlY3RlZDxVbmlxdWVSZWY8QVNUOjpBdHRyaWJ1dGU+LCBF
cnJvcj4gUGFyc2VyPExleGVyPjo6cGFyc2VBdHRyaWJ1dGUoKQogICAgICAgICBDT05TVU1FX1RZ
UEUoUGFyZW5SaWdodCk7CiAgICAgICAgIFJFVFVSTl9OT0RFX1JFRihCdWlsdGluQXR0cmlidXRl
LCBuYW1lLm1faWRlbnQpOwogICAgIH0KLSAgICBGQUlMKCJVbmtub3duIGF0dHJpYnV0ZSwgdGhl
IG9ubHkgc3VwcG9ydGVkIGF0dHJpYnV0ZXMgYXJlICdncm91cCcsICdiaW5kaW5nJywgJ3N0YWdl
Jy4iKTsKKyAgICBGQUlMKCJVbmtub3duIGF0dHJpYnV0ZSwgdGhlIG9ubHkgc3VwcG9ydGVkIGF0
dHJpYnV0ZXMgYXJlICdncm91cCcsICdiaW5kaW5nJywgJ3N0YWdlJy4iX3MpOwogfQogCiB0ZW1w
bGF0ZTx0eXBlbmFtZSBMZXhlcj4KQEAgLTM2MCw3ICszNjAsNyBAQCBFeHBlY3RlZDxVbmlxdWVS
ZWY8QVNUOjpUeXBlRGVjbD4sIEVycm9yPiBQYXJzZXI8TGV4ZXI+OjpwYXJzZVR5cGVEZWNsKCkK
ICAgICAgICAgcmV0dXJuIHBhcnNlVHlwZURlY2xBZnRlcklkZW50aWZpZXIoV1RGTW92ZShuYW1l
Lm1faWRlbnQpLCBfc3RhcnRPZkVsZW1lbnRQb3NpdGlvbik7CiAgICAgfQogCi0gICAgRkFJTCgi
VHJpZWQgcGFyc2luZyBhIHR5cGUgYW5kIGl0IGRpZCBub3Qgc3RhcnQgd2l0aCBhbiBpZGVudGlm
aWVyIik7CisgICAgRkFJTCgiVHJpZWQgcGFyc2luZyBhIHR5cGUgYW5kIGl0IGRpZCBub3Qgc3Rh
cnQgd2l0aCBhbiBpZGVudGlmaWVyIl9zKTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgTGV4ZXI+
CkBAIC00NTAsNyArNDUwLDcgQEAgRXhwZWN0ZWQ8QVNUOjpTdG9yYWdlQ2xhc3MsIEVycm9yPiBQ
YXJzZXI8TGV4ZXI+OjpwYXJzZVN0b3JhZ2VDbGFzcygpCiAgICAgICAgIHJldHVybiB7IEFTVDo6
U3RvcmFnZUNsYXNzOjpTdG9yYWdlIH07CiAgICAgfQogCi0gICAgRkFJTCgiRXhwZWN0ZWQgb25l
IG9mICdmdW5jdGlvbicvJ3ByaXZhdGUnLydzdG9yYWdlJy8ndW5pZm9ybScvJ3dvcmtncm91cCci
KTsKKyAgICBGQUlMKCJFeHBlY3RlZCBvbmUgb2YgJ2Z1bmN0aW9uJy8ncHJpdmF0ZScvJ3N0b3Jh
Z2UnLyd1bmlmb3JtJy8nd29ya2dyb3VwJyJfcyk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIExl
eGVyPgpAQCAtNDcxLDcgKzQ3MSw3IEBAIEV4cGVjdGVkPEFTVDo6QWNjZXNzTW9kZSwgRXJyb3I+
IFBhcnNlcjxMZXhlcj46OnBhcnNlQWNjZXNzTW9kZSgpCiAgICAgICAgIHJldHVybiB7IEFTVDo6
QWNjZXNzTW9kZTo6UmVhZFdyaXRlIH07CiAgICAgfQogCi0gICAgRkFJTCgiRXhwZWN0ZWQgb25l
IG9mICdyZWFkJy8nd3JpdGUnLydyZWFkX3dyaXRlJyIpOworICAgIEZBSUwoIkV4cGVjdGVkIG9u
ZSBvZiAncmVhZCcvJ3dyaXRlJy8ncmVhZF93cml0ZSciX3MpOwogfQogCiB0ZW1wbGF0ZTx0eXBl
bmFtZSBMZXhlcj4KQEAgLTU0Nyw3ICs1NDcsNyBAQCBFeHBlY3RlZDxVbmlxdWVSZWY8QVNUOjpT
dGF0ZW1lbnQ+LCBFcnJvcj4gUGFyc2VyPExleGVyPjo6cGFyc2VTdGF0ZW1lbnQoKQogICAgICAg
ICBSRVRVUk5fTk9ERV9SRUYoQXNzaWdubWVudFN0YXRlbWVudCwgbGhzLm1vdmVUb1VuaXF1ZVB0
cigpLCBXVEZNb3ZlKHJocykpOwogICAgIH0KICAgICBkZWZhdWx0OgotICAgICAgICBGQUlMKCJO
b3QgYSB2YWxpZCBzdGF0ZW1lbnQiKTsKKyAgICAgICAgRkFJTCgiTm90IGEgdmFsaWQgc3RhdGVt
ZW50Il9zKTsKICAgICB9CiB9CiAKQEAgLTY5NCw3ICs2OTQsNyBAQCBFeHBlY3RlZDxVbmlxdWVS
ZWY8QVNUOjpFeHByZXNzaW9uPiwgRXJyb3I+IFBhcnNlcjxMZXhlcj46OnBhcnNlUHJpbWFyeUV4
cHJlc3NpbwogICAgIGRlZmF1bHQ6CiAgICAgICAgIGJyZWFrOwogICAgIH0KLSAgICBGQUlMKCJF
eHBlY3RlZCBvbmUgb2YgJygnLCBhIGxpdGVyYWwsIG9yIGFuIGlkZW50aWZpZXIiKTsKKyAgICBG
QUlMKCJFeHBlY3RlZCBvbmUgb2YgJygnLCBhIGxpdGVyYWwsIG9yIGFuIGlkZW50aWZpZXIiX3Mp
OwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBMZXhlcj4KQEAgLTczNCw3ICs3MzQsNyBAQCBFeHBl
Y3RlZDxVbmlxdWVSZWY8QVNUOjpFeHByZXNzaW9uPiwgRXJyb3I+IFBhcnNlcjxMZXhlcj46OnBh
cnNlQ29yZUxIU0V4cHJlc3NpbwogICAgICAgICBicmVhazsKICAgICB9CiAKLSAgICBGQUlMKCJU
cmllZCB0byBwYXJzZSB0aGUgbGVmdC1oYW5kIHNpZGUgb2YgYW4gYXNzaWdubWVudCBhbmQgZmFp
bGVkIik7CisgICAgRkFJTCgiVHJpZWQgdG8gcGFyc2UgdGhlIGxlZnQtaGFuZCBzaWRlIG9mIGFu
IGFzc2lnbm1lbnQgYW5kIGZhaWxlZCJfcyk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIExleGVy
PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkdQVS9XR1NML1Rva2VuLmNwcCBiL1NvdXJjZS9XZWJH
UFUvV0dTTC9Ub2tlbi5jcHAKaW5kZXggZGIzYzBhNDNlMTAzNzJlYjk5NDFmY2YxNmQ4YjIwZWRl
N2YwODkxMi4uNjczMWFhMjJjMTJhMzMwMzY4Y2ZiMWI3NjBjOTY2ZWUxMGYxYWMxMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkdQVS9XR1NML1Rva2VuLmNwcAorKysgYi9Tb3VyY2UvV2ViR1BVL1dH
U0wvVG9rZW4uY3BwCkBAIC0zMiw4OSArMzIsODkgQEAgU3RyaW5nIHRvU3RyaW5nKFRva2VuVHlw
ZSB0eXBlKQogewogICAgIHN3aXRjaCAodHlwZSkgewogICAgIGNhc2UgVG9rZW5UeXBlOjpJbnZh
bGlkOgotICAgICAgICByZXR1cm4gIkludmFsaWQiOworICAgICAgICByZXR1cm4gIkludmFsaWQi
X3M7CiAgICAgY2FzZSBUb2tlblR5cGU6OkVuZE9mRmlsZToKLSAgICAgICAgcmV0dXJuICJFT0Yi
OworICAgICAgICByZXR1cm4gIkVPRiJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6SW50ZWdlckxp
dGVyYWw6Ci0gICAgICAgIHJldHVybiAiSW50ZWdlckxpdGVyYWwiOworICAgICAgICByZXR1cm4g
IkludGVnZXJMaXRlcmFsIl9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpJbnRlZ2VyTGl0ZXJhbFNp
Z25lZDoKLSAgICAgICAgcmV0dXJuICJJbnRlZ2VyTGl0ZXJhbFNpZ25lZCI7CisgICAgICAgIHJl
dHVybiAiSW50ZWdlckxpdGVyYWxTaWduZWQiX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6OkludGVn
ZXJMaXRlcmFsVW5zaWduZWQ6Ci0gICAgICAgIHJldHVybiAiSW50ZWdlckxpdGVyYWxVbnNpZ25l
ZCI7CisgICAgICAgIHJldHVybiAiSW50ZWdlckxpdGVyYWxVbnNpZ25lZCJfczsKICAgICBjYXNl
IFRva2VuVHlwZTo6RGVjaW1hbEZsb2F0TGl0ZXJhbDoKLSAgICAgICAgcmV0dXJuICJEZWNpbWFs
RmxvYXRMaXRlcmFsIjsKKyAgICAgICAgcmV0dXJuICJEZWNpbWFsRmxvYXRMaXRlcmFsIl9zOwog
ICAgIGNhc2UgVG9rZW5UeXBlOjpIZXhGbG9hdExpdGVyYWw6Ci0gICAgICAgIHJldHVybiAiSGV4
RmxvYXRMaXRlcmFsIjsKKyAgICAgICAgcmV0dXJuICJIZXhGbG9hdExpdGVyYWwiX3M7CiAgICAg
Y2FzZSBUb2tlblR5cGU6OklkZW50aWZpZXI6Ci0gICAgICAgIHJldHVybiAiSWRlbnRpZmllciI7
CisgICAgICAgIHJldHVybiAiSWRlbnRpZmllciJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6UmVz
ZXJ2ZWRXb3JkOgotICAgICAgICByZXR1cm4gIlJlc2VydmVkV29yZCI7CisgICAgICAgIHJldHVy
biAiUmVzZXJ2ZWRXb3JkIl9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpLZXl3b3JkU3RydWN0Ogot
ICAgICAgICByZXR1cm4gInN0cnVjdCI7CisgICAgICAgIHJldHVybiAic3RydWN0Il9zOwogICAg
IGNhc2UgVG9rZW5UeXBlOjpLZXl3b3JkRm46Ci0gICAgICAgIHJldHVybiAiZm4iOworICAgICAg
ICByZXR1cm4gImZuIl9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpLZXl3b3JkRnVuY3Rpb246Ci0g
ICAgICAgIHJldHVybiAiZnVuY3Rpb24iOworICAgICAgICByZXR1cm4gImZ1bmN0aW9uIl9zOwog
ICAgIGNhc2UgVG9rZW5UeXBlOjpLZXl3b3JkUHJpdmF0ZToKLSAgICAgICAgcmV0dXJuICJwcml2
YXRlIjsKKyAgICAgICAgcmV0dXJuICJwcml2YXRlIl9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpL
ZXl3b3JkUmVhZDoKLSAgICAgICAgcmV0dXJuICJyZWFkIjsKKyAgICAgICAgcmV0dXJuICJyZWFk
Il9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpLZXl3b3JkUmVhZFdyaXRlOgotICAgICAgICByZXR1
cm4gInJlYWRfd3JpdGUiOworICAgICAgICByZXR1cm4gInJlYWRfd3JpdGUiX3M7CiAgICAgY2Fz
ZSBUb2tlblR5cGU6OktleXdvcmRSZXR1cm46Ci0gICAgICAgIHJldHVybiAicmV0dXJuIjsKKyAg
ICAgICAgcmV0dXJuICJyZXR1cm4iX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6OktleXdvcmRTdG9y
YWdlOgotICAgICAgICByZXR1cm4gInN0b3JhZ2UiOworICAgICAgICByZXR1cm4gInN0b3JhZ2Ui
X3M7CiAgICAgY2FzZSBUb2tlblR5cGU6OktleXdvcmRVbmlmb3JtOgotICAgICAgICByZXR1cm4g
InVuaWZvcm0iOworICAgICAgICByZXR1cm4gInVuaWZvcm0iX3M7CiAgICAgY2FzZSBUb2tlblR5
cGU6OktleXdvcmRWYXI6Ci0gICAgICAgIHJldHVybiAidmFyIjsKKyAgICAgICAgcmV0dXJuICJ2
YXIiX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6OktleXdvcmRXb3JrZ3JvdXA6Ci0gICAgICAgIHJl
dHVybiAid29ya2dyb3VwIjsKKyAgICAgICAgcmV0dXJuICJ3b3JrZ3JvdXAiX3M7CiAgICAgY2Fz
ZSBUb2tlblR5cGU6OktleXdvcmRXcml0ZToKLSAgICAgICAgcmV0dXJuICJ3cml0ZSI7CisgICAg
ICAgIHJldHVybiAid3JpdGUiX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6OktleXdvcmRJMzI6Ci0g
ICAgICAgIHJldHVybiAiaTMyIjsKKyAgICAgICAgcmV0dXJuICJpMzIiX3M7CiAgICAgY2FzZSBU
b2tlblR5cGU6OktleXdvcmRVMzI6Ci0gICAgICAgIHJldHVybiAidTMyIjsKKyAgICAgICAgcmV0
dXJuICJ1MzIiX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6OktleXdvcmRGMzI6Ci0gICAgICAgIHJl
dHVybiAiZjMyIjsKKyAgICAgICAgcmV0dXJuICJmMzIiX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6
OktleXdvcmRCb29sOgotICAgICAgICByZXR1cm4gImJvb2wiOworICAgICAgICByZXR1cm4gImJv
b2wiX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6OkxpdGVyYWxUcnVlOgotICAgICAgICByZXR1cm4g
InRydWUiOworICAgICAgICByZXR1cm4gInRydWUiX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6Okxp
dGVyYWxGYWxzZToKLSAgICAgICAgcmV0dXJuICJmYWxzZSI7CisgICAgICAgIHJldHVybiAiZmFs
c2UiX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6OkFycm93OgotICAgICAgICByZXR1cm4gIi0+IjsK
KyAgICAgICAgcmV0dXJuICItPiJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6QXR0cmlidXRlOgot
ICAgICAgICByZXR1cm4gIkAiOworICAgICAgICByZXR1cm4gIkAiX3M7CiAgICAgY2FzZSBUb2tl
blR5cGU6OkJyYWNrZXRMZWZ0OgotICAgICAgICByZXR1cm4gIlsiOworICAgICAgICByZXR1cm4g
IlsiX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6OkJyYWNrZXRSaWdodDoKLSAgICAgICAgcmV0dXJu
ICJdIjsKKyAgICAgICAgcmV0dXJuICJdIl9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpCcmFjZUxl
ZnQ6Ci0gICAgICAgIHJldHVybiAieyI7CisgICAgICAgIHJldHVybiAieyJfczsKICAgICBjYXNl
IFRva2VuVHlwZTo6QnJhY2VSaWdodDoKLSAgICAgICAgcmV0dXJuICJ9IjsKKyAgICAgICAgcmV0
dXJuICJ9Il9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpDb2xvbjoKLSAgICAgICAgcmV0dXJuICI6
IjsKKyAgICAgICAgcmV0dXJuICI6Il9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpDb21tYToKLSAg
ICAgICAgcmV0dXJuICIsIjsKKyAgICAgICAgcmV0dXJuICIsIl9zOwogICAgIGNhc2UgVG9rZW5U
eXBlOjpFcXVhbDoKLSAgICAgICAgcmV0dXJuICI9IjsKKyAgICAgICAgcmV0dXJuICI9Il9zOwog
ICAgIGNhc2UgVG9rZW5UeXBlOjpHVDoKLSAgICAgICAgcmV0dXJuICI+IjsKKyAgICAgICAgcmV0
dXJuICI+Il9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpMVDoKLSAgICAgICAgcmV0dXJuICI8IjsK
KyAgICAgICAgcmV0dXJuICI8Il9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpQZXJpb2Q6Ci0gICAg
ICAgIHJldHVybiAiLiI7CisgICAgICAgIHJldHVybiAiLiJfczsKICAgICBjYXNlIFRva2VuVHlw
ZTo6UGFyZW5MZWZ0OgotICAgICAgICByZXR1cm4gIigiOworICAgICAgICByZXR1cm4gIigiX3M7
CiAgICAgY2FzZSBUb2tlblR5cGU6OlBhcmVuUmlnaHQ6Ci0gICAgICAgIHJldHVybiAiKSI7Cisg
ICAgICAgIHJldHVybiAiKSJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6U2VtaWNvbG9uOgotICAg
ICAgICByZXR1cm4gIjsiOworICAgICAgICByZXR1cm4gIjsiX3M7CiAgICAgfQogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9BZGFwdGVyLm1tIGIvU291cmNlL1dlYkdQVS9X
ZWJHUFUvQWRhcHRlci5tbQppbmRleCAxYmJhZDYxYTZjZTdlMjk3NTZkZTE1NjFhYTQ2MmRlNWQx
YTY4MjY4Li42MDBkMWQ2ZTdiZjBmNzdiZGQyZjUxOGZmOTQzNTA3ODEyNTJmYTM5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9BZGFwdGVyLm1tCisrKyBiL1NvdXJjZS9XZWJHUFUv
V2ViR1BVL0FkYXB0ZXIubW0KQEAgLTEyMyw3ICsxMjMsNyBAQCB2b2lkIEFkYXB0ZXI6OnJlcXVl
c3REZXZpY2UoY29uc3QgV0dQVURldmljZURlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIENvbXBsZXRp
b25IYQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgY2FsbGJhY2soV0dQVVJlcXVlc3RE
ZXZpY2VTdGF0dXNfU3VjY2VzcywgRGV2aWNlOjpjcmVhdGUobV9kZXZpY2UsIGRlc2NyaXB0b3Iu
bGFiZWwsIG1faW5zdGFuY2UpLCB7IH0pOworICAgIGNhbGxiYWNrKFdHUFVSZXF1ZXN0RGV2aWNl
U3RhdHVzX1N1Y2Nlc3MsIERldmljZTo6Y3JlYXRlKG1fZGV2aWNlLCBTdHJpbmcgeyBkZXNjcmlw
dG9yLmxhYmVsIH0sIG1faW5zdGFuY2UpLCB7IH0pOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJH
UFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL0J1ZmZlci5tbSBiL1NvdXJjZS9X
ZWJHUFUvV2ViR1BVL0J1ZmZlci5tbQppbmRleCBmYmIyZjQ0ZGY5ZTUzNmNlNWNmZWRlMTFmNzg1
ZGM4Y2RhMWZiZGM1Li4zYjkyMjAwMzE4ZGM1MTdkMmEwZWI2ZWMzOTllYTU1NDFjNmE1MTY3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9CdWZmZXIubW0KKysrIGIvU291cmNlL1dl
YkdQVS9XZWJHUFUvQnVmZmVyLm1tCkBAIC0yOTEsNyArMjkxLDcgQEAgdm9pZCBCdWZmZXI6Om1h
cEFzeW5jKFdHUFVNYXBNb2RlRmxhZ3MgbW9kZSwgc2l6ZV90IG9mZnNldCwgc2l6ZV90IHNpemUs
IENvbXBsZXQKICAgICAvLyAiSWYgYW55IG9mIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUg
dW5zYXRpc2ZpZWQ6IgogICAgIGlmICghdmFsaWRhdGVNYXBBc3luYyhtb2RlLCBvZmZzZXQsIHJh
bmdlU2l6ZSkpIHsKICAgICAgICAgLy8gIlJlY29yZCBhIHZhbGlkYXRpb24gZXJyb3Igb24gdGhl
IGN1cnJlbnQgc2NvcGUuIgotICAgICAgICBtX2RldmljZS0+Z2VuZXJhdGVBVmFsaWRhdGlvbkVy
cm9yKCJWYWxpZGF0aW9uIGZhaWx1cmUuIik7CisgICAgICAgIG1fZGV2aWNlLT5nZW5lcmF0ZUFW
YWxpZGF0aW9uRXJyb3IoIlZhbGlkYXRpb24gZmFpbHVyZS4iX3MpOwogCiAgICAgICAgIC8vICJS
ZXR1cm4gYSBwcm9taXNlIHJlamVjdGVkIHdpdGggYW4gT3BlcmF0aW9uRXJyb3Igb24gdGhlIERl
dmljZSB0aW1lbGluZS4iCiAgICAgICAgIGNhbGxiYWNrKFdHUFVCdWZmZXJNYXBBc3luY1N0YXR1
c19FcnJvcik7CkBAIC0zNjUsNyArMzY1LDcgQEAgdm9pZCBCdWZmZXI6OnVubWFwKCkKICAgICAv
LyAiSWYgYW55IG9mIHRoZSBmb2xsb3dpbmcgcmVxdWlyZW1lbnRzIGFyZSB1bm1ldCIKICAgICBp
ZiAoIXZhbGlkYXRlVW5tYXAoKSkgewogICAgICAgICAvLyAiZ2VuZXJhdGUgYSB2YWxpZGF0aW9u
IGVycm9yIGFuZCBzdG9wLiIKLSAgICAgICAgbV9kZXZpY2UtPmdlbmVyYXRlQVZhbGlkYXRpb25F
cnJvcigiVmFsaWRhdGlvbiBmYWlsdXJlLiIpOworICAgICAgICBtX2RldmljZS0+Z2VuZXJhdGVB
VmFsaWRhdGlvbkVycm9yKCJWYWxpZGF0aW9uIGZhaWx1cmUuIl9zKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkdQVS9XZWJHUFUvQ29tbWFuZEVuY29k
ZXIubW0gYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9Db21tYW5kRW5jb2Rlci5tbQppbmRleCBhZTRi
YWM2MDg1YjRjNWYyZWU0Y2Q5YzdjM2EzZTBiMDNkNzZkNzkyLi45Njk4YzhhMDk5ZmZkNmMwOTM3
ODQzOTRhODEyYzE4MmYwZWI3ZDViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9D
b21tYW5kRW5jb2Rlci5tbQorKysgYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9Db21tYW5kRW5jb2Rl
ci5tbQpAQCAtMTQ5LDcgKzE0OSw3IEBAIHZvaWQgQ29tbWFuZEVuY29kZXI6OmNvcHlCdWZmZXJU
b0J1ZmZlcihjb25zdCBCdWZmZXImIHNvdXJjZSwgdWludDY0X3Qgc291cmNlT2ZmCiAgICAgLy8g
IklmIGFueSBvZiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIHVuc2F0aXNmaWVkCiAgICAg
aWYgKCF2YWxpZGF0ZUNvcHlCdWZmZXJUb0J1ZmZlcihzb3VyY2UsIHNvdXJjZU9mZnNldCwgZGVz
dGluYXRpb24sIGRlc3RpbmF0aW9uT2Zmc2V0LCBzaXplKSkgewogICAgICAgICAvLyAiZ2VuZXJh
dGUgYSB2YWxpZGF0aW9uIGVycm9yIGFuZCBzdG9wLiIKLSAgICAgICAgbV9kZXZpY2UtPmdlbmVy
YXRlQVZhbGlkYXRpb25FcnJvcigiVmFsaWRhdGlvbiBmYWlsdXJlLiIpOworICAgICAgICBtX2Rl
dmljZS0+Z2VuZXJhdGVBVmFsaWRhdGlvbkVycm9yKCJWYWxpZGF0aW9uIGZhaWx1cmUuIl9zKTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMjIwLDcgKzIyMCw3IEBAIHZvaWQgQ29tbWFu
ZEVuY29kZXI6OmNsZWFyQnVmZmVyKGNvbnN0IEJ1ZmZlciYgYnVmZmVyLCB1aW50NjRfdCBvZmZz
ZXQsIHVpbnQ2NF90CiAgICAgLy8gIklmIGFueSBvZiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMg
YXJlIHVuc2F0aXNmaWVkIgogICAgIGlmICghdmFsaWRhdGVDbGVhckJ1ZmZlcihidWZmZXIsIG9m
ZnNldCwgc2l6ZSkpIHsKICAgICAgICAgLy8gImdlbmVyYXRlIGEgdmFsaWRhdGlvbiBlcnJvciBh
bmQgc3RvcC4iCi0gICAgICAgIG1fZGV2aWNlLT5nZW5lcmF0ZUFWYWxpZGF0aW9uRXJyb3IoIlZh
bGlkYXRpb24gZmFpbHVyZS4iKTsKKyAgICAgICAgbV9kZXZpY2UtPmdlbmVyYXRlQVZhbGlkYXRp
b25FcnJvcigiVmFsaWRhdGlvbiBmYWlsdXJlLiJfcyk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKQEAgLTI2Miw3ICsyNjIsNyBAQCBSZWZQdHI8Q29tbWFuZEJ1ZmZlcj4gQ29tbWFuZEVuY29k
ZXI6OmZpbmlzaChjb25zdCBXR1BVQ29tbWFuZEJ1ZmZlckRlc2NyaXB0b3ImCiAgICAgLy8gIklm
IHZhbGlkYXRpb25TdWNjZWVkZWQgaXMgZmFsc2UsIHRoZW46IgogICAgIGlmICh2YWxpZGF0aW9u
RmFpbGVkKSB7CiAgICAgICAgIC8vICJHZW5lcmF0ZSBhIHZhbGlkYXRpb24gZXJyb3IuIgotICAg
ICAgICBtX2RldmljZS0+Z2VuZXJhdGVBVmFsaWRhdGlvbkVycm9yKCJWYWxpZGF0aW9uIGZhaWx1
cmUuIik7CisgICAgICAgIG1fZGV2aWNlLT5nZW5lcmF0ZUFWYWxpZGF0aW9uRXJyb3IoIlZhbGlk
YXRpb24gZmFpbHVyZS4iX3MpOwogCiAgICAgICAgIC8vIEZJWE1FOiAiUmV0dXJuIGEgbmV3IGlu
dmFsaWQgR1BVQ29tbWFuZEJ1ZmZlci4iCiAgICAgICAgIHJldHVybiBudWxscHRyOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkdQVS9XZWJHUFUvQ29tcHV0ZVBpcGVsaW5lLm1tIGIvU291cmNlL1dl
YkdQVS9XZWJHUFUvQ29tcHV0ZVBpcGVsaW5lLm1tCmluZGV4IGVkOWI4Y2ZmNjQxNDMwMTJlNzdi
M2UyMWZjNWU5Y2FiMDc1OTM2NGMuLmU0YWQ3N2FmOTdhM2MxMzg5MjFiNDdkMDI2NTk4YjhiYzc2
ZGE0YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL0NvbXB1dGVQaXBlbGluZS5t
bQorKysgYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9Db21wdXRlUGlwZWxpbmUubW0KQEAgLTcxLDcg
KzcxLDcgQEAgc3RhdGljIE1UTEZ1bmN0aW9uQ29uc3RhbnRWYWx1ZXMgKmNyZWF0ZUNvbnN0YW50
VmFsdWVzKHVpbnQzMl90IGNvbnN0YW50Q291bnQsIGMKICAgICBhdXRvIGNvbnN0YW50VmFsdWVz
ID0gW01UTEZ1bmN0aW9uQ29uc3RhbnRWYWx1ZXMgbmV3XTsKICAgICBmb3IgKHVpbnQzMl90IGkg
PSAwOyBpIDwgY29uc3RhbnRDb3VudDsgKytpKSB7CiAgICAgICAgIGNvbnN0IGF1dG8mIGVudHJ5
ID0gY29uc3RhbnRzW2ldOwotICAgICAgICBhdXRvIG5hbWVJdGVyYXRvciA9IGVudHJ5UG9pbnRJ
bmZvcm1hdGlvbi5zcGVjaWFsaXphdGlvbkNvbnN0YW50SW5kaWNlcy5maW5kKGVudHJ5LmtleSk7
CisgICAgICAgIGF1dG8gbmFtZUl0ZXJhdG9yID0gZW50cnlQb2ludEluZm9ybWF0aW9uLnNwZWNp
YWxpemF0aW9uQ29uc3RhbnRJbmRpY2VzLmZpbmQoU3RyaW5nIHsgZW50cnkua2V5IH0pOwogICAg
ICAgICBpZiAobmFtZUl0ZXJhdG9yID09IGVudHJ5UG9pbnRJbmZvcm1hdGlvbi5zcGVjaWFsaXph
dGlvbkNvbnN0YW50SW5kaWNlcy5lbmQoKSkKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwog
ICAgICAgICBhdXRvIHNwZWNpYWxpemF0aW9uQ29uc3RhbnRJbmRleCA9IG5hbWVJdGVyYXRvci0+
dmFsdWU7CkBAIC0xNTAsNyArMTUwLDcgQEAgUmVmUHRyPENvbXB1dGVQaXBlbGluZT4gRGV2aWNl
OjpjcmVhdGVDb21wdXRlUGlwZWxpbmUoY29uc3QgV0dQVUNvbXB1dGVQaXBlbGluZUQKICAgICBj
b25zdCBQaXBlbGluZUxheW91dCYgcGlwZWxpbmVMYXlvdXQgPSBXZWJHUFU6OmZyb21BUEkoZGVz
Y3JpcHRvci5sYXlvdXQpOwogICAgIGF1dG8gbGFiZWwgPSBmcm9tQVBJKGRlc2NyaXB0b3IubGFi
ZWwpOwogCi0gICAgYXV0byBsaWJyYXJ5Q3JlYXRpb25SZXN1bHQgPSBjcmVhdGVMaWJyYXJ5KG1f
ZGV2aWNlLCBzaGFkZXJNb2R1bGUsIHBpcGVsaW5lTGF5b3V0LCBkZXNjcmlwdG9yLmNvbXB1dGUu
ZW50cnlQb2ludCwgbGFiZWwpOworICAgIGF1dG8gbGlicmFyeUNyZWF0aW9uUmVzdWx0ID0gY3Jl
YXRlTGlicmFyeShtX2RldmljZSwgc2hhZGVyTW9kdWxlLCBwaXBlbGluZUxheW91dCwgU3RyaW5n
IHsgZGVzY3JpcHRvci5jb21wdXRlLmVudHJ5UG9pbnQgfSwgbGFiZWwpOwogICAgIGlmICghbGli
cmFyeUNyZWF0aW9uUmVzdWx0KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkdQVS9XZWJHUFUvUXVldWUubW0gYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9R
dWV1ZS5tbQppbmRleCBiN2JkNTdjZjVhNDI2ZWMyNmU2ZjliMWUyOWQ5OWZkZWFkZjcwNWM0Li4w
ZDFiMzlhODRmNjQyMzU3OWE5ZWMwM2I1YWEyNDFiZGU2MzFkNjYwIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViR1BVL1dlYkdQVS9RdWV1ZS5tbQorKysgYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9RdWV1
ZS5tbQpAQCAtMTMxLDcgKzEzMSw3IEBAIHZvaWQgUXVldWU6OnN1Ym1pdChWZWN0b3I8c3RkOjpy
ZWZlcmVuY2Vfd3JhcHBlcjxjb25zdCBDb21tYW5kQnVmZmVyPj4mJiBjb21tYW5kCiAgICAgLy8g
IklmIGFueSBvZiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIHVuc2F0aXNmaWVkIgogICAg
IGlmICghdmFsaWRhdGVTdWJtaXQoKSkgewogICAgICAgICAvLyAiZ2VuZXJhdGUgYSB2YWxpZGF0
aW9uIGVycm9yIGFuZCBzdG9wLiIKLSAgICAgICAgbV9kZXZpY2UuZ2VuZXJhdGVBVmFsaWRhdGlv
bkVycm9yKCJWYWxpZGF0aW9uIGZhaWx1cmUuIik7CisgICAgICAgIG1fZGV2aWNlLmdlbmVyYXRl
QVZhbGlkYXRpb25FcnJvcigiVmFsaWRhdGlvbiBmYWlsdXJlLiJfcyk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1NhbXBsZXIubW0g
Yi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9TYW1wbGVyLm1tCmluZGV4IDJmN2Y3MjdmMTdkOTczZDBh
NDljZTM0ZWVmYWM3MTM4NTczMzc2YjYuLjgyNzM5MDQ5OTRjYjcwOWYwOTRlMjQ1ODc5OWFjZWM2
Nzc1ODliNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1NhbXBsZXIubW0KKysr
IGIvU291cmNlL1dlYkdQVS9XZWJHUFUvU2FtcGxlci5tbQpAQCAtMTM2LDcgKzEzNiw3IEBAIFJl
ZlB0cjxTYW1wbGVyPiBEZXZpY2U6OmNyZWF0ZVNhbXBsZXIoY29uc3QgV0dQVVNhbXBsZXJEZXNj
cmlwdG9yJiBkZXNjcmlwdG9yKQogICAgIC8vICJJZiB2YWxpZGF0aW5nIEdQVVNhbXBsZXJEZXNj
cmlwdG9yKHRoaXMsIGRlc2NyaXB0b3IpIHJldHVybnMgZmFsc2U6IgogICAgIGlmICghdmFsaWRh
dGVDcmVhdGVTYW1wbGVyKCp0aGlzLCBkZXNjcmlwdG9yKSkgewogICAgICAgICAvLyAiR2VuZXJh
dGUgYSB2YWxpZGF0aW9uIGVycm9yLiIKLSAgICAgICAgZ2VuZXJhdGVBVmFsaWRhdGlvbkVycm9y
KCJWYWxpZGF0aW9uIGZhaWx1cmUuIik7CisgICAgICAgIGdlbmVyYXRlQVZhbGlkYXRpb25FcnJv
cigiVmFsaWRhdGlvbiBmYWlsdXJlLiJfcyk7CiAKICAgICAgICAgLy8gIkNyZWF0ZSBhIG5ldyBp
bnZhbGlkIEdQVVNhbXBsZXIgYW5kIHJldHVybiB0aGUgcmVzdWx0LiIKICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9TaGFkZXJNb2R1bGUu
bW0gYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9TaGFkZXJNb2R1bGUubW0KaW5kZXggZTAwNzU1Y2Zi
NTViNGM2NmE4OTI3ZGQzZTVlMDJlYTkxMDE3MGM0NC4uNjA1ZTM3MjMzNjEwNWFlMDg3MTM3ZGI2
MTY0Njk4MTEyYmNmZjg3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkdQVS9XZWJHUFUvU2hhZGVy
TW9kdWxlLm1tCisrKyBiL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1NoYWRlck1vZHVsZS5tbQpAQCAt
ODgsOSArODgsMTAgQEAgc3RhdGljIFJlZlB0cjxTaGFkZXJNb2R1bGU+IGVhcmx5Q29tcGlsZVNo
YWRlck1vZHVsZShpZDxNVExEZXZpY2U+IGRldmljZSwgc3RkOjoKICAgICAgICAgY29uc3QgYXV0
byYgaGludCA9IHN1cHBsaWVkSGludHMuaGludHNbaV07CiAgICAgICAgIGlmIChoaW50Lm5leHRJ
bkNoYWluKQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgICAgIGhpbnRzLmFkZCho
aW50LmtleSwgV2ViR1BVOjpmcm9tQVBJKGhpbnQuaGludC5sYXlvdXQpKTsKKyAgICAgICAgU3Ry
aW5nIGhpbnRLZXkgeyBoaW50LmtleSB9OworICAgICAgICBoaW50cy5hZGQoaGludEtleSwgV2Vi
R1BVOjpmcm9tQVBJKGhpbnQuaGludC5sYXlvdXQpKTsKICAgICAgICAgYXV0byBjb252ZXJ0ZWRQ
aXBlbGluZUxheW91dCA9IFNoYWRlck1vZHVsZTo6Y29udmVydFBpcGVsaW5lTGF5b3V0KFdlYkdQ
VTo6ZnJvbUFQSShoaW50LmhpbnQubGF5b3V0KSk7Ci0gICAgICAgIHdnc2xIaW50cy5hZGQoaGlu
dC5rZXksIFdURk1vdmUoY29udmVydGVkUGlwZWxpbmVMYXlvdXQpKTsKKyAgICAgICAgd2dzbEhp
bnRzLmFkZChoaW50S2V5LCBXVEZNb3ZlKGNvbnZlcnRlZFBpcGVsaW5lTGF5b3V0KSk7CiAgICAg
fQogICAgIGF1dG8gcHJlcGFyZVJlc3VsdCA9IFdHU0w6OnByZXBhcmUoc3RkOjpnZXQ8V0dTTDo6
U3VjY2Vzc2Z1bENoZWNrPihjaGVja1Jlc3VsdCkuYXN0LCB3Z3NsSGludHMpOwogICAgIGF1dG8g
bGlicmFyeSA9IFNoYWRlck1vZHVsZTo6Y3JlYXRlTGlicmFyeShkZXZpY2UsIHByZXBhcmVSZXN1
bHQubXNsLCBXVEZNb3ZlKGxhYmVsKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1dlYlZpZXdJbXBsLm1tCmluZGV4IGZkNzRmZWFiMWQxZTEyZmIwNjEyYTA4NTVkZTY4ZmM3NjQx
YjExM2QuLjAwNzRkY2E3NzI3YTk2ODc0ZmIxZWQzODQ3ZjUxOWUxNjA0YTUzZjcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCkBAIC00NDc4LDcgKzQ0
NzgsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpzZXRQcm9taXNlZERhdGFGb3JJbWFnZShXZWJDb3Jl
OjpJbWFnZSogaW1hZ2UsIE5TU3RyaW5nICpmaWxlbgogCiAgICAgUmV0YWluUHRyPE5TRGF0YT4g
Y3VzdG9tRGF0YUJ1ZmZlcjsKICAgICBpZiAob3JpZ2luSWRlbnRpZmllci5sZW5ndGgpIHsKLSAg
ICAgICAgW3R5cGVzIGFkZE9iamVjdDpAKFdlYkNvcmU6OlBhc3RlYm9hcmRDdXN0b21EYXRhOjpj
b2NvYVR5cGUoKSldOworICAgICAgICBbdHlwZXMgYWRkT2JqZWN0OkAoV2ViQ29yZTo6UGFzdGVi
b2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpLmNoYXJhY3RlcnMoKSldOwogICAgICAgICBXZWJD
b3JlOjpQYXN0ZWJvYXJkQ3VzdG9tRGF0YSBjdXN0b21EYXRhOwogICAgICAgICBjdXN0b21EYXRh
LnNldE9yaWdpbihvcmlnaW5JZGVudGlmaWVyKTsKICAgICAgICAgY3VzdG9tRGF0YUJ1ZmZlciA9
IGN1c3RvbURhdGEuY3JlYXRlU2hhcmVkQnVmZmVyKCktPmNyZWF0ZU5TRGF0YSgpOwpAQCAtNDQ5
Nyw3ICs0NDk3LDcgQEAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgfQog
CiAgICAgaWYgKGN1c3RvbURhdGFCdWZmZXIpCi0gICAgICAgIFtwYXN0ZWJvYXJkIHNldERhdGE6
Y3VzdG9tRGF0YUJ1ZmZlci5nZXQoKSBmb3JUeXBlOkAoV2ViQ29yZTo6UGFzdGVib2FyZEN1c3Rv
bURhdGE6OmNvY29hVHlwZSgpKV07CisgICAgICAgIFtwYXN0ZWJvYXJkIHNldERhdGE6Y3VzdG9t
RGF0YUJ1ZmZlci5nZXQoKSBmb3JUeXBlOkAoV2ViQ29yZTo6UGFzdGVib2FyZEN1c3RvbURhdGE6
OmNvY29hVHlwZSgpLmNoYXJhY3RlcnMoKSldOwogCiAgICAgbV9wcm9taXNlZEltYWdlID0gaW1h
Z2U7CiB9CkBAIC00NjI0LDcgKzQ2MjQsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpyZXF1ZXN0RE9N
UGFzdGVBY2Nlc3MoV2ViQ29yZTo6RE9NUGFzdGVBY2Nlc3NDYXRlZ29yeSBwYXN0ZUFjYwogICAg
IEFTU0VSVCghbV9kb21QYXN0ZVJlcXVlc3RIYW5kbGVyKTsKICAgICBoaWRlRE9NUGFzdGVNZW51
V2l0aFJlc3VsdChXZWJDb3JlOjpET01QYXN0ZUFjY2Vzc1Jlc3BvbnNlOjpEZW5pZWRGb3JHZXN0
dXJlKTsKIAotICAgIE5TRGF0YSAqZGF0YSA9IFtwYXN0ZWJvYXJkRm9yQWNjZXNzQ2F0ZWdvcnko
cGFzdGVBY2Nlc3NDYXRlZ29yeSkgZGF0YUZvclR5cGU6QChXZWJDb3JlOjpQYXN0ZWJvYXJkQ3Vz
dG9tRGF0YTo6Y29jb2FUeXBlKCkpXTsKKyAgICBOU0RhdGEgKmRhdGEgPSBbcGFzdGVib2FyZEZv
ckFjY2Vzc0NhdGVnb3J5KHBhc3RlQWNjZXNzQ2F0ZWdvcnkpIGRhdGFGb3JUeXBlOkAoV2ViQ29y
ZTo6UGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpLmNoYXJhY3RlcnMoKSldOwogICAg
IGF1dG8gYnVmZmVyID0gV2ViQ29yZTo6U2hhcmVkQnVmZmVyOjpjcmVhdGUoZGF0YSk7CiAgICAg
aWYgKFdlYkNvcmU6OlBhc3RlYm9hcmRDdXN0b21EYXRhOjpmcm9tU2hhcmVkQnVmZmVyKGJ1ZmZl
ci5nZXQoKSkub3JpZ2luKCkgPT0gb3JpZ2luSWRlbnRpZmllcikgewogICAgICAgICBtX3BhZ2Ut
PmdyYW50QWNjZXNzVG9DdXJyZW50UGFzdGVib2FyZERhdGEocGFzdGVib2FyZE5hbWVGb3JBY2Nl
c3NDYXRlZ29yeShwYXN0ZUFjY2Vzc0NhdGVnb3J5KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9Mb2NhbEF1dGhlbnRpY2F0b3Iu
bW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9Mb2Nh
bEF1dGhlbnRpY2F0b3IubW0KaW5kZXggYmVlNmI5MjM4MmNhYWYzYjRmOWYwZTdjZTgyYzAxYTc2
NzMzMjgyYy4uMmEwNWNmNDAzZGVmYzNiNDUwNDg5MThhN2U0NGQwOTAzOWI4NGYwNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvTG9j
YWxBdXRoZW50aWNhdG9yLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhl
bnRpY2F0aW9uL0NvY29hL0xvY2FsQXV0aGVudGljYXRvci5tbQpAQCAtNDQ0LDcgKzQ0NCw3IEBA
IHZvaWQgTG9jYWxBdXRoZW50aWNhdG9yOjpjb250aW51ZU1ha2VDcmVkZW50aWFsQWZ0ZXJVc2Vy
VmVyaWZpY2F0aW9uKFNlY0FjY2Vzc0NvCiAgICAgICAgIGRlbGV0ZUR1cGxpY2F0ZUNyZWRlbnRp
YWwoKTsKIAogICAgICAgICBhdXRvIGF1dGhEYXRhID0gYnVpbGRBdXRoRGF0YShjcmVhdGlvbk9w
dGlvbnMucnAuaWQsIGZsYWdzLCBjb3VudGVyLCBidWlsZEF0dGVzdGVkQ3JlZGVudGlhbERhdGEo
VmVjdG9yPHVpbnQ4X3Q+KGFhZ3VpZExlbmd0aCwgMCksIGNyZWRlbnRpYWxJZCwgY29zZVB1Ymxp
Y0tleSkpOwotICAgICAgICBhdXRvIGF0dGVzdGF0aW9uT2JqZWN0ID0gYnVpbGRBdHRlc3RhdGlv
bk9iamVjdChXVEZNb3ZlKGF1dGhEYXRhKSwgIiIsIHsgfSwgQXR0ZXN0YXRpb25Db252ZXlhbmNl
UHJlZmVyZW5jZTo6Tm9uZSk7CisgICAgICAgIGF1dG8gYXR0ZXN0YXRpb25PYmplY3QgPSBidWls
ZEF0dGVzdGF0aW9uT2JqZWN0KFdURk1vdmUoYXV0aERhdGEpLCBTdHJpbmcgeyBlbXB0eVN0cmlu
ZygpIH0sIHsgfSwgQXR0ZXN0YXRpb25Db252ZXlhbmNlUHJlZmVyZW5jZTo6Tm9uZSk7CiAgICAg
ICAgIHJlY2VpdmVSZXNwb25kKEF1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlOjpjcmVh
dGUoY3JlZGVudGlhbElkLCBhdHRlc3RhdGlvbk9iamVjdCwgQXV0aGVudGljYXRvckF0dGFjaG1l
bnQ6OlBsYXRmb3JtKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC00NzEsNyArNDcxLDcg
QEAgdm9pZCBMb2NhbEF1dGhlbnRpY2F0b3I6OmNvbnRpbnVlTWFrZUNyZWRlbnRpYWxBZnRlckF0
dGVzdGVkKFZlY3Rvcjx1aW50OF90PiYmIGMKIAogICAgIGlmIChlcnJvcikgewogICAgICAgICBM
T0dfRVJST1IoIkNvdWxkbid0IGF0dGVzdDogJXMiLCBTdHJpbmcoZXJyb3IubG9jYWxpemVkRGVz
Y3JpcHRpb24pLnV0ZjgoKS5kYXRhKCkpOwotICAgICAgICBhdXRvIGF0dGVzdGF0aW9uT2JqZWN0
ID0gYnVpbGRBdHRlc3RhdGlvbk9iamVjdChXVEZNb3ZlKGF1dGhEYXRhKSwgIiIsIHsgfSwgQXR0
ZXN0YXRpb25Db252ZXlhbmNlUHJlZmVyZW5jZTo6Tm9uZSk7CisgICAgICAgIGF1dG8gYXR0ZXN0
YXRpb25PYmplY3QgPSBidWlsZEF0dGVzdGF0aW9uT2JqZWN0KFdURk1vdmUoYXV0aERhdGEpLCBT
dHJpbmcgeyBlbXB0eVN0cmluZygpIH0sIHsgfSwgQXR0ZXN0YXRpb25Db252ZXlhbmNlUHJlZmVy
ZW5jZTo6Tm9uZSk7CiAgICAgICAgIHJlY2VpdmVSZXNwb25kKEF1dGhlbnRpY2F0b3JBdHRlc3Rh
dGlvblJlc3BvbnNlOjpjcmVhdGUoY3JlZGVudGlhbElkLCBhdHRlc3RhdGlvbk9iamVjdCwgQXV0
aGVudGljYXRvckF0dGFjaG1lbnQ6OlBsYXRmb3JtKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9
CkBAIC00ODgsNyArNDg4LDcgQEAgdm9pZCBMb2NhbEF1dGhlbnRpY2F0b3I6OmNvbnRpbnVlTWFr
ZUNyZWRlbnRpYWxBZnRlckF0dGVzdGVkKFZlY3Rvcjx1aW50OF90PiYmIGMKICAgICAgICAgICAg
IGNib3JBcnJheS5hcHBlbmQoY2Jvcjo6Q0JPUlZhbHVlKHZlY3RvckZyb21OU0RhdGEoKE5TRGF0
YSAqKWFkb3B0Q0YoU2VjQ2VydGlmaWNhdGVDb3B5RGF0YSgoX19icmlkZ2UgU2VjQ2VydGlmaWNh
dGVSZWYpY2VydGlmaWNhdGVzW2ldKSkuZ2V0KCkpKSk7CiAgICAgICAgIGF0dGVzdGF0aW9uU3Rh
dGVtZW50TWFwW2Nib3I6OkNCT1JWYWx1ZSgieDVjIildID0gY2Jvcjo6Q0JPUlZhbHVlKFdURk1v
dmUoY2JvckFycmF5KSk7CiAgICAgfQotICAgIGF1dG8gYXR0ZXN0YXRpb25PYmplY3QgPSBidWls
ZEF0dGVzdGF0aW9uT2JqZWN0KFdURk1vdmUoYXV0aERhdGEpLCAiYXBwbGUiLCBXVEZNb3ZlKGF0
dGVzdGF0aW9uU3RhdGVtZW50TWFwKSwgY3JlYXRpb25PcHRpb25zLmF0dGVzdGF0aW9uKTsKKyAg
ICBhdXRvIGF0dGVzdGF0aW9uT2JqZWN0ID0gYnVpbGRBdHRlc3RhdGlvbk9iamVjdChXVEZNb3Zl
KGF1dGhEYXRhKSwgImFwcGxlIl9zLCBXVEZNb3ZlKGF0dGVzdGF0aW9uU3RhdGVtZW50TWFwKSwg
Y3JlYXRpb25PcHRpb25zLmF0dGVzdGF0aW9uKTsKIAogICAgIGRlbGV0ZUR1cGxpY2F0ZUNyZWRl
bnRpYWwoKTsKICAgICByZWNlaXZlUmVzcG9uZChBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNw
b25zZTo6Y3JlYXRlKGNyZWRlbnRpYWxJZCwgYXR0ZXN0YXRpb25PYmplY3QsIEF1dGhlbnRpY2F0
b3JBdHRhY2htZW50OjpQbGF0Zm9ybSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KaW5kZXggZWI3YzY5MWY5Yzk5
MGY4NDc1ZjA5MDI3NGQ5YjZlZTIwMWMzOTBiMC4uOWU4YmY0NWJhYjUxM2E1MTIxMDQ5ZDA1MzEx
MjJlNDU2M2YwYTZmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dL
Q29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBAIC0zOTgwLDcgKzM5ODAsNyBAQCAtIChC
T09MKWNhblBlcmZvcm1BY3Rpb25Gb3JXZWJWaWV3OihTRUwpYWN0aW9uIHdpdGhTZW5kZXI6KGlk
KXNlbmRlcgogICAgICAgICBpZiAoZm9jdXNlZERvY3VtZW50T3JpZ2luLmlzRW1wdHkoKSkKICAg
ICAgICAgICAgIHJldHVybiBOTzsKIAotICAgICAgICBOU0FycmF5ICphbGxDdXN0b21QYXN0ZWJv
YXJkRGF0YSA9IFtwYXN0ZWJvYXJkIGRhdGFGb3JQYXN0ZWJvYXJkVHlwZTpAKFdlYkNvcmU6OlBh
c3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKSkgaW5JdGVtU2V0OmluZGljZXNdOworICAg
ICAgICBOU0FycmF5ICphbGxDdXN0b21QYXN0ZWJvYXJkRGF0YSA9IFtwYXN0ZWJvYXJkIGRhdGFG
b3JQYXN0ZWJvYXJkVHlwZTpAKFdlYkNvcmU6OlBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5
cGUoKS5jaGFyYWN0ZXJzKCkpIGluSXRlbVNldDppbmRpY2VzXTsKICAgICAgICAgZm9yIChOU0Rh
dGEgKmRhdGEgaW4gYWxsQ3VzdG9tUGFzdGVib2FyZERhdGEpIHsKICAgICAgICAgICAgIGF1dG8g
YnVmZmVyID0gV2ViQ29yZTo6U2hhcmVkQnVmZmVyOjpjcmVhdGUoZGF0YSk7CiAgICAgICAgICAg
ICBpZiAoV2ViQ29yZTo6UGFzdGVib2FyZEN1c3RvbURhdGE6OmZyb21TaGFyZWRCdWZmZXIoYnVm
ZmVyLmdldCgpKS5vcmlnaW4oKSA9PSBmb2N1c2VkRG9jdW1lbnRPcmlnaW4pCkBAIC02OTQ1LDcg
KzY5NDUsNyBAQCBzdGF0aWMgQk9PTCBhbGxQYXN0ZWJvYXJkSXRlbU9yaWdpbnNNYXRjaE9yaWdp
bihVSVBhc3RlYm9hcmQgKnBhc3RlYm9hcmQsIGNvbnN0CiAgICAgICAgIHJldHVybiBOTzsKIAog
ICAgIGF1dG8gKmluZGljZXMgPSBbTlNJbmRleFNldCBpbmRleFNldFdpdGhJbmRleGVzSW5SYW5n
ZTpOU01ha2VSYW5nZSgwLCBbcGFzdGVib2FyZCBudW1iZXJPZkl0ZW1zXSldOwotICAgIGF1dG8g
KmFsbEN1c3RvbURhdGEgPSBbcGFzdGVib2FyZCBkYXRhRm9yUGFzdGVib2FyZFR5cGU6QChXZWJD
b3JlOjpQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkpIGluSXRlbVNldDppbmRpY2Vz
XTsKKyAgICBhdXRvICphbGxDdXN0b21EYXRhID0gW3Bhc3RlYm9hcmQgZGF0YUZvclBhc3RlYm9h
cmRUeXBlOkAoV2ViQ29yZTo6UGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpLmNoYXJh
Y3RlcnMoKSkgaW5JdGVtU2V0OmluZGljZXNdOwogICAgIGlmICghYWxsQ3VzdG9tRGF0YS5jb3Vu
dCkKICAgICAgICAgcmV0dXJuIE5POwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5
L21hYy9NaXNjL1dlYk5TUGFzdGVib2FyZEV4dHJhcy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kv
bWFjL01pc2MvV2ViTlNQYXN0ZWJvYXJkRXh0cmFzLm1tCmluZGV4IGU1YjQ0NGJmYTVjMjg3Mjgz
ODdjNzIzMzI4MjkxYTgyMDNkMWIyNTQuLjNlNTJmMWJiYWNkYjUxYjhlYTU0NzdjNmIwZDk5Yjk1
Y2JhZDBiYzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViTlNQ
YXN0ZWJvYXJkRXh0cmFzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01pc2MvV2Vi
TlNQYXN0ZWJvYXJkRXh0cmFzLm1tCkBAIC0yNzYsNyArMjc2LDcgQEAgLSAoaWQpX3dlYl9kZWNs
YXJlQW5kV3JpdGVEcmFnSW1hZ2VGb3JFbGVtZW50OihET01FbGVtZW50ICopZWxlbWVudAogICAg
IE5TU3RyaW5nICpvcmlnaW5JZGVudGlmaWVyID0gY29yZShlbGVtZW50KS0+ZG9jdW1lbnQoKS5v
cmlnaW5JZGVudGlmaWVyRm9yUGFzdGVib2FyZCgpOwogICAgIFJldGFpblB0cjxOU0RhdGE+IGN1
c3RvbURhdGFCdWZmZXI7CiAgICAgaWYgKG9yaWdpbklkZW50aWZpZXIubGVuZ3RoKSB7Ci0gICAg
ICAgIFt0eXBlcyBhZGRPYmplY3Q6QChQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkp
XTsKKyAgICAgICAgW3R5cGVzIGFkZE9iamVjdDpAKFBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2Nv
YVR5cGUoKS5jaGFyYWN0ZXJzKCkpXTsKICAgICAgICAgUGFzdGVib2FyZEN1c3RvbURhdGEgY3Vz
dG9tRGF0YTsKICAgICAgICAgY3VzdG9tRGF0YS5zZXRPcmlnaW4ob3JpZ2luSWRlbnRpZmllcik7
CiAgICAgICAgIGN1c3RvbURhdGFCdWZmZXIgPSBjdXN0b21EYXRhLmNyZWF0ZVNoYXJlZEJ1ZmZl
cigpLT5jcmVhdGVOU0RhdGEoKTsKQEAgLTMwNSw3ICszMDUsNyBAQCAtIChpZClfd2ViX2RlY2xh
cmVBbmRXcml0ZURyYWdJbWFnZUZvckVsZW1lbnQ6KERPTUVsZW1lbnQgKillbGVtZW50CiAKICAg
ICBbc2VsZiBfd2ViX3dyaXRlSW1hZ2U6bmlsIGVsZW1lbnQ6ZWxlbWVudCBVUkw6VVJMIHRpdGxl
OnRpdGxlIGFyY2hpdmU6YXJjaGl2ZSB0eXBlczp0eXBlcy5nZXQoKSBzb3VyY2U6c291cmNlXTsK
ICAgICBpZiAoY3VzdG9tRGF0YUJ1ZmZlcikKLSAgICAgICAgW3NlbGYgc2V0RGF0YTpjdXN0b21E
YXRhQnVmZmVyLmdldCgpIGZvclR5cGU6QChQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBl
KCkpXTsKKyAgICAgICAgW3NlbGYgc2V0RGF0YTpjdXN0b21EYXRhQnVmZmVyLmdldCgpIGZvclR5
cGU6QChQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkuY2hhcmFjdGVycygpKV07CiAK
ICAgICBbc2VsZiBzZXRQcm9wZXJ0eUxpc3Q6QFtleHRlbnNpb25dIGZvclR5cGU6bGVnYWN5Rmls
ZXNQcm9taXNlUGFzdGVib2FyZFR5cGUoKV07CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxv
ZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBkNzI1MDJmNDBiMjlmYjc0NWRmMjcyYTc3NmJhOTdh
ZTQ2MWUxNjExLi5jOTU1OTM3YTc3YTU4MGFhYmZkNTVhNTQ0MjgwZTZiZDdlYmE0NWI5IDEwMDY0
NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTcgQEAKKzIwMjItMDMtMjQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAg
ICAgICBTdGFydCBwcmVwYXJpbmcgV2ViQ29yZSBmb3IgbWFraW5nIHRoZSBTdHJpbmcoY29uc3Qg
Y2hhciopIGNvbnN0cnVjdG9yIGV4cGxpY2l0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMzgzMzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBTdGFydCBwcmVwYXJpbmcgV2ViQ29yZSBmb3IgbWFraW5nIHRo
ZSBTdHJpbmcoY29uc3QgY2hhciopIGNvbnN0cnVjdG9yIGV4cGxpY2l0LgorICAgICAgICBNYWtp
bmcgdGhpcyBjb25zdHJ1Y3RvciBleHBsaWNpdCBoZWxwcyBjYXRjaCBhdCBjb21waWxlIHRpbWUg
Y2FzZXMgd2hlcmUgdGhlICIiX3MKKyAgICAgICAgcHJlZml4IGlzIG1pc3Npbmcgb24gU3RyaW5n
IGxpdGVyYWxzLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvRHJhZ0FuZERy
b3BUZXN0c01hYy5tbToKKyAgICAgICAgKFRFU1QpOgorCiAyMDIyLTAzLTI0ICBDaHJpcyBEdW1l
eiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5k
aW5nQ29tcG9uZW50KCkgc2hvdWxkIHRha2UgaW4gU3RyaW5nVmlld3MgaW5zdGVhZCBvZiBTdHJp
bmdzCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9EcmFnQW5kRHJv
cFRlc3RzTWFjLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvRHJhZ0FuZERyb3BU
ZXN0c01hYy5tbQppbmRleCA1MjE5Yzk0ZGQzOWRiNDg5ZmIzYTQ2YTE0ZDhhOTM1MTNkMjg0ZWZj
Li44MThiMDBmM2I1ZjY0ODg3OWUzNTM1MTNjNTM0MzlmNzRlZGJhZWU0IDEwMDY0NAotLS0gYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9EcmFnQW5kRHJvcFRlc3RzTWFjLm1tCisrKyBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0RyYWdBbmREcm9wVGVzdHNNYWMubW0KQEAg
LTE4MSw3ICsxODEsNyBAQCBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBF
WFBFQ1RfRVEoaW1hZ2VGcm9tVW5pcXVlUGFzdGVib2FyZC5USUZGUmVwcmVzZW50YXRpb24ubGVu
Z3RoLCBpbWFnZUZyb21EcmFnUGFzdGVib2FyZC5USUZGUmVwcmVzZW50YXRpb24ubGVuZ3RoKTsK
ICAgICBFWFBFQ1RfVFJVRShOU0VxdWFsU2l6ZXMoaW1hZ2VGcm9tRHJhZ1Bhc3RlYm9hcmQuc2l6
ZSwgaW1hZ2VGcm9tVW5pcXVlUGFzdGVib2FyZC5zaXplKSk7CiAgICAgRVhQRUNUX0ZBTFNFKE5T
RXF1YWxTaXplcyhOU1plcm9TaXplLCBpbWFnZUZyb21VbmlxdWVQYXN0ZWJvYXJkLnNpemUpKTsK
LSAgICBFWFBFQ1RfR1QoW2RyYWdQYXN0ZWJvYXJkIGRhdGFGb3JUeXBlOkAoV2ViQ29yZTo6UGFz
dGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpKV0ubGVuZ3RoLCAwdSk7CisgICAgRVhQRUNU
X0dUKFtkcmFnUGFzdGVib2FyZCBkYXRhRm9yVHlwZTpAKFdlYkNvcmU6OlBhc3RlYm9hcmRDdXN0
b21EYXRhOjpjb2NvYVR5cGUoKS5jaGFyYWN0ZXJzKCkpXS5sZW5ndGgsIDB1KTsKIH0KIAogVEVT
VChEcmFnQW5kRHJvcFRlc3RzLCBQcm92aWRlSW1hZ2VEYXRhQXNUeXBlSWRlbnRpZmllcnMpCg==
</data>
<flag name="commit-queue"
          id="483788"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455724</attachid>
            <date>2022-03-24 22:37:54 -0700</date>
            <delta_ts>2022-03-25 07:23:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238336-20220324223753.patch</filename>
            <type>text/plain</type>
            <size>421600</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxODQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
OTBiMzE2MDQ4NDI3MDQzZjgyZjc4OWRlNmEyNDFlODBhZDAzNzhmLi5jZTQyYjA2NjBhYzY2NjU4
ZjVmMTE5NzlhYWZjNTk5ZjNhZWZjZGQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMiBAQAorMjAyMi0wMy0yNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFN0YXJ0IHByZXBhcmluZyBXZWJDb3JlIGZvciBtYWtpbmcgdGhlIFN0cmluZyhj
b25zdCBjaGFyKikgY29uc3RydWN0b3IgZXhwbGljaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODMzNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0YXJ0IHByZXBhcmluZyBXZWJDb3JlIGZvciBtYWtp
bmcgdGhlIFN0cmluZyhjb25zdCBjaGFyKikgY29uc3RydWN0b3IgZXhwbGljaXQuCisgICAgICAg
IE1ha2luZyB0aGlzIGNvbnN0cnVjdG9yIGV4cGxpY2l0IGhlbHBzIGNhdGNoIGF0IGNvbXBpbGUg
dGltZSBjYXNlcyB3aGVyZSB0aGUgIiJfcworICAgICAgICBwcmVmaXggaXMgbWlzc2luZyBvbiBT
dHJpbmcgbGl0ZXJhbHMuCisKKyAgICAgICAgKiBBUEkvSlNWYWx1ZS5tbToKKyAgICAgICAgKGNy
ZWF0ZVN0cnVjdEhhbmRsZXJNYXApOgorICAgICAgICAoaGFuZGVyRm9yU3RydWN0VGFnKToKKyAg
ICAgICAgKiBBUEkvSlNXcmFwcGVyTWFwLm1tOgorICAgICAgICAoYWxsb2NhdGVDb25zdHJ1Y3Rv
ckZvckN1c3RvbUNsYXNzKToKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckF1
ZGl0QWdlbnQuY3BwOgorICAgICAgICAoSW5zcGVjdG9yOjpJbnNwZWN0b3JBdWRpdEFnZW50Ojpy
dW4pOgorCiAyMDIyLTAzLTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAg
ICAgICAgRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KCkgc2hvdWxkIHRha2Ug
aW4gU3RyaW5nVmlld3MgaW5zdGVhZCBvZiBTdHJpbmdzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDNjOGUzY2JhMzdiOWNiODQz
ZTk5ZDNlOTNiMGNmY2IwMDAxMjVlMGQuLmYwYzg0Y2VmMzA4NzAxNWU1M2Q3MTU4ODMwMmQzNjNj
ODM3MzZjNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
VEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjItMDMtMjQgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBTdGFydCBwcmVwYXJpbmcgV2ViQ29yZSBmb3Ig
bWFraW5nIHRoZSBTdHJpbmcoY29uc3QgY2hhciopIGNvbnN0cnVjdG9yIGV4cGxpY2l0CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzgzMzYKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdGFydCBwcmVwYXJp
bmcgV2ViQ29yZSBmb3IgbWFraW5nIHRoZSBTdHJpbmcoY29uc3QgY2hhciopIGNvbnN0cnVjdG9y
IGV4cGxpY2l0LgorICAgICAgICBNYWtpbmcgdGhpcyBjb25zdHJ1Y3RvciBleHBsaWNpdCBoZWxw
cyBjYXRjaCBhdCBjb21waWxlIHRpbWUgY2FzZXMgd2hlcmUgdGhlICIiX3MKKyAgICAgICAgcHJl
Zml4IGlzIG1pc3Npbmcgb24gU3RyaW5nIGxpdGVyYWxzLgorCisgICAgICAgICogd3RmL3RleHQv
VGV4dFN0cmVhbS5oOgorICAgICAgICAoV1RGOjpUZXh0U3RyZWFtOjpkdW1wUHJvcGVydHkpOgor
CiAyMDIyLTAzLTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAg
U3RyaW5nOjpzcGxpdCgpIHNob3VsZCB0YWtlIGluIGEgU3RyaW5nVmlldyBpbnN0ZWFkIG9mIGEg
U3RyaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKaW5kZXggNmU1YzZjMWQyNjZlOTcwYjM5ODUzMjI2ZGU3ZmZiNTllMGY5
YzBhMy4uYWQyNzViYTEzZTIxNjJhMzFhZWJhMDQ2YmJkZmVlYmY2YTU1NjMwNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDUxMSBAQAorMjAyMi0wMy0yNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBw
bGUuY29tPgorCisgICAgICAgIFN0YXJ0IHByZXBhcmluZyBXZWJDb3JlIGZvciBtYWtpbmcgdGhl
IFN0cmluZyhjb25zdCBjaGFyKikgY29uc3RydWN0b3IgZXhwbGljaXQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODMzNgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0YXJ0IHByZXBhcmluZyBXZWJDb3Jl
IGZvciBtYWtpbmcgdGhlIFN0cmluZyhjb25zdCBjaGFyKikgY29uc3RydWN0b3IgZXhwbGljaXQu
CisgICAgICAgIE1ha2luZyB0aGlzIGNvbnN0cnVjdG9yIGV4cGxpY2l0IGhlbHBzIGNhdGNoIGF0
IGNvbXBpbGUgdGltZSBjYXNlcyB3aGVyZSB0aGUgIiJfcworICAgICAgICBwcmVmaXggaXMgbWlz
c2luZyBvbiBTdHJpbmcgbGl0ZXJhbHMuCisKKyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5LWFt
cy11aS9BcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Y29udmVydEFuZFZhbGlkYXRlQXBwbGVQYXlBTVNVSVJlcXVlc3QpOgorICAgICAgICAqIE1vZHVs
ZXMvYXBwbGVwYXkvQXBwbGVQYXlDb250YWN0RmllbGQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Y29udmVydEFuZFZhbGlkYXRlKToKKyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5
TWVyY2hhbnRDYXBhYmlsaXR5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRBbmRWYWxp
ZGF0ZSk6CisgICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVJlcXVlc3RCYXNlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRBbmRWYWxpZGF0ZSk6CisgICAgICAgICogTW9k
dWxlcy9hcHBsZXBheS9BcHBsZVBheVNlc3Npb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBw
bGVQYXlTZXNzaW9uOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9u
OjpvcGVuUGF5bWVudFNldHVwKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvbjo6
YmVnaW4pOgorICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTZXR1cC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpBcHBsZVBheVNldHVwOjpiZWdpbik6CisgICAgICAgICogTW9kdWxl
cy9hcHBsZXBheS9QYXltZW50SW5zdGFsbG1lbnRDb25maWd1cmF0aW9uLm1tOgorICAgICAgICAo
V2ViQ29yZTo6UGF5bWVudEluc3RhbGxtZW50Q29uZmlndXJhdGlvbjo6Y3JlYXRlKToKKyAgICAg
ICAgKiBNb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRSZXF1ZXN0VmFsaWRhdG9yLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6UGF5bWVudFJlcXVlc3RWYWxpZGF0b3I6OnZhbGlkYXRlVG90YWwpOgorICAg
ICAgICAoV2ViQ29yZTo6dmFsaWRhdGVDb3VudHJ5Q29kZSk6CisgICAgICAgIChXZWJDb3JlOjp2
YWxpZGF0ZUN1cnJlbmN5Q29kZSk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0ZU1lcmNoYW50
Q2FwYWJpbGl0aWVzKToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRlU3VwcG9ydGVkTmV0d29y
a3MpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGVTaGlwcGluZ01ldGhvZCk6CisgICAgICAg
ICogTW9kdWxlcy9hcHBsZXBheS9QYXltZW50U2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpQYXltZW50U2Vzc2lvbjo6Y2FuQ3JlYXRlU2Vzc2lvbik6CisgICAgICAgICogTW9kdWxlcy9h
cHBsZXBheS9wYXltZW50cmVxdWVzdC9BcHBsZVBheVBheW1lbnRIYW5kbGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmNvbnZlcnRBbmRWYWxpZGF0ZUFwcGxlUGF5UmVxdWVzdCk6CisgICAgICAg
ICogTW9kdWxlcy9hcHBsaWNhdGlvbm1hbmlmZXN0L0FwcGxpY2F0aW9uTWFuaWZlc3RQYXJzZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGljYXRpb25NYW5pZmVzdFBhcnNlcjo6cGFyc2VJ
Y29ucyk6CisgICAgICAgIChXZWJDb3JlOjpBcHBsaWNhdGlvbk1hbmlmZXN0UGFyc2VyOjpwYXJz
ZVNjb3BlKToKKyAgICAgICAgKiBNb2R1bGVzL2NhY2hlL1dpbmRvd09yV29ya2VyR2xvYmFsU2Nv
cGVDYWNoZXMuY3BwOgorICAgICAgICAqIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvSW5pdERhdGFS
ZWdpc3RyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzYW5pdGl6ZUtleWlkcyk6CisgICAgICAg
ICogTW9kdWxlcy9lbnRyaWVzYXBpL0RPTUZpbGVTeXN0ZW0uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6bGlzdERpcmVjdG9yeVdpdGhNZXRhZGF0YSk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0
ZVBhdGhJc0V4cGVjdGVkVHlwZSk6CisgICAgICAgICogTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlD
b25zdW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaEJvZHlDb25zdW1lcjo6cGFja2Fn
ZUZvcm1EYXRhKToKKyAgICAgICAgKiBNb2R1bGVzL2ZldGNoL0ZldGNoSGVhZGVycy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpmaWxsSGVhZGVyTWFwKToKKyAgICAgICAgKiBNb2R1bGVzL2ZldGNo
L0ZldGNoTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoTG9hZGVyOjpzdGFydExv
YWRpbmdCbG9iVVJMKToKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5
c3RlbUZpbGVIYW5kbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUZpbGVIYW5k
bGU6OmdldEZpbGUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUZpbGVIYW5kbGU6OmNy
ZWF0ZVN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vz
cy9GaWxlU3lzdGVtSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5k
bGU6OmlzU2FtZUVudHJ5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5k
bGU6Om1vdmUpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlSWRlbnRp
Zmllci5oOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQktleURhdGEuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SURCS2V5RGF0YTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OklEQktleURhdGE6OmRlY29kZSk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURC
S2V5UmFuZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCS2V5UmFuZ2U6OmluY2x1ZGVzKToK
KyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VyaWFsaXphdGlvbi5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpzZXJpYWxpemVJREJLZXlQYXRoKToKKyAgICAgICAgKFdlYkNv
cmU6OmRlc2VyaWFsaXplSURCS2V5UGF0aCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL0lEQlNlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQlNl
cnZlcjo6Z2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKToKKyAgICAgICAgKFdlYkNvcmU6
OklEQlNlcnZlcjo6SURCU2VydmVyOjpnZXRPcmlnaW5zIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OklEQlNlcnZlcjo6SURCU2VydmVyOjpjbG9zZUFuZERlbGV0ZURhdGFiYXNlc01vZGlmaWVk
U2luY2UpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpJREJTZXJ2ZXI6OmNsb3NlQW5k
RGVsZXRlRGF0YWJhc2VzRm9yT3JpZ2lucyk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6
OnJlbW92ZUFsbERhdGFiYXNlc0ZvckZ1bGxPcmlnaW5QYXRoKToKKyAgICAgICAgKFdlYkNvcmU6
OklEQlNlcnZlcjo6SURCU2VydmVyOjpyZW5hbWVPcmlnaW4pOgorICAgICAgICAoV2ViQ29yZTo6
SURCU2VydmVyOjpJREJTZXJ2ZXI6OnVwZ3JhZGVGaWxlc0lmTmVjZXNzYXJ5KToKKyAgICAgICAg
KFdlYkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVyOjp1cGdyYWRlZERhdGFiYXNlRGlyZWN0b3J5
KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5SURCQmFja2luZ1N0
b3JlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6TWVtb3J5SURCQmFja2luZ1N0
b3JlOjpiZWdpblRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6TWVt
b3J5SURCQmFja2luZ1N0b3JlOjphYm9ydFRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OklEQlNlcnZlcjo6TWVtb3J5SURCQmFja2luZ1N0b3JlOjpjb21taXRUcmFuc2FjdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6Ok1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6Z2VuZXJh
dGVLZXlOdW1iZXIpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlP
YmplY3RTdG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6Ok1lbW9yeU9iamVj
dFN0b3JlOjp1cGRhdGVJbmRleGVzRm9yUHV0UmVjb3JkKToKKyAgICAgICAgKiBNb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OklEQlNlcnZlcjo6djFSZWNvcmRzVGFibGVTY2hlbWEpOgorICAgICAgICAoV2ViQ29yZTo6
SURCU2VydmVyOjp2MVJlY29yZHNUYWJsZVNjaGVtYUFsdGVybmF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpJREJTZXJ2ZXI6OnYyUmVjb3Jkc1RhYmxlU2NoZW1hKToKKyAgICAgICAgKFdlYkNvcmU6
OklEQlNlcnZlcjo6djJSZWNvcmRzVGFibGVTY2hlbWFBbHRlcm5hdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6SURCU2VydmVyOjp2MUluZGV4UmVjb3Jkc1RhYmxlU2NoZW1hKToKKyAgICAgICAgKFdl
YkNvcmU6OklEQlNlcnZlcjo6djFJbmRleFJlY29yZHNUYWJsZVNjaGVtYUFsdGVybmF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OnYySW5kZXhSZWNvcmRzVGFibGVTY2hlbWEpOgor
ICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjp2MkluZGV4UmVjb3Jkc1RhYmxlU2NoZW1hQWx0
ZXJuYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6U1FMaXRlSURCQmFja2luZ1N0
b3JlOjplbmNvZGVEYXRhYmFzZU5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpT
UUxpdGVJREJCYWNraW5nU3RvcmU6OmZ1bGxEYXRhYmFzZVBhdGhGb3JEaXJlY3RvcnkpOgorICAg
ICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpTUUxpdGVJREJCYWNraW5nU3RvcmU6OmdldE9yRXN0
YWJsaXNoRGF0YWJhc2VJbmZvKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6U1FMaXRl
SURCQmFja2luZ1N0b3JlOjp1cGRhdGVBbGxJbmRleGVzRm9yQWRkUmVjb3JkKToKKyAgICAgICAg
KFdlYkNvcmU6OklEQlNlcnZlcjo6U1FMaXRlSURCQmFja2luZ1N0b3JlOjp1bmNoZWNrZWRHZXRL
ZXlHZW5lcmF0b3JWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlNRTGl0ZUlE
QkJhY2tpbmdTdG9yZTo6dW5jaGVja2VkU2V0S2V5R2VuZXJhdG9yVmFsdWUpOgorICAgICAgICAo
V2ViQ29yZTo6SURCU2VydmVyOjpTUUxpdGVJREJCYWNraW5nU3RvcmU6OmdlbmVyYXRlS2V5TnVt
YmVyKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJh
c2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6
Y3JlYXRlT2JqZWN0U3RvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJ
REJEYXRhYmFzZTo6ZGVsZXRlT2JqZWN0U3RvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2Vy
dmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6cmVuYW1lT2JqZWN0U3RvcmUpOgorICAgICAgICAoV2Vi
Q29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6Y2xlYXJPYmplY3RTdG9yZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpjcmVhdGVJbmRl
eCk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpkZWxl
dGVJbmRleCk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNl
OjpyZW5hbWVJbmRleCk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRh
dGFiYXNlOjpwdXRPckFkZCk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlE
QkRhdGFiYXNlOjpwdXRPckFkZEFmdGVyU3BhY2VDaGVjayk6CisgICAgICAgIChXZWJDb3JlOjpJ
REJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpnZXRSZWNvcmQpOgorICAgICAgICAoV2ViQ29y
ZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6Z2V0QWxsUmVjb3Jkcyk6CisgICAgICAg
IChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpnZXRDb3VudCk6CisgICAg
ICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpkZWxldGVSZWNvcmQp
OgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6b3BlbkN1
cnNvcik6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpp
dGVyYXRlQ3Vyc29yKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0
YWJhc2U6OmNvbW1pdFRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6
VW5pcXVlSURCRGF0YWJhc2U6OmFib3J0VHJhbnNhY3Rpb24pOgorICAgICAgICAqIE1vZHVsZXMv
aW5kZXhlZGRiL3NoYXJlZC9JREJJbmRleEluZm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURC
SW5kZXhJbmZvOjpsb2dnaW5nU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlh
Y29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFD
b250cm9sc0hvc3Q6OmxheW91dFRyYWl0c0NsYXNzTmFtZSBjb25zdCk6CisgICAgICAgICogTW9k
dWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFSZWNvcmRlcjo6Y3JlYXRlKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc291cmNlL01l
ZGlhU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmFkZFZQOUZ1bGxSYW5nZVZpZGVvRmxh
Z1RvQ29udGVudFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTb3VyY2U6OmlzVHlwZVN1
cHBvcnRlZCk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVRyYWNrQ29uc3Ry
YWludHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2V0KToKKyAgICAgICAgKFdlYkNvcmU6OmNv
bnZlcnRUb0ludGVybmFsRm9ybSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENJ
Y2VDYW5kaWRhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UlRDSWNlQ2FuZGlkYXRlOjpjcmVh
dGUpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UlRDUGVlckNvbm5lY3Rpb246OnNldExvY2FsRGVzY3JpcHRp
b24pOgorICAgICAgICAoV2ViQ29yZTo6UlRDUGVlckNvbm5lY3Rpb246OmFkZEljZUNhbmRpZGF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENQZWVyQ29ubmVjdGlvbjo6aWNlU2VydmVyc0Zyb21D
b25maWd1cmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1BlZXJDb25uZWN0aW9uOjpjZXJ0
aWZpY2F0ZXNGcm9tQ29uZmlndXJhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpSVENQZWVyQ29u
bmVjdGlvbjo6aW5pdGlhbGl6ZUNvbmZpZ3VyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6UlRD
UGVlckNvbm5lY3Rpb246OnNldENvbmZpZ3VyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6UlRD
UGVlckNvbm5lY3Rpb246OmNoYWluT3BlcmF0aW9uKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJU
Q1J0cFNGcmFtZVRyYW5zZm9ybWVyOjp0cmFuc2Zvcm0pOgorICAgICAgICAqIE1vZHVsZXMvbWVk
aWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpMaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OmRvQ3JlYXRl
QW5zd2VyKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJS
VENSdHBUcmFuc2NlaXZlckJhY2tlbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9SdHBDb2Rl
Y0NhcGFiaWxpdHkpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xp
YldlYlJUQ1V0aWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvRXhjZXB0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OnRvUlRDRXJyb3IpOgorICAgICAgICAqIE1vZHVsZXMvbW9kZWwtZWxlbWVu
dC9zY2VuZWtpdC9TY2VuZUtpdE1vZGVsTG9hZGVyVVNELm1tOgorICAgICAgICAoV2ViQ29yZTo6
d3JpdGVUb1RlbXBvcmFyeUZpbGUpOgorICAgICAgICAqIE1vZHVsZXMvcGF5bWVudHJlcXVlc3Qv
UGF5bWVudFJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y2hlY2tBbmRDYW5vbmljYWxp
emVEZXRhaWxzKToKKyAgICAgICAgKFdlYkNvcmU6OlBheW1lbnRSZXF1ZXN0OjpzaG93KToKKyAg
ICAgICAgKiBNb2R1bGVzL3BpY3R1cmVpbnBpY3R1cmUvSFRNTFZpZGVvRWxlbWVudFBpY3R1cmVJ
blBpY3R1cmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudFBpY3R1cmVJ
blBpY3R1cmU6OnJlcXVlc3RQaWN0dXJlSW5QaWN0dXJlKToKKyAgICAgICAgKiBNb2R1bGVzL3Bs
dWdpbnMvWW91VHViZVBsdWdpblJlcGxhY2VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ollv
dVR1YmVQbHVnaW5SZXBsYWNlbWVudDo6aW5zdGFsbFJlcGxhY2VtZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OnByb2Nlc3NBbmRDcmVhdGVZb3VUdWJlVVJMKToKKyAgICAgICAgKiBNb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6OnVwZGF0ZURhdGFTb3Vy
Y2UpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1w
bDo6c291cmNlU3RvcHBlZCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNh
cHR1cmVTb3VyY2VJbXBsOjpzb3VyY2VNdXRlZENoYW5nZWQpOgorICAgICAgICAqIE1vZHVsZXMv
c3BlZWNoL2NvY29hL1dlYlNwZWVjaFJlY29nbml6ZXJUYXNrTW9jay5tbToKKyAgICAgICAgKC1b
V2ViU3BlZWNoUmVjb2duaXplclRhc2tNb2NrIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZTpdKToKKyAg
ICAgICAgKiBNb2R1bGVzL3N0b3JhZ2UvU3RvcmFnZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Y29ubmVjdGlvbkluZm8pOgorICAgICAgICAqIE1vZHVsZXMvd2ViLWxvY2tzL1dlYkxv
Y2tNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tNYW5hZ2VyOjpzaWduYWxU
b0Fib3J0VGhlUmVxdWVzdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb0xpc3Rl
bmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvTGlzdGVuZXI6OkF1ZGlvTGlzdGVuZXIp
OgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpBdWRpb1BhcmFtOjpzZXRBdXRvbWF0aW9uUmF0ZSk6CisgICAgICAgICogTW9kdWxl
cy93ZWJhdWRpby9BdWRpb1BhcmFtVGltZWxpbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVk
aW9QYXJhbVRpbWVsaW5lOjppbnNlcnRFdmVudCk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRp
by9CaXF1YWRGaWx0ZXJOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJpcXVhZEZpbHRlck5v
ZGU6OmdldEZyZXF1ZW5jeVJlc3BvbnNlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0Jp
cXVhZFByb2Nlc3Nvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCaXF1YWRQcm9jZXNzb3I6OkJp
cXVhZFByb2Nlc3Nvcik6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9EZWxheVByb2Nlc3Nv
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZWxheVByb2Nlc3Nvcjo6RGVsYXlQcm9jZXNzb3Ip
OgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vV2F2ZVNoYXBlck5vZGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6V2F2ZVNoYXBlck5vZGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpX
YXZlU2hhcGVyTm9kZTo6c2V0Q3VydmVGb3JCaW5kaW5ncyk6CisgICAgICAgICogTW9kdWxlcy93
ZWJhdXRobi9BdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
QXV0aGVudGljYXRvckNvb3JkaW5hdG9ySW50ZXJuYWw6Om5lZWRzQXBwSWRRdWlya3MpOgorICAg
ICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vV2ViQXV0aGVudGljYXRpb25VdGlscy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpidWlsZEF0dGVzdGF0aW9uTWFwKToKKyAgICAgICAgKiBNb2R1bGVzL3dl
YmF1dGhuL2ZpZG8vRGV2aWNlUmVzcG9uc2VDb252ZXJ0ZXIuY3BwOgorICAgICAgICAoZmlkbzo6
cmVhZENUQVBNYWtlQ3JlZGVudGlhbFJlc3BvbnNlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1
dGhuL2ZpZG8vUGluLmNwcDoKKyAgICAgICAgKGZpZG86OnBpbjo6S2V5QWdyZWVtZW50UmVzcG9u
c2U6OnBhcnNlRnJvbUNPU0UpOgorICAgICAgICAoZmlkbzo6cGluOjpUb2tlblJlcXVlc3Q6OnRy
eUNyZWF0ZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdXRobi9maWRvL1UyZlJlc3BvbnNlQ29u
dmVydGVyLmNwcDoKKyAgICAgICAgKGZpZG86OnJlYWRVMmZSZWdpc3RlclJlc3BvbnNlKToKKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL0NoYW5nZVZlcnNpb25XcmFwcGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNoYW5nZVZlcnNpb25XcmFwcGVyOjpwZXJmb3JtUHJlZmxpZ2h0KToK
KyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL0RPTVdpbmRvd1dlYkRhdGFiYXNlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvd1dlYkRhdGFiYXNlOjpvcGVuRGF0YWJhc2UpOgor
ICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RGF0YWJhc2U6OkRhdGFiYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlOjpy
dW5UcmFuc2FjdGlvbik6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZUF1
dGhvcml6ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VBdXRob3JpemVyOjphZGRB
bGxvd2VkRnVuY3Rpb25zKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNl
VHJhY2tlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZVRyYWNrZXI6OnRyYWNrZXJE
YXRhYmFzZVBhdGggY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjpv
cGVuVHJhY2tlckRhdGFiYXNlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFN0
YXRlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTUUxTdGF0ZW1lbnQ6OmV4ZWN1dGUpOgor
ICAgICAgICAoV2ViQ29yZTo6U1FMU3RhdGVtZW50OjpzZXREYXRhYmFzZURlbGV0ZWRFcnJvcik6
CisgICAgICAgIChXZWJDb3JlOjpTUUxTdGF0ZW1lbnQ6OnNldFZlcnNpb25NaXNtYXRjaGVkRXJy
b3IpOgorICAgICAgICAoV2ViQ29yZTo6U1FMU3RhdGVtZW50OjpzZXRGYWlsdXJlRHVlVG9RdW90
YSk6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTUUxUcmFuc2FjdGlvbjo6Y2FsbEVycm9yQ2FsbGJhY2tEdWVUb0lu
dGVycnVwdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTUUxUcmFuc2FjdGlvbjo6b3BlblRyYW5z
YWN0aW9uQW5kUHJlZmxpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OlNRTFRyYW5zYWN0aW9uOjpk
ZWxpdmVyVHJhbnNhY3Rpb25DYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpTUUxUcmFuc2Fj
dGlvbjo6ZGVsaXZlclN0YXRlbWVudENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlNRTFRy
YW5zYWN0aW9uOjpoYW5kbGVDdXJyZW50U3RhdGVtZW50RXJyb3IpOgorICAgICAgICAoV2ViQ29y
ZTo6U1FMVHJhbnNhY3Rpb246OnBvc3RmbGlnaHRBbmRDb21taXQpOgorICAgICAgICAqIE1vZHVs
ZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0
OjpzdWJwcm90b2NvbFNlcGFyYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXQ6OmNs
b3NlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldDo6c3VzcGVuZCk6CisgICAgICAgICog
TW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5oOgorICAgICAgICAqIE1vZHVsZXMvd2Vic29j
a2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldENo
YW5uZWw6OmRpZE9wZW5Tb2NrZXRTdHJlYW0pOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0
Q2hhbm5lbDo6ZGlkUmVjZWl2ZVNvY2tldFN0cmVhbURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6
V2ViU29ja2V0Q2hhbm5lbDo6cHJvY2Vzc0ZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlNv
Y2tldENoYW5uZWw6OnByb2Nlc3NPdXRnb2luZ0ZyYW1lUXVldWUpOgorICAgICAgICAqIE1vZHVs
ZXMvd2Vic29ja2V0cy9XZWJTb2NrZXREZWZsYXRlRnJhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OldlYlNvY2tldEV4dGVuc2lvbkRlZmxhdGVGcmFtZTo6cHJvY2Vzc1Jlc3BvbnNlKToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYlNvY2tldERlZmxhdGVGcmFtZXI6OmRlZmxhdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6V2ViU29ja2V0RGVmbGF0ZUZyYW1lcjo6aW5mbGF0ZSk6CisgICAgICAgICog
TW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEV4dGVuc2lvbkRpc3BhdGNoZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViU29ja2V0RXh0ZW5zaW9uRGlzcGF0Y2hlcjo6cHJvY2Vzc0hlYWRl
clZhbHVlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RnJhbWUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0RnJhbWU6OnBhcnNlRnJhbWUpOgorICAgICAg
ICAqIE1vZHVsZXMvd2VieHIvV2ViWFJXZWJHTExheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmNyZWF0ZU9wYXF1ZUZyYW1lYnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlhSV2ViR0xM
YXllcjo6Y3JlYXRlKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYSW1hZ2UuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6QVhJbWFnZTo6aW1hZ2VPdmVybGF5RWxlbWVudHMpOgorICAgICAgICAq
IGFjY2Vzc2liaWxpdHkvQVhMb2dnZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QVhMb2dnZXI6
OkFYTG9nZ2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkFYTG9nZ2VyOjpsb2cpOgorICAgICAgICAo
V2ViQ29yZTo6b3BlcmF0b3I8PCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWExvZ2dlci5o
OgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpBWE9iamVjdENhY2hlOjppc01vZGFsRWxlbWVudCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpjcmVhdGVGcm9tUmVuZGVyZXIpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RD
YWNoZTo6cmVtb3ZlKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnRleHRDaGFu
Z2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmhhbmRsZU1lbnVPcGVuZWQp
OgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6bm90aWZpY2F0aW9uUG9zdFRpbWVy
RmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cGFzc3dvcmROb3RpZmlj
YXRpb25Qb3N0VGltZXJGaXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpw
b3N0Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmhhbmRs
ZU1lbnVJdGVtU2VsZWN0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6c2Vs
ZWN0ZWRTdGF0ZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9z
dFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVj
dENhY2hlOjpoYW5kbGVNb2RhbENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENh
Y2hlOjpwZXJmb3JtRGVmZXJyZWRDYWNoZVVwZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpBWE9i
amVjdENhY2hlOjp1cGRhdGVJc29sYXRlZFRyZWUpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJp
bGl0eU5vZGVPYmplY3Q6OmRldGVybWluZUFjY2Vzc2liaWxpdHlSb2xlKToKKyAgICAgICAgKiBh
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
QWNjZXNzaWJpbGl0eU9iamVjdDo6cmVhZE9ubHlWYWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjphdXRvQ29tcGxldGVWYWx1ZSBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjpjdXJyZW50VmFsdWUgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6cmVwbGFjZVRleHRJblJhbmdl
KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmNvbXB1dGVkUm9sZVN0
cmluZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpub2RlSGFzUHJlc2VudGF0aW9uUm9sZSk6
CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjpyZXNvbHZlZEVkaXRpbmdT
dHlsZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eTo6aXNSYWRpb0J1
dHRvbkluRGlmZmVyZW50QWRob2NHcm91cCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmls
aXR5OjpmaW5kTWF0Y2hpbmdPYmplY3RzKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OmFjY2Vzc2liaWxp
dHlSb2xlVG9TdHJpbmcpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0OjpyZW5kZXJPYmplY3RJc09ic2VydmFibGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6ZGV0ZXJtaW5lQWNjZXNzaWJpbGl0eVJvbGUpOgor
ICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6dXBkYXRlUm9sZUFm
dGVyQ2hpbGRyZW5DcmVhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0OjpsaXZlUmVnaW9uUmVsZXZhbnQgY29uc3QpOgorICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlQ2VsbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nl
c3NpYmlsaXR5VGFibGVDZWxsOjpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCBjb25zdCk6
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VHJlZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5VHJlZTo6bm9kZUhhc1RyZWVJdGVtQ2hpbGQgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVRyZWU6OmlzVHJlZVZhbGlkIGNvbnN0
KToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRPYmplY3Q6OmluaXRpYWxpemVBdHRy
aWJ1dGVEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRPYmplY3Q6OmNsYXNzTGlz
dCBjb25zdCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRl
ZFRyZWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OkFYSXNvbGF0ZWRU
cmVlKToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjp+QVhJc29sYXRlZFRyZWUp
OgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OmNsZWFyKToKKyAgICAgICAgKFdl
YkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjp0cmVlRm9ySUQpOgorICAgICAgICAoV2ViQ29yZTo6QVhJ
c29sYXRlZFRyZWU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkVHJlZTo6
cmVtb3ZlVHJlZUZvclBhZ2VJRCk6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkVHJlZTo6
b2JqZWN0c0ZvcklEcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkVHJlZTo6
Z2VuZXJhdGVTdWJ0cmVlKToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjpjb2xs
ZWN0Tm9kZUNoYW5nZXNGb3JTdWJ0cmVlKToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRU
cmVlOjp1cGRhdGVOb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjp1cGRh
dGVOb2RlUHJvcGVydHkpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OnVwZGF0
ZUNoaWxkcmVuKToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjpmb2N1c2VkTm9k
ZSk6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkVHJlZTo6cm9vdE5vZGUpOgorICAgICAg
ICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OnNldFJvb3ROb2RlKToKKyAgICAgICAgKFdlYkNv
cmU6OkFYSXNvbGF0ZWRUcmVlOjpzZXRGb2N1c2VkTm9kZUlEKToKKyAgICAgICAgKFdlYkNvcmU6
OkFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVMb2FkaW5nUHJvZ3Jlc3MpOgorICAgICAgICAoV2ViQ29y
ZTo6QVhJc29sYXRlZFRyZWU6OnJlbW92ZU5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29s
YXRlZFRyZWU6OnJlbW92ZVN1YnRyZWVGcm9tTm9kZU1hcCk6CisgICAgICAgIChXZWJDb3JlOjpB
WElzb2xhdGVkVHJlZTo6YXBwbHlQZW5kaW5nQ2hhbmdlcyk6CisgICAgICAgICogYWNjZXNzaWJp
bGl0eS9tYWMvQWNjZXNzaWJpbGl0eU9iamVjdE1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkFj
Y2Vzc2liaWxpdHlPYmplY3Q6OnN1YnJvbGVQbGF0Zm9ybVN0cmluZyBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0Ojpyb2xlUGxhdGZvcm1EZXNjcmlwdGlvbiBj
b25zdCk6CisgICAgICAgICogYW5pbWF0aW9uL0FuaW1hdGlvbkVmZmVjdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpBbmltYXRpb25FZmZlY3Q6OmdldFRpbWluZyBjb25zdCk6CisgICAgICAgICog
YW5pbWF0aW9uL0RvY3VtZW50VGltZWxpbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1l
bnRUaW1lbGluZTo6YW5pbWF0ZSk6CisgICAgICAgICogYW5pbWF0aW9uL0VmZmVjdFRpbWluZy5o
OgorICAgICAgICAqIGFuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpLZXlmcmFtZUVmZmVjdDo6Q1NTUHJvcGVydHlJRFRvSURMQXR0cmlidXRlTmFtZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpLZXlmcmFtZUVmZmVjdDo6Z2V0S2V5ZnJhbWVzKToKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9HQ0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R0NDb250
cm9sbGVyOjpHQ0NvbnRyb2xsZXIpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQ3VzdG9tRWxl
bWVudEludGVyZmFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0N1c3RvbUVsZW1lbnRJbnRl
cmZhY2U6OnVwZ3JhZGVFbGVtZW50KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUNvbnZl
cnROdW1iZXJzLmg6CisgICAgICAgIChXZWJDb3JlOjpDb252ZXJ0ZXI8SURMRmxvYXQ+Ojpjb252
ZXJ0KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0V4ZWNTdGF0ZUluc3RydW1lbnRhdGlvbi5o
OgorICAgICAgICAoV2ViQ29yZTo6SlNFeGVjU3RhdGU6Omluc3RydW1lbnRGdW5jdGlvbik6Cisg
ICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTY3JpcHRDb250cm9sbGVyOjpjYWxsSW5Xb3JsZCk6CisgICAgICAgICogYnJpZGdlL29i
amMvb2JqY19ydW50aW1lLm1tOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6T2JqY0FycmF5Ojpz
ZXRWYWx1ZUF0IGNvbnN0KToKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6Ok9iamNBcnJheTo6dmFs
dWVBdCBjb25zdCk6CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwOgorICAgICAg
ICAoSlNDOjpSdW50aW1lQXJyYXk6OnB1dCk6CisgICAgICAgIChKU0M6OlJ1bnRpbWVBcnJheTo6
cHV0QnlJbmRleCk6CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcDoKKyAgICAg
ICAgKEpTQzo6QmluZGluZ3M6OnRocm93UnVudGltZU9iamVjdEludmFsaWRBY2Nlc3NFcnJvcik6
CisgICAgICAgICogY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkFjdGlvbnMuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6Ok1vZGlmeUhlYWRlcnNBY3Rp
b246Ok1vZGlmeUhlYWRlckluZm86OnBhcnNlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRF
eHRlbnNpb25zOjpSZWRpcmVjdEFjdGlvbjo6cGFyc2UpOgorICAgICAgICAoV2ViQ29yZTo6Q29u
dGVudEV4dGVuc2lvbnM6OlJlZGlyZWN0QWN0aW9uOjpVUkxUcmFuc2Zvcm1BY3Rpb246OnBhcnNl
KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpSZWRpcmVjdEFjdGlvbjo6
VVJMVHJhbnNmb3JtQWN0aW9uOjpRdWVyeVRyYW5zZm9ybTo6cGFyc2UpOgorICAgICAgICAoV2Vi
Q29yZTo6Q29udGVudEV4dGVuc2lvbnM6OlJlZGlyZWN0QWN0aW9uOjpVUkxUcmFuc2Zvcm1BY3Rp
b246OlF1ZXJ5VHJhbnNmb3JtOjpRdWVyeUtleVZhbHVlOjpwYXJzZSk6CisgICAgICAgICogY29u
dGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkNvbXBpbGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpjb21waWxlUnVsZUxpc3QpOgorICAgICAgICAqIGNv
bnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25QYXJzZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q29udGVudEV4dGVuc2lvbnM6OmdldERvbWFpbkxpc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6Q29udGVudEV4dGVuc2lvbnM6OmxvYWRUcmlnZ2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkNv
bnRlbnRFeHRlbnNpb25zOjpsb2FkQWN0aW9uKToKKyAgICAgICAgKiBjb250ZW50ZXh0ZW5zaW9u
cy9TZXJpYWxpemVkTkZBLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25z
OjpTZXJpYWxpemVkTkZBOjpzZXJpYWxpemUpOgorICAgICAgICAqIGNvbnRlbnRleHRlbnNpb25z
L1VSTEZpbHRlclBhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9u
czo6VVJMRmlsdGVyUGFyc2VyOjpzdGF0dXNTdHJpbmcpOgorICAgICAgICAqIGNvbnRlbnRleHRl
bnNpb25zL1VSTEZpbHRlclBhcnNlci5oOgorICAgICAgICAqIGNyeXB0by9TdWJ0bGVDcnlwdG8u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U3VidGxlQ3J5cHRvOjphZGRBdXRoZW50aWNhdGVkRW5j
cnlwdGlvbldhcm5pbmdJZk5lY2Vzc2FyeSk6CisgICAgICAgICogY3J5cHRvL2FsZ29yaXRobXMv
Q3J5cHRvQWxnb3JpdGhtQUVTX0NCQy5oOgorICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0Ny
eXB0b0FsZ29yaXRobUFFU19DRkIuaDoKKyAgICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9Dcnlw
dG9BbGdvcml0aG1BRVNfQ1RSLmg6CisgICAgICAgICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRv
QWxnb3JpdGhtQUVTX0dDTS5oOgorICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0Fs
Z29yaXRobUFFU19LVy5oOgorICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29y
aXRobUVDREguaDoKKyAgICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1F
Q0RTQS5oOgorICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUhLREYu
aDoKKyAgICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1ITUFDLmg6Cisg
ICAgICAgICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUEJLREYyLmg6CisgICAg
ICAgICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBRVNfUEtDUzFfdjFfNS5o
OgorICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NT
MV92MV81Lmg6CisgICAgICAgICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNB
X09BRVAuaDoKKyAgICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0Ff
UFNTLmg6CisgICAgICAgICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMS5o
OgorICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTIyNC5oOgor
ICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTI1Ni5oOgorICAg
ICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTM4NC5oOgorICAgICAg
ICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTUxMi5oOgorICAgICAgICAq
IGNyeXB0by9rZXlzL0NyeXB0b0tleUFFUy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9L
ZXlBRVM6OmV4cG9ydEp3ayBjb25zdCk6CisgICAgICAgICogY3J5cHRvL2tleXMvQ3J5cHRvS2V5
RUMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvS2V5RUM6OmV4cG9ydEp3ayBjb25zdCk6
CisgICAgICAgICogY3J5cHRvL2tleXMvQ3J5cHRvS2V5SE1BQy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDcnlwdG9LZXlITUFDOjpleHBvcnRKd2sgY29uc3QpOgorICAgICAgICAqIGNyeXB0by9r
ZXlzL0NyeXB0b0tleVJTQS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9LZXlSU0E6OmV4
cG9ydEp3ayBjb25zdCk6CisgICAgICAgICogY3NzL0NTU0ZvbnRGYWNlU3JjVmFsdWUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udEZhY2VTcmNWYWx1ZTo6aXNTdXBwb3J0ZWRGb3JtYXQg
Y29uc3QpOgorICAgICAgICAqIGNzcy9DU1NHcmlkVGVtcGxhdGVBcmVhc1ZhbHVlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnN0cmluZ0ZvclBvc2l0aW9uKToKKyAgICAgICAgKiBjc3MvQ1NTUHJp
bWl0aXZlVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6OnVu
aXRUeXBlU3RyaW5nKToKKyAgICAgICAgKiBjc3MvQ1NTU3ViZ3JpZFZhbHVlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1N1YmdyaWRWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCBjb25zdCk6CisgICAg
ICAgICogY3NzL0RPTUNTU05hbWVzcGFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp2YWx1ZVdp
dGhvdXRJbXBvcnRhbnQpOgorICAgICAgICAqIGNzcy9ET01DU1NSZWdpc3RlckN1c3RvbVByb3Bl
cnR5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTUNTU1JlZ2lzdGVyQ3VzdG9tUHJvcGVydHk6
OnJlZ2lzdGVyUHJvcGVydHkpOgorICAgICAgICAqIGNzcy9EZXByZWNhdGVkQ1NTT01WYWx1ZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpEZXByZWNhdGVkQ1NTT01WYWx1ZTo6Y3NzVGV4dCBjb25z
dCk6CisgICAgICAgICogY3NzL0ZvbnRGYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRG
YWNlOjp1bmljb2RlUmFuZ2UgY29uc3QpOgorICAgICAgICAqIGNzcy9NZWRpYVF1ZXJ5RXhwcmVz
c2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5RXhwcmVzc2lvbjo6c2VyaWFs
aXplIGNvbnN0KToKKyAgICAgICAgKiBjc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlN0eWxlUHJvcGVydGllczo6Z2V0TGF5ZXJlZFNob3J0aGFuZFZhbHVlIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGFibGVTdHlsZVByb3BlcnRpZXM6OnNldEN1c3RvbVBy
b3BlcnR5KToKKyAgICAgICAgKiBjc3MvbWFrZXZhbHVlcy5wbDoKKyAgICAgICAgKiBjc3MvcGFy
c2VyL01lZGlhUXVlcnlQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeVBh
cnNlcjo6c2tpcFVudGlsQ29tbWEpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeVBhcnNl
cjo6cGFyc2VJbnRlcm5hbCk6CisgICAgICAgICogY3NzL3BhcnNlci9TaXplc0F0dHJpYnV0ZVBh
cnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaXplc0F0dHJpYnV0ZVBhcnNlcjo6bWVkaWFD
b25kaXRpb25NYXRjaGVzKToKKyAgICAgICAgKiBjc3MvdHlwZWRvbS9DU1NOdW1lcmljRmFjdG9y
eS5oOgorICAgICAgICAqIGNzcy90eXBlZG9tL0NTU051bWVyaWNWYWx1ZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDU1NOdW1lcmljVmFsdWU6Om11bHRpcGx5SW50ZXJuYWwpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTTnVtZXJpY1ZhbHVlOjp0byk6CisgICAgICAgIChXZWJDb3JlOjpDU1NOdW1l
cmljVmFsdWU6OnBhcnNlKToKKyAgICAgICAgKiBjc3MvdHlwZWRvbS9DU1NTdHlsZVZhbHVlRmFj
dG9yeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVZhbHVlRmFjdG9yeTo6cmVpZnlW
YWx1ZSk6CisgICAgICAgICogZWRpdGluZy9jb2NvYS9IVE1MQ29udmVydGVyLm1tOgorICAgICAg
ICAoSFRNTENvbnZlcnRlckNhY2hlczo6cHJvcGVydHlWYWx1ZUZvck5vZGUpOgorICAgICAgICAo
SFRNTENvbnZlcnRlcjo6X3Byb2Nlc3NFbGVtZW50KToKKyAgICAgICAgKiBlZGl0aW5nL2NvY29h
L1dlYkNvbnRlbnRSZWFkZXJDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OmF0dGFjaG1lbnRG
b3JEYXRhKToKKyAgICAgICAgKiBsb2FkZXIvY29jb2EvQnVuZGxlUmVzb3VyY2VMb2FkZXIubW06
CisgICAgICAgIChXZWJDb3JlOjpCdW5kbGVSZXNvdXJjZUxvYWRlcjo6bG9hZFJlc291cmNlRnJv
bUJ1bmRsZSk6CisgICAgICAgICogbG9hZGVyL21hYy9Mb2FkZXJOU1VSTEV4dHJhcy5tbToKKyAg
ICAgICAgKHN1Z2dlc3RlZEZpbGVuYW1lV2l0aE1JTUVUeXBlKToKKyAgICAgICAgKiBwYWdlL2Nv
Y29hL1Jlc291cmNlVXNhZ2VPdmVybGF5Q29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpIaXN0
b3JpY1Jlc291cmNlVXNhZ2VEYXRhOjpIaXN0b3JpY1Jlc291cmNlVXNhZ2VEYXRhKToKKyAgICAg
ICAgKFdlYkNvcmU6OmRyYXdDcHVIaXN0b3J5KToKKyAgICAgICAgKFdlYkNvcmU6OmRyYXdHQ0hp
c3RvcnkpOgorICAgICAgICAoV2ViQ29yZTo6ZHJhd01lbUhpc3RvcnkpOgorICAgICAgICAqIHBh
Z2UvY29jb2EvU2V0dGluZ3NCYXNlQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5n
c0Jhc2U6OmluaXRpYWxpemVEZWZhdWx0Rm9udEZhbWlsaWVzKToKKyAgICAgICAgKiBwYWdlL21h
Yy9QYWdlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6cGxhdGZvcm1Jbml0aWFsaXpl
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkFYQVJJQUNvbnRlbnRHcm91cFRleHQpOgorICAgICAgICAqIHBsYXRmb3JtL0xvY2Fs
aXplZFN0cmluZ3MuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9QYXN0ZWJvYXJkLmg6CisgICAgICAg
ICogcGxhdGZvcm0vUGFzdGVib2FyZEN1c3RvbURhdGEuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9h
dWRpby9jb2NvYS9NZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EubW06CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2E6OnVwZGF0ZU5vd1BsYXlpbmdJbmZvKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9jb2NvYS9LZXlFdmVudENvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6
a2V5SWRlbnRpZmllckZvckNoYXJDb2RlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9QYXN0
ZWJvYXJkQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjppbWFnZVR5cGVUb0Zha2VGaWxlbmFt
ZSk6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjpyZWFkKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9jb2NvYS9QYXN0ZWJvYXJkQ3VzdG9tRGF0YUNvY29hLm1tOgorICAgICAgICAoV2ViQ29y
ZTo6UGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvRm91ckNDLmg6CisgICAgICAgIChXVEY6OkxvZ0FyZ3VtZW50PFdlYkNvcmU6OkZv
dXJDQz46OnRvU3RyaW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFw
aGljc0NvbnRleHRHTEFOR0xFLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dEdMQU5HTEU6OnZhbGlkYXRlRGVwdGhTdGVuY2lsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vQ0RNUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbToKKyAgICAg
ICAgKFdlYkNvcmU6OkNETVByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnBhcnNlS2V5U3lzdGVt
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakMubW06CisgICAg
ICAgIChXZWJDb3JlOjpDRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQzo6c2V0U3Rv
cmFnZURpcmVjdG9yeSk6CisgICAgICAgIChXZWJDb3JlOjpDRE1JbnN0YW5jZVNlc3Npb25GYWly
UGxheVN0cmVhbWluZ0FWRk9iakM6OnVwZGF0ZUxpY2Vuc2UpOgorICAgICAgICAoV2ViQ29yZTo6
Q0RNSW5zdGFuY2VTZXNzaW9uRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDOjpkaWRQcm92aWRlUmVx
dWVzdHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NE
TVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpDRE1TZXNz
aW9uTWVkaWFTb3VyY2VBVkZPYmpDOjpzdG9yYWdlUGF0aCBjb25zdCk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDOjpzdHJlYW1TZXNzaW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbToKKyAg
ICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpkaWRQcm92aWRlQ29u
dGVudEtleVJlcXVlc3RJbml0aWFsaXphdGlvbkRhdGFGb3JUcmFja0lEKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMvRGF0YURldGVjdG9ySGlnaGxpZ2h0Lm1tOgorICAgICAgICAoV2ViQ29yZTo6
RGF0YURldGVjdG9ySGlnaGxpZ2h0OjpmYWRlSW4pOgorICAgICAgICAoV2ViQ29yZTo6RGF0YURl
dGVjdG9ySGlnaGxpZ2h0OjpmYWRlT3V0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvUGFzdGVi
b2FyZE1hYy5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlN
YWMubW06CisgICAgICAgIChXZWJDb3JlOjprZXlJZGVudGlmaWVyRm9yS2V5RXZlbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6UGxhdGZvcm1LZXlib2FyZEV2ZW50QnVpbGRlcjo6UGxhdGZvcm1LZXli
b2FyZEV2ZW50QnVpbGRlcik6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1BsYXRmb3JtUGFzdGVi
b2FyZE1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtUGFzdGVib2FyZDo6dHlwZXNT
YWZlRm9yRE9NVG9SZWFkQW5kV3JpdGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZv
cm1QYXN0ZWJvYXJkOjp3cml0ZSk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVQYXN0ZWJvYXJk
SXRlbSk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1N0cmluZ1V0aWxpdGllcy5tbToKKyAgICAg
ICAgKFdlYkNvcmU6OndpbGRjYXJkUmVnZXhQYXR0ZXJuU3RyaW5nKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9tYWMvVGhyZWFkQ2hlY2subW06CisgICAgICAgIChXZWJDb3JlUmVwb3J0VGhyZWFkVmlv
bGF0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVXNlckFnZW50TWFjLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6c3RhbmRhcmRVc2VyQWdlbnRXaXRoQXBwbGljYXRpb25OYW1lKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlRXJyb3JCYXNlLmNwcDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlRXJyb3JCYXNlLmg6CisgICAgICAgICogcGxhdGZvcm0v
bmV0d29yay9jb2NvYS9SYW5nZVJlc3BvbnNlR2VuZXJhdG9yLm1tOgorICAgICAgICAoV2ViQ29y
ZTo6c3ludGhlc2l6ZWRSZXNwb25zZUZvclJhbmdlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyVGhlbWVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjppY29uRm9yQXR0YWNobWVudCk6Cisg
ICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Om9wZXJhdG9yPDwpOgorICAgICAgICAqIHN2Zy9TVkdGaWx0ZXJFbGVtZW50
Lmg6CisgICAgICAgICogc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5o
OgorICAgICAgICAqIHN2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuaDoKKyAgICAgICAgKiBz
dmcvU1ZHTWFya2VyRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdNYXNrRWxlbWVudC5oOgor
ICAgICAgICAqIHN2Zy9TVkdQYXRoU2VnSW1wbC5oOgorICAgICAgICAqIHN2Zy9TVkdSYWRpYWxH
cmFkaWVudEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRy
YWl0cy5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8Ym9vbD46OnRvU3Ry
aW5nKToKKyAgICAgICAgKiB0ZXN0aW5nL01vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MuaDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3M6OnVuYmxvY2tVUkxIb3N0
KToKKyAgICAgICAgKiB4bWwvWFBhdGhWYWx1ZS5oOgorICAgICAgICAoV2ViQ29yZTo6WFBhdGg6
OlZhbHVlOjpWYWx1ZSk6CisgICAgICAgICogeG1sL1hTTFN0eWxlU2hlZXQuaDoKKwogMjAyMi0w
My0yNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFN0cmluZzo6
c3BsaXQoKSBzaG91bGQgdGFrZSBpbiBhIFN0cmluZ1ZpZXcgaW5zdGVhZCBvZiBhIFN0cmluZwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkdQVS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViR1BVL0NoYW5n
ZUxvZwppbmRleCA3ZjhlYzNlYzdjN2VkZjEzOWQ2NzUzN2Q5OTI2MWI2ODRlMmJkNDNlLi41ZTMy
YjU3ZmRmZDE4NTlhNGM2NTc1OWEwNGJmMDY4YzA3ZGI3MWFlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViR1BVL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViR1BVL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDQ0IEBACisyMDIyLTAzLTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAg
ICAgICAgU3RhcnQgcHJlcGFyaW5nIFdlYkNvcmUgZm9yIG1ha2luZyB0aGUgU3RyaW5nKGNvbnN0
IGNoYXIqKSBjb25zdHJ1Y3RvciBleHBsaWNpdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4MzM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgU3RhcnQgcHJlcGFyaW5nIFdlYkNvcmUgZm9yIG1ha2luZyB0
aGUgU3RyaW5nKGNvbnN0IGNoYXIqKSBjb25zdHJ1Y3RvciBleHBsaWNpdC4KKyAgICAgICAgTWFr
aW5nIHRoaXMgY29uc3RydWN0b3IgZXhwbGljaXQgaGVscHMgY2F0Y2ggYXQgY29tcGlsZSB0aW1l
IGNhc2VzIHdoZXJlIHRoZSAiIl9zCisgICAgICAgIHByZWZpeCBpcyBtaXNzaW5nIG9uIFN0cmlu
ZyBsaXRlcmFscy4KKworICAgICAgICAqIFdHU0wvUGFyc2VyLmNwcDoKKyAgICAgICAgKFdHU0w6
OlBhcnNlcjxMZXhlcj46OnBhcnNlR2xvYmFsRGVjbCk6CisgICAgICAgIChXR1NMOjpQYXJzZXI8
TGV4ZXI+OjpwYXJzZUF0dHJpYnV0ZSk6CisgICAgICAgIChXR1NMOjpQYXJzZXI8TGV4ZXI+Ojpw
YXJzZVR5cGVEZWNsKToKKyAgICAgICAgKFdHU0w6OlBhcnNlcjxMZXhlcj46OnBhcnNlU3RvcmFn
ZUNsYXNzKToKKyAgICAgICAgKFdHU0w6OlBhcnNlcjxMZXhlcj46OnBhcnNlQWNjZXNzTW9kZSk6
CisgICAgICAgIChXR1NMOjpQYXJzZXI8TGV4ZXI+OjpwYXJzZVN0YXRlbWVudCk6CisgICAgICAg
IChXR1NMOjpQYXJzZXI8TGV4ZXI+OjpwYXJzZVByaW1hcnlFeHByZXNzaW9uKToKKyAgICAgICAg
KFdHU0w6OlBhcnNlcjxMZXhlcj46OnBhcnNlQ29yZUxIU0V4cHJlc3Npb24pOgorICAgICAgICAq
IFdHU0wvVG9rZW4uY3BwOgorICAgICAgICAoV0dTTDo6dG9TdHJpbmcpOgorICAgICAgICAqIFdl
YkdQVS9BZGFwdGVyLm1tOgorICAgICAgICAoV2ViR1BVOjpBZGFwdGVyOjpyZXF1ZXN0RGV2aWNl
KToKKyAgICAgICAgKiBXZWJHUFUvQnVmZmVyLm1tOgorICAgICAgICAoV2ViR1BVOjpCdWZmZXI6
Om1hcEFzeW5jKToKKyAgICAgICAgKFdlYkdQVTo6QnVmZmVyOjp1bm1hcCk6CisgICAgICAgICog
V2ViR1BVL0NvbW1hbmRFbmNvZGVyLm1tOgorICAgICAgICAoV2ViR1BVOjpDb21tYW5kRW5jb2Rl
cjo6Y29weUJ1ZmZlclRvQnVmZmVyKToKKyAgICAgICAgKFdlYkdQVTo6Q29tbWFuZEVuY29kZXI6
OmNsZWFyQnVmZmVyKToKKyAgICAgICAgKFdlYkdQVTo6Q29tbWFuZEVuY29kZXI6OmZpbmlzaCk6
CisgICAgICAgICogV2ViR1BVL0NvbXB1dGVQaXBlbGluZS5tbToKKyAgICAgICAgKFdlYkdQVTo6
Y3JlYXRlQ29uc3RhbnRWYWx1ZXMpOgorICAgICAgICAoV2ViR1BVOjpEZXZpY2U6OmNyZWF0ZUNv
bXB1dGVQaXBlbGluZSk6CisgICAgICAgICogV2ViR1BVL1F1ZXVlLm1tOgorICAgICAgICAoV2Vi
R1BVOjpRdWV1ZTo6c3VibWl0KToKKyAgICAgICAgKiBXZWJHUFUvU2FtcGxlci5tbToKKyAgICAg
ICAgKFdlYkdQVTo6RGV2aWNlOjpjcmVhdGVTYW1wbGVyKToKKyAgICAgICAgKiBXZWJHUFUvU2hh
ZGVyTW9kdWxlLm1tOgorICAgICAgICAoV2ViR1BVOjplYXJseUNvbXBpbGVTaGFkZXJNb2R1bGUp
OgorCiAyMDIyLTAzLTI0ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+
CiAKICAgICAgICAgW1dlYkdQVV0gRml4IHRoZSB3YXRjaE9TIGJ1aWxkCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDc3
ZTk2YzI5MTE1MTUwMGIyMzhhNjM2MGU1NDE3NDEwNzJmNmFjNTQuLjZhMzRlOGU2ZDVkNTM5OTg2
OTA2MjFiYTFhNGMzNjFiOWZkMjIwOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjIt
MDMtMjQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBTdGFydCBw
cmVwYXJpbmcgV2ViQ29yZSBmb3IgbWFraW5nIHRoZSBTdHJpbmcoY29uc3QgY2hhciopIGNvbnN0
cnVjdG9yIGV4cGxpY2l0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzgzMzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBTdGFydCBwcmVwYXJpbmcgV2ViQ29yZSBmb3IgbWFraW5nIHRoZSBTdHJpbmcoY29u
c3QgY2hhciopIGNvbnN0cnVjdG9yIGV4cGxpY2l0LgorICAgICAgICBNYWtpbmcgdGhpcyBjb25z
dHJ1Y3RvciBleHBsaWNpdCBoZWxwcyBjYXRjaCBhdCBjb21waWxlIHRpbWUgY2FzZXMgd2hlcmUg
dGhlICIiX3MKKyAgICAgICAgcHJlZml4IGlzIG1pc3Npbmcgb24gU3RyaW5nIGxpdGVyYWxzLgor
CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tOgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWV3SW1wbDo6c2V0UHJvbWlzZWREYXRhRm9ySW1hZ2UpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWV3SW1wbDo6cmVxdWVzdERPTVBhc3RlQWNjZXNzKToKKwogMjAyMi0wMy0yNCAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFN0cmluZzo6c3BsaXQo
KSBzaG91bGQgdGFrZSBpbiBhIFN0cmluZ1ZpZXcgaW5zdGVhZCBvZiBhIFN0cmluZwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IGE0YmE1MWVkODJlZjE4NjcyNDYwMTQ1YjAyNjlhYjFi
OWNjYTIzMGQuLjA3NjVhZDk1Njg0MGViZGIwMmQ2MDdkOTAxNGUxM2MyNjZhOTU4YjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMi0wMy0yNCAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFN0YXJ0IHByZXBhcmluZyBX
ZWJDb3JlIGZvciBtYWtpbmcgdGhlIFN0cmluZyhjb25zdCBjaGFyKikgY29uc3RydWN0b3IgZXhw
bGljaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
ODMzNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0
YXJ0IHByZXBhcmluZyBXZWJDb3JlIGZvciBtYWtpbmcgdGhlIFN0cmluZyhjb25zdCBjaGFyKikg
Y29uc3RydWN0b3IgZXhwbGljaXQuCisgICAgICAgIE1ha2luZyB0aGlzIGNvbnN0cnVjdG9yIGV4
cGxpY2l0IGhlbHBzIGNhdGNoIGF0IGNvbXBpbGUgdGltZSBjYXNlcyB3aGVyZSB0aGUgIiJfcwor
ICAgICAgICBwcmVmaXggaXMgbWlzc2luZyBvbiBTdHJpbmcgbGl0ZXJhbHMuCisKKyAgICAgICAg
KiBNaXNjL1dlYk5TUGFzdGVib2FyZEV4dHJhcy5tbToKKyAgICAgICAgKC1bTlNQYXN0ZWJvYXJk
IF93ZWJfZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlRm9yRWxlbWVudDpVUkw6dGl0bGU6YXJjaGl2
ZTpzb3VyY2U6XSk6CisKIDIwMjItMDMtMjQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNv
bT4KIAogICAgICAgICBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoKSBzaG91
bGQgdGFrZSBpbiBTdHJpbmdWaWV3cyBpbnN0ZWFkIG9mIFN0cmluZ3MKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWYWx1ZS5tbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvSlNWYWx1ZS5tbQppbmRleCBkM2FkMDgwZTFkZGY0ZmU2ZWZiYTkxMzViYTI2ODc2Yzc3
ZGNiYzI2Li5mMTJhMmM0OTUzZjAwMzJkZmI0YjcyZjY4ZmY4MGZlZGRiNjkwMzU0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmFsdWUubW0KKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlLm1tCkBAIC0xMTc5LDcgKzExNzksNyBAQCBzdGF0aWMg
U3RydWN0SGFuZGxlcnMqIGNyZWF0ZVN0cnVjdEhhbmRsZXJNYXAoKQogICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICAvLyBUcnkgdG8gZmluZCBhIG1hdGNoaW5nIHZhbHVlV2l0aDxGb28+OmNv
bnRleHQ6IG1ldGhvZC4KICAgICAgICAgYXV0byB0eXBlID0gYWRvcHRTeXN0ZW08Y2hhcltdPiht
ZXRob2RfY29weVJldHVyblR5cGUobWV0aG9kKSk7Ci0gICAgICAgIFN0cnVjdEhhbmRsZXJzOjpp
dGVyYXRvciBpdGVyID0gc3RydWN0SGFuZGxlcnMtPmZpbmQodHlwZS5nZXQoKSk7CisgICAgICAg
IFN0cnVjdEhhbmRsZXJzOjppdGVyYXRvciBpdGVyID0gc3RydWN0SGFuZGxlcnMtPmZpbmQoU3Ry
aW5nIHsgdHlwZS5nZXQoKSB9KTsKICAgICAgICAgaWYgKGl0ZXIgPT0gc3RydWN0SGFuZGxlcnMt
PmVuZCgpKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBTdHJ1Y3RUYWdIYW5kbGVyJiBo
YW5kbGVyID0gaXRlci0+dmFsdWU7CkBAIC0xMjE3LDcgKzEyMTcsNyBAQCBzdGF0aWMgU3RydWN0
VGFnSGFuZGxlciogaGFuZGVyRm9yU3RydWN0VGFnKGNvbnN0IGNoYXIqIGVuY29kZWRUeXBlKQog
CiAgICAgc3RhdGljIFN0cnVjdEhhbmRsZXJzKiBzdHJ1Y3RIYW5kbGVycyA9IGNyZWF0ZVN0cnVj
dEhhbmRsZXJNYXAoKTsKIAotICAgIFN0cnVjdEhhbmRsZXJzOjppdGVyYXRvciBpdGVyID0gc3Ry
dWN0SGFuZGxlcnMtPmZpbmQoZW5jb2RlZFR5cGUpOworICAgIFN0cnVjdEhhbmRsZXJzOjppdGVy
YXRvciBpdGVyID0gc3RydWN0SGFuZGxlcnMtPmZpbmQoU3RyaW5nIHsgZW5jb2RlZFR5cGUgfSk7
CiAgICAgaWYgKGl0ZXIgPT0gc3RydWN0SGFuZGxlcnMtPmVuZCgpKQogICAgICAgICByZXR1cm4g
MDsKICAgICByZXR1cm4gJml0ZXItPnZhbHVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0FQSS9KU1dyYXBwZXJNYXAubW0gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pT
V3JhcHBlck1hcC5tbQppbmRleCA5NmU0NDc4ODcwY2Q4MWE1ODk5N2QwMmRhNmZhNGZiYTM0NmFm
MTk1Li5mODIxZGY4ZTNlYmVkNTdmNTQwY2QyZjAxZDY0ZWM5NmRjZmE4NmNkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTV3JhcHBlck1hcC5tbQorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL0pTV3JhcHBlck1hcC5tbQpAQCAtNDUxLDcgKzQ1MSw3IEBAIHN0
YXRpYyBKU0M6OkpTT2JqZWN0KiBhbGxvY2F0ZUNvbnN0cnVjdG9yRm9yQ3VzdG9tQ2xhc3MoSlND
b250ZXh0ICpjb250ZXh0LCBjb25zCiAgICAgICAgIGZvckVhY2hNZXRob2RJbkNsYXNzKGN1cnJl
bnRDbGFzcywgXihNZXRob2QgbWV0aG9kKSB7CiAgICAgICAgICAgICBTRUwgc2VsZWN0b3IgPSBt
ZXRob2RfZ2V0TmFtZShtZXRob2QpOwogICAgICAgICAgICAgY29uc3QgY2hhciogbmFtZSA9IHNl
bF9nZXROYW1lKHNlbGVjdG9yKTsKLSAgICAgICAgICAgIGF1dG8gaXRlciA9IGluaXRUYWJsZS5m
aW5kKG5hbWUpOworICAgICAgICAgICAgYXV0byBpdGVyID0gaW5pdFRhYmxlLmZpbmQoU3RyaW5n
IHsgbmFtZSB9KTsKIAogICAgICAgICAgICAgaWYgKGl0ZXIgPT0gaW5pdFRhYmxlLmVuZCgpKQog
ICAgICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQv
VGV4dFN0cmVhbS5oIGIvU291cmNlL1dURi93dGYvdGV4dC9UZXh0U3RyZWFtLmgKaW5kZXggYzg1
ZGE2NjQxZTEzMTczYzk3MTE1N2JhNGE5ODNiNDRmNTQ2NWJhNS4uZGY3MTJlZDIwNWY0Nzk3OTdi
YjZkOWY1MDY3ZDYxNDMxMWM2NTBhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9U
ZXh0U3RyZWFtLmgKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9UZXh0U3RyZWFtLmgKQEAgLTEw
MCw2ICsxMDAsMTUgQEAgcHVibGljOgogICAgICAgICB0cy5lbmRHcm91cCgpOwogICAgIH0KIAor
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgdm9pZCBkdW1wUHJvcGVydHkoY29uc3QgY2hh
ciogbmFtZSwgY29uc3QgVCYgdmFsdWUpCisgICAgeworICAgICAgICBUZXh0U3RyZWFtJiB0cyA9
ICp0aGlzOworICAgICAgICB0cy5zdGFydEdyb3VwKCk7CisgICAgICAgIHRzIDw8IG5hbWUgPDwg
IiAiIDw8IHZhbHVlOworICAgICAgICB0cy5lbmRHcm91cCgpOworICAgIH0KKwogICAgIFdURl9F
WFBPUlRfUFJJVkFURSBTdHJpbmcgcmVsZWFzZSgpOwogICAgIAogICAgIFdURl9FWFBPUlRfUFJJ
VkFURSB2b2lkIHN0YXJ0R3JvdXAoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvYXBwbGVwYXktYW1zLXVpL0FwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5LWFtcy11aS9BcHBsZVBheUFNU1VJUGF5bWVudEhh
bmRsZXIuY3BwCmluZGV4IGY0ZGFmOGQxOGFlYzQ5OTc3NWQ1YzAzYzA4ZWFhMDQzMjQxMTQzZmIu
LjRhMzIyNWNlOWNhNDA2YzAwZmUxNjg0NjBhNWQ2ZDAzMDA0Mjg1NTkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXktYW1zLXVpL0FwcGxlUGF5QU1TVUlQYXltZW50
SGFuZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS1hbXMtdWkv
QXBwbGVQYXlBTVNVSVBheW1lbnRIYW5kbGVyLmNwcApAQCAtMzksNyArMzksNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiBzdGF0aWMgRXhjZXB0aW9uT3I8QXBwbGVQYXlBTVNVSVJlcXVlc3Q+IGNv
bnZlcnRBbmRWYWxpZGF0ZUFwcGxlUGF5QU1TVUlSZXF1ZXN0KERvY3VtZW50JiBkb2N1bWVudCwg
SlNDOjpKU1ZhbHVlIGRhdGEpCiB7CiAgICAgaWYgKGRhdGEuaXNFbXB0eSgpKQotICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiTWlzc2luZyBwYXltZW50IG1ldGhvZCBkYXRh
LiIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIk1pc3NpbmcgcGF5
bWVudCBtZXRob2QgZGF0YS4iX3MgfTsKIAogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUoZG9jdW1lbnQudm0oKSk7CiAgICAgYXV0byBhcHBsZVBheUFNU1VJUmVxdWVz
dCA9IGNvbnZlcnREaWN0aW9uYXJ5PEFwcGxlUGF5QU1TVUlSZXF1ZXN0PigqZG9jdW1lbnQuZ2xv
YmFsT2JqZWN0KCksIGRhdGEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9h
cHBsZXBheS9BcHBsZVBheUNvbnRhY3RGaWVsZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2FwcGxlcGF5L0FwcGxlUGF5Q29udGFjdEZpZWxkLmNwcAppbmRleCBkZDNkY2I0ZWM3ZGQ0YTZh
ZjM5MGJlZDZjMWE3ZjJhMTQyMzEzNTI0Li4zNzFiOWVkNDIzMjg3ZDk3NzM1NTlhNWNmOGE1MWI2
Nzk3ZWYzYWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0Fw
cGxlUGF5Q29udGFjdEZpZWxkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxl
cGF5L0FwcGxlUGF5Q29udGFjdEZpZWxkLmNwcApAQCAtNDQsNyArNDQsNyBAQCBFeGNlcHRpb25P
cjxBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6Q29udGFjdEZpZWxkcz4gY29udmVydEFu
ZFZhbGlkYXRlKHVucwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQXBwbGVQYXlD
b250YWN0RmllbGQ6OlBob25ldGljTmFtZToKICAgICAgICAgICAgIGlmICh2ZXJzaW9uIDwgMykK
LSAgICAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiXCJwaG9uZXRp
Y05hbWVcIiBpcyBub3QgYSB2YWxpZCBjb250YWN0IGZpZWxkLiIgfTsKKyAgICAgICAgICAgICAg
ICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiXCJwaG9uZXRpY05hbWVcIiBpcyBub3Qg
YSB2YWxpZCBjb250YWN0IGZpZWxkLiJfcyB9OwogICAgICAgICAgICAgcmVzdWx0LnBob25ldGlj
TmFtZSA9IHRydWU7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBBcHBsZVBheUNv
bnRhY3RGaWVsZDo6UGhvbmU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Fw
cGxlcGF5L0FwcGxlUGF5TWVyY2hhbnRDYXBhYmlsaXR5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlNZXJjaGFudENhcGFiaWxpdHkuY3BwCmluZGV4IGE2MmEy
YzczZWEzMDY1NTFiZWU4NWRjOTU2MTdjMTE2MjU2NTNiYzIuLmY2ODRiYzlhYzYxZDQ5OWE1NWNh
NGUxODFmNTdiNDY5MTcyNTc5YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
YXBwbGVwYXkvQXBwbGVQYXlNZXJjaGFudENhcGFiaWxpdHkuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlNZXJjaGFudENhcGFiaWxpdHkuY3BwCkBAIC0z
Myw3ICszMyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIEV4Y2VwdGlvbk9yPEFwcGxlUGF5U2Vz
c2lvblBheW1lbnRSZXF1ZXN0OjpNZXJjaGFudENhcGFiaWxpdGllcz4gY29udmVydEFuZFZhbGlk
YXRlKGNvbnN0IFZlY3RvcjxBcHBsZVBheU1lcmNoYW50Q2FwYWJpbGl0eT4mIG1lcmNoYW50Q2Fw
YWJpbGl0aWVzKQogewogICAgIGlmIChtZXJjaGFudENhcGFiaWxpdGllcy5pc0VtcHR5KCkpCi0g
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJBdCBsZWFzdCBvbmUgbWVyY2hh
bnQgY2FwYWJpbGl0eSBtdXN0IGJlIHByb3ZpZGVkLiIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2Vw
dGlvbiB7IFR5cGVFcnJvciwgIkF0IGxlYXN0IG9uZSBtZXJjaGFudCBjYXBhYmlsaXR5IG11c3Qg
YmUgcHJvdmlkZWQuIl9zIH07CiAKICAgICBBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6
TWVyY2hhbnRDYXBhYmlsaXRpZXMgcmVzdWx0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5UmVxdWVzdEJhc2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVJlcXVlc3RCYXNlLmNwcAppbmRleCAyNDU4NmQ1
ZGQ0NzljOTA5M2Q0OWY5NjEwMTE5MWNhYThlODUwOTdlLi44ZDM2MjdhNmY2YTI3ZmI4YzgyYzkz
YWQ1NDZkNmFhZjA2OWJmMTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Fw
cGxlcGF5L0FwcGxlUGF5UmVxdWVzdEJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvYXBwbGVwYXkvQXBwbGVQYXlSZXF1ZXN0QmFzZS5jcHAKQEAgLTczLDcgKzczLDcgQEAgRXhj
ZXB0aW9uT3I8QXBwbGVQYXlTZXNzaW9uUGF5bWVudFJlcXVlc3Q+IGNvbnZlcnRBbmRWYWxpZGF0
ZShEb2N1bWVudCYgZG9jdW1lbnQKICAgICByZXN1bHQuc2V0TWVyY2hhbnRDYXBhYmlsaXRpZXMo
bWVyY2hhbnRDYXBhYmlsaXRpZXMucmVsZWFzZVJldHVyblZhbHVlKCkpOwogCiAgICAgaWYgKHJl
cXVpcmVzU3VwcG9ydGVkTmV0d29ya3ModmVyc2lvbiwgcmVxdWVzdCkgJiYgcmVxdWVzdC5zdXBw
b3J0ZWROZXR3b3Jrcy5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBl
RXJyb3IsICJBdCBsZWFzdCBvbmUgc3VwcG9ydGVkIG5ldHdvcmsgbXVzdCBiZSBwcm92aWRlZC4i
IH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJBdCBsZWFzdCBvbmUg
c3VwcG9ydGVkIG5ldHdvcmsgbXVzdCBiZSBwcm92aWRlZC4iX3MgfTsKIAogICAgIGF1dG8gc3Vw
cG9ydGVkTmV0d29ya3MgPSBjb252ZXJ0QW5kVmFsaWRhdGUoZG9jdW1lbnQsIHZlcnNpb24sIHJl
cXVlc3Quc3VwcG9ydGVkTmV0d29ya3MsIHBheW1lbnRDb29yZGluYXRvcik7CiAgICAgaWYgKHN1
cHBvcnRlZE5ldHdvcmtzLmhhc0V4Y2VwdGlvbigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNlc3Npb24uY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNlc3Npb24uY3BwCmluZGV4IDZjYmZjZjA3OTc1MDFh
OTk2MjlmY2M2OTM2YjZmMDUwZjBjZmM4OWEuLjU5ZTMwMGJlYjcwOTI2ZWY5ODNhZWNiYTZkNGFl
NWI2ZTdiMDY1YzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkv
QXBwbGVQYXlTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5
L0FwcGxlUGF5U2Vzc2lvbi5jcHAKQEAgLTMxMCwxMCArMzEwLDEwIEBAIEV4Y2VwdGlvbk9yPFJl
ZjxBcHBsZVBheVNlc3Npb24+PiBBcHBsZVBheVNlc3Npb246OmNyZWF0ZShEb2N1bWVudCYgZG9j
dW1lbnQsIHVuCiAgICAgICAgIHJldHVybiBjYW5DYWxsLnJlbGVhc2VFeGNlcHRpb24oKTsKIAog
ICAgIGlmICghVXNlckdlc3R1cmVJbmRpY2F0b3I6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpKQot
ICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiTXVzdCBjcmVh
dGUgYSBuZXcgQXBwbGVQYXlTZXNzaW9uIGZyb20gYSB1c2VyIGdlc3R1cmUgaGFuZGxlci4iIH07
CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJNdXN0IGNy
ZWF0ZSBhIG5ldyBBcHBsZVBheVNlc3Npb24gZnJvbSBhIHVzZXIgZ2VzdHVyZSBoYW5kbGVyLiJf
cyB9OwogCiAgICAgaWYgKCFkb2N1bWVudC5wYWdlKCkpCi0gICAgICAgIHJldHVybiBFeGNlcHRp
b24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJGcmFtZSBpcyBkZXRhY2hlZCIgfTsKKyAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwgIkZyYW1lIGlzIGRldGFjaGVk
Il9zIH07CiAKICAgICBhdXRvIGNvbnZlcnRlZFBheW1lbnRSZXF1ZXN0ID0gY29udmVydEFuZFZh
bGlkYXRlKGRvY3VtZW50LCB2ZXJzaW9uLCBXVEZNb3ZlKHBheW1lbnRSZXF1ZXN0KSwgZG9jdW1l
bnQucGFnZSgpLT5wYXltZW50Q29vcmRpbmF0b3IoKSk7CiAgICAgaWYgKGNvbnZlcnRlZFBheW1l
bnRSZXF1ZXN0Lmhhc0V4Y2VwdGlvbigpKQpAQCAtNDEyLDcgKzQxMiw3IEBAIEV4Y2VwdGlvbk9y
PHZvaWQ+IEFwcGxlUGF5U2Vzc2lvbjo6b3BlblBheW1lbnRTZXR1cChEb2N1bWVudCYgZG9jdW1l
bnQsIGNvbnN0IFN0CiAgICAgICAgIHJldHVybiBjYW5DYWxsLnJlbGVhc2VFeGNlcHRpb24oKTsK
IAogICAgIGlmICghVXNlckdlc3R1cmVJbmRpY2F0b3I6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgp
KQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiTXVzdCBj
YWxsIEFwcGxlUGF5U2Vzc2lvbi5vcGVuUGF5bWVudFNldHVwIGZyb20gYSB1c2VyIGdlc3R1cmUg
aGFuZGxlci4iIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJy
b3IsICJNdXN0IGNhbGwgQXBwbGVQYXlTZXNzaW9uLm9wZW5QYXltZW50U2V0dXAgZnJvbSBhIHVz
ZXIgZ2VzdHVyZSBoYW5kbGVyLiJfcyB9OwogCiAgICAgYXV0byogcGFnZSA9IGRvY3VtZW50LnBh
Z2UoKTsKICAgICBpZiAoIXBhZ2UpCkBAIC00MzEsMTMgKzQzMSwxMyBAQCBFeGNlcHRpb25Pcjx2
b2lkPiBBcHBsZVBheVNlc3Npb246Om9wZW5QYXltZW50U2V0dXAoRG9jdW1lbnQmIGRvY3VtZW50
LCBjb25zdCBTdAogRXhjZXB0aW9uT3I8dm9pZD4gQXBwbGVQYXlTZXNzaW9uOjpiZWdpbihEb2N1
bWVudCYgZG9jdW1lbnQpCiB7CiAgICAgaWYgKCFjYW5CZWdpbigpKQotICAgICAgICByZXR1cm4g
RXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiUGF5bWVudCBzZXNzaW9uIGlzIGFscmVh
ZHkgYWN0aXZlLiIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NF
cnJvciwgIlBheW1lbnQgc2Vzc2lvbiBpcyBhbHJlYWR5IGFjdGl2ZS4iX3MgfTsKIAogICAgIGlm
IChwYXltZW50Q29vcmRpbmF0b3IoKS5oYXNBY3RpdmVTZXNzaW9uKCkpCi0gICAgICAgIHJldHVy
biBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJQYWdlIGFscmVhZHkgaGFzIGFuIGFj
dGl2ZSBwYXltZW50IHNlc3Npb24uIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52
YWxpZEFjY2Vzc0Vycm9yLCAiUGFnZSBhbHJlYWR5IGhhcyBhbiBhY3RpdmUgcGF5bWVudCBzZXNz
aW9uLiJfcyB9OwogCiAgICAgaWYgKCFwYXltZW50Q29vcmRpbmF0b3IoKS5iZWdpblBheW1lbnRT
ZXNzaW9uKGRvY3VtZW50LCAqdGhpcywgbV9wYXltZW50UmVxdWVzdCkpCi0gICAgICAgIHJldHVy
biBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJUaGVyZSBpcyBhbHJlYWR5IGhhcyBh
biBhY3RpdmUgcGF5bWVudCBzZXNzaW9uLiIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7
IEludmFsaWRBY2Nlc3NFcnJvciwgIlRoZXJlIGlzIGFscmVhZHkgaGFzIGFuIGFjdGl2ZSBwYXlt
ZW50IHNlc3Npb24uIl9zIH07CiAKICAgICBtX3N0YXRlID0gU3RhdGU6OkFjdGl2ZTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNldHVwLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTZXR1cC5jcHAKaW5k
ZXggZThiMTM2MTY5MGIyMGVhZjdlMWM2MTZhNzcyYThmNjEzZGVmZjM0OC4uODllNGE0NTVmMTg1
ZjgxOTBjN2VjMGQ3NjE3ODRkNTk0NmJjNjE2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNldHVwLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2V0dXAuY3BwCkBAIC05MSw3ICs5MSw3IEBAIHZvaWQg
QXBwbGVQYXlTZXR1cDo6YmVnaW4oRG9jdW1lbnQmIGRvY3VtZW50LCBWZWN0b3I8UmVmUHRyPEFw
cGxlUGF5U2V0dXBGZWF0dXJlCiAgICAgfQogCiAgICAgaWYgKCFVc2VyR2VzdHVyZUluZGljYXRv
cjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkpIHsKLSAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhj
ZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiTXVzdCBjYWxsIEFwcGxlUGF5U2V0dXAuYmVn
aW4gZnJvbSBhIHVzZXIgZ2VzdHVyZSBoYW5kbGVyLiIgfSk7CisgICAgICAgIHByb21pc2UucmVq
ZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwgIk11c3QgY2FsbCBBcHBsZVBheVNl
dHVwLmJlZ2luIGZyb20gYSB1c2VyIGdlc3R1cmUgaGFuZGxlci4iX3MgfSk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVw
YXkvUGF5bWVudEluc3RhbGxtZW50Q29uZmlndXJhdGlvbi5tbSBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvYXBwbGVwYXkvUGF5bWVudEluc3RhbGxtZW50Q29uZmlndXJhdGlvbi5tbQppbmRleCA2
NGQxZGJiMjEyZTcwMmMwMmIyYjgyY2QxZTY4ZTgwZTc3M2YwODcwLi45OWM3NGQ2ODkxNjQ5MDcy
MjUwZGVjNDliOTZkMDBjY2E2YzZlMTdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2FwcGxlcGF5L1BheW1lbnRJbnN0YWxsbWVudENvbmZpZ3VyYXRpb24ubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50SW5zdGFsbG1lbnRDb25maWd1cmF0
aW9uLm1tCkBAIC0yMDcsNyArMjA3LDcgQEAgRXhjZXB0aW9uT3I8UGF5bWVudEluc3RhbGxtZW50
Q29uZmlndXJhdGlvbj4gUGF5bWVudEluc3RhbGxtZW50Q29uZmlndXJhdGlvbjo6Y3IKICAgICAg
ICAgTlNEYXRhICphcHBsaWNhdGlvbk1ldGFkYXRhID0gW2NvbmZpZ3VyYXRpb24uYXBwbGljYXRp
b25NZXRhZGF0YSBkYXRhVXNpbmdFbmNvZGluZzpOU1VURjhTdHJpbmdFbmNvZGluZ107CiAgICAg
ICAgIGFwcGxpY2F0aW9uTWV0YWRhdGFEaWN0aW9uYXJ5ID0gZHluYW1pY19vYmpjX2Nhc3Q8TlNE
aWN0aW9uYXJ5PihbTlNKU09OU2VyaWFsaXphdGlvbiBKU09OT2JqZWN0V2l0aERhdGE6YXBwbGlj
YXRpb25NZXRhZGF0YSBvcHRpb25zOjAgZXJyb3I6bmlsXSk7CiAgICAgICAgIGlmICghYXBwbGlj
YXRpb25NZXRhZGF0YURpY3Rpb25hcnkpCi0gICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
VHlwZUVycm9yLCAiYXBwbGljYXRpb25NZXRhZGF0YSBtdXN0IGJlIGEgSlNPTiBvYmplY3QiIH07
CisgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiYXBwbGljYXRpb25N
ZXRhZGF0YSBtdXN0IGJlIGEgSlNPTiBvYmplY3QiX3MgfTsKICAgICB9CiAKICAgICByZXR1cm4g
UGF5bWVudEluc3RhbGxtZW50Q29uZmlndXJhdGlvbihjb25maWd1cmF0aW9uLCBhcHBsaWNhdGlv
bk1ldGFkYXRhRGljdGlvbmFyeSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2FwcGxlcGF5L1BheW1lbnRSZXF1ZXN0VmFsaWRhdG9yLm1tIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9hcHBsZXBheS9QYXltZW50UmVxdWVzdFZhbGlkYXRvci5tbQppbmRleCBmMTBjNTVkNDk0
YTExYzMwYzBhMTA1ZTFiZmI2MTQzOTA4NjY4YzQwLi5jNTJmZDkyZDA4ZDNkYzRlMzNhZjdlMGZk
YmJlM2UwYzhlOGNlY2E4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxl
cGF5L1BheW1lbnRSZXF1ZXN0VmFsaWRhdG9yLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvYXBwbGVwYXkvUGF5bWVudFJlcXVlc3RWYWxpZGF0b3IubW0KQEAgLTk1LDE4ICs5NSwxOCBA
QCBFeGNlcHRpb25Pcjx2b2lkPiBQYXltZW50UmVxdWVzdFZhbGlkYXRvcjo6dmFsaWRhdGUoY29u
c3QgQXBwbGVQYXlTZXNzaW9uUGF5bWVudAogRXhjZXB0aW9uT3I8dm9pZD4gUGF5bWVudFJlcXVl
c3RWYWxpZGF0b3I6OnZhbGlkYXRlVG90YWwoY29uc3QgQXBwbGVQYXlMaW5lSXRlbSYgdG90YWwp
CiB7CiAgICAgaWYgKCF0b3RhbC5sYWJlbCkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5
cGVFcnJvciwgIk1pc3NpbmcgdG90YWwgbGFiZWwuIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgVHlwZUVycm9yLCAiTWlzc2luZyB0b3RhbCBsYWJlbC4iX3MgfTsKIAogICAgIGlmICgh
dG90YWwuYW1vdW50KQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiTWlz
c2luZyB0b3RhbCBhbW91bnQuIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVy
cm9yLCAiTWlzc2luZyB0b3RhbCBhbW91bnQuIl9zIH07CiAKICAgICBkb3VibGUgYW1vdW50ID0g
W05TRGVjaW1hbE51bWJlciBkZWNpbWFsTnVtYmVyV2l0aFN0cmluZzp0b3RhbC5hbW91bnQgbG9j
YWxlOkB7IE5TTG9jYWxlRGVjaW1hbFNlcGFyYXRvciA6IEAiLiIgfV0uZG91YmxlVmFsdWU7CiAK
ICAgICBpZiAoYW1vdW50IDwgMCkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJv
ciwgIlRvdGFsIGFtb3VudCBtdXN0IG5vdCBiZSBuZWdhdGl2ZS4iIH07CisgICAgICAgIHJldHVy
biBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJUb3RhbCBhbW91bnQgbXVzdCBub3QgYmUgbmVnYXRp
dmUuIl9zIH07CiAKICAgICBpZiAoYW1vdW50ID4gMTAwMDAwMDAwKQotICAgICAgICByZXR1cm4g
RXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiVG90YWwgYW1vdW50IGlzIHRvbyBiaWcuIiB9OworICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiVG90YWwgYW1vdW50IGlzIHRvbyBi
aWcuIl9zIH07CiAKICAgICByZXR1cm4geyB9OwogfQpAQCAtMTE0LDcgKzExNCw3IEBAIEV4Y2Vw
dGlvbk9yPHZvaWQ+IFBheW1lbnRSZXF1ZXN0VmFsaWRhdG9yOjp2YWxpZGF0ZVRvdGFsKGNvbnN0
IEFwcGxlUGF5TGluZUl0ZW0mCiBzdGF0aWMgRXhjZXB0aW9uT3I8dm9pZD4gdmFsaWRhdGVDb3Vu
dHJ5Q29kZShjb25zdCBTdHJpbmcmIGNvdW50cnlDb2RlKQogewogICAgIGlmICghY291bnRyeUNv
ZGUpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJNaXNzaW5nIGNvdW50
cnkgY29kZS4iIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJNaXNz
aW5nIGNvdW50cnkgY29kZS4iX3MgfTsKIAogICAgIGZvciAoYXV0byAqY291bnRyeUNvZGVQdHIg
PSB1bG9jX2dldElTT0NvdW50cmllcygpOyAqY291bnRyeUNvZGVQdHI7ICsrY291bnRyeUNvZGVQ
dHIpIHsKICAgICAgICAgaWYgKGNvdW50cnlDb2RlID09ICpjb3VudHJ5Q29kZVB0cikKQEAgLTEy
Nyw3ICsxMjcsNyBAQCBzdGF0aWMgRXhjZXB0aW9uT3I8dm9pZD4gdmFsaWRhdGVDb3VudHJ5Q29k
ZShjb25zdCBTdHJpbmcmIGNvdW50cnlDb2RlKQogc3RhdGljIEV4Y2VwdGlvbk9yPHZvaWQ+IHZh
bGlkYXRlQ3VycmVuY3lDb2RlKGNvbnN0IFN0cmluZyYgY3VycmVuY3lDb2RlKQogewogICAgIGlm
ICghY3VycmVuY3lDb2RlKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAi
TWlzc2luZyBjdXJyZW5jeSBjb2RlLiIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5
cGVFcnJvciwgIk1pc3NpbmcgY3VycmVuY3kgY29kZS4iX3MgfTsKIAogICAgIFVFcnJvckNvZGUg
ZXJyb3JDb2RlID0gVV9aRVJPX0VSUk9SOwogICAgIGF1dG8gY3VycmVuY3lDb2RlcyA9IHN0ZDo6
dW5pcXVlX3B0cjxVRW51bWVyYXRpb24sIElDVURlbGV0ZXI8dWVudW1fY2xvc2U+Pih1Y3Vycl9v
cGVuSVNPQ3VycmVuY2llcyhVQ1VSUl9BTEwsICZlcnJvckNvZGUpKTsKQEAgLTE0NCw3ICsxNDQs
NyBAQCBzdGF0aWMgRXhjZXB0aW9uT3I8dm9pZD4gdmFsaWRhdGVDdXJyZW5jeUNvZGUoY29uc3Qg
U3RyaW5nJiBjdXJyZW5jeUNvZGUpCiBzdGF0aWMgRXhjZXB0aW9uT3I8dm9pZD4gdmFsaWRhdGVN
ZXJjaGFudENhcGFiaWxpdGllcyhjb25zdCBBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdDo6
TWVyY2hhbnRDYXBhYmlsaXRpZXMmIG1lcmNoYW50Q2FwYWJpbGl0aWVzKQogewogICAgIGlmICgh
bWVyY2hhbnRDYXBhYmlsaXRpZXMuc3VwcG9ydHMzRFMgJiYgIW1lcmNoYW50Q2FwYWJpbGl0aWVz
LnN1cHBvcnRzRU1WICYmICFtZXJjaGFudENhcGFiaWxpdGllcy5zdXBwb3J0c0NyZWRpdCAmJiAh
bWVyY2hhbnRDYXBhYmlsaXRpZXMuc3VwcG9ydHNEZWJpdCkKLSAgICAgICAgcmV0dXJuIEV4Y2Vw
dGlvbiB7IFR5cGVFcnJvciwgIk1pc3NpbmcgbWVyY2hhbnQgY2FwYWJpbGl0aWVzLiIgfTsKKyAg
ICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIk1pc3NpbmcgbWVyY2hhbnQgY2Fw
YWJpbGl0aWVzLiJfcyB9OwogCiAgICAgcmV0dXJuIHsgfTsKIH0KQEAgLTE1Miw3ICsxNTIsNyBA
QCBzdGF0aWMgRXhjZXB0aW9uT3I8dm9pZD4gdmFsaWRhdGVNZXJjaGFudENhcGFiaWxpdGllcyhj
b25zdCBBcHBsZVBheVNlc3Npb25QYXltZQogc3RhdGljIEV4Y2VwdGlvbk9yPHZvaWQ+IHZhbGlk
YXRlU3VwcG9ydGVkTmV0d29ya3MoY29uc3QgVmVjdG9yPFN0cmluZz4mIHN1cHBvcnRlZE5ldHdv
cmtzKQogewogICAgIGlmIChzdXBwb3J0ZWROZXR3b3Jrcy5pc0VtcHR5KCkpCi0gICAgICAgIHJl
dHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJNaXNzaW5nIHN1cHBvcnRlZCBuZXR3b3Jrcy4i
IH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJNaXNzaW5nIHN1cHBv
cnRlZCBuZXR3b3Jrcy4iX3MgfTsKIAogICAgIHJldHVybiB7IH07CiB9CkBAIC0xNjEsNyArMTYx
LDcgQEAgc3RhdGljIEV4Y2VwdGlvbk9yPHZvaWQ+IHZhbGlkYXRlU2hpcHBpbmdNZXRob2QoY29u
c3QgQXBwbGVQYXlTaGlwcGluZ01ldGhvZCYgc2gKIHsKICAgICBOU0RlY2ltYWxOdW1iZXIgKmFt
b3VudCA9IFtOU0RlY2ltYWxOdW1iZXIgZGVjaW1hbE51bWJlcldpdGhTdHJpbmc6c2hpcHBpbmdN
ZXRob2QuYW1vdW50IGxvY2FsZTpAeyBOU0xvY2FsZURlY2ltYWxTZXBhcmF0b3IgOiBAIi4iIH1d
OwogICAgIGlmIChhbW91bnQuaW50ZWdlclZhbHVlIDwgMCkKLSAgICAgICAgcmV0dXJuIEV4Y2Vw
dGlvbiB7IFR5cGVFcnJvciwgIlNoaXBwaW5nIG1ldGhvZCBhbW91bnQgbXVzdCBiZSBncmVhdGVy
IHRoYW4gb3IgZXF1YWwgdG8gemVyby4iIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBU
eXBlRXJyb3IsICJTaGlwcGluZyBtZXRob2QgYW1vdW50IG11c3QgYmUgZ3JlYXRlciB0aGFuIG9y
IGVxdWFsIHRvIHplcm8uIl9zIH07CiAKICAgICByZXR1cm4geyB9OwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9QYXltZW50U2Vzc2lvbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRTZXNzaW9uLmNwcAppbmRleCA5NGY5
NDU5YjliNDQ4YTk4NDJlYjBmNDAyM2M2NDJhMDY4ZTgzYzcxLi4yZThmNjZlYTgzYzFkNDcyZGEx
ODdjMDgzNmI1ODE3NmNiYWQ5MWEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2FwcGxlcGF5L1BheW1lbnRTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2FwcGxlcGF5L1BheW1lbnRTZXNzaW9uLmNwcApAQCAtNTIsMjQgKzUyLDI0IEBAIEV4Y2VwdGlv
bk9yPHZvaWQ+IFBheW1lbnRTZXNzaW9uOjpjYW5DcmVhdGVTZXNzaW9uKERvY3VtZW50JiBkb2N1
bWVudCkKICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFNlY3VyaXR5RXJyb3IsICJUaGlyZC1w
YXJ0eSBpZnJhbWVzIGFyZSBub3QgYWxsb3dlZCB0byByZXF1ZXN0IHBheW1lbnRzIHVubGVzcyBl
eHBsaWNpdGx5IGFsbG93ZWQgdmlhIEZlYXR1cmUtUG9saWN5IChwYXltZW50KSJfcyB9OwogCiAg
ICAgaWYgKCFkb2N1bWVudC5mcmFtZSgpKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52
YWxpZEFjY2Vzc0Vycm9yLCAiVHJ5aW5nIHRvIHN0YXJ0IGFuIEFwcGxlIFBheSBzZXNzaW9uIGZy
b20gYW4gaW5hY3RpdmUgZG9jdW1lbnQuIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
SW52YWxpZEFjY2Vzc0Vycm9yLCAiVHJ5aW5nIHRvIHN0YXJ0IGFuIEFwcGxlIFBheSBzZXNzaW9u
IGZyb20gYW4gaW5hY3RpdmUgZG9jdW1lbnQuIl9zIH07CiAKICAgICBpZiAoIWlzU2VjdXJlKCpk
b2N1bWVudC5sb2FkZXIoKSkpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNj
ZXNzRXJyb3IsICJUcnlpbmcgdG8gc3RhcnQgYW4gQXBwbGUgUGF5IHNlc3Npb24gZnJvbSBhbiBp
bnNlY3VyZSBkb2N1bWVudC4iIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlk
QWNjZXNzRXJyb3IsICJUcnlpbmcgdG8gc3RhcnQgYW4gQXBwbGUgUGF5IHNlc3Npb24gZnJvbSBh
biBpbnNlY3VyZSBkb2N1bWVudC4iX3MgfTsKIAogICAgIGF1dG8mIHRvcERvY3VtZW50ID0gZG9j
dW1lbnQudG9wRG9jdW1lbnQoKTsKICAgICBpZiAoJmRvY3VtZW50ICE9ICZ0b3BEb2N1bWVudCkg
ewogICAgICAgICBhdXRvJiB0b3BPcmlnaW4gPSB0b3BEb2N1bWVudC50b3BPcmlnaW4oKTsKIAog
ICAgICAgICBpZiAoIWRvY3VtZW50LnNlY3VyaXR5T3JpZ2luKCkuaXNTYW1lU2NoZW1lSG9zdFBv
cnQodG9wT3JpZ2luKSkKLSAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNj
ZXNzRXJyb3IsICJUcnlpbmcgdG8gc3RhcnQgYW4gQXBwbGUgUGF5IHNlc3Npb24gZnJvbSBhIGRv
Y3VtZW50IHdpdGggYW4gZGlmZmVyZW50IHNlY3VyaXR5IG9yaWdpbiB0aGFuIGl0cyB0b3AtbGV2
ZWwgZnJhbWUuIiB9OworICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nl
c3NFcnJvciwgIlRyeWluZyB0byBzdGFydCBhbiBBcHBsZSBQYXkgc2Vzc2lvbiBmcm9tIGEgZG9j
dW1lbnQgd2l0aCBhbiBkaWZmZXJlbnQgc2VjdXJpdHkgb3JpZ2luIHRoYW4gaXRzIHRvcC1sZXZl
bCBmcmFtZS4iX3MgfTsKIAogICAgICAgICBmb3IgKGF1dG8qIGFuY2VzdG9yRG9jdW1lbnQgPSBk
b2N1bWVudC5wYXJlbnREb2N1bWVudCgpOyBhbmNlc3RvckRvY3VtZW50ICE9ICZ0b3BEb2N1bWVu
dDsgYW5jZXN0b3JEb2N1bWVudCA9IGFuY2VzdG9yRG9jdW1lbnQtPnBhcmVudERvY3VtZW50KCkp
IHsKICAgICAgICAgICAgIGlmICghaXNTZWN1cmUoKmFuY2VzdG9yRG9jdW1lbnQtPmxvYWRlcigp
KSkKLSAgICAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9y
LCAiVHJ5aW5nIHRvIHN0YXJ0IGFuIEFwcGxlIFBheSBzZXNzaW9uIGZyb20gYSBkb2N1bWVudCB3
aXRoIGFuIGluc2VjdXJlIHBhcmVudCBmcmFtZS4iIH07CisgICAgICAgICAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwgIlRyeWluZyB0byBzdGFydCBhbiBBcHBs
ZSBQYXkgc2Vzc2lvbiBmcm9tIGEgZG9jdW1lbnQgd2l0aCBhbiBpbnNlY3VyZSBwYXJlbnQgZnJh
bWUuIl9zIH07CiAKICAgICAgICAgICAgIGlmICghYW5jZXN0b3JEb2N1bWVudC0+c2VjdXJpdHlP
cmlnaW4oKS5pc1NhbWVTY2hlbWVIb3N0UG9ydCh0b3BPcmlnaW4pKQotICAgICAgICAgICAgICAg
IHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJUcnlpbmcgdG8gc3RhcnQg
YW4gQXBwbGUgUGF5IHNlc3Npb24gZnJvbSBhIGRvY3VtZW50IHdpdGggYW4gZGlmZmVyZW50IHNl
Y3VyaXR5IG9yaWdpbiB0aGFuIGl0cyB0b3AtbGV2ZWwgZnJhbWUuIiB9OworICAgICAgICAgICAg
ICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJUcnlpbmcgdG8gc3Rh
cnQgYW4gQXBwbGUgUGF5IHNlc3Npb24gZnJvbSBhIGRvY3VtZW50IHdpdGggYW4gZGlmZmVyZW50
IHNlY3VyaXR5IG9yaWdpbiB0aGFuIGl0cyB0b3AtbGV2ZWwgZnJhbWUuIl9zIH07CiAgICAgICAg
IH0KICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkv
cGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQYXltZW50SGFuZGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2FwcGxlcGF5L3BheW1lbnRyZXF1ZXN0L0FwcGxlUGF5UGF5bWVudEhhbmRsZXIu
Y3BwCmluZGV4IDcwNTUxYWU4NjQ0ODljOWU2NzdjZDkyMTUzZjVkMWUyMjdhNDAyNTQuLmViNTZi
OTFlNWZlZGFjNjZhNzlkMDQ2YTNiZmVjOGRiMjkyNzVkN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQYXltZW50SGFu
ZGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9wYXltZW50cmVx
dWVzdC9BcHBsZVBheVBheW1lbnRIYW5kbGVyLmNwcApAQCAtODksNyArODksNyBAQCBzdGF0aWMg
aW5saW5lIFBheW1lbnRDb29yZGluYXRvciYgcGF5bWVudENvb3JkaW5hdG9yKERvY3VtZW50JiBk
b2N1bWVudCkKIHN0YXRpYyBFeGNlcHRpb25PcjxBcHBsZVBheVJlcXVlc3Q+IGNvbnZlcnRBbmRW
YWxpZGF0ZUFwcGxlUGF5UmVxdWVzdChEb2N1bWVudCYgZG9jdW1lbnQsIEpTQzo6SlNWYWx1ZSBk
YXRhKQogewogICAgIGlmIChkYXRhLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlv
biB7IFR5cGVFcnJvciwgIk1pc3NpbmcgcGF5bWVudCBtZXRob2QgZGF0YS4iIH07CisgICAgICAg
IHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJNaXNzaW5nIHBheW1lbnQgbWV0aG9kIGRh
dGEuIl9zIH07CiAKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKGRv
Y3VtZW50LnZtKCkpOwogICAgIGF1dG8gYXBwbGVQYXlSZXF1ZXN0ID0gY29udmVydERpY3Rpb25h
cnk8QXBwbGVQYXlSZXF1ZXN0PigqZG9jdW1lbnQuZ2xvYmFsT2JqZWN0KCksIGRhdGEpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsaWNhdGlvbm1hbmlmZXN0L0FwcGxp
Y2F0aW9uTWFuaWZlc3RQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsaWNh
dGlvbm1hbmlmZXN0L0FwcGxpY2F0aW9uTWFuaWZlc3RQYXJzZXIuY3BwCmluZGV4IDZkZmZmNDdi
N2UyY2I4OWI1NGY5NWVjNDYyN2QzZDdjZTY5MGY5MGIuLjY4M2RmY2QwYzRlNWQ4MzZhMzk4NGYz
NWVjMjFhZDEwZmEzNjk2NGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBw
bGljYXRpb25tYW5pZmVzdC9BcHBsaWNhdGlvbk1hbmlmZXN0UGFyc2VyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxpY2F0aW9ubWFuaWZlc3QvQXBwbGljYXRpb25NYW5pZmVz
dFBhcnNlci5jcHAKQEAgLTI4Miw5ICsyODIsOSBAQCBzdGF0aWMgYm9vbCBpc0luU2NvcGUoY29u
c3QgVVJMJiBzY29wZVVSTCwgY29uc3QgVVJMJiB0YXJnZXRVUkwpCiAKIFVSTCBBcHBsaWNhdGlv
bk1hbmlmZXN0UGFyc2VyOjpwYXJzZVNjb3BlKGNvbnN0IEpTT046Ok9iamVjdCYgbWFuaWZlc3Qs
IGNvbnN0IFVSTCYgZG9jdW1lbnRVUkwsIGNvbnN0IFVSTCYgc3RhcnRVUkwpCiB7Ci0gICAgVVJM
IGRlZmF1bHRTY29wZSB7IHN0YXJ0VVJMLCAiLi8iIH07CisgICAgVVJMIGRlZmF1bHRTY29wZSB7
IHN0YXJ0VVJMLCAiLi8iX3MgfTsKIAotICAgIGF1dG8gdmFsdWUgPSBtYW5pZmVzdC5nZXRWYWx1
ZSgic2NvcGUiKTsKKyAgICBhdXRvIHZhbHVlID0gbWFuaWZlc3QuZ2V0VmFsdWUoInNjb3BlIl9z
KTsKICAgICBpZiAoIXZhbHVlKQogICAgICAgICByZXR1cm4gZGVmYXVsdFNjb3BlOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL1dpbmRvd09yV29ya2VyR2xvYmFs
U2NvcGVDYWNoZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9XaW5kb3dPcldv
cmtlckdsb2JhbFNjb3BlQ2FjaGVzLmNwcAppbmRleCBhMTc0OTVkNzY1OTY1NmZlMmRkOWNjYTNk
MzcxMTIyMWZlNDhkMTA0Li5kZmUxODhmYzBlZmZkYWMyYmVmMGU5YWNkZTk2YzNlZjYyYjg2YTYy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL1dpbmRvd09yV29ya2Vy
R2xvYmFsU2NvcGVDYWNoZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUv
V2luZG93T3JXb3JrZXJHbG9iYWxTY29wZUNhY2hlcy5jcHAKQEAgLTEyNyw3ICsxMjcsNyBAQCBE
T01DYWNoZVN0b3JhZ2UqIFdvcmtlckdsb2JhbFNjb3BlQ2FjaGVzOjpjYWNoZXMoKSBjb25zdAog
RXhjZXB0aW9uT3I8RE9NQ2FjaGVTdG9yYWdlKj4gV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZUNh
Y2hlczo6Y2FjaGVzKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIERPTVdpbmRvdyYg
d2luZG93KQogewogICAgIGlmIChkb3duY2FzdDxEb2N1bWVudD4oY29udGV4dCkuaXNTYW5kYm94
ZWQoU2FuZGJveE9yaWdpbikpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBTZWN1cml0eUVy
cm9yLCAiQ2FjaGUgc3RvcmFnZSBpcyBkaXNhYmxlZCBiZWNhdXNlIHRoZSBjb250ZXh0IGlzIHNh
bmRib3hlZCBhbmQgbGFja3MgdGhlICdhbGxvdy1zYW1lLW9yaWdpbicgZmxhZyIgfTsKKyAgICAg
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFNlY3VyaXR5RXJyb3IsICJDYWNoZSBzdG9yYWdlIGlzIGRp
c2FibGVkIGJlY2F1c2UgdGhlIGNvbnRleHQgaXMgc2FuZGJveGVkIGFuZCBsYWNrcyB0aGUgJ2Fs
bG93LXNhbWUtb3JpZ2luJyBmbGFnIl9zIH07CiAKICAgICBpZiAoIXdpbmRvdy5pc0N1cnJlbnRs
eURpc3BsYXllZEluRnJhbWUoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0luaXREYXRhUmVnaXN0cnku
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9Jbml0RGF0YVJlZ2lz
dHJ5LmNwcAppbmRleCA2Zjg4OGUxNzg1OGRkYTZkOTQ3MWVjMWY2ZWY1ZDA2NmRmMGU0OTkwLi44
Y2RiY2E3N2FmMzgzMDdiMmI0YzBhNGQyNWExZjBlOTExYWJiMWRlIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0luaXREYXRhUmVnaXN0cnkuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvSW5pdERhdGFSZWdpc3Ry
eS5jcHAKQEAgLTEwNSw3ICsxMDUsNyBAQCBzdGF0aWMgUmVmUHRyPEZyYWdtZW50ZWRTaGFyZWRC
dWZmZXI+IHNhbml0aXplS2V5aWRzKGNvbnN0IEZyYWdtZW50ZWRTaGFyZWRCdWZmZQogICAgIGF1
dG8ga2lkc0FycmF5ID0gSlNPTjo6QXJyYXk6OmNyZWF0ZSgpOwogICAgIGZvciAoYXV0byYgYnVm
ZmVyIDoga2V5SURCdWZmZXIudmFsdWUoKSkKICAgICAgICAga2lkc0FycmF5LT5wdXNoU3RyaW5n
KGJhc2U2NFVSTEVuY29kZVRvU3RyaW5nKGJ1ZmZlci0+bWFrZUNvbnRpZ3VvdXMoKS0+ZGF0YSgp
LCBidWZmZXItPnNpemUoKSkpOwotICAgIG9iamVjdC0+c2V0QXJyYXkoImtpZHMiLCBXVEZNb3Zl
KGtpZHNBcnJheSkpOworICAgIG9iamVjdC0+c2V0QXJyYXkoImtpZHMiX3MsIFdURk1vdmUoa2lk
c0FycmF5KSk7CiAKICAgICBDU3RyaW5nIGpzb25EYXRhID0gb2JqZWN0LT50b0pTT05TdHJpbmco
KS51dGY4KCk7CiAgICAgcmV0dXJuIFNoYXJlZEJ1ZmZlcjo6Y3JlYXRlKGpzb25EYXRhLmRhdGEo
KSwganNvbkRhdGEubGVuZ3RoKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9lbnRyaWVzYXBpL0RPTUZpbGVTeXN0ZW0uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9l
bnRyaWVzYXBpL0RPTUZpbGVTeXN0ZW0uY3BwCmluZGV4IDlmNDgxZGM2MjlhYTc3YTYwZGE1YzVl
ZTA0NGE3MzZiZDQ2ZDNkMjAuLjlhY2E2MThiNWQ2YzcyZTI0MjQ1OTRiOWExOWRlMWE0ZTA0Zjlj
OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW50cmllc2FwaS9ET01GaWxl
U3lzdGVtLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VudHJpZXNhcGkvRE9NRmls
ZVN5c3RlbS5jcHAKQEAgLTU5LDcgKzU5LDcgQEAgc3RhdGljIEV4Y2VwdGlvbk9yPFZlY3RvcjxM
aXN0ZWRDaGlsZD4+IGxpc3REaXJlY3RvcnlXaXRoTWV0YWRhdGEoY29uc3QgU3RyaW5nJgogewog
ICAgIEFTU0VSVCghaXNNYWluVGhyZWFkKCkpOwogICAgIGlmIChGaWxlU3lzdGVtOjpmaWxlVHlw
ZShmdWxsUGF0aCkgIT0gRmlsZVN5c3RlbTo6RmlsZVR5cGU6OkRpcmVjdG9yeSkKLSAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IE5vdEZvdW5kRXJyb3IsICJQYXRoIG5vIGxvbmdlciBleGlzdHMg
b3IgaXMgbm8gbG9uZ2VyIGEgZGlyZWN0b3J5IiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9u
IHsgTm90Rm91bmRFcnJvciwgIlBhdGggbm8gbG9uZ2VyIGV4aXN0cyBvciBpcyBubyBsb25nZXIg
YSBkaXJlY3RvcnkiX3MgfTsKIAogICAgIGF1dG8gY2hpbGROYW1lcyA9IEZpbGVTeXN0ZW06Omxp
c3REaXJlY3RvcnkoZnVsbFBhdGgpOwogICAgIFZlY3RvcjxMaXN0ZWRDaGlsZD4gbGlzdGVkQ2hp
bGRyZW47CkBAIC0xODMsNyArMTgzLDcgQEAgc3RhdGljIEV4Y2VwdGlvbk9yPFN0cmluZz4gdmFs
aWRhdGVQYXRoSXNFeHBlY3RlZFR5cGUoY29uc3QgU3RyaW5nJiBmdWxsUGF0aCwgU3QKICAgICAg
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdEZvdW5kRXJyb3IsICJQYXRoIGRvZXMgbm90IGV4aXN0
Il9zIH07CiAKICAgICBpZiAoKmZpbGVUeXBlICE9IGV4cGVjdGVkVHlwZSkKLSAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IFR5cGVNaXNtYXRjaEVycm9yLCAiRW50cnkgYXQgcGF0aCBkb2VzIG5v
dCBoYXZlIGV4cGVjdGVkIHR5cGUiIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBl
TWlzbWF0Y2hFcnJvciwgIkVudHJ5IGF0IHBhdGggZG9lcyBub3QgaGF2ZSBleHBlY3RlZCB0eXBl
Il9zIH07CiAKICAgICByZXR1cm4gV1RGTW92ZSh2aXJ0dWFsUGF0aCk7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoQm9keUNvbnN1bWVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5Q29uc3VtZXIuY3BwCmluZGV4IDkz
NmE3ZTQzMDU2YzQ1NWUyOWIyNTUwZmI0MDEwYmVlZWMzYjM1ZWIuLjZmNmRjNjdjYzM0YjhkNDA3
YWJmNmRlNDY0YzUyOWM3NDIzNmQ1ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZmV0Y2gvRmV0Y2hCb2R5Q29uc3VtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZmV0Y2gvRmV0Y2hCb2R5Q29uc3VtZXIuY3BwCkBAIC0xNTAsMTAgKzE1MCwxMCBAQCBSZWZQ
dHI8RE9NRm9ybURhdGE+IEZldGNoQm9keUNvbnN1bWVyOjpwYWNrYWdlRm9ybURhdGEoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogYwogICAgICAgICAgICAgY29udGVudERpc3Bvc2l0aW9uUGFyYW1l
dGVyc0JlZ2luKys7CiAKICAgICAgICAgYXV0byBwYXJhbWV0ZXJzID0gcGFyc2VQYXJhbWV0ZXJz
KFN0cmluZ1ZpZXcoaGVhZGVyKS5zdWJzdHJpbmcoY29udGVudERpc3Bvc2l0aW9uUGFyYW1ldGVy
c0JlZ2luLCBjb250ZW50RGlzcG9zaXRpb25FbmQgLSBjb250ZW50RGlzcG9zaXRpb25QYXJhbWV0
ZXJzQmVnaW4pLCAwKTsKLSAgICAgICAgU3RyaW5nIG5hbWUgPSBwYXJhbWV0ZXJzLmdldCgibmFt
ZSIpOworICAgICAgICBTdHJpbmcgbmFtZSA9IHBhcmFtZXRlcnMuZ2V0KCJuYW1lIl9zKTsKICAg
ICAgICAgaWYgKCFuYW1lKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBTdHJp
bmcgZmlsZW5hbWUgPSBwYXJhbWV0ZXJzLmdldCgiZmlsZW5hbWUiKTsKKyAgICAgICAgU3RyaW5n
IGZpbGVuYW1lID0gcGFyYW1ldGVycy5nZXQoImZpbGVuYW1lIl9zKTsKICAgICAgICAgaWYgKCFm
aWxlbmFtZSkKICAgICAgICAgICAgIGZvcm0uYXBwZW5kKG5hbWUsIFN0cmluZzo6ZnJvbVVURjgo
Ym9keUJlZ2luLCBib2R5TGVuZ3RoKSk7CiAgICAgICAgIGVsc2UgewpAQCAtMTc2LDcgKzE3Niw3
IEBAIFJlZlB0cjxET01Gb3JtRGF0YT4gRmV0Y2hCb2R5Q29uc3VtZXI6OnBhY2thZ2VGb3JtRGF0
YShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjCiAgICAgICAgIGlmICghbWltZVR5cGUpCiAgICAg
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogICAgICAgICBpZiAoZXF1YWxJZ25vcmluZ0FT
Q0lJQ2FzZShtaW1lVHlwZS0+dHlwZSwgIm11bHRpcGFydCIpICYmIGVxdWFsSWdub3JpbmdBU0NJ
SUNhc2UobWltZVR5cGUtPnN1YnR5cGUsICJmb3JtLWRhdGEiKSkgewotICAgICAgICAgICAgYXV0
byBpdGVyYXRvciA9IG1pbWVUeXBlLT5wYXJhbWV0ZXJzLmZpbmQoImJvdW5kYXJ5Iik7CisgICAg
ICAgICAgICBhdXRvIGl0ZXJhdG9yID0gbWltZVR5cGUtPnBhcmFtZXRlcnMuZmluZCgiYm91bmRh
cnkiX3MpOwogICAgICAgICAgICAgaWYgKGl0ZXJhdG9yICE9IG1pbWVUeXBlLT5wYXJhbWV0ZXJz
LmVuZCgpKQogICAgICAgICAgICAgICAgIHJldHVybiBpdGVyYXRvci0+dmFsdWU7CiAgICAgICAg
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hIZWFkZXJz
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hIZWFkZXJzLmNwcAppbmRl
eCAwOTBmNWNmNGQwZmYxMTVkODRiZjczM2I3YTdiMTViMzRmMmUzYTVmLi4yNmFmMDhmMWFkNWUx
NGNiZDFhZWQ3NGVmZGVhM2YxYWQzOGJlNjE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ZldGNoL0ZldGNoSGVhZGVycy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9mZXRjaC9GZXRjaEhlYWRlcnMuY3BwCkBAIC0xMDIsNyArMTAyLDcgQEAgc3RhdGljIEV4Y2Vw
dGlvbk9yPHZvaWQ+IGZpbGxIZWFkZXJNYXAoSFRUUEhlYWRlck1hcCYgaGVhZGVycywgY29uc3Qg
RmV0Y2hIZWFkZXIKICAgICAgICAgYXV0byYgc2VxdWVuY2UgPSBzdGQ6OmdldDxWZWN0b3I8VmVj
dG9yPFN0cmluZz4+PihoZWFkZXJzSW5pdCk7CiAgICAgICAgIGZvciAoYXV0byYgaGVhZGVyIDog
c2VxdWVuY2UpIHsKICAgICAgICAgICAgIGlmIChoZWFkZXIuc2l6ZSgpICE9IDIpCi0gICAgICAg
ICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIkhlYWRlciBzdWItc2VxdWVu
Y2UgbXVzdCBjb250YWluIGV4YWN0bHkgdHdvIGl0ZW1zIiB9OworICAgICAgICAgICAgICAgIHJl
dHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJIZWFkZXIgc3ViLXNlcXVlbmNlIG11c3QgY29u
dGFpbiBleGFjdGx5IHR3byBpdGVtcyJfcyB9OwogICAgICAgICAgICAgYXV0byByZXN1bHQgPSBh
cHBlbmRUb0hlYWRlck1hcChoZWFkZXJbMF0sIGhlYWRlclsxXSwgaGVhZGVycywgZ3VhcmQpOwog
ICAgICAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgICAgICAgICBy
ZXR1cm4gcmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9mZXRjaC9GZXRjaExvYWRlci5jcHAKaW5kZXggN2NlYTMyYTk1OGYxNGJkOGM4NzhiYzUxZjQ5
YzFkMWFkYTZkNmEzNy4uZjc0MzM4ZThkMzIyMjcwYTM4MGYyNDlhNjQyZTRlYTBmOTIyODZlMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaExvYWRlci5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaExvYWRlci5jcHAKQEAgLTY5
LDcgKzY5LDcgQEAgdm9pZCBGZXRjaExvYWRlcjo6c3RhcnRMb2FkaW5nQmxvYlVSTChTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBjb25zdCBVUkwKIAogICAgIFJlc291cmNlUmVxdWVz
dCByZXF1ZXN0KG1fdXJsRm9yUmVhZGluZyk7CiAgICAgcmVxdWVzdC5zZXRJbml0aWF0b3JJZGVu
dGlmaWVyKGNvbnRleHQucmVzb3VyY2VSZXF1ZXN0SWRlbnRpZmllcigpKTsKLSAgICByZXF1ZXN0
LnNldEhUVFBNZXRob2QoIkdFVCIpOworICAgIHJlcXVlc3Quc2V0SFRUUE1ldGhvZCgiR0VUIl9z
KTsKIAogICAgIFRocmVhZGFibGVMb2FkZXJPcHRpb25zIG9wdGlvbnM7CiAgICAgb3B0aW9ucy5z
ZW5kTG9hZENhbGxiYWNrcyA9IFNlbmRDYWxsYmFja1BvbGljeTo6U2VuZENhbGxiYWNrczsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lz
dGVtRmlsZUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nl
c3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuY3BwCmluZGV4IDBlOTVmZmRlZTRhZjg1NGU4N2UyNTNh
OWNkZTg2MzQyZjVhMmVkZjguLmFhMzJhOWJiMjJmYjRiYmY5M2JhZGQ2MWQxMjg4YmJmOTA4ZDNk
NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9G
aWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxl
c3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcApAQCAtNTUsNyArNTUsNyBAQCBG
aWxlU3lzdGVtRmlsZUhhbmRsZTo6RmlsZVN5c3RlbUZpbGVIYW5kbGUoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYgY29udGV4dCwgU3RyaQogdm9pZCBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Z2V0Rmls
ZShET01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNlPEZpbGU+PiYmIHByb21pc2UpCiB7CiAg
ICAgaWYgKGlzQ2xvc2VkKCkpCi0gICAgICAgIHJldHVybiBwcm9taXNlLnJlamVjdChFeGNlcHRp
b24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkhhbmRsZSBpcyBjbG9zZWQiIH0pOworICAgICAgICBy
ZXR1cm4gcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJIYW5k
bGUgaXMgY2xvc2VkIl9zIH0pOwogCiAgICAgY29ubmVjdGlvbigpLmdldEZpbGUoaWRlbnRpZmll
cigpLCBbcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH0sIHByb21pc2UgPSBXVEZNb3ZlKHBy
b21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CiAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhj
ZXB0aW9uKCkpCkBAIC03Miw3ICs3Miw3IEBAIHZvaWQgRmlsZVN5c3RlbUZpbGVIYW5kbGU6Omdl
dEZpbGUoRE9NUHJvbWlzZURlZmVycmVkPElETEludGVyZmFjZTxGaWxlPj4mJiBwcm9tCiB2b2lk
IEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKERPTVByb21pc2VE
ZWZlcnJlZDxJRExJbnRlcmZhY2U8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU+PiYmIHByb21p
c2UpCiB7CiAgICAgaWYgKGlzQ2xvc2VkKCkpCi0gICAgICAgIHJldHVybiBwcm9taXNlLnJlamVj
dChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkhhbmRsZSBpcyBjbG9zZWQiIH0pOwor
ICAgICAgICByZXR1cm4gcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJy
b3IsICJIYW5kbGUgaXMgY2xvc2VkIl9zIH0pOwogCiAgICAgY29ubmVjdGlvbigpLmNyZWF0ZVN5
bmNBY2Nlc3NIYW5kbGUoaWRlbnRpZmllcigpLCBbcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlz
IH0sIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CiAg
ICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5jcHAK
aW5kZXggMGI5Zjc4OGU0OTAzZmE3ZTdhZTQyODk3YTAwMmI5NmU4ZGZlMTNkNy4uOWUwY2M4NzRi
MGM3MzQ0NTdjNDljNGMzODZkYWMyYjNiZjRkZTU5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmNw
cApAQCAtNjAsNyArNjAsNyBAQCB2b2lkIEZpbGVTeXN0ZW1IYW5kbGU6OmNsb3NlKCkKIHZvaWQg
RmlsZVN5c3RlbUhhbmRsZTo6aXNTYW1lRW50cnkoRmlsZVN5c3RlbUhhbmRsZSYgaGFuZGxlLCBE
T01Qcm9taXNlRGVmZXJyZWQ8SURMQm9vbGVhbj4mJiBwcm9taXNlKSBjb25zdAogewogICAgIGlm
IChpc0Nsb3NlZCgpKQotICAgICAgICByZXR1cm4gcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsg
SW52YWxpZFN0YXRlRXJyb3IsICJIYW5kbGUgaXMgY2xvc2VkIiB9KTsKKyAgICAgICAgcmV0dXJu
IHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiSGFuZGxlIGlz
IGNsb3NlZCJfcyB9KTsKIAogICAgIGlmIChtX2tpbmQgIT0gaGFuZGxlLmtpbmQoKSB8fCBtX25h
bWUgIT0gaGFuZGxlLm5hbWUoKSkKICAgICAgICAgcmV0dXJuIHByb21pc2UucmVzb2x2ZShmYWxz
ZSk7CkBAIC03Myw3ICs3Myw3IEBAIHZvaWQgRmlsZVN5c3RlbUhhbmRsZTo6aXNTYW1lRW50cnko
RmlsZVN5c3RlbUhhbmRsZSYgaGFuZGxlLCBET01Qcm9taXNlRGVmZXJyZWQ8CiB2b2lkIEZpbGVT
eXN0ZW1IYW5kbGU6Om1vdmUoRmlsZVN5c3RlbUhhbmRsZSYgZGVzdGluYXRpb25IYW5kbGUsIGNv
bnN0IFN0cmluZyYgbmV3TmFtZSwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkK
IHsKICAgICBpZiAoaXNDbG9zZWQoKSkKLSAgICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0KEV4
Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiSGFuZGxlIGlzIGNsb3NlZCIgfSk7CisgICAg
ICAgIHJldHVybiBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwg
IkhhbmRsZSBpcyBjbG9zZWQiX3MgfSk7CiAKICAgICBpZiAoZGVzdGluYXRpb25IYW5kbGUua2lu
ZCgpICE9IEtpbmQ6OkRpcmVjdG9yeSkKICAgICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0KEV4
Y2VwdGlvbiB7IFR5cGVNaXNtYXRjaEVycm9yIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvSURCS2V5RGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJLZXlEYXRhLmNwcAppbmRleCAyYTM3YzUyOGVmNWJmOWQ5NTc3M2Ew
YjEwZjAyNTIyOWJkZTVhNDE4Li40NjBmMTc0YTM4MWFiNmFiYTRjYTI5ODMxNDUyNjk4YjVkNTI5
MGQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlE
YXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlEYXRh
LmNwcApAQCAtMTQ5LDM1ICsxNDksMzUgQEAgdm9pZCBJREJLZXlEYXRhOjppc29sYXRlZENvcHko
Y29uc3QgSURCS2V5RGF0YSYgc291cmNlLCBJREJLZXlEYXRhJiBkZXN0aW5hdGlvbikKIAogdm9p
ZCBJREJLZXlEYXRhOjplbmNvZGUoS2V5ZWRFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewotICAg
IGVuY29kZXIuZW5jb2RlQm9vbCgibnVsbCIsIG1faXNOdWxsKTsKKyAgICBlbmNvZGVyLmVuY29k
ZUJvb2woIm51bGwiX3MsIG1faXNOdWxsKTsKICAgICBpZiAobV9pc051bGwpCiAgICAgICAgIHJl
dHVybjsKIAotICAgIGVuY29kZXIuZW5jb2RlRW51bSgidHlwZSIsIG1fdHlwZSk7CisgICAgZW5j
b2Rlci5lbmNvZGVFbnVtKCJ0eXBlIl9zLCBtX3R5cGUpOwogCiAgICAgc3dpdGNoIChtX3R5cGUp
IHsKICAgICBjYXNlIEluZGV4ZWREQjo6S2V5VHlwZTo6SW52YWxpZDoKICAgICAgICAgcmV0dXJu
OwogICAgIGNhc2UgSW5kZXhlZERCOjpLZXlUeXBlOjpBcnJheTogewogICAgICAgICBhdXRvJiBh
cnJheSA9IHN0ZDo6Z2V0PFZlY3RvcjxJREJLZXlEYXRhPj4obV92YWx1ZSk7Ci0gICAgICAgIGVu
Y29kZXIuZW5jb2RlT2JqZWN0cygiYXJyYXkiLCBhcnJheS5iZWdpbigpLCBhcnJheS5lbmQoKSwg
W10oS2V5ZWRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBJREJLZXlEYXRhJiBrZXkpIHsKKyAgICAg
ICAgZW5jb2Rlci5lbmNvZGVPYmplY3RzKCJhcnJheSJfcywgYXJyYXkuYmVnaW4oKSwgYXJyYXku
ZW5kKCksIFtdKEtleWVkRW5jb2RlciYgZW5jb2RlciwgY29uc3QgSURCS2V5RGF0YSYga2V5KSB7
CiAgICAgICAgICAgICBrZXkuZW5jb2RlKGVuY29kZXIpOwogICAgICAgICB9KTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KICAgICBjYXNlIEluZGV4ZWREQjo6S2V5VHlwZTo6QmluYXJ5OiB7CiAg
ICAgICAgIGF1dG8qIGRhdGEgPSBzdGQ6OmdldDxUaHJlYWRTYWZlRGF0YUJ1ZmZlcj4obV92YWx1
ZSkuZGF0YSgpOwotICAgICAgICBlbmNvZGVyLmVuY29kZUJvb2woImhhc0JpbmFyeSIsICEhZGF0
YSk7CisgICAgICAgIGVuY29kZXIuZW5jb2RlQm9vbCgiaGFzQmluYXJ5Il9zLCAhIWRhdGEpOwog
ICAgICAgICBpZiAoZGF0YSkKLSAgICAgICAgICAgIGVuY29kZXIuZW5jb2RlQnl0ZXMoImJpbmFy
eSIsIGRhdGEtPmRhdGEoKSwgZGF0YS0+c2l6ZSgpKTsKKyAgICAgICAgICAgIGVuY29kZXIuZW5j
b2RlQnl0ZXMoImJpbmFyeSJfcywgZGF0YS0+ZGF0YSgpLCBkYXRhLT5zaXplKCkpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogICAgIGNhc2UgSW5kZXhlZERCOjpLZXlUeXBlOjpTdHJpbmc6Ci0g
ICAgICAgIGVuY29kZXIuZW5jb2RlU3RyaW5nKCJzdHJpbmciLCBzdGQ6OmdldDxTdHJpbmc+KG1f
dmFsdWUpKTsKKyAgICAgICAgZW5jb2Rlci5lbmNvZGVTdHJpbmcoInN0cmluZyJfcywgc3RkOjpn
ZXQ8U3RyaW5nPihtX3ZhbHVlKSk7CiAgICAgICAgIHJldHVybjsKICAgICBjYXNlIEluZGV4ZWRE
Qjo6S2V5VHlwZTo6RGF0ZToKICAgICBjYXNlIEluZGV4ZWREQjo6S2V5VHlwZTo6TnVtYmVyOgot
ICAgICAgICBlbmNvZGVyLmVuY29kZURvdWJsZSgibnVtYmVyIiwgc3RkOjpnZXQ8ZG91YmxlPiht
X3ZhbHVlKSk7CisgICAgICAgIGVuY29kZXIuZW5jb2RlRG91YmxlKCJudW1iZXIiX3MsIHN0ZDo6
Z2V0PGRvdWJsZT4obV92YWx1ZSkpOwogICAgICAgICByZXR1cm47CiAgICAgY2FzZSBJbmRleGVk
REI6OktleVR5cGU6Ok1heDoKICAgICBjYXNlIEluZGV4ZWREQjo6S2V5VHlwZTo6TWluOgpAQCAt
MTg5LDcgKzE4OSw3IEBAIHZvaWQgSURCS2V5RGF0YTo6ZW5jb2RlKEtleWVkRW5jb2RlciYgZW5j
b2RlcikgY29uc3QKIAogYm9vbCBJREJLZXlEYXRhOjpkZWNvZGUoS2V5ZWREZWNvZGVyJiBkZWNv
ZGVyLCBJREJLZXlEYXRhJiByZXN1bHQpCiB7Ci0gICAgaWYgKCFkZWNvZGVyLmRlY29kZUJvb2wo
Im51bGwiLCByZXN1bHQubV9pc051bGwpKQorICAgIGlmICghZGVjb2Rlci5kZWNvZGVCb29sKCJu
dWxsIl9zLCByZXN1bHQubV9pc051bGwpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBp
ZiAocmVzdWx0Lm1faXNOdWxsKQpAQCAtMjA1LDcgKzIwNSw3IEBAIGJvb2wgSURCS2V5RGF0YTo6
ZGVjb2RlKEtleWVkRGVjb2RlciYgZGVjb2RlciwgSURCS2V5RGF0YSYgcmVzdWx0KQogICAgICAg
ICAgICAgfHwgdmFsdWUgPT0gSW5kZXhlZERCOjpLZXlUeXBlOjpOdW1iZXIKICAgICAgICAgICAg
IHx8IHZhbHVlID09IEluZGV4ZWREQjo6S2V5VHlwZTo6TWluOwogICAgIH07Ci0gICAgaWYgKCFk
ZWNvZGVyLmRlY29kZUVudW0oInR5cGUiLCByZXN1bHQubV90eXBlLCBlbnVtRnVuY3Rpb24pKQor
ICAgIGlmICghZGVjb2Rlci5kZWNvZGVFbnVtKCJ0eXBlIl9zLCByZXN1bHQubV90eXBlLCBlbnVt
RnVuY3Rpb24pKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAocmVzdWx0Lm1fdHlw
ZSA9PSBJbmRleGVkREI6OktleVR5cGU6OkludmFsaWQpCkBAIC0yMTksMjYgKzIxOSwyNiBAQCBi
b29sIElEQktleURhdGE6OmRlY29kZShLZXllZERlY29kZXImIGRlY29kZXIsIElEQktleURhdGEm
IHJlc3VsdCkKIAogICAgIGlmIChyZXN1bHQubV90eXBlID09IEluZGV4ZWREQjo6S2V5VHlwZTo6
U3RyaW5nKSB7CiAgICAgICAgIHJlc3VsdC5tX3ZhbHVlID0gU3RyaW5nKCk7Ci0gICAgICAgIHJl
dHVybiBkZWNvZGVyLmRlY29kZVN0cmluZygic3RyaW5nIiwgc3RkOjpnZXQ8U3RyaW5nPihyZXN1
bHQubV92YWx1ZSkpOworICAgICAgICByZXR1cm4gZGVjb2Rlci5kZWNvZGVTdHJpbmcoInN0cmlu
ZyJfcywgc3RkOjpnZXQ8U3RyaW5nPihyZXN1bHQubV92YWx1ZSkpOwogICAgIH0KIAogICAgIGlm
IChyZXN1bHQubV90eXBlID09IEluZGV4ZWREQjo6S2V5VHlwZTo6TnVtYmVyIHx8IHJlc3VsdC5t
X3R5cGUgPT0gSW5kZXhlZERCOjpLZXlUeXBlOjpEYXRlKSB7CiAgICAgICAgIHJlc3VsdC5tX3Zh
bHVlID0gMC4wOwotICAgICAgICByZXR1cm4gZGVjb2Rlci5kZWNvZGVEb3VibGUoIm51bWJlciIs
IHN0ZDo6Z2V0PGRvdWJsZT4ocmVzdWx0Lm1fdmFsdWUpKTsKKyAgICAgICAgcmV0dXJuIGRlY29k
ZXIuZGVjb2RlRG91YmxlKCJudW1iZXIiX3MsIHN0ZDo6Z2V0PGRvdWJsZT4ocmVzdWx0Lm1fdmFs
dWUpKTsKICAgICB9CiAKICAgICBpZiAocmVzdWx0Lm1fdHlwZSA9PSBJbmRleGVkREI6OktleVR5
cGU6OkJpbmFyeSkgewogICAgICAgICByZXN1bHQubV92YWx1ZSA9IFRocmVhZFNhZmVEYXRhQnVm
ZmVyKCk7CiAKICAgICAgICAgYm9vbCBoYXNCaW5hcnlEYXRhOwotICAgICAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlQm9vbCgiaGFzQmluYXJ5IiwgaGFzQmluYXJ5RGF0YSkpCisgICAgICAgIGlmICgh
ZGVjb2Rlci5kZWNvZGVCb29sKCJoYXNCaW5hcnkiX3MsIGhhc0JpbmFyeURhdGEpKQogICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgICAgIGlmICghaGFzQmluYXJ5RGF0YSkKICAgICAg
ICAgICAgIHJldHVybiB0cnVlOwogCiAgICAgICAgIFZlY3Rvcjx1aW50OF90PiBieXRlczsKLSAg
ICAgICAgaWYgKCFkZWNvZGVyLmRlY29kZUJ5dGVzKCJiaW5hcnkiLCBieXRlcykpCisgICAgICAg
IGlmICghZGVjb2Rlci5kZWNvZGVCeXRlcygiYmluYXJ5Il9zLCBieXRlcykpCiAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKICAgICAgICAgcmVzdWx0Lm1fdmFsdWUgPSBUaHJlYWRTYWZlRGF0
YUJ1ZmZlcjo6Y3JlYXRlKFdURk1vdmUoYnl0ZXMpKTsKQEAgLTI1Miw3ICsyNTIsNyBAQCBib29s
IElEQktleURhdGE6OmRlY29kZShLZXllZERlY29kZXImIGRlY29kZXIsIElEQktleURhdGEmIHJl
c3VsdCkKICAgICB9OwogICAgIAogICAgIHJlc3VsdC5tX3ZhbHVlID0gVmVjdG9yPElEQktleURh
dGE+KCk7Ci0gICAgcmV0dXJuIGRlY29kZXIuZGVjb2RlT2JqZWN0cygiYXJyYXkiLCBzdGQ6Omdl
dDxWZWN0b3I8SURCS2V5RGF0YT4+KHJlc3VsdC5tX3ZhbHVlKSwgYXJyYXlGdW5jdGlvbik7Cisg
ICAgcmV0dXJuIGRlY29kZXIuZGVjb2RlT2JqZWN0cygiYXJyYXkiX3MsIHN0ZDo6Z2V0PFZlY3Rv
cjxJREJLZXlEYXRhPj4ocmVzdWx0Lm1fdmFsdWUpLCBhcnJheUZ1bmN0aW9uKTsKIH0KIAogaW50
IElEQktleURhdGE6OmNvbXBhcmUoY29uc3QgSURCS2V5RGF0YSYgb3RoZXIpIGNvbnN0CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlSYW5nZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJLZXlSYW5nZS5jcHAKaW5kZXgg
MTRmMzAzYTA0YzIzYThiZjQ3YmYwNjU5ZjkyODc5MjRmOTYxM2FmYi4uZGVmNTA0ODE3YWQwMzgy
MjQ3NGRkMmY1ZDE2ZDM2OTBiYjk3ZjRhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCS2V5UmFuZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQktleVJhbmdlLmNwcApAQCAtMTM3LDcgKzEzNyw3IEBAIEV4Y2VwdGlv
bk9yPGJvb2w+IElEQktleVJhbmdlOjppbmNsdWRlcyhKU0M6OkpTR2xvYmFsT2JqZWN0JiBzdGF0
ZSwgSlNDOjpKU1ZhbHVlCiAgICAgYXV0byBrZXkgPSBzY3JpcHRWYWx1ZVRvSURCS2V5KHN0YXRl
LCBrZXlWYWx1ZSk7CiAgICAgRVhDRVBUSU9OX0FTU0VSVF9VTlVTRUQoc2NvcGUsICFzY29wZS5l
eGNlcHRpb24oKSB8fCAha2V5LT5pc1ZhbGlkKCkpOwogICAgIGlmICgha2V5LT5pc1ZhbGlkKCkp
Ci0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBEYXRhRXJyb3IsICJGYWlsZWQgdG8gZXhlY3V0
ZSAnaW5jbHVkZXMnIG9uICdJREJLZXlSYW5nZSc6IFRoZSBwYXNzZWQtaW4gdmFsdWUgaXMgbm90
IGEgdmFsaWQgSW5kZXhlZERCIGtleS4iIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBE
YXRhRXJyb3IsICJGYWlsZWQgdG8gZXhlY3V0ZSAnaW5jbHVkZXMnIG9uICdJREJLZXlSYW5nZSc6
IFRoZSBwYXNzZWQtaW4gdmFsdWUgaXMgbm90IGEgdmFsaWQgSW5kZXhlZERCIGtleS4iX3MgfTsK
IAogICAgIGlmIChtX2xvd2VyKSB7CiAgICAgICAgIGludCBjb21wYXJlID0gbV9sb3dlci0+Y29t
cGFyZShrZXkuZ2V0KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRl
eGVkZGIvc2VydmVyL0lEQlNlcmlhbGl6YXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcmlhbGl6YXRpb24uY3BwCmluZGV4IDJhMmMxZmMzMjk1
ODA1ZDUyZmQ1NmFmMzBiNDU1YWUyY2NjYzQ4NzcuLjMzZDRkNDFjOTI3N2JmZjI5NzEzNzUyYzg5
MWQyYzkwOTFhZDM1Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NlcnZlci9JREJTZXJpYWxpemF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VyaWFsaXphdGlvbi5jcHAKQEAgLTQ1LDE3ICs0NSwx
NyBAQCBSZWZQdHI8U2hhcmVkQnVmZmVyPiBzZXJpYWxpemVJREJLZXlQYXRoKGNvbnN0IHN0ZDo6
b3B0aW9uYWw8SURCS2V5UGF0aD4mIGtleVBhdAogCiAgICAgaWYgKGtleVBhdGgpIHsKICAgICAg
ICAgYXV0byB2aXNpdG9yID0gV1RGOjptYWtlVmlzaXRvcihbJl0oY29uc3QgU3RyaW5nJiBzdHJp
bmcpIHsKLSAgICAgICAgICAgIGVuY29kZXItPmVuY29kZUVudW0oInR5cGUiLCBLZXlQYXRoVHlw
ZTo6U3RyaW5nKTsKLSAgICAgICAgICAgIGVuY29kZXItPmVuY29kZVN0cmluZygic3RyaW5nIiwg
c3RyaW5nKTsKKyAgICAgICAgICAgIGVuY29kZXItPmVuY29kZUVudW0oInR5cGUiX3MsIEtleVBh
dGhUeXBlOjpTdHJpbmcpOworICAgICAgICAgICAgZW5jb2Rlci0+ZW5jb2RlU3RyaW5nKCJzdHJp
bmciX3MsIHN0cmluZyk7CiAgICAgICAgIH0sIFsmXShjb25zdCBWZWN0b3I8U3RyaW5nPiYgdmVj
dG9yKSB7Ci0gICAgICAgICAgICBlbmNvZGVyLT5lbmNvZGVFbnVtKCJ0eXBlIiwgS2V5UGF0aFR5
cGU6OkFycmF5KTsKLSAgICAgICAgICAgIGVuY29kZXItPmVuY29kZU9iamVjdHMoImFycmF5Iiwg
dmVjdG9yLmJlZ2luKCksIHZlY3Rvci5lbmQoKSwgW10oV2ViQ29yZTo6S2V5ZWRFbmNvZGVyJiBl
bmNvZGVyLCBjb25zdCBTdHJpbmcmIHN0cmluZykgewotICAgICAgICAgICAgICAgIGVuY29kZXIu
ZW5jb2RlU3RyaW5nKCJzdHJpbmciLCBzdHJpbmcpOworICAgICAgICAgICAgZW5jb2Rlci0+ZW5j
b2RlRW51bSgidHlwZSJfcywgS2V5UGF0aFR5cGU6OkFycmF5KTsKKyAgICAgICAgICAgIGVuY29k
ZXItPmVuY29kZU9iamVjdHMoImFycmF5Il9zLCB2ZWN0b3IuYmVnaW4oKSwgdmVjdG9yLmVuZCgp
LCBbXShXZWJDb3JlOjpLZXllZEVuY29kZXImIGVuY29kZXIsIGNvbnN0IFN0cmluZyYgc3RyaW5n
KSB7CisgICAgICAgICAgICAgICAgZW5jb2Rlci5lbmNvZGVTdHJpbmcoInN0cmluZyJfcywgc3Ry
aW5nKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICB9KTsKICAgICAgICAgc3RkOjp2aXNpdCh2
aXNpdG9yLCBrZXlQYXRoLnZhbHVlKCkpOwogICAgIH0gZWxzZQotICAgICAgICBlbmNvZGVyLT5l
bmNvZGVFbnVtKCJ0eXBlIiwgS2V5UGF0aFR5cGU6Ok51bGwpOworICAgICAgICBlbmNvZGVyLT5l
bmNvZGVFbnVtKCJ0eXBlIl9zLCBLZXlQYXRoVHlwZTo6TnVsbCk7CiAKICAgICByZXR1cm4gZW5j
b2Rlci0+ZmluaXNoRW5jb2RpbmcoKTsKIH0KQEAgLTY4LDcgKzY4LDcgQEAgYm9vbCBkZXNlcmlh
bGl6ZUlEQktleVBhdGgoY29uc3QgdWludDhfdCogZGF0YSwgc2l6ZV90IHNpemUsIHN0ZDo6b3B0
aW9uYWw8SURCS2UKICAgICBhdXRvIGRlY29kZXIgPSBLZXllZERlY29kZXI6OmRlY29kZXIoZGF0
YSwgc2l6ZSk7CiAKICAgICBLZXlQYXRoVHlwZSB0eXBlOwotICAgIGJvb2wgc3VjY2VlZGVkID0g
ZGVjb2Rlci0+ZGVjb2RlRW51bSgidHlwZSIsIHR5cGUsIFtdKEtleVBhdGhUeXBlIHZhbHVlKSB7
CisgICAgYm9vbCBzdWNjZWVkZWQgPSBkZWNvZGVyLT5kZWNvZGVFbnVtKCJ0eXBlIl9zLCB0eXBl
LCBbXShLZXlQYXRoVHlwZSB2YWx1ZSkgewogICAgICAgICByZXR1cm4gdmFsdWUgPT0gS2V5UGF0
aFR5cGU6Ok51bGwgfHwgdmFsdWUgPT0gS2V5UGF0aFR5cGU6OlN0cmluZyB8fCB2YWx1ZSA9PSBL
ZXlQYXRoVHlwZTo6QXJyYXk7CiAgICAgfSk7CiAgICAgaWYgKCFzdWNjZWVkZWQpCkBAIC03OSwx
NSArNzksMTUgQEAgYm9vbCBkZXNlcmlhbGl6ZUlEQktleVBhdGgoY29uc3QgdWludDhfdCogZGF0
YSwgc2l6ZV90IHNpemUsIHN0ZDo6b3B0aW9uYWw8SURCS2UKICAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBLZXlQYXRoVHlwZTo6U3RyaW5nOiB7CiAgICAgICAgIFN0cmluZyBzdHJpbmc7Ci0gICAg
ICAgIGlmICghZGVjb2Rlci0+ZGVjb2RlU3RyaW5nKCJzdHJpbmciLCBzdHJpbmcpKQorICAgICAg
ICBpZiAoIWRlY29kZXItPmRlY29kZVN0cmluZygic3RyaW5nIl9zLCBzdHJpbmcpKQogICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICByZXN1bHQgPSBJREJLZXlQYXRoKFdURk1vdmUo
c3RyaW5nKSk7CiAgICAgICAgIGJyZWFrOwogICAgIH0KICAgICBjYXNlIEtleVBhdGhUeXBlOjpB
cnJheTogewogICAgICAgICBWZWN0b3I8U3RyaW5nPiB2ZWN0b3I7Ci0gICAgICAgIHN1Y2NlZWRl
ZCA9IGRlY29kZXItPmRlY29kZU9iamVjdHMoImFycmF5IiwgdmVjdG9yLCBbXShLZXllZERlY29k
ZXImIGRlY29kZXIsIFN0cmluZyYgcmVzdWx0KSB7Ci0gICAgICAgICAgICByZXR1cm4gZGVjb2Rl
ci5kZWNvZGVTdHJpbmcoInN0cmluZyIsIHJlc3VsdCk7CisgICAgICAgIHN1Y2NlZWRlZCA9IGRl
Y29kZXItPmRlY29kZU9iamVjdHMoImFycmF5Il9zLCB2ZWN0b3IsIFtdKEtleWVkRGVjb2RlciYg
ZGVjb2RlciwgU3RyaW5nJiByZXN1bHQpIHsKKyAgICAgICAgICAgIHJldHVybiBkZWNvZGVyLmRl
Y29kZVN0cmluZygic3RyaW5nIl9zLCByZXN1bHQpOwogICAgICAgICB9KTsKICAgICAgICAgaWYg
KCFzdWNjZWVkZWQpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwCmluZGV4IGU4
OTg3YTY5MWZlMjNhNjhlMzI5MjNhOGE0YTBkNWFmYWMwOTU2YjcuLjMyMGM2YjFiYjAxNjViZGNl
ZDc0YzBjOTc2NThjNGViNTA4ZDE2NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwCkBAIC01ODgsOCArNTg4LDggQEAg
dm9pZCBJREJTZXJ2ZXI6OmNsb3NlQW5kRGVsZXRlRGF0YWJhc2VzTW9kaWZpZWRTaW5jZShXYWxs
VGltZSBtb2RpZmljYXRpb25UaW1lKQogICAgIG1fdW5pcXVlSURCRGF0YWJhc2VNYXAuY2xlYXIo
KTsKIAogICAgIGlmICghbV9kYXRhYmFzZURpcmVjdG9yeVBhdGguaXNFbXB0eSgpKSB7Ci0gICAg
ICAgIHJlbW92ZURhdGFiYXNlc01vZGlmaWVkU2luY2VGb3JWZXJzaW9uKG1vZGlmaWNhdGlvblRp
bWUsICJ2MCIpOwotICAgICAgICByZW1vdmVEYXRhYmFzZXNNb2RpZmllZFNpbmNlRm9yVmVyc2lv
bihtb2RpZmljYXRpb25UaW1lLCAidjEiKTsKKyAgICAgICAgcmVtb3ZlRGF0YWJhc2VzTW9kaWZp
ZWRTaW5jZUZvclZlcnNpb24obW9kaWZpY2F0aW9uVGltZSwgInYwIl9zKTsKKyAgICAgICAgcmVt
b3ZlRGF0YWJhc2VzTW9kaWZpZWRTaW5jZUZvclZlcnNpb24obW9kaWZpY2F0aW9uVGltZSwgInYx
Il9zKTsKICAgICB9CiB9CiAKQEAgLTYyNCw4ICs2MjQsOCBAQCB2b2lkIElEQlNlcnZlcjo6Y2xv
c2VBbmREZWxldGVEYXRhYmFzZXNGb3JPcmlnaW5zKGNvbnN0IFZlY3RvcjxTZWN1cml0eU9yaWdp
bkRhdAogICAgIH0pOwogCiAgICAgaWYgKCFtX2RhdGFiYXNlRGlyZWN0b3J5UGF0aC5pc0VtcHR5
KCkpIHsKLSAgICAgICAgcmVtb3ZlRGF0YWJhc2VzV2l0aE9yaWdpbnNGb3JWZXJzaW9uKG9yaWdp
bnMsICJ2MCIpOwotICAgICAgICByZW1vdmVEYXRhYmFzZXNXaXRoT3JpZ2luc0ZvclZlcnNpb24o
b3JpZ2lucywgInYxIik7CisgICAgICAgIHJlbW92ZURhdGFiYXNlc1dpdGhPcmlnaW5zRm9yVmVy
c2lvbihvcmlnaW5zLCAidjAiX3MpOworICAgICAgICByZW1vdmVEYXRhYmFzZXNXaXRoT3JpZ2lu
c0ZvclZlcnNpb24ob3JpZ2lucywgInYxIl9zKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlJREJCYWNraW5nU3Rv
cmUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUlE
QkJhY2tpbmdTdG9yZS5jcHAKaW5kZXggZDYzMzUwMzA5OTMwNTViOWIxMmI3ODQ1NjU1ZGE4MzM3
MmIxYTU1MC4uMWMyN2FkNjE3OWYxYmVhZDBmZjFhNmRlY2ZiOWFlMmI1ZTk1M2Y5YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUlEQkJh
Y2tpbmdTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2Vy
dmVyL01lbW9yeUlEQkJhY2tpbmdTdG9yZS5jcHAKQEAgLTc4LDcgKzc4LDcgQEAgSURCRXJyb3Ig
TWVtb3J5SURCQmFja2luZ1N0b3JlOjpiZWdpblRyYW5zYWN0aW9uKGNvbnN0IElEQlRyYW5zYWN0
aW9uSW5mbyYgaW5mbykKICAgICBMT0coSW5kZXhlZERCLCAiTWVtb3J5SURCQmFja2luZ1N0b3Jl
OjpiZWdpblRyYW5zYWN0aW9uIik7CiAKICAgICBpZiAobV90cmFuc2FjdGlvbnMuY29udGFpbnMo
aW5mby5pZGVudGlmaWVyKCkpKQotICAgICAgICByZXR1cm4gSURCRXJyb3IgeyBJbnZhbGlkU3Rh
dGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgYXNrZWQgdG8gY3JlYXRlIHRyYW5zYWN0aW9uIGl0IGFs
cmVhZHkgaGFzIGEgcmVjb3JkIG9mIiB9OworICAgICAgICByZXR1cm4gSURCRXJyb3IgeyBJbnZh
bGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgYXNrZWQgdG8gY3JlYXRlIHRyYW5zYWN0aW9u
IGl0IGFscmVhZHkgaGFzIGEgcmVjb3JkIG9mIl9zIH07CiAKICAgICBhdXRvIHRyYW5zYWN0aW9u
ID0gTWVtb3J5QmFja2luZ1N0b3JlVHJhbnNhY3Rpb246OmNyZWF0ZSgqdGhpcywgaW5mbyk7CiAK
QEAgLTEwNCw3ICsxMDQsNyBAQCBJREJFcnJvciBNZW1vcnlJREJCYWNraW5nU3RvcmU6OmFib3J0
VHJhbnNhY3Rpb24oY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cgogCiAgICAgYXV0byB0
cmFuc2FjdGlvbiA9IG1fdHJhbnNhY3Rpb25zLnRha2UodHJhbnNhY3Rpb25JZGVudGlmaWVyKTsK
ICAgICBpZiAoIXRyYW5zYWN0aW9uKQotICAgICAgICByZXR1cm4gSURCRXJyb3IgeyBJbnZhbGlk
U3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgYXNrZWQgdG8gYWJvcnQgdHJhbnNhY3Rpb24gaXQg
ZGlkbid0IGhhdmUgcmVjb3JkIG9mIiB9OworICAgICAgICByZXR1cm4gSURCRXJyb3IgeyBJbnZh
bGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgYXNrZWQgdG8gYWJvcnQgdHJhbnNhY3Rpb24g
aXQgZGlkbid0IGhhdmUgcmVjb3JkIG9mIl9zIH07CiAKICAgICB0cmFuc2FjdGlvbi0+YWJvcnQo
KTsKIApAQCAtMTE3LDcgKzExNyw3IEBAIElEQkVycm9yIE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6
Y29tbWl0VHJhbnNhY3Rpb24oY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0CiAKICAgICBh
dXRvIHRyYW5zYWN0aW9uID0gbV90cmFuc2FjdGlvbnMudGFrZSh0cmFuc2FjdGlvbklkZW50aWZp
ZXIpOwogICAgIGlmICghdHJhbnNhY3Rpb24pCi0gICAgICAgIHJldHVybiBJREJFcnJvciB7IElu
dmFsaWRTdGF0ZUVycm9yLCAiQmFja2luZyBzdG9yZSBhc2tlZCB0byBjb21taXQgdHJhbnNhY3Rp
b24gaXQgZGlkbid0IGhhdmUgcmVjb3JkIG9mIiB9OworICAgICAgICByZXR1cm4gSURCRXJyb3Ig
eyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgYXNrZWQgdG8gY29tbWl0IHRyYW5z
YWN0aW9uIGl0IGRpZG4ndCBoYXZlIHJlY29yZCBvZiJfcyB9OwogCiAgICAgdHJhbnNhY3Rpb24t
PmNvbW1pdCgpOwogCkBAIC00NzMsNyArNDczLDcgQEAgSURCRXJyb3IgTWVtb3J5SURCQmFja2lu
Z1N0b3JlOjpnZW5lcmF0ZUtleU51bWJlcihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHQK
IAogICAgIGtleU51bWJlciA9IG9iamVjdFN0b3JlLT5jdXJyZW50S2V5R2VuZXJhdG9yVmFsdWUo
KTsKICAgICBpZiAoa2V5TnVtYmVyID4gbWF4R2VuZXJhdGVkS2V5VmFsdWUpCi0gICAgICAgIHJl
dHVybiBJREJFcnJvciB7IENvbnN0cmFpbnRFcnJvciwgIkNhbm5vdCBnZW5lcmF0ZSBuZXcga2V5
IHZhbHVlIG92ZXIgMl41MyBmb3Igb2JqZWN0IHN0b3JlIG9wZXJhdGlvbiIgfTsKKyAgICAgICAg
cmV0dXJuIElEQkVycm9yIHsgQ29uc3RyYWludEVycm9yLCAiQ2Fubm90IGdlbmVyYXRlIG5ldyBr
ZXkgdmFsdWUgb3ZlciAyXjUzIGZvciBvYmplY3Qgc3RvcmUgb3BlcmF0aW9uIl9zIH07CiAKICAg
ICBvYmplY3RTdG9yZS0+c2V0S2V5R2VuZXJhdG9yVmFsdWUoa2V5TnVtYmVyICsgMSk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlP
YmplY3RTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIv
TWVtb3J5T2JqZWN0U3RvcmUuY3BwCmluZGV4IDdlZjlkMGEzODdmNzI3ZDg1ZWMwZGVlZjZkM2Nh
ZTBkZWQwMTU4Y2YuLjg5MjMxYjRhZTI0OTY4ZTg5YjBkNzU4MTE1MWY1MjhlZTNlMmZiNGUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlP
YmplY3RTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2Vy
dmVyL01lbW9yeU9iamVjdFN0b3JlLmNwcApAQCAtMzEwLDcgKzMxMCw3IEBAIElEQkVycm9yIE1l
bW9yeU9iamVjdFN0b3JlOjp1cGRhdGVJbmRleGVzRm9yUHV0UmVjb3JkKGNvbnN0IElEQktleURh
dGEmIGtleSwgY29uCiAgICAgICAgIGF1dG8qIGluZGV4ID0gbV9pbmRleGVzQnlJZGVudGlmaWVy
LmdldChpbmRleElEKTsKICAgICAgICAgQVNTRVJUKGluZGV4KTsKICAgICAgICAgaWYgKCFpbmRl
eCkgewotICAgICAgICAgICAgZXJyb3IgPSBJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAi
TWlzc2luZyBpbmRleCBtZXRhZGF0YSIgfTsKKyAgICAgICAgICAgIGVycm9yID0gSURCRXJyb3Ig
eyBJbnZhbGlkU3RhdGVFcnJvciwgIk1pc3NpbmcgaW5kZXggbWV0YWRhdGEiX3MgfTsKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9TUUxpdGVJREJCYWNraW5nU3RvcmUuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5j
cHAKaW5kZXggMmZhZjNlOTVkMzFjOTg5ZmNlMTJlMDU3ZjA2YzIyZTJmZjczYzQ2ZS4uNGUyMGE0
YjliZWIzZGZlZGY1OWM1MDM4YmJjNDJhODE5ZDUyOGMwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJh
Y2tpbmdTdG9yZS5jcHAKQEAgLTk4LDM3ICs5OCwzNyBAQCBzdGF0aWMgaW50IGlkYktleUNvbGxh
dGUoaW50IGFMZW5ndGgsIGNvbnN0IHZvaWQqIGFCdWZmZXIsIGludCBiTGVuZ3RoLCBjb25zdCB2
bwogICAgIHJldHVybiBhLmNvbXBhcmUoYik7CiB9CiAKLXN0YXRpYyBjb25zdCBTdHJpbmcgdjFS
ZWNvcmRzVGFibGVTY2hlbWEoY29uc3QgU3RyaW5nJiB0YWJsZU5hbWUpCitzdGF0aWMgY29uc3Qg
U3RyaW5nIHYxUmVjb3Jkc1RhYmxlU2NoZW1hKEFTQ0lJTGl0ZXJhbCB0YWJsZU5hbWUpCiB7CiAg
ICAgcmV0dXJuIG1ha2VTdHJpbmcoIkNSRUFURSBUQUJMRSAiLCB0YWJsZU5hbWUsICIgKG9iamVj
dFN0b3JlSUQgSU5URUdFUiBOT1QgTlVMTCBPTiBDT05GTElDVCBGQUlMLCBrZXkgVEVYVCBDT0xM
QVRFIElEQktFWSBOT1QgTlVMTCBPTiBDT05GTElDVCBGQUlMIFVOSVFVRSBPTiBDT05GTElDVCBS
RVBMQUNFLCB2YWx1ZSBOT1QgTlVMTCBPTiBDT05GTElDVCBGQUlMKSIpOwogfQogCiBzdGF0aWMg
Y29uc3QgU3RyaW5nJiB2MVJlY29yZHNUYWJsZVNjaGVtYSgpCiB7Ci0gICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPFN0cmluZz4gdjFSZWNvcmRzVGFibGVTY2hlbWFTdHJpbmcodjFSZWNvcmRzVGFi
bGVTY2hlbWEoIlJlY29yZHMiKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4g
djFSZWNvcmRzVGFibGVTY2hlbWFTdHJpbmcodjFSZWNvcmRzVGFibGVTY2hlbWEoIlJlY29yZHMi
X3MpKTsKICAgICByZXR1cm4gdjFSZWNvcmRzVGFibGVTY2hlbWFTdHJpbmc7CiB9CiAKIHN0YXRp
YyBjb25zdCBTdHJpbmcmIHYxUmVjb3Jkc1RhYmxlU2NoZW1hQWx0ZXJuYXRlKCkKIHsKLSAgICBz
dGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiB2MVJlY29yZHNUYWJsZVNjaGVtYVN0cmluZyh2
MVJlY29yZHNUYWJsZVNjaGVtYSgiXCJSZWNvcmRzXCIiKSk7CisgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPFN0cmluZz4gdjFSZWNvcmRzVGFibGVTY2hlbWFTdHJpbmcodjFSZWNvcmRzVGFibGVT
Y2hlbWEoIlwiUmVjb3Jkc1wiIl9zKSk7CiAgICAgcmV0dXJuIHYxUmVjb3Jkc1RhYmxlU2NoZW1h
U3RyaW5nOwogfQogCi1zdGF0aWMgY29uc3QgU3RyaW5nIHYyUmVjb3Jkc1RhYmxlU2NoZW1hKGNv
bnN0IFN0cmluZyYgdGFibGVOYW1lKQorc3RhdGljIGNvbnN0IFN0cmluZyB2MlJlY29yZHNUYWJs
ZVNjaGVtYShBU0NJSUxpdGVyYWwgdGFibGVOYW1lKQogewogICAgIHJldHVybiBtYWtlU3RyaW5n
KCJDUkVBVEUgVEFCTEUgIiwgdGFibGVOYW1lLCAiIChvYmplY3RTdG9yZUlEIElOVEVHRVIgTk9U
IE5VTEwgT04gQ09ORkxJQ1QgRkFJTCwga2V5IFRFWFQgQ09MTEFURSBJREJLRVkgTk9UIE5VTEwg
T04gQ09ORkxJQ1QgRkFJTCwgdmFsdWUgTk9UIE5VTEwgT04gQ09ORkxJQ1QgRkFJTCkiKTsKIH0K
IAogc3RhdGljIGNvbnN0IFN0cmluZyYgdjJSZWNvcmRzVGFibGVTY2hlbWEoKQogewotICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHYyUmVjb3Jkc1RhYmxlU2NoZW1hU3RyaW5nKHYy
UmVjb3Jkc1RhYmxlU2NoZW1hKCJSZWNvcmRzIikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxTdHJpbmc+IHYyUmVjb3Jkc1RhYmxlU2NoZW1hU3RyaW5nKHYyUmVjb3Jkc1RhYmxlU2NoZW1h
KCJSZWNvcmRzIl9zKSk7CiAgICAgcmV0dXJuIHYyUmVjb3Jkc1RhYmxlU2NoZW1hU3RyaW5nOwog
fQogCiBzdGF0aWMgY29uc3QgU3RyaW5nJiB2MlJlY29yZHNUYWJsZVNjaGVtYUFsdGVybmF0ZSgp
CiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0cmluZz4gdjJSZWNvcmRzVGFibGVTY2hl
bWFTdHJpbmcodjJSZWNvcmRzVGFibGVTY2hlbWEoIlwiUmVjb3Jkc1wiIikpOworICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHYyUmVjb3Jkc1RhYmxlU2NoZW1hU3RyaW5nKHYyUmVj
b3Jkc1RhYmxlU2NoZW1hKCJcIlJlY29yZHNcIiJfcykpOwogICAgIHJldHVybiB2MlJlY29yZHNU
YWJsZVNjaGVtYVN0cmluZzsKIH0KIApAQCAtMTQ3LDM3ICsxNDcsMzcgQEAgc3RhdGljIEFTQ0lJ
TGl0ZXJhbCB2M1JlY29yZHNUYWJsZVNjaGVtYVRlbXAoKQogICAgIHJldHVybiBUQUJMRV9TQ0hF
TUFfUFJFRklYICJfVGVtcF9SZWNvcmRzIiBWM19SRUNPUkRTX1RBQkxFX1NDSEVNQV9TVUZGSVg7
CiB9CiAKLXN0YXRpYyBjb25zdCBTdHJpbmcgdjFJbmRleFJlY29yZHNUYWJsZVNjaGVtYShjb25z
dCBTdHJpbmcmIHRhYmxlTmFtZSkKK3N0YXRpYyBjb25zdCBTdHJpbmcgdjFJbmRleFJlY29yZHNU
YWJsZVNjaGVtYShBU0NJSUxpdGVyYWwgdGFibGVOYW1lKQogewogICAgIHJldHVybiBtYWtlU3Ry
aW5nKCJDUkVBVEUgVEFCTEUgIiwgdGFibGVOYW1lLCAiIChpbmRleElEIElOVEVHRVIgTk9UIE5V
TEwgT04gQ09ORkxJQ1QgRkFJTCwgb2JqZWN0U3RvcmVJRCBJTlRFR0VSIE5PVCBOVUxMIE9OIENP
TkZMSUNUIEZBSUwsIGtleSBURVhUIENPTExBVEUgSURCS0VZIE5PVCBOVUxMIE9OIENPTkZMSUNU
IEZBSUwsIHZhbHVlIE5PVCBOVUxMIE9OIENPTkZMSUNUIEZBSUwpIik7CiB9CiAKIHN0YXRpYyBj
b25zdCBTdHJpbmcmIHYxSW5kZXhSZWNvcmRzVGFibGVTY2hlbWEoKQogewotICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxTdHJpbmc+IHYxSW5kZXhSZWNvcmRzVGFibGVTY2hlbWFTdHJpbmcodjFJ
bmRleFJlY29yZHNUYWJsZVNjaGVtYSgiSW5kZXhSZWNvcmRzIikpOworICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxTdHJpbmc+IHYxSW5kZXhSZWNvcmRzVGFibGVTY2hlbWFTdHJpbmcodjFJbmRl
eFJlY29yZHNUYWJsZVNjaGVtYSgiSW5kZXhSZWNvcmRzIl9zKSk7CiAgICAgcmV0dXJuIHYxSW5k
ZXhSZWNvcmRzVGFibGVTY2hlbWFTdHJpbmc7CiB9CiAKIHN0YXRpYyBjb25zdCBTdHJpbmcmIHYx
SW5kZXhSZWNvcmRzVGFibGVTY2hlbWFBbHRlcm5hdGUoKQogewotICAgIHN0YXRpYyBOZXZlckRl
c3Ryb3llZDxTdHJpbmc+IHYxSW5kZXhSZWNvcmRzVGFibGVTY2hlbWFTdHJpbmcodjFJbmRleFJl
Y29yZHNUYWJsZVNjaGVtYSgiXCJJbmRleFJlY29yZHNcIiIpKTsKKyAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8U3RyaW5nPiB2MUluZGV4UmVjb3Jkc1RhYmxlU2NoZW1hU3RyaW5nKHYxSW5kZXhS
ZWNvcmRzVGFibGVTY2hlbWEoIlwiSW5kZXhSZWNvcmRzXCIiX3MpKTsKICAgICByZXR1cm4gdjFJ
bmRleFJlY29yZHNUYWJsZVNjaGVtYVN0cmluZzsKIH0KIAotc3RhdGljIGNvbnN0IFN0cmluZyB2
MkluZGV4UmVjb3Jkc1RhYmxlU2NoZW1hKGNvbnN0IFN0cmluZyYgdGFibGVOYW1lKQorc3RhdGlj
IGNvbnN0IFN0cmluZyB2MkluZGV4UmVjb3Jkc1RhYmxlU2NoZW1hKEFTQ0lJTGl0ZXJhbCB0YWJs
ZU5hbWUpCiB7CiAgICAgcmV0dXJuIG1ha2VTdHJpbmcoIkNSRUFURSBUQUJMRSAiLCB0YWJsZU5h
bWUsICIgKGluZGV4SUQgSU5URUdFUiBOT1QgTlVMTCBPTiBDT05GTElDVCBGQUlMLCBvYmplY3RT
dG9yZUlEIElOVEVHRVIgTk9UIE5VTEwgT04gQ09ORkxJQ1QgRkFJTCwga2V5IFRFWFQgQ09MTEFU
RSBJREJLRVkgTk9UIE5VTEwgT04gQ09ORkxJQ1QgRkFJTCwgdmFsdWUgVEVYVCBDT0xMQVRFIElE
QktFWSBOT1QgTlVMTCBPTiBDT05GTElDVCBGQUlMKSIpOwogfQogCiBzdGF0aWMgY29uc3QgU3Ry
aW5nJiB2MkluZGV4UmVjb3Jkc1RhYmxlU2NoZW1hKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8U3RyaW5nPiB2MkluZGV4UmVjb3Jkc1RhYmxlU2NoZW1hU3RyaW5nKHYySW5kZXhSZWNv
cmRzVGFibGVTY2hlbWEoIkluZGV4UmVjb3JkcyIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8U3RyaW5nPiB2MkluZGV4UmVjb3Jkc1RhYmxlU2NoZW1hU3RyaW5nKHYySW5kZXhSZWNvcmRz
VGFibGVTY2hlbWEoIkluZGV4UmVjb3JkcyJfcykpOwogICAgIHJldHVybiB2MkluZGV4UmVjb3Jk
c1RhYmxlU2NoZW1hU3RyaW5nOwogfQogCiBzdGF0aWMgY29uc3QgU3RyaW5nJiB2MkluZGV4UmVj
b3Jkc1RhYmxlU2NoZW1hQWx0ZXJuYXRlKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
U3RyaW5nPiB2MkluZGV4UmVjb3Jkc1RhYmxlU2NoZW1hU3RyaW5nKHYySW5kZXhSZWNvcmRzVGFi
bGVTY2hlbWEoIlwiSW5kZXhSZWNvcmRzXCIiKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVk
PFN0cmluZz4gdjJJbmRleFJlY29yZHNUYWJsZVNjaGVtYVN0cmluZyh2MkluZGV4UmVjb3Jkc1Rh
YmxlU2NoZW1hKCJcIkluZGV4UmVjb3Jkc1wiIl9zKSk7CiAgICAgcmV0dXJuIHYySW5kZXhSZWNv
cmRzVGFibGVTY2hlbWFTdHJpbmc7CiB9CiAKQEAgLTkxNCw3ICs5MTQsNyBAQCBTdHJpbmcgU1FM
aXRlSURCQmFja2luZ1N0b3JlOjplbmNvZGVEYXRhYmFzZU5hbWUoY29uc3QgU3RyaW5nJiBkYXRh
YmFzZU5hbWUpCiB7CiAgICAgQVNTRVJUKCFkYXRhYmFzZU5hbWUuaXNFbXB0eSgpKTsKICAgICBp
ZiAoZGF0YWJhc2VOYW1lLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuICIlMDAiOworICAgICAg
ICByZXR1cm4gIiUwMCJfczsKIAogICAgIFN0cmluZyBmaWxlbmFtZSA9IEZpbGVTeXN0ZW06OmVu
Y29kZUZvckZpbGVOYW1lKGRhdGFiYXNlTmFtZSk7CiAgICAgZmlsZW5hbWUucmVwbGFjZVdpdGhM
aXRlcmFsKCcuJywgIiUyRSIpOwpAQCAtOTk2LDcgKzk5Niw3IEBAIElEQkVycm9yIFNRTGl0ZUlE
QkJhY2tpbmdTdG9yZTo6Z2V0T3JFc3RhYmxpc2hEYXRhYmFzZUluZm8oSURCRGF0YWJhc2VJbmZv
JiBpbmZvCiAgICAgbV9zcWxpdGVEQi0+ZGlzYWJsZVRocmVhZGluZ0NoZWNrcygpOwogICAgIG1f
c3FsaXRlREItPmVuYWJsZUF1dG9tYXRpY1dBTFRydW5jYXRpb24oKTsKIAotICAgIG1fc3FsaXRl
REItPnNldENvbGxhdGlvbkZ1bmN0aW9uKCJJREJLRVkiLCBbXShpbnQgYUxlbmd0aCwgY29uc3Qg
dm9pZCogYSwgaW50IGJMZW5ndGgsIGNvbnN0IHZvaWQqIGIpIHsKKyAgICBtX3NxbGl0ZURCLT5z
ZXRDb2xsYXRpb25GdW5jdGlvbigiSURCS0VZIl9zLCBbXShpbnQgYUxlbmd0aCwgY29uc3Qgdm9p
ZCogYSwgaW50IGJMZW5ndGgsIGNvbnN0IHZvaWQqIGIpIHsKICAgICAgICAgcmV0dXJuIGlkYktl
eUNvbGxhdGUoYUxlbmd0aCwgYSwgYkxlbmd0aCwgYik7CiAgICAgfSk7CiAKQEAgLTE5MDksNyAr
MTkwOSw3IEBAIElEQkVycm9yIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6dXBkYXRlQWxsSW5kZXhl
c0ZvckFkZFJlY29yZChjb25zdCBJREJPYmplY3RTdG9yCiAgICAgICAgIEFTU0VSVChpbmRleEl0
ZXJhdG9yICE9IGluZGV4TWFwLmVuZCgpKTsKIAogICAgICAgICBpZiAoaW5kZXhJdGVyYXRvciA9
PSBpbmRleE1hcC5lbmQoKSkgewotICAgICAgICAgICAgZXJyb3IgPSBJREJFcnJvciB7IEludmFs
aWRTdGF0ZUVycm9yLCAiTWlzc2luZyBpbmRleCBtZXRhZGF0YSIgfTsKKyAgICAgICAgICAgIGVy
cm9yID0gSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIk1pc3NpbmcgaW5kZXggbWV0YWRh
dGEiX3MgfTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAKQEAgLTI1NzMsNyArMjU3
Myw3IEBAIElEQkVycm9yIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZTo6dW5jaGVja2VkR2V0S2V5R2Vu
ZXJhdG9yVmFsdWUoaW50NjRfdCBvYmplY3RTdG9yCiAKICAgICBpbnQ2NF90IHZhbHVlID0gc3Fs
LT5jb2x1bW5JbnQ2NCgwKTsKICAgICBpZiAodmFsdWUgPCAwKQotICAgICAgICByZXR1cm4gSURC
RXJyb3IgeyBDb25zdHJhaW50RXJyb3IsICJDdXJyZW50IGtleSBnZW5lcmF0b3IgdmFsdWUgZnJv
bSBkYXRhYmFzZSBpcyBpbnZhbGlkIiB9OworICAgICAgICByZXR1cm4gSURCRXJyb3IgeyBDb25z
dHJhaW50RXJyb3IsICJDdXJyZW50IGtleSBnZW5lcmF0b3IgdmFsdWUgZnJvbSBkYXRhYmFzZSBp
cyBpbnZhbGlkIl9zIH07CiAKICAgICBvdXRWYWx1ZSA9IHZhbHVlOwogICAgIHJldHVybiBJREJF
cnJvciB7IH07CkBAIC0yNTg3LDcgKzI1ODcsNyBAQCBJREJFcnJvciBTUUxpdGVJREJCYWNraW5n
U3RvcmU6OnVuY2hlY2tlZFNldEtleUdlbmVyYXRvclZhbHVlKGludDY0X3Qgb2JqZWN0U3Rvcgog
ICAgICAgICB8fCBzcWwtPmJpbmRJbnQ2NCgyLCB2YWx1ZSkgIT0gU1FMSVRFX09LCiAgICAgICAg
IHx8IHNxbC0+c3RlcCgpICE9IFNRTElURV9ET05FKSB7CiAgICAgICAgIExPR19FUlJPUigiQ291
bGQgbm90IHVwZGF0ZSBrZXkgZ2VuZXJhdG9yIHZhbHVlICglaSkgLSAlcyIsIG1fc3FsaXRlREIt
Pmxhc3RFcnJvcigpLCBtX3NxbGl0ZURCLT5sYXN0RXJyb3JNc2coKSk7Ci0gICAgICAgIHJldHVy
biBJREJFcnJvciB7IENvbnN0cmFpbnRFcnJvciwgIkVycm9yIHN0b3JpbmcgbmV3IGtleSBnZW5l
cmF0b3IgdmFsdWUgaW4gZGF0YWJhc2UiIH07CisgICAgICAgIHJldHVybiBJREJFcnJvciB7IENv
bnN0cmFpbnRFcnJvciwgIkVycm9yIHN0b3JpbmcgbmV3IGtleSBnZW5lcmF0b3IgdmFsdWUgaW4g
ZGF0YWJhc2UiX3MgfTsKICAgICB9CiAKICAgICByZXR1cm4gSURCRXJyb3IgeyB9OwpAQCAtMjYx
NSw3ICsyNjE1LDcgQEAgSURCRXJyb3IgU1FMaXRlSURCQmFja2luZ1N0b3JlOjpnZW5lcmF0ZUtl
eU51bWJlcihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHQKICAgICAgICAgcmV0dXJuIGVy
cm9yOwogCiAgICAgaWYgKGN1cnJlbnRWYWx1ZSArIDEgPiBtYXhHZW5lcmF0b3JWYWx1ZSkKLSAg
ICAgICAgcmV0dXJuIElEQkVycm9yIHsgQ29uc3RyYWludEVycm9yLCAiQ2Fubm90IGdlbmVyYXRl
IG5ldyBrZXkgdmFsdWUgb3ZlciAyXjUzIGZvciBvYmplY3Qgc3RvcmUgb3BlcmF0aW9uIiB9Owor
ICAgICAgICByZXR1cm4gSURCRXJyb3IgeyBDb25zdHJhaW50RXJyb3IsICJDYW5ub3QgZ2VuZXJh
dGUgbmV3IGtleSB2YWx1ZSBvdmVyIDJeNTMgZm9yIG9iamVjdCBzdG9yZSBvcGVyYXRpb24iX3Mg
fTsKIAogICAgIGdlbmVyYXRlZEtleSA9IGN1cnJlbnRWYWx1ZSArIDE7CiAgICAgcmV0dXJuIHVu
Y2hlY2tlZFNldEtleUdlbmVyYXRvclZhbHVlKG9iamVjdFN0b3JlSUQsIGdlbmVyYXRlZEtleSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5p
cXVlSURCRGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2Vy
dmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcAppbmRleCAyM2U2ZDNmNWM4YmM2Mzc2YzMwYzY1YzRm
NjcyZWU2NGMzZmFmNmYxLi43NGFkZWVlM2UzMWFhYWQyZDNkOTVjMjg1NWQ1MDhiOGE1NzZkMGIz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5p
cXVlSURCRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRi
L3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5jcHAKQEAgLTU4OSw3ICs1ODksNyBAQCB2b2lkIFVu
aXF1ZUlEQkRhdGFiYXNlOjpjcmVhdGVPYmplY3RTdG9yZShVbmlxdWVJREJEYXRhYmFzZVRyYW5z
YWN0aW9uJiB0cmFuc2FjdAogICAgICAgICBhdXRvIHRhc2tTaXplID0gZGVmYXVsdFdyaXRlT3Bl
cmF0aW9uQ29zdCArIGVzdGltYXRlU2l6ZShpbmZvKTsKICAgICAgICAgbV9tYW5hZ2VyLT5yZXF1
ZXN0U3BhY2UobV9pZGVudGlmaWVyLm9yaWdpbigpLCB0YXNrU2l6ZSwgW3RoaXMsIHdlYWtUaGlz
ID0gV2Vha1B0ciB7ICp0aGlzIH0sIHdlYWtUcmFuc2FjdGlvbiA9IFdlYWtQdHIgeyB0cmFuc2Fj
dGlvbiB9LCBpbmZvLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXShib29sIGdyYW50ZWQp
IG11dGFibGUgewogICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcyB8fCAhd2Vha1RyYW5zYWN0aW9u
KQotICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0
ZUVycm9yLCAiRGF0YWJhc2Ugb3IgdHJhbnNhY3Rpb24gaXMgY2xvc2VkIiB9KTsKKyAgICAgICAg
ICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkRh
dGFiYXNlIG9yIHRyYW5zYWN0aW9uIGlzIGNsb3NlZCJfcyB9KTsKICAgICAgICAgICAgIGNyZWF0
ZU9iamVjdFN0b3JlKCp3ZWFrVHJhbnNhY3Rpb24sIGluZm8sIFdURk1vdmUoY2FsbGJhY2spLCBn
cmFudGVkID8gU3BhY2VDaGVja1Jlc3VsdDo6UGFzcyA6IFNwYWNlQ2hlY2tSZXN1bHQ6OkZhaWwp
OwogICAgICAgICB9KTsKICAgICAgICAgcmV0dXJuOwpAQCAtNjAxLDcgKzYwMSw3IEBAIHZvaWQg
VW5pcXVlSURCRGF0YWJhc2U6OmNyZWF0ZU9iamVjdFN0b3JlKFVuaXF1ZUlEQkRhdGFiYXNlVHJh
bnNhY3Rpb24mIHRyYW5zYWN0CiAgICAgfQogCiAgICAgaWYgKCFtX2JhY2tpbmdTdG9yZSkKLSAg
ICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNr
aW5nIHN0b3JlIGhhcyBjbG9zZWQiIH0pOworICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJy
b3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgaGFzIGNsb3NlZCJfcyB9KTsK
IAogICAgIGF1dG8gZXJyb3IgPSBtX2JhY2tpbmdTdG9yZS0+Y3JlYXRlT2JqZWN0U3RvcmUodHJh
bnNhY3Rpb24uaW5mbygpLmlkZW50aWZpZXIoKSwgaW5mbyk7CiAgICAgaWYgKGVycm9yLmlzTnVs
bCgpKQpAQCAtNjIxLDcgKzYyMSw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmRlbGV0ZU9i
amVjdFN0b3JlKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mIHRyYW5zYWN0CiAKICAgICAg
ICAgbV9tYW5hZ2VyLT5yZXF1ZXN0U3BhY2UobV9pZGVudGlmaWVyLm9yaWdpbigpLCAwLCBbdGhp
cywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgd2Vha1RyYW5zYWN0aW9uID0gV2Vha1B0
ciB7IHRyYW5zYWN0aW9uIH0sIG9iamVjdFN0b3JlTmFtZSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNh
bGxiYWNrKV0oYm9vbCBncmFudGVkKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlmICghd2Vha1Ro
aXMgfHwgIXdlYWtUcmFuc2FjdGlvbikKLSAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2so
SURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkRhdGFiYXNlIG9yIHRyYW5zYWN0aW9uIGlz
IGNsb3NlZCIgfSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsg
SW52YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBvciB0cmFuc2FjdGlvbiBpcyBjbG9zZWQiX3Mg
fSk7CiAKICAgICAgICAgICAgIGRlbGV0ZU9iamVjdFN0b3JlKCp3ZWFrVHJhbnNhY3Rpb24sIG9i
amVjdFN0b3JlTmFtZSwgV1RGTW92ZShjYWxsYmFjayksIGdyYW50ZWQgPyBTcGFjZUNoZWNrUmVz
dWx0OjpQYXNzIDogU3BhY2VDaGVja1Jlc3VsdDo6RmFpbCk7CiAgICAgICAgIH0pOwpAQCAtNjM2
LDcgKzYzNiw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmRlbGV0ZU9iamVjdFN0b3JlKFVu
aXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mIHRyYW5zYWN0CiAgICAgfQogCiAgICAgaWYgKCFt
X2JhY2tpbmdTdG9yZSkKLSAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxp
ZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3JlIGlzIGNsb3NlZCIgfSk7CisgICAgICAgIHJldHVy
biBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiQmFja2luZyBzdG9yZSBp
cyBjbG9zZWQiX3MgfSk7CiAKICAgICBhdXRvIGVycm9yID0gbV9iYWNraW5nU3RvcmUtPmRlbGV0
ZU9iamVjdFN0b3JlKHRyYW5zYWN0aW9uLmluZm8oKS5pZGVudGlmaWVyKCksIGluZm8tPmlkZW50
aWZpZXIoKSk7CiAgICAgaWYgKGVycm9yLmlzTnVsbCgpKQpAQCAtNjU3LDcgKzY1Nyw3IEBAIHZv
aWQgVW5pcXVlSURCRGF0YWJhc2U6OnJlbmFtZU9iamVjdFN0b3JlKFVuaXF1ZUlEQkRhdGFiYXNl
VHJhbnNhY3Rpb24mIHRyYW5zYWN0CiAgICAgICAgIGF1dG8gdGFza1NpemUgPSBkZWZhdWx0V3Jp
dGVPcGVyYXRpb25Db3N0ICsgbmV3TmFtZS5zaXplSW5CeXRlcygpOwogICAgICAgICBtX21hbmFn
ZXItPnJlcXVlc3RTcGFjZShtX2lkZW50aWZpZXIub3JpZ2luKCksIHRhc2tTaXplLCBbdGhpcywg
d2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgd2Vha1RyYW5zYWN0aW9uID0gV2Vha1B0ciB7
IHRyYW5zYWN0aW9uIH0sIG9iamVjdFN0b3JlSWRlbnRpZmllciwgbmV3TmFtZSwgY2FsbGJhY2sg
PSBXVEZNb3ZlKGNhbGxiYWNrKV0oYm9vbCBncmFudGVkKSBtdXRhYmxlIHsKICAgICAgICAgICAg
IGlmICghd2Vha1RoaXMgfHwgIXdlYWtUcmFuc2FjdGlvbikKLSAgICAgICAgICAgICAgICByZXR1
cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkRhdGFiYXNlIG9yIHRy
YW5zYWN0aW9uIGlzIGNsb3NlZCIgfSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNr
KElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBvciB0cmFuc2FjdGlvbiBp
cyBjbG9zZWQiX3MgfSk7CiAKICAgICAgICAgICAgIHJlbmFtZU9iamVjdFN0b3JlKCp3ZWFrVHJh
bnNhY3Rpb24sIG9iamVjdFN0b3JlSWRlbnRpZmllciwgbmV3TmFtZSwgV1RGTW92ZShjYWxsYmFj
ayksIGdyYW50ZWQgPyBTcGFjZUNoZWNrUmVzdWx0OjpQYXNzIDogU3BhY2VDaGVja1Jlc3VsdDo6
RmFpbCk7CiAgICAgICAgIH0pOwpAQCAtNjc2LDcgKzY3Niw3IEBAIHZvaWQgVW5pcXVlSURCRGF0
YWJhc2U6OnJlbmFtZU9iamVjdFN0b3JlKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mIHRy
YW5zYWN0CiAgICAgfQogCiAgICAgaWYgKCFtX2JhY2tpbmdTdG9yZSkKLSAgICAgICAgcmV0dXJu
IGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3JlIGlz
IGNsb3NlZCIgfSk7CisgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRT
dGF0ZUVycm9yLCAiQmFja2luZyBzdG9yZSBpcyBjbG9zZWQiX3MgfSk7CiAKICAgICBhdXRvIGVy
cm9yID0gbV9iYWNraW5nU3RvcmUtPnJlbmFtZU9iamVjdFN0b3JlKHRyYW5zYWN0aW9uLmluZm8o
KS5pZGVudGlmaWVyKCksIG9iamVjdFN0b3JlSWRlbnRpZmllciwgbmV3TmFtZSk7CiAgICAgaWYg
KGVycm9yLmlzTnVsbCgpKQpAQCAtNjk2LDcgKzY5Niw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJh
c2U6OmNsZWFyT2JqZWN0U3RvcmUoVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbiYgdHJhbnNh
Y3RpCiAKICAgICAgICAgbV9tYW5hZ2VyLT5yZXF1ZXN0U3BhY2UobV9pZGVudGlmaWVyLm9yaWdp
bigpLCAwLCBbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgd2Vha1RyYW5zYWN0
aW9uID0gV2Vha1B0ciB7IHRyYW5zYWN0aW9uIH0sIG9iamVjdFN0b3JlSWRlbnRpZmllciwgY2Fs
bGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oYm9vbCBncmFudGVkKSBtdXRhYmxlIHsKICAgICAg
ICAgICAgIGlmICghd2Vha1RoaXMgfHwgIXdlYWtUcmFuc2FjdGlvbikKLSAgICAgICAgICAgICAg
ICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkRhdGFiYXNl
IG9yIHRyYW5zYWN0aW9uIGlzIGNsb3NlZCIgfSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGNh
bGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBvciB0cmFuc2Fj
dGlvbiBpcyBjbG9zZWQiX3MgfSk7CiAKICAgICAgICAgICAgIGNsZWFyT2JqZWN0U3RvcmUoKndl
YWtUcmFuc2FjdGlvbiwgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBXVEZNb3ZlKGNhbGxiYWNrKSwg
Z3JhbnRlZCA/IFNwYWNlQ2hlY2tSZXN1bHQ6OlBhc3MgOiBTcGFjZUNoZWNrUmVzdWx0OjpGYWls
KTsKICAgICAgICAgfSk7CkBAIC03MDUsNyArNzA1LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFz
ZTo6Y2xlYXJPYmplY3RTdG9yZShVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uJiB0cmFuc2Fj
dGkKIAogICAgIEFTU0VSVChzcGFjZUNoZWNrUmVzdWx0ID09IFNwYWNlQ2hlY2tSZXN1bHQ6OlBh
c3MpOwogICAgIGlmICghbV9iYWNraW5nU3RvcmUpCi0gICAgICAgIHJldHVybiBjYWxsYmFjayhJ
REJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiQmFja2luZyBzdG9yZSBpcyBjbG9zZWQiIH0p
OworICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwg
IkJhY2tpbmcgc3RvcmUgaXMgY2xvc2VkIl9zIH0pOwogCiAgICAgYXV0byBlcnJvciA9IG1fYmFj
a2luZ1N0b3JlLT5jbGVhck9iamVjdFN0b3JlKHRyYW5zYWN0aW9uLmluZm8oKS5pZGVudGlmaWVy
KCksIG9iamVjdFN0b3JlSWRlbnRpZmllcik7CiAgICAgY2FsbGJhY2soZXJyb3IpOwpAQCAtNzIz
LDcgKzcyMyw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmNyZWF0ZUluZGV4KFVuaXF1ZUlE
QkRhdGFiYXNlVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uLCBjCiAgICAgICAgIGF1dG8gdGFza1Np
emUgPSBkZWZhdWx0V3JpdGVPcGVyYXRpb25Db3N0ICsgZXN0aW1hdGVTaXplKGluZm8pOwogICAg
ICAgICBtX21hbmFnZXItPnJlcXVlc3RTcGFjZShtX2lkZW50aWZpZXIub3JpZ2luKCksIHRhc2tT
aXplLCBbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgd2Vha1RyYW5zYWN0aW9u
ID0gV2Vha1B0ciB7IHRyYW5zYWN0aW9uIH0sIGluZm8sIGNhbGxiYWNrID0gV1RGTW92ZShjYWxs
YmFjayldKGJvb2wgZ3JhbnRlZCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAoIXdlYWtUaGlz
IHx8ICF3ZWFrVHJhbnNhY3Rpb24pCi0gICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElE
QkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBvciB0cmFuc2FjdGlvbiBpcyBj
bG9zZWQiIH0pOworICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IElu
dmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJhc2Ugb3IgdHJhbnNhY3Rpb24gaXMgY2xvc2VkIl9zIH0p
OwogCiAgICAgICAgICAgICBjcmVhdGVJbmRleCgqd2Vha1RyYW5zYWN0aW9uLCBpbmZvLCBXVEZN
b3ZlKGNhbGxiYWNrKSwgZ3JhbnRlZCA/IFNwYWNlQ2hlY2tSZXN1bHQ6OlBhc3MgOiBTcGFjZUNo
ZWNrUmVzdWx0OjpGYWlsKTsKICAgICAgICAgfSk7CkBAIC03MzYsNyArNzM2LDcgQEAgdm9pZCBV
bmlxdWVJREJEYXRhYmFzZTo6Y3JlYXRlSW5kZXgoVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlv
biYgdHJhbnNhY3Rpb24sIGMKICAgICB9CiAKICAgICBpZiAoIW1fYmFja2luZ1N0b3JlKQotICAg
ICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tp
bmcgc3RvcmUgaXMgY2xvc2VkIiB9KTsKKyAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9y
IHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3JlIGlzIGNsb3NlZCJfcyB9KTsKIAog
ICAgIGF1dG8gZXJyb3IgPSBtX2JhY2tpbmdTdG9yZS0+Y3JlYXRlSW5kZXgodHJhbnNhY3Rpb24u
aW5mbygpLmlkZW50aWZpZXIoKSwgaW5mbyk7CiAgICAgaWYgKGVycm9yLmlzTnVsbCgpKSB7CkBA
IC03NjEsNyArNzYxLDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6ZGVsZXRlSW5kZXgoVW5p
cXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24sIHUKIAogICAgICAgICBtX21h
bmFnZXItPnJlcXVlc3RTcGFjZShtX2lkZW50aWZpZXIub3JpZ2luKCksIDAsIFt0aGlzLCB3ZWFr
VGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCB3ZWFrVHJhbnNhY3Rpb24gPSBXZWFrUHRyIHsgdHJh
bnNhY3Rpb24gfSwgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBpbmRleE5hbWUsIGNhbGxiYWNrID0g
V1RGTW92ZShjYWxsYmFjayldKGJvb2wgZ3JhbnRlZCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBp
ZiAoIXdlYWtUaGlzIHx8ICF3ZWFrVHJhbnNhY3Rpb24pCi0gICAgICAgICAgICAgICAgcmV0dXJu
IGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBvciB0cmFu
c2FjdGlvbiBpcyBjbG9zZWQiIH0pOworICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhJ
REJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJhc2Ugb3IgdHJhbnNhY3Rpb24gaXMg
Y2xvc2VkIl9zIH0pOwogCiAgICAgICAgICAgICBkZWxldGVJbmRleCgqd2Vha1RyYW5zYWN0aW9u
LCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGluZGV4TmFtZSwgV1RGTW92ZShjYWxsYmFjayksIGdy
YW50ZWQgPyBTcGFjZUNoZWNrUmVzdWx0OjpQYXNzIDogU3BhY2VDaGVja1Jlc3VsdDo6RmFpbCk7
CiAgICAgICAgIH0pOwpAQCAtNzcwLDcgKzc3MCw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6
OmRlbGV0ZUluZGV4KFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uLCB1
CiAKICAgICBBU1NFUlQoc3BhY2VDaGVja1Jlc3VsdCA9PSBTcGFjZUNoZWNrUmVzdWx0OjpQYXNz
KTsKICAgICBpZiAoIW1fYmFja2luZ1N0b3JlKQotICAgICAgICByZXR1cm4gY2FsbGJhY2soSURC
RXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xvc2VkIiB9KTsK
KyAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJC
YWNraW5nIHN0b3JlIGlzIGNsb3NlZCJfcyB9KTsKIAogICAgIGF1dG8qIG9iamVjdFN0b3JlSW5m
byA9IG1fZGF0YWJhc2VJbmZvLT5pbmZvRm9yRXhpc3RpbmdPYmplY3RTdG9yZShvYmplY3RTdG9y
ZUlkZW50aWZpZXIpOwogICAgIGlmICghb2JqZWN0U3RvcmVJbmZvKSB7CkBAIC04MDQsNyArODA0
LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6cmVuYW1lSW5kZXgoVW5pcXVlSURCRGF0YWJh
c2VUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24sIHUKICAgICAgICAgYXV0byB0YXNrU2l6ZSA9IGRl
ZmF1bHRXcml0ZU9wZXJhdGlvbkNvc3QgKyBuZXdOYW1lLnNpemVJbkJ5dGVzKCk7CiAgICAgICAg
IG1fbWFuYWdlci0+cmVxdWVzdFNwYWNlKG1faWRlbnRpZmllci5vcmlnaW4oKSwgdGFza1NpemUs
IFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCB3ZWFrVHJhbnNhY3Rpb24gPSBX
ZWFrUHRyIHsgdHJhbnNhY3Rpb24gfSwgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBpbmRleElkZW50
aWZpZXIsIG5ld05hbWUsIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKGJvb2wgZ3JhbnRl
ZCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAoIXdlYWtUaGlzIHx8ICF3ZWFrVHJhbnNhY3Rp
b24pCi0gICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0
YXRlRXJyb3IsICJEYXRhYmFzZSBvciB0cmFuc2FjdGlvbiBpcyBjbG9zZWQiIH0pOworICAgICAg
ICAgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAi
RGF0YWJhc2Ugb3IgdHJhbnNhY3Rpb24gaXMgY2xvc2VkIl9zIH0pOwogCiAgICAgICAgICAgICBy
ZW5hbWVJbmRleCgqd2Vha1RyYW5zYWN0aW9uLCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGluZGV4
SWRlbnRpZmllciwgbmV3TmFtZSwgV1RGTW92ZShjYWxsYmFjayksIGdyYW50ZWQgPyBTcGFjZUNo
ZWNrUmVzdWx0OjpQYXNzIDogU3BhY2VDaGVja1Jlc3VsdDo6RmFpbCk7CiAgICAgICAgIH0pOwpA
QCAtODE3LDcgKzgxNyw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OnJlbmFtZUluZGV4KFVu
aXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mIHRyYW5zYWN0aW9uLCB1CiAgICAgfQogCiAgICAg
aWYgKCFtX2JhY2tpbmdTdG9yZSkKLSAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsg
SW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3JlIGlzIGNsb3NlZCIgfSk7CisgICAgICAg
IHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiQmFja2luZyBz
dG9yZSBpcyBjbG9zZWQiX3MgfSk7CiAKICAgICBhdXRvKiBvYmplY3RTdG9yZUluZm8gPSBtX2Rh
dGFiYXNlSW5mby0+aW5mb0ZvckV4aXN0aW5nT2JqZWN0U3RvcmUob2JqZWN0U3RvcmVJZGVudGlm
aWVyKTsKICAgICBpZiAoIW9iamVjdFN0b3JlSW5mbykgewpAQCAtODQ2LDcgKzg0Niw3IEBAIHZv
aWQgVW5pcXVlSURCRGF0YWJhc2U6OnB1dE9yQWRkKGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1
ZXN0RGF0YSwgY29uc3QgSURCS2V5CiAgICAgQVNTRVJUKG1fZGF0YWJhc2VJbmZvKTsKIAogICAg
IGlmICghbV9iYWNraW5nU3RvcmUpCi0gICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7
IEludmFsaWRTdGF0ZUVycm9yLCAiQmFja2luZyBzdG9yZSBpcyBjbG9zZWQiIH0sIGtleURhdGEp
OworICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwg
IkJhY2tpbmcgc3RvcmUgaXMgY2xvc2VkIl9zIH0sIGtleURhdGEpOwogCiAgICAgYXV0byBvYmpl
Y3RTdG9yZUlkZW50aWZpZXIgPSByZXF1ZXN0RGF0YS5vYmplY3RTdG9yZUlkZW50aWZpZXIoKTsK
ICAgICBhdXRvKiBvYmplY3RTdG9yZUluZm8gPSBtX2JhY2tpbmdTdG9yZS0+aW5mb0Zvck9iamVj
dFN0b3JlKG9iamVjdFN0b3JlSWRlbnRpZmllcik7CkBAIC05MDEsNyArOTAxLDcgQEAgdm9pZCBV
bmlxdWVJREJEYXRhYmFzZTo6cHV0T3JBZGQoY29uc3QgSURCUmVxdWVzdERhdGEmIHJlcXVlc3RE
YXRhLCBjb25zdCBJREJLZXkKICAgICBMT0coSW5kZXhlZERCLCAiVW5pcXVlSURCRGF0YWJhc2U6
OnB1dE9yQWRkIHF1b3RhIGNoZWNrIHdpdGggdGFzayBzaXplOiAlIiBQUkl1NjQgIiBrZXkgc2l6
ZTogJSIgUFJJdTY0ICIgdmFsdWUgc2l6ZTogJSIgUFJJdTY0ICIgaW5kZXggc2l6ZTogJSIgUFJJ
dTY0LCB0YXNrU2l6ZSwga2V5U2l6ZSwgdmFsdWVTaXplLCBpbmRleFNpemUpOwogICAgIG1fbWFu
YWdlci0+cmVxdWVzdFNwYWNlKG1faWRlbnRpZmllci5vcmlnaW4oKSwgdGFza1NpemUsIFt0aGlz
LCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCByZXF1ZXN0RGF0YSwgdXNlZEtleSwgdmFs
dWUsIG92ZXJ3cml0ZU1vZGUsIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayksIHVzZWRLZXlJ
c0dlbmVyYXRlZCwgaW5kZXhLZXlzLCBvYmplY3RTdG9yZUluZm8gPSAqb2JqZWN0U3RvcmVJbmZv
XShib29sIGdyYW50ZWQpIG11dGFibGUgewogICAgICAgICBpZiAoIXdlYWtUaGlzKQotICAgICAg
ICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJEYXRh
YmFzZSBpcyBjbG9zZWQiIH0sIHVzZWRLZXkpOworICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNr
KElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBpcyBjbG9zZWQiX3MgfSwg
dXNlZEtleSk7CiAKICAgICAgICAgcHV0T3JBZGRBZnRlclNwYWNlQ2hlY2socmVxdWVzdERhdGEs
IHVzZWRLZXksIHZhbHVlLCBvdmVyd3JpdGVNb2RlLCBXVEZNb3ZlKGNhbGxiYWNrKSwgdXNlZEtl
eUlzR2VuZXJhdGVkLCBpbmRleEtleXMsIG9iamVjdFN0b3JlSW5mbywgZ3JhbnRlZCA/IFNwYWNl
Q2hlY2tSZXN1bHQ6OlBhc3MgOiBTcGFjZUNoZWNrUmVzdWx0OjpGYWlsKTsKICAgICB9KTsKQEAg
LTkxMyw3ICs5MTMsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpwdXRPckFkZEFmdGVyU3Bh
Y2VDaGVjayhjb25zdCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdERhdAogICAgIEFTU0VSVChtX2Rh
dGFiYXNlSW5mbyk7CiAKICAgICBpZiAoIW1fYmFja2luZ1N0b3JlKQotICAgICAgICByZXR1cm4g
Y2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgaXMg
Y2xvc2VkIiB9LCBrZXlEYXRhKTsKKyAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsg
SW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3JlIGlzIGNsb3NlZCJfcyB9LCBrZXlEYXRh
KTsKIAogICAgIHVpbnQ2NF90IGtleU51bWJlciA9IGlzS2V5R2VuZXJhdGVkID8ga2V5RGF0YS5u
dW1iZXIoKSA6IDA7CiAgICAgYXV0byBvYmplY3RTdG9yZUlkZW50aWZpZXIgPSBvYmplY3RTdG9y
ZUluZm8uaWRlbnRpZmllcigpOwpAQCAtOTUzLDcgKzk1Myw3IEBAIHZvaWQgVW5pcXVlSURCRGF0
YWJhc2U6OmdldFJlY29yZChjb25zdCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdERhdGEsIGNvbnN0
IElEQkdlCiAKICAgICAgICAgbV9tYW5hZ2VyLT5yZXF1ZXN0U3BhY2UobV9pZGVudGlmaWVyLm9y
aWdpbigpLCAwLCBbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgcmVxdWVzdERh
dGEsIGdldFJlY29yZERhdGEsIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKGJvb2wgZ3Jh
bnRlZCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAoIXdlYWtUaGlzKQotICAgICAgICAgICAg
ICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJh
c2UgaXMgY2xvc2VkIiB9LCBJREJHZXRSZXN1bHQgeyB9KTsKKyAgICAgICAgICAgICAgICByZXR1
cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkRhdGFiYXNlIGlzIGNs
b3NlZCJfcyB9LCBJREJHZXRSZXN1bHQgeyB9KTsKIAogICAgICAgICAgICAgZ2V0UmVjb3JkKHJl
cXVlc3REYXRhLCBnZXRSZWNvcmREYXRhLCBXVEZNb3ZlKGNhbGxiYWNrKSwgZ3JhbnRlZCA/IFNw
YWNlQ2hlY2tSZXN1bHQ6OlBhc3MgOiBTcGFjZUNoZWNrUmVzdWx0OjpGYWlsKTsKICAgICAgICAg
fSk7CkBAIC05NjIsNyArOTYyLDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6Z2V0UmVjb3Jk
KGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0YSwgY29uc3QgSURCR2UKIAogICAgIEFT
U0VSVChzcGFjZUNoZWNrUmVzdWx0ID09IFNwYWNlQ2hlY2tSZXN1bHQ6OlBhc3MpOwogICAgIGlm
ICghbV9iYWNraW5nU3RvcmUpCi0gICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IElu
dmFsaWRTdGF0ZUVycm9yLCAiQmFja2luZyBzdG9yZSBpcyBjbG9zZWQiIH0sIElEQkdldFJlc3Vs
dCB7IH0pOworICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVF
cnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xvc2VkIl9zIH0sIElEQkdldFJlc3VsdCB7IH0pOwog
CiAgICAgSURCR2V0UmVzdWx0IHJlc3VsdDsKICAgICBJREJFcnJvciBlcnJvcjsKQEAgLTk4Niw3
ICs5ODYsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpnZXRBbGxSZWNvcmRzKGNvbnN0IElE
QlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0YSwgY29uc3QgSQogCiAgICAgICAgIG1fbWFuYWdlci0+
cmVxdWVzdFNwYWNlKG1faWRlbnRpZmllci5vcmlnaW4oKSwgMCwgW3RoaXMsIHdlYWtUaGlzID0g
V2Vha1B0ciB7ICp0aGlzIH0sIHJlcXVlc3REYXRhLCBnZXRBbGxSZWNvcmRzRGF0YSwgY2FsbGJh
Y2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oYm9vbCBncmFudGVkKSBtdXRhYmxlIHsKICAgICAgICAg
ICAgIGlmICghd2Vha1RoaXMpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVy
cm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBpcyBjbG9zZWQiIH0sIElEQkdldEFs
bFJlc3VsdCB7IH0pOworICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7
IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJhc2UgaXMgY2xvc2VkIl9zIH0sIElEQkdldEFsbFJl
c3VsdCB7IH0pOwogCiAgICAgICAgICAgICBnZXRBbGxSZWNvcmRzKHJlcXVlc3REYXRhLCBnZXRB
bGxSZWNvcmRzRGF0YSwgV1RGTW92ZShjYWxsYmFjayksIGdyYW50ZWQgPyBTcGFjZUNoZWNrUmVz
dWx0OjpQYXNzIDogU3BhY2VDaGVja1Jlc3VsdDo6RmFpbCk7CiAgICAgICAgIH0pOwpAQCAtOTk1
LDcgKzk5NSw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmdldEFsbFJlY29yZHMoY29uc3Qg
SURCUmVxdWVzdERhdGEmIHJlcXVlc3REYXRhLCBjb25zdCBJCiAKICAgICBBU1NFUlQoc3BhY2VD
aGVja1Jlc3VsdCA9PSBTcGFjZUNoZWNrUmVzdWx0OjpQYXNzKTsKICAgICBpZiAoIW1fYmFja2lu
Z1N0b3JlKQotICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVF
cnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xvc2VkIiB9LCBJREJHZXRBbGxSZXN1bHQgeyB9KTsK
KyAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJC
YWNraW5nIHN0b3JlIGlzIGNsb3NlZCJfcyB9LCBJREJHZXRBbGxSZXN1bHQgeyB9KTsKIAogICAg
IElEQkdldEFsbFJlc3VsdCByZXN1bHQ7CiAgICAgYXV0byBlcnJvciA9IG1fYmFja2luZ1N0b3Jl
LT5nZXRBbGxSZWNvcmRzKHJlcXVlc3REYXRhLnRyYW5zYWN0aW9uSWRlbnRpZmllcigpLCBnZXRB
bGxSZWNvcmRzRGF0YSwgcmVzdWx0KTsKQEAgLTEwMTQsNyArMTAxNCw3IEBAIHZvaWQgVW5pcXVl
SURCRGF0YWJhc2U6OmdldENvdW50KGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0YSwg
Y29uc3QgSURCS2V5CiAKICAgICAgICAgbV9tYW5hZ2VyLT5yZXF1ZXN0U3BhY2UobV9pZGVudGlm
aWVyLm9yaWdpbigpLCAwLCBbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgcmVx
dWVzdERhdGEsIHJhbmdlLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXShib29sIGdyYW50
ZWQpIG11dGFibGUgewogICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcykKLSAgICAgICAgICAgICAg
ICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkRhdGFiYXNl
IGlzIGNsb3NlZCIgfSwgMCk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVy
cm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBpcyBjbG9zZWQiX3MgfSwgMCk7CiAK
ICAgICAgICAgICAgIGdldENvdW50KHJlcXVlc3REYXRhLCByYW5nZSwgV1RGTW92ZShjYWxsYmFj
ayksIGdyYW50ZWQgPyBTcGFjZUNoZWNrUmVzdWx0OjpQYXNzIDogU3BhY2VDaGVja1Jlc3VsdDo6
RmFpbCk7CiAgICAgICAgIH0pOwpAQCAtMTAyMyw3ICsxMDIzLDcgQEAgdm9pZCBVbmlxdWVJREJE
YXRhYmFzZTo6Z2V0Q291bnQoY29uc3QgSURCUmVxdWVzdERhdGEmIHJlcXVlc3REYXRhLCBjb25z
dCBJREJLZXkKIAogICAgIEFTU0VSVChzcGFjZUNoZWNrUmVzdWx0ID09IFNwYWNlQ2hlY2tSZXN1
bHQ6OlBhc3MpOwogICAgIGlmICghbV9iYWNraW5nU3RvcmUpCi0gICAgICAgIHJldHVybiBjYWxs
YmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiQmFja2luZyBzdG9yZSBpcyBjbG9z
ZWQiIH0sIDApOworICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3Rh
dGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xvc2VkIl9zIH0sIDApOwogCiAgICAgdWludDY0
X3QgY291bnQgPSAwOwogICAgIGF1dG8gZXJyb3IgPSBtX2JhY2tpbmdTdG9yZS0+Z2V0Q291bnQo
cmVxdWVzdERhdGEudHJhbnNhY3Rpb25JZGVudGlmaWVyKCksIHJlcXVlc3REYXRhLm9iamVjdFN0
b3JlSWRlbnRpZmllcigpLCByZXF1ZXN0RGF0YS5pbmRleElkZW50aWZpZXIoKSwgcmFuZ2UsIGNv
dW50KTsKQEAgLTEwNDIsNyArMTA0Miw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmRlbGV0
ZVJlY29yZChjb25zdCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdERhdGEsIGNvbnN0IElECiAKICAg
ICAgICAgbV9tYW5hZ2VyLT5yZXF1ZXN0U3BhY2UobV9pZGVudGlmaWVyLm9yaWdpbigpLCAwLCBb
dGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgcmVxdWVzdERhdGEsIGtleVJhbmdl
RGF0YSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oYm9vbCBncmFudGVkKSBtdXRhYmxl
IHsKICAgICAgICAgICAgIGlmICghd2Vha1RoaXMpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGNh
bGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBpcyBjbG9zZWQi
IH0pOworICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRT
dGF0ZUVycm9yLCAiRGF0YWJhc2UgaXMgY2xvc2VkIl9zIH0pOwogCiAgICAgICAgICAgICBkZWxl
dGVSZWNvcmQocmVxdWVzdERhdGEsIGtleVJhbmdlRGF0YSwgV1RGTW92ZShjYWxsYmFjayksIGdy
YW50ZWQgPyBTcGFjZUNoZWNrUmVzdWx0OjpQYXNzIDogU3BhY2VDaGVja1Jlc3VsdDo6RmFpbCk7
CiAgICAgICAgIH0pOwpAQCAtMTA1MSw3ICsxMDUxLDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFz
ZTo6ZGVsZXRlUmVjb3JkKGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0YSwgY29uc3Qg
SUQKIAogICAgIEFTU0VSVChzcGFjZUNoZWNrUmVzdWx0ID09IFNwYWNlQ2hlY2tSZXN1bHQ6OlBh
c3MpOwogICAgIGlmICghbV9iYWNraW5nU3RvcmUpCi0gICAgICAgIHJldHVybiBjYWxsYmFjayhJ
REJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiQmFja2luZyBzdG9yZSBpcyBjbG9zZWQiIH0p
OworICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwg
IkJhY2tpbmcgc3RvcmUgaXMgY2xvc2VkIl9zIH0pOwogCiAgICAgYXV0byBlcnJvciA9IG1fYmFj
a2luZ1N0b3JlLT5kZWxldGVSYW5nZShyZXF1ZXN0RGF0YS50cmFuc2FjdGlvbklkZW50aWZpZXIo
KSwgcmVxdWVzdERhdGEub2JqZWN0U3RvcmVJZGVudGlmaWVyKCksIGtleVJhbmdlRGF0YSk7CiAK
QEAgLTEwNjksNyArMTA2OSw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6Om9wZW5DdXJzb3Io
Y29uc3QgSURCUmVxdWVzdERhdGEmIHJlcXVlc3REYXRhLCBjb25zdCBJREJDCiAKICAgICAgICAg
bV9tYW5hZ2VyLT5yZXF1ZXN0U3BhY2UobV9pZGVudGlmaWVyLm9yaWdpbigpLCAwLCBbdGhpcywg
d2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgcmVxdWVzdERhdGEsIGluZm8sIGNhbGxiYWNr
ID0gV1RGTW92ZShjYWxsYmFjayldKGJvb2wgZ3JhbnRlZCkgbXV0YWJsZSB7CiAgICAgICAgICAg
ICBpZiAoIXdlYWtUaGlzKQotICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJv
ciB7IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJhc2Ugb3IgdHJhbnNhY3Rpb24gaXMgY2xvc2Vk
IiB9LCBJREJHZXRSZXN1bHQgeyB9KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2so
SURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkRhdGFiYXNlIG9yIHRyYW5zYWN0aW9uIGlz
IGNsb3NlZCJfcyB9LCBJREJHZXRSZXN1bHQgeyB9KTsKIAogICAgICAgICAgICAgb3BlbkN1cnNv
cihyZXF1ZXN0RGF0YSwgaW5mbywgV1RGTW92ZShjYWxsYmFjayksIGdyYW50ZWQgPyBTcGFjZUNo
ZWNrUmVzdWx0OjpQYXNzIDogU3BhY2VDaGVja1Jlc3VsdDo6RmFpbCk7CiAgICAgICAgIH0pOwpA
QCAtMTA3OCw3ICsxMDc4LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6b3BlbkN1cnNvcihj
b25zdCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdERhdGEsIGNvbnN0IElEQkMKIAogICAgIEFTU0VS
VChzcGFjZUNoZWNrUmVzdWx0ID09IFNwYWNlQ2hlY2tSZXN1bHQ6OlBhc3MpOwogICAgIGlmICgh
bV9iYWNraW5nU3RvcmUpCi0gICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFs
aWRTdGF0ZUVycm9yLCAiQmFja2luZyBzdG9yZSBpcyBjbG9zZWQiIH0sIElEQkdldFJlc3VsdCB7
IH0pOworICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJv
ciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xvc2VkIl9zIH0sIElEQkdldFJlc3VsdCB7IH0pOwogCiAg
ICAgSURCR2V0UmVzdWx0IHJlc3VsdDsKICAgICBhdXRvIGVycm9yID0gbV9iYWNraW5nU3RvcmUt
Pm9wZW5DdXJzb3IocmVxdWVzdERhdGEudHJhbnNhY3Rpb25JZGVudGlmaWVyKCksIGluZm8sIHJl
c3VsdCk7CkBAIC0xMDk3LDcgKzEwOTcsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjppdGVy
YXRlQ3Vyc29yKGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0YSwgY29uc3QgSQogCiAg
ICAgICAgIG1fbWFuYWdlci0+cmVxdWVzdFNwYWNlKG1faWRlbnRpZmllci5vcmlnaW4oKSwgMCwg
W3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHJlcXVlc3REYXRhLCBkYXRhLCBj
YWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXShib29sIGdyYW50ZWQpIG11dGFibGUgewogICAg
ICAgICAgICAgaWYgKCF3ZWFrVGhpcykKLSAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2so
SURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkRhdGFiYXNlIG9yIHRyYW5zYWN0aW9uIGlz
IGNsb3NlZCIgfSwgSURCR2V0UmVzdWx0IHsgfSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGNh
bGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBvciB0cmFuc2Fj
dGlvbiBpcyBjbG9zZWQiX3MgfSwgSURCR2V0UmVzdWx0IHsgfSk7CiAKICAgICAgICAgICAgIGl0
ZXJhdGVDdXJzb3IocmVxdWVzdERhdGEsIGRhdGEsIFdURk1vdmUoY2FsbGJhY2spLCBncmFudGVk
ID8gU3BhY2VDaGVja1Jlc3VsdDo6UGFzcyA6IFNwYWNlQ2hlY2tSZXN1bHQ6OkZhaWwpOwogICAg
ICAgICB9KTsKQEAgLTExMDYsNyArMTEwNiw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6Oml0
ZXJhdGVDdXJzb3IoY29uc3QgSURCUmVxdWVzdERhdGEmIHJlcXVlc3REYXRhLCBjb25zdCBJCiAK
ICAgICBBU1NFUlQoc3BhY2VDaGVja1Jlc3VsdCA9PSBTcGFjZUNoZWNrUmVzdWx0OjpQYXNzKTsK
ICAgICBpZiAoIW1fYmFja2luZ1N0b3JlKQotICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJy
b3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xvc2VkIiB9LCBJREJH
ZXRSZXN1bHQgeyB9KTsKKyAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxp
ZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3JlIGlzIGNsb3NlZCJfcyB9LCBJREJHZXRSZXN1bHQg
eyB9KTsKIAogICAgIElEQkdldFJlc3VsdCByZXN1bHQ7CiAgICAgYXV0byB0cmFuc2FjdGlvbklk
ZW50aWZpZXIgPSByZXF1ZXN0RGF0YS50cmFuc2FjdGlvbklkZW50aWZpZXIoKTsKQEAgLTExMjcs
NyArMTEyNyw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmNvbW1pdFRyYW5zYWN0aW9uKFVu
aXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mIHRyYW5zYWN0CiAKICAgICAgICAgbV9tYW5hZ2Vy
LT5yZXF1ZXN0U3BhY2UobV9pZGVudGlmaWVyLm9yaWdpbigpLCAwLCBbdGhpcywgd2Vha1RoaXMg
PSBXZWFrUHRyIHsgKnRoaXMgfSwgd2Vha1RyYW5zYWN0aW9uID0gV2Vha1B0ciB7IHRyYW5zYWN0
aW9uIH0sIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKGJvb2wgZ3JhbnRlZCkgbXV0YWJs
ZSB7CiAgICAgICAgICAgICBpZiAoIXdlYWtUaGlzIHx8ICF3ZWFrVHJhbnNhY3Rpb24pCi0gICAg
ICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3Is
ICJEYXRhYmFzZSBvciB0cmFuc2FjdGlvbiBpcyBjbG9zZWQiIH0pOworICAgICAgICAgICAgICAg
IHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJhc2Ug
b3IgdHJhbnNhY3Rpb24gaXMgY2xvc2VkIl9zIH0pOwogCiAgICAgICAgICAgICBjb21taXRUcmFu
c2FjdGlvbigqd2Vha1RyYW5zYWN0aW9uLCBXVEZNb3ZlKGNhbGxiYWNrKSwgZ3JhbnRlZCA/IFNw
YWNlQ2hlY2tSZXN1bHQ6OlBhc3MgOiBTcGFjZUNoZWNrUmVzdWx0OjpGYWlsKTsKICAgICAgICAg
fSk7CkBAIC0xMTM4LDcgKzExMzgsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpjb21taXRU
cmFuc2FjdGlvbihVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uJiB0cmFuc2FjdAogICAgIEFT
U0VSVCh0cmFuc2FjdGlvbi5kYXRhYmFzZUNvbm5lY3Rpb24oKS5kYXRhYmFzZSgpID09IHRoaXMp
OwogCiAgICAgaWYgKCFtX2JhY2tpbmdTdG9yZSkKLSAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElE
QkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3JlIGlzIGNsb3NlZCIgfSk7
CisgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAi
QmFja2luZyBzdG9yZSBpcyBjbG9zZWQiX3MgfSk7CiAKICAgICBhdXRvIHRha2VuVHJhbnNhY3Rp
b24gPSBtX2luUHJvZ3Jlc3NUcmFuc2FjdGlvbnMudGFrZSh0cmFuc2FjdGlvbi5pbmZvKCkuaWRl
bnRpZmllcigpKTsKICAgICBpZiAoIXRha2VuVHJhbnNhY3Rpb24pIHsKQEAgLTExNjYsNyArMTE2
Niw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmFib3J0VHJhbnNhY3Rpb24oVW5pcXVlSURC
RGF0YWJhc2VUcmFuc2FjdGlvbiYgdHJhbnNhY3RpCiAKICAgICAgICAgbV9tYW5hZ2VyLT5yZXF1
ZXN0U3BhY2UobV9pZGVudGlmaWVyLm9yaWdpbigpLCAwLCBbdGhpcywgd2Vha1RoaXMgPSBXZWFr
UHRyIHsgKnRoaXMgfSwgd2Vha1RyYW5zYWN0aW9uID0gV2Vha1B0ciB7IHRyYW5zYWN0aW9uIH0s
IGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKGJvb2wgZ3JhbnRlZCkgbXV0YWJsZSB7CiAg
ICAgICAgICAgICBpZiAoIXdlYWtUaGlzIHx8ICF3ZWFrVHJhbnNhY3Rpb24pCi0gICAgICAgICAg
ICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJEYXRh
YmFzZSBvciB0cmFuc2FjdGlvbiBpcyBjbG9zZWQiIH0pOworICAgICAgICAgICAgICAgIHJldHVy
biBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJhc2Ugb3IgdHJh
bnNhY3Rpb24gaXMgY2xvc2VkIl9zIH0pOwogCiAgICAgICAgICAgICBhYm9ydFRyYW5zYWN0aW9u
KCp3ZWFrVHJhbnNhY3Rpb24sIFdURk1vdmUoY2FsbGJhY2spLCBncmFudGVkID8gU3BhY2VDaGVj
a1Jlc3VsdDo6UGFzcyA6IFNwYWNlQ2hlY2tSZXN1bHQ6OkZhaWwpOwogICAgICAgICB9KTsKQEAg
LTEyMDIsNyArMTIwMiw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmFib3J0VHJhbnNhY3Rp
b24oVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbiYgdHJhbnNhY3RpCiAKICAgICBJREJFcnJv
ciBlcnJvcjsKICAgICBpZiAoIW1fYmFja2luZ1N0b3JlKQotICAgICAgICBlcnJvciA9IElEQkVy
cm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3JlIGlzIGNsb3NlZCIgfTsKKyAg
ICAgICAgZXJyb3IgPSBJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiQmFja2luZyBzdG9y
ZSBpcyBjbG9zZWQiX3MgfTsKICAgICBlbHNlCiAgICAgICAgIGVycm9yID0gbV9iYWNraW5nU3Rv
cmUtPmFib3J0VHJhbnNhY3Rpb24odHJhbnNhY3Rpb25JZGVudGlmaWVyKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQkluZGV4SW5mby5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCSW5kZXhJbmZv
LmNwcAppbmRleCBlNzFkMmViZjIxYzRhZGZlZjI4YTJiZGFmYTFmZjg0YjNmN2YwMzk4Li43YWJh
ODMxZDcwMGVhOThmZWIyY2M5YWE0NGM5NjJjNGI1OTQ0N2I5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCSW5kZXhJbmZvLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCSW5kZXhJbmZvLmNwcApA
QCAtNjEsNyArNjEsNyBAQCBTdHJpbmcgSURCSW5kZXhJbmZvOjpsb2dnaW5nU3RyaW5nKGludCBp
bmRlbnQpIGNvbnN0CiB7CiAgICAgU3RyaW5nIGluZGVudFN0cmluZzsKICAgICBmb3IgKGludCBp
ID0gMDsgaSA8IGluZGVudDsgKytpKQotICAgICAgICBpbmRlbnRTdHJpbmcuYXBwZW5kKCIgIik7
CisgICAgICAgIGluZGVudFN0cmluZy5hcHBlbmQoJyAnKTsKICAgICByZXR1cm4gbWFrZVN0cmlu
ZyhpbmRlbnRTdHJpbmcsICJJbmRleDogIiwgbV9uYW1lLCAiICgiLCBtX2lkZW50aWZpZXIsICIp
IGtleVBhdGg6ICIsIFdlYkNvcmU6OmxvZ2dpbmdTdHJpbmcobV9rZXlQYXRoKSwgJ1xuJyk7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRp
YUNvbnRyb2xzSG9zdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMv
TWVkaWFDb250cm9sc0hvc3QuY3BwCmluZGV4IGI4MjVlYzgwMDUxNDgwMjhlMmIwN2IxOWRjNzgz
OTJhNDNhOGNiYTUuLjMzMmY0NjI2YmQzMmU4MzFhZDkwOGE0NmFjNGRjMTQ2ZTZlY2NhODcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRpYUNvbnRy
b2xzSG9zdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01l
ZGlhQ29udHJvbHNIb3N0LmNwcApAQCAtMTE4LDE0ICsxMTgsMTQgQEAgTWVkaWFDb250cm9sc0hv
c3Q6On5NZWRpYUNvbnRyb2xzSG9zdCgpCiBTdHJpbmcgTWVkaWFDb250cm9sc0hvc3Q6OmxheW91
dFRyYWl0c0NsYXNzTmFtZSgpIGNvbnN0CiB7CiAjaWYgZGVmaW5lZChNRURJQV9DT05UUk9MU19I
T1NUX0xBWU9VVF9UUkFJVFNfQ0xBU1NfTkFNRV9PVkVSUklERSkKLSAgICByZXR1cm4gTUVESUFf
Q09OVFJPTFNfSE9TVF9MQVlPVVRfVFJBSVRTX0NMQVNTX05BTUVfT1ZFUlJJREU7CisgICAgcmV0
dXJuIE1FRElBX0NPTlRST0xTX0hPU1RfTEFZT1VUX1RSQUlUU19DTEFTU19OQU1FX09WRVJSSURF
IiJfczsKICNlbHNlCiAjaWYgUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShNQUNDQVRBTFlTVCkK
LSAgICByZXR1cm4gIk1hY09TTGF5b3V0VHJhaXRzIjsKKyAgICByZXR1cm4gIk1hY09TTGF5b3V0
VHJhaXRzIl9zOwogI2VsaWYgUExBVEZPUk0oSU9TKQotICAgIHJldHVybiAiSU9TTGF5b3V0VHJh
aXRzIjsKKyAgICByZXR1cm4gIklPU0xheW91dFRyYWl0cyJfczsKICNlbGlmIFBMQVRGT1JNKFdB
VENIT1MpCi0gICAgcmV0dXJuICJXYXRjaE9TTGF5b3V0VHJhaXRzIjsKKyAgICByZXR1cm4gIldh
dGNoT1NMYXlvdXRUcmFpdHMiX3M7CiAjZWxzZQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwog
ICAgIHJldHVybiBudWxsU3RyaW5nKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhcmVjb3JkZXIvTWVkaWFSZWNvcmRlci5jcHAKaW5kZXggYTkxZTY2OTAwMDQ4MzE2
YTlhOTEzY2EwZDUxMjhlYWExNTFkOWNjZS4uZmY5NDk5OWMyMDJhMzIwNTRjNjE2YmYzNjZjNjcz
YWViNDI3ZjY1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29y
ZGVyL01lZGlhUmVjb3JkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFy
ZWNvcmRlci9NZWRpYVJlY29yZGVyLmNwcApAQCAtNjYsNyArNjYsNyBAQCBFeGNlcHRpb25PcjxS
ZWY8TWVkaWFSZWNvcmRlcj4+IE1lZGlhUmVjb3JkZXI6OmNyZWF0ZShEb2N1bWVudCYgZG9jdW1l
bnQsIFJlZjxNZQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3Ig
fTsKIAogICAgIGlmICghaXNUeXBlU3VwcG9ydGVkKGRvY3VtZW50LCBvcHRpb25zLm1pbWVUeXBl
KSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yLCAibWltZVR5
cGUgaXMgbm90IHN1cHBvcnRlZCIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1
cHBvcnRlZEVycm9yLCAibWltZVR5cGUgaXMgbm90IHN1cHBvcnRlZCJfcyB9OwogCiAgICAgYXV0
byByZWNvcmRlciA9IGFkb3B0UmVmKCpuZXcgTWVkaWFSZWNvcmRlcihkb2N1bWVudCwgV1RGTW92
ZShzdHJlYW0pLCBXVEZNb3ZlKG9wdGlvbnMpKSk7CiAgICAgcmVjb3JkZXItPnN1c3BlbmRJZk5l
ZWRlZCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXNvdXJjZS9N
ZWRpYVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlh
U291cmNlLmNwcAppbmRleCBhNTkwMzdhNDA1ODYzMThmMjE2YTZlYTAxOWRiMjRhOWIwMzk3MjQ4
Li44Y2I2ZDVjZmMzOGQ2ZWY4MGY3ZTM5NDFmYjk1OGEzNGQ1MzVmY2M4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlhU291cmNlLmNwcApAQCAtNjUw
LDcgKzY1MCw3IEBAIHN0YXRpYyBDb250ZW50VHlwZSBhZGRWUDlGdWxsUmFuZ2VWaWRlb0ZsYWdU
b0NvbnRlbnRUeXBlKGNvbnN0IENvbnRlbnRUeXBlJiB0eXBlCiAgICAgICAgIGlmIChwb3NpdGlv
biA9PSBub3RGb3VuZCkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAgICAgIHJhd1R5cGUu
aW5zZXJ0KCIuMDAiLCBwb3NpdGlvbiArIGNvZGVjLmxlbmd0aCgpKTsKKyAgICAgICAgcmF3VHlw
ZS5pbnNlcnQoIi4wMCJfcywgcG9zaXRpb24gKyBjb2RlYy5sZW5ndGgoKSk7CiAgICAgICAgIHJl
dHVybiBDb250ZW50VHlwZShyYXdUeXBlKTsKICAgICB9CiAgICAgcmV0dXJuIHR5cGU7CkBAIC04
OTUsNyArODk1LDcgQEAgYm9vbCBNZWRpYVNvdXJjZTo6aXNUeXBlU3VwcG9ydGVkKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIGNvbnN0IFN0cmluZyYKICAgICBpZiAoY29udGV4dC5p
c0RvY3VtZW50KCkgJiYgZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpLnF1aXJrcygpLm5lZWRz
VlA5RnVsbFJhbmdlRmxhZ1F1aXJrKCkpCiAgICAgICAgIGNvbnRlbnRUeXBlID0gYWRkVlA5RnVs
bFJhbmdlVmlkZW9GbGFnVG9Db250ZW50VHlwZShjb250ZW50VHlwZSk7CiAKLSAgICBTdHJpbmcg
Y29kZWNzID0gY29udGVudFR5cGUucGFyYW1ldGVyKCJjb2RlY3MiKTsKKyAgICBTdHJpbmcgY29k
ZWNzID0gY29udGVudFR5cGUucGFyYW1ldGVyKCJjb2RlY3MiX3MpOwogCiAgICAgLy8gMi4gSWYg
dHlwZSBkb2VzIG5vdCBjb250YWluIGEgdmFsaWQgTUlNRSB0eXBlIHN0cmluZywgdGhlbiByZXR1
cm4gZmFsc2UuCiAgICAgaWYgKGNvbnRlbnRUeXBlLmNvbnRhaW5lclR5cGUoKS5pc0VtcHR5KCkp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhVHJh
Y2tDb25zdHJhaW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01l
ZGlhVHJhY2tDb25zdHJhaW50cy5jcHAKaW5kZXggMzExMzg0N2RiNzU0ODQ3ZDYxNjJmYTJkNjFl
NjczNGE2YTg4ODViMy4uMmY4ZDhiZDI3ZDczNTU0NmJhODRiNjE4MDhhNmNkYWIzZjMyOGUxNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVRyYWNr
Q29uc3RyYWludHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
TWVkaWFUcmFja0NvbnN0cmFpbnRzLmNwcApAQCAtMzMsNyArMzMsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGVudW0gY2xhc3MgQ29uc3RyYWludFNldFR5cGUgeyBNYW5kYXRvcnksIEFkdmFu
Y2VkIH07CiAKLXN0YXRpYyB2b2lkIHNldChNZWRpYVRyYWNrQ29uc3RyYWludFNldE1hcCYgbWFw
LCBDb25zdHJhaW50U2V0VHlwZSBzZXRUeXBlLCBjb25zdCBjaGFyKiB0eXBlQXNTdHJpbmcsIE1l
ZGlhQ29uc3RyYWludFR5cGUgdHlwZSwgY29uc3QgQ29uc3RyYWluTG9uZyYgdmFsdWUpCitzdGF0
aWMgdm9pZCBzZXQoTWVkaWFUcmFja0NvbnN0cmFpbnRTZXRNYXAmIG1hcCwgQ29uc3RyYWludFNl
dFR5cGUgc2V0VHlwZSwgQVNDSUlMaXRlcmFsIHR5cGVBc1N0cmluZywgTWVkaWFDb25zdHJhaW50
VHlwZSB0eXBlLCBjb25zdCBDb25zdHJhaW5Mb25nJiB2YWx1ZSkKIHsKICAgICBJbnRDb25zdHJh
aW50IGNvbnN0cmFpbnQodHlwZUFzU3RyaW5nLCB0eXBlKTsKICAgICBXVEY6OnN3aXRjaE9uKHZh
bHVlLApAQCAtNTcsNyArNTcsNyBAQCBzdGF0aWMgdm9pZCBzZXQoTWVkaWFUcmFja0NvbnN0cmFp
bnRTZXRNYXAmIG1hcCwgQ29uc3RyYWludFNldFR5cGUgc2V0VHlwZSwgY29ucwogICAgIG1hcC5z
ZXQodHlwZSwgV1RGTW92ZShjb25zdHJhaW50KSk7CiB9CiAKLXN0YXRpYyB2b2lkIHNldChNZWRp
YVRyYWNrQ29uc3RyYWludFNldE1hcCYgbWFwLCBDb25zdHJhaW50U2V0VHlwZSBzZXRUeXBlLCBj
b25zdCBjaGFyKiB0eXBlQXNTdHJpbmcsIE1lZGlhQ29uc3RyYWludFR5cGUgdHlwZSwgY29uc3Qg
Q29uc3RyYWluRG91YmxlJiB2YWx1ZSkKK3N0YXRpYyB2b2lkIHNldChNZWRpYVRyYWNrQ29uc3Ry
YWludFNldE1hcCYgbWFwLCBDb25zdHJhaW50U2V0VHlwZSBzZXRUeXBlLCBBU0NJSUxpdGVyYWwg
dHlwZUFzU3RyaW5nLCBNZWRpYUNvbnN0cmFpbnRUeXBlIHR5cGUsIGNvbnN0IENvbnN0cmFpbkRv
dWJsZSYgdmFsdWUpCiB7CiAgICAgRG91YmxlQ29uc3RyYWludCBjb25zdHJhaW50KHR5cGVBc1N0
cmluZywgdHlwZSk7CiAgICAgV1RGOjpzd2l0Y2hPbih2YWx1ZSwKQEAgLTgxLDcgKzgxLDcgQEAg
c3RhdGljIHZvaWQgc2V0KE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwJiBtYXAsIENvbnN0cmFp
bnRTZXRUeXBlIHNldFR5cGUsIGNvbnMKICAgICBtYXAuc2V0KHR5cGUsIFdURk1vdmUoY29uc3Ry
YWludCkpOwogfQogCi1zdGF0aWMgdm9pZCBzZXQoTWVkaWFUcmFja0NvbnN0cmFpbnRTZXRNYXAm
IG1hcCwgQ29uc3RyYWludFNldFR5cGUgc2V0VHlwZSwgY29uc3QgY2hhciogdHlwZUFzU3RyaW5n
LCBNZWRpYUNvbnN0cmFpbnRUeXBlIHR5cGUsIGNvbnN0IENvbnN0cmFpbkJvb2xlYW4mIHZhbHVl
KQorc3RhdGljIHZvaWQgc2V0KE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwJiBtYXAsIENvbnN0
cmFpbnRTZXRUeXBlIHNldFR5cGUsIEFTQ0lJTGl0ZXJhbCB0eXBlQXNTdHJpbmcsIE1lZGlhQ29u
c3RyYWludFR5cGUgdHlwZSwgY29uc3QgQ29uc3RyYWluQm9vbGVhbiYgdmFsdWUpCiB7CiAgICAg
Qm9vbGVhbkNvbnN0cmFpbnQgY29uc3RyYWludCh0eXBlQXNTdHJpbmcsIHR5cGUpOwogICAgIFdU
Rjo6c3dpdGNoT24odmFsdWUsCkBAIC0xMDEsNyArMTAxLDcgQEAgc3RhdGljIHZvaWQgc2V0KE1l
ZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwJiBtYXAsIENvbnN0cmFpbnRTZXRUeXBlIHNldFR5cGUs
IGNvbnMKICAgICBtYXAuc2V0KHR5cGUsIFdURk1vdmUoY29uc3RyYWludCkpOwogfQogCi1zdGF0
aWMgdm9pZCBzZXQoTWVkaWFUcmFja0NvbnN0cmFpbnRTZXRNYXAmIG1hcCwgQ29uc3RyYWludFNl
dFR5cGUgc2V0VHlwZSwgY29uc3QgY2hhciogdHlwZUFzU3RyaW5nLCBNZWRpYUNvbnN0cmFpbnRU
eXBlIHR5cGUsIGNvbnN0IENvbnN0cmFpbkRPTVN0cmluZyYgdmFsdWUpCitzdGF0aWMgdm9pZCBz
ZXQoTWVkaWFUcmFja0NvbnN0cmFpbnRTZXRNYXAmIG1hcCwgQ29uc3RyYWludFNldFR5cGUgc2V0
VHlwZSwgQVNDSUlMaXRlcmFsIHR5cGVBc1N0cmluZywgTWVkaWFDb25zdHJhaW50VHlwZSB0eXBl
LCBjb25zdCBDb25zdHJhaW5ET01TdHJpbmcmIHZhbHVlKQogewogICAgIFN0cmluZ0NvbnN0cmFp
bnQgY29uc3RyYWludCh0eXBlQXNTdHJpbmcsIHR5cGUpOwogICAgIFdURjo6c3dpdGNoT24odmFs
dWUsCkBAIC0xNDgsNyArMTQ4LDcgQEAgc3RhdGljIHZvaWQgc2V0KE1lZGlhVHJhY2tDb25zdHJh
aW50U2V0TWFwJiBtYXAsIENvbnN0cmFpbnRTZXRUeXBlIHNldFR5cGUsIGNvbnMKICAgICBtYXAu
c2V0KHR5cGUsIFdURk1vdmUoY29uc3RyYWludCkpOwogfQogCi10ZW1wbGF0ZTx0eXBlbmFtZSBU
PiBzdGF0aWMgaW5saW5lIHZvaWQgc2V0KE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwJiBtYXAs
IENvbnN0cmFpbnRTZXRUeXBlIHNldFR5cGUsIGNvbnN0IGNoYXIqIHR5cGVBc1N0cmluZywgTWVk
aWFDb25zdHJhaW50VHlwZSB0eXBlLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFQ+JiB2YWx1ZSkKK3Rl
bXBsYXRlPHR5cGVuYW1lIFQ+IHN0YXRpYyBpbmxpbmUgdm9pZCBzZXQoTWVkaWFUcmFja0NvbnN0
cmFpbnRTZXRNYXAmIG1hcCwgQ29uc3RyYWludFNldFR5cGUgc2V0VHlwZSwgQVNDSUlMaXRlcmFs
IHR5cGVBc1N0cmluZywgTWVkaWFDb25zdHJhaW50VHlwZSB0eXBlLCBjb25zdCBzdGQ6Om9wdGlv
bmFsPFQ+JiB2YWx1ZSkKIHsKICAgICBpZiAoIXZhbHVlKQogICAgICAgICByZXR1cm47CkBAIC0x
NTgsMjEgKzE1OCwyMSBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiBzdGF0aWMgaW5saW5lIHZvaWQg
c2V0KE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwJiBtYXAsIENvbgogc3RhdGljIE1lZGlhVHJh
Y2tDb25zdHJhaW50U2V0TWFwIGNvbnZlcnRUb0ludGVybmFsRm9ybShDb25zdHJhaW50U2V0VHlw
ZSBzZXRUeXBlLCBjb25zdCBNZWRpYVRyYWNrQ29uc3RyYWludFNldCYgY29uc3RyYWludFNldCkK
IHsKICAgICBNZWRpYVRyYWNrQ29uc3RyYWludFNldE1hcCByZXN1bHQ7Ci0gICAgc2V0KHJlc3Vs
dCwgc2V0VHlwZSwgIndpZHRoIiwgTWVkaWFDb25zdHJhaW50VHlwZTo6V2lkdGgsIGNvbnN0cmFp
bnRTZXQud2lkdGgpOwotICAgIHNldChyZXN1bHQsIHNldFR5cGUsICJoZWlnaHQiLCBNZWRpYUNv
bnN0cmFpbnRUeXBlOjpIZWlnaHQsIGNvbnN0cmFpbnRTZXQuaGVpZ2h0KTsKLSAgICBzZXQocmVz
dWx0LCBzZXRUeXBlLCAiYXNwZWN0UmF0aW8iLCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpBc3BlY3RS
YXRpbywgY29uc3RyYWludFNldC5hc3BlY3RSYXRpbyk7Ci0gICAgc2V0KHJlc3VsdCwgc2V0VHlw
ZSwgImZyYW1lUmF0ZSIsIE1lZGlhQ29uc3RyYWludFR5cGU6OkZyYW1lUmF0ZSwgY29uc3RyYWlu
dFNldC5mcmFtZVJhdGUpOwotICAgIHNldChyZXN1bHQsIHNldFR5cGUsICJmYWNpbmdNb2RlIiwg
TWVkaWFDb25zdHJhaW50VHlwZTo6RmFjaW5nTW9kZSwgY29uc3RyYWludFNldC5mYWNpbmdNb2Rl
KTsKLSAgICBzZXQocmVzdWx0LCBzZXRUeXBlLCAidm9sdW1lIiwgTWVkaWFDb25zdHJhaW50VHlw
ZTo6Vm9sdW1lLCBjb25zdHJhaW50U2V0LnZvbHVtZSk7Ci0gICAgc2V0KHJlc3VsdCwgc2V0VHlw
ZSwgInNhbXBsZVJhdGUiLCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpTYW1wbGVSYXRlLCBjb25zdHJh
aW50U2V0LnNhbXBsZVJhdGUpOwotICAgIHNldChyZXN1bHQsIHNldFR5cGUsICJzYW1wbGVTaXpl
IiwgTWVkaWFDb25zdHJhaW50VHlwZTo6U2FtcGxlU2l6ZSwgY29uc3RyYWludFNldC5zYW1wbGVT
aXplKTsKLSAgICBzZXQocmVzdWx0LCBzZXRUeXBlLCAiZWNob0NhbmNlbGxhdGlvbiIsIE1lZGlh
Q29uc3RyYWludFR5cGU6OkVjaG9DYW5jZWxsYXRpb24sIGNvbnN0cmFpbnRTZXQuZWNob0NhbmNl
bGxhdGlvbik7CisgICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgIndpZHRoIl9zLCBNZWRpYUNvbnN0
cmFpbnRUeXBlOjpXaWR0aCwgY29uc3RyYWludFNldC53aWR0aCk7CisgICAgc2V0KHJlc3VsdCwg
c2V0VHlwZSwgImhlaWdodCJfcywgTWVkaWFDb25zdHJhaW50VHlwZTo6SGVpZ2h0LCBjb25zdHJh
aW50U2V0LmhlaWdodCk7CisgICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgImFzcGVjdFJhdGlvIl9z
LCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpBc3BlY3RSYXRpbywgY29uc3RyYWludFNldC5hc3BlY3RS
YXRpbyk7CisgICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgImZyYW1lUmF0ZSJfcywgTWVkaWFDb25z
dHJhaW50VHlwZTo6RnJhbWVSYXRlLCBjb25zdHJhaW50U2V0LmZyYW1lUmF0ZSk7CisgICAgc2V0
KHJlc3VsdCwgc2V0VHlwZSwgImZhY2luZ01vZGUiX3MsIE1lZGlhQ29uc3RyYWludFR5cGU6OkZh
Y2luZ01vZGUsIGNvbnN0cmFpbnRTZXQuZmFjaW5nTW9kZSk7CisgICAgc2V0KHJlc3VsdCwgc2V0
VHlwZSwgInZvbHVtZSJfcywgTWVkaWFDb25zdHJhaW50VHlwZTo6Vm9sdW1lLCBjb25zdHJhaW50
U2V0LnZvbHVtZSk7CisgICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgInNhbXBsZVJhdGUiX3MsIE1l
ZGlhQ29uc3RyYWludFR5cGU6OlNhbXBsZVJhdGUsIGNvbnN0cmFpbnRTZXQuc2FtcGxlUmF0ZSk7
CisgICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgInNhbXBsZVNpemUiX3MsIE1lZGlhQ29uc3RyYWlu
dFR5cGU6OlNhbXBsZVNpemUsIGNvbnN0cmFpbnRTZXQuc2FtcGxlU2l6ZSk7CisgICAgc2V0KHJl
c3VsdCwgc2V0VHlwZSwgImVjaG9DYW5jZWxsYXRpb24iX3MsIE1lZGlhQ29uc3RyYWludFR5cGU6
OkVjaG9DYW5jZWxsYXRpb24sIGNvbnN0cmFpbnRTZXQuZWNob0NhbmNlbGxhdGlvbik7CiAgICAg
Ly8gRklYTUU6IGFkZCBsYXRlbmN5CiAgICAgLy8gRklYTUU6IGFkZCBjaGFubmVsQ291bnQKLSAg
ICBzZXQocmVzdWx0LCBzZXRUeXBlLCAiZGV2aWNlSWQiLCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpE
ZXZpY2VJZCwgY29uc3RyYWludFNldC5kZXZpY2VJZCk7Ci0gICAgc2V0KHJlc3VsdCwgc2V0VHlw
ZSwgImdyb3VwSWQiLCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpHcm91cElkLCBjb25zdHJhaW50U2V0
Lmdyb3VwSWQpOwotICAgIHNldChyZXN1bHQsIHNldFR5cGUsICJkaXNwbGF5U3VyZmFjZSIsIE1l
ZGlhQ29uc3RyYWludFR5cGU6OkRpc3BsYXlTdXJmYWNlLCBjb25zdHJhaW50U2V0LmRpc3BsYXlT
dXJmYWNlKTsKLSAgICBzZXQocmVzdWx0LCBzZXRUeXBlLCAibG9naWNhbFN1cmZhY2UiLCBNZWRp
YUNvbnN0cmFpbnRUeXBlOjpMb2dpY2FsU3VyZmFjZSwgY29uc3RyYWludFNldC5sb2dpY2FsU3Vy
ZmFjZSk7CisgICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgImRldmljZUlkIl9zLCBNZWRpYUNvbnN0
cmFpbnRUeXBlOjpEZXZpY2VJZCwgY29uc3RyYWludFNldC5kZXZpY2VJZCk7CisgICAgc2V0KHJl
c3VsdCwgc2V0VHlwZSwgImdyb3VwSWQiX3MsIE1lZGlhQ29uc3RyYWludFR5cGU6Okdyb3VwSWQs
IGNvbnN0cmFpbnRTZXQuZ3JvdXBJZCk7CisgICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgImRpc3Bs
YXlTdXJmYWNlIl9zLCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpEaXNwbGF5U3VyZmFjZSwgY29uc3Ry
YWludFNldC5kaXNwbGF5U3VyZmFjZSk7CisgICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgImxvZ2lj
YWxTdXJmYWNlIl9zLCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpMb2dpY2FsU3VyZmFjZSwgY29uc3Ry
YWludFNldC5sb2dpY2FsU3VyZmFjZSk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENJY2VDYW5kaWRhdGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENJY2VDYW5kaWRhdGUu
Y3BwCmluZGV4IDlmNzA2ZGY2ZGY2NWU3Zjk1ODE1NzUxNDAyMjQ4ZTA4YzdhMjNmYTAuLmJiN2Vm
NzQxMjYxOWMwNTlkY2VjNzRkNjhlZTJkYmUwYzkzYWJjMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDSWNlQ2FuZGlkYXRlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0ljZUNhbmRpZGF0ZS5jcHAKQEAgLTU0
LDcgKzU0LDcgQEAgUlRDSWNlQ2FuZGlkYXRlOjpSVENJY2VDYW5kaWRhdGUoY29uc3QgU3RyaW5n
JiBjYW5kaWRhdGUsIGNvbnN0IFN0cmluZyYgc2RwTWlkLAogRXhjZXB0aW9uT3I8UmVmPFJUQ0lj
ZUNhbmRpZGF0ZT4+IFJUQ0ljZUNhbmRpZGF0ZTo6Y3JlYXRlKGNvbnN0IFJUQ0ljZUNhbmRpZGF0
ZUluaXQmIGRpY3Rpb25hcnkpCiB7CiAgICAgaWYgKGRpY3Rpb25hcnkuc2RwTWlkLmlzTnVsbCgp
ICYmICFkaWN0aW9uYXJ5LnNkcE1MaW5lSW5kZXgpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBUeXBlRXJyb3IsICJDYW5kaWRhdGUgbXVzdCBub3QgaGF2ZSBib3RoIG51bGwgc2RwTWlkIGFu
ZCBzZHBNTGluZUluZGV4IiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9y
LCAiQ2FuZGlkYXRlIG11c3Qgbm90IGhhdmUgYm90aCBudWxsIHNkcE1pZCBhbmQgc2RwTUxpbmVJ
bmRleCJfcyB9OwogCiAgICAgYXV0byBmaWVsZHMgPSB2YWx1ZU9yRGVmYXVsdChwYXJzZUljZUNh
bmRpZGF0ZVNEUChkaWN0aW9uYXJ5LmNhbmRpZGF0ZSkpOwogICAgIGZpZWxkcy51c2VybmFtZUZy
YWdtZW50ID0gZGljdGlvbmFyeS51c2VybmFtZUZyYWdtZW50OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENQZWVyQ29ubmVjdGlvbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcAppbmRl
eCA5MGRlNjM5OTM0ZWQ2MWM1YzBiMTAxMmMwYWE1Mzk3ZGQwZDhiMzJhLi40MTU2NmE1NTVmNjJl
ZTUwOGUwZGQxYTFkZDcwODg0ZWY3NTBmNWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcApAQCAtMjczLDcg
KzI3Myw3IEBAIHZvaWQgUlRDUGVlckNvbm5lY3Rpb246OnNldExvY2FsRGVzY3JpcHRpb24oc3Rk
OjpvcHRpb25hbDxSVENMb2NhbFNlc3Npb25EZXNjcmlwCiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKLSAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIsICJTZXR0aW5nIGxvY2FsIGRlc2NyaXB0
aW9uIHRvOlxuIiwgbG9jYWxEZXNjcmlwdGlvbiA/IGxvY2FsRGVzY3JpcHRpb24tPnNkcCA6ICIn
JyIpOworICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgIlNldHRpbmcgbG9jYWwgZGVzY3Jp
cHRpb24gdG86XG4iLCBsb2NhbERlc2NyaXB0aW9uID8gbG9jYWxEZXNjcmlwdGlvbi0+c2RwIDog
IicnIl9zKTsKICAgICBjaGFpbk9wZXJhdGlvbihXVEZNb3ZlKHByb21pc2UpLCBbdGhpcywgbG9j
YWxEZXNjcmlwdGlvbiA9IFdURk1vdmUobG9jYWxEZXNjcmlwdGlvbildKGF1dG8mJiBwcm9taXNl
KSBtdXRhYmxlIHsKICAgICAgICAgYXV0byB0eXBlID0gdHlwZUZvclNldExvY2FsRGVzY3JpcHRp
b24obG9jYWxEZXNjcmlwdGlvbiwgbV9zaWduYWxpbmdTdGF0ZSk7CiAgICAgICAgIFN0cmluZyBz
ZHA7CkBAIC0zNDQsNyArMzQ0LDcgQEAgdm9pZCBSVENQZWVyQ29ubmVjdGlvbjo6YWRkSWNlQ2Fu
ZGlkYXRlKENhbmRpZGF0ZSYmIHJ0Y0NhbmRpZGF0ZSwgUmVmPERlZmVycmVkUHIKICAgICAgICAg
fSk7CiAgICAgfQogCi0gICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCAiUmVjZWl2ZWQgaWNl
IGNhbmRpZGF0ZTpcbiIsIGNhbmRpZGF0ZSA/IGNhbmRpZGF0ZS0+Y2FuZGlkYXRlKCkgOiAibnVs
bCIpOworICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgIlJlY2VpdmVkIGljZSBjYW5kaWRh
dGU6XG4iLCBjYW5kaWRhdGUgPyBjYW5kaWRhdGUtPmNhbmRpZGF0ZSgpIDogIm51bGwiX3MpOwog
CiAgICAgaWYgKGV4Y2VwdGlvbikgewogICAgICAgICBwcm9taXNlLT5yZWplY3QoKmV4Y2VwdGlv
bik7CkBAIC0zNzksMTMgKzM3OSwxMyBAQCBzdGQ6Om9wdGlvbmFsPGJvb2w+IFJUQ1BlZXJDb25u
ZWN0aW9uOjpjYW5Ucmlja2xlSWNlQ2FuZGlkYXRlcygpIGNvbnN0CiBFeGNlcHRpb25PcjxWZWN0
b3I8TWVkaWFFbmRwb2ludENvbmZpZ3VyYXRpb246OkljZVNlcnZlckluZm8+PiBSVENQZWVyQ29u
bmVjdGlvbjo6aWNlU2VydmVyc0Zyb21Db25maWd1cmF0aW9uKFJUQ0NvbmZpZ3VyYXRpb24mIG5l
d0NvbmZpZ3VyYXRpb24sIGNvbnN0IFJUQ0NvbmZpZ3VyYXRpb24qIGV4aXN0aW5nQ29uZmlndXJh
dGlvbiwgYm9vbCBpc0xvY2FsRGVzY3JpcHRpb25TZXQpCiB7CiAgICAgaWYgKGV4aXN0aW5nQ29u
ZmlndXJhdGlvbiAmJiBuZXdDb25maWd1cmF0aW9uLmJ1bmRsZVBvbGljeSAhPSBleGlzdGluZ0Nv
bmZpZ3VyYXRpb24tPmJ1bmRsZVBvbGljeSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElu
dmFsaWRNb2RpZmljYXRpb25FcnJvciwgIkJ1bmRsZVBvbGljeSBkb2VzIG5vdCBtYXRjaCBleGlz
dGluZyBwb2xpY3kiIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkTW9kaWZp
Y2F0aW9uRXJyb3IsICJCdW5kbGVQb2xpY3kgZG9lcyBub3QgbWF0Y2ggZXhpc3RpbmcgcG9saWN5
Il9zIH07CiAKICAgICBpZiAoZXhpc3RpbmdDb25maWd1cmF0aW9uICYmIG5ld0NvbmZpZ3VyYXRp
b24ucnRjcE11eFBvbGljeSAhPSBleGlzdGluZ0NvbmZpZ3VyYXRpb24tPnJ0Y3BNdXhQb2xpY3kp
Ci0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3IsICJS
VENQTXV4UG9saWN5IGRvZXMgbm90IG1hdGNoIGV4aXN0aW5nIHBvbGljeSIgfTsKKyAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRNb2RpZmljYXRpb25FcnJvciwgIlJUQ1BNdXhQb2xp
Y3kgZG9lcyBub3QgbWF0Y2ggZXhpc3RpbmcgcG9saWN5Il9zIH07CiAKICAgICBpZiAoZXhpc3Rp
bmdDb25maWd1cmF0aW9uICYmIG5ld0NvbmZpZ3VyYXRpb24uaWNlQ2FuZGlkYXRlUG9vbFNpemUg
IT0gZXhpc3RpbmdDb25maWd1cmF0aW9uLT5pY2VDYW5kaWRhdGVQb29sU2l6ZSAmJiBpc0xvY2Fs
RGVzY3JpcHRpb25TZXQpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkTW9kaWZp
Y2F0aW9uRXJyb3IsICJJY2VUcmFuc3BvcnRQb2xpY3kgcG9vbCBzaXplIGRvZXMgbm90IG1hdGNo
IGV4aXN0aW5nIHBvb2wgc2l6ZSIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFs
aWRNb2RpZmljYXRpb25FcnJvciwgIkljZVRyYW5zcG9ydFBvbGljeSBwb29sIHNpemUgZG9lcyBu
b3QgbWF0Y2ggZXhpc3RpbmcgcG9vbCBzaXplIl9zIH07CiAKICAgICBWZWN0b3I8TWVkaWFFbmRw
b2ludENvbmZpZ3VyYXRpb246OkljZVNlcnZlckluZm8+IHNlcnZlcnM7CiAgICAgaWYgKG5ld0Nv
bmZpZ3VyYXRpb24uaWNlU2VydmVycykgewpAQCAtNDE0LDE4ICs0MTQsMTggQEAgRXhjZXB0aW9u
T3I8VmVjdG9yPE1lZGlhRW5kcG9pbnRDb25maWd1cmF0aW9uOjpJY2VTZXJ2ZXJJbmZvPj4gUlRD
UGVlckNvbm5lY3Rpb24KIAogICAgICAgICAgICAgZm9yIChhdXRvJiBzZXJ2ZXJVUkwgOiBzZXJ2
ZXJVUkxzKSB7CiAgICAgICAgICAgICAgICAgaWYgKHNlcnZlclVSTC5pc051bGwoKSkKLSAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIkJhZCBJQ0Ugc2Vy
dmVyIFVSTCIgfTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVF
cnJvciwgIkJhZCBJQ0Ugc2VydmVyIFVSTCJfcyB9OwogICAgICAgICAgICAgICAgIGlmIChzZXJ2
ZXJVUkwucHJvdG9jb2xJcygidHVybiIpIHx8IHNlcnZlclVSTC5wcm90b2NvbElzKCJ0dXJucyIp
KSB7CiAgICAgICAgICAgICAgICAgICAgIGlmIChzZXJ2ZXIuY3JlZGVudGlhbC5pc051bGwoKSB8
fCBzZXJ2ZXIudXNlcm5hbWUuaXNOdWxsKCkpCi0gICAgICAgICAgICAgICAgICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiVFVSTi9UVVJOUyBzZXJ2ZXIgcmVx
dWlyZXMgYm90aCB1c2VybmFtZSBhbmQgY3JlZGVudGlhbCIgfTsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJUVVJOL1RVUk5T
IHNlcnZlciByZXF1aXJlcyBib3RoIHVzZXJuYW1lIGFuZCBjcmVkZW50aWFsIl9zIH07CiAgICAg
ICAgICAgICAgICAgICAgIC8vIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM4NDg5I3Nl
Y3Rpb24tMTQuMwogICAgICAgICAgICAgICAgICAgICBpZiAoc2VydmVyLmNyZWRlbnRpYWwubGVu
Z3RoKCkgPiA2NCB8fCBzZXJ2ZXIudXNlcm5hbWUubGVuZ3RoKCkgPiA2NCkgewogICAgICAgICAg
ICAgICAgICAgICAgICAgY29uc3RleHByIHNpemVfdCBNYXhUdXJuVXNlcm5hbWVMZW5ndGggPSA1
MDk7CiAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2VydmVyLmNyZWRlbnRpYWwudXRmOCgp
Lmxlbmd0aCgpID4gTWF4VHVyblVzZXJuYW1lTGVuZ3RoIHx8IHNlcnZlci51c2VybmFtZS51dGY4
KCkubGVuZ3RoKCkgPiBNYXhUdXJuVXNlcm5hbWVMZW5ndGgpCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIlRVUk4vVFVSTlMgdXNlcm5h
bWUgYW5kL29yIGNyZWRlbnRpYWwgYXJlIHRvbyBsb25nIiB9OworICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJUVVJOL1RVUk5TIHVzZXJu
YW1lIGFuZC9vciBjcmVkZW50aWFsIGFyZSB0b28gbG9uZyJfcyB9OwogICAgICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICghc2VydmVyVVJMLnByb3RvY29sSXMo
InN0dW4iKSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBv
cnRlZEVycm9yLCAiSUNFIHNlcnZlciBwcm90b2NvbCBub3Qgc3VwcG9ydGVkIiB9OworICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IsICJJQ0Ug
c2VydmVyIHByb3RvY29sIG5vdCBzdXBwb3J0ZWQiX3MgfTsKICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIGlmIChzZXJ2ZXJVUkxzLnNpemUoKSkKICAgICAgICAgICAgICAgICBzZXJ2ZXJzLnVu
Y2hlY2tlZEFwcGVuZCh7IFdURk1vdmUoc2VydmVyVVJMcyksIHNlcnZlci5jcmVkZW50aWFsLCBz
ZXJ2ZXIudXNlcm5hbWUgfSk7CkBAIC00NDMsNyArNDQzLDcgQEAgRXhjZXB0aW9uT3I8VmVjdG9y
PE1lZGlhRW5kcG9pbnRDb25maWd1cmF0aW9uOjpDZXJ0aWZpY2F0ZVBFTT4+IFJUQ1BlZXJDb25u
ZWN0aW8KICAgICBjZXJ0aWZpY2F0ZXMucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShjb25maWd1cmF0
aW9uLmNlcnRpZmljYXRlcy5zaXplKCkpOwogICAgIGZvciAoYXV0byYgY2VydGlmaWNhdGUgOiBj
b25maWd1cmF0aW9uLmNlcnRpZmljYXRlcykgewogICAgICAgICBpZiAoIW9yaWdpbi5pc1NhbWVP
cmlnaW5BcyhjZXJ0aWZpY2F0ZS0+b3JpZ2luKCkpKQotICAgICAgICAgICAgcmV0dXJuIEV4Y2Vw
dGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwgIkNlcnRpZmljYXRlIGRvZXMgbm90IGhhdmUgYSB2
YWxpZCBvcmlnaW4iIH07CisgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFj
Y2Vzc0Vycm9yLCAiQ2VydGlmaWNhdGUgZG9lcyBub3QgaGF2ZSBhIHZhbGlkIG9yaWdpbiJfcyB9
OwogCiAgICAgICAgIGlmIChjdXJyZW50TWlsbGlTZWNvbmRzID4gY2VydGlmaWNhdGUtPmV4cGly
ZXMoKSkKICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3Is
ICJDZXJ0aWZpY2F0ZSBoYXMgZXhwaXJlZCJfcyB9OwpAQCAtNDY2LDcgKzQ2Niw3IEBAIEV4Y2Vw
dGlvbk9yPHZvaWQ+IFJUQ1BlZXJDb25uZWN0aW9uOjppbml0aWFsaXplQ29uZmlndXJhdGlvbihS
VENDb25maWd1cmF0aW9uJiYKICAgICAgICAgcmV0dXJuIGNlcnRpZmljYXRlcy5yZWxlYXNlRXhj
ZXB0aW9uKCk7CiAKICAgICBpZiAoIW1fYmFja2VuZC0+c2V0Q29uZmlndXJhdGlvbih7IHNlcnZl
cnMucmVsZWFzZVJldHVyblZhbHVlKCksIGNvbmZpZ3VyYXRpb24uaWNlVHJhbnNwb3J0UG9saWN5
LCBjb25maWd1cmF0aW9uLmJ1bmRsZVBvbGljeSwgY29uZmlndXJhdGlvbi5ydGNwTXV4UG9saWN5
LCBjb25maWd1cmF0aW9uLmljZUNhbmRpZGF0ZVBvb2xTaXplLCBjZXJ0aWZpY2F0ZXMucmVsZWFz
ZVJldHVyblZhbHVlKCkgfSkpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNj
ZXNzRXJyb3IsICJCYWQgQ29uZmlndXJhdGlvbiBQYXJhbWV0ZXJzIiB9OworICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiQmFkIENvbmZpZ3VyYXRpb24gUGFy
YW1ldGVycyJfcyB9OwogCiAgICAgbV9jb25maWd1cmF0aW9uID0gV1RGTW92ZShjb25maWd1cmF0
aW9uKTsKICAgICByZXR1cm4geyB9OwpAQCAtNDg1LDE5ICs0ODUsMTkgQEAgRXhjZXB0aW9uT3I8
dm9pZD4gUlRDUGVlckNvbm5lY3Rpb246OnNldENvbmZpZ3VyYXRpb24oUlRDQ29uZmlndXJhdGlv
biYmIGNvbmZpZ3UKIAogICAgIGlmIChjb25maWd1cmF0aW9uLmNlcnRpZmljYXRlcy5zaXplKCkp
IHsKICAgICAgICAgaWYgKGNvbmZpZ3VyYXRpb24uY2VydGlmaWNhdGVzLnNpemUoKSAhPSBtX2Nv
bmZpZ3VyYXRpb24uY2VydGlmaWNhdGVzLnNpemUoKSkKLSAgICAgICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3IsICJDZXJ0aWZpY2F0ZXMgcGFyYW1ldGVy
cyBhcmUgZGlmZmVyZW50IiB9OworICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFs
aWRNb2RpZmljYXRpb25FcnJvciwgIkNlcnRpZmljYXRlcyBwYXJhbWV0ZXJzIGFyZSBkaWZmZXJl
bnQiX3MgfTsKIAogICAgICAgICBmb3IgKGF1dG8mIGNlcnRpZmljYXRlIDogY29uZmlndXJhdGlv
bi5jZXJ0aWZpY2F0ZXMpIHsKICAgICAgICAgICAgIGJvb2wgaXNUaGVyZSA9IG1fY29uZmlndXJh
dGlvbi5jZXJ0aWZpY2F0ZXMuZmluZElmKFsmY2VydGlmaWNhdGVdKGNvbnN0IGF1dG8mIGl0ZW0p
IHsKICAgICAgICAgICAgICAgICByZXR1cm4gaXRlbS5nZXQoKSA9PSBjZXJ0aWZpY2F0ZS5nZXQo
KTsKICAgICAgICAgICAgIH0pICE9IG5vdEZvdW5kOwogICAgICAgICAgICAgaWYgKCFpc1RoZXJl
KQotICAgICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkTW9kaWZpY2F0aW9u
RXJyb3IsICJBIGNlcnRpZmljYXRlIGdpdmVuIGluIGNvbnN0cnVjdG9yIGlzIG5vdCBwcmVzZW50
IiB9OworICAgICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkTW9kaWZpY2F0
aW9uRXJyb3IsICJBIGNlcnRpZmljYXRlIGdpdmVuIGluIGNvbnN0cnVjdG9yIGlzIG5vdCBwcmVz
ZW50Il9zIH07CiAgICAgICAgIH0KICAgICB9CiAKICAgICBpZiAoIW1fYmFja2VuZC0+c2V0Q29u
ZmlndXJhdGlvbih7IHNlcnZlcnMucmVsZWFzZVJldHVyblZhbHVlKCksIGNvbmZpZ3VyYXRpb24u
aWNlVHJhbnNwb3J0UG9saWN5LCBjb25maWd1cmF0aW9uLmJ1bmRsZVBvbGljeSwgY29uZmlndXJh
dGlvbi5ydGNwTXV4UG9saWN5LCBjb25maWd1cmF0aW9uLmljZUNhbmRpZGF0ZVBvb2xTaXplLCB7
IH0gfSkpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJC
YWQgQ29uZmlndXJhdGlvbiBQYXJhbWV0ZXJzIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9u
IHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiQmFkIENvbmZpZ3VyYXRpb24gUGFyYW1ldGVycyJfcyB9
OwogCiAgICAgbV9jb25maWd1cmF0aW9uID0gV1RGTW92ZShjb25maWd1cmF0aW9uKTsKICAgICBy
ZXR1cm4geyB9OwpAQCAtOTE5LDcgKzkxOSw3IEBAIGNvbnN0IFZlY3RvcjxSZWZQdHI8UlRDUnRw
VHJhbnNjZWl2ZXI+PiYgUlRDUGVlckNvbm5lY3Rpb246OmdldFRyYW5zY2VpdmVycygpIGNvCiB2
b2lkIFJUQ1BlZXJDb25uZWN0aW9uOjpjaGFpbk9wZXJhdGlvbihSZWY8RGVmZXJyZWRQcm9taXNl
PiYmIHByb21pc2UsIEZ1bmN0aW9uPHZvaWQoUmVmPERlZmVycmVkUHJvbWlzZT4mJik+JiYgb3Bl
cmF0aW9uKQogewogICAgIGlmIChpc0Nsb3NlZCgpKSB7Ci0gICAgICAgIHByb21pc2UtPnJlamVj
dChJbnZhbGlkU3RhdGVFcnJvciwgIlJUQ1BlZXJDb25uZWN0aW9uIGlzIGNsb3NlZCIpOworICAg
ICAgICBwcm9taXNlLT5yZWplY3QoSW52YWxpZFN0YXRlRXJyb3IsICJSVENQZWVyQ29ubmVjdGlv
biBpcyBjbG9zZWQiX3MpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC05MjcsNyArOTI3
LDcgQEAgdm9pZCBSVENQZWVyQ29ubmVjdGlvbjo6Y2hhaW5PcGVyYXRpb24oUmVmPERlZmVycmVk
UHJvbWlzZT4mJiBwcm9taXNlLCBGdW5jdGlvbjwKICAgICAgICAgQVNTRVJUKG1faGFzUGVuZGlu
Z09wZXJhdGlvbik7CiAgICAgICAgIGlmIChpc0Nsb3NlZCgpKSB7CiAgICAgICAgICAgICBmb3Ig
KGF1dG8mIG9wZXJhdGlvbiA6IHN0ZDo6ZXhjaGFuZ2UobV9vcGVyYXRpb25zLCB7IH0pKQotICAg
ICAgICAgICAgICAgIG9wZXJhdGlvbi5maXJzdC0+cmVqZWN0KEludmFsaWRTdGF0ZUVycm9yLCAi
UlRDUGVlckNvbm5lY3Rpb24gaXMgY2xvc2VkIik7CisgICAgICAgICAgICAgICAgb3BlcmF0aW9u
LmZpcnN0LT5yZWplY3QoSW52YWxpZFN0YXRlRXJyb3IsICJSVENQZWVyQ29ubmVjdGlvbiBpcyBj
bG9zZWQiX3MpOwogICAgICAgICAgICAgbV9oYXNQZW5kaW5nT3BlcmF0aW9uID0gZmFsc2U7CiAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm1lci5jcHAK
aW5kZXggY2IzZjdjZDliZjIxMjNlOTFkMmRmN2E0NTFkMWM2ZTgxODllZDQ0ZC4uNGYyOWFiMTVl
NmI1Njc3MTczMGFmOTQ0MmNlMGI0MTQyNzBlMTZjOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm1lci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm1l
ci5jcHAKQEAgLTM0Niw3ICszNDYsNyBAQCBSVENSdHBTRnJhbWVUcmFuc2Zvcm1lcjo6VHJhbnNm
b3JtUmVzdWx0IFJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyOjplbmNyeXB0RnJhbWUoUwogUlRDUnRw
U0ZyYW1lVHJhbnNmb3JtZXI6OlRyYW5zZm9ybVJlc3VsdCBSVENSdHBTRnJhbWVUcmFuc2Zvcm1l
cjo6dHJhbnNmb3JtKFNwYW48Y29uc3QgdWludDhfdD4gZGF0YSkKIHsKICAgICBpZiAoIW1faGFz
S2V5KQotICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoRXJyb3JJbmZvcm1hdGlvbiB7IEVy
cm9yOjpLZXlJRCwgICJLZXkgaXMgbm90IGluaXRpYWxpemVkIiwgMCB9KTsKKyAgICAgICAgcmV0
dXJuIG1ha2VVbmV4cGVjdGVkKEVycm9ySW5mb3JtYXRpb24geyBFcnJvcjo6S2V5SUQsICAiS2V5
IGlzIG5vdCBpbml0aWFsaXplZCJfcywgMCB9KTsKIAogICAgIHJldHVybiBtX2lzRW5jcnlwdGlu
ZyA/IGVuY3J5cHRGcmFtZShkYXRhKSA6IGRlY3J5cHRGcmFtZShkYXRhKTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJU
Q1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwCmluZGV4
IDEzMzMxYWNjMDQ0MGNkMDE3ODljNzMxNTgwZWI1NjkwNDFjMzgxY2QuLjMyM2MyODEzYzMyNGVm
ZWU2OThmNGMwZTRiOWZmZmNjNzlkNGQ2YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2Vu
ZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMv
TGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcApAQCAtMjYwLDcgKzI2MCw3IEBAIHZv
aWQgTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpkb0NyZWF0ZU9mZmVyKFJUQ09mZmVy
T3B0aW9ucyYmIG9wdGlvbnMpCiB2b2lkIExpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZDo6
ZG9DcmVhdGVBbnN3ZXIoUlRDQW5zd2VyT3B0aW9ucyYmKQogewogICAgIGlmICghbV9pc1JlbW90
ZURlc2NyaXB0aW9uU2V0KSB7Ci0gICAgICAgIGNyZWF0ZUFuc3dlckZhaWxlZChFeGNlcHRpb24g
eyBJbnZhbGlkU3RhdGVFcnJvciwgIk5vIHJlbW90ZSBkZXNjcmlwdGlvbiBzZXQiIH0pOworICAg
ICAgICBjcmVhdGVBbnN3ZXJGYWlsZWQoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJO
byByZW1vdGUgZGVzY3JpcHRpb24gc2V0Il9zIH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQog
ICAgIG1fZW5kcG9pbnQtPmRvQ3JlYXRlQW5zd2VyKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENSdHBUcmFuc2NlaXZl
ckJhY2tlbmQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJy
dGMvTGliV2ViUlRDUnRwVHJhbnNjZWl2ZXJCYWNrZW5kLmNwcAppbmRleCBkMWY3M2FkN2Y0Nzhm
NjA0NzI1YjA2MDk5ZmRlNjkwYzczZWQ1YjQ1Li40MTc2ZThkNmY3ODNhNTI1YTgwZjdhNjBlYWRj
NjdmNmJmZDcwMTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3Ry
ZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENSdHBUcmFuc2NlaXZlckJhY2tlbmQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1J0cFRy
YW5zY2VpdmVyQmFja2VuZC5jcHAKQEAgLTg5LDcgKzg5LDcgQEAgc3RhdGljIGlubGluZSBFeGNl
cHRpb25Pcjx3ZWJydGM6OlJ0cENvZGVjQ2FwYWJpbGl0eT4gdG9SdHBDb2RlY0NhcGFiaWxpdHko
Y29uc3QKICAgICBlbHNlIGlmIChjb2RlYy5taW1lVHlwZS5zdGFydHNXaXRoKCJhdWRpby8iKSkK
ICAgICAgICAgcnRjQ29kZWMua2luZCA9IGNyaWNrZXQ6Ok1FRElBX1RZUEVfQVVESU87CiAgICAg
ZWxzZQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZE1vZGlmaWNhdGlvbkVycm9y
LCAiUlRDUnRwQ29kZWNDYXBhYmlsaXR5IGJhZCBtaW1lVHlwZSIgfTsKKyAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IEludmFsaWRNb2RpZmljYXRpb25FcnJvciwgIlJUQ1J0cENvZGVjQ2FwYWJp
bGl0eSBiYWQgbWltZVR5cGUiX3MgfTsKIAogICAgIHJ0Y0NvZGVjLm5hbWUgPSBjb2RlYy5taW1l
VHlwZS5zdWJzdHJpbmcoNikudXRmOCgpLmRhdGEoKTsKICAgICBydGNDb2RlYy5jbG9ja19yYXRl
ID0gY29kZWMuY2xvY2tSYXRlOwpAQCAtOTksNyArOTksNyBAQCBzdGF0aWMgaW5saW5lIEV4Y2Vw
dGlvbk9yPHdlYnJ0Yzo6UnRwQ29kZWNDYXBhYmlsaXR5PiB0b1J0cENvZGVjQ2FwYWJpbGl0eShj
b25zdAogICAgIGZvciAoYXV0byBwYXJhbWV0ZXIgOiBTdHJpbmdWaWV3KGNvZGVjLnNkcEZtdHBM
aW5lKS5zcGxpdCgnOycpKSB7CiAgICAgICAgIGF1dG8gcG9zaXRpb24gPSBwYXJhbWV0ZXIuZmlu
ZCgnPScpOwogICAgICAgICBpZiAocG9zaXRpb24gPT0gbm90Rm91bmQpCi0gICAgICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yLCAiUlRDUnRwQ29kZWND
YXBhYmlsaXR5IHNkcEZtdExpbmUgYmFkbHkgZm9ybWF0ZWQiIH07CisgICAgICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yLCAiUlRDUnRwQ29kZWNDYXBh
YmlsaXR5IHNkcEZtdExpbmUgYmFkbHkgZm9ybWF0ZWQiX3MgfTsKICAgICAgICAgcnRjQ29kZWMu
cGFyYW1ldGVycy5lbXBsYWNlKHBhcmFtZXRlci5zdWJzdHJpbmcoMCwgcG9zaXRpb24pLnV0Zjgo
KS5kYXRhKCksIHBhcmFtZXRlci5zdWJzdHJpbmcocG9zaXRpb24gKyAxKS51dGY4KCkuZGF0YSgp
KTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vbGlid2VicnRjL0xpYldlYlJUQ1V0aWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1V0aWxzLmNwcAppbmRleCA0NWU0ZDE3MzYz
ZmYxYjY0MDdlM2MwOTljMGZjN2Y0MjgyZmE2OGIwLi45ZjE5NmYzNzhiYjc3NzY3M2NmNzEyMGNh
YTRmYjQ2NDUwMWY0YTg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENVdGlscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDVXRpbHMuY3BwCkBAIC0zNjAs
NyArMzYwLDcgQEAgRXhjZXB0aW9uIHRvRXhjZXB0aW9uKGNvbnN0IHdlYnJ0Yzo6UlRDRXJyb3Im
IGVycm9yKQogewogICAgIEFTU0VSVCghZXJyb3Iub2soKSk7CiAKLSAgICByZXR1cm4gRXhjZXB0
aW9uIHsgdG9FeGNlcHRpb25Db2RlKGVycm9yLnR5cGUoKSksIGVycm9yLm1lc3NhZ2UoKSB9Owor
ICAgIHJldHVybiBFeGNlcHRpb24geyB0b0V4Y2VwdGlvbkNvZGUoZXJyb3IudHlwZSgpKSwgU3Ry
aW5nIHsgZXJyb3IubWVzc2FnZSgpIH0gfTsKIH0KIAogc3RhdGljIGlubGluZSBSVENJY2VDb21w
b25lbnQgdG9SVENJY2VDb21wb25lbnQoaW50IGNvbXBvbmVudCkKQEAgLTQ1NSw3ICs0NTUsNyBA
QCBSZWZQdHI8UlRDRXJyb3I+IHRvUlRDRXJyb3IoY29uc3Qgd2VicnRjOjpSVENFcnJvciYgcnRj
RXJyb3IpCiAgICAgYXV0byBkZXRhaWwgPSB0b1JUQ0Vycm9yRGV0YWlsVHlwZShydGNFcnJvci5l
cnJvcl9kZXRhaWwoKSk7CiAgICAgaWYgKCFkZXRhaWwpCiAgICAgICAgIHJldHVybiBudWxscHRy
OwotICAgIHJldHVybiBSVENFcnJvcjo6Y3JlYXRlKCpkZXRhaWwsIHJ0Y0Vycm9yLm1lc3NhZ2Uo
KSk7CisgICAgcmV0dXJuIFJUQ0Vycm9yOjpjcmVhdGUoKmRldGFpbCwgU3RyaW5nIHsgcnRjRXJy
b3IubWVzc2FnZSgpIH0pOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21vZGVsLWVsZW1lbnQvc2NlbmVraXQvU2NlbmVLaXRN
b2RlbExvYWRlclVTRC5tbSBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9z
Y2VuZWtpdC9TY2VuZUtpdE1vZGVsTG9hZGVyVVNELm1tCmluZGV4IDA5ZWM4ZjYwM2U5ZDAyMmIz
NzhkZGEwZTQyN2ZlYzUyMWZkZDUyZDIuLmNhYjRiOGRlMjAyZTc3ZDcwMjgyYjU5NGExYmVmYmQ3
NWIwNmNiMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVu
dC9zY2VuZWtpdC9TY2VuZUtpdE1vZGVsTG9hZGVyVVNELm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbW9kZWwtZWxlbWVudC9zY2VuZWtpdC9TY2VuZUtpdE1vZGVsTG9hZGVyVVNELm1t
CkBAIC0xMDIsNyArMTAyLDcgQEAgc3RhdGljIFJldGFpblB0cjxOU1VSTD4gd3JpdGVUb1RlbXBv
cmFyeUZpbGUoV2ViQ29yZTo6TW9kZWwmIG1vZGVsU291cmNlKQogICAgIC8vIGluaXRpYWxpemVy
IGJ1dCBjdXJyZW50bHkgdGhhdCBkb2VzIG5vdCB3b3JrLgogCiAgICAgRmlsZVN5c3RlbTo6UGxh
dGZvcm1GaWxlSGFuZGxlIGZpbGVIYW5kbGU7Ci0gICAgYXV0byBmaWxlUGF0aCA9IEZpbGVTeXN0
ZW06Om9wZW5UZW1wb3JhcnlGaWxlKCJNb2RlbEZpbGUiLCBmaWxlSGFuZGxlLCAiLnVzZHoiKTsK
KyAgICBhdXRvIGZpbGVQYXRoID0gRmlsZVN5c3RlbTo6b3BlblRlbXBvcmFyeUZpbGUoIk1vZGVs
RmlsZSJfcywgZmlsZUhhbmRsZSwgIi51c2R6Il9zKTsKICAgICBBU1NFUlQoRmlsZVN5c3RlbTo6
aXNIYW5kbGVWYWxpZChmaWxlSGFuZGxlKSk7CiAKICAgICBzaXplX3QgYnl0ZUNvdW50ID0gRmls
ZVN5c3RlbTo6d3JpdGVUb0ZpbGUoZmlsZUhhbmRsZSwgbW9kZWxTb3VyY2UuZGF0YSgpLT5tYWtl
Q29udGlndW91cygpLT5kYXRhKCksIG1vZGVsU291cmNlLmRhdGEoKS0+c2l6ZSgpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGF5bWVudHJlcXVlc3QvUGF5bWVudFJlcXVl
c3QuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVx
dWVzdC5jcHAKaW5kZXggZGYyYjVjMjY0ZjNhNWNlMmMxZTFjYjZiNzYzNDBhMDBmYTQwY2NlMC4u
NDIyMzVlZWExYmZkMWNkMWI3MDcwYjY5MDk0ODQyY2Y2ZTkzNTRiNSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5j
cHAKQEAgLTIxNiw3ICsyMTYsNyBAQCBzdGF0aWMgRXhjZXB0aW9uT3I8c3RkOjp0dXBsZTxTdHJp
bmcsIFZlY3RvcjxTdHJpbmc+Pj4gY2hlY2tBbmRDYW5vbmljYWxpemVEZXRhaQogCiAgICAgICAg
ICAgICAgICAgYXV0byBhZGRSZXN1bHQgPSBzZWVuU2hpcHBpbmdPcHRpb25JRHMuYWRkKHNoaXBw
aW5nT3B0aW9uLmlkKTsKICAgICAgICAgICAgICAgICBpZiAoIWFkZFJlc3VsdC5pc05ld0VudHJ5
KQotICAgICAgICAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiU2hp
cHBpbmcgb3B0aW9uIElEcyBtdXN0IGJlIHVuaXF1ZS4iIH07CisgICAgICAgICAgICAgICAgICAg
IHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJTaGlwcGluZyBvcHRpb24gSURzIG11c3Qg
YmUgdW5pcXVlLiJfcyB9OwogCiAjaWYgRU5BQkxFKFBBWU1FTlRfUkVRVUVTVF9TRUxFQ1RFRF9T
SElQUElOR19PUFRJT04pCiAgICAgICAgICAgICAgICAgaWYgKHNoaXBwaW5nT3B0aW9uLnNlbGVj
dGVkKQpAQCAtMzc1LDcgKzM3NSw3IEBAIHZvaWQgUGF5bWVudFJlcXVlc3Q6OnNob3coRG9jdW1l
bnQmIGRvY3VtZW50LCBSZWZQdHI8RE9NUHJvbWlzZT4mJiBkZXRhaWxzUHJvbWlzCiAKICAgICBh
dXRvKiB3aW5kb3cgPSBkb2N1bWVudC5mcmFtZSgpLT53aW5kb3coKTsKICAgICBpZiAoIXdpbmRv
dyB8fCAhd2luZG93LT5jb25zdW1lVHJhbnNpZW50QWN0aXZhdGlvbigpKSB7Ci0gICAgICAgIHBy
b21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IFNlY3VyaXR5RXJyb3IsICJzaG93KCkgbXVzdCBiZSB0
cmlnZ2VyZWQgYnkgdXNlciBhY3RpdmF0aW9uLiIgfSk7CisgICAgICAgIHByb21pc2UucmVqZWN0
KEV4Y2VwdGlvbiB7IFNlY3VyaXR5RXJyb3IsICJzaG93KCkgbXVzdCBiZSB0cmlnZ2VyZWQgYnkg
dXNlciBhY3RpdmF0aW9uLiJfcyB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9waWN0dXJlaW5waWN0dXJlL0hUTUxWaWRlb0Vs
ZW1lbnRQaWN0dXJlSW5QaWN0dXJlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGljdHVy
ZWlucGljdHVyZS9IVE1MVmlkZW9FbGVtZW50UGljdHVyZUluUGljdHVyZS5jcHAKaW5kZXggZjJm
MDIzMTAyNzQ1YjlmZDIzZThlOTQyZDYwOWE3ZTliZTA2MTBkOC4uYmJlMmNiYzhiOWNiYWU0ZjJm
YjBlYmRlOTRkNTk1YWY5ZDhmY2JiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9waWN0dXJlaW5waWN0dXJlL0hUTUxWaWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BpY3R1cmVpbnBpY3R1cmUvSFRNTFZpZGVvRWxl
bWVudFBpY3R1cmVJblBpY3R1cmUuY3BwCkBAIC04MSwyMyArODEsMjMgQEAgdm9pZCBIVE1MVmlk
ZW9FbGVtZW50UGljdHVyZUluUGljdHVyZTo6cHJvdmlkZVBpY3R1cmVJblBpY3R1cmVUbyhIVE1M
VmlkZW9FbGVtZW4KIHZvaWQgSFRNTFZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmU6OnJlcXVl
c3RQaWN0dXJlSW5QaWN0dXJlKEhUTUxWaWRlb0VsZW1lbnQmIHZpZGVvRWxlbWVudCwgUmVmPERl
ZmVycmVkUHJvbWlzZT4mJiBwcm9taXNlKQogewogICAgIGlmICghc3VwcG9ydHNQaWN0dXJlSW5Q
aWN0dXJlKCkpIHsKLSAgICAgICAgcHJvbWlzZS0+cmVqZWN0KE5vdFN1cHBvcnRlZEVycm9yLCAi
VGhlIFBpY3R1cmUtaW4tUGljdHVyZSBtb2RlIGlzIG5vdCBzdXBwb3J0ZWQuIik7CisgICAgICAg
IHByb21pc2UtPnJlamVjdChOb3RTdXBwb3J0ZWRFcnJvciwgIlRoZSBQaWN0dXJlLWluLVBpY3R1
cmUgbW9kZSBpcyBub3Qgc3VwcG9ydGVkLiJfcyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
ICAgICBpZiAodmlkZW9FbGVtZW50LnJlYWR5U3RhdGUoKSA9PSBIVE1MTWVkaWFFbGVtZW50RW51
bXM6OkhBVkVfTk9USElORykgewotICAgICAgICBwcm9taXNlLT5yZWplY3QoSW52YWxpZFN0YXRl
RXJyb3IsICJUaGUgdmlkZW8gZWxlbWVudCBpcyBub3QgcmVhZHkgdG8gZW50ZXIgdGhlIFBpY3R1
cmUtaW4tUGljdHVyZSBtb2RlLiIpOworICAgICAgICBwcm9taXNlLT5yZWplY3QoSW52YWxpZFN0
YXRlRXJyb3IsICJUaGUgdmlkZW8gZWxlbWVudCBpcyBub3QgcmVhZHkgdG8gZW50ZXIgdGhlIFBp
Y3R1cmUtaW4tUGljdHVyZSBtb2RlLiJfcyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAg
ICBpZiAoIXZpZGVvRWxlbWVudC52aWRlb1RyYWNrcygpIHx8ICF2aWRlb0VsZW1lbnQudmlkZW9U
cmFja3MoKS0+bGVuZ3RoKCkpIHsKLSAgICAgICAgcHJvbWlzZS0+cmVqZWN0KEludmFsaWRTdGF0
ZUVycm9yLCAiVGhlIHZpZGVvIGVsZW1lbnQgZG9lcyBub3QgaGF2ZSBhIHZpZGVvIHRyYWNrIG9y
IGl0IGhhcyBub3QgZGV0ZWN0ZWQgYSB2aWRlbyB0cmFjayB5ZXQuIik7CisgICAgICAgIHByb21p
c2UtPnJlamVjdChJbnZhbGlkU3RhdGVFcnJvciwgIlRoZSB2aWRlbyBlbGVtZW50IGRvZXMgbm90
IGhhdmUgYSB2aWRlbyB0cmFjayBvciBpdCBoYXMgbm90IGRldGVjdGVkIGEgdmlkZW8gdHJhY2sg
eWV0LiJfcyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICAgICBib29sIHVzZXJBY3RpdmF0
aW9uUmVxdWlyZWQgPSAhdmlkZW9FbGVtZW50LmRvY3VtZW50KCkucGljdHVyZUluUGljdHVyZUVs
ZW1lbnQoKTsKICAgICBpZiAodXNlckFjdGl2YXRpb25SZXF1aXJlZCAmJiAhVXNlckdlc3R1cmVJ
bmRpY2F0b3I6OnByb2Nlc3NpbmdVc2VyR2VzdHVyZSgpKSB7Ci0gICAgICAgIHByb21pc2UtPnJl
amVjdChOb3RBbGxvd2VkRXJyb3IsICJUaGUgcmVxdWVzdCBpcyBub3QgdHJpZ2dlcmVkIGJ5IGEg
dXNlciBhY3RpdmF0aW9uLiIpOworICAgICAgICBwcm9taXNlLT5yZWplY3QoTm90QWxsb3dlZEVy
cm9yLCAiVGhlIHJlcXVlc3QgaXMgbm90IHRyaWdnZXJlZCBieSBhIHVzZXIgYWN0aXZhdGlvbi4i
X3MpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0xMDgsNyArMTA4LDcgQEAgdm9pZCBI
VE1MVmlkZW9FbGVtZW50UGljdHVyZUluUGljdHVyZTo6cmVxdWVzdFBpY3R1cmVJblBpY3R1cmUo
SFRNTFZpZGVvRWxlbWVudCYKICAgICB9CiAKICAgICBpZiAodmlkZW9FbGVtZW50UGljdHVyZUlu
UGljdHVyZS0+bV9lbnRlclBpY3R1cmVJblBpY3R1cmVQcm9taXNlIHx8IHZpZGVvRWxlbWVudFBp
Y3R1cmVJblBpY3R1cmUtPm1fZXhpdFBpY3R1cmVJblBpY3R1cmVQcm9taXNlKSB7Ci0gICAgICAg
IHByb21pc2UtPnJlamVjdChOb3RBbGxvd2VkRXJyb3IsICJUaGUgdmlkZW8gZWxlbWVudCBpcyBw
cm9jZXNzaW5nIGEgUGljdHVyZS1pbi1QaWN0dXJlIHJlcXVlc3QuIik7CisgICAgICAgIHByb21p
c2UtPnJlamVjdChOb3RBbGxvd2VkRXJyb3IsICJUaGUgdmlkZW8gZWxlbWVudCBpcyBwcm9jZXNz
aW5nIGEgUGljdHVyZS1pbi1QaWN0dXJlIHJlcXVlc3QuIl9zKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIApAQCAtMTE2LDcgKzExNiw3IEBAIHZvaWQgSFRNTFZpZGVvRWxlbWVudFBpY3R1cmVJ
blBpY3R1cmU6OnJlcXVlc3RQaWN0dXJlSW5QaWN0dXJlKEhUTUxWaWRlb0VsZW1lbnQmCiAgICAg
ICAgIHZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmUtPm1fZW50ZXJQaWN0dXJlSW5QaWN0dXJl
UHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSk7CiAgICAgICAgIHZpZGVvRWxlbWVudC53ZWJraXRT
ZXRQcmVzZW50YXRpb25Nb2RlKEhUTUxWaWRlb0VsZW1lbnQ6OlZpZGVvUHJlc2VudGF0aW9uTW9k
ZTo6UGljdHVyZUluUGljdHVyZSk7CiAgICAgfSBlbHNlCi0gICAgICAgIHByb21pc2UtPnJlamVj
dChOb3RTdXBwb3J0ZWRFcnJvciwgIlRoZSB2aWRlbyBlbGVtZW50IGRvZXMgbm90IHN1cHBvcnQg
dGhlIFBpY3R1cmUtaW4tUGljdHVyZSBtb2RlLiIpOworICAgICAgICBwcm9taXNlLT5yZWplY3Qo
Tm90U3VwcG9ydGVkRXJyb3IsICJUaGUgdmlkZW8gZWxlbWVudCBkb2VzIG5vdCBzdXBwb3J0IHRo
ZSBQaWN0dXJlLWluLVBpY3R1cmUgbW9kZS4iX3MpOwogfQogCiBib29sIEhUTUxWaWRlb0VsZW1l
bnRQaWN0dXJlSW5QaWN0dXJlOjphdXRvUGljdHVyZUluUGljdHVyZShIVE1MVmlkZW9FbGVtZW50
JiB2aWRlb0VsZW1lbnQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BsdWdp
bnMvWW91VHViZVBsdWdpblJlcGxhY2VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
cGx1Z2lucy9Zb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQuY3BwCmluZGV4IDk3OWYyMjQ1OTA3MjBm
ODI5MzM1ZDYwYTNhOGQ4YWU1YzNiNzIyNDMuLmRkMTZmODkzZjJkNjk1MmNjNWYwMDMwOGY5ZDBk
OTlhYjhiMGU4YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9Z
b3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
cGx1Z2lucy9Zb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQuY3BwCkBAIC04NCwxNiArODQsMTYgQEAg
YXV0byBZb3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQ6Omluc3RhbGxSZXBsYWNlbWVudChTaGFkb3dS
b290JiByb290KSAtPiBJbnN0YWxsUmUKICAgICByb290LmFwcGVuZENoaWxkKCptX2VtYmVkU2hh
ZG93RWxlbWVudCk7CiAKICAgICBhdXRvIGlmcmFtZUVsZW1lbnQgPSBIVE1MSUZyYW1lRWxlbWVu
dDo6Y3JlYXRlKEhUTUxOYW1lczo6aWZyYW1lVGFnLCBtX3BhcmVudEVsZW1lbnQtPmRvY3VtZW50
KCkpOwotICAgIGlmIChtX2F0dHJpYnV0ZXMuY29udGFpbnMoIndpZHRoIikpCisgICAgaWYgKG1f
YXR0cmlidXRlcy5jb250YWlucygid2lkdGgiX3MpKQogICAgICAgICBpZnJhbWVFbGVtZW50LT5z
ZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKEhUTUxOYW1lczo6d2lkdGhBdHRyLCBB
dG9tU3RyaW5nKCIxMDAlIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKIAot
ICAgIGNvbnN0IGF1dG8mIGhlaWdodFZhbHVlID0gbV9hdHRyaWJ1dGVzLmZpbmQoImhlaWdodCIp
OworICAgIGNvbnN0IGF1dG8mIGhlaWdodFZhbHVlID0gbV9hdHRyaWJ1dGVzLmZpbmQoImhlaWdo
dCJfcyk7CiAgICAgaWYgKGhlaWdodFZhbHVlICE9IG1fYXR0cmlidXRlcy5lbmQoKSkgewogICAg
ICAgICBpZnJhbWVFbGVtZW50LT5zZXRBdHRyaWJ1dGUoSFRNTE5hbWVzOjpzdHlsZUF0dHIsIEF0
b21TdHJpbmcoIm1heC1oZWlnaHQ6IDEwMCUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0
ZXJhbCkpOwogICAgICAgICBpZnJhbWVFbGVtZW50LT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hy
b25pemF0aW9uKEhUTUxOYW1lczo6aGVpZ2h0QXR0ciwgaGVpZ2h0VmFsdWUtPnZhbHVlKTsKICAg
ICB9CiAKLSAgICBpZnJhbWVFbGVtZW50LT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0
aW9uKEhUTUxOYW1lczo6c3JjQXR0ciwgeW91VHViZVVSTChtX2F0dHJpYnV0ZXMuZ2V0KCJzcmMi
KSkpOworICAgIGlmcmFtZUVsZW1lbnQtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRp
b24oSFRNTE5hbWVzOjpzcmNBdHRyLCB5b3VUdWJlVVJMKG1fYXR0cmlidXRlcy5nZXQoInNyYyJf
cykpKTsKICAgICBpZnJhbWVFbGVtZW50LT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0
aW9uKEhUTUxOYW1lczo6ZnJhbWVib3JkZXJBdHRyLCBBdG9tU3RyaW5nKCIwIiwgQXRvbVN0cmlu
Zzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpKTsKICAgICAKICAgICAvLyBEaXNhYmxlIGZyYW1lIGZs
YXR0ZW5pbmcgZm9yIHRoaXMgaWZyYW1lLgpAQCAtMjMxLDExICsyMzEsMTEgQEAgc3RhdGljIFVS
TCBwcm9jZXNzQW5kQ3JlYXRlWW91VHViZVVSTChjb25zdCBVUkwmIHVybCwgYm9vbCYgaXNZb3VU
dWJlU2hvcnRlbmVkVVIKICAgICBpZiAoZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UocGF0
aCwgIi93YXRjaCIpKSB7CiAgICAgICAgIGlmICghcXVlcnkuaXNFbXB0eSgpKSB7CiAgICAgICAg
ICAgICBjb25zdCBhdXRvJiBxdWVyeURpY3Rpb25hcnkgPSBxdWVyeUtleXNBbmRWYWx1ZXMocXVl
cnkpOwotICAgICAgICAgICAgU3RyaW5nIHZpZGVvSUQgPSB2YWx1ZUZvcktleShxdWVyeURpY3Rp
b25hcnksICJ2Iik7CisgICAgICAgICAgICBTdHJpbmcgdmlkZW9JRCA9IHZhbHVlRm9yS2V5KHF1
ZXJ5RGljdGlvbmFyeSwgInYiX3MpOwogICAgICAgICAgICAgCiAgICAgICAgICAgICBpZiAoIXZp
ZGVvSUQuaXNFbXB0eSgpKSB7CiAgICAgICAgICAgICAgICAgY29uc3QgYXV0byYgZnJhZ21lbnRE
aWN0aW9uYXJ5ID0gcXVlcnlLZXlzQW5kVmFsdWVzKHVybC5mcmFnbWVudElkZW50aWZpZXIoKSk7
Ci0gICAgICAgICAgICAgICAgU3RyaW5nIHRpbWVJRCA9IHZhbHVlRm9yS2V5KGZyYWdtZW50RGlj
dGlvbmFyeSwgInQiKTsKKyAgICAgICAgICAgICAgICBTdHJpbmcgdGltZUlEID0gdmFsdWVGb3JL
ZXkoZnJhZ21lbnREaWN0aW9uYXJ5LCAidCJfcyk7CiAgICAgICAgICAgICAgICAgcmV0dXJuIGNy
ZWF0ZVlvdVR1YmVVUkwodmlkZW9JRCwgdGltZUlEKTsKICAgICAgICAgICAgIH0KICAgICAgICAg
fQpAQCAtMjQ2LDEwICsyNDYsMTAgQEAgc3RhdGljIFVSTCBwcm9jZXNzQW5kQ3JlYXRlWW91VHVi
ZVVSTChjb25zdCBVUkwmIHVybCwgYm9vbCYgaXNZb3VUdWJlU2hvcnRlbmVkVVIKICAgICAgICAg
ICAgIAogICAgICAgICAgICAgaWYgKCFxdWVyeS5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgICAg
ICBjb25zdCBhdXRvJiBxdWVyeURpY3Rpb25hcnkgPSBxdWVyeUtleXNBbmRWYWx1ZXMocXVlcnkp
OwotICAgICAgICAgICAgICAgIFN0cmluZyB2aWRlb0lEID0gdmFsdWVGb3JLZXkocXVlcnlEaWN0
aW9uYXJ5LCAidiIpOworICAgICAgICAgICAgICAgIFN0cmluZyB2aWRlb0lEID0gdmFsdWVGb3JL
ZXkocXVlcnlEaWN0aW9uYXJ5LCAidiJfcyk7CiAgICAgICAgICAgICAgICAgCiAgICAgICAgICAg
ICAgICAgaWYgKCF2aWRlb0lELmlzRW1wdHkoKSkgewotICAgICAgICAgICAgICAgICAgICBTdHJp
bmcgdGltZUlEID0gdmFsdWVGb3JLZXkocXVlcnlEaWN0aW9uYXJ5LCAidCIpOworICAgICAgICAg
ICAgICAgICAgICBTdHJpbmcgdGltZUlEID0gdmFsdWVGb3JLZXkocXVlcnlEaWN0aW9uYXJ5LCAi
dCJfcyk7CiAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjcmVhdGVZb3VUdWJlVVJMKHZpZGVv
SUQsIHRpbWVJRCk7CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvU3BlZWNoUmVjb2duaXRpb25DYXB0dXJl
U291cmNlSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmNwcAppbmRleCBjMjNhOGQ2N2NiNDgxMjMzZjdjYjRi
NTE5YjEzNmIyMjE5MDZiZWJlLi42MDc1M2ZlY2UzNWEyOWY4OGU5MjYyMGEyMGI4MDlhZmU5NmNj
NzIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNv
Z25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmNwcApAQCAtOTIsNyAr
OTIsNyBAQCBib29sIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6OnVwZGF0ZURh
dGFTb3VyY2UoY29uc3QgQ0FBdWRpb1N0cmVhbURlcwogICAgIGlmIChkYXRhU291cmNlLT5zZXRJ
bnB1dEZvcm1hdChhdWRpb0Rlc2NyaXB0aW9uKSkgewogICAgICAgICBjYWxsT25NYWluVGhyZWFk
KFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9XSB7CiAgICAgICAgICAgICBpZiAo
d2Vha1RoaXMpCi0gICAgICAgICAgICAgICAgbV9zdGF0ZVVwZGF0ZUNhbGxiYWNrKFNwZWVjaFJl
Y29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihtX2NsaWVudElkZW50aWZpZXIsIFNwZWVjaFJl
Y29nbml0aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJl
LCAiVW5hYmxlIHRvIHNldCBpbnB1dCBmb3JtYXQiIH0pKTsKKyAgICAgICAgICAgICAgICBtX3N0
YXRlVXBkYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZUVycm9yKG1f
Y2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25FcnJvciB7IFNwZWVjaFJlY29nbml0
aW9uRXJyb3JUeXBlOjpBdWRpb0NhcHR1cmUsICJVbmFibGUgdG8gc2V0IGlucHV0IGZvcm1hdCJf
cyB9KSk7CiAgICAgICAgIH0pOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQpAQCAtMTAw
LDcgKzEwMCw3IEBAIGJvb2wgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbDo6dXBk
YXRlRGF0YVNvdXJjZShjb25zdCBDQUF1ZGlvU3RyZWFtRGVzCiAgICAgaWYgKGRhdGFTb3VyY2Ut
PnNldE91dHB1dEZvcm1hdChhdWRpb0Rlc2NyaXB0aW9uKSkgewogICAgICAgICBjYWxsT25NYWlu
VGhyZWFkKFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9XSB7CiAgICAgICAgICAg
ICBpZiAod2Vha1RoaXMpCi0gICAgICAgICAgICAgICAgbV9zdGF0ZVVwZGF0ZUNhbGxiYWNrKFNw
ZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihtX2NsaWVudElkZW50aWZpZXIsIFNw
ZWVjaFJlY29nbml0aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9D
YXB0dXJlLCAiVW5hYmxlIHRvIHNldCBvdXRwdXQgZm9ybWF0IiB9KSk7CisgICAgICAgICAgICAg
ICAgbV9zdGF0ZVVwZGF0ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVF
cnJvcihtX2NsaWVudElkZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBTcGVlY2hS
ZWNvZ25pdGlvbkVycm9yVHlwZTo6QXVkaW9DYXB0dXJlLCAiVW5hYmxlIHRvIHNldCBvdXRwdXQg
Zm9ybWF0Il9zIH0pKTsKICAgICAgICAgfSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9
CkBAIC0xNTcsMTMgKzE1NywxMyBAQCB2b2lkIFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJj
ZUltcGw6OnNvdXJjZVN0b3BwZWQoKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAg
ICAgQVNTRVJUKG1fc291cmNlLT5jYXB0dXJlRGlkRmFpbCgpKTsKLSAgICBtX3N0YXRlVXBkYXRl
Q2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZUVycm9yKG1fY2xpZW50SWRl
bnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25FcnJvciB7IFNwZWVjaFJlY29nbml0aW9uRXJyb3JU
eXBlOjpBdWRpb0NhcHR1cmUsICJTb3VyY2UgaXMgc3RvcHBlZCIgfSkpOworICAgIG1fc3RhdGVV
cGRhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IobV9jbGll
bnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25F
cnJvclR5cGU6OkF1ZGlvQ2FwdHVyZSwgIlNvdXJjZSBpcyBzdG9wcGVkIl9zIH0pKTsKIH0KIAog
dm9pZCBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjpzb3VyY2VNdXRlZENoYW5n
ZWQoKQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7Ci0gICAgbV9zdGF0ZVVwZGF0ZUNh
bGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihtX2NsaWVudElkZW50
aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9yVHlw
ZTo6QXVkaW9DYXB0dXJlLCAiU291cmNlIGlzIG11dGVkIiB9KSk7CisgICAgbV9zdGF0ZVVwZGF0
ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihtX2NsaWVudElk
ZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9y
VHlwZTo6QXVkaW9DYXB0dXJlLCAiU291cmNlIGlzIG11dGVkIl9zIH0pKTsKIH0KIAogdm9pZCBT
cGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjptdXRlKCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL2NvY29hL1dlYlNwZWVjaFJlY29nbml6ZXJUYXNr
TW9jay5tbSBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL2NvY29hL1dlYlNwZWVjaFJl
Y29nbml6ZXJUYXNrTW9jay5tbQppbmRleCAyZDM0OGVkMjBjMjFiNTEwMzQ4ODc5ZDVjMjYzZmMw
ZTNjZmVkODZiLi5iZWYzYTUyMjUxN2Y0YzJlMzJmNTgzMjNkYTk4NDMwYmIwZDE5NWI2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9jb2NvYS9XZWJTcGVlY2hSZWNv
Z25pemVyVGFza01vY2subW0KKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvY29j
b2EvV2ViU3BlZWNoUmVjb2duaXplclRhc2tNb2NrLm1tCkBAIC02MSw3ICs2MSw3IEBAIC0gKHZv
aWQpYXVkaW9TYW1wbGVzQXZhaWxhYmxlOihDTVNhbXBsZUJ1ZmZlclJlZilzYW1wbGVCdWZmZXIK
ICAgICB9CiAKICAgICAvLyBGYWtlIHNvbWUgcmVjb2duaXRpb24gcmVzdWx0cy4KLSAgICBXZWJD
b3JlOjpTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0YSBhbHRlcm5hdGl2ZSB7ICJUZXN0
IiwgMS4wIH07CisgICAgV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZURhdGEg
YWx0ZXJuYXRpdmUgeyAiVGVzdCJfcywgMS4wIH07CiAgICAgX2RlbGVnYXRlQ2FsbGJhY2soV2Vi
Q29yZTo6U3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZVJlc3VsdChfaWRlbnRpZmllciwg
eyBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvblJlc3VsdERhdGEgeyB7IFdURk1vdmUoYWx0ZXJu
YXRpdmUpIH0sIHRydWUgfSB9KSk7CiAKICAgICBpZiAoIV9kb011bHRpcGxlUmVjb2duaXRpb25z
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdG9yYWdlL1N0b3JhZ2VNYW5h
Z2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RvcmFnZS9TdG9yYWdlTWFuYWdlci5j
cHAKaW5kZXggMTg4ZDMwYjYxOThiMTYxZTFiNDdhZTk3NjhlMGMxZTk1NzY2NTNhYi4uNjM2YjQ4
YzlmMDQ3OWJjNWFlMzE5NGVhMWU4OTA1Njk2NTcxN2E0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9zdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3N0b3JhZ2UvU3RvcmFnZU1hbmFnZXIuY3BwCkBAIC03Miw3ICs3Miw3IEBA
IHN0YXRpYyBFeGNlcHRpb25PcjxDb25uZWN0aW9uSW5mbz4gY29ubmVjdGlvbkluZm8oTmF2aWdh
dG9yQmFzZSogbmF2aWdhdG9yKQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0
YXRlRXJyb3IsICJPcmlnaW4gaXMgaW52YWxpZCJfcyB9OwogCiAgICAgaWYgKCFvcmlnaW4tPmNh
bkFjY2Vzc1N0b3JhZ2VNYW5hZ2VyKCkpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBl
RXJyb3IsICJPcmlnaW4gc2hvdWxkIG5vdCBhY2Nlc3Mgc3RvcmFnZSIgfTsKKyAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIk9yaWdpbiBzaG91bGQgbm90IGFjY2VzcyBzdG9y
YWdlIl9zIH07CiAKICAgICBpZiAoaXM8RG9jdW1lbnQ+KGNvbnRleHQpKSB7CiAgICAgICAgIGlm
IChhdXRvKiBjb25uZWN0aW9uID0gZG93bmNhc3Q8RG9jdW1lbnQ+KGNvbnRleHQpLT5zdG9yYWdl
Q29ubmVjdGlvbigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWItbG9j
a3MvV2ViTG9ja01hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWItbG9ja3Mv
V2ViTG9ja01hbmFnZXIuY3BwCmluZGV4IDIxOTk5MmY2YjViMTRjNWI2MDI3NTQ1NmFkZGIwODU3
Nzg2ZTEyNWYuLmExNjFiM2QyYzA1YzNmNDljOWIwYThmOWU2OTY2ZDQ1YmFhZGVmZWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNYW5hZ2VyLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJMb2NrTWFuYWdlci5j
cHAKQEAgLTMzOCw3ICszMzgsNyBAQCB2b2lkIFdlYkxvY2tNYW5hZ2VyOjpzaWduYWxUb0Fib3J0
VGhlUmVxdWVzdChXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRpZmllcikKICAgICAgICAgaWYg
KHdhc0Fib3J0ZWQgJiYgd2Vha1RoaXMpCiAgICAgICAgICAgICB3ZWFrVGhpcy0+bV9wZW5kaW5n
UmVxdWVzdHMucmVtb3ZlKGxvY2tJZGVudGlmaWVyKTsKICAgICB9KTsKLSAgICBzZXR0bGVSZWxl
YXNlUHJvbWlzZShsb2NrSWRlbnRpZmllciwgRXhjZXB0aW9uIHsgQWJvcnRFcnJvciwgIkxvY2sg
cmVxdWVzdCB3YXMgYWJvcnRlZCB2aWEgQWJvcnRTaWduYWwiIH0pOworICAgIHNldHRsZVJlbGVh
c2VQcm9taXNlKGxvY2tJZGVudGlmaWVyLCBFeGNlcHRpb24geyBBYm9ydEVycm9yLCAiTG9jayBy
ZXF1ZXN0IHdhcyBhYm9ydGVkIHZpYSBBYm9ydFNpZ25hbCJfcyB9KTsKIH0KIAogdm9pZCBXZWJM
b2NrTWFuYWdlcjo6c2V0dGxlUmVsZWFzZVByb21pc2UoV2ViTG9ja0lkZW50aWZpZXIgbG9ja0lk
ZW50aWZpZXIsIEV4Y2VwdGlvbk9yPEpTQzo6SlNWYWx1ZT4mJiByZXN1bHQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTGlzdGVuZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb0xpc3RlbmVyLmNwcAppbmRleCAwMjBl
NzZmNDM2NGU2ZGVmOGY4MTcyNGRiN2MyZmQ4YWU1NzAyMTc5Li43NmM3NmQ3NTQ0ZTcwYzlhY2Qz
YmRkZjk2ZjM0YzhhYzZiYTlmZGZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL0F1ZGlvTGlzdGVuZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9MaXN0ZW5lci5jcHAKQEAgLTQwLDE1ICs0MCwxNSBAQAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBBdWRpb0xpc3RlbmVyOjpBdWRpb0xpc3RlbmVyKEJhc2VBdWRpb0NvbnRl
eHQmIGNvbnRleHQpCi0gICAgOiBtX3Bvc2l0aW9uWChBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4
dCwgInBvc2l0aW9uWCIsIDAuMCwgLUZMVF9NQVgsIEZMVF9NQVgsIEF1dG9tYXRpb25SYXRlOjpB
UmF0ZSkpCi0gICAgLCBtX3Bvc2l0aW9uWShBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCwgInBv
c2l0aW9uWSIsIDAuMCwgLUZMVF9NQVgsIEZMVF9NQVgsIEF1dG9tYXRpb25SYXRlOjpBUmF0ZSkp
Ci0gICAgLCBtX3Bvc2l0aW9uWihBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCwgInBvc2l0aW9u
WiIsIDAuMCwgLUZMVF9NQVgsIEZMVF9NQVgsIEF1dG9tYXRpb25SYXRlOjpBUmF0ZSkpCi0gICAg
LCBtX2ZvcndhcmRYKEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0LCAiZm9yd2FyZFgiLCAwLjAs
IC1GTFRfTUFYLCBGTFRfTUFYLCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQotICAgICwgbV9mb3J3
YXJkWShBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCwgImZvcndhcmRZIiwgMC4wLCAtRkxUX01B
WCwgRkxUX01BWCwgQXV0b21hdGlvblJhdGU6OkFSYXRlKSkKLSAgICAsIG1fZm9yd2FyZFooQXVk
aW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJmb3J3YXJkWiIsIC0xLjAsIC1GTFRfTUFYLCBGTFRf
TUFYLCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQotICAgICwgbV91cFgoQXVkaW9QYXJhbTo6Y3Jl
YXRlKGNvbnRleHQsICJ1cFgiLCAwLjAsIC1GTFRfTUFYLCBGTFRfTUFYLCBBdXRvbWF0aW9uUmF0
ZTo6QVJhdGUpKQotICAgICwgbV91cFkoQXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJ1cFki
LCAxLjAsIC1GTFRfTUFYLCBGTFRfTUFYLCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQotICAgICwg
bV91cFooQXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJ1cFoiLCAwLjAsIC1GTFRfTUFYLCBG
TFRfTUFYLCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQorICAgIDogbV9wb3NpdGlvblgoQXVkaW9Q
YXJhbTo6Y3JlYXRlKGNvbnRleHQsICJwb3NpdGlvblgiX3MsIDAuMCwgLUZMVF9NQVgsIEZMVF9N
QVgsIEF1dG9tYXRpb25SYXRlOjpBUmF0ZSkpCisgICAgLCBtX3Bvc2l0aW9uWShBdWRpb1BhcmFt
OjpjcmVhdGUoY29udGV4dCwgInBvc2l0aW9uWSJfcywgMC4wLCAtRkxUX01BWCwgRkxUX01BWCwg
QXV0b21hdGlvblJhdGU6OkFSYXRlKSkKKyAgICAsIG1fcG9zaXRpb25aKEF1ZGlvUGFyYW06OmNy
ZWF0ZShjb250ZXh0LCAicG9zaXRpb25aIl9zLCAwLjAsIC1GTFRfTUFYLCBGTFRfTUFYLCBBdXRv
bWF0aW9uUmF0ZTo6QVJhdGUpKQorICAgICwgbV9mb3J3YXJkWChBdWRpb1BhcmFtOjpjcmVhdGUo
Y29udGV4dCwgImZvcndhcmRYIl9zLCAwLjAsIC1GTFRfTUFYLCBGTFRfTUFYLCBBdXRvbWF0aW9u
UmF0ZTo6QVJhdGUpKQorICAgICwgbV9mb3J3YXJkWShBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4
dCwgImZvcndhcmRZIl9zLCAwLjAsIC1GTFRfTUFYLCBGTFRfTUFYLCBBdXRvbWF0aW9uUmF0ZTo6
QVJhdGUpKQorICAgICwgbV9mb3J3YXJkWihBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCwgImZv
cndhcmRaIl9zLCAtMS4wLCAtRkxUX01BWCwgRkxUX01BWCwgQXV0b21hdGlvblJhdGU6OkFSYXRl
KSkKKyAgICAsIG1fdXBYKEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0LCAidXBYIl9zLCAwLjAs
IC1GTFRfTUFYLCBGTFRfTUFYLCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQorICAgICwgbV91cFko
QXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJ1cFkiX3MsIDEuMCwgLUZMVF9NQVgsIEZMVF9N
QVgsIEF1dG9tYXRpb25SYXRlOjpBUmF0ZSkpCisgICAgLCBtX3VwWihBdWRpb1BhcmFtOjpjcmVh
dGUoY29udGV4dCwgInVwWiJfcywgMC4wLCAtRkxUX01BWCwgRkxUX01BWCwgQXV0b21hdGlvblJh
dGU6OkFSYXRlKSkKICAgICAsIG1fcG9zaXRpb25YVmFsdWVzKEF1ZGlvVXRpbGl0aWVzOjpyZW5k
ZXJRdWFudHVtU2l6ZSkKICAgICAsIG1fcG9zaXRpb25ZVmFsdWVzKEF1ZGlvVXRpbGl0aWVzOjpy
ZW5kZXJRdWFudHVtU2l6ZSkKICAgICAsIG1fcG9zaXRpb25aVmFsdWVzKEF1ZGlvVXRpbGl0aWVz
OjpyZW5kZXJRdWFudHVtU2l6ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vQXVkaW9QYXJhbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0F1ZGlvUGFyYW0uY3BwCmluZGV4IGJlMTJiYjVhYTAyN2U1M2ExMzQ2ODQ3ZTZjOTkzYzIzZjlm
MDE4OTguLjBkNDZhM2Y5MDRjYzRkMDkzODhiNGZiMDEyMzNjYjYwOGVjN2Y2ZDIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtLmNwcApAQCAtMTA5LDcg
KzEwOSw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IEF1ZGlvUGFyYW06OnNldFZhbHVlRm9yQmluZGlu
Z3MoZmxvYXQgdmFsdWUpCiBFeGNlcHRpb25Pcjx2b2lkPiBBdWRpb1BhcmFtOjpzZXRBdXRvbWF0
aW9uUmF0ZShBdXRvbWF0aW9uUmF0ZSBhdXRvbWF0aW9uUmF0ZSkKIHsKICAgICBpZiAobV9hdXRv
bWF0aW9uUmF0ZU1vZGUgPT0gQXV0b21hdGlvblJhdGVNb2RlOjpGaXhlZCkKLSAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiYXV0b21hdGlvblJhdGUgY2Fubm90
IGJlIGNoYW5nZWQgZm9yIHRoaXMgbm9kZSIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7
IEludmFsaWRTdGF0ZUVycm9yLCAiYXV0b21hdGlvblJhdGUgY2Fubm90IGJlIGNoYW5nZWQgZm9y
IHRoaXMgbm9kZSJfcyB9OwogCiAgICAgbV9hdXRvbWF0aW9uUmF0ZSA9IGF1dG9tYXRpb25SYXRl
OwogICAgIHJldHVybiB7IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvUGFyYW1UaW1lbGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0F1ZGlvUGFyYW1UaW1lbGluZS5jcHAKaW5kZXggZTU5YWE3ZTZkODQyZmFlYmZkYzM4
YTA1OWVjOTVjODE5M2U1NDZhNi4uY2MzNGRjMzRlNTA3MWQ3NGJkNTJjMWRiNjg4YmM5ZjIxNDhl
NTNkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1Bh
cmFtVGltZWxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9QYXJhbVRpbWVsaW5lLmNwcApAQCAtMTcyLDcgKzE3Miw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+
IEF1ZGlvUGFyYW1UaW1lbGluZTo6aW5zZXJ0RXZlbnQoUGFyYW1FdmVudCYmIGV2ZW50KQogICAg
ICAgICAgICAgLy8gT3RoZXJ3aXNlLCBtYWtlIHN1cmUgdGhpcyBldmVudCBkb2Vzbid0IG92ZXJs
YXAgYW55IGV4aXN0aW5nIFNldFZhbHVlQ3VydmUgZXZlbnQuCiAgICAgICAgICAgICBhdXRvIHBh
cmVudEV2ZW50RW5kVGltZSA9IHBhcmFtRXZlbnQudGltZSgpICsgcGFyYW1FdmVudC5kdXJhdGlv
bigpOwogICAgICAgICAgICAgaWYgKGV2ZW50LnRpbWUoKSA+PSBwYXJhbUV2ZW50LnRpbWUoKSAm
JiBldmVudC50aW1lKCkgPCBwYXJlbnRFdmVudEVuZFRpbWUpCi0gICAgICAgICAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9yLCAiRXZlbnRzIGFyZSBvdmVybGFwcGlu
ZyIgfTsKKyAgICAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJy
b3IsICJFdmVudHMgYXJlIG92ZXJsYXBwaW5nIl9zIH07CiAgICAgICAgIH0KIAogICAgICAgICBp
ZiAocGFyYW1FdmVudC50aW1lKCkgPiBpbnNlcnRUaW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9CaXF1YWRGaWx0ZXJOb2RlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vQmlxdWFkRmlsdGVyTm9kZS5jcHAKaW5kZXggMTQwZWQwYTI2
ZTU3NTUxNzAxNGFjMzNhNjQzMTU1ODkwOWMwMjcyYy4uNWQ3MzZjZmNiMjU1OTE4Zjg5NzVkN2Iz
YjFmNzhmYjBiMDM0NTE2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9CaXF1YWRGaWx0ZXJOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL0JpcXVhZEZpbHRlck5vZGUuY3BwCkBAIC03NCw3ICs3NCw3IEBAIEV4Y2VwdGlvbk9y
PHZvaWQ+IEJpcXVhZEZpbHRlck5vZGU6OmdldEZyZXF1ZW5jeVJlc3BvbnNlKGNvbnN0IFJlZjxG
bG9hdDMyQXJyYXk+CiB7CiAgICAgdW5zaWduZWQgbGVuZ3RoID0gZnJlcXVlbmN5SHotPmxlbmd0
aCgpOwogICAgIGlmIChtYWdSZXNwb25zZS0+bGVuZ3RoKCkgIT0gbGVuZ3RoIHx8IHBoYXNlUmVz
cG9uc2UtPmxlbmd0aCgpICE9IGxlbmd0aCkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IElu
dmFsaWRBY2Nlc3NFcnJvciwgIlRoZSBhcnJheXMgcGFzc2VkIGFzIGFyZ3VtZW50cyBtdXN0IGhh
dmUgdGhlIHNhbWUgbGVuZ3RoIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxp
ZEFjY2Vzc0Vycm9yLCAiVGhlIGFycmF5cyBwYXNzZWQgYXMgYXJndW1lbnRzIG11c3QgaGF2ZSB0
aGUgc2FtZSBsZW5ndGgiX3MgfTsKIAogICAgIGlmIChsZW5ndGgpCiAgICAgICAgIGJpcXVhZFBy
b2Nlc3NvcigpLT5nZXRGcmVxdWVuY3lSZXNwb25zZShsZW5ndGgsIGZyZXF1ZW5jeUh6LT5kYXRh
KCksIG1hZ1Jlc3BvbnNlLT5kYXRhKCksIHBoYXNlUmVzcG9uc2UtPmRhdGEoKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0JpcXVhZFByb2Nlc3Nvci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0JpcXVhZFByb2Nlc3Nvci5jcHAKaW5k
ZXggOWRmNjI5ZDdlYmZkZDZmYjc0MTVmM2ViNzc5NzI2YmJhYmNhOGYxYy4uZjlhNTQzNGU4ODA1
ZDdkZTQ5MThhNmZiZDg3NTRkMWE1ZWQyNzIxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9CaXF1YWRQcm9jZXNzb3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vQmlxdWFkUHJvY2Vzc29yLmNwcApAQCAtMzUsMTAgKzM1LDEwIEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAKIEJpcXVhZFByb2Nlc3Nvcjo6QmlxdWFkUHJvY2Vz
c29yKEJhc2VBdWRpb0NvbnRleHQmIGNvbnRleHQsIGZsb2F0IHNhbXBsZVJhdGUsIHNpemVfdCBu
dW1iZXJPZkNoYW5uZWxzLCBib29sIGF1dG9Jbml0aWFsaXplKQogICAgIDogQXVkaW9EU1BLZXJu
ZWxQcm9jZXNzb3Ioc2FtcGxlUmF0ZSwgbnVtYmVyT2ZDaGFubmVscykKLSAgICAsIG1fcGFyYW1l
dGVyMShBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCwgImZyZXF1ZW5jeSIsIDM1MC4wLCAwLjAs
IDAuNSAqIHNhbXBsZVJhdGUsIEF1dG9tYXRpb25SYXRlOjpBUmF0ZSkpCi0gICAgLCBtX3BhcmFt
ZXRlcjIoQXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJRIiwgMSwgLUZMVF9NQVgsIEZMVF9N
QVgsIEF1dG9tYXRpb25SYXRlOjpBUmF0ZSkpCi0gICAgLCBtX3BhcmFtZXRlcjMoQXVkaW9QYXJh
bTo6Y3JlYXRlKGNvbnRleHQsICJnYWluIiwgMC4wLCAtRkxUX01BWCwgNDAgKiBzdGQ6OmxvZzEw
KHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+OjptYXgoKSksIEF1dG9tYXRpb25SYXRlOjpBUmF0
ZSkpCi0gICAgLCBtX3BhcmFtZXRlcjQoQXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJkZXR1
bmUiLCAwLjAsIC0xNTM2MDAsIDE1MzYwMCwgQXV0b21hdGlvblJhdGU6OkFSYXRlKSkKKyAgICAs
IG1fcGFyYW1ldGVyMShBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCwgImZyZXF1ZW5jeSJfcywg
MzUwLjAsIDAuMCwgMC41ICogc2FtcGxlUmF0ZSwgQXV0b21hdGlvblJhdGU6OkFSYXRlKSkKKyAg
ICAsIG1fcGFyYW1ldGVyMihBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCwgIlEiX3MsIDEsIC1G
TFRfTUFYLCBGTFRfTUFYLCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQorICAgICwgbV9wYXJhbWV0
ZXIzKEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0LCAiZ2FpbiJfcywgMC4wLCAtRkxUX01BWCwg
NDAgKiBzdGQ6OmxvZzEwKHN0ZDo6bnVtZXJpY19saW1pdHM8ZmxvYXQ+OjptYXgoKSksIEF1dG9t
YXRpb25SYXRlOjpBUmF0ZSkpCisgICAgLCBtX3BhcmFtZXRlcjQoQXVkaW9QYXJhbTo6Y3JlYXRl
KGNvbnRleHQsICJkZXR1bmUiX3MsIDAuMCwgLTE1MzYwMCwgMTUzNjAwLCBBdXRvbWF0aW9uUmF0
ZTo6QVJhdGUpKQogewogICAgIGlmIChhdXRvSW5pdGlhbGl6ZSkKICAgICAgICAgaW5pdGlhbGl6
ZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9EZWxheVBy
b2Nlc3Nvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlbGF5UHJvY2Vz
c29yLmNwcAppbmRleCBhZWU0MGU5NGU2NWRlZTRiZjg0NDI1MTI5NGUzMTQzNzhhZDA0MmE1Li4x
ZjkwY2JjOWYxOTcwN2E5YmMxN2ExMTNiY2M0YjFkNThmOTQwNTA5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlbGF5UHJvY2Vzc29yLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlbGF5UHJvY2Vzc29yLmNwcApAQCAtMzQsNyAr
MzQsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIERlbGF5UHJvY2Vzc29yOjpEZWxheVByb2Nl
c3NvcihCYXNlQXVkaW9Db250ZXh0JiBjb250ZXh0LCBmbG9hdCBzYW1wbGVSYXRlLCB1bnNpZ25l
ZCBudW1iZXJPZkNoYW5uZWxzLCBkb3VibGUgbWF4RGVsYXlUaW1lKQogICAgIDogQXVkaW9EU1BL
ZXJuZWxQcm9jZXNzb3Ioc2FtcGxlUmF0ZSwgbnVtYmVyT2ZDaGFubmVscykKLSAgICAsIG1fZGVs
YXlUaW1lKEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0LCAiZGVsYXlUaW1lIiwgMC4wLCAwLjAs
IG1heERlbGF5VGltZSwgQXV0b21hdGlvblJhdGU6OkFSYXRlKSkKKyAgICAsIG1fZGVsYXlUaW1l
KEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0LCAiZGVsYXlUaW1lIl9zLCAwLjAsIDAuMCwgbWF4
RGVsYXlUaW1lLCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQogewogCiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1dhdmVTaGFwZXJOb2RlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vV2F2ZVNoYXBlck5vZGUuY3BwCmluZGV4IGZjMTUy
ODI3YjNhMGNjMjdhOGQ0M2I1NDU0NGZmNGJjNWJjNDljOWIuLjY0MjljMzA1MTYxMmFmZWU4MmIz
ZmNiZDU4YjJmNjA3NDBmZjk0ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vV2F2ZVNoYXBlck5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vV2F2ZVNoYXBlck5vZGUuY3BwCkBAIC00Myw3ICs0Myw3IEBAIEV4Y2VwdGlvbk9y
PFJlZjxXYXZlU2hhcGVyTm9kZT4+IFdhdmVTaGFwZXJOb2RlOjpjcmVhdGUoQmFzZUF1ZGlvQ29u
dGV4dCYgY29udGV4CiAgICAgaWYgKG9wdGlvbnMuY3VydmUpIHsKICAgICAgICAgY3VydmUgPSBG
bG9hdDMyQXJyYXk6OnRyeUNyZWF0ZShvcHRpb25zLmN1cnZlLT5kYXRhKCksIG9wdGlvbnMuY3Vy
dmUtPnNpemUoKSk7CiAgICAgICAgIGlmICghY3VydmUpCi0gICAgICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJJbnZhbGlkIGN1cnZlIHBhcmFtZXRlciIgfTsK
KyAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkludmFs
aWQgY3VydmUgcGFyYW1ldGVyIl9zIH07CiAgICAgfQogCiAgICAgYXV0byBub2RlID0gYWRvcHRS
ZWYoKm5ldyBXYXZlU2hhcGVyTm9kZShjb250ZXh0KSk7CkBAIC03Niw3ICs3Niw3IEBAIEV4Y2Vw
dGlvbk9yPHZvaWQ+IFdhdmVTaGFwZXJOb2RlOjpzZXRDdXJ2ZUZvckJpbmRpbmdzKFJlZlB0cjxG
bG9hdDMyQXJyYXk+JiYgY3VyCiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsgCiAgICAgREVC
VUdfTE9HKExPR0lERU5USUZJRVIpOwogICAgIGlmIChjdXJ2ZSAmJiBjdXJ2ZS0+bGVuZ3RoKCkg
PCAyKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJMZW5n
dGggb2YgY3VydmUgYXJyYXkgY2Fubm90IGJlIGxlc3MgdGhhbiAyIiB9OworICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJMZW5ndGggb2YgY3VydmUgYXJyYXkg
Y2Fubm90IGJlIGxlc3MgdGhhbiAyIl9zIH07CiAKICAgICBpZiAoY3VydmUpIHsKICAgICAgICAg
Ly8gVGhlIHNwZWNpZmljYXRpb24gc3RhdGVzIHRoYXQgd2Ugc2hvdWxkIG1haW50YWluIGFuIGlu
dGVybmFsIGNvcHkgb2YgdGhlIGN1cnZlIHNvIHRoYXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXV0aG4vV2ViQXV0aGVudGljYXRpb25VdGlscy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1dlYkF1dGhlbnRpY2F0aW9uVXRpbHMuY3BwCmluZGV4
IGMxZmJmMDU2Y2M2YWI1ZTE4Mjk4ODIyNDYzNDQxYjRhODVlYWJkNGMuLjMzMmUyYmU3OTVhMDFm
MWUwNDY2MmRjNDExM2JhZWFjNDQwNzFlNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXV0aG4vV2ViQXV0aGVudGljYXRpb25VdGlscy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdXRobi9XZWJBdXRoZW50aWNhdGlvblV0aWxzLmNwcApAQCAtMTM4
LDcgKzEzOCw3IEBAIGNib3I6OkNCT1JWYWx1ZTo6TWFwVmFsdWUgYnVpbGRBdHRlc3RhdGlvbk1h
cChWZWN0b3I8dWludDhfdD4mJiBhdXRoRGF0YSwgU3RyaW5nCiAgICAgICAgIGNvbnN0IHNpemVf
dCBhYWd1aWRPZmZzZXQgPSBycElkSGFzaExlbmd0aCArIGZsYWdzTGVuZ3RoICsgc2lnbkNvdW50
ZXJMZW5ndGg7CiAgICAgICAgIGlmIChhdXRoRGF0YS5zaXplKCkgPj0gYWFndWlkT2Zmc2V0ICsg
YWFndWlkTGVuZ3RoKQogICAgICAgICAgICAgbWVtc2V0KGF1dGhEYXRhLmRhdGEoKSArIGFhZ3Vp
ZE9mZnNldCwgMCwgYWFndWlkTGVuZ3RoKTsKLSAgICAgICAgZm9ybWF0ID0gbm9uZUF0dGVzdGF0
aW9uVmFsdWU7CisgICAgICAgIGZvcm1hdCA9IFN0cmluZyB7IG5vbmVBdHRlc3RhdGlvblZhbHVl
IH07CiAgICAgICAgIHN0YXRlbWVudE1hcC5jbGVhcigpOwogICAgIH0KICAgICBhdHRlc3RhdGlv
bk9iamVjdE1hcFtjYm9yOjpDQk9SVmFsdWUoImF1dGhEYXRhIildID0gY2Jvcjo6Q0JPUlZhbHVl
KFdURk1vdmUoYXV0aERhdGEpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXV0aG4vZmlkby9EZXZpY2VSZXNwb25zZUNvbnZlcnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRGV2aWNlUmVzcG9uc2VDb252ZXJ0ZXIuY3BwCmluZGV4
IGYyMWM1ZWU3YTI1ZjVlOTI3NTQ0MzFkMzU0YTg3YThkMjFjNTgzYzguLjczNWE5YmY4ZTAzYTg0
MmE5N2Q0Njk0YWNjYzZiMjJlMTNlZmUwNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXV0aG4vZmlkby9EZXZpY2VSZXNwb25zZUNvbnZlcnRlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0RldmljZVJlc3BvbnNlQ29udmVydGVy
LmNwcApAQCAtMTI2LDcgKzEyNiw3IEBAIFJlZlB0cjxBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25S
ZXNwb25zZT4gcmVhZENUQVBNYWtlQ3JlZGVudGlhbFJlc3BvbnNlKGNvbnN0IFZlCiAgICAgICAg
IC8vIFRoZSByZWFzb24gd2h5IHdlIGNhbid0IGRpcmVjdGx5IHBhc3MgYXV0aGVudGljYXRvckRh
dGEvZm9ybWF0L2F0dFN0bXQgdG8gYnVpbGRBdHRlc3RhdGlvbk9iamVjdAogICAgICAgICAvLyBp
cyB0aGF0IHRoZXkgYXJlIENCT1JWYWx1ZSBpbnN0ZWFkIG9mIHRoZSByYXcgdHlwZS4KICAgICAg
ICAgLy8gQWxzbywgZm9ybWF0IGFuZCBhdHRTdG10IGFyZSBvbWl0dGVkIGFzIHRoZXkgYXJlIG5v
dCB1c2VmdWwgaW4gbm9uZSBhdHRlc3RhdGlvbi4KLSAgICAgICAgYXR0ZXN0YXRpb25PYmplY3Qg
PSBidWlsZEF0dGVzdGF0aW9uT2JqZWN0KFZlY3Rvcjx1aW50OF90PihhdXRoZW50aWNhdG9yRGF0
YS5nZXRCeXRlU3RyaW5nKCkpLCAiIiwgeyB9LCBhdHRlc3RhdGlvbik7CisgICAgICAgIGF0dGVz
dGF0aW9uT2JqZWN0ID0gYnVpbGRBdHRlc3RhdGlvbk9iamVjdChWZWN0b3I8dWludDhfdD4oYXV0
aGVudGljYXRvckRhdGEuZ2V0Qnl0ZVN0cmluZygpKSwgU3RyaW5nIHsgZW1wdHlTdHJpbmcoKSB9
LCB7IH0sIGF0dGVzdGF0aW9uKTsKICAgICB9IGVsc2UgewogICAgICAgICBDQk9SOjpNYXBWYWx1
ZSBhdHRlc3RhdGlvbk9iamVjdE1hcDsKICAgICAgICAgYXR0ZXN0YXRpb25PYmplY3RNYXBbQ0JP
UigiYXV0aERhdGEiKV0gPSBXVEZNb3ZlKGF1dGhlbnRpY2F0b3JEYXRhKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9QaW4uY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL1Bpbi5jcHAKaW5kZXggOWZhNjczZjE4MmNjY2Iw
NDYyMTczM2FlMzhjNTIzNmQzNjJiNWM4OC4uYjQ0ZjkwYjAxNDM0MjdkMTUyNjdkN2M5ZjY3ZjBj
ZmIwMmMzZmIzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9m
aWRvL1Bpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL1Bp
bi5jcHAKQEAgLTE3MSw3ICsxNzEsNyBAQCBzdGQ6Om9wdGlvbmFsPEtleUFncmVlbWVudFJlc3Bv
bnNlPiBLZXlBZ3JlZW1lbnRSZXNwb25zZTo6cGFyc2VGcm9tQ09TRShjb25zdCBDQgogCiAgICAg
Y29uc3QgYXV0byYgeCA9IHhJdC0+c2Vjb25kLmdldEJ5dGVTdHJpbmcoKTsKICAgICBjb25zdCBh
dXRvJiB5ID0geUl0LT5zZWNvbmQuZ2V0Qnl0ZVN0cmluZygpOwotICAgIGF1dG8gcGVlcktleSA9
IENyeXB0b0tleUVDOjppbXBvcnRSYXcoQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6RUNESCwg
IlAtMjU2IiwgZW5jb2RlUmF3UHVibGljS2V5KHgsIHkpLCB0cnVlLCBDcnlwdG9LZXlVc2FnZURl
cml2ZUJpdHMpOworICAgIGF1dG8gcGVlcktleSA9IENyeXB0b0tleUVDOjppbXBvcnRSYXcoQ3J5
cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6RUNESCwgIlAtMjU2Il9zLCBlbmNvZGVSYXdQdWJsaWNL
ZXkoeCwgeSksIHRydWUsIENyeXB0b0tleVVzYWdlRGVyaXZlQml0cyk7CiAgICAgaWYgKCFwZWVy
S2V5KQogICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwogCkBAIC0yNDcsNyArMjQ3LDcgQEAg
c3RkOjpvcHRpb25hbDxUb2tlblJlcXVlc3Q+IFRva2VuUmVxdWVzdDo6dHJ5Q3JlYXRlKGNvbnN0
IENTdHJpbmcmIHBpbiwgY29uc3QgQ3IKICAgICAvLyBUaGUgZm9sbG93aW5nIGltcGxlbWVudHMg
U2VjdGlvbiA1LjUuNCBHZXR0aW5nIHNoYXJlZFNlY3JldCBmcm9tIEF1dGhlbnRpY2F0b3IuCiAg
ICAgLy8gaHR0cHM6Ly9maWRvYWxsaWFuY2Uub3JnL3NwZWNzL2ZpZG8tdjIuMC1wcy0yMDE5MDEz
MC9maWRvLWNsaWVudC10by1hdXRoZW50aWNhdG9yLXByb3RvY29sLXYyLjAtcHMtMjAxOTAxMzAu
aHRtbCNnZXR0aW5nU2hhcmVkU2VjcmV0CiAgICAgLy8gMS4gR2VuZXJhdGUgYSBQMjU2IGtleSBw
YWlyLgotICAgIGF1dG8ga2V5UGFpclJlc3VsdCA9IENyeXB0b0tleUVDOjpnZW5lcmF0ZVBhaXIo
Q3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6RUNESCwgIlAtMjU2IiwgdHJ1ZSwgQ3J5cHRvS2V5
VXNhZ2VEZXJpdmVCaXRzKTsKKyAgICBhdXRvIGtleVBhaXJSZXN1bHQgPSBDcnlwdG9LZXlFQzo6
Z2VuZXJhdGVQYWlyKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkVDREgsICJQLTI1NiJfcywg
dHJ1ZSwgQ3J5cHRvS2V5VXNhZ2VEZXJpdmVCaXRzKTsKICAgICBBU1NFUlQoIWtleVBhaXJSZXN1
bHQuaGFzRXhjZXB0aW9uKCkpOwogICAgIGF1dG8ga2V5UGFpciA9IGtleVBhaXJSZXN1bHQucmVs
ZWFzZVJldHVyblZhbHVlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXV0aG4vZmlkby9VMmZSZXNwb25zZUNvbnZlcnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1dGhuL2ZpZG8vVTJmUmVzcG9uc2VDb252ZXJ0ZXIuY3BwCmluZGV4IDNmMzY2
YWEyNzA2ODQ5NzQ1YWNhMjgxNzliNTk5NmU2NjZlZTI2ZWQuLmE0ZmRlMTVmZmJmZDU1NTc3YjIy
OWQ4NjQ5YzY3NjQ4Y2U3ZWI5NmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXV0aG4vZmlkby9VMmZSZXNwb25zZUNvbnZlcnRlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL1UyZlJlc3BvbnNlQ29udmVydGVyLmNwcApAQCAtMTU4
LDcgKzE1OCw3IEBAIFJlZlB0cjxBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZT4gcmVh
ZFUyZlJlZ2lzdGVyUmVzcG9uc2UoY29uc3QgU3RyaW5nJiByCiAgICAgaWYgKGZpZG9BdHRlc3Rh
dGlvblN0YXRlbWVudC5lbXB0eSgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIGF1
dG8gYXR0ZXN0YXRpb25PYmplY3QgPSBidWlsZEF0dGVzdGF0aW9uT2JqZWN0KFdURk1vdmUoYXV0
aERhdGEpLCAiZmlkby11MmYiLCBXVEZNb3ZlKGZpZG9BdHRlc3RhdGlvblN0YXRlbWVudCksIGF0
dGVzdGF0aW9uKTsKKyAgICBhdXRvIGF0dGVzdGF0aW9uT2JqZWN0ID0gYnVpbGRBdHRlc3RhdGlv
bk9iamVjdChXVEZNb3ZlKGF1dGhEYXRhKSwgImZpZG8tdTJmIl9zLCBXVEZNb3ZlKGZpZG9BdHRl
c3RhdGlvblN0YXRlbWVudCksIGF0dGVzdGF0aW9uKTsKIAogICAgIHJldHVybiBBdXRoZW50aWNh
dG9yQXR0ZXN0YXRpb25SZXNwb25zZTo6Y3JlYXRlKGNyZWRlbnRpYWxJZCwgYXR0ZXN0YXRpb25P
YmplY3QsIGF0dGFjaG1lbnQpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJkYXRhYmFzZS9DaGFuZ2VWZXJzaW9uV3JhcHBlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmRhdGFiYXNlL0NoYW5nZVZlcnNpb25XcmFwcGVyLmNwcAppbmRleCA5NGVmNTA5
NTU4YjZjMjY1OWZkZmEzZDY4OWI0YjBkMjgzNzNkOGE4Li4zNWMwZTE2ZTNlMzUxMzIzM2MyMmQ4
ZjNhYTU2NDUyMDNkOTg0NzQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmRhdGFiYXNlL0NoYW5nZVZlcnNpb25XcmFwcGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmRhdGFiYXNlL0NoYW5nZVZlcnNpb25XcmFwcGVyLmNwcApAQCAtNTMsNyArNTMs
NyBAQCBib29sIENoYW5nZVZlcnNpb25XcmFwcGVyOjpwZXJmb3JtUHJlZmxpZ2h0KFNRTFRyYW5z
YWN0aW9uJiB0cmFuc2FjdGlvbikKICAgICB9CiAKICAgICBpZiAoYWN0dWFsVmVyc2lvbiAhPSBt
X29sZFZlcnNpb24pIHsKLSAgICAgICAgbV9zcWxFcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FM
RXJyb3I6OlZFUlNJT05fRVJSLCAiY3VycmVudCB2ZXJzaW9uIG9mIHRoZSBkYXRhYmFzZSBhbmQg
YG9sZFZlcnNpb25gIGFyZ3VtZW50IGRvIG5vdCBtYXRjaCIpOworICAgICAgICBtX3NxbEVycm9y
ID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6VkVSU0lPTl9FUlIsICJjdXJyZW50IHZlcnNp
b24gb2YgdGhlIGRhdGFiYXNlIGFuZCBgb2xkVmVyc2lvbmAgYXJndW1lbnQgZG8gbm90IG1hdGNo
Il9zKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9ET01XaW5kb3dXZWJEYXRhYmFzZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RPTVdpbmRvd1dlYkRhdGFiYXNlLmNw
cAppbmRleCA4YWMyYWQ2YWY1ZTRhM2JmZjg0YzI2NzZjMGUyNGU2YmJjMmYzYjVjLi41NmFjMGU0
MjJkZDRkZjkzNmUzY2NiMDBjZTVmNDVjM2Q2NTU0MTViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RPTVdpbmRvd1dlYkRhdGFiYXNlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RPTVdpbmRvd1dlYkRhdGFiYXNlLmNw
cApAQCAtNDUsNyArNDUsNyBAQCBFeGNlcHRpb25PcjxSZWZQdHI8RGF0YWJhc2U+PiBET01XaW5k
b3dXZWJEYXRhYmFzZTo6b3BlbkRhdGFiYXNlKERPTVdpbmRvdyYgd2luZAogICAgIGF1dG8qIGRv
Y3VtZW50ID0gd2luZG93LmRvY3VtZW50KCk7CiAgICAgaWYgKCFkb2N1bWVudCkKICAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IFNlY3VyaXR5RXJyb3IgfTsKLSAgICBkb2N1bWVudC0+YWRkQ29u
c29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6U3RvcmFnZSwgTWVzc2FnZUxldmVsOjpXYXJuaW5n
LCAiV2ViIFNRTCBpcyBkZXByZWNhdGVkLiBQbGVhc2UgdXNlIEluZGV4ZWREQiBpbnN0ZWFkLiIp
OworICAgIGRvY3VtZW50LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpTdG9yYWdl
LCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsICJXZWIgU1FMIGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1
c2UgSW5kZXhlZERCIGluc3RlYWQuIl9zKTsKIAogICAgIGF1dG8mIHNlY3VyaXR5T3JpZ2luID0g
ZG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCk7CiAgICAgaWYgKCFzZWN1cml0eU9yaWdpbi5jYW5B
Y2Nlc3NEYXRhYmFzZSgmZG9jdW1lbnQtPnRvcE9yaWdpbigpKSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5jcHAKaW5kZXggN2NmYjFjNDEwZTY3ZDBi
MDdmN2UzNDk0ODJkYzBlZTlmNmIxMTZkZi4uY2QwYzQxNGZiMzEwMDI0MTNlYTJiZmRkMDk4MzA1
ZDUxYjlmMWZkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFz
ZS9EYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9E
YXRhYmFzZS5jcHAKQEAgLTE5OCw3ICsxOTgsNyBAQCBEYXRhYmFzZTo6RGF0YWJhc2UoRGF0YWJh
c2VDb250ZXh0JiBjb250ZXh0LCBjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IFN0cmluZyYgZQog
ICAgICwgbV9kaXNwbGF5TmFtZShkaXNwbGF5TmFtZS5pc29sYXRlZENvcHkoKSkKICAgICAsIG1f
ZXN0aW1hdGVkU2l6ZShlc3RpbWF0ZWRTaXplKQogICAgICwgbV9maWxlbmFtZShEYXRhYmFzZU1h
bmFnZXI6OnNpbmdsZXRvbigpLmZ1bGxQYXRoRm9yRGF0YWJhc2UobV9kb2N1bWVudC0+c2VjdXJp
dHlPcmlnaW4oKSwgbV9uYW1lKSkKLSAgICAsIG1fZGF0YWJhc2VBdXRob3JpemVyKERhdGFiYXNl
QXV0aG9yaXplcjo6Y3JlYXRlKHVucXVhbGlmaWVkSW5mb1RhYmxlTmFtZSkpCisgICAgLCBtX2Rh
dGFiYXNlQXV0aG9yaXplcihEYXRhYmFzZUF1dGhvcml6ZXI6OmNyZWF0ZShTdHJpbmcgeyB1bnF1
YWxpZmllZEluZm9UYWJsZU5hbWUgfSkpCiB7CiAgICAgewogICAgICAgICBMb2NrZXIgbG9ja2Vy
IHsgZ3VpZExvY2sgfTsKQEAgLTY4Nyw3ICs2ODcsNyBAQCB2b2lkIERhdGFiYXNlOjpydW5UcmFu
c2FjdGlvbihSZWZQdHI8U1FMVHJhbnNhY3Rpb25DYWxsYmFjaz4mJiBjYWxsYmFjaywgUmVmUHRy
PAogICAgIGlmICghbV9pc1RyYW5zYWN0aW9uUXVldWVFbmFibGVkKSB7CiAgICAgICAgIGlmIChl
cnJvckNhbGxiYWNrKSB7CiAgICAgICAgICAgICBtX2RvY3VtZW50LT5ldmVudExvb3AoKS5xdWV1
ZVRhc2soVGFza1NvdXJjZTo6TmV0d29ya2luZywgW2Vycm9yQ2FsbGJhY2sgPSBSZWYgeyAqZXJy
b3JDYWxsYmFjayB9XSgpIHsKLSAgICAgICAgICAgICAgICBlcnJvckNhbGxiYWNrLT5oYW5kbGVF
dmVudChTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpVTktOT1dOX0VSUiwgImRhdGFiYXNlIGhh
cyBiZWVuIGNsb3NlZCIpKTsKKyAgICAgICAgICAgICAgICBlcnJvckNhbGxiYWNrLT5oYW5kbGVF
dmVudChTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpVTktOT1dOX0VSUiwgImRhdGFiYXNlIGhh
cyBiZWVuIGNsb3NlZCJfcykpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0KICAgICAgICAg
cmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9E
YXRhYmFzZUF1dGhvcml6ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFz
ZS9EYXRhYmFzZUF1dGhvcml6ZXIuY3BwCmluZGV4IGUyZGM3MDZmNWQ5NjVkMmQ3YTVjYmE4NzIx
NjZjZjUzYTk4MDhhMWYuLmRjZjllYjk1MmRkZDAzYjRiMGQ3YWQ4NmE2Y2NkNWZiNDNlM2RjZWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VB
dXRob3JpemVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0Rh
dGFiYXNlQXV0aG9yaXplci5jcHAKQEAgLTYyLDY0ICs2Miw2NCBAQCB2b2lkIERhdGFiYXNlQXV0
aG9yaXplcjo6YWRkQWxsb3dlZEZ1bmN0aW9ucygpCiB7CiAgICAgLy8gU1FMaXRlIGZ1bmN0aW9u
cyB1c2VkIHRvIGhlbHAgaW1wbGVtZW50IHNvbWUgb3BlcmF0aW9ucwogICAgIC8vIEFMVEVSIFRB
QkxFIGhlbHBlcnMKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJzcWxpdGVfcmVuYW1lX3Rh
YmxlIik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgic3FsaXRlX3JlbmFtZV90cmlnZ2Vy
Iik7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgic3FsaXRlX3JlbmFtZV90YWJsZSJfcyk7
CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgic3FsaXRlX3JlbmFtZV90cmlnZ2VyIl9zKTsK
ICAgICAvLyBHTE9CIGhlbHBlcnMKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJnbG9iIik7
CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgiZ2xvYiJfcyk7CiAKICAgICAvLyBTUUxpdGUg
Y29yZSBmdW5jdGlvbnMKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJhYnMiKTsKLSAgICBt
X2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJjaGFuZ2VzIik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25z
LmFkZCgiY29hbGVzY2UiKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJnbG9iIik7Ci0g
ICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgiaWZudWxsIik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rp
b25zLmFkZCgiaGV4Iik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgibGFzdF9pbnNlcnRf
cm93aWQiKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJsZW5ndGgiKTsKLSAgICBtX2Fs
bG93ZWRGdW5jdGlvbnMuYWRkKCJsaWtlIik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgi
bG93ZXIiKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJsdHJpbSIpOwotICAgIG1fYWxs
b3dlZEZ1bmN0aW9ucy5hZGQoIm1heCIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoIm1p
biIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoIm51bGxpZiIpOwotICAgIG1fYWxsb3dl
ZEZ1bmN0aW9ucy5hZGQoInF1b3RlIik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgicmVw
bGFjZSIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInJvdW5kIik7Ci0gICAgbV9hbGxv
d2VkRnVuY3Rpb25zLmFkZCgicnRyaW0iKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJz
b3VuZGV4Iik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgic3FsaXRlX3NvdXJjZV9pZCIp
OwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInNxbGl0ZV92ZXJzaW9uIik7Ci0gICAgbV9h
bGxvd2VkRnVuY3Rpb25zLmFkZCgic3Vic3RyIik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFk
ZCgidG90YWxfY2hhbmdlcyIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInRyaW0iKTsK
LSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJ0eXBlb2YiKTsKLSAgICBtX2FsbG93ZWRGdW5j
dGlvbnMuYWRkKCJ1cHBlciIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInplcm9ibG9i
Iik7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgiYWJzIl9zKTsKKyAgICBtX2FsbG93ZWRG
dW5jdGlvbnMuYWRkKCJjaGFuZ2VzIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJj
b2FsZXNjZSJfcyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgiZ2xvYiJfcyk7CisgICAg
bV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgiaWZudWxsIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlv
bnMuYWRkKCJoZXgiX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoImxhc3RfaW5zZXJ0
X3Jvd2lkIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJsZW5ndGgiX3MpOworICAg
IG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoImxpa2UiX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9u
cy5hZGQoImxvd2VyIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJsdHJpbSJfcyk7
CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgibWF4Il9zKTsKKyAgICBtX2FsbG93ZWRGdW5j
dGlvbnMuYWRkKCJtaW4iX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoIm51bGxpZiJf
cyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgicXVvdGUiX3MpOworICAgIG1fYWxsb3dl
ZEZ1bmN0aW9ucy5hZGQoInJlcGxhY2UiX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQo
InJvdW5kIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJydHJpbSJfcyk7CisgICAg
bV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgic291bmRleCJfcyk7CisgICAgbV9hbGxvd2VkRnVuY3Rp
b25zLmFkZCgic3FsaXRlX3NvdXJjZV9pZCJfcyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFk
ZCgic3FsaXRlX3ZlcnNpb24iX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInN1YnN0
ciJfcyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgidG90YWxfY2hhbmdlcyJfcyk7Cisg
ICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgidHJpbSJfcyk7CisgICAgbV9hbGxvd2VkRnVuY3Rp
b25zLmFkZCgidHlwZW9mIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJ1cHBlciJf
cyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgiemVyb2Jsb2IiX3MpOwogCiAgICAgLy8g
U1FMaXRlIGRhdGUgYW5kIHRpbWUgZnVuY3Rpb25zCi0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFk
ZCgiZGF0ZSIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInRpbWUiKTsKLSAgICBtX2Fs
bG93ZWRGdW5jdGlvbnMuYWRkKCJkYXRldGltZSIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5h
ZGQoImp1bGlhbmRheSIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInN0cmZ0aW1lIik7
CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgiZGF0ZSJfcyk7CisgICAgbV9hbGxvd2VkRnVu
Y3Rpb25zLmFkZCgidGltZSJfcyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgiZGF0ZXRp
bWUiX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoImp1bGlhbmRheSJfcyk7CisgICAg
bV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgic3RyZnRpbWUiX3MpOwogCiAgICAgLy8gU1FMaXRlIGFn
Z3JlZ2F0ZSBmdW5jdGlvbnMKICAgICAvLyBtYXgoKSBhbmQgbWluKCkgYXJlIGFscmVhZHkgaW4g
dGhlIGxpc3QKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJhdmciKTsKLSAgICBtX2FsbG93
ZWRGdW5jdGlvbnMuYWRkKCJjb3VudCIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoImdy
b3VwX2NvbmNhdCIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInN1bSIpOwotICAgIG1f
YWxsb3dlZEZ1bmN0aW9ucy5hZGQoInRvdGFsIik7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFk
ZCgiYXZnIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJjb3VudCJfcyk7CisgICAg
bV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgiZ3JvdXBfY29uY2F0Il9zKTsKKyAgICBtX2FsbG93ZWRG
dW5jdGlvbnMuYWRkKCJzdW0iX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInRvdGFs
Il9zKTsKIAogICAgIC8vIFNRTGl0ZSBGVFMgZnVuY3Rpb25zCi0gICAgbV9hbGxvd2VkRnVuY3Rp
b25zLmFkZCgibWF0Y2giKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJzbmlwcGV0Iik7
Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgib2Zmc2V0cyIpOwotICAgIG1fYWxsb3dlZEZ1
bmN0aW9ucy5hZGQoIm9wdGltaXplIik7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgibWF0
Y2giX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInNuaXBwZXQiX3MpOworICAgIG1f
YWxsb3dlZEZ1bmN0aW9ucy5hZGQoIm9mZnNldHMiX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9u
cy5hZGQoIm9wdGltaXplIl9zKTsKIAogICAgIC8vIFNRTGl0ZSBJQ1UgZnVuY3Rpb25zCiAgICAg
Ly8gbGlrZSgpLCBsb3dlcigpIGFuZCB1cHBlcigpIGFyZSBhbHJlYWR5IGluIHRoZSBsaXN0Ci0g
ICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgicmVnZXhwIik7CisgICAgbV9hbGxvd2VkRnVuY3Rp
b25zLmFkZCgicmVnZXhwIl9zKTsKIH0KIAogaW50IERhdGFiYXNlQXV0aG9yaXplcjo6Y3JlYXRl
VGFibGUoY29uc3QgU3RyaW5nJiB0YWJsZU5hbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlVHJhY2tlci5jcHAKaW5kZXggOWViMzkxYzZk
MGJkNmQ0ODYwNTEwZWRhYjcyODkzMzk5NTA2YmM3Mi4uYTRmMGM3NDQ1MjM3MWE0ZGJkOGRmMDg2
MDY5ZWNkMTBhYmEzMjI5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJk
YXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmNwcApAQCAtOTEsNyArOTEsNyBAQCBEYXRhYmFz
ZVRyYWNrZXI6OkRhdGFiYXNlVHJhY2tlcihjb25zdCBTdHJpbmcmIGRhdGFiYXNlUGF0aCkKIAog
U3RyaW5nIERhdGFiYXNlVHJhY2tlcjo6dHJhY2tlckRhdGFiYXNlUGF0aCgpIGNvbnN0CiB7Ci0g
ICAgcmV0dXJuIFNRTGl0ZUZpbGVTeXN0ZW06OmFwcGVuZERhdGFiYXNlRmlsZU5hbWVUb1BhdGgo
bV9kYXRhYmFzZURpcmVjdG9yeVBhdGguaXNvbGF0ZWRDb3B5KCksICJEYXRhYmFzZXMuZGIiKTsK
KyAgICByZXR1cm4gU1FMaXRlRmlsZVN5c3RlbTo6YXBwZW5kRGF0YWJhc2VGaWxlTmFtZVRvUGF0
aChtX2RhdGFiYXNlRGlyZWN0b3J5UGF0aC5pc29sYXRlZENvcHkoKSwgIkRhdGFiYXNlcy5kYiJf
cyk7CiB9CiAKIHZvaWQgRGF0YWJhc2VUcmFja2VyOjpvcGVuVHJhY2tlckRhdGFiYXNlKFRyYWNr
ZXJDcmVhdGlvbkFjdGlvbiBjcmVhdGVBY3Rpb24pCkBAIC0xMTgsMTQgKzExOCwxNCBAQCB2b2lk
IERhdGFiYXNlVHJhY2tlcjo6b3BlblRyYWNrZXJEYXRhYmFzZShUcmFja2VyQ3JlYXRpb25BY3Rp
b24gY3JlYXRlQWN0aW9uKQogICAgIH0KICAgICBtX2RhdGFiYXNlLmRpc2FibGVUaHJlYWRpbmdD
aGVja3MoKTsKIAotICAgIGlmICghbV9kYXRhYmFzZS50YWJsZUV4aXN0cygiT3JpZ2lucyIpKSB7
CisgICAgaWYgKCFtX2RhdGFiYXNlLnRhYmxlRXhpc3RzKCJPcmlnaW5zIl9zKSkgewogICAgICAg
ICBpZiAoIW1fZGF0YWJhc2UuZXhlY3V0ZUNvbW1hbmQoIkNSRUFURSBUQUJMRSBPcmlnaW5zIChv
cmlnaW4gVEVYVCBVTklRVUUgT04gQ09ORkxJQ1QgUkVQTEFDRSwgcXVvdGEgSU5URUdFUiBOT1Qg
TlVMTCBPTiBDT05GTElDVCBGQUlMKTsiX3MpKSB7CiAgICAgICAgICAgICAvLyBGSVhNRTogYW5k
IGhlcmUKICAgICAgICAgICAgIExPR19FUlJPUigiRmFpbGVkIHRvIGNyZWF0ZSBPcmlnaW5zIHRh
YmxlIik7CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBpZiAoIW1fZGF0YWJhc2UudGFibGVFeGlz
dHMoIkRhdGFiYXNlcyIpKSB7CisgICAgaWYgKCFtX2RhdGFiYXNlLnRhYmxlRXhpc3RzKCJEYXRh
YmFzZXMiX3MpKSB7CiAgICAgICAgIGlmICghbV9kYXRhYmFzZS5leGVjdXRlQ29tbWFuZCgiQ1JF
QVRFIFRBQkxFIERhdGFiYXNlcyAoZ3VpZCBJTlRFR0VSIFBSSU1BUlkgS0VZIEFVVE9JTkNSRU1F
TlQsIG9yaWdpbiBURVhULCBuYW1lIFRFWFQsIGRpc3BsYXlOYW1lIFRFWFQsIGVzdGltYXRlZFNp
emUgSU5URUdFUiwgcGF0aCBURVhUKTsiX3MpKSB7CiAgICAgICAgICAgICAvLyBGSVhNRTogYW5k
IGhlcmUKICAgICAgICAgICAgIExPR19FUlJPUigiRmFpbGVkIHRvIGNyZWF0ZSBEYXRhYmFzZXMg
dGFibGUiKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2Uv
U1FMU3RhdGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FM
U3RhdGVtZW50LmNwcAppbmRleCBiNzgwNTgyZGM5Nzk1OTIzMzQ2M2Y4ZmQ4YWMxOWQwMzlhZWI4
ODIwLi5kOTFkMDMxNDU5MTViMjFhMzU3ZTg1ZjA1Y2NiYTQwZTVkYmVhMTFhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFN0YXRlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxTdGF0ZW1lbnQuY3BwCkBA
IC0xMjYsNyArMTI2LDcgQEAgYm9vbCBTUUxTdGF0ZW1lbnQ6OmV4ZWN1dGUoRGF0YWJhc2UmIGRi
KQogICAgIC8vIElmIHRoaXMgaXMgdGhlIGNhc2UsIHRoZXkgbWlnaHQgYmUgdHJ5aW5nIHRvIGRv
IHNvbWV0aGluZyBmaXNoeSBvciBtYWxpY2lvdXMKICAgICBpZiAoc3RhdGVtZW50LT5iaW5kUGFy
YW1ldGVyQ291bnQoKSAhPSBtX2FyZ3VtZW50cy5zaXplKCkpIHsKICAgICAgICAgTE9HKFN0b3Jh
Z2VBUEksICJCaW5kIHBhcmFtZXRlciBjb3VudCBkb2Vzbid0IG1hdGNoIG51bWJlciBvZiBxdWVz
dGlvbiBtYXJrcyIpOwotICAgICAgICBtX2Vycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJv
cjo6U1lOVEFYX0VSUiwgIm51bWJlciBvZiAnPydzIGluIHN0YXRlbWVudCBzdHJpbmcgZG9lcyBu
b3QgbWF0Y2ggYXJndW1lbnQgY291bnQiKTsKKyAgICAgICAgbV9lcnJvciA9IFNRTEVycm9yOjpj
cmVhdGUoU1FMRXJyb3I6OlNZTlRBWF9FUlIsICJudW1iZXIgb2YgJz8ncyBpbiBzdGF0ZW1lbnQg
c3RyaW5nIGRvZXMgbm90IG1hdGNoIGFyZ3VtZW50IGNvdW50Il9zKTsKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIH0KIApAQCAtMjM0LDE5ICsyMzQsMTkgQEAgYm9vbCBTUUxTdGF0ZW1lbnQ6
OnBlcmZvcm1DYWxsYmFjayhTUUxUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24pCiB2b2lkIFNRTFN0
YXRlbWVudDo6c2V0RGF0YWJhc2VEZWxldGVkRXJyb3IoKQogewogICAgIEFTU0VSVCghbV9lcnJv
ciAmJiAhbV9yZXN1bHRTZXQpOwotICAgIG1fZXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVy
cm9yOjpVTktOT1dOX0VSUiwgInVuYWJsZSB0byBleGVjdXRlIHN0YXRlbWVudCwgYmVjYXVzZSB0
aGUgdXNlciBkZWxldGVkIHRoZSBkYXRhYmFzZSIpOworICAgIG1fZXJyb3IgPSBTUUxFcnJvcjo6
Y3JlYXRlKFNRTEVycm9yOjpVTktOT1dOX0VSUiwgInVuYWJsZSB0byBleGVjdXRlIHN0YXRlbWVu
dCwgYmVjYXVzZSB0aGUgdXNlciBkZWxldGVkIHRoZSBkYXRhYmFzZSJfcyk7CiB9CiAKIHZvaWQg
U1FMU3RhdGVtZW50OjpzZXRWZXJzaW9uTWlzbWF0Y2hlZEVycm9yKCkKIHsKICAgICBBU1NFUlQo
IW1fZXJyb3IgJiYgIW1fcmVzdWx0U2V0KTsKLSAgICBtX2Vycm9yID0gU1FMRXJyb3I6OmNyZWF0
ZShTUUxFcnJvcjo6VkVSU0lPTl9FUlIsICJjdXJyZW50IHZlcnNpb24gb2YgdGhlIGRhdGFiYXNl
IGFuZCBgb2xkVmVyc2lvbmAgYXJndW1lbnQgZG8gbm90IG1hdGNoIik7CisgICAgbV9lcnJvciA9
IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OlZFUlNJT05fRVJSLCAiY3VycmVudCB2ZXJzaW9u
IG9mIHRoZSBkYXRhYmFzZSBhbmQgYG9sZFZlcnNpb25gIGFyZ3VtZW50IGRvIG5vdCBtYXRjaCJf
cyk7CiB9CiAKIHZvaWQgU1FMU3RhdGVtZW50OjpzZXRGYWlsdXJlRHVlVG9RdW90YSgpCiB7CiAg
ICAgQVNTRVJUKCFtX2Vycm9yICYmICFtX3Jlc3VsdFNldCk7Ci0gICAgbV9lcnJvciA9IFNRTEVy
cm9yOjpjcmVhdGUoU1FMRXJyb3I6OlFVT1RBX0VSUiwgInRoZXJlIHdhcyBub3QgZW5vdWdoIHJl
bWFpbmluZyBzdG9yYWdlIHNwYWNlLCBvciB0aGUgc3RvcmFnZSBxdW90YSB3YXMgcmVhY2hlZCBh
bmQgdGhlIHVzZXIgZGVjbGluZWQgdG8gYWxsb3cgbW9yZSBzcGFjZSIpOworICAgIG1fZXJyb3Ig
PSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpRVU9UQV9FUlIsICJ0aGVyZSB3YXMgbm90IGVu
b3VnaCByZW1haW5pbmcgc3RvcmFnZSBzcGFjZSwgb3IgdGhlIHN0b3JhZ2UgcXVvdGEgd2FzIHJl
YWNoZWQgYW5kIHRoZSB1c2VyIGRlY2xpbmVkIHRvIGFsbG93IG1vcmUgc3BhY2UiX3MpOwogfQog
CiB2b2lkIFNRTFN0YXRlbWVudDo6Y2xlYXJGYWlsdXJlRHVlVG9RdW90YSgpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFRyYW5zYWN0aW9uLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb24uY3BwCmlu
ZGV4IDY4MzJhY2E5MGVkNmQ5ZWI4MWFiOWYzNTU5NTkzYmY0NjQzMGZkMGYuLmU5YWQ3OWYzMjgy
ZTg0NTlkZDdkMzNlZmYwMmI2YjU3OWYwMjZjMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb24uY3BwCkBAIC0xMzcsNyArMTM3
LDcgQEAgdm9pZCBTUUxUcmFuc2FjdGlvbjo6Y2FsbEVycm9yQ2FsbGJhY2tEdWVUb0ludGVycnVw
dGlvbigpCiAgICAgICAgIHJldHVybjsKIAogICAgIG1fZGF0YWJhc2UtPmRvY3VtZW50KCkuZXZl
bnRMb29wKCkucXVldWVUYXNrKFRhc2tTb3VyY2U6Ok5ldHdvcmtpbmcsIFtlcnJvckNhbGxiYWNr
ID0gV1RGTW92ZShlcnJvckNhbGxiYWNrKV0oKSBtdXRhYmxlIHsKLSAgICAgICAgZXJyb3JDYWxs
YmFjay0+aGFuZGxlRXZlbnQoU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6REFUQUJBU0VfRVJS
LCAidGhlIGRhdGFiYXNlIHdhcyBjbG9zZWQiKSk7CisgICAgICAgIGVycm9yQ2FsbGJhY2stPmhh
bmRsZUV2ZW50KFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OkRBVEFCQVNFX0VSUiwgInRoZSBk
YXRhYmFzZSB3YXMgY2xvc2VkIl9zKSk7CiAgICAgfSk7CiB9CiAKQEAgLTIzNiw3ICsyMzYsNyBA
QCB2b2lkIFNRTFRyYW5zYWN0aW9uOjpvcGVuVHJhbnNhY3Rpb25BbmRQcmVmbGlnaHQoKQogCiAg
ICAgLy8gSWYgdGhlIGRhdGFiYXNlIHdhcyBkZWxldGVkLCBqdW1wIHRvIHRoZSBlcnJvciBjYWxs
YmFjawogICAgIGlmIChtX2RhdGFiYXNlLT5kZWxldGVkKCkpIHsKLSAgICAgICAgbV90cmFuc2Fj
dGlvbkVycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6VU5LTk9XTl9FUlIsICJ1bmFi
bGUgdG8gb3BlbiBhIHRyYW5zYWN0aW9uLCBiZWNhdXNlIHRoZSB1c2VyIGRlbGV0ZWQgdGhlIGRh
dGFiYXNlIik7CisgICAgICAgIG1fdHJhbnNhY3Rpb25FcnJvciA9IFNRTEVycm9yOjpjcmVhdGUo
U1FMRXJyb3I6OlVOS05PV05fRVJSLCAidW5hYmxlIHRvIG9wZW4gYSB0cmFuc2FjdGlvbiwgYmVj
YXVzZSB0aGUgdXNlciBkZWxldGVkIHRoZSBkYXRhYmFzZSJfcyk7CiAKICAgICAgICAgaGFuZGxl
VHJhbnNhY3Rpb25FcnJvcigpOwogICAgICAgICByZXR1cm47CkBAIC0yOTAsNyArMjkwLDcgQEAg
dm9pZCBTUUxUcmFuc2FjdGlvbjo6b3BlblRyYW5zYWN0aW9uQW5kUHJlZmxpZ2h0KCkKICAgICAg
ICAgbV9kYXRhYmFzZS0+ZW5hYmxlQXV0aG9yaXplcigpOwogICAgICAgICBtX3RyYW5zYWN0aW9u
RXJyb3IgPSBtX3dyYXBwZXItPnNxbEVycm9yKCk7CiAgICAgICAgIGlmICghbV90cmFuc2FjdGlv
bkVycm9yKQotICAgICAgICAgICAgbV90cmFuc2FjdGlvbkVycm9yID0gU1FMRXJyb3I6OmNyZWF0
ZShTUUxFcnJvcjo6VU5LTk9XTl9FUlIsICJ1bmtub3duIGVycm9yIG9jY3VycmVkIGR1cmluZyB0
cmFuc2FjdGlvbiBwcmVmbGlnaHQiKTsKKyAgICAgICAgICAgIG1fdHJhbnNhY3Rpb25FcnJvciA9
IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OlVOS05PV05fRVJSLCAidW5rbm93biBlcnJvciBv
Y2N1cnJlZCBkdXJpbmcgdHJhbnNhY3Rpb24gcHJlZmxpZ2h0Il9zKTsKIAogICAgICAgICBoYW5k
bGVUcmFuc2FjdGlvbkVycm9yKCk7CiAgICAgICAgIHJldHVybjsKQEAgLTM5NSw3ICszOTUsNyBA
QCB2b2lkIFNRTFRyYW5zYWN0aW9uOjpkZWxpdmVyVHJhbnNhY3Rpb25DYWxsYmFjaygpCiAKICAg
ICAvLyBTcGVjIDQuMy4yIDU6IElmIHRoZSB0cmFuc2FjdGlvbiBjYWxsYmFjayB3YXMgbnVsbCBv
ciByYWlzZWQgYW4gZXhjZXB0aW9uLCBqdW1wIHRvIHRoZSBlcnJvciBjYWxsYmFjawogICAgIGlm
IChzaG91bGREZWxpdmVyRXJyb3JDYWxsYmFjaykgewotICAgICAgICBtX3RyYW5zYWN0aW9uRXJy
b3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpVTktOT1dOX0VSUiwgInRoZSBTUUxUcmFu
c2FjdGlvbkNhbGxiYWNrIHdhcyBudWxsIG9yIHRocmV3IGFuIGV4Y2VwdGlvbiIpOworICAgICAg
ICBtX3RyYW5zYWN0aW9uRXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpVTktOT1dO
X0VSUiwgInRoZSBTUUxUcmFuc2FjdGlvbkNhbGxiYWNrIHdhcyBudWxsIG9yIHRocmV3IGFuIGV4
Y2VwdGlvbiJfcyk7CiAgICAgICAgIHJldHVybiBkZWxpdmVyVHJhbnNhY3Rpb25FcnJvckNhbGxi
YWNrKCk7CiAgICAgfQogCkBAIC00MzIsNyArNDMyLDcgQEAgdm9pZCBTUUxUcmFuc2FjdGlvbjo6
ZGVsaXZlclN0YXRlbWVudENhbGxiYWNrKCkKICAgICBtX2V4ZWN1dGVTcWxBbGxvd2VkID0gZmFs
c2U7CiAKICAgICBpZiAocmVzdWx0KSB7Ci0gICAgICAgIG1fdHJhbnNhY3Rpb25FcnJvciA9IFNR
TEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OlVOS05PV05fRVJSLCAidGhlIHN0YXRlbWVudCBjYWxs
YmFjayByYWlzZWQgYW4gZXhjZXB0aW9uIG9yIHN0YXRlbWVudCBlcnJvciBjYWxsYmFjayBkaWQg
bm90IHJldHVybiBmYWxzZSIpOworICAgICAgICBtX3RyYW5zYWN0aW9uRXJyb3IgPSBTUUxFcnJv
cjo6Y3JlYXRlKFNRTEVycm9yOjpVTktOT1dOX0VSUiwgInRoZSBzdGF0ZW1lbnQgY2FsbGJhY2sg
cmFpc2VkIGFuIGV4Y2VwdGlvbiBvciBzdGF0ZW1lbnQgZXJyb3IgY2FsbGJhY2sgZGlkIG5vdCBy
ZXR1cm4gZmFsc2UiX3MpOwogCiAgICAgICAgIGlmIChtX2Vycm9yQ2FsbGJhY2tXcmFwcGVyLmhh
c0NhbGxiYWNrKCkpCiAgICAgICAgICAgICByZXR1cm4gZGVsaXZlclRyYW5zYWN0aW9uRXJyb3JD
YWxsYmFjaygpOwpAQCAtNTY4LDcgKzU2OCw3IEBAIHZvaWQgU1FMVHJhbnNhY3Rpb246OmhhbmRs
ZUN1cnJlbnRTdGF0ZW1lbnRFcnJvcigpCiAKICAgICBtX3RyYW5zYWN0aW9uRXJyb3IgPSBtX2N1
cnJlbnRTdGF0ZW1lbnQtPnNxbEVycm9yKCk7CiAgICAgaWYgKCFtX3RyYW5zYWN0aW9uRXJyb3Ip
Ci0gICAgICAgIG1fdHJhbnNhY3Rpb25FcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6
OkRBVEFCQVNFX0VSUiwgInRoZSBzdGF0ZW1lbnQgZmFpbGVkIHRvIGV4ZWN1dGUiKTsKKyAgICAg
ICAgbV90cmFuc2FjdGlvbkVycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6REFUQUJB
U0VfRVJSLCAidGhlIHN0YXRlbWVudCBmYWlsZWQgdG8gZXhlY3V0ZSJfcyk7CiAKICAgICBoYW5k
bGVUcmFuc2FjdGlvbkVycm9yKCk7CiB9CkBAIC01OTQsNyArNTk0LDcgQEAgdm9pZCBTUUxUcmFu
c2FjdGlvbjo6cG9zdGZsaWdodEFuZENvbW1pdCgpCiAgICAgaWYgKG1fd3JhcHBlciAmJiAhbV93
cmFwcGVyLT5wZXJmb3JtUG9zdGZsaWdodCgqdGhpcykpIHsKICAgICAgICAgbV90cmFuc2FjdGlv
bkVycm9yID0gbV93cmFwcGVyLT5zcWxFcnJvcigpOwogICAgICAgICBpZiAoIW1fdHJhbnNhY3Rp
b25FcnJvcikKLSAgICAgICAgICAgIG1fdHJhbnNhY3Rpb25FcnJvciA9IFNRTEVycm9yOjpjcmVh
dGUoU1FMRXJyb3I6OlVOS05PV05fRVJSLCAidW5rbm93biBlcnJvciBvY2N1cnJlZCBkdXJpbmcg
dHJhbnNhY3Rpb24gcG9zdGZsaWdodCIpOworICAgICAgICAgICAgbV90cmFuc2FjdGlvbkVycm9y
ID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6VU5LTk9XTl9FUlIsICJ1bmtub3duIGVycm9y
IG9jY3VycmVkIGR1cmluZyB0cmFuc2FjdGlvbiBwb3N0ZmxpZ2h0Il9zKTsKIAogICAgICAgICBo
YW5kbGVUcmFuc2FjdGlvbkVycm9yKCk7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAKaW5kZXggZjk3M2U1YmQzYjkw
ZTNhNGNjNzM1MjE0ZDlhMzE5YWRmOTIxZTRiNi4uNjlkMmU1NDczNWEzMDY0NjM4NGM3ZWZiN2Vh
NjQ5ODdlYzM0MDJjYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2Nr
ZXRzL1dlYlNvY2tldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRz
L1dlYlNvY2tldC5jcHAKQEAgLTEzNyw5ICsxMzcsOSBAQCBzdGF0aWMgdW5zaWduZWQgc2F0dXJh
dGVBZGQodW5zaWduZWQgYSwgdW5zaWduZWQgYikKICAgICByZXR1cm4gYSArIGI7CiB9CiAKLWNv
bnN0IGNoYXIqIFdlYlNvY2tldDo6c3VicHJvdG9jb2xTZXBhcmF0b3IoKQorQVNDSUlMaXRlcmFs
IFdlYlNvY2tldDo6c3VicHJvdG9jb2xTZXBhcmF0b3IoKQogewotICAgIHJldHVybiAiLCAiOwor
ICAgIHJldHVybiAiLCAiX3M7CiB9CiAKIFdlYlNvY2tldDo6V2ViU29ja2V0KFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQmIGNvbnRleHQpCkBAIC00MzAsNyArNDMwLDcgQEAgRXhjZXB0aW9uT3I8dm9p
ZD4gV2ViU29ja2V0OjpjbG9zZShzdGQ6Om9wdGlvbmFsPHVuc2lnbmVkIHNob3J0PiBvcHRpb25h
bENvZGUsIGMKICAgICAgICAgcmV0dXJuIHsgfTsKICAgICBpZiAobV9zdGF0ZSA9PSBDT05ORUNU
SU5HKSB7CiAgICAgICAgIG1fc3RhdGUgPSBDTE9TSU5HOwotICAgICAgICBtX2NoYW5uZWwtPmZh
aWwoIldlYlNvY2tldCBpcyBjbG9zZWQgYmVmb3JlIHRoZSBjb25uZWN0aW9uIGlzIGVzdGFibGlz
aGVkLiIpOworICAgICAgICBtX2NoYW5uZWwtPmZhaWwoIldlYlNvY2tldCBpcyBjbG9zZWQgYmVm
b3JlIHRoZSBjb25uZWN0aW9uIGlzIGVzdGFibGlzaGVkLiJfcyk7CiAgICAgICAgIHJldHVybiB7
IH07CiAgICAgfQogICAgIG1fc3RhdGUgPSBDTE9TSU5HOwpAQCAtNTIwLDcgKzUyMCw3IEBAIHZv
aWQgV2ViU29ja2V0OjpzdXNwZW5kKFJlYXNvbkZvclN1c3BlbnNpb24gcmVhc29uKQogCiAgICAg
aWYgKHJlYXNvbiA9PSBSZWFzb25Gb3JTdXNwZW5zaW9uOjpCYWNrRm9yd2FyZENhY2hlKSB7CiAg
ICAgICAgIC8vIFRoaXMgd2lsbCBjYXVzZSBkaWRDbG9zZSgpIHRvIGJlIGNhbGxlZC4KLSAgICAg
ICAgbV9jaGFubmVsLT5mYWlsKCJXZWJTb2NrZXQgaXMgY2xvc2VkIGR1ZSB0byBzdXNwZW5zaW9u
LiIpOworICAgICAgICBtX2NoYW5uZWwtPmZhaWwoIldlYlNvY2tldCBpcyBjbG9zZWQgZHVlIHRv
IHN1c3BlbnNpb24uIl9zKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5oCmluZGV4IGU2ODYzZTQ2ZGEwN2Qx
OGI2ZDkxNWViMTVjMjRjZGYyMmRiNmE2Y2IuLmVmZmMwNjhiYmY2MjY1ZTdhM2IxNTVjOTRmZjQ0
OGU3NjZkMWUzNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0
cy9XZWJTb2NrZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2Vi
U29ja2V0LmgKQEAgLTUxLDcgKzUxLDcgQEAgY2xhc3MgVGhyZWFkYWJsZVdlYlNvY2tldENoYW5u
ZWw7CiBjbGFzcyBXZWJTb2NrZXQgZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJTb2NrZXQ+
LCBwdWJsaWMgRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YSwgcHVibGljIEFjdGl2ZURPTU9iamVj
dCwgcHJpdmF0ZSBXZWJTb2NrZXRDaGFubmVsQ2xpZW50IHsKICAgICBXVEZfTUFLRV9JU09fQUxM
T0NBVEVEKFdlYlNvY2tldCk7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0IGNoYXIqIHN1YnBy
b3RvY29sU2VwYXJhdG9yKCk7CisgICAgc3RhdGljIEFTQ0lJTGl0ZXJhbCBzdWJwcm90b2NvbFNl
cGFyYXRvcigpOwogCiAgICAgc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxXZWJTb2NrZXQ+PiBjcmVh
dGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGNvbnN0IFN0cmluZyYgdXJsKTsKICAgICBzdGF0
aWMgRXhjZXB0aW9uT3I8UmVmPFdlYlNvY2tldD4+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IFN0cmluZyYgcHJvdG9jb2wpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwu
Y3BwCmluZGV4IGRmNTYzNTljNmZkYTA1MjEwM2Q5N2IzZDhhNWQxMDg0OTE5NzVmNWIuLjY5Yjhl
MmE3NzU0YTg5NzhjMTk1NDg1MWZmMjZjOTk2MTUyZjVkYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAKQEAgLTI4
Nyw3ICsyODcsNyBAQCB2b2lkIFdlYlNvY2tldENoYW5uZWw6OmRpZE9wZW5Tb2NrZXRTdHJlYW0o
U29ja2V0U3RyZWFtSGFuZGxlJiBoYW5kbGUpCiAgICAgICAgIGNvb2tpZVJlcXVlc3RIZWFkZXJG
aWVsZFByb3h5ID0gQ29va2llSmFyOjpjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94eSgqbV9k
b2N1bWVudCwgbV9oYW5kc2hha2UtPmh0dHBVUkxGb3JBdXRoZW50aWNhdGlvbkFuZENvb2tpZXMo
KSk7CiAgICAgaGFuZGxlLnNlbmRIYW5kc2hha2UoV1RGTW92ZShoYW5kc2hha2VNZXNzYWdlKSwg
V1RGTW92ZShjb29raWVSZXF1ZXN0SGVhZGVyRmllbGRQcm94eSksIFt0aGlzLCBwcm90ZWN0ZWRU
aGlzID0gUmVmIHsgKnRoaXMgfV0gKGJvb2wgc3VjY2VzcywgYm9vbCBkaWRBY2Nlc3NTZWN1cmVD
b29raWVzKSB7CiAgICAgICAgIGlmICghc3VjY2VzcykKLSAgICAgICAgICAgIGZhaWwoIkZhaWxl
ZCB0byBzZW5kIFdlYlNvY2tldCBoYW5kc2hha2UuIik7CisgICAgICAgICAgICBmYWlsKCJGYWls
ZWQgdG8gc2VuZCBXZWJTb2NrZXQgaGFuZHNoYWtlLiJfcyk7CiAKICAgICAgICAgaWYgKGRpZEFj
Y2Vzc1NlY3VyZUNvb2tpZXMgJiYgbV9kb2N1bWVudCkKICAgICAgICAgICAgIG1fZG9jdW1lbnQt
PnNldFNlY3VyZUNvb2tpZXNBY2Nlc3NlZCgpOwpAQCAtMzQwLDcgKzM0MCw3IEBAIHZvaWQgV2Vi
U29ja2V0Q2hhbm5lbDo6ZGlkUmVjZWl2ZVNvY2tldFN0cmVhbURhdGEoU29ja2V0U3RyZWFtSGFu
ZGxlJiBoYW5kbGUsIGNvCiAgICAgICAgIHJldHVybjsKICAgICBpZiAoIWFwcGVuZFRvQnVmZmVy
KGRhdGEsIGxlbmd0aCkpIHsKICAgICAgICAgbV9zaG91bGREaXNjYXJkUmVjZWl2ZWREYXRhID0g
dHJ1ZTsKLSAgICAgICAgZmFpbCgiUmFuIG91dCBvZiBtZW1vcnkgd2hpbGUgcmVjZWl2aW5nIFdl
YlNvY2tldCBkYXRhLiIpOworICAgICAgICBmYWlsKCJSYW4gb3V0IG9mIG1lbW9yeSB3aGlsZSBy
ZWNlaXZpbmcgV2ViU29ja2V0IGRhdGEuIl9zKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAg
ICB3aGlsZSAoIW1fc3VzcGVuZGVkICYmIG1fY2xpZW50ICYmICFtX2J1ZmZlci5pc0VtcHR5KCkp
IHsKQEAgLTU3MSw3ICs1NzEsNyBAQCBib29sIFdlYlNvY2tldENoYW5uZWw6OnByb2Nlc3NGcmFt
ZSgpCiAgICAgfQogCiAgICAgaWYgKGZyYW1lLm1hc2tlZCkgewotICAgICAgICBmYWlsKCJBIHNl
cnZlciBtdXN0IG5vdCBtYXNrIGFueSBmcmFtZXMgdGhhdCBpdCBzZW5kcyB0byB0aGUgY2xpZW50
LiIpOworICAgICAgICBmYWlsKCJBIHNlcnZlciBtdXN0IG5vdCBtYXNrIGFueSBmcmFtZXMgdGhh
dCBpdCBzZW5kcyB0byB0aGUgY2xpZW50LiJfcyk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICB9CiAKQEAgLTU5MSw3ICs1OTEsNyBAQCBib29sIFdlYlNvY2tldENoYW5uZWw6OnByb2Nlc3NG
cmFtZSgpCiAgICAgLy8gQSBuZXcgZGF0YSBmcmFtZSBpcyByZWNlaXZlZCBiZWZvcmUgdGhlIHBy
ZXZpb3VzIGNvbnRpbnVvdXMgZnJhbWUgZmluaXNoZXMuCiAgICAgLy8gTm90ZSB0aGF0IGNvbnRy
b2wgZnJhbWVzIGFyZSBhbGxvd2VkIHRvIGNvbWUgaW4gdGhlIG1pZGRsZSBvZiBjb250aW51b3Vz
IGZyYW1lcy4KICAgICBpZiAobV9oYXNDb250aW51b3VzRnJhbWUgJiYgZnJhbWUub3BDb2RlICE9
IFdlYlNvY2tldEZyYW1lOjpPcENvZGVDb250aW51YXRpb24gJiYgIVdlYlNvY2tldEZyYW1lOjpp
c0NvbnRyb2xPcENvZGUoZnJhbWUub3BDb2RlKSkgewotICAgICAgICBmYWlsKCJSZWNlaXZlZCBu
ZXcgZGF0YSBmcmFtZSBidXQgcHJldmlvdXMgY29udGludW91cyBmcmFtZSBpcyB1bmZpbmlzaGVk
LiIpOworICAgICAgICBmYWlsKCJSZWNlaXZlZCBuZXcgZGF0YSBmcmFtZSBidXQgcHJldmlvdXMg
Y29udGludW91cyBmcmFtZSBpcyB1bmZpbmlzaGVkLiJfcyk7CiAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICB9CiAKQEAgLTYwMSw3ICs2MDEsNyBAQCBib29sIFdlYlNvY2tldENoYW5uZWw6OnBy
b2Nlc3NGcmFtZSgpCiAgICAgY2FzZSBXZWJTb2NrZXRGcmFtZTo6T3BDb2RlQ29udGludWF0aW9u
OgogICAgICAgICAvLyBBbiB1bmV4cGVjdGVkIGNvbnRpbnVhdGlvbiBmcmFtZSBpcyByZWNlaXZl
ZCB3aXRob3V0IGFueSBsZWFkaW5nIGZyYW1lLgogICAgICAgICBpZiAoIW1faGFzQ29udGludW91
c0ZyYW1lKSB7Ci0gICAgICAgICAgICBmYWlsKCJSZWNlaXZlZCB1bmV4cGVjdGVkIGNvbnRpbnVh
dGlvbiBmcmFtZS4iKTsKKyAgICAgICAgICAgIGZhaWwoIlJlY2VpdmVkIHVuZXhwZWN0ZWQgY29u
dGludWF0aW9uIGZyYW1lLiJfcyk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAg
IH0KICAgICAgICAgbV9jb250aW51b3VzRnJhbWVEYXRhLmFwcGVuZChmcmFtZS5wYXlsb2FkLCBm
cmFtZS5wYXlsb2FkTGVuZ3RoKTsKQEAgLTYyMCw3ICs2MjAsNyBAQCBib29sIFdlYlNvY2tldENo
YW5uZWw6OnByb2Nlc3NGcmFtZSgpCiAgICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAg
ICAgICAgICBtZXNzYWdlID0gZW1wdHlTdHJpbmcoKTsKICAgICAgICAgICAgICAgICBpZiAobWVz
c2FnZS5pc051bGwoKSkKLSAgICAgICAgICAgICAgICAgICAgZmFpbCgiQ291bGQgbm90IGRlY29k
ZSBhIHRleHQgZnJhbWUgYXMgVVRGLTguIik7CisgICAgICAgICAgICAgICAgICAgIGZhaWwoIkNv
dWxkIG5vdCBkZWNvZGUgYSB0ZXh0IGZyYW1lIGFzIFVURi04LiJfcyk7CiAgICAgICAgICAgICAg
ICAgZWxzZQogICAgICAgICAgICAgICAgICAgICBtX2NsaWVudC0+ZGlkUmVjZWl2ZU1lc3NhZ2Uo
V1RGTW92ZShtZXNzYWdlKSk7CiAgICAgICAgICAgICB9IGVsc2UgaWYgKG1fY29udGludW91c0Zy
YW1lT3BDb2RlID09IFdlYlNvY2tldEZyYW1lOjpPcENvZGVCaW5hcnkpCkBAIC02MzcsNyArNjM3
LDcgQEAgYm9vbCBXZWJTb2NrZXRDaGFubmVsOjpwcm9jZXNzRnJhbWUoKQogICAgICAgICAgICAg
ICAgIG1lc3NhZ2UgPSBlbXB0eVN0cmluZygpOwogICAgICAgICAgICAgc2tpcEJ1ZmZlcihmcmFt
ZUVuZCAtIG1fYnVmZmVyLmRhdGEoKSk7CiAgICAgICAgICAgICBpZiAobWVzc2FnZS5pc051bGwo
KSkKLSAgICAgICAgICAgICAgICBmYWlsKCJDb3VsZCBub3QgZGVjb2RlIGEgdGV4dCBmcmFtZSBh
cyBVVEYtOC4iKTsKKyAgICAgICAgICAgICAgICBmYWlsKCJDb3VsZCBub3QgZGVjb2RlIGEgdGV4
dCBmcmFtZSBhcyBVVEYtOC4iX3MpOwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAg
IG1fY2xpZW50LT5kaWRSZWNlaXZlTWVzc2FnZShXVEZNb3ZlKG1lc3NhZ2UpKTsKICAgICAgICAg
fSBlbHNlIHsKQEAgLTY2OSwxMyArNjY5LDEzIEBAIGJvb2wgV2ViU29ja2V0Q2hhbm5lbDo6cHJv
Y2Vzc0ZyYW1lKCkKICAgICAgICAgICAgIG1fY2xvc2VFdmVudENvZGUgPSBDbG9zZUV2ZW50Q29k
ZU5vU3RhdHVzUmN2ZDsKICAgICAgICAgZWxzZSBpZiAoZnJhbWUucGF5bG9hZExlbmd0aCA9PSAx
KSB7CiAgICAgICAgICAgICBtX2Nsb3NlRXZlbnRDb2RlID0gQ2xvc2VFdmVudENvZGVBYm5vcm1h
bENsb3N1cmU7Ci0gICAgICAgICAgICBmYWlsKCJSZWNlaXZlZCBhIGJyb2tlbiBjbG9zZSBmcmFt
ZSBjb250YWluaW5nIGFuIGludmFsaWQgc2l6ZSBib2R5LiIpOworICAgICAgICAgICAgZmFpbCgi
UmVjZWl2ZWQgYSBicm9rZW4gY2xvc2UgZnJhbWUgY29udGFpbmluZyBhbiBpbnZhbGlkIHNpemUg
Ym9keS4iX3MpOwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9IGVsc2Ugewog
ICAgICAgICAgICAgbV9jbG9zZUV2ZW50Q29kZSA9IGZyYW1lLnBheWxvYWRbMF0gPDwgOCB8IGZy
YW1lLnBheWxvYWRbMV07CiAgICAgICAgICAgICBpZiAobV9jbG9zZUV2ZW50Q29kZSA9PSBDbG9z
ZUV2ZW50Q29kZU5vU3RhdHVzUmN2ZCB8fCBtX2Nsb3NlRXZlbnRDb2RlID09IENsb3NlRXZlbnRD
b2RlQWJub3JtYWxDbG9zdXJlIHx8IG1fY2xvc2VFdmVudENvZGUgPT0gQ2xvc2VFdmVudENvZGVU
TFNIYW5kc2hha2UpIHsKICAgICAgICAgICAgICAgICBtX2Nsb3NlRXZlbnRDb2RlID0gQ2xvc2VF
dmVudENvZGVBYm5vcm1hbENsb3N1cmU7Ci0gICAgICAgICAgICAgICAgZmFpbCgiUmVjZWl2ZWQg
YSBicm9rZW4gY2xvc2UgZnJhbWUgY29udGFpbmluZyBhIHJlc2VydmVkIHN0YXR1cyBjb2RlLiIp
OworICAgICAgICAgICAgICAgIGZhaWwoIlJlY2VpdmVkIGEgYnJva2VuIGNsb3NlIGZyYW1lIGNv
bnRhaW5pbmcgYSByZXNlcnZlZCBzdGF0dXMgY29kZS4iX3MpOwogICAgICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQpAQCAtNzYxLDcgKzc2MSw3IEBA
IHZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6cHJvY2Vzc091dGdvaW5nRnJhbWVRdWV1ZSgpCiAgICAg
ICAgIGNhc2UgUXVldWVkRnJhbWVUeXBlU3RyaW5nOiB7CiAgICAgICAgICAgICBzZW5kRnJhbWUo
ZnJhbWUtPm9wQ29kZSwgZnJhbWUtPnN0cmluZ0RhdGEuZGF0YUFzVUludDhQdHIoKSwgZnJhbWUt
PnN0cmluZ0RhdGEubGVuZ3RoKCksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMg
fV0gKGJvb2wgc3VjY2VzcykgewogICAgICAgICAgICAgICAgIGlmICghc3VjY2VzcykKLSAgICAg
ICAgICAgICAgICAgICAgZmFpbCgiRmFpbGVkIHRvIHNlbmQgV2ViU29ja2V0IGZyYW1lLiIpOwor
ICAgICAgICAgICAgICAgICAgICBmYWlsKCJGYWlsZWQgdG8gc2VuZCBXZWJTb2NrZXQgZnJhbWUu
Il9zKTsKICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KQEAg
LTc2OSw3ICs3NjksNyBAQCB2b2lkIFdlYlNvY2tldENoYW5uZWw6OnByb2Nlc3NPdXRnb2luZ0Zy
YW1lUXVldWUoKQogICAgICAgICBjYXNlIFF1ZXVlZEZyYW1lVHlwZVZlY3RvcjoKICAgICAgICAg
ICAgIHNlbmRGcmFtZShmcmFtZS0+b3BDb2RlLCBmcmFtZS0+dmVjdG9yRGF0YS5kYXRhKCksIGZy
YW1lLT52ZWN0b3JEYXRhLnNpemUoKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhp
cyB9XSAoYm9vbCBzdWNjZXNzKSB7CiAgICAgICAgICAgICAgICAgaWYgKCFzdWNjZXNzKQotICAg
ICAgICAgICAgICAgICAgICBmYWlsKCJGYWlsZWQgdG8gc2VuZCBXZWJTb2NrZXQgZnJhbWUuIik7
CisgICAgICAgICAgICAgICAgICAgIGZhaWwoIkZhaWxlZCB0byBzZW5kIFdlYlNvY2tldCBmcmFt
ZS4iX3MpOwogICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICBicmVhazsKIApAQCAtNzk2LDcg
Kzc5Niw3IEBAIHZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6cHJvY2Vzc091dGdvaW5nRnJhbWVRdWV1
ZSgpCiAgICAgICAgICAgICAgICAgbV9ibG9iTG9hZGVyU3RhdHVzID0gQmxvYkxvYWRlck5vdFN0
YXJ0ZWQ7CiAgICAgICAgICAgICAgICAgc2VuZEZyYW1lKGZyYW1lLT5vcENvZGUsIHN0YXRpY19j
YXN0PGNvbnN0IHVpbnQ4X3QqPihyZXN1bHQtPmRhdGEoKSksIHJlc3VsdC0+Ynl0ZUxlbmd0aCgp
LCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH1dIChib29sIHN1Y2Nlc3MpIHsK
ICAgICAgICAgICAgICAgICAgICAgaWYgKCFzdWNjZXNzKQotICAgICAgICAgICAgICAgICAgICAg
ICAgZmFpbCgiRmFpbGVkIHRvIHNlbmQgV2ViU29ja2V0IGZyYW1lLiIpOworICAgICAgICAgICAg
ICAgICAgICAgICAgZmFpbCgiRmFpbGVkIHRvIHNlbmQgV2ViU29ja2V0IGZyYW1lLiJfcyk7CiAg
ICAgICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0
RGVmbGF0ZUZyYW1lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2Vi
U29ja2V0RGVmbGF0ZUZyYW1lci5jcHAKaW5kZXggMDFmZGZlMDI5ZTQ2ZmNlODYyZDVlNjE2Y2Zj
NDk1ZDY5Y2M2MTQ2NS4uYTg3ZmU1ZDdhYWU1ZTgwZDM5NzU0OTljNGM1NmE2ZTAxN2RmMTFkYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldERl
ZmxhdGVGcmFtZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9X
ZWJTb2NrZXREZWZsYXRlRnJhbWVyLmNwcApAQCAtNzYsNyArNzYsNyBAQCBib29sIFdlYlNvY2tl
dEV4dGVuc2lvbkRlZmxhdGVGcmFtZTo6cHJvY2Vzc1Jlc3BvbnNlKGNvbnN0IEhhc2hNYXA8U3Ry
aW5nLCBTdHJpbgogCiAgICAgdW5zaWduZWQgZXhwZWN0ZWROdW1QYXJhbWV0ZXJzID0gMDsKICAg
ICBpbnQgd2luZG93Qml0cyA9IDE1OwotICAgIGF1dG8gcGFyYW1ldGVyID0gc2VydmVyUGFyYW1l
dGVycy5maW5kKCJtYXhfd2luZG93X2JpdHMiKTsKKyAgICBhdXRvIHBhcmFtZXRlciA9IHNlcnZl
clBhcmFtZXRlcnMuZmluZCgibWF4X3dpbmRvd19iaXRzIl9zKTsKICAgICBpZiAocGFyYW1ldGVy
ICE9IHNlcnZlclBhcmFtZXRlcnMuZW5kKCkpIHsKICAgICAgICAgd2luZG93Qml0cyA9IHBhcnNl
SW50ZWdlckFsbG93aW5nVHJhaWxpbmdKdW5rPGludD4ocGFyYW1ldGVyLT52YWx1ZSkudmFsdWVf
b3IoMCk7CiAgICAgICAgIGlmICh3aW5kb3dCaXRzIDwgOCB8fCB3aW5kb3dCaXRzID4gMTUpIHsK
QEAgLTg3LDcgKzg3LDcgQEAgYm9vbCBXZWJTb2NrZXRFeHRlbnNpb25EZWZsYXRlRnJhbWU6OnBy
b2Nlc3NSZXNwb25zZShjb25zdCBIYXNoTWFwPFN0cmluZywgU3RyaW4KICAgICB9CiAKICAgICBX
ZWJTb2NrZXREZWZsYXRlcjo6Q29udGV4dFRha2VPdmVyTW9kZSBtb2RlID0gV2ViU29ja2V0RGVm
bGF0ZXI6OlRha2VPdmVyQ29udGV4dDsKLSAgICBwYXJhbWV0ZXIgPSBzZXJ2ZXJQYXJhbWV0ZXJz
LmZpbmQoIm5vX2NvbnRleHRfdGFrZW92ZXIiKTsKKyAgICBwYXJhbWV0ZXIgPSBzZXJ2ZXJQYXJh
bWV0ZXJzLmZpbmQoIm5vX2NvbnRleHRfdGFrZW92ZXIiX3MpOwogICAgIGlmIChwYXJhbWV0ZXIg
IT0gc2VydmVyUGFyYW1ldGVycy5lbmQoKSkgewogICAgICAgICBpZiAoIXBhcmFtZXRlci0+dmFs
dWUuaXNOdWxsKCkpIHsKICAgICAgICAgICAgIG1fZmFpbHVyZVJlYXNvbiA9ICJSZWNlaXZlZCBp
bnZhbGlkIG5vX2NvbnRleHRfdGFrZW92ZXIgcGFyYW1ldGVyIl9zOwpAQCAtMTYxLDcgKzE2MSw3
IEBAIHN0ZDo6dW5pcXVlX3B0cjxEZWZsYXRlUmVzdWx0SG9sZGVyPiBXZWJTb2NrZXREZWZsYXRl
RnJhbWVyOjpkZWZsYXRlKFdlYlNvY2tldEZyCiAgICAgaWYgKCFlbmFibGVkKCkgfHwgIVdlYlNv
Y2tldEZyYW1lOjppc05vbkNvbnRyb2xPcENvZGUoZnJhbWUub3BDb2RlKSB8fCAhZnJhbWUucGF5
bG9hZExlbmd0aCkKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICBpZiAoIW1fZGVmbGF0ZXIt
PmFkZEJ5dGVzKGZyYW1lLnBheWxvYWQsIGZyYW1lLnBheWxvYWRMZW5ndGgpIHx8ICFtX2RlZmxh
dGVyLT5maW5pc2goKSkgewotICAgICAgICByZXN1bHQtPmZhaWwoIkZhaWxlZCB0byBjb21wcmVz
cyBmcmFtZSIpOworICAgICAgICByZXN1bHQtPmZhaWwoIkZhaWxlZCB0byBjb21wcmVzcyBmcmFt
ZSJfcyk7CiAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogICAgIGZyYW1lLmNvbXByZXNz
ID0gdHJ1ZTsKQEAgLTE4MCwxNyArMTgwLDE3IEBAIHN0ZDo6dW5pcXVlX3B0cjxJbmZsYXRlUmVz
dWx0SG9sZGVyPiBXZWJTb2NrZXREZWZsYXRlRnJhbWVyOjppbmZsYXRlKFdlYlNvY2tldEZyCiB7
CiAgICAgYXV0byByZXN1bHQgPSBtYWtlVW5pcXVlPEluZmxhdGVSZXN1bHRIb2xkZXI+KCp0aGlz
KTsKICAgICBpZiAoIWVuYWJsZWQoKSAmJiBmcmFtZS5jb21wcmVzcykgewotICAgICAgICByZXN1
bHQtPmZhaWwoIkNvbXByZXNzZWQgYml0IG11c3QgYmUgMCBpZiBubyBuZWdvdGlhdGVkIGRlZmxh
dGUtZnJhbWUgZXh0ZW5zaW9uIik7CisgICAgICAgIHJlc3VsdC0+ZmFpbCgiQ29tcHJlc3NlZCBi
aXQgbXVzdCBiZSAwIGlmIG5vIG5lZ290aWF0ZWQgZGVmbGF0ZS1mcmFtZSBleHRlbnNpb24iX3Mp
OwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KICAgICBpZiAoIWZyYW1lLmNvbXByZXNz
KQogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIGlmICghV2ViU29ja2V0RnJhbWU6OmlzTm9u
Q29udHJvbE9wQ29kZShmcmFtZS5vcENvZGUpKSB7Ci0gICAgICAgIHJlc3VsdC0+ZmFpbCgiUmVj
ZWl2ZWQgdW5leHBlY3RlZCBjb21wcmVzc2VkIGZyYW1lIik7CisgICAgICAgIHJlc3VsdC0+ZmFp
bCgiUmVjZWl2ZWQgdW5leHBlY3RlZCBjb21wcmVzc2VkIGZyYW1lIl9zKTsKICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKICAgICB9CiAgICAgaWYgKCFtX2luZmxhdGVyLT5hZGRCeXRlcyhmcmFtZS5w
YXlsb2FkLCBmcmFtZS5wYXlsb2FkTGVuZ3RoKSB8fCAhbV9pbmZsYXRlci0+ZmluaXNoKCkpIHsK
LSAgICAgICAgcmVzdWx0LT5mYWlsKCJGYWlsZWQgdG8gZGVjb21wcmVzcyBmcmFtZSIpOworICAg
ICAgICByZXN1bHQtPmZhaWwoIkZhaWxlZCB0byBkZWNvbXByZXNzIGZyYW1lIl9zKTsKICAgICAg
ICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAgICAgZnJhbWUuY29tcHJlc3MgPSBmYWxzZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRFeHRl
bnNpb25EaXNwYXRjaGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9X
ZWJTb2NrZXRFeHRlbnNpb25EaXNwYXRjaGVyLmNwcAppbmRleCA3YWYyYzM3OTFhMGFlOGQ2ZWU5
ZTkyOTk4MzU3ZTg2MGFmYmI3NWRkLi5lNWNmMTI1MTFlZjNlNTY0ZjYzYjg1ZDhjYjBiYjFlZTQw
YzVkYTNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2Vi
U29ja2V0RXh0ZW5zaW9uRGlzcGF0Y2hlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJzb2NrZXRzL1dlYlNvY2tldEV4dGVuc2lvbkRpc3BhdGNoZXIuY3BwCkBAIC05Myw3ICs5
Myw3IEBAIGJvb2wgV2ViU29ja2V0RXh0ZW5zaW9uRGlzcGF0Y2hlcjo6cHJvY2Vzc0hlYWRlclZh
bHVlKGNvbnN0IFN0cmluZyYgaGVhZGVyVmFsdWUpCiAKICAgICAvLyBJZiB3ZSBkb24ndCBzZW5k
IFNlYy1XZWJTb2NrZXQtRXh0ZW5zaW9ucyBoZWFkZXIsIHRoZSBzZXJ2ZXIgc2hvdWxkIG5vdCBy
ZXR1cm4gdGhlIGhlYWRlci4KICAgICBpZiAoIW1fcHJvY2Vzc29ycy5zaXplKCkpIHsKLSAgICAg
ICAgZmFpbCgiUmVjZWl2ZWQgdW5leHBlY3RlZCBTZWMtV2ViU29ja2V0LUV4dGVuc2lvbnMgaGVh
ZGVyIik7CisgICAgICAgIGZhaWwoIlJlY2VpdmVkIHVuZXhwZWN0ZWQgU2VjLVdlYlNvY2tldC1F
eHRlbnNpb25zIGhlYWRlciJfcyk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKQEAg
LTEwMyw3ICsxMDMsNyBAQCBib29sIFdlYlNvY2tldEV4dGVuc2lvbkRpc3BhdGNoZXI6OnByb2Nl
c3NIZWFkZXJWYWx1ZShjb25zdCBTdHJpbmcmIGhlYWRlclZhbHVlKQogICAgICAgICBTdHJpbmcg
ZXh0ZW5zaW9uVG9rZW47CiAgICAgICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IGV4dGVuc2lv
blBhcmFtZXRlcnM7CiAgICAgICAgIGlmICghcGFyc2VyLnBhcnNlRXh0ZW5zaW9uKGV4dGVuc2lv
blRva2VuLCBleHRlbnNpb25QYXJhbWV0ZXJzKSkgewotICAgICAgICAgICAgZmFpbCgiU2VjLVdl
YlNvY2tldC1FeHRlbnNpb25zIGhlYWRlciBpcyBpbnZhbGlkIik7CisgICAgICAgICAgICBmYWls
KCJTZWMtV2ViU29ja2V0LUV4dGVuc2lvbnMgaGVhZGVyIGlzIGludmFsaWQiX3MpOwogICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RnJhbWUuY3BwCmluZGV4IGUzOWUwMTlhZTAy
ZDk2NzIzOGY5NjU3MmQ1M2VlMjNjMzQ1NmYyMzMuLmJhMWU2MjU0OTE3YWZmNGZhN2I4MmM2ODg0
ZmViMmFjOTA3MGQzYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29j
a2V0cy9XZWJTb2NrZXRGcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJz
b2NrZXRzL1dlYlNvY2tldEZyYW1lLmNwcApAQCAtODIsMTEgKzgyLDExIEBAIFdlYlNvY2tldEZy
YW1lOjpQYXJzZUZyYW1lUmVzdWx0IFdlYlNvY2tldEZyYW1lOjpwYXJzZUZyYW1lKHVpbnQ4X3Qq
IGRhdGEsIHNpemVfCiAgICAgICAgICAgICBwYXlsb2FkTGVuZ3RoNjQgfD0gc3RhdGljX2Nhc3Q8
dWludDhfdD4oKnArKyk7CiAgICAgICAgIH0KICAgICAgICAgaWYgKGV4dGVuZGVkUGF5bG9hZExl
bmd0aFNpemUgPT0gMiAmJiBwYXlsb2FkTGVuZ3RoNjQgPD0gbWF4UGF5bG9hZExlbmd0aFdpdGhv
dXRFeHRlbmRlZExlbmd0aEZpZWxkKSB7Ci0gICAgICAgICAgICBlcnJvclN0cmluZyA9ICJUaGUg
bWluaW1hbCBudW1iZXIgb2YgYnl0ZXMgTVVTVCBiZSB1c2VkIHRvIGVuY29kZSB0aGUgbGVuZ3Ro
IjsKKyAgICAgICAgICAgIGVycm9yU3RyaW5nID0gIlRoZSBtaW5pbWFsIG51bWJlciBvZiBieXRl
cyBNVVNUIGJlIHVzZWQgdG8gZW5jb2RlIHRoZSBsZW5ndGgiX3M7CiAgICAgICAgICAgICByZXR1
cm4gRnJhbWVFcnJvcjsKICAgICAgICAgfQogICAgICAgICBpZiAoZXh0ZW5kZWRQYXlsb2FkTGVu
Z3RoU2l6ZSA9PSA4ICYmIHBheWxvYWRMZW5ndGg2NCA8PSAweEZGRkYpIHsKLSAgICAgICAgICAg
IGVycm9yU3RyaW5nID0gIlRoZSBtaW5pbWFsIG51bWJlciBvZiBieXRlcyBNVVNUIGJlIHVzZWQg
dG8gZW5jb2RlIHRoZSBsZW5ndGgiOworICAgICAgICAgICAgZXJyb3JTdHJpbmcgPSAiVGhlIG1p
bmltYWwgbnVtYmVyIG9mIGJ5dGVzIE1VU1QgYmUgdXNlZCB0byBlbmNvZGUgdGhlIGxlbmd0aCJf
czsKICAgICAgICAgICAgIHJldHVybiBGcmFtZUVycm9yOwogICAgICAgICB9CiAgICAgfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEhhbmRz
aGFrZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0SGFu
ZHNoYWtlLmNwcAppbmRleCBmNzY5Njc0OTMzNzIwMTdkMzYzZTNhMTJlNzdmNTViZDUwMjU4NTg3
Li4zZTRjNTgxMTJhM2MxOWQyYjI0ODczNDY1NTBlNTU4YzRlYTdjZjIzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0SGFuZHNoYWtlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0SGFuZHNoYWtl
LmNwcApAQCAtNTM2LDcgKzUzNiw3IEBAIGJvb2wgV2ViU29ja2V0SGFuZHNoYWtlOjpjaGVja1Jl
c3BvbnNlSGVhZGVycygpCiAgICAgICAgICAgICBtX2ZhaWx1cmVSZWFzb24gPSAiRXJyb3IgZHVy
aW5nIFdlYlNvY2tldCBoYW5kc2hha2U6IFNlYy1XZWJTb2NrZXQtUHJvdG9jb2wgbWlzbWF0Y2gi
X3M7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KLSAgICAgICAgVmVjdG9y
PFN0cmluZz4gcmVzdWx0ID0gbV9jbGllbnRQcm90b2NvbC5zcGxpdChXZWJTb2NrZXQ6OnN1YnBy
b3RvY29sU2VwYXJhdG9yKCkpOworICAgICAgICBWZWN0b3I8U3RyaW5nPiByZXN1bHQgPSBtX2Ns
aWVudFByb3RvY29sLnNwbGl0KFN0cmluZ1ZpZXcgeyBXZWJTb2NrZXQ6OnN1YnByb3RvY29sU2Vw
YXJhdG9yKCkgfSk7CiAgICAgICAgIGlmICghcmVzdWx0LmNvbnRhaW5zKHNlcnZlcldlYlNvY2tl
dFByb3RvY29sKSkgewogICAgICAgICAgICAgbV9mYWlsdXJlUmVhc29uID0gIkVycm9yIGR1cmlu
ZyBXZWJTb2NrZXQgaGFuZHNoYWtlOiBTZWMtV2ViU29ja2V0LVByb3RvY29sIG1pc21hdGNoIl9z
OwogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJ4ci9XZWJYUldlYkdMTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJ4ci9XZWJYUldlYkdMTGF5ZXIuY3BwCmluZGV4IDgyNmRlMTZhNzA2OTFkNDIwYzU5NDY3
ZGM0YTcxZGVkZmIwYjY1YzYuLmQ3NDBmYmI4ODNkMjU4YWQxZTVkYjdmNmJiZmQxNjY1YjQ0OWI5
ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJXZWJHTExh
eWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSV2ViR0xMYXll
ci5jcHAKQEAgLTY0LDcgKzY0LDcgQEAgc3RhdGljIEV4Y2VwdGlvbk9yPHN0ZDo6dW5pcXVlX3B0
cjxXZWJYUk9wYXF1ZUZyYW1lYnVmZmVyPj4gY3JlYXRlT3BhcXVlRnJhbWVidWYKIHsKICAgICBh
dXRvIGRldmljZSA9IHNlc3Npb24uZGV2aWNlKCk7CiAgICAgaWYgKCFkZXZpY2UpCi0gICAgICAg
IHJldHVybiBFeGNlcHRpb24geyBPcGVyYXRpb25FcnJvciwgIkNhbm5vdCBjcmVhdGUgYW4gWFJX
ZWJHTExheWVyIHdpdGggYW4gWFJTZXNzaW9uIHRoYXQgaGFzIGVuZGVkLiIgfTsKKyAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IE9wZXJhdGlvbkVycm9yLCAiQ2Fubm90IGNyZWF0ZSBhbiBYUldl
YkdMTGF5ZXIgd2l0aCBhbiBYUlNlc3Npb24gdGhhdCBoYXMgZW5kZWQuIl9zIH07CiAKICAgICAv
LyA5LjEuIEluaXRpYWxpemUgbGF5ZXLigJlzIGFudGlhbGlhcyB0byBsYXllckluaXTigJlzIGFu
dGlhbGlhcyB2YWx1ZS4KICAgICAvLyA5LjIuIExldCBmcmFtZWJ1ZmZlclNpemUgYmUgdGhlIHJl
Y29tbWVuZGVkIFdlYkdMIGZyYW1lYnVmZmVyIHJlc29sdXRpb24gbXVsdGlwbGllZCBieSBsYXll
ckluaXQncyBmcmFtZWJ1ZmZlclNjYWxlRmFjdG9yLgpAQCAtODIsNyArODIsNyBAQCBzdGF0aWMg
RXhjZXB0aW9uT3I8c3RkOjp1bmlxdWVfcHRyPFdlYlhST3BhcXVlRnJhbWVidWZmZXI+PiBjcmVh
dGVPcGFxdWVGcmFtZWJ1ZgogICAgIC8vIDkuNS4gSWYgbGF5ZXLigJlzIHJlc291cmNlcyB3ZXJl
IHVuYWJsZSB0byBiZSBjcmVhdGVkIGZvciBhbnkgcmVhc29uLCB0aHJvdyBhbiBPcGVyYXRpb25F
cnJvciBhbmQgYWJvcnQgdGhlc2Ugc3RlcHMuCiAgICAgYXV0byBsYXllckhhbmRsZSA9IGRldmlj
ZS0+Y3JlYXRlTGF5ZXJQcm9qZWN0aW9uKHdpZHRoLCBoZWlnaHQsIGluaXQuYWxwaGEpOwogICAg
IGlmICghbGF5ZXJIYW5kbGUpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBPcGVyYXRpb25F
cnJvciwgIlVuYWJsZSB0byBhbGxvY2F0ZSBYUldlYkdMTGF5ZXIgR1BVIHJlc291cmNlcy4ifTsK
KyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE9wZXJhdGlvbkVycm9yLCAiVW5hYmxlIHRvIGFs
bG9jYXRlIFhSV2ViR0xMYXllciBHUFUgcmVzb3VyY2VzLiJfcyB9OwogCiAgICAgV2ViWFJPcGFx
dWVGcmFtZWJ1ZmZlcjo6QXR0cmlidXRlcyBhdHRyaWJ1dGVzIHsKICAgICAgICAgLmFscGhhID0g
aW5pdC5hbHBoYSwKQEAgLTkzLDcgKzkzLDcgQEAgc3RhdGljIEV4Y2VwdGlvbk9yPHN0ZDo6dW5p
cXVlX3B0cjxXZWJYUk9wYXF1ZUZyYW1lYnVmZmVyPj4gY3JlYXRlT3BhcXVlRnJhbWVidWYKIAog
ICAgIGF1dG8gZnJhbWVidWZmZXIgPSBXZWJYUk9wYXF1ZUZyYW1lYnVmZmVyOjpjcmVhdGUoKmxh
eWVySGFuZGxlLCBjb250ZXh0LCBXVEZNb3ZlKGF0dHJpYnV0ZXMpLCB3aWR0aCwgaGVpZ2h0KTsK
ICAgICBpZiAoIWZyYW1lYnVmZmVyKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgT3BlcmF0
aW9uRXJyb3IsICJVbmFibGUgdG8gY3JlYXRlIGEgZnJhbWVidWZmZXIuIiB9OworICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgT3BlcmF0aW9uRXJyb3IsICJVbmFibGUgdG8gY3JlYXRlIGEgZnJh
bWVidWZmZXIuIl9zIH07CiAgICAgCiAgICAgcmV0dXJuIGZyYW1lYnVmZmVyOwogfQpAQCAtMTA0
LDcgKzEwNCw3IEBAIEV4Y2VwdGlvbk9yPFJlZjxXZWJYUldlYkdMTGF5ZXI+PiBXZWJYUldlYkdM
TGF5ZXI6OmNyZWF0ZShSZWY8V2ViWFJTZXNzaW9uPiYmIHNlCiAgICAgLy8gMS4gTGV0IGxheWVy
IGJlIGEgbmV3IFhSV2ViR0xMYXllcgogICAgIC8vIDIuIElmIHNlc3Npb27igJlzIGVuZGVkIHZh
bHVlIGlzIHRydWUsIHRocm93IGFuIEludmFsaWRTdGF0ZUVycm9yIGFuZCBhYm9ydCB0aGVzZSBz
dGVwcy4KICAgICBpZiAoc2Vzc2lvbi0+ZW5kZWQoKSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlv
biB7IEludmFsaWRTdGF0ZUVycm9yLCAiQ2Fubm90IGNyZWF0ZSBhbiBYUldlYkdMTGF5ZXIgd2l0
aCBhbiBYUlNlc3Npb24gdGhhdCBoYXMgZW5kZWQuIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJDYW5ub3QgY3JlYXRlIGFuIFhSV2ViR0xMYXllciB3
aXRoIGFuIFhSU2Vzc2lvbiB0aGF0IGhhcyBlbmRlZC4iX3MgfTsKIAogICAgIC8vIDMuIElmIGNv
bnRleHQgaXMgbG9zdCwgdGhyb3cgYW4gSW52YWxpZFN0YXRlRXJyb3IgYW5kIGFib3J0IHRoZXNl
IHN0ZXBzLgogICAgIC8vIDQuIElmIHNlc3Npb24gaXMgYW4gaW1tZXJzaXZlIHNlc3Npb24gYW5k
IGNvbnRleHTigJlzIFhSIGNvbXBhdGlibGUgYm9vbGVhbiBpcyBmYWxzZSwgdGhyb3cKQEAgLTEx
MywxMSArMTEzLDExIEBAIEV4Y2VwdGlvbk9yPFJlZjxXZWJYUldlYkdMTGF5ZXI+PiBXZWJYUldl
YkdMTGF5ZXI6OmNyZWF0ZShSZWY8V2ViWFJTZXNzaW9uPiYmIHNlCiAgICAgICAgIFsmXShjb25z
dCBSZWZQdHI8V2ViR0xSZW5kZXJpbmdDb250ZXh0QmFzZT4mIGJhc2VDb250ZXh0KSAtPiBFeGNl
cHRpb25PcjxSZWY8V2ViWFJXZWJHTExheWVyPj4KICAgICAgICAgewogICAgICAgICAgICAgaWYg
KGJhc2VDb250ZXh0LT5pc0NvbnRleHRMb3N0KCkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIEV4
Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiQ2Fubm90IGNyZWF0ZSBhbiBYUldlYkdMTGF5
ZXIgd2l0aCBhIGxvc3QgV2ViR0wgY29udGV4dC4iIH07CisgICAgICAgICAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiQ2Fubm90IGNyZWF0ZSBhbiBYUldlYkdM
TGF5ZXIgd2l0aCBhIGxvc3QgV2ViR0wgY29udGV4dC4iX3MgfTsKIAogICAgICAgICAgICAgYXV0
byBtb2RlID0gc2Vzc2lvbi0+bW9kZSgpOwogICAgICAgICAgICAgaWYgKChtb2RlID09IFhSU2Vz
c2lvbk1vZGU6OkltbWVyc2l2ZUFyIHx8IG1vZGUgPT0gWFJTZXNzaW9uTW9kZTo6SW1tZXJzaXZl
VnIpICYmICFiYXNlQ29udGV4dC0+aXNYUkNvbXBhdGlibGUoKSkKLSAgICAgICAgICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJDYW5ub3QgY3JlYXRlIGFuIFhS
V2ViR0xMYXllciB3aXRoIFdlYkdMIGNvbnRleHQgbm90IG1hcmtlZCBhcyBYUiBjb21wYXRpYmxl
LiIgfTsKKyAgICAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJy
b3IsICJDYW5ub3QgY3JlYXRlIGFuIFhSV2ViR0xMYXllciB3aXRoIFdlYkdMIGNvbnRleHQgbm90
IG1hcmtlZCBhcyBYUiBjb21wYXRpYmxlLiJfcyB9OwogCiAKICAgICAgICAgICAgIC8vIDUuIElu
aXRpYWxpemUgbGF5ZXLigJlzIGNvbnRleHQgdG8gY29udGV4dC4gKHNlZSBjb25zdHJ1Y3RvcikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhJbWFnZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYSW1hZ2UuY3BwCmluZGV4IDc1ZmVhOGIxNTJi
MTZlNjk1ZDY0ZTI5OTJkOTM4M2E4NmNmZTIyZGEuLjI2M2I3OTY5MGI5NzI5MzcwMjU3OWNmMGQw
ZTc4MjgwZDJmZmY3YjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QVhJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWEltYWdlLmNw
cApAQCAtNTcsNyArNTcsNyBAQCBBY2Nlc3NpYmlsaXR5Um9sZSBBWEltYWdlOjpyb2xlVmFsdWUo
KSBjb25zdAogCiBzdGQ6Om9wdGlvbmFsPEFYQ29yZU9iamVjdDo6QWNjZXNzaWJpbGl0eUNoaWxk
cmVuVmVjdG9yPiBBWEltYWdlOjppbWFnZU92ZXJsYXlFbGVtZW50cygpCiB7Ci0gICAgQVhUUkFD
RSgiQVhJbWFnZTo6aW1hZ2VPdmVybGF5RWxlbWVudHMiKTsKKyAgICBBWFRSQUNFKCJBWEltYWdl
OjppbWFnZU92ZXJsYXlFbGVtZW50cyJfcyk7CiAKICAgICBhdXRvJiBjaGlsZHJlbiA9IHRoaXMt
PmNoaWxkcmVuKCk7CiAgICAgaWYgKGNoaWxkcmVuLnNpemUoKSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhMb2dnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BWExvZ2dlci5jcHAKaW5kZXggMGI2Y2NkM2I3ZTkyOGNlODc4MGJkYzdmMjFi
MDhlNzNlNjQyOWUzMy4uOTQxNDYxODJhNWFiZGRiMmM5MGU2MTYxYjBmZGZhMGY2YzNlZTU0ZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWExvZ2dlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWExvZ2dlci5jcHAKQEAgLTU1LDcgKzU1
LDcgQEAgc3RhdGljIGJvb2wgc2hvdWxkTG9nKCkKIEFYTG9nZ2VyOjpBWExvZ2dlcihjb25zdCBT
dHJpbmcmIG1ldGhvZE5hbWUpCiAgICAgOiBtX21ldGhvZE5hbWUobWV0aG9kTmFtZSkKIHsKLSAg
ICBpZiAoYXV0byogY2hhbm5lbCA9IGdldExvZ0NoYW5uZWwoIkFjY2Vzc2liaWxpdHkiKSkKKyAg
ICBpZiAoYXV0byogY2hhbm5lbCA9IGdldExvZ0NoYW5uZWwoIkFjY2Vzc2liaWxpdHkiX3MpKQog
ICAgICAgICBjaGFubmVsLT5sZXZlbCA9IFdURkxvZ0xldmVsOjpEZWJ1ZzsKIAogICAgIGlmIChz
aG91bGRMb2coKSkgewpAQCAtNzgsNiArNzgsMTIgQEAgdm9pZCBBWExvZ2dlcjo6bG9nKGNvbnN0
IFN0cmluZyYgbWVzc2FnZSkKICAgICAgICAgTE9HKEFjY2Vzc2liaWxpdHksICIlcyIsIG1lc3Nh
Z2UudXRmOCgpLmRhdGEoKSk7CiB9CiAKK3ZvaWQgQVhMb2dnZXI6OmxvZyhjb25zdCBjaGFyKiBt
ZXNzYWdlKQoreworICAgIGlmIChzaG91bGRMb2coKSkKKyAgICAgICAgTE9HKEFjY2Vzc2liaWxp
dHksICIlcyIsIG1lc3NhZ2UpOworfQorCiB2b2lkIEFYTG9nZ2VyOjpsb2coUmVmUHRyPEFYQ29y
ZU9iamVjdD4gb2JqZWN0KQogewogICAgIGlmIChzaG91bGRMb2coKSkgewpAQCAtMzI4LDE1ICsz
MzQsMTUgQEAgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiBzdHJlYW0sIEFjY2Vz
c2liaWxpdHlTZWFyY2hLZXkgc2VhcmNoS2V5KQogVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0
U3RyZWFtJiBzdHJlYW0sIGNvbnN0IEFjY2Vzc2liaWxpdHlTZWFyY2hDcml0ZXJpYSYgY3JpdGVy
aWEpCiB7CiAgICAgVGV4dFN0cmVhbTo6R3JvdXBTY29wZSBncm91cFNjb3BlKHN0cmVhbSk7Ci0g
ICAgYXV0byBzdHJlYW1Dcml0ZXJpYU9iamVjdCA9IFsmc3RyZWFtXSAoU3RyaW5nIG9iamVjdExh
YmVsLCBhdXRvKiBheE9iamVjdCkgeworICAgIGF1dG8gc3RyZWFtQ3JpdGVyaWFPYmplY3QgPSBb
JnN0cmVhbV0gKEFTQ0lJTGl0ZXJhbCBvYmplY3RMYWJlbCwgYXV0byogYXhPYmplY3QpIHsKICAg
ICAgICAgc3RyZWFtLnN0YXJ0R3JvdXAoKTsKLSAgICAgICAgc3RyZWFtIDw8IG9iamVjdExhYmVs
IDw8ICIgIiA8PCBheE9iamVjdCA8PCAiLCBJRCAiIDw8IChheE9iamVjdCA/IGF4T2JqZWN0LT5v
YmplY3RJRCgpIDogQVhJRCgpKTsKKyAgICAgICAgc3RyZWFtIDw8IG9iamVjdExhYmVsLmNoYXJh
Y3RlcnMoKSA8PCAiICIgPDwgYXhPYmplY3QgPDwgIiwgSUQgIiA8PCAoYXhPYmplY3QgPyBheE9i
amVjdC0+b2JqZWN0SUQoKSA6IEFYSUQoKSk7CiAgICAgICAgIHN0cmVhbS5lbmRHcm91cCgpOwog
ICAgIH07CiAKICAgICBzdHJlYW0gPDwgIlNlYXJjaENyaXRlcmlhICIgPDwgJmNyaXRlcmlhOwot
ICAgIHN0cmVhbUNyaXRlcmlhT2JqZWN0KCJhbmNob3JPYmplY3QiLCBjcml0ZXJpYS5hbmNob3JP
YmplY3QpOwotICAgIHN0cmVhbUNyaXRlcmlhT2JqZWN0KCJzdGFydE9iamVjdCIsIGNyaXRlcmlh
LnN0YXJ0T2JqZWN0KTsKKyAgICBzdHJlYW1Dcml0ZXJpYU9iamVjdCgiYW5jaG9yT2JqZWN0Il9z
LCBjcml0ZXJpYS5hbmNob3JPYmplY3QpOworICAgIHN0cmVhbUNyaXRlcmlhT2JqZWN0KCJzdGFy
dE9iamVjdCJfcywgY3JpdGVyaWEuc3RhcnRPYmplY3QpOwogICAgIHN0cmVhbS5kdW1wUHJvcGVy
dHkoInNlYXJjaERpcmVjdGlvbiIsIGNyaXRlcmlhLnNlYXJjaERpcmVjdGlvbik7CiAKICAgICBz
dHJlYW0ubmV4dExpbmUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQVhMb2dnZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhMb2dnZXIuaApp
bmRleCBlYTg5MmYyZjk2NmM1NGRjMGNlY2UxZGE3OTI4NGU3OTgxYTBjOTU2Li5kMWZiYWZiMTdj
YmJlYzMyNGFlMjBiOWYxNmNjMDJmNzBjYTA1ZjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9hY2Nlc3NpYmlsaXR5L0FYTG9nZ2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BWExvZ2dlci5oCkBAIC00Myw2ICs0Myw3IEBAIHB1YmxpYzoKICAgICBBWExvZ2dlcihj
b25zdCBTdHJpbmcmIG1ldGhvZE5hbWUpOwogICAgIH5BWExvZ2dlcigpOwogICAgIHN0YXRpYyB2
b2lkIGxvZyhjb25zdCBTdHJpbmcmKTsKKyAgICBzdGF0aWMgdm9pZCBsb2coY29uc3QgY2hhciop
OwogICAgIHN0YXRpYyB2b2lkIGxvZyhSZWZQdHI8QVhDb3JlT2JqZWN0Pik7CiAgICAgc3RhdGlj
IHZvaWQgbG9nKGNvbnN0IFZlY3RvcjxSZWZQdHI8QVhDb3JlT2JqZWN0Pj4mKTsKICAgICBzdGF0
aWMgdm9pZCBsb2coY29uc3Qgc3RkOjpwYWlyPFJlZlB0cjxBWENvcmVPYmplY3Q+LCBBWE9iamVj
dENhY2hlOjpBWE5vdGlmaWNhdGlvbj4mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmls
aXR5L0FYT2JqZWN0Q2FjaGUuY3BwCmluZGV4IDc3MjJjNmQwZDI5Nzk5OWUyYzU5OTZmYzJhZDA4
ZWI5MjBiMDJjOGEuLjUzY2MwN2Y0MDAxZmFiNzI4MjRiMmQxOWQxZWZmMDY2Mjk3YTlhZjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcApAQCAt
MjUyLDcgKzI1Miw3IEBAIEFYT2JqZWN0Q2FjaGU6On5BWE9iamVjdENhY2hlKCkKIAogYm9vbCBB
WE9iamVjdENhY2hlOjppc01vZGFsRWxlbWVudChFbGVtZW50JiBlbGVtZW50KSBjb25zdAogewot
ICAgIGJvb2wgaGFzRGlhbG9nUm9sZSA9IG5vZGVIYXNSb2xlKCZlbGVtZW50LCAiZGlhbG9nIikg
fHwgbm9kZUhhc1JvbGUoJmVsZW1lbnQsICJhbGVydGRpYWxvZyIpOworICAgIGJvb2wgaGFzRGlh
bG9nUm9sZSA9IG5vZGVIYXNSb2xlKCZlbGVtZW50LCAiZGlhbG9nIl9zKSB8fCBub2RlSGFzUm9s
ZSgmZWxlbWVudCwgImFsZXJ0ZGlhbG9nIl9zKTsKICAgICBib29sIGlzQXJpYU1vZGFsID0gZXF1
YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoZWxlbWVudC5hdHRyaWJ1dGVXaXRob3V0U3luY2hy
b25pemF0aW9uKGFyaWFfbW9kYWxBdHRyKSwgInRydWUiKTsKIAogICAgIHJldHVybiAoaGFzRGlh
bG9nUm9sZSAmJiBpc0FyaWFNb2RhbCkgfHwgKGlzPEhUTUxEaWFsb2dFbGVtZW50PihlbGVtZW50
KSAmJiBkb3duY2FzdDxIVE1MRGlhbG9nRWxlbWVudD4oZWxlbWVudCkuaXNNb2RhbCgpKTsKQEAg
LTU2MCwyMiArNTYwLDIyIEBAIHN0YXRpYyBSZWY8QWNjZXNzaWJpbGl0eU9iamVjdD4gY3JlYXRl
RnJvbVJlbmRlcmVyKFJlbmRlck9iamVjdCogcmVuZGVyZXIpCiAKICAgICAvLyBJZiB0aGUgbm9k
ZSBpcyBhcmlhIHJvbGU9Imxpc3QiIG9yIHRoZSBhcmlhIHJvbGUgaXMgZW1wdHkgYW5kIGl0cyBh
CiAgICAgLy8gdWwvb2wvZGwgdHlwZSAoaXQgc2hvdWxkbid0IGJlIGEgbGlzdCBpZiBhcmlhIHNh
eXMgb3RoZXJ3aXNlKS4KLSAgICBpZiAobm9kZSAmJiAoKG5vZGVIYXNSb2xlKG5vZGUsICJsaXN0
IikgfHwgbm9kZUhhc1JvbGUobm9kZSwgImRpcmVjdG9yeSIpKQorICAgIGlmIChub2RlICYmICgo
bm9kZUhhc1JvbGUobm9kZSwgImxpc3QiX3MpIHx8IG5vZGVIYXNSb2xlKG5vZGUsICJkaXJlY3Rv
cnkiX3MpKQogICAgICAgICAgICAgICAgICAgICAgIHx8IChub2RlSGFzUm9sZShub2RlLCBudWxs
QXRvbSgpKSAmJiAobm9kZS0+aGFzVGFnTmFtZSh1bFRhZykgfHwgbm9kZS0+aGFzVGFnTmFtZShv
bFRhZykgfHwgbm9kZS0+aGFzVGFnTmFtZShkbFRhZykpKSkpCiAgICAgICAgIHJldHVybiBBY2Nl
c3NpYmlsaXR5TGlzdDo6Y3JlYXRlKHJlbmRlcmVyKTsKIAogICAgIC8vIGFyaWEgdGFibGVzCi0g
ICAgaWYgKG5vZGVIYXNSb2xlKG5vZGUsICJncmlkIikgfHwgbm9kZUhhc1JvbGUobm9kZSwgInRy
ZWVncmlkIikgfHwgbm9kZUhhc1JvbGUobm9kZSwgInRhYmxlIikpCisgICAgaWYgKG5vZGVIYXNS
b2xlKG5vZGUsICJncmlkIl9zKSB8fCBub2RlSGFzUm9sZShub2RlLCAidHJlZWdyaWQiX3MpIHx8
IG5vZGVIYXNSb2xlKG5vZGUsICJ0YWJsZSJfcykpCiAgICAgICAgIHJldHVybiBBY2Nlc3NpYmls
aXR5QVJJQUdyaWQ6OmNyZWF0ZShyZW5kZXJlcik7Ci0gICAgaWYgKG5vZGVIYXNSb2xlKG5vZGUs
ICJyb3ciKSkKKyAgICBpZiAobm9kZUhhc1JvbGUobm9kZSwgInJvdyJfcykpCiAgICAgICAgIHJl
dHVybiBBY2Nlc3NpYmlsaXR5QVJJQUdyaWRSb3c6OmNyZWF0ZShyZW5kZXJlcik7Ci0gICAgaWYg
KG5vZGVIYXNSb2xlKG5vZGUsICJncmlkY2VsbCIpIHx8IG5vZGVIYXNSb2xlKG5vZGUsICJjZWxs
IikgfHwgbm9kZUhhc1JvbGUobm9kZSwgImNvbHVtbmhlYWRlciIpIHx8IG5vZGVIYXNSb2xlKG5v
ZGUsICJyb3doZWFkZXIiKSkKKyAgICBpZiAobm9kZUhhc1JvbGUobm9kZSwgImdyaWRjZWxsIl9z
KSB8fCBub2RlSGFzUm9sZShub2RlLCAiY2VsbCJfcykgfHwgbm9kZUhhc1JvbGUobm9kZSwgImNv
bHVtbmhlYWRlciJfcykgfHwgbm9kZUhhc1JvbGUobm9kZSwgInJvd2hlYWRlciJfcykpCiAgICAg
ICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5QVJJQUdyaWRDZWxsOjpjcmVhdGUocmVuZGVyZXIpOwog
CiAgICAgLy8gYXJpYSB0cmVlCi0gICAgaWYgKG5vZGVIYXNSb2xlKG5vZGUsICJ0cmVlIikpCisg
ICAgaWYgKG5vZGVIYXNSb2xlKG5vZGUsICJ0cmVlIl9zKSkKICAgICAgICAgcmV0dXJuIEFjY2Vz
c2liaWxpdHlUcmVlOjpjcmVhdGUocmVuZGVyZXIpOwotICAgIGlmIChub2RlSGFzUm9sZShub2Rl
LCAidHJlZWl0ZW0iKSkKKyAgICBpZiAobm9kZUhhc1JvbGUobm9kZSwgInRyZWVpdGVtIl9zKSkK
ICAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlUcmVlSXRlbTo6Y3JlYXRlKHJlbmRlcmVyKTsK
IAogICAgIGlmIChub2RlICYmIGlzPEhUTUxMYWJlbEVsZW1lbnQ+KG5vZGUpICYmIG5vZGVIYXNS
b2xlKG5vZGUsIG51bGxBdG9tKCkpKQpAQCAtODY1LDcgKzg2NSw3IEBAIEFjY2Vzc2liaWxpdHlP
YmplY3QqIEFYT2JqZWN0Q2FjaGU6OmNyZWF0ZShBY2Nlc3NpYmlsaXR5Um9sZSByb2xlKQogCiB2
b2lkIEFYT2JqZWN0Q2FjaGU6OnJlbW92ZShBWElEIGF4SUQpCiB7Ci0gICAgQVhUUkFDRSgiQVhP
YmplY3RDYWNoZTo6cmVtb3ZlIik7CisgICAgQVhUUkFDRSgiQVhPYmplY3RDYWNoZTo6cmVtb3Zl
Il9zKTsKICAgICBBWExPRyhtYWtlU3RyaW5nKCJBWElEICIsIGF4SUQubG9nZ2luZ1N0cmluZygp
KSk7CiAKICAgICBpZiAoIWF4SUQpCkBAIC05NzcsNyArOTc3LDcgQEAgdm9pZCBBWE9iamVjdENh
Y2hlOjp0ZXh0Q2hhbmdlZChOb2RlKiBub2RlKQogCiB2b2lkIEFYT2JqZWN0Q2FjaGU6OnRleHRD
aGFuZ2VkKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCkKIHsKLSAgICBBWFRSQUNFKCJBWE9i
amVjdENhY2hlOjp0ZXh0Q2hhbmdlZCIpOworICAgIEFYVFJBQ0UoIkFYT2JqZWN0Q2FjaGU6OnRl
eHRDaGFuZ2VkIl9zKTsKICAgICBBWExPRyhvYmplY3QpOwogCiAgICAgaWYgKCFvYmplY3QpCkBA
IC0xMDgyLDcgKzEwODIsNyBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZUNoaWxkcmVuQ2hh
bmdlZChBY2Nlc3NpYmlsaXR5T2JqZWN0JiBvYmplY3QpCiAKIHZvaWQgQVhPYmplY3RDYWNoZTo6
aGFuZGxlTWVudU9wZW5lZChOb2RlKiBub2RlKQogewotICAgIGlmICghbm9kZSB8fCAhbm9kZS0+
cmVuZGVyZXIoKSB8fCAhbm9kZUhhc1JvbGUobm9kZSwgIm1lbnUiKSkKKyAgICBpZiAoIW5vZGUg
fHwgIW5vZGUtPnJlbmRlcmVyKCkgfHwgIW5vZGVIYXNSb2xlKG5vZGUsICJtZW51Il9zKSkKICAg
ICAgICAgcmV0dXJuOwogICAgIAogICAgIHBvc3ROb3RpZmljYXRpb24oZ2V0T3JDcmVhdGUobm9k
ZSksICZkb2N1bWVudCgpLCBBWE1lbnVPcGVuZWQpOwpAQCAtMTEzNCw3ICsxMTM0LDcgQEAgdm9p
ZCBBWE9iamVjdENhY2hlOjpjaGlsZHJlbkNoYW5nZWQoQWNjZXNzaWJpbGl0eU9iamVjdCogb2Jq
ZWN0KQogCiB2b2lkIEFYT2JqZWN0Q2FjaGU6Om5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKCkK
IHsKLSAgICBBWFRSQUNFKCJBWE9iamVjdENhY2hlOjpub3RpZmljYXRpb25Qb3N0VGltZXJGaXJl
ZCIpOworICAgIEFYVFJBQ0UoIkFYT2JqZWN0Q2FjaGU6Om5vdGlmaWNhdGlvblBvc3RUaW1lckZp
cmVkIl9zKTsKICAgICAvLyBEdXJpbmcgTGF5b3V0VGVzdHMsIGFjY2Vzc2liaWxpdHkgbWF5IGJl
IGRpc2FibGVkIGJldHdlZW4gdGhlIHRpbWUgdGhlIG5vdGlmaWNhdGlvbnMgYXJlIHF1ZXVlZCBh
bmQgdGhlIHRpbWVyIGZpcmVzLgogICAgIC8vIFRodXMgY2hlY2sgaGVyZSBhbmQgcmV0dXJuIGlm
IGFjY2Vzc2liaWxpdHkgaXMgZGlzYWJsZWQuCiAgICAgaWYgKCFhY2Nlc3NpYmlsaXR5RW5hYmxl
ZCgpKQpAQCAtMTE5NSw3ICsxMTk1LDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwYXNzd29yZE5v
dGlmaWNhdGlvblBvc3RUaW1lckZpcmVkKCkKICAgICBhdXRvIG5vdGlmaWNhdGlvbnMgPSBzdGQ6
OmV4Y2hhbmdlKG1fcGFzc3dvcmROb3RpZmljYXRpb25zVG9Qb3N0LCB7IH0pOwogCiAgICAgZm9y
IChhdXRvJiBub3RpZmljYXRpb24gOiBub3RpZmljYXRpb25zKQotICAgICAgICBwb3N0VGV4dFN0
YXRlQ2hhbmdlUGxhdGZvcm1Ob3RpZmljYXRpb24obm90aWZpY2F0aW9uLmdldCgpLCBBWFRleHRF
ZGl0VHlwZUluc2VydCwgIiAiLCBWaXNpYmxlUG9zaXRpb24oKSk7CisgICAgICAgIHBvc3RUZXh0
U3RhdGVDaGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihub3RpZmljYXRpb24uZ2V0KCksIEFYVGV4
dEVkaXRUeXBlSW5zZXJ0LCAiICJfcywgVmlzaWJsZVBvc2l0aW9uKCkpOwogI2VuZGlmCiB9CiAK
QEAgLTEyNDMsNyArMTI0Myw3IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdE5vdGlmaWNhdGlv
bihOb2RlKiBub2RlLCBBWE5vdGlmaWNhdGlvbiBub3RpZmljYXRpb24sIFBvCiAKIHZvaWQgQVhP
YmplY3RDYWNoZTo6cG9zdE5vdGlmaWNhdGlvbihBWENvcmVPYmplY3QqIG9iamVjdCwgRG9jdW1l
bnQqIGRvY3VtZW50LCBBWE5vdGlmaWNhdGlvbiBub3RpZmljYXRpb24sIFBvc3RUYXJnZXQgcG9z
dFRhcmdldCkKIHsKLSAgICBBWFRSQUNFKCJBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0aW9u
Iik7CisgICAgQVhUUkFDRSgiQVhPYmplY3RDYWNoZTo6cG9zdE5vdGlmaWNhdGlvbiJfcyk7CiAg
ICAgQVhMT0coc3RkOjptYWtlX3BhaXIob2JqZWN0LCBub3RpZmljYXRpb24pKTsKICAgICBBU1NF
UlQoaXNNYWluVGhyZWFkKCkpOwogCkBAIC0xMjczLDcgKzEyNzMsNyBAQCB2b2lkIEFYT2JqZWN0
Q2FjaGU6OmhhbmRsZU1lbnVJdGVtU2VsZWN0ZWQoTm9kZSogbm9kZSkKICAgICBpZiAoIW5vZGUp
CiAgICAgICAgIHJldHVybjsKICAgICAKLSAgICBpZiAoIW5vZGVIYXNSb2xlKG5vZGUsICJtZW51
aXRlbSIpICYmICFub2RlSGFzUm9sZShub2RlLCAibWVudWl0ZW1yYWRpbyIpICYmICFub2RlSGFz
Um9sZShub2RlLCAibWVudWl0ZW1jaGVja2JveCIpKQorICAgIGlmICghbm9kZUhhc1JvbGUobm9k
ZSwgIm1lbnVpdGVtIl9zKSAmJiAhbm9kZUhhc1JvbGUobm9kZSwgIm1lbnVpdGVtcmFkaW8iX3Mp
ICYmICFub2RlSGFzUm9sZShub2RlLCAibWVudWl0ZW1jaGVja2JveCJfcykpCiAgICAgICAgIHJl
dHVybjsKICAgICAKICAgICBpZiAoIWRvd25jYXN0PEVsZW1lbnQ+KCpub2RlKS5mb2N1c2VkKCkg
JiYgIWVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGRvd25jYXN0PEVsZW1lbnQ+KCpub2Rl
KS5hdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKGFyaWFfc2VsZWN0ZWRBdHRyKSwgInRy
dWUiKSkKQEAgLTEzNDcsOCArMTM0Nyw4IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6c2VsZWN0ZWRT
dGF0ZUNoYW5nZWQoTm9kZSogbm9kZSkKIHsKICAgICAvLyBGb3IgYSB0YWJsZSBjZWxsLCBwb3N0
IEFYU2VsZWN0ZWRTdGF0ZUNoYW5nZWQgb24gdGhlIGNlbGwgaXRzZWxmLgogICAgIC8vIEZvciBh
bnkgb3RoZXIgZWxlbWVudCwgcG9zdCBBWFNlbGVjdGVkQ2hpbGRyZW5DaGFuZ2VkIG9uIHRoZSBw
YXJlbnQuCi0gICAgaWYgKG5vZGVIYXNSb2xlKG5vZGUsICJncmlkY2VsbCIpIHx8IG5vZGVIYXNS
b2xlKG5vZGUsICJjZWxsIikKLSAgICAgICAgfHwgbm9kZUhhc1JvbGUobm9kZSwgImNvbHVtbmhl
YWRlciIpIHx8IG5vZGVIYXNSb2xlKG5vZGUsICJyb3doZWFkZXIiKSkKKyAgICBpZiAobm9kZUhh
c1JvbGUobm9kZSwgImdyaWRjZWxsIl9zKSB8fCBub2RlSGFzUm9sZShub2RlLCAiY2VsbCJfcykK
KyAgICAgICAgfHwgbm9kZUhhc1JvbGUobm9kZSwgImNvbHVtbmhlYWRlciJfcykgfHwgbm9kZUhh
c1JvbGUobm9kZSwgInJvd2hlYWRlciJfcykpCiAgICAgICAgIHBvc3ROb3RpZmljYXRpb24obm9k
ZSwgQVhTZWxlY3RlZFN0YXRlQ2hhbmdlZCk7CiAgICAgZWxzZQogICAgICAgICBzZWxlY3RlZENo
aWxkcmVuQ2hhbmdlZChub2RlKTsKQEAgLTE1NDIsNyArMTU0Miw3IEBAIHZvaWQgQVhPYmplY3RD
YWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihjb25zdCBQb3NpdGlvbiYgcG9z
aXRpb24sIGNvCiAKIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlm
aWNhdGlvbihBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3QsIGNvbnN0IEFYVGV4dFN0YXRlQ2hh
bmdlSW50ZW50JiBpbnRlbnQsIGNvbnN0IFZpc2libGVTZWxlY3Rpb24mIHNlbGVjdGlvbikKIHsK
LSAgICBBWFRSQUNFKCJBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0
aW9uIik7CisgICAgQVhUUkFDRSgiQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5v
dGlmaWNhdGlvbiJfcyk7CiAgICAgc3RvcENhY2hpbmdDb21wdXRlZE9iamVjdEF0dHJpYnV0ZXMo
KTsKIAogI2lmIFBMQVRGT1JNKENPQ09BKSB8fCBVU0UoQVRTUEkpCkBAIC0xNTc0LDcgKzE1NzQs
NyBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24o
QWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0LAogCiB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBvc3RU
ZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24oTm9kZSogbm9kZSwgQVhUZXh0RWRpdFR5cGUgdHlw
ZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBWaXNpYmxlUG9zaXRpb24mIHBvc2l0aW9uKQog
ewotICAgIEFYVFJBQ0UoIkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmlj
YXRpb24iKTsKKyAgICBBWFRSQUNFKCJBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdl
Tm90aWZpY2F0aW9uIl9zKTsKICAgICBpZiAoIW5vZGUgfHwgdHlwZSA9PSBBWFRleHRFZGl0VHlw
ZVVua25vd24pCiAgICAgICAgIHJldHVybjsKIApAQCAtMTkxMiw3ICsxOTEyLDcgQEAgdm9pZCBB
WE9iamVjdENhY2hlOjpoYW5kbGVBdHRyaWJ1dGVDaGFuZ2UoY29uc3QgUXVhbGlmaWVkTmFtZSYg
YXR0ck5hbWUsIEVsZW1lbnQKIAogdm9pZCBBWE9iamVjdENhY2hlOjpoYW5kbGVNb2RhbENoYW5n
ZShFbGVtZW50JiBlbGVtZW50KQogewotICAgIGlmICghaXM8SFRNTERpYWxvZ0VsZW1lbnQ+KGVs
ZW1lbnQpICYmICFub2RlSGFzUm9sZSgmZWxlbWVudCwgImRpYWxvZyIpICYmICFub2RlSGFzUm9s
ZSgmZWxlbWVudCwgImFsZXJ0ZGlhbG9nIikpCisgICAgaWYgKCFpczxIVE1MRGlhbG9nRWxlbWVu
dD4oZWxlbWVudCkgJiYgIW5vZGVIYXNSb2xlKCZlbGVtZW50LCAiZGlhbG9nIl9zKSAmJiAhbm9k
ZUhhc1JvbGUoJmVsZW1lbnQsICJhbGVydGRpYWxvZyJfcykpCiAgICAgICAgIHJldHVybjsKIAog
ICAgIHN0b3BDYWNoaW5nQ29tcHV0ZWRPYmplY3RBdHRyaWJ1dGVzKCk7CkBAIC0zMjc3LDcgKzMy
NzcsNyBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnByb2Nlc3NEZWZlcnJlZENoaWxkcmVuQ2hhbmdl
ZExpc3QoKQogCiB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBlcmZvcm1EZWZlcnJlZENhY2hlVXBkYXRl
KCkKIHsKLSAgICBBWFRSQUNFKCJBWE9iamVjdENhY2hlOjpwZXJmb3JtRGVmZXJyZWRDYWNoZVVw
ZGF0ZSIpOworICAgIEFYVFJBQ0UoIkFYT2JqZWN0Q2FjaGU6OnBlcmZvcm1EZWZlcnJlZENhY2hl
VXBkYXRlIl9zKTsKICAgICBpZiAobV9wZXJmb3JtaW5nRGVmZXJyZWRDYWNoZVVwZGF0ZSkKICAg
ICAgICAgcmV0dXJuOwogICAgIFNldEZvclNjb3BlIHBlcmZvcm1pbmdEZWZlcnJlZENhY2hlVXBk
YXRlKG1fcGVyZm9ybWluZ0RlZmVycmVkQ2FjaGVVcGRhdGUsIHRydWUpOwpAQCAtMzM3Myw3ICsz
MzczLDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjp1cGRhdGVJc29sYXRlZFRyZWUoQVhDb3JlT2Jq
ZWN0JiBvYmplY3QsIEFYTm90aWZpY2F0aW9uIG5vdGkKIAogdm9pZCBBWE9iamVjdENhY2hlOjp1
cGRhdGVJc29sYXRlZFRyZWUoY29uc3QgVmVjdG9yPHN0ZDo6cGFpcjxSZWZQdHI8QVhDb3JlT2Jq
ZWN0PiwgQVhOb3RpZmljYXRpb24+PiYgbm90aWZpY2F0aW9ucykKIHsKLSAgICBBWFRSQUNFKCJB
WE9iamVjdENhY2hlOjp1cGRhdGVJc29sYXRlZFRyZWUiKTsKKyAgICBBWFRSQUNFKCJBWE9iamVj
dENhY2hlOjp1cGRhdGVJc29sYXRlZFRyZWUiX3MpOwogICAgIEFYTE9HKCp0aGlzKTsKIAogICAg
IGlmICghbV9wYWdlSUQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKaW5kZXggMTQyOTEzNzJjZmM0NmMxZGUy
MmU4MzhjZDIyNTlmNzA5M2ZkYTQwOC4uYjJkOGM0OTcwZjJhZDZlMzQwZWRhNWQ3M2Y5NDFhMTI4
NjU2ZjIzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5Tm9kZU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKQEAgLTIzNyw3ICsyMzcsNyBAQCBEb2N1bWVudCog
QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmRvY3VtZW50KCkgY29uc3QKIAogQWNjZXNzaWJpbGl0
eVJvbGUgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmRldGVybWluZUFjY2Vzc2liaWxpdHlSb2xl
KCkKIHsKLSAgICBBWFRSQUNFKCJBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6ZGV0ZXJtaW5lQWNj
ZXNzaWJpbGl0eVJvbGUiKTsKKyAgICBBWFRSQUNFKCJBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6
ZGV0ZXJtaW5lQWNjZXNzaWJpbGl0eVJvbGUiX3MpOwogICAgIGlmICgobV9hcmlhUm9sZSA9IGRl
dGVybWluZUFyaWFSb2xlQXR0cmlidXRlKCkpICE9IEFjY2Vzc2liaWxpdHlSb2xlOjpVbmtub3du
KQogICAgICAgICByZXR1cm4gbV9hcmlhUm9sZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVjdC5jcHAKaW5kZXggMzRmMTVmMjU2NDU2
M2Y5YzkyMzM1ODIxYmVhZWRmYjA5OTRiOGJhZS4uYmZiZTQyZjNkOGMyZGMzN2U5ZTc1ZmQ2MzYz
NjQxZjNjOTc5MWU4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwCkBAIC0xNzI5LDcgKzE3MjksNyBAQCBib29sIEFjY2Vz
c2liaWxpdHlPYmplY3Q6OnN1cHBvcnRzUmVhZE9ubHkoKSBjb25zdAogU3RyaW5nIEFjY2Vzc2li
aWxpdHlPYmplY3Q6OnJlYWRPbmx5VmFsdWUoKSBjb25zdAogewogICAgIGlmICghaGFzQXR0cmli
dXRlKGFyaWFfcmVhZG9ubHlBdHRyKSkKLSAgICAgICAgcmV0dXJuIGFyaWFSb2xlQXR0cmlidXRl
KCkgIT0gQWNjZXNzaWJpbGl0eVJvbGU6OlVua25vd24gJiYgc3VwcG9ydHNSZWFkT25seSgpID8g
ImZhbHNlIiA6IFN0cmluZygpOworICAgICAgICByZXR1cm4gYXJpYVJvbGVBdHRyaWJ1dGUoKSAh
PSBBY2Nlc3NpYmlsaXR5Um9sZTo6VW5rbm93biAmJiBzdXBwb3J0c1JlYWRPbmx5KCkgPyAiZmFs
c2UiX3MgOiBTdHJpbmcoKTsKIAogICAgIHJldHVybiBnZXRBdHRyaWJ1dGUoYXJpYV9yZWFkb25s
eUF0dHIpLnN0cmluZygpLmNvbnZlcnRUb0FTQ0lJTG93ZXJjYXNlKCk7CiB9CkBAIC0xNzU3LDcg
KzE3NTcsNyBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0eU9iamVjdDo6YXV0b0NvbXBsZXRlVmFsdWUo
KSBjb25zdAogICAgICAgICB8fCBlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShhdXRvQ29t
cGxldGUsICJib3RoIikpCiAgICAgICAgIHJldHVybiBhdXRvQ29tcGxldGU7CiAKLSAgICByZXR1
cm4gIm5vbmUiOworICAgIHJldHVybiAibm9uZSJfczsKIH0KIAogYm9vbCBBY2Nlc3NpYmlsaXR5
T2JqZWN0Ojpjb250ZW50RWRpdGFibGVBdHRyaWJ1dGVJc0VuYWJsZWQoRWxlbWVudCogZWxlbWVu
dCkKQEAgLTIyMzMsMjAgKzIyMzMsMjAgQEAgU3RyaW5nIEFjY2Vzc2liaWxpdHlPYmplY3Q6OmN1
cnJlbnRWYWx1ZSgpIGNvbnN0CiB7CiAgICAgc3dpdGNoIChjdXJyZW50U3RhdGUoKSkgewogICAg
IGNhc2UgQWNjZXNzaWJpbGl0eUN1cnJlbnRTdGF0ZTo6RmFsc2U6Ci0gICAgICAgIHJldHVybiAi
ZmFsc2UiOworICAgICAgICByZXR1cm4gImZhbHNlIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0
eUN1cnJlbnRTdGF0ZTo6UGFnZToKLSAgICAgICAgcmV0dXJuICJwYWdlIjsKKyAgICAgICAgcmV0
dXJuICJwYWdlIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eUN1cnJlbnRTdGF0ZTo6U3RlcDoK
LSAgICAgICAgcmV0dXJuICJzdGVwIjsKKyAgICAgICAgcmV0dXJuICJzdGVwIl9zOwogICAgIGNh
c2UgQWNjZXNzaWJpbGl0eUN1cnJlbnRTdGF0ZTo6TG9jYXRpb246Ci0gICAgICAgIHJldHVybiAi
bG9jYXRpb24iOworICAgICAgICByZXR1cm4gImxvY2F0aW9uIl9zOwogICAgIGNhc2UgQWNjZXNz
aWJpbGl0eUN1cnJlbnRTdGF0ZTo6VGltZToKLSAgICAgICAgcmV0dXJuICJ0aW1lIjsKKyAgICAg
ICAgcmV0dXJuICJ0aW1lIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eUN1cnJlbnRTdGF0ZTo6
RGF0ZToKLSAgICAgICAgcmV0dXJuICJkYXRlIjsKKyAgICAgICAgcmV0dXJuICJkYXRlIl9zOwog
ICAgIGRlZmF1bHQ6CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Q3VycmVudFN0YXRlOjpUcnVlOgot
ICAgICAgICByZXR1cm4gInRydWUiOworICAgICAgICByZXR1cm4gInRydWUiX3M7CiAgICAgfQog
fQogCkBAIC0yMzU1LDExICsyMzU1LDExIEBAIGJvb2wgQWNjZXNzaWJpbGl0eU9iamVjdDo6cmVw
bGFjZVRleHRJblJhbmdlKGNvbnN0IFN0cmluZyYgcmVwbGFjZW1lbnRTdHJpbmcsIGNvCiAgICAg
fQogICAgIAogICAgIGlmIChpczxIVE1MSW5wdXRFbGVtZW50PihlbGVtZW50KSkgewotICAgICAg
ICBkb3duY2FzdDxIVE1MSW5wdXRFbGVtZW50PihlbGVtZW50KS5zZXRSYW5nZVRleHQocmVwbGFj
ZW1lbnRTdHJpbmcsIHJhbmdlLnN0YXJ0LCByYW5nZS5sZW5ndGgsICIiKTsKKyAgICAgICAgZG93
bmNhc3Q8SFRNTElucHV0RWxlbWVudD4oZWxlbWVudCkuc2V0UmFuZ2VUZXh0KHJlcGxhY2VtZW50
U3RyaW5nLCByYW5nZS5zdGFydCwgcmFuZ2UubGVuZ3RoLCBlbXB0eVN0cmluZygpKTsKICAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgfQogICAgIGlmIChpczxIVE1MVGV4dEFyZWFFbGVtZW50Pihl
bGVtZW50KSkgewotICAgICAgICBkb3duY2FzdDxIVE1MVGV4dEFyZWFFbGVtZW50PihlbGVtZW50
KS5zZXRSYW5nZVRleHQocmVwbGFjZW1lbnRTdHJpbmcsIHJhbmdlLnN0YXJ0LCByYW5nZS5sZW5n
dGgsICIiKTsKKyAgICAgICAgZG93bmNhc3Q8SFRNTFRleHRBcmVhRWxlbWVudD4oZWxlbWVudCku
c2V0UmFuZ2VUZXh0KHJlcGxhY2VtZW50U3RyaW5nLCByYW5nZS5zdGFydCwgcmFuZ2UubGVuZ3Ro
LCBlbXB0eVN0cmluZygpKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCkBAIC0yNTk0
LDcgKzI1OTQsNyBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0eU9iamVjdDo6Y29tcHV0ZWRSb2xlU3Ry
aW5nKCkgY29uc3QKIAogICAgIC8vIFdlIGRvIG5vdCBjb21wdXRlIGEgcm9sZSBzdHJpbmcgZm9y
IGdlbmVyaWMgYmxvY2sgZWxlbWVudHMgd2l0aCB1c2VyLWFnZW50IGFzc2lnbmVkIHJvbGVzLgog
ICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpHcm91cCB8fCByb2xlID09IEFjY2Vz
c2liaWxpdHlSb2xlOjpUZXh0R3JvdXApCi0gICAgICAgIHJldHVybiAiIjsKKyAgICAgICAgcmV0
dXJuIGVtcHR5U3RyaW5nKCk7CiAKICAgICAvLyBXZSBkbyBjb21wdXRlIGEgcm9sZSBzdHJpbmcg
Zm9yIGJsb2NrIGVsZW1lbnRzIHdpdGggYXV0aG9yLXByb3ZpZGVkIHJvbGVzLgogICAgIGlmIChy
b2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvblRleHRHcm91cApAQCAtMjcyNSw3
ICsyNzI1LDcgQEAgU3RyaW5nIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnJvbGVEZXNjcmlwdGlvbigp
IGNvbnN0CiAKIGJvb2wgbm9kZUhhc1ByZXNlbnRhdGlvblJvbGUoTm9kZSogbm9kZSkKIHsKLSAg
ICByZXR1cm4gbm9kZUhhc1JvbGUobm9kZSwgInByZXNlbnRhdGlvbiIpIHx8IG5vZGVIYXNSb2xl
KG5vZGUsICJub25lIik7CisgICAgcmV0dXJuIG5vZGVIYXNSb2xlKG5vZGUsICJwcmVzZW50YXRp
b24iX3MpIHx8IG5vZGVIYXNSb2xlKG5vZGUsICJub25lIl9zKTsKIH0KICAgICAKIGJvb2wgQWNj
ZXNzaWJpbGl0eU9iamVjdDo6c3VwcG9ydHNQcmVzc0FjdGlvbigpIGNvbnN0CkBAIC0zMjEwLDEw
ICszMjEwLDEwIEBAIEhhc2hNYXA8U3RyaW5nLCBBWEVkaXRpbmdTdHlsZVZhbHVlVmFyaWFudD4g
QWNjZXNzaWJpbGl0eU9iamVjdDo6cmVzb2x2ZWRFZGl0aW5nCiAgICAgICAgIHJldHVybiB7IH07
CiAKICAgICBIYXNoTWFwPFN0cmluZywgQVhFZGl0aW5nU3R5bGVWYWx1ZVZhcmlhbnQ+IHN0eWxl
czsKLSAgICBzdHlsZXMuYWRkKCJib2xkIiwgc2VsZWN0aW9uU3R5bGUtPmhhc1N0eWxlKENTU1By
b3BlcnR5Rm9udFdlaWdodCwgImJvbGQiKSk7Ci0gICAgc3R5bGVzLmFkZCgiaXRhbGljIiwgc2Vs
ZWN0aW9uU3R5bGUtPmhhc1N0eWxlKENTU1Byb3BlcnR5Rm9udFN0eWxlLCAiaXRhbGljIikpOwot
ICAgIHN0eWxlcy5hZGQoInVuZGVybGluZSIsIHNlbGVjdGlvblN0eWxlLT5oYXNTdHlsZShDU1NQ
cm9wZXJ0eVdlYmtpdFRleHREZWNvcmF0aW9uc0luRWZmZWN0LCAidW5kZXJsaW5lIikpOwotICAg
IHN0eWxlcy5hZGQoImZvbnRzaXplIiwgc2VsZWN0aW9uU3R5bGUtPmxlZ2FjeUZvbnRTaXplKCpk
b2N1bWVudCkpOworICAgIHN0eWxlcy5hZGQoImJvbGQiX3MsIHNlbGVjdGlvblN0eWxlLT5oYXNT
dHlsZShDU1NQcm9wZXJ0eUZvbnRXZWlnaHQsICJib2xkIl9zKSk7CisgICAgc3R5bGVzLmFkZCgi
aXRhbGljIl9zLCBzZWxlY3Rpb25TdHlsZS0+aGFzU3R5bGUoQ1NTUHJvcGVydHlGb250U3R5bGUs
ICJpdGFsaWMiX3MpKTsKKyAgICBzdHlsZXMuYWRkKCJ1bmRlcmxpbmUiX3MsIHNlbGVjdGlvblN0
eWxlLT5oYXNTdHlsZShDU1NQcm9wZXJ0eVdlYmtpdFRleHREZWNvcmF0aW9uc0luRWZmZWN0LCAi
dW5kZXJsaW5lIl9zKSk7CisgICAgc3R5bGVzLmFkZCgiZm9udHNpemUiX3MsIHNlbGVjdGlvblN0
eWxlLT5sZWdhY3lGb250U2l6ZSgqZG9jdW1lbnQpKTsKICAgICByZXR1cm4gc3R5bGVzOwogfQog
CkBAIC00MDg4LDcgKzQwODgsNyBAQCBzdGF0aWMgYm9vbCBpc1JhZGlvQnV0dG9uSW5EaWZmZXJl
bnRBZGhvY0dyb3VwKFJlZlB0cjxBWENvcmVPYmplY3Q+IGF4T2JqZWN0LCBBWAogICAgIGlmICgh
cmVmZXJlbmNlT2JqZWN0IHx8ICFyZWZlcmVuY2VPYmplY3QtPmlzUmFkaW9CdXR0b24oKSkKICAg
ICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICByZXR1cm4gYXhPYmplY3QtPmF0dHJpYnV0ZVZhbHVl
KCJuYW1lIikgIT0gcmVmZXJlbmNlT2JqZWN0LT5hdHRyaWJ1dGVWYWx1ZSgibmFtZSIpOworICAg
IHJldHVybiBheE9iamVjdC0+YXR0cmlidXRlVmFsdWUoIm5hbWUiX3MpICE9IHJlZmVyZW5jZU9i
amVjdC0+YXR0cmlidXRlVmFsdWUoIm5hbWUiX3MpOwogfQogCiBzdGF0aWMgYm9vbCBpc0FjY2Vz
c2liaWxpdHlPYmplY3RTZWFyY2hNYXRjaEF0SW5kZXgoUmVmUHRyPEFYQ29yZU9iamVjdD4gYXhP
YmplY3QsIEFjY2Vzc2liaWxpdHlTZWFyY2hDcml0ZXJpYSBjb25zdCYgY3JpdGVyaWEsIHNpemVf
dCBpbmRleCkKQEAgLTQyOTUsNyArNDI5NSw3IEBAIHN0YXRpYyB2b2lkIGFwcGVuZENoaWxkcmVu
VG9BcnJheShSZWZQdHI8QVhDb3JlT2JqZWN0PiBvYmplY3QsIGJvb2wgaXNGb3J3YXJkLCBSCiAK
IHZvaWQgZmluZE1hdGNoaW5nT2JqZWN0cyhBY2Nlc3NpYmlsaXR5U2VhcmNoQ3JpdGVyaWEgY29u
c3QmIGNyaXRlcmlhLCBBWENvcmVPYmplY3Q6OkFjY2Vzc2liaWxpdHlDaGlsZHJlblZlY3RvciYg
cmVzdWx0cykKIHsKLSAgICBBWFRSQUNFKCJBY2Nlc3NpYmlsaXR5OjpmaW5kTWF0Y2hpbmdPYmpl
Y3RzIik7CisgICAgQVhUUkFDRSgiQWNjZXNzaWJpbGl0eTo6ZmluZE1hdGNoaW5nT2JqZWN0cyJf
cyk7CiAgICAgQVhMT0coY3JpdGVyaWEpOwogCiAgICAgLy8gVGhpcyBzZWFyY2ggYWxnb3JpdGht
IG9ubHkgc2VhcmNoZXMgdGhlIGVsZW1lbnRzIGJlZm9yZS9hZnRlciB0aGUgc3RhcnRpbmcgb2Jq
ZWN0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmls
aXR5T2JqZWN0SW50ZXJmYWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaAppbmRleCA0NmY2MDI4MDJhNzYyMWMwODZmNTE0NWQw
YTcwZWNlNmJmYjgyN2NmLi5lMGJkZGQ5MzFjNGQyNDFlZDc3ODA0M2U5YjI0MWYxMjllM2ZlZDcx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlP
YmplY3RJbnRlcmZhY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaApAQCAtMjY0LDMxMiArMjY0LDMxMiBAQCBBTFdBWVNf
SU5MSU5FIFN0cmluZyBhY2Nlc3NpYmlsaXR5Um9sZVRvU3RyaW5nKEFjY2Vzc2liaWxpdHlSb2xl
IHJvbGUpCiB7CiAgICAgc3dpdGNoIChyb2xlKSB7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9s
ZTo6QW5ub3RhdGlvbjoKLSAgICAgICAgcmV0dXJuICJBbm5vdGF0aW9uIjsKKyAgICAgICAgcmV0
dXJuICJBbm5vdGF0aW9uIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0
aW9uOgotICAgICAgICByZXR1cm4gIkFwcGxpY2F0aW9uIjsKKyAgICAgICAgcmV0dXJuICJBcHBs
aWNhdGlvbiJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvbkFsZXJ0
OgotICAgICAgICByZXR1cm4gIkFwcGxpY2F0aW9uQWxlcnQiOworICAgICAgICByZXR1cm4gIkFw
cGxpY2F0aW9uQWxlcnQiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRp
b25BbGVydERpYWxvZzoKLSAgICAgICAgcmV0dXJuICJBcHBsaWNhdGlvbkFsZXJ0RGlhbG9nIjsK
KyAgICAgICAgcmV0dXJuICJBcHBsaWNhdGlvbkFsZXJ0RGlhbG9nIl9zOwogICAgIGNhc2UgQWNj
ZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uRGlhbG9nOgotICAgICAgICByZXR1cm4gIkFwcGxp
Y2F0aW9uRGlhbG9nIjsKKyAgICAgICAgcmV0dXJuICJBcHBsaWNhdGlvbkRpYWxvZyJfczsKICAg
ICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvbkdyb3VwOgotICAgICAgICByZXR1
cm4gIkFwcGxpY2F0aW9uR3JvdXAiOworICAgICAgICByZXR1cm4gIkFwcGxpY2F0aW9uR3JvdXAi
X3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb25Mb2c6Ci0gICAgICAg
IHJldHVybiAiQXBwbGljYXRpb25Mb2ciOworICAgICAgICByZXR1cm4gIkFwcGxpY2F0aW9uTG9n
Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uTWFycXVlZToKLSAg
ICAgICAgcmV0dXJuICJBcHBsaWNhdGlvbk1hcnF1ZWUiOworICAgICAgICByZXR1cm4gIkFwcGxp
Y2F0aW9uTWFycXVlZSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNhdGlv
blN0YXR1czoKLSAgICAgICAgcmV0dXJuICJBcHBsaWNhdGlvblN0YXR1cyI7CisgICAgICAgIHJl
dHVybiAiQXBwbGljYXRpb25TdGF0dXMiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6
QXBwbGljYXRpb25UZXh0R3JvdXA6Ci0gICAgICAgIHJldHVybiAiQXBwbGljYXRpb25UZXh0R3Jv
dXAiOworICAgICAgICByZXR1cm4gIkFwcGxpY2F0aW9uVGV4dEdyb3VwIl9zOwogICAgIGNhc2Ug
QWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uVGltZXI6Ci0gICAgICAgIHJldHVybiAiQXBw
bGljYXRpb25UaW1lciI7CisgICAgICAgIHJldHVybiAiQXBwbGljYXRpb25UaW1lciJfczsKICAg
ICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpBdWRpbzoKLSAgICAgICAgcmV0dXJuICJBdWRpbyI7
CisgICAgICAgIHJldHVybiAiQXVkaW8iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6
QmxvY2txdW90ZToKLSAgICAgICAgcmV0dXJuICJCbG9ja3F1b3RlIjsKKyAgICAgICAgcmV0dXJu
ICJCbG9ja3F1b3RlIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkJyb3dzZXI6Ci0g
ICAgICAgIHJldHVybiAiQnJvd3NlciI7CisgICAgICAgIHJldHVybiAiQnJvd3NlciJfczsKICAg
ICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpCdXN5SW5kaWNhdG9yOgotICAgICAgICByZXR1cm4g
IkJ1c3lJbmRpY2F0b3IiOworICAgICAgICByZXR1cm4gIkJ1c3lJbmRpY2F0b3IiX3M7CiAgICAg
Y2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QnV0dG9uOgotICAgICAgICByZXR1cm4gIkJ1dHRvbiI7
CisgICAgICAgIHJldHVybiAiQnV0dG9uIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6
OkNhbnZhczoKLSAgICAgICAgcmV0dXJuICJDYW52YXMiOworICAgICAgICByZXR1cm4gIkNhbnZh
cyJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpDYXB0aW9uOgotICAgICAgICByZXR1
cm4gIkNhcHRpb24iOworICAgICAgICByZXR1cm4gIkNhcHRpb24iX3M7CiAgICAgY2FzZSBBY2Nl
c3NpYmlsaXR5Um9sZTo6Q2VsbDoKLSAgICAgICAgcmV0dXJuICJDZWxsIjsKKyAgICAgICAgcmV0
dXJuICJDZWxsIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkNoZWNrQm94OgotICAg
ICAgICByZXR1cm4gIkNoZWNrQm94IjsKKyAgICAgICAgcmV0dXJuICJDaGVja0JveCJfczsKICAg
ICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpDb2xvcldlbGw6Ci0gICAgICAgIHJldHVybiAiQ29s
b3JXZWxsIjsKKyAgICAgICAgcmV0dXJuICJDb2xvcldlbGwiX3M7CiAgICAgY2FzZSBBY2Nlc3Np
YmlsaXR5Um9sZTo6Q29sdW1uOgotICAgICAgICByZXR1cm4gIkNvbHVtbiI7CisgICAgICAgIHJl
dHVybiAiQ29sdW1uIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkNvbHVtbkhlYWRl
cjoKLSAgICAgICAgcmV0dXJuICJDb2x1bW5IZWFkZXIiOworICAgICAgICByZXR1cm4gIkNvbHVt
bkhlYWRlciJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpDb21ib0JveDoKLSAgICAg
ICAgcmV0dXJuICJDb21ib0JveCI7CisgICAgICAgIHJldHVybiAiQ29tYm9Cb3giX3M7CiAgICAg
Y2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RGVmaW5pdGlvbjoKLSAgICAgICAgcmV0dXJuICJEZWZp
bml0aW9uIjsKKyAgICAgICAgcmV0dXJuICJEZWZpbml0aW9uIl9zOwogICAgIGNhc2UgQWNjZXNz
aWJpbGl0eVJvbGU6OkRlbGV0aW9uOgotICAgICAgICByZXR1cm4gIkRlbGV0aW9uIjsKKyAgICAg
ICAgcmV0dXJuICJEZWxldGlvbiJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpEZXNj
cmlwdGlvbkxpc3Q6Ci0gICAgICAgIHJldHVybiAiRGVzY3JpcHRpb25MaXN0IjsKKyAgICAgICAg
cmV0dXJuICJEZXNjcmlwdGlvbkxpc3QiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6
RGVzY3JpcHRpb25MaXN0VGVybToKLSAgICAgICAgcmV0dXJuICJEZXNjcmlwdGlvbkxpc3RUZXJt
IjsKKyAgICAgICAgcmV0dXJuICJEZXNjcmlwdGlvbkxpc3RUZXJtIl9zOwogICAgIGNhc2UgQWNj
ZXNzaWJpbGl0eVJvbGU6OkRlc2NyaXB0aW9uTGlzdERldGFpbDoKLSAgICAgICAgcmV0dXJuICJE
ZXNjcmlwdGlvbkxpc3REZXRhaWwiOworICAgICAgICByZXR1cm4gIkRlc2NyaXB0aW9uTGlzdERl
dGFpbCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpEZXRhaWxzOgotICAgICAgICBy
ZXR1cm4gIkRldGFpbHMiOworICAgICAgICByZXR1cm4gIkRldGFpbHMiX3M7CiAgICAgY2FzZSBB
Y2Nlc3NpYmlsaXR5Um9sZTo6RGlyZWN0b3J5OgotICAgICAgICByZXR1cm4gIkRpcmVjdG9yeSI7
CisgICAgICAgIHJldHVybiAiRGlyZWN0b3J5Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJv
bGU6OkRpc2Nsb3N1cmVUcmlhbmdsZToKLSAgICAgICAgcmV0dXJuICJEaXNjbG9zdXJlVHJpYW5n
bGUiOworICAgICAgICByZXR1cm4gIkRpc2Nsb3N1cmVUcmlhbmdsZSJfczsKICAgICBjYXNlIEFj
Y2Vzc2liaWxpdHlSb2xlOjpEaXY6Ci0gICAgICAgIHJldHVybiAiRGl2IjsKKyAgICAgICAgcmV0
dXJuICJEaXYiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RG9jdW1lbnQ6Ci0gICAg
ICAgIHJldHVybiAiRG9jdW1lbnQiOworICAgICAgICByZXR1cm4gIkRvY3VtZW50Il9zOwogICAg
IGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRvY3VtZW50QXJ0aWNsZToKLSAgICAgICAgcmV0dXJu
ICJEb2N1bWVudEFydGljbGUiOworICAgICAgICByZXR1cm4gIkRvY3VtZW50QXJ0aWNsZSJfczsK
ICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpEb2N1bWVudE1hdGg6Ci0gICAgICAgIHJldHVy
biAiRG9jdW1lbnRNYXRoIjsKKyAgICAgICAgcmV0dXJuICJEb2N1bWVudE1hdGgiX3M7CiAgICAg
Y2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RG9jdW1lbnROb3RlOgotICAgICAgICByZXR1cm4gIkRv
Y3VtZW50Tm90ZSI7CisgICAgICAgIHJldHVybiAiRG9jdW1lbnROb3RlIl9zOwogICAgIGNhc2Ug
QWNjZXNzaWJpbGl0eVJvbGU6OkRyYXdlcjoKLSAgICAgICAgcmV0dXJuICJEcmF3ZXIiOworICAg
ICAgICByZXR1cm4gIkRyYXdlciJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpFZGl0
YWJsZVRleHQ6Ci0gICAgICAgIHJldHVybiAiRWRpdGFibGVUZXh0IjsKKyAgICAgICAgcmV0dXJu
ICJFZGl0YWJsZVRleHQiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RmVlZDoKLSAg
ICAgICAgcmV0dXJuICJGZWVkIjsKKyAgICAgICAgcmV0dXJuICJGZWVkIl9zOwogICAgIGNhc2Ug
QWNjZXNzaWJpbGl0eVJvbGU6OkZpZ3VyZToKLSAgICAgICAgcmV0dXJuICJGaWd1cmUiOworICAg
ICAgICByZXR1cm4gIkZpZ3VyZSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpGb290
ZXI6Ci0gICAgICAgIHJldHVybiAiRm9vdGVyIjsKKyAgICAgICAgcmV0dXJuICJGb290ZXIiX3M7
CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6Rm9vdG5vdGU6Ci0gICAgICAgIHJldHVybiAi
Rm9vdG5vdGUiOworICAgICAgICByZXR1cm4gIkZvb3Rub3RlIl9zOwogICAgIGNhc2UgQWNjZXNz
aWJpbGl0eVJvbGU6OkZvcm06Ci0gICAgICAgIHJldHVybiAiRm9ybSI7CisgICAgICAgIHJldHVy
biAiRm9ybSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpHcmFwaGljc0RvY3VtZW50
OgotICAgICAgICByZXR1cm4gIkdyYXBoaWNzRG9jdW1lbnQiOworICAgICAgICByZXR1cm4gIkdy
YXBoaWNzRG9jdW1lbnQiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6R3JhcGhpY3NP
YmplY3Q6Ci0gICAgICAgIHJldHVybiAiR3JhcGhpY3NPYmplY3QiOworICAgICAgICByZXR1cm4g
IkdyYXBoaWNzT2JqZWN0Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkdyYXBoaWNz
U3ltYm9sOgotICAgICAgICByZXR1cm4gIkdyYXBoaWNzU3ltYm9sIjsKKyAgICAgICAgcmV0dXJu
ICJHcmFwaGljc1N5bWJvbCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpHcmlkOgot
ICAgICAgICByZXR1cm4gIkdyaWQiOworICAgICAgICByZXR1cm4gIkdyaWQiX3M7CiAgICAgY2Fz
ZSBBY2Nlc3NpYmlsaXR5Um9sZTo6R3JpZENlbGw6Ci0gICAgICAgIHJldHVybiAiR3JpZENlbGwi
OworICAgICAgICByZXR1cm4gIkdyaWRDZWxsIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJv
bGU6Okdyb3VwOgotICAgICAgICByZXR1cm4gIkdyb3VwIjsKKyAgICAgICAgcmV0dXJuICJHcm91
cCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpHcm93QXJlYToKLSAgICAgICAgcmV0
dXJuICJHcm93QXJlYSI7CisgICAgICAgIHJldHVybiAiR3Jvd0FyZWEiX3M7CiAgICAgY2FzZSBB
Y2Nlc3NpYmlsaXR5Um9sZTo6SGVhZGluZzoKLSAgICAgICAgcmV0dXJuICJIZWFkaW5nIjsKKyAg
ICAgICAgcmV0dXJuICJIZWFkaW5nIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Okhl
bHBUYWc6Ci0gICAgICAgIHJldHVybiAiSGVscFRhZyI7CisgICAgICAgIHJldHVybiAiSGVscFRh
ZyJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpIb3Jpem9udGFsUnVsZToKLSAgICAg
ICAgcmV0dXJuICJIb3Jpem9udGFsUnVsZSI7CisgICAgICAgIHJldHVybiAiSG9yaXpvbnRhbFJ1
bGUiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6SWdub3JlZDoKLSAgICAgICAgcmV0
dXJuICJJZ25vcmVkIjsKKyAgICAgICAgcmV0dXJuICJJZ25vcmVkIl9zOwogICAgIGNhc2UgQWNj
ZXNzaWJpbGl0eVJvbGU6OklubGluZToKLSAgICAgICAgcmV0dXJuICJJbmxpbmUiOworICAgICAg
ICByZXR1cm4gIklubGluZSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpJbWFnZToK
LSAgICAgICAgcmV0dXJuICJJbWFnZSI7CisgICAgICAgIHJldHVybiAiSW1hZ2UiX3M7CiAgICAg
Y2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6SW1hZ2VNYXA6Ci0gICAgICAgIHJldHVybiAiSW1hZ2VN
YXAiOworICAgICAgICByZXR1cm4gIkltYWdlTWFwIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0
eVJvbGU6OkltYWdlTWFwTGluazoKLSAgICAgICAgcmV0dXJuICJJbWFnZU1hcExpbmsiOworICAg
ICAgICByZXR1cm4gIkltYWdlTWFwTGluayJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xl
OjpJbmNyZW1lbnRvcjoKLSAgICAgICAgcmV0dXJuICJJbmNyZW1lbnRvciI7CisgICAgICAgIHJl
dHVybiAiSW5jcmVtZW50b3IiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6SW5zZXJ0
aW9uOgotICAgICAgICByZXR1cm4gIkluc2VydGlvbiI7CisgICAgICAgIHJldHVybiAiSW5zZXJ0
aW9uIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkxhYmVsOgotICAgICAgICByZXR1
cm4gIkxhYmVsIjsKKyAgICAgICAgcmV0dXJuICJMYWJlbCJfczsKICAgICBjYXNlIEFjY2Vzc2li
aWxpdHlSb2xlOjpMYW5kbWFya0Jhbm5lcjoKLSAgICAgICAgcmV0dXJuICJMYW5kbWFya0Jhbm5l
ciI7CisgICAgICAgIHJldHVybiAiTGFuZG1hcmtCYW5uZXIiX3M7CiAgICAgY2FzZSBBY2Nlc3Np
YmlsaXR5Um9sZTo6TGFuZG1hcmtDb21wbGVtZW50YXJ5OgotICAgICAgICByZXR1cm4gIkxhbmRt
YXJrQ29tcGxlbWVudGFyeSI7CisgICAgICAgIHJldHVybiAiTGFuZG1hcmtDb21wbGVtZW50YXJ5
Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJrQ29udGVudEluZm86Ci0g
ICAgICAgIHJldHVybiAiTGFuZG1hcmtDb250ZW50SW5mbyI7CisgICAgICAgIHJldHVybiAiTGFu
ZG1hcmtDb250ZW50SW5mbyJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpMYW5kbWFy
a0RvY1JlZ2lvbjoKLSAgICAgICAgcmV0dXJuICJMYW5kbWFya0RvY1JlZ2lvbiI7CisgICAgICAg
IHJldHVybiAiTGFuZG1hcmtEb2NSZWdpb24iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9s
ZTo6TGFuZG1hcmtNYWluOgotICAgICAgICByZXR1cm4gIkxhbmRtYXJrTWFpbiI7CisgICAgICAg
IHJldHVybiAiTGFuZG1hcmtNYWluIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Okxh
bmRtYXJrTmF2aWdhdGlvbjoKLSAgICAgICAgcmV0dXJuICJMYW5kbWFya05hdmlnYXRpb24iOwor
ICAgICAgICByZXR1cm4gIkxhbmRtYXJrTmF2aWdhdGlvbiJfczsKICAgICBjYXNlIEFjY2Vzc2li
aWxpdHlSb2xlOjpMYW5kbWFya1JlZ2lvbjoKLSAgICAgICAgcmV0dXJuICJMYW5kbWFya1JlZ2lv
biI7CisgICAgICAgIHJldHVybiAiTGFuZG1hcmtSZWdpb24iX3M7CiAgICAgY2FzZSBBY2Nlc3Np
YmlsaXR5Um9sZTo6TGFuZG1hcmtTZWFyY2g6Ci0gICAgICAgIHJldHVybiAiTGFuZG1hcmtTZWFy
Y2giOworICAgICAgICByZXR1cm4gIkxhbmRtYXJrU2VhcmNoIl9zOwogICAgIGNhc2UgQWNjZXNz
aWJpbGl0eVJvbGU6OkxlZ2VuZDoKLSAgICAgICAgcmV0dXJuICJMZWdlbmQiOworICAgICAgICBy
ZXR1cm4gIkxlZ2VuZCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpMaW5rOgotICAg
ICAgICByZXR1cm4gIkxpbmsiOworICAgICAgICByZXR1cm4gIkxpbmsiX3M7CiAgICAgY2FzZSBB
Y2Nlc3NpYmlsaXR5Um9sZTo6TGlzdDoKLSAgICAgICAgcmV0dXJuICJMaXN0IjsKKyAgICAgICAg
cmV0dXJuICJMaXN0Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Okxpc3RCb3g6Ci0g
ICAgICAgIHJldHVybiAiTGlzdEJveCI7CisgICAgICAgIHJldHVybiAiTGlzdEJveCJfczsKICAg
ICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpMaXN0Qm94T3B0aW9uOgotICAgICAgICByZXR1cm4g
Ikxpc3RCb3hPcHRpb24iOworICAgICAgICByZXR1cm4gIkxpc3RCb3hPcHRpb24iX3M7CiAgICAg
Y2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGlzdEl0ZW06Ci0gICAgICAgIHJldHVybiAiTGlzdEl0
ZW0iOworICAgICAgICByZXR1cm4gIkxpc3RJdGVtIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0
eVJvbGU6Okxpc3RNYXJrZXI6Ci0gICAgICAgIHJldHVybiAiTGlzdE1hcmtlciI7CisgICAgICAg
IHJldHVybiAiTGlzdE1hcmtlciJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpNYXJr
OgotICAgICAgICByZXR1cm4gIk1hcmsiOworICAgICAgICByZXR1cm4gIk1hcmsiX3M7CiAgICAg
Y2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TWF0aEVsZW1lbnQ6Ci0gICAgICAgIHJldHVybiAiTWF0
aEVsZW1lbnQiOworICAgICAgICByZXR1cm4gIk1hdGhFbGVtZW50Il9zOwogICAgIGNhc2UgQWNj
ZXNzaWJpbGl0eVJvbGU6Ok1hdHRlOgotICAgICAgICByZXR1cm4gIk1hdHRlIjsKKyAgICAgICAg
cmV0dXJuICJNYXR0ZSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpNZW51OgotICAg
ICAgICByZXR1cm4gIk1lbnUiOworICAgICAgICByZXR1cm4gIk1lbnUiX3M7CiAgICAgY2FzZSBB
Y2Nlc3NpYmlsaXR5Um9sZTo6TWVudUJhcjoKLSAgICAgICAgcmV0dXJuICJNZW51QmFyIjsKKyAg
ICAgICAgcmV0dXJuICJNZW51QmFyIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Ok1l
bnVCdXR0b246Ci0gICAgICAgIHJldHVybiAiTWVudUJ1dHRvbiI7CisgICAgICAgIHJldHVybiAi
TWVudUJ1dHRvbiJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpNZW51SXRlbToKLSAg
ICAgICAgcmV0dXJuICJNZW51SXRlbSI7CisgICAgICAgIHJldHVybiAiTWVudUl0ZW0iX3M7CiAg
ICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TWVudUl0ZW1DaGVja2JveDoKLSAgICAgICAgcmV0
dXJuICJNZW51SXRlbUNoZWNrYm94IjsKKyAgICAgICAgcmV0dXJuICJNZW51SXRlbUNoZWNrYm94
Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Ok1lbnVJdGVtUmFkaW86Ci0gICAgICAg
IHJldHVybiAiTWVudUl0ZW1SYWRpbyI7CisgICAgICAgIHJldHVybiAiTWVudUl0ZW1SYWRpbyJf
czsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpNZW51TGlzdFBvcHVwOgotICAgICAgICBy
ZXR1cm4gIk1lbnVMaXN0UG9wdXAiOworICAgICAgICByZXR1cm4gIk1lbnVMaXN0UG9wdXAiX3M7
CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TWVudUxpc3RPcHRpb246Ci0gICAgICAgIHJl
dHVybiAiTWVudUxpc3RPcHRpb24iOworICAgICAgICByZXR1cm4gIk1lbnVMaXN0T3B0aW9uIl9z
OwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Ok1ldGVyOgotICAgICAgICByZXR1cm4gIk1l
dGVyIjsKKyAgICAgICAgcmV0dXJuICJNZXRlciJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlS
b2xlOjpNb2RlbDoKLSAgICAgICAgcmV0dXJuICJNb2RlbCI7CisgICAgICAgIHJldHVybiAiTW9k
ZWwiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6T3V0bGluZToKLSAgICAgICAgcmV0
dXJuICJPdXRsaW5lIjsKKyAgICAgICAgcmV0dXJuICJPdXRsaW5lIl9zOwogICAgIGNhc2UgQWNj
ZXNzaWJpbGl0eVJvbGU6OlBhcmFncmFwaDoKLSAgICAgICAgcmV0dXJuICJQYXJhZ3JhcGgiOwor
ICAgICAgICByZXR1cm4gIlBhcmFncmFwaCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xl
OjpQb3BVcEJ1dHRvbjoKLSAgICAgICAgcmV0dXJuICJQb3BVcEJ1dHRvbiI7CisgICAgICAgIHJl
dHVybiAiUG9wVXBCdXR0b24iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6UHJlOgot
ICAgICAgICByZXR1cm4gIlByZSI7CisgICAgICAgIHJldHVybiAiUHJlIl9zOwogICAgIGNhc2Ug
QWNjZXNzaWJpbGl0eVJvbGU6OlByZXNlbnRhdGlvbmFsOgotICAgICAgICByZXR1cm4gIlByZXNl
bnRhdGlvbmFsIjsKKyAgICAgICAgcmV0dXJuICJQcmVzZW50YXRpb25hbCJfczsKICAgICBjYXNl
IEFjY2Vzc2liaWxpdHlSb2xlOjpQcm9ncmVzc0luZGljYXRvcjoKLSAgICAgICAgcmV0dXJuICJQ
cm9ncmVzc0luZGljYXRvciI7CisgICAgICAgIHJldHVybiAiUHJvZ3Jlc3NJbmRpY2F0b3IiX3M7
CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6UmFkaW9CdXR0b246Ci0gICAgICAgIHJldHVy
biAiUmFkaW9CdXR0b24iOworICAgICAgICByZXR1cm4gIlJhZGlvQnV0dG9uIl9zOwogICAgIGNh
c2UgQWNjZXNzaWJpbGl0eVJvbGU6OlJhZGlvR3JvdXA6Ci0gICAgICAgIHJldHVybiAiUmFkaW9H
cm91cCI7CisgICAgICAgIHJldHVybiAiUmFkaW9Hcm91cCJfczsKICAgICBjYXNlIEFjY2Vzc2li
aWxpdHlSb2xlOjpSb3dIZWFkZXI6Ci0gICAgICAgIHJldHVybiAiUm93SGVhZGVyIjsKKyAgICAg
ICAgcmV0dXJuICJSb3dIZWFkZXIiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6Um93
OgotICAgICAgICByZXR1cm4gIlJvdyI7CisgICAgICAgIHJldHVybiAiUm93Il9zOwogICAgIGNh
c2UgQWNjZXNzaWJpbGl0eVJvbGU6OlJvd0dyb3VwOgotICAgICAgICByZXR1cm4gIlJvd0dyb3Vw
IjsKKyAgICAgICAgcmV0dXJuICJSb3dHcm91cCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlS
b2xlOjpSdWJ5QmFzZToKLSAgICAgICAgcmV0dXJuICJSdWJ5QmFzZSI7CisgICAgICAgIHJldHVy
biAiUnVieUJhc2UiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6UnVieUJsb2NrOgot
ICAgICAgICByZXR1cm4gIlJ1YnlCbG9jayI7CisgICAgICAgIHJldHVybiAiUnVieUJsb2NrIl9z
OwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlJ1YnlJbmxpbmU6Ci0gICAgICAgIHJldHVy
biAiUnVieUlubGluZSI7CisgICAgICAgIHJldHVybiAiUnVieUlubGluZSJfczsKICAgICBjYXNl
IEFjY2Vzc2liaWxpdHlSb2xlOjpSdWJ5UnVuOgotICAgICAgICByZXR1cm4gIlJ1YnlSdW4iOwor
ICAgICAgICByZXR1cm4gIlJ1YnlSdW4iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6
UnVieVRleHQ6Ci0gICAgICAgIHJldHVybiAiUnVieVRleHQiOworICAgICAgICByZXR1cm4gIlJ1
YnlUZXh0Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlJ1bGVyOgotICAgICAgICBy
ZXR1cm4gIlJ1bGVyIjsKKyAgICAgICAgcmV0dXJuICJSdWxlciJfczsKICAgICBjYXNlIEFjY2Vz
c2liaWxpdHlSb2xlOjpSdWxlck1hcmtlcjoKLSAgICAgICAgcmV0dXJuICJSdWxlck1hcmtlciI7
CisgICAgICAgIHJldHVybiAiUnVsZXJNYXJrZXIiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5
Um9sZTo6U2Nyb2xsQXJlYToKLSAgICAgICAgcmV0dXJuICJTY3JvbGxBcmVhIjsKKyAgICAgICAg
cmV0dXJuICJTY3JvbGxBcmVhIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlNjcm9s
bEJhcjoKLSAgICAgICAgcmV0dXJuICJTY3JvbGxCYXIiOworICAgICAgICByZXR1cm4gIlNjcm9s
bEJhciJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpTZWFyY2hGaWVsZDoKLSAgICAg
ICAgcmV0dXJuICJTZWFyY2hGaWVsZCI7CisgICAgICAgIHJldHVybiAiU2VhcmNoRmllbGQiX3M7
CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6U2hlZXQ6Ci0gICAgICAgIHJldHVybiAiU2hl
ZXQiOworICAgICAgICByZXR1cm4gIlNoZWV0Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJv
bGU6OlNsaWRlcjoKLSAgICAgICAgcmV0dXJuICJTbGlkZXIiOworICAgICAgICByZXR1cm4gIlNs
aWRlciJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpTbGlkZXJUaHVtYjoKLSAgICAg
ICAgcmV0dXJuICJTbGlkZXJUaHVtYiI7CisgICAgICAgIHJldHVybiAiU2xpZGVyVGh1bWIiX3M7
CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6U3BpbkJ1dHRvbjoKLSAgICAgICAgcmV0dXJu
ICJTcGluQnV0dG9uIjsKKyAgICAgICAgcmV0dXJuICJTcGluQnV0dG9uIl9zOwogICAgIGNhc2Ug
QWNjZXNzaWJpbGl0eVJvbGU6OlNwaW5CdXR0b25QYXJ0OgotICAgICAgICByZXR1cm4gIlNwaW5C
dXR0b25QYXJ0IjsKKyAgICAgICAgcmV0dXJuICJTcGluQnV0dG9uUGFydCJfczsKICAgICBjYXNl
IEFjY2Vzc2liaWxpdHlSb2xlOjpTcGxpdEdyb3VwOgotICAgICAgICByZXR1cm4gIlNwbGl0R3Jv
dXAiOworICAgICAgICByZXR1cm4gIlNwbGl0R3JvdXAiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmls
aXR5Um9sZTo6U3BsaXR0ZXI6Ci0gICAgICAgIHJldHVybiAiU3BsaXR0ZXIiOworICAgICAgICBy
ZXR1cm4gIlNwbGl0dGVyIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlN0YXRpY1Rl
eHQ6Ci0gICAgICAgIHJldHVybiAiU3RhdGljVGV4dCI7CisgICAgICAgIHJldHVybiAiU3RhdGlj
VGV4dCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpTdWJzY3JpcHQ6Ci0gICAgICAg
IHJldHVybiAiU3Vic2NyaXB0IjsKKyAgICAgICAgcmV0dXJuICJTdWJzY3JpcHQiX3M7CiAgICAg
Y2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6U3VtbWFyeToKLSAgICAgICAgcmV0dXJuICJTdW1tYXJ5
IjsKKyAgICAgICAgcmV0dXJuICJTdW1tYXJ5Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJv
bGU6OlN1cGVyc2NyaXB0OgotICAgICAgICByZXR1cm4gIlN1cGVyc2NyaXB0IjsKKyAgICAgICAg
cmV0dXJuICJTdXBlcnNjcmlwdCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpTd2l0
Y2g6Ci0gICAgICAgIHJldHVybiAiU3dpdGNoIjsKKyAgICAgICAgcmV0dXJuICJTd2l0Y2giX3M7
CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6U3lzdGVtV2lkZToKLSAgICAgICAgcmV0dXJu
ICJTeXN0ZW1XaWRlIjsKKyAgICAgICAgcmV0dXJuICJTeXN0ZW1XaWRlIl9zOwogICAgIGNhc2Ug
QWNjZXNzaWJpbGl0eVJvbGU6OlNWR1Jvb3Q6Ci0gICAgICAgIHJldHVybiAiU1ZHUm9vdCI7Cisg
ICAgICAgIHJldHVybiAiU1ZHUm9vdCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpT
VkdUZXh0OgotICAgICAgICByZXR1cm4gIlNWR1RleHQiOworICAgICAgICByZXR1cm4gIlNWR1Rl
eHQiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6U1ZHVFNwYW46Ci0gICAgICAgIHJl
dHVybiAiU1ZHVFNwYW4iOworICAgICAgICByZXR1cm4gIlNWR1RTcGFuIl9zOwogICAgIGNhc2Ug
QWNjZXNzaWJpbGl0eVJvbGU6OlNWR1RleHRQYXRoOgotICAgICAgICByZXR1cm4gIlNWR1RleHRQ
YXRoIjsKKyAgICAgICAgcmV0dXJuICJTVkdUZXh0UGF0aCJfczsKICAgICBjYXNlIEFjY2Vzc2li
aWxpdHlSb2xlOjpUYWJHcm91cDoKLSAgICAgICAgcmV0dXJuICJUYWJHcm91cCI7CisgICAgICAg
IHJldHVybiAiVGFiR3JvdXAiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VGFiTGlz
dDoKLSAgICAgICAgcmV0dXJuICJUYWJMaXN0IjsKKyAgICAgICAgcmV0dXJuICJUYWJMaXN0Il9z
OwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlRhYlBhbmVsOgotICAgICAgICByZXR1cm4g
IlRhYlBhbmVsIjsKKyAgICAgICAgcmV0dXJuICJUYWJQYW5lbCJfczsKICAgICBjYXNlIEFjY2Vz
c2liaWxpdHlSb2xlOjpUYWI6Ci0gICAgICAgIHJldHVybiAiVGFiIjsKKyAgICAgICAgcmV0dXJu
ICJUYWIiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VGFibGU6Ci0gICAgICAgIHJl
dHVybiAiVGFibGUiOworICAgICAgICByZXR1cm4gIlRhYmxlIl9zOwogICAgIGNhc2UgQWNjZXNz
aWJpbGl0eVJvbGU6OlRhYmxlSGVhZGVyQ29udGFpbmVyOgotICAgICAgICByZXR1cm4gIlRhYmxl
SGVhZGVyQ29udGFpbmVyIjsKKyAgICAgICAgcmV0dXJuICJUYWJsZUhlYWRlckNvbnRhaW5lciJf
czsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpUZXJtOgotICAgICAgICByZXR1cm4gIlRl
cm0iOworICAgICAgICByZXR1cm4gIlRlcm0iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9s
ZTo6VGV4dEFyZWE6Ci0gICAgICAgIHJldHVybiAiVGV4dEFyZWEiOworICAgICAgICByZXR1cm4g
IlRleHRBcmVhIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlRleHRGaWVsZDoKLSAg
ICAgICAgcmV0dXJuICJUZXh0RmllbGQiOworICAgICAgICByZXR1cm4gIlRleHRGaWVsZCJfczsK
ICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpUZXh0R3JvdXA6Ci0gICAgICAgIHJldHVybiAi
VGV4dEdyb3VwIjsKKyAgICAgICAgcmV0dXJuICJUZXh0R3JvdXAiX3M7CiAgICAgY2FzZSBBY2Nl
c3NpYmlsaXR5Um9sZTo6VGltZToKLSAgICAgICAgcmV0dXJuICJUaW1lIjsKKyAgICAgICAgcmV0
dXJuICJUaW1lIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlRyZWU6Ci0gICAgICAg
IHJldHVybiAiVHJlZSI7CisgICAgICAgIHJldHVybiAiVHJlZSJfczsKICAgICBjYXNlIEFjY2Vz
c2liaWxpdHlSb2xlOjpUcmVlR3JpZDoKLSAgICAgICAgcmV0dXJuICJUcmVlR3JpZCI7CisgICAg
ICAgIHJldHVybiAiVHJlZUdyaWQiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VHJl
ZUl0ZW06Ci0gICAgICAgIHJldHVybiAiVHJlZUl0ZW0iOworICAgICAgICByZXR1cm4gIlRyZWVJ
dGVtIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlRvZ2dsZUJ1dHRvbjoKLSAgICAg
ICAgcmV0dXJuICJUb2dnbGVCdXR0b24iOworICAgICAgICByZXR1cm4gIlRvZ2dsZUJ1dHRvbiJf
czsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpUb29sYmFyOgotICAgICAgICByZXR1cm4g
IlRvb2xiYXIiOworICAgICAgICByZXR1cm4gIlRvb2xiYXIiX3M7CiAgICAgY2FzZSBBY2Nlc3Np
YmlsaXR5Um9sZTo6VW5rbm93bjoKLSAgICAgICAgcmV0dXJuICJVbmtub3duIjsKKyAgICAgICAg
cmV0dXJuICJVbmtub3duIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlVzZXJJbnRl
cmZhY2VUb29sdGlwOgotICAgICAgICByZXR1cm4gIlVzZXJJbnRlcmZhY2VUb29sdGlwIjsKKyAg
ICAgICAgcmV0dXJuICJVc2VySW50ZXJmYWNlVG9vbHRpcCJfczsKICAgICBjYXNlIEFjY2Vzc2li
aWxpdHlSb2xlOjpWYWx1ZUluZGljYXRvcjoKLSAgICAgICAgcmV0dXJuICJWYWx1ZUluZGljYXRv
ciI7CisgICAgICAgIHJldHVybiAiVmFsdWVJbmRpY2F0b3IiX3M7CiAgICAgY2FzZSBBY2Nlc3Np
YmlsaXR5Um9sZTo6VmlkZW86Ci0gICAgICAgIHJldHVybiAiVmlkZW8iOworICAgICAgICByZXR1
cm4gIlZpZGVvIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OldlYkFwcGxpY2F0aW9u
OgotICAgICAgICByZXR1cm4gIldlYkFwcGxpY2F0aW9uIjsKKyAgICAgICAgcmV0dXJuICJXZWJB
cHBsaWNhdGlvbiJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpXZWJBcmVhOgotICAg
ICAgICByZXR1cm4gIldlYkFyZWEiOworICAgICAgICByZXR1cm4gIldlYkFyZWEiX3M7CiAgICAg
Y2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6V2ViQ29yZUxpbms6Ci0gICAgICAgIHJldHVybiAiV2Vi
Q29yZUxpbmsiOworICAgICAgICByZXR1cm4gIldlYkNvcmVMaW5rIl9zOwogICAgIGNhc2UgQWNj
ZXNzaWJpbGl0eVJvbGU6OldpbmRvdzoKLSAgICAgICAgcmV0dXJuICJXaW5kb3ciOworICAgICAg
ICByZXR1cm4gIldpbmRvdyJfczsKICAgICB9CiAgICAgVU5SRUFDSEFCTEUoKTsKLSAgICByZXR1
cm4gIiI7CisgICAgcmV0dXJuICIiX3M7CiB9CiAKIGVudW0gY2xhc3MgQWNjZXNzaWJpbGl0eURl
dGFjaG1lbnRUeXBlIHsgQ2FjaGVEZXN0cm95ZWQsIEVsZW1lbnREZXN0cm95ZWQsIEVsZW1lbnRD
aGFuZ2VkIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0LmNwcAppbmRleCA0NDIyOTU1YTM4NjVkYmM1ZGQ3MjM1
NGNiYmZiZjIwMjc2NzE1YjA2Li5hNmQzMTAyYzg4MmE2MDk4ZjQ3OTJiN2JjZDA2YmEyNmQ0Mjg3
ZDhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eVJlbmRlck9iamVjdC5jcHAKQEAgLTI3ODcsMTEgKzI3ODcsMTEgQEAgYm9vbCBB
Y2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpyZW5kZXJPYmplY3RJc09ic2VydmFibGUoUmVuZGVy
T2JqZWN0JiByZW5kZXJlcikKICAgICBpZiAoIW5vZGUpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICAKLSAgICBpZiAobm9kZUhhc1JvbGUobm9kZSwgImxpc3Rib3giKSB8fCAoaXM8UmVuZGVy
Qm94TW9kZWxPYmplY3Q+KHJlbmRlcmVyKSAmJiBkb3duY2FzdDxSZW5kZXJCb3hNb2RlbE9iamVj
dD4ocmVuZGVyZXIpLmlzTGlzdEJveCgpKSkKKyAgICBpZiAobm9kZUhhc1JvbGUobm9kZSwgImxp
c3Rib3giX3MpIHx8IChpczxSZW5kZXJCb3hNb2RlbE9iamVjdD4ocmVuZGVyZXIpICYmIGRvd25j
YXN0PFJlbmRlckJveE1vZGVsT2JqZWN0PihyZW5kZXJlcikuaXNMaXN0Qm94KCkpKQogICAgICAg
ICByZXR1cm4gdHJ1ZTsKIAogICAgIC8vIFRleHRib3hlcyBzaG91bGQgc2VuZCBvdXQgbm90aWZp
Y2F0aW9ucy4KLSAgICBpZiAobm9kZUhhc1JvbGUobm9kZSwgInRleHRib3giKSB8fCAoaXM8RWxl
bWVudD4oKm5vZGUpICYmIGNvbnRlbnRFZGl0YWJsZUF0dHJpYnV0ZUlzRW5hYmxlZChkb3duY2Fz
dDxFbGVtZW50Pihub2RlKSkpKQorICAgIGlmIChub2RlSGFzUm9sZShub2RlLCAidGV4dGJveCJf
cykgfHwgKGlzPEVsZW1lbnQ+KCpub2RlKSAmJiBjb250ZW50RWRpdGFibGVBdHRyaWJ1dGVJc0Vu
YWJsZWQoZG93bmNhc3Q8RWxlbWVudD4obm9kZSkpKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgCiAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMjg0MCw3ICsyODQwLDcgQEAgYm9vbCBBY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0OjpzaG91bGRJZ25vcmVBdHRyaWJ1dGVSb2xlKCkgY29uc3QKIAog
QWNjZXNzaWJpbGl0eVJvbGUgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6ZGV0ZXJtaW5lQWNj
ZXNzaWJpbGl0eVJvbGUoKQogewotICAgIEFYVFJBQ0UoIkFjY2Vzc2liaWxpdHlSZW5kZXJPYmpl
Y3Q6OmRldGVybWluZUFjY2Vzc2liaWxpdHlSb2xlIik7CisgICAgQVhUUkFDRSgiQWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdDo6ZGV0ZXJtaW5lQWNjZXNzaWJpbGl0eVJvbGUiX3MpOwogICAgIGlm
ICghbV9yZW5kZXJlcikKICAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlSb2xlOjpVbmtub3du
OwogCkBAIC0zMjgwLDcgKzMyODAsNyBAQCB2b2lkIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6
OmFkZExpc3RJdGVtTWFya2VyKCkKIAogdm9pZCBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojp1
cGRhdGVSb2xlQWZ0ZXJDaGlsZHJlbkNyZWF0aW9uKCkKIHsKLSAgICBBWFRSQUNFKCJBY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0Ojp1cGRhdGVSb2xlQWZ0ZXJDaGlsZHJlbkNyZWF0aW9uIik7Cisg
ICAgQVhUUkFDRSgiQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6dXBkYXRlUm9sZUFmdGVyQ2hp
bGRyZW5DcmVhdGlvbiJfcyk7CiAgICAgLy8gSWYgYSBtZW51IGRvZXMgbm90IGhhdmUgdmFsaWQg
bWVudWl0ZW0gY2hpbGRyZW4sIGl0IHNob3VsZCBub3QgYmUgZXhwb3NlZCBhcyBhIG1lbnUuCiAg
ICAgYXV0byByb2xlID0gcm9sZVZhbHVlKCk7CiAgICAgaWYgKHJvbGUgPT0gQWNjZXNzaWJpbGl0
eVJvbGU6Ok1lbnUpIHsKQEAgLTMzNjQsNyArMzM2NCw3IEBAIGNvbnN0IFN0cmluZyBBY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0OjpsaXZlUmVnaW9uUmVsZXZhbnQoKSBjb25zdAogCiAgICAgLy8g
RGVmYXVsdCBhcmlhLXJlbGV2YW50ID0gImFkZGl0aW9ucyB0ZXh0Ii4KICAgICBpZiAocmVsZXZh
bnQuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gImFkZGl0aW9ucyB0ZXh0IjsKKyAgICAgICAg
cmV0dXJuICJhZGRpdGlvbnMgdGV4dCJfczsKICAgICAKICAgICByZXR1cm4gcmVsZXZhbnQ7CiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlU
YWJsZUNlbGwuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5
VGFibGVDZWxsLmNwcAppbmRleCAyN2NmODY5ZjRkNTc3MWM5ODRiMmJlM2Y0NjEyNmI5ODc3YjYw
MDE1Li4zNGE3YmE3Y2NkYjRlNTNhYTU1NDYxOTgwZjE1NGQzODhjMmFmNDNlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJsZUNlbGwuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlQ2Vs
bC5jcHAKQEAgLTY1LDcgKzY1LDcgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5VGFibGVDZWxsOjpjb21w
dXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCgpIGNvbnN0CiAgICAgCiAgICAgLy8gSWdub3JlIGFu
b255bW91cyB0YWJsZSBjZWxscyBhcyBsb25nIGFzIHRoZXkncmUgbm90IGluIGEgdGFibGUgKGll
LiB3aGVuIGRpc3BsYXk6dGFibGUgaXMgdXNlZCkuCiAgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJU
YWJsZSA9IGlzPFJlbmRlclRhYmxlQ2VsbD4ocmVuZGVyZXIoKSkgPyBkb3duY2FzdDxSZW5kZXJU
YWJsZUNlbGw+KCptX3JlbmRlcmVyKS50YWJsZSgpIDogbnVsbHB0cjsKLSAgICBib29sIGluVGFi
bGUgPSByZW5kZXJUYWJsZSAmJiByZW5kZXJUYWJsZS0+bm9kZSgpICYmIChyZW5kZXJUYWJsZS0+
bm9kZSgpLT5oYXNUYWdOYW1lKHRhYmxlVGFnKSB8fCBub2RlSGFzUm9sZShyZW5kZXJUYWJsZS0+
bm9kZSgpLCAiZ3JpZCIpKTsKKyAgICBib29sIGluVGFibGUgPSByZW5kZXJUYWJsZSAmJiByZW5k
ZXJUYWJsZS0+bm9kZSgpICYmIChyZW5kZXJUYWJsZS0+bm9kZSgpLT5oYXNUYWdOYW1lKHRhYmxl
VGFnKSB8fCBub2RlSGFzUm9sZShyZW5kZXJUYWJsZS0+bm9kZSgpLCAiZ3JpZCJfcykpOwogICAg
IGlmICghbm9kZSgpICYmICFpblRhYmxlKQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAg
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlU
cmVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRyZWUu
Y3BwCmluZGV4IDU5MGM5NjE1OTYwNjBkYjZkYjE1NTM4OThlYjE2ZjMwYjQ1NGU2OGQuLjFjMDBi
Yzk1NDIzZTI5NmFkNTEyNjM3N2U0ODFjN2NlNzlkZmJkMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRyZWUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRyZWUuY3BwCkBAIC02OCw3ICs2OCw3
IEBAIEFjY2Vzc2liaWxpdHlSb2xlIEFjY2Vzc2liaWxpdHlUcmVlOjpkZXRlcm1pbmVBY2Nlc3Np
YmlsaXR5Um9sZSgpCiBib29sIEFjY2Vzc2liaWxpdHlUcmVlOjpub2RlSGFzVHJlZUl0ZW1DaGls
ZChOb2RlJiBub2RlKSBjb25zdAogewogICAgIGZvciAoYXV0byogY2hpbGQgPSBub2RlLmZpcnN0
Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpIHsKLSAgICAgICAg
aWYgKG5vZGVIYXNSb2xlKGNoaWxkLCAidHJlZWl0ZW0iKSkKKyAgICAgICAgaWYgKG5vZGVIYXNS
b2xlKGNoaWxkLCAidHJlZWl0ZW0iX3MpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
fQogICAgIHJldHVybiBmYWxzZTsKQEAgLTkyLDE0ICs5MiwxNCBAQCBib29sIEFjY2Vzc2liaWxp
dHlUcmVlOjppc1RyZWVWYWxpZCgpIGNvbnN0CiAKICAgICAgICAgaWYgKCFpczxFbGVtZW50Pigq
Y2hpbGQpKQogICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIGlmIChub2RlSGFzUm9sZShj
aGlsZCwgInRyZWVpdGVtIikpCisgICAgICAgIGlmIChub2RlSGFzUm9sZShjaGlsZCwgInRyZWVp
dGVtIl9zKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBpZiAobm9kZUhhc1JvbGUo
Y2hpbGQsICJwcmVzZW50YXRpb24iKSkgeworICAgICAgICBpZiAobm9kZUhhc1JvbGUoY2hpbGQs
ICJwcmVzZW50YXRpb24iX3MpKSB7CiAgICAgICAgICAgICBpZiAoIW5vZGVIYXNUcmVlSXRlbUNo
aWxkKCpjaGlsZCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAg
Y29udGludWU7CiAgICAgICAgIH0KLSAgICAgICAgaWYgKCFub2RlSGFzUm9sZShjaGlsZCwgImdy
b3VwIikpCisgICAgICAgIGlmICghbm9kZUhhc1JvbGUoY2hpbGQsICJncm91cCJfcykpCiAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAgICAgZm9yIChhdXRvKiBncm91cENoaWxkID0g
Y2hpbGQtPmZpcnN0Q2hpbGQoKTsgZ3JvdXBDaGlsZDsgZ3JvdXBDaGlsZCA9IGdyb3VwQ2hpbGQt
Pm5leHRTaWJsaW5nKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vz
c2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwCmluZGV4IGFiMWU4OTU1
OTk5MzA1NWFmOWIxMThjNDc4NzliZWRjMTY5ODVlMTYuLjFhODFjNmZkNDRlYzVhYThiOTA2NmJj
MzVjYjg0N2VhZDdhNDlhZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxp
dHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwCkBAIC0zMDUs
NyArMzA1LDcgQEAgdm9pZCBBWElzb2xhdGVkT2JqZWN0Ojppbml0aWFsaXplQXR0cmlidXRlRGF0
YShBWENvcmVPYmplY3QmIGNvcmVPYmplY3QsIGJvb2wgaXMKICAgICAgICAgc2V0UHJvcGVydHko
QVhQcm9wZXJ0eU5hbWU6OlRleHRMZW5ndGgsIG9iamVjdC50ZXh0TGVuZ3RoKCkpOwogCiAgICAg
aWYgKG9iamVjdC5pc1JhZGlvQnV0dG9uKCkpIHsKLSAgICAgICAgaWYgKGF1dG8gbmFtZUF0dHJp
YnV0ZSA9IG9iamVjdC5hdHRyaWJ1dGVWYWx1ZSgibmFtZSIpKQorICAgICAgICBpZiAoYXV0byBu
YW1lQXR0cmlidXRlID0gb2JqZWN0LmF0dHJpYnV0ZVZhbHVlKCJuYW1lIl9zKSkKICAgICAgICAg
ICAgIHNldFByb3BlcnR5KEFYUHJvcGVydHlOYW1lOjpOYW1lQXR0cmlidXRlLCBuYW1lQXR0cmli
dXRlLT5pc29sYXRlZENvcHkoKSk7CiAgICAgfQogCkBAIC0zNjIsNyArMzYyLDcgQEAgdm9pZCBB
WElzb2xhdGVkT2JqZWN0Ojppbml0aWFsaXplQXR0cmlidXRlRGF0YShBWENvcmVPYmplY3QmIGNv
cmVPYmplY3QsIGJvb2wgaXMKICAgICBTdHJpbmcgY29tYmluZWRDbGFzc0xpc3Q7CiAgICAgZm9y
IChhdXRvIGl0ID0gY2xhc3NMaXN0LmJlZ2luKCksIGVuZCA9IGNsYXNzTGlzdC5lbmQoKTsgaXQg
IT0gZW5kOyArK2l0KSB7CiAgICAgICAgIGNvbWJpbmVkQ2xhc3NMaXN0LmFwcGVuZCgqaXQpOwot
ICAgICAgICBjb21iaW5lZENsYXNzTGlzdC5hcHBlbmQoIiAiKTsKKyAgICAgICAgY29tYmluZWRD
bGFzc0xpc3QuYXBwZW5kKCIgIl9zKTsKICAgICB9CiAgICAgc2V0UHJvcGVydHkoQVhQcm9wZXJ0
eU5hbWU6OkNsYXNzTGlzdCwgY29tYmluZWRDbGFzc0xpc3QpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJl
ZS5jcHAKaW5kZXggNjdmNWIxZGVmZDljNDc4ZWRlYmIwNzkzYzY1MGUzOGNmMzlhM2M0Yi4uMWNl
Nzg1MDJkMmVjNzcyMjdjYmYzZGIyNzUwYzA3YWJjZTgzOWNlNyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRU
cmVlLmNwcApAQCAtNjIsMTggKzYyLDE4IEBAIEFYSXNvbGF0ZWRUcmVlOjpBWElzb2xhdGVkVHJl
ZShBWE9iamVjdENhY2hlKiBheE9iamVjdENhY2hlKQogICAgICwgbV9heE9iamVjdENhY2hlKGF4
T2JqZWN0Q2FjaGUpCiAgICAgLCBtX3VzZWRPbkFYVGhyZWFkKGF4T2JqZWN0Q2FjaGUtPnVzZWRP
bkFYVGhyZWFkKCkpCiB7Ci0gICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OkFYSXNvbGF0ZWRU
cmVlIik7CisgICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OkFYSXNvbGF0ZWRUcmVlIl9zKTsK
ICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogfQogCiBBWElzb2xhdGVkVHJlZTo6fkFYSXNv
bGF0ZWRUcmVlKCkKIHsKLSAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6fkFYSXNvbGF0ZWRU
cmVlIik7CisgICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6On5BWElzb2xhdGVkVHJlZSJfcyk7
CiB9CiAKIHZvaWQgQVhJc29sYXRlZFRyZWU6OmNsZWFyKCkKIHsKLSAgICBBWFRSQUNFKCJBWElz
b2xhdGVkVHJlZTo6Y2xlYXIiKTsKKyAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6Y2xlYXIi
X3MpOwogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgbV9heE9iamVjdENhY2hlID0g
bnVsbHB0cjsKICAgICBtX25vZGVNYXAuY2xlYXIoKTsKQEAgLTg1LDE0ICs4NSwxNCBAQCB2b2lk
IEFYSXNvbGF0ZWRUcmVlOjpjbGVhcigpCiAKIFJlZlB0cjxBWElzb2xhdGVkVHJlZT4gQVhJc29s
YXRlZFRyZWU6OnRyZWVGb3JJRChBWElzb2xhdGVkVHJlZUlEIHRyZWVJRCkKIHsKLSAgICBBWFRS
QUNFKCJBWElzb2xhdGVkVHJlZTo6dHJlZUZvcklEIik7CisgICAgQVhUUkFDRSgiQVhJc29sYXRl
ZFRyZWU6OnRyZWVGb3JJRCJfcyk7CiAgICAgTG9ja2VyIGxvY2tlciB7IHNfY2FjaGVMb2NrIH07
CiAgICAgcmV0dXJuIHRyZWVJRENhY2hlKCkuZ2V0KHRyZWVJRCk7CiB9CiAKIFJlZjxBWElzb2xh
dGVkVHJlZT4gQVhJc29sYXRlZFRyZWU6OmNyZWF0ZShBWE9iamVjdENhY2hlKiBheE9iamVjdENh
Y2hlKQogewotICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjpjcmVhdGUiKTsKKyAgICBBWFRS
QUNFKCJBWElzb2xhdGVkVHJlZTo6Y3JlYXRlIl9zKTsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFk
KCkpOwogICAgIEFTU0VSVChheE9iamVjdENhY2hlICYmIGF4T2JqZWN0Q2FjaGUtPnBhZ2VJRCgp
KTsKIApAQCAtMTI1LDcgKzEyNSw3IEBAIFJlZjxBWElzb2xhdGVkVHJlZT4gQVhJc29sYXRlZFRy
ZWU6OmNyZWF0ZShBWE9iamVjdENhY2hlKiBheE9iamVjdENhY2hlKQogCiB2b2lkIEFYSXNvbGF0
ZWRUcmVlOjpyZW1vdmVUcmVlRm9yUGFnZUlEKFBhZ2VJZGVudGlmaWVyIHBhZ2VJRCkKIHsKLSAg
ICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6cmVtb3ZlVHJlZUZvclBhZ2VJRCIpOworICAgIEFY
VFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjpyZW1vdmVUcmVlRm9yUGFnZUlEIl9zKTsKICAgICBBU1NF
UlQoaXNNYWluVGhyZWFkKCkpOwogICAgIExvY2tlciBsb2NrZXIgeyBzX2NhY2hlTG9jayB9Owog
CkBAIC0xNTcsNyArMTU3LDcgQEAgUmVmUHRyPEFYSXNvbGF0ZWRPYmplY3Q+IEFYSXNvbGF0ZWRU
cmVlOjpub2RlRm9ySUQoQVhJRCBheElEKSBjb25zdAogCiBWZWN0b3I8UmVmUHRyPEFYQ29yZU9i
amVjdD4+IEFYSXNvbGF0ZWRUcmVlOjpvYmplY3RzRm9ySURzKGNvbnN0IFZlY3RvcjxBWElEPiYg
YXhJRHMpIGNvbnN0CiB7Ci0gICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6Om9iamVjdHNGb3JJ
RHMiKTsKKyAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6b2JqZWN0c0ZvcklEcyJfcyk7CiAg
ICAgVmVjdG9yPFJlZlB0cjxBWENvcmVPYmplY3Q+PiByZXN1bHQ7CiAgICAgcmVzdWx0LnJlc2Vy
dmVJbml0aWFsQ2FwYWNpdHkoYXhJRHMuc2l6ZSgpKTsKICAgICBmb3IgKGF1dG8mIGF4SUQgOiBh
eElEcykgewpAQCAtMTc4LDcgKzE3OCw3IEBAIFZlY3RvcjxBWElEPiBBWElzb2xhdGVkVHJlZTo6
aWRzRm9yT2JqZWN0cyhjb25zdCBWZWN0b3I8UmVmUHRyPEFYQ29yZU9iamVjdD4+JiBvCiAKIHZv
aWQgQVhJc29sYXRlZFRyZWU6OmdlbmVyYXRlU3VidHJlZShBWENvcmVPYmplY3QmIGF4T2JqZWN0
LCBBWENvcmVPYmplY3QqIGF4UGFyZW50LCBib29sIGF0dGFjaFdyYXBwZXIpCiB7Ci0gICAgQVhU
UkFDRSgiQVhJc29sYXRlZFRyZWU6OmdlbmVyYXRlU3VidHJlZSIpOworICAgIEFYVFJBQ0UoIkFY
SXNvbGF0ZWRUcmVlOjpnZW5lcmF0ZVN1YnRyZWUiX3MpOwogICAgIEFTU0VSVChpc01haW5UaHJl
YWQoKSk7CiAKICAgICBpZiAoIWF4T2JqZWN0Lm9iamVjdElEKCkuaXNWYWxpZCgpKQpAQCAtMjc3
LDcgKzI3Nyw3IEBAIHZvaWQgQVhJc29sYXRlZFRyZWU6OnF1ZXVlQ2hhbmdlc0FuZFJlbW92YWxz
KGNvbnN0IFZlY3RvcjxOb2RlQ2hhbmdlPiYgY2hhbmdlcywKIAogdm9pZCBBWElzb2xhdGVkVHJl
ZTo6Y29sbGVjdE5vZGVDaGFuZ2VzRm9yU3VidHJlZShBWENvcmVPYmplY3QmIGF4T2JqZWN0LCBB
WElEIHBhcmVudElELCBib29sIGF0dGFjaFdyYXBwZXIsIFZlY3RvcjxOb2RlQ2hhbmdlPiYgY2hh
bmdlcywgSGFzaFNldDxBWElEPiogaWRzQmVpbmdDaGFuZ2VkKQogewotICAgIEFYVFJBQ0UoIkFY
SXNvbGF0ZWRUcmVlOjpjb2xsZWN0Tm9kZUNoYW5nZXNGb3JTdWJ0cmVlIik7CisgICAgQVhUUkFD
RSgiQVhJc29sYXRlZFRyZWU6OmNvbGxlY3ROb2RlQ2hhbmdlc0ZvclN1YnRyZWUiX3MpOwogICAg
IEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKICAgICBhdXRvIG5vZGVDaGFuZ2UgPSBub2RlQ2hh
bmdlRm9yT2JqZWN0KGF4T2JqZWN0LCBwYXJlbnRJRCwgYXR0YWNoV3JhcHBlcik7CkBAIC0yOTUs
NyArMjk1LDcgQEAgdm9pZCBBWElzb2xhdGVkVHJlZTo6Y29sbGVjdE5vZGVDaGFuZ2VzRm9yU3Vi
dHJlZShBWENvcmVPYmplY3QmIGF4T2JqZWN0LCBBWElEIHAKIAogdm9pZCBBWElzb2xhdGVkVHJl
ZTo6dXBkYXRlTm9kZShBWENvcmVPYmplY3QmIGF4T2JqZWN0KQogewotICAgIEFYVFJBQ0UoIkFY
SXNvbGF0ZWRUcmVlOjp1cGRhdGVOb2RlIik7CisgICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6
OnVwZGF0ZU5vZGUiX3MpOwogICAgIEFYTE9HKCZheE9iamVjdCk7CiAgICAgQVNTRVJUKGlzTWFp
blRocmVhZCgpKTsKIApAQCAtMzEzLDcgKzMxMyw3IEBAIHZvaWQgQVhJc29sYXRlZFRyZWU6OnVw
ZGF0ZU5vZGUoQVhDb3JlT2JqZWN0JiBheE9iamVjdCkKIAogdm9pZCBBWElzb2xhdGVkVHJlZTo6
dXBkYXRlTm9kZVByb3BlcnR5KGNvbnN0IEFYQ29yZU9iamVjdCYgYXhPYmplY3QsIEFYUHJvcGVy
dHlOYW1lIHByb3BlcnR5KQogewotICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVO
b2RlUHJvcGVydHkiKTsKKyAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6dXBkYXRlTm9kZVBy
b3BlcnR5Il9zKTsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogCiAgICAgQVhQcm9wZXJ0
eU1hcCBwcm9wZXJ0eU1hcDsKQEAgLTM0OCw3ICszNDgsNyBAQCB2b2lkIEFYSXNvbGF0ZWRUcmVl
Ojp1cGRhdGVOb2RlUHJvcGVydHkoY29uc3QgQVhDb3JlT2JqZWN0JiBheE9iamVjdCwgQVhQcm9w
ZXJ0eQogCiB2b2lkIEFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVDaGlsZHJlbihBWENvcmVPYmplY3Qm
IGF4T2JqZWN0KQogewotICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVDaGlsZHJl
biIpOworICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVDaGlsZHJlbiJfcyk7CiAg
ICAgQVhMT0coIkZvciBBWE9iamVjdDoiKTsKICAgICBBWExPRygmYXhPYmplY3QpOwogICAgIEFT
U0VSVChpc01haW5UaHJlYWQoKSk7CkBAIC00MjIsNyArNDIyLDcgQEAgdm9pZCBBWElzb2xhdGVk
VHJlZTo6dXBkYXRlQ2hpbGRyZW4oQVhDb3JlT2JqZWN0JiBheE9iamVjdCkKIAogUmVmUHRyPEFY
SXNvbGF0ZWRPYmplY3Q+IEFYSXNvbGF0ZWRUcmVlOjpmb2N1c2VkTm9kZSgpCiB7Ci0gICAgQVhU
UkFDRSgiQVhJc29sYXRlZFRyZWU6OmZvY3VzZWROb2RlIik7CisgICAgQVhUUkFDRSgiQVhJc29s
YXRlZFRyZWU6OmZvY3VzZWROb2RlIl9zKTsKICAgICBSRUxFQVNFX0FTU0VSVCghaXNNYWluVGhy
ZWFkKCkpOwogICAgIC8vIEFwcGx5IHBlbmRpbmcgY2hhbmdlcyBpbiBjYXNlIGZvY3VzIGhhcyBj
aGFuZ2VkIGFuZCBoYXNuJ3QgYmVlbiB1cGRhdGVkLgogICAgIGFwcGx5UGVuZGluZ0NoYW5nZXMo
KTsKQEAgLTQzNCwxNCArNDM0LDE0IEBAIFJlZlB0cjxBWElzb2xhdGVkT2JqZWN0PiBBWElzb2xh
dGVkVHJlZTo6Zm9jdXNlZE5vZGUoKQogCiBSZWZQdHI8QVhJc29sYXRlZE9iamVjdD4gQVhJc29s
YXRlZFRyZWU6OnJvb3ROb2RlKCkKIHsKLSAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6cm9v
dE5vZGUiKTsKKyAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6cm9vdE5vZGUiX3MpOwogICAg
IExvY2tlciBsb2NrZXIgeyBtX2NoYW5nZUxvZ0xvY2sgfTsKICAgICByZXR1cm4gbV9yb290Tm9k
ZTsKIH0KIAogdm9pZCBBWElzb2xhdGVkVHJlZTo6c2V0Um9vdE5vZGUoQVhJc29sYXRlZE9iamVj
dCogcm9vdCkKIHsKLSAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6c2V0Um9vdE5vZGUiKTsK
KyAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6c2V0Um9vdE5vZGUiX3MpOwogICAgIEFTU0VS
VChpc01haW5UaHJlYWQoKSk7CiAgICAgQVNTRVJUKG1fY2hhbmdlTG9nTG9jay5pc0xvY2tlZCgp
KTsKICAgICBBU1NFUlQoIW1fcm9vdE5vZGUpOwpAQCAtNDUyLDcgKzQ1Miw3IEBAIHZvaWQgQVhJ
c29sYXRlZFRyZWU6OnNldFJvb3ROb2RlKEFYSXNvbGF0ZWRPYmplY3QqIHJvb3QpCiAKIHZvaWQg
QVhJc29sYXRlZFRyZWU6OnNldEZvY3VzZWROb2RlSUQoQVhJRCBheElEKQogewotICAgIEFYVFJB
Q0UoIkFYSXNvbGF0ZWRUcmVlOjpzZXRGb2N1c2VkTm9kZUlEIik7CisgICAgQVhUUkFDRSgiQVhJ
c29sYXRlZFRyZWU6OnNldEZvY3VzZWROb2RlSUQiX3MpOwogICAgIEFYTE9HKG1ha2VTdHJpbmco
ImF4SUQgIiwgYXhJRC5sb2dnaW5nU3RyaW5nKCkpKTsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFk
KCkpOwogCkBAIC00NjYsNyArNDY2LDcgQEAgdm9pZCBBWElzb2xhdGVkVHJlZTo6c2V0Rm9jdXNl
ZE5vZGVJRChBWElEIGF4SUQpCiAKIHZvaWQgQVhJc29sYXRlZFRyZWU6OnVwZGF0ZUxvYWRpbmdQ
cm9ncmVzcyhkb3VibGUgbmV3UHJvZ3Jlc3NWYWx1ZSkKIHsKLSAgICBBWFRSQUNFKCJBWElzb2xh
dGVkVHJlZTo6dXBkYXRlTG9hZGluZ1Byb2dyZXNzIik7CisgICAgQVhUUkFDRSgiQVhJc29sYXRl
ZFRyZWU6OnVwZGF0ZUxvYWRpbmdQcm9ncmVzcyJfcyk7CiAgICAgQVhMT0cobWFrZVN0cmluZygi
VXBkYXRpbmcgbG9hZGluZyBwcm9ncmVzcyB0byAiLCBuZXdQcm9ncmVzc1ZhbHVlLCAiIGZvciB0
cmVlSUQgIiwgdHJlZUlEKCkpKTsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogCkBAIC00
NzUsNyArNDc1LDcgQEAgdm9pZCBBWElzb2xhdGVkVHJlZTo6dXBkYXRlTG9hZGluZ1Byb2dyZXNz
KGRvdWJsZSBuZXdQcm9ncmVzc1ZhbHVlKQogCiB2b2lkIEFYSXNvbGF0ZWRUcmVlOjpyZW1vdmVO
b2RlKGNvbnN0IEFYQ29yZU9iamVjdCYgYXhPYmplY3QpCiB7Ci0gICAgQVhUUkFDRSgiQVhJc29s
YXRlZFRyZWU6OnJlbW92ZU5vZGUiKTsKKyAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6cmVt
b3ZlTm9kZSJfcyk7CiAgICAgQVhMT0cobWFrZVN0cmluZygib2JqZWN0SUQgIiwgYXhPYmplY3Qu
b2JqZWN0SUQoKS5sb2dnaW5nU3RyaW5nKCkpKTsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkp
OwogCkBAIC00ODUsNyArNDg1LDcgQEAgdm9pZCBBWElzb2xhdGVkVHJlZTo6cmVtb3ZlTm9kZShj
b25zdCBBWENvcmVPYmplY3QmIGF4T2JqZWN0KQogCiB2b2lkIEFYSXNvbGF0ZWRUcmVlOjpyZW1v
dmVTdWJ0cmVlRnJvbU5vZGVNYXAoQVhJRCBvYmplY3RJRCwgQVhDb3JlT2JqZWN0KiBheFBhcmVu
dCwgY29uc3QgSGFzaFNldDxBWElEPiYgaWRzVG9LZWVwKQogewotICAgIEFYVFJBQ0UoIkFYSXNv
bGF0ZWRUcmVlOjpyZW1vdmVTdWJ0cmVlRnJvbU5vZGVNYXAiKTsKKyAgICBBWFRSQUNFKCJBWElz
b2xhdGVkVHJlZTo6cmVtb3ZlU3VidHJlZUZyb21Ob2RlTWFwIl9zKTsKICAgICBBWExPRyhtYWtl
U3RyaW5nKCJSZW1vdmluZyBzdWJ0cmVlIGZvciBvYmplY3RJRCAiLCBvYmplY3RJRC5sb2dnaW5n
U3RyaW5nKCkpKTsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwogCkBAIC01MjMsNyArNTIz
LDcgQEAgdm9pZCBBWElzb2xhdGVkVHJlZTo6cmVtb3ZlU3VidHJlZUZyb21Ob2RlTWFwKEFYSUQg
b2JqZWN0SUQsIEFYQ29yZU9iamVjdCogYXhQYXIKIAogdm9pZCBBWElzb2xhdGVkVHJlZTo6YXBw
bHlQZW5kaW5nQ2hhbmdlcygpCiB7Ci0gICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OmFwcGx5
UGVuZGluZ0NoYW5nZXMiKTsKKyAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6YXBwbHlQZW5k
aW5nQ2hhbmdlcyJfcyk7CiAKICAgICAvLyBJbiBpc29sYXRlZCB0cmVlIG1vZGUgMiwgb25seSBh
cHBseSBwZW5kaW5nIGNoYW5nZXMgb24gdGhlIEFYIHRocmVhZC4KICAgICBBU1NFUlQobV91c2Vk
T25BWFRocmVhZCA/ICFpc01haW5UaHJlYWQoKSA6IGlzTWFpblRocmVhZCgpKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FjY2Vzc2liaWxpdHlPYmplY3RN
YWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5T2Jq
ZWN0TWFjLm1tCmluZGV4IGEyODk1Mzg3NGM4MDU1MTI3ZjgwYjJmYzM2MmQ5Y2U4MjFlNzAxYzQu
LmZjNmU0MDhjZmM3YTkyNTNhMWU4OTUwN2UwMDU0OTQwMzhjOWZiM2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FjY2Vzc2liaWxpdHlPYmplY3RNYWMubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQWNjZXNzaWJpbGl0eU9iamVj
dE1hYy5tbQpAQCAtMjIyLDIwICsyMjIsMjAgQEAgU3RyaW5nIEFjY2Vzc2liaWxpdHlPYmplY3Q6
OnN1YnJvbGVQbGF0Zm9ybVN0cmluZygpIGNvbnN0CiAgICAgfQogCiAgICAgaWYgKGlzTWV0ZXIo
KSkKLSAgICAgICAgcmV0dXJuICJBWE1ldGVyIjsKKyAgICAgICAgcmV0dXJuICJBWE1ldGVyIl9z
OwogCiAjaWYgRU5BQkxFKE1PREVMX0VMRU1FTlQpCiAgICAgaWYgKGlzTW9kZWwoKSkKLSAgICAg
ICAgcmV0dXJuICJBWE1vZGVsIjsKKyAgICAgICAgcmV0dXJuICJBWE1vZGVsIl9zOwogI2VuZGlm
CiAKICAgICBBY2Nlc3NpYmlsaXR5Um9sZSByb2xlID0gcm9sZVZhbHVlKCk7CiAgICAgaWYgKHJv
bGUgPT0gQWNjZXNzaWJpbGl0eVJvbGU6Okhvcml6b250YWxSdWxlKQotICAgICAgICByZXR1cm4g
IkFYQ29udGVudFNlcGFyYXRvciI7CisgICAgICAgIHJldHVybiAiQVhDb250ZW50U2VwYXJhdG9y
Il9zOwogICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpUb2dnbGVCdXR0b24pCiAg
ICAgICAgIHJldHVybiBOU0FjY2Vzc2liaWxpdHlUb2dnbGVTdWJyb2xlOwogICAgIGlmIChyb2xl
ID09IEFjY2Vzc2liaWxpdHlSb2xlOjpGb290ZXIpCi0gICAgICAgIHJldHVybiAiQVhGb290ZXIi
OworICAgICAgICByZXR1cm4gIkFYRm9vdGVyIl9zOwogICAgIGlmIChyb2xlID09IEFjY2Vzc2li
aWxpdHlSb2xlOjpTcGluQnV0dG9uUGFydCkgewogICAgICAgICBpZiAoaXNJbmNyZW1lbnRvcigp
KQogICAgICAgICAgICAgcmV0dXJuIE5TQWNjZXNzaWJpbGl0eUluY3JlbWVudEFycm93U3Vicm9s
ZTsKQEAgLTI0Myw3OSArMjQzLDc5IEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzdWJy
b2xlUGxhdGZvcm1TdHJpbmcoKSBjb25zdAogICAgIH0KIAogICAgIGlmIChpc0ZpbGVVcGxvYWRC
dXR0b24oKSkKLSAgICAgICAgcmV0dXJuICJBWEZpbGVVcGxvYWRCdXR0b24iOworICAgICAgICBy
ZXR1cm4gIkFYRmlsZVVwbG9hZEJ1dHRvbiJfczsKIAogICAgIGlmIChpc1RyZWVJdGVtKCkpCiAg
ICAgICAgIHJldHVybiBOU0FjY2Vzc2liaWxpdHlPdXRsaW5lUm93U3Vicm9sZTsKIAogICAgIGlm
IChpc0ZpZWxkc2V0KCkpCi0gICAgICAgIHJldHVybiAiQVhGaWVsZHNldCI7CisgICAgICAgIHJl
dHVybiAiQVhGaWVsZHNldCJfczsKIAogICAgIGlmIChpc0xpc3QoKSkgewogICAgICAgICBpZiAo
aXNVbm9yZGVyZWRMaXN0KCkgfHwgaXNPcmRlcmVkTGlzdCgpKQotICAgICAgICAgICAgcmV0dXJu
ICJBWENvbnRlbnRMaXN0IjsKKyAgICAgICAgICAgIHJldHVybiAiQVhDb250ZW50TGlzdCJfczsK
ICAgICAgICAgaWYgKGlzRGVzY3JpcHRpb25MaXN0KCkpCi0gICAgICAgICAgICByZXR1cm4gIkFY
RGVzY3JpcHRpb25MaXN0IjsKKyAgICAgICAgICAgIHJldHVybiAiQVhEZXNjcmlwdGlvbkxpc3Qi
X3M7CiAgICAgfQogCiAgICAgLy8gQVJJQSBjb250ZW50IHN1YnJvbGVzLgogICAgIHN3aXRjaCAo
cm9sZSkgewogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJrQmFubmVyOgotICAg
ICAgICByZXR1cm4gIkFYTGFuZG1hcmtCYW5uZXIiOworICAgICAgICByZXR1cm4gIkFYTGFuZG1h
cmtCYW5uZXIiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtDb21wbGVt
ZW50YXJ5OgotICAgICAgICByZXR1cm4gIkFYTGFuZG1hcmtDb21wbGVtZW50YXJ5IjsKKyAgICAg
ICAgcmV0dXJuICJBWExhbmRtYXJrQ29tcGxlbWVudGFyeSJfczsKICAgICBjYXNlIEFjY2Vzc2li
aWxpdHlSb2xlOjpMYW5kbWFya0NvbnRlbnRJbmZvOgotICAgICAgICByZXR1cm4gIkFYTGFuZG1h
cmtDb250ZW50SW5mbyI7CisgICAgICAgIHJldHVybiAiQVhMYW5kbWFya0NvbnRlbnRJbmZvIl9z
OwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJrTWFpbjoKLSAgICAgICAgcmV0
dXJuICJBWExhbmRtYXJrTWFpbiI7CisgICAgICAgIHJldHVybiAiQVhMYW5kbWFya01haW4iX3M7
CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtOYXZpZ2F0aW9uOgotICAgICAg
ICByZXR1cm4gIkFYTGFuZG1hcmtOYXZpZ2F0aW9uIjsKKyAgICAgICAgcmV0dXJuICJBWExhbmRt
YXJrTmF2aWdhdGlvbiJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpMYW5kbWFya0Rv
Y1JlZ2lvbjoKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpMYW5kbWFya1JlZ2lvbjoKLSAg
ICAgICAgcmV0dXJuICJBWExhbmRtYXJrUmVnaW9uIjsKKyAgICAgICAgcmV0dXJuICJBWExhbmRt
YXJrUmVnaW9uIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJrU2VhcmNo
OgotICAgICAgICByZXR1cm4gIkFYTGFuZG1hcmtTZWFyY2giOworICAgICAgICByZXR1cm4gIkFY
TGFuZG1hcmtTZWFyY2giX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRp
b25BbGVydDoKLSAgICAgICAgcmV0dXJuICJBWEFwcGxpY2F0aW9uQWxlcnQiOworICAgICAgICBy
ZXR1cm4gIkFYQXBwbGljYXRpb25BbGVydCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xl
OjpBcHBsaWNhdGlvbkFsZXJ0RGlhbG9nOgotICAgICAgICByZXR1cm4gIkFYQXBwbGljYXRpb25B
bGVydERpYWxvZyI7CisgICAgICAgIHJldHVybiAiQVhBcHBsaWNhdGlvbkFsZXJ0RGlhbG9nIl9z
OwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uRGlhbG9nOgotICAgICAg
ICByZXR1cm4gIkFYQXBwbGljYXRpb25EaWFsb2ciOworICAgICAgICByZXR1cm4gIkFYQXBwbGlj
YXRpb25EaWFsb2ciX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb25H
cm91cDoKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvblRleHRHcm91cDoK
ICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpGZWVkOgogICAgIGNhc2UgQWNjZXNzaWJpbGl0
eVJvbGU6OkZvb3Rub3RlOgotICAgICAgICByZXR1cm4gIkFYQXBwbGljYXRpb25Hcm91cCI7Cisg
ICAgICAgIHJldHVybiAiQVhBcHBsaWNhdGlvbkdyb3VwIl9zOwogICAgIGNhc2UgQWNjZXNzaWJp
bGl0eVJvbGU6OkFwcGxpY2F0aW9uTG9nOgotICAgICAgICByZXR1cm4gIkFYQXBwbGljYXRpb25M
b2ciOworICAgICAgICByZXR1cm4gIkFYQXBwbGljYXRpb25Mb2ciX3M7CiAgICAgY2FzZSBBY2Nl
c3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb25NYXJxdWVlOgotICAgICAgICByZXR1cm4gIkFYQXBw
bGljYXRpb25NYXJxdWVlIjsKKyAgICAgICAgcmV0dXJuICJBWEFwcGxpY2F0aW9uTWFycXVlZSJf
czsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvblN0YXR1czoKLSAgICAg
ICAgcmV0dXJuICJBWEFwcGxpY2F0aW9uU3RhdHVzIjsKKyAgICAgICAgcmV0dXJuICJBWEFwcGxp
Y2F0aW9uU3RhdHVzIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9u
VGltZXI6Ci0gICAgICAgIHJldHVybiAiQVhBcHBsaWNhdGlvblRpbWVyIjsKKyAgICAgICAgcmV0
dXJuICJBWEFwcGxpY2F0aW9uVGltZXIiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6
RG9jdW1lbnQ6CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6R3JhcGhpY3NEb2N1bWVudDoK
LSAgICAgICAgcmV0dXJuICJBWERvY3VtZW50IjsKKyAgICAgICAgcmV0dXJuICJBWERvY3VtZW50
Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRvY3VtZW50QXJ0aWNsZToKLSAgICAg
ICAgcmV0dXJuICJBWERvY3VtZW50QXJ0aWNsZSI7CisgICAgICAgIHJldHVybiAiQVhEb2N1bWVu
dEFydGljbGUiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RG9jdW1lbnRNYXRoOgot
ICAgICAgICByZXR1cm4gIkFYRG9jdW1lbnRNYXRoIjsKKyAgICAgICAgcmV0dXJuICJBWERvY3Vt
ZW50TWF0aCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpEb2N1bWVudE5vdGU6Ci0g
ICAgICAgIHJldHVybiAiQVhEb2N1bWVudE5vdGUiOworICAgICAgICByZXR1cm4gIkFYRG9jdW1l
bnROb3RlIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlVzZXJJbnRlcmZhY2VUb29s
dGlwOgotICAgICAgICByZXR1cm4gIkFYVXNlckludGVyZmFjZVRvb2x0aXAiOworICAgICAgICBy
ZXR1cm4gIkFYVXNlckludGVyZmFjZVRvb2x0aXAiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5
Um9sZTo6VGFiUGFuZWw6Ci0gICAgICAgIHJldHVybiAiQVhUYWJQYW5lbCI7CisgICAgICAgIHJl
dHVybiAiQVhUYWJQYW5lbCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpEZWZpbml0
aW9uOgotICAgICAgICByZXR1cm4gIkFYRGVmaW5pdGlvbiI7CisgICAgICAgIHJldHVybiAiQVhE
ZWZpbml0aW9uIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRlc2NyaXB0aW9uTGlz
dFRlcm06CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VGVybToKLSAgICAgICAgcmV0dXJu
ICJBWFRlcm0iOworICAgICAgICByZXR1cm4gIkFYVGVybSJfczsKICAgICBjYXNlIEFjY2Vzc2li
aWxpdHlSb2xlOjpEZXNjcmlwdGlvbkxpc3REZXRhaWw6Ci0gICAgICAgIHJldHVybiAiQVhEZXNj
cmlwdGlvbiI7CisgICAgICAgIHJldHVybiAiQVhEZXNjcmlwdGlvbiJfczsKICAgICBjYXNlIEFj
Y2Vzc2liaWxpdHlSb2xlOjpXZWJBcHBsaWNhdGlvbjoKLSAgICAgICAgcmV0dXJuICJBWFdlYkFw
cGxpY2F0aW9uIjsKKyAgICAgICAgcmV0dXJuICJBWFdlYkFwcGxpY2F0aW9uIl9zOwogICAgICAg
ICAvLyBEZWZhdWx0IGRvZXNuJ3QgcmV0dXJuIGFueXRoaW5nLCBzbyByb2xlcyBkZWZpbmVkIGJl
bG93IGNhbiBiZSBjaG9zZW4uCiAgICAgZGVmYXVsdDoKICAgICAgICAgYnJlYWs7CkBAIC0zMjMs
NTEgKzMyMyw1MSBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0eU9iamVjdDo6c3Vicm9sZVBsYXRmb3Jt
U3RyaW5nKCkgY29uc3QKIAogICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpNYXRo
RWxlbWVudCkgewogICAgICAgICBpZiAoaXNNYXRoRnJhY3Rpb24oKSkKLSAgICAgICAgICAgIHJl
dHVybiAiQVhNYXRoRnJhY3Rpb24iOworICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhGcmFjdGlv
biJfczsKICAgICAgICAgaWYgKGlzTWF0aEZlbmNlZCgpKQotICAgICAgICAgICAgcmV0dXJuICJB
WE1hdGhGZW5jZWQiOworICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhGZW5jZWQiX3M7CiAgICAg
ICAgIGlmIChpc01hdGhTdWJzY3JpcHRTdXBlcnNjcmlwdCgpKQotICAgICAgICAgICAgcmV0dXJu
ICJBWE1hdGhTdWJzY3JpcHRTdXBlcnNjcmlwdCI7CisgICAgICAgICAgICByZXR1cm4gIkFYTWF0
aFN1YnNjcmlwdFN1cGVyc2NyaXB0Il9zOwogICAgICAgICBpZiAoaXNNYXRoUm93KCkpCi0gICAg
ICAgICAgICByZXR1cm4gIkFYTWF0aFJvdyI7CisgICAgICAgICAgICByZXR1cm4gIkFYTWF0aFJv
dyJfczsKICAgICAgICAgaWYgKGlzTWF0aFVuZGVyT3ZlcigpKQotICAgICAgICAgICAgcmV0dXJu
ICJBWE1hdGhVbmRlck92ZXIiOworICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhVbmRlck92ZXIi
X3M7CiAgICAgICAgIGlmIChpc01hdGhTcXVhcmVSb290KCkpCi0gICAgICAgICAgICByZXR1cm4g
IkFYTWF0aFNxdWFyZVJvb3QiOworICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhTcXVhcmVSb290
Il9zOwogICAgICAgICBpZiAoaXNNYXRoUm9vdCgpKQotICAgICAgICAgICAgcmV0dXJuICJBWE1h
dGhSb290IjsKKyAgICAgICAgICAgIHJldHVybiAiQVhNYXRoUm9vdCJfczsKICAgICAgICAgaWYg
KGlzTWF0aFRleHQoKSkKLSAgICAgICAgICAgIHJldHVybiAiQVhNYXRoVGV4dCI7CisgICAgICAg
ICAgICByZXR1cm4gIkFYTWF0aFRleHQiX3M7CiAgICAgICAgIGlmIChpc01hdGhOdW1iZXIoKSkK
LSAgICAgICAgICAgIHJldHVybiAiQVhNYXRoTnVtYmVyIjsKKyAgICAgICAgICAgIHJldHVybiAi
QVhNYXRoTnVtYmVyIl9zOwogICAgICAgICBpZiAoaXNNYXRoSWRlbnRpZmllcigpKQotICAgICAg
ICAgICAgcmV0dXJuICJBWE1hdGhJZGVudGlmaWVyIjsKKyAgICAgICAgICAgIHJldHVybiAiQVhN
YXRoSWRlbnRpZmllciJfczsKICAgICAgICAgaWYgKGlzTWF0aFRhYmxlKCkpCi0gICAgICAgICAg
ICByZXR1cm4gIkFYTWF0aFRhYmxlIjsKKyAgICAgICAgICAgIHJldHVybiAiQVhNYXRoVGFibGUi
X3M7CiAgICAgICAgIGlmIChpc01hdGhUYWJsZVJvdygpKQotICAgICAgICAgICAgcmV0dXJuICJB
WE1hdGhUYWJsZVJvdyI7CisgICAgICAgICAgICByZXR1cm4gIkFYTWF0aFRhYmxlUm93Il9zOwog
ICAgICAgICBpZiAoaXNNYXRoVGFibGVDZWxsKCkpCi0gICAgICAgICAgICByZXR1cm4gIkFYTWF0
aFRhYmxlQ2VsbCI7CisgICAgICAgICAgICByZXR1cm4gIkFYTWF0aFRhYmxlQ2VsbCJfczsKICAg
ICAgICAgaWYgKGlzTWF0aEZlbmNlT3BlcmF0b3IoKSkKLSAgICAgICAgICAgIHJldHVybiAiQVhN
YXRoRmVuY2VPcGVyYXRvciI7CisgICAgICAgICAgICByZXR1cm4gIkFYTWF0aEZlbmNlT3BlcmF0
b3IiX3M7CiAgICAgICAgIGlmIChpc01hdGhTZXBhcmF0b3JPcGVyYXRvcigpKQotICAgICAgICAg
ICAgcmV0dXJuICJBWE1hdGhTZXBhcmF0b3JPcGVyYXRvciI7CisgICAgICAgICAgICByZXR1cm4g
IkFYTWF0aFNlcGFyYXRvck9wZXJhdG9yIl9zOwogICAgICAgICBpZiAoaXNNYXRoT3BlcmF0b3Io
KSkKLSAgICAgICAgICAgIHJldHVybiAiQVhNYXRoT3BlcmF0b3IiOworICAgICAgICAgICAgcmV0
dXJuICJBWE1hdGhPcGVyYXRvciJfczsKICAgICAgICAgaWYgKGlzTWF0aE11bHRpc2NyaXB0KCkp
Ci0gICAgICAgICAgICByZXR1cm4gIkFYTWF0aE11bHRpc2NyaXB0IjsKKyAgICAgICAgICAgIHJl
dHVybiAiQVhNYXRoTXVsdGlzY3JpcHQiX3M7CiAgICAgfQogCiAgICAgaWYgKHJvbGUgPT0gQWNj
ZXNzaWJpbGl0eVJvbGU6OlZpZGVvKQotICAgICAgICByZXR1cm4gIkFYVmlkZW8iOworICAgICAg
ICByZXR1cm4gIkFYVmlkZW8iX3M7CiAgICAgaWYgKHJvbGUgPT0gQWNjZXNzaWJpbGl0eVJvbGU6
OkF1ZGlvKQotICAgICAgICByZXR1cm4gIkFYQXVkaW8iOworICAgICAgICByZXR1cm4gIkFYQXVk
aW8iX3M7CiAgICAgaWYgKHJvbGUgPT0gQWNjZXNzaWJpbGl0eVJvbGU6OkRldGFpbHMpCi0gICAg
ICAgIHJldHVybiAiQVhEZXRhaWxzIjsKKyAgICAgICAgcmV0dXJuICJBWERldGFpbHMiX3M7CiAg
ICAgaWYgKHJvbGUgPT0gQWNjZXNzaWJpbGl0eVJvbGU6OlN1bW1hcnkpCi0gICAgICAgIHJldHVy
biAiQVhTdW1tYXJ5IjsKKyAgICAgICAgcmV0dXJuICJBWFN1bW1hcnkiX3M7CiAgICAgaWYgKHJv
bGUgPT0gQWNjZXNzaWJpbGl0eVJvbGU6OlRpbWUpCi0gICAgICAgIHJldHVybiAiQVhUaW1lR3Jv
dXAiOworICAgICAgICByZXR1cm4gIkFYVGltZUdyb3VwIl9zOwogCiAgICAgaWYgKGlzTWVkaWFU
aW1lbGluZSgpKQogICAgICAgICByZXR1cm4gTlNBY2Nlc3NpYmlsaXR5VGltZWxpbmVTdWJyb2xl
OwpAQCAtMzc2LDI1ICszNzYsMjUgQEAgU3RyaW5nIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnN1YnJv
bGVQbGF0Zm9ybVN0cmluZygpIGNvbnN0CiAgICAgICAgIHJldHVybiBOU0FjY2Vzc2liaWxpdHlT
d2l0Y2hTdWJyb2xlOwogCiAgICAgaWYgKHJvbGUgPT0gQWNjZXNzaWJpbGl0eVJvbGU6Okluc2Vy
dGlvbikKLSAgICAgICAgcmV0dXJuICJBWEluc2VydFN0eWxlR3JvdXAiOworICAgICAgICByZXR1
cm4gIkFYSW5zZXJ0U3R5bGVHcm91cCJfczsKICAgICBpZiAocm9sZSA9PSBBY2Nlc3NpYmlsaXR5
Um9sZTo6RGVsZXRpb24pCi0gICAgICAgIHJldHVybiAiQVhEZWxldGVTdHlsZUdyb3VwIjsKKyAg
ICAgICAgcmV0dXJuICJBWERlbGV0ZVN0eWxlR3JvdXAiX3M7CiAgICAgaWYgKHJvbGUgPT0gQWNj
ZXNzaWJpbGl0eVJvbGU6OlN1cGVyc2NyaXB0KQotICAgICAgICByZXR1cm4gIkFYU3VwZXJzY3Jp
cHRTdHlsZUdyb3VwIjsKKyAgICAgICAgcmV0dXJuICJBWFN1cGVyc2NyaXB0U3R5bGVHcm91cCJf
czsKICAgICBpZiAocm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6U3Vic2NyaXB0KQotICAgICAg
ICByZXR1cm4gIkFYU3Vic2NyaXB0U3R5bGVHcm91cCI7CisgICAgICAgIHJldHVybiAiQVhTdWJz
Y3JpcHRTdHlsZUdyb3VwIl9zOwogCiAgICAgc3dpdGNoIChyb2xlKSB7CiAgICAgY2FzZSBBY2Nl
c3NpYmlsaXR5Um9sZTo6UnVieUJhc2U6Ci0gICAgICAgIHJldHVybiAiQVhSdWJ5QmFzZSI7Cisg
ICAgICAgIHJldHVybiAiQVhSdWJ5QmFzZSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xl
OjpSdWJ5QmxvY2s6Ci0gICAgICAgIHJldHVybiAiQVhSdWJ5QmxvY2siOworICAgICAgICByZXR1
cm4gIkFYUnVieUJsb2NrIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlJ1YnlJbmxp
bmU6Ci0gICAgICAgIHJldHVybiAiQVhSdWJ5SW5saW5lIjsKKyAgICAgICAgcmV0dXJuICJBWFJ1
YnlJbmxpbmUiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6UnVieVJ1bjoKLSAgICAg
ICAgcmV0dXJuICJBWFJ1YnlSdW4iOworICAgICAgICByZXR1cm4gIkFYUnVieVJ1biJfczsKICAg
ICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpSdWJ5VGV4dDoKLSAgICAgICAgcmV0dXJuICJBWFJ1
YnlUZXh0IjsKKyAgICAgICAgcmV0dXJuICJBWFJ1YnlUZXh0Il9zOwogICAgIGRlZmF1bHQ6CiAg
ICAgICAgIGJyZWFrOwogICAgIH0KQEAgLTQwMywxNyArNDAzLDE3IEBAIFN0cmluZyBBY2Nlc3Np
YmlsaXR5T2JqZWN0OjpzdWJyb2xlUGxhdGZvcm1TdHJpbmcoKSBjb25zdAogICAgICAgICB1c2lu
ZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwogICAgICAgICBhdXRvIHRhZyA9IHRhZ05hbWUoKTsKICAg
ICAgICAgaWYgKHRhZyA9PSBrYmRUYWcpCi0gICAgICAgICAgICByZXR1cm4gQCJBWEtleWJvYXJk
SW5wdXRTdHlsZUdyb3VwIjsKKyAgICAgICAgICAgIHJldHVybiAiQVhLZXlib2FyZElucHV0U3R5
bGVHcm91cCJfczsKICAgICAgICAgaWYgKHRhZyA9PSBjb2RlVGFnKQotICAgICAgICAgICAgcmV0
dXJuIEAiQVhDb2RlU3R5bGVHcm91cCI7CisgICAgICAgICAgICByZXR1cm4gIkFYQ29kZVN0eWxl
R3JvdXAiX3M7CiAgICAgICAgIGlmICh0YWcgPT0gcHJlVGFnKQotICAgICAgICAgICAgcmV0dXJu
IEAiQVhQcmVmb3JtYXR0ZWRTdHlsZUdyb3VwIjsKKyAgICAgICAgICAgIHJldHVybiAiQVhQcmVm
b3JtYXR0ZWRTdHlsZUdyb3VwIl9zOwogICAgICAgICBpZiAodGFnID09IHNhbXBUYWcpCi0gICAg
ICAgICAgICByZXR1cm4gQCJBWFNhbXBsZVN0eWxlR3JvdXAiOworICAgICAgICAgICAgcmV0dXJu
ICJBWFNhbXBsZVN0eWxlR3JvdXAiX3M7CiAgICAgICAgIGlmICh0YWcgPT0gdmFyVGFnKQotICAg
ICAgICAgICAgcmV0dXJuIEAiQVhWYXJpYWJsZVN0eWxlR3JvdXAiOworICAgICAgICAgICAgcmV0
dXJuICJBWFZhcmlhYmxlU3R5bGVHcm91cCJfczsKICAgICAgICAgaWYgKHRhZyA9PSBjaXRlVGFn
KQotICAgICAgICAgICAgcmV0dXJuIEAiQVhDaXRlU3R5bGVHcm91cCI7CisgICAgICAgICAgICBy
ZXR1cm4gIkFYQ2l0ZVN0eWxlR3JvdXAiX3M7CiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogICAgICAgICByZXR1cm4gU3RyaW5nKCk7CiAgICAgfQpAQCAtNDM2LDcgKzQzNiw3IEBAIFN0
cmluZyBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojpyb2xlUGxhdGZvcm1EZXNjcmlwdGlvbigpIGNvbnN0
CiAKICAgICAgICAgc3dpdGNoIChyb2xlKSB7CiAgICAgICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJv
bGU6OkF1ZGlvOgotICAgICAgICAgICAgcmV0dXJuIGxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1l
bnRTdHJpbmcoIkF1ZGlvRWxlbWVudCIpOworICAgICAgICAgICAgcmV0dXJuIGxvY2FsaXplZE1l
ZGlhQ29udHJvbEVsZW1lbnRTdHJpbmcoIkF1ZGlvRWxlbWVudCJfcyk7CiAgICAgICAgIGNhc2Ug
QWNjZXNzaWJpbGl0eVJvbGU6OkRlZmluaXRpb246CiAgICAgICAgICAgICByZXR1cm4gQVhEZWZp
bml0aW9uVGV4dCgpOwogICAgICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpEZXNjcmlwdGlv
bkxpc3RUZXJtOgpAQCAtNDUzLDkgKzQ1Myw5IEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5T2JqZWN0
Ojpyb2xlUGxhdGZvcm1EZXNjcmlwdGlvbigpIGNvbnN0CiAgICAgICAgIGNhc2UgQWNjZXNzaWJp
bGl0eVJvbGU6Ok1hcms6CiAgICAgICAgICAgICByZXR1cm4gQVhNYXJrVGV4dCgpOwogICAgICAg
ICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpWaWRlbzoKLSAgICAgICAgICAgIHJldHVybiBsb2Nh
bGl6ZWRNZWRpYUNvbnRyb2xFbGVtZW50U3RyaW5nKCJWaWRlb0VsZW1lbnQiKTsKKyAgICAgICAg
ICAgIHJldHVybiBsb2NhbGl6ZWRNZWRpYUNvbnRyb2xFbGVtZW50U3RyaW5nKCJWaWRlb0VsZW1l
bnQiX3MpOwogICAgICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpHcmFwaGljc0RvY3VtZW50
OgotICAgICAgICAgICAgcmV0dXJuIEFYQVJJQUNvbnRlbnRHcm91cFRleHQoQCJBUklBRG9jdW1l
bnQiKTsKKyAgICAgICAgICAgIHJldHVybiBBWEFSSUFDb250ZW50R3JvdXBUZXh0KCJBUklBRG9j
dW1lbnQiKTsKICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgIHJldHVybiBTdHJpbmcoKTsK
ICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0FuaW1hdGlv
bkVmZmVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQW5pbWF0aW9uRWZmZWN0LmNw
cAppbmRleCAyMzliZDA0NWY4MGFlYThkY2RmMzFjNWUwYzQzODhhMDJiNTI5NTUyLi40MzFmZGVh
MTU3MjYyNzJhMmI2OGY5NzRiMjZlMGFlNmE1NWZjMGFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9hbmltYXRpb24vQW5pbWF0aW9uRWZmZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9h
bmltYXRpb24vQW5pbWF0aW9uRWZmZWN0LmNwcApAQCAtNjksNyArNjksNyBAQCBFZmZlY3RUaW1p
bmcgQW5pbWF0aW9uRWZmZWN0OjpnZXRUaW1pbmcoKSBjb25zdAogICAgIHRpbWluZy5pdGVyYXRp
b25TdGFydCA9IG1faXRlcmF0aW9uU3RhcnQ7CiAgICAgdGltaW5nLml0ZXJhdGlvbnMgPSBtX2l0
ZXJhdGlvbnM7CiAgICAgaWYgKG1faXRlcmF0aW9uRHVyYXRpb24gPT0gMF9zKQotICAgICAgICB0
aW1pbmcuZHVyYXRpb24gPSAiYXV0byI7CisgICAgICAgIHRpbWluZy5kdXJhdGlvbiA9ICJhdXRv
Il9zOwogICAgIGVsc2UKICAgICAgICAgdGltaW5nLmR1cmF0aW9uID0gc2Vjb25kc1RvV2ViQW5p
bWF0aW9uc0FQSVRpbWUobV9pdGVyYXRpb25EdXJhdGlvbik7CiAgICAgdGltaW5nLmRpcmVjdGlv
biA9IG1fZGlyZWN0aW9uOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0Rv
Y3VtZW50VGltZWxpbmUuY3BwIGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0RvY3VtZW50VGlt
ZWxpbmUuY3BwCmluZGV4IDNjOTU5ZTljYmQ0YTg3MTI0NGVlMmY0NWIwYjVhYTA2ZTFjNWZkNDUu
LmM4NmYyYWQ1NWM0YjEyOGVlY2VkYjgwMTBmNGM0NzEzYmFmNDY3NjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9hbmltYXRpb24vRG9jdW1lbnRUaW1lbGluZS5jcHAKQEAgLTQ1Miw3ICs0NTIsNyBA
QCBFeGNlcHRpb25PcjxSZWY8V2ViQW5pbWF0aW9uPj4gRG9jdW1lbnRUaW1lbGluZTo6YW5pbWF0
ZShSZWY8Q3VzdG9tRWZmZWN0Q2FsbGJhYwogICAgIGlmICghbV9kb2N1bWVudCkKICAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH07CiAKLSAgICBTdHJpbmcgaWQg
PSAiIjsKKyAgICBTdHJpbmcgaWQgPSBlbXB0eVN0cmluZygpOwogICAgIHN0ZDo6dmFyaWFudDxG
cmFtZXNQZXJTZWNvbmQsIEFuaW1hdGlvbkZyYW1lUmF0ZVByZXNldD4gZnJhbWVSYXRlID0gQW5p
bWF0aW9uRnJhbWVSYXRlUHJlc2V0OjpBdXRvOwogICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjp2YXJp
YW50PGRvdWJsZSwgRWZmZWN0VGltaW5nPj4gY3VzdG9tRWZmZWN0T3B0aW9uczsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0VmZmVjdFRpbWluZy5oIGIvU291cmNlL1dl
YkNvcmUvYW5pbWF0aW9uL0VmZmVjdFRpbWluZy5oCmluZGV4IDRkZDVkY2MzNzNjY2Q4MzMwZGVj
YTM2MTdkOTk4ZTYxMzM5MzJlNjEuLjIxMDczZmE0NzMwM2Y2NGZkMmJhMjYxOWFlOTE4N2Y1ODE1
OTUwNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9FZmZlY3RUaW1pbmcu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRWZmZWN0VGltaW5nLmgKQEAgLTMzLDEy
ICszMywxMiBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBzdHJ1Y3QgRWZmZWN0VGltaW5nIHsK
LSAgICBzdGQ6OnZhcmlhbnQ8ZG91YmxlLCBTdHJpbmc+IGR1cmF0aW9uIHsgImF1dG8iIH07Cisg
ICAgc3RkOjp2YXJpYW50PGRvdWJsZSwgU3RyaW5nPiBkdXJhdGlvbiB7ICJhdXRvIl9zIH07CiAg
ICAgZG91YmxlIGRlbGF5IHsgMCB9OwogICAgIGRvdWJsZSBlbmREZWxheSB7IDAgfTsKICAgICBk
b3VibGUgaXRlcmF0aW9uU3RhcnQgeyAwIH07CiAgICAgZG91YmxlIGl0ZXJhdGlvbnMgeyAxIH07
Ci0gICAgU3RyaW5nIGVhc2luZyB7ICJsaW5lYXIiIH07CisgICAgU3RyaW5nIGVhc2luZyB7ICJs
aW5lYXIiX3MgfTsKICAgICBGaWxsTW9kZSBmaWxsIHsgRmlsbE1vZGU6OkF1dG8gfTsKICAgICBQ
bGF5YmFja0RpcmVjdGlvbiBkaXJlY3Rpb24geyBQbGF5YmFja0RpcmVjdGlvbjo6Tm9ybWFsIH07
CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5jcHAKaW5kZXgg
NzIzNzY4NTAzZDEwZGI0OTY3YjJmOGM2MGViOTE0MTg5NzY2YmY3ZC4uZDg0MTFjOTNlNDc3MDJm
NTY3YWQ2MTQwMzY2ZWNlNzY2MzVjMDQ1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5p
bWF0aW9uL0tleWZyYW1lRWZmZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24v
S2V5ZnJhbWVFZmZlY3QuY3BwCkBAIC04MiwxMSArODIsMTEgQEAgU3RyaW5nIEtleWZyYW1lRWZm
ZWN0OjpDU1NQcm9wZXJ0eUlEVG9JRExBdHRyaWJ1dGVOYW1lKENTU1Byb3BlcnR5SUQgY3NzUHJv
cGVydHkKIAogICAgIC8vIDIuIElmIHByb3BlcnR5IHJlZmVycyB0byB0aGUgQ1NTIGZsb2F0IHBy
b3BlcnR5LCByZXR1cm4gdGhlIHN0cmluZyAiY3NzRmxvYXQiLgogICAgIGlmIChjc3NQcm9wZXJ0
eUlkID09IENTU1Byb3BlcnR5RmxvYXQpCi0gICAgICAgIHJldHVybiAiY3NzRmxvYXQiOworICAg
ICAgICByZXR1cm4gImNzc0Zsb2F0Il9zOwogCiAgICAgLy8gMy4gSWYgcHJvcGVydHkgcmVmZXJz
IHRvIHRoZSBDU1Mgb2Zmc2V0IHByb3BlcnR5LCByZXR1cm4gdGhlIHN0cmluZyAiY3NzT2Zmc2V0
Ii4KICAgICBpZiAoY3NzUHJvcGVydHlJZCA9PSBDU1NQcm9wZXJ0eU9mZnNldCkKLSAgICAgICAg
cmV0dXJuICJjc3NPZmZzZXQiOworICAgICAgICByZXR1cm4gImNzc09mZnNldCJfczsKIAogICAg
IC8vIDQuIE90aGVyd2lzZSwgcmV0dXJuIHRoZSByZXN1bHQgb2YgYXBwbHlpbmcgdGhlIENTUyBw
cm9wZXJ0eSB0byBJREwgYXR0cmlidXRlIGFsZ29yaXRobSBbQ1NTT01dIHRvIHByb3BlcnR5Lgog
ICAgIHJldHVybiBnZXRKU1Byb3BlcnR5TmFtZShjc3NQcm9wZXJ0eUlkKTsKQEAgLTY2MCw3ICs2
NjAsNyBAQCBhdXRvIEtleWZyYW1lRWZmZWN0OjpnZXRLZXlmcmFtZXMoRG9jdW1lbnQmIGRvY3Vt
ZW50KSAtPiBWZWN0b3I8Q29tcHV0ZWRLZXlmcmFtZQogICAgICAgICBjb21wdXRlZEtleWZyYW1l
Lm9mZnNldCA9IGtleWZyYW1lLmtleSgpOwogICAgICAgICBjb21wdXRlZEtleWZyYW1lLmNvbXB1
dGVkT2Zmc2V0ID0ga2V5ZnJhbWUua2V5KCk7CiAgICAgICAgIC8vIEZvciBDU1MgdHJhbnNpdGlv
bnMsIGFsbCBrZXlmcmFtZXMgc2hvdWxkIHJldHVybiAibGluZWFyIiBzaW5jZSB0aGUgZWZmZWN0
J3MgZ2xvYmFsIHRpbWluZyBmdW5jdGlvbiBhcHBsaWVzLgotICAgICAgICBjb21wdXRlZEtleWZy
YW1lLmVhc2luZyA9IGlzPENTU1RyYW5zaXRpb24+KGFuaW1hdGlvbigpKSA/ICJsaW5lYXIiIDog
dGltaW5nRnVuY3Rpb25Gb3JCbGVuZGluZ0tleWZyYW1lKGtleWZyYW1lKS0+Y3NzVGV4dCgpOwor
ICAgICAgICBjb21wdXRlZEtleWZyYW1lLmVhc2luZyA9IGlzPENTU1RyYW5zaXRpb24+KGFuaW1h
dGlvbigpKSA/ICJsaW5lYXIiX3MgOiB0aW1pbmdGdW5jdGlvbkZvckJsZW5kaW5nS2V5ZnJhbWUo
a2V5ZnJhbWUpLT5jc3NUZXh0KCk7CiAKICAgICAgICAgaWYgKGRvY3VtZW50LnNldHRpbmdzKCku
d2ViQW5pbWF0aW9uc0NvbXBvc2l0ZU9wZXJhdGlvbnNFbmFibGVkKCkpIHsKICAgICAgICAgICAg
IGlmIChhdXRvIGNvbXBvc2l0ZU9wZXJhdGlvbiA9IGtleWZyYW1lLmNvbXBvc2l0ZU9wZXJhdGlv
bigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvR0NDb250cm9sbGVy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0dDQ29udHJvbGxlci5jcHAKaW5kZXgg
NWYxMWUwYzYzNDg3NDE0M2FiMzE4NWEwMWRmOWZiMmVlMzZmMjVhZC4uNWY5MzQ5MTc1NmYyN2Vj
MDRkNGRlYTlkMzgxYjdhNjRjNmM3OTIwNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvR0NDb250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9HQ0NvbnRyb2xsZXIuY3BwCkBAIC01OSw3ICs1OSw3IEBAIEdDQ29udHJvbGxlcjo6R0NDb250
cm9sbGVyKCkKIHsKICAgICBzdGF0aWMgc3RkOjpvbmNlX2ZsYWcgb25jZUZsYWc7CiAgICAgc3Rk
OjpjYWxsX29uY2Uob25jZUZsYWcsIFtdIHsKLSAgICAgICAgUEFMOjpyZWdpc3Rlck5vdGlmeUNh
bGxiYWNrKCJjb20uYXBwbGUuV2ViS2l0LmR1bXBHQ0hlYXAiLCBbXSB7CisgICAgICAgIFBBTDo6
cmVnaXN0ZXJOb3RpZnlDYWxsYmFjaygiY29tLmFwcGxlLldlYktpdC5kdW1wR0NIZWFwIl9zLCBb
XSB7CiAgICAgICAgICAgICBHQ0NvbnRyb2xsZXI6OnNpbmdsZXRvbigpLmR1bXBIZWFwKCk7CiAg
ICAgICAgIH0pOwogICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNDdXN0b21FbGVtZW50SW50ZXJmYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTQ3VzdG9tRWxlbWVudEludGVyZmFjZS5jcHAKaW5kZXggNGUxZDI0ZWU5NDE3NGM5ZGY3
NmQyYjJlNTA3OWI3N2RkMGUyNmY5OC4uYTkxZTAyZjIzZDc1MDMwYTliOWFiZjg5YTM2Zjg0YWIx
OWJhODhiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21F
bGVtZW50SW50ZXJmYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1
c3RvbUVsZW1lbnRJbnRlcmZhY2UuY3BwCkBAIC0yMTAsNyArMjEwLDcgQEAgdm9pZCBKU0N1c3Rv
bUVsZW1lbnRJbnRlcmZhY2U6OnVwZ3JhZGVFbGVtZW50KEVsZW1lbnQmIGVsZW1lbnQpCiAKICAg
ICBpZiAobV9pc1NoYWRvd0Rpc2FibGVkICYmIGVsZW1lbnQuc2hhZG93Um9vdCgpKSB7CiAgICAg
ICAgIGVsZW1lbnQuY2xlYXJSZWFjdGlvblF1ZXVlRnJvbUZhaWxlZEN1c3RvbUVsZW1lbnQoKTsK
LSAgICAgICAgcmVwb3J0RXhjZXB0aW9uKGxleGljYWxHbG9iYWxPYmplY3QsIGNyZWF0ZURPTUV4
Y2VwdGlvbihsZXhpY2FsR2xvYmFsT2JqZWN0LCBOb3RTdXBwb3J0ZWRFcnJvciwgIkZhaWxlZCB0
byB1cGdyYWRlIGFuIGVsZW1lbnQgd2l0aCBzaGFkb3cgcm9vdDogdGhlIGN1c3RvbSBlbGVtZW50
IGRlZmluaXRpb24gZGlzYWxsb3dzIHNoYWRvdyByb290cy4iKSk7CisgICAgICAgIHJlcG9ydEV4
Y2VwdGlvbihsZXhpY2FsR2xvYmFsT2JqZWN0LCBjcmVhdGVET01FeGNlcHRpb24obGV4aWNhbEds
b2JhbE9iamVjdCwgTm90U3VwcG9ydGVkRXJyb3IsICJGYWlsZWQgdG8gdXBncmFkZSBhbiBlbGVt
ZW50IHdpdGggc2hhZG93IHJvb3Q6IHRoZSBjdXN0b20gZWxlbWVudCBkZWZpbml0aW9uIGRpc2Fs
bG93cyBzaGFkb3cgcm9vdHMuIl9zKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTIz
MSw3ICsyMzEsNyBAQCB2b2lkIEpTQ3VzdG9tRWxlbWVudEludGVyZmFjZTo6dXBncmFkZUVsZW1l
bnQoRWxlbWVudCYgZWxlbWVudCkKICAgICBFbGVtZW50KiB3cmFwcGVkRWxlbWVudCA9IEpTRWxl
bWVudDo6dG9XcmFwcGVkKHZtLCByZXR1cm5lZEVsZW1lbnQpOwogICAgIGlmICghd3JhcHBlZEVs
ZW1lbnQgfHwgd3JhcHBlZEVsZW1lbnQgIT0gJmVsZW1lbnQpIHsKICAgICAgICAgZWxlbWVudC5j
bGVhclJlYWN0aW9uUXVldWVGcm9tRmFpbGVkQ3VzdG9tRWxlbWVudCgpOwotICAgICAgICByZXBv
cnRFeGNlcHRpb24obGV4aWNhbEdsb2JhbE9iamVjdCwgY3JlYXRlRE9NRXhjZXB0aW9uKGxleGlj
YWxHbG9iYWxPYmplY3QsIFR5cGVFcnJvciwgIkN1c3RvbSBlbGVtZW50IGNvbnN0cnVjdG9yIHJl
dHVybmVkIGEgd3JvbmcgZWxlbWVudCIpKTsKKyAgICAgICAgcmVwb3J0RXhjZXB0aW9uKGxleGlj
YWxHbG9iYWxPYmplY3QsIGNyZWF0ZURPTUV4Y2VwdGlvbihsZXhpY2FsR2xvYmFsT2JqZWN0LCBU
eXBlRXJyb3IsICJDdXN0b20gZWxlbWVudCBjb25zdHJ1Y3RvciByZXR1cm5lZCBhIHdyb25nIGVs
ZW1lbnQiX3MpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBlbGVtZW50LnNldElzRGVm
aW5lZEN1c3RvbUVsZW1lbnQoKnRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01Db252ZXJ0TnVtYmVycy5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01Db252ZXJ0TnVtYmVycy5oCmluZGV4IGI3YjYxM2RkNmMzN2VkMTE3YjkyMjAyMGFj
MTNhM2Q3YzU1YmJjYWQuLjI5NDEzZDhkOTg5NjkwMTBmYWExYzM1NGVhM2E4OWJhYzQwMGIwNzIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydE51bWJl
cnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUNvbnZlcnROdW1iZXJz
LmgKQEAgLTI5Myw3ICsyOTMsNyBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBDb252ZXJ0ZXI8SURMRmxv
YXQ+IDogRGVmYXVsdENvbnZlcnRlcjxJRExGbG9hdD4gewogICAgICAgICBkb3VibGUgbnVtYmVy
ID0gdmFsdWUudG9OdW1iZXIoJmxleGljYWxHbG9iYWxPYmplY3QpOwogICAgICAgICBSRVRVUk5f
SUZfRVhDRVBUSU9OKHNjb3BlLCAwLjApOwogICAgICAgICBpZiAoVU5MSUtFTFkobnVtYmVyIDwg
c3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46Omxvd2VzdCgpIHx8IG51bWJlciA+IHN0ZDo6bnVt
ZXJpY19saW1pdHM8ZmxvYXQ+OjptYXgoKSkpCi0gICAgICAgICAgICB0aHJvd1R5cGVFcnJvcigm
bGV4aWNhbEdsb2JhbE9iamVjdCwgc2NvcGUsICJUaGUgcHJvdmlkZWQgdmFsdWUgaXMgb3V0c2lk
ZSB0aGUgcmFuZ2Ugb2YgYSBmbG9hdCIpOworICAgICAgICAgICAgdGhyb3dUeXBlRXJyb3IoJmxl
eGljYWxHbG9iYWxPYmplY3QsIHNjb3BlLCAiVGhlIHByb3ZpZGVkIHZhbHVlIGlzIG91dHNpZGUg
dGhlIHJhbmdlIG9mIGEgZmxvYXQiX3MpOwogICAgICAgICBpZiAoVU5MSUtFTFkoIXN0ZDo6aXNm
aW5pdGUobnVtYmVyKSkpCiAgICAgICAgICAgICB0aHJvd05vbkZpbml0ZVR5cGVFcnJvcihsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBzY29wZSk7CiAgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDxmbG9h
dD4obnVtYmVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXhl
Y1N0YXRlSW5zdHJ1bWVudGF0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V4
ZWNTdGF0ZUluc3RydW1lbnRhdGlvbi5oCmluZGV4IGMwNDRiMDdhYmZjN2I2OWUzMTkxMjgzM2I0
OTQ0NjgxYmMzMjgwNTMuLjMxMDBmYWJmMmQ4NTcxMzVjOGE1M2U5NDY3YmUyMWM3Nzg5ZTY0Y2Qg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXhlY1N0YXRlSW5zdHJ1
bWVudGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFeGVjU3RhdGVJ
bnN0cnVtZW50YXRpb24uaApAQCAtNDUsNyArNDUsNyBAQCBpbmxpbmUgdm9pZCBKU0V4ZWNTdGF0
ZTo6aW5zdHJ1bWVudEZ1bmN0aW9uKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIGNv
bgogICAgICAgICBsaW5lTnVtYmVyID0gY2FsbERhdGEuanMuZnVuY3Rpb25FeGVjdXRhYmxlLT5m
aXJzdExpbmUoKTsKICAgICAgICAgY29sdW1uTnVtYmVyID0gY2FsbERhdGEuanMuZnVuY3Rpb25F
eGVjdXRhYmxlLT5zdGFydENvbHVtbigpOwogICAgIH0gZWxzZQotICAgICAgICByZXNvdXJjZU5h
bWUgPSAidW5kZWZpbmVkIjsKKyAgICAgICAgcmVzb3VyY2VOYW1lID0gInVuZGVmaW5lZCJfczsK
ICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxDYWxsRnVuY3Rpb24oY29udGV4dCwg
cmVzb3VyY2VOYW1lLCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIpOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9TY3JpcHRDb250cm9sbGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwCmluZGV4IGNkNGIzZjA3
NmRmNzM5OTA1NmYyNzhjNjVlNzJkMzJkMjQ3OWQ0NjAuLjQ4NGQ4YzJkZjM3YmVmN2QxN2RhNDFi
NzAzMjI5NGIxZDljZmZiMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1NjcmlwdENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1Nj
cmlwdENvbnRyb2xsZXIuY3BwCkBAIC02MzMsNyArNjMzLDcgQEAgVmFsdWVPckV4Y2VwdGlvbiBT
Y3JpcHRDb250cm9sbGVyOjpjYWxsSW5Xb3JsZChSdW5KYXZhU2NyaXB0UGFyYW1ldGVycyYmIHBh
cmFtZXQKICAgICAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfQ0FUQ0hfU0NPUEUoZ2xvYmFsT2Jq
ZWN0LnZtKCkpOwogICAgICAgICBhdXRvIGpzQXJndW1lbnQgPSBzZXJpYWxpemVkQXJndW1lbnQt
PmRlc2VyaWFsaXplKGdsb2JhbE9iamVjdCwgJmdsb2JhbE9iamVjdCk7CiAgICAgICAgIGlmIChV
TkxJS0VMWShzY29wZS5leGNlcHRpb24oKSkpIHsKLSAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9
ICJVbmFibGUgdG8gZGVzZXJpYWxpemUgYXJndW1lbnQgdG8gZXhlY3V0ZSBhc3luY2hyb25vdXMg
SmF2YVNjcmlwdCBmdW5jdGlvbiI7CisgICAgICAgICAgICBlcnJvck1lc3NhZ2UgPSAiVW5hYmxl
IHRvIGRlc2VyaWFsaXplIGFyZ3VtZW50IHRvIGV4ZWN1dGUgYXN5bmNocm9ub3VzIEphdmFTY3Jp
cHQgZnVuY3Rpb24iX3M7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUubW0gYi9Tb3VyY2Uv
V2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRpbWUubW0KaW5kZXggMTVjYjZhMDhlNWMzNWMx
NzIyY2RkMzdjYTM4YWM1Y2E5NDRmYTE1OS4uYWU0MjIxMTQxZWVjYjg5MTUxYzYzMTYxMGUyMjIy
MjRjY2ZkZGZjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19y
dW50aW1lLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5t
bQpAQCAtMTc2LDcgKzE3Niw3IEBAIGJvb2wgT2JqY0FycmF5OjpzZXRWYWx1ZUF0KEpTR2xvYmFs
T2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCB1bnNpZ25lZCBpbnQgaW5kCiAgICAgfQogCiAg
ICAgaWYgKGluZGV4ID4gW19hcnJheSBjb3VudF0pIHsKLSAgICAgICAgdGhyb3dFeGNlcHRpb24o
bGV4aWNhbEdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZVJhbmdlRXJyb3IobGV4aWNhbEdsb2Jh
bE9iamVjdCwgIkluZGV4IGV4Y2VlZHMgYXJyYXkgc2l6ZS4iKSk7CisgICAgICAgIHRocm93RXhj
ZXB0aW9uKGxleGljYWxHbG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVSYW5nZUVycm9yKGxleGlj
YWxHbG9iYWxPYmplY3QsICJJbmRleCBleGNlZWRzIGFycmF5IHNpemUuIl9zKSk7CiAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICB9CiAgICAgCkBAIC0xODgsNyArMTg4LDcgQEAgYm9vbCBPYmpj
QXJyYXk6OnNldFZhbHVlQXQoSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIHVu
c2lnbmVkIGludCBpbmQKICAgICAgICAgW19hcnJheSBpbnNlcnRPYmplY3Q6KF9fYnJpZGdlIGlk
KW9WYWx1ZS5vYmplY3RWYWx1ZSBhdEluZGV4OmluZGV4XTsKICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgfSBAY2F0Y2goTlNFeGNlcHRpb24qIGxvY2FsRXhjZXB0aW9uKSB7Ci0gICAgICAgIHRo
cm93RXhjZXB0aW9uKGxleGljYWxHbG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVFcnJvcihsZXhp
Y2FsR2xvYmFsT2JqZWN0LCAiT2JqZWN0aXZlLUMgZXhjZXB0aW9uLiIpKTsKKyAgICAgICAgdGhy
b3dFeGNlcHRpb24obGV4aWNhbEdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZUVycm9yKGxleGlj
YWxHbG9iYWxPYmplY3QsICJPYmplY3RpdmUtQyBleGNlcHRpb24uIl9zKSk7CiAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICB9CiB9CkBAIC0xOTksMTMgKzE5OSwxMyBAQCBKU1ZhbHVlIE9iamNB
cnJheTo6dmFsdWVBdChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgdW5zaWdu
ZWQgaW50IGluZAogICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKIAog
ICAgIGlmIChpbmRleCA+IFtfYXJyYXkgY291bnRdKQotICAgICAgICByZXR1cm4gdGhyb3dFeGNl
cHRpb24obGV4aWNhbEdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZVJhbmdlRXJyb3IobGV4aWNh
bEdsb2JhbE9iamVjdCwgIkluZGV4IGV4Y2VlZHMgYXJyYXkgc2l6ZS4iKSk7CisgICAgICAgIHJl
dHVybiB0aHJvd0V4Y2VwdGlvbihsZXhpY2FsR2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlUmFu
Z2VFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCAiSW5kZXggZXhjZWVkcyBhcnJheSBzaXplLiJf
cykpOwogICAgIEB0cnkgewogICAgICAgICBpZCBvYmogPSBbX2FycmF5IG9iamVjdEF0SW5kZXg6
aW5kZXhdOwogICAgICAgICBpZiAob2JqKQogICAgICAgICAgICAgcmV0dXJuIGNvbnZlcnRPYmpj
VmFsdWVUb1ZhbHVlIChsZXhpY2FsR2xvYmFsT2JqZWN0LCAmb2JqLCBPYmpjT2JqZWN0VHlwZSwg
bV9yb290T2JqZWN0LmdldCgpKTsKICAgICB9IEBjYXRjaChOU0V4Y2VwdGlvbiogbG9jYWxFeGNl
cHRpb24pIHsKLSAgICAgICAgcmV0dXJuIHRocm93RXhjZXB0aW9uKGxleGljYWxHbG9iYWxPYmpl
Y3QsIHNjb3BlLCBjcmVhdGVFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCAiT2JqZWN0aXZlLUMg
ZXhjZXB0aW9uLiIpKTsKKyAgICAgICAgcmV0dXJuIHRocm93RXhjZXB0aW9uKGxleGljYWxHbG9i
YWxPYmplY3QsIHNjb3BlLCBjcmVhdGVFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCAiT2JqZWN0
aXZlLUMgZXhjZXB0aW9uLiJfcykpOwogICAgIH0KICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2FycmF5LmNwcAppbmRleCBjMDVlM2E0MGU4
MDU2NjVkYzBmZGVkMDJjMzA1MThlZDk2Mjg2MGMzLi5hZjM5YmExMTQwZGEwMzA0Mzg4NWEzYTg1
NWExMzMxZTRmNTY1YTlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGlt
ZV9hcnJheS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3Bw
CkBAIC0xMjcsNyArMTI3LDcgQEAgYm9vbCBSdW50aW1lQXJyYXk6OnB1dChKU0NlbGwqIGNlbGws
IEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBQcm9wZXIKIAogICAgIFJ1bnRp
bWVBcnJheSogdGhpc09iamVjdCA9IGpzQ2FzdDxSdW50aW1lQXJyYXkqPihjZWxsKTsKICAgICBp
ZiAocHJvcGVydHlOYW1lID09IHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCkgewotICAgICAgICB0
aHJvd0V4Y2VwdGlvbihsZXhpY2FsR2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlUmFuZ2VFcnJv
cihsZXhpY2FsR2xvYmFsT2JqZWN0LCAiUmFuZ2UgZXJyb3IiKSk7CisgICAgICAgIHRocm93RXhj
ZXB0aW9uKGxleGljYWxHbG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVSYW5nZUVycm9yKGxleGlj
YWxHbG9iYWxPYmplY3QsICJSYW5nZSBlcnJvciJfcykpOwogICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgfQogICAgIApAQCAtMTQ0LDcgKzE0NCw3IEBAIGJvb2wgUnVudGltZUFycmF5OjpwdXRC
eUluZGV4KEpTQ2VsbCogY2VsbCwgSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
CiAKICAgICBSdW50aW1lQXJyYXkqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8UnVudGltZUFycmF5Kj4o
Y2VsbCk7CiAgICAgaWYgKGluZGV4ID49IHRoaXNPYmplY3QtPmdldExlbmd0aCgpKSB7Ci0gICAg
ICAgIHRocm93RXhjZXB0aW9uKGxleGljYWxHbG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVSYW5n
ZUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsICJSYW5nZSBlcnJvciIpKTsKKyAgICAgICAgdGhy
b3dFeGNlcHRpb24obGV4aWNhbEdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZVJhbmdlRXJyb3Io
bGV4aWNhbEdsb2JhbE9iamVjdCwgIlJhbmdlIGVycm9yIl9zKSk7CiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICB9CiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVu
dGltZV9vYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNw
cAppbmRleCBiMjRmMmFlZjE5NGJhZDI1YjNhNjFlYjg4ZTc0MTQ3ZGNlOTMxMGM3Li4yMGJlMWVl
MmZmMjUwNDJmMzg4MTVlZGEwNjhmZDlhNDg4OTU1ZTcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JyaWRn
ZS9ydW50aW1lX29iamVjdC5jcHAKQEAgLTMxMCw3ICszMTAsNyBAQCB2b2lkIFJ1bnRpbWVPYmpl
Y3Q6OmdldE93blByb3BlcnR5TmFtZXMoSlNPYmplY3QqIG9iamVjdCwgSlNHbG9iYWxPYmplY3Qq
IGxleGljYQogCiBFeGNlcHRpb24qIHRocm93UnVudGltZU9iamVjdEludmFsaWRBY2Nlc3NFcnJv
cihKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgVGhyb3dTY29wZSYgc2NvcGUp
CiB7Ci0gICAgcmV0dXJuIHRocm93RXhjZXB0aW9uKGxleGljYWxHbG9iYWxPYmplY3QsIHNjb3Bl
LCBjcmVhdGVSZWZlcmVuY2VFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCAiVHJ5aW5nIHRvIGFj
Y2VzcyBvYmplY3QgZnJvbSBkZXN0cm95ZWQgcGx1Zy1pbi4iKSk7CisgICAgcmV0dXJuIHRocm93
RXhjZXB0aW9uKGxleGljYWxHbG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVSZWZlcmVuY2VFcnJv
cihsZXhpY2FsR2xvYmFsT2JqZWN0LCAiVHJ5aW5nIHRvIGFjY2VzcyBvYmplY3QgZnJvbSBkZXN0
cm95ZWQgcGx1Zy1pbi4iX3MpKTsKIH0KIAogSlNDOjpHQ0NsaWVudDo6SXNvU3Vic3BhY2UqIFJ1
bnRpbWVPYmplY3Q6OnN1YnNwYWNlRm9ySW1wbChKU0M6OlZNJiB2bSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25BY3Rpb25zLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25BY3Rp
b25zLmNwcAppbmRleCAwY2E2MWMxMDE0ZDI0MzVlODRhYTBkYWZlMzAyMGZmYjA3OGU4Mzc5Li43
YjI2NTlmYzY3M2Q1MzYwOWU1ZDFiNWU0N2ZiNjgzYTE2M2FmMDliIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uQWN0aW9ucy5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkFj
dGlvbnMuY3BwCkBAIC0yMDEsMTUgKzIwMSwxNSBAQCBhdXRvIE1vZGlmeUhlYWRlcnNBY3Rpb246
Ok1vZGlmeUhlYWRlckluZm86OnBhcnNlKGNvbnN0IEpTT046OlZhbHVlJiBpbmZvVmFsdWUpCiAg
ICAgaWYgKCFvYmplY3QpCiAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50RXh0
ZW5zaW9uRXJyb3I6OkpTT05Nb2RpZnlIZWFkZXJzSW5mb05vdEFEaWN0aW9uYXJ5KTsKIAotICAg
IFN0cmluZyBvcGVyYXRpb24gPSBvYmplY3QtPmdldFN0cmluZygib3BlcmF0aW9uIik7CisgICAg
U3RyaW5nIG9wZXJhdGlvbiA9IG9iamVjdC0+Z2V0U3RyaW5nKCJvcGVyYXRpb24iX3MpOwogICAg
IGlmICghb3BlcmF0aW9uKQogICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoQ29udGVudEV4
dGVuc2lvbkVycm9yOjpKU09OTW9kaWZ5SGVhZGVyc01pc3NpbmdPcGVyYXRpb24pOwogCi0gICAg
U3RyaW5nIGhlYWRlciA9IG9iamVjdC0+Z2V0U3RyaW5nKCJoZWFkZXIiKTsKKyAgICBTdHJpbmcg
aGVhZGVyID0gb2JqZWN0LT5nZXRTdHJpbmcoImhlYWRlciJfcyk7CiAgICAgaWYgKCFoZWFkZXIp
CiAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpT
T05Nb2RpZnlIZWFkZXJzTWlzc2luZ0hlYWRlcik7CiAKLSAgICBTdHJpbmcgdmFsdWUgPSBvYmpl
Y3QtPmdldFN0cmluZygidmFsdWUiKTsKKyAgICBTdHJpbmcgdmFsdWUgPSBvYmplY3QtPmdldFN0
cmluZygidmFsdWUiX3MpOwogCiAgICAgaWYgKG9wZXJhdGlvbiA9PSAic2V0IikgewogICAgICAg
ICBpZiAoIXZhbHVlKQpAQCAtMjg5LDI3ICsyODksMjcgQEAgc2l6ZV90IE1vZGlmeUhlYWRlcnNB
Y3Rpb246Ok1vZGlmeUhlYWRlckluZm86OnNlcmlhbGl6ZWRMZW5ndGgoU3Bhbjxjb25zdCB1aW50
OF8KIAogRXhwZWN0ZWQ8UmVkaXJlY3RBY3Rpb24sIHN0ZDo6ZXJyb3JfY29kZT4gUmVkaXJlY3RB
Y3Rpb246OnBhcnNlKGNvbnN0IEpTT046Ok9iamVjdCYgcmVkaXJlY3RPYmplY3QsIGNvbnN0IFN0
cmluZyYgdXJsRmlsdGVyKQogewotICAgIGF1dG8gcmVkaXJlY3QgPSByZWRpcmVjdE9iamVjdC5n
ZXRPYmplY3QoInJlZGlyZWN0Iik7CisgICAgYXV0byByZWRpcmVjdCA9IHJlZGlyZWN0T2JqZWN0
LmdldE9iamVjdCgicmVkaXJlY3QiX3MpOwogICAgIGlmICghcmVkaXJlY3QpCiAgICAgICAgIHJl
dHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05SZWRpcmVjdE1p
c3NpbmcpOwogCi0gICAgaWYgKGF1dG8gZXh0ZW5zaW9uUGF0aCA9IHJlZGlyZWN0LT5nZXRTdHJp
bmcoImV4dGVuc2lvbi1wYXRoIik7ICEhZXh0ZW5zaW9uUGF0aCkgeworICAgIGlmIChhdXRvIGV4
dGVuc2lvblBhdGggPSByZWRpcmVjdC0+Z2V0U3RyaW5nKCJleHRlbnNpb24tcGF0aCJfcyk7ICEh
ZXh0ZW5zaW9uUGF0aCkgewogICAgICAgICBpZiAoIWV4dGVuc2lvblBhdGguc3RhcnRzV2l0aCgn
LycpKQogICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKENvbnRlbnRFeHRlbnNpb25F
cnJvcjo6SlNPTlJlZGlyZWN0RXh0ZW5zaW9uUGF0aERvZXNOb3RTdGFydFdpdGhTbGFzaCk7CiAg
ICAgICAgIHJldHVybiBSZWRpcmVjdEFjdGlvbiB7IEV4dGVuc2lvblBhdGhBY3Rpb24geyBXVEZN
b3ZlKGV4dGVuc2lvblBhdGgpIH0gfTsKICAgICB9CiAKLSAgICBpZiAoYXV0byByZWdleFN1YnN0
aXR1dGlvbiA9IHJlZGlyZWN0LT5nZXRTdHJpbmcoInJlZ2V4LXN1YnN0aXR1dGlvbiIpOyAhIXJl
Z2V4U3Vic3RpdHV0aW9uKQorICAgIGlmIChhdXRvIHJlZ2V4U3Vic3RpdHV0aW9uID0gcmVkaXJl
Y3QtPmdldFN0cmluZygicmVnZXgtc3Vic3RpdHV0aW9uIl9zKTsgISFyZWdleFN1YnN0aXR1dGlv
bikKICAgICAgICAgcmV0dXJuIFJlZGlyZWN0QWN0aW9uIHsgUmVnZXhTdWJzdGl0dXRpb25BY3Rp
b24geyBXVEZNb3ZlKHJlZ2V4U3Vic3RpdHV0aW9uKSwgdXJsRmlsdGVyIH0gfTsKIAotICAgIGlm
IChhdXRvIHRyYW5zZm9ybSA9IHJlZGlyZWN0LT5nZXRPYmplY3QoInRyYW5zZm9ybSIpKSB7Cisg
ICAgaWYgKGF1dG8gdHJhbnNmb3JtID0gcmVkaXJlY3QtPmdldE9iamVjdCgidHJhbnNmb3JtIl9z
KSkgewogICAgICAgICBhdXRvIHBhcnNlZFRyYW5zZm9ybSA9IFVSTFRyYW5zZm9ybUFjdGlvbjo6
cGFyc2UoKnRyYW5zZm9ybSk7CiAgICAgICAgIGlmICghcGFyc2VkVHJhbnNmb3JtKQogICAgICAg
ICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKHBhcnNlZFRyYW5zZm9ybS5lcnJvcigpKTsKICAg
ICAgICAgcmV0dXJuIFJlZGlyZWN0QWN0aW9uIHsgV1RGTW92ZSgqcGFyc2VkVHJhbnNmb3JtKSB9
OwogICAgIH0KIAotICAgIGlmIChhdXRvIHVybFN0cmluZyA9IHJlZGlyZWN0LT5nZXRTdHJpbmco
InVybCIpOyAhIXVybFN0cmluZykgeworICAgIGlmIChhdXRvIHVybFN0cmluZyA9IHJlZGlyZWN0
LT5nZXRTdHJpbmcoInVybCJfcyk7ICEhdXJsU3RyaW5nKSB7CiAgICAgICAgIFVSTCB1cmwgeyB1
cmxTdHJpbmcgfTsKICAgICAgICAgaWYgKCF1cmwuaXNWYWxpZCgpKQogICAgICAgICAgICAgcmV0
dXJuIG1ha2VVbmV4cGVjdGVkKENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTlJlZGlyZWN0VVJM
SW52YWxpZCk7CkBAIC00ODMsMTUgKzQ4MywxNSBAQCB2b2lkIFJlZGlyZWN0QWN0aW9uOjpSZWdl
eFN1YnN0aXR1dGlvbkFjdGlvbjo6YXBwbHlUb1VSTChVUkwmIHVybCkgY29uc3QKIGF1dG8gUmVk
aXJlY3RBY3Rpb246OlVSTFRyYW5zZm9ybUFjdGlvbjo6cGFyc2UoY29uc3QgSlNPTjo6T2JqZWN0
JiB0cmFuc2Zvcm0pIC0+IEV4cGVjdGVkPFVSTFRyYW5zZm9ybUFjdGlvbiwgc3RkOjplcnJvcl9j
b2RlPgogewogICAgIFVSTFRyYW5zZm9ybUFjdGlvbiBhY3Rpb247Ci0gICAgaWYgKGF1dG8gZnJh
Z21lbnQgPSB0cmFuc2Zvcm0uZ2V0U3RyaW5nKCJmcmFnbWVudCIpOyAhIWZyYWdtZW50KSB7Cisg
ICAgaWYgKGF1dG8gZnJhZ21lbnQgPSB0cmFuc2Zvcm0uZ2V0U3RyaW5nKCJmcmFnbWVudCJfcyk7
ICEhZnJhZ21lbnQpIHsKICAgICAgICAgaWYgKCFmcmFnbWVudC5pc0VtcHR5KCkgJiYgIWZyYWdt
ZW50LnN0YXJ0c1dpdGgoJyMnKSkKICAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChD
b250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05SZWRpcmVjdEludmFsaWRGcmFnbWVudCk7CiAgICAg
ICAgIGFjdGlvbi5mcmFnbWVudCA9IFdURk1vdmUoZnJhZ21lbnQpOwogICAgIH0KLSAgICBhY3Rp
b24uaG9zdCA9IHRyYW5zZm9ybS5nZXRTdHJpbmcoImhvc3QiKTsKLSAgICBhY3Rpb24ucGFzc3dv
cmQgPSB0cmFuc2Zvcm0uZ2V0U3RyaW5nKCJwYXNzd29yZCIpOwotICAgIGFjdGlvbi5wYXRoID0g
dHJhbnNmb3JtLmdldFN0cmluZygicGF0aCIpOwotICAgIGF1dG8gcG9ydCA9IHRyYW5zZm9ybS5n
ZXRTdHJpbmcoInBvcnQiKTsKKyAgICBhY3Rpb24uaG9zdCA9IHRyYW5zZm9ybS5nZXRTdHJpbmco
Imhvc3QiX3MpOworICAgIGFjdGlvbi5wYXNzd29yZCA9IHRyYW5zZm9ybS5nZXRTdHJpbmcoInBh
c3N3b3JkIl9zKTsKKyAgICBhY3Rpb24ucGF0aCA9IHRyYW5zZm9ybS5nZXRTdHJpbmcoInBhdGgi
X3MpOworICAgIGF1dG8gcG9ydCA9IHRyYW5zZm9ybS5nZXRTdHJpbmcoInBvcnQiX3MpOwogICAg
IGlmICghIXBvcnQpIHsKICAgICAgICAgaWYgKHBvcnQuaXNFbXB0eSgpKQogICAgICAgICAgICAg
YWN0aW9uLnBvcnQgPSB7IHN0ZDo6b3B0aW9uYWw8dWludDE2X3Q+IHsgfSB9OwpAQCAtNTAzLDcg
KzUwMyw3IEBAIGF1dG8gUmVkaXJlY3RBY3Rpb246OlVSTFRyYW5zZm9ybUFjdGlvbjo6cGFyc2Uo
Y29uc3QgSlNPTjo6T2JqZWN0JiB0cmFuc2Zvcm0pIC0+CiAgICAgICAgIH0KICAgICB9CiAKLSAg
ICBpZiAoYXV0byB1bmNhbm9uaWNhbGl6ZWRTY2hlbWUgPSB0cmFuc2Zvcm0uZ2V0U3RyaW5nKCJz
Y2hlbWUiKTsgISF1bmNhbm9uaWNhbGl6ZWRTY2hlbWUpIHsKKyAgICBpZiAoYXV0byB1bmNhbm9u
aWNhbGl6ZWRTY2hlbWUgPSB0cmFuc2Zvcm0uZ2V0U3RyaW5nKCJzY2hlbWUiX3MpOyAhIXVuY2Fu
b25pY2FsaXplZFNjaGVtZSkgewogICAgICAgICBhdXRvIHNjaGVtZSA9IFdURjo6VVJMUGFyc2Vy
OjptYXliZUNhbm9uaWNhbGl6ZVNjaGVtZSh1bmNhbm9uaWNhbGl6ZWRTY2hlbWUpOwogICAgICAg
ICBpZiAoIXNjaGVtZSkKICAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50
RXh0ZW5zaW9uRXJyb3I6OkpTT05SZWRpcmVjdFVSTFNjaGVtZUludmFsaWQpOwpAQCAtNTExLDE0
ICs1MTEsMTQgQEAgYXV0byBSZWRpcmVjdEFjdGlvbjo6VVJMVHJhbnNmb3JtQWN0aW9uOjpwYXJz
ZShjb25zdCBKU09OOjpPYmplY3QmIHRyYW5zZm9ybSkgLT4KICAgICAgICAgICAgIHJldHVybiBt
YWtlVW5leHBlY3RlZChDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05SZWRpcmVjdFRvSmF2YVNj
cmlwdFVSTCk7CiAgICAgICAgIGFjdGlvbi5zY2hlbWUgPSBXVEZNb3ZlKCpzY2hlbWUpOwogICAg
IH0KLSAgICBhY3Rpb24udXNlcm5hbWUgPSB0cmFuc2Zvcm0uZ2V0U3RyaW5nKCJ1c2VybmFtZSIp
OwotICAgIGlmIChhdXRvIHF1ZXJ5VHJhbnNmb3JtID0gdHJhbnNmb3JtLmdldE9iamVjdCgicXVl
cnktdHJhbnNmb3JtIikpIHsKKyAgICBhY3Rpb24udXNlcm5hbWUgPSB0cmFuc2Zvcm0uZ2V0U3Ry
aW5nKCJ1c2VybmFtZSJfcyk7CisgICAgaWYgKGF1dG8gcXVlcnlUcmFuc2Zvcm0gPSB0cmFuc2Zv
cm0uZ2V0T2JqZWN0KCJxdWVyeS10cmFuc2Zvcm0iX3MpKSB7CiAgICAgICAgIGF1dG8gcGFyc2Vk
UXVlcnlUcmFuc2Zvcm0gPSBRdWVyeVRyYW5zZm9ybTo6cGFyc2UoKnF1ZXJ5VHJhbnNmb3JtKTsK
ICAgICAgICAgaWYgKCFwYXJzZWRRdWVyeVRyYW5zZm9ybSkKICAgICAgICAgICAgIHJldHVybiBt
YWtlVW5leHBlY3RlZChwYXJzZWRRdWVyeVRyYW5zZm9ybS5lcnJvcigpKTsKICAgICAgICAgYWN0
aW9uLnF1ZXJ5VHJhbnNmb3JtID0gKnBhcnNlZFF1ZXJ5VHJhbnNmb3JtOwogICAgIH0gZWxzZSB7
Ci0gICAgICAgIGF1dG8gcXVlcnkgPSB0cmFuc2Zvcm0uZ2V0U3RyaW5nKCJxdWVyeSIpOworICAg
ICAgICBhdXRvIHF1ZXJ5ID0gdHJhbnNmb3JtLmdldFN0cmluZygicXVlcnkiX3MpOwogICAgICAg
ICBpZiAoIXF1ZXJ5LmlzRW1wdHkoKSAmJiAhcXVlcnkuc3RhcnRzV2l0aCgnPycpKQogICAgICAg
ICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTlJl
ZGlyZWN0SW52YWxpZFF1ZXJ5KTsKICAgICAgICAgYWN0aW9uLnF1ZXJ5VHJhbnNmb3JtID0gV1RG
TW92ZShxdWVyeSk7CkBAIC02OTksNyArNjk5LDcgQEAgYXV0byBSZWRpcmVjdEFjdGlvbjo6VVJM
VHJhbnNmb3JtQWN0aW9uOjpRdWVyeVRyYW5zZm9ybTo6cGFyc2UoY29uc3QgSlNPTjo6T2JqZWMK
IHsKICAgICBRdWVyeVRyYW5zZm9ybSBwYXJzZWRRdWVyeVRyYW5zZm9ybTsKIAotICAgIGlmIChh
dXRvIHJlbW92ZVBhcmFtZXRlcnNWYWx1ZSA9IHF1ZXJ5VHJhbnNmb3JtLmdldFZhbHVlKCJyZW1v
dmUtcGFyYW1ldGVycyIpKSB7CisgICAgaWYgKGF1dG8gcmVtb3ZlUGFyYW1ldGVyc1ZhbHVlID0g
cXVlcnlUcmFuc2Zvcm0uZ2V0VmFsdWUoInJlbW92ZS1wYXJhbWV0ZXJzIl9zKSkgewogICAgICAg
ICBhdXRvIHJlbW92ZVBhcmFtZXRlcnNBcnJheSA9IHJlbW92ZVBhcmFtZXRlcnNWYWx1ZS0+YXNB
cnJheSgpOwogICAgICAgICBpZiAoIXJlbW92ZVBhcmFtZXRlcnNBcnJheSkKICAgICAgICAgICAg
IHJldHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05SZW1vdmVQ
YXJhbWV0ZXJzTm90U3RyaW5nQXJyYXkpOwpAQCAtNzEzLDcgKzcxMyw3IEBAIGF1dG8gUmVkaXJl
Y3RBY3Rpb246OlVSTFRyYW5zZm9ybUFjdGlvbjo6UXVlcnlUcmFuc2Zvcm06OnBhcnNlKGNvbnN0
IEpTT046Ok9iamVjCiAgICAgICAgIHBhcnNlZFF1ZXJ5VHJhbnNmb3JtLnJlbW92ZVBhcmFtcyA9
IFdURk1vdmUocmVtb3ZlUGFyYW1ldGVyc1ZlY3Rvcik7CiAgICAgfQogCi0gICAgaWYgKGF1dG8g
YWRkT3JSZXBsYWNlUGFyYW1ldGVyc1ZhbHVlID0gcXVlcnlUcmFuc2Zvcm0uZ2V0VmFsdWUoImFk
ZC1vci1yZXBsYWNlLXBhcmFtZXRlcnMiKSkgeworICAgIGlmIChhdXRvIGFkZE9yUmVwbGFjZVBh
cmFtZXRlcnNWYWx1ZSA9IHF1ZXJ5VHJhbnNmb3JtLmdldFZhbHVlKCJhZGQtb3ItcmVwbGFjZS1w
YXJhbWV0ZXJzIl9zKSkgewogICAgICAgICBhdXRvIGFkZE9yUmVwbGFjZVBhcmFtZXRlcnNBcnJh
eSA9IGFkZE9yUmVwbGFjZVBhcmFtZXRlcnNWYWx1ZS0+YXNBcnJheSgpOwogICAgICAgICBpZiAo
IWFkZE9yUmVwbGFjZVBhcmFtZXRlcnNBcnJheSkKICAgICAgICAgICAgIHJldHVybiBtYWtlVW5l
eHBlY3RlZChDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05BZGRPclJlcGxhY2VQYXJhbWV0ZXJz
Tm90QXJyYXkpOwpAQCAtODU4LDE2ICs4NTgsMTYgQEAgYXV0byBSZWRpcmVjdEFjdGlvbjo6VVJM
VHJhbnNmb3JtQWN0aW9uOjpRdWVyeVRyYW5zZm9ybTo6UXVlcnlLZXlWYWx1ZTo6cGFyc2UoY28K
ICAgICBpZiAoIWtleVZhbHVlKQogICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoQ29udGVu
dEV4dGVuc2lvbkVycm9yOjpKU09OQWRkT3JSZXBsYWNlUGFyYW1ldGVyc0tleVZhbHVlTm90QURp
Y3Rpb25hcnkpOwogCi0gICAgU3RyaW5nIGtleSA9IGtleVZhbHVlLT5nZXRTdHJpbmcoImtleSIp
OworICAgIFN0cmluZyBrZXkgPSBrZXlWYWx1ZS0+Z2V0U3RyaW5nKCJrZXkiX3MpOwogICAgIGlm
ICgha2V5KQogICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoQ29udGVudEV4dGVuc2lvbkVy
cm9yOjpKU09OQWRkT3JSZXBsYWNlUGFyYW1ldGVyc0tleVZhbHVlTWlzc2luZ0tleVN0cmluZyk7
CiAKLSAgICBTdHJpbmcgdmFsdWUgPSBrZXlWYWx1ZS0+Z2V0U3RyaW5nKCJ2YWx1ZSIpOworICAg
IFN0cmluZyB2YWx1ZSA9IGtleVZhbHVlLT5nZXRTdHJpbmcoInZhbHVlIl9zKTsKICAgICBpZiAo
IXZhbHVlKQogICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoQ29udGVudEV4dGVuc2lvbkVy
cm9yOjpKU09OQWRkT3JSZXBsYWNlUGFyYW1ldGVyc0tleVZhbHVlTWlzc2luZ1ZhbHVlU3RyaW5n
KTsKIAogICAgIGJvb2wgcmVwbGFjZU9ubHkgeyBmYWxzZSB9OwotICAgIGlmIChhdXRvIGJvb2xl
YW4gPSBrZXlWYWx1ZS0+Z2V0Qm9vbGVhbigicmVwbGFjZS1vbmx5IikpCisgICAgaWYgKGF1dG8g
Ym9vbGVhbiA9IGtleVZhbHVlLT5nZXRCb29sZWFuKCJyZXBsYWNlLW9ubHkiX3MpKQogICAgICAg
ICByZXBsYWNlT25seSA9ICpib29sZWFuOwogCiAgICAgcmV0dXJuIHsgeyBXVEZNb3ZlKGtleSks
IHJlcGxhY2VPbmx5LCBXVEZNb3ZlKHZhbHVlKSB9IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uQ29tcGlsZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkNvbXBpbGVyLmNw
cAppbmRleCBjZmViZjVjMzA3OGE5NDFkMTljNzlhMjkyYzQ3MGM5ZWJiZjI4MmNmLi5lODcyMWQ0
YTc0NzllZDY4MzAxN2YwYTQ4NWU4NDZhMzI5YzkwZTAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uQ29tcGlsZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25Db21waWxl
ci5jcHAKQEAgLTMxNiw3ICszMTYsNyBAQCBzdGQ6OmVycm9yX2NvZGUgY29tcGlsZVJ1bGVMaXN0
KENvbnRlbnRFeHRlbnNpb25Db21waWxhdGlvbkNsaWVudCYgY2xpZW50LCBTdHJpbgogICAgICAg
ICAgICAgc3RhdHVzID0gVVJMRmlsdGVyUGFyc2VyOjpPazsKICAgICAgICAgfQogICAgICAgICBp
ZiAoc3RhdHVzICE9IFVSTEZpbHRlclBhcnNlcjo6T2spIHsKLSAgICAgICAgICAgIGRhdGFMb2dG
KCJFcnJvciB3aGlsZSBwYXJzaW5nICVzOiAlc1xuIiwgdHJpZ2dlci51cmxGaWx0ZXIudXRmOCgp
LmRhdGEoKSwgVVJMRmlsdGVyUGFyc2VyOjpzdGF0dXNTdHJpbmcoc3RhdHVzKS51dGY4KCkuZGF0
YSgpKTsKKyAgICAgICAgICAgIGRhdGFMb2dGKCJFcnJvciB3aGlsZSBwYXJzaW5nICVzOiAlc1xu
IiwgdHJpZ2dlci51cmxGaWx0ZXIudXRmOCgpLmRhdGEoKSwgVVJMRmlsdGVyUGFyc2VyOjpzdGF0
dXNTdHJpbmcoc3RhdHVzKS5jaGFyYWN0ZXJzKCkpOwogICAgICAgICAgICAgcmV0dXJuIENvbnRl
bnRFeHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWRSZWdleDsKICAgICAgICAgfQogCkBAIC0zMzMs
NyArMzMzLDcgQEAgc3RkOjplcnJvcl9jb2RlIGNvbXBpbGVSdWxlTGlzdChDb250ZW50RXh0ZW5z
aW9uQ29tcGlsYXRpb25DbGllbnQmIGNsaWVudCwgU3RyaW4KICAgICAgICAgICAgICAgICAgICAg
c3RhdHVzID0gVVJMRmlsdGVyUGFyc2VyOjpPazsKICAgICAgICAgICAgICAgICB9CiAgICAgICAg
ICAgICAgICAgaWYgKHN0YXR1cyAhPSBVUkxGaWx0ZXJQYXJzZXI6Ok9rKSB7Ci0gICAgICAgICAg
ICAgICAgICAgIGRhdGFMb2dGKCJFcnJvciB3aGlsZSBwYXJzaW5nICVzOiAlc1xuIiwgY29uZGl0
aW9uLnV0ZjgoKS5kYXRhKCksIFVSTEZpbHRlclBhcnNlcjo6c3RhdHVzU3RyaW5nKHN0YXR1cyku
dXRmOCgpLmRhdGEoKSk7CisgICAgICAgICAgICAgICAgICAgIGRhdGFMb2dGKCJFcnJvciB3aGls
ZSBwYXJzaW5nICVzOiAlc1xuIiwgY29uZGl0aW9uLnV0ZjgoKS5kYXRhKCksIFVSTEZpbHRlclBh
cnNlcjo6c3RhdHVzU3RyaW5nKHN0YXR1cykuY2hhcmFjdGVycygpKTsKICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWRSZWdleDsKICAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgYnJlYWs7CkBAIC0zNDQsNyArMzQ0LDcg
QEAgc3RkOjplcnJvcl9jb2RlIGNvbXBpbGVSdWxlTGlzdChDb250ZW50RXh0ZW5zaW9uQ29tcGls
YXRpb25DbGllbnQmIGNsaWVudCwgU3RyaW4KICAgICAgICAgICAgICAgICAgICAgc3RhdHVzID0g
VVJMRmlsdGVyUGFyc2VyOjpPazsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg
aWYgKHN0YXR1cyAhPSBVUkxGaWx0ZXJQYXJzZXI6Ok9rKSB7Ci0gICAgICAgICAgICAgICAgICAg
IGRhdGFMb2dGKCJFcnJvciB3aGlsZSBwYXJzaW5nICVzOiAlc1xuIiwgY29uZGl0aW9uLnV0Zjgo
KS5kYXRhKCksIFVSTEZpbHRlclBhcnNlcjo6c3RhdHVzU3RyaW5nKHN0YXR1cykudXRmOCgpLmRh
dGEoKSk7CisgICAgICAgICAgICAgICAgICAgIGRhdGFMb2dGKCJFcnJvciB3aGlsZSBwYXJzaW5n
ICVzOiAlc1xuIiwgY29uZGl0aW9uLnV0ZjgoKS5kYXRhKCksIFVSTEZpbHRlclBhcnNlcjo6c3Rh
dHVzU3RyaW5nKHN0YXR1cykuY2hhcmFjdGVycygpKTsKICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWRSZWdleDsKICAgICAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uUGFyc2VyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25QYXJzZXIuY3BwCmluZGV4
IDUxM2ZkOTM5ZTY2ZGI1Y2EyNTEyOWY1NzZiOTgyYjRmOGM5ODI0ZTEuLjc0NDE2NWYwYjUyMDE1
Y2NlZmQ3N2Y2ODdjZTUzY2MwNWMxYjE1NjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nv
bnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25QYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25QYXJzZXIuY3BwCkBAIC05
Myw3ICs5Myw3IEBAIHN0YXRpYyBFeHBlY3RlZDxWZWN0b3I8U3RyaW5nPiwgc3RkOjplcnJvcl9j
b2RlPiBnZXREb21haW5MaXN0KGNvbnN0IEpTT046OkFycmF5CiAgICAgICAgICAgICB7ICckJywg
IlxcJCIgfQogICAgICAgICB9IH07CiAgICAgICAgIGZvciAoYXV0byYgcGFpciA6IGVzY2FwZVRh
YmxlKQotICAgICAgICAgICAgZG9tYWluID0gZG9tYWluLnJlcGxhY2UocGFpci5maXJzdCwgcGFp
ci5zZWNvbmQpOworICAgICAgICAgICAgZG9tYWluID0gZG9tYWluLnJlcGxhY2UocGFpci5maXJz
dCwgU3RyaW5nIHsgcGFpci5zZWNvbmQgfSk7CiAKICAgICAgICAgY29uc3QgY2hhciogcHJvdG9j
b2xSZWdleCA9ICJbYS16XVthLXorLi1dKjpcXC9cXC8iOwogICAgICAgICBjb25zdCBjaGFyKiBh
bGxvd1N1YmRvbWFpbnNSZWdleCA9ICIoLipcXC4pKiI7CkBAIC0xMTksMjcgKzExOSwyNyBAQCBz
dGF0aWMgc3RkOjplcnJvcl9jb2RlIGdldFR5cGVGbGFncyhjb25zdCBKU09OOjpBcnJheSYgYXJy
YXksIFJlc291cmNlRmxhZ3MmIGZsYQogICAgIAogc3RhdGljIEV4cGVjdGVkPFRyaWdnZXIsIHN0
ZDo6ZXJyb3JfY29kZT4gbG9hZFRyaWdnZXIoY29uc3QgSlNPTjo6T2JqZWN0JiBydWxlT2JqZWN0
KQogewotICAgIGF1dG8gdHJpZ2dlck9iamVjdCA9IHJ1bGVPYmplY3QuZ2V0T2JqZWN0KCJ0cmln
Z2VyIik7CisgICAgYXV0byB0cmlnZ2VyT2JqZWN0ID0gcnVsZU9iamVjdC5nZXRPYmplY3QoInRy
aWdnZXIiX3MpOwogICAgIGlmICghdHJpZ2dlck9iamVjdCkKICAgICAgICAgcmV0dXJuIG1ha2VV
bmV4cGVjdGVkKENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWRUcmlnZ2VyKTsKIAot
ICAgIFN0cmluZyB1cmxGaWx0ZXIgPSB0cmlnZ2VyT2JqZWN0LT5nZXRTdHJpbmcoInVybC1maWx0
ZXIiKTsKKyAgICBTdHJpbmcgdXJsRmlsdGVyID0gdHJpZ2dlck9iamVjdC0+Z2V0U3RyaW5nKCJ1
cmwtZmlsdGVyIl9zKTsKICAgICBpZiAodXJsRmlsdGVyLmlzRW1wdHkoKSkKICAgICAgICAgcmV0
dXJuIG1ha2VVbmV4cGVjdGVkKENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWRVUkxG
aWx0ZXJJblRyaWdnZXIpOwogCiAgICAgVHJpZ2dlciB0cmlnZ2VyOwogICAgIHRyaWdnZXIudXJs
RmlsdGVyID0gdXJsRmlsdGVyOwogCi0gICAgaWYgKHN0ZDo6b3B0aW9uYWw8Ym9vbD4gdXJsRmls
dGVyQ2FzZVNlbnNpdGl2ZVZhbHVlID0gdHJpZ2dlck9iamVjdC0+Z2V0Qm9vbGVhbigidXJsLWZp
bHRlci1pcy1jYXNlLXNlbnNpdGl2ZSIpKQorICAgIGlmIChzdGQ6Om9wdGlvbmFsPGJvb2w+IHVy
bEZpbHRlckNhc2VTZW5zaXRpdmVWYWx1ZSA9IHRyaWdnZXJPYmplY3QtPmdldEJvb2xlYW4oInVy
bC1maWx0ZXItaXMtY2FzZS1zZW5zaXRpdmUiX3MpKQogICAgICAgICB0cmlnZ2VyLnVybEZpbHRl
cklzQ2FzZVNlbnNpdGl2ZSA9ICp1cmxGaWx0ZXJDYXNlU2Vuc2l0aXZlVmFsdWU7CiAKLSAgICBp
ZiAoc3RkOjpvcHRpb25hbDxib29sPiB0b3BVUkxGaWx0ZXJDYXNlU2Vuc2l0aXZlVmFsdWUgPSB0
cmlnZ2VyT2JqZWN0LT5nZXRCb29sZWFuKCJ0b3AtdXJsLWZpbHRlci1pcy1jYXNlLXNlbnNpdGl2
ZSIpKQorICAgIGlmIChzdGQ6Om9wdGlvbmFsPGJvb2w+IHRvcFVSTEZpbHRlckNhc2VTZW5zaXRp
dmVWYWx1ZSA9IHRyaWdnZXJPYmplY3QtPmdldEJvb2xlYW4oInRvcC11cmwtZmlsdGVyLWlzLWNh
c2Utc2Vuc2l0aXZlIl9zKSkKICAgICAgICAgdHJpZ2dlci50b3BVUkxGaWx0ZXJJc0Nhc2VTZW5z
aXRpdmUgPSAqdG9wVVJMRmlsdGVyQ2FzZVNlbnNpdGl2ZVZhbHVlOwogCi0gICAgaWYgKHN0ZDo6
b3B0aW9uYWw8Ym9vbD4gZnJhbWVVUkxGaWx0ZXJDYXNlU2Vuc2l0aXZlVmFsdWUgPSB0cmlnZ2Vy
T2JqZWN0LT5nZXRCb29sZWFuKCJmcmFtZS11cmwtZmlsdGVyLWlzLWNhc2Utc2Vuc2l0aXZlIikp
CisgICAgaWYgKHN0ZDo6b3B0aW9uYWw8Ym9vbD4gZnJhbWVVUkxGaWx0ZXJDYXNlU2Vuc2l0aXZl
VmFsdWUgPSB0cmlnZ2VyT2JqZWN0LT5nZXRCb29sZWFuKCJmcmFtZS11cmwtZmlsdGVyLWlzLWNh
c2Utc2Vuc2l0aXZlIl9zKSkKICAgICAgICAgdHJpZ2dlci5mcmFtZVVSTEZpbHRlcklzQ2FzZVNl
bnNpdGl2ZSA9ICpmcmFtZVVSTEZpbHRlckNhc2VTZW5zaXRpdmVWYWx1ZTsKIAotICAgIGlmIChh
dXRvIHJlc291cmNlVHlwZVZhbHVlID0gdHJpZ2dlck9iamVjdC0+Z2V0VmFsdWUoInJlc291cmNl
LXR5cGUiKSkgeworICAgIGlmIChhdXRvIHJlc291cmNlVHlwZVZhbHVlID0gdHJpZ2dlck9iamVj
dC0+Z2V0VmFsdWUoInJlc291cmNlLXR5cGUiX3MpKSB7CiAgICAgICAgIGF1dG8gcmVzb3VyY2VU
eXBlQXJyYXkgPSByZXNvdXJjZVR5cGVWYWx1ZS0+YXNBcnJheSgpOwogICAgICAgICBpZiAoIXJl
c291cmNlVHlwZUFycmF5KQogICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKENvbnRl
bnRFeHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWRUcmlnZ2VyRmxhZ3NBcnJheSk7CkBAIC0xNDcs
NyArMTQ3LDcgQEAgc3RhdGljIEV4cGVjdGVkPFRyaWdnZXIsIHN0ZDo6ZXJyb3JfY29kZT4gbG9h
ZFRyaWdnZXIoY29uc3QgSlNPTjo6T2JqZWN0JiBydWxlT2IKICAgICAgICAgICAgIHJldHVybiBt
YWtlVW5leHBlY3RlZChlcnJvcik7CiAgICAgfQogCi0gICAgaWYgKGF1dG8gbG9hZFR5cGVWYWx1
ZSA9IHRyaWdnZXJPYmplY3QtPmdldFZhbHVlKCJsb2FkLXR5cGUiKSkgeworICAgIGlmIChhdXRv
IGxvYWRUeXBlVmFsdWUgPSB0cmlnZ2VyT2JqZWN0LT5nZXRWYWx1ZSgibG9hZC10eXBlIl9zKSkg
ewogICAgICAgICBhdXRvIGxvYWRUeXBlQXJyYXkgPSBsb2FkVHlwZVZhbHVlLT5hc0FycmF5KCk7
CiAgICAgICAgIGlmICghbG9hZFR5cGVBcnJheSkKICAgICAgICAgICAgIHJldHVybiBtYWtlVW5l
eHBlY3RlZChDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkVHJpZ2dlckZsYWdzQXJy
YXkpOwpAQCAtMTU1LDcgKzE1NSw3IEBAIHN0YXRpYyBFeHBlY3RlZDxUcmlnZ2VyLCBzdGQ6OmVy
cm9yX2NvZGU+IGxvYWRUcmlnZ2VyKGNvbnN0IEpTT046Ok9iamVjdCYgcnVsZU9iCiAgICAgICAg
ICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoZXJyb3IpOwogICAgIH0KIAotICAgIGlmIChhdXRv
IGxvYWRDb250ZXh0VmFsdWUgPSB0cmlnZ2VyT2JqZWN0LT5nZXRWYWx1ZSgibG9hZC1jb250ZXh0
IikpIHsKKyAgICBpZiAoYXV0byBsb2FkQ29udGV4dFZhbHVlID0gdHJpZ2dlck9iamVjdC0+Z2V0
VmFsdWUoImxvYWQtY29udGV4dCJfcykpIHsKICAgICAgICAgYXV0byBsb2FkQ29udGV4dEFycmF5
ID0gbG9hZENvbnRleHRWYWx1ZS0+YXNBcnJheSgpOwogICAgICAgICBpZiAoIWxvYWRDb250ZXh0
QXJyYXkpCiAgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoQ29udGVudEV4dGVuc2lv
bkVycm9yOjpKU09OSW52YWxpZFRyaWdnZXJGbGFnc0FycmF5KTsKQEAgLTIxMiwxMSArMjEyLDEx
IEBAIGJvb2wgaXNWYWxpZENTU1NlbGVjdG9yKGNvbnN0IFN0cmluZyYgc2VsZWN0b3IpCiAKIHN0
YXRpYyBzdGQ6Om9wdGlvbmFsPEV4cGVjdGVkPEFjdGlvbiwgc3RkOjplcnJvcl9jb2RlPj4gbG9h
ZEFjdGlvbihjb25zdCBKU09OOjpPYmplY3QmIHJ1bGVPYmplY3QsIGNvbnN0IFN0cmluZyYgdXJs
RmlsdGVyKQogewotICAgIGF1dG8gYWN0aW9uT2JqZWN0ID0gcnVsZU9iamVjdC5nZXRPYmplY3Qo
ImFjdGlvbiIpOworICAgIGF1dG8gYWN0aW9uT2JqZWN0ID0gcnVsZU9iamVjdC5nZXRPYmplY3Qo
ImFjdGlvbiJfcyk7CiAgICAgaWYgKCFhY3Rpb25PYmplY3QpCiAgICAgICAgIHJldHVybiBtYWtl
VW5leHBlY3RlZChDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkQWN0aW9uKTsKIAot
ICAgIFN0cmluZyBhY3Rpb25UeXBlID0gYWN0aW9uT2JqZWN0LT5nZXRTdHJpbmcoInR5cGUiKTsK
KyAgICBTdHJpbmcgYWN0aW9uVHlwZSA9IGFjdGlvbk9iamVjdC0+Z2V0U3RyaW5nKCJ0eXBlIl9z
KTsKIAogICAgIGlmIChhY3Rpb25UeXBlID09ICJibG9jayIpCiAgICAgICAgIHJldHVybiBBY3Rp
b24geyBCbG9ja0xvYWRBY3Rpb24oKSB9OwpAQCAtMjI1LDcgKzIyNSw3IEBAIHN0YXRpYyBzdGQ6
Om9wdGlvbmFsPEV4cGVjdGVkPEFjdGlvbiwgc3RkOjplcnJvcl9jb2RlPj4gbG9hZEFjdGlvbihj
b25zdCBKU09OOjpPCiAgICAgaWYgKGFjdGlvblR5cGUgPT0gImJsb2NrLWNvb2tpZXMiKQogICAg
ICAgICByZXR1cm4gQWN0aW9uIHsgQmxvY2tDb29raWVzQWN0aW9uKCkgfTsKICAgICBpZiAoYWN0
aW9uVHlwZSA9PSAiY3NzLWRpc3BsYXktbm9uZSIpIHsKLSAgICAgICAgU3RyaW5nIHNlbGVjdG9y
U3RyaW5nID0gYWN0aW9uT2JqZWN0LT5nZXRTdHJpbmcoInNlbGVjdG9yIik7CisgICAgICAgIFN0
cmluZyBzZWxlY3RvclN0cmluZyA9IGFjdGlvbk9iamVjdC0+Z2V0U3RyaW5nKCJzZWxlY3RvciJf
cyk7CiAgICAgICAgIGlmICghc2VsZWN0b3JTdHJpbmcpCiAgICAgICAgICAgICByZXR1cm4gbWFr
ZVVuZXhwZWN0ZWQoQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZENTU0Rpc3BsYXlO
b25lQWN0aW9uVHlwZSk7CiAgICAgICAgIGlmICghaXNWYWxpZENTU1NlbGVjdG9yKHNlbGVjdG9y
U3RyaW5nKSkKQEAgLTIzNSw3ICsyMzUsNyBAQCBzdGF0aWMgc3RkOjpvcHRpb25hbDxFeHBlY3Rl
ZDxBY3Rpb24sIHN0ZDo6ZXJyb3JfY29kZT4+IGxvYWRBY3Rpb24oY29uc3QgSlNPTjo6TwogICAg
IGlmIChhY3Rpb25UeXBlID09ICJtYWtlLWh0dHBzIikKICAgICAgICAgcmV0dXJuIEFjdGlvbiB7
IE1ha2VIVFRQU0FjdGlvbigpIH07CiAgICAgaWYgKGFjdGlvblR5cGUgPT0gIm5vdGlmeSIpIHsK
LSAgICAgICAgU3RyaW5nIG5vdGlmaWNhdGlvbiA9IGFjdGlvbk9iamVjdC0+Z2V0U3RyaW5nKCJu
b3RpZmljYXRpb24iKTsKKyAgICAgICAgU3RyaW5nIG5vdGlmaWNhdGlvbiA9IGFjdGlvbk9iamVj
dC0+Z2V0U3RyaW5nKCJub3RpZmljYXRpb24iX3MpOwogICAgICAgICBpZiAoIW5vdGlmaWNhdGlv
bikKICAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50RXh0ZW5zaW9uRXJy
b3I6OkpTT05JbnZhbGlkTm90aWZpY2F0aW9uKTsKICAgICAgICAgcmV0dXJuIEFjdGlvbiB7IE5v
dGlmeUFjdGlvbiB7IHsgV1RGTW92ZShub3RpZmljYXRpb24pIH0gfSB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvU2VyaWFsaXplZE5GQS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9TZXJpYWxpemVkTkZBLmNwcAppbmRleCAwNGM2
ZGE1YTg0OGQwODkxZjMzZjRmODM5ZGE5NTJiOGM3Njc5YTA5Li4wNTJiNTk3YmNmYjkyYTc0Mzc5
M2Y5MTVlZDY5NmU3YTBlOWU0OGYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50
ZXh0ZW5zaW9ucy9TZXJpYWxpemVkTkZBLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50
ZXh0ZW5zaW9ucy9TZXJpYWxpemVkTkZBLmNwcApAQCAtNTIsNyArNTIsNyBAQCBib29sIHdyaXRl
QWxsVG9GaWxlKEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSBmaWxlLCBjb25zdCBUJiBj
b250YWluZXIpCiBzdGQ6Om9wdGlvbmFsPFNlcmlhbGl6ZWRORkE+IFNlcmlhbGl6ZWRORkE6OnNl
cmlhbGl6ZShORkEmJiBuZmEpCiB7CiAgICAgYXV0byBmaWxlID0gRmlsZVN5c3RlbTo6aW52YWxp
ZFBsYXRmb3JtRmlsZUhhbmRsZTsKLSAgICBhdXRvIGZpbGVuYW1lID0gRmlsZVN5c3RlbTo6b3Bl
blRlbXBvcmFyeUZpbGUoIlNlcmlhbGl6ZWRORkEiLCBmaWxlKTsKKyAgICBhdXRvIGZpbGVuYW1l
ID0gRmlsZVN5c3RlbTo6b3BlblRlbXBvcmFyeUZpbGUoIlNlcmlhbGl6ZWRORkEiX3MsIGZpbGUp
OwogICAgIGlmICghRmlsZVN5c3RlbTo6aXNIYW5kbGVWYWxpZChmaWxlKSkKICAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4
dGVuc2lvbnMvVVJMRmlsdGVyUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRl
bnNpb25zL1VSTEZpbHRlclBhcnNlci5jcHAKaW5kZXggZDg3MjlkMzkwZDkwNzMwYTBlYjdkYjNh
OGM5ZjE3MThjODZmN2EzYS4uNGZmMTIyNWZhYTgyMjg1YjMxY2VkNTc1OWRiODk3NzY5MTg5ZTc0
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvVVJMRmlsdGVy
UGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9VUkxGaWx0
ZXJQYXJzZXIuY3BwCkBAIC0zNjksMzkgKzM2OSwzOSBAQCBVUkxGaWx0ZXJQYXJzZXI6OlBhcnNl
U3RhdHVzIFVSTEZpbHRlclBhcnNlcjo6YWRkUGF0dGVybihjb25zdCBTdHJpbmcmIHBhdHRlcm4s
CiAgICAgcmV0dXJuIHN0YXR1czsKIH0KIAotU3RyaW5nIFVSTEZpbHRlclBhcnNlcjo6c3RhdHVz
U3RyaW5nKFBhcnNlU3RhdHVzIHN0YXR1cykKK0FTQ0lJTGl0ZXJhbCBVUkxGaWx0ZXJQYXJzZXI6
OnN0YXR1c1N0cmluZyhQYXJzZVN0YXR1cyBzdGF0dXMpCiB7CiAgICAgc3dpdGNoIChzdGF0dXMp
IHsKICAgICBjYXNlIE9rOgotICAgICAgICByZXR1cm4gIk9rIjsKKyAgICAgICAgcmV0dXJuICJP
ayJfczsKICAgICBjYXNlIE1hdGNoZXNFdmVyeXRoaW5nOgotICAgICAgICByZXR1cm4gIk1hdGNo
ZXMgZXZlcnl0aGluZy4iOworICAgICAgICByZXR1cm4gIk1hdGNoZXMgZXZlcnl0aGluZy4iX3M7
CiAgICAgY2FzZSBOb25BU0NJSToKLSAgICAgICAgcmV0dXJuICJPbmx5IEFTQ0lJIGNoYXJhY3Rl
cnMgYXJlIHN1cHBvcnRlZCBpbiBwYXR0ZXJuLiI7CisgICAgICAgIHJldHVybiAiT25seSBBU0NJ
SSBjaGFyYWN0ZXJzIGFyZSBzdXBwb3J0ZWQgaW4gcGF0dGVybi4iX3M7CiAgICAgY2FzZSBVbnN1
cHBvcnRlZENoYXJhY3RlckNsYXNzOgotICAgICAgICByZXR1cm4gIkNoYXJhY3RlciBjbGFzcyBp
cyBub3Qgc3VwcG9ydGVkLiI7CisgICAgICAgIHJldHVybiAiQ2hhcmFjdGVyIGNsYXNzIGlzIG5v
dCBzdXBwb3J0ZWQuIl9zOwogICAgIGNhc2UgQmFja1JlZmVyZW5jZToKLSAgICAgICAgcmV0dXJu
ICJQYXR0ZXJucyBjYW5ub3QgY29udGFpbiBiYWNrcmVmZXJlbmNlcy4iOworICAgICAgICByZXR1
cm4gIlBhdHRlcm5zIGNhbm5vdCBjb250YWluIGJhY2tyZWZlcmVuY2VzLiJfczsKICAgICBjYXNl
IEZvcndhcmRSZWZlcmVuY2U6Ci0gICAgICAgIHJldHVybiAiUGF0dGVybnMgY2Fubm90IGNvbnRh
aW4gZm9yd2FyZCByZWZlcmVuY2VzLiI7CisgICAgICAgIHJldHVybiAiUGF0dGVybnMgY2Fubm90
IGNvbnRhaW4gZm9yd2FyZCByZWZlcmVuY2VzLiJfczsKICAgICBjYXNlIE1pc3BsYWNlZFN0YXJ0
T2ZMaW5lOgotICAgICAgICByZXR1cm4gIlN0YXJ0IG9mIGxpbmUgYXNzZXJ0aW9uIGNhbiBvbmx5
IGFwcGVhciBhcyB0aGUgZmlyc3QgdGVybSBpbiBhIGZpbHRlci4iOworICAgICAgICByZXR1cm4g
IlN0YXJ0IG9mIGxpbmUgYXNzZXJ0aW9uIGNhbiBvbmx5IGFwcGVhciBhcyB0aGUgZmlyc3QgdGVy
bSBpbiBhIGZpbHRlci4iX3M7CiAgICAgY2FzZSBXb3JkQm91bmRhcnk6Ci0gICAgICAgIHJldHVy
biAiV29yZCBib3VuZGFyaWVzIGFzc2VydGlvbnMgYXJlIG5vdCBzdXBwb3J0ZWQgeWV0LiI7Cisg
ICAgICAgIHJldHVybiAiV29yZCBib3VuZGFyaWVzIGFzc2VydGlvbnMgYXJlIG5vdCBzdXBwb3J0
ZWQgeWV0LiJfczsKICAgICBjYXNlIEF0b21DaGFyYWN0ZXI6Ci0gICAgICAgIHJldHVybiAiQnVp
bHRpbnMgY2hhcmFjdGVyIGNsYXNzIGF0b21zIGFyZSBub3Qgc3VwcG9ydGVkIHlldC4iOworICAg
ICAgICByZXR1cm4gIkJ1aWx0aW5zIGNoYXJhY3RlciBjbGFzcyBhdG9tcyBhcmUgbm90IHN1cHBv
cnRlZCB5ZXQuIl9zOwogICAgIGNhc2UgR3JvdXA6Ci0gICAgICAgIHJldHVybiAiR3JvdXBzIGFy
ZSBub3Qgc3VwcG9ydGVkIHlldC4iOworICAgICAgICByZXR1cm4gIkdyb3VwcyBhcmUgbm90IHN1
cHBvcnRlZCB5ZXQuIl9zOwogICAgIGNhc2UgRGlzanVuY3Rpb246Ci0gICAgICAgIHJldHVybiAi
RGlzanVuY3Rpb25zIGFyZSBub3Qgc3VwcG9ydGVkIHlldC4iOworICAgICAgICByZXR1cm4gIkRp
c2p1bmN0aW9ucyBhcmUgbm90IHN1cHBvcnRlZCB5ZXQuIl9zOwogICAgIGNhc2UgTWlzcGxhY2Vk
RW5kT2ZMaW5lOgotICAgICAgICByZXR1cm4gIlRoZSBlbmQgb2YgbGluZSBhc3NlcnRpb24gbXVz
dCBiZSB0aGUgbGFzdCB0ZXJtIGluIGFuIGV4cHJlc3Npb24uIjsKKyAgICAgICAgcmV0dXJuICJU
aGUgZW5kIG9mIGxpbmUgYXNzZXJ0aW9uIG11c3QgYmUgdGhlIGxhc3QgdGVybSBpbiBhbiBleHBy
ZXNzaW9uLiJfczsKICAgICBjYXNlIEVtcHR5UGF0dGVybjoKLSAgICAgICAgcmV0dXJuICJFbXB0
eSBwYXR0ZXJuLiI7CisgICAgICAgIHJldHVybiAiRW1wdHkgcGF0dGVybi4iX3M7CiAgICAgY2Fz
ZSBZYXJyRXJyb3I6Ci0gICAgICAgIHJldHVybiAiSW50ZXJuYWwgZXJyb3IgaW4gWUFSUi4iOwor
ICAgICAgICByZXR1cm4gIkludGVybmFsIGVycm9yIGluIFlBUlIuIl9zOwogICAgIGNhc2UgSW52
YWxpZFF1YW50aWZpZXI6Ci0gICAgICAgIHJldHVybiAiQXJiaXRyYXJ5IGF0b20gcmVwZXRpdGlv
bnMgYXJlIG5vdCBzdXBwb3J0ZWQuIjsKKyAgICAgICAgcmV0dXJuICJBcmJpdHJhcnkgYXRvbSBy
ZXBldGl0aW9ucyBhcmUgbm90IHN1cHBvcnRlZC4iX3M7CiAgICAgfQogCiAgICAgUkVMRUFTRV9B
U1NFUlRfTk9UX1JFQUNIRUQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRl
eHRlbnNpb25zL1VSTEZpbHRlclBhcnNlci5oIGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVu
c2lvbnMvVVJMRmlsdGVyUGFyc2VyLmgKaW5kZXggYjVjMWY2ZDlmZDJlN2M5NGNiMjU2NTc1Njg5
ZGY0YjcwNzA3OWE5ZC4uODg5ODNiNTVjM2NiZWQ1OWY0YTRhMDFhZWQyNWE0MzJjODAyOGI0MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvVVJMRmlsdGVyUGFy
c2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvVVJMRmlsdGVyUGFy
c2VyLmgKQEAgLTU0LDcgKzU0LDcgQEAgcHVibGljOgogICAgICAgICBZYXJyRXJyb3IsCiAgICAg
ICAgIEludmFsaWRRdWFudGlmaWVyLAogICAgIH07Ci0gICAgc3RhdGljIFN0cmluZyBzdGF0dXNT
dHJpbmcoUGFyc2VTdGF0dXMpOworICAgIHN0YXRpYyBBU0NJSUxpdGVyYWwgc3RhdHVzU3RyaW5n
KFBhcnNlU3RhdHVzKTsKICAgICBleHBsaWNpdCBVUkxGaWx0ZXJQYXJzZXIoQ29tYmluZWRVUkxG
aWx0ZXJzJik7CiAgICAgflVSTEZpbHRlclBhcnNlcigpOwogICAgIFBhcnNlU3RhdHVzIGFkZFBh
dHRlcm4oY29uc3QgU3RyaW5nJiBwYXR0ZXJuLCBib29sIHBhdHRlcm5Jc0Nhc2VTZW5zaXRpdmUs
IHVpbnQ2NF90IHBhdHRlcm5JZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8v
U3VidGxlQ3J5cHRvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9TdWJ0bGVDcnlwdG8uY3Bw
CmluZGV4IGVhYTMyMThmY2Y3Yjc3ODU0ZmIyMzg1ZTUwMWE5OTk0MzZmYmViNTguLjlkNmY0MzAz
NjU5ODJkNmU5NTBlOWMxYTZhMWQ2YjJjMWE3ZDM5NmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2NyeXB0by9TdWJ0bGVDcnlwdG8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9T
dWJ0bGVDcnlwdG8uY3BwCkBAIC01MzQsNyArNTM0LDcgQEAgdm9pZCBTdWJ0bGVDcnlwdG86OmFk
ZEF1dGhlbnRpY2F0ZWRFbmNyeXB0aW9uV2FybmluZ0lmTmVjZXNzYXJ5KENyeXB0b0FsZ29yaXRo
bUkKIHsKICAgICBpZiAoYWxnb3JpdGhtSWRlbnRpZmllciA9PSBDcnlwdG9BbGdvcml0aG1JZGVu
dGlmaWVyOjpBRVNfQ0JDIHx8IGFsZ29yaXRobUlkZW50aWZpZXIgPT0gQ3J5cHRvQWxnb3JpdGht
SWRlbnRpZmllcjo6QUVTX0NUUikgewogICAgICAgICBpZiAoIXNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKS0+aGFzTG9nZ2VkQXV0aGVudGljYXRlZEVuY3J5cHRpb25XYXJuaW5nKCkpIHsKLSAgICAg
ICAgICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2Fn
ZVNvdXJjZTo6U2VjdXJpdHksIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgIkFFUy1DQkMgYW5kIEFF
Uy1DVFIgZG8gbm90IHByb3ZpZGUgYXV0aGVudGljYXRpb24gYnkgZGVmYXVsdCwgYW5kIGltcGxl
bWVudGluZyBpdCBtYW51YWxseSBjYW4gcmVzdWx0IGluIG1pbm9yLCBidXQgc2VyaW91cyBtaXN0
YWtlcy4gV2UgcmVjb21tZW5kZWQgdXNpbmcgYXV0aGVudGljYXRlZCBlbmNyeXB0aW9uIGxpa2Ug
QUVTLUdDTSB0byBwcm90ZWN0IGFnYWluc3QgY2hvc2VuLWNpcGhlcnRleHQgYXR0YWNrcy4iKTsK
KyAgICAgICAgICAgIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+YWRkQ29uc29sZU1lc3NhZ2Uo
TWVzc2FnZVNvdXJjZTo6U2VjdXJpdHksIE1lc3NhZ2VMZXZlbDo6V2FybmluZywgIkFFUy1DQkMg
YW5kIEFFUy1DVFIgZG8gbm90IHByb3ZpZGUgYXV0aGVudGljYXRpb24gYnkgZGVmYXVsdCwgYW5k
IGltcGxlbWVudGluZyBpdCBtYW51YWxseSBjYW4gcmVzdWx0IGluIG1pbm9yLCBidXQgc2VyaW91
cyBtaXN0YWtlcy4gV2UgcmVjb21tZW5kZWQgdXNpbmcgYXV0aGVudGljYXRlZCBlbmNyeXB0aW9u
IGxpa2UgQUVTLUdDTSB0byBwcm90ZWN0IGFnYWluc3QgY2hvc2VuLWNpcGhlcnRleHQgYXR0YWNr
cy4iX3MpOwogICAgICAgICAgICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5zZXRIYXNMb2dn
ZWRBdXRoZW50aWNhdGVkRW5jcnlwdGlvbldhcm5pbmcodHJ1ZSk7CiAgICAgICAgIH0KICAgICB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdv
cml0aG1BRVNfQ0JDLmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9B
bGdvcml0aG1BRVNfQ0JDLmgKaW5kZXggMjczMjk4NWI3N2ZlZGZjMzk2NzRkNDc0OWQ4OTU1MGEw
YTE3MWMyNi4uYjc0NDNhNzMzOTg0MjA4OGY4M2NjYzZmMzVjYTI5NzcxNjA4Y2NmYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVT
X0NCQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29y
aXRobUFFU19DQkMuaApAQCAtNDEsNyArNDEsNyBAQCBwdWJsaWM6CiAgICAgICAgIE5vCiAgICAg
fTsKIAotICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3QgY2hhciogc19uYW1lID0gIkFFUy1DQkMi
OworICAgIHN0YXRpYyBjb25zdGV4cHIgQVNDSUlMaXRlcmFsIHNfbmFtZSA9ICJBRVMtQ0JDIl9z
OwogICAgIHN0YXRpYyBjb25zdGV4cHIgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBzX2lkZW50
aWZpZXIgPSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpBRVNfQ0JDOwogICAgIHN0YXRpYyBS
ZWY8Q3J5cHRvQWxnb3JpdGhtPiBjcmVhdGUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NGQi5oIGIvU291cmNlL1dl
YkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NGQi5oCmluZGV4IGMy
Mjc0MTkxZjYzNWI4MzNhNDkxZTgyY2IxZGU3ZGE4MTAzYzZkOWEuLjUwOGEyMDMzNjRhY2JhY2Zj
MGZmYzg1NzI3NTI3OWVmNTQ2Y2ZjODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0
by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DRkIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfQ0ZCLmgKQEAgLTM2LDcgKzM2
LDcgQEAgY2xhc3MgQ3J5cHRvS2V5QUVTOwogCiBjbGFzcyBDcnlwdG9BbGdvcml0aG1BRVNfQ0ZC
IGZpbmFsIDogcHVibGljIENyeXB0b0FsZ29yaXRobSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNv
bnN0ZXhwciBjb25zdCBjaGFyKiBzX25hbWUgPSAiQUVTLUNGQi04IjsKKyAgICBzdGF0aWMgY29u
c3RleHByIEFTQ0lJTGl0ZXJhbCBzX25hbWUgPSAiQUVTLUNGQi04Il9zOwogICAgIHN0YXRpYyBj
b25zdGV4cHIgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBzX2lkZW50aWZpZXIgPSBDcnlwdG9B
bGdvcml0aG1JZGVudGlmaWVyOjpBRVNfQ0ZCOwogICAgIHN0YXRpYyBSZWY8Q3J5cHRvQWxnb3Jp
dGhtPiBjcmVhdGUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29y
aXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NUUi5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2Fs
Z29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NUUi5oCmluZGV4IDcxOGY2ZTBlMzM4NmU2ZmU2
MjUzOTVhZmJiNzlhZDMwYzRmYTQxNGEuLjhiZDM5MzM5ZGMzNjAwZjZjNDg2ZWE2MTBjMWI4MjQ2
YjhjMjI3MDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0Ny
eXB0b0FsZ29yaXRobUFFU19DVFIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3Jp
dGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfQ1RSLmgKQEAgLTY0LDcgKzY0LDcgQEAgcHVibGljOgog
ICAgICAgICBjb25zdCBzaXplX3QgbV9jb3VudGVyTGVuZ3RoOwogICAgIH07CiAKLSAgICBzdGF0
aWMgY29uc3RleHByIGNvbnN0IGNoYXIqIHNfbmFtZSA9ICJBRVMtQ1RSIjsKKyAgICBzdGF0aWMg
Y29uc3RleHByIEFTQ0lJTGl0ZXJhbCBzX25hbWUgPSAiQUVTLUNUUiJfczsKICAgICBzdGF0aWMg
Y29uc3RleHByIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgc19pZGVudGlmaWVyID0gQ3J5cHRv
QWxnb3JpdGhtSWRlbnRpZmllcjo6QUVTX0NUUjsKICAgICBzdGF0aWMgUmVmPENyeXB0b0FsZ29y
aXRobT4gY3JlYXRlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdv
cml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19HQ00uaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9h
bGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19HQ00uaAppbmRleCBkMGFkMWYxM2MxNzhiNWNj
OWIxNzZlYjMwZTZjZWMyYTFiY2I0NjU4Li41MzMxMGUxMTEwNzVlMTYzNGVmM2UwNTdiNGFkZjZh
MTNjNjkyMzFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9D
cnlwdG9BbGdvcml0aG1BRVNfR0NNLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29y
aXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0dDTS5oCkBAIC0zNiw3ICszNiw3IEBAIGNsYXNzIENy
eXB0b0tleUFFUzsKIAogY2xhc3MgQ3J5cHRvQWxnb3JpdGhtQUVTX0dDTSBmaW5hbCA6IHB1Ymxp
YyBDcnlwdG9BbGdvcml0aG0gewogcHVibGljOgotICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3Qg
Y2hhciogc19uYW1lID0gIkFFUy1HQ00iOworICAgIHN0YXRpYyBjb25zdGV4cHIgQVNDSUlMaXRl
cmFsIHNfbmFtZSA9ICJBRVMtR0NNIl9zOwogICAgIHN0YXRpYyBjb25zdGV4cHIgQ3J5cHRvQWxn
b3JpdGhtSWRlbnRpZmllciBzX2lkZW50aWZpZXIgPSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVy
OjpBRVNfR0NNOwogICAgIHN0YXRpYyBSZWY8Q3J5cHRvQWxnb3JpdGhtPiBjcmVhdGUoKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3Jp
dGhtQUVTX0tXLmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdv
cml0aG1BRVNfS1cuaAppbmRleCA1N2U2OWMxNWMxMmM3ZWUxOGViNzY1MThkZmY4N2JmNGI1NzI0
Yjk5Li5hMDhkZWMzZjI2Y2JiNTk5MTU0YTIzNTY1OTBlZjBmZDE3N2M2M2RiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfS1cu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1B
RVNfS1cuaApAQCAtMzUsNyArMzUsNyBAQCBjbGFzcyBDcnlwdG9LZXlBRVM7CiAKIGNsYXNzIENy
eXB0b0FsZ29yaXRobUFFU19LVyBmaW5hbCA6IHB1YmxpYyBDcnlwdG9BbGdvcml0aG0gewogcHVi
bGljOgotICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3QgY2hhciogc19uYW1lID0gIkFFUy1LVyI7
CisgICAgc3RhdGljIGNvbnN0ZXhwciBBU0NJSUxpdGVyYWwgc19uYW1lID0gIkFFUy1LVyJfczsK
ICAgICBzdGF0aWMgY29uc3RleHByIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgc19pZGVudGlm
aWVyID0gQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6QUVTX0tXOwogICAgIHN0YXRpYyBSZWY8
Q3J5cHRvQWxnb3JpdGhtPiBjcmVhdGUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtRUNESC5oIGIvU291cmNlL1dlYkNvcmUv
Y3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtRUNESC5oCmluZGV4IDkzYTE1YTJkYTM1
MWRjZTcyNzQzMzgxOTdkMjY2MzEwNTg1ZjdiZjUuLjMyZDU1NDU2Yzk3MDgyNWNjZTU1MmQ3ZGUw
NDNhNDI5NTBkMGUyM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0
aG1zL0NyeXB0b0FsZ29yaXRobUVDREguaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxn
b3JpdGhtcy9DcnlwdG9BbGdvcml0aG1FQ0RILmgKQEAgLTM1LDcgKzM1LDcgQEAgY2xhc3MgQ3J5
cHRvS2V5RUM7CiAKIGNsYXNzIENyeXB0b0FsZ29yaXRobUVDREggZmluYWwgOiBwdWJsaWMgQ3J5
cHRvQWxnb3JpdGhtIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3RleHByIGNvbnN0IGNoYXIq
IHNfbmFtZSA9ICJFQ0RIIjsKKyAgICBzdGF0aWMgY29uc3RleHByIEFTQ0lJTGl0ZXJhbCBzX25h
bWUgPSAiRUNESCJfczsKICAgICBzdGF0aWMgY29uc3RleHByIENyeXB0b0FsZ29yaXRobUlkZW50
aWZpZXIgc19pZGVudGlmaWVyID0gQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6RUNESDsKICAg
ICBzdGF0aWMgUmVmPENyeXB0b0FsZ29yaXRobT4gY3JlYXRlKCk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUVDRFNBLmggYi9T
b3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1FQ0RTQS5oCmlu
ZGV4IDNhNTkxYmRmYWYyMjg4NTBkZThjMDgyYmYyNzdhMTkwMDYzODllNjYuLmI3Yzc4ODlmOGUw
MzIxMzRjM2RlMDNiN2FhYmY3NWM1MmY4MmJkM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUVDRFNBLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtRUNEU0EuaApAQCAtMzYsNyAr
MzYsNyBAQCBjbGFzcyBDcnlwdG9LZXlFQzsKIAogY2xhc3MgQ3J5cHRvQWxnb3JpdGhtRUNEU0Eg
ZmluYWwgOiBwdWJsaWMgQ3J5cHRvQWxnb3JpdGhtIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29u
c3RleHByIGNvbnN0IGNoYXIqIHNfbmFtZSA9ICJFQ0RTQSI7CisgICAgc3RhdGljIGNvbnN0ZXhw
ciBBU0NJSUxpdGVyYWwgc19uYW1lID0gIkVDRFNBIl9zOwogICAgIHN0YXRpYyBjb25zdGV4cHIg
Q3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBzX2lkZW50aWZpZXIgPSBDcnlwdG9BbGdvcml0aG1J
ZGVudGlmaWVyOjpFQ0RTQTsKICAgICBzdGF0aWMgUmVmPENyeXB0b0FsZ29yaXRobT4gY3JlYXRl
KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0
b0FsZ29yaXRobUhLREYuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0
b0FsZ29yaXRobUhLREYuaAppbmRleCAxZGRjZDlkMWExNDYzMTYwMzIxYjExNmFlNzRkOWEzNmQ5
Y2IxZDZhLi44ZjM5MzliMTliNGVjOTI4Njc4MDczZjI3NDZhOTViMGVmM2IzNWEyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1IS0RG
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGht
SEtERi5oCkBAIC0zNiw3ICszNiw3IEBAIGNsYXNzIENyeXB0b0tleVJhdzsKIAogY2xhc3MgQ3J5
cHRvQWxnb3JpdGhtSEtERiBmaW5hbCA6IHB1YmxpYyBDcnlwdG9BbGdvcml0aG0gewogcHVibGlj
OgotICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3QgY2hhciogc19uYW1lID0gIkhLREYiOworICAg
IHN0YXRpYyBjb25zdGV4cHIgQVNDSUlMaXRlcmFsIHNfbmFtZSA9ICJIS0RGIl9zOwogICAgIHN0
YXRpYyBjb25zdGV4cHIgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBzX2lkZW50aWZpZXIgPSBD
cnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpIS0RGOwogICAgIHN0YXRpYyBSZWY8Q3J5cHRvQWxn
b3JpdGhtPiBjcmVhdGUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2Fs
Z29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtSE1BQy5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2Fs
Z29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtSE1BQy5oCmluZGV4IGZhOGYwYWRkY2NlMTI4ZjI0NzE1
MTczZmFmYmZhOTI3MzI1MjUwZDMuLjlmMTA4NDY5OGFiNDNmN2U1ZWQ5OWJiY2FkODVmODExYWFi
YjVjMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0
b0FsZ29yaXRobUhNQUMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9D
cnlwdG9BbGdvcml0aG1ITUFDLmgKQEAgLTM1LDcgKzM1LDcgQEAgY2xhc3MgQ3J5cHRvS2V5SE1B
QzsKIAogY2xhc3MgQ3J5cHRvQWxnb3JpdGhtSE1BQyBmaW5hbCA6IHB1YmxpYyBDcnlwdG9BbGdv
cml0aG0gewogcHVibGljOgotICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3QgY2hhciogc19uYW1l
ID0gIkhNQUMiOworICAgIHN0YXRpYyBjb25zdGV4cHIgQVNDSUlMaXRlcmFsIHNfbmFtZSA9ICJI
TUFDIl9zOwogICAgIHN0YXRpYyBjb25zdGV4cHIgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBz
X2lkZW50aWZpZXIgPSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpITUFDOwogICAgIHN0YXRp
YyBSZWY8Q3J5cHRvQWxnb3JpdGhtPiBjcmVhdGUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUEJLREYyLmggYi9Tb3VyY2Uv
V2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1QQktERjIuaAppbmRleCBi
ZDk3NDVjNzAzNThlNzhkNTNiNDgwY2MyNjZkYzQ0OTc3OGZiODQyLi4zNDA2OWU1MWZhYWU2YTIw
NzIyMjk4MjhkMTZkOWEzMjlkNWE4YmY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlw
dG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1QQktERjIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1QQktERjIuaApAQCAtMzYsNyArMzYs
NyBAQCBjbGFzcyBDcnlwdG9LZXlSYXc7CiAKIGNsYXNzIENyeXB0b0FsZ29yaXRobVBCS0RGMiBm
aW5hbCA6IHB1YmxpYyBDcnlwdG9BbGdvcml0aG0gewogcHVibGljOgotICAgIHN0YXRpYyBjb25z
dGV4cHIgY29uc3QgY2hhciogc19uYW1lID0gIlBCS0RGMiI7CisgICAgc3RhdGljIGNvbnN0ZXhw
ciBBU0NJSUxpdGVyYWwgc19uYW1lID0gIlBCS0RGMiJfczsKICAgICBzdGF0aWMgY29uc3RleHBy
IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgc19pZGVudGlmaWVyID0gQ3J5cHRvQWxnb3JpdGht
SWRlbnRpZmllcjo6UEJLREYyOwogICAgIHN0YXRpYyBSZWY8Q3J5cHRvQWxnb3JpdGhtPiBjcmVh
dGUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5
cHRvQWxnb3JpdGhtUlNBRVNfUEtDUzFfdjFfNS5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2Fs
Z29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBRVNfUEtDUzFfdjFfNS5oCmluZGV4IDhiNTFiNDFl
N2MwYTU3ZjY2OGY1ODQ3OWZhMjllNjM4ZTllMWFkMGIuLmQyMWU2YzFlZTI4NmY3ZGM2Mzg3NWE5
ODRhYjIzZTcwMDRlZTE4ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdv
cml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQUVTX1BLQ1MxX3YxXzUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FFU19QS0NTMV92MV81LmgK
QEAgLTM1LDcgKzM1LDcgQEAgY2xhc3MgQ3J5cHRvS2V5UlNBOwogCiBjbGFzcyBDcnlwdG9BbGdv
cml0aG1SU0FFU19QS0NTMV92MV81IGZpbmFsIDogcHVibGljIENyeXB0b0FsZ29yaXRobSB7CiBw
dWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBjb25zdCBjaGFyKiBzX25hbWUgPSAiUlNBRVMt
UEtDUzEtdjFfNSI7CisgICAgc3RhdGljIGNvbnN0ZXhwciBBU0NJSUxpdGVyYWwgc19uYW1lID0g
IlJTQUVTLVBLQ1MxLXYxXzUiX3M7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBDcnlwdG9BbGdvcml0
aG1JZGVudGlmaWVyIHNfaWRlbnRpZmllciA9IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlJT
QUVTX1BLQ1MxX3YxXzU7CiAgICAgc3RhdGljIFJlZjxDcnlwdG9BbGdvcml0aG0+IGNyZWF0ZSgp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9B
bGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNS5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29y
aXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzUuaAppbmRleCBkOWI3YjQ1MDcy
M2FmY2RhOTk5OTVjYjg4M2NkYTM5Y2FmMzI4ZGNlLi5kMTg1ZDNhNGJkYTJkYTM3Y2RiMGRmMjhm
NjhhMjczZGRlOTliODYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3Jp
dGhtcy9DcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81LmgK
QEAgLTM1LDcgKzM1LDcgQEAgY2xhc3MgQ3J5cHRvS2V5UlNBOwogCiBjbGFzcyBDcnlwdG9BbGdv
cml0aG1SU0FTU0FfUEtDUzFfdjFfNSBmaW5hbCA6IHB1YmxpYyBDcnlwdG9BbGdvcml0aG0gewog
cHVibGljOgotICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3QgY2hhciogc19uYW1lID0gIlJTQVNT
QS1QS0NTMS12MV81IjsKKyAgICBzdGF0aWMgY29uc3RleHByIEFTQ0lJTGl0ZXJhbCBzX25hbWUg
PSAiUlNBU1NBLVBLQ1MxLXYxXzUiX3M7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBDcnlwdG9BbGdv
cml0aG1JZGVudGlmaWVyIHNfaWRlbnRpZmllciA9IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6
OlJTQVNTQV9QS0NTMV92MV81OwogICAgIHN0YXRpYyBSZWY8Q3J5cHRvQWxnb3JpdGhtPiBjcmVh
dGUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5
cHRvQWxnb3JpdGhtUlNBX09BRVAuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1z
L0NyeXB0b0FsZ29yaXRobVJTQV9PQUVQLmgKaW5kZXggMDk2YWYzY2EyMzA3OTU5ZjI0NTRlZTNj
ZmQyYjNmMGUyMmI0NzNmMi4uZGJhN2VhOWQ1ZDcyMmU0MjdhM2IwYWE0ZjlkY2QzMmZmNDQ1OWYy
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxn
b3JpdGhtUlNBX09BRVAuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9D
cnlwdG9BbGdvcml0aG1SU0FfT0FFUC5oCkBAIC0zNiw3ICszNiw3IEBAIGNsYXNzIENyeXB0b0tl
eVJTQTsKIAogY2xhc3MgQ3J5cHRvQWxnb3JpdGhtUlNBX09BRVAgZmluYWwgOiBwdWJsaWMgQ3J5
cHRvQWxnb3JpdGhtIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3RleHByIGNvbnN0IGNoYXIq
IHNfbmFtZSA9ICJSU0EtT0FFUCI7CisgICAgc3RhdGljIGNvbnN0ZXhwciBBU0NJSUxpdGVyYWwg
c19uYW1lID0gIlJTQS1PQUVQIl9zOwogICAgIHN0YXRpYyBjb25zdGV4cHIgQ3J5cHRvQWxnb3Jp
dGhtSWRlbnRpZmllciBzX2lkZW50aWZpZXIgPSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpS
U0FfT0FFUDsKICAgICBzdGF0aWMgUmVmPENyeXB0b0FsZ29yaXRobT4gY3JlYXRlKCk7CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRo
bVJTQV9QU1MuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29y
aXRobVJTQV9QU1MuaAppbmRleCA1ODc5YTU2N2NjY2M3YjBhMWM5YWQ0ZDkxNzg5ZDlkMDU0YjAw
OTc0Li5iMWY3Zjc3MmNlNDIyNzhkNGQ5NGQ1YzBhNzZjYWU1ZWRmMGU0MGVhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0FfUFNT
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGht
UlNBX1BTUy5oCkBAIC0zNiw3ICszNiw3IEBAIGNsYXNzIENyeXB0b0tleVJTQTsKIAogY2xhc3Mg
Q3J5cHRvQWxnb3JpdGhtUlNBX1BTUyBmaW5hbCA6IHB1YmxpYyBDcnlwdG9BbGdvcml0aG0gewog
cHVibGljOgotICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3QgY2hhciogc19uYW1lID0gIlJTQS1Q
U1MiOworICAgIHN0YXRpYyBjb25zdGV4cHIgQVNDSUlMaXRlcmFsIHNfbmFtZSA9ICJSU0EtUFNT
Il9zOwogICAgIHN0YXRpYyBjb25zdGV4cHIgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBzX2lk
ZW50aWZpZXIgPSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpSU0FfUFNTOwogICAgIHN0YXRp
YyBSZWY8Q3J5cHRvQWxnb3JpdGhtPiBjcmVhdGUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMS5oIGIvU291cmNlL1dl
YkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMS5oCmluZGV4IGQ4MDdh
YmI5NzRjYmFhYzNiMGE3YmM3YWQ4NjU4ZmNhZmI1YWQ2YWUuLjFmZDc3NWE4MTM2NDNjMWIyZmFj
YzdkM2M5NDA5ZDMyZmUxY2U4NTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9h
bGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlw
dG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEExLmgKQEAgLTMzLDcgKzMzLDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDcnlwdG9BbGdvcml0aG1TSEExIGZpbmFsIDogcHVi
bGljIENyeXB0b0FsZ29yaXRobSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBjb25z
dCBjaGFyKiBzX25hbWUgPSAiU0hBLTEiOworICAgIHN0YXRpYyBjb25zdGV4cHIgQVNDSUlMaXRl
cmFsIHNfbmFtZSA9ICJTSEEtMSJfczsKICAgICBzdGF0aWMgY29uc3RleHByIENyeXB0b0FsZ29y
aXRobUlkZW50aWZpZXIgc19pZGVudGlmaWVyID0gQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6
U0hBXzE7CiAgICAgc3RhdGljIFJlZjxDcnlwdG9BbGdvcml0aG0+IGNyZWF0ZSgpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1T
SEEyMjQuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRo
bVNIQTIyNC5oCmluZGV4IDc4MDRiYWNmZjI1NzJkOGRjNjUxMTAwNDA0ZjkwNWJmOTNiZmM0YzYu
LjQ5M2UxNjJhYjM2NTJlNjZjMzUwNGE4ZDc5NWMyODY5ZDRkZGNlYzkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTIyNC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTIy
NC5oCkBAIC0zMyw3ICszMyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ3J5cHRv
QWxnb3JpdGhtU0hBMjI0IGZpbmFsIDogcHVibGljIENyeXB0b0FsZ29yaXRobSB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBjb25zdCBjaGFyKiBzX25hbWUgPSAiU0hBLTIyNCI7Cisg
ICAgc3RhdGljIGNvbnN0ZXhwciBBU0NJSUxpdGVyYWwgc19uYW1lID0gIlNIQS0yMjQiX3M7CiAg
ICAgc3RhdGljIGNvbnN0ZXhwciBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIHNfaWRlbnRpZmll
ciA9IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlNIQV8yMjQ7CiAgICAgc3RhdGljIFJlZjxD
cnlwdG9BbGdvcml0aG0+IGNyZWF0ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
cnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEyNTYuaCBiL1NvdXJjZS9XZWJDb3Jl
L2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTI1Ni5oCmluZGV4IGNlMjQwNGM3
NGQ1NWM4ZjI3NDQwNWU1NmY0ZDU4YTdmZjYxNjE1ZjkuLmY1YTg1NDNjODJjNTU0OGVlNDJiM2I5
MzI3MTFlNjg1NWVmOGYwZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdv
cml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTI1Ni5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0
by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTI1Ni5oCkBAIC0zMyw3ICszMyw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgQ3J5cHRvQWxnb3JpdGhtU0hBMjU2IGZpbmFsIDog
cHVibGljIENyeXB0b0FsZ29yaXRobSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBj
b25zdCBjaGFyKiBzX25hbWUgPSAiU0hBLTI1NiI7CisgICAgc3RhdGljIGNvbnN0ZXhwciBBU0NJ
SUxpdGVyYWwgc19uYW1lID0gIlNIQS0yNTYiX3M7CiAgICAgc3RhdGljIGNvbnN0IENyeXB0b0Fs
Z29yaXRobUlkZW50aWZpZXIgc19pZGVudGlmaWVyID0gQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmll
cjo6U0hBXzI1NjsKICAgICBzdGF0aWMgUmVmPENyeXB0b0FsZ29yaXRobT4gY3JlYXRlKCk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29y
aXRobVNIQTM4NC5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxn
b3JpdGhtU0hBMzg0LmgKaW5kZXggNmNjNTc0OTEzMjZhMDA4ZTQyNmYyNjkyMTM4OWFkNmY0YzRi
Zjg0OS4uZTViZjIyMzJhY2YyZGE2YTEwMDZlYTUyMDE5MzQwOGIxODA1ZjJjMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMzg0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGht
U0hBMzg0LmgKQEAgLTMzLDcgKzMzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBD
cnlwdG9BbGdvcml0aG1TSEEzODQgZmluYWwgOiBwdWJsaWMgQ3J5cHRvQWxnb3JpdGhtIHsKIHB1
YmxpYzoKLSAgICBzdGF0aWMgY29uc3RleHByIGNvbnN0IGNoYXIqIHNfbmFtZSA9ICJTSEEtMzg0
IjsKKyAgICBzdGF0aWMgY29uc3RleHByIEFTQ0lJTGl0ZXJhbCBzX25hbWUgPSAiU0hBLTM4NCJf
czsKICAgICBzdGF0aWMgY29uc3RleHByIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgc19pZGVu
dGlmaWVyID0gQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6U0hBXzM4NDsKICAgICBzdGF0aWMg
UmVmPENyeXB0b0FsZ29yaXRobT4gY3JlYXRlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTUxMi5oIGIvU291cmNlL1dl
YkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBNTEyLmgKaW5kZXggMGQ0
YTBiOTZiNjQyYTRjZGZhN2JmOTkwYTk3ZWY3M2I4Yjc2MTNmOC4uMDVmOThmYzRhODY2NmRhZmRh
NjA1OWExNGZlNWUxNzM3YTRhNzQyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRv
L2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBNTEyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBNTEyLmgKQEAgLTMzLDcgKzMzLDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDcnlwdG9BbGdvcml0aG1TSEE1MTIgZmlu
YWwgOiBwdWJsaWMgQ3J5cHRvQWxnb3JpdGhtIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3Rl
eHByIGNvbnN0IGNoYXIqIHNfbmFtZSA9ICJTSEEtNTEyIjsKKyAgICBzdGF0aWMgY29uc3RleHBy
IEFTQ0lJTGl0ZXJhbCBzX25hbWUgPSAiU0hBLTUxMiJfczsKICAgICBzdGF0aWMgY29uc3RleHBy
IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgc19pZGVudGlmaWVyID0gQ3J5cHRvQWxnb3JpdGht
SWRlbnRpZmllcjo6U0hBXzUxMjsKICAgICBzdGF0aWMgUmVmPENyeXB0b0FsZ29yaXRobT4gY3Jl
YXRlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tl
eUFFUy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlBRVMuY3BwCmlu
ZGV4IDQyZmUzYTRiZTUyMTgxOTk3MzRkZWRkMDNhYjdjOTcxZjMwMTFhZDQuLmM3NmM4NjNkNWFm
YzVhNDE1YjA2NTU4ODUwZDMwNzUyMGMwYzY3Y2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2NyeXB0by9rZXlzL0NyeXB0b0tleUFFUy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRv
L2tleXMvQ3J5cHRvS2V5QUVTLmNwcApAQCAtMTA2LDcgKzEwNiw3IEBAIFJlZlB0cjxDcnlwdG9L
ZXlBRVM+IENyeXB0b0tleUFFUzo6aW1wb3J0SndrKENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIg
YWxnb3JpdGhtCiBKc29uV2ViS2V5IENyeXB0b0tleUFFUzo6ZXhwb3J0SndrKCkgY29uc3QKIHsK
ICAgICBKc29uV2ViS2V5IHJlc3VsdDsKLSAgICByZXN1bHQua3R5ID0gIm9jdCI7CisgICAgcmVz
dWx0Lmt0eSA9ICJvY3QiX3M7CiAgICAgcmVzdWx0LmsgPSBiYXNlNjRVUkxFbmNvZGVUb1N0cmlu
ZyhtX2tleSk7CiAgICAgcmVzdWx0LmtleV9vcHMgPSB1c2FnZXMoKTsKICAgICByZXN1bHQuZXh0
ID0gZXh0cmFjdGFibGUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlz
L0NyeXB0b0tleUVDLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleUVD
LmNwcAppbmRleCBkMzZkMzQwZjcwYThmNGExN2ZmNWY2MTljZWIxZDlkODQ1Y2EyYTMzLi5mY2U4
MmJlZTkxY2FiNzQyNjIwNDAwZGNhNzczMDVjMTdmNjg1MjAxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlFQy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3J5cHRvL2tleXMvQ3J5cHRvS2V5RUMuY3BwCkBAIC0xNDgsNyArMTQ4LDcgQEAgRXhjZXB0aW9u
T3I8VmVjdG9yPHVpbnQ4X3Q+PiBDcnlwdG9LZXlFQzo6ZXhwb3J0UmF3KCkgY29uc3QKIEV4Y2Vw
dGlvbk9yPEpzb25XZWJLZXk+IENyeXB0b0tleUVDOjpleHBvcnRKd2soKSBjb25zdAogewogICAg
IEpzb25XZWJLZXkgcmVzdWx0OwotICAgIHJlc3VsdC5rdHkgPSAiRUMiOworICAgIHJlc3VsdC5r
dHkgPSAiRUMiX3M7CiAgICAgc3dpdGNoIChtX2N1cnZlKSB7CiAgICAgY2FzZSBOYW1lZEN1cnZl
OjpQMjU2OgogICAgICAgICByZXN1bHQuY3J2ID0gUDI1NjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleUhNQUMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3J5
cHRvL2tleXMvQ3J5cHRvS2V5SE1BQy5jcHAKaW5kZXggNDM0ZjI0MDQ1NWRjOGNlMzQxZTAwNTQw
M2JmMDVjYjkwMDM3ZDE0OS4uMjU0M2VkNTQ2NTdlN2FlM2YyZjc5OTZjNzg0NDNkZmIwOWE3Mjdh
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5SE1BQy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5SE1BQy5jcHAKQEAg
LTEyMSw3ICsxMjEsNyBAQCBSZWZQdHI8Q3J5cHRvS2V5SE1BQz4gQ3J5cHRvS2V5SE1BQzo6aW1w
b3J0SndrKHNpemVfdCBsZW5ndGhCaXRzLCBDcnlwdG9BbGdvcml0aAogSnNvbldlYktleSBDcnlw
dG9LZXlITUFDOjpleHBvcnRKd2soKSBjb25zdAogewogICAgIEpzb25XZWJLZXkgcmVzdWx0Owot
ICAgIHJlc3VsdC5rdHkgPSAib2N0IjsKKyAgICByZXN1bHQua3R5ID0gIm9jdCJfczsKICAgICBy
ZXN1bHQuayA9IGJhc2U2NFVSTEVuY29kZVRvU3RyaW5nKG1fa2V5KTsKICAgICByZXN1bHQua2V5
X29wcyA9IHVzYWdlcygpOwogICAgIHJlc3VsdC5leHQgPSBleHRyYWN0YWJsZSgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5UlNBLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleVJTQS5jcHAKaW5kZXggNmJiZjE0ZjI0NjBi
M2QxZjUwNDg4YWYzOTI5NzA5Zjc0MjE2ZWUyNC4uMDU4MWQ2NzA3MmNiOTM2NmQzNzc1NDIyNjhh
NDhmZmRhMDYzOWE3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5
cHRvS2V5UlNBLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlS
U0EuY3BwCkBAIC0xMzMsNyArMTMzLDcgQEAgUmVmUHRyPENyeXB0b0tleVJTQT4gQ3J5cHRvS2V5
UlNBOjppbXBvcnRKd2soQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBhbGdvcml0aG0KIEpzb25X
ZWJLZXkgQ3J5cHRvS2V5UlNBOjpleHBvcnRKd2soKSBjb25zdAogewogICAgIEpzb25XZWJLZXkg
cmVzdWx0OwotICAgIHJlc3VsdC5rdHkgPSAiUlNBIjsKKyAgICByZXN1bHQua3R5ID0gIlJTQSJf
czsKICAgICByZXN1bHQua2V5X29wcyA9IHVzYWdlcygpOwogICAgIHJlc3VsdC5leHQgPSBleHRy
YWN0YWJsZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JpZFRlbXBs
YXRlQXJlYXNWYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JpZFRlbXBsYXRlQXJl
YXNWYWx1ZS5jcHAKaW5kZXggZTBiNzg2NTlhZGJkMDE0ODM5ZTU3YzA2MjFkYzE2MTllZjgxMzEw
OS4uZGZkNzI1MTNiY2RmNTQ2MTA5ZTY5MDJiNWJlOWI5NzkyZTZhMjc0YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0dyaWRUZW1wbGF0ZUFyZWFzVmFsdWUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmlkVGVtcGxhdGVBcmVhc1ZhbHVlLmNwcApAQCAtNjMsNyAr
NjMsNyBAQCBzdGF0aWMgU3RyaW5nIHN0cmluZ0ZvclBvc2l0aW9uKGNvbnN0IE5hbWVkR3JpZEFy
ZWFNYXAmIGdyaWRBcmVhTWFwLCBzaXplX3Qgcm93LAogICAgICAgICAgICAgcmV0dXJuIGl0Lmtl
eTsKICAgICB9CiAKLSAgICByZXR1cm4gIi4iOworICAgIHJldHVybiAiLiJfczsKIH0KIAogU3Ry
aW5nIENTU0dyaWRUZW1wbGF0ZUFyZWFzVmFsdWU6OmN1c3RvbUNTU1RleHQoKSBjb25zdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHAKaW5kZXggNzllYjJhNTYyMzcwOTRj
NGQxYmQzNjFhMGE3M2NjNTQ5NTY0OGY3ZS4uNmRjODBiYTMwMmRhZWFjNzM1Yjg3MGU3ZjgwNzBh
ZDEwMzRiNDQwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZh
bHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwCkBA
IC0xMjQzLDY0ICsxMjQzLDY0IEBAIE5FVkVSX0lOTElORSBTdHJpbmcgQ1NTUHJpbWl0aXZlVmFs
dWU6OmZvcm1hdEludGVnZXJWYWx1ZShTdHJpbmdWaWV3IHN1ZmZpeCkgY29uCiBTdHJpbmcgQ1NT
UHJpbWl0aXZlVmFsdWU6OnVuaXRUeXBlU3RyaW5nKENTU1VuaXRUeXBlIHVuaXRUeXBlKQogewog
ICAgIHN3aXRjaCAodW5pdFR5cGUpIHsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1BF
UkNFTlRBR0U6IHJldHVybiAiJSI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19FTVM6
IHJldHVybiAiZW0iOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRVhTOiByZXR1cm4g
ImV4IjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1BYOiByZXR1cm4gInB4IjsKLSAg
ICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0NNOiByZXR1cm4gImNtIjsKLSAgICAgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX01NOiByZXR1cm4gIm1tIjsKLSAgICAgICAgY2FzZSBDU1NVbml0
VHlwZTo6Q1NTX0lOOiByZXR1cm4gImluIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NT
X1BUOiByZXR1cm4gInB0IjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1BDOiByZXR1
cm4gInBjIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RFRzogcmV0dXJuICJkZWci
OwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfUkFEOiByZXR1cm4gInJhZCI7Ci0gICAg
ICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19HUkFEOiByZXR1cm4gImdyYWQiOwotICAgICAgICBj
YXNlIENTU1VuaXRUeXBlOjpDU1NfTVM6IHJldHVybiAibXMiOwotICAgICAgICBjYXNlIENTU1Vu
aXRUeXBlOjpDU1NfUzogcmV0dXJuICJzIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NT
X0haOiByZXR1cm4gImh6IjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0tIWjogcmV0
dXJuICJraHoiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVlc6IHJldHVybiAidnci
OwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVkg6IHJldHVybiAidmgiOwotICAgICAg
ICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVk1JTjogcmV0dXJuICJ2bWluIjsKLSAgICAgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX1ZNQVg6IHJldHVybiAidm1heCI7Ci0gICAgICAgIGNhc2UgQ1NT
VW5pdFR5cGU6OkNTU19WQjogcmV0dXJuICJ2YiI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6
OkNTU19WSTogcmV0dXJuICJ2aSI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVlc6
IHJldHVybiAic3Z3IjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWSDogcmV0dXJu
ICJzdmgiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZNSU46IHJldHVybiAic3Zt
aW4iOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZNQVg6IHJldHVybiAic3ZtYXgi
OwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZCOiByZXR1cm4gInN2YiI7Ci0gICAg
ICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVkk6IHJldHVybiAic3ZpIjsKLSAgICAgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX0xWVzogcmV0dXJuICJsdnciOwotICAgICAgICBjYXNlIENTU1Vu
aXRUeXBlOjpDU1NfTFZIOiByZXR1cm4gImx2aCI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6
OkNTU19MVk1JTjogcmV0dXJuICJsdm1pbiI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNT
U19MVk1BWDogcmV0dXJuICJsdm1heCI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19M
VkI6IHJldHVybiAibHZiIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWSTogcmV0
dXJuICJsdmkiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZXOiByZXR1cm4gImR2
dyI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVkg6IHJldHVybiAiZHZoIjsKLSAg
ICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWTUlOOiByZXR1cm4gImR2bWluIjsKLSAgICAg
ICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWTUFYOiByZXR1cm4gImR2bWF4IjsKLSAgICAgICAg
Y2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWQjogcmV0dXJuICJkdmIiOwotICAgICAgICBjYXNlIENT
U1VuaXRUeXBlOjpDU1NfRFZJOiByZXR1cm4gImR2aSI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5
cGU6OkNTU19EUFBYOiByZXR1cm4gImRwcHgiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpD
U1NfWDogcmV0dXJuICJ4IjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RQSTogcmV0
dXJuICJkcGkiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFBDTTogcmV0dXJuICJk
cGNtIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0ZSOiByZXR1cm4gImZyIjsKLSAg
ICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1E6IHJldHVybiAicSI7Ci0gICAgICAgIGNhc2Ug
Q1NTVW5pdFR5cGU6OkNTU19MSFM6IHJldHVybiAibGgiOwotICAgICAgICBjYXNlIENTU1VuaXRU
eXBlOjpDU1NfUkxIUzogcmV0dXJuICJybGgiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpD
U1NfVFVSTjogcmV0dXJuICJ0dXJuIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1JF
TVM6IHJldHVybiAicmVtIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0NIUzogcmV0
dXJuICJjaCI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19JQzogcmV0dXJuICJpYyI7
Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19DUVc6IHJldHVybiAiY3F3IjsKLSAgICAg
ICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0NRSDogcmV0dXJuICJjcWgiOwotICAgICAgICBjYXNl
IENTU1VuaXRUeXBlOjpDU1NfQ1FJOiByZXR1cm4gImNxaSI7Ci0gICAgICAgIGNhc2UgQ1NTVW5p
dFR5cGU6OkNTU19DUUI6IHJldHVybiAiY3FiIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6
Q1NTX0NRTUFYOiByZXR1cm4gImNxbWF4IjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NT
X0NRTUlOOiByZXR1cm4gImNxbWluIjsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1BF
UkNFTlRBR0U6IHJldHVybiAiJSJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0VN
UzogcmV0dXJuICJlbSJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0VYUzogcmV0
dXJuICJleCJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1BYOiByZXR1cm4gInB4
Il9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfQ006IHJldHVybiAiY20iX3M7Cisg
ICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19NTTogcmV0dXJuICJtbSJfczsKKyAgICAgICAg
Y2FzZSBDU1NVbml0VHlwZTo6Q1NTX0lOOiByZXR1cm4gImluIl9zOworICAgICAgICBjYXNlIENT
U1VuaXRUeXBlOjpDU1NfUFQ6IHJldHVybiAicHQiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5
cGU6OkNTU19QQzogcmV0dXJuICJwYyJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NT
X0RFRzogcmV0dXJuICJkZWciX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19SQUQ6
IHJldHVybiAicmFkIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfR1JBRDogcmV0
dXJuICJncmFkIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTVM6IHJldHVybiAi
bXMiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TOiByZXR1cm4gInMiX3M7Cisg
ICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19IWjogcmV0dXJuICJoeiJfczsKKyAgICAgICAg
Y2FzZSBDU1NVbml0VHlwZTo6Q1NTX0tIWjogcmV0dXJuICJraHoiX3M7CisgICAgICAgIGNhc2Ug
Q1NTVW5pdFR5cGU6OkNTU19WVzogcmV0dXJuICJ2dyJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0
VHlwZTo6Q1NTX1ZIOiByZXR1cm4gInZoIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpD
U1NfVk1JTjogcmV0dXJuICJ2bWluIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1Nf
Vk1BWDogcmV0dXJuICJ2bWF4Il9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVkI6
IHJldHVybiAidmIiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WSTogcmV0dXJu
ICJ2aSJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWVzogcmV0dXJuICJzdnci
X3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVkg6IHJldHVybiAic3ZoIl9zOwor
ICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZNSU46IHJldHVybiAic3ZtaW4iX3M7Cisg
ICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVk1BWDogcmV0dXJuICJzdm1heCJfczsKKyAg
ICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWQjogcmV0dXJuICJzdmIiX3M7CisgICAgICAg
IGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVkk6IHJldHVybiAic3ZpIl9zOworICAgICAgICBjYXNl
IENTU1VuaXRUeXBlOjpDU1NfTFZXOiByZXR1cm4gImx2dyJfczsKKyAgICAgICAgY2FzZSBDU1NV
bml0VHlwZTo6Q1NTX0xWSDogcmV0dXJuICJsdmgiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5
cGU6OkNTU19MVk1JTjogcmV0dXJuICJsdm1pbiJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlw
ZTo6Q1NTX0xWTUFYOiByZXR1cm4gImx2bWF4Il9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfTFZCOiByZXR1cm4gImx2YiJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NT
X0xWSTogcmV0dXJuICJsdmkiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVlc6
IHJldHVybiAiZHZ3Il9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZIOiByZXR1
cm4gImR2aCJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWTUlOOiByZXR1cm4g
ImR2bWluIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZNQVg6IHJldHVybiAi
ZHZtYXgiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVkI6IHJldHVybiAiZHZi
Il9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZJOiByZXR1cm4gImR2aSJfczsK
KyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RQUFg6IHJldHVybiAiZHBweCJfczsKKyAg
ICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1g6IHJldHVybiAieCJfczsKKyAgICAgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX0RQSTogcmV0dXJuICJkcGkiX3M7CisgICAgICAgIGNhc2UgQ1NT
VW5pdFR5cGU6OkNTU19EUENNOiByZXR1cm4gImRwY20iX3M7CisgICAgICAgIGNhc2UgQ1NTVW5p
dFR5cGU6OkNTU19GUjogcmV0dXJuICJmciJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6
Q1NTX1E6IHJldHVybiAicSJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xIUzog
cmV0dXJuICJsaCJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1JMSFM6IHJldHVy
biAicmxoIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfVFVSTjogcmV0dXJuICJ0
dXJuIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfUkVNUzogcmV0dXJuICJyZW0i
X3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19DSFM6IHJldHVybiAiY2giX3M7Cisg
ICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19JQzogcmV0dXJuICJpYyJfczsKKyAgICAgICAg
Y2FzZSBDU1NVbml0VHlwZTo6Q1NTX0NRVzogcmV0dXJuICJjcXciX3M7CisgICAgICAgIGNhc2Ug
Q1NTVW5pdFR5cGU6OkNTU19DUUg6IHJldHVybiAiY3FoIl9zOworICAgICAgICBjYXNlIENTU1Vu
aXRUeXBlOjpDU1NfQ1FJOiByZXR1cm4gImNxaSJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlw
ZTo6Q1NTX0NRQjogcmV0dXJuICJjcWIiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNT
U19DUU1BWDogcmV0dXJuICJjcW1heCJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NT
X0NRTUlOOiByZXR1cm4gImNxbWluIl9zOwogCiAgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNT
U19VTktOT1dOOgogICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTlVNQkVSOgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1N1YmdyaWRWYWx1ZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTU3ViZ3JpZFZhbHVlLmNwcAppbmRleCA0ZjlkNGE2MDQ4YzYxNGM4ZDBmYWY1
NDhiZmNjYmFhZTQ4YTBjODY1Li42YTc5ODU5ZGEyN2RhZWFhYWE3YmNmNWY5OTEyZDNlNzdjNWJk
MmJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3ViZ3JpZFZhbHVlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3ViZ3JpZFZhbHVlLmNwcApAQCAtMzYsNyArMzYs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBTdHJpbmcgQ1NTU3ViZ3JpZFZhbHVlOjpjdXN0b21D
U1NUZXh0KCkgY29uc3QKIHsKICAgICBpZiAoIWxlbmd0aCgpKQotICAgICAgICByZXR1cm4gInN1
YmdyaWQiOworICAgICAgICByZXR1cm4gInN1YmdyaWQiX3M7CiAgICAgcmV0dXJuICJzdWJncmlk
ICIgKyBDU1NWYWx1ZUxpc3Q6OmN1c3RvbUNTU1RleHQoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvY3NzL0RPTUNTU1JlZ2lzdGVyQ3VzdG9tUHJvcGVydHkuY3BwIGIvU291cmNl
L1dlYkNvcmUvY3NzL0RPTUNTU1JlZ2lzdGVyQ3VzdG9tUHJvcGVydHkuY3BwCmluZGV4IGMyYzgy
NTBhYjIyZDgzZWRkODIyMDAxMGI4MmY2MjUxZGU3Yjg5ZjcuLjkyYTJjYmM0MGZkMzE2MWUwZjlm
Yzc1YjE4OGEyZDk4ZDNlNzE5MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01D
U1NSZWdpc3RlckN1c3RvbVByb3BlcnR5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRE9N
Q1NTUmVnaXN0ZXJDdXN0b21Qcm9wZXJ0eS5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogRXhjZXB0aW9uT3I8dm9pZD4gRE9NQ1NTUmVnaXN0ZXJDdXN0b21Qcm9wZXJ0
eTo6cmVnaXN0ZXJQcm9wZXJ0eShEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IERPTUNTU0N1c3Rv
bVByb3BlcnR5RGVzY3JpcHRvciYgZGVzY3JpcHRvcikKIHsKICAgICBpZiAoIWlzQ3VzdG9tUHJv
cGVydHlOYW1lKGRlc2NyaXB0b3IubmFtZSkpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBT
eW50YXhFcnJvciwgIlRoZSBuYW1lIG9mIHRoaXMgcHJvcGVydHkgaXMgbm90IGEgY3VzdG9tIHBy
b3BlcnR5IG5hbWUuIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgU3ludGF4RXJyb3Is
ICJUaGUgbmFtZSBvZiB0aGlzIHByb3BlcnR5IGlzIG5vdCBhIGN1c3RvbSBwcm9wZXJ0eSBuYW1l
LiJfcyB9OwogCiAgICAgUmVmUHRyPENTU0N1c3RvbVByb3BlcnR5VmFsdWU+IGluaXRpYWxWYWx1
ZTsKICAgICBpZiAoIWRlc2NyaXB0b3IuaW5pdGlhbFZhbHVlLmlzRW1wdHkoKSkgewpAQCAtNTks
NyArNTksNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBET01DU1NSZWdpc3RlckN1c3RvbVByb3BlcnR5
OjpyZWdpc3RlclByb3BlcnR5KERvY3VtZW50JiBkb2N1bQogICAgICAgICBDU1NQcm9wZXJ0eVBh
cnNlcjo6Y29sbGVjdFBhcnNlZEN1c3RvbVByb3BlcnR5VmFsdWVEZXBlbmRlbmNpZXMoZGVzY3Jp
cHRvci5zeW50YXgsIGZhbHNlLCBkZXBlbmRlbmNpZXMsIHRva2VuaXplci50b2tlblJhbmdlKCks
IHN0cmljdENTU1BhcnNlckNvbnRleHQoKSk7CiAKICAgICAgICAgaWYgKCFkZXBlbmRlbmNpZXMu
aXNFbXB0eSgpKQotICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFN5bnRheEVycm9yLCAi
VGhlIGdpdmVuIGluaXRpYWwgdmFsdWUgbXVzdCBiZSBjb21wdXRhdGlvbmFsbHkgaW5kZXBlbmRl
bnQuIiB9OworICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFN5bnRheEVycm9yLCAiVGhl
IGdpdmVuIGluaXRpYWwgdmFsdWUgbXVzdCBiZSBjb21wdXRhdGlvbmFsbHkgaW5kZXBlbmRlbnQu
Il9zIH07CiAKIAogICAgICAgICBTdHlsZTo6TWF0Y2hSZXN1bHQgbWF0Y2hSZXN1bHQ7CkBAIC03
MCwxOCArNzAsMTggQEAgRXhjZXB0aW9uT3I8dm9pZD4gRE9NQ1NTUmVnaXN0ZXJDdXN0b21Qcm9w
ZXJ0eTo6cmVnaXN0ZXJQcm9wZXJ0eShEb2N1bWVudCYgZG9jdW0KICAgICAgICAgaW5pdGlhbFZh
bHVlID0gQ1NTUHJvcGVydHlQYXJzZXI6OnBhcnNlVHlwZWRDdXN0b21Qcm9wZXJ0eVZhbHVlKGRl
c2NyaXB0b3IubmFtZSwgZGVzY3JpcHRvci5zeW50YXgsIHRva2VuaXplci50b2tlblJhbmdlKCks
IGR1bW15QnVpbGRlci5zdGF0ZSgpLCBzdHJpY3RDU1NQYXJzZXJDb250ZXh0KCkpOwogCiAgICAg
ICAgIGlmICghaW5pdGlhbFZhbHVlIHx8ICFpbml0aWFsVmFsdWUtPmlzUmVzb2x2ZWQoKSkKLSAg
ICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBTeW50YXhFcnJvciwgIlRoZSBnaXZlbiBpbml0
aWFsIHZhbHVlIGRvZXMgbm90IHBhcnNlIGZvciB0aGUgZ2l2ZW4gc3ludGF4LiIgfTsKKyAgICAg
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBTeW50YXhFcnJvciwgIlRoZSBnaXZlbiBpbml0aWFs
IHZhbHVlIGRvZXMgbm90IHBhcnNlIGZvciB0aGUgZ2l2ZW4gc3ludGF4LiJfcyB9OwogCiAgICAg
ICAgIGluaXRpYWxWYWx1ZS0+Y29sbGVjdERpcmVjdENvbXB1dGF0aW9uYWxEZXBlbmRlbmNpZXMo
ZGVwZW5kZW5jaWVzKTsKICAgICAgICAgaW5pdGlhbFZhbHVlLT5jb2xsZWN0RGlyZWN0Um9vdENv
bXB1dGF0aW9uYWxEZXBlbmRlbmNpZXMoZGVwZW5kZW5jaWVzKTsKIAogICAgICAgICBpZiAoIWRl
cGVuZGVuY2llcy5pc0VtcHR5KCkpCi0gICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgU3lu
dGF4RXJyb3IsICJUaGUgZ2l2ZW4gaW5pdGlhbCB2YWx1ZSBtdXN0IGJlIGNvbXB1dGF0aW9uYWxs
eSBpbmRlcGVuZGVudC4iIH07CisgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgU3ludGF4
RXJyb3IsICJUaGUgZ2l2ZW4gaW5pdGlhbCB2YWx1ZSBtdXN0IGJlIGNvbXB1dGF0aW9uYWxseSBp
bmRlcGVuZGVudC4iX3MgfTsKICAgICB9CiAKICAgICBDU1NSZWdpc3RlcmVkQ3VzdG9tUHJvcGVy
dHkgcHJvcGVydHkgeyBkZXNjcmlwdG9yLm5hbWUsIGRlc2NyaXB0b3Iuc3ludGF4LCBkZXNjcmlw
dG9yLmluaGVyaXRzLCBXVEZNb3ZlKGluaXRpYWxWYWx1ZSkgfTsKICAgICBpZiAoIWRvY3VtZW50
LnJlZ2lzdGVyQ1NTUHJvcGVydHkoV1RGTW92ZShwcm9wZXJ0eSkpKQotICAgICAgICByZXR1cm4g
RXhjZXB0aW9uIHsgSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yLCAiVGhpcyBwcm9wZXJ0eSBoYXMg
YWxyZWFkeSBiZWVuIHJlZ2lzdGVyZWQuIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
SW52YWxpZE1vZGlmaWNhdGlvbkVycm9yLCAiVGhpcyBwcm9wZXJ0eSBoYXMgYWxyZWFkeSBiZWVu
IHJlZ2lzdGVyZWQuIl9zIH07CiAKICAgICBkb2N1bWVudC5zdHlsZVNjb3BlKCkuZGlkQ2hhbmdl
U3R5bGVTaGVldEVudmlyb25tZW50KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9EZXByZWNhdGVkQ1NTT01WYWx1ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRGVwcmVjYXRl
ZENTU09NVmFsdWUuY3BwCmluZGV4IDIzMjUwODQ1YWJhNmJjNTMyMmIzYjM3NjlmYjkzYzBlNjQw
YzdkODIuLjUwNjdkMGU2YzYwMWJlMmExMzEzZjA4OWE2NDBhYzFhNjI2YjliMzUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NTT01WYWx1ZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVZhbHVlLmNwcApAQCAtNzYsNyArNzYsNyBA
QCBTdHJpbmcgRGVwcmVjYXRlZENTU09NVmFsdWU6OmNzc1RleHQoKSBjb25zdAogICAgICAgICBy
ZXR1cm4gZG93bmNhc3Q8RGVwcmVjYXRlZENTU09NVmFsdWVMaXN0PigqdGhpcykuY3NzVGV4dCgp
OwogICAgIH0KICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICByZXR1cm4gIiI7CisgICAg
cmV0dXJuIGVtcHR5U3RyaW5nKCk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9Gb250RmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9udEZhY2UuY3BwCmluZGV4
IGVmZmQ2MDdjMzQ2ZjliY2ZiYzljMjg4OWJmODMxNjk0ZGEzNDAzMDUuLjRkNTExYjVlNjg1NDEz
MDVkNDBjMWMzM2I3OTA5YTY1MDY1NTZmNjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9Gb250RmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0ZvbnRGYWNlLmNwcApAQCAt
Mzc1LDcgKzM3NSw3IEBAIFN0cmluZyBGb250RmFjZTo6dW5pY29kZVJhbmdlKCkgY29uc3QKICAg
ICBtX2JhY2tpbmctPnVwZGF0ZVN0eWxlSWZOZWVkZWQoKTsKICAgICBjb25zdCBhdXRvJiByYW5n
ZXNXcmFwcGVkID0gbV9iYWNraW5nLT5yYW5nZXMoKTsKICAgICBpZiAoIXJhbmdlc1dyYXBwZWQp
Ci0gICAgICAgIHJldHVybiAiVSswLTEwRkZGRiI7CisgICAgICAgIHJldHVybiAiVSswLTEwRkZG
RiJfczsKICAgICBhdXRvIHJhbmdlcyA9IHJhbmdlc1dyYXBwZWQudmFsdWUoKTsKICAgICBpZiAo
IXJhbmdlcy5zaXplKCkpCiAgICAgICAgIHJldHVybiAiVSswLTEwRkZGRiJfczsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXhwcmVzc2lvbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV4cHJlc3Npb24uY3BwCmluZGV4IDA4YjcwNzA2NmJhNmRm
YjIxMjdmY2RhOTA4ODkzNzkzNTEwODE0ZTguLjFiZGRiNTUzZThmYmEyYzIyNTNlNGQxNDU2Zjc4
NjkzZjM2NjkzMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9NZWRpYVF1ZXJ5RXhw
cmVzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFeHByZXNzaW9u
LmNwcApAQCAtMjc0LDcgKzI3NCw3IEBAIE1lZGlhUXVlcnlFeHByZXNzaW9uOjpNZWRpYVF1ZXJ5
RXhwcmVzc2lvbihjb25zdCBTdHJpbmcmIGZlYXR1cmUsIENTU1BhcnNlclRva2VuCiBTdHJpbmcg
TWVkaWFRdWVyeUV4cHJlc3Npb246OnNlcmlhbGl6ZSgpIGNvbnN0CiB7CiAgICAgaWYgKG1fc2Vy
aWFsaXphdGlvbkNhY2hlLmlzTnVsbCgpKQotICAgICAgICBtX3NlcmlhbGl6YXRpb25DYWNoZSA9
IG1ha2VTdHJpbmcoJygnLCBtX21lZGlhRmVhdHVyZS5jb252ZXJ0VG9BU0NJSUxvd2VyY2FzZSgp
LCBtX3ZhbHVlID8gIjogIiA6ICIiLCBtX3ZhbHVlID8gbV92YWx1ZS0+Y3NzVGV4dCgpIDogIiIs
ICcpJyk7CisgICAgICAgIG1fc2VyaWFsaXphdGlvbkNhY2hlID0gbWFrZVN0cmluZygnKCcsIG1f
bWVkaWFGZWF0dXJlLmNvbnZlcnRUb0FTQ0lJTG93ZXJjYXNlKCksIG1fdmFsdWUgPyAiOiAiIDog
IiIsIG1fdmFsdWUgPyBtX3ZhbHVlLT5jc3NUZXh0KCkgOiBlbXB0eVN0cmluZygpLCAnKScpOwog
ICAgIHJldHVybiBtX3NlcmlhbGl6YXRpb25DYWNoZTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL1N0eWxlUHJvcGVydGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5
bGVQcm9wZXJ0aWVzLmNwcAppbmRleCBmMDQxM2MxN2ZmZmEyODM4MTFmZTI1MTdmZGZkNjFiY2Rj
ZjhiMjU5Li5hOTIzYzdhNGY5NGZjZjMyYjA3ZjgxMTNhMmNiZWEyNGI5ZGY4OTA0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcApAQCAtNzY4LDcgKzc2OCw3IEBAIFN0cmlu
ZyBTdHlsZVByb3BlcnRpZXM6OmdldExheWVyZWRTaG9ydGhhbmRWYWx1ZShjb25zdCBTdHlsZVBy
b3BlcnR5U2hvcnRoYW5kJiBzCiAKICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8gbWFza0lk
ID0gZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KCp2YWx1ZSkudmFsdWVJRCgpOwogICAgICAg
ICAgICAgICAgICAgICAgICAgYXV0byBvcmlnaW5JZCA9IGRvd25jYXN0PENTU1ByaW1pdGl2ZVZh
bHVlPigqb3JpZ2luVmFsdWUpLnZhbHVlSUQoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybiBtYXNrSWQgPT0gb3JpZ2luSWQgJiYgKCFpc0NTU1dpZGVWYWx1ZUtleXdvcmQoZ2V0VmFs
dWVOYW1lKG1hc2tJZCkpIHx8IHZhbHVlLT5pc0ltcGxpY2l0SW5pdGlhbFZhbHVlKCkpOworICAg
ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1hc2tJZCA9PSBvcmlnaW5JZCAmJiAoIWlzQ1NT
V2lkZVZhbHVlS2V5d29yZChTdHJpbmdWaWV3IHsgZ2V0VmFsdWVOYW1lKG1hc2tJZCkgfSkgfHwg
dmFsdWUtPmlzSW1wbGljaXRJbml0aWFsVmFsdWUoKSk7CiAgICAgICAgICAgICAgICAgICAgIH0K
ICAgICAgICAgICAgICAgICAgICAgaWYgKHByb3BlcnR5ID09IENTU1Byb3BlcnR5TWFza09yaWdp
bikgewogICAgICAgICAgICAgICAgICAgICAgICAgLy8gV2UgY2FuIHNraXAgc2VyaWFsaXppbmcg
bWFzay1vcmlnaW4gaWYgaXQncyB0aGUgaW5pdGlhbCB2YWx1ZSwgYnV0IG9ubHkgaWYgd2UncmUg
YWxzbyBnb2luZyB0byBza2lwIHNlcmlhbGl6aW5nCkBAIC0xMTU0LDcgKzExNTQsNyBAQCBib29s
IE11dGFibGVTdHlsZVByb3BlcnRpZXM6OnNldEN1c3RvbVByb3BlcnR5KGNvbnN0IERvY3VtZW50
KiBkb2N1bWVudCwgY29uc3QgUwogCiAgICAgcGFyc2VyQ29udGV4dC5tb2RlID0gY3NzUGFyc2Vy
TW9kZSgpOwogCi0gICAgU3RyaW5nIHN5bnRheCA9ICIqIjsKKyAgICBTdHJpbmcgc3ludGF4ID0g
IioiX3M7CiAgICAgYXV0byogcmVnaXN0ZXJlZCA9IGRvY3VtZW50ID8gZG9jdW1lbnQtPmdldENT
U1JlZ2lzdGVyZWRDdXN0b21Qcm9wZXJ0eVNldCgpLmdldChwcm9wZXJ0eU5hbWUpIDogbnVsbHB0
cjsKIAogICAgIGlmIChyZWdpc3RlcmVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L21ha2V2YWx1ZXMucGwgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvbWFrZXZhbHVlcy5wbAppbmRleCAw
ZjgyMTlkNGNjYjUxZWNhNTI1ZDgyOWE3NjA2YjI3YjBmYTI3MzAzLi5hZTliMzI3ODMyNzI3Mzcz
YzRjZTdmMDIzMzA1MjEzNmIyZDk4M2Q1IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
bWFrZXZhbHVlcy5wbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvbWFrZXZhbHVlcy5wbApAQCAt
MTExLDE2ICsxMTEsMTYgQEAgZm9yIG15ICRpICgwIC4uICQjbmFtZXMpIHsKIAogcHJpbnQgR1BF
UkYgPDwgIkVPRiI7CiAlJQotc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IHZhbHVlTGlzdFtdID0g
ewotICAgICIiLAorc3RhdGljIGNvbnN0ZXhwciBBU0NJSUxpdGVyYWwgdmFsdWVMaXN0W10gPSB7
CisgICAgIiJfcywKIEVPRgogCiBmb3JlYWNoIG15ICRuYW1lIChAbmFtZXMpIHsKLSAgcHJpbnQg
R1BFUkYgIiAgICBcIiIgLiAkbmFtZSAuICJcIixcbiI7CisgIHByaW50IEdQRVJGICIgICAgXCIi
IC4gJG5hbWUgLiAiXCJfcyxcbiI7CiB9CiAKIHByaW50IEdQRVJGIDw8ICJFT0YiOwotICAgIDAK
KyAgICBBU0NJSUxpdGVyYWw6Om51bGwoKQogfTsKIAogY29uc3QgVmFsdWUqIGZpbmRWYWx1ZShj
b25zdCBjaGFyKiBzdHIsIHVuc2lnbmVkIGludCBsZW4pCkBAIC0xMjgsMTAgKzEyOCwxMCBAQCBj
b25zdCBWYWx1ZSogZmluZFZhbHVlKGNvbnN0IGNoYXIqIHN0ciwgdW5zaWduZWQgaW50IGxlbikK
ICAgICByZXR1cm4gQ1NTVmFsdWVLZXl3b3Jkc0hhc2g6OmZpbmRWYWx1ZUltcGwoc3RyLCBsZW4p
OwogfQogCi1jb25zdCBjaGFyKiBnZXRWYWx1ZU5hbWUodW5zaWduZWQgc2hvcnQgaWQpCitBU0NJ
SUxpdGVyYWwgZ2V0VmFsdWVOYW1lKHVuc2lnbmVkIHNob3J0IGlkKQogewogICAgIGlmIChpZCA+
IGxhc3RDU1NWYWx1ZUtleXdvcmQpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4g
QVNDSUlMaXRlcmFsOjpudWxsKCk7CiAgICAgcmV0dXJuIHZhbHVlTGlzdFtpZF07CiB9CiAKQEAg
LTIwMyw3ICsyMDMsNyBAQCBwcmludCBIRUFERVIgImNvbnN0IGludCBsYXN0Q1NTVmFsdWVLZXl3
b3JkID0gJGxhc3Q7XG4iOwogcHJpbnQgSEVBREVSICJjb25zdCBzaXplX3QgbWF4Q1NTVmFsdWVL
ZXl3b3JkTGVuZ3RoID0gIiAuICRtYXhMZW4gLiAiO1xuIjsKIHByaW50IEhFQURFUiA8PCAiRU9G
IjsKIAotY29uc3QgY2hhciogZ2V0VmFsdWVOYW1lKHVuc2lnbmVkIHNob3J0IGlkKTsKK0FTQ0lJ
TGl0ZXJhbCBnZXRWYWx1ZU5hbWUodW5zaWduZWQgc2hvcnQgaWQpOwogY29uc3QgQXRvbVN0cmlu
ZyYgZ2V0VmFsdWVOYW1lQXRvbVN0cmluZyhDU1NWYWx1ZUlEIGlkKTsKIFN0cmluZyBnZXRWYWx1
ZU5hbWVTdHJpbmcoQ1NTVmFsdWVJRCBpZCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9wYXJzZXIvTWVkaWFRdWVyeVBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFy
c2VyL01lZGlhUXVlcnlQYXJzZXIuY3BwCmluZGV4IGNiNWEwOGFhM2ViN2Q2YjhjODI1N2RjODQ4
ZGNlYzExMzQxOWM5Y2QuLjYyYzAxZTVhMzI3NzQyMjQzNjYyZmViYzIxZWRlMDgwZDkyMzY1OWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvTWVkaWFRdWVyeVBhcnNlci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9NZWRpYVF1ZXJ5UGFyc2VyLmNwcApA
QCAtMjQ3LDcgKzI0Nyw3IEBAIHZvaWQgTWVkaWFRdWVyeVBhcnNlcjo6c2tpcFVudGlsQ29tbWEo
Q1NTUGFyc2VyVG9rZW5UeXBlIHR5cGUsIGNvbnN0IENTU1BhcnNlclRvCiAgICAgaWYgKCh0eXBl
ID09IENvbW1hVG9rZW4gJiYgIW1fYmxvY2tXYXRjaGVyLmJsb2NrTGV2ZWwoKSkgfHwgdHlwZSA9
PSBFT0ZUb2tlbikgewogICAgICAgICBtX3N0YXRlID0gUmVhZFJlc3RyaWN0b3I7CiAgICAgICAg
IG1fbWVkaWFRdWVyeURhdGEuY2xlYXIoKTsKLSAgICAgICAgTWVkaWFRdWVyeSBxdWVyeSA9IE1l
ZGlhUXVlcnkoTWVkaWFRdWVyeTo6Tm90LCAiYWxsIiwgVmVjdG9yPE1lZGlhUXVlcnlFeHByZXNz
aW9uPigpKTsKKyAgICAgICAgTWVkaWFRdWVyeSBxdWVyeSA9IE1lZGlhUXVlcnkoTWVkaWFRdWVy
eTo6Tm90LCAiYWxsIl9zLCBWZWN0b3I8TWVkaWFRdWVyeUV4cHJlc3Npb24+KCkpOwogICAgICAg
ICBtX3F1ZXJ5U2V0LT5hZGRNZWRpYVF1ZXJ5KFdURk1vdmUocXVlcnkpKTsKICAgICB9CiB9CkBA
IC0zMDksNyArMzA5LDcgQEAgUmVmUHRyPE1lZGlhUXVlcnlTZXQ+IE1lZGlhUXVlcnlQYXJzZXI6
OnBhcnNlSW50ZXJuYWwoQ1NTUGFyc2VyVG9rZW5SYW5nZSYgcmFuZ2UKICAgICAgICAgcHJvY2Vz
c1Rva2VuKENTU1BhcnNlclRva2VuKEVPRlRva2VuKSwgcmFuZ2UpOwogCiAgICAgaWYgKG1fc3Rh
dGUgIT0gUmVhZEFuZCAmJiBtX3N0YXRlICE9IFJlYWRSZXN0cmljdG9yICYmIG1fc3RhdGUgIT0g
RG9uZSAmJiBtX3N0YXRlICE9IFJlYWRNZWRpYU5vdCkgewotICAgICAgICBNZWRpYVF1ZXJ5IHF1
ZXJ5ID0gTWVkaWFRdWVyeShNZWRpYVF1ZXJ5OjpOb3QsICJhbGwiLCBWZWN0b3I8TWVkaWFRdWVy
eUV4cHJlc3Npb24+KCkpOworICAgICAgICBNZWRpYVF1ZXJ5IHF1ZXJ5ID0gTWVkaWFRdWVyeShN
ZWRpYVF1ZXJ5OjpOb3QsICJhbGwiX3MsIFZlY3RvcjxNZWRpYVF1ZXJ5RXhwcmVzc2lvbj4oKSk7
CiAgICAgICAgIG1fcXVlcnlTZXQtPmFkZE1lZGlhUXVlcnkoV1RGTW92ZShxdWVyeSkpOwogICAg
IH0gZWxzZSBpZiAobV9tZWRpYVF1ZXJ5RGF0YS5jdXJyZW50TWVkaWFRdWVyeUNoYW5nZWQoKSkK
ICAgICAgICAgY29tbWl0TWVkaWFRdWVyeSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3NzL3BhcnNlci9TaXplc0F0dHJpYnV0ZVBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
cGFyc2VyL1NpemVzQXR0cmlidXRlUGFyc2VyLmNwcAppbmRleCBkNmU0OGEyM2ZmOTdlMGE4Yjcz
NmQ4MDM3OTc0MjQ3NTA1YzM3ZmY4Li40ZGE0MDE2ZTYwNjU3ZmIzNzQ1MmVlMWI5MWE2MWQ1NmUw
ODg0ODg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL1NpemVzQXR0cmli
dXRlUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL1NpemVzQXR0cmli
dXRlUGFyc2VyLmNwcApAQCAtMTEyLDcgKzExMiw3IEBAIGJvb2wgU2l6ZXNBdHRyaWJ1dGVQYXJz
ZXI6Om1lZGlhQ29uZGl0aW9uTWF0Y2hlcyhjb25zdCBNZWRpYVF1ZXJ5U2V0JiBtZWRpYUNvbmRp
CiAgICAgaWYgKCFyZW5kZXJlcikKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGF1dG8mIHN0
eWxlID0gcmVuZGVyZXItPnN0eWxlKCk7Ci0gICAgcmV0dXJuIE1lZGlhUXVlcnlFdmFsdWF0b3Ig
eyAic2NyZWVuIiwgbV9kb2N1bWVudCwgJnN0eWxlIH0uZXZhbHVhdGUobWVkaWFDb25kaXRpb24s
IG1fbWVkaWFRdWVyeUR5bmFtaWNSZXN1bHRzKTsKKyAgICByZXR1cm4gTWVkaWFRdWVyeUV2YWx1
YXRvciB7ICJzY3JlZW4iX3MsIG1fZG9jdW1lbnQsICZzdHlsZSB9LmV2YWx1YXRlKG1lZGlhQ29u
ZGl0aW9uLCBtX21lZGlhUXVlcnlEeW5hbWljUmVzdWx0cyk7CiB9CiAKIGJvb2wgU2l6ZXNBdHRy
aWJ1dGVQYXJzZXI6OnBhcnNlKENTU1BhcnNlclRva2VuUmFuZ2UgcmFuZ2UpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NOdW1lcmljRmFjdG9yeS5oIGIvU291cmNl
L1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTTnVtZXJpY0ZhY3RvcnkuaAppbmRleCA4MjM1MGI5OWQ4
NzRiMGZhOTA2NWY2NGRkZDU5OTNkZDZkODMwYjM5Li4zNTM2MmIyMTZkMDJiYjcyM2I3ODZhMmM3
MjEzM2QxNTYzYmIyMGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9D
U1NOdW1lcmljRmFjdG9yeS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU051
bWVyaWNGYWN0b3J5LmgKQEAgLTQzLDY0ICs0Myw2NCBAQCBjbGFzcyBDU1NOdW1lcmljRmFjdG9y
eSBmaW5hbCA6IHB1YmxpYyBTdXBwbGVtZW50PERPTUNTU05hbWVzcGFjZT4gewogcHVibGljOgog
ICAgIGV4cGxpY2l0IENTU051bWVyaWNGYWN0b3J5KERPTUNTU05hbWVzcGFjZSYpIHsgfQogCi0g
ICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IG51bWJlcihkb3VibGUgdmFsdWUpIHsgcmV0dXJu
IENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAibnVtYmVyIik7IH0KLSAgICBzdGF0aWMgUmVm
PENTU1VuaXRWYWx1ZT4gcGVyY2VudChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1
ZTo6Y3JlYXRlKHZhbHVlLCAicGVyY2VudCIpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFs
dWU+IG51bWJlcihkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZh
bHVlLCAibnVtYmVyIl9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBwZXJjZW50
KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJwZXJj
ZW50Il9zKTsgfQogCiAKICAgICAvLyA8bGVuZ3RoPgotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZh
bHVlPiBlbShkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVl
LCAiZW0iKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBleChkb3VibGUgdmFsdWUp
IHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiZXgiKTsgfQotICAgIHN0YXRp
YyBSZWY8Q1NTVW5pdFZhbHVlPiBjaChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1
ZTo6Y3JlYXRlKHZhbHVlLCAiY2giKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBp
Yyhkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiaWMi
KTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiByZW0oZG91YmxlIHZhbHVlKSB7IHJl
dHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInJlbSIpOyB9Ci0gICAgc3RhdGljIFJl
ZjxDU1NVbml0VmFsdWU+IGxoKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpj
cmVhdGUodmFsdWUsICJsaCIpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHJsaChk
b3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAicmxoIik7
IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gdncoZG91YmxlIHZhbHVlKSB7IHJldHVy
biBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInZ3Iik7IH0KLSAgICBzdGF0aWMgUmVmPENT
U1VuaXRWYWx1ZT4gdmgoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0
ZSh2YWx1ZSwgInZoIik7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gdmkoZG91Ymxl
IHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInZpIik7IH0KLSAg
ICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gdmIoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NV
bml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInZiIik7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRW
YWx1ZT4gdm1pbihkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZh
bHVlLCAidm1pbiIpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHZtYXgoZG91Ymxl
IHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInZtYXgiKTsgfQot
ICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBjbShkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENT
U1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiY20iKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5p
dFZhbHVlPiBtbShkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZh
bHVlLCAibW0iKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBxKGRvdWJsZSB2YWx1
ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJxIik7IH0KLSAgICBzdGF0
aWMgUmVmPENTU1VuaXRWYWx1ZT4gaW4oZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFs
dWU6OmNyZWF0ZSh2YWx1ZSwgImluIik7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4g
cHQoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInB0
Iik7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gcGMoZG91YmxlIHZhbHVlKSB7IHJl
dHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInBjIik7IH0KLSAgICBzdGF0aWMgUmVm
PENTU1VuaXRWYWx1ZT4gcHgoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNy
ZWF0ZSh2YWx1ZSwgInB4Iik7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gY3F3KGRv
dWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJjcXciKTsg
fQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBjcWgoZG91YmxlIHZhbHVlKSB7IHJldHVy
biBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImNxaCIpOyB9Ci0gICAgc3RhdGljIFJlZjxD
U1NVbml0VmFsdWU+IGNxaShkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3Jl
YXRlKHZhbHVlLCAiY3FpIik7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gY3FiKGRv
dWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJjcWIiKTsg
fQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBjcW1pbihkb3VibGUgdmFsdWUpIHsgcmV0
dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiY3FtaW4iKTsgfQotICAgIHN0YXRpYyBS
ZWY8Q1NTVW5pdFZhbHVlPiBjcW1heChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1
ZTo6Y3JlYXRlKHZhbHVlLCAiY3FtYXgiKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVl
PiBlbShkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAi
ZW0iX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGV4KGRvdWJsZSB2YWx1ZSkg
eyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJleCJfcyk7IH0KKyAgICBzdGF0
aWMgUmVmPENTU1VuaXRWYWx1ZT4gY2goZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFs
dWU6OmNyZWF0ZSh2YWx1ZSwgImNoIl9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVl
PiBpYyhkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAi
aWMiX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHJlbShkb3VibGUgdmFsdWUp
IHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAicmVtIl9zKTsgfQorICAgIHN0
YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBsaChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRW
YWx1ZTo6Y3JlYXRlKHZhbHVlLCAibGgiX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFs
dWU+IHJsaChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVl
LCAicmxoIl9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiB2dyhkb3VibGUgdmFs
dWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAidnciX3MpOyB9CisgICAg
c3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHZoKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5p
dFZhbHVlOjpjcmVhdGUodmFsdWUsICJ2aCJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRW
YWx1ZT4gdmkoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1
ZSwgInZpIl9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiB2Yihkb3VibGUgdmFs
dWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAidmIiX3MpOyB9CisgICAg
c3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHZtaW4oZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NV
bml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInZtaW4iX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NV
bml0VmFsdWU+IHZtYXgoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0
ZSh2YWx1ZSwgInZtYXgiX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGNtKGRv
dWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJjbSJfcyk7
IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gbW0oZG91YmxlIHZhbHVlKSB7IHJldHVy
biBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgIm1tIl9zKTsgfQorICAgIHN0YXRpYyBSZWY8
Q1NTVW5pdFZhbHVlPiBxKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVh
dGUodmFsdWUsICJxIl9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBpbihkb3Vi
bGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiaW4iX3MpOyB9
CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHB0KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4g
Q1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJwdCJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENT
U1VuaXRWYWx1ZT4gcGMoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0
ZSh2YWx1ZSwgInBjIl9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBweChkb3Vi
bGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAicHgiX3MpOyB9
CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGNxdyhkb3VibGUgdmFsdWUpIHsgcmV0dXJu
IENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiY3F3Il9zKTsgfQorICAgIHN0YXRpYyBSZWY8
Q1NTVW5pdFZhbHVlPiBjcWgoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNy
ZWF0ZSh2YWx1ZSwgImNxaCJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gY3Fp
KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJjcWki
X3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGNxYihkb3VibGUgdmFsdWUpIHsg
cmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiY3FiIl9zKTsgfQorICAgIHN0YXRp
YyBSZWY8Q1NTVW5pdFZhbHVlPiBjcW1pbihkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRW
YWx1ZTo6Y3JlYXRlKHZhbHVlLCAiY3FtaW4iX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0
VmFsdWU+IGNxbWF4KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUo
dmFsdWUsICJjcW1heCJfcyk7IH0KIAogCiAgICAgLy8gPGFuZ2xlPgotICAgIHN0YXRpYyBSZWY8
Q1NTVW5pdFZhbHVlPiBkZWcoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNy
ZWF0ZSh2YWx1ZSwgImRlZyIpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGdyYWQo
ZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImdyYWQi
KTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiByYWQoZG91YmxlIHZhbHVlKSB7IHJl
dHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInJhZCIpOyB9Ci0gICAgc3RhdGljIFJl
ZjxDU1NVbml0VmFsdWU+IHR1cm4oZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6
OmNyZWF0ZSh2YWx1ZSwgInR1cm4iKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBk
ZWcoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImRl
ZyJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gZ3JhZChkb3VibGUgdmFsdWUp
IHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiZ3JhZCJfcyk7IH0KKyAgICBz
dGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gcmFkKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5p
dFZhbHVlOjpjcmVhdGUodmFsdWUsICJyYWQiX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0
VmFsdWU+IHR1cm4oZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2
YWx1ZSwgInR1cm4iX3MpOyB9CiAKIAogICAgIC8vIDx0aW1lPgotICAgIHN0YXRpYyBSZWY8Q1NT
VW5pdFZhbHVlPiBzKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUo
dmFsdWUsICJzIik7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gbXMoZG91YmxlIHZh
bHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgIm1zIik7IH0KKyAgICBz
dGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gcyhkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRW
YWx1ZTo6Y3JlYXRlKHZhbHVlLCAicyJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1
ZT4gbXMoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwg
Im1zIl9zKTsgfQogCiAKICAgICAvLyA8ZnJlcXVlbmN5PgotICAgIHN0YXRpYyBSZWY8Q1NTVW5p
dFZhbHVlPiBoeihkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZh
bHVlLCAiaHoiKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBrSHooZG91YmxlIHZh
bHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImtoeiIpOyB9CisgICAg
c3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGh6KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5p
dFZhbHVlOjpjcmVhdGUodmFsdWUsICJoeiJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRW
YWx1ZT4ga0h6KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFs
dWUsICJraHoiX3MpOyB9CiAKIAogICAgIC8vIDxyZXNvbHV0aW9uPgotICAgIHN0YXRpYyBSZWY8
Q1NTVW5pdFZhbHVlPiBkcGkoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNy
ZWF0ZSh2YWx1ZSwgImRwaSIpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGRwY20o
ZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImRwY20i
KTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBkcHB4KGRvdWJsZSB2YWx1ZSkgeyBy
ZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJkcHB4Iik7IH0KKyAgICBzdGF0aWMg
UmVmPENTU1VuaXRWYWx1ZT4gZHBpKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVl
OjpjcmVhdGUodmFsdWUsICJkcGkiX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+
IGRwY20oZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwg
ImRwY20iX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGRwcHgoZG91YmxlIHZh
bHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImRwcHgiX3MpOyB9CiAK
IAogICAgIC8vIDxmbGV4PgotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBmcihkb3VibGUg
dmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiZnIiKTsgfQorICAg
IHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBmcihkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1Vu
aXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiZnIiX3MpOyB9CiAKIAogcHJpdmF0ZToKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU051bWVyaWNWYWx1ZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NOdW1lcmljVmFsdWUuY3BwCmluZGV4IGNlZTE3Yzg3
MDhmOGNiNjM4YWUxMTNhMzRlNzEyYzU0MTIzMTBjYWYuLmVkN2JmOTgzOGIyODM2ZjAwZmRkNWE5
NWE0OWI3YjBjMDM2NjZlZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9t
L0NTU051bWVyaWNWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NT
TnVtZXJpY1ZhbHVlLmNwcApAQCAtMTU3LDcgKzE1Nyw3IEBAIFJlZjxDU1NOdW1lcmljVmFsdWU+
IENTU051bWVyaWNWYWx1ZTo6bXVsdGlwbHlJbnRlcm5hbChWZWN0b3I8UmVmPENTU051bWVyaWNW
YWx1CiAgICAgICAgICAgICBkb3VibGUgcHJvZHVjdCA9IDE7CiAgICAgICAgICAgICBmb3IgKGNv
bnN0IFJlZjxDU1NOdW1lcmljVmFsdWU+JiB2YWx1ZSA6IHZhbHVlcykKICAgICAgICAgICAgICAg
ICBwcm9kdWN0ICo9IGRvd25jYXN0PENTU1VuaXRWYWx1ZT4odmFsdWUuZ2V0KCkpLnZhbHVlKCk7
Ci0gICAgICAgICAgICBTdHJpbmcgdW5pdCA9IG5vbk51bWJlclVuaXRJbmRleCA/IGRvd25jYXN0
PENTU1VuaXRWYWx1ZT4odmFsdWVzWypub25OdW1iZXJVbml0SW5kZXhdLmdldCgpKS51bml0KCkg
OiAibnVtYmVyIjsKKyAgICAgICAgICAgIFN0cmluZyB1bml0ID0gbm9uTnVtYmVyVW5pdEluZGV4
ID8gZG93bmNhc3Q8Q1NTVW5pdFZhbHVlPih2YWx1ZXNbKm5vbk51bWJlclVuaXRJbmRleF0uZ2V0
KCkpLnVuaXQoKSA6ICJudW1iZXIiX3M7CiAgICAgICAgICAgICByZXR1cm4gQ1NTVW5pdFZhbHVl
OjpjcmVhdGUocHJvZHVjdCwgdW5pdCk7CiAgICAgICAgIH0KICAgICB9CkBAIC0yMzUsNyArMjM1
LDcgQEAgUmVmPENTU1VuaXRWYWx1ZT4gQ1NTTnVtZXJpY1ZhbHVlOjp0byhTdHJpbmcmJiB1bml0
KQogICAgIFVOVVNFRF9QQVJBTSh1bml0KTsKICAgICAvLyBodHRwczovL2RyYWZ0cy5jc3MtaG91
ZGluaS5vcmcvY3NzLXR5cGVkLW9tLyNkb20tY3NzbnVtZXJpY3ZhbHVlLXRvCiAgICAgLy8gRklY
TUU6IGFkZCBpbXBsLgotICAgIHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSgxLjAsICJudW1i
ZXIiKTsKKyAgICByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUoMS4wLCAibnVtYmVyIl9zKTsK
IH0KIAogUmVmPENTU01hdGhTdW0+IENTU051bWVyaWNWYWx1ZTo6dG9TdW0oRml4ZWRWZWN0b3I8
U3RyaW5nPiYmIHVuaXRzKQpAQCAtMjU4LDcgKzI1OCw3IEBAIEV4Y2VwdGlvbk9yPFJlZjxDU1NO
dW1lcmljVmFsdWU+PiBDU1NOdW1lcmljVmFsdWU6OnBhcnNlKFN0cmluZyYmIGNzc1RleHQpCiAg
ICAgVU5VU0VEX1BBUkFNKGNzc1RleHQpOwogICAgIC8vIGh0dHBzOi8vZHJhZnRzLmNzcy1ob3Vk
aW5pLm9yZy9jc3MtdHlwZWQtb20vI2RvbS1jc3NudW1lcmljdmFsdWUtcGFyc2UKICAgICAvLyBG
SVhNRTogYWRkIGltcGwuCi0gICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBvcnRlZEVycm9y
LCAiTm90IGltcGxlbWVudGVkIEVycm9yIiB9OworICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RT
dXBwb3J0ZWRFcnJvciwgIk5vdCBpbXBsZW1lbnRlZCBFcnJvciJfcyB9OwogfQogCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9D
U1NTdHlsZVZhbHVlRmFjdG9yeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NT
dHlsZVZhbHVlRmFjdG9yeS5jcHAKaW5kZXggOWZjNzBmYjEwMjcxNjg3MTQ3NDUzNjY1MmQ0Y2Mx
MzEwNGRmMzQyNC4uMGFiYjNhNDgyODUyZGJkNGRkMzE3OGYyNDk4MzJmNTg3OGI3MWJhZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTU3R5bGVWYWx1ZUZhY3Rvcnku
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU1N0eWxlVmFsdWVGYWN0b3J5
LmNwcApAQCAtMjY0LDcgKzI2NCw3IEBAIEV4Y2VwdGlvbk9yPFJlZjxDU1NTdHlsZVZhbHVlPj4g
Q1NTU3R5bGVWYWx1ZUZhY3Rvcnk6OnJlaWZ5VmFsdWUoUmVmPENTU1ZhbHVlPiYmCiAgICAgICAg
IC8vIFJlZmVyIHRvIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy10eXBlZC1vbS90aGUtc3R5bGVwcm9wZXJ0eW1hcC9pbmxpbmUvZ2V0Lmh0bWwKICAg
ICAgICAgYXV0byB2YWx1ZUxpc3QgPSBkb3duY2FzdDxDU1NWYWx1ZUxpc3Q+KGNzc1ZhbHVlLnB0
cigpKTsKICAgICAgICAgaWYgKCF2YWx1ZUxpc3QtPmxlbmd0aCgpKQotICAgICAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIlRoZSBDU1NWYWx1ZUxpc3Qgc2hvdWxkIG5vdCBi
ZSBlbXB0eS4iIH07CisgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAi
VGhlIENTU1ZhbHVlTGlzdCBzaG91bGQgbm90IGJlIGVtcHR5LiJfcyB9OwogICAgICAgICAKICAg
ICAgICAgcmV0dXJuIHJlaWZ5VmFsdWUoV1RGTW92ZSgqdmFsdWVMaXN0LT5iZWdpbigpKSwgZG9j
dW1lbnQpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2Ev
SFRNTENvbnZlcnRlci5tbSBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvSFRNTENvbnZl
cnRlci5tbQppbmRleCBiNjdhNjM0OTczN2I4NWJhYzI5MzJjZTE4YWI4M2Y3M2Y4MTMxYWIzLi4y
ZDUzOWVkMmM3MWYyMmJmMjhiZjlkZjg1NDRhOWJlOTg4ZWE4N2VmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL2NvY29hL0hUTUxDb252ZXJ0ZXIubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9jb2NvYS9IVE1MQ29udmVydGVyLm1tCkBAIC01OTYsNyArNTk2LDcgQEAg
U3RyaW5nIEhUTUxDb252ZXJ0ZXJDYWNoZXM6OnByb3BlcnR5VmFsdWVGb3JOb2RlKE5vZGUmIG5v
ZGUsIENTU1Byb3BlcnR5SUQgcHJvcGUKICAgICBzd2l0Y2ggKHByb3BlcnR5SWQpIHsKICAgICBj
YXNlIENTU1Byb3BlcnR5RGlzcGxheToKICAgICAgICAgaWYgKGVsZW1lbnQuaGFzVGFnTmFtZSho
ZWFkVGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoc2NyaXB0VGFnKSB8fCBlbGVtZW50Lmhhc1Rh
Z05hbWUoYXBwbGV0VGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUobm9mcmFtZXNUYWcpKQotICAg
ICAgICAgICAgcmV0dXJuICJub25lIjsKKyAgICAgICAgICAgIHJldHVybiAibm9uZSJfczsKICAg
ICAgICAgZWxzZSBpZiAoZWxlbWVudC5oYXNUYWdOYW1lKGFkZHJlc3NUYWcpIHx8IGVsZW1lbnQu
aGFzVGFnTmFtZShibG9ja3F1b3RlVGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoYm9keVRhZykg
fHwgZWxlbWVudC5oYXNUYWdOYW1lKGNlbnRlclRhZykKICAgICAgICAgICAgICB8fCBlbGVtZW50
Lmhhc1RhZ05hbWUoZGRUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZShkaXJUYWcpIHx8IGVsZW1l
bnQuaGFzVGFnTmFtZShkaXZUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZShkbFRhZykKICAgICAg
ICAgICAgICB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoZHRUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFt
ZShmaWVsZHNldFRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKGZvcm1UYWcpIHx8IGVsZW1lbnQu
aGFzVGFnTmFtZShmcmFtZVRhZykKQEAgLTYwNCw2MiArNjA0LDYyIEBAIFN0cmluZyBIVE1MQ29u
dmVydGVyQ2FjaGVzOjpwcm9wZXJ0eVZhbHVlRm9yTm9kZShOb2RlJiBub2RlLCBDU1NQcm9wZXJ0
eUlEIHByb3BlCiAgICAgICAgICAgICAgfHwgZWxlbWVudC5oYXNUYWdOYW1lKGgyVGFnKSB8fCBl
bGVtZW50Lmhhc1RhZ05hbWUoaDNUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZShoNFRhZykgfHwg
ZWxlbWVudC5oYXNUYWdOYW1lKGg1VGFnKQogICAgICAgICAgICAgIHx8IGVsZW1lbnQuaGFzVGFn
TmFtZShoNlRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKGlmcmFtZVRhZykgfHwgZWxlbWVudC5o
YXNUYWdOYW1lKG1lbnVUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZShub3NjcmlwdFRhZykKICAg
ICAgICAgICAgICB8fCBlbGVtZW50Lmhhc1RhZ05hbWUob2xUYWcpIHx8IGVsZW1lbnQuaGFzVGFn
TmFtZShwVGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUocHJlVGFnKSB8fCBlbGVtZW50Lmhhc1Rh
Z05hbWUodWxUYWcpKQotICAgICAgICAgICAgcmV0dXJuICJibG9jayI7CisgICAgICAgICAgICBy
ZXR1cm4gImJsb2NrIl9zOwogICAgICAgICBlbHNlIGlmIChlbGVtZW50Lmhhc1RhZ05hbWUobGlU
YWcpKQotICAgICAgICAgICAgcmV0dXJuICJsaXN0LWl0ZW0iOworICAgICAgICAgICAgcmV0dXJu
ICJsaXN0LWl0ZW0iX3M7CiAgICAgICAgIGVsc2UgaWYgKGVsZW1lbnQuaGFzVGFnTmFtZSh0YWJs
ZVRhZykpCi0gICAgICAgICAgICByZXR1cm4gInRhYmxlIjsKKyAgICAgICAgICAgIHJldHVybiAi
dGFibGUiX3M7CiAgICAgICAgIGVsc2UgaWYgKGVsZW1lbnQuaGFzVGFnTmFtZSh0clRhZykpCi0g
ICAgICAgICAgICByZXR1cm4gInRhYmxlLXJvdyI7CisgICAgICAgICAgICByZXR1cm4gInRhYmxl
LXJvdyJfczsKICAgICAgICAgZWxzZSBpZiAoZWxlbWVudC5oYXNUYWdOYW1lKHRoVGFnKSB8fCBl
bGVtZW50Lmhhc1RhZ05hbWUodGRUYWcpKQotICAgICAgICAgICAgcmV0dXJuICJ0YWJsZS1jZWxs
IjsKKyAgICAgICAgICAgIHJldHVybiAidGFibGUtY2VsbCJfczsKICAgICAgICAgZWxzZSBpZiAo
ZWxlbWVudC5oYXNUYWdOYW1lKHRoZWFkVGFnKSkKLSAgICAgICAgICAgIHJldHVybiAidGFibGUt
aGVhZGVyLWdyb3VwIjsKKyAgICAgICAgICAgIHJldHVybiAidGFibGUtaGVhZGVyLWdyb3VwIl9z
OwogICAgICAgICBlbHNlIGlmIChlbGVtZW50Lmhhc1RhZ05hbWUodGJvZHlUYWcpKQotICAgICAg
ICAgICAgcmV0dXJuICJ0YWJsZS1yb3ctZ3JvdXAiOworICAgICAgICAgICAgcmV0dXJuICJ0YWJs
ZS1yb3ctZ3JvdXAiX3M7CiAgICAgICAgIGVsc2UgaWYgKGVsZW1lbnQuaGFzVGFnTmFtZSh0Zm9v
dFRhZykpCi0gICAgICAgICAgICByZXR1cm4gInRhYmxlLWZvb3Rlci1ncm91cCI7CisgICAgICAg
ICAgICByZXR1cm4gInRhYmxlLWZvb3Rlci1ncm91cCJfczsKICAgICAgICAgZWxzZSBpZiAoZWxl
bWVudC5oYXNUYWdOYW1lKGNvbFRhZykpCi0gICAgICAgICAgICByZXR1cm4gInRhYmxlLWNvbHVt
biI7CisgICAgICAgICAgICByZXR1cm4gInRhYmxlLWNvbHVtbiJfczsKICAgICAgICAgZWxzZSBp
ZiAoZWxlbWVudC5oYXNUYWdOYW1lKGNvbGdyb3VwVGFnKSkKLSAgICAgICAgICAgIHJldHVybiAi
dGFibGUtY29sdW1uLWdyb3VwIjsKKyAgICAgICAgICAgIHJldHVybiAidGFibGUtY29sdW1uLWdy
b3VwIl9zOwogICAgICAgICBlbHNlIGlmIChlbGVtZW50Lmhhc1RhZ05hbWUoY2FwdGlvblRhZykp
Ci0gICAgICAgICAgICByZXR1cm4gInRhYmxlLWNhcHRpb24iOworICAgICAgICAgICAgcmV0dXJu
ICJ0YWJsZS1jYXB0aW9uIl9zOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENTU1Byb3BlcnR5
V2hpdGVTcGFjZToKICAgICAgICAgaWYgKGVsZW1lbnQuaGFzVGFnTmFtZShwcmVUYWcpKQotICAg
ICAgICAgICAgcmV0dXJuICJwcmUiOworICAgICAgICAgICAgcmV0dXJuICJwcmUiX3M7CiAgICAg
ICAgIGluaGVyaXQgPSB0cnVlOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENTU1Byb3BlcnR5
Rm9udFN0eWxlOgogICAgICAgICBpZiAoZWxlbWVudC5oYXNUYWdOYW1lKGlUYWcpIHx8IGVsZW1l
bnQuaGFzVGFnTmFtZShjaXRlVGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoZW1UYWcpIHx8IGVs
ZW1lbnQuaGFzVGFnTmFtZSh2YXJUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZShhZGRyZXNzVGFn
KSkKLSAgICAgICAgICAgIHJldHVybiAiaXRhbGljIjsKKyAgICAgICAgICAgIHJldHVybiAiaXRh
bGljIl9zOwogICAgICAgICBpbmhlcml0ID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2Fz
ZSBDU1NQcm9wZXJ0eUZvbnRXZWlnaHQ6CiAgICAgICAgIGlmIChlbGVtZW50Lmhhc1RhZ05hbWUo
YlRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKHN0cm9uZ1RhZykgfHwgZWxlbWVudC5oYXNUYWdO
YW1lKHRoVGFnKSkKLSAgICAgICAgICAgIHJldHVybiAiYm9sZGVyIjsKKyAgICAgICAgICAgIHJl
dHVybiAiYm9sZGVyIl9zOwogICAgICAgICBpbmhlcml0ID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBDU1NQcm9wZXJ0eVRleHREZWNvcmF0aW9uTGluZToKICAgICAgICAgaWYgKGVs
ZW1lbnQuaGFzVGFnTmFtZSh1VGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoaW5zVGFnKSkKLSAg
ICAgICAgICAgIHJldHVybiAidW5kZXJsaW5lIjsKKyAgICAgICAgICAgIHJldHVybiAidW5kZXJs
aW5lIl9zOwogICAgICAgICBlbHNlIGlmIChlbGVtZW50Lmhhc1RhZ05hbWUoc1RhZykgfHwgZWxl
bWVudC5oYXNUYWdOYW1lKHN0cmlrZVRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKGRlbFRhZykp
Ci0gICAgICAgICAgICByZXR1cm4gImxpbmUtdGhyb3VnaCI7CisgICAgICAgICAgICByZXR1cm4g
ImxpbmUtdGhyb3VnaCJfczsKICAgICAgICAgaW5oZXJpdCA9IHRydWU7IC8vIEZJWE1FOiBUaGlz
IGlzIG5vdCBzdHJpY3RseSBjb3JyZWN0CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTUHJv
cGVydHlUZXh0QWxpZ246CiAgICAgICAgIGlmIChlbGVtZW50Lmhhc1RhZ05hbWUoY2VudGVyVGFn
KSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoY2FwdGlvblRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1l
KHRoVGFnKSkKLSAgICAgICAgICAgIHJldHVybiAiY2VudGVyIjsKKyAgICAgICAgICAgIHJldHVy
biAiY2VudGVyIl9zOwogICAgICAgICBpbmhlcml0ID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CiAg
ICAgY2FzZSBDU1NQcm9wZXJ0eVZlcnRpY2FsQWxpZ246CiAgICAgICAgIGlmIChlbGVtZW50Lmhh
c1RhZ05hbWUoc3VwVGFnKSkKLSAgICAgICAgICAgIHJldHVybiAic3VwZXIiOworICAgICAgICAg
ICAgcmV0dXJuICJzdXBlciJfczsKICAgICAgICAgZWxzZSBpZiAoZWxlbWVudC5oYXNUYWdOYW1l
KHN1YlRhZykpCi0gICAgICAgICAgICByZXR1cm4gInN1YiI7CisgICAgICAgICAgICByZXR1cm4g
InN1YiJfczsKICAgICAgICAgZWxzZSBpZiAoZWxlbWVudC5oYXNUYWdOYW1lKHRoZWFkVGFnKSB8
fCBlbGVtZW50Lmhhc1RhZ05hbWUodGJvZHlUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZSh0Zm9v
dFRhZykpCi0gICAgICAgICAgICByZXR1cm4gIm1pZGRsZSI7CisgICAgICAgICAgICByZXR1cm4g
Im1pZGRsZSJfczsKICAgICAgICAgZWxzZSBpZiAoZWxlbWVudC5oYXNUYWdOYW1lKHRyVGFnKSB8
fCBlbGVtZW50Lmhhc1RhZ05hbWUodGhUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZSh0ZFRhZykp
CiAgICAgICAgICAgICBpbmhlcml0ID0gdHJ1ZTsKICAgICAgICAgYnJlYWs7CkBAIC0xODUyLDcg
KzE4NTIsNyBAQCBCT09MIEhUTUxDb252ZXJ0ZXI6Ol9wcm9jZXNzRWxlbWVudChFbGVtZW50JiBl
bGVtZW50LCBOU0ludGVnZXIgZGVwdGgpCiAgICAgICAgIFJldGFpblB0cjxOU1RleHRMaXN0PiBs
aXN0OwogICAgICAgICBTdHJpbmcgbGlzdFN0eWxlVHlwZSA9IF9jYWNoZXMtPnByb3BlcnR5VmFs
dWVGb3JOb2RlKGVsZW1lbnQsIENTU1Byb3BlcnR5TGlzdFN0eWxlVHlwZSk7CiAgICAgICAgIGlm
ICghbGlzdFN0eWxlVHlwZS5sZW5ndGgoKSkKLSAgICAgICAgICAgIGxpc3RTdHlsZVR5cGUgPSAi
ZGVjaW1hbCI7CisgICAgICAgICAgICBsaXN0U3R5bGVUeXBlID0gImRlY2ltYWwiX3M7CiAgICAg
ICAgIGxpc3QgPSBhZG9wdE5TKFtbUGxhdGZvcm1OU1RleHRMaXN0IGFsbG9jXSBpbml0V2l0aE1h
cmtlckZvcm1hdDpTdHJpbmcoInsiICsgbGlzdFN0eWxlVHlwZSArICJ9Iikgb3B0aW9uczowXSk7
CiAgICAgICAgIGlmIChpczxIVE1MT0xpc3RFbGVtZW50PihlbGVtZW50KSkgewogICAgICAgICAg
ICAgTlNJbnRlZ2VyIHN0YXJ0aW5nSXRlbU51bWJlciA9IGRvd25jYXN0PEhUTUxPTGlzdEVsZW1l
bnQ+KGVsZW1lbnQpLnN0YXJ0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L2NvY29hL1dlYkNvbnRlbnRSZWFkZXJDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
Y29jb2EvV2ViQ29udGVudFJlYWRlckNvY29hLm1tCmluZGV4IGU4ODZhMjdkYmQ2MjI0MGFkOTg0
MjA0NWNlYjgzMDUwYTJmYzAzZGYuLmQ4ZDE0MGRlZjdkM2EzOGIwMjRhNDExMzRiNjU4ZTdmMzE0
MTRlMmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvV2ViQ29udGVu
dFJlYWRlckNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29jb2EvV2ViQ29u
dGVudFJlYWRlckNvY29hLm1tCkBAIC03NjIsNyArNzYyLDcgQEAgc3RhdGljIFJlZjxIVE1MRWxl
bWVudD4gYXR0YWNobWVudEZvckRhdGEoRnJhbWUmIGZyYW1lLCBGcmFnbWVudGVkU2hhcmVkQnVm
ZmVyJgogICAgIGF1dG8gYXR0YWNobWVudFR5cGUgPSB0eXBlRm9yQXR0YWNobWVudEVsZW1lbnQo
Y29udGVudFR5cGUpOwogCiAgICAgLy8gRklYTUU6IFdlIHNob3VsZCBpbnN0ZWFkIGFzayBDb3Jl
U2VydmljZXMgZm9yIGEgcHJlZmVycmVkIG5hbWUgY29ycmVzcG9uZGluZyB0byB0aGUgZ2l2ZW4g
Y29udGVudCB0eXBlLgotICAgIHN0YXRpYyBjb25zdCBjaGFyKiBkZWZhdWx0QXR0YWNobWVudE5h
bWUgPSAiZmlsZSI7CisgICAgc3RhdGljIGNvbnN0ZXhwciBBU0NJSUxpdGVyYWwgZGVmYXVsdEF0
dGFjaG1lbnROYW1lID0gImZpbGUiX3M7CiAKICAgICBTdHJpbmcgZmlsZU5hbWU7CiAgICAgaWYg
KG5hbWUuaXNFbXB0eSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NvY29h
L0J1bmRsZVJlc291cmNlTG9hZGVyLm1tIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NvY29hL0J1
bmRsZVJlc291cmNlTG9hZGVyLm1tCmluZGV4IGMzYjdiN2ZlNTVkYzMzMDQzY2M4YWUzOWNjZmE0
N2RiNzY5NjNlY2YuLjljMjc5MTEzOTU3OWUwZDQ2N2MzODBhNTIzZDU1MTUxNDIyMzFhYjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jb2NvYS9CdW5kbGVSZXNvdXJjZUxvYWRl
ci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY29jb2EvQnVuZGxlUmVzb3VyY2VMb2Fk
ZXIubW0KQEAgLTY1LDEzICs2NSwxMyBAQCB2b2lkIGxvYWRSZXNvdXJjZUZyb21CdW5kbGUoUmVz
b3VyY2VMb2FkZXImIGxvYWRlciwgY29uc3QgU3RyaW5nJiBzdWJkaXJlY3RvcnkpCiAKICAgICAg
ICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFtwcm90ZWN0ZWRMb2FkZXIgPSBXVEZNb3ZlKHBy
b3RlY3RlZExvYWRlciksIHVybCA9IFdURk1vdmUodXJsKS5pc29sYXRlZENvcHkoKSwgYnVmZmVy
ID0gU2hhcmVkQnVmZmVyOjpjcmVhdGUoZGF0YSldKCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBh
dXRvIG1pbWVUeXBlID0gTUlNRVR5cGVSZWdpc3RyeTo6bWltZVR5cGVGb3JQYXRoKHVybC5wYXRo
KCkpOwotICAgICAgICAgICAgUmVzb3VyY2VSZXNwb25zZSByZXNwb25zZSB7IHVybCwgbWltZVR5
cGUsIHN0YXRpY19jYXN0PGxvbmcgbG9uZz4oYnVmZmVyLT5zaXplKCkpLCBNSU1FVHlwZVJlZ2lz
dHJ5Ojppc1RleHRNSU1FVHlwZShtaW1lVHlwZSkgPyAiVVRGLTgiX3MgOiBudWxscHRyIH07Cisg
ICAgICAgICAgICBSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlIHsgdXJsLCBtaW1lVHlwZSwgc3Rh
dGljX2Nhc3Q8bG9uZyBsb25nPihidWZmZXItPnNpemUoKSksIE1JTUVUeXBlUmVnaXN0cnk6Omlz
VGV4dE1JTUVUeXBlKG1pbWVUeXBlKSA/ICJVVEYtOCJfcyA6IFN0cmluZygpIH07CiAgICAgICAg
ICAgICByZXNwb25zZS5zZXRIVFRQU3RhdHVzQ29kZSgyMDApOwogICAgICAgICAgICAgcmVzcG9u
c2Uuc2V0SFRUUFN0YXR1c1RleHQoIk9LIl9zKTsKICAgICAgICAgICAgIHJlc3BvbnNlLnNldFNv
dXJjZShSZXNvdXJjZVJlc3BvbnNlOjpTb3VyY2U6Ok5ldHdvcmspOwogCiAgICAgICAgICAgICAv
LyBBbGxvdyBpbWFnZXMgdG8gbG9hZC4KLSAgICAgICAgICAgIHJlc3BvbnNlLmFkZEhUVFBIZWFk
ZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6QWNjZXNzQ29udHJvbEFsbG93T3JpZ2luLCAiKiIpOwor
ICAgICAgICAgICAgcmVzcG9uc2UuYWRkSFRUUEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpB
Y2Nlc3NDb250cm9sQWxsb3dPcmlnaW4sICIqIl9zKTsKIAogICAgICAgICAgICAgcHJvdGVjdGVk
TG9hZGVyLT5kZWxpdmVyUmVzcG9uc2VBbmREYXRhKHJlc3BvbnNlLCBXVEZNb3ZlKGJ1ZmZlcikp
OwogICAgICAgICB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvUmVz
b3VyY2VVc2FnZU92ZXJsYXlDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvUmVz
b3VyY2VVc2FnZU92ZXJsYXlDb2NvYS5tbQppbmRleCAxMTQ4NGQwYzU5MmMwN2ZmOTRlYzE3N2Ew
MTI4MDEwNzljMzk1OTcxLi5lMWRjMjliODYyZDQyMjQzYTlhMjkxYTBlZDFmNWY0MzNmY2RhMWVh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL1Jlc291cmNlVXNhZ2VPdmVy
bGF5Q29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9SZXNvdXJjZVVzYWdl
T3ZlcmxheUNvY29hLm1tCkBAIC0xNjEsMTggKzE2MSwxOCBAQCBzdHJ1Y3QgSGlzdG9yaWNSZXNv
dXJjZVVzYWdlRGF0YSB7CiBIaXN0b3JpY1Jlc291cmNlVXNhZ2VEYXRhOjpIaXN0b3JpY1Jlc291
cmNlVXNhZ2VEYXRhKCkKIHsKICAgICAvLyBWTSB0YWcgY2F0ZWdvcmllcy4KLSAgICBjYXRlZ29y
aWVzW01lbW9yeUNhdGVnb3J5OjpKU0pJVF0gPSBIaXN0b3JpY01lbW9yeUNhdGVnb3J5SW5mbyhN
ZW1vcnlDYXRlZ29yeTo6SlNKSVQsIHsgMjU1LCA5NiwgMjU1IH0sICJKUyBKSVQiKTsKLSAgICBj
YXRlZ29yaWVzW01lbW9yeUNhdGVnb3J5OjpHaWdhY2FnZV0gPSBIaXN0b3JpY01lbW9yeUNhdGVn
b3J5SW5mbyhNZW1vcnlDYXRlZ29yeTo6R2lnYWNhZ2UsIHsgMTAxLCA3OSwgMjQwIH0sICJHaWdh
Y2FnZSIpOwotICAgIGNhdGVnb3JpZXNbTWVtb3J5Q2F0ZWdvcnk6OkltYWdlc10gPSBIaXN0b3Jp
Y01lbW9yeUNhdGVnb3J5SW5mbyhNZW1vcnlDYXRlZ29yeTo6SW1hZ2VzLCBDb2xvcjo6eWVsbG93
LCAiSW1hZ2VzIik7Ci0gICAgY2F0ZWdvcmllc1tNZW1vcnlDYXRlZ29yeTo6TGF5ZXJzXSA9IEhp
c3RvcmljTWVtb3J5Q2F0ZWdvcnlJbmZvKE1lbW9yeUNhdGVnb3J5OjpMYXllcnMsIENvbG9yOjpj
eWFuLCAiTGF5ZXJzIik7Ci0gICAgY2F0ZWdvcmllc1tNZW1vcnlDYXRlZ29yeTo6TGliY01hbGxv
Y10gPSBIaXN0b3JpY01lbW9yeUNhdGVnb3J5SW5mbyhNZW1vcnlDYXRlZ29yeTo6TGliY01hbGxv
YywgQ29sb3I6OmdyZWVuLCAibGliYyBtYWxsb2MiKTsKLSAgICBjYXRlZ29yaWVzW01lbW9yeUNh
dGVnb3J5OjpibWFsbG9jXSA9IEhpc3RvcmljTWVtb3J5Q2F0ZWdvcnlJbmZvKE1lbW9yeUNhdGVn
b3J5OjpibWFsbG9jLCB7IDI1NSwgOTYsIDk2IH0sICJibWFsbG9jIik7Ci0gICAgY2F0ZWdvcmll
c1tNZW1vcnlDYXRlZ29yeTo6SXNvSGVhcF0gPSBIaXN0b3JpY01lbW9yeUNhdGVnb3J5SW5mbyhN
ZW1vcnlDYXRlZ29yeTo6SXNvSGVhcCwgeyAxMjgsIDE1OSwgNjQgfSwgIklzb0hlYXAiKTsKLSAg
ICBjYXRlZ29yaWVzW01lbW9yeUNhdGVnb3J5OjpPdGhlcl0gPSBIaXN0b3JpY01lbW9yeUNhdGVn
b3J5SW5mbyhNZW1vcnlDYXRlZ29yeTo6T3RoZXIsIHsgMTkyLCAyNTUsIDAgfSwgIk90aGVyIik7
CisgICAgY2F0ZWdvcmllc1tNZW1vcnlDYXRlZ29yeTo6SlNKSVRdID0gSGlzdG9yaWNNZW1vcnlD
YXRlZ29yeUluZm8oTWVtb3J5Q2F0ZWdvcnk6OkpTSklULCB7IDI1NSwgOTYsIDI1NSB9LCAiSlMg
SklUIl9zKTsKKyAgICBjYXRlZ29yaWVzW01lbW9yeUNhdGVnb3J5OjpHaWdhY2FnZV0gPSBIaXN0
b3JpY01lbW9yeUNhdGVnb3J5SW5mbyhNZW1vcnlDYXRlZ29yeTo6R2lnYWNhZ2UsIHsgMTAxLCA3
OSwgMjQwIH0sICJHaWdhY2FnZSJfcyk7CisgICAgY2F0ZWdvcmllc1tNZW1vcnlDYXRlZ29yeTo6
SW1hZ2VzXSA9IEhpc3RvcmljTWVtb3J5Q2F0ZWdvcnlJbmZvKE1lbW9yeUNhdGVnb3J5OjpJbWFn
ZXMsIENvbG9yOjp5ZWxsb3csICJJbWFnZXMiX3MpOworICAgIGNhdGVnb3JpZXNbTWVtb3J5Q2F0
ZWdvcnk6OkxheWVyc10gPSBIaXN0b3JpY01lbW9yeUNhdGVnb3J5SW5mbyhNZW1vcnlDYXRlZ29y
eTo6TGF5ZXJzLCBDb2xvcjo6Y3lhbiwgIkxheWVycyJfcyk7CisgICAgY2F0ZWdvcmllc1tNZW1v
cnlDYXRlZ29yeTo6TGliY01hbGxvY10gPSBIaXN0b3JpY01lbW9yeUNhdGVnb3J5SW5mbyhNZW1v
cnlDYXRlZ29yeTo6TGliY01hbGxvYywgQ29sb3I6OmdyZWVuLCAibGliYyBtYWxsb2MiX3MpOwor
ICAgIGNhdGVnb3JpZXNbTWVtb3J5Q2F0ZWdvcnk6OmJtYWxsb2NdID0gSGlzdG9yaWNNZW1vcnlD
YXRlZ29yeUluZm8oTWVtb3J5Q2F0ZWdvcnk6OmJtYWxsb2MsIHsgMjU1LCA5NiwgOTYgfSwgImJt
YWxsb2MiX3MpOworICAgIGNhdGVnb3JpZXNbTWVtb3J5Q2F0ZWdvcnk6Oklzb0hlYXBdID0gSGlz
dG9yaWNNZW1vcnlDYXRlZ29yeUluZm8oTWVtb3J5Q2F0ZWdvcnk6Oklzb0hlYXAsIHsgMTI4LCAx
NTksIDY0IH0sICJJc29IZWFwIl9zKTsKKyAgICBjYXRlZ29yaWVzW01lbW9yeUNhdGVnb3J5OjpP
dGhlcl0gPSBIaXN0b3JpY01lbW9yeUNhdGVnb3J5SW5mbyhNZW1vcnlDYXRlZ29yeTo6T3RoZXIs
IHsgMTkyLCAyNTUsIDAgfSwgIk90aGVyIl9zKTsKIAogICAgIC8vIFN1YiBjYXRlZ29yaWVzIChl
LmcgYnJlYWtkb3duIG9mIGJtYWxsb2MgdGFnLikKLSAgICBjYXRlZ29yaWVzW01lbW9yeUNhdGVn
b3J5OjpHQ0hlYXBdID0gSGlzdG9yaWNNZW1vcnlDYXRlZ29yeUluZm8oTWVtb3J5Q2F0ZWdvcnk6
OkdDSGVhcCwgeyAxNjAsIDE2MCwgMjU1IH0sICJHQyBoZWFwIiwgdHJ1ZSk7Ci0gICAgY2F0ZWdv
cmllc1tNZW1vcnlDYXRlZ29yeTo6R0NPd25lZF0gPSBIaXN0b3JpY01lbW9yeUNhdGVnb3J5SW5m
byhNZW1vcnlDYXRlZ29yeTo6R0NPd25lZCwgeyAyNTUsIDE5MiwgOTYgfSwgIkdDIG93bmVkIiwg
dHJ1ZSk7CisgICAgY2F0ZWdvcmllc1tNZW1vcnlDYXRlZ29yeTo6R0NIZWFwXSA9IEhpc3Rvcmlj
TWVtb3J5Q2F0ZWdvcnlJbmZvKE1lbW9yeUNhdGVnb3J5OjpHQ0hlYXAsIHsgMTYwLCAxNjAsIDI1
NSB9LCAiR0MgaGVhcCJfcywgdHJ1ZSk7CisgICAgY2F0ZWdvcmllc1tNZW1vcnlDYXRlZ29yeTo6
R0NPd25lZF0gPSBIaXN0b3JpY01lbW9yeUNhdGVnb3J5SW5mbyhNZW1vcnlDYXRlZ29yeTo6R0NP
d25lZCwgeyAyNTUsIDE5MiwgOTYgfSwgIkdDIG93bmVkIl9zLCB0cnVlKTsKIAogI2lmbmRlZiBO
REVCVUcKICAgICAvLyBFbnN1cmUgdGhpcyBhbGlnbnMgd2l0aCBSZXNvdXJjZVVzYWdlRGF0YSdz
IGNhdGVnb3J5IG9yZGVyLgpAQCAtMzExLDcgKzMxMSw3IEBAIHN0YXRpYyB2b2lkIGRyYXdDcHVI
aXN0b3J5KENHQ29udGV4dFJlZiBjb250ZXh0LCBmbG9hdCB4MSwgZmxvYXQgeTEsIGZsb2F0IHky
LCBSCiAgICAgICAgIGkrKzsKICAgICB9KTsKIAotICAgIGRyYXdHcmFwaExhYmVsKGNvbnRleHQs
IHgxLCB5MiwgIkNQVSIpOworICAgIGRyYXdHcmFwaExhYmVsKGNvbnRleHQsIHgxLCB5MiwgIkNQ
VSJfcyk7CiB9CiAKIHN0YXRpYyB2b2lkIGRyYXdHQ0hpc3RvcnkoQ0dDb250ZXh0UmVmIGNvbnRl
eHQsIGZsb2F0IHgxLCBmbG9hdCB5MSwgZmxvYXQgeTIsIFJpbmdCdWZmZXI8c2l6ZV90PiYgc2l6
ZUhpc3RvcnksIFJpbmdCdWZmZXI8c2l6ZV90PiYgY2FwYWNpdHlIaXN0b3J5KQpAQCAtMzU0LDcg
KzM1NCw3IEBAIHN0YXRpYyB2b2lkIGRyYXdHQ0hpc3RvcnkoQ0dDb250ZXh0UmVmIGNvbnRleHQs
IGZsb2F0IHgxLCBmbG9hdCB5MSwgZmxvYXQgeTIsIFJpCiAgICAgICAgIGkrKzsKICAgICB9KTsK
IAotICAgIGRyYXdHcmFwaExhYmVsKGNvbnRleHQsIHgxLCB5MiwgIkdDIik7CisgICAgZHJhd0dy
YXBoTGFiZWwoY29udGV4dCwgeDEsIHkyLCAiR0MiX3MpOwogfQogCiBzdGF0aWMgdm9pZCBkcmF3
TWVtSGlzdG9yeShDR0NvbnRleHRSZWYgY29udGV4dCwgZmxvYXQgeDEsIGZsb2F0IHkxLCBmbG9h
dCB5MiwgSGlzdG9yaWNSZXNvdXJjZVVzYWdlRGF0YSYgZGF0YSkKQEAgLTQwMCw3ICs0MDAsNyBA
QCBzdGF0aWMgdm9pZCBkcmF3TWVtSGlzdG9yeShDR0NvbnRleHRSZWYgY29udGV4dCwgZmxvYXQg
eDEsIGZsb2F0IHkxLCBmbG9hdCB5MiwgSAogICAgICAgICArK2k7CiAgICAgfQogCi0gICAgZHJh
d0dyYXBoTGFiZWwoY29udGV4dCwgeDEsIHkyLCAiTWVtIik7CisgICAgZHJhd0dyYXBoTGFiZWwo
Y29udGV4dCwgeDEsIHkyLCAiTWVtIl9zKTsKIH0KIAogc3RhdGljIGNvbnN0IGZsb2F0IGZ1bGxD
aXJjbGVJblJhZGlhbnMgPSBwaUZsb2F0ICogMjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvY29jb2EvU2V0dGluZ3NCYXNlQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2Nv
Y29hL1NldHRpbmdzQmFzZUNvY29hLm1tCmluZGV4IGQyMWQ5OWQ4NjFiOGZhOTI4MmU5MWE5YWE0
YTMwMWY4ZmI2NGQxNzcuLjQ3NzRjZTA4YTViOGI1MGY2NGExNjIwMmY1MzhiNGY0ZjdlZjJlNDgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvU2V0dGluZ3NCYXNlQ29jb2Eu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9TZXR0aW5nc0Jhc2VDb2NvYS5tbQpA
QCAtNDMsMTUgKzQzLDE1IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogdm9pZCBTZXR0aW5nc0Jh
c2U6OmluaXRpYWxpemVEZWZhdWx0Rm9udEZhbWlsaWVzKCkKIHsKLSAgICBzZXRTdGFuZGFyZEZv
bnRGYW1pbHkoIlNvbmd0aSBUQyIsIFVTQ1JJUFRfVFJBRElUSU9OQUxfSEFOKTsKLSAgICBzZXRT
dGFuZGFyZEZvbnRGYW1pbHkoIlNvbmd0aSBTQyIsIFVTQ1JJUFRfU0lNUExJRklFRF9IQU4pOwot
ICAgIHNldFN0YW5kYXJkRm9udEZhbWlseSgiSGlyYWdpbm8gTWluY2hvIFByb04iLCBVU0NSSVBU
X0tBVEFLQU5BX09SX0hJUkFHQU5BKTsKLSAgICBzZXRTdGFuZGFyZEZvbnRGYW1pbHkoIkFwcGxl
TXl1bmdqbyIsIFVTQ1JJUFRfSEFOR1VMKTsKLQotICAgIHNldFN0YW5kYXJkRm9udEZhbWlseSgi
VGltZXMiLCBVU0NSSVBUX0NPTU1PTik7Ci0gICAgc2V0Rml4ZWRGb250RmFtaWx5KCJDb3VyaWVy
IiwgVVNDUklQVF9DT01NT04pOwotICAgIHNldFNlcmlmRm9udEZhbWlseSgiVGltZXMiLCBVU0NS
SVBUX0NPTU1PTik7Ci0gICAgc2V0U2Fuc1NlcmlmRm9udEZhbWlseSgiSGVsdmV0aWNhIiwgVVND
UklQVF9DT01NT04pOworICAgIHNldFN0YW5kYXJkRm9udEZhbWlseSgiU29uZ3RpIFRDIl9zLCBV
U0NSSVBUX1RSQURJVElPTkFMX0hBTik7CisgICAgc2V0U3RhbmRhcmRGb250RmFtaWx5KCJTb25n
dGkgU0MiX3MsIFVTQ1JJUFRfU0lNUExJRklFRF9IQU4pOworICAgIHNldFN0YW5kYXJkRm9udEZh
bWlseSgiSGlyYWdpbm8gTWluY2hvIFByb04iX3MsIFVTQ1JJUFRfS0FUQUtBTkFfT1JfSElSQUdB
TkEpOworICAgIHNldFN0YW5kYXJkRm9udEZhbWlseSgiQXBwbGVNeXVuZ2pvIl9zLCBVU0NSSVBU
X0hBTkdVTCk7CisKKyAgICBzZXRTdGFuZGFyZEZvbnRGYW1pbHkoIlRpbWVzIl9zLCBVU0NSSVBU
X0NPTU1PTik7CisgICAgc2V0Rml4ZWRGb250RmFtaWx5KCJDb3VyaWVyIl9zLCBVU0NSSVBUX0NP
TU1PTik7CisgICAgc2V0U2VyaWZGb250RmFtaWx5KCJUaW1lcyJfcywgVVNDUklQVF9DT01NT04p
OworICAgIHNldFNhbnNTZXJpZkZvbnRGYW1pbHkoIkhlbHZldGljYSJfcywgVVNDUklQVF9DT01N
T04pOwogfQogCiBib29sIFNldHRpbmdzQmFzZTo6cGxhdGZvcm1EZWZhdWx0TWVkaWFTb3VyY2VF
bmFibGVkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1BhZ2VNYWMubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9QYWdlTWFjLm1tCmluZGV4IDQ0OWE4ZmY2Y2Q2OTRk
MjRjNWFmMTRiZGVhZjU0YzYyNGMyMmMxMWIuLjlmMmQzZjVmZDNkZjdmYzY1YjhmMmJkNTJjYzY5
ZjIyYmIxYmFjZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1BhZ2VNYWMu
bW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvUGFnZU1hYy5tbQpAQCAtNTcsMTUgKzU3
LDE1IEBAIHZvaWQgUGFnZTo6cGxhdGZvcm1Jbml0aWFsaXplKCkKICAgICBzdGF0aWMgc3RkOjpv
bmNlX2ZsYWcgb25jZUZsYWc7CiAgICAgc3RkOjpjYWxsX29uY2Uob25jZUZsYWcsIFtdIHsKICNp
ZiBFTkFCTEUoVFJFRV9ERUJVR0dJTkcpCi0gICAgICAgIFBBTDo6cmVnaXN0ZXJOb3RpZnlDYWxs
YmFjaygiY29tLmFwcGxlLldlYktpdC5zaG93UmVuZGVyVHJlZSIsIHByaW50UmVuZGVyVHJlZUZv
ckxpdmVEb2N1bWVudHMpOwotICAgICAgICBQQUw6OnJlZ2lzdGVyTm90aWZ5Q2FsbGJhY2soImNv
bS5hcHBsZS5XZWJLaXQuc2hvd0xheWVyVHJlZSIsIHByaW50TGF5ZXJUcmVlRm9yTGl2ZURvY3Vt
ZW50cyk7Ci0gICAgICAgIFBBTDo6cmVnaXN0ZXJOb3RpZnlDYWxsYmFjaygiY29tLmFwcGxlLldl
YktpdC5zaG93R3JhcGhpY3NMYXllclRyZWUiLCBwcmludEdyYXBoaWNzTGF5ZXJUcmVlRm9yTGl2
ZURvY3VtZW50cyk7CisgICAgICAgIFBBTDo6cmVnaXN0ZXJOb3RpZnlDYWxsYmFjaygiY29tLmFw
cGxlLldlYktpdC5zaG93UmVuZGVyVHJlZSJfcywgcHJpbnRSZW5kZXJUcmVlRm9yTGl2ZURvY3Vt
ZW50cyk7CisgICAgICAgIFBBTDo6cmVnaXN0ZXJOb3RpZnlDYWxsYmFjaygiY29tLmFwcGxlLldl
YktpdC5zaG93TGF5ZXJUcmVlIl9zLCBwcmludExheWVyVHJlZUZvckxpdmVEb2N1bWVudHMpOwor
ICAgICAgICBQQUw6OnJlZ2lzdGVyTm90aWZ5Q2FsbGJhY2soImNvbS5hcHBsZS5XZWJLaXQuc2hv
d0dyYXBoaWNzTGF5ZXJUcmVlIl9zLCBwcmludEdyYXBoaWNzTGF5ZXJUcmVlRm9yTGl2ZURvY3Vt
ZW50cyk7CiAjaWYgRU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCi0gICAgICAgIFBB
TDo6cmVnaXN0ZXJOb3RpZnlDYWxsYmFjaygiY29tLmFwcGxlLldlYktpdC5zaG93TGF5b3V0VHJl
ZSIsIExheW91dDo6cHJpbnRMYXlvdXRUcmVlRm9yTGl2ZURvY3VtZW50cyk7CisgICAgICAgIFBB
TDo6cmVnaXN0ZXJOb3RpZnlDYWxsYmFjaygiY29tLmFwcGxlLldlYktpdC5zaG93TGF5b3V0VHJl
ZSJfcywgTGF5b3V0OjpwcmludExheW91dFRyZWVGb3JMaXZlRG9jdW1lbnRzKTsKICNlbmRpZgog
I2VuZGlmIC8vIEVOQUJMRShUUkVFX0RFQlVHR0lORykKIAotICAgICAgICBQQUw6OnJlZ2lzdGVy
Tm90aWZ5Q2FsbGJhY2soImNvbS5hcHBsZS5XZWJLaXQuc2hvd0FsbERvY3VtZW50cyIsIFtdIHsK
KyAgICAgICAgUEFMOjpyZWdpc3Rlck5vdGlmeUNhbGxiYWNrKCJjb20uYXBwbGUuV2ViS2l0LnNo
b3dBbGxEb2N1bWVudHMiX3MsIFtdIHsKICAgICAgICAgICAgIHVuc2lnbmVkIG51bVBhZ2VzID0g
MDsKICAgICAgICAgICAgIFBhZ2U6OmZvckVhY2hQYWdlKFsmbnVtUGFnZXNdKFBhZ2UmKSB7CiAg
ICAgICAgICAgICAgICAgKytudW1QYWdlczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9j
YWxpemVkU3RyaW5ncy5jcHAKaW5kZXggY2Y1ZDBlMDI2Y2RmODMzNzIyZTUxY2FjMGJjYzdmMTM0
YTYyNWU5ZS4uOGE3ZThlZjZiY2UyM2MxZjg0YWQ0MDMwNmNkNmY1ZjVjOTBlNThkYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAKQEAgLTY1NSw3ICs2
NTUsNyBAQCBTdHJpbmcgQVhXZWVrRmllbGRUZXh0KCkKICAgICByZXR1cm4gV0VCX1VJX1NUUklO
Rygid2VlayBhbmQgeWVhciBmaWVsZCIsICJhY2Nlc3NpYmlsaXR5IHJvbGUgZGVzY3JpcHRpb24g
Zm9yIGEgdGltZSBmaWVsZC4iKTsKIH0KIAotU3RyaW5nIEFYQVJJQUNvbnRlbnRHcm91cFRleHQo
Y29uc3QgU3RyaW5nJiBhcmlhVHlwZSkKK1N0cmluZyBBWEFSSUFDb250ZW50R3JvdXBUZXh0KFN0
cmluZ1ZpZXcgYXJpYVR5cGUpCiB7CiAgICAgaWYgKGFyaWFUeXBlID09ICJBUklBQXBwbGljYXRp
b25BbGVydCIpCiAgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJhbGVydCIsICJBbiBBUklB
IGFjY2Vzc2liaWxpdHkgZ3JvdXAgdGhhdCBhY3RzIGFzIGFuIGFsZXJ0LiIpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5oCmluZGV4IGIxODFmMWVkOGEwYjg4YzFm
Y2ZjZDBlODYxNzIzNGJiMjk0OTNkYWUuLmEyMGI1ODhlNjkzNzE2OWExMDY3ZDM5ZDdjMTA5ZjM0
NTllOGMzOTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0
cmluZ3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgK
QEAgLTE5NSw3ICsxOTUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgU3RyaW5nIEFYTW9u
dGhGaWVsZFRleHQoKTsKICAgICBTdHJpbmcgQVhOdW1iZXJGaWVsZFRleHQoKTsKICAgICBTdHJp
bmcgQVhXZWVrRmllbGRUZXh0KCk7Ci0gICAgU3RyaW5nIEFYQVJJQUNvbnRlbnRHcm91cFRleHQo
Y29uc3QgU3RyaW5nJiBhcmlhVHlwZSk7CisgICAgU3RyaW5nIEFYQVJJQUNvbnRlbnRHcm91cFRl
eHQoU3RyaW5nVmlldyBhcmlhVHlwZSk7CiAgICAgU3RyaW5nIEFYSG9yaXpvbnRhbFJ1bGVEZXNj
cmlwdGlvblRleHQoKTsKICAgICBTdHJpbmcgQVhNYXJrVGV4dCgpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9QYXN0ZWJvYXJkLmgKaW5kZXggYWViYTBhM2I0NGQ4NjY2ZWNkYjIyMWIzMzU3MGQ0Y2Nk
YTU2NjQyOS4uMWNmNDEwOGYwOGU2MzA2NThmOWEzZTMxZmU0YmNlOTYzZTNlNGNjYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmQuaApAQCAtMzc1LDkgKzM3NSw5IEBAIGV4dGVybiBO
U1N0cmluZyAqVUlDb2xvclBib2FyZFR5cGU7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKE1BQykK
LWV4dGVybiBjb25zdCBjaGFyKiBjb25zdCBXZWJBcmNoaXZlUGJvYXJkVHlwZTsKLWV4dGVybiBj
b25zdCBjaGFyKiBjb25zdCBXZWJVUkxOYW1lUGJvYXJkVHlwZTsKLWV4dGVybiBjb25zdCBjaGFy
KiBjb25zdCBXZWJVUkxzV2l0aFRpdGxlc1Bib2FyZFR5cGU7CitleHRlcm4gY29uc3QgQVNDSUlM
aXRlcmFsIFdlYkFyY2hpdmVQYm9hcmRUeXBlOworZXh0ZXJuIGNvbnN0IEFTQ0lJTGl0ZXJhbCBX
ZWJVUkxOYW1lUGJvYXJkVHlwZTsKK2V4dGVybiBjb25zdCBBU0NJSUxpdGVyYWwgV2ViVVJMc1dp
dGhUaXRsZXNQYm9hcmRUeXBlOwogI2VuZGlmCiAKICNpZiAhUExBVEZPUk0oR1RLKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZEN1c3RvbURhdGEuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmRDdXN0b21EYXRhLmgKaW5kZXggMmJlODFk
MjkzOGEzZGJkMDkwMjZjYTZlYzY0YWMzMjg3ZTZhYmMwMy4uMjU2ZjQ0NTQyOTAzMmJiNDJmMzEz
ZDkyMGFmYmZmZDFiMDIzYTc3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
UGFzdGVib2FyZEN1c3RvbURhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0
ZWJvYXJkQ3VzdG9tRGF0YS5oCkBAIC03Niw3ICs3Niw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNs
ZWFyKGNvbnN0IFN0cmluZyYgdHlwZSk7CiAKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICBXRUJD
T1JFX0VYUE9SVCBzdGF0aWMgY29uc3QgY2hhciogY29jb2FUeXBlKCk7CisgICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIEFTQ0lJTGl0ZXJhbCBjb2NvYVR5cGUoKTsKICNlbGlmIFBMQVRGT1JNKEdU
SykKICAgICBzdGF0aWMgY29uc3QgY2hhciogZ3RrVHlwZSgpIHsgcmV0dXJuICJvcmcud2Via2l0
Z3RrLldlYktpdC5jdXN0b20tcGFzdGVib2FyZC1kYXRhIjsgfQogI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9NZWRpYVNlc3Npb25NYW5hZ2Vy
Q29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9NZWRpYVNlc3Np
b25NYW5hZ2VyQ29jb2EubW0KaW5kZXggYTBlOTAyZjEyY2U3ZWIxN2M3NzZkNDNjMTM1Yzg1MzI2
Yzc1Y2ZlMC4uOTZjZGZhYTM2MjFjNWM5NjJkYTBlMDUzMDJkNGVhOWQ5Y2Q3MDg3YyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvTWVkaWFTZXNzaW9uTWFu
YWdlckNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL01l
ZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5tbQpAQCAtNDUyLDggKzQ1Miw4IEBAIHZvaWQgTWVkaWFT
ZXNzaW9uTWFuYWdlckNvY29hOjp1cGRhdGVOb3dQbGF5aW5nSW5mbygpCiAKICAgICBpZiAobV9u
b3dQbGF5aW5nTWFuYWdlci0+c2V0Tm93UGxheWluZ0luZm8oKm5vd1BsYXlpbmdJbmZvKSkgewog
I2lmZGVmIExPR19ESVNBQkxFRAotICAgICAgICBTdHJpbmcgc3JjID0gInNyYyI7Ci0gICAgICAg
IFN0cmluZyB0aXRsZSA9ICJ0aXRsZSI7CisgICAgICAgIFN0cmluZyBzcmMgPSAic3JjIl9zOwor
ICAgICAgICBTdHJpbmcgdGl0bGUgPSAidGl0bGUiX3M7CiAjZWxzZQogICAgICAgICBTdHJpbmcg
c3JjID0gbm93UGxheWluZ0luZm8tPmFydHdvcmsgPyBub3dQbGF5aW5nSW5mby0+YXJ0d29yay0+
c3JjIDogU3RyaW5nKCk7CiAgICAgICAgIFN0cmluZyB0aXRsZSA9IG5vd1BsYXlpbmdJbmZvLT50
aXRsZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL0tleUV2ZW50
Q29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9LZXlFdmVudENvY29hLm1t
CmluZGV4IGY0ZWVlNjVmMDk5M2I5ZDRkOWJkNmZlOWVkYTdhZDBhNjE1MzczNTIuLjFjNWUyNDNj
ODUyYTM4NTA5Yzg5Y2M1OTE5Y2ZjMTQyMDY3MTk5YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2NvY29hL0tleUV2ZW50Q29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY29jb2EvS2V5RXZlbnRDb2NvYS5tbQpAQCAtMjIwLDcgKzIyMCw3IEBAIFN0cmlu
ZyBrZXlJZGVudGlmaWVyRm9yQ2hhckNvZGUodW5pY2hhciBjaGFyQ29kZSkKIAogICAgICAgICAv
LyAiQWx0IgogICAgICAgICBjYXNlIE5TTWVudUZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0
dXJuICJBbHQiOworICAgICAgICAgICAgcmV0dXJuICJBbHQiX3M7CiAKICAgICAgICAgLy8gIkFw
cHMiCiAgICAgICAgIC8vICJCcm93c2VyQmFjayIKQEAgLTIzMyw3ICsyMzMsNyBAQCBTdHJpbmcg
a2V5SWRlbnRpZmllckZvckNoYXJDb2RlKHVuaWNoYXIgY2hhckNvZGUpCiAKICAgICAgICAgLy8g
IkNsZWFyIgogICAgICAgICBjYXNlIE5TQ2xlYXJMaW5lRnVuY3Rpb25LZXk6Ci0gICAgICAgICAg
ICByZXR1cm4gIkNsZWFyIjsKKyAgICAgICAgICAgIHJldHVybiAiQ2xlYXIiX3M7CiAKICAgICAg
ICAgLy8gIkNvZGVJbnB1dCIKICAgICAgICAgLy8gIkNvbXBvc2UiCkBAIC0yNDUsMTAwICsyNDUs
MTAwIEBAIFN0cmluZyBrZXlJZGVudGlmaWVyRm9yQ2hhckNvZGUodW5pY2hhciBjaGFyQ29kZSkK
IAogICAgICAgICAvLyAiRG93biIKICAgICAgICAgY2FzZSBOU0Rvd25BcnJvd0Z1bmN0aW9uS2V5
OgotICAgICAgICAgICAgcmV0dXJuICJEb3duIjsKKyAgICAgICAgICAgIHJldHVybiAiRG93biJf
czsKICAgICAgICAgLy8gIkVuZCIKICAgICAgICAgY2FzZSBOU0VuZEZ1bmN0aW9uS2V5OgotICAg
ICAgICAgICAgcmV0dXJuICJFbmQiOworICAgICAgICAgICAgcmV0dXJuICJFbmQiX3M7CiAgICAg
ICAgIC8vICJFbnRlciIKICAgICAgICAgY2FzZSAweDM6IGNhc2UgMHhBOiBjYXNlIDB4RDogLy8g
TWFjaW50b3NoIGNhbGxzIHRoZSBvbmUgb24gdGhlIG1haW4ga2V5Ym9hcmQgUmV0dXJuLCBidXQg
V2luZG93cyBjYWxscyBpdCBFbnRlciwgc28gd2UnbGwgZG8gdGhlIHNhbWUgZm9yIHRoZSBET00K
LSAgICAgICAgICAgIHJldHVybiAiRW50ZXIiOworICAgICAgICAgICAgcmV0dXJuICJFbnRlciJf
czsKIAogICAgICAgICAvLyAiRXJhc2VFb2YiCiAKICAgICAgICAgLy8gIkV4ZWN1dGUiCiAgICAg
ICAgIGNhc2UgTlNFeGVjdXRlRnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkV4ZWN1
dGUiOworICAgICAgICAgICAgcmV0dXJuICJFeGVjdXRlIl9zOwogCiAgICAgICAgIC8vICJFeHNl
bCIKIAogICAgICAgICAvLyAiRjEiCiAgICAgICAgIGNhc2UgTlNGMUZ1bmN0aW9uS2V5OgotICAg
ICAgICAgICAgcmV0dXJuICJGMSI7CisgICAgICAgICAgICByZXR1cm4gIkYxIl9zOwogICAgICAg
ICAvLyAiRjIiCiAgICAgICAgIGNhc2UgTlNGMkZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0
dXJuICJGMiI7CisgICAgICAgICAgICByZXR1cm4gIkYyIl9zOwogICAgICAgICAvLyAiRjMiCiAg
ICAgICAgIGNhc2UgTlNGM0Z1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJGMyI7Cisg
ICAgICAgICAgICByZXR1cm4gIkYzIl9zOwogICAgICAgICAvLyAiRjQiCiAgICAgICAgIGNhc2Ug
TlNGNEZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJGNCI7CisgICAgICAgICAgICBy
ZXR1cm4gIkY0Il9zOwogICAgICAgICAvLyAiRjUiCiAgICAgICAgIGNhc2UgTlNGNUZ1bmN0aW9u
S2V5OgotICAgICAgICAgICAgcmV0dXJuICJGNSI7CisgICAgICAgICAgICByZXR1cm4gIkY1Il9z
OwogICAgICAgICAvLyAiRjYiCiAgICAgICAgIGNhc2UgTlNGNkZ1bmN0aW9uS2V5OgotICAgICAg
ICAgICAgcmV0dXJuICJGNiI7CisgICAgICAgICAgICByZXR1cm4gIkY2Il9zOwogICAgICAgICAv
LyAiRjciCiAgICAgICAgIGNhc2UgTlNGN0Z1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJu
ICJGNyI7CisgICAgICAgICAgICByZXR1cm4gIkY3Il9zOwogICAgICAgICAvLyAiRjgiCiAgICAg
ICAgIGNhc2UgTlNGOEZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJGOCI7CisgICAg
ICAgICAgICByZXR1cm4gIkY4Il9zOwogICAgICAgICAvLyAiRjkiCiAgICAgICAgIGNhc2UgTlNG
OUZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJGOSI7CisgICAgICAgICAgICByZXR1
cm4gIkY5Il9zOwogICAgICAgICAvLyAiRjEwIgogICAgICAgICBjYXNlIE5TRjEwRnVuY3Rpb25L
ZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkYxMCI7CisgICAgICAgICAgICByZXR1cm4gIkYxMCJf
czsKICAgICAgICAgLy8gIkYxMSIKICAgICAgICAgY2FzZSBOU0YxMUZ1bmN0aW9uS2V5OgotICAg
ICAgICAgICAgcmV0dXJuICJGMTEiOworICAgICAgICAgICAgcmV0dXJuICJGMTEiX3M7CiAgICAg
ICAgIC8vICJGMTIiCiAgICAgICAgIGNhc2UgTlNGMTJGdW5jdGlvbktleToKLSAgICAgICAgICAg
IHJldHVybiAiRjEyIjsKKyAgICAgICAgICAgIHJldHVybiAiRjEyIl9zOwogICAgICAgICAvLyAi
RjEzIgogICAgICAgICBjYXNlIE5TRjEzRnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4g
IkYxMyI7CisgICAgICAgICAgICByZXR1cm4gIkYxMyJfczsKICAgICAgICAgLy8gIkYxNCIKICAg
ICAgICAgY2FzZSBOU0YxNEZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJGMTQiOwor
ICAgICAgICAgICAgcmV0dXJuICJGMTQiX3M7CiAgICAgICAgIC8vICJGMTUiCiAgICAgICAgIGNh
c2UgTlNGMTVGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiRjE1IjsKKyAgICAgICAg
ICAgIHJldHVybiAiRjE1Il9zOwogICAgICAgICAvLyAiRjE2IgogICAgICAgICBjYXNlIE5TRjE2
RnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkYxNiI7CisgICAgICAgICAgICByZXR1
cm4gIkYxNiJfczsKICAgICAgICAgLy8gIkYxNyIKICAgICAgICAgY2FzZSBOU0YxN0Z1bmN0aW9u
S2V5OgotICAgICAgICAgICAgcmV0dXJuICJGMTciOworICAgICAgICAgICAgcmV0dXJuICJGMTci
X3M7CiAgICAgICAgIC8vICJGMTgiCiAgICAgICAgIGNhc2UgTlNGMThGdW5jdGlvbktleToKLSAg
ICAgICAgICAgIHJldHVybiAiRjE4IjsKKyAgICAgICAgICAgIHJldHVybiAiRjE4Il9zOwogICAg
ICAgICAvLyAiRjE5IgogICAgICAgICBjYXNlIE5TRjE5RnVuY3Rpb25LZXk6Ci0gICAgICAgICAg
ICByZXR1cm4gIkYxOSI7CisgICAgICAgICAgICByZXR1cm4gIkYxOSJfczsKICAgICAgICAgLy8g
IkYyMCIKICAgICAgICAgY2FzZSBOU0YyMEZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJu
ICJGMjAiOworICAgICAgICAgICAgcmV0dXJuICJGMjAiX3M7CiAgICAgICAgIC8vICJGMjEiCiAg
ICAgICAgIGNhc2UgTlNGMjFGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiRjIxIjsK
KyAgICAgICAgICAgIHJldHVybiAiRjIxIl9zOwogICAgICAgICAvLyAiRjIyIgogICAgICAgICBj
YXNlIE5TRjIyRnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkYyMiI7CisgICAgICAg
ICAgICByZXR1cm4gIkYyMiJfczsKICAgICAgICAgLy8gIkYyMyIKICAgICAgICAgY2FzZSBOU0Yy
M0Z1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJGMjMiOworICAgICAgICAgICAgcmV0
dXJuICJGMjMiX3M7CiAgICAgICAgIC8vICJGMjQiCiAgICAgICAgIGNhc2UgTlNGMjRGdW5jdGlv
bktleToKLSAgICAgICAgICAgIHJldHVybiAiRjI0IjsKKyAgICAgICAgICAgIHJldHVybiAiRjI0
Il9zOwogCiAgICAgICAgIC8vICJGaW5hbE1vZGUiCiAKICAgICAgICAgLy8gIkZpbmQiCiAgICAg
ICAgIGNhc2UgTlNGaW5kRnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkZpbmQiOwor
ICAgICAgICAgICAgcmV0dXJuICJGaW5kIl9zOwogCiAgICAgICAgIC8vICJGdWxsV2lkdGgiCiAg
ICAgICAgIC8vICJIYWxmV2lkdGgiCkBAIC0zNDcsMTYgKzM0NywxNiBAQCBTdHJpbmcga2V5SWRl
bnRpZmllckZvckNoYXJDb2RlKHVuaWNoYXIgY2hhckNvZGUpCiAKICAgICAgICAgLy8gIkhlbHAi
CiAgICAgICAgIGNhc2UgTlNIZWxwRnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkhl
bHAiOworICAgICAgICAgICAgcmV0dXJuICJIZWxwIl9zOwogCiAgICAgICAgIC8vICJIaXJhZ2Fu
YSIKIAogICAgICAgICAvLyAiSG9tZSIKICAgICAgICAgY2FzZSBOU0hvbWVGdW5jdGlvbktleToK
LSAgICAgICAgICAgIHJldHVybiAiSG9tZSI7CisgICAgICAgICAgICByZXR1cm4gIkhvbWUiX3M7
CiAgICAgICAgIC8vICJJbnNlcnQiCiAgICAgICAgIGNhc2UgTlNJbnNlcnRGdW5jdGlvbktleToK
LSAgICAgICAgICAgIHJldHVybiAiSW5zZXJ0IjsKKyAgICAgICAgICAgIHJldHVybiAiSW5zZXJ0
Il9zOwogCiAgICAgICAgIC8vICJKYXBhbmVzZUhpcmFnYW5hIgogICAgICAgICAvLyAiSmFwYW5l
c2VLYXRha2FuYSIKQEAgLTM3MSw3ICszNzEsNyBAQCBTdHJpbmcga2V5SWRlbnRpZmllckZvckNo
YXJDb2RlKHVuaWNoYXIgY2hhckNvZGUpCiAKICAgICAgICAgLy8gIkxlZnQiCiAgICAgICAgIGNh
c2UgTlNMZWZ0QXJyb3dGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiTGVmdCI7Cisg
ICAgICAgICAgICByZXR1cm4gIkxlZnQiX3M7CiAKICAgICAgICAgLy8gIk1ldGEiCiAgICAgICAg
IC8vICJNZWRpYU5leHRUcmFjayIKQEAgLTM4MSw1OSArMzgxLDU5IEBAIFN0cmluZyBrZXlJZGVu
dGlmaWVyRm9yQ2hhckNvZGUodW5pY2hhciBjaGFyQ29kZSkKIAogICAgICAgICAvLyAiTW9kZUNo
YW5nZSIKICAgICAgICAgY2FzZSBOU01vZGVTd2l0Y2hGdW5jdGlvbktleToKLSAgICAgICAgICAg
IHJldHVybiAiTW9kZUNoYW5nZSI7CisgICAgICAgICAgICByZXR1cm4gIk1vZGVDaGFuZ2UiX3M7
CiAKICAgICAgICAgLy8gIk5vbmNvbnZlcnQiCiAgICAgICAgIC8vICJOdW1Mb2NrIgogCiAgICAg
ICAgIC8vICJQYWdlRG93biIKICAgICAgICAgY2FzZSBOU1BhZ2VEb3duRnVuY3Rpb25LZXk6Ci0g
ICAgICAgICAgICByZXR1cm4gIlBhZ2VEb3duIjsKKyAgICAgICAgICAgIHJldHVybiAiUGFnZURv
d24iX3M7CiAgICAgICAgIC8vICJQYWdlVXAiCiAgICAgICAgIGNhc2UgTlNQYWdlVXBGdW5jdGlv
bktleToKLSAgICAgICAgICAgIHJldHVybiAiUGFnZVVwIjsKKyAgICAgICAgICAgIHJldHVybiAi
UGFnZVVwIl9zOwogCiAgICAgICAgIC8vICJQYXN0ZSIKIAogICAgICAgICAvLyAiUGF1c2UiCiAg
ICAgICAgIGNhc2UgTlNQYXVzZUZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJQYXVz
ZSI7CisgICAgICAgICAgICByZXR1cm4gIlBhdXNlIl9zOwogCiAgICAgICAgIC8vICJQbGF5Igog
ICAgICAgICAvLyAiUHJldmlvdXNDYW5kaWRhdGUiCiAKICAgICAgICAgLy8gIlByaW50U2NyZWVu
IgogICAgICAgICBjYXNlIE5TUHJpbnRTY3JlZW5GdW5jdGlvbktleToKLSAgICAgICAgICAgIHJl
dHVybiAiUHJpbnRTY3JlZW4iOworICAgICAgICAgICAgcmV0dXJuICJQcmludFNjcmVlbiJfczsK
IAogICAgICAgICAvLyAiUHJvY2VzcyIKICAgICAgICAgLy8gIlByb3BzIgogCiAgICAgICAgIC8v
ICJSaWdodCIKICAgICAgICAgY2FzZSBOU1JpZ2h0QXJyb3dGdW5jdGlvbktleToKLSAgICAgICAg
ICAgIHJldHVybiAiUmlnaHQiOworICAgICAgICAgICAgcmV0dXJuICJSaWdodCJfczsKIAogICAg
ICAgICAvLyAiUm9tYW5DaGFyYWN0ZXJzIgogCiAgICAgICAgIC8vICJTY3JvbGwiCiAgICAgICAg
IGNhc2UgTlNTY3JvbGxMb2NrRnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIlNjcm9s
bCI7CisgICAgICAgICAgICByZXR1cm4gIlNjcm9sbCJfczsKICAgICAgICAgLy8gIlNlbGVjdCIK
ICAgICAgICAgY2FzZSBOU1NlbGVjdEZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJT
ZWxlY3QiOworICAgICAgICAgICAgcmV0dXJuICJTZWxlY3QiX3M7CiAKICAgICAgICAgLy8gIlNl
bGVjdE1lZGlhIgogICAgICAgICAvLyAiU2hpZnQiCiAKICAgICAgICAgLy8gIlN0b3AiCiAgICAg
ICAgIGNhc2UgTlNTdG9wRnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIlN0b3AiOwor
ICAgICAgICAgICAgcmV0dXJuICJTdG9wIl9zOwogICAgICAgICAvLyAiVXAiCiAgICAgICAgIGNh
c2UgTlNVcEFycm93RnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIlVwIjsKKyAgICAg
ICAgICAgIHJldHVybiAiVXAiX3M7CiAgICAgICAgIC8vICJVbmRvIgogICAgICAgICBjYXNlIE5T
VW5kb0Z1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJVbmRvIjsKKyAgICAgICAgICAg
IHJldHVybiAiVW5kbyJfczsKIAogICAgICAgICAvLyAiVm9sdW1lRG93biIKICAgICAgICAgLy8g
IlZvbHVtZU11dGUiCkBAIC00NDMsMzggKzQ0MywzOCBAQCBTdHJpbmcga2V5SWRlbnRpZmllckZv
ckNoYXJDb2RlKHVuaWNoYXIgY2hhckNvZGUpCiAKICAgICAgICAgLy8gTW9yZSBmdW5jdGlvbiBr
ZXlzLCBub3QgaW4gdGhlIGtleSBpZGVudGlmaWVyIHNwZWNpZmljYXRpb24uCiAgICAgICAgIGNh
c2UgTlNGMjVGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiRjI1IjsKKyAgICAgICAg
ICAgIHJldHVybiAiRjI1Il9zOwogICAgICAgICBjYXNlIE5TRjI2RnVuY3Rpb25LZXk6Ci0gICAg
ICAgICAgICByZXR1cm4gIkYyNiI7CisgICAgICAgICAgICByZXR1cm4gIkYyNiJfczsKICAgICAg
ICAgY2FzZSBOU0YyN0Z1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJGMjciOworICAg
ICAgICAgICAgcmV0dXJuICJGMjciX3M7CiAgICAgICAgIGNhc2UgTlNGMjhGdW5jdGlvbktleToK
LSAgICAgICAgICAgIHJldHVybiAiRjI4IjsKKyAgICAgICAgICAgIHJldHVybiAiRjI4Il9zOwog
ICAgICAgICBjYXNlIE5TRjI5RnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkYyOSI7
CisgICAgICAgICAgICByZXR1cm4gIkYyOSJfczsKICAgICAgICAgY2FzZSBOU0YzMEZ1bmN0aW9u
S2V5OgotICAgICAgICAgICAgcmV0dXJuICJGMzAiOworICAgICAgICAgICAgcmV0dXJuICJGMzAi
X3M7CiAgICAgICAgIGNhc2UgTlNGMzFGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAi
RjMxIjsKKyAgICAgICAgICAgIHJldHVybiAiRjMxIl9zOwogICAgICAgICBjYXNlIE5TRjMyRnVu
Y3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkYzMiI7CisgICAgICAgICAgICByZXR1cm4g
IkYzMiJfczsKICAgICAgICAgY2FzZSBOU0YzM0Z1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0
dXJuICJGMzMiOworICAgICAgICAgICAgcmV0dXJuICJGMzMiX3M7CiAgICAgICAgIGNhc2UgTlNG
MzRGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiRjM0IjsKKyAgICAgICAgICAgIHJl
dHVybiAiRjM0Il9zOwogICAgICAgICBjYXNlIE5TRjM1RnVuY3Rpb25LZXk6Ci0gICAgICAgICAg
ICByZXR1cm4gIkYzNSI7CisgICAgICAgICAgICByZXR1cm4gIkYzNSJfczsKIAogICAgICAgICAv
LyBUdXJuIDB4N0YgaW50byAweDA4LCBiZWNhdXNlIGJhY2tzcGFjZSBuZWVkcyB0byBhbHdheXMg
YmUgMHgwOC4KICAgICAgICAgY2FzZSAweDdGOgotICAgICAgICAgICAgcmV0dXJuICJVKzAwMDgi
OworICAgICAgICAgICAgcmV0dXJuICJVKzAwMDgiX3M7CiAgICAgICAgIC8vIFN0YW5kYXJkIHNh
eXMgdGhhdCBERUwgYmVjb21lcyBVKzAwN0YuCiAgICAgICAgIGNhc2UgTlNEZWxldGVGdW5jdGlv
bktleToKLSAgICAgICAgICAgIHJldHVybiAiVSswMDdGIjsKKyAgICAgICAgICAgIHJldHVybiAi
VSswMDdGIl9zOwogCiAgICAgICAgIC8vIEFsd2F5cyB1c2UgMHgwOSBmb3IgdGFiIGluc3RlYWQg
b2YgQXBwS2l0J3MgYmFja3RhYiBjaGFyYWN0ZXIuCiAgICAgICAgIGNhc2UgTlNCYWNrVGFiQ2hh
cmFjdGVyOgotICAgICAgICAgICAgcmV0dXJuICJVKzAwMDkiOworICAgICAgICAgICAgcmV0dXJu
ICJVKzAwMDkiX3M7CiAKICAgICAgICAgY2FzZSBOU0JlZ2luRnVuY3Rpb25LZXk6CiAgICAgICAg
IGNhc2UgTlNCcmVha0Z1bmN0aW9uS2V5OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vY29jb2EvUGFzdGVib2FyZENvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Y29jb2EvUGFzdGVib2FyZENvY29hLm1tCmluZGV4IDA2OTYxZmJhNDhhZDkxYjQyM2JjYTk4NWI2
YzJlNWM2MjEwMWZjMmYuLjU5ODQyZjEyNjljNWI1ZWRmMDk1YmQ5Y2I4ZWUzMzI2ZDY4N2FlMWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Bhc3RlYm9hcmRDb2Nv
YS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9QYXN0ZWJvYXJkQ29jb2Eu
bW0KQEAgLTEwNCwyNSArMTA0LDI1IEBAIHN0YXRpYyBjb25zdCBjaGFyKiBpbWFnZVR5cGVUb01J
TUVUeXBlKEltYWdlVHlwZSB0eXBlKQogICAgIH0KIH0KIAotc3RhdGljIGNvbnN0IGNoYXIqIGlt
YWdlVHlwZVRvRmFrZUZpbGVuYW1lKEltYWdlVHlwZSB0eXBlKQorc3RhdGljIEFTQ0lJTGl0ZXJh
bCBpbWFnZVR5cGVUb0Zha2VGaWxlbmFtZShJbWFnZVR5cGUgdHlwZSkKIHsKICAgICBzd2l0Y2gg
KHR5cGUpIHsKICAgICBjYXNlIEltYWdlVHlwZTo6SW52YWxpZDoKICAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7Ci0gICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICByZXR1cm4gQVND
SUlMaXRlcmFsOjpudWxsKCk7CiAgICAgY2FzZSBJbWFnZVR5cGU6OlRJRkY6CiAjaWYgUExBVEZP
Uk0oTUFDKQotICAgICAgICByZXR1cm4gImltYWdlLnBuZyI7IC8vIEZvciBXZWIgY29tcGF0aWJp
bGl0eSwgd2UgcHJldGVuZCB0byBoYXZlIFBORyBpbnN0ZWFkLgorICAgICAgICByZXR1cm4gImlt
YWdlLnBuZyJfczsgLy8gRm9yIFdlYiBjb21wYXRpYmlsaXR5LCB3ZSBwcmV0ZW5kIHRvIGhhdmUg
UE5HIGluc3RlYWQuCiAjZWxzZQogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIHJldHVybiBBU0NJSUxpdGVyYWw6Om51bGwoKTsK
ICNlbmRpZgogICAgIGNhc2UgSW1hZ2VUeXBlOjpQTkc6Ci0gICAgICAgIHJldHVybiAiaW1hZ2Uu
cG5nIjsKKyAgICAgICAgcmV0dXJuICJpbWFnZS5wbmciX3M7CiAgICAgY2FzZSBJbWFnZVR5cGU6
OkpQRUc6Ci0gICAgICAgIHJldHVybiAiaW1hZ2UuanBlZyI7CisgICAgICAgIHJldHVybiAiaW1h
Z2UuanBlZyJfczsKICAgICBjYXNlIEltYWdlVHlwZTo6R0lGOgotICAgICAgICByZXR1cm4gImlt
YWdlLmdpZiI7CisgICAgICAgIHJldHVybiAiaW1hZ2UuZ2lmIl9zOwogICAgIH0KIH0KIApAQCAt
MjM0LDcgKzIzNCw3IEBAIHZvaWQgUGFzdGVib2FyZDo6cmVhZChQYXN0ZWJvYXJkRmlsZVJlYWRl
ciYgcmVhZGVyLCBzdGQ6Om9wdGlvbmFsPHNpemVfdD4gaXRlbUluCiAgICAgICAgIGZvciAoYXV0
byBjb2NvYVR5cGUgOiBpbmZvLnBsYXRmb3JtVHlwZXNCeUZpZGVsaXR5KSB7CiAgICAgICAgICAg
ICBhdXRvIGltYWdlVHlwZSA9IGNvY29hVHlwZVRvSW1hZ2VUeXBlKGNvY29hVHlwZSk7CiAgICAg
ICAgICAgICBhdXRvKiBtaW1lVHlwZSA9IGltYWdlVHlwZVRvTUlNRVR5cGUoaW1hZ2VUeXBlKTsK
LSAgICAgICAgICAgIGlmICghbWltZVR5cGUgfHwgIXJlYWRlci5zaG91bGRSZWFkQnVmZmVyKG1p
bWVUeXBlKSkKKyAgICAgICAgICAgIGlmICghbWltZVR5cGUgfHwgIXJlYWRlci5zaG91bGRSZWFk
QnVmZmVyKFN0cmluZyB7IG1pbWVUeXBlIH0pKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwog
ICAgICAgICAgICAgYXV0byBidWZmZXIgPSByZWFkQnVmZmVyKGl0ZW1JbmRleCwgY29jb2FUeXBl
KTsKICNpZiBQTEFURk9STShNQUMpCkBAIC0yNDIsNyArMjQyLDcgQEAgdm9pZCBQYXN0ZWJvYXJk
OjpyZWFkKFBhc3RlYm9hcmRGaWxlUmVhZGVyJiByZWFkZXIsIHN0ZDo6b3B0aW9uYWw8c2l6ZV90
PiBpdGVtSW4KICAgICAgICAgICAgICAgICBidWZmZXIgPSBjb252ZXJ0VElGRlRvUE5HKGJ1ZmZl
ci5yZWxlYXNlTm9uTnVsbCgpKTsKICNlbmRpZgogICAgICAgICAgICAgaWYgKGJ1ZmZlcikgewot
ICAgICAgICAgICAgICAgIHJlYWRlci5yZWFkQnVmZmVyKGltYWdlVHlwZVRvRmFrZUZpbGVuYW1l
KGltYWdlVHlwZSksIG1pbWVUeXBlLCBidWZmZXIucmVsZWFzZU5vbk51bGwoKSk7CisgICAgICAg
ICAgICAgICAgcmVhZGVyLnJlYWRCdWZmZXIoaW1hZ2VUeXBlVG9GYWtlRmlsZW5hbWUoaW1hZ2VU
eXBlKSwgU3RyaW5nIHsgbWltZVR5cGUgfSwgYnVmZmVyLnJlbGVhc2VOb25OdWxsKCkpOwogICAg
ICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9QYXN0ZWJvYXJkQ3VzdG9tRGF0YUNvY29h
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvUGFzdGVib2FyZEN1c3RvbURhdGFD
b2NvYS5tbQppbmRleCAyNjIxMjg0NGYyMTA0YTc3N2NmNjU1NmQ3NWE2ZTVjYWVjOTczZGU4Li4z
ZGU1MGEwZTkyYzI5MDRjMTllYjZkZWJkYTcxNjgyZWZiNmQ2NzUxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9QYXN0ZWJvYXJkQ3VzdG9tRGF0YUNvY29hLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Bhc3RlYm9hcmRDdXN0b21EYXRhQ29j
b2EubW0KQEAgLTMwLDkgKzMwLDkgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jb25zdCBj
aGFyKiBQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkKK0FTQ0lJTGl0ZXJhbCBQYXN0
ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkKIHsKLSAgICByZXR1cm4gImNvbS5hcHBsZS5X
ZWJLaXQuY3VzdG9tLXBhc3RlYm9hcmQtZGF0YSI7CisgICAgcmV0dXJuICJjb20uYXBwbGUuV2Vi
S2l0LmN1c3RvbS1wYXN0ZWJvYXJkLWRhdGEiX3M7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvdXJDQy5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm91ckNDLmgKaW5kZXggYjM3ZDA1
MGU5YzBjMzY3NzA3ZGFlMGI2YWNjYjFiYzM3ZjhlYWMxMy4uNjZmYjNkZTA3MTE1MTMwNjc4OGRj
MTI2YzIzZjRiYzg2MTI1ODM2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvRm91ckNDLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Rm91ckNDLmgKQEAgLTg1LDcgKzg1LDcgQEAgbmFtZXNwYWNlIFdURiB7CiB0ZW1wbGF0ZTx0eXBl
bmFtZT4gc3RydWN0IExvZ0FyZ3VtZW50OwogCiB0ZW1wbGF0ZTw+IHN0cnVjdCBMb2dBcmd1bWVu
dDxXZWJDb3JlOjpGb3VyQ0M+IHsKLSAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGNvbnN0IFdl
YkNvcmU6OkZvdXJDQyYgY29kZSkgeyByZXR1cm4gY29kZS5zdHJpbmcoKS5kYXRhKCk7IH0KKyAg
ICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGNvbnN0IFdlYkNvcmU6OkZvdXJDQyYgY29kZSkgeyBy
ZXR1cm4gU3RyaW5nIHsgY29kZS5zdHJpbmcoKS5kYXRhKCkgfTsgfQogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV1RGCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9h
bmdsZS9HcmFwaGljc0NvbnRleHRHTEFOR0xFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEUuY3BwCmluZGV4IDY4NmM1ZjIw
OTg3NjdmZDJlYTU3NTQ0ZTNhY2NlZTRmMmU3YmU1ZDguLjI3NDYwOWExNTA5YWI4NzNlMzg2MjFj
NGVjNTU4YzhhNDI4YzU0ZjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xlL0dyYXBoaWNzQ29udGV4dEdMQU5HTEUuY3BwCkBA
IC01MTAsOCArNTEwLDkgQEAgdm9pZCBHcmFwaGljc0NvbnRleHRHTEFOR0xFOjp2YWxpZGF0ZURl
cHRoU3RlbmNpbChjb25zdCBjaGFyKiBwYWNrZWREZXB0aFN0ZW5jaWwKICAgICAvLyBGSVhNRTog
U2luY2UgdGhlIGNvbnN0cnVjdG9ycyBvZiB2YXJpb3VzIHBsYXRmb3JtcyBhcmUgbm90IHNoYXJl
ZCwgd2UgaW5pdGlhbGl6ZSB0aGlzIGhlcmUuCiAgICAgLy8gVXBvbiBjb25zdHJ1Y3RpbmcgdGhl
IGNvbnRleHQsIGFsd2F5cyBpbml0aWFsaXplIHRoZSBleHRlbnNpb25zIHRoYXQgdGhlIFdlYkdM
UmVuZGVyaW5nQ29udGV4dCogd2lsbAogICAgIC8vIHVzZSB0byB0dXJuIG9uIGZlYXR1cmUgZmxh
Z3MuCi0gICAgaWYgKHN1cHBvcnRzRXh0ZW5zaW9uKHBhY2tlZERlcHRoU3RlbmNpbEV4dGVuc2lv
bikpIHsKLSAgICAgICAgZW5zdXJlRXh0ZW5zaW9uRW5hYmxlZChwYWNrZWREZXB0aFN0ZW5jaWxF
eHRlbnNpb24pOworICAgIFN0cmluZyBwYWNrZWREZXB0aFN0ZW5jaWxFeHRlbnNpb25TdHJpbmcg
eyBwYWNrZWREZXB0aFN0ZW5jaWxFeHRlbnNpb24gfTsKKyAgICBpZiAoc3VwcG9ydHNFeHRlbnNp
b24ocGFja2VkRGVwdGhTdGVuY2lsRXh0ZW5zaW9uU3RyaW5nKSkgeworICAgICAgICBlbnN1cmVF
eHRlbnNpb25FbmFibGVkKHBhY2tlZERlcHRoU3RlbmNpbEV4dGVuc2lvblN0cmluZyk7CiAgICAg
ICAgIG1faW50ZXJuYWxEZXB0aFN0ZW5jaWxGb3JtYXQgPSBHTF9ERVBUSDI0X1NURU5DSUw4X09F
UzsKICAgICB9IGVsc2UKICAgICAgICAgbV9pbnRlcm5hbERlcHRoU3RlbmNpbEZvcm1hdCA9IEdM
X0RFUFRIX0NPTVBPTkVOVDE2OwpAQCAtNTI4LDE3ICs1MjksMTcgQEAgdm9pZCBHcmFwaGljc0Nv
bnRleHRHTEFOR0xFOjp2YWxpZGF0ZURlcHRoU3RlbmNpbChjb25zdCBjaGFyKiBwYWNrZWREZXB0
aFN0ZW5jaWwKIAogICAgIGlmIChhdHRycy5hbnRpYWxpYXMpIHsKICAgICAgICAgLy8gRklYTUU6
IG11c3QgYWRqdXN0IHRoaXMgd2hlbiB1cGdyYWRpbmcgdG8gV2ViR0wgMi4wIC8gT3BlbkdMIEVT
IDMuMCBzdXBwb3J0LgotICAgICAgICBpZiAoIXN1cHBvcnRzRXh0ZW5zaW9uKCJHTF9BTkdMRV9m
cmFtZWJ1ZmZlcl9tdWx0aXNhbXBsZSIpIHx8ICFzdXBwb3J0c0V4dGVuc2lvbigiR0xfQU5HTEVf
ZnJhbWVidWZmZXJfYmxpdCIpIHx8ICFzdXBwb3J0c0V4dGVuc2lvbigiR0xfT0VTX3JnYjhfcmdi
YTgiKSkgeworICAgICAgICBpZiAoIXN1cHBvcnRzRXh0ZW5zaW9uKCJHTF9BTkdMRV9mcmFtZWJ1
ZmZlcl9tdWx0aXNhbXBsZSJfcykgfHwgIXN1cHBvcnRzRXh0ZW5zaW9uKCJHTF9BTkdMRV9mcmFt
ZWJ1ZmZlcl9ibGl0Il9zKSB8fCAhc3VwcG9ydHNFeHRlbnNpb24oIkdMX09FU19yZ2I4X3JnYmE4
Il9zKSkgewogICAgICAgICAgICAgYXR0cnMuYW50aWFsaWFzID0gZmFsc2U7CiAgICAgICAgICAg
ICBzZXRDb250ZXh0QXR0cmlidXRlcyhhdHRycyk7CiAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgICBlbnN1cmVFeHRlbnNpb25FbmFibGVkKCJHTF9BTkdMRV9mcmFtZWJ1ZmZlcl9tdWx0aXNh
bXBsZSIpOwotICAgICAgICAgICAgZW5zdXJlRXh0ZW5zaW9uRW5hYmxlZCgiR0xfQU5HTEVfZnJh
bWVidWZmZXJfYmxpdCIpOwotICAgICAgICAgICAgZW5zdXJlRXh0ZW5zaW9uRW5hYmxlZCgiR0xf
T0VTX3JnYjhfcmdiYTgiKTsKKyAgICAgICAgICAgIGVuc3VyZUV4dGVuc2lvbkVuYWJsZWQoIkdM
X0FOR0xFX2ZyYW1lYnVmZmVyX211bHRpc2FtcGxlIl9zKTsKKyAgICAgICAgICAgIGVuc3VyZUV4
dGVuc2lvbkVuYWJsZWQoIkdMX0FOR0xFX2ZyYW1lYnVmZmVyX2JsaXQiX3MpOworICAgICAgICAg
ICAgZW5zdXJlRXh0ZW5zaW9uRW5hYmxlZCgiR0xfT0VTX3JnYjhfcmdiYTgiX3MpOwogICAgICAg
ICB9CiAgICAgfSBlbHNlIGlmIChhdHRycy5wcmVzZXJ2ZURyYXdpbmdCdWZmZXIpIHsKICAgICAg
ICAgLy8gTmVlZGVkIGZvciBwcmVzZXJ2ZURyYXdpbmdCdWZmZXI6dHJ1ZSBzdXBwb3J0IHdpdGhv
dXQgYW50aWFsaWFzaW5nLgotICAgICAgICBlbnN1cmVFeHRlbnNpb25FbmFibGVkKCJHTF9BTkdM
RV9mcmFtZWJ1ZmZlcl9ibGl0Iik7CisgICAgICAgIGVuc3VyZUV4dGVuc2lvbkVuYWJsZWQoIkdM
X0FOR0xFX2ZyYW1lYnVmZmVyX2JsaXQiX3MpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL0NETVByaXZhdGVNZWRp
YVNvdXJjZUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZv
dW5kYXRpb24vQ0RNUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQppbmRleCAyZGFmOGVhYWM5
MDhjZWJiYjk0ZGEzMzA2NDRhNWU3NzE3YjM2NzM5Li5hZWEyZThhYjk5MDE5NTgyZTRkZDQ5Mzhl
MjAzN2YwMjA2NWQyNDI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vQ0RNUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQ0RNUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQy5tbQpAQCAtNDYsNyArNDYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIGF1dG8gQ0RNUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6cGFyc2VLZXlTeXN0ZW0oY29u
c3QgU3RyaW5nJiBrZXlTeXN0ZW0pIC0+IHN0ZDo6b3B0aW9uYWw8S2V5U3lzdGVtUGFyYW1ldGVy
cz4KIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UmVndWxhckV4cHJlc3Npb24+IGtleVN5
c3RlbVJFKCJeY29tXFwuYXBwbGVcXC5mcHNcXC5bMjNdX1xcZCsoPzosXFxkKykqJCIsIEpTQzo6
WWFycjo6VGV4dENhc2VJbnNlbnNpdGl2ZSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFJl
Z3VsYXJFeHByZXNzaW9uPiBrZXlTeXN0ZW1SRSgiXmNvbVxcLmFwcGxlXFwuZnBzXFwuWzIzXV9c
XGQrKD86LFxcZCspKiQiX3MsIEpTQzo6WWFycjo6VGV4dENhc2VJbnNlbnNpdGl2ZSk7CiAKICAg
ICBpZiAoa2V5U3lzdGVtUkUuZ2V0KCkubWF0Y2goa2V5U3lzdGVtKSA8IDApCiAgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uLmgKaW5kZXggYTgxYjhlMjI2OWE2OGI0MzZhNTMyNjA1NWJlMGZh
ZjEwNTcwMmMyMS4uMDEzMmEyZjg0NzhhNmRlYTk3ZThlYjlkN2NjNzZjMGFjNWVkZjY0NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01l
ZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24u
aApAQCAtMzExLDcgKzMxMSw3IEBAIHByb3RlY3RlZDoKICAgICBNZWRpYVBsYXllciogcGxheWVy
KCkgeyByZXR1cm4gbV9wbGF5ZXI7IH0KICAgICBjb25zdCBNZWRpYVBsYXllciogcGxheWVyKCkg
Y29uc3QgeyByZXR1cm4gbV9wbGF5ZXI7IH0KIAotICAgIFN0cmluZyBlbmdpbmVEZXNjcmlwdGlv
bigpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuICJBVkZvdW5kYXRpb24iOyB9CisgICAgU3RyaW5n
IGVuZ2luZURlc2NyaXB0aW9uKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIkFWRm91bmRhdGlv
biJfczsgfQogICAgIGxvbmcgcGxhdGZvcm1FcnJvckNvZGUoKSBjb25zdCBvdmVycmlkZSB7IHJl
dHVybiBhc3NldEVycm9yQ29kZSgpOyB9CiAKICAgICB2b2lkIHRyYWNrTW9kZUNoYW5nZWQoKSBv
dmVycmlkZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL0NETUluc3RhbmNlRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDLm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RNSW5z
dGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakMubW0KaW5kZXggNzZlNjMxYjVmYWEyM2Q3NDUy
YzY5MDA3ZmNlNGM1OTE1ZWQxZGU5NC4uMTMwNjhmODlhZWRhZDM1OWUzMjYyYmJjNmRkZGE0YzJk
YTQ0NGEwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakMubW0KKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvQ0RN
SW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakMubW0KQEAgLTg5MSw3ICs4OTEsNyBAQCB2
b2lkIENETUluc3RhbmNlU2Vzc2lvbkZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQzo6dXBkYXRlTGlj
ZW5zZShjb25zdCBTdHJpbmcmLCBMaQogICAgICAgICAgICAgaWYgKCFvYmplY3QpCiAgICAgICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgICAgICAgICBhdXRvIGtleUlEU3RyaW5nID0g
b2JqZWN0LT5nZXRTdHJpbmcoImtleUlEIik7CisgICAgICAgICAgICBhdXRvIGtleUlEU3RyaW5n
ID0gb2JqZWN0LT5nZXRTdHJpbmcoImtleUlEIl9zKTsKICAgICAgICAgICAgIGlmICgha2V5SURT
dHJpbmcpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCkBAIC05MTEsOCArOTExLDgg
QEAgdm9pZCBDRE1JbnN0YW5jZVNlc3Npb25GYWlyUGxheVN0cmVhbWluZ0FWRk9iakM6OnVwZGF0
ZUxpY2Vuc2UoY29uc3QgU3RyaW5nJiwgTGkKIAogICAgICAgICAgICAgYXV0byYgcmVxdWVzdCA9
IG1fY3VycmVudFJlcXVlc3QudmFsdWUoKS5yZXF1ZXN0c1tmb3VuZEluZGV4XTsKIAotICAgICAg
ICAgICAgYXV0byBwYXlsb2FkRmluZFJlc3VsdHMgPSBvYmplY3QtPmZpbmQoInBheWxvYWQiKTsK
LSAgICAgICAgICAgIGF1dG8gZXJyb3JGaW5kUmVzdWx0cyA9IG9iamVjdC0+ZmluZCgiZXJyb3Ii
KTsKKyAgICAgICAgICAgIGF1dG8gcGF5bG9hZEZpbmRSZXN1bHRzID0gb2JqZWN0LT5maW5kKCJw
YXlsb2FkIl9zKTsKKyAgICAgICAgICAgIGF1dG8gZXJyb3JGaW5kUmVzdWx0cyA9IG9iamVjdC0+
ZmluZCgiZXJyb3IiX3MpOwogICAgICAgICAgICAgYm9vbCBoYXNQYXlsb2FkID0gcGF5bG9hZEZp
bmRSZXN1bHRzICE9IG9iamVjdC0+ZW5kKCk7CiAgICAgICAgICAgICBib29sIGhhc0Vycm9yID0g
ZXJyb3JGaW5kUmVzdWx0cyAhPSBvYmplY3QtPmVuZCgpOwogCkBAIC0xMjUzLDggKzEyNTMsOCBA
QCB2b2lkIENETUluc3RhbmNlU2Vzc2lvbkZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQzo6ZGlkUHJv
dmlkZVJlcXVlc3RzKFZlY3RvcjxSZXRhaQogICAgICAgICAgICAgYXV0byBlbnRyeSA9IEpTT046
Ok9iamVjdDo6Y3JlYXRlKCk7CiAgICAgICAgICAgICBhdXRvJiBrZXlJRCA9IHJlcXVlc3REYXRh
LmZpcnN0OwogICAgICAgICAgICAgYXV0byYgcGF5bG9hZCA9IHJlcXVlc3REYXRhLnNlY29uZDsK
LSAgICAgICAgICAgIGVudHJ5LT5zZXRTdHJpbmcoImtleUlEIiwgYmFzZTY0RW5jb2RlVG9TdHJp
bmcoa2V5SUQtPm1ha2VDb250aWd1b3VzKCktPmRhdGEoKSwga2V5SUQtPnNpemUoKSkpOwotICAg
ICAgICAgICAgZW50cnktPnNldFN0cmluZygicGF5bG9hZCIsIGJhc2U2NEVuY29kZVRvU3RyaW5n
KHBheWxvYWQuZ2V0KCkuYnl0ZXMsIHBheWxvYWQuZ2V0KCkubGVuZ3RoKSk7CisgICAgICAgICAg
ICBlbnRyeS0+c2V0U3RyaW5nKCJrZXlJRCJfcywgYmFzZTY0RW5jb2RlVG9TdHJpbmcoa2V5SUQt
Pm1ha2VDb250aWd1b3VzKCktPmRhdGEoKSwga2V5SUQtPnNpemUoKSkpOworICAgICAgICAgICAg
ZW50cnktPnNldFN0cmluZygicGF5bG9hZCJfcywgYmFzZTY0RW5jb2RlVG9TdHJpbmcocGF5bG9h
ZC5nZXQoKS5ieXRlcywgcGF5bG9hZC5nZXQoKS5sZW5ndGgpKTsKICAgICAgICAgICAgIHJlcXVl
c3RKU09OLT5wdXNoT2JqZWN0KFdURk1vdmUoZW50cnkpKTsKICAgICAgICAgfQogICAgICAgICBh
dXRvIHJlcXVlc3RCdWZmZXIgPSB1dGY4QnVmZmVyKHJlcXVlc3RKU09OLT50b0pTT05TdHJpbmco
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVB
VkZPYmpDLm1tCmluZGV4IDZiYTZiOWJmMTJhZDNjOWYzODkwN2MyZmQzNmZlODdhNTUzYjJhNDQu
LjBlOGVhNjRmMDgzOGU2MmFkZTVjZjg5NzJjYWQxODlhYzU1ZDM1NjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1
ZmZlclByaXZhdGVBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tCkBAIC02
MDAsNyArNjAwLDcgQEAgdm9pZCBTb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQzo6ZGlkUHJvdmlk
ZUNvbnRlbnRLZXlSZXF1ZXN0SW5pdGlhbGl6YXRpb25EYXRhRm8KICAgICB9CiAKICAgICBtX2tl
eUlEcyA9IFdURk1vdmUoa2V5SURzLnZhbHVlKCkpOwotICAgIHBsYXllci0+aW5pdGlhbGl6YXRp
b25EYXRhRW5jb3VudGVyZWQoInNpbmYiLCBtX2luaXREYXRhLT50cnlDcmVhdGVBcnJheUJ1ZmZl
cigpKTsKKyAgICBwbGF5ZXItPmluaXRpYWxpemF0aW9uRGF0YUVuY291bnRlcmVkKCJzaW5mIl9z
LCBtX2luaXREYXRhLT50cnlDcmVhdGVBcnJheUJ1ZmZlcigpKTsKIAogICAgIG1fd2FpdGluZ0Zv
cktleSA9IHRydWU7CiAgICAgcGxheWVyLT53YWl0aW5nRm9yS2V5Q2hhbmdlZCgpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1BsYXRmb3JtUGFzdGVib2FyZElPUy5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QbGF0Zm9ybVBhc3RlYm9hcmRJT1MubW0K
aW5kZXggZDY0Yjk2ODM0NzM3ODMyZDJlZWQ2ODgyMzYwMTIyNzA2NTU4NTNmYy4uMmUwNjg1N2Vm
MjZiOGJmZmY5YWExOTE4MDc4NGZkYWMxYTJiMjc1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vaW9zL1BsYXRmb3JtUGFzdGVib2FyZElPUy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pb3MvUGxhdGZvcm1QYXN0ZWJvYXJkSU9TLm1tCkBAIC0xNTksNyArMTU5
LDcgQEAgc3RhdGljIFZlY3RvcjxTdHJpbmc+IHdlYlNhZmVUeXBlcyhOU0FycmF5PE5TU3RyaW5n
ICo+ICpwbGF0Zm9ybVR5cGVzLCBQbGF0Zm9ybVAKIHsKICAgICBMaXN0SGFzaFNldDxTdHJpbmc+
IGRvbVBhc3RlYm9hcmRUeXBlczsKICAgICBmb3IgKE5TU3RyaW5nICp0eXBlIGluIHBsYXRmb3Jt
VHlwZXMpIHsKLSAgICAgICAgaWYgKFt0eXBlIGlzRXF1YWxUb1N0cmluZzpAKFBhc3RlYm9hcmRD
dXN0b21EYXRhOjpjb2NvYVR5cGUoKSldKQorICAgICAgICBpZiAoW3R5cGUgaXNFcXVhbFRvU3Ry
aW5nOkAoUGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpLmNoYXJhY3RlcnMoKSldKQog
ICAgICAgICAgICAgY29udGludWU7CiAKICAgICAgICAgaWYgKFBhc3RlYm9hcmQ6OmlzU2FmZVR5
cGVGb3JET01Ub1JlYWRBbmRXcml0ZSh0eXBlKSkgewpAQCAtNTAxLDcgKzUwMSw3IEBAIEFMTE9X
X0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAgICAgUGFzdGVib2FyZEN1c3RvbURhdGEg
Y3VzdG9tRGF0YTsKICAgICBjdXN0b21EYXRhLnNldE9yaWdpbihjb250ZW50LmNvbnRlbnRPcmln
aW4pOwotICAgIFtyZXByZXNlbnRhdGlvbnNUb1JlZ2lzdGVyIGFkZERhdGE6Y3VzdG9tRGF0YS5j
cmVhdGVTaGFyZWRCdWZmZXIoKS0+Y3JlYXRlTlNEYXRhKCkuZ2V0KCkgZm9yVHlwZTpAKFBhc3Rl
Ym9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKSldOworICAgIFtyZXByZXNlbnRhdGlvbnNUb1Jl
Z2lzdGVyIGFkZERhdGE6Y3VzdG9tRGF0YS5jcmVhdGVTaGFyZWRCdWZmZXIoKS0+Y3JlYXRlTlNE
YXRhKCkuZ2V0KCkgZm9yVHlwZTpAKFBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKS5j
aGFyYWN0ZXJzKCkpXTsKIAogICAgIHJlZ2lzdGVySXRlbVRvUGFzdGVib2FyZChyZXByZXNlbnRh
dGlvbnNUb1JlZ2lzdGVyLmdldCgpLCBtX3Bhc3RlYm9hcmQuZ2V0KCkpOwogfQpAQCAtNjA4LDcg
KzYwOCw3IEBAIFZlY3RvcjxTdHJpbmc+IFBsYXRmb3JtUGFzdGVib2FyZDo6dHlwZXNTYWZlRm9y
RE9NVG9SZWFkQW5kV3JpdGUoY29uc3QgU3RyaW5nJiBvCiAgICAgfQogI2VuZGlmIC8vIFBBU1RF
Qk9BUkRfU1VQUE9SVFNfUFJFU0VOVEFUSU9OX1NUWUxFX0FORF9URUFNX0RBVEEKIAotICAgIGlm
IChOU0RhdGEgKnNlcmlhbGl6ZWRDdXN0b21EYXRhID0gW21fcGFzdGVib2FyZCBkYXRhRm9yUGFz
dGVib2FyZFR5cGU6QChQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkpXSkgeworICAg
IGlmIChOU0RhdGEgKnNlcmlhbGl6ZWRDdXN0b21EYXRhID0gW21fcGFzdGVib2FyZCBkYXRhRm9y
UGFzdGVib2FyZFR5cGU6QChQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkuY2hhcmFj
dGVycygpKV0pIHsKICAgICAgICAgYXV0byBkYXRhID0gUGFzdGVib2FyZEN1c3RvbURhdGE6OmZy
b21TaGFyZWRCdWZmZXIoU2hhcmVkQnVmZmVyOjpjcmVhdGUoc2VyaWFsaXplZEN1c3RvbURhdGEp
LmdldCgpKTsKICAgICAgICAgaWYgKGRhdGEub3JpZ2luKCkgPT0gb3JpZ2luKSB7CiAgICAgICAg
ICAgICBmb3IgKGF1dG8mIHR5cGUgOiBkYXRhLm9yZGVyZWRUeXBlcygpKQpAQCAtNjQ1LDcgKzY0
NSw3IEBAIHN0YXRpYyBSZXRhaW5QdHI8V2ViSXRlbVByb3ZpZGVyUmVnaXN0cmF0aW9uSW5mb0xp
c3Q+IGNyZWF0ZUl0ZW1Qcm92aWRlclJlZ2lzdHJhCiAgICAgICAgICAgICBOU0RpY3Rpb25hcnkg
KnRlYW1EYXRhRGljdGlvbmFyeSA9IEB7IEAob3JpZ2luS2V5Rm9yVGVhbURhdGEpIDogZGF0YS5v
cmlnaW4oKSwgQChjdXN0b21UeXBlc0tleUZvclRlYW1EYXRhKSA6IGNyZWF0ZU5TQXJyYXkoZGF0
YS5vcmRlcmVkVHlwZXMoKSkuZ2V0KCkgfTsKICAgICAgICAgICAgIGlmIChOU0RhdGEgKnRlYW1E
YXRhID0gW05TS2V5ZWRBcmNoaXZlciBhcmNoaXZlZERhdGFXaXRoUm9vdE9iamVjdDp0ZWFtRGF0
YURpY3Rpb25hcnkgcmVxdWlyaW5nU2VjdXJlQ29kaW5nOllFUyBlcnJvcjpudWxscHRyXSkgewog
ICAgICAgICAgICAgICAgIFtyZXByZXNlbnRhdGlvbnNUb1JlZ2lzdGVyIHNldFRlYW1EYXRhOnRl
YW1EYXRhXTsKLSAgICAgICAgICAgICAgICBbcmVwcmVzZW50YXRpb25zVG9SZWdpc3RlciBhZGRE
YXRhOnNlcmlhbGl6ZWRTaGFyZWRCdWZmZXIuZ2V0KCkgZm9yVHlwZTpAKFBhc3RlYm9hcmRDdXN0
b21EYXRhOjpjb2NvYVR5cGUoKSldOworICAgICAgICAgICAgICAgIFtyZXByZXNlbnRhdGlvbnNU
b1JlZ2lzdGVyIGFkZERhdGE6c2VyaWFsaXplZFNoYXJlZEJ1ZmZlci5nZXQoKSBmb3JUeXBlOkAo
UGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpLmNoYXJhY3RlcnMoKSldOwogICAgICAg
ICAgICAgfQogICAgICAgICB9CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vaW9zL1dlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pb3MvV2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZC5tbQppbmRleCBkMmExZGJjM2E4
OWY5MWFlYzJhMzIyMDM4NjRhMGNlZjMxOTIzMmQzLi43NWE3NmY0Mzk5NGVlNjVlODEzOWM4Nzc2
NmMzM2I3OGE0YTNkMjJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mv
V2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZC5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9pb3MvV2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZC5tbQpAQCAtNzYxLDcgKzc2MSw3IEBAIEFM
TE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAKICAgICAvLyBGb3IgY29tcGF0aWJp
bGl0eSB3aXRoIERhdGFUcmFuc2ZlciBBUElzLCBhZGRpdGlvbmFsbHkgbG9hZCB3ZWItZXhwb3Nl
ZCB0eXBlcy4gU2luY2UgdGhpcyBpcyB0aGUgb25seSBjaGFuY2UgdG8KICAgICAvLyBmYXVsdCBp
biBhbnkgZGF0YSBhdCBhbGwsIHdlIG5lZWQgdG8gbG9hZCB1cCBmcm9udCBhbnkgaW5mb3JtYXRp
b24gdGhhdCB0aGUgcGFnZSBtYXkgYXNrIGZvciBsYXRlciBkb3duIHRoZSBsaW5lLgotICAgIE5T
U3RyaW5nICpjdXN0b21QYXN0ZWJvYXJkRGF0YVVUSSA9IEAoUGFzdGVib2FyZEN1c3RvbURhdGE6
OmNvY29hVHlwZSgpKTsKKyAgICBOU1N0cmluZyAqY3VzdG9tUGFzdGVib2FyZERhdGFVVEkgPSBA
KFBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKS5jaGFyYWN0ZXJzKCkpOwogICAgIGZv
ciAoTlNTdHJpbmcgKnJlZ2lzdGVyZWRUeXBlSWRlbnRpZmllciBpbiByZWdpc3RlcmVkVHlwZUlk
ZW50aWZpZXJzKSB7CiAgICAgICAgIGlmIChbcmVnaXN0ZXJlZFR5cGVJZGVudGlmaWVyIGlzRXF1
YWxUb1N0cmluZzpoaWdoZXN0RmlkZWxpdHlDb250ZW50VHlwZV0KICAgICAgICAgICAgIHx8IFty
ZWdpc3RlcmVkVHlwZUlkZW50aWZpZXIgaXNFcXVhbFRvU3RyaW5nOmhpZ2hlc3RGaWRlbGl0eVN1
cHBvcnRlZFR5cGVdCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRGF0
YURldGVjdG9ySGlnaGxpZ2h0Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RhdGFE
ZXRlY3RvckhpZ2hsaWdodC5tbQppbmRleCAzZjA2OTQwNDYwMjk0ZGNmZThhODMwMjhkMWZkN2Q0
NjZkYTg1Mzk1Li4xNWRiODdiMWQ5OGJhMzgxZWE5NTFiMWYzNGY4ZTYwMDgyOTgyNWE4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRGF0YURldGVjdG9ySGlnaGxpZ2h0
Lm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9EYXRhRGV0ZWN0b3JIaWdobGln
aHQubW0KQEAgLTE1Myw3ICsxNTMsNyBAQCB2b2lkIERhdGFEZXRlY3RvckhpZ2hsaWdodDo6ZmFk
ZUluKCkKICAgICBbYW5pbWF0aW9uIHNldFRvVmFsdWU6QDFdOwogCiAgICAgYXV0byBwbGF0Zm9y
bUFuaW1hdGlvbiA9IFBsYXRmb3JtQ0FBbmltYXRpb25Db2NvYTo6Y3JlYXRlKGFuaW1hdGlvbi5n
ZXQoKSk7Ci0gICAgZG93bmNhc3Q8R3JhcGhpY3NMYXllckNBPihsYXllcigpKS5wbGF0Zm9ybUNB
TGF5ZXIoKS0+YWRkQW5pbWF0aW9uRm9yS2V5KCJGYWRlSGlnaGxpZ2h0SW4iLCBwbGF0Zm9ybUFu
aW1hdGlvbi5nZXQoKSk7CisgICAgZG93bmNhc3Q8R3JhcGhpY3NMYXllckNBPihsYXllcigpKS5w
bGF0Zm9ybUNBTGF5ZXIoKS0+YWRkQW5pbWF0aW9uRm9yS2V5KCJGYWRlSGlnaGxpZ2h0SW4iX3Ms
IHBsYXRmb3JtQW5pbWF0aW9uLmdldCgpKTsKIH0KIAogdm9pZCBEYXRhRGV0ZWN0b3JIaWdobGln
aHQ6OmZhZGVPdXQoKQpAQCAtMTcwLDcgKzE3MCw3IEBAIHZvaWQgRGF0YURldGVjdG9ySGlnaGxp
Z2h0OjpmYWRlT3V0KCkKICAgICB9XTsKIAogICAgIGF1dG8gcGxhdGZvcm1BbmltYXRpb24gPSBQ
bGF0Zm9ybUNBQW5pbWF0aW9uQ29jb2E6OmNyZWF0ZShhbmltYXRpb24uZ2V0KCkpOwotICAgIGRv
d25jYXN0PEdyYXBoaWNzTGF5ZXJDQT4obGF5ZXIoKSkucGxhdGZvcm1DQUxheWVyKCktPmFkZEFu
aW1hdGlvbkZvcktleSgiRmFkZUhpZ2hsaWdodE91dCIsIHBsYXRmb3JtQW5pbWF0aW9uLmdldCgp
KTsKKyAgICBkb3duY2FzdDxHcmFwaGljc0xheWVyQ0E+KGxheWVyKCkpLnBsYXRmb3JtQ0FMYXll
cigpLT5hZGRBbmltYXRpb25Gb3JLZXkoIkZhZGVIaWdobGlnaHRPdXQiX3MsIHBsYXRmb3JtQW5p
bWF0aW9uLmdldCgpKTsKICAgICBbQ0FUcmFuc2FjdGlvbiBjb21taXRdOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGFzdGVib2FyZE1hYy5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tCmluZGV4IGEyYzI1MGFhMmJl
ZjhkZTk2NGJhZjA5MjQwZDVlMGVjNDE1MGVmODQuLmRjMmY1YzUzYzY1NDFlMTk4YjNhODRlNmM1
YTgwNWQxZGRmZTBkOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9Q
YXN0ZWJvYXJkTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJv
YXJkTWFjLm1tCkBAIC01MCwxMiArNTAsMTIgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1j
b25zdCBjaGFyKiBjb25zdCBXZWJBcmNoaXZlUGJvYXJkVHlwZSA9ICJBcHBsZSBXZWIgQXJjaGl2
ZSBwYXN0ZWJvYXJkIHR5cGUiOwotY29uc3QgY2hhciogY29uc3QgV2ViVVJMTmFtZVBib2FyZFR5
cGUgPSAicHVibGljLnVybC1uYW1lIjsKLWNvbnN0IGNoYXIqIGNvbnN0IFdlYlVSTHNXaXRoVGl0
bGVzUGJvYXJkVHlwZSA9ICJXZWJVUkxzV2l0aFRpdGxlc1Bib2FyZFR5cGUiOworY29uc3QgQVND
SUlMaXRlcmFsIFdlYkFyY2hpdmVQYm9hcmRUeXBlID0gIkFwcGxlIFdlYiBBcmNoaXZlIHBhc3Rl
Ym9hcmQgdHlwZSJfczsKK2NvbnN0IEFTQ0lJTGl0ZXJhbCBXZWJVUkxOYW1lUGJvYXJkVHlwZSA9
ICJwdWJsaWMudXJsLW5hbWUiX3M7Citjb25zdCBBU0NJSUxpdGVyYWwgV2ViVVJMc1dpdGhUaXRs
ZXNQYm9hcmRUeXBlID0gIldlYlVSTHNXaXRoVGl0bGVzUGJvYXJkVHlwZSJfczsKIAotY29uc3Qg
Y2hhciBXZWJTbWFydFBhc3RlUGJvYXJkVHlwZVtdID0gIk5lWFQgc21hcnQgcGFzdGUgcGFzdGVi
b2FyZCB0eXBlIjsKLWNvbnN0IGNoYXIgV2ViVVJMUGJvYXJkVHlwZVtdID0gInB1YmxpYy51cmwi
OworY29uc3QgQVNDSUlMaXRlcmFsIFdlYlNtYXJ0UGFzdGVQYm9hcmRUeXBlID0gIk5lWFQgc21h
cnQgcGFzdGUgcGFzdGVib2FyZCB0eXBlIl9zOworY29uc3QgQVNDSUlMaXRlcmFsIFdlYlVSTFBi
b2FyZFR5cGUgPSAicHVibGljLnVybCJfczsKIAogc3RhdGljIGNvbnN0IFZlY3RvcjxTdHJpbmc+
IHdyaXRhYmxlVHlwZXNGb3JVUkwoKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL1BsYXRmb3JtRXZlbnRGYWN0b3J5TWFjLm1tCmluZGV4IDM1ZmM2YWY1OWI2YWZj
YjRmOTU1NGMwZjJhODRhMzM0MjgzOTZlNWUuLmI3YjZlMzc0N2IwZmNkOTc4Yzg3NGUwMTgyZjIz
NTYzY2U1ZDJkODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0
Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMv
UGxhdGZvcm1FdmVudEZhY3RvcnlNYWMubW0KQEAgLTUwMiw3ICs1MDIsNyBAQCBTdHJpbmcga2V5
SWRlbnRpZmllckZvcktleUV2ZW50KE5TRXZlbnQqIGV2ZW50KQogICAgIE5TU3RyaW5nICpzID0g
W2V2ZW50IGNoYXJhY3RlcnNJZ25vcmluZ01vZGlmaWVyc107CiAgICAgaWYgKFtzIGxlbmd0aF0g
IT0gMSkgewogICAgICAgICBMT0coRXZlbnRzLCAicmVjZWl2ZWQgYW4gdW5leHBlY3RlZCBudW1i
ZXIgb2YgY2hhcmFjdGVycyBpbiBrZXkgZXZlbnQ6ICV1IiwgW3MgbGVuZ3RoXSk7Ci0gICAgICAg
IHJldHVybiAiVW5pZGVudGlmaWVkIjsKKyAgICAgICAgcmV0dXJuICJVbmlkZW50aWZpZWQiX3M7
CiAgICAgfQogICAgIHJldHVybiBrZXlJZGVudGlmaWVyRm9yQ2hhckNvZGUoW3MgY2hhcmFjdGVy
QXRJbmRleDowXSk7CiB9CkBAIC04MDksMjAgKzgwOSwyMCBAQCBwdWJsaWM6CiAKICAgICAgICAg
Ly8gQWx3YXlzIHVzZSAxMyBmb3IgRW50ZXIvUmV0dXJuIC0tIHdlIGRvbid0IHdhbnQgdG8gdXNl
IEFwcEtpdCdzIGRpZmZlcmVudCBjaGFyYWN0ZXIgZm9yIEVudGVyLgogICAgICAgICBpZiAobV93
aW5kb3dzVmlydHVhbEtleUNvZGUgPT0gVktfUkVUVVJOKSB7Ci0gICAgICAgICAgICBtX3RleHQg
PSAiXHIiOwotICAgICAgICAgICAgbV91bm1vZGlmaWVkVGV4dCA9ICJcciI7CisgICAgICAgICAg
ICBtX3RleHQgPSAiXHIiX3M7CisgICAgICAgICAgICBtX3VubW9kaWZpZWRUZXh0ID0gbV90ZXh0
OwogICAgICAgICB9CiAKICAgICAgICAgLy8gQXBwS2l0IHNldHMgdGV4dCB0byAiXHg3RiIgZm9y
IGJhY2tzcGFjZSwgYnV0IHRoZSBjb3JyZWN0IEtleWJvYXJkRXZlbnQgY2hhcmFjdGVyIGNvZGUg
aXMgOC4KICAgICAgICAgaWYgKG1fd2luZG93c1ZpcnR1YWxLZXlDb2RlID09IFZLX0JBQ0spIHsK
LSAgICAgICAgICAgIG1fdGV4dCA9ICJceDgiOwotICAgICAgICAgICAgbV91bm1vZGlmaWVkVGV4
dCA9ICJceDgiOworICAgICAgICAgICAgbV90ZXh0ID0gIlx4OCJfczsKKyAgICAgICAgICAgIG1f
dW5tb2RpZmllZFRleHQgPSBtX3RleHQ7CiAgICAgICAgIH0KIAogICAgICAgICAvLyBBbHdheXMg
dXNlIDkgZm9yIFRhYiAtLSB3ZSBkb24ndCB3YW50IHRvIHVzZSBBcHBLaXQncyBkaWZmZXJlbnQg
Y2hhcmFjdGVyIGZvciBzaGlmdC10YWIuCiAgICAgICAgIGlmIChtX3dpbmRvd3NWaXJ0dWFsS2V5
Q29kZSA9PSBWS19UQUIpIHsKLSAgICAgICAgICAgIG1fdGV4dCA9ICJceDkiOwotICAgICAgICAg
ICAgbV91bm1vZGlmaWVkVGV4dCA9ICJceDkiOworICAgICAgICAgICAgbV90ZXh0ID0gIlx4OSJf
czsKKyAgICAgICAgICAgIG1fdW5tb2RpZmllZFRleHQgPSBtX3RleHQ7CiAgICAgICAgIH0KIAog
ICAgICAgICAvLyBNYWMgc3BlY2lmaWMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tYWMvUGxhdGZvcm1QYXN0ZWJvYXJkTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWFjL1BsYXRmb3JtUGFzdGVib2FyZE1hYy5tbQppbmRleCBhN2ZlNzI1NTQzNzY2NWU4Yjhh
MGM3NDUzZDMwNDc0OWQ0NTYyZjY3Li40NmRiNTdkZWVhOWQ3MjY5YWViNGQ4NzdkMTkxN2Q1ZDYz
MDNkYTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvUGxhdGZvcm1Q
YXN0ZWJvYXJkTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9y
bVBhc3RlYm9hcmRNYWMubW0KQEAgLTIxNyw3ICsyMTcsNyBAQCBBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19FTkQKIFZlY3RvcjxTdHJpbmc+IFBsYXRmb3JtUGFzdGVib2FyZDo6dHlwZXNT
YWZlRm9yRE9NVG9SZWFkQW5kV3JpdGUoY29uc3QgU3RyaW5nJiBvcmlnaW4pIGNvbnN0CiB7CiAg
ICAgTGlzdEhhc2hTZXQ8U3RyaW5nPiBkb21QYXN0ZWJvYXJkVHlwZXM7Ci0gICAgaWYgKE5TRGF0
YSAqc2VyaWFsaXplZEN1c3RvbURhdGEgPSBbbV9wYXN0ZWJvYXJkIGRhdGFGb3JUeXBlOkAoUGFz
dGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpKV0pIHsKKyAgICBpZiAoTlNEYXRhICpzZXJp
YWxpemVkQ3VzdG9tRGF0YSA9IFttX3Bhc3RlYm9hcmQgZGF0YUZvclR5cGU6QChQYXN0ZWJvYXJk
Q3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkuY2hhcmFjdGVycygpKV0pIHsKICAgICAgICAgYXV0byBk
YXRhID0gUGFzdGVib2FyZEN1c3RvbURhdGE6OmZyb21TaGFyZWRCdWZmZXIoU2hhcmVkQnVmZmVy
OjpjcmVhdGUoc2VyaWFsaXplZEN1c3RvbURhdGEpLmdldCgpKTsKICAgICAgICAgaWYgKGRhdGEu
b3JpZ2luKCkgPT0gb3JpZ2luKSB7CiAgICAgICAgICAgICBmb3IgKGF1dG8mIHR5cGUgOiBkYXRh
Lm9yZGVyZWRUeXBlcygpKQpAQCAtMjI3LDcgKzIyNyw3IEBAIFZlY3RvcjxTdHJpbmc+IFBsYXRm
b3JtUGFzdGVib2FyZDo6dHlwZXNTYWZlRm9yRE9NVG9SZWFkQW5kV3JpdGUoY29uc3QgU3RyaW5n
JiBvCiAKICAgICBOU0FycmF5PE5TU3RyaW5nICo+ICphbGxUeXBlcyA9IFttX3Bhc3RlYm9hcmQg
dHlwZXNdOwogICAgIGZvciAoTlNTdHJpbmcgKnR5cGUgaW4gYWxsVHlwZXMpIHsKLSAgICAgICAg
aWYgKFt0eXBlIGlzRXF1YWxUb1N0cmluZzpAKFBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5
cGUoKSldKQorICAgICAgICBpZiAoW3R5cGUgaXNFcXVhbFRvU3RyaW5nOkAoUGFzdGVib2FyZEN1
c3RvbURhdGE6OmNvY29hVHlwZSgpLmNoYXJhY3RlcnMoKSldKQogICAgICAgICAgICAgY29udGlu
dWU7CiAKICAgICAgICAgaWYgKFBhc3RlYm9hcmQ6OmlzU2FmZVR5cGVGb3JET01Ub1JlYWRBbmRX
cml0ZSh0eXBlKSkKQEAgLTI1NCw3ICsyNTQsNyBAQCBpbnQ2NF90IFBsYXRmb3JtUGFzdGVib2Fy
ZDo6d3JpdGUoY29uc3QgUGFzdGVib2FyZEN1c3RvbURhdGEmIGRhdGEpCiAKICAgICBib29sIHNo
b3VsZFdyaXRlQ3VzdG9tRGF0YSA9IGRhdGEuaGFzU2FtZU9yaWdpbkN1c3RvbURhdGEoKSB8fCAh
ZGF0YS5vcmlnaW4oKS5pc0VtcHR5KCk7CiAgICAgaWYgKHNob3VsZFdyaXRlQ3VzdG9tRGF0YSkK
LSAgICAgICAgW3R5cGVzIGFkZE9iamVjdDpAKFBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5
cGUoKSldOworICAgICAgICBbdHlwZXMgYWRkT2JqZWN0OkAoUGFzdGVib2FyZEN1c3RvbURhdGE6
OmNvY29hVHlwZSgpLmNoYXJhY3RlcnMoKSldOwogCiAgICAgW21fcGFzdGVib2FyZCBkZWNsYXJl
VHlwZXM6dHlwZXMgb3duZXI6bmlsXTsKIApAQCAtMjc1LDcgKzI3NSw3IEBAIGludDY0X3QgUGxh
dGZvcm1QYXN0ZWJvYXJkOjp3cml0ZShjb25zdCBQYXN0ZWJvYXJkQ3VzdG9tRGF0YSYgZGF0YSkK
IAogICAgIGlmIChzaG91bGRXcml0ZUN1c3RvbURhdGEpIHsKICAgICAgICAgaWYgKGF1dG8gc2Vy
aWFsaXplZEN1c3RvbURhdGEgPSBkYXRhLmNyZWF0ZVNoYXJlZEJ1ZmZlcigpLT5jcmVhdGVOU0Rh
dGEoKSkKLSAgICAgICAgICAgIFttX3Bhc3RlYm9hcmQgc2V0RGF0YTpzZXJpYWxpemVkQ3VzdG9t
RGF0YS5nZXQoKSBmb3JUeXBlOkAoUGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpKV07
CisgICAgICAgICAgICBbbV9wYXN0ZWJvYXJkIHNldERhdGE6c2VyaWFsaXplZEN1c3RvbURhdGEu
Z2V0KCkgZm9yVHlwZTpAKFBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKS5jaGFyYWN0
ZXJzKCkpXTsKICAgICB9CiAKICAgICByZXR1cm4gY2hhbmdlQ291bnQoKTsKQEAgLTQ5OSw3ICs0
OTksNyBAQCBzdGF0aWMgUmV0YWluUHRyPE5TUGFzdGVib2FyZEl0ZW0+IGNyZWF0ZVBhc3RlYm9h
cmRJdGVtKGNvbnN0IFBhc3RlYm9hcmRDdXN0b21EYQogCiAgICAgaWYgKGRhdGEuaGFzU2FtZU9y
aWdpbkN1c3RvbURhdGEoKSB8fCAhZGF0YS5vcmlnaW4oKS5pc0VtcHR5KCkpIHsKICAgICAgICAg
aWYgKGF1dG8gc2VyaWFsaXplZEN1c3RvbURhdGEgPSBkYXRhLmNyZWF0ZVNoYXJlZEJ1ZmZlcigp
LT5jcmVhdGVOU0RhdGEoKSkKLSAgICAgICAgICAgIFtpdGVtIHNldERhdGE6c2VyaWFsaXplZEN1
c3RvbURhdGEuZ2V0KCkgZm9yVHlwZTpAKFBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUo
KSldOworICAgICAgICAgICAgW2l0ZW0gc2V0RGF0YTpzZXJpYWxpemVkQ3VzdG9tRGF0YS5nZXQo
KSBmb3JUeXBlOkAoUGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpLmNoYXJhY3RlcnMo
KSldOwogICAgIH0KIAogICAgIGRhdGEuZm9yRWFjaFBsYXRmb3JtU3RyaW5nT3JCdWZmZXIoWyZd
IChhdXRvJiB0eXBlLCBhdXRvJiBzdHJpbmdPckJ1ZmZlcikgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWFjL1N0cmluZ1V0aWxpdGllcy5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21hYy9TdHJpbmdVdGlsaXRpZXMubW0KaW5kZXggN2NkMWJkODBhZTllMzNlNzU2
ZjY1OTEyMjQwZjdlZDZjYzMzYzViNS4uOTJiZTY2N2U2M2ViMzFmNDFkNzc5YTk2NjJmMWZiNzU2
ZjQ2NTQzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1N0cmluZ1V0
aWxpdGllcy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU3RyaW5nVXRpbGl0
aWVzLm1tCkBAIC0zMyw3ICszMyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAKIHN0YXRp
YyBTdHJpbmcgd2lsZGNhcmRSZWdleFBhdHRlcm5TdHJpbmcoY29uc3QgU3RyaW5nJiBzdHJpbmcp
CiB7Ci0gICAgU3RyaW5nIG1ldGFDaGFyYWN0ZXJzID0gIi58Kz8oKVtde31eJCI7CisgICAgU3Ry
aW5nIG1ldGFDaGFyYWN0ZXJzID0gIi58Kz8oKVtde31eJCJfczsKICAgICBVQ2hhciBlc2NhcGVD
aGFyYWN0ZXIgPSAnXFwnOwogICAgIFVDaGFyIHdpbGRjYXJkQ2hhcmFjdGVyID0gJyonOwogICAg
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1RocmVhZENoZWNrLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1RocmVhZENoZWNrLm1tCmluZGV4IGYxNTEw
ODhjZTkyNWE1MDZlYjQ2OGIyMjIxZmFmMzI3NTAzMmJhNDIuLmJiZDczNDQxZTA1MGI5Njg3NTdh
NGY1YTZhZDEzNDY2YjFhZDA2ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9UaHJlYWRDaGVjay5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVGhy
ZWFkQ2hlY2subW0KQEAgLTEwNiw3ICsxMDYsNyBAQCB2b2lkIFdlYkNvcmVSZXBvcnRUaHJlYWRW
aW9sYXRpb24oY29uc3QgY2hhciogZnVuY3Rpb24sIFdlYkNvcmU6OlRocmVhZFZpb2xhdGlvbgog
ICAgICAgICBjYXNlIE5vVGhyZWFkQ2hlY2s6CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
Y2FzZSBMb2dPbkZpcnN0VGhyZWFkVmlvbGF0aW9uOgotICAgICAgICAgICAgaWYgKGxvZ2dlZEZ1
bmN0aW9ucy5nZXQoKS5hZGQoZnVuY3Rpb24pLmlzTmV3RW50cnkpIHsKKyAgICAgICAgICAgIGlm
IChsb2dnZWRGdW5jdGlvbnMuZ2V0KCkuYWRkKFN0cmluZyB7IGZ1bmN0aW9uIH0pLmlzTmV3RW50
cnkpIHsKICAgICAgICAgICAgICAgICBOU0xvZyhAIldlYktpdCBUaHJlYWRpbmcgVmlvbGF0aW9u
IC0gJXMgY2FsbGVkIGZyb20gc2Vjb25kYXJ5IHRocmVhZCIsIGZ1bmN0aW9uKTsKICAgICAgICAg
ICAgICAgICBOU0xvZyhAIkFkZGl0aW9uYWwgdGhyZWFkaW5nIHZpb2xhdGlvbnMgZm9yIHRoaXMg
ZnVuY3Rpb24gd2lsbCBub3QgYmUgbG9nZ2VkLiIpOwogICAgICAgICAgICAgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1VzZXJBZ2VudE1hYy5tbSBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21hYy9Vc2VyQWdlbnRNYWMubW0KaW5kZXggZTYyYTk3ZjE5OWFhY2Mz
Y2E2OTJkOGRhNGIyMDlkMjk5NGUzYTBkMS4uZWRjMDc5ZjRlMDI0YWYzMDFlNDVmYWExMDkzNWE4
ZGIzYTJiMmM3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1VzZXJB
Z2VudE1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVXNlckFnZW50TWFj
Lm1tCkBAIC0zOCw3ICszOCw3IEBAIFN0cmluZyBzdGFuZGFyZFVzZXJBZ2VudFdpdGhBcHBsaWNh
dGlvbk5hbWUoY29uc3QgU3RyaW5nJiBhcHBsaWNhdGlvbk5hbWUsIGNvbnN0CiAgICAgaWYgKCFv
c1ZlcnNpb24uc3RhcnRzV2l0aCgiMTAiKSkKICAgICAgICAgb3NWZXJzaW9uID0gIjEwXzE1Xzci
X3M7CiAgICAgCi0gICAgU3RyaW5nIGFwcE5hbWVTdWZmaXggPSBhcHBsaWNhdGlvbk5hbWUuaXNF
bXB0eSgpID8gIiIgOiBtYWtlU3RyaW5nKCIgIiwgYXBwbGljYXRpb25OYW1lKTsKKyAgICBTdHJp
bmcgYXBwTmFtZVN1ZmZpeCA9IGFwcGxpY2F0aW9uTmFtZS5pc0VtcHR5KCkgPyBlbXB0eVN0cmlu
ZygpIDogbWFrZVN0cmluZygiICIsIGFwcGxpY2F0aW9uTmFtZSk7CiAKICAgICByZXR1cm4gbWFr
ZVN0cmluZygiTW96aWxsYS81LjAgKE1hY2ludG9zaDsgSW50ZWwgTWFjIE9TIFggIiwgb3NWZXJz
aW9uLCAiKSBBcHBsZVdlYktpdC82MDUuMS4xNSAoS0hUTUwsIGxpa2UgR2Vja28pIiwgYXBwTmFt
ZVN1ZmZpeCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L1Jlc291cmNlRXJyb3JCYXNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
UmVzb3VyY2VFcnJvckJhc2UuY3BwCmluZGV4IDY3ZDJlYWMwOGZhN2I0YmYwNjRjY2RmYWJjMjQ5
ZmNjNDYyNTFjZmQuLmQwMTkzYWM2YzliOTc0YWEyYmYxZDcxOTc5ZDNlNzAxNWJjMzBkOWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VFcnJvckJh
c2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VFcnJv
ckJhc2UuY3BwCkBAIC0zMiw4ICszMiw4IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY29u
c3QgY2hhciogY29uc3QgZXJyb3JEb21haW5XZWJLaXRJbnRlcm5hbCA9ICJXZWJLaXRJbnRlcm5h
bCI7Ci1jb25zdCBjaGFyKiBjb25zdCBlcnJvckRvbWFpbldlYktpdFNlcnZpY2VXb3JrZXIgPSAi
V2ViS2l0U2VydmljZVdvcmtlciI7Citjb25zdCBBU0NJSUxpdGVyYWwgZXJyb3JEb21haW5XZWJL
aXRJbnRlcm5hbCA9ICJXZWJLaXRJbnRlcm5hbCJfczsKK2NvbnN0IEFTQ0lJTGl0ZXJhbCBlcnJv
ckRvbWFpbldlYktpdFNlcnZpY2VXb3JrZXIgPSAiV2ViS2l0U2VydmljZVdvcmtlciJfczsKIAog
aW5saW5lIGNvbnN0IFJlc291cmNlRXJyb3ImIFJlc291cmNlRXJyb3JCYXNlOjphc1Jlc291cmNl
RXJyb3IoKSBjb25zdAogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0
d29yay9SZXNvdXJjZUVycm9yQmFzZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29y
ay9SZXNvdXJjZUVycm9yQmFzZS5oCmluZGV4IDQ4OGRlYmMxNDNkNjNmNDU3ZThkMzhlOWM2ZGMy
M2E5ZDIwYmE4MTYuLmUxMjFjNTE0ZjQ4OTQyNmEzNDNkMzQ0ODkwYjk2NjMwMjUwY2Q3Y2EgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VFcnJvckJh
c2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlRXJyb3JC
YXNlLmgKQEAgLTM0LDggKzM0LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBSZXNv
dXJjZUVycm9yOwogCi1XRUJDT1JFX0VYUE9SVCBleHRlcm4gY29uc3QgY2hhciogY29uc3QgZXJy
b3JEb21haW5XZWJLaXRJbnRlcm5hbDsgLy8gVXNlZCBmb3IgZXJyb3JzIHRoYXQgd29uJ3QgYmUg
ZXhwb3NlZCB0byBjbGllbnRzLgotV0VCQ09SRV9FWFBPUlQgZXh0ZXJuIGNvbnN0IGNoYXIqIGNv
bnN0IGVycm9yRG9tYWluV2ViS2l0U2VydmljZVdvcmtlcjsgLy8gVXNlZCBmb3IgZXJyb3JzIHRo
YXQgaGFwcGVuIHdoZW4gbG9hZGluZyBhIHJlc291cmNlIGZyb20gYSBzZXJ2aWNlIHdvcmtlci4K
K1dFQkNPUkVfRVhQT1JUIGV4dGVybiBjb25zdCBBU0NJSUxpdGVyYWwgZXJyb3JEb21haW5XZWJL
aXRJbnRlcm5hbDsgLy8gVXNlZCBmb3IgZXJyb3JzIHRoYXQgd29uJ3QgYmUgZXhwb3NlZCB0byBj
bGllbnRzLgorV0VCQ09SRV9FWFBPUlQgZXh0ZXJuIGNvbnN0IEFTQ0lJTGl0ZXJhbCBlcnJvckRv
bWFpbldlYktpdFNlcnZpY2VXb3JrZXI7IC8vIFVzZWQgZm9yIGVycm9ycyB0aGF0IGhhcHBlbiB3
aGVuIGxvYWRpbmcgYSByZXNvdXJjZSBmcm9tIGEgc2VydmljZSB3b3JrZXIuCiAKIGNsYXNzIFJl
c291cmNlRXJyb3JCYXNlIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvUmFuZ2VSZXNwb25zZUdl
bmVyYXRvci5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvUmFuZ2VS
ZXNwb25zZUdlbmVyYXRvci5tbQppbmRleCAxOTgxNGEzNjVjOWY2NjFhMjFjMjI5YWRiZDA0NjEx
YzIwOTQ3ZTY0Li4wNGVmZGI0ZGZmMWQxNjQxYzNkNjA1YWYzMDE0ZDFhMTBjMjQ2NDNkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1JhbmdlUmVzcG9u
c2VHZW5lcmF0b3IubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2Nv
YS9SYW5nZVJlc3BvbnNlR2VuZXJhdG9yLm1tCkBAIC03OCw3ICs3OCw3IEBAIHN0YXRpYyBSZXNv
dXJjZVJlc3BvbnNlIHN5bnRoZXNpemVkUmVzcG9uc2VGb3JSYW5nZShjb25zdCBSZXNvdXJjZVJl
c3BvbnNlJiBvcmlnCiAgICAgYXV0byBiZWdpbiA9IHBhcnNlZFJlcXVlc3RSYW5nZS5iZWdpbjsK
ICAgICBhdXRvIGVuZCA9IHBhcnNlZFJlcXVlc3RSYW5nZS5lbmQ7CiAKLSAgICBhdXRvIG5ld0Nv
bnRlbnRSYW5nZSA9IG1ha2VTdHJpbmcoImJ5dGVzICIsIGJlZ2luLCAiLSIsIGVuZCwgIi8iLCAo
dG90YWxDb250ZW50TGVuZ3RoID8gbWFrZVN0cmluZygqdG90YWxDb250ZW50TGVuZ3RoKSA6ICIq
IikpOworICAgIGF1dG8gbmV3Q29udGVudFJhbmdlID0gbWFrZVN0cmluZygiYnl0ZXMgIiwgYmVn
aW4sICItIiwgZW5kLCAiLyIsICh0b3RhbENvbnRlbnRMZW5ndGggPyBtYWtlU3RyaW5nKCp0b3Rh
bENvbnRlbnRMZW5ndGgpIDogIioiX3MpKTsKICAgICBhdXRvIG5ld0NvbnRlbnRMZW5ndGggPSBt
YWtlU3RyaW5nKGVuZCAtIGJlZ2luICsgMSk7CiAKICAgICBSZXNvdXJjZVJlc3BvbnNlIG5ld1Jl
c3BvbnNlID0gb3JpZ2luYWxSZXNwb25zZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbSBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUaGVtZU1hYy5tbQppbmRleCAwMTBlY2JhZWQ4N2E3M2E0MjBhZmI5N2U4ZTgwZmVhNjM3OWZl
ZDNlLi44ZTlkNDZhMWIzNGNhYjA0N2ZiYTM0M2QxYjU3YTJjNWIyZGMxMDg2IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lTWFjLm1tCkBAIC0yNjE5LDcgKzI2MTksNyBA
QCBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAgICAgICAgIHJldHVybiBp
Y29uOwogICAgIH0KIAotICAgIHJldHVybiBJY29uOjpjcmVhdGVJY29uRm9yVVRJKCJwdWJsaWMu
ZGF0YSIpOworICAgIHJldHVybiBJY29uOjpjcmVhdGVJY29uRm9yVVRJKCJwdWJsaWMuZGF0YSJf
cyk7CiB9CiAKIFJldGFpblB0cjxOU0ltYWdlPiBSZW5kZXJUaGVtZU1hYzo6aWNvbkZvckF0dGFj
aG1lbnQoY29uc3QgU3RyaW5nJiBmaWxlTmFtZSwgY29uc3QgU3RyaW5nJiBhdHRhY2htZW50VHlw
ZSwgY29uc3QgU3RyaW5nJiB0aXRsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGVDb25zdGFudHMuY3BwCmluZGV4IDkyYmM2YTgxMmExMThh
NTE5ZjBiNDZjOTRmOTcyZTMyYjNhNWVlNTYuLjRjNTJjNjcxYmRiY2U2NGM5M2VjYzI0ZjU4MzAx
NTJjZmYwNTA2ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9S
ZW5kZXJTdHlsZUNvbnN0YW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmNwcApAQCAtNjcxLDcgKzY3MSw3IEBAIFRleHRTdHJl
YW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIExpc3RTdHlsZVBvc2l0aW9uIHBvc2l0aW9u
KQogCiBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBMaXN0U3R5bGVUeXBl
IHN0eWxlVHlwZSkKIHsKLSAgICByZXR1cm4gdHMgPDwgZ2V0VmFsdWVOYW1lKHRvQ1NTVmFsdWVJ
RChzdHlsZVR5cGUpKTsKKyAgICByZXR1cm4gdHMgPDwgZ2V0VmFsdWVOYW1lKHRvQ1NTVmFsdWVJ
RChzdHlsZVR5cGUpKS5jaGFyYWN0ZXJzKCk7CiB9CiAKIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwo
VGV4dFN0cmVhbSYgdHMsIE1hcnF1ZWVCZWhhdmlvciBtYXJxdWVlQmVoYXZpb3IpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyRWxlbWVudC5oIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuaAppbmRleCAxYWNkMmFlOTVhMTU5NGU5ZjMzNzlkMmU5
MzlmOTE2ZGQxNTA0NmZkLi4wMGM3NjEwYTEwY2ViYTQ1MzQyNGRhNzk0MDk2ZTFhNmZkMzM1Mjk3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyRWxlbWVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmgKQEAgLTY4LDEwICs2OCwxMCBA
QCBwcml2YXRlOgogICAgIFByb3BlcnR5UmVnaXN0cnkgbV9wcm9wZXJ0eVJlZ2lzdHJ5IHsgKnRo
aXMgfTsKICAgICBSZWY8U1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbj4gbV9maWx0ZXJVbml0cyB7IFNW
R0FuaW1hdGVkRW51bWVyYXRpb246OmNyZWF0ZSh0aGlzLCBTVkdVbml0VHlwZXM6OlNWR19VTklU
X1RZUEVfT0JKRUNUQk9VTkRJTkdCT1gpIH07CiAgICAgUmVmPFNWR0FuaW1hdGVkRW51bWVyYXRp
b24+IG1fcHJpbWl0aXZlVW5pdHMgeyBTVkdBbmltYXRlZEVudW1lcmF0aW9uOjpjcmVhdGUodGhp
cywgU1ZHVW5pdFR5cGVzOjpTVkdfVU5JVF9UWVBFX1VTRVJTUEFDRU9OVVNFKSB9OwotICAgIFJl
ZjxTVkdBbmltYXRlZExlbmd0aD4gbV94IHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlz
LCBTVkdMZW5ndGhNb2RlOjpXaWR0aCwgIi0xMCUiKSB9OwotICAgIFJlZjxTVkdBbmltYXRlZExl
bmd0aD4gbV95IHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2Rl
OjpIZWlnaHQsICItMTAlIikgfTsKLSAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1fd2lkdGgg
eyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OldpZHRoLCAi
MTIwJSIpIH07Ci0gICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX2hlaWdodCB7IFNWR0FuaW1h
dGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6SGVpZ2h0LCAiMTIwJSIpIH07
CisgICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX3ggeyBTVkdBbmltYXRlZExlbmd0aDo6Y3Jl
YXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OldpZHRoLCAiLTEwJSJfcykgfTsKKyAgICBSZWY8U1ZH
QW5pbWF0ZWRMZW5ndGg+IG1feSB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZH
TGVuZ3RoTW9kZTo6SGVpZ2h0LCAiLTEwJSJfcykgfTsKKyAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5n
dGg+IG1fd2lkdGggeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1v
ZGU6OldpZHRoLCAiMTIwJSJfcykgfTsKKyAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1faGVp
Z2h0IHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpIZWln
aHQsICIxMjAlIl9zKSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRl
cy5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmli
dXRlcy5oCmluZGV4IDMxMDNjYzZhYzIzM2UwZmQzYjJmYjFlOTc5MDQ5YTI4YjdiNmY4YmIuLjc4
ZTJhYTJjMWU4MTRlNjk4ZWQ0NDRlZWM3N2Y5YjIwNzZlM2Y5NTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVz
LmgKQEAgLTc1LDEwICs3NSwxMCBAQCBwcml2YXRlOgogCiAgICAgLy8gU3BlYzogSWYgdGhlIHgv
eSBhdHRyaWJ1dGUgaXMgbm90IHNwZWNpZmllZCwgdGhlIGVmZmVjdCBpcyBhcyBpZiBhIHZhbHVl
IG9mICIwJSIgd2VyZSBzcGVjaWZpZWQuCiAgICAgLy8gU3BlYzogSWYgdGhlIHdpZHRoL2hlaWdo
dCBhdHRyaWJ1dGUgaXMgbm90IHNwZWNpZmllZCwgdGhlIGVmZmVjdCBpcyBhcyBpZiBhIHZhbHVl
IG9mICIxMDAlIiB3ZXJlIHNwZWNpZmllZC4KLSAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1f
eCB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6V2lkdGgs
ICIwJSIpIH07Ci0gICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX3kgeyBTVkdBbmltYXRlZExl
bmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OkhlaWdodCwgIjAlIikgfTsKLSAgICBS
ZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1fd2lkdGggeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRl
KHRoaXMsIFNWR0xlbmd0aE1vZGU6OldpZHRoLCAiMTAwJSIpIH07Ci0gICAgUmVmPFNWR0FuaW1h
dGVkTGVuZ3RoPiBtX2hlaWdodCB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZH
TGVuZ3RoTW9kZTo6SGVpZ2h0LCAiMTAwJSIpIH07CisgICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3Ro
PiBtX3ggeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6Oldp
ZHRoLCAiMCUiX3MpIH07CisgICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX3kgeyBTVkdBbmlt
YXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OkhlaWdodCwgIjAlIl9zKSB9
OworICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV93aWR0aCB7IFNWR0FuaW1hdGVkTGVuZ3Ro
OjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6V2lkdGgsICIxMDAlIl9zKSB9OworICAgIFJl
ZjxTVkdBbmltYXRlZExlbmd0aD4gbV9oZWlnaHQgeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRl
KHRoaXMsIFNWR0xlbmd0aE1vZGU6OkhlaWdodCwgIjEwMCUiX3MpIH07CiAgICAgUmVmPFNWR0Fu
aW1hdGVkU3RyaW5nPiBtX3Jlc3VsdCB7IFNWR0FuaW1hdGVkU3RyaW5nOjpjcmVhdGUodGhpcykg
fTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lYXJHcmFkaWVu
dEVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQu
aAppbmRleCBhZWZlNjRjZTE0Njc2Nzg0YzBkMWE5MjRjZTNkZmVhZDdiYWNjMzczLi5kZjIwYmQw
NTlmYWM3M2IyM2Q3NjllODljOTJkZWYwZmJlYzk3OGFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5oCkBAIC02MSw3ICs2MSw3IEBAIHByaXZhdGU6
CiAgICAgUHJvcGVydHlSZWdpc3RyeSBtX3Byb3BlcnR5UmVnaXN0cnkgeyAqdGhpcyB9OwogICAg
IFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV94MSB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUo
dGhpcywgU1ZHTGVuZ3RoTW9kZTo6V2lkdGgpIH07CiAgICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3Ro
PiBtX3kxIHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpI
ZWlnaHQpIH07Ci0gICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX3gyIHsgU1ZHQW5pbWF0ZWRM
ZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpXaWR0aCwgIjEwMCUiKSB9OworICAg
IFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV94MiB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUo
dGhpcywgU1ZHTGVuZ3RoTW9kZTo6V2lkdGgsICIxMDAlIl9zKSB9OwogICAgIFJlZjxTVkdBbmlt
YXRlZExlbmd0aD4gbV95MiB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVu
Z3RoTW9kZTo6SGVpZ2h0KSB9OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR01hcmtlckVsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJrZXJFbGVtZW50
LmgKaW5kZXggNWExMzZlM2VmNDVhNTdhNTFjOTJmZjc2NTliYTZhZjc2MmYyYWU5My4uZTFmN2Vl
OWFjNDcxYWE0ZjY4MGZiNTRjMjQzYWZkMDc3MzcyNzVkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
TWFya2VyRWxlbWVudC5oCkBAIC04OSw4ICs4OSw4IEBAIHByaXZhdGU6CiAgICAgUHJvcGVydHlS
ZWdpc3RyeSBtX3Byb3BlcnR5UmVnaXN0cnkgeyAqdGhpcyB9OwogICAgIFJlZjxTVkdBbmltYXRl
ZExlbmd0aD4gbV9yZWZYIHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5n
dGhNb2RlOjpXaWR0aCkgfTsKICAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1fcmVmWSB7IFNW
R0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6SGVpZ2h0KSB9Owot
ICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV9tYXJrZXJXaWR0aCB7IFNWR0FuaW1hdGVkTGVu
Z3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6V2lkdGgsICIzIikgfTsKLSAgICBSZWY8
U1ZHQW5pbWF0ZWRMZW5ndGg+IG1fbWFya2VySGVpZ2h0IHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNy
ZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpIZWlnaHQsICIzIikgfTsKKyAgICBSZWY8U1ZHQW5p
bWF0ZWRMZW5ndGg+IG1fbWFya2VyV2lkdGggeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRo
aXMsIFNWR0xlbmd0aE1vZGU6OldpZHRoLCAiMyJfcykgfTsKKyAgICBSZWY8U1ZHQW5pbWF0ZWRM
ZW5ndGg+IG1fbWFya2VySGVpZ2h0IHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBT
VkdMZW5ndGhNb2RlOjpIZWlnaHQsICIzIl9zKSB9OwogICAgIFJlZjxTVkdBbmltYXRlZEVudW1l
cmF0aW9uPiBtX21hcmtlclVuaXRzIHsgU1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbjo6Y3JlYXRlKHRo
aXMsIFNWR01hcmtlclVuaXRzU3Ryb2tlV2lkdGgpIH07CiAgICAgUmVmPFNWR0FuaW1hdGVkQW5n
bGU+IG1fb3JpZW50QW5nbGUgeyBTVkdBbmltYXRlZEFuZ2xlOjpjcmVhdGUodGhpcykgfTsKICAg
ICBSZWY8U1ZHQW5pbWF0ZWRPcmllbnRUeXBlPiBtX29yaWVudFR5cGUgeyBTVkdBbmltYXRlZE9y
aWVudFR5cGU6OmNyZWF0ZSh0aGlzLCBTVkdNYXJrZXJPcmllbnRBbmdsZSkgfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXNrRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR01hc2tFbGVtZW50LmgKaW5kZXggNDkwZGMyMjFhYjI0NGEzZWY1ZmRkZDI4NWRmMzdh
NmU0NjAwMzQyZC4uZGJkMDQyZDBkM2FmODEyMGUwMGY1OTliOTViMDFkMTEzOGNlMjFkZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmgKQEAgLTYzLDEwICs2MywxMCBAQCBwcml2YXRl
OgogICAgIGJvb2wgc2VsZkhhc1JlbGF0aXZlTGVuZ3RocygpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IHRydWU7IH0KIAogICAgIFByb3BlcnR5UmVnaXN0cnkgbV9wcm9wZXJ0eVJlZ2lzdHJ5IHsgKnRo
aXMgfTsKLSAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1feCB7IFNWR0FuaW1hdGVkTGVuZ3Ro
OjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6V2lkdGgsICItMTAlIikgfTsKLSAgICBSZWY8
U1ZHQW5pbWF0ZWRMZW5ndGg+IG1feSB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywg
U1ZHTGVuZ3RoTW9kZTo6SGVpZ2h0LCAiLTEwJSIpIH07Ci0gICAgUmVmPFNWR0FuaW1hdGVkTGVu
Z3RoPiBtX3dpZHRoIHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhN
b2RlOjpXaWR0aCwgIjEyMCUiKSB9OwotICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV9oZWln
aHQgeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OkhlaWdo
dCwgIjEyMCUiKSB9OworICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV94IHsgU1ZHQW5pbWF0
ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpXaWR0aCwgIi0xMCUiX3MpIH07
CisgICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX3kgeyBTVkdBbmltYXRlZExlbmd0aDo6Y3Jl
YXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OkhlaWdodCwgIi0xMCUiX3MpIH07CisgICAgUmVmPFNW
R0FuaW1hdGVkTGVuZ3RoPiBtX3dpZHRoIHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlz
LCBTVkdMZW5ndGhNb2RlOjpXaWR0aCwgIjEyMCUiX3MpIH07CisgICAgUmVmPFNWR0FuaW1hdGVk
TGVuZ3RoPiBtX2hlaWdodCB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVu
Z3RoTW9kZTo6SGVpZ2h0LCAiMTIwJSJfcykgfTsKICAgICBSZWY8U1ZHQW5pbWF0ZWRFbnVtZXJh
dGlvbj4gbV9tYXNrVW5pdHMgeyBTVkdBbmltYXRlZEVudW1lcmF0aW9uOjpjcmVhdGUodGhpcywg
U1ZHVW5pdFR5cGVzOjpTVkdfVU5JVF9UWVBFX09CSkVDVEJPVU5ESU5HQk9YKSB9OwogICAgIFJl
ZjxTVkdBbmltYXRlZEVudW1lcmF0aW9uPiBtX21hc2tDb250ZW50VW5pdHMgeyBTVkdBbmltYXRl
ZEVudW1lcmF0aW9uOjpjcmVhdGUodGhpcywgU1ZHVW5pdFR5cGVzOjpTVkdfVU5JVF9UWVBFX1VT
RVJTUEFDRU9OVVNFKSB9OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdQ
YXRoU2VnSW1wbC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdJbXBsLmgKaW5kZXgg
YTYzNjE1NDI5NGZlYTNhNWIwNWJmOWZlOGYyZjkwYzE4ZWExMDgzNC4uMzRmMjNjNTE1Zjk0Yjkz
OTE3MGYzYTVjZTlhZThmYjUyODg2NjE5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1BhdGhTZWdJbXBsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhTZWdJbXBs
LmgKQEAgLTM1LDcgKzM1LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB1c2luZyBTVkdQYXRo
U2VnOjpTVkdQYXRoU2VnOwogICAgIHVuc2lnbmVkIHNob3J0IHBhdGhTZWdUeXBlKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gUEFUSFNFR19DTE9TRVBBVEg7IH0KLSAgICBTdHJpbmcgcGF0aFNlZ1R5
cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJaIjsgfQorICAgIFN0cmluZyBwYXRo
U2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIloiX3M7IH0KICAgICBSZWY8
U1ZHUGF0aFNlZz4gY2xvbmUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBhZG9wdFJlZigqbmV3IFNW
R1BhdGhTZWdDbG9zZVBhdGgoKSk7IH0KIH07CiAKQEAgLTQ1LDcgKzQ1LDcgQEAgcHVibGljOgog
cHJpdmF0ZToKICAgICB1c2luZyBTVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbDo6U1ZHUGF0aFNl
Z0xpbmV0b0hvcml6b250YWw7CiAgICAgdW5zaWduZWQgc2hvcnQgcGF0aFNlZ1R5cGUoKSBjb25z
dCBmaW5hbCB7IHJldHVybiBQQVRIU0VHX0xJTkVUT19IT1JJWk9OVEFMX0FCUzsgfQotICAgIFN0
cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIkgiOyB9Cisg
ICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiSCJf
czsgfQogICAgIFJlZjxTVkdQYXRoU2VnPiBjbG9uZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFNW
R1BhdGhTZWdWYWx1ZTo6Y2xvbmU8U1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWxBYnM+KCk7IH0K
IH07CiAKQEAgLTU1LDcgKzU1LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB1c2luZyBTVkdQ
YXRoU2VnTGluZXRvSG9yaXpvbnRhbDo6U1ZHUGF0aFNlZ0xpbmV0b0hvcml6b250YWw7CiAgICAg
dW5zaWduZWQgc2hvcnQgcGF0aFNlZ1R5cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBQQVRIU0VH
X0xJTkVUT19IT1JJWk9OVEFMX1JFTDsgfQotICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVy
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gImgiOyB9CisgICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNM
ZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiaCJfczsgfQogICAgIFJlZjxTVkdQYXRoU2Vn
PiBjbG9uZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFNWR1BhdGhTZWdWYWx1ZTo6Y2xvbmU8U1ZH
UGF0aFNlZ0xpbmV0b0hvcml6b250YWxSZWw+KCk7IH0KIH07CiAKQEAgLTY1LDcgKzY1LDcgQEAg
cHVibGljOgogcHJpdmF0ZToKICAgICB1c2luZyBTVkdQYXRoU2VnTGluZXRvVmVydGljYWw6OlNW
R1BhdGhTZWdMaW5ldG9WZXJ0aWNhbDsKICAgICB1bnNpZ25lZCBzaG9ydCBwYXRoU2VnVHlwZSgp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIFBBVEhTRUdfTElORVRPX1ZFUlRJQ0FMX0FCUzsgfQotICAg
IFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIlYiOyB9
CisgICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAi
ViJfczsgfQogICAgIFJlZjxTVkdQYXRoU2VnPiBjbG9uZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IFNWR1BhdGhTZWdWYWx1ZTo6Y2xvbmU8U1ZHUGF0aFNlZ0xpbmV0b1ZlcnRpY2FsQWJzPigpOyB9
CiB9OwogCkBAIC03NSw3ICs3NSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdXNpbmcgU1ZH
UGF0aFNlZ0xpbmV0b1ZlcnRpY2FsOjpTVkdQYXRoU2VnTGluZXRvVmVydGljYWw7CiAgICAgdW5z
aWduZWQgc2hvcnQgcGF0aFNlZ1R5cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBQQVRIU0VHX0xJ
TkVUT19WRVJUSUNBTF9SRUw7IH0KLSAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuICJ2IjsgfQorICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVy
KCkgY29uc3QgZmluYWwgeyByZXR1cm4gInYiX3M7IH0KICAgICBSZWY8U1ZHUGF0aFNlZz4gY2xv
bmUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBTVkdQYXRoU2VnVmFsdWU6OmNsb25lPFNWR1BhdGhT
ZWdMaW5ldG9WZXJ0aWNhbFJlbD4oKTsgfQogfTsKIApAQCAtODUsNyArODUsNyBAQCBwdWJsaWM6
CiBwcml2YXRlOgogICAgIHVzaW5nIFNWR1BhdGhTZWdTaW5nbGVDb29yZGluYXRlOjpTVkdQYXRo
U2VnU2luZ2xlQ29vcmRpbmF0ZTsKICAgICB1bnNpZ25lZCBzaG9ydCBwYXRoU2VnVHlwZSgpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIFBBVEhTRUdfTU9WRVRPX0FCUzsgfQotICAgIFN0cmluZyBwYXRo
U2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIk0iOyB9CisgICAgU3RyaW5n
IHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiTSJfczsgfQogICAg
IFJlZjxTVkdQYXRoU2VnPiBjbG9uZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFNWR1BhdGhTZWdW
YWx1ZTo6Y2xvbmU8U1ZHUGF0aFNlZ01vdmV0b0Ficz4oKTsgfQogfTsKIApAQCAtOTUsNyArOTUs
NyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHVzaW5nIFNWR1BhdGhTZWdTaW5nbGVDb29yZGlu
YXRlOjpTVkdQYXRoU2VnU2luZ2xlQ29vcmRpbmF0ZTsKICAgICB1bnNpZ25lZCBzaG9ydCBwYXRo
U2VnVHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFBBVEhTRUdfTU9WRVRPX1JFTDsgfQotICAg
IFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIm0iOyB9
CisgICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAi
bSJfczsgfQogICAgIFJlZjxTVkdQYXRoU2VnPiBjbG9uZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IFNWR1BhdGhTZWdWYWx1ZTo6Y2xvbmU8U1ZHUGF0aFNlZ01vdmV0b1JlbD4oKTsgfQogfTsKIApA
QCAtMTA1LDcgKzEwNSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdXNpbmcgU1ZHUGF0aFNl
Z1NpbmdsZUNvb3JkaW5hdGU6OlNWR1BhdGhTZWdTaW5nbGVDb29yZGluYXRlOwogICAgIHVuc2ln
bmVkIHNob3J0IHBhdGhTZWdUeXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gUEFUSFNFR19MSU5F
VE9fQUJTOyB9Ci0gICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7
IHJldHVybiAiTCI7IH0KKyAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuICJMIl9zOyB9CiAgICAgUmVmPFNWR1BhdGhTZWc+IGNsb25lKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gU1ZHUGF0aFNlZ1ZhbHVlOjpjbG9uZTxTVkdQYXRoU2VnTGluZXRvQWJz
PigpOyB9CiB9OwogCkBAIC0xMTUsNyArMTE1LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB1
c2luZyBTVkdQYXRoU2VnU2luZ2xlQ29vcmRpbmF0ZTo6U1ZHUGF0aFNlZ1NpbmdsZUNvb3JkaW5h
dGU7CiAgICAgdW5zaWduZWQgc2hvcnQgcGF0aFNlZ1R5cGUoKSBjb25zdCBmaW5hbCB7IHJldHVy
biBQQVRIU0VHX0xJTkVUT19SRUw7IH0KLSAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuICJsIjsgfQorICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0
dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gImwiX3M7IH0KICAgICBSZWY8U1ZHUGF0aFNlZz4g
Y2xvbmUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBTVkdQYXRoU2VnVmFsdWU6OmNsb25lPFNWR1Bh
dGhTZWdMaW5ldG9SZWw+KCk7IH0KIH07CiAKQEAgLTEyNSw3ICsxMjUsNyBAQCBwdWJsaWM6CiBw
cml2YXRlOgogICAgIHVzaW5nIFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljOjpTVkdQYXRoU2Vn
Q3VydmV0b1F1YWRyYXRpYzsKICAgICB1bnNpZ25lZCBzaG9ydCBwYXRoU2VnVHlwZSgpIGNvbnN0
IGZpbmFsIHsgcmV0dXJuIFBBVEhTRUdfQ1VSVkVUT19RVUFEUkFUSUNfQUJTOyB9Ci0gICAgU3Ry
aW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiUSI7IH0KKyAg
ICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJRIl9z
OyB9CiAgICAgUmVmPFNWR1BhdGhTZWc+IGNsb25lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gU1ZH
UGF0aFNlZ1ZhbHVlOjpjbG9uZTxTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY0Ficz4oKTsgfQog
fTsKIApAQCAtMTM1LDcgKzEzNSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdXNpbmcgU1ZH
UGF0aFNlZ0N1cnZldG9RdWFkcmF0aWM6OlNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljOwogICAg
IHVuc2lnbmVkIHNob3J0IHBhdGhTZWdUeXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gUEFUSFNF
R19DVVJWRVRPX1FVQURSQVRJQ19SRUw7IH0KLSAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRl
cigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJxIjsgfQorICAgIFN0cmluZyBwYXRoU2VnVHlwZUFz
TGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gInEiX3M7IH0KICAgICBSZWY8U1ZHUGF0aFNl
Zz4gY2xvbmUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBTVkdQYXRoU2VnVmFsdWU6OmNsb25lPFNW
R1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljUmVsPigpOyB9CiB9OwogCkBAIC0xNDUsNyArMTQ1LDcg
QEAgcHVibGljOgogcHJpdmF0ZToKICAgICB1c2luZyBTVkdQYXRoU2VnQ3VydmV0b0N1YmljOjpT
VkdQYXRoU2VnQ3VydmV0b0N1YmljOwogICAgIHVuc2lnbmVkIHNob3J0IHBhdGhTZWdUeXBlKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gUEFUSFNFR19DVVJWRVRPX0NVQklDX0FCUzsgfQotICAgIFN0
cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIkMiOyB9Cisg
ICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiQyJf
czsgfQogICAgIFJlZjxTVkdQYXRoU2VnPiBjbG9uZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFNW
R1BhdGhTZWdWYWx1ZTo6Y2xvbmU8U1ZHUGF0aFNlZ0N1cnZldG9DdWJpY0Ficz4oKTsgfQogfTsK
IApAQCAtMTU1LDcgKzE1NSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdXNpbmcgU1ZHUGF0
aFNlZ0N1cnZldG9DdWJpYzo6U1ZHUGF0aFNlZ0N1cnZldG9DdWJpYzsKICAgICB1bnNpZ25lZCBz
aG9ydCBwYXRoU2VnVHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFBBVEhTRUdfQ1VSVkVUT19D
VUJJQ19SRUw7IH0KLSAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuICJjIjsgfQorICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gImMiX3M7IH0KICAgICBSZWY8U1ZHUGF0aFNlZz4gY2xvbmUoKSBjb25z
dCBmaW5hbCB7IHJldHVybiBTVkdQYXRoU2VnVmFsdWU6OmNsb25lPFNWR1BhdGhTZWdDdXJ2ZXRv
Q3ViaWNSZWw+KCk7IH0KIH07CiAKQEAgLTE2NSw3ICsxNjUsNyBAQCBwdWJsaWM6CiBwcml2YXRl
OgogICAgIHVzaW5nIFNWR1BhdGhTZWdBcmM6OlNWR1BhdGhTZWdBcmM7CiAgICAgdW5zaWduZWQg
c2hvcnQgcGF0aFNlZ1R5cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBQQVRIU0VHX0FSQ19BQlM7
IH0KLSAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
ICJBIjsgfQorICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gIkEiX3M7IH0KICAgICBSZWY8U1ZHUGF0aFNlZz4gY2xvbmUoKSBjb25zdCBmaW5hbCB7
IHJldHVybiBTVkdQYXRoU2VnVmFsdWU6OmNsb25lPFNWR1BhdGhTZWdBcmNBYnM+KCk7IH0KIH07
CiAKQEAgLTE3NSw3ICsxNzUsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHVzaW5nIFNWR1Bh
dGhTZWdBcmM6OlNWR1BhdGhTZWdBcmM7CiAgICAgdW5zaWduZWQgc2hvcnQgcGF0aFNlZ1R5cGUo
KSBjb25zdCBmaW5hbCB7IHJldHVybiBQQVRIU0VHX0FSQ19SRUw7IH0KLSAgICBTdHJpbmcgcGF0
aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJhIjsgfQorICAgIFN0cmlu
ZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gImEiX3M7IH0KICAg
ICBSZWY8U1ZHUGF0aFNlZz4gY2xvbmUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBTVkdQYXRoU2Vn
VmFsdWU6OmNsb25lPFNWR1BhdGhTZWdBcmNSZWw+KCk7IH0KIH07CiAKQEAgLTE4NSw3ICsxODUs
NyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHVzaW5nIFNWR1BhdGhTZWdTaW5nbGVDb29yZGlu
YXRlOjpTVkdQYXRoU2VnU2luZ2xlQ29vcmRpbmF0ZTsKICAgICB1bnNpZ25lZCBzaG9ydCBwYXRo
U2VnVHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFBBVEhTRUdfQ1VSVkVUT19RVUFEUkFUSUNf
U01PT1RIX0FCUzsgfQotICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gIlQiOyB9CisgICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25z
dCBmaW5hbCB7IHJldHVybiAiVCJfczsgfQogICAgIFJlZjxTVkdQYXRoU2VnPiBjbG9uZSgpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIFNWR1BhdGhTZWdWYWx1ZTo6Y2xvbmU8U1ZHUGF0aFNlZ0N1cnZl
dG9RdWFkcmF0aWNTbW9vdGhBYnM+KCk7IH0KIH07CiAKQEAgLTE5NSw3ICsxOTUsNyBAQCBwdWJs
aWM6CiBwcml2YXRlOgogICAgIHVzaW5nIFNWR1BhdGhTZWdTaW5nbGVDb29yZGluYXRlOjpTVkdQ
YXRoU2VnU2luZ2xlQ29vcmRpbmF0ZTsKICAgICB1bnNpZ25lZCBzaG9ydCBwYXRoU2VnVHlwZSgp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIFBBVEhTRUdfQ1VSVkVUT19RVUFEUkFUSUNfU01PT1RIX1JF
TDsgfQotICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1
cm4gInQiOyB9CisgICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7
IHJldHVybiAidCJfczsgfQogICAgIFJlZjxTVkdQYXRoU2VnPiBjbG9uZSgpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIFNWR1BhdGhTZWdWYWx1ZTo6Y2xvbmU8U1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0
aWNTbW9vdGhSZWw+KCk7IH0KIH07CiAKQEAgLTIwNSw3ICsyMDUsNyBAQCBwdWJsaWM6CiBwcml2
YXRlOgogICAgIHVzaW5nIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGg6OlNWR1BhdGhTZWdD
dXJ2ZXRvQ3ViaWNTbW9vdGg7CiAgICAgdW5zaWduZWQgc2hvcnQgcGF0aFNlZ1R5cGUoKSBjb25z
dCBmaW5hbCB7IHJldHVybiBQQVRIU0VHX0NVUlZFVE9fQ1VCSUNfU01PT1RIX0FCUzsgfQotICAg
IFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIlMiOyB9
CisgICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAi
UyJfczsgfQogICAgIFJlZjxTVkdQYXRoU2VnPiBjbG9uZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IFNWR1BhdGhTZWdWYWx1ZTo6Y2xvbmU8U1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aEFicz4o
KTsgfQogfTsKIApAQCAtMjE1LDcgKzIxNSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdXNp
bmcgU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aDo6U1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Nt
b290aDsKICAgICB1bnNpZ25lZCBzaG9ydCBwYXRoU2VnVHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIFBBVEhTRUdfQ1VSVkVUT19DVUJJQ19TTU9PVEhfUkVMOyB9Ci0gICAgU3RyaW5nIHBhdGhT
ZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAicyI7IH0KKyAgICBTdHJpbmcg
cGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJzIl9zOyB9CiAgICAg
UmVmPFNWR1BhdGhTZWc+IGNsb25lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gU1ZHUGF0aFNlZ1Zh
bHVlOjpjbG9uZTxTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoUmVsPigpOyB9CiB9OwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmFkaWFsR3JhZGllbnRFbGVtZW50LmgKaW5kZXggODRm
MTE1ODhmM2UyODFlNmY2ZTA3YTYwOWQwODlhOTc4NzA4YTM5ZS4uMjQxOTdmNzQ1NzcxNjU3YzE3
ZDhkMDdiMmNkMjRlNTRlMzRjODA4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1JhZGlhbEdyYWRpZW50RWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRp
YWxHcmFkaWVudEVsZW1lbnQuaApAQCAtNjMsMTIgKzYzLDEyIEBAIHByaXZhdGU6CiAgICAgYm9v
bCBzZWxmSGFzUmVsYXRpdmVMZW5ndGhzKCkgY29uc3Qgb3ZlcnJpZGU7CiAKICAgICBQcm9wZXJ0
eVJlZ2lzdHJ5IG1fcHJvcGVydHlSZWdpc3RyeSB7ICp0aGlzIH07Ci0gICAgUmVmPFNWR0FuaW1h
dGVkTGVuZ3RoPiBtX2N4IHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5n
dGhNb2RlOjpXaWR0aCwgIjUwJSIpIH07Ci0gICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX2N5
IHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpIZWlnaHQs
ICI1MCUiKSB9OwotICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV9yIHsgU1ZHQW5pbWF0ZWRM
ZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpPdGhlciwgIjUwJSIpIH07CisgICAg
UmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX2N4IHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0
aGlzLCBTVkdMZW5ndGhNb2RlOjpXaWR0aCwgIjUwJSJfcykgfTsKKyAgICBSZWY8U1ZHQW5pbWF0
ZWRMZW5ndGg+IG1fY3kgeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0
aE1vZGU6OkhlaWdodCwgIjUwJSJfcykgfTsKKyAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1f
ciB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6T3RoZXIs
ICI1MCUiX3MpIH07CiAgICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX2Z4IHsgU1ZHQW5pbWF0
ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpXaWR0aCkgfTsKICAgICBSZWY8
U1ZHQW5pbWF0ZWRMZW5ndGg+IG1fZnkgeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMs
IFNWR0xlbmd0aE1vZGU6OkhlaWdodCkgfTsKLSAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1f
ZnIgeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6Ok90aGVy
LCAiMCUiKSB9OworICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV9mciB7IFNWR0FuaW1hdGVk
TGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6T3RoZXIsICIwJSJfcykgfTsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2
Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5VHJhaXRzLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJv
cGVydGllcy9TVkdQcm9wZXJ0eVRyYWl0cy5oCmluZGV4IDQzOTk3MDQzMGY2NTZhOTg2NWU2ZTlj
OWQ5ZWY1ZWEyNGJiYTUzMDQuLjg0NWFiNGFiZmZiNzg5NTg0ODY5ZjlmZjFhYTVlODMyMDEyODBh
NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0aWVzL1NWR1Byb3BlcnR5
VHJhaXRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlU
cmFpdHMuaApAQCAtMzksNyArMzksNyBAQCBzdHJ1Y3QgU1ZHUHJvcGVydHlUcmFpdHM8Ym9vbD4g
ewogICAgIHN0YXRpYyBib29sIGluaXRpYWxWYWx1ZSgpIHsgcmV0dXJuIGZhbHNlOyB9CiAgICAg
c3RhdGljIGJvb2wgZnJvbVN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykgeyByZXR1cm4gc3Ry
aW5nID09ICJ0cnVlIjsgfQogICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPGJvb2w+IHBhcnNlKGNv
bnN0IFF1YWxpZmllZE5hbWUmLCBjb25zdCBTdHJpbmcmKSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OyByZXR1cm4gaW5pdGlhbFZhbHVlKCk7IH0KLSAgICBzdGF0aWMgU3RyaW5nIHRvU3RyaW5nKGJv
b2wgdHlwZSkgeyByZXR1cm4gdHlwZSA/ICJ0cnVlIiA6ICJmYWxzZSI7IH0KKyAgICBzdGF0aWMg
U3RyaW5nIHRvU3RyaW5nKGJvb2wgdHlwZSkgeyByZXR1cm4gdHlwZSA/ICJ0cnVlIl9zIDogImZh
bHNlIl9zOyB9CiB9OwogCiB0ZW1wbGF0ZTw+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL01vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5ncy5oCmluZGV4IDE4MWVmZjViNWI4ZWEwMDE4ZTlm
M2IwYzI0M2FjN2Q0ZTNlOWRjYTcuLmYzYzk3ZjNmOGUxM2FhMGYxMjdkZWU4NDM5ZDZiNWMwZDBl
M2MxZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0NvbnRlbnRGaWx0
ZXJTZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvTW9ja0NvbnRlbnRGaWx0
ZXJTZXR0aW5ncy5oCkBAIC00OCw3ICs0OCw3IEBAIHB1YmxpYzoKIAogICAgIFdFQkNPUkVfVEVT
VFNVUFBPUlRfRVhQT1JUIHN0YXRpYyBNb2NrQ29udGVudEZpbHRlclNldHRpbmdzJiBzaW5nbGV0
b24oKTsKICAgICBXRUJDT1JFX1RFU1RTVVBQT1JUX0VYUE9SVCBzdGF0aWMgdm9pZCByZXNldCgp
OwotICAgIHN0YXRpYyBjb25zdCBjaGFyKiB1bmJsb2NrVVJMSG9zdCgpIHsgcmV0dXJuICJtb2Nr
LXVuYmxvY2siOyB9CisgICAgc3RhdGljIEFTQ0lJTGl0ZXJhbCB1bmJsb2NrVVJMSG9zdCgpIHsg
cmV0dXJuICJtb2NrLXVuYmxvY2siX3M7IH0KIAogICAgIC8vIFRyaWNrIHRoZSBnZW5lcmF0ZWQg
YmluZGluZ3MgaW50byB0aGlua2luZyB3ZSdyZSBSZWZDb3VudGVkLgogICAgIHZvaWQgcmVmKCkg
eyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhWYWx1ZS5oIGIvU291cmNl
L1dlYkNvcmUveG1sL1hQYXRoVmFsdWUuaAppbmRleCBkOTFjNzdkMTAyZDI0YWQyM2U1OTM5ODZl
MDQwYmEyNWMwOWRiMzZiLi5lYTgzZjdkMGJiMWFhZjE0YTdiYTcyMTA5NGYzYjIxOWEyMmIyM2Ix
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS94bWwvWFBhdGhWYWx1ZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3htbC9YUGF0aFZhbHVlLmgKQEAgLTQwLDcgKzQwLDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogICAgICAgICAgICAgVmFsdWUoZG91YmxlIHZhbHVlKSA6IG1fdHlwZShOdW1iZXJW
YWx1ZSksIG1fbnVtYmVyKHZhbHVlKSB7IH0KIAogICAgICAgICAgICAgVmFsdWUoY29uc3QgU3Ry
aW5nJiB2YWx1ZSkgOiBtX3R5cGUoU3RyaW5nVmFsdWUpLCBtX2RhdGEoRGF0YTo6Y3JlYXRlKHZh
bHVlKSkgeyB9Ci0gICAgICAgICAgICBWYWx1ZShjb25zdCBjaGFyKiB2YWx1ZSkgOiBtX3R5cGUo
U3RyaW5nVmFsdWUpLCBtX2RhdGEoRGF0YTo6Y3JlYXRlKHZhbHVlKSkgeyB9CisgICAgICAgICAg
ICBWYWx1ZShjb25zdCBjaGFyKiB2YWx1ZSkgOiBtX3R5cGUoU3RyaW5nVmFsdWUpLCBtX2RhdGEo
RGF0YTo6Y3JlYXRlKFN0cmluZyB7IHZhbHVlIH0pKSB7IH0KIAogICAgICAgICAgICAgZXhwbGlj
aXQgVmFsdWUoTm9kZVNldCYmIHZhbHVlKQogICAgICAgICAgICAgICAgIDogbV90eXBlKE5vZGVT
ZXRWYWx1ZSksIG1fZGF0YShEYXRhOjpjcmVhdGUoV1RGTW92ZSh2YWx1ZSkpKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUveG1sL1hTTFN0eWxlU2hlZXQuaCBiL1NvdXJjZS9XZWJDb3JlL3ht
bC9YU0xTdHlsZVNoZWV0LmgKaW5kZXggYTJiZjhlMzM0OWFiNTYzNmY1Mjc0ZTQ1MjRjMzBiYjE4
NmM2ZmRlZC4uNWZiZDZlYmE0NzlkODdlOWI3ZTgyMWFmOWVhMzJmMDMwZjQ2ODUwMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUveG1sL1hTTFN0eWxlU2hlZXQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS94bWwvWFNMU3R5bGVTaGVldC5oCkBAIC04NCw3ICs4NCw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIG1hcmtBc1Byb2Nlc3NlZCgpOwogICAgIGJvb2wgcHJvY2Vzc2VkKCkgY29uc3QgeyByZXR1
cm4gbV9wcm9jZXNzZWQ7IH0KICAgICAKLSAgICBTdHJpbmcgdHlwZSgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuICJ0ZXh0L3htbCI7IH0KKyAgICBTdHJpbmcgdHlwZSgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuICJ0ZXh0L3htbCJfczsgfQogICAgIGJvb2wgZGlzYWJsZWQoKSBjb25zdCBvdmVy
cmlkZSB7IHJldHVybiBtX2lzRGlzYWJsZWQ7IH0KICAgICB2b2lkIHNldERpc2FibGVkKGJvb2wg
Yikgb3ZlcnJpZGUgeyBtX2lzRGlzYWJsZWQgPSBiOyB9CiAgICAgTm9kZSogb3duZXJOb2RlKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9vd25lck5vZGU7IH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJHUFUvV0dTTC9QYXJzZXIuY3BwIGIvU291cmNlL1dlYkdQVS9XR1NML1BhcnNlci5jcHAK
aW5kZXggNjI1NDg3ZGUxODVmZWVjZjk0YTFkMWIzZjBiYzk4NDZlM2RiOGEwYS4uZTYyZjNlMGMw
ODdlZmExYzFiYzJkMDhiMWYyZDc4MWFhOWM1Y2M0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkdQ
VS9XR1NML1BhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkdQVS9XR1NML1BhcnNlci5jcHAKQEAg
LTIzNCw3ICsyMzQsNyBAQCBFeHBlY3RlZDxVbmlxdWVSZWY8QVNUOjpHbG9iYWxEZWNsPiwgRXJy
b3I+IFBhcnNlcjxMZXhlcj46OnBhcnNlR2xvYmFsRGVjbCgpCiAgICAgICAgIHJldHVybiB7IG1h
a2VVbmlxdWVSZWY8QVNUOjpGdW5jdGlvbkRlY2w+KFdURk1vdmUoZm4pKSB9OwogICAgIH0KICAg
ICBkZWZhdWx0OgotICAgICAgICBGQUlMKCJUcnlpbmcgdG8gcGFyc2UgYSBHbG9iYWxEZWNsLCBl
eHBlY3RlZCAndmFyJywgJ2ZuJywgb3IgJ3N0cnVjdCcuIik7CisgICAgICAgIEZBSUwoIlRyeWlu
ZyB0byBwYXJzZSBhIEdsb2JhbERlY2wsIGV4cGVjdGVkICd2YXInLCAnZm4nLCBvciAnc3RydWN0
Jy4iX3MpOwogICAgIH0KIH0KIApAQCAtMjgyLDcgKzI4Miw3IEBAIEV4cGVjdGVkPFVuaXF1ZVJl
ZjxBU1Q6OkF0dHJpYnV0ZT4sIEVycm9yPiBQYXJzZXI8TGV4ZXI+OjpwYXJzZUF0dHJpYnV0ZSgp
CiAgICAgICAgICAgICBSRVRVUk5fTk9ERV9SRUYoU3RhZ2VBdHRyaWJ1dGUsIEFTVDo6U3RhZ2VB
dHRyaWJ1dGU6OlN0YWdlOjpWZXJ0ZXgpOwogICAgICAgICBpZiAoc3RhZ2UubV9pZGVudCA9PSAi
ZnJhZ21lbnQiKQogICAgICAgICAgICAgUkVUVVJOX05PREVfUkVGKFN0YWdlQXR0cmlidXRlLCBB
U1Q6OlN0YWdlQXR0cmlidXRlOjpTdGFnZTo6RnJhZ21lbnQpOwotICAgICAgICBGQUlMKCJJbnZh
bGlkIHN0YWdlIGF0dHJpYnV0ZSwgdGhlIG9ubHkgb3B0aW9ucyBhcmUgJ2NvbXB1dGUnLCAndmVy
dGV4JywgJ2ZyYWdtZW50Jy4iKTsKKyAgICAgICAgRkFJTCgiSW52YWxpZCBzdGFnZSBhdHRyaWJ1
dGUsIHRoZSBvbmx5IG9wdGlvbnMgYXJlICdjb21wdXRlJywgJ3ZlcnRleCcsICdmcmFnbWVudCcu
Il9zKTsKICAgICB9CiAgICAgaWYgKGlkZW50Lm1faWRlbnQgPT0gImxvY2F0aW9uIikgewogICAg
ICAgICBDT05TVU1FX1RZUEUoUGFyZW5MZWZ0KTsKQEAgLTI5Nyw3ICsyOTcsNyBAQCBFeHBlY3Rl
ZDxVbmlxdWVSZWY8QVNUOjpBdHRyaWJ1dGU+LCBFcnJvcj4gUGFyc2VyPExleGVyPjo6cGFyc2VB
dHRyaWJ1dGUoKQogICAgICAgICBDT05TVU1FX1RZUEUoUGFyZW5SaWdodCk7CiAgICAgICAgIFJF
VFVSTl9OT0RFX1JFRihCdWlsdGluQXR0cmlidXRlLCBuYW1lLm1faWRlbnQpOwogICAgIH0KLSAg
ICBGQUlMKCJVbmtub3duIGF0dHJpYnV0ZSwgdGhlIG9ubHkgc3VwcG9ydGVkIGF0dHJpYnV0ZXMg
YXJlICdncm91cCcsICdiaW5kaW5nJywgJ3N0YWdlJy4iKTsKKyAgICBGQUlMKCJVbmtub3duIGF0
dHJpYnV0ZSwgdGhlIG9ubHkgc3VwcG9ydGVkIGF0dHJpYnV0ZXMgYXJlICdncm91cCcsICdiaW5k
aW5nJywgJ3N0YWdlJy4iX3MpOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBMZXhlcj4KQEAgLTM2
MCw3ICszNjAsNyBAQCBFeHBlY3RlZDxVbmlxdWVSZWY8QVNUOjpUeXBlRGVjbD4sIEVycm9yPiBQ
YXJzZXI8TGV4ZXI+OjpwYXJzZVR5cGVEZWNsKCkKICAgICAgICAgcmV0dXJuIHBhcnNlVHlwZURl
Y2xBZnRlcklkZW50aWZpZXIoV1RGTW92ZShuYW1lLm1faWRlbnQpLCBfc3RhcnRPZkVsZW1lbnRQ
b3NpdGlvbik7CiAgICAgfQogCi0gICAgRkFJTCgiVHJpZWQgcGFyc2luZyBhIHR5cGUgYW5kIGl0
IGRpZCBub3Qgc3RhcnQgd2l0aCBhbiBpZGVudGlmaWVyIik7CisgICAgRkFJTCgiVHJpZWQgcGFy
c2luZyBhIHR5cGUgYW5kIGl0IGRpZCBub3Qgc3RhcnQgd2l0aCBhbiBpZGVudGlmaWVyIl9zKTsK
IH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgTGV4ZXI+CkBAIC00NTAsNyArNDUwLDcgQEAgRXhwZWN0
ZWQ8QVNUOjpTdG9yYWdlQ2xhc3MsIEVycm9yPiBQYXJzZXI8TGV4ZXI+OjpwYXJzZVN0b3JhZ2VD
bGFzcygpCiAgICAgICAgIHJldHVybiB7IEFTVDo6U3RvcmFnZUNsYXNzOjpTdG9yYWdlIH07CiAg
ICAgfQogCi0gICAgRkFJTCgiRXhwZWN0ZWQgb25lIG9mICdmdW5jdGlvbicvJ3ByaXZhdGUnLydz
dG9yYWdlJy8ndW5pZm9ybScvJ3dvcmtncm91cCciKTsKKyAgICBGQUlMKCJFeHBlY3RlZCBvbmUg
b2YgJ2Z1bmN0aW9uJy8ncHJpdmF0ZScvJ3N0b3JhZ2UnLyd1bmlmb3JtJy8nd29ya2dyb3VwJyJf
cyk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIExleGVyPgpAQCAtNDcxLDcgKzQ3MSw3IEBAIEV4
cGVjdGVkPEFTVDo6QWNjZXNzTW9kZSwgRXJyb3I+IFBhcnNlcjxMZXhlcj46OnBhcnNlQWNjZXNz
TW9kZSgpCiAgICAgICAgIHJldHVybiB7IEFTVDo6QWNjZXNzTW9kZTo6UmVhZFdyaXRlIH07CiAg
ICAgfQogCi0gICAgRkFJTCgiRXhwZWN0ZWQgb25lIG9mICdyZWFkJy8nd3JpdGUnLydyZWFkX3dy
aXRlJyIpOworICAgIEZBSUwoIkV4cGVjdGVkIG9uZSBvZiAncmVhZCcvJ3dyaXRlJy8ncmVhZF93
cml0ZSciX3MpOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBMZXhlcj4KQEAgLTU0Nyw3ICs1NDcs
NyBAQCBFeHBlY3RlZDxVbmlxdWVSZWY8QVNUOjpTdGF0ZW1lbnQ+LCBFcnJvcj4gUGFyc2VyPExl
eGVyPjo6cGFyc2VTdGF0ZW1lbnQoKQogICAgICAgICBSRVRVUk5fTk9ERV9SRUYoQXNzaWdubWVu
dFN0YXRlbWVudCwgbGhzLm1vdmVUb1VuaXF1ZVB0cigpLCBXVEZNb3ZlKHJocykpOwogICAgIH0K
ICAgICBkZWZhdWx0OgotICAgICAgICBGQUlMKCJOb3QgYSB2YWxpZCBzdGF0ZW1lbnQiKTsKKyAg
ICAgICAgRkFJTCgiTm90IGEgdmFsaWQgc3RhdGVtZW50Il9zKTsKICAgICB9CiB9CiAKQEAgLTY5
NCw3ICs2OTQsNyBAQCBFeHBlY3RlZDxVbmlxdWVSZWY8QVNUOjpFeHByZXNzaW9uPiwgRXJyb3I+
IFBhcnNlcjxMZXhlcj46OnBhcnNlUHJpbWFyeUV4cHJlc3NpbwogICAgIGRlZmF1bHQ6CiAgICAg
ICAgIGJyZWFrOwogICAgIH0KLSAgICBGQUlMKCJFeHBlY3RlZCBvbmUgb2YgJygnLCBhIGxpdGVy
YWwsIG9yIGFuIGlkZW50aWZpZXIiKTsKKyAgICBGQUlMKCJFeHBlY3RlZCBvbmUgb2YgJygnLCBh
IGxpdGVyYWwsIG9yIGFuIGlkZW50aWZpZXIiX3MpOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBM
ZXhlcj4KQEAgLTczNCw3ICs3MzQsNyBAQCBFeHBlY3RlZDxVbmlxdWVSZWY8QVNUOjpFeHByZXNz
aW9uPiwgRXJyb3I+IFBhcnNlcjxMZXhlcj46OnBhcnNlQ29yZUxIU0V4cHJlc3NpbwogICAgICAg
ICBicmVhazsKICAgICB9CiAKLSAgICBGQUlMKCJUcmllZCB0byBwYXJzZSB0aGUgbGVmdC1oYW5k
IHNpZGUgb2YgYW4gYXNzaWdubWVudCBhbmQgZmFpbGVkIik7CisgICAgRkFJTCgiVHJpZWQgdG8g
cGFyc2UgdGhlIGxlZnQtaGFuZCBzaWRlIG9mIGFuIGFzc2lnbm1lbnQgYW5kIGZhaWxlZCJfcyk7
CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIExleGVyPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkdQ
VS9XR1NML1Rva2VuLmNwcCBiL1NvdXJjZS9XZWJHUFUvV0dTTC9Ub2tlbi5jcHAKaW5kZXggZGIz
YzBhNDNlMTAzNzJlYjk5NDFmY2YxNmQ4YjIwZWRlN2YwODkxMi4uNjczMWFhMjJjMTJhMzMwMzY4
Y2ZiMWI3NjBjOTY2ZWUxMGYxYWMxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkdQVS9XR1NML1Rv
a2VuLmNwcAorKysgYi9Tb3VyY2UvV2ViR1BVL1dHU0wvVG9rZW4uY3BwCkBAIC0zMiw4OSArMzIs
ODkgQEAgU3RyaW5nIHRvU3RyaW5nKFRva2VuVHlwZSB0eXBlKQogewogICAgIHN3aXRjaCAodHlw
ZSkgewogICAgIGNhc2UgVG9rZW5UeXBlOjpJbnZhbGlkOgotICAgICAgICByZXR1cm4gIkludmFs
aWQiOworICAgICAgICByZXR1cm4gIkludmFsaWQiX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6OkVu
ZE9mRmlsZToKLSAgICAgICAgcmV0dXJuICJFT0YiOworICAgICAgICByZXR1cm4gIkVPRiJfczsK
ICAgICBjYXNlIFRva2VuVHlwZTo6SW50ZWdlckxpdGVyYWw6Ci0gICAgICAgIHJldHVybiAiSW50
ZWdlckxpdGVyYWwiOworICAgICAgICByZXR1cm4gIkludGVnZXJMaXRlcmFsIl9zOwogICAgIGNh
c2UgVG9rZW5UeXBlOjpJbnRlZ2VyTGl0ZXJhbFNpZ25lZDoKLSAgICAgICAgcmV0dXJuICJJbnRl
Z2VyTGl0ZXJhbFNpZ25lZCI7CisgICAgICAgIHJldHVybiAiSW50ZWdlckxpdGVyYWxTaWduZWQi
X3M7CiAgICAgY2FzZSBUb2tlblR5cGU6OkludGVnZXJMaXRlcmFsVW5zaWduZWQ6Ci0gICAgICAg
IHJldHVybiAiSW50ZWdlckxpdGVyYWxVbnNpZ25lZCI7CisgICAgICAgIHJldHVybiAiSW50ZWdl
ckxpdGVyYWxVbnNpZ25lZCJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6RGVjaW1hbEZsb2F0TGl0
ZXJhbDoKLSAgICAgICAgcmV0dXJuICJEZWNpbWFsRmxvYXRMaXRlcmFsIjsKKyAgICAgICAgcmV0
dXJuICJEZWNpbWFsRmxvYXRMaXRlcmFsIl9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpIZXhGbG9h
dExpdGVyYWw6Ci0gICAgICAgIHJldHVybiAiSGV4RmxvYXRMaXRlcmFsIjsKKyAgICAgICAgcmV0
dXJuICJIZXhGbG9hdExpdGVyYWwiX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6OklkZW50aWZpZXI6
Ci0gICAgICAgIHJldHVybiAiSWRlbnRpZmllciI7CisgICAgICAgIHJldHVybiAiSWRlbnRpZmll
ciJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6UmVzZXJ2ZWRXb3JkOgotICAgICAgICByZXR1cm4g
IlJlc2VydmVkV29yZCI7CisgICAgICAgIHJldHVybiAiUmVzZXJ2ZWRXb3JkIl9zOwogICAgIGNh
c2UgVG9rZW5UeXBlOjpLZXl3b3JkU3RydWN0OgotICAgICAgICByZXR1cm4gInN0cnVjdCI7Cisg
ICAgICAgIHJldHVybiAic3RydWN0Il9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpLZXl3b3JkRm46
Ci0gICAgICAgIHJldHVybiAiZm4iOworICAgICAgICByZXR1cm4gImZuIl9zOwogICAgIGNhc2Ug
VG9rZW5UeXBlOjpLZXl3b3JkRnVuY3Rpb246Ci0gICAgICAgIHJldHVybiAiZnVuY3Rpb24iOwor
ICAgICAgICByZXR1cm4gImZ1bmN0aW9uIl9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpLZXl3b3Jk
UHJpdmF0ZToKLSAgICAgICAgcmV0dXJuICJwcml2YXRlIjsKKyAgICAgICAgcmV0dXJuICJwcml2
YXRlIl9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpLZXl3b3JkUmVhZDoKLSAgICAgICAgcmV0dXJu
ICJyZWFkIjsKKyAgICAgICAgcmV0dXJuICJyZWFkIl9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpL
ZXl3b3JkUmVhZFdyaXRlOgotICAgICAgICByZXR1cm4gInJlYWRfd3JpdGUiOworICAgICAgICBy
ZXR1cm4gInJlYWRfd3JpdGUiX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6OktleXdvcmRSZXR1cm46
Ci0gICAgICAgIHJldHVybiAicmV0dXJuIjsKKyAgICAgICAgcmV0dXJuICJyZXR1cm4iX3M7CiAg
ICAgY2FzZSBUb2tlblR5cGU6OktleXdvcmRTdG9yYWdlOgotICAgICAgICByZXR1cm4gInN0b3Jh
Z2UiOworICAgICAgICByZXR1cm4gInN0b3JhZ2UiX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6Oktl
eXdvcmRVbmlmb3JtOgotICAgICAgICByZXR1cm4gInVuaWZvcm0iOworICAgICAgICByZXR1cm4g
InVuaWZvcm0iX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6OktleXdvcmRWYXI6Ci0gICAgICAgIHJl
dHVybiAidmFyIjsKKyAgICAgICAgcmV0dXJuICJ2YXIiX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6
OktleXdvcmRXb3JrZ3JvdXA6Ci0gICAgICAgIHJldHVybiAid29ya2dyb3VwIjsKKyAgICAgICAg
cmV0dXJuICJ3b3JrZ3JvdXAiX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6OktleXdvcmRXcml0ZToK
LSAgICAgICAgcmV0dXJuICJ3cml0ZSI7CisgICAgICAgIHJldHVybiAid3JpdGUiX3M7CiAgICAg
Y2FzZSBUb2tlblR5cGU6OktleXdvcmRJMzI6Ci0gICAgICAgIHJldHVybiAiaTMyIjsKKyAgICAg
ICAgcmV0dXJuICJpMzIiX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6OktleXdvcmRVMzI6Ci0gICAg
ICAgIHJldHVybiAidTMyIjsKKyAgICAgICAgcmV0dXJuICJ1MzIiX3M7CiAgICAgY2FzZSBUb2tl
blR5cGU6OktleXdvcmRGMzI6Ci0gICAgICAgIHJldHVybiAiZjMyIjsKKyAgICAgICAgcmV0dXJu
ICJmMzIiX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6OktleXdvcmRCb29sOgotICAgICAgICByZXR1
cm4gImJvb2wiOworICAgICAgICByZXR1cm4gImJvb2wiX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6
OkxpdGVyYWxUcnVlOgotICAgICAgICByZXR1cm4gInRydWUiOworICAgICAgICByZXR1cm4gInRy
dWUiX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6OkxpdGVyYWxGYWxzZToKLSAgICAgICAgcmV0dXJu
ICJmYWxzZSI7CisgICAgICAgIHJldHVybiAiZmFsc2UiX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6
OkFycm93OgotICAgICAgICByZXR1cm4gIi0+IjsKKyAgICAgICAgcmV0dXJuICItPiJfczsKICAg
ICBjYXNlIFRva2VuVHlwZTo6QXR0cmlidXRlOgotICAgICAgICByZXR1cm4gIkAiOworICAgICAg
ICByZXR1cm4gIkAiX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6OkJyYWNrZXRMZWZ0OgotICAgICAg
ICByZXR1cm4gIlsiOworICAgICAgICByZXR1cm4gIlsiX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6
OkJyYWNrZXRSaWdodDoKLSAgICAgICAgcmV0dXJuICJdIjsKKyAgICAgICAgcmV0dXJuICJdIl9z
OwogICAgIGNhc2UgVG9rZW5UeXBlOjpCcmFjZUxlZnQ6Ci0gICAgICAgIHJldHVybiAieyI7Cisg
ICAgICAgIHJldHVybiAieyJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6QnJhY2VSaWdodDoKLSAg
ICAgICAgcmV0dXJuICJ9IjsKKyAgICAgICAgcmV0dXJuICJ9Il9zOwogICAgIGNhc2UgVG9rZW5U
eXBlOjpDb2xvbjoKLSAgICAgICAgcmV0dXJuICI6IjsKKyAgICAgICAgcmV0dXJuICI6Il9zOwog
ICAgIGNhc2UgVG9rZW5UeXBlOjpDb21tYToKLSAgICAgICAgcmV0dXJuICIsIjsKKyAgICAgICAg
cmV0dXJuICIsIl9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpFcXVhbDoKLSAgICAgICAgcmV0dXJu
ICI9IjsKKyAgICAgICAgcmV0dXJuICI9Il9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpHVDoKLSAg
ICAgICAgcmV0dXJuICI+IjsKKyAgICAgICAgcmV0dXJuICI+Il9zOwogICAgIGNhc2UgVG9rZW5U
eXBlOjpMVDoKLSAgICAgICAgcmV0dXJuICI8IjsKKyAgICAgICAgcmV0dXJuICI8Il9zOwogICAg
IGNhc2UgVG9rZW5UeXBlOjpQZXJpb2Q6Ci0gICAgICAgIHJldHVybiAiLiI7CisgICAgICAgIHJl
dHVybiAiLiJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6UGFyZW5MZWZ0OgotICAgICAgICByZXR1
cm4gIigiOworICAgICAgICByZXR1cm4gIigiX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6OlBhcmVu
UmlnaHQ6Ci0gICAgICAgIHJldHVybiAiKSI7CisgICAgICAgIHJldHVybiAiKSJfczsKICAgICBj
YXNlIFRva2VuVHlwZTo6U2VtaWNvbG9uOgotICAgICAgICByZXR1cm4gIjsiOworICAgICAgICBy
ZXR1cm4gIjsiX3M7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViR1BVL1dlYkdQ
VS9BZGFwdGVyLm1tIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvQWRhcHRlci5tbQppbmRleCAxYmJh
ZDYxYTZjZTdlMjk3NTZkZTE1NjFhYTQ2MmRlNWQxYTY4MjY4Li42MDBkMWQ2ZTdiZjBmNzdiZGQy
ZjUxOGZmOTQzNTA3ODEyNTJmYTM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9B
ZGFwdGVyLm1tCisrKyBiL1NvdXJjZS9XZWJHUFUvV2ViR1BVL0FkYXB0ZXIubW0KQEAgLTEyMyw3
ICsxMjMsNyBAQCB2b2lkIEFkYXB0ZXI6OnJlcXVlc3REZXZpY2UoY29uc3QgV0dQVURldmljZURl
c2NyaXB0b3ImIGRlc2NyaXB0b3IsIENvbXBsZXRpb25IYQogICAgICAgICByZXR1cm47CiAgICAg
fQogCi0gICAgY2FsbGJhY2soV0dQVVJlcXVlc3REZXZpY2VTdGF0dXNfU3VjY2VzcywgRGV2aWNl
OjpjcmVhdGUobV9kZXZpY2UsIGRlc2NyaXB0b3IubGFiZWwsIG1faW5zdGFuY2UpLCB7IH0pOwor
ICAgIGNhbGxiYWNrKFdHUFVSZXF1ZXN0RGV2aWNlU3RhdHVzX1N1Y2Nlc3MsIERldmljZTo6Y3Jl
YXRlKG1fZGV2aWNlLCBTdHJpbmcgeyBkZXNjcmlwdG9yLmxhYmVsIH0sIG1faW5zdGFuY2UpLCB7
IH0pOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJHUFUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJH
UFUvV2ViR1BVL0J1ZmZlci5tbSBiL1NvdXJjZS9XZWJHUFUvV2ViR1BVL0J1ZmZlci5tbQppbmRl
eCBmYmIyZjQ0ZGY5ZTUzNmNlNWNmZWRlMTFmNzg1ZGM4Y2RhMWZiZGM1Li4zYjkyMjAwMzE4ZGM1
MTdkMmEwZWI2ZWMzOTllYTU1NDFjNmE1MTY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViR1BVL1dl
YkdQVS9CdWZmZXIubW0KKysrIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvQnVmZmVyLm1tCkBAIC0y
OTEsNyArMjkxLDcgQEAgdm9pZCBCdWZmZXI6Om1hcEFzeW5jKFdHUFVNYXBNb2RlRmxhZ3MgbW9k
ZSwgc2l6ZV90IG9mZnNldCwgc2l6ZV90IHNpemUsIENvbXBsZXQKICAgICAvLyAiSWYgYW55IG9m
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgdW5zYXRpc2ZpZWQ6IgogICAgIGlmICghdmFs
aWRhdGVNYXBBc3luYyhtb2RlLCBvZmZzZXQsIHJhbmdlU2l6ZSkpIHsKICAgICAgICAgLy8gIlJl
Y29yZCBhIHZhbGlkYXRpb24gZXJyb3Igb24gdGhlIGN1cnJlbnQgc2NvcGUuIgotICAgICAgICBt
X2RldmljZS0+Z2VuZXJhdGVBVmFsaWRhdGlvbkVycm9yKCJWYWxpZGF0aW9uIGZhaWx1cmUuIik7
CisgICAgICAgIG1fZGV2aWNlLT5nZW5lcmF0ZUFWYWxpZGF0aW9uRXJyb3IoIlZhbGlkYXRpb24g
ZmFpbHVyZS4iX3MpOwogCiAgICAgICAgIC8vICJSZXR1cm4gYSBwcm9taXNlIHJlamVjdGVkIHdp
dGggYW4gT3BlcmF0aW9uRXJyb3Igb24gdGhlIERldmljZSB0aW1lbGluZS4iCiAgICAgICAgIGNh
bGxiYWNrKFdHUFVCdWZmZXJNYXBBc3luY1N0YXR1c19FcnJvcik7CkBAIC0zNjUsNyArMzY1LDcg
QEAgdm9pZCBCdWZmZXI6OnVubWFwKCkKICAgICAvLyAiSWYgYW55IG9mIHRoZSBmb2xsb3dpbmcg
cmVxdWlyZW1lbnRzIGFyZSB1bm1ldCIKICAgICBpZiAoIXZhbGlkYXRlVW5tYXAoKSkgewogICAg
ICAgICAvLyAiZ2VuZXJhdGUgYSB2YWxpZGF0aW9uIGVycm9yIGFuZCBzdG9wLiIKLSAgICAgICAg
bV9kZXZpY2UtPmdlbmVyYXRlQVZhbGlkYXRpb25FcnJvcigiVmFsaWRhdGlvbiBmYWlsdXJlLiIp
OworICAgICAgICBtX2RldmljZS0+Z2VuZXJhdGVBVmFsaWRhdGlvbkVycm9yKCJWYWxpZGF0aW9u
IGZhaWx1cmUuIl9zKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkdQVS9XZWJHUFUvQ29tbWFuZEVuY29kZXIubW0gYi9Tb3VyY2UvV2ViR1BVL1dlYkdQ
VS9Db21tYW5kRW5jb2Rlci5tbQppbmRleCBhZTRiYWM2MDg1YjRjNWYyZWU0Y2Q5YzdjM2EzZTBi
MDNkNzZkNzkyLi45Njk4YzhhMDk5ZmZkNmMwOTM3ODQzOTRhODEyYzE4MmYwZWI3ZDViIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9Db21tYW5kRW5jb2Rlci5tbQorKysgYi9Tb3Vy
Y2UvV2ViR1BVL1dlYkdQVS9Db21tYW5kRW5jb2Rlci5tbQpAQCAtMTQ5LDcgKzE0OSw3IEBAIHZv
aWQgQ29tbWFuZEVuY29kZXI6OmNvcHlCdWZmZXJUb0J1ZmZlcihjb25zdCBCdWZmZXImIHNvdXJj
ZSwgdWludDY0X3Qgc291cmNlT2ZmCiAgICAgLy8gIklmIGFueSBvZiB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlIHVuc2F0aXNmaWVkCiAgICAgaWYgKCF2YWxpZGF0ZUNvcHlCdWZmZXJUb0J1
ZmZlcihzb3VyY2UsIHNvdXJjZU9mZnNldCwgZGVzdGluYXRpb24sIGRlc3RpbmF0aW9uT2Zmc2V0
LCBzaXplKSkgewogICAgICAgICAvLyAiZ2VuZXJhdGUgYSB2YWxpZGF0aW9uIGVycm9yIGFuZCBz
dG9wLiIKLSAgICAgICAgbV9kZXZpY2UtPmdlbmVyYXRlQVZhbGlkYXRpb25FcnJvcigiVmFsaWRh
dGlvbiBmYWlsdXJlLiIpOworICAgICAgICBtX2RldmljZS0+Z2VuZXJhdGVBVmFsaWRhdGlvbkVy
cm9yKCJWYWxpZGF0aW9uIGZhaWx1cmUuIl9zKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApA
QCAtMjIwLDcgKzIyMCw3IEBAIHZvaWQgQ29tbWFuZEVuY29kZXI6OmNsZWFyQnVmZmVyKGNvbnN0
IEJ1ZmZlciYgYnVmZmVyLCB1aW50NjRfdCBvZmZzZXQsIHVpbnQ2NF90CiAgICAgLy8gIklmIGFu
eSBvZiB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlIHVuc2F0aXNmaWVkIgogICAgIGlmICgh
dmFsaWRhdGVDbGVhckJ1ZmZlcihidWZmZXIsIG9mZnNldCwgc2l6ZSkpIHsKICAgICAgICAgLy8g
ImdlbmVyYXRlIGEgdmFsaWRhdGlvbiBlcnJvciBhbmQgc3RvcC4iCi0gICAgICAgIG1fZGV2aWNl
LT5nZW5lcmF0ZUFWYWxpZGF0aW9uRXJyb3IoIlZhbGlkYXRpb24gZmFpbHVyZS4iKTsKKyAgICAg
ICAgbV9kZXZpY2UtPmdlbmVyYXRlQVZhbGlkYXRpb25FcnJvcigiVmFsaWRhdGlvbiBmYWlsdXJl
LiJfcyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTI2Miw3ICsyNjIsNyBAQCBSZWZQ
dHI8Q29tbWFuZEJ1ZmZlcj4gQ29tbWFuZEVuY29kZXI6OmZpbmlzaChjb25zdCBXR1BVQ29tbWFu
ZEJ1ZmZlckRlc2NyaXB0b3ImCiAgICAgLy8gIklmIHZhbGlkYXRpb25TdWNjZWVkZWQgaXMgZmFs
c2UsIHRoZW46IgogICAgIGlmICh2YWxpZGF0aW9uRmFpbGVkKSB7CiAgICAgICAgIC8vICJHZW5l
cmF0ZSBhIHZhbGlkYXRpb24gZXJyb3IuIgotICAgICAgICBtX2RldmljZS0+Z2VuZXJhdGVBVmFs
aWRhdGlvbkVycm9yKCJWYWxpZGF0aW9uIGZhaWx1cmUuIik7CisgICAgICAgIG1fZGV2aWNlLT5n
ZW5lcmF0ZUFWYWxpZGF0aW9uRXJyb3IoIlZhbGlkYXRpb24gZmFpbHVyZS4iX3MpOwogCiAgICAg
ICAgIC8vIEZJWE1FOiAiUmV0dXJuIGEgbmV3IGludmFsaWQgR1BVQ29tbWFuZEJ1ZmZlci4iCiAg
ICAgICAgIHJldHVybiBudWxscHRyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkdQVS9XZWJHUFUv
Q29tcHV0ZVBpcGVsaW5lLm1tIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvQ29tcHV0ZVBpcGVsaW5l
Lm1tCmluZGV4IGVkOWI4Y2ZmNjQxNDMwMTJlNzdiM2UyMWZjNWU5Y2FiMDc1OTM2NGMuLmU0YWQ3
N2FmOTdhM2MxMzg5MjFiNDdkMDI2NTk4YjhiYzc2ZGE0YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJHUFUvV2ViR1BVL0NvbXB1dGVQaXBlbGluZS5tbQorKysgYi9Tb3VyY2UvV2ViR1BVL1dlYkdQ
VS9Db21wdXRlUGlwZWxpbmUubW0KQEAgLTcxLDcgKzcxLDcgQEAgc3RhdGljIE1UTEZ1bmN0aW9u
Q29uc3RhbnRWYWx1ZXMgKmNyZWF0ZUNvbnN0YW50VmFsdWVzKHVpbnQzMl90IGNvbnN0YW50Q291
bnQsIGMKICAgICBhdXRvIGNvbnN0YW50VmFsdWVzID0gW01UTEZ1bmN0aW9uQ29uc3RhbnRWYWx1
ZXMgbmV3XTsKICAgICBmb3IgKHVpbnQzMl90IGkgPSAwOyBpIDwgY29uc3RhbnRDb3VudDsgKytp
KSB7CiAgICAgICAgIGNvbnN0IGF1dG8mIGVudHJ5ID0gY29uc3RhbnRzW2ldOwotICAgICAgICBh
dXRvIG5hbWVJdGVyYXRvciA9IGVudHJ5UG9pbnRJbmZvcm1hdGlvbi5zcGVjaWFsaXphdGlvbkNv
bnN0YW50SW5kaWNlcy5maW5kKGVudHJ5LmtleSk7CisgICAgICAgIGF1dG8gbmFtZUl0ZXJhdG9y
ID0gZW50cnlQb2ludEluZm9ybWF0aW9uLnNwZWNpYWxpemF0aW9uQ29uc3RhbnRJbmRpY2VzLmZp
bmQoU3RyaW5nIHsgZW50cnkua2V5IH0pOwogICAgICAgICBpZiAobmFtZUl0ZXJhdG9yID09IGVu
dHJ5UG9pbnRJbmZvcm1hdGlvbi5zcGVjaWFsaXphdGlvbkNvbnN0YW50SW5kaWNlcy5lbmQoKSkK
ICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwogICAgICAgICBhdXRvIHNwZWNpYWxpemF0aW9u
Q29uc3RhbnRJbmRleCA9IG5hbWVJdGVyYXRvci0+dmFsdWU7CkBAIC0xNTAsNyArMTUwLDcgQEAg
UmVmUHRyPENvbXB1dGVQaXBlbGluZT4gRGV2aWNlOjpjcmVhdGVDb21wdXRlUGlwZWxpbmUoY29u
c3QgV0dQVUNvbXB1dGVQaXBlbGluZUQKICAgICBjb25zdCBQaXBlbGluZUxheW91dCYgcGlwZWxp
bmVMYXlvdXQgPSBXZWJHUFU6OmZyb21BUEkoZGVzY3JpcHRvci5sYXlvdXQpOwogICAgIGF1dG8g
bGFiZWwgPSBmcm9tQVBJKGRlc2NyaXB0b3IubGFiZWwpOwogCi0gICAgYXV0byBsaWJyYXJ5Q3Jl
YXRpb25SZXN1bHQgPSBjcmVhdGVMaWJyYXJ5KG1fZGV2aWNlLCBzaGFkZXJNb2R1bGUsIHBpcGVs
aW5lTGF5b3V0LCBkZXNjcmlwdG9yLmNvbXB1dGUuZW50cnlQb2ludCwgbGFiZWwpOworICAgIGF1
dG8gbGlicmFyeUNyZWF0aW9uUmVzdWx0ID0gY3JlYXRlTGlicmFyeShtX2RldmljZSwgc2hhZGVy
TW9kdWxlLCBwaXBlbGluZUxheW91dCwgU3RyaW5nIHsgZGVzY3JpcHRvci5jb21wdXRlLmVudHJ5
UG9pbnQgfSwgbGFiZWwpOwogICAgIGlmICghbGlicmFyeUNyZWF0aW9uUmVzdWx0KQogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkdQVS9XZWJHUFUvUXVl
dWUubW0gYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9RdWV1ZS5tbQppbmRleCBiN2JkNTdjZjVhNDI2
ZWMyNmU2ZjliMWUyOWQ5OWZkZWFkZjcwNWM0Li4wZDFiMzlhODRmNjQyMzU3OWE5ZWMwM2I1YWEy
NDFiZGU2MzFkNjYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9RdWV1ZS5tbQor
KysgYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9RdWV1ZS5tbQpAQCAtMTMxLDcgKzEzMSw3IEBAIHZv
aWQgUXVldWU6OnN1Ym1pdChWZWN0b3I8c3RkOjpyZWZlcmVuY2Vfd3JhcHBlcjxjb25zdCBDb21t
YW5kQnVmZmVyPj4mJiBjb21tYW5kCiAgICAgLy8gIklmIGFueSBvZiB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMgYXJlIHVuc2F0aXNmaWVkIgogICAgIGlmICghdmFsaWRhdGVTdWJtaXQoKSkgewog
ICAgICAgICAvLyAiZ2VuZXJhdGUgYSB2YWxpZGF0aW9uIGVycm9yIGFuZCBzdG9wLiIKLSAgICAg
ICAgbV9kZXZpY2UuZ2VuZXJhdGVBVmFsaWRhdGlvbkVycm9yKCJWYWxpZGF0aW9uIGZhaWx1cmUu
Iik7CisgICAgICAgIG1fZGV2aWNlLmdlbmVyYXRlQVZhbGlkYXRpb25FcnJvcigiVmFsaWRhdGlv
biBmYWlsdXJlLiJfcyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJHUFUvV2ViR1BVL1NhbXBsZXIubW0gYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9TYW1w
bGVyLm1tCmluZGV4IDJmN2Y3MjdmMTdkOTczZDBhNDljZTM0ZWVmYWM3MTM4NTczMzc2YjYuLjgy
NzM5MDQ5OTRjYjcwOWYwOTRlMjQ1ODc5OWFjZWM2Nzc1ODliNzIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJHUFUvV2ViR1BVL1NhbXBsZXIubW0KKysrIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvU2Ft
cGxlci5tbQpAQCAtMTM2LDcgKzEzNiw3IEBAIFJlZlB0cjxTYW1wbGVyPiBEZXZpY2U6OmNyZWF0
ZVNhbXBsZXIoY29uc3QgV0dQVVNhbXBsZXJEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQogICAgIC8v
ICJJZiB2YWxpZGF0aW5nIEdQVVNhbXBsZXJEZXNjcmlwdG9yKHRoaXMsIGRlc2NyaXB0b3IpIHJl
dHVybnMgZmFsc2U6IgogICAgIGlmICghdmFsaWRhdGVDcmVhdGVTYW1wbGVyKCp0aGlzLCBkZXNj
cmlwdG9yKSkgewogICAgICAgICAvLyAiR2VuZXJhdGUgYSB2YWxpZGF0aW9uIGVycm9yLiIKLSAg
ICAgICAgZ2VuZXJhdGVBVmFsaWRhdGlvbkVycm9yKCJWYWxpZGF0aW9uIGZhaWx1cmUuIik7Cisg
ICAgICAgIGdlbmVyYXRlQVZhbGlkYXRpb25FcnJvcigiVmFsaWRhdGlvbiBmYWlsdXJlLiJfcyk7
CiAKICAgICAgICAgLy8gIkNyZWF0ZSBhIG5ldyBpbnZhbGlkIEdQVVNhbXBsZXIgYW5kIHJldHVy
biB0aGUgcmVzdWx0LiIKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViR1BVL1dlYkdQVS9TaGFkZXJNb2R1bGUubW0gYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9T
aGFkZXJNb2R1bGUubW0KaW5kZXggZTAwNzU1Y2ZiNTViNGM2NmE4OTI3ZGQzZTVlMDJlYTkxMDE3
MGM0NC4uNjA1ZTM3MjMzNjEwNWFlMDg3MTM3ZGI2MTY0Njk4MTEyYmNmZjg3YiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkdQVS9XZWJHUFUvU2hhZGVyTW9kdWxlLm1tCisrKyBiL1NvdXJjZS9XZWJH
UFUvV2ViR1BVL1NoYWRlck1vZHVsZS5tbQpAQCAtODgsOSArODgsMTAgQEAgc3RhdGljIFJlZlB0
cjxTaGFkZXJNb2R1bGU+IGVhcmx5Q29tcGlsZVNoYWRlck1vZHVsZShpZDxNVExEZXZpY2U+IGRl
dmljZSwgc3RkOjoKICAgICAgICAgY29uc3QgYXV0byYgaGludCA9IHN1cHBsaWVkSGludHMuaGlu
dHNbaV07CiAgICAgICAgIGlmIChoaW50Lm5leHRJbkNoYWluKQogICAgICAgICAgICAgcmV0dXJu
IG51bGxwdHI7Ci0gICAgICAgIGhpbnRzLmFkZChoaW50LmtleSwgV2ViR1BVOjpmcm9tQVBJKGhp
bnQuaGludC5sYXlvdXQpKTsKKyAgICAgICAgU3RyaW5nIGhpbnRLZXkgeyBoaW50LmtleSB9Owor
ICAgICAgICBoaW50cy5hZGQoaGludEtleSwgV2ViR1BVOjpmcm9tQVBJKGhpbnQuaGludC5sYXlv
dXQpKTsKICAgICAgICAgYXV0byBjb252ZXJ0ZWRQaXBlbGluZUxheW91dCA9IFNoYWRlck1vZHVs
ZTo6Y29udmVydFBpcGVsaW5lTGF5b3V0KFdlYkdQVTo6ZnJvbUFQSShoaW50LmhpbnQubGF5b3V0
KSk7Ci0gICAgICAgIHdnc2xIaW50cy5hZGQoaGludC5rZXksIFdURk1vdmUoY29udmVydGVkUGlw
ZWxpbmVMYXlvdXQpKTsKKyAgICAgICAgd2dzbEhpbnRzLmFkZChoaW50S2V5LCBXVEZNb3ZlKGNv
bnZlcnRlZFBpcGVsaW5lTGF5b3V0KSk7CiAgICAgfQogICAgIGF1dG8gcHJlcGFyZVJlc3VsdCA9
IFdHU0w6OnByZXBhcmUoc3RkOjpnZXQ8V0dTTDo6U3VjY2Vzc2Z1bENoZWNrPihjaGVja1Jlc3Vs
dCkuYXN0LCB3Z3NsSGludHMpOwogICAgIGF1dG8gbGlicmFyeSA9IFNoYWRlck1vZHVsZTo6Y3Jl
YXRlTGlicmFyeShkZXZpY2UsIHByZXBhcmVSZXN1bHQubXNsLCBXVEZNb3ZlKGxhYmVsKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbSBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCmluZGV4IGZkNzRm
ZWFiMWQxZTEyZmIwNjEyYTA4NTVkZTY4ZmM3NjQxYjExM2QuLjAwNzRkY2E3NzI3YTk2ODc0ZmIx
ZWQzODQ3ZjUxOWUxNjA0YTUzZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1dlYlZpZXdJbXBsLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1dlYlZpZXdJbXBsLm1tCkBAIC00NDc4LDcgKzQ0NzgsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpz
ZXRQcm9taXNlZERhdGFGb3JJbWFnZShXZWJDb3JlOjpJbWFnZSogaW1hZ2UsIE5TU3RyaW5nICpm
aWxlbgogCiAgICAgUmV0YWluUHRyPE5TRGF0YT4gY3VzdG9tRGF0YUJ1ZmZlcjsKICAgICBpZiAo
b3JpZ2luSWRlbnRpZmllci5sZW5ndGgpIHsKLSAgICAgICAgW3R5cGVzIGFkZE9iamVjdDpAKFdl
YkNvcmU6OlBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKSldOworICAgICAgICBbdHlw
ZXMgYWRkT2JqZWN0OkAoV2ViQ29yZTo6UGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgp
LmNoYXJhY3RlcnMoKSldOwogICAgICAgICBXZWJDb3JlOjpQYXN0ZWJvYXJkQ3VzdG9tRGF0YSBj
dXN0b21EYXRhOwogICAgICAgICBjdXN0b21EYXRhLnNldE9yaWdpbihvcmlnaW5JZGVudGlmaWVy
KTsKICAgICAgICAgY3VzdG9tRGF0YUJ1ZmZlciA9IGN1c3RvbURhdGEuY3JlYXRlU2hhcmVkQnVm
ZmVyKCktPmNyZWF0ZU5TRGF0YSgpOwpAQCAtNDQ5Nyw3ICs0NDk3LDcgQEAgQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgfQogCiAgICAgaWYgKGN1c3RvbURhdGFCdWZmZXIp
Ci0gICAgICAgIFtwYXN0ZWJvYXJkIHNldERhdGE6Y3VzdG9tRGF0YUJ1ZmZlci5nZXQoKSBmb3JU
eXBlOkAoV2ViQ29yZTo6UGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpKV07CisgICAg
ICAgIFtwYXN0ZWJvYXJkIHNldERhdGE6Y3VzdG9tRGF0YUJ1ZmZlci5nZXQoKSBmb3JUeXBlOkAo
V2ViQ29yZTo6UGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpLmNoYXJhY3RlcnMoKSld
OwogCiAgICAgbV9wcm9taXNlZEltYWdlID0gaW1hZ2U7CiB9CkBAIC00NjI0LDcgKzQ2MjQsNyBA
QCB2b2lkIFdlYlZpZXdJbXBsOjpyZXF1ZXN0RE9NUGFzdGVBY2Nlc3MoV2ViQ29yZTo6RE9NUGFz
dGVBY2Nlc3NDYXRlZ29yeSBwYXN0ZUFjYwogICAgIEFTU0VSVCghbV9kb21QYXN0ZVJlcXVlc3RI
YW5kbGVyKTsKICAgICBoaWRlRE9NUGFzdGVNZW51V2l0aFJlc3VsdChXZWJDb3JlOjpET01QYXN0
ZUFjY2Vzc1Jlc3BvbnNlOjpEZW5pZWRGb3JHZXN0dXJlKTsKIAotICAgIE5TRGF0YSAqZGF0YSA9
IFtwYXN0ZWJvYXJkRm9yQWNjZXNzQ2F0ZWdvcnkocGFzdGVBY2Nlc3NDYXRlZ29yeSkgZGF0YUZv
clR5cGU6QChXZWJDb3JlOjpQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkpXTsKKyAg
ICBOU0RhdGEgKmRhdGEgPSBbcGFzdGVib2FyZEZvckFjY2Vzc0NhdGVnb3J5KHBhc3RlQWNjZXNz
Q2F0ZWdvcnkpIGRhdGFGb3JUeXBlOkAoV2ViQ29yZTo6UGFzdGVib2FyZEN1c3RvbURhdGE6OmNv
Y29hVHlwZSgpLmNoYXJhY3RlcnMoKSldOwogICAgIGF1dG8gYnVmZmVyID0gV2ViQ29yZTo6U2hh
cmVkQnVmZmVyOjpjcmVhdGUoZGF0YSk7CiAgICAgaWYgKFdlYkNvcmU6OlBhc3RlYm9hcmRDdXN0
b21EYXRhOjpmcm9tU2hhcmVkQnVmZmVyKGJ1ZmZlci5nZXQoKSkub3JpZ2luKCkgPT0gb3JpZ2lu
SWRlbnRpZmllcikgewogICAgICAgICBtX3BhZ2UtPmdyYW50QWNjZXNzVG9DdXJyZW50UGFzdGVi
b2FyZERhdGEocGFzdGVib2FyZE5hbWVGb3JBY2Nlc3NDYXRlZ29yeShwYXN0ZUFjY2Vzc0NhdGVn
b3J5KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNh
dGlvbi9Db2NvYS9Mb2NhbEF1dGhlbnRpY2F0b3IubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9Mb2NhbEF1dGhlbnRpY2F0b3IubW0KaW5kZXggYmVl
NmI5MjM4MmNhYWYzYjRmOWYwZTdjZTgyYzAxYTc2NzMzMjgyYy4uMmEwNWNmNDAzZGVmYzNiNDUw
NDg5MThhN2U0NGQwOTAzOWI4NGYwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvTG9jYWxBdXRoZW50aWNhdG9yLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL0xvY2FsQXV0aGVu
dGljYXRvci5tbQpAQCAtNDQ0LDcgKzQ0NCw3IEBAIHZvaWQgTG9jYWxBdXRoZW50aWNhdG9yOjpj
b250aW51ZU1ha2VDcmVkZW50aWFsQWZ0ZXJVc2VyVmVyaWZpY2F0aW9uKFNlY0FjY2Vzc0NvCiAg
ICAgICAgIGRlbGV0ZUR1cGxpY2F0ZUNyZWRlbnRpYWwoKTsKIAogICAgICAgICBhdXRvIGF1dGhE
YXRhID0gYnVpbGRBdXRoRGF0YShjcmVhdGlvbk9wdGlvbnMucnAuaWQsIGZsYWdzLCBjb3VudGVy
LCBidWlsZEF0dGVzdGVkQ3JlZGVudGlhbERhdGEoVmVjdG9yPHVpbnQ4X3Q+KGFhZ3VpZExlbmd0
aCwgMCksIGNyZWRlbnRpYWxJZCwgY29zZVB1YmxpY0tleSkpOwotICAgICAgICBhdXRvIGF0dGVz
dGF0aW9uT2JqZWN0ID0gYnVpbGRBdHRlc3RhdGlvbk9iamVjdChXVEZNb3ZlKGF1dGhEYXRhKSwg
IiIsIHsgfSwgQXR0ZXN0YXRpb25Db252ZXlhbmNlUHJlZmVyZW5jZTo6Tm9uZSk7CisgICAgICAg
IGF1dG8gYXR0ZXN0YXRpb25PYmplY3QgPSBidWlsZEF0dGVzdGF0aW9uT2JqZWN0KFdURk1vdmUo
YXV0aERhdGEpLCBTdHJpbmcgeyBlbXB0eVN0cmluZygpIH0sIHsgfSwgQXR0ZXN0YXRpb25Db252
ZXlhbmNlUHJlZmVyZW5jZTo6Tm9uZSk7CiAgICAgICAgIHJlY2VpdmVSZXNwb25kKEF1dGhlbnRp
Y2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlOjpjcmVhdGUoY3JlZGVudGlhbElkLCBhdHRlc3RhdGlv
bk9iamVjdCwgQXV0aGVudGljYXRvckF0dGFjaG1lbnQ6OlBsYXRmb3JtKSk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CkBAIC00NzEsNyArNDcxLDcgQEAgdm9pZCBMb2NhbEF1dGhlbnRpY2F0b3I6
OmNvbnRpbnVlTWFrZUNyZWRlbnRpYWxBZnRlckF0dGVzdGVkKFZlY3Rvcjx1aW50OF90PiYmIGMK
IAogICAgIGlmIChlcnJvcikgewogICAgICAgICBMT0dfRVJST1IoIkNvdWxkbid0IGF0dGVzdDog
JXMiLCBTdHJpbmcoZXJyb3IubG9jYWxpemVkRGVzY3JpcHRpb24pLnV0ZjgoKS5kYXRhKCkpOwot
ICAgICAgICBhdXRvIGF0dGVzdGF0aW9uT2JqZWN0ID0gYnVpbGRBdHRlc3RhdGlvbk9iamVjdChX
VEZNb3ZlKGF1dGhEYXRhKSwgIiIsIHsgfSwgQXR0ZXN0YXRpb25Db252ZXlhbmNlUHJlZmVyZW5j
ZTo6Tm9uZSk7CisgICAgICAgIGF1dG8gYXR0ZXN0YXRpb25PYmplY3QgPSBidWlsZEF0dGVzdGF0
aW9uT2JqZWN0KFdURk1vdmUoYXV0aERhdGEpLCBTdHJpbmcgeyBlbXB0eVN0cmluZygpIH0sIHsg
fSwgQXR0ZXN0YXRpb25Db252ZXlhbmNlUHJlZmVyZW5jZTo6Tm9uZSk7CiAgICAgICAgIHJlY2Vp
dmVSZXNwb25kKEF1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlOjpjcmVhdGUoY3JlZGVu
dGlhbElkLCBhdHRlc3RhdGlvbk9iamVjdCwgQXV0aGVudGljYXRvckF0dGFjaG1lbnQ6OlBsYXRm
b3JtKSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC00ODgsNyArNDg4LDcgQEAgdm9pZCBM
b2NhbEF1dGhlbnRpY2F0b3I6OmNvbnRpbnVlTWFrZUNyZWRlbnRpYWxBZnRlckF0dGVzdGVkKFZl
Y3Rvcjx1aW50OF90PiYmIGMKICAgICAgICAgICAgIGNib3JBcnJheS5hcHBlbmQoY2Jvcjo6Q0JP
UlZhbHVlKHZlY3RvckZyb21OU0RhdGEoKE5TRGF0YSAqKWFkb3B0Q0YoU2VjQ2VydGlmaWNhdGVD
b3B5RGF0YSgoX19icmlkZ2UgU2VjQ2VydGlmaWNhdGVSZWYpY2VydGlmaWNhdGVzW2ldKSkuZ2V0
KCkpKSk7CiAgICAgICAgIGF0dGVzdGF0aW9uU3RhdGVtZW50TWFwW2Nib3I6OkNCT1JWYWx1ZSgi
eDVjIildID0gY2Jvcjo6Q0JPUlZhbHVlKFdURk1vdmUoY2JvckFycmF5KSk7CiAgICAgfQotICAg
IGF1dG8gYXR0ZXN0YXRpb25PYmplY3QgPSBidWlsZEF0dGVzdGF0aW9uT2JqZWN0KFdURk1vdmUo
YXV0aERhdGEpLCAiYXBwbGUiLCBXVEZNb3ZlKGF0dGVzdGF0aW9uU3RhdGVtZW50TWFwKSwgY3Jl
YXRpb25PcHRpb25zLmF0dGVzdGF0aW9uKTsKKyAgICBhdXRvIGF0dGVzdGF0aW9uT2JqZWN0ID0g
YnVpbGRBdHRlc3RhdGlvbk9iamVjdChXVEZNb3ZlKGF1dGhEYXRhKSwgImFwcGxlIl9zLCBXVEZN
b3ZlKGF0dGVzdGF0aW9uU3RhdGVtZW50TWFwKSwgY3JlYXRpb25PcHRpb25zLmF0dGVzdGF0aW9u
KTsKIAogICAgIGRlbGV0ZUR1cGxpY2F0ZUNyZWRlbnRpYWwoKTsKICAgICByZWNlaXZlUmVzcG9u
ZChBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZTo6Y3JlYXRlKGNyZWRlbnRpYWxJZCwg
YXR0ZXN0YXRpb25PYmplY3QsIEF1dGhlbnRpY2F0b3JBdHRhY2htZW50OjpQbGF0Zm9ybSkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRl
cmFjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50
ZXJhY3Rpb24ubW0KaW5kZXggZWI3YzY5MWY5Yzk5MGY4NDc1ZjA5MDI3NGQ5YjZlZTIwMWMzOTBi
MC4uOWU4YmY0NWJhYjUxM2E1MTIxMDQ5ZDA1MzExMjJlNDU2M2YwYTZmMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9u
Lm1tCkBAIC0zOTgwLDcgKzM5ODAsNyBAQCAtIChCT09MKWNhblBlcmZvcm1BY3Rpb25Gb3JXZWJW
aWV3OihTRUwpYWN0aW9uIHdpdGhTZW5kZXI6KGlkKXNlbmRlcgogICAgICAgICBpZiAoZm9jdXNl
ZERvY3VtZW50T3JpZ2luLmlzRW1wdHkoKSkKICAgICAgICAgICAgIHJldHVybiBOTzsKIAotICAg
ICAgICBOU0FycmF5ICphbGxDdXN0b21QYXN0ZWJvYXJkRGF0YSA9IFtwYXN0ZWJvYXJkIGRhdGFG
b3JQYXN0ZWJvYXJkVHlwZTpAKFdlYkNvcmU6OlBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5
cGUoKSkgaW5JdGVtU2V0OmluZGljZXNdOworICAgICAgICBOU0FycmF5ICphbGxDdXN0b21QYXN0
ZWJvYXJkRGF0YSA9IFtwYXN0ZWJvYXJkIGRhdGFGb3JQYXN0ZWJvYXJkVHlwZTpAKFdlYkNvcmU6
OlBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKS5jaGFyYWN0ZXJzKCkpIGluSXRlbVNl
dDppbmRpY2VzXTsKICAgICAgICAgZm9yIChOU0RhdGEgKmRhdGEgaW4gYWxsQ3VzdG9tUGFzdGVi
b2FyZERhdGEpIHsKICAgICAgICAgICAgIGF1dG8gYnVmZmVyID0gV2ViQ29yZTo6U2hhcmVkQnVm
ZmVyOjpjcmVhdGUoZGF0YSk7CiAgICAgICAgICAgICBpZiAoV2ViQ29yZTo6UGFzdGVib2FyZEN1
c3RvbURhdGE6OmZyb21TaGFyZWRCdWZmZXIoYnVmZmVyLmdldCgpKS5vcmlnaW4oKSA9PSBmb2N1
c2VkRG9jdW1lbnRPcmlnaW4pCkBAIC02OTQ1LDcgKzY5NDUsNyBAQCBzdGF0aWMgQk9PTCBhbGxQ
YXN0ZWJvYXJkSXRlbU9yaWdpbnNNYXRjaE9yaWdpbihVSVBhc3RlYm9hcmQgKnBhc3RlYm9hcmQs
IGNvbnN0CiAgICAgICAgIHJldHVybiBOTzsKIAogICAgIGF1dG8gKmluZGljZXMgPSBbTlNJbmRl
eFNldCBpbmRleFNldFdpdGhJbmRleGVzSW5SYW5nZTpOU01ha2VSYW5nZSgwLCBbcGFzdGVib2Fy
ZCBudW1iZXJPZkl0ZW1zXSldOwotICAgIGF1dG8gKmFsbEN1c3RvbURhdGEgPSBbcGFzdGVib2Fy
ZCBkYXRhRm9yUGFzdGVib2FyZFR5cGU6QChXZWJDb3JlOjpQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6
Y29jb2FUeXBlKCkpIGluSXRlbVNldDppbmRpY2VzXTsKKyAgICBhdXRvICphbGxDdXN0b21EYXRh
ID0gW3Bhc3RlYm9hcmQgZGF0YUZvclBhc3RlYm9hcmRUeXBlOkAoV2ViQ29yZTo6UGFzdGVib2Fy
ZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpLmNoYXJhY3RlcnMoKSkgaW5JdGVtU2V0OmluZGljZXNd
OwogICAgIGlmICghYWxsQ3VzdG9tRGF0YS5jb3VudCkKICAgICAgICAgcmV0dXJuIE5POwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9NaXNjL1dlYk5TUGFzdGVib2FyZEV4
dHJhcy5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViTlNQYXN0ZWJvYXJkRXh0
cmFzLm1tCmluZGV4IGU1YjQ0NGJmYTVjMjg3MjgzODdjNzIzMzI4MjkxYTgyMDNkMWIyNTQuLjNl
NTJmMWJiYWNkYjUxYjhlYTU0NzdjNmIwZDk5Yjk1Y2JhZDBiYzIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViTlNQYXN0ZWJvYXJkRXh0cmFzLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViTlNQYXN0ZWJvYXJkRXh0cmFzLm1tCkBAIC0y
NzYsNyArMjc2LDcgQEAgLSAoaWQpX3dlYl9kZWNsYXJlQW5kV3JpdGVEcmFnSW1hZ2VGb3JFbGVt
ZW50OihET01FbGVtZW50ICopZWxlbWVudAogICAgIE5TU3RyaW5nICpvcmlnaW5JZGVudGlmaWVy
ID0gY29yZShlbGVtZW50KS0+ZG9jdW1lbnQoKS5vcmlnaW5JZGVudGlmaWVyRm9yUGFzdGVib2Fy
ZCgpOwogICAgIFJldGFpblB0cjxOU0RhdGE+IGN1c3RvbURhdGFCdWZmZXI7CiAgICAgaWYgKG9y
aWdpbklkZW50aWZpZXIubGVuZ3RoKSB7Ci0gICAgICAgIFt0eXBlcyBhZGRPYmplY3Q6QChQYXN0
ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkpXTsKKyAgICAgICAgW3R5cGVzIGFkZE9iamVj
dDpAKFBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKS5jaGFyYWN0ZXJzKCkpXTsKICAg
ICAgICAgUGFzdGVib2FyZEN1c3RvbURhdGEgY3VzdG9tRGF0YTsKICAgICAgICAgY3VzdG9tRGF0
YS5zZXRPcmlnaW4ob3JpZ2luSWRlbnRpZmllcik7CiAgICAgICAgIGN1c3RvbURhdGFCdWZmZXIg
PSBjdXN0b21EYXRhLmNyZWF0ZVNoYXJlZEJ1ZmZlcigpLT5jcmVhdGVOU0RhdGEoKTsKQEAgLTMw
NSw3ICszMDUsNyBAQCAtIChpZClfd2ViX2RlY2xhcmVBbmRXcml0ZURyYWdJbWFnZUZvckVsZW1l
bnQ6KERPTUVsZW1lbnQgKillbGVtZW50CiAKICAgICBbc2VsZiBfd2ViX3dyaXRlSW1hZ2U6bmls
IGVsZW1lbnQ6ZWxlbWVudCBVUkw6VVJMIHRpdGxlOnRpdGxlIGFyY2hpdmU6YXJjaGl2ZSB0eXBl
czp0eXBlcy5nZXQoKSBzb3VyY2U6c291cmNlXTsKICAgICBpZiAoY3VzdG9tRGF0YUJ1ZmZlcikK
LSAgICAgICAgW3NlbGYgc2V0RGF0YTpjdXN0b21EYXRhQnVmZmVyLmdldCgpIGZvclR5cGU6QChQ
YXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkpXTsKKyAgICAgICAgW3NlbGYgc2V0RGF0
YTpjdXN0b21EYXRhQnVmZmVyLmdldCgpIGZvclR5cGU6QChQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6
Y29jb2FUeXBlKCkuY2hhcmFjdGVycygpKV07CiAKICAgICBbc2VsZiBzZXRQcm9wZXJ0eUxpc3Q6
QFtleHRlbnNpb25dIGZvclR5cGU6bGVnYWN5RmlsZXNQcm9taXNlUGFzdGVib2FyZFR5cGUoKV07
CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBk
NzI1MDJmNDBiMjlmYjc0NWRmMjcyYTc3NmJhOTdhZTQ2MWUxNjExLi5jOTU1OTM3YTc3YTU4MGFh
YmZkNTVhNTQ0MjgwZTZiZDdlYmE0NWI5IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysr
IGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjItMDMtMjQgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBTdGFydCBwcmVwYXJpbmcgV2ViQ29y
ZSBmb3IgbWFraW5nIHRoZSBTdHJpbmcoY29uc3QgY2hhciopIGNvbnN0cnVjdG9yIGV4cGxpY2l0
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzgzMzYK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdGFydCBw
cmVwYXJpbmcgV2ViQ29yZSBmb3IgbWFraW5nIHRoZSBTdHJpbmcoY29uc3QgY2hhciopIGNvbnN0
cnVjdG9yIGV4cGxpY2l0LgorICAgICAgICBNYWtpbmcgdGhpcyBjb25zdHJ1Y3RvciBleHBsaWNp
dCBoZWxwcyBjYXRjaCBhdCBjb21waWxlIHRpbWUgY2FzZXMgd2hlcmUgdGhlICIiX3MKKyAgICAg
ICAgcHJlZml4IGlzIG1pc3Npbmcgb24gU3RyaW5nIGxpdGVyYWxzLgorCisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9tYWMvRHJhZ0FuZERyb3BUZXN0c01hYy5tbToKKyAgICAgICAgKFRF
U1QpOgorCiAyMDIyLTAzLTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAg
ICAgICAgRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KCkgc2hvdWxkIHRha2Ug
aW4gU3RyaW5nVmlld3MgaW5zdGVhZCBvZiBTdHJpbmdzCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL21hYy9EcmFnQW5kRHJvcFRlc3RzTWFjLm1tIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9tYWMvRHJhZ0FuZERyb3BUZXN0c01hYy5tbQppbmRleCA1MjE5Yzk0ZGQz
OWRiNDg5ZmIzYTQ2YTE0ZDhhOTM1MTNkMjg0ZWZjLi44MThiMDBmM2I1ZjY0ODg3OWUzNTM1MTNj
NTM0MzlmNzRlZGJhZWU0IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21h
Yy9EcmFnQW5kRHJvcFRlc3RzTWFjLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
bWFjL0RyYWdBbmREcm9wVGVzdHNNYWMubW0KQEAgLTE4MSw3ICsxODEsNyBAQCBBTExPV19ERVBS
RUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICBFWFBFQ1RfRVEoaW1hZ2VGcm9tVW5pcXVlUGFz
dGVib2FyZC5USUZGUmVwcmVzZW50YXRpb24ubGVuZ3RoLCBpbWFnZUZyb21EcmFnUGFzdGVib2Fy
ZC5USUZGUmVwcmVzZW50YXRpb24ubGVuZ3RoKTsKICAgICBFWFBFQ1RfVFJVRShOU0VxdWFsU2l6
ZXMoaW1hZ2VGcm9tRHJhZ1Bhc3RlYm9hcmQuc2l6ZSwgaW1hZ2VGcm9tVW5pcXVlUGFzdGVib2Fy
ZC5zaXplKSk7CiAgICAgRVhQRUNUX0ZBTFNFKE5TRXF1YWxTaXplcyhOU1plcm9TaXplLCBpbWFn
ZUZyb21VbmlxdWVQYXN0ZWJvYXJkLnNpemUpKTsKLSAgICBFWFBFQ1RfR1QoW2RyYWdQYXN0ZWJv
YXJkIGRhdGFGb3JUeXBlOkAoV2ViQ29yZTo6UGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlw
ZSgpKV0ubGVuZ3RoLCAwdSk7CisgICAgRVhQRUNUX0dUKFtkcmFnUGFzdGVib2FyZCBkYXRhRm9y
VHlwZTpAKFdlYkNvcmU6OlBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKS5jaGFyYWN0
ZXJzKCkpXS5sZW5ndGgsIDB1KTsKIH0KIAogVEVTVChEcmFnQW5kRHJvcFRlc3RzLCBQcm92aWRl
SW1hZ2VEYXRhQXNUeXBlSWRlbnRpZmllcnMpCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>455757</attachid>
            <date>2022-03-25 07:23:10 -0700</date>
            <delta_ts>2022-03-25 10:13:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238336-20220325072309.patch</filename>
            <type>text/plain</type>
            <size>422394</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkxODQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
OTBiMzE2MDQ4NDI3MDQzZjgyZjc4OWRlNmEyNDFlODBhZDAzNzhmLi5jZTQyYjA2NjBhYzY2NjU4
ZjVmMTE5NzlhYWZjNTk5ZjNhZWZjZGQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMiBAQAorMjAyMi0wMy0yNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFN0YXJ0IHByZXBhcmluZyBXZWJDb3JlIGZvciBtYWtpbmcgdGhlIFN0cmluZyhj
b25zdCBjaGFyKikgY29uc3RydWN0b3IgZXhwbGljaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODMzNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0YXJ0IHByZXBhcmluZyBXZWJDb3JlIGZvciBtYWtp
bmcgdGhlIFN0cmluZyhjb25zdCBjaGFyKikgY29uc3RydWN0b3IgZXhwbGljaXQuCisgICAgICAg
IE1ha2luZyB0aGlzIGNvbnN0cnVjdG9yIGV4cGxpY2l0IGhlbHBzIGNhdGNoIGF0IGNvbXBpbGUg
dGltZSBjYXNlcyB3aGVyZSB0aGUgIiJfcworICAgICAgICBwcmVmaXggaXMgbWlzc2luZyBvbiBT
dHJpbmcgbGl0ZXJhbHMuCisKKyAgICAgICAgKiBBUEkvSlNWYWx1ZS5tbToKKyAgICAgICAgKGNy
ZWF0ZVN0cnVjdEhhbmRsZXJNYXApOgorICAgICAgICAoaGFuZGVyRm9yU3RydWN0VGFnKToKKyAg
ICAgICAgKiBBUEkvSlNXcmFwcGVyTWFwLm1tOgorICAgICAgICAoYWxsb2NhdGVDb25zdHJ1Y3Rv
ckZvckN1c3RvbUNsYXNzKToKKyAgICAgICAgKiBpbnNwZWN0b3IvYWdlbnRzL0luc3BlY3RvckF1
ZGl0QWdlbnQuY3BwOgorICAgICAgICAoSW5zcGVjdG9yOjpJbnNwZWN0b3JBdWRpdEFnZW50Ojpy
dW4pOgorCiAyMDIyLTAzLTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAg
ICAgICAgRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KCkgc2hvdWxkIHRha2Ug
aW4gU3RyaW5nVmlld3MgaW5zdGVhZCBvZiBTdHJpbmdzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RG
L0NoYW5nZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDNjOGUzY2JhMzdiOWNiODQz
ZTk5ZDNlOTNiMGNmY2IwMDAxMjVlMGQuLmYwYzg0Y2VmMzA4NzAxNWU1M2Q3MTU4ODMwMmQzNjNj
ODM3MzZjNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
VEYvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjItMDMtMjQgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBTdGFydCBwcmVwYXJpbmcgV2ViQ29yZSBmb3Ig
bWFraW5nIHRoZSBTdHJpbmcoY29uc3QgY2hhciopIGNvbnN0cnVjdG9yIGV4cGxpY2l0CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzgzMzYKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTdGFydCBwcmVwYXJp
bmcgV2ViQ29yZSBmb3IgbWFraW5nIHRoZSBTdHJpbmcoY29uc3QgY2hhciopIGNvbnN0cnVjdG9y
IGV4cGxpY2l0LgorICAgICAgICBNYWtpbmcgdGhpcyBjb25zdHJ1Y3RvciBleHBsaWNpdCBoZWxw
cyBjYXRjaCBhdCBjb21waWxlIHRpbWUgY2FzZXMgd2hlcmUgdGhlICIiX3MKKyAgICAgICAgcHJl
Zml4IGlzIG1pc3Npbmcgb24gU3RyaW5nIGxpdGVyYWxzLgorCisgICAgICAgICogd3RmL3RleHQv
VGV4dFN0cmVhbS5oOgorICAgICAgICAoV1RGOjpUZXh0U3RyZWFtOjpkdW1wUHJvcGVydHkpOgor
CiAyMDIyLTAzLTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAg
U3RyaW5nOjpzcGxpdCgpIHNob3VsZCB0YWtlIGluIGEgU3RyaW5nVmlldyBpbnN0ZWFkIG9mIGEg
U3RyaW5nCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cKaW5kZXggNmU1YzZjMWQyNjZlOTcwYjM5ODUzMjI2ZGU3ZmZiNTllMGY5
YzBhMy4uYWQyNzViYTEzZTIxNjJhMzFhZWJhMDQ2YmJkZmVlYmY2YTU1NjMwNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDUxMSBAQAorMjAyMi0wMy0yNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBw
bGUuY29tPgorCisgICAgICAgIFN0YXJ0IHByZXBhcmluZyBXZWJDb3JlIGZvciBtYWtpbmcgdGhl
IFN0cmluZyhjb25zdCBjaGFyKikgY29uc3RydWN0b3IgZXhwbGljaXQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODMzNgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0YXJ0IHByZXBhcmluZyBXZWJDb3Jl
IGZvciBtYWtpbmcgdGhlIFN0cmluZyhjb25zdCBjaGFyKikgY29uc3RydWN0b3IgZXhwbGljaXQu
CisgICAgICAgIE1ha2luZyB0aGlzIGNvbnN0cnVjdG9yIGV4cGxpY2l0IGhlbHBzIGNhdGNoIGF0
IGNvbXBpbGUgdGltZSBjYXNlcyB3aGVyZSB0aGUgIiJfcworICAgICAgICBwcmVmaXggaXMgbWlz
c2luZyBvbiBTdHJpbmcgbGl0ZXJhbHMuCisKKyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5LWFt
cy11aS9BcHBsZVBheUFNU1VJUGF5bWVudEhhbmRsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Y29udmVydEFuZFZhbGlkYXRlQXBwbGVQYXlBTVNVSVJlcXVlc3QpOgorICAgICAgICAqIE1vZHVs
ZXMvYXBwbGVwYXkvQXBwbGVQYXlDb250YWN0RmllbGQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Y29udmVydEFuZFZhbGlkYXRlKToKKyAgICAgICAgKiBNb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5
TWVyY2hhbnRDYXBhYmlsaXR5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRBbmRWYWxp
ZGF0ZSk6CisgICAgICAgICogTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVJlcXVlc3RCYXNlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OmNvbnZlcnRBbmRWYWxpZGF0ZSk6CisgICAgICAgICogTW9k
dWxlcy9hcHBsZXBheS9BcHBsZVBheVNlc3Npb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBw
bGVQYXlTZXNzaW9uOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGVQYXlTZXNzaW9u
OjpvcGVuUGF5bWVudFNldHVwKToKKyAgICAgICAgKFdlYkNvcmU6OkFwcGxlUGF5U2Vzc2lvbjo6
YmVnaW4pOgorICAgICAgICAqIE1vZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlTZXR1cC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpBcHBsZVBheVNldHVwOjpiZWdpbik6CisgICAgICAgICogTW9kdWxl
cy9hcHBsZXBheS9QYXltZW50SW5zdGFsbG1lbnRDb25maWd1cmF0aW9uLm1tOgorICAgICAgICAo
V2ViQ29yZTo6UGF5bWVudEluc3RhbGxtZW50Q29uZmlndXJhdGlvbjo6Y3JlYXRlKToKKyAgICAg
ICAgKiBNb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRSZXF1ZXN0VmFsaWRhdG9yLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6UGF5bWVudFJlcXVlc3RWYWxpZGF0b3I6OnZhbGlkYXRlVG90YWwpOgorICAg
ICAgICAoV2ViQ29yZTo6dmFsaWRhdGVDb3VudHJ5Q29kZSk6CisgICAgICAgIChXZWJDb3JlOjp2
YWxpZGF0ZUN1cnJlbmN5Q29kZSk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0ZU1lcmNoYW50
Q2FwYWJpbGl0aWVzKToKKyAgICAgICAgKFdlYkNvcmU6OnZhbGlkYXRlU3VwcG9ydGVkTmV0d29y
a3MpOgorICAgICAgICAoV2ViQ29yZTo6dmFsaWRhdGVTaGlwcGluZ01ldGhvZCk6CisgICAgICAg
ICogTW9kdWxlcy9hcHBsZXBheS9QYXltZW50U2Vzc2lvbi5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpQYXltZW50U2Vzc2lvbjo6Y2FuQ3JlYXRlU2Vzc2lvbik6CisgICAgICAgICogTW9kdWxlcy9h
cHBsZXBheS9wYXltZW50cmVxdWVzdC9BcHBsZVBheVBheW1lbnRIYW5kbGVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmNvbnZlcnRBbmRWYWxpZGF0ZUFwcGxlUGF5UmVxdWVzdCk6CisgICAgICAg
ICogTW9kdWxlcy9hcHBsaWNhdGlvbm1hbmlmZXN0L0FwcGxpY2F0aW9uTWFuaWZlc3RQYXJzZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6QXBwbGljYXRpb25NYW5pZmVzdFBhcnNlcjo6cGFyc2VJ
Y29ucyk6CisgICAgICAgIChXZWJDb3JlOjpBcHBsaWNhdGlvbk1hbmlmZXN0UGFyc2VyOjpwYXJz
ZVNjb3BlKToKKyAgICAgICAgKiBNb2R1bGVzL2NhY2hlL1dpbmRvd09yV29ya2VyR2xvYmFsU2Nv
cGVDYWNoZXMuY3BwOgorICAgICAgICAqIE1vZHVsZXMvZW5jcnlwdGVkbWVkaWEvSW5pdERhdGFS
ZWdpc3RyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzYW5pdGl6ZUtleWlkcyk6CisgICAgICAg
ICogTW9kdWxlcy9lbnRyaWVzYXBpL0RPTUZpbGVTeXN0ZW0uY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6bGlzdERpcmVjdG9yeVdpdGhNZXRhZGF0YSk6CisgICAgICAgIChXZWJDb3JlOjp2YWxpZGF0
ZVBhdGhJc0V4cGVjdGVkVHlwZSk6CisgICAgICAgICogTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlD
b25zdW1lci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGZXRjaEJvZHlDb25zdW1lcjo6cGFja2Fn
ZUZvcm1EYXRhKToKKyAgICAgICAgKiBNb2R1bGVzL2ZldGNoL0ZldGNoSGVhZGVycy5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpmaWxsSGVhZGVyTWFwKToKKyAgICAgICAgKiBNb2R1bGVzL2ZldGNo
L0ZldGNoTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZldGNoTG9hZGVyOjpzdGFydExv
YWRpbmdCbG9iVVJMKToKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5
c3RlbUZpbGVIYW5kbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUZpbGVIYW5k
bGU6OmdldEZpbGUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUZpbGVIYW5kbGU6OmNy
ZWF0ZVN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vz
cy9GaWxlU3lzdGVtSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5k
bGU6OmlzU2FtZUVudHJ5IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5k
bGU6Om1vdmUpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQkRhdGFiYXNlSWRlbnRp
Zmllci5oOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQktleURhdGEuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6SURCS2V5RGF0YTo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OklEQktleURhdGE6OmRlY29kZSk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvSURC
S2V5UmFuZ2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCS2V5UmFuZ2U6OmluY2x1ZGVzKToK
KyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VyaWFsaXphdGlvbi5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpzZXJpYWxpemVJREJLZXlQYXRoKToKKyAgICAgICAgKFdlYkNv
cmU6OmRlc2VyaWFsaXplSURCS2V5UGF0aCk6CisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL0lEQlNlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQlNl
cnZlcjo6Z2V0QWxsRGF0YWJhc2VOYW1lc0FuZFZlcnNpb25zKToKKyAgICAgICAgKFdlYkNvcmU6
OklEQlNlcnZlcjo6SURCU2VydmVyOjpnZXRPcmlnaW5zIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OklEQlNlcnZlcjo6SURCU2VydmVyOjpjbG9zZUFuZERlbGV0ZURhdGFiYXNlc01vZGlmaWVk
U2luY2UpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpJREJTZXJ2ZXI6OmNsb3NlQW5k
RGVsZXRlRGF0YWJhc2VzRm9yT3JpZ2lucyk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6
OnJlbW92ZUFsbERhdGFiYXNlc0ZvckZ1bGxPcmlnaW5QYXRoKToKKyAgICAgICAgKFdlYkNvcmU6
OklEQlNlcnZlcjo6SURCU2VydmVyOjpyZW5hbWVPcmlnaW4pOgorICAgICAgICAoV2ViQ29yZTo6
SURCU2VydmVyOjpJREJTZXJ2ZXI6OnVwZ3JhZGVGaWxlc0lmTmVjZXNzYXJ5KToKKyAgICAgICAg
KFdlYkNvcmU6OklEQlNlcnZlcjo6SURCU2VydmVyOjp1cGdyYWRlZERhdGFiYXNlRGlyZWN0b3J5
KToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5SURCQmFja2luZ1N0
b3JlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6TWVtb3J5SURCQmFja2luZ1N0
b3JlOjpiZWdpblRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6TWVt
b3J5SURCQmFja2luZ1N0b3JlOjphYm9ydFRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OklEQlNlcnZlcjo6TWVtb3J5SURCQmFja2luZ1N0b3JlOjpjb21taXRUcmFuc2FjdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6Ok1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6Z2VuZXJh
dGVLZXlOdW1iZXIpOgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1vcnlP
YmplY3RTdG9yZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6Ok1lbW9yeU9iamVj
dFN0b3JlOjp1cGRhdGVJbmRleGVzRm9yUHV0UmVjb3JkKToKKyAgICAgICAgKiBNb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OklEQlNlcnZlcjo6djFSZWNvcmRzVGFibGVTY2hlbWEpOgorICAgICAgICAoV2ViQ29yZTo6
SURCU2VydmVyOjp2MVJlY29yZHNUYWJsZVNjaGVtYUFsdGVybmF0ZSk6CisgICAgICAgIChXZWJD
b3JlOjpJREJTZXJ2ZXI6OnYyUmVjb3Jkc1RhYmxlU2NoZW1hKToKKyAgICAgICAgKFdlYkNvcmU6
OklEQlNlcnZlcjo6djJSZWNvcmRzVGFibGVTY2hlbWFBbHRlcm5hdGUpOgorICAgICAgICAoV2Vi
Q29yZTo6SURCU2VydmVyOjp2MUluZGV4UmVjb3Jkc1RhYmxlU2NoZW1hKToKKyAgICAgICAgKFdl
YkNvcmU6OklEQlNlcnZlcjo6djFJbmRleFJlY29yZHNUYWJsZVNjaGVtYUFsdGVybmF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OnYySW5kZXhSZWNvcmRzVGFibGVTY2hlbWEpOgor
ICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjp2MkluZGV4UmVjb3Jkc1RhYmxlU2NoZW1hQWx0
ZXJuYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6U1FMaXRlSURCQmFja2luZ1N0
b3JlOjplbmNvZGVEYXRhYmFzZU5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpT
UUxpdGVJREJCYWNraW5nU3RvcmU6OmZ1bGxEYXRhYmFzZVBhdGhGb3JEaXJlY3RvcnkpOgorICAg
ICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpTUUxpdGVJREJCYWNraW5nU3RvcmU6OmdldE9yRXN0
YWJsaXNoRGF0YWJhc2VJbmZvKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6U1FMaXRl
SURCQmFja2luZ1N0b3JlOjp1cGRhdGVBbGxJbmRleGVzRm9yQWRkUmVjb3JkKToKKyAgICAgICAg
KFdlYkNvcmU6OklEQlNlcnZlcjo6U1FMaXRlSURCQmFja2luZ1N0b3JlOjp1bmNoZWNrZWRHZXRL
ZXlHZW5lcmF0b3JWYWx1ZSk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlNRTGl0ZUlE
QkJhY2tpbmdTdG9yZTo6dW5jaGVja2VkU2V0S2V5R2VuZXJhdG9yVmFsdWUpOgorICAgICAgICAo
V2ViQ29yZTo6SURCU2VydmVyOjpTUUxpdGVJREJCYWNraW5nU3RvcmU6OmdlbmVyYXRlS2V5TnVt
YmVyKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVlSURCRGF0YWJh
c2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6
Y3JlYXRlT2JqZWN0U3RvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJ
REJEYXRhYmFzZTo6ZGVsZXRlT2JqZWN0U3RvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2Vy
dmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6cmVuYW1lT2JqZWN0U3RvcmUpOgorICAgICAgICAoV2Vi
Q29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6Y2xlYXJPYmplY3RTdG9yZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpjcmVhdGVJbmRl
eCk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpkZWxl
dGVJbmRleCk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNl
OjpyZW5hbWVJbmRleCk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRh
dGFiYXNlOjpwdXRPckFkZCk6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlE
QkRhdGFiYXNlOjpwdXRPckFkZEFmdGVyU3BhY2VDaGVjayk6CisgICAgICAgIChXZWJDb3JlOjpJ
REJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpnZXRSZWNvcmQpOgorICAgICAgICAoV2ViQ29y
ZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6Z2V0QWxsUmVjb3Jkcyk6CisgICAgICAg
IChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpnZXRDb3VudCk6CisgICAg
ICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpkZWxldGVSZWNvcmQp
OgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6b3BlbkN1
cnNvcik6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpp
dGVyYXRlQ3Vyc29yKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0
YWJhc2U6OmNvbW1pdFRyYW5zYWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6
VW5pcXVlSURCRGF0YWJhc2U6OmFib3J0VHJhbnNhY3Rpb24pOgorICAgICAgICAqIE1vZHVsZXMv
aW5kZXhlZGRiL3NoYXJlZC9JREJJbmRleEluZm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURC
SW5kZXhJbmZvOjpsb2dnaW5nU3RyaW5nIGNvbnN0KToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlh
Y29udHJvbHMvTWVkaWFDb250cm9sc0hvc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFD
b250cm9sc0hvc3Q6OmxheW91dFRyYWl0c0NsYXNzTmFtZSBjb25zdCk6CisgICAgICAgICogTW9k
dWxlcy9tZWRpYXJlY29yZGVyL01lZGlhUmVjb3JkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
TWVkaWFSZWNvcmRlcjo6Y3JlYXRlKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc291cmNlL01l
ZGlhU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmFkZFZQOUZ1bGxSYW5nZVZpZGVvRmxh
Z1RvQ29udGVudFR5cGUpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTb3VyY2U6OmlzVHlwZVN1
cHBvcnRlZCk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVRyYWNrQ29uc3Ry
YWludHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2V0KToKKyAgICAgICAgKFdlYkNvcmU6OmNv
bnZlcnRUb0ludGVybmFsRm9ybSk6CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENJ
Y2VDYW5kaWRhdGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UlRDSWNlQ2FuZGlkYXRlOjpjcmVh
dGUpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UlRDUGVlckNvbm5lY3Rpb246OnNldExvY2FsRGVzY3JpcHRp
b24pOgorICAgICAgICAoV2ViQ29yZTo6UlRDUGVlckNvbm5lY3Rpb246OmFkZEljZUNhbmRpZGF0
ZSk6CisgICAgICAgIChXZWJDb3JlOjpSVENQZWVyQ29ubmVjdGlvbjo6aWNlU2VydmVyc0Zyb21D
b25maWd1cmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlJUQ1BlZXJDb25uZWN0aW9uOjpjZXJ0
aWZpY2F0ZXNGcm9tQ29uZmlndXJhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpSVENQZWVyQ29u
bmVjdGlvbjo6aW5pdGlhbGl6ZUNvbmZpZ3VyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6UlRD
UGVlckNvbm5lY3Rpb246OnNldENvbmZpZ3VyYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6UlRD
UGVlckNvbm5lY3Rpb246OmNoYWluT3BlcmF0aW9uKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlh
c3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJU
Q1J0cFNGcmFtZVRyYW5zZm9ybWVyOjp0cmFuc2Zvcm0pOgorICAgICAgICAqIE1vZHVsZXMvbWVk
aWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpMaWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OmRvQ3JlYXRl
QW5zd2VyKToKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJS
VENSdHBUcmFuc2NlaXZlckJhY2tlbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6dG9SdHBDb2Rl
Y0NhcGFiaWxpdHkpOgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xp
YldlYlJUQ1V0aWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnRvRXhjZXB0aW9uKToKKyAgICAg
ICAgKFdlYkNvcmU6OnRvUlRDRXJyb3IpOgorICAgICAgICAqIE1vZHVsZXMvbW9kZWwtZWxlbWVu
dC9zY2VuZWtpdC9TY2VuZUtpdE1vZGVsTG9hZGVyVVNELm1tOgorICAgICAgICAoV2ViQ29yZTo6
d3JpdGVUb1RlbXBvcmFyeUZpbGUpOgorICAgICAgICAqIE1vZHVsZXMvcGF5bWVudHJlcXVlc3Qv
UGF5bWVudFJlcXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Y2hlY2tBbmRDYW5vbmljYWxp
emVEZXRhaWxzKToKKyAgICAgICAgKFdlYkNvcmU6OlBheW1lbnRSZXF1ZXN0OjpzaG93KToKKyAg
ICAgICAgKiBNb2R1bGVzL3BpY3R1cmVpbnBpY3R1cmUvSFRNTFZpZGVvRWxlbWVudFBpY3R1cmVJ
blBpY3R1cmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFZpZGVvRWxlbWVudFBpY3R1cmVJ
blBpY3R1cmU6OnJlcXVlc3RQaWN0dXJlSW5QaWN0dXJlKToKKyAgICAgICAgKiBNb2R1bGVzL3Bs
dWdpbnMvWW91VHViZVBsdWdpblJlcGxhY2VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ollv
dVR1YmVQbHVnaW5SZXBsYWNlbWVudDo6aW5zdGFsbFJlcGxhY2VtZW50KToKKyAgICAgICAgKFdl
YkNvcmU6OnByb2Nlc3NBbmRDcmVhdGVZb3VUdWJlVVJMKToKKyAgICAgICAgKiBNb2R1bGVzL3Nw
ZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6OnVwZGF0ZURhdGFTb3Vy
Y2UpOgorICAgICAgICAoV2ViQ29yZTo6U3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1w
bDo6c291cmNlU3RvcHBlZCk6CisgICAgICAgIChXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkNh
cHR1cmVTb3VyY2VJbXBsOjpzb3VyY2VNdXRlZENoYW5nZWQpOgorICAgICAgICAqIE1vZHVsZXMv
c3BlZWNoL2NvY29hL1dlYlNwZWVjaFJlY29nbml6ZXJUYXNrTW9jay5tbToKKyAgICAgICAgKC1b
V2ViU3BlZWNoUmVjb2duaXplclRhc2tNb2NrIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZTpdKToKKyAg
ICAgICAgKiBNb2R1bGVzL3N0b3JhZ2UvU3RvcmFnZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Y29ubmVjdGlvbkluZm8pOgorICAgICAgICAqIE1vZHVsZXMvd2ViLWxvY2tzL1dlYkxv
Y2tNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkxvY2tNYW5hZ2VyOjpzaWduYWxU
b0Fib3J0VGhlUmVxdWVzdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9BdWRpb0xpc3Rl
bmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1ZGlvTGlzdGVuZXI6OkF1ZGlvTGlzdGVuZXIp
OgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vQXVkaW9QYXJhbS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpBdWRpb1BhcmFtOjpzZXRBdXRvbWF0aW9uUmF0ZSk6CisgICAgICAgICogTW9kdWxl
cy93ZWJhdWRpby9BdWRpb1BhcmFtVGltZWxpbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXVk
aW9QYXJhbVRpbWVsaW5lOjppbnNlcnRFdmVudCk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRp
by9CaXF1YWRGaWx0ZXJOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkJpcXVhZEZpbHRlck5v
ZGU6OmdldEZyZXF1ZW5jeVJlc3BvbnNlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1ZGlvL0Jp
cXVhZFByb2Nlc3Nvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpCaXF1YWRQcm9jZXNzb3I6OkJp
cXVhZFByb2Nlc3Nvcik6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9EZWxheVByb2Nlc3Nv
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEZWxheVByb2Nlc3Nvcjo6RGVsYXlQcm9jZXNzb3Ip
OgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vV2F2ZVNoYXBlck5vZGUuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6V2F2ZVNoYXBlck5vZGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpX
YXZlU2hhcGVyTm9kZTo6c2V0Q3VydmVGb3JCaW5kaW5ncyk6CisgICAgICAgICogTW9kdWxlcy93
ZWJhdXRobi9BdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
QXV0aGVudGljYXRvckNvb3JkaW5hdG9ySW50ZXJuYWw6Om5lZWRzQXBwSWRRdWlya3MpOgorICAg
ICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vV2ViQXV0aGVudGljYXRpb25VdGlscy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpidWlsZEF0dGVzdGF0aW9uTWFwKToKKyAgICAgICAgKiBNb2R1bGVzL3dl
YmF1dGhuL2ZpZG8vRGV2aWNlUmVzcG9uc2VDb252ZXJ0ZXIuY3BwOgorICAgICAgICAoZmlkbzo6
cmVhZENUQVBNYWtlQ3JlZGVudGlhbFJlc3BvbnNlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1
dGhuL2ZpZG8vUGluLmNwcDoKKyAgICAgICAgKGZpZG86OnBpbjo6S2V5QWdyZWVtZW50UmVzcG9u
c2U6OnBhcnNlRnJvbUNPU0UpOgorICAgICAgICAoZmlkbzo6cGluOjpUb2tlblJlcXVlc3Q6OnRy
eUNyZWF0ZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdXRobi9maWRvL1UyZlJlc3BvbnNlQ29u
dmVydGVyLmNwcDoKKyAgICAgICAgKGZpZG86OnJlYWRVMmZSZWdpc3RlclJlc3BvbnNlKToKKyAg
ICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL0NoYW5nZVZlcnNpb25XcmFwcGVyLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkNoYW5nZVZlcnNpb25XcmFwcGVyOjpwZXJmb3JtUHJlZmxpZ2h0KToK
KyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL0RPTVdpbmRvd1dlYkRhdGFiYXNlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkRPTVdpbmRvd1dlYkRhdGFiYXNlOjpvcGVuRGF0YWJhc2UpOgor
ICAgICAgICAqIE1vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2UuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RGF0YWJhc2U6OkRhdGFiYXNlKToKKyAgICAgICAgKFdlYkNvcmU6OkRhdGFiYXNlOjpy
dW5UcmFuc2FjdGlvbik6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZUF1
dGhvcml6ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VBdXRob3JpemVyOjphZGRB
bGxvd2VkRnVuY3Rpb25zKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNl
VHJhY2tlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEYXRhYmFzZVRyYWNrZXI6OnRyYWNrZXJE
YXRhYmFzZVBhdGggY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RGF0YWJhc2VUcmFja2VyOjpv
cGVuVHJhY2tlckRhdGFiYXNlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFN0
YXRlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTUUxTdGF0ZW1lbnQ6OmV4ZWN1dGUpOgor
ICAgICAgICAoV2ViQ29yZTo6U1FMU3RhdGVtZW50OjpzZXREYXRhYmFzZURlbGV0ZWRFcnJvcik6
CisgICAgICAgIChXZWJDb3JlOjpTUUxTdGF0ZW1lbnQ6OnNldFZlcnNpb25NaXNtYXRjaGVkRXJy
b3IpOgorICAgICAgICAoV2ViQ29yZTo6U1FMU3RhdGVtZW50OjpzZXRGYWlsdXJlRHVlVG9RdW90
YSk6CisgICAgICAgICogTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbi5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpTUUxUcmFuc2FjdGlvbjo6Y2FsbEVycm9yQ2FsbGJhY2tEdWVUb0lu
dGVycnVwdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpTUUxUcmFuc2FjdGlvbjo6b3BlblRyYW5z
YWN0aW9uQW5kUHJlZmxpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OlNRTFRyYW5zYWN0aW9uOjpk
ZWxpdmVyVHJhbnNhY3Rpb25DYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlOjpTUUxUcmFuc2Fj
dGlvbjo6ZGVsaXZlclN0YXRlbWVudENhbGxiYWNrKToKKyAgICAgICAgKFdlYkNvcmU6OlNRTFRy
YW5zYWN0aW9uOjpoYW5kbGVDdXJyZW50U3RhdGVtZW50RXJyb3IpOgorICAgICAgICAoV2ViQ29y
ZTo6U1FMVHJhbnNhY3Rpb246OnBvc3RmbGlnaHRBbmRDb21taXQpOgorICAgICAgICAqIE1vZHVs
ZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0
OjpzdWJwcm90b2NvbFNlcGFyYXRvcik6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXQ6OmNs
b3NlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldDo6c3VzcGVuZCk6CisgICAgICAgICog
TW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5oOgorICAgICAgICAqIE1vZHVsZXMvd2Vic29j
a2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldENo
YW5uZWw6OmRpZE9wZW5Tb2NrZXRTdHJlYW0pOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0
Q2hhbm5lbDo6ZGlkUmVjZWl2ZVNvY2tldFN0cmVhbURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6
V2ViU29ja2V0Q2hhbm5lbDo6cHJvY2Vzc0ZyYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlNv
Y2tldENoYW5uZWw6OnByb2Nlc3NPdXRnb2luZ0ZyYW1lUXVldWUpOgorICAgICAgICAqIE1vZHVs
ZXMvd2Vic29ja2V0cy9XZWJTb2NrZXREZWZsYXRlRnJhbWVyLmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OldlYlNvY2tldEV4dGVuc2lvbkRlZmxhdGVGcmFtZTo6cHJvY2Vzc1Jlc3BvbnNlKToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYlNvY2tldERlZmxhdGVGcmFtZXI6OmRlZmxhdGUpOgorICAgICAg
ICAoV2ViQ29yZTo6V2ViU29ja2V0RGVmbGF0ZUZyYW1lcjo6aW5mbGF0ZSk6CisgICAgICAgICog
TW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEV4dGVuc2lvbkRpc3BhdGNoZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViU29ja2V0RXh0ZW5zaW9uRGlzcGF0Y2hlcjo6cHJvY2Vzc0hlYWRl
clZhbHVlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RnJhbWUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0RnJhbWU6OnBhcnNlRnJhbWUpOgorICAgICAg
ICAqIE1vZHVsZXMvd2VieHIvV2ViWFJXZWJHTExheWVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OmNyZWF0ZU9wYXF1ZUZyYW1lYnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlhSV2ViR0xM
YXllcjo6Y3JlYXRlKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FYSW1hZ2UuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6QVhJbWFnZTo6aW1hZ2VPdmVybGF5RWxlbWVudHMpOgorICAgICAgICAq
IGFjY2Vzc2liaWxpdHkvQVhMb2dnZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QVhMb2dnZXI6
OkFYTG9nZ2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkFYTG9nZ2VyOjpsb2cpOgorICAgICAgICAo
V2ViQ29yZTo6b3BlcmF0b3I8PCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BWExvZ2dlci5o
OgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpBWE9iamVjdENhY2hlOjppc01vZGFsRWxlbWVudCBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpjcmVhdGVGcm9tUmVuZGVyZXIpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RD
YWNoZTo6cmVtb3ZlKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OnRleHRDaGFu
Z2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmhhbmRsZU1lbnVPcGVuZWQp
OgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6bm90aWZpY2F0aW9uUG9zdFRpbWVy
RmlyZWQpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cGFzc3dvcmROb3RpZmlj
YXRpb25Qb3N0VGltZXJGaXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENhY2hlOjpw
b3N0Tm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFYT2JqZWN0Q2FjaGU6OmhhbmRs
ZU1lbnVJdGVtU2VsZWN0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6c2Vs
ZWN0ZWRTdGF0ZUNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6QVhPYmplY3RDYWNoZTo6cG9z
dFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVj
dENhY2hlOjpoYW5kbGVNb2RhbENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpBWE9iamVjdENh
Y2hlOjpwZXJmb3JtRGVmZXJyZWRDYWNoZVVwZGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpBWE9i
amVjdENhY2hlOjp1cGRhdGVJc29sYXRlZFRyZWUpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkv
QWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJp
bGl0eU5vZGVPYmplY3Q6OmRldGVybWluZUFjY2Vzc2liaWxpdHlSb2xlKToKKyAgICAgICAgKiBh
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
QWNjZXNzaWJpbGl0eU9iamVjdDo6cmVhZE9ubHlWYWx1ZSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjphdXRvQ29tcGxldGVWYWx1ZSBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjpjdXJyZW50VmFsdWUgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU9iamVjdDo6cmVwbGFjZVRleHRJblJhbmdl
KToKKyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlPYmplY3Q6OmNvbXB1dGVkUm9sZVN0
cmluZyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpub2RlSGFzUHJlc2VudGF0aW9uUm9sZSk6
CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0OjpyZXNvbHZlZEVkaXRpbmdT
dHlsZXMgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eTo6aXNSYWRpb0J1
dHRvbkluRGlmZmVyZW50QWRob2NHcm91cCk6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmls
aXR5OjpmaW5kTWF0Y2hpbmdPYmplY3RzKToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlPYmplY3RJbnRlcmZhY2UuaDoKKyAgICAgICAgKFdlYkNvcmU6OmFjY2Vzc2liaWxp
dHlSb2xlVG9TdHJpbmcpOgorICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVuZGVyT2Jq
ZWN0OjpyZW5kZXJPYmplY3RJc09ic2VydmFibGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6ZGV0ZXJtaW5lQWNjZXNzaWJpbGl0eVJvbGUpOgor
ICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6dXBkYXRlUm9sZUFm
dGVyQ2hpbGRyZW5DcmVhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5UmVu
ZGVyT2JqZWN0OjpsaXZlUmVnaW9uUmVsZXZhbnQgY29uc3QpOgorICAgICAgICAqIGFjY2Vzc2li
aWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlQ2VsbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpBY2Nl
c3NpYmlsaXR5VGFibGVDZWxsOjpjb21wdXRlQWNjZXNzaWJpbGl0eUlzSWdub3JlZCBjb25zdCk6
CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VHJlZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5VHJlZTo6bm9kZUhhc1RyZWVJdGVtQ2hpbGQgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eVRyZWU6OmlzVHJlZVZhbGlkIGNvbnN0
KToKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkT2JqZWN0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRPYmplY3Q6OmluaXRpYWxpemVBdHRy
aWJ1dGVEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRPYmplY3Q6OmNsYXNzTGlz
dCBjb25zdCk6CisgICAgICAgICogYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRl
ZFRyZWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OkFYSXNvbGF0ZWRU
cmVlKToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjp+QVhJc29sYXRlZFRyZWUp
OgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OmNsZWFyKToKKyAgICAgICAgKFdl
YkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjp0cmVlRm9ySUQpOgorICAgICAgICAoV2ViQ29yZTo6QVhJ
c29sYXRlZFRyZWU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkVHJlZTo6
cmVtb3ZlVHJlZUZvclBhZ2VJRCk6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkVHJlZTo6
b2JqZWN0c0ZvcklEcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkVHJlZTo6
Z2VuZXJhdGVTdWJ0cmVlKToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjpjb2xs
ZWN0Tm9kZUNoYW5nZXNGb3JTdWJ0cmVlKToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRU
cmVlOjp1cGRhdGVOb2RlKToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjp1cGRh
dGVOb2RlUHJvcGVydHkpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OnVwZGF0
ZUNoaWxkcmVuKToKKyAgICAgICAgKFdlYkNvcmU6OkFYSXNvbGF0ZWRUcmVlOjpmb2N1c2VkTm9k
ZSk6CisgICAgICAgIChXZWJDb3JlOjpBWElzb2xhdGVkVHJlZTo6cm9vdE5vZGUpOgorICAgICAg
ICAoV2ViQ29yZTo6QVhJc29sYXRlZFRyZWU6OnNldFJvb3ROb2RlKToKKyAgICAgICAgKFdlYkNv
cmU6OkFYSXNvbGF0ZWRUcmVlOjpzZXRGb2N1c2VkTm9kZUlEKToKKyAgICAgICAgKFdlYkNvcmU6
OkFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVMb2FkaW5nUHJvZ3Jlc3MpOgorICAgICAgICAoV2ViQ29y
ZTo6QVhJc29sYXRlZFRyZWU6OnJlbW92ZU5vZGUpOgorICAgICAgICAoV2ViQ29yZTo6QVhJc29s
YXRlZFRyZWU6OnJlbW92ZVN1YnRyZWVGcm9tTm9kZU1hcCk6CisgICAgICAgIChXZWJDb3JlOjpB
WElzb2xhdGVkVHJlZTo6YXBwbHlQZW5kaW5nQ2hhbmdlcyk6CisgICAgICAgICogYWNjZXNzaWJp
bGl0eS9tYWMvQWNjZXNzaWJpbGl0eU9iamVjdE1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OkFj
Y2Vzc2liaWxpdHlPYmplY3Q6OnN1YnJvbGVQbGF0Zm9ybVN0cmluZyBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpBY2Nlc3NpYmlsaXR5T2JqZWN0Ojpyb2xlUGxhdGZvcm1EZXNjcmlwdGlvbiBj
b25zdCk6CisgICAgICAgICogYW5pbWF0aW9uL0FuaW1hdGlvbkVmZmVjdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpBbmltYXRpb25FZmZlY3Q6OmdldFRpbWluZyBjb25zdCk6CisgICAgICAgICog
YW5pbWF0aW9uL0RvY3VtZW50VGltZWxpbmUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1l
bnRUaW1lbGluZTo6YW5pbWF0ZSk6CisgICAgICAgICogYW5pbWF0aW9uL0VmZmVjdFRpbWluZy5o
OgorICAgICAgICAqIGFuaW1hdGlvbi9LZXlmcmFtZUVmZmVjdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpLZXlmcmFtZUVmZmVjdDo6Q1NTUHJvcGVydHlJRFRvSURMQXR0cmlidXRlTmFtZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpLZXlmcmFtZUVmZmVjdDo6Z2V0S2V5ZnJhbWVzKToKKyAgICAgICAg
KiBiaW5kaW5ncy9qcy9HQ0NvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R0NDb250
cm9sbGVyOjpHQ0NvbnRyb2xsZXIpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQ3VzdG9tRWxl
bWVudEludGVyZmFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0N1c3RvbUVsZW1lbnRJbnRl
cmZhY2U6OnVwZ3JhZGVFbGVtZW50KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUNvbnZl
cnROdW1iZXJzLmg6CisgICAgICAgIChXZWJDb3JlOjpDb252ZXJ0ZXI8SURMRmxvYXQ+Ojpjb252
ZXJ0KToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0V4ZWNTdGF0ZUluc3RydW1lbnRhdGlvbi5o
OgorICAgICAgICAoV2ViQ29yZTo6SlNFeGVjU3RhdGU6Omluc3RydW1lbnRGdW5jdGlvbik6Cisg
ICAgICAgICogYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTY3JpcHRDb250cm9sbGVyOjpjYWxsSW5Xb3JsZCk6CisgICAgICAgICogYnJpZGdlL29i
amMvb2JqY19ydW50aW1lLm1tOgorICAgICAgICAoSlNDOjpCaW5kaW5nczo6T2JqY0FycmF5Ojpz
ZXRWYWx1ZUF0IGNvbnN0KToKKyAgICAgICAgKEpTQzo6QmluZGluZ3M6Ok9iamNBcnJheTo6dmFs
dWVBdCBjb25zdCk6CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwOgorICAgICAg
ICAoSlNDOjpSdW50aW1lQXJyYXk6OnB1dCk6CisgICAgICAgIChKU0M6OlJ1bnRpbWVBcnJheTo6
cHV0QnlJbmRleCk6CisgICAgICAgICogYnJpZGdlL3J1bnRpbWVfb2JqZWN0LmNwcDoKKyAgICAg
ICAgKEpTQzo6QmluZGluZ3M6OnRocm93UnVudGltZU9iamVjdEludmFsaWRBY2Nlc3NFcnJvcik6
CisgICAgICAgICogY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkFjdGlvbnMuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudEV4dGVuc2lvbnM6Ok1vZGlmeUhlYWRlcnNBY3Rp
b246Ok1vZGlmeUhlYWRlckluZm86OnBhcnNlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRF
eHRlbnNpb25zOjpSZWRpcmVjdEFjdGlvbjo6cGFyc2UpOgorICAgICAgICAoV2ViQ29yZTo6Q29u
dGVudEV4dGVuc2lvbnM6OlJlZGlyZWN0QWN0aW9uOjpVUkxUcmFuc2Zvcm1BY3Rpb246OnBhcnNl
KToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpSZWRpcmVjdEFjdGlvbjo6
VVJMVHJhbnNmb3JtQWN0aW9uOjpRdWVyeVRyYW5zZm9ybTo6cGFyc2UpOgorICAgICAgICAoV2Vi
Q29yZTo6Q29udGVudEV4dGVuc2lvbnM6OlJlZGlyZWN0QWN0aW9uOjpVUkxUcmFuc2Zvcm1BY3Rp
b246OlF1ZXJ5VHJhbnNmb3JtOjpRdWVyeUtleVZhbHVlOjpwYXJzZSk6CisgICAgICAgICogY29u
dGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkNvbXBpbGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNvbnRlbnRFeHRlbnNpb25zOjpjb21waWxlUnVsZUxpc3QpOgorICAgICAgICAqIGNv
bnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25QYXJzZXIuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Q29udGVudEV4dGVuc2lvbnM6OmdldERvbWFpbkxpc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6Q29udGVudEV4dGVuc2lvbnM6OmxvYWRUcmlnZ2VyKToKKyAgICAgICAgKFdlYkNvcmU6OkNv
bnRlbnRFeHRlbnNpb25zOjpsb2FkQWN0aW9uKToKKyAgICAgICAgKiBjb250ZW50ZXh0ZW5zaW9u
cy9TZXJpYWxpemVkTkZBLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRlbnRFeHRlbnNpb25z
OjpTZXJpYWxpemVkTkZBOjpzZXJpYWxpemUpOgorICAgICAgICAqIGNvbnRlbnRleHRlbnNpb25z
L1VSTEZpbHRlclBhcnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb250ZW50RXh0ZW5zaW9u
czo6VVJMRmlsdGVyUGFyc2VyOjpzdGF0dXNTdHJpbmcpOgorICAgICAgICAqIGNvbnRlbnRleHRl
bnNpb25zL1VSTEZpbHRlclBhcnNlci5oOgorICAgICAgICAqIGNyeXB0by9TdWJ0bGVDcnlwdG8u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U3VidGxlQ3J5cHRvOjphZGRBdXRoZW50aWNhdGVkRW5j
cnlwdGlvbldhcm5pbmdJZk5lY2Vzc2FyeSk6CisgICAgICAgICogY3J5cHRvL2FsZ29yaXRobXMv
Q3J5cHRvQWxnb3JpdGhtQUVTX0NCQy5oOgorICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0Ny
eXB0b0FsZ29yaXRobUFFU19DRkIuaDoKKyAgICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9Dcnlw
dG9BbGdvcml0aG1BRVNfQ1RSLmg6CisgICAgICAgICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRv
QWxnb3JpdGhtQUVTX0dDTS5oOgorICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0Fs
Z29yaXRobUFFU19LVy5oOgorICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29y
aXRobUVDREguaDoKKyAgICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1F
Q0RTQS5oOgorICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUhLREYu
aDoKKyAgICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1ITUFDLmg6Cisg
ICAgICAgICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUEJLREYyLmg6CisgICAg
ICAgICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBRVNfUEtDUzFfdjFfNS5o
OgorICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NT
MV92MV81Lmg6CisgICAgICAgICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNB
X09BRVAuaDoKKyAgICAgICAgKiBjcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0Ff
UFNTLmg6CisgICAgICAgICogY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMS5o
OgorICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTIyNC5oOgor
ICAgICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTI1Ni5oOgorICAg
ICAgICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTM4NC5oOgorICAgICAg
ICAqIGNyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTUxMi5oOgorICAgICAgICAq
IGNyeXB0by9rZXlzL0NyeXB0b0tleUFFUy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9L
ZXlBRVM6OmV4cG9ydEp3ayBjb25zdCk6CisgICAgICAgICogY3J5cHRvL2tleXMvQ3J5cHRvS2V5
RUMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3J5cHRvS2V5RUM6OmV4cG9ydEp3ayBjb25zdCk6
CisgICAgICAgICogY3J5cHRvL2tleXMvQ3J5cHRvS2V5SE1BQy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpDcnlwdG9LZXlITUFDOjpleHBvcnRKd2sgY29uc3QpOgorICAgICAgICAqIGNyeXB0by9r
ZXlzL0NyeXB0b0tleVJTQS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDcnlwdG9LZXlSU0E6OmV4
cG9ydEp3ayBjb25zdCk6CisgICAgICAgICogY3NzL0NTU0ZvbnRGYWNlU3JjVmFsdWUuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udEZhY2VTcmNWYWx1ZTo6aXNTdXBwb3J0ZWRGb3JtYXQg
Y29uc3QpOgorICAgICAgICAqIGNzcy9DU1NHcmlkVGVtcGxhdGVBcmVhc1ZhbHVlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnN0cmluZ0ZvclBvc2l0aW9uKToKKyAgICAgICAgKiBjc3MvQ1NTUHJp
bWl0aXZlVmFsdWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUHJpbWl0aXZlVmFsdWU6OnVu
aXRUeXBlU3RyaW5nKToKKyAgICAgICAgKiBjc3MvQ1NTU3ViZ3JpZFZhbHVlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkNTU1N1YmdyaWRWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCBjb25zdCk6CisgICAg
ICAgICogY3NzL0RPTUNTU05hbWVzcGFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjp2YWx1ZVdp
dGhvdXRJbXBvcnRhbnQpOgorICAgICAgICAqIGNzcy9ET01DU1NSZWdpc3RlckN1c3RvbVByb3Bl
cnR5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRPTUNTU1JlZ2lzdGVyQ3VzdG9tUHJvcGVydHk6
OnJlZ2lzdGVyUHJvcGVydHkpOgorICAgICAgICAqIGNzcy9EZXByZWNhdGVkQ1NTT01WYWx1ZS5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpEZXByZWNhdGVkQ1NTT01WYWx1ZTo6Y3NzVGV4dCBjb25z
dCk6CisgICAgICAgICogY3NzL0ZvbnRGYWNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRG
YWNlOjp1bmljb2RlUmFuZ2UgY29uc3QpOgorICAgICAgICAqIGNzcy9NZWRpYVF1ZXJ5RXhwcmVz
c2lvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVF1ZXJ5RXhwcmVzc2lvbjo6c2VyaWFs
aXplIGNvbnN0KToKKyAgICAgICAgKiBjc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlN0eWxlUHJvcGVydGllczo6Z2V0TGF5ZXJlZFNob3J0aGFuZFZhbHVlIGNvbnN0
KToKKyAgICAgICAgKFdlYkNvcmU6Ok11dGFibGVTdHlsZVByb3BlcnRpZXM6OnNldEN1c3RvbVBy
b3BlcnR5KToKKyAgICAgICAgKiBjc3MvbWFrZXZhbHVlcy5wbDoKKyAgICAgICAgKiBjc3MvcGFy
c2VyL01lZGlhUXVlcnlQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeVBh
cnNlcjo6c2tpcFVudGlsQ29tbWEpOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFRdWVyeVBhcnNl
cjo6cGFyc2VJbnRlcm5hbCk6CisgICAgICAgICogY3NzL3BhcnNlci9TaXplc0F0dHJpYnV0ZVBh
cnNlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTaXplc0F0dHJpYnV0ZVBhcnNlcjo6bWVkaWFD
b25kaXRpb25NYXRjaGVzKToKKyAgICAgICAgKiBjc3MvdHlwZWRvbS9DU1NOdW1lcmljRmFjdG9y
eS5oOgorICAgICAgICAqIGNzcy90eXBlZG9tL0NTU051bWVyaWNWYWx1ZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpDU1NOdW1lcmljVmFsdWU6Om11bHRpcGx5SW50ZXJuYWwpOgorICAgICAgICAo
V2ViQ29yZTo6Q1NTTnVtZXJpY1ZhbHVlOjp0byk6CisgICAgICAgIChXZWJDb3JlOjpDU1NOdW1l
cmljVmFsdWU6OnBhcnNlKToKKyAgICAgICAgKiBjc3MvdHlwZWRvbS9DU1NTdHlsZVZhbHVlRmFj
dG9yeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NTdHlsZVZhbHVlRmFjdG9yeTo6cmVpZnlW
YWx1ZSk6CisgICAgICAgICogZWRpdGluZy9jb2NvYS9IVE1MQ29udmVydGVyLm1tOgorICAgICAg
ICAoSFRNTENvbnZlcnRlckNhY2hlczo6cHJvcGVydHlWYWx1ZUZvck5vZGUpOgorICAgICAgICAo
SFRNTENvbnZlcnRlcjo6X3Byb2Nlc3NFbGVtZW50KToKKyAgICAgICAgKiBlZGl0aW5nL2NvY29h
L1dlYkNvbnRlbnRSZWFkZXJDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OmF0dGFjaG1lbnRG
b3JEYXRhKToKKyAgICAgICAgKiBsb2FkZXIvY29jb2EvQnVuZGxlUmVzb3VyY2VMb2FkZXIubW06
CisgICAgICAgIChXZWJDb3JlOjpCdW5kbGVSZXNvdXJjZUxvYWRlcjo6bG9hZFJlc291cmNlRnJv
bUJ1bmRsZSk6CisgICAgICAgICogbG9hZGVyL21hYy9Mb2FkZXJOU1VSTEV4dHJhcy5tbToKKyAg
ICAgICAgKHN1Z2dlc3RlZEZpbGVuYW1lV2l0aE1JTUVUeXBlKToKKyAgICAgICAgKiBwYWdlL2Nv
Y29hL1Jlc291cmNlVXNhZ2VPdmVybGF5Q29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpIaXN0
b3JpY1Jlc291cmNlVXNhZ2VEYXRhOjpIaXN0b3JpY1Jlc291cmNlVXNhZ2VEYXRhKToKKyAgICAg
ICAgKFdlYkNvcmU6OmRyYXdDcHVIaXN0b3J5KToKKyAgICAgICAgKFdlYkNvcmU6OmRyYXdHQ0hp
c3RvcnkpOgorICAgICAgICAoV2ViQ29yZTo6ZHJhd01lbUhpc3RvcnkpOgorICAgICAgICAqIHBh
Z2UvY29jb2EvU2V0dGluZ3NCYXNlQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5n
c0Jhc2U6OmluaXRpYWxpemVEZWZhdWx0Rm9udEZhbWlsaWVzKToKKyAgICAgICAgKiBwYWdlL21h
Yy9QYWdlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6UGFnZTo6cGxhdGZvcm1Jbml0aWFsaXpl
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkFYQVJJQUNvbnRlbnRHcm91cFRleHQpOgorICAgICAgICAqIHBsYXRmb3JtL0xvY2Fs
aXplZFN0cmluZ3MuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9QYXN0ZWJvYXJkLmg6CisgICAgICAg
ICogcGxhdGZvcm0vUGFzdGVib2FyZEN1c3RvbURhdGEuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9h
dWRpby9jb2NvYS9NZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EubW06CisgICAgICAgIChXZWJDb3Jl
OjpNZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2E6OnVwZGF0ZU5vd1BsYXlpbmdJbmZvKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9jb2NvYS9LZXlFdmVudENvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6
a2V5SWRlbnRpZmllckZvckNoYXJDb2RlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9jb2NvYS9QYXN0
ZWJvYXJkQ29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjppbWFnZVR5cGVUb0Zha2VGaWxlbmFt
ZSk6CisgICAgICAgIChXZWJDb3JlOjpQYXN0ZWJvYXJkOjpyZWFkKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9jb2NvYS9QYXN0ZWJvYXJkQ3VzdG9tRGF0YUNvY29hLm1tOgorICAgICAgICAoV2ViQ29y
ZTo6UGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvRm91ckNDLmg6CisgICAgICAgIChXVEY6OkxvZ0FyZ3VtZW50PFdlYkNvcmU6OkZv
dXJDQz46OnRvU3RyaW5nKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hbmdsZS9HcmFw
aGljc0NvbnRleHRHTEFOR0xFLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4
dEdMQU5HTEU6OnZhbGlkYXRlRGVwdGhTdGVuY2lsKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vQ0RNUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbToKKyAgICAg
ICAgKFdlYkNvcmU6OkNETVByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnBhcnNlS2V5U3lzdGVt
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5ZXJQ
cml2YXRlQVZGb3VuZGF0aW9uLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakMubW06CisgICAg
ICAgIChXZWJDb3JlOjpDRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQzo6c2V0U3Rv
cmFnZURpcmVjdG9yeSk6CisgICAgICAgIChXZWJDb3JlOjpDRE1JbnN0YW5jZVNlc3Npb25GYWly
UGxheVN0cmVhbWluZ0FWRk9iakM6OnVwZGF0ZUxpY2Vuc2UpOgorICAgICAgICAoV2ViQ29yZTo6
Q0RNSW5zdGFuY2VTZXNzaW9uRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDOjpkaWRQcm92aWRlUmVx
dWVzdHMpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL0NE
TVNlc3Npb25NZWRpYVNvdXJjZUFWRk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpDRE1TZXNz
aW9uTWVkaWFTb3VyY2VBVkZPYmpDOjpzdG9yYWdlUGF0aCBjb25zdCk6CisgICAgICAgICogcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDLm1tOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDOjpzdHJlYW1TZXNzaW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vb2JqYy9Tb3VyY2VCdWZmZXJQcml2YXRlQVZGT2JqQy5tbToKKyAg
ICAgICAgKFdlYkNvcmU6OlNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpkaWRQcm92aWRlQ29u
dGVudEtleVJlcXVlc3RJbml0aWFsaXphdGlvbkRhdGFGb3JUcmFja0lEKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9tYWMvRGF0YURldGVjdG9ySGlnaGxpZ2h0Lm1tOgorICAgICAgICAoV2ViQ29yZTo6
RGF0YURldGVjdG9ySGlnaGxpZ2h0OjpmYWRlSW4pOgorICAgICAgICAoV2ViQ29yZTo6RGF0YURl
dGVjdG9ySGlnaGxpZ2h0OjpmYWRlT3V0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvUGFzdGVi
b2FyZE1hYy5tbToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlN
YWMubW06CisgICAgICAgIChXZWJDb3JlOjprZXlJZGVudGlmaWVyRm9yS2V5RXZlbnQpOgorICAg
ICAgICAoV2ViQ29yZTo6UGxhdGZvcm1LZXlib2FyZEV2ZW50QnVpbGRlcjo6UGxhdGZvcm1LZXli
b2FyZEV2ZW50QnVpbGRlcik6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1BsYXRmb3JtUGFzdGVi
b2FyZE1hYy5tbToKKyAgICAgICAgKFdlYkNvcmU6OlBsYXRmb3JtUGFzdGVib2FyZDo6dHlwZXNT
YWZlRm9yRE9NVG9SZWFkQW5kV3JpdGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZv
cm1QYXN0ZWJvYXJkOjp3cml0ZSk6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVQYXN0ZWJvYXJk
SXRlbSk6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1N0cmluZ1V0aWxpdGllcy5tbToKKyAgICAg
ICAgKFdlYkNvcmU6OndpbGRjYXJkUmVnZXhQYXR0ZXJuU3RyaW5nKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9tYWMvVGhyZWFkQ2hlY2subW06CisgICAgICAgIChXZWJDb3JlUmVwb3J0VGhyZWFkVmlv
bGF0aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvVXNlckFnZW50TWFjLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6c3RhbmRhcmRVc2VyQWdlbnRXaXRoQXBwbGljYXRpb25OYW1lKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlRXJyb3JCYXNlLmNwcDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9uZXR3b3JrL1Jlc291cmNlRXJyb3JCYXNlLmg6CisgICAgICAgICogcGxhdGZvcm0v
bmV0d29yay9jb2NvYS9SYW5nZVJlc3BvbnNlR2VuZXJhdG9yLm1tOgorICAgICAgICAoV2ViQ29y
ZTo6c3ludGhlc2l6ZWRSZXNwb25zZUZvclJhbmdlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyVGhlbWVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjppY29uRm9yQXR0YWNobWVudCk6Cisg
ICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6Om9wZXJhdG9yPDwpOgorICAgICAgICAqIHN2Zy9TVkdGaWx0ZXJFbGVtZW50
Lmg6CisgICAgICAgICogc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5o
OgorICAgICAgICAqIHN2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuaDoKKyAgICAgICAgKiBz
dmcvU1ZHTWFya2VyRWxlbWVudC5oOgorICAgICAgICAqIHN2Zy9TVkdNYXNrRWxlbWVudC5oOgor
ICAgICAgICAqIHN2Zy9TVkdQYXRoU2VnSW1wbC5oOgorICAgICAgICAqIHN2Zy9TVkdSYWRpYWxH
cmFkaWVudEVsZW1lbnQuaDoKKyAgICAgICAgKiBzdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRy
YWl0cy5oOgorICAgICAgICAoV2ViQ29yZTo6U1ZHUHJvcGVydHlUcmFpdHM8Ym9vbD46OnRvU3Ry
aW5nKToKKyAgICAgICAgKiB0ZXN0aW5nL01vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MuaDoKKyAg
ICAgICAgKFdlYkNvcmU6Ok1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3M6OnVuYmxvY2tVUkxIb3N0
KToKKyAgICAgICAgKiB4bWwvWFBhdGhWYWx1ZS5oOgorICAgICAgICAoV2ViQ29yZTo6WFBhdGg6
OlZhbHVlOjpWYWx1ZSk6CisgICAgICAgICogeG1sL1hTTFN0eWxlU2hlZXQuaDoKKwogMjAyMi0w
My0yNCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFN0cmluZzo6
c3BsaXQoKSBzaG91bGQgdGFrZSBpbiBhIFN0cmluZ1ZpZXcgaW5zdGVhZCBvZiBhIFN0cmluZwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkdQVS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViR1BVL0NoYW5n
ZUxvZwppbmRleCA3ZjhlYzNlYzdjN2VkZjEzOWQ2NzUzN2Q5OTI2MWI2ODRlMmJkNDNlLi41ZTMy
YjU3ZmRmZDE4NTlhNGM2NTc1OWEwNGJmMDY4YzA3ZGI3MWFlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViR1BVL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViR1BVL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDQ0IEBACisyMDIyLTAzLTI0ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAg
ICAgICAgU3RhcnQgcHJlcGFyaW5nIFdlYkNvcmUgZm9yIG1ha2luZyB0aGUgU3RyaW5nKGNvbnN0
IGNoYXIqKSBjb25zdHJ1Y3RvciBleHBsaWNpdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4MzM2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgU3RhcnQgcHJlcGFyaW5nIFdlYkNvcmUgZm9yIG1ha2luZyB0
aGUgU3RyaW5nKGNvbnN0IGNoYXIqKSBjb25zdHJ1Y3RvciBleHBsaWNpdC4KKyAgICAgICAgTWFr
aW5nIHRoaXMgY29uc3RydWN0b3IgZXhwbGljaXQgaGVscHMgY2F0Y2ggYXQgY29tcGlsZSB0aW1l
IGNhc2VzIHdoZXJlIHRoZSAiIl9zCisgICAgICAgIHByZWZpeCBpcyBtaXNzaW5nIG9uIFN0cmlu
ZyBsaXRlcmFscy4KKworICAgICAgICAqIFdHU0wvUGFyc2VyLmNwcDoKKyAgICAgICAgKFdHU0w6
OlBhcnNlcjxMZXhlcj46OnBhcnNlR2xvYmFsRGVjbCk6CisgICAgICAgIChXR1NMOjpQYXJzZXI8
TGV4ZXI+OjpwYXJzZUF0dHJpYnV0ZSk6CisgICAgICAgIChXR1NMOjpQYXJzZXI8TGV4ZXI+Ojpw
YXJzZVR5cGVEZWNsKToKKyAgICAgICAgKFdHU0w6OlBhcnNlcjxMZXhlcj46OnBhcnNlU3RvcmFn
ZUNsYXNzKToKKyAgICAgICAgKFdHU0w6OlBhcnNlcjxMZXhlcj46OnBhcnNlQWNjZXNzTW9kZSk6
CisgICAgICAgIChXR1NMOjpQYXJzZXI8TGV4ZXI+OjpwYXJzZVN0YXRlbWVudCk6CisgICAgICAg
IChXR1NMOjpQYXJzZXI8TGV4ZXI+OjpwYXJzZVByaW1hcnlFeHByZXNzaW9uKToKKyAgICAgICAg
KFdHU0w6OlBhcnNlcjxMZXhlcj46OnBhcnNlQ29yZUxIU0V4cHJlc3Npb24pOgorICAgICAgICAq
IFdHU0wvVG9rZW4uY3BwOgorICAgICAgICAoV0dTTDo6dG9TdHJpbmcpOgorICAgICAgICAqIFdl
YkdQVS9BZGFwdGVyLm1tOgorICAgICAgICAoV2ViR1BVOjpBZGFwdGVyOjpyZXF1ZXN0RGV2aWNl
KToKKyAgICAgICAgKiBXZWJHUFUvQnVmZmVyLm1tOgorICAgICAgICAoV2ViR1BVOjpCdWZmZXI6
Om1hcEFzeW5jKToKKyAgICAgICAgKFdlYkdQVTo6QnVmZmVyOjp1bm1hcCk6CisgICAgICAgICog
V2ViR1BVL0NvbW1hbmRFbmNvZGVyLm1tOgorICAgICAgICAoV2ViR1BVOjpDb21tYW5kRW5jb2Rl
cjo6Y29weUJ1ZmZlclRvQnVmZmVyKToKKyAgICAgICAgKFdlYkdQVTo6Q29tbWFuZEVuY29kZXI6
OmNsZWFyQnVmZmVyKToKKyAgICAgICAgKFdlYkdQVTo6Q29tbWFuZEVuY29kZXI6OmZpbmlzaCk6
CisgICAgICAgICogV2ViR1BVL0NvbXB1dGVQaXBlbGluZS5tbToKKyAgICAgICAgKFdlYkdQVTo6
Y3JlYXRlQ29uc3RhbnRWYWx1ZXMpOgorICAgICAgICAoV2ViR1BVOjpEZXZpY2U6OmNyZWF0ZUNv
bXB1dGVQaXBlbGluZSk6CisgICAgICAgICogV2ViR1BVL1F1ZXVlLm1tOgorICAgICAgICAoV2Vi
R1BVOjpRdWV1ZTo6c3VibWl0KToKKyAgICAgICAgKiBXZWJHUFUvU2FtcGxlci5tbToKKyAgICAg
ICAgKFdlYkdQVTo6RGV2aWNlOjpjcmVhdGVTYW1wbGVyKToKKyAgICAgICAgKiBXZWJHUFUvU2hh
ZGVyTW9kdWxlLm1tOgorICAgICAgICAoV2ViR1BVOjplYXJseUNvbXBpbGVTaGFkZXJNb2R1bGUp
OgorCiAyMDIyLTAzLTI0ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+
CiAKICAgICAgICAgW1dlYkdQVV0gRml4IHRoZSB3YXRjaE9TIGJ1aWxkCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDc3
ZTk2YzI5MTE1MTUwMGIyMzhhNjM2MGU1NDE3NDEwNzJmNmFjNTQuLjZhMzRlOGU2ZDVkNTM5OTg2
OTA2MjFiYTFhNGMzNjFiOWZkMjIwOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMjIt
MDMtMjQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBTdGFydCBw
cmVwYXJpbmcgV2ViQ29yZSBmb3IgbWFraW5nIHRoZSBTdHJpbmcoY29uc3QgY2hhciopIGNvbnN0
cnVjdG9yIGV4cGxpY2l0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzgzMzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBTdGFydCBwcmVwYXJpbmcgV2ViQ29yZSBmb3IgbWFraW5nIHRoZSBTdHJpbmcoY29u
c3QgY2hhciopIGNvbnN0cnVjdG9yIGV4cGxpY2l0LgorICAgICAgICBNYWtpbmcgdGhpcyBjb25z
dHJ1Y3RvciBleHBsaWNpdCBoZWxwcyBjYXRjaCBhdCBjb21waWxlIHRpbWUgY2FzZXMgd2hlcmUg
dGhlICIiX3MKKyAgICAgICAgcHJlZml4IGlzIG1pc3Npbmcgb24gU3RyaW5nIGxpdGVyYWxzLgor
CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tOgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWV3SW1wbDo6c2V0UHJvbWlzZWREYXRhRm9ySW1hZ2UpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJWaWV3SW1wbDo6cmVxdWVzdERPTVBhc3RlQWNjZXNzKToKKwogMjAyMi0wMy0yNCAg
Q2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFN0cmluZzo6c3BsaXQo
KSBzaG91bGQgdGFrZSBpbiBhIFN0cmluZ1ZpZXcgaW5zdGVhZCBvZiBhIFN0cmluZwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdExl
Z2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IGE0YmE1MWVkODJlZjE4NjcyNDYwMTQ1YjAyNjlhYjFi
OWNjYTIzMGQuLjA3NjVhZDk1Njg0MGViZGIwMmQ2MDdkOTAxNGUxM2MyNjZhOTU4YjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0TGVnYWN5L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMi0wMy0yNCAgQ2hy
aXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFN0YXJ0IHByZXBhcmluZyBX
ZWJDb3JlIGZvciBtYWtpbmcgdGhlIFN0cmluZyhjb25zdCBjaGFyKikgY29uc3RydWN0b3IgZXhw
bGljaXQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
ODMzNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0
YXJ0IHByZXBhcmluZyBXZWJDb3JlIGZvciBtYWtpbmcgdGhlIFN0cmluZyhjb25zdCBjaGFyKikg
Y29uc3RydWN0b3IgZXhwbGljaXQuCisgICAgICAgIE1ha2luZyB0aGlzIGNvbnN0cnVjdG9yIGV4
cGxpY2l0IGhlbHBzIGNhdGNoIGF0IGNvbXBpbGUgdGltZSBjYXNlcyB3aGVyZSB0aGUgIiJfcwor
ICAgICAgICBwcmVmaXggaXMgbWlzc2luZyBvbiBTdHJpbmcgbGl0ZXJhbHMuCisKKyAgICAgICAg
KiBNaXNjL1dlYk5TUGFzdGVib2FyZEV4dHJhcy5tbToKKyAgICAgICAgKC1bTlNQYXN0ZWJvYXJk
IF93ZWJfZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlRm9yRWxlbWVudDpVUkw6dGl0bGU6YXJjaGl2
ZTpzb3VyY2U6XSk6CisKIDIwMjItMDMtMjQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNv
bT4KIAogICAgICAgICBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoKSBzaG91
bGQgdGFrZSBpbiBTdHJpbmdWaWV3cyBpbnN0ZWFkIG9mIFN0cmluZ3MKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9BUEkvSlNWYWx1ZS5tbSBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9BUEkvSlNWYWx1ZS5tbQppbmRleCBkM2FkMDgwZTFkZGY0ZmU2ZWZiYTkxMzViYTI2ODc2Yzc3
ZGNiYzI2Li5mMTJhMmM0OTUzZjAwMzJkZmI0YjcyZjY4ZmY4MGZlZGRiNjkwMzU0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTVmFsdWUubW0KKysrIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL0FQSS9KU1ZhbHVlLm1tCkBAIC0xMTc5LDcgKzExNzksNyBAQCBzdGF0aWMg
U3RydWN0SGFuZGxlcnMqIGNyZWF0ZVN0cnVjdEhhbmRsZXJNYXAoKQogICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICAvLyBUcnkgdG8gZmluZCBhIG1hdGNoaW5nIHZhbHVlV2l0aDxGb28+OmNv
bnRleHQ6IG1ldGhvZC4KICAgICAgICAgYXV0byB0eXBlID0gYWRvcHRTeXN0ZW08Y2hhcltdPiht
ZXRob2RfY29weVJldHVyblR5cGUobWV0aG9kKSk7Ci0gICAgICAgIFN0cnVjdEhhbmRsZXJzOjpp
dGVyYXRvciBpdGVyID0gc3RydWN0SGFuZGxlcnMtPmZpbmQodHlwZS5nZXQoKSk7CisgICAgICAg
IFN0cnVjdEhhbmRsZXJzOjppdGVyYXRvciBpdGVyID0gc3RydWN0SGFuZGxlcnMtPmZpbmQoU3Ry
aW5nIHsgdHlwZS5nZXQoKSB9KTsKICAgICAgICAgaWYgKGl0ZXIgPT0gc3RydWN0SGFuZGxlcnMt
PmVuZCgpKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBTdHJ1Y3RUYWdIYW5kbGVyJiBo
YW5kbGVyID0gaXRlci0+dmFsdWU7CkBAIC0xMjE3LDcgKzEyMTcsNyBAQCBzdGF0aWMgU3RydWN0
VGFnSGFuZGxlciogaGFuZGVyRm9yU3RydWN0VGFnKGNvbnN0IGNoYXIqIGVuY29kZWRUeXBlKQog
CiAgICAgc3RhdGljIFN0cnVjdEhhbmRsZXJzKiBzdHJ1Y3RIYW5kbGVycyA9IGNyZWF0ZVN0cnVj
dEhhbmRsZXJNYXAoKTsKIAotICAgIFN0cnVjdEhhbmRsZXJzOjppdGVyYXRvciBpdGVyID0gc3Ry
dWN0SGFuZGxlcnMtPmZpbmQoZW5jb2RlZFR5cGUpOworICAgIFN0cnVjdEhhbmRsZXJzOjppdGVy
YXRvciBpdGVyID0gc3RydWN0SGFuZGxlcnMtPmZpbmQoU3RyaW5nIHsgZW5jb2RlZFR5cGUgfSk7
CiAgICAgaWYgKGl0ZXIgPT0gc3RydWN0SGFuZGxlcnMtPmVuZCgpKQogICAgICAgICByZXR1cm4g
MDsKICAgICByZXR1cm4gJml0ZXItPnZhbHVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3Jp
cHRDb3JlL0FQSS9KU1dyYXBwZXJNYXAubW0gYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pT
V3JhcHBlck1hcC5tbQppbmRleCA5NmU0NDc4ODcwY2Q4MWE1ODk5N2QwMmRhNmZhNGZiYTM0NmFm
MTk1Li5mODIxZGY4ZTNlYmVkNTdmNTQwY2QyZjAxZDY0ZWM5NmRjZmE4NmNkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQVBJL0pTV3JhcHBlck1hcC5tbQorKysgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQVBJL0pTV3JhcHBlck1hcC5tbQpAQCAtNDUxLDcgKzQ1MSw3IEBAIHN0
YXRpYyBKU0M6OkpTT2JqZWN0KiBhbGxvY2F0ZUNvbnN0cnVjdG9yRm9yQ3VzdG9tQ2xhc3MoSlND
b250ZXh0ICpjb250ZXh0LCBjb25zCiAgICAgICAgIGZvckVhY2hNZXRob2RJbkNsYXNzKGN1cnJl
bnRDbGFzcywgXihNZXRob2QgbWV0aG9kKSB7CiAgICAgICAgICAgICBTRUwgc2VsZWN0b3IgPSBt
ZXRob2RfZ2V0TmFtZShtZXRob2QpOwogICAgICAgICAgICAgY29uc3QgY2hhciogbmFtZSA9IHNl
bF9nZXROYW1lKHNlbGVjdG9yKTsKLSAgICAgICAgICAgIGF1dG8gaXRlciA9IGluaXRUYWJsZS5m
aW5kKG5hbWUpOworICAgICAgICAgICAgYXV0byBpdGVyID0gaW5pdFRhYmxlLmZpbmQoU3RyaW5n
IHsgbmFtZSB9KTsKIAogICAgICAgICAgICAgaWYgKGl0ZXIgPT0gaW5pdFRhYmxlLmVuZCgpKQog
ICAgICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL3RleHQv
U3RyaW5nSW1wbC5oIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBsLmgKaW5kZXggODZh
OTYxYmVkMzg5NmIwN2VhNmY0ZDYzNDk5YmJjZWZhOTAyZmM3ZS4uYzk5NGIxOTJjZTMxMmQ5MTA1
NDA2OGY4MDcwNjM2ZDY1ZTVhZTE5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvdGV4dC9T
dHJpbmdJbXBsLmgKKysrIGIvU291cmNlL1dURi93dGYvdGV4dC9TdHJpbmdJbXBsLmgKQEAgLTk3
Myw3ICs5NzMsOCBAQCBBTFdBWVNfSU5MSU5FIFJlZjxTdHJpbmdJbXBsPiBTdHJpbmdJbXBsOjpj
cmVhdGVTdWJzdHJpbmdTaGFyaW5nSW1wbChTdHJpbmdJbXBsJgogCiBpbmxpbmUgUmVmPFN0cmlu
Z0ltcGw+IFN0cmluZ0ltcGw6OmNyZWF0ZUZyb21MaXRlcmFsKEFTQ0lJTGl0ZXJhbCBsaXRlcmFs
KQogewotICAgIHJldHVybiBjcmVhdGVGcm9tTGl0ZXJhbChsaXRlcmFsLmNoYXJhY3RlcnMoKSwg
bGl0ZXJhbC5sZW5ndGgoKSk7CisgICAgYXV0byBsZW5ndGggPSBsaXRlcmFsLmxlbmd0aCgpOwor
ICAgIHJldHVybiBsZW5ndGggPyBjcmVhdGVGcm9tTGl0ZXJhbChsaXRlcmFsLmNoYXJhY3RlcnMo
KSwgbGVuZ3RoKSA6IFJlZiB7ICpTdHJpbmdJbXBsOjplbXB0eSgpIH07CiB9CiAKIHRlbXBsYXRl
PHR5cGVuYW1lIENoYXJhY3RlclR5cGU+IEFMV0FZU19JTkxJTkUgUmVmUHRyPFN0cmluZ0ltcGw+
IFN0cmluZ0ltcGw6OnRyeUNyZWF0ZVVuaW5pdGlhbGl6ZWQodW5zaWduZWQgbGVuZ3RoLCBDaGFy
YWN0ZXJUeXBlKiYgb3V0cHV0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvdGV4dC9UZXh0
U3RyZWFtLmggYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRTdHJlYW0uaAppbmRleCBjODVkYTY2
NDFlMTMxNzNjOTcxMTU3YmE0YTk4M2I0NGY1NDY1YmE1Li5kZjcxMmVkMjA1ZjQ3OTc5N2JiNmQ5
ZjUwNjdkNjE0MzExYzY1MGEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRT
dHJlYW0uaAorKysgYi9Tb3VyY2UvV1RGL3d0Zi90ZXh0L1RleHRTdHJlYW0uaApAQCAtMTAwLDYg
KzEwMCwxNSBAQCBwdWJsaWM6CiAgICAgICAgIHRzLmVuZEdyb3VwKCk7CiAgICAgfQogCisgICAg
dGVtcGxhdGU8dHlwZW5hbWUgVD4KKyAgICB2b2lkIGR1bXBQcm9wZXJ0eShjb25zdCBjaGFyKiBu
YW1lLCBjb25zdCBUJiB2YWx1ZSkKKyAgICB7CisgICAgICAgIFRleHRTdHJlYW0mIHRzID0gKnRo
aXM7CisgICAgICAgIHRzLnN0YXJ0R3JvdXAoKTsKKyAgICAgICAgdHMgPDwgbmFtZSA8PCAiICIg
PDwgdmFsdWU7CisgICAgICAgIHRzLmVuZEdyb3VwKCk7CisgICAgfQorCiAgICAgV1RGX0VYUE9S
VF9QUklWQVRFIFN0cmluZyByZWxlYXNlKCk7CiAgICAgCiAgICAgV1RGX0VYUE9SVF9QUklWQVRF
IHZvaWQgc3RhcnRHcm91cCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9h
cHBsZXBheS1hbXMtdWkvQXBwbGVQYXlBTVNVSVBheW1lbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvYXBwbGVwYXktYW1zLXVpL0FwcGxlUGF5QU1TVUlQYXltZW50SGFuZGxl
ci5jcHAKaW5kZXggZjRkYWY4ZDE4YWVjNDk5Nzc1ZDVjMDNjMDhlYWEwNDMyNDExNDNmYi4uNGEz
MjI1Y2U5Y2E0MDZjMDBmZTE2ODQ2MGE1ZDZkMDMwMDQyODU1OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS1hbXMtdWkvQXBwbGVQYXlBTVNVSVBheW1lbnRIYW5k
bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5LWFtcy11aS9BcHBs
ZVBheUFNU1VJUGF5bWVudEhhbmRsZXIuY3BwCkBAIC0zOSw3ICszOSw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIHN0YXRpYyBFeGNlcHRpb25PcjxBcHBsZVBheUFNU1VJUmVxdWVzdD4gY29udmVy
dEFuZFZhbGlkYXRlQXBwbGVQYXlBTVNVSVJlcXVlc3QoRG9jdW1lbnQmIGRvY3VtZW50LCBKU0M6
OkpTVmFsdWUgZGF0YSkKIHsKICAgICBpZiAoZGF0YS5pc0VtcHR5KCkpCi0gICAgICAgIHJldHVy
biBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJNaXNzaW5nIHBheW1lbnQgbWV0aG9kIGRhdGEuIiB9
OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiTWlzc2luZyBwYXltZW50
IG1ldGhvZCBkYXRhLiJfcyB9OwogCiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRShkb2N1bWVudC52bSgpKTsKICAgICBhdXRvIGFwcGxlUGF5QU1TVUlSZXF1ZXN0ID0g
Y29udmVydERpY3Rpb25hcnk8QXBwbGVQYXlBTVNVSVJlcXVlc3Q+KCpkb2N1bWVudC5nbG9iYWxP
YmplY3QoKSwgZGF0YSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxl
cGF5L0FwcGxlUGF5Q29udGFjdEZpZWxkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBw
bGVwYXkvQXBwbGVQYXlDb250YWN0RmllbGQuY3BwCmluZGV4IGRkM2RjYjRlYzdkZDRhNmFmMzkw
YmVkNmMxYTdmMmExNDIzMTM1MjQuLjM3MWI5ZWQ0MjMyODdkOTc3MzU1OWE1Y2Y4YTUxYjY3OTdl
ZjNhYzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBwbGVQ
YXlDb250YWN0RmllbGQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkv
QXBwbGVQYXlDb250YWN0RmllbGQuY3BwCkBAIC00NCw3ICs0NCw3IEBAIEV4Y2VwdGlvbk9yPEFw
cGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpDb250YWN0RmllbGRzPiBjb252ZXJ0QW5kVmFs
aWRhdGUodW5zCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBBcHBsZVBheUNvbnRh
Y3RGaWVsZDo6UGhvbmV0aWNOYW1lOgogICAgICAgICAgICAgaWYgKHZlcnNpb24gPCAzKQotICAg
ICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJcInBob25ldGljTmFt
ZVwiIGlzIG5vdCBhIHZhbGlkIGNvbnRhY3QgZmllbGQuIiB9OworICAgICAgICAgICAgICAgIHJl
dHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJcInBob25ldGljTmFtZVwiIGlzIG5vdCBhIHZh
bGlkIGNvbnRhY3QgZmllbGQuIl9zIH07CiAgICAgICAgICAgICByZXN1bHQucGhvbmV0aWNOYW1l
ID0gdHJ1ZTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNlIEFwcGxlUGF5Q29udGFj
dEZpZWxkOjpQaG9uZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVw
YXkvQXBwbGVQYXlNZXJjaGFudENhcGFiaWxpdHkuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9hcHBsZXBheS9BcHBsZVBheU1lcmNoYW50Q2FwYWJpbGl0eS5jcHAKaW5kZXggYTYyYTJjNzNl
YTMwNjU1MWJlZTg1ZGM5NTYxN2MxMTYyNTY1M2JjMi4uZjY4NGJjOWFjNjFkNDk5YTU1Y2E0ZTE4
MWY1N2I0NjkxNzI1NzlhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBs
ZXBheS9BcHBsZVBheU1lcmNoYW50Q2FwYWJpbGl0eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheU1lcmNoYW50Q2FwYWJpbGl0eS5jcHAKQEAgLTMzLDcg
KzMzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogRXhjZXB0aW9uT3I8QXBwbGVQYXlTZXNzaW9u
UGF5bWVudFJlcXVlc3Q6Ok1lcmNoYW50Q2FwYWJpbGl0aWVzPiBjb252ZXJ0QW5kVmFsaWRhdGUo
Y29uc3QgVmVjdG9yPEFwcGxlUGF5TWVyY2hhbnRDYXBhYmlsaXR5PiYgbWVyY2hhbnRDYXBhYmls
aXRpZXMpCiB7CiAgICAgaWYgKG1lcmNoYW50Q2FwYWJpbGl0aWVzLmlzRW1wdHkoKSkKLSAgICAg
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIkF0IGxlYXN0IG9uZSBtZXJjaGFudCBj
YXBhYmlsaXR5IG11c3QgYmUgcHJvdmlkZWQuIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9u
IHsgVHlwZUVycm9yLCAiQXQgbGVhc3Qgb25lIG1lcmNoYW50IGNhcGFiaWxpdHkgbXVzdCBiZSBw
cm92aWRlZC4iX3MgfTsKIAogICAgIEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpNZXJj
aGFudENhcGFiaWxpdGllcyByZXN1bHQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvYXBwbGVwYXkvQXBwbGVQYXlSZXF1ZXN0QmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5UmVxdWVzdEJhc2UuY3BwCmluZGV4IDI0NTg2ZDVkZDQ3
OWM5MDkzZDQ5Zjk2MTAxMTkxY2FhOGU4NTA5N2UuLjhkMzYyN2E2ZjZhMjdmYjhjODJjOTNhZDU0
NmQ2YWFmMDY5YmYxMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVw
YXkvQXBwbGVQYXlSZXF1ZXN0QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9h
cHBsZXBheS9BcHBsZVBheVJlcXVlc3RCYXNlLmNwcApAQCAtNzMsNyArNzMsNyBAQCBFeGNlcHRp
b25PcjxBcHBsZVBheVNlc3Npb25QYXltZW50UmVxdWVzdD4gY29udmVydEFuZFZhbGlkYXRlKERv
Y3VtZW50JiBkb2N1bWVudAogICAgIHJlc3VsdC5zZXRNZXJjaGFudENhcGFiaWxpdGllcyhtZXJj
aGFudENhcGFiaWxpdGllcy5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7CiAKICAgICBpZiAocmVxdWly
ZXNTdXBwb3J0ZWROZXR3b3Jrcyh2ZXJzaW9uLCByZXF1ZXN0KSAmJiByZXF1ZXN0LnN1cHBvcnRl
ZE5ldHdvcmtzLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJv
ciwgIkF0IGxlYXN0IG9uZSBzdXBwb3J0ZWQgbmV0d29yayBtdXN0IGJlIHByb3ZpZGVkLiIgfTsK
KyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIkF0IGxlYXN0IG9uZSBzdXBw
b3J0ZWQgbmV0d29yayBtdXN0IGJlIHByb3ZpZGVkLiJfcyB9OwogCiAgICAgYXV0byBzdXBwb3J0
ZWROZXR3b3JrcyA9IGNvbnZlcnRBbmRWYWxpZGF0ZShkb2N1bWVudCwgdmVyc2lvbiwgcmVxdWVz
dC5zdXBwb3J0ZWROZXR3b3JrcywgcGF5bWVudENvb3JkaW5hdG9yKTsKICAgICBpZiAoc3VwcG9y
dGVkTmV0d29ya3MuaGFzRXhjZXB0aW9uKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2Vzc2lvbi5jcHAKaW5kZXggNmNiZmNmMDc5NzUwMWE5OTYy
OWZjYzY5MzZiNmYwNTBmMGNmYzg5YS4uNTllMzAwYmViNzA5MjZlZjk4M2FlY2JhNmQ0YWU1YjZl
N2IwNjVjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBs
ZVBheVNlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvQXBw
bGVQYXlTZXNzaW9uLmNwcApAQCAtMzEwLDEwICszMTAsMTAgQEAgRXhjZXB0aW9uT3I8UmVmPEFw
cGxlUGF5U2Vzc2lvbj4+IEFwcGxlUGF5U2Vzc2lvbjo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVu
dCwgdW4KICAgICAgICAgcmV0dXJuIGNhbkNhbGwucmVsZWFzZUV4Y2VwdGlvbigpOwogCiAgICAg
aWYgKCFVc2VyR2VzdHVyZUluZGljYXRvcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkpCi0gICAg
ICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJNdXN0IGNyZWF0ZSBh
IG5ldyBBcHBsZVBheVNlc3Npb24gZnJvbSBhIHVzZXIgZ2VzdHVyZSBoYW5kbGVyLiIgfTsKKyAg
ICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwgIk11c3QgY3JlYXRl
IGEgbmV3IEFwcGxlUGF5U2Vzc2lvbiBmcm9tIGEgdXNlciBnZXN0dXJlIGhhbmRsZXIuIl9zIH07
CiAKICAgICBpZiAoIWRvY3VtZW50LnBhZ2UoKSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7
IEludmFsaWRBY2Nlc3NFcnJvciwgIkZyYW1lIGlzIGRldGFjaGVkIiB9OworICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiRnJhbWUgaXMgZGV0YWNoZWQiX3Mg
fTsKIAogICAgIGF1dG8gY29udmVydGVkUGF5bWVudFJlcXVlc3QgPSBjb252ZXJ0QW5kVmFsaWRh
dGUoZG9jdW1lbnQsIHZlcnNpb24sIFdURk1vdmUocGF5bWVudFJlcXVlc3QpLCBkb2N1bWVudC5w
YWdlKCktPnBheW1lbnRDb29yZGluYXRvcigpKTsKICAgICBpZiAoY29udmVydGVkUGF5bWVudFJl
cXVlc3QuaGFzRXhjZXB0aW9uKCkpCkBAIC00MTIsNyArNDEyLDcgQEAgRXhjZXB0aW9uT3I8dm9p
ZD4gQXBwbGVQYXlTZXNzaW9uOjpvcGVuUGF5bWVudFNldHVwKERvY3VtZW50JiBkb2N1bWVudCwg
Y29uc3QgU3QKICAgICAgICAgcmV0dXJuIGNhbkNhbGwucmVsZWFzZUV4Y2VwdGlvbigpOwogCiAg
ICAgaWYgKCFVc2VyR2VzdHVyZUluZGljYXRvcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkpCi0g
ICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJNdXN0IGNhbGwg
QXBwbGVQYXlTZXNzaW9uLm9wZW5QYXltZW50U2V0dXAgZnJvbSBhIHVzZXIgZ2VzdHVyZSBoYW5k
bGVyLiIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwg
Ik11c3QgY2FsbCBBcHBsZVBheVNlc3Npb24ub3BlblBheW1lbnRTZXR1cCBmcm9tIGEgdXNlciBn
ZXN0dXJlIGhhbmRsZXIuIl9zIH07CiAKICAgICBhdXRvKiBwYWdlID0gZG9jdW1lbnQucGFnZSgp
OwogICAgIGlmICghcGFnZSkKQEAgLTQzMSwxMyArNDMxLDEzIEBAIEV4Y2VwdGlvbk9yPHZvaWQ+
IEFwcGxlUGF5U2Vzc2lvbjo6b3BlblBheW1lbnRTZXR1cChEb2N1bWVudCYgZG9jdW1lbnQsIGNv
bnN0IFN0CiBFeGNlcHRpb25Pcjx2b2lkPiBBcHBsZVBheVNlc3Npb246OmJlZ2luKERvY3VtZW50
JiBkb2N1bWVudCkKIHsKICAgICBpZiAoIWNhbkJlZ2luKCkpCi0gICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJQYXltZW50IHNlc3Npb24gaXMgYWxyZWFkeSBh
Y3RpdmUuIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9y
LCAiUGF5bWVudCBzZXNzaW9uIGlzIGFscmVhZHkgYWN0aXZlLiJfcyB9OwogCiAgICAgaWYgKHBh
eW1lbnRDb29yZGluYXRvcigpLmhhc0FjdGl2ZVNlc3Npb24oKSkKLSAgICAgICAgcmV0dXJuIEV4
Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwgIlBhZ2UgYWxyZWFkeSBoYXMgYW4gYWN0aXZl
IHBheW1lbnQgc2Vzc2lvbi4iIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlk
QWNjZXNzRXJyb3IsICJQYWdlIGFscmVhZHkgaGFzIGFuIGFjdGl2ZSBwYXltZW50IHNlc3Npb24u
Il9zIH07CiAKICAgICBpZiAoIXBheW1lbnRDb29yZGluYXRvcigpLmJlZ2luUGF5bWVudFNlc3Np
b24oZG9jdW1lbnQsICp0aGlzLCBtX3BheW1lbnRSZXF1ZXN0KSkKLSAgICAgICAgcmV0dXJuIEV4
Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwgIlRoZXJlIGlzIGFscmVhZHkgaGFzIGFuIGFj
dGl2ZSBwYXltZW50IHNlc3Npb24uIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52
YWxpZEFjY2Vzc0Vycm9yLCAiVGhlcmUgaXMgYWxyZWFkeSBoYXMgYW4gYWN0aXZlIHBheW1lbnQg
c2Vzc2lvbi4iX3MgfTsKIAogICAgIG1fc3RhdGUgPSBTdGF0ZTo6QWN0aXZlOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2V0dXAuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9BcHBsZVBheVNldHVwLmNwcAppbmRleCBl
OGIxMzYxNjkwYjIwZWFmN2UxYzYxNmE3NzJhOGY2MTNkZWZmMzQ4Li44OWU0YTQ1NWYxODVmODE5
MGM3ZWMwZDc2MTc4NGQ1OTQ2YmM2MTYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2FwcGxlcGF5L0FwcGxlUGF5U2V0dXAuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvYXBwbGVwYXkvQXBwbGVQYXlTZXR1cC5jcHAKQEAgLTkxLDcgKzkxLDcgQEAgdm9pZCBBcHBs
ZVBheVNldHVwOjpiZWdpbihEb2N1bWVudCYgZG9jdW1lbnQsIFZlY3RvcjxSZWZQdHI8QXBwbGVQ
YXlTZXR1cEZlYXR1cmUKICAgICB9CiAKICAgICBpZiAoIVVzZXJHZXN0dXJlSW5kaWNhdG9yOjpw
cm9jZXNzaW5nVXNlckdlc3R1cmUoKSkgewotICAgICAgICBwcm9taXNlLnJlamVjdChFeGNlcHRp
b24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJNdXN0IGNhbGwgQXBwbGVQYXlTZXR1cC5iZWdpbiBm
cm9tIGEgdXNlciBnZXN0dXJlIGhhbmRsZXIuIiB9KTsKKyAgICAgICAgcHJvbWlzZS5yZWplY3Qo
RXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiTXVzdCBjYWxsIEFwcGxlUGF5U2V0dXAu
YmVnaW4gZnJvbSBhIHVzZXIgZ2VzdHVyZSBoYW5kbGVyLiJfcyB9KTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9Q
YXltZW50SW5zdGFsbG1lbnRDb25maWd1cmF0aW9uLm1tIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9hcHBsZXBheS9QYXltZW50SW5zdGFsbG1lbnRDb25maWd1cmF0aW9uLm1tCmluZGV4IDY0ZDFk
YmIyMTJlNzAyYzAyYjJiODJjZDFlNjhlODBlNzczZjA4NzAuLjk5Yzc0ZDY4OTE2NDkwNzIyNTBk
ZWM0OWI5NmQwMGNjYTZjNmUxN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
YXBwbGVwYXkvUGF5bWVudEluc3RhbGxtZW50Q29uZmlndXJhdGlvbi5tbQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRJbnN0YWxsbWVudENvbmZpZ3VyYXRpb24u
bW0KQEAgLTIwNyw3ICsyMDcsNyBAQCBFeGNlcHRpb25PcjxQYXltZW50SW5zdGFsbG1lbnRDb25m
aWd1cmF0aW9uPiBQYXltZW50SW5zdGFsbG1lbnRDb25maWd1cmF0aW9uOjpjcgogICAgICAgICBO
U0RhdGEgKmFwcGxpY2F0aW9uTWV0YWRhdGEgPSBbY29uZmlndXJhdGlvbi5hcHBsaWNhdGlvbk1l
dGFkYXRhIGRhdGFVc2luZ0VuY29kaW5nOk5TVVRGOFN0cmluZ0VuY29kaW5nXTsKICAgICAgICAg
YXBwbGljYXRpb25NZXRhZGF0YURpY3Rpb25hcnkgPSBkeW5hbWljX29iamNfY2FzdDxOU0RpY3Rp
b25hcnk+KFtOU0pTT05TZXJpYWxpemF0aW9uIEpTT05PYmplY3RXaXRoRGF0YTphcHBsaWNhdGlv
bk1ldGFkYXRhIG9wdGlvbnM6MCBlcnJvcjpuaWxdKTsKICAgICAgICAgaWYgKCFhcHBsaWNhdGlv
bk1ldGFkYXRhRGljdGlvbmFyeSkKLSAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBl
RXJyb3IsICJhcHBsaWNhdGlvbk1ldGFkYXRhIG11c3QgYmUgYSBKU09OIG9iamVjdCIgfTsKKyAg
ICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJhcHBsaWNhdGlvbk1ldGFk
YXRhIG11c3QgYmUgYSBKU09OIG9iamVjdCJfcyB9OwogICAgIH0KIAogICAgIHJldHVybiBQYXlt
ZW50SW5zdGFsbG1lbnRDb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24sIGFwcGxpY2F0aW9uTWV0
YWRhdGFEaWN0aW9uYXJ5KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBw
bGVwYXkvUGF5bWVudFJlcXVlc3RWYWxpZGF0b3IubW0gYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2FwcGxlcGF5L1BheW1lbnRSZXF1ZXN0VmFsaWRhdG9yLm1tCmluZGV4IGYxMGM1NWQ0OTRhMTFj
MzBjMGExMDVlMWJmYjYxNDM5MDg2NjhjNDAuLmM1MmZkOTJkMDhkM2RjNGUzM2FmN2UwZmRiYmUz
ZTBjOGU4Y2VjYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkv
UGF5bWVudFJlcXVlc3RWYWxpZGF0b3IubW0KKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9h
cHBsZXBheS9QYXltZW50UmVxdWVzdFZhbGlkYXRvci5tbQpAQCAtOTUsMTggKzk1LDE4IEBAIEV4
Y2VwdGlvbk9yPHZvaWQ+IFBheW1lbnRSZXF1ZXN0VmFsaWRhdG9yOjp2YWxpZGF0ZShjb25zdCBB
cHBsZVBheVNlc3Npb25QYXltZW50CiBFeGNlcHRpb25Pcjx2b2lkPiBQYXltZW50UmVxdWVzdFZh
bGlkYXRvcjo6dmFsaWRhdGVUb3RhbChjb25zdCBBcHBsZVBheUxpbmVJdGVtJiB0b3RhbCkKIHsK
ICAgICBpZiAoIXRvdGFsLmxhYmVsKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVy
cm9yLCAiTWlzc2luZyB0b3RhbCBsYWJlbC4iIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBUeXBlRXJyb3IsICJNaXNzaW5nIHRvdGFsIGxhYmVsLiJfcyB9OwogCiAgICAgaWYgKCF0b3Rh
bC5hbW91bnQpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJNaXNzaW5n
IHRvdGFsIGFtb3VudC4iIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3Is
ICJNaXNzaW5nIHRvdGFsIGFtb3VudC4iX3MgfTsKIAogICAgIGRvdWJsZSBhbW91bnQgPSBbTlNE
ZWNpbWFsTnVtYmVyIGRlY2ltYWxOdW1iZXJXaXRoU3RyaW5nOnRvdGFsLmFtb3VudCBsb2NhbGU6
QHsgTlNMb2NhbGVEZWNpbWFsU2VwYXJhdG9yIDogQCIuIiB9XS5kb3VibGVWYWx1ZTsKIAogICAg
IGlmIChhbW91bnQgPCAwKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAi
VG90YWwgYW1vdW50IG11c3Qgbm90IGJlIG5lZ2F0aXZlLiIgfTsKKyAgICAgICAgcmV0dXJuIEV4
Y2VwdGlvbiB7IFR5cGVFcnJvciwgIlRvdGFsIGFtb3VudCBtdXN0IG5vdCBiZSBuZWdhdGl2ZS4i
X3MgfTsKIAogICAgIGlmIChhbW91bnQgPiAxMDAwMDAwMDApCi0gICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBUeXBlRXJyb3IsICJUb3RhbCBhbW91bnQgaXMgdG9vIGJpZy4iIH07CisgICAgICAg
IHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJUb3RhbCBhbW91bnQgaXMgdG9vIGJpZy4i
X3MgfTsKIAogICAgIHJldHVybiB7IH07CiB9CkBAIC0xMTQsNyArMTE0LDcgQEAgRXhjZXB0aW9u
T3I8dm9pZD4gUGF5bWVudFJlcXVlc3RWYWxpZGF0b3I6OnZhbGlkYXRlVG90YWwoY29uc3QgQXBw
bGVQYXlMaW5lSXRlbSYKIHN0YXRpYyBFeGNlcHRpb25Pcjx2b2lkPiB2YWxpZGF0ZUNvdW50cnlD
b2RlKGNvbnN0IFN0cmluZyYgY291bnRyeUNvZGUpCiB7CiAgICAgaWYgKCFjb3VudHJ5Q29kZSkK
LSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIk1pc3NpbmcgY291bnRyeSBj
b2RlLiIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIk1pc3Npbmcg
Y291bnRyeSBjb2RlLiJfcyB9OwogCiAgICAgZm9yIChhdXRvICpjb3VudHJ5Q29kZVB0ciA9IHVs
b2NfZ2V0SVNPQ291bnRyaWVzKCk7ICpjb3VudHJ5Q29kZVB0cjsgKytjb3VudHJ5Q29kZVB0cikg
ewogICAgICAgICBpZiAoY291bnRyeUNvZGUgPT0gKmNvdW50cnlDb2RlUHRyKQpAQCAtMTI3LDcg
KzEyNyw3IEBAIHN0YXRpYyBFeGNlcHRpb25Pcjx2b2lkPiB2YWxpZGF0ZUNvdW50cnlDb2RlKGNv
bnN0IFN0cmluZyYgY291bnRyeUNvZGUpCiBzdGF0aWMgRXhjZXB0aW9uT3I8dm9pZD4gdmFsaWRh
dGVDdXJyZW5jeUNvZGUoY29uc3QgU3RyaW5nJiBjdXJyZW5jeUNvZGUpCiB7CiAgICAgaWYgKCFj
dXJyZW5jeUNvZGUpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJNaXNz
aW5nIGN1cnJlbmN5IGNvZGUuIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVy
cm9yLCAiTWlzc2luZyBjdXJyZW5jeSBjb2RlLiJfcyB9OwogCiAgICAgVUVycm9yQ29kZSBlcnJv
ckNvZGUgPSBVX1pFUk9fRVJST1I7CiAgICAgYXV0byBjdXJyZW5jeUNvZGVzID0gc3RkOjp1bmlx
dWVfcHRyPFVFbnVtZXJhdGlvbiwgSUNVRGVsZXRlcjx1ZW51bV9jbG9zZT4+KHVjdXJyX29wZW5J
U09DdXJyZW5jaWVzKFVDVVJSX0FMTCwgJmVycm9yQ29kZSkpOwpAQCAtMTQ0LDcgKzE0NCw3IEBA
IHN0YXRpYyBFeGNlcHRpb25Pcjx2b2lkPiB2YWxpZGF0ZUN1cnJlbmN5Q29kZShjb25zdCBTdHJp
bmcmIGN1cnJlbmN5Q29kZSkKIHN0YXRpYyBFeGNlcHRpb25Pcjx2b2lkPiB2YWxpZGF0ZU1lcmNo
YW50Q2FwYWJpbGl0aWVzKGNvbnN0IEFwcGxlUGF5U2Vzc2lvblBheW1lbnRSZXF1ZXN0OjpNZXJj
aGFudENhcGFiaWxpdGllcyYgbWVyY2hhbnRDYXBhYmlsaXRpZXMpCiB7CiAgICAgaWYgKCFtZXJj
aGFudENhcGFiaWxpdGllcy5zdXBwb3J0czNEUyAmJiAhbWVyY2hhbnRDYXBhYmlsaXRpZXMuc3Vw
cG9ydHNFTVYgJiYgIW1lcmNoYW50Q2FwYWJpbGl0aWVzLnN1cHBvcnRzQ3JlZGl0ICYmICFtZXJj
aGFudENhcGFiaWxpdGllcy5zdXBwb3J0c0RlYml0KQotICAgICAgICByZXR1cm4gRXhjZXB0aW9u
IHsgVHlwZUVycm9yLCAiTWlzc2luZyBtZXJjaGFudCBjYXBhYmlsaXRpZXMuIiB9OworICAgICAg
ICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiTWlzc2luZyBtZXJjaGFudCBjYXBhYmls
aXRpZXMuIl9zIH07CiAKICAgICByZXR1cm4geyB9OwogfQpAQCAtMTUyLDcgKzE1Miw3IEBAIHN0
YXRpYyBFeGNlcHRpb25Pcjx2b2lkPiB2YWxpZGF0ZU1lcmNoYW50Q2FwYWJpbGl0aWVzKGNvbnN0
IEFwcGxlUGF5U2Vzc2lvblBheW1lCiBzdGF0aWMgRXhjZXB0aW9uT3I8dm9pZD4gdmFsaWRhdGVT
dXBwb3J0ZWROZXR3b3Jrcyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgc3VwcG9ydGVkTmV0d29ya3Mp
CiB7CiAgICAgaWYgKHN1cHBvcnRlZE5ldHdvcmtzLmlzRW1wdHkoKSkKLSAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIk1pc3Npbmcgc3VwcG9ydGVkIG5ldHdvcmtzLiIgfTsK
KyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIk1pc3Npbmcgc3VwcG9ydGVk
IG5ldHdvcmtzLiJfcyB9OwogCiAgICAgcmV0dXJuIHsgfTsKIH0KQEAgLTE2MSw3ICsxNjEsNyBA
QCBzdGF0aWMgRXhjZXB0aW9uT3I8dm9pZD4gdmFsaWRhdGVTaGlwcGluZ01ldGhvZChjb25zdCBB
cHBsZVBheVNoaXBwaW5nTWV0aG9kJiBzaAogewogICAgIE5TRGVjaW1hbE51bWJlciAqYW1vdW50
ID0gW05TRGVjaW1hbE51bWJlciBkZWNpbWFsTnVtYmVyV2l0aFN0cmluZzpzaGlwcGluZ01ldGhv
ZC5hbW91bnQgbG9jYWxlOkB7IE5TTG9jYWxlRGVjaW1hbFNlcGFyYXRvciA6IEAiLiIgfV07CiAg
ICAgaWYgKGFtb3VudC5pbnRlZ2VyVmFsdWUgPCAwKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9u
IHsgVHlwZUVycm9yLCAiU2hpcHBpbmcgbWV0aG9kIGFtb3VudCBtdXN0IGJlIGdyZWF0ZXIgdGhh
biBvciBlcXVhbCB0byB6ZXJvLiIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVF
cnJvciwgIlNoaXBwaW5nIG1ldGhvZCBhbW91bnQgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1
YWwgdG8gemVyby4iX3MgfTsKIAogICAgIHJldHVybiB7IH07CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L1BheW1lbnRTZXNzaW9uLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvYXBwbGVwYXkvUGF5bWVudFNlc3Npb24uY3BwCmluZGV4IDk0Zjk0NTli
OWI0NDhhOTg0MmViMGY0MDIzYzY0MmEwNjhlODNjNzEuLjJlOGY2NmVhODNjMWQ0NzJkYTE4N2Mw
ODM2YjU4MTc2Y2JhZDkxYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBw
bGVwYXkvUGF5bWVudFNlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvYXBw
bGVwYXkvUGF5bWVudFNlc3Npb24uY3BwCkBAIC01MiwyNCArNTIsMjQgQEAgRXhjZXB0aW9uT3I8
dm9pZD4gUGF5bWVudFNlc3Npb246OmNhbkNyZWF0ZVNlc3Npb24oRG9jdW1lbnQmIGRvY3VtZW50
KQogICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgU2VjdXJpdHlFcnJvciwgIlRoaXJkLXBhcnR5
IGlmcmFtZXMgYXJlIG5vdCBhbGxvd2VkIHRvIHJlcXVlc3QgcGF5bWVudHMgdW5sZXNzIGV4cGxp
Y2l0bHkgYWxsb3dlZCB2aWEgRmVhdHVyZS1Qb2xpY3kgKHBheW1lbnQpIl9zIH07CiAKICAgICBp
ZiAoIWRvY3VtZW50LmZyYW1lKCkpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlk
QWNjZXNzRXJyb3IsICJUcnlpbmcgdG8gc3RhcnQgYW4gQXBwbGUgUGF5IHNlc3Npb24gZnJvbSBh
biBpbmFjdGl2ZSBkb2N1bWVudC4iIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZh
bGlkQWNjZXNzRXJyb3IsICJUcnlpbmcgdG8gc3RhcnQgYW4gQXBwbGUgUGF5IHNlc3Npb24gZnJv
bSBhbiBpbmFjdGl2ZSBkb2N1bWVudC4iX3MgfTsKIAogICAgIGlmICghaXNTZWN1cmUoKmRvY3Vt
ZW50LmxvYWRlcigpKSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NF
cnJvciwgIlRyeWluZyB0byBzdGFydCBhbiBBcHBsZSBQYXkgc2Vzc2lvbiBmcm9tIGFuIGluc2Vj
dXJlIGRvY3VtZW50LiIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nl
c3NFcnJvciwgIlRyeWluZyB0byBzdGFydCBhbiBBcHBsZSBQYXkgc2Vzc2lvbiBmcm9tIGFuIGlu
c2VjdXJlIGRvY3VtZW50LiJfcyB9OwogCiAgICAgYXV0byYgdG9wRG9jdW1lbnQgPSBkb2N1bWVu
dC50b3BEb2N1bWVudCgpOwogICAgIGlmICgmZG9jdW1lbnQgIT0gJnRvcERvY3VtZW50KSB7CiAg
ICAgICAgIGF1dG8mIHRvcE9yaWdpbiA9IHRvcERvY3VtZW50LnRvcE9yaWdpbigpOwogCiAgICAg
ICAgIGlmICghZG9jdW1lbnQuc2VjdXJpdHlPcmlnaW4oKS5pc1NhbWVTY2hlbWVIb3N0UG9ydCh0
b3BPcmlnaW4pKQotICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NF
cnJvciwgIlRyeWluZyB0byBzdGFydCBhbiBBcHBsZSBQYXkgc2Vzc2lvbiBmcm9tIGEgZG9jdW1l
bnQgd2l0aCBhbiBkaWZmZXJlbnQgc2VjdXJpdHkgb3JpZ2luIHRoYW4gaXRzIHRvcC1sZXZlbCBm
cmFtZS4iIH07CisgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vy
cm9yLCAiVHJ5aW5nIHRvIHN0YXJ0IGFuIEFwcGxlIFBheSBzZXNzaW9uIGZyb20gYSBkb2N1bWVu
dCB3aXRoIGFuIGRpZmZlcmVudCBzZWN1cml0eSBvcmlnaW4gdGhhbiBpdHMgdG9wLWxldmVsIGZy
YW1lLiJfcyB9OwogCiAgICAgICAgIGZvciAoYXV0byogYW5jZXN0b3JEb2N1bWVudCA9IGRvY3Vt
ZW50LnBhcmVudERvY3VtZW50KCk7IGFuY2VzdG9yRG9jdW1lbnQgIT0gJnRvcERvY3VtZW50OyBh
bmNlc3RvckRvY3VtZW50ID0gYW5jZXN0b3JEb2N1bWVudC0+cGFyZW50RG9jdW1lbnQoKSkgewog
ICAgICAgICAgICAgaWYgKCFpc1NlY3VyZSgqYW5jZXN0b3JEb2N1bWVudC0+bG9hZGVyKCkpKQot
ICAgICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJU
cnlpbmcgdG8gc3RhcnQgYW4gQXBwbGUgUGF5IHNlc3Npb24gZnJvbSBhIGRvY3VtZW50IHdpdGgg
YW4gaW5zZWN1cmUgcGFyZW50IGZyYW1lLiIgfTsKKyAgICAgICAgICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiVHJ5aW5nIHRvIHN0YXJ0IGFuIEFwcGxlIFBh
eSBzZXNzaW9uIGZyb20gYSBkb2N1bWVudCB3aXRoIGFuIGluc2VjdXJlIHBhcmVudCBmcmFtZS4i
X3MgfTsKIAogICAgICAgICAgICAgaWYgKCFhbmNlc3RvckRvY3VtZW50LT5zZWN1cml0eU9yaWdp
bigpLmlzU2FtZVNjaGVtZUhvc3RQb3J0KHRvcE9yaWdpbikpCi0gICAgICAgICAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwgIlRyeWluZyB0byBzdGFydCBhbiBB
cHBsZSBQYXkgc2Vzc2lvbiBmcm9tIGEgZG9jdW1lbnQgd2l0aCBhbiBkaWZmZXJlbnQgc2VjdXJp
dHkgb3JpZ2luIHRoYW4gaXRzIHRvcC1sZXZlbCBmcmFtZS4iIH07CisgICAgICAgICAgICAgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwgIlRyeWluZyB0byBzdGFydCBh
biBBcHBsZSBQYXkgc2Vzc2lvbiBmcm9tIGEgZG9jdW1lbnQgd2l0aCBhbiBkaWZmZXJlbnQgc2Vj
dXJpdHkgb3JpZ2luIHRoYW4gaXRzIHRvcC1sZXZlbCBmcmFtZS4iX3MgfTsKICAgICAgICAgfQog
ICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsZXBheS9wYXlt
ZW50cmVxdWVzdC9BcHBsZVBheVBheW1lbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvYXBwbGVwYXkvcGF5bWVudHJlcXVlc3QvQXBwbGVQYXlQYXltZW50SGFuZGxlci5jcHAK
aW5kZXggNzA1NTFhZTg2NDQ4OWM5ZTY3N2NkOTIxNTNmNWQxZTIyN2E0MDI1NC4uZWI1NmI5MWU1
ZmVkYWM2NmE3OWQwNDZhM2JmZWM4ZGIyOTI3NWQ3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9hcHBsZXBheS9wYXltZW50cmVxdWVzdC9BcHBsZVBheVBheW1lbnRIYW5kbGVy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxlcGF5L3BheW1lbnRyZXF1ZXN0
L0FwcGxlUGF5UGF5bWVudEhhbmRsZXIuY3BwCkBAIC04OSw3ICs4OSw3IEBAIHN0YXRpYyBpbmxp
bmUgUGF5bWVudENvb3JkaW5hdG9yJiBwYXltZW50Q29vcmRpbmF0b3IoRG9jdW1lbnQmIGRvY3Vt
ZW50KQogc3RhdGljIEV4Y2VwdGlvbk9yPEFwcGxlUGF5UmVxdWVzdD4gY29udmVydEFuZFZhbGlk
YXRlQXBwbGVQYXlSZXF1ZXN0KERvY3VtZW50JiBkb2N1bWVudCwgSlNDOjpKU1ZhbHVlIGRhdGEp
CiB7CiAgICAgaWYgKGRhdGEuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
VHlwZUVycm9yLCAiTWlzc2luZyBwYXltZW50IG1ldGhvZCBkYXRhLiIgfTsKKyAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIk1pc3NpbmcgcGF5bWVudCBtZXRob2QgZGF0YS4i
X3MgfTsKIAogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUoZG9jdW1l
bnQudm0oKSk7CiAgICAgYXV0byBhcHBsZVBheVJlcXVlc3QgPSBjb252ZXJ0RGljdGlvbmFyeTxB
cHBsZVBheVJlcXVlc3Q+KCpkb2N1bWVudC5nbG9iYWxPYmplY3QoKSwgZGF0YSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxpY2F0aW9ubWFuaWZlc3QvQXBwbGljYXRp
b25NYW5pZmVzdFBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2FwcGxpY2F0aW9u
bWFuaWZlc3QvQXBwbGljYXRpb25NYW5pZmVzdFBhcnNlci5jcHAKaW5kZXggNmRmZmY0N2I3ZTJj
Yjg5YjU0Zjk1ZWM0NjI3ZDNkN2NlNjkwZjkwYi4uNjgzZGZjZDBjNGU1ZDgzNmEzOTg0ZjM1ZWMy
MWFkMTBmYTM2OTY0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9hcHBsaWNh
dGlvbm1hbmlmZXN0L0FwcGxpY2F0aW9uTWFuaWZlc3RQYXJzZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvYXBwbGljYXRpb25tYW5pZmVzdC9BcHBsaWNhdGlvbk1hbmlmZXN0UGFy
c2VyLmNwcApAQCAtMjgyLDkgKzI4Miw5IEBAIHN0YXRpYyBib29sIGlzSW5TY29wZShjb25zdCBV
UkwmIHNjb3BlVVJMLCBjb25zdCBVUkwmIHRhcmdldFVSTCkKIAogVVJMIEFwcGxpY2F0aW9uTWFu
aWZlc3RQYXJzZXI6OnBhcnNlU2NvcGUoY29uc3QgSlNPTjo6T2JqZWN0JiBtYW5pZmVzdCwgY29u
c3QgVVJMJiBkb2N1bWVudFVSTCwgY29uc3QgVVJMJiBzdGFydFVSTCkKIHsKLSAgICBVUkwgZGVm
YXVsdFNjb3BlIHsgc3RhcnRVUkwsICIuLyIgfTsKKyAgICBVUkwgZGVmYXVsdFNjb3BlIHsgc3Rh
cnRVUkwsICIuLyJfcyB9OwogCi0gICAgYXV0byB2YWx1ZSA9IG1hbmlmZXN0LmdldFZhbHVlKCJz
Y29wZSIpOworICAgIGF1dG8gdmFsdWUgPSBtYW5pZmVzdC5nZXRWYWx1ZSgic2NvcGUiX3MpOwog
ICAgIGlmICghdmFsdWUpCiAgICAgICAgIHJldHVybiBkZWZhdWx0U2NvcGU7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvV2luZG93T3JXb3JrZXJHbG9iYWxTY29w
ZUNhY2hlcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL1dpbmRvd09yV29ya2Vy
R2xvYmFsU2NvcGVDYWNoZXMuY3BwCmluZGV4IGExNzQ5NWQ3NjU5NjU2ZmUyZGQ5Y2NhM2QzNzEx
MjIxZmU0OGQxMDQuLmRmZTE4OGZjMGVmZmRhYzJiZWYwZTlhY2RlOTZjM2VmNjJiODZhNjIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvV2luZG93T3JXb3JrZXJHbG9i
YWxTY29wZUNhY2hlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9XaW5k
b3dPcldvcmtlckdsb2JhbFNjb3BlQ2FjaGVzLmNwcApAQCAtMTI3LDcgKzEyNyw3IEBAIERPTUNh
Y2hlU3RvcmFnZSogV29ya2VyR2xvYmFsU2NvcGVDYWNoZXM6OmNhY2hlcygpIGNvbnN0CiBFeGNl
cHRpb25PcjxET01DYWNoZVN0b3JhZ2UqPiBXaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlQ2FjaGVz
OjpjYWNoZXMoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgRE9NV2luZG93JiB3aW5k
b3cpCiB7CiAgICAgaWYgKGRvd25jYXN0PERvY3VtZW50Pihjb250ZXh0KS5pc1NhbmRib3hlZChT
YW5kYm94T3JpZ2luKSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFNlY3VyaXR5RXJyb3Is
ICJDYWNoZSBzdG9yYWdlIGlzIGRpc2FibGVkIGJlY2F1c2UgdGhlIGNvbnRleHQgaXMgc2FuZGJv
eGVkIGFuZCBsYWNrcyB0aGUgJ2FsbG93LXNhbWUtb3JpZ2luJyBmbGFnIiB9OworICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgU2VjdXJpdHlFcnJvciwgIkNhY2hlIHN0b3JhZ2UgaXMgZGlzYWJs
ZWQgYmVjYXVzZSB0aGUgY29udGV4dCBpcyBzYW5kYm94ZWQgYW5kIGxhY2tzIHRoZSAnYWxsb3ct
c2FtZS1vcmlnaW4nIGZsYWciX3MgfTsKIAogICAgIGlmICghd2luZG93LmlzQ3VycmVudGx5RGlz
cGxheWVkSW5GcmFtZSgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvSW5pdERhdGFSZWdpc3RyeS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VuY3J5cHRlZG1lZGlhL0luaXREYXRhUmVnaXN0cnku
Y3BwCmluZGV4IDZmODg4ZTE3ODU4ZGRhNmQ5NDcxZWMxZjZlZjVkMDY2ZGYwZTQ5OTAuLjhjZGJj
YTc3YWYzODMwN2IyYjRjMGE0ZDI1YTFmMGU5MTFhYmIxZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZW5jcnlwdGVkbWVkaWEvSW5pdERhdGFSZWdpc3RyeS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbmNyeXB0ZWRtZWRpYS9Jbml0RGF0YVJlZ2lzdHJ5LmNw
cApAQCAtMTA1LDcgKzEwNSw3IEBAIHN0YXRpYyBSZWZQdHI8RnJhZ21lbnRlZFNoYXJlZEJ1ZmZl
cj4gc2FuaXRpemVLZXlpZHMoY29uc3QgRnJhZ21lbnRlZFNoYXJlZEJ1ZmZlCiAgICAgYXV0byBr
aWRzQXJyYXkgPSBKU09OOjpBcnJheTo6Y3JlYXRlKCk7CiAgICAgZm9yIChhdXRvJiBidWZmZXIg
OiBrZXlJREJ1ZmZlci52YWx1ZSgpKQogICAgICAgICBraWRzQXJyYXktPnB1c2hTdHJpbmcoYmFz
ZTY0VVJMRW5jb2RlVG9TdHJpbmcoYnVmZmVyLT5tYWtlQ29udGlndW91cygpLT5kYXRhKCksIGJ1
ZmZlci0+c2l6ZSgpKSk7Ci0gICAgb2JqZWN0LT5zZXRBcnJheSgia2lkcyIsIFdURk1vdmUoa2lk
c0FycmF5KSk7CisgICAgb2JqZWN0LT5zZXRBcnJheSgia2lkcyJfcywgV1RGTW92ZShraWRzQXJy
YXkpKTsKIAogICAgIENTdHJpbmcganNvbkRhdGEgPSBvYmplY3QtPnRvSlNPTlN0cmluZygpLnV0
ZjgoKTsKICAgICByZXR1cm4gU2hhcmVkQnVmZmVyOjpjcmVhdGUoanNvbkRhdGEuZGF0YSgpLCBq
c29uRGF0YS5sZW5ndGgoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Vu
dHJpZXNhcGkvRE9NRmlsZVN5c3RlbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2VudHJp
ZXNhcGkvRE9NRmlsZVN5c3RlbS5jcHAKaW5kZXggOWY0ODFkYzYyOWFhNzdhNjBkYTVjNWVlMDQ0
YTczNmJkNDZkM2QyMC4uOWFjYTYxOGI1ZDZjNzJlMjQyNDU5NGI5YTE5ZGUxYTRlMDRmOWM4ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9lbnRyaWVzYXBpL0RPTUZpbGVTeXN0
ZW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZW50cmllc2FwaS9ET01GaWxlU3lz
dGVtLmNwcApAQCAtNTksNyArNTksNyBAQCBzdGF0aWMgRXhjZXB0aW9uT3I8VmVjdG9yPExpc3Rl
ZENoaWxkPj4gbGlzdERpcmVjdG9yeVdpdGhNZXRhZGF0YShjb25zdCBTdHJpbmcmCiB7CiAgICAg
QVNTRVJUKCFpc01haW5UaHJlYWQoKSk7CiAgICAgaWYgKEZpbGVTeXN0ZW06OmZpbGVUeXBlKGZ1
bGxQYXRoKSAhPSBGaWxlU3lzdGVtOjpGaWxlVHlwZTo6RGlyZWN0b3J5KQotICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgTm90Rm91bmRFcnJvciwgIlBhdGggbm8gbG9uZ2VyIGV4aXN0cyBvciBp
cyBubyBsb25nZXIgYSBkaXJlY3RvcnkiIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBO
b3RGb3VuZEVycm9yLCAiUGF0aCBubyBsb25nZXIgZXhpc3RzIG9yIGlzIG5vIGxvbmdlciBhIGRp
cmVjdG9yeSJfcyB9OwogCiAgICAgYXV0byBjaGlsZE5hbWVzID0gRmlsZVN5c3RlbTo6bGlzdERp
cmVjdG9yeShmdWxsUGF0aCk7CiAgICAgVmVjdG9yPExpc3RlZENoaWxkPiBsaXN0ZWRDaGlsZHJl
bjsKQEAgLTE4Myw3ICsxODMsNyBAQCBzdGF0aWMgRXhjZXB0aW9uT3I8U3RyaW5nPiB2YWxpZGF0
ZVBhdGhJc0V4cGVjdGVkVHlwZShjb25zdCBTdHJpbmcmIGZ1bGxQYXRoLCBTdAogICAgICAgICBy
ZXR1cm4gRXhjZXB0aW9uIHsgTm90Rm91bmRFcnJvciwgIlBhdGggZG9lcyBub3QgZXhpc3QiX3Mg
fTsKIAogICAgIGlmICgqZmlsZVR5cGUgIT0gZXhwZWN0ZWRUeXBlKQotICAgICAgICByZXR1cm4g
RXhjZXB0aW9uIHsgVHlwZU1pc21hdGNoRXJyb3IsICJFbnRyeSBhdCBwYXRoIGRvZXMgbm90IGhh
dmUgZXhwZWN0ZWQgdHlwZSIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVNaXNt
YXRjaEVycm9yLCAiRW50cnkgYXQgcGF0aCBkb2VzIG5vdCBoYXZlIGV4cGVjdGVkIHR5cGUiX3Mg
fTsKIAogICAgIHJldHVybiBXVEZNb3ZlKHZpcnR1YWxQYXRoKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hCb2R5Q29uc3VtZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEJvZHlDb25zdW1lci5jcHAKaW5kZXggOTM2YTdl
NDMwNTZjNDU1ZTI5YjI1NTBmYjQwMTBiZWVlYzNiMzVlYi4uNmY2ZGM2N2NjMzRiOGQ0MDdhYmY2
ZGU0NjRjNTI5Yzc0MjM2ZDVmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
ZXRjaC9GZXRjaEJvZHlDb25zdW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
ZXRjaC9GZXRjaEJvZHlDb25zdW1lci5jcHAKQEAgLTE1MCwxMCArMTUwLDEwIEBAIFJlZlB0cjxE
T01Gb3JtRGF0YT4gRmV0Y2hCb2R5Q29uc3VtZXI6OnBhY2thZ2VGb3JtRGF0YShTY3JpcHRFeGVj
dXRpb25Db250ZXh0KiBjCiAgICAgICAgICAgICBjb250ZW50RGlzcG9zaXRpb25QYXJhbWV0ZXJz
QmVnaW4rKzsKIAogICAgICAgICBhdXRvIHBhcmFtZXRlcnMgPSBwYXJzZVBhcmFtZXRlcnMoU3Ry
aW5nVmlldyhoZWFkZXIpLnN1YnN0cmluZyhjb250ZW50RGlzcG9zaXRpb25QYXJhbWV0ZXJzQmVn
aW4sIGNvbnRlbnREaXNwb3NpdGlvbkVuZCAtIGNvbnRlbnREaXNwb3NpdGlvblBhcmFtZXRlcnNC
ZWdpbiksIDApOwotICAgICAgICBTdHJpbmcgbmFtZSA9IHBhcmFtZXRlcnMuZ2V0KCJuYW1lIik7
CisgICAgICAgIFN0cmluZyBuYW1lID0gcGFyYW1ldGVycy5nZXQoIm5hbWUiX3MpOwogICAgICAg
ICBpZiAoIW5hbWUpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIFN0cmluZyBm
aWxlbmFtZSA9IHBhcmFtZXRlcnMuZ2V0KCJmaWxlbmFtZSIpOworICAgICAgICBTdHJpbmcgZmls
ZW5hbWUgPSBwYXJhbWV0ZXJzLmdldCgiZmlsZW5hbWUiX3MpOwogICAgICAgICBpZiAoIWZpbGVu
YW1lKQogICAgICAgICAgICAgZm9ybS5hcHBlbmQobmFtZSwgU3RyaW5nOjpmcm9tVVRGOChib2R5
QmVnaW4sIGJvZHlMZW5ndGgpKTsKICAgICAgICAgZWxzZSB7CkBAIC0xNzYsNyArMTc2LDcgQEAg
UmVmUHRyPERPTUZvcm1EYXRhPiBGZXRjaEJvZHlDb25zdW1lcjo6cGFja2FnZUZvcm1EYXRhKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIGMKICAgICAgICAgaWYgKCFtaW1lVHlwZSkKICAgICAgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAgICAgIGlmIChlcXVhbElnbm9yaW5nQVNDSUlD
YXNlKG1pbWVUeXBlLT50eXBlLCAibXVsdGlwYXJ0IikgJiYgZXF1YWxJZ25vcmluZ0FTQ0lJQ2Fz
ZShtaW1lVHlwZS0+c3VidHlwZSwgImZvcm0tZGF0YSIpKSB7Ci0gICAgICAgICAgICBhdXRvIGl0
ZXJhdG9yID0gbWltZVR5cGUtPnBhcmFtZXRlcnMuZmluZCgiYm91bmRhcnkiKTsKKyAgICAgICAg
ICAgIGF1dG8gaXRlcmF0b3IgPSBtaW1lVHlwZS0+cGFyYW1ldGVycy5maW5kKCJib3VuZGFyeSJf
cyk7CiAgICAgICAgICAgICBpZiAoaXRlcmF0b3IgIT0gbWltZVR5cGUtPnBhcmFtZXRlcnMuZW5k
KCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGl0ZXJhdG9yLT52YWx1ZTsKICAgICAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEhlYWRlcnMuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaEhlYWRlcnMuY3BwCmluZGV4IDA5
MGY1Y2Y0ZDBmZjExNWQ4NGJmNzMzYjdhN2IxNWIzNGYyZTNhNWYuLjI2YWYwOGYxYWQ1ZTE0Y2Jk
MWFlZDc0ZWZkZWEzZjFhZDM4YmU2MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZmV0Y2gvRmV0Y2hIZWFkZXJzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Zl
dGNoL0ZldGNoSGVhZGVycy5jcHAKQEAgLTEwMiw3ICsxMDIsNyBAQCBzdGF0aWMgRXhjZXB0aW9u
T3I8dm9pZD4gZmlsbEhlYWRlck1hcChIVFRQSGVhZGVyTWFwJiBoZWFkZXJzLCBjb25zdCBGZXRj
aEhlYWRlcgogICAgICAgICBhdXRvJiBzZXF1ZW5jZSA9IHN0ZDo6Z2V0PFZlY3RvcjxWZWN0b3I8
U3RyaW5nPj4+KGhlYWRlcnNJbml0KTsKICAgICAgICAgZm9yIChhdXRvJiBoZWFkZXIgOiBzZXF1
ZW5jZSkgewogICAgICAgICAgICAgaWYgKGhlYWRlci5zaXplKCkgIT0gMikKLSAgICAgICAgICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiSGVhZGVyIHN1Yi1zZXF1ZW5jZSBt
dXN0IGNvbnRhaW4gZXhhY3RseSB0d28gaXRlbXMiIH07CisgICAgICAgICAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIkhlYWRlciBzdWItc2VxdWVuY2UgbXVzdCBjb250YWlu
IGV4YWN0bHkgdHdvIGl0ZW1zIl9zIH07CiAgICAgICAgICAgICBhdXRvIHJlc3VsdCA9IGFwcGVu
ZFRvSGVhZGVyTWFwKGhlYWRlclswXSwgaGVhZGVyWzFdLCBoZWFkZXJzLCBndWFyZCk7CiAgICAg
ICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQogICAgICAgICAgICAgICAgIHJldHVy
biByZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9mZXRjaC9GZXRjaExvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Zl
dGNoL0ZldGNoTG9hZGVyLmNwcAppbmRleCA3Y2VhMzJhOTU4ZjE0YmQ4Yzg3OGJjNTFmNDljMWQx
YWRhNmQ2YTM3Li5mNzQzMzhlOGQzMjIyNzBhMzgwZjI0OWE2NDJlNGVhMGY5MjI4NmUxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoTG9hZGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoTG9hZGVyLmNwcApAQCAtNjksNyAr
NjksNyBAQCB2b2lkIEZldGNoTG9hZGVyOjpzdGFydExvYWRpbmdCbG9iVVJMKFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQmIGNvbnRleHQsIGNvbnN0IFVSTAogCiAgICAgUmVzb3VyY2VSZXF1ZXN0IHJl
cXVlc3QobV91cmxGb3JSZWFkaW5nKTsKICAgICByZXF1ZXN0LnNldEluaXRpYXRvcklkZW50aWZp
ZXIoY29udGV4dC5yZXNvdXJjZVJlcXVlc3RJZGVudGlmaWVyKCkpOwotICAgIHJlcXVlc3Quc2V0
SFRUUE1ldGhvZCgiR0VUIik7CisgICAgcmVxdWVzdC5zZXRIVFRQTWV0aG9kKCJHRVQiX3MpOwog
CiAgICAgVGhyZWFkYWJsZUxvYWRlck9wdGlvbnMgb3B0aW9uczsKICAgICBvcHRpb25zLnNlbmRM
b2FkQ2FsbGJhY2tzID0gU2VuZENhbGxiYWNrUG9saWN5OjpTZW5kQ2FsbGJhY2tzOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1G
aWxlSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9G
aWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAKaW5kZXggMGU5NWZmZGVlNGFmODU0ZTg3ZTI1M2E5Y2Rl
ODYzNDJmNWEyZWRmOC4uYWEzMmE5YmIyMmZiNGJiZjkzYmFkZDYxZDEyODhiYmY5MDhkM2Q1ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVT
eXN0ZW1GaWxlSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0
ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuY3BwCkBAIC01NSw3ICs1NSw3IEBAIEZpbGVT
eXN0ZW1GaWxlSGFuZGxlOjpGaWxlU3lzdGVtRmlsZUhhbmRsZShTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiBjb250ZXh0LCBTdHJpCiB2b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpnZXRGaWxlKERP
TVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8RmlsZT4+JiYgcHJvbWlzZSkKIHsKICAgICBp
ZiAoaXNDbG9zZWQoKSkKLSAgICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7
IEludmFsaWRTdGF0ZUVycm9yLCAiSGFuZGxlIGlzIGNsb3NlZCIgfSk7CisgICAgICAgIHJldHVy
biBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkhhbmRsZSBp
cyBjbG9zZWQiX3MgfSk7CiAKICAgICBjb25uZWN0aW9uKCkuZ2V0RmlsZShpZGVudGlmaWVyKCks
IFtwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlz
ZSldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKICAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRp
b24oKSkKQEAgLTcyLDcgKzcyLDcgQEAgdm9pZCBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Z2V0Rmls
ZShET01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNlPEZpbGU+PiYmIHByb20KIHZvaWQgRmls
ZVN5c3RlbUZpbGVIYW5kbGU6OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoRE9NUHJvbWlzZURlZmVy
cmVkPElETEludGVyZmFjZTxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZT4+JiYgcHJvbWlzZSkK
IHsKICAgICBpZiAoaXNDbG9zZWQoKSkKLSAgICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0KEV4
Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiSGFuZGxlIGlzIGNsb3NlZCIgfSk7CisgICAg
ICAgIHJldHVybiBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwg
IkhhbmRsZSBpcyBjbG9zZWQiX3MgfSk7CiAKICAgICBjb25uZWN0aW9uKCkuY3JlYXRlU3luY0Fj
Y2Vzc0hhbmRsZShpZGVudGlmaWVyKCksIFtwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwg
cHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKICAgICAg
ICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmNwcAppbmRl
eCAwYjlmNzg4ZTQ5MDNmYTdlN2FlNDI4OTdhMDAyYjk2ZThkZmUxM2Q3Li45ZTBjYzg3NGIwYzcz
NDQ1N2M0OWM0YzM4NmRhYzJiM2JmNGRlNTk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuY3BwCkBA
IC02MCw3ICs2MCw3IEBAIHZvaWQgRmlsZVN5c3RlbUhhbmRsZTo6Y2xvc2UoKQogdm9pZCBGaWxl
U3lzdGVtSGFuZGxlOjppc1NhbWVFbnRyeShGaWxlU3lzdGVtSGFuZGxlJiBoYW5kbGUsIERPTVBy
b21pc2VEZWZlcnJlZDxJRExCb29sZWFuPiYmIHByb21pc2UpIGNvbnN0CiB7CiAgICAgaWYgKGlz
Q2xvc2VkKCkpCi0gICAgICAgIHJldHVybiBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZh
bGlkU3RhdGVFcnJvciwgIkhhbmRsZSBpcyBjbG9zZWQiIH0pOworICAgICAgICByZXR1cm4gcHJv
bWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJIYW5kbGUgaXMgY2xv
c2VkIl9zIH0pOwogCiAgICAgaWYgKG1fa2luZCAhPSBoYW5kbGUua2luZCgpIHx8IG1fbmFtZSAh
PSBoYW5kbGUubmFtZSgpKQogICAgICAgICByZXR1cm4gcHJvbWlzZS5yZXNvbHZlKGZhbHNlKTsK
QEAgLTczLDcgKzczLDcgQEAgdm9pZCBGaWxlU3lzdGVtSGFuZGxlOjppc1NhbWVFbnRyeShGaWxl
U3lzdGVtSGFuZGxlJiBoYW5kbGUsIERPTVByb21pc2VEZWZlcnJlZDwKIHZvaWQgRmlsZVN5c3Rl
bUhhbmRsZTo6bW92ZShGaWxlU3lzdGVtSGFuZGxlJiBkZXN0aW5hdGlvbkhhbmRsZSwgY29uc3Qg
U3RyaW5nJiBuZXdOYW1lLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQogewog
ICAgIGlmIChpc0Nsb3NlZCgpKQotICAgICAgICByZXR1cm4gcHJvbWlzZS5yZWplY3QoRXhjZXB0
aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJIYW5kbGUgaXMgY2xvc2VkIiB9KTsKKyAgICAgICAg
cmV0dXJuIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiSGFu
ZGxlIGlzIGNsb3NlZCJfcyB9KTsKIAogICAgIGlmIChkZXN0aW5hdGlvbkhhbmRsZS5raW5kKCkg
IT0gS2luZDo6RGlyZWN0b3J5KQogICAgICAgICByZXR1cm4gcHJvbWlzZS5yZWplY3QoRXhjZXB0
aW9uIHsgVHlwZU1pc21hdGNoRXJyb3IgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2luZGV4ZWRkYi9JREJLZXlEYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQktleURhdGEuY3BwCmluZGV4IDJhMzdjNTI4ZWY1YmY5ZDk1NzczYTBiMTBm
MDI1MjI5YmRlNWE0MTguLjQ2MGYxNzRhMzgxYWI2YWJhNGNhMjk4MzE0NTI2OThiNWQ1MjkwZDAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleURhdGEu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleURhdGEuY3Bw
CkBAIC0xNDksMzUgKzE0OSwzNSBAQCB2b2lkIElEQktleURhdGE6Omlzb2xhdGVkQ29weShjb25z
dCBJREJLZXlEYXRhJiBzb3VyY2UsIElEQktleURhdGEmIGRlc3RpbmF0aW9uKQogCiB2b2lkIElE
QktleURhdGE6OmVuY29kZShLZXllZEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5j
b2Rlci5lbmNvZGVCb29sKCJudWxsIiwgbV9pc051bGwpOworICAgIGVuY29kZXIuZW5jb2RlQm9v
bCgibnVsbCJfcywgbV9pc051bGwpOwogICAgIGlmIChtX2lzTnVsbCkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgZW5jb2Rlci5lbmNvZGVFbnVtKCJ0eXBlIiwgbV90eXBlKTsKKyAgICBlbmNvZGVy
LmVuY29kZUVudW0oInR5cGUiX3MsIG1fdHlwZSk7CiAKICAgICBzd2l0Y2ggKG1fdHlwZSkgewog
ICAgIGNhc2UgSW5kZXhlZERCOjpLZXlUeXBlOjpJbnZhbGlkOgogICAgICAgICByZXR1cm47CiAg
ICAgY2FzZSBJbmRleGVkREI6OktleVR5cGU6OkFycmF5OiB7CiAgICAgICAgIGF1dG8mIGFycmF5
ID0gc3RkOjpnZXQ8VmVjdG9yPElEQktleURhdGE+PihtX3ZhbHVlKTsKLSAgICAgICAgZW5jb2Rl
ci5lbmNvZGVPYmplY3RzKCJhcnJheSIsIGFycmF5LmJlZ2luKCksIGFycmF5LmVuZCgpLCBbXShL
ZXllZEVuY29kZXImIGVuY29kZXIsIGNvbnN0IElEQktleURhdGEmIGtleSkgeworICAgICAgICBl
bmNvZGVyLmVuY29kZU9iamVjdHMoImFycmF5Il9zLCBhcnJheS5iZWdpbigpLCBhcnJheS5lbmQo
KSwgW10oS2V5ZWRFbmNvZGVyJiBlbmNvZGVyLCBjb25zdCBJREJLZXlEYXRhJiBrZXkpIHsKICAg
ICAgICAgICAgIGtleS5lbmNvZGUoZW5jb2Rlcik7CiAgICAgICAgIH0pOwogICAgICAgICByZXR1
cm47CiAgICAgfQogICAgIGNhc2UgSW5kZXhlZERCOjpLZXlUeXBlOjpCaW5hcnk6IHsKICAgICAg
ICAgYXV0byogZGF0YSA9IHN0ZDo6Z2V0PFRocmVhZFNhZmVEYXRhQnVmZmVyPihtX3ZhbHVlKS5k
YXRhKCk7Ci0gICAgICAgIGVuY29kZXIuZW5jb2RlQm9vbCgiaGFzQmluYXJ5IiwgISFkYXRhKTsK
KyAgICAgICAgZW5jb2Rlci5lbmNvZGVCb29sKCJoYXNCaW5hcnkiX3MsICEhZGF0YSk7CiAgICAg
ICAgIGlmIChkYXRhKQotICAgICAgICAgICAgZW5jb2Rlci5lbmNvZGVCeXRlcygiYmluYXJ5Iiwg
ZGF0YS0+ZGF0YSgpLCBkYXRhLT5zaXplKCkpOworICAgICAgICAgICAgZW5jb2Rlci5lbmNvZGVC
eXRlcygiYmluYXJ5Il9zLCBkYXRhLT5kYXRhKCksIGRhdGEtPnNpemUoKSk7CiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAgICAgY2FzZSBJbmRleGVkREI6OktleVR5cGU6OlN0cmluZzoKLSAgICAg
ICAgZW5jb2Rlci5lbmNvZGVTdHJpbmcoInN0cmluZyIsIHN0ZDo6Z2V0PFN0cmluZz4obV92YWx1
ZSkpOworICAgICAgICBlbmNvZGVyLmVuY29kZVN0cmluZygic3RyaW5nIl9zLCBzdGQ6OmdldDxT
dHJpbmc+KG1fdmFsdWUpKTsKICAgICAgICAgcmV0dXJuOwogICAgIGNhc2UgSW5kZXhlZERCOjpL
ZXlUeXBlOjpEYXRlOgogICAgIGNhc2UgSW5kZXhlZERCOjpLZXlUeXBlOjpOdW1iZXI6Ci0gICAg
ICAgIGVuY29kZXIuZW5jb2RlRG91YmxlKCJudW1iZXIiLCBzdGQ6OmdldDxkb3VibGU+KG1fdmFs
dWUpKTsKKyAgICAgICAgZW5jb2Rlci5lbmNvZGVEb3VibGUoIm51bWJlciJfcywgc3RkOjpnZXQ8
ZG91YmxlPihtX3ZhbHVlKSk7CiAgICAgICAgIHJldHVybjsKICAgICBjYXNlIEluZGV4ZWREQjo6
S2V5VHlwZTo6TWF4OgogICAgIGNhc2UgSW5kZXhlZERCOjpLZXlUeXBlOjpNaW46CkBAIC0xODks
NyArMTg5LDcgQEAgdm9pZCBJREJLZXlEYXRhOjplbmNvZGUoS2V5ZWRFbmNvZGVyJiBlbmNvZGVy
KSBjb25zdAogCiBib29sIElEQktleURhdGE6OmRlY29kZShLZXllZERlY29kZXImIGRlY29kZXIs
IElEQktleURhdGEmIHJlc3VsdCkKIHsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlQm9vbCgibnVs
bCIsIHJlc3VsdC5tX2lzTnVsbCkpCisgICAgaWYgKCFkZWNvZGVyLmRlY29kZUJvb2woIm51bGwi
X3MsIHJlc3VsdC5tX2lzTnVsbCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmIChy
ZXN1bHQubV9pc051bGwpCkBAIC0yMDUsNyArMjA1LDcgQEAgYm9vbCBJREJLZXlEYXRhOjpkZWNv
ZGUoS2V5ZWREZWNvZGVyJiBkZWNvZGVyLCBJREJLZXlEYXRhJiByZXN1bHQpCiAgICAgICAgICAg
ICB8fCB2YWx1ZSA9PSBJbmRleGVkREI6OktleVR5cGU6Ok51bWJlcgogICAgICAgICAgICAgfHwg
dmFsdWUgPT0gSW5kZXhlZERCOjpLZXlUeXBlOjpNaW47CiAgICAgfTsKLSAgICBpZiAoIWRlY29k
ZXIuZGVjb2RlRW51bSgidHlwZSIsIHJlc3VsdC5tX3R5cGUsIGVudW1GdW5jdGlvbikpCisgICAg
aWYgKCFkZWNvZGVyLmRlY29kZUVudW0oInR5cGUiX3MsIHJlc3VsdC5tX3R5cGUsIGVudW1GdW5j
dGlvbikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIGlmIChyZXN1bHQubV90eXBlID09
IEluZGV4ZWREQjo6S2V5VHlwZTo6SW52YWxpZCkKQEAgLTIxOSwyNiArMjE5LDI2IEBAIGJvb2wg
SURCS2V5RGF0YTo6ZGVjb2RlKEtleWVkRGVjb2RlciYgZGVjb2RlciwgSURCS2V5RGF0YSYgcmVz
dWx0KQogCiAgICAgaWYgKHJlc3VsdC5tX3R5cGUgPT0gSW5kZXhlZERCOjpLZXlUeXBlOjpTdHJp
bmcpIHsKICAgICAgICAgcmVzdWx0Lm1fdmFsdWUgPSBTdHJpbmcoKTsKLSAgICAgICAgcmV0dXJu
IGRlY29kZXIuZGVjb2RlU3RyaW5nKCJzdHJpbmciLCBzdGQ6OmdldDxTdHJpbmc+KHJlc3VsdC5t
X3ZhbHVlKSk7CisgICAgICAgIHJldHVybiBkZWNvZGVyLmRlY29kZVN0cmluZygic3RyaW5nIl9z
LCBzdGQ6OmdldDxTdHJpbmc+KHJlc3VsdC5tX3ZhbHVlKSk7CiAgICAgfQogCiAgICAgaWYgKHJl
c3VsdC5tX3R5cGUgPT0gSW5kZXhlZERCOjpLZXlUeXBlOjpOdW1iZXIgfHwgcmVzdWx0Lm1fdHlw
ZSA9PSBJbmRleGVkREI6OktleVR5cGU6OkRhdGUpIHsKICAgICAgICAgcmVzdWx0Lm1fdmFsdWUg
PSAwLjA7Ci0gICAgICAgIHJldHVybiBkZWNvZGVyLmRlY29kZURvdWJsZSgibnVtYmVyIiwgc3Rk
OjpnZXQ8ZG91YmxlPihyZXN1bHQubV92YWx1ZSkpOworICAgICAgICByZXR1cm4gZGVjb2Rlci5k
ZWNvZGVEb3VibGUoIm51bWJlciJfcywgc3RkOjpnZXQ8ZG91YmxlPihyZXN1bHQubV92YWx1ZSkp
OwogICAgIH0KIAogICAgIGlmIChyZXN1bHQubV90eXBlID09IEluZGV4ZWREQjo6S2V5VHlwZTo6
QmluYXJ5KSB7CiAgICAgICAgIHJlc3VsdC5tX3ZhbHVlID0gVGhyZWFkU2FmZURhdGFCdWZmZXIo
KTsKIAogICAgICAgICBib29sIGhhc0JpbmFyeURhdGE7Ci0gICAgICAgIGlmICghZGVjb2Rlci5k
ZWNvZGVCb29sKCJoYXNCaW5hcnkiLCBoYXNCaW5hcnlEYXRhKSkKKyAgICAgICAgaWYgKCFkZWNv
ZGVyLmRlY29kZUJvb2woImhhc0JpbmFyeSJfcywgaGFzQmluYXJ5RGF0YSkpCiAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CiAKICAgICAgICAgaWYgKCFoYXNCaW5hcnlEYXRhKQogICAgICAgICAg
ICAgcmV0dXJuIHRydWU7CiAKICAgICAgICAgVmVjdG9yPHVpbnQ4X3Q+IGJ5dGVzOwotICAgICAg
ICBpZiAoIWRlY29kZXIuZGVjb2RlQnl0ZXMoImJpbmFyeSIsIGJ5dGVzKSkKKyAgICAgICAgaWYg
KCFkZWNvZGVyLmRlY29kZUJ5dGVzKCJiaW5hcnkiX3MsIGJ5dGVzKSkKICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKIAogICAgICAgICByZXN1bHQubV92YWx1ZSA9IFRocmVhZFNhZmVEYXRhQnVm
ZmVyOjpjcmVhdGUoV1RGTW92ZShieXRlcykpOwpAQCAtMjUyLDcgKzI1Miw3IEBAIGJvb2wgSURC
S2V5RGF0YTo6ZGVjb2RlKEtleWVkRGVjb2RlciYgZGVjb2RlciwgSURCS2V5RGF0YSYgcmVzdWx0
KQogICAgIH07CiAgICAgCiAgICAgcmVzdWx0Lm1fdmFsdWUgPSBWZWN0b3I8SURCS2V5RGF0YT4o
KTsKLSAgICByZXR1cm4gZGVjb2Rlci5kZWNvZGVPYmplY3RzKCJhcnJheSIsIHN0ZDo6Z2V0PFZl
Y3RvcjxJREJLZXlEYXRhPj4ocmVzdWx0Lm1fdmFsdWUpLCBhcnJheUZ1bmN0aW9uKTsKKyAgICBy
ZXR1cm4gZGVjb2Rlci5kZWNvZGVPYmplY3RzKCJhcnJheSJfcywgc3RkOjpnZXQ8VmVjdG9yPElE
QktleURhdGE+PihyZXN1bHQubV92YWx1ZSksIGFycmF5RnVuY3Rpb24pOwogfQogCiBpbnQgSURC
S2V5RGF0YTo6Y29tcGFyZShjb25zdCBJREJLZXlEYXRhJiBvdGhlcikgY29uc3QKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleVJhbmdlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQktleVJhbmdlLmNwcAppbmRleCAxNGYz
MDNhMDRjMjNhOGJmNDdiZjA2NTlmOTI4NzkyNGY5NjEzYWZiLi5kZWY1MDQ4MTdhZDAzODIyNDc0
ZGQyZjVkMTZkMzY5MGJiOTdmNGE2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2luZGV4ZWRkYi9JREJLZXlSYW5nZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCS2V5UmFuZ2UuY3BwCkBAIC0xMzcsNyArMTM3LDcgQEAgRXhjZXB0aW9uT3I8
Ym9vbD4gSURCS2V5UmFuZ2U6OmluY2x1ZGVzKEpTQzo6SlNHbG9iYWxPYmplY3QmIHN0YXRlLCBK
U0M6OkpTVmFsdWUKICAgICBhdXRvIGtleSA9IHNjcmlwdFZhbHVlVG9JREJLZXkoc3RhdGUsIGtl
eVZhbHVlKTsKICAgICBFWENFUFRJT05fQVNTRVJUX1VOVVNFRChzY29wZSwgIXNjb3BlLmV4Y2Vw
dGlvbigpIHx8ICFrZXktPmlzVmFsaWQoKSk7CiAgICAgaWYgKCFrZXktPmlzVmFsaWQoKSkKLSAg
ICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IERhdGFFcnJvciwgIkZhaWxlZCB0byBleGVjdXRlICdp
bmNsdWRlcycgb24gJ0lEQktleVJhbmdlJzogVGhlIHBhc3NlZC1pbiB2YWx1ZSBpcyBub3QgYSB2
YWxpZCBJbmRleGVkREIga2V5LiIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IERhdGFF
cnJvciwgIkZhaWxlZCB0byBleGVjdXRlICdpbmNsdWRlcycgb24gJ0lEQktleVJhbmdlJzogVGhl
IHBhc3NlZC1pbiB2YWx1ZSBpcyBub3QgYSB2YWxpZCBJbmRleGVkREIga2V5LiJfcyB9OwogCiAg
ICAgaWYgKG1fbG93ZXIpIHsKICAgICAgICAgaW50IGNvbXBhcmUgPSBtX2xvd2VyLT5jb21wYXJl
KGtleS5nZXQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9zZXJ2ZXIvSURCU2VyaWFsaXphdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2lu
ZGV4ZWRkYi9zZXJ2ZXIvSURCU2VyaWFsaXphdGlvbi5jcHAKaW5kZXggMmEyYzFmYzMyOTU4MDVk
NTJmZDU2YWYzMGI0NTVhZTJjY2NjNDg3Ny4uMzNkNGQ0MWM5Mjc3YmZmMjk3MTM3NTJjODkxZDJj
OTA5MWFkMzVjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIv
c2VydmVyL0lEQlNlcmlhbGl6YXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL3NlcnZlci9JREJTZXJpYWxpemF0aW9uLmNwcApAQCAtNDUsMTcgKzQ1LDE3IEBA
IFJlZlB0cjxTaGFyZWRCdWZmZXI+IHNlcmlhbGl6ZUlEQktleVBhdGgoY29uc3Qgc3RkOjpvcHRp
b25hbDxJREJLZXlQYXRoPiYga2V5UGF0CiAKICAgICBpZiAoa2V5UGF0aCkgewogICAgICAgICBh
dXRvIHZpc2l0b3IgPSBXVEY6Om1ha2VWaXNpdG9yKFsmXShjb25zdCBTdHJpbmcmIHN0cmluZykg
ewotICAgICAgICAgICAgZW5jb2Rlci0+ZW5jb2RlRW51bSgidHlwZSIsIEtleVBhdGhUeXBlOjpT
dHJpbmcpOwotICAgICAgICAgICAgZW5jb2Rlci0+ZW5jb2RlU3RyaW5nKCJzdHJpbmciLCBzdHJp
bmcpOworICAgICAgICAgICAgZW5jb2Rlci0+ZW5jb2RlRW51bSgidHlwZSJfcywgS2V5UGF0aFR5
cGU6OlN0cmluZyk7CisgICAgICAgICAgICBlbmNvZGVyLT5lbmNvZGVTdHJpbmcoInN0cmluZyJf
cywgc3RyaW5nKTsKICAgICAgICAgfSwgWyZdKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiB2ZWN0b3Ip
IHsKLSAgICAgICAgICAgIGVuY29kZXItPmVuY29kZUVudW0oInR5cGUiLCBLZXlQYXRoVHlwZTo6
QXJyYXkpOwotICAgICAgICAgICAgZW5jb2Rlci0+ZW5jb2RlT2JqZWN0cygiYXJyYXkiLCB2ZWN0
b3IuYmVnaW4oKSwgdmVjdG9yLmVuZCgpLCBbXShXZWJDb3JlOjpLZXllZEVuY29kZXImIGVuY29k
ZXIsIGNvbnN0IFN0cmluZyYgc3RyaW5nKSB7Ci0gICAgICAgICAgICAgICAgZW5jb2Rlci5lbmNv
ZGVTdHJpbmcoInN0cmluZyIsIHN0cmluZyk7CisgICAgICAgICAgICBlbmNvZGVyLT5lbmNvZGVF
bnVtKCJ0eXBlIl9zLCBLZXlQYXRoVHlwZTo6QXJyYXkpOworICAgICAgICAgICAgZW5jb2Rlci0+
ZW5jb2RlT2JqZWN0cygiYXJyYXkiX3MsIHZlY3Rvci5iZWdpbigpLCB2ZWN0b3IuZW5kKCksIFtd
KFdlYkNvcmU6OktleWVkRW5jb2RlciYgZW5jb2RlciwgY29uc3QgU3RyaW5nJiBzdHJpbmcpIHsK
KyAgICAgICAgICAgICAgICBlbmNvZGVyLmVuY29kZVN0cmluZygic3RyaW5nIl9zLCBzdHJpbmcp
OwogICAgICAgICAgICAgfSk7CiAgICAgICAgIH0pOwogICAgICAgICBzdGQ6OnZpc2l0KHZpc2l0
b3IsIGtleVBhdGgudmFsdWUoKSk7CiAgICAgfSBlbHNlCi0gICAgICAgIGVuY29kZXItPmVuY29k
ZUVudW0oInR5cGUiLCBLZXlQYXRoVHlwZTo6TnVsbCk7CisgICAgICAgIGVuY29kZXItPmVuY29k
ZUVudW0oInR5cGUiX3MsIEtleVBhdGhUeXBlOjpOdWxsKTsKIAogICAgIHJldHVybiBlbmNvZGVy
LT5maW5pc2hFbmNvZGluZygpOwogfQpAQCAtNjgsNyArNjgsNyBAQCBib29sIGRlc2VyaWFsaXpl
SURCS2V5UGF0aChjb25zdCB1aW50OF90KiBkYXRhLCBzaXplX3Qgc2l6ZSwgc3RkOjpvcHRpb25h
bDxJREJLZQogICAgIGF1dG8gZGVjb2RlciA9IEtleWVkRGVjb2Rlcjo6ZGVjb2RlcihkYXRhLCBz
aXplKTsKIAogICAgIEtleVBhdGhUeXBlIHR5cGU7Ci0gICAgYm9vbCBzdWNjZWVkZWQgPSBkZWNv
ZGVyLT5kZWNvZGVFbnVtKCJ0eXBlIiwgdHlwZSwgW10oS2V5UGF0aFR5cGUgdmFsdWUpIHsKKyAg
ICBib29sIHN1Y2NlZWRlZCA9IGRlY29kZXItPmRlY29kZUVudW0oInR5cGUiX3MsIHR5cGUsIFtd
KEtleVBhdGhUeXBlIHZhbHVlKSB7CiAgICAgICAgIHJldHVybiB2YWx1ZSA9PSBLZXlQYXRoVHlw
ZTo6TnVsbCB8fCB2YWx1ZSA9PSBLZXlQYXRoVHlwZTo6U3RyaW5nIHx8IHZhbHVlID09IEtleVBh
dGhUeXBlOjpBcnJheTsKICAgICB9KTsKICAgICBpZiAoIXN1Y2NlZWRlZCkKQEAgLTc5LDE1ICs3
OSwxNSBAQCBib29sIGRlc2VyaWFsaXplSURCS2V5UGF0aChjb25zdCB1aW50OF90KiBkYXRhLCBz
aXplX3Qgc2l6ZSwgc3RkOjpvcHRpb25hbDxJREJLZQogICAgICAgICBicmVhazsKICAgICBjYXNl
IEtleVBhdGhUeXBlOjpTdHJpbmc6IHsKICAgICAgICAgU3RyaW5nIHN0cmluZzsKLSAgICAgICAg
aWYgKCFkZWNvZGVyLT5kZWNvZGVTdHJpbmcoInN0cmluZyIsIHN0cmluZykpCisgICAgICAgIGlm
ICghZGVjb2Rlci0+ZGVjb2RlU3RyaW5nKCJzdHJpbmciX3MsIHN0cmluZykpCiAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgICAgIHJlc3VsdCA9IElEQktleVBhdGgoV1RGTW92ZShzdHJp
bmcpKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogICAgIGNhc2UgS2V5UGF0aFR5cGU6OkFycmF5
OiB7CiAgICAgICAgIFZlY3RvcjxTdHJpbmc+IHZlY3RvcjsKLSAgICAgICAgc3VjY2VlZGVkID0g
ZGVjb2Rlci0+ZGVjb2RlT2JqZWN0cygiYXJyYXkiLCB2ZWN0b3IsIFtdKEtleWVkRGVjb2RlciYg
ZGVjb2RlciwgU3RyaW5nJiByZXN1bHQpIHsKLSAgICAgICAgICAgIHJldHVybiBkZWNvZGVyLmRl
Y29kZVN0cmluZygic3RyaW5nIiwgcmVzdWx0KTsKKyAgICAgICAgc3VjY2VlZGVkID0gZGVjb2Rl
ci0+ZGVjb2RlT2JqZWN0cygiYXJyYXkiX3MsIHZlY3RvciwgW10oS2V5ZWREZWNvZGVyJiBkZWNv
ZGVyLCBTdHJpbmcmIHJlc3VsdCkgeworICAgICAgICAgICAgcmV0dXJuIGRlY29kZXIuZGVjb2Rl
U3RyaW5nKCJzdHJpbmciX3MsIHJlc3VsdCk7CiAgICAgICAgIH0pOwogICAgICAgICBpZiAoIXN1
Y2NlZWRlZCkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHAKaW5kZXggZTg5ODdh
NjkxZmUyM2E2OGUzMjkyM2E4YTRhMGQ1YWZhYzA5NTZiNy4uMzIwYzZiMWJiMDE2NWJkY2VkNzRj
MGM5NzY1OGM0ZWI1MDhkMTY3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5jcHAKQEAgLTU4OCw4ICs1ODgsOCBAQCB2b2lk
IElEQlNlcnZlcjo6Y2xvc2VBbmREZWxldGVEYXRhYmFzZXNNb2RpZmllZFNpbmNlKFdhbGxUaW1l
IG1vZGlmaWNhdGlvblRpbWUpCiAgICAgbV91bmlxdWVJREJEYXRhYmFzZU1hcC5jbGVhcigpOwog
CiAgICAgaWYgKCFtX2RhdGFiYXNlRGlyZWN0b3J5UGF0aC5pc0VtcHR5KCkpIHsKLSAgICAgICAg
cmVtb3ZlRGF0YWJhc2VzTW9kaWZpZWRTaW5jZUZvclZlcnNpb24obW9kaWZpY2F0aW9uVGltZSwg
InYwIik7Ci0gICAgICAgIHJlbW92ZURhdGFiYXNlc01vZGlmaWVkU2luY2VGb3JWZXJzaW9uKG1v
ZGlmaWNhdGlvblRpbWUsICJ2MSIpOworICAgICAgICByZW1vdmVEYXRhYmFzZXNNb2RpZmllZFNp
bmNlRm9yVmVyc2lvbihtb2RpZmljYXRpb25UaW1lLCAidjAiX3MpOworICAgICAgICByZW1vdmVE
YXRhYmFzZXNNb2RpZmllZFNpbmNlRm9yVmVyc2lvbihtb2RpZmljYXRpb25UaW1lLCAidjEiX3Mp
OwogICAgIH0KIH0KIApAQCAtNjI0LDggKzYyNCw4IEBAIHZvaWQgSURCU2VydmVyOjpjbG9zZUFu
ZERlbGV0ZURhdGFiYXNlc0Zvck9yaWdpbnMoY29uc3QgVmVjdG9yPFNlY3VyaXR5T3JpZ2luRGF0
CiAgICAgfSk7CiAKICAgICBpZiAoIW1fZGF0YWJhc2VEaXJlY3RvcnlQYXRoLmlzRW1wdHkoKSkg
ewotICAgICAgICByZW1vdmVEYXRhYmFzZXNXaXRoT3JpZ2luc0ZvclZlcnNpb24ob3JpZ2lucywg
InYwIik7Ci0gICAgICAgIHJlbW92ZURhdGFiYXNlc1dpdGhPcmlnaW5zRm9yVmVyc2lvbihvcmln
aW5zLCAidjEiKTsKKyAgICAgICAgcmVtb3ZlRGF0YWJhc2VzV2l0aE9yaWdpbnNGb3JWZXJzaW9u
KG9yaWdpbnMsICJ2MCJfcyk7CisgICAgICAgIHJlbW92ZURhdGFiYXNlc1dpdGhPcmlnaW5zRm9y
VmVyc2lvbihvcmlnaW5zLCAidjEiX3MpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeUlEQkJhY2tpbmdTdG9yZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5SURCQmFj
a2luZ1N0b3JlLmNwcAppbmRleCBkNjMzNTAzMDk5MzA1NWI5YjEyYjc4NDU2NTVkYTgzMzcyYjFh
NTUwLi4xYzI3YWQ2MTc5ZjFiZWFkMGZmMWE2ZGVjZmI5YWUyYjVlOTUzZjljIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvTWVtb3J5SURCQmFja2lu
Z1N0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIv
TWVtb3J5SURCQmFja2luZ1N0b3JlLmNwcApAQCAtNzgsNyArNzgsNyBAQCBJREJFcnJvciBNZW1v
cnlJREJCYWNraW5nU3RvcmU6OmJlZ2luVHJhbnNhY3Rpb24oY29uc3QgSURCVHJhbnNhY3Rpb25J
bmZvJiBpbmZvKQogICAgIExPRyhJbmRleGVkREIsICJNZW1vcnlJREJCYWNraW5nU3RvcmU6OmJl
Z2luVHJhbnNhY3Rpb24iKTsKIAogICAgIGlmIChtX3RyYW5zYWN0aW9ucy5jb250YWlucyhpbmZv
LmlkZW50aWZpZXIoKSkpCi0gICAgICAgIHJldHVybiBJREJFcnJvciB7IEludmFsaWRTdGF0ZUVy
cm9yLCAiQmFja2luZyBzdG9yZSBhc2tlZCB0byBjcmVhdGUgdHJhbnNhY3Rpb24gaXQgYWxyZWFk
eSBoYXMgYSByZWNvcmQgb2YiIH07CisgICAgICAgIHJldHVybiBJREJFcnJvciB7IEludmFsaWRT
dGF0ZUVycm9yLCAiQmFja2luZyBzdG9yZSBhc2tlZCB0byBjcmVhdGUgdHJhbnNhY3Rpb24gaXQg
YWxyZWFkeSBoYXMgYSByZWNvcmQgb2YiX3MgfTsKIAogICAgIGF1dG8gdHJhbnNhY3Rpb24gPSBN
ZW1vcnlCYWNraW5nU3RvcmVUcmFuc2FjdGlvbjo6Y3JlYXRlKCp0aGlzLCBpbmZvKTsKIApAQCAt
MTA0LDcgKzEwNCw3IEBAIElEQkVycm9yIE1lbW9yeUlEQkJhY2tpbmdTdG9yZTo6YWJvcnRUcmFu
c2FjdGlvbihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHRyCiAKICAgICBhdXRvIHRyYW5z
YWN0aW9uID0gbV90cmFuc2FjdGlvbnMudGFrZSh0cmFuc2FjdGlvbklkZW50aWZpZXIpOwogICAg
IGlmICghdHJhbnNhY3Rpb24pCi0gICAgICAgIHJldHVybiBJREJFcnJvciB7IEludmFsaWRTdGF0
ZUVycm9yLCAiQmFja2luZyBzdG9yZSBhc2tlZCB0byBhYm9ydCB0cmFuc2FjdGlvbiBpdCBkaWRu
J3QgaGF2ZSByZWNvcmQgb2YiIH07CisgICAgICAgIHJldHVybiBJREJFcnJvciB7IEludmFsaWRT
dGF0ZUVycm9yLCAiQmFja2luZyBzdG9yZSBhc2tlZCB0byBhYm9ydCB0cmFuc2FjdGlvbiBpdCBk
aWRuJ3QgaGF2ZSByZWNvcmQgb2YiX3MgfTsKIAogICAgIHRyYW5zYWN0aW9uLT5hYm9ydCgpOwog
CkBAIC0xMTcsNyArMTE3LDcgQEAgSURCRXJyb3IgTWVtb3J5SURCQmFja2luZ1N0b3JlOjpjb21t
aXRUcmFuc2FjdGlvbihjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImIHQKIAogICAgIGF1dG8g
dHJhbnNhY3Rpb24gPSBtX3RyYW5zYWN0aW9ucy50YWtlKHRyYW5zYWN0aW9uSWRlbnRpZmllcik7
CiAgICAgaWYgKCF0cmFuc2FjdGlvbikKLSAgICAgICAgcmV0dXJuIElEQkVycm9yIHsgSW52YWxp
ZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3JlIGFza2VkIHRvIGNvbW1pdCB0cmFuc2FjdGlvbiBp
dCBkaWRuJ3QgaGF2ZSByZWNvcmQgb2YiIH07CisgICAgICAgIHJldHVybiBJREJFcnJvciB7IElu
dmFsaWRTdGF0ZUVycm9yLCAiQmFja2luZyBzdG9yZSBhc2tlZCB0byBjb21taXQgdHJhbnNhY3Rp
b24gaXQgZGlkbid0IGhhdmUgcmVjb3JkIG9mIl9zIH07CiAKICAgICB0cmFuc2FjdGlvbi0+Y29t
bWl0KCk7CiAKQEAgLTQ3Myw3ICs0NzMsNyBAQCBJREJFcnJvciBNZW1vcnlJREJCYWNraW5nU3Rv
cmU6OmdlbmVyYXRlS2V5TnVtYmVyKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdAogCiAg
ICAga2V5TnVtYmVyID0gb2JqZWN0U3RvcmUtPmN1cnJlbnRLZXlHZW5lcmF0b3JWYWx1ZSgpOwog
ICAgIGlmIChrZXlOdW1iZXIgPiBtYXhHZW5lcmF0ZWRLZXlWYWx1ZSkKLSAgICAgICAgcmV0dXJu
IElEQkVycm9yIHsgQ29uc3RyYWludEVycm9yLCAiQ2Fubm90IGdlbmVyYXRlIG5ldyBrZXkgdmFs
dWUgb3ZlciAyXjUzIGZvciBvYmplY3Qgc3RvcmUgb3BlcmF0aW9uIiB9OworICAgICAgICByZXR1
cm4gSURCRXJyb3IgeyBDb25zdHJhaW50RXJyb3IsICJDYW5ub3QgZ2VuZXJhdGUgbmV3IGtleSB2
YWx1ZSBvdmVyIDJeNTMgZm9yIG9iamVjdCBzdG9yZSBvcGVyYXRpb24iX3MgfTsKIAogICAgIG9i
amVjdFN0b3JlLT5zZXRLZXlHZW5lcmF0b3JWYWx1ZShrZXlOdW1iZXIgKyAxKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeU9iamVj
dFN0b3JlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9NZW1v
cnlPYmplY3RTdG9yZS5jcHAKaW5kZXggN2VmOWQwYTM4N2Y3MjdkODVlYzBkZWVmNmQzY2FlMGRl
ZDAxNThjZi4uODkyMzFiNGFlMjQ5NjhlODliMGQ3NTgxMTUxZjUyOGVlM2UyZmI0ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL01lbW9yeU9iamVj
dFN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIv
TWVtb3J5T2JqZWN0U3RvcmUuY3BwCkBAIC0zMTAsNyArMzEwLDcgQEAgSURCRXJyb3IgTWVtb3J5
T2JqZWN0U3RvcmU6OnVwZGF0ZUluZGV4ZXNGb3JQdXRSZWNvcmQoY29uc3QgSURCS2V5RGF0YSYg
a2V5LCBjb24KICAgICAgICAgYXV0byogaW5kZXggPSBtX2luZGV4ZXNCeUlkZW50aWZpZXIuZ2V0
KGluZGV4SUQpOwogICAgICAgICBBU1NFUlQoaW5kZXgpOwogICAgICAgICBpZiAoIWluZGV4KSB7
Ci0gICAgICAgICAgICBlcnJvciA9IElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJNaXNz
aW5nIGluZGV4IG1ldGFkYXRhIiB9OworICAgICAgICAgICAgZXJyb3IgPSBJREJFcnJvciB7IElu
dmFsaWRTdGF0ZUVycm9yLCAiTWlzc2luZyBpbmRleCBtZXRhZGF0YSJfcyB9OwogICAgICAgICAg
ICAgYnJlYWs7CiAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvc2VydmVyL1NRTGl0ZUlEQkJhY2tpbmdTdG9yZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmNwcApp
bmRleCAyZmFmM2U5NWQzMWM5ODlmY2UxMmUwNTdmMDZjMjJlMmZmNzNjNDZlLi40ZTIwYTRiOWJl
YjNkZmVkZjU5YzUwMzhiYmM0MmE4MTlkNTI4YzBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2luZ1N0b3JlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvU1FMaXRlSURCQmFja2lu
Z1N0b3JlLmNwcApAQCAtOTgsMzcgKzk4LDM3IEBAIHN0YXRpYyBpbnQgaWRiS2V5Q29sbGF0ZShp
bnQgYUxlbmd0aCwgY29uc3Qgdm9pZCogYUJ1ZmZlciwgaW50IGJMZW5ndGgsIGNvbnN0IHZvCiAg
ICAgcmV0dXJuIGEuY29tcGFyZShiKTsKIH0KIAotc3RhdGljIGNvbnN0IFN0cmluZyB2MVJlY29y
ZHNUYWJsZVNjaGVtYShjb25zdCBTdHJpbmcmIHRhYmxlTmFtZSkKK3N0YXRpYyBjb25zdCBTdHJp
bmcgdjFSZWNvcmRzVGFibGVTY2hlbWEoQVNDSUlMaXRlcmFsIHRhYmxlTmFtZSkKIHsKICAgICBy
ZXR1cm4gbWFrZVN0cmluZygiQ1JFQVRFIFRBQkxFICIsIHRhYmxlTmFtZSwgIiAob2JqZWN0U3Rv
cmVJRCBJTlRFR0VSIE5PVCBOVUxMIE9OIENPTkZMSUNUIEZBSUwsIGtleSBURVhUIENPTExBVEUg
SURCS0VZIE5PVCBOVUxMIE9OIENPTkZMSUNUIEZBSUwgVU5JUVVFIE9OIENPTkZMSUNUIFJFUExB
Q0UsIHZhbHVlIE5PVCBOVUxMIE9OIENPTkZMSUNUIEZBSUwpIik7CiB9CiAKIHN0YXRpYyBjb25z
dCBTdHJpbmcmIHYxUmVjb3Jkc1RhYmxlU2NoZW1hKCkKIHsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8U3RyaW5nPiB2MVJlY29yZHNUYWJsZVNjaGVtYVN0cmluZyh2MVJlY29yZHNUYWJsZVNj
aGVtYSgiUmVjb3JkcyIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiB2MVJl
Y29yZHNUYWJsZVNjaGVtYVN0cmluZyh2MVJlY29yZHNUYWJsZVNjaGVtYSgiUmVjb3JkcyJfcykp
OwogICAgIHJldHVybiB2MVJlY29yZHNUYWJsZVNjaGVtYVN0cmluZzsKIH0KIAogc3RhdGljIGNv
bnN0IFN0cmluZyYgdjFSZWNvcmRzVGFibGVTY2hlbWFBbHRlcm5hdGUoKQogewotICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxTdHJpbmc+IHYxUmVjb3Jkc1RhYmxlU2NoZW1hU3RyaW5nKHYxUmVj
b3Jkc1RhYmxlU2NoZW1hKCJcIlJlY29yZHNcIiIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95
ZWQ8U3RyaW5nPiB2MVJlY29yZHNUYWJsZVNjaGVtYVN0cmluZyh2MVJlY29yZHNUYWJsZVNjaGVt
YSgiXCJSZWNvcmRzXCIiX3MpKTsKICAgICByZXR1cm4gdjFSZWNvcmRzVGFibGVTY2hlbWFTdHJp
bmc7CiB9CiAKLXN0YXRpYyBjb25zdCBTdHJpbmcgdjJSZWNvcmRzVGFibGVTY2hlbWEoY29uc3Qg
U3RyaW5nJiB0YWJsZU5hbWUpCitzdGF0aWMgY29uc3QgU3RyaW5nIHYyUmVjb3Jkc1RhYmxlU2No
ZW1hKEFTQ0lJTGl0ZXJhbCB0YWJsZU5hbWUpCiB7CiAgICAgcmV0dXJuIG1ha2VTdHJpbmcoIkNS
RUFURSBUQUJMRSAiLCB0YWJsZU5hbWUsICIgKG9iamVjdFN0b3JlSUQgSU5URUdFUiBOT1QgTlVM
TCBPTiBDT05GTElDVCBGQUlMLCBrZXkgVEVYVCBDT0xMQVRFIElEQktFWSBOT1QgTlVMTCBPTiBD
T05GTElDVCBGQUlMLCB2YWx1ZSBOT1QgTlVMTCBPTiBDT05GTElDVCBGQUlMKSIpOwogfQogCiBz
dGF0aWMgY29uc3QgU3RyaW5nJiB2MlJlY29yZHNUYWJsZVNjaGVtYSgpCiB7Ci0gICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPFN0cmluZz4gdjJSZWNvcmRzVGFibGVTY2hlbWFTdHJpbmcodjJSZWNv
cmRzVGFibGVTY2hlbWEoIlJlY29yZHMiKSk7CisgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPFN0
cmluZz4gdjJSZWNvcmRzVGFibGVTY2hlbWFTdHJpbmcodjJSZWNvcmRzVGFibGVTY2hlbWEoIlJl
Y29yZHMiX3MpKTsKICAgICByZXR1cm4gdjJSZWNvcmRzVGFibGVTY2hlbWFTdHJpbmc7CiB9CiAK
IHN0YXRpYyBjb25zdCBTdHJpbmcmIHYyUmVjb3Jkc1RhYmxlU2NoZW1hQWx0ZXJuYXRlKCkKIHsK
LSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3RyaW5nPiB2MlJlY29yZHNUYWJsZVNjaGVtYVN0
cmluZyh2MlJlY29yZHNUYWJsZVNjaGVtYSgiXCJSZWNvcmRzXCIiKSk7CisgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPFN0cmluZz4gdjJSZWNvcmRzVGFibGVTY2hlbWFTdHJpbmcodjJSZWNvcmRz
VGFibGVTY2hlbWEoIlwiUmVjb3Jkc1wiIl9zKSk7CiAgICAgcmV0dXJuIHYyUmVjb3Jkc1RhYmxl
U2NoZW1hU3RyaW5nOwogfQogCkBAIC0xNDcsMzcgKzE0NywzNyBAQCBzdGF0aWMgQVNDSUlMaXRl
cmFsIHYzUmVjb3Jkc1RhYmxlU2NoZW1hVGVtcCgpCiAgICAgcmV0dXJuIFRBQkxFX1NDSEVNQV9Q
UkVGSVggIl9UZW1wX1JlY29yZHMiIFYzX1JFQ09SRFNfVEFCTEVfU0NIRU1BX1NVRkZJWDsKIH0K
IAotc3RhdGljIGNvbnN0IFN0cmluZyB2MUluZGV4UmVjb3Jkc1RhYmxlU2NoZW1hKGNvbnN0IFN0
cmluZyYgdGFibGVOYW1lKQorc3RhdGljIGNvbnN0IFN0cmluZyB2MUluZGV4UmVjb3Jkc1RhYmxl
U2NoZW1hKEFTQ0lJTGl0ZXJhbCB0YWJsZU5hbWUpCiB7CiAgICAgcmV0dXJuIG1ha2VTdHJpbmco
IkNSRUFURSBUQUJMRSAiLCB0YWJsZU5hbWUsICIgKGluZGV4SUQgSU5URUdFUiBOT1QgTlVMTCBP
TiBDT05GTElDVCBGQUlMLCBvYmplY3RTdG9yZUlEIElOVEVHRVIgTk9UIE5VTEwgT04gQ09ORkxJ
Q1QgRkFJTCwga2V5IFRFWFQgQ09MTEFURSBJREJLRVkgTk9UIE5VTEwgT04gQ09ORkxJQ1QgRkFJ
TCwgdmFsdWUgTk9UIE5VTEwgT04gQ09ORkxJQ1QgRkFJTCkiKTsKIH0KIAogc3RhdGljIGNvbnN0
IFN0cmluZyYgdjFJbmRleFJlY29yZHNUYWJsZVNjaGVtYSgpCiB7Ci0gICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPFN0cmluZz4gdjFJbmRleFJlY29yZHNUYWJsZVNjaGVtYVN0cmluZyh2MUluZGV4
UmVjb3Jkc1RhYmxlU2NoZW1hKCJJbmRleFJlY29yZHMiKSk7CisgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPFN0cmluZz4gdjFJbmRleFJlY29yZHNUYWJsZVNjaGVtYVN0cmluZyh2MUluZGV4UmVj
b3Jkc1RhYmxlU2NoZW1hKCJJbmRleFJlY29yZHMiX3MpKTsKICAgICByZXR1cm4gdjFJbmRleFJl
Y29yZHNUYWJsZVNjaGVtYVN0cmluZzsKIH0KIAogc3RhdGljIGNvbnN0IFN0cmluZyYgdjFJbmRl
eFJlY29yZHNUYWJsZVNjaGVtYUFsdGVybmF0ZSgpCiB7Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPFN0cmluZz4gdjFJbmRleFJlY29yZHNUYWJsZVNjaGVtYVN0cmluZyh2MUluZGV4UmVjb3Jk
c1RhYmxlU2NoZW1hKCJcIkluZGV4UmVjb3Jkc1wiIikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxTdHJpbmc+IHYxSW5kZXhSZWNvcmRzVGFibGVTY2hlbWFTdHJpbmcodjFJbmRleFJlY29y
ZHNUYWJsZVNjaGVtYSgiXCJJbmRleFJlY29yZHNcIiJfcykpOwogICAgIHJldHVybiB2MUluZGV4
UmVjb3Jkc1RhYmxlU2NoZW1hU3RyaW5nOwogfQogCi1zdGF0aWMgY29uc3QgU3RyaW5nIHYySW5k
ZXhSZWNvcmRzVGFibGVTY2hlbWEoY29uc3QgU3RyaW5nJiB0YWJsZU5hbWUpCitzdGF0aWMgY29u
c3QgU3RyaW5nIHYySW5kZXhSZWNvcmRzVGFibGVTY2hlbWEoQVNDSUlMaXRlcmFsIHRhYmxlTmFt
ZSkKIHsKICAgICByZXR1cm4gbWFrZVN0cmluZygiQ1JFQVRFIFRBQkxFICIsIHRhYmxlTmFtZSwg
IiAoaW5kZXhJRCBJTlRFR0VSIE5PVCBOVUxMIE9OIENPTkZMSUNUIEZBSUwsIG9iamVjdFN0b3Jl
SUQgSU5URUdFUiBOT1QgTlVMTCBPTiBDT05GTElDVCBGQUlMLCBrZXkgVEVYVCBDT0xMQVRFIElE
QktFWSBOT1QgTlVMTCBPTiBDT05GTElDVCBGQUlMLCB2YWx1ZSBURVhUIENPTExBVEUgSURCS0VZ
IE5PVCBOVUxMIE9OIENPTkZMSUNUIEZBSUwpIik7CiB9CiAKIHN0YXRpYyBjb25zdCBTdHJpbmcm
IHYySW5kZXhSZWNvcmRzVGFibGVTY2hlbWEoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxTdHJpbmc+IHYySW5kZXhSZWNvcmRzVGFibGVTY2hlbWFTdHJpbmcodjJJbmRleFJlY29yZHNU
YWJsZVNjaGVtYSgiSW5kZXhSZWNvcmRzIikpOworICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxT
dHJpbmc+IHYySW5kZXhSZWNvcmRzVGFibGVTY2hlbWFTdHJpbmcodjJJbmRleFJlY29yZHNUYWJs
ZVNjaGVtYSgiSW5kZXhSZWNvcmRzIl9zKSk7CiAgICAgcmV0dXJuIHYySW5kZXhSZWNvcmRzVGFi
bGVTY2hlbWFTdHJpbmc7CiB9CiAKIHN0YXRpYyBjb25zdCBTdHJpbmcmIHYySW5kZXhSZWNvcmRz
VGFibGVTY2hlbWFBbHRlcm5hdGUoKQogewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxTdHJp
bmc+IHYySW5kZXhSZWNvcmRzVGFibGVTY2hlbWFTdHJpbmcodjJJbmRleFJlY29yZHNUYWJsZVNj
aGVtYSgiXCJJbmRleFJlY29yZHNcIiIpKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8U3Ry
aW5nPiB2MkluZGV4UmVjb3Jkc1RhYmxlU2NoZW1hU3RyaW5nKHYySW5kZXhSZWNvcmRzVGFibGVT
Y2hlbWEoIlwiSW5kZXhSZWNvcmRzXCIiX3MpKTsKICAgICByZXR1cm4gdjJJbmRleFJlY29yZHNU
YWJsZVNjaGVtYVN0cmluZzsKIH0KIApAQCAtOTE0LDcgKzkxNCw3IEBAIFN0cmluZyBTUUxpdGVJ
REJCYWNraW5nU3RvcmU6OmVuY29kZURhdGFiYXNlTmFtZShjb25zdCBTdHJpbmcmIGRhdGFiYXNl
TmFtZSkKIHsKICAgICBBU1NFUlQoIWRhdGFiYXNlTmFtZS5pc0VtcHR5KCkpOwogICAgIGlmIChk
YXRhYmFzZU5hbWUuaXNFbXB0eSgpKQotICAgICAgICByZXR1cm4gIiUwMCI7CisgICAgICAgIHJl
dHVybiAiJTAwIl9zOwogCiAgICAgU3RyaW5nIGZpbGVuYW1lID0gRmlsZVN5c3RlbTo6ZW5jb2Rl
Rm9yRmlsZU5hbWUoZGF0YWJhc2VOYW1lKTsKICAgICBmaWxlbmFtZS5yZXBsYWNlV2l0aExpdGVy
YWwoJy4nLCAiJTJFIik7CkBAIC05OTYsNyArOTk2LDcgQEAgSURCRXJyb3IgU1FMaXRlSURCQmFj
a2luZ1N0b3JlOjpnZXRPckVzdGFibGlzaERhdGFiYXNlSW5mbyhJREJEYXRhYmFzZUluZm8mIGlu
Zm8KICAgICBtX3NxbGl0ZURCLT5kaXNhYmxlVGhyZWFkaW5nQ2hlY2tzKCk7CiAgICAgbV9zcWxp
dGVEQi0+ZW5hYmxlQXV0b21hdGljV0FMVHJ1bmNhdGlvbigpOwogCi0gICAgbV9zcWxpdGVEQi0+
c2V0Q29sbGF0aW9uRnVuY3Rpb24oIklEQktFWSIsIFtdKGludCBhTGVuZ3RoLCBjb25zdCB2b2lk
KiBhLCBpbnQgYkxlbmd0aCwgY29uc3Qgdm9pZCogYikgeworICAgIG1fc3FsaXRlREItPnNldENv
bGxhdGlvbkZ1bmN0aW9uKCJJREJLRVkiX3MsIFtdKGludCBhTGVuZ3RoLCBjb25zdCB2b2lkKiBh
LCBpbnQgYkxlbmd0aCwgY29uc3Qgdm9pZCogYikgewogICAgICAgICByZXR1cm4gaWRiS2V5Q29s
bGF0ZShhTGVuZ3RoLCBhLCBiTGVuZ3RoLCBiKTsKICAgICB9KTsKIApAQCAtMTkwOSw3ICsxOTA5
LDcgQEAgSURCRXJyb3IgU1FMaXRlSURCQmFja2luZ1N0b3JlOjp1cGRhdGVBbGxJbmRleGVzRm9y
QWRkUmVjb3JkKGNvbnN0IElEQk9iamVjdFN0b3IKICAgICAgICAgQVNTRVJUKGluZGV4SXRlcmF0
b3IgIT0gaW5kZXhNYXAuZW5kKCkpOwogCiAgICAgICAgIGlmIChpbmRleEl0ZXJhdG9yID09IGlu
ZGV4TWFwLmVuZCgpKSB7Ci0gICAgICAgICAgICBlcnJvciA9IElEQkVycm9yIHsgSW52YWxpZFN0
YXRlRXJyb3IsICJNaXNzaW5nIGluZGV4IG1ldGFkYXRhIiB9OworICAgICAgICAgICAgZXJyb3Ig
PSBJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiTWlzc2luZyBpbmRleCBtZXRhZGF0YSJf
cyB9OwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0KIApAQCAtMjU3Myw3ICsyNTczLDcg
QEAgSURCRXJyb3IgU1FMaXRlSURCQmFja2luZ1N0b3JlOjp1bmNoZWNrZWRHZXRLZXlHZW5lcmF0
b3JWYWx1ZShpbnQ2NF90IG9iamVjdFN0b3IKIAogICAgIGludDY0X3QgdmFsdWUgPSBzcWwtPmNv
bHVtbkludDY0KDApOwogICAgIGlmICh2YWx1ZSA8IDApCi0gICAgICAgIHJldHVybiBJREJFcnJv
ciB7IENvbnN0cmFpbnRFcnJvciwgIkN1cnJlbnQga2V5IGdlbmVyYXRvciB2YWx1ZSBmcm9tIGRh
dGFiYXNlIGlzIGludmFsaWQiIH07CisgICAgICAgIHJldHVybiBJREJFcnJvciB7IENvbnN0cmFp
bnRFcnJvciwgIkN1cnJlbnQga2V5IGdlbmVyYXRvciB2YWx1ZSBmcm9tIGRhdGFiYXNlIGlzIGlu
dmFsaWQiX3MgfTsKIAogICAgIG91dFZhbHVlID0gdmFsdWU7CiAgICAgcmV0dXJuIElEQkVycm9y
IHsgfTsKQEAgLTI1ODcsNyArMjU4Nyw3IEBAIElEQkVycm9yIFNRTGl0ZUlEQkJhY2tpbmdTdG9y
ZTo6dW5jaGVja2VkU2V0S2V5R2VuZXJhdG9yVmFsdWUoaW50NjRfdCBvYmplY3RTdG9yCiAgICAg
ICAgIHx8IHNxbC0+YmluZEludDY0KDIsIHZhbHVlKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwg
c3FsLT5zdGVwKCkgIT0gU1FMSVRFX0RPTkUpIHsKICAgICAgICAgTE9HX0VSUk9SKCJDb3VsZCBu
b3QgdXBkYXRlIGtleSBnZW5lcmF0b3IgdmFsdWUgKCVpKSAtICVzIiwgbV9zcWxpdGVEQi0+bGFz
dEVycm9yKCksIG1fc3FsaXRlREItPmxhc3RFcnJvck1zZygpKTsKLSAgICAgICAgcmV0dXJuIElE
QkVycm9yIHsgQ29uc3RyYWludEVycm9yLCAiRXJyb3Igc3RvcmluZyBuZXcga2V5IGdlbmVyYXRv
ciB2YWx1ZSBpbiBkYXRhYmFzZSIgfTsKKyAgICAgICAgcmV0dXJuIElEQkVycm9yIHsgQ29uc3Ry
YWludEVycm9yLCAiRXJyb3Igc3RvcmluZyBuZXcga2V5IGdlbmVyYXRvciB2YWx1ZSBpbiBkYXRh
YmFzZSJfcyB9OwogICAgIH0KIAogICAgIHJldHVybiBJREJFcnJvciB7IH07CkBAIC0yNjE1LDcg
KzI2MTUsNyBAQCBJREJFcnJvciBTUUxpdGVJREJCYWNraW5nU3RvcmU6OmdlbmVyYXRlS2V5TnVt
YmVyKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgdAogICAgICAgICByZXR1cm4gZXJyb3I7
CiAKICAgICBpZiAoY3VycmVudFZhbHVlICsgMSA+IG1heEdlbmVyYXRvclZhbHVlKQotICAgICAg
ICByZXR1cm4gSURCRXJyb3IgeyBDb25zdHJhaW50RXJyb3IsICJDYW5ub3QgZ2VuZXJhdGUgbmV3
IGtleSB2YWx1ZSBvdmVyIDJeNTMgZm9yIG9iamVjdCBzdG9yZSBvcGVyYXRpb24iIH07CisgICAg
ICAgIHJldHVybiBJREJFcnJvciB7IENvbnN0cmFpbnRFcnJvciwgIkNhbm5vdCBnZW5lcmF0ZSBu
ZXcga2V5IHZhbHVlIG92ZXIgMl41MyBmb3Igb2JqZWN0IHN0b3JlIG9wZXJhdGlvbiJfcyB9Owog
CiAgICAgZ2VuZXJhdGVkS2V5ID0gY3VycmVudFZhbHVlICsgMTsKICAgICByZXR1cm4gdW5jaGVj
a2VkU2V0S2V5R2VuZXJhdG9yVmFsdWUob2JqZWN0U3RvcmVJRCwgZ2VuZXJhdGVkS2V5KTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJ
REJEYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIv
VW5pcXVlSURCRGF0YWJhc2UuY3BwCmluZGV4IDIzZTZkM2Y1YzhiYzYzNzZjMzBjNjVjNGY2NzJl
ZTY0YzNmYWY2ZjEuLjc0YWRlZWUzZTMxYWFhZDJkM2Q5NWMyODU1ZDUwOGI4YTU3NmQwYjMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJ
REJEYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2Vy
dmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcApAQCAtNTg5LDcgKzU4OSw3IEBAIHZvaWQgVW5pcXVl
SURCRGF0YWJhc2U6OmNyZWF0ZU9iamVjdFN0b3JlKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rp
b24mIHRyYW5zYWN0CiAgICAgICAgIGF1dG8gdGFza1NpemUgPSBkZWZhdWx0V3JpdGVPcGVyYXRp
b25Db3N0ICsgZXN0aW1hdGVTaXplKGluZm8pOwogICAgICAgICBtX21hbmFnZXItPnJlcXVlc3RT
cGFjZShtX2lkZW50aWZpZXIub3JpZ2luKCksIHRhc2tTaXplLCBbdGhpcywgd2Vha1RoaXMgPSBX
ZWFrUHRyIHsgKnRoaXMgfSwgd2Vha1RyYW5zYWN0aW9uID0gV2Vha1B0ciB7IHRyYW5zYWN0aW9u
IH0sIGluZm8sIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKGJvb2wgZ3JhbnRlZCkgbXV0
YWJsZSB7CiAgICAgICAgICAgICBpZiAoIXdlYWtUaGlzIHx8ICF3ZWFrVHJhbnNhY3Rpb24pCi0g
ICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJy
b3IsICJEYXRhYmFzZSBvciB0cmFuc2FjdGlvbiBpcyBjbG9zZWQiIH0pOworICAgICAgICAgICAg
ICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJh
c2Ugb3IgdHJhbnNhY3Rpb24gaXMgY2xvc2VkIl9zIH0pOwogICAgICAgICAgICAgY3JlYXRlT2Jq
ZWN0U3RvcmUoKndlYWtUcmFuc2FjdGlvbiwgaW5mbywgV1RGTW92ZShjYWxsYmFjayksIGdyYW50
ZWQgPyBTcGFjZUNoZWNrUmVzdWx0OjpQYXNzIDogU3BhY2VDaGVja1Jlc3VsdDo6RmFpbCk7CiAg
ICAgICAgIH0pOwogICAgICAgICByZXR1cm47CkBAIC02MDEsNyArNjAxLDcgQEAgdm9pZCBVbmlx
dWVJREJEYXRhYmFzZTo6Y3JlYXRlT2JqZWN0U3RvcmUoVW5pcXVlSURCRGF0YWJhc2VUcmFuc2Fj
dGlvbiYgdHJhbnNhY3QKICAgICB9CiAKICAgICBpZiAoIW1fYmFja2luZ1N0b3JlKQotICAgICAg
ICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcg
c3RvcmUgaGFzIGNsb3NlZCIgfSk7CisgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7
IEludmFsaWRTdGF0ZUVycm9yLCAiQmFja2luZyBzdG9yZSBoYXMgY2xvc2VkIl9zIH0pOwogCiAg
ICAgYXV0byBlcnJvciA9IG1fYmFja2luZ1N0b3JlLT5jcmVhdGVPYmplY3RTdG9yZSh0cmFuc2Fj
dGlvbi5pbmZvKCkuaWRlbnRpZmllcigpLCBpbmZvKTsKICAgICBpZiAoZXJyb3IuaXNOdWxsKCkp
CkBAIC02MjEsNyArNjIxLDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6ZGVsZXRlT2JqZWN0
U3RvcmUoVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbiYgdHJhbnNhY3QKIAogICAgICAgICBt
X21hbmFnZXItPnJlcXVlc3RTcGFjZShtX2lkZW50aWZpZXIub3JpZ2luKCksIDAsIFt0aGlzLCB3
ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCB3ZWFrVHJhbnNhY3Rpb24gPSBXZWFrUHRyIHsg
dHJhbnNhY3Rpb24gfSwgb2JqZWN0U3RvcmVOYW1lLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJh
Y2spXShib29sIGdyYW50ZWQpIG11dGFibGUgewogICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcyB8
fCAhd2Vha1RyYW5zYWN0aW9uKQotICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJF
cnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJhc2Ugb3IgdHJhbnNhY3Rpb24gaXMgY2xv
c2VkIiB9KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZh
bGlkU3RhdGVFcnJvciwgIkRhdGFiYXNlIG9yIHRyYW5zYWN0aW9uIGlzIGNsb3NlZCJfcyB9KTsK
IAogICAgICAgICAgICAgZGVsZXRlT2JqZWN0U3RvcmUoKndlYWtUcmFuc2FjdGlvbiwgb2JqZWN0
U3RvcmVOYW1lLCBXVEZNb3ZlKGNhbGxiYWNrKSwgZ3JhbnRlZCA/IFNwYWNlQ2hlY2tSZXN1bHQ6
OlBhc3MgOiBTcGFjZUNoZWNrUmVzdWx0OjpGYWlsKTsKICAgICAgICAgfSk7CkBAIC02MzYsNyAr
NjM2LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6ZGVsZXRlT2JqZWN0U3RvcmUoVW5pcXVl
SURCRGF0YWJhc2VUcmFuc2FjdGlvbiYgdHJhbnNhY3QKICAgICB9CiAKICAgICBpZiAoIW1fYmFj
a2luZ1N0b3JlKQotICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3Rh
dGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xvc2VkIiB9KTsKKyAgICAgICAgcmV0dXJuIGNh
bGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3JlIGlzIGNs
b3NlZCJfcyB9KTsKIAogICAgIGF1dG8gZXJyb3IgPSBtX2JhY2tpbmdTdG9yZS0+ZGVsZXRlT2Jq
ZWN0U3RvcmUodHJhbnNhY3Rpb24uaW5mbygpLmlkZW50aWZpZXIoKSwgaW5mby0+aWRlbnRpZmll
cigpKTsKICAgICBpZiAoZXJyb3IuaXNOdWxsKCkpCkBAIC02NTcsNyArNjU3LDcgQEAgdm9pZCBV
bmlxdWVJREJEYXRhYmFzZTo6cmVuYW1lT2JqZWN0U3RvcmUoVW5pcXVlSURCRGF0YWJhc2VUcmFu
c2FjdGlvbiYgdHJhbnNhY3QKICAgICAgICAgYXV0byB0YXNrU2l6ZSA9IGRlZmF1bHRXcml0ZU9w
ZXJhdGlvbkNvc3QgKyBuZXdOYW1lLnNpemVJbkJ5dGVzKCk7CiAgICAgICAgIG1fbWFuYWdlci0+
cmVxdWVzdFNwYWNlKG1faWRlbnRpZmllci5vcmlnaW4oKSwgdGFza1NpemUsIFt0aGlzLCB3ZWFr
VGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCB3ZWFrVHJhbnNhY3Rpb24gPSBXZWFrUHRyIHsgdHJh
bnNhY3Rpb24gfSwgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBuZXdOYW1lLCBjYWxsYmFjayA9IFdU
Rk1vdmUoY2FsbGJhY2spXShib29sIGdyYW50ZWQpIG11dGFibGUgewogICAgICAgICAgICAgaWYg
KCF3ZWFrVGhpcyB8fCAhd2Vha1RyYW5zYWN0aW9uKQotICAgICAgICAgICAgICAgIHJldHVybiBj
YWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJhc2Ugb3IgdHJhbnNh
Y3Rpb24gaXMgY2xvc2VkIiB9KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soSURC
RXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkRhdGFiYXNlIG9yIHRyYW5zYWN0aW9uIGlzIGNs
b3NlZCJfcyB9KTsKIAogICAgICAgICAgICAgcmVuYW1lT2JqZWN0U3RvcmUoKndlYWtUcmFuc2Fj
dGlvbiwgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBuZXdOYW1lLCBXVEZNb3ZlKGNhbGxiYWNrKSwg
Z3JhbnRlZCA/IFNwYWNlQ2hlY2tSZXN1bHQ6OlBhc3MgOiBTcGFjZUNoZWNrUmVzdWx0OjpGYWls
KTsKICAgICAgICAgfSk7CkBAIC02NzYsNyArNjc2LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFz
ZTo6cmVuYW1lT2JqZWN0U3RvcmUoVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbiYgdHJhbnNh
Y3QKICAgICB9CiAKICAgICBpZiAoIW1fYmFja2luZ1N0b3JlKQotICAgICAgICByZXR1cm4gY2Fs
bGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xv
c2VkIiB9KTsKKyAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRl
RXJyb3IsICJCYWNraW5nIHN0b3JlIGlzIGNsb3NlZCJfcyB9KTsKIAogICAgIGF1dG8gZXJyb3Ig
PSBtX2JhY2tpbmdTdG9yZS0+cmVuYW1lT2JqZWN0U3RvcmUodHJhbnNhY3Rpb24uaW5mbygpLmlk
ZW50aWZpZXIoKSwgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBuZXdOYW1lKTsKICAgICBpZiAoZXJy
b3IuaXNOdWxsKCkpCkBAIC02OTYsNyArNjk2LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6
Y2xlYXJPYmplY3RTdG9yZShVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uJiB0cmFuc2FjdGkK
IAogICAgICAgICBtX21hbmFnZXItPnJlcXVlc3RTcGFjZShtX2lkZW50aWZpZXIub3JpZ2luKCks
IDAsIFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCB3ZWFrVHJhbnNhY3Rpb24g
PSBXZWFrUHRyIHsgdHJhbnNhY3Rpb24gfSwgb2JqZWN0U3RvcmVJZGVudGlmaWVyLCBjYWxsYmFj
ayA9IFdURk1vdmUoY2FsbGJhY2spXShib29sIGdyYW50ZWQpIG11dGFibGUgewogICAgICAgICAg
ICAgaWYgKCF3ZWFrVGhpcyB8fCAhd2Vha1RyYW5zYWN0aW9uKQotICAgICAgICAgICAgICAgIHJl
dHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJhc2Ugb3Ig
dHJhbnNhY3Rpb24gaXMgY2xvc2VkIiB9KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJh
Y2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkRhdGFiYXNlIG9yIHRyYW5zYWN0aW9u
IGlzIGNsb3NlZCJfcyB9KTsKIAogICAgICAgICAgICAgY2xlYXJPYmplY3RTdG9yZSgqd2Vha1Ry
YW5zYWN0aW9uLCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIFdURk1vdmUoY2FsbGJhY2spLCBncmFu
dGVkID8gU3BhY2VDaGVja1Jlc3VsdDo6UGFzcyA6IFNwYWNlQ2hlY2tSZXN1bHQ6OkZhaWwpOwog
ICAgICAgICB9KTsKQEAgLTcwNSw3ICs3MDUsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpj
bGVhck9iamVjdFN0b3JlKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mIHRyYW5zYWN0aQog
CiAgICAgQVNTRVJUKHNwYWNlQ2hlY2tSZXN1bHQgPT0gU3BhY2VDaGVja1Jlc3VsdDo6UGFzcyk7
CiAgICAgaWYgKCFtX2JhY2tpbmdTdG9yZSkKLSAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVy
cm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3JlIGlzIGNsb3NlZCIgfSk7Cisg
ICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiQmFj
a2luZyBzdG9yZSBpcyBjbG9zZWQiX3MgfSk7CiAKICAgICBhdXRvIGVycm9yID0gbV9iYWNraW5n
U3RvcmUtPmNsZWFyT2JqZWN0U3RvcmUodHJhbnNhY3Rpb24uaW5mbygpLmlkZW50aWZpZXIoKSwg
b2JqZWN0U3RvcmVJZGVudGlmaWVyKTsKICAgICBjYWxsYmFjayhlcnJvcik7CkBAIC03MjMsNyAr
NzIzLDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6Y3JlYXRlSW5kZXgoVW5pcXVlSURCRGF0
YWJhc2VUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24sIGMKICAgICAgICAgYXV0byB0YXNrU2l6ZSA9
IGRlZmF1bHRXcml0ZU9wZXJhdGlvbkNvc3QgKyBlc3RpbWF0ZVNpemUoaW5mbyk7CiAgICAgICAg
IG1fbWFuYWdlci0+cmVxdWVzdFNwYWNlKG1faWRlbnRpZmllci5vcmlnaW4oKSwgdGFza1NpemUs
IFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCB3ZWFrVHJhbnNhY3Rpb24gPSBX
ZWFrUHRyIHsgdHJhbnNhY3Rpb24gfSwgaW5mbywgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNr
KV0oYm9vbCBncmFudGVkKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlmICghd2Vha1RoaXMgfHwg
IXdlYWtUcmFuc2FjdGlvbikKLSAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJy
b3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkRhdGFiYXNlIG9yIHRyYW5zYWN0aW9uIGlzIGNsb3Nl
ZCIgfSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxp
ZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBvciB0cmFuc2FjdGlvbiBpcyBjbG9zZWQiX3MgfSk7CiAK
ICAgICAgICAgICAgIGNyZWF0ZUluZGV4KCp3ZWFrVHJhbnNhY3Rpb24sIGluZm8sIFdURk1vdmUo
Y2FsbGJhY2spLCBncmFudGVkID8gU3BhY2VDaGVja1Jlc3VsdDo6UGFzcyA6IFNwYWNlQ2hlY2tS
ZXN1bHQ6OkZhaWwpOwogICAgICAgICB9KTsKQEAgLTczNiw3ICs3MzYsNyBAQCB2b2lkIFVuaXF1
ZUlEQkRhdGFiYXNlOjpjcmVhdGVJbmRleChVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uJiB0
cmFuc2FjdGlvbiwgYwogICAgIH0KIAogICAgIGlmICghbV9iYWNraW5nU3RvcmUpCi0gICAgICAg
IHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiQmFja2luZyBz
dG9yZSBpcyBjbG9zZWQiIH0pOworICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJ
bnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xvc2VkIl9zIH0pOwogCiAgICAg
YXV0byBlcnJvciA9IG1fYmFja2luZ1N0b3JlLT5jcmVhdGVJbmRleCh0cmFuc2FjdGlvbi5pbmZv
KCkuaWRlbnRpZmllcigpLCBpbmZvKTsKICAgICBpZiAoZXJyb3IuaXNOdWxsKCkpIHsKQEAgLTc2
MSw3ICs3NjEsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpkZWxldGVJbmRleChVbmlxdWVJ
REJEYXRhYmFzZVRyYW5zYWN0aW9uJiB0cmFuc2FjdGlvbiwgdQogCiAgICAgICAgIG1fbWFuYWdl
ci0+cmVxdWVzdFNwYWNlKG1faWRlbnRpZmllci5vcmlnaW4oKSwgMCwgW3RoaXMsIHdlYWtUaGlz
ID0gV2Vha1B0ciB7ICp0aGlzIH0sIHdlYWtUcmFuc2FjdGlvbiA9IFdlYWtQdHIgeyB0cmFuc2Fj
dGlvbiB9LCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGluZGV4TmFtZSwgY2FsbGJhY2sgPSBXVEZN
b3ZlKGNhbGxiYWNrKV0oYm9vbCBncmFudGVkKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlmICgh
d2Vha1RoaXMgfHwgIXdlYWtUcmFuc2FjdGlvbikKLSAgICAgICAgICAgICAgICByZXR1cm4gY2Fs
bGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkRhdGFiYXNlIG9yIHRyYW5zYWN0
aW9uIGlzIGNsb3NlZCIgfSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVy
cm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBvciB0cmFuc2FjdGlvbiBpcyBjbG9z
ZWQiX3MgfSk7CiAKICAgICAgICAgICAgIGRlbGV0ZUluZGV4KCp3ZWFrVHJhbnNhY3Rpb24sIG9i
amVjdFN0b3JlSWRlbnRpZmllciwgaW5kZXhOYW1lLCBXVEZNb3ZlKGNhbGxiYWNrKSwgZ3JhbnRl
ZCA/IFNwYWNlQ2hlY2tSZXN1bHQ6OlBhc3MgOiBTcGFjZUNoZWNrUmVzdWx0OjpGYWlsKTsKICAg
ICAgICAgfSk7CkBAIC03NzAsNyArNzcwLDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6ZGVs
ZXRlSW5kZXgoVW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24sIHUKIAog
ICAgIEFTU0VSVChzcGFjZUNoZWNrUmVzdWx0ID09IFNwYWNlQ2hlY2tSZXN1bHQ6OlBhc3MpOwog
ICAgIGlmICghbV9iYWNraW5nU3RvcmUpCi0gICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJv
ciB7IEludmFsaWRTdGF0ZUVycm9yLCAiQmFja2luZyBzdG9yZSBpcyBjbG9zZWQiIH0pOworICAg
ICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tp
bmcgc3RvcmUgaXMgY2xvc2VkIl9zIH0pOwogCiAgICAgYXV0byogb2JqZWN0U3RvcmVJbmZvID0g
bV9kYXRhYmFzZUluZm8tPmluZm9Gb3JFeGlzdGluZ09iamVjdFN0b3JlKG9iamVjdFN0b3JlSWRl
bnRpZmllcik7CiAgICAgaWYgKCFvYmplY3RTdG9yZUluZm8pIHsKQEAgLTgwNCw3ICs4MDQsNyBA
QCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpyZW5hbWVJbmRleChVbmlxdWVJREJEYXRhYmFzZVRy
YW5zYWN0aW9uJiB0cmFuc2FjdGlvbiwgdQogICAgICAgICBhdXRvIHRhc2tTaXplID0gZGVmYXVs
dFdyaXRlT3BlcmF0aW9uQ29zdCArIG5ld05hbWUuc2l6ZUluQnl0ZXMoKTsKICAgICAgICAgbV9t
YW5hZ2VyLT5yZXF1ZXN0U3BhY2UobV9pZGVudGlmaWVyLm9yaWdpbigpLCB0YXNrU2l6ZSwgW3Ro
aXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHdlYWtUcmFuc2FjdGlvbiA9IFdlYWtQ
dHIgeyB0cmFuc2FjdGlvbiB9LCBvYmplY3RTdG9yZUlkZW50aWZpZXIsIGluZGV4SWRlbnRpZmll
ciwgbmV3TmFtZSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oYm9vbCBncmFudGVkKSBt
dXRhYmxlIHsKICAgICAgICAgICAgIGlmICghd2Vha1RoaXMgfHwgIXdlYWtUcmFuc2FjdGlvbikK
LSAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVF
cnJvciwgIkRhdGFiYXNlIG9yIHRyYW5zYWN0aW9uIGlzIGNsb3NlZCIgfSk7CisgICAgICAgICAg
ICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJEYXRh
YmFzZSBvciB0cmFuc2FjdGlvbiBpcyBjbG9zZWQiX3MgfSk7CiAKICAgICAgICAgICAgIHJlbmFt
ZUluZGV4KCp3ZWFrVHJhbnNhY3Rpb24sIG9iamVjdFN0b3JlSWRlbnRpZmllciwgaW5kZXhJZGVu
dGlmaWVyLCBuZXdOYW1lLCBXVEZNb3ZlKGNhbGxiYWNrKSwgZ3JhbnRlZCA/IFNwYWNlQ2hlY2tS
ZXN1bHQ6OlBhc3MgOiBTcGFjZUNoZWNrUmVzdWx0OjpGYWlsKTsKICAgICAgICAgfSk7CkBAIC04
MTcsNyArODE3LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6cmVuYW1lSW5kZXgoVW5pcXVl
SURCRGF0YWJhc2VUcmFuc2FjdGlvbiYgdHJhbnNhY3Rpb24sIHUKICAgICB9CiAKICAgICBpZiAo
IW1fYmFja2luZ1N0b3JlKQotICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZh
bGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xvc2VkIiB9KTsKKyAgICAgICAgcmV0
dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3Jl
IGlzIGNsb3NlZCJfcyB9KTsKIAogICAgIGF1dG8qIG9iamVjdFN0b3JlSW5mbyA9IG1fZGF0YWJh
c2VJbmZvLT5pbmZvRm9yRXhpc3RpbmdPYmplY3RTdG9yZShvYmplY3RTdG9yZUlkZW50aWZpZXIp
OwogICAgIGlmICghb2JqZWN0U3RvcmVJbmZvKSB7CkBAIC04NDYsNyArODQ2LDcgQEAgdm9pZCBV
bmlxdWVJREJEYXRhYmFzZTo6cHV0T3JBZGQoY29uc3QgSURCUmVxdWVzdERhdGEmIHJlcXVlc3RE
YXRhLCBjb25zdCBJREJLZXkKICAgICBBU1NFUlQobV9kYXRhYmFzZUluZm8pOwogCiAgICAgaWYg
KCFtX2JhY2tpbmdTdG9yZSkKLSAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52
YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3JlIGlzIGNsb3NlZCIgfSwga2V5RGF0YSk7Cisg
ICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiQmFj
a2luZyBzdG9yZSBpcyBjbG9zZWQiX3MgfSwga2V5RGF0YSk7CiAKICAgICBhdXRvIG9iamVjdFN0
b3JlSWRlbnRpZmllciA9IHJlcXVlc3REYXRhLm9iamVjdFN0b3JlSWRlbnRpZmllcigpOwogICAg
IGF1dG8qIG9iamVjdFN0b3JlSW5mbyA9IG1fYmFja2luZ1N0b3JlLT5pbmZvRm9yT2JqZWN0U3Rv
cmUob2JqZWN0U3RvcmVJZGVudGlmaWVyKTsKQEAgLTkwMSw3ICs5MDEsNyBAQCB2b2lkIFVuaXF1
ZUlEQkRhdGFiYXNlOjpwdXRPckFkZChjb25zdCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdERhdGEs
IGNvbnN0IElEQktleQogICAgIExPRyhJbmRleGVkREIsICJVbmlxdWVJREJEYXRhYmFzZTo6cHV0
T3JBZGQgcXVvdGEgY2hlY2sgd2l0aCB0YXNrIHNpemU6ICUiIFBSSXU2NCAiIGtleSBzaXplOiAl
IiBQUkl1NjQgIiB2YWx1ZSBzaXplOiAlIiBQUkl1NjQgIiBpbmRleCBzaXplOiAlIiBQUkl1NjQs
IHRhc2tTaXplLCBrZXlTaXplLCB2YWx1ZVNpemUsIGluZGV4U2l6ZSk7CiAgICAgbV9tYW5hZ2Vy
LT5yZXF1ZXN0U3BhY2UobV9pZGVudGlmaWVyLm9yaWdpbigpLCB0YXNrU2l6ZSwgW3RoaXMsIHdl
YWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHJlcXVlc3REYXRhLCB1c2VkS2V5LCB2YWx1ZSwg
b3ZlcndyaXRlTW9kZSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKSwgdXNlZEtleUlzR2Vu
ZXJhdGVkLCBpbmRleEtleXMsIG9iamVjdFN0b3JlSW5mbyA9ICpvYmplY3RTdG9yZUluZm9dKGJv
b2wgZ3JhbnRlZCkgbXV0YWJsZSB7CiAgICAgICAgIGlmICghd2Vha1RoaXMpCi0gICAgICAgICAg
ICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkRhdGFiYXNl
IGlzIGNsb3NlZCIgfSwgdXNlZEtleSk7CisgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soSURC
RXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkRhdGFiYXNlIGlzIGNsb3NlZCJfcyB9LCB1c2Vk
S2V5KTsKIAogICAgICAgICBwdXRPckFkZEFmdGVyU3BhY2VDaGVjayhyZXF1ZXN0RGF0YSwgdXNl
ZEtleSwgdmFsdWUsIG92ZXJ3cml0ZU1vZGUsIFdURk1vdmUoY2FsbGJhY2spLCB1c2VkS2V5SXNH
ZW5lcmF0ZWQsIGluZGV4S2V5cywgb2JqZWN0U3RvcmVJbmZvLCBncmFudGVkID8gU3BhY2VDaGVj
a1Jlc3VsdDo6UGFzcyA6IFNwYWNlQ2hlY2tSZXN1bHQ6OkZhaWwpOwogICAgIH0pOwpAQCAtOTEz
LDcgKzkxMyw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OnB1dE9yQWRkQWZ0ZXJTcGFjZUNo
ZWNrKGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0CiAgICAgQVNTRVJUKG1fZGF0YWJh
c2VJbmZvKTsKIAogICAgIGlmICghbV9iYWNraW5nU3RvcmUpCi0gICAgICAgIHJldHVybiBjYWxs
YmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiQmFja2luZyBzdG9yZSBpcyBjbG9z
ZWQiIH0sIGtleURhdGEpOworICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZh
bGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xvc2VkIl9zIH0sIGtleURhdGEpOwog
CiAgICAgdWludDY0X3Qga2V5TnVtYmVyID0gaXNLZXlHZW5lcmF0ZWQgPyBrZXlEYXRhLm51bWJl
cigpIDogMDsKICAgICBhdXRvIG9iamVjdFN0b3JlSWRlbnRpZmllciA9IG9iamVjdFN0b3JlSW5m
by5pZGVudGlmaWVyKCk7CkBAIC05NTMsNyArOTUzLDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFz
ZTo6Z2V0UmVjb3JkKGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0YSwgY29uc3QgSURC
R2UKIAogICAgICAgICBtX21hbmFnZXItPnJlcXVlc3RTcGFjZShtX2lkZW50aWZpZXIub3JpZ2lu
KCksIDAsIFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCByZXF1ZXN0RGF0YSwg
Z2V0UmVjb3JkRGF0YSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oYm9vbCBncmFudGVk
KSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlmICghd2Vha1RoaXMpCi0gICAgICAgICAgICAgICAg
cmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBp
cyBjbG9zZWQiIH0sIElEQkdldFJlc3VsdCB7IH0pOworICAgICAgICAgICAgICAgIHJldHVybiBj
YWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJhc2UgaXMgY2xvc2Vk
Il9zIH0sIElEQkdldFJlc3VsdCB7IH0pOwogCiAgICAgICAgICAgICBnZXRSZWNvcmQocmVxdWVz
dERhdGEsIGdldFJlY29yZERhdGEsIFdURk1vdmUoY2FsbGJhY2spLCBncmFudGVkID8gU3BhY2VD
aGVja1Jlc3VsdDo6UGFzcyA6IFNwYWNlQ2hlY2tSZXN1bHQ6OkZhaWwpOwogICAgICAgICB9KTsK
QEAgLTk2Miw3ICs5NjIsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpnZXRSZWNvcmQoY29u
c3QgSURCUmVxdWVzdERhdGEmIHJlcXVlc3REYXRhLCBjb25zdCBJREJHZQogCiAgICAgQVNTRVJU
KHNwYWNlQ2hlY2tSZXN1bHQgPT0gU3BhY2VDaGVja1Jlc3VsdDo6UGFzcyk7CiAgICAgaWYgKCFt
X2JhY2tpbmdTdG9yZSkKLSAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxp
ZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3JlIGlzIGNsb3NlZCIgfSwgSURCR2V0UmVzdWx0IHsg
fSk7CisgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9y
LCAiQmFja2luZyBzdG9yZSBpcyBjbG9zZWQiX3MgfSwgSURCR2V0UmVzdWx0IHsgfSk7CiAKICAg
ICBJREJHZXRSZXN1bHQgcmVzdWx0OwogICAgIElEQkVycm9yIGVycm9yOwpAQCAtOTg2LDcgKzk4
Niw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmdldEFsbFJlY29yZHMoY29uc3QgSURCUmVx
dWVzdERhdGEmIHJlcXVlc3REYXRhLCBjb25zdCBJCiAKICAgICAgICAgbV9tYW5hZ2VyLT5yZXF1
ZXN0U3BhY2UobV9pZGVudGlmaWVyLm9yaWdpbigpLCAwLCBbdGhpcywgd2Vha1RoaXMgPSBXZWFr
UHRyIHsgKnRoaXMgfSwgcmVxdWVzdERhdGEsIGdldEFsbFJlY29yZHNEYXRhLCBjYWxsYmFjayA9
IFdURk1vdmUoY2FsbGJhY2spXShib29sIGdyYW50ZWQpIG11dGFibGUgewogICAgICAgICAgICAg
aWYgKCF3ZWFrVGhpcykKLSAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3Ig
eyBJbnZhbGlkU3RhdGVFcnJvciwgIkRhdGFiYXNlIGlzIGNsb3NlZCIgfSwgSURCR2V0QWxsUmVz
dWx0IHsgfSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52
YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBpcyBjbG9zZWQiX3MgfSwgSURCR2V0QWxsUmVzdWx0
IHsgfSk7CiAKICAgICAgICAgICAgIGdldEFsbFJlY29yZHMocmVxdWVzdERhdGEsIGdldEFsbFJl
Y29yZHNEYXRhLCBXVEZNb3ZlKGNhbGxiYWNrKSwgZ3JhbnRlZCA/IFNwYWNlQ2hlY2tSZXN1bHQ6
OlBhc3MgOiBTcGFjZUNoZWNrUmVzdWx0OjpGYWlsKTsKICAgICAgICAgfSk7CkBAIC05OTUsNyAr
OTk1LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6Z2V0QWxsUmVjb3Jkcyhjb25zdCBJREJS
ZXF1ZXN0RGF0YSYgcmVxdWVzdERhdGEsIGNvbnN0IEkKIAogICAgIEFTU0VSVChzcGFjZUNoZWNr
UmVzdWx0ID09IFNwYWNlQ2hlY2tSZXN1bHQ6OlBhc3MpOwogICAgIGlmICghbV9iYWNraW5nU3Rv
cmUpCi0gICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9y
LCAiQmFja2luZyBzdG9yZSBpcyBjbG9zZWQiIH0sIElEQkdldEFsbFJlc3VsdCB7IH0pOworICAg
ICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tp
bmcgc3RvcmUgaXMgY2xvc2VkIl9zIH0sIElEQkdldEFsbFJlc3VsdCB7IH0pOwogCiAgICAgSURC
R2V0QWxsUmVzdWx0IHJlc3VsdDsKICAgICBhdXRvIGVycm9yID0gbV9iYWNraW5nU3RvcmUtPmdl
dEFsbFJlY29yZHMocmVxdWVzdERhdGEudHJhbnNhY3Rpb25JZGVudGlmaWVyKCksIGdldEFsbFJl
Y29yZHNEYXRhLCByZXN1bHQpOwpAQCAtMTAxNCw3ICsxMDE0LDcgQEAgdm9pZCBVbmlxdWVJREJE
YXRhYmFzZTo6Z2V0Q291bnQoY29uc3QgSURCUmVxdWVzdERhdGEmIHJlcXVlc3REYXRhLCBjb25z
dCBJREJLZXkKIAogICAgICAgICBtX21hbmFnZXItPnJlcXVlc3RTcGFjZShtX2lkZW50aWZpZXIu
b3JpZ2luKCksIDAsIFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCByZXF1ZXN0
RGF0YSwgcmFuZ2UsIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKGJvb2wgZ3JhbnRlZCkg
bXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAoIXdlYWtUaGlzKQotICAgICAgICAgICAgICAgIHJl
dHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJhc2UgaXMg
Y2xvc2VkIiB9LCAwKTsKKyAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3Ig
eyBJbnZhbGlkU3RhdGVFcnJvciwgIkRhdGFiYXNlIGlzIGNsb3NlZCJfcyB9LCAwKTsKIAogICAg
ICAgICAgICAgZ2V0Q291bnQocmVxdWVzdERhdGEsIHJhbmdlLCBXVEZNb3ZlKGNhbGxiYWNrKSwg
Z3JhbnRlZCA/IFNwYWNlQ2hlY2tSZXN1bHQ6OlBhc3MgOiBTcGFjZUNoZWNrUmVzdWx0OjpGYWls
KTsKICAgICAgICAgfSk7CkBAIC0xMDIzLDcgKzEwMjMsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFi
YXNlOjpnZXRDb3VudChjb25zdCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdERhdGEsIGNvbnN0IElE
QktleQogCiAgICAgQVNTRVJUKHNwYWNlQ2hlY2tSZXN1bHQgPT0gU3BhY2VDaGVja1Jlc3VsdDo6
UGFzcyk7CiAgICAgaWYgKCFtX2JhY2tpbmdTdG9yZSkKLSAgICAgICAgcmV0dXJuIGNhbGxiYWNr
KElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3JlIGlzIGNsb3NlZCIg
fSwgMCk7CisgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVy
cm9yLCAiQmFja2luZyBzdG9yZSBpcyBjbG9zZWQiX3MgfSwgMCk7CiAKICAgICB1aW50NjRfdCBj
b3VudCA9IDA7CiAgICAgYXV0byBlcnJvciA9IG1fYmFja2luZ1N0b3JlLT5nZXRDb3VudChyZXF1
ZXN0RGF0YS50cmFuc2FjdGlvbklkZW50aWZpZXIoKSwgcmVxdWVzdERhdGEub2JqZWN0U3RvcmVJ
ZGVudGlmaWVyKCksIHJlcXVlc3REYXRhLmluZGV4SWRlbnRpZmllcigpLCByYW5nZSwgY291bnQp
OwpAQCAtMTA0Miw3ICsxMDQyLDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6ZGVsZXRlUmVj
b3JkKGNvbnN0IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0YSwgY29uc3QgSUQKIAogICAgICAg
ICBtX21hbmFnZXItPnJlcXVlc3RTcGFjZShtX2lkZW50aWZpZXIub3JpZ2luKCksIDAsIFt0aGlz
LCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCByZXF1ZXN0RGF0YSwga2V5UmFuZ2VEYXRh
LCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXShib29sIGdyYW50ZWQpIG11dGFibGUgewog
ICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcykKLSAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJh
Y2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkRhdGFiYXNlIGlzIGNsb3NlZCIgfSk7
CisgICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRl
RXJyb3IsICJEYXRhYmFzZSBpcyBjbG9zZWQiX3MgfSk7CiAKICAgICAgICAgICAgIGRlbGV0ZVJl
Y29yZChyZXF1ZXN0RGF0YSwga2V5UmFuZ2VEYXRhLCBXVEZNb3ZlKGNhbGxiYWNrKSwgZ3JhbnRl
ZCA/IFNwYWNlQ2hlY2tSZXN1bHQ6OlBhc3MgOiBTcGFjZUNoZWNrUmVzdWx0OjpGYWlsKTsKICAg
ICAgICAgfSk7CkBAIC0xMDUxLDcgKzEwNTEsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpk
ZWxldGVSZWNvcmQoY29uc3QgSURCUmVxdWVzdERhdGEmIHJlcXVlc3REYXRhLCBjb25zdCBJRAog
CiAgICAgQVNTRVJUKHNwYWNlQ2hlY2tSZXN1bHQgPT0gU3BhY2VDaGVja1Jlc3VsdDo6UGFzcyk7
CiAgICAgaWYgKCFtX2JhY2tpbmdTdG9yZSkKLSAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVy
cm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3JlIGlzIGNsb3NlZCIgfSk7Cisg
ICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiQmFj
a2luZyBzdG9yZSBpcyBjbG9zZWQiX3MgfSk7CiAKICAgICBhdXRvIGVycm9yID0gbV9iYWNraW5n
U3RvcmUtPmRlbGV0ZVJhbmdlKHJlcXVlc3REYXRhLnRyYW5zYWN0aW9uSWRlbnRpZmllcigpLCBy
ZXF1ZXN0RGF0YS5vYmplY3RTdG9yZUlkZW50aWZpZXIoKSwga2V5UmFuZ2VEYXRhKTsKIApAQCAt
MTA2OSw3ICsxMDY5LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6b3BlbkN1cnNvcihjb25z
dCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdERhdGEsIGNvbnN0IElEQkMKIAogICAgICAgICBtX21h
bmFnZXItPnJlcXVlc3RTcGFjZShtX2lkZW50aWZpZXIub3JpZ2luKCksIDAsIFt0aGlzLCB3ZWFr
VGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCByZXF1ZXN0RGF0YSwgaW5mbywgY2FsbGJhY2sgPSBX
VEZNb3ZlKGNhbGxiYWNrKV0oYm9vbCBncmFudGVkKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGlm
ICghd2Vha1RoaXMpCi0gICAgICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsg
SW52YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBvciB0cmFuc2FjdGlvbiBpcyBjbG9zZWQiIH0s
IElEQkdldFJlc3VsdCB7IH0pOworICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJF
cnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJhc2Ugb3IgdHJhbnNhY3Rpb24gaXMgY2xv
c2VkIl9zIH0sIElEQkdldFJlc3VsdCB7IH0pOwogCiAgICAgICAgICAgICBvcGVuQ3Vyc29yKHJl
cXVlc3REYXRhLCBpbmZvLCBXVEZNb3ZlKGNhbGxiYWNrKSwgZ3JhbnRlZCA/IFNwYWNlQ2hlY2tS
ZXN1bHQ6OlBhc3MgOiBTcGFjZUNoZWNrUmVzdWx0OjpGYWlsKTsKICAgICAgICAgfSk7CkBAIC0x
MDc4LDcgKzEwNzgsNyBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpvcGVuQ3Vyc29yKGNvbnN0
IElEQlJlcXVlc3REYXRhJiByZXF1ZXN0RGF0YSwgY29uc3QgSURCQwogCiAgICAgQVNTRVJUKHNw
YWNlQ2hlY2tSZXN1bHQgPT0gU3BhY2VDaGVja1Jlc3VsdDo6UGFzcyk7CiAgICAgaWYgKCFtX2Jh
Y2tpbmdTdG9yZSkKLSAgICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0
YXRlRXJyb3IsICJCYWNraW5nIHN0b3JlIGlzIGNsb3NlZCIgfSwgSURCR2V0UmVzdWx0IHsgfSk7
CisgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAi
QmFja2luZyBzdG9yZSBpcyBjbG9zZWQiX3MgfSwgSURCR2V0UmVzdWx0IHsgfSk7CiAKICAgICBJ
REJHZXRSZXN1bHQgcmVzdWx0OwogICAgIGF1dG8gZXJyb3IgPSBtX2JhY2tpbmdTdG9yZS0+b3Bl
bkN1cnNvcihyZXF1ZXN0RGF0YS50cmFuc2FjdGlvbklkZW50aWZpZXIoKSwgaW5mbywgcmVzdWx0
KTsKQEAgLTEwOTcsNyArMTA5Nyw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6Oml0ZXJhdGVD
dXJzb3IoY29uc3QgSURCUmVxdWVzdERhdGEmIHJlcXVlc3REYXRhLCBjb25zdCBJCiAKICAgICAg
ICAgbV9tYW5hZ2VyLT5yZXF1ZXN0U3BhY2UobV9pZGVudGlmaWVyLm9yaWdpbigpLCAwLCBbdGhp
cywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgcmVxdWVzdERhdGEsIGRhdGEsIGNhbGxi
YWNrID0gV1RGTW92ZShjYWxsYmFjayldKGJvb2wgZ3JhbnRlZCkgbXV0YWJsZSB7CiAgICAgICAg
ICAgICBpZiAoIXdlYWtUaGlzKQotICAgICAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhJREJF
cnJvciB7IEludmFsaWRTdGF0ZUVycm9yLCAiRGF0YWJhc2Ugb3IgdHJhbnNhY3Rpb24gaXMgY2xv
c2VkIiB9LCBJREJHZXRSZXN1bHQgeyB9KTsKKyAgICAgICAgICAgICAgICByZXR1cm4gY2FsbGJh
Y2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkRhdGFiYXNlIG9yIHRyYW5zYWN0aW9u
IGlzIGNsb3NlZCJfcyB9LCBJREJHZXRSZXN1bHQgeyB9KTsKIAogICAgICAgICAgICAgaXRlcmF0
ZUN1cnNvcihyZXF1ZXN0RGF0YSwgZGF0YSwgV1RGTW92ZShjYWxsYmFjayksIGdyYW50ZWQgPyBT
cGFjZUNoZWNrUmVzdWx0OjpQYXNzIDogU3BhY2VDaGVja1Jlc3VsdDo6RmFpbCk7CiAgICAgICAg
IH0pOwpAQCAtMTEwNiw3ICsxMTA2LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6aXRlcmF0
ZUN1cnNvcihjb25zdCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdERhdGEsIGNvbnN0IEkKIAogICAg
IEFTU0VSVChzcGFjZUNoZWNrUmVzdWx0ID09IFNwYWNlQ2hlY2tSZXN1bHQ6OlBhc3MpOwogICAg
IGlmICghbV9iYWNraW5nU3RvcmUpCi0gICAgICAgIHJldHVybiBjYWxsYmFjayhJREJFcnJvciB7
IEludmFsaWRTdGF0ZUVycm9yLCAiQmFja2luZyBzdG9yZSBpcyBjbG9zZWQiIH0sIElEQkdldFJl
c3VsdCB7IH0pOworICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3Rh
dGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xvc2VkIl9zIH0sIElEQkdldFJlc3VsdCB7IH0p
OwogCiAgICAgSURCR2V0UmVzdWx0IHJlc3VsdDsKICAgICBhdXRvIHRyYW5zYWN0aW9uSWRlbnRp
ZmllciA9IHJlcXVlc3REYXRhLnRyYW5zYWN0aW9uSWRlbnRpZmllcigpOwpAQCAtMTEyNyw3ICsx
MTI3LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6Y29tbWl0VHJhbnNhY3Rpb24oVW5pcXVl
SURCRGF0YWJhc2VUcmFuc2FjdGlvbiYgdHJhbnNhY3QKIAogICAgICAgICBtX21hbmFnZXItPnJl
cXVlc3RTcGFjZShtX2lkZW50aWZpZXIub3JpZ2luKCksIDAsIFt0aGlzLCB3ZWFrVGhpcyA9IFdl
YWtQdHIgeyAqdGhpcyB9LCB3ZWFrVHJhbnNhY3Rpb24gPSBXZWFrUHRyIHsgdHJhbnNhY3Rpb24g
fSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oYm9vbCBncmFudGVkKSBtdXRhYmxlIHsK
ICAgICAgICAgICAgIGlmICghd2Vha1RoaXMgfHwgIXdlYWtUcmFuc2FjdGlvbikKLSAgICAgICAg
ICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkRh
dGFiYXNlIG9yIHRyYW5zYWN0aW9uIGlzIGNsb3NlZCIgfSk7CisgICAgICAgICAgICAgICAgcmV0
dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBvciB0
cmFuc2FjdGlvbiBpcyBjbG9zZWQiX3MgfSk7CiAKICAgICAgICAgICAgIGNvbW1pdFRyYW5zYWN0
aW9uKCp3ZWFrVHJhbnNhY3Rpb24sIFdURk1vdmUoY2FsbGJhY2spLCBncmFudGVkID8gU3BhY2VD
aGVja1Jlc3VsdDo6UGFzcyA6IFNwYWNlQ2hlY2tSZXN1bHQ6OkZhaWwpOwogICAgICAgICB9KTsK
QEAgLTExMzgsNyArMTEzOCw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmNvbW1pdFRyYW5z
YWN0aW9uKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mIHRyYW5zYWN0CiAgICAgQVNTRVJU
KHRyYW5zYWN0aW9uLmRhdGFiYXNlQ29ubmVjdGlvbigpLmRhdGFiYXNlKCkgPT0gdGhpcyk7CiAK
ICAgICBpZiAoIW1fYmFja2luZ1N0b3JlKQotICAgICAgICByZXR1cm4gY2FsbGJhY2soSURCRXJy
b3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xvc2VkIiB9KTsKKyAg
ICAgICAgcmV0dXJuIGNhbGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNr
aW5nIHN0b3JlIGlzIGNsb3NlZCJfcyB9KTsKIAogICAgIGF1dG8gdGFrZW5UcmFuc2FjdGlvbiA9
IG1faW5Qcm9ncmVzc1RyYW5zYWN0aW9ucy50YWtlKHRyYW5zYWN0aW9uLmluZm8oKS5pZGVudGlm
aWVyKCkpOwogICAgIGlmICghdGFrZW5UcmFuc2FjdGlvbikgewpAQCAtMTE2Niw3ICsxMTY2LDcg
QEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6YWJvcnRUcmFuc2FjdGlvbihVbmlxdWVJREJEYXRh
YmFzZVRyYW5zYWN0aW9uJiB0cmFuc2FjdGkKIAogICAgICAgICBtX21hbmFnZXItPnJlcXVlc3RT
cGFjZShtX2lkZW50aWZpZXIub3JpZ2luKCksIDAsIFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIg
eyAqdGhpcyB9LCB3ZWFrVHJhbnNhY3Rpb24gPSBXZWFrUHRyIHsgdHJhbnNhY3Rpb24gfSwgY2Fs
bGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oYm9vbCBncmFudGVkKSBtdXRhYmxlIHsKICAgICAg
ICAgICAgIGlmICghd2Vha1RoaXMgfHwgIXdlYWtUcmFuc2FjdGlvbikKLSAgICAgICAgICAgICAg
ICByZXR1cm4gY2FsbGJhY2soSURCRXJyb3IgeyBJbnZhbGlkU3RhdGVFcnJvciwgIkRhdGFiYXNl
IG9yIHRyYW5zYWN0aW9uIGlzIGNsb3NlZCIgfSk7CisgICAgICAgICAgICAgICAgcmV0dXJuIGNh
bGxiYWNrKElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJEYXRhYmFzZSBvciB0cmFuc2Fj
dGlvbiBpcyBjbG9zZWQiX3MgfSk7CiAKICAgICAgICAgICAgIGFib3J0VHJhbnNhY3Rpb24oKndl
YWtUcmFuc2FjdGlvbiwgV1RGTW92ZShjYWxsYmFjayksIGdyYW50ZWQgPyBTcGFjZUNoZWNrUmVz
dWx0OjpQYXNzIDogU3BhY2VDaGVja1Jlc3VsdDo6RmFpbCk7CiAgICAgICAgIH0pOwpAQCAtMTIw
Miw3ICsxMjAyLDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6YWJvcnRUcmFuc2FjdGlvbihV
bmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uJiB0cmFuc2FjdGkKIAogICAgIElEQkVycm9yIGVy
cm9yOwogICAgIGlmICghbV9iYWNraW5nU3RvcmUpCi0gICAgICAgIGVycm9yID0gSURCRXJyb3Ig
eyBJbnZhbGlkU3RhdGVFcnJvciwgIkJhY2tpbmcgc3RvcmUgaXMgY2xvc2VkIiB9OworICAgICAg
ICBlcnJvciA9IElEQkVycm9yIHsgSW52YWxpZFN0YXRlRXJyb3IsICJCYWNraW5nIHN0b3JlIGlz
IGNsb3NlZCJfcyB9OwogICAgIGVsc2UKICAgICAgICAgZXJyb3IgPSBtX2JhY2tpbmdTdG9yZS0+
YWJvcnRUcmFuc2FjdGlvbih0cmFuc2FjdGlvbklkZW50aWZpZXIpOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCSW5kZXhJbmZvLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJJbmRleEluZm8uY3Bw
CmluZGV4IGU3MWQyZWJmMjFjNGFkZmVmMjhhMmJkYWZhMWZmODRiM2Y3ZjAzOTguLjdhYmE4MzFk
NzAwZWE5OGZlYjJjYzlhYTQ0Yzk2MmM0YjU5NDQ3YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJJbmRleEluZm8uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJJbmRleEluZm8uY3BwCkBAIC02
MSw3ICs2MSw3IEBAIFN0cmluZyBJREJJbmRleEluZm86OmxvZ2dpbmdTdHJpbmcoaW50IGluZGVu
dCkgY29uc3QKIHsKICAgICBTdHJpbmcgaW5kZW50U3RyaW5nOwogICAgIGZvciAoaW50IGkgPSAw
OyBpIDwgaW5kZW50OyArK2kpCi0gICAgICAgIGluZGVudFN0cmluZy5hcHBlbmQoIiAiKTsKKyAg
ICAgICAgaW5kZW50U3RyaW5nLmFwcGVuZCgnICcpOwogICAgIHJldHVybiBtYWtlU3RyaW5nKGlu
ZGVudFN0cmluZywgIkluZGV4OiAiLCBtX25hbWUsICIgKCIsIG1faWRlbnRpZmllciwgIikga2V5
UGF0aDogIiwgV2ViQ29yZTo6bG9nZ2luZ1N0cmluZyhtX2tleVBhdGgpLCAnXG4nKTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29u
dHJvbHNIb3N0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFjb250cm9scy9NZWRp
YUNvbnRyb2xzSG9zdC5jcHAKaW5kZXggYjgyNWVjODAwNTE0ODAyOGUyYjA3YjE5ZGM3ODM5MmE0
M2E4Y2JhNS4uMzMyZjQ2MjZiZDMyZTgzMWFkOTA4YTQ2YWM0ZGMxNDZlNmVjY2E4NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYWNvbnRyb2xzL01lZGlhQ29udHJvbHNI
b3N0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhY29udHJvbHMvTWVkaWFD
b250cm9sc0hvc3QuY3BwCkBAIC0xMTgsMTQgKzExOCwxNCBAQCBNZWRpYUNvbnRyb2xzSG9zdDo6
fk1lZGlhQ29udHJvbHNIb3N0KCkKIFN0cmluZyBNZWRpYUNvbnRyb2xzSG9zdDo6bGF5b3V0VHJh
aXRzQ2xhc3NOYW1lKCkgY29uc3QKIHsKICNpZiBkZWZpbmVkKE1FRElBX0NPTlRST0xTX0hPU1Rf
TEFZT1VUX1RSQUlUU19DTEFTU19OQU1FX09WRVJSSURFKQotICAgIHJldHVybiBNRURJQV9DT05U
Uk9MU19IT1NUX0xBWU9VVF9UUkFJVFNfQ0xBU1NfTkFNRV9PVkVSUklERTsKKyAgICByZXR1cm4g
TUVESUFfQ09OVFJPTFNfSE9TVF9MQVlPVVRfVFJBSVRTX0NMQVNTX05BTUVfT1ZFUlJJREUiIl9z
OwogI2Vsc2UKICNpZiBQTEFURk9STShNQUMpIHx8IFBMQVRGT1JNKE1BQ0NBVEFMWVNUKQotICAg
IHJldHVybiAiTWFjT1NMYXlvdXRUcmFpdHMiOworICAgIHJldHVybiAiTWFjT1NMYXlvdXRUcmFp
dHMiX3M7CiAjZWxpZiBQTEFURk9STShJT1MpCi0gICAgcmV0dXJuICJJT1NMYXlvdXRUcmFpdHMi
OworICAgIHJldHVybiAiSU9TTGF5b3V0VHJhaXRzIl9zOwogI2VsaWYgUExBVEZPUk0oV0FUQ0hP
UykKLSAgICByZXR1cm4gIldhdGNoT1NMYXlvdXRUcmFpdHMiOworICAgIHJldHVybiAiV2F0Y2hP
U0xheW91dFRyYWl0cyJfczsKICNlbHNlCiAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAg
cmV0dXJuIG51bGxTdHJpbmcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFyZWNvcmRlci9NZWRpYVJlY29yZGVyLmNwcAppbmRleCBhOTFlNjY5MDAwNDgzMTZhOWE5
MTNjYTBkNTEyOGVhYTE1MWQ5Y2NlLi5mZjk0OTk5YzIwMmEzMjA1NGM2MTZiZjM2NmM2NzNhZWI0
MjdmNjUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhcmVjb3JkZXIv
TWVkaWFSZWNvcmRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXJlY29y
ZGVyL01lZGlhUmVjb3JkZXIuY3BwCkBAIC02Niw3ICs2Niw3IEBAIEV4Y2VwdGlvbk9yPFJlZjxN
ZWRpYVJlY29yZGVyPj4gTWVkaWFSZWNvcmRlcjo6Y3JlYXRlKERvY3VtZW50JiBkb2N1bWVudCwg
UmVmPE1lCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9Owog
CiAgICAgaWYgKCFpc1R5cGVTdXBwb3J0ZWQoZG9jdW1lbnQsIG9wdGlvbnMubWltZVR5cGUpKQot
ICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IsICJtaW1lVHlwZSBp
cyBub3Qgc3VwcG9ydGVkIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90U3VwcG9y
dGVkRXJyb3IsICJtaW1lVHlwZSBpcyBub3Qgc3VwcG9ydGVkIl9zIH07CiAKICAgICBhdXRvIHJl
Y29yZGVyID0gYWRvcHRSZWYoKm5ldyBNZWRpYVJlY29yZGVyKGRvY3VtZW50LCBXVEZNb3ZlKHN0
cmVhbSksIFdURk1vdmUob3B0aW9ucykpKTsKICAgICByZWNvcmRlci0+c3VzcGVuZElmTmVlZGVk
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc291cmNlL01lZGlh
U291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3Vy
Y2UuY3BwCmluZGV4IGE1OTAzN2E0MDU4NjMxOGYyMTZhNmVhMDE5ZGIyNGE5YjAzOTcyNDguLjhj
YjZkNWNmYzM4ZDZlZjgwZjdlMzk0MWZiOTU4YTM0ZDUzNWZjYzggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzb3VyY2UvTWVkaWFTb3VyY2UuY3BwCkBAIC02NTAsNyAr
NjUwLDcgQEAgc3RhdGljIENvbnRlbnRUeXBlIGFkZFZQOUZ1bGxSYW5nZVZpZGVvRmxhZ1RvQ29u
dGVudFR5cGUoY29uc3QgQ29udGVudFR5cGUmIHR5cGUKICAgICAgICAgaWYgKHBvc2l0aW9uID09
IG5vdEZvdW5kKQogICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgcmF3VHlwZS5pbnNl
cnQoIi4wMCIsIHBvc2l0aW9uICsgY29kZWMubGVuZ3RoKCkpOworICAgICAgICByYXdUeXBlLmlu
c2VydCgiLjAwIl9zLCBwb3NpdGlvbiArIGNvZGVjLmxlbmd0aCgpKTsKICAgICAgICAgcmV0dXJu
IENvbnRlbnRUeXBlKHJhd1R5cGUpOwogICAgIH0KICAgICByZXR1cm4gdHlwZTsKQEAgLTg5NSw3
ICs4OTUsNyBAQCBib29sIE1lZGlhU291cmNlOjppc1R5cGVTdXBwb3J0ZWQoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3QgU3RyaW5nJgogICAgIGlmIChjb250ZXh0LmlzRG9j
dW1lbnQoKSAmJiBkb3duY2FzdDxEb2N1bWVudD4oY29udGV4dCkucXVpcmtzKCkubmVlZHNWUDlG
dWxsUmFuZ2VGbGFnUXVpcmsoKSkKICAgICAgICAgY29udGVudFR5cGUgPSBhZGRWUDlGdWxsUmFu
Z2VWaWRlb0ZsYWdUb0NvbnRlbnRUeXBlKGNvbnRlbnRUeXBlKTsKIAotICAgIFN0cmluZyBjb2Rl
Y3MgPSBjb250ZW50VHlwZS5wYXJhbWV0ZXIoImNvZGVjcyIpOworICAgIFN0cmluZyBjb2RlY3Mg
PSBjb250ZW50VHlwZS5wYXJhbWV0ZXIoImNvZGVjcyJfcyk7CiAKICAgICAvLyAyLiBJZiB0eXBl
IGRvZXMgbm90IGNvbnRhaW4gYSB2YWxpZCBNSU1FIHR5cGUgc3RyaW5nLCB0aGVuIHJldHVybiBm
YWxzZS4KICAgICBpZiAoY29udGVudFR5cGUuY29udGFpbmVyVHlwZSgpLmlzRW1wdHkoKSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFUcmFja0Nv
bnN0cmFpbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFU
cmFja0NvbnN0cmFpbnRzLmNwcAppbmRleCAzMTEzODQ3ZGI3NTQ4NDdkNjE2MmZhMmQ2MWU2NzM0
YTZhODg4NWIzLi4yZjhkOGJkMjdkNzM1NTQ2YmE4NGI2MTgwOGE2Y2RhYjNmMzI4ZTE2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhVHJhY2tDb25z
dHJhaW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRp
YVRyYWNrQ29uc3RyYWludHMuY3BwCkBAIC0zMyw3ICszMyw3IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAogZW51bSBjbGFzcyBDb25zdHJhaW50U2V0VHlwZSB7IE1hbmRhdG9yeSwgQWR2YW5jZWQg
fTsKIAotc3RhdGljIHZvaWQgc2V0KE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwJiBtYXAsIENv
bnN0cmFpbnRTZXRUeXBlIHNldFR5cGUsIGNvbnN0IGNoYXIqIHR5cGVBc1N0cmluZywgTWVkaWFD
b25zdHJhaW50VHlwZSB0eXBlLCBjb25zdCBDb25zdHJhaW5Mb25nJiB2YWx1ZSkKK3N0YXRpYyB2
b2lkIHNldChNZWRpYVRyYWNrQ29uc3RyYWludFNldE1hcCYgbWFwLCBDb25zdHJhaW50U2V0VHlw
ZSBzZXRUeXBlLCBBU0NJSUxpdGVyYWwgdHlwZUFzU3RyaW5nLCBNZWRpYUNvbnN0cmFpbnRUeXBl
IHR5cGUsIGNvbnN0IENvbnN0cmFpbkxvbmcmIHZhbHVlKQogewogICAgIEludENvbnN0cmFpbnQg
Y29uc3RyYWludCh0eXBlQXNTdHJpbmcsIHR5cGUpOwogICAgIFdURjo6c3dpdGNoT24odmFsdWUs
CkBAIC01Nyw3ICs1Nyw3IEBAIHN0YXRpYyB2b2lkIHNldChNZWRpYVRyYWNrQ29uc3RyYWludFNl
dE1hcCYgbWFwLCBDb25zdHJhaW50U2V0VHlwZSBzZXRUeXBlLCBjb25zCiAgICAgbWFwLnNldCh0
eXBlLCBXVEZNb3ZlKGNvbnN0cmFpbnQpKTsKIH0KIAotc3RhdGljIHZvaWQgc2V0KE1lZGlhVHJh
Y2tDb25zdHJhaW50U2V0TWFwJiBtYXAsIENvbnN0cmFpbnRTZXRUeXBlIHNldFR5cGUsIGNvbnN0
IGNoYXIqIHR5cGVBc1N0cmluZywgTWVkaWFDb25zdHJhaW50VHlwZSB0eXBlLCBjb25zdCBDb25z
dHJhaW5Eb3VibGUmIHZhbHVlKQorc3RhdGljIHZvaWQgc2V0KE1lZGlhVHJhY2tDb25zdHJhaW50
U2V0TWFwJiBtYXAsIENvbnN0cmFpbnRTZXRUeXBlIHNldFR5cGUsIEFTQ0lJTGl0ZXJhbCB0eXBl
QXNTdHJpbmcsIE1lZGlhQ29uc3RyYWludFR5cGUgdHlwZSwgY29uc3QgQ29uc3RyYWluRG91Ymxl
JiB2YWx1ZSkKIHsKICAgICBEb3VibGVDb25zdHJhaW50IGNvbnN0cmFpbnQodHlwZUFzU3RyaW5n
LCB0eXBlKTsKICAgICBXVEY6OnN3aXRjaE9uKHZhbHVlLApAQCAtODEsNyArODEsNyBAQCBzdGF0
aWMgdm9pZCBzZXQoTWVkaWFUcmFja0NvbnN0cmFpbnRTZXRNYXAmIG1hcCwgQ29uc3RyYWludFNl
dFR5cGUgc2V0VHlwZSwgY29ucwogICAgIG1hcC5zZXQodHlwZSwgV1RGTW92ZShjb25zdHJhaW50
KSk7CiB9CiAKLXN0YXRpYyB2b2lkIHNldChNZWRpYVRyYWNrQ29uc3RyYWludFNldE1hcCYgbWFw
LCBDb25zdHJhaW50U2V0VHlwZSBzZXRUeXBlLCBjb25zdCBjaGFyKiB0eXBlQXNTdHJpbmcsIE1l
ZGlhQ29uc3RyYWludFR5cGUgdHlwZSwgY29uc3QgQ29uc3RyYWluQm9vbGVhbiYgdmFsdWUpCitz
dGF0aWMgdm9pZCBzZXQoTWVkaWFUcmFja0NvbnN0cmFpbnRTZXRNYXAmIG1hcCwgQ29uc3RyYWlu
dFNldFR5cGUgc2V0VHlwZSwgQVNDSUlMaXRlcmFsIHR5cGVBc1N0cmluZywgTWVkaWFDb25zdHJh
aW50VHlwZSB0eXBlLCBjb25zdCBDb25zdHJhaW5Cb29sZWFuJiB2YWx1ZSkKIHsKICAgICBCb29s
ZWFuQ29uc3RyYWludCBjb25zdHJhaW50KHR5cGVBc1N0cmluZywgdHlwZSk7CiAgICAgV1RGOjpz
d2l0Y2hPbih2YWx1ZSwKQEAgLTEwMSw3ICsxMDEsNyBAQCBzdGF0aWMgdm9pZCBzZXQoTWVkaWFU
cmFja0NvbnN0cmFpbnRTZXRNYXAmIG1hcCwgQ29uc3RyYWludFNldFR5cGUgc2V0VHlwZSwgY29u
cwogICAgIG1hcC5zZXQodHlwZSwgV1RGTW92ZShjb25zdHJhaW50KSk7CiB9CiAKLXN0YXRpYyB2
b2lkIHNldChNZWRpYVRyYWNrQ29uc3RyYWludFNldE1hcCYgbWFwLCBDb25zdHJhaW50U2V0VHlw
ZSBzZXRUeXBlLCBjb25zdCBjaGFyKiB0eXBlQXNTdHJpbmcsIE1lZGlhQ29uc3RyYWludFR5cGUg
dHlwZSwgY29uc3QgQ29uc3RyYWluRE9NU3RyaW5nJiB2YWx1ZSkKK3N0YXRpYyB2b2lkIHNldChN
ZWRpYVRyYWNrQ29uc3RyYWludFNldE1hcCYgbWFwLCBDb25zdHJhaW50U2V0VHlwZSBzZXRUeXBl
LCBBU0NJSUxpdGVyYWwgdHlwZUFzU3RyaW5nLCBNZWRpYUNvbnN0cmFpbnRUeXBlIHR5cGUsIGNv
bnN0IENvbnN0cmFpbkRPTVN0cmluZyYgdmFsdWUpCiB7CiAgICAgU3RyaW5nQ29uc3RyYWludCBj
b25zdHJhaW50KHR5cGVBc1N0cmluZywgdHlwZSk7CiAgICAgV1RGOjpzd2l0Y2hPbih2YWx1ZSwK
QEAgLTE0OCw3ICsxNDgsNyBAQCBzdGF0aWMgdm9pZCBzZXQoTWVkaWFUcmFja0NvbnN0cmFpbnRT
ZXRNYXAmIG1hcCwgQ29uc3RyYWludFNldFR5cGUgc2V0VHlwZSwgY29ucwogICAgIG1hcC5zZXQo
dHlwZSwgV1RGTW92ZShjb25zdHJhaW50KSk7CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0
YXRpYyBpbmxpbmUgdm9pZCBzZXQoTWVkaWFUcmFja0NvbnN0cmFpbnRTZXRNYXAmIG1hcCwgQ29u
c3RyYWludFNldFR5cGUgc2V0VHlwZSwgY29uc3QgY2hhciogdHlwZUFzU3RyaW5nLCBNZWRpYUNv
bnN0cmFpbnRUeXBlIHR5cGUsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8VD4mIHZhbHVlKQordGVtcGxh
dGU8dHlwZW5hbWUgVD4gc3RhdGljIGlubGluZSB2b2lkIHNldChNZWRpYVRyYWNrQ29uc3RyYWlu
dFNldE1hcCYgbWFwLCBDb25zdHJhaW50U2V0VHlwZSBzZXRUeXBlLCBBU0NJSUxpdGVyYWwgdHlw
ZUFzU3RyaW5nLCBNZWRpYUNvbnN0cmFpbnRUeXBlIHR5cGUsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8
VD4mIHZhbHVlKQogewogICAgIGlmICghdmFsdWUpCiAgICAgICAgIHJldHVybjsKQEAgLTE1OCwy
MSArMTU4LDIxIEBAIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHN0YXRpYyBpbmxpbmUgdm9pZCBzZXQo
TWVkaWFUcmFja0NvbnN0cmFpbnRTZXRNYXAmIG1hcCwgQ29uCiBzdGF0aWMgTWVkaWFUcmFja0Nv
bnN0cmFpbnRTZXRNYXAgY29udmVydFRvSW50ZXJuYWxGb3JtKENvbnN0cmFpbnRTZXRUeXBlIHNl
dFR5cGUsIGNvbnN0IE1lZGlhVHJhY2tDb25zdHJhaW50U2V0JiBjb25zdHJhaW50U2V0KQogewog
ICAgIE1lZGlhVHJhY2tDb25zdHJhaW50U2V0TWFwIHJlc3VsdDsKLSAgICBzZXQocmVzdWx0LCBz
ZXRUeXBlLCAid2lkdGgiLCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpXaWR0aCwgY29uc3RyYWludFNl
dC53aWR0aCk7Ci0gICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgImhlaWdodCIsIE1lZGlhQ29uc3Ry
YWludFR5cGU6OkhlaWdodCwgY29uc3RyYWludFNldC5oZWlnaHQpOwotICAgIHNldChyZXN1bHQs
IHNldFR5cGUsICJhc3BlY3RSYXRpbyIsIE1lZGlhQ29uc3RyYWludFR5cGU6OkFzcGVjdFJhdGlv
LCBjb25zdHJhaW50U2V0LmFzcGVjdFJhdGlvKTsKLSAgICBzZXQocmVzdWx0LCBzZXRUeXBlLCAi
ZnJhbWVSYXRlIiwgTWVkaWFDb25zdHJhaW50VHlwZTo6RnJhbWVSYXRlLCBjb25zdHJhaW50U2V0
LmZyYW1lUmF0ZSk7Ci0gICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgImZhY2luZ01vZGUiLCBNZWRp
YUNvbnN0cmFpbnRUeXBlOjpGYWNpbmdNb2RlLCBjb25zdHJhaW50U2V0LmZhY2luZ01vZGUpOwot
ICAgIHNldChyZXN1bHQsIHNldFR5cGUsICJ2b2x1bWUiLCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpW
b2x1bWUsIGNvbnN0cmFpbnRTZXQudm9sdW1lKTsKLSAgICBzZXQocmVzdWx0LCBzZXRUeXBlLCAi
c2FtcGxlUmF0ZSIsIE1lZGlhQ29uc3RyYWludFR5cGU6OlNhbXBsZVJhdGUsIGNvbnN0cmFpbnRT
ZXQuc2FtcGxlUmF0ZSk7Ci0gICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgInNhbXBsZVNpemUiLCBN
ZWRpYUNvbnN0cmFpbnRUeXBlOjpTYW1wbGVTaXplLCBjb25zdHJhaW50U2V0LnNhbXBsZVNpemUp
OwotICAgIHNldChyZXN1bHQsIHNldFR5cGUsICJlY2hvQ2FuY2VsbGF0aW9uIiwgTWVkaWFDb25z
dHJhaW50VHlwZTo6RWNob0NhbmNlbGxhdGlvbiwgY29uc3RyYWludFNldC5lY2hvQ2FuY2VsbGF0
aW9uKTsKKyAgICBzZXQocmVzdWx0LCBzZXRUeXBlLCAid2lkdGgiX3MsIE1lZGlhQ29uc3RyYWlu
dFR5cGU6OldpZHRoLCBjb25zdHJhaW50U2V0LndpZHRoKTsKKyAgICBzZXQocmVzdWx0LCBzZXRU
eXBlLCAiaGVpZ2h0Il9zLCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpIZWlnaHQsIGNvbnN0cmFpbnRT
ZXQuaGVpZ2h0KTsKKyAgICBzZXQocmVzdWx0LCBzZXRUeXBlLCAiYXNwZWN0UmF0aW8iX3MsIE1l
ZGlhQ29uc3RyYWludFR5cGU6OkFzcGVjdFJhdGlvLCBjb25zdHJhaW50U2V0LmFzcGVjdFJhdGlv
KTsKKyAgICBzZXQocmVzdWx0LCBzZXRUeXBlLCAiZnJhbWVSYXRlIl9zLCBNZWRpYUNvbnN0cmFp
bnRUeXBlOjpGcmFtZVJhdGUsIGNvbnN0cmFpbnRTZXQuZnJhbWVSYXRlKTsKKyAgICBzZXQocmVz
dWx0LCBzZXRUeXBlLCAiZmFjaW5nTW9kZSJfcywgTWVkaWFDb25zdHJhaW50VHlwZTo6RmFjaW5n
TW9kZSwgY29uc3RyYWludFNldC5mYWNpbmdNb2RlKTsKKyAgICBzZXQocmVzdWx0LCBzZXRUeXBl
LCAidm9sdW1lIl9zLCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpWb2x1bWUsIGNvbnN0cmFpbnRTZXQu
dm9sdW1lKTsKKyAgICBzZXQocmVzdWx0LCBzZXRUeXBlLCAic2FtcGxlUmF0ZSJfcywgTWVkaWFD
b25zdHJhaW50VHlwZTo6U2FtcGxlUmF0ZSwgY29uc3RyYWludFNldC5zYW1wbGVSYXRlKTsKKyAg
ICBzZXQocmVzdWx0LCBzZXRUeXBlLCAic2FtcGxlU2l6ZSJfcywgTWVkaWFDb25zdHJhaW50VHlw
ZTo6U2FtcGxlU2l6ZSwgY29uc3RyYWludFNldC5zYW1wbGVTaXplKTsKKyAgICBzZXQocmVzdWx0
LCBzZXRUeXBlLCAiZWNob0NhbmNlbGxhdGlvbiJfcywgTWVkaWFDb25zdHJhaW50VHlwZTo6RWNo
b0NhbmNlbGxhdGlvbiwgY29uc3RyYWludFNldC5lY2hvQ2FuY2VsbGF0aW9uKTsKICAgICAvLyBG
SVhNRTogYWRkIGxhdGVuY3kKICAgICAvLyBGSVhNRTogYWRkIGNoYW5uZWxDb3VudAotICAgIHNl
dChyZXN1bHQsIHNldFR5cGUsICJkZXZpY2VJZCIsIE1lZGlhQ29uc3RyYWludFR5cGU6OkRldmlj
ZUlkLCBjb25zdHJhaW50U2V0LmRldmljZUlkKTsKLSAgICBzZXQocmVzdWx0LCBzZXRUeXBlLCAi
Z3JvdXBJZCIsIE1lZGlhQ29uc3RyYWludFR5cGU6Okdyb3VwSWQsIGNvbnN0cmFpbnRTZXQuZ3Jv
dXBJZCk7Ci0gICAgc2V0KHJlc3VsdCwgc2V0VHlwZSwgImRpc3BsYXlTdXJmYWNlIiwgTWVkaWFD
b25zdHJhaW50VHlwZTo6RGlzcGxheVN1cmZhY2UsIGNvbnN0cmFpbnRTZXQuZGlzcGxheVN1cmZh
Y2UpOwotICAgIHNldChyZXN1bHQsIHNldFR5cGUsICJsb2dpY2FsU3VyZmFjZSIsIE1lZGlhQ29u
c3RyYWludFR5cGU6OkxvZ2ljYWxTdXJmYWNlLCBjb25zdHJhaW50U2V0LmxvZ2ljYWxTdXJmYWNl
KTsKKyAgICBzZXQocmVzdWx0LCBzZXRUeXBlLCAiZGV2aWNlSWQiX3MsIE1lZGlhQ29uc3RyYWlu
dFR5cGU6OkRldmljZUlkLCBjb25zdHJhaW50U2V0LmRldmljZUlkKTsKKyAgICBzZXQocmVzdWx0
LCBzZXRUeXBlLCAiZ3JvdXBJZCJfcywgTWVkaWFDb25zdHJhaW50VHlwZTo6R3JvdXBJZCwgY29u
c3RyYWludFNldC5ncm91cElkKTsKKyAgICBzZXQocmVzdWx0LCBzZXRUeXBlLCAiZGlzcGxheVN1
cmZhY2UiX3MsIE1lZGlhQ29uc3RyYWludFR5cGU6OkRpc3BsYXlTdXJmYWNlLCBjb25zdHJhaW50
U2V0LmRpc3BsYXlTdXJmYWNlKTsKKyAgICBzZXQocmVzdWx0LCBzZXRUeXBlLCAibG9naWNhbFN1
cmZhY2UiX3MsIE1lZGlhQ29uc3RyYWludFR5cGU6OkxvZ2ljYWxTdXJmYWNlLCBjb25zdHJhaW50
U2V0LmxvZ2ljYWxTdXJmYWNlKTsKICAgICByZXR1cm4gcmVzdWx0OwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0ljZUNhbmRpZGF0ZS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ0ljZUNhbmRpZGF0ZS5jcHAK
aW5kZXggOWY3MDZkZjZkZjY1ZTdmOTU4MTU3NTE0MDIyNDhlMDhjN2EyM2ZhMC4uYmI3ZWY3NDEy
NjE5YzA1OWRjZWM3NGQ2OGVlMmRiZTBjOTNhYmMyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9SVENJY2VDYW5kaWRhdGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDSWNlQ2FuZGlkYXRlLmNwcApAQCAtNTQsNyAr
NTQsNyBAQCBSVENJY2VDYW5kaWRhdGU6OlJUQ0ljZUNhbmRpZGF0ZShjb25zdCBTdHJpbmcmIGNh
bmRpZGF0ZSwgY29uc3QgU3RyaW5nJiBzZHBNaWQsCiBFeGNlcHRpb25PcjxSZWY8UlRDSWNlQ2Fu
ZGlkYXRlPj4gUlRDSWNlQ2FuZGlkYXRlOjpjcmVhdGUoY29uc3QgUlRDSWNlQ2FuZGlkYXRlSW5p
dCYgZGljdGlvbmFyeSkKIHsKICAgICBpZiAoZGljdGlvbmFyeS5zZHBNaWQuaXNOdWxsKCkgJiYg
IWRpY3Rpb25hcnkuc2RwTUxpbmVJbmRleCkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5
cGVFcnJvciwgIkNhbmRpZGF0ZSBtdXN0IG5vdCBoYXZlIGJvdGggbnVsbCBzZHBNaWQgYW5kIHNk
cE1MaW5lSW5kZXgiIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJD
YW5kaWRhdGUgbXVzdCBub3QgaGF2ZSBib3RoIG51bGwgc2RwTWlkIGFuZCBzZHBNTGluZUluZGV4
Il9zIH07CiAKICAgICBhdXRvIGZpZWxkcyA9IHZhbHVlT3JEZWZhdWx0KHBhcnNlSWNlQ2FuZGlk
YXRlU0RQKGRpY3Rpb25hcnkuY2FuZGlkYXRlKSk7CiAgICAgZmllbGRzLnVzZXJuYW1lRnJhZ21l
bnQgPSBkaWN0aW9uYXJ5LnVzZXJuYW1lRnJhZ21lbnQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1BlZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwCmluZGV4IDkw
ZGU2Mzk5MzRlZDYxYzVjMGIxMDEyYzBhYTUzOTdkZDBkOGIzMmEuLjQxNTY2YTU1NWY2MmVlNTA4
ZTBkZDFhMWRkNzA4ODRlZjc1MGY1YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vUlRDUGVlckNvbm5lY3Rpb24uY3BwCkBAIC0yNzMsNyArMjcz
LDcgQEAgdm9pZCBSVENQZWVyQ29ubmVjdGlvbjo6c2V0TG9jYWxEZXNjcmlwdGlvbihzdGQ6Om9w
dGlvbmFsPFJUQ0xvY2FsU2Vzc2lvbkRlc2NyaXAKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAot
ICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgIlNldHRpbmcgbG9jYWwgZGVzY3JpcHRpb24g
dG86XG4iLCBsb2NhbERlc2NyaXB0aW9uID8gbG9jYWxEZXNjcmlwdGlvbi0+c2RwIDogIicnIik7
CisgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCAiU2V0dGluZyBsb2NhbCBkZXNjcmlwdGlv
biB0bzpcbiIsIGxvY2FsRGVzY3JpcHRpb24gPyBsb2NhbERlc2NyaXB0aW9uLT5zZHAgOiAiJyci
X3MpOwogICAgIGNoYWluT3BlcmF0aW9uKFdURk1vdmUocHJvbWlzZSksIFt0aGlzLCBsb2NhbERl
c2NyaXB0aW9uID0gV1RGTW92ZShsb2NhbERlc2NyaXB0aW9uKV0oYXV0byYmIHByb21pc2UpIG11
dGFibGUgewogICAgICAgICBhdXRvIHR5cGUgPSB0eXBlRm9yU2V0TG9jYWxEZXNjcmlwdGlvbihs
b2NhbERlc2NyaXB0aW9uLCBtX3NpZ25hbGluZ1N0YXRlKTsKICAgICAgICAgU3RyaW5nIHNkcDsK
QEAgLTM0NCw3ICszNDQsNyBAQCB2b2lkIFJUQ1BlZXJDb25uZWN0aW9uOjphZGRJY2VDYW5kaWRh
dGUoQ2FuZGlkYXRlJiYgcnRjQ2FuZGlkYXRlLCBSZWY8RGVmZXJyZWRQcgogICAgICAgICB9KTsK
ICAgICB9CiAKLSAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIsICJSZWNlaXZlZCBpY2UgY2Fu
ZGlkYXRlOlxuIiwgY2FuZGlkYXRlID8gY2FuZGlkYXRlLT5jYW5kaWRhdGUoKSA6ICJudWxsIik7
CisgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCAiUmVjZWl2ZWQgaWNlIGNhbmRpZGF0ZTpc
biIsIGNhbmRpZGF0ZSA/IGNhbmRpZGF0ZS0+Y2FuZGlkYXRlKCkgOiAibnVsbCJfcyk7CiAKICAg
ICBpZiAoZXhjZXB0aW9uKSB7CiAgICAgICAgIHByb21pc2UtPnJlamVjdCgqZXhjZXB0aW9uKTsK
QEAgLTM3OSwxMyArMzc5LDEzIEBAIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gUlRDUGVlckNvbm5lY3Rp
b246OmNhblRyaWNrbGVJY2VDYW5kaWRhdGVzKCkgY29uc3QKIEV4Y2VwdGlvbk9yPFZlY3RvcjxN
ZWRpYUVuZHBvaW50Q29uZmlndXJhdGlvbjo6SWNlU2VydmVySW5mbz4+IFJUQ1BlZXJDb25uZWN0
aW9uOjppY2VTZXJ2ZXJzRnJvbUNvbmZpZ3VyYXRpb24oUlRDQ29uZmlndXJhdGlvbiYgbmV3Q29u
ZmlndXJhdGlvbiwgY29uc3QgUlRDQ29uZmlndXJhdGlvbiogZXhpc3RpbmdDb25maWd1cmF0aW9u
LCBib29sIGlzTG9jYWxEZXNjcmlwdGlvblNldCkKIHsKICAgICBpZiAoZXhpc3RpbmdDb25maWd1
cmF0aW9uICYmIG5ld0NvbmZpZ3VyYXRpb24uYnVuZGxlUG9saWN5ICE9IGV4aXN0aW5nQ29uZmln
dXJhdGlvbi0+YnVuZGxlUG9saWN5KQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxp
ZE1vZGlmaWNhdGlvbkVycm9yLCAiQnVuZGxlUG9saWN5IGRvZXMgbm90IG1hdGNoIGV4aXN0aW5n
IHBvbGljeSIgfTsKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRNb2RpZmljYXRp
b25FcnJvciwgIkJ1bmRsZVBvbGljeSBkb2VzIG5vdCBtYXRjaCBleGlzdGluZyBwb2xpY3kiX3Mg
fTsKIAogICAgIGlmIChleGlzdGluZ0NvbmZpZ3VyYXRpb24gJiYgbmV3Q29uZmlndXJhdGlvbi5y
dGNwTXV4UG9saWN5ICE9IGV4aXN0aW5nQ29uZmlndXJhdGlvbi0+cnRjcE11eFBvbGljeSkKLSAg
ICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRNb2RpZmljYXRpb25FcnJvciwgIlJUQ1BN
dXhQb2xpY3kgZG9lcyBub3QgbWF0Y2ggZXhpc3RpbmcgcG9saWN5IiB9OworICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yLCAiUlRDUE11eFBvbGljeSBk
b2VzIG5vdCBtYXRjaCBleGlzdGluZyBwb2xpY3kiX3MgfTsKIAogICAgIGlmIChleGlzdGluZ0Nv
bmZpZ3VyYXRpb24gJiYgbmV3Q29uZmlndXJhdGlvbi5pY2VDYW5kaWRhdGVQb29sU2l6ZSAhPSBl
eGlzdGluZ0NvbmZpZ3VyYXRpb24tPmljZUNhbmRpZGF0ZVBvb2xTaXplICYmIGlzTG9jYWxEZXNj
cmlwdGlvblNldCkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRNb2RpZmljYXRp
b25FcnJvciwgIkljZVRyYW5zcG9ydFBvbGljeSBwb29sIHNpemUgZG9lcyBub3QgbWF0Y2ggZXhp
c3RpbmcgcG9vbCBzaXplIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZE1v
ZGlmaWNhdGlvbkVycm9yLCAiSWNlVHJhbnNwb3J0UG9saWN5IHBvb2wgc2l6ZSBkb2VzIG5vdCBt
YXRjaCBleGlzdGluZyBwb29sIHNpemUiX3MgfTsKIAogICAgIFZlY3RvcjxNZWRpYUVuZHBvaW50
Q29uZmlndXJhdGlvbjo6SWNlU2VydmVySW5mbz4gc2VydmVyczsKICAgICBpZiAobmV3Q29uZmln
dXJhdGlvbi5pY2VTZXJ2ZXJzKSB7CkBAIC00MTQsMTggKzQxNCwxOCBAQCBFeGNlcHRpb25PcjxW
ZWN0b3I8TWVkaWFFbmRwb2ludENvbmZpZ3VyYXRpb246OkljZVNlcnZlckluZm8+PiBSVENQZWVy
Q29ubmVjdGlvbgogCiAgICAgICAgICAgICBmb3IgKGF1dG8mIHNlcnZlclVSTCA6IHNlcnZlclVS
THMpIHsKICAgICAgICAgICAgICAgICBpZiAoc2VydmVyVVJMLmlzTnVsbCgpKQotICAgICAgICAg
ICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiQmFkIElDRSBzZXJ2ZXIg
VVJMIiB9OworICAgICAgICAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9y
LCAiQmFkIElDRSBzZXJ2ZXIgVVJMIl9zIH07CiAgICAgICAgICAgICAgICAgaWYgKHNlcnZlclVS
TC5wcm90b2NvbElzKCJ0dXJuIikgfHwgc2VydmVyVVJMLnByb3RvY29sSXMoInR1cm5zIikpIHsK
ICAgICAgICAgICAgICAgICAgICAgaWYgKHNlcnZlci5jcmVkZW50aWFsLmlzTnVsbCgpIHx8IHNl
cnZlci51c2VybmFtZS5pc051bGwoKSkKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJUVVJOL1RVUk5TIHNlcnZlciByZXF1aXJl
cyBib3RoIHVzZXJuYW1lIGFuZCBjcmVkZW50aWFsIiB9OworICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwgIlRVUk4vVFVSTlMgc2Vy
dmVyIHJlcXVpcmVzIGJvdGggdXNlcm5hbWUgYW5kIGNyZWRlbnRpYWwiX3MgfTsKICAgICAgICAg
ICAgICAgICAgICAgLy8gaHR0cHM6Ly90b29scy5pZXRmLm9yZy9odG1sL3JmYzg0ODkjc2VjdGlv
bi0xNC4zCiAgICAgICAgICAgICAgICAgICAgIGlmIChzZXJ2ZXIuY3JlZGVudGlhbC5sZW5ndGgo
KSA+IDY0IHx8IHNlcnZlci51c2VybmFtZS5sZW5ndGgoKSA+IDY0KSB7CiAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdGV4cHIgc2l6ZV90IE1heFR1cm5Vc2VybmFtZUxlbmd0aCA9IDUwOTsK
ICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzZXJ2ZXIuY3JlZGVudGlhbC51dGY4KCkubGVu
Z3RoKCkgPiBNYXhUdXJuVXNlcm5hbWVMZW5ndGggfHwgc2VydmVyLnVzZXJuYW1lLnV0ZjgoKS5s
ZW5ndGgoKSA+IE1heFR1cm5Vc2VybmFtZUxlbmd0aCkKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiVFVSTi9UVVJOUyB1c2VybmFtZSBh
bmQvb3IgY3JlZGVudGlhbCBhcmUgdG9vIGxvbmciIH07CisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIlRVUk4vVFVSTlMgdXNlcm5hbWUg
YW5kL29yIGNyZWRlbnRpYWwgYXJlIHRvbyBsb25nIl9zIH07CiAgICAgICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFzZXJ2ZXJVUkwucHJvdG9jb2xJcygic3R1
biIpKQotICAgICAgICAgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVk
RXJyb3IsICJJQ0Ugc2VydmVyIHByb3RvY29sIG5vdCBzdXBwb3J0ZWQiIH07CisgICAgICAgICAg
ICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciwgIklDRSBzZXJ2
ZXIgcHJvdG9jb2wgbm90IHN1cHBvcnRlZCJfcyB9OwogICAgICAgICAgICAgfQogICAgICAgICAg
ICAgaWYgKHNlcnZlclVSTHMuc2l6ZSgpKQogICAgICAgICAgICAgICAgIHNlcnZlcnMudW5jaGVj
a2VkQXBwZW5kKHsgV1RGTW92ZShzZXJ2ZXJVUkxzKSwgc2VydmVyLmNyZWRlbnRpYWwsIHNlcnZl
ci51c2VybmFtZSB9KTsKQEAgLTQ0Myw3ICs0NDMsNyBAQCBFeGNlcHRpb25PcjxWZWN0b3I8TWVk
aWFFbmRwb2ludENvbmZpZ3VyYXRpb246OkNlcnRpZmljYXRlUEVNPj4gUlRDUGVlckNvbm5lY3Rp
bwogICAgIGNlcnRpZmljYXRlcy5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KGNvbmZpZ3VyYXRpb24u
Y2VydGlmaWNhdGVzLnNpemUoKSk7CiAgICAgZm9yIChhdXRvJiBjZXJ0aWZpY2F0ZSA6IGNvbmZp
Z3VyYXRpb24uY2VydGlmaWNhdGVzKSB7CiAgICAgICAgIGlmICghb3JpZ2luLmlzU2FtZU9yaWdp
bkFzKGNlcnRpZmljYXRlLT5vcmlnaW4oKSkpCi0gICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9u
IHsgSW52YWxpZEFjY2Vzc0Vycm9yLCAiQ2VydGlmaWNhdGUgZG9lcyBub3QgaGF2ZSBhIHZhbGlk
IG9yaWdpbiIgfTsKKyAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNz
RXJyb3IsICJDZXJ0aWZpY2F0ZSBkb2VzIG5vdCBoYXZlIGEgdmFsaWQgb3JpZ2luIl9zIH07CiAK
ICAgICAgICAgaWYgKGN1cnJlbnRNaWxsaVNlY29uZHMgPiBjZXJ0aWZpY2F0ZS0+ZXhwaXJlcygp
KQogICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwgIkNl
cnRpZmljYXRlIGhhcyBleHBpcmVkIl9zIH07CkBAIC00NjYsNyArNDY2LDcgQEAgRXhjZXB0aW9u
T3I8dm9pZD4gUlRDUGVlckNvbm5lY3Rpb246OmluaXRpYWxpemVDb25maWd1cmF0aW9uKFJUQ0Nv
bmZpZ3VyYXRpb24mJgogICAgICAgICByZXR1cm4gY2VydGlmaWNhdGVzLnJlbGVhc2VFeGNlcHRp
b24oKTsKIAogICAgIGlmICghbV9iYWNrZW5kLT5zZXRDb25maWd1cmF0aW9uKHsgc2VydmVycy5y
ZWxlYXNlUmV0dXJuVmFsdWUoKSwgY29uZmlndXJhdGlvbi5pY2VUcmFuc3BvcnRQb2xpY3ksIGNv
bmZpZ3VyYXRpb24uYnVuZGxlUG9saWN5LCBjb25maWd1cmF0aW9uLnJ0Y3BNdXhQb2xpY3ksIGNv
bmZpZ3VyYXRpb24uaWNlQ2FuZGlkYXRlUG9vbFNpemUsIGNlcnRpZmljYXRlcy5yZWxlYXNlUmV0
dXJuVmFsdWUoKSB9KSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NF
cnJvciwgIkJhZCBDb25maWd1cmF0aW9uIFBhcmFtZXRlcnMiIH07CisgICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IsICJCYWQgQ29uZmlndXJhdGlvbiBQYXJhbWV0
ZXJzIl9zIH07CiAKICAgICBtX2NvbmZpZ3VyYXRpb24gPSBXVEZNb3ZlKGNvbmZpZ3VyYXRpb24p
OwogICAgIHJldHVybiB7IH07CkBAIC00ODUsMTkgKzQ4NSwxOSBAQCBFeGNlcHRpb25Pcjx2b2lk
PiBSVENQZWVyQ29ubmVjdGlvbjo6c2V0Q29uZmlndXJhdGlvbihSVENDb25maWd1cmF0aW9uJiYg
Y29uZmlndQogCiAgICAgaWYgKGNvbmZpZ3VyYXRpb24uY2VydGlmaWNhdGVzLnNpemUoKSkgewog
ICAgICAgICBpZiAoY29uZmlndXJhdGlvbi5jZXJ0aWZpY2F0ZXMuc2l6ZSgpICE9IG1fY29uZmln
dXJhdGlvbi5jZXJ0aWZpY2F0ZXMuc2l6ZSgpKQotICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlv
biB7IEludmFsaWRNb2RpZmljYXRpb25FcnJvciwgIkNlcnRpZmljYXRlcyBwYXJhbWV0ZXJzIGFy
ZSBkaWZmZXJlbnQiIH07CisgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZE1v
ZGlmaWNhdGlvbkVycm9yLCAiQ2VydGlmaWNhdGVzIHBhcmFtZXRlcnMgYXJlIGRpZmZlcmVudCJf
cyB9OwogCiAgICAgICAgIGZvciAoYXV0byYgY2VydGlmaWNhdGUgOiBjb25maWd1cmF0aW9uLmNl
cnRpZmljYXRlcykgewogICAgICAgICAgICAgYm9vbCBpc1RoZXJlID0gbV9jb25maWd1cmF0aW9u
LmNlcnRpZmljYXRlcy5maW5kSWYoWyZjZXJ0aWZpY2F0ZV0oY29uc3QgYXV0byYgaXRlbSkgewog
ICAgICAgICAgICAgICAgIHJldHVybiBpdGVtLmdldCgpID09IGNlcnRpZmljYXRlLmdldCgpOwog
ICAgICAgICAgICAgfSkgIT0gbm90Rm91bmQ7CiAgICAgICAgICAgICBpZiAoIWlzVGhlcmUpCi0g
ICAgICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRNb2RpZmljYXRpb25FcnJv
ciwgIkEgY2VydGlmaWNhdGUgZ2l2ZW4gaW4gY29uc3RydWN0b3IgaXMgbm90IHByZXNlbnQiIH07
CisgICAgICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRNb2RpZmljYXRpb25F
cnJvciwgIkEgY2VydGlmaWNhdGUgZ2l2ZW4gaW4gY29uc3RydWN0b3IgaXMgbm90IHByZXNlbnQi
X3MgfTsKICAgICAgICAgfQogICAgIH0KIAogICAgIGlmICghbV9iYWNrZW5kLT5zZXRDb25maWd1
cmF0aW9uKHsgc2VydmVycy5yZWxlYXNlUmV0dXJuVmFsdWUoKSwgY29uZmlndXJhdGlvbi5pY2VU
cmFuc3BvcnRQb2xpY3ksIGNvbmZpZ3VyYXRpb24uYnVuZGxlUG9saWN5LCBjb25maWd1cmF0aW9u
LnJ0Y3BNdXhQb2xpY3ksIGNvbmZpZ3VyYXRpb24uaWNlQ2FuZGlkYXRlUG9vbFNpemUsIHsgfSB9
KSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciwgIkJhZCBD
b25maWd1cmF0aW9uIFBhcmFtZXRlcnMiIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJ
bnZhbGlkQWNjZXNzRXJyb3IsICJCYWQgQ29uZmlndXJhdGlvbiBQYXJhbWV0ZXJzIl9zIH07CiAK
ICAgICBtX2NvbmZpZ3VyYXRpb24gPSBXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pOwogICAgIHJldHVy
biB7IH07CkBAIC05MTksNyArOTE5LDcgQEAgY29uc3QgVmVjdG9yPFJlZlB0cjxSVENSdHBUcmFu
c2NlaXZlcj4+JiBSVENQZWVyQ29ubmVjdGlvbjo6Z2V0VHJhbnNjZWl2ZXJzKCkgY28KIHZvaWQg
UlRDUGVlckNvbm5lY3Rpb246OmNoYWluT3BlcmF0aW9uKFJlZjxEZWZlcnJlZFByb21pc2U+JiYg
cHJvbWlzZSwgRnVuY3Rpb248dm9pZChSZWY8RGVmZXJyZWRQcm9taXNlPiYmKT4mJiBvcGVyYXRp
b24pCiB7CiAgICAgaWYgKGlzQ2xvc2VkKCkpIHsKLSAgICAgICAgcHJvbWlzZS0+cmVqZWN0KElu
dmFsaWRTdGF0ZUVycm9yLCAiUlRDUGVlckNvbm5lY3Rpb24gaXMgY2xvc2VkIik7CisgICAgICAg
IHByb21pc2UtPnJlamVjdChJbnZhbGlkU3RhdGVFcnJvciwgIlJUQ1BlZXJDb25uZWN0aW9uIGlz
IGNsb3NlZCJfcyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTkyNyw3ICs5MjcsNyBA
QCB2b2lkIFJUQ1BlZXJDb25uZWN0aW9uOjpjaGFpbk9wZXJhdGlvbihSZWY8RGVmZXJyZWRQcm9t
aXNlPiYmIHByb21pc2UsIEZ1bmN0aW9uPAogICAgICAgICBBU1NFUlQobV9oYXNQZW5kaW5nT3Bl
cmF0aW9uKTsKICAgICAgICAgaWYgKGlzQ2xvc2VkKCkpIHsKICAgICAgICAgICAgIGZvciAoYXV0
byYgb3BlcmF0aW9uIDogc3RkOjpleGNoYW5nZShtX29wZXJhdGlvbnMsIHsgfSkpCi0gICAgICAg
ICAgICAgICAgb3BlcmF0aW9uLmZpcnN0LT5yZWplY3QoSW52YWxpZFN0YXRlRXJyb3IsICJSVENQ
ZWVyQ29ubmVjdGlvbiBpcyBjbG9zZWQiKTsKKyAgICAgICAgICAgICAgICBvcGVyYXRpb24uZmly
c3QtPnJlamVjdChJbnZhbGlkU3RhdGVFcnJvciwgIlJUQ1BlZXJDb25uZWN0aW9uIGlzIGNsb3Nl
ZCJfcyk7CiAgICAgICAgICAgICBtX2hhc1BlbmRpbmdPcGVyYXRpb24gPSBmYWxzZTsKICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tZWRpYXN0cmVhbS9SVENSdHBTRnJhbWVUcmFuc2Zvcm1lci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyLmNwcAppbmRl
eCBjYjNmN2NkOWJmMjEyM2U5MWQyZGY3YTQ1MWQxYzZlODE4OWVkNDRkLi40ZjI5YWIxNWU2YjU2
NzcxNzMwYWY5NDQyY2UwYjQxNDI3MGUxNmM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1JUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyLmNw
cApAQCAtMzQ2LDcgKzM0Niw3IEBAIFJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyOjpUcmFuc2Zvcm1S
ZXN1bHQgUlRDUnRwU0ZyYW1lVHJhbnNmb3JtZXI6OmVuY3J5cHRGcmFtZShTCiBSVENSdHBTRnJh
bWVUcmFuc2Zvcm1lcjo6VHJhbnNmb3JtUmVzdWx0IFJUQ1J0cFNGcmFtZVRyYW5zZm9ybWVyOjp0
cmFuc2Zvcm0oU3Bhbjxjb25zdCB1aW50OF90PiBkYXRhKQogewogICAgIGlmICghbV9oYXNLZXkp
Ci0gICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChFcnJvckluZm9ybWF0aW9uIHsgRXJyb3I6
OktleUlELCAgIktleSBpcyBub3QgaW5pdGlhbGl6ZWQiLCAwIH0pOworICAgICAgICByZXR1cm4g
bWFrZVVuZXhwZWN0ZWQoRXJyb3JJbmZvcm1hdGlvbiB7IEVycm9yOjpLZXlJRCwgICJLZXkgaXMg
bm90IGluaXRpYWxpemVkIl9zLCAwIH0pOwogCiAgICAgcmV0dXJuIG1faXNFbmNyeXB0aW5nID8g
ZW5jcnlwdEZyYW1lKGRhdGEpIDogZGVjcnlwdEZyYW1lKGRhdGEpOwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUGVl
ckNvbm5lY3Rpb25CYWNrZW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vbGlid2VicnRjL0xpYldlYlJUQ1BlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAKaW5kZXggMTMz
MzFhY2MwNDQwY2QwMTc4OWM3MzE1ODBlYjU2OTA0MWMzODFjZC4uMzIzYzI4MTNjMzI0ZWZlZTY5
OGY0YzBlNGI5ZmZmY2M3OWQ0ZDZiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJX
ZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwCkBAIC0yNjAsNyArMjYwLDcgQEAgdm9pZCBM
aWJXZWJSVENQZWVyQ29ubmVjdGlvbkJhY2tlbmQ6OmRvQ3JlYXRlT2ZmZXIoUlRDT2ZmZXJPcHRp
b25zJiYgb3B0aW9ucykKIHZvaWQgTGliV2ViUlRDUGVlckNvbm5lY3Rpb25CYWNrZW5kOjpkb0Ny
ZWF0ZUFuc3dlcihSVENBbnN3ZXJPcHRpb25zJiYpCiB7CiAgICAgaWYgKCFtX2lzUmVtb3RlRGVz
Y3JpcHRpb25TZXQpIHsKLSAgICAgICAgY3JlYXRlQW5zd2VyRmFpbGVkKEV4Y2VwdGlvbiB7IElu
dmFsaWRTdGF0ZUVycm9yLCAiTm8gcmVtb3RlIGRlc2NyaXB0aW9uIHNldCIgfSk7CisgICAgICAg
IGNyZWF0ZUFuc3dlckZhaWxlZChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIk5vIHJl
bW90ZSBkZXNjcmlwdGlvbiBzZXQiX3MgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAg
bV9lbmRwb2ludC0+ZG9DcmVhdGVBbnN3ZXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vbGlid2VicnRjL0xpYldlYlJUQ1J0cFRyYW5zY2VpdmVyQmFj
a2VuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9M
aWJXZWJSVENSdHBUcmFuc2NlaXZlckJhY2tlbmQuY3BwCmluZGV4IGQxZjczYWQ3ZjQ3OGY2MDQ3
MjViMDYwOTlmZGU2OTBjNzNlZDViNDUuLjQxNzZlOGQ2Zjc4M2E1MjVhODBmN2E2MGVhZGM2N2Y2
YmZkNzAxNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
bGlid2VicnRjL0xpYldlYlJUQ1J0cFRyYW5zY2VpdmVyQmFja2VuZC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDUnRwVHJhbnNj
ZWl2ZXJCYWNrZW5kLmNwcApAQCAtODksNyArODksNyBAQCBzdGF0aWMgaW5saW5lIEV4Y2VwdGlv
bk9yPHdlYnJ0Yzo6UnRwQ29kZWNDYXBhYmlsaXR5PiB0b1J0cENvZGVjQ2FwYWJpbGl0eShjb25z
dAogICAgIGVsc2UgaWYgKGNvZGVjLm1pbWVUeXBlLnN0YXJ0c1dpdGgoImF1ZGlvLyIpKQogICAg
ICAgICBydGNDb2RlYy5raW5kID0gY3JpY2tldDo6TUVESUFfVFlQRV9BVURJTzsKICAgICBlbHNl
Ci0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3IsICJS
VENSdHBDb2RlY0NhcGFiaWxpdHkgYmFkIG1pbWVUeXBlIiB9OworICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yLCAiUlRDUnRwQ29kZWNDYXBhYmlsaXR5
IGJhZCBtaW1lVHlwZSJfcyB9OwogCiAgICAgcnRjQ29kZWMubmFtZSA9IGNvZGVjLm1pbWVUeXBl
LnN1YnN0cmluZyg2KS51dGY4KCkuZGF0YSgpOwogICAgIHJ0Y0NvZGVjLmNsb2NrX3JhdGUgPSBj
b2RlYy5jbG9ja1JhdGU7CkBAIC05OSw3ICs5OSw3IEBAIHN0YXRpYyBpbmxpbmUgRXhjZXB0aW9u
T3I8d2VicnRjOjpSdHBDb2RlY0NhcGFiaWxpdHk+IHRvUnRwQ29kZWNDYXBhYmlsaXR5KGNvbnN0
CiAgICAgZm9yIChhdXRvIHBhcmFtZXRlciA6IFN0cmluZ1ZpZXcoY29kZWMuc2RwRm10cExpbmUp
LnNwbGl0KCc7JykpIHsKICAgICAgICAgYXV0byBwb3NpdGlvbiA9IHBhcmFtZXRlci5maW5kKCc9
Jyk7CiAgICAgICAgIGlmIChwb3NpdGlvbiA9PSBub3RGb3VuZCkKLSAgICAgICAgICAgIHJldHVy
biBFeGNlcHRpb24geyBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3IsICJSVENSdHBDb2RlY0NhcGFi
aWxpdHkgc2RwRm10TGluZSBiYWRseSBmb3JtYXRlZCIgfTsKKyAgICAgICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3IsICJSVENSdHBDb2RlY0NhcGFiaWxp
dHkgc2RwRm10TGluZSBiYWRseSBmb3JtYXRlZCJfcyB9OwogICAgICAgICBydGNDb2RlYy5wYXJh
bWV0ZXJzLmVtcGxhY2UocGFyYW1ldGVyLnN1YnN0cmluZygwLCBwb3NpdGlvbikudXRmOCgpLmRh
dGEoKSwgcGFyYW1ldGVyLnN1YnN0cmluZyhwb3NpdGlvbiArIDEpLnV0ZjgoKS5kYXRhKCkpOwog
ICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9s
aWJ3ZWJydGMvTGliV2ViUlRDVXRpbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9saWJ3ZWJydGMvTGliV2ViUlRDVXRpbHMuY3BwCmluZGV4IDQ1ZTRkMTczNjNmZjFi
NjQwN2UzYzA5OWMwZmM3ZjQyODJmYTY4YjAuLjlmMTk2ZjM3OGJiNzc3NjczY2Y3MTIwY2FhNGZi
NDY0NTAxZjRhODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJl
YW0vbGlid2VicnRjL0xpYldlYlJUQ1V0aWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL2xpYndlYnJ0Yy9MaWJXZWJSVENVdGlscy5jcHAKQEAgLTM2MCw3ICsz
NjAsNyBAQCBFeGNlcHRpb24gdG9FeGNlcHRpb24oY29uc3Qgd2VicnRjOjpSVENFcnJvciYgZXJy
b3IpCiB7CiAgICAgQVNTRVJUKCFlcnJvci5vaygpKTsKIAotICAgIHJldHVybiBFeGNlcHRpb24g
eyB0b0V4Y2VwdGlvbkNvZGUoZXJyb3IudHlwZSgpKSwgZXJyb3IubWVzc2FnZSgpIH07CisgICAg
cmV0dXJuIEV4Y2VwdGlvbiB7IHRvRXhjZXB0aW9uQ29kZShlcnJvci50eXBlKCkpLCBTdHJpbmcg
eyBlcnJvci5tZXNzYWdlKCkgfSB9OwogfQogCiBzdGF0aWMgaW5saW5lIFJUQ0ljZUNvbXBvbmVu
dCB0b1JUQ0ljZUNvbXBvbmVudChpbnQgY29tcG9uZW50KQpAQCAtNDU1LDcgKzQ1NSw3IEBAIFJl
ZlB0cjxSVENFcnJvcj4gdG9SVENFcnJvcihjb25zdCB3ZWJydGM6OlJUQ0Vycm9yJiBydGNFcnJv
cikKICAgICBhdXRvIGRldGFpbCA9IHRvUlRDRXJyb3JEZXRhaWxUeXBlKHJ0Y0Vycm9yLmVycm9y
X2RldGFpbCgpKTsKICAgICBpZiAoIWRldGFpbCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0g
ICAgcmV0dXJuIFJUQ0Vycm9yOjpjcmVhdGUoKmRldGFpbCwgcnRjRXJyb3IubWVzc2FnZSgpKTsK
KyAgICByZXR1cm4gUlRDRXJyb3I6OmNyZWF0ZSgqZGV0YWlsLCBTdHJpbmcgeyBydGNFcnJvci5t
ZXNzYWdlKCkgfSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbW9kZWwtZWxlbWVudC9zY2VuZWtpdC9TY2VuZUtpdE1vZGVs
TG9hZGVyVVNELm1tIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L3NjZW5l
a2l0L1NjZW5lS2l0TW9kZWxMb2FkZXJVU0QubW0KaW5kZXggMDllYzhmNjAzZTlkMDIyYjM3OGRk
YTBlNDI3ZmVjNTIxZmRkNTJkMi4uY2FiNGI4ZGUyMDJlNzdkNzAyODJiNTk0YTFiZWZiZDc1YjA2
Y2IyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tb2RlbC1lbGVtZW50L3Nj
ZW5la2l0L1NjZW5lS2l0TW9kZWxMb2FkZXJVU0QubW0KKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9tb2RlbC1lbGVtZW50L3NjZW5la2l0L1NjZW5lS2l0TW9kZWxMb2FkZXJVU0QubW0KQEAg
LTEwMiw3ICsxMDIsNyBAQCBzdGF0aWMgUmV0YWluUHRyPE5TVVJMPiB3cml0ZVRvVGVtcG9yYXJ5
RmlsZShXZWJDb3JlOjpNb2RlbCYgbW9kZWxTb3VyY2UpCiAgICAgLy8gaW5pdGlhbGl6ZXIgYnV0
IGN1cnJlbnRseSB0aGF0IGRvZXMgbm90IHdvcmsuCiAKICAgICBGaWxlU3lzdGVtOjpQbGF0Zm9y
bUZpbGVIYW5kbGUgZmlsZUhhbmRsZTsKLSAgICBhdXRvIGZpbGVQYXRoID0gRmlsZVN5c3RlbTo6
b3BlblRlbXBvcmFyeUZpbGUoIk1vZGVsRmlsZSIsIGZpbGVIYW5kbGUsICIudXNkeiIpOworICAg
IGF1dG8gZmlsZVBhdGggPSBGaWxlU3lzdGVtOjpvcGVuVGVtcG9yYXJ5RmlsZSgiTW9kZWxGaWxl
Il9zLCBmaWxlSGFuZGxlLCAiLnVzZHoiX3MpOwogICAgIEFTU0VSVChGaWxlU3lzdGVtOjppc0hh
bmRsZVZhbGlkKGZpbGVIYW5kbGUpKTsKIAogICAgIHNpemVfdCBieXRlQ291bnQgPSBGaWxlU3lz
dGVtOjp3cml0ZVRvRmlsZShmaWxlSGFuZGxlLCBtb2RlbFNvdXJjZS5kYXRhKCktPm1ha2VDb250
aWd1b3VzKCktPmRhdGEoKSwgbW9kZWxTb3VyY2UuZGF0YSgpLT5zaXplKCkpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wYXltZW50cmVxdWVzdC9QYXltZW50UmVxdWVzdC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXF1ZXN0
LmNwcAppbmRleCBkZjJiNWMyNjRmM2E1Y2UyYzFlMWNiNmI3NjM0MGEwMGZhNDBjY2UwLi40MjIz
NWVlYTFiZmQxY2QxYjcwNzBiNjkwOTQ4NDJjZjZlOTM1NGI1IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXF1ZXN0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BheW1lbnRyZXF1ZXN0L1BheW1lbnRSZXF1ZXN0LmNwcApA
QCAtMjE2LDcgKzIxNiw3IEBAIHN0YXRpYyBFeGNlcHRpb25PcjxzdGQ6OnR1cGxlPFN0cmluZywg
VmVjdG9yPFN0cmluZz4+PiBjaGVja0FuZENhbm9uaWNhbGl6ZURldGFpCiAKICAgICAgICAgICAg
ICAgICBhdXRvIGFkZFJlc3VsdCA9IHNlZW5TaGlwcGluZ09wdGlvbklEcy5hZGQoc2hpcHBpbmdP
cHRpb24uaWQpOwogICAgICAgICAgICAgICAgIGlmICghYWRkUmVzdWx0LmlzTmV3RW50cnkpCi0g
ICAgICAgICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJTaGlwcGlu
ZyBvcHRpb24gSURzIG11c3QgYmUgdW5pcXVlLiIgfTsKKyAgICAgICAgICAgICAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJvciwgIlNoaXBwaW5nIG9wdGlvbiBJRHMgbXVzdCBiZSB1
bmlxdWUuIl9zIH07CiAKICNpZiBFTkFCTEUoUEFZTUVOVF9SRVFVRVNUX1NFTEVDVEVEX1NISVBQ
SU5HX09QVElPTikKICAgICAgICAgICAgICAgICBpZiAoc2hpcHBpbmdPcHRpb24uc2VsZWN0ZWQp
CkBAIC0zNzUsNyArMzc1LDcgQEAgdm9pZCBQYXltZW50UmVxdWVzdDo6c2hvdyhEb2N1bWVudCYg
ZG9jdW1lbnQsIFJlZlB0cjxET01Qcm9taXNlPiYmIGRldGFpbHNQcm9taXMKIAogICAgIGF1dG8q
IHdpbmRvdyA9IGRvY3VtZW50LmZyYW1lKCktPndpbmRvdygpOwogICAgIGlmICghd2luZG93IHx8
ICF3aW5kb3ctPmNvbnN1bWVUcmFuc2llbnRBY3RpdmF0aW9uKCkpIHsKLSAgICAgICAgcHJvbWlz
ZS5yZWplY3QoRXhjZXB0aW9uIHsgU2VjdXJpdHlFcnJvciwgInNob3coKSBtdXN0IGJlIHRyaWdn
ZXJlZCBieSB1c2VyIGFjdGl2YXRpb24uIiB9KTsKKyAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhj
ZXB0aW9uIHsgU2VjdXJpdHlFcnJvciwgInNob3coKSBtdXN0IGJlIHRyaWdnZXJlZCBieSB1c2Vy
IGFjdGl2YXRpb24uIl9zIH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3BpY3R1cmVpbnBpY3R1cmUvSFRNTFZpZGVvRWxlbWVu
dFBpY3R1cmVJblBpY3R1cmUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9waWN0dXJlaW5w
aWN0dXJlL0hUTUxWaWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJlLmNwcAppbmRleCBmMmYwMjMx
MDI3NDViOWZkMjNlOGU5NDJkNjA5YTdlOWJlMDYxMGQ4Li5iYmUyY2JjOGI5Y2JhZTRmMmZiMGVi
ZGU5NGQ1OTVhZjlkOGZjYmJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3Bp
Y3R1cmVpbnBpY3R1cmUvSFRNTFZpZGVvRWxlbWVudFBpY3R1cmVJblBpY3R1cmUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGljdHVyZWlucGljdHVyZS9IVE1MVmlkZW9FbGVtZW50
UGljdHVyZUluUGljdHVyZS5jcHAKQEAgLTgxLDIzICs4MSwyMyBAQCB2b2lkIEhUTUxWaWRlb0Vs
ZW1lbnRQaWN0dXJlSW5QaWN0dXJlOjpwcm92aWRlUGljdHVyZUluUGljdHVyZVRvKEhUTUxWaWRl
b0VsZW1lbgogdm9pZCBIVE1MVmlkZW9FbGVtZW50UGljdHVyZUluUGljdHVyZTo6cmVxdWVzdFBp
Y3R1cmVJblBpY3R1cmUoSFRNTFZpZGVvRWxlbWVudCYgdmlkZW9FbGVtZW50LCBSZWY8RGVmZXJy
ZWRQcm9taXNlPiYmIHByb21pc2UpCiB7CiAgICAgaWYgKCFzdXBwb3J0c1BpY3R1cmVJblBpY3R1
cmUoKSkgewotICAgICAgICBwcm9taXNlLT5yZWplY3QoTm90U3VwcG9ydGVkRXJyb3IsICJUaGUg
UGljdHVyZS1pbi1QaWN0dXJlIG1vZGUgaXMgbm90IHN1cHBvcnRlZC4iKTsKKyAgICAgICAgcHJv
bWlzZS0+cmVqZWN0KE5vdFN1cHBvcnRlZEVycm9yLCAiVGhlIFBpY3R1cmUtaW4tUGljdHVyZSBt
b2RlIGlzIG5vdCBzdXBwb3J0ZWQuIl9zKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAg
IGlmICh2aWRlb0VsZW1lbnQucmVhZHlTdGF0ZSgpID09IEhUTUxNZWRpYUVsZW1lbnRFbnVtczo6
SEFWRV9OT1RISU5HKSB7Ci0gICAgICAgIHByb21pc2UtPnJlamVjdChJbnZhbGlkU3RhdGVFcnJv
ciwgIlRoZSB2aWRlbyBlbGVtZW50IGlzIG5vdCByZWFkeSB0byBlbnRlciB0aGUgUGljdHVyZS1p
bi1QaWN0dXJlIG1vZGUuIik7CisgICAgICAgIHByb21pc2UtPnJlamVjdChJbnZhbGlkU3RhdGVF
cnJvciwgIlRoZSB2aWRlbyBlbGVtZW50IGlzIG5vdCByZWFkeSB0byBlbnRlciB0aGUgUGljdHVy
ZS1pbi1QaWN0dXJlIG1vZGUuIl9zKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGlm
ICghdmlkZW9FbGVtZW50LnZpZGVvVHJhY2tzKCkgfHwgIXZpZGVvRWxlbWVudC52aWRlb1RyYWNr
cygpLT5sZW5ndGgoKSkgewotICAgICAgICBwcm9taXNlLT5yZWplY3QoSW52YWxpZFN0YXRlRXJy
b3IsICJUaGUgdmlkZW8gZWxlbWVudCBkb2VzIG5vdCBoYXZlIGEgdmlkZW8gdHJhY2sgb3IgaXQg
aGFzIG5vdCBkZXRlY3RlZCBhIHZpZGVvIHRyYWNrIHlldC4iKTsKKyAgICAgICAgcHJvbWlzZS0+
cmVqZWN0KEludmFsaWRTdGF0ZUVycm9yLCAiVGhlIHZpZGVvIGVsZW1lbnQgZG9lcyBub3QgaGF2
ZSBhIHZpZGVvIHRyYWNrIG9yIGl0IGhhcyBub3QgZGV0ZWN0ZWQgYSB2aWRlbyB0cmFjayB5ZXQu
Il9zKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAogICAgIGJvb2wgdXNlckFjdGl2YXRpb25S
ZXF1aXJlZCA9ICF2aWRlb0VsZW1lbnQuZG9jdW1lbnQoKS5waWN0dXJlSW5QaWN0dXJlRWxlbWVu
dCgpOwogICAgIGlmICh1c2VyQWN0aXZhdGlvblJlcXVpcmVkICYmICFVc2VyR2VzdHVyZUluZGlj
YXRvcjo6cHJvY2Vzc2luZ1VzZXJHZXN0dXJlKCkpIHsKLSAgICAgICAgcHJvbWlzZS0+cmVqZWN0
KE5vdEFsbG93ZWRFcnJvciwgIlRoZSByZXF1ZXN0IGlzIG5vdCB0cmlnZ2VyZWQgYnkgYSB1c2Vy
IGFjdGl2YXRpb24uIik7CisgICAgICAgIHByb21pc2UtPnJlamVjdChOb3RBbGxvd2VkRXJyb3Is
ICJUaGUgcmVxdWVzdCBpcyBub3QgdHJpZ2dlcmVkIGJ5IGEgdXNlciBhY3RpdmF0aW9uLiJfcyk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTEwOCw3ICsxMDgsNyBAQCB2b2lkIEhUTUxW
aWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0dXJlOjpyZXF1ZXN0UGljdHVyZUluUGljdHVyZShIVE1M
VmlkZW9FbGVtZW50JgogICAgIH0KIAogICAgIGlmICh2aWRlb0VsZW1lbnRQaWN0dXJlSW5QaWN0
dXJlLT5tX2VudGVyUGljdHVyZUluUGljdHVyZVByb21pc2UgfHwgdmlkZW9FbGVtZW50UGljdHVy
ZUluUGljdHVyZS0+bV9leGl0UGljdHVyZUluUGljdHVyZVByb21pc2UpIHsKLSAgICAgICAgcHJv
bWlzZS0+cmVqZWN0KE5vdEFsbG93ZWRFcnJvciwgIlRoZSB2aWRlbyBlbGVtZW50IGlzIHByb2Nl
c3NpbmcgYSBQaWN0dXJlLWluLVBpY3R1cmUgcmVxdWVzdC4iKTsKKyAgICAgICAgcHJvbWlzZS0+
cmVqZWN0KE5vdEFsbG93ZWRFcnJvciwgIlRoZSB2aWRlbyBlbGVtZW50IGlzIHByb2Nlc3Npbmcg
YSBQaWN0dXJlLWluLVBpY3R1cmUgcmVxdWVzdC4iX3MpOwogICAgICAgICByZXR1cm47CiAgICAg
fQogCkBAIC0xMTYsNyArMTE2LDcgQEAgdm9pZCBIVE1MVmlkZW9FbGVtZW50UGljdHVyZUluUGlj
dHVyZTo6cmVxdWVzdFBpY3R1cmVJblBpY3R1cmUoSFRNTFZpZGVvRWxlbWVudCYKICAgICAgICAg
dmlkZW9FbGVtZW50UGljdHVyZUluUGljdHVyZS0+bV9lbnRlclBpY3R1cmVJblBpY3R1cmVQcm9t
aXNlID0gV1RGTW92ZShwcm9taXNlKTsKICAgICAgICAgdmlkZW9FbGVtZW50LndlYmtpdFNldFBy
ZXNlbnRhdGlvbk1vZGUoSFRNTFZpZGVvRWxlbWVudDo6VmlkZW9QcmVzZW50YXRpb25Nb2RlOjpQ
aWN0dXJlSW5QaWN0dXJlKTsKICAgICB9IGVsc2UKLSAgICAgICAgcHJvbWlzZS0+cmVqZWN0KE5v
dFN1cHBvcnRlZEVycm9yLCAiVGhlIHZpZGVvIGVsZW1lbnQgZG9lcyBub3Qgc3VwcG9ydCB0aGUg
UGljdHVyZS1pbi1QaWN0dXJlIG1vZGUuIik7CisgICAgICAgIHByb21pc2UtPnJlamVjdChOb3RT
dXBwb3J0ZWRFcnJvciwgIlRoZSB2aWRlbyBlbGVtZW50IGRvZXMgbm90IHN1cHBvcnQgdGhlIFBp
Y3R1cmUtaW4tUGljdHVyZSBtb2RlLiJfcyk7CiB9CiAKIGJvb2wgSFRNTFZpZGVvRWxlbWVudFBp
Y3R1cmVJblBpY3R1cmU6OmF1dG9QaWN0dXJlSW5QaWN0dXJlKEhUTUxWaWRlb0VsZW1lbnQmIHZp
ZGVvRWxlbWVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvcGx1Z2lucy9Z
b3VUdWJlUGx1Z2luUmVwbGFjZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVn
aW5zL1lvdVR1YmVQbHVnaW5SZXBsYWNlbWVudC5jcHAKaW5kZXggOTc5ZjIyNDU5MDcyMGY4Mjkz
MzVkNjBhM2E4ZDhhZTVjM2I3MjI0My4uZGQxNmY4OTNmMmQ2OTUyY2M1ZjAwMzA4ZjlkMGQ5OWFi
OGIwZThhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVnaW5zL1lvdVR1
YmVQbHVnaW5SZXBsYWNlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9wbHVn
aW5zL1lvdVR1YmVQbHVnaW5SZXBsYWNlbWVudC5jcHAKQEAgLTg0LDE2ICs4NCwxNiBAQCBhdXRv
IFlvdVR1YmVQbHVnaW5SZXBsYWNlbWVudDo6aW5zdGFsbFJlcGxhY2VtZW50KFNoYWRvd1Jvb3Qm
IHJvb3QpIC0+IEluc3RhbGxSZQogICAgIHJvb3QuYXBwZW5kQ2hpbGQoKm1fZW1iZWRTaGFkb3dF
bGVtZW50KTsKIAogICAgIGF1dG8gaWZyYW1lRWxlbWVudCA9IEhUTUxJRnJhbWVFbGVtZW50Ojpj
cmVhdGUoSFRNTE5hbWVzOjppZnJhbWVUYWcsIG1fcGFyZW50RWxlbWVudC0+ZG9jdW1lbnQoKSk7
Ci0gICAgaWYgKG1fYXR0cmlidXRlcy5jb250YWlucygid2lkdGgiKSkKKyAgICBpZiAobV9hdHRy
aWJ1dGVzLmNvbnRhaW5zKCJ3aWR0aCJfcykpCiAgICAgICAgIGlmcmFtZUVsZW1lbnQtPnNldEF0
dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oSFRNTE5hbWVzOjp3aWR0aEF0dHIsIEF0b21T
dHJpbmcoIjEwMCUiLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogCi0gICAg
Y29uc3QgYXV0byYgaGVpZ2h0VmFsdWUgPSBtX2F0dHJpYnV0ZXMuZmluZCgiaGVpZ2h0Iik7Cisg
ICAgY29uc3QgYXV0byYgaGVpZ2h0VmFsdWUgPSBtX2F0dHJpYnV0ZXMuZmluZCgiaGVpZ2h0Il9z
KTsKICAgICBpZiAoaGVpZ2h0VmFsdWUgIT0gbV9hdHRyaWJ1dGVzLmVuZCgpKSB7CiAgICAgICAg
IGlmcmFtZUVsZW1lbnQtPnNldEF0dHJpYnV0ZShIVE1MTmFtZXM6OnN0eWxlQXR0ciwgQXRvbVN0
cmluZygibWF4LWhlaWdodDogMTAwJSIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFs
KSk7CiAgICAgICAgIGlmcmFtZUVsZW1lbnQtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6
YXRpb24oSFRNTE5hbWVzOjpoZWlnaHRBdHRyLCBoZWlnaHRWYWx1ZS0+dmFsdWUpOwogICAgIH0K
IAotICAgIGlmcmFtZUVsZW1lbnQtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24o
SFRNTE5hbWVzOjpzcmNBdHRyLCB5b3VUdWJlVVJMKG1fYXR0cmlidXRlcy5nZXQoInNyYyIpKSk7
CisgICAgaWZyYW1lRWxlbWVudC0+c2V0QXR0cmlidXRlV2l0aG91dFN5bmNocm9uaXphdGlvbihI
VE1MTmFtZXM6OnNyY0F0dHIsIHlvdVR1YmVVUkwobV9hdHRyaWJ1dGVzLmdldCgic3JjIl9zKSkp
OwogICAgIGlmcmFtZUVsZW1lbnQtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24o
SFRNTE5hbWVzOjpmcmFtZWJvcmRlckF0dHIsIEF0b21TdHJpbmcoIjAiLCBBdG9tU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCkpOwogICAgIAogICAgIC8vIERpc2FibGUgZnJhbWUgZmxhdHRl
bmluZyBmb3IgdGhpcyBpZnJhbWUuCkBAIC0yMzEsMTEgKzIzMSwxMSBAQCBzdGF0aWMgVVJMIHBy
b2Nlc3NBbmRDcmVhdGVZb3VUdWJlVVJMKGNvbnN0IFVSTCYgdXJsLCBib29sJiBpc1lvdVR1YmVT
aG9ydGVuZWRVUgogICAgIGlmIChlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShwYXRoLCAi
L3dhdGNoIikpIHsKICAgICAgICAgaWYgKCFxdWVyeS5pc0VtcHR5KCkpIHsKICAgICAgICAgICAg
IGNvbnN0IGF1dG8mIHF1ZXJ5RGljdGlvbmFyeSA9IHF1ZXJ5S2V5c0FuZFZhbHVlcyhxdWVyeSk7
Ci0gICAgICAgICAgICBTdHJpbmcgdmlkZW9JRCA9IHZhbHVlRm9yS2V5KHF1ZXJ5RGljdGlvbmFy
eSwgInYiKTsKKyAgICAgICAgICAgIFN0cmluZyB2aWRlb0lEID0gdmFsdWVGb3JLZXkocXVlcnlE
aWN0aW9uYXJ5LCAidiJfcyk7CiAgICAgICAgICAgICAKICAgICAgICAgICAgIGlmICghdmlkZW9J
RC5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgICAgICBjb25zdCBhdXRvJiBmcmFnbWVudERpY3Rp
b25hcnkgPSBxdWVyeUtleXNBbmRWYWx1ZXModXJsLmZyYWdtZW50SWRlbnRpZmllcigpKTsKLSAg
ICAgICAgICAgICAgICBTdHJpbmcgdGltZUlEID0gdmFsdWVGb3JLZXkoZnJhZ21lbnREaWN0aW9u
YXJ5LCAidCIpOworICAgICAgICAgICAgICAgIFN0cmluZyB0aW1lSUQgPSB2YWx1ZUZvcktleShm
cmFnbWVudERpY3Rpb25hcnksICJ0Il9zKTsKICAgICAgICAgICAgICAgICByZXR1cm4gY3JlYXRl
WW91VHViZVVSTCh2aWRlb0lELCB0aW1lSUQpOwogICAgICAgICAgICAgfQogICAgICAgICB9CkBA
IC0yNDYsMTAgKzI0NiwxMCBAQCBzdGF0aWMgVVJMIHByb2Nlc3NBbmRDcmVhdGVZb3VUdWJlVVJM
KGNvbnN0IFVSTCYgdXJsLCBib29sJiBpc1lvdVR1YmVTaG9ydGVuZWRVUgogICAgICAgICAgICAg
CiAgICAgICAgICAgICBpZiAoIXF1ZXJ5LmlzRW1wdHkoKSkgewogICAgICAgICAgICAgICAgIGNv
bnN0IGF1dG8mIHF1ZXJ5RGljdGlvbmFyeSA9IHF1ZXJ5S2V5c0FuZFZhbHVlcyhxdWVyeSk7Ci0g
ICAgICAgICAgICAgICAgU3RyaW5nIHZpZGVvSUQgPSB2YWx1ZUZvcktleShxdWVyeURpY3Rpb25h
cnksICJ2Iik7CisgICAgICAgICAgICAgICAgU3RyaW5nIHZpZGVvSUQgPSB2YWx1ZUZvcktleShx
dWVyeURpY3Rpb25hcnksICJ2Il9zKTsKICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg
ICBpZiAoIXZpZGVvSUQuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICAgICAgICAgIFN0cmluZyB0
aW1lSUQgPSB2YWx1ZUZvcktleShxdWVyeURpY3Rpb25hcnksICJ0Iik7CisgICAgICAgICAgICAg
ICAgICAgIFN0cmluZyB0aW1lSUQgPSB2YWx1ZUZvcktleShxdWVyeURpY3Rpb25hcnksICJ0Il9z
KTsKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNyZWF0ZVlvdVR1YmVVUkwodmlkZW9JRCwg
dGltZUlEKTsKICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9TcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3Vy
Y2VJbXBsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uQ2FwdHVyZVNvdXJjZUltcGwuY3BwCmluZGV4IGMyM2E4ZDY3Y2I0ODEyMzNmN2NiNGI1MTli
MTM2YjIyMTkwNmJlYmUuLjYwNzUzZmVjZTM1YTI5Zjg4ZTkyNjIwYTIwYjgwOWFmZTk2Y2M3MjEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL1NwZWVjaFJlY29nbml0
aW9uQ2FwdHVyZVNvdXJjZUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Bl
ZWNoL1NwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGwuY3BwCkBAIC05Miw3ICs5Miw3
IEBAIGJvb2wgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1wbDo6dXBkYXRlRGF0YVNv
dXJjZShjb25zdCBDQUF1ZGlvU3RyZWFtRGVzCiAgICAgaWYgKGRhdGFTb3VyY2UtPnNldElucHV0
Rm9ybWF0KGF1ZGlvRGVzY3JpcHRpb24pKSB7CiAgICAgICAgIGNhbGxPbk1haW5UaHJlYWQoW3Ro
aXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH1dIHsKICAgICAgICAgICAgIGlmICh3ZWFr
VGhpcykKLSAgICAgICAgICAgICAgICBtX3N0YXRlVXBkYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2du
aXRpb25VcGRhdGU6OmNyZWF0ZUVycm9yKG1fY2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2du
aXRpb25FcnJvciB7IFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpBdWRpb0NhcHR1cmUsICJV
bmFibGUgdG8gc2V0IGlucHV0IGZvcm1hdCIgfSkpOworICAgICAgICAgICAgICAgIG1fc3RhdGVV
cGRhdGVDYWxsYmFjayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IobV9jbGll
bnRJZGVudGlmaWVyLCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25F
cnJvclR5cGU6OkF1ZGlvQ2FwdHVyZSwgIlVuYWJsZSB0byBzZXQgaW5wdXQgZm9ybWF0Il9zIH0p
KTsKICAgICAgICAgfSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CkBAIC0xMDAsNyAr
MTAwLDcgQEAgYm9vbCBTcGVlY2hSZWNvZ25pdGlvbkNhcHR1cmVTb3VyY2VJbXBsOjp1cGRhdGVE
YXRhU291cmNlKGNvbnN0IENBQXVkaW9TdHJlYW1EZXMKICAgICBpZiAoZGF0YVNvdXJjZS0+c2V0
T3V0cHV0Rm9ybWF0KGF1ZGlvRGVzY3JpcHRpb24pKSB7CiAgICAgICAgIGNhbGxPbk1haW5UaHJl
YWQoW3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH1dIHsKICAgICAgICAgICAgIGlm
ICh3ZWFrVGhpcykKLSAgICAgICAgICAgICAgICBtX3N0YXRlVXBkYXRlQ2FsbGJhY2soU3BlZWNo
UmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZUVycm9yKG1fY2xpZW50SWRlbnRpZmllciwgU3BlZWNo
UmVjb2duaXRpb25FcnJvciB7IFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpBdWRpb0NhcHR1
cmUsICJVbmFibGUgdG8gc2V0IG91dHB1dCBmb3JtYXQiIH0pKTsKKyAgICAgICAgICAgICAgICBt
X3N0YXRlVXBkYXRlQ2FsbGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZUVycm9y
KG1fY2xpZW50SWRlbnRpZmllciwgU3BlZWNoUmVjb2duaXRpb25FcnJvciB7IFNwZWVjaFJlY29n
bml0aW9uRXJyb3JUeXBlOjpBdWRpb0NhcHR1cmUsICJVbmFibGUgdG8gc2V0IG91dHB1dCBmb3Jt
YXQiX3MgfSkpOwogICAgICAgICB9KTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KQEAg
LTE1NywxMyArMTU3LDEzIEBAIHZvaWQgU3BlZWNoUmVjb2duaXRpb25DYXB0dXJlU291cmNlSW1w
bDo6c291cmNlU3RvcHBlZCgpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBB
U1NFUlQobV9zb3VyY2UtPmNhcHR1cmVEaWRGYWlsKCkpOwotICAgIG1fc3RhdGVVcGRhdGVDYWxs
YmFjayhTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlRXJyb3IobV9jbGllbnRJZGVudGlm
aWVyLCBTcGVlY2hSZWNvZ25pdGlvbkVycm9yIHsgU3BlZWNoUmVjb2duaXRpb25FcnJvclR5cGU6
OkF1ZGlvQ2FwdHVyZSwgIlNvdXJjZSBpcyBzdG9wcGVkIiB9KSk7CisgICAgbV9zdGF0ZVVwZGF0
ZUNhbGxiYWNrKFNwZWVjaFJlY29nbml0aW9uVXBkYXRlOjpjcmVhdGVFcnJvcihtX2NsaWVudElk
ZW50aWZpZXIsIFNwZWVjaFJlY29nbml0aW9uRXJyb3IgeyBTcGVlY2hSZWNvZ25pdGlvbkVycm9y
VHlwZTo6QXVkaW9DYXB0dXJlLCAiU291cmNlIGlzIHN0b3BwZWQiX3MgfSkpOwogfQogCiB2b2lk
IFNwZWVjaFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6OnNvdXJjZU11dGVkQ2hhbmdlZCgp
CiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKLSAgICBtX3N0YXRlVXBkYXRlQ2FsbGJh
Y2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZUVycm9yKG1fY2xpZW50SWRlbnRpZmll
ciwgU3BlZWNoUmVjb2duaXRpb25FcnJvciB7IFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBlOjpB
dWRpb0NhcHR1cmUsICJTb3VyY2UgaXMgbXV0ZWQiIH0pKTsKKyAgICBtX3N0YXRlVXBkYXRlQ2Fs
bGJhY2soU3BlZWNoUmVjb2duaXRpb25VcGRhdGU6OmNyZWF0ZUVycm9yKG1fY2xpZW50SWRlbnRp
ZmllciwgU3BlZWNoUmVjb2duaXRpb25FcnJvciB7IFNwZWVjaFJlY29nbml0aW9uRXJyb3JUeXBl
OjpBdWRpb0NhcHR1cmUsICJTb3VyY2UgaXMgbXV0ZWQiX3MgfSkpOwogfQogCiB2b2lkIFNwZWVj
aFJlY29nbml0aW9uQ2FwdHVyZVNvdXJjZUltcGw6Om11dGUoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvY29jb2EvV2ViU3BlZWNoUmVjb2duaXplclRhc2tNb2Nr
Lm1tIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zcGVlY2gvY29jb2EvV2ViU3BlZWNoUmVjb2du
aXplclRhc2tNb2NrLm1tCmluZGV4IDJkMzQ4ZWQyMGMyMWI1MTAzNDg4NzlkNWMyNjNmYzBlM2Nm
ZWQ4NmIuLmJlZjNhNTIyNTE3ZjRjMmUzMmY1ODMyM2RhOTg0MzBiYjBkMTk1YjYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3BlZWNoL2NvY29hL1dlYlNwZWVjaFJlY29nbml6
ZXJUYXNrTW9jay5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3NwZWVjaC9jb2NvYS9X
ZWJTcGVlY2hSZWNvZ25pemVyVGFza01vY2subW0KQEAgLTYxLDcgKzYxLDcgQEAgLSAodm9pZClh
dWRpb1NhbXBsZXNBdmFpbGFibGU6KENNU2FtcGxlQnVmZmVyUmVmKXNhbXBsZUJ1ZmZlcgogICAg
IH0KIAogICAgIC8vIEZha2Ugc29tZSByZWNvZ25pdGlvbiByZXN1bHRzLgotICAgIFdlYkNvcmU6
OlNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmVEYXRhIGFsdGVybmF0aXZlIHsgIlRlc3QiLCAx
LjAgfTsKKyAgICBXZWJDb3JlOjpTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlRGF0YSBhbHRl
cm5hdGl2ZSB7ICJUZXN0Il9zLCAxLjAgfTsKICAgICBfZGVsZWdhdGVDYWxsYmFjayhXZWJDb3Jl
OjpTcGVlY2hSZWNvZ25pdGlvblVwZGF0ZTo6Y3JlYXRlUmVzdWx0KF9pZGVudGlmaWVyLCB7IFdl
YkNvcmU6OlNwZWVjaFJlY29nbml0aW9uUmVzdWx0RGF0YSB7IHsgV1RGTW92ZShhbHRlcm5hdGl2
ZSkgfSwgdHJ1ZSB9IH0pKTsKIAogICAgIGlmICghX2RvTXVsdGlwbGVSZWNvZ25pdGlvbnMpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0b3JhZ2UvU3RvcmFnZU1hbmFnZXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmNwcApp
bmRleCAxODhkMzBiNjE5OGIxNjFlMWI0N2FlOTc2OGUwYzFlOTU3NjY1M2FiLi42MzZiNDhjOWYw
NDc5YmM1YWUzMTk0ZWExZTg5MDU2OTY1NzE3YTQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3N0b3JhZ2UvU3RvcmFnZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvc3RvcmFnZS9TdG9yYWdlTWFuYWdlci5jcHAKQEAgLTcyLDcgKzcyLDcgQEAgc3Rh
dGljIEV4Y2VwdGlvbk9yPENvbm5lY3Rpb25JbmZvPiBjb25uZWN0aW9uSW5mbyhOYXZpZ2F0b3JC
YXNlKiBuYXZpZ2F0b3IpCiAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVF
cnJvciwgIk9yaWdpbiBpcyBpbnZhbGlkIl9zIH07CiAKICAgICBpZiAoIW9yaWdpbi0+Y2FuQWNj
ZXNzU3RvcmFnZU1hbmFnZXIoKSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFR5cGVFcnJv
ciwgIk9yaWdpbiBzaG91bGQgbm90IGFjY2VzcyBzdG9yYWdlIiB9OworICAgICAgICByZXR1cm4g
RXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiT3JpZ2luIHNob3VsZCBub3QgYWNjZXNzIHN0b3JhZ2Ui
X3MgfTsKIAogICAgIGlmIChpczxEb2N1bWVudD4oY29udGV4dCkpIHsKICAgICAgICAgaWYgKGF1
dG8qIGNvbm5lY3Rpb24gPSBkb3duY2FzdDxEb2N1bWVudD4oY29udGV4dCktPnN0b3JhZ2VDb25u
ZWN0aW9uKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9X
ZWJMb2NrTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYi1sb2Nrcy9XZWJM
b2NrTWFuYWdlci5jcHAKaW5kZXggMjE5OTkyZjZiNWIxNGM1YjYwMjc1NDU2YWRkYjA4NTc3ODZl
MTI1Zi4uYTE2MWIzZDJjMDVjM2Y0OWM5YjBhOGY5ZTY5NjZkNDViYWFkZWZlZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWItbG9ja3MvV2ViTG9ja01hbmFnZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViLWxvY2tzL1dlYkxvY2tNYW5hZ2VyLmNwcApA
QCAtMzM4LDcgKzMzOCw3IEBAIHZvaWQgV2ViTG9ja01hbmFnZXI6OnNpZ25hbFRvQWJvcnRUaGVS
ZXF1ZXN0KFdlYkxvY2tJZGVudGlmaWVyIGxvY2tJZGVudGlmaWVyKQogICAgICAgICBpZiAod2Fz
QWJvcnRlZCAmJiB3ZWFrVGhpcykKICAgICAgICAgICAgIHdlYWtUaGlzLT5tX3BlbmRpbmdSZXF1
ZXN0cy5yZW1vdmUobG9ja0lkZW50aWZpZXIpOwogICAgIH0pOwotICAgIHNldHRsZVJlbGVhc2VQ
cm9taXNlKGxvY2tJZGVudGlmaWVyLCBFeGNlcHRpb24geyBBYm9ydEVycm9yLCAiTG9jayByZXF1
ZXN0IHdhcyBhYm9ydGVkIHZpYSBBYm9ydFNpZ25hbCIgfSk7CisgICAgc2V0dGxlUmVsZWFzZVBy
b21pc2UobG9ja0lkZW50aWZpZXIsIEV4Y2VwdGlvbiB7IEFib3J0RXJyb3IsICJMb2NrIHJlcXVl
c3Qgd2FzIGFib3J0ZWQgdmlhIEFib3J0U2lnbmFsIl9zIH0pOwogfQogCiB2b2lkIFdlYkxvY2tN
YW5hZ2VyOjpzZXR0bGVSZWxlYXNlUHJvbWlzZShXZWJMb2NrSWRlbnRpZmllciBsb2NrSWRlbnRp
ZmllciwgRXhjZXB0aW9uT3I8SlNDOjpKU1ZhbHVlPiYmIHJlc3VsdCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVkaW9MaXN0ZW5lci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvTGlzdGVuZXIuY3BwCmluZGV4IDAyMGU3NmY0
MzY0ZTZkZWY4ZjgxNzI0ZGI3YzJmZDhhZTU3MDIxNzkuLjc2Yzc2ZDc1NDRlNzBjOWFjZDNiZGRm
OTZmMzRjOGFjNmJhOWZkZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vQXVkaW9MaXN0ZW5lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb0xpc3RlbmVyLmNwcApAQCAtNDAsMTUgKzQwLDE1IEBACiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIEF1ZGlvTGlzdGVuZXI6OkF1ZGlvTGlzdGVuZXIoQmFzZUF1ZGlvQ29udGV4dCYg
Y29udGV4dCkKLSAgICA6IG1fcG9zaXRpb25YKEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0LCAi
cG9zaXRpb25YIiwgMC4wLCAtRkxUX01BWCwgRkxUX01BWCwgQXV0b21hdGlvblJhdGU6OkFSYXRl
KSkKLSAgICAsIG1fcG9zaXRpb25ZKEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0LCAicG9zaXRp
b25ZIiwgMC4wLCAtRkxUX01BWCwgRkxUX01BWCwgQXV0b21hdGlvblJhdGU6OkFSYXRlKSkKLSAg
ICAsIG1fcG9zaXRpb25aKEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0LCAicG9zaXRpb25aIiwg
MC4wLCAtRkxUX01BWCwgRkxUX01BWCwgQXV0b21hdGlvblJhdGU6OkFSYXRlKSkKLSAgICAsIG1f
Zm9yd2FyZFgoQXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJmb3J3YXJkWCIsIDAuMCwgLUZM
VF9NQVgsIEZMVF9NQVgsIEF1dG9tYXRpb25SYXRlOjpBUmF0ZSkpCi0gICAgLCBtX2ZvcndhcmRZ
KEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0LCAiZm9yd2FyZFkiLCAwLjAsIC1GTFRfTUFYLCBG
TFRfTUFYLCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQotICAgICwgbV9mb3J3YXJkWihBdWRpb1Bh
cmFtOjpjcmVhdGUoY29udGV4dCwgImZvcndhcmRaIiwgLTEuMCwgLUZMVF9NQVgsIEZMVF9NQVgs
IEF1dG9tYXRpb25SYXRlOjpBUmF0ZSkpCi0gICAgLCBtX3VwWChBdWRpb1BhcmFtOjpjcmVhdGUo
Y29udGV4dCwgInVwWCIsIDAuMCwgLUZMVF9NQVgsIEZMVF9NQVgsIEF1dG9tYXRpb25SYXRlOjpB
UmF0ZSkpCi0gICAgLCBtX3VwWShBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCwgInVwWSIsIDEu
MCwgLUZMVF9NQVgsIEZMVF9NQVgsIEF1dG9tYXRpb25SYXRlOjpBUmF0ZSkpCi0gICAgLCBtX3Vw
WihBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCwgInVwWiIsIDAuMCwgLUZMVF9NQVgsIEZMVF9N
QVgsIEF1dG9tYXRpb25SYXRlOjpBUmF0ZSkpCisgICAgOiBtX3Bvc2l0aW9uWChBdWRpb1BhcmFt
OjpjcmVhdGUoY29udGV4dCwgInBvc2l0aW9uWCJfcywgMC4wLCAtRkxUX01BWCwgRkxUX01BWCwg
QXV0b21hdGlvblJhdGU6OkFSYXRlKSkKKyAgICAsIG1fcG9zaXRpb25ZKEF1ZGlvUGFyYW06OmNy
ZWF0ZShjb250ZXh0LCAicG9zaXRpb25ZIl9zLCAwLjAsIC1GTFRfTUFYLCBGTFRfTUFYLCBBdXRv
bWF0aW9uUmF0ZTo6QVJhdGUpKQorICAgICwgbV9wb3NpdGlvblooQXVkaW9QYXJhbTo6Y3JlYXRl
KGNvbnRleHQsICJwb3NpdGlvbloiX3MsIDAuMCwgLUZMVF9NQVgsIEZMVF9NQVgsIEF1dG9tYXRp
b25SYXRlOjpBUmF0ZSkpCisgICAgLCBtX2ZvcndhcmRYKEF1ZGlvUGFyYW06OmNyZWF0ZShjb250
ZXh0LCAiZm9yd2FyZFgiX3MsIDAuMCwgLUZMVF9NQVgsIEZMVF9NQVgsIEF1dG9tYXRpb25SYXRl
OjpBUmF0ZSkpCisgICAgLCBtX2ZvcndhcmRZKEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0LCAi
Zm9yd2FyZFkiX3MsIDAuMCwgLUZMVF9NQVgsIEZMVF9NQVgsIEF1dG9tYXRpb25SYXRlOjpBUmF0
ZSkpCisgICAgLCBtX2ZvcndhcmRaKEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0LCAiZm9yd2Fy
ZFoiX3MsIC0xLjAsIC1GTFRfTUFYLCBGTFRfTUFYLCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQor
ICAgICwgbV91cFgoQXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJ1cFgiX3MsIDAuMCwgLUZM
VF9NQVgsIEZMVF9NQVgsIEF1dG9tYXRpb25SYXRlOjpBUmF0ZSkpCisgICAgLCBtX3VwWShBdWRp
b1BhcmFtOjpjcmVhdGUoY29udGV4dCwgInVwWSJfcywgMS4wLCAtRkxUX01BWCwgRkxUX01BWCwg
QXV0b21hdGlvblJhdGU6OkFSYXRlKSkKKyAgICAsIG1fdXBaKEF1ZGlvUGFyYW06OmNyZWF0ZShj
b250ZXh0LCAidXBaIl9zLCAwLjAsIC1GTFRfTUFYLCBGTFRfTUFYLCBBdXRvbWF0aW9uUmF0ZTo6
QVJhdGUpKQogICAgICwgbV9wb3NpdGlvblhWYWx1ZXMoQXVkaW9VdGlsaXRpZXM6OnJlbmRlclF1
YW50dW1TaXplKQogICAgICwgbV9wb3NpdGlvbllWYWx1ZXMoQXVkaW9VdGlsaXRpZXM6OnJlbmRl
clF1YW50dW1TaXplKQogICAgICwgbV9wb3NpdGlvblpWYWx1ZXMoQXVkaW9VdGlsaXRpZXM6OnJl
bmRlclF1YW50dW1TaXplKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9BdWRpb1BhcmFtLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQXVk
aW9QYXJhbS5jcHAKaW5kZXggYmUxMmJiNWFhMDI3ZTUzYTEzNDY4NDdlNmM5OTNjMjNmOWYwMTg5
OC4uMGQ0NmEzZjkwNGNjNGQwOTM4OGI0ZmIwMTIzM2NiNjA4ZWM3ZjZkMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1BhcmFtLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW0uY3BwCkBAIC0xMDksNyArMTA5
LDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gQXVkaW9QYXJhbTo6c2V0VmFsdWVGb3JCaW5kaW5ncyhm
bG9hdCB2YWx1ZSkKIEV4Y2VwdGlvbk9yPHZvaWQ+IEF1ZGlvUGFyYW06OnNldEF1dG9tYXRpb25S
YXRlKEF1dG9tYXRpb25SYXRlIGF1dG9tYXRpb25SYXRlKQogewogICAgIGlmIChtX2F1dG9tYXRp
b25SYXRlTW9kZSA9PSBBdXRvbWF0aW9uUmF0ZU1vZGU6OkZpeGVkKQotICAgICAgICByZXR1cm4g
RXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJhdXRvbWF0aW9uUmF0ZSBjYW5ub3QgYmUg
Y2hhbmdlZCBmb3IgdGhpcyBub2RlIiB9OworICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52
YWxpZFN0YXRlRXJyb3IsICJhdXRvbWF0aW9uUmF0ZSBjYW5ub3QgYmUgY2hhbmdlZCBmb3IgdGhp
cyBub2RlIl9zIH07CiAKICAgICBtX2F1dG9tYXRpb25SYXRlID0gYXV0b21hdGlvblJhdGU7CiAg
ICAgcmV0dXJuIHsgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9QYXJhbVRpbWVsaW5lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQXVkaW9QYXJhbVRpbWVsaW5lLmNwcAppbmRleCBlNTlhYTdlNmQ4NDJmYWViZmRjMzhhMDU5
ZWM5NWM4MTkzZTU0NmE2Li5jYzM0ZGMzNGU1MDcxZDc0YmQ1MmMxZGI2ODhiYzlmMjE0OGU1M2Q3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0F1ZGlvUGFyYW1U
aW1lbGluZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9BdWRpb1Bh
cmFtVGltZWxpbmUuY3BwCkBAIC0xNzIsNyArMTcyLDcgQEAgRXhjZXB0aW9uT3I8dm9pZD4gQXVk
aW9QYXJhbVRpbWVsaW5lOjppbnNlcnRFdmVudChQYXJhbUV2ZW50JiYgZXZlbnQpCiAgICAgICAg
ICAgICAvLyBPdGhlcndpc2UsIG1ha2Ugc3VyZSB0aGlzIGV2ZW50IGRvZXNuJ3Qgb3ZlcmxhcCBh
bnkgZXhpc3RpbmcgU2V0VmFsdWVDdXJ2ZSBldmVudC4KICAgICAgICAgICAgIGF1dG8gcGFyZW50
RXZlbnRFbmRUaW1lID0gcGFyYW1FdmVudC50aW1lKCkgKyBwYXJhbUV2ZW50LmR1cmF0aW9uKCk7
CiAgICAgICAgICAgICBpZiAoZXZlbnQudGltZSgpID49IHBhcmFtRXZlbnQudGltZSgpICYmIGV2
ZW50LnRpbWUoKSA8IHBhcmVudEV2ZW50RW5kVGltZSkKLSAgICAgICAgICAgICAgICByZXR1cm4g
RXhjZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IsICJFdmVudHMgYXJlIG92ZXJsYXBwaW5nIiB9
OworICAgICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBOb3RTdXBwb3J0ZWRFcnJvciwg
IkV2ZW50cyBhcmUgb3ZlcmxhcHBpbmciX3MgfTsKICAgICAgICAgfQogCiAgICAgICAgIGlmIChw
YXJhbUV2ZW50LnRpbWUoKSA+IGluc2VydFRpbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL0JpcXVhZEZpbHRlck5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdWRpby9CaXF1YWRGaWx0ZXJOb2RlLmNwcAppbmRleCAxNDBlZDBhMjZlNTc1
NTE3MDE0YWMzM2E2NDMxNTU4OTA5YzAyNzJjLi41ZDczNmNmY2IyNTU5MThmODk3NWQ3YjNiMWY3
OGZiMGIwMzQ1MTYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlv
L0JpcXVhZEZpbHRlck5vZGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vQmlxdWFkRmlsdGVyTm9kZS5jcHAKQEAgLTc0LDcgKzc0LDcgQEAgRXhjZXB0aW9uT3I8dm9p
ZD4gQmlxdWFkRmlsdGVyTm9kZTo6Z2V0RnJlcXVlbmN5UmVzcG9uc2UoY29uc3QgUmVmPEZsb2F0
MzJBcnJheT4KIHsKICAgICB1bnNpZ25lZCBsZW5ndGggPSBmcmVxdWVuY3lIei0+bGVuZ3RoKCk7
CiAgICAgaWYgKG1hZ1Jlc3BvbnNlLT5sZW5ndGgoKSAhPSBsZW5ndGggfHwgcGhhc2VSZXNwb25z
ZS0+bGVuZ3RoKCkgIT0gbGVuZ3RoKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxp
ZEFjY2Vzc0Vycm9yLCAiVGhlIGFycmF5cyBwYXNzZWQgYXMgYXJndW1lbnRzIG11c3QgaGF2ZSB0
aGUgc2FtZSBsZW5ndGgiIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNj
ZXNzRXJyb3IsICJUaGUgYXJyYXlzIHBhc3NlZCBhcyBhcmd1bWVudHMgbXVzdCBoYXZlIHRoZSBz
YW1lIGxlbmd0aCJfcyB9OwogCiAgICAgaWYgKGxlbmd0aCkKICAgICAgICAgYmlxdWFkUHJvY2Vz
c29yKCktPmdldEZyZXF1ZW5jeVJlc3BvbnNlKGxlbmd0aCwgZnJlcXVlbmN5SHotPmRhdGEoKSwg
bWFnUmVzcG9uc2UtPmRhdGEoKSwgcGhhc2VSZXNwb25zZS0+ZGF0YSgpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmlxdWFkUHJvY2Vzc29yLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vQmlxdWFkUHJvY2Vzc29yLmNwcAppbmRleCA5
ZGY2MjlkN2ViZmRkNmZiNzQxNWYzZWI3Nzk3MjZiYmFiY2E4ZjFjLi5mOWE1NDM0ZTg4MDVkN2Rl
NDkxOGE2ZmJkODc1NGQxYTVlZDI3MjE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1ZGlvL0JpcXVhZFByb2Nlc3Nvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJhdWRpby9CaXF1YWRQcm9jZXNzb3IuY3BwCkBAIC0zNSwxMCArMzUsMTAgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgIAogQmlxdWFkUHJvY2Vzc29yOjpCaXF1YWRQcm9jZXNzb3Io
QmFzZUF1ZGlvQ29udGV4dCYgY29udGV4dCwgZmxvYXQgc2FtcGxlUmF0ZSwgc2l6ZV90IG51bWJl
ck9mQ2hhbm5lbHMsIGJvb2wgYXV0b0luaXRpYWxpemUpCiAgICAgOiBBdWRpb0RTUEtlcm5lbFBy
b2Nlc3NvcihzYW1wbGVSYXRlLCBudW1iZXJPZkNoYW5uZWxzKQotICAgICwgbV9wYXJhbWV0ZXIx
KEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0LCAiZnJlcXVlbmN5IiwgMzUwLjAsIDAuMCwgMC41
ICogc2FtcGxlUmF0ZSwgQXV0b21hdGlvblJhdGU6OkFSYXRlKSkKLSAgICAsIG1fcGFyYW1ldGVy
MihBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCwgIlEiLCAxLCAtRkxUX01BWCwgRkxUX01BWCwg
QXV0b21hdGlvblJhdGU6OkFSYXRlKSkKLSAgICAsIG1fcGFyYW1ldGVyMyhBdWRpb1BhcmFtOjpj
cmVhdGUoY29udGV4dCwgImdhaW4iLCAwLjAsIC1GTFRfTUFYLCA0MCAqIHN0ZDo6bG9nMTAoc3Rk
OjpudW1lcmljX2xpbWl0czxmbG9hdD46Om1heCgpKSwgQXV0b21hdGlvblJhdGU6OkFSYXRlKSkK
LSAgICAsIG1fcGFyYW1ldGVyNChBdWRpb1BhcmFtOjpjcmVhdGUoY29udGV4dCwgImRldHVuZSIs
IDAuMCwgLTE1MzYwMCwgMTUzNjAwLCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQorICAgICwgbV9w
YXJhbWV0ZXIxKEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0LCAiZnJlcXVlbmN5Il9zLCAzNTAu
MCwgMC4wLCAwLjUgKiBzYW1wbGVSYXRlLCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQorICAgICwg
bV9wYXJhbWV0ZXIyKEF1ZGlvUGFyYW06OmNyZWF0ZShjb250ZXh0LCAiUSJfcywgMSwgLUZMVF9N
QVgsIEZMVF9NQVgsIEF1dG9tYXRpb25SYXRlOjpBUmF0ZSkpCisgICAgLCBtX3BhcmFtZXRlcjMo
QXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJnYWluIl9zLCAwLjAsIC1GTFRfTUFYLCA0MCAq
IHN0ZDo6bG9nMTAoc3RkOjpudW1lcmljX2xpbWl0czxmbG9hdD46Om1heCgpKSwgQXV0b21hdGlv
blJhdGU6OkFSYXRlKSkKKyAgICAsIG1fcGFyYW1ldGVyNChBdWRpb1BhcmFtOjpjcmVhdGUoY29u
dGV4dCwgImRldHVuZSJfcywgMC4wLCAtMTUzNjAwLCAxNTM2MDAsIEF1dG9tYXRpb25SYXRlOjpB
UmF0ZSkpCiB7CiAgICAgaWYgKGF1dG9Jbml0aWFsaXplKQogICAgICAgICBpbml0aWFsaXplKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL0RlbGF5UHJvY2Vz
c29yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRGVsYXlQcm9jZXNzb3Iu
Y3BwCmluZGV4IGFlZTQwZTk0ZTY1ZGVlNGJmODQ0MjUxMjk0ZTMxNDM3OGFkMDQyYTUuLjFmOTBj
YmM5ZjE5NzA3YTliYzE3YTExM2JjYzRiMWQ1OGY5NDA1MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRGVsYXlQcm9jZXNzb3IuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vRGVsYXlQcm9jZXNzb3IuY3BwCkBAIC0zNCw3ICszNCw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogRGVsYXlQcm9jZXNzb3I6OkRlbGF5UHJvY2Vzc29y
KEJhc2VBdWRpb0NvbnRleHQmIGNvbnRleHQsIGZsb2F0IHNhbXBsZVJhdGUsIHVuc2lnbmVkIG51
bWJlck9mQ2hhbm5lbHMsIGRvdWJsZSBtYXhEZWxheVRpbWUpCiAgICAgOiBBdWRpb0RTUEtlcm5l
bFByb2Nlc3NvcihzYW1wbGVSYXRlLCBudW1iZXJPZkNoYW5uZWxzKQotICAgICwgbV9kZWxheVRp
bWUoQXVkaW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJkZWxheVRpbWUiLCAwLjAsIDAuMCwgbWF4
RGVsYXlUaW1lLCBBdXRvbWF0aW9uUmF0ZTo6QVJhdGUpKQorICAgICwgbV9kZWxheVRpbWUoQXVk
aW9QYXJhbTo6Y3JlYXRlKGNvbnRleHQsICJkZWxheVRpbWUiX3MsIDAuMCwgMC4wLCBtYXhEZWxh
eVRpbWUsIEF1dG9tYXRpb25SYXRlOjpBUmF0ZSkpCiB7CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vV2F2ZVNoYXBlck5vZGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdWRpby9XYXZlU2hhcGVyTm9kZS5jcHAKaW5kZXggZmMxNTI4Mjdi
M2EwY2MyN2E4ZDQzYjU0NTQ0ZmY0YmM1YmM0OWM5Yi4uNjQyOWMzMDUxNjEyYWZlZTgyYjNmY2Jk
NThiMmY2MDc0MGZmOTQ4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9XYXZlU2hhcGVyTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9XYXZlU2hhcGVyTm9kZS5jcHAKQEAgLTQzLDcgKzQzLDcgQEAgRXhjZXB0aW9uT3I8UmVm
PFdhdmVTaGFwZXJOb2RlPj4gV2F2ZVNoYXBlck5vZGU6OmNyZWF0ZShCYXNlQXVkaW9Db250ZXh0
JiBjb250ZXgKICAgICBpZiAob3B0aW9ucy5jdXJ2ZSkgewogICAgICAgICBjdXJ2ZSA9IEZsb2F0
MzJBcnJheTo6dHJ5Q3JlYXRlKG9wdGlvbnMuY3VydmUtPmRhdGEoKSwgb3B0aW9ucy5jdXJ2ZS0+
c2l6ZSgpKTsKICAgICAgICAgaWYgKCFjdXJ2ZSkKLSAgICAgICAgICAgIHJldHVybiBFeGNlcHRp
b24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkludmFsaWQgY3VydmUgcGFyYW1ldGVyIiB9OworICAg
ICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiSW52YWxpZCBj
dXJ2ZSBwYXJhbWV0ZXIiX3MgfTsKICAgICB9CiAKICAgICBhdXRvIG5vZGUgPSBhZG9wdFJlZigq
bmV3IFdhdmVTaGFwZXJOb2RlKGNvbnRleHQpKTsKQEAgLTc2LDcgKzc2LDcgQEAgRXhjZXB0aW9u
T3I8dm9pZD4gV2F2ZVNoYXBlck5vZGU6OnNldEN1cnZlRm9yQmluZGluZ3MoUmVmUHRyPEZsb2F0
MzJBcnJheT4mJiBjdXIKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOyAKICAgICBERUJVR19M
T0coTE9HSURFTlRJRklFUik7CiAgICAgaWYgKGN1cnZlICYmIGN1cnZlLT5sZW5ndGgoKSA8IDIp
Ci0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkxlbmd0aCBv
ZiBjdXJ2ZSBhcnJheSBjYW5ub3QgYmUgbGVzcyB0aGFuIDIiIH07CisgICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkxlbmd0aCBvZiBjdXJ2ZSBhcnJheSBjYW5u
b3QgYmUgbGVzcyB0aGFuIDIiX3MgfTsKIAogICAgIGlmIChjdXJ2ZSkgewogICAgICAgICAvLyBU
aGUgc3BlY2lmaWNhdGlvbiBzdGF0ZXMgdGhhdCB3ZSBzaG91bGQgbWFpbnRhaW4gYW4gaW50ZXJu
YWwgY29weSBvZiB0aGUgY3VydmUgc28gdGhhdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdXRobi9XZWJBdXRoZW50aWNhdGlvblV0aWxzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXV0aG4vV2ViQXV0aGVudGljYXRpb25VdGlscy5jcHAKaW5kZXggYzFm
YmYwNTZjYzZhYjVlMTgyOTg4MjI0NjM0NDFiNGE4NWVhYmQ0Yy4uMzMyZTJiZTc5NWEwMWYxZTA0
NjYyZGM0MTEzYmFlYWM0NDA3MWU3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdXRobi9XZWJBdXRoZW50aWNhdGlvblV0aWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1dGhuL1dlYkF1dGhlbnRpY2F0aW9uVXRpbHMuY3BwCkBAIC0xMzgsNyAr
MTM4LDcgQEAgY2Jvcjo6Q0JPUlZhbHVlOjpNYXBWYWx1ZSBidWlsZEF0dGVzdGF0aW9uTWFwKFZl
Y3Rvcjx1aW50OF90PiYmIGF1dGhEYXRhLCBTdHJpbmcKICAgICAgICAgY29uc3Qgc2l6ZV90IGFh
Z3VpZE9mZnNldCA9IHJwSWRIYXNoTGVuZ3RoICsgZmxhZ3NMZW5ndGggKyBzaWduQ291bnRlckxl
bmd0aDsKICAgICAgICAgaWYgKGF1dGhEYXRhLnNpemUoKSA+PSBhYWd1aWRPZmZzZXQgKyBhYWd1
aWRMZW5ndGgpCiAgICAgICAgICAgICBtZW1zZXQoYXV0aERhdGEuZGF0YSgpICsgYWFndWlkT2Zm
c2V0LCAwLCBhYWd1aWRMZW5ndGgpOwotICAgICAgICBmb3JtYXQgPSBub25lQXR0ZXN0YXRpb25W
YWx1ZTsKKyAgICAgICAgZm9ybWF0ID0gU3RyaW5nIHsgbm9uZUF0dGVzdGF0aW9uVmFsdWUgfTsK
ICAgICAgICAgc3RhdGVtZW50TWFwLmNsZWFyKCk7CiAgICAgfQogICAgIGF0dGVzdGF0aW9uT2Jq
ZWN0TWFwW2Nib3I6OkNCT1JWYWx1ZSgiYXV0aERhdGEiKV0gPSBjYm9yOjpDQk9SVmFsdWUoV1RG
TW92ZShhdXRoRGF0YSkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dXRobi9maWRvL0RldmljZVJlc3BvbnNlQ29udmVydGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXV0aG4vZmlkby9EZXZpY2VSZXNwb25zZUNvbnZlcnRlci5jcHAKaW5kZXggZjIx
YzVlZTdhMjVmNWU5Mjc1NDQzMWQzNTRhODdhOGQyMWM1ODNjOC4uNzM1YTliZjhlMDNhODQyYTk3
ZDQ2OTRhY2NjNmIyMmUxM2VmZTA0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdXRobi9maWRvL0RldmljZVJlc3BvbnNlQ29udmVydGVyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRGV2aWNlUmVzcG9uc2VDb252ZXJ0ZXIuY3Bw
CkBAIC0xMjYsNyArMTI2LDcgQEAgUmVmUHRyPEF1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3Bv
bnNlPiByZWFkQ1RBUE1ha2VDcmVkZW50aWFsUmVzcG9uc2UoY29uc3QgVmUKICAgICAgICAgLy8g
VGhlIHJlYXNvbiB3aHkgd2UgY2FuJ3QgZGlyZWN0bHkgcGFzcyBhdXRoZW50aWNhdG9yRGF0YS9m
b3JtYXQvYXR0U3RtdCB0byBidWlsZEF0dGVzdGF0aW9uT2JqZWN0CiAgICAgICAgIC8vIGlzIHRo
YXQgdGhleSBhcmUgQ0JPUlZhbHVlIGluc3RlYWQgb2YgdGhlIHJhdyB0eXBlLgogICAgICAgICAv
LyBBbHNvLCBmb3JtYXQgYW5kIGF0dFN0bXQgYXJlIG9taXR0ZWQgYXMgdGhleSBhcmUgbm90IHVz
ZWZ1bCBpbiBub25lIGF0dGVzdGF0aW9uLgotICAgICAgICBhdHRlc3RhdGlvbk9iamVjdCA9IGJ1
aWxkQXR0ZXN0YXRpb25PYmplY3QoVmVjdG9yPHVpbnQ4X3Q+KGF1dGhlbnRpY2F0b3JEYXRhLmdl
dEJ5dGVTdHJpbmcoKSksICIiLCB7IH0sIGF0dGVzdGF0aW9uKTsKKyAgICAgICAgYXR0ZXN0YXRp
b25PYmplY3QgPSBidWlsZEF0dGVzdGF0aW9uT2JqZWN0KFZlY3Rvcjx1aW50OF90PihhdXRoZW50
aWNhdG9yRGF0YS5nZXRCeXRlU3RyaW5nKCkpLCBTdHJpbmcgeyBlbXB0eVN0cmluZygpIH0sIHsg
fSwgYXR0ZXN0YXRpb24pOwogICAgIH0gZWxzZSB7CiAgICAgICAgIENCT1I6Ok1hcFZhbHVlIGF0
dGVzdGF0aW9uT2JqZWN0TWFwOwogICAgICAgICBhdHRlc3RhdGlvbk9iamVjdE1hcFtDQk9SKCJh
dXRoRGF0YSIpXSA9IFdURk1vdmUoYXV0aGVudGljYXRvckRhdGEpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL1Bpbi5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vUGluLmNwcAppbmRleCA5ZmE2NzNmMTgyY2NjYjA0NjIx
NzMzYWUzOGM1MjM2ZDM2MmI1Yzg4Li5iNDRmOTBiMDE0MzQyN2QxNTI2N2Q3YzlmNjdmMGNmYjAy
YzNmYjNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8v
UGluLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vUGluLmNw
cApAQCAtMTcxLDcgKzE3MSw3IEBAIHN0ZDo6b3B0aW9uYWw8S2V5QWdyZWVtZW50UmVzcG9uc2U+
IEtleUFncmVlbWVudFJlc3BvbnNlOjpwYXJzZUZyb21DT1NFKGNvbnN0IENCCiAKICAgICBjb25z
dCBhdXRvJiB4ID0geEl0LT5zZWNvbmQuZ2V0Qnl0ZVN0cmluZygpOwogICAgIGNvbnN0IGF1dG8m
IHkgPSB5SXQtPnNlY29uZC5nZXRCeXRlU3RyaW5nKCk7Ci0gICAgYXV0byBwZWVyS2V5ID0gQ3J5
cHRvS2V5RUM6OmltcG9ydFJhdyhDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpFQ0RILCAiUC0y
NTYiLCBlbmNvZGVSYXdQdWJsaWNLZXkoeCwgeSksIHRydWUsIENyeXB0b0tleVVzYWdlRGVyaXZl
Qml0cyk7CisgICAgYXV0byBwZWVyS2V5ID0gQ3J5cHRvS2V5RUM6OmltcG9ydFJhdyhDcnlwdG9B
bGdvcml0aG1JZGVudGlmaWVyOjpFQ0RILCAiUC0yNTYiX3MsIGVuY29kZVJhd1B1YmxpY0tleSh4
LCB5KSwgdHJ1ZSwgQ3J5cHRvS2V5VXNhZ2VEZXJpdmVCaXRzKTsKICAgICBpZiAoIXBlZXJLZXkp
CiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAKQEAgLTI0Nyw3ICsyNDcsNyBAQCBzdGQ6
Om9wdGlvbmFsPFRva2VuUmVxdWVzdD4gVG9rZW5SZXF1ZXN0Ojp0cnlDcmVhdGUoY29uc3QgQ1N0
cmluZyYgcGluLCBjb25zdCBDcgogICAgIC8vIFRoZSBmb2xsb3dpbmcgaW1wbGVtZW50cyBTZWN0
aW9uIDUuNS40IEdldHRpbmcgc2hhcmVkU2VjcmV0IGZyb20gQXV0aGVudGljYXRvci4KICAgICAv
LyBodHRwczovL2ZpZG9hbGxpYW5jZS5vcmcvc3BlY3MvZmlkby12Mi4wLXBzLTIwMTkwMTMwL2Zp
ZG8tY2xpZW50LXRvLWF1dGhlbnRpY2F0b3ItcHJvdG9jb2wtdjIuMC1wcy0yMDE5MDEzMC5odG1s
I2dldHRpbmdTaGFyZWRTZWNyZXQKICAgICAvLyAxLiBHZW5lcmF0ZSBhIFAyNTYga2V5IHBhaXIu
Ci0gICAgYXV0byBrZXlQYWlyUmVzdWx0ID0gQ3J5cHRvS2V5RUM6OmdlbmVyYXRlUGFpcihDcnlw
dG9BbGdvcml0aG1JZGVudGlmaWVyOjpFQ0RILCAiUC0yNTYiLCB0cnVlLCBDcnlwdG9LZXlVc2Fn
ZURlcml2ZUJpdHMpOworICAgIGF1dG8ga2V5UGFpclJlc3VsdCA9IENyeXB0b0tleUVDOjpnZW5l
cmF0ZVBhaXIoQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6RUNESCwgIlAtMjU2Il9zLCB0cnVl
LCBDcnlwdG9LZXlVc2FnZURlcml2ZUJpdHMpOwogICAgIEFTU0VSVCgha2V5UGFpclJlc3VsdC5o
YXNFeGNlcHRpb24oKSk7CiAgICAgYXV0byBrZXlQYWlyID0ga2V5UGFpclJlc3VsdC5yZWxlYXNl
UmV0dXJuVmFsdWUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dXRobi9maWRvL1UyZlJlc3BvbnNlQ29udmVydGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXV0aG4vZmlkby9VMmZSZXNwb25zZUNvbnZlcnRlci5jcHAKaW5kZXggM2YzNjZhYTI3
MDY4NDk3NDVhY2EyODE3OWI1OTk2ZTY2NmVlMjZlZC4uYTRmZGUxNWZmYmZkNTU1NzdiMjI5ZDg2
NDljNjc2NDhjZTdlYjk2ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dXRobi9maWRvL1UyZlJlc3BvbnNlQ29udmVydGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1dGhuL2ZpZG8vVTJmUmVzcG9uc2VDb252ZXJ0ZXIuY3BwCkBAIC0xNTgsNyAr
MTU4LDcgQEAgUmVmUHRyPEF1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlPiByZWFkVTJm
UmVnaXN0ZXJSZXNwb25zZShjb25zdCBTdHJpbmcmIHIKICAgICBpZiAoZmlkb0F0dGVzdGF0aW9u
U3RhdGVtZW50LmVtcHR5KCkpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgYXV0byBh
dHRlc3RhdGlvbk9iamVjdCA9IGJ1aWxkQXR0ZXN0YXRpb25PYmplY3QoV1RGTW92ZShhdXRoRGF0
YSksICJmaWRvLXUyZiIsIFdURk1vdmUoZmlkb0F0dGVzdGF0aW9uU3RhdGVtZW50KSwgYXR0ZXN0
YXRpb24pOworICAgIGF1dG8gYXR0ZXN0YXRpb25PYmplY3QgPSBidWlsZEF0dGVzdGF0aW9uT2Jq
ZWN0KFdURk1vdmUoYXV0aERhdGEpLCAiZmlkby11MmYiX3MsIFdURk1vdmUoZmlkb0F0dGVzdGF0
aW9uU3RhdGVtZW50KSwgYXR0ZXN0YXRpb24pOwogCiAgICAgcmV0dXJuIEF1dGhlbnRpY2F0b3JB
dHRlc3RhdGlvblJlc3BvbnNlOjpjcmVhdGUoY3JlZGVudGlhbElkLCBhdHRlc3RhdGlvbk9iamVj
dCwgYXR0YWNobWVudCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmRhdGFiYXNlL0NoYW5nZVZlcnNpb25XcmFwcGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZGF0YWJhc2UvQ2hhbmdlVmVyc2lvbldyYXBwZXIuY3BwCmluZGV4IDk0ZWY1MDk1NThi
NmMyNjU5ZmRmYTNkNjg5YjRiMGQyODM3M2Q4YTguLjM1YzBlMTZlM2UzNTEzMjMzYzIyZDhmM2Fh
NTY0NTIwM2Q5ODQ3NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0
YWJhc2UvQ2hhbmdlVmVyc2lvbldyYXBwZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViZGF0YWJhc2UvQ2hhbmdlVmVyc2lvbldyYXBwZXIuY3BwCkBAIC01Myw3ICs1Myw3IEBA
IGJvb2wgQ2hhbmdlVmVyc2lvbldyYXBwZXI6OnBlcmZvcm1QcmVmbGlnaHQoU1FMVHJhbnNhY3Rp
b24mIHRyYW5zYWN0aW9uKQogICAgIH0KIAogICAgIGlmIChhY3R1YWxWZXJzaW9uICE9IG1fb2xk
VmVyc2lvbikgewotICAgICAgICBtX3NxbEVycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJv
cjo6VkVSU0lPTl9FUlIsICJjdXJyZW50IHZlcnNpb24gb2YgdGhlIGRhdGFiYXNlIGFuZCBgb2xk
VmVyc2lvbmAgYXJndW1lbnQgZG8gbm90IG1hdGNoIik7CisgICAgICAgIG1fc3FsRXJyb3IgPSBT
UUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpWRVJTSU9OX0VSUiwgImN1cnJlbnQgdmVyc2lvbiBv
ZiB0aGUgZGF0YWJhc2UgYW5kIGBvbGRWZXJzaW9uYCBhcmd1bWVudCBkbyBub3QgbWF0Y2giX3Mp
OwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RPTVdpbmRvd1dlYkRhdGFiYXNlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRE9NV2luZG93V2ViRGF0YWJhc2UuY3BwCmlu
ZGV4IDhhYzJhZDZhZjVlNGEzYmZmODRjMjY3NmMwZTI0ZTZiYmMyZjNiNWMuLjU2YWMwZTQyMmRk
NGRmOTM2ZTNjY2IwMGNlNWY0NWMzZDY1NTQxNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViZGF0YWJhc2UvRE9NV2luZG93V2ViRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRE9NV2luZG93V2ViRGF0YWJhc2UuY3BwCkBA
IC00NSw3ICs0NSw3IEBAIEV4Y2VwdGlvbk9yPFJlZlB0cjxEYXRhYmFzZT4+IERPTVdpbmRvd1dl
YkRhdGFiYXNlOjpvcGVuRGF0YWJhc2UoRE9NV2luZG93JiB3aW5kCiAgICAgYXV0byogZG9jdW1l
bnQgPSB3aW5kb3cuZG9jdW1lbnQoKTsKICAgICBpZiAoIWRvY3VtZW50KQogICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgU2VjdXJpdHlFcnJvciB9OwotICAgIGRvY3VtZW50LT5hZGRDb25zb2xl
TWVzc2FnZShNZXNzYWdlU291cmNlOjpTdG9yYWdlLCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsICJX
ZWIgU1FMIGlzIGRlcHJlY2F0ZWQuIFBsZWFzZSB1c2UgSW5kZXhlZERCIGluc3RlYWQuIik7Cisg
ICAgZG9jdW1lbnQtPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OlN0b3JhZ2UsIE1l
c3NhZ2VMZXZlbDo6V2FybmluZywgIldlYiBTUUwgaXMgZGVwcmVjYXRlZC4gUGxlYXNlIHVzZSBJ
bmRleGVkREIgaW5zdGVhZC4iX3MpOwogCiAgICAgYXV0byYgc2VjdXJpdHlPcmlnaW4gPSBkb2N1
bWVudC0+c2VjdXJpdHlPcmlnaW4oKTsKICAgICBpZiAoIXNlY3VyaXR5T3JpZ2luLmNhbkFjY2Vz
c0RhdGFiYXNlKCZkb2N1bWVudC0+dG9wT3JpZ2luKCkpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFiYXNlLmNwcAppbmRleCA3Y2ZiMWM0MTBlNjdkMGIwN2Y3
ZTM0OTQ4MmRjMGVlOWY2YjExNmRmLi5jZDBjNDE0ZmIzMTAwMjQxM2VhMmJmZGQwOTgzMDVkNTFi
OWYxZmQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0Rh
dGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFi
YXNlLmNwcApAQCAtMTk4LDcgKzE5OCw3IEBAIERhdGFiYXNlOjpEYXRhYmFzZShEYXRhYmFzZUNv
bnRleHQmIGNvbnRleHQsIGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgU3RyaW5nJiBlCiAgICAg
LCBtX2Rpc3BsYXlOYW1lKGRpc3BsYXlOYW1lLmlzb2xhdGVkQ29weSgpKQogICAgICwgbV9lc3Rp
bWF0ZWRTaXplKGVzdGltYXRlZFNpemUpCiAgICAgLCBtX2ZpbGVuYW1lKERhdGFiYXNlTWFuYWdl
cjo6c2luZ2xldG9uKCkuZnVsbFBhdGhGb3JEYXRhYmFzZShtX2RvY3VtZW50LT5zZWN1cml0eU9y
aWdpbigpLCBtX25hbWUpKQotICAgICwgbV9kYXRhYmFzZUF1dGhvcml6ZXIoRGF0YWJhc2VBdXRo
b3JpemVyOjpjcmVhdGUodW5xdWFsaWZpZWRJbmZvVGFibGVOYW1lKSkKKyAgICAsIG1fZGF0YWJh
c2VBdXRob3JpemVyKERhdGFiYXNlQXV0aG9yaXplcjo6Y3JlYXRlKFN0cmluZyB7IHVucXVhbGlm
aWVkSW5mb1RhYmxlTmFtZSB9KSkKIHsKICAgICB7CiAgICAgICAgIExvY2tlciBsb2NrZXIgeyBn
dWlkTG9jayB9OwpAQCAtNjg3LDcgKzY4Nyw3IEBAIHZvaWQgRGF0YWJhc2U6OnJ1blRyYW5zYWN0
aW9uKFJlZlB0cjxTUUxUcmFuc2FjdGlvbkNhbGxiYWNrPiYmIGNhbGxiYWNrLCBSZWZQdHI8CiAg
ICAgaWYgKCFtX2lzVHJhbnNhY3Rpb25RdWV1ZUVuYWJsZWQpIHsKICAgICAgICAgaWYgKGVycm9y
Q2FsbGJhY2spIHsKICAgICAgICAgICAgIG1fZG9jdW1lbnQtPmV2ZW50TG9vcCgpLnF1ZXVlVGFz
ayhUYXNrU291cmNlOjpOZXR3b3JraW5nLCBbZXJyb3JDYWxsYmFjayA9IFJlZiB7ICplcnJvckNh
bGxiYWNrIH1dKCkgewotICAgICAgICAgICAgICAgIGVycm9yQ2FsbGJhY2stPmhhbmRsZUV2ZW50
KFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OlVOS05PV05fRVJSLCAiZGF0YWJhc2UgaGFzIGJl
ZW4gY2xvc2VkIikpOworICAgICAgICAgICAgICAgIGVycm9yQ2FsbGJhY2stPmhhbmRsZUV2ZW50
KFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OlVOS05PV05fRVJSLCAiZGF0YWJhc2UgaGFzIGJl
ZW4gY2xvc2VkIl9zKSk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgfQogICAgICAgICByZXR1
cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0RhdGFi
YXNlQXV0aG9yaXplci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL0Rh
dGFiYXNlQXV0aG9yaXplci5jcHAKaW5kZXggZTJkYzcwNmY1ZDk2NWQyZDdhNWNiYTg3MjE2NmNm
NTNhOTgwOGExZi4uZGNmOWViOTUyZGRkMDNiNGIwZDdhZDg2YTZjY2Q1ZmI0M2UzZGNlYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9EYXRhYmFzZUF1dGhv
cml6ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJh
c2VBdXRob3JpemVyLmNwcApAQCAtNjIsNjQgKzYyLDY0IEBAIHZvaWQgRGF0YWJhc2VBdXRob3Jp
emVyOjphZGRBbGxvd2VkRnVuY3Rpb25zKCkKIHsKICAgICAvLyBTUUxpdGUgZnVuY3Rpb25zIHVz
ZWQgdG8gaGVscCBpbXBsZW1lbnQgc29tZSBvcGVyYXRpb25zCiAgICAgLy8gQUxURVIgVEFCTEUg
aGVscGVycwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInNxbGl0ZV9yZW5hbWVfdGFibGUi
KTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJzcWxpdGVfcmVuYW1lX3RyaWdnZXIiKTsK
KyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJzcWxpdGVfcmVuYW1lX3RhYmxlIl9zKTsKKyAg
ICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJzcWxpdGVfcmVuYW1lX3RyaWdnZXIiX3MpOwogICAg
IC8vIEdMT0IgaGVscGVycwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoImdsb2IiKTsKKyAg
ICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJnbG9iIl9zKTsKIAogICAgIC8vIFNRTGl0ZSBjb3Jl
IGZ1bmN0aW9ucwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoImFicyIpOwotICAgIG1fYWxs
b3dlZEZ1bmN0aW9ucy5hZGQoImNoYW5nZXMiKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRk
KCJjb2FsZXNjZSIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoImdsb2IiKTsKLSAgICBt
X2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJpZm51bGwiKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMu
YWRkKCJoZXgiKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJsYXN0X2luc2VydF9yb3dp
ZCIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoImxlbmd0aCIpOwotICAgIG1fYWxsb3dl
ZEZ1bmN0aW9ucy5hZGQoImxpa2UiKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJsb3dl
ciIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoImx0cmltIik7Ci0gICAgbV9hbGxvd2Vk
RnVuY3Rpb25zLmFkZCgibWF4Iik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgibWluIik7
Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgibnVsbGlmIik7Ci0gICAgbV9hbGxvd2VkRnVu
Y3Rpb25zLmFkZCgicXVvdGUiKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJyZXBsYWNl
Iik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgicm91bmQiKTsKLSAgICBtX2FsbG93ZWRG
dW5jdGlvbnMuYWRkKCJydHJpbSIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInNvdW5k
ZXgiKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJzcWxpdGVfc291cmNlX2lkIik7Ci0g
ICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgic3FsaXRlX3ZlcnNpb24iKTsKLSAgICBtX2FsbG93
ZWRGdW5jdGlvbnMuYWRkKCJzdWJzdHIiKTsKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJ0
b3RhbF9jaGFuZ2VzIik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgidHJpbSIpOwotICAg
IG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInR5cGVvZiIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9u
cy5hZGQoInVwcGVyIik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgiemVyb2Jsb2IiKTsK
KyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJhYnMiX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0
aW9ucy5hZGQoImNoYW5nZXMiX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoImNvYWxl
c2NlIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJnbG9iIl9zKTsKKyAgICBtX2Fs
bG93ZWRGdW5jdGlvbnMuYWRkKCJpZm51bGwiX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5h
ZGQoImhleCJfcyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgibGFzdF9pbnNlcnRfcm93
aWQiX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoImxlbmd0aCJfcyk7CisgICAgbV9h
bGxvd2VkRnVuY3Rpb25zLmFkZCgibGlrZSJfcyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFk
ZCgibG93ZXIiX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoImx0cmltIl9zKTsKKyAg
ICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJtYXgiX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9u
cy5hZGQoIm1pbiJfcyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgibnVsbGlmIl9zKTsK
KyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJxdW90ZSJfcyk7CisgICAgbV9hbGxvd2VkRnVu
Y3Rpb25zLmFkZCgicmVwbGFjZSJfcyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgicm91
bmQiX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInJ0cmltIl9zKTsKKyAgICBtX2Fs
bG93ZWRGdW5jdGlvbnMuYWRkKCJzb3VuZGV4Il9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMu
YWRkKCJzcWxpdGVfc291cmNlX2lkIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJz
cWxpdGVfdmVyc2lvbiJfcyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgic3Vic3RyIl9z
KTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJ0b3RhbF9jaGFuZ2VzIl9zKTsKKyAgICBt
X2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJ0cmltIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMu
YWRkKCJ0eXBlb2YiX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInVwcGVyIl9zKTsK
KyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJ6ZXJvYmxvYiJfcyk7CiAKICAgICAvLyBTUUxp
dGUgZGF0ZSBhbmQgdGltZSBmdW5jdGlvbnMKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJk
YXRlIik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgidGltZSIpOwotICAgIG1fYWxsb3dl
ZEZ1bmN0aW9ucy5hZGQoImRhdGV0aW1lIik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgi
anVsaWFuZGF5Iik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgic3RyZnRpbWUiKTsKKyAg
ICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJkYXRlIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlv
bnMuYWRkKCJ0aW1lIl9zKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJkYXRldGltZSJf
cyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgianVsaWFuZGF5Il9zKTsKKyAgICBtX2Fs
bG93ZWRGdW5jdGlvbnMuYWRkKCJzdHJmdGltZSJfcyk7CiAKICAgICAvLyBTUUxpdGUgYWdncmVn
YXRlIGZ1bmN0aW9ucwogICAgIC8vIG1heCgpIGFuZCBtaW4oKSBhcmUgYWxyZWFkeSBpbiB0aGUg
bGlzdAotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoImF2ZyIpOwotICAgIG1fYWxsb3dlZEZ1
bmN0aW9ucy5hZGQoImNvdW50Iik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgiZ3JvdXBf
Y29uY2F0Iik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgic3VtIik7Ci0gICAgbV9hbGxv
d2VkRnVuY3Rpb25zLmFkZCgidG90YWwiKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJh
dmciX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoImNvdW50Il9zKTsKKyAgICBtX2Fs
bG93ZWRGdW5jdGlvbnMuYWRkKCJncm91cF9jb25jYXQiX3MpOworICAgIG1fYWxsb3dlZEZ1bmN0
aW9ucy5hZGQoInN1bSJfcyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgidG90YWwiX3Mp
OwogCiAgICAgLy8gU1FMaXRlIEZUUyBmdW5jdGlvbnMKLSAgICBtX2FsbG93ZWRGdW5jdGlvbnMu
YWRkKCJtYXRjaCIpOwotICAgIG1fYWxsb3dlZEZ1bmN0aW9ucy5hZGQoInNuaXBwZXQiKTsKLSAg
ICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJvZmZzZXRzIik7Ci0gICAgbV9hbGxvd2VkRnVuY3Rp
b25zLmFkZCgib3B0aW1pemUiKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJtYXRjaCJf
cyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFkZCgic25pcHBldCJfcyk7CisgICAgbV9hbGxv
d2VkRnVuY3Rpb25zLmFkZCgib2Zmc2V0cyJfcyk7CisgICAgbV9hbGxvd2VkRnVuY3Rpb25zLmFk
ZCgib3B0aW1pemUiX3MpOwogCiAgICAgLy8gU1FMaXRlIElDVSBmdW5jdGlvbnMKICAgICAvLyBs
aWtlKCksIGxvd2VyKCkgYW5kIHVwcGVyKCkgYXJlIGFscmVhZHkgaW4gdGhlIGxpc3QKLSAgICBt
X2FsbG93ZWRGdW5jdGlvbnMuYWRkKCJyZWdleHAiKTsKKyAgICBtX2FsbG93ZWRGdW5jdGlvbnMu
YWRkKCJyZWdleHAiX3MpOwogfQogCiBpbnQgRGF0YWJhc2VBdXRob3JpemVyOjpjcmVhdGVUYWJs
ZShjb25zdCBTdHJpbmcmIHRhYmxlTmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViZGF0YWJhc2UvRGF0YWJhc2VUcmFja2VyLmNwcAppbmRleCA5ZWIzOTFjNmQwYmQ2
ZDQ4NjA1MTBlZGFiNzI4OTMzOTk1MDZiYzcyLi5hNGYwYzc0NDUyMzcxYTRkYmQ4ZGYwODYwNjll
Y2QxMGFiYTMyMjlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFi
YXNlL0RhdGFiYXNlVHJhY2tlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJk
YXRhYmFzZS9EYXRhYmFzZVRyYWNrZXIuY3BwCkBAIC05MSw3ICs5MSw3IEBAIERhdGFiYXNlVHJh
Y2tlcjo6RGF0YWJhc2VUcmFja2VyKGNvbnN0IFN0cmluZyYgZGF0YWJhc2VQYXRoKQogCiBTdHJp
bmcgRGF0YWJhc2VUcmFja2VyOjp0cmFja2VyRGF0YWJhc2VQYXRoKCkgY29uc3QKIHsKLSAgICBy
ZXR1cm4gU1FMaXRlRmlsZVN5c3RlbTo6YXBwZW5kRGF0YWJhc2VGaWxlTmFtZVRvUGF0aChtX2Rh
dGFiYXNlRGlyZWN0b3J5UGF0aC5pc29sYXRlZENvcHkoKSwgIkRhdGFiYXNlcy5kYiIpOworICAg
IHJldHVybiBTUUxpdGVGaWxlU3lzdGVtOjphcHBlbmREYXRhYmFzZUZpbGVOYW1lVG9QYXRoKG1f
ZGF0YWJhc2VEaXJlY3RvcnlQYXRoLmlzb2xhdGVkQ29weSgpLCAiRGF0YWJhc2VzLmRiIl9zKTsK
IH0KIAogdm9pZCBEYXRhYmFzZVRyYWNrZXI6Om9wZW5UcmFja2VyRGF0YWJhc2UoVHJhY2tlckNy
ZWF0aW9uQWN0aW9uIGNyZWF0ZUFjdGlvbikKQEAgLTExOCwxNCArMTE4LDE0IEBAIHZvaWQgRGF0
YWJhc2VUcmFja2VyOjpvcGVuVHJhY2tlckRhdGFiYXNlKFRyYWNrZXJDcmVhdGlvbkFjdGlvbiBj
cmVhdGVBY3Rpb24pCiAgICAgfQogICAgIG1fZGF0YWJhc2UuZGlzYWJsZVRocmVhZGluZ0NoZWNr
cygpOwogCi0gICAgaWYgKCFtX2RhdGFiYXNlLnRhYmxlRXhpc3RzKCJPcmlnaW5zIikpIHsKKyAg
ICBpZiAoIW1fZGF0YWJhc2UudGFibGVFeGlzdHMoIk9yaWdpbnMiX3MpKSB7CiAgICAgICAgIGlm
ICghbV9kYXRhYmFzZS5leGVjdXRlQ29tbWFuZCgiQ1JFQVRFIFRBQkxFIE9yaWdpbnMgKG9yaWdp
biBURVhUIFVOSVFVRSBPTiBDT05GTElDVCBSRVBMQUNFLCBxdW90YSBJTlRFR0VSIE5PVCBOVUxM
IE9OIENPTkZMSUNUIEZBSUwpOyJfcykpIHsKICAgICAgICAgICAgIC8vIEZJWE1FOiBhbmQgaGVy
ZQogICAgICAgICAgICAgTE9HX0VSUk9SKCJGYWlsZWQgdG8gY3JlYXRlIE9yaWdpbnMgdGFibGUi
KTsKICAgICAgICAgfQogICAgIH0KIAotICAgIGlmICghbV9kYXRhYmFzZS50YWJsZUV4aXN0cygi
RGF0YWJhc2VzIikpIHsKKyAgICBpZiAoIW1fZGF0YWJhc2UudGFibGVFeGlzdHMoIkRhdGFiYXNl
cyJfcykpIHsKICAgICAgICAgaWYgKCFtX2RhdGFiYXNlLmV4ZWN1dGVDb21tYW5kKCJDUkVBVEUg
VEFCTEUgRGF0YWJhc2VzIChndWlkIElOVEVHRVIgUFJJTUFSWSBLRVkgQVVUT0lOQ1JFTUVOVCwg
b3JpZ2luIFRFWFQsIG5hbWUgVEVYVCwgZGlzcGxheU5hbWUgVEVYVCwgZXN0aW1hdGVkU2l6ZSBJ
TlRFR0VSLCBwYXRoIFRFWFQpOyJfcykpIHsKICAgICAgICAgICAgIC8vIEZJWE1FOiBhbmQgaGVy
ZQogICAgICAgICAgICAgTE9HX0VSUk9SKCJGYWlsZWQgdG8gY3JlYXRlIERhdGFiYXNlcyB0YWJs
ZSIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxT
dGF0ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxTdGF0
ZW1lbnQuY3BwCmluZGV4IGI3ODA1ODJkYzk3OTU5MjMzNDYzZjhmZDhhYzE5ZDAzOWFlYjg4MjAu
LmQ5MWQwMzE0NTkxNWIyMWEzNTdlODVmMDVjY2JhNDBlNWRiZWExMWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMU3RhdGVtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmRhdGFiYXNlL1NRTFN0YXRlbWVudC5jcHAKQEAgLTEy
Niw3ICsxMjYsNyBAQCBib29sIFNRTFN0YXRlbWVudDo6ZXhlY3V0ZShEYXRhYmFzZSYgZGIpCiAg
ICAgLy8gSWYgdGhpcyBpcyB0aGUgY2FzZSwgdGhleSBtaWdodCBiZSB0cnlpbmcgdG8gZG8gc29t
ZXRoaW5nIGZpc2h5IG9yIG1hbGljaW91cwogICAgIGlmIChzdGF0ZW1lbnQtPmJpbmRQYXJhbWV0
ZXJDb3VudCgpICE9IG1fYXJndW1lbnRzLnNpemUoKSkgewogICAgICAgICBMT0coU3RvcmFnZUFQ
SSwgIkJpbmQgcGFyYW1ldGVyIGNvdW50IGRvZXNuJ3QgbWF0Y2ggbnVtYmVyIG9mIHF1ZXN0aW9u
IG1hcmtzIik7Ci0gICAgICAgIG1fZXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpT
WU5UQVhfRVJSLCAibnVtYmVyIG9mICc/J3MgaW4gc3RhdGVtZW50IHN0cmluZyBkb2VzIG5vdCBt
YXRjaCBhcmd1bWVudCBjb3VudCIpOworICAgICAgICBtX2Vycm9yID0gU1FMRXJyb3I6OmNyZWF0
ZShTUUxFcnJvcjo6U1lOVEFYX0VSUiwgIm51bWJlciBvZiAnPydzIGluIHN0YXRlbWVudCBzdHJp
bmcgZG9lcyBub3QgbWF0Y2ggYXJndW1lbnQgY291bnQiX3MpOwogICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgfQogCkBAIC0yMzQsMTkgKzIzNCwxOSBAQCBib29sIFNRTFN0YXRlbWVudDo6cGVy
Zm9ybUNhbGxiYWNrKFNRTFRyYW5zYWN0aW9uJiB0cmFuc2FjdGlvbikKIHZvaWQgU1FMU3RhdGVt
ZW50OjpzZXREYXRhYmFzZURlbGV0ZWRFcnJvcigpCiB7CiAgICAgQVNTRVJUKCFtX2Vycm9yICYm
ICFtX3Jlc3VsdFNldCk7Ci0gICAgbV9lcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6
OlVOS05PV05fRVJSLCAidW5hYmxlIHRvIGV4ZWN1dGUgc3RhdGVtZW50LCBiZWNhdXNlIHRoZSB1
c2VyIGRlbGV0ZWQgdGhlIGRhdGFiYXNlIik7CisgICAgbV9lcnJvciA9IFNRTEVycm9yOjpjcmVh
dGUoU1FMRXJyb3I6OlVOS05PV05fRVJSLCAidW5hYmxlIHRvIGV4ZWN1dGUgc3RhdGVtZW50LCBi
ZWNhdXNlIHRoZSB1c2VyIGRlbGV0ZWQgdGhlIGRhdGFiYXNlIl9zKTsKIH0KIAogdm9pZCBTUUxT
dGF0ZW1lbnQ6OnNldFZlcnNpb25NaXNtYXRjaGVkRXJyb3IoKQogewogICAgIEFTU0VSVCghbV9l
cnJvciAmJiAhbV9yZXN1bHRTZXQpOwotICAgIG1fZXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNR
TEVycm9yOjpWRVJTSU9OX0VSUiwgImN1cnJlbnQgdmVyc2lvbiBvZiB0aGUgZGF0YWJhc2UgYW5k
IGBvbGRWZXJzaW9uYCBhcmd1bWVudCBkbyBub3QgbWF0Y2giKTsKKyAgICBtX2Vycm9yID0gU1FM
RXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6VkVSU0lPTl9FUlIsICJjdXJyZW50IHZlcnNpb24gb2Yg
dGhlIGRhdGFiYXNlIGFuZCBgb2xkVmVyc2lvbmAgYXJndW1lbnQgZG8gbm90IG1hdGNoIl9zKTsK
IH0KIAogdm9pZCBTUUxTdGF0ZW1lbnQ6OnNldEZhaWx1cmVEdWVUb1F1b3RhKCkKIHsKICAgICBB
U1NFUlQoIW1fZXJyb3IgJiYgIW1fcmVzdWx0U2V0KTsKLSAgICBtX2Vycm9yID0gU1FMRXJyb3I6
OmNyZWF0ZShTUUxFcnJvcjo6UVVPVEFfRVJSLCAidGhlcmUgd2FzIG5vdCBlbm91Z2ggcmVtYWlu
aW5nIHN0b3JhZ2Ugc3BhY2UsIG9yIHRoZSBzdG9yYWdlIHF1b3RhIHdhcyByZWFjaGVkIGFuZCB0
aGUgdXNlciBkZWNsaW5lZCB0byBhbGxvdyBtb3JlIHNwYWNlIik7CisgICAgbV9lcnJvciA9IFNR
TEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OlFVT1RBX0VSUiwgInRoZXJlIHdhcyBub3QgZW5vdWdo
IHJlbWFpbmluZyBzdG9yYWdlIHNwYWNlLCBvciB0aGUgc3RvcmFnZSBxdW90YSB3YXMgcmVhY2hl
ZCBhbmQgdGhlIHVzZXIgZGVjbGluZWQgdG8gYWxsb3cgbW9yZSBzcGFjZSJfcyk7CiB9CiAKIHZv
aWQgU1FMU3RhdGVtZW50OjpjbGVhckZhaWx1cmVEdWVUb1F1b3RhKCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViZGF0YWJhc2UvU1FMVHJhbnNhY3Rpb24uY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbi5jcHAKaW5kZXgg
NjgzMmFjYTkwZWQ2ZDllYjgxYWI5ZjM1NTk1OTNiZjQ2NDMwZmQwZi4uZTlhZDc5ZjMyODJlODQ1
OWRkN2QzM2VmZjAyYjZiNTc5ZjAyNmMwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJkYXRhYmFzZS9TUUxUcmFuc2FjdGlvbi5jcHAKQEAgLTEzNyw3ICsxMzcsNyBA
QCB2b2lkIFNRTFRyYW5zYWN0aW9uOjpjYWxsRXJyb3JDYWxsYmFja0R1ZVRvSW50ZXJydXB0aW9u
KCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9kYXRhYmFzZS0+ZG9jdW1lbnQoKS5ldmVudExv
b3AoKS5xdWV1ZVRhc2soVGFza1NvdXJjZTo6TmV0d29ya2luZywgW2Vycm9yQ2FsbGJhY2sgPSBX
VEZNb3ZlKGVycm9yQ2FsbGJhY2spXSgpIG11dGFibGUgewotICAgICAgICBlcnJvckNhbGxiYWNr
LT5oYW5kbGVFdmVudChTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpEQVRBQkFTRV9FUlIsICJ0
aGUgZGF0YWJhc2Ugd2FzIGNsb3NlZCIpKTsKKyAgICAgICAgZXJyb3JDYWxsYmFjay0+aGFuZGxl
RXZlbnQoU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6REFUQUJBU0VfRVJSLCAidGhlIGRhdGFi
YXNlIHdhcyBjbG9zZWQiX3MpKTsKICAgICB9KTsKIH0KIApAQCAtMjM2LDcgKzIzNiw3IEBAIHZv
aWQgU1FMVHJhbnNhY3Rpb246Om9wZW5UcmFuc2FjdGlvbkFuZFByZWZsaWdodCgpCiAKICAgICAv
LyBJZiB0aGUgZGF0YWJhc2Ugd2FzIGRlbGV0ZWQsIGp1bXAgdG8gdGhlIGVycm9yIGNhbGxiYWNr
CiAgICAgaWYgKG1fZGF0YWJhc2UtPmRlbGV0ZWQoKSkgewotICAgICAgICBtX3RyYW5zYWN0aW9u
RXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpVTktOT1dOX0VSUiwgInVuYWJsZSB0
byBvcGVuIGEgdHJhbnNhY3Rpb24sIGJlY2F1c2UgdGhlIHVzZXIgZGVsZXRlZCB0aGUgZGF0YWJh
c2UiKTsKKyAgICAgICAgbV90cmFuc2FjdGlvbkVycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxF
cnJvcjo6VU5LTk9XTl9FUlIsICJ1bmFibGUgdG8gb3BlbiBhIHRyYW5zYWN0aW9uLCBiZWNhdXNl
IHRoZSB1c2VyIGRlbGV0ZWQgdGhlIGRhdGFiYXNlIl9zKTsKIAogICAgICAgICBoYW5kbGVUcmFu
c2FjdGlvbkVycm9yKCk7CiAgICAgICAgIHJldHVybjsKQEAgLTI5MCw3ICsyOTAsNyBAQCB2b2lk
IFNRTFRyYW5zYWN0aW9uOjpvcGVuVHJhbnNhY3Rpb25BbmRQcmVmbGlnaHQoKQogICAgICAgICBt
X2RhdGFiYXNlLT5lbmFibGVBdXRob3JpemVyKCk7CiAgICAgICAgIG1fdHJhbnNhY3Rpb25FcnJv
ciA9IG1fd3JhcHBlci0+c3FsRXJyb3IoKTsKICAgICAgICAgaWYgKCFtX3RyYW5zYWN0aW9uRXJy
b3IpCi0gICAgICAgICAgICBtX3RyYW5zYWN0aW9uRXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNR
TEVycm9yOjpVTktOT1dOX0VSUiwgInVua25vd24gZXJyb3Igb2NjdXJyZWQgZHVyaW5nIHRyYW5z
YWN0aW9uIHByZWZsaWdodCIpOworICAgICAgICAgICAgbV90cmFuc2FjdGlvbkVycm9yID0gU1FM
RXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6VU5LTk9XTl9FUlIsICJ1bmtub3duIGVycm9yIG9jY3Vy
cmVkIGR1cmluZyB0cmFuc2FjdGlvbiBwcmVmbGlnaHQiX3MpOwogCiAgICAgICAgIGhhbmRsZVRy
YW5zYWN0aW9uRXJyb3IoKTsKICAgICAgICAgcmV0dXJuOwpAQCAtMzk1LDcgKzM5NSw3IEBAIHZv
aWQgU1FMVHJhbnNhY3Rpb246OmRlbGl2ZXJUcmFuc2FjdGlvbkNhbGxiYWNrKCkKIAogICAgIC8v
IFNwZWMgNC4zLjIgNTogSWYgdGhlIHRyYW5zYWN0aW9uIGNhbGxiYWNrIHdhcyBudWxsIG9yIHJh
aXNlZCBhbiBleGNlcHRpb24sIGp1bXAgdG8gdGhlIGVycm9yIGNhbGxiYWNrCiAgICAgaWYgKHNo
b3VsZERlbGl2ZXJFcnJvckNhbGxiYWNrKSB7Ci0gICAgICAgIG1fdHJhbnNhY3Rpb25FcnJvciA9
IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OlVOS05PV05fRVJSLCAidGhlIFNRTFRyYW5zYWN0
aW9uQ2FsbGJhY2sgd2FzIG51bGwgb3IgdGhyZXcgYW4gZXhjZXB0aW9uIik7CisgICAgICAgIG1f
dHJhbnNhY3Rpb25FcnJvciA9IFNRTEVycm9yOjpjcmVhdGUoU1FMRXJyb3I6OlVOS05PV05fRVJS
LCAidGhlIFNRTFRyYW5zYWN0aW9uQ2FsbGJhY2sgd2FzIG51bGwgb3IgdGhyZXcgYW4gZXhjZXB0
aW9uIl9zKTsKICAgICAgICAgcmV0dXJuIGRlbGl2ZXJUcmFuc2FjdGlvbkVycm9yQ2FsbGJhY2so
KTsKICAgICB9CiAKQEAgLTQzMiw3ICs0MzIsNyBAQCB2b2lkIFNRTFRyYW5zYWN0aW9uOjpkZWxp
dmVyU3RhdGVtZW50Q2FsbGJhY2soKQogICAgIG1fZXhlY3V0ZVNxbEFsbG93ZWQgPSBmYWxzZTsK
IAogICAgIGlmIChyZXN1bHQpIHsKLSAgICAgICAgbV90cmFuc2FjdGlvbkVycm9yID0gU1FMRXJy
b3I6OmNyZWF0ZShTUUxFcnJvcjo6VU5LTk9XTl9FUlIsICJ0aGUgc3RhdGVtZW50IGNhbGxiYWNr
IHJhaXNlZCBhbiBleGNlcHRpb24gb3Igc3RhdGVtZW50IGVycm9yIGNhbGxiYWNrIGRpZCBub3Qg
cmV0dXJuIGZhbHNlIik7CisgICAgICAgIG1fdHJhbnNhY3Rpb25FcnJvciA9IFNRTEVycm9yOjpj
cmVhdGUoU1FMRXJyb3I6OlVOS05PV05fRVJSLCAidGhlIHN0YXRlbWVudCBjYWxsYmFjayByYWlz
ZWQgYW4gZXhjZXB0aW9uIG9yIHN0YXRlbWVudCBlcnJvciBjYWxsYmFjayBkaWQgbm90IHJldHVy
biBmYWxzZSJfcyk7CiAKICAgICAgICAgaWYgKG1fZXJyb3JDYWxsYmFja1dyYXBwZXIuaGFzQ2Fs
bGJhY2soKSkKICAgICAgICAgICAgIHJldHVybiBkZWxpdmVyVHJhbnNhY3Rpb25FcnJvckNhbGxi
YWNrKCk7CkBAIC01NjgsNyArNTY4LDcgQEAgdm9pZCBTUUxUcmFuc2FjdGlvbjo6aGFuZGxlQ3Vy
cmVudFN0YXRlbWVudEVycm9yKCkKIAogICAgIG1fdHJhbnNhY3Rpb25FcnJvciA9IG1fY3VycmVu
dFN0YXRlbWVudC0+c3FsRXJyb3IoKTsKICAgICBpZiAoIW1fdHJhbnNhY3Rpb25FcnJvcikKLSAg
ICAgICAgbV90cmFuc2FjdGlvbkVycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShTUUxFcnJvcjo6REFU
QUJBU0VfRVJSLCAidGhlIHN0YXRlbWVudCBmYWlsZWQgdG8gZXhlY3V0ZSIpOworICAgICAgICBt
X3RyYW5zYWN0aW9uRXJyb3IgPSBTUUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpEQVRBQkFTRV9F
UlIsICJ0aGUgc3RhdGVtZW50IGZhaWxlZCB0byBleGVjdXRlIl9zKTsKIAogICAgIGhhbmRsZVRy
YW5zYWN0aW9uRXJyb3IoKTsKIH0KQEAgLTU5NCw3ICs1OTQsNyBAQCB2b2lkIFNRTFRyYW5zYWN0
aW9uOjpwb3N0ZmxpZ2h0QW5kQ29tbWl0KCkKICAgICBpZiAobV93cmFwcGVyICYmICFtX3dyYXBw
ZXItPnBlcmZvcm1Qb3N0ZmxpZ2h0KCp0aGlzKSkgewogICAgICAgICBtX3RyYW5zYWN0aW9uRXJy
b3IgPSBtX3dyYXBwZXItPnNxbEVycm9yKCk7CiAgICAgICAgIGlmICghbV90cmFuc2FjdGlvbkVy
cm9yKQotICAgICAgICAgICAgbV90cmFuc2FjdGlvbkVycm9yID0gU1FMRXJyb3I6OmNyZWF0ZShT
UUxFcnJvcjo6VU5LTk9XTl9FUlIsICJ1bmtub3duIGVycm9yIG9jY3VycmVkIGR1cmluZyB0cmFu
c2FjdGlvbiBwb3N0ZmxpZ2h0Iik7CisgICAgICAgICAgICBtX3RyYW5zYWN0aW9uRXJyb3IgPSBT
UUxFcnJvcjo6Y3JlYXRlKFNRTEVycm9yOjpVTktOT1dOX0VSUiwgInVua25vd24gZXJyb3Igb2Nj
dXJyZWQgZHVyaW5nIHRyYW5zYWN0aW9uIHBvc3RmbGlnaHQiX3MpOwogCiAgICAgICAgIGhhbmRs
ZVRyYW5zYWN0aW9uRXJyb3IoKTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcAppbmRleCBmOTczZTViZDNiOTBlM2E0
Y2M3MzUyMTRkOWEzMTlhZGY5MjFlNGI2Li42OWQyZTU0NzM1YTMwNjQ2Mzg0YzdlZmI3ZWE2NDk4
N2VjMzQwMmNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMv
V2ViU29ja2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2Vi
U29ja2V0LmNwcApAQCAtMTM3LDkgKzEzNyw5IEBAIHN0YXRpYyB1bnNpZ25lZCBzYXR1cmF0ZUFk
ZCh1bnNpZ25lZCBhLCB1bnNpZ25lZCBiKQogICAgIHJldHVybiBhICsgYjsKIH0KIAotY29uc3Qg
Y2hhciogV2ViU29ja2V0OjpzdWJwcm90b2NvbFNlcGFyYXRvcigpCitBU0NJSUxpdGVyYWwgV2Vi
U29ja2V0OjpzdWJwcm90b2NvbFNlcGFyYXRvcigpCiB7Ci0gICAgcmV0dXJuICIsICI7CisgICAg
cmV0dXJuICIsICJfczsKIH0KIAogV2ViU29ja2V0OjpXZWJTb2NrZXQoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYgY29udGV4dCkKQEAgLTQzMCw3ICs0MzAsNyBAQCBFeGNlcHRpb25Pcjx2b2lkPiBX
ZWJTb2NrZXQ6OmNsb3NlKHN0ZDo6b3B0aW9uYWw8dW5zaWduZWQgc2hvcnQ+IG9wdGlvbmFsQ29k
ZSwgYwogICAgICAgICByZXR1cm4geyB9OwogICAgIGlmIChtX3N0YXRlID09IENPTk5FQ1RJTkcp
IHsKICAgICAgICAgbV9zdGF0ZSA9IENMT1NJTkc7Ci0gICAgICAgIG1fY2hhbm5lbC0+ZmFpbCgi
V2ViU29ja2V0IGlzIGNsb3NlZCBiZWZvcmUgdGhlIGNvbm5lY3Rpb24gaXMgZXN0YWJsaXNoZWQu
Iik7CisgICAgICAgIG1fY2hhbm5lbC0+ZmFpbCgiV2ViU29ja2V0IGlzIGNsb3NlZCBiZWZvcmUg
dGhlIGNvbm5lY3Rpb24gaXMgZXN0YWJsaXNoZWQuIl9zKTsKICAgICAgICAgcmV0dXJuIHsgfTsK
ICAgICB9CiAgICAgbV9zdGF0ZSA9IENMT1NJTkc7CkBAIC01MjAsNyArNTIwLDcgQEAgdm9pZCBX
ZWJTb2NrZXQ6OnN1c3BlbmQoUmVhc29uRm9yU3VzcGVuc2lvbiByZWFzb24pCiAKICAgICBpZiAo
cmVhc29uID09IFJlYXNvbkZvclN1c3BlbnNpb246OkJhY2tGb3J3YXJkQ2FjaGUpIHsKICAgICAg
ICAgLy8gVGhpcyB3aWxsIGNhdXNlIGRpZENsb3NlKCkgdG8gYmUgY2FsbGVkLgotICAgICAgICBt
X2NoYW5uZWwtPmZhaWwoIldlYlNvY2tldCBpcyBjbG9zZWQgZHVlIHRvIHN1c3BlbnNpb24uIik7
CisgICAgICAgIG1fY2hhbm5lbC0+ZmFpbCgiV2ViU29ja2V0IGlzIGNsb3NlZCBkdWUgdG8gc3Vz
cGVuc2lvbi4iX3MpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmgKaW5kZXggZTY4NjNlNDZkYTA3ZDE4YjZk
OTE1ZWIxNWMyNGNkZjIyZGI2YTZjYi4uZWZmYzA2OGJiZjYyNjVlN2EzYjE1NWM5NGZmNDQ4ZTc2
NmQxZTM2NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dl
YlNvY2tldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2Nr
ZXQuaApAQCAtNTEsNyArNTEsNyBAQCBjbGFzcyBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDsK
IGNsYXNzIFdlYlNvY2tldCBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYlNvY2tldD4sIHB1
YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVEYXRhLCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBw
cml2YXRlIFdlYlNvY2tldENoYW5uZWxDbGllbnQgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FU
RUQoV2ViU29ja2V0KTsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgY2hhciogc3VicHJvdG9j
b2xTZXBhcmF0b3IoKTsKKyAgICBzdGF0aWMgQVNDSUlMaXRlcmFsIHN1YnByb3RvY29sU2VwYXJh
dG9yKCk7CiAKICAgICBzdGF0aWMgRXhjZXB0aW9uT3I8UmVmPFdlYlNvY2tldD4+IGNyZWF0ZShT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiwgY29uc3QgU3RyaW5nJiB1cmwpOwogICAgIHN0YXRpYyBF
eGNlcHRpb25PcjxSZWY8V2ViU29ja2V0Pj4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
LCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgU3RyaW5nJiBwcm90b2NvbCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAK
aW5kZXggZGY1NjM1OWM2ZmRhMDUyMTAzZDk3YjNkOGE1ZDEwODQ5MTk3NWY1Yi4uNjliOGUyYTc3
NTRhODk3OGMxOTU0ODUxZmYyNmM5OTYxNTJmNWRjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcApAQCAtMjg3LDcg
KzI4Nyw3IEBAIHZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6ZGlkT3BlblNvY2tldFN0cmVhbShTb2Nr
ZXRTdHJlYW1IYW5kbGUmIGhhbmRsZSkKICAgICAgICAgY29va2llUmVxdWVzdEhlYWRlckZpZWxk
UHJveHkgPSBDb29raWVKYXI6OmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5KCptX2RvY3Vt
ZW50LCBtX2hhbmRzaGFrZS0+aHR0cFVSTEZvckF1dGhlbnRpY2F0aW9uQW5kQ29va2llcygpKTsK
ICAgICBoYW5kbGUuc2VuZEhhbmRzaGFrZShXVEZNb3ZlKGhhbmRzaGFrZU1lc3NhZ2UpLCBXVEZN
b3ZlKGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5KSwgW3RoaXMsIHByb3RlY3RlZFRoaXMg
PSBSZWYgeyAqdGhpcyB9XSAoYm9vbCBzdWNjZXNzLCBib29sIGRpZEFjY2Vzc1NlY3VyZUNvb2tp
ZXMpIHsKICAgICAgICAgaWYgKCFzdWNjZXNzKQotICAgICAgICAgICAgZmFpbCgiRmFpbGVkIHRv
IHNlbmQgV2ViU29ja2V0IGhhbmRzaGFrZS4iKTsKKyAgICAgICAgICAgIGZhaWwoIkZhaWxlZCB0
byBzZW5kIFdlYlNvY2tldCBoYW5kc2hha2UuIl9zKTsKIAogICAgICAgICBpZiAoZGlkQWNjZXNz
U2VjdXJlQ29va2llcyAmJiBtX2RvY3VtZW50KQogICAgICAgICAgICAgbV9kb2N1bWVudC0+c2V0
U2VjdXJlQ29va2llc0FjY2Vzc2VkKCk7CkBAIC0zNDAsNyArMzQwLDcgQEAgdm9pZCBXZWJTb2Nr
ZXRDaGFubmVsOjpkaWRSZWNlaXZlU29ja2V0U3RyZWFtRGF0YShTb2NrZXRTdHJlYW1IYW5kbGUm
IGhhbmRsZSwgY28KICAgICAgICAgcmV0dXJuOwogICAgIGlmICghYXBwZW5kVG9CdWZmZXIoZGF0
YSwgbGVuZ3RoKSkgewogICAgICAgICBtX3Nob3VsZERpc2NhcmRSZWNlaXZlZERhdGEgPSB0cnVl
OwotICAgICAgICBmYWlsKCJSYW4gb3V0IG9mIG1lbW9yeSB3aGlsZSByZWNlaXZpbmcgV2ViU29j
a2V0IGRhdGEuIik7CisgICAgICAgIGZhaWwoIlJhbiBvdXQgb2YgbWVtb3J5IHdoaWxlIHJlY2Vp
dmluZyBXZWJTb2NrZXQgZGF0YS4iX3MpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIHdo
aWxlICghbV9zdXNwZW5kZWQgJiYgbV9jbGllbnQgJiYgIW1fYnVmZmVyLmlzRW1wdHkoKSkgewpA
QCAtNTcxLDcgKzU3MSw3IEBAIGJvb2wgV2ViU29ja2V0Q2hhbm5lbDo6cHJvY2Vzc0ZyYW1lKCkK
ICAgICB9CiAKICAgICBpZiAoZnJhbWUubWFza2VkKSB7Ci0gICAgICAgIGZhaWwoIkEgc2VydmVy
IG11c3Qgbm90IG1hc2sgYW55IGZyYW1lcyB0aGF0IGl0IHNlbmRzIHRvIHRoZSBjbGllbnQuIik7
CisgICAgICAgIGZhaWwoIkEgc2VydmVyIG11c3Qgbm90IG1hc2sgYW55IGZyYW1lcyB0aGF0IGl0
IHNlbmRzIHRvIHRoZSBjbGllbnQuIl9zKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0K
IApAQCAtNTkxLDcgKzU5MSw3IEBAIGJvb2wgV2ViU29ja2V0Q2hhbm5lbDo6cHJvY2Vzc0ZyYW1l
KCkKICAgICAvLyBBIG5ldyBkYXRhIGZyYW1lIGlzIHJlY2VpdmVkIGJlZm9yZSB0aGUgcHJldmlv
dXMgY29udGludW91cyBmcmFtZSBmaW5pc2hlcy4KICAgICAvLyBOb3RlIHRoYXQgY29udHJvbCBm
cmFtZXMgYXJlIGFsbG93ZWQgdG8gY29tZSBpbiB0aGUgbWlkZGxlIG9mIGNvbnRpbnVvdXMgZnJh
bWVzLgogICAgIGlmIChtX2hhc0NvbnRpbnVvdXNGcmFtZSAmJiBmcmFtZS5vcENvZGUgIT0gV2Vi
U29ja2V0RnJhbWU6Ok9wQ29kZUNvbnRpbnVhdGlvbiAmJiAhV2ViU29ja2V0RnJhbWU6OmlzQ29u
dHJvbE9wQ29kZShmcmFtZS5vcENvZGUpKSB7Ci0gICAgICAgIGZhaWwoIlJlY2VpdmVkIG5ldyBk
YXRhIGZyYW1lIGJ1dCBwcmV2aW91cyBjb250aW51b3VzIGZyYW1lIGlzIHVuZmluaXNoZWQuIik7
CisgICAgICAgIGZhaWwoIlJlY2VpdmVkIG5ldyBkYXRhIGZyYW1lIGJ1dCBwcmV2aW91cyBjb250
aW51b3VzIGZyYW1lIGlzIHVuZmluaXNoZWQuIl9zKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIH0KIApAQCAtNjAxLDcgKzYwMSw3IEBAIGJvb2wgV2ViU29ja2V0Q2hhbm5lbDo6cHJvY2Vz
c0ZyYW1lKCkKICAgICBjYXNlIFdlYlNvY2tldEZyYW1lOjpPcENvZGVDb250aW51YXRpb246CiAg
ICAgICAgIC8vIEFuIHVuZXhwZWN0ZWQgY29udGludWF0aW9uIGZyYW1lIGlzIHJlY2VpdmVkIHdp
dGhvdXQgYW55IGxlYWRpbmcgZnJhbWUuCiAgICAgICAgIGlmICghbV9oYXNDb250aW51b3VzRnJh
bWUpIHsKLSAgICAgICAgICAgIGZhaWwoIlJlY2VpdmVkIHVuZXhwZWN0ZWQgY29udGludWF0aW9u
IGZyYW1lLiIpOworICAgICAgICAgICAgZmFpbCgiUmVjZWl2ZWQgdW5leHBlY3RlZCBjb250aW51
YXRpb24gZnJhbWUuIl9zKTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQog
ICAgICAgICBtX2NvbnRpbnVvdXNGcmFtZURhdGEuYXBwZW5kKGZyYW1lLnBheWxvYWQsIGZyYW1l
LnBheWxvYWRMZW5ndGgpOwpAQCAtNjIwLDcgKzYyMCw3IEBAIGJvb2wgV2ViU29ja2V0Q2hhbm5l
bDo6cHJvY2Vzc0ZyYW1lKCkKICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAg
ICAgIG1lc3NhZ2UgPSBlbXB0eVN0cmluZygpOwogICAgICAgICAgICAgICAgIGlmIChtZXNzYWdl
LmlzTnVsbCgpKQotICAgICAgICAgICAgICAgICAgICBmYWlsKCJDb3VsZCBub3QgZGVjb2RlIGEg
dGV4dCBmcmFtZSBhcyBVVEYtOC4iKTsKKyAgICAgICAgICAgICAgICAgICAgZmFpbCgiQ291bGQg
bm90IGRlY29kZSBhIHRleHQgZnJhbWUgYXMgVVRGLTguIl9zKTsKICAgICAgICAgICAgICAgICBl
bHNlCiAgICAgICAgICAgICAgICAgICAgIG1fY2xpZW50LT5kaWRSZWNlaXZlTWVzc2FnZShXVEZN
b3ZlKG1lc3NhZ2UpKTsKICAgICAgICAgICAgIH0gZWxzZSBpZiAobV9jb250aW51b3VzRnJhbWVP
cENvZGUgPT0gV2ViU29ja2V0RnJhbWU6Ok9wQ29kZUJpbmFyeSkKQEAgLTYzNyw3ICs2MzcsNyBA
QCBib29sIFdlYlNvY2tldENoYW5uZWw6OnByb2Nlc3NGcmFtZSgpCiAgICAgICAgICAgICAgICAg
bWVzc2FnZSA9IGVtcHR5U3RyaW5nKCk7CiAgICAgICAgICAgICBza2lwQnVmZmVyKGZyYW1lRW5k
IC0gbV9idWZmZXIuZGF0YSgpKTsKICAgICAgICAgICAgIGlmIChtZXNzYWdlLmlzTnVsbCgpKQot
ICAgICAgICAgICAgICAgIGZhaWwoIkNvdWxkIG5vdCBkZWNvZGUgYSB0ZXh0IGZyYW1lIGFzIFVU
Ri04LiIpOworICAgICAgICAgICAgICAgIGZhaWwoIkNvdWxkIG5vdCBkZWNvZGUgYSB0ZXh0IGZy
YW1lIGFzIFVURi04LiJfcyk7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgbV9j
bGllbnQtPmRpZFJlY2VpdmVNZXNzYWdlKFdURk1vdmUobWVzc2FnZSkpOwogICAgICAgICB9IGVs
c2UgewpAQCAtNjY5LDEzICs2NjksMTMgQEAgYm9vbCBXZWJTb2NrZXRDaGFubmVsOjpwcm9jZXNz
RnJhbWUoKQogICAgICAgICAgICAgbV9jbG9zZUV2ZW50Q29kZSA9IENsb3NlRXZlbnRDb2RlTm9T
dGF0dXNSY3ZkOwogICAgICAgICBlbHNlIGlmIChmcmFtZS5wYXlsb2FkTGVuZ3RoID09IDEpIHsK
ICAgICAgICAgICAgIG1fY2xvc2VFdmVudENvZGUgPSBDbG9zZUV2ZW50Q29kZUFibm9ybWFsQ2xv
c3VyZTsKLSAgICAgICAgICAgIGZhaWwoIlJlY2VpdmVkIGEgYnJva2VuIGNsb3NlIGZyYW1lIGNv
bnRhaW5pbmcgYW4gaW52YWxpZCBzaXplIGJvZHkuIik7CisgICAgICAgICAgICBmYWlsKCJSZWNl
aXZlZCBhIGJyb2tlbiBjbG9zZSBmcmFtZSBjb250YWluaW5nIGFuIGludmFsaWQgc2l6ZSBib2R5
LiJfcyk7CiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0gZWxzZSB7CiAgICAg
ICAgICAgICBtX2Nsb3NlRXZlbnRDb2RlID0gZnJhbWUucGF5bG9hZFswXSA8PCA4IHwgZnJhbWUu
cGF5bG9hZFsxXTsKICAgICAgICAgICAgIGlmIChtX2Nsb3NlRXZlbnRDb2RlID09IENsb3NlRXZl
bnRDb2RlTm9TdGF0dXNSY3ZkIHx8IG1fY2xvc2VFdmVudENvZGUgPT0gQ2xvc2VFdmVudENvZGVB
Ym5vcm1hbENsb3N1cmUgfHwgbV9jbG9zZUV2ZW50Q29kZSA9PSBDbG9zZUV2ZW50Q29kZVRMU0hh
bmRzaGFrZSkgewogICAgICAgICAgICAgICAgIG1fY2xvc2VFdmVudENvZGUgPSBDbG9zZUV2ZW50
Q29kZUFibm9ybWFsQ2xvc3VyZTsKLSAgICAgICAgICAgICAgICBmYWlsKCJSZWNlaXZlZCBhIGJy
b2tlbiBjbG9zZSBmcmFtZSBjb250YWluaW5nIGEgcmVzZXJ2ZWQgc3RhdHVzIGNvZGUuIik7Cisg
ICAgICAgICAgICAgICAgZmFpbCgiUmVjZWl2ZWQgYSBicm9rZW4gY2xvc2UgZnJhbWUgY29udGFp
bmluZyBhIHJlc2VydmVkIHN0YXR1cyBjb2RlLiJfcyk7CiAgICAgICAgICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgICAgICAgICAgfQogICAgICAgICB9CkBAIC03NjEsNyArNzYxLDcgQEAgdm9p
ZCBXZWJTb2NrZXRDaGFubmVsOjpwcm9jZXNzT3V0Z29pbmdGcmFtZVF1ZXVlKCkKICAgICAgICAg
Y2FzZSBRdWV1ZWRGcmFtZVR5cGVTdHJpbmc6IHsKICAgICAgICAgICAgIHNlbmRGcmFtZShmcmFt
ZS0+b3BDb2RlLCBmcmFtZS0+c3RyaW5nRGF0YS5kYXRhQXNVSW50OFB0cigpLCBmcmFtZS0+c3Ry
aW5nRGF0YS5sZW5ndGgoKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9XSAo
Ym9vbCBzdWNjZXNzKSB7CiAgICAgICAgICAgICAgICAgaWYgKCFzdWNjZXNzKQotICAgICAgICAg
ICAgICAgICAgICBmYWlsKCJGYWlsZWQgdG8gc2VuZCBXZWJTb2NrZXQgZnJhbWUuIik7CisgICAg
ICAgICAgICAgICAgICAgIGZhaWwoIkZhaWxlZCB0byBzZW5kIFdlYlNvY2tldCBmcmFtZS4iX3Mp
OwogICAgICAgICAgICAgfSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpAQCAtNzY5
LDcgKzc2OSw3IEBAIHZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6cHJvY2Vzc091dGdvaW5nRnJhbWVR
dWV1ZSgpCiAgICAgICAgIGNhc2UgUXVldWVkRnJhbWVUeXBlVmVjdG9yOgogICAgICAgICAgICAg
c2VuZEZyYW1lKGZyYW1lLT5vcENvZGUsIGZyYW1lLT52ZWN0b3JEYXRhLmRhdGEoKSwgZnJhbWUt
PnZlY3RvckRhdGEuc2l6ZSgpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH1d
IChib29sIHN1Y2Nlc3MpIHsKICAgICAgICAgICAgICAgICBpZiAoIXN1Y2Nlc3MpCi0gICAgICAg
ICAgICAgICAgICAgIGZhaWwoIkZhaWxlZCB0byBzZW5kIFdlYlNvY2tldCBmcmFtZS4iKTsKKyAg
ICAgICAgICAgICAgICAgICAgZmFpbCgiRmFpbGVkIHRvIHNlbmQgV2ViU29ja2V0IGZyYW1lLiJf
cyk7CiAgICAgICAgICAgICB9KTsKICAgICAgICAgICAgIGJyZWFrOwogCkBAIC03OTYsNyArNzk2
LDcgQEAgdm9pZCBXZWJTb2NrZXRDaGFubmVsOjpwcm9jZXNzT3V0Z29pbmdGcmFtZVF1ZXVlKCkK
ICAgICAgICAgICAgICAgICBtX2Jsb2JMb2FkZXJTdGF0dXMgPSBCbG9iTG9hZGVyTm90U3RhcnRl
ZDsKICAgICAgICAgICAgICAgICBzZW5kRnJhbWUoZnJhbWUtPm9wQ29kZSwgc3RhdGljX2Nhc3Q8
Y29uc3QgdWludDhfdCo+KHJlc3VsdC0+ZGF0YSgpKSwgcmVzdWx0LT5ieXRlTGVuZ3RoKCksIFt0
aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfV0gKGJvb2wgc3VjY2VzcykgewogICAg
ICAgICAgICAgICAgICAgICBpZiAoIXN1Y2Nlc3MpCi0gICAgICAgICAgICAgICAgICAgICAgICBm
YWlsKCJGYWlsZWQgdG8gc2VuZCBXZWJTb2NrZXQgZnJhbWUuIik7CisgICAgICAgICAgICAgICAg
ICAgICAgICBmYWlsKCJGYWlsZWQgdG8gc2VuZCBXZWJTb2NrZXQgZnJhbWUuIl9zKTsKICAgICAg
ICAgICAgICAgICB9KTsKICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXREZWZs
YXRlRnJhbWVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2Nr
ZXREZWZsYXRlRnJhbWVyLmNwcAppbmRleCAwMWZkZmUwMjllNDZmY2U4NjJkNWU2MTZjZmM0OTVk
NjljYzYxNDY1Li5hODdmZTVkN2FhZTVlODBkMzk3NTQ5OWM0YzU2YTZlMDE3ZGYxMWRiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0RGVmbGF0
ZUZyYW1lci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNv
Y2tldERlZmxhdGVGcmFtZXIuY3BwCkBAIC03Niw3ICs3Niw3IEBAIGJvb2wgV2ViU29ja2V0RXh0
ZW5zaW9uRGVmbGF0ZUZyYW1lOjpwcm9jZXNzUmVzcG9uc2UoY29uc3QgSGFzaE1hcDxTdHJpbmcs
IFN0cmluCiAKICAgICB1bnNpZ25lZCBleHBlY3RlZE51bVBhcmFtZXRlcnMgPSAwOwogICAgIGlu
dCB3aW5kb3dCaXRzID0gMTU7Ci0gICAgYXV0byBwYXJhbWV0ZXIgPSBzZXJ2ZXJQYXJhbWV0ZXJz
LmZpbmQoIm1heF93aW5kb3dfYml0cyIpOworICAgIGF1dG8gcGFyYW1ldGVyID0gc2VydmVyUGFy
YW1ldGVycy5maW5kKCJtYXhfd2luZG93X2JpdHMiX3MpOwogICAgIGlmIChwYXJhbWV0ZXIgIT0g
c2VydmVyUGFyYW1ldGVycy5lbmQoKSkgewogICAgICAgICB3aW5kb3dCaXRzID0gcGFyc2VJbnRl
Z2VyQWxsb3dpbmdUcmFpbGluZ0p1bms8aW50PihwYXJhbWV0ZXItPnZhbHVlKS52YWx1ZV9vcigw
KTsKICAgICAgICAgaWYgKHdpbmRvd0JpdHMgPCA4IHx8IHdpbmRvd0JpdHMgPiAxNSkgewpAQCAt
ODcsNyArODcsNyBAQCBib29sIFdlYlNvY2tldEV4dGVuc2lvbkRlZmxhdGVGcmFtZTo6cHJvY2Vz
c1Jlc3BvbnNlKGNvbnN0IEhhc2hNYXA8U3RyaW5nLCBTdHJpbgogICAgIH0KIAogICAgIFdlYlNv
Y2tldERlZmxhdGVyOjpDb250ZXh0VGFrZU92ZXJNb2RlIG1vZGUgPSBXZWJTb2NrZXREZWZsYXRl
cjo6VGFrZU92ZXJDb250ZXh0OwotICAgIHBhcmFtZXRlciA9IHNlcnZlclBhcmFtZXRlcnMuZmlu
ZCgibm9fY29udGV4dF90YWtlb3ZlciIpOworICAgIHBhcmFtZXRlciA9IHNlcnZlclBhcmFtZXRl
cnMuZmluZCgibm9fY29udGV4dF90YWtlb3ZlciJfcyk7CiAgICAgaWYgKHBhcmFtZXRlciAhPSBz
ZXJ2ZXJQYXJhbWV0ZXJzLmVuZCgpKSB7CiAgICAgICAgIGlmICghcGFyYW1ldGVyLT52YWx1ZS5p
c051bGwoKSkgewogICAgICAgICAgICAgbV9mYWlsdXJlUmVhc29uID0gIlJlY2VpdmVkIGludmFs
aWQgbm9fY29udGV4dF90YWtlb3ZlciBwYXJhbWV0ZXIiX3M7CkBAIC0xNjEsNyArMTYxLDcgQEAg
c3RkOjp1bmlxdWVfcHRyPERlZmxhdGVSZXN1bHRIb2xkZXI+IFdlYlNvY2tldERlZmxhdGVGcmFt
ZXI6OmRlZmxhdGUoV2ViU29ja2V0RnIKICAgICBpZiAoIWVuYWJsZWQoKSB8fCAhV2ViU29ja2V0
RnJhbWU6OmlzTm9uQ29udHJvbE9wQ29kZShmcmFtZS5vcENvZGUpIHx8ICFmcmFtZS5wYXlsb2Fk
TGVuZ3RoKQogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIGlmICghbV9kZWZsYXRlci0+YWRk
Qnl0ZXMoZnJhbWUucGF5bG9hZCwgZnJhbWUucGF5bG9hZExlbmd0aCkgfHwgIW1fZGVmbGF0ZXIt
PmZpbmlzaCgpKSB7Ci0gICAgICAgIHJlc3VsdC0+ZmFpbCgiRmFpbGVkIHRvIGNvbXByZXNzIGZy
YW1lIik7CisgICAgICAgIHJlc3VsdC0+ZmFpbCgiRmFpbGVkIHRvIGNvbXByZXNzIGZyYW1lIl9z
KTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CiAgICAgZnJhbWUuY29tcHJlc3MgPSB0
cnVlOwpAQCAtMTgwLDE3ICsxODAsMTcgQEAgc3RkOjp1bmlxdWVfcHRyPEluZmxhdGVSZXN1bHRI
b2xkZXI+IFdlYlNvY2tldERlZmxhdGVGcmFtZXI6OmluZmxhdGUoV2ViU29ja2V0RnIKIHsKICAg
ICBhdXRvIHJlc3VsdCA9IG1ha2VVbmlxdWU8SW5mbGF0ZVJlc3VsdEhvbGRlcj4oKnRoaXMpOwog
ICAgIGlmICghZW5hYmxlZCgpICYmIGZyYW1lLmNvbXByZXNzKSB7Ci0gICAgICAgIHJlc3VsdC0+
ZmFpbCgiQ29tcHJlc3NlZCBiaXQgbXVzdCBiZSAwIGlmIG5vIG5lZ290aWF0ZWQgZGVmbGF0ZS1m
cmFtZSBleHRlbnNpb24iKTsKKyAgICAgICAgcmVzdWx0LT5mYWlsKCJDb21wcmVzc2VkIGJpdCBt
dXN0IGJlIDAgaWYgbm8gbmVnb3RpYXRlZCBkZWZsYXRlLWZyYW1lIGV4dGVuc2lvbiJfcyk7CiAg
ICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfQogICAgIGlmICghZnJhbWUuY29tcHJlc3MpCiAg
ICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgaWYgKCFXZWJTb2NrZXRGcmFtZTo6aXNOb25Db250
cm9sT3BDb2RlKGZyYW1lLm9wQ29kZSkpIHsKLSAgICAgICAgcmVzdWx0LT5mYWlsKCJSZWNlaXZl
ZCB1bmV4cGVjdGVkIGNvbXByZXNzZWQgZnJhbWUiKTsKKyAgICAgICAgcmVzdWx0LT5mYWlsKCJS
ZWNlaXZlZCB1bmV4cGVjdGVkIGNvbXByZXNzZWQgZnJhbWUiX3MpOwogICAgICAgICByZXR1cm4g
cmVzdWx0OwogICAgIH0KICAgICBpZiAoIW1faW5mbGF0ZXItPmFkZEJ5dGVzKGZyYW1lLnBheWxv
YWQsIGZyYW1lLnBheWxvYWRMZW5ndGgpIHx8ICFtX2luZmxhdGVyLT5maW5pc2goKSkgewotICAg
ICAgICByZXN1bHQtPmZhaWwoIkZhaWxlZCB0byBkZWNvbXByZXNzIGZyYW1lIik7CisgICAgICAg
IHJlc3VsdC0+ZmFpbCgiRmFpbGVkIHRvIGRlY29tcHJlc3MgZnJhbWUiX3MpOwogICAgICAgICBy
ZXR1cm4gcmVzdWx0OwogICAgIH0KICAgICBmcmFtZS5jb21wcmVzcyA9IGZhbHNlOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEV4dGVuc2lv
bkRpc3BhdGNoZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNv
Y2tldEV4dGVuc2lvbkRpc3BhdGNoZXIuY3BwCmluZGV4IDdhZjJjMzc5MWEwYWU4ZDZlZTllOTI5
OTgzNTdlODYwYWZiYjc1ZGQuLmU1Y2YxMjUxMWVmM2U1NjRmNjNiODVkOGNiMGJiMWVlNDBjNWRh
M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2Nr
ZXRFeHRlbnNpb25EaXNwYXRjaGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnNvY2tldHMvV2ViU29ja2V0RXh0ZW5zaW9uRGlzcGF0Y2hlci5jcHAKQEAgLTkzLDcgKzkzLDcg
QEAgYm9vbCBXZWJTb2NrZXRFeHRlbnNpb25EaXNwYXRjaGVyOjpwcm9jZXNzSGVhZGVyVmFsdWUo
Y29uc3QgU3RyaW5nJiBoZWFkZXJWYWx1ZSkKIAogICAgIC8vIElmIHdlIGRvbid0IHNlbmQgU2Vj
LVdlYlNvY2tldC1FeHRlbnNpb25zIGhlYWRlciwgdGhlIHNlcnZlciBzaG91bGQgbm90IHJldHVy
biB0aGUgaGVhZGVyLgogICAgIGlmICghbV9wcm9jZXNzb3JzLnNpemUoKSkgewotICAgICAgICBm
YWlsKCJSZWNlaXZlZCB1bmV4cGVjdGVkIFNlYy1XZWJTb2NrZXQtRXh0ZW5zaW9ucyBoZWFkZXIi
KTsKKyAgICAgICAgZmFpbCgiUmVjZWl2ZWQgdW5leHBlY3RlZCBTZWMtV2ViU29ja2V0LUV4dGVu
c2lvbnMgaGVhZGVyIl9zKTsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIApAQCAtMTAz
LDcgKzEwMyw3IEBAIGJvb2wgV2ViU29ja2V0RXh0ZW5zaW9uRGlzcGF0Y2hlcjo6cHJvY2Vzc0hl
YWRlclZhbHVlKGNvbnN0IFN0cmluZyYgaGVhZGVyVmFsdWUpCiAgICAgICAgIFN0cmluZyBleHRl
bnNpb25Ub2tlbjsKICAgICAgICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gZXh0ZW5zaW9uUGFy
YW1ldGVyczsKICAgICAgICAgaWYgKCFwYXJzZXIucGFyc2VFeHRlbnNpb24oZXh0ZW5zaW9uVG9r
ZW4sIGV4dGVuc2lvblBhcmFtZXRlcnMpKSB7Ci0gICAgICAgICAgICBmYWlsKCJTZWMtV2ViU29j
a2V0LUV4dGVuc2lvbnMgaGVhZGVyIGlzIGludmFsaWQiKTsKKyAgICAgICAgICAgIGZhaWwoIlNl
Yy1XZWJTb2NrZXQtRXh0ZW5zaW9ucyBoZWFkZXIgaXMgaW52YWxpZCJfcyk7CiAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldEZyYW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRGcmFtZS5jcHAKaW5kZXggZTM5ZTAxOWFlMDJkOTY3
MjM4Zjk2NTcyZDUzZWUyM2MzNDU2ZjIzMy4uYmExZTYyNTQ5MTdhZmY0ZmE3YjgyYzY4ODRmZWIy
YWM5MDcwZDNhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRz
L1dlYlNvY2tldEZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tl
dHMvV2ViU29ja2V0RnJhbWUuY3BwCkBAIC04MiwxMSArODIsMTEgQEAgV2ViU29ja2V0RnJhbWU6
OlBhcnNlRnJhbWVSZXN1bHQgV2ViU29ja2V0RnJhbWU6OnBhcnNlRnJhbWUodWludDhfdCogZGF0
YSwgc2l6ZV8KICAgICAgICAgICAgIHBheWxvYWRMZW5ndGg2NCB8PSBzdGF0aWNfY2FzdDx1aW50
OF90PigqcCsrKTsKICAgICAgICAgfQogICAgICAgICBpZiAoZXh0ZW5kZWRQYXlsb2FkTGVuZ3Ro
U2l6ZSA9PSAyICYmIHBheWxvYWRMZW5ndGg2NCA8PSBtYXhQYXlsb2FkTGVuZ3RoV2l0aG91dEV4
dGVuZGVkTGVuZ3RoRmllbGQpIHsKLSAgICAgICAgICAgIGVycm9yU3RyaW5nID0gIlRoZSBtaW5p
bWFsIG51bWJlciBvZiBieXRlcyBNVVNUIGJlIHVzZWQgdG8gZW5jb2RlIHRoZSBsZW5ndGgiOwor
ICAgICAgICAgICAgZXJyb3JTdHJpbmcgPSAiVGhlIG1pbmltYWwgbnVtYmVyIG9mIGJ5dGVzIE1V
U1QgYmUgdXNlZCB0byBlbmNvZGUgdGhlIGxlbmd0aCJfczsKICAgICAgICAgICAgIHJldHVybiBG
cmFtZUVycm9yOwogICAgICAgICB9CiAgICAgICAgIGlmIChleHRlbmRlZFBheWxvYWRMZW5ndGhT
aXplID09IDggJiYgcGF5bG9hZExlbmd0aDY0IDw9IDB4RkZGRikgewotICAgICAgICAgICAgZXJy
b3JTdHJpbmcgPSAiVGhlIG1pbmltYWwgbnVtYmVyIG9mIGJ5dGVzIE1VU1QgYmUgdXNlZCB0byBl
bmNvZGUgdGhlIGxlbmd0aCI7CisgICAgICAgICAgICBlcnJvclN0cmluZyA9ICJUaGUgbWluaW1h
bCBudW1iZXIgb2YgYnl0ZXMgTVVTVCBiZSB1c2VkIHRvIGVuY29kZSB0aGUgbGVuZ3RoIl9zOwog
ICAgICAgICAgICAgcmV0dXJuIEZyYW1lRXJyb3I7CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0SGFuZHNoYWtl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hh
a2UuY3BwCmluZGV4IGY3Njk2NzQ5MzM3MjAxN2QzNjNlM2ExMmU3N2Y1NWJkNTAyNTg1ODcuLjNl
NGM1ODExMmEzYzE5ZDJiMjQ4NzM0NjU1MGU1NThjNGVhN2NmMjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hha2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hha2UuY3Bw
CkBAIC01MzYsNyArNTM2LDcgQEAgYm9vbCBXZWJTb2NrZXRIYW5kc2hha2U6OmNoZWNrUmVzcG9u
c2VIZWFkZXJzKCkKICAgICAgICAgICAgIG1fZmFpbHVyZVJlYXNvbiA9ICJFcnJvciBkdXJpbmcg
V2ViU29ja2V0IGhhbmRzaGFrZTogU2VjLVdlYlNvY2tldC1Qcm90b2NvbCBtaXNtYXRjaCJfczsK
ICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQotICAgICAgICBWZWN0b3I8U3Ry
aW5nPiByZXN1bHQgPSBtX2NsaWVudFByb3RvY29sLnNwbGl0KFdlYlNvY2tldDo6c3VicHJvdG9j
b2xTZXBhcmF0b3IoKSk7CisgICAgICAgIFZlY3RvcjxTdHJpbmc+IHJlc3VsdCA9IG1fY2xpZW50
UHJvdG9jb2wuc3BsaXQoU3RyaW5nVmlldyB7IFdlYlNvY2tldDo6c3VicHJvdG9jb2xTZXBhcmF0
b3IoKSB9KTsKICAgICAgICAgaWYgKCFyZXN1bHQuY29udGFpbnMoc2VydmVyV2ViU29ja2V0UHJv
dG9jb2wpKSB7CiAgICAgICAgICAgICBtX2ZhaWx1cmVSZWFzb24gPSAiRXJyb3IgZHVyaW5nIFdl
YlNvY2tldCBoYW5kc2hha2U6IFNlYy1XZWJTb2NrZXQtUHJvdG9jb2wgbWlzbWF0Y2giX3M7CiAg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnhyL1dlYlhSV2ViR0xMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnhyL1dlYlhSV2ViR0xMYXllci5jcHAKaW5kZXggODI2ZGUxNmE3MDY5MWQ0MjBjNTk0NjdkYzRh
NzFkZWRmYjBiNjVjNi4uZDc0MGZiYjg4M2QyNThhZDFlNWRiN2Y2YmJmZDE2NjViNDQ5Yjk4OSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUldlYkdMTGF5ZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJXZWJHTExheWVyLmNw
cApAQCAtNjQsNyArNjQsNyBAQCBzdGF0aWMgRXhjZXB0aW9uT3I8c3RkOjp1bmlxdWVfcHRyPFdl
YlhST3BhcXVlRnJhbWVidWZmZXI+PiBjcmVhdGVPcGFxdWVGcmFtZWJ1ZgogewogICAgIGF1dG8g
ZGV2aWNlID0gc2Vzc2lvbi5kZXZpY2UoKTsKICAgICBpZiAoIWRldmljZSkKLSAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IE9wZXJhdGlvbkVycm9yLCAiQ2Fubm90IGNyZWF0ZSBhbiBYUldlYkdM
TGF5ZXIgd2l0aCBhbiBYUlNlc3Npb24gdGhhdCBoYXMgZW5kZWQuIiB9OworICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgT3BlcmF0aW9uRXJyb3IsICJDYW5ub3QgY3JlYXRlIGFuIFhSV2ViR0xM
YXllciB3aXRoIGFuIFhSU2Vzc2lvbiB0aGF0IGhhcyBlbmRlZC4iX3MgfTsKIAogICAgIC8vIDku
MS4gSW5pdGlhbGl6ZSBsYXllcuKAmXMgYW50aWFsaWFzIHRvIGxheWVySW5pdOKAmXMgYW50aWFs
aWFzIHZhbHVlLgogICAgIC8vIDkuMi4gTGV0IGZyYW1lYnVmZmVyU2l6ZSBiZSB0aGUgcmVjb21t
ZW5kZWQgV2ViR0wgZnJhbWVidWZmZXIgcmVzb2x1dGlvbiBtdWx0aXBsaWVkIGJ5IGxheWVySW5p
dCdzIGZyYW1lYnVmZmVyU2NhbGVGYWN0b3IuCkBAIC04Miw3ICs4Miw3IEBAIHN0YXRpYyBFeGNl
cHRpb25PcjxzdGQ6OnVuaXF1ZV9wdHI8V2ViWFJPcGFxdWVGcmFtZWJ1ZmZlcj4+IGNyZWF0ZU9w
YXF1ZUZyYW1lYnVmCiAgICAgLy8gOS41LiBJZiBsYXllcuKAmXMgcmVzb3VyY2VzIHdlcmUgdW5h
YmxlIHRvIGJlIGNyZWF0ZWQgZm9yIGFueSByZWFzb24sIHRocm93IGFuIE9wZXJhdGlvbkVycm9y
IGFuZCBhYm9ydCB0aGVzZSBzdGVwcy4KICAgICBhdXRvIGxheWVySGFuZGxlID0gZGV2aWNlLT5j
cmVhdGVMYXllclByb2plY3Rpb24od2lkdGgsIGhlaWdodCwgaW5pdC5hbHBoYSk7CiAgICAgaWYg
KCFsYXllckhhbmRsZSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE9wZXJhdGlvbkVycm9y
LCAiVW5hYmxlIHRvIGFsbG9jYXRlIFhSV2ViR0xMYXllciBHUFUgcmVzb3VyY2VzLiJ9OworICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgT3BlcmF0aW9uRXJyb3IsICJVbmFibGUgdG8gYWxsb2Nh
dGUgWFJXZWJHTExheWVyIEdQVSByZXNvdXJjZXMuIl9zIH07CiAKICAgICBXZWJYUk9wYXF1ZUZy
YW1lYnVmZmVyOjpBdHRyaWJ1dGVzIGF0dHJpYnV0ZXMgewogICAgICAgICAuYWxwaGEgPSBpbml0
LmFscGhhLApAQCAtOTMsNyArOTMsNyBAQCBzdGF0aWMgRXhjZXB0aW9uT3I8c3RkOjp1bmlxdWVf
cHRyPFdlYlhST3BhcXVlRnJhbWVidWZmZXI+PiBjcmVhdGVPcGFxdWVGcmFtZWJ1ZgogCiAgICAg
YXV0byBmcmFtZWJ1ZmZlciA9IFdlYlhST3BhcXVlRnJhbWVidWZmZXI6OmNyZWF0ZSgqbGF5ZXJI
YW5kbGUsIGNvbnRleHQsIFdURk1vdmUoYXR0cmlidXRlcyksIHdpZHRoLCBoZWlnaHQpOwogICAg
IGlmICghZnJhbWVidWZmZXIpCi0gICAgICAgIHJldHVybiBFeGNlcHRpb24geyBPcGVyYXRpb25F
cnJvciwgIlVuYWJsZSB0byBjcmVhdGUgYSBmcmFtZWJ1ZmZlci4iIH07CisgICAgICAgIHJldHVy
biBFeGNlcHRpb24geyBPcGVyYXRpb25FcnJvciwgIlVuYWJsZSB0byBjcmVhdGUgYSBmcmFtZWJ1
ZmZlci4iX3MgfTsKICAgICAKICAgICByZXR1cm4gZnJhbWVidWZmZXI7CiB9CkBAIC0xMDQsNyAr
MTA0LDcgQEAgRXhjZXB0aW9uT3I8UmVmPFdlYlhSV2ViR0xMYXllcj4+IFdlYlhSV2ViR0xMYXll
cjo6Y3JlYXRlKFJlZjxXZWJYUlNlc3Npb24+JiYgc2UKICAgICAvLyAxLiBMZXQgbGF5ZXIgYmUg
YSBuZXcgWFJXZWJHTExheWVyCiAgICAgLy8gMi4gSWYgc2Vzc2lvbuKAmXMgZW5kZWQgdmFsdWUg
aXMgdHJ1ZSwgdGhyb3cgYW4gSW52YWxpZFN0YXRlRXJyb3IgYW5kIGFib3J0IHRoZXNlIHN0ZXBz
LgogICAgIGlmIChzZXNzaW9uLT5lbmRlZCgpKQotICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
SW52YWxpZFN0YXRlRXJyb3IsICJDYW5ub3QgY3JlYXRlIGFuIFhSV2ViR0xMYXllciB3aXRoIGFu
IFhSU2Vzc2lvbiB0aGF0IGhhcyBlbmRlZC4iIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBJbnZhbGlkU3RhdGVFcnJvciwgIkNhbm5vdCBjcmVhdGUgYW4gWFJXZWJHTExheWVyIHdpdGgg
YW4gWFJTZXNzaW9uIHRoYXQgaGFzIGVuZGVkLiJfcyB9OwogCiAgICAgLy8gMy4gSWYgY29udGV4
dCBpcyBsb3N0LCB0aHJvdyBhbiBJbnZhbGlkU3RhdGVFcnJvciBhbmQgYWJvcnQgdGhlc2Ugc3Rl
cHMuCiAgICAgLy8gNC4gSWYgc2Vzc2lvbiBpcyBhbiBpbW1lcnNpdmUgc2Vzc2lvbiBhbmQgY29u
dGV4dOKAmXMgWFIgY29tcGF0aWJsZSBib29sZWFuIGlzIGZhbHNlLCB0aHJvdwpAQCAtMTEzLDEx
ICsxMTMsMTEgQEAgRXhjZXB0aW9uT3I8UmVmPFdlYlhSV2ViR0xMYXllcj4+IFdlYlhSV2ViR0xM
YXllcjo6Y3JlYXRlKFJlZjxXZWJYUlNlc3Npb24+JiYgc2UKICAgICAgICAgWyZdKGNvbnN0IFJl
ZlB0cjxXZWJHTFJlbmRlcmluZ0NvbnRleHRCYXNlPiYgYmFzZUNvbnRleHQpIC0+IEV4Y2VwdGlv
bk9yPFJlZjxXZWJYUldlYkdMTGF5ZXI+PgogICAgICAgICB7CiAgICAgICAgICAgICBpZiAoYmFz
ZUNvbnRleHQtPmlzQ29udGV4dExvc3QoKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJDYW5ub3QgY3JlYXRlIGFuIFhSV2ViR0xMYXllciB3
aXRoIGEgbG9zdCBXZWJHTCBjb250ZXh0LiIgfTsKKyAgICAgICAgICAgICAgICByZXR1cm4gRXhj
ZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJDYW5ub3QgY3JlYXRlIGFuIFhSV2ViR0xMYXll
ciB3aXRoIGEgbG9zdCBXZWJHTCBjb250ZXh0LiJfcyB9OwogCiAgICAgICAgICAgICBhdXRvIG1v
ZGUgPSBzZXNzaW9uLT5tb2RlKCk7CiAgICAgICAgICAgICBpZiAoKG1vZGUgPT0gWFJTZXNzaW9u
TW9kZTo6SW1tZXJzaXZlQXIgfHwgbW9kZSA9PSBYUlNlc3Npb25Nb2RlOjpJbW1lcnNpdmVWcikg
JiYgIWJhc2VDb250ZXh0LT5pc1hSQ29tcGF0aWJsZSgpKQotICAgICAgICAgICAgICAgIHJldHVy
biBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkNhbm5vdCBjcmVhdGUgYW4gWFJXZWJH
TExheWVyIHdpdGggV2ViR0wgY29udGV4dCBub3QgbWFya2VkIGFzIFhSIGNvbXBhdGlibGUuIiB9
OworICAgICAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwg
IkNhbm5vdCBjcmVhdGUgYW4gWFJXZWJHTExheWVyIHdpdGggV2ViR0wgY29udGV4dCBub3QgbWFy
a2VkIGFzIFhSIGNvbXBhdGlibGUuIl9zIH07CiAKIAogICAgICAgICAgICAgLy8gNS4gSW5pdGlh
bGl6ZSBsYXllcuKAmXMgY29udGV4dCB0byBjb250ZXh0LiAoc2VlIGNvbnN0cnVjdG9yKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWEltYWdlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQVhJbWFnZS5jcHAKaW5kZXggNzVmZWE4YjE1MmIxNmU2
OTVkNjRlMjk5MmQ5MzgzYTg2Y2ZlMjJkYS4uMjYzYjc5NjkwYjk3MjkzNzAyNTc5Y2YwZDBlNzgy
ODBkMmZmZjdiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWElt
YWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYSW1hZ2UuY3BwCkBA
IC01Nyw3ICs1Nyw3IEBAIEFjY2Vzc2liaWxpdHlSb2xlIEFYSW1hZ2U6OnJvbGVWYWx1ZSgpIGNv
bnN0CiAKIHN0ZDo6b3B0aW9uYWw8QVhDb3JlT2JqZWN0OjpBY2Nlc3NpYmlsaXR5Q2hpbGRyZW5W
ZWN0b3I+IEFYSW1hZ2U6OmltYWdlT3ZlcmxheUVsZW1lbnRzKCkKIHsKLSAgICBBWFRSQUNFKCJB
WEltYWdlOjppbWFnZU92ZXJsYXlFbGVtZW50cyIpOworICAgIEFYVFJBQ0UoIkFYSW1hZ2U6Omlt
YWdlT3ZlcmxheUVsZW1lbnRzIl9zKTsKIAogICAgIGF1dG8mIGNoaWxkcmVuID0gdGhpcy0+Y2hp
bGRyZW4oKTsKICAgICBpZiAoY2hpbGRyZW4uc2l6ZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYWNjZXNzaWJpbGl0eS9BWExvZ2dlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3Np
YmlsaXR5L0FYTG9nZ2VyLmNwcAppbmRleCAwYjZjY2QzYjdlOTI4Y2U4NzgwYmRjN2YyMWIwOGU3
M2U2NDI5ZTMzLi45NDE0NjE4MmE1YWJkZGIyYzkwZTYxNjFiMGZkZmEwZjZjM2VlNTRkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYTG9nZ2VyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYTG9nZ2VyLmNwcApAQCAtNTUsNyArNTUsNyBA
QCBzdGF0aWMgYm9vbCBzaG91bGRMb2coKQogQVhMb2dnZXI6OkFYTG9nZ2VyKGNvbnN0IFN0cmlu
ZyYgbWV0aG9kTmFtZSkKICAgICA6IG1fbWV0aG9kTmFtZShtZXRob2ROYW1lKQogewotICAgIGlm
IChhdXRvKiBjaGFubmVsID0gZ2V0TG9nQ2hhbm5lbCgiQWNjZXNzaWJpbGl0eSIpKQorICAgIGlm
IChhdXRvKiBjaGFubmVsID0gZ2V0TG9nQ2hhbm5lbCgiQWNjZXNzaWJpbGl0eSJfcykpCiAgICAg
ICAgIGNoYW5uZWwtPmxldmVsID0gV1RGTG9nTGV2ZWw6OkRlYnVnOwogCiAgICAgaWYgKHNob3Vs
ZExvZygpKSB7CkBAIC03OCw2ICs3OCwxMiBAQCB2b2lkIEFYTG9nZ2VyOjpsb2coY29uc3QgU3Ry
aW5nJiBtZXNzYWdlKQogICAgICAgICBMT0coQWNjZXNzaWJpbGl0eSwgIiVzIiwgbWVzc2FnZS51
dGY4KCkuZGF0YSgpKTsKIH0KIAordm9pZCBBWExvZ2dlcjo6bG9nKGNvbnN0IGNoYXIqIG1lc3Nh
Z2UpCit7CisgICAgaWYgKHNob3VsZExvZygpKQorICAgICAgICBMT0coQWNjZXNzaWJpbGl0eSwg
IiVzIiwgbWVzc2FnZSk7Cit9CisKIHZvaWQgQVhMb2dnZXI6OmxvZyhSZWZQdHI8QVhDb3JlT2Jq
ZWN0PiBvYmplY3QpCiB7CiAgICAgaWYgKHNob3VsZExvZygpKSB7CkBAIC0zMjgsMTUgKzMzNCwx
NSBAQCBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHN0cmVhbSwgQWNjZXNzaWJp
bGl0eVNlYXJjaEtleSBzZWFyY2hLZXkpCiBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJl
YW0mIHN0cmVhbSwgY29uc3QgQWNjZXNzaWJpbGl0eVNlYXJjaENyaXRlcmlhJiBjcml0ZXJpYSkK
IHsKICAgICBUZXh0U3RyZWFtOjpHcm91cFNjb3BlIGdyb3VwU2NvcGUoc3RyZWFtKTsKLSAgICBh
dXRvIHN0cmVhbUNyaXRlcmlhT2JqZWN0ID0gWyZzdHJlYW1dIChTdHJpbmcgb2JqZWN0TGFiZWws
IGF1dG8qIGF4T2JqZWN0KSB7CisgICAgYXV0byBzdHJlYW1Dcml0ZXJpYU9iamVjdCA9IFsmc3Ry
ZWFtXSAoQVNDSUlMaXRlcmFsIG9iamVjdExhYmVsLCBhdXRvKiBheE9iamVjdCkgewogICAgICAg
ICBzdHJlYW0uc3RhcnRHcm91cCgpOwotICAgICAgICBzdHJlYW0gPDwgb2JqZWN0TGFiZWwgPDwg
IiAiIDw8IGF4T2JqZWN0IDw8ICIsIElEICIgPDwgKGF4T2JqZWN0ID8gYXhPYmplY3QtPm9iamVj
dElEKCkgOiBBWElEKCkpOworICAgICAgICBzdHJlYW0gPDwgb2JqZWN0TGFiZWwuY2hhcmFjdGVy
cygpIDw8ICIgIiA8PCBheE9iamVjdCA8PCAiLCBJRCAiIDw8IChheE9iamVjdCA/IGF4T2JqZWN0
LT5vYmplY3RJRCgpIDogQVhJRCgpKTsKICAgICAgICAgc3RyZWFtLmVuZEdyb3VwKCk7CiAgICAg
fTsKIAogICAgIHN0cmVhbSA8PCAiU2VhcmNoQ3JpdGVyaWEgIiA8PCAmY3JpdGVyaWE7Ci0gICAg
c3RyZWFtQ3JpdGVyaWFPYmplY3QoImFuY2hvck9iamVjdCIsIGNyaXRlcmlhLmFuY2hvck9iamVj
dCk7Ci0gICAgc3RyZWFtQ3JpdGVyaWFPYmplY3QoInN0YXJ0T2JqZWN0IiwgY3JpdGVyaWEuc3Rh
cnRPYmplY3QpOworICAgIHN0cmVhbUNyaXRlcmlhT2JqZWN0KCJhbmNob3JPYmplY3QiX3MsIGNy
aXRlcmlhLmFuY2hvck9iamVjdCk7CisgICAgc3RyZWFtQ3JpdGVyaWFPYmplY3QoInN0YXJ0T2Jq
ZWN0Il9zLCBjcml0ZXJpYS5zdGFydE9iamVjdCk7CiAgICAgc3RyZWFtLmR1bXBQcm9wZXJ0eSgi
c2VhcmNoRGlyZWN0aW9uIiwgY3JpdGVyaWEuc2VhcmNoRGlyZWN0aW9uKTsKIAogICAgIHN0cmVh
bS5uZXh0TGluZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
WExvZ2dlci5oIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWExvZ2dlci5oCmluZGV4
IGVhODkyZjJmOTY2YzU0ZGMwY2VjZTFkYTc5Mjg0ZTc5ODFhMGM5NTYuLmQxZmJhZmIxN2NiYmVj
MzI0YWUyMGI5ZjE2Y2MwMmY3MGNhMDVmMDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Fj
Y2Vzc2liaWxpdHkvQVhMb2dnZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FYTG9nZ2VyLmgKQEAgLTQzLDYgKzQzLDcgQEAgcHVibGljOgogICAgIEFYTG9nZ2VyKGNvbnN0
IFN0cmluZyYgbWV0aG9kTmFtZSk7CiAgICAgfkFYTG9nZ2VyKCk7CiAgICAgc3RhdGljIHZvaWQg
bG9nKGNvbnN0IFN0cmluZyYpOworICAgIHN0YXRpYyB2b2lkIGxvZyhjb25zdCBjaGFyKik7CiAg
ICAgc3RhdGljIHZvaWQgbG9nKFJlZlB0cjxBWENvcmVPYmplY3Q+KTsKICAgICBzdGF0aWMgdm9p
ZCBsb2coY29uc3QgVmVjdG9yPFJlZlB0cjxBWENvcmVPYmplY3Q+PiYpOwogICAgIHN0YXRpYyB2
b2lkIGxvZyhjb25zdCBzdGQ6OnBhaXI8UmVmUHRyPEFYQ29yZU9iamVjdD4sIEFYT2JqZWN0Q2Fj
aGU6OkFYTm90aWZpY2F0aW9uPiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNz
aWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkv
QVhPYmplY3RDYWNoZS5jcHAKaW5kZXggNzcyMmM2ZDBkMjk3OTk5ZTJjNTk5NmZjMmFkMDhlYjky
MGIwMmM4YS4uNTNjYzA3ZjQwMDFmYWI3MjgyNGIyZDE5ZDFlZmYwNjYyOTdhOWFmNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BWE9iamVjdENhY2hlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FYT2JqZWN0Q2FjaGUuY3BwCkBAIC0yNTIs
NyArMjUyLDcgQEAgQVhPYmplY3RDYWNoZTo6fkFYT2JqZWN0Q2FjaGUoKQogCiBib29sIEFYT2Jq
ZWN0Q2FjaGU6OmlzTW9kYWxFbGVtZW50KEVsZW1lbnQmIGVsZW1lbnQpIGNvbnN0CiB7Ci0gICAg
Ym9vbCBoYXNEaWFsb2dSb2xlID0gbm9kZUhhc1JvbGUoJmVsZW1lbnQsICJkaWFsb2ciKSB8fCBu
b2RlSGFzUm9sZSgmZWxlbWVudCwgImFsZXJ0ZGlhbG9nIik7CisgICAgYm9vbCBoYXNEaWFsb2dS
b2xlID0gbm9kZUhhc1JvbGUoJmVsZW1lbnQsICJkaWFsb2ciX3MpIHx8IG5vZGVIYXNSb2xlKCZl
bGVtZW50LCAiYWxlcnRkaWFsb2ciX3MpOwogICAgIGJvb2wgaXNBcmlhTW9kYWwgPSBlcXVhbExl
dHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShlbGVtZW50LmF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6
YXRpb24oYXJpYV9tb2RhbEF0dHIpLCAidHJ1ZSIpOwogCiAgICAgcmV0dXJuIChoYXNEaWFsb2dS
b2xlICYmIGlzQXJpYU1vZGFsKSB8fCAoaXM8SFRNTERpYWxvZ0VsZW1lbnQ+KGVsZW1lbnQpICYm
IGRvd25jYXN0PEhUTUxEaWFsb2dFbGVtZW50PihlbGVtZW50KS5pc01vZGFsKCkpOwpAQCAtNTYw
LDIyICs1NjAsMjIgQEAgc3RhdGljIFJlZjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiBjcmVhdGVGcm9t
UmVuZGVyZXIoUmVuZGVyT2JqZWN0KiByZW5kZXJlcikKIAogICAgIC8vIElmIHRoZSBub2RlIGlz
IGFyaWEgcm9sZT0ibGlzdCIgb3IgdGhlIGFyaWEgcm9sZSBpcyBlbXB0eSBhbmQgaXRzIGEKICAg
ICAvLyB1bC9vbC9kbCB0eXBlIChpdCBzaG91bGRuJ3QgYmUgYSBsaXN0IGlmIGFyaWEgc2F5cyBv
dGhlcndpc2UpLgotICAgIGlmIChub2RlICYmICgobm9kZUhhc1JvbGUobm9kZSwgImxpc3QiKSB8
fCBub2RlSGFzUm9sZShub2RlLCAiZGlyZWN0b3J5IikpCisgICAgaWYgKG5vZGUgJiYgKChub2Rl
SGFzUm9sZShub2RlLCAibGlzdCJfcykgfHwgbm9kZUhhc1JvbGUobm9kZSwgImRpcmVjdG9yeSJf
cykpCiAgICAgICAgICAgICAgICAgICAgICAgfHwgKG5vZGVIYXNSb2xlKG5vZGUsIG51bGxBdG9t
KCkpICYmIChub2RlLT5oYXNUYWdOYW1lKHVsVGFnKSB8fCBub2RlLT5oYXNUYWdOYW1lKG9sVGFn
KSB8fCBub2RlLT5oYXNUYWdOYW1lKGRsVGFnKSkpKSkKICAgICAgICAgcmV0dXJuIEFjY2Vzc2li
aWxpdHlMaXN0OjpjcmVhdGUocmVuZGVyZXIpOwogCiAgICAgLy8gYXJpYSB0YWJsZXMKLSAgICBp
ZiAobm9kZUhhc1JvbGUobm9kZSwgImdyaWQiKSB8fCBub2RlSGFzUm9sZShub2RlLCAidHJlZWdy
aWQiKSB8fCBub2RlSGFzUm9sZShub2RlLCAidGFibGUiKSkKKyAgICBpZiAobm9kZUhhc1JvbGUo
bm9kZSwgImdyaWQiX3MpIHx8IG5vZGVIYXNSb2xlKG5vZGUsICJ0cmVlZ3JpZCJfcykgfHwgbm9k
ZUhhc1JvbGUobm9kZSwgInRhYmxlIl9zKSkKICAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlB
UklBR3JpZDo6Y3JlYXRlKHJlbmRlcmVyKTsKLSAgICBpZiAobm9kZUhhc1JvbGUobm9kZSwgInJv
dyIpKQorICAgIGlmIChub2RlSGFzUm9sZShub2RlLCAicm93Il9zKSkKICAgICAgICAgcmV0dXJu
IEFjY2Vzc2liaWxpdHlBUklBR3JpZFJvdzo6Y3JlYXRlKHJlbmRlcmVyKTsKLSAgICBpZiAobm9k
ZUhhc1JvbGUobm9kZSwgImdyaWRjZWxsIikgfHwgbm9kZUhhc1JvbGUobm9kZSwgImNlbGwiKSB8
fCBub2RlSGFzUm9sZShub2RlLCAiY29sdW1uaGVhZGVyIikgfHwgbm9kZUhhc1JvbGUobm9kZSwg
InJvd2hlYWRlciIpKQorICAgIGlmIChub2RlSGFzUm9sZShub2RlLCAiZ3JpZGNlbGwiX3MpIHx8
IG5vZGVIYXNSb2xlKG5vZGUsICJjZWxsIl9zKSB8fCBub2RlSGFzUm9sZShub2RlLCAiY29sdW1u
aGVhZGVyIl9zKSB8fCBub2RlSGFzUm9sZShub2RlLCAicm93aGVhZGVyIl9zKSkKICAgICAgICAg
cmV0dXJuIEFjY2Vzc2liaWxpdHlBUklBR3JpZENlbGw6OmNyZWF0ZShyZW5kZXJlcik7CiAKICAg
ICAvLyBhcmlhIHRyZWUKLSAgICBpZiAobm9kZUhhc1JvbGUobm9kZSwgInRyZWUiKSkKKyAgICBp
ZiAobm9kZUhhc1JvbGUobm9kZSwgInRyZWUiX3MpKQogICAgICAgICByZXR1cm4gQWNjZXNzaWJp
bGl0eVRyZWU6OmNyZWF0ZShyZW5kZXJlcik7Ci0gICAgaWYgKG5vZGVIYXNSb2xlKG5vZGUsICJ0
cmVlaXRlbSIpKQorICAgIGlmIChub2RlSGFzUm9sZShub2RlLCAidHJlZWl0ZW0iX3MpKQogICAg
ICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVRyZWVJdGVtOjpjcmVhdGUocmVuZGVyZXIpOwogCiAg
ICAgaWYgKG5vZGUgJiYgaXM8SFRNTExhYmVsRWxlbWVudD4obm9kZSkgJiYgbm9kZUhhc1JvbGUo
bm9kZSwgbnVsbEF0b20oKSkpCkBAIC04NjUsNyArODY1LDcgQEAgQWNjZXNzaWJpbGl0eU9iamVj
dCogQVhPYmplY3RDYWNoZTo6Y3JlYXRlKEFjY2Vzc2liaWxpdHlSb2xlIHJvbGUpCiAKIHZvaWQg
QVhPYmplY3RDYWNoZTo6cmVtb3ZlKEFYSUQgYXhJRCkKIHsKLSAgICBBWFRSQUNFKCJBWE9iamVj
dENhY2hlOjpyZW1vdmUiKTsKKyAgICBBWFRSQUNFKCJBWE9iamVjdENhY2hlOjpyZW1vdmUiX3Mp
OwogICAgIEFYTE9HKG1ha2VTdHJpbmcoIkFYSUQgIiwgYXhJRC5sb2dnaW5nU3RyaW5nKCkpKTsK
IAogICAgIGlmICghYXhJRCkKQEAgLTk3Nyw3ICs5NzcsNyBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6
OnRleHRDaGFuZ2VkKE5vZGUqIG5vZGUpCiAKIHZvaWQgQVhPYmplY3RDYWNoZTo6dGV4dENoYW5n
ZWQoQWNjZXNzaWJpbGl0eU9iamVjdCogb2JqZWN0KQogewotICAgIEFYVFJBQ0UoIkFYT2JqZWN0
Q2FjaGU6OnRleHRDaGFuZ2VkIik7CisgICAgQVhUUkFDRSgiQVhPYmplY3RDYWNoZTo6dGV4dENo
YW5nZWQiX3MpOwogICAgIEFYTE9HKG9iamVjdCk7CiAKICAgICBpZiAoIW9iamVjdCkKQEAgLTEw
ODIsNyArMTA4Miw3IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6aGFuZGxlQ2hpbGRyZW5DaGFuZ2Vk
KEFjY2Vzc2liaWxpdHlPYmplY3QmIG9iamVjdCkKIAogdm9pZCBBWE9iamVjdENhY2hlOjpoYW5k
bGVNZW51T3BlbmVkKE5vZGUqIG5vZGUpCiB7Ci0gICAgaWYgKCFub2RlIHx8ICFub2RlLT5yZW5k
ZXJlcigpIHx8ICFub2RlSGFzUm9sZShub2RlLCAibWVudSIpKQorICAgIGlmICghbm9kZSB8fCAh
bm9kZS0+cmVuZGVyZXIoKSB8fCAhbm9kZUhhc1JvbGUobm9kZSwgIm1lbnUiX3MpKQogICAgICAg
ICByZXR1cm47CiAgICAgCiAgICAgcG9zdE5vdGlmaWNhdGlvbihnZXRPckNyZWF0ZShub2RlKSwg
JmRvY3VtZW50KCksIEFYTWVudU9wZW5lZCk7CkBAIC0xMTM0LDcgKzExMzQsNyBAQCB2b2lkIEFY
T2JqZWN0Q2FjaGU6OmNoaWxkcmVuQ2hhbmdlZChBY2Nlc3NpYmlsaXR5T2JqZWN0KiBvYmplY3Qp
CiAKIHZvaWQgQVhPYmplY3RDYWNoZTo6bm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQoKQogewot
ICAgIEFYVFJBQ0UoIkFYT2JqZWN0Q2FjaGU6Om5vdGlmaWNhdGlvblBvc3RUaW1lckZpcmVkIik7
CisgICAgQVhUUkFDRSgiQVhPYmplY3RDYWNoZTo6bm90aWZpY2F0aW9uUG9zdFRpbWVyRmlyZWQi
X3MpOwogICAgIC8vIER1cmluZyBMYXlvdXRUZXN0cywgYWNjZXNzaWJpbGl0eSBtYXkgYmUgZGlz
YWJsZWQgYmV0d2VlbiB0aGUgdGltZSB0aGUgbm90aWZpY2F0aW9ucyBhcmUgcXVldWVkIGFuZCB0
aGUgdGltZXIgZmlyZXMuCiAgICAgLy8gVGh1cyBjaGVjayBoZXJlIGFuZCByZXR1cm4gaWYgYWNj
ZXNzaWJpbGl0eSBpcyBkaXNhYmxlZC4KICAgICBpZiAoIWFjY2Vzc2liaWxpdHlFbmFibGVkKCkp
CkBAIC0xMTk1LDcgKzExOTUsNyBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnBhc3N3b3JkTm90aWZp
Y2F0aW9uUG9zdFRpbWVyRmlyZWQoKQogICAgIGF1dG8gbm90aWZpY2F0aW9ucyA9IHN0ZDo6ZXhj
aGFuZ2UobV9wYXNzd29yZE5vdGlmaWNhdGlvbnNUb1Bvc3QsIHsgfSk7CiAKICAgICBmb3IgKGF1
dG8mIG5vdGlmaWNhdGlvbiA6IG5vdGlmaWNhdGlvbnMpCi0gICAgICAgIHBvc3RUZXh0U3RhdGVD
aGFuZ2VQbGF0Zm9ybU5vdGlmaWNhdGlvbihub3RpZmljYXRpb24uZ2V0KCksIEFYVGV4dEVkaXRU
eXBlSW5zZXJ0LCAiICIsIFZpc2libGVQb3NpdGlvbigpKTsKKyAgICAgICAgcG9zdFRleHRTdGF0
ZUNoYW5nZVBsYXRmb3JtTm90aWZpY2F0aW9uKG5vdGlmaWNhdGlvbi5nZXQoKSwgQVhUZXh0RWRp
dFR5cGVJbnNlcnQsICIgIl9zLCBWaXNpYmxlUG9zaXRpb24oKSk7CiAjZW5kaWYKIH0KIApAQCAt
MTI0Myw3ICsxMjQzLDcgQEAgdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0aW9uKE5v
ZGUqIG5vZGUsIEFYTm90aWZpY2F0aW9uIG5vdGlmaWNhdGlvbiwgUG8KIAogdm9pZCBBWE9iamVj
dENhY2hlOjpwb3N0Tm90aWZpY2F0aW9uKEFYQ29yZU9iamVjdCogb2JqZWN0LCBEb2N1bWVudCog
ZG9jdW1lbnQsIEFYTm90aWZpY2F0aW9uIG5vdGlmaWNhdGlvbiwgUG9zdFRhcmdldCBwb3N0VGFy
Z2V0KQogewotICAgIEFYVFJBQ0UoIkFYT2JqZWN0Q2FjaGU6OnBvc3ROb3RpZmljYXRpb24iKTsK
KyAgICBBWFRSQUNFKCJBWE9iamVjdENhY2hlOjpwb3N0Tm90aWZpY2F0aW9uIl9zKTsKICAgICBB
WExPRyhzdGQ6Om1ha2VfcGFpcihvYmplY3QsIG5vdGlmaWNhdGlvbikpOwogICAgIEFTU0VSVChp
c01haW5UaHJlYWQoKSk7CiAKQEAgLTEyNzMsNyArMTI3Myw3IEBAIHZvaWQgQVhPYmplY3RDYWNo
ZTo6aGFuZGxlTWVudUl0ZW1TZWxlY3RlZChOb2RlKiBub2RlKQogICAgIGlmICghbm9kZSkKICAg
ICAgICAgcmV0dXJuOwogICAgIAotICAgIGlmICghbm9kZUhhc1JvbGUobm9kZSwgIm1lbnVpdGVt
IikgJiYgIW5vZGVIYXNSb2xlKG5vZGUsICJtZW51aXRlbXJhZGlvIikgJiYgIW5vZGVIYXNSb2xl
KG5vZGUsICJtZW51aXRlbWNoZWNrYm94IikpCisgICAgaWYgKCFub2RlSGFzUm9sZShub2RlLCAi
bWVudWl0ZW0iX3MpICYmICFub2RlSGFzUm9sZShub2RlLCAibWVudWl0ZW1yYWRpbyJfcykgJiYg
IW5vZGVIYXNSb2xlKG5vZGUsICJtZW51aXRlbWNoZWNrYm94Il9zKSkKICAgICAgICAgcmV0dXJu
OwogICAgIAogICAgIGlmICghZG93bmNhc3Q8RWxlbWVudD4oKm5vZGUpLmZvY3VzZWQoKSAmJiAh
ZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoZG93bmNhc3Q8RWxlbWVudD4oKm5vZGUpLmF0
dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24oYXJpYV9zZWxlY3RlZEF0dHIpLCAidHJ1ZSIp
KQpAQCAtMTM0Nyw4ICsxMzQ3LDggQEAgdm9pZCBBWE9iamVjdENhY2hlOjpzZWxlY3RlZFN0YXRl
Q2hhbmdlZChOb2RlKiBub2RlKQogewogICAgIC8vIEZvciBhIHRhYmxlIGNlbGwsIHBvc3QgQVhT
ZWxlY3RlZFN0YXRlQ2hhbmdlZCBvbiB0aGUgY2VsbCBpdHNlbGYuCiAgICAgLy8gRm9yIGFueSBv
dGhlciBlbGVtZW50LCBwb3N0IEFYU2VsZWN0ZWRDaGlsZHJlbkNoYW5nZWQgb24gdGhlIHBhcmVu
dC4KLSAgICBpZiAobm9kZUhhc1JvbGUobm9kZSwgImdyaWRjZWxsIikgfHwgbm9kZUhhc1JvbGUo
bm9kZSwgImNlbGwiKQotICAgICAgICB8fCBub2RlSGFzUm9sZShub2RlLCAiY29sdW1uaGVhZGVy
IikgfHwgbm9kZUhhc1JvbGUobm9kZSwgInJvd2hlYWRlciIpKQorICAgIGlmIChub2RlSGFzUm9s
ZShub2RlLCAiZ3JpZGNlbGwiX3MpIHx8IG5vZGVIYXNSb2xlKG5vZGUsICJjZWxsIl9zKQorICAg
ICAgICB8fCBub2RlSGFzUm9sZShub2RlLCAiY29sdW1uaGVhZGVyIl9zKSB8fCBub2RlSGFzUm9s
ZShub2RlLCAicm93aGVhZGVyIl9zKSkKICAgICAgICAgcG9zdE5vdGlmaWNhdGlvbihub2RlLCBB
WFNlbGVjdGVkU3RhdGVDaGFuZ2VkKTsKICAgICBlbHNlCiAgICAgICAgIHNlbGVjdGVkQ2hpbGRy
ZW5DaGFuZ2VkKG5vZGUpOwpAQCAtMTU0Miw3ICsxNTQyLDcgQEAgdm9pZCBBWE9iamVjdENhY2hl
Ojpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0aW9uKGNvbnN0IFBvc2l0aW9uJiBwb3NpdGlv
biwgY28KIAogdm9pZCBBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZpY2F0
aW9uKEFjY2Vzc2liaWxpdHlPYmplY3QqIG9iamVjdCwgY29uc3QgQVhUZXh0U3RhdGVDaGFuZ2VJ
bnRlbnQmIGludGVudCwgY29uc3QgVmlzaWJsZVNlbGVjdGlvbiYgc2VsZWN0aW9uKQogewotICAg
IEFYVFJBQ0UoIkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3RpZmljYXRpb24i
KTsKKyAgICBBWFRSQUNFKCJBWE9iamVjdENhY2hlOjpwb3N0VGV4dFN0YXRlQ2hhbmdlTm90aWZp
Y2F0aW9uIl9zKTsKICAgICBzdG9wQ2FjaGluZ0NvbXB1dGVkT2JqZWN0QXR0cmlidXRlcygpOwog
CiAjaWYgUExBVEZPUk0oQ09DT0EpIHx8IFVTRShBVFNQSSkKQEAgLTE1NzQsNyArMTU3NCw3IEBA
IHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihBY2Nl
c3NpYmlsaXR5T2JqZWN0KiBvYmplY3QsCiAKIHZvaWQgQVhPYmplY3RDYWNoZTo6cG9zdFRleHRT
dGF0ZUNoYW5nZU5vdGlmaWNhdGlvbihOb2RlKiBub2RlLCBBWFRleHRFZGl0VHlwZSB0eXBlLCBj
b25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFZpc2libGVQb3NpdGlvbiYgcG9zaXRpb24pCiB7Ci0g
ICAgQVhUUkFDRSgiQVhPYmplY3RDYWNoZTo6cG9zdFRleHRTdGF0ZUNoYW5nZU5vdGlmaWNhdGlv
biIpOworICAgIEFYVFJBQ0UoIkFYT2JqZWN0Q2FjaGU6OnBvc3RUZXh0U3RhdGVDaGFuZ2VOb3Rp
ZmljYXRpb24iX3MpOwogICAgIGlmICghbm9kZSB8fCB0eXBlID09IEFYVGV4dEVkaXRUeXBlVW5r
bm93bikKICAgICAgICAgcmV0dXJuOwogCkBAIC0xOTEyLDcgKzE5MTIsNyBAQCB2b2lkIEFYT2Jq
ZWN0Q2FjaGU6OmhhbmRsZUF0dHJpYnV0ZUNoYW5nZShjb25zdCBRdWFsaWZpZWROYW1lJiBhdHRy
TmFtZSwgRWxlbWVudAogCiB2b2lkIEFYT2JqZWN0Q2FjaGU6OmhhbmRsZU1vZGFsQ2hhbmdlKEVs
ZW1lbnQmIGVsZW1lbnQpCiB7Ci0gICAgaWYgKCFpczxIVE1MRGlhbG9nRWxlbWVudD4oZWxlbWVu
dCkgJiYgIW5vZGVIYXNSb2xlKCZlbGVtZW50LCAiZGlhbG9nIikgJiYgIW5vZGVIYXNSb2xlKCZl
bGVtZW50LCAiYWxlcnRkaWFsb2ciKSkKKyAgICBpZiAoIWlzPEhUTUxEaWFsb2dFbGVtZW50Pihl
bGVtZW50KSAmJiAhbm9kZUhhc1JvbGUoJmVsZW1lbnQsICJkaWFsb2ciX3MpICYmICFub2RlSGFz
Um9sZSgmZWxlbWVudCwgImFsZXJ0ZGlhbG9nIl9zKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAg
c3RvcENhY2hpbmdDb21wdXRlZE9iamVjdEF0dHJpYnV0ZXMoKTsKQEAgLTMyNzcsNyArMzI3Nyw3
IEBAIHZvaWQgQVhPYmplY3RDYWNoZTo6cHJvY2Vzc0RlZmVycmVkQ2hpbGRyZW5DaGFuZ2VkTGlz
dCgpCiAKIHZvaWQgQVhPYmplY3RDYWNoZTo6cGVyZm9ybURlZmVycmVkQ2FjaGVVcGRhdGUoKQog
ewotICAgIEFYVFJBQ0UoIkFYT2JqZWN0Q2FjaGU6OnBlcmZvcm1EZWZlcnJlZENhY2hlVXBkYXRl
Iik7CisgICAgQVhUUkFDRSgiQVhPYmplY3RDYWNoZTo6cGVyZm9ybURlZmVycmVkQ2FjaGVVcGRh
dGUiX3MpOwogICAgIGlmIChtX3BlcmZvcm1pbmdEZWZlcnJlZENhY2hlVXBkYXRlKQogICAgICAg
ICByZXR1cm47CiAgICAgU2V0Rm9yU2NvcGUgcGVyZm9ybWluZ0RlZmVycmVkQ2FjaGVVcGRhdGUo
bV9wZXJmb3JtaW5nRGVmZXJyZWRDYWNoZVVwZGF0ZSwgdHJ1ZSk7CkBAIC0zMzczLDcgKzMzNzMs
NyBAQCB2b2lkIEFYT2JqZWN0Q2FjaGU6OnVwZGF0ZUlzb2xhdGVkVHJlZShBWENvcmVPYmplY3Qm
IG9iamVjdCwgQVhOb3RpZmljYXRpb24gbm90aQogCiB2b2lkIEFYT2JqZWN0Q2FjaGU6OnVwZGF0
ZUlzb2xhdGVkVHJlZShjb25zdCBWZWN0b3I8c3RkOjpwYWlyPFJlZlB0cjxBWENvcmVPYmplY3Q+
LCBBWE5vdGlmaWNhdGlvbj4+JiBub3RpZmljYXRpb25zKQogewotICAgIEFYVFJBQ0UoIkFYT2Jq
ZWN0Q2FjaGU6OnVwZGF0ZUlzb2xhdGVkVHJlZSIpOworICAgIEFYVFJBQ0UoIkFYT2JqZWN0Q2Fj
aGU6OnVwZGF0ZUlzb2xhdGVkVHJlZSJfcyk7CiAgICAgQVhMT0coKnRoaXMpOwogCiAgICAgaWYg
KCFtX3BhZ2VJRCkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9B
Y2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5
L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcAppbmRleCAxNDI5MTM3MmNmYzQ2YzFkZTIyZTgz
OGNkMjI1OWY3MDkzZmRhNDA4Li5iMmQ4YzQ5NzBmMmFkNmUzNDBlZGE1ZDczZjk0MWExMjg2NTZm
MjNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxp
dHlOb2RlT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlOb2RlT2JqZWN0LmNwcApAQCAtMjM3LDcgKzIzNyw3IEBAIERvY3VtZW50KiBBY2Nl
c3NpYmlsaXR5Tm9kZU9iamVjdDo6ZG9jdW1lbnQoKSBjb25zdAogCiBBY2Nlc3NpYmlsaXR5Um9s
ZSBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6ZGV0ZXJtaW5lQWNjZXNzaWJpbGl0eVJvbGUoKQog
ewotICAgIEFYVFJBQ0UoIkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpkZXRlcm1pbmVBY2Nlc3Np
YmlsaXR5Um9sZSIpOworICAgIEFYVFJBQ0UoIkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpkZXRl
cm1pbmVBY2Nlc3NpYmlsaXR5Um9sZSJfcyk7CiAgICAgaWYgKChtX2FyaWFSb2xlID0gZGV0ZXJt
aW5lQXJpYVJvbGVBdHRyaWJ1dGUoKSkgIT0gQWNjZXNzaWJpbGl0eVJvbGU6OlVua25vd24pCiAg
ICAgICAgIHJldHVybiBtX2FyaWFSb2xlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9h
Y2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5T2JqZWN0LmNwcAppbmRleCAzNGYxNWYyNTY0NTYzZjlj
OTIzMzU4MjFiZWFlZGZiMDk5NGI4YmFlLi5iZmJlNDJmM2Q4YzJkYzM3ZTllNzVmZDYzNjM2NDFm
M2M5NzkxZTg3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU9iamVjdC5jcHAKQEAgLTE3MjksNyArMTcyOSw3IEBAIGJvb2wgQWNjZXNzaWJp
bGl0eU9iamVjdDo6c3VwcG9ydHNSZWFkT25seSgpIGNvbnN0CiBTdHJpbmcgQWNjZXNzaWJpbGl0
eU9iamVjdDo6cmVhZE9ubHlWYWx1ZSgpIGNvbnN0CiB7CiAgICAgaWYgKCFoYXNBdHRyaWJ1dGUo
YXJpYV9yZWFkb25seUF0dHIpKQotICAgICAgICByZXR1cm4gYXJpYVJvbGVBdHRyaWJ1dGUoKSAh
PSBBY2Nlc3NpYmlsaXR5Um9sZTo6VW5rbm93biAmJiBzdXBwb3J0c1JlYWRPbmx5KCkgPyAiZmFs
c2UiIDogU3RyaW5nKCk7CisgICAgICAgIHJldHVybiBhcmlhUm9sZUF0dHJpYnV0ZSgpICE9IEFj
Y2Vzc2liaWxpdHlSb2xlOjpVbmtub3duICYmIHN1cHBvcnRzUmVhZE9ubHkoKSA/ICJmYWxzZSJf
cyA6IFN0cmluZygpOwogCiAgICAgcmV0dXJuIGdldEF0dHJpYnV0ZShhcmlhX3JlYWRvbmx5QXR0
cikuc3RyaW5nKCkuY29udmVydFRvQVNDSUlMb3dlcmNhc2UoKTsKIH0KQEAgLTE3NTcsNyArMTc1
Nyw3IEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5T2JqZWN0OjphdXRvQ29tcGxldGVWYWx1ZSgpIGNv
bnN0CiAgICAgICAgIHx8IGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGF1dG9Db21wbGV0
ZSwgImJvdGgiKSkKICAgICAgICAgcmV0dXJuIGF1dG9Db21wbGV0ZTsKIAotICAgIHJldHVybiAi
bm9uZSI7CisgICAgcmV0dXJuICJub25lIl9zOwogfQogCiBib29sIEFjY2Vzc2liaWxpdHlPYmpl
Y3Q6OmNvbnRlbnRFZGl0YWJsZUF0dHJpYnV0ZUlzRW5hYmxlZChFbGVtZW50KiBlbGVtZW50KQpA
QCAtMjIzMywyMCArMjIzMywyMCBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0eU9iamVjdDo6Y3VycmVu
dFZhbHVlKCkgY29uc3QKIHsKICAgICBzd2l0Y2ggKGN1cnJlbnRTdGF0ZSgpKSB7CiAgICAgY2Fz
ZSBBY2Nlc3NpYmlsaXR5Q3VycmVudFN0YXRlOjpGYWxzZToKLSAgICAgICAgcmV0dXJuICJmYWxz
ZSI7CisgICAgICAgIHJldHVybiAiZmFsc2UiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Q3Vy
cmVudFN0YXRlOjpQYWdlOgotICAgICAgICByZXR1cm4gInBhZ2UiOworICAgICAgICByZXR1cm4g
InBhZ2UiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Q3VycmVudFN0YXRlOjpTdGVwOgotICAg
ICAgICByZXR1cm4gInN0ZXAiOworICAgICAgICByZXR1cm4gInN0ZXAiX3M7CiAgICAgY2FzZSBB
Y2Nlc3NpYmlsaXR5Q3VycmVudFN0YXRlOjpMb2NhdGlvbjoKLSAgICAgICAgcmV0dXJuICJsb2Nh
dGlvbiI7CisgICAgICAgIHJldHVybiAibG9jYXRpb24iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmls
aXR5Q3VycmVudFN0YXRlOjpUaW1lOgotICAgICAgICByZXR1cm4gInRpbWUiOworICAgICAgICBy
ZXR1cm4gInRpbWUiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Q3VycmVudFN0YXRlOjpEYXRl
OgotICAgICAgICByZXR1cm4gImRhdGUiOworICAgICAgICByZXR1cm4gImRhdGUiX3M7CiAgICAg
ZGVmYXVsdDoKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlDdXJyZW50U3RhdGU6OlRydWU6Ci0gICAg
ICAgIHJldHVybiAidHJ1ZSI7CisgICAgICAgIHJldHVybiAidHJ1ZSJfczsKICAgICB9CiB9CiAK
QEAgLTIzNTUsMTEgKzIzNTUsMTEgQEAgYm9vbCBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpyZXBsYWNl
VGV4dEluUmFuZ2UoY29uc3QgU3RyaW5nJiByZXBsYWNlbWVudFN0cmluZywgY28KICAgICB9CiAg
ICAgCiAgICAgaWYgKGlzPEhUTUxJbnB1dEVsZW1lbnQ+KGVsZW1lbnQpKSB7Ci0gICAgICAgIGRv
d25jYXN0PEhUTUxJbnB1dEVsZW1lbnQ+KGVsZW1lbnQpLnNldFJhbmdlVGV4dChyZXBsYWNlbWVu
dFN0cmluZywgcmFuZ2Uuc3RhcnQsIHJhbmdlLmxlbmd0aCwgIiIpOworICAgICAgICBkb3duY2Fz
dDxIVE1MSW5wdXRFbGVtZW50PihlbGVtZW50KS5zZXRSYW5nZVRleHQocmVwbGFjZW1lbnRTdHJp
bmcsIHJhbmdlLnN0YXJ0LCByYW5nZS5sZW5ndGgsIGVtcHR5U3RyaW5nKCkpOwogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICB9CiAgICAgaWYgKGlzPEhUTUxUZXh0QXJlYUVsZW1lbnQ+KGVsZW1l
bnQpKSB7Ci0gICAgICAgIGRvd25jYXN0PEhUTUxUZXh0QXJlYUVsZW1lbnQ+KGVsZW1lbnQpLnNl
dFJhbmdlVGV4dChyZXBsYWNlbWVudFN0cmluZywgcmFuZ2Uuc3RhcnQsIHJhbmdlLmxlbmd0aCwg
IiIpOworICAgICAgICBkb3duY2FzdDxIVE1MVGV4dEFyZWFFbGVtZW50PihlbGVtZW50KS5zZXRS
YW5nZVRleHQocmVwbGFjZW1lbnRTdHJpbmcsIHJhbmdlLnN0YXJ0LCByYW5nZS5sZW5ndGgsIGVt
cHR5U3RyaW5nKCkpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKQEAgLTI1OTQsNyAr
MjU5NCw3IEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5T2JqZWN0Ojpjb21wdXRlZFJvbGVTdHJpbmco
KSBjb25zdAogCiAgICAgLy8gV2UgZG8gbm90IGNvbXB1dGUgYSByb2xlIHN0cmluZyBmb3IgZ2Vu
ZXJpYyBibG9jayBlbGVtZW50cyB3aXRoIHVzZXItYWdlbnQgYXNzaWduZWQgcm9sZXMuCiAgICAg
aWYgKHJvbGUgPT0gQWNjZXNzaWJpbGl0eVJvbGU6Okdyb3VwIHx8IHJvbGUgPT0gQWNjZXNzaWJp
bGl0eVJvbGU6OlRleHRHcm91cCkKLSAgICAgICAgcmV0dXJuICIiOworICAgICAgICByZXR1cm4g
ZW1wdHlTdHJpbmcoKTsKIAogICAgIC8vIFdlIGRvIGNvbXB1dGUgYSByb2xlIHN0cmluZyBmb3Ig
YmxvY2sgZWxlbWVudHMgd2l0aCBhdXRob3ItcHJvdmlkZWQgcm9sZXMuCiAgICAgaWYgKHJvbGUg
PT0gQWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uVGV4dEdyb3VwCkBAIC0yNzI1LDcgKzI3
MjUsNyBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0eU9iamVjdDo6cm9sZURlc2NyaXB0aW9uKCkgY29u
c3QKIAogYm9vbCBub2RlSGFzUHJlc2VudGF0aW9uUm9sZShOb2RlKiBub2RlKQogewotICAgIHJl
dHVybiBub2RlSGFzUm9sZShub2RlLCAicHJlc2VudGF0aW9uIikgfHwgbm9kZUhhc1JvbGUobm9k
ZSwgIm5vbmUiKTsKKyAgICByZXR1cm4gbm9kZUhhc1JvbGUobm9kZSwgInByZXNlbnRhdGlvbiJf
cykgfHwgbm9kZUhhc1JvbGUobm9kZSwgIm5vbmUiX3MpOwogfQogICAgIAogYm9vbCBBY2Nlc3Np
YmlsaXR5T2JqZWN0OjpzdXBwb3J0c1ByZXNzQWN0aW9uKCkgY29uc3QKQEAgLTMyMTAsMTAgKzMy
MTAsMTAgQEAgSGFzaE1hcDxTdHJpbmcsIEFYRWRpdGluZ1N0eWxlVmFsdWVWYXJpYW50PiBBY2Nl
c3NpYmlsaXR5T2JqZWN0OjpyZXNvbHZlZEVkaXRpbmcKICAgICAgICAgcmV0dXJuIHsgfTsKIAog
ICAgIEhhc2hNYXA8U3RyaW5nLCBBWEVkaXRpbmdTdHlsZVZhbHVlVmFyaWFudD4gc3R5bGVzOwot
ICAgIHN0eWxlcy5hZGQoImJvbGQiLCBzZWxlY3Rpb25TdHlsZS0+aGFzU3R5bGUoQ1NTUHJvcGVy
dHlGb250V2VpZ2h0LCAiYm9sZCIpKTsKLSAgICBzdHlsZXMuYWRkKCJpdGFsaWMiLCBzZWxlY3Rp
b25TdHlsZS0+aGFzU3R5bGUoQ1NTUHJvcGVydHlGb250U3R5bGUsICJpdGFsaWMiKSk7Ci0gICAg
c3R5bGVzLmFkZCgidW5kZXJsaW5lIiwgc2VsZWN0aW9uU3R5bGUtPmhhc1N0eWxlKENTU1Byb3Bl
cnR5V2Via2l0VGV4dERlY29yYXRpb25zSW5FZmZlY3QsICJ1bmRlcmxpbmUiKSk7Ci0gICAgc3R5
bGVzLmFkZCgiZm9udHNpemUiLCBzZWxlY3Rpb25TdHlsZS0+bGVnYWN5Rm9udFNpemUoKmRvY3Vt
ZW50KSk7CisgICAgc3R5bGVzLmFkZCgiYm9sZCJfcywgc2VsZWN0aW9uU3R5bGUtPmhhc1N0eWxl
KENTU1Byb3BlcnR5Rm9udFdlaWdodCwgImJvbGQiX3MpKTsKKyAgICBzdHlsZXMuYWRkKCJpdGFs
aWMiX3MsIHNlbGVjdGlvblN0eWxlLT5oYXNTdHlsZShDU1NQcm9wZXJ0eUZvbnRTdHlsZSwgIml0
YWxpYyJfcykpOworICAgIHN0eWxlcy5hZGQoInVuZGVybGluZSJfcywgc2VsZWN0aW9uU3R5bGUt
Pmhhc1N0eWxlKENTU1Byb3BlcnR5V2Via2l0VGV4dERlY29yYXRpb25zSW5FZmZlY3QsICJ1bmRl
cmxpbmUiX3MpKTsKKyAgICBzdHlsZXMuYWRkKCJmb250c2l6ZSJfcywgc2VsZWN0aW9uU3R5bGUt
PmxlZ2FjeUZvbnRTaXplKCpkb2N1bWVudCkpOwogICAgIHJldHVybiBzdHlsZXM7CiB9CiAKQEAg
LTQwODgsNyArNDA4OCw3IEBAIHN0YXRpYyBib29sIGlzUmFkaW9CdXR0b25JbkRpZmZlcmVudEFk
aG9jR3JvdXAoUmVmUHRyPEFYQ29yZU9iamVjdD4gYXhPYmplY3QsIEFYCiAgICAgaWYgKCFyZWZl
cmVuY2VPYmplY3QgfHwgIXJlZmVyZW5jZU9iamVjdC0+aXNSYWRpb0J1dHRvbigpKQogICAgICAg
ICByZXR1cm4gdHJ1ZTsKIAotICAgIHJldHVybiBheE9iamVjdC0+YXR0cmlidXRlVmFsdWUoIm5h
bWUiKSAhPSByZWZlcmVuY2VPYmplY3QtPmF0dHJpYnV0ZVZhbHVlKCJuYW1lIik7CisgICAgcmV0
dXJuIGF4T2JqZWN0LT5hdHRyaWJ1dGVWYWx1ZSgibmFtZSJfcykgIT0gcmVmZXJlbmNlT2JqZWN0
LT5hdHRyaWJ1dGVWYWx1ZSgibmFtZSJfcyk7CiB9CiAKIHN0YXRpYyBib29sIGlzQWNjZXNzaWJp
bGl0eU9iamVjdFNlYXJjaE1hdGNoQXRJbmRleChSZWZQdHI8QVhDb3JlT2JqZWN0PiBheE9iamVj
dCwgQWNjZXNzaWJpbGl0eVNlYXJjaENyaXRlcmlhIGNvbnN0JiBjcml0ZXJpYSwgc2l6ZV90IGlu
ZGV4KQpAQCAtNDI5NSw3ICs0Mjk1LDcgQEAgc3RhdGljIHZvaWQgYXBwZW5kQ2hpbGRyZW5Ub0Fy
cmF5KFJlZlB0cjxBWENvcmVPYmplY3Q+IG9iamVjdCwgYm9vbCBpc0ZvcndhcmQsIFIKIAogdm9p
ZCBmaW5kTWF0Y2hpbmdPYmplY3RzKEFjY2Vzc2liaWxpdHlTZWFyY2hDcml0ZXJpYSBjb25zdCYg
Y3JpdGVyaWEsIEFYQ29yZU9iamVjdDo6QWNjZXNzaWJpbGl0eUNoaWxkcmVuVmVjdG9yJiByZXN1
bHRzKQogewotICAgIEFYVFJBQ0UoIkFjY2Vzc2liaWxpdHk6OmZpbmRNYXRjaGluZ09iamVjdHMi
KTsKKyAgICBBWFRSQUNFKCJBY2Nlc3NpYmlsaXR5OjpmaW5kTWF0Y2hpbmdPYmplY3RzIl9zKTsK
ICAgICBBWExPRyhjcml0ZXJpYSk7CiAKICAgICAvLyBUaGlzIHNlYXJjaCBhbGdvcml0aG0gb25s
eSBzZWFyY2hlcyB0aGUgZWxlbWVudHMgYmVmb3JlL2FmdGVyIHRoZSBzdGFydGluZyBvYmplY3Qu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlP
YmplY3RJbnRlcmZhY2UuaCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU9iamVjdEludGVyZmFjZS5oCmluZGV4IDQ2ZjYwMjgwMmE3NjIxYzA4NmY1MTQ1ZDBhNzBl
Y2U2YmZiODI3Y2YuLmUwYmRkZDkzMWM0ZDI0MWVkNzc4MDQzZTliMjQxZjEyOWUzZmVkNzEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU9iamVj
dEludGVyZmFjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU9iamVjdEludGVyZmFjZS5oCkBAIC0yNjQsMzEyICsyNjQsMzEyIEBAIEFMV0FZU19JTkxJ
TkUgU3RyaW5nIGFjY2Vzc2liaWxpdHlSb2xlVG9TdHJpbmcoQWNjZXNzaWJpbGl0eVJvbGUgcm9s
ZSkKIHsKICAgICBzd2l0Y2ggKHJvbGUpIHsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpB
bm5vdGF0aW9uOgotICAgICAgICByZXR1cm4gIkFubm90YXRpb24iOworICAgICAgICByZXR1cm4g
IkFubm90YXRpb24iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb246
Ci0gICAgICAgIHJldHVybiAiQXBwbGljYXRpb24iOworICAgICAgICByZXR1cm4gIkFwcGxpY2F0
aW9uIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uQWxlcnQ6Ci0g
ICAgICAgIHJldHVybiAiQXBwbGljYXRpb25BbGVydCI7CisgICAgICAgIHJldHVybiAiQXBwbGlj
YXRpb25BbGVydCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvbkFs
ZXJ0RGlhbG9nOgotICAgICAgICByZXR1cm4gIkFwcGxpY2F0aW9uQWxlcnREaWFsb2ciOworICAg
ICAgICByZXR1cm4gIkFwcGxpY2F0aW9uQWxlcnREaWFsb2ciX3M7CiAgICAgY2FzZSBBY2Nlc3Np
YmlsaXR5Um9sZTo6QXBwbGljYXRpb25EaWFsb2c6Ci0gICAgICAgIHJldHVybiAiQXBwbGljYXRp
b25EaWFsb2ciOworICAgICAgICByZXR1cm4gIkFwcGxpY2F0aW9uRGlhbG9nIl9zOwogICAgIGNh
c2UgQWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uR3JvdXA6Ci0gICAgICAgIHJldHVybiAi
QXBwbGljYXRpb25Hcm91cCI7CisgICAgICAgIHJldHVybiAiQXBwbGljYXRpb25Hcm91cCJfczsK
ICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvbkxvZzoKLSAgICAgICAgcmV0
dXJuICJBcHBsaWNhdGlvbkxvZyI7CisgICAgICAgIHJldHVybiAiQXBwbGljYXRpb25Mb2ciX3M7
CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb25NYXJxdWVlOgotICAgICAg
ICByZXR1cm4gIkFwcGxpY2F0aW9uTWFycXVlZSI7CisgICAgICAgIHJldHVybiAiQXBwbGljYXRp
b25NYXJxdWVlIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uU3Rh
dHVzOgotICAgICAgICByZXR1cm4gIkFwcGxpY2F0aW9uU3RhdHVzIjsKKyAgICAgICAgcmV0dXJu
ICJBcHBsaWNhdGlvblN0YXR1cyJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBs
aWNhdGlvblRleHRHcm91cDoKLSAgICAgICAgcmV0dXJuICJBcHBsaWNhdGlvblRleHRHcm91cCI7
CisgICAgICAgIHJldHVybiAiQXBwbGljYXRpb25UZXh0R3JvdXAiX3M7CiAgICAgY2FzZSBBY2Nl
c3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb25UaW1lcjoKLSAgICAgICAgcmV0dXJuICJBcHBsaWNh
dGlvblRpbWVyIjsKKyAgICAgICAgcmV0dXJuICJBcHBsaWNhdGlvblRpbWVyIl9zOwogICAgIGNh
c2UgQWNjZXNzaWJpbGl0eVJvbGU6OkF1ZGlvOgotICAgICAgICByZXR1cm4gIkF1ZGlvIjsKKyAg
ICAgICAgcmV0dXJuICJBdWRpbyJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpCbG9j
a3F1b3RlOgotICAgICAgICByZXR1cm4gIkJsb2NrcXVvdGUiOworICAgICAgICByZXR1cm4gIkJs
b2NrcXVvdGUiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QnJvd3NlcjoKLSAgICAg
ICAgcmV0dXJuICJCcm93c2VyIjsKKyAgICAgICAgcmV0dXJuICJCcm93c2VyIl9zOwogICAgIGNh
c2UgQWNjZXNzaWJpbGl0eVJvbGU6OkJ1c3lJbmRpY2F0b3I6Ci0gICAgICAgIHJldHVybiAiQnVz
eUluZGljYXRvciI7CisgICAgICAgIHJldHVybiAiQnVzeUluZGljYXRvciJfczsKICAgICBjYXNl
IEFjY2Vzc2liaWxpdHlSb2xlOjpCdXR0b246Ci0gICAgICAgIHJldHVybiAiQnV0dG9uIjsKKyAg
ICAgICAgcmV0dXJuICJCdXR0b24iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6Q2Fu
dmFzOgotICAgICAgICByZXR1cm4gIkNhbnZhcyI7CisgICAgICAgIHJldHVybiAiQ2FudmFzIl9z
OwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkNhcHRpb246Ci0gICAgICAgIHJldHVybiAi
Q2FwdGlvbiI7CisgICAgICAgIHJldHVybiAiQ2FwdGlvbiJfczsKICAgICBjYXNlIEFjY2Vzc2li
aWxpdHlSb2xlOjpDZWxsOgotICAgICAgICByZXR1cm4gIkNlbGwiOworICAgICAgICByZXR1cm4g
IkNlbGwiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6Q2hlY2tCb3g6Ci0gICAgICAg
IHJldHVybiAiQ2hlY2tCb3giOworICAgICAgICByZXR1cm4gIkNoZWNrQm94Il9zOwogICAgIGNh
c2UgQWNjZXNzaWJpbGl0eVJvbGU6OkNvbG9yV2VsbDoKLSAgICAgICAgcmV0dXJuICJDb2xvcldl
bGwiOworICAgICAgICByZXR1cm4gIkNvbG9yV2VsbCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxp
dHlSb2xlOjpDb2x1bW46Ci0gICAgICAgIHJldHVybiAiQ29sdW1uIjsKKyAgICAgICAgcmV0dXJu
ICJDb2x1bW4iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6Q29sdW1uSGVhZGVyOgot
ICAgICAgICByZXR1cm4gIkNvbHVtbkhlYWRlciI7CisgICAgICAgIHJldHVybiAiQ29sdW1uSGVh
ZGVyIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkNvbWJvQm94OgotICAgICAgICBy
ZXR1cm4gIkNvbWJvQm94IjsKKyAgICAgICAgcmV0dXJuICJDb21ib0JveCJfczsKICAgICBjYXNl
IEFjY2Vzc2liaWxpdHlSb2xlOjpEZWZpbml0aW9uOgotICAgICAgICByZXR1cm4gIkRlZmluaXRp
b24iOworICAgICAgICByZXR1cm4gIkRlZmluaXRpb24iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmls
aXR5Um9sZTo6RGVsZXRpb246Ci0gICAgICAgIHJldHVybiAiRGVsZXRpb24iOworICAgICAgICBy
ZXR1cm4gIkRlbGV0aW9uIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRlc2NyaXB0
aW9uTGlzdDoKLSAgICAgICAgcmV0dXJuICJEZXNjcmlwdGlvbkxpc3QiOworICAgICAgICByZXR1
cm4gIkRlc2NyaXB0aW9uTGlzdCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpEZXNj
cmlwdGlvbkxpc3RUZXJtOgotICAgICAgICByZXR1cm4gIkRlc2NyaXB0aW9uTGlzdFRlcm0iOwor
ICAgICAgICByZXR1cm4gIkRlc2NyaXB0aW9uTGlzdFRlcm0iX3M7CiAgICAgY2FzZSBBY2Nlc3Np
YmlsaXR5Um9sZTo6RGVzY3JpcHRpb25MaXN0RGV0YWlsOgotICAgICAgICByZXR1cm4gIkRlc2Ny
aXB0aW9uTGlzdERldGFpbCI7CisgICAgICAgIHJldHVybiAiRGVzY3JpcHRpb25MaXN0RGV0YWls
Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRldGFpbHM6Ci0gICAgICAgIHJldHVy
biAiRGV0YWlscyI7CisgICAgICAgIHJldHVybiAiRGV0YWlscyJfczsKICAgICBjYXNlIEFjY2Vz
c2liaWxpdHlSb2xlOjpEaXJlY3Rvcnk6Ci0gICAgICAgIHJldHVybiAiRGlyZWN0b3J5IjsKKyAg
ICAgICAgcmV0dXJuICJEaXJlY3RvcnkiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6
RGlzY2xvc3VyZVRyaWFuZ2xlOgotICAgICAgICByZXR1cm4gIkRpc2Nsb3N1cmVUcmlhbmdsZSI7
CisgICAgICAgIHJldHVybiAiRGlzY2xvc3VyZVRyaWFuZ2xlIl9zOwogICAgIGNhc2UgQWNjZXNz
aWJpbGl0eVJvbGU6OkRpdjoKLSAgICAgICAgcmV0dXJuICJEaXYiOworICAgICAgICByZXR1cm4g
IkRpdiJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpEb2N1bWVudDoKLSAgICAgICAg
cmV0dXJuICJEb2N1bWVudCI7CisgICAgICAgIHJldHVybiAiRG9jdW1lbnQiX3M7CiAgICAgY2Fz
ZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RG9jdW1lbnRBcnRpY2xlOgotICAgICAgICByZXR1cm4gIkRv
Y3VtZW50QXJ0aWNsZSI7CisgICAgICAgIHJldHVybiAiRG9jdW1lbnRBcnRpY2xlIl9zOwogICAg
IGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRvY3VtZW50TWF0aDoKLSAgICAgICAgcmV0dXJuICJE
b2N1bWVudE1hdGgiOworICAgICAgICByZXR1cm4gIkRvY3VtZW50TWF0aCJfczsKICAgICBjYXNl
IEFjY2Vzc2liaWxpdHlSb2xlOjpEb2N1bWVudE5vdGU6Ci0gICAgICAgIHJldHVybiAiRG9jdW1l
bnROb3RlIjsKKyAgICAgICAgcmV0dXJuICJEb2N1bWVudE5vdGUiX3M7CiAgICAgY2FzZSBBY2Nl
c3NpYmlsaXR5Um9sZTo6RHJhd2VyOgotICAgICAgICByZXR1cm4gIkRyYXdlciI7CisgICAgICAg
IHJldHVybiAiRHJhd2VyIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkVkaXRhYmxl
VGV4dDoKLSAgICAgICAgcmV0dXJuICJFZGl0YWJsZVRleHQiOworICAgICAgICByZXR1cm4gIkVk
aXRhYmxlVGV4dCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpGZWVkOgotICAgICAg
ICByZXR1cm4gIkZlZWQiOworICAgICAgICByZXR1cm4gIkZlZWQiX3M7CiAgICAgY2FzZSBBY2Nl
c3NpYmlsaXR5Um9sZTo6RmlndXJlOgotICAgICAgICByZXR1cm4gIkZpZ3VyZSI7CisgICAgICAg
IHJldHVybiAiRmlndXJlIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkZvb3RlcjoK
LSAgICAgICAgcmV0dXJuICJGb290ZXIiOworICAgICAgICByZXR1cm4gIkZvb3RlciJfczsKICAg
ICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpGb290bm90ZToKLSAgICAgICAgcmV0dXJuICJGb290
bm90ZSI7CisgICAgICAgIHJldHVybiAiRm9vdG5vdGUiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmls
aXR5Um9sZTo6Rm9ybToKLSAgICAgICAgcmV0dXJuICJGb3JtIjsKKyAgICAgICAgcmV0dXJuICJG
b3JtIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkdyYXBoaWNzRG9jdW1lbnQ6Ci0g
ICAgICAgIHJldHVybiAiR3JhcGhpY3NEb2N1bWVudCI7CisgICAgICAgIHJldHVybiAiR3JhcGhp
Y3NEb2N1bWVudCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpHcmFwaGljc09iamVj
dDoKLSAgICAgICAgcmV0dXJuICJHcmFwaGljc09iamVjdCI7CisgICAgICAgIHJldHVybiAiR3Jh
cGhpY3NPYmplY3QiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6R3JhcGhpY3NTeW1i
b2w6Ci0gICAgICAgIHJldHVybiAiR3JhcGhpY3NTeW1ib2wiOworICAgICAgICByZXR1cm4gIkdy
YXBoaWNzU3ltYm9sIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkdyaWQ6Ci0gICAg
ICAgIHJldHVybiAiR3JpZCI7CisgICAgICAgIHJldHVybiAiR3JpZCJfczsKICAgICBjYXNlIEFj
Y2Vzc2liaWxpdHlSb2xlOjpHcmlkQ2VsbDoKLSAgICAgICAgcmV0dXJuICJHcmlkQ2VsbCI7Cisg
ICAgICAgIHJldHVybiAiR3JpZENlbGwiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6
R3JvdXA6Ci0gICAgICAgIHJldHVybiAiR3JvdXAiOworICAgICAgICByZXR1cm4gIkdyb3VwIl9z
OwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Okdyb3dBcmVhOgotICAgICAgICByZXR1cm4g
Ikdyb3dBcmVhIjsKKyAgICAgICAgcmV0dXJuICJHcm93QXJlYSJfczsKICAgICBjYXNlIEFjY2Vz
c2liaWxpdHlSb2xlOjpIZWFkaW5nOgotICAgICAgICByZXR1cm4gIkhlYWRpbmciOworICAgICAg
ICByZXR1cm4gIkhlYWRpbmciX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6SGVscFRh
ZzoKLSAgICAgICAgcmV0dXJuICJIZWxwVGFnIjsKKyAgICAgICAgcmV0dXJuICJIZWxwVGFnIl9z
OwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Okhvcml6b250YWxSdWxlOgotICAgICAgICBy
ZXR1cm4gIkhvcml6b250YWxSdWxlIjsKKyAgICAgICAgcmV0dXJuICJIb3Jpem9udGFsUnVsZSJf
czsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpJZ25vcmVkOgotICAgICAgICByZXR1cm4g
Iklnbm9yZWQiOworICAgICAgICByZXR1cm4gIklnbm9yZWQiX3M7CiAgICAgY2FzZSBBY2Nlc3Np
YmlsaXR5Um9sZTo6SW5saW5lOgotICAgICAgICByZXR1cm4gIklubGluZSI7CisgICAgICAgIHJl
dHVybiAiSW5saW5lIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkltYWdlOgotICAg
ICAgICByZXR1cm4gIkltYWdlIjsKKyAgICAgICAgcmV0dXJuICJJbWFnZSJfczsKICAgICBjYXNl
IEFjY2Vzc2liaWxpdHlSb2xlOjpJbWFnZU1hcDoKLSAgICAgICAgcmV0dXJuICJJbWFnZU1hcCI7
CisgICAgICAgIHJldHVybiAiSW1hZ2VNYXAiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9s
ZTo6SW1hZ2VNYXBMaW5rOgotICAgICAgICByZXR1cm4gIkltYWdlTWFwTGluayI7CisgICAgICAg
IHJldHVybiAiSW1hZ2VNYXBMaW5rIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Oklu
Y3JlbWVudG9yOgotICAgICAgICByZXR1cm4gIkluY3JlbWVudG9yIjsKKyAgICAgICAgcmV0dXJu
ICJJbmNyZW1lbnRvciJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpJbnNlcnRpb246
Ci0gICAgICAgIHJldHVybiAiSW5zZXJ0aW9uIjsKKyAgICAgICAgcmV0dXJuICJJbnNlcnRpb24i
X3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFiZWw6Ci0gICAgICAgIHJldHVybiAi
TGFiZWwiOworICAgICAgICByZXR1cm4gIkxhYmVsIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0
eVJvbGU6OkxhbmRtYXJrQmFubmVyOgotICAgICAgICByZXR1cm4gIkxhbmRtYXJrQmFubmVyIjsK
KyAgICAgICAgcmV0dXJuICJMYW5kbWFya0Jhbm5lciJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxp
dHlSb2xlOjpMYW5kbWFya0NvbXBsZW1lbnRhcnk6Ci0gICAgICAgIHJldHVybiAiTGFuZG1hcmtD
b21wbGVtZW50YXJ5IjsKKyAgICAgICAgcmV0dXJuICJMYW5kbWFya0NvbXBsZW1lbnRhcnkiX3M7
CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtDb250ZW50SW5mbzoKLSAgICAg
ICAgcmV0dXJuICJMYW5kbWFya0NvbnRlbnRJbmZvIjsKKyAgICAgICAgcmV0dXJuICJMYW5kbWFy
a0NvbnRlbnRJbmZvIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJrRG9j
UmVnaW9uOgotICAgICAgICByZXR1cm4gIkxhbmRtYXJrRG9jUmVnaW9uIjsKKyAgICAgICAgcmV0
dXJuICJMYW5kbWFya0RvY1JlZ2lvbiJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpM
YW5kbWFya01haW46Ci0gICAgICAgIHJldHVybiAiTGFuZG1hcmtNYWluIjsKKyAgICAgICAgcmV0
dXJuICJMYW5kbWFya01haW4iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1h
cmtOYXZpZ2F0aW9uOgotICAgICAgICByZXR1cm4gIkxhbmRtYXJrTmF2aWdhdGlvbiI7CisgICAg
ICAgIHJldHVybiAiTGFuZG1hcmtOYXZpZ2F0aW9uIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0
eVJvbGU6OkxhbmRtYXJrUmVnaW9uOgotICAgICAgICByZXR1cm4gIkxhbmRtYXJrUmVnaW9uIjsK
KyAgICAgICAgcmV0dXJuICJMYW5kbWFya1JlZ2lvbiJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxp
dHlSb2xlOjpMYW5kbWFya1NlYXJjaDoKLSAgICAgICAgcmV0dXJuICJMYW5kbWFya1NlYXJjaCI7
CisgICAgICAgIHJldHVybiAiTGFuZG1hcmtTZWFyY2giX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmls
aXR5Um9sZTo6TGVnZW5kOgotICAgICAgICByZXR1cm4gIkxlZ2VuZCI7CisgICAgICAgIHJldHVy
biAiTGVnZW5kIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Okxpbms6Ci0gICAgICAg
IHJldHVybiAiTGluayI7CisgICAgICAgIHJldHVybiAiTGluayJfczsKICAgICBjYXNlIEFjY2Vz
c2liaWxpdHlSb2xlOjpMaXN0OgotICAgICAgICByZXR1cm4gIkxpc3QiOworICAgICAgICByZXR1
cm4gIkxpc3QiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGlzdEJveDoKLSAgICAg
ICAgcmV0dXJuICJMaXN0Qm94IjsKKyAgICAgICAgcmV0dXJuICJMaXN0Qm94Il9zOwogICAgIGNh
c2UgQWNjZXNzaWJpbGl0eVJvbGU6Okxpc3RCb3hPcHRpb246Ci0gICAgICAgIHJldHVybiAiTGlz
dEJveE9wdGlvbiI7CisgICAgICAgIHJldHVybiAiTGlzdEJveE9wdGlvbiJfczsKICAgICBjYXNl
IEFjY2Vzc2liaWxpdHlSb2xlOjpMaXN0SXRlbToKLSAgICAgICAgcmV0dXJuICJMaXN0SXRlbSI7
CisgICAgICAgIHJldHVybiAiTGlzdEl0ZW0iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9s
ZTo6TGlzdE1hcmtlcjoKLSAgICAgICAgcmV0dXJuICJMaXN0TWFya2VyIjsKKyAgICAgICAgcmV0
dXJuICJMaXN0TWFya2VyIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Ok1hcms6Ci0g
ICAgICAgIHJldHVybiAiTWFyayI7CisgICAgICAgIHJldHVybiAiTWFyayJfczsKICAgICBjYXNl
IEFjY2Vzc2liaWxpdHlSb2xlOjpNYXRoRWxlbWVudDoKLSAgICAgICAgcmV0dXJuICJNYXRoRWxl
bWVudCI7CisgICAgICAgIHJldHVybiAiTWF0aEVsZW1lbnQiX3M7CiAgICAgY2FzZSBBY2Nlc3Np
YmlsaXR5Um9sZTo6TWF0dGU6Ci0gICAgICAgIHJldHVybiAiTWF0dGUiOworICAgICAgICByZXR1
cm4gIk1hdHRlIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Ok1lbnU6Ci0gICAgICAg
IHJldHVybiAiTWVudSI7CisgICAgICAgIHJldHVybiAiTWVudSJfczsKICAgICBjYXNlIEFjY2Vz
c2liaWxpdHlSb2xlOjpNZW51QmFyOgotICAgICAgICByZXR1cm4gIk1lbnVCYXIiOworICAgICAg
ICByZXR1cm4gIk1lbnVCYXIiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TWVudUJ1
dHRvbjoKLSAgICAgICAgcmV0dXJuICJNZW51QnV0dG9uIjsKKyAgICAgICAgcmV0dXJuICJNZW51
QnV0dG9uIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Ok1lbnVJdGVtOgotICAgICAg
ICByZXR1cm4gIk1lbnVJdGVtIjsKKyAgICAgICAgcmV0dXJuICJNZW51SXRlbSJfczsKICAgICBj
YXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpNZW51SXRlbUNoZWNrYm94OgotICAgICAgICByZXR1cm4g
Ik1lbnVJdGVtQ2hlY2tib3giOworICAgICAgICByZXR1cm4gIk1lbnVJdGVtQ2hlY2tib3giX3M7
CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TWVudUl0ZW1SYWRpbzoKLSAgICAgICAgcmV0
dXJuICJNZW51SXRlbVJhZGlvIjsKKyAgICAgICAgcmV0dXJuICJNZW51SXRlbVJhZGlvIl9zOwog
ICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6Ok1lbnVMaXN0UG9wdXA6Ci0gICAgICAgIHJldHVy
biAiTWVudUxpc3RQb3B1cCI7CisgICAgICAgIHJldHVybiAiTWVudUxpc3RQb3B1cCJfczsKICAg
ICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpNZW51TGlzdE9wdGlvbjoKLSAgICAgICAgcmV0dXJu
ICJNZW51TGlzdE9wdGlvbiI7CisgICAgICAgIHJldHVybiAiTWVudUxpc3RPcHRpb24iX3M7CiAg
ICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TWV0ZXI6Ci0gICAgICAgIHJldHVybiAiTWV0ZXIi
OworICAgICAgICByZXR1cm4gIk1ldGVyIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6
Ok1vZGVsOgotICAgICAgICByZXR1cm4gIk1vZGVsIjsKKyAgICAgICAgcmV0dXJuICJNb2RlbCJf
czsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpPdXRsaW5lOgotICAgICAgICByZXR1cm4g
Ik91dGxpbmUiOworICAgICAgICByZXR1cm4gIk91dGxpbmUiX3M7CiAgICAgY2FzZSBBY2Nlc3Np
YmlsaXR5Um9sZTo6UGFyYWdyYXBoOgotICAgICAgICByZXR1cm4gIlBhcmFncmFwaCI7CisgICAg
ICAgIHJldHVybiAiUGFyYWdyYXBoIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlBv
cFVwQnV0dG9uOgotICAgICAgICByZXR1cm4gIlBvcFVwQnV0dG9uIjsKKyAgICAgICAgcmV0dXJu
ICJQb3BVcEJ1dHRvbiJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpQcmU6Ci0gICAg
ICAgIHJldHVybiAiUHJlIjsKKyAgICAgICAgcmV0dXJuICJQcmUiX3M7CiAgICAgY2FzZSBBY2Nl
c3NpYmlsaXR5Um9sZTo6UHJlc2VudGF0aW9uYWw6Ci0gICAgICAgIHJldHVybiAiUHJlc2VudGF0
aW9uYWwiOworICAgICAgICByZXR1cm4gIlByZXNlbnRhdGlvbmFsIl9zOwogICAgIGNhc2UgQWNj
ZXNzaWJpbGl0eVJvbGU6OlByb2dyZXNzSW5kaWNhdG9yOgotICAgICAgICByZXR1cm4gIlByb2dy
ZXNzSW5kaWNhdG9yIjsKKyAgICAgICAgcmV0dXJuICJQcm9ncmVzc0luZGljYXRvciJfczsKICAg
ICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpSYWRpb0J1dHRvbjoKLSAgICAgICAgcmV0dXJuICJS
YWRpb0J1dHRvbiI7CisgICAgICAgIHJldHVybiAiUmFkaW9CdXR0b24iX3M7CiAgICAgY2FzZSBB
Y2Nlc3NpYmlsaXR5Um9sZTo6UmFkaW9Hcm91cDoKLSAgICAgICAgcmV0dXJuICJSYWRpb0dyb3Vw
IjsKKyAgICAgICAgcmV0dXJuICJSYWRpb0dyb3VwIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0
eVJvbGU6OlJvd0hlYWRlcjoKLSAgICAgICAgcmV0dXJuICJSb3dIZWFkZXIiOworICAgICAgICBy
ZXR1cm4gIlJvd0hlYWRlciJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpSb3c6Ci0g
ICAgICAgIHJldHVybiAiUm93IjsKKyAgICAgICAgcmV0dXJuICJSb3ciX3M7CiAgICAgY2FzZSBB
Y2Nlc3NpYmlsaXR5Um9sZTo6Um93R3JvdXA6Ci0gICAgICAgIHJldHVybiAiUm93R3JvdXAiOwor
ICAgICAgICByZXR1cm4gIlJvd0dyb3VwIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6
OlJ1YnlCYXNlOgotICAgICAgICByZXR1cm4gIlJ1YnlCYXNlIjsKKyAgICAgICAgcmV0dXJuICJS
dWJ5QmFzZSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpSdWJ5QmxvY2s6Ci0gICAg
ICAgIHJldHVybiAiUnVieUJsb2NrIjsKKyAgICAgICAgcmV0dXJuICJSdWJ5QmxvY2siX3M7CiAg
ICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6UnVieUlubGluZToKLSAgICAgICAgcmV0dXJuICJS
dWJ5SW5saW5lIjsKKyAgICAgICAgcmV0dXJuICJSdWJ5SW5saW5lIl9zOwogICAgIGNhc2UgQWNj
ZXNzaWJpbGl0eVJvbGU6OlJ1YnlSdW46Ci0gICAgICAgIHJldHVybiAiUnVieVJ1biI7CisgICAg
ICAgIHJldHVybiAiUnVieVJ1biJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpSdWJ5
VGV4dDoKLSAgICAgICAgcmV0dXJuICJSdWJ5VGV4dCI7CisgICAgICAgIHJldHVybiAiUnVieVRl
eHQiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6UnVsZXI6Ci0gICAgICAgIHJldHVy
biAiUnVsZXIiOworICAgICAgICByZXR1cm4gIlJ1bGVyIl9zOwogICAgIGNhc2UgQWNjZXNzaWJp
bGl0eVJvbGU6OlJ1bGVyTWFya2VyOgotICAgICAgICByZXR1cm4gIlJ1bGVyTWFya2VyIjsKKyAg
ICAgICAgcmV0dXJuICJSdWxlck1hcmtlciJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xl
OjpTY3JvbGxBcmVhOgotICAgICAgICByZXR1cm4gIlNjcm9sbEFyZWEiOworICAgICAgICByZXR1
cm4gIlNjcm9sbEFyZWEiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6U2Nyb2xsQmFy
OgotICAgICAgICByZXR1cm4gIlNjcm9sbEJhciI7CisgICAgICAgIHJldHVybiAiU2Nyb2xsQmFy
Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlNlYXJjaEZpZWxkOgotICAgICAgICBy
ZXR1cm4gIlNlYXJjaEZpZWxkIjsKKyAgICAgICAgcmV0dXJuICJTZWFyY2hGaWVsZCJfczsKICAg
ICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpTaGVldDoKLSAgICAgICAgcmV0dXJuICJTaGVldCI7
CisgICAgICAgIHJldHVybiAiU2hlZXQiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6
U2xpZGVyOgotICAgICAgICByZXR1cm4gIlNsaWRlciI7CisgICAgICAgIHJldHVybiAiU2xpZGVy
Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlNsaWRlclRodW1iOgotICAgICAgICBy
ZXR1cm4gIlNsaWRlclRodW1iIjsKKyAgICAgICAgcmV0dXJuICJTbGlkZXJUaHVtYiJfczsKICAg
ICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpTcGluQnV0dG9uOgotICAgICAgICByZXR1cm4gIlNw
aW5CdXR0b24iOworICAgICAgICByZXR1cm4gIlNwaW5CdXR0b24iX3M7CiAgICAgY2FzZSBBY2Nl
c3NpYmlsaXR5Um9sZTo6U3BpbkJ1dHRvblBhcnQ6Ci0gICAgICAgIHJldHVybiAiU3BpbkJ1dHRv
blBhcnQiOworICAgICAgICByZXR1cm4gIlNwaW5CdXR0b25QYXJ0Il9zOwogICAgIGNhc2UgQWNj
ZXNzaWJpbGl0eVJvbGU6OlNwbGl0R3JvdXA6Ci0gICAgICAgIHJldHVybiAiU3BsaXRHcm91cCI7
CisgICAgICAgIHJldHVybiAiU3BsaXRHcm91cCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlS
b2xlOjpTcGxpdHRlcjoKLSAgICAgICAgcmV0dXJuICJTcGxpdHRlciI7CisgICAgICAgIHJldHVy
biAiU3BsaXR0ZXIiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6U3RhdGljVGV4dDoK
LSAgICAgICAgcmV0dXJuICJTdGF0aWNUZXh0IjsKKyAgICAgICAgcmV0dXJuICJTdGF0aWNUZXh0
Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlN1YnNjcmlwdDoKLSAgICAgICAgcmV0
dXJuICJTdWJzY3JpcHQiOworICAgICAgICByZXR1cm4gIlN1YnNjcmlwdCJfczsKICAgICBjYXNl
IEFjY2Vzc2liaWxpdHlSb2xlOjpTdW1tYXJ5OgotICAgICAgICByZXR1cm4gIlN1bW1hcnkiOwor
ICAgICAgICByZXR1cm4gIlN1bW1hcnkiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6
U3VwZXJzY3JpcHQ6Ci0gICAgICAgIHJldHVybiAiU3VwZXJzY3JpcHQiOworICAgICAgICByZXR1
cm4gIlN1cGVyc2NyaXB0Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlN3aXRjaDoK
LSAgICAgICAgcmV0dXJuICJTd2l0Y2giOworICAgICAgICByZXR1cm4gIlN3aXRjaCJfczsKICAg
ICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpTeXN0ZW1XaWRlOgotICAgICAgICByZXR1cm4gIlN5
c3RlbVdpZGUiOworICAgICAgICByZXR1cm4gIlN5c3RlbVdpZGUiX3M7CiAgICAgY2FzZSBBY2Nl
c3NpYmlsaXR5Um9sZTo6U1ZHUm9vdDoKLSAgICAgICAgcmV0dXJuICJTVkdSb290IjsKKyAgICAg
ICAgcmV0dXJuICJTVkdSb290Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlNWR1Rl
eHQ6Ci0gICAgICAgIHJldHVybiAiU1ZHVGV4dCI7CisgICAgICAgIHJldHVybiAiU1ZHVGV4dCJf
czsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpTVkdUU3BhbjoKLSAgICAgICAgcmV0dXJu
ICJTVkdUU3BhbiI7CisgICAgICAgIHJldHVybiAiU1ZHVFNwYW4iX3M7CiAgICAgY2FzZSBBY2Nl
c3NpYmlsaXR5Um9sZTo6U1ZHVGV4dFBhdGg6Ci0gICAgICAgIHJldHVybiAiU1ZHVGV4dFBhdGgi
OworICAgICAgICByZXR1cm4gIlNWR1RleHRQYXRoIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0
eVJvbGU6OlRhYkdyb3VwOgotICAgICAgICByZXR1cm4gIlRhYkdyb3VwIjsKKyAgICAgICAgcmV0
dXJuICJUYWJHcm91cCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpUYWJMaXN0Ogot
ICAgICAgICByZXR1cm4gIlRhYkxpc3QiOworICAgICAgICByZXR1cm4gIlRhYkxpc3QiX3M7CiAg
ICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VGFiUGFuZWw6Ci0gICAgICAgIHJldHVybiAiVGFi
UGFuZWwiOworICAgICAgICByZXR1cm4gIlRhYlBhbmVsIl9zOwogICAgIGNhc2UgQWNjZXNzaWJp
bGl0eVJvbGU6OlRhYjoKLSAgICAgICAgcmV0dXJuICJUYWIiOworICAgICAgICByZXR1cm4gIlRh
YiJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpUYWJsZToKLSAgICAgICAgcmV0dXJu
ICJUYWJsZSI7CisgICAgICAgIHJldHVybiAiVGFibGUiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmls
aXR5Um9sZTo6VGFibGVIZWFkZXJDb250YWluZXI6Ci0gICAgICAgIHJldHVybiAiVGFibGVIZWFk
ZXJDb250YWluZXIiOworICAgICAgICByZXR1cm4gIlRhYmxlSGVhZGVyQ29udGFpbmVyIl9zOwog
ICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlRlcm06Ci0gICAgICAgIHJldHVybiAiVGVybSI7
CisgICAgICAgIHJldHVybiAiVGVybSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpU
ZXh0QXJlYToKLSAgICAgICAgcmV0dXJuICJUZXh0QXJlYSI7CisgICAgICAgIHJldHVybiAiVGV4
dEFyZWEiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VGV4dEZpZWxkOgotICAgICAg
ICByZXR1cm4gIlRleHRGaWVsZCI7CisgICAgICAgIHJldHVybiAiVGV4dEZpZWxkIl9zOwogICAg
IGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlRleHRHcm91cDoKLSAgICAgICAgcmV0dXJuICJUZXh0
R3JvdXAiOworICAgICAgICByZXR1cm4gIlRleHRHcm91cCJfczsKICAgICBjYXNlIEFjY2Vzc2li
aWxpdHlSb2xlOjpUaW1lOgotICAgICAgICByZXR1cm4gIlRpbWUiOworICAgICAgICByZXR1cm4g
IlRpbWUiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VHJlZToKLSAgICAgICAgcmV0
dXJuICJUcmVlIjsKKyAgICAgICAgcmV0dXJuICJUcmVlIl9zOwogICAgIGNhc2UgQWNjZXNzaWJp
bGl0eVJvbGU6OlRyZWVHcmlkOgotICAgICAgICByZXR1cm4gIlRyZWVHcmlkIjsKKyAgICAgICAg
cmV0dXJuICJUcmVlR3JpZCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpUcmVlSXRl
bToKLSAgICAgICAgcmV0dXJuICJUcmVlSXRlbSI7CisgICAgICAgIHJldHVybiAiVHJlZUl0ZW0i
X3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VG9nZ2xlQnV0dG9uOgotICAgICAgICBy
ZXR1cm4gIlRvZ2dsZUJ1dHRvbiI7CisgICAgICAgIHJldHVybiAiVG9nZ2xlQnV0dG9uIl9zOwog
ICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlRvb2xiYXI6Ci0gICAgICAgIHJldHVybiAiVG9v
bGJhciI7CisgICAgICAgIHJldHVybiAiVG9vbGJhciJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxp
dHlSb2xlOjpVbmtub3duOgotICAgICAgICByZXR1cm4gIlVua25vd24iOworICAgICAgICByZXR1
cm4gIlVua25vd24iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VXNlckludGVyZmFj
ZVRvb2x0aXA6Ci0gICAgICAgIHJldHVybiAiVXNlckludGVyZmFjZVRvb2x0aXAiOworICAgICAg
ICByZXR1cm4gIlVzZXJJbnRlcmZhY2VUb29sdGlwIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0
eVJvbGU6OlZhbHVlSW5kaWNhdG9yOgotICAgICAgICByZXR1cm4gIlZhbHVlSW5kaWNhdG9yIjsK
KyAgICAgICAgcmV0dXJuICJWYWx1ZUluZGljYXRvciJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxp
dHlSb2xlOjpWaWRlbzoKLSAgICAgICAgcmV0dXJuICJWaWRlbyI7CisgICAgICAgIHJldHVybiAi
VmlkZW8iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6V2ViQXBwbGljYXRpb246Ci0g
ICAgICAgIHJldHVybiAiV2ViQXBwbGljYXRpb24iOworICAgICAgICByZXR1cm4gIldlYkFwcGxp
Y2F0aW9uIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OldlYkFyZWE6Ci0gICAgICAg
IHJldHVybiAiV2ViQXJlYSI7CisgICAgICAgIHJldHVybiAiV2ViQXJlYSJfczsKICAgICBjYXNl
IEFjY2Vzc2liaWxpdHlSb2xlOjpXZWJDb3JlTGluazoKLSAgICAgICAgcmV0dXJuICJXZWJDb3Jl
TGluayI7CisgICAgICAgIHJldHVybiAiV2ViQ29yZUxpbmsiX3M7CiAgICAgY2FzZSBBY2Nlc3Np
YmlsaXR5Um9sZTo6V2luZG93OgotICAgICAgICByZXR1cm4gIldpbmRvdyI7CisgICAgICAgIHJl
dHVybiAiV2luZG93Il9zOwogICAgIH0KICAgICBVTlJFQUNIQUJMRSgpOwotICAgIHJldHVybiAi
IjsKKyAgICByZXR1cm4gIiJfczsKIH0KIAogZW51bSBjbGFzcyBBY2Nlc3NpYmlsaXR5RGV0YWNo
bWVudFR5cGUgeyBDYWNoZURlc3Ryb3llZCwgRWxlbWVudERlc3Ryb3llZCwgRWxlbWVudENoYW5n
ZWQgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eVJlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3QuY3BwCmluZGV4IDQ0MjI5NTVhMzg2NWRiYzVkZDcyMzU0Y2Ji
ZmJmMjAyNzY3MTViMDYuLmE2ZDMxMDJjODgyYTYwOThmNDc5MmI3YmNkMDZiYTI2ZDQyODdkOGEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVJl
bmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3Np
YmlsaXR5UmVuZGVyT2JqZWN0LmNwcApAQCAtMjc4NywxMSArMjc4NywxMSBAQCBib29sIEFjY2Vz
c2liaWxpdHlSZW5kZXJPYmplY3Q6OnJlbmRlck9iamVjdElzT2JzZXJ2YWJsZShSZW5kZXJPYmpl
Y3QmIHJlbmRlcmVyKQogICAgIGlmICghbm9kZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IAotICAgIGlmIChub2RlSGFzUm9sZShub2RlLCAibGlzdGJveCIpIHx8IChpczxSZW5kZXJCb3hN
b2RlbE9iamVjdD4ocmVuZGVyZXIpICYmIGRvd25jYXN0PFJlbmRlckJveE1vZGVsT2JqZWN0Pihy
ZW5kZXJlcikuaXNMaXN0Qm94KCkpKQorICAgIGlmIChub2RlSGFzUm9sZShub2RlLCAibGlzdGJv
eCJfcykgfHwgKGlzPFJlbmRlckJveE1vZGVsT2JqZWN0PihyZW5kZXJlcikgJiYgZG93bmNhc3Q8
UmVuZGVyQm94TW9kZWxPYmplY3Q+KHJlbmRlcmVyKS5pc0xpc3RCb3goKSkpCiAgICAgICAgIHJl
dHVybiB0cnVlOwogCiAgICAgLy8gVGV4dGJveGVzIHNob3VsZCBzZW5kIG91dCBub3RpZmljYXRp
b25zLgotICAgIGlmIChub2RlSGFzUm9sZShub2RlLCAidGV4dGJveCIpIHx8IChpczxFbGVtZW50
Pigqbm9kZSkgJiYgY29udGVudEVkaXRhYmxlQXR0cmlidXRlSXNFbmFibGVkKGRvd25jYXN0PEVs
ZW1lbnQ+KG5vZGUpKSkpCisgICAgaWYgKG5vZGVIYXNSb2xlKG5vZGUsICJ0ZXh0Ym94Il9zKSB8
fCAoaXM8RWxlbWVudD4oKm5vZGUpICYmIGNvbnRlbnRFZGl0YWJsZUF0dHJpYnV0ZUlzRW5hYmxl
ZChkb3duY2FzdDxFbGVtZW50Pihub2RlKSkpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAK
ICAgICByZXR1cm4gZmFsc2U7CkBAIC0yODQwLDcgKzI4NDAsNyBAQCBib29sIEFjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3Q6OnNob3VsZElnbm9yZUF0dHJpYnV0ZVJvbGUoKSBjb25zdAogCiBBY2Nl
c3NpYmlsaXR5Um9sZSBBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0OjpkZXRlcm1pbmVBY2Nlc3Np
YmlsaXR5Um9sZSgpCiB7Ci0gICAgQVhUUkFDRSgiQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6
ZGV0ZXJtaW5lQWNjZXNzaWJpbGl0eVJvbGUiKTsKKyAgICBBWFRSQUNFKCJBY2Nlc3NpYmlsaXR5
UmVuZGVyT2JqZWN0OjpkZXRlcm1pbmVBY2Nlc3NpYmlsaXR5Um9sZSJfcyk7CiAgICAgaWYgKCFt
X3JlbmRlcmVyKQogICAgICAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVJvbGU6OlVua25vd247CiAK
QEAgLTMyODAsNyArMzI4MCw3IEBAIHZvaWQgQWNjZXNzaWJpbGl0eVJlbmRlck9iamVjdDo6YWRk
TGlzdEl0ZW1NYXJrZXIoKQogCiB2b2lkIEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q6OnVwZGF0
ZVJvbGVBZnRlckNoaWxkcmVuQ3JlYXRpb24oKQogewotICAgIEFYVFJBQ0UoIkFjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3Q6OnVwZGF0ZVJvbGVBZnRlckNoaWxkcmVuQ3JlYXRpb24iKTsKKyAgICBB
WFRSQUNFKCJBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0Ojp1cGRhdGVSb2xlQWZ0ZXJDaGlsZHJl
bkNyZWF0aW9uIl9zKTsKICAgICAvLyBJZiBhIG1lbnUgZG9lcyBub3QgaGF2ZSB2YWxpZCBtZW51
aXRlbSBjaGlsZHJlbiwgaXQgc2hvdWxkIG5vdCBiZSBleHBvc2VkIGFzIGEgbWVudS4KICAgICBh
dXRvIHJvbGUgPSByb2xlVmFsdWUoKTsKICAgICBpZiAocm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9s
ZTo6TWVudSkgewpAQCAtMzM2NCw3ICszMzY0LDcgQEAgY29uc3QgU3RyaW5nIEFjY2Vzc2liaWxp
dHlSZW5kZXJPYmplY3Q6OmxpdmVSZWdpb25SZWxldmFudCgpIGNvbnN0CiAKICAgICAvLyBEZWZh
dWx0IGFyaWEtcmVsZXZhbnQgPSAiYWRkaXRpb25zIHRleHQiLgogICAgIGlmIChyZWxldmFudC5p
c0VtcHR5KCkpCi0gICAgICAgIHJldHVybiAiYWRkaXRpb25zIHRleHQiOworICAgICAgICByZXR1
cm4gImFkZGl0aW9ucyB0ZXh0Il9zOwogICAgIAogICAgIHJldHVybiByZWxldmFudDsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxl
Q2VsbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlUYWJs
ZUNlbGwuY3BwCmluZGV4IDI3Y2Y4NjlmNGQ1NzcxYzk4NGIyYmUzZjQ2MTI2Yjk4NzdiNjAwMTUu
LjM0YTdiYTdjY2RiNGU1M2FhNTU0NjE5ODBmMTU0ZDM4OGMyYWY0M2UgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRhYmxlQ2VsbC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VGFibGVDZWxsLmNw
cApAQCAtNjUsNyArNjUsNyBAQCBib29sIEFjY2Vzc2liaWxpdHlUYWJsZUNlbGw6OmNvbXB1dGVB
Y2Nlc3NpYmlsaXR5SXNJZ25vcmVkKCkgY29uc3QKICAgICAKICAgICAvLyBJZ25vcmUgYW5vbnlt
b3VzIHRhYmxlIGNlbGxzIGFzIGxvbmcgYXMgdGhleSdyZSBub3QgaW4gYSB0YWJsZSAoaWUuIHdo
ZW4gZGlzcGxheTp0YWJsZSBpcyB1c2VkKS4KICAgICBSZW5kZXJPYmplY3QqIHJlbmRlclRhYmxl
ID0gaXM8UmVuZGVyVGFibGVDZWxsPihyZW5kZXJlcigpKSA/IGRvd25jYXN0PFJlbmRlclRhYmxl
Q2VsbD4oKm1fcmVuZGVyZXIpLnRhYmxlKCkgOiBudWxscHRyOwotICAgIGJvb2wgaW5UYWJsZSA9
IHJlbmRlclRhYmxlICYmIHJlbmRlclRhYmxlLT5ub2RlKCkgJiYgKHJlbmRlclRhYmxlLT5ub2Rl
KCktPmhhc1RhZ05hbWUodGFibGVUYWcpIHx8IG5vZGVIYXNSb2xlKHJlbmRlclRhYmxlLT5ub2Rl
KCksICJncmlkIikpOworICAgIGJvb2wgaW5UYWJsZSA9IHJlbmRlclRhYmxlICYmIHJlbmRlclRh
YmxlLT5ub2RlKCkgJiYgKHJlbmRlclRhYmxlLT5ub2RlKCktPmhhc1RhZ05hbWUodGFibGVUYWcp
IHx8IG5vZGVIYXNSb2xlKHJlbmRlclRhYmxlLT5ub2RlKCksICJncmlkIl9zKSk7CiAgICAgaWYg
KCFub2RlKCkgJiYgIWluVGFibGUpCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eVRyZWUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VHJlZS5jcHAK
aW5kZXggNTkwYzk2MTU5NjA2MGRiNmRiMTU1Mzg5OGViMTZmMzBiNDU0ZTY4ZC4uMWMwMGJjOTU0
MjNlMjk2YWQ1MTI2Mzc3ZTQ4MWM3Y2U3OWRmYmQwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VHJlZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5VHJlZS5jcHAKQEAgLTY4LDcgKzY4LDcgQEAg
QWNjZXNzaWJpbGl0eVJvbGUgQWNjZXNzaWJpbGl0eVRyZWU6OmRldGVybWluZUFjY2Vzc2liaWxp
dHlSb2xlKCkKIGJvb2wgQWNjZXNzaWJpbGl0eVRyZWU6Om5vZGVIYXNUcmVlSXRlbUNoaWxkKE5v
ZGUmIG5vZGUpIGNvbnN0CiB7CiAgICAgZm9yIChhdXRvKiBjaGlsZCA9IG5vZGUuZmlyc3RDaGls
ZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkgewotICAgICAgICBpZiAo
bm9kZUhhc1JvbGUoY2hpbGQsICJ0cmVlaXRlbSIpKQorICAgICAgICBpZiAobm9kZUhhc1JvbGUo
Y2hpbGQsICJ0cmVlaXRlbSJfcykpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAg
ICAgcmV0dXJuIGZhbHNlOwpAQCAtOTIsMTQgKzkyLDE0IEBAIGJvb2wgQWNjZXNzaWJpbGl0eVRy
ZWU6OmlzVHJlZVZhbGlkKCkgY29uc3QKIAogICAgICAgICBpZiAoIWlzPEVsZW1lbnQ+KCpjaGls
ZCkpCiAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgaWYgKG5vZGVIYXNSb2xlKGNoaWxk
LCAidHJlZWl0ZW0iKSkKKyAgICAgICAgaWYgKG5vZGVIYXNSb2xlKGNoaWxkLCAidHJlZWl0ZW0i
X3MpKQogICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIGlmIChub2RlSGFzUm9sZShjaGls
ZCwgInByZXNlbnRhdGlvbiIpKSB7CisgICAgICAgIGlmIChub2RlSGFzUm9sZShjaGlsZCwgInBy
ZXNlbnRhdGlvbiJfcykpIHsKICAgICAgICAgICAgIGlmICghbm9kZUhhc1RyZWVJdGVtQ2hpbGQo
KmNoaWxkKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICBjb250
aW51ZTsKICAgICAgICAgfQotICAgICAgICBpZiAoIW5vZGVIYXNSb2xlKGNoaWxkLCAiZ3JvdXAi
KSkKKyAgICAgICAgaWYgKCFub2RlSGFzUm9sZShjaGlsZCwgImdyb3VwIl9zKSkKICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAogICAgICAgICBmb3IgKGF1dG8qIGdyb3VwQ2hpbGQgPSBjaGls
ZC0+Zmlyc3RDaGlsZCgpOyBncm91cENoaWxkOyBncm91cENoaWxkID0gZ3JvdXBDaGlsZC0+bmV4
dFNpYmxpbmcoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNv
bGF0ZWR0cmVlL0FYSXNvbGF0ZWRPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHAKaW5kZXggYWIxZTg5NTU5OTkz
MDU1YWY5YjExOGM0Nzg3OWJlZGMxNjk4NWUxNi4uMWE4MWM2ZmQ0NGVjNWFhOGI5MDY2YmMzNWNi
ODQ3ZWFkN2E0OWFlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9p
c29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZE9iamVjdC5jcHAKQEAgLTMwNSw3ICsz
MDUsNyBAQCB2b2lkIEFYSXNvbGF0ZWRPYmplY3Q6OmluaXRpYWxpemVBdHRyaWJ1dGVEYXRhKEFY
Q29yZU9iamVjdCYgY29yZU9iamVjdCwgYm9vbCBpcwogICAgICAgICBzZXRQcm9wZXJ0eShBWFBy
b3BlcnR5TmFtZTo6VGV4dExlbmd0aCwgb2JqZWN0LnRleHRMZW5ndGgoKSk7CiAKICAgICBpZiAo
b2JqZWN0LmlzUmFkaW9CdXR0b24oKSkgewotICAgICAgICBpZiAoYXV0byBuYW1lQXR0cmlidXRl
ID0gb2JqZWN0LmF0dHJpYnV0ZVZhbHVlKCJuYW1lIikpCisgICAgICAgIGlmIChhdXRvIG5hbWVB
dHRyaWJ1dGUgPSBvYmplY3QuYXR0cmlidXRlVmFsdWUoIm5hbWUiX3MpKQogICAgICAgICAgICAg
c2V0UHJvcGVydHkoQVhQcm9wZXJ0eU5hbWU6Ok5hbWVBdHRyaWJ1dGUsIG5hbWVBdHRyaWJ1dGUt
Pmlzb2xhdGVkQ29weSgpKTsKICAgICB9CiAKQEAgLTM2Miw3ICszNjIsNyBAQCB2b2lkIEFYSXNv
bGF0ZWRPYmplY3Q6OmluaXRpYWxpemVBdHRyaWJ1dGVEYXRhKEFYQ29yZU9iamVjdCYgY29yZU9i
amVjdCwgYm9vbCBpcwogICAgIFN0cmluZyBjb21iaW5lZENsYXNzTGlzdDsKICAgICBmb3IgKGF1
dG8gaXQgPSBjbGFzc0xpc3QuYmVnaW4oKSwgZW5kID0gY2xhc3NMaXN0LmVuZCgpOyBpdCAhPSBl
bmQ7ICsraXQpIHsKICAgICAgICAgY29tYmluZWRDbGFzc0xpc3QuYXBwZW5kKCppdCk7Ci0gICAg
ICAgIGNvbWJpbmVkQ2xhc3NMaXN0LmFwcGVuZCgiICIpOworICAgICAgICBjb21iaW5lZENsYXNz
TGlzdC5hcHBlbmQoIiAiX3MpOwogICAgIH0KICAgICBzZXRQcm9wZXJ0eShBWFByb3BlcnR5TmFt
ZTo6Q2xhc3NMaXN0LCBjb21iaW5lZENsYXNzTGlzdCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvaXNvbGF0ZWR0cmVlL0FYSXNvbGF0ZWRUcmVlLmNw
cAppbmRleCA2N2Y1YjFkZWZkOWM0NzhlZGViYjA3OTNjNjUwZTM4Y2YzOWEzYzRiLi4xY2U3ODUw
MmQyZWM3NzIyN2NiZjNkYjI3NTBjMDdhYmNlODM5Y2U3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9hY2Nlc3NpYmlsaXR5L2lzb2xhdGVkdHJlZS9BWElzb2xhdGVkVHJlZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9pc29sYXRlZHRyZWUvQVhJc29sYXRlZFRyZWUu
Y3BwCkBAIC02MiwxOCArNjIsMTggQEAgQVhJc29sYXRlZFRyZWU6OkFYSXNvbGF0ZWRUcmVlKEFY
T2JqZWN0Q2FjaGUqIGF4T2JqZWN0Q2FjaGUpCiAgICAgLCBtX2F4T2JqZWN0Q2FjaGUoYXhPYmpl
Y3RDYWNoZSkKICAgICAsIG1fdXNlZE9uQVhUaHJlYWQoYXhPYmplY3RDYWNoZS0+dXNlZE9uQVhU
aHJlYWQoKSkKIHsKLSAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6QVhJc29sYXRlZFRyZWUi
KTsKKyAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6QVhJc29sYXRlZFRyZWUiX3MpOwogICAg
IEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiB9CiAKIEFYSXNvbGF0ZWRUcmVlOjp+QVhJc29sYXRl
ZFRyZWUoKQogewotICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjp+QVhJc29sYXRlZFRyZWUi
KTsKKyAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6fkFYSXNvbGF0ZWRUcmVlIl9zKTsKIH0K
IAogdm9pZCBBWElzb2xhdGVkVHJlZTo6Y2xlYXIoKQogewotICAgIEFYVFJBQ0UoIkFYSXNvbGF0
ZWRUcmVlOjpjbGVhciIpOworICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjpjbGVhciJfcyk7
CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKICAgICBtX2F4T2JqZWN0Q2FjaGUgPSBudWxs
cHRyOwogICAgIG1fbm9kZU1hcC5jbGVhcigpOwpAQCAtODUsMTQgKzg1LDE0IEBAIHZvaWQgQVhJ
c29sYXRlZFRyZWU6OmNsZWFyKCkKIAogUmVmUHRyPEFYSXNvbGF0ZWRUcmVlPiBBWElzb2xhdGVk
VHJlZTo6dHJlZUZvcklEKEFYSXNvbGF0ZWRUcmVlSUQgdHJlZUlEKQogewotICAgIEFYVFJBQ0Uo
IkFYSXNvbGF0ZWRUcmVlOjp0cmVlRm9ySUQiKTsKKyAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJl
ZTo6dHJlZUZvcklEIl9zKTsKICAgICBMb2NrZXIgbG9ja2VyIHsgc19jYWNoZUxvY2sgfTsKICAg
ICByZXR1cm4gdHJlZUlEQ2FjaGUoKS5nZXQodHJlZUlEKTsKIH0KIAogUmVmPEFYSXNvbGF0ZWRU
cmVlPiBBWElzb2xhdGVkVHJlZTo6Y3JlYXRlKEFYT2JqZWN0Q2FjaGUqIGF4T2JqZWN0Q2FjaGUp
CiB7Ci0gICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OmNyZWF0ZSIpOworICAgIEFYVFJBQ0Uo
IkFYSXNvbGF0ZWRUcmVlOjpjcmVhdGUiX3MpOwogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7
CiAgICAgQVNTRVJUKGF4T2JqZWN0Q2FjaGUgJiYgYXhPYmplY3RDYWNoZS0+cGFnZUlEKCkpOwog
CkBAIC0xMjUsNyArMTI1LDcgQEAgUmVmPEFYSXNvbGF0ZWRUcmVlPiBBWElzb2xhdGVkVHJlZTo6
Y3JlYXRlKEFYT2JqZWN0Q2FjaGUqIGF4T2JqZWN0Q2FjaGUpCiAKIHZvaWQgQVhJc29sYXRlZFRy
ZWU6OnJlbW92ZVRyZWVGb3JQYWdlSUQoUGFnZUlkZW50aWZpZXIgcGFnZUlEKQogewotICAgIEFY
VFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjpyZW1vdmVUcmVlRm9yUGFnZUlEIik7CisgICAgQVhUUkFD
RSgiQVhJc29sYXRlZFRyZWU6OnJlbW92ZVRyZWVGb3JQYWdlSUQiX3MpOwogICAgIEFTU0VSVChp
c01haW5UaHJlYWQoKSk7CiAgICAgTG9ja2VyIGxvY2tlciB7IHNfY2FjaGVMb2NrIH07CiAKQEAg
LTE1Nyw3ICsxNTcsNyBAQCBSZWZQdHI8QVhJc29sYXRlZE9iamVjdD4gQVhJc29sYXRlZFRyZWU6
Om5vZGVGb3JJRChBWElEIGF4SUQpIGNvbnN0CiAKIFZlY3RvcjxSZWZQdHI8QVhDb3JlT2JqZWN0
Pj4gQVhJc29sYXRlZFRyZWU6Om9iamVjdHNGb3JJRHMoY29uc3QgVmVjdG9yPEFYSUQ+JiBheElE
cykgY29uc3QKIHsKLSAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6b2JqZWN0c0ZvcklEcyIp
OworICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjpvYmplY3RzRm9ySURzIl9zKTsKICAgICBW
ZWN0b3I8UmVmUHRyPEFYQ29yZU9iamVjdD4+IHJlc3VsdDsKICAgICByZXN1bHQucmVzZXJ2ZUlu
aXRpYWxDYXBhY2l0eShheElEcy5zaXplKCkpOwogICAgIGZvciAoYXV0byYgYXhJRCA6IGF4SURz
KSB7CkBAIC0xNzgsNyArMTc4LDcgQEAgVmVjdG9yPEFYSUQ+IEFYSXNvbGF0ZWRUcmVlOjppZHNG
b3JPYmplY3RzKGNvbnN0IFZlY3RvcjxSZWZQdHI8QVhDb3JlT2JqZWN0Pj4mIG8KIAogdm9pZCBB
WElzb2xhdGVkVHJlZTo6Z2VuZXJhdGVTdWJ0cmVlKEFYQ29yZU9iamVjdCYgYXhPYmplY3QsIEFY
Q29yZU9iamVjdCogYXhQYXJlbnQsIGJvb2wgYXR0YWNoV3JhcHBlcikKIHsKLSAgICBBWFRSQUNF
KCJBWElzb2xhdGVkVHJlZTo6Z2VuZXJhdGVTdWJ0cmVlIik7CisgICAgQVhUUkFDRSgiQVhJc29s
YXRlZFRyZWU6OmdlbmVyYXRlU3VidHJlZSJfcyk7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgp
KTsKIAogICAgIGlmICghYXhPYmplY3Qub2JqZWN0SUQoKS5pc1ZhbGlkKCkpCkBAIC0yNzcsNyAr
Mjc3LDcgQEAgdm9pZCBBWElzb2xhdGVkVHJlZTo6cXVldWVDaGFuZ2VzQW5kUmVtb3ZhbHMoY29u
c3QgVmVjdG9yPE5vZGVDaGFuZ2U+JiBjaGFuZ2VzLAogCiB2b2lkIEFYSXNvbGF0ZWRUcmVlOjpj
b2xsZWN0Tm9kZUNoYW5nZXNGb3JTdWJ0cmVlKEFYQ29yZU9iamVjdCYgYXhPYmplY3QsIEFYSUQg
cGFyZW50SUQsIGJvb2wgYXR0YWNoV3JhcHBlciwgVmVjdG9yPE5vZGVDaGFuZ2U+JiBjaGFuZ2Vz
LCBIYXNoU2V0PEFYSUQ+KiBpZHNCZWluZ0NoYW5nZWQpCiB7Ci0gICAgQVhUUkFDRSgiQVhJc29s
YXRlZFRyZWU6OmNvbGxlY3ROb2RlQ2hhbmdlc0ZvclN1YnRyZWUiKTsKKyAgICBBWFRSQUNFKCJB
WElzb2xhdGVkVHJlZTo6Y29sbGVjdE5vZGVDaGFuZ2VzRm9yU3VidHJlZSJfcyk7CiAgICAgQVNT
RVJUKGlzTWFpblRocmVhZCgpKTsKIAogICAgIGF1dG8gbm9kZUNoYW5nZSA9IG5vZGVDaGFuZ2VG
b3JPYmplY3QoYXhPYmplY3QsIHBhcmVudElELCBhdHRhY2hXcmFwcGVyKTsKQEAgLTI5NSw3ICsy
OTUsNyBAQCB2b2lkIEFYSXNvbGF0ZWRUcmVlOjpjb2xsZWN0Tm9kZUNoYW5nZXNGb3JTdWJ0cmVl
KEFYQ29yZU9iamVjdCYgYXhPYmplY3QsIEFYSUQgcAogCiB2b2lkIEFYSXNvbGF0ZWRUcmVlOjp1
cGRhdGVOb2RlKEFYQ29yZU9iamVjdCYgYXhPYmplY3QpCiB7Ci0gICAgQVhUUkFDRSgiQVhJc29s
YXRlZFRyZWU6OnVwZGF0ZU5vZGUiKTsKKyAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6dXBk
YXRlTm9kZSJfcyk7CiAgICAgQVhMT0coJmF4T2JqZWN0KTsKICAgICBBU1NFUlQoaXNNYWluVGhy
ZWFkKCkpOwogCkBAIC0zMTMsNyArMzEzLDcgQEAgdm9pZCBBWElzb2xhdGVkVHJlZTo6dXBkYXRl
Tm9kZShBWENvcmVPYmplY3QmIGF4T2JqZWN0KQogCiB2b2lkIEFYSXNvbGF0ZWRUcmVlOjp1cGRh
dGVOb2RlUHJvcGVydHkoY29uc3QgQVhDb3JlT2JqZWN0JiBheE9iamVjdCwgQVhQcm9wZXJ0eU5h
bWUgcHJvcGVydHkpCiB7Ci0gICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OnVwZGF0ZU5vZGVQ
cm9wZXJ0eSIpOworICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVOb2RlUHJvcGVy
dHkiX3MpOwogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKICAgICBBWFByb3BlcnR5TWFw
IHByb3BlcnR5TWFwOwpAQCAtMzQ4LDcgKzM0OCw3IEBAIHZvaWQgQVhJc29sYXRlZFRyZWU6OnVw
ZGF0ZU5vZGVQcm9wZXJ0eShjb25zdCBBWENvcmVPYmplY3QmIGF4T2JqZWN0LCBBWFByb3BlcnR5
CiAKIHZvaWQgQVhJc29sYXRlZFRyZWU6OnVwZGF0ZUNoaWxkcmVuKEFYQ29yZU9iamVjdCYgYXhP
YmplY3QpCiB7Ci0gICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OnVwZGF0ZUNoaWxkcmVuIik7
CisgICAgQVhUUkFDRSgiQVhJc29sYXRlZFRyZWU6OnVwZGF0ZUNoaWxkcmVuIl9zKTsKICAgICBB
WExPRygiRm9yIEFYT2JqZWN0OiIpOwogICAgIEFYTE9HKCZheE9iamVjdCk7CiAgICAgQVNTRVJU
KGlzTWFpblRocmVhZCgpKTsKQEAgLTQyMiw3ICs0MjIsNyBAQCB2b2lkIEFYSXNvbGF0ZWRUcmVl
Ojp1cGRhdGVDaGlsZHJlbihBWENvcmVPYmplY3QmIGF4T2JqZWN0KQogCiBSZWZQdHI8QVhJc29s
YXRlZE9iamVjdD4gQVhJc29sYXRlZFRyZWU6OmZvY3VzZWROb2RlKCkKIHsKLSAgICBBWFRSQUNF
KCJBWElzb2xhdGVkVHJlZTo6Zm9jdXNlZE5vZGUiKTsKKyAgICBBWFRSQUNFKCJBWElzb2xhdGVk
VHJlZTo6Zm9jdXNlZE5vZGUiX3MpOwogICAgIFJFTEVBU0VfQVNTRVJUKCFpc01haW5UaHJlYWQo
KSk7CiAgICAgLy8gQXBwbHkgcGVuZGluZyBjaGFuZ2VzIGluIGNhc2UgZm9jdXMgaGFzIGNoYW5n
ZWQgYW5kIGhhc24ndCBiZWVuIHVwZGF0ZWQuCiAgICAgYXBwbHlQZW5kaW5nQ2hhbmdlcygpOwpA
QCAtNDM0LDE0ICs0MzQsMTQgQEAgUmVmUHRyPEFYSXNvbGF0ZWRPYmplY3Q+IEFYSXNvbGF0ZWRU
cmVlOjpmb2N1c2VkTm9kZSgpCiAKIFJlZlB0cjxBWElzb2xhdGVkT2JqZWN0PiBBWElzb2xhdGVk
VHJlZTo6cm9vdE5vZGUoKQogewotICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjpyb290Tm9k
ZSIpOworICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjpyb290Tm9kZSJfcyk7CiAgICAgTG9j
a2VyIGxvY2tlciB7IG1fY2hhbmdlTG9nTG9jayB9OwogICAgIHJldHVybiBtX3Jvb3ROb2RlOwog
fQogCiB2b2lkIEFYSXNvbGF0ZWRUcmVlOjpzZXRSb290Tm9kZShBWElzb2xhdGVkT2JqZWN0KiBy
b290KQogewotICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjpzZXRSb290Tm9kZSIpOworICAg
IEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjpzZXRSb290Tm9kZSJfcyk7CiAgICAgQVNTRVJUKGlz
TWFpblRocmVhZCgpKTsKICAgICBBU1NFUlQobV9jaGFuZ2VMb2dMb2NrLmlzTG9ja2VkKCkpOwog
ICAgIEFTU0VSVCghbV9yb290Tm9kZSk7CkBAIC00NTIsNyArNDUyLDcgQEAgdm9pZCBBWElzb2xh
dGVkVHJlZTo6c2V0Um9vdE5vZGUoQVhJc29sYXRlZE9iamVjdCogcm9vdCkKIAogdm9pZCBBWElz
b2xhdGVkVHJlZTo6c2V0Rm9jdXNlZE5vZGVJRChBWElEIGF4SUQpCiB7Ci0gICAgQVhUUkFDRSgi
QVhJc29sYXRlZFRyZWU6OnNldEZvY3VzZWROb2RlSUQiKTsKKyAgICBBWFRSQUNFKCJBWElzb2xh
dGVkVHJlZTo6c2V0Rm9jdXNlZE5vZGVJRCJfcyk7CiAgICAgQVhMT0cobWFrZVN0cmluZygiYXhJ
RCAiLCBheElELmxvZ2dpbmdTdHJpbmcoKSkpOwogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7
CiAKQEAgLTQ2Niw3ICs0NjYsNyBAQCB2b2lkIEFYSXNvbGF0ZWRUcmVlOjpzZXRGb2N1c2VkTm9k
ZUlEKEFYSUQgYXhJRCkKIAogdm9pZCBBWElzb2xhdGVkVHJlZTo6dXBkYXRlTG9hZGluZ1Byb2dy
ZXNzKGRvdWJsZSBuZXdQcm9ncmVzc1ZhbHVlKQogewotICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRU
cmVlOjp1cGRhdGVMb2FkaW5nUHJvZ3Jlc3MiKTsKKyAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJl
ZTo6dXBkYXRlTG9hZGluZ1Byb2dyZXNzIl9zKTsKICAgICBBWExPRyhtYWtlU3RyaW5nKCJVcGRh
dGluZyBsb2FkaW5nIHByb2dyZXNzIHRvICIsIG5ld1Byb2dyZXNzVmFsdWUsICIgZm9yIHRyZWVJ
RCAiLCB0cmVlSUQoKSkpOwogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKQEAgLTQ3NSw3
ICs0NzUsNyBAQCB2b2lkIEFYSXNvbGF0ZWRUcmVlOjp1cGRhdGVMb2FkaW5nUHJvZ3Jlc3MoZG91
YmxlIG5ld1Byb2dyZXNzVmFsdWUpCiAKIHZvaWQgQVhJc29sYXRlZFRyZWU6OnJlbW92ZU5vZGUo
Y29uc3QgQVhDb3JlT2JqZWN0JiBheE9iamVjdCkKIHsKLSAgICBBWFRSQUNFKCJBWElzb2xhdGVk
VHJlZTo6cmVtb3ZlTm9kZSIpOworICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjpyZW1vdmVO
b2RlIl9zKTsKICAgICBBWExPRyhtYWtlU3RyaW5nKCJvYmplY3RJRCAiLCBheE9iamVjdC5vYmpl
Y3RJRCgpLmxvZ2dpbmdTdHJpbmcoKSkpOwogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAK
QEAgLTQ4NSw3ICs0ODUsNyBAQCB2b2lkIEFYSXNvbGF0ZWRUcmVlOjpyZW1vdmVOb2RlKGNvbnN0
IEFYQ29yZU9iamVjdCYgYXhPYmplY3QpCiAKIHZvaWQgQVhJc29sYXRlZFRyZWU6OnJlbW92ZVN1
YnRyZWVGcm9tTm9kZU1hcChBWElEIG9iamVjdElELCBBWENvcmVPYmplY3QqIGF4UGFyZW50LCBj
b25zdCBIYXNoU2V0PEFYSUQ+JiBpZHNUb0tlZXApCiB7Ci0gICAgQVhUUkFDRSgiQVhJc29sYXRl
ZFRyZWU6OnJlbW92ZVN1YnRyZWVGcm9tTm9kZU1hcCIpOworICAgIEFYVFJBQ0UoIkFYSXNvbGF0
ZWRUcmVlOjpyZW1vdmVTdWJ0cmVlRnJvbU5vZGVNYXAiX3MpOwogICAgIEFYTE9HKG1ha2VTdHJp
bmcoIlJlbW92aW5nIHN1YnRyZWUgZm9yIG9iamVjdElEICIsIG9iamVjdElELmxvZ2dpbmdTdHJp
bmcoKSkpOwogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKQEAgLTUyMyw3ICs1MjMsNyBA
QCB2b2lkIEFYSXNvbGF0ZWRUcmVlOjpyZW1vdmVTdWJ0cmVlRnJvbU5vZGVNYXAoQVhJRCBvYmpl
Y3RJRCwgQVhDb3JlT2JqZWN0KiBheFBhcgogCiB2b2lkIEFYSXNvbGF0ZWRUcmVlOjphcHBseVBl
bmRpbmdDaGFuZ2VzKCkKIHsKLSAgICBBWFRSQUNFKCJBWElzb2xhdGVkVHJlZTo6YXBwbHlQZW5k
aW5nQ2hhbmdlcyIpOworICAgIEFYVFJBQ0UoIkFYSXNvbGF0ZWRUcmVlOjphcHBseVBlbmRpbmdD
aGFuZ2VzIl9zKTsKIAogICAgIC8vIEluIGlzb2xhdGVkIHRyZWUgbW9kZSAyLCBvbmx5IGFwcGx5
IHBlbmRpbmcgY2hhbmdlcyBvbiB0aGUgQVggdGhyZWFkLgogICAgIEFTU0VSVChtX3VzZWRPbkFY
VGhyZWFkID8gIWlzTWFpblRocmVhZCgpIDogaXNNYWluVGhyZWFkKCkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQWNjZXNzaWJpbGl0eU9iamVjdE1hYy5t
bSBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvbWFjL0FjY2Vzc2liaWxpdHlPYmplY3RN
YWMubW0KaW5kZXggYTI4OTUzODc0YzgwNTUxMjdmODBiMmZjMzYyZDljZTgyMWU3MDFjNC4uZmM2
ZTQwOGNmYzdhOTI1M2ExZTg5NTA3ZTAwNTQ5NDAzOGM5ZmIzYiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYWNjZXNzaWJpbGl0eS9tYWMvQWNjZXNzaWJpbGl0eU9iamVjdE1hYy5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L21hYy9BY2Nlc3NpYmlsaXR5T2JqZWN0TWFj
Lm1tCkBAIC0yMjIsMjAgKzIyMiwyMCBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0eU9iamVjdDo6c3Vi
cm9sZVBsYXRmb3JtU3RyaW5nKCkgY29uc3QKICAgICB9CiAKICAgICBpZiAoaXNNZXRlcigpKQot
ICAgICAgICByZXR1cm4gIkFYTWV0ZXIiOworICAgICAgICByZXR1cm4gIkFYTWV0ZXIiX3M7CiAK
ICNpZiBFTkFCTEUoTU9ERUxfRUxFTUVOVCkKICAgICBpZiAoaXNNb2RlbCgpKQotICAgICAgICBy
ZXR1cm4gIkFYTW9kZWwiOworICAgICAgICByZXR1cm4gIkFYTW9kZWwiX3M7CiAjZW5kaWYKIAog
ICAgIEFjY2Vzc2liaWxpdHlSb2xlIHJvbGUgPSByb2xlVmFsdWUoKTsKICAgICBpZiAocm9sZSA9
PSBBY2Nlc3NpYmlsaXR5Um9sZTo6SG9yaXpvbnRhbFJ1bGUpCi0gICAgICAgIHJldHVybiAiQVhD
b250ZW50U2VwYXJhdG9yIjsKKyAgICAgICAgcmV0dXJuICJBWENvbnRlbnRTZXBhcmF0b3IiX3M7
CiAgICAgaWYgKHJvbGUgPT0gQWNjZXNzaWJpbGl0eVJvbGU6OlRvZ2dsZUJ1dHRvbikKICAgICAg
ICAgcmV0dXJuIE5TQWNjZXNzaWJpbGl0eVRvZ2dsZVN1YnJvbGU7CiAgICAgaWYgKHJvbGUgPT0g
QWNjZXNzaWJpbGl0eVJvbGU6OkZvb3RlcikKLSAgICAgICAgcmV0dXJuICJBWEZvb3RlciI7Cisg
ICAgICAgIHJldHVybiAiQVhGb290ZXIiX3M7CiAgICAgaWYgKHJvbGUgPT0gQWNjZXNzaWJpbGl0
eVJvbGU6OlNwaW5CdXR0b25QYXJ0KSB7CiAgICAgICAgIGlmIChpc0luY3JlbWVudG9yKCkpCiAg
ICAgICAgICAgICByZXR1cm4gTlNBY2Nlc3NpYmlsaXR5SW5jcmVtZW50QXJyb3dTdWJyb2xlOwpA
QCAtMjQzLDc5ICsyNDMsNzkgQEAgU3RyaW5nIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnN1YnJvbGVQ
bGF0Zm9ybVN0cmluZygpIGNvbnN0CiAgICAgfQogCiAgICAgaWYgKGlzRmlsZVVwbG9hZEJ1dHRv
bigpKQotICAgICAgICByZXR1cm4gIkFYRmlsZVVwbG9hZEJ1dHRvbiI7CisgICAgICAgIHJldHVy
biAiQVhGaWxlVXBsb2FkQnV0dG9uIl9zOwogCiAgICAgaWYgKGlzVHJlZUl0ZW0oKSkKICAgICAg
ICAgcmV0dXJuIE5TQWNjZXNzaWJpbGl0eU91dGxpbmVSb3dTdWJyb2xlOwogCiAgICAgaWYgKGlz
RmllbGRzZXQoKSkKLSAgICAgICAgcmV0dXJuICJBWEZpZWxkc2V0IjsKKyAgICAgICAgcmV0dXJu
ICJBWEZpZWxkc2V0Il9zOwogCiAgICAgaWYgKGlzTGlzdCgpKSB7CiAgICAgICAgIGlmIChpc1Vu
b3JkZXJlZExpc3QoKSB8fCBpc09yZGVyZWRMaXN0KCkpCi0gICAgICAgICAgICByZXR1cm4gIkFY
Q29udGVudExpc3QiOworICAgICAgICAgICAgcmV0dXJuICJBWENvbnRlbnRMaXN0Il9zOwogICAg
ICAgICBpZiAoaXNEZXNjcmlwdGlvbkxpc3QoKSkKLSAgICAgICAgICAgIHJldHVybiAiQVhEZXNj
cmlwdGlvbkxpc3QiOworICAgICAgICAgICAgcmV0dXJuICJBWERlc2NyaXB0aW9uTGlzdCJfczsK
ICAgICB9CiAKICAgICAvLyBBUklBIGNvbnRlbnQgc3Vicm9sZXMuCiAgICAgc3dpdGNoIChyb2xl
KSB7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtCYW5uZXI6Ci0gICAgICAg
IHJldHVybiAiQVhMYW5kbWFya0Jhbm5lciI7CisgICAgICAgIHJldHVybiAiQVhMYW5kbWFya0Jh
bm5lciJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpMYW5kbWFya0NvbXBsZW1lbnRh
cnk6Ci0gICAgICAgIHJldHVybiAiQVhMYW5kbWFya0NvbXBsZW1lbnRhcnkiOworICAgICAgICBy
ZXR1cm4gIkFYTGFuZG1hcmtDb21wbGVtZW50YXJ5Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0
eVJvbGU6OkxhbmRtYXJrQ29udGVudEluZm86Ci0gICAgICAgIHJldHVybiAiQVhMYW5kbWFya0Nv
bnRlbnRJbmZvIjsKKyAgICAgICAgcmV0dXJuICJBWExhbmRtYXJrQ29udGVudEluZm8iX3M7CiAg
ICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtNYWluOgotICAgICAgICByZXR1cm4g
IkFYTGFuZG1hcmtNYWluIjsKKyAgICAgICAgcmV0dXJuICJBWExhbmRtYXJrTWFpbiJfczsKICAg
ICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpMYW5kbWFya05hdmlnYXRpb246Ci0gICAgICAgIHJl
dHVybiAiQVhMYW5kbWFya05hdmlnYXRpb24iOworICAgICAgICByZXR1cm4gIkFYTGFuZG1hcmtO
YXZpZ2F0aW9uIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJrRG9jUmVn
aW9uOgogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkxhbmRtYXJrUmVnaW9uOgotICAgICAg
ICByZXR1cm4gIkFYTGFuZG1hcmtSZWdpb24iOworICAgICAgICByZXR1cm4gIkFYTGFuZG1hcmtS
ZWdpb24iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6TGFuZG1hcmtTZWFyY2g6Ci0g
ICAgICAgIHJldHVybiAiQVhMYW5kbWFya1NlYXJjaCI7CisgICAgICAgIHJldHVybiAiQVhMYW5k
bWFya1NlYXJjaCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvbkFs
ZXJ0OgotICAgICAgICByZXR1cm4gIkFYQXBwbGljYXRpb25BbGVydCI7CisgICAgICAgIHJldHVy
biAiQVhBcHBsaWNhdGlvbkFsZXJ0Il9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkFw
cGxpY2F0aW9uQWxlcnREaWFsb2c6Ci0gICAgICAgIHJldHVybiAiQVhBcHBsaWNhdGlvbkFsZXJ0
RGlhbG9nIjsKKyAgICAgICAgcmV0dXJuICJBWEFwcGxpY2F0aW9uQWxlcnREaWFsb2ciX3M7CiAg
ICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb25EaWFsb2c6Ci0gICAgICAgIHJl
dHVybiAiQVhBcHBsaWNhdGlvbkRpYWxvZyI7CisgICAgICAgIHJldHVybiAiQVhBcHBsaWNhdGlv
bkRpYWxvZyJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpBcHBsaWNhdGlvbkdyb3Vw
OgogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uVGV4dEdyb3VwOgogICAg
IGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkZlZWQ6CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9s
ZTo6Rm9vdG5vdGU6Ci0gICAgICAgIHJldHVybiAiQVhBcHBsaWNhdGlvbkdyb3VwIjsKKyAgICAg
ICAgcmV0dXJuICJBWEFwcGxpY2F0aW9uR3JvdXAiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5
Um9sZTo6QXBwbGljYXRpb25Mb2c6Ci0gICAgICAgIHJldHVybiAiQVhBcHBsaWNhdGlvbkxvZyI7
CisgICAgICAgIHJldHVybiAiQVhBcHBsaWNhdGlvbkxvZyJfczsKICAgICBjYXNlIEFjY2Vzc2li
aWxpdHlSb2xlOjpBcHBsaWNhdGlvbk1hcnF1ZWU6Ci0gICAgICAgIHJldHVybiAiQVhBcHBsaWNh
dGlvbk1hcnF1ZWUiOworICAgICAgICByZXR1cm4gIkFYQXBwbGljYXRpb25NYXJxdWVlIl9zOwog
ICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkFwcGxpY2F0aW9uU3RhdHVzOgotICAgICAgICBy
ZXR1cm4gIkFYQXBwbGljYXRpb25TdGF0dXMiOworICAgICAgICByZXR1cm4gIkFYQXBwbGljYXRp
b25TdGF0dXMiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXBwbGljYXRpb25UaW1l
cjoKLSAgICAgICAgcmV0dXJuICJBWEFwcGxpY2F0aW9uVGltZXIiOworICAgICAgICByZXR1cm4g
IkFYQXBwbGljYXRpb25UaW1lciJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpEb2N1
bWVudDoKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpHcmFwaGljc0RvY3VtZW50OgotICAg
ICAgICByZXR1cm4gIkFYRG9jdW1lbnQiOworICAgICAgICByZXR1cm4gIkFYRG9jdW1lbnQiX3M7
CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RG9jdW1lbnRBcnRpY2xlOgotICAgICAgICBy
ZXR1cm4gIkFYRG9jdW1lbnRBcnRpY2xlIjsKKyAgICAgICAgcmV0dXJuICJBWERvY3VtZW50QXJ0
aWNsZSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpEb2N1bWVudE1hdGg6Ci0gICAg
ICAgIHJldHVybiAiQVhEb2N1bWVudE1hdGgiOworICAgICAgICByZXR1cm4gIkFYRG9jdW1lbnRN
YXRoIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRvY3VtZW50Tm90ZToKLSAgICAg
ICAgcmV0dXJuICJBWERvY3VtZW50Tm90ZSI7CisgICAgICAgIHJldHVybiAiQVhEb2N1bWVudE5v
dGUiX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6VXNlckludGVyZmFjZVRvb2x0aXA6
Ci0gICAgICAgIHJldHVybiAiQVhVc2VySW50ZXJmYWNlVG9vbHRpcCI7CisgICAgICAgIHJldHVy
biAiQVhVc2VySW50ZXJmYWNlVG9vbHRpcCJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xl
OjpUYWJQYW5lbDoKLSAgICAgICAgcmV0dXJuICJBWFRhYlBhbmVsIjsKKyAgICAgICAgcmV0dXJu
ICJBWFRhYlBhbmVsIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRlZmluaXRpb246
Ci0gICAgICAgIHJldHVybiAiQVhEZWZpbml0aW9uIjsKKyAgICAgICAgcmV0dXJuICJBWERlZmlu
aXRpb24iX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6RGVzY3JpcHRpb25MaXN0VGVy
bToKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpUZXJtOgotICAgICAgICByZXR1cm4gIkFY
VGVybSI7CisgICAgICAgIHJldHVybiAiQVhUZXJtIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0
eVJvbGU6OkRlc2NyaXB0aW9uTGlzdERldGFpbDoKLSAgICAgICAgcmV0dXJuICJBWERlc2NyaXB0
aW9uIjsKKyAgICAgICAgcmV0dXJuICJBWERlc2NyaXB0aW9uIl9zOwogICAgIGNhc2UgQWNjZXNz
aWJpbGl0eVJvbGU6OldlYkFwcGxpY2F0aW9uOgotICAgICAgICByZXR1cm4gIkFYV2ViQXBwbGlj
YXRpb24iOworICAgICAgICByZXR1cm4gIkFYV2ViQXBwbGljYXRpb24iX3M7CiAgICAgICAgIC8v
IERlZmF1bHQgZG9lc24ndCByZXR1cm4gYW55dGhpbmcsIHNvIHJvbGVzIGRlZmluZWQgYmVsb3cg
Y2FuIGJlIGNob3Nlbi4KICAgICBkZWZhdWx0OgogICAgICAgICBicmVhazsKQEAgLTMyMyw1MSAr
MzIzLDUxIEBAIFN0cmluZyBBY2Nlc3NpYmlsaXR5T2JqZWN0OjpzdWJyb2xlUGxhdGZvcm1TdHJp
bmcoKSBjb25zdAogCiAgICAgaWYgKHJvbGUgPT0gQWNjZXNzaWJpbGl0eVJvbGU6Ok1hdGhFbGVt
ZW50KSB7CiAgICAgICAgIGlmIChpc01hdGhGcmFjdGlvbigpKQotICAgICAgICAgICAgcmV0dXJu
ICJBWE1hdGhGcmFjdGlvbiI7CisgICAgICAgICAgICByZXR1cm4gIkFYTWF0aEZyYWN0aW9uIl9z
OwogICAgICAgICBpZiAoaXNNYXRoRmVuY2VkKCkpCi0gICAgICAgICAgICByZXR1cm4gIkFYTWF0
aEZlbmNlZCI7CisgICAgICAgICAgICByZXR1cm4gIkFYTWF0aEZlbmNlZCJfczsKICAgICAgICAg
aWYgKGlzTWF0aFN1YnNjcmlwdFN1cGVyc2NyaXB0KCkpCi0gICAgICAgICAgICByZXR1cm4gIkFY
TWF0aFN1YnNjcmlwdFN1cGVyc2NyaXB0IjsKKyAgICAgICAgICAgIHJldHVybiAiQVhNYXRoU3Vi
c2NyaXB0U3VwZXJzY3JpcHQiX3M7CiAgICAgICAgIGlmIChpc01hdGhSb3coKSkKLSAgICAgICAg
ICAgIHJldHVybiAiQVhNYXRoUm93IjsKKyAgICAgICAgICAgIHJldHVybiAiQVhNYXRoUm93Il9z
OwogICAgICAgICBpZiAoaXNNYXRoVW5kZXJPdmVyKCkpCi0gICAgICAgICAgICByZXR1cm4gIkFY
TWF0aFVuZGVyT3ZlciI7CisgICAgICAgICAgICByZXR1cm4gIkFYTWF0aFVuZGVyT3ZlciJfczsK
ICAgICAgICAgaWYgKGlzTWF0aFNxdWFyZVJvb3QoKSkKLSAgICAgICAgICAgIHJldHVybiAiQVhN
YXRoU3F1YXJlUm9vdCI7CisgICAgICAgICAgICByZXR1cm4gIkFYTWF0aFNxdWFyZVJvb3QiX3M7
CiAgICAgICAgIGlmIChpc01hdGhSb290KCkpCi0gICAgICAgICAgICByZXR1cm4gIkFYTWF0aFJv
b3QiOworICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhSb290Il9zOwogICAgICAgICBpZiAoaXNN
YXRoVGV4dCgpKQotICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhUZXh0IjsKKyAgICAgICAgICAg
IHJldHVybiAiQVhNYXRoVGV4dCJfczsKICAgICAgICAgaWYgKGlzTWF0aE51bWJlcigpKQotICAg
ICAgICAgICAgcmV0dXJuICJBWE1hdGhOdW1iZXIiOworICAgICAgICAgICAgcmV0dXJuICJBWE1h
dGhOdW1iZXIiX3M7CiAgICAgICAgIGlmIChpc01hdGhJZGVudGlmaWVyKCkpCi0gICAgICAgICAg
ICByZXR1cm4gIkFYTWF0aElkZW50aWZpZXIiOworICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhJ
ZGVudGlmaWVyIl9zOwogICAgICAgICBpZiAoaXNNYXRoVGFibGUoKSkKLSAgICAgICAgICAgIHJl
dHVybiAiQVhNYXRoVGFibGUiOworICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhUYWJsZSJfczsK
ICAgICAgICAgaWYgKGlzTWF0aFRhYmxlUm93KCkpCi0gICAgICAgICAgICByZXR1cm4gIkFYTWF0
aFRhYmxlUm93IjsKKyAgICAgICAgICAgIHJldHVybiAiQVhNYXRoVGFibGVSb3ciX3M7CiAgICAg
ICAgIGlmIChpc01hdGhUYWJsZUNlbGwoKSkKLSAgICAgICAgICAgIHJldHVybiAiQVhNYXRoVGFi
bGVDZWxsIjsKKyAgICAgICAgICAgIHJldHVybiAiQVhNYXRoVGFibGVDZWxsIl9zOwogICAgICAg
ICBpZiAoaXNNYXRoRmVuY2VPcGVyYXRvcigpKQotICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhG
ZW5jZU9wZXJhdG9yIjsKKyAgICAgICAgICAgIHJldHVybiAiQVhNYXRoRmVuY2VPcGVyYXRvciJf
czsKICAgICAgICAgaWYgKGlzTWF0aFNlcGFyYXRvck9wZXJhdG9yKCkpCi0gICAgICAgICAgICBy
ZXR1cm4gIkFYTWF0aFNlcGFyYXRvck9wZXJhdG9yIjsKKyAgICAgICAgICAgIHJldHVybiAiQVhN
YXRoU2VwYXJhdG9yT3BlcmF0b3IiX3M7CiAgICAgICAgIGlmIChpc01hdGhPcGVyYXRvcigpKQot
ICAgICAgICAgICAgcmV0dXJuICJBWE1hdGhPcGVyYXRvciI7CisgICAgICAgICAgICByZXR1cm4g
IkFYTWF0aE9wZXJhdG9yIl9zOwogICAgICAgICBpZiAoaXNNYXRoTXVsdGlzY3JpcHQoKSkKLSAg
ICAgICAgICAgIHJldHVybiAiQVhNYXRoTXVsdGlzY3JpcHQiOworICAgICAgICAgICAgcmV0dXJu
ICJBWE1hdGhNdWx0aXNjcmlwdCJfczsKICAgICB9CiAKICAgICBpZiAocm9sZSA9PSBBY2Nlc3Np
YmlsaXR5Um9sZTo6VmlkZW8pCi0gICAgICAgIHJldHVybiAiQVhWaWRlbyI7CisgICAgICAgIHJl
dHVybiAiQVhWaWRlbyJfczsKICAgICBpZiAocm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6QXVk
aW8pCi0gICAgICAgIHJldHVybiAiQVhBdWRpbyI7CisgICAgICAgIHJldHVybiAiQVhBdWRpbyJf
czsKICAgICBpZiAocm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6RGV0YWlscykKLSAgICAgICAg
cmV0dXJuICJBWERldGFpbHMiOworICAgICAgICByZXR1cm4gIkFYRGV0YWlscyJfczsKICAgICBp
ZiAocm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6U3VtbWFyeSkKLSAgICAgICAgcmV0dXJuICJB
WFN1bW1hcnkiOworICAgICAgICByZXR1cm4gIkFYU3VtbWFyeSJfczsKICAgICBpZiAocm9sZSA9
PSBBY2Nlc3NpYmlsaXR5Um9sZTo6VGltZSkKLSAgICAgICAgcmV0dXJuICJBWFRpbWVHcm91cCI7
CisgICAgICAgIHJldHVybiAiQVhUaW1lR3JvdXAiX3M7CiAKICAgICBpZiAoaXNNZWRpYVRpbWVs
aW5lKCkpCiAgICAgICAgIHJldHVybiBOU0FjY2Vzc2liaWxpdHlUaW1lbGluZVN1YnJvbGU7CkBA
IC0zNzYsMjUgKzM3NiwyNSBAQCBTdHJpbmcgQWNjZXNzaWJpbGl0eU9iamVjdDo6c3Vicm9sZVBs
YXRmb3JtU3RyaW5nKCkgY29uc3QKICAgICAgICAgcmV0dXJuIE5TQWNjZXNzaWJpbGl0eVN3aXRj
aFN1YnJvbGU7CiAKICAgICBpZiAocm9sZSA9PSBBY2Nlc3NpYmlsaXR5Um9sZTo6SW5zZXJ0aW9u
KQotICAgICAgICByZXR1cm4gIkFYSW5zZXJ0U3R5bGVHcm91cCI7CisgICAgICAgIHJldHVybiAi
QVhJbnNlcnRTdHlsZUdyb3VwIl9zOwogICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xl
OjpEZWxldGlvbikKLSAgICAgICAgcmV0dXJuICJBWERlbGV0ZVN0eWxlR3JvdXAiOworICAgICAg
ICByZXR1cm4gIkFYRGVsZXRlU3R5bGVHcm91cCJfczsKICAgICBpZiAocm9sZSA9PSBBY2Nlc3Np
YmlsaXR5Um9sZTo6U3VwZXJzY3JpcHQpCi0gICAgICAgIHJldHVybiAiQVhTdXBlcnNjcmlwdFN0
eWxlR3JvdXAiOworICAgICAgICByZXR1cm4gIkFYU3VwZXJzY3JpcHRTdHlsZUdyb3VwIl9zOwog
ICAgIGlmIChyb2xlID09IEFjY2Vzc2liaWxpdHlSb2xlOjpTdWJzY3JpcHQpCi0gICAgICAgIHJl
dHVybiAiQVhTdWJzY3JpcHRTdHlsZUdyb3VwIjsKKyAgICAgICAgcmV0dXJuICJBWFN1YnNjcmlw
dFN0eWxlR3JvdXAiX3M7CiAKICAgICBzd2l0Y2ggKHJvbGUpIHsKICAgICBjYXNlIEFjY2Vzc2li
aWxpdHlSb2xlOjpSdWJ5QmFzZToKLSAgICAgICAgcmV0dXJuICJBWFJ1YnlCYXNlIjsKKyAgICAg
ICAgcmV0dXJuICJBWFJ1YnlCYXNlIl9zOwogICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OlJ1
YnlCbG9jazoKLSAgICAgICAgcmV0dXJuICJBWFJ1YnlCbG9jayI7CisgICAgICAgIHJldHVybiAi
QVhSdWJ5QmxvY2siX3M7CiAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6UnVieUlubGluZToK
LSAgICAgICAgcmV0dXJuICJBWFJ1YnlJbmxpbmUiOworICAgICAgICByZXR1cm4gIkFYUnVieUlu
bGluZSJfczsKICAgICBjYXNlIEFjY2Vzc2liaWxpdHlSb2xlOjpSdWJ5UnVuOgotICAgICAgICBy
ZXR1cm4gIkFYUnVieVJ1biI7CisgICAgICAgIHJldHVybiAiQVhSdWJ5UnVuIl9zOwogICAgIGNh
c2UgQWNjZXNzaWJpbGl0eVJvbGU6OlJ1YnlUZXh0OgotICAgICAgICByZXR1cm4gIkFYUnVieVRl
eHQiOworICAgICAgICByZXR1cm4gIkFYUnVieVRleHQiX3M7CiAgICAgZGVmYXVsdDoKICAgICAg
ICAgYnJlYWs7CiAgICAgfQpAQCAtNDAzLDE3ICs0MDMsMTcgQEAgU3RyaW5nIEFjY2Vzc2liaWxp
dHlPYmplY3Q6OnN1YnJvbGVQbGF0Zm9ybVN0cmluZygpIGNvbnN0CiAgICAgICAgIHVzaW5nIG5h
bWVzcGFjZSBIVE1MTmFtZXM7CiAgICAgICAgIGF1dG8gdGFnID0gdGFnTmFtZSgpOwogICAgICAg
ICBpZiAodGFnID09IGtiZFRhZykKLSAgICAgICAgICAgIHJldHVybiBAIkFYS2V5Ym9hcmRJbnB1
dFN0eWxlR3JvdXAiOworICAgICAgICAgICAgcmV0dXJuICJBWEtleWJvYXJkSW5wdXRTdHlsZUdy
b3VwIl9zOwogICAgICAgICBpZiAodGFnID09IGNvZGVUYWcpCi0gICAgICAgICAgICByZXR1cm4g
QCJBWENvZGVTdHlsZUdyb3VwIjsKKyAgICAgICAgICAgIHJldHVybiAiQVhDb2RlU3R5bGVHcm91
cCJfczsKICAgICAgICAgaWYgKHRhZyA9PSBwcmVUYWcpCi0gICAgICAgICAgICByZXR1cm4gQCJB
WFByZWZvcm1hdHRlZFN0eWxlR3JvdXAiOworICAgICAgICAgICAgcmV0dXJuICJBWFByZWZvcm1h
dHRlZFN0eWxlR3JvdXAiX3M7CiAgICAgICAgIGlmICh0YWcgPT0gc2FtcFRhZykKLSAgICAgICAg
ICAgIHJldHVybiBAIkFYU2FtcGxlU3R5bGVHcm91cCI7CisgICAgICAgICAgICByZXR1cm4gIkFY
U2FtcGxlU3R5bGVHcm91cCJfczsKICAgICAgICAgaWYgKHRhZyA9PSB2YXJUYWcpCi0gICAgICAg
ICAgICByZXR1cm4gQCJBWFZhcmlhYmxlU3R5bGVHcm91cCI7CisgICAgICAgICAgICByZXR1cm4g
IkFYVmFyaWFibGVTdHlsZUdyb3VwIl9zOwogICAgICAgICBpZiAodGFnID09IGNpdGVUYWcpCi0g
ICAgICAgICAgICByZXR1cm4gQCJBWENpdGVTdHlsZUdyb3VwIjsKKyAgICAgICAgICAgIHJldHVy
biAiQVhDaXRlU3R5bGVHcm91cCJfczsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAg
ICAgICAgIHJldHVybiBTdHJpbmcoKTsKICAgICB9CkBAIC00MzYsNyArNDM2LDcgQEAgU3RyaW5n
IEFjY2Vzc2liaWxpdHlPYmplY3Q6OnJvbGVQbGF0Zm9ybURlc2NyaXB0aW9uKCkgY29uc3QKIAog
ICAgICAgICBzd2l0Y2ggKHJvbGUpIHsKICAgICAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5Um9sZTo6
QXVkaW86Ci0gICAgICAgICAgICByZXR1cm4gbG9jYWxpemVkTWVkaWFDb250cm9sRWxlbWVudFN0
cmluZygiQXVkaW9FbGVtZW50Iik7CisgICAgICAgICAgICByZXR1cm4gbG9jYWxpemVkTWVkaWFD
b250cm9sRWxlbWVudFN0cmluZygiQXVkaW9FbGVtZW50Il9zKTsKICAgICAgICAgY2FzZSBBY2Nl
c3NpYmlsaXR5Um9sZTo6RGVmaW5pdGlvbjoKICAgICAgICAgICAgIHJldHVybiBBWERlZmluaXRp
b25UZXh0KCk7CiAgICAgICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkRlc2NyaXB0aW9uTGlz
dFRlcm06CkBAIC00NTMsOSArNDUzLDkgQEAgU3RyaW5nIEFjY2Vzc2liaWxpdHlPYmplY3Q6OnJv
bGVQbGF0Zm9ybURlc2NyaXB0aW9uKCkgY29uc3QKICAgICAgICAgY2FzZSBBY2Nlc3NpYmlsaXR5
Um9sZTo6TWFyazoKICAgICAgICAgICAgIHJldHVybiBBWE1hcmtUZXh0KCk7CiAgICAgICAgIGNh
c2UgQWNjZXNzaWJpbGl0eVJvbGU6OlZpZGVvOgotICAgICAgICAgICAgcmV0dXJuIGxvY2FsaXpl
ZE1lZGlhQ29udHJvbEVsZW1lbnRTdHJpbmcoIlZpZGVvRWxlbWVudCIpOworICAgICAgICAgICAg
cmV0dXJuIGxvY2FsaXplZE1lZGlhQ29udHJvbEVsZW1lbnRTdHJpbmcoIlZpZGVvRWxlbWVudCJf
cyk7CiAgICAgICAgIGNhc2UgQWNjZXNzaWJpbGl0eVJvbGU6OkdyYXBoaWNzRG9jdW1lbnQ6Ci0g
ICAgICAgICAgICByZXR1cm4gQVhBUklBQ29udGVudEdyb3VwVGV4dChAIkFSSUFEb2N1bWVudCIp
OworICAgICAgICAgICAgcmV0dXJuIEFYQVJJQUNvbnRlbnRHcm91cFRleHQoIkFSSUFEb2N1bWVu
dCIpOwogICAgICAgICBkZWZhdWx0OgogICAgICAgICAgICAgcmV0dXJuIFN0cmluZygpOwogICAg
ICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vQW5pbWF0aW9uRWZm
ZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9BbmltYXRpb25FZmZlY3QuY3BwCmlu
ZGV4IDIzOWJkMDQ1ZjgwYWVhOGRjZGYzMWM1ZTBjNDM4OGEwMmI1Mjk1NTIuLjQzMWZkZWExNTcy
NjI3MmEyYjY4Zjk3NGIyNmUwYWU2YTU1ZmMwYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2FuaW1hdGlvbi9BbmltYXRpb25FZmZlY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1h
dGlvbi9BbmltYXRpb25FZmZlY3QuY3BwCkBAIC02OSw3ICs2OSw3IEBAIEVmZmVjdFRpbWluZyBB
bmltYXRpb25FZmZlY3Q6OmdldFRpbWluZygpIGNvbnN0CiAgICAgdGltaW5nLml0ZXJhdGlvblN0
YXJ0ID0gbV9pdGVyYXRpb25TdGFydDsKICAgICB0aW1pbmcuaXRlcmF0aW9ucyA9IG1faXRlcmF0
aW9uczsKICAgICBpZiAobV9pdGVyYXRpb25EdXJhdGlvbiA9PSAwX3MpCi0gICAgICAgIHRpbWlu
Zy5kdXJhdGlvbiA9ICJhdXRvIjsKKyAgICAgICAgdGltaW5nLmR1cmF0aW9uID0gImF1dG8iX3M7
CiAgICAgZWxzZQogICAgICAgICB0aW1pbmcuZHVyYXRpb24gPSBzZWNvbmRzVG9XZWJBbmltYXRp
b25zQVBJVGltZShtX2l0ZXJhdGlvbkR1cmF0aW9uKTsKICAgICB0aW1pbmcuZGlyZWN0aW9uID0g
bV9kaXJlY3Rpb247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRG9jdW1l
bnRUaW1lbGluZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRG9jdW1lbnRUaW1lbGlu
ZS5jcHAKaW5kZXggM2M5NTllOWNiZDRhODcxMjQ0ZWUyZjQ1YjBiNWFhMDZlMWM1ZmQ0NS4uYzg2
ZjJhZDU1YzRiMTI4ZWVjZWRiODAxMGY0YzQ3MTNiYWY0Njc2NyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYW5pbWF0aW9uL0RvY3VtZW50VGltZWxpbmUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2FuaW1hdGlvbi9Eb2N1bWVudFRpbWVsaW5lLmNwcApAQCAtNDUyLDcgKzQ1Miw3IEBAIEV4
Y2VwdGlvbk9yPFJlZjxXZWJBbmltYXRpb24+PiBEb2N1bWVudFRpbWVsaW5lOjphbmltYXRlKFJl
ZjxDdXN0b21FZmZlY3RDYWxsYmFjCiAgICAgaWYgKCFtX2RvY3VtZW50KQogICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfTsKIAotICAgIFN0cmluZyBpZCA9ICIi
OworICAgIFN0cmluZyBpZCA9IGVtcHR5U3RyaW5nKCk7CiAgICAgc3RkOjp2YXJpYW50PEZyYW1l
c1BlclNlY29uZCwgQW5pbWF0aW9uRnJhbWVSYXRlUHJlc2V0PiBmcmFtZVJhdGUgPSBBbmltYXRp
b25GcmFtZVJhdGVQcmVzZXQ6OkF1dG87CiAgICAgc3RkOjpvcHRpb25hbDxzdGQ6OnZhcmlhbnQ8
ZG91YmxlLCBFZmZlY3RUaW1pbmc+PiBjdXN0b21FZmZlY3RPcHRpb25zOwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vRWZmZWN0VGltaW5nLmggYi9Tb3VyY2UvV2ViQ29y
ZS9hbmltYXRpb24vRWZmZWN0VGltaW5nLmgKaW5kZXggNGRkNWRjYzM3M2NjZDgzMzBkZWNhMzYx
N2Q5OThlNjEzMzkzMmU2MS4uMjEwNzNmYTQ3MzAzZjY0ZmQyYmEyNjE5YWU5MTg3ZjU4MTU5NTA2
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0VmZmVjdFRpbWluZy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9FZmZlY3RUaW1pbmcuaApAQCAtMzMsMTIgKzMz
LDEyIEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0cnVjdCBFZmZlY3RUaW1pbmcgewotICAg
IHN0ZDo6dmFyaWFudDxkb3VibGUsIFN0cmluZz4gZHVyYXRpb24geyAiYXV0byIgfTsKKyAgICBz
dGQ6OnZhcmlhbnQ8ZG91YmxlLCBTdHJpbmc+IGR1cmF0aW9uIHsgImF1dG8iX3MgfTsKICAgICBk
b3VibGUgZGVsYXkgeyAwIH07CiAgICAgZG91YmxlIGVuZERlbGF5IHsgMCB9OwogICAgIGRvdWJs
ZSBpdGVyYXRpb25TdGFydCB7IDAgfTsKICAgICBkb3VibGUgaXRlcmF0aW9ucyB7IDEgfTsKLSAg
ICBTdHJpbmcgZWFzaW5nIHsgImxpbmVhciIgfTsKKyAgICBTdHJpbmcgZWFzaW5nIHsgImxpbmVh
ciJfcyB9OwogICAgIEZpbGxNb2RlIGZpbGwgeyBGaWxsTW9kZTo6QXV0byB9OwogICAgIFBsYXli
YWNrRGlyZWN0aW9uIGRpcmVjdGlvbiB7IFBsYXliYWNrRGlyZWN0aW9uOjpOb3JtYWwgfTsKIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRpb24vS2V5ZnJhbWVFZmZlY3QuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYW5pbWF0aW9uL0tleWZyYW1lRWZmZWN0LmNwcAppbmRleCA3MjM3
Njg1MDNkMTBkYjQ5NjdiMmY4YzYwZWI5MTQxODk3NjZiZjdkLi5kODQxMWM5M2U0NzcwMmY1Njdh
ZDYxNDAzNjZlY2U3NjYzNWMwNDVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9hbmltYXRp
b24vS2V5ZnJhbWVFZmZlY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FuaW1hdGlvbi9LZXlm
cmFtZUVmZmVjdC5jcHAKQEAgLTgyLDExICs4MiwxMSBAQCBTdHJpbmcgS2V5ZnJhbWVFZmZlY3Q6
OkNTU1Byb3BlcnR5SURUb0lETEF0dHJpYnV0ZU5hbWUoQ1NTUHJvcGVydHlJRCBjc3NQcm9wZXJ0
eQogCiAgICAgLy8gMi4gSWYgcHJvcGVydHkgcmVmZXJzIHRvIHRoZSBDU1MgZmxvYXQgcHJvcGVy
dHksIHJldHVybiB0aGUgc3RyaW5nICJjc3NGbG9hdCIuCiAgICAgaWYgKGNzc1Byb3BlcnR5SWQg
PT0gQ1NTUHJvcGVydHlGbG9hdCkKLSAgICAgICAgcmV0dXJuICJjc3NGbG9hdCI7CisgICAgICAg
IHJldHVybiAiY3NzRmxvYXQiX3M7CiAKICAgICAvLyAzLiBJZiBwcm9wZXJ0eSByZWZlcnMgdG8g
dGhlIENTUyBvZmZzZXQgcHJvcGVydHksIHJldHVybiB0aGUgc3RyaW5nICJjc3NPZmZzZXQiLgog
ICAgIGlmIChjc3NQcm9wZXJ0eUlkID09IENTU1Byb3BlcnR5T2Zmc2V0KQotICAgICAgICByZXR1
cm4gImNzc09mZnNldCI7CisgICAgICAgIHJldHVybiAiY3NzT2Zmc2V0Il9zOwogCiAgICAgLy8g
NC4gT3RoZXJ3aXNlLCByZXR1cm4gdGhlIHJlc3VsdCBvZiBhcHBseWluZyB0aGUgQ1NTIHByb3Bl
cnR5IHRvIElETCBhdHRyaWJ1dGUgYWxnb3JpdGhtIFtDU1NPTV0gdG8gcHJvcGVydHkuCiAgICAg
cmV0dXJuIGdldEpTUHJvcGVydHlOYW1lKGNzc1Byb3BlcnR5SWQpOwpAQCAtNjYwLDcgKzY2MCw3
IEBAIGF1dG8gS2V5ZnJhbWVFZmZlY3Q6OmdldEtleWZyYW1lcyhEb2N1bWVudCYgZG9jdW1lbnQp
IC0+IFZlY3RvcjxDb21wdXRlZEtleWZyYW1lCiAgICAgICAgIGNvbXB1dGVkS2V5ZnJhbWUub2Zm
c2V0ID0ga2V5ZnJhbWUua2V5KCk7CiAgICAgICAgIGNvbXB1dGVkS2V5ZnJhbWUuY29tcHV0ZWRP
ZmZzZXQgPSBrZXlmcmFtZS5rZXkoKTsKICAgICAgICAgLy8gRm9yIENTUyB0cmFuc2l0aW9ucywg
YWxsIGtleWZyYW1lcyBzaG91bGQgcmV0dXJuICJsaW5lYXIiIHNpbmNlIHRoZSBlZmZlY3QncyBn
bG9iYWwgdGltaW5nIGZ1bmN0aW9uIGFwcGxpZXMuCi0gICAgICAgIGNvbXB1dGVkS2V5ZnJhbWUu
ZWFzaW5nID0gaXM8Q1NTVHJhbnNpdGlvbj4oYW5pbWF0aW9uKCkpID8gImxpbmVhciIgOiB0aW1p
bmdGdW5jdGlvbkZvckJsZW5kaW5nS2V5ZnJhbWUoa2V5ZnJhbWUpLT5jc3NUZXh0KCk7CisgICAg
ICAgIGNvbXB1dGVkS2V5ZnJhbWUuZWFzaW5nID0gaXM8Q1NTVHJhbnNpdGlvbj4oYW5pbWF0aW9u
KCkpID8gImxpbmVhciJfcyA6IHRpbWluZ0Z1bmN0aW9uRm9yQmxlbmRpbmdLZXlmcmFtZShrZXlm
cmFtZSktPmNzc1RleHQoKTsKIAogICAgICAgICBpZiAoZG9jdW1lbnQuc2V0dGluZ3MoKS53ZWJB
bmltYXRpb25zQ29tcG9zaXRlT3BlcmF0aW9uc0VuYWJsZWQoKSkgewogICAgICAgICAgICAgaWYg
KGF1dG8gY29tcG9zaXRlT3BlcmF0aW9uID0ga2V5ZnJhbWUuY29tcG9zaXRlT3BlcmF0aW9uKCkp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9HQ0NvbnRyb2xsZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvR0NDb250cm9sbGVyLmNwcAppbmRleCA1ZjEx
ZTBjNjM0ODc0MTQzYWIzMTg1YTAxZGY5ZmIyZWUzNmYyNWFkLi41ZjkzNDkxNzU2ZjI3ZWMwNGQ0
ZGVhOWQzODFiN2E2NGM2Yzc5MjA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9HQ0NvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0dD
Q29udHJvbGxlci5jcHAKQEAgLTU5LDcgKzU5LDcgQEAgR0NDb250cm9sbGVyOjpHQ0NvbnRyb2xs
ZXIoKQogewogICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBvbmNlRmxhZzsKICAgICBzdGQ6OmNh
bGxfb25jZShvbmNlRmxhZywgW10gewotICAgICAgICBQQUw6OnJlZ2lzdGVyTm90aWZ5Q2FsbGJh
Y2soImNvbS5hcHBsZS5XZWJLaXQuZHVtcEdDSGVhcCIsIFtdIHsKKyAgICAgICAgUEFMOjpyZWdp
c3Rlck5vdGlmeUNhbGxiYWNrKCJjb20uYXBwbGUuV2ViS2l0LmR1bXBHQ0hlYXAiX3MsIFtdIHsK
ICAgICAgICAgICAgIEdDQ29udHJvbGxlcjo6c2luZ2xldG9uKCkuZHVtcEhlYXAoKTsKICAgICAg
ICAgfSk7CiAgICAgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0N1c3RvbUVsZW1lbnRJbnRlcmZhY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNDdXN0b21FbGVtZW50SW50ZXJmYWNlLmNwcAppbmRleCA0ZTFkMjRlZTk0MTc0YzlkZjc2ZDJi
MmU1MDc5Yjc3ZGQwZTI2Zjk4Li5hOTFlMDJmMjNkNzUwMzBhOWI5YWJmODlhMzZmODRhYjE5YmE4
OGIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1c3RvbUVsZW1l
bnRJbnRlcmZhY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9t
RWxlbWVudEludGVyZmFjZS5jcHAKQEAgLTIxMCw3ICsyMTAsNyBAQCB2b2lkIEpTQ3VzdG9tRWxl
bWVudEludGVyZmFjZTo6dXBncmFkZUVsZW1lbnQoRWxlbWVudCYgZWxlbWVudCkKIAogICAgIGlm
IChtX2lzU2hhZG93RGlzYWJsZWQgJiYgZWxlbWVudC5zaGFkb3dSb290KCkpIHsKICAgICAgICAg
ZWxlbWVudC5jbGVhclJlYWN0aW9uUXVldWVGcm9tRmFpbGVkQ3VzdG9tRWxlbWVudCgpOwotICAg
ICAgICByZXBvcnRFeGNlcHRpb24obGV4aWNhbEdsb2JhbE9iamVjdCwgY3JlYXRlRE9NRXhjZXB0
aW9uKGxleGljYWxHbG9iYWxPYmplY3QsIE5vdFN1cHBvcnRlZEVycm9yLCAiRmFpbGVkIHRvIHVw
Z3JhZGUgYW4gZWxlbWVudCB3aXRoIHNoYWRvdyByb290OiB0aGUgY3VzdG9tIGVsZW1lbnQgZGVm
aW5pdGlvbiBkaXNhbGxvd3Mgc2hhZG93IHJvb3RzLiIpKTsKKyAgICAgICAgcmVwb3J0RXhjZXB0
aW9uKGxleGljYWxHbG9iYWxPYmplY3QsIGNyZWF0ZURPTUV4Y2VwdGlvbihsZXhpY2FsR2xvYmFs
T2JqZWN0LCBOb3RTdXBwb3J0ZWRFcnJvciwgIkZhaWxlZCB0byB1cGdyYWRlIGFuIGVsZW1lbnQg
d2l0aCBzaGFkb3cgcm9vdDogdGhlIGN1c3RvbSBlbGVtZW50IGRlZmluaXRpb24gZGlzYWxsb3dz
IHNoYWRvdyByb290cy4iX3MpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMjMxLDcg
KzIzMSw3IEBAIHZvaWQgSlNDdXN0b21FbGVtZW50SW50ZXJmYWNlOjp1cGdyYWRlRWxlbWVudChF
bGVtZW50JiBlbGVtZW50KQogICAgIEVsZW1lbnQqIHdyYXBwZWRFbGVtZW50ID0gSlNFbGVtZW50
Ojp0b1dyYXBwZWQodm0sIHJldHVybmVkRWxlbWVudCk7CiAgICAgaWYgKCF3cmFwcGVkRWxlbWVu
dCB8fCB3cmFwcGVkRWxlbWVudCAhPSAmZWxlbWVudCkgewogICAgICAgICBlbGVtZW50LmNsZWFy
UmVhY3Rpb25RdWV1ZUZyb21GYWlsZWRDdXN0b21FbGVtZW50KCk7Ci0gICAgICAgIHJlcG9ydEV4
Y2VwdGlvbihsZXhpY2FsR2xvYmFsT2JqZWN0LCBjcmVhdGVET01FeGNlcHRpb24obGV4aWNhbEds
b2JhbE9iamVjdCwgVHlwZUVycm9yLCAiQ3VzdG9tIGVsZW1lbnQgY29uc3RydWN0b3IgcmV0dXJu
ZWQgYSB3cm9uZyBlbGVtZW50IikpOworICAgICAgICByZXBvcnRFeGNlcHRpb24obGV4aWNhbEds
b2JhbE9iamVjdCwgY3JlYXRlRE9NRXhjZXB0aW9uKGxleGljYWxHbG9iYWxPYmplY3QsIFR5cGVF
cnJvciwgIkN1c3RvbSBlbGVtZW50IGNvbnN0cnVjdG9yIHJldHVybmVkIGEgd3JvbmcgZWxlbWVu
dCJfcykpOwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIGVsZW1lbnQuc2V0SXNEZWZpbmVk
Q3VzdG9tRWxlbWVudCgqdGhpcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTUNvbnZlcnROdW1iZXJzLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTUNvbnZlcnROdW1iZXJzLmgKaW5kZXggYjdiNjEzZGQ2YzM3ZWQxMTdiOTIyMDIwYWMxM2Ez
ZDdjNTViYmNhZC4uMjk0MTNkOGQ5ODk2OTAxMGZhYTFjMzU0ZWEzYTg5YmFjNDAwYjA3MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Db252ZXJ0TnVtYmVycy5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQ29udmVydE51bWJlcnMuaApA
QCAtMjkzLDcgKzI5Myw3IEBAIHRlbXBsYXRlPD4gc3RydWN0IENvbnZlcnRlcjxJRExGbG9hdD4g
OiBEZWZhdWx0Q29udmVydGVyPElETEZsb2F0PiB7CiAgICAgICAgIGRvdWJsZSBudW1iZXIgPSB2
YWx1ZS50b051bWJlcigmbGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgICAgIFJFVFVSTl9JRl9F
WENFUFRJT04oc2NvcGUsIDAuMCk7CiAgICAgICAgIGlmIChVTkxJS0VMWShudW1iZXIgPCBzdGQ6
Om51bWVyaWNfbGltaXRzPGZsb2F0Pjo6bG93ZXN0KCkgfHwgbnVtYmVyID4gc3RkOjpudW1lcmlj
X2xpbWl0czxmbG9hdD46Om1heCgpKSkKLSAgICAgICAgICAgIHRocm93VHlwZUVycm9yKCZsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBzY29wZSwgIlRoZSBwcm92aWRlZCB2YWx1ZSBpcyBvdXRzaWRlIHRo
ZSByYW5nZSBvZiBhIGZsb2F0Iik7CisgICAgICAgICAgICB0aHJvd1R5cGVFcnJvcigmbGV4aWNh
bEdsb2JhbE9iamVjdCwgc2NvcGUsICJUaGUgcHJvdmlkZWQgdmFsdWUgaXMgb3V0c2lkZSB0aGUg
cmFuZ2Ugb2YgYSBmbG9hdCJfcyk7CiAgICAgICAgIGlmIChVTkxJS0VMWSghc3RkOjppc2Zpbml0
ZShudW1iZXIpKSkKICAgICAgICAgICAgIHRocm93Tm9uRmluaXRlVHlwZUVycm9yKGxleGljYWxH
bG9iYWxPYmplY3QsIHNjb3BlKTsKICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGZsb2F0Pihu
dW1iZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFeGVjU3Rh
dGVJbnN0cnVtZW50YXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRXhlY1N0
YXRlSW5zdHJ1bWVudGF0aW9uLmgKaW5kZXggYzA0NGIwN2FiZmM3YjY5ZTMxOTEyODMzYjQ5NDQ2
ODFiYzMyODA1My4uMzEwMGZhYmYyZDg1NzEzNWM4YTUzZTk0NjdiZTIxYzc3ODllNjRjZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNFeGVjU3RhdGVJbnN0cnVtZW50
YXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0V4ZWNTdGF0ZUluc3Ry
dW1lbnRhdGlvbi5oCkBAIC00NSw3ICs0NSw3IEBAIGlubGluZSB2b2lkIEpTRXhlY1N0YXRlOjpp
bnN0cnVtZW50RnVuY3Rpb24oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgY29uCiAg
ICAgICAgIGxpbmVOdW1iZXIgPSBjYWxsRGF0YS5qcy5mdW5jdGlvbkV4ZWN1dGFibGUtPmZpcnN0
TGluZSgpOwogICAgICAgICBjb2x1bW5OdW1iZXIgPSBjYWxsRGF0YS5qcy5mdW5jdGlvbkV4ZWN1
dGFibGUtPnN0YXJ0Q29sdW1uKCk7CiAgICAgfSBlbHNlCi0gICAgICAgIHJlc291cmNlTmFtZSA9
ICJ1bmRlZmluZWQiOworICAgICAgICByZXNvdXJjZU5hbWUgPSAidW5kZWZpbmVkIl9zOwogICAg
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbENhbGxGdW5jdGlvbihjb250ZXh0LCByZXNv
dXJjZU5hbWUsIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlcik7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1NjcmlwdENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvU2NyaXB0Q29udHJvbGxlci5jcHAKaW5kZXggY2Q0YjNmMDc2ZGY3
Mzk5MDU2ZjI3OGM2NWU3MmQzMmQyNDc5ZDQ2MC4uNDg0ZDhjMmRmMzdiZWY3ZDE3ZGE0MWI3MDMy
Mjk0YjFkOWNmZmIxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2Ny
aXB0Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvU2NyaXB0
Q29udHJvbGxlci5jcHAKQEAgLTYzMyw3ICs2MzMsNyBAQCBWYWx1ZU9yRXhjZXB0aW9uIFNjcmlw
dENvbnRyb2xsZXI6OmNhbGxJbldvcmxkKFJ1bkphdmFTY3JpcHRQYXJhbWV0ZXJzJiYgcGFyYW1l
dAogICAgICAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9DQVRDSF9TQ09QRShnbG9iYWxPYmplY3Qu
dm0oKSk7CiAgICAgICAgIGF1dG8ganNBcmd1bWVudCA9IHNlcmlhbGl6ZWRBcmd1bWVudC0+ZGVz
ZXJpYWxpemUoZ2xvYmFsT2JqZWN0LCAmZ2xvYmFsT2JqZWN0KTsKICAgICAgICAgaWYgKFVOTElL
RUxZKHNjb3BlLmV4Y2VwdGlvbigpKSkgewotICAgICAgICAgICAgZXJyb3JNZXNzYWdlID0gIlVu
YWJsZSB0byBkZXNlcmlhbGl6ZSBhcmd1bWVudCB0byBleGVjdXRlIGFzeW5jaHJvbm91cyBKYXZh
U2NyaXB0IGZ1bmN0aW9uIjsKKyAgICAgICAgICAgIGVycm9yTWVzc2FnZSA9ICJVbmFibGUgdG8g
ZGVzZXJpYWxpemUgYXJndW1lbnQgdG8gZXhlY3V0ZSBhc3luY2hyb25vdXMgSmF2YVNjcmlwdCBm
dW5jdGlvbiJfczsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5tbSBiL1NvdXJjZS9XZWJD
b3JlL2JyaWRnZS9vYmpjL29iamNfcnVudGltZS5tbQppbmRleCAxNWNiNmEwOGU1YzM1YzE3MjJj
ZGQzN2NhMzhhYzVjYTk0NGZhMTU5Li5hZTQyMjExNDFlZWNiODkxNTFjNjMxNjEwZTIyMjIyNGNj
ZmRkZmM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9icmlkZ2Uvb2JqYy9vYmpjX3J1bnRp
bWUubW0KKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL29iamMvb2JqY19ydW50aW1lLm1tCkBA
IC0xNzYsNyArMTc2LDcgQEAgYm9vbCBPYmpjQXJyYXk6OnNldFZhbHVlQXQoSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIHVuc2lnbmVkIGludCBpbmQKICAgICB9CiAKICAgICBp
ZiAoaW5kZXggPiBbX2FycmF5IGNvdW50XSkgewotICAgICAgICB0aHJvd0V4Y2VwdGlvbihsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlUmFuZ2VFcnJvcihsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCAiSW5kZXggZXhjZWVkcyBhcnJheSBzaXplLiIpKTsKKyAgICAgICAgdGhyb3dFeGNlcHRp
b24obGV4aWNhbEdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZVJhbmdlRXJyb3IobGV4aWNhbEds
b2JhbE9iamVjdCwgIkluZGV4IGV4Y2VlZHMgYXJyYXkgc2l6ZS4iX3MpKTsKICAgICAgICAgcmV0
dXJuIGZhbHNlOwogICAgIH0KICAgICAKQEAgLTE4OCw3ICsxODgsNyBAQCBib29sIE9iamNBcnJh
eTo6c2V0VmFsdWVBdChKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgdW5zaWdu
ZWQgaW50IGluZAogICAgICAgICBbX2FycmF5IGluc2VydE9iamVjdDooX19icmlkZ2UgaWQpb1Zh
bHVlLm9iamVjdFZhbHVlIGF0SW5kZXg6aW5kZXhdOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICB9IEBjYXRjaChOU0V4Y2VwdGlvbiogbG9jYWxFeGNlcHRpb24pIHsKLSAgICAgICAgdGhyb3dF
eGNlcHRpb24obGV4aWNhbEdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZUVycm9yKGxleGljYWxH
bG9iYWxPYmplY3QsICJPYmplY3RpdmUtQyBleGNlcHRpb24uIikpOworICAgICAgICB0aHJvd0V4
Y2VwdGlvbihsZXhpY2FsR2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlRXJyb3IobGV4aWNhbEds
b2JhbE9iamVjdCwgIk9iamVjdGl2ZS1DIGV4Y2VwdGlvbi4iX3MpKTsKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIH0KIH0KQEAgLTE5OSwxMyArMTk5LDEzIEBAIEpTVmFsdWUgT2JqY0FycmF5
Ojp2YWx1ZUF0KEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCB1bnNpZ25lZCBp
bnQgaW5kCiAgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOwogCiAgICAg
aWYgKGluZGV4ID4gW19hcnJheSBjb3VudF0pCi0gICAgICAgIHJldHVybiB0aHJvd0V4Y2VwdGlv
bihsZXhpY2FsR2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlUmFuZ2VFcnJvcihsZXhpY2FsR2xv
YmFsT2JqZWN0LCAiSW5kZXggZXhjZWVkcyBhcnJheSBzaXplLiIpKTsKKyAgICAgICAgcmV0dXJu
IHRocm93RXhjZXB0aW9uKGxleGljYWxHbG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVSYW5nZUVy
cm9yKGxleGljYWxHbG9iYWxPYmplY3QsICJJbmRleCBleGNlZWRzIGFycmF5IHNpemUuIl9zKSk7
CiAgICAgQHRyeSB7CiAgICAgICAgIGlkIG9iaiA9IFtfYXJyYXkgb2JqZWN0QXRJbmRleDppbmRl
eF07CiAgICAgICAgIGlmIChvYmopCiAgICAgICAgICAgICByZXR1cm4gY29udmVydE9iamNWYWx1
ZVRvVmFsdWUgKGxleGljYWxHbG9iYWxPYmplY3QsICZvYmosIE9iamNPYmplY3RUeXBlLCBtX3Jv
b3RPYmplY3QuZ2V0KCkpOwogICAgIH0gQGNhdGNoKE5TRXhjZXB0aW9uKiBsb2NhbEV4Y2VwdGlv
bikgewotICAgICAgICByZXR1cm4gdGhyb3dFeGNlcHRpb24obGV4aWNhbEdsb2JhbE9iamVjdCwg
c2NvcGUsIGNyZWF0ZUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsICJPYmplY3RpdmUtQyBleGNl
cHRpb24uIikpOworICAgICAgICByZXR1cm4gdGhyb3dFeGNlcHRpb24obGV4aWNhbEdsb2JhbE9i
amVjdCwgc2NvcGUsIGNyZWF0ZUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsICJPYmplY3RpdmUt
QyBleGNlcHRpb24uIl9zKSk7CiAgICAgfQogICAgIHJldHVybiBqc1VuZGVmaW5lZCgpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwIGIvU291
cmNlL1dlYkNvcmUvYnJpZGdlL3J1bnRpbWVfYXJyYXkuY3BwCmluZGV4IGMwNWUzYTQwZTgwNTY2
NWRjMGZkZWQwMmMzMDUxOGVkOTYyODYwYzMuLmFmMzliYTExNDBkYTAzMDQzODg1YTNhODU1YTEz
MzFlNGY1NjVhOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1lX2Fy
cmF5LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9hcnJheS5jcHAKQEAg
LTEyNyw3ICsxMjcsNyBAQCBib29sIFJ1bnRpbWVBcnJheTo6cHV0KEpTQ2VsbCogY2VsbCwgSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIFByb3BlcgogCiAgICAgUnVudGltZUFy
cmF5KiB0aGlzT2JqZWN0ID0ganNDYXN0PFJ1bnRpbWVBcnJheSo+KGNlbGwpOwogICAgIGlmIChw
cm9wZXJ0eU5hbWUgPT0gdm0ucHJvcGVydHlOYW1lcy0+bGVuZ3RoKSB7Ci0gICAgICAgIHRocm93
RXhjZXB0aW9uKGxleGljYWxHbG9iYWxPYmplY3QsIHNjb3BlLCBjcmVhdGVSYW5nZUVycm9yKGxl
eGljYWxHbG9iYWxPYmplY3QsICJSYW5nZSBlcnJvciIpKTsKKyAgICAgICAgdGhyb3dFeGNlcHRp
b24obGV4aWNhbEdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZVJhbmdlRXJyb3IobGV4aWNhbEds
b2JhbE9iamVjdCwgIlJhbmdlIGVycm9yIl9zKSk7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICB9CiAgICAgCkBAIC0xNDQsNyArMTQ0LDcgQEAgYm9vbCBSdW50aW1lQXJyYXk6OnB1dEJ5SW5k
ZXgoSlNDZWxsKiBjZWxsLCBKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwKIAog
ICAgIFJ1bnRpbWVBcnJheSogdGhpc09iamVjdCA9IGpzQ2FzdDxSdW50aW1lQXJyYXkqPihjZWxs
KTsKICAgICBpZiAoaW5kZXggPj0gdGhpc09iamVjdC0+Z2V0TGVuZ3RoKCkpIHsKLSAgICAgICAg
dGhyb3dFeGNlcHRpb24obGV4aWNhbEdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZVJhbmdlRXJy
b3IobGV4aWNhbEdsb2JhbE9iamVjdCwgIlJhbmdlIGVycm9yIikpOworICAgICAgICB0aHJvd0V4
Y2VwdGlvbihsZXhpY2FsR2xvYmFsT2JqZWN0LCBzY29wZSwgY3JlYXRlUmFuZ2VFcnJvcihsZXhp
Y2FsR2xvYmFsT2JqZWN0LCAiUmFuZ2UgZXJyb3IiX3MpKTsKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgIH0KICAgICAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JyaWRnZS9ydW50aW1l
X29iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9icmlkZ2UvcnVudGltZV9vYmplY3QuY3BwCmlu
ZGV4IGIyNGYyYWVmMTk0YmFkMjViM2E2MWViODhlNzQxNDdkY2U5MzEwYzcuLjIwYmUxZWUyZmYy
NTA0MmYzODgxNWVkYTA2OGZkOWE0ODg5NTVlNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JyaWRnZS9ydW50aW1lX29iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYnJpZGdlL3J1
bnRpbWVfb2JqZWN0LmNwcApAQCAtMzEwLDcgKzMxMCw3IEBAIHZvaWQgUnVudGltZU9iamVjdDo6
Z2V0T3duUHJvcGVydHlOYW1lcyhKU09iamVjdCogb2JqZWN0LCBKU0dsb2JhbE9iamVjdCogbGV4
aWNhCiAKIEV4Y2VwdGlvbiogdGhyb3dSdW50aW1lT2JqZWN0SW52YWxpZEFjY2Vzc0Vycm9yKEpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBUaHJvd1Njb3BlJiBzY29wZSkKIHsK
LSAgICByZXR1cm4gdGhyb3dFeGNlcHRpb24obGV4aWNhbEdsb2JhbE9iamVjdCwgc2NvcGUsIGNy
ZWF0ZVJlZmVyZW5jZUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsICJUcnlpbmcgdG8gYWNjZXNz
IG9iamVjdCBmcm9tIGRlc3Ryb3llZCBwbHVnLWluLiIpKTsKKyAgICByZXR1cm4gdGhyb3dFeGNl
cHRpb24obGV4aWNhbEdsb2JhbE9iamVjdCwgc2NvcGUsIGNyZWF0ZVJlZmVyZW5jZUVycm9yKGxl
eGljYWxHbG9iYWxPYmplY3QsICJUcnlpbmcgdG8gYWNjZXNzIG9iamVjdCBmcm9tIGRlc3Ryb3ll
ZCBwbHVnLWluLiJfcykpOwogfQogCiBKU0M6OkdDQ2xpZW50OjpJc29TdWJzcGFjZSogUnVudGlt
ZU9iamVjdDo6c3Vic3BhY2VGb3JJbXBsKEpTQzo6Vk0mIHZtKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkFjdGlvbnMuY3BwIGIv
U291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkFjdGlvbnMu
Y3BwCmluZGV4IDBjYTYxYzEwMTRkMjQzNWU4NGFhMGRhZmUzMDIwZmZiMDc4ZTgzNzkuLjdiMjY1
OWZjNjczZDUzNjA5ZTVkMWI1ZTQ3ZmI2ODNhMTYzYWYwOWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25BY3Rpb25zLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uQWN0aW9u
cy5jcHAKQEAgLTIwMSwxNSArMjAxLDE1IEBAIGF1dG8gTW9kaWZ5SGVhZGVyc0FjdGlvbjo6TW9k
aWZ5SGVhZGVySW5mbzo6cGFyc2UoY29uc3QgSlNPTjo6VmFsdWUmIGluZm9WYWx1ZSkKICAgICBp
ZiAoIW9iamVjdCkKICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKENvbnRlbnRFeHRlbnNp
b25FcnJvcjo6SlNPTk1vZGlmeUhlYWRlcnNJbmZvTm90QURpY3Rpb25hcnkpOwogCi0gICAgU3Ry
aW5nIG9wZXJhdGlvbiA9IG9iamVjdC0+Z2V0U3RyaW5nKCJvcGVyYXRpb24iKTsKKyAgICBTdHJp
bmcgb3BlcmF0aW9uID0gb2JqZWN0LT5nZXRTdHJpbmcoIm9wZXJhdGlvbiJfcyk7CiAgICAgaWYg
KCFvcGVyYXRpb24pCiAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50RXh0ZW5z
aW9uRXJyb3I6OkpTT05Nb2RpZnlIZWFkZXJzTWlzc2luZ09wZXJhdGlvbik7CiAKLSAgICBTdHJp
bmcgaGVhZGVyID0gb2JqZWN0LT5nZXRTdHJpbmcoImhlYWRlciIpOworICAgIFN0cmluZyBoZWFk
ZXIgPSBvYmplY3QtPmdldFN0cmluZygiaGVhZGVyIl9zKTsKICAgICBpZiAoIWhlYWRlcikKICAg
ICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTk1v
ZGlmeUhlYWRlcnNNaXNzaW5nSGVhZGVyKTsKIAotICAgIFN0cmluZyB2YWx1ZSA9IG9iamVjdC0+
Z2V0U3RyaW5nKCJ2YWx1ZSIpOworICAgIFN0cmluZyB2YWx1ZSA9IG9iamVjdC0+Z2V0U3RyaW5n
KCJ2YWx1ZSJfcyk7CiAKICAgICBpZiAob3BlcmF0aW9uID09ICJzZXQiKSB7CiAgICAgICAgIGlm
ICghdmFsdWUpCkBAIC0yODksMjcgKzI4OSwyNyBAQCBzaXplX3QgTW9kaWZ5SGVhZGVyc0FjdGlv
bjo6TW9kaWZ5SGVhZGVySW5mbzo6c2VyaWFsaXplZExlbmd0aChTcGFuPGNvbnN0IHVpbnQ4Xwog
CiBFeHBlY3RlZDxSZWRpcmVjdEFjdGlvbiwgc3RkOjplcnJvcl9jb2RlPiBSZWRpcmVjdEFjdGlv
bjo6cGFyc2UoY29uc3QgSlNPTjo6T2JqZWN0JiByZWRpcmVjdE9iamVjdCwgY29uc3QgU3RyaW5n
JiB1cmxGaWx0ZXIpCiB7Ci0gICAgYXV0byByZWRpcmVjdCA9IHJlZGlyZWN0T2JqZWN0LmdldE9i
amVjdCgicmVkaXJlY3QiKTsKKyAgICBhdXRvIHJlZGlyZWN0ID0gcmVkaXJlY3RPYmplY3QuZ2V0
T2JqZWN0KCJyZWRpcmVjdCJfcyk7CiAgICAgaWYgKCFyZWRpcmVjdCkKICAgICAgICAgcmV0dXJu
IG1ha2VVbmV4cGVjdGVkKENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTlJlZGlyZWN0TWlzc2lu
Zyk7CiAKLSAgICBpZiAoYXV0byBleHRlbnNpb25QYXRoID0gcmVkaXJlY3QtPmdldFN0cmluZygi
ZXh0ZW5zaW9uLXBhdGgiKTsgISFleHRlbnNpb25QYXRoKSB7CisgICAgaWYgKGF1dG8gZXh0ZW5z
aW9uUGF0aCA9IHJlZGlyZWN0LT5nZXRTdHJpbmcoImV4dGVuc2lvbi1wYXRoIl9zKTsgISFleHRl
bnNpb25QYXRoKSB7CiAgICAgICAgIGlmICghZXh0ZW5zaW9uUGF0aC5zdGFydHNXaXRoKCcvJykp
CiAgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoQ29udGVudEV4dGVuc2lvbkVycm9y
OjpKU09OUmVkaXJlY3RFeHRlbnNpb25QYXRoRG9lc05vdFN0YXJ0V2l0aFNsYXNoKTsKICAgICAg
ICAgcmV0dXJuIFJlZGlyZWN0QWN0aW9uIHsgRXh0ZW5zaW9uUGF0aEFjdGlvbiB7IFdURk1vdmUo
ZXh0ZW5zaW9uUGF0aCkgfSB9OwogICAgIH0KIAotICAgIGlmIChhdXRvIHJlZ2V4U3Vic3RpdHV0
aW9uID0gcmVkaXJlY3QtPmdldFN0cmluZygicmVnZXgtc3Vic3RpdHV0aW9uIik7ICEhcmVnZXhT
dWJzdGl0dXRpb24pCisgICAgaWYgKGF1dG8gcmVnZXhTdWJzdGl0dXRpb24gPSByZWRpcmVjdC0+
Z2V0U3RyaW5nKCJyZWdleC1zdWJzdGl0dXRpb24iX3MpOyAhIXJlZ2V4U3Vic3RpdHV0aW9uKQog
ICAgICAgICByZXR1cm4gUmVkaXJlY3RBY3Rpb24geyBSZWdleFN1YnN0aXR1dGlvbkFjdGlvbiB7
IFdURk1vdmUocmVnZXhTdWJzdGl0dXRpb24pLCB1cmxGaWx0ZXIgfSB9OwogCi0gICAgaWYgKGF1
dG8gdHJhbnNmb3JtID0gcmVkaXJlY3QtPmdldE9iamVjdCgidHJhbnNmb3JtIikpIHsKKyAgICBp
ZiAoYXV0byB0cmFuc2Zvcm0gPSByZWRpcmVjdC0+Z2V0T2JqZWN0KCJ0cmFuc2Zvcm0iX3MpKSB7
CiAgICAgICAgIGF1dG8gcGFyc2VkVHJhbnNmb3JtID0gVVJMVHJhbnNmb3JtQWN0aW9uOjpwYXJz
ZSgqdHJhbnNmb3JtKTsKICAgICAgICAgaWYgKCFwYXJzZWRUcmFuc2Zvcm0pCiAgICAgICAgICAg
ICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQocGFyc2VkVHJhbnNmb3JtLmVycm9yKCkpOwogICAgICAg
ICByZXR1cm4gUmVkaXJlY3RBY3Rpb24geyBXVEZNb3ZlKCpwYXJzZWRUcmFuc2Zvcm0pIH07CiAg
ICAgfQogCi0gICAgaWYgKGF1dG8gdXJsU3RyaW5nID0gcmVkaXJlY3QtPmdldFN0cmluZygidXJs
Iik7ICEhdXJsU3RyaW5nKSB7CisgICAgaWYgKGF1dG8gdXJsU3RyaW5nID0gcmVkaXJlY3QtPmdl
dFN0cmluZygidXJsIl9zKTsgISF1cmxTdHJpbmcpIHsKICAgICAgICAgVVJMIHVybCB7IHVybFN0
cmluZyB9OwogICAgICAgICBpZiAoIXVybC5pc1ZhbGlkKCkpCiAgICAgICAgICAgICByZXR1cm4g
bWFrZVVuZXhwZWN0ZWQoQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OUmVkaXJlY3RVUkxJbnZh
bGlkKTsKQEAgLTQ4MywxNSArNDgzLDE1IEBAIHZvaWQgUmVkaXJlY3RBY3Rpb246OlJlZ2V4U3Vi
c3RpdHV0aW9uQWN0aW9uOjphcHBseVRvVVJMKFVSTCYgdXJsKSBjb25zdAogYXV0byBSZWRpcmVj
dEFjdGlvbjo6VVJMVHJhbnNmb3JtQWN0aW9uOjpwYXJzZShjb25zdCBKU09OOjpPYmplY3QmIHRy
YW5zZm9ybSkgLT4gRXhwZWN0ZWQ8VVJMVHJhbnNmb3JtQWN0aW9uLCBzdGQ6OmVycm9yX2NvZGU+
CiB7CiAgICAgVVJMVHJhbnNmb3JtQWN0aW9uIGFjdGlvbjsKLSAgICBpZiAoYXV0byBmcmFnbWVu
dCA9IHRyYW5zZm9ybS5nZXRTdHJpbmcoImZyYWdtZW50Iik7ICEhZnJhZ21lbnQpIHsKKyAgICBp
ZiAoYXV0byBmcmFnbWVudCA9IHRyYW5zZm9ybS5nZXRTdHJpbmcoImZyYWdtZW50Il9zKTsgISFm
cmFnbWVudCkgewogICAgICAgICBpZiAoIWZyYWdtZW50LmlzRW1wdHkoKSAmJiAhZnJhZ21lbnQu
c3RhcnRzV2l0aCgnIycpKQogICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKENvbnRl
bnRFeHRlbnNpb25FcnJvcjo6SlNPTlJlZGlyZWN0SW52YWxpZEZyYWdtZW50KTsKICAgICAgICAg
YWN0aW9uLmZyYWdtZW50ID0gV1RGTW92ZShmcmFnbWVudCk7CiAgICAgfQotICAgIGFjdGlvbi5o
b3N0ID0gdHJhbnNmb3JtLmdldFN0cmluZygiaG9zdCIpOwotICAgIGFjdGlvbi5wYXNzd29yZCA9
IHRyYW5zZm9ybS5nZXRTdHJpbmcoInBhc3N3b3JkIik7Ci0gICAgYWN0aW9uLnBhdGggPSB0cmFu
c2Zvcm0uZ2V0U3RyaW5nKCJwYXRoIik7Ci0gICAgYXV0byBwb3J0ID0gdHJhbnNmb3JtLmdldFN0
cmluZygicG9ydCIpOworICAgIGFjdGlvbi5ob3N0ID0gdHJhbnNmb3JtLmdldFN0cmluZygiaG9z
dCJfcyk7CisgICAgYWN0aW9uLnBhc3N3b3JkID0gdHJhbnNmb3JtLmdldFN0cmluZygicGFzc3dv
cmQiX3MpOworICAgIGFjdGlvbi5wYXRoID0gdHJhbnNmb3JtLmdldFN0cmluZygicGF0aCJfcyk7
CisgICAgYXV0byBwb3J0ID0gdHJhbnNmb3JtLmdldFN0cmluZygicG9ydCJfcyk7CiAgICAgaWYg
KCEhcG9ydCkgewogICAgICAgICBpZiAocG9ydC5pc0VtcHR5KCkpCiAgICAgICAgICAgICBhY3Rp
b24ucG9ydCA9IHsgc3RkOjpvcHRpb25hbDx1aW50MTZfdD4geyB9IH07CkBAIC01MDMsNyArNTAz
LDcgQEAgYXV0byBSZWRpcmVjdEFjdGlvbjo6VVJMVHJhbnNmb3JtQWN0aW9uOjpwYXJzZShjb25z
dCBKU09OOjpPYmplY3QmIHRyYW5zZm9ybSkgLT4KICAgICAgICAgfQogICAgIH0KIAotICAgIGlm
IChhdXRvIHVuY2Fub25pY2FsaXplZFNjaGVtZSA9IHRyYW5zZm9ybS5nZXRTdHJpbmcoInNjaGVt
ZSIpOyAhIXVuY2Fub25pY2FsaXplZFNjaGVtZSkgeworICAgIGlmIChhdXRvIHVuY2Fub25pY2Fs
aXplZFNjaGVtZSA9IHRyYW5zZm9ybS5nZXRTdHJpbmcoInNjaGVtZSJfcyk7ICEhdW5jYW5vbmlj
YWxpemVkU2NoZW1lKSB7CiAgICAgICAgIGF1dG8gc2NoZW1lID0gV1RGOjpVUkxQYXJzZXI6Om1h
eWJlQ2Fub25pY2FsaXplU2NoZW1lKHVuY2Fub25pY2FsaXplZFNjaGVtZSk7CiAgICAgICAgIGlm
ICghc2NoZW1lKQogICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKENvbnRlbnRFeHRl
bnNpb25FcnJvcjo6SlNPTlJlZGlyZWN0VVJMU2NoZW1lSW52YWxpZCk7CkBAIC01MTEsMTQgKzUx
MSwxNCBAQCBhdXRvIFJlZGlyZWN0QWN0aW9uOjpVUkxUcmFuc2Zvcm1BY3Rpb246OnBhcnNlKGNv
bnN0IEpTT046Ok9iamVjdCYgdHJhbnNmb3JtKSAtPgogICAgICAgICAgICAgcmV0dXJuIG1ha2VV
bmV4cGVjdGVkKENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTlJlZGlyZWN0VG9KYXZhU2NyaXB0
VVJMKTsKICAgICAgICAgYWN0aW9uLnNjaGVtZSA9IFdURk1vdmUoKnNjaGVtZSk7CiAgICAgfQot
ICAgIGFjdGlvbi51c2VybmFtZSA9IHRyYW5zZm9ybS5nZXRTdHJpbmcoInVzZXJuYW1lIik7Ci0g
ICAgaWYgKGF1dG8gcXVlcnlUcmFuc2Zvcm0gPSB0cmFuc2Zvcm0uZ2V0T2JqZWN0KCJxdWVyeS10
cmFuc2Zvcm0iKSkgeworICAgIGFjdGlvbi51c2VybmFtZSA9IHRyYW5zZm9ybS5nZXRTdHJpbmco
InVzZXJuYW1lIl9zKTsKKyAgICBpZiAoYXV0byBxdWVyeVRyYW5zZm9ybSA9IHRyYW5zZm9ybS5n
ZXRPYmplY3QoInF1ZXJ5LXRyYW5zZm9ybSJfcykpIHsKICAgICAgICAgYXV0byBwYXJzZWRRdWVy
eVRyYW5zZm9ybSA9IFF1ZXJ5VHJhbnNmb3JtOjpwYXJzZSgqcXVlcnlUcmFuc2Zvcm0pOwogICAg
ICAgICBpZiAoIXBhcnNlZFF1ZXJ5VHJhbnNmb3JtKQogICAgICAgICAgICAgcmV0dXJuIG1ha2VV
bmV4cGVjdGVkKHBhcnNlZFF1ZXJ5VHJhbnNmb3JtLmVycm9yKCkpOwogICAgICAgICBhY3Rpb24u
cXVlcnlUcmFuc2Zvcm0gPSAqcGFyc2VkUXVlcnlUcmFuc2Zvcm07CiAgICAgfSBlbHNlIHsKLSAg
ICAgICAgYXV0byBxdWVyeSA9IHRyYW5zZm9ybS5nZXRTdHJpbmcoInF1ZXJ5Iik7CisgICAgICAg
IGF1dG8gcXVlcnkgPSB0cmFuc2Zvcm0uZ2V0U3RyaW5nKCJxdWVyeSJfcyk7CiAgICAgICAgIGlm
ICghcXVlcnkuaXNFbXB0eSgpICYmICFxdWVyeS5zdGFydHNXaXRoKCc/JykpCiAgICAgICAgICAg
ICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OUmVkaXJl
Y3RJbnZhbGlkUXVlcnkpOwogICAgICAgICBhY3Rpb24ucXVlcnlUcmFuc2Zvcm0gPSBXVEZNb3Zl
KHF1ZXJ5KTsKQEAgLTY5OSw3ICs2OTksNyBAQCBhdXRvIFJlZGlyZWN0QWN0aW9uOjpVUkxUcmFu
c2Zvcm1BY3Rpb246OlF1ZXJ5VHJhbnNmb3JtOjpwYXJzZShjb25zdCBKU09OOjpPYmplYwogewog
ICAgIFF1ZXJ5VHJhbnNmb3JtIHBhcnNlZFF1ZXJ5VHJhbnNmb3JtOwogCi0gICAgaWYgKGF1dG8g
cmVtb3ZlUGFyYW1ldGVyc1ZhbHVlID0gcXVlcnlUcmFuc2Zvcm0uZ2V0VmFsdWUoInJlbW92ZS1w
YXJhbWV0ZXJzIikpIHsKKyAgICBpZiAoYXV0byByZW1vdmVQYXJhbWV0ZXJzVmFsdWUgPSBxdWVy
eVRyYW5zZm9ybS5nZXRWYWx1ZSgicmVtb3ZlLXBhcmFtZXRlcnMiX3MpKSB7CiAgICAgICAgIGF1
dG8gcmVtb3ZlUGFyYW1ldGVyc0FycmF5ID0gcmVtb3ZlUGFyYW1ldGVyc1ZhbHVlLT5hc0FycmF5
KCk7CiAgICAgICAgIGlmICghcmVtb3ZlUGFyYW1ldGVyc0FycmF5KQogICAgICAgICAgICAgcmV0
dXJuIG1ha2VVbmV4cGVjdGVkKENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTlJlbW92ZVBhcmFt
ZXRlcnNOb3RTdHJpbmdBcnJheSk7CkBAIC03MTMsNyArNzEzLDcgQEAgYXV0byBSZWRpcmVjdEFj
dGlvbjo6VVJMVHJhbnNmb3JtQWN0aW9uOjpRdWVyeVRyYW5zZm9ybTo6cGFyc2UoY29uc3QgSlNP
Tjo6T2JqZWMKICAgICAgICAgcGFyc2VkUXVlcnlUcmFuc2Zvcm0ucmVtb3ZlUGFyYW1zID0gV1RG
TW92ZShyZW1vdmVQYXJhbWV0ZXJzVmVjdG9yKTsKICAgICB9CiAKLSAgICBpZiAoYXV0byBhZGRP
clJlcGxhY2VQYXJhbWV0ZXJzVmFsdWUgPSBxdWVyeVRyYW5zZm9ybS5nZXRWYWx1ZSgiYWRkLW9y
LXJlcGxhY2UtcGFyYW1ldGVycyIpKSB7CisgICAgaWYgKGF1dG8gYWRkT3JSZXBsYWNlUGFyYW1l
dGVyc1ZhbHVlID0gcXVlcnlUcmFuc2Zvcm0uZ2V0VmFsdWUoImFkZC1vci1yZXBsYWNlLXBhcmFt
ZXRlcnMiX3MpKSB7CiAgICAgICAgIGF1dG8gYWRkT3JSZXBsYWNlUGFyYW1ldGVyc0FycmF5ID0g
YWRkT3JSZXBsYWNlUGFyYW1ldGVyc1ZhbHVlLT5hc0FycmF5KCk7CiAgICAgICAgIGlmICghYWRk
T3JSZXBsYWNlUGFyYW1ldGVyc0FycmF5KQogICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVj
dGVkKENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkFkZE9yUmVwbGFjZVBhcmFtZXRlcnNOb3RB
cnJheSk7CkBAIC04NTgsMTYgKzg1OCwxNiBAQCBhdXRvIFJlZGlyZWN0QWN0aW9uOjpVUkxUcmFu
c2Zvcm1BY3Rpb246OlF1ZXJ5VHJhbnNmb3JtOjpRdWVyeUtleVZhbHVlOjpwYXJzZShjbwogICAg
IGlmICgha2V5VmFsdWUpCiAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50RXh0
ZW5zaW9uRXJyb3I6OkpTT05BZGRPclJlcGxhY2VQYXJhbWV0ZXJzS2V5VmFsdWVOb3RBRGljdGlv
bmFyeSk7CiAKLSAgICBTdHJpbmcga2V5ID0ga2V5VmFsdWUtPmdldFN0cmluZygia2V5Iik7Cisg
ICAgU3RyaW5nIGtleSA9IGtleVZhbHVlLT5nZXRTdHJpbmcoImtleSJfcyk7CiAgICAgaWYgKCFr
ZXkpCiAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50RXh0ZW5zaW9uRXJyb3I6
OkpTT05BZGRPclJlcGxhY2VQYXJhbWV0ZXJzS2V5VmFsdWVNaXNzaW5nS2V5U3RyaW5nKTsKIAot
ICAgIFN0cmluZyB2YWx1ZSA9IGtleVZhbHVlLT5nZXRTdHJpbmcoInZhbHVlIik7CisgICAgU3Ry
aW5nIHZhbHVlID0ga2V5VmFsdWUtPmdldFN0cmluZygidmFsdWUiX3MpOwogICAgIGlmICghdmFs
dWUpCiAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50RXh0ZW5zaW9uRXJyb3I6
OkpTT05BZGRPclJlcGxhY2VQYXJhbWV0ZXJzS2V5VmFsdWVNaXNzaW5nVmFsdWVTdHJpbmcpOwog
CiAgICAgYm9vbCByZXBsYWNlT25seSB7IGZhbHNlIH07Ci0gICAgaWYgKGF1dG8gYm9vbGVhbiA9
IGtleVZhbHVlLT5nZXRCb29sZWFuKCJyZXBsYWNlLW9ubHkiKSkKKyAgICBpZiAoYXV0byBib29s
ZWFuID0ga2V5VmFsdWUtPmdldEJvb2xlYW4oInJlcGxhY2Utb25seSJfcykpCiAgICAgICAgIHJl
cGxhY2VPbmx5ID0gKmJvb2xlYW47CiAKICAgICByZXR1cm4geyB7IFdURk1vdmUoa2V5KSwgcmVw
bGFjZU9ubHksIFdURk1vdmUodmFsdWUpIH0gfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25Db21waWxlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9Db250ZW50RXh0ZW5zaW9uQ29tcGlsZXIuY3BwCmlu
ZGV4IGNmZWJmNWMzMDc4YTk0MWQxOWM3OWEyOTJjNDcwYzllYmJmMjgyY2YuLmU4NzIxZDRhNzQ3
OWVkNjgzMDE3ZjBhNDg1ZTg0NmEzMjljOTBlMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2NvbnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25Db21waWxlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvbkNvbXBpbGVyLmNw
cApAQCAtMzE2LDcgKzMxNiw3IEBAIHN0ZDo6ZXJyb3JfY29kZSBjb21waWxlUnVsZUxpc3QoQ29u
dGVudEV4dGVuc2lvbkNvbXBpbGF0aW9uQ2xpZW50JiBjbGllbnQsIFN0cmluCiAgICAgICAgICAg
ICBzdGF0dXMgPSBVUkxGaWx0ZXJQYXJzZXI6Ok9rOwogICAgICAgICB9CiAgICAgICAgIGlmIChz
dGF0dXMgIT0gVVJMRmlsdGVyUGFyc2VyOjpPaykgewotICAgICAgICAgICAgZGF0YUxvZ0YoIkVy
cm9yIHdoaWxlIHBhcnNpbmcgJXM6ICVzXG4iLCB0cmlnZ2VyLnVybEZpbHRlci51dGY4KCkuZGF0
YSgpLCBVUkxGaWx0ZXJQYXJzZXI6OnN0YXR1c1N0cmluZyhzdGF0dXMpLnV0ZjgoKS5kYXRhKCkp
OworICAgICAgICAgICAgZGF0YUxvZ0YoIkVycm9yIHdoaWxlIHBhcnNpbmcgJXM6ICVzXG4iLCB0
cmlnZ2VyLnVybEZpbHRlci51dGY4KCkuZGF0YSgpLCBVUkxGaWx0ZXJQYXJzZXI6OnN0YXR1c1N0
cmluZyhzdGF0dXMpLmNoYXJhY3RlcnMoKSk7CiAgICAgICAgICAgICByZXR1cm4gQ29udGVudEV4
dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZFJlZ2V4OwogICAgICAgICB9CiAKQEAgLTMzMyw3ICsz
MzMsNyBAQCBzdGQ6OmVycm9yX2NvZGUgY29tcGlsZVJ1bGVMaXN0KENvbnRlbnRFeHRlbnNpb25D
b21waWxhdGlvbkNsaWVudCYgY2xpZW50LCBTdHJpbgogICAgICAgICAgICAgICAgICAgICBzdGF0
dXMgPSBVUkxGaWx0ZXJQYXJzZXI6Ok9rOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
ICAgICBpZiAoc3RhdHVzICE9IFVSTEZpbHRlclBhcnNlcjo6T2spIHsKLSAgICAgICAgICAgICAg
ICAgICAgZGF0YUxvZ0YoIkVycm9yIHdoaWxlIHBhcnNpbmcgJXM6ICVzXG4iLCBjb25kaXRpb24u
dXRmOCgpLmRhdGEoKSwgVVJMRmlsdGVyUGFyc2VyOjpzdGF0dXNTdHJpbmcoc3RhdHVzKS51dGY4
KCkuZGF0YSgpKTsKKyAgICAgICAgICAgICAgICAgICAgZGF0YUxvZ0YoIkVycm9yIHdoaWxlIHBh
cnNpbmcgJXM6ICVzXG4iLCBjb25kaXRpb24udXRmOCgpLmRhdGEoKSwgVVJMRmlsdGVyUGFyc2Vy
OjpzdGF0dXNTdHJpbmcoc3RhdHVzKS5jaGFyYWN0ZXJzKCkpOwogICAgICAgICAgICAgICAgICAg
ICByZXR1cm4gQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZFJlZ2V4OwogICAgICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBicmVhazsKQEAgLTM0NCw3ICszNDQsNyBAQCBz
dGQ6OmVycm9yX2NvZGUgY29tcGlsZVJ1bGVMaXN0KENvbnRlbnRFeHRlbnNpb25Db21waWxhdGlv
bkNsaWVudCYgY2xpZW50LCBTdHJpbgogICAgICAgICAgICAgICAgICAgICBzdGF0dXMgPSBVUkxG
aWx0ZXJQYXJzZXI6Ok9rOwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICBpZiAo
c3RhdHVzICE9IFVSTEZpbHRlclBhcnNlcjo6T2spIHsKLSAgICAgICAgICAgICAgICAgICAgZGF0
YUxvZ0YoIkVycm9yIHdoaWxlIHBhcnNpbmcgJXM6ICVzXG4iLCBjb25kaXRpb24udXRmOCgpLmRh
dGEoKSwgVVJMRmlsdGVyUGFyc2VyOjpzdGF0dXNTdHJpbmcoc3RhdHVzKS51dGY4KCkuZGF0YSgp
KTsKKyAgICAgICAgICAgICAgICAgICAgZGF0YUxvZ0YoIkVycm9yIHdoaWxlIHBhcnNpbmcgJXM6
ICVzXG4iLCBjb25kaXRpb24udXRmOCgpLmRhdGEoKSwgVVJMRmlsdGVyUGFyc2VyOjpzdGF0dXNT
dHJpbmcoc3RhdHVzKS5jaGFyYWN0ZXJzKCkpOwogICAgICAgICAgICAgICAgICAgICByZXR1cm4g
Q29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZFJlZ2V4OwogICAgICAgICAgICAgICAg
IH0KICAgICAgICAgICAgICAgICBicmVhazsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nv
bnRlbnRleHRlbnNpb25zL0NvbnRlbnRFeHRlbnNpb25QYXJzZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvblBhcnNlci5jcHAKaW5kZXggNTEz
ZmQ5MzllNjZkYjVjYTI1MTI5ZjU3NmI5ODJiNGY4Yzk4MjRlMS4uNzQ0MTY1ZjBiNTIwMTVjY2Vm
ZDc3ZjY4N2NlNTNjYzA1YzFiMTU2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY29udGVu
dGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvblBhcnNlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvY29udGVudGV4dGVuc2lvbnMvQ29udGVudEV4dGVuc2lvblBhcnNlci5jcHAKQEAgLTkzLDcg
KzkzLDcgQEAgc3RhdGljIEV4cGVjdGVkPFZlY3RvcjxTdHJpbmc+LCBzdGQ6OmVycm9yX2NvZGU+
IGdldERvbWFpbkxpc3QoY29uc3QgSlNPTjo6QXJyYXkKICAgICAgICAgICAgIHsgJyQnLCAiXFwk
IiB9CiAgICAgICAgIH0gfTsKICAgICAgICAgZm9yIChhdXRvJiBwYWlyIDogZXNjYXBlVGFibGUp
Ci0gICAgICAgICAgICBkb21haW4gPSBkb21haW4ucmVwbGFjZShwYWlyLmZpcnN0LCBwYWlyLnNl
Y29uZCk7CisgICAgICAgICAgICBkb21haW4gPSBkb21haW4ucmVwbGFjZShwYWlyLmZpcnN0LCBT
dHJpbmcgeyBwYWlyLnNlY29uZCB9KTsKIAogICAgICAgICBjb25zdCBjaGFyKiBwcm90b2NvbFJl
Z2V4ID0gIlthLXpdW2EteisuLV0qOlxcL1xcLyI7CiAgICAgICAgIGNvbnN0IGNoYXIqIGFsbG93
U3ViZG9tYWluc1JlZ2V4ID0gIiguKlxcLikqIjsKQEAgLTExOSwyNyArMTE5LDI3IEBAIHN0YXRp
YyBzdGQ6OmVycm9yX2NvZGUgZ2V0VHlwZUZsYWdzKGNvbnN0IEpTT046OkFycmF5JiBhcnJheSwg
UmVzb3VyY2VGbGFncyYgZmxhCiAgICAgCiBzdGF0aWMgRXhwZWN0ZWQ8VHJpZ2dlciwgc3RkOjpl
cnJvcl9jb2RlPiBsb2FkVHJpZ2dlcihjb25zdCBKU09OOjpPYmplY3QmIHJ1bGVPYmplY3QpCiB7
Ci0gICAgYXV0byB0cmlnZ2VyT2JqZWN0ID0gcnVsZU9iamVjdC5nZXRPYmplY3QoInRyaWdnZXIi
KTsKKyAgICBhdXRvIHRyaWdnZXJPYmplY3QgPSBydWxlT2JqZWN0LmdldE9iamVjdCgidHJpZ2dl
ciJfcyk7CiAgICAgaWYgKCF0cmlnZ2VyT2JqZWN0KQogICAgICAgICByZXR1cm4gbWFrZVVuZXhw
ZWN0ZWQoQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZFRyaWdnZXIpOwogCi0gICAg
U3RyaW5nIHVybEZpbHRlciA9IHRyaWdnZXJPYmplY3QtPmdldFN0cmluZygidXJsLWZpbHRlciIp
OworICAgIFN0cmluZyB1cmxGaWx0ZXIgPSB0cmlnZ2VyT2JqZWN0LT5nZXRTdHJpbmcoInVybC1m
aWx0ZXIiX3MpOwogICAgIGlmICh1cmxGaWx0ZXIuaXNFbXB0eSgpKQogICAgICAgICByZXR1cm4g
bWFrZVVuZXhwZWN0ZWQoQ29udGVudEV4dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZFVSTEZpbHRl
ckluVHJpZ2dlcik7CiAKICAgICBUcmlnZ2VyIHRyaWdnZXI7CiAgICAgdHJpZ2dlci51cmxGaWx0
ZXIgPSB1cmxGaWx0ZXI7CiAKLSAgICBpZiAoc3RkOjpvcHRpb25hbDxib29sPiB1cmxGaWx0ZXJD
YXNlU2Vuc2l0aXZlVmFsdWUgPSB0cmlnZ2VyT2JqZWN0LT5nZXRCb29sZWFuKCJ1cmwtZmlsdGVy
LWlzLWNhc2Utc2Vuc2l0aXZlIikpCisgICAgaWYgKHN0ZDo6b3B0aW9uYWw8Ym9vbD4gdXJsRmls
dGVyQ2FzZVNlbnNpdGl2ZVZhbHVlID0gdHJpZ2dlck9iamVjdC0+Z2V0Qm9vbGVhbigidXJsLWZp
bHRlci1pcy1jYXNlLXNlbnNpdGl2ZSJfcykpCiAgICAgICAgIHRyaWdnZXIudXJsRmlsdGVySXND
YXNlU2Vuc2l0aXZlID0gKnVybEZpbHRlckNhc2VTZW5zaXRpdmVWYWx1ZTsKIAotICAgIGlmIChz
dGQ6Om9wdGlvbmFsPGJvb2w+IHRvcFVSTEZpbHRlckNhc2VTZW5zaXRpdmVWYWx1ZSA9IHRyaWdn
ZXJPYmplY3QtPmdldEJvb2xlYW4oInRvcC11cmwtZmlsdGVyLWlzLWNhc2Utc2Vuc2l0aXZlIikp
CisgICAgaWYgKHN0ZDo6b3B0aW9uYWw8Ym9vbD4gdG9wVVJMRmlsdGVyQ2FzZVNlbnNpdGl2ZVZh
bHVlID0gdHJpZ2dlck9iamVjdC0+Z2V0Qm9vbGVhbigidG9wLXVybC1maWx0ZXItaXMtY2FzZS1z
ZW5zaXRpdmUiX3MpKQogICAgICAgICB0cmlnZ2VyLnRvcFVSTEZpbHRlcklzQ2FzZVNlbnNpdGl2
ZSA9ICp0b3BVUkxGaWx0ZXJDYXNlU2Vuc2l0aXZlVmFsdWU7CiAKLSAgICBpZiAoc3RkOjpvcHRp
b25hbDxib29sPiBmcmFtZVVSTEZpbHRlckNhc2VTZW5zaXRpdmVWYWx1ZSA9IHRyaWdnZXJPYmpl
Y3QtPmdldEJvb2xlYW4oImZyYW1lLXVybC1maWx0ZXItaXMtY2FzZS1zZW5zaXRpdmUiKSkKKyAg
ICBpZiAoc3RkOjpvcHRpb25hbDxib29sPiBmcmFtZVVSTEZpbHRlckNhc2VTZW5zaXRpdmVWYWx1
ZSA9IHRyaWdnZXJPYmplY3QtPmdldEJvb2xlYW4oImZyYW1lLXVybC1maWx0ZXItaXMtY2FzZS1z
ZW5zaXRpdmUiX3MpKQogICAgICAgICB0cmlnZ2VyLmZyYW1lVVJMRmlsdGVySXNDYXNlU2Vuc2l0
aXZlID0gKmZyYW1lVVJMRmlsdGVyQ2FzZVNlbnNpdGl2ZVZhbHVlOwogCi0gICAgaWYgKGF1dG8g
cmVzb3VyY2VUeXBlVmFsdWUgPSB0cmlnZ2VyT2JqZWN0LT5nZXRWYWx1ZSgicmVzb3VyY2UtdHlw
ZSIpKSB7CisgICAgaWYgKGF1dG8gcmVzb3VyY2VUeXBlVmFsdWUgPSB0cmlnZ2VyT2JqZWN0LT5n
ZXRWYWx1ZSgicmVzb3VyY2UtdHlwZSJfcykpIHsKICAgICAgICAgYXV0byByZXNvdXJjZVR5cGVB
cnJheSA9IHJlc291cmNlVHlwZVZhbHVlLT5hc0FycmF5KCk7CiAgICAgICAgIGlmICghcmVzb3Vy
Y2VUeXBlQXJyYXkpCiAgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoQ29udGVudEV4
dGVuc2lvbkVycm9yOjpKU09OSW52YWxpZFRyaWdnZXJGbGFnc0FycmF5KTsKQEAgLTE0Nyw3ICsx
NDcsNyBAQCBzdGF0aWMgRXhwZWN0ZWQ8VHJpZ2dlciwgc3RkOjplcnJvcl9jb2RlPiBsb2FkVHJp
Z2dlcihjb25zdCBKU09OOjpPYmplY3QmIHJ1bGVPYgogICAgICAgICAgICAgcmV0dXJuIG1ha2VV
bmV4cGVjdGVkKGVycm9yKTsKICAgICB9CiAKLSAgICBpZiAoYXV0byBsb2FkVHlwZVZhbHVlID0g
dHJpZ2dlck9iamVjdC0+Z2V0VmFsdWUoImxvYWQtdHlwZSIpKSB7CisgICAgaWYgKGF1dG8gbG9h
ZFR5cGVWYWx1ZSA9IHRyaWdnZXJPYmplY3QtPmdldFZhbHVlKCJsb2FkLXR5cGUiX3MpKSB7CiAg
ICAgICAgIGF1dG8gbG9hZFR5cGVBcnJheSA9IGxvYWRUeXBlVmFsdWUtPmFzQXJyYXkoKTsKICAg
ICAgICAgaWYgKCFsb2FkVHlwZUFycmF5KQogICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVj
dGVkKENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWRUcmlnZ2VyRmxhZ3NBcnJheSk7
CkBAIC0xNTUsNyArMTU1LDcgQEAgc3RhdGljIEV4cGVjdGVkPFRyaWdnZXIsIHN0ZDo6ZXJyb3Jf
Y29kZT4gbG9hZFRyaWdnZXIoY29uc3QgSlNPTjo6T2JqZWN0JiBydWxlT2IKICAgICAgICAgICAg
IHJldHVybiBtYWtlVW5leHBlY3RlZChlcnJvcik7CiAgICAgfQogCi0gICAgaWYgKGF1dG8gbG9h
ZENvbnRleHRWYWx1ZSA9IHRyaWdnZXJPYmplY3QtPmdldFZhbHVlKCJsb2FkLWNvbnRleHQiKSkg
eworICAgIGlmIChhdXRvIGxvYWRDb250ZXh0VmFsdWUgPSB0cmlnZ2VyT2JqZWN0LT5nZXRWYWx1
ZSgibG9hZC1jb250ZXh0Il9zKSkgewogICAgICAgICBhdXRvIGxvYWRDb250ZXh0QXJyYXkgPSBs
b2FkQ29udGV4dFZhbHVlLT5hc0FycmF5KCk7CiAgICAgICAgIGlmICghbG9hZENvbnRleHRBcnJh
eSkKICAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChDb250ZW50RXh0ZW5zaW9uRXJy
b3I6OkpTT05JbnZhbGlkVHJpZ2dlckZsYWdzQXJyYXkpOwpAQCAtMjEyLDExICsyMTIsMTEgQEAg
Ym9vbCBpc1ZhbGlkQ1NTU2VsZWN0b3IoY29uc3QgU3RyaW5nJiBzZWxlY3RvcikKIAogc3RhdGlj
IHN0ZDo6b3B0aW9uYWw8RXhwZWN0ZWQ8QWN0aW9uLCBzdGQ6OmVycm9yX2NvZGU+PiBsb2FkQWN0
aW9uKGNvbnN0IEpTT046Ok9iamVjdCYgcnVsZU9iamVjdCwgY29uc3QgU3RyaW5nJiB1cmxGaWx0
ZXIpCiB7Ci0gICAgYXV0byBhY3Rpb25PYmplY3QgPSBydWxlT2JqZWN0LmdldE9iamVjdCgiYWN0
aW9uIik7CisgICAgYXV0byBhY3Rpb25PYmplY3QgPSBydWxlT2JqZWN0LmdldE9iamVjdCgiYWN0
aW9uIl9zKTsKICAgICBpZiAoIWFjdGlvbk9iamVjdCkKICAgICAgICAgcmV0dXJuIG1ha2VVbmV4
cGVjdGVkKENvbnRlbnRFeHRlbnNpb25FcnJvcjo6SlNPTkludmFsaWRBY3Rpb24pOwogCi0gICAg
U3RyaW5nIGFjdGlvblR5cGUgPSBhY3Rpb25PYmplY3QtPmdldFN0cmluZygidHlwZSIpOworICAg
IFN0cmluZyBhY3Rpb25UeXBlID0gYWN0aW9uT2JqZWN0LT5nZXRTdHJpbmcoInR5cGUiX3MpOwog
CiAgICAgaWYgKGFjdGlvblR5cGUgPT0gImJsb2NrIikKICAgICAgICAgcmV0dXJuIEFjdGlvbiB7
IEJsb2NrTG9hZEFjdGlvbigpIH07CkBAIC0yMjUsNyArMjI1LDcgQEAgc3RhdGljIHN0ZDo6b3B0
aW9uYWw8RXhwZWN0ZWQ8QWN0aW9uLCBzdGQ6OmVycm9yX2NvZGU+PiBsb2FkQWN0aW9uKGNvbnN0
IEpTT046Ok8KICAgICBpZiAoYWN0aW9uVHlwZSA9PSAiYmxvY2stY29va2llcyIpCiAgICAgICAg
IHJldHVybiBBY3Rpb24geyBCbG9ja0Nvb2tpZXNBY3Rpb24oKSB9OwogICAgIGlmIChhY3Rpb25U
eXBlID09ICJjc3MtZGlzcGxheS1ub25lIikgewotICAgICAgICBTdHJpbmcgc2VsZWN0b3JTdHJp
bmcgPSBhY3Rpb25PYmplY3QtPmdldFN0cmluZygic2VsZWN0b3IiKTsKKyAgICAgICAgU3RyaW5n
IHNlbGVjdG9yU3RyaW5nID0gYWN0aW9uT2JqZWN0LT5nZXRTdHJpbmcoInNlbGVjdG9yIl9zKTsK
ICAgICAgICAgaWYgKCFzZWxlY3RvclN0cmluZykKICAgICAgICAgICAgIHJldHVybiBtYWtlVW5l
eHBlY3RlZChDb250ZW50RXh0ZW5zaW9uRXJyb3I6OkpTT05JbnZhbGlkQ1NTRGlzcGxheU5vbmVB
Y3Rpb25UeXBlKTsKICAgICAgICAgaWYgKCFpc1ZhbGlkQ1NTU2VsZWN0b3Ioc2VsZWN0b3JTdHJp
bmcpKQpAQCAtMjM1LDcgKzIzNSw3IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPEV4cGVjdGVkPEFj
dGlvbiwgc3RkOjplcnJvcl9jb2RlPj4gbG9hZEFjdGlvbihjb25zdCBKU09OOjpPCiAgICAgaWYg
KGFjdGlvblR5cGUgPT0gIm1ha2UtaHR0cHMiKQogICAgICAgICByZXR1cm4gQWN0aW9uIHsgTWFr
ZUhUVFBTQWN0aW9uKCkgfTsKICAgICBpZiAoYWN0aW9uVHlwZSA9PSAibm90aWZ5IikgewotICAg
ICAgICBTdHJpbmcgbm90aWZpY2F0aW9uID0gYWN0aW9uT2JqZWN0LT5nZXRTdHJpbmcoIm5vdGlm
aWNhdGlvbiIpOworICAgICAgICBTdHJpbmcgbm90aWZpY2F0aW9uID0gYWN0aW9uT2JqZWN0LT5n
ZXRTdHJpbmcoIm5vdGlmaWNhdGlvbiJfcyk7CiAgICAgICAgIGlmICghbm90aWZpY2F0aW9uKQog
ICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKENvbnRlbnRFeHRlbnNpb25FcnJvcjo6
SlNPTkludmFsaWROb3RpZmljYXRpb24pOwogICAgICAgICByZXR1cm4gQWN0aW9uIHsgTm90aWZ5
QWN0aW9uIHsgeyBXVEZNb3ZlKG5vdGlmaWNhdGlvbikgfSB9IH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9TZXJpYWxpemVkTkZBLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL1NlcmlhbGl6ZWRORkEuY3BwCmluZGV4IDA0YzZkYTVh
ODQ4ZDA4OTFmMzNmNGY4MzlkYTk1MmI4Yzc2NzlhMDkuLjA1MmI1OTdiY2ZiOTJhNzQzNzkzZjkx
NWVkNjk2ZTdhMGU5ZTQ4ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRl
bnNpb25zL1NlcmlhbGl6ZWRORkEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRl
bnNpb25zL1NlcmlhbGl6ZWRORkEuY3BwCkBAIC01Miw3ICs1Miw3IEBAIGJvb2wgd3JpdGVBbGxU
b0ZpbGUoRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlIGZpbGUsIGNvbnN0IFQmIGNvbnRh
aW5lcikKIHN0ZDo6b3B0aW9uYWw8U2VyaWFsaXplZE5GQT4gU2VyaWFsaXplZE5GQTo6c2VyaWFs
aXplKE5GQSYmIG5mYSkKIHsKICAgICBhdXRvIGZpbGUgPSBGaWxlU3lzdGVtOjppbnZhbGlkUGxh
dGZvcm1GaWxlSGFuZGxlOwotICAgIGF1dG8gZmlsZW5hbWUgPSBGaWxlU3lzdGVtOjpvcGVuVGVt
cG9yYXJ5RmlsZSgiU2VyaWFsaXplZE5GQSIsIGZpbGUpOworICAgIGF1dG8gZmlsZW5hbWUgPSBG
aWxlU3lzdGVtOjpvcGVuVGVtcG9yYXJ5RmlsZSgiU2VyaWFsaXplZE5GQSJfcywgZmlsZSk7CiAg
ICAgaWYgKCFGaWxlU3lzdGVtOjppc0hhbmRsZVZhbGlkKGZpbGUpKQogICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5z
aW9ucy9VUkxGaWx0ZXJQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVuc2lv
bnMvVVJMRmlsdGVyUGFyc2VyLmNwcAppbmRleCBkODcyOWQzOTBkOTA3MzBhMGViN2RiM2E4Yzlm
MTcxOGM4NmY3YTNhLi40ZmYxMjI1ZmFhODIyODViMzFjZWQ1NzU5ZGI4OTc3NjkxODllNzRhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9VUkxGaWx0ZXJQYXJz
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NvbnRlbnRleHRlbnNpb25zL1VSTEZpbHRlclBh
cnNlci5jcHAKQEAgLTM2OSwzOSArMzY5LDM5IEBAIFVSTEZpbHRlclBhcnNlcjo6UGFyc2VTdGF0
dXMgVVJMRmlsdGVyUGFyc2VyOjphZGRQYXR0ZXJuKGNvbnN0IFN0cmluZyYgcGF0dGVybiwKICAg
ICByZXR1cm4gc3RhdHVzOwogfQogCi1TdHJpbmcgVVJMRmlsdGVyUGFyc2VyOjpzdGF0dXNTdHJp
bmcoUGFyc2VTdGF0dXMgc3RhdHVzKQorQVNDSUlMaXRlcmFsIFVSTEZpbHRlclBhcnNlcjo6c3Rh
dHVzU3RyaW5nKFBhcnNlU3RhdHVzIHN0YXR1cykKIHsKICAgICBzd2l0Y2ggKHN0YXR1cykgewog
ICAgIGNhc2UgT2s6Ci0gICAgICAgIHJldHVybiAiT2siOworICAgICAgICByZXR1cm4gIk9rIl9z
OwogICAgIGNhc2UgTWF0Y2hlc0V2ZXJ5dGhpbmc6Ci0gICAgICAgIHJldHVybiAiTWF0Y2hlcyBl
dmVyeXRoaW5nLiI7CisgICAgICAgIHJldHVybiAiTWF0Y2hlcyBldmVyeXRoaW5nLiJfczsKICAg
ICBjYXNlIE5vbkFTQ0lJOgotICAgICAgICByZXR1cm4gIk9ubHkgQVNDSUkgY2hhcmFjdGVycyBh
cmUgc3VwcG9ydGVkIGluIHBhdHRlcm4uIjsKKyAgICAgICAgcmV0dXJuICJPbmx5IEFTQ0lJIGNo
YXJhY3RlcnMgYXJlIHN1cHBvcnRlZCBpbiBwYXR0ZXJuLiJfczsKICAgICBjYXNlIFVuc3VwcG9y
dGVkQ2hhcmFjdGVyQ2xhc3M6Ci0gICAgICAgIHJldHVybiAiQ2hhcmFjdGVyIGNsYXNzIGlzIG5v
dCBzdXBwb3J0ZWQuIjsKKyAgICAgICAgcmV0dXJuICJDaGFyYWN0ZXIgY2xhc3MgaXMgbm90IHN1
cHBvcnRlZC4iX3M7CiAgICAgY2FzZSBCYWNrUmVmZXJlbmNlOgotICAgICAgICByZXR1cm4gIlBh
dHRlcm5zIGNhbm5vdCBjb250YWluIGJhY2tyZWZlcmVuY2VzLiI7CisgICAgICAgIHJldHVybiAi
UGF0dGVybnMgY2Fubm90IGNvbnRhaW4gYmFja3JlZmVyZW5jZXMuIl9zOwogICAgIGNhc2UgRm9y
d2FyZFJlZmVyZW5jZToKLSAgICAgICAgcmV0dXJuICJQYXR0ZXJucyBjYW5ub3QgY29udGFpbiBm
b3J3YXJkIHJlZmVyZW5jZXMuIjsKKyAgICAgICAgcmV0dXJuICJQYXR0ZXJucyBjYW5ub3QgY29u
dGFpbiBmb3J3YXJkIHJlZmVyZW5jZXMuIl9zOwogICAgIGNhc2UgTWlzcGxhY2VkU3RhcnRPZkxp
bmU6Ci0gICAgICAgIHJldHVybiAiU3RhcnQgb2YgbGluZSBhc3NlcnRpb24gY2FuIG9ubHkgYXBw
ZWFyIGFzIHRoZSBmaXJzdCB0ZXJtIGluIGEgZmlsdGVyLiI7CisgICAgICAgIHJldHVybiAiU3Rh
cnQgb2YgbGluZSBhc3NlcnRpb24gY2FuIG9ubHkgYXBwZWFyIGFzIHRoZSBmaXJzdCB0ZXJtIGlu
IGEgZmlsdGVyLiJfczsKICAgICBjYXNlIFdvcmRCb3VuZGFyeToKLSAgICAgICAgcmV0dXJuICJX
b3JkIGJvdW5kYXJpZXMgYXNzZXJ0aW9ucyBhcmUgbm90IHN1cHBvcnRlZCB5ZXQuIjsKKyAgICAg
ICAgcmV0dXJuICJXb3JkIGJvdW5kYXJpZXMgYXNzZXJ0aW9ucyBhcmUgbm90IHN1cHBvcnRlZCB5
ZXQuIl9zOwogICAgIGNhc2UgQXRvbUNoYXJhY3RlcjoKLSAgICAgICAgcmV0dXJuICJCdWlsdGlu
cyBjaGFyYWN0ZXIgY2xhc3MgYXRvbXMgYXJlIG5vdCBzdXBwb3J0ZWQgeWV0LiI7CisgICAgICAg
IHJldHVybiAiQnVpbHRpbnMgY2hhcmFjdGVyIGNsYXNzIGF0b21zIGFyZSBub3Qgc3VwcG9ydGVk
IHlldC4iX3M7CiAgICAgY2FzZSBHcm91cDoKLSAgICAgICAgcmV0dXJuICJHcm91cHMgYXJlIG5v
dCBzdXBwb3J0ZWQgeWV0LiI7CisgICAgICAgIHJldHVybiAiR3JvdXBzIGFyZSBub3Qgc3VwcG9y
dGVkIHlldC4iX3M7CiAgICAgY2FzZSBEaXNqdW5jdGlvbjoKLSAgICAgICAgcmV0dXJuICJEaXNq
dW5jdGlvbnMgYXJlIG5vdCBzdXBwb3J0ZWQgeWV0LiI7CisgICAgICAgIHJldHVybiAiRGlzanVu
Y3Rpb25zIGFyZSBub3Qgc3VwcG9ydGVkIHlldC4iX3M7CiAgICAgY2FzZSBNaXNwbGFjZWRFbmRP
ZkxpbmU6Ci0gICAgICAgIHJldHVybiAiVGhlIGVuZCBvZiBsaW5lIGFzc2VydGlvbiBtdXN0IGJl
IHRoZSBsYXN0IHRlcm0gaW4gYW4gZXhwcmVzc2lvbi4iOworICAgICAgICByZXR1cm4gIlRoZSBl
bmQgb2YgbGluZSBhc3NlcnRpb24gbXVzdCBiZSB0aGUgbGFzdCB0ZXJtIGluIGFuIGV4cHJlc3Np
b24uIl9zOwogICAgIGNhc2UgRW1wdHlQYXR0ZXJuOgotICAgICAgICByZXR1cm4gIkVtcHR5IHBh
dHRlcm4uIjsKKyAgICAgICAgcmV0dXJuICJFbXB0eSBwYXR0ZXJuLiJfczsKICAgICBjYXNlIFlh
cnJFcnJvcjoKLSAgICAgICAgcmV0dXJuICJJbnRlcm5hbCBlcnJvciBpbiBZQVJSLiI7CisgICAg
ICAgIHJldHVybiAiSW50ZXJuYWwgZXJyb3IgaW4gWUFSUi4iX3M7CiAgICAgY2FzZSBJbnZhbGlk
UXVhbnRpZmllcjoKLSAgICAgICAgcmV0dXJuICJBcmJpdHJhcnkgYXRvbSByZXBldGl0aW9ucyBh
cmUgbm90IHN1cHBvcnRlZC4iOworICAgICAgICByZXR1cm4gIkFyYml0cmFyeSBhdG9tIHJlcGV0
aXRpb25zIGFyZSBub3Qgc3VwcG9ydGVkLiJfczsKICAgICB9CiAKICAgICBSRUxFQVNFX0FTU0VS
VF9OT1RfUkVBQ0hFRCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY29udGVudGV4dGVu
c2lvbnMvVVJMRmlsdGVyUGFyc2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9u
cy9VUkxGaWx0ZXJQYXJzZXIuaAppbmRleCBiNWMxZjZkOWZkMmU3Yzk0Y2IyNTY1NzU2ODlkZjRi
NzA3MDc5YTlkLi44ODk4M2I1NWMzY2JlZDU5ZjRhNGEwMWFlZDI1YTQzMmM4MDI4YjQxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9VUkxGaWx0ZXJQYXJzZXIu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jb250ZW50ZXh0ZW5zaW9ucy9VUkxGaWx0ZXJQYXJzZXIu
aApAQCAtNTQsNyArNTQsNyBAQCBwdWJsaWM6CiAgICAgICAgIFlhcnJFcnJvciwKICAgICAgICAg
SW52YWxpZFF1YW50aWZpZXIsCiAgICAgfTsKLSAgICBzdGF0aWMgU3RyaW5nIHN0YXR1c1N0cmlu
ZyhQYXJzZVN0YXR1cyk7CisgICAgc3RhdGljIEFTQ0lJTGl0ZXJhbCBzdGF0dXNTdHJpbmcoUGFy
c2VTdGF0dXMpOwogICAgIGV4cGxpY2l0IFVSTEZpbHRlclBhcnNlcihDb21iaW5lZFVSTEZpbHRl
cnMmKTsKICAgICB+VVJMRmlsdGVyUGFyc2VyKCk7CiAgICAgUGFyc2VTdGF0dXMgYWRkUGF0dGVy
bihjb25zdCBTdHJpbmcmIHBhdHRlcm4sIGJvb2wgcGF0dGVybklzQ2FzZVNlbnNpdGl2ZSwgdWlu
dDY0X3QgcGF0dGVybklkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9TdWJ0
bGVDcnlwdG8uY3BwIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL1N1YnRsZUNyeXB0by5jcHAKaW5k
ZXggZWFhMzIxOGZjZjdiNzc4NTRmYjIzODVlNTAxYTk5OTQzNmZiZWI1OC4uOWQ2ZjQzMDM2NTk4
MmQ2ZTk1MGU5YzFhNmExZDZiMmMxYTdkMzk2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
Y3J5cHRvL1N1YnRsZUNyeXB0by5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL1N1YnRs
ZUNyeXB0by5jcHAKQEAgLTUzNCw3ICs1MzQsNyBAQCB2b2lkIFN1YnRsZUNyeXB0bzo6YWRkQXV0
aGVudGljYXRlZEVuY3J5cHRpb25XYXJuaW5nSWZOZWNlc3NhcnkoQ3J5cHRvQWxnb3JpdGhtSQog
ewogICAgIGlmIChhbGdvcml0aG1JZGVudGlmaWVyID09IENyeXB0b0FsZ29yaXRobUlkZW50aWZp
ZXI6OkFFU19DQkMgfHwgYWxnb3JpdGhtSWRlbnRpZmllciA9PSBDcnlwdG9BbGdvcml0aG1JZGVu
dGlmaWVyOjpBRVNfQ1RSKSB7CiAgICAgICAgIGlmICghc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
LT5oYXNMb2dnZWRBdXRoZW50aWNhdGVkRW5jcnlwdGlvbldhcm5pbmcoKSkgewotICAgICAgICAg
ICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291
cmNlOjpTZWN1cml0eSwgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCAiQUVTLUNCQyBhbmQgQUVTLUNU
UiBkbyBub3QgcHJvdmlkZSBhdXRoZW50aWNhdGlvbiBieSBkZWZhdWx0LCBhbmQgaW1wbGVtZW50
aW5nIGl0IG1hbnVhbGx5IGNhbiByZXN1bHQgaW4gbWlub3IsIGJ1dCBzZXJpb3VzIG1pc3Rha2Vz
LiBXZSByZWNvbW1lbmRlZCB1c2luZyBhdXRoZW50aWNhdGVkIGVuY3J5cHRpb24gbGlrZSBBRVMt
R0NNIHRvIHByb3RlY3QgYWdhaW5zdCBjaG9zZW4tY2lwaGVydGV4dCBhdHRhY2tzLiIpOworICAg
ICAgICAgICAgc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5hZGRDb25zb2xlTWVzc2FnZShNZXNz
YWdlU291cmNlOjpTZWN1cml0eSwgTWVzc2FnZUxldmVsOjpXYXJuaW5nLCAiQUVTLUNCQyBhbmQg
QUVTLUNUUiBkbyBub3QgcHJvdmlkZSBhdXRoZW50aWNhdGlvbiBieSBkZWZhdWx0LCBhbmQgaW1w
bGVtZW50aW5nIGl0IG1hbnVhbGx5IGNhbiByZXN1bHQgaW4gbWlub3IsIGJ1dCBzZXJpb3VzIG1p
c3Rha2VzLiBXZSByZWNvbW1lbmRlZCB1c2luZyBhdXRoZW50aWNhdGVkIGVuY3J5cHRpb24gbGlr
ZSBBRVMtR0NNIHRvIHByb3RlY3QgYWdhaW5zdCBjaG9zZW4tY2lwaGVydGV4dCBhdHRhY2tzLiJf
cyk7CiAgICAgICAgICAgICBzY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPnNldEhhc0xvZ2dlZEF1
dGhlbnRpY2F0ZWRFbmNyeXB0aW9uV2FybmluZyh0cnVlKTsKICAgICAgICAgfQogICAgIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRo
bUFFU19DQkMuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29y
aXRobUFFU19DQkMuaAppbmRleCAyNzMyOTg1Yjc3ZmVkZmMzOTY3NGQ0NzQ5ZDg5NTUwYTBhMTcx
YzI2Li5iNzQ0M2E3MzM5ODQyMDg4ZjgzY2NjNmYzNWNhMjk3NzE2MDhjY2ZhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfQ0JD
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGht
QUVTX0NCQy5oCkBAIC00MSw3ICs0MSw3IEBAIHB1YmxpYzoKICAgICAgICAgTm8KICAgICB9Owog
Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBjb25zdCBjaGFyKiBzX25hbWUgPSAiQUVTLUNCQyI7Cisg
ICAgc3RhdGljIGNvbnN0ZXhwciBBU0NJSUxpdGVyYWwgc19uYW1lID0gIkFFUy1DQkMiX3M7CiAg
ICAgc3RhdGljIGNvbnN0ZXhwciBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIHNfaWRlbnRpZmll
ciA9IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkFFU19DQkM7CiAgICAgc3RhdGljIFJlZjxD
cnlwdG9BbGdvcml0aG0+IGNyZWF0ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9j
cnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfQ0ZCLmggYi9Tb3VyY2UvV2ViQ29y
ZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfQ0ZCLmgKaW5kZXggYzIyNzQx
OTFmNjM1YjgzM2E0OTFlODJjYjFkZTdkYTgxMDNjNmQ5YS4uNTA4YTIwMzM2NGFjYmFjZmMwZmZj
ODU3Mjc1Mjc5ZWY1NDZjZmM4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2Fs
Z29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0NGQi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Ny
eXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19DRkIuaApAQCAtMzYsNyArMzYsNyBA
QCBjbGFzcyBDcnlwdG9LZXlBRVM7CiAKIGNsYXNzIENyeXB0b0FsZ29yaXRobUFFU19DRkIgZmlu
YWwgOiBwdWJsaWMgQ3J5cHRvQWxnb3JpdGhtIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3Rl
eHByIGNvbnN0IGNoYXIqIHNfbmFtZSA9ICJBRVMtQ0ZCLTgiOworICAgIHN0YXRpYyBjb25zdGV4
cHIgQVNDSUlMaXRlcmFsIHNfbmFtZSA9ICJBRVMtQ0ZCLTgiX3M7CiAgICAgc3RhdGljIGNvbnN0
ZXhwciBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIHNfaWRlbnRpZmllciA9IENyeXB0b0FsZ29y
aXRobUlkZW50aWZpZXI6OkFFU19DRkI7CiAgICAgc3RhdGljIFJlZjxDcnlwdG9BbGdvcml0aG0+
IGNyZWF0ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGht
cy9DcnlwdG9BbGdvcml0aG1BRVNfQ1RSLmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3Jp
dGhtcy9DcnlwdG9BbGdvcml0aG1BRVNfQ1RSLmgKaW5kZXggNzE4ZjZlMGUzMzg2ZTZmZTYyNTM5
NWFmYmI3OWFkMzBjNGZhNDE0YS4uOGJkMzkzMzlkYzM2MDBmNmM0ODZlYTYxMGMxYjgyNDZiOGMy
MjcwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRv
QWxnb3JpdGhtQUVTX0NUUi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1z
L0NyeXB0b0FsZ29yaXRobUFFU19DVFIuaApAQCAtNjQsNyArNjQsNyBAQCBwdWJsaWM6CiAgICAg
ICAgIGNvbnN0IHNpemVfdCBtX2NvdW50ZXJMZW5ndGg7CiAgICAgfTsKIAotICAgIHN0YXRpYyBj
b25zdGV4cHIgY29uc3QgY2hhciogc19uYW1lID0gIkFFUy1DVFIiOworICAgIHN0YXRpYyBjb25z
dGV4cHIgQVNDSUlMaXRlcmFsIHNfbmFtZSA9ICJBRVMtQ1RSIl9zOwogICAgIHN0YXRpYyBjb25z
dGV4cHIgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBzX2lkZW50aWZpZXIgPSBDcnlwdG9BbGdv
cml0aG1JZGVudGlmaWVyOjpBRVNfQ1RSOwogICAgIHN0YXRpYyBSZWY8Q3J5cHRvQWxnb3JpdGht
PiBjcmVhdGUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRo
bXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0dDTS5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29y
aXRobXMvQ3J5cHRvQWxnb3JpdGhtQUVTX0dDTS5oCmluZGV4IGQwYWQxZjEzYzE3OGI1Y2M5YjE3
NmViMzBlNmNlYzJhMWJjYjQ2NTguLjUzMzEwZTExMTA3NWUxNjM0ZWYzZTA1N2I0YWRmNmExM2M2
OTIzMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0
b0FsZ29yaXRobUFFU19HQ00uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGht
cy9DcnlwdG9BbGdvcml0aG1BRVNfR0NNLmgKQEAgLTM2LDcgKzM2LDcgQEAgY2xhc3MgQ3J5cHRv
S2V5QUVTOwogCiBjbGFzcyBDcnlwdG9BbGdvcml0aG1BRVNfR0NNIGZpbmFsIDogcHVibGljIENy
eXB0b0FsZ29yaXRobSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBjb25zdCBjaGFy
KiBzX25hbWUgPSAiQUVTLUdDTSI7CisgICAgc3RhdGljIGNvbnN0ZXhwciBBU0NJSUxpdGVyYWwg
c19uYW1lID0gIkFFUy1HQ00iX3M7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBDcnlwdG9BbGdvcml0
aG1JZGVudGlmaWVyIHNfaWRlbnRpZmllciA9IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkFF
U19HQ007CiAgICAgc3RhdGljIFJlZjxDcnlwdG9BbGdvcml0aG0+IGNyZWF0ZSgpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1B
RVNfS1cuaCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRo
bUFFU19LVy5oCmluZGV4IDU3ZTY5YzE1YzEyYzdlZTE4ZWI3NjUxOGRmZjg3YmY0YjU3MjRiOTku
LmEwOGRlYzNmMjZjYmI1OTkxNTRhMjM1NjU5MGVmMGZkMTc3YzYzZGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19LVy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUFFU19L
Vy5oCkBAIC0zNSw3ICszNSw3IEBAIGNsYXNzIENyeXB0b0tleUFFUzsKIAogY2xhc3MgQ3J5cHRv
QWxnb3JpdGhtQUVTX0tXIGZpbmFsIDogcHVibGljIENyeXB0b0FsZ29yaXRobSB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBjb25zdCBjaGFyKiBzX25hbWUgPSAiQUVTLUtXIjsKKyAg
ICBzdGF0aWMgY29uc3RleHByIEFTQ0lJTGl0ZXJhbCBzX25hbWUgPSAiQUVTLUtXIl9zOwogICAg
IHN0YXRpYyBjb25zdGV4cHIgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBzX2lkZW50aWZpZXIg
PSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpBRVNfS1c7CiAgICAgc3RhdGljIFJlZjxDcnlw
dG9BbGdvcml0aG0+IGNyZWF0ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlw
dG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1FQ0RILmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlw
dG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1FQ0RILmgKaW5kZXggOTNhMTVhMmRhMzUxZGNl
NzI3NDMzODE5N2QyNjYzMTA1ODVmN2JmNS4uMzJkNTU0NTZjOTcwODI1Y2NlNTUyZDdkZTA0M2E0
Mjk1MGQwZTIzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMv
Q3J5cHRvQWxnb3JpdGhtRUNESC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0
aG1zL0NyeXB0b0FsZ29yaXRobUVDREguaApAQCAtMzUsNyArMzUsNyBAQCBjbGFzcyBDcnlwdG9L
ZXlFQzsKIAogY2xhc3MgQ3J5cHRvQWxnb3JpdGhtRUNESCBmaW5hbCA6IHB1YmxpYyBDcnlwdG9B
bGdvcml0aG0gewogcHVibGljOgotICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3QgY2hhciogc19u
YW1lID0gIkVDREgiOworICAgIHN0YXRpYyBjb25zdGV4cHIgQVNDSUlMaXRlcmFsIHNfbmFtZSA9
ICJFQ0RIIl9zOwogICAgIHN0YXRpYyBjb25zdGV4cHIgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmll
ciBzX2lkZW50aWZpZXIgPSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpFQ0RIOwogICAgIHN0
YXRpYyBSZWY8Q3J5cHRvQWxnb3JpdGhtPiBjcmVhdGUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtRUNEU0EuaCBiL1NvdXJj
ZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUVDRFNBLmgKaW5kZXgg
M2E1OTFiZGZhZjIyODg1MGRlOGMwODJiZjI3N2ExOTAwNjM4OWU2Ni4uYjdjNzg4OWY4ZTAzMjEz
NGMzZGUwM2I3YWFiZjc1YzUyZjgyYmQzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5
cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtRUNEU0EuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1FQ0RTQS5oCkBAIC0zNiw3ICszNiw3
IEBAIGNsYXNzIENyeXB0b0tleUVDOwogCiBjbGFzcyBDcnlwdG9BbGdvcml0aG1FQ0RTQSBmaW5h
bCA6IHB1YmxpYyBDcnlwdG9BbGdvcml0aG0gewogcHVibGljOgotICAgIHN0YXRpYyBjb25zdGV4
cHIgY29uc3QgY2hhciogc19uYW1lID0gIkVDRFNBIjsKKyAgICBzdGF0aWMgY29uc3RleHByIEFT
Q0lJTGl0ZXJhbCBzX25hbWUgPSAiRUNEU0EiX3M7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBDcnlw
dG9BbGdvcml0aG1JZGVudGlmaWVyIHNfaWRlbnRpZmllciA9IENyeXB0b0FsZ29yaXRobUlkZW50
aWZpZXI6OkVDRFNBOwogICAgIHN0YXRpYyBSZWY8Q3J5cHRvQWxnb3JpdGhtPiBjcmVhdGUoKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxn
b3JpdGhtSEtERi5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxn
b3JpdGhtSEtERi5oCmluZGV4IDFkZGNkOWQxYTE0NjMxNjAzMjFiMTE2YWU3NGQ5YTM2ZDljYjFk
NmEuLjhmMzkzOWIxOWI0ZWM5Mjg2NzgwNzNmMjc0NmE5NWIwZWYzYjM1YTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobUhLREYuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1IS0RG
LmgKQEAgLTM2LDcgKzM2LDcgQEAgY2xhc3MgQ3J5cHRvS2V5UmF3OwogCiBjbGFzcyBDcnlwdG9B
bGdvcml0aG1IS0RGIGZpbmFsIDogcHVibGljIENyeXB0b0FsZ29yaXRobSB7CiBwdWJsaWM6Ci0g
ICAgc3RhdGljIGNvbnN0ZXhwciBjb25zdCBjaGFyKiBzX25hbWUgPSAiSEtERiI7CisgICAgc3Rh
dGljIGNvbnN0ZXhwciBBU0NJSUxpdGVyYWwgc19uYW1lID0gIkhLREYiX3M7CiAgICAgc3RhdGlj
IGNvbnN0ZXhwciBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIHNfaWRlbnRpZmllciA9IENyeXB0
b0FsZ29yaXRobUlkZW50aWZpZXI6OkhLREY7CiAgICAgc3RhdGljIFJlZjxDcnlwdG9BbGdvcml0
aG0+IGNyZWF0ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3Jp
dGhtcy9DcnlwdG9BbGdvcml0aG1ITUFDLmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3Jp
dGhtcy9DcnlwdG9BbGdvcml0aG1ITUFDLmgKaW5kZXggZmE4ZjBhZGRjY2UxMjhmMjQ3MTUxNzNm
YWZiZmE5MjczMjUyNTBkMy4uOWYxMDg0Njk4YWI0M2Y3ZTVlZDk5YmJjYWQ4NWY4MTFhYWJiNWMy
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxn
b3JpdGhtSE1BQy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0
b0FsZ29yaXRobUhNQUMuaApAQCAtMzUsNyArMzUsNyBAQCBjbGFzcyBDcnlwdG9LZXlITUFDOwog
CiBjbGFzcyBDcnlwdG9BbGdvcml0aG1ITUFDIGZpbmFsIDogcHVibGljIENyeXB0b0FsZ29yaXRo
bSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBjb25zdCBjaGFyKiBzX25hbWUgPSAi
SE1BQyI7CisgICAgc3RhdGljIGNvbnN0ZXhwciBBU0NJSUxpdGVyYWwgc19uYW1lID0gIkhNQUMi
X3M7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIHNfaWRl
bnRpZmllciA9IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OkhNQUM7CiAgICAgc3RhdGljIFJl
ZjxDcnlwdG9BbGdvcml0aG0+IGNyZWF0ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1QQktERjIuaCBiL1NvdXJjZS9XZWJD
b3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVBCS0RGMi5oCmluZGV4IGJkOTc0
NWM3MDM1OGU3OGQ1M2I0ODBjYzI2NmRjNDQ5Nzc4ZmI4NDIuLjM0MDY5ZTUxZmFhZTZhMjA3MjIy
OTgyOGQxNmQ5YTMyOWQ1YThiZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9h
bGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVBCS0RGMi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Ny
eXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVBCS0RGMi5oCkBAIC0zNiw3ICszNiw3IEBA
IGNsYXNzIENyeXB0b0tleVJhdzsKIAogY2xhc3MgQ3J5cHRvQWxnb3JpdGhtUEJLREYyIGZpbmFs
IDogcHVibGljIENyeXB0b0FsZ29yaXRobSB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0ZXhw
ciBjb25zdCBjaGFyKiBzX25hbWUgPSAiUEJLREYyIjsKKyAgICBzdGF0aWMgY29uc3RleHByIEFT
Q0lJTGl0ZXJhbCBzX25hbWUgPSAiUEJLREYyIl9zOwogICAgIHN0YXRpYyBjb25zdGV4cHIgQ3J5
cHRvQWxnb3JpdGhtSWRlbnRpZmllciBzX2lkZW50aWZpZXIgPSBDcnlwdG9BbGdvcml0aG1JZGVu
dGlmaWVyOjpQQktERjI7CiAgICAgc3RhdGljIFJlZjxDcnlwdG9BbGdvcml0aG0+IGNyZWF0ZSgp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9B
bGdvcml0aG1SU0FFU19QS0NTMV92MV81LmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3Jp
dGhtcy9DcnlwdG9BbGdvcml0aG1SU0FFU19QS0NTMV92MV81LmgKaW5kZXggOGI1MWI0MWU3YzBh
NTdmNjY4ZjU4NDc5ZmEyOWU2MzhlOWUxYWQwYi4uZDIxZTZjMWVlMjg2ZjdkYzYzODc1YTk4NGFi
MjNlNzAwNGVlMTg4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRo
bXMvQ3J5cHRvQWxnb3JpdGhtUlNBRVNfUEtDUzFfdjFfNS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQUVTX1BLQ1MxX3YxXzUuaApAQCAt
MzUsNyArMzUsNyBAQCBjbGFzcyBDcnlwdG9LZXlSU0E7CiAKIGNsYXNzIENyeXB0b0FsZ29yaXRo
bVJTQUVTX1BLQ1MxX3YxXzUgZmluYWwgOiBwdWJsaWMgQ3J5cHRvQWxnb3JpdGhtIHsKIHB1Ymxp
YzoKLSAgICBzdGF0aWMgY29uc3RleHByIGNvbnN0IGNoYXIqIHNfbmFtZSA9ICJSU0FFUy1QS0NT
MS12MV81IjsKKyAgICBzdGF0aWMgY29uc3RleHByIEFTQ0lJTGl0ZXJhbCBzX25hbWUgPSAiUlNB
RVMtUEtDUzEtdjFfNSJfczsKICAgICBzdGF0aWMgY29uc3RleHByIENyeXB0b0FsZ29yaXRobUlk
ZW50aWZpZXIgc19pZGVudGlmaWVyID0gQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6UlNBRVNf
UEtDUzFfdjFfNTsKICAgICBzdGF0aWMgUmVmPENyeXB0b0FsZ29yaXRobT4gY3JlYXRlKCk7CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29y
aXRobVJTQVNTQV9QS0NTMV92MV81LmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGht
cy9DcnlwdG9BbGdvcml0aG1SU0FTU0FfUEtDUzFfdjFfNS5oCmluZGV4IGQ5YjdiNDUwNzIzYWZj
ZGE5OTk5NWNiODgzY2RhMzljYWYzMjhkY2UuLmQxODVkM2E0YmRhMmRhMzdjZGIwZGYyOGY2OGEy
NzNkZGU5OWI4NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1z
L0NyeXB0b0FsZ29yaXRobVJTQVNTQV9QS0NTMV92MV81LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNBU1NBX1BLQ1MxX3YxXzUuaApAQCAt
MzUsNyArMzUsNyBAQCBjbGFzcyBDcnlwdG9LZXlSU0E7CiAKIGNsYXNzIENyeXB0b0FsZ29yaXRo
bVJTQVNTQV9QS0NTMV92MV81IGZpbmFsIDogcHVibGljIENyeXB0b0FsZ29yaXRobSB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBjb25zdCBjaGFyKiBzX25hbWUgPSAiUlNBU1NBLVBL
Q1MxLXYxXzUiOworICAgIHN0YXRpYyBjb25zdGV4cHIgQVNDSUlMaXRlcmFsIHNfbmFtZSA9ICJS
U0FTU0EtUEtDUzEtdjFfNSJfczsKICAgICBzdGF0aWMgY29uc3RleHByIENyeXB0b0FsZ29yaXRo
bUlkZW50aWZpZXIgc19pZGVudGlmaWVyID0gQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6UlNB
U1NBX1BLQ1MxX3YxXzU7CiAgICAgc3RhdGljIFJlZjxDcnlwdG9BbGdvcml0aG0+IGNyZWF0ZSgp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9B
bGdvcml0aG1SU0FfT0FFUC5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5
cHRvQWxnb3JpdGhtUlNBX09BRVAuaAppbmRleCAwOTZhZjNjYTIzMDc5NTlmMjQ1NGVlM2NmZDJi
M2YwZTIyYjQ3M2YyLi5kYmE3ZWE5ZDVkNzIyZTQyN2EzYjBhYTRmOWRjZDMyZmY0NDU5ZjJiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0
aG1SU0FfT0FFUC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0
b0FsZ29yaXRobVJTQV9PQUVQLmgKQEAgLTM2LDcgKzM2LDcgQEAgY2xhc3MgQ3J5cHRvS2V5UlNB
OwogCiBjbGFzcyBDcnlwdG9BbGdvcml0aG1SU0FfT0FFUCBmaW5hbCA6IHB1YmxpYyBDcnlwdG9B
bGdvcml0aG0gewogcHVibGljOgotICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3QgY2hhciogc19u
YW1lID0gIlJTQS1PQUVQIjsKKyAgICBzdGF0aWMgY29uc3RleHByIEFTQ0lJTGl0ZXJhbCBzX25h
bWUgPSAiUlNBLU9BRVAiX3M7CiAgICAgc3RhdGljIGNvbnN0ZXhwciBDcnlwdG9BbGdvcml0aG1J
ZGVudGlmaWVyIHNfaWRlbnRpZmllciA9IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlJTQV9P
QUVQOwogICAgIHN0YXRpYyBSZWY8Q3J5cHRvQWxnb3JpdGhtPiBjcmVhdGUoKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtUlNB
X1BTUy5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGht
UlNBX1BTUy5oCmluZGV4IDU4NzlhNTY3Y2NjYzdiMGExYzlhZDRkOTE3ODlkOWQwNTRiMDA5NzQu
LmIxZjdmNzcyY2U0MjI3OGQ0ZDk0ZDVjMGE3NmNhZTVlZGYwZTQwZWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVJTQV9QU1MuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1SU0Ff
UFNTLmgKQEAgLTM2LDcgKzM2LDcgQEAgY2xhc3MgQ3J5cHRvS2V5UlNBOwogCiBjbGFzcyBDcnlw
dG9BbGdvcml0aG1SU0FfUFNTIGZpbmFsIDogcHVibGljIENyeXB0b0FsZ29yaXRobSB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBjb25zdCBjaGFyKiBzX25hbWUgPSAiUlNBLVBTUyI7
CisgICAgc3RhdGljIGNvbnN0ZXhwciBBU0NJSUxpdGVyYWwgc19uYW1lID0gIlJTQS1QU1MiX3M7
CiAgICAgc3RhdGljIGNvbnN0ZXhwciBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIHNfaWRlbnRp
ZmllciA9IENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXI6OlJTQV9QU1M7CiAgICAgc3RhdGljIFJl
ZjxDcnlwdG9BbGdvcml0aG0+IGNyZWF0ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEExLmggYi9Tb3VyY2UvV2ViQ29y
ZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEExLmgKaW5kZXggZDgwN2FiYjk3
NGNiYWFjM2IwYTdiYzdhZDg2NThmY2FmYjVhZDZhZS4uMWZkNzc1YTgxMzY0M2MxYjJmYWNjN2Qz
Yzk0MDlkMzJmZTFjZTg1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29y
aXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9h
bGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTEuaApAQCAtMzMsNyArMzMsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIENyeXB0b0FsZ29yaXRobVNIQTEgZmluYWwgOiBwdWJsaWMg
Q3J5cHRvQWxnb3JpdGhtIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3RleHByIGNvbnN0IGNo
YXIqIHNfbmFtZSA9ICJTSEEtMSI7CisgICAgc3RhdGljIGNvbnN0ZXhwciBBU0NJSUxpdGVyYWwg
c19uYW1lID0gIlNIQS0xIl9zOwogICAgIHN0YXRpYyBjb25zdGV4cHIgQ3J5cHRvQWxnb3JpdGht
SWRlbnRpZmllciBzX2lkZW50aWZpZXIgPSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpTSEFf
MTsKICAgICBzdGF0aWMgUmVmPENyeXB0b0FsZ29yaXRobT4gY3JlYXRlKCk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTIy
NC5oIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hB
MjI0LmgKaW5kZXggNzgwNGJhY2ZmMjU3MmQ4ZGM2NTExMDA0MDRmOTA1YmY5M2JmYzRjNi4uNDkz
ZTE2MmFiMzY1MmU2NmMzNTA0YThkNzk1YzI4NjlkNGRkY2VjOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMjI0LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMjI0LmgK
QEAgLTMzLDcgKzMzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBDcnlwdG9BbGdv
cml0aG1TSEEyMjQgZmluYWwgOiBwdWJsaWMgQ3J5cHRvQWxnb3JpdGhtIHsKIHB1YmxpYzoKLSAg
ICBzdGF0aWMgY29uc3RleHByIGNvbnN0IGNoYXIqIHNfbmFtZSA9ICJTSEEtMjI0IjsKKyAgICBz
dGF0aWMgY29uc3RleHByIEFTQ0lJTGl0ZXJhbCBzX25hbWUgPSAiU0hBLTIyNCJfczsKICAgICBz
dGF0aWMgY29uc3RleHByIENyeXB0b0FsZ29yaXRobUlkZW50aWZpZXIgc19pZGVudGlmaWVyID0g
Q3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllcjo6U0hBXzIyNDsKICAgICBzdGF0aWMgUmVmPENyeXB0
b0FsZ29yaXRobT4gY3JlYXRlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2NyeXB0
by9hbGdvcml0aG1zL0NyeXB0b0FsZ29yaXRobVNIQTI1Ni5oIGIvU291cmNlL1dlYkNvcmUvY3J5
cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMjU2LmgKaW5kZXggY2UyNDA0Yzc0ZDU1
YzhmMjc0NDA1ZTU2ZjRkNThhN2ZmNjE2MTVmOS4uZjVhODU0M2M4MmM1NTQ4ZWU0MmIzYjkzMjcx
MWU2ODU1ZWY4ZjBmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRo
bXMvQ3J5cHRvQWxnb3JpdGhtU0hBMjU2LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2Fs
Z29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBMjU2LmgKQEAgLTMzLDcgKzMzLDcgQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjbGFzcyBDcnlwdG9BbGdvcml0aG1TSEEyNTYgZmluYWwgOiBwdWJs
aWMgQ3J5cHRvQWxnb3JpdGhtIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3RleHByIGNvbnN0
IGNoYXIqIHNfbmFtZSA9ICJTSEEtMjU2IjsKKyAgICBzdGF0aWMgY29uc3RleHByIEFTQ0lJTGl0
ZXJhbCBzX25hbWUgPSAiU0hBLTI1NiJfczsKICAgICBzdGF0aWMgY29uc3QgQ3J5cHRvQWxnb3Jp
dGhtSWRlbnRpZmllciBzX2lkZW50aWZpZXIgPSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpT
SEFfMjU2OwogICAgIHN0YXRpYyBSZWY8Q3J5cHRvQWxnb3JpdGhtPiBjcmVhdGUoKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGht
U0hBMzg0LmggYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0
aG1TSEEzODQuaAppbmRleCA2Y2M1NzQ5MTMyNmEwMDhlNDI2ZjI2OTIxMzg5YWQ2ZjRjNGJmODQ5
Li5lNWJmMjIzMmFjZjJkYTZhMTAwNmVhNTIwMTkzNDA4YjE4MDVmMmMzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEzODQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEEz
ODQuaApAQCAtMzMsNyArMzMsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENyeXB0
b0FsZ29yaXRobVNIQTM4NCBmaW5hbCA6IHB1YmxpYyBDcnlwdG9BbGdvcml0aG0gewogcHVibGlj
OgotICAgIHN0YXRpYyBjb25zdGV4cHIgY29uc3QgY2hhciogc19uYW1lID0gIlNIQS0zODQiOwor
ICAgIHN0YXRpYyBjb25zdGV4cHIgQVNDSUlMaXRlcmFsIHNfbmFtZSA9ICJTSEEtMzg0Il9zOwog
ICAgIHN0YXRpYyBjb25zdGV4cHIgQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBzX2lkZW50aWZp
ZXIgPSBDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyOjpTSEFfMzg0OwogICAgIHN0YXRpYyBSZWY8
Q3J5cHRvQWxnb3JpdGhtPiBjcmVhdGUoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
Y3J5cHRvL2FsZ29yaXRobXMvQ3J5cHRvQWxnb3JpdGhtU0hBNTEyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9jcnlwdG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEE1MTIuaAppbmRleCAwZDRhMGI5
NmI2NDJhNGNkZmE3YmY5OTBhOTdlZjczYjhiNzYxM2Y4Li4wNWY5OGZjNGE4NjY2ZGFmZGE2MDU5
YTE0ZmU1ZTE3MzdhNGE3NDJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8vYWxn
b3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEE1MTIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlw
dG8vYWxnb3JpdGhtcy9DcnlwdG9BbGdvcml0aG1TSEE1MTIuaApAQCAtMzMsNyArMzMsNyBAQCBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENyeXB0b0FsZ29yaXRobVNIQTUxMiBmaW5hbCA6
IHB1YmxpYyBDcnlwdG9BbGdvcml0aG0gewogcHVibGljOgotICAgIHN0YXRpYyBjb25zdGV4cHIg
Y29uc3QgY2hhciogc19uYW1lID0gIlNIQS01MTIiOworICAgIHN0YXRpYyBjb25zdGV4cHIgQVND
SUlMaXRlcmFsIHNfbmFtZSA9ICJTSEEtNTEyIl9zOwogICAgIHN0YXRpYyBjb25zdGV4cHIgQ3J5
cHRvQWxnb3JpdGhtSWRlbnRpZmllciBzX2lkZW50aWZpZXIgPSBDcnlwdG9BbGdvcml0aG1JZGVu
dGlmaWVyOjpTSEFfNTEyOwogICAgIHN0YXRpYyBSZWY8Q3J5cHRvQWxnb3JpdGhtPiBjcmVhdGUo
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5QUVT
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleUFFUy5jcHAKaW5kZXgg
NDJmZTNhNGJlNTIxODE5OTczNGRlZGQwM2FiN2M5NzFmMzAxMWFkNC4uYzc2Yzg2M2Q1YWZjNWE0
MTViMDY1NTg4NTBkMzA3NTIwYzBjNjdjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3J5
cHRvL2tleXMvQ3J5cHRvS2V5QUVTLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5
cy9DcnlwdG9LZXlBRVMuY3BwCkBAIC0xMDYsNyArMTA2LDcgQEAgUmVmUHRyPENyeXB0b0tleUFF
Uz4gQ3J5cHRvS2V5QUVTOjppbXBvcnRKd2soQ3J5cHRvQWxnb3JpdGhtSWRlbnRpZmllciBhbGdv
cml0aG0KIEpzb25XZWJLZXkgQ3J5cHRvS2V5QUVTOjpleHBvcnRKd2soKSBjb25zdAogewogICAg
IEpzb25XZWJLZXkgcmVzdWx0OwotICAgIHJlc3VsdC5rdHkgPSAib2N0IjsKKyAgICByZXN1bHQu
a3R5ID0gIm9jdCJfczsKICAgICByZXN1bHQuayA9IGJhc2U2NFVSTEVuY29kZVRvU3RyaW5nKG1f
a2V5KTsKICAgICByZXN1bHQua2V5X29wcyA9IHVzYWdlcygpOwogICAgIHJlc3VsdC5leHQgPSBl
eHRyYWN0YWJsZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5
cHRvS2V5RUMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5RUMuY3Bw
CmluZGV4IGQzNmQzNDBmNzBhOGY0YTE3ZmY1ZjYxOWNlYjFkOWQ4NDVjYTJhMzMuLmZjZTgyYmVl
OTFjYWI3NDI2MjA0MDBkY2E3NzMwNWMxN2Y2ODUyMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleUVDLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlw
dG8va2V5cy9DcnlwdG9LZXlFQy5jcHAKQEAgLTE0OCw3ICsxNDgsNyBAQCBFeGNlcHRpb25PcjxW
ZWN0b3I8dWludDhfdD4+IENyeXB0b0tleUVDOjpleHBvcnRSYXcoKSBjb25zdAogRXhjZXB0aW9u
T3I8SnNvbldlYktleT4gQ3J5cHRvS2V5RUM6OmV4cG9ydEp3aygpIGNvbnN0CiB7CiAgICAgSnNv
bldlYktleSByZXN1bHQ7Ci0gICAgcmVzdWx0Lmt0eSA9ICJFQyI7CisgICAgcmVzdWx0Lmt0eSA9
ICJFQyJfczsKICAgICBzd2l0Y2ggKG1fY3VydmUpIHsKICAgICBjYXNlIE5hbWVkQ3VydmU6OlAy
NTY6CiAgICAgICAgIHJlc3VsdC5jcnYgPSBQMjU2OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5SE1BQy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8v
a2V5cy9DcnlwdG9LZXlITUFDLmNwcAppbmRleCA0MzRmMjQwNDU1ZGM4Y2UzNDFlMDA1NDAzYmYw
NWNiOTAwMzdkMTQ5Li4yNTQzZWQ1NDY1N2U3YWUzZjJmNzk5NmM3ODQ0M2RmYjA5YTcyN2EwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlITUFDLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlITUFDLmNwcApAQCAtMTIx
LDcgKzEyMSw3IEBAIFJlZlB0cjxDcnlwdG9LZXlITUFDPiBDcnlwdG9LZXlITUFDOjppbXBvcnRK
d2soc2l6ZV90IGxlbmd0aEJpdHMsIENyeXB0b0FsZ29yaXRoCiBKc29uV2ViS2V5IENyeXB0b0tl
eUhNQUM6OmV4cG9ydEp3aygpIGNvbnN0CiB7CiAgICAgSnNvbldlYktleSByZXN1bHQ7Ci0gICAg
cmVzdWx0Lmt0eSA9ICJvY3QiOworICAgIHJlc3VsdC5rdHkgPSAib2N0Il9zOwogICAgIHJlc3Vs
dC5rID0gYmFzZTY0VVJMRW5jb2RlVG9TdHJpbmcobV9rZXkpOwogICAgIHJlc3VsdC5rZXlfb3Bz
ID0gdXNhZ2VzKCk7CiAgICAgcmVzdWx0LmV4dCA9IGV4dHJhY3RhYmxlKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9LZXlSU0EuY3BwIGIvU291cmNlL1dl
YkNvcmUvY3J5cHRvL2tleXMvQ3J5cHRvS2V5UlNBLmNwcAppbmRleCA2YmJmMTRmMjQ2MGIzZDFm
NTA0ODhhZjM5Mjk3MDlmNzQyMTZlZTI0Li4wNTgxZDY3MDcyY2I5MzY2ZDM3NzU0MjI2OGE0OGZm
ZGEwNjM5YTc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jcnlwdG8va2V5cy9DcnlwdG9L
ZXlSU0EuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2NyeXB0by9rZXlzL0NyeXB0b0tleVJTQS5j
cHAKQEAgLTEzMyw3ICsxMzMsNyBAQCBSZWZQdHI8Q3J5cHRvS2V5UlNBPiBDcnlwdG9LZXlSU0E6
OmltcG9ydEp3ayhDcnlwdG9BbGdvcml0aG1JZGVudGlmaWVyIGFsZ29yaXRobQogSnNvbldlYktl
eSBDcnlwdG9LZXlSU0E6OmV4cG9ydEp3aygpIGNvbnN0CiB7CiAgICAgSnNvbldlYktleSByZXN1
bHQ7Ci0gICAgcmVzdWx0Lmt0eSA9ICJSU0EiOworICAgIHJlc3VsdC5rdHkgPSAiUlNBIl9zOwog
ICAgIHJlc3VsdC5rZXlfb3BzID0gdXNhZ2VzKCk7CiAgICAgcmVzdWx0LmV4dCA9IGV4dHJhY3Rh
YmxlKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmlkVGVtcGxhdGVB
cmVhc1ZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmlkVGVtcGxhdGVBcmVhc1Zh
bHVlLmNwcAppbmRleCBlMGI3ODY1OWFkYmQwMTQ4MzllNTdjMDYyMWRjMTYxOWVmODEzMTA5Li5k
ZmQ3MjUxM2JjZGY1NDYxMDllNjkwMmI1YmU5Yjk3OTJlNmEyNzRhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvQ1NTR3JpZFRlbXBsYXRlQXJlYXNWYWx1ZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0dyaWRUZW1wbGF0ZUFyZWFzVmFsdWUuY3BwCkBAIC02Myw3ICs2Myw3
IEBAIHN0YXRpYyBTdHJpbmcgc3RyaW5nRm9yUG9zaXRpb24oY29uc3QgTmFtZWRHcmlkQXJlYU1h
cCYgZ3JpZEFyZWFNYXAsIHNpemVfdCByb3csCiAgICAgICAgICAgICByZXR1cm4gaXQua2V5Owog
ICAgIH0KIAotICAgIHJldHVybiAiLiI7CisgICAgcmV0dXJuICIuIl9zOwogfQogCiBTdHJpbmcg
Q1NTR3JpZFRlbXBsYXRlQXJlYXNWYWx1ZTo6Y3VzdG9tQ1NTVGV4dCgpIGNvbnN0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUuY3BwIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1ByaW1pdGl2ZVZhbHVlLmNwcAppbmRleCA3OWViMmE1NjIzNzA5NGM0ZDFi
ZDM2MWEwYTczY2M1NDk1NjQ4ZjdlLi42ZGM4MGJhMzAyZGFlYWM3MzViODcwZTdmODA3MGFkMTAz
NGI0NDA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUHJpbWl0aXZlVmFsdWUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQcmltaXRpdmVWYWx1ZS5jcHAKQEAgLTEy
NDMsNjQgKzEyNDMsNjQgQEAgTkVWRVJfSU5MSU5FIFN0cmluZyBDU1NQcmltaXRpdmVWYWx1ZTo6
Zm9ybWF0SW50ZWdlclZhbHVlKFN0cmluZ1ZpZXcgc3VmZml4KSBjb24KIFN0cmluZyBDU1NQcmlt
aXRpdmVWYWx1ZTo6dW5pdFR5cGVTdHJpbmcoQ1NTVW5pdFR5cGUgdW5pdFR5cGUpCiB7CiAgICAg
c3dpdGNoICh1bml0VHlwZSkgewotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfUEVSQ0VO
VEFHRTogcmV0dXJuICIlIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0VNUzogcmV0
dXJuICJlbSI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19FWFM6IHJldHVybiAiZXgi
OwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfUFg6IHJldHVybiAicHgiOwotICAgICAg
ICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfQ006IHJldHVybiAiY20iOwotICAgICAgICBjYXNlIENT
U1VuaXRUeXBlOjpDU1NfTU06IHJldHVybiAibW0iOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfSU46IHJldHVybiAiaW4iOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfUFQ6
IHJldHVybiAicHQiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfUEM6IHJldHVybiAi
cGMiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfREVHOiByZXR1cm4gImRlZyI7Ci0g
ICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19SQUQ6IHJldHVybiAicmFkIjsKLSAgICAgICAg
Y2FzZSBDU1NVbml0VHlwZTo6Q1NTX0dSQUQ6IHJldHVybiAiZ3JhZCI7Ci0gICAgICAgIGNhc2Ug
Q1NTVW5pdFR5cGU6OkNTU19NUzogcmV0dXJuICJtcyI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5
cGU6OkNTU19TOiByZXR1cm4gInMiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfSFo6
IHJldHVybiAiaHoiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfS0haOiByZXR1cm4g
ImtoeiI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WVzogcmV0dXJuICJ2dyI7Ci0g
ICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WSDogcmV0dXJuICJ2aCI7Ci0gICAgICAgIGNh
c2UgQ1NTVW5pdFR5cGU6OkNTU19WTUlOOiByZXR1cm4gInZtaW4iOwotICAgICAgICBjYXNlIENT
U1VuaXRUeXBlOjpDU1NfVk1BWDogcmV0dXJuICJ2bWF4IjsKLSAgICAgICAgY2FzZSBDU1NVbml0
VHlwZTo6Q1NTX1ZCOiByZXR1cm4gInZiIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NT
X1ZJOiByZXR1cm4gInZpIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWVzogcmV0
dXJuICJzdnciOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZIOiByZXR1cm4gInN2
aCI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVk1JTjogcmV0dXJuICJzdm1pbiI7
Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVk1BWDogcmV0dXJuICJzdm1heCI7Ci0g
ICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVkI6IHJldHVybiAic3ZiIjsKLSAgICAgICAg
Y2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWSTogcmV0dXJuICJzdmkiOwotICAgICAgICBjYXNlIENT
U1VuaXRUeXBlOjpDU1NfTFZXOiByZXR1cm4gImx2dyI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5
cGU6OkNTU19MVkg6IHJldHVybiAibHZoIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NT
X0xWTUlOOiByZXR1cm4gImx2bWluIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xW
TUFYOiByZXR1cm4gImx2bWF4IjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0xWQjog
cmV0dXJuICJsdmIiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZJOiByZXR1cm4g
Imx2aSI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVlc6IHJldHVybiAiZHZ3IjsK
LSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWSDogcmV0dXJuICJkdmgiOwotICAgICAg
ICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZNSU46IHJldHVybiAiZHZtaW4iOwotICAgICAgICBj
YXNlIENTU1VuaXRUeXBlOjpDU1NfRFZNQVg6IHJldHVybiAiZHZtYXgiOwotICAgICAgICBjYXNl
IENTU1VuaXRUeXBlOjpDU1NfRFZCOiByZXR1cm4gImR2YiI7Ci0gICAgICAgIGNhc2UgQ1NTVW5p
dFR5cGU6OkNTU19EVkk6IHJldHVybiAiZHZpIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6
Q1NTX0RQUFg6IHJldHVybiAiZHBweCI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19Y
OiByZXR1cm4gIngiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFBJOiByZXR1cm4g
ImRwaSI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EUENNOiByZXR1cm4gImRwY20i
OwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRlI6IHJldHVybiAiZnIiOwotICAgICAg
ICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfUTogcmV0dXJuICJxIjsKLSAgICAgICAgY2FzZSBDU1NV
bml0VHlwZTo6Q1NTX0xIUzogcmV0dXJuICJsaCI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6
OkNTU19STEhTOiByZXR1cm4gInJsaCI7Ci0gICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19U
VVJOOiByZXR1cm4gInR1cm4iOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfUkVNUzog
cmV0dXJuICJyZW0iOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfQ0hTOiByZXR1cm4g
ImNoIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0lDOiByZXR1cm4gImljIjsKLSAg
ICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0NRVzogcmV0dXJuICJjcXciOwotICAgICAgICBj
YXNlIENTU1VuaXRUeXBlOjpDU1NfQ1FIOiByZXR1cm4gImNxaCI7Ci0gICAgICAgIGNhc2UgQ1NT
VW5pdFR5cGU6OkNTU19DUUk6IHJldHVybiAiY3FpIjsKLSAgICAgICAgY2FzZSBDU1NVbml0VHlw
ZTo6Q1NTX0NRQjogcmV0dXJuICJjcWIiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1Nf
Q1FNQVg6IHJldHVybiAiY3FtYXgiOwotICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfQ1FN
SU46IHJldHVybiAiY3FtaW4iOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfUEVSQ0VO
VEFHRTogcmV0dXJuICIlIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRU1TOiBy
ZXR1cm4gImVtIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRVhTOiByZXR1cm4g
ImV4Il9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfUFg6IHJldHVybiAicHgiX3M7
CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19DTTogcmV0dXJuICJjbSJfczsKKyAgICAg
ICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX01NOiByZXR1cm4gIm1tIl9zOworICAgICAgICBjYXNl
IENTU1VuaXRUeXBlOjpDU1NfSU46IHJldHVybiAiaW4iX3M7CisgICAgICAgIGNhc2UgQ1NTVW5p
dFR5cGU6OkNTU19QVDogcmV0dXJuICJwdCJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6
Q1NTX1BDOiByZXR1cm4gInBjIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfREVH
OiByZXR1cm4gImRlZyJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1JBRDogcmV0
dXJuICJyYWQiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19HUkFEOiByZXR1cm4g
ImdyYWQiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19NUzogcmV0dXJuICJtcyJf
czsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1M6IHJldHVybiAicyJfczsKKyAgICAg
ICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0haOiByZXR1cm4gImh6Il9zOworICAgICAgICBjYXNl
IENTU1VuaXRUeXBlOjpDU1NfS0haOiByZXR1cm4gImtoeiJfczsKKyAgICAgICAgY2FzZSBDU1NV
bml0VHlwZTo6Q1NTX1ZXOiByZXR1cm4gInZ3Il9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBl
OjpDU1NfVkg6IHJldHVybiAidmgiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19W
TUlOOiByZXR1cm4gInZtaW4iX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WTUFY
OiByZXR1cm4gInZtYXgiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19WQjogcmV0
dXJuICJ2YiJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1ZJOiByZXR1cm4gInZp
Il9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZXOiByZXR1cm4gInN2dyJfczsK
KyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWSDogcmV0dXJuICJzdmgiX3M7CisgICAg
ICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19TVk1JTjogcmV0dXJuICJzdm1pbiJfczsKKyAgICAg
ICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1NWTUFYOiByZXR1cm4gInN2bWF4Il9zOworICAgICAg
ICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfU1ZCOiByZXR1cm4gInN2YiJfczsKKyAgICAgICAgY2Fz
ZSBDU1NVbml0VHlwZTo6Q1NTX1NWSTogcmV0dXJuICJzdmkiX3M7CisgICAgICAgIGNhc2UgQ1NT
VW5pdFR5cGU6OkNTU19MVlc6IHJldHVybiAibHZ3Il9zOworICAgICAgICBjYXNlIENTU1VuaXRU
eXBlOjpDU1NfTFZIOiByZXR1cm4gImx2aCJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6
Q1NTX0xWTUlOOiByZXR1cm4gImx2bWluIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpD
U1NfTFZNQVg6IHJldHVybiAibHZtYXgiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNT
U19MVkI6IHJldHVybiAibHZiIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTFZJ
OiByZXR1cm4gImx2aSJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWVzogcmV0
dXJuICJkdnciX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVkg6IHJldHVybiAi
ZHZoIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFZNSU46IHJldHVybiAiZHZt
aW4iX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVk1BWDogcmV0dXJuICJkdm1h
eCJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0RWQjogcmV0dXJuICJkdmIiX3M7
CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19EVkk6IHJldHVybiAiZHZpIl9zOworICAg
ICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfRFBQWDogcmV0dXJuICJkcHB4Il9zOworICAgICAg
ICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfWDogcmV0dXJuICJ4Il9zOworICAgICAgICBjYXNlIENT
U1VuaXRUeXBlOjpDU1NfRFBJOiByZXR1cm4gImRwaSJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0
VHlwZTo6Q1NTX0RQQ006IHJldHVybiAiZHBjbSJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlw
ZTo6Q1NTX0ZSOiByZXR1cm4gImZyIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1Nf
UTogcmV0dXJuICJxIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfTEhTOiByZXR1
cm4gImxoIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfUkxIUzogcmV0dXJuICJy
bGgiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19UVVJOOiByZXR1cm4gInR1cm4i
X3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19SRU1TOiByZXR1cm4gInJlbSJfczsK
KyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0NIUzogcmV0dXJuICJjaCJfczsKKyAgICAg
ICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0lDOiByZXR1cm4gImljIl9zOworICAgICAgICBjYXNl
IENTU1VuaXRUeXBlOjpDU1NfQ1FXOiByZXR1cm4gImNxdyJfczsKKyAgICAgICAgY2FzZSBDU1NV
bml0VHlwZTo6Q1NTX0NRSDogcmV0dXJuICJjcWgiX3M7CisgICAgICAgIGNhc2UgQ1NTVW5pdFR5
cGU6OkNTU19DUUk6IHJldHVybiAiY3FpIl9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpD
U1NfQ1FCOiByZXR1cm4gImNxYiJfczsKKyAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX0NR
TUFYOiByZXR1cm4gImNxbWF4Il9zOworICAgICAgICBjYXNlIENTU1VuaXRUeXBlOjpDU1NfQ1FN
SU46IHJldHVybiAiY3FtaW4iX3M7CiAKICAgICAgICAgY2FzZSBDU1NVbml0VHlwZTo6Q1NTX1VO
S05PV046CiAgICAgICAgIGNhc2UgQ1NTVW5pdFR5cGU6OkNTU19OVU1CRVI6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU3ViZ3JpZFZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NTdWJncmlkVmFsdWUuY3BwCmluZGV4IDRmOWQ0YTYwNDhjNjE0YzhkMGZhZjU0OGJm
Y2NiYWFlNDhhMGM4NjUuLjZhNzk4NTlkYTI3ZGFlYWFhYTdiY2Y1Zjk5MTJkM2U3N2M1YmQyYmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdWJncmlkVmFsdWUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NTdWJncmlkVmFsdWUuY3BwCkBAIC0zNiw3ICszNiw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIFN0cmluZyBDU1NTdWJncmlkVmFsdWU6OmN1c3RvbUNTU1Rl
eHQoKSBjb25zdAogewogICAgIGlmICghbGVuZ3RoKCkpCi0gICAgICAgIHJldHVybiAic3ViZ3Jp
ZCI7CisgICAgICAgIHJldHVybiAic3ViZ3JpZCJfczsKICAgICByZXR1cm4gInN1YmdyaWQgIiAr
IENTU1ZhbHVlTGlzdDo6Y3VzdG9tQ1NTVGV4dCgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvRE9NQ1NTUmVnaXN0ZXJDdXN0b21Qcm9wZXJ0eS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvRE9NQ1NTUmVnaXN0ZXJDdXN0b21Qcm9wZXJ0eS5jcHAKaW5kZXggYzJjODI1MGFi
MjJkODNlZGQ4MjIwMDEwYjgyZjYyNTFkZTdiODlmNy4uOTJhMmNiYzQwZmQzMTYxZTBmOWZjNzVi
MTg4YTJkOThkM2U3MTkyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0RPTUNTU1Jl
Z2lzdGVyQ3VzdG9tUHJvcGVydHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9ET01DU1NS
ZWdpc3RlckN1c3RvbVByb3BlcnR5LmNwcApAQCAtNDQsNyArNDQsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiBFeGNlcHRpb25Pcjx2b2lkPiBET01DU1NSZWdpc3RlckN1c3RvbVByb3BlcnR5Ojpy
ZWdpc3RlclByb3BlcnR5KERvY3VtZW50JiBkb2N1bWVudCwgY29uc3QgRE9NQ1NTQ3VzdG9tUHJv
cGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yKQogewogICAgIGlmICghaXNDdXN0b21Qcm9wZXJ0
eU5hbWUoZGVzY3JpcHRvci5uYW1lKSkKLSAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFN5bnRh
eEVycm9yLCAiVGhlIG5hbWUgb2YgdGhpcyBwcm9wZXJ0eSBpcyBub3QgYSBjdXN0b20gcHJvcGVy
dHkgbmFtZS4iIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBTeW50YXhFcnJvciwgIlRo
ZSBuYW1lIG9mIHRoaXMgcHJvcGVydHkgaXMgbm90IGEgY3VzdG9tIHByb3BlcnR5IG5hbWUuIl9z
IH07CiAKICAgICBSZWZQdHI8Q1NTQ3VzdG9tUHJvcGVydHlWYWx1ZT4gaW5pdGlhbFZhbHVlOwog
ICAgIGlmICghZGVzY3JpcHRvci5pbml0aWFsVmFsdWUuaXNFbXB0eSgpKSB7CkBAIC01OSw3ICs1
OSw3IEBAIEV4Y2VwdGlvbk9yPHZvaWQ+IERPTUNTU1JlZ2lzdGVyQ3VzdG9tUHJvcGVydHk6OnJl
Z2lzdGVyUHJvcGVydHkoRG9jdW1lbnQmIGRvY3VtCiAgICAgICAgIENTU1Byb3BlcnR5UGFyc2Vy
Ojpjb2xsZWN0UGFyc2VkQ3VzdG9tUHJvcGVydHlWYWx1ZURlcGVuZGVuY2llcyhkZXNjcmlwdG9y
LnN5bnRheCwgZmFsc2UsIGRlcGVuZGVuY2llcywgdG9rZW5pemVyLnRva2VuUmFuZ2UoKSwgc3Ry
aWN0Q1NTUGFyc2VyQ29udGV4dCgpKTsKIAogICAgICAgICBpZiAoIWRlcGVuZGVuY2llcy5pc0Vt
cHR5KCkpCi0gICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgU3ludGF4RXJyb3IsICJUaGUg
Z2l2ZW4gaW5pdGlhbCB2YWx1ZSBtdXN0IGJlIGNvbXB1dGF0aW9uYWxseSBpbmRlcGVuZGVudC4i
IH07CisgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgU3ludGF4RXJyb3IsICJUaGUgZ2l2
ZW4gaW5pdGlhbCB2YWx1ZSBtdXN0IGJlIGNvbXB1dGF0aW9uYWxseSBpbmRlcGVuZGVudC4iX3Mg
fTsKIAogCiAgICAgICAgIFN0eWxlOjpNYXRjaFJlc3VsdCBtYXRjaFJlc3VsdDsKQEAgLTcwLDE4
ICs3MCwxOCBAQCBFeGNlcHRpb25Pcjx2b2lkPiBET01DU1NSZWdpc3RlckN1c3RvbVByb3BlcnR5
OjpyZWdpc3RlclByb3BlcnR5KERvY3VtZW50JiBkb2N1bQogICAgICAgICBpbml0aWFsVmFsdWUg
PSBDU1NQcm9wZXJ0eVBhcnNlcjo6cGFyc2VUeXBlZEN1c3RvbVByb3BlcnR5VmFsdWUoZGVzY3Jp
cHRvci5uYW1lLCBkZXNjcmlwdG9yLnN5bnRheCwgdG9rZW5pemVyLnRva2VuUmFuZ2UoKSwgZHVt
bXlCdWlsZGVyLnN0YXRlKCksIHN0cmljdENTU1BhcnNlckNvbnRleHQoKSk7CiAKICAgICAgICAg
aWYgKCFpbml0aWFsVmFsdWUgfHwgIWluaXRpYWxWYWx1ZS0+aXNSZXNvbHZlZCgpKQotICAgICAg
ICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFN5bnRheEVycm9yLCAiVGhlIGdpdmVuIGluaXRpYWwg
dmFsdWUgZG9lcyBub3QgcGFyc2UgZm9yIHRoZSBnaXZlbiBzeW50YXguIiB9OworICAgICAgICAg
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFN5bnRheEVycm9yLCAiVGhlIGdpdmVuIGluaXRpYWwgdmFs
dWUgZG9lcyBub3QgcGFyc2UgZm9yIHRoZSBnaXZlbiBzeW50YXguIl9zIH07CiAKICAgICAgICAg
aW5pdGlhbFZhbHVlLT5jb2xsZWN0RGlyZWN0Q29tcHV0YXRpb25hbERlcGVuZGVuY2llcyhkZXBl
bmRlbmNpZXMpOwogICAgICAgICBpbml0aWFsVmFsdWUtPmNvbGxlY3REaXJlY3RSb290Q29tcHV0
YXRpb25hbERlcGVuZGVuY2llcyhkZXBlbmRlbmNpZXMpOwogCiAgICAgICAgIGlmICghZGVwZW5k
ZW5jaWVzLmlzRW1wdHkoKSkKLSAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBTeW50YXhF
cnJvciwgIlRoZSBnaXZlbiBpbml0aWFsIHZhbHVlIG11c3QgYmUgY29tcHV0YXRpb25hbGx5IGlu
ZGVwZW5kZW50LiIgfTsKKyAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBTeW50YXhFcnJv
ciwgIlRoZSBnaXZlbiBpbml0aWFsIHZhbHVlIG11c3QgYmUgY29tcHV0YXRpb25hbGx5IGluZGVw
ZW5kZW50LiJfcyB9OwogICAgIH0KIAogICAgIENTU1JlZ2lzdGVyZWRDdXN0b21Qcm9wZXJ0eSBw
cm9wZXJ0eSB7IGRlc2NyaXB0b3IubmFtZSwgZGVzY3JpcHRvci5zeW50YXgsIGRlc2NyaXB0b3Iu
aW5oZXJpdHMsIFdURk1vdmUoaW5pdGlhbFZhbHVlKSB9OwogICAgIGlmICghZG9jdW1lbnQucmVn
aXN0ZXJDU1NQcm9wZXJ0eShXVEZNb3ZlKHByb3BlcnR5KSkpCi0gICAgICAgIHJldHVybiBFeGNl
cHRpb24geyBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3IsICJUaGlzIHByb3BlcnR5IGhhcyBhbHJl
YWR5IGJlZW4gcmVnaXN0ZXJlZC4iIH07CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZh
bGlkTW9kaWZpY2F0aW9uRXJyb3IsICJUaGlzIHByb3BlcnR5IGhhcyBhbHJlYWR5IGJlZW4gcmVn
aXN0ZXJlZC4iX3MgfTsKIAogICAgIGRvY3VtZW50LnN0eWxlU2NvcGUoKS5kaWRDaGFuZ2VTdHls
ZVNoZWV0RW52aXJvbm1lbnQoKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0Rl
cHJlY2F0ZWRDU1NPTVZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9EZXByZWNhdGVkQ1NT
T01WYWx1ZS5jcHAKaW5kZXggMjMyNTA4NDVhYmE2YmM1MzIyYjNiMzc2OWZiOTNjMGU2NDBjN2Q4
Mi4uNTA2N2QwZTZjNjAxYmUyYTEzMTNmMDg5YTY0MGFjMWE2MjZiOWIzNSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL0RlcHJlY2F0ZWRDU1NPTVZhbHVlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvRGVwcmVjYXRlZENTU09NVmFsdWUuY3BwCkBAIC03Niw3ICs3Niw3IEBAIFN0
cmluZyBEZXByZWNhdGVkQ1NTT01WYWx1ZTo6Y3NzVGV4dCgpIGNvbnN0CiAgICAgICAgIHJldHVy
biBkb3duY2FzdDxEZXByZWNhdGVkQ1NTT01WYWx1ZUxpc3Q+KCp0aGlzKS5jc3NUZXh0KCk7CiAg
ICAgfQogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIHJldHVybiAiIjsKKyAgICByZXR1
cm4gZW1wdHlTdHJpbmcoKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L0ZvbnRGYWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9Gb250RmFjZS5jcHAKaW5kZXggZWZm
ZDYwN2MzNDZmOWJjZmJjOWMyODg5YmY4MzE2OTRkYTM0MDMwNS4uNGQ1MTFiNWU2ODU0MTMwNWQ0
MGMxYzMzYjc5MDlhNjUwNjU1NmY2MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0Zv
bnRGYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvRm9udEZhY2UuY3BwCkBAIC0zNzUs
NyArMzc1LDcgQEAgU3RyaW5nIEZvbnRGYWNlOjp1bmljb2RlUmFuZ2UoKSBjb25zdAogICAgIG1f
YmFja2luZy0+dXBkYXRlU3R5bGVJZk5lZWRlZCgpOwogICAgIGNvbnN0IGF1dG8mIHJhbmdlc1dy
YXBwZWQgPSBtX2JhY2tpbmctPnJhbmdlcygpOwogICAgIGlmICghcmFuZ2VzV3JhcHBlZCkKLSAg
ICAgICAgcmV0dXJuICJVKzAtMTBGRkZGIjsKKyAgICAgICAgcmV0dXJuICJVKzAtMTBGRkZGIl9z
OwogICAgIGF1dG8gcmFuZ2VzID0gcmFuZ2VzV3JhcHBlZC52YWx1ZSgpOwogICAgIGlmICghcmFu
Z2VzLnNpemUoKSkKICAgICAgICAgcmV0dXJuICJVKzAtMTBGRkZGIl9zOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFeHByZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9NZWRpYVF1ZXJ5RXhwcmVzc2lvbi5jcHAKaW5kZXggMDhiNzA3MDY2YmE2ZGZiMjEy
N2ZjZGE5MDg4OTM3OTM1MTA4MTRlOC4uMWJkZGI1NTNlOGZiYTJjMjI1M2U0ZDE0NTZmNzg2OTNm
MzY2OTMyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL01lZGlhUXVlcnlFeHByZXNz
aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvTWVkaWFRdWVyeUV4cHJlc3Npb24uY3Bw
CkBAIC0yNzQsNyArMjc0LDcgQEAgTWVkaWFRdWVyeUV4cHJlc3Npb246Ok1lZGlhUXVlcnlFeHBy
ZXNzaW9uKGNvbnN0IFN0cmluZyYgZmVhdHVyZSwgQ1NTUGFyc2VyVG9rZW4KIFN0cmluZyBNZWRp
YVF1ZXJ5RXhwcmVzc2lvbjo6c2VyaWFsaXplKCkgY29uc3QKIHsKICAgICBpZiAobV9zZXJpYWxp
emF0aW9uQ2FjaGUuaXNOdWxsKCkpCi0gICAgICAgIG1fc2VyaWFsaXphdGlvbkNhY2hlID0gbWFr
ZVN0cmluZygnKCcsIG1fbWVkaWFGZWF0dXJlLmNvbnZlcnRUb0FTQ0lJTG93ZXJjYXNlKCksIG1f
dmFsdWUgPyAiOiAiIDogIiIsIG1fdmFsdWUgPyBtX3ZhbHVlLT5jc3NUZXh0KCkgOiAiIiwgJykn
KTsKKyAgICAgICAgbV9zZXJpYWxpemF0aW9uQ2FjaGUgPSBtYWtlU3RyaW5nKCcoJywgbV9tZWRp
YUZlYXR1cmUuY29udmVydFRvQVNDSUlMb3dlcmNhc2UoKSwgbV92YWx1ZSA/ICI6ICIgOiAiIiwg
bV92YWx1ZSA/IG1fdmFsdWUtPmNzc1RleHQoKSA6IGVtcHR5U3RyaW5nKCksICcpJyk7CiAgICAg
cmV0dXJuIG1fc2VyaWFsaXphdGlvbkNhY2hlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvU3R5bGVQcm9wZXJ0aWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVBy
b3BlcnRpZXMuY3BwCmluZGV4IGYwNDEzYzE3ZmZmYTI4MzgxMWZlMjUxN2ZkZmQ2MWJjZGNmOGIy
NTkuLmE5MjNjN2E0Zjk0ZmNmMzJiMDdmODExM2EyY2JlYTI0YjlkZjg5MDQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVByb3BlcnRpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9TdHlsZVByb3BlcnRpZXMuY3BwCkBAIC03NjgsNyArNzY4LDcgQEAgU3RyaW5nIFN0
eWxlUHJvcGVydGllczo6Z2V0TGF5ZXJlZFNob3J0aGFuZFZhbHVlKGNvbnN0IFN0eWxlUHJvcGVy
dHlTaG9ydGhhbmQmIHMKIAogICAgICAgICAgICAgICAgICAgICAgICAgYXV0byBtYXNrSWQgPSBk
b3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4oKnZhbHVlKS52YWx1ZUlEKCk7CiAgICAgICAgICAg
ICAgICAgICAgICAgICBhdXRvIG9yaWdpbklkID0gZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+
KCpvcmlnaW5WYWx1ZSkudmFsdWVJRCgpOwotICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJu
IG1hc2tJZCA9PSBvcmlnaW5JZCAmJiAoIWlzQ1NTV2lkZVZhbHVlS2V5d29yZChnZXRWYWx1ZU5h
bWUobWFza0lkKSkgfHwgdmFsdWUtPmlzSW1wbGljaXRJbml0aWFsVmFsdWUoKSk7CisgICAgICAg
ICAgICAgICAgICAgICAgICByZXR1cm4gbWFza0lkID09IG9yaWdpbklkICYmICghaXNDU1NXaWRl
VmFsdWVLZXl3b3JkKFN0cmluZ1ZpZXcgeyBnZXRWYWx1ZU5hbWUobWFza0lkKSB9KSB8fCB2YWx1
ZS0+aXNJbXBsaWNpdEluaXRpYWxWYWx1ZSgpKTsKICAgICAgICAgICAgICAgICAgICAgfQogICAg
ICAgICAgICAgICAgICAgICBpZiAocHJvcGVydHkgPT0gQ1NTUHJvcGVydHlNYXNrT3JpZ2luKSB7
CiAgICAgICAgICAgICAgICAgICAgICAgICAvLyBXZSBjYW4gc2tpcCBzZXJpYWxpemluZyBtYXNr
LW9yaWdpbiBpZiBpdCdzIHRoZSBpbml0aWFsIHZhbHVlLCBidXQgb25seSBpZiB3ZSdyZSBhbHNv
IGdvaW5nIHRvIHNraXAgc2VyaWFsaXppbmcKQEAgLTExNTQsNyArMTE1NCw3IEBAIGJvb2wgTXV0
YWJsZVN0eWxlUHJvcGVydGllczo6c2V0Q3VzdG9tUHJvcGVydHkoY29uc3QgRG9jdW1lbnQqIGRv
Y3VtZW50LCBjb25zdCBTCiAKICAgICBwYXJzZXJDb250ZXh0Lm1vZGUgPSBjc3NQYXJzZXJNb2Rl
KCk7CiAKLSAgICBTdHJpbmcgc3ludGF4ID0gIioiOworICAgIFN0cmluZyBzeW50YXggPSAiKiJf
czsKICAgICBhdXRvKiByZWdpc3RlcmVkID0gZG9jdW1lbnQgPyBkb2N1bWVudC0+Z2V0Q1NTUmVn
aXN0ZXJlZEN1c3RvbVByb3BlcnR5U2V0KCkuZ2V0KHByb3BlcnR5TmFtZSkgOiBudWxscHRyOwog
CiAgICAgaWYgKHJlZ2lzdGVyZWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvbWFr
ZXZhbHVlcy5wbCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9tYWtldmFsdWVzLnBsCmluZGV4IDBmODIx
OWQ0Y2NiNTFlY2E1MjVkODI5YTc2MDZiMjdiMGZhMjczMDMuLmFlOWIzMjc4MzI3MjczNzNjNGNl
N2YwMjMzMDUyMTM2YjJkOTgzZDUgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9tYWtl
dmFsdWVzLnBsCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9tYWtldmFsdWVzLnBsCkBAIC0xMTEs
MTYgKzExMSwxNiBAQCBmb3IgbXkgJGkgKDAgLi4gJCNuYW1lcykgewogCiBwcmludCBHUEVSRiA8
PCAiRU9GIjsKICUlCi1zdGF0aWMgY29uc3QgY2hhciogY29uc3QgdmFsdWVMaXN0W10gPSB7Ci0g
ICAgIiIsCitzdGF0aWMgY29uc3RleHByIEFTQ0lJTGl0ZXJhbCB2YWx1ZUxpc3RbXSA9IHsKKyAg
ICAiIl9zLAogRU9GCiAKIGZvcmVhY2ggbXkgJG5hbWUgKEBuYW1lcykgewotICBwcmludCBHUEVS
RiAiICAgIFwiIiAuICRuYW1lIC4gIlwiLFxuIjsKKyAgcHJpbnQgR1BFUkYgIiAgICBcIiIgLiAk
bmFtZSAuICJcIl9zLFxuIjsKIH0KIAogcHJpbnQgR1BFUkYgPDwgIkVPRiI7Ci0gICAgMAorICAg
IEFTQ0lJTGl0ZXJhbDo6bnVsbCgpCiB9OwogCiBjb25zdCBWYWx1ZSogZmluZFZhbHVlKGNvbnN0
IGNoYXIqIHN0ciwgdW5zaWduZWQgaW50IGxlbikKQEAgLTEyOCwxMCArMTI4LDEwIEBAIGNvbnN0
IFZhbHVlKiBmaW5kVmFsdWUoY29uc3QgY2hhciogc3RyLCB1bnNpZ25lZCBpbnQgbGVuKQogICAg
IHJldHVybiBDU1NWYWx1ZUtleXdvcmRzSGFzaDo6ZmluZFZhbHVlSW1wbChzdHIsIGxlbik7CiB9
CiAKLWNvbnN0IGNoYXIqIGdldFZhbHVlTmFtZSh1bnNpZ25lZCBzaG9ydCBpZCkKK0FTQ0lJTGl0
ZXJhbCBnZXRWYWx1ZU5hbWUodW5zaWduZWQgc2hvcnQgaWQpCiB7CiAgICAgaWYgKGlkID4gbGFz
dENTU1ZhbHVlS2V5d29yZCkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBBU0NJ
SUxpdGVyYWw6Om51bGwoKTsKICAgICByZXR1cm4gdmFsdWVMaXN0W2lkXTsKIH0KIApAQCAtMjAz
LDcgKzIwMyw3IEBAIHByaW50IEhFQURFUiAiY29uc3QgaW50IGxhc3RDU1NWYWx1ZUtleXdvcmQg
PSAkbGFzdDtcbiI7CiBwcmludCBIRUFERVIgImNvbnN0IHNpemVfdCBtYXhDU1NWYWx1ZUtleXdv
cmRMZW5ndGggPSAiIC4gJG1heExlbiAuICI7XG4iOwogcHJpbnQgSEVBREVSIDw8ICJFT0YiOwog
Ci1jb25zdCBjaGFyKiBnZXRWYWx1ZU5hbWUodW5zaWduZWQgc2hvcnQgaWQpOworQVNDSUlMaXRl
cmFsIGdldFZhbHVlTmFtZSh1bnNpZ25lZCBzaG9ydCBpZCk7CiBjb25zdCBBdG9tU3RyaW5nJiBn
ZXRWYWx1ZU5hbWVBdG9tU3RyaW5nKENTU1ZhbHVlSUQgaWQpOwogU3RyaW5nIGdldFZhbHVlTmFt
ZVN0cmluZyhDU1NWYWx1ZUlEIGlkKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3Nz
L3BhcnNlci9NZWRpYVF1ZXJ5UGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIv
TWVkaWFRdWVyeVBhcnNlci5jcHAKaW5kZXggY2I1YTA4YWEzZWI3ZDZiOGM4MjU3ZGM4NDhkY2Vj
MTEzNDE5YzljZC4uNjJjMDFlNWEzMjc3NDIyNDM2NjJmZWJjMjFlZGUwODBkOTIzNjU5ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3BhcnNlci9NZWRpYVF1ZXJ5UGFyc2VyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvcGFyc2VyL01lZGlhUXVlcnlQYXJzZXIuY3BwCkBAIC0y
NDcsNyArMjQ3LDcgQEAgdm9pZCBNZWRpYVF1ZXJ5UGFyc2VyOjpza2lwVW50aWxDb21tYShDU1NQ
YXJzZXJUb2tlblR5cGUgdHlwZSwgY29uc3QgQ1NTUGFyc2VyVG8KICAgICBpZiAoKHR5cGUgPT0g
Q29tbWFUb2tlbiAmJiAhbV9ibG9ja1dhdGNoZXIuYmxvY2tMZXZlbCgpKSB8fCB0eXBlID09IEVP
RlRva2VuKSB7CiAgICAgICAgIG1fc3RhdGUgPSBSZWFkUmVzdHJpY3RvcjsKICAgICAgICAgbV9t
ZWRpYVF1ZXJ5RGF0YS5jbGVhcigpOwotICAgICAgICBNZWRpYVF1ZXJ5IHF1ZXJ5ID0gTWVkaWFR
dWVyeShNZWRpYVF1ZXJ5OjpOb3QsICJhbGwiLCBWZWN0b3I8TWVkaWFRdWVyeUV4cHJlc3Npb24+
KCkpOworICAgICAgICBNZWRpYVF1ZXJ5IHF1ZXJ5ID0gTWVkaWFRdWVyeShNZWRpYVF1ZXJ5OjpO
b3QsICJhbGwiX3MsIFZlY3RvcjxNZWRpYVF1ZXJ5RXhwcmVzc2lvbj4oKSk7CiAgICAgICAgIG1f
cXVlcnlTZXQtPmFkZE1lZGlhUXVlcnkoV1RGTW92ZShxdWVyeSkpOwogICAgIH0KIH0KQEAgLTMw
OSw3ICszMDksNyBAQCBSZWZQdHI8TWVkaWFRdWVyeVNldD4gTWVkaWFRdWVyeVBhcnNlcjo6cGFy
c2VJbnRlcm5hbChDU1NQYXJzZXJUb2tlblJhbmdlJiByYW5nZQogICAgICAgICBwcm9jZXNzVG9r
ZW4oQ1NTUGFyc2VyVG9rZW4oRU9GVG9rZW4pLCByYW5nZSk7CiAKICAgICBpZiAobV9zdGF0ZSAh
PSBSZWFkQW5kICYmIG1fc3RhdGUgIT0gUmVhZFJlc3RyaWN0b3IgJiYgbV9zdGF0ZSAhPSBEb25l
ICYmIG1fc3RhdGUgIT0gUmVhZE1lZGlhTm90KSB7Ci0gICAgICAgIE1lZGlhUXVlcnkgcXVlcnkg
PSBNZWRpYVF1ZXJ5KE1lZGlhUXVlcnk6Ok5vdCwgImFsbCIsIFZlY3RvcjxNZWRpYVF1ZXJ5RXhw
cmVzc2lvbj4oKSk7CisgICAgICAgIE1lZGlhUXVlcnkgcXVlcnkgPSBNZWRpYVF1ZXJ5KE1lZGlh
UXVlcnk6Ok5vdCwgImFsbCJfcywgVmVjdG9yPE1lZGlhUXVlcnlFeHByZXNzaW9uPigpKTsKICAg
ICAgICAgbV9xdWVyeVNldC0+YWRkTWVkaWFRdWVyeShXVEZNb3ZlKHF1ZXJ5KSk7CiAgICAgfSBl
bHNlIGlmIChtX21lZGlhUXVlcnlEYXRhLmN1cnJlbnRNZWRpYVF1ZXJ5Q2hhbmdlZCgpKQogICAg
ICAgICBjb21taXRNZWRpYVF1ZXJ5KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
cGFyc2VyL1NpemVzQXR0cmlidXRlUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJz
ZXIvU2l6ZXNBdHRyaWJ1dGVQYXJzZXIuY3BwCmluZGV4IGQ2ZTQ4YTIzZmY5N2UwYThiNzM2ZDgw
Mzc5NzQyNDc1MDVjMzdmZjguLjRkYTQwMTZlNjA2NTdmYjM3NDUyZWUxYjkxYTYxZDU2ZTA4ODQ4
ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvU2l6ZXNBdHRyaWJ1dGVQ
YXJzZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9wYXJzZXIvU2l6ZXNBdHRyaWJ1dGVQ
YXJzZXIuY3BwCkBAIC0xMTIsNyArMTEyLDcgQEAgYm9vbCBTaXplc0F0dHJpYnV0ZVBhcnNlcjo6
bWVkaWFDb25kaXRpb25NYXRjaGVzKGNvbnN0IE1lZGlhUXVlcnlTZXQmIG1lZGlhQ29uZGkKICAg
ICBpZiAoIXJlbmRlcmVyKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgYXV0byYgc3R5bGUg
PSByZW5kZXJlci0+c3R5bGUoKTsKLSAgICByZXR1cm4gTWVkaWFRdWVyeUV2YWx1YXRvciB7ICJz
Y3JlZW4iLCBtX2RvY3VtZW50LCAmc3R5bGUgfS5ldmFsdWF0ZShtZWRpYUNvbmRpdGlvbiwgbV9t
ZWRpYVF1ZXJ5RHluYW1pY1Jlc3VsdHMpOworICAgIHJldHVybiBNZWRpYVF1ZXJ5RXZhbHVhdG9y
IHsgInNjcmVlbiJfcywgbV9kb2N1bWVudCwgJnN0eWxlIH0uZXZhbHVhdGUobWVkaWFDb25kaXRp
b24sIG1fbWVkaWFRdWVyeUR5bmFtaWNSZXN1bHRzKTsKIH0KIAogYm9vbCBTaXplc0F0dHJpYnV0
ZVBhcnNlcjo6cGFyc2UoQ1NTUGFyc2VyVG9rZW5SYW5nZSByYW5nZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU051bWVyaWNGYWN0b3J5LmggYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvdHlwZWRvbS9DU1NOdW1lcmljRmFjdG9yeS5oCmluZGV4IDgyMzUwYjk5ZDg3NGIw
ZmE5MDY1ZjY0ZGRkNTk5M2RkNmQ4MzBiMzkuLjM1MzYyYjIxNmQwMmJiNzIzYjc4NmEyYzcyMTMz
ZDE1NjNiYjIwZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU051
bWVyaWNGYWN0b3J5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTTnVtZXJp
Y0ZhY3RvcnkuaApAQCAtNDMsNjQgKzQzLDY0IEBAIGNsYXNzIENTU051bWVyaWNGYWN0b3J5IGZp
bmFsIDogcHVibGljIFN1cHBsZW1lbnQ8RE9NQ1NTTmFtZXNwYWNlPiB7CiBwdWJsaWM6CiAgICAg
ZXhwbGljaXQgQ1NTTnVtZXJpY0ZhY3RvcnkoRE9NQ1NTTmFtZXNwYWNlJikgeyB9CiAKLSAgICBz
dGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gbnVtYmVyKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NT
VW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJudW1iZXIiKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NT
VW5pdFZhbHVlPiBwZXJjZW50KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpj
cmVhdGUodmFsdWUsICJwZXJjZW50Iik7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4g
bnVtYmVyKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUs
ICJudW1iZXIiX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHBlcmNlbnQoZG91
YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInBlcmNlbnQi
X3MpOyB9CiAKIAogICAgIC8vIDxsZW5ndGg+Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+
IGVtKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJl
bSIpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGV4KGRvdWJsZSB2YWx1ZSkgeyBy
ZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJleCIpOyB9Ci0gICAgc3RhdGljIFJl
ZjxDU1NVbml0VmFsdWU+IGNoKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpj
cmVhdGUodmFsdWUsICJjaCIpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGljKGRv
dWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJpYyIpOyB9
Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHJlbShkb3VibGUgdmFsdWUpIHsgcmV0dXJu
IENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAicmVtIik7IH0KLSAgICBzdGF0aWMgUmVmPENT
U1VuaXRWYWx1ZT4gbGgoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0
ZSh2YWx1ZSwgImxoIik7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gcmxoKGRvdWJs
ZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJybGgiKTsgfQot
ICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiB2dyhkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENT
U1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAidnciKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5p
dFZhbHVlPiB2aChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZh
bHVlLCAidmgiKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiB2aShkb3VibGUgdmFs
dWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAidmkiKTsgfQotICAgIHN0
YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiB2Yihkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRW
YWx1ZTo6Y3JlYXRlKHZhbHVlLCAidmIiKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVl
PiB2bWluKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUs
ICJ2bWluIik7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gdm1heChkb3VibGUgdmFs
dWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAidm1heCIpOyB9Ci0gICAg
c3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGNtKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5p
dFZhbHVlOjpjcmVhdGUodmFsdWUsICJjbSIpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFs
dWU+IG1tKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUs
ICJtbSIpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHEoZG91YmxlIHZhbHVlKSB7
IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInEiKTsgfQotICAgIHN0YXRpYyBS
ZWY8Q1NTVW5pdFZhbHVlPiBpbihkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6
Y3JlYXRlKHZhbHVlLCAiaW4iKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBwdChk
b3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAicHQiKTsg
fQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBwYyhkb3VibGUgdmFsdWUpIHsgcmV0dXJu
IENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAicGMiKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NT
VW5pdFZhbHVlPiBweChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRl
KHZhbHVlLCAicHgiKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBjcXcoZG91Ymxl
IHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImNxdyIpOyB9Ci0g
ICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGNxaChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENT
U1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiY3FoIik7IH0KLSAgICBzdGF0aWMgUmVmPENTU1Vu
aXRWYWx1ZT4gY3FpKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUo
dmFsdWUsICJjcWkiKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBjcWIoZG91Ymxl
IHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImNxYiIpOyB9Ci0g
ICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGNxbWluKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4g
Q1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJjcW1pbiIpOyB9Ci0gICAgc3RhdGljIFJlZjxD
U1NVbml0VmFsdWU+IGNxbWF4KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpj
cmVhdGUodmFsdWUsICJjcW1heCIpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGVt
KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJlbSJf
cyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gZXgoZG91YmxlIHZhbHVlKSB7IHJl
dHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImV4Il9zKTsgfQorICAgIHN0YXRpYyBS
ZWY8Q1NTVW5pdFZhbHVlPiBjaChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6
Y3JlYXRlKHZhbHVlLCAiY2giX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGlj
KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJpYyJf
cyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gcmVtKGRvdWJsZSB2YWx1ZSkgeyBy
ZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJyZW0iX3MpOyB9CisgICAgc3RhdGlj
IFJlZjxDU1NVbml0VmFsdWU+IGxoKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVl
OjpjcmVhdGUodmFsdWUsICJsaCJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4g
cmxoKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJy
bGgiX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHZ3KGRvdWJsZSB2YWx1ZSkg
eyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJ2dyJfcyk7IH0KKyAgICBzdGF0
aWMgUmVmPENTU1VuaXRWYWx1ZT4gdmgoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFs
dWU6OmNyZWF0ZSh2YWx1ZSwgInZoIl9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVl
PiB2aShkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAi
dmkiX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHZiKGRvdWJsZSB2YWx1ZSkg
eyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJ2YiJfcyk7IH0KKyAgICBzdGF0
aWMgUmVmPENTU1VuaXRWYWx1ZT4gdm1pbihkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRW
YWx1ZTo6Y3JlYXRlKHZhbHVlLCAidm1pbiJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRW
YWx1ZT4gdm1heChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZh
bHVlLCAidm1heCJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gY20oZG91Ymxl
IHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImNtIl9zKTsgfQor
ICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBtbShkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENT
U1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAibW0iX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NV
bml0VmFsdWU+IHEoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2
YWx1ZSwgInEiX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGluKGRvdWJsZSB2
YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJpbiJfcyk7IH0KKyAg
ICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gcHQoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NV
bml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgInB0Il9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5p
dFZhbHVlPiBwYyhkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZh
bHVlLCAicGMiX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHB4KGRvdWJsZSB2
YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJweCJfcyk7IH0KKyAg
ICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gY3F3KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NT
VW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJjcXciX3MpOyB9CisgICAgc3RhdGljIFJlZjxDU1NV
bml0VmFsdWU+IGNxaChkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRl
KHZhbHVlLCAiY3FoIl9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBjcWkoZG91
YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImNxaSJfcyk7
IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gY3FiKGRvdWJsZSB2YWx1ZSkgeyByZXR1
cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJjcWIiX3MpOyB9CisgICAgc3RhdGljIFJl
ZjxDU1NVbml0VmFsdWU+IGNxbWluKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVl
OjpjcmVhdGUodmFsdWUsICJjcW1pbiJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1
ZT4gY3FtYXgoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1
ZSwgImNxbWF4Il9zKTsgfQogCiAKICAgICAvLyA8YW5nbGU+Ci0gICAgc3RhdGljIFJlZjxDU1NV
bml0VmFsdWU+IGRlZyhkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRl
KHZhbHVlLCAiZGVnIik7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gZ3JhZChkb3Vi
bGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiZ3JhZCIpOyB9
Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IHJhZChkb3VibGUgdmFsdWUpIHsgcmV0dXJu
IENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAicmFkIik7IH0KLSAgICBzdGF0aWMgUmVmPENT
U1VuaXRWYWx1ZT4gdHVybihkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3Jl
YXRlKHZhbHVlLCAidHVybiIpOyB9CisgICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGRlZyhk
b3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiZGVnIl9z
KTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBncmFkKGRvdWJsZSB2YWx1ZSkgeyBy
ZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJncmFkIl9zKTsgfQorICAgIHN0YXRp
YyBSZWY8Q1NTVW5pdFZhbHVlPiByYWQoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFs
dWU6OmNyZWF0ZSh2YWx1ZSwgInJhZCJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1
ZT4gdHVybihkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVl
LCAidHVybiJfcyk7IH0KIAogCiAgICAgLy8gPHRpbWU+Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0
VmFsdWU+IHMoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1
ZSwgInMiKTsgfQotICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBtcyhkb3VibGUgdmFsdWUp
IHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAibXMiKTsgfQorICAgIHN0YXRp
YyBSZWY8Q1NTVW5pdFZhbHVlPiBzKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVl
OjpjcmVhdGUodmFsdWUsICJzIl9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVlPiBt
cyhkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAibXMi
X3MpOyB9CiAKIAogICAgIC8vIDxmcmVxdWVuY3k+Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFs
dWU+IGh6KGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUs
ICJoeiIpOyB9Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGtIeihkb3VibGUgdmFsdWUp
IHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAia2h6Iik7IH0KKyAgICBzdGF0
aWMgUmVmPENTU1VuaXRWYWx1ZT4gaHooZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFs
dWU6OmNyZWF0ZSh2YWx1ZSwgImh6Il9zKTsgfQorICAgIHN0YXRpYyBSZWY8Q1NTVW5pdFZhbHVl
PiBrSHooZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwg
ImtoeiJfcyk7IH0KIAogCiAgICAgLy8gPHJlc29sdXRpb24+Ci0gICAgc3RhdGljIFJlZjxDU1NV
bml0VmFsdWU+IGRwaShkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRl
KHZhbHVlLCAiZHBpIik7IH0KLSAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gZHBjbShkb3Vi
bGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiZHBjbSIpOyB9
Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGRwcHgoZG91YmxlIHZhbHVlKSB7IHJldHVy
biBDU1NVbml0VmFsdWU6OmNyZWF0ZSh2YWx1ZSwgImRwcHgiKTsgfQorICAgIHN0YXRpYyBSZWY8
Q1NTVW5pdFZhbHVlPiBkcGkoZG91YmxlIHZhbHVlKSB7IHJldHVybiBDU1NVbml0VmFsdWU6OmNy
ZWF0ZSh2YWx1ZSwgImRwaSJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gZHBj
bShkb3VibGUgdmFsdWUpIHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiZHBj
bSJfcyk7IH0KKyAgICBzdGF0aWMgUmVmPENTU1VuaXRWYWx1ZT4gZHBweChkb3VibGUgdmFsdWUp
IHsgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKHZhbHVlLCAiZHBweCJfcyk7IH0KIAogCiAg
ICAgLy8gPGZsZXg+Ci0gICAgc3RhdGljIFJlZjxDU1NVbml0VmFsdWU+IGZyKGRvdWJsZSB2YWx1
ZSkgeyByZXR1cm4gQ1NTVW5pdFZhbHVlOjpjcmVhdGUodmFsdWUsICJmciIpOyB9CisgICAgc3Rh
dGljIFJlZjxDU1NVbml0VmFsdWU+IGZyKGRvdWJsZSB2YWx1ZSkgeyByZXR1cm4gQ1NTVW5pdFZh
bHVlOjpjcmVhdGUodmFsdWUsICJmciJfcyk7IH0KIAogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTTnVtZXJpY1ZhbHVlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy90eXBlZG9tL0NTU051bWVyaWNWYWx1ZS5jcHAKaW5kZXggY2VlMTdjODcwOGY4
Y2I2MzhhZTExM2EzNGU3MTJjNTQxMjMxMGNhZi4uZWQ3YmY5ODM4YjI4MzZmMDBmZGQ1YTk1YTQ5
YjdiMGMwMzY2NmVmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NT
TnVtZXJpY1ZhbHVlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NOdW1l
cmljVmFsdWUuY3BwCkBAIC0xNTcsNyArMTU3LDcgQEAgUmVmPENTU051bWVyaWNWYWx1ZT4gQ1NT
TnVtZXJpY1ZhbHVlOjptdWx0aXBseUludGVybmFsKFZlY3RvcjxSZWY8Q1NTTnVtZXJpY1ZhbHUK
ICAgICAgICAgICAgIGRvdWJsZSBwcm9kdWN0ID0gMTsKICAgICAgICAgICAgIGZvciAoY29uc3Qg
UmVmPENTU051bWVyaWNWYWx1ZT4mIHZhbHVlIDogdmFsdWVzKQogICAgICAgICAgICAgICAgIHBy
b2R1Y3QgKj0gZG93bmNhc3Q8Q1NTVW5pdFZhbHVlPih2YWx1ZS5nZXQoKSkudmFsdWUoKTsKLSAg
ICAgICAgICAgIFN0cmluZyB1bml0ID0gbm9uTnVtYmVyVW5pdEluZGV4ID8gZG93bmNhc3Q8Q1NT
VW5pdFZhbHVlPih2YWx1ZXNbKm5vbk51bWJlclVuaXRJbmRleF0uZ2V0KCkpLnVuaXQoKSA6ICJu
dW1iZXIiOworICAgICAgICAgICAgU3RyaW5nIHVuaXQgPSBub25OdW1iZXJVbml0SW5kZXggPyBk
b3duY2FzdDxDU1NVbml0VmFsdWU+KHZhbHVlc1sqbm9uTnVtYmVyVW5pdEluZGV4XS5nZXQoKSku
dW5pdCgpIDogIm51bWJlciJfczsKICAgICAgICAgICAgIHJldHVybiBDU1NVbml0VmFsdWU6OmNy
ZWF0ZShwcm9kdWN0LCB1bml0KTsKICAgICAgICAgfQogICAgIH0KQEAgLTIzNSw3ICsyMzUsNyBA
QCBSZWY8Q1NTVW5pdFZhbHVlPiBDU1NOdW1lcmljVmFsdWU6OnRvKFN0cmluZyYmIHVuaXQpCiAg
ICAgVU5VU0VEX1BBUkFNKHVuaXQpOwogICAgIC8vIGh0dHBzOi8vZHJhZnRzLmNzcy1ob3VkaW5p
Lm9yZy9jc3MtdHlwZWQtb20vI2RvbS1jc3NudW1lcmljdmFsdWUtdG8KICAgICAvLyBGSVhNRTog
YWRkIGltcGwuCi0gICAgcmV0dXJuIENTU1VuaXRWYWx1ZTo6Y3JlYXRlKDEuMCwgIm51bWJlciIp
OworICAgIHJldHVybiBDU1NVbml0VmFsdWU6OmNyZWF0ZSgxLjAsICJudW1iZXIiX3MpOwogfQog
CiBSZWY8Q1NTTWF0aFN1bT4gQ1NTTnVtZXJpY1ZhbHVlOjp0b1N1bShGaXhlZFZlY3RvcjxTdHJp
bmc+JiYgdW5pdHMpCkBAIC0yNTgsNyArMjU4LDcgQEAgRXhjZXB0aW9uT3I8UmVmPENTU051bWVy
aWNWYWx1ZT4+IENTU051bWVyaWNWYWx1ZTo6cGFyc2UoU3RyaW5nJiYgY3NzVGV4dCkKICAgICBV
TlVTRURfUEFSQU0oY3NzVGV4dCk7CiAgICAgLy8gaHR0cHM6Ly9kcmFmdHMuY3NzLWhvdWRpbmku
b3JnL2Nzcy10eXBlZC1vbS8jZG9tLWNzc251bWVyaWN2YWx1ZS1wYXJzZQogICAgIC8vIEZJWE1F
OiBhZGQgaW1wbC4KLSAgICByZXR1cm4gRXhjZXB0aW9uIHsgTm90U3VwcG9ydGVkRXJyb3IsICJO
b3QgaW1wbGVtZW50ZWQgRXJyb3IiIH07CisgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IE5vdFN1cHBv
cnRlZEVycm9yLCAiTm90IGltcGxlbWVudGVkIEVycm9yIl9zIH07CiB9CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU1N0
eWxlVmFsdWVGYWN0b3J5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy90eXBlZG9tL0NTU1N0eWxl
VmFsdWVGYWN0b3J5LmNwcAppbmRleCA5ZmM3MGZiMTAyNzE2ODcxNDc0NTM2NjUyZDRjYzEzMTA0
ZGYzNDI0Li4wYWJiM2E0ODI4NTJkYmQ0ZGQzMTc4ZjI0OTgzMmY1ODc4YjcxYmFmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvdHlwZWRvbS9DU1NTdHlsZVZhbHVlRmFjdG9yeS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvY3NzL3R5cGVkb20vQ1NTU3R5bGVWYWx1ZUZhY3RvcnkuY3Bw
CkBAIC0yNjQsNyArMjY0LDcgQEAgRXhjZXB0aW9uT3I8UmVmPENTU1N0eWxlVmFsdWU+PiBDU1NT
dHlsZVZhbHVlRmFjdG9yeTo6cmVpZnlWYWx1ZShSZWY8Q1NTVmFsdWU+JiYKICAgICAgICAgLy8g
UmVmZXIgdG8gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3NzLXR5cGVkLW9tL3RoZS1zdHlsZXByb3BlcnR5bWFwL2lubGluZS9nZXQuaHRtbAogICAgICAg
ICBhdXRvIHZhbHVlTGlzdCA9IGRvd25jYXN0PENTU1ZhbHVlTGlzdD4oY3NzVmFsdWUucHRyKCkp
OwogICAgICAgICBpZiAoIXZhbHVlTGlzdC0+bGVuZ3RoKCkpCi0gICAgICAgICAgICByZXR1cm4g
RXhjZXB0aW9uIHsgVHlwZUVycm9yLCAiVGhlIENTU1ZhbHVlTGlzdCBzaG91bGQgbm90IGJlIGVt
cHR5LiIgfTsKKyAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBUeXBlRXJyb3IsICJUaGUg
Q1NTVmFsdWVMaXN0IHNob3VsZCBub3QgYmUgZW1wdHkuIl9zIH07CiAgICAgICAgIAogICAgICAg
ICByZXR1cm4gcmVpZnlWYWx1ZShXVEZNb3ZlKCp2YWx1ZUxpc3QtPmJlZ2luKCkpLCBkb2N1bWVu
dCk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9IVE1M
Q29udmVydGVyLm1tIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9IVE1MQ29udmVydGVy
Lm1tCmluZGV4IGI2N2E2MzQ5NzM3Yjg1YmFjMjkzMmNlMThhYjgzZjczZjgxMzFhYjMuLjJkNTM5
ZWQyYzcxZjIyYmYyOGJmOWRmODU0NGE5YmU5ODhlYTg3ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvY29jb2EvSFRNTENvbnZlcnRlci5tbQorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL2NvY29hL0hUTUxDb252ZXJ0ZXIubW0KQEAgLTU5Niw3ICs1OTYsNyBAQCBTdHJp
bmcgSFRNTENvbnZlcnRlckNhY2hlczo6cHJvcGVydHlWYWx1ZUZvck5vZGUoTm9kZSYgbm9kZSwg
Q1NTUHJvcGVydHlJRCBwcm9wZQogICAgIHN3aXRjaCAocHJvcGVydHlJZCkgewogICAgIGNhc2Ug
Q1NTUHJvcGVydHlEaXNwbGF5OgogICAgICAgICBpZiAoZWxlbWVudC5oYXNUYWdOYW1lKGhlYWRU
YWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZShzY3JpcHRUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFt
ZShhcHBsZXRUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZShub2ZyYW1lc1RhZykpCi0gICAgICAg
ICAgICByZXR1cm4gIm5vbmUiOworICAgICAgICAgICAgcmV0dXJuICJub25lIl9zOwogICAgICAg
ICBlbHNlIGlmIChlbGVtZW50Lmhhc1RhZ05hbWUoYWRkcmVzc1RhZykgfHwgZWxlbWVudC5oYXNU
YWdOYW1lKGJsb2NrcXVvdGVUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZShib2R5VGFnKSB8fCBl
bGVtZW50Lmhhc1RhZ05hbWUoY2VudGVyVGFnKQogICAgICAgICAgICAgIHx8IGVsZW1lbnQuaGFz
VGFnTmFtZShkZFRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKGRpclRhZykgfHwgZWxlbWVudC5o
YXNUYWdOYW1lKGRpdlRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKGRsVGFnKQogICAgICAgICAg
ICAgIHx8IGVsZW1lbnQuaGFzVGFnTmFtZShkdFRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKGZp
ZWxkc2V0VGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoZm9ybVRhZykgfHwgZWxlbWVudC5oYXNU
YWdOYW1lKGZyYW1lVGFnKQpAQCAtNjA0LDYyICs2MDQsNjIgQEAgU3RyaW5nIEhUTUxDb252ZXJ0
ZXJDYWNoZXM6OnByb3BlcnR5VmFsdWVGb3JOb2RlKE5vZGUmIG5vZGUsIENTU1Byb3BlcnR5SUQg
cHJvcGUKICAgICAgICAgICAgICB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoaDJUYWcpIHx8IGVsZW1l
bnQuaGFzVGFnTmFtZShoM1RhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKGg0VGFnKSB8fCBlbGVt
ZW50Lmhhc1RhZ05hbWUoaDVUYWcpCiAgICAgICAgICAgICAgfHwgZWxlbWVudC5oYXNUYWdOYW1l
KGg2VGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoaWZyYW1lVGFnKSB8fCBlbGVtZW50Lmhhc1Rh
Z05hbWUobWVudVRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKG5vc2NyaXB0VGFnKQogICAgICAg
ICAgICAgIHx8IGVsZW1lbnQuaGFzVGFnTmFtZShvbFRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1l
KHBUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZShwcmVUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFt
ZSh1bFRhZykpCi0gICAgICAgICAgICByZXR1cm4gImJsb2NrIjsKKyAgICAgICAgICAgIHJldHVy
biAiYmxvY2siX3M7CiAgICAgICAgIGVsc2UgaWYgKGVsZW1lbnQuaGFzVGFnTmFtZShsaVRhZykp
Ci0gICAgICAgICAgICByZXR1cm4gImxpc3QtaXRlbSI7CisgICAgICAgICAgICByZXR1cm4gImxp
c3QtaXRlbSJfczsKICAgICAgICAgZWxzZSBpZiAoZWxlbWVudC5oYXNUYWdOYW1lKHRhYmxlVGFn
KSkKLSAgICAgICAgICAgIHJldHVybiAidGFibGUiOworICAgICAgICAgICAgcmV0dXJuICJ0YWJs
ZSJfczsKICAgICAgICAgZWxzZSBpZiAoZWxlbWVudC5oYXNUYWdOYW1lKHRyVGFnKSkKLSAgICAg
ICAgICAgIHJldHVybiAidGFibGUtcm93IjsKKyAgICAgICAgICAgIHJldHVybiAidGFibGUtcm93
Il9zOwogICAgICAgICBlbHNlIGlmIChlbGVtZW50Lmhhc1RhZ05hbWUodGhUYWcpIHx8IGVsZW1l
bnQuaGFzVGFnTmFtZSh0ZFRhZykpCi0gICAgICAgICAgICByZXR1cm4gInRhYmxlLWNlbGwiOwor
ICAgICAgICAgICAgcmV0dXJuICJ0YWJsZS1jZWxsIl9zOwogICAgICAgICBlbHNlIGlmIChlbGVt
ZW50Lmhhc1RhZ05hbWUodGhlYWRUYWcpKQotICAgICAgICAgICAgcmV0dXJuICJ0YWJsZS1oZWFk
ZXItZ3JvdXAiOworICAgICAgICAgICAgcmV0dXJuICJ0YWJsZS1oZWFkZXItZ3JvdXAiX3M7CiAg
ICAgICAgIGVsc2UgaWYgKGVsZW1lbnQuaGFzVGFnTmFtZSh0Ym9keVRhZykpCi0gICAgICAgICAg
ICByZXR1cm4gInRhYmxlLXJvdy1ncm91cCI7CisgICAgICAgICAgICByZXR1cm4gInRhYmxlLXJv
dy1ncm91cCJfczsKICAgICAgICAgZWxzZSBpZiAoZWxlbWVudC5oYXNUYWdOYW1lKHRmb290VGFn
KSkKLSAgICAgICAgICAgIHJldHVybiAidGFibGUtZm9vdGVyLWdyb3VwIjsKKyAgICAgICAgICAg
IHJldHVybiAidGFibGUtZm9vdGVyLWdyb3VwIl9zOwogICAgICAgICBlbHNlIGlmIChlbGVtZW50
Lmhhc1RhZ05hbWUoY29sVGFnKSkKLSAgICAgICAgICAgIHJldHVybiAidGFibGUtY29sdW1uIjsK
KyAgICAgICAgICAgIHJldHVybiAidGFibGUtY29sdW1uIl9zOwogICAgICAgICBlbHNlIGlmIChl
bGVtZW50Lmhhc1RhZ05hbWUoY29sZ3JvdXBUYWcpKQotICAgICAgICAgICAgcmV0dXJuICJ0YWJs
ZS1jb2x1bW4tZ3JvdXAiOworICAgICAgICAgICAgcmV0dXJuICJ0YWJsZS1jb2x1bW4tZ3JvdXAi
X3M7CiAgICAgICAgIGVsc2UgaWYgKGVsZW1lbnQuaGFzVGFnTmFtZShjYXB0aW9uVGFnKSkKLSAg
ICAgICAgICAgIHJldHVybiAidGFibGUtY2FwdGlvbiI7CisgICAgICAgICAgICByZXR1cm4gInRh
YmxlLWNhcHRpb24iX3M7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTUHJvcGVydHlXaGl0
ZVNwYWNlOgogICAgICAgICBpZiAoZWxlbWVudC5oYXNUYWdOYW1lKHByZVRhZykpCi0gICAgICAg
ICAgICByZXR1cm4gInByZSI7CisgICAgICAgICAgICByZXR1cm4gInByZSJfczsKICAgICAgICAg
aW5oZXJpdCA9IHRydWU7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTUHJvcGVydHlGb250
U3R5bGU6CiAgICAgICAgIGlmIChlbGVtZW50Lmhhc1RhZ05hbWUoaVRhZykgfHwgZWxlbWVudC5o
YXNUYWdOYW1lKGNpdGVUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZShlbVRhZykgfHwgZWxlbWVu
dC5oYXNUYWdOYW1lKHZhclRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKGFkZHJlc3NUYWcpKQot
ICAgICAgICAgICAgcmV0dXJuICJpdGFsaWMiOworICAgICAgICAgICAgcmV0dXJuICJpdGFsaWMi
X3M7CiAgICAgICAgIGluaGVyaXQgPSB0cnVlOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENT
U1Byb3BlcnR5Rm9udFdlaWdodDoKICAgICAgICAgaWYgKGVsZW1lbnQuaGFzVGFnTmFtZShiVGFn
KSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoc3Ryb25nVGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUo
dGhUYWcpKQotICAgICAgICAgICAgcmV0dXJuICJib2xkZXIiOworICAgICAgICAgICAgcmV0dXJu
ICJib2xkZXIiX3M7CiAgICAgICAgIGluaGVyaXQgPSB0cnVlOwogICAgICAgICBicmVhazsKICAg
ICBjYXNlIENTU1Byb3BlcnR5VGV4dERlY29yYXRpb25MaW5lOgogICAgICAgICBpZiAoZWxlbWVu
dC5oYXNUYWdOYW1lKHVUYWcpIHx8IGVsZW1lbnQuaGFzVGFnTmFtZShpbnNUYWcpKQotICAgICAg
ICAgICAgcmV0dXJuICJ1bmRlcmxpbmUiOworICAgICAgICAgICAgcmV0dXJuICJ1bmRlcmxpbmUi
X3M7CiAgICAgICAgIGVsc2UgaWYgKGVsZW1lbnQuaGFzVGFnTmFtZShzVGFnKSB8fCBlbGVtZW50
Lmhhc1RhZ05hbWUoc3RyaWtlVGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUoZGVsVGFnKSkKLSAg
ICAgICAgICAgIHJldHVybiAibGluZS10aHJvdWdoIjsKKyAgICAgICAgICAgIHJldHVybiAibGlu
ZS10aHJvdWdoIl9zOwogICAgICAgICBpbmhlcml0ID0gdHJ1ZTsgLy8gRklYTUU6IFRoaXMgaXMg
bm90IHN0cmljdGx5IGNvcnJlY3QKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDU1NQcm9wZXJ0
eVRleHRBbGlnbjoKICAgICAgICAgaWYgKGVsZW1lbnQuaGFzVGFnTmFtZShjZW50ZXJUYWcpIHx8
IGVsZW1lbnQuaGFzVGFnTmFtZShjYXB0aW9uVGFnKSB8fCBlbGVtZW50Lmhhc1RhZ05hbWUodGhU
YWcpKQotICAgICAgICAgICAgcmV0dXJuICJjZW50ZXIiOworICAgICAgICAgICAgcmV0dXJuICJj
ZW50ZXIiX3M7CiAgICAgICAgIGluaGVyaXQgPSB0cnVlOwogICAgICAgICBicmVhazsKICAgICBj
YXNlIENTU1Byb3BlcnR5VmVydGljYWxBbGlnbjoKICAgICAgICAgaWYgKGVsZW1lbnQuaGFzVGFn
TmFtZShzdXBUYWcpKQotICAgICAgICAgICAgcmV0dXJuICJzdXBlciI7CisgICAgICAgICAgICBy
ZXR1cm4gInN1cGVyIl9zOwogICAgICAgICBlbHNlIGlmIChlbGVtZW50Lmhhc1RhZ05hbWUoc3Vi
VGFnKSkKLSAgICAgICAgICAgIHJldHVybiAic3ViIjsKKyAgICAgICAgICAgIHJldHVybiAic3Vi
Il9zOwogICAgICAgICBlbHNlIGlmIChlbGVtZW50Lmhhc1RhZ05hbWUodGhlYWRUYWcpIHx8IGVs
ZW1lbnQuaGFzVGFnTmFtZSh0Ym9keVRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKHRmb290VGFn
KSkKLSAgICAgICAgICAgIHJldHVybiAibWlkZGxlIjsKKyAgICAgICAgICAgIHJldHVybiAibWlk
ZGxlIl9zOwogICAgICAgICBlbHNlIGlmIChlbGVtZW50Lmhhc1RhZ05hbWUodHJUYWcpIHx8IGVs
ZW1lbnQuaGFzVGFnTmFtZSh0aFRhZykgfHwgZWxlbWVudC5oYXNUYWdOYW1lKHRkVGFnKSkKICAg
ICAgICAgICAgIGluaGVyaXQgPSB0cnVlOwogICAgICAgICBicmVhazsKQEAgLTE4NTIsNyArMTg1
Miw3IEBAIEJPT0wgSFRNTENvbnZlcnRlcjo6X3Byb2Nlc3NFbGVtZW50KEVsZW1lbnQmIGVsZW1l
bnQsIE5TSW50ZWdlciBkZXB0aCkKICAgICAgICAgUmV0YWluUHRyPE5TVGV4dExpc3Q+IGxpc3Q7
CiAgICAgICAgIFN0cmluZyBsaXN0U3R5bGVUeXBlID0gX2NhY2hlcy0+cHJvcGVydHlWYWx1ZUZv
ck5vZGUoZWxlbWVudCwgQ1NTUHJvcGVydHlMaXN0U3R5bGVUeXBlKTsKICAgICAgICAgaWYgKCFs
aXN0U3R5bGVUeXBlLmxlbmd0aCgpKQotICAgICAgICAgICAgbGlzdFN0eWxlVHlwZSA9ICJkZWNp
bWFsIjsKKyAgICAgICAgICAgIGxpc3RTdHlsZVR5cGUgPSAiZGVjaW1hbCJfczsKICAgICAgICAg
bGlzdCA9IGFkb3B0TlMoW1tQbGF0Zm9ybU5TVGV4dExpc3QgYWxsb2NdIGluaXRXaXRoTWFya2Vy
Rm9ybWF0OlN0cmluZygieyIgKyBsaXN0U3R5bGVUeXBlICsgIn0iKSBvcHRpb25zOjBdKTsKICAg
ICAgICAgaWYgKGlzPEhUTUxPTGlzdEVsZW1lbnQ+KGVsZW1lbnQpKSB7CiAgICAgICAgICAgICBO
U0ludGVnZXIgc3RhcnRpbmdJdGVtTnVtYmVyID0gZG93bmNhc3Q8SFRNTE9MaXN0RWxlbWVudD4o
ZWxlbWVudCkuc3RhcnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvY29j
b2EvV2ViQ29udGVudFJlYWRlckNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2Nv
YS9XZWJDb250ZW50UmVhZGVyQ29jb2EubW0KaW5kZXggZTg4NmEyN2RiZDYyMjQwYWQ5ODQyMDQ1
Y2ViODMwNTBhMmZjMDNkZi4uZDhkMTQwZGVmN2QzYTM4YjAyNGE0MTEzNGI2NThlN2YzMTQxNGUy
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9XZWJDb250ZW50UmVh
ZGVyQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9jb2NvYS9XZWJDb250ZW50
UmVhZGVyQ29jb2EubW0KQEAgLTc2Miw3ICs3NjIsNyBAQCBzdGF0aWMgUmVmPEhUTUxFbGVtZW50
PiBhdHRhY2htZW50Rm9yRGF0YShGcmFtZSYgZnJhbWUsIEZyYWdtZW50ZWRTaGFyZWRCdWZmZXIm
CiAgICAgYXV0byBhdHRhY2htZW50VHlwZSA9IHR5cGVGb3JBdHRhY2htZW50RWxlbWVudChjb250
ZW50VHlwZSk7CiAKICAgICAvLyBGSVhNRTogV2Ugc2hvdWxkIGluc3RlYWQgYXNrIENvcmVTZXJ2
aWNlcyBmb3IgYSBwcmVmZXJyZWQgbmFtZSBjb3JyZXNwb25kaW5nIHRvIHRoZSBnaXZlbiBjb250
ZW50IHR5cGUuCi0gICAgc3RhdGljIGNvbnN0IGNoYXIqIGRlZmF1bHRBdHRhY2htZW50TmFtZSA9
ICJmaWxlIjsKKyAgICBzdGF0aWMgY29uc3RleHByIEFTQ0lJTGl0ZXJhbCBkZWZhdWx0QXR0YWNo
bWVudE5hbWUgPSAiZmlsZSJfczsKIAogICAgIFN0cmluZyBmaWxlTmFtZTsKICAgICBpZiAobmFt
ZS5pc0VtcHR5KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY29jb2EvQnVu
ZGxlUmVzb3VyY2VMb2FkZXIubW0gYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY29jb2EvQnVuZGxl
UmVzb3VyY2VMb2FkZXIubW0KaW5kZXggYzNiN2I3ZmU1NWRjMzMwNDNjYzhhZTM5Y2NmYTQ3ZGI3
Njk2M2VjZi4uOWMyNzkxMTM5NTc5ZTBkNDY3YzM4MGE1MjNkNTUxNTE0MjIzMWFiMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NvY29hL0J1bmRsZVJlc291cmNlTG9hZGVyLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jb2NvYS9CdW5kbGVSZXNvdXJjZUxvYWRlci5t
bQpAQCAtNjUsMTMgKzY1LDEzIEBAIHZvaWQgbG9hZFJlc291cmNlRnJvbUJ1bmRsZShSZXNvdXJj
ZUxvYWRlciYgbG9hZGVyLCBjb25zdCBTdHJpbmcmIHN1YmRpcmVjdG9yeSkKIAogICAgICAgICBS
dW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW3Byb3RlY3RlZExvYWRlciA9IFdURk1vdmUocHJvdGVj
dGVkTG9hZGVyKSwgdXJsID0gV1RGTW92ZSh1cmwpLmlzb2xhdGVkQ29weSgpLCBidWZmZXIgPSBT
aGFyZWRCdWZmZXI6OmNyZWF0ZShkYXRhKV0oKSBtdXRhYmxlIHsKICAgICAgICAgICAgIGF1dG8g
bWltZVR5cGUgPSBNSU1FVHlwZVJlZ2lzdHJ5OjptaW1lVHlwZUZvclBhdGgodXJsLnBhdGgoKSk7
Ci0gICAgICAgICAgICBSZXNvdXJjZVJlc3BvbnNlIHJlc3BvbnNlIHsgdXJsLCBtaW1lVHlwZSwg
c3RhdGljX2Nhc3Q8bG9uZyBsb25nPihidWZmZXItPnNpemUoKSksIE1JTUVUeXBlUmVnaXN0cnk6
OmlzVGV4dE1JTUVUeXBlKG1pbWVUeXBlKSA/ICJVVEYtOCJfcyA6IG51bGxwdHIgfTsKKyAgICAg
ICAgICAgIFJlc291cmNlUmVzcG9uc2UgcmVzcG9uc2UgeyB1cmwsIG1pbWVUeXBlLCBzdGF0aWNf
Y2FzdDxsb25nIGxvbmc+KGJ1ZmZlci0+c2l6ZSgpKSwgTUlNRVR5cGVSZWdpc3RyeTo6aXNUZXh0
TUlNRVR5cGUobWltZVR5cGUpID8gIlVURi04Il9zIDogU3RyaW5nKCkgfTsKICAgICAgICAgICAg
IHJlc3BvbnNlLnNldEhUVFBTdGF0dXNDb2RlKDIwMCk7CiAgICAgICAgICAgICByZXNwb25zZS5z
ZXRIVFRQU3RhdHVzVGV4dCgiT0siX3MpOwogICAgICAgICAgICAgcmVzcG9uc2Uuc2V0U291cmNl
KFJlc291cmNlUmVzcG9uc2U6OlNvdXJjZTo6TmV0d29yayk7CiAKICAgICAgICAgICAgIC8vIEFs
bG93IGltYWdlcyB0byBsb2FkLgotICAgICAgICAgICAgcmVzcG9uc2UuYWRkSFRUUEhlYWRlckZp
ZWxkKEhUVFBIZWFkZXJOYW1lOjpBY2Nlc3NDb250cm9sQWxsb3dPcmlnaW4sICIqIik7CisgICAg
ICAgICAgICByZXNwb25zZS5hZGRIVFRQSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OkFjY2Vz
c0NvbnRyb2xBbGxvd09yaWdpbiwgIioiX3MpOwogCiAgICAgICAgICAgICBwcm90ZWN0ZWRMb2Fk
ZXItPmRlbGl2ZXJSZXNwb25zZUFuZERhdGEocmVzcG9uc2UsIFdURk1vdmUoYnVmZmVyKSk7CiAg
ICAgICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9SZXNvdXJj
ZVVzYWdlT3ZlcmxheUNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9SZXNvdXJj
ZVVzYWdlT3ZlcmxheUNvY29hLm1tCmluZGV4IDExNDg0ZDBjNTkyYzA3ZmY5NGVjMTc3YTAxMjgw
MTA3OWMzOTU5NzEuLmUxZGMyOWI4NjJkNDIyNDNhOWEyOTFhMGVkMWY1ZjQzM2ZjZGExZWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2EvUmVzb3VyY2VVc2FnZU92ZXJsYXlD
b2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL1Jlc291cmNlVXNhZ2VPdmVy
bGF5Q29jb2EubW0KQEAgLTE2MSwxOCArMTYxLDE4IEBAIHN0cnVjdCBIaXN0b3JpY1Jlc291cmNl
VXNhZ2VEYXRhIHsKIEhpc3RvcmljUmVzb3VyY2VVc2FnZURhdGE6Okhpc3RvcmljUmVzb3VyY2VV
c2FnZURhdGEoKQogewogICAgIC8vIFZNIHRhZyBjYXRlZ29yaWVzLgotICAgIGNhdGVnb3JpZXNb
TWVtb3J5Q2F0ZWdvcnk6OkpTSklUXSA9IEhpc3RvcmljTWVtb3J5Q2F0ZWdvcnlJbmZvKE1lbW9y
eUNhdGVnb3J5OjpKU0pJVCwgeyAyNTUsIDk2LCAyNTUgfSwgIkpTIEpJVCIpOwotICAgIGNhdGVn
b3JpZXNbTWVtb3J5Q2F0ZWdvcnk6OkdpZ2FjYWdlXSA9IEhpc3RvcmljTWVtb3J5Q2F0ZWdvcnlJ
bmZvKE1lbW9yeUNhdGVnb3J5OjpHaWdhY2FnZSwgeyAxMDEsIDc5LCAyNDAgfSwgIkdpZ2FjYWdl
Iik7Ci0gICAgY2F0ZWdvcmllc1tNZW1vcnlDYXRlZ29yeTo6SW1hZ2VzXSA9IEhpc3RvcmljTWVt
b3J5Q2F0ZWdvcnlJbmZvKE1lbW9yeUNhdGVnb3J5OjpJbWFnZXMsIENvbG9yOjp5ZWxsb3csICJJ
bWFnZXMiKTsKLSAgICBjYXRlZ29yaWVzW01lbW9yeUNhdGVnb3J5OjpMYXllcnNdID0gSGlzdG9y
aWNNZW1vcnlDYXRlZ29yeUluZm8oTWVtb3J5Q2F0ZWdvcnk6OkxheWVycywgQ29sb3I6OmN5YW4s
ICJMYXllcnMiKTsKLSAgICBjYXRlZ29yaWVzW01lbW9yeUNhdGVnb3J5OjpMaWJjTWFsbG9jXSA9
IEhpc3RvcmljTWVtb3J5Q2F0ZWdvcnlJbmZvKE1lbW9yeUNhdGVnb3J5OjpMaWJjTWFsbG9jLCBD
b2xvcjo6Z3JlZW4sICJsaWJjIG1hbGxvYyIpOwotICAgIGNhdGVnb3JpZXNbTWVtb3J5Q2F0ZWdv
cnk6OmJtYWxsb2NdID0gSGlzdG9yaWNNZW1vcnlDYXRlZ29yeUluZm8oTWVtb3J5Q2F0ZWdvcnk6
OmJtYWxsb2MsIHsgMjU1LCA5NiwgOTYgfSwgImJtYWxsb2MiKTsKLSAgICBjYXRlZ29yaWVzW01l
bW9yeUNhdGVnb3J5OjpJc29IZWFwXSA9IEhpc3RvcmljTWVtb3J5Q2F0ZWdvcnlJbmZvKE1lbW9y
eUNhdGVnb3J5OjpJc29IZWFwLCB7IDEyOCwgMTU5LCA2NCB9LCAiSXNvSGVhcCIpOwotICAgIGNh
dGVnb3JpZXNbTWVtb3J5Q2F0ZWdvcnk6Ok90aGVyXSA9IEhpc3RvcmljTWVtb3J5Q2F0ZWdvcnlJ
bmZvKE1lbW9yeUNhdGVnb3J5OjpPdGhlciwgeyAxOTIsIDI1NSwgMCB9LCAiT3RoZXIiKTsKKyAg
ICBjYXRlZ29yaWVzW01lbW9yeUNhdGVnb3J5OjpKU0pJVF0gPSBIaXN0b3JpY01lbW9yeUNhdGVn
b3J5SW5mbyhNZW1vcnlDYXRlZ29yeTo6SlNKSVQsIHsgMjU1LCA5NiwgMjU1IH0sICJKUyBKSVQi
X3MpOworICAgIGNhdGVnb3JpZXNbTWVtb3J5Q2F0ZWdvcnk6OkdpZ2FjYWdlXSA9IEhpc3Rvcmlj
TWVtb3J5Q2F0ZWdvcnlJbmZvKE1lbW9yeUNhdGVnb3J5OjpHaWdhY2FnZSwgeyAxMDEsIDc5LCAy
NDAgfSwgIkdpZ2FjYWdlIl9zKTsKKyAgICBjYXRlZ29yaWVzW01lbW9yeUNhdGVnb3J5OjpJbWFn
ZXNdID0gSGlzdG9yaWNNZW1vcnlDYXRlZ29yeUluZm8oTWVtb3J5Q2F0ZWdvcnk6OkltYWdlcywg
Q29sb3I6OnllbGxvdywgIkltYWdlcyJfcyk7CisgICAgY2F0ZWdvcmllc1tNZW1vcnlDYXRlZ29y
eTo6TGF5ZXJzXSA9IEhpc3RvcmljTWVtb3J5Q2F0ZWdvcnlJbmZvKE1lbW9yeUNhdGVnb3J5OjpM
YXllcnMsIENvbG9yOjpjeWFuLCAiTGF5ZXJzIl9zKTsKKyAgICBjYXRlZ29yaWVzW01lbW9yeUNh
dGVnb3J5OjpMaWJjTWFsbG9jXSA9IEhpc3RvcmljTWVtb3J5Q2F0ZWdvcnlJbmZvKE1lbW9yeUNh
dGVnb3J5OjpMaWJjTWFsbG9jLCBDb2xvcjo6Z3JlZW4sICJsaWJjIG1hbGxvYyJfcyk7CisgICAg
Y2F0ZWdvcmllc1tNZW1vcnlDYXRlZ29yeTo6Ym1hbGxvY10gPSBIaXN0b3JpY01lbW9yeUNhdGVn
b3J5SW5mbyhNZW1vcnlDYXRlZ29yeTo6Ym1hbGxvYywgeyAyNTUsIDk2LCA5NiB9LCAiYm1hbGxv
YyJfcyk7CisgICAgY2F0ZWdvcmllc1tNZW1vcnlDYXRlZ29yeTo6SXNvSGVhcF0gPSBIaXN0b3Jp
Y01lbW9yeUNhdGVnb3J5SW5mbyhNZW1vcnlDYXRlZ29yeTo6SXNvSGVhcCwgeyAxMjgsIDE1OSwg
NjQgfSwgIklzb0hlYXAiX3MpOworICAgIGNhdGVnb3JpZXNbTWVtb3J5Q2F0ZWdvcnk6Ok90aGVy
XSA9IEhpc3RvcmljTWVtb3J5Q2F0ZWdvcnlJbmZvKE1lbW9yeUNhdGVnb3J5OjpPdGhlciwgeyAx
OTIsIDI1NSwgMCB9LCAiT3RoZXIiX3MpOwogCiAgICAgLy8gU3ViIGNhdGVnb3JpZXMgKGUuZyBi
cmVha2Rvd24gb2YgYm1hbGxvYyB0YWcuKQotICAgIGNhdGVnb3JpZXNbTWVtb3J5Q2F0ZWdvcnk6
OkdDSGVhcF0gPSBIaXN0b3JpY01lbW9yeUNhdGVnb3J5SW5mbyhNZW1vcnlDYXRlZ29yeTo6R0NI
ZWFwLCB7IDE2MCwgMTYwLCAyNTUgfSwgIkdDIGhlYXAiLCB0cnVlKTsKLSAgICBjYXRlZ29yaWVz
W01lbW9yeUNhdGVnb3J5OjpHQ093bmVkXSA9IEhpc3RvcmljTWVtb3J5Q2F0ZWdvcnlJbmZvKE1l
bW9yeUNhdGVnb3J5OjpHQ093bmVkLCB7IDI1NSwgMTkyLCA5NiB9LCAiR0Mgb3duZWQiLCB0cnVl
KTsKKyAgICBjYXRlZ29yaWVzW01lbW9yeUNhdGVnb3J5OjpHQ0hlYXBdID0gSGlzdG9yaWNNZW1v
cnlDYXRlZ29yeUluZm8oTWVtb3J5Q2F0ZWdvcnk6OkdDSGVhcCwgeyAxNjAsIDE2MCwgMjU1IH0s
ICJHQyBoZWFwIl9zLCB0cnVlKTsKKyAgICBjYXRlZ29yaWVzW01lbW9yeUNhdGVnb3J5OjpHQ093
bmVkXSA9IEhpc3RvcmljTWVtb3J5Q2F0ZWdvcnlJbmZvKE1lbW9yeUNhdGVnb3J5OjpHQ093bmVk
LCB7IDI1NSwgMTkyLCA5NiB9LCAiR0Mgb3duZWQiX3MsIHRydWUpOwogCiAjaWZuZGVmIE5ERUJV
RwogICAgIC8vIEVuc3VyZSB0aGlzIGFsaWducyB3aXRoIFJlc291cmNlVXNhZ2VEYXRhJ3MgY2F0
ZWdvcnkgb3JkZXIuCkBAIC0zMTEsNyArMzExLDcgQEAgc3RhdGljIHZvaWQgZHJhd0NwdUhpc3Rv
cnkoQ0dDb250ZXh0UmVmIGNvbnRleHQsIGZsb2F0IHgxLCBmbG9hdCB5MSwgZmxvYXQgeTIsIFIK
ICAgICAgICAgaSsrOwogICAgIH0pOwogCi0gICAgZHJhd0dyYXBoTGFiZWwoY29udGV4dCwgeDEs
IHkyLCAiQ1BVIik7CisgICAgZHJhd0dyYXBoTGFiZWwoY29udGV4dCwgeDEsIHkyLCAiQ1BVIl9z
KTsKIH0KIAogc3RhdGljIHZvaWQgZHJhd0dDSGlzdG9yeShDR0NvbnRleHRSZWYgY29udGV4dCwg
ZmxvYXQgeDEsIGZsb2F0IHkxLCBmbG9hdCB5MiwgUmluZ0J1ZmZlcjxzaXplX3Q+JiBzaXplSGlz
dG9yeSwgUmluZ0J1ZmZlcjxzaXplX3Q+JiBjYXBhY2l0eUhpc3RvcnkpCkBAIC0zNTQsNyArMzU0
LDcgQEAgc3RhdGljIHZvaWQgZHJhd0dDSGlzdG9yeShDR0NvbnRleHRSZWYgY29udGV4dCwgZmxv
YXQgeDEsIGZsb2F0IHkxLCBmbG9hdCB5MiwgUmkKICAgICAgICAgaSsrOwogICAgIH0pOwogCi0g
ICAgZHJhd0dyYXBoTGFiZWwoY29udGV4dCwgeDEsIHkyLCAiR0MiKTsKKyAgICBkcmF3R3JhcGhM
YWJlbChjb250ZXh0LCB4MSwgeTIsICJHQyJfcyk7CiB9CiAKIHN0YXRpYyB2b2lkIGRyYXdNZW1I
aXN0b3J5KENHQ29udGV4dFJlZiBjb250ZXh0LCBmbG9hdCB4MSwgZmxvYXQgeTEsIGZsb2F0IHky
LCBIaXN0b3JpY1Jlc291cmNlVXNhZ2VEYXRhJiBkYXRhKQpAQCAtNDAwLDcgKzQwMCw3IEBAIHN0
YXRpYyB2b2lkIGRyYXdNZW1IaXN0b3J5KENHQ29udGV4dFJlZiBjb250ZXh0LCBmbG9hdCB4MSwg
ZmxvYXQgeTEsIGZsb2F0IHkyLCBICiAgICAgICAgICsraTsKICAgICB9CiAKLSAgICBkcmF3R3Jh
cGhMYWJlbChjb250ZXh0LCB4MSwgeTIsICJNZW0iKTsKKyAgICBkcmF3R3JhcGhMYWJlbChjb250
ZXh0LCB4MSwgeTIsICJNZW0iX3MpOwogfQogCiBzdGF0aWMgY29uc3QgZmxvYXQgZnVsbENpcmNs
ZUluUmFkaWFucyA9IHBpRmxvYXQgKiAyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9jb2NvYS9TZXR0aW5nc0Jhc2VDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvY29jb2Ev
U2V0dGluZ3NCYXNlQ29jb2EubW0KaW5kZXggZDIxZDk5ZDg2MWI4ZmE5MjgyZTkxYTlhYTRhMzAx
ZjhmYjY0ZDE3Ny4uNDc3NGNlMDhhNWI4YjUwZjY0YTE2MjAyZjUzOGI0ZjRmN2VmMmU0OCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9jb2NvYS9TZXR0aW5nc0Jhc2VDb2NvYS5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL2NvY29hL1NldHRpbmdzQmFzZUNvY29hLm1tCkBAIC00
MywxNSArNDMsMTUgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiB2b2lkIFNldHRpbmdzQmFzZTo6
aW5pdGlhbGl6ZURlZmF1bHRGb250RmFtaWxpZXMoKQogewotICAgIHNldFN0YW5kYXJkRm9udEZh
bWlseSgiU29uZ3RpIFRDIiwgVVNDUklQVF9UUkFESVRJT05BTF9IQU4pOwotICAgIHNldFN0YW5k
YXJkRm9udEZhbWlseSgiU29uZ3RpIFNDIiwgVVNDUklQVF9TSU1QTElGSUVEX0hBTik7Ci0gICAg
c2V0U3RhbmRhcmRGb250RmFtaWx5KCJIaXJhZ2lubyBNaW5jaG8gUHJvTiIsIFVTQ1JJUFRfS0FU
QUtBTkFfT1JfSElSQUdBTkEpOwotICAgIHNldFN0YW5kYXJkRm9udEZhbWlseSgiQXBwbGVNeXVu
Z2pvIiwgVVNDUklQVF9IQU5HVUwpOwotCi0gICAgc2V0U3RhbmRhcmRGb250RmFtaWx5KCJUaW1l
cyIsIFVTQ1JJUFRfQ09NTU9OKTsKLSAgICBzZXRGaXhlZEZvbnRGYW1pbHkoIkNvdXJpZXIiLCBV
U0NSSVBUX0NPTU1PTik7Ci0gICAgc2V0U2VyaWZGb250RmFtaWx5KCJUaW1lcyIsIFVTQ1JJUFRf
Q09NTU9OKTsKLSAgICBzZXRTYW5zU2VyaWZGb250RmFtaWx5KCJIZWx2ZXRpY2EiLCBVU0NSSVBU
X0NPTU1PTik7CisgICAgc2V0U3RhbmRhcmRGb250RmFtaWx5KCJTb25ndGkgVEMiX3MsIFVTQ1JJ
UFRfVFJBRElUSU9OQUxfSEFOKTsKKyAgICBzZXRTdGFuZGFyZEZvbnRGYW1pbHkoIlNvbmd0aSBT
QyJfcywgVVNDUklQVF9TSU1QTElGSUVEX0hBTik7CisgICAgc2V0U3RhbmRhcmRGb250RmFtaWx5
KCJIaXJhZ2lubyBNaW5jaG8gUHJvTiJfcywgVVNDUklQVF9LQVRBS0FOQV9PUl9ISVJBR0FOQSk7
CisgICAgc2V0U3RhbmRhcmRGb250RmFtaWx5KCJBcHBsZU15dW5nam8iX3MsIFVTQ1JJUFRfSEFO
R1VMKTsKKworICAgIHNldFN0YW5kYXJkRm9udEZhbWlseSgiVGltZXMiX3MsIFVTQ1JJUFRfQ09N
TU9OKTsKKyAgICBzZXRGaXhlZEZvbnRGYW1pbHkoIkNvdXJpZXIiX3MsIFVTQ1JJUFRfQ09NTU9O
KTsKKyAgICBzZXRTZXJpZkZvbnRGYW1pbHkoIlRpbWVzIl9zLCBVU0NSSVBUX0NPTU1PTik7Cisg
ICAgc2V0U2Fuc1NlcmlmRm9udEZhbWlseSgiSGVsdmV0aWNhIl9zLCBVU0NSSVBUX0NPTU1PTik7
CiB9CiAKIGJvb2wgU2V0dGluZ3NCYXNlOjpwbGF0Zm9ybURlZmF1bHRNZWRpYVNvdXJjZUVuYWJs
ZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvUGFnZU1hYy5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvbWFjL1BhZ2VNYWMubW0KaW5kZXggNDQ5YThmZjZjZDY5NGQyNGM1
YWYxNGJkZWFmNTRjNjI0YzIyYzExYi4uOWYyZDNmNWZkM2RmN2ZjNjViOGYyYmQ1MmNjNjlmMjJi
YjFiYWNlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvUGFnZU1hYy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL21hYy9QYWdlTWFjLm1tCkBAIC01NywxNSArNTcsMTUg
QEAgdm9pZCBQYWdlOjpwbGF0Zm9ybUluaXRpYWxpemUoKQogICAgIHN0YXRpYyBzdGQ6Om9uY2Vf
ZmxhZyBvbmNlRmxhZzsKICAgICBzdGQ6OmNhbGxfb25jZShvbmNlRmxhZywgW10gewogI2lmIEVO
QUJMRShUUkVFX0RFQlVHR0lORykKLSAgICAgICAgUEFMOjpyZWdpc3Rlck5vdGlmeUNhbGxiYWNr
KCJjb20uYXBwbGUuV2ViS2l0LnNob3dSZW5kZXJUcmVlIiwgcHJpbnRSZW5kZXJUcmVlRm9yTGl2
ZURvY3VtZW50cyk7Ci0gICAgICAgIFBBTDo6cmVnaXN0ZXJOb3RpZnlDYWxsYmFjaygiY29tLmFw
cGxlLldlYktpdC5zaG93TGF5ZXJUcmVlIiwgcHJpbnRMYXllclRyZWVGb3JMaXZlRG9jdW1lbnRz
KTsKLSAgICAgICAgUEFMOjpyZWdpc3Rlck5vdGlmeUNhbGxiYWNrKCJjb20uYXBwbGUuV2ViS2l0
LnNob3dHcmFwaGljc0xheWVyVHJlZSIsIHByaW50R3JhcGhpY3NMYXllclRyZWVGb3JMaXZlRG9j
dW1lbnRzKTsKKyAgICAgICAgUEFMOjpyZWdpc3Rlck5vdGlmeUNhbGxiYWNrKCJjb20uYXBwbGUu
V2ViS2l0LnNob3dSZW5kZXJUcmVlIl9zLCBwcmludFJlbmRlclRyZWVGb3JMaXZlRG9jdW1lbnRz
KTsKKyAgICAgICAgUEFMOjpyZWdpc3Rlck5vdGlmeUNhbGxiYWNrKCJjb20uYXBwbGUuV2ViS2l0
LnNob3dMYXllclRyZWUiX3MsIHByaW50TGF5ZXJUcmVlRm9yTGl2ZURvY3VtZW50cyk7CisgICAg
ICAgIFBBTDo6cmVnaXN0ZXJOb3RpZnlDYWxsYmFjaygiY29tLmFwcGxlLldlYktpdC5zaG93R3Jh
cGhpY3NMYXllclRyZWUiX3MsIHByaW50R3JhcGhpY3NMYXllclRyZWVGb3JMaXZlRG9jdW1lbnRz
KTsKICNpZiBFTkFCTEUoTEFZT1VUX0ZPUk1BVFRJTkdfQ09OVEVYVCkKLSAgICAgICAgUEFMOjpy
ZWdpc3Rlck5vdGlmeUNhbGxiYWNrKCJjb20uYXBwbGUuV2ViS2l0LnNob3dMYXlvdXRUcmVlIiwg
TGF5b3V0OjpwcmludExheW91dFRyZWVGb3JMaXZlRG9jdW1lbnRzKTsKKyAgICAgICAgUEFMOjpy
ZWdpc3Rlck5vdGlmeUNhbGxiYWNrKCJjb20uYXBwbGUuV2ViS2l0LnNob3dMYXlvdXRUcmVlIl9z
LCBMYXlvdXQ6OnByaW50TGF5b3V0VHJlZUZvckxpdmVEb2N1bWVudHMpOwogI2VuZGlmCiAjZW5k
aWYgLy8gRU5BQkxFKFRSRUVfREVCVUdHSU5HKQogCi0gICAgICAgIFBBTDo6cmVnaXN0ZXJOb3Rp
ZnlDYWxsYmFjaygiY29tLmFwcGxlLldlYktpdC5zaG93QWxsRG9jdW1lbnRzIiwgW10geworICAg
ICAgICBQQUw6OnJlZ2lzdGVyTm90aWZ5Q2FsbGJhY2soImNvbS5hcHBsZS5XZWJLaXQuc2hvd0Fs
bERvY3VtZW50cyJfcywgW10gewogICAgICAgICAgICAgdW5zaWduZWQgbnVtUGFnZXMgPSAwOwog
ICAgICAgICAgICAgUGFnZTo6Zm9yRWFjaFBhZ2UoWyZudW1QYWdlc10oUGFnZSYpIHsKICAgICAg
ICAgICAgICAgICArK251bVBhZ2VzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vTG9jYWxpemVkU3RyaW5ncy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6
ZWRTdHJpbmdzLmNwcAppbmRleCBjZjVkMGUwMjZjZGY4MzM3MjJlNTFjYWMwYmNjN2YxMzRhNjI1
ZTllLi44YTdlOGVmNmJjZTIzYzFmODRhZDQwMzA2Y2Q2ZjVmNWM5MGU1OGRhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcApAQCAtNjU1LDcgKzY1NSw3
IEBAIFN0cmluZyBBWFdlZWtGaWVsZFRleHQoKQogICAgIHJldHVybiBXRUJfVUlfU1RSSU5HKCJ3
ZWVrIGFuZCB5ZWFyIGZpZWxkIiwgImFjY2Vzc2liaWxpdHkgcm9sZSBkZXNjcmlwdGlvbiBmb3Ig
YSB0aW1lIGZpZWxkLiIpOwogfQogCi1TdHJpbmcgQVhBUklBQ29udGVudEdyb3VwVGV4dChjb25z
dCBTdHJpbmcmIGFyaWFUeXBlKQorU3RyaW5nIEFYQVJJQUNvbnRlbnRHcm91cFRleHQoU3RyaW5n
VmlldyBhcmlhVHlwZSkKIHsKICAgICBpZiAoYXJpYVR5cGUgPT0gIkFSSUFBcHBsaWNhdGlvbkFs
ZXJ0IikKICAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkcoImFsZXJ0IiwgIkFuIEFSSUEgYWNj
ZXNzaWJpbGl0eSBncm91cCB0aGF0IGFjdHMgYXMgYW4gYWxlcnQuIik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmgKaW5kZXggYjE4MWYxZWQ4YTBiODhjMWZjZmNk
MGU4NjE3MjM0YmIyOTQ5M2RhZS4uYTIwYjU4OGU2OTM3MTY5YTEwNjdkMzlkN2MxMDlmMzQ1OWU4
YzM5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5n
cy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuaApAQCAt
MTk1LDcgKzE5NSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBTdHJpbmcgQVhNb250aEZp
ZWxkVGV4dCgpOwogICAgIFN0cmluZyBBWE51bWJlckZpZWxkVGV4dCgpOwogICAgIFN0cmluZyBB
WFdlZWtGaWVsZFRleHQoKTsKLSAgICBTdHJpbmcgQVhBUklBQ29udGVudEdyb3VwVGV4dChjb25z
dCBTdHJpbmcmIGFyaWFUeXBlKTsKKyAgICBTdHJpbmcgQVhBUklBQ29udGVudEdyb3VwVGV4dChT
dHJpbmdWaWV3IGFyaWFUeXBlKTsKICAgICBTdHJpbmcgQVhIb3Jpem9udGFsUnVsZURlc2NyaXB0
aW9uVGV4dCgpOwogICAgIFN0cmluZyBBWE1hcmtUZXh0KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1Bhc3RlYm9hcmQuaAppbmRleCBhZWJhMGEzYjQ0ZDg2NjZlY2RiMjIxYjMzNTcwZDRjY2RhNTY2
NDI5Li4xY2Y0MTA4ZjA4ZTYzMDY1OGY5YTNlMzFmZTRiY2U5NjNlM2U0Y2NhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vUGFzdGVib2FyZC5oCkBAIC0zNzUsOSArMzc1LDkgQEAgZXh0ZXJuIE5TU3Ry
aW5nICpVSUNvbG9yUGJvYXJkVHlwZTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oTUFDKQotZXh0
ZXJuIGNvbnN0IGNoYXIqIGNvbnN0IFdlYkFyY2hpdmVQYm9hcmRUeXBlOwotZXh0ZXJuIGNvbnN0
IGNoYXIqIGNvbnN0IFdlYlVSTE5hbWVQYm9hcmRUeXBlOwotZXh0ZXJuIGNvbnN0IGNoYXIqIGNv
bnN0IFdlYlVSTHNXaXRoVGl0bGVzUGJvYXJkVHlwZTsKK2V4dGVybiBjb25zdCBBU0NJSUxpdGVy
YWwgV2ViQXJjaGl2ZVBib2FyZFR5cGU7CitleHRlcm4gY29uc3QgQVNDSUlMaXRlcmFsIFdlYlVS
TE5hbWVQYm9hcmRUeXBlOworZXh0ZXJuIGNvbnN0IEFTQ0lJTGl0ZXJhbCBXZWJVUkxzV2l0aFRp
dGxlc1Bib2FyZFR5cGU7CiAjZW5kaWYKIAogI2lmICFQTEFURk9STShHVEspCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0ZWJvYXJkQ3VzdG9tRGF0YS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZEN1c3RvbURhdGEuaAppbmRleCAyYmU4MWQyOTM4
YTNkYmQwOTAyNmNhNmVjNjRhYzMyODdlNmFiYzAzLi4yNTZmNDQ1NDI5MDMyYmI0MmYzMTNkOTIw
YWZiZmZkMWIwMjNhNzdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QYXN0
ZWJvYXJkQ3VzdG9tRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9h
cmRDdXN0b21EYXRhLmgKQEAgLTc2LDcgKzc2LDcgQEAgcHVibGljOgogICAgIHZvaWQgY2xlYXIo
Y29uc3QgU3RyaW5nJiB0eXBlKTsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIFdFQkNPUkVf
RVhQT1JUIHN0YXRpYyBjb25zdCBjaGFyKiBjb2NvYVR5cGUoKTsKKyAgICBXRUJDT1JFX0VYUE9S
VCBzdGF0aWMgQVNDSUlMaXRlcmFsIGNvY29hVHlwZSgpOwogI2VsaWYgUExBVEZPUk0oR1RLKQog
ICAgIHN0YXRpYyBjb25zdCBjaGFyKiBndGtUeXBlKCkgeyByZXR1cm4gIm9yZy53ZWJraXRndGsu
V2ViS2l0LmN1c3RvbS1wYXN0ZWJvYXJkLWRhdGEiOyB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL01lZGlhU2Vzc2lvbk1hbmFnZXJDb2Nv
YS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL01lZGlhU2Vzc2lvbk1h
bmFnZXJDb2NvYS5tbQppbmRleCBhMGU5MDJmMTJjZTdlYjE3Yzc3NmQ0M2MxMzVjODUzMjZjNzVj
ZmUwLi45NmNkZmFhMzYyMWM1Yzk2MmRhMGUwNTMwMmQ0ZWE5ZDljZDcwODdjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9NZWRpYVNlc3Npb25NYW5hZ2Vy
Q29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvTWVkaWFT
ZXNzaW9uTWFuYWdlckNvY29hLm1tCkBAIC00NTIsOCArNDUyLDggQEAgdm9pZCBNZWRpYVNlc3Np
b25NYW5hZ2VyQ29jb2E6OnVwZGF0ZU5vd1BsYXlpbmdJbmZvKCkKIAogICAgIGlmIChtX25vd1Bs
YXlpbmdNYW5hZ2VyLT5zZXROb3dQbGF5aW5nSW5mbygqbm93UGxheWluZ0luZm8pKSB7CiAjaWZk
ZWYgTE9HX0RJU0FCTEVECi0gICAgICAgIFN0cmluZyBzcmMgPSAic3JjIjsKLSAgICAgICAgU3Ry
aW5nIHRpdGxlID0gInRpdGxlIjsKKyAgICAgICAgU3RyaW5nIHNyYyA9ICJzcmMiX3M7CisgICAg
ICAgIFN0cmluZyB0aXRsZSA9ICJ0aXRsZSJfczsKICNlbHNlCiAgICAgICAgIFN0cmluZyBzcmMg
PSBub3dQbGF5aW5nSW5mby0+YXJ0d29yayA/IG5vd1BsYXlpbmdJbmZvLT5hcnR3b3JrLT5zcmMg
OiBTdHJpbmcoKTsKICAgICAgICAgU3RyaW5nIHRpdGxlID0gbm93UGxheWluZ0luZm8tPnRpdGxl
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvS2V5RXZlbnRDb2Nv
YS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL0tleUV2ZW50Q29jb2EubW0KaW5k
ZXggZjRlZWU2NWYwOTkzYjlkNGQ5YmQ2ZmU5ZWRhN2FkMGE2MTUzNzM1Mi4uMWM1ZTI0M2M4NTJh
Mzg1MDljODljYzU5MTljZmMxNDIwNjcxOTljMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vY29jb2EvS2V5RXZlbnRDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9jb2NvYS9LZXlFdmVudENvY29hLm1tCkBAIC0yMjAsNyArMjIwLDcgQEAgU3RyaW5nIGtl
eUlkZW50aWZpZXJGb3JDaGFyQ29kZSh1bmljaGFyIGNoYXJDb2RlKQogCiAgICAgICAgIC8vICJB
bHQiCiAgICAgICAgIGNhc2UgTlNNZW51RnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4g
IkFsdCI7CisgICAgICAgICAgICByZXR1cm4gIkFsdCJfczsKIAogICAgICAgICAvLyAiQXBwcyIK
ICAgICAgICAgLy8gIkJyb3dzZXJCYWNrIgpAQCAtMjMzLDcgKzIzMyw3IEBAIFN0cmluZyBrZXlJ
ZGVudGlmaWVyRm9yQ2hhckNvZGUodW5pY2hhciBjaGFyQ29kZSkKIAogICAgICAgICAvLyAiQ2xl
YXIiCiAgICAgICAgIGNhc2UgTlNDbGVhckxpbmVGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJl
dHVybiAiQ2xlYXIiOworICAgICAgICAgICAgcmV0dXJuICJDbGVhciJfczsKIAogICAgICAgICAv
LyAiQ29kZUlucHV0IgogICAgICAgICAvLyAiQ29tcG9zZSIKQEAgLTI0NSwxMDAgKzI0NSwxMDAg
QEAgU3RyaW5nIGtleUlkZW50aWZpZXJGb3JDaGFyQ29kZSh1bmljaGFyIGNoYXJDb2RlKQogCiAg
ICAgICAgIC8vICJEb3duIgogICAgICAgICBjYXNlIE5TRG93bkFycm93RnVuY3Rpb25LZXk6Ci0g
ICAgICAgICAgICByZXR1cm4gIkRvd24iOworICAgICAgICAgICAgcmV0dXJuICJEb3duIl9zOwog
ICAgICAgICAvLyAiRW5kIgogICAgICAgICBjYXNlIE5TRW5kRnVuY3Rpb25LZXk6Ci0gICAgICAg
ICAgICByZXR1cm4gIkVuZCI7CisgICAgICAgICAgICByZXR1cm4gIkVuZCJfczsKICAgICAgICAg
Ly8gIkVudGVyIgogICAgICAgICBjYXNlIDB4MzogY2FzZSAweEE6IGNhc2UgMHhEOiAvLyBNYWNp
bnRvc2ggY2FsbHMgdGhlIG9uZSBvbiB0aGUgbWFpbiBrZXlib2FyZCBSZXR1cm4sIGJ1dCBXaW5k
b3dzIGNhbGxzIGl0IEVudGVyLCBzbyB3ZSdsbCBkbyB0aGUgc2FtZSBmb3IgdGhlIERPTQotICAg
ICAgICAgICAgcmV0dXJuICJFbnRlciI7CisgICAgICAgICAgICByZXR1cm4gIkVudGVyIl9zOwog
CiAgICAgICAgIC8vICJFcmFzZUVvZiIKIAogICAgICAgICAvLyAiRXhlY3V0ZSIKICAgICAgICAg
Y2FzZSBOU0V4ZWN1dGVGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiRXhlY3V0ZSI7
CisgICAgICAgICAgICByZXR1cm4gIkV4ZWN1dGUiX3M7CiAKICAgICAgICAgLy8gIkV4c2VsIgog
CiAgICAgICAgIC8vICJGMSIKICAgICAgICAgY2FzZSBOU0YxRnVuY3Rpb25LZXk6Ci0gICAgICAg
ICAgICByZXR1cm4gIkYxIjsKKyAgICAgICAgICAgIHJldHVybiAiRjEiX3M7CiAgICAgICAgIC8v
ICJGMiIKICAgICAgICAgY2FzZSBOU0YyRnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4g
IkYyIjsKKyAgICAgICAgICAgIHJldHVybiAiRjIiX3M7CiAgICAgICAgIC8vICJGMyIKICAgICAg
ICAgY2FzZSBOU0YzRnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkYzIjsKKyAgICAg
ICAgICAgIHJldHVybiAiRjMiX3M7CiAgICAgICAgIC8vICJGNCIKICAgICAgICAgY2FzZSBOU0Y0
RnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkY0IjsKKyAgICAgICAgICAgIHJldHVy
biAiRjQiX3M7CiAgICAgICAgIC8vICJGNSIKICAgICAgICAgY2FzZSBOU0Y1RnVuY3Rpb25LZXk6
Ci0gICAgICAgICAgICByZXR1cm4gIkY1IjsKKyAgICAgICAgICAgIHJldHVybiAiRjUiX3M7CiAg
ICAgICAgIC8vICJGNiIKICAgICAgICAgY2FzZSBOU0Y2RnVuY3Rpb25LZXk6Ci0gICAgICAgICAg
ICByZXR1cm4gIkY2IjsKKyAgICAgICAgICAgIHJldHVybiAiRjYiX3M7CiAgICAgICAgIC8vICJG
NyIKICAgICAgICAgY2FzZSBOU0Y3RnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkY3
IjsKKyAgICAgICAgICAgIHJldHVybiAiRjciX3M7CiAgICAgICAgIC8vICJGOCIKICAgICAgICAg
Y2FzZSBOU0Y4RnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkY4IjsKKyAgICAgICAg
ICAgIHJldHVybiAiRjgiX3M7CiAgICAgICAgIC8vICJGOSIKICAgICAgICAgY2FzZSBOU0Y5RnVu
Y3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkY5IjsKKyAgICAgICAgICAgIHJldHVybiAi
RjkiX3M7CiAgICAgICAgIC8vICJGMTAiCiAgICAgICAgIGNhc2UgTlNGMTBGdW5jdGlvbktleToK
LSAgICAgICAgICAgIHJldHVybiAiRjEwIjsKKyAgICAgICAgICAgIHJldHVybiAiRjEwIl9zOwog
ICAgICAgICAvLyAiRjExIgogICAgICAgICBjYXNlIE5TRjExRnVuY3Rpb25LZXk6Ci0gICAgICAg
ICAgICByZXR1cm4gIkYxMSI7CisgICAgICAgICAgICByZXR1cm4gIkYxMSJfczsKICAgICAgICAg
Ly8gIkYxMiIKICAgICAgICAgY2FzZSBOU0YxMkZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0
dXJuICJGMTIiOworICAgICAgICAgICAgcmV0dXJuICJGMTIiX3M7CiAgICAgICAgIC8vICJGMTMi
CiAgICAgICAgIGNhc2UgTlNGMTNGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiRjEz
IjsKKyAgICAgICAgICAgIHJldHVybiAiRjEzIl9zOwogICAgICAgICAvLyAiRjE0IgogICAgICAg
ICBjYXNlIE5TRjE0RnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkYxNCI7CisgICAg
ICAgICAgICByZXR1cm4gIkYxNCJfczsKICAgICAgICAgLy8gIkYxNSIKICAgICAgICAgY2FzZSBO
U0YxNUZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJGMTUiOworICAgICAgICAgICAg
cmV0dXJuICJGMTUiX3M7CiAgICAgICAgIC8vICJGMTYiCiAgICAgICAgIGNhc2UgTlNGMTZGdW5j
dGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiRjE2IjsKKyAgICAgICAgICAgIHJldHVybiAi
RjE2Il9zOwogICAgICAgICAvLyAiRjE3IgogICAgICAgICBjYXNlIE5TRjE3RnVuY3Rpb25LZXk6
Ci0gICAgICAgICAgICByZXR1cm4gIkYxNyI7CisgICAgICAgICAgICByZXR1cm4gIkYxNyJfczsK
ICAgICAgICAgLy8gIkYxOCIKICAgICAgICAgY2FzZSBOU0YxOEZ1bmN0aW9uS2V5OgotICAgICAg
ICAgICAgcmV0dXJuICJGMTgiOworICAgICAgICAgICAgcmV0dXJuICJGMTgiX3M7CiAgICAgICAg
IC8vICJGMTkiCiAgICAgICAgIGNhc2UgTlNGMTlGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJl
dHVybiAiRjE5IjsKKyAgICAgICAgICAgIHJldHVybiAiRjE5Il9zOwogICAgICAgICAvLyAiRjIw
IgogICAgICAgICBjYXNlIE5TRjIwRnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkYy
MCI7CisgICAgICAgICAgICByZXR1cm4gIkYyMCJfczsKICAgICAgICAgLy8gIkYyMSIKICAgICAg
ICAgY2FzZSBOU0YyMUZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJGMjEiOworICAg
ICAgICAgICAgcmV0dXJuICJGMjEiX3M7CiAgICAgICAgIC8vICJGMjIiCiAgICAgICAgIGNhc2Ug
TlNGMjJGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiRjIyIjsKKyAgICAgICAgICAg
IHJldHVybiAiRjIyIl9zOwogICAgICAgICAvLyAiRjIzIgogICAgICAgICBjYXNlIE5TRjIzRnVu
Y3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkYyMyI7CisgICAgICAgICAgICByZXR1cm4g
IkYyMyJfczsKICAgICAgICAgLy8gIkYyNCIKICAgICAgICAgY2FzZSBOU0YyNEZ1bmN0aW9uS2V5
OgotICAgICAgICAgICAgcmV0dXJuICJGMjQiOworICAgICAgICAgICAgcmV0dXJuICJGMjQiX3M7
CiAKICAgICAgICAgLy8gIkZpbmFsTW9kZSIKIAogICAgICAgICAvLyAiRmluZCIKICAgICAgICAg
Y2FzZSBOU0ZpbmRGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiRmluZCI7CisgICAg
ICAgICAgICByZXR1cm4gIkZpbmQiX3M7CiAKICAgICAgICAgLy8gIkZ1bGxXaWR0aCIKICAgICAg
ICAgLy8gIkhhbGZXaWR0aCIKQEAgLTM0NywxNiArMzQ3LDE2IEBAIFN0cmluZyBrZXlJZGVudGlm
aWVyRm9yQ2hhckNvZGUodW5pY2hhciBjaGFyQ29kZSkKIAogICAgICAgICAvLyAiSGVscCIKICAg
ICAgICAgY2FzZSBOU0hlbHBGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiSGVscCI7
CisgICAgICAgICAgICByZXR1cm4gIkhlbHAiX3M7CiAKICAgICAgICAgLy8gIkhpcmFnYW5hIgog
CiAgICAgICAgIC8vICJIb21lIgogICAgICAgICBjYXNlIE5TSG9tZUZ1bmN0aW9uS2V5OgotICAg
ICAgICAgICAgcmV0dXJuICJIb21lIjsKKyAgICAgICAgICAgIHJldHVybiAiSG9tZSJfczsKICAg
ICAgICAgLy8gIkluc2VydCIKICAgICAgICAgY2FzZSBOU0luc2VydEZ1bmN0aW9uS2V5OgotICAg
ICAgICAgICAgcmV0dXJuICJJbnNlcnQiOworICAgICAgICAgICAgcmV0dXJuICJJbnNlcnQiX3M7
CiAKICAgICAgICAgLy8gIkphcGFuZXNlSGlyYWdhbmEiCiAgICAgICAgIC8vICJKYXBhbmVzZUth
dGFrYW5hIgpAQCAtMzcxLDcgKzM3MSw3IEBAIFN0cmluZyBrZXlJZGVudGlmaWVyRm9yQ2hhckNv
ZGUodW5pY2hhciBjaGFyQ29kZSkKIAogICAgICAgICAvLyAiTGVmdCIKICAgICAgICAgY2FzZSBO
U0xlZnRBcnJvd0Z1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJMZWZ0IjsKKyAgICAg
ICAgICAgIHJldHVybiAiTGVmdCJfczsKIAogICAgICAgICAvLyAiTWV0YSIKICAgICAgICAgLy8g
Ik1lZGlhTmV4dFRyYWNrIgpAQCAtMzgxLDU5ICszODEsNTkgQEAgU3RyaW5nIGtleUlkZW50aWZp
ZXJGb3JDaGFyQ29kZSh1bmljaGFyIGNoYXJDb2RlKQogCiAgICAgICAgIC8vICJNb2RlQ2hhbmdl
IgogICAgICAgICBjYXNlIE5TTW9kZVN3aXRjaEZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0
dXJuICJNb2RlQ2hhbmdlIjsKKyAgICAgICAgICAgIHJldHVybiAiTW9kZUNoYW5nZSJfczsKIAog
ICAgICAgICAvLyAiTm9uY29udmVydCIKICAgICAgICAgLy8gIk51bUxvY2siCiAKICAgICAgICAg
Ly8gIlBhZ2VEb3duIgogICAgICAgICBjYXNlIE5TUGFnZURvd25GdW5jdGlvbktleToKLSAgICAg
ICAgICAgIHJldHVybiAiUGFnZURvd24iOworICAgICAgICAgICAgcmV0dXJuICJQYWdlRG93biJf
czsKICAgICAgICAgLy8gIlBhZ2VVcCIKICAgICAgICAgY2FzZSBOU1BhZ2VVcEZ1bmN0aW9uS2V5
OgotICAgICAgICAgICAgcmV0dXJuICJQYWdlVXAiOworICAgICAgICAgICAgcmV0dXJuICJQYWdl
VXAiX3M7CiAKICAgICAgICAgLy8gIlBhc3RlIgogCiAgICAgICAgIC8vICJQYXVzZSIKICAgICAg
ICAgY2FzZSBOU1BhdXNlRnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIlBhdXNlIjsK
KyAgICAgICAgICAgIHJldHVybiAiUGF1c2UiX3M7CiAKICAgICAgICAgLy8gIlBsYXkiCiAgICAg
ICAgIC8vICJQcmV2aW91c0NhbmRpZGF0ZSIKIAogICAgICAgICAvLyAiUHJpbnRTY3JlZW4iCiAg
ICAgICAgIGNhc2UgTlNQcmludFNjcmVlbkZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJu
ICJQcmludFNjcmVlbiI7CisgICAgICAgICAgICByZXR1cm4gIlByaW50U2NyZWVuIl9zOwogCiAg
ICAgICAgIC8vICJQcm9jZXNzIgogICAgICAgICAvLyAiUHJvcHMiCiAKICAgICAgICAgLy8gIlJp
Z2h0IgogICAgICAgICBjYXNlIE5TUmlnaHRBcnJvd0Z1bmN0aW9uS2V5OgotICAgICAgICAgICAg
cmV0dXJuICJSaWdodCI7CisgICAgICAgICAgICByZXR1cm4gIlJpZ2h0Il9zOwogCiAgICAgICAg
IC8vICJSb21hbkNoYXJhY3RlcnMiCiAKICAgICAgICAgLy8gIlNjcm9sbCIKICAgICAgICAgY2Fz
ZSBOU1Njcm9sbExvY2tGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiU2Nyb2xsIjsK
KyAgICAgICAgICAgIHJldHVybiAiU2Nyb2xsIl9zOwogICAgICAgICAvLyAiU2VsZWN0IgogICAg
ICAgICBjYXNlIE5TU2VsZWN0RnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIlNlbGVj
dCI7CisgICAgICAgICAgICByZXR1cm4gIlNlbGVjdCJfczsKIAogICAgICAgICAvLyAiU2VsZWN0
TWVkaWEiCiAgICAgICAgIC8vICJTaGlmdCIKIAogICAgICAgICAvLyAiU3RvcCIKICAgICAgICAg
Y2FzZSBOU1N0b3BGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiU3RvcCI7CisgICAg
ICAgICAgICByZXR1cm4gIlN0b3AiX3M7CiAgICAgICAgIC8vICJVcCIKICAgICAgICAgY2FzZSBO
U1VwQXJyb3dGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiVXAiOworICAgICAgICAg
ICAgcmV0dXJuICJVcCJfczsKICAgICAgICAgLy8gIlVuZG8iCiAgICAgICAgIGNhc2UgTlNVbmRv
RnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIlVuZG8iOworICAgICAgICAgICAgcmV0
dXJuICJVbmRvIl9zOwogCiAgICAgICAgIC8vICJWb2x1bWVEb3duIgogICAgICAgICAvLyAiVm9s
dW1lTXV0ZSIKQEAgLTQ0MywzOCArNDQzLDM4IEBAIFN0cmluZyBrZXlJZGVudGlmaWVyRm9yQ2hh
ckNvZGUodW5pY2hhciBjaGFyQ29kZSkKIAogICAgICAgICAvLyBNb3JlIGZ1bmN0aW9uIGtleXMs
IG5vdCBpbiB0aGUga2V5IGlkZW50aWZpZXIgc3BlY2lmaWNhdGlvbi4KICAgICAgICAgY2FzZSBO
U0YyNUZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJGMjUiOworICAgICAgICAgICAg
cmV0dXJuICJGMjUiX3M7CiAgICAgICAgIGNhc2UgTlNGMjZGdW5jdGlvbktleToKLSAgICAgICAg
ICAgIHJldHVybiAiRjI2IjsKKyAgICAgICAgICAgIHJldHVybiAiRjI2Il9zOwogICAgICAgICBj
YXNlIE5TRjI3RnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4gIkYyNyI7CisgICAgICAg
ICAgICByZXR1cm4gIkYyNyJfczsKICAgICAgICAgY2FzZSBOU0YyOEZ1bmN0aW9uS2V5OgotICAg
ICAgICAgICAgcmV0dXJuICJGMjgiOworICAgICAgICAgICAgcmV0dXJuICJGMjgiX3M7CiAgICAg
ICAgIGNhc2UgTlNGMjlGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJldHVybiAiRjI5IjsKKyAg
ICAgICAgICAgIHJldHVybiAiRjI5Il9zOwogICAgICAgICBjYXNlIE5TRjMwRnVuY3Rpb25LZXk6
Ci0gICAgICAgICAgICByZXR1cm4gIkYzMCI7CisgICAgICAgICAgICByZXR1cm4gIkYzMCJfczsK
ICAgICAgICAgY2FzZSBOU0YzMUZ1bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJGMzEi
OworICAgICAgICAgICAgcmV0dXJuICJGMzEiX3M7CiAgICAgICAgIGNhc2UgTlNGMzJGdW5jdGlv
bktleToKLSAgICAgICAgICAgIHJldHVybiAiRjMyIjsKKyAgICAgICAgICAgIHJldHVybiAiRjMy
Il9zOwogICAgICAgICBjYXNlIE5TRjMzRnVuY3Rpb25LZXk6Ci0gICAgICAgICAgICByZXR1cm4g
IkYzMyI7CisgICAgICAgICAgICByZXR1cm4gIkYzMyJfczsKICAgICAgICAgY2FzZSBOU0YzNEZ1
bmN0aW9uS2V5OgotICAgICAgICAgICAgcmV0dXJuICJGMzQiOworICAgICAgICAgICAgcmV0dXJu
ICJGMzQiX3M7CiAgICAgICAgIGNhc2UgTlNGMzVGdW5jdGlvbktleToKLSAgICAgICAgICAgIHJl
dHVybiAiRjM1IjsKKyAgICAgICAgICAgIHJldHVybiAiRjM1Il9zOwogCiAgICAgICAgIC8vIFR1
cm4gMHg3RiBpbnRvIDB4MDgsIGJlY2F1c2UgYmFja3NwYWNlIG5lZWRzIHRvIGFsd2F5cyBiZSAw
eDA4LgogICAgICAgICBjYXNlIDB4N0Y6Ci0gICAgICAgICAgICByZXR1cm4gIlUrMDAwOCI7Cisg
ICAgICAgICAgICByZXR1cm4gIlUrMDAwOCJfczsKICAgICAgICAgLy8gU3RhbmRhcmQgc2F5cyB0
aGF0IERFTCBiZWNvbWVzIFUrMDA3Ri4KICAgICAgICAgY2FzZSBOU0RlbGV0ZUZ1bmN0aW9uS2V5
OgotICAgICAgICAgICAgcmV0dXJuICJVKzAwN0YiOworICAgICAgICAgICAgcmV0dXJuICJVKzAw
N0YiX3M7CiAKICAgICAgICAgLy8gQWx3YXlzIHVzZSAweDA5IGZvciB0YWIgaW5zdGVhZCBvZiBB
cHBLaXQncyBiYWNrdGFiIGNoYXJhY3Rlci4KICAgICAgICAgY2FzZSBOU0JhY2tUYWJDaGFyYWN0
ZXI6Ci0gICAgICAgICAgICByZXR1cm4gIlUrMDAwOSI7CisgICAgICAgICAgICByZXR1cm4gIlUr
MDAwOSJfczsKIAogICAgICAgICBjYXNlIE5TQmVnaW5GdW5jdGlvbktleToKICAgICAgICAgY2Fz
ZSBOU0JyZWFrRnVuY3Rpb25LZXk6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9jb2NvYS9QYXN0ZWJvYXJkQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2Nv
YS9QYXN0ZWJvYXJkQ29jb2EubW0KaW5kZXggMDY5NjFmYmE0OGFkOTFiNDIzYmNhOTg1YjZjMmU1
YzYyMTAxZmMyZi4uNTk4NDJmMTI2OWM1YjVlZGYwOTViZDljYjhlZTMzMjZkNjg3YWUxYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvUGFzdGVib2FyZENvY29hLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Bhc3RlYm9hcmRDb2NvYS5tbQpA
QCAtMTA0LDI1ICsxMDQsMjUgQEAgc3RhdGljIGNvbnN0IGNoYXIqIGltYWdlVHlwZVRvTUlNRVR5
cGUoSW1hZ2VUeXBlIHR5cGUpCiAgICAgfQogfQogCi1zdGF0aWMgY29uc3QgY2hhciogaW1hZ2VU
eXBlVG9GYWtlRmlsZW5hbWUoSW1hZ2VUeXBlIHR5cGUpCitzdGF0aWMgQVNDSUlMaXRlcmFsIGlt
YWdlVHlwZVRvRmFrZUZpbGVuYW1lKEltYWdlVHlwZSB0eXBlKQogewogICAgIHN3aXRjaCAodHlw
ZSkgewogICAgIGNhc2UgSW1hZ2VUeXBlOjpJbnZhbGlkOgogICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIHJldHVybiBBU0NJSUxp
dGVyYWw6Om51bGwoKTsKICAgICBjYXNlIEltYWdlVHlwZTo6VElGRjoKICNpZiBQTEFURk9STShN
QUMpCi0gICAgICAgIHJldHVybiAiaW1hZ2UucG5nIjsgLy8gRm9yIFdlYiBjb21wYXRpYmlsaXR5
LCB3ZSBwcmV0ZW5kIHRvIGhhdmUgUE5HIGluc3RlYWQuCisgICAgICAgIHJldHVybiAiaW1hZ2Uu
cG5nIl9zOyAvLyBGb3IgV2ViIGNvbXBhdGliaWxpdHksIHdlIHByZXRlbmQgdG8gaGF2ZSBQTkcg
aW5zdGVhZC4KICNlbHNlCiAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIEFTQ0lJTGl0ZXJhbDo6bnVsbCgpOwogI2Vu
ZGlmCiAgICAgY2FzZSBJbWFnZVR5cGU6OlBORzoKLSAgICAgICAgcmV0dXJuICJpbWFnZS5wbmci
OworICAgICAgICByZXR1cm4gImltYWdlLnBuZyJfczsKICAgICBjYXNlIEltYWdlVHlwZTo6SlBF
RzoKLSAgICAgICAgcmV0dXJuICJpbWFnZS5qcGVnIjsKKyAgICAgICAgcmV0dXJuICJpbWFnZS5q
cGVnIl9zOwogICAgIGNhc2UgSW1hZ2VUeXBlOjpHSUY6Ci0gICAgICAgIHJldHVybiAiaW1hZ2Uu
Z2lmIjsKKyAgICAgICAgcmV0dXJuICJpbWFnZS5naWYiX3M7CiAgICAgfQogfQogCkBAIC0yMzQs
NyArMjM0LDcgQEAgdm9pZCBQYXN0ZWJvYXJkOjpyZWFkKFBhc3RlYm9hcmRGaWxlUmVhZGVyJiBy
ZWFkZXIsIHN0ZDo6b3B0aW9uYWw8c2l6ZV90PiBpdGVtSW4KICAgICAgICAgZm9yIChhdXRvIGNv
Y29hVHlwZSA6IGluZm8ucGxhdGZvcm1UeXBlc0J5RmlkZWxpdHkpIHsKICAgICAgICAgICAgIGF1
dG8gaW1hZ2VUeXBlID0gY29jb2FUeXBlVG9JbWFnZVR5cGUoY29jb2FUeXBlKTsKICAgICAgICAg
ICAgIGF1dG8qIG1pbWVUeXBlID0gaW1hZ2VUeXBlVG9NSU1FVHlwZShpbWFnZVR5cGUpOwotICAg
ICAgICAgICAgaWYgKCFtaW1lVHlwZSB8fCAhcmVhZGVyLnNob3VsZFJlYWRCdWZmZXIobWltZVR5
cGUpKQorICAgICAgICAgICAgaWYgKCFtaW1lVHlwZSB8fCAhcmVhZGVyLnNob3VsZFJlYWRCdWZm
ZXIoU3RyaW5nIHsgbWltZVR5cGUgfSkpCiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAg
ICAgICAgICBhdXRvIGJ1ZmZlciA9IHJlYWRCdWZmZXIoaXRlbUluZGV4LCBjb2NvYVR5cGUpOwog
I2lmIFBMQVRGT1JNKE1BQykKQEAgLTI0Miw3ICsyNDIsNyBAQCB2b2lkIFBhc3RlYm9hcmQ6OnJl
YWQoUGFzdGVib2FyZEZpbGVSZWFkZXImIHJlYWRlciwgc3RkOjpvcHRpb25hbDxzaXplX3Q+IGl0
ZW1JbgogICAgICAgICAgICAgICAgIGJ1ZmZlciA9IGNvbnZlcnRUSUZGVG9QTkcoYnVmZmVyLnJl
bGVhc2VOb25OdWxsKCkpOwogI2VuZGlmCiAgICAgICAgICAgICBpZiAoYnVmZmVyKSB7Ci0gICAg
ICAgICAgICAgICAgcmVhZGVyLnJlYWRCdWZmZXIoaW1hZ2VUeXBlVG9GYWtlRmlsZW5hbWUoaW1h
Z2VUeXBlKSwgbWltZVR5cGUsIGJ1ZmZlci5yZWxlYXNlTm9uTnVsbCgpKTsKKyAgICAgICAgICAg
ICAgICByZWFkZXIucmVhZEJ1ZmZlcihpbWFnZVR5cGVUb0Zha2VGaWxlbmFtZShpbWFnZVR5cGUp
LCBTdHJpbmcgeyBtaW1lVHlwZSB9LCBidWZmZXIucmVsZWFzZU5vbk51bGwoKSk7CiAgICAgICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Bhc3RlYm9hcmRDdXN0b21EYXRhQ29jb2EubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9QYXN0ZWJvYXJkQ3VzdG9tRGF0YUNvY29h
Lm1tCmluZGV4IDI2MjEyODQ0ZjIxMDRhNzc3Y2Y2NTU2ZDc1YTZlNWNhZWM5NzNkZTguLjNkZTUw
YTBlOTJjMjkwNGMxOWViNmRlYmRhNzE2ODJlZmI2ZDY3NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2NvY29hL1Bhc3RlYm9hcmRDdXN0b21EYXRhQ29jb2EubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvUGFzdGVib2FyZEN1c3RvbURhdGFDb2NvYS5t
bQpAQCAtMzAsOSArMzAsOSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNvbnN0IGNoYXIq
IFBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKQorQVNDSUlMaXRlcmFsIFBhc3RlYm9h
cmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKQogewotICAgIHJldHVybiAiY29tLmFwcGxlLldlYktp
dC5jdXN0b20tcGFzdGVib2FyZC1kYXRhIjsKKyAgICByZXR1cm4gImNvbS5hcHBsZS5XZWJLaXQu
Y3VzdG9tLXBhc3RlYm9hcmQtZGF0YSJfczsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm91ckNDLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb3VyQ0MuaAppbmRleCBiMzdkMDUwZTlj
MGMzNjc3MDdkYWUwYjZhY2NiMWJjMzdmOGVhYzEzLi42NmZiM2RlMDcxMTUxMzA2Nzg4ZGMxMjZj
MjNmNGJjODYxMjU4MzY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Gb3VyQ0MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb3Vy
Q0MuaApAQCAtODUsNyArODUsNyBAQCBuYW1lc3BhY2UgV1RGIHsKIHRlbXBsYXRlPHR5cGVuYW1l
PiBzdHJ1Y3QgTG9nQXJndW1lbnQ7CiAKIHRlbXBsYXRlPD4gc3RydWN0IExvZ0FyZ3VtZW50PFdl
YkNvcmU6OkZvdXJDQz4gewotICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoY29uc3QgV2ViQ29y
ZTo6Rm91ckNDJiBjb2RlKSB7IHJldHVybiBjb2RlLnN0cmluZygpLmRhdGEoKTsgfQorICAgIHN0
YXRpYyBTdHJpbmcgdG9TdHJpbmcoY29uc3QgV2ViQ29yZTo6Rm91ckNDJiBjb2RlKSB7IHJldHVy
biBTdHJpbmcgeyBjb2RlLnN0cmluZygpLmRhdGEoKSB9OyB9CiB9OwogCiB9IC8vIG5hbWVzcGFj
ZSBXVEYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2FuZ2xl
L0dyYXBoaWNzQ29udGV4dEdMQU5HTEUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5jcHAKaW5kZXggNjg2YzVmMjA5ODc2
N2ZkMmVhNTc1NDRlM2FjY2VlNGYyZTdiZTVkOC4uMjc0NjA5YTE1MDlhYjg3M2UzODYyMWM0ZWM1
NThjOGE0MjhjNTRmOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYW5nbGUvR3JhcGhpY3NDb250ZXh0R0xBTkdMRS5jcHAKQEAgLTUx
MCw4ICs1MTAsOSBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dEdMQU5HTEU6OnZhbGlkYXRlRGVwdGhT
dGVuY2lsKGNvbnN0IGNoYXIqIHBhY2tlZERlcHRoU3RlbmNpbAogICAgIC8vIEZJWE1FOiBTaW5j
ZSB0aGUgY29uc3RydWN0b3JzIG9mIHZhcmlvdXMgcGxhdGZvcm1zIGFyZSBub3Qgc2hhcmVkLCB3
ZSBpbml0aWFsaXplIHRoaXMgaGVyZS4KICAgICAvLyBVcG9uIGNvbnN0cnVjdGluZyB0aGUgY29u
dGV4dCwgYWx3YXlzIGluaXRpYWxpemUgdGhlIGV4dGVuc2lvbnMgdGhhdCB0aGUgV2ViR0xSZW5k
ZXJpbmdDb250ZXh0KiB3aWxsCiAgICAgLy8gdXNlIHRvIHR1cm4gb24gZmVhdHVyZSBmbGFncy4K
LSAgICBpZiAoc3VwcG9ydHNFeHRlbnNpb24ocGFja2VkRGVwdGhTdGVuY2lsRXh0ZW5zaW9uKSkg
ewotICAgICAgICBlbnN1cmVFeHRlbnNpb25FbmFibGVkKHBhY2tlZERlcHRoU3RlbmNpbEV4dGVu
c2lvbik7CisgICAgU3RyaW5nIHBhY2tlZERlcHRoU3RlbmNpbEV4dGVuc2lvblN0cmluZyB7IHBh
Y2tlZERlcHRoU3RlbmNpbEV4dGVuc2lvbiB9OworICAgIGlmIChzdXBwb3J0c0V4dGVuc2lvbihw
YWNrZWREZXB0aFN0ZW5jaWxFeHRlbnNpb25TdHJpbmcpKSB7CisgICAgICAgIGVuc3VyZUV4dGVu
c2lvbkVuYWJsZWQocGFja2VkRGVwdGhTdGVuY2lsRXh0ZW5zaW9uU3RyaW5nKTsKICAgICAgICAg
bV9pbnRlcm5hbERlcHRoU3RlbmNpbEZvcm1hdCA9IEdMX0RFUFRIMjRfU1RFTkNJTDhfT0VTOwog
ICAgIH0gZWxzZQogICAgICAgICBtX2ludGVybmFsRGVwdGhTdGVuY2lsRm9ybWF0ID0gR0xfREVQ
VEhfQ09NUE9ORU5UMTY7CkBAIC01MjgsMTcgKzUyOSwxNyBAQCB2b2lkIEdyYXBoaWNzQ29udGV4
dEdMQU5HTEU6OnZhbGlkYXRlRGVwdGhTdGVuY2lsKGNvbnN0IGNoYXIqIHBhY2tlZERlcHRoU3Rl
bmNpbAogCiAgICAgaWYgKGF0dHJzLmFudGlhbGlhcykgewogICAgICAgICAvLyBGSVhNRTogbXVz
dCBhZGp1c3QgdGhpcyB3aGVuIHVwZ3JhZGluZyB0byBXZWJHTCAyLjAgLyBPcGVuR0wgRVMgMy4w
IHN1cHBvcnQuCi0gICAgICAgIGlmICghc3VwcG9ydHNFeHRlbnNpb24oIkdMX0FOR0xFX2ZyYW1l
YnVmZmVyX211bHRpc2FtcGxlIikgfHwgIXN1cHBvcnRzRXh0ZW5zaW9uKCJHTF9BTkdMRV9mcmFt
ZWJ1ZmZlcl9ibGl0IikgfHwgIXN1cHBvcnRzRXh0ZW5zaW9uKCJHTF9PRVNfcmdiOF9yZ2JhOCIp
KSB7CisgICAgICAgIGlmICghc3VwcG9ydHNFeHRlbnNpb24oIkdMX0FOR0xFX2ZyYW1lYnVmZmVy
X211bHRpc2FtcGxlIl9zKSB8fCAhc3VwcG9ydHNFeHRlbnNpb24oIkdMX0FOR0xFX2ZyYW1lYnVm
ZmVyX2JsaXQiX3MpIHx8ICFzdXBwb3J0c0V4dGVuc2lvbigiR0xfT0VTX3JnYjhfcmdiYTgiX3Mp
KSB7CiAgICAgICAgICAgICBhdHRycy5hbnRpYWxpYXMgPSBmYWxzZTsKICAgICAgICAgICAgIHNl
dENvbnRleHRBdHRyaWJ1dGVzKGF0dHJzKTsKICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAg
IGVuc3VyZUV4dGVuc2lvbkVuYWJsZWQoIkdMX0FOR0xFX2ZyYW1lYnVmZmVyX211bHRpc2FtcGxl
Iik7Ci0gICAgICAgICAgICBlbnN1cmVFeHRlbnNpb25FbmFibGVkKCJHTF9BTkdMRV9mcmFtZWJ1
ZmZlcl9ibGl0Iik7Ci0gICAgICAgICAgICBlbnN1cmVFeHRlbnNpb25FbmFibGVkKCJHTF9PRVNf
cmdiOF9yZ2JhOCIpOworICAgICAgICAgICAgZW5zdXJlRXh0ZW5zaW9uRW5hYmxlZCgiR0xfQU5H
TEVfZnJhbWVidWZmZXJfbXVsdGlzYW1wbGUiX3MpOworICAgICAgICAgICAgZW5zdXJlRXh0ZW5z
aW9uRW5hYmxlZCgiR0xfQU5HTEVfZnJhbWVidWZmZXJfYmxpdCJfcyk7CisgICAgICAgICAgICBl
bnN1cmVFeHRlbnNpb25FbmFibGVkKCJHTF9PRVNfcmdiOF9yZ2JhOCJfcyk7CiAgICAgICAgIH0K
ICAgICB9IGVsc2UgaWYgKGF0dHJzLnByZXNlcnZlRHJhd2luZ0J1ZmZlcikgewogICAgICAgICAv
LyBOZWVkZWQgZm9yIHByZXNlcnZlRHJhd2luZ0J1ZmZlcjp0cnVlIHN1cHBvcnQgd2l0aG91dCBh
bnRpYWxpYXNpbmcuCi0gICAgICAgIGVuc3VyZUV4dGVuc2lvbkVuYWJsZWQoIkdMX0FOR0xFX2Zy
YW1lYnVmZmVyX2JsaXQiKTsKKyAgICAgICAgZW5zdXJlRXh0ZW5zaW9uRW5hYmxlZCgiR0xfQU5H
TEVfZnJhbWVidWZmZXJfYmxpdCJfcyk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vQ0RNUHJpdmF0ZU1lZGlhU291
cmNlQVZGT2JqQy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9DRE1Qcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCmluZGV4IDJkYWY4ZWFhYzkwOGNl
YmJiOTRkYTMzMDY0NGE1ZTc3MTdiMzY3MzkuLmFlYTJlOGFiOTkwMTk1ODJlNGRkNDkzOGUyMDM3
ZjAyMDY1ZDI0MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9DRE1Qcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9DRE1Qcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDLm1tCkBAIC00Niw3ICs0Niw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
YXV0byBDRE1Qcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpwYXJzZUtleVN5c3RlbShjb25zdCBT
dHJpbmcmIGtleVN5c3RlbSkgLT4gc3RkOjpvcHRpb25hbDxLZXlTeXN0ZW1QYXJhbWV0ZXJzPgog
ewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxSZWd1bGFyRXhwcmVzc2lvbj4ga2V5U3lzdGVt
UkUoIl5jb21cXC5hcHBsZVxcLmZwc1xcLlsyM11fXFxkKyg/OixcXGQrKSokIiwgSlNDOjpZYXJy
OjpUZXh0Q2FzZUluc2Vuc2l0aXZlKTsKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UmVndWxh
ckV4cHJlc3Npb24+IGtleVN5c3RlbVJFKCJeY29tXFwuYXBwbGVcXC5mcHNcXC5bMjNdX1xcZCso
PzosXFxkKykqJCJfcywgSlNDOjpZYXJyOjpUZXh0Q2FzZUluc2Vuc2l0aXZlKTsKIAogICAgIGlm
IChrZXlTeXN0ZW1SRS5nZXQoKS5tYXRjaChrZXlTeXN0ZW0pIDwgMCkKICAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24uaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXllclByaXZh
dGVBVkZvdW5kYXRpb24uaAppbmRleCBhODFiOGUyMjY5YTY4YjQzNmE1MzI2MDU1YmUwZmFmMTA1
NzAyYzIxLi4wMTMyYTJmODQ3OGE2ZGVhOTdlOGViOWQ3Y2M3NmMwYWM1ZWRmNjQ3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQ
bGF5ZXJQcml2YXRlQVZGb3VuZGF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWVyUHJpdmF0ZUFWRm91bmRhdGlvbi5oCkBA
IC0zMTEsNyArMzExLDcgQEAgcHJvdGVjdGVkOgogICAgIE1lZGlhUGxheWVyKiBwbGF5ZXIoKSB7
IHJldHVybiBtX3BsYXllcjsgfQogICAgIGNvbnN0IE1lZGlhUGxheWVyKiBwbGF5ZXIoKSBjb25z
dCB7IHJldHVybiBtX3BsYXllcjsgfQogCi0gICAgU3RyaW5nIGVuZ2luZURlc2NyaXB0aW9uKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIkFWRm91bmRhdGlvbiI7IH0KKyAgICBTdHJpbmcgZW5n
aW5lRGVzY3JpcHRpb24oKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAiQVZGb3VuZGF0aW9uIl9z
OyB9CiAgICAgbG9uZyBwbGF0Zm9ybUVycm9yQ29kZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IGFzc2V0RXJyb3JDb2RlKCk7IH0KIAogICAgIHZvaWQgdHJhY2tNb2RlQ2hhbmdlZCgpIG92ZXJy
aWRlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvQ0RNSW5zdGFuY2VGYWlyUGxheVN0cmVhbWluZ0FWRk9iakMubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1JbnN0YW5j
ZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQy5tbQppbmRleCA3NmU2MzFiNWZhYTIzZDc0NTJjNjkw
MDdmY2U0YzU5MTVlZDFkZTk0Li4xMzA2OGY4OWFlZGFkMzU5ZTMyNjJiYmM2ZGRkYTRjMmRhNDQ0
YTBhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9DRE1JbnN0YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQy5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9DRE1JbnN0
YW5jZUZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQy5tbQpAQCAtODkxLDcgKzg5MSw3IEBAIHZvaWQg
Q0RNSW5zdGFuY2VTZXNzaW9uRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDOjp1cGRhdGVMaWNlbnNl
KGNvbnN0IFN0cmluZyYsIExpCiAgICAgICAgICAgICBpZiAoIW9iamVjdCkKICAgICAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAKLSAgICAgICAgICAgIGF1dG8ga2V5SURTdHJpbmcgPSBvYmpl
Y3QtPmdldFN0cmluZygia2V5SUQiKTsKKyAgICAgICAgICAgIGF1dG8ga2V5SURTdHJpbmcgPSBv
YmplY3QtPmdldFN0cmluZygia2V5SUQiX3MpOwogICAgICAgICAgICAgaWYgKCFrZXlJRFN0cmlu
ZykKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKQEAgLTkxMSw4ICs5MTEsOCBAQCB2
b2lkIENETUluc3RhbmNlU2Vzc2lvbkZhaXJQbGF5U3RyZWFtaW5nQVZGT2JqQzo6dXBkYXRlTGlj
ZW5zZShjb25zdCBTdHJpbmcmLCBMaQogCiAgICAgICAgICAgICBhdXRvJiByZXF1ZXN0ID0gbV9j
dXJyZW50UmVxdWVzdC52YWx1ZSgpLnJlcXVlc3RzW2ZvdW5kSW5kZXhdOwogCi0gICAgICAgICAg
ICBhdXRvIHBheWxvYWRGaW5kUmVzdWx0cyA9IG9iamVjdC0+ZmluZCgicGF5bG9hZCIpOwotICAg
ICAgICAgICAgYXV0byBlcnJvckZpbmRSZXN1bHRzID0gb2JqZWN0LT5maW5kKCJlcnJvciIpOwor
ICAgICAgICAgICAgYXV0byBwYXlsb2FkRmluZFJlc3VsdHMgPSBvYmplY3QtPmZpbmQoInBheWxv
YWQiX3MpOworICAgICAgICAgICAgYXV0byBlcnJvckZpbmRSZXN1bHRzID0gb2JqZWN0LT5maW5k
KCJlcnJvciJfcyk7CiAgICAgICAgICAgICBib29sIGhhc1BheWxvYWQgPSBwYXlsb2FkRmluZFJl
c3VsdHMgIT0gb2JqZWN0LT5lbmQoKTsKICAgICAgICAgICAgIGJvb2wgaGFzRXJyb3IgPSBlcnJv
ckZpbmRSZXN1bHRzICE9IG9iamVjdC0+ZW5kKCk7CiAKQEAgLTEyNTMsOCArMTI1Myw4IEBAIHZv
aWQgQ0RNSW5zdGFuY2VTZXNzaW9uRmFpclBsYXlTdHJlYW1pbmdBVkZPYmpDOjpkaWRQcm92aWRl
UmVxdWVzdHMoVmVjdG9yPFJldGFpCiAgICAgICAgICAgICBhdXRvIGVudHJ5ID0gSlNPTjo6T2Jq
ZWN0OjpjcmVhdGUoKTsKICAgICAgICAgICAgIGF1dG8mIGtleUlEID0gcmVxdWVzdERhdGEuZmly
c3Q7CiAgICAgICAgICAgICBhdXRvJiBwYXlsb2FkID0gcmVxdWVzdERhdGEuc2Vjb25kOwotICAg
ICAgICAgICAgZW50cnktPnNldFN0cmluZygia2V5SUQiLCBiYXNlNjRFbmNvZGVUb1N0cmluZyhr
ZXlJRC0+bWFrZUNvbnRpZ3VvdXMoKS0+ZGF0YSgpLCBrZXlJRC0+c2l6ZSgpKSk7Ci0gICAgICAg
ICAgICBlbnRyeS0+c2V0U3RyaW5nKCJwYXlsb2FkIiwgYmFzZTY0RW5jb2RlVG9TdHJpbmcocGF5
bG9hZC5nZXQoKS5ieXRlcywgcGF5bG9hZC5nZXQoKS5sZW5ndGgpKTsKKyAgICAgICAgICAgIGVu
dHJ5LT5zZXRTdHJpbmcoImtleUlEIl9zLCBiYXNlNjRFbmNvZGVUb1N0cmluZyhrZXlJRC0+bWFr
ZUNvbnRpZ3VvdXMoKS0+ZGF0YSgpLCBrZXlJRC0+c2l6ZSgpKSk7CisgICAgICAgICAgICBlbnRy
eS0+c2V0U3RyaW5nKCJwYXlsb2FkIl9zLCBiYXNlNjRFbmNvZGVUb1N0cmluZyhwYXlsb2FkLmdl
dCgpLmJ5dGVzLCBwYXlsb2FkLmdldCgpLmxlbmd0aCkpOwogICAgICAgICAgICAgcmVxdWVzdEpT
T04tPnB1c2hPYmplY3QoV1RGTW92ZShlbnRyeSkpOwogICAgICAgICB9CiAgICAgICAgIGF1dG8g
cmVxdWVzdEJ1ZmZlciA9IHV0ZjhCdWZmZXIocmVxdWVzdEpTT04tPnRvSlNPTlN0cmluZygpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlv
bi9vYmpjL1NvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9i
akMubW0KaW5kZXggNmJhNmI5YmYxMmFkM2M5ZjM4OTA3YzJmZDM2ZmU4N2E1NTNiMmE0NC4uMGU4
ZWE2NGYwODM4ZTYyYWRlNWNmODk3MmNhZDE4OWFjNTVkMzU2OCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVy
UHJpdmF0ZUFWRk9iakMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL29iamMvU291cmNlQnVmZmVyUHJpdmF0ZUFWRk9iakMubW0KQEAgLTYwMCw3
ICs2MDAsNyBAQCB2b2lkIFNvdXJjZUJ1ZmZlclByaXZhdGVBVkZPYmpDOjpkaWRQcm92aWRlQ29u
dGVudEtleVJlcXVlc3RJbml0aWFsaXphdGlvbkRhdGFGbwogICAgIH0KIAogICAgIG1fa2V5SURz
ID0gV1RGTW92ZShrZXlJRHMudmFsdWUoKSk7Ci0gICAgcGxheWVyLT5pbml0aWFsaXphdGlvbkRh
dGFFbmNvdW50ZXJlZCgic2luZiIsIG1faW5pdERhdGEtPnRyeUNyZWF0ZUFycmF5QnVmZmVyKCkp
OworICAgIHBsYXllci0+aW5pdGlhbGl6YXRpb25EYXRhRW5jb3VudGVyZWQoInNpbmYiX3MsIG1f
aW5pdERhdGEtPnRyeUNyZWF0ZUFycmF5QnVmZmVyKCkpOwogCiAgICAgbV93YWl0aW5nRm9yS2V5
ID0gdHJ1ZTsKICAgICBwbGF5ZXItPndhaXRpbmdGb3JLZXlDaGFuZ2VkKCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxhdGZvcm1QYXN0ZWJvYXJkSU9TLm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1BsYXRmb3JtUGFzdGVib2FyZElPUy5tbQppbmRl
eCBkNjRiOTY4MzQ3Mzc4MzJkMmVlZDY4ODIzNjAxMjI3MDY1NTg1M2ZjLi4yZTA2ODU3ZWYyNmI4
YmZmZjlhYTE5MTgwNzg0ZmRhYzFhMmIyNzVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9pb3MvUGxhdGZvcm1QYXN0ZWJvYXJkSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2lvcy9QbGF0Zm9ybVBhc3RlYm9hcmRJT1MubW0KQEAgLTE1OSw3ICsxNTksNyBA
QCBzdGF0aWMgVmVjdG9yPFN0cmluZz4gd2ViU2FmZVR5cGVzKE5TQXJyYXk8TlNTdHJpbmcgKj4g
KnBsYXRmb3JtVHlwZXMsIFBsYXRmb3JtUAogewogICAgIExpc3RIYXNoU2V0PFN0cmluZz4gZG9t
UGFzdGVib2FyZFR5cGVzOwogICAgIGZvciAoTlNTdHJpbmcgKnR5cGUgaW4gcGxhdGZvcm1UeXBl
cykgewotICAgICAgICBpZiAoW3R5cGUgaXNFcXVhbFRvU3RyaW5nOkAoUGFzdGVib2FyZEN1c3Rv
bURhdGE6OmNvY29hVHlwZSgpKV0pCisgICAgICAgIGlmIChbdHlwZSBpc0VxdWFsVG9TdHJpbmc6
QChQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkuY2hhcmFjdGVycygpKV0pCiAgICAg
ICAgICAgICBjb250aW51ZTsKIAogICAgICAgICBpZiAoUGFzdGVib2FyZDo6aXNTYWZlVHlwZUZv
ckRPTVRvUmVhZEFuZFdyaXRlKHR5cGUpKSB7CkBAIC01MDEsNyArNTAxLDcgQEAgQUxMT1dfREVQ
UkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKICAgICBQYXN0ZWJvYXJkQ3VzdG9tRGF0YSBjdXN0
b21EYXRhOwogICAgIGN1c3RvbURhdGEuc2V0T3JpZ2luKGNvbnRlbnQuY29udGVudE9yaWdpbik7
Ci0gICAgW3JlcHJlc2VudGF0aW9uc1RvUmVnaXN0ZXIgYWRkRGF0YTpjdXN0b21EYXRhLmNyZWF0
ZVNoYXJlZEJ1ZmZlcigpLT5jcmVhdGVOU0RhdGEoKS5nZXQoKSBmb3JUeXBlOkAoUGFzdGVib2Fy
ZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpKV07CisgICAgW3JlcHJlc2VudGF0aW9uc1RvUmVnaXN0
ZXIgYWRkRGF0YTpjdXN0b21EYXRhLmNyZWF0ZVNoYXJlZEJ1ZmZlcigpLT5jcmVhdGVOU0RhdGEo
KS5nZXQoKSBmb3JUeXBlOkAoUGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpLmNoYXJh
Y3RlcnMoKSldOwogCiAgICAgcmVnaXN0ZXJJdGVtVG9QYXN0ZWJvYXJkKHJlcHJlc2VudGF0aW9u
c1RvUmVnaXN0ZXIuZ2V0KCksIG1fcGFzdGVib2FyZC5nZXQoKSk7CiB9CkBAIC02MDgsNyArNjA4
LDcgQEAgVmVjdG9yPFN0cmluZz4gUGxhdGZvcm1QYXN0ZWJvYXJkOjp0eXBlc1NhZmVGb3JET01U
b1JlYWRBbmRXcml0ZShjb25zdCBTdHJpbmcmIG8KICAgICB9CiAjZW5kaWYgLy8gUEFTVEVCT0FS
RF9TVVBQT1JUU19QUkVTRU5UQVRJT05fU1RZTEVfQU5EX1RFQU1fREFUQQogCi0gICAgaWYgKE5T
RGF0YSAqc2VyaWFsaXplZEN1c3RvbURhdGEgPSBbbV9wYXN0ZWJvYXJkIGRhdGFGb3JQYXN0ZWJv
YXJkVHlwZTpAKFBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKSldKSB7CisgICAgaWYg
KE5TRGF0YSAqc2VyaWFsaXplZEN1c3RvbURhdGEgPSBbbV9wYXN0ZWJvYXJkIGRhdGFGb3JQYXN0
ZWJvYXJkVHlwZTpAKFBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKS5jaGFyYWN0ZXJz
KCkpXSkgewogICAgICAgICBhdXRvIGRhdGEgPSBQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6ZnJvbVNo
YXJlZEJ1ZmZlcihTaGFyZWRCdWZmZXI6OmNyZWF0ZShzZXJpYWxpemVkQ3VzdG9tRGF0YSkuZ2V0
KCkpOwogICAgICAgICBpZiAoZGF0YS5vcmlnaW4oKSA9PSBvcmlnaW4pIHsKICAgICAgICAgICAg
IGZvciAoYXV0byYgdHlwZSA6IGRhdGEub3JkZXJlZFR5cGVzKCkpCkBAIC02NDUsNyArNjQ1LDcg
QEAgc3RhdGljIFJldGFpblB0cjxXZWJJdGVtUHJvdmlkZXJSZWdpc3RyYXRpb25JbmZvTGlzdD4g
Y3JlYXRlSXRlbVByb3ZpZGVyUmVnaXN0cmEKICAgICAgICAgICAgIE5TRGljdGlvbmFyeSAqdGVh
bURhdGFEaWN0aW9uYXJ5ID0gQHsgQChvcmlnaW5LZXlGb3JUZWFtRGF0YSkgOiBkYXRhLm9yaWdp
bigpLCBAKGN1c3RvbVR5cGVzS2V5Rm9yVGVhbURhdGEpIDogY3JlYXRlTlNBcnJheShkYXRhLm9y
ZGVyZWRUeXBlcygpKS5nZXQoKSB9OwogICAgICAgICAgICAgaWYgKE5TRGF0YSAqdGVhbURhdGEg
PSBbTlNLZXllZEFyY2hpdmVyIGFyY2hpdmVkRGF0YVdpdGhSb290T2JqZWN0OnRlYW1EYXRhRGlj
dGlvbmFyeSByZXF1aXJpbmdTZWN1cmVDb2Rpbmc6WUVTIGVycm9yOm51bGxwdHJdKSB7CiAgICAg
ICAgICAgICAgICAgW3JlcHJlc2VudGF0aW9uc1RvUmVnaXN0ZXIgc2V0VGVhbURhdGE6dGVhbURh
dGFdOwotICAgICAgICAgICAgICAgIFtyZXByZXNlbnRhdGlvbnNUb1JlZ2lzdGVyIGFkZERhdGE6
c2VyaWFsaXplZFNoYXJlZEJ1ZmZlci5nZXQoKSBmb3JUeXBlOkAoUGFzdGVib2FyZEN1c3RvbURh
dGE6OmNvY29hVHlwZSgpKV07CisgICAgICAgICAgICAgICAgW3JlcHJlc2VudGF0aW9uc1RvUmVn
aXN0ZXIgYWRkRGF0YTpzZXJpYWxpemVkU2hhcmVkQnVmZmVyLmdldCgpIGZvclR5cGU6QChQYXN0
ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkuY2hhcmFjdGVycygpKV07CiAgICAgICAgICAg
ICB9CiAgICAgICAgIH0KICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9pb3MvV2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZC5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2lvcy9XZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkLm1tCmluZGV4IGQyYTFkYmMzYTg5Zjkx
YWVjMmEzMjIwMzg2NGEwY2VmMzE5MjMyZDMuLjc1YTc2ZjQzOTk0ZWU2NWU4MTM5Yzg3NzY2YzMz
Yjc4YTRhM2QyMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9XZWJJ
dGVtUHJvdmlkZXJQYXN0ZWJvYXJkLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lv
cy9XZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkLm1tCkBAIC03NjEsNyArNzYxLDcgQEAgQUxMT1df
REVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KIAogICAgIC8vIEZvciBjb21wYXRpYmlsaXR5
IHdpdGggRGF0YVRyYW5zZmVyIEFQSXMsIGFkZGl0aW9uYWxseSBsb2FkIHdlYi1leHBvc2VkIHR5
cGVzLiBTaW5jZSB0aGlzIGlzIHRoZSBvbmx5IGNoYW5jZSB0bwogICAgIC8vIGZhdWx0IGluIGFu
eSBkYXRhIGF0IGFsbCwgd2UgbmVlZCB0byBsb2FkIHVwIGZyb250IGFueSBpbmZvcm1hdGlvbiB0
aGF0IHRoZSBwYWdlIG1heSBhc2sgZm9yIGxhdGVyIGRvd24gdGhlIGxpbmUuCi0gICAgTlNTdHJp
bmcgKmN1c3RvbVBhc3RlYm9hcmREYXRhVVRJID0gQChQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29j
b2FUeXBlKCkpOworICAgIE5TU3RyaW5nICpjdXN0b21QYXN0ZWJvYXJkRGF0YVVUSSA9IEAoUGFz
dGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpLmNoYXJhY3RlcnMoKSk7CiAgICAgZm9yIChO
U1N0cmluZyAqcmVnaXN0ZXJlZFR5cGVJZGVudGlmaWVyIGluIHJlZ2lzdGVyZWRUeXBlSWRlbnRp
ZmllcnMpIHsKICAgICAgICAgaWYgKFtyZWdpc3RlcmVkVHlwZUlkZW50aWZpZXIgaXNFcXVhbFRv
U3RyaW5nOmhpZ2hlc3RGaWRlbGl0eUNvbnRlbnRUeXBlXQogICAgICAgICAgICAgfHwgW3JlZ2lz
dGVyZWRUeXBlSWRlbnRpZmllciBpc0VxdWFsVG9TdHJpbmc6aGlnaGVzdEZpZGVsaXR5U3VwcG9y
dGVkVHlwZV0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9EYXRhRGV0
ZWN0b3JIaWdobGlnaHQubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRGF0YURldGVj
dG9ySGlnaGxpZ2h0Lm1tCmluZGV4IDNmMDY5NDA0NjAyOTRkY2ZlOGE4MzAyOGQxZmQ3ZDQ2NmRh
ODUzOTUuLjE1ZGI4N2IxZDk4YmEzODFlYTk1MWIxZjM0ZjhlNjAwODI5ODI1YTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9EYXRhRGV0ZWN0b3JIaWdobGlnaHQubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RhdGFEZXRlY3RvckhpZ2hsaWdodC5t
bQpAQCAtMTUzLDcgKzE1Myw3IEBAIHZvaWQgRGF0YURldGVjdG9ySGlnaGxpZ2h0OjpmYWRlSW4o
KQogICAgIFthbmltYXRpb24gc2V0VG9WYWx1ZTpAMV07CiAKICAgICBhdXRvIHBsYXRmb3JtQW5p
bWF0aW9uID0gUGxhdGZvcm1DQUFuaW1hdGlvbkNvY29hOjpjcmVhdGUoYW5pbWF0aW9uLmdldCgp
KTsKLSAgICBkb3duY2FzdDxHcmFwaGljc0xheWVyQ0E+KGxheWVyKCkpLnBsYXRmb3JtQ0FMYXll
cigpLT5hZGRBbmltYXRpb25Gb3JLZXkoIkZhZGVIaWdobGlnaHRJbiIsIHBsYXRmb3JtQW5pbWF0
aW9uLmdldCgpKTsKKyAgICBkb3duY2FzdDxHcmFwaGljc0xheWVyQ0E+KGxheWVyKCkpLnBsYXRm
b3JtQ0FMYXllcigpLT5hZGRBbmltYXRpb25Gb3JLZXkoIkZhZGVIaWdobGlnaHRJbiJfcywgcGxh
dGZvcm1BbmltYXRpb24uZ2V0KCkpOwogfQogCiB2b2lkIERhdGFEZXRlY3RvckhpZ2hsaWdodDo6
ZmFkZU91dCgpCkBAIC0xNzAsNyArMTcwLDcgQEAgdm9pZCBEYXRhRGV0ZWN0b3JIaWdobGlnaHQ6
OmZhZGVPdXQoKQogICAgIH1dOwogCiAgICAgYXV0byBwbGF0Zm9ybUFuaW1hdGlvbiA9IFBsYXRm
b3JtQ0FBbmltYXRpb25Db2NvYTo6Y3JlYXRlKGFuaW1hdGlvbi5nZXQoKSk7Ci0gICAgZG93bmNh
c3Q8R3JhcGhpY3NMYXllckNBPihsYXllcigpKS5wbGF0Zm9ybUNBTGF5ZXIoKS0+YWRkQW5pbWF0
aW9uRm9yS2V5KCJGYWRlSGlnaGxpZ2h0T3V0IiwgcGxhdGZvcm1BbmltYXRpb24uZ2V0KCkpOwor
ICAgIGRvd25jYXN0PEdyYXBoaWNzTGF5ZXJDQT4obGF5ZXIoKSkucGxhdGZvcm1DQUxheWVyKCkt
PmFkZEFuaW1hdGlvbkZvcktleSgiRmFkZUhpZ2hsaWdodE91dCJfcywgcGxhdGZvcm1BbmltYXRp
b24uZ2V0KCkpOwogICAgIFtDQVRyYW5zYWN0aW9uIGNvbW1pdF07CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QYXN0ZWJvYXJkTWFjLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWFjL1Bhc3RlYm9hcmRNYWMubW0KaW5kZXggYTJjMjUwYWEyYmVmOGRl
OTY0YmFmMDkyNDBkNWUwZWM0MTUwZWY4NC4uZGMyZjVjNTNjNjU0MWUxOThiM2E4NGU2YzVhODA1
ZDFkZGZlMGQ4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Bhc3Rl
Ym9hcmRNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1Bhc3RlYm9hcmRN
YWMubW0KQEAgLTUwLDEyICs1MCwxMiBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNvbnN0
IGNoYXIqIGNvbnN0IFdlYkFyY2hpdmVQYm9hcmRUeXBlID0gIkFwcGxlIFdlYiBBcmNoaXZlIHBh
c3RlYm9hcmQgdHlwZSI7Ci1jb25zdCBjaGFyKiBjb25zdCBXZWJVUkxOYW1lUGJvYXJkVHlwZSA9
ICJwdWJsaWMudXJsLW5hbWUiOwotY29uc3QgY2hhciogY29uc3QgV2ViVVJMc1dpdGhUaXRsZXNQ
Ym9hcmRUeXBlID0gIldlYlVSTHNXaXRoVGl0bGVzUGJvYXJkVHlwZSI7Citjb25zdCBBU0NJSUxp
dGVyYWwgV2ViQXJjaGl2ZVBib2FyZFR5cGUgPSAiQXBwbGUgV2ViIEFyY2hpdmUgcGFzdGVib2Fy
ZCB0eXBlIl9zOworY29uc3QgQVNDSUlMaXRlcmFsIFdlYlVSTE5hbWVQYm9hcmRUeXBlID0gInB1
YmxpYy51cmwtbmFtZSJfczsKK2NvbnN0IEFTQ0lJTGl0ZXJhbCBXZWJVUkxzV2l0aFRpdGxlc1Bi
b2FyZFR5cGUgPSAiV2ViVVJMc1dpdGhUaXRsZXNQYm9hcmRUeXBlIl9zOwogCi1jb25zdCBjaGFy
IFdlYlNtYXJ0UGFzdGVQYm9hcmRUeXBlW10gPSAiTmVYVCBzbWFydCBwYXN0ZSBwYXN0ZWJvYXJk
IHR5cGUiOwotY29uc3QgY2hhciBXZWJVUkxQYm9hcmRUeXBlW10gPSAicHVibGljLnVybCI7Citj
b25zdCBBU0NJSUxpdGVyYWwgV2ViU21hcnRQYXN0ZVBib2FyZFR5cGUgPSAiTmVYVCBzbWFydCBw
YXN0ZSBwYXN0ZWJvYXJkIHR5cGUiX3M7Citjb25zdCBBU0NJSUxpdGVyYWwgV2ViVVJMUGJvYXJk
VHlwZSA9ICJwdWJsaWMudXJsIl9zOwogCiBzdGF0aWMgY29uc3QgVmVjdG9yPFN0cmluZz4gd3Jp
dGFibGVUeXBlc0ZvclVSTCgpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tYWMvUGxhdGZvcm1FdmVudEZhY3RvcnlNYWMubW0KaW5kZXggMzVmYzZhZjU5YjZhZmNiNGY5
NTU0YzBmMmE4NGEzMzQyODM5NmU1ZS4uYjdiNmUzNzQ3YjBmY2Q5NzhjODc0ZTAxODJmMjM1NjNj
ZTVkMmQ4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3Jt
RXZlbnRGYWN0b3J5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0
Zm9ybUV2ZW50RmFjdG9yeU1hYy5tbQpAQCAtNTAyLDcgKzUwMiw3IEBAIFN0cmluZyBrZXlJZGVu
dGlmaWVyRm9yS2V5RXZlbnQoTlNFdmVudCogZXZlbnQpCiAgICAgTlNTdHJpbmcgKnMgPSBbZXZl
bnQgY2hhcmFjdGVyc0lnbm9yaW5nTW9kaWZpZXJzXTsKICAgICBpZiAoW3MgbGVuZ3RoXSAhPSAx
KSB7CiAgICAgICAgIExPRyhFdmVudHMsICJyZWNlaXZlZCBhbiB1bmV4cGVjdGVkIG51bWJlciBv
ZiBjaGFyYWN0ZXJzIGluIGtleSBldmVudDogJXUiLCBbcyBsZW5ndGhdKTsKLSAgICAgICAgcmV0
dXJuICJVbmlkZW50aWZpZWQiOworICAgICAgICByZXR1cm4gIlVuaWRlbnRpZmllZCJfczsKICAg
ICB9CiAgICAgcmV0dXJuIGtleUlkZW50aWZpZXJGb3JDaGFyQ29kZShbcyBjaGFyYWN0ZXJBdElu
ZGV4OjBdKTsKIH0KQEAgLTgwOSwyMCArODA5LDIwIEBAIHB1YmxpYzoKIAogICAgICAgICAvLyBB
bHdheXMgdXNlIDEzIGZvciBFbnRlci9SZXR1cm4gLS0gd2UgZG9uJ3Qgd2FudCB0byB1c2UgQXBw
S2l0J3MgZGlmZmVyZW50IGNoYXJhY3RlciBmb3IgRW50ZXIuCiAgICAgICAgIGlmIChtX3dpbmRv
d3NWaXJ0dWFsS2V5Q29kZSA9PSBWS19SRVRVUk4pIHsKLSAgICAgICAgICAgIG1fdGV4dCA9ICJc
ciI7Ci0gICAgICAgICAgICBtX3VubW9kaWZpZWRUZXh0ID0gIlxyIjsKKyAgICAgICAgICAgIG1f
dGV4dCA9ICJcciJfczsKKyAgICAgICAgICAgIG1fdW5tb2RpZmllZFRleHQgPSBtX3RleHQ7CiAg
ICAgICAgIH0KIAogICAgICAgICAvLyBBcHBLaXQgc2V0cyB0ZXh0IHRvICJceDdGIiBmb3IgYmFj
a3NwYWNlLCBidXQgdGhlIGNvcnJlY3QgS2V5Ym9hcmRFdmVudCBjaGFyYWN0ZXIgY29kZSBpcyA4
LgogICAgICAgICBpZiAobV93aW5kb3dzVmlydHVhbEtleUNvZGUgPT0gVktfQkFDSykgewotICAg
ICAgICAgICAgbV90ZXh0ID0gIlx4OCI7Ci0gICAgICAgICAgICBtX3VubW9kaWZpZWRUZXh0ID0g
Ilx4OCI7CisgICAgICAgICAgICBtX3RleHQgPSAiXHg4Il9zOworICAgICAgICAgICAgbV91bm1v
ZGlmaWVkVGV4dCA9IG1fdGV4dDsKICAgICAgICAgfQogCiAgICAgICAgIC8vIEFsd2F5cyB1c2Ug
OSBmb3IgVGFiIC0tIHdlIGRvbid0IHdhbnQgdG8gdXNlIEFwcEtpdCdzIGRpZmZlcmVudCBjaGFy
YWN0ZXIgZm9yIHNoaWZ0LXRhYi4KICAgICAgICAgaWYgKG1fd2luZG93c1ZpcnR1YWxLZXlDb2Rl
ID09IFZLX1RBQikgewotICAgICAgICAgICAgbV90ZXh0ID0gIlx4OSI7Ci0gICAgICAgICAgICBt
X3VubW9kaWZpZWRUZXh0ID0gIlx4OSI7CisgICAgICAgICAgICBtX3RleHQgPSAiXHg5Il9zOwor
ICAgICAgICAgICAgbV91bm1vZGlmaWVkVGV4dCA9IG1fdGV4dDsKICAgICAgICAgfQogCiAgICAg
ICAgIC8vIE1hYyBzcGVjaWZpYy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21hYy9QbGF0Zm9ybVBhc3RlYm9hcmRNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
YWMvUGxhdGZvcm1QYXN0ZWJvYXJkTWFjLm1tCmluZGV4IGE3ZmU3MjU1NDM3NjY1ZThiOGEwYzc0
NTNkMzA0NzQ5ZDQ1NjJmNjcuLjQ2ZGI1N2RlZWE5ZDcyNjlhZWI0ZDg3N2QxOTE3ZDVkNjMwM2Rh
MzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9QbGF0Zm9ybVBhc3Rl
Ym9hcmRNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL1BsYXRmb3JtUGFz
dGVib2FyZE1hYy5tbQpAQCAtMjE3LDcgKzIxNyw3IEBAIEFMTE9XX0RFUFJFQ0FURURfREVDTEFS
QVRJT05TX0VORAogVmVjdG9yPFN0cmluZz4gUGxhdGZvcm1QYXN0ZWJvYXJkOjp0eXBlc1NhZmVG
b3JET01Ub1JlYWRBbmRXcml0ZShjb25zdCBTdHJpbmcmIG9yaWdpbikgY29uc3QKIHsKICAgICBM
aXN0SGFzaFNldDxTdHJpbmc+IGRvbVBhc3RlYm9hcmRUeXBlczsKLSAgICBpZiAoTlNEYXRhICpz
ZXJpYWxpemVkQ3VzdG9tRGF0YSA9IFttX3Bhc3RlYm9hcmQgZGF0YUZvclR5cGU6QChQYXN0ZWJv
YXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkpXSkgeworICAgIGlmIChOU0RhdGEgKnNlcmlhbGl6
ZWRDdXN0b21EYXRhID0gW21fcGFzdGVib2FyZCBkYXRhRm9yVHlwZTpAKFBhc3RlYm9hcmRDdXN0
b21EYXRhOjpjb2NvYVR5cGUoKS5jaGFyYWN0ZXJzKCkpXSkgewogICAgICAgICBhdXRvIGRhdGEg
PSBQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6ZnJvbVNoYXJlZEJ1ZmZlcihTaGFyZWRCdWZmZXI6OmNy
ZWF0ZShzZXJpYWxpemVkQ3VzdG9tRGF0YSkuZ2V0KCkpOwogICAgICAgICBpZiAoZGF0YS5vcmln
aW4oKSA9PSBvcmlnaW4pIHsKICAgICAgICAgICAgIGZvciAoYXV0byYgdHlwZSA6IGRhdGEub3Jk
ZXJlZFR5cGVzKCkpCkBAIC0yMjcsNyArMjI3LDcgQEAgVmVjdG9yPFN0cmluZz4gUGxhdGZvcm1Q
YXN0ZWJvYXJkOjp0eXBlc1NhZmVGb3JET01Ub1JlYWRBbmRXcml0ZShjb25zdCBTdHJpbmcmIG8K
IAogICAgIE5TQXJyYXk8TlNTdHJpbmcgKj4gKmFsbFR5cGVzID0gW21fcGFzdGVib2FyZCB0eXBl
c107CiAgICAgZm9yIChOU1N0cmluZyAqdHlwZSBpbiBhbGxUeXBlcykgewotICAgICAgICBpZiAo
W3R5cGUgaXNFcXVhbFRvU3RyaW5nOkAoUGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgp
KV0pCisgICAgICAgIGlmIChbdHlwZSBpc0VxdWFsVG9TdHJpbmc6QChQYXN0ZWJvYXJkQ3VzdG9t
RGF0YTo6Y29jb2FUeXBlKCkuY2hhcmFjdGVycygpKV0pCiAgICAgICAgICAgICBjb250aW51ZTsK
IAogICAgICAgICBpZiAoUGFzdGVib2FyZDo6aXNTYWZlVHlwZUZvckRPTVRvUmVhZEFuZFdyaXRl
KHR5cGUpKQpAQCAtMjU0LDcgKzI1NCw3IEBAIGludDY0X3QgUGxhdGZvcm1QYXN0ZWJvYXJkOjp3
cml0ZShjb25zdCBQYXN0ZWJvYXJkQ3VzdG9tRGF0YSYgZGF0YSkKIAogICAgIGJvb2wgc2hvdWxk
V3JpdGVDdXN0b21EYXRhID0gZGF0YS5oYXNTYW1lT3JpZ2luQ3VzdG9tRGF0YSgpIHx8ICFkYXRh
Lm9yaWdpbigpLmlzRW1wdHkoKTsKICAgICBpZiAoc2hvdWxkV3JpdGVDdXN0b21EYXRhKQotICAg
ICAgICBbdHlwZXMgYWRkT2JqZWN0OkAoUGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgp
KV07CisgICAgICAgIFt0eXBlcyBhZGRPYmplY3Q6QChQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29j
b2FUeXBlKCkuY2hhcmFjdGVycygpKV07CiAKICAgICBbbV9wYXN0ZWJvYXJkIGRlY2xhcmVUeXBl
czp0eXBlcyBvd25lcjpuaWxdOwogCkBAIC0yNzUsNyArMjc1LDcgQEAgaW50NjRfdCBQbGF0Zm9y
bVBhc3RlYm9hcmQ6OndyaXRlKGNvbnN0IFBhc3RlYm9hcmRDdXN0b21EYXRhJiBkYXRhKQogCiAg
ICAgaWYgKHNob3VsZFdyaXRlQ3VzdG9tRGF0YSkgewogICAgICAgICBpZiAoYXV0byBzZXJpYWxp
emVkQ3VzdG9tRGF0YSA9IGRhdGEuY3JlYXRlU2hhcmVkQnVmZmVyKCktPmNyZWF0ZU5TRGF0YSgp
KQotICAgICAgICAgICAgW21fcGFzdGVib2FyZCBzZXREYXRhOnNlcmlhbGl6ZWRDdXN0b21EYXRh
LmdldCgpIGZvclR5cGU6QChQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkpXTsKKyAg
ICAgICAgICAgIFttX3Bhc3RlYm9hcmQgc2V0RGF0YTpzZXJpYWxpemVkQ3VzdG9tRGF0YS5nZXQo
KSBmb3JUeXBlOkAoUGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpLmNoYXJhY3RlcnMo
KSldOwogICAgIH0KIAogICAgIHJldHVybiBjaGFuZ2VDb3VudCgpOwpAQCAtNDk5LDcgKzQ5OSw3
IEBAIHN0YXRpYyBSZXRhaW5QdHI8TlNQYXN0ZWJvYXJkSXRlbT4gY3JlYXRlUGFzdGVib2FyZEl0
ZW0oY29uc3QgUGFzdGVib2FyZEN1c3RvbURhCiAKICAgICBpZiAoZGF0YS5oYXNTYW1lT3JpZ2lu
Q3VzdG9tRGF0YSgpIHx8ICFkYXRhLm9yaWdpbigpLmlzRW1wdHkoKSkgewogICAgICAgICBpZiAo
YXV0byBzZXJpYWxpemVkQ3VzdG9tRGF0YSA9IGRhdGEuY3JlYXRlU2hhcmVkQnVmZmVyKCktPmNy
ZWF0ZU5TRGF0YSgpKQotICAgICAgICAgICAgW2l0ZW0gc2V0RGF0YTpzZXJpYWxpemVkQ3VzdG9t
RGF0YS5nZXQoKSBmb3JUeXBlOkAoUGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpKV07
CisgICAgICAgICAgICBbaXRlbSBzZXREYXRhOnNlcmlhbGl6ZWRDdXN0b21EYXRhLmdldCgpIGZv
clR5cGU6QChQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkuY2hhcmFjdGVycygpKV07
CiAgICAgfQogCiAgICAgZGF0YS5mb3JFYWNoUGxhdGZvcm1TdHJpbmdPckJ1ZmZlcihbJl0gKGF1
dG8mIHR5cGUsIGF1dG8mIHN0cmluZ09yQnVmZmVyKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tYWMvU3RyaW5nVXRpbGl0aWVzLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWFjL1N0cmluZ1V0aWxpdGllcy5tbQppbmRleCA3Y2QxYmQ4MGFlOWUzM2U3NTZmNjU5
MTIyNDBmN2VkNmNjMzNjNWI1Li45MmJlNjY3ZTYzZWIzMWY0MWQ3NzlhOTY2MmYxZmI3NTZmNDY1
NDNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvU3RyaW5nVXRpbGl0
aWVzLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9TdHJpbmdVdGlsaXRpZXMu
bW0KQEAgLTMzLDcgKzMzLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIAogc3RhdGljIFN0
cmluZyB3aWxkY2FyZFJlZ2V4UGF0dGVyblN0cmluZyhjb25zdCBTdHJpbmcmIHN0cmluZykKIHsK
LSAgICBTdHJpbmcgbWV0YUNoYXJhY3RlcnMgPSAiLnwrPygpW117fV4kIjsKKyAgICBTdHJpbmcg
bWV0YUNoYXJhY3RlcnMgPSAiLnwrPygpW117fV4kIl9zOwogICAgIFVDaGFyIGVzY2FwZUNoYXJh
Y3RlciA9ICdcXCc7CiAgICAgVUNoYXIgd2lsZGNhcmRDaGFyYWN0ZXIgPSAnKic7CiAgICAgCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVGhyZWFkQ2hlY2subW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVGhyZWFkQ2hlY2subW0KaW5kZXggZjE1MTA4OGNl
OTI1YTUwNmViNDY4YjIyMjFmYWYzMjc1MDMyYmE0Mi4uYmJkNzM0NDFlMDUwYjk2ODc1N2E0ZjVh
NmFkMTM0NjZiMWFkMDZkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFj
L1RocmVhZENoZWNrLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9UaHJlYWRD
aGVjay5tbQpAQCAtMTA2LDcgKzEwNiw3IEBAIHZvaWQgV2ViQ29yZVJlcG9ydFRocmVhZFZpb2xh
dGlvbihjb25zdCBjaGFyKiBmdW5jdGlvbiwgV2ViQ29yZTo6VGhyZWFkVmlvbGF0aW9uCiAgICAg
ICAgIGNhc2UgTm9UaHJlYWRDaGVjazoKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjYXNl
IExvZ09uRmlyc3RUaHJlYWRWaW9sYXRpb246Ci0gICAgICAgICAgICBpZiAobG9nZ2VkRnVuY3Rp
b25zLmdldCgpLmFkZChmdW5jdGlvbikuaXNOZXdFbnRyeSkgeworICAgICAgICAgICAgaWYgKGxv
Z2dlZEZ1bmN0aW9ucy5nZXQoKS5hZGQoU3RyaW5nIHsgZnVuY3Rpb24gfSkuaXNOZXdFbnRyeSkg
ewogICAgICAgICAgICAgICAgIE5TTG9nKEAiV2ViS2l0IFRocmVhZGluZyBWaW9sYXRpb24gLSAl
cyBjYWxsZWQgZnJvbSBzZWNvbmRhcnkgdGhyZWFkIiwgZnVuY3Rpb24pOwogICAgICAgICAgICAg
ICAgIE5TTG9nKEAiQWRkaXRpb25hbCB0aHJlYWRpbmcgdmlvbGF0aW9ucyBmb3IgdGhpcyBmdW5j
dGlvbiB3aWxsIG5vdCBiZSBsb2dnZWQuIik7CiAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVXNlckFnZW50TWFjLm1tIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWFjL1VzZXJBZ2VudE1hYy5tbQppbmRleCBlNjJhOTdmMTk5YWFjYzNjYTY5
MmQ4ZGE0YjIwOWQyOTk0ZTNhMGQxLi5lZGMwNzlmNGUwMjRhZjMwMWU0NWZhYTEwOTM1YThkYjNh
MmIyYzc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvVXNlckFnZW50
TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9Vc2VyQWdlbnRNYWMubW0K
QEAgLTM4LDcgKzM4LDcgQEAgU3RyaW5nIHN0YW5kYXJkVXNlckFnZW50V2l0aEFwcGxpY2F0aW9u
TmFtZShjb25zdCBTdHJpbmcmIGFwcGxpY2F0aW9uTmFtZSwgY29uc3QKICAgICBpZiAoIW9zVmVy
c2lvbi5zdGFydHNXaXRoKCIxMCIpKQogICAgICAgICBvc1ZlcnNpb24gPSAiMTBfMTVfNyJfczsK
ICAgICAKLSAgICBTdHJpbmcgYXBwTmFtZVN1ZmZpeCA9IGFwcGxpY2F0aW9uTmFtZS5pc0VtcHR5
KCkgPyAiIiA6IG1ha2VTdHJpbmcoIiAiLCBhcHBsaWNhdGlvbk5hbWUpOworICAgIFN0cmluZyBh
cHBOYW1lU3VmZml4ID0gYXBwbGljYXRpb25OYW1lLmlzRW1wdHkoKSA/IGVtcHR5U3RyaW5nKCkg
OiBtYWtlU3RyaW5nKCIgIiwgYXBwbGljYXRpb25OYW1lKTsKIAogICAgIHJldHVybiBtYWtlU3Ry
aW5nKCJNb3ppbGxhLzUuMCAoTWFjaW50b3NoOyBJbnRlbCBNYWMgT1MgWCAiLCBvc1ZlcnNpb24s
ICIpIEFwcGxlV2ViS2l0LzYwNS4xLjE1IChLSFRNTCwgbGlrZSBHZWNrbykiLCBhcHBOYW1lU3Vm
Zml4KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVz
b3VyY2VFcnJvckJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNv
dXJjZUVycm9yQmFzZS5jcHAKaW5kZXggNjdkMmVhYzA4ZmE3YjRiZjA2NGNjZGZhYmMyNDlmY2M0
NjI1MWNmZC4uZDAxOTNhYzZjOWI5NzRhYTJiZjFkNzE5NzlkM2U3MDE1YmMzMGQ5ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUVycm9yQmFzZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUVycm9yQmFz
ZS5jcHAKQEAgLTMyLDggKzMyLDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jb25zdCBj
aGFyKiBjb25zdCBlcnJvckRvbWFpbldlYktpdEludGVybmFsID0gIldlYktpdEludGVybmFsIjsK
LWNvbnN0IGNoYXIqIGNvbnN0IGVycm9yRG9tYWluV2ViS2l0U2VydmljZVdvcmtlciA9ICJXZWJL
aXRTZXJ2aWNlV29ya2VyIjsKK2NvbnN0IEFTQ0lJTGl0ZXJhbCBlcnJvckRvbWFpbldlYktpdElu
dGVybmFsID0gIldlYktpdEludGVybmFsIl9zOworY29uc3QgQVNDSUlMaXRlcmFsIGVycm9yRG9t
YWluV2ViS2l0U2VydmljZVdvcmtlciA9ICJXZWJLaXRTZXJ2aWNlV29ya2VyIl9zOwogCiBpbmxp
bmUgY29uc3QgUmVzb3VyY2VFcnJvciYgUmVzb3VyY2VFcnJvckJhc2U6OmFzUmVzb3VyY2VFcnJv
cigpIGNvbnN0CiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L1Jlc291cmNlRXJyb3JCYXNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL1Jl
c291cmNlRXJyb3JCYXNlLmgKaW5kZXggNDg4ZGViYzE0M2Q2M2Y0NTdlOGQzOGU5YzZkYzIzYTlk
MjBiYTgxNi4uZTEyMWM1MTRmNDg5NDI2YTM0M2QzNDQ4OTBiOTY2MzAyNTBjZDdjYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9SZXNvdXJjZUVycm9yQmFzZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvUmVzb3VyY2VFcnJvckJhc2Uu
aApAQCAtMzQsOCArMzQsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIFJlc291cmNl
RXJyb3I7CiAKLVdFQkNPUkVfRVhQT1JUIGV4dGVybiBjb25zdCBjaGFyKiBjb25zdCBlcnJvckRv
bWFpbldlYktpdEludGVybmFsOyAvLyBVc2VkIGZvciBlcnJvcnMgdGhhdCB3b24ndCBiZSBleHBv
c2VkIHRvIGNsaWVudHMuCi1XRUJDT1JFX0VYUE9SVCBleHRlcm4gY29uc3QgY2hhciogY29uc3Qg
ZXJyb3JEb21haW5XZWJLaXRTZXJ2aWNlV29ya2VyOyAvLyBVc2VkIGZvciBlcnJvcnMgdGhhdCBo
YXBwZW4gd2hlbiBsb2FkaW5nIGEgcmVzb3VyY2UgZnJvbSBhIHNlcnZpY2Ugd29ya2VyLgorV0VC
Q09SRV9FWFBPUlQgZXh0ZXJuIGNvbnN0IEFTQ0lJTGl0ZXJhbCBlcnJvckRvbWFpbldlYktpdElu
dGVybmFsOyAvLyBVc2VkIGZvciBlcnJvcnMgdGhhdCB3b24ndCBiZSBleHBvc2VkIHRvIGNsaWVu
dHMuCitXRUJDT1JFX0VYUE9SVCBleHRlcm4gY29uc3QgQVNDSUlMaXRlcmFsIGVycm9yRG9tYWlu
V2ViS2l0U2VydmljZVdvcmtlcjsgLy8gVXNlZCBmb3IgZXJyb3JzIHRoYXQgaGFwcGVuIHdoZW4g
bG9hZGluZyBhIHJlc291cmNlIGZyb20gYSBzZXJ2aWNlIHdvcmtlci4KIAogY2xhc3MgUmVzb3Vy
Y2VFcnJvckJhc2UgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9SYW5nZVJlc3BvbnNlR2VuZXJh
dG9yLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jb2NvYS9SYW5nZVJlc3Bv
bnNlR2VuZXJhdG9yLm1tCmluZGV4IDE5ODE0YTM2NWM5ZjY2MWEyMWMyMjlhZGJkMDQ2MTFjMjA5
NDdlNjQuLjA0ZWZkYjRkZmYxZDE2NDFjM2Q2MDVhZjMwMTRkMWExMGMyNDY0M2QgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY29jb2EvUmFuZ2VSZXNwb25zZUdl
bmVyYXRvci5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2NvY29hL1Jh
bmdlUmVzcG9uc2VHZW5lcmF0b3IubW0KQEAgLTc4LDcgKzc4LDcgQEAgc3RhdGljIFJlc291cmNl
UmVzcG9uc2Ugc3ludGhlc2l6ZWRSZXNwb25zZUZvclJhbmdlKGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmIG9yaWcKICAgICBhdXRvIGJlZ2luID0gcGFyc2VkUmVxdWVzdFJhbmdlLmJlZ2luOwogICAg
IGF1dG8gZW5kID0gcGFyc2VkUmVxdWVzdFJhbmdlLmVuZDsKIAotICAgIGF1dG8gbmV3Q29udGVu
dFJhbmdlID0gbWFrZVN0cmluZygiYnl0ZXMgIiwgYmVnaW4sICItIiwgZW5kLCAiLyIsICh0b3Rh
bENvbnRlbnRMZW5ndGggPyBtYWtlU3RyaW5nKCp0b3RhbENvbnRlbnRMZW5ndGgpIDogIioiKSk7
CisgICAgYXV0byBuZXdDb250ZW50UmFuZ2UgPSBtYWtlU3RyaW5nKCJieXRlcyAiLCBiZWdpbiwg
Ii0iLCBlbmQsICIvIiwgKHRvdGFsQ29udGVudExlbmd0aCA/IG1ha2VTdHJpbmcoKnRvdGFsQ29u
dGVudExlbmd0aCkgOiAiKiJfcykpOwogICAgIGF1dG8gbmV3Q29udGVudExlbmd0aCA9IG1ha2VT
dHJpbmcoZW5kIC0gYmVnaW4gKyAxKTsKIAogICAgIFJlc291cmNlUmVzcG9uc2UgbmV3UmVzcG9u
c2UgPSBvcmlnaW5hbFJlc3BvbnNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRoZW1lTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRo
ZW1lTWFjLm1tCmluZGV4IDAxMGVjYmFlZDg3YTczYTQyMGFmYjk3ZThlODBmZWE2Mzc5ZmVkM2Uu
LjhlOWQ0NmExYjM0Y2FiMDQ3ZmJhMzQzZDFiNTdhMmM1YjJkYzEwODYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZU1hYy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVNYWMubW0KQEAgLTI2MTksNyArMjYxOSw3IEBAIEFM
TE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAgICAgICAgcmV0dXJuIGljb247
CiAgICAgfQogCi0gICAgcmV0dXJuIEljb246OmNyZWF0ZUljb25Gb3JVVEkoInB1YmxpYy5kYXRh
Iik7CisgICAgcmV0dXJuIEljb246OmNyZWF0ZUljb25Gb3JVVEkoInB1YmxpYy5kYXRhIl9zKTsK
IH0KIAogUmV0YWluUHRyPE5TSW1hZ2U+IFJlbmRlclRoZW1lTWFjOjppY29uRm9yQXR0YWNobWVu
dChjb25zdCBTdHJpbmcmIGZpbGVOYW1lLCBjb25zdCBTdHJpbmcmIGF0dGFjaG1lbnRUeXBlLCBj
b25zdCBTdHJpbmcmIHRpdGxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1JlbmRlclN0eWxlQ29uc3RhbnRzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9SZW5kZXJTdHlsZUNvbnN0YW50cy5jcHAKaW5kZXggOTJiYzZhODEyYTExOGE1MTlm
MGI0NmM5NGY5NzJlMzJiM2E1ZWU1Ni4uNGM1MmM2NzFiZGJjZTY0YzkzZWNjMjRmNTgzMDE1MmNm
ZjA1MDZmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRl
clN0eWxlQ29uc3RhbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
UmVuZGVyU3R5bGVDb25zdGFudHMuY3BwCkBAIC02NzEsNyArNjcxLDcgQEAgVGV4dFN0cmVhbSYg
b3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgTGlzdFN0eWxlUG9zaXRpb24gcG9zaXRpb24pCiAK
IFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIExpc3RTdHlsZVR5cGUgc3R5
bGVUeXBlKQogewotICAgIHJldHVybiB0cyA8PCBnZXRWYWx1ZU5hbWUodG9DU1NWYWx1ZUlEKHN0
eWxlVHlwZSkpOworICAgIHJldHVybiB0cyA8PCBnZXRWYWx1ZU5hbWUodG9DU1NWYWx1ZUlEKHN0
eWxlVHlwZSkpLmNoYXJhY3RlcnMoKTsKIH0KIAogVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0
U3RyZWFtJiB0cywgTWFycXVlZUJlaGF2aW9yIG1hcnF1ZWVCZWhhdmlvcikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHRmlsdGVyRWxlbWVudC5oCmluZGV4IDFhY2QyYWU5NWExNTk0ZTlmMzM3OWQyZTkzOWY5
MTZkZDE1MDQ2ZmQuLjAwYzc2MTBhMTBjZWJhNDUzNDI0ZGE3OTQwOTZlMWE2ZmQzMzUyOTcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJFbGVtZW50LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZpbHRlckVsZW1lbnQuaApAQCAtNjgsMTAgKzY4LDEwIEBAIHBy
aXZhdGU6CiAgICAgUHJvcGVydHlSZWdpc3RyeSBtX3Byb3BlcnR5UmVnaXN0cnkgeyAqdGhpcyB9
OwogICAgIFJlZjxTVkdBbmltYXRlZEVudW1lcmF0aW9uPiBtX2ZpbHRlclVuaXRzIHsgU1ZHQW5p
bWF0ZWRFbnVtZXJhdGlvbjo6Y3JlYXRlKHRoaXMsIFNWR1VuaXRUeXBlczo6U1ZHX1VOSVRfVFlQ
RV9PQkpFQ1RCT1VORElOR0JPWCkgfTsKICAgICBSZWY8U1ZHQW5pbWF0ZWRFbnVtZXJhdGlvbj4g
bV9wcmltaXRpdmVVbml0cyB7IFNWR0FuaW1hdGVkRW51bWVyYXRpb246OmNyZWF0ZSh0aGlzLCBT
VkdVbml0VHlwZXM6OlNWR19VTklUX1RZUEVfVVNFUlNQQUNFT05VU0UpIH07Ci0gICAgUmVmPFNW
R0FuaW1hdGVkTGVuZ3RoPiBtX3ggeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNW
R0xlbmd0aE1vZGU6OldpZHRoLCAiLTEwJSIpIH07Ci0gICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3Ro
PiBtX3kgeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6Okhl
aWdodCwgIi0xMCUiKSB9OwotICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV93aWR0aCB7IFNW
R0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6V2lkdGgsICIxMjAl
IikgfTsKLSAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1faGVpZ2h0IHsgU1ZHQW5pbWF0ZWRM
ZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpIZWlnaHQsICIxMjAlIikgfTsKKyAg
ICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1feCB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUo
dGhpcywgU1ZHTGVuZ3RoTW9kZTo6V2lkdGgsICItMTAlIl9zKSB9OworICAgIFJlZjxTVkdBbmlt
YXRlZExlbmd0aD4gbV95IHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5n
dGhNb2RlOjpIZWlnaHQsICItMTAlIl9zKSB9OworICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4g
bV93aWR0aCB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6
V2lkdGgsICIxMjAlIl9zKSB9OworICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV9oZWlnaHQg
eyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OkhlaWdodCwg
IjEyMCUiX3MpIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVzLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRmlsdGVyUHJpbWl0aXZlU3RhbmRhcmRBdHRyaWJ1dGVz
LmgKaW5kZXggMzEwM2NjNmFjMjMzZTBmZDNiMmZiMWU5NzkwNDlhMjhiN2I2ZjhiYi4uNzhlMmFh
MmMxZTgxNGU2OThlZDQ0NGVlYzc3ZjliMjA3NmUzZjk1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0ZpbHRlclByaW1pdGl2ZVN0YW5kYXJkQXR0cmlidXRlcy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdGaWx0ZXJQcmltaXRpdmVTdGFuZGFyZEF0dHJpYnV0ZXMuaApA
QCAtNzUsMTAgKzc1LDEwIEBAIHByaXZhdGU6CiAKICAgICAvLyBTcGVjOiBJZiB0aGUgeC95IGF0
dHJpYnV0ZSBpcyBub3Qgc3BlY2lmaWVkLCB0aGUgZWZmZWN0IGlzIGFzIGlmIGEgdmFsdWUgb2Yg
IjAlIiB3ZXJlIHNwZWNpZmllZC4KICAgICAvLyBTcGVjOiBJZiB0aGUgd2lkdGgvaGVpZ2h0IGF0
dHJpYnV0ZSBpcyBub3Qgc3BlY2lmaWVkLCB0aGUgZWZmZWN0IGlzIGFzIGlmIGEgdmFsdWUgb2Yg
IjEwMCUiIHdlcmUgc3BlY2lmaWVkLgotICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV94IHsg
U1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpXaWR0aCwgIjAl
IikgfTsKLSAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1feSB7IFNWR0FuaW1hdGVkTGVuZ3Ro
OjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6SGVpZ2h0LCAiMCUiKSB9OwotICAgIFJlZjxT
VkdBbmltYXRlZExlbmd0aD4gbV93aWR0aCB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhp
cywgU1ZHTGVuZ3RoTW9kZTo6V2lkdGgsICIxMDAlIikgfTsKLSAgICBSZWY8U1ZHQW5pbWF0ZWRM
ZW5ndGg+IG1faGVpZ2h0IHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5n
dGhNb2RlOjpIZWlnaHQsICIxMDAlIikgfTsKKyAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1f
eCB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6V2lkdGgs
ICIwJSJfcykgfTsKKyAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1feSB7IFNWR0FuaW1hdGVk
TGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6SGVpZ2h0LCAiMCUiX3MpIH07Cisg
ICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX3dpZHRoIHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNy
ZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpXaWR0aCwgIjEwMCUiX3MpIH07CisgICAgUmVmPFNW
R0FuaW1hdGVkTGVuZ3RoPiBtX2hlaWdodCB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhp
cywgU1ZHTGVuZ3RoTW9kZTo6SGVpZ2h0LCAiMTAwJSJfcykgfTsKICAgICBSZWY8U1ZHQW5pbWF0
ZWRTdHJpbmc+IG1fcmVzdWx0IHsgU1ZHQW5pbWF0ZWRTdHJpbmc6OmNyZWF0ZSh0aGlzKSB9Owog
fTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVhckdyYWRpZW50RWxl
bWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xpbmVhckdyYWRpZW50RWxlbWVudC5oCmlu
ZGV4IGFlZmU2NGNlMTQ2NzY3ODRjMGQxYTkyNGNlM2RmZWFkN2JhY2MzNzMuLmRmMjBiZDA1OWZh
YzczYjIzZDc2OWU4OWM5MmRlZjBmYmVjOTc4YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdMaW5lYXJHcmFkaWVudEVsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHTGluZWFyR3JhZGllbnRFbGVtZW50LmgKQEAgLTYxLDcgKzYxLDcgQEAgcHJpdmF0ZToKICAg
ICBQcm9wZXJ0eVJlZ2lzdHJ5IG1fcHJvcGVydHlSZWdpc3RyeSB7ICp0aGlzIH07CiAgICAgUmVm
PFNWR0FuaW1hdGVkTGVuZ3RoPiBtX3gxIHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlz
LCBTVkdMZW5ndGhNb2RlOjpXaWR0aCkgfTsKICAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1f
eTEgeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OkhlaWdo
dCkgfTsKLSAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1feDIgeyBTVkdBbmltYXRlZExlbmd0
aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OldpZHRoLCAiMTAwJSIpIH07CisgICAgUmVm
PFNWR0FuaW1hdGVkTGVuZ3RoPiBtX3gyIHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlz
LCBTVkdMZW5ndGhNb2RlOjpXaWR0aCwgIjEwMCUiX3MpIH07CiAgICAgUmVmPFNWR0FuaW1hdGVk
TGVuZ3RoPiBtX3kyIHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhN
b2RlOjpIZWlnaHQpIH07CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
TWFya2VyRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR01hcmtlckVsZW1lbnQuaApp
bmRleCA1YTEzNmUzZWY0NWE1N2E1MWM5MmZmNzY1OWJhNmFmNzYyZjJhZTkzLi5lMWY3ZWU5YWM0
NzFhYTRmNjgwZmI1NGMyNDNhZmQwNzczNzI3NWRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHTWFya2VyRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdNYXJr
ZXJFbGVtZW50LmgKQEAgLTg5LDggKzg5LDggQEAgcHJpdmF0ZToKICAgICBQcm9wZXJ0eVJlZ2lz
dHJ5IG1fcHJvcGVydHlSZWdpc3RyeSB7ICp0aGlzIH07CiAgICAgUmVmPFNWR0FuaW1hdGVkTGVu
Z3RoPiBtX3JlZlggeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1v
ZGU6OldpZHRoKSB9OwogICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV9yZWZZIHsgU1ZHQW5p
bWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpIZWlnaHQpIH07Ci0gICAg
UmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX21hcmtlcldpZHRoIHsgU1ZHQW5pbWF0ZWRMZW5ndGg6
OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpXaWR0aCwgIjMiKSB9OwotICAgIFJlZjxTVkdB
bmltYXRlZExlbmd0aD4gbV9tYXJrZXJIZWlnaHQgeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRl
KHRoaXMsIFNWR0xlbmd0aE1vZGU6OkhlaWdodCwgIjMiKSB9OworICAgIFJlZjxTVkdBbmltYXRl
ZExlbmd0aD4gbV9tYXJrZXJXaWR0aCB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywg
U1ZHTGVuZ3RoTW9kZTo6V2lkdGgsICIzIl9zKSB9OworICAgIFJlZjxTVkdBbmltYXRlZExlbmd0
aD4gbV9tYXJrZXJIZWlnaHQgeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xl
bmd0aE1vZGU6OkhlaWdodCwgIjMiX3MpIH07CiAgICAgUmVmPFNWR0FuaW1hdGVkRW51bWVyYXRp
b24+IG1fbWFya2VyVW5pdHMgeyBTVkdBbmltYXRlZEVudW1lcmF0aW9uOjpjcmVhdGUodGhpcywg
U1ZHTWFya2VyVW5pdHNTdHJva2VXaWR0aCkgfTsKICAgICBSZWY8U1ZHQW5pbWF0ZWRBbmdsZT4g
bV9vcmllbnRBbmdsZSB7IFNWR0FuaW1hdGVkQW5nbGU6OmNyZWF0ZSh0aGlzKSB9OwogICAgIFJl
ZjxTVkdBbmltYXRlZE9yaWVudFR5cGU+IG1fb3JpZW50VHlwZSB7IFNWR0FuaW1hdGVkT3JpZW50
VHlwZTo6Y3JlYXRlKHRoaXMsIFNWR01hcmtlck9yaWVudEFuZ2xlKSB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR01hc2tFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHTWFza0VsZW1lbnQuaAppbmRleCA0OTBkYzIyMWFiMjQ0YTNlZjVmZGRkMjg1ZGYzN2E2ZTQ2
MDAzNDJkLi5kYmQwNDJkMGQzYWY4MTIwZTAwZjU5OWI5NWIwMWQxMTM4Y2UyMWRmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTWFza0VsZW1lbnQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHTWFza0VsZW1lbnQuaApAQCAtNjMsMTAgKzYzLDEwIEBAIHByaXZhdGU6CiAg
ICAgYm9vbCBzZWxmSGFzUmVsYXRpdmVMZW5ndGhzKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1
ZTsgfQogCiAgICAgUHJvcGVydHlSZWdpc3RyeSBtX3Byb3BlcnR5UmVnaXN0cnkgeyAqdGhpcyB9
OwotICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV94IHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNy
ZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpXaWR0aCwgIi0xMCUiKSB9OwotICAgIFJlZjxTVkdB
bmltYXRlZExlbmd0aD4gbV95IHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdM
ZW5ndGhNb2RlOjpIZWlnaHQsICItMTAlIikgfTsKLSAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+
IG1fd2lkdGggeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6
OldpZHRoLCAiMTIwJSIpIH07Ci0gICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX2hlaWdodCB7
IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6SGVpZ2h0LCAi
MTIwJSIpIH07CisgICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX3ggeyBTVkdBbmltYXRlZExl
bmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OldpZHRoLCAiLTEwJSJfcykgfTsKKyAg
ICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1feSB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUo
dGhpcywgU1ZHTGVuZ3RoTW9kZTo6SGVpZ2h0LCAiLTEwJSJfcykgfTsKKyAgICBSZWY8U1ZHQW5p
bWF0ZWRMZW5ndGg+IG1fd2lkdGggeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNW
R0xlbmd0aE1vZGU6OldpZHRoLCAiMTIwJSJfcykgfTsKKyAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5n
dGg+IG1faGVpZ2h0IHsgU1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhN
b2RlOjpIZWlnaHQsICIxMjAlIl9zKSB9OwogICAgIFJlZjxTVkdBbmltYXRlZEVudW1lcmF0aW9u
PiBtX21hc2tVbml0cyB7IFNWR0FuaW1hdGVkRW51bWVyYXRpb246OmNyZWF0ZSh0aGlzLCBTVkdV
bml0VHlwZXM6OlNWR19VTklUX1RZUEVfT0JKRUNUQk9VTkRJTkdCT1gpIH07CiAgICAgUmVmPFNW
R0FuaW1hdGVkRW51bWVyYXRpb24+IG1fbWFza0NvbnRlbnRVbml0cyB7IFNWR0FuaW1hdGVkRW51
bWVyYXRpb246OmNyZWF0ZSh0aGlzLCBTVkdVbml0VHlwZXM6OlNWR19VTklUX1RZUEVfVVNFUlNQ
QUNFT05VU0UpIH07CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1BhdGhT
ZWdJbXBsLmggYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0ltcGwuaAppbmRleCBhNjM2
MTU0Mjk0ZmVhM2E1YjA1YmY5ZmU4ZjJmOTBjMThlYTEwODM0Li4zNGYyM2M1MTVmOTRiOTM5MTcw
ZjNhNWNlOWFlOGZiNTI4ODY2MTk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
UGF0aFNlZ0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUGF0aFNlZ0ltcGwuaApA
QCAtMzUsNyArMzUsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHVzaW5nIFNWR1BhdGhTZWc6
OlNWR1BhdGhTZWc7CiAgICAgdW5zaWduZWQgc2hvcnQgcGF0aFNlZ1R5cGUoKSBjb25zdCBmaW5h
bCB7IHJldHVybiBQQVRIU0VHX0NMT1NFUEFUSDsgfQotICAgIFN0cmluZyBwYXRoU2VnVHlwZUFz
TGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIloiOyB9CisgICAgU3RyaW5nIHBhdGhTZWdU
eXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiWiJfczsgfQogICAgIFJlZjxTVkdQ
YXRoU2VnPiBjbG9uZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgU1ZHUGF0
aFNlZ0Nsb3NlUGF0aCgpKTsgfQogfTsKIApAQCAtNDUsNyArNDUsNyBAQCBwdWJsaWM6CiBwcml2
YXRlOgogICAgIHVzaW5nIFNWR1BhdGhTZWdMaW5ldG9Ib3Jpem9udGFsOjpTVkdQYXRoU2VnTGlu
ZXRvSG9yaXpvbnRhbDsKICAgICB1bnNpZ25lZCBzaG9ydCBwYXRoU2VnVHlwZSgpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIFBBVEhTRUdfTElORVRPX0hPUklaT05UQUxfQUJTOyB9Ci0gICAgU3RyaW5n
IHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiSCI7IH0KKyAgICBT
dHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJIIl9zOyB9
CiAgICAgUmVmPFNWR1BhdGhTZWc+IGNsb25lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gU1ZHUGF0
aFNlZ1ZhbHVlOjpjbG9uZTxTVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbEFicz4oKTsgfQogfTsK
IApAQCAtNTUsNyArNTUsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHVzaW5nIFNWR1BhdGhT
ZWdMaW5ldG9Ib3Jpem9udGFsOjpTVkdQYXRoU2VnTGluZXRvSG9yaXpvbnRhbDsKICAgICB1bnNp
Z25lZCBzaG9ydCBwYXRoU2VnVHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFBBVEhTRUdfTElO
RVRPX0hPUklaT05UQUxfUkVMOyB9Ci0gICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBj
b25zdCBmaW5hbCB7IHJldHVybiAiaCI7IH0KKyAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRl
cigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJoIl9zOyB9CiAgICAgUmVmPFNWR1BhdGhTZWc+IGNs
b25lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gU1ZHUGF0aFNlZ1ZhbHVlOjpjbG9uZTxTVkdQYXRo
U2VnTGluZXRvSG9yaXpvbnRhbFJlbD4oKTsgfQogfTsKIApAQCAtNjUsNyArNjUsNyBAQCBwdWJs
aWM6CiBwcml2YXRlOgogICAgIHVzaW5nIFNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbDo6U1ZHUGF0
aFNlZ0xpbmV0b1ZlcnRpY2FsOwogICAgIHVuc2lnbmVkIHNob3J0IHBhdGhTZWdUeXBlKCkgY29u
c3QgZmluYWwgeyByZXR1cm4gUEFUSFNFR19MSU5FVE9fVkVSVElDQUxfQUJTOyB9Ci0gICAgU3Ry
aW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiViI7IH0KKyAg
ICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJWIl9z
OyB9CiAgICAgUmVmPFNWR1BhdGhTZWc+IGNsb25lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gU1ZH
UGF0aFNlZ1ZhbHVlOjpjbG9uZTxTVkdQYXRoU2VnTGluZXRvVmVydGljYWxBYnM+KCk7IH0KIH07
CiAKQEAgLTc1LDcgKzc1LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB1c2luZyBTVkdQYXRo
U2VnTGluZXRvVmVydGljYWw6OlNWR1BhdGhTZWdMaW5ldG9WZXJ0aWNhbDsKICAgICB1bnNpZ25l
ZCBzaG9ydCBwYXRoU2VnVHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFBBVEhTRUdfTElORVRP
X1ZFUlRJQ0FMX1JFTDsgfQotICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gInYiOyB9CisgICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBj
b25zdCBmaW5hbCB7IHJldHVybiAidiJfczsgfQogICAgIFJlZjxTVkdQYXRoU2VnPiBjbG9uZSgp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIFNWR1BhdGhTZWdWYWx1ZTo6Y2xvbmU8U1ZHUGF0aFNlZ0xp
bmV0b1ZlcnRpY2FsUmVsPigpOyB9CiB9OwogCkBAIC04NSw3ICs4NSw3IEBAIHB1YmxpYzoKIHBy
aXZhdGU6CiAgICAgdXNpbmcgU1ZHUGF0aFNlZ1NpbmdsZUNvb3JkaW5hdGU6OlNWR1BhdGhTZWdT
aW5nbGVDb29yZGluYXRlOwogICAgIHVuc2lnbmVkIHNob3J0IHBhdGhTZWdUeXBlKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gUEFUSFNFR19NT1ZFVE9fQUJTOyB9Ci0gICAgU3RyaW5nIHBhdGhTZWdU
eXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiTSI7IH0KKyAgICBTdHJpbmcgcGF0
aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJNIl9zOyB9CiAgICAgUmVm
PFNWR1BhdGhTZWc+IGNsb25lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gU1ZHUGF0aFNlZ1ZhbHVl
OjpjbG9uZTxTVkdQYXRoU2VnTW92ZXRvQWJzPigpOyB9CiB9OwogCkBAIC05NSw3ICs5NSw3IEBA
IHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdXNpbmcgU1ZHUGF0aFNlZ1NpbmdsZUNvb3JkaW5hdGU6
OlNWR1BhdGhTZWdTaW5nbGVDb29yZGluYXRlOwogICAgIHVuc2lnbmVkIHNob3J0IHBhdGhTZWdU
eXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gUEFUSFNFR19NT1ZFVE9fUkVMOyB9Ci0gICAgU3Ry
aW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAibSI7IH0KKyAg
ICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJtIl9z
OyB9CiAgICAgUmVmPFNWR1BhdGhTZWc+IGNsb25lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gU1ZH
UGF0aFNlZ1ZhbHVlOjpjbG9uZTxTVkdQYXRoU2VnTW92ZXRvUmVsPigpOyB9CiB9OwogCkBAIC0x
MDUsNyArMTA1LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB1c2luZyBTVkdQYXRoU2VnU2lu
Z2xlQ29vcmRpbmF0ZTo6U1ZHUGF0aFNlZ1NpbmdsZUNvb3JkaW5hdGU7CiAgICAgdW5zaWduZWQg
c2hvcnQgcGF0aFNlZ1R5cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBQQVRIU0VHX0xJTkVUT19B
QlM7IH0KLSAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuICJMIjsgfQorICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwg
eyByZXR1cm4gIkwiX3M7IH0KICAgICBSZWY8U1ZHUGF0aFNlZz4gY2xvbmUoKSBjb25zdCBmaW5h
bCB7IHJldHVybiBTVkdQYXRoU2VnVmFsdWU6OmNsb25lPFNWR1BhdGhTZWdMaW5ldG9BYnM+KCk7
IH0KIH07CiAKQEAgLTExNSw3ICsxMTUsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHVzaW5n
IFNWR1BhdGhTZWdTaW5nbGVDb29yZGluYXRlOjpTVkdQYXRoU2VnU2luZ2xlQ29vcmRpbmF0ZTsK
ICAgICB1bnNpZ25lZCBzaG9ydCBwYXRoU2VnVHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFBB
VEhTRUdfTElORVRPX1JFTDsgfQotICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29u
c3QgZmluYWwgeyByZXR1cm4gImwiOyB9CisgICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIo
KSBjb25zdCBmaW5hbCB7IHJldHVybiAibCJfczsgfQogICAgIFJlZjxTVkdQYXRoU2VnPiBjbG9u
ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFNWR1BhdGhTZWdWYWx1ZTo6Y2xvbmU8U1ZHUGF0aFNl
Z0xpbmV0b1JlbD4oKTsgfQogfTsKIApAQCAtMTI1LDcgKzEyNSw3IEBAIHB1YmxpYzoKIHByaXZh
dGU6CiAgICAgdXNpbmcgU1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWM6OlNWR1BhdGhTZWdDdXJ2
ZXRvUXVhZHJhdGljOwogICAgIHVuc2lnbmVkIHNob3J0IHBhdGhTZWdUeXBlKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gUEFUSFNFR19DVVJWRVRPX1FVQURSQVRJQ19BQlM7IH0KLSAgICBTdHJpbmcg
cGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJRIjsgfQorICAgIFN0
cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIlEiX3M7IH0K
ICAgICBSZWY8U1ZHUGF0aFNlZz4gY2xvbmUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBTVkdQYXRo
U2VnVmFsdWU6OmNsb25lPFNWR1BhdGhTZWdDdXJ2ZXRvUXVhZHJhdGljQWJzPigpOyB9CiB9Owog
CkBAIC0xMzUsNyArMTM1LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB1c2luZyBTVkdQYXRo
U2VnQ3VydmV0b1F1YWRyYXRpYzo6U1ZHUGF0aFNlZ0N1cnZldG9RdWFkcmF0aWM7CiAgICAgdW5z
aWduZWQgc2hvcnQgcGF0aFNlZ1R5cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBQQVRIU0VHX0NV
UlZFVE9fUVVBRFJBVElDX1JFTDsgfQotICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gInEiOyB9CisgICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0
ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAicSJfczsgfQogICAgIFJlZjxTVkdQYXRoU2VnPiBj
bG9uZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFNWR1BhdGhTZWdWYWx1ZTo6Y2xvbmU8U1ZHUGF0
aFNlZ0N1cnZldG9RdWFkcmF0aWNSZWw+KCk7IH0KIH07CiAKQEAgLTE0NSw3ICsxNDUsNyBAQCBw
dWJsaWM6CiBwcml2YXRlOgogICAgIHVzaW5nIFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWM6OlNWR1Bh
dGhTZWdDdXJ2ZXRvQ3ViaWM7CiAgICAgdW5zaWduZWQgc2hvcnQgcGF0aFNlZ1R5cGUoKSBjb25z
dCBmaW5hbCB7IHJldHVybiBQQVRIU0VHX0NVUlZFVE9fQ1VCSUNfQUJTOyB9Ci0gICAgU3RyaW5n
IHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiQyI7IH0KKyAgICBT
dHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJDIl9zOyB9
CiAgICAgUmVmPFNWR1BhdGhTZWc+IGNsb25lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gU1ZHUGF0
aFNlZ1ZhbHVlOjpjbG9uZTxTVkdQYXRoU2VnQ3VydmV0b0N1YmljQWJzPigpOyB9CiB9OwogCkBA
IC0xNTUsNyArMTU1LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB1c2luZyBTVkdQYXRoU2Vn
Q3VydmV0b0N1YmljOjpTVkdQYXRoU2VnQ3VydmV0b0N1YmljOwogICAgIHVuc2lnbmVkIHNob3J0
IHBhdGhTZWdUeXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gUEFUSFNFR19DVVJWRVRPX0NVQklD
X1JFTDsgfQotICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gImMiOyB9CisgICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5h
bCB7IHJldHVybiAiYyJfczsgfQogICAgIFJlZjxTVkdQYXRoU2VnPiBjbG9uZSgpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIFNWR1BhdGhTZWdWYWx1ZTo6Y2xvbmU8U1ZHUGF0aFNlZ0N1cnZldG9DdWJp
Y1JlbD4oKTsgfQogfTsKIApAQCAtMTY1LDcgKzE2NSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAg
ICAgdXNpbmcgU1ZHUGF0aFNlZ0FyYzo6U1ZHUGF0aFNlZ0FyYzsKICAgICB1bnNpZ25lZCBzaG9y
dCBwYXRoU2VnVHlwZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFBBVEhTRUdfQVJDX0FCUzsgfQot
ICAgIFN0cmluZyBwYXRoU2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIkEi
OyB9CisgICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVy
biAiQSJfczsgfQogICAgIFJlZjxTVkdQYXRoU2VnPiBjbG9uZSgpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIFNWR1BhdGhTZWdWYWx1ZTo6Y2xvbmU8U1ZHUGF0aFNlZ0FyY0Ficz4oKTsgfQogfTsKIApA
QCAtMTc1LDcgKzE3NSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdXNpbmcgU1ZHUGF0aFNl
Z0FyYzo6U1ZHUGF0aFNlZ0FyYzsKICAgICB1bnNpZ25lZCBzaG9ydCBwYXRoU2VnVHlwZSgpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuIFBBVEhTRUdfQVJDX1JFTDsgfQotICAgIFN0cmluZyBwYXRoU2Vn
VHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gImEiOyB9CisgICAgU3RyaW5nIHBh
dGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiYSJfczsgfQogICAgIFJl
ZjxTVkdQYXRoU2VnPiBjbG9uZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIFNWR1BhdGhTZWdWYWx1
ZTo6Y2xvbmU8U1ZHUGF0aFNlZ0FyY1JlbD4oKTsgfQogfTsKIApAQCAtMTg1LDcgKzE4NSw3IEBA
IHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdXNpbmcgU1ZHUGF0aFNlZ1NpbmdsZUNvb3JkaW5hdGU6
OlNWR1BhdGhTZWdTaW5nbGVDb29yZGluYXRlOwogICAgIHVuc2lnbmVkIHNob3J0IHBhdGhTZWdU
eXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gUEFUSFNFR19DVVJWRVRPX1FVQURSQVRJQ19TTU9P
VEhfQUJTOyB9Ci0gICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7
IHJldHVybiAiVCI7IH0KKyAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuICJUIl9zOyB9CiAgICAgUmVmPFNWR1BhdGhTZWc+IGNsb25lKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gU1ZHUGF0aFNlZ1ZhbHVlOjpjbG9uZTxTVkdQYXRoU2VnQ3VydmV0b1F1
YWRyYXRpY1Ntb290aEFicz4oKTsgfQogfTsKIApAQCAtMTk1LDcgKzE5NSw3IEBAIHB1YmxpYzoK
IHByaXZhdGU6CiAgICAgdXNpbmcgU1ZHUGF0aFNlZ1NpbmdsZUNvb3JkaW5hdGU6OlNWR1BhdGhT
ZWdTaW5nbGVDb29yZGluYXRlOwogICAgIHVuc2lnbmVkIHNob3J0IHBhdGhTZWdUeXBlKCkgY29u
c3QgZmluYWwgeyByZXR1cm4gUEFUSFNFR19DVVJWRVRPX1FVQURSQVRJQ19TTU9PVEhfUkVMOyB9
Ci0gICAgU3RyaW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAi
dCI7IH0KKyAgICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuICJ0Il9zOyB9CiAgICAgUmVmPFNWR1BhdGhTZWc+IGNsb25lKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gU1ZHUGF0aFNlZ1ZhbHVlOjpjbG9uZTxTVkdQYXRoU2VnQ3VydmV0b1F1YWRyYXRpY1Nt
b290aFJlbD4oKTsgfQogfTsKIApAQCAtMjA1LDcgKzIwNSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6
CiAgICAgdXNpbmcgU1ZHUGF0aFNlZ0N1cnZldG9DdWJpY1Ntb290aDo6U1ZHUGF0aFNlZ0N1cnZl
dG9DdWJpY1Ntb290aDsKICAgICB1bnNpZ25lZCBzaG9ydCBwYXRoU2VnVHlwZSgpIGNvbnN0IGZp
bmFsIHsgcmV0dXJuIFBBVEhTRUdfQ1VSVkVUT19DVUJJQ19TTU9PVEhfQUJTOyB9Ci0gICAgU3Ry
aW5nIHBhdGhTZWdUeXBlQXNMZXR0ZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiAiUyI7IH0KKyAg
ICBTdHJpbmcgcGF0aFNlZ1R5cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJTIl9z
OyB9CiAgICAgUmVmPFNWR1BhdGhTZWc+IGNsb25lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gU1ZH
UGF0aFNlZ1ZhbHVlOjpjbG9uZTxTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoQWJzPigpOyB9
CiB9OwogCkBAIC0yMTUsNyArMjE1LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB1c2luZyBT
VkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3RoOjpTVkdQYXRoU2VnQ3VydmV0b0N1YmljU21vb3Ro
OwogICAgIHVuc2lnbmVkIHNob3J0IHBhdGhTZWdUeXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
UEFUSFNFR19DVVJWRVRPX0NVQklDX1NNT09USF9SRUw7IH0KLSAgICBTdHJpbmcgcGF0aFNlZ1R5
cGVBc0xldHRlcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJzIjsgfQorICAgIFN0cmluZyBwYXRo
U2VnVHlwZUFzTGV0dGVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gInMiX3M7IH0KICAgICBSZWY8
U1ZHUGF0aFNlZz4gY2xvbmUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBTVkdQYXRoU2VnVmFsdWU6
OmNsb25lPFNWR1BhdGhTZWdDdXJ2ZXRvQ3ViaWNTbW9vdGhSZWw+KCk7IH0KIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdSYWRpYWxHcmFkaWVudEVsZW1lbnQuaAppbmRleCA4NGYxMTU4
OGYzZTI4MWU2ZjZlMDdhNjA5ZDA4OWE5Nzg3MDhhMzllLi4yNDE5N2Y3NDU3NzE2NTdjMTdkOGQw
N2IyY2QyNGU1NGUzNGM4MDhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHUmFk
aWFsR3JhZGllbnRFbGVtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1JhZGlhbEdy
YWRpZW50RWxlbWVudC5oCkBAIC02MywxMiArNjMsMTIgQEAgcHJpdmF0ZToKICAgICBib29sIHNl
bGZIYXNSZWxhdGl2ZUxlbmd0aHMoKSBjb25zdCBvdmVycmlkZTsKIAogICAgIFByb3BlcnR5UmVn
aXN0cnkgbV9wcm9wZXJ0eVJlZ2lzdHJ5IHsgKnRoaXMgfTsKLSAgICBSZWY8U1ZHQW5pbWF0ZWRM
ZW5ndGg+IG1fY3ggeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1v
ZGU6OldpZHRoLCAiNTAlIikgfTsKLSAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1fY3kgeyBT
VkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OkhlaWdodCwgIjUw
JSIpIH07Ci0gICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX3IgeyBTVkdBbmltYXRlZExlbmd0
aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6Ok90aGVyLCAiNTAlIikgfTsKKyAgICBSZWY8
U1ZHQW5pbWF0ZWRMZW5ndGg+IG1fY3ggeyBTVkdBbmltYXRlZExlbmd0aDo6Y3JlYXRlKHRoaXMs
IFNWR0xlbmd0aE1vZGU6OldpZHRoLCAiNTAlIl9zKSB9OworICAgIFJlZjxTVkdBbmltYXRlZExl
bmd0aD4gbV9jeSB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9k
ZTo6SGVpZ2h0LCAiNTAlIl9zKSB9OworICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV9yIHsg
U1ZHQW5pbWF0ZWRMZW5ndGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpPdGhlciwgIjUw
JSJfcykgfTsKICAgICBSZWY8U1ZHQW5pbWF0ZWRMZW5ndGg+IG1fZnggeyBTVkdBbmltYXRlZExl
bmd0aDo6Y3JlYXRlKHRoaXMsIFNWR0xlbmd0aE1vZGU6OldpZHRoKSB9OwogICAgIFJlZjxTVkdB
bmltYXRlZExlbmd0aD4gbV9meSB7IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZH
TGVuZ3RoTW9kZTo6SGVpZ2h0KSB9OwotICAgIFJlZjxTVkdBbmltYXRlZExlbmd0aD4gbV9mciB7
IFNWR0FuaW1hdGVkTGVuZ3RoOjpjcmVhdGUodGhpcywgU1ZHTGVuZ3RoTW9kZTo6T3RoZXIsICIw
JSIpIH07CisgICAgUmVmPFNWR0FuaW1hdGVkTGVuZ3RoPiBtX2ZyIHsgU1ZHQW5pbWF0ZWRMZW5n
dGg6OmNyZWF0ZSh0aGlzLCBTVkdMZW5ndGhNb2RlOjpPdGhlciwgIjAlIl9zKSB9OwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL3By
b3BlcnRpZXMvU1ZHUHJvcGVydHlUcmFpdHMuaCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9wcm9wZXJ0
aWVzL1NWR1Byb3BlcnR5VHJhaXRzLmgKaW5kZXggNDM5OTcwNDMwZjY1NmE5ODY1ZTZlOWM5ZDll
ZjVlYTI0YmJhNTMwNC4uODQ1YWI0YWJmZmI3ODk1ODQ4NjlmOWZmMWFhNWU4MzIwMTI4MGE2MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL3Byb3BlcnRpZXMvU1ZHUHJvcGVydHlUcmFp
dHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvcHJvcGVydGllcy9TVkdQcm9wZXJ0eVRyYWl0
cy5oCkBAIC0zOSw3ICszOSw3IEBAIHN0cnVjdCBTVkdQcm9wZXJ0eVRyYWl0czxib29sPiB7CiAg
ICAgc3RhdGljIGJvb2wgaW5pdGlhbFZhbHVlKCkgeyByZXR1cm4gZmFsc2U7IH0KICAgICBzdGF0
aWMgYm9vbCBmcm9tU3RyaW5nKGNvbnN0IFN0cmluZyYgc3RyaW5nKSB7IHJldHVybiBzdHJpbmcg
PT0gInRydWUiOyB9CiAgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gcGFyc2UoY29uc3Qg
UXVhbGlmaWVkTmFtZSYsIGNvbnN0IFN0cmluZyYpIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IHJl
dHVybiBpbml0aWFsVmFsdWUoKTsgfQotICAgIHN0YXRpYyBTdHJpbmcgdG9TdHJpbmcoYm9vbCB0
eXBlKSB7IHJldHVybiB0eXBlID8gInRydWUiIDogImZhbHNlIjsgfQorICAgIHN0YXRpYyBTdHJp
bmcgdG9TdHJpbmcoYm9vbCB0eXBlKSB7IHJldHVybiB0eXBlID8gInRydWUiX3MgOiAiZmFsc2Ui
X3M7IH0KIH07CiAKIHRlbXBsYXRlPD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvTW9ja0NvbnRlbnRGaWx0ZXJTZXR0aW5ncy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9N
b2NrQ29udGVudEZpbHRlclNldHRpbmdzLmgKaW5kZXggMTgxZWZmNWI1YjhlYTAwMThlOWYzYjBj
MjQzYWM3ZDRlM2U5ZGNhNy4uZjNjOTdmM2Y4ZTEzYWEwZjEyN2RlZTg0MzlkNmI1YzBkMGUzYzFl
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrQ29udGVudEZpbHRlclNl
dHRpbmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9Nb2NrQ29udGVudEZpbHRlclNl
dHRpbmdzLmgKQEAgLTQ4LDcgKzQ4LDcgQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9URVNUU1VQ
UE9SVF9FWFBPUlQgc3RhdGljIE1vY2tDb250ZW50RmlsdGVyU2V0dGluZ3MmIHNpbmdsZXRvbigp
OwogICAgIFdFQkNPUkVfVEVTVFNVUFBPUlRfRVhQT1JUIHN0YXRpYyB2b2lkIHJlc2V0KCk7Ci0g
ICAgc3RhdGljIGNvbnN0IGNoYXIqIHVuYmxvY2tVUkxIb3N0KCkgeyByZXR1cm4gIm1vY2stdW5i
bG9jayI7IH0KKyAgICBzdGF0aWMgQVNDSUlMaXRlcmFsIHVuYmxvY2tVUkxIb3N0KCkgeyByZXR1
cm4gIm1vY2stdW5ibG9jayJfczsgfQogCiAgICAgLy8gVHJpY2sgdGhlIGdlbmVyYXRlZCBiaW5k
aW5ncyBpbnRvIHRoaW5raW5nIHdlJ3JlIFJlZkNvdW50ZWQuCiAgICAgdm9pZCByZWYoKSB7IH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aFZhbHVlLmggYi9Tb3VyY2UvV2Vi
Q29yZS94bWwvWFBhdGhWYWx1ZS5oCmluZGV4IGQ5MWM3N2QxMDJkMjRhZDIzZTU5Mzk4NmUwNDBi
YTI1YzA5ZGIzNmIuLmVhODNmN2QwYmIxYWFmMTRhN2JhNzIxMDk0ZjNiMjE5YTIyYjIzYjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3htbC9YUGF0aFZhbHVlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUveG1sL1hQYXRoVmFsdWUuaApAQCAtNDAsNyArNDAsNyBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAgICAgICAgICAgICBWYWx1ZShkb3VibGUgdmFsdWUpIDogbV90eXBlKE51bWJlclZhbHVl
KSwgbV9udW1iZXIodmFsdWUpIHsgfQogCiAgICAgICAgICAgICBWYWx1ZShjb25zdCBTdHJpbmcm
IHZhbHVlKSA6IG1fdHlwZShTdHJpbmdWYWx1ZSksIG1fZGF0YShEYXRhOjpjcmVhdGUodmFsdWUp
KSB7IH0KLSAgICAgICAgICAgIFZhbHVlKGNvbnN0IGNoYXIqIHZhbHVlKSA6IG1fdHlwZShTdHJp
bmdWYWx1ZSksIG1fZGF0YShEYXRhOjpjcmVhdGUodmFsdWUpKSB7IH0KKyAgICAgICAgICAgIFZh
bHVlKGNvbnN0IGNoYXIqIHZhbHVlKSA6IG1fdHlwZShTdHJpbmdWYWx1ZSksIG1fZGF0YShEYXRh
OjpjcmVhdGUoU3RyaW5nIHsgdmFsdWUgfSkpIHsgfQogCiAgICAgICAgICAgICBleHBsaWNpdCBW
YWx1ZShOb2RlU2V0JiYgdmFsdWUpCiAgICAgICAgICAgICAgICAgOiBtX3R5cGUoTm9kZVNldFZh
bHVlKSwgbV9kYXRhKERhdGE6OmNyZWF0ZShXVEZNb3ZlKHZhbHVlKSkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS94bWwvWFNMU3R5bGVTaGVldC5oIGIvU291cmNlL1dlYkNvcmUveG1sL1hT
TFN0eWxlU2hlZXQuaAppbmRleCBhMmJmOGUzMzQ5YWI1NjM2ZjUyNzRlNDUyNGMzMGJiMTg2YzZm
ZGVkLi41ZmJkNmViYTQ3OWQ4N2U5YjdlODIxYWY5ZWEzMmYwMzBmNDY4NTAzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS94bWwvWFNMU3R5bGVTaGVldC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3htbC9YU0xTdHlsZVNoZWV0LmgKQEAgLTg0LDcgKzg0LDcgQEAgcHVibGljOgogICAgIHZvaWQg
bWFya0FzUHJvY2Vzc2VkKCk7CiAgICAgYm9vbCBwcm9jZXNzZWQoKSBjb25zdCB7IHJldHVybiBt
X3Byb2Nlc3NlZDsgfQogICAgIAotICAgIFN0cmluZyB0eXBlKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gInRleHQveG1sIjsgfQorICAgIFN0cmluZyB0eXBlKCkgY29uc3Qgb3ZlcnJpZGUgeyBy
ZXR1cm4gInRleHQveG1sIl9zOyB9CiAgICAgYm9vbCBkaXNhYmxlZCgpIGNvbnN0IG92ZXJyaWRl
IHsgcmV0dXJuIG1faXNEaXNhYmxlZDsgfQogICAgIHZvaWQgc2V0RGlzYWJsZWQoYm9vbCBiKSBv
dmVycmlkZSB7IG1faXNEaXNhYmxlZCA9IGI7IH0KICAgICBOb2RlKiBvd25lck5vZGUoKSBjb25z
dCBvdmVycmlkZSB7IHJldHVybiBtX293bmVyTm9kZTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkdQVS9XR1NML1BhcnNlci5jcHAgYi9Tb3VyY2UvV2ViR1BVL1dHU0wvUGFyc2VyLmNwcAppbmRl
eCA2MjU0ODdkZTE4NWZlZWNmOTRhMWQxYjNmMGJjOTg0NmUzZGI4YTBhLi5lNjJmM2UwYzA4N2Vm
YTFjMWJjMmQwOGIxZjJkNzgxYWE5YzVjYzQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViR1BVL1dH
U0wvUGFyc2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViR1BVL1dHU0wvUGFyc2VyLmNwcApAQCAtMjM0
LDcgKzIzNCw3IEBAIEV4cGVjdGVkPFVuaXF1ZVJlZjxBU1Q6Okdsb2JhbERlY2w+LCBFcnJvcj4g
UGFyc2VyPExleGVyPjo6cGFyc2VHbG9iYWxEZWNsKCkKICAgICAgICAgcmV0dXJuIHsgbWFrZVVu
aXF1ZVJlZjxBU1Q6OkZ1bmN0aW9uRGVjbD4oV1RGTW92ZShmbikpIH07CiAgICAgfQogICAgIGRl
ZmF1bHQ6Ci0gICAgICAgIEZBSUwoIlRyeWluZyB0byBwYXJzZSBhIEdsb2JhbERlY2wsIGV4cGVj
dGVkICd2YXInLCAnZm4nLCBvciAnc3RydWN0Jy4iKTsKKyAgICAgICAgRkFJTCgiVHJ5aW5nIHRv
IHBhcnNlIGEgR2xvYmFsRGVjbCwgZXhwZWN0ZWQgJ3ZhcicsICdmbicsIG9yICdzdHJ1Y3QnLiJf
cyk7CiAgICAgfQogfQogCkBAIC0yODIsNyArMjgyLDcgQEAgRXhwZWN0ZWQ8VW5pcXVlUmVmPEFT
VDo6QXR0cmlidXRlPiwgRXJyb3I+IFBhcnNlcjxMZXhlcj46OnBhcnNlQXR0cmlidXRlKCkKICAg
ICAgICAgICAgIFJFVFVSTl9OT0RFX1JFRihTdGFnZUF0dHJpYnV0ZSwgQVNUOjpTdGFnZUF0dHJp
YnV0ZTo6U3RhZ2U6OlZlcnRleCk7CiAgICAgICAgIGlmIChzdGFnZS5tX2lkZW50ID09ICJmcmFn
bWVudCIpCiAgICAgICAgICAgICBSRVRVUk5fTk9ERV9SRUYoU3RhZ2VBdHRyaWJ1dGUsIEFTVDo6
U3RhZ2VBdHRyaWJ1dGU6OlN0YWdlOjpGcmFnbWVudCk7Ci0gICAgICAgIEZBSUwoIkludmFsaWQg
c3RhZ2UgYXR0cmlidXRlLCB0aGUgb25seSBvcHRpb25zIGFyZSAnY29tcHV0ZScsICd2ZXJ0ZXgn
LCAnZnJhZ21lbnQnLiIpOworICAgICAgICBGQUlMKCJJbnZhbGlkIHN0YWdlIGF0dHJpYnV0ZSwg
dGhlIG9ubHkgb3B0aW9ucyBhcmUgJ2NvbXB1dGUnLCAndmVydGV4JywgJ2ZyYWdtZW50Jy4iX3Mp
OwogICAgIH0KICAgICBpZiAoaWRlbnQubV9pZGVudCA9PSAibG9jYXRpb24iKSB7CiAgICAgICAg
IENPTlNVTUVfVFlQRShQYXJlbkxlZnQpOwpAQCAtMjk3LDcgKzI5Nyw3IEBAIEV4cGVjdGVkPFVu
aXF1ZVJlZjxBU1Q6OkF0dHJpYnV0ZT4sIEVycm9yPiBQYXJzZXI8TGV4ZXI+OjpwYXJzZUF0dHJp
YnV0ZSgpCiAgICAgICAgIENPTlNVTUVfVFlQRShQYXJlblJpZ2h0KTsKICAgICAgICAgUkVUVVJO
X05PREVfUkVGKEJ1aWx0aW5BdHRyaWJ1dGUsIG5hbWUubV9pZGVudCk7CiAgICAgfQotICAgIEZB
SUwoIlVua25vd24gYXR0cmlidXRlLCB0aGUgb25seSBzdXBwb3J0ZWQgYXR0cmlidXRlcyBhcmUg
J2dyb3VwJywgJ2JpbmRpbmcnLCAnc3RhZ2UnLiIpOworICAgIEZBSUwoIlVua25vd24gYXR0cmli
dXRlLCB0aGUgb25seSBzdXBwb3J0ZWQgYXR0cmlidXRlcyBhcmUgJ2dyb3VwJywgJ2JpbmRpbmcn
LCAnc3RhZ2UnLiJfcyk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIExleGVyPgpAQCAtMzYwLDcg
KzM2MCw3IEBAIEV4cGVjdGVkPFVuaXF1ZVJlZjxBU1Q6OlR5cGVEZWNsPiwgRXJyb3I+IFBhcnNl
cjxMZXhlcj46OnBhcnNlVHlwZURlY2woKQogICAgICAgICByZXR1cm4gcGFyc2VUeXBlRGVjbEFm
dGVySWRlbnRpZmllcihXVEZNb3ZlKG5hbWUubV9pZGVudCksIF9zdGFydE9mRWxlbWVudFBvc2l0
aW9uKTsKICAgICB9CiAKLSAgICBGQUlMKCJUcmllZCBwYXJzaW5nIGEgdHlwZSBhbmQgaXQgZGlk
IG5vdCBzdGFydCB3aXRoIGFuIGlkZW50aWZpZXIiKTsKKyAgICBGQUlMKCJUcmllZCBwYXJzaW5n
IGEgdHlwZSBhbmQgaXQgZGlkIG5vdCBzdGFydCB3aXRoIGFuIGlkZW50aWZpZXIiX3MpOwogfQog
CiB0ZW1wbGF0ZTx0eXBlbmFtZSBMZXhlcj4KQEAgLTQ1MCw3ICs0NTAsNyBAQCBFeHBlY3RlZDxB
U1Q6OlN0b3JhZ2VDbGFzcywgRXJyb3I+IFBhcnNlcjxMZXhlcj46OnBhcnNlU3RvcmFnZUNsYXNz
KCkKICAgICAgICAgcmV0dXJuIHsgQVNUOjpTdG9yYWdlQ2xhc3M6OlN0b3JhZ2UgfTsKICAgICB9
CiAKLSAgICBGQUlMKCJFeHBlY3RlZCBvbmUgb2YgJ2Z1bmN0aW9uJy8ncHJpdmF0ZScvJ3N0b3Jh
Z2UnLyd1bmlmb3JtJy8nd29ya2dyb3VwJyIpOworICAgIEZBSUwoIkV4cGVjdGVkIG9uZSBvZiAn
ZnVuY3Rpb24nLydwcml2YXRlJy8nc3RvcmFnZScvJ3VuaWZvcm0nLyd3b3JrZ3JvdXAnIl9zKTsK
IH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgTGV4ZXI+CkBAIC00NzEsNyArNDcxLDcgQEAgRXhwZWN0
ZWQ8QVNUOjpBY2Nlc3NNb2RlLCBFcnJvcj4gUGFyc2VyPExleGVyPjo6cGFyc2VBY2Nlc3NNb2Rl
KCkKICAgICAgICAgcmV0dXJuIHsgQVNUOjpBY2Nlc3NNb2RlOjpSZWFkV3JpdGUgfTsKICAgICB9
CiAKLSAgICBGQUlMKCJFeHBlY3RlZCBvbmUgb2YgJ3JlYWQnLyd3cml0ZScvJ3JlYWRfd3JpdGUn
Iik7CisgICAgRkFJTCgiRXhwZWN0ZWQgb25lIG9mICdyZWFkJy8nd3JpdGUnLydyZWFkX3dyaXRl
JyJfcyk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIExleGVyPgpAQCAtNTQ3LDcgKzU0Nyw3IEBA
IEV4cGVjdGVkPFVuaXF1ZVJlZjxBU1Q6OlN0YXRlbWVudD4sIEVycm9yPiBQYXJzZXI8TGV4ZXI+
OjpwYXJzZVN0YXRlbWVudCgpCiAgICAgICAgIFJFVFVSTl9OT0RFX1JFRihBc3NpZ25tZW50U3Rh
dGVtZW50LCBsaHMubW92ZVRvVW5pcXVlUHRyKCksIFdURk1vdmUocmhzKSk7CiAgICAgfQogICAg
IGRlZmF1bHQ6Ci0gICAgICAgIEZBSUwoIk5vdCBhIHZhbGlkIHN0YXRlbWVudCIpOworICAgICAg
ICBGQUlMKCJOb3QgYSB2YWxpZCBzdGF0ZW1lbnQiX3MpOwogICAgIH0KIH0KIApAQCAtNjk0LDcg
KzY5NCw3IEBAIEV4cGVjdGVkPFVuaXF1ZVJlZjxBU1Q6OkV4cHJlc3Npb24+LCBFcnJvcj4gUGFy
c2VyPExleGVyPjo6cGFyc2VQcmltYXJ5RXhwcmVzc2lvCiAgICAgZGVmYXVsdDoKICAgICAgICAg
YnJlYWs7CiAgICAgfQotICAgIEZBSUwoIkV4cGVjdGVkIG9uZSBvZiAnKCcsIGEgbGl0ZXJhbCwg
b3IgYW4gaWRlbnRpZmllciIpOworICAgIEZBSUwoIkV4cGVjdGVkIG9uZSBvZiAnKCcsIGEgbGl0
ZXJhbCwgb3IgYW4gaWRlbnRpZmllciJfcyk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIExleGVy
PgpAQCAtNzM0LDcgKzczNCw3IEBAIEV4cGVjdGVkPFVuaXF1ZVJlZjxBU1Q6OkV4cHJlc3Npb24+
LCBFcnJvcj4gUGFyc2VyPExleGVyPjo6cGFyc2VDb3JlTEhTRXhwcmVzc2lvCiAgICAgICAgIGJy
ZWFrOwogICAgIH0KIAotICAgIEZBSUwoIlRyaWVkIHRvIHBhcnNlIHRoZSBsZWZ0LWhhbmQgc2lk
ZSBvZiBhbiBhc3NpZ25tZW50IGFuZCBmYWlsZWQiKTsKKyAgICBGQUlMKCJUcmllZCB0byBwYXJz
ZSB0aGUgbGVmdC1oYW5kIHNpZGUgb2YgYW4gYXNzaWdubWVudCBhbmQgZmFpbGVkIl9zKTsKIH0K
IAogdGVtcGxhdGU8dHlwZW5hbWUgTGV4ZXI+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViR1BVL1dH
U0wvVG9rZW4uY3BwIGIvU291cmNlL1dlYkdQVS9XR1NML1Rva2VuLmNwcAppbmRleCBkYjNjMGE0
M2UxMDM3MmViOTk0MWZjZjE2ZDhiMjBlZGU3ZjA4OTEyLi42NzMxYWEyMmMxMmEzMzAzNjhjZmIx
Yjc2MGM5NjZlZTEwZjFhYzEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViR1BVL1dHU0wvVG9rZW4u
Y3BwCisrKyBiL1NvdXJjZS9XZWJHUFUvV0dTTC9Ub2tlbi5jcHAKQEAgLTMyLDg5ICszMiw4OSBA
QCBTdHJpbmcgdG9TdHJpbmcoVG9rZW5UeXBlIHR5cGUpCiB7CiAgICAgc3dpdGNoICh0eXBlKSB7
CiAgICAgY2FzZSBUb2tlblR5cGU6OkludmFsaWQ6Ci0gICAgICAgIHJldHVybiAiSW52YWxpZCI7
CisgICAgICAgIHJldHVybiAiSW52YWxpZCJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6RW5kT2ZG
aWxlOgotICAgICAgICByZXR1cm4gIkVPRiI7CisgICAgICAgIHJldHVybiAiRU9GIl9zOwogICAg
IGNhc2UgVG9rZW5UeXBlOjpJbnRlZ2VyTGl0ZXJhbDoKLSAgICAgICAgcmV0dXJuICJJbnRlZ2Vy
TGl0ZXJhbCI7CisgICAgICAgIHJldHVybiAiSW50ZWdlckxpdGVyYWwiX3M7CiAgICAgY2FzZSBU
b2tlblR5cGU6OkludGVnZXJMaXRlcmFsU2lnbmVkOgotICAgICAgICByZXR1cm4gIkludGVnZXJM
aXRlcmFsU2lnbmVkIjsKKyAgICAgICAgcmV0dXJuICJJbnRlZ2VyTGl0ZXJhbFNpZ25lZCJfczsK
ICAgICBjYXNlIFRva2VuVHlwZTo6SW50ZWdlckxpdGVyYWxVbnNpZ25lZDoKLSAgICAgICAgcmV0
dXJuICJJbnRlZ2VyTGl0ZXJhbFVuc2lnbmVkIjsKKyAgICAgICAgcmV0dXJuICJJbnRlZ2VyTGl0
ZXJhbFVuc2lnbmVkIl9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpEZWNpbWFsRmxvYXRMaXRlcmFs
OgotICAgICAgICByZXR1cm4gIkRlY2ltYWxGbG9hdExpdGVyYWwiOworICAgICAgICByZXR1cm4g
IkRlY2ltYWxGbG9hdExpdGVyYWwiX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6OkhleEZsb2F0TGl0
ZXJhbDoKLSAgICAgICAgcmV0dXJuICJIZXhGbG9hdExpdGVyYWwiOworICAgICAgICByZXR1cm4g
IkhleEZsb2F0TGl0ZXJhbCJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6SWRlbnRpZmllcjoKLSAg
ICAgICAgcmV0dXJuICJJZGVudGlmaWVyIjsKKyAgICAgICAgcmV0dXJuICJJZGVudGlmaWVyIl9z
OwogICAgIGNhc2UgVG9rZW5UeXBlOjpSZXNlcnZlZFdvcmQ6Ci0gICAgICAgIHJldHVybiAiUmVz
ZXJ2ZWRXb3JkIjsKKyAgICAgICAgcmV0dXJuICJSZXNlcnZlZFdvcmQiX3M7CiAgICAgY2FzZSBU
b2tlblR5cGU6OktleXdvcmRTdHJ1Y3Q6Ci0gICAgICAgIHJldHVybiAic3RydWN0IjsKKyAgICAg
ICAgcmV0dXJuICJzdHJ1Y3QiX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6OktleXdvcmRGbjoKLSAg
ICAgICAgcmV0dXJuICJmbiI7CisgICAgICAgIHJldHVybiAiZm4iX3M7CiAgICAgY2FzZSBUb2tl
blR5cGU6OktleXdvcmRGdW5jdGlvbjoKLSAgICAgICAgcmV0dXJuICJmdW5jdGlvbiI7CisgICAg
ICAgIHJldHVybiAiZnVuY3Rpb24iX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6OktleXdvcmRQcml2
YXRlOgotICAgICAgICByZXR1cm4gInByaXZhdGUiOworICAgICAgICByZXR1cm4gInByaXZhdGUi
X3M7CiAgICAgY2FzZSBUb2tlblR5cGU6OktleXdvcmRSZWFkOgotICAgICAgICByZXR1cm4gInJl
YWQiOworICAgICAgICByZXR1cm4gInJlYWQiX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6OktleXdv
cmRSZWFkV3JpdGU6Ci0gICAgICAgIHJldHVybiAicmVhZF93cml0ZSI7CisgICAgICAgIHJldHVy
biAicmVhZF93cml0ZSJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6S2V5d29yZFJldHVybjoKLSAg
ICAgICAgcmV0dXJuICJyZXR1cm4iOworICAgICAgICByZXR1cm4gInJldHVybiJfczsKICAgICBj
YXNlIFRva2VuVHlwZTo6S2V5d29yZFN0b3JhZ2U6Ci0gICAgICAgIHJldHVybiAic3RvcmFnZSI7
CisgICAgICAgIHJldHVybiAic3RvcmFnZSJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6S2V5d29y
ZFVuaWZvcm06Ci0gICAgICAgIHJldHVybiAidW5pZm9ybSI7CisgICAgICAgIHJldHVybiAidW5p
Zm9ybSJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6S2V5d29yZFZhcjoKLSAgICAgICAgcmV0dXJu
ICJ2YXIiOworICAgICAgICByZXR1cm4gInZhciJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6S2V5
d29yZFdvcmtncm91cDoKLSAgICAgICAgcmV0dXJuICJ3b3JrZ3JvdXAiOworICAgICAgICByZXR1
cm4gIndvcmtncm91cCJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6S2V5d29yZFdyaXRlOgotICAg
ICAgICByZXR1cm4gIndyaXRlIjsKKyAgICAgICAgcmV0dXJuICJ3cml0ZSJfczsKICAgICBjYXNl
IFRva2VuVHlwZTo6S2V5d29yZEkzMjoKLSAgICAgICAgcmV0dXJuICJpMzIiOworICAgICAgICBy
ZXR1cm4gImkzMiJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6S2V5d29yZFUzMjoKLSAgICAgICAg
cmV0dXJuICJ1MzIiOworICAgICAgICByZXR1cm4gInUzMiJfczsKICAgICBjYXNlIFRva2VuVHlw
ZTo6S2V5d29yZEYzMjoKLSAgICAgICAgcmV0dXJuICJmMzIiOworICAgICAgICByZXR1cm4gImYz
MiJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6S2V5d29yZEJvb2w6Ci0gICAgICAgIHJldHVybiAi
Ym9vbCI7CisgICAgICAgIHJldHVybiAiYm9vbCJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6TGl0
ZXJhbFRydWU6Ci0gICAgICAgIHJldHVybiAidHJ1ZSI7CisgICAgICAgIHJldHVybiAidHJ1ZSJf
czsKICAgICBjYXNlIFRva2VuVHlwZTo6TGl0ZXJhbEZhbHNlOgotICAgICAgICByZXR1cm4gImZh
bHNlIjsKKyAgICAgICAgcmV0dXJuICJmYWxzZSJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6QXJy
b3c6Ci0gICAgICAgIHJldHVybiAiLT4iOworICAgICAgICByZXR1cm4gIi0+Il9zOwogICAgIGNh
c2UgVG9rZW5UeXBlOjpBdHRyaWJ1dGU6Ci0gICAgICAgIHJldHVybiAiQCI7CisgICAgICAgIHJl
dHVybiAiQCJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6QnJhY2tldExlZnQ6Ci0gICAgICAgIHJl
dHVybiAiWyI7CisgICAgICAgIHJldHVybiAiWyJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6QnJh
Y2tldFJpZ2h0OgotICAgICAgICByZXR1cm4gIl0iOworICAgICAgICByZXR1cm4gIl0iX3M7CiAg
ICAgY2FzZSBUb2tlblR5cGU6OkJyYWNlTGVmdDoKLSAgICAgICAgcmV0dXJuICJ7IjsKKyAgICAg
ICAgcmV0dXJuICJ7Il9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpCcmFjZVJpZ2h0OgotICAgICAg
ICByZXR1cm4gIn0iOworICAgICAgICByZXR1cm4gIn0iX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6
OkNvbG9uOgotICAgICAgICByZXR1cm4gIjoiOworICAgICAgICByZXR1cm4gIjoiX3M7CiAgICAg
Y2FzZSBUb2tlblR5cGU6OkNvbW1hOgotICAgICAgICByZXR1cm4gIiwiOworICAgICAgICByZXR1
cm4gIiwiX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6OkVxdWFsOgotICAgICAgICByZXR1cm4gIj0i
OworICAgICAgICByZXR1cm4gIj0iX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6OkdUOgotICAgICAg
ICByZXR1cm4gIj4iOworICAgICAgICByZXR1cm4gIj4iX3M7CiAgICAgY2FzZSBUb2tlblR5cGU6
OkxUOgotICAgICAgICByZXR1cm4gIjwiOworICAgICAgICByZXR1cm4gIjwiX3M7CiAgICAgY2Fz
ZSBUb2tlblR5cGU6OlBlcmlvZDoKLSAgICAgICAgcmV0dXJuICIuIjsKKyAgICAgICAgcmV0dXJu
ICIuIl9zOwogICAgIGNhc2UgVG9rZW5UeXBlOjpQYXJlbkxlZnQ6Ci0gICAgICAgIHJldHVybiAi
KCI7CisgICAgICAgIHJldHVybiAiKCJfczsKICAgICBjYXNlIFRva2VuVHlwZTo6UGFyZW5SaWdo
dDoKLSAgICAgICAgcmV0dXJuICIpIjsKKyAgICAgICAgcmV0dXJuICIpIl9zOwogICAgIGNhc2Ug
VG9rZW5UeXBlOjpTZW1pY29sb246Ci0gICAgICAgIHJldHVybiAiOyI7CisgICAgICAgIHJldHVy
biAiOyJfczsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL0Fk
YXB0ZXIubW0gYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9BZGFwdGVyLm1tCmluZGV4IDFiYmFkNjFh
NmNlN2UyOTc1NmRlMTU2MWFhNDYyZGU1ZDFhNjgyNjguLjYwMGQxZDZlN2JmMGY3N2JkZDJmNTE4
ZmY5NDM1MDc4MTI1MmZhMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL0FkYXB0
ZXIubW0KKysrIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvQWRhcHRlci5tbQpAQCAtMTIzLDcgKzEy
Myw3IEBAIHZvaWQgQWRhcHRlcjo6cmVxdWVzdERldmljZShjb25zdCBXR1BVRGV2aWNlRGVzY3Jp
cHRvciYgZGVzY3JpcHRvciwgQ29tcGxldGlvbkhhCiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
LSAgICBjYWxsYmFjayhXR1BVUmVxdWVzdERldmljZVN0YXR1c19TdWNjZXNzLCBEZXZpY2U6OmNy
ZWF0ZShtX2RldmljZSwgZGVzY3JpcHRvci5sYWJlbCwgbV9pbnN0YW5jZSksIHsgfSk7CisgICAg
Y2FsbGJhY2soV0dQVVJlcXVlc3REZXZpY2VTdGF0dXNfU3VjY2VzcywgRGV2aWNlOjpjcmVhdGUo
bV9kZXZpY2UsIFN0cmluZyB7IGRlc2NyaXB0b3IubGFiZWwgfSwgbV9pbnN0YW5jZSksIHsgfSk7
CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkdQVQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkdQVS9X
ZWJHUFUvQnVmZmVyLm1tIGIvU291cmNlL1dlYkdQVS9XZWJHUFUvQnVmZmVyLm1tCmluZGV4IGZi
YjJmNDRkZjllNTM2Y2U1Y2ZlZGUxMWY3ODVkYzhjZGExZmJkYzUuLjNiOTIyMDAzMThkYzUxN2Qy
YTBlYjZlYzM5OWVhNTU0MWM2YTUxNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJHUFUvV2ViR1BV
L0J1ZmZlci5tbQorKysgYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9CdWZmZXIubW0KQEAgLTI5MSw3
ICsyOTEsNyBAQCB2b2lkIEJ1ZmZlcjo6bWFwQXN5bmMoV0dQVU1hcE1vZGVGbGFncyBtb2RlLCBz
aXplX3Qgb2Zmc2V0LCBzaXplX3Qgc2l6ZSwgQ29tcGxldAogICAgIC8vICJJZiBhbnkgb2YgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSB1bnNhdGlzZmllZDoiCiAgICAgaWYgKCF2YWxpZGF0
ZU1hcEFzeW5jKG1vZGUsIG9mZnNldCwgcmFuZ2VTaXplKSkgewogICAgICAgICAvLyAiUmVjb3Jk
IGEgdmFsaWRhdGlvbiBlcnJvciBvbiB0aGUgY3VycmVudCBzY29wZS4iCi0gICAgICAgIG1fZGV2
aWNlLT5nZW5lcmF0ZUFWYWxpZGF0aW9uRXJyb3IoIlZhbGlkYXRpb24gZmFpbHVyZS4iKTsKKyAg
ICAgICAgbV9kZXZpY2UtPmdlbmVyYXRlQVZhbGlkYXRpb25FcnJvcigiVmFsaWRhdGlvbiBmYWls
dXJlLiJfcyk7CiAKICAgICAgICAgLy8gIlJldHVybiBhIHByb21pc2UgcmVqZWN0ZWQgd2l0aCBh
biBPcGVyYXRpb25FcnJvciBvbiB0aGUgRGV2aWNlIHRpbWVsaW5lLiIKICAgICAgICAgY2FsbGJh
Y2soV0dQVUJ1ZmZlck1hcEFzeW5jU3RhdHVzX0Vycm9yKTsKQEAgLTM2NSw3ICszNjUsNyBAQCB2
b2lkIEJ1ZmZlcjo6dW5tYXAoKQogICAgIC8vICJJZiBhbnkgb2YgdGhlIGZvbGxvd2luZyByZXF1
aXJlbWVudHMgYXJlIHVubWV0IgogICAgIGlmICghdmFsaWRhdGVVbm1hcCgpKSB7CiAgICAgICAg
IC8vICJnZW5lcmF0ZSBhIHZhbGlkYXRpb24gZXJyb3IgYW5kIHN0b3AuIgotICAgICAgICBtX2Rl
dmljZS0+Z2VuZXJhdGVBVmFsaWRhdGlvbkVycm9yKCJWYWxpZGF0aW9uIGZhaWx1cmUuIik7Cisg
ICAgICAgIG1fZGV2aWNlLT5nZW5lcmF0ZUFWYWxpZGF0aW9uRXJyb3IoIlZhbGlkYXRpb24gZmFp
bHVyZS4iX3MpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViR1BVL1dlYkdQVS9Db21tYW5kRW5jb2Rlci5tbSBiL1NvdXJjZS9XZWJHUFUvV2ViR1BVL0Nv
bW1hbmRFbmNvZGVyLm1tCmluZGV4IGFlNGJhYzYwODViNGM1ZjJlZTRjZDljN2MzYTNlMGIwM2Q3
NmQ3OTIuLjk2OThjOGEwOTlmZmQ2YzA5Mzc4NDM5NGE4MTJjMTgyZjBlYjdkNWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL0NvbW1hbmRFbmNvZGVyLm1tCisrKyBiL1NvdXJjZS9X
ZWJHUFUvV2ViR1BVL0NvbW1hbmRFbmNvZGVyLm1tCkBAIC0xNDksNyArMTQ5LDcgQEAgdm9pZCBD
b21tYW5kRW5jb2Rlcjo6Y29weUJ1ZmZlclRvQnVmZmVyKGNvbnN0IEJ1ZmZlciYgc291cmNlLCB1
aW50NjRfdCBzb3VyY2VPZmYKICAgICAvLyAiSWYgYW55IG9mIHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUgdW5zYXRpc2ZpZWQKICAgICBpZiAoIXZhbGlkYXRlQ29weUJ1ZmZlclRvQnVmZmVy
KHNvdXJjZSwgc291cmNlT2Zmc2V0LCBkZXN0aW5hdGlvbiwgZGVzdGluYXRpb25PZmZzZXQsIHNp
emUpKSB7CiAgICAgICAgIC8vICJnZW5lcmF0ZSBhIHZhbGlkYXRpb24gZXJyb3IgYW5kIHN0b3Au
IgotICAgICAgICBtX2RldmljZS0+Z2VuZXJhdGVBVmFsaWRhdGlvbkVycm9yKCJWYWxpZGF0aW9u
IGZhaWx1cmUuIik7CisgICAgICAgIG1fZGV2aWNlLT5nZW5lcmF0ZUFWYWxpZGF0aW9uRXJyb3Io
IlZhbGlkYXRpb24gZmFpbHVyZS4iX3MpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0y
MjAsNyArMjIwLDcgQEAgdm9pZCBDb21tYW5kRW5jb2Rlcjo6Y2xlYXJCdWZmZXIoY29uc3QgQnVm
ZmVyJiBidWZmZXIsIHVpbnQ2NF90IG9mZnNldCwgdWludDY0X3QKICAgICAvLyAiSWYgYW55IG9m
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucyBhcmUgdW5zYXRpc2ZpZWQiCiAgICAgaWYgKCF2YWxp
ZGF0ZUNsZWFyQnVmZmVyKGJ1ZmZlciwgb2Zmc2V0LCBzaXplKSkgewogICAgICAgICAvLyAiZ2Vu
ZXJhdGUgYSB2YWxpZGF0aW9uIGVycm9yIGFuZCBzdG9wLiIKLSAgICAgICAgbV9kZXZpY2UtPmdl
bmVyYXRlQVZhbGlkYXRpb25FcnJvcigiVmFsaWRhdGlvbiBmYWlsdXJlLiIpOworICAgICAgICBt
X2RldmljZS0+Z2VuZXJhdGVBVmFsaWRhdGlvbkVycm9yKCJWYWxpZGF0aW9uIGZhaWx1cmUuIl9z
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMjYyLDcgKzI2Miw3IEBAIFJlZlB0cjxD
b21tYW5kQnVmZmVyPiBDb21tYW5kRW5jb2Rlcjo6ZmluaXNoKGNvbnN0IFdHUFVDb21tYW5kQnVm
ZmVyRGVzY3JpcHRvciYKICAgICAvLyAiSWYgdmFsaWRhdGlvblN1Y2NlZWRlZCBpcyBmYWxzZSwg
dGhlbjoiCiAgICAgaWYgKHZhbGlkYXRpb25GYWlsZWQpIHsKICAgICAgICAgLy8gIkdlbmVyYXRl
IGEgdmFsaWRhdGlvbiBlcnJvci4iCi0gICAgICAgIG1fZGV2aWNlLT5nZW5lcmF0ZUFWYWxpZGF0
aW9uRXJyb3IoIlZhbGlkYXRpb24gZmFpbHVyZS4iKTsKKyAgICAgICAgbV9kZXZpY2UtPmdlbmVy
YXRlQVZhbGlkYXRpb25FcnJvcigiVmFsaWRhdGlvbiBmYWlsdXJlLiJfcyk7CiAKICAgICAgICAg
Ly8gRklYTUU6ICJSZXR1cm4gYSBuZXcgaW52YWxpZCBHUFVDb21tYW5kQnVmZmVyLiIKICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9Db21w
dXRlUGlwZWxpbmUubW0gYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9Db21wdXRlUGlwZWxpbmUubW0K
aW5kZXggZWQ5YjhjZmY2NDE0MzAxMmU3N2IzZTIxZmM1ZTljYWIwNzU5MzY0Yy4uZTRhZDc3YWY5
N2EzYzEzODkyMWI0N2QwMjY1OThiOGJjNzZkYTRhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkdQ
VS9XZWJHUFUvQ29tcHV0ZVBpcGVsaW5lLm1tCisrKyBiL1NvdXJjZS9XZWJHUFUvV2ViR1BVL0Nv
bXB1dGVQaXBlbGluZS5tbQpAQCAtNzEsNyArNzEsNyBAQCBzdGF0aWMgTVRMRnVuY3Rpb25Db25z
dGFudFZhbHVlcyAqY3JlYXRlQ29uc3RhbnRWYWx1ZXModWludDMyX3QgY29uc3RhbnRDb3VudCwg
YwogICAgIGF1dG8gY29uc3RhbnRWYWx1ZXMgPSBbTVRMRnVuY3Rpb25Db25zdGFudFZhbHVlcyBu
ZXddOwogICAgIGZvciAodWludDMyX3QgaSA9IDA7IGkgPCBjb25zdGFudENvdW50OyArK2kpIHsK
ICAgICAgICAgY29uc3QgYXV0byYgZW50cnkgPSBjb25zdGFudHNbaV07Ci0gICAgICAgIGF1dG8g
bmFtZUl0ZXJhdG9yID0gZW50cnlQb2ludEluZm9ybWF0aW9uLnNwZWNpYWxpemF0aW9uQ29uc3Rh
bnRJbmRpY2VzLmZpbmQoZW50cnkua2V5KTsKKyAgICAgICAgYXV0byBuYW1lSXRlcmF0b3IgPSBl
bnRyeVBvaW50SW5mb3JtYXRpb24uc3BlY2lhbGl6YXRpb25Db25zdGFudEluZGljZXMuZmluZChT
dHJpbmcgeyBlbnRyeS5rZXkgfSk7CiAgICAgICAgIGlmIChuYW1lSXRlcmF0b3IgPT0gZW50cnlQ
b2ludEluZm9ybWF0aW9uLnNwZWNpYWxpemF0aW9uQ29uc3RhbnRJbmRpY2VzLmVuZCgpKQogICAg
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgICAgIGF1dG8gc3BlY2lhbGl6YXRpb25Db25z
dGFudEluZGV4ID0gbmFtZUl0ZXJhdG9yLT52YWx1ZTsKQEAgLTE1MCw3ICsxNTAsNyBAQCBSZWZQ
dHI8Q29tcHV0ZVBpcGVsaW5lPiBEZXZpY2U6OmNyZWF0ZUNvbXB1dGVQaXBlbGluZShjb25zdCBX
R1BVQ29tcHV0ZVBpcGVsaW5lRAogICAgIGNvbnN0IFBpcGVsaW5lTGF5b3V0JiBwaXBlbGluZUxh
eW91dCA9IFdlYkdQVTo6ZnJvbUFQSShkZXNjcmlwdG9yLmxheW91dCk7CiAgICAgYXV0byBsYWJl
bCA9IGZyb21BUEkoZGVzY3JpcHRvci5sYWJlbCk7CiAKLSAgICBhdXRvIGxpYnJhcnlDcmVhdGlv
blJlc3VsdCA9IGNyZWF0ZUxpYnJhcnkobV9kZXZpY2UsIHNoYWRlck1vZHVsZSwgcGlwZWxpbmVM
YXlvdXQsIGRlc2NyaXB0b3IuY29tcHV0ZS5lbnRyeVBvaW50LCBsYWJlbCk7CisgICAgYXV0byBs
aWJyYXJ5Q3JlYXRpb25SZXN1bHQgPSBjcmVhdGVMaWJyYXJ5KG1fZGV2aWNlLCBzaGFkZXJNb2R1
bGUsIHBpcGVsaW5lTGF5b3V0LCBTdHJpbmcgeyBkZXNjcmlwdG9yLmNvbXB1dGUuZW50cnlQb2lu
dCB9LCBsYWJlbCk7CiAgICAgaWYgKCFsaWJyYXJ5Q3JlYXRpb25SZXN1bHQpCiAgICAgICAgIHJl
dHVybiBudWxscHRyOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9RdWV1ZS5t
bSBiL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1F1ZXVlLm1tCmluZGV4IGI3YmQ1N2NmNWE0MjZlYzI2
ZTZmOWIxZTI5ZDk5ZmRlYWRmNzA1YzQuLjBkMWIzOWE4NGY2NDIzNTc5YTllYzAzYjVhYTI0MWJk
ZTYzMWQ2NjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1F1ZXVlLm1tCisrKyBi
L1NvdXJjZS9XZWJHUFUvV2ViR1BVL1F1ZXVlLm1tCkBAIC0xMzEsNyArMTMxLDcgQEAgdm9pZCBR
dWV1ZTo6c3VibWl0KFZlY3RvcjxzdGQ6OnJlZmVyZW5jZV93cmFwcGVyPGNvbnN0IENvbW1hbmRC
dWZmZXI+PiYmIGNvbW1hbmQKICAgICAvLyAiSWYgYW55IG9mIHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucyBhcmUgdW5zYXRpc2ZpZWQiCiAgICAgaWYgKCF2YWxpZGF0ZVN1Ym1pdCgpKSB7CiAgICAg
ICAgIC8vICJnZW5lcmF0ZSBhIHZhbGlkYXRpb24gZXJyb3IgYW5kIHN0b3AuIgotICAgICAgICBt
X2RldmljZS5nZW5lcmF0ZUFWYWxpZGF0aW9uRXJyb3IoIlZhbGlkYXRpb24gZmFpbHVyZS4iKTsK
KyAgICAgICAgbV9kZXZpY2UuZ2VuZXJhdGVBVmFsaWRhdGlvbkVycm9yKCJWYWxpZGF0aW9uIGZh
aWx1cmUuIl9zKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkdQVS9XZWJHUFUvU2FtcGxlci5tbSBiL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1NhbXBsZXIu
bW0KaW5kZXggMmY3ZjcyN2YxN2Q5NzNkMGE0OWNlMzRlZWZhYzcxMzg1NzMzNzZiNi4uODI3Mzkw
NDk5NGNiNzA5ZjA5NGUyNDU4Nzk5YWNlYzY3NzU4OWI3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkdQVS9XZWJHUFUvU2FtcGxlci5tbQorKysgYi9Tb3VyY2UvV2ViR1BVL1dlYkdQVS9TYW1wbGVy
Lm1tCkBAIC0xMzYsNyArMTM2LDcgQEAgUmVmUHRyPFNhbXBsZXI+IERldmljZTo6Y3JlYXRlU2Ft
cGxlcihjb25zdCBXR1BVU2FtcGxlckRlc2NyaXB0b3ImIGRlc2NyaXB0b3IpCiAgICAgLy8gIklm
IHZhbGlkYXRpbmcgR1BVU2FtcGxlckRlc2NyaXB0b3IodGhpcywgZGVzY3JpcHRvcikgcmV0dXJu
cyBmYWxzZToiCiAgICAgaWYgKCF2YWxpZGF0ZUNyZWF0ZVNhbXBsZXIoKnRoaXMsIGRlc2NyaXB0
b3IpKSB7CiAgICAgICAgIC8vICJHZW5lcmF0ZSBhIHZhbGlkYXRpb24gZXJyb3IuIgotICAgICAg
ICBnZW5lcmF0ZUFWYWxpZGF0aW9uRXJyb3IoIlZhbGlkYXRpb24gZmFpbHVyZS4iKTsKKyAgICAg
ICAgZ2VuZXJhdGVBVmFsaWRhdGlvbkVycm9yKCJWYWxpZGF0aW9uIGZhaWx1cmUuIl9zKTsKIAog
ICAgICAgICAvLyAiQ3JlYXRlIGEgbmV3IGludmFsaWQgR1BVU2FtcGxlciBhbmQgcmV0dXJuIHRo
ZSByZXN1bHQuIgogICAgICAgICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJHUFUvV2ViR1BVL1NoYWRlck1vZHVsZS5tbSBiL1NvdXJjZS9XZWJHUFUvV2ViR1BVL1NoYWRl
ck1vZHVsZS5tbQppbmRleCBlMDA3NTVjZmI1NWI0YzY2YTg5MjdkZDNlNWUwMmVhOTEwMTcwYzQ0
Li42MDVlMzcyMzM2MTA1YWUwODcxMzdkYjYxNjQ2OTgxMTJiY2ZmODdiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViR1BVL1dlYkdQVS9TaGFkZXJNb2R1bGUubW0KKysrIGIvU291cmNlL1dlYkdQVS9X
ZWJHUFUvU2hhZGVyTW9kdWxlLm1tCkBAIC04OCw5ICs4OCwxMCBAQCBzdGF0aWMgUmVmUHRyPFNo
YWRlck1vZHVsZT4gZWFybHlDb21waWxlU2hhZGVyTW9kdWxlKGlkPE1UTERldmljZT4gZGV2aWNl
LCBzdGQ6OgogICAgICAgICBjb25zdCBhdXRvJiBoaW50ID0gc3VwcGxpZWRIaW50cy5oaW50c1tp
XTsKICAgICAgICAgaWYgKGhpbnQubmV4dEluQ2hhaW4pCiAgICAgICAgICAgICByZXR1cm4gbnVs
bHB0cjsKLSAgICAgICAgaGludHMuYWRkKGhpbnQua2V5LCBXZWJHUFU6OmZyb21BUEkoaGludC5o
aW50LmxheW91dCkpOworICAgICAgICBTdHJpbmcgaGludEtleSB7IGhpbnQua2V5IH07CisgICAg
ICAgIGhpbnRzLmFkZChoaW50S2V5LCBXZWJHUFU6OmZyb21BUEkoaGludC5oaW50LmxheW91dCkp
OwogICAgICAgICBhdXRvIGNvbnZlcnRlZFBpcGVsaW5lTGF5b3V0ID0gU2hhZGVyTW9kdWxlOjpj
b252ZXJ0UGlwZWxpbmVMYXlvdXQoV2ViR1BVOjpmcm9tQVBJKGhpbnQuaGludC5sYXlvdXQpKTsK
LSAgICAgICAgd2dzbEhpbnRzLmFkZChoaW50LmtleSwgV1RGTW92ZShjb252ZXJ0ZWRQaXBlbGlu
ZUxheW91dCkpOworICAgICAgICB3Z3NsSGludHMuYWRkKGhpbnRLZXksIFdURk1vdmUoY29udmVy
dGVkUGlwZWxpbmVMYXlvdXQpKTsKICAgICB9CiAgICAgYXV0byBwcmVwYXJlUmVzdWx0ID0gV0dT
TDo6cHJlcGFyZShzdGQ6OmdldDxXR1NMOjpTdWNjZXNzZnVsQ2hlY2s+KGNoZWNrUmVzdWx0KS5h
c3QsIHdnc2xIaW50cyk7CiAgICAgYXV0byBsaWJyYXJ5ID0gU2hhZGVyTW9kdWxlOjpjcmVhdGVM
aWJyYXJ5KGRldmljZSwgcHJlcGFyZVJlc3VsdC5tc2wsIFdURk1vdmUobGFiZWwpKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KaW5kZXggZmQ3NGZlYWIx
ZDFlMTJmYjA2MTJhMDg1NWRlNjhmYzc2NDFiMTEzZC4uMDA3NGRjYTc3MjdhOTY4NzRmYjFlZDM4
NDdmNTE5ZTE2MDRhNTNmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvV2ViVmlld0ltcGwubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2Vi
Vmlld0ltcGwubW0KQEAgLTQ0NzgsNyArNDQ3OCw3IEBAIHZvaWQgV2ViVmlld0ltcGw6OnNldFBy
b21pc2VkRGF0YUZvckltYWdlKFdlYkNvcmU6OkltYWdlKiBpbWFnZSwgTlNTdHJpbmcgKmZpbGVu
CiAKICAgICBSZXRhaW5QdHI8TlNEYXRhPiBjdXN0b21EYXRhQnVmZmVyOwogICAgIGlmIChvcmln
aW5JZGVudGlmaWVyLmxlbmd0aCkgewotICAgICAgICBbdHlwZXMgYWRkT2JqZWN0OkAoV2ViQ29y
ZTo6UGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpKV07CisgICAgICAgIFt0eXBlcyBh
ZGRPYmplY3Q6QChXZWJDb3JlOjpQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkuY2hh
cmFjdGVycygpKV07CiAgICAgICAgIFdlYkNvcmU6OlBhc3RlYm9hcmRDdXN0b21EYXRhIGN1c3Rv
bURhdGE7CiAgICAgICAgIGN1c3RvbURhdGEuc2V0T3JpZ2luKG9yaWdpbklkZW50aWZpZXIpOwog
ICAgICAgICBjdXN0b21EYXRhQnVmZmVyID0gY3VzdG9tRGF0YS5jcmVhdGVTaGFyZWRCdWZmZXIo
KS0+Y3JlYXRlTlNEYXRhKCk7CkBAIC00NDk3LDcgKzQ0OTcsNyBAQCBBTExPV19ERVBSRUNBVEVE
X0RFQ0xBUkFUSU9OU19FTkQKICAgICB9CiAKICAgICBpZiAoY3VzdG9tRGF0YUJ1ZmZlcikKLSAg
ICAgICAgW3Bhc3RlYm9hcmQgc2V0RGF0YTpjdXN0b21EYXRhQnVmZmVyLmdldCgpIGZvclR5cGU6
QChXZWJDb3JlOjpQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkpXTsKKyAgICAgICAg
W3Bhc3RlYm9hcmQgc2V0RGF0YTpjdXN0b21EYXRhQnVmZmVyLmdldCgpIGZvclR5cGU6QChXZWJD
b3JlOjpQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkuY2hhcmFjdGVycygpKV07CiAK
ICAgICBtX3Byb21pc2VkSW1hZ2UgPSBpbWFnZTsKIH0KQEAgLTQ2MjQsNyArNDYyNCw3IEBAIHZv
aWQgV2ViVmlld0ltcGw6OnJlcXVlc3RET01QYXN0ZUFjY2VzcyhXZWJDb3JlOjpET01QYXN0ZUFj
Y2Vzc0NhdGVnb3J5IHBhc3RlQWNjCiAgICAgQVNTRVJUKCFtX2RvbVBhc3RlUmVxdWVzdEhhbmRs
ZXIpOwogICAgIGhpZGVET01QYXN0ZU1lbnVXaXRoUmVzdWx0KFdlYkNvcmU6OkRPTVBhc3RlQWNj
ZXNzUmVzcG9uc2U6OkRlbmllZEZvckdlc3R1cmUpOwogCi0gICAgTlNEYXRhICpkYXRhID0gW3Bh
c3RlYm9hcmRGb3JBY2Nlc3NDYXRlZ29yeShwYXN0ZUFjY2Vzc0NhdGVnb3J5KSBkYXRhRm9yVHlw
ZTpAKFdlYkNvcmU6OlBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKSldOworICAgIE5T
RGF0YSAqZGF0YSA9IFtwYXN0ZWJvYXJkRm9yQWNjZXNzQ2F0ZWdvcnkocGFzdGVBY2Nlc3NDYXRl
Z29yeSkgZGF0YUZvclR5cGU6QChXZWJDb3JlOjpQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FU
eXBlKCkuY2hhcmFjdGVycygpKV07CiAgICAgYXV0byBidWZmZXIgPSBXZWJDb3JlOjpTaGFyZWRC
dWZmZXI6OmNyZWF0ZShkYXRhKTsKICAgICBpZiAoV2ViQ29yZTo6UGFzdGVib2FyZEN1c3RvbURh
dGE6OmZyb21TaGFyZWRCdWZmZXIoYnVmZmVyLmdldCgpKS5vcmlnaW4oKSA9PSBvcmlnaW5JZGVu
dGlmaWVyKSB7CiAgICAgICAgIG1fcGFnZS0+Z3JhbnRBY2Nlc3NUb0N1cnJlbnRQYXN0ZWJvYXJk
RGF0YShwYXN0ZWJvYXJkTmFtZUZvckFjY2Vzc0NhdGVnb3J5KHBhc3RlQWNjZXNzQ2F0ZWdvcnkp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9u
L0NvY29hL0xvY2FsQXV0aGVudGljYXRvci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YkF1dGhlbnRpY2F0aW9uL0NvY29hL0xvY2FsQXV0aGVudGljYXRvci5tbQppbmRleCBiZWU2Yjky
MzgyY2FhZjNiNGY5ZjBlN2NlODJjMDFhNzY3MzMyODJjLi4yYTA1Y2Y0MDNkZWZjM2I0NTA0ODkx
OGE3ZTQ0ZDA5MDM5Yjg0ZjA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9Mb2NhbEF1dGhlbnRpY2F0b3IubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvTG9jYWxBdXRoZW50aWNh
dG9yLm1tCkBAIC00NDQsNyArNDQ0LDcgQEAgdm9pZCBMb2NhbEF1dGhlbnRpY2F0b3I6OmNvbnRp
bnVlTWFrZUNyZWRlbnRpYWxBZnRlclVzZXJWZXJpZmljYXRpb24oU2VjQWNjZXNzQ28KICAgICAg
ICAgZGVsZXRlRHVwbGljYXRlQ3JlZGVudGlhbCgpOwogCiAgICAgICAgIGF1dG8gYXV0aERhdGEg
PSBidWlsZEF1dGhEYXRhKGNyZWF0aW9uT3B0aW9ucy5ycC5pZCwgZmxhZ3MsIGNvdW50ZXIsIGJ1
aWxkQXR0ZXN0ZWRDcmVkZW50aWFsRGF0YShWZWN0b3I8dWludDhfdD4oYWFndWlkTGVuZ3RoLCAw
KSwgY3JlZGVudGlhbElkLCBjb3NlUHVibGljS2V5KSk7Ci0gICAgICAgIGF1dG8gYXR0ZXN0YXRp
b25PYmplY3QgPSBidWlsZEF0dGVzdGF0aW9uT2JqZWN0KFdURk1vdmUoYXV0aERhdGEpLCAiIiwg
eyB9LCBBdHRlc3RhdGlvbkNvbnZleWFuY2VQcmVmZXJlbmNlOjpOb25lKTsKKyAgICAgICAgYXV0
byBhdHRlc3RhdGlvbk9iamVjdCA9IGJ1aWxkQXR0ZXN0YXRpb25PYmplY3QoV1RGTW92ZShhdXRo
RGF0YSksIFN0cmluZyB7IGVtcHR5U3RyaW5nKCkgfSwgeyB9LCBBdHRlc3RhdGlvbkNvbnZleWFu
Y2VQcmVmZXJlbmNlOjpOb25lKTsKICAgICAgICAgcmVjZWl2ZVJlc3BvbmQoQXV0aGVudGljYXRv
ckF0dGVzdGF0aW9uUmVzcG9uc2U6OmNyZWF0ZShjcmVkZW50aWFsSWQsIGF0dGVzdGF0aW9uT2Jq
ZWN0LCBBdXRoZW50aWNhdG9yQXR0YWNobWVudDo6UGxhdGZvcm0pKTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KQEAgLTQ3MSw3ICs0NzEsNyBAQCB2b2lkIExvY2FsQXV0aGVudGljYXRvcjo6Y29u
dGludWVNYWtlQ3JlZGVudGlhbEFmdGVyQXR0ZXN0ZWQoVmVjdG9yPHVpbnQ4X3Q+JiYgYwogCiAg
ICAgaWYgKGVycm9yKSB7CiAgICAgICAgIExPR19FUlJPUigiQ291bGRuJ3QgYXR0ZXN0OiAlcyIs
IFN0cmluZyhlcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlvbikudXRmOCgpLmRhdGEoKSk7Ci0gICAg
ICAgIGF1dG8gYXR0ZXN0YXRpb25PYmplY3QgPSBidWlsZEF0dGVzdGF0aW9uT2JqZWN0KFdURk1v
dmUoYXV0aERhdGEpLCAiIiwgeyB9LCBBdHRlc3RhdGlvbkNvbnZleWFuY2VQcmVmZXJlbmNlOjpO
b25lKTsKKyAgICAgICAgYXV0byBhdHRlc3RhdGlvbk9iamVjdCA9IGJ1aWxkQXR0ZXN0YXRpb25P
YmplY3QoV1RGTW92ZShhdXRoRGF0YSksIFN0cmluZyB7IGVtcHR5U3RyaW5nKCkgfSwgeyB9LCBB
dHRlc3RhdGlvbkNvbnZleWFuY2VQcmVmZXJlbmNlOjpOb25lKTsKICAgICAgICAgcmVjZWl2ZVJl
c3BvbmQoQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2U6OmNyZWF0ZShjcmVkZW50aWFs
SWQsIGF0dGVzdGF0aW9uT2JqZWN0LCBBdXRoZW50aWNhdG9yQXR0YWNobWVudDo6UGxhdGZvcm0p
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTQ4OCw3ICs0ODgsNyBAQCB2b2lkIExvY2Fs
QXV0aGVudGljYXRvcjo6Y29udGludWVNYWtlQ3JlZGVudGlhbEFmdGVyQXR0ZXN0ZWQoVmVjdG9y
PHVpbnQ4X3Q+JiYgYwogICAgICAgICAgICAgY2JvckFycmF5LmFwcGVuZChjYm9yOjpDQk9SVmFs
dWUodmVjdG9yRnJvbU5TRGF0YSgoTlNEYXRhICopYWRvcHRDRihTZWNDZXJ0aWZpY2F0ZUNvcHlE
YXRhKChfX2JyaWRnZSBTZWNDZXJ0aWZpY2F0ZVJlZiljZXJ0aWZpY2F0ZXNbaV0pKS5nZXQoKSkp
KTsKICAgICAgICAgYXR0ZXN0YXRpb25TdGF0ZW1lbnRNYXBbY2Jvcjo6Q0JPUlZhbHVlKCJ4NWMi
KV0gPSBjYm9yOjpDQk9SVmFsdWUoV1RGTW92ZShjYm9yQXJyYXkpKTsKICAgICB9Ci0gICAgYXV0
byBhdHRlc3RhdGlvbk9iamVjdCA9IGJ1aWxkQXR0ZXN0YXRpb25PYmplY3QoV1RGTW92ZShhdXRo
RGF0YSksICJhcHBsZSIsIFdURk1vdmUoYXR0ZXN0YXRpb25TdGF0ZW1lbnRNYXApLCBjcmVhdGlv
bk9wdGlvbnMuYXR0ZXN0YXRpb24pOworICAgIGF1dG8gYXR0ZXN0YXRpb25PYmplY3QgPSBidWls
ZEF0dGVzdGF0aW9uT2JqZWN0KFdURk1vdmUoYXV0aERhdGEpLCAiYXBwbGUiX3MsIFdURk1vdmUo
YXR0ZXN0YXRpb25TdGF0ZW1lbnRNYXApLCBjcmVhdGlvbk9wdGlvbnMuYXR0ZXN0YXRpb24pOwog
CiAgICAgZGVsZXRlRHVwbGljYXRlQ3JlZGVudGlhbCgpOwogICAgIHJlY2VpdmVSZXNwb25kKEF1
dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlOjpjcmVhdGUoY3JlZGVudGlhbElkLCBhdHRl
c3RhdGlvbk9iamVjdCwgQXV0aGVudGljYXRvckF0dGFjaG1lbnQ6OlBsYXRmb3JtKSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0
aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFj
dGlvbi5tbQppbmRleCBlYjdjNjkxZjljOTkwZjg0NzVmMDkwMjc0ZDliNmVlMjAxYzM5MGIwLi45
ZThiZjQ1YmFiNTEzYTUxMjEwNDlkMDUzMTEyMmU0NTYzZjBhNmYxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0K
QEAgLTM5ODAsNyArMzk4MCw3IEBAIC0gKEJPT0wpY2FuUGVyZm9ybUFjdGlvbkZvcldlYlZpZXc6
KFNFTClhY3Rpb24gd2l0aFNlbmRlcjooaWQpc2VuZGVyCiAgICAgICAgIGlmIChmb2N1c2VkRG9j
dW1lbnRPcmlnaW4uaXNFbXB0eSgpKQogICAgICAgICAgICAgcmV0dXJuIE5POwogCi0gICAgICAg
IE5TQXJyYXkgKmFsbEN1c3RvbVBhc3RlYm9hcmREYXRhID0gW3Bhc3RlYm9hcmQgZGF0YUZvclBh
c3RlYm9hcmRUeXBlOkAoV2ViQ29yZTo6UGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgp
KSBpbkl0ZW1TZXQ6aW5kaWNlc107CisgICAgICAgIE5TQXJyYXkgKmFsbEN1c3RvbVBhc3RlYm9h
cmREYXRhID0gW3Bhc3RlYm9hcmQgZGF0YUZvclBhc3RlYm9hcmRUeXBlOkAoV2ViQ29yZTo6UGFz
dGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpLmNoYXJhY3RlcnMoKSkgaW5JdGVtU2V0Omlu
ZGljZXNdOwogICAgICAgICBmb3IgKE5TRGF0YSAqZGF0YSBpbiBhbGxDdXN0b21QYXN0ZWJvYXJk
RGF0YSkgewogICAgICAgICAgICAgYXV0byBidWZmZXIgPSBXZWJDb3JlOjpTaGFyZWRCdWZmZXI6
OmNyZWF0ZShkYXRhKTsKICAgICAgICAgICAgIGlmIChXZWJDb3JlOjpQYXN0ZWJvYXJkQ3VzdG9t
RGF0YTo6ZnJvbVNoYXJlZEJ1ZmZlcihidWZmZXIuZ2V0KCkpLm9yaWdpbigpID09IGZvY3VzZWRE
b2N1bWVudE9yaWdpbikKQEAgLTY5NDUsNyArNjk0NSw3IEBAIHN0YXRpYyBCT09MIGFsbFBhc3Rl
Ym9hcmRJdGVtT3JpZ2luc01hdGNoT3JpZ2luKFVJUGFzdGVib2FyZCAqcGFzdGVib2FyZCwgY29u
c3QKICAgICAgICAgcmV0dXJuIE5POwogCiAgICAgYXV0byAqaW5kaWNlcyA9IFtOU0luZGV4U2V0
IGluZGV4U2V0V2l0aEluZGV4ZXNJblJhbmdlOk5TTWFrZVJhbmdlKDAsIFtwYXN0ZWJvYXJkIG51
bWJlck9mSXRlbXNdKV07Ci0gICAgYXV0byAqYWxsQ3VzdG9tRGF0YSA9IFtwYXN0ZWJvYXJkIGRh
dGFGb3JQYXN0ZWJvYXJkVHlwZTpAKFdlYkNvcmU6OlBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2Nv
YVR5cGUoKSkgaW5JdGVtU2V0OmluZGljZXNdOworICAgIGF1dG8gKmFsbEN1c3RvbURhdGEgPSBb
cGFzdGVib2FyZCBkYXRhRm9yUGFzdGVib2FyZFR5cGU6QChXZWJDb3JlOjpQYXN0ZWJvYXJkQ3Vz
dG9tRGF0YTo6Y29jb2FUeXBlKCkuY2hhcmFjdGVycygpKSBpbkl0ZW1TZXQ6aW5kaWNlc107CiAg
ICAgaWYgKCFhbGxDdXN0b21EYXRhLmNvdW50KQogICAgICAgICByZXR1cm4gTk87CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL01pc2MvV2ViTlNQYXN0ZWJvYXJkRXh0cmFz
Lm1tIGIvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJOU1Bhc3RlYm9hcmRFeHRyYXMu
bW0KaW5kZXggZTViNDQ0YmZhNWMyODcyODM4N2M3MjMzMjgyOTFhODIwM2QxYjI1NC4uM2U1MmYx
YmJhY2RiNTFiOGVhNTQ3N2M2YjBkOTliOTVjYmFkMGJjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvTWlzYy9XZWJOU1Bhc3RlYm9hcmRFeHRyYXMubW0KKysrIGIvU291cmNl
L1dlYktpdExlZ2FjeS9tYWMvTWlzYy9XZWJOU1Bhc3RlYm9hcmRFeHRyYXMubW0KQEAgLTI3Niw3
ICsyNzYsNyBAQCAtIChpZClfd2ViX2RlY2xhcmVBbmRXcml0ZURyYWdJbWFnZUZvckVsZW1lbnQ6
KERPTUVsZW1lbnQgKillbGVtZW50CiAgICAgTlNTdHJpbmcgKm9yaWdpbklkZW50aWZpZXIgPSBj
b3JlKGVsZW1lbnQpLT5kb2N1bWVudCgpLm9yaWdpbklkZW50aWZpZXJGb3JQYXN0ZWJvYXJkKCk7
CiAgICAgUmV0YWluUHRyPE5TRGF0YT4gY3VzdG9tRGF0YUJ1ZmZlcjsKICAgICBpZiAob3JpZ2lu
SWRlbnRpZmllci5sZW5ndGgpIHsKLSAgICAgICAgW3R5cGVzIGFkZE9iamVjdDpAKFBhc3RlYm9h
cmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKSldOworICAgICAgICBbdHlwZXMgYWRkT2JqZWN0OkAo
UGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpLmNoYXJhY3RlcnMoKSldOwogICAgICAg
ICBQYXN0ZWJvYXJkQ3VzdG9tRGF0YSBjdXN0b21EYXRhOwogICAgICAgICBjdXN0b21EYXRhLnNl
dE9yaWdpbihvcmlnaW5JZGVudGlmaWVyKTsKICAgICAgICAgY3VzdG9tRGF0YUJ1ZmZlciA9IGN1
c3RvbURhdGEuY3JlYXRlU2hhcmVkQnVmZmVyKCktPmNyZWF0ZU5TRGF0YSgpOwpAQCAtMzA1LDcg
KzMwNSw3IEBAIC0gKGlkKV93ZWJfZGVjbGFyZUFuZFdyaXRlRHJhZ0ltYWdlRm9yRWxlbWVudDoo
RE9NRWxlbWVudCAqKWVsZW1lbnQKIAogICAgIFtzZWxmIF93ZWJfd3JpdGVJbWFnZTpuaWwgZWxl
bWVudDplbGVtZW50IFVSTDpVUkwgdGl0bGU6dGl0bGUgYXJjaGl2ZTphcmNoaXZlIHR5cGVzOnR5
cGVzLmdldCgpIHNvdXJjZTpzb3VyY2VdOwogICAgIGlmIChjdXN0b21EYXRhQnVmZmVyKQotICAg
ICAgICBbc2VsZiBzZXREYXRhOmN1c3RvbURhdGFCdWZmZXIuZ2V0KCkgZm9yVHlwZTpAKFBhc3Rl
Ym9hcmRDdXN0b21EYXRhOjpjb2NvYVR5cGUoKSldOworICAgICAgICBbc2VsZiBzZXREYXRhOmN1
c3RvbURhdGFCdWZmZXIuZ2V0KCkgZm9yVHlwZTpAKFBhc3RlYm9hcmRDdXN0b21EYXRhOjpjb2Nv
YVR5cGUoKS5jaGFyYWN0ZXJzKCkpXTsKIAogICAgIFtzZWxmIHNldFByb3BlcnR5TGlzdDpAW2V4
dGVuc2lvbl0gZm9yVHlwZTpsZWdhY3lGaWxlc1Byb21pc2VQYXN0ZWJvYXJkVHlwZSgpXTsKIApk
aWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGQ3MjUw
MmY0MGIyOWZiNzQ1ZGYyNzJhNzc2YmE5N2FlNDYxZTE2MTEuLmM5NTU5MzdhNzdhNTgwYWFiZmQ1
NWE1NDQyODBlNmJkN2ViYTQ1YjkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9U
b29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMi0wMy0yNCAgQ2hyaXMgRHVtZXog
IDxjZHVtZXpAYXBwbGUuY29tPgorCisgICAgICAgIFN0YXJ0IHByZXBhcmluZyBXZWJDb3JlIGZv
ciBtYWtpbmcgdGhlIFN0cmluZyhjb25zdCBjaGFyKikgY29uc3RydWN0b3IgZXhwbGljaXQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODMzNgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0YXJ0IHByZXBh
cmluZyBXZWJDb3JlIGZvciBtYWtpbmcgdGhlIFN0cmluZyhjb25zdCBjaGFyKikgY29uc3RydWN0
b3IgZXhwbGljaXQuCisgICAgICAgIE1ha2luZyB0aGlzIGNvbnN0cnVjdG9yIGV4cGxpY2l0IGhl
bHBzIGNhdGNoIGF0IGNvbXBpbGUgdGltZSBjYXNlcyB3aGVyZSB0aGUgIiJfcworICAgICAgICBw
cmVmaXggaXMgbWlzc2luZyBvbiBTdHJpbmcgbGl0ZXJhbHMuCisKKyAgICAgICAgKiBUZXN0V2Vi
S2l0QVBJL1Rlc3RzL21hYy9EcmFnQW5kRHJvcFRlc3RzTWFjLm1tOgorICAgICAgICAoVEVTVCk6
CisKIDIwMjItMDMtMjQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAg
ICBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQoKSBzaG91bGQgdGFrZSBpbiBT
dHJpbmdWaWV3cyBpbnN0ZWFkIG9mIFN0cmluZ3MKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvbWFjL0RyYWdBbmREcm9wVGVzdHNNYWMubW0gYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL21hYy9EcmFnQW5kRHJvcFRlc3RzTWFjLm1tCmluZGV4IDUyMTljOTRkZDM5ZGI0
ODlmYjNhNDZhMTRkOGE5MzUxM2QyODRlZmMuLjgxOGIwMGYzYjVmNjQ4ODc5ZTM1MzUxM2M1MzQz
OWY3NGVkYmFlZTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjL0Ry
YWdBbmREcm9wVGVzdHNNYWMubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMv
RHJhZ0FuZERyb3BUZXN0c01hYy5tbQpAQCAtMTgxLDcgKzE4MSw3IEBAIEFMTE9XX0RFUFJFQ0FU
RURfREVDTEFSQVRJT05TX0VORAogICAgIEVYUEVDVF9FUShpbWFnZUZyb21VbmlxdWVQYXN0ZWJv
YXJkLlRJRkZSZXByZXNlbnRhdGlvbi5sZW5ndGgsIGltYWdlRnJvbURyYWdQYXN0ZWJvYXJkLlRJ
RkZSZXByZXNlbnRhdGlvbi5sZW5ndGgpOwogICAgIEVYUEVDVF9UUlVFKE5TRXF1YWxTaXplcyhp
bWFnZUZyb21EcmFnUGFzdGVib2FyZC5zaXplLCBpbWFnZUZyb21VbmlxdWVQYXN0ZWJvYXJkLnNp
emUpKTsKICAgICBFWFBFQ1RfRkFMU0UoTlNFcXVhbFNpemVzKE5TWmVyb1NpemUsIGltYWdlRnJv
bVVuaXF1ZVBhc3RlYm9hcmQuc2l6ZSkpOwotICAgIEVYUEVDVF9HVChbZHJhZ1Bhc3RlYm9hcmQg
ZGF0YUZvclR5cGU6QChXZWJDb3JlOjpQYXN0ZWJvYXJkQ3VzdG9tRGF0YTo6Y29jb2FUeXBlKCkp
XS5sZW5ndGgsIDB1KTsKKyAgICBFWFBFQ1RfR1QoW2RyYWdQYXN0ZWJvYXJkIGRhdGFGb3JUeXBl
OkAoV2ViQ29yZTo6UGFzdGVib2FyZEN1c3RvbURhdGE6OmNvY29hVHlwZSgpLmNoYXJhY3RlcnMo
KSldLmxlbmd0aCwgMHUpOwogfQogCiBURVNUKERyYWdBbmREcm9wVGVzdHMsIFByb3ZpZGVJbWFn
ZURhdGFBc1R5cGVJZGVudGlmaWVycykK
</data>

          </attachment>
      

    </bug>

</bugzilla>